aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2016-03-09 03:17:51 +0000
committerJoão Valverde <j@v6e.pt>2016-03-13 21:30:24 +0000
commit54a520d4a1151c68d0b4e5f09a8d82466fa499f3 (patch)
tree7aacae160382098ce651ac862a5dfd5de4beff94 /epan/dissectors
parentc1f3c935bdd33090c87f0d2f84842ce9729b747a (diff)
Move /asn1 to /epan/dissectors
Change-Id: I1208fe3c2ba428995526f561e8f792b8d871e9a9 Reviewed-on: https://code.wireshark.org/review/14388 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: João Valverde <j@v6e.pt>
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/CMakeLists.txt1
-rw-r--r--epan/dissectors/Makefile.am4
-rw-r--r--epan/dissectors/asn1/.gitignore59
-rw-r--r--epan/dissectors/asn1/CMakeLists.txt142
-rw-r--r--epan/dissectors/asn1/CMakeListsCustom.example.txt26
-rw-r--r--epan/dissectors/asn1/Custom.make30
-rw-r--r--epan/dissectors/asn1/HI2Operations/CMakeLists.txt49
-rw-r--r--epan/dissectors/asn1/HI2Operations/EN301040.asn269
-rw-r--r--epan/dissectors/asn1/HI2Operations/HI2Operations.cnf36
-rw-r--r--epan/dissectors/asn1/HI2Operations/HI2Operations_ver11.asn961
-rw-r--r--epan/dissectors/asn1/HI2Operations/Makefile.am23
-rw-r--r--epan/dissectors/asn1/HI2Operations/Makefile.common44
-rw-r--r--epan/dissectors/asn1/HI2Operations/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/HI2Operations/PCESP.asn365
-rw-r--r--epan/dissectors/asn1/HI2Operations/TS101909201.asn76
-rw-r--r--epan/dissectors/asn1/HI2Operations/UmtsHI2Operations.asn56
-rw-r--r--epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c77
-rw-r--r--epan/dissectors/asn1/Makefile.am145
-rw-r--r--epan/dissectors/asn1/Makefile.inc59
-rw-r--r--epan/dissectors/asn1/Makefile.inc.nmake75
-rw-r--r--epan/dissectors/asn1/Makefile.nmake177
-rw-r--r--epan/dissectors/asn1/Makefile.preinc25
-rw-r--r--epan/dissectors/asn1/Makefile.preinc.nmake26
-rw-r--r--epan/dissectors/asn1/acp133/CMakeLists.txt57
-rw-r--r--epan/dissectors/asn1/acp133/MHSDirectoryObjectsAndAttributes.asn433
-rw-r--r--epan/dissectors/asn1/acp133/Makefile.am23
-rw-r--r--epan/dissectors/asn1/acp133/Makefile.common64
-rw-r--r--epan/dissectors/asn1/acp133/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/acp133/acp133.asn135
-rw-r--r--epan/dissectors/asn1/acp133/acp133.cnf236
-rw-r--r--epan/dissectors/asn1/acp133/packet-acp133-template.c177
-rw-r--r--epan/dissectors/asn1/acp133/packet-acp133-template.h29
-rw-r--r--epan/dissectors/asn1/acse/CMakeLists.txt56
-rw-r--r--epan/dissectors/asn1/acse/Makefile.am23
-rw-r--r--epan/dissectors/asn1/acse/Makefile.common50
-rw-r--r--epan/dissectors/asn1/acse/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/acse/acse.asn435
-rw-r--r--epan/dissectors/asn1/acse/acse.cnf173
-rw-r--r--epan/dissectors/asn1/acse/packet-acse-template.c308
-rw-r--r--epan/dissectors/asn1/acse/packet-acse-template.h31
-rw-r--r--epan/dissectors/asn1/ansi_map/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/ansi_map/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ansi_map/Makefile.common47
-rw-r--r--epan/dissectors/asn1/ansi_map/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ansi_map/ansi_map.asn8421
-rw-r--r--epan/dissectors/asn1/ansi_map/ansi_map.cnf522
-rw-r--r--epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c5510
-rw-r--r--epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h50
-rw-r--r--epan/dissectors/asn1/ansi_tcap/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/ansi_tcap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ansi_tcap/Makefile.common44
-rw-r--r--epan/dissectors/asn1/ansi_tcap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ansi_tcap/TCAP-Remote-Operations-Information-Objects.asn145
-rw-r--r--epan/dissectors/asn1/ansi_tcap/TCAPPackage.asn242
-rw-r--r--epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf192
-rw-r--r--epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c536
-rw-r--r--epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h63
-rw-r--r--epan/dissectors/asn1/atn-cm/CMakeLists.txt53
-rw-r--r--epan/dissectors/asn1/atn-cm/Makefile.am22
-rw-r--r--epan/dissectors/asn1/atn-cm/Makefile.common40
-rw-r--r--epan/dissectors/asn1/atn-cm/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/atn-cm/atn-cm.asn194
-rw-r--r--epan/dissectors/asn1/atn-cm/atn-cm.cnf20
-rw-r--r--epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c244
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/CMakeLists.txt53
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/Makefile.am23
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/Makefile.common40
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.asn2793
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf134
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c367
-rw-r--r--epan/dissectors/asn1/atn-ulcs/CMakeLists.txt54
-rw-r--r--epan/dissectors/asn1/atn-ulcs/Makefile.am23
-rw-r--r--epan/dissectors/asn1/atn-ulcs/Makefile.common41
-rw-r--r--epan/dissectors/asn1/atn-ulcs/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/atn-ulcs/atn-ulcs.asn508
-rw-r--r--epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf554
-rw-r--r--epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c903
-rw-r--r--epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h95
-rw-r--r--epan/dissectors/asn1/c1222/CMakeLists.txt51
-rw-r--r--epan/dissectors/asn1/c1222/Makefile.am23
-rw-r--r--epan/dissectors/asn1/c1222/Makefile.common43
-rw-r--r--epan/dissectors/asn1/c1222/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/c1222/c1222.asn81
-rw-r--r--epan/dissectors/asn1/c1222/c1222.cnf117
-rw-r--r--epan/dissectors/asn1/c1222/packet-c1222-template.c1449
-rw-r--r--epan/dissectors/asn1/c1222/packet-c1222-template.h41
-rw-r--r--epan/dissectors/asn1/camel/CAP-GPRS-ReferenceNumber.asn32
-rw-r--r--epan/dissectors/asn1/camel/CAP-SMS-ops-args.asn269
-rw-r--r--epan/dissectors/asn1/camel/CAP-U-ABORT-Data.asn48
-rw-r--r--epan/dissectors/asn1/camel/CAP-classes.asn306
-rw-r--r--epan/dissectors/asn1/camel/CAP-datatypes.asn1527
-rw-r--r--epan/dissectors/asn1/camel/CAP-errorcodes.asn36
-rw-r--r--epan/dissectors/asn1/camel/CAP-errortypes.asn157
-rw-r--r--epan/dissectors/asn1/camel/CAP-gprsSSF-gsmSCF-ops-args.asn409
-rw-r--r--epan/dissectors/asn1/camel/CAP-gsmSCF-gsmSRF-ops-args.asn147
-rw-r--r--epan/dissectors/asn1/camel/CAP-gsmSSF-gsmSCF-ops-args.asn905
-rw-r--r--epan/dissectors/asn1/camel/CAP-object-identifiers.asn242
-rw-r--r--epan/dissectors/asn1/camel/CAP-operationcodes.asn119
-rw-r--r--epan/dissectors/asn1/camel/CMakeLists.txt71
-rw-r--r--epan/dissectors/asn1/camel/CamelV2diff.asn98
-rw-r--r--epan/dissectors/asn1/camel/Makefile.am23
-rw-r--r--epan/dissectors/asn1/camel/Makefile.common69
-rw-r--r--epan/dissectors/asn1/camel/Makefile.nmake30
-rw-r--r--epan/dissectors/asn1/camel/TCAPMessages.asn21
-rw-r--r--epan/dissectors/asn1/camel/camel.asn3246
-rw-r--r--epan/dissectors/asn1/camel/camel.cnf707
-rw-r--r--epan/dissectors/asn1/camel/packet-camel-template.c1621
-rw-r--r--epan/dissectors/asn1/camel/packet-camel-template.h139
-rw-r--r--epan/dissectors/asn1/cdt/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/cdt/Makefile.am23
-rw-r--r--epan/dissectors/asn1/cdt/Makefile.common43
-rw-r--r--epan/dissectors/asn1/cdt/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/cdt/cdt.asn36
-rw-r--r--epan/dissectors/asn1/cdt/cdt.cnf106
-rw-r--r--epan/dissectors/asn1/cdt/packet-cdt-template.c133
-rw-r--r--epan/dissectors/asn1/cdt/packet-cdt-template.h33
-rw-r--r--epan/dissectors/asn1/charging_ase/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/charging_ase/Makefile.am23
-rw-r--r--epan/dissectors/asn1/charging_ase/Makefile.common41
-rw-r--r--epan/dissectors/asn1/charging_ase/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/charging_ase/Tariffing-Data-Types.asn446
-rw-r--r--epan/dissectors/asn1/charging_ase/charging_ase.cnf16
-rw-r--r--epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c105
-rw-r--r--epan/dissectors/asn1/charging_ase/packet-charging_ase-template.h28
-rw-r--r--epan/dissectors/asn1/cmip/CMIP-1.asn706
-rw-r--r--epan/dissectors/asn1/cmip/CMIP-A-ABORT-Information.asn17
-rw-r--r--epan/dissectors/asn1/cmip/CMIP-A-ASSOCIATE-Information.asn24
-rw-r--r--epan/dissectors/asn1/cmip/CMIP.asn526
-rw-r--r--epan/dissectors/asn1/cmip/CMakeLists.txt61
-rw-r--r--epan/dissectors/asn1/cmip/Makefile.am23
-rw-r--r--epan/dissectors/asn1/cmip/Makefile.common59
-rw-r--r--epan/dissectors/asn1/cmip/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/cmip/cmip.cnf503
-rw-r--r--epan/dissectors/asn1/cmip/packet-cmip-template.c232
-rw-r--r--epan/dissectors/asn1/cmip/packet-cmip-template.h30
-rw-r--r--epan/dissectors/asn1/cmp/CMP.asn524
-rw-r--r--epan/dissectors/asn1/cmp/CMakeLists.txt54
-rw-r--r--epan/dissectors/asn1/cmp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/cmp/Makefile.common49
-rw-r--r--epan/dissectors/asn1/cmp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/cmp/cmp.cnf110
-rw-r--r--epan/dissectors/asn1/cmp/packet-cmp-template.c436
-rw-r--r--epan/dissectors/asn1/cmp/packet-cmp-template.h32
-rw-r--r--epan/dissectors/asn1/cms/AttributeCertificateVersion1.asn51
-rw-r--r--epan/dissectors/asn1/cms/CMakeLists.txt64
-rw-r--r--epan/dissectors/asn1/cms/CryptographicMessageSyntax.asn396
-rw-r--r--epan/dissectors/asn1/cms/Makefile.am23
-rw-r--r--epan/dissectors/asn1/cms/Makefile.common66
-rw-r--r--epan/dissectors/asn1/cms/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/cms/cms.cnf201
-rw-r--r--epan/dissectors/asn1/cms/packet-cms-template.c180
-rw-r--r--epan/dissectors/asn1/cms/packet-cms-template.h31
-rw-r--r--epan/dissectors/asn1/credssp/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/credssp/CredSSP.asn44
-rw-r--r--epan/dissectors/asn1/credssp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/credssp/Makefile.common45
-rw-r--r--epan/dissectors/asn1/credssp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/credssp/credssp.cnf57
-rw-r--r--epan/dissectors/asn1/credssp/packet-credssp-template.c182
-rw-r--r--epan/dissectors/asn1/credssp/packet-credssp-template.h32
-rw-r--r--epan/dissectors/asn1/crmf/CMakeLists.txt56
-rw-r--r--epan/dissectors/asn1/crmf/CRMF.asn311
-rw-r--r--epan/dissectors/asn1/crmf/Makefile.am23
-rw-r--r--epan/dissectors/asn1/crmf/Makefile.common49
-rw-r--r--epan/dissectors/asn1/crmf/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/crmf/crmf.cnf76
-rw-r--r--epan/dissectors/asn1/crmf/packet-crmf-template.c87
-rw-r--r--epan/dissectors/asn1/crmf/packet-crmf-template.h30
-rw-r--r--epan/dissectors/asn1/dap/CMakeLists.txt65
-rw-r--r--epan/dissectors/asn1/dap/DirectoryAccessProtocol.asn170
-rw-r--r--epan/dissectors/asn1/dap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/dap/Makefile.common83
-rw-r--r--epan/dissectors/asn1/dap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/dap/dap.asn1304
-rw-r--r--epan/dissectors/asn1/dap/dap.cnf368
-rw-r--r--epan/dissectors/asn1/dap/packet-dap-template.c182
-rw-r--r--epan/dissectors/asn1/dap/packet-dap-template.h29
-rw-r--r--epan/dissectors/asn1/disp/CMakeLists.txt64
-rw-r--r--epan/dissectors/asn1/disp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/disp/Makefile.common69
-rw-r--r--epan/dissectors/asn1/disp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/disp/disp.asn405
-rw-r--r--epan/dissectors/asn1/disp/disp.cnf107
-rw-r--r--epan/dissectors/asn1/disp/packet-disp-template.c290
-rw-r--r--epan/dissectors/asn1/disp/packet-disp-template.h29
-rw-r--r--epan/dissectors/asn1/dop/CMakeLists.txt61
-rw-r--r--epan/dissectors/asn1/dop/Makefile.am23
-rw-r--r--epan/dissectors/asn1/dop/Makefile.common70
-rw-r--r--epan/dissectors/asn1/dop/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/dop/dop.asn881
-rw-r--r--epan/dissectors/asn1/dop/dop.cnf202
-rw-r--r--epan/dissectors/asn1/dop/packet-dop-template.c346
-rw-r--r--epan/dissectors/asn1/dop/packet-dop-template.h29
-rw-r--r--epan/dissectors/asn1/dsp/CMakeLists.txt59
-rw-r--r--epan/dissectors/asn1/dsp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/dsp/Makefile.common62
-rw-r--r--epan/dissectors/asn1/dsp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/dsp/dsp.asn489
-rw-r--r--epan/dissectors/asn1/dsp/dsp.cnf55
-rw-r--r--epan/dissectors/asn1/dsp/packet-dsp-template.c352
-rw-r--r--epan/dissectors/asn1/dsp/packet-dsp-template.h29
-rw-r--r--epan/dissectors/asn1/ess/CMakeLists.txt54
-rw-r--r--epan/dissectors/asn1/ess/ExtendedSecurityServices.asn297
-rw-r--r--epan/dissectors/asn1/ess/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ess/Makefile.common55
-rw-r--r--epan/dissectors/asn1/ess/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ess/ess.cnf105
-rw-r--r--epan/dissectors/asn1/ess/packet-ess-template.c204
-rw-r--r--epan/dissectors/asn1/ess/packet-ess-template.h31
-rw-r--r--epan/dissectors/asn1/ftam/CMakeLists.txt56
-rw-r--r--epan/dissectors/asn1/ftam/ISO8571-FTAM.asn1451
-rw-r--r--epan/dissectors/asn1/ftam/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ftam/Makefile.common50
-rw-r--r--epan/dissectors/asn1/ftam/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ftam/ftam.cnf131
-rw-r--r--epan/dissectors/asn1/ftam/packet-ftam-template.c180
-rw-r--r--epan/dissectors/asn1/ftam/packet-ftam-template.h34
-rw-r--r--epan/dissectors/asn1/goose/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/goose/Makefile.am23
-rw-r--r--epan/dissectors/asn1/goose/Makefile.common42
-rw-r--r--epan/dissectors/asn1/goose/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/goose/goose.asn143
-rw-r--r--epan/dissectors/asn1/goose/goose.cnf70
-rw-r--r--epan/dissectors/asn1/goose/packet-goose-template.c160
-rw-r--r--epan/dissectors/asn1/gprscdr/3GPPGenericChargingDataTypes.asn431
-rw-r--r--epan/dissectors/asn1/gprscdr/CMakeLists.txt58
-rw-r--r--epan/dissectors/asn1/gprscdr/GPRSChargingDataTypes.asn772
-rw-r--r--epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1171.asn979
-rw-r--r--epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1260.asn1204
-rw-r--r--epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn890
-rw-r--r--epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV8e0.asn847
-rw-r--r--epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV9f0.asn908
-rw-r--r--epan/dissectors/asn1/gprscdr/GenericChargingDataTypes.asn454
-rw-r--r--epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1171.asn672
-rw-r--r--epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1250.asn668
-rw-r--r--epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV641.asn434
-rw-r--r--epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV8e0.asn590
-rw-r--r--epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV9f0.asn594
-rw-r--r--epan/dissectors/asn1/gprscdr/Makefile.am23
-rw-r--r--epan/dissectors/asn1/gprscdr/Makefile.common61
-rw-r--r--epan/dissectors/asn1/gprscdr/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/gprscdr/gprscdr.cnf173
-rw-r--r--epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c104
-rw-r--r--epan/dissectors/asn1/gprscdr/packet-gprscdr-template.h32
-rw-r--r--epan/dissectors/asn1/gsm_map/CMakeLists.txt101
-rw-r--r--epan/dissectors/asn1/gsm_map/Ericsson.asn42
-rw-r--r--epan/dissectors/asn1/gsm_map/GSMMAP.asn750
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-ApplicationContexts.asn204
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-BS-Code.asn129
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-CH-DataTypes.asn479
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-CallHandlingOperations.asn214
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-CommonDataTypes.asn666
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-DialogueInformation.asn131
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-ER-DataTypes.asn432
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-Errors.asn508
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-ExtensionDataTypes.asn72
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-GR-DataTypes.asn197
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-Group-Call-Operations.asn97
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-LCS-DataTypes.asn712
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-LocationServiceOperations.asn106
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-MS-DataTypes.asn3375
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-MobileServiceOperations.asn542
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-OM-DataTypes.asn492
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-OperationAndMaintenanceOperations.asn93
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-Protocol.asn176
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-SM-DataTypes.asn320
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-SS-Code.asn188
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-SS-DataTypes.asn340
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-ShortMessageServiceOperations.asn172
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-SupplementaryServiceOperations.asn298
-rw-r--r--epan/dissectors/asn1/gsm_map/MAP-TS-Code.asn90
-rw-r--r--epan/dissectors/asn1/gsm_map/Makefile.am23
-rw-r--r--epan/dissectors/asn1/gsm_map/Makefile.common95
-rw-r--r--epan/dissectors/asn1/gsm_map/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/gsm_map/MobileDomainDefinitions.asn30
-rw-r--r--epan/dissectors/asn1/gsm_map/Nokia.asn689
-rw-r--r--epan/dissectors/asn1/gsm_map/SS-DataTypes.asn489
-rw-r--r--epan/dissectors/asn1/gsm_map/SS-Errors.asn45
-rw-r--r--epan/dissectors/asn1/gsm_map/SS-Operations.asn298
-rw-r--r--epan/dissectors/asn1/gsm_map/SS-Protocol.asn53
-rw-r--r--epan/dissectors/asn1/gsm_map/gsm_map.cnf1020
-rw-r--r--epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c3185
-rw-r--r--epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h59
-rw-r--r--epan/dissectors/asn1/h225/CMakeLists.txt57
-rw-r--r--epan/dissectors/asn1/h225/H323-MESSAGES.asn2221
-rw-r--r--epan/dissectors/asn1/h225/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h225/Makefile.common54
-rw-r--r--epan/dissectors/asn1/h225/Makefile.nmake30
-rw-r--r--epan/dissectors/asn1/h225/h225.cnf764
-rw-r--r--epan/dissectors/asn1/h225/packet-h225-template.c1184
-rw-r--r--epan/dissectors/asn1/h225/packet-h225-template.h95
-rw-r--r--epan/dissectors/asn1/h235/CMakeLists.txt57
-rw-r--r--epan/dissectors/asn1/h235/H235-SECURITY-MESSAGES.asn354
-rw-r--r--epan/dissectors/asn1/h235/H235-SRTP.asn58
-rw-r--r--epan/dissectors/asn1/h235/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h235/Makefile.common50
-rw-r--r--epan/dissectors/asn1/h235/Makefile.nmake30
-rw-r--r--epan/dissectors/asn1/h235/h235.cnf85
-rw-r--r--epan/dissectors/asn1/h235/packet-h235-template.c144
-rw-r--r--epan/dissectors/asn1/h235/packet-h235-template.h30
-rw-r--r--epan/dissectors/asn1/h245/CMakeLists.txt55
-rw-r--r--epan/dissectors/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn3410
-rw-r--r--epan/dissectors/asn1/h245/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h245/Makefile.common44
-rw-r--r--epan/dissectors/asn1/h245/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/h245/h245.cnf1408
-rw-r--r--epan/dissectors/asn1/h245/packet-h245-template.c630
-rw-r--r--epan/dissectors/asn1/h245/packet-h245-template.h131
-rw-r--r--epan/dissectors/asn1/h248/CMakeLists.txt49
-rw-r--r--epan/dissectors/asn1/h248/MEGACO.asn987
-rw-r--r--epan/dissectors/asn1/h248/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h248/Makefile.common48
-rw-r--r--epan/dissectors/asn1/h248/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/h248/h248.cnf403
-rw-r--r--epan/dissectors/asn1/h248/h248v1support.asn45
-rw-r--r--epan/dissectors/asn1/h248/h248v3.asn1101
-rw-r--r--epan/dissectors/asn1/h248/packet-h248-template.c1690
-rw-r--r--epan/dissectors/asn1/h248/packet-h248-template.h123
-rw-r--r--epan/dissectors/asn1/h282/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/h282/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h282/Makefile.common40
-rw-r--r--epan/dissectors/asn1/h282/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/h282/RDC-PROTOCOL.asn981
-rw-r--r--epan/dissectors/asn1/h282/h282.cnf50
-rw-r--r--epan/dissectors/asn1/h282/packet-h282-template.c98
-rw-r--r--epan/dissectors/asn1/h283/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/h283/LCT-PROTOCOL.asn79
-rw-r--r--epan/dissectors/asn1/h283/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h283/Makefile.common40
-rw-r--r--epan/dissectors/asn1/h283/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/h283/h283.cnf115
-rw-r--r--epan/dissectors/asn1/h283/packet-h283-template.c109
-rw-r--r--epan/dissectors/asn1/h323/CMakeLists.txt53
-rw-r--r--epan/dissectors/asn1/h323/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h323/Makefile.common46
-rw-r--r--epan/dissectors/asn1/h323/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/h323/RAS-PROTOCOL-TUNNEL.asn25
-rw-r--r--epan/dissectors/asn1/h323/ROBUSTNESS-DATA.asn87
-rw-r--r--epan/dissectors/asn1/h323/h323.cnf15
-rw-r--r--epan/dissectors/asn1/h323/packet-h323-template.c137
-rw-r--r--epan/dissectors/asn1/h323/packet-h323-template.h64
-rw-r--r--epan/dissectors/asn1/h450-ros/CMakeLists.txt60
-rw-r--r--epan/dissectors/asn1/h450-ros/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h450-ros/Makefile.common52
-rw-r--r--epan/dissectors/asn1/h450-ros/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/h450-ros/Remote-Operations-Apdus.asn150
-rw-r--r--epan/dissectors/asn1/h450-ros/h450-ros.cnf108
-rw-r--r--epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c115
-rw-r--r--epan/dissectors/asn1/h450-ros/packet-h450-ros-template.h30
-rw-r--r--epan/dissectors/asn1/h450/Addressing-Data-Elements.asn125
-rw-r--r--epan/dissectors/asn1/h450/CMakeLists.txt75
-rw-r--r--epan/dissectors/asn1/h450/Call-Completion-Operations.asn154
-rw-r--r--epan/dissectors/asn1/h450/Call-Diversion-Operations.asn323
-rw-r--r--epan/dissectors/asn1/h450/Call-Hold-Operations.asn131
-rw-r--r--epan/dissectors/asn1/h450/Call-Intrusion-Operations.asn209
-rw-r--r--epan/dissectors/asn1/h450/Call-Offer-Operations.asn71
-rw-r--r--epan/dissectors/asn1/h450/Call-Park-Pickup-Operations.asn302
-rw-r--r--epan/dissectors/asn1/h450/Call-Transfer-Operations.asn244
-rw-r--r--epan/dissectors/asn1/h450/Call-Waiting-Operations.asn45
-rw-r--r--epan/dissectors/asn1/h450/Common-Information-Operations.asn149
-rw-r--r--epan/dissectors/asn1/h450/H225-generic-parameters-definition.asn17
-rw-r--r--epan/dissectors/asn1/h450/H4501-General-Error-List.asn100
-rw-r--r--epan/dissectors/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn72
-rw-r--r--epan/dissectors/asn1/h450/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h450/Makefile.common74
-rw-r--r--epan/dissectors/asn1/h450/Makefile.nmake31
-rw-r--r--epan/dissectors/asn1/h450/Manufacturer-specific-service-extension-definition.asn31
-rw-r--r--epan/dissectors/asn1/h450/Message-Waiting-Indication-Operations.asn169
-rw-r--r--epan/dissectors/asn1/h450/Name-Operations.asn97
-rw-r--r--epan/dissectors/asn1/h450/h450.cnf165
-rw-r--r--epan/dissectors/asn1/h450/packet-h450-template.c322
-rw-r--r--epan/dissectors/asn1/h460/CALL-PARTY-CATEGORY.asn23
-rw-r--r--epan/dissectors/asn1/h460/CALL-PRIORITY.asn55
-rw-r--r--epan/dissectors/asn1/h460/CIRCUIT-STATUS-MAP.asn36
-rw-r--r--epan/dissectors/asn1/h460/CMakeLists.txt63
-rw-r--r--epan/dissectors/asn1/h460/MEDIA-TRAVERSAL.asn30
-rw-r--r--epan/dissectors/asn1/h460/MESSAGE-BROADCAST.asn50
-rw-r--r--epan/dissectors/asn1/h460/MLPP.asn62
-rw-r--r--epan/dissectors/asn1/h460/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h460/Makefile.common65
-rw-r--r--epan/dissectors/asn1/h460/Makefile.nmake25
-rw-r--r--epan/dissectors/asn1/h460/NUMBER-PORTABILITY.asn62
-rw-r--r--epan/dissectors/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn70
-rw-r--r--epan/dissectors/asn1/h460/QOS-MONITORING-REPORT.asn99
-rw-r--r--epan/dissectors/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn56
-rw-r--r--epan/dissectors/asn1/h460/SIGNALLING-TRAVERSAL.asn28
-rw-r--r--epan/dissectors/asn1/h460/h460.cnf64
-rw-r--r--epan/dissectors/asn1/h460/packet-h460-template.c294
-rw-r--r--epan/dissectors/asn1/h501/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/h501/H501-MESSAGES.asn656
-rw-r--r--epan/dissectors/asn1/h501/Makefile.am23
-rw-r--r--epan/dissectors/asn1/h501/Makefile.common48
-rw-r--r--epan/dissectors/asn1/h501/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/h501/h501.cnf26
-rw-r--r--epan/dissectors/asn1/h501/packet-h501-template.c156
-rw-r--r--epan/dissectors/asn1/hnbap/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/hnbap/HNBAP-CommonDataTypes.asn55
-rw-r--r--epan/dissectors/asn1/hnbap/HNBAP-Constants.asn92
-rw-r--r--epan/dissectors/asn1/hnbap/HNBAP-Containers.asn157
-rw-r--r--epan/dissectors/asn1/hnbap/HNBAP-IEs.asn518
-rw-r--r--epan/dissectors/asn1/hnbap/HNBAP-PDU-Contents.asn490
-rw-r--r--epan/dissectors/asn1/hnbap/HNBAP-PDU-Descriptions.asn231
-rw-r--r--epan/dissectors/asn1/hnbap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/hnbap/Makefile.common45
-rw-r--r--epan/dissectors/asn1/hnbap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/hnbap/hnbap.cnf265
-rw-r--r--epan/dissectors/asn1/hnbap/packet-hnbap-template.c200
-rw-r--r--epan/dissectors/asn1/idmp/CMakeLists.txt58
-rw-r--r--epan/dissectors/asn1/idmp/CommonProtocolSpecification.asn119
-rw-r--r--epan/dissectors/asn1/idmp/IDMProtocolSpecification.asn124
-rw-r--r--epan/dissectors/asn1/idmp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/idmp/Makefile.common55
-rw-r--r--epan/dissectors/asn1/idmp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/idmp/idmp.cnf78
-rw-r--r--epan/dissectors/asn1/idmp/packet-idmp-template.c392
-rw-r--r--epan/dissectors/asn1/idmp/packet-idmp-template.h32
-rw-r--r--epan/dissectors/asn1/ilp/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/ilp/ILP-Components.asn703
-rw-r--r--epan/dissectors/asn1/ilp/ILP.asn425
-rw-r--r--epan/dissectors/asn1/ilp/Makefile.am22
-rw-r--r--epan/dissectors/asn1/ilp/Makefile.common40
-rw-r--r--epan/dissectors/asn1/ilp/Makefile.nmake25
-rw-r--r--epan/dissectors/asn1/ilp/ilp.cnf102
-rw-r--r--epan/dissectors/asn1/ilp/packet-ilp-template.c162
-rw-r--r--epan/dissectors/asn1/inap/CMakeLists.txt86
-rw-r--r--epan/dissectors/asn1/inap/IN-SCF-SRF-Classes.asn92
-rw-r--r--epan/dissectors/asn1/inap/IN-SCF-SRF-datatypes.asn188
-rw-r--r--epan/dissectors/asn1/inap/IN-SCF-SRF-ops-args.asn279
-rw-r--r--epan/dissectors/asn1/inap/IN-SSF-SCF-Classes.asn296
-rw-r--r--epan/dissectors/asn1/inap/IN-SSF-SCF-datatypes.asn1435
-rw-r--r--epan/dissectors/asn1/inap/IN-SSF-SCF-ops-args.asn2358
-rw-r--r--epan/dissectors/asn1/inap/IN-common-classes.asn352
-rw-r--r--epan/dissectors/asn1/inap/IN-common-datatypes.asn40
-rw-r--r--epan/dissectors/asn1/inap/IN-errorcodes.asn57
-rw-r--r--epan/dissectors/asn1/inap/IN-errortypes.asn195
-rw-r--r--epan/dissectors/asn1/inap/IN-object-identifiers.asn720
-rw-r--r--epan/dissectors/asn1/inap/IN-operationcodes.asn295
-rw-r--r--epan/dissectors/asn1/inap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/inap/Makefile.common82
-rw-r--r--epan/dissectors/asn1/inap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/inap/inap.asn179
-rw-r--r--epan/dissectors/asn1/inap/inap.cnf323
-rw-r--r--epan/dissectors/asn1/inap/packet-inap-template.c274
-rw-r--r--epan/dissectors/asn1/inap/packet-inap-template.h30
-rw-r--r--epan/dissectors/asn1/isdn-sup/Addressing-Data-Elements.asn140
-rw-r--r--epan/dissectors/asn1/isdn-sup/Advice-of-Charge-Operations.asn265
-rw-r--r--epan/dissectors/asn1/isdn-sup/Basic-Service-Elements.asn32
-rw-r--r--epan/dissectors/asn1/isdn-sup/CCBS-Operations-and-Errors.asn170
-rw-r--r--epan/dissectors/asn1/isdn-sup/CCBS-private-networks-Operations-and-Errors.asn69
-rw-r--r--epan/dissectors/asn1/isdn-sup/CMakeLists.txt62
-rw-r--r--epan/dissectors/asn1/isdn-sup/Closed-User-Group-Service-Operations.asn77
-rw-r--r--epan/dissectors/asn1/isdn-sup/Conference-Add-On-Operations.asn123
-rw-r--r--epan/dissectors/asn1/isdn-sup/Diversion-Operations.asn365
-rw-r--r--epan/dissectors/asn1/isdn-sup/Embedded-Q931-Types.asn11
-rw-r--r--epan/dissectors/asn1/isdn-sup/Explicit-Call-Transfer-Operations-and-Errors.asn150
-rw-r--r--epan/dissectors/asn1/isdn-sup/Freephone-Operations.asn112
-rw-r--r--epan/dissectors/asn1/isdn-sup/General-Errors.asn65
-rw-r--r--epan/dissectors/asn1/isdn-sup/MCID-Operations.asn38
-rw-r--r--epan/dissectors/asn1/isdn-sup/MLPP-Operations-And-Errors.asn135
-rw-r--r--epan/dissectors/asn1/isdn-sup/MWI-Operations-and-Errors.asn144
-rw-r--r--epan/dissectors/asn1/isdn-sup/Makefile.am23
-rw-r--r--epan/dissectors/asn1/isdn-sup/Makefile.common65
-rw-r--r--epan/dissectors/asn1/isdn-sup/Makefile.nmake30
-rw-r--r--epan/dissectors/asn1/isdn-sup/Outgoing-Call-Barring-Operations-and-Errors.asn201
-rw-r--r--epan/dissectors/asn1/isdn-sup/Set-Operations-and-Errors.asn98
-rw-r--r--epan/dissectors/asn1/isdn-sup/Three-Party-Operations.asn53
-rw-r--r--epan/dissectors/asn1/isdn-sup/User-To-User-Signalling-Operations.asn48
-rw-r--r--epan/dissectors/asn1/isdn-sup/isdn-sup.cnf81
-rw-r--r--epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c373
-rw-r--r--epan/dissectors/asn1/kerberos/CMakeLists.txt54
-rw-r--r--epan/dissectors/asn1/kerberos/KerberosV5Spec2.asn497
-rw-r--r--epan/dissectors/asn1/kerberos/Makefile.am23
-rw-r--r--epan/dissectors/asn1/kerberos/Makefile.common46
-rw-r--r--epan/dissectors/asn1/kerberos/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/kerberos/RFC3244.asn12
-rw-r--r--epan/dissectors/asn1/kerberos/k5.asn775
-rw-r--r--epan/dissectors/asn1/kerberos/kerberos.cnf388
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.c2506
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.h145
-rw-r--r--epan/dissectors/asn1/lcsap/CMakeLists.txt61
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn30
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn84
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn116
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn517
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn257
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn167
-rw-r--r--epan/dissectors/asn1/lcsap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/lcsap/Makefile.common56
-rw-r--r--epan/dissectors/asn1/lcsap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/lcsap/lcsap.cnf324
-rw-r--r--epan/dissectors/asn1/lcsap/packet-lcsap-template.c347
-rw-r--r--epan/dissectors/asn1/lcsap/packet-lcsap-template.h32
-rw-r--r--epan/dissectors/asn1/ldap/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn540
-rw-r--r--epan/dissectors/asn1/ldap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ldap/Makefile.common45
-rw-r--r--epan/dissectors/asn1/ldap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ldap/ldap.cnf811
-rw-r--r--epan/dissectors/asn1/ldap/packet-ldap-template.c2401
-rw-r--r--epan/dissectors/asn1/ldap/packet-ldap-template.h111
-rw-r--r--epan/dissectors/asn1/logotypecertextn/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/logotypecertextn/LogotypeCertExtn.asn117
-rw-r--r--epan/dissectors/asn1/logotypecertextn/Makefile.am23
-rw-r--r--epan/dissectors/asn1/logotypecertextn/Makefile.common47
-rw-r--r--epan/dissectors/asn1/logotypecertextn/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/logotypecertextn/logotypecertextn.cnf28
-rw-r--r--epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c77
-rw-r--r--epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.h30
-rw-r--r--epan/dissectors/asn1/lpp/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/lpp/LPP.asn2519
-rw-r--r--epan/dissectors/asn1/lpp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/lpp/Makefile.common44
-rw-r--r--epan/dissectors/asn1/lpp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/lpp/lpp.cnf1809
-rw-r--r--epan/dissectors/asn1/lpp/packet-lpp-template.c1726
-rw-r--r--epan/dissectors/asn1/lpp/packet-lpp-template.h32
-rw-r--r--epan/dissectors/asn1/lppa/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-Common.asn53
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-Constant.asn75
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-Container.asn197
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-ElementaryProcedure.asn217
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-InformationElement.asn417
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-PDU.asn359
-rw-r--r--epan/dissectors/asn1/lppa/Makefile.am23
-rw-r--r--epan/dissectors/asn1/lppa/Makefile.common45
-rw-r--r--epan/dissectors/asn1/lppa/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/lppa/lppa.cnf124
-rw-r--r--epan/dissectors/asn1/lppa/packet-lppa-template.c125
-rw-r--r--epan/dissectors/asn1/lppe/CMakeLists.txt51
-rw-r--r--epan/dissectors/asn1/lppe/LPPe.asn4611
-rw-r--r--epan/dissectors/asn1/lppe/Makefile.am23
-rw-r--r--epan/dissectors/asn1/lppe/Makefile.common44
-rw-r--r--epan/dissectors/asn1/lppe/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/lppe/lppe.cnf35
-rw-r--r--epan/dissectors/asn1/lppe/packet-lppe-template.c97
-rw-r--r--epan/dissectors/asn1/lte-rrc/CMakeLists.txt56
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn419
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn8224
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn130
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn174
-rw-r--r--epan/dissectors/asn1/lte-rrc/Makefile.am23
-rw-r--r--epan/dissectors/asn1/lte-rrc/Makefile.common47
-rw-r--r--epan/dissectors/asn1/lte-rrc/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn31
-rw-r--r--epan/dissectors/asn1/lte-rrc/lte-rrc.cnf2078
-rw-r--r--epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c3769
-rw-r--r--epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.h28
-rw-r--r--epan/dissectors/asn1/m3ap/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn57
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-Constants.asn85
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-Containers.asn203
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-IEs.asn296
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn472
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn213
-rw-r--r--epan/dissectors/asn1/m3ap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/m3ap/Makefile.common45
-rw-r--r--epan/dissectors/asn1/m3ap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/m3ap/m3ap.cnf340
-rw-r--r--epan/dissectors/asn1/m3ap/packet-m3ap-template.c218
-rw-r--r--epan/dissectors/asn1/mms/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/mms/Makefile.am23
-rw-r--r--epan/dissectors/asn1/mms/Makefile.common47
-rw-r--r--epan/dissectors/asn1/mms/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/mms/mms.asn2246
-rw-r--r--epan/dissectors/asn1/mms/mms.cnf134
-rw-r--r--epan/dissectors/asn1/mms/packet-mms-template.c179
-rw-r--r--epan/dissectors/asn1/mms/packet-mms-template.h30
-rw-r--r--epan/dissectors/asn1/mpeg-audio/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/mpeg-audio/Makefile.am23
-rw-r--r--epan/dissectors/asn1/mpeg-audio/Makefile.common42
-rw-r--r--epan/dissectors/asn1/mpeg-audio/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/mpeg-audio/mpeg-audio.asn75
-rw-r--r--epan/dissectors/asn1/mpeg-audio/mpeg-audio.cnf11
-rw-r--r--epan/dissectors/asn1/mpeg-audio/packet-mpeg-audio-template.c178
-rw-r--r--epan/dissectors/asn1/mpeg-pes/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/mpeg-pes/Makefile.am23
-rw-r--r--epan/dissectors/asn1/mpeg-pes/Makefile.common42
-rw-r--r--epan/dissectors/asn1/mpeg-pes/Makefile.nmake30
-rw-r--r--epan/dissectors/asn1/mpeg-pes/mpeg-pes.asn117
-rw-r--r--epan/dissectors/asn1/mpeg-pes/mpeg-pes.cnf8
-rw-r--r--epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c674
-rw-r--r--epan/dissectors/asn1/nbap/CMakeLists.txt53
-rw-r--r--epan/dissectors/asn1/nbap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/nbap/Makefile.common46
-rw-r--r--epan/dissectors/asn1/nbap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/nbap/NBAP-CommonDataTypes.asn64
-rw-r--r--epan/dissectors/asn1/nbap/NBAP-Constants.asn1575
-rw-r--r--epan/dissectors/asn1/nbap/NBAP-Containers.asn205
-rw-r--r--epan/dissectors/asn1/nbap/NBAP-IEs.asn10050
-rw-r--r--epan/dissectors/asn1/nbap/NBAP-PDU-Contents.asn12119
-rw-r--r--epan/dissectors/asn1/nbap/NBAP-PDU-Descriptions.asn970
-rw-r--r--epan/dissectors/asn1/nbap/nbap.cnf3253
-rw-r--r--epan/dissectors/asn1/nbap/packet-nbap-template.c570
-rw-r--r--epan/dissectors/asn1/nbap/packet-nbap-template.h57
-rw-r--r--epan/dissectors/asn1/novell_pkis/CMakeLists.txt45
-rw-r--r--epan/dissectors/asn1/novell_pkis/Makefile.am21
-rw-r--r--epan/dissectors/asn1/novell_pkis/Makefile.common34
-rw-r--r--epan/dissectors/asn1/novell_pkis/Makefile.nmake24
-rw-r--r--epan/dissectors/asn1/novell_pkis/novell_pkis.asn283
-rw-r--r--epan/dissectors/asn1/novell_pkis/novell_pkis.cnf21
-rw-r--r--epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c63
-rw-r--r--epan/dissectors/asn1/ns_cert_exts/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/ns_cert_exts/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ns_cert_exts/Makefile.common40
-rw-r--r--epan/dissectors/asn1/ns_cert_exts/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ns_cert_exts/NETSCAPE-CERT-EXTS.asn33
-rw-r--r--epan/dissectors/asn1/ns_cert_exts/ns_cert_exts.cnf26
-rw-r--r--epan/dissectors/asn1/ns_cert_exts/packet-ns_cert_exts-template.c74
-rw-r--r--epan/dissectors/asn1/ocsp/CMakeLists.txt53
-rw-r--r--epan/dissectors/asn1/ocsp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ocsp/Makefile.common51
-rw-r--r--epan/dissectors/asn1/ocsp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ocsp/OCSP.asn186
-rw-r--r--epan/dissectors/asn1/ocsp/ocsp.cnf55
-rw-r--r--epan/dissectors/asn1/ocsp/packet-ocsp-template.c139
-rw-r--r--epan/dissectors/asn1/ocsp/packet-ocsp-template.h33
-rw-r--r--epan/dissectors/asn1/p1/CMakeLists.txt69
-rw-r--r--epan/dissectors/asn1/p1/MHSProtocolObjectIdentifiers.asn112
-rw-r--r--epan/dissectors/asn1/p1/MTAAbstractService.asn499
-rw-r--r--epan/dissectors/asn1/p1/MTSAbstractService.asn2500
-rw-r--r--epan/dissectors/asn1/p1/MTSAccessProtocol.asn321
-rw-r--r--epan/dissectors/asn1/p1/MTSUpperBounds.asn150
-rw-r--r--epan/dissectors/asn1/p1/Makefile.am23
-rw-r--r--epan/dissectors/asn1/p1/Makefile.common76
-rw-r--r--epan/dissectors/asn1/p1/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/p1/p1.cnf1259
-rw-r--r--epan/dissectors/asn1/p1/packet-p1-template.c473
-rw-r--r--epan/dissectors/asn1/p1/packet-p1-template.h37
-rw-r--r--epan/dissectors/asn1/p22/CMakeLists.txt74
-rw-r--r--epan/dissectors/asn1/p22/IPMSExtendedBodyPartTypes2.asn38
-rw-r--r--epan/dissectors/asn1/p22/IPMSExtendedVoiceBodyPartType.asn40
-rw-r--r--epan/dissectors/asn1/p22/IPMSFileTransferBodyPartType.asn262
-rw-r--r--epan/dissectors/asn1/p22/IPMSForwardedContentBodyPartType.asn54
-rw-r--r--epan/dissectors/asn1/p22/IPMSHeadingExtensions.asn267
-rw-r--r--epan/dissectors/asn1/p22/IPMSInformationObjects.asn643
-rw-r--r--epan/dissectors/asn1/p22/IPMSMessageStoreAttributes.asn1175
-rw-r--r--epan/dissectors/asn1/p22/IPMSObjectIdentifiers.asn508
-rw-r--r--epan/dissectors/asn1/p22/IPMSSecurityExtensions.asn149
-rw-r--r--epan/dissectors/asn1/p22/IPMSUpperBounds.asn48
-rw-r--r--epan/dissectors/asn1/p22/Makefile.am23
-rw-r--r--epan/dissectors/asn1/p22/Makefile.common81
-rw-r--r--epan/dissectors/asn1/p22/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/p22/p22.cnf281
-rw-r--r--epan/dissectors/asn1/p22/packet-p22-template.c147
-rw-r--r--epan/dissectors/asn1/p22/packet-p22-template.h32
-rw-r--r--epan/dissectors/asn1/p7/CMakeLists.txt65
-rw-r--r--epan/dissectors/asn1/p7/MSAbstractService.asn1124
-rw-r--r--epan/dissectors/asn1/p7/MSAccessProtocol.asn257
-rw-r--r--epan/dissectors/asn1/p7/MSGeneralAttributeTypes.asn832
-rw-r--r--epan/dissectors/asn1/p7/MSUpperBounds.asn79
-rw-r--r--epan/dissectors/asn1/p7/Makefile.am23
-rw-r--r--epan/dissectors/asn1/p7/Makefile.common64
-rw-r--r--epan/dissectors/asn1/p7/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/p7/p7.cnf408
-rw-r--r--epan/dissectors/asn1/p7/packet-p7-template.c156
-rw-r--r--epan/dissectors/asn1/p7/packet-p7-template.h29
-rw-r--r--epan/dissectors/asn1/p772/CMakeLists.txt60
-rw-r--r--epan/dissectors/asn1/p772/MMSAbstractService.asn182
-rw-r--r--epan/dissectors/asn1/p772/MMSExtendedBodyPartTypes.asn115
-rw-r--r--epan/dissectors/asn1/p772/MMSHeadingExtensions.asn250
-rw-r--r--epan/dissectors/asn1/p772/MMSInformationObjects.asn62
-rw-r--r--epan/dissectors/asn1/p772/MMSObjectIdentifiers.asn262
-rw-r--r--epan/dissectors/asn1/p772/MMSOtherNotificationTypeExtensions.asn56
-rw-r--r--epan/dissectors/asn1/p772/MMSPerRecipientSpecifierExtensions.asn34
-rw-r--r--epan/dissectors/asn1/p772/MMSUpperBounds.asn25
-rw-r--r--epan/dissectors/asn1/p772/Makefile.am23
-rw-r--r--epan/dissectors/asn1/p772/Makefile.common59
-rw-r--r--epan/dissectors/asn1/p772/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/p772/p772.cnf117
-rw-r--r--epan/dissectors/asn1/p772/packet-p772-template.c118
-rw-r--r--epan/dissectors/asn1/p772/packet-p772-template.h29
-rw-r--r--epan/dissectors/asn1/pcap/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/pcap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pcap/Makefile.common45
-rw-r--r--epan/dissectors/asn1/pcap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pcap/PCAP-CommonDataTypes.asn56
-rw-r--r--epan/dissectors/asn1/pcap/PCAP-Constants.asn223
-rw-r--r--epan/dissectors/asn1/pcap/PCAP-Containers.asn153
-rw-r--r--epan/dissectors/asn1/pcap/PCAP-IEs.asn4764
-rw-r--r--epan/dissectors/asn1/pcap/PCAP-PDU-Contents.asn771
-rw-r--r--epan/dissectors/asn1/pcap/PCAP-PDU-Descriptions.asn281
-rw-r--r--epan/dissectors/asn1/pcap/packet-pcap-template.c215
-rw-r--r--epan/dissectors/asn1/pcap/pcap.cnf430
-rw-r--r--epan/dissectors/asn1/pkcs1/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/pkcs1/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkcs1/Makefile.common47
-rw-r--r--epan/dissectors/asn1/pkcs1/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkcs1/PKIXAlgs-2009.asn616
-rw-r--r--epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c122
-rw-r--r--epan/dissectors/asn1/pkcs1/packet-pkcs1-template.h30
-rw-r--r--epan/dissectors/asn1/pkcs1/pkcs1.cnf39
-rw-r--r--epan/dissectors/asn1/pkcs12/CMakeLists.txt54
-rw-r--r--epan/dissectors/asn1/pkcs12/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkcs12/Makefile.common56
-rw-r--r--epan/dissectors/asn1/pkcs12/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c512
-rw-r--r--epan/dissectors/asn1/pkcs12/packet-pkcs12-template.h31
-rw-r--r--epan/dissectors/asn1/pkcs12/pkcs12.asn275
-rw-r--r--epan/dissectors/asn1/pkcs12/pkcs12.cnf159
-rw-r--r--epan/dissectors/asn1/pkinit/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/pkinit/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkinit/Makefile.common47
-rw-r--r--epan/dissectors/asn1/pkinit/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkinit/PKINIT.asn150
-rw-r--r--epan/dissectors/asn1/pkinit/packet-pkinit-template.c120
-rw-r--r--epan/dissectors/asn1/pkinit/packet-pkinit-template.h33
-rw-r--r--epan/dissectors/asn1/pkinit/pkinit.cnf28
-rw-r--r--epan/dissectors/asn1/pkix1explicit/CMakeLists.txt49
-rw-r--r--epan/dissectors/asn1/pkix1explicit/IPAddrAndASCertExtn.asn71
-rw-r--r--epan/dissectors/asn1/pkix1explicit/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkix1explicit/Makefile.common45
-rw-r--r--epan/dissectors/asn1/pkix1explicit/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn860
-rw-r--r--epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c141
-rw-r--r--epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.h40
-rw-r--r--epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf90
-rw-r--r--epan/dissectors/asn1/pkix1explicit/pkix1explicit_exp.cnf43
-rw-r--r--epan/dissectors/asn1/pkix1implicit/CMakeLists.txt53
-rw-r--r--epan/dissectors/asn1/pkix1implicit/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkix1implicit/Makefile.common52
-rw-r--r--epan/dissectors/asn1/pkix1implicit/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn414
-rw-r--r--epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c91
-rw-r--r--epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.h32
-rw-r--r--epan/dissectors/asn1/pkix1implicit/pkix1implicit.cnf74
-rw-r--r--epan/dissectors/asn1/pkix1implicit/pkix1implicit_exp.cnf16
-rw-r--r--epan/dissectors/asn1/pkixac/CMakeLists.txt55
-rw-r--r--epan/dissectors/asn1/pkixac/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkixac/Makefile.common53
-rw-r--r--epan/dissectors/asn1/pkixac/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkixac/PKIXAttributeCertificate.asn200
-rw-r--r--epan/dissectors/asn1/pkixac/packet-pkixac-template.c86
-rw-r--r--epan/dissectors/asn1/pkixac/packet-pkixac-template.h32
-rw-r--r--epan/dissectors/asn1/pkixac/pkixac.cnf63
-rw-r--r--epan/dissectors/asn1/pkixproxy/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/pkixproxy/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkixproxy/Makefile.common43
-rw-r--r--epan/dissectors/asn1/pkixproxy/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkixproxy/PKIXProxy.asn69
-rw-r--r--epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c80
-rw-r--r--epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.h30
-rw-r--r--epan/dissectors/asn1/pkixproxy/pkixproxy.cnf19
-rw-r--r--epan/dissectors/asn1/pkixqualified/CMakeLists.txt54
-rw-r--r--epan/dissectors/asn1/pkixqualified/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkixqualified/Makefile.common55
-rw-r--r--epan/dissectors/asn1/pkixqualified/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkixqualified/PKIXqualified.asn224
-rw-r--r--epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c82
-rw-r--r--epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.h30
-rw-r--r--epan/dissectors/asn1/pkixqualified/pkixqualified.cnf36
-rw-r--r--epan/dissectors/asn1/pkixtsp/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/pkixtsp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pkixtsp/Makefile.common47
-rw-r--r--epan/dissectors/asn1/pkixtsp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pkixtsp/PKIXTSP.asn177
-rw-r--r--epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c134
-rw-r--r--epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.h30
-rw-r--r--epan/dissectors/asn1/pkixtsp/pkixtsp.cnf29
-rw-r--r--epan/dissectors/asn1/pres/CMakeLists.txt53
-rw-r--r--epan/dissectors/asn1/pres/ISO8823-PRESENTATION.asn388
-rw-r--r--epan/dissectors/asn1/pres/ISO9576-PRESENTATION.asn36
-rw-r--r--epan/dissectors/asn1/pres/Makefile.am23
-rw-r--r--epan/dissectors/asn1/pres/Makefile.common48
-rw-r--r--epan/dissectors/asn1/pres/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/pres/packet-pres-template.c460
-rw-r--r--epan/dissectors/asn1/pres/packet-pres-template.h30
-rw-r--r--epan/dissectors/asn1/pres/pres.cnf101
-rw-r--r--epan/dissectors/asn1/q932-ros/CMakeLists.txt55
-rw-r--r--epan/dissectors/asn1/q932-ros/Facility-Information-Element-Components.asn163
-rw-r--r--epan/dissectors/asn1/q932-ros/Makefile.am23
-rw-r--r--epan/dissectors/asn1/q932-ros/Makefile.common49
-rw-r--r--epan/dissectors/asn1/q932-ros/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c111
-rw-r--r--epan/dissectors/asn1/q932-ros/q932-ros.cnf120
-rw-r--r--epan/dissectors/asn1/q932/Addressing-Data-Elements.asn157
-rw-r--r--epan/dissectors/asn1/q932/CMakeLists.txt55
-rw-r--r--epan/dissectors/asn1/q932/Interpretation-component.asn24
-rw-r--r--epan/dissectors/asn1/q932/Makefile.am23
-rw-r--r--epan/dissectors/asn1/q932/Makefile.common48
-rw-r--r--epan/dissectors/asn1/q932/Makefile.nmake30
-rw-r--r--epan/dissectors/asn1/q932/Network-Facility-Extension.asn33
-rw-r--r--epan/dissectors/asn1/q932/Network-Protocol-Profile-component.asn20
-rw-r--r--epan/dissectors/asn1/q932/packet-q932-template.c398
-rw-r--r--epan/dissectors/asn1/q932/packet-q932-template.h30
-rw-r--r--epan/dissectors/asn1/q932/q932.cnf32
-rw-r--r--epan/dissectors/asn1/qsig/CMakeLists.txt81
-rw-r--r--epan/dissectors/asn1/qsig/General-Error-List.asn84
-rw-r--r--epan/dissectors/asn1/qsig/Makefile.am23
-rw-r--r--epan/dissectors/asn1/qsig/Makefile.common74
-rw-r--r--epan/dissectors/asn1/qsig/Makefile.nmake30
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-AOC.asn305
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CC.asn175
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CF.asn251
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CI.asn176
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CIDL.asn78
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CINT.asn152
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CMN.asn143
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CO.asn102
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CPI.asn67
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-CT.asn229
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-DND.asn211
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-MCM.asn399
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-MCR.asn169
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-MID.asn129
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-NA.asn135
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-PR.asn169
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-PUMCH.asn135
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-PUMR.asn205
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-RE.asn62
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-SD.asn89
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-SMS.asn339
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-SSCT.asn120
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-WTMAU.asn154
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-WTMCH.asn138
-rw-r--r--epan/dissectors/asn1/qsig/QSIG-WTMLR.asn122
-rw-r--r--epan/dissectors/asn1/qsig/SYNC-SIG.asn72
-rw-r--r--epan/dissectors/asn1/qsig/packet-qsig-template.c746
-rw-r--r--epan/dissectors/asn1/qsig/packet-qsig-template.h30
-rw-r--r--epan/dissectors/asn1/qsig/qsig-gf-ade.asn132
-rw-r--r--epan/dissectors/asn1/qsig/qsig-gf-ext.asn32
-rw-r--r--epan/dissectors/asn1/qsig/qsig-gf-gp.asn15
-rw-r--r--epan/dissectors/asn1/qsig/qsig.cnf187
-rw-r--r--epan/dissectors/asn1/ranap/CMakeLists.txt53
-rw-r--r--epan/dissectors/asn1/ranap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ranap/Makefile.common46
-rw-r--r--epan/dissectors/asn1/ranap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ranap/RANAP-CommonDataTypes.asn41
-rw-r--r--epan/dissectors/asn1/ranap/RANAP-Constants.asn386
-rw-r--r--epan/dissectors/asn1/ranap/RANAP-Containers.asn202
-rw-r--r--epan/dissectors/asn1/ranap/RANAP-IEs.asn2502
-rw-r--r--epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn3496
-rw-r--r--epan/dissectors/asn1/ranap/RANAP-PDU-Descriptions.asn615
-rw-r--r--epan/dissectors/asn1/ranap/packet-ranap-template.c397
-rw-r--r--epan/dissectors/asn1/ranap/packet-ranap-template.h28
-rw-r--r--epan/dissectors/asn1/ranap/ranap.cnf1046
-rw-r--r--epan/dissectors/asn1/rnsap/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/rnsap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/rnsap/Makefile.common45
-rw-r--r--epan/dissectors/asn1/rnsap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-CommonDataTypes.asn65
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-Constants.asn1134
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-Containers.asn203
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-IEs.asn9803
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn8233
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-PDU-Descriptions.asn771
-rw-r--r--epan/dissectors/asn1/rnsap/packet-rnsap-template.c189
-rw-r--r--epan/dissectors/asn1/rnsap/rnsap.cnf945
-rw-r--r--epan/dissectors/asn1/ros/CMakeLists.txt60
-rw-r--r--epan/dissectors/asn1/ros/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ros/Makefile.common56
-rw-r--r--epan/dissectors/asn1/ros/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ros/Remote-Operations-Generic-ROS-PDUs.asn163
-rw-r--r--epan/dissectors/asn1/ros/Remote-Operations-Information-Objects.asn125
-rw-r--r--epan/dissectors/asn1/ros/Remote-Operations-Useful-Definitions.asn95
-rw-r--r--epan/dissectors/asn1/ros/packet-ros-template.c530
-rw-r--r--epan/dissectors/asn1/ros/packet-ros-template.h78
-rw-r--r--epan/dissectors/asn1/ros/ros-err.cnf46
-rw-r--r--epan/dissectors/asn1/ros/ros-inv.cnf46
-rw-r--r--epan/dissectors/asn1/ros/ros-rej.cnf18
-rw-r--r--epan/dissectors/asn1/ros/ros-res.cnf49
-rw-r--r--epan/dissectors/asn1/ros/ros.asn190
-rw-r--r--epan/dissectors/asn1/ros/ros.cnf207
-rw-r--r--epan/dissectors/asn1/rrc/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/rrc/Class-definitions.asn400
-rw-r--r--epan/dissectors/asn1/rrc/Constant-definitions.asn205
-rw-r--r--epan/dissectors/asn1/rrc/InformationElements.asn25369
-rw-r--r--epan/dissectors/asn1/rrc/Internode-definitions.asn2314
-rw-r--r--epan/dissectors/asn1/rrc/Makefile.am23
-rw-r--r--epan/dissectors/asn1/rrc/Makefile.common45
-rw-r--r--epan/dissectors/asn1/rrc/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/rrc/PDU-definitions.asn13351
-rw-r--r--epan/dissectors/asn1/rrc/packet-rrc-template.c368
-rw-r--r--epan/dissectors/asn1/rrc/packet-rrc-template.h64
-rw-r--r--epan/dissectors/asn1/rrc/rrc.cnf951
-rw-r--r--epan/dissectors/asn1/rrlp/CMakeLists.txt50
-rw-r--r--epan/dissectors/asn1/rrlp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/rrlp/Makefile.common43
-rw-r--r--epan/dissectors/asn1/rrlp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/rrlp/RRLP-Components.asn2413
-rw-r--r--epan/dissectors/asn1/rrlp/RRLP-Messages.asn39
-rw-r--r--epan/dissectors/asn1/rrlp/packet-rrlp-template.c102
-rw-r--r--epan/dissectors/asn1/rrlp/rrlp.cnf40
-rw-r--r--epan/dissectors/asn1/rtse/CMakeLists.txt55
-rw-r--r--epan/dissectors/asn1/rtse/Makefile.am23
-rw-r--r--epan/dissectors/asn1/rtse/Makefile.common45
-rw-r--r--epan/dissectors/asn1/rtse/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/rtse/packet-rtse-template.c429
-rw-r--r--epan/dissectors/asn1/rtse/packet-rtse-template.h31
-rw-r--r--epan/dissectors/asn1/rtse/rtse.asn141
-rw-r--r--epan/dissectors/asn1/rtse/rtse.cnf179
-rw-r--r--epan/dissectors/asn1/rua/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/rua/Makefile.am23
-rw-r--r--epan/dissectors/asn1/rua/Makefile.common45
-rw-r--r--epan/dissectors/asn1/rua/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/rua/RUA-CommonDataTypes.asn53
-rw-r--r--epan/dissectors/asn1/rua/RUA-Constants.asn63
-rw-r--r--epan/dissectors/asn1/rua/RUA-Containers.asn161
-rw-r--r--epan/dissectors/asn1/rua/RUA-IEs.asn199
-rw-r--r--epan/dissectors/asn1/rua/RUA-PDU-Contents.asn204
-rw-r--r--epan/dissectors/asn1/rua/RUA-PDU-Descriptions.asn176
-rw-r--r--epan/dissectors/asn1/rua/packet-rua-template.c187
-rw-r--r--epan/dissectors/asn1/rua/rua.cnf147
-rw-r--r--epan/dissectors/asn1/s1ap/CMakeLists.txt58
-rw-r--r--epan/dissectors/asn1/s1ap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/s1ap/Makefile.common49
-rw-r--r--epan/dissectors/asn1/s1ap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn35
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-Constants.asn377
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-Containers.asn200
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-IEs.asn1950
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn2653
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn655
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn339
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.c303
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.h36
-rw-r--r--epan/dissectors/asn1/s1ap/s1ap.cnf1345
-rw-r--r--epan/dissectors/asn1/sabp/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/sabp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/sabp/Makefile.common45
-rw-r--r--epan/dissectors/asn1/sabp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/sabp/SABP-CommonDataTypes.asn37
-rw-r--r--epan/dissectors/asn1/sabp/SABP-Constants.asn86
-rw-r--r--epan/dissectors/asn1/sabp/SABP-Containers.asn121
-rw-r--r--epan/dissectors/asn1/sabp/SABP-IEs.asn292
-rw-r--r--epan/dissectors/asn1/sabp/SABP-PDU-Contents.asn534
-rw-r--r--epan/dissectors/asn1/sabp/SABP-PDU-Descriptions.asn202
-rw-r--r--epan/dissectors/asn1/sabp/packet-sabp-template.c298
-rw-r--r--epan/dissectors/asn1/sabp/sabp.cnf216
-rw-r--r--epan/dissectors/asn1/sbc-ap/CMakeLists.txt56
-rw-r--r--epan/dissectors/asn1/sbc-ap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/sbc-ap/Makefile.common47
-rw-r--r--epan/dissectors/asn1/sbc-ap/Makefile.nmake25
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn35
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn85
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn121
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn246
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn182
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn135
-rw-r--r--epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c206
-rw-r--r--epan/dissectors/asn1/sbc-ap/sbc-ap.cnf178
-rw-r--r--epan/dissectors/asn1/smrse/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/smrse/Makefile.am23
-rw-r--r--epan/dissectors/asn1/smrse/Makefile.common43
-rw-r--r--epan/dissectors/asn1/smrse/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/smrse/SMRSE.asn133
-rw-r--r--epan/dissectors/asn1/smrse/packet-smrse-template.c183
-rw-r--r--epan/dissectors/asn1/smrse/packet-smrse-template.h30
-rw-r--r--epan/dissectors/asn1/smrse/smrse.cnf49
-rw-r--r--epan/dissectors/asn1/snmp/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/snmp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/snmp/Makefile.common43
-rw-r--r--epan/dissectors/asn1/snmp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.c2660
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.h98
-rw-r--r--epan/dissectors/asn1/snmp/snmp.asn338
-rw-r--r--epan/dissectors/asn1/snmp/snmp.cnf241
-rw-r--r--epan/dissectors/asn1/spnego/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/spnego/Makefile.am23
-rw-r--r--epan/dissectors/asn1/spnego/Makefile.common42
-rw-r--r--epan/dissectors/asn1/spnego/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/spnego/packet-spnego-template.c1491
-rw-r--r--epan/dissectors/asn1/spnego/spnego.asn104
-rw-r--r--epan/dissectors/asn1/spnego/spnego.cnf179
-rw-r--r--epan/dissectors/asn1/sv/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/sv/Makefile.am23
-rw-r--r--epan/dissectors/asn1/sv/Makefile.common41
-rw-r--r--epan/dissectors/asn1/sv/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/sv/packet-sv-template.c340
-rw-r--r--epan/dissectors/asn1/sv/packet-sv-template.h42
-rw-r--r--epan/dissectors/asn1/sv/sv.asn28
-rw-r--r--epan/dissectors/asn1/sv/sv.cnf84
-rw-r--r--epan/dissectors/asn1/t124/CMakeLists.txt49
-rw-r--r--epan/dissectors/asn1/t124/GCC-PROTOCOL.asn1179
-rw-r--r--epan/dissectors/asn1/t124/Makefile.am25
-rw-r--r--epan/dissectors/asn1/t124/Makefile.common44
-rw-r--r--epan/dissectors/asn1/t124/Makefile.nmake28
-rw-r--r--epan/dissectors/asn1/t124/packet-t124-template.c220
-rw-r--r--epan/dissectors/asn1/t124/packet-t124-template.h41
-rw-r--r--epan/dissectors/asn1/t124/t124.cnf241
-rw-r--r--epan/dissectors/asn1/t125/CMakeLists.txt47
-rw-r--r--epan/dissectors/asn1/t125/MCS-PROTOCOL.asn445
-rw-r--r--epan/dissectors/asn1/t125/Makefile.am23
-rw-r--r--epan/dissectors/asn1/t125/Makefile.common42
-rw-r--r--epan/dissectors/asn1/t125/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/t125/packet-t125-template.c151
-rw-r--r--epan/dissectors/asn1/t125/t125.cnf119
-rw-r--r--epan/dissectors/asn1/t38/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/t38/Makefile.am23
-rw-r--r--epan/dissectors/asn1/t38/Makefile.common45
-rw-r--r--epan/dissectors/asn1/t38/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/t38/T38_1998.asn55
-rw-r--r--epan/dissectors/asn1/t38/T38_2002.asn54
-rw-r--r--epan/dissectors/asn1/t38/packet-t38-template.c779
-rw-r--r--epan/dissectors/asn1/t38/packet-t38-template.h85
-rw-r--r--epan/dissectors/asn1/t38/t38.cnf261
-rw-r--r--epan/dissectors/asn1/tcap/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/tcap/DialoguePDUs.asn79
-rw-r--r--epan/dissectors/asn1/tcap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/tcap/Makefile.common50
-rw-r--r--epan/dissectors/asn1/tcap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/tcap/TC-Notation-Extensions.asn87
-rw-r--r--epan/dissectors/asn1/tcap/TCAPMessages.asn96
-rw-r--r--epan/dissectors/asn1/tcap/UnidialoguePDUs.asn25
-rw-r--r--epan/dissectors/asn1/tcap/packet-tcap-template.c2494
-rw-r--r--epan/dissectors/asn1/tcap/packet-tcap-template.h229
-rw-r--r--epan/dissectors/asn1/tcap/tcap.asn246
-rw-r--r--epan/dissectors/asn1/tcap/tcap.cnf259
-rw-r--r--epan/dissectors/asn1/tetra/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/tetra/Makefile.am23
-rw-r--r--epan/dissectors/asn1/tetra/Makefile.common43
-rw-r--r--epan/dissectors/asn1/tetra/Makefile.nmake25
-rw-r--r--epan/dissectors/asn1/tetra/packet-tetra-template.c654
-rw-r--r--epan/dissectors/asn1/tetra/packet-tetra-template.h53
-rw-r--r--epan/dissectors/asn1/tetra/tetra.asn2337
-rw-r--r--epan/dissectors/asn1/tetra/tetra.cnf261
-rw-r--r--epan/dissectors/asn1/ulp/CMakeLists.txt49
-rw-r--r--epan/dissectors/asn1/ulp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/ulp/Makefile.common42
-rw-r--r--epan/dissectors/asn1/ulp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/ulp/SUPL.asn1011
-rw-r--r--epan/dissectors/asn1/ulp/ULP-Components.asn792
-rw-r--r--epan/dissectors/asn1/ulp/ULP.asn70
-rw-r--r--epan/dissectors/asn1/ulp/packet-ulp-template.c469
-rw-r--r--epan/dissectors/asn1/ulp/ulp.cnf794
-rw-r--r--epan/dissectors/asn1/wlancertextn/CMakeLists.txt48
-rw-r--r--epan/dissectors/asn1/wlancertextn/Makefile.am23
-rw-r--r--epan/dissectors/asn1/wlancertextn/Makefile.common43
-rw-r--r--epan/dissectors/asn1/wlancertextn/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/wlancertextn/WLANCERTEXTN.asn93
-rw-r--r--epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c82
-rw-r--r--epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.h30
-rw-r--r--epan/dissectors/asn1/wlancertextn/wlancertextn.cnf21
-rw-r--r--epan/dissectors/asn1/x2ap/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/x2ap/Makefile.am23
-rw-r--r--epan/dissectors/asn1/x2ap/Makefile.common45
-rw-r--r--epan/dissectors/asn1/x2ap/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn51
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-Constants.asn189
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-Containers.asn195
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-IEs.asn1374
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn1066
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn313
-rw-r--r--epan/dissectors/asn1/x2ap/packet-x2ap-template.c212
-rw-r--r--epan/dissectors/asn1/x2ap/x2ap.cnf424
-rw-r--r--epan/dissectors/asn1/x509af/AuthenticationFramework.asn283
-rw-r--r--epan/dissectors/asn1/x509af/CMakeLists.txt58
-rw-r--r--epan/dissectors/asn1/x509af/Makefile.am23
-rw-r--r--epan/dissectors/asn1/x509af/Makefile.common57
-rw-r--r--epan/dissectors/asn1/x509af/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/x509af/packet-x509af-template.c198
-rw-r--r--epan/dissectors/asn1/x509af/packet-x509af-template.h32
-rw-r--r--epan/dissectors/asn1/x509af/x509af.cnf162
-rw-r--r--epan/dissectors/asn1/x509ce/CMakeLists.txt64
-rw-r--r--epan/dissectors/asn1/x509ce/CertificateExtensions.asn744
-rw-r--r--epan/dissectors/asn1/x509ce/CertificateExtensionsCiplus.asn46
-rw-r--r--epan/dissectors/asn1/x509ce/Makefile.am23
-rw-r--r--epan/dissectors/asn1/x509ce/Makefile.common65
-rw-r--r--epan/dissectors/asn1/x509ce/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/x509ce/packet-x509ce-template.c142
-rw-r--r--epan/dissectors/asn1/x509ce/packet-x509ce-template.h33
-rw-r--r--epan/dissectors/asn1/x509ce/x509ce.cnf187
-rw-r--r--epan/dissectors/asn1/x509if/CMakeLists.txt57
-rw-r--r--epan/dissectors/asn1/x509if/InformationFramework.asn685
-rw-r--r--epan/dissectors/asn1/x509if/Makefile.am23
-rw-r--r--epan/dissectors/asn1/x509if/Makefile.common51
-rw-r--r--epan/dissectors/asn1/x509if/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/x509if/ServiceAdministration.asn239
-rw-r--r--epan/dissectors/asn1/x509if/packet-x509if-template.c158
-rw-r--r--epan/dissectors/asn1/x509if/packet-x509if-template.h35
-rw-r--r--epan/dissectors/asn1/x509if/x509if.cnf420
-rw-r--r--epan/dissectors/asn1/x509sat/CMakeLists.txt57
-rw-r--r--epan/dissectors/asn1/x509sat/Makefile.am23
-rw-r--r--epan/dissectors/asn1/x509sat/Makefile.common54
-rw-r--r--epan/dissectors/asn1/x509sat/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/x509sat/SelectedAttributeTypes.asn1491
-rw-r--r--epan/dissectors/asn1/x509sat/packet-x509sat-template.c120
-rw-r--r--epan/dissectors/asn1/x509sat/packet-x509sat-template.h30
-rw-r--r--epan/dissectors/asn1/x509sat/x509sat.cnf398
-rw-r--r--epan/dissectors/asn1/x721/Attribute-ASN1Module.asn533
-rw-r--r--epan/dissectors/asn1/x721/CMakeLists.txt51
-rw-r--r--epan/dissectors/asn1/x721/Makefile.am23
-rw-r--r--epan/dissectors/asn1/x721/Makefile.common34
-rw-r--r--epan/dissectors/asn1/x721/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/x721/ManagedObjectClassesDefinitions.asn19
-rw-r--r--epan/dissectors/asn1/x721/Notification-ASN1Module.asn99
-rw-r--r--epan/dissectors/asn1/x721/Parameter-ASN1Module.asn14
-rw-r--r--epan/dissectors/packet-HI2Operations.c24
-rw-r--r--epan/dissectors/packet-acp133.c28
-rw-r--r--epan/dissectors/packet-acp133.h4
-rw-r--r--epan/dissectors/packet-acse.c62
-rw-r--r--epan/dissectors/packet-acse.h8
-rw-r--r--epan/dissectors/packet-ansi_map.c114
-rw-r--r--epan/dissectors/packet-ansi_map.h4
-rw-r--r--epan/dissectors/packet-ansi_tcap.c58
-rw-r--r--epan/dissectors/packet-ansi_tcap.h4
-rw-r--r--epan/dissectors/packet-atn-cm.c24
-rw-r--r--epan/dissectors/packet-atn-cpdlc.c24
-rw-r--r--epan/dissectors/packet-atn-ulcs.c24
-rw-r--r--epan/dissectors/packet-atn-ulcs.h4
-rw-r--r--epan/dissectors/packet-c1222.c48
-rw-r--r--epan/dissectors/packet-c1222.h4
-rw-r--r--epan/dissectors/packet-camel.c40
-rw-r--r--epan/dissectors/packet-camel.h4
-rw-r--r--epan/dissectors/packet-cdt.c38
-rw-r--r--epan/dissectors/packet-cdt.h8
-rw-r--r--epan/dissectors/packet-charging_ase.c26
-rw-r--r--epan/dissectors/packet-charging_ase.h8
-rw-r--r--epan/dissectors/packet-cmip.c94
-rw-r--r--epan/dissectors/packet-cmip.h8
-rw-r--r--epan/dissectors/packet-cmp.c34
-rw-r--r--epan/dissectors/packet-cmp.h8
-rw-r--r--epan/dissectors/packet-cms.c58
-rw-r--r--epan/dissectors/packet-cms.h8
-rw-r--r--epan/dissectors/packet-credssp.c30
-rw-r--r--epan/dissectors/packet-credssp.h8
-rw-r--r--epan/dissectors/packet-crmf.c30
-rw-r--r--epan/dissectors/packet-crmf.h8
-rw-r--r--epan/dissectors/packet-dap.c40
-rw-r--r--epan/dissectors/packet-dap.h8
-rw-r--r--epan/dissectors/packet-disp.c42
-rw-r--r--epan/dissectors/packet-disp.h8
-rw-r--r--epan/dissectors/packet-dop.c68
-rw-r--r--epan/dissectors/packet-dop.h8
-rw-r--r--epan/dissectors/packet-dsp.c28
-rw-r--r--epan/dissectors/packet-dsp.h8
-rw-r--r--epan/dissectors/packet-ess.c44
-rw-r--r--epan/dissectors/packet-ess.h8
-rw-r--r--epan/dissectors/packet-ftam.c42
-rw-r--r--epan/dissectors/packet-ftam.h8
-rw-r--r--epan/dissectors/packet-goose.c26
-rw-r--r--epan/dissectors/packet-gprscdr.c34
-rw-r--r--epan/dissectors/packet-gprscdr.h8
-rw-r--r--epan/dissectors/packet-gsm_map.c140
-rw-r--r--epan/dissectors/packet-gsm_map.h8
-rw-r--r--epan/dissectors/packet-h225.c140
-rw-r--r--epan/dissectors/packet-h225.h8
-rw-r--r--epan/dissectors/packet-h235.c34
-rw-r--r--epan/dissectors/packet-h235.h8
-rw-r--r--epan/dissectors/packet-h245.c232
-rw-r--r--epan/dissectors/packet-h245.h8
-rw-r--r--epan/dissectors/packet-h248.c118
-rw-r--r--epan/dissectors/packet-h248.h4
-rw-r--r--epan/dissectors/packet-h282.c36
-rw-r--r--epan/dissectors/packet-h283.c52
-rw-r--r--epan/dissectors/packet-h323.c24
-rw-r--r--epan/dissectors/packet-h323.h4
-rw-r--r--epan/dissectors/packet-h450-ros.c54
-rw-r--r--epan/dissectors/packet-h450-ros.h8
-rw-r--r--epan/dissectors/packet-h450.c44
-rw-r--r--epan/dissectors/packet-h460.c24
-rw-r--r--epan/dissectors/packet-h501.c28
-rw-r--r--epan/dissectors/packet-hnbap.c70
-rw-r--r--epan/dissectors/packet-idmp.c24
-rw-r--r--epan/dissectors/packet-idmp.h4
-rw-r--r--epan/dissectors/packet-ilp.c44
-rw-r--r--epan/dissectors/packet-inap.c82
-rw-r--r--epan/dissectors/packet-inap.h8
-rw-r--r--epan/dissectors/packet-isdn-sup.c48
-rw-r--r--epan/dissectors/packet-kerberos.c84
-rw-r--r--epan/dissectors/packet-kerberos.h8
-rw-r--r--epan/dissectors/packet-lcsap.c62
-rw-r--r--epan/dissectors/packet-lcsap.h8
-rw-r--r--epan/dissectors/packet-ldap.c120
-rw-r--r--epan/dissectors/packet-ldap.h4
-rw-r--r--epan/dissectors/packet-logotypecertextn.c32
-rw-r--r--epan/dissectors/packet-logotypecertextn.h4
-rw-r--r--epan/dissectors/packet-lpp.c284
-rw-r--r--epan/dissectors/packet-lpp.h8
-rw-r--r--epan/dissectors/packet-lppa.c38
-rw-r--r--epan/dissectors/packet-lppe.c32
-rw-r--r--epan/dissectors/packet-lte-rrc.c32
-rw-r--r--epan/dissectors/packet-lte-rrc.h8
-rw-r--r--epan/dissectors/packet-m3ap.c90
-rw-r--r--epan/dissectors/packet-mms.c38
-rw-r--r--epan/dissectors/packet-mms.h8
-rw-r--r--epan/dissectors/packet-mpeg-audio.c24
-rw-r--r--epan/dissectors/packet-mpeg-pes.c24
-rw-r--r--epan/dissectors/packet-nbap.c280
-rw-r--r--epan/dissectors/packet-nbap.h4
-rw-r--r--epan/dissectors/packet-novell_pkis.c28
-rw-r--r--epan/dissectors/packet-ns_cert_exts.c28
-rw-r--r--epan/dissectors/packet-ocsp.c32
-rw-r--r--epan/dissectors/packet-ocsp.h4
-rw-r--r--epan/dissectors/packet-p1.c194
-rw-r--r--epan/dissectors/packet-p1.h12
-rw-r--r--epan/dissectors/packet-p22.c54
-rw-r--r--epan/dissectors/packet-p22.h8
-rw-r--r--epan/dissectors/packet-p7.c44
-rw-r--r--epan/dissectors/packet-p7.h8
-rw-r--r--epan/dissectors/packet-p772.c38
-rw-r--r--epan/dissectors/packet-p772.h4
-rw-r--r--epan/dissectors/packet-pcap.c32
-rw-r--r--epan/dissectors/packet-pkcs1.c28
-rw-r--r--epan/dissectors/packet-pkcs1.h8
-rw-r--r--epan/dissectors/packet-pkcs12.c58
-rw-r--r--epan/dissectors/packet-pkcs12.h4
-rw-r--r--epan/dissectors/packet-pkinit.c28
-rw-r--r--epan/dissectors/packet-pkinit.h8
-rw-r--r--epan/dissectors/packet-pkix1explicit.c40
-rw-r--r--epan/dissectors/packet-pkix1explicit.h8
-rw-r--r--epan/dissectors/packet-pkix1implicit.c28
-rw-r--r--epan/dissectors/packet-pkix1implicit.h8
-rw-r--r--epan/dissectors/packet-pkixac.c36
-rw-r--r--epan/dissectors/packet-pkixac.h4
-rw-r--r--epan/dissectors/packet-pkixproxy.c28
-rw-r--r--epan/dissectors/packet-pkixproxy.h4
-rw-r--r--epan/dissectors/packet-pkixqualified.c30
-rw-r--r--epan/dissectors/packet-pkixqualified.h4
-rw-r--r--epan/dissectors/packet-pkixtsp.c28
-rw-r--r--epan/dissectors/packet-pkixtsp.h4
-rw-r--r--epan/dissectors/packet-pres.c36
-rw-r--r--epan/dissectors/packet-pres.h4
-rw-r--r--epan/dissectors/packet-q932-ros.c58
-rw-r--r--epan/dissectors/packet-q932.c24
-rw-r--r--epan/dissectors/packet-q932.h8
-rw-r--r--epan/dissectors/packet-qsig.c48
-rw-r--r--epan/dissectors/packet-qsig.h8
-rw-r--r--epan/dissectors/packet-ranap.c76
-rw-r--r--epan/dissectors/packet-ranap.h8
-rw-r--r--epan/dissectors/packet-rnsap.c40
-rw-r--r--epan/dissectors/packet-ros.c52
-rw-r--r--epan/dissectors/packet-ros.h8
-rw-r--r--epan/dissectors/packet-rrc.c278
-rw-r--r--epan/dissectors/packet-rrc.h8
-rw-r--r--epan/dissectors/packet-rrlp.c32
-rw-r--r--epan/dissectors/packet-rtse.c56
-rw-r--r--epan/dissectors/packet-rtse.h8
-rw-r--r--epan/dissectors/packet-rua.c50
-rw-r--r--epan/dissectors/packet-s1ap.c204
-rw-r--r--epan/dissectors/packet-s1ap.h8
-rw-r--r--epan/dissectors/packet-sabp.c48
-rw-r--r--epan/dissectors/packet-sbc-ap.c38
-rw-r--r--epan/dissectors/packet-smrse.c26
-rw-r--r--epan/dissectors/packet-smrse.h4
-rw-r--r--epan/dissectors/packet-snmp.c46
-rw-r--r--epan/dissectors/packet-snmp.h4
-rw-r--r--epan/dissectors/packet-spnego.c38
-rw-r--r--epan/dissectors/packet-sv.c34
-rw-r--r--epan/dissectors/packet-sv.h4
-rw-r--r--epan/dissectors/packet-t124.c38
-rw-r--r--epan/dissectors/packet-t124.h8
-rw-r--r--epan/dissectors/packet-t125.c28
-rw-r--r--epan/dissectors/packet-t38.c50
-rw-r--r--epan/dissectors/packet-t38.h8
-rw-r--r--epan/dissectors/packet-tcap.c56
-rw-r--r--epan/dissectors/packet-tcap.h8
-rw-r--r--epan/dissectors/packet-tetra.c92
-rw-r--r--epan/dissectors/packet-tetra.h4
-rw-r--r--epan/dissectors/packet-ulp.c190
-rw-r--r--epan/dissectors/packet-wlancertextn.c28
-rw-r--r--epan/dissectors/packet-wlancertextn.h4
-rw-r--r--epan/dissectors/packet-x2ap.c46
-rw-r--r--epan/dissectors/packet-x509af.c44
-rw-r--r--epan/dissectors/packet-x509af.h8
-rw-r--r--epan/dissectors/packet-x509ce.c36
-rw-r--r--epan/dissectors/packet-x509ce.h8
-rw-r--r--epan/dissectors/packet-x509if.c68
-rw-r--r--epan/dissectors/packet-x509if.h8
-rw-r--r--epan/dissectors/packet-x509sat.c34
-rw-r--r--epan/dissectors/packet-x509sat.h8
1261 files changed, 358414 insertions, 3273 deletions
diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt
index 815e86bd23..216dc5f0e9 100644
--- a/epan/dissectors/CMakeLists.txt
+++ b/epan/dissectors/CMakeLists.txt
@@ -21,6 +21,7 @@
ADD_CUSTOM_CMAKE_INCLUDE()
+add_subdirectory(asn1 EXCLUDE_FROM_ALL)
add_subdirectory(dcerpc)
include_directories(
diff --git a/epan/dissectors/Makefile.am b/epan/dissectors/Makefile.am
index 4077a088cb..2e3613d4c8 100644
--- a/epan/dissectors/Makefile.am
+++ b/epan/dissectors/Makefile.am
@@ -42,8 +42,8 @@ libdissectors_la_SOURCES = \
$(PIDL_DISSECTOR_SRC) \
$(DISSECTOR_SUPPORT_SRC)
-# include pidl in the source tarball. But nothing to build...
-DIST_SUBDIRS = pidl dcerpc
+# include asn1 and pidl in the source tarball. But nothing to build...
+DIST_SUBDIRS = asn1 pidl dcerpc
SUBDIRS = dcerpc
diff --git a/epan/dissectors/asn1/.gitignore b/epan/dissectors/asn1/.gitignore
new file mode 100644
index 0000000000..b98cc0cb0e
--- /dev/null
+++ b/epan/dissectors/asn1/.gitignore
@@ -0,0 +1,59 @@
+# Generated sources #
+#####################
+*.py
+acse/acse-exp.cnf
+cmip/cmip-exp.cnf
+cms/cms-exp.cnf
+credssp/credssp-exp.cnf
+crmf/crmf-exp.cnf
+dap/dap-exp.cnf
+disp/disp-exp.cnf
+dop/dop-exp.cnf
+dsp/dsp-exp.cnf
+ess/packet-ess-dis-tab.c
+ess/packet-ess-ett.c
+ess/packet-ess-ettarr.c
+ess/packet-ess-exp.h
+ess/packet-ess-fn.c
+ess/packet-ess-hf.c
+ess/packet-ess-hfarr.c
+ess/packet-ess-val.h
+ftam/ftam-exp.cnf
+gprscdr/gprscdr-exp.cnf
+gsm_map/gsm_map-exp.cnf
+gsm_map/packet-gsm_map-dis-tab.c
+gsm_map/packet-gsm_map-ett.c
+gsm_map/packet-gsm_map-ettarr.c
+gsm_map/packet-gsm_map-exp.h
+gsm_map/packet-gsm_map-fn.c
+gsm_map/packet-gsm_map-hf.c
+gsm_map/packet-gsm_map-hfarr.c
+gsm_map/packet-gsm_map-table.c
+gsm_map/packet-gsm_map-table2.c
+gsm_map/packet-gsm_map-val.h
+h225/h225-exp.cnf
+h235/h235-exp.cnf
+h245/h245-exp.cnf
+h450-ros/h450-ros-exp.cnf
+idmp/idmp-exp.cnf
+inap/inap-exp.cnf
+isdn-sup/isdn-sup-exp.cnf
+kerberos/kerberos-exp.cnf
+lcsap/lcsap-exp.cnf
+ldap/ldap-exp.cnf
+lpp/lpp-exp.cnf
+lte-rrc/lte-rrc-exp.cnf
+p1/p1-exp.cnf
+p22/p22-exp.cnf
+p7/p7-exp.cnf
+q932/q932-exp.cnf
+qsig/qsig-exp.cnf
+ros/ros-exp.cnf
+rtse/rtse-exp.cnf
+sbc-ap/sbc-ap-exp.cnf
+s1ap/s1ap-exp.cnf
+t124/MCS-PROTOCOL.asn
+x509af/x509af-exp.cnf
+x509ce/x509ce-exp.cnf
+x509if/x509if-exp.cnf
+x509sat/x509sat-exp.cnf
diff --git a/epan/dissectors/asn1/CMakeLists.txt b/epan/dissectors/asn1/CMakeLists.txt
new file mode 100644
index 0000000000..4c665feaaa
--- /dev/null
+++ b/epan/dissectors/asn1/CMakeLists.txt
@@ -0,0 +1,142 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+ADD_CUSTOM_CMAKE_INCLUDE()
+
+set(ASN1_SRC_DIRS
+ HI2Operations
+ acp133
+ acse
+ ansi_map
+ ansi_tcap
+ atn-cm
+ atn-cpdlc
+ atn-ulcs
+ c1222
+ camel
+ cdt
+ charging_ase
+ cmip
+ cmp
+ cms
+ credssp
+ crmf
+ dap
+ disp
+ dop
+ dsp
+ ess
+ ftam
+ goose
+ gprscdr
+ gsm_map
+ h225
+ h235
+ h245
+ h248
+ h282
+ h283
+ h323
+ h450
+ h450-ros
+ h460
+ h501
+ hnbap
+ idmp
+ ilp
+ inap
+ isdn-sup
+ kerberos
+ lcsap
+ ldap
+ logotypecertextn
+ lpp
+ lppa
+ lppe
+ lte-rrc
+ m3ap
+ mms
+ mpeg-audio
+ mpeg-pes
+ nbap
+ ns_cert_exts
+ novell_pkis
+ ocsp
+ p1
+ p22
+ p7
+ p772
+ pcap
+ pkcs1
+ pkcs12
+ pkinit
+ pkix1explicit
+ pkix1implicit
+ pkixac
+ pkixproxy
+ pkixqualified
+ pkixtsp
+ pres
+ q932
+ q932-ros
+ qsig
+ ranap
+ rnsap
+ ros
+ rrc
+ rrlp
+ rtse
+ rua
+ s1ap
+ sabp
+ sbc-ap
+ smrse
+ snmp
+ spnego
+ sv
+ t124
+ t125
+ t38
+ tcap
+ tetra
+ ulp
+ wlancertextn
+ x2ap
+ x509af
+ x509ce
+ x509if
+ x509sat
+ ${CUSTOM_ASN1_SRC_DIR}
+)
+
+set( BROKEN_ASN1_SRC_DIRS
+ # x721 does not build
+ x721
+)
+
+set(_asn1_deps)
+foreach(ASN1_DIR ${ASN1_SRC_DIRS})
+ add_subdirectory( ${ASN1_DIR} )
+ list(APPEND _asn1_deps ${ASN1_DIR}/generate_dissector-${ASN1_DIR})
+endforeach()
+
+# Target to regenerate all outdated ASN.1 dissectors
+add_custom_target(asn1 DEPENDS ${_asn1_deps})
diff --git a/epan/dissectors/asn1/CMakeListsCustom.example.txt b/epan/dissectors/asn1/CMakeListsCustom.example.txt
new file mode 100644
index 0000000000..4af019f645
--- /dev/null
+++ b/epan/dissectors/asn1/CMakeListsCustom.example.txt
@@ -0,0 +1,26 @@
+# CMakeListsCustom.example.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Add a list of your custom asn1 dissectors here
+#
+
+set(CUSTOM_ASN1_SRC_DIR
+ foo
+)
diff --git a/epan/dissectors/asn1/Custom.make b/epan/dissectors/asn1/Custom.make
new file mode 100644
index 0000000000..723454002b
--- /dev/null
+++ b/epan/dissectors/asn1/Custom.make
@@ -0,0 +1,30 @@
+# Automake file for Wireshark
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 2006 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Add custom asn1 directories here, the file is included by Makefile.am
+# Note you need to add a Custom.m4 file too.
+#
+CUSTOM_SUBDIRS =
+
+# Add custom dirs here for BER dissectors on Windows
+CUSTOM_BER_LIST =
+
+# Add custom dirs here for PER dissectors on Windows
+CUSTOM_PER_LIST =
diff --git a/epan/dissectors/asn1/HI2Operations/CMakeLists.txt b/epan/dissectors/asn1/HI2Operations/CMakeLists.txt
new file mode 100644
index 0000000000..b776260995
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/CMakeLists.txt
@@ -0,0 +1,49 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME HI2Operations )
+
+set( ASN_FILE_LIST
+ HI2Operations_ver11.asn
+ UmtsHI2Operations.asn
+ TS101909201.asn
+ PCESP.asn
+ EN301040.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/HI2Operations/EN301040.asn b/epan/dissectors/asn1/HI2Operations/EN301040.asn
new file mode 100644
index 0000000000..8c385db6c1
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/EN301040.asn
@@ -0,0 +1,269 @@
+EN301040 {itu-t (0) identified-organization (4) etsi (0) en301040 (1040) interceptVersion (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+LIACTIVATEreq ::= SEQUENCE
+{
+ timeStamp UTCTime,
+ invokeId INTEGER,
+ targetAddress AddressType,
+ expiryDateTime UTCTime,
+ targetname VisibleString OPTIONAL,
+ additionaltargetdata VisibleString OPTIONAL,
+ monitorServiceList SEQUENCE OF ActivityType
+}
+
+LIACTIVATEconf ::= SEQUENCE
+{
+ timeStamp UTCTime,
+ invokeId INTEGER,
+ result BOOLEAN,
+ tLIInstanceid TLIIdType OPTIONAL -- Conditional on value of Result --
+}
+
+LIMODIFYreq ::= SEQUENCE
+{
+ tLIInstanceid TLIIdType,
+ timestamp UTCTime,
+ modificationNumber INTEGER,
+ modificationType CHOICE
+ {
+ halt BOOLEAN,
+ reset BOOLEAN,
+ expiryDateTime UTCTime,
+ targetname VisibleString,
+ additionaltargetdata VisibleString,
+ monitorServiceList SEQUENCE OF ActivityType
+ }
+}
+
+LIMODIFYconf ::= SEQUENCE
+{
+ tLIInstanceid TLIIdType,
+ timestamp UTCTime,
+ modificationNumber INTEGER,
+ result BOOLEAN
+}
+
+LISTATUSind ::= SEQUENCE
+{
+ tLIInstanceid TLIIdType,
+ timestamp UTCTime,
+ tETRASysStatus StatusType
+}
+
+TARGETACTIVITYMONITORind ::= SEQUENCE
+{
+ tLIInstanceid TLIIdType, -- header, who --
+ timestamp UTCTime, -- header, when --
+ targetLocation LocationType-en301040, -- header, where --
+ targetAction ActivityType,
+ supplementaryTargetaddress AddressType OPTIONAL,
+ cotargetaddress SEQUENCE OF AddressType OPTIONAL,
+ cotargetlocation SEQUENCE OF LocationType-en301040 OPTIONAL
+}
+
+TARGETCOMMSMONITORind ::= SEQUENCE
+{
+ tLIInstanceid TLIIdType,
+ timestamp UTCTime,
+ targetlocation LocationType-en301040,
+ supplementaryTargetaddress AddressType OPTIONAL,
+ targetcommsid CircuitIdType,
+ cotargetaddress SEQUENCE OF AddressType OPTIONAL,
+ cotargetcommsid SEQUENCE OF CircuitIdType OPTIONAL
+}
+
+TTRAFFICind ::= SEQUENCE
+{
+ tLIInstanceid TLIIdType,
+ trafficPacket BIT STRING
+}
+
+CTTRAFFICind ::= SEQUENCE
+{
+ tLIInstanceid TLIIdType,
+ trafficPacket BIT STRING
+}
+
+
+ActivityClassType ::= ENUMERATED
+{
+ allServices,
+ tETRASpeech,
+ singleSlotData24,
+ singleSlotData48,
+ singleSlotData72,
+ multiSlotData224,
+ multiSlotData248,
+ multiSlotData272,
+ multiSlotData324,
+ multiSlotData348,
+ multiSlotData372,
+ multiSlotData424,
+ multiSlotData448,
+ multiSlotData472,
+ sDSType1,
+ sDSType2,
+ sDSType3,
+ sDSType4,
+ status,
+ sDSACKType1,
+ sDSACKType2,
+ sDSACKType3,
+ sDSACKType4,
+ statusack,
+ sDSAcknowledgementsuccess,
+ sDSAcknowledgementfail,
+ sCLNSPacketData,
+ cONSPacketData,
+ internetProtocol,
+ swMIauthenticationsuccess,
+ swMIauthenticationfail,
+ iTSIauthenticationsuccess,
+ iTSIauthenticationfail,
+ oTARSCKsuccess,
+ oTARSCKfail,
+ oTARGCKsuccess,
+ oTARGCKfail,
+ oTARCCKsuccess,
+ oTARCCKfail,
+ tARGETSUSCRIPTIONDISABLEDT,
+ tARGETEQUIPMENTDISABLEDT,
+ tARGETSUSCRIPTIONDISABLEDP,
+ tARGETEQUIPEMENTDISABLEDP,
+ tARGETSUBSCRIPTIONENABLED,
+ tARGETEQUIPMENTENABLED,
+ sessionregistration,
+ sessionderegistration,
+ mIGRATION,
+ rOAMING,
+ supplementaryService
+}
+
+ActivityType::= SEQUENCE
+{
+ cctivity ActivityClassType,
+ callRelation ENUMERATED
+ {
+ begin,
+ end,
+ continue,
+ report
+ },
+ direction ENUMERATED
+ {
+ toTarget,
+ fromTarget
+ } OPTIONAL,
+ scope ENUMERATED
+ {
+ point2Point,
+ point2MultiPoint,
+ broadcast
+ } OPTIONAL,
+ cPlaneData BIT STRING OPTIONAL,
+ sStype SSType OPTIONAL
+}
+
+AddressType ::= SEQUENCE
+{
+ tSI TSIType,
+ supplementaryAddress SEQUENCE OF TETRAAddressType OPTIONAL
+}
+
+TETRAAddressType ::= CHOICE
+{
+ tETRAaddress TSIType,
+ pISNaddress NumericString (SIZE (20)),
+ iP4address BIT STRING (SIZE (32)), -- 32 bits --
+ iP6address BIT STRING (SIZE (128)), -- 128 bits --
+ e164address NumericString (SIZE (20)),
+ tEI TEIType
+}
+
+
+CellIdType ::= BIT STRING (SIZE (16)) -- 16 bits --
+
+LocationAreaType ::= BIT STRING (SIZE (14)) -- 14 bits, as defined in ETS 300 392-2 --
+
+LocationType-en301040 ::= CHOICE
+{
+ mSLoc TETRACGIType,
+ lSLoc TETRAAddressType
+}
+
+
+MCCType ::= BIT STRING (SIZE (10)) -- 10 bits, as defined in ETS 300 392-1 --
+
+MNCType ::= BIT STRING (SIZE (14)) -- 14 bits, as defined in ETS 300 392-1 --
+
+SSIType ::= BIT STRING (SIZE (24)) -- 24 bits, as defined in ETS 300 392-1 --
+
+CircuitIdType ::= NumericString (SIZE (20))
+
+SSType ::= ENUMERATED
+{
+ ambienceListening,
+ adviceofCharge,
+ accessPriority,
+ areaSelection,
+ barringofIncomingCalls,
+ barringofOutgoingCalls,
+ callAuthorizedbyDispatcher,
+ callCompletiontoBusySubscriber,
+ callCompletiononNoReply,
+ callForwardingonBusy,
+ callForwardingonNoReply,
+ callForwardingonNotReachable,
+ callForwardingUnconditional,
+ callingLineIdentificationPresentation,
+ callingConnectedLineIdentificationRestriction,
+ connectedLineIdentificationPresentation,
+ callReport,
+ callRetention,
+ callWaiting,
+ dynamicGroupNumberAssignment,
+ discreetListening,
+ callHold,
+ includeCall,
+ lateEntry,
+ listSearchCall,
+ priorityCall,
+ preemptivePriorityCall,
+ shortNumberAddressing,
+ transferofControl,
+ talkingPartyIdentification
+}
+
+StatusType ::= ENUMERATED
+{
+ networkFullyAvailable,
+ networkErrorsAffectingIntercept,
+ reconfigurationInProgress,
+ sessionExpired,
+ gatewayServicesUnavailable
+}
+
+TETRACGIType ::= SEQUENCE
+{
+ mcc MCCType,
+ mnc MNCType,
+ lai LocationAreaType,
+ cI CellIdType OPTIONAL
+}
+
+TLIIdType ::= BIT STRING (SIZE (16)) -- 16 bits --
+
+TSIType ::= SEQUENCE
+{
+ mcc MCCType,
+ mnc MNCType,
+ ssi SSIType
+}
+
+TEIType ::= BIT STRING (SIZE (60)) -- 60 bits, as defined in ETS 300 392-1 --
+
+END
diff --git a/epan/dissectors/asn1/HI2Operations/HI2Operations.cnf b/epan/dissectors/asn1/HI2Operations/HI2Operations.cnf
new file mode 100644
index 0000000000..e7ca5113d3
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/HI2Operations.cnf
@@ -0,0 +1,36 @@
+# HI2Operations.cnf
+# HI2Operations conformation file
+
+#.MODULE
+UmtsHI2Operations UmtsHI2
+PCESP PCESP
+TS101909201 TS101909201
+EN301040 EN301040
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.REGISTER
+
+#.PDU
+IRIsContent
+
+#.NO_EMIT
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+TTRAFFIC
+CTTRAFFIC
+LIACTIVATEreq
+LIACTIVATEconf
+LIMODIFYreq
+LIMODIFYconf
+LISTATUSind
+StatusType
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
+
diff --git a/epan/dissectors/asn1/HI2Operations/HI2Operations_ver11.asn b/epan/dissectors/asn1/HI2Operations/HI2Operations_ver11.asn
new file mode 100644
index 0000000000..1038a74d59
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/HI2Operations_ver11.asn
@@ -0,0 +1,961 @@
+HI2Operations
+{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) hi2(1) version11(11)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION,
+ ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+
+ -- from 3GPP TS 33.108 [61]
+ UmtsQos,
+ IMSevent,
+ LDIevent,
+ CorrelationValues
+ FROM UmtsHI2Operations
+ {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulintercept(2) threeGPP(4) hi2(1) r8(8) version-1(1)}
+
+ -- from TS 101 909-20-01 [69]
+ TARGETACTIVITYMONITOR-1
+ FROM TS101909201
+ {itu-t(0) identified-organization(4) etsi(0) ts101909(1909) part20(20) subpart1(1) interceptVersion(0)}
+
+ -- from EN 301 040 [72]
+ TARGETACTIVITYMONITORind,
+ TARGETCOMMSMONITORind,
+ TTRAFFICind,
+ CTTRAFFICind
+ FROM EN301040
+ {itu-t(0) identified-organization(4) etsi(0) en301040 (1040) interceptVersion (0)};
+
+-- =============================
+-- Object Identifier Definitions
+-- =============================
+
+-- LawfulIntercept DomainId
+lawfulInterceptDomainId OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2)}
+
+-- Security Subdomains
+hi2DomainId OBJECT IDENTIFIER ::= {lawfulInterceptDomainId hi2(1)}
+hi2OperationId OBJECT IDENTIFIER ::= {hi2DomainId version11(11)}
+
+sending-of-IRI OPERATION ::=
+{
+ ARGUMENT IRIsContent
+ ERRORS {OperationErrors}
+ CODE global:{hi2DomainId sending-of-IRI(1) version1(1)}
+}
+-- Class 2 operation. The timer shall be set to a value between 3s and 240s.
+-- The timer default value is 60s.
+-- NOTE: The same note as for HI management operation applies.
+
+IRIsContent ::= CHOICE
+{
+ iRIContent [0] IRIContent,
+ iRISequence [1] IRISequence
+}
+
+IRISequence ::= SEQUENCE OF IRIContent
+ -- Aggregation of IRIContent is an optional feature.
+ -- It may be applied in cases when at a given point in time several IRI records are
+ -- available for delivery to the same LEA destination.
+ -- As a general rule, records created at any event shall be sent immediately and shall
+ -- not held in the DF or MF in order to apply aggregation.
+ -- When aggregation is not to be applied, IRIContent needs to be chosen.
+
+IRIContent ::= CHOICE
+{
+ iRI-Begin-record [1] IRI-Parameters,
+ -- At least one optional parameter must be included within the iRI-Begin-Record.
+ iRI-End-record [2] IRI-Parameters,
+ iRI-Continue-record [3] IRI-Parameters,
+ -- At least one optional parameter must be included within the iRI-Continue-Record.
+ iRI-Report-record [4] IRI-Parameters,
+ -- At least one optional parameter must be included within the iRI-Report-Record.
+ ...
+}
+
+unknown-version ERROR ::= {CODE local:0}
+missing-parameter ERROR ::= {CODE local:1}
+unknown-parameter-value ERROR ::= {CODE local:2}
+unknown-parameter ERROR ::= {CODE local:3}
+
+OperationErrors ERROR ::=
+{
+ unknown-version |
+ missing-parameter |
+ unknown-parameter-value |
+ unknown-parameter
+}
+-- These values may be sent by the LEMF, when an operation or a parameter is misunderstood.
+
+IRI-Parameters ::= SEQUENCE
+{
+ domainID [0] OBJECT IDENTIFIER (hi2OperationId) OPTIONAL,
+ -- for the sending entity the inclusion of the Object Identifier is mandatory
+ iRIversion [23] ENUMERATED
+ {
+ version2(2),
+ ...,
+ version3(3),
+ version4(4),
+ version5(5),
+ version6(6),
+ version7(7),
+ lastVersion(8)
+ } OPTIONAL,
+ -- Optional parameter "iRIversion" (tag 23) is redundant starting
+ -- from TS 101 671 v2.4.1 [i.5]
+ -- where to the object identifier "domainID" was introduced into IRI-Parameters.
+ -- In order to keep backward compatibility, even when the version of the "domainID"
+ -- parameter will be incremented it is recommended to always send to LEMF the same:
+ -- enumeration value "lastVersion(8)".
+ -- if not present, it means version 1 is handled
+ lawfulInterceptionIdentifier [1] LawfulInterceptionIdentifier,
+ -- This identifier is associated to the target.
+ communicationIdentifier [2] CommunicationIdentifier,
+ -- used to uniquely identify an intercepted call.
+ -- Called "callIdentifier" in v1.1.1 of ES 201 671 [i.5].
+ timeStamp [3] TimeStamp,
+ -- date and time of the event triggering the report.
+ intercepted-Call-Direct [4] ENUMERATED
+ {
+ not-Available(0),
+ originating-Target(1),
+ -- In case of GPRS, this indicates that the PDP context activation, modification
+ -- or deactivation is MS requested.
+ terminating-Target(2),
+ -- In case of GPRS, this indicates that the PDP context activation, modification
+ -- or deactivation is network initiated.
+ ...
+ } OPTIONAL,
+ intercepted-Call-State [5] Intercepted-Call-State OPTIONAL,
+ ringingDuration [6] OCTET STRING (SIZE (3)) OPTIONAL,
+ -- Duration in seconds. BCD coded : HHMMSS
+ conversationDuration [7] OCTET STRING (SIZE (3)) OPTIONAL,
+ -- Duration in seconds. BCD coded : HHMMSS
+ locationOfTheTarget [8] Location OPTIONAL,
+ -- location of the target subscriber
+ partyInformation [9] SET SIZE (1..10) OF PartyInformation OPTIONAL,
+ -- This parameter provides the concerned party (Originating, Terminating or forwarded
+ -- party), the identity(ies) of the party and all the information provided by the party.
+ callContentLinkInformation [10] SEQUENCE
+ {
+ cCLink1Characteristics [1] CallContentLinkCharacteristics OPTIONAL,
+ -- Information concerning the Content of Communication Link Tx channel established
+ -- toward the LEMF (or the sum signal channel, in case of mono mode).
+ cCLink2Characteristics [2] CallContentLinkCharacteristics OPTIONAL,
+ -- Information concerning the Content of Communication Link Rx channel established
+ -- toward the LEMF.
+ ...
+ } OPTIONAL,
+ release-Reason-Of-Intercepted-Call [11] OCTET STRING (SIZE (2)) OPTIONAL,
+ -- Release cause coded in ITU-T Q.850 [31] format.
+ -- This parameter indicates the reason why the intercepted call cannot be established or
+ -- why the intercepted call has been released after the active phase.
+ nature-Of-The-intercepted-call [12] ENUMERATED
+ {
+ -- Nature of the intercepted "call":
+ gSM-ISDN-PSTN-circuit-call(0),
+ -- the possible UUS content is sent through the HI2 or HI3 "data" interface
+ -- the possible call content call is established through the HI3 "circuit" interface
+ gSM-SMS-Message(1),
+ -- the SMS content is sent through the HI2 or HI3 "data" interface
+ uUS4-Messages(2),
+ -- the UUS content is sent through the HI2 or HI3 "data" interface
+ tETRA-circuit-call(3),
+ -- the possible call content call is established through the HI3 "circuit" interface
+ -- the possible data are sent through the HI3 "data" interface
+ teTRA-Packet-Data(4),
+ -- the data are sent through the HI3 "data" interface
+ gPRS-Packet-Data(5),
+ -- the data are sent through the HI3 "data" interface
+ ...,
+ uMTS-circuit-call(6)
+ -- the possible call content call is established through the HI3 "circuit" interface
+ -- the possible data are sent through the HI3 "data" interface
+ } OPTIONAL,
+ serverCenterAddress [13] PartyInformation OPTIONAL,
+ -- e.g. in case of SMS message this parameter provides the address of the relevant
+ -- server within the calling (if server is originating) or called
+ -- (if server is terminating) party address parameters
+ sMS [14] SMS-report OPTIONAL,
+ -- this parameter provides the SMS content and associated information
+ cC-Link-Identifier [15] CC-Link-Identifier OPTIONAL,
+ -- Depending on a network option, this parameter may be used to identify a CC link
+ -- in case of multiparty calls.
+ national-Parameters [16] National-Parameters OPTIONAL,
+ gPRSCorrelationNumber [18] GPRSCorrelationNumber OPTIONAL,
+ gPRSevent [20] GPRSEvent OPTIONAL,
+ -- This information is used to provide particular action of the target
+ -- such as attach/detach
+ sgsnAddress [21] DataNodeAddress OPTIONAL,
+ gPRSOperationErrorCode [22] GPRSOperationErrorCode OPTIONAL,
+ ...,
+ ggsnAddress [24] DataNodeAddress OPTIONAL,
+ qOS [25] UmtsQos OPTIONAL,
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ networkIdentifier [26] Network-Identifier OPTIONAL,
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ sMSOriginatingAddress [27] DataNodeAddress OPTIONAL,
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ sMSTerminatingAddress [28] DataNodeAddress OPTIONAL,
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ iMSevent [29] IMSevent OPTIONAL,
+ sIPMessage [30] OCTET STRING OPTIONAL,
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ servingSGSN-number [31] OCTET STRING (SIZE (1..20)) OPTIONAL,
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ servingSGSN-address [32] OCTET STRING (SIZE (5..17)) OPTIONAL,
+ -- Octets are coded according to 3GPP TS 23.003 [76]
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ tARGETACTIVITYMONITOR [33] TARGETACTIVITYMONITOR-1 OPTIONAL,
+ -- Parameter is used in TS 101 909-20-1 [69]
+ ldiEvent [34] LDIevent OPTIONAL,
+ -- The "Location Dependent Interception" parameter is duplicated from 3GPP TS 33.108 [61]
+ correlation [35] CorrelationValues OPTIONAL,
+ -- This parameter is duplicated from 3GPP TS 33.108 [61]
+ tARGETACTIVITYMONITORind [36] TARGETACTIVITYMONITORind OPTIONAL,
+ -- Parameter is used in EN 301 040 [72]
+ tARGETCOMMSMONITORind [37] TARGETCOMMSMONITORind OPTIONAL,
+ -- Parameter is used in EN 301 040 [72]
+ tTRAFFICind [38] TTRAFFICind OPTIONAL,
+ -- Parameter is used in EN 301 040 [72]
+ cTTRAFFICind [39] CTTRAFFICind OPTIONAL,
+ -- Parameter is used in EN 301 040 [72]
+ national-HI2-ASN1parameters [255] National-HI2-ASN1parameters OPTIONAL
+}
+
+-- ==================
+-- PARAMETERS FORMATS
+-- ==================
+
+CommunicationIdentifier ::= SEQUENCE
+{
+ communication-Identity-Number [0] OCTET STRING (SIZE (1..8)) OPTIONAL,
+ -- Temporary Identifier of an intercepted call to uniquely identify an intercepted call
+ -- within the node. This parameter is mandatory if there is associated
+ -- information sent over HI3interface (CClink, data,..) or when
+ -- CommunicationIdentifier is used for IRI other than IRI-Report-record
+ -- This parameter was called "call-Identity-Number" in V1.1.1 of ES 201 671 [i.5]
+ -- The individual digits of the communication-Identity-Number shall be represented in
+ -- ASCII format, e.g. "12345678" = 8 octets 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38.
+ -- For subaddress option only "0"..."9" shall be used.
+ network-Identifier [1] Network-Identifier,
+ ...
+}
+-- NOTE: The same "CommunicationIdentifier" value is sent :
+-- with the HI3 information for correlation purpose between the IRI and the information sent on
+-- the HI3 interfaces (CCLink, data, ..) with each IRI associated to a same intercepted call
+-- for correlation purpose between the different IRI.
+
+Network-Identifier ::= SEQUENCE
+{
+ operator-Identifier [0] OCTET STRING (SIZE (1..5)),
+ -- It is a notification of the NWO/AP/SvP in ASCII- characters.
+ -- For subaddress option only "0"..."9" shall be used.
+ -- The parameter is mandatory.
+ network-Element-Identifier [1] Network-Element-Identifier OPTIONAL,
+ ...
+}
+
+Network-Element-Identifier ::= CHOICE
+{
+ e164-Format [1] OCTET STRING (SIZE (1..25)),
+ -- E164 address of the node in international format. Coded in the same format as the
+ -- calling party number parameter of the ISUP (parameter part: EN 300 356 [5]).
+ x25-Format [2] OCTET STRING (SIZE (1..25)),
+ -- X25 address
+ iP-Format [3] OCTET STRING (SIZE (1..25)),
+ -- IP address
+ dNS-Format [4] OCTET STRING (SIZE (1..25)),
+ -- DNS address
+ ...,
+ iP-Address [5] IPAddress
+}
+
+CC-Link-Identifier ::= OCTET STRING (SIZE (1..8))
+ -- Depending on a network option, this parameter may be used to identify a CClink
+ -- in case of multiparty calls.
+ -- The individual digits of the CC-Link-Identifier shall be represented in
+ -- ASCII format, e.g. "12345678" = 8 octets 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38.
+ -- For subaddress option only "0"..."9" shall be used.
+
+TimeStamp ::= CHOICE
+{
+-- The minimum resolution required is one second.
+-- "Resolution" is the smallest incremental change that can be measured for time and
+-- is expressed with a definite number of decimal digits or bits.
+ localTime [0] LocalTimeStamp,
+ utcTime [1] UTCTime
+}
+
+LocalTimeStamp ::= SEQUENCE
+{
+ generalizedTime [0] GeneralizedTime,
+ -- The minimum resolution required is one second.
+ -- "Resolution" is the smallest incremental change that can be measured for time and
+ -- is expressed with a definite number of decimal digits or bits.
+ winterSummerIndication [1] ENUMERATED
+ {
+ notProvided(0),
+ winterTime(1),
+ summerTime(2),
+ ...
+ }
+}
+
+PartyInformation ::= SEQUENCE
+{
+ party-Qualifier [0] ENUMERATED
+ {
+ originating-Party(0),
+ -- In this case, the partyInformation parameter provides the identities related to
+ -- the originating party and all information provided by this party.
+ -- This parameter provides also all the information concerning the redirecting
+ -- party when a forwarded call reaches a target.
+ terminating-Party(1),
+ -- In this case, the partyInformation parameter provides the identities related to
+ -- the terminating party and all information provided by this party.
+ forwarded-to-Party(2),
+ -- In this case, the partyInformation parameter provides the identities related to
+ -- the forwarded to party and parties beyond this one and all information
+ -- provided by this parties, including the call forwarding reason.
+ gPRS-Target(3),
+ ...
+ },
+ partyIdentity [1] SEQUENCE
+ {
+ imei [1] OCTET STRING (SIZE (8)) OPTIONAL,
+ -- See MAP format TS GSM 09.02 [32]
+ tei [2] OCTET STRING (SIZE (1..15)) OPTIONAL,
+ -- ISDN-based Terminal Equipment Identity
+ imsi [3] OCTET STRING (SIZE (3..8)) OPTIONAL,
+ -- See MAP format TS GSM 09.02 [32] International Mobile
+ -- Station Identity E.212 number beginning with Mobile Country Code
+ callingPartyNumber [4] CallingPartyNumber OPTIONAL,
+ -- The calling party format is used to transmit the identity of a calling party
+ calledPartyNumber [5] CalledPartyNumber OPTIONAL,
+ -- The called party format is used to transmit the identity of a called party or
+ -- a forwarded to party.
+ msISDN [6] OCTET STRING (SIZE (1..9)) OPTIONAL,
+ -- MSISDN of the target, encoded in the same format as the AddressString
+ -- parameters defined in MAP format TS GSM 09.02 [32]
+ ...,
+ e164-Format [7] OCTET STRING (SIZE (1..25)) OPTIONAL,
+ -- E164 address of the node in international format. Coded in the same format as
+ -- the calling party number parameter of the ISUP (parameter part: EN 300 356 [5])
+ sip-uri [8] OCTET STRING OPTIONAL,
+ -- Session Initiation Protocol - Uniform Resource Identifier. See RFC 3261 [59].
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ tel-url [9] OCTET STRING OPTIONAL
+ -- See "URLs for Telephone Calls", RFC 3966 [68].
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ },
+ services-Information [2] Services-Information OPTIONAL,
+ -- This parameter is used to transmit all the information concerning the
+ -- complementary information associated to the basic call
+ supplementary-Services-Information [3] Supplementary-Services OPTIONAL,
+ -- This parameter is used to transmit all the information concerning the
+ -- activation/invocation of supplementary services during a call or out-of call not
+ -- provided by the previous parameters.
+ services-Data-Information [4] Services-Data-Information OPTIONAL,
+ -- This parameter is used to transmit all the information concerning the complementary
+ -- information associated to the basic data call.
+ ...
+}
+
+CallingPartyNumber ::= CHOICE
+{
+ iSUP-Format [1] OCTET STRING (SIZE (1..25)),
+ -- Encoded in the same format as the calling party number (parameter field)
+ -- of the ISUP (see EN 300 356 [5]).
+ dSS1-Format [2] OCTET STRING (SIZE (1..25)),
+ -- Encoded in the format defined for the value part of the Calling party number
+ -- information element of DSS1 protocol EN 300 403-1 [6].
+ -- The DSS1 Information element identifier and the DSS1 length are not included.
+ ...,
+ mAP-Format [3] OCTET STRING (SIZE (1..25))
+ -- Encoded as AddressString of the MAP protocol TS GSM 09.02 [32].
+}
+
+CalledPartyNumber ::= CHOICE
+{
+ iSUP-Format [1] OCTET STRING (SIZE (1..25)),
+ -- Encoded in the same format as the called party number (parameter field)
+ -- of the ISUP (see EN 300 356 [5]).
+ mAP-Format [2] OCTET STRING (SIZE (1..25)),
+ -- Encoded as AddressString of the MAP protocol TS GSM 09.02 [32].
+ dSS1-Format [3] OCTET STRING (SIZE (1..25)),
+ -- Encoded in the format defined for the value part of the Called party number information
+ -- element of DSS1 protocol EN 300 403-1 [6].
+ -- The DSS1 Information element identifier and the DSS1 length are not included.
+ ...
+}
+
+Location ::= SEQUENCE
+{
+ e164-Number [1] OCTET STRING (SIZE (1..25)) OPTIONAL,
+ -- Coded in the same format as the ISUP location number (parameter
+ --field) of the ISUP (see EN 300 356 [5]).
+ globalCellID [2] OCTET STRING (SIZE (5..7)) OPTIONAL,
+ -- See MAP format (see TS GSM 09.02 [32]).
+ tetraLocation [3] TetraLocation OPTIONAL,
+ -- This optional parameter is not in use anymore, but is kept for backwards compatibility.
+ rAI [4] OCTET STRING (SIZE (6)) OPTIONAL,
+ -- The Routeing Area Identifier (RAI) in the current SGSN is coded in accordance with
+ -- 3GPP TS 24.008 [41] without the Routing Area Identification IEI (only the
+ -- last 6 octets are used).
+ gsmLocation [5] GSMLocation OPTIONAL,
+ umtsLocation [6] UMTSLocation OPTIONAL,
+ sAI [7] OCTET STRING (SIZE (7)) OPTIONAL,
+ -- format: PLMN-ID 3 octets (no. 1-3),
+ -- LAC 2 octets (no. 4-5),
+ -- SAC 2 octets (no. 6-7)
+ -- (according to 3GPP TS 25.431 [62]).
+ ...,
+ oldRAI [8] OCTET STRING (SIZE (6)) OPTIONAL
+ -- the "Routeing Area Identifier" in the old SGSN is coded in accordance with
+ -- 3GPP TS 24.008 [41] without the Routing Area Identification IEI
+ -- (only the last 6 octets are used).
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+}
+
+TetraLocation ::= CHOICE
+ -- This optional parameter is not in use anymore, but is kept for backwards compatibility.
+{
+ ms-Loc [1] SEQUENCE
+ {
+ mcc [1] INTEGER (0..1023),
+ -- 10 bits EN 300 392-1 [40]
+ mnc [2] INTEGER (0..16383),
+ -- 14 bits EN 300 392-1 [40]
+ lai [3] INTEGER (0..65535),
+ -- 14 bits EN 300 392-1 [40]
+ ci [4] INTEGER OPTIONAL
+ },
+ ls-Loc [2] INTEGER
+}
+
+GSMLocation ::= CHOICE
+{
+ geoCoordinates [1] SEQUENCE
+ {
+ latitude [1] PrintableString (SIZE(7..10)),
+ -- format: XDDMMSS.SS
+ longitude [2] PrintableString (SIZE(8..11)),
+ -- format: XDDDMMSS.SS
+ mapDatum [3] MapDatum DEFAULT wGS84,
+ ...,
+ azimuth [4] INTEGER (0..359) OPTIONAL
+ -- The azimuth is the bearing, relative to true north
+ },
+ -- format: XDDDMMSS.SS
+ -- X : N(orth), S(outh), E(ast), W(est)
+ -- DD or DDD : degrees (numeric characters)
+ -- MM : minutes (numeric characters)
+ -- SS.SS : seconds, the second part (.SS) is optional
+ -- Example:
+ -- latitude short form N502312
+ -- longitude long form E1122312.18
+
+ utmCoordinates [2] SEQUENCE
+ {
+ utm-East [1] PrintableString (SIZE(10)),
+ utm-North [2] PrintableString (SIZE(7)),
+ -- Universal Transverse Mercator
+ -- example utm-East 32U0439955
+ -- utm-North 5540736
+ mapDatum [3] MapDatum DEFAULT wGS84,
+ ...,
+ azimuth [4] INTEGER (0..359) OPTIONAL
+ -- The azimuth is the bearing, relative to true north
+ },
+
+ utmRefCoordinates [3] SEQUENCE
+ {
+ utmref-string [2] PrintableString (SIZE(13)),
+ mapDatum [3] MapDatum DEFAULT wGS84,
+ ...
+ },
+ -- example 32UPU91294045
+
+ wGS84Coordinates [4] OCTET STRING
+ -- format is as defined in 3GPP TS 03.32 [57]
+}
+
+MapDatum ::= ENUMERATED
+{
+ wGS84(0),
+ -- World Geodetic System 1984
+ wGS72(1),
+ eD50(2),
+ -- European Datum 50
+ ...
+}
+
+UMTSLocation ::= CHOICE
+{
+ point [1] GA-Point,
+ pointWithUnCertainty [2] GA-PointWithUnCertainty,
+ polygon [3] GA-Polygon,
+ ...
+}
+
+GeographicalCoordinates ::= SEQUENCE
+{
+ latitudeSign [0] ENUMERATED
+ {
+ north(0),
+ south(1)
+ },
+ latitude [1] INTEGER (0..8388607),
+ longitude [2] INTEGER (-8388608..8388607),
+ ...
+}
+
+GA-Point ::= SEQUENCE
+{
+ geographicalCoordinates [0] GeographicalCoordinates,
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE
+{
+ geographicalCoordinates [0] GeographicalCoordinates,
+ uncertaintyCode [1] INTEGER (0..127)
+}
+
+maxNrOfPoints INTEGER ::= 15
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE
+ {
+ geographicalCoordinates [0] GeographicalCoordinates,
+ ...
+ }
+
+CallContentLinkCharacteristics ::= SEQUENCE
+{
+ cCLink-State [1] CCLink-State OPTIONAL,
+ -- current state of the CCLink
+ release-Time [2] TimeStamp OPTIONAL,
+ -- date and time of the release of the Call Content Link.
+ release-Reason [3] OCTET STRING (SIZE(2)) OPTIONAL,
+ -- Release cause coded in Q.850 [31] format
+ lEMF-Address [4] CalledPartyNumber OPTIONAL,
+ -- Directory number used to route the call toward the LEMF
+ ...
+}
+
+CCLink-State ::= ENUMERATED
+{
+ setUpInProcess(1),
+ -- The set-up of the call is in process
+ callActive(2),
+ callReleased(3),
+ lack-of-resource(4),
+ -- The lack-of-resource state is sent when a CC Link cannot
+ -- be established because of lack of resource at the MF level.
+ ...
+}
+
+Intercepted-Call-State ::= ENUMERATED
+{
+ idle(1),
+ -- When the intercept call is released, the state is IDLE and the reason is provided
+ -- by the release-Reason-Of-Intercepted-Call parameter.
+ setUpInProcess(2),
+ -- The set-up of the call is in process
+ connected(3),
+ -- The answer has been received
+ ...
+}
+
+Services-Information ::= SEQUENCE
+{
+ iSUP-parameters [1] ISUP-parameters OPTIONAL,
+ dSS1-parameters-codeset-0 [2] DSS1-parameters-codeset-0 OPTIONAL,
+ ...,
+ mAP-parameters [3] MAP-parameters OPTIONAL
+}
+
+ISUP-parameters ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "OCTET STRING" contains one additional ISUP parameter TLV coded not already defined in
+ -- the previous parameters. The Tag value is the one given in EN 300 356 [5].
+
+ -- In version 1 of the present document "iSUP-parameters" is defined as mandatory.
+ -- It might occur that no ISUP parameter is available. In that case in a version 1
+ -- implementation the value "zero" may be included in the first octet string of the SET.
+
+ -- The Length and the Value are coded in accordance with the parameter definition in
+ -- EN 300 356 [5]. Hereafter are listed the main parameters.
+ -- However other parameters may be added:
+
+ -- Transmission medium requirement: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the "calling party".
+
+ -- Transmission medium requirement prime: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the "calling party".
+
+DSS1-parameters-codeset-0 ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "OCTET STRING" contains one DSS1 parameter of the codeset-0. The parameter is coded as
+ -- described in EN 300 403-1 [6] (The DSS1 Information element identifier and the DSS1 length
+ -- are included). Hereafter are listed the main parameters.
+ -- However other parameters may be added:
+
+ -- Bearer capability: this parameter may be repeated. Format defined in EN 300 403-1 [6].
+ -- This parameter can be provided with the "Party Information" of the "calling party",
+ -- "called party" or "forwarded to party".
+
+ -- High Layer Compatibility: this parameter may be repeated. Format defined in EN 300 403-1 [6]
+ -- This parameter can be provided with the "Party Information" of the "calling party",
+ -- "called party" or "forwarded to party".
+
+ -- Low Layer capability: this parameter may be repeated. Format defined in EN 300 403-1 [6].
+ -- This parameter can be provided with the "Party Information" of the "calling party",
+ -- "called party" or "forwarded to party".
+
+MAP-parameters ::= SET SIZE (1..256) OF OCTET STRING (SIZE(1..256))
+ -- Each "OCTET STRING" contains one MAP parameter. The parameter is coded as described in
+ -- TS GSM 09.02 [32] (The map-TS-Code is included).
+
+Supplementary-Services ::= SEQUENCE
+{
+ standard-Supplementary-Services [1] Standard-Supplementary-Services OPTIONAL,
+ non-Standard-Supplementary-Services [2] Non-Standard-Supplementary-Services OPTIONAL,
+ other-Services [3] Other-Services OPTIONAL,
+ ...
+}
+
+Standard-Supplementary-Services ::= SEQUENCE
+{
+ iSUP-SS-parameters [1] ISUP-SS-parameters OPTIONAL,
+ dSS1-SS-parameters-codeset-0 [2] DSS1-SS-parameters-codeset-0 OPTIONAL,
+ dSS1-SS-parameters-codeset-4 [3] DSS1-SS-parameters-codeset-4 OPTIONAL,
+ dSS1-SS-parameters-codeset-5 [4] DSS1-SS-parameters-codeset-5 OPTIONAL,
+ dSS1-SS-parameters-codeset-6 [5] DSS1-SS-parameters-codeset-6 OPTIONAL,
+ dSS1-SS-parameters-codeset-7 [6] DSS1-SS-parameters-codeset-7 OPTIONAL,
+ dSS1-SS-Invoke-components [7] DSS1-SS-Invoke-Components OPTIONAL,
+ mAP-SS-Parameters [8] MAP-SS-Parameters OPTIONAL,
+ mAP-SS-Invoke-Components [9] MAP-SS-Invoke-Components OPTIONAL,
+ ...
+}
+
+Non-Standard-Supplementary-Services ::= SET SIZE (1..20) OF CHOICE
+{
+ simpleIndication [1] SimpleIndication,
+ sciData [2] SciDataMode,
+ ...
+}
+
+Other-Services ::= SET SIZE (1..50) OF OCTET STRING (SIZE (1..256))
+ -- Reference manufacturer manuals.
+
+ISUP-SS-parameters ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- It must be noticed this parameter is retained for compatibility reasons.
+ -- It is recommended not to use it in new work but to use ISUP-parameters parameter.
+
+ -- Each "OCTET STRING" contains one additional ISUP parameter TLV coded not already defined in
+ -- the previous parameters. The Tag value is the one given in EN 300 356 [5].
+ -- The Length and the Value are coded in accordance with the parameter definition in
+ -- EN 300 356 [5]. Hereafter are listed the main parameters.
+ -- However other parameters may be added:
+
+ -- Connected Number: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the
+ -- "called party" or "forwarded to party".
+
+ -- RedirectingNumber: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the "originating party"
+ -- or/and of the "terminating party".
+
+ -- Original Called Party Number: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the "originating party".
+
+ -- Redirection information: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the
+ -- "originating party", "forwarded to party" or/and "Terminating party".
+
+ -- Redirection Number: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the
+ -- "forwarded to party" or "Terminating party".
+
+ -- Call diversion information: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the
+ -- "forwarded to party" or "Terminating party".
+
+ -- Generic Number: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the
+ -- "calling party", "called party" or "forwarded to party".
+ -- This parameters are used to transmit additional identities (additional, calling party
+ -- number, additional called number, etc.).
+
+ -- Generic Notification: format defined in EN 300 356 [5].
+ -- This parameter may be provided with the "Party Information" of the
+ -- "calling party", "called party" or "forwarded to party".
+ -- This parameters transmit the notification to the other part of the call of the supplementary
+ -- services activated or invoked by a subscriber during the call.
+
+ -- CUG Interlock Code: format defined in EN 300 356 [5].
+ -- This parameter can be provided with the "Party Information" of the "calling party".
+
+DSS1-SS-parameters-codeset-0 ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "OCTET STRING" contains one DSS1 parameter of the codeset-0. The parameter is coded as
+ -- described in EN 300 403-1 [6] (The DSS1 Information element identifier and the DSS1 length
+ -- are included). Hereafter are listed the main parameters.
+ -- However other parameters may be added:
+
+ -- Calling Party Subaddress: format defined in EN 300 403-1 [6].
+ -- This parameter can be provided with the "Party Information" of the "calling party".
+
+ -- Called Party Subaddress: format defined in EN 300 403-1 [6].
+ -- This parameter can be provided with the "Party Information" of the "calling party".
+
+ -- Connected Subaddress: format defined in recommendation (see EN 300 097-1 [14]).
+ -- This parameter can be provided with the "Party Information" of the
+ -- "called party" or "forwarded to party".
+
+ -- Connected Number: format defined in recommendation (see EN 300 097-1 [14]).
+ -- This parameter can be provided with the "Party Information" of the
+ -- "called party" or "forwarded to party".
+
+ -- Keypad facility: format defined in EN 300 403-1 [6].
+ -- This parameter can be provided with the "Party Information" of the
+ -- "calling party", "called party" or "forwarded to party".
+
+ -- Called Party Number: format defined in EN 300 403-1 [6].
+ -- This parameter could be provided with the "Party Information" of the "calling party"
+ -- when target is the originating party; it contains the dialled digits before modification
+ -- at network level (e.g. IN interaction, translation, etc ...).
+
+ -- User-user: format defined in EN 300 286-1 [23]).
+ -- This parameter can be provided with the "Party Information" of the
+ -- "calling party", "called party" or "forwarded to party".
+
+DSS1-SS-parameters-codeset-4 ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "OCTET STRING" contains one DSS1 parameter of the codeset-4. The parameter is coded as
+ -- described in the relevant recommendation.
+
+DSS1-SS-parameters-codeset-5 ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "OCTET STRING" contains one DSS1 parameter of the codeset-5. The parameter is coded as
+ -- described in the relevant national recommendation.
+
+DSS1-SS-parameters-codeset-6 ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "OCTET STRING" contains one DSS1 parameter of the codeset-6. The parameter is coded as
+ -- described in the relevant local network recommendation.
+
+DSS1-SS-parameters-codeset-7 ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "octet string" contains one DSS1 parameter of the codeset-7. The parameter is coded as
+ -- described in the relevant user specific recommendation.
+
+DSS1-SS-Invoke-Components ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "octet string" contains one DSS1 Invoke or Return Result component.
+ -- The invoke or return result component is coded as
+ -- described in the relevant DSS1 supplementary service recommendation.
+
+ -- Invoke or Return Result component (BeginCONF): EN 300 185-1 [19]
+ -- Invoke or Return Result component (AddCONF): EN 300 185-1 [19]
+ -- Invoke or Return Result component (SplitCONF): EN 300 185-1 [19]
+ -- Invoke or Return Result component (DropCONF): EN 300 185-1 [19]
+ -- Invoke or Return Result component (IsolateCONF): EN 300 185-1 [19]
+ -- Invoke or Return Result component (ReattachCONF): EN 300 185-1 [19]
+ -- Invoke or Return Result component (PartyDISC): EN 300 185-1 [19]
+ -- Invoke or Return Result component (MCIDRequest): EN 300 130-1 [16]
+ -- Invoke or Return Result component (Begin3PTY): EN 300 188-1 [20]
+ -- Invoke or Return Result component (End3PTY): EN 300 188-1 [20]
+ -- Invoke or Return Result component (ECTExecute): EN 300 369-1 [25]
+ -- Invoke or Return Result component (ECTInform): EN 300 369-1 [25]
+ -- Invoke or Return Result component (ECTLinkIdRequest): EN 300 369-1 [25]
+ -- Invoke or Return Result component (ECTLoopTest): EN 300 369-1 [25]
+ -- Invoke or Return Result component (ExplicitECTExecute): EN 300 369-1 [25]
+ -- Invoke or Return Result component (ECT: RequestSubaddress): EN 300 369-1 [25]
+ -- Invoke or Return Result component (ECT: SubaddressTransfer): EN 300 369-1 [25]
+ -- Invoke or Return Result component (CF: ActivationDiversion): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: DeactivationDiversion): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: ActivationStatusNotification): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: DeactivationStatusNotification): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: InterrogationDiversion): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: InterrogationServedUserNumber): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: DiversionInformation): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: CallDeflection): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: CallRerouteing): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: DivertingLegInformation1): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: DivertingLegInformation2): EN 300 207-1 [21]
+ -- Invoke or Return Result component (CF: DivertingLegInformation3): EN 300 207-1 [21]
+ -- other invoke or return result components ...
+
+MAP-SS-Invoke-Components ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "octet string" contains one MAP Invoke or Return Result component.
+ -- The invoke or return result component is coded as
+ -- described in the relevant MAP supplementary service recommendation.
+
+MAP-SS-Parameters ::= SET SIZE (1..256) OF OCTET STRING (SIZE (1..256))
+ -- Each "octet string" contains one MAP Parameter. The parameter is coded as
+ -- described in the relevant MAP supplementary service recommendation.
+
+SimpleIndication ::= ENUMERATED
+{
+ call-Waiting-Indication(0),
+ -- The target has received a call waiting indication for this call
+ add-conf-Indication(1),
+ -- this call has been added to a conference
+ call-on-hold-Indication(2),
+ -- indication that this call is on hold
+ retrieve-Indication(3),
+ -- indication that this call has been retrieved
+ suspend-Indication(4),
+ -- indication that this call has been suspended
+ resume-Indication(5),
+ -- indication that this call has been resumed
+ answer-Indication(6),
+ -- indication that this call has been answered
+ ...
+}
+
+SciDataMode ::= OCTET STRING (SIZE (1..256))
+
+SMS-report ::= SEQUENCE
+{
+ communicationIdentifier [1] CommunicationIdentifier,
+ -- used to uniquely identify an intercepted call: the same used for the
+ -- relevant IRI
+ -- Called "callIdentifier" in V1.1.1 of ES 201 671 [i.5]
+ timeStamp [2] TimeStamp,
+ -- date and time of the report. The format is
+ -- the one defined in case a) of the ASN.1 ITU-T Recommendation X.680 [33].
+ -- (year month day hour minutes seconds)
+ sMS-Contents [3] SEQUENCE
+ {
+ initiator [1] ENUMERATED
+ {
+ -- party which sent the SMS
+ target(0),
+ server(1),
+ undefined-party(2),
+ ...
+ },
+ transfer-status [2] ENUMERATED
+ {
+ succeed-transfer(0),
+ --the transfer of the SMS message succeeds
+ not-succeed-transfer(1),
+ undefined(2),
+ ...
+ } OPTIONAL,
+ other-message [3] ENUMERATED
+ {
+ -- In case of terminating call, indicates if the server will send other SMS.
+ yes(0),
+ no(1),
+ undefined(2),
+ ...
+ } OPTIONAL,
+ content [4] OCTET STRING (SIZE (1..270)) OPTIONAL,
+ -- Encoded in the format defined for the SMS mobile.
+ ...
+ }
+}
+
+LawfulInterceptionIdentifier ::= OCTET STRING (SIZE (1..25))
+ -- It is recommended to use ASCII characters in "a"..."z", "A"..."Z", "-", "_", ".", and "0"..."9".
+ -- For subaddress option only "0"..."9" shall be used.
+
+National-Parameters ::= SET SIZE (1..40) OF OCTET STRING (SIZE (1..256))
+ -- Content defined by national law.
+
+GPRSCorrelationNumber ::= OCTET STRING (SIZE(8..20))
+
+GPRSEvent ::= ENUMERATED
+ -- see 3GPP TS 03.33 [42]
+{
+ pDPContextActivation(1),
+ startOfInterceptionWithPDPContextActive(2),
+ pDPContextDeactivation(4),
+ gPRSAttach(5),
+ gPRSDetach(6),
+ cellOrRAUpdate(10),
+ sMS(11),
+ ...,
+ pDPContextModification(13)
+}
+
+Services-Data-Information ::= SEQUENCE
+{
+ gPRS-parameters [1] GPRS-parameters OPTIONAL,
+ ...
+}
+
+GPRS-parameters ::= SEQUENCE
+{
+ pDP-address-allocated-to-the-target [1] DataNodeAddress OPTIONAL,
+ aPN [2] OCTET STRING (SIZE(1..100)) OPTIONAL,
+ -- The Access Point Name (APN) is coded in accordance with
+ -- 3GPP TS 24.008 [41] without the APN IEI (only the last 100 octets are used).
+ -- Octets are coded according to 3GPP TS 23.003 [76].
+ -- This parameter is duplicated from 3GPP TS 33.108 [61].
+ pDP-type [3] OCTET STRING (SIZE(2)) OPTIONAL,
+ ...
+}
+
+GPRSOperationErrorCode ::= OCTET STRING (SIZE(2))
+ -- Refer to 3GPP TS 24.008 [41] for values (GMM cause or SM cause parameter).
+
+DataNodeAddress ::= CHOICE
+{
+ ipAddress [1] IPAddress,
+ x25Address [2] X25Address,
+ ...
+}
+
+IPAddress ::= SEQUENCE
+{
+ iP-type [1] ENUMERATED
+ {
+ iPV4(0),
+ iPV6(1),
+ ...
+ },
+ iP-value [2] IP-value,
+ iP-assignment [3] ENUMERATED
+ {
+ static(1),
+ -- The static coding shall be used to report a static address.
+ dynamic(2),
+ -- The dynamic coding shall be used to report a dynamically allocated address.
+ notKnown(3),
+ -- The notKnown coding shall be used to report other then static or dynamically
+ -- allocated IP addresses.
+ ...
+ } OPTIONAL,
+ ...
+}
+
+IP-value ::= CHOICE
+{
+ iPBinaryAddress [1] OCTET STRING (SIZE(4..16)),
+ iPTextAddress [2] IA5String (SIZE(7..45)),
+ ...
+}
+
+X25Address ::= OCTET STRING (SIZE(1..25))
+
+National-HI2-ASN1parameters ::= SEQUENCE
+{
+ countryCode [1] PrintableString (SIZE (2)),
+ -- Country Code according to ISO 3166-1 [67],
+ -- the country to which the parameters inserted after the extension marker apply.
+ ...
+ -- In case a given country wants to use additional national parameters according to its law,
+ -- these national parameters should be defined using the ASN.1 syntax and added after the
+ -- extension marker (...).
+ -- It is recommended that "version parameter" and "vendor identification parameter" are
+ -- included in the national parameters definition. Vendor identifications can be
+ -- retrieved from the IANA web site (see annex J). Besides, it is recommended to avoid
+ -- using tags from 240 to 255 in a formal type definition.
+}
+
+END -- end of HI2Operations
diff --git a/epan/dissectors/asn1/HI2Operations/Makefile.am b/epan/dissectors/asn1/HI2Operations/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/HI2Operations/Makefile.common b/epan/dissectors/asn1/HI2Operations/Makefile.common
new file mode 100644
index 0000000000..37b4737de6
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/Makefile.common
@@ -0,0 +1,44 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=HI2Operations
+
+ASN_FILE_LIST = \
+ HI2Operations_ver11.asn \
+ UmtsHI2Operations.asn \
+ TS101909201.asn \
+ PCESP.asn \
+ EN301040.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/HI2Operations/Makefile.nmake b/epan/dissectors/asn1/HI2Operations/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/HI2Operations/PCESP.asn b/epan/dissectors/asn1/HI2Operations/PCESP.asn
new file mode 100644
index 0000000000..767401849e
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/PCESP.asn
@@ -0,0 +1,365 @@
+PCESP {iso(1) identified-organization(3) dod(6) internet(1) private(4)
+ enterprise(1) cable-Television-Laboratories-Inc(4491) clabProject(2)
+ clabProjPacketCable(2) pktcLawfulIntercept(5) pcesp(1) version-3(3)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+ProtocolVersion ::= ENUMERATED {
+ -- Versions IO1 and IO2 do not support protocol versioning.
+ io3(3),
+ ...}
+
+CdcPdu ::= SEQUENCE {
+ protocolVersion [0] ProtocolVersion,
+ message [1] Message,
+ ...
+}
+
+Message ::= CHOICE {
+ answer [1] Answer,
+ ccclose [2] CCClose,
+ ccopen [3] CCOpen,
+ reserved0 [4] NULL, -- Reserved
+ origination [5] Origination,
+ reserved1 [6] NULL, -- Reserved
+ redirection [7] Redirection,
+ release [8] Release,
+ reserved2 [9] NULL, -- Reserved
+ terminationattempt [10] TerminationAttempt,
+ reserved [11] NULL, -- Reserved
+ ccchange [12] CCChange,
+ reserved3 [13] NULL, -- Reserved
+ reserved4 [14] NULL, -- Reserved
+ reserved5 [15] NULL, -- Reserved
+ networksignal [16] NetworkSignal,
+ subjectsignal [17] SubjectSignal,
+ mediareport [18] MediaReport,
+ serviceinstance [19] ServiceInstance,
+ ...
+}
+
+Answer ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId,
+ answering [4] PartyId OPTIONAL,
+ ...
+}
+
+CCChange ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId,
+ cCCId [4] EXPLICIT CCCId,
+ subject [5] SDP OPTIONAL,
+ associate [6] SDP OPTIONAL,
+ flowDirection [7] FlowDirection,
+ resourceState [8] ResourceState OPTIONAL,
+ ...
+}
+
+CCClose ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ cCCId [3] EXPLICIT CCCId,
+ flowDirection [4] FlowDirection,
+ ...
+}
+
+CCOpen ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ ccOpenOption CHOICE {
+ ccOpenTime [3] SEQUENCE OF CallId,
+ reserved0 [4] NULL, -- Reserved
+ ...
+ },
+ cCCId [5] EXPLICIT CCCId,
+ subject [6] SDP OPTIONAL,
+ associate [7] SDP OPTIONAL,
+ flowDirection [8] FlowDirection,
+ ...
+}
+
+MediaReport ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId,
+ subject [4] SDP OPTIONAL,
+ associate [5] SDP OPTIONAL,
+ ...
+}
+
+NetworkSignal ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId,
+ -- Signal
+ -- The following four parameters are used to report
+ -- information regarding network-generated signals.
+ -- Include at least one of the following four
+ -- parameters to identify the network-generated signal
+ -- being reported.
+ alertingSignal [4] AlertingSignal OPTIONAL,
+ subjectAudibleSignal [5] AudibleSignal OPTIONAL,
+ terminalDisplayInfo [6] TerminalDisplayInfo OPTIONAL,
+ other [7] VisibleString (SIZE (1..128, ...)) OPTIONAL,
+ -- Can be used to report undefined network signals
+ ...
+}
+
+Origination ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId,
+ calling [4] PartyId,
+ called [5] PartyId OPTIONAL,
+ input CHOICE {
+ userinput [6] VisibleString (SIZE (1..32, ...)),
+ translationinput [7] VisibleString (SIZE (1..32, ...)),
+ ...
+ },
+ reserved0 [8] NULL, -- Reserved
+ transitCarrierId [9] TransitCarrierId OPTIONAL,
+ ...
+}
+
+Redirection ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ old [3] CallId,
+ redirectedto [4] PartyId,
+ transitCarrierId [5] TransitCarrierId OPTIONAL,
+ reserved0 [6] NULL, -- Reserved
+ reserved1 [7] NULL, -- Reserved
+ new [8] CallId OPTIONAL,
+ redirectedfrom [9] PartyId OPTIONAL,
+ ...
+}
+
+Release ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId,
+ ...
+}
+
+ServiceInstance ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId,
+ relatedCallId [4] CallId OPTIONAL,
+ serviceName [5] VisibleString (SIZE (1..128, ...)),
+ firstCallCalling [6] PartyId OPTIONAL,
+ secondCallCalling [7] PartyId OPTIONAL,
+ called [8] PartyId OPTIONAL,
+ calling [9] PartyId OPTIONAL,
+ ...
+}
+
+SubjectSignal ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId OPTIONAL,
+ signal [4] SEQUENCE {
+ -- The following four parameters are used to report
+ -- information regarding subject-initiated dialing and
+ -- signaling. Include at least one of the following four
+ -- parameters to identify the subject- initiated dialing
+ -- and signaling information being reported.
+ switchhookFlash [0] VisibleString (SIZE (1..128, ...)) OPTIONAL,
+ dialedDigits [1] VisibleString (SIZE (1..128, ...)) OPTIONAL,
+ featureKey [2] VisibleString (SIZE (1..128, ...)) OPTIONAL,
+ otherSignalingInformation [3] VisibleString (SIZE (1..128, ...)) OPTIONAL,
+ -- Can be used to report undefined subject signals
+ ...
+ },
+ ...
+}
+
+TerminationAttempt ::= SEQUENCE {
+ caseId [0] CaseId,
+ accessingElementId [1] AccessingElementId,
+ eventTime [2] EventTime,
+ callId [3] CallId,
+ calling [4] PartyId OPTIONAL,
+ called [5] PartyId OPTIONAL,
+ reserved0 [6] NULL, -- Reserved
+ redirectedFromInfo [7] RedirectedFromInfo OPTIONAL,
+ ...
+}
+
+AccessingElementId ::= VisibleString (SIZE(1..15, ...))
+ -- Statically configured element number
+
+AlertingSignal ::= ENUMERATED {
+ notUsed (0), -- Reserved
+ alertingPattern0 (1), -- normal ringing
+ alertingPattern1 (2), -- distinctive ringing: intergroup
+ alertingPattern2 (3), -- distinctive ringing: special/priority
+ alertingPattern3 (4), -- distinctive ringing: electronic key
+ -- telephone srvc
+ alertingPattern4 (5), -- ringsplash, reminder ring
+ callWaitingPattern1 (6), -- normal call waiting tone
+ callWaitingPattern2 (7), -- incoming additional call waiting tone
+ callWaitingPattern3 (8), -- priority additional call waiting tone
+ callWaitingPattern4 (9), -- distinctive call waiting tone
+ bargeInTone (10), -- barge-in tone (e.g. for operator barge-in)
+ alertingPattern5 (11), -- distinctive ringing: solution specific
+ alertingPattern6 (12), -- distinctive ringing: solution specific
+ alertingPattern7 (13), -- distinctive ringing: solution specific
+ alertingPattern8 (14), -- distinctive ringing: solution specific
+ alertingPattern9 (15), -- distinctive ringing: solution specific
+ ...
+}
+-- This parameter identifies the type of alerting (ringing) signal that is
+-- applied toward the surveillance subject. See GR-506-CORE, LSSGR: Signaling
+-- for Analog Interfaces (A Module of the LATA Switching Systems Generic
+-- Requirements [LSSGR], FR-64).
+
+AudibleSignal ::= ENUMERATED {
+ notUsed (0), -- Reserved
+ dialTone (1),
+ recallDialTone (2), -- recall dial tone, stutter dial tone
+ ringbackTone (3), -- tone indicates ringing at called party
+ -- end
+ reorderTone (4), -- reorder tone, congestion tone
+ busyTone (5),
+ confirmationTone (6), -- tone confirms receipt and processing of
+ -- request
+ expensiveRouteTone (7), -- tone indicates outgoing route is
+ -- expensive
+ messageWaitingTone (8),
+ receiverOffHookTone (9), -- receiver off-hook tone, off-hook warning
+ -- tone
+ specialInfoTone (10), -- tone indicates call sent to announcement
+ denialTone (11), -- tone indicates denial of feature request
+ interceptTone (12), -- wireless intercept/mobile reorder tone
+ answerTone (13), -- wireless service tone
+ tonesOff (14), -- wireless service tone
+ pipTone (15), -- wireless service tone
+ abbreviatedIntercept (16), -- wireless service tone
+ abbreviatedCongestion (17), -- wireless service tone
+ warningTone (18), -- wireless service tone
+ dialToneBurst (19), -- wireless service tone
+ numberUnObtainableTone (20), -- wireless service tone
+ authenticationFailureTone (21), -- wireless service tone
+ ...
+}
+-- This parameter identifies the type of audible tone that is applied toward
+-- the surveillance subject. See GR-506-CORE, LSSGR: Signaling for Analog
+-- Interfaces (A Module of the LATA Switching Systems Generic Requirements
+-- [LSSGR], FR-64), ANSI/TIA/EIA-41-D, Cellular Radiotelecommunications
+-- Intersystem Operations, and GSM 02.40, Digital cellular telecommunications
+-- system (Phase 2+); Procedure for call progress indications.
+
+CallId ::= SEQUENCE {
+ sequencenumber [0] VisibleString (SIZE(1..25, ...)),
+ systemidentity [1] VisibleString (SIZE(1..15, ...)),
+ ...
+}
+-- The Delivery Function generates this structure from the
+-- Billing-Correlation-ID (contained in the Event Messages).
+-- The sequencenumber is generated by converting the
+-- Timestamp (32 bits) and Event-Counter (32 bits) into
+-- ASCII strings, separating them with a comma.
+-- The systemidentity field is copied from the
+-- Element-ID field
+
+CaseId ::= VisibleString (SIZE(1..25, ...))
+
+CCCId ::= CHOICE {
+ combCCC [0] VisibleString (SIZE(1..20, ...)),
+ sepCCCpair [1] SEQUENCE{
+ sepXmitCCC [0] VisibleString (SIZE(1..20, ...)),
+ sepRecvCCC [1] VisibleString (SIZE(1..20, ...)),
+ ...
+ },
+ ...
+}
+-- The Delivery Function MUST generate this structure
+-- from the CCC-Identifier used for the corresponding
+-- Call Content packet stream by converting the 32-bit
+-- value into an 8-character (hex-encoded) ASCII string
+-- consisting of digits 0-9 and letters A-F.
+
+EventTime ::= GeneralizedTime
+
+FlowDirection ::= ENUMERATED {
+ downstream (1),
+ upstream (2),
+ downstream-and-upstream (3),
+ ...
+}
+
+PartyId ::= SEQUENCE {
+ reserved0 [0] NULL OPTIONAL, -- Reserved
+ reserved1 [1] NULL OPTIONAL, -- Reserved
+ reserved2 [2] NULL OPTIONAL, -- Reserved
+ reserved3 [3] NULL OPTIONAL, -- Reserved
+ reserved4 [4] NULL OPTIONAL, -- Reserved
+ reserved5 [5] NULL OPTIONAL, -- Reserved
+ dn [6] VisibleString (SIZE(1..15, ...)) OPTIONAL,
+ userProvided [7] VisibleString (SIZE(1..15, ...)) OPTIONAL,
+ reserved6 [8] NULL OPTIONAL, -- Reserved
+ reserved7 [9] NULL OPTIONAL, -- Reserved
+ ipAddress [10] VisibleString (SIZE(1..32, ...)) OPTIONAL,
+ reserved8 [11] NULL OPTIONAL, -- Reserved
+ trunkId [12] VisibleString (SIZE(1..32, ...)) OPTIONAL,
+ reserved9 [13] NULL OPTIONAL, -- Reserved
+ genericAddress [14] VisibleString (SIZE(1..32, ...)) OPTIONAL,
+ genericDigits [15] VisibleString (SIZE(1..32, ...)) OPTIONAL,
+ genericName [16] VisibleString (SIZE(1..48, ...)) OPTIONAL,
+ port [17] VisibleString (SIZE(1..32, ...)) OPTIONAL,
+ context [18] VisibleString (SIZE(1..32, ...)) OPTIONAL,
+ ...
+}
+
+RedirectedFromInfo ::= SEQUENCE {
+ lastRedirecting [0] PartyId OPTIONAL,
+ originalCalled [1] PartyId OPTIONAL,
+ numRedirections [2] INTEGER (1..100, ...) OPTIONAL,
+ ...
+}
+
+ResourceState ::= ENUMERATED {reserved(1), committed(2), ...}
+
+SDP ::= UTF8String
+-- The format and syntax of this field are defined in [8].
+
+TerminalDisplayInfo ::= SEQUENCE {
+ generalDisplay [0] VisibleString (SIZE (1..80, ...)) OPTIONAL,
+ -- Can be used to report display-related
+ -- network signals not addressed by
+ -- other parameters.
+ calledNumber [1] VisibleString (SIZE (1..40, ...)) OPTIONAL,
+ callingNumber [2] VisibleString (SIZE (1..40, ...)) OPTIONAL,
+ callingName [3] VisibleString (SIZE (1..40, ...)) OPTIONAL,
+ originalCalledNumber [4] VisibleString (SIZE (1..40, ...)) OPTIONAL,
+ lastRedirectingNumber [5] VisibleString (SIZE (1..40, ...)) OPTIONAL,
+ redirectingName [6] VisibleString (SIZE (1..40, ...)) OPTIONAL,
+ redirectingReason [7] VisibleString (SIZE (1..40, ...)) OPTIONAL,
+ messageWaitingNotif [8] VisibleString (SIZE (1..40, ...)) OPTIONAL,
+ ...
+}
+-- This parameter reports information that is displayed on the surveillance
+-- subject's terminal. See GR-506-CORE, LSSGR: Signaling for Analog
+-- Interfaces (A Module of the LATA Switching Systems Generic Requirements
+-- [LSSGR], FR-64).
+
+TransitCarrierId ::= VisibleString (SIZE(3..7, ...))
+
+END -- PCESP
+
diff --git a/epan/dissectors/asn1/HI2Operations/TS101909201.asn b/epan/dissectors/asn1/HI2Operations/TS101909201.asn
new file mode 100644
index 0000000000..deb341c35c
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/TS101909201.asn
@@ -0,0 +1,76 @@
+TS101909201 {itu-t (0) identified-organization (4) etsi (0) ts101909 (1909) part20 (20) subpart1(1) interceptVersion (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+CdcPdu FROM
+ PCESP {iso(1) identified-organization(3) dod(6) internet(1) private(4)
+ enterprise(1) cable-Television-Laboratories-Inc(4491) clabProject(2)
+ clabProjPacketCable(2) pktcLawfulIntercept(5) pcesp(1) version-4(4)};
+
+TARGETACTIVITYMONITOR-1 ::= SEQUENCE
+{
+ version INTEGER DEFAULT 1, -- header, version -
+ lIInstanceid LIIDType, -- header, who -
+ timestamp UTCTime, -- header, when -
+ targetLocation LocationType, -- header, where -
+ direction DirectionType,
+ iRITransaction IRITransactionType DEFAULT iRIreport,
+ iRITransactionNumber INTEGER,
+ userSignal UserSignalType, -- Either copy or interpreted signalling
+ cryptoCheckSum BIT STRING OPTIONAL
+}
+
+TTRAFFIC ::= SEQUENCE
+{
+ version INTEGER DEFAULT 1, -- header, version -
+ lIInstanceid LIIDType,
+ iRITransactionNumber INTEGER,
+ trafficPacket BIT STRING,
+ cryptoChecksum BIT STRING OPTIONAL
+}
+
+CTTRAFFIC ::= SEQUENCE
+{
+ version INTEGER DEFAULT 1, -- header, version -
+ lIInstanceid LIIDType,
+ correspondentCount INTEGER,
+ iRITransactionNumber INTEGER,
+ trafficPacket BIT STRING,
+ cryptoChecksum BIT STRING OPTIONAL
+}
+
+DirectionType ::= ENUMERATED
+{
+ toTarget,
+ fromTarget,
+ unknown
+}
+
+UserSignalType ::= CHOICE
+{
+ copySignal BIT STRING,
+ interpretedSignal INTEGER,
+ cdcPdu CdcPdu
+}
+
+IRITransactionType ::= ENUMERATED
+{
+ iRIbegin,
+ iRIcontinue,
+ iRIend,
+ iRIreport
+}
+
+LocationType ::= CHOICE
+{
+ geodeticData BIT STRING,
+ nameAddress PrintableString (SIZE (1..100))
+}
+
+LIIDType ::= INTEGER (0..65535) -- 16 bit integer to identify interception
+
+END \ No newline at end of file
diff --git a/epan/dissectors/asn1/HI2Operations/UmtsHI2Operations.asn b/epan/dissectors/asn1/HI2Operations/UmtsHI2Operations.asn
new file mode 100644
index 0000000000..f13d62c1bf
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/UmtsHI2Operations.asn
@@ -0,0 +1,56 @@
+-- WS Modified UmtsHI2Operations just containing the imported defines
+--
+UmtsHI2Operations {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulintercept(2) threeGPP(4) hi2(1) r8(8) version-1(1)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+UmtsQos ::= CHOICE
+{
+ qosMobileRadio [1] OCTET STRING,
+ -- The qosMobileRadio parameter shall be coded in accordance with the S 10.5.6.5 of
+ -- document [9] without the Quality of service IEI and Length of
+ -- quality of service IE (. That is, first
+ -- two octets carrying 'Quality of service IEI' and 'Length of quality of service
+ -- IE' shall be excluded).
+ qosGn [2] OCTET STRING
+ -- qosGn parameter shall be coded in accordance with S 7.7.34 of document [17]
+}
+
+IMSevent ::= ENUMERATED
+{
+ unfilteredSIPmessage (1),
+ -- This value indicates to LEMF that the whole SIP message is sent.
+
+ ...,
+ sIPheaderOnly (2)
+ -- If warrant requires only IRI then specific content in a 'sIPMessage'
+ -- (e.g. 'Message', etc.) has been deleted before sending it to LEMF.
+}
+
+LDIevent ::= ENUMERATED
+{
+ targetEntersIA (1),
+ targetLeavesIA (2),
+ ...
+}
+
+CorrelationValues ::= CHOICE {
+
+ iri-to-CC [0] IRI-to-CC-Correlation, -- correlates IRI to Content(s)
+ iri-to-iri [1] IRI-to-IRI-Correlation, -- correlates IRI to IRI
+ both-IRI-CC [2] SEQUENCE { -- correlates IRI to IRI and IRI to Content(s)
+ iri-CC [0] IRI-to-CC-Correlation,
+ iri-IRI [1] IRI-to-IRI-Correlation}
+}
+
+
+IRI-to-CC-Correlation ::= SEQUENCE { -- correlates IRI to Content
+ cc [0] SET OF OCTET STRING,-- correlates IRI to multiple CCs
+ iri [1] OCTET STRING OPTIONAL
+ -- correlates IRI to CC with signaling
+}
+IRI-to-IRI-Correlation ::= OCTET STRING -- correlates IRI to IRI
+
+END -- OF UmtsHI2Operations
diff --git a/epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c b/epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c
new file mode 100644
index 0000000000..c8f28ffc6f
--- /dev/null
+++ b/epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c
@@ -0,0 +1,77 @@
+/* packet-HI2Operations.c
+ * Routines for HI2 (ETSI TS 101 671 V3.5.1 (2009-11))
+ * Erwin van Eijk 2010
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/conversation.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+
+#define PNAME "HI2Operations"
+#define PSNAME "HI2OPERATIONS"
+#define PFNAME "hi2operations"
+
+void proto_register_HI2Operations(void);
+void proto_reg_handoff_HI2Operations(void);
+
+/* Initialize the protocol and registered fields */
+int proto_HI2Operations = -1;
+#include "packet-HI2Operations-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-HI2Operations-ett.c"
+
+#include "packet-HI2Operations-fn.c"
+
+
+/*--- proto_register_HI2Operations ----------------------------------------------*/
+void proto_register_HI2Operations(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-HI2Operations-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-HI2Operations-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_HI2Operations = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_HI2Operations, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_dissector("HI2Operations", dissect_IRIsContent_PDU, proto_HI2Operations);
+}
+
+
+/*--- proto_reg_handoff_HI2Operations -------------------------------------------*/
+void proto_reg_handoff_HI2Operations(void) {
+}
+
diff --git a/epan/dissectors/asn1/Makefile.am b/epan/dissectors/asn1/Makefile.am
new file mode 100644
index 0000000000..3990709e32
--- /dev/null
+++ b/epan/dissectors/asn1/Makefile.am
@@ -0,0 +1,145 @@
+# Makefile.am
+# Automake file for Wireshark
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 2006 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+include Custom.make
+
+SUBDIRS = \
+ $(CUSTOM_SUBDIRS) \
+ acp133 \
+ acse \
+ ansi_map \
+ ansi_tcap \
+ atn-cm \
+ atn-cpdlc \
+ atn-ulcs \
+ c1222 \
+ camel \
+ cdt \
+ charging_ase \
+ cmip \
+ cmp \
+ cms \
+ credssp \
+ crmf \
+ dap \
+ disp \
+ dop \
+ dsp \
+ ess \
+ ftam \
+ goose \
+ gprscdr \
+ gsm_map \
+ h225 \
+ h235 \
+ h245 \
+ h248 \
+ h282 \
+ h283 \
+ h323 \
+ h450 \
+ h450-ros \
+ h460 \
+ h501 \
+ HI2Operations \
+ hnbap \
+ idmp \
+ ilp \
+ inap \
+ isdn-sup \
+ kerberos \
+ lcsap \
+ ldap \
+ logotypecertextn \
+ lpp \
+ lppa \
+ lppe \
+ lte-rrc \
+ m3ap \
+ mms \
+ mpeg-audio \
+ mpeg-pes \
+ nbap \
+ novell_pkis \
+ ns_cert_exts \
+ ocsp \
+ p1 \
+ p22 \
+ p7 \
+ p772 \
+ pcap \
+ pkcs1 \
+ pkcs12 \
+ pkinit \
+ pkix1explicit \
+ pkix1implicit \
+ pkixac \
+ pkixproxy \
+ pkixqualified \
+ pkixtsp \
+ pres \
+ q932 \
+ q932-ros \
+ qsig \
+ ranap \
+ rnsap \
+ ros \
+ rrc \
+ rrlp \
+ rtse \
+ rua \
+ s1ap \
+ sabp \
+ sbc-ap \
+ smrse \
+ snmp \
+ spnego \
+ sv \
+ t124 \
+ t125 \
+ t38 \
+ tcap \
+ tetra \
+ ulp \
+ wlancertextn \
+ x2ap \
+ x509af \
+ x509ce \
+ x509if \
+ x509sat
+
+# x721 doesn't build
+DONT_BUILD_SUBDIRS = \
+ x721
+
+DIST_SUBDIRS = $(SUBDIRS) $(DONT_BUILD_SUBDIRS)
+
+EXTRA_DIST = \
+ CMakeLists.txt \
+ Makefile.inc \
+ Makefile.nmake \
+ Makefile.inc.nmake \
+ Makefile.preinc \
+ Makefile.preinc.nmake
+
+MAINTAINERCLEANFILES = \
+ Makefile.in
+
diff --git a/epan/dissectors/asn1/Makefile.inc b/epan/dissectors/asn1/Makefile.inc
new file mode 100644
index 0000000000..77d7c9515d
--- /dev/null
+++ b/epan/dissectors/asn1/Makefile.inc
@@ -0,0 +1,59 @@
+# To be included into the asn1 Makefiles
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+DISSECTOR = $(top_srcdir)/epan/dissectors/packet-$(PROTOCOL_NAME).c
+# This header file need not exist/get generated. It is only used when cleaning.
+DISSECTOR_HEADER=$(top_srcdir)/epan/dissectors/packet-$(PROTOCOL_NAME).h
+
+all: generate_export $(DISSECTOR)
+
+generate_export: $(EXPORT_FILES)
+
+PROTO_OPT ?= -p $(PROTOCOL_NAME)
+
+$(DISSECTOR): $(top_srcdir)/tools/asn2wrs.py $(SRC_FILES) $(EXTRA_CNF)
+ $(PYTHON) $(top_srcdir)/tools/asn2wrs.py \
+ $(A2W_FLAGS) \
+ $(PROTO_OPT) \
+ -c $(srcdir)/$(PROTOCOL_NAME).cnf \
+ -s $(srcdir)/packet-$(PROTOCOL_NAME)-template \
+ -D $(srcdir) \
+ -O $(top_srcdir)/epan/dissectors \
+ $(EXT_ASN_FILE_LIST) $(ASN_FILE_LIST) $(EXT_ASN_FILE_LIST_LATE)
+
+$(EXPORT_FILES): $(top_srcdir)/tools/asn2wrs.py $(SRC_FILES) $(EXPORT_DEPENDS)
+ $(PYTHON) $(top_srcdir)/tools/asn2wrs.py \
+ -E $(A2W_FLAGS) \
+ $(PROTO_OPT) \
+ -c $(srcdir)/$(PROTOCOL_NAME).cnf \
+ -D $(srcdir) \
+ $(EXT_ASN_FILE_LIST) $(ASN_FILE_LIST) $(EXT_ASN_FILE_LIST_LATE)
+
+# Don't clean these up until/unless we start building them...
+#$(DISSECTOR)
+#$(DISSECTOR_HEADER)
+CLEANFILES = \
+ parsetab.py \
+ parsetab.pyc \
+ *-exp.cnf \
+ packet-*-{dis-tab,ettarr,ett,exp,fn,hfarr,hf,table*,val}.[hc]
+
+MAINTAINERCLEANFILES = \
+ Makefile.in
diff --git a/epan/dissectors/asn1/Makefile.inc.nmake b/epan/dissectors/asn1/Makefile.inc.nmake
new file mode 100644
index 0000000000..f46a81397d
--- /dev/null
+++ b/epan/dissectors/asn1/Makefile.inc.nmake
@@ -0,0 +1,75 @@
+# To be included into the asn1 Makefiles for Windows builds
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+DISSECTOR=../../packet-$(PROTOCOL_NAME).c
+# This header file need not exist/get generated. It is only used when cleaning.
+DISSECTOR_HEADER=../../packet-$(PROTOCOL_NAME).h
+
+all: generate_export $(DISSECTOR)
+
+generate_export: $(EXPORT_FILES)
+
+!IFNDEF PROTO_OPT
+PROTO_OPT = -p $(PROTOCOL_NAME)
+!ENDIF
+
+$(DISSECTOR): ../../../../tools/asn2wrs.py $(SRC_FILES) $(EXTRA_CNF)
+ $(PYTHON) "../../../../tools/asn2wrs.py" \
+ $(A2W_FLAGS) \
+ $(PROTO_OPT) \
+ -c ./$(PROTOCOL_NAME).cnf \
+ -s ./packet-$(PROTOCOL_NAME)-template \
+ -D . \
+ -O ../.. \
+ $(EXT_ASN_FILE_LIST) $(ASN_FILE_LIST) $(EXT_ASN_FILE_LIST_LATE)
+
+!IFDEF EXPORT_FILES
+$(EXPORT_FILES): ../../../../tools/asn2wrs.py $(SRC_FILES) $(EXPORT_DEPENDS)
+ $(PYTHON) "../../../../tools/asn2wrs.py" \
+ -E $(A2W_FLAGS) \
+ $(PROTO_OPT) \
+ -c ./$(PROTOCOL_NAME).cnf \
+ -D . \
+ $(EXT_ASN_FILE_LIST) $(ASN_FILE_LIST) $(EXT_ASN_FILE_LIST_LATE)
+!ENDIF
+
+# Don't clean these up until/unless we start building them...
+# $(DISSECTOR) \
+# $(DISSECTOR_HEADER)
+clean:
+ rm -f parsetab.py \
+ parsetab.pyc \
+ *-exp.cnf \
+ packet-*-{dis-tab,ettarr,ett,fn,hfarr,hf,table*,val}.[hc]
+
+
+distclean: clean
+
+maintainer-clean: distclean
+
+# Fix EOL in generated dissectors. Cygwin's python generates files with
+# mixed EOL styles, which can't be commited to the SVN repository.
+# Stuff included from template and "cnf" files has "\r\n" on windows, while
+# the generated stuff has "\n".
+
+fix_eol: $(DISSECTOR)
+ u2d $(DISSECTOR) $(DISSECTOR_HEADER)
+
diff --git a/epan/dissectors/asn1/Makefile.nmake b/epan/dissectors/asn1/Makefile.nmake
new file mode 100644
index 0000000000..68b58a86fa
--- /dev/null
+++ b/epan/dissectors/asn1/Makefile.nmake
@@ -0,0 +1,177 @@
+## Makefile for building wireshark.exe with Microsoft C and nmake
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+## (See 'Logic' below for additional details)
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+# Logic;
+# 1. If this Makefile is invoked w/o a target:
+# Do default target 'all' which invokes the Makefile.nmake
+# in each individual ASN1 sub-directory using the value of ASN1_MAKE_TARGET
+# as the make target.
+# (If ASN1_MAKE_TARGET is not defined then default to "all"
+# which generates the individual ASN1 dissector files into
+# epan\dissectors).
+#
+# 2. If this Makefile is invoked with one of the following targets, then do the action for the target:
+# Reinvoke this Makefile with 'all' as target and with ASN1_MAKE_TARGET
+# defined as appropriate.
+# clean
+# copy_files : generate the dissectors into epan\dissectors
+# : (This is, in effect, the same as invoking this makefile w/o a target).
+
+include Custom.make
+
+BER_LIST= \
+ acp133 \
+ acse \
+ ansi_map \
+ ansi_tcap \
+ atn-cm \
+ atn-cpdlc \
+ atn-ulcs \
+ c1222 \
+ camel \
+ cdt \
+ charging_ase \
+ cmip \
+ cmp \
+ crmf \
+ cms \
+ credssp \
+ dap \
+ dop \
+ disp \
+ dsp \
+ ess \
+ ftam \
+ goose \
+ gsm_map \
+ gprscdr \
+ h248 \
+ HI2Operations \
+ idmp \
+ inap \
+ isdn-sup \
+ kerberos \
+ ldap \
+ logotypecertextn \
+ mms \
+ ns_cert_exts \
+ novell_pkis \
+ ocsp \
+ p1 \
+ p22 \
+ p7 \
+ p772 \
+ pkcs1 \
+ pkcs12 \
+ pkinit \
+ pkixac \
+ pkix1explicit \
+ pkix1implicit \
+ pkixproxy \
+ pkixqualified \
+ pkixtsp \
+ pres \
+ q932 \
+ q932-ros \
+ qsig \
+ ros \
+ rtse \
+ smrse \
+ snmp \
+ spnego \
+ sv \
+ t125 \
+ tcap \
+ wlancertextn \
+ x509af \
+ x509ce \
+ x509if \
+ x509sat \
+ $(CUSTOM_BER_LIST)
+
+PER_LIST= \
+ h225 \
+ h235 \
+ h245 \
+ h282 \
+ h283 \
+ h323 \
+ h450 \
+ h450-ros \
+ h460 \
+ h501 \
+ hnbap \
+ ilp \
+ lcsap \
+ lpp \
+ lppa \
+ lppe \
+ lte-rrc \
+ nbap \
+ m3ap \
+ mpeg-audio \
+ mpeg-pes \
+ pcap \
+ ranap \
+ rnsap \
+ rrc \
+ rrlp \
+ rua \
+ s1ap \
+ sabp \
+ sbc-ap \
+ t124 \
+ t38 \
+ tetra \
+ ulp \
+ x2ap \
+### x721
+ $(CUSTOM_PER_LIST)
+
+!IFNDEF ASN1_MAKE_TARGET
+ASN1_MAKE_TARGET=all
+!ENDIF
+
+all: ber per
+
+ber: $(BER_LIST)
+
+per: $(PER_LIST)
+
+$(BER_LIST) $(PER_LIST) : _FORCE_ # _FORCE_ req'd since each target actually exists
+ cd $@
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake $(ASN1_MAKE_TARGET)
+ cd ..
+
+# When this Makefile is invoked with an explicit target then
+# this Makefile is re-invoked with 'all' as target and with
+# ASN1_MAKE_TARGET defined as to the action needed.
+# copy_files is a bit of a misnomer now, but we need another
+# (non-"all") target...
+
+clean copy_files :
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake all ASN1_MAKE_TARGET=$@
+
+####
+_FORCE_: ## Assumption: no file named _FORCE_ exists in the current directory
+
diff --git a/epan/dissectors/asn1/Makefile.preinc b/epan/dissectors/asn1/Makefile.preinc
new file mode 100644
index 0000000000..de372ba9aa
--- /dev/null
+++ b/epan/dissectors/asn1/Makefile.preinc
@@ -0,0 +1,25 @@
+# To be included into the asn1 Makefiles
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+MAKE_CNF_EXPORT = $(MAKE) generate_export
+
+EXTRA_DIST_COMMON = \
+ CMakeLists.txt \
+ Makefile.nmake
diff --git a/epan/dissectors/asn1/Makefile.preinc.nmake b/epan/dissectors/asn1/Makefile.preinc.nmake
new file mode 100644
index 0000000000..c02c27d139
--- /dev/null
+++ b/epan/dissectors/asn1/Makefile.preinc.nmake
@@ -0,0 +1,26 @@
+# To be included into the asn1 Makefiles for Windows builds
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+MAKE_CNF_EXPORT = $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake generate_export
+
+# An automake variable used in several Makefile.common's
+builddir=.
+
diff --git a/epan/dissectors/asn1/acp133/CMakeLists.txt b/epan/dissectors/asn1/acp133/CMakeLists.txt
new file mode 100644
index 0000000000..8d5a5fe48b
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/CMakeLists.txt
@@ -0,0 +1,57 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME acp133 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+ MHSDirectoryObjectsAndAttributes.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/acp133/MHSDirectoryObjectsAndAttributes.asn b/epan/dissectors/asn1/acp133/MHSDirectoryObjectsAndAttributes.asn
new file mode 100644
index 0000000000..4bf0e5ebbb
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/MHSDirectoryObjectsAndAttributes.asn
@@ -0,0 +1,433 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x402/1999/index.html
+-- Module MHSDirectoryObjectsAndAttributes (X.402:06/1999)
+MHSDirectoryObjectsAndAttributes {joint-iso-itu-t mhs(6) arch(5) modules(0)
+ directory(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- MHS Object Identifiers
+ id-at-mhs-acceptable-eits, id-at-mhs-deliverable-classes,
+ id-at-mhs-deliverable-content-types, id-at-mhs-dl-archive-service,
+ id-at-mhs-dl-members, id-at-mhs-dl-policy, id-at-mhs-dl-related-lists,
+ id-at-mhs-dl-submit-permissions, id-at-mhs-dl-subscription-service,
+ id-at-mhs-exclusively-acceptable-eits, id-at-mhs-maximum-content-length,
+ id-at-mhs-message-store-dn, id-at-mhs-or-addresses,
+ id-at-mhs-or-addresses-with-capabilities, id-at-mhs-supported-attributes,
+ id-at-mhs-supported-automatic-actions, id-at-mhs-supported-content-types,
+ id-at-mhs-supported-matching-rules, id-at-mhs-unacceptable-eits,
+ id-con-dl-administrator-annotation, id-con-dl-nested-dl,
+ id-con-dl-reset-originator, id-mr-address-capabilities-match,
+ id-mr-capability-match, id-mr-orname-exact-match,
+ id-oc-mhs-distribution-list, id-oc-mhs-message-store,
+ id-oc-mhs-message-transfer-agent, id-oc-mhs-user, id-oc-mhs-user-agent,
+ id-san-mta-name
+ --==
+ FROM MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ ContentLength, EncodedInformationTypesConstraints, ExtendedContentType,
+ ExtendedEncodedInformationType, GlobalDomainIdentifier, MTAName,
+ ORAddress, ORName, RequestedDeliveryMethod, SecurityContext
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MS Abstract Service
+ AUTO-ACTION
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS General Attribute Types
+ X413ATTRIBUTE, AttributeTable
+ --==
+ FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)}
+ -- MS General Auto Action Types
+ AutoActionTable
+ --==
+ FROM MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-auto-action-types(3) version-1994(0)}
+ -- MS Matching Rules
+ MatchingRuleTable, oRAddressMatch, oRAddressElementsMatch,
+ oRAddressSubstringElementsMatch, oRNameMatch, oRNameElementsMatch,
+ oRNameSingleElementMatch, oRNameSubstringElementsMatch
+ --==
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- Information Framework
+ ATTRIBUTE, CONTEXT, distinguishedNameMatch, DIT-CONTEXT-USE-RULE,
+ objectIdentifierMatch, MATCHING-RULE, Name, OBJECT-CLASS, top
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Selected Object Classes
+ applicationEntity
+ --==
+ FROM SelectedObjectClasses {joint-iso-itu-t ds(5) module(1)
+ selectedObjectClasses(6) 3}
+ -- Selected Attribute Types
+ commonName, description, distinguishedName, integerMatch, organizationName,
+ organizationalUnitName, owner, protocolInformation, seeAlso
+ --==
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3}
+ -- Authentication Framework
+ AlgorithmIdentifier
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- Certificate Extensions
+ CertificateAssertion, OTHER-NAME
+ --==
+ FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0};
+
+-- OBJECT CLASSES
+-- MHS Distribution List
+mhs-distribution-list OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {commonName | mhs-dl-submit-permissions | mhs-or-addresses}
+ MAY CONTAIN
+ {description | organizationName | organizationalUnitName | owner | seeAlso
+ | mhs-maximum-content-length | mhs-deliverable-content-types |
+ mhs-acceptable-eits | mhs-exclusively-acceptable-eits |
+ mhs-unacceptable-eits | mhs-dl-policy | mhs-dl-subscription-service |
+ mhs-dl-archive-service | mhs-dl-related-lists | mhs-dl-members}
+ ID id-oc-mhs-distribution-list
+}
+
+-- MHS Message Store
+mhs-message-store OBJECT-CLASS ::= {
+ SUBCLASS OF {applicationEntity}
+ MAY CONTAIN
+ {owner | mhs-supported-attributes | mhs-supported-automatic-actions |
+ mhs-supported-matching-rules | mhs-supported-content-types |
+ protocolInformation}
+ ID id-oc-mhs-message-store
+}
+
+-- MHS Message Transfer Agent
+mhs-message-transfer-agent OBJECT-CLASS ::= {
+ SUBCLASS OF {applicationEntity}
+ MAY CONTAIN {owner | mhs-maximum-content-length | protocolInformation}
+ ID id-oc-mhs-message-transfer-agent
+}
+
+-- MHS User
+mhs-user OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND auxiliary
+ MUST CONTAIN {mhs-or-addresses}
+ MAY CONTAIN
+ {mhs-maximum-content-length | mhs-deliverable-content-types |
+ mhs-acceptable-eits | mhs-exclusively-acceptable-eits |
+ mhs-unacceptable-eits | mhs-or-addresses-with-capabilities |
+ mhs-message-store-dn}
+ ID id-oc-mhs-user
+}
+
+-- MHS User Agent
+mhs-user-agent OBJECT-CLASS ::= {
+ SUBCLASS OF {applicationEntity}
+ MAY CONTAIN
+ {owner | mhs-maximum-content-length | mhs-deliverable-content-types |
+ mhs-acceptable-eits | mhs-exclusively-acceptable-eits |
+ mhs-unacceptable-eits | mhs-deliverable-classes | mhs-or-addresses |
+ protocolInformation}
+ ID id-oc-mhs-user-agent
+}
+
+-- ATTRIBUTES
+-- MHS Acceptable EITs
+mhs-acceptable-eits ATTRIBUTE ::= {
+ WITH SYNTAX ExtendedEncodedInformationType
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-mhs-acceptable-eits
+}
+
+-- MHS Deliverable Classes
+mhs-deliverable-classes ATTRIBUTE ::= {
+ WITH SYNTAX Capability
+ EQUALITY MATCHING RULE capabilityMatch
+ ID id-at-mhs-deliverable-classes
+}
+
+-- MHS Deliverable Content Types
+mhs-deliverable-content-types ATTRIBUTE ::= {
+ WITH SYNTAX ExtendedContentType
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-mhs-deliverable-content-types
+}
+
+-- MHS DL Archive Service
+mhs-dl-archive-service ATTRIBUTE ::= {
+ WITH SYNTAX ORName
+ EQUALITY MATCHING RULE oRNameExactMatch
+ -- EXTENSIBLE MATCHING RULE { oRNameMatch | oRNameElementsMatch |
+ -- oRNameSubstringElementsMatch | oRNameSingleElementMatch }
+ ID id-at-mhs-dl-archive-service
+}
+
+-- MHS DL Members
+mhs-dl-members ATTRIBUTE ::= {
+ WITH SYNTAX ORName
+ EQUALITY MATCHING RULE oRNameExactMatch
+ -- EXTENSIBLE MATCHING RULE { oRNameMatch | oRNameElementsMatch |
+ -- oRNameSubstringElementsMatch | oRNameSingleElementMatch }
+ ID id-at-mhs-dl-members
+}
+
+-- MHS DL Policy
+mhs-dl-policy ATTRIBUTE ::= {
+ WITH SYNTAX DLPolicy
+ SINGLE VALUE TRUE
+ ID id-at-mhs-dl-policy
+}
+
+-- MHS DL Related Lists
+mhs-dl-related-lists ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-mhs-dl-related-lists
+}
+
+-- MHS DL Submit Permissions
+mhs-dl-submit-permissions ATTRIBUTE ::= {
+ WITH SYNTAX DLSubmitPermission
+ ID id-at-mhs-dl-submit-permissions
+}
+
+-- MHS DL Subscription Service
+mhs-dl-subscription-service ATTRIBUTE ::= {
+ WITH SYNTAX ORName
+ EQUALITY MATCHING RULE oRNameExactMatch
+ -- EXTENSIBLE MATCHING RULE { oRNameMatch | oRNameElementsMatch |
+ -- oRNameSubstringElementsMatch | oRNameSingleElementMatch }
+ ID id-at-mhs-dl-subscription-service
+}
+
+-- MHS Exclusively Acceptable EITs
+mhs-exclusively-acceptable-eits ATTRIBUTE ::= {
+ WITH SYNTAX ExtendedEncodedInformationType
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-mhs-exclusively-acceptable-eits
+}
+
+-- MHS Maximum Content Length
+mhs-maximum-content-length ATTRIBUTE ::= {
+ WITH SYNTAX ContentLength
+ EQUALITY MATCHING RULE integerMatch
+ SINGLE VALUE TRUE
+ ID id-at-mhs-maximum-content-length
+}
+
+-- MHS Message Store Directory Name
+mhs-message-store-dn ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-mhs-message-store-dn
+}
+
+-- MHS OR-Addresses
+mhs-or-addresses ATTRIBUTE ::= {
+ WITH SYNTAX ORAddress
+ EQUALITY MATCHING RULE oRAddressMatch
+ -- EXTENSIBLE MATCHING RULE { oRAddressElementsMatch | oRNameSingleElementMatch |
+ -- oRAddressSubstringElementsMatch }
+ ID id-at-mhs-or-addresses
+}
+
+-- MHS OR-Addresses with Capabilities
+mhs-or-addresses-with-capabilities ATTRIBUTE ::= {
+ WITH SYNTAX AddressCapabilities
+ EQUALITY MATCHING RULE addressCapabilitiesMatch
+ ID id-at-mhs-or-addresses-with-capabilities
+}
+
+-- MHS Supported Attributes
+mhs-supported-attributes ATTRIBUTE ::= {
+ WITH SYNTAX X413ATTRIBUTE.&id({AttributeTable})
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-mhs-supported-attributes
+}
+
+-- MHS Supported Automatic Actions
+mhs-supported-automatic-actions ATTRIBUTE ::= {
+ WITH SYNTAX AUTO-ACTION.&id({AutoActionTable})
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-mhs-supported-automatic-actions
+}
+
+-- MHS Supported Content Types
+mhs-supported-content-types ATTRIBUTE ::= {
+ WITH SYNTAX ExtendedContentType
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-mhs-supported-content-types
+}
+
+-- MHS Supported Matching Rules
+mhs-supported-matching-rules ATTRIBUTE ::= {
+ WITH SYNTAX MATCHING-RULE.&id({MatchingRuleTable})
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-mhs-supported-matching-rules
+}
+
+-- MHS Unacceptable EITs
+mhs-unacceptable-eits ATTRIBUTE ::= {
+ WITH SYNTAX ExtendedEncodedInformationType
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-mhs-unacceptable-eits
+}
+
+-- ATTRIBUTE SYNTAXES
+-- DL Submit Permission
+DLSubmitPermission ::= CHOICE {
+ individual [0] ORName,
+ member-of-dl [1] ORName,
+ pattern-match [2] ORNamePattern,
+ member-of-group [3] Name
+}
+
+ORNamePattern ::= ORName
+
+--any-user-may-submit DLSubmitPermission ::=
+-- pattern-match:{built-in-standard-attributes {}}
+
+-- DL Policy
+DLPolicy ::= SET {
+ report-propagation
+ [0] INTEGER {previous-dl-or-originator(0), dl-owner(1),
+ both-previous-and-owner(2)} DEFAULT previous-dl-or-originator,
+ report-from-dl
+ [1] INTEGER {whenever-requested(0), when-no-propagation(1)}
+ DEFAULT whenever-requested,
+ originating-MTA-report
+ [2] INTEGER {unchanged(0), report(2), non-delivery-report(3),
+ audited-report(4)} DEFAULT unchanged,
+ originator-report
+ [3] INTEGER {unchanged(0), no-report(1), report(2), non-delivery-report(3)}
+ DEFAULT unchanged,
+ return-of-content
+ [4] ENUMERATED {unchanged(0), content-return-not-requested(1),
+ content-return-requested(2)} DEFAULT unchanged,
+ priority
+ [5] INTEGER {unchanged(0), normal(1), non-urgent(2), urgent(3)}
+ DEFAULT unchanged,
+ disclosure-of-other-recipients
+ [6] ENUMERATED {unchanged(0),
+ disclosure-of-other-recipients-prohibited(1),
+ disclosure-of-other-recipients-allowed(2)}
+ DEFAULT unchanged,
+ implicit-conversion-prohibited
+ [7] ENUMERATED {unchanged(0), implicit-conversion-allowed(1),
+ implicit-conversion-prohibited(2)} DEFAULT unchanged,
+ conversion-with-loss-prohibited
+ [8] ENUMERATED {unchanged(0), conversion-with-loss-allowed(1),
+ conversion-with-loss-prohibited(2)} DEFAULT unchanged,
+ further-dl-expansion-allowed [9] BOOLEAN DEFAULT TRUE,
+ originator-requested-alternate-recipient-removed [10] BOOLEAN DEFAULT TRUE,
+ proof-of-delivery
+ [11] INTEGER {dl-expansion-point(0), dl-members(1), both(2), neither(3)}
+ DEFAULT dl-members,
+ requested-delivery-method
+ [12] CHOICE {unchanged [0] NULL,
+ removed [1] NULL,
+ replaced RequestedDeliveryMethod} DEFAULT unchanged:NULL,
+ token-encryption-algorithm-preference
+ [13] SEQUENCE OF AlgorithmInformation OPTIONAL,
+ token-signature-algorithm-preference
+ [14] SEQUENCE OF AlgorithmInformation OPTIONAL,
+ ...
+}
+
+AlgorithmInformation ::= SEQUENCE {
+ algorithm-identifier [0] AlgorithmIdentifier,
+ originator-certificate-selector [1] CertificateAssertion OPTIONAL,
+ recipient-certificate-selector [2] CertificateAssertion OPTIONAL
+}
+
+-- OR-Address with Capabilities
+AddressCapabilities ::= SEQUENCE {
+ description GeneralString OPTIONAL,
+ address ORAddress,
+ capabilities SET OF Capability
+}
+
+Capability ::= SET {
+ content-types
+ [0] SET OF ExtendedContentType OPTIONAL,
+ maximum-content-length [1] ContentLength OPTIONAL,
+ encoded-information-types-constraints
+ [2] EncodedInformationTypesConstraints OPTIONAL,
+ security-labels [3] SecurityContext OPTIONAL,
+ ...
+}
+
+-- MATCHING RULES
+-- OR-Address with Capabilities Match
+addressCapabilitiesMatch MATCHING-RULE ::= {
+ SYNTAX AddressCapabilities
+ ID id-mr-address-capabilities-match
+}
+
+-- Capability Match
+capabilityMatch MATCHING-RULE ::= {
+ SYNTAX Capability
+ ID id-mr-capability-match
+}
+
+-- OR-Name Exact Match
+oRNameExactMatch MATCHING-RULE ::= {
+ SYNTAX ORName
+ ID id-mr-orname-exact-match
+}
+
+-- CONTEXTS
+-- DL Administrator Annotation
+dl-administrator-annotation CONTEXT ::= {
+ WITH SYNTAX
+ CHOICE {bmpstring BMPString,
+ universalstring UniversalString}
+ ID id-con-dl-administrator-annotation
+}
+
+dl-administrator-annotation-use-rule DIT-CONTEXT-USE-RULE ::= {
+ ATTRIBUTE TYPE mhs-dl-members.&id
+ OPTIONAL CONTEXTS {dl-administrator-annotation}
+}
+
+-- DL Nested DL
+dl-nested-dl CONTEXT ::= {WITH SYNTAX NULL
+ ID id-con-dl-nested-dl
+}
+
+dl-nested-dl-use-rule DIT-CONTEXT-USE-RULE ::= {
+ ATTRIBUTE TYPE mhs-dl-members.&id
+ OPTIONAL CONTEXTS {dl-nested-dl}
+}
+
+-- DL Reset Originator
+dl-reset-originator CONTEXT ::= {
+ WITH SYNTAX NULL
+ ID id-con-dl-reset-originator
+}
+
+dl-reset-originator-use-rule DIT-CONTEXT-USE-RULE ::= {
+ ATTRIBUTE TYPE mhs-dl-members.&id
+ OPTIONAL CONTEXTS {dl-reset-originator}
+}
+
+-- CERTIFICATE SUBJECT ALTERNATIVE NAMES
+-- MTA Name
+mta-name OTHER-NAME ::= {
+ SEQUENCE {domain GlobalDomainIdentifier,
+ mta-name MTAName}
+ IDENTIFIED BY id-san-mta-name
+}
+
+END -- of MHSDirectory
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/acp133/Makefile.am b/epan/dissectors/asn1/acp133/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/acp133/Makefile.common b/epan/dissectors/asn1/acp133/Makefile.common
new file mode 100644
index 0000000000..b715a65cfe
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/Makefile.common
@@ -0,0 +1,64 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=acp133
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn \
+ MHSDirectoryObjectsAndAttributes.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../p1/p1-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+$(builddir)/../p1/p1-exp.cnf:
+ (cd $(builddir)/../p1 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/acp133/Makefile.nmake b/epan/dissectors/asn1/acp133/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/acp133/acp133.asn b/epan/dissectors/asn1/acp133/acp133.asn
new file mode 100644
index 0000000000..8c752357e9
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/acp133.asn
@@ -0,0 +1,135 @@
+ACP133CommonContent { joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101) dod(2) ds(2) module(0) commonContent(2) editionB (3) }
+DEFINITIONS ::=
+BEGIN
+IMPORTS
+ GeneralNames, CertificateAssertion
+ FROM CertificateExtensions {joint-iso-ccitt ds(5)
+ module(1) certificateExtensions(26) 0}
+ AlgorithmIdentifier
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ ContentLength, EncodedInformationTypesConstraints, ExtendedContentType,
+ ORAddress, ORName, RequestedDeliveryMethod, SecurityContext
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ DirectoryString
+ --==
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 4}
+ Name
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3};
+
+
+
+ACPPreferredDelivery ::= ENUMERATED { smtp(0), acp127(1), mhs(2) }
+
+ALType ::= INTEGER { aig(0), type(1), cad(2), taskforce(3), dag(4) }
+
+Community ::= ENUMERATED { genser(0), si(1), both(2) }
+
+OnSupported ::= BIT STRING { acp127-nn(0), acp127-pn(1), acp127-tn(2) }
+
+ACPLegacyFormat ::= INTEGER {
+ janap128(0),
+ acp127(1), -- changed from acp126 for consistency purposes
+ doi103(2),
+ doi103-special(3),
+ acp127(4),
+ acp127-converted(5),
+ reserved-1(6), -- hold for ACP127Standard if needed
+ acp127-state(7),
+ acp127-modified(8),
+ socomm-special(9),
+ socomm-narrative(10),
+ reserved-2(11), -- hold for SOCOMMNarrativeTTY if needed
+ socomm-narrative-special(12),
+ socomm-data(13),
+ socomm-internal(14),
+ socomm-external(15),
+ mfi-default(16),
+ acp-legacy-format-smtp(17),
+ p22(18),
+ -- 19 - 31 for national or bilateral use
+ acp145-united-states(32),
+ acp145-australia(33),
+ acp145-canada(34),
+ acp145-united-kingdom(35),
+ acp145-new-zealand(36) }
+
+ACPNoAttachments ::= BOOLEAN
+
+Active ::= BOOLEAN
+
+Addressees ::= SEQUENCE OF PrintableString (SIZE (1..55))
+
+Classification ::= ENUMERATED { unmarked(0), unclassified(1), restricted(2),
+confidential(3), secret(4), top-secret(5) }
+
+DistributionCode ::= PrintableString
+
+EmConCapability ::= BOOLEAN
+
+EmConState ::= ENUMERATED { enabled(0), receive-only(1), electronic-silence(2), disabled(3) }
+
+JPEG ::= OCTET STRING -- a JPEG image
+
+MaxMessageSize ::= INTEGER
+
+MonthlyUKMs ::= --SIGNED { SEQUENCE OF UKMEntry }-- SEQUENCE {
+ ukm-entries SEQUENCE OF UKMEntry,
+ algorithm-identifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+MsgProtocolInfoCapability ::= ENUMERATED { acp-127(0), acp-123(1) }
+
+Remarks ::= SEQUENCE OF PrintableString
+
+-- RIParameters used to be defined as a ASN.1 SET specification, but
+-- this has been deprecated in edition D in favour of a DirectoryString
+-- containing a sequence of dollar separated PrintableStrings.
+--
+-- Implemented in Wireshark as a CHOICE to be able to decode both without
+-- using a preference.
+RIParameters ::= CHOICE {
+ ri-parameters DirectoryString,
+ ri-parameters-deprecated RIParametersDeprecated
+}
+
+RIParametersDeprecated ::= SET {
+ rI [0] PrintableString,
+ rIType [1] ENUMERATED
+ { normal(0), off-line(1), partTimeTerminal(2) },
+ minimize [2] BOOLEAN, -- not used any more --
+ sHD [3] PrintableString,
+ classification [4] Classification
+}
+
+UKMEntry ::= SEQUENCE {
+ tag PairwiseTag,
+ ukm OCTET STRING
+}
+
+WebAccessCapability ::= BOOLEAN
+
+-- these are imported directly from SDN.701
+
+PairwiseTag ::= SEQUENCE {
+ kmid Kmid,
+ edition INTEGER --(1..ub-edition-size)--,
+ date UTCTime OPTIONAL }
+
+Kmid ::= OCTET STRING
+
+MLReceiptPolicy ::= CHOICE {
+ none [0] NULL,
+ insteadOf [1] SEQUENCE -- (SIZE (1..ub-insteadOf))
+ OF GeneralNames,
+ inAdditionTo [2] SEQUENCE --(SIZE (1..ub-inAdditionTo))
+ OF GeneralNames }
+
+END
diff --git a/epan/dissectors/asn1/acp133/acp133.cnf b/epan/dissectors/asn1/acp133/acp133.cnf
new file mode 100644
index 0000000000..194a10df4d
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/acp133.cnf
@@ -0,0 +1,236 @@
+# acp133.cnf
+# ACP133 conformation file
+
+#.IMPORT ../p1/p1-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+
+#.PDU
+ACPPreferredDelivery
+ALType
+Community
+OnSupported
+ACPLegacyFormat
+Addressees
+DistributionCode
+JPEG
+MonthlyUKMs
+RIParameters
+Kmid
+
+##.CLASS OBJECT-CLASS
+#&Superclasses ClassReference OBJECT-CLASS
+#&kind
+#&MandatoryAttributes ClassReference ATTRIBUTE
+#&OptionalAttributes ClassReference ATTRIBUTE
+#&id ObjectIdentifierType
+##.END
+
+##.CLASS ATTRIBUTE
+#&derivation ClassReference ATTRIBUTE
+#&Type
+#&equality-match ClassReference MATCHING-RULE
+#&ordering-match ClassReference MATCHING-RULE
+#&substrings-match ClassReference MATCHING-RULE
+#&single-valued BooleanType
+#&collective BooleanType
+#&no-user-modification BooleanType
+#&usage
+#&id ObjectIdentifierType
+##.END
+
+#.CLASS MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS CONTEXT
+&Type
+&Assertion
+&id ObjectIdentifierType
+#.END
+
+#.CLASS DIT-CONTEXT-USE-RULE
+&attributeType ObjectIdentifierType
+&Mandatory ClassReference CONTEXT
+&Optional ClassReference CONTEXT
+#.END
+
+#.CLASS OTHER-NAME
+&Type OpenType
+&id ObjectIdentifierType
+#.END
+
+#.REGISTER
+
+# X.402
+
+# ContentLength B "2.6.5.2.0" "id-at-mhs-maximum-content-length" - see p1.cnf
+# ExtendedContentType B "2.6.5.2.1" "id-at-mhs-deliverable-content-types" - see p1.cnf
+# ExtendedEncodedInformationType B "2.6.5.2.2" "id-at-mhs-exclusively-acceptable-eits" - see p1.cnf
+# ORName B "2.6.5.2.3" "id-at-mhs-dl-members" - see p1.cnf
+DLSubmitPermission B "2.6.5.2.4" "id-at-mhs-dl-submit-permissions"
+# DistinguishedName B "2.6.5.2.5" "id-at-mhs-message-store-dn" - see x509if.cnf
+# ORAddress B "2.6.5.2.6" "id-at-mhs-or-addresses" - see p1.cnf
+# ObjectIdentifier B "2.6.5.2.8" "id-at-mhs-supported-automatic-actions" - see x509sat.cnf
+# ExtendedContentType B "2.6.5.2.9" "id-at-mhs-supported-content-types" - see p1.cnf
+# ObjectIdentifier B "2.6.5.2.10" "id-at-mhs-supported-attributes" - see x509sat.cnf
+# ObjectIdentifier B "2.6.5.2.11" "id-at-mhs-supported-matching-rules" - see x509sat.cnf
+# ORName B "2.6.5.2.12" "id-at-mhs-dl-archive-service" - see p1.cnf
+DLPolicy B "2.6.5.2.13" "id-at-mhs-dl-policy"
+# DistinguishedName B "2.6.5.2.14" "id-at-mhs-dl-related-lists" - see x509if.cnf
+# ORName B "2.6.5.2.15" "id-at-mhs-dl-subscription-service" - see p1.cnf
+AddressCapabilities B "2.6.5.2.16" "id-at-mhs-or-addresses-with-capabilities"
+# ExtendedEncodedInformationType B "2.6.5.2.17" "id-at-mhs-acceptable-eits" see p1.cnf
+# ExtendedEncodedInformationType B "2.6.5.2.18" "id-at-mhs-unacceptable-eits" - see p1.cnf
+Capability B "2.6.5.2.19" "id-at-mhs-deliverable-classes"
+
+
+# SDN.701
+Kmid B "2.16.840.1.101.2.1.5.14" "id-at-alid"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.20" "id-at-janUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.21" "id-at-febUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.22" "id-at-marUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.23" "id-at-aprUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.24" "id-at-mayUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.25" "id-at-junUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.26" "id-at-julUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.27" "id-at-augUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.28" "id-at-sepUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.29" "id-at-octUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.30" "id-at-novUKMs"
+MonthlyUKMs B "2.16.840.1.101.2.1.5.31" "id-at-decUKMs"
+# ORName B "2.16.840.1.101.2.1.5.47" "id-at-aLExemptedAddressProcessor - see p1.cnf
+
+# ACP133
+# DistinguishedName B "2.16.840.1.101.2.2.1.3" "id-at-alternateRecipient" - see x509if.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.4" "id-at-associatedOrganization" - see x509if.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.6" "id-at-associatedPLA" - see x509if.cnf
+# DirectoryString B "2.16.840.1.101.2.2.1.45" "id-at-releaseAuthorityName" - see x509sat.cnf
+Addressees B "2.16.840.1.101.2.2.1.46" "id-at-actionAddressees"
+Addressees B "2.16.840.1.101.2.2.1.47" "id-at-additionalAddressees"
+Addressees B "2.16.840.1.101.2.2.1.48" "id-at-additionalSecondPartyAddressees"
+# DistinguishedName B "2.16.840.1.101.2.2.1.49" "id-at-aliasPointer" - see x509if.cnf
+Addressees B "2.16.840.1.101.2.2.1.50" "id-at-allowableOriginators"
+#PrintableString B "2.16.840.1.101.2.2.1.51" "id-at-cognizantAuthority" - see x509sat.cnf
+Community B "2.16.840.1.101.2.2.1.52" "id-at-community"
+# PrintableString B "2.16.840.1.101.2.2.1.53" "id-at-accountingCode" - see x509sat.cnf
+# Boolean B "2.16.840.1.101.2.2.1.54" "id-at-dualRoute" - see x509sat.cnf
+# GeneralizedTime B "2.16.840.1.101.2.2.1.55" "id-at-effectiveDate" - see x509sat.cnf
+Classification B "2.16.840.1.101.2.2.1.56" "id-at-entryClassification"
+# GeneralizedTime B "2.16.840.1.101.2.2.1.57" "id-at-expirationDate" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.58" "id-at-hostOrgACP127" - see x509sat.cnf
+Addressees B "2.16.840.1.101.2.2.1.59" "id-at-infoAddressees"
+# GeneralizedTime B "2.16.840.1.101.2.2.1.60" "id-at-lastRecapDate" - see x509sat.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.61" "id-at-listPointer" - see x509if.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.62" "id-at-lmf" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.63" "id-at-longTitle" - see x509sat.cnf
+# Boolean B "2.16.840.1.101.2.2.1.64" "id-at-minimize" - see x509sat.cnf
+# Boolean B "2.16.840.1.101.2.2.1.65" "id-at-minimizeOverride" - see x509sat.cnf
+Classification B "2.16.840.1.101.2.2.1.67" "id-at-nameClassification"
+# PrintableString B "2.16.840.1.101.2.2.1.68" "id-at-nationality" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.68.1" "id-at-collectiveNationality" - see x509sat.cnf
+# Boolean B "2.16.840.1.101.2.2.1.69" "id-at-transferStation" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.70" "id-at-plaNameACP127" - see x509sat.cnf
+Addressees B "2.16.840.1.101.2.2.1.71" "id-at-plaAddressees"
+# Boolean B "2.16.840.1.101.2.2.1.72" "id-at-plaReplace" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.73" "id-at-primarySpellingACP127" - see x509sat.cnf
+# Boolean B "2.16.840.1.101.2.2.1.74" "id-at-publish" - see x509sat.cnf
+# GeneralizedTime B "2.16.840.1.101.2.2.1.75" "id-at-recapDueDate" - see x509sat.cnf
+Remarks B "2.16.840.1.101.2.2.1.76" "id-at-remarks"
+# PrintableString B "2.16.840.1.101.2.2.1.77" "id-at-rI" - see x509sat.cnf
+Classification B "2.16.840.1.101.2.2.1.78" "id-at-rIClassification"
+RIParameters B "2.16.840.1.101.2.2.1.79" "id-at-rIInfo"
+Addressees B "2.16.840.1.101.2.2.1.80" "id-at-secondPartyAddressees"
+# Boolean B "2.16.840.1.101.2.2.1.81" "id-at-section" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.82" "id-at-serviceOrAgency" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.83" "id-at-sHD" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.84" "id-at-shortTitle" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.85" "id-at-sigad" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.86" "id-at-spot" - see x509sat.cnf
+# Boolean B "2.16.840.1.101.2.2.1.87" "id-at-tARE" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.94" "id-at-aCPMobileTelephoneNumber" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.95" "id-at-aCPPagerTelephoneNumber" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.96" "id-at-tCC" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.97" "id-at-tRC" - see x509sat.cnf
+DistributionCode B "2.16.840.1.101.2.2.1.104" "id-at-distributionCodeAction"
+DistributionCode B "2.16.840.1.101.2.2.1.105" "id-at-distributionCodeInfo"
+# PrintableString B "2.16.840.1.101.2.2.1.106" "id-at-accessCodes" - see x509sat.cnf
+# GraphicString B "2.16.840.1.101.2.2.1.107" "id-at-accessSchema" - see x509sat.cnf
+ACPPreferredDelivery B "2.16.840.1.101.2.2.1.108" "id-at-aCPPreferredDelivery"
+# TelephoneNumber B "2.16.840.1.101.2.2.1.109" "id-at-aCPTelephoneFaxNumber" - see x509sat.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.110" "id-at-administrator" - see x509if.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.111" "id-at-aigsExpanded" - see x509if.cnf
+ALType B "2.16.840.1.101.2.2.1.112" "id-at-aLType"
+# DistinguishedName B "2.16.840.1.101.2.2.1.113" "id-at-associatedAL" - see x509if.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.114" "id-at-copyMember" - see x509if.cnf
+# ObjectIdentifier B "2.16.840.1.101.2.2.1.115" "id-at-gatewayType" - see x509sat.cnf
+# ObjectIdentifier B "2.16.840.1.101.2.2.1.116" "id-at-ghpType" - see x509sat.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.117" "id-at-guard" - see x509if.cnf
+# DirectoryString B "2.16.840.1.101.2.2.1.118" "id-at-mailDomains" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.119" "id-at-militaryFacsimileNumber" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.119.1" "id-at-collectiveMilitaryFacsimileNumber" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.120" "id-at-militaryTelephoneNumber" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.120.1" "id-at-collectiveMilitaryTelephoneNumber" - see x509sat.cnf
+# DistingishedName B "2.16.840.1.101.2.2.1.121" "id-at-networkDN" - see x509if.cnf
+# GraphicString B "2.16.840.1.101.2.2.1.122" "id-at-networkSchema" - see x509sat.cnf
+OnSupported B "2.16.840.1.101.2.2.1.123" "id-at-onSupported"
+# DirectoryString B "2.16.840.1.101.2.2.1.124" "id-at-operationName" - see x509sat.cnf
+# DirectoryString B "2.16.840.1.101.2.2.1.125" "id-at-positionNumber" - see x509sat.cnf
+# DirectoryString B "2.16.840.1.101.2.2.1.126" "id-at-proprietaryMailboxes" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.127" "id-at-secureFacsimileNumber" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.127.1" "id-at-collectiveSecureFacsimileNumber" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.128" "id-at-secureTelephoneNumber" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.128.1" "id-at-collectiveSecureTelephoneNumber" - see x509sat.cnf
+# DirectoryString B "2.16.840.1.101.2.2.1.129" "id-at-serviceNumber" - see x509sat.cnf
+# DirectoryString B "2.16.840.1.101.2.2.1.133" "id-at-rank" - see x509sat.cnf
+# B "2.16.840.1.101.2.2.1.134" "id-at-misc-collectives"
+# ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses" - see p1.cnf
+MLReceiptPolicy B "2.16.840.1.101.2.2.1.135" "id-at-aLReceiptPolicy"
+# DistinguishedName B "2.16.840.1.101.2.2.1.138" "id-at-plasServed" - see x509if.cnf
+#DistinguishedName B "2.16.840.1.101.2.2.1.139" "id-at-deployed" - see x509if.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.140" "id-at-garrison" - see x509if.cnf
+ACPLegacyFormat B "2.16.840.1.101.2.2.1.142" "id-at-aCPLegacyFormat"
+# DirectoryString B "2.16.840.1.101.2.2.1.143" "id-at-adminConversion" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.144" "id-at-tCCG" - see x509sat.cnf
+# DirectoryString B "2.16.840.1.101.2.2.1.145" "id-at-usdConversion" - see x509sat.cnf
+JPEG B "2.16.840.1.101.2.2.1.146" "id-at-aCPNetwAccessSchemaEdB"
+JPEG B "2.16.840.1.101.2.2.1.147" "id-at-aCPNetworkSchemaEdB"
+
+# DirectoryString B "2.16.840.1.101.2.2.1.158" "id-at-aCPRoleInformation" - see x509sat.cnf
+# DirectoryString B "2.16.840.1.101.2.2.1.159" "id-at-coalitionGrade" - see x509sat.cnf
+# TelephoneNumber B "2.16.840.1.101.2.2.1.160" "id-at-militaryIPPhoneNumber" - see x509sat.cnf
+# ObjectIdentifier B "2.16.840.1.101.2.2.1.161" "id-at-fileTypeInfoCapability" - see x509sat.cnf
+MaxMessageSize B "2.16.840.1.101.2.2.1.162" "id-at-maxMessageSize"
+MsgProtocolInfoCapability B "2.16.840.1.101.2.2.1.163" "id-at-msgProtocolInfoCapability"
+Active B "2.16.840.1.101.2.2.1.164" "id-at-active"
+EmConCapability B "2.16.840.1.101.2.2.1.165" "id-at-emConCapability"
+EmConState B "2.16.840.1.101.2.2.1.166" "id-at-emConState"
+WebAccessCapability B "2.16.840.1.101.2.2.1.167" "id-at-webAccessCapability"
+DistributionCode B "2.16.840.1.101.2.2.1.168" "id-at-distributionExemptAction"
+DistributionCode B "2.16.840.1.101.2.2.1.169" "id-at-distributionExemptInfo"
+DistributionCode B "2.16.840.1.101.2.2.1.170" "id-at-distributionKeywordAction"
+DistributionCode B "2.16.840.1.101.2.2.1.171" "id-at-distributionKeywordInfo"
+# PrintableString B "2.16.840.1.101.2.2.1.172" "id-at-aCPFunctionalDescription" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.173" "id-at-alternatePLAName" - see x509sat.cnf
+# GeneralizedTime B "2.16.840.1.101.2.2.1.174" "id-at-aCPEntryCreationDate" - see x509sat.cnf
+# GeneralizedTime B "2.16.840.1.101.2.2.1.175" "id-at-aCPEntryModificationDate" - see x509sat.cnf
+# ObjectIdentifier B "2.16.840.1.101.2.2.1.176" "id-at-aCPEntryType" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.177" "id-at-aCPEntryUniqueId" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.178" "id-at-aCPCitizenship" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.179" "id-at-aCPEID" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.180" "id-at-aCPCOI" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.181" "id-at-aCPPublishTo" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.182" "id-at-aCPSvcApps" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.183" "id-at-aCPDirectionsTo" - see x509sat.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.184" "id-at-aCPDutyOfficer" - see x509if.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.185" "id-at-aCPLatitude" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.186" "id-at-aCPLocationMap" - see x509sat.cnf
+# PrintableString B "2.16.840.1.101.2.2.1.187" "id-at-aCPLongitude" - see x509sat.cnf
+# DistinguishedName B "2.16.840.1.101.2.2.1.188" "id-at-primaryMember" - see x509sat.cnf
+ACPNoAttachments B "2.16.840.1.101.2.2.1.189" "id-at-aCPNoAttachments"
+
diff --git a/epan/dissectors/asn1/acp133/packet-acp133-template.c b/epan/dissectors/asn1/acp133/packet-acp133-template.c
new file mode 100644
index 0000000000..dbcd25c674
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/packet-acp133-template.c
@@ -0,0 +1,177 @@
+/* packet-acp133.c
+ * Routines for ACP133 specific syntaxes in X.500 packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+#include <epan/oids.h>
+
+#include "packet-ber.h"
+
+#include "packet-p1.h"
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-x509if.h"
+#include "packet-x509sat.h"
+
+#include "packet-acp133.h"
+
+#define PNAME "ACP133 Attribute Syntaxes"
+#define PSNAME "ACP133"
+#define PFNAME "acp133"
+
+void proto_register_acp133(void);
+void proto_reg_handoff_acp133(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_acp133 = -1;
+
+
+#include "packet-acp133-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_acp133 = -1;
+#include "packet-acp133-ett.c"
+
+#include "packet-acp133-fn.c"
+
+
+/*--- proto_register_acp133 -------------------------------------------*/
+void proto_register_acp133(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-acp133-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_acp133,
+#include "packet-acp133-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_acp133 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_acp133, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_acp133 --- */
+void proto_reg_handoff_acp133(void) {
+
+#include "packet-acp133-dis-tab.c"
+
+ /* X.402 Object Classes */
+ oid_add_from_string("id-oc-mhs-distribution-list","2.6.5.1.0");
+ oid_add_from_string("id-oc-mhs-message-store","2.6.5.1.1");
+ oid_add_from_string("id-oc-mhs-message-transfer-agent","2.6.5.1.2");
+ oid_add_from_string("id-oc-mhs-user","2.6.5.1.3");
+
+ /* SDN.701 Object Classes */
+ oid_add_from_string("id-oc-secure-user","2.16.840.1.101.2.1.4.13");
+ oid_add_from_string("id-oc-ukms","2.16.840.1.101.2.1.4.16");
+
+ /* ACP133 Object Classes */
+ oid_add_from_string("id-oc-plaData","2.16.840.1.101.2.2.3.26");
+ oid_add_from_string("id-oc-cadACP127","2.16.840.1.101.2.2.3.28");
+ oid_add_from_string("id-oc-mLA","2.16.840.1.101.2.2.3.31");
+ oid_add_from_string("id-oc-orgACP127","2.16.840.1.101.2.2.3.34");
+ oid_add_from_string("id-oc-plaCollectiveACP127","2.16.840.1.101.2.2.3.35");
+ oid_add_from_string("id-oc-routingIndicator","2.16.840.1.101.2.2.3.37");
+ oid_add_from_string("id-oc-sigintPLA","2.16.840.1.101.2.2.3.38");
+ oid_add_from_string("id-oc-sIPLA","2.16.840.1.101.2.2.3.39");
+ oid_add_from_string("id-oc-spotPLA","2.16.840.1.101.2.2.3.40");
+ oid_add_from_string("id-oc-taskForceACP127","2.16.840.1.101.2.2.3.41");
+ oid_add_from_string("id-oc-tenantACP127","2.16.840.1.101.2.2.3.42");
+ oid_add_from_string("id-oc-plaACP127","2.16.840.1.101.2.2.3.47");
+ oid_add_from_string("id-oc-aliasCommonName","2.16.840.1.101.2.2.3.52");
+ oid_add_from_string("id-oc-aliasOrganizationalUnit","2.16.840.1.101.2.2.3.53");
+ oid_add_from_string("id-oc-distributionCodesHandled","2.16.840.1.101.2.2.3.54");
+ oid_add_from_string("id-oc-distributionCodeDescription","2.16.840.1.101.2.2.3.55");
+ oid_add_from_string("id-oc-plaUser","2.16.840.1.101.2.2.3.56");
+ oid_add_from_string("id-oc-addressList","2.16.840.1.101.2.2.3.57");
+ oid_add_from_string("id-oc-altSpellingACP127","2.16.840.1.101.2.2.3.58");
+ oid_add_from_string("id-oc-messagingGateway","2.16.840.1.101.2.2.3.59");
+ oid_add_from_string("id-oc-network","2.16.840.1.101.2.2.3.60");
+ oid_add_from_string("id-oc-networkInstructions","2.16.840.1.101.2.2.3.61");
+ oid_add_from_string("id-oc-otherContactInformation","2.16.840.1.101.2.2.3.62");
+ oid_add_from_string("id-oc-releaseAuthorityPerson","2.16.840.1.101.2.2.3.63");
+ oid_add_from_string("id-oc-mLAgent","2.16.840.1.101.2.2.3.64");
+ oid_add_from_string("id-oc-releaseAuthorityPersonA","2.16.840.1.101.2.2.3.65");
+ oid_add_from_string("id-oc-securePkiUser","2.16.840.1.101.2.2.3.66");
+ oid_add_from_string("id-oc-dSSCSPLA","2.16.840.1.101.2.2.3.67");
+ oid_add_from_string("id-oc-aCPNetworkEdB","2.16.840.1.101.2.2.3.68");
+ oid_add_from_string("id-oc-aCPNetworkInstructionsEdB","2.16.840.1.101.2.2.3.69");
+ oid_add_from_string("id-oc-aCPAddressList","2.16.840.1.101.2.2.3.70");
+ oid_add_from_string("id-oc-aCPAliasCommonName","2.16.840.1.101.2.2.3.71");
+ oid_add_from_string("id-oc-aCPAliasOrganizationalUnit","2.16.840.1.101.2.2.3.72");
+ oid_add_from_string("id-oc-aCPDevice","2.16.840.1.101.2.2.3.73");
+ oid_add_from_string("id-oc-aCPDistributionCodeDescription","2.16.840.1.101.2.2.3.74");
+ oid_add_from_string("id-oc-aCPGroupOfNames","2.16.840.1.101.2.2.3.75");
+ oid_add_from_string("id-oc-aCPLocality","2.16.840.1.101.2.2.3.76");
+ oid_add_from_string("id-oc-aCPOrganization","2.16.840.1.101.2.2.3.77");
+ oid_add_from_string("id-oc-aCPOrganizationalPerson","2.16.840.1.101.2.2.3.78");
+ oid_add_from_string("id-oc-aCPOrganizationalRole","2.16.840.1.101.2.2.3.79");
+ oid_add_from_string("id-oc-aCPOrganizationalUnit","2.16.840.1.101.2.2.3.80");
+ oid_add_from_string("id-oc-aCPDistributionCodesHandled","2.16.840.1.101.2.2.3.81");
+ oid_add_from_string("id-oc-aCPMhsCapabilitiesInformation","2.16.840.1.101.2.2.3.82");
+ oid_add_from_string("id-oc-aCPOtherContactInformation","2.16.840.1.101.2.2.3.83");
+ oid_add_from_string("id-oc-aCPPlaUser","2.16.840.1.101.2.2.3.84");
+ oid_add_from_string("id-oc-aCPCRLDistributionPoint","2.16.840.1.101.2.2.3.85");
+ oid_add_from_string("id-oc-aCPSecurePKIUser","2.16.840.1.101.2.2.3.86");
+ oid_add_from_string("id-oc-aCPAltSpellingACP127","2.16.840.1.101.2.2.3.87");
+ oid_add_from_string("id-oc-aCPCadACP127","2.16.840.1.101.2.2.3.88");
+ oid_add_from_string("id-oc-aCPDSSCSPLA","2.16.840.1.101.2.2.3.89");
+ oid_add_from_string("id-oc-aCPOrgACP127","2.16.840.1.101.2.2.3.90");
+ oid_add_from_string("id-oc-aCPPLACollectiveACP127","2.16.840.1.101.2.2.3.91");
+ oid_add_from_string("id-oc-aCPRoutingIndicator","2.16.840.1.101.2.2.3.92");
+ oid_add_from_string("id-oc-aCPSigIntPLA","2.16.840.1.101.2.2.3.93");
+ oid_add_from_string("id-oc-aCPSIPLA","2.16.840.1.101.2.2.3.94");
+ oid_add_from_string("id-oc-aCPSpotPLA","2.16.840.1.101.2.2.3.95");
+ oid_add_from_string("id-oc-aCPTaskForceACP127","2.16.840.1.101.2.2.3.96");
+ oid_add_from_string("id-oc-aCPTenantACP127","2.16.840.1.101.2.2.3.97");
+ oid_add_from_string("id-oc-aCPPlaACP127","2.16.840.1.101.2.2.3.98");
+ oid_add_from_string("id-oc-aCPPlaData","2.16.840.1.101.2.2.3.99");
+ oid_add_from_string("id-oc-aCPEntryAdmin","2.16.840.1.101.2.2.3.102");
+ oid_add_from_string("id-oc-aCPOrganizationalLocation","2.16.840.1.101.2.2.3.103");
+ oid_add_from_string("id-oc-aCPEntryCharacteristics","2.16.840.1.101.2.2.3.104");
+ oid_add_from_string("id-oc-aCPPrivilege","2.16.840.1.101.2.2.3.105");
+
+ /* gateway types */
+ oid_add_from_string("acp120-acp127","2.16.840.1.101.2.2.5.0");
+ oid_add_from_string("acp120-janap128","2.16.840.1.101.2.2.5.1");
+ oid_add_from_string("acp120-mhs","2.16.840.1.101.2.2.5.2");
+ oid_add_from_string("acp120-mmhs","2.16.840.1.101.2.2.5.3");
+ oid_add_from_string("acp120-rfc822","2.16.840.1.101.2.2.5.4");
+ oid_add_from_string("boundaryMTA","2.16.840.1.101.2.2.5.5");
+ oid_add_from_string("mmhs-mhs","2.16.840.1.101.2.2.5.6");
+ oid_add_from_string("mmhs-rfc822","2.16.840.1.101.2.2.5.7");
+ oid_add_from_string("mta-acp127","2.16.840.1.101.2.2.5.8");
+
+}
diff --git a/epan/dissectors/asn1/acp133/packet-acp133-template.h b/epan/dissectors/asn1/acp133/packet-acp133-template.h
new file mode 100644
index 0000000000..4cac3a639c
--- /dev/null
+++ b/epan/dissectors/asn1/acp133/packet-acp133-template.h
@@ -0,0 +1,29 @@
+/* packet-acp133.h
+ * Routines for ACP133 specific syntaxes in X.500 packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_ACP133_H
+#define PACKET_ACP133_H
+
+/* #include "packet-acp133-exp.h" */
+
+#endif /* PACKET_ACP133_H */
diff --git a/epan/dissectors/asn1/acse/CMakeLists.txt b/epan/dissectors/asn1/acse/CMakeLists.txt
new file mode 100644
index 0000000000..74eba4f198
--- /dev/null
+++ b/epan/dissectors/asn1/acse/CMakeLists.txt
@@ -0,0 +1,56 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME acse )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -C )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/acse/Makefile.am b/epan/dissectors/asn1/acse/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/acse/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/acse/Makefile.common b/epan/dissectors/asn1/acse/Makefile.common
new file mode 100644
index 0000000000..33ae7a7ea9
--- /dev/null
+++ b/epan/dissectors/asn1/acse/Makefile.common
@@ -0,0 +1,50 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=acse
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b -C
+
+EXTRA_CNF= \
+ $(builddir)/../x509if/x509if-exp.cnf
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/acse/Makefile.nmake b/epan/dissectors/asn1/acse/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/acse/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/acse/acse.asn b/epan/dissectors/asn1/acse/acse.asn
new file mode 100644
index 0000000000..968026d1eb
--- /dev/null
+++ b/epan/dissectors/asn1/acse/acse.asn
@@ -0,0 +1,435 @@
+-- ACSE definition from
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x227bis/1998/ACSE-1.html
+-- and modified to pass through asn2wrs
+--
+--
+-- Module ACSE-1 (X.227bis:09/1998)
+ACSE-1 {joint-iso-itu-t association-control(2) modules(0) acse1(1) version1(1)}
+-- ACSE-1 refers to ACSE version 1
+DEFINITIONS ::=
+BEGIN
+
+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
+-- ITU-T Rec. X.501 | ISO/IEC 9594-2.
+
+
+-- Workaround for bug in asn2wrs in the .cnf file
+-- to handle the lack of support for tagged assignments.
+-- remove that workaround once asn2wrs learns how to handle
+-- tagged assignments.
+EXTERNALt ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
+ {
+ direct-reference OBJECT IDENTIFIER OPTIONAL,
+ indirect-reference INTEGER OPTIONAL,
+ data-value-descriptor ObjectDescriptor OPTIONAL,
+ encoding CHOICE
+ {single-ASN1-type [0] ANY,
+ octet-aligned [1] IMPLICIT OCTET STRING,
+ arbitrary [2] IMPLICIT BIT STRING}
+ }
+
+-- 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 {
+--asn2wrs bug
+-- aarq AARQ-apdu,
+ aarq [APPLICATION 0] IMPLICIT AARQ-apdu,
+--asn2wrs bug
+-- aare AARE-apdu,
+ aare [APPLICATION 1] IMPLICIT AARE-apdu,
+--asn2wrs bug
+-- rlrq RLRQ-apdu,
+ rlrq [APPLICATION 2] IMPLICIT RLRQ-apdu,
+--asn2wrs bug
+-- rlre RLRE-apdu,
+ rlre [APPLICATION 3] IMPLICIT RLRE-apdu,
+--asn2wrs bug
+-- abrt ABRT-apdu,
+ abrt [APPLICATION 4] IMPLICIT ABRT-apdu,
+ ...,
+ -- Extensions for higher level association FU
+--asn2wrs bug
+-- adt A-DT-apdu,
+ adt [APPLICATION 5] IMPLICIT A-DT-apdu,
+--asn2wrs bug
+-- acrq ACRQ-apdu,
+ acrq [APPLICATION 6] IMPLICIT ACRQ-apdu,
+--asn2wrs bug
+-- acrp ACRP-apdu
+ acrp [APPLICATION 7] IMPLICIT ACRP-apdu
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ aSO-context-name [1] ASO-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,
+ aSO-context-name-list
+ [13] IMPLICIT ASO-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,
+ ...,
+ -- Extensions for higher level association FU
+ p-context-definition-list [14] Syntactic-context-list OPTIONAL,
+ called-asoi-tag [15] IMPLICIT ASOI-tag OPTIONAL,
+ calling-asoi-tag [16] IMPLICIT ASOI-tag OPTIONAL,
+ -- End of extensions for higher level association FU
+-- ...,
+ user-information [30] IMPLICIT Association-data OPTIONAL
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ aSO-context-name [1] ASO-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,
+ aSO-context-name-list
+ [11] IMPLICIT ASO-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,
+ ...,
+ -- Extensions for higher level association FU
+ p-context-result-list
+ [12] IMPLICIT P-context-result-list OPTIONAL,
+ called-asoi-tag [13] IMPLICIT ASOI-tag OPTIONAL,
+ calling-asoi-tag [14] IMPLICIT ASOI-tag OPTIONAL,
+ -- End of extensions for higher level association FU
+-- ...,
+ user-information [30] IMPLICIT Association-data OPTIONAL
+}
+
+RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-request-reason OPTIONAL,
+ ...,
+ -- Extensions for higher level association FU
+ aso-qualifier [13] ASO-qualifier OPTIONAL,
+ asoi-identifier [14] IMPLICIT ASOI-identifier OPTIONAL,
+ -- End of extensions for higher level association FU
+-- ...,
+ user-information [30] IMPLICIT Association-data OPTIONAL
+}
+
+RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-response-reason OPTIONAL,
+ ...,
+ -- Extensions for higher level association FU
+ aso-qualifier [13] ASO-qualifier OPTIONAL,
+ asoi-identifier [14] IMPLICIT ASOI-identifier OPTIONAL,
+ -- End of extensions for higher level association FU
+-- ...,
+ user-information [30] IMPLICIT Association-data 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.
+ ...,
+ -- Extensions for higher level association FU
+ aso-qualifier [13] ASO-qualifier OPTIONAL,
+ asoi-identifier [14] IMPLICIT ASOI-identifier OPTIONAL,
+ -- End of extensions for higher level association FU
+-- ...,
+ user-information [30] IMPLICIT Association-data OPTIONAL
+}
+
+A-DT-apdu ::= [APPLICATION 5] IMPLICIT SEQUENCE {
+ aso-qualifier [0] ASO-qualifier OPTIONAL,
+ asoi-identifier [1] IMPLICIT ASOI-identifier OPTIONAL,
+ ...,
+-- ...,
+ a-user-data [30] User-Data
+}
+
+ACRQ-apdu ::= [APPLICATION 6] IMPLICIT SEQUENCE {
+ aso-qualifier [0] ASO-qualifier OPTIONAL,
+ asoi-identifier [1] IMPLICIT ASOI-identifier OPTIONAL,
+ aSO-context-name [3] IMPLICIT ASO-context-name OPTIONAL,
+ aSO-context-name-list [4] IMPLICIT ASO-context-name-list OPTIONAL,
+ p-context-definition-list [5] Syntactic-context-list OPTIONAL,
+ ...,
+-- ...,
+ user-information [30] IMPLICIT User-information OPTIONAL
+}
+
+ACRP-apdu ::= [APPLICATION 7] IMPLICIT SEQUENCE {
+ aso-qualifier [0] ASO-qualifier OPTIONAL,
+ asoi-identifier [1] IMPLICIT ASOI-identifier OPTIONAL,
+ -- originally defined as ASO-context-name-list, but this has to be wrong
+ -- aSO-context-name [3] IMPLICIT ASO-context-name-list OPTIONAL,
+ aSO-context-name [3] IMPLICIT ASO-context-name OPTIONAL,
+ p-context-result-list [4] IMPLICIT P-context-result-list OPTIONAL,
+ ...,
+-- ...,
+ user-information [30] IMPLICIT User-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 {service-user(0), service-provider(1)
+}(0..1, ...)
+
+ACSE-requirements ::= BIT STRING {
+ authentication(0), aSO-context-negotiation(1), higher-level-association(2),
+ nested-association(3)}
+
+Application-context-name ::= ASO-context-name
+
+ASO-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,
+ ...,
+ ap-title-form3 AP-title-form3
+}
+
+AE-qualifier ::= ASO-qualifier
+
+ASO-qualifier ::= CHOICE {
+ aso-qualifier-form1 ASO-qualifier-form1,
+ aso-qualifier-form2 ASO-qualifier-form2,
+ ...,
+ aso-qualifier-form3 ASO-qualifier-form3,
+-- an alternative used by some systems from the days when ASO-qualifier
+-- was an ANY
+ aso-qualifier-form-any-octets ASO-qualifier-form-octets
+}
+
+-- 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 itu-t 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.
+ASO-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
+
+ASO-qualifier-form2 ::= INTEGER
+
+AP-title-form3 ::= PrintableString
+
+ASO-qualifier-form3 ::= PrintableString
+
+ASO-qualifier-form-octets ::= OCTET STRING
+
+AE-title ::= CHOICE {
+ ae-title-form1 AE-title-form1,
+ ae-title-form2 AE-title-form2,
+ ...
+}
+
+-- As defined in ITU-T Rec. X.650 | ISO/IEC 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 (see 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 itu-t
+-- 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
+-- itu-t Rec. X.665 | ISO/IEC 9834-6.
+AE-invocation-identifier ::= INTEGER
+
+AP-invocation-identifier ::= INTEGER
+
+ASOI-identifier ::= INTEGER(1..128, ...)
+
+ASOI-tag ::=
+ SEQUENCE SIZE (0..7, ...) OF
+ SEQUENCE {qualifier [0] ASO-qualifier OPTIONAL,
+ identifier [1] ASOI-identifier OPTIONAL}
+
+-- End of Application-entity title productions
+ASO-context-name-list ::= SEQUENCE OF ASO-context-name
+
+Syntactic-context-list ::= CHOICE {
+ context-list [0] Context-list,
+ default-contact-list [1] Default-Context-List
+}
+
+Context-list ::=
+ SEQUENCE OF
+ SEQUENCE {pci Presentation-context-identifier,
+ abstract-syntax Abstract-syntax-name,
+-- bug in asn2wrs
+-- transfer-syntaxes SEQUENCE OF Transfer-syntax-name}
+ transfer-syntaxes SEQUENCE OF TransferSyntaxName}
+
+Default-Context-List ::=
+ SEQUENCE OF
+ SEQUENCE {abstract-syntax-name [0] IMPLICIT Abstract-syntax-name OPTIONAL,
+-- bug in asn2wrs
+-- transfer-syntax-name [1] IMPLICIT Transfer-syntax-name
+ transfer-syntax-name [1] IMPLICIT TransferSyntaxName
+ }
+
+Abstract-syntax-name ::= OBJECT IDENTIFIER
+
+P-context-result-list ::=
+ SEQUENCE OF
+ SEQUENCE {result [0] IMPLICIT Result,
+ concrete-syntax-name [1] IMPLICIT Concrete-syntax-name OPTIONAL,
+ provider-reason
+ [2] IMPLICIT INTEGER {reason-not-specified(0),
+ abstract-syntax-not-supported(1),
+ proposed-transfer-syntaxes-not-supported(2),
+ local-limit-on-DCS-exceeded(3)} OPTIONAL
+ }
+
+Result ::= INTEGER {acceptance(0), user-rejection(1), provider-rejection(2)}
+
+--bug in asn2wrs
+--Concrete-syntax-name ::= Transfer-syntax-name
+Concrete-syntax-name ::= TransferSyntaxName
+
+--bug in asn2wrs
+--Transfer-syntax-name ::= OBJECT IDENTIFIER
+TransferSyntaxName ::= OBJECT IDENTIFIER
+
+Associate-result ::= INTEGER {
+ accepted(0), rejected-permanent(1), rejected-transient(2)}(0..2, ...)
+
+Associate-source-diagnostic ::= CHOICE {
+ 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, ...),
+ service-provider
+ [2] INTEGER {null(0), no-reason-given(1), no-common-acse-version(2)}
+ (0..2, ...)
+}
+
+User-information ::= Association-data
+
+Association-data ::= SEQUENCE OF EXTERNALt
+
+Simply-encoded-data ::= OCTET STRING
+
+User-Data ::= CHOICE {
+ user-information User-information,
+ simply-encoded-data Simply-encoded-data,
+ fully-encoded-data [0] PDV-list
+}
+
+-- see ITU-T Rec. X.226 | ISO/IEC 8823-1.
+PDV-list ::= SEQUENCE {
+--bug in asn2wrs
+-- transfer-syntax-name Transfer-syntax-name OPTIONAL,
+ transfer-syntax-name TransferSyntaxName OPTIONAL,
+ presentation-context-identifier Presentation-context-identifier,
+ presentation-data-values
+ CHOICE {simple-ASN1-type
+ [0] ANY
+ (CONSTRAINED BY {
+
+ -- Type corresponding to presentation context identifier
+ }),
+ octet-aligned [1] IMPLICIT OCTET STRING,
+ arbitrary [2] IMPLICIT BIT STRING}
+ -- see ITU-T Rec. X.226 | ISO/IEC 8823-1.
+}
+
+Presentation-context-identifier ::= INTEGER
+
+Authentication-value-other ::= SEQUENCE {
+ other-mechanism-name OBJECT IDENTIFIER,
+ other-mechanism-value ANY
+}
+
+Authentication-value ::= CHOICE {
+ charstring [0] IMPLICIT GraphicString,
+ bitstring [1] IMPLICIT BIT STRING,
+ external [2] IMPLICIT EXTERNALt,
+ other
+ [3] IMPLICIT Authentication-value-other
+}
+
+-- 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-1. 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
+
+Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
+}
+
+Release-response-reason ::= INTEGER {
+ normal(0), not-finished(1), user-defined(30)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/acse/acse.cnf b/epan/dissectors/asn1/acse/acse.cnf
new file mode 100644
index 0000000000..6fa8bbc052
--- /dev/null
+++ b/epan/dissectors/asn1/acse/acse.cnf
@@ -0,0 +1,173 @@
+# asce.cnf
+# ACSE conformation file
+
+#.IMPORT ../x509if/x509if-exp.cnf
+
+#.OMIT_ASSIGNMENT
+Application-context-name
+#.END
+
+#.NO_EMIT ONLY_VALS
+ACSE-apdu
+
+#.EXPORTS
+EXTERNALt
+AE-title
+AP-title
+AP-invocation-identifier
+AE-qualifier
+ASO-qualifier
+AE-invocation-identifier
+
+#.TYPE_RENAME
+AARQ-apdu/_untag/protocol-version T_AARQ_protocol_version
+AARE-apdu/_untag/protocol-version T_AARE_protocol_version
+AARQ-apdu/_untag/aSO-context-name T_AARQ_aSO_context_name
+AARE-apdu/_untag/aSO-context-name T_AARE_aSO_context_name
+ACRQ-apdu/_untag/aSO-context-name T_ACRQ_aSO_context_name
+ACRP-apdu/_untag/aSO-context-name T_ACRP_aSO_context_name
+
+#.FIELD_RENAME
+AARQ-apdu/_untag/user-information aARQ_user_information
+AARE-apdu/_untag/user-information aARE_user_information
+ABRT-apdu/_untag/user-information aBRT_user_information
+RLRE-apdu/_untag/user-information rLRE_user_information
+RLRQ-apdu/_untag/user-information rLRQ_user_information
+P-context-result-list/_item/result pcontext_result
+RLRE-apdu/_untag/reason rLRE_reason
+RLRQ-apdu/_untag/reason rLRQ_reason
+AARQ-apdu/_untag/protocol-version aARQ_protocol_version
+AARE-apdu/_untag/protocol-version aARE_protocol_version
+AARQ-apdu/_untag/aSO-context-name aARQ_aSO_context_name
+AARE-apdu/_untag/aSO-context-name aARE_aSO_context_name
+ACRQ-apdu/_untag/aSO-context-name aCRQ_aSO_context_name
+PDV-list/presentation-data-values/octet-aligned pDVList_octet_aligned
+
+#.FN_PARS Authentication-value-other/other-mechanism-name
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Authentication-value-other/other-mechanism-name
+%(DEFAULT_BODY)s
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY Authentication-value-other/other-mechanism-value
+ if (actx->external.direct_ref_present) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, top_tree, actx->private_data);
+ }
+
+#.FN_BODY PDV-list/presentation-data-values/simple-ASN1-type
+/*XXX not implemented yet */
+
+#.FN_BODY AARQ-apdu/_untag/aSO-context-name
+ offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
+ hf_index, &actx->external.direct_reference);
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY AARE-apdu/_untag/aSO-context-name
+ offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
+ hf_index, &actx->external.direct_reference);
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY ACRQ-apdu/_untag/aSO-context-name
+ offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
+ hf_index, &actx->external.direct_reference);
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY ACRP-apdu/_untag/aSO-context-name
+ offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
+ hf_index, &actx->external.direct_reference);
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY EXTERNALt/_untag/indirect-reference
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*) actx->private_data;
+
+ offset = dissect_ber_integer(FALSE, actx, tree, tvb, offset,
+ hf_acse_indirect_reference,
+ &indir_ref);
+
+ /* look up the indirect reference */
+ if((oid = find_oid_by_pres_ctx_id(actx->pinfo, indir_ref)) != NULL) {
+ actx->external.direct_reference = wmem_strdup(wmem_packet_scope(), oid);
+ actx->external.direct_ref_present = TRUE;
+ }
+
+ if(session)
+ session->pres_ctx_id = indir_ref;
+
+#.FN_PARS EXTERNALt/_untag/direct-reference
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY EXTERNALt/_untag/direct-reference
+%(DEFAULT_BODY)s
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY EXTERNALt/_untag/encoding/single-ASN1-type
+ if (actx->external.direct_ref_present) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, actx->private_data);
+ }
+
+#.FN_BODY EXTERNALt/_untag/encoding/octet-aligned
+ if (actx->external.direct_ref_present) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, actx->private_data);
+ }
+
+#.FN_BODY AARQ-apdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "A-Associate-Request");
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY AARE-apdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "A-Associate-Response");
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY RLRQ-apdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Release-Request");
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS Release-request-reason
+ VAL_PTR=&reason
+
+#.FN_BODY Release-request-reason
+ int reason = -1;
+
+ %(DEFAULT_BODY)s
+
+ if(reason != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(reason, acse_Release_request_reason_vals, "reason(%%d)"));
+
+#.FN_BODY RLRE-apdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Release-Response");
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS Release-response-reason
+ VAL_PTR=&reason
+
+#.FN_BODY Release-response-reason
+ int reason = -1;
+
+ %(DEFAULT_BODY)s
+
+ if(reason != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(reason, acse_Release_response_reason_vals, "reason(%%d)"));
+
+#.FN_BODY ABRT-apdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Abort");
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY ABRT-source VAL_PTR=&source
+ int source = -1;
+
+ %(DEFAULT_BODY)s
+
+ if(source != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(source, acse_ABRT_source_vals, "source(%%d)"));
+
+#.FIELD_ATTR
+Association-data/_item NAME = "Association-data"
+
+#.END
diff --git a/epan/dissectors/asn1/acse/packet-acse-template.c b/epan/dissectors/asn1/acse/packet-acse-template.c
new file mode 100644
index 0000000000..b438d24eac
--- /dev/null
+++ b/epan/dissectors/asn1/acse/packet-acse-template.c
@@ -0,0 +1,308 @@
+/*XXX
+ There is a bug in asn2wrs that it can not yet handle tagged assignments such
+ as EXTERNAL ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
+
+ This bug is workedaround by some .cnf magic but this should be cleaned up
+ once asn2wrs learns how to deal with tagged assignments
+*/
+
+/* packet-acse.c
+ * Routines for ACSE packet dissection
+ * Ronnie Sahlberg 2005
+ * dissect_acse() based original handwritten dissector by Sid
+ * Yuriy Sidelnikov <YSidelnikov@hotmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/expert.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ses.h"
+#include "packet-pres.h"
+#include "packet-x509if.h"
+
+#define PNAME "ISO 8650-1 OSI Association Control Service"
+#define PSNAME "ACSE"
+#define PFNAME "acse"
+
+#define CLPNAME "ISO 10035-1 OSI Connectionless Association Control Service"
+#define CLPSNAME "CLACSE"
+#define CLPFNAME "clacse"
+
+#define ACSE_APDU_OID "2.2.1.0.1"
+
+void proto_register_acse(void);
+void proto_reg_handoff_acse(void);
+
+/* Initialize the protocol and registered fields */
+int proto_acse = -1;
+int proto_clacse = -1;
+
+
+
+#include "packet-acse-hf.c"
+static gint hf_acse_user_data = -1;
+
+/* Initialize the subtree pointers */
+static gint ett_acse = -1;
+#include "packet-acse-ett.c"
+
+static expert_field ei_acse_dissector_not_available = EI_INIT;
+static expert_field ei_acse_malformed = EI_INIT;
+static expert_field ei_acse_invalid_oid = EI_INIT;
+
+/* indirect_reference, used to pick up the signalling so we know what
+ kind of data is transferred in SES_DATA_TRANSFER_PDUs */
+static guint32 indir_ref=0;
+
+static proto_tree *top_tree=NULL;
+
+#if NOT_NEEDED
+/* to keep track of presentation context identifiers and protocol-oids */
+typedef struct _acse_ctx_oid_t {
+ /* XXX here we should keep track of ADDRESS/PORT as well */
+ guint32 ctx_id;
+ char *oid;
+} acse_ctx_oid_t;
+static GHashTable *acse_ctx_oid_table = NULL;
+
+static guint
+acse_ctx_oid_hash(gconstpointer k)
+{
+ acse_ctx_oid_t *aco=(acse_ctx_oid_t *)k;
+ return aco->ctx_id;
+}
+/* XXX this one should be made ADDRESS/PORT aware */
+static gint
+acse_ctx_oid_equal(gconstpointer k1, gconstpointer k2)
+{
+ acse_ctx_oid_t *aco1=(acse_ctx_oid_t *)k1;
+ acse_ctx_oid_t *aco2=(acse_ctx_oid_t *)k2;
+ return aco1->ctx_id==aco2->ctx_id;
+}
+
+static void
+acse_init(void)
+{
+ if (acse_ctx_oid_table) {
+ g_hash_table_destroy(acse_ctx_oid_table);
+ acse_ctx_oid_table = NULL;
+ }
+ acse_ctx_oid_table = g_hash_table_new(acse_ctx_oid_hash,
+ acse_ctx_oid_equal);
+
+}
+
+static void
+register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, char *oid)
+{
+ acse_ctx_oid_t *aco, *tmpaco;
+ aco=wmem_new(wmem_file_scope(), acse_ctx_oid_t);
+ aco->ctx_id=idx;
+ aco->oid=wmem_strdup(wmem_file_scope(), oid);
+
+ /* if this ctx already exists, remove the old one first */
+ tmpaco=(acse_ctx_oid_t *)g_hash_table_lookup(acse_ctx_oid_table, aco);
+ if (tmpaco) {
+ g_hash_table_remove(acse_ctx_oid_table, tmpaco);
+ }
+ g_hash_table_insert(acse_ctx_oid_table, aco, aco);
+}
+static char *
+find_oid_by_ctx_id(packet_info *pinfo _U_, guint32 idx)
+{
+ acse_ctx_oid_t aco, *tmpaco;
+ aco.ctx_id=idx;
+ tmpaco=(acse_ctx_oid_t *)g_hash_table_lookup(acse_ctx_oid_table, &aco);
+ if (tmpaco) {
+ return tmpaco->oid;
+ }
+ return NULL;
+}
+
+# endif /* NOT_NEEDED */
+
+#include "packet-acse-fn.c"
+
+
+/*
+* Dissect ACSE PDUs inside a PPDU.
+*/
+static int
+dissect_acse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ int offset = 0;
+ proto_item *item;
+ proto_tree *tree;
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* do we have spdu type from the session dissector? */
+ if (data == NULL) {
+ return 0;
+ }
+
+ /* first, try to check length */
+ /* do we have at least 2 bytes */
+ if (!tvb_bytes_exist(tvb, 0, 2)) {
+ proto_tree_add_item(parent_tree, hf_acse_user_data, tvb, offset,
+ tvb_reported_length_remaining(tvb,offset), ENC_NA);
+ return 0; /* no, it isn't a ACSE PDU */
+ }
+
+ session = ( (struct SESSION_DATA_STRUCTURE*)data);
+ if (session->spdu_type == 0) {
+ if (parent_tree) {
+ REPORT_DISSECTOR_BUG(
+ wmem_strdup_printf(wmem_packet_scope(), "Wrong spdu type %x from session dissector.",session->spdu_type));
+ return 0;
+ }
+ }
+
+ asn1_ctx.private_data = session;
+ /* save parent_tree so subdissectors can create new top nodes */
+ top_tree=parent_tree;
+
+ /* ACSE has only AARQ,AARE,RLRQ,RLRE,ABRT type of pdu */
+ /* reject everything else */
+ /* data pdu is not ACSE pdu and has to go directly to app dissector */
+ switch (session->spdu_type) {
+ case SES_CONNECTION_REQUEST: /* AARQ */
+ case SES_CONNECTION_ACCEPT: /* AARE */
+ case SES_REFUSE: /* RLRE */
+ case SES_DISCONNECT: /* RLRQ */
+ case SES_FINISH: /* RLRE */
+ case SES_ABORT: /* ABRT */
+ case CLSES_UNIT_DATA: /* AARQ Connectionless session */
+ break;
+ case SES_DATA_TRANSFER:
+ oid=find_oid_by_pres_ctx_id(pinfo, indir_ref);
+ if (oid) {
+ if (strcmp(oid, ACSE_APDU_OID) == 0) {
+ proto_tree_add_expert_format(parent_tree, pinfo, &ei_acse_invalid_oid, tvb, offset, -1,
+ "Invalid OID: %s", ACSE_APDU_OID);
+ }
+ else {
+ call_ber_oid_callback(oid, tvb, offset, pinfo, parent_tree, NULL);
+ }
+ } else {
+ proto_tree_add_expert(parent_tree, pinfo, &ei_acse_dissector_not_available,
+ tvb, offset, -1);
+ }
+ top_tree = NULL;
+ return 0;
+ default:
+ top_tree = NULL;
+ return 0;
+ }
+
+ if (session->spdu_type == CLSES_UNIT_DATA) {
+ /* create display subtree for the connectionless protocol */
+ item = proto_tree_add_item(parent_tree, proto_clacse, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_acse);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CL-ACSE");
+ col_clear(pinfo->cinfo, COL_INFO);
+ } else {
+ /* create display subtree for the protocol */
+ item = proto_tree_add_item(parent_tree, proto_acse, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_acse);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "ACSE");
+ col_clear(pinfo->cinfo, COL_INFO);
+ }
+
+ /* we can't make any additional checking here */
+ /* postpone it before dissector will have more information */
+ while (tvb_reported_length_remaining(tvb, offset) > 0) {
+ int old_offset=offset;
+ offset = dissect_acse_ACSE_apdu(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ if (offset == old_offset) {
+ proto_tree_add_expert(tree, pinfo, &ei_acse_malformed, tvb, offset, -1);
+ break;
+ }
+ }
+
+ top_tree = NULL;
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_acse ----------------------------------------------*/
+void proto_register_acse(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_acse_user_data,
+ { "User data", "acse.user_data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-acse-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_acse,
+#include "packet-acse-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_acse_dissector_not_available, { "acse.dissector_not_available", PI_UNDECODED, PI_WARN, "Dissector is not available", EXPFILL }},
+ { &ei_acse_malformed, { "acse.malformed", PI_MALFORMED, PI_ERROR, "Malformed packet", EXPFILL }},
+ { &ei_acse_invalid_oid, { "acse.invalid_oid", PI_UNDECODED, PI_WARN, "Invalid OID", EXPFILL }},
+ };
+
+ expert_module_t* expert_acse;
+
+ /* Register protocol */
+ proto_acse = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("acse", dissect_acse, proto_acse);
+
+ /* Register connectionless protocol */
+ proto_clacse = proto_register_protocol(CLPNAME, CLPSNAME, CLPFNAME);
+
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_acse, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_acse = expert_register_protocol(proto_acse);
+ expert_register_field_array(expert_acse, ei, array_length(ei));
+}
+
+
+/*--- proto_reg_handoff_acse -------------------------------------------*/
+void proto_reg_handoff_acse(void) {
+/*#include "packet-acse-dis-tab.c"*/
+ dissector_handle_t acse_handle = find_dissector("acse");
+
+ oid_add_from_string("id-aCSE","2.2.3.1.1");
+ register_ber_oid_dissector_handle(ACSE_APDU_OID, acse_handle, proto_acse, "id-as-acse");
+
+
+}
+
diff --git a/epan/dissectors/asn1/acse/packet-acse-template.h b/epan/dissectors/asn1/acse/packet-acse-template.h
new file mode 100644
index 0000000000..a71fd22e20
--- /dev/null
+++ b/epan/dissectors/asn1/acse/packet-acse-template.h
@@ -0,0 +1,31 @@
+/* packet-acse.h
+ * Routines for ACSE packet dissection
+ * Ronnie Sahlberg 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_ACSE_H
+#define PACKET_ACSE_H
+
+#include <epan/asn1.h>
+#include "packet-acse-exp.h"
+
+#endif /* PACKET_ACSE_H */
+
diff --git a/epan/dissectors/asn1/ansi_map/CMakeLists.txt b/epan/dissectors/asn1/ansi_map/CMakeLists.txt
new file mode 100644
index 0000000000..d754b79314
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_map/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ansi_map )
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../gsm_map/gsm_map-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ansi_map/Makefile.am b/epan/dissectors/asn1/ansi_map/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_map/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ansi_map/Makefile.common b/epan/dissectors/asn1/ansi_map/Makefile.common
new file mode 100644
index 0000000000..1342535641
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_map/Makefile.common
@@ -0,0 +1,47 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=ansi_map
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../gsm_map/gsm_map-exp.cnf
+
+$(builddir)/../gsm_map/gsm_map-exp.cnf:
+ (cd $(builddir)/../gsm_map && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/ansi_map/Makefile.nmake b/epan/dissectors/asn1/ansi_map/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_map/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ansi_map/ansi_map.asn b/epan/dissectors/asn1/ansi_map/ansi_map.asn
new file mode 100644
index 0000000000..a0175199d2
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_map/ansi_map.asn
@@ -0,0 +1,8421 @@
+-- Copyright 2005 - 2009 Anders Broman
+MAP-Protocol{ 0 identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-Protocol (4) version5 (5) }
+
+DEFINITIONS ::=
+
+BEGIN
+-- Import from GSM MAP for convenience
+IMPORTS
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version12 (12)}
+;
+-- 6.4.2.1
+-- http://www.3gpp2.org/Public_html/specs/X.S0004-550-E_v2.0_070723.pdf
+AuthenticationDirective ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ --M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ --M 6.5.2.81
+ msid MSID OPTIONAL,
+ --
+ authenticationAlgorithmVersion [77] IMPLICIT AuthenticationAlgorithmVersion OPTIONAL,
+ -- O 6.5.2.7 a
+ authenticationResponseReauthentication [182] IMPLICIT AuthenticationResponseReauthentication OPTIONAL,
+ -- O 6.5.2.mT j
+ authenticationResponseUniqueChallenge [37] IMPLICIT AuthenticationResponseUniqueChallenge OPTIONAL,
+ -- O 6.5.2.12 b
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 m
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 j
+ caveKey [316] IMPLICIT CaveKey OPTIONAL,
+ -- CaveKey O 2.38 p X.S0004-550-E_v1.0_040406.pdf
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 d
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 e
+ randomVariableReauthentication [191] IMPLICIT RandomVariableReauthentication OPTIONAL,
+ -- O 6.5.2.uT j
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O
+ mobileStationMIN [184] IMPLICIT MobileStationMIN OPTIONAL,
+ -- O 6.5.2.oC j
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 6.5.2.82 n
+ randomVariableSSD [42] IMPLICIT RandomVariableSSD OPTIONAL,
+ -- O 6.5.2.103 f
+ randomVariableUniqueChallenge [43] IMPLICIT RandomVariableUniqueChallenge OPTIONAL,
+ -- O 6.5.2.104 b
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 g
+ -- ServiceIndicator O 2.221 k
+ sharedSecretData [46] IMPLICIT SharedSecretData OPTIONAL,
+ -- O 6.5.2.119 c
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 m
+ ssdnotShared [52] IMPLICIT SSDNotShared OPTIONAL,
+ -- O 6.5.2.141 h
+ updateCount [51] IMPLICIT UpdateCount OPTIONAL
+ -- O 6.5.2.163 i
+ -- VoicePrivacyMask O 2.297 m
+}
+-- AuthenticationDirective RETURN RESULT Parameters
+AuthenticationDirectiveRes ::= [PRIVATE 18] SET {
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL
+ -- O 6.5.2.18 a
+}
+-- 6.4.2.2
+AuthenticationDirectiveForward ::= [PRIVATE 18] SET {
+-- AuthenticationDirectiveForward INVOKE Parameters
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ --M 6.5.2.81
+ authenticationResponseUniqueChallenge [37] IMPLICIT AuthenticationResponseUniqueChallenge OPTIONAL,
+ -- O 6.5.2.12 b
+ randomVariableUniqueChallenge [43] IMPLICIT RandomVariableUniqueChallenge OPTIONAL,
+ -- O 6.5.2.104 b
+ updateCount [51] IMPLICIT UpdateCount OPTIONAL,
+ -- O 6.5.2.163 b
+ ...
+}
+
+-- AuthenticationDirectiveForward RETURN RESULT Parameters
+
+AuthenticationDirectiveForwardRes ::= [PRIVATE 18] SET {
+ countUpdateReport [138] IMPLICIT CountUpdateReport OPTIONAL,
+ -- O 6.5.2.52 a
+ uniqueChallengeReport [124] IMPLICIT UniqueChallengeReport OPTIONAL,
+ -- O 6.5.2.162
+ ...
+}
+-- http://www.3gpp2.org/Public_html/specs/X.S0004-540-E_v2.0_070723.pdf
+-- 6.4.2.3 AuthenticationFailureReport
+AuthenticationFailureReport ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ --M 6.5.2.63
+ msid MSID OPTIONAL,
+ reportType [44] IMPLICIT ReportType,
+ -- M 6.5.2.112
+ systemAccessType [34] IMPLICIT SystemAccessType,
+ -- M 6.5.2.145
+ systemCapabilities [49] IMPLICIT SystemCapabilities,
+ -- (Serving) M 6.5.2.146
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 a
+ callHistoryCountExpected [79] IMPLICIT CallHistoryCountExpected OPTIONAL,
+ -- O 6.5.2.19 a
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving MSC) O 6.5.2.82 b
+ reportType2 [44] IMPLICIT ReportType OPTIONAL,
+ -- M 6.5.2.112 c optional?
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 d
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6.5.2.154
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+}
+
+-- AuthenticationFailureReport RETURN RESULT Parameters
+AuthenticationFailureReportRes ::= [PRIVATE 18] SET {
+ authenticationAlgorithmVersion [77] IMPLICIT AuthenticationAlgorithmVersion OPTIONAL,
+ -- O 6.5.2.7 a
+ authenticationResponseUniqueChallenge [37] IMPLICIT AuthenticationResponseUniqueChallenge OPTIONAL,
+ --O 6.5.2.12 b
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ --O 6.5.2.18 c
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 i
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 d
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 i
+ randomVariableSSD [42] IMPLICIT RandomVariableSSD OPTIONAL,
+ -- O 6.5.2.103 e
+ randomVariableUniqueChallenge [43] IMPLICIT RandomVariableUniqueChallenge OPTIONAL,
+ -- O 6.5.2.104 b
+ sharedSecretData [46] IMPLICIT SharedSecretData OPTIONAL,
+ -- O 6.5.2.119 c
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114
+ ssdnotShared [52] IMPLICIT SSDNotShared OPTIONAL,
+ -- O 6.5.2.141 f
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6.5.2.154 g
+ updateCount [51] IMPLICIT UpdateCount OPTIONAL
+ -- O 6.5.2.163 h
+}
+
+-- 6.4.2.4 AuthenticationRequest
+
+AuthenticationRequest ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID OPTIONAL,
+ --M 6.5.2.bu
+ mscid [21] IMPLICIT MSCID,
+ -- (Serving MSC) M 6.5.2.82
+ systemAccessType [34] IMPLICIT SystemAccessType,
+ -- M 6.5.2.145
+ systemCapabilities [49] IMPLICIT SystemCapabilities,
+ -- (Serving) M 6.5.2.146
+ authenticationData [161] IMPLICIT AuthenticationData OPTIONAL,
+ -- O 6.5.2.9 a
+ authenticationResponse [35] IMPLICIT AuthenticationResponse,
+ -- O 6.5.2.10 b
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 b
+ cdmaNetworkIdentification [232] IMPLICIT CDMANetworkIdentification OPTIONAL,
+ -- (Serving MSC) O 6.5.2.bk
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Actual) O 6.5.2.50 c
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 6.5.2.ac
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 d
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Serving MSC or VLR or HLR) O 6.5.2.93 e
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101 b
+ serviceRedirectionCause [237] IMPLICIT ServiceRedirectionCause OPTIONAL,
+ -- O 6.5.2.bp
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 f
+ suspiciousAccess [285] IMPLICIT SuspiciousAccess OPTIONAL,
+ -- O 6.5.2.do h
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6.5.2.154 g
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- O 6.5.2.160
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+
+-- AuthenticationRequest RETURN RESULT Parameters
+AuthenticationRequestRes ::= [PRIVATE 18] SET {
+ analogRedirectRecord [225] IMPLICIT AnalogRedirectRecord OPTIONAL,
+ -- O 6.5.2.bd j
+ authenticationAlgorithmVersion [77] IMPLICIT AuthenticationAlgorithmVersion OPTIONAL,
+ -- O 6.5.2.7 a
+ authenticationResponseUniqueChallenge [37] IMPLICIT AuthenticationResponseUniqueChallenge OPTIONAL,
+ -- O 6.5.2.12 b
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 c
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 i
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ --O 6.5.2.36 d
+ cdmaRedirectRecord [229] IMPLICIT CDMARedirectRecord OPTIONAL,
+ -- O 6.5.2.bh k
+ dataKey [215] IMPLICIT DataKey OPTIONAL,
+ -- O 6.5.2.at j
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 e
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 l
+ roamingIndication [239] IMPLICIT RoamingIndication OPTIONAL,
+ -- O 6.5.2.br m
+ serviceRedirectionInfo [238] IMPLICIT ServiceRedirectionInfo OPTIONAL,
+ -- O 6.5.2.bq j, k
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 i
+ randomVariableSSD [42] IMPLICIT RandomVariableSSD OPTIONAL,
+ -- O 6.5.2.103 f
+ randomVariableUniqueChallenge [43] IMPLICIT RandomVariableUniqueChallenge OPTIONAL,
+ -- O 6.5.2.104 b
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114
+ sharedSecretData [46] IMPLICIT SharedSecretData OPTIONAL,
+ -- O 6.5.2.119 c
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 g
+ ssdnotShared [52] IMPLICIT SSDNotShared OPTIONAL,
+ -- O 6.5.2.141 h
+ updateCount [51] IMPLICIT UpdateCount OPTIONAL,
+ -- O 6.5.2.163 i
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 d
+ ...
+}
+
+-- 6.4.2.5 AuthenticationStatusReport
+
+AuthenticationStatusReport ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID OPTIONAL,
+ --
+ systemCapabilities [49] IMPLICIT SystemCapabilities,
+ -- (Serving) M 6.5.2.146
+ countUpdateReport [138] IMPLICIT CountUpdateReport OPTIONAL,
+ -- O 6.5.2.52 a
+ meid [390] IMPLICIT MEID OPTIONAL,
+ --
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 e
+ reauthenticationReport [192] IMPLICIT ReauthenticationReport OPTIONAL,
+ -- O 6.5.2.vT e
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 b
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB e
+ signalingMessageEncryptionReport [194] IMPLICIT SignalingMessageEncryptionReport OPTIONAL,
+ -- O 6.5.2.xB h
+ ssdUpdateReport [156] IMPLICIT SSDUpdateReport OPTIONAL,
+ -- O 6.5.2.142 c
+ uniqueChallengeReport [124] IMPLICIT UniqueChallengeReport OPTIONAL,
+ -- O 6.5.2.162 d
+ voicePrivacyReport [196] IMPLICIT VoicePrivacyReport OPTIONAL
+ -- O 6.5.2.zB g
+}
+-- AuthenticationStatusReport RETURN RESULT Parameters
+AuthenticationStatusReportRes ::= [PRIVATE 18] SET {
+ authenticationAlgorithmVersion [77] IMPLICIT AuthenticationAlgorithmVersion OPTIONAL,
+ -- O 6.5.2.7 a
+ authenticationResponseUniqueChallenge [37] IMPLICIT AuthenticationResponseUniqueChallenge OPTIONAL,
+ -- O 6.5.2.12 b
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 c
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 i
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 d
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 i
+ randomVariableSSD [42] IMPLICIT RandomVariableSSD OPTIONAL,
+ -- O 6.5.2.103 e
+ randomVariableUniqueChallenge [43] IMPLICIT RandomVariableUniqueChallenge OPTIONAL,
+ -- O 6.5.2.104 b
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114
+ sharedSecretData [46] IMPLICIT SharedSecretData OPTIONAL,
+ -- O 6.5.2.119 c
+ ssdnotShared [52] IMPLICIT SSDNotShared OPTIONAL,
+ -- O 6.5.2.141 f
+ updateCount [51] IMPLICIT UpdateCount OPTIONAL,
+ -- O 6.5.2.163 g
+ ...
+}
+-- 6.4.2.6 BaseStationChallenge
+BaseStationChallenge ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID OPTIONAL,
+ --
+ randomVariableBaseStation [41] IMPLICIT RandomVariableBaseStation,
+ -- M 6.5.2.102
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 a
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB b
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+-- BaseStationChallenge RETURN RESULT Parameters
+BaseStationChallengeRes ::= [PRIVATE 18] SET {
+ authenticationResponseBaseStation [36] IMPLICIT AuthenticationResponseBaseStation,
+ -- M 6.5.2.11
+ ...
+ }
+-- 6.4.2.7 Blocking
+
+Blocking ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ ...
+ }
+-- Blocking RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.8 BulkDeregistration
+BulkDeregistration ::= [PRIVATE 18] SET {
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- M 6.5.2.116
+ ...
+ }
+-- BulkDeregistration RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.9 CountRequest
+CountRequest ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 a
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O
+ ...
+ }
+
+--CountRequest RETURN RESULT Parameters
+CountRequestRes ::= [PRIVATE 18] SET {
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 a
+ ...
+ }
+-- 6.4.2.10 FacilitiesDirective
+FacilitiesDirective ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- M 6.5.2.16
+ channelData [5] IMPLICIT ChannelData,
+ -- (Serving) M 6.5.2.47 a
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ interSwitchCount [7] IMPLICIT InterSwitchCount,
+ -- M 6.5.2.73
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ servingCellID [2] IMPLICIT ServingCellID,
+ -- M 6.5.2.117
+ stationClassMark [18] IMPLICIT StationClassMark,
+ -- M 6.5.2.143
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- M 6.5.2.148
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Desired) O 6.5.2.50 b
+ handoffReason [30] IMPLICIT HandoffReason OPTIONAL,
+ -- O 6.5.2.70 c
+ handoffState [164] IMPLICIT HandoffState OPTIONAL,
+ -- O 6.5.2.71 d
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 e
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Serving) O 6.5.2.151 f
+ tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
+ -- O 6.5.2.152 g
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.153 f
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 h
+ ...
+ }
+
+-- FacilitiesDirective RETURN RESULT Parameters
+FacilitiesDirectiveRes ::= [PRIVATE 18] SET {
+ channelData [5] IMPLICIT ChannelData,
+ -- (Target) M 6.5.2.47 a
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Actual) O 6.5.2.50 b
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Target) O 6.5.2.151 c
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL
+ -- (Target) O 6.5.2.153 d ...
+ }
+
+-- 6.4.2.11 FacilitiesDirective2
+-- N.S0007-0 v 1.0
+FacilitiesDirective2 ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ interSwitchCount [7] IMPLICIT InterSwitchCount,
+ -- M 6.5.2.73
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ servingCellID [2] IMPLICIT ServingCellID,
+ -- M 6.5.2.117
+ baseStationManufacturerCode [197] IMPLICIT BaseStationManufacturerCode OPTIONAL,
+ -- O 6 .5.2.aa a a
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 s
+ cdma2000HandoffInvokeIOSData [356] IMPLICIT CDMA2000HandoffInvokeIOSData OPTIONAL,
+ --O 6.5.2.gm xx
+ cdmaBandClassList [172] IMPLICIT CDMABandClassList OPTIONAL,
+ -- O 6.5.2.c r
+ cdmaCallMode [62] IMPLICIT CDMACallMode OPTIONAL,
+ -- O 6.5.2.29 c, d, e
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 c
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq c, t, aa
+ cdmaMobileProtocolRevision [66] IMPLICIT CDMAMobileProtocolRevision OPTIONAL,
+ -- O 6.5.2.34 c
+ cdmaMSMeasuredChannelIdentity [351] IMPLICIT CDMAMSMeasuredChannelIdentity OPTIONAL,
+ -- O 6.5.2.gh nn
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 f
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e c, s
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g
+ cdmaServingOneWayDelay [60] IMPLICIT CDMAServingOneWayDelay OPTIONAL,
+ -- O 6.5.2.38 a, c
+ cdmaStationClassMark [59] IMPLICIT CDMAStationClassMark OPTIONAL,
+ -- O 6.5.2.41 c
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 6.5.2.h TSB76 c, mm
+ cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
+ -- O 6.5.2.43 g
+ cdmaTargetMeasurementList [134] IMPLICIT CDMATargetMeasurementList OPTIONAL,
+ -- O 6.5.2.45 h
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.47 i
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Desired) O 6.5.2.50 b
+ dataKey [215] IMPLICIT DataKey OPTIONAL,
+ -- O 6.5.2.at aa
+ dataPrivacyParameters [216] IMPLICIT DataPrivacyParameters OPTIONAL,
+ -- O 6.5.2.au x
+ handoffReason [30] IMPLICIT HandoffReason OPTIONAL,
+ -- O 6.5.2.70 c
+ handoffState [164] IMPLICIT HandoffState OPTIONAL,
+ -- O 6.5.2.71 d
+ ilspInformation [217] IMPLICIT ISLPInformation OPTIONAL,
+ --(Desired) O 6.5.2.av u
+ msLocation [70] IMPLICIT MSLocation OPTIONAL,
+ -- O 6.5.2.84 c
+ nampsCallMode [165] IMPLICIT NAMPSCallMode OPTIONAL,
+ -- O 6.5.2.85 e, m
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.86 n
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101 aa
+ nonPublicData [200] IMPLICIT NonPublicData OPTIONAL,
+ -- O 6.5.2.ad t
+ pdsnAddress [349] IMPLICIT PDSNAddress OPTIONAL,
+ --O 6.5.2.gf gg
+ pdsnProtocolType [350] IMPLICIT PDSNProtocolType OPTIONAL,
+ -- O 6.5.2.gg hh
+ qosPriority [348] IMPLICIT QoSPriority OPTIONAL,
+ -- O 6.5.2.ge ff
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 j
+ stationClassMark [18] IMPLICIT StationClassMark,
+ -- M 6.5.2.143
+ systemOperatorCode [206] IMPLICIT SystemOperatorCode OPTIONAL,
+ -- O 6 .5.2.a j b b
+ targetCellID [3] IMPLICIT TargetCellID OPTIONAL,
+ -- O 6.5.2.148 b
+ tdmaBandwidth [220] IMPLICIT TDMABandwidth OPTIONAL,
+ -- (Desired) O 6.5.2.ay z
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Serving) O 6.5.2.151 o
+ tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
+ -- O 6.5.2.152 e, p
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.153 o
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6 .5.2.i x
+ tdmaTerminalCapability [179] TDMATerminalCapability OPTIONAL,
+ -- y O 6 .5.2.j x
+ tdmaVoiceCoder [180] IMPLICIT TDMAVoiceCoder OPTIONAL,
+ -- O 6.5.2.k u
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6 .5.2.154
+ userZoneData [209] IMPLICIT UserZoneData OPTIONAL,
+ -- O 6.5.2.am (IS-730) v
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 q
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+}
+
+-- FacilitiesDirective2 RETURN RESULT Parameters
+FacilitiesDirective2Res ::= [PRIVATE 18] SET {
+ bsmcstatus [198] IMPLICIT BSMCStatus OPTIONAL,
+ --
+ cdma2000HandoffResponseIOSData [357] IMPLICIT CDMA2000HandoffResponseIOSData OPTIONAL,
+ -- O 6.5.2.gn yy
+ -- O 6 .5.2.a b f
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.30 a
+ cdmaCodeChannelList [132] IMPLICIT CDMACodeChannelList OPTIONAL,
+ -- O 6.5.2.33 a
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq a, i,
+ cdmaSearchParameters [230] IMPLICIT CDMASearchParameters OPTIONAL,
+ --O 6.5.2.bi a, k
+ cdmaSearchWindow [69] IMPLICIT CDMASearchWindow OPTIONAL,
+ -- O 6.5.2.37 a
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e a, h
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Target) O 6.5.2.47 b
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Actual) O 6.5.2.50 c
+ ilspInformation [217] IMPLICIT ISLPInformation OPTIONAL,
+ -- (Actual) O 6.5.2.av j
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Target) O 6.5.2.86 d
+ sOCStatus [205] IMPLICIT SOCStatus OPTIONAL,
+ -- O 6 .5.2.a i f
+ targetCellID [3] IMPLICIT TargetCellID OPTIONAL,
+ -- O 6.5.2.148 e
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Target) O 6.5.2.151 f
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.153 g
+ tdmaVoiceCoder [180] IMPLICIT TDMAVoiceCoder OPTIONAL
+ -- (Target ) O 6 .5.2.k h
+}
+
+-- 6.4.2.12 FacilitiesRelease
+FacilitiesRelease ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ releaseReason [10] IMPLICIT ReleaseReason,
+ -- M 6.5.2.111
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- O 6.5.2.16 a
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL
+ -- O 6.5.2.81
+ }
+
+-- FacilitiesRelease RETURN RESULT Parameters
+FacilitiesReleaseRes ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID OPTIONAL
+ -- O 6.5.2.16
+ }
+
+-- Updated with N.S0004, N.S0012-0 v 1.0 N.S0023-0 v 1.0
+-- http://www.3gpp2.org/Public_html/specs/X.S0004-540-E_v2.0_070723.pdf
+-- 6.4.2.13 FeatureRequest
+FeatureRequest ::= [PRIVATE 18] SET {
+ digits [4] IMPLICIT Digits,
+ -- (Dialed) M 6.5.2.58
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ msid MSID OPTIONAL,
+ --
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- O 6.5.2.16
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw c
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 c
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 c
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
+ conferenceCallingIndicator [137] IMPLICIT ConferenceCallingIndicator OPTIONAL,
+ -- O 6.5.2.49
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 e
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 f
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- O 6.5.2.93
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL,
+ -- (Originating MSC)
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- 6.5.2.160
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+-- FeatureRequest RETURN RESULT Parameters
+FeatureRequestRes ::= [PRIVATE 18] SET {
+ featureResult [18] IMPLICIT FeatureResult,
+ -- M 6.5.2.67
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 b
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 c
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 d
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 d
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 d
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 d
+ conferenceCallingIndicator [137] IMPLICIT ConferenceCallingIndicator OPTIONAL,
+ -- O 6.5.2.49 e
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 f
+ digits-Destination [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 l
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx l, m
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- O 6.5.2.ec l, m
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 g
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 g
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 g
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 d
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 h
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 g
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 d
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 i
+ pACAIndicator [146] IMPLICIT PACAIndicator OPTIONAL,
+ -- O 6.5.2.91 j
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 h
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 n, o
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 d
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 d
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 d
+ resumePIC [266] IMPLICIT ResumePIC OPTIONAL,
+ -- O 6.5.2.cu m
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 d
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 k
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 d
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de n
+ }
+
+-- 6.4.2.14 FlashRequest
+FlashRequest ::= [PRIVATE 18] SET {
+ digits [4] IMPLICIT Digits,
+ -- (Dialed) M 6.5.2.58 a
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Actual) O 6.5.2.50 b
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63
+ emergencyServicesRoutingDigits [239] IMPLICIT EmergencyServicesRoutingDigits OPTIONAL
+ -- O 6.5.bs
+ }
+-- FlashRequest RETURN RESULT Parameters
+-- zero octets
+
+
+-- 6.4.2.15 HandoffBack
+HandoffBack ::= [PRIVATE 18] SET {
+ channelData [5] IMPLICIT ChannelData,
+ -- (Serving) M 6.5.2.47 a
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ servingCellID [2] IMPLICIT ServingCellID,
+ -- M 6.5.2.117
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- M 6.5.2.148
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- O 6.5.2.16 b
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Desired) O 6.5.2.50 c
+ handoffReason [30] IMPLICIT HandoffReason OPTIONAL,
+ -- O 6.5.2.70 d
+ handoffState [164] IMPLICIT HandoffState OPTIONAL,
+ -- O 6.5.2.71 e
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 c, f
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Serving) O 6.5.2.151 g
+ tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
+ -- O 6.5.2.152 h
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.153 g
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 i
+ ...
+ }
+
+-- HandoffBack RETURN RESULT Parameters
+
+HandoffBackRes ::= [PRIVATE 18] SET {
+ channelData [5] IMPLICIT ChannelData,
+ -- (Target) M 6.5.2.47 a
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Actual) O 6.5.2.50 b
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Target) O 6.5.2.151 c
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.153 d
+ ...
+ }
+--6.4.2.16 HandoffBack2
+HandoffBack2 ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- M 6.5.2.16
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- M 6.5.2.117 a
+ baseStationManufacturerCode [197] IMPLICIT BaseStationManufacturerCode OPTIONAL,
+ -- O 6 .5.2.a a u
+ cdma2000HandoffInvokeIOSData [356] IMPLICIT CDMA2000HandoffInvokeIOSData OPTIONAL,
+ -- O 6.5.2.gm xx
+ cdmaBandClassList [172] IMPLICIT CDMABandClassList OPTIONAL,
+ -- O 6.5.2.c r
+ cdmaCallMode [62] IMPLICIT CDMACallMode OPTIONAL,
+ -- O 6.5.2.29 c, d, e
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 c
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq IS-737 c, t, aa
+ cdmaMSMeasuredChannelIdentity [351] IMPLICIT CDMAMSMeasuredChannelIdentity OPTIONAL,
+ -- O 6.5.2.gh oo
+ cdmaMobileProtocolRevision [66] IMPLICIT CDMAMobileProtocolRevision OPTIONAL,
+ -- O 6.5.2.34 c
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e c, s, mm
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g TSB76 c, x
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 f
+ cdmaServingOneWayDelay [60] IMPLICIT CDMAServingOneWayDelay OPTIONAL,
+ -- O 6.5.2.38 a, c
+ cdmaStationClassMark [59] IMPLICIT CDMAStationClassMark OPTIONAL,
+ -- O 6.5.2.41 c
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 6.5.2.h TSB76 c, nn
+ cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
+ -- O 6.5.2.43 g
+ cdmaTargetMeasurementList [134] IMPLICIT CDMATargetMeasurementList OPTIONAL,
+ -- O 6.5.2.45 h
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.47 i
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Desired) O 6.5.2.50 j
+ dataKey [215] IMPLICIT DataKey OPTIONAL,
+ -- O 6.5.2.at aa
+ dataPrivacyParameters [216] IMPLICIT DataPrivacyParameters OPTIONAL,
+ -- O 6.5.2.au w
+ handoffReason [30] IMPLICIT HandoffReason OPTIONAL,
+ -- O 6.5.2.70 k
+ handoffState [164] IMPLICIT HandoffState OPTIONAL,
+ -- O 6.5.2.71 l
+ interSwitchCount [7] IMPLICIT InterSwitchCount OPTIONAL,
+ -- O 6.5.2.73 k
+ ilspInformation [217] IMPLICIT ISLPInformation OPTIONAL,
+ -- O 6.5.2.av y
+ msLocation [70] IMPLICIT MSLocation OPTIONAL,
+ -- O 6.5.2.84 c
+ nampsCallMode [165] IMPLICIT NAMPSCallMode OPTIONAL,
+ -- O 6.5.2.85 e, m
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.86 n
+ pdsnAddress [349] IMPLICIT PDSNAddress OPTIONAL,
+ -- O 6.5.2.gf hh
+ pdsnProtocolType [350] IMPLICIT PDSNProtocolType OPTIONAL,
+ -- O 6.5.2.gg ii
+ qosPriority [348] IMPLICIT QoSPriority OPTIONAL,
+ -- O 6.5.2.ge jj
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 j
+ stationClassMark [18] IMPLICIT StationClassMark OPTIONAL,
+ -- O 6 .5.2.14 3 i , n, o
+ systemOperatorCode [206] IMPLICIT SystemOperatorCode OPTIONAL,
+ -- O 6 .5.2.a j v
+ targetCellID [3] IMPLICIT TargetCellID OPTIONAL,
+ -- O 6.5.2.148
+ tdmaBandwidth [220] IMPLICIT TDMABandwidth OPTIONAL,
+ -- (Desired) O 6.5.2.ay
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Serving) O 6.5.2.151 o
+ tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
+ -- O 6.5.2.152 e, p
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.153 o
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6 .5.2.i x
+ tdmaTerminalCapability [179] TDMATerminalCapability OPTIONAL,
+ -- y O 6 .5.2.j x
+ tdmaVoiceCoder [180] IMPLICIT TDMAVoiceCoder OPTIONAL,
+ -- O 6.5.2.k u
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6 .5.2.154
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 q
+ ...
+ }
+
+-- HandoffBack2 RETURN RESULT Parameters
+HandoffBack2Res ::= [PRIVATE 18] SET {
+ bsmcstatus [198] IMPLICIT BSMCStatus OPTIONAL,
+ -- O 6 .5.2.a b f
+ cdma2000HandoffResponseIOSData [357] IMPLICIT CDMA2000HandoffResponseIOSData OPTIONAL,
+ -- O 6.5.2.gn yy
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.30 a
+ cdmaCodeChannelList [132] IMPLICIT CDMACodeChannelList OPTIONAL,
+ -- O 6.5.2.33 a
+ cdmaSearchParameters [230] IMPLICIT CDMASearchParameters OPTIONAL,
+ -- O 6.5.2.bi a, k
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq a, i, l, zz
+ cdmaSearchWindow [69] IMPLICIT CDMASearchWindow OPTIONAL,
+ -- O 6.5.2.37 a
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e a, h, t
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Target) O 6.5.2.47 b
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Actual) O 6.5.2.50 c
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Target) O 6.5.2.86 d
+ sOCStatus [205] IMPLICIT SOCStatus OPTIONAL,
+ -- O 6 .5.2.a i f
+ targetCellID [3] IMPLICIT TargetCellID OPTIONAL,
+ -- O 6.5.2.148 e
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Target) O 6.5.2.151 f
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.153 g
+ tdmaVoiceCoder [180] IMPLICIT TDMAVoiceCoder OPTIONAL
+ -- (Target ) O 6 .5.2.k h
+ }
+
+-- 6.4.2.17 HandoffMeasurementRequest
+
+HandoffMeasurementRequest ::= [PRIVATE 18] SET {
+ channelData [5] IMPLICIT ChannelData,
+ -- (Serving) M 6.5.2.47 a
+ servingCellID [2] IMPLICIT ServingCellID,
+ -- M 6.5.2.117
+ stationClassMark [18] IMPLICIT StationClassMark,
+ -- M 6.5.2.143
+ targetCellIDList [207] IMPLICIT TargetCellIDList OPTIONAL,
+ -- O 6 .5.2.ak i
+ tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
+ -- O 6.5.2.152 b
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.153 c
+ tdmaTerminalCapability [179] IMPLICIT TDMATerminalCapability OPTIONAL
+ -- O 6 .5.2.j h
+ }
+
+--HandoffMeasurementRequest RETURN RESULT Parameters
+HandoffMeasurementRequestRes ::= [PRIVATE 18] SET {
+ signalQuality [11] IMPLICIT SignalQuality,
+ -- M 6.5.2.121 a
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- M 6.5.2.148 a
+ ...
+ }
+
+-- 6.4.2.18 HandoffMeasurementRequest2
+HandoffMeasurementRequest2 ::= [PRIVATE 18] SET {
+ servingCellID [2] IMPLICIT ServingCellID,
+ -- M 6.5.2.117
+ cdmaCallMode [62] IMPLICIT CDMACallMode OPTIONAL,
+ -- O 6.5.2.29 a, b
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 b
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e
+ cdmaServingOneWayDelay [60] IMPLICIT CDMAServingOneWayDelay OPTIONAL,
+ -- O 6.5.2.38 b
+ cdmaStationClassMark [59] IMPLICIT CDMAStationClassMark OPTIONAL,
+ -- O 6.5.2.41 b
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 6.5.2.h i
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.47 c
+ msLocation [70] IMPLICIT MSLocation OPTIONAL,
+ -- O 6.5.2.84 b
+ nampsCallMode [165] IMPLICIT NAMPSCallMode OPTIONAL,
+ -- O 6.5.2.85 d
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.86 e
+ stationClassMark [18] IMPLICIT StationClassMark OPTIONAL,
+ -- O 6.5.2.143 c, f
+ targetCellIDList [207] IMPLICIT TargetCellIDList OPTIONAL,
+ -- O 6.5.2.ak
+ tdmaBandwidth [220] IMPLICIT TDMABandwidth OPTIONAL,
+ -- (Desired) O 6.5.2.ay
+ tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
+ -- O 6.5.2.152 g
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.153 f
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ tdmaTerminalCapability [179] IMPLICIT TDMATerminalCapability OPTIONAL
+ -- O 6.5.2.j
+ }
+
+-- HandoffMeasurementRequest2 RETURN RESULT Parameters
+HandoffMeasurementRequest2Res ::= [PRIVATE 18] SET {
+ cdmaTargetMeasurementList [134] IMPLICIT CDMATargetMeasurementList OPTIONAL,
+ -- O 6.5.2.45 a
+ targetMeasurementList [157] IMPLICIT TargetMeasurementList OPTIONAL
+ -- O 6.5.2.150 b ...
+ }
+
+-- 6.4.2.19 HandoffToThird
+HandoffToThird ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- M 6.5.2.16 N.S0006
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ interSwitchCount [7] IMPLICIT InterSwitchCount,
+ -- (Serving) M 6.5.2.73
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ mscid [21] IMPLICIT MSCID,
+ -- (Target) M 6.5.2.82
+ servingCellID [2] IMPLICIT ServingCellID,
+ -- M 6.5.2.117
+ baseStationManufacturerCode [197] IMPLICIT BaseStationManufacturerCode OPTIONAL,
+ -- O 6 .5.2.aa u
+ stationClassMark [18] IMPLICIT StationClassMark,
+ -- M 6.5.2.143
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- M 6.5.2.148
+ cdmaBandClassList [172] IMPLICIT CDMABandClassList OPTIONAL,
+ -- O 6.5.2.c q
+ cdmaCallMode [62] IMPLICIT CDMACallMode OPTIONAL,
+ -- O 6.5.2.29 c, d, e
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 c
+ cdmaMobileProtocolRevision [66] IMPLICIT CDMAMobileProtocolRevision OPTIONAL,
+ -- O 6.5.2.34 c, r
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 f
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e c, s
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g c, t
+ cdmaServingOneWayDelay [60] IMPLICIT CDMAServingOneWayDelay OPTIONAL,
+ -- O 6.5.2.38 a, c
+ cdmaStationClassMark [59] IMPLICIT CDMAStationClassMark OPTIONAL,
+ -- O 6.5.2.41 c, r, u
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 6.5.2.h r
+ cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
+ -- O 6.5.2.43 g
+ cdmaTargetMeasurementList [134] IMPLICIT CDMATargetMeasurementList OPTIONAL,
+ -- O 6.5.2.45 h
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.47 b
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Desired) O 6.5.2.50 c
+ handoffReason [30] IMPLICIT HandoffReason OPTIONAL,
+ -- O 6.5.2.70 d
+ handoffState [164] IMPLICIT HandoffState OPTIONAL,
+ -- O 6 .5.2.71 t
+ msLocation [70] IMPLICIT MSLocation OPTIONAL,
+ -- O 6.5.2.84 c
+ nampsCallMode [165] IMPLICIT NAMPSCallMode OPTIONAL,
+ -- O 6.5.2.85 e, l
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.86 m
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 c
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Serving) O 6.5.2.151 e
+ tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
+ -- O 6.5.2.152 f
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.153 e
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6 .5.2.i x
+ tdmaTerminalCapability [179] IMPLICIT TDMATerminalCapability OPTIONAL,
+ -- y O 6 .5.2.j x
+ tdmaVoiceCoder [180] IMPLICIT TDMAVoiceCoder OPTIONAL,
+ -- O 6.5.2.k u
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6 .5.2.154
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL
+ -- O 6.5.2.166 g
+ }
+
+-- HandoffToThird RETURN RESULT Parameters
+HandoffToThirdRes ::= [PRIVATE 18] SET {
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.30 a
+ cdmaCodeChannelList [132] IMPLICIT CDMACodeChannelList OPTIONAL,
+ -- O 6.5.2.33 a
+ cdmaSearchWindow [69] IMPLICIT CDMASearchWindow OPTIONAL,
+ -- O 6.5.2.37 a
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ --
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Target) O 6.5.2.47 a
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Actual) O 6.5.2.50 b
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Target) O 6.5.2.86 d
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- O 6.5.2.148 e
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Target) O 6.5.2.151 c
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.153 d
+ tdmaVoiceCoder [180] IMPLICIT TDMAVoiceCoder OPTIONAL
+ -- (Target) O 6.5.2.k j
+ }
+
+-- 6.4.2.20 HandoffToThird2
+HandoffToThird2 ::= [PRIVATE 18] SET {
+ bsmcstatus [198] IMPLICIT BSMCStatus OPTIONAL,
+ -- O 6 .5.2.a b f
+ billingID [1] IMPLICIT BillingID,
+ -- M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ interSwitchCount [7] IMPLICIT InterSwitchCount,
+ -- (Serving) M 6.5.2.73
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ mscid [21] IMPLICIT MSCID,
+ -- (Target) M 6.5.2.82
+ servingCellID [2] IMPLICIT ServingCellID,
+ -- M 6.5.2.117 a
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- O 6.5.2.148 b
+ cdma2000HandoffInvokeIOSData [356] IMPLICIT CDMA2000HandoffInvokeIOSData OPTIONAL,
+ -- O 6.5.2.gm xx
+ cdmaCallMode [62] IMPLICIT CDMACallMode OPTIONAL,
+ -- O 6.5.2.29 c, d, e
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 c
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq IS-737 c, s, z
+ cdmaMSMeasuredChannelIdentity [351] IMPLICIT CDMAMSMeasuredChannelIdentity OPTIONAL,
+ -- O 6.5.2.gh oo
+ cdmaMobileProtocolRevision [66] IMPLICIT CDMAMobileProtocolRevision OPTIONAL,
+ -- O 6.5.2.34 c
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 f
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e c, r, mm
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g c, x
+ cdmaServingOneWayDelay [60] IMPLICIT CDMAServingOneWayDelay OPTIONAL,
+ -- O 6.5.2.38 a, c
+ cdmaStationClassMark [59] IMPLICIT CDMAStationClassMark OPTIONAL,
+ -- O 6.5.2.41 c
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 6.5.2.h TSB76 c, nn
+ cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
+ -- O 6.5.2.43 g
+ cdmaTargetMeasurementList [134] IMPLICIT CDMATargetMeasurementList OPTIONAL,
+ -- O 6.5.2.45 h
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.47 i
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Desired) O 6.5.2.50 j
+ dataKey [215] IMPLICIT DataKey OPTIONAL,
+ -- O 6.5.2.at IS-737 ab z
+ dataPrivacyParameters [216] IMPLICIT DataPrivacyParameters OPTIONAL,
+ -- O 6.5.2.au IS-737 v
+ handoffReason [30] IMPLICIT HandoffReason OPTIONAL,
+ -- O 6.5.2.70 k
+ ilspInformation [217] IMPLICIT ISLPInformation OPTIONAL,
+ -- O 6.5.2.av w
+ msLocation [70] IMPLICIT MSLocation OPTIONAL,
+ -- O 6.5.2.84 c
+ nampsCallMode [165] IMPLICIT NAMPSCallMode OPTIONAL,
+ -- O 6.5.2.85 e, l
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.86 m
+ pdsnAddress [349] IMPLICIT PDSNAddress OPTIONAL,
+ -- O 6.5.2.gf hh
+ pdsnProtocolType [350] IMPLICIT PDSNProtocolType OPTIONAL,
+ -- O 6.5.2,gg ii
+ qosPriority [348] IMPLICIT QoSPriority OPTIONAL,
+ -- O 6.5.2.ge jj
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101 z
+ sOCStatus [205] IMPLICIT SOCStatus OPTIONAL,
+ -- O 6 .5.2.a i f
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 j
+ stationClassMark [18] IMPLICIT StationClassMark OPTIONAL,
+ -- O 6.5.2.143 i, m, n
+ tdmaBandwidth [220] IMPLICIT TDMABandwidth OPTIONAL,
+ --(Desired) O 6.5.2.ay y
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Serving) O 6.5.2.151 n
+ tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
+ -- O 6.5.2.152 n, o
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.153 n
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i u
+ tdmaTerminalCapability [179] TDMATerminalCapability OPTIONAL,
+ -- O 6.5.2.j
+ tdmaVoiceCoder [180] IMPLICIT TDMAVoiceCoder OPTIONAL,
+ -- O 6.5.2.k
+ userZoneData [209] IMPLICIT UserZoneData OPTIONAL,
+ -- O 6.5.2.am (IS-730)
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 p
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- HandoffToThird2 RETURN RESULT Parameters
+HandoffToThird2Res ::= [PRIVATE 18] SET {
+ cdma2000HandoffResponseIOSData [357] IMPLICIT CDMA2000HandoffResponseIOSData OPTIONAL,
+ -- O 6.5.2.gn yy
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.30 a
+ cdmaCodeChannelList [132] IMPLICIT CDMACodeChannelList OPTIONAL,
+ -- O 6.5.2.33 a
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq IS-737 a, i, k, zz
+ cdmaSearchParameters [230] IMPLICIT CDMASearchParameters OPTIONAL,
+ -- O 6.5.2.bi a, k
+ cdmaSearchWindow [69] IMPLICIT CDMASearchWindow OPTIONAL,
+ -- O 6.5.2.37 a
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e a, h, t
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Target) O 6.5.2.47 b
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- (Actual) O 6.5.2.50 c
+ nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Target) O 6.5.2.86 d
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- O 6.5.2.148 e
+ tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
+ -- (Target) O 6.5.2.151 f
+ tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
+ -- (Target) O 6.5.2.153 g
+ tdmaVoiceCoder [180] IMPLICIT TDMAVoiceCoder OPTIONAL
+ -- (Target) O 6.5.2.k j
+ }
+
+-- 6.4.2.21 InformationDirective Updated with N.S0012-0 v 1.0
+-- http://www.3gpp2.org/Public_html/specs/X.S0004-540-E_v2.0_070723.pdf
+InformationDirective ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ msid MSID OPTIONAL,
+ -- M 2.153 e
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 a
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 b
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 c
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 c
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- 6.5.2.ec
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 c
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 c
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL
+ -- O 6.5.2.116 d
+ }
+
+-- InformationDirective RETURN RESULT Parameters
+
+InformationDirectiveRes ::= [PRIVATE 18] SET {
+ alertResult [129] IMPLICIT AlertResult OPTIONAL
+ -- O 6.5.2.4 a
+ }
+
+-- 6.4.2.22 InformationForward
+InformationForward ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 a
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 a
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 b
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 b
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 b
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- 6.5.2.ec
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 a
+ messageWaitingNotificationCount [92] IMPLICIT MessageWaitingNotificationCount OPTIONAL,
+ -- O 6.5.2.78 a
+ messageWaitingNotificationType [145] IMPLICIT MessageWaitingNotificationType OPTIONAL,
+ -- O 6.5.2.79 a
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 b
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 b
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- InformationForward RETURN RESULT Parameters
+InformationForwardRes ::= [PRIVATE 18] SET {
+ alertResult [129] IMPLICIT AlertResult OPTIONAL
+ -- O 6.5.2.4 a
+ }
+
+-- 6.4.2.23 InterSystemAnswer
+
+InterSystemAnswer ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL
+ -- O 6.5.2.63 a
+ }
+-- InterSystemAnswer RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.24 InterSystemPage
+
+InterSystemPage ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 a
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw a, m
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 a
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 a
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 a
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 a
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 a
+ cdmaBandClass [170] IMPLICIT CDMABandClass OPTIONAL,
+ -- O 6.5.2.a m
+ cdmaMobileProtocolRevision [66] IMPLICIT CDMAMobileProtocolRevision OPTIONAL,
+ -- O 6.5.2.34 c
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f m
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g
+ cdmaSlotCycleIndex [166] IMPLICIT CDMASlotCycleIndex OPTIONAL,
+ -- O 6.5.2.40 b
+ cdmaStationClassMark [59] IMPLICIT CDMAStationClassMark OPTIONAL,
+ -- O 6.5.2.41 c
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 6.5.2.h m
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 6 .5.2.ac m
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- 6.5.2.ec
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 a
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 a
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 a
+ extendedMSCID [53] IMPLICIT ExtendedMSCID OPTIONAL,
+ -- (Serving MSC) O 6.5.2.64 d
+ extendedSystemMyTypeCode [54] IMPLICIT ExtendedSystemMyTypeCode OPTIONAL,
+ -- (Serving MSC) O 6.5.2.65 e
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 f
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 f
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 a
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Originating MSC) O 6.5.2.82 g
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 f
+ mSIDUsage [327] IMPLICIT MSIDUsage OPTIONAL,
+ -- O 6.5.2.fe
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL,
+ -- O 6.5.2.bl o
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 f
+ pageCount [300] IMPLICIT PageCount OPTIONAL,
+ -- O 6.5.2.ed
+ pageIndicator [71] IMPLICIT PageIndicator OPTIONAL,
+ -- O 6.5.2.92 h
+ pageResponseTime [301] IMPLICIT PageResponseTime OPTIONAL,
+ -- O 6.5.2.ee
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Originating MSC) O 6.5.2.93 i
+ pilotBillingID [169] IMPLICIT PilotBillingID OPTIONAL,
+ -- O 6.5.2.94 j
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 k
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 a
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ --O 6.5.2.107 a
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 a
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.by a, m
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 a
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 f
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL,
+ -- (Originating MSC) O 6.5.2.147 l
+ tdmaDataFeaturesIndicator [221] IMPLICIT TDMADataFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.az p
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6 .5.2.154 f
+ terminationTreatment [121] IMPLICIT TerminationTreatment OPTIONAL,
+ -- O 6.5.2.158 f
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 a
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de a
+ }
+
+-- InterSystemPage RETURN RESULT Parameters
+InterSystemPageRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- (Terminating) O 6.5.2.16 b, c
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ conditionallyDeniedReason [162] IMPLICIT ConditionallyDeniedReason OPTIONAL,
+ -- O 6.5.2.48 d
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 c
+ extendedMSCID [53] IMPLICIT ExtendedMSCID OPTIONAL,
+ -- (Border MSC) O 6.5.2.64 c
+ extendedSystemMyTypeCode [54] IMPLICIT ExtendedSystemMyTypeCode OPTIONAL,
+ -- (Border MSC) O 6.5.2.65 c
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 e
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Border MSC) O 6.5.2.93 f
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL
+ -- O 6.5.2.i
+ }
+
+-- 6.4.2.25 InterSystemPage2
+InterSystemPage2 ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Anchor MSC) M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 a
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 b
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 b
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 b
+ cdmaBandClass [170] IMPLICIT CDMABandClass OPTIONAL,
+ -- O 6.5.2.a f
+ cdmaMobileProtocolRevision [66] IMPLICIT CDMAMobileProtocolRevision OPTIONAL,
+ -- O 6.5.2.34 c
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 6 .5.2.ac f
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f f
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g h
+ cdmaSlotCycleIndex [166] IMPLICIT CDMASlotCycleIndex OPTIONAL,
+ -- O 6.5.2.40 b
+ cdmaStationClassMark [59] IMPLICIT CDMAStationClassMark OPTIONAL,
+ -- O 6.5.2.41 d
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 6.5.2.h f
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- 6.5.2.ec
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 e
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 a
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ mSIDUsage [327] IMPLICIT MSIDUsage OPTIONAL,
+ -- O 6.5.2.fe k
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL,
+ -- O 6.5.2.bl h
+ nonPublicData [200] IMPLICIT NonPublicData OPTIONAL,
+ -- O 6.5.2.ad IS-730 l
+ pageCount [300] IMPLICIT PageCount OPTIONAL,
+ -- O 6.5.2.ed
+ pageIndicator [71] IMPLICIT PageIndicator OPTIONAL,
+ -- O 6.5.2.92 f
+ pagingFrameClass [210] IMPLICIT PagingFrameClass OPTIONAL,
+ -- O 6 .5.2.ae g
+ pageResponseTime [301] IMPLICIT PageResponseTime OPTIONAL,
+ -- O 6.5.2.ee IS-730 h
+ pSID-RSIDList [203] IMPLICIT PSID-RSIDList OPTIONAL,
+ -- O 6.5.2.ag IS-730 m,
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 b
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 b
+ tdmaDataFeaturesIndicator [221] IMPLICIT TDMADataFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.az i
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6 .5.2.154 d
+ userZoneData [209] IMPLICIT UserZoneData OPTIONAL
+ -- O 6.5.2.am IS-730
+ }
+
+-- InterSystemPage2 RETURN RESULT Parameters
+
+InterSystemPage2Res ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ authenticationResponseBaseStation [36] IMPLICIT AuthenticationResponseBaseStation,
+ -- O 6.5.2.10 b
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 b
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ randc [67] IMPLICIT RANDC OPTIONAL,
+ -- O 6.5.2.100 c
+ randomVariableBaseStation [41] IMPLICIT RandomVariableBaseStation,
+ -- O 6.5.2.101 d
+ systemAccessType [34] IMPLICIT SystemAccessType,
+ -- O 6.5.2.145 b
+ systemCapabilities [49] IMPLICIT SystemCapabilities OPTIONAL,
+ -- (Border) O 6.5.2.146 e
+ tdmaDataMode [222] IMPLICIT TDMADataMode OPTIONAL,
+ -- O 6.5.2.ba e
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ terminalType [47] IMPLICIT TerminalType OPTIONAL
+ -- O 6.5.2.154 e
+ }
+
+-- 6.4.2.26 InterSystemSetup
+InterSystemSetup ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Anchor MSC) M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+-- (IS-751)
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 a, g
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 b, g
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 b, g
+
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 b, g
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 a
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f e, g
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g f, g
+ changeServiceAttributes [214] IMPLICIT ChangeServiceAttributes OPTIONAL,
+ -- O 6.5.2.as c
+ dataKey [215] IMPLICIT DataKey OPTIONAL,
+ -- O 6.5.2.at b
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx a, b
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- O 6.5.2.ec (misc 10.0) a, c, g
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu (IS-751) d
+ ilspInformation [217] IMPLICIT ISLPInformation OPTIONAL,
+ -- (Desired) O 6.5.2.av d
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81 (IS-751)
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 b, g
+ edirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 b, g
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 a
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 a
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- InterSystemSetup RETURN RESULT Parameters
+
+InterSystemSetupRes ::= [PRIVATE 18] SET {
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq a
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ --O 6.5.2.f TSB76 b
+ ilspInformation [217] IMPLICIT ISLPInformation OPTIONAL,
+ -- (Actual) O 6.5.2.av
+ setupResult [151] IMPLICIT SetupResult OPTIONAL
+ -- O 6.5.2.118 a
+ }
+
+-- 6.4.2.27 LocationRequest Updated with N.S0023-0 v 1.0
+LocationRequest ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16
+ digits [4] IMPLICIT Digits,
+ -- (Dialed) M 6.5.2.58
+ mscid [21] IMPLICIT MSCID,
+ -- (Originating) M 6.5.2.82
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (Originating) M 6.5.2.147
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ --O 6.5.2.21 a
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ --O 6.5.2.22 a
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ --O 6.5.2.25 a
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f g
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 b
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Originating) O 6.5.2.93 c
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 a
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.by
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 a
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 d
+ terminationAccessType [119] IMPLICIT TerminationAccessType OPTIONAL,
+ -- O 6.5.2.155 d
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i h
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- O 6.5.2.160 e
+ triggerType [279] IMPLICIT TriggerType OPTIONAL,
+ -- O 6.5.2.dh f
+ winCapability [280] IMPLICIT WINCapability OPTIONAL,
+ -- O 6.5.2.di
+ callingPartyCategory [355] IMPLICIT CallingPartyCategory OPTIONAL
+ -- O 6.5.2.gl
+ }
+-- LocationRequest RETURN RESULT Parameters
+
+LocationRequestRes ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63 a
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81 a
+ mscid [21] IMPLICIT MSCID,
+ -- (Serving MSC) M 6.5.2.82 b
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 c
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 d
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 e
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 e
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ controlNetworkID [307] IMPLICIT ControlNetworkID OPTIONAL,
+ -- O 6.5.2.ek s
+ digits-carrier [4] IMPLICIT Digits OPTIONAL,
+ -- (Carrier) O 6.5.2.58 f
+ digits-dest [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 g, h
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- 6.5.2.ec
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 i
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 i
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 i
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 j
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei q
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 k
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 i
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 l
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 m
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Serving MSC or VLR) O 6.5.2.93 n
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 f, r
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 j
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 f
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 e, j
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 f
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 o
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 f
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL,
+ -- O 6.5.2.de f, t
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- 6.4.2.28 MobileOnChannel
+
+--MobileOnChannel ::= [PRIVATE 18] SET {
+-- zero octets
+-- }
+
+-- 6.4.2.29 MSInactive
+MSInactive ::= [PRIVATE 18] SET {
+ lectronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 a
+ deregistrationType [73] IMPLICIT DeregistrationType OPTIONAL,
+ -- O 6.5.2.55 b
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 c
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 d
+ servicesResult [204] IMPLICIT ServicesResult OPTIONAL,
+ -- O 6 .5.2.ah f
+ sms-MessageWaitingIndicator [118] IMPLICIT SMS-MessageWaitingIndicator OPTIONAL,
+ -- O 6.5.2.129 e
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- MSInactive RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.30
+-- OriginationRequest INVOKE Parameters Updated with N.S0023-0 v 1.0
+OriginationRequest ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ --(originating) M 6.5.2.16 1 0 0 0 0 0 0 1 (0x81)(0x1)
+ digits [4] IMPLICIT Digits,
+ --(Dialed) M 6.5.2.58
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ --M 6.5.2.63
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ --M 6.5.2.81
+ mscid [21] IMPLICIT MSCID,
+ --(Originating MSC) M 6.5.2.82 1 0 0 1 0 1 0 1 (0x95)(0x15)
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv k
+ originationTriggers [98] IMPLICIT OriginationTriggers,
+ --M 6.5.2.90 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 1 0 0 0 1 0 (0x62) (98)
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ --M 6.5.2.160 1 0 0 1 1 1 1 1 (0x9f)
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv k
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw g
+ -- N.S0012-0_v1.0
+ -- 0 1 1 1 1 0 1 1 (0x7b)(123)
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ --O 6.5.2.21 a 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 0 1 0 0 0 0 (0x50)
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ --O 6.5.2.22 a 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 0 1 0 0 0 1 (0x51)
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ --O 6.5.2.25 a 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 0 1 0 1 0 0 (0x54)
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 a
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ --O 6.5.2.80 b 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 0 1 1 1 0 1 (0x5d)
+ featureIndicator [306] IMPLICIT FeatureIndicator OPTIONAL,
+ -- O 6.5.2.ej m
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ --O 6.5.2.83 c 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 0 1 1 1 1 0 (0x5e)
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ --O 6.5.2.88 d 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 1 0 0 0 0 1 (0x61)
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ --(Originating MSC), O 6.5.2.93 e 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 0 1 0 0 0 0 0 (0x20)
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 j
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ --O 6.5.2.116 f 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 1 0 0 1 1 1 (0x67)
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 a
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ triggerType [279] IMPLICIT TriggerType OPTIONAL,
+ -- O 6.5.2.dh h
+ winCapability [280] IMPLICIT WINCapability OPTIONAL,
+ -- O 6.5.2.di a
+ -- NS0027
+ callingPartyCategory [355] IMPLICIT CallingPartyCategory OPTIONAL,
+ -- O 6.5.2.gl
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O
+ ... }
+
+-- OriginationRequest RETURN RESULT Parameters
+OriginationRequestRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 b
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 c
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 d, e
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 d, e
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 d, e, f
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 g
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 h
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- O 6.5.2.ec d, e, p
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 i
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 i
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 i
+ dmh-ChargeInformation [311] IMPLICIT DMH-ChargeInformation OPTIONAL,
+ -- O 6.5.2.eo i, t
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 i, j
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei s
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 k
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 i
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 l
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 m
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 k
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 q, r
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 f
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 d
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 d, e
+ resumePIC [266] IMPLICIT ResumePIC OPTIONAL,
+ -- O 6.5.2.cu p
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 g
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 n
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.57 o
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de q
+ }
+
+-- 6.4.2.31 QualificationDirective
+
+QualificationDirective ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bu j
+ qualificationInformationCode [17] IMPLICIT QualificationInformationCode,
+ -- M 6.5.2.99
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (HLR or VLR) M 6.5.2.147
+ analogRedirectRecord [225] IMPLICIT AnalogRedirectRecord OPTIONAL,
+ -- O 6.5.2.bd k
+ authorizationDenied [13] IMPLICIT AuthorizationDenied OPTIONAL,
+ -- O 6.5.2.13 a
+ authorizationPeriod [14] IMPLICIT AuthorizationPeriod OPTIONAL,
+ -- O 6.5.2.14 b
+ cdmaRedirectRecord [229] IMPLICIT CDMARedirectRecord OPTIONAL,
+ -- O 6.5.2.bh l
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 6 .5.2.ac j
+ deniedAuthorizationPeriod [167] IMPLICIT DeniedAuthorizationPeriod OPTIONAL,
+ -- O 6.5.2.53 c
+ digits-carrier [4] IMPLICIT Digits OPTIONAL,
+ -- (Carrier) O 6.5.2.58 d, e
+ digits-dest [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 d, f
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 g
+-- Profile **Macro** O 6.5.2.97 h
+ authenticationCapability [78] IMPLICIT AuthenticationCapability OPTIONAL,
+ -- O 6.5.2.8 a
+ callingFeaturesIndicator [25] IMPLICIT CallingFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.20 b
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 c
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g d
+ controlNetworkID [307] IMPLICIT ControlNetworkID OPTIONAL,
+ -- O 6.5.2.ek u
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 d
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 d
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 d
+ geographicAuthorization [143] IMPLICIT GeographicAuthorization OPTIONAL,
+ -- O 6.5.2.68 e
+ meidValidated [401] IMPLICIT MEIDValidated OPTIONAL,
+ -- O 3.2.2.98
+ messageWaitingNotificationCount [92] IMPLICIT MessageWaitingNotificationCount OPTIONAL,
+ -- O 6.5.2.78 f
+ messageWaitingNotificationType [145] IMPLICIT MessageWaitingNotificationType OPTIONAL,
+ -- O 6.5.2.79 g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
+ originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
+ -- O 6.5.2.89 h
+ originationTriggers [98] IMPLICIT OriginationTriggers OPTIONAL,
+ -- O 6.5.2.90 i
+ pACAIndicator [146] IMPLICIT PACAIndicator OPTIONAL,
+ -- O 6.5.2.91 j
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 k
+ qosPriority [348] IMPLICIT QoSPriority OPTIONAL,
+ --6.5.2.ge z
+ restrictionDigits [227] IMPLICIT RestrictionDigits OPTIONAL,
+ -- O 6.5.2.113 l
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 m
+ pSID-RSIDList [203] IMPLICIT PSID-RSIDList OPTIONAL,
+ -- O 6 .5.2.ag u , w
+ sms-OriginationRestrictions [115] IMPLICIT SMS-OriginationRestrictions OPTIONAL,
+ -- O 6.5.2.136 n
+ sms-TerminationRestrictions [117] IMPLICIT SMS-TerminationRestrictions OPTIONAL,
+ -- O 6.5.2.138 o
+ spinipin [154] IMPLICIT SPINIPIN OPTIONAL,
+ -- O 6.5.2.139 p
+ spiniTriggers [155] IMPLICIT SPINITriggers OPTIONAL,
+ -- O 6.5.2.140 q
+ tdmaDataFeaturesIndicator [221] IMPLICIT TDMADataFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.az s
+ terminationRestrictionCode [24] IMPLICIT TerminationRestrictionCode OPTIONAL,
+ -- O 6.5.2.157 r
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 s
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL,
+ -- O 6.5.2.de t
+ userGroup [208] IMPLICIT UserGroup OPTIONAL,
+ -- O 6 .5.2.al p
+ nonPublicData [200] IMPLICIT NonPublicData OPTIONAL,
+ -- O 6 .5.2.ad v
+ userZoneData [209] IMPLICIT UserZoneData OPTIONAL,
+ -- O 6 .5.2.am v , w
+ callingPartyCategory [355] IMPLICIT CallingPartyCategory OPTIONAL,
+ -- O 6.5.2.gl z
+ lirMode [369] IMPLICIT LIRMode OPTIONAL,
+ -- O 6.5.2.gz z
+-- END MACRO
+ serviceRedirectionInfo [238] IMPLICIT ServiceRedirectionInfo OPTIONAL,
+ -- O 6.5.2.bq k, l, m
+ roamingIndication [239] IMPLICIT RoamingIndication OPTIONAL,
+ -- O 6.5.2.br n
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL
+ -- O 6.5.2.116 i
+ }
+
+-- QualificationDirective RETURN RESULT Parameters
+-- Zero octets
+QualificationDirectiveRes ::= [PRIVATE 18] SET {
+
+}
+-- 6.4.2.32 QualificationRequest
+
+QualificationRequest ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bu c
+ qualificationInformationCode [17] IMPLICIT QualificationInformationCode,
+ -- M 6.5.2.99
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (MSC or VLR) M 6.5.2.147
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 c
+ cdmaNetworkIdentification [232] IMPLICIT CDMANetworkIdentification OPTIONAL,
+ -- (Serving) O 6.5.2.bk d
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 6.5.2.ac e
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving MSC or Originating MSC) O 6.5.2.82 a
+-- ReturnCause O 6.5.2.bp f
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 b
+ systemAccessType [34] IMPLICIT SystemAccessType OPTIONAL,
+ -- O 6.5.2.145 a
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6.5.2.154 e
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- O 6.5.2.160 a
+ winCapability [280] IMPLICIT WINCapability OPTIONAL,
+ -- O 6.5.2.di c
+ nonPublicData [200] IMPLICIT NonPublicData OPTIONAL,
+ -- O 6 .5.2.a d
+ userZoneData [209] IMPLICIT UserZoneData OPTIONAL,
+ -- O 6 .5.2.am e
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- QualificationRequest RETURN RESULT Parameters
+QualificationRequestRes ::= [PRIVATE 18] SET {
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (VLR or HLR) M 6.5.2.147
+ analogRedirectRecord [225] IMPLICIT AnalogRedirectRecord,
+ -- O 6.5.2.bc
+ authorizationDenied [13] IMPLICIT AuthorizationDenied OPTIONAL,
+ -- O 6.5.2.13 a
+ authorizationPeriod [14] IMPLICIT AuthorizationPeriod OPTIONAL,
+ -- O 6.5.2.14 b
+ cdmaRedirectRecord [229] IMPLICIT CDMARedirectRecord OPTIONAL,
+ -- O 6.5.2.bh
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 6 .5.2.ac h
+ deniedAuthorizationPeriod [167] IMPLICIT DeniedAuthorizationPeriod OPTIONAL,
+ -- O 6.5.2.53 c
+ digits-carrier [4] IMPLICIT Digits OPTIONAL,
+ -- (Carrier) O 6.5.2.58 d
+ digits-dest [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 e
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (HLR) O 6.5.2.82 f
+-- Profile **Macro** O 6.5.2.97 g
+ authenticationCapability [78] IMPLICIT AuthenticationCapability OPTIONAL,
+ -- O 6.5.2.8 a
+ callingFeaturesIndicator [25] IMPLICIT CallingFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.20 b
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 c
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g f, g
+ controlNetworkID [307] IMPLICIT ControlNetworkID OPTIONAL,
+ -- O 6.5.2.ek u
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 d
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 d
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 d
+ geographicAuthorization [143] IMPLICIT GeographicAuthorization OPTIONAL,
+ -- O 6.5.2.68 e
+ meidValidated [401] IMPLICIT MEIDValidated OPTIONAL,
+ -- O 3.2.2.98
+ messageWaitingNotificationCount [92] IMPLICIT MessageWaitingNotificationCount OPTIONAL,
+ -- O 6.5.2.78 f
+ messageWaitingNotificationType [145] IMPLICIT MessageWaitingNotificationType OPTIONAL,
+ -- O 6.5.2.79 g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
+ originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
+ -- O 6.5.2.89 h
+ originationTriggers [98] IMPLICIT OriginationTriggers OPTIONAL,
+ -- O 6.5.2.90 i
+ pACAIndicator [146] IMPLICIT PACAIndicator OPTIONAL,
+ -- O 6.5.2.91 j
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 k
+ restrictionDigits [227] IMPLICIT RestrictionDigits OPTIONAL,
+ -- O 6.5.2.113 l
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 m
+ sms-OriginationRestrictions [115] IMPLICIT SMS-OriginationRestrictions OPTIONAL,
+ -- O 6.5.2.136 n
+ sms-TerminationRestrictions [117] IMPLICIT SMS-TerminationRestrictions OPTIONAL,
+ -- O 6.5.2.138 o
+ spinipin [154] IMPLICIT SPINIPIN OPTIONAL,
+ -- O 6.5.2.139 p
+ spiniTriggers [155] IMPLICIT SPINITriggers OPTIONAL,
+ -- O 6.5.2.140 q
+ terminationRestrictionCode [24] IMPLICIT TerminationRestrictionCode OPTIONAL,
+ -- O 6.5.2.157 r
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 s
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL,
+ -- O 6.5.2.de t
+ callingPartyCategory [355] IMPLICIT CallingPartyCategory OPTIONAL,
+ -- O 6.5.2.gl z
+ lirMode [369] IMPLICIT LIRMode OPTIONAL,
+ -- O 6.5.2.gz z
+-- END MACRO
+ serviceRedirectionInfo [238] IMPLICIT ServiceRedirectionInfo OPTIONAL,
+ -- O 6.5.2.bq h, i
+ roamingIndication [239] IMPLICIT RoamingIndication OPTIONAL
+ -- O 6.5.2.br
+ }
+
+-- 6.4.2.33 RandomVariableRequest
+RandomVariableRequest ::= [PRIVATE 18] SET {
+ mscid [21] IMPLICIT MSCID,
+ -- (Serving MSC) M 6.5.2.82
+ randc [67] IMPLICIT RANDC,
+ -- M 6.5.2.100
+ servingCellID [2] IMPLICIT ServingCellID
+ -- M 6.5.2.117
+ }
+
+-- RandomVariableRequest RETURN RESULT Parameters
+RandomVariableRequestRes ::= [PRIVATE 18] SET {
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101 a
+ randValidTime [148] IMPLICIT RANDValidTime
+ -- O 6.5.2.105 a
+ }
+
+-- 6.4.2.34 RedirectionDirective
+RedirectionDirective ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16
+ digits-dest [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) M 6.5.2.58
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (MSC) M 6.5.2.147
+ digits-carrier [4] IMPLICIT Digits OPTIONAL,
+ -- (Carrier) O 6.5.2.58 a
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 b
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 b
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 d
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ --O 6.5.2.83 c
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 d
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 d
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL
+ -- O 6.5.2.116 e
+ }
+
+-- RedirectionDirective RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.35 RedirectionRequest
+RedirectionRequest ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID,
+ redirectionReason [19] IMPLICIT RedirectionReason,
+ -- M 6.5.2.110
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 a
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 b
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL
+ -- O 6.5.2.i
+ }
+-- RedirectionRequest RETURN RESULT Parameters
+-- Zero octets
+
+-- 6.4.2.36 RegistrationCancellation
+
+RegistrationCancellation ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ cancellationType [85] IMPLICIT CancellationType OPTIONAL,
+ -- O 6.5.2.27 a
+ controlChannelData [55] IMPLICIT ControlChannelData OPTIONAL,
+ -- O 6.5.2.51 b
+ receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 b
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 c
+ systemAccessData [56] IMPLICIT SystemAccessData OPTIONAL
+ -- O 6.5.2.144 b
+ }
+-- RegistrationCancellation RETURN RESULT Parameters
+
+RegistrationCancellationRes ::= [PRIVATE 18] SET {
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 a
+ cancellationDenied [57] IMPLICIT CancellationDenied OPTIONAL,
+ -- O 6.5.2.26 b
+ controlChannelData [55] IMPLICIT ControlChannelData OPTIONAL,
+ -- O 6.5.2.51 b
+ receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 b
+ sms-MessageWaitingIndicator [118] IMPLICIT SMS-MessageWaitingIndicator OPTIONAL,
+ -- O 6.5.2.129 c
+ systemAccessData [56] IMPLICIT SystemAccessData OPTIONAL
+ -- O 6.5.2.144 b
+ }
+
+-- 6.4.2.37 RegistrationNotification
+-- RegistrationNotification INVOKE Parameters
+
+RegistrationNotification ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bu
+ meid [390] IMPLICIT MEID OPTIONAL,
+ --
+ mscid [21] IMPLICIT MSCID,
+ --(Serving MSC) M 6.5.2.82
+ qualificationInformationCode [17] IMPLICIT QualificationInformationCode,
+ -- M 6.5.2.99
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (Serving MSC or VLR) M 6.5.2.147
+ availabilityType [90] IMPLICIT AvailabilityType OPTIONAL,
+ -- O 6.5.2.15 a
+ borderCellAccess [50] IMPLICIT BorderCellAccess OPTIONAL,
+ -- O 6.5.2.17 b
+ cdmaNetworkIdentification [232] IMPLICIT CDMANetworkIdentification OPTIONAL,
+ -- (Serving) O 6.5.2.bk
+ controlChannelData [55] IMPLICIT ControlChannelData OPTIONAL,
+ -- O 6.5.2.51 b
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 6 .5.2.ac h
+ extendedMSCID [53] IMPLICIT ExtendedMSCID OPTIONAL,
+ -- (VLR) O 6.5.2.64 c
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 d
+ msc-Address [284] IMPLICIT MSC-Address OPTIONAL,
+ -- O 6.5.2.dnC l
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 2.152 t
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ --(Serving MSC or VLR) O 6.5.2.93 e
+ receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 b
+ reportType [44] IMPLICIT ReportType OPTIONAL,
+ -- O 6.5.2.112 f
+ serviceRedirectionCause [237] IMPLICIT ServiceRedirectionCause OPTIONAL,
+ -- O 6.5.2.bp
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 g
+ sms-Address [104] IMPLICIT SMS-Address OPTIONAL,
+ -- O 6.5.2.123 h
+ sms-MessageWaitingIndicator [118] IMPLICIT SMS-MessageWaitingIndicator OPTIONAL,
+ -- O 6.5.2.129 i
+ systemAccessData [56] IMPLICIT SystemAccessData OPTIONAL,
+ -- O 6.5.2.144 b
+ systemAccessType [34] IMPLICIT SystemAccessType OPTIONAL,
+ -- O 6.5.2.145 j
+ systemCapabilities [49] IMPLICIT SystemCapabilities OPTIONAL,
+ -- O 6.5.2.146 k
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6.5.2.154 j
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- O 6.5.2.160 j
+ winCapability [280] IMPLICIT WINCapability OPTIONAL,
+ -- O 6.5.2.di l
+ ...,
+ mpcAddress [370] IMPLICIT MPCAddress OPTIONAL,
+ -- O 6.5.2.ha z, ab
+ mpcAddressList [381] IMPLICIT MPCAddressList OPTIONAL
+ -- O 6.5.2.hm aa, ab
+ }
+-- RegistrationNotification RETURN RESULT Parameters
+RegistrationNotificationRes ::= [PRIVATE 18] SET {
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (VLR or HLR) M 6.5.2.147
+ analogRedirectRecord [225] IMPLICIT AnalogRedirectRecord OPTIONAL,
+ -- O 6.5.2.bd
+ authorizationDenied [13] IMPLICIT AuthorizationDenied OPTIONAL,
+ -- O 6.5.2.13 a
+ authorizationPeriod [14] IMPLICIT AuthorizationPeriod OPTIONAL,
+ -- O 6.5.2.14 b
+ cdmaRedirectRecord [229] IMPLICIT CDMARedirectRecord OPTIONAL,
+ -- O 6.5.2.bh
+ controlChannelData [55] IMPLICIT ControlChannelData OPTIONAL,
+ -- O 6.5.2.51 c
+ deniedAuthorizationPeriod [167] IMPLICIT DeniedAuthorizationPeriod OPTIONAL,
+ -- O 6.5.2.53 d
+ digits-Carrier [4] IMPLICIT Digits OPTIONAL,
+ --(Carrier) O 6.5.2.58 e
+ digits-Destination [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 f
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ --(HLR) O 6.5.2.82 g
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bu
+--Profile **Macro** O 6.5.2.97 h
+ authenticationCapability [78] IMPLICIT AuthenticationCapability OPTIONAL,
+ -- O 6.5.2.8 a
+ callingFeaturesIndicator [25] IMPLICIT CallingFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.20 b
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 c
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g d
+ controlNetworkID [307] IMPLICIT ControlNetworkID OPTIONAL,
+ -- O 6.5.2.ek u
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 d
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 d
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 d
+ geographicAuthorization [143] IMPLICIT GeographicAuthorization OPTIONAL,
+ -- O 6.5.2.68 e
+ meidValidated [401] IMPLICIT MEIDValidated OPTIONAL,
+ -- O 3.2.2.98
+ messageWaitingNotificationCount [92] IMPLICIT MessageWaitingNotificationCount OPTIONAL,
+ -- O 6.5.2.78 f
+ messageWaitingNotificationType [145] IMPLICIT MessageWaitingNotificationType OPTIONAL,
+ -- O 6.5.2.79 g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
+ originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
+ -- O 6.5.2.89 h
+ originationTriggers [98] IMPLICIT OriginationTriggers OPTIONAL,
+ -- O 6.5.2.90 i
+ pACAIndicator [146] IMPLICIT PACAIndicator OPTIONAL,
+ -- O 6.5.2.91 j
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 k
+ qosPriority [348] IMPLICIT QoSPriority OPTIONAL,
+ --6.5.2.ge z
+ restrictionDigits [227] IMPLICIT RestrictionDigits OPTIONAL,
+ -- O 6.5.2.113 l
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 m
+ pSID-RSIDList [203] IMPLICIT PSID-RSIDList OPTIONAL,
+ -- O 6 .5.2.ag u , w
+ sms-OriginationRestrictions [115] IMPLICIT SMS-OriginationRestrictions OPTIONAL,
+ -- O 6.5.2.136 n
+ sms-TerminationRestrictions [117] IMPLICIT SMS-TerminationRestrictions OPTIONAL,
+ -- O 6.5.2.138 o
+ spinipin [154] IMPLICIT SPINIPIN OPTIONAL,
+ -- O 6.5.2.139 p
+ spiniTriggers [155] IMPLICIT SPINITriggers OPTIONAL,
+ -- O 6.5.2.140 q
+ tdmaDataFeaturesIndicator [221] IMPLICIT TDMADataFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.az s
+ terminationRestrictionCode [24] IMPLICIT TerminationRestrictionCode OPTIONAL,
+ -- O 6.5.2.157 r
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 s
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL,
+ -- O 6.5.2.de t
+ userGroup [208] IMPLICIT UserGroup OPTIONAL,
+ -- O 6 .5.2.al p
+ nonPublicData [200] IMPLICIT NonPublicData OPTIONAL,
+ -- O 6 .5.2.ad v
+ userZoneData [209] IMPLICIT UserZoneData OPTIONAL,
+ -- O 6 .5.2.am v , w
+ callingPartyCategory [355] IMPLICIT CallingPartyCategory OPTIONAL,
+ -- O 6.5.2.gl z
+ lirMode [369] IMPLICIT LIRMode OPTIONAL,
+ -- O 6.5.2.gz z
+-- END MACRO
+ receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 c
+ serviceRedirectionInfo [238] IMPLICIT ServiceRedirectionInfo OPTIONAL,
+ -- O 6.5.2.bq k, l
+ roamingIndication [239] IMPLICIT RoamingIndication OPTIONAL,
+ -- O 6.5.2.br
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 i
+ sms-MessageWaitingIndicator [118] IMPLICIT SMS-MessageWaitingIndicator OPTIONAL,
+ -- O 6.5.2.129 j
+ systemAccessData [56] IMPLICIT SystemAccessData OPTIONAL
+ -- O 6.5.2.144 c
+ }
+
+-- 6.4.2.38 RemoteUserInteractionDirective
+RemoteUserInteractionDirective ::= [PRIVATE 18] SET {
+ announcementList [130] IMPLICIT AnnouncementList,
+ -- M 6.5.2.6
+ digitCollectionControl [139] IMPLICIT DigitCollectionControl
+ -- M 6.5.2.57
+ }
+
+-- RemoteUserInteractionDirective RETURN RESULT Parameters
+RemoteUserInteractionDirectiveRes ::= [PRIVATE 18] SET {
+ digits [4] IMPLICIT Digits OPTIONAL
+ -- (Dialed) O 6.5.2.58 a
+ }
+
+-- 6.4.2.39 ResetCircuit
+ResetCircuit ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID
+ -- M 6.5.2.72
+ }
+-- ResetCircuit RETURN RESULT Parameters
+ResetCircuitRes ::= [PRIVATE 18] SET {
+ trunkStatus [16] IMPLICIT TrunkStatus
+ -- M 6.5.2.161
+ }
+
+-- 6.4.2.40 RoutingRequest
+RoutingRequest ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16 a
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ mscid [21] IMPLICIT MSCID,
+ -- (Originating MSC) M 6.5.2.82
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (Originating MSC) M 6.5.2.147
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 b
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw r, u, v
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 c, t
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 c, t
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 c
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ --, O 6.5.2.24 c
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 6 .5.2.ac r
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 d, e
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- O 6.5.2.ec d, e, p
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 f
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 f
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 f
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 g
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 f, h
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 f
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID,
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 i
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 j
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 k
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Originating MSC) O 6.5.2.93 l
+ pilotBillingID [169] IMPLICIT PilotBillingID OPTIONAL,
+ -- O 6.5.2.94 m
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 m
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- OO 6.5.2.107 c, t
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 c
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.by s, u, v
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 c
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 n
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ terminationTreatment [121] IMPLICIT TerminationTreatment OPTIONAL,
+ -- O 6.5.2.158 o
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 f
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL,
+ -- O 6.5.2.de u
+ userGroup [208] IMPLICIT UserGroup OPTIONAL,
+ -- O 6 .5.2.al s
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- (Originating MSC) O M 6.5.2.160
+ voiceMailboxNumber [160] IMPLICIT VoiceMailboxNumber OPTIONAL,
+ -- O 6.5.2.164 p
+ voiceMailboxPIN [159] IMPLICIT VoiceMailboxPIN OPTIONAL
+ -- O 6.5.2.165 q
+ }
+
+-- RoutingRequest RETURN RESULT Parameters
+RoutingRequestRes ::= [PRIVATE 18] SET {
+ mscid [21] IMPLICIT MSCID,
+ -- (Serving) M 6.5.2.82
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- (Anchor) O 6.5.2.16 b
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ conditionallyDeniedReason [162] IMPLICIT ConditionallyDeniedReason OPTIONAL,
+ -- O 6.5.2.48 c
+ digits-Destination [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 d
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 e
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Serving MSC) O 6.5.2.93 f
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL
+ -- O 6.5.2.i
+ }
+
+-- 6.4.2.41 SMSDeliveryBackward
+SMSDeliveryBackward ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81 a
+ sms-BearerData [105] IMPLICIT SMS-BearerData,
+ -- M 6.5.2.124
+ sms-TeleserviceIdentifier [116] IMPLICIT SMS-TeleserviceIdentifier,
+ --M 6.5.2.137
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 b
+ sms-ChargeIndicator [106] IMPLICIT SMS-ChargeIndicator OPTIONAL,
+ -- O 6.5.2.126 c
+ sms-DestinationAddress [107] IMPLICIT SMS-DestinationAddress OPTIONAL,
+ -- O 6.5.2.127 d
+ sms-OriginalDestinationAddress [110] IMPLICIT SMS-OriginalDestinationAddress OPTIONAL,
+ -- O 6.5.2.131 e
+ sms-OriginalDestinationSubaddress [111] IMPLICIT SMS-OriginalDestinationSubaddress OPTIONAL,
+ -- O 6.5.2.132 b
+ sms-OriginalOriginatingAddress [112] IMPLICIT SMS-OriginalOriginatingAddress OPTIONAL,
+ -- O 6.5.2.133 f
+ sms-OriginalOriginatingSubaddress [113] IMPLICIT SMS-OriginalOriginatingSubaddress OPTIONAL,
+ -- O 6.5.2.134 b
+ sms-OriginatingAddress [114] IMPLICIT SMS-OriginatingAddress OPTIONAL
+ -- O 6.5.2.135 g
+ }
+
+-- SMSDeliveryBackward RETURN RESULT Parameters
+SMSDeliveryBackwardRes ::= [PRIVATE 18] SET {
+ sms-BearerData [105] IMPLICIT SMS-BearerData OPTIONAL,
+ -- O 6.5.2.124 a
+ sms-CauseCode [153] IMPLICIT SMS-CauseCode OPTIONAL
+ -- O 6.5.2.125 b
+ }
+
+
+-- 6.4.2.42 SMSDeliveryForward
+SMSDeliveryForward ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81 a
+ sms-BearerData [105] IMPLICIT SMS-BearerData,
+ -- M 6.5.2.124
+ sms-TeleserviceIdentifier [116] IMPLICIT SMS-TeleserviceIdentifier,
+ -- M 6.5.2.137
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- O 6.5.2.63 b
+ sms-ChargeIndicator [106] IMPLICIT SMS-ChargeIndicator OPTIONAL,
+ -- O 6.5.2.126 c
+ sms-DestinationAddress [107] IMPLICIT SMS-DestinationAddress OPTIONAL,
+ --O 6.5.2.127 d
+ sms-OriginalDestinationAddress [110] IMPLICIT SMS-OriginalDestinationAddress OPTIONAL,
+ -- O 6.5.2.131 e
+ sms-OriginalDestinationSubaddress [111] IMPLICIT SMS-OriginalDestinationSubaddress OPTIONAL,
+ -- O 6.5.2.132 b
+ sms-OriginalOriginatingAddress [112] IMPLICIT SMS-OriginalOriginatingAddress OPTIONAL,
+ -- O 6.5.2.133 f
+ sms-OriginalOriginatingSubaddress [113] IMPLICIT SMS-OriginalOriginatingSubaddress OPTIONAL,
+ -- O 6.5.2.134 b
+ sms-OriginatingAddress [114] IMPLICIT SMS-OriginatingAddress OPTIONAL
+ -- O 6.5.2.135 g
+ }
+
+-- SMSDeliveryForward RETURN RESULT Parameters
+SMSDeliveryForwardRes ::= [PRIVATE 18] SET {
+ sms-BearerData [105] IMPLICIT SMS-BearerData OPTIONAL,
+ --, O 6.5.2.124 a
+ sms-CauseCode [153] IMPLICIT SMS-CauseCode OPTIONAL
+ -- O 6.5.2.125 b
+ }
+
+-- N.S0005-0 v 1.0
+-- 6.4.2.43 SMSDeliveryPointToPoint
+SMSDeliveryPointToPoint ::= [PRIVATE 18] SET {
+ sms-BearerData [105] IMPLICIT SMS-BearerData,
+ -- M 6.5.2.124
+ sms-TeleserviceIdentifier [116] IMPLICIT SMS-TeleserviceIdentifier,
+ -- M 6.5.2.137
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2
+ cdmaServingOneWayDelay2 [347] IMPLICIT CDMAServingOneWayDelay2 OPTIONAL,
+ -- O 6.5.2.gd n, r
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 a
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O 6.5.2.hv
+ interMessageTime [325] IMPLICIT InterMessageTime OPTIONAL,
+ -- O 6.5.2.fd
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 a
+ -- Exchanged by MSID
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 6.5.2.82 f
+-- msid MSID OPTIONAL,
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ --6.5.2.bv
+ newlyAssignedIMSI [287] IMPLICIT NewlyAssignedIMSI OPTIONAL,
+ -- O 6.5.2.dqB j
+ newlyAssignedMIN [187] IMPLICIT NewlyAssignedMIN OPTIONAL,
+ -- O 6.5.2.rB j
+ newMINExtension [328] IMPLICIT NewMINExtension OPTIONAL,
+ -- O 6.5.2.ff n
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB
+ sms-ChargeIndicator [106] IMPLICIT SMS-ChargeIndicator OPTIONAL,
+ -- O 6.5.2.126 b
+ sms-DestinationAddress [107] IMPLICIT SMS-DestinationAddress OPTIONAL,
+ -- O 6.5.2.127 c
+ sms-MessageCount [108] IMPLICIT SMS-MessageCount OPTIONAL,
+ -- O 6.5.2.128 d
+ sms-NotificationIndicator [109] IMPLICIT SMS-NotificationIndicator OPTIONAL,
+ -- O 6.5.2.130 e
+ sms-OriginalDestinationAddress [110] IMPLICIT SMS-OriginalDestinationAddress OPTIONAL,
+ -- O 6.5.2.131 f
+ sms-OriginalDestinationSubaddress [111] IMPLICIT SMS-OriginalDestinationSubaddress OPTIONAL,
+ -- O 6.5.2.132 g
+ sms-OriginalOriginatingAddress [112] IMPLICIT SMS-OriginalOriginatingAddress OPTIONAL,
+ -- O 6.5.2.133 f
+ sms-OriginalOriginatingSubaddress [113] IMPLICIT SMS-OriginalOriginatingSubaddress OPTIONAL,
+ -- O 6.5.2.134 b
+ sms-OriginatingAddress [114] IMPLICIT SMS-OriginatingAddress OPTIONAL,
+ -- O 6.5.2.135 g
+ teleservice-Priority [290] IMPLICIT Teleservice-Priority OPTIONAL,
+ -- O 6.5.2.dt
+ temporaryReferenceNumber [195] IMPLICIT TemporaryReferenceNumber OPTIONAL
+ -- O 6.5.2.yC
+ }
+
+-- SMSDeliveryPointToPoint RETURN RESULT Parameters
+SMSDeliveryPointToPointRes ::= [PRIVATE 18] SET {
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 k
+ authorizationDenied [13] IMPLICIT AuthorizationDenied OPTIONAL,
+ -- O 6.5.2.13 h
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 c
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 d
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O 6.5.2.hv
+ mobileStationMSID MobileStationMSID OPTIONAL,
+ -- O 6.5.2.oC e
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 6.5.2.82 f
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 TIA/EIA/J-STD-036-A
+ sms-BearerData [105] IMPLICIT SMS-BearerData OPTIONAL,
+ -- O 6.5.2.124 a
+ sms-CauseCode [153] IMPLICIT SMS-CauseCode OPTIONAL,
+ -- O 6.5.2.125 b
+ systemCapabilities [49] IMPLICIT SystemCapabilities OPTIONAL
+ -- O 6.5.2.146 g
+ }
+-- 2.65 SMSDeliveryPointToPointAck X.S0004-540-E v2.0
+SMSDeliveryPointToPointAck ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 2.129
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 2.127 d
+ msid MSID OPTIONAL,
+ -- MobileIdentificationNumber O 2.140 d ( exchanged for msid RAB).
+ sms-BearerData [105] IMPLICIT SMS-BearerData OPTIONAL,
+ -- O 2.233 a
+ sms-CauseCode [153] IMPLICIT SMS-CauseCode OPTIONAL,
+ -- O 2.234 b
+ sms-TransactionID [302] IMPLICIT SMS-TransactionID OPTIONAL
+ -- O 2.248 c
+}
+
+
+-- 6.4.2.44 SMSNotification
+SMSNotification ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ -- Exchanged by MCID
+ msid MSID OPTIONAL,
+ --6.5.2.bv
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 f
+ sms-AccessDeniedReason [152] IMPLICIT SMS-AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.122 a
+ sms-Address [104] IMPLICIT SMS-Address OPTIONAL,
+ -- O 6.5.2.123 a, b
+ sms-TeleserviceIdentifier [116] IMPLICIT SMS-TeleserviceIdentifier OPTIONAL,
+ -- O 6.5.2.137
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- SMSNotification RETURN RESULT Parameters
+SMSNotificationRes ::= [PRIVATE 18] SET {
+ sms-MessageCount [108] IMPLICIT SMS-MessageCount OPTIONAL
+ -- O 6.5.2.128
+}
+
+-- 6.4.2.45 SMSRequest
+SMSRequest ::= [PRIVATE 18] SET {
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ msid MSID OPTIONAL,
+ -- 6.5.2.bv e, f, g
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 e
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB d
+ -- O 6.5.2.63 a
+ sms-NotificationIndicator [109] IMPLICIT SMS-NotificationIndicator OPTIONAL,
+ -- O 6.5.2.130 b
+ sms-TeleserviceIdentifier [116] IMPLICIT SMS-TeleserviceIdentifier OPTIONAL
+ -- O 6.5.2.137 c
+ }
+
+-- SMSRequest RETURN RESULT Parameters
+-- X.S0004-540-E v2.0
+SMSRequestRes ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 a
+ msid MSID OPTIONAL,
+ -- 6.5.2.bv
+ sms-AccessDeniedReason [152] IMPLICIT SMS-AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.122 b, c
+ sms-Address [104] IMPLICIT SMS-Address OPTIONAL,
+ -- O 6.5.2.123 c, d
+ sms-CauseCode [153] IMPLICIT SMS-CauseCode OPTIONAL,
+ -- O 6.5.2.125
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL
+ -- O 2.285 f
+ }
+
+-- 6.4.2.46 TransferToNumberRequest Updated with N.S0023-0 v 1.0
+TransferToNumberRequest ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv h
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ redirectionReason [19] IMPLICIT RedirectionReason,
+ -- M 6.5.2.110
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (MSC) M 6.5.2.147
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv h
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- (Originating) O 6.5.2.16 a
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw r, u, v
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 c, t
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 c, t
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 b
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 c
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Originating) O 6.5.2.82 d
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 e
+ pilotBillingID [169] IMPLICIT PilotBillingID OPTIONAL,
+ -- O 6.5.2.94 f
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 f
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 g N.S.00013
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- O 6.5.2.160 e
+ winCapability [280] IMPLICIT WINCapability OPTIONAL,
+ -- O 6.5.2.di i
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- TransferToNumberRequest RETURN RESULT Parameters
+TransferToNumberRequestRes ::= [PRIVATE 18] SET {
+ digits-Destination [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) M 6.5.2.58 a
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 b
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 c
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 d
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 e
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 e
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 e, f
+ digits-Carrier [4] IMPLICIT Digits OPTIONAL,
+ -- (Carrier) O 6.5.2.58 g
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- O 6.5.2.ec d, e, p
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 h
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 h
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 h
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 h
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei k
+ groupInformation [163] GroupInformation OPTIONAL,
+ -- O 6.5.2.69 i
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 h
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 g
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 g, m
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 f
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 e
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 e, f
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 j
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 g
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de l
+ }
+
+-- 6.4.2.47 TrunkTest
+TrunkTest ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ seizureType [15] IMPLICIT SeizureType
+ -- M 6.5.2.115
+ }
+
+-- TrunkTest RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.48 TrunkTestDisconnect
+TrunkTestDisconnect ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID
+ -- M 6.5.2.72
+ }
+
+-- TrunkTestDisconnect RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.49 Unblocking
+Unblocking ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID
+ -- M 6.5.2.72
+ }
+
+-- Unblocking RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.50 UnreliableRoamerDataDirective
+UnreliableRoamerDataDirective ::= [PRIVATE 18] SET {
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (HLR) O 6.5.2.82 a
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL
+ -- O 6.5.2.116 b
+ }
+-- UnreliableRoamerDataDirective RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.51 UnsolicitedResponse
+UnsolicitedResponse ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Anchor) M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f
+ digits-Destination [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 a
+ extendedMSCID [53] IMPLICIT ExtendedMSCID OPTIONAL,
+ -- (Border MSC) O 6.5.2.64 a
+ extendedSystemMyTypeCode [54] IMPLICIT ExtendedSystemMyTypeCode OPTIONAL,
+ -- (Border MSC) O 6.5.2.65 a
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Border MSC) O 6.5.2.93 a, b
+ systemAccessType [34] IMPLICIT SystemAccessType OPTIONAL,
+ -- O 6.5.2.145 c
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+-- UnsolicitedResponse RETURN RESULT Parameters
+UnsolicitedResponseRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 a
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- (Originating) O 6.5.2.16 b
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw g, i
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 d
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 d
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 c
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 c
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- O 6.5.2.ec d, e, p
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 d
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 d
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 d
+ extendedMSCID [53] IMPLICIT ExtendedMSCID OPTIONAL,
+ -- (Originating MSC) O 6.5.2.64 e
+ extendedSystemMyTypeCode [54] IMPLICIT ExtendedSystemMyTypeCode OPTIONAL,
+ -- (Originating MSC) O 6.5.2.65 f
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- (Origination MSC) O 6.5.2.83 g
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 g
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Originating MSC) O 6.5.2.93 h
+ pilotBillingID [169] IMPLICIT PilotBillingID OPTIONAL,
+ -- O 6.5.2.94 g
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 g
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 g
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 d
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 c
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.by g, i
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 c
+ terminationTreatment [121] IMPLICIT TerminationTreatment OPTIONAL,
+ -- O 6.5.2.158 g
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 g
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de g
+ }
+
+-- N.S0010-0 v 1.0
+-- 6.4.2.e ParameterRequest
+ParameterRequest ::= [PRIVATE 18] SET {
+ requiredParametersMask [236] IMPLICIT RequiredParametersMask,
+ -- M 6.5.2.j
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 a
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bu b
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ --O 6.5.2.82 c
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL,
+ -- O 6.5.2.bl b
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- O 6.5.2.93 d
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 e
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL
+ -- O 6.5.2.147 f
+ }
+-- Table 6.4.2.e-2 ParameterRequest RETURN RESULT Parameters
+ParameterRequestRes ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 a
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu a
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 a
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 a
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL,
+ -- O 6.5.2.bl a
+ reasonList [218] IMPLICIT ReasonList OPTIONAL
+ -- O 6.5.2.aw
+ }
+
+-- 6.4.2.f TMSIDirective (N.S0005-0 v 1.0 Chapter 5, page 1
+TMSIDirective ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.bu
+ networkTMSIExpirationTime [234] IMPLICIT NetworkTMSIExpirationTime,
+ -- M 6.5.2.bm
+ newNetworkTMSI [235] IMPLICIT NewNetworkTMSI,
+ --M 6.5.2.bn
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.83 a
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL
+ -- O 6.5.2.bl
+ }
+
+--Table 6.4.2.f-2 TMSIDirective RETURN RESULT Parameters
+TMSIDirectiveRes ::= [PRIVATE 18] SET {
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 b
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 b
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 6.5.2.bu b
+ reasonList [218] IMPLICIT ReasonList OPTIONAL,
+ -- O 6.5.2.aw
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+
+--X.S0004-540-E v2.0 2.42 NumberPortabilityRequest
+-- 6.4.2.g NumberPortabilityRequest Updated with N.S0023-0 v 1.0
+NumberPortabilityRequest ::= [PRIVATE 18] SET {
+ digits [4] IMPLICIT Digits,
+ -- (Dialed) M 6.5.2.58
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv d
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 a
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 6.5.2.82 b
+ msid MSID OPTIONAL
+ -- (Originating) O 6.5.2.bv c
+ }
+
+NumberPortabilityRequestRes ::= [PRIVATE 18] SET {
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL
+ -- O 2.209
+ }
+
+-- 6.4.2.h ServiceRequest Updated with N.S0023-0 v 1.0
+
+ServiceRequest ::= [PRIVATE 18] SET {
+ serviceID [246] IMPLICIT ServiceID,
+ -- M 6.5.2.bz
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 c d
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv p
+ availabilityType [90] IMPLICIT AvailabilityType OPTIONAL,
+ -- O 6.5.2.15 c, e
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- O 6.5.2.16 a, f
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw a
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ --O 6.5.2.21 a 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 0 1 0 0 0 0 (0x50)
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ --O 6.5.2.22 b 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 0 1 0 0 0 1 (0x51)
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ --O 6.5.2.25 a 1 0 0 1 1 1 1 1 (0x9f)
+ -- 0 1 0 1 0 1 0 0 (0x54)
+
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 p
+ conditionallyDeniedReason [162] IMPLICIT ConditionallyDeniedReason OPTIONAL,
+ -- O 6.5.2.48 c, d
+ dataAccessElementList [250] IMPLICIT DataAccessElementList OPTIONAL,
+ -- O 6.5.2.cd c
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 q
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 a
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 c
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ej c, r
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 c, s
+ extendedMSCID [53] IMPLICIT ExtendedMSCID OPTIONAL,
+ -- O 6.5.2.64 c, t
+ featureIndicator [306] IMPLICIT FeatureIndicator OPTIONAL,
+ -- O 6.5.2.ej c, u
+ groupInformation [163] GroupInformation OPTIONAL,
+ -- O 6.5.2.69 c
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 c
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 c
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 c, g
+-- Removed MobileIdentificationNumber O 6.5.2.81 c
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Invoking) O 6.5.2.82 c, h
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- (Invoking) O 6.5.2.83 c, i
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bv p
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- O 6.5.2.93 i, j
+ pilotBillingID [169] IMPLICIT PilotBillingID OPTIONAL,
+ -- O 6.5.2.94 c
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 c
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 a
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.by a
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 a
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 a
+ redirectionReason [19] IMPLICIT RedirectionReason OPTIONAL,
+ -- O 6.5.2.110 a, c
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 v
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116 k
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 c
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL,
+ -- O 6.5.2.147 l
+ terminationAccessType [119] IMPLICIT TerminationAccessType OPTIONAL,
+ -- O 6.5.2.155 c
+ timeDateOffset [275] IMPLICIT TimeDateOffset OPTIONAL,
+ -- O 6.5.2.dd c, w
+ timeOfDay [309] IMPLICIT TimeOfDay OPTIONAL,
+ -- O 6.5.2.em c, x
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- O 6.5.2.160 m
+ triggerType [279] IMPLICIT TriggerType OPTIONAL,
+ -- O 6.5.2.dh n
+ winCapability [280] IMPLICIT WINCapability OPTIONAL
+ -- O 6.5.2.di o
+}
+
+-- ServiceRequest RETURN RESULT Parameters
+ServiceRequestRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 b
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 c
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 d
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 e
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw a
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 a
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 a
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 a
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 a
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 f
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, p
+ displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
+ -- O 6.5.2.ec d, e, p
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 a
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 a
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 a
+ dmh-ChargeInformation [311] IMPLICIT DMH-ChargeInformation OPTIONAL,
+ -- O 6.5.2.eo a, k
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 a
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei i
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 a
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 a
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 a
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 a
+ redirectingNumberString [101] IMPLICIT RedirectingNumberString OPTIONAL,
+ -- O 6.5.2.108 a
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 a
+ resumePIC [266] IMPLICIT ResumePIC OPTIONAL,
+ -- O 6.5.2.cu g
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 a
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 h
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de j
+
+}
+
+-- 6.4.2.i AnalyzedInformation Updated with N.S0023-0 v 1.0
+AnalyzedInformation ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16 a
+ digits [4] IMPLICIT Digits,
+ -- (Dialed) M 6.5.2.58
+ mscid [21] IMPLICIT MSCID,
+ -- (Originating) M 6.5.2.82 b
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 6.5.2.160
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh c
+ winCapability [280] IMPLICIT WINCapability,
+ -- M 6.5.2.di d
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv n
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw e, m
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 e
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 e
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 e
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 n, o
+ conferenceCallingIndicator [137] IMPLICIT ConferenceCallingIndicator OPTIONAL,
+ -- O 6.5.2.49 f
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 n, p
+ dmd-BillingIndicator [312] IMPLICIT DMH-BillingIndicator OPTIONAL,
+ -- O 6.5.2.ep y
+ dmh-ChargeInformation [311] IMPLICIT DMH-ChargeInformation OPTIONAL,
+ -- O 6.5.2.eo g, r
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 q
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 g, r
+ featureIndicator [306] IMPLICIT FeatureIndicator OPTIONAL,
+ -- O 6.5.2.ej s
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 h, t
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 i
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 g
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 j
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bv n
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 k
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 e
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.by b, m
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 e
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 n, u
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 h, v
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL,
+ -- O 6.5.2.147
+ terminationAccessType [119] IMPLICIT TerminationAccessType OPTIONAL,
+ -- O 6.5.2.155 l
+ timeDateOffset [275] IMPLICIT TimeDateOffset OPTIONAL,
+ -- O 6.5.2.dd w
+ timeOfDay [309] IMPLICIT TimeOfDay OPTIONAL
+ -- O 6.5.2.em x
+ }
+
+--AnalyzedInformation RETURN RESULT Parameters
+-- Analyzed Information Request
+AnalyzedInformationRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 b
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 c
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 d
+ conferenceCallingIndicator [137] IMPLICIT ConferenceCallingIndicator OPTIONAL,
+ -- O 6.5.2.49 e
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 f
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, m
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 g
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 g
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 g
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 h
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei n
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 i
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 j
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 d
+ resumePIC [266] IMPLICIT ResumePIC OPTIONAL,
+ -- O 6.5.2.cu k
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 d
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 l
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 d
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de d, o
+ }
+-- 6.4.2.j ConnectionFailureReport
+
+ConnectionFailureReport ::= [PRIVATE 18] SET {
+ failureType [260] IMPLICIT FailureType,
+ -- M 6.5.2.cn
+ failureCause [387] IMPLICIT FailureCause OPTIONAL
+ -- O 6.5.2.cm
+ }
+
+-- 6.4.2.k ConnectResource
+ConnectResource ::= [PRIVATE 18] SET {
+ destinationDigits [87] IMPLICIT DestinationDigits,
+ -- M 6.5.2.56
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 a
+ outingDigits [150] IMPLICIT RoutingDigits OPTIONAL
+ -- O 6.5.2.114 a
+ }
+
+-- 6.4.2.l DisconnectResource
+-- NO data
+--DisconnectResource ::= [PRIVATE 18] SET {
+-- }
+
+-- 6.4.2.m FacilitySelectedAndAvailable updated with N.S0023-0 v 1.0
+FacilitySelectedAndAvailable ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Serving) M 6.5.2.16
+ mscid [21] IMPLICIT MSCID,
+ -- (Serving) M 6.5.2.82
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 6.5.2.160
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh a
+ winCapability [280] IMPLICIT WINCapability,
+ -- M 6.5.2.di b
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw c, i
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 c
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 c
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 c
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 c
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 c
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d, e
+--MobileIdentificationNumber O 6.5.2.81 d
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 f
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bv d, j
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 g
+ pilotBillingID [169] IMPLICIT PilotBillingID OPTIONAL,
+ -- O 6.5.2.94 c
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 c
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 c
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 c
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.by c, i
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 c
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 c
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL,
+ -- O 6.5.2.147
+ terminationAccessType [119] IMPLICIT TerminationAccessType OPTIONAL
+ -- O 6.5.2.155 h
+ }
+
+-- FacilitySelectedAndAvailable RETURN RESULT Parameters
+
+FacilitySelectedAndAvailableRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 b
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 c
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, j
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 e
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 e
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 e
+ dmh-ChargeInformation [311] IMPLICIT DMH-ChargeInformation OPTIONAL,
+ -- O 6.5.2.eo e, l
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 e, f
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei k
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 g
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 h
+ resumePIC [266] IMPLICIT ResumePIC OPTIONAL,
+ -- O 6.5.2.cu i
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 d
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de d, l
+ }
+
+-- 6.4.2.n InstructionRequest
+-- InstructionRequest ::= [PRIVATE 18] SET {
+-- Length zero octets
+-- }
+
+-- InstructionRequest RETURN RESULT Parameters
+-- zero octets M 6.3.2.2
+
+-- 6.4.2.o Modify
+Modify ::= [PRIVATE 18] SET {
+ databaseKey [252] IMPLICIT DatabaseKey,
+ -- M 6.5.2.cf a
+ modificationRequestList [263] IMPLICIT ModificationRequestList
+ -- M 6.5.2.cq
+ }
+-- Modify RETURN RESULT Parameters
+ModifyRes ::= [PRIVATE 18] SET {
+ modificationResultList [264] IMPLICIT ModificationResultList
+ -- M 6.5.2.cs a
+ }
+
+-- 6.4.2.p ResetTimer
+-- NO data
+
+-- 6.4.2.q Search
+Search ::= [PRIVATE 18] SET {
+ databaseKey [252] IMPLICIT DatabaseKey,
+ -- M 6.5.2.cf a
+ serviceDataAccessElementList [271] IMPLICIT ServiceDataAccessElementList
+ --M 6.5.2.cz b
+ }
+
+-- Search RETURN RESULT Parameters
+SearchRes ::= [PRIVATE 18] SET {
+ serviceDataAccessElementList [271] IMPLICIT ServiceDataAccessElementList
+ -- M 6.5.2.cz a
+ }
+
+-- 6.4.2.r SeizeResource
+SeizeResource ::= [PRIVATE 18] SET {
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96
+ privateSpecializedResource [265] IMPLICIT PrivateSpecializedResource OPTIONAL,
+ --O 6.5.2.u a
+ specializedResource [274] IMPLICIT SpecializedResource OPTIONAL
+ --O 6.5.2.dc a
+ }
+
+-- SeizeResource RETURN RESULT Parameters
+SeizeResourceRes ::= [PRIVATE 18] SET {
+ destinationDigits [87] IMPLICIT DestinationDigits
+ -- M 6.5.2.56 a
+ }
+
+--6.4.2.s SRFDirective
+SRFDirective ::= [PRIVATE 18] SET {
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 a, d
+ digitCollectionControl [139] IMPLICIT DigitCollectionControl OPTIONAL,
+ -- O 6.5.2.57 b
+ executeScript [386] IMPLICIT ExecuteScript OPTIONAL,
+ -- O 6.5.2.cl c, d
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL
+ -- O 6.5.2.80 e
+ }
+-- SRFDirective RETURN RESULT Parameters
+SRFDirectiveRes ::= [PRIVATE 18] SET {
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 a, b
+ scriptResult [269] IMPLICIT ScriptResult OPTIONAL
+ -- O 6.5.2.cx c
+ }
+
+-- 6.4.2.t TBusy updated with N.S0023-0 v 1.0
+TBusy ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Invoking) M 6.5.2.16 a
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.82 b
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 6.5.2.160
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh c
+ winCapability [280] IMPLICIT WINCapability,
+ -- M 6.5.2.di d
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 e
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 e
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 e
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 f
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 f
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 f
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 h, i
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 h
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 b
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bv h
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 j
+ pilotBillingID [169] IMPLICIT PilotBillingID OPTIONAL,
+ -- O 6.5.2.94 f
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 f
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 g
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 e
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 e
+ redirectionReason [19] IMPLICIT RedirectionReason OPTIONAL,
+ --: TBusy O 6.5.2.110 f
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 g
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL,
+ -- O 6.5.2.147
+ terminationAccessType [119] IMPLICIT TerminationAccessType OPTIONAL
+ -- O 6.5.2.155 f
+ }
+
+
+-- TBusy RETURN RESULT Parameters
+
+TBusyRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 b
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 c
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 d, e
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 d, e
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 l
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, m
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 g
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 f
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 f
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei n
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 g
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 h
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 g
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 l, o
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 i
+ resumePIC [266] IMPLICIT ResumePIC OPTIONAL,
+ -- O 6.5.2.cu j
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 l
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 k
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 l
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de l
+ }
+-- 6.4.2.u TNoAnswer updated with N.S0023-0 v 1.0
+TNoAnswer ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Invoking) M 6.5.2.16 a
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.82 b
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 6.5.2.160
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh c
+ winCapability [280] IMPLICIT WINCapability,
+ -- M 6.5.2.di d
+ acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
+ -- O 6.5.2.fv
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 e
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 e
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 e
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 f
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 f
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 f
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 h, i
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 h
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 b
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bv h
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 j
+ pilotBillingID [169] IMPLICIT PilotBillingID OPTIONAL,
+ -- O 6.5.2.94 f
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 f
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 g
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 e
+ redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
+ -- O 6.5.2.109 e
+ redirectionReason [19] IMPLICIT RedirectionReason OPTIONAL,
+ --:TNoAnswer O 6.5.2.110 f
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 g
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL,
+ -- O 6.5.2.147
+ terminationAccessType [119] IMPLICIT TerminationAccessType OPTIONAL
+ -- O 6.5.2.155 f
+}
+-- TNoAnswer RETURN RESULT Parameters
+-- 6.4.2.u TNoAnswer
+TNoAnswerRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 b
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 c
+ callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
+ -- O 6.5.2.23 d, e
+ callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
+ -- O 6.5.2.24 d, e
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 l
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx d, e, m
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 f
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 f
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 f
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 f
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei n
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
+ -- O 6.5.2.69 g
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 h
+ pilotNumber [168] IMPLICIT PilotNumber OPTIONAL,
+ -- O 6.5.2.95 g
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 l, o
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 i
+ resumePIC [266] IMPLICIT ResumePIC OPTIONAL,
+ -- O 6.5.2.cu j
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 l
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 k
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 l
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de l, p
+}
+
+-- 6.4.2.x.1. ChangeFacilities N.S0008-0 v 1.0
+ChangeFacilities ::= [PRIVATE 18] SET {
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 f
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e b
+ dataKey [215] IMPLICIT DataKey OPTIONAL,
+ -- O 6.5.2.at f
+ dataPrivacyParameters [216] IMPLICIT DataPrivacyParameters OPTIONAL,
+ -- O 6.5.2.au i, f
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 c
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID OPTIONAL,
+ -- O 6.5.2.72 a, c
+ ilspInformation [217] IMPLICIT ISLPInformation OPTIONAL,
+ -- O 6.5.2.av d
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 c
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101 f
+-- SecondInterMSCCircuitID O 6.5.2.aj c, g
+ tdmaBandwidth [220] IMPLICIT TDMABandwidth OPTIONAL,
+ -- O 6.5.2.ay h
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i e
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL
+ -- O 6.5.2.167 f
+ }
+-- Table 6.4.2.x.1r ChangeFacilities RETURN RESULT Parameters
+
+ChangeFacilitiesRes ::= [PRIVATE 18] SET {
+ reasonList [218] IMPLICIT ReasonList OPTIONAL
+ -- O 6.5.2.aw a
+ }
+
+-- 6.4.2.x.2. ChangeService N.S0008-0 v 1.0
+ChangeService ::= [PRIVATE 18] SET {
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e a
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g b
+ changeServiceAttributes [214] IMPLICIT ChangeServiceAttributes OPTIONAL,
+ -- O 6.5.2.as c
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 d
+ ilspInformation [217] IMPLICIT ISLPInformation OPTIONAL,
+ -- O 6.5.2.av e
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.72 j
+ tdmaBandwidth [220] IMPLICIT TDMABandwidth OPTIONAL,
+ -- O 6.5.2.ay g
+ tdmaDataMode [222] IMPLICIT TDMADataMode OPTIONAL,
+ -- O 6.5.2.ba i
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i f
+ tdmaVoiceMode [223] IMPLICIT TDMAVoiceMode OPTIONAL
+ -- O 6.5.2.bb h
+ }
+
+-- ChangeService RETURN RESULT Parameters
+ChangeServiceRes ::= [PRIVATE 18] SET {
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 f
+ cdmaServiceConfigurationRecord [174] IMPLICIT CDMAServiceConfigurationRecord OPTIONAL,
+ -- O 6.5.2.e b
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g c
+ changeServiceAttributes [214] IMPLICIT ChangeServiceAttributes OPTIONAL,
+ -- O 6.5.2.as d
+ dataKey [215] IMPLICIT DataKey OPTIONAL,
+ -- O 6.5.2.au f
+ dataPrivacyParameters [216] IMPLICIT DataPrivacyParameters OPTIONAL,
+ -- O 6.5.2.au g, f
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101 f
+ reasonList [218] IMPLICIT ReasonList OPTIONAL,
+ -- O 6.5.2.aw a
+ tdmaServiceCode [178] IMPLICIT TDMAServiceCode OPTIONAL,
+ -- O 6.5.2.i e
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL
+ -- O 6.5.2.167 f
+ }
+
+
+-- 6.4.2.X MessageDirective
+MessageDirective ::= [PRIVATE 18] SET {
+ messageWaitingNotificationCount [92] IMPLICIT MessageWaitingNotificationCount,
+ -- O 6.5.2.78 a
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 b, c
+ msid MSID OPTIONAL
+ -- O 6.5.2.bv IS-751 b, c
+ }
+-- 6.4.2.X2 MessageDirective RETURN RESULT Parameters
+--zero octets
+
+-- 6.4.2.y BulkDisconnection
+BulkDisconnection ::= [PRIVATE 18] SET {
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.82
+ timeDateOffset [275] IMPLICIT TimeDateOffset OPTIONAL,
+ -- M 6.5.2.2 a
+ timeOfDay [309] IMPLICIT TimeOfDay OPTIONAL,
+ -- M 6.5.2.em b
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 c
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL
+ -- O 6.5.2.116 d
+ }
+
+-- BulkDisconnection RETURN RESULT Parameters
+-- Length zero octets M 6.3.2.2
+--BulkDisconnectionRes ::= [PRIVATE 18] SET {
+-- }
+
+
+-- 6.4.2.z CallControlDirective
+CallControlDirective ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- M 6.5.2.16 a
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.82 b
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv c
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 d
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 e
+ displayText [244] IMPLICIT DisplayText OPTIONAL,
+ -- O 6.5.2.bx f
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 g
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 g
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 g
+ dmh-ChargeInformation [311] IMPLICIT DMH-ChargeInformation OPTIONAL,
+ -- O 6.5.2.eo g, o
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 g, h
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 i, j
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 k
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 l, m
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 k
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de h
+}
+
+-- z-2 CallControlDirective RETURN RESULT Parameters
+CallControlDirectiveRes ::= [PRIVATE 18] SET {
+ callStatus [310] IMPLICIT CallStatus OPTIONAL
+ -- O 6.5.2.en a
+
+ }
+
+-- 6.4.2.aa OAnswer
+OAnswer ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16 a
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- M 6.5.2.63 b
+ mscid [21] IMPLICIT MSCID,
+ -- (Originating) M 6.5.2.82 c
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv d
+ timeDateOffset [275] IMPLICIT TimeDateOffset,
+ -- M 6.5.2.dd e
+ timeOfDay [309] IMPLICIT TimeOfDay,
+ -- M 6.5.2.em f
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh g
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 h, i
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 j
+ featureIndicator [306] IMPLICIT FeatureIndicator OPTIONAL,
+ -- O 6.5.2.ej k
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 l
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 h, m
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL
+ -- O 6.5.2.147
+ }
+
+
+--6.4.2.ab ODisconnect
+ODisconnect ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16 a
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- M 6.5.2.63 b
+ mscid [21] IMPLICIT MSCID,
+ -- (Originating) M 6.5.2.82 c
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv d
+ releaseCause [308] IMPLICIT ReleaseCause OPTIONAL,
+ -- M 6.5.2.el e
+ timeDateOffset [275] IMPLICIT TimeDateOffset OPTIONAL,
+ -- M 6.5.2.dd f
+ timeOfDay [309] IMPLICIT TimeOfDay,
+ -- M 6.5.2.em g
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 6.5.2.160
+ winCapability [280] IMPLICIT WINCapability,
+ -- M 6.5.2.di
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh h
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 i, j
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 k
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 l
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 i, m
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL
+ -- O 6.5.2.147
+}
+
+-- ab-2 ODisconnect RETURN RESULT Parameters
+ODisconnectRes ::= [PRIVATE 18] SET {
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 a
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL
+ -- O 6.5.2.ei b
+ }
+-- 6.4.2.ac CallRecoveryReport
+
+CallRecoveryReport ::= [PRIVATE 18] SET {
+ callRecoveryIDList [304] IMPLICIT CallRecoveryIDList
+ -- M 6.5.2.eh a
+ }
+
+-- ac-2 CallRecoveryReport RETURN RESULT Parameters
+--CallRecoveryReportRes ::= [PRIVATE 18] SET {
+-- }
+
+-- 6.4.2.ad TAnswer
+TAnswer ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16 a
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- M 6.5.2.63 b
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.82 c
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv b
+ timeDateOffset [275] IMPLICIT TimeDateOffset OPTIONAL,
+ -- M 6.5.2.dd d
+ timeOfDay [309] IMPLICIT TimeOfDay,
+ -- M 6.5.2.em e
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 6.5.2.160
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh f
+ winCapability [280] IMPLICIT WINCapability,
+ -- M 6.5.2.di
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 g, h
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 i
+ featureIndicator [306] IMPLICIT FeatureIndicator OPTIONAL,
+ -- O 6.5.2.ej j
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 k
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 g, l
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL,
+ -- O 6.5.2.147
+ terminationAccessType [119] IMPLICIT TerminationAccessType OPTIONAL
+ -- O 6.5.2.155 m
+ }
+-- 6.4.2.ae TDisconnect
+TDisconnect ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16 a
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- M 6.5.2.63 b
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.82 c
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv d
+ timeDateOffset [275] IMPLICIT TimeDateOffset OPTIONAL,
+ -- M 6.5.2.dd e
+ timeOfDay [309] IMPLICIT TimeOfDay,
+ -- M 6.5.2.em f
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh g
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 n
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 n
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 h, i
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 j
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 k
+ releaseCause [308] IMPLICIT ReleaseCause OPTIONAL,
+ -- O 6.5.2.el l
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 h, m
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode OPTIONAL
+ -- O 6.5.2.147
+ }
+
+-- Table ae-2 TDisconnect RETURN RESULT Parameters
+TDisconnectRes ::= [PRIVATE 18] SET {
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL
+ -- O 6.5.2.ei a
+ }
+
+-- 6.4.2.af UnreliableCallData
+UnreliableCallData ::= [PRIVATE 18] SET {
+ controlNetworkID [307] IMPLICIT ControlNetworkID,
+ -- M 6.5.2.ek a
+ mscid [21] IMPLICIT MSCID
+ -- M 6.5.2.82 b
+}
+
+-- UnreliableCallData RETURN RESULT Parameters
+--UnreliableCallData ::= [PRIVATE 18] SET {
+--
+--}
+
+-- 6.4.2.ag OCalledPartyBusy
+
+OCalledPartyBusy ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- M 6.5.2.63 a
+ mscid [21] IMPLICIT MSCID,
+ -- (Originating MSC) M 6.5.2.82
+ msid MSID,
+ -- M 6.5.2.bv b
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 6.5.2.160
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh
+ winCapability [280] IMPLICIT WINCapability,
+ -- M 6.5.2.di
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw c
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 c
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 c
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 d
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 e
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 d
+ failureCause [387] IMPLICIT FailureCause OPTIONAL,
+ -- O 6.5.2.cm f
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 d, g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 h
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 i
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Originating MSC) O 6.5.2.93 j
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.114 c
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.114 c
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 d
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL
+ -- O 6.5.2.117 d, k
+ }
+
+-- OCalledPartyBusy RETURN RESULT Parameters
+OCalledPartyBusyRes ::= [PRIVATE 18] SET {
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 a
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 b
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 c
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 e
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 e
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 e
+ dmh-ChargeInformation [311] IMPLICIT DMH-ChargeInformation OPTIONAL,
+ -- O 6.5.2.eo e, d
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 e, f
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei g
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 h
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 i
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 c, j
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 k
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 c
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 l
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de m
+ }
+
+-- 6.4.2.ah ONoAnswer
+ONoAnswer ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- (Originating) M 6.5.2.16
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- M 6.5.2.63 a
+ mscid [21] IMPLICIT MSCID,
+ -- (Originating MSC) M 6.5.2.82
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv b
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 6.5.2.160
+ triggerType [279] IMPLICIT TriggerType,
+ -- M 6.5.2.dh
+ winCapability [280] IMPLICIT WINCapability,
+ -- M 6.5.2.di
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw c
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 c
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 c
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 d
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 e
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 d
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 d, f
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 g
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 h
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Originating MSC) O 6.5.2.93 i
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.114 c
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.114 c
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 d
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL
+ -- O 6.5.2.117 d, j
+ }
+
+-- ONoAnswer RETURN RESULT Parameters
+ONoAnswerRes ::= [PRIVATE 18] SET {
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 a
+ announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
+ -- O 6.5.2.6 b
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 c
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 e
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 e
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 e
+ dmh-ChargeInformation [311] IMPLICIT DMH-ChargeInformation OPTIONAL,
+ -- O 6.5.2.eo e, d
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
+ -- O 6.5.2.62 e, f
+ dmh-ServiceID [305] IMPLICIT DMH-ServiceID OPTIONAL,
+ -- O 6.5.2.ei g
+ noAnswerTime [96] IMPLICIT NoAnswerTime OPTIONAL,
+ -- O 6.5.2.87 h
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 i
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 c, j
+ redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
+ -- O 6.5.2.107 k
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 c
+ terminationList [120] IMPLICIT TerminationList OPTIONAL,
+ -- O 6.5.2.156 l
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL
+ -- O 6.5.2.de m
+ }
+
+-- 6.4.2.ai PositionRequest
+PositionRequest ::= [PRIVATE 18] SET {
+ mscid [21] IMPLICIT MSCID,
+ -- (Requesting) M 6.5.2.82 a
+ positionInformationCode [315] IMPLICIT PositionInformationCode,
+ -- M 6.5.2.er b
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 c
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d, e
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bv c, e
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL
+ -- O 6.5.2.116 f
+ }
+
+-- PositionRequest RETURN RESULT Parameters
+PositionRequestRes ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 a, b
+ extendedMSCID [53] IMPLICIT ExtendedMSCID OPTIONAL,
+ -- O 6.5.2.64 c, d
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- (Serving MSC) O 6.5.2.83 a, d, e, f
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 g, d, h
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bv a, b
+ mSStatus [313] IMPLICIT MSStatus OPTIONAL,
+ -- O 6.5.2.eq i, d
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Serving MSC) O 6.5.2.93 a, d, e, f
+ pSID-RSIDInformation [202] IMPLICIT PSID-RSIDInformation OPTIONAL,
+ -- O 6.5.2.f j, a, d
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 k, a, d
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL
+ -- O 6.5.2.117 l, a, d
+ }
+
+
+-- 6.4.2.aj PositionRequestForward
+PositionRequestForward ::= [PRIVATE 18] SET {
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ positionInformationCode [315] IMPLICIT PositionInformationCode,
+ -- M 6.5.2.er a
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.bu b
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu c, d
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL
+ -- O 6.5.2.81 c, d
+ }
+
+-- PositionRequestForward RETURN RESULT Parameters
+PositionRequestForwardRes ::= [PRIVATE 18] SET {
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 a
+ mSStatus [313] IMPLICIT MSStatus OPTIONAL,
+ -- O 6.5.2.eq b
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 6.5.2.77 c, d
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL
+ -- O 6.5.2.117 c, e
+ }
+
+-- J-STD-036-AD-2
+CallTerminationReport ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- O 6.5.2.16 a
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 b, c
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL
+ -- O 6.5.2.117 c
+}
+
+-- 6.4.2.am GeoPositionRequest (See J-STD-036, page 8-7) X.S0002-0 v2.0
+GeoPositionRequest ::= [PRIVATE 18] SET {
+ positionRequestType [337] IMPLICIT PositionRequestType,
+ -- M 6.5.2.fs
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- O 6.5.2.16 h
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 b
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu b
+ lcsBillingID [367] IMPLICIT LCSBillingID OPTIONAL,
+ -- O 6.5.2.gx i
+ lcs-Client-ID [358] IMPLICIT LCS-Client-ID OPTIONAL,
+ -- O 6.5.2.go b
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O 6.5.2.hv b
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 b
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm a
+-- Mobinfo_AMPS **Macro** O 6.5.2.fn f expanded
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.47
+ dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+ receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+-- Mobinfo_CDMA **Macro** O 6.5.2.fo g expanded:
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 c
+ cdmaCodeChannel [68] IMPLICIT CDMACodeChannel OPTIONAL,
+ -- O 6.5.2.31 a
+ cdmaMobileCapabilities [330] IMPLICIT CDMAMobileCapabilities OPTIONAL,
+ -- O 6.5.2.xx a
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 a
+ cdmaServingOneWayDelay2 [347] IMPLICIT CDMAServingOneWayDelay2 OPTIONAL,
+ -- O 6.5.2.gd a
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f m
+ cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
+ -- O 6.5.2.43 g
+ cdmaPSMMList [346] IMPLICIT CDMAPSMMList OPTIONAL,
+ -- O 6.5.2.gc a
+
+-- Mobinfo_NAMPS **Macro** O 6.5.2.fp e expanded:
+-- channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.47
+ nampsChannelData [76] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.86
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+-- Mobinfo_TDMA **Macro** O 6.5.2.fq d expanded:
+ tdmaChannelData [28] IMPLICIT TDMAChannelData,
+ -- M 6.5.2.153
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+ targetMeasurementList [157] IMPLICIT TargetMeasurementList OPTIONAL,
+ -- O 6.5.2.150 a
+ tdma-MAHO-CELLID [359] IMPLICIT TDMA-MAHO-CELLID OPTIONAL,
+ -- O 2.3.2.26 b
+ tdma-MAHO-CHANNEL [360] IMPLICIT TDMA-MAHO-CHANNEL OPTIONAL,
+ -- O 2.3.2.27 c
+ tdma-TimeAlignment [362] IMPLICIT TDMA-TimeAlignment OPTIONAL,
+ -- O 2.3.2.29 d
+ tdmaVoiceMode [223] IMPLICIT TDMAVoiceMode OPTIONAL,
+ -- O ANSI-41-E a
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 a
+
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 b
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL,
+ -- O 6.5.2.bl b
+-- PositionQualityOfService O 6.5.2.hc j MACRO expanded:
+ pqos-HorizontalPosition [372] IMPLICIT PQOS-HorizontalPosition OPTIONAL,
+ -- O 6.5.2.hd a, b
+ pqos-HorizontalVelocity [373] IMPLICIT PQOS-HorizontalVelocity OPTIONAL,
+ -- O 6.5.2.he c
+ pqos-MaximumPositionAge [374] IMPLICIT PQOS-MaximumPositionAge OPTIONAL,
+ -- O 6.5.2.hf d
+ pqos-PositionPriority [375] IMPLICIT PQOS-PositionPriority OPTIONAL,
+ -- O 6.5.2.hg e
+ pqos-ResponseTime [376] IMPLICIT PQOS-ResponseTime OPTIONAL,
+ -- O 6.5.2.hh f
+ pqos-VerticalPosition [377] IMPLICIT PQOS-VerticalPosition OPTIONAL,
+ -- O 6.5.2.hi g
+ pqos-VerticalVelocity [378] IMPLICIT PQOS-VerticalVelocity OPTIONAL,
+ -- O 6.5.2.hj h
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 b
+ teleservice-Priority [290] IMPLICIT Teleservice-Priority OPTIONAL
+ -- O 6.5.2.dt c
+}
+
+-- 6.4.2.an InterSystemPositionRequest
+InterSystemPositionRequest ::= [PRIVATE 18] SET {
+ positionRequestType [337] IMPLICIT PositionRequestType,
+ -- M 6.5.2.fs
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 o
+ cdmaPSMMCount [345] IMPLICIT CDMAPSMMCount OPTIONAL,
+ -- O 6.5.2.gbh
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 j
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 d
+ emergencyServicesRoutingDigits [239] IMPLICIT EmergencyServicesRoutingDigits OPTIONAL,
+ -- O 6.5.2.bs d, f
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu d
+ lcsBillingID [367] IMPLICIT LCSBillingID OPTIONAL,
+ -- O 6.5.2.gx k
+ lirAuthorization [368] IMPLICIT LIRAuthorization OPTIONAL,
+ -- O 6.5.2.gy l
+ lcs-Client-ID [358] IMPLICIT LCS-Client-ID OPTIONAL,
+ -- O 6.5.2.go d
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O 6.5.2.hv d
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 d
+-- MobInfo_AMPS **Macro** O 6.5.2.fn b, p f expanded:
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.47
+ dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+ receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+
+-- Mobinfo_CDMA **Macro** O 6.5.2.fo a, p f
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 c
+ cdmaCodeChannel [68] IMPLICIT CDMACodeChannel OPTIONAL,
+ -- O 6.5.2.31 a
+ cdmaMobileCapabilities [330] IMPLICIT CDMAMobileCapabilities OPTIONAL,
+ -- O 6.5.2.xx a
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 a
+ cdmaServingOneWayDelay2 [347] IMPLICIT CDMAServingOneWayDelay2 OPTIONAL,
+ -- O 6.5.2.gd a
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f m
+ cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
+ -- O 6.5.2.43 g
+ cdmaPSMMList [346] IMPLICIT CDMAPSMMList OPTIONAL,
+ -- O 6.5.2.gc a
+
+-- Mobinfo_NAMPS **Macro** O 6.5.2.fp c, p f expanded:
+-- channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.47
+ nampsChannelData [76] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.86
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+-- Mobinfo_TDMA **Macro** O 6.5.2.fq g, p f expanded:
+ tdmaChannelData [28] IMPLICIT TDMAChannelData,
+ -- M 6.5.2.153
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+ targetMeasurementList [157] IMPLICIT TargetMeasurementList OPTIONAL,
+ -- O 6.5.2.150 a
+ tdma-MAHO-CELLID [359] IMPLICIT TDMA-MAHO-CELLID OPTIONAL,
+ -- O 2.3.2.26 b
+ tdma-MAHO-CHANNEL [360] IMPLICIT TDMA-MAHO-CHANNEL OPTIONAL,
+ -- O 2.3.2.27 c
+ tdma-TimeAlignment [362] IMPLICIT TDMA-TimeAlignment OPTIONAL,
+ -- O 2.3.2.29 d
+ tdmaVoiceMode [223] IMPLICIT TDMAVoiceMode OPTIONAL,
+ -- O ANSI-41-E a
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 a
+
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm e, f
+ mpcAddress [370] IMPLICIT MPCAddress OPTIONAL,
+ -- O 6.5.2.ha s, u
+ mpcAddressList [381] IMPLICIT MPCAddressList OPTIONAL,
+ -- O 6.5.2.hm t, u
+ mpcid [371] IMPLICIT MPCID OPTIONAL,
+ -- O 6.5.2.hb m
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 q f
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL,
+ -- O 6.5.2.bl d
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- (Serving MSC) O 6.5.2.93 r
+-- PositionQualityOfService O 6.5.2.hc n MACRO expanded:
+ pqos-HorizontalPosition [372] IMPLICIT PQOS-HorizontalPosition OPTIONAL,
+ -- O 6.5.2.hd a, b
+ pqos-HorizontalVelocity [373] IMPLICIT PQOS-HorizontalVelocity OPTIONAL,
+ -- O 6.5.2.he c
+ pqos-MaximumPositionAge [374] IMPLICIT PQOS-MaximumPositionAge OPTIONAL,
+ -- O 6.5.2.hf d
+ pqos-PositionPriority [375] IMPLICIT PQOS-PositionPriority OPTIONAL,
+ -- O 6.5.2.hg e
+ pqos-ResponseTime [376] IMPLICIT PQOS-ResponseTime OPTIONAL,
+ -- O 6.5.2.hh f
+ pqos-VerticalPosition [377] IMPLICIT PQOS-VerticalPosition OPTIONAL,
+ -- O 6.5.2.hi g
+ pqos-VerticalVelocity [378] IMPLICIT PQOS-VerticalVelocity OPTIONAL,
+ -- O 6.5.2.hj h
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL,
+ -- O 6.5.2.117 p f
+ tdma-MAHORequest [364] IMPLICIT TDMA-MAHORequest OPTIONAL
+ -- O 6.5.2.gu
+}
+
+-- InterSystemPositionRequest RETURN RESULT Parameters
+InterSystemPositionRequestRes ::= [PRIVATE 18] SET {
+ positionResult [338] IMPLICIT PositionResult,
+ -- M 6.5.2.ft
+ lcsBillingID [367] IMPLICIT LCSBillingID OPTIONAL,
+ -- O 6.5.2.gx i
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm e
+-- MobInfo_AMPS **Macro** O 6.5.2.fn c, e expanded:
+ channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.47
+ dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+ receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+-- MobInfo_CDMA **Macro** O 6.5.2.fo b, e expanded:
+ cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 c
+ cdmaCodeChannel [68] IMPLICIT CDMACodeChannel OPTIONAL,
+ -- O 6.5.2.31 a
+ cdmaMobileCapabilities [330] IMPLICIT CDMAMobileCapabilities OPTIONAL,
+ -- O 6.5.2.xx a
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 a
+ cdmaServingOneWayDelay2 [347] IMPLICIT CDMAServingOneWayDelay2 OPTIONAL,
+ -- O 6.5.2.gd a
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f m
+ cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
+ -- O 6.5.2.43 g
+ cdmaPSMMList [346] IMPLICIT CDMAPSMMList OPTIONAL,
+ -- O 6.5.2.gc a
+
+-- MobInfo_NAMPS **Macro** O 6.5.2.fp g, e expended:
+-- channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.47
+ nampsChannelData [76] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.86
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+
+-- MobInfo_TDMA **Macro** O 6.5.2.fq a, e
+ tdmaChannelData [28] IMPLICIT TDMAChannelData,
+ -- M 6.5.2.153
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+ targetMeasurementList [157] IMPLICIT TargetMeasurementList OPTIONAL,
+ -- O 6.5.2.150 a
+ tdma-MAHO-CELLID [359] IMPLICIT TDMA-MAHO-CELLID OPTIONAL,
+ -- O 2.3.2.26 b
+ tdma-MAHO-CHANNEL [360] IMPLICIT TDMA-MAHO-CHANNEL OPTIONAL,
+ -- O 2.3.2.27 c
+ tdma-TimeAlignment [362] IMPLICIT TDMA-TimeAlignment OPTIONAL,
+ -- O 2.3.2.29 d
+ tdmaVoiceMode [223] IMPLICIT TDMAVoiceMode OPTIONAL,
+ -- O ANSI-41-E a
+ voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 a
+
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 f
+ positionInformation [336] IMPLICIT PositionInformation OPTIONAL,
+ -- O 6.5.2.fr h
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL
+ -- O 6.5.2.117 d
+}
+-- 6.4.2.ao InterSystemPositionRequestForward
+InterSystemPositionRequestForward ::= [PRIVATE 18] SET {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- M 6.5.2.63
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ positionRequestType [337] IMPLICIT PositionRequestType,
+ -- M 6.5.2.fs
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu a
+ lcsBillingID [367] IMPLICIT LCSBillingID OPTIONAL,
+ -- O 6.5.2.gx d
+ lcs-Client-ID [358] IMPLICIT LCS-Client-ID OPTIONAL,
+ -- O 6.5.2.go a
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O 6.5.2.hv a
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 a
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm b
+ mpcid [371] IMPLICIT MPCID OPTIONAL,
+ -- O 6.5.2.hb d
+-- PositionQualityOfService O 6.5.2.hc d MACRO expanded:
+ pqos-HorizontalPosition [372] IMPLICIT PQOS-HorizontalPosition OPTIONAL,
+ -- O 6.5.2.hd a, b
+ pqos-HorizontalVelocity [373] IMPLICIT PQOS-HorizontalVelocity OPTIONAL,
+ -- O 6.5.2.he c
+ pqos-MaximumPositionAge [374] IMPLICIT PQOS-MaximumPositionAge OPTIONAL,
+ -- O 6.5.2.hf d
+ pqos-PositionPriority [375] IMPLICIT PQOS-PositionPriority OPTIONAL,
+ -- O 6.5.2.hg e
+ pqos-ResponseTime [376] IMPLICIT PQOS-ResponseTime OPTIONAL,
+ -- O 6.5.2.hh f
+ pqos-VerticalPosition [377] IMPLICIT PQOS-VerticalPosition OPTIONAL,
+ -- O 6.5.2.hi g
+ pqos-VerticalVelocity [378] IMPLICIT PQOS-VerticalVelocity OPTIONAL,
+ -- O 6.5.2.hj h
+ tdma-MAHORequest [364] IMPLICIT TDMA-MAHORequest OPTIONAL
+ -- O 6.5.2.gu c
+}
+--InterSystemPositionRequestForward RETURN RESULT Parameters
+InterSystemPositionRequestForwardRes ::= [PRIVATE 18] SET {
+ mscid [21] IMPLICIT MSCID,
+ -- (Serving) M 6.5.2.82
+ positionResult [338] IMPLICIT PositionResult,
+ -- M 6.5.2.ft
+ lcsBillingID [367] IMPLICIT LCSBillingID OPTIONAL,
+ -- O 6.5.2.gx b
+ positionInformation [336] IMPLICIT PositionInformation OPTIONAL,
+ -- O 6.5.2.fr a
+ servingCellID [2] IMPLICIT ServingCellID OPTIONAL
+ -- O 6.5.2.117
+}
+
+-- 6.4.2.ap ACGDirective
+ACGDirective ::= [PRIVATE 18] SET {
+ controlType [341] IMPLICIT ControlType,
+ -- M 6.5.2.fw a
+ destinationAddress DestinationAddress OPTIONAL,
+ --M 6.5.2.cc b
+ gapDuration [342] IMPLICIT GapDuration OPTIONAL,
+ -- O 6.5.2.fx c, e
+ gapInterval GapInterval OPTIONAL
+ -- O 6.5.2.fy d, e
+
+}
+
+-- 6.4.2.aq RoamerDatabaseVerificationRequest
+
+RoamerDatabaseVerificationRequest ::= [PRIVATE 18] SET {
+ invokingNEType [353] IMPLICIT InvokingNEType OPTIONAL,
+ -- O 6.5.2.gj g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 e, f
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (HLR) O 6.5.2.82 a
+ msid MSID OPTIONAL,
+ -- O 6.5.2.bv b, f
+ range [352] IMPLICIT Range OPTIONAL
+ -- O 6.5.2.gj c, d
+ }
+
+-- RoamerDatabaseVerificationRequest RETURN RESULT Parameters
+RoamerDatabaseVerificationRequestRes ::= [PRIVATE 18] SET {
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL
+ -- O 6.5.2.160
+ }
+
+-- 6.4.2.au LCSParameterRequest
+LCSParameterRequest ::= [PRIVATE 18] SET {
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 a
+ mpcid [371] IMPLICIT MPCID OPTIONAL,
+ -- O 6.5.2.hbb
+ msid MSID OPTIONAL
+ -- O 6.5.2.bv a
+}
+-- LCSParameterRequest RETURN RESULT Parameters
+LCSParameterRequestRes ::= [PRIVATE 18] SET {
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 b
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu b, c
+ meid [390] IMPLICIT MEID OPTIONAL,
+ -- O 6.5.2.hv j
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 b, c
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 b, c
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm d
+ mpcAddress [370] IMPLICIT MPCAddress OPTIONAL,
+ -- O 6.5.2.ha e, g
+ mpcAddressList [381] IMPLICIT MPCAddressList OPTIONAL,
+ -- O 6.5.2.hm f, g
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 h
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL
+ -- (Serving MSC) O 6.5.2.93
+}
+
+-- 3.2.2.1 CheckMEID (new) X.S0002-0 v1.0
+
+CheckMEID ::= [PRIVATE 18] SET {
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) M 6.5.2.58 a
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- M 6.5.2.72
+ msid MSID OPTIONAL,
+ -- M 6.5.2.bv b
+ confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
+ -- O 6.5.2.50 c
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63
+ emergencyServicesRoutingDigits [239] IMPLICIT EmergencyServicesRoutingDigits OPTIONAL
+ -- O 6.5.bs d
+}
+
+-- CheckMEID RETURN RESULTParameters
+CheckMEIDRes ::= [PRIVATE 18] SET {
+ meidStatus [391] IMPLICIT MEIDStatus OPTIONAL
+ -- M 3.3.2.97 a
+}
+-- 6.4.2.ar AddService N.S0029-0 v1.0
+
+AddService ::= [PRIVATE 18] SET {
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- M 6.5.2.aq IS-737 a
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g TSB76 b
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) O 6.5.2.58 d, e
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID OPTIONAL,
+ -- O 6.5.2.72 f
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu IS-751 c
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL
+ -- O 6.5.2.81 c
+ }
+-- Table ar3 AddService RETURN RESULT Parameters
+
+AddServiceRes ::= [PRIVATE 18] SET {
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq IS-737 a
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ --O 6.5.2.g TSB76 b
+ qosPriority [348] IMPLICIT QoSPriority OPTIONAL,
+ -- O 6.5.2.ge c
+ reasonList [218] IMPLICIT ReasonList OPTIONAL
+ -- O 6.5.2.aw IS-737 d
+-- SpecialHandling O 6.5.2.bt J-STD-034 e
+ }
+
+-- 6.4.2.as DropService N.S0029-0 v1.0
+DropService ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID,
+ -- O 6.5.2.16 a
+ cdmaConnectionReferenceList [212] IMPLICIT CDMAConnectionReferenceList OPTIONAL,
+ -- O 6.5.2.aq IS-737 b
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ -- O 6.5.2.72 c
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bu IS-751 d
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 d
+ releaseReason [10] IMPLICIT ReleaseReason OPTIONAL
+ -- O 6.5.2.111 e
+ }
+-- Table as3 DropService RETURN RESULT Parameters
+DropServiceRes ::= [PRIVATE 18] SET {
+ billingID [1] IMPLICIT BillingID OPTIONAL
+ -- O 6.5.2.16 a
+ }
+
+-- 6.4.2.ay PositionEventNotification
+PositionEventNotification ::= [PRIVATE 18] SET {
+ positionResult [338] IMPLICIT PositionResult,
+ -- M 6.5.2.ft a
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 6.5.2.bj c, d
+ lcsBillingID [367] IMPLICIT LCSBillingID OPTIONAL,
+ -- O 6.5.2.gx b
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL
+ -- O 6.5.2.81 c, d
+}
+-- PositionEventNotification RETURN RESULT Parameters
+-- zero octets
+
+-- 6.4.2.CC OTASPRequest
+OTASPRequest ::= [PRIVATE 18] SET {
+ actionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 a
+ aKeyProtocolVersion [181] IMPLICIT AKeyProtocolVersion OPTIONAL,
+ -- O 6.5.2.lB b
+ authenticationData [161] IMPLICIT AuthenticationData OPTIONAL,
+ -- O 6.5.2.9 c
+ authenticationResponse [35] IMPLICIT AuthenticationResponse OPTIONAL,
+ -- O 6.5.2.10 c
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 c
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 d
+ msid MSID OPTIONAL,
+ -- O 6.5.2.81 e, d
+ mobileStationMSID MobileStationMSID OPTIONAL,
+ -- O 6.5.2.oC f
+ mobileStationPartialKey [185] IMPLICIT MobileStationPartialKey OPTIONAL,
+ -- O 6.5.2.pB g
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 6.5.2.64 h
+ newlyAssignedMSID NewlyAssignedMSID OPTIONAL,
+ --O 6.5.2.rB i
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101 c
+ randomVariableBaseStation [41] IMPLICIT RandomVariableBaseStation,
+ -- O 6.5.2.102 m
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB j
+ systemCapabilities [49] IMPLICIT SystemCapabilities OPTIONAL,
+ -- O 6.5.2.146 k
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 6.5.2.154
+ meid [390] IMPLICIT MEID OPTIONAL
+ -- O
+ }
+-- Table 6.4.2.CCy OTASPRequest RETURN RESULT Parameters
+OTASPRequestRes ::= [PRIVATE 18] SET {
+ aKeyProtocolVersion [181] IMPLICIT AKeyProtocolVersion OPTIONAL,
+ -- O 6.5.2.lB a
+ authenticationResponseBaseStation [36] IMPLICIT AuthenticationResponseBaseStation OPTIONAL,
+ -- O 6.5.2.11 g
+ baseStationPartialKey [183] IMPLICIT BaseStationPartialKey OPTIONAL,
+ -- O 6.5.2.nB b
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 c
+ modulusValue [186] IMPLICIT ModulusValue OPTIONAL,
+ -- O 6.5.2.qB b
+ otasp-ResultCode [189] IMPLICIT OTASP-ResultCode OPTIONAL,
+ -- O 6.5.2.sB d
+ primitiveValue [190] IMPLICIT PrimitiveValue OPTIONAL,
+ -- O 6.5.2.tB b
+ signalingMessageEncryptionReport [194] IMPLICIT SignalingMessageEncryptionReport OPTIONAL,
+ -- O 6.5.2.xB e
+ ssdUpdateReport [156] IMPLICIT SSDUpdateReport OPTIONAL,
+ -- O 6.5.2.142 f
+ uniqueChallengeReport [124] IMPLICIT UniqueChallengeReport OPTIONAL,
+ -- O 6.5.2.162 f
+ voicePrivacyReport [196] IMPLICIT VoicePrivacyReport OPTIONAL
+ -- O 6.5.2.zB e
+ }
+
+-- 3.2.2.2 StatusRequest (new) X.S0008-0 v1.0
+StatusRequest ::= [PRIVATE 18] SET {
+ msid MSID,
+ -- M 2.153 a
+ record-Type [392] IMPLICIT Record-Type
+ -- M 3.3.2.2 b
+}
+
+-- StatusRequest RETURN RESULT Parameters
+StatusRequestRes ::= [PRIVATE 18] SET {
+ information-Record [389] IMPLICIT Information-Record OPTIONAL
+ -- O 3.3.2.2
+}
+
+-- 2.35 InterSystemSMSDeliveryPointToPoint
+InterSystemSMSDeliveryPointToPoint ::= [PRIVATE 18] SET {
+ sms-BearerData [105] IMPLICIT SMS-BearerData,
+ -- M 2.233
+ sms-TeleserviceIdentifier [116] IMPLICIT SMS-TeleserviceIdentifier,
+ -- M 2.246
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 2.127 a
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 2.140 a
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 2.228 b
+ sms-MessageCount [108] IMPLICIT SMS-MessageCount OPTIONAL,
+ -- O 2.237 c
+ sms-OriginalOriginatingAddress [112] IMPLICIT SMS-OriginalOriginatingAddress OPTIONAL,
+ -- O 2.242 d
+ sms-OriginalOriginatingSubaddress [113] IMPLICIT SMS-OriginalOriginatingSubaddress OPTIONAL
+ -- O 2.243 e
+}
+InterSystemSMSDeliveryPointToPointRes ::= [PRIVATE 18] SET {
+ sms-BearerData [105] IMPLICIT SMS-BearerData OPTIONAL,
+ -- O 2.233 a
+ sms-CauseCode [153] IMPLICIT SMS-CauseCode OPTIONAL
+ -- O 2.234 b
+}
+-- 2.36 InterSystemSMSPage X.S0004-540-E v2.0
+InterSystemSMSPage ::= [PRIVATE 18] SET {
+ sms-BearerData [105] IMPLICIT SMS-BearerData,
+ -- M 2.236
+ sms-TeleserviceIdentifier [116] IMPLICIT SMS-TeleserviceIdentifier,
+ -- M 2.249
+ cdma2000MobileSupportedCapabilities [321] IMPLICIT CDMA2000MobileSupportedCapabilities OPTIONAL,
+ -- O 2.42 a
+ cdmaSlotCycleIndex [166] IMPLICIT CDMASlotCycleIndex OPTIONAL,
+ -- O 2.71 b
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 2.73 c, d
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 2.113 e
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 2.130 f
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 2.138 g
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 2.143 f
+ networkTMSI [233] IMPLICIT NetworkTMSI OPTIONAL,
+ -- O 2.161 f
+ pageIndicator [71] IMPLICIT PageIndicator OPTIONAL,
+ -- O 2.173 h
+ pageResponseTime [301] IMPLICIT PageResponseTime OPTIONAL,
+ -- O 2.174 i
+ sms-ChargeIndicator [106] IMPLICIT SMS-ChargeIndicator OPTIONAL,
+ -- O 2.238 j
+ sms-DestinationAddress [107] IMPLICIT SMS-DestinationAddress OPTIONAL,
+ -- O 2.239 k
+ sms-OriginalDestinationAddress [110] IMPLICIT SMS-OriginalDestinationAddress OPTIONAL,
+ -- O 2.243 l
+ sms-OriginalDestinationSubaddress [111] IMPLICIT SMS-OriginalDestinationSubaddress OPTIONAL,
+ -- O 2.244 m
+ sms-OriginalOriginatingAddress [112] IMPLICIT SMS-OriginalOriginatingAddress OPTIONAL,
+ -- O 2.245 n
+ sms-OriginalOriginatingSubaddress [113] IMPLICIT SMS-OriginalOriginatingSubaddress OPTIONAL,
+ -- O 2.246 m
+ sms-OriginatingAddress [114] IMPLICIT SMS-OriginatingAddress OPTIONAL
+ -- O 2.247 o
+ }
+-- 2.48 QualificationRequest2 X.S0004-540-E v2.0
+QualificationRequest2 ::= [PRIVATE 18] SET {
+ mscid [21] IMPLICIT MSCID,
+ -- (Serving MSC or Originating MSC) M 2.154
+ qualificationInformationCode [17] IMPLICIT QualificationInformationCode,
+ -- M 2.190
+ systemAccessType [34] IMPLICIT SystemAccessType,
+ -- M 2.261
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (MSC or VLR) M 2.263
+ transactionCapability [123] IMPLICIT TransactionCapability,
+ -- M 2.288 a
+ cdmaNetworkIdentification [232] IMPLICIT CDMANetworkIdentification OPTIONAL,
+ -- (Serving) O 2.58 b
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 2.88 c
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 2.113 d
+ locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
+ -- O 2.138 e
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 2.142 f
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 2.155 g
+-- mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 2.156 d, h
+ nonPublicData [200] IMPLICIT NonPublicData OPTIONAL,
+ -- O 2.169
+ serviceRedirectionCause [237] IMPLICIT ServiceRedirectionCause OPTIONAL,
+ -- O 2.225 i
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 2.218 j
+ terminalType [47] IMPLICIT TerminalType OPTIONAL,
+ -- O 2.281 k
+ userGroup [208] IMPLICIT UserGroup OPTIONAL,
+ -- O 2.297 l
+ userZoneData [209] IMPLICIT UserZoneData OPTIONAL,
+ -- O 2.298 m
+ winCapability [280] IMPLICIT WINCapability OPTIONAL
+ -- O 2.303 n
+}
+QualificationRequest2Res ::= [PRIVATE 18] SET {
+ systemMyTypeCode [22] IMPLICIT SystemMyTypeCode,
+ -- (VLR or HLR) M 2.263
+ analogRedirectRecord [225] IMPLICIT AnalogRedirectRecord OPTIONAL,
+ -- O 2.8 a
+ authorizationDenied [13] IMPLICIT AuthorizationDenied OPTIONAL,
+ -- O 2.19 b
+ authorizationPeriod [14] IMPLICIT AuthorizationPeriod OPTIONAL,
+ -- O 2.20 c
+ cdmaRedirectRecord [229] IMPLICIT CDMARedirectRecord OPTIONAL,
+ -- O 2.63 d
+ controlChannelMode [199] IMPLICIT ControlChannelMode OPTIONAL,
+ -- O 2.88 e
+ deniedAuthorizationPeriod [167] IMPLICIT DeniedAuthorizationPeriod OPTIONAL,
+ -- O 2.100 f
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Carrier) O 2.106 g
+-- digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 2.106 h, i
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 2.113 j
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- O 2.130 k
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 2.143 k
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (HLR) O 2.154 l
+-- Profile **Macro** O 2.185 m, n
+ authenticationCapability [78] IMPLICIT AuthenticationCapability OPTIONAL,
+ -- O 6.5.2.8 a
+ callingFeaturesIndicator [25] IMPLICIT CallingFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.20 b
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 c
+ cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g d
+ controlNetworkID [307] IMPLICIT ControlNetworkID OPTIONAL,
+ -- O 6.5.2.ek u
+ dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 d
+ dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 d
+ dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 d
+ geographicAuthorization [143] IMPLICIT GeographicAuthorization OPTIONAL,
+ -- O 6.5.2.68 e
+ meidValidated [401] IMPLICIT MEIDValidated OPTIONAL,
+ -- O 3.2.2.98
+ messageWaitingNotificationCount [92] IMPLICIT MessageWaitingNotificationCount OPTIONAL,
+ -- O 6.5.2.78 f
+ messageWaitingNotificationType [145] IMPLICIT MessageWaitingNotificationType OPTIONAL,
+ -- O 6.5.2.79 g
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
+ originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
+ -- O 6.5.2.89 h
+ originationTriggers [98] IMPLICIT OriginationTriggers OPTIONAL,
+ -- O 6.5.2.90 i
+ pACAIndicator [146] IMPLICIT PACAIndicator OPTIONAL,
+ -- O 6.5.2.91 j
+ preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 k
+ qosPriority [348] IMPLICIT QoSPriority OPTIONAL,
+ --6.5.2.ge z
+ restrictionDigits [227] IMPLICIT RestrictionDigits OPTIONAL,
+ -- O 6.5.2.113 l
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 m
+ pSID-RSIDList [203] IMPLICIT PSID-RSIDList OPTIONAL,
+ -- O 6 .5.2.ag u , w
+ sms-OriginationRestrictions [115] IMPLICIT SMS-OriginationRestrictions OPTIONAL,
+ -- O 6.5.2.136 n
+ sms-TerminationRestrictions [117] IMPLICIT SMS-TerminationRestrictions OPTIONAL,
+ -- O 6.5.2.138 o
+ spinipin [154] IMPLICIT SPINIPIN OPTIONAL,
+ -- O 6.5.2.139 p
+ spiniTriggers [155] IMPLICIT SPINITriggers OPTIONAL,
+ -- O 6.5.2.140 q
+ tdmaDataFeaturesIndicator [221] IMPLICIT TDMADataFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.az s
+ terminationRestrictionCode [24] IMPLICIT TerminationRestrictionCode OPTIONAL,
+ -- O 6.5.2.157 r
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 s
+ triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL,
+ -- O 6.5.2.de t
+ userGroup [208] IMPLICIT UserGroup OPTIONAL,
+ -- O 6 .5.2.al p
+ nonPublicData [200] IMPLICIT NonPublicData OPTIONAL,
+ -- O 6 .5.2.ad v
+ userZoneData [209] IMPLICIT UserZoneData OPTIONAL,
+ -- O 6 .5.2.am v , w
+ callingPartyCategory [355] IMPLICIT CallingPartyCategory OPTIONAL,
+ -- O 6.5.2.gl z
+ lirMode [369] IMPLICIT LIRMode OPTIONAL,
+ -- O 6.5.2.gz z
+-- END MACRO
+ roamingIndication [239] IMPLICIT RoamingIndication OPTIONAL,
+ -- O 2.211 o
+ serviceRedirectionInfo [238] IMPLICIT ServiceRedirectionInfo OPTIONAL
+ -- O 2.226 a, d
+}
+-- Parameters
+-- 6.5.2.1
+-- 1 0 0 1 0 1 0 0 (0x94)
+AccessDeniedReason ::= ENUMERATED {
+ not-used ( 0 ),
+ unassigned-directory-number ( 1 ),
+ inactive ( 2 ),
+ busy ( 3 ),
+ termination-denied ( 4 ),
+ no-page-response ( 5 ),
+ unavailable ( 6 ),
+ service-Rejected-by-MS ( 7 ),
+ services-Rejected-by-the-System ( 8 ),
+ service-Type-Mismatch ( 9 ),
+ service-Denied ( 10 ),
+ position-Determination-Not-Supported (12)
+ }
+-- 6.5.2.2
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 0 0 0 0 (0x00) (128)
+ActionCode ::= OCTET STRING
+
+-- 6.5.2.3
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 1 0 1 1 (0x4b) 75
+AlertCode ::= OCTET STRING
+
+-- 6.5.2.4
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 0 0 0 1 (0x01)(129)
+AlertResult ::= OCTET STRING
+
+-- 6.5.2.5
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 1 1 0 0 (0x4c) 76
+AnnouncementCode ::= OCTET STRING
+
+-- 6.5.2.6
+-- 1 0 1 1 1 1 1 1 (0x9f) (0xbf)(constructed encoding)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 0 0 1 0 (0x02)(130)
+AnnouncementList ::= SEQUENCE {
+ announcementCode1 [ 76 ] IMPLICIT AnnouncementCode,
+ announcementCode2 [ 76 ] IMPLICIT AnnouncementCode OPTIONAL
+ }
+
+-- 6.5.2.7
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 1 1 0 1 (0x4d) (77)
+AuthenticationAlgorithmVersion ::= OCTET STRING
+
+-- 6.5.2.8
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 1 1 1 0 (0x4e) 78
+AuthenticationCapability ::= OCTET STRING
+
+-- 6.5.2.9
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 0 0 0 1 (0x21)(161)
+AuthenticationData ::= OCTET STRING
+
+-- 6.5.2.10
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 0 0 1 1 (0x23)(35)
+AuthenticationResponse ::= OCTET STRING
+
+-- 6.5.2.11
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 0 1 0 0 (0x24)(36)
+AuthenticationResponseBaseStation ::= OCTET STRING
+
+-- 6.5.2.12
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 0 1 0 1 (0x25)(37)
+AuthenticationResponseUniqueChallenge ::= OCTET STRING
+
+-- 6.5.2.13
+-- 1 0 0 0 1 1 0 1 (0x8d)(13)
+AuthorizationDenied ::= ENUMERATED {
+ not-used ( 0 ),
+ delinquent-account ( 1 ),
+ invalid-serial-number ( 2 ),
+ stolen-unit ( 3 ),
+ duplicate-unit ( 4 ),
+ unassigned-directory-number ( 5 ),
+ unspecified ( 6 ),
+ multiple-access ( 7 ),
+ not-Authorized-for-the-MSC ( 8 ),
+ missing-authentication-parameters ( 9 ),
+ terminalType-mismatch ( 10 ),
+ requested-Service-Code-Not-Supported ( 11 )
+ }
+
+-- 6.5.2.14
+-- 1 0 0 0 1 1 1 0 (0x8e)(14)
+AuthorizationPeriod ::= OCTET STRING
+
+-- 6.5.2.15
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 1 0 1 0 (0x5a)(90)
+AvailabilityType ::= OCTET STRING
+
+-- 6.5.2.16 1 0 0 0 0 0 0 1 (0x81)(1)
+BillingID ::= OCTET STRING
+
+-- 6.5.2.17
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 1 0 1 0 (0x32)(50)
+BorderCellAccess ::= ENUMERATED{
+ not-used ( 0 ),
+ border-Cell-Access ( 1 )
+ }
+
+-- 6.5.2.18
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 0 1 1 0 (0x26)(38)
+CallHistoryCount ::= INTEGER (0..63)
+
+-- 6.5.2.19
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 1 1 1 1 (0x4f)
+CallHistoryCountExpected ::= INTEGER (0..63)
+
+-- 6.5.2.20
+-- 1 0 0 1 1 0 0 1 (0x99)(25)
+CallingFeaturesIndicator ::= OCTET STRING
+
+-- 6.5.2.21
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 0 0 0 0 (0x50)(80)
+CallingPartyNumberDigits1 ::= DigitsType
+
+-- 6.5.2.22
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 0 0 0 1
+CallingPartyNumberDigits2 ::= DigitsType
+
+-- 6.5.2.23
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 0 0 1 0 (0x52)(82)
+CallingPartyNumberString1 ::= DigitsType
+
+-- 6.5.2.24
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 0 0 1 1 (0x53)(83)
+CallingPartyNumberString2 ::= DigitsType
+
+-- 6.5.2.25
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 0 1 0 0 (0x54)(84)
+CallingPartySubaddress ::= Subaddress
+
+-- 6.5.2.26
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 1 0 0 1 (0x39)(57)
+CancellationDenied ::= ENUMERATED {
+ not-used ( 0 ),
+ multipleAccess ( 1 ),
+ busy ( 2 )
+}
+
+-- 6.5.2.27
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 0 1 0 1 (0x55)(85)
+CancellationType ::= OCTET STRING
+
+-- 6.5.2.28
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 0 1 1 0 (0x56)(86)
+CarrierDigits ::= DigitsType
+
+-- 6.5.2.29
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 1 1 1 0 (0x3e)(62)
+CDMACallMode ::= OCTET STRING
+
+-- 6.5.2.30
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 1 1 1 1 (0x3f)(63)
+CDMAChannelData ::= OCTET STRING
+
+-- 6.5.2.31
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 0 1 0 0 (0x44)(68)
+CDMACodeChannel ::= OCTET STRING
+
+-- 6.5.2.32
+-- 1 0 1 1 1 1 1 1 (0xbf)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 0 0 1 1 (0x03)(131)
+CDMACodeChannelInformation ::= SEQUENCE {
+ targetCellID [3] IMPLICIT TargetCellID,
+ cdmaCodeChannel [68] IMPLICIT CDMACodeChannel,
+ cdmaPilotPN [173] IMPLICIT CDMAPilotPN OPTIONAL,
+ -- O 6.5.2.d a
+ cdmaPowerCombinedIndicator [228] IMPLICIT CDMAPowerCombinedIndicator OPTIONAL,
+ -- O 6.5.2.bg b
+...
+}
+
+-- 6.5.2.33
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 0 1 0 0 (0x04)(132)
+CDMACodeChannelList ::= SEQUENCE OF [131] IMPLICIT CDMACodeChannelInformation
+--
+-- cdmaCodeChannelInformation [9999] IMPLICIT CDMACodeChannelInformation,
+-- cdmaCodeChannelInformation [9999] IMPLICIT CDMACodeChannelInformation OPTIONAL
+-- }
+
+-- 6.5.2.34
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 0 0 1 0 (0x42)(66)
+CDMAMobileProtocolRevision ::= OCTET STRING
+
+-- 6.5.2.35
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 0 0 0 1 (0x41)(65)
+CDMAPilotStrength ::= OCTET STRING
+
+-- 6.5.2.36
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 0 0 1 1 (0x43)(67)
+CDMAPrivateLongCodeMask ::= OCTET STRING
+
+-- 6.5.2.37
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 0 1 0 1 (0x45)(69)
+CDMASearchWindow ::= OCTET STRING
+
+-- 6.5.2.38
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 1 1 0 0 (0x3c)(60)
+CDMAServingOneWayDelay ::= OCTET STRING
+
+-- 6.5.2.39
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 0 0 0 0 (0x40) (64)
+CDMASignalQuality ::= OCTET STRING
+
+-- 6.5.2.40
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 0 1 1 0 (0x26)(166)
+CDMASlotCycleIndex ::= OCTET STRING
+
+-- 6.5.2.41 N.S0005-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 1 0 1 1 (0x3b)(59)
+CDMAStationClassMark ::= OCTET STRING
+
+-- 6.5.2.42
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 0 1 1 1 (0x07)(135)
+CDMATargetMAHOInformation ::= SEQUENCE {
+ targetCellID [3] IMPLICIT TargetCellID,
+ cdmaPilotStrength [65] IMPLICIT CDMAPilotStrength,
+ cdmaTargetOneWayDelay [61] IMPLICIT CDMATargetOneWayDelay
+ }
+
+-- 6.5.2.43
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 1 0 0 0 (0x08)(136)
+CDMATargetMAHOList ::= SEQUENCE OF [135] IMPLICIT CDMATargetMAHOInformation
+-- CDMATargetMAHOList ::= SEQUENCE OF CDMATargetMAHOInformation
+
+-- cdmaTargetMAHOInformation [9999] IMPLICIT CDMATargetMAHOInformation,
+-- cdmaTargetMAHOInformation [9999] IMPLICIT CDMATargetMAHOInformation OPTIONAL
+-- }
+
+-- 6.5.2.44
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 0 1 0 1 (0x05)(133)
+CDMATargetMeasurementInformation ::= SEQUENCE {
+ targetCellID [3] IMPLICIT TargetCellID,
+ cdmaSignalQuality [64] IMPLICIT CDMASignalQuality,
+ cdmaTargetOneWayDelay [61] IMPLICIT CDMATargetOneWayDelay OPTIONAL
+ }
+
+-- 6.5.2.45
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 0 1 1 0 (0x06)(134)
+CDMATargetMeasurementList ::= SEQUENCE OF [133] IMPLICIT CDMATargetMeasurementInformation
+--{
+-- cdmaTargetMeasurementInformation [133] IMPLICIT CDMATargetMeasurementInformation,
+-- cdmaTargetMeasurementInformation [133] IMPLICIT CDMATargetMeasurementInformation OPTIONAL
+-- }
+
+
+-- 6.5.2.46
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 1 1 0 1 (0x3d)(61)
+CDMATargetOneWayDelay ::= OCTET STRING
+
+-- 6.5.2.47
+-- 1 0 0 0 0 1 0 1 (0x85)(0x5)
+ChannelData ::= OCTET STRING
+
+-- 6.5.2.48
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 0 0 1 0 (0x22)(162)
+ConditionallyDeniedReason ::= ENUMERATED {
+ not-used ( 0 ),
+ waitable ( 1 ),
+ ...
+}
+
+-- 6.5.2.49
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 1 0 0 1 (0x09)(137)
+ConferenceCallingIndicator ::= OCTET STRING
+
+-- 6.5.2.50
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 0 1 1 1 (0x27) (39)
+ConfidentialityModes ::= OCTET STRING
+
+-- 6.5.2.51
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 0 1 1 1 (0x37)(55)
+ControlChannelData ::= OCTET STRING
+
+-- 6.5.2.52
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 1 0 1 0 (0x0a)(138)
+CountUpdateReport ::= OCTET STRING
+
+-- 6.5.2.53
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 0 1 1 1 (0x27)(167)
+DeniedAuthorizationPeriod ::= OCTET STRING
+
+-- 6.5.2.54
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 0 0 1 0 (0x32)(50)
+DenyAccess ::= ENUMERATED {
+ not-used ( 0 ),
+ unspecified ( 1 ),
+ ssd-Update-failure ( 2 ),
+ cOUNT-Update-failure ( 3 ),
+ unique-Challenge-failure ( 4 ),
+ aUTHR-mismatch ( 5 ),
+ cOUNT-mismatch ( 6 ),
+ process-collision ( 7 ),
+ missing-authentication-parameters ( 8 ),
+ terminalType-mismatch ( 9 ),
+ mIN-IMSI-or-ESN-authorization-failure ( 10 ),
+ ...
+}
+
+--6.5.2.55
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 1 0 0 1 (0x49)(73)
+DeregistrationType ::= ENUMERATED {
+ not-used ( 0 ),
+ deregister-for-an-unspecified-reason ( 1 ),
+ deregister-for-an-administrative-reason ( 2 ),
+ deregister-due-to-MS-power-down ( 3 ),
+ ...
+}
+
+-- 6.5.2.56
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 0 1 1 1 (0x57)(87)
+DestinationDigits ::= DigitsType
+
+-- 6.5.2.57
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 1 0 1 1 (0x0b)(139)
+DigitCollectionControl ::= OCTET STRING
+
+-- 6.5.2.58
+-- 1 0 0 0 0 1 0 0 (0x84)(0x4)
+Digits ::= DigitsType
+
+-- 6.5.2.59
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 1 1 0 0 (0x0c)(140)
+DMH-AccountCodeDigits ::= DigitsType
+
+-- 6.5.2.60
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 1 1 0 1 (0x0d)(141)
+DMH-AlternateBillingDigits ::= DigitsType
+
+-- 6.5.2.61
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 1 1 1 0 (0x0e)(142)
+DMH-BillingDigits ::= DigitsType
+
+-- 6.5.2.62
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 1 0 0 0 (0x58)(88)
+
+DMH-RedirectionIndicator ::= ENUMERATED {
+ not-specified (0),
+ cfu (1),
+ cfb (2),
+ cfna (3),
+ cfo (4),
+ cd-Unspecified (5),
+ cd-PSTN (6),
+ cd-Private (7),
+ pstn-Tandem (8),
+ private (9),
+ busy (10),
+ inactive (11),
+ unassigned (12),
+ termination-denied (13),
+ cd-failure (14),
+ ect (15),
+ mah (16),
+ fa (17),
+ abandoned-call-leg (18),
+ pca-call-refused (19),
+ sca-call-refused (20),
+ dialogue (21),
+ cfd (22),
+ cd-local (23),
+ voice-mail-retrieval (24)
+}
+
+-- 6.5.2.63
+-- 1 0 0 0 1 0 0 1 (0x89)(0x9)
+ElectronicSerialNumber ::= OCTET STRING
+
+-- 6.5.2.64
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 0 1 0 1 (0x35)(53)
+ExtendedMSCID ::= OCTET STRING
+
+-- 6.5.2.65
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 0 1 1 0 (0x36)(54)
+ExtendedSystemMyTypeCode ::= OCTET STRING
+
+-- 6.5.2.66
+-- FaultyParameter ::= OCTET STRING
+
+-- 6.5.2.67
+-- 1 0 0 1 0 0 1 0 (0x92)(18)
+FeatureResult ::= ENUMERATED {
+ not-used ( 0 ),
+ unsuccessful ( 1 ),
+ successful ( 2 ),
+ ...
+}
+
+-- 6.5.2.68
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 0 1 1 1 1 (0x0f)(143)
+GeographicAuthorization ::= OCTET STRING
+
+--6.5.2.69
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 0 0 1 1 (0x23)(163)
+GroupInformation ::= OCTET STRING
+
+-- 6.5.2.70
+-- 1 0 0 1 1 1 1 0 (0x9e)(30)
+HandoffReason ::= ENUMERATED {
+ not-used ( 0 ),
+ unspecified ( 1 ),
+ weak-Signal ( 2 ),
+ off-loading ( 3 ),
+ anticipatory ( 4 )
+}
+
+-- 6.5.2.71
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 0 1 0 0 (0x24)(164)
+HandoffState ::= OCTET STRING
+
+-- 6.5.2.72
+-- 1 0 0 0 0 1 1 0 (0x86)(0x6)
+InterMSCCircuitID ::= OCTET STRING
+
+-- 6.5.2.73
+-- 1 0 0 0 0 1 1 1 (0x87)(0x7)
+InterSwitchCount ::= INTEGER (0..255)
+
+--6.5.2.74
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 1 0 0 1 (0x59)(89)
+IntersystemTermination ::= SEQUENCE {
+ destinationDigits [87] IMPLICIT DestinationDigits,
+ -- M 6.5.2.56
+ mscid [21] IMPLICIT MSCID,
+ -- (serving) M 6.5.2.82
+ accessDeniedReason [20] IMPLICIT AccessDeniedReason OPTIONAL,
+ -- O 6.5.2.1 a
+ billingID [1] IMPLICIT BillingID OPTIONAL,
+ -- (terminating) O 6.5.2.16 b
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 c, d
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 e
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- 6.5.2.bu e, k
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 f
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d, e
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 e
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83 g
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 d, h
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 d, i
+...
+}
+
+-- 6.5.2.75
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 0 0 0 0 (0x10)(144)
+LegInformation ::= OCTET STRING
+
+-- 6.5.2.76
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 1 0 1 1 (0x5b)(91)
+LocalTermination ::= SEQUENCE {
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- M 6.5.2.63
+ terminationTreatment [121] IMPLICIT TerminationTreatment,
+ -- M 6.5.2.158
+ alertCode [75] IMPLICIT AlertCode OPTIONAL,
+ -- O 6.5.2.3 a, b
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 b, c
+ destinationDigits [87] IMPLICIT DestinationDigits OPTIONAL,
+ -- O 6.5.2.56 d, e
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ -- 6.5.2.bu e, k
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 a
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 b, f
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ -- M 6.5.2.81
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 b, g
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 b, h
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 a, b
+ voiceMailboxPIN [159] IMPLICIT VoiceMailboxPIN OPTIONAL,
+ -- O 6.5.2.165 i
+ voiceMailboxNumber [160] IMPLICIT VoiceMailboxNumber OPTIONAL,
+ -- O 6.5.2.164 j
+ ...
+ }
+
+-- 6.5.2.77
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 0 0 0 1 (0x21)(33)
+LocationAreaID ::= OCTET STRING
+
+-- 6.5.2.78
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 1 1 0 0 (0x5c)(92)
+MessageWaitingNotificationCount::= OCTET STRING
+
+-- 6.5.2.79
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 0 0 0 1 (0x11)(145)
+MessageWaitingNotificationType ::= OCTET STRING
+
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 1 1 0 1 (0x5d)(93)
+-- 6.5.2.80
+MobileDirectoryNumber ::= DigitsType
+
+-- 6.5.2.81
+-- 1 0 0 0 1 0 0 0 (0x88)(0x8)
+MobileIdentificationNumber ::= MINType
+--N.S0011-0 v 1.0
+-- b. Refer to the MINType parameter type (see 6.5.3.u1) for notes and field encoding.
+
+-- 6.5.2.82
+-- 1 0 0 1 0 1 0 1 (0x95)
+MSCID ::= OCTET STRING
+
+-- 6.5.2.83
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 1 1 1 0 (0x5e)(94)
+MSCIdentificationNumber ::= DigitsType
+
+-- 6.5.2.84
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 0 1 1 0 (0x46)(70)
+MSLocation ::= OCTET STRING
+
+-- 6.5.2.85
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 0 1 0 1 (0x25)(165)
+NAMPSCallMode ::= OCTET STRING
+
+-- 6.5.2.86
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 1 0 1 0 (0x4a)(76)
+NAMPSChannelData ::= OCTET STRING
+
+-- 6.5.2.87
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 0 0 0 0 (0x60)(96)
+NoAnswerTime ::= OCTET STRING
+
+-- 6.5.2.88
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 0 0 0 1 (0x61)(97)
+OneTimeFeatureIndicator ::= OCTET STRING
+
+-- 6.5.2.89
+-- 1 0 0 1 0 1 1 1 (0x97)(23)
+OriginationIndicator ::= ENUMERATED {
+ not-used ( 0 ),
+ prior-agreement ( 1 ),
+ origination-denied ( 2 ),
+ local-calls-only ( 3 ),
+ selected-leading-digits-of-directorynumber-or-of-international-E164-number ( 4 ),
+ selected-leading-digits-of-directorynumber-or-of-international-E164-number-and-local-calls-only ( 5 ),
+ national-long-distance ( 6 ),
+ international-calls ( 7 ),
+ single-directory-number-or-international-E164-number ( 8 ),
+ ...
+ }
+-- 6.5.2.90
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 0 0 1 0 (0x62)
+OriginationTriggers ::= OCTET STRING
+
+-- 6.5.2.91
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 0 0 1 0 (0x12)(146)
+PACAIndicator ::= OCTET STRING
+
+-- 6.5.2.92
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 0 1 1 1 (0x47)(71)
+PageIndicator ::= OCTET STRING
+
+-- 6.5.2.93
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 0 0 0 0 (0x20)
+PC-SSN ::= OCTET STRING
+
+-- 6.5.2.94
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 1 0 0 1 (0x29)(169)
+PilotBillingID ::= OCTET STRING
+
+-- 6.5.2.95
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 1 0 0 0 (0x28)(168)
+PilotNumber ::= DigitsType
+
+-- 6.5.2.96
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 0 0 1 1 (0x13)(147)
+PreferredLanguageIndicator ::= OCTET STRING
+
+-- 6.5.2.97 Profile MACRO ?
+-- Profile ::= SET {
+-- authenticationCapability [78] IMPLICIT AuthenticationCapability OPTIONAL,
+ -- O 6.5.2.8 a
+-- callingFeaturesIndicator [25] IMPLICIT CallingFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.20 b
+-- carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 c
+-- cdmaServiceOptionList [176] IMPLICIT CDMAServiceOptionList OPTIONAL,
+ -- O 6.5.2.g d
+-- controlNetworkID [307] IMPLICIT ControlNetworkID OPTIONAL,
+ -- O 6.5.2.ek u
+-- dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL,
+ -- O 6.5.2.59 d
+-- dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL,
+ -- O 6.5.2.60 d
+-- dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
+ -- O 6.5.2.61 d
+-- geographicAuthorization [143] IMPLICIT GeographicAuthorization OPTIONAL,
+ -- O 6.5.2.68 e
+-- messageWaitingNotificationCount [92] IMPLICIT MessageWaitingNotificationCount OPTIONAL,
+ -- O 6.5.2.78 f
+-- messageWaitingNotificationType [145] IMPLICIT MessageWaitingNotificationType OPTIONAL,
+ -- O 6.5.2.79 g
+-- mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+-- mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
+-- originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
+ -- O 6.5.2.89 h
+-- originationTriggers [98] IMPLICIT OriginationTriggers,
+ -- O 6.5.2.90 i
+-- pACAIndicator [274] IMPLICIT PACAIndicator OPTIONAL,
+ -- O 6.5.2.91 j
+-- preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL,
+ -- O 6.5.2.96 k
+-- qosPriority [348] IMPLICIT QoSPriority OPTIONAL,
+ --6.5.2.ge z
+-- restrictionDigits [227] IMPLICIT RestrictionDigits OPTIONAL,
+ -- O 6.5.2.113 l
+-- routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 m
+-- pSID-RSIDList [203] IMPLICIT PSID-RSIDList OPTIONAL,
+ -- O 6 .5.2.ag u , w
+-- sms-OriginationRestrictions [115] IMPLICIT SMS-OriginationRestrictions OPTIONAL,
+ -- O 6.5.2.136 n
+-- sms-TerminationRestrictions [117] IMPLICIT SMS-TerminationRestrictions OPTIONAL,
+ -- O 6.5.2.138 o
+-- spinipin [154] IMPLICIT SPINIPIN OPTIONAL,
+ -- O 6.5.2.139 p
+-- spiniTriggers [155] IMPLICIT SPINITriggers OPTIONAL,
+ -- O 6.5.2.140 q
+-- tdmaDataFeaturesIndicator [221] IMPLICIT TDMADataFeaturesIndicator OPTIONAL,
+ -- O 6.5.2.az s
+-- terminationRestrictionCode [24] IMPLICIT TerminationRestrictionCode OPTIONAL,
+ -- O 6.5.2.157 r
+-- terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 s
+-- triggerAddressList [276] IMPLICIT TriggerAddressList OPTIONAL,
+ -- O 6.5.2.de t
+-- userGroup [208] IMPLICIT UserGroup OPTIONAL,
+ -- O 6 .5.2.al p
+-- nonPublicData [200] IMPLICIT NonPublicData OPTIONAL,
+ -- O 6 .5.2.ad v
+-- userZoneData [209] IMPLICIT UserZoneData OPTIONAL,
+ -- O 6 .5.2.am v , w
+-- callingPartyCategory [355] IMPLICIT CallingPartyCategory OPTIONAL,
+ -- O 6.5.2.gl z
+-- ...,
+-- lirMode [369] IMPLICIT LIRMode OPTIONAL
+ -- O 6.5.2.gz z
+-- }
+-- END MACRO
+
+-- authenticationCapability [78] IMPLICIT AuthenticationCapability OPTIONAL O 6.5.2.8 a
+-- callingFeaturesIndicator [25] IMPLICIT CallingFeaturesIndicator OPTIONAL, O 6.5.2.20 b
+-- carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL, O 6.5.2.28 c
+-- dmh-AccountCodeDigits [140] IMPLICIT DMH-AccountCodeDigits OPTIONAL, O 6.5.2.59 d
+-- dmh-AlternateBillingDigits [141] IMPLICIT DMH-AlternateBillingDigits OPTIONAL, O 6.5.2.60 d
+-- dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL, O 6.5.2.61 d
+-- geographicAuthorization [143] IMPLICIT GeographicAuthorization OPTIONAL, O 6.5.2.68 e
+-- messageWaitingNotificationCount [92] IMPLICIT MessageWaitingNotificationCount OPTIONAL, O 6.5.2.78 f
+-- messageWaitingNotificationType [145] IMPLICIT MessageWaitingNotificationType OPTIONAL, O 6.5.2.79 g
+-- mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL, O 6.5.2.80 d
+-- originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL, O 6.5.2.89 h
+-- originationTriggers [98] IMPLICIT OriginationTriggers, O 6.5.2.90 i
+-- pACAIndicator [274] IMPLICIT PACAIndicator OPTIONAL, O 6.5.2.91 j
+-- preferredLanguageIndicator [147] IMPLICIT PreferredLanguageIndicator OPTIONAL, O 6.5.2.96 k
+-- restrictionDigits [227] IMPLICIT RestrictionDigits OPTIONAL, O 6.5.2.113 l
+-- routingDigits [150] IMPLICIT RoutingDigits OPTIONAL, O 6.5.2.114 m
+-- sms-OriginationRestrictions [115] IMPLICIT SMS-OriginationRestrictions OPTIONAL, O 6.5.2.136 n
+-- sms-TerminationRestrictions [117] IMPLICIT SMS-TerminationRestrictions OPTIONAL, O 6.5.2.138 o
+-- spinipin [154] IMPLICIT SPINIPIN OPTIONAL, O 6.5.2.139 p
+-- spiniTriggers [155] IMPLICIT SPINITriggers OPTIONAL, O 6.5.2.140 q
+-- terminationRestrictionCode [24] IMPLICIT TerminationRestrictionCode OPTIONAL, O 6.5.2.157 r
+-- terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL, O 6.5.2.159 s
+-- triggerAddressList [276] IPMPLICIT TriggerAddressList OPTIONAL, O 6.5.2.de t
+
+-- 6.5.2.98
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 0 1 0 1 1 1 1 1 (0x5f)(95)
+PSTNTermination ::= SEQUENCE {
+ destinationDigits [87] IMPLICIT DestinationDigits,
+ -- M 6.5.2.56
+ carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
+ -- O 6.5.2.28 a, b
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
+ -- O 6.5.2.63 c
+ imsi [242] IMPLICIT IMSI,
+ -- 6.5.2.bu
+ legInformation [144] IMPLICIT LegInformation OPTIONAL,
+ -- O 6.5.2.75 d
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
+ -- O 6.5.2.81 c, e
+ routingDigits [150] IMPLICIT RoutingDigits OPTIONAL,
+ -- O 6.5.2.114 b, e
+ terminationTriggers [122] IMPLICIT TerminationTriggers OPTIONAL,
+ -- O 6.5.2.159 b, f
+ ...
+ }
+
+-- 6.5.2.99
+-- 1 0 0 1 0 0 0 1 (0x91)(17)
+QualificationInformationCode ::= ENUMERATED {
+ not-used ( 0 ),
+ no-information ( 1 ),
+ validation-only ( 2 ),
+ validation-and-profile ( 3 ),
+ profile-only ( 4 )
+ }
+
+-- 6.5.2.100
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 0 0 1 1 (0x43)(67)
+RANDC ::= OCTET STRING
+
+-- 6.5.2.101
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 1 0 0 0 (0x28)(40)
+RandomVariable ::= OCTET STRING
+
+-- 6.5.2.102
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 1 0 0 1 (0x29)(41)
+RandomVariableBaseStation ::= OCTET STRING
+
+-- 6.5.2.103
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 1 0 1 0 (0x2a)(42)
+RandomVariableSSD ::= OCTET STRING
+
+-- 6.5.2.104
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 1 0 1 1 (0x2b)(43)
+RandomVariableUniqueChallenge ::= OCTET STRING
+
+-- 6.5.2.105
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 0 1 0 0 (0x14)(148)
+RANDValidTime ::= OCTET STRING
+
+-- 6.5.2.106
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 0 0 1 0 0 0 (0x48)(72)
+ReceivedSignalQuality ::= INTEGER (0..255)
+
+-- 6.5.2.107
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 0 1 0 0 (0x64)(100)
+RedirectingNumberDigits ::= DigitsType
+
+-- 6.5.2.108
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 0 1 0 1 (0x65)(101)
+RedirectingNumberString ::= DigitsType
+
+-- 6.5.2.109
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 0 1 1 0 (0x66)(102)
+RedirectingSubaddress ::= Subaddress
+
+-- 6.5.2.110 RedirectionReason updated N.S0021
+-- 1 0 0 1 0 0 1 1 (0x93)(19)
+RedirectionReason ::= ENUMERATED {
+ not-used (0),
+ busy (1),
+ no-Answer (2),
+ unconditional (3),
+ no-Page-Response (4),
+ unavailable (5),
+ unroutable (6),
+ call-accepted (7),
+ call-refused (8),
+ uSCFvm-Divert-to-voice-mail (9),
+ uSCFms-Divert-to-an-MS-provided-DN (10),
+ uSCFnr-Divert-to-a-network-registered-DN (11),
+ ...
+ }
+
+-- 6.5.2.111 ReleaseReason updated N.S0029-0 v1.0
+-- 1 0 0 0 1 0 1 0 (0x8a)
+ReleaseReason ::= ENUMERATED {
+ unspecified (0),
+ callOverClearForward (1),
+ callOverClearBackward (2),
+ handoffSuccessful (3),
+ handoffAbort-call-over (4),
+ handoffAbort-not-received (5),
+ abnormalMobileTermination (6),
+ abnormalSwitchTermination (7),
+ specialFeatureRelease (8),
+ sessionOverClearForward (9),
+ sessionOverClearBackward (10),
+ clearAllServicesForward (11),
+ clearAllServicesBackward (12),
+ anchor-MSC-was-removed-from-the-packet-data-session (13),
+ keep-MS-on-traffic-channel (14),
+ ...
+ }
+
+-- 6.5.2.112
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 1 1 0 0 (0x2c)
+ReportType ::= ENUMERATED {
+ not-used ( 0 ),
+ unspecified-security-violation ( 1 ),
+ mSID-ESN-mismatch ( 2 ),
+ rANDC-mismatch ( 3 ),
+ reserved ( 4 ),
+ sSD-update-failed ( 5 ),
+ reserved ( 6 ),
+ cOUNT-mismatch ( 7 ),
+ reserved ( 8 ),
+ unique-Challenge-failed ( 9 ),
+ unsolicited-Base-Station-Challenge ( 10 ),
+ sSD-Update-no-response ( 11 ),
+ cOUNT-Update-no-response ( 12 ),
+ unique-Challenge-no-response ( 13 ),
+ aUTHR-mismatch ( 14 ),
+ tERMTYP-mismatch ( 15 ),
+ missing-authentication-parameters ( 16 ),
+ ...
+ }
+
+
+-- 6.5.2.113
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 0 1 0 1 (0x15)(227)
+RestrictionDigits ::= DigitsType
+
+-- 6.5.2.114
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 0 1 1 0 (0x16)(150)
+RoutingDigits ::= DigitsType
+
+-- 6.5.2.115
+-- 1 0 0 0 1 1 1 1 (0x8f)
+SeizureType ::= ENUMERATED {
+ unspecified ( 0 ),
+ loop-back ( 1 ),
+ ...
+ }
+
+-- 6.5.2.116
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 0 1 1 1
+SenderIdentificationNumber ::= DigitsType
+
+-- 6.5.2.117
+-- 1 0 0 0 0 0 1 0 (0x82)(0x2)
+ServingCellID ::= OCTET STRING
+
+-- 6.5.2.118
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 0 1 1 1 (0x17)(151)
+SetupResult ::= OCTET STRING
+
+-- 6.5.2.119
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 1 1 1 0 (0x2e)(46)
+SharedSecretData ::= OCTET STRING
+
+-- 6.5.2.120
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 1 1 0 1 (0x2d)(45)
+SignalingMessageEncryptionKey ::= OCTET STRING
+
+-- 6.5.2.121
+-- 1 0 0 0 1 0 1 1 (0x8b)(11)
+SignalQuality ::= INTEGER{
+ not-a-usable-signal (0),
+ treat-as-Not-a-usable-signal (1),
+ treat-as-Not-a-usable-signal (2),
+ treat-as-Not-a-usable-signal (3),
+ treat-as-Not-a-usable-signal (4),
+ treat-as-Not-a-usable-signal (5),
+ treat-as-Not-a-usable-signal (6),
+ treat-as-Not-a-usable-signal (7),
+ treat-as-Not-a-usable-signal (8),
+ usable-signal-range (9),
+ usable-signal-range (245),
+ treat-the-same-as-interference (246),
+ treat-the-same-as-interference (247),
+ treat-the-same-as-interference (248),
+ treat-the-same-as-interference (249),
+ treat-the-same-as-interference (250),
+ treat-the-same-as-interference (251),
+ treat-the-same-as-interference (252),
+ treat-the-same-as-interference (253),
+ treat-the-same-as-interference (254),
+ interference (255)
+} (0..255)
+
+-- 6.5.2.122
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 1 0 0 0 (0x18)(152)
+SMS-AccessDeniedReason ::= OCTET STRING
+
+-- 6.5.2.123
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 1 0 0 0 (0x68)(104)
+SMS-Address ::= DigitsType
+
+-- 6.5.2.124
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 1 0 0 1 (0x69)(105)
+SMS-BearerData ::= OCTET STRING
+
+-- 6.5.2.125
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 1 0 0 1 (0x19)(153)
+SMS-CauseCode ::= OCTET STRING
+
+-- 6.5.2.126
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 1 0 1 0 (0x6a)(106)
+SMS-ChargeIndicator ::= OCTET STRING
+
+-- 6.5.2.127
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 1 0 1 1 (0x6b)(107)
+SMS-DestinationAddress ::= DigitsType
+
+-- 6.5.2.128
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 1 1 0 0 (0x6c)(108)
+SMS-MessageCount ::= OCTET STRING
+
+-- 6.5.2.129
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 0 1 1 0 (0x76)(118)
+SMS-MessageWaitingIndicator ::= NULL
+
+-- 6.5.2.130
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 1 1 0 1 (0x6d)(109)
+SMS-NotificationIndicator ::= OCTET STRING
+
+-- 6.5.2.131
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 1 1 1 0 (0x6e)(110)
+SMS-OriginalDestinationAddress ::= DigitsType
+
+-- 6.5.2.132
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 0 1 1 1 1 (0x6f)(111)
+SMS-OriginalDestinationSubaddress ::= Subaddress
+
+-- 6.5.2.133
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 0 0 0 0 (0x70)(112)
+SMS-OriginalOriginatingAddress ::= DigitsType
+
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 0 0 0 1 (0x71)(113)
+-- 6.5.2.134
+SMS-OriginalOriginatingSubaddress ::= Subaddress
+
+-- 6.5.2.135
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 0 0 1 0 (0x72)(114)
+SMS-OriginatingAddress ::= DigitsType
+
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 0 0 1 1 (0x73)(115)
+-- 6.5.2.136
+SMS-OriginationRestrictions ::= OCTET STRING
+
+-- 6.5.2.137
+-- N.S0005-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 0 1 0 0 (0x74)(116)
+SMS-TeleserviceIdentifier ::= OCTET STRING
+-- SMS-TeleserviceIdentifier ::= INTEGER
+
+-- 6.5.2.138
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 0 1 0 1 (0x75)(117)
+SMS-TerminationRestrictions ::= OCTET STRING
+
+-- 6.5.2.139
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 1 0 1 0 (0x1a)(154)
+SPINIPIN ::= DigitsType
+
+-- 6.5.2.140
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 1 0 1 1 (0x1b)(155)
+SPINITriggers ::= OCTET STRING
+
+-- 6.5.2.141
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 0 1 0 0 (0x34) (52)
+SSDNotShared ::= ENUMERATED {
+ not-used ( 0 ),
+ discard-SSD ( 1 ),
+ ...
+ }
+-- 6.5.2.142
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 1 1 0 0 (0x1c)(156)
+SSDUpdateReport ::= OCTET STRING
+
+-- 6.5.2.143
+-- 1 0 0 0 1 1 0 0 (0x8c)(18)
+StationClassMark ::= OCTET STRING
+
+
+-- 6.5.2.144
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 1 0 0 0 (0x38)(56)
+SystemAccessData ::= OCTET STRING
+
+-- 6.5.2.145
+-- 1 0 0 1 1 1 1 1 (0x9f) (0x9c)
+-- 0 0 1 0 0 0 1 0 (0x22)(34)
+SystemAccessType ::= ENUMERATED {
+ not-used (0),
+ unspecified (1),
+ flash-request (2),
+ autonomous-registration (3),
+ call-origination (4),
+ page-response (5),
+ no-access (6),
+ power-down-registration (7),
+ sms-page-response (8),
+ otasp (9),
+ ...
+ }
+
+-- 6.5.2.146
+-- 1 0 0 1 1 1 1 1 (0x9f) (0x9c)
+-- 0 0 1 1 0 0 0 1 (0x31)(49)
+SystemCapabilities ::= OCTET STRING
+
+-- 6.5.2.147
+-- 1 0 0 1 0 1 1 0 (0x96)(22)
+SystemMyTypeCode ::= ENUMERATED {
+ not-used ( 0 ),
+ eDS ( 1 ),
+ astronet ( 2 ),
+ lucent-Technologies ( 3 ),
+ ericsson ( 4 ),
+ gTE ( 5 ),
+ motorola ( 6 ),
+ nEC ( 7 ),
+ nORTEL ( 8 ),
+ novAtel ( 9 ),
+ plexsys ( 10 ),
+ digital-Equipment-Corp ( 11 ),
+ iNET ( 12 ),
+ bellcore ( 13 ),
+ alcatel-SEL ( 14 ),
+ compaq ( 15 ),
+ qUALCOMM ( 16 ),
+ aldiscon ( 17 ),
+ celcore ( 18 ),
+ tELOS ( 19 ),
+ aDI-Limited ( 20 ),
+ coral-Systems ( 21 ),
+ synacom-Technology ( 22 ),
+ dSC ( 23 ),
+ mCI ( 24 ),
+ newNet ( 25 ),
+ sema-Group-Telecoms ( 26 ),
+ lG-Information-and-Communications ( 27 ),
+ cBIS ( 28 ),
+ siemens ( 29 ),
+ samsung-Electronics ( 30 ),
+ readyCom-Inc ( 31 ),
+ aG-Communication-Systems ( 32 ),
+ hughes-Network-Systems ( 33 ),
+ phoenix-Wireless-Group ( 34 )
+ }
+
+
+-- 6.5.2.148
+-- 1 0 0 0 0 0 1 1 (0x83)(0x3)
+TargetCellID ::= OCTET STRING
+
+-- 6.5.2.149
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 1 1 0 1 (0x1d)(157)
+TargetMeasurementInformation ::= SEQUENCE{
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- M 6.5.2.148
+ signalQuality [11] IMPLICIT SignalQuality,
+ -- M 6.5.2.121
+ ...
+ }
+-- 6.5.2.150
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 1 1 1 0 (0x1e)(158)
+TargetMeasurementList ::= SEQUENCE OF [157] IMPLICIT TargetMeasurementInformation
+
+-- 6.5.2.151
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 0 1 1 1 1 1 (0x1f)(31)
+TDMABurstIndicator ::= OCTET STRING
+
+-- 6.5.2.152
+-- 1 0 0 1 1 1 0 1 (0x9d)(29)
+TDMACallMode ::= OCTET STRING
+
+-- 6.5.2.153
+-- 1 0 0 1 1 1 0 0 (0x9c)(28)
+TDMAChannelData ::= OCTET STRING
+
+-- 6.5.2.154
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 0 1 1 1 1 (0x2f)(47)
+TerminalType ::= ENUMERATED {
+ not-used ( 0 ),
+ not-distinguished ( 1 ),
+ iS-54-B ( 2 ),
+ iS-136 ( 3 ),
+ j-STD-011 ( 4 ),
+ iS-136-A-or-TIA-EIA-136-Revision-0 ( 5 ),
+ tIA-EIA-136-A ( 6 ),
+ iA-EIA-136-B ( 7 ),
+ iS-95 ( 32 ),
+ iS-95B ( 33 ),
+ j-STD-008 ( 34 ),
+ tIA-EIA-95-B ( 35 ),
+ iS-2000 ( 36 ),
+ iS-88 ( 64 ),
+ iS-94 ( 65 ),
+ iS-91 ( 66 ),
+ j-STD-014 ( 67 ),
+ tIA-EIA-553-A ( 68 ),
+ iS-91-A ( 69 ),
+ ...
+ }
+
+-- 6.5.2.155
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 0 1 1 1 (0x77)(119)
+TerminationAccessType ::= OCTET STRING
+
+-- 6.5.2.156
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 1 0 0 0 (0x78)(120)
+TerminationList ::= SET OF CHOICE {
+ intersystemTermination [89] IMPLICIT IntersystemTermination,
+ -- O 6.5.2.74 b, c, d
+ localTermination [91] IMPLICIT LocalTermination,
+ -- O 6.5.2.76 b, c, e
+ pstnTermination [95] IMPLICIT PSTNTermination,
+ -- O 6.5.2.98 b, c, f
+ ...
+ }
+
+-- 6.5.2.157
+-- 1 0 0 1 1 0 0 0 (0x98)(24)
+TerminationRestrictionCode ::= ENUMERATED {
+ not-used ( 0 ),
+ termination-denied ( 1 ),
+ unrestricted ( 2 ),
+ the-treatment-for-this-value-is-not-specified ( 3 ),
+ ...
+ }
+
+-- 6.5.2.158
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 1 0 0 1 (0x79)(121)
+TerminationTreatment ::= OCTET STRING
+
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 1 0 1 0 (0x7a)(122)
+-- 6.5.2.159
+TerminationTriggers ::= OCTET STRING
+
+-- 6.5.2.160
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 1 0 1 1 (0x9b)(123)
+TransactionCapability ::= OCTET STRING
+
+-- 6.5.2.161
+-- 1 0 0 1 0 0 0 0 (0x90)(16)
+TrunkStatus ::= ENUMERATED {
+ idle ( 0 ),
+ blocked ( 1 ),
+ ...
+ }
+
+-- 6.5.2.162
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 1 1 1 1 1 0 0 (0x7c)(124)
+UniqueChallengeReport ::= OCTET STRING
+
+-- 6.5.2.163
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 0 0 1 1 (0x33) (51)
+UpdateCount ::= ENUMERATED {
+ not-used ( 0 ),
+ update-COUNT ( 1 ),
+ ...
+ }
+
+-- 6.5.2.164
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 0 0 0 0 (0x20)(160)
+VoiceMailboxNumber ::= DigitsType
+
+-- 6.5.2.165
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 0 1 1 1 1 1 (0x1f)(159)
+VoiceMailboxPIN ::= DigitsType
+
+
+-- 6.5.2.166
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 0 0 1 1 0 0 0 0 (0x30)(48)
+VoicePrivacyMask ::= OCTET STRING
+
+
+-- 6.5.2.a N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 1 0 1 0 (0x2a)(170)
+-- a. See CDMA [TSB76] for the definition of this parameter.
+CDMABandClass ::= OCTET STRING
+
+-- 6.5.2.b N.S0010-0 v 1.0 N.S0006
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 1 0 1 1 (0x2b)(171)
+CDMABandClassInformation ::= SEQUENCE{
+ cdmaBandClass [170] IMPLICIT CDMABandClass,
+ -- M 6.5.2.a a
+ cdmaMobileProtocolRevision [66] IMPLICIT CDMAMobileProtocolRevision OPTIONAL,
+ -- O 6.5.2.34 b
+ cdmaStationClassMark2 [177] IMPLICIT CDMAStationClassMark2 OPTIONAL,
+ -- O 6.5.2.h b
+ ...
+}
+
+-- 6.5.2.c N.S0010-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 1 1 0 0 (0x2c)(172)
+CDMABandClassList ::= SEQUENCE OF [171] IMPLICIT CDMABandClassInformation
+
+-- 6.5.2.d N.S0010-0 v 1.0 N.S0006
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 1 1 0 1 (0x2d)(173)
+CDMAPilotPN ::= OCTET STRING
+
+-- 6.5.2.e (TSB76) N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 1 1 1 0 (0x2e)(174)
+CDMAServiceConfigurationRecord ::= OCTET STRING
+-- a. This field carries the CDMA Service Configuration Record. The bit-layout is the
+-- same as that of Service Configuration Record in TSB74, and J-STD-008.
+
+-- 6.5.2.f (TSB76) CDMAServiceOption N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 0 1 1 1 1 (0x2f)(175)
+CDMAServiceOption ::= OCTET STRING
+--a. This field carries the CDMA Service Option. The bit-layout is the same as that of
+-- Service Option in TSB74 and J-STD-008.
+
+-- 6.5.2.g N.S0010-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0xbf)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 0 0 0 (0x30)(176)
+CDMAServiceOptionList ::= SEQUENCE OF [175] IMPLICIT CDMAServiceOption
+
+-- 6.5.2.h N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 0 0 1 (0x31)(177)
+CDMAStationClassMark2 ::= OCTET STRING
+
+
+-- 6 .5.2.i N.S0007-0 v 1.0 N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 0 1 0 (0x32)(178)
+TDMAServiceCode ::= OCTET STRING
+
+
+-- 6.5.2.j N.S0007-0 v 1.0 N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 0 1 1 (0x33)(179)
+TDMATerminalCapability ::= OCTET STRING
+
+-- 6.5.2.k N.S0007-0 v 1.0 N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 1 0 0 (0x34)(180)
+-- last TSB76 assigned identifier)
+TDMAVoiceCoder ::= OCTET STRING
+
+
+
+-- 6.5.2.aa (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 1 0 1 (0x45)(197)
+BaseStationManufacturerCode ::= OCTET STRING
+
+-- 6.5.2.ab (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 1 1 0 (0x46)(198)
+BSMCStatus ::= OCTET STRING
+
+-- 6.5.2.ac (N.S0007-0 v 1.0) N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 1 1 1 (0x49)(199)
+ControlChannelMode ::= OCTET STRING
+
+-- 6 .5.2.ad (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 1 0 0 0 (0x48)(200)
+NonPublicData ::= OCTET STRING
+
+
+-- 6.5.2.ae (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 1 0 0 1 (0x49)(201)
+PagingFrameClass ::= OCTET STRING
+
+
+-- 6.5.2.af (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 1 0 1 0 (0x4a)(202)
+PSID-RSIDInformation ::= OCTET STRING
+
+-- 6.5.2.ag (N.S0007-0 v 1.0)
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 1 0 1 1 (0x4b)(203)
+
+PSID-RSIDList ::= SEQUENCE{
+ pSID-RSIDInformation [202] IMPLICIT PSID-RSIDInformation,
+ -- M 6.5.2.af
+ pSID-RSIDInformation1 [202] IMPLICIT PSID-RSIDInformation OPTIONAL
+ --O 6.5.2.af a
+ }
+
+-- 6.5.2.ah (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 1 1 0 0 (0x4c)(204)
+ServicesResult ::= OCTET STRING
+
+-- 6.5.2.ai (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 1 1 0 1 (0x4d)(205)
+SOCStatus ::= OCTET STRING
+
+-- 6.5.2.aj (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 1 1 1 0 (0x4e)(206)
+SystemOperatorCode ::= OCTET STRING
+
+
+-- 6.5.2.aj
+-- XXX Same code as ISLPinformation???
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 1 0 0 1 (0x59)()
+-- SecondInterMSCCircuitID N.S0008-0 v 1.0
+
+-- 6.5.2.ak (N.S0007-0 v 1.0)
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 1 1 1 1 (0x4f)(207)
+TargetCellIDList ::= SEQUENCE {
+ targetCellID [3] IMPLICIT TargetCellID,
+ -- M 6.5.2.148
+ targetCellID1 [3] IMPLICIT TargetCellID OPTIONAL
+ -- O 6.5.2.148
+ }
+
+
+-- 6.5.2.al (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 0 0 0 0 (0x50)(208)
+UserGroup ::= OCTET STRING
+
+
+-- 6.5.2.am (N.S0007-0 v 1.0)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 0 0 0 1 (0x51)(209)
+UserZoneData ::= OCTET STRING
+
+-- 6.5.2.ap (IS-737)
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 0 0 1 1 (0x53)(211)
+CDMAConnectionReferenceInformation ::= SEQUENCE {
+ cdmaConnectionReference [208] IMPLICIT CDMAConnectionReference,
+ -- M 6.5.2.bb d
+ cdmaServiceOption [175] IMPLICIT CDMAServiceOption,
+ -- M 6.5.2.f
+ cdmaState [213] IMPLICIT CDMAState OPTIONAL,
+ -- O 6.5.2.ad a
+ dataPrivacyParameters [216] IMPLICIT DataPrivacyParameters OPTIONAL,
+ -- O 6.5.2.au b
+ cdmaServiceOptionConnectionIdentifier [361] IMPLICIT CDMAServiceOptionConnectionIdentifier OPTIONAL,
+ --O 6.5.2.gr e
+ ...
+ }
+
+-- 6.5.2.ad (IS-737)
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 0 1 0 0 (0x54)(212)
+CDMAConnectionReferenceList ::= SEQUENCE OF SEQUENCE {
+ cdmaConnectionReferenceInformation [211] IMPLICIT CDMAConnectionReferenceInformation,
+ -- M 6.5.2.ap
+ cdmaConnectionReferenceInformation2 [211] IMPLICIT CDMAConnectionReferenceInformation OPTIONAL,
+ -- O 6.5.2.ap a
+ ...
+ }
+
+--6.5.2.ar
+-- 6.5.2.ad CDMAState N.S0008-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 1 0 1 (0x55)(213)
+CDMAState ::= OCTET STRING
+
+-- 6.5.2.as N.S0008-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 0 1 1 0 (0x56)(214)
+ChangeServiceAttributes ::= OCTET STRING
+
+-- 6.5.2.at
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 0 1 1 1 (0x57)(215)
+DataKey ::= OCTET STRING
+
+-- 6.5.2.au
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 1 0 0 0 (0x58)(216)
+DataPrivacyParameters ::= OCTET STRING
+
+
+-- 6.5.2.av
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 1 0 0 1 (0x59)(217)
+ISLPInformation ::= OCTET STRING
+
+-- 6.5.2.aw ReasonList N.S0008-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 1 0 1 0 (0x5a)(218)
+ReasonList ::= ENUMERATED {
+ unknown (0),
+ unable-to-configure-ISLP (1),
+ iSLP-failure (2),
+ service-allowed-but-facilities-not-available (3),
+ service-not-allowed (4),
+ no-Response-to-TMSI-assignment (5),
+ required-parameters-unavailable (6)
+ }
+
+-- 6.5.2.ay N.S0008-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 1 1 0 0 (0x5c)(220)
+TDMABandwidth ::= OCTET STRING
+
+
+-- 6.5.2.az N.S0008-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 1 1 0 1 (0x5d)(221)
+TDMADataFeaturesIndicator ::= OCTET STRING
+
+-- 6.5.2.ba
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 1 1 1 0 (0x5e)(222)
+TDMADataMode ::= OCTET STRING
+
+-- 6.5.2.bb
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 1 1 1 1 (0x5f)(223)
+TDMAVoiceMode ::= OCTET STRING
+
+-- 6.5.2.bb
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 1 0 0 1 0 (0x52)(208)
+CDMAConnectionReference ::= OCTET STRING
+-- a. This field carries the CDMA Service Option Connection Reference. The bitlayout
+-- is the same as that of Service Option Connection Reference in TSB74 and
+-- J-STD-008.
+
+-- 6.5.2.bc N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 0 0 0 0 (0x60)(224)
+AnalogRedirectInfo ::= OCTET STRING
+
+-- 6.5.2.bd N.S0010-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 0 0 0 1 (0x61)(225)
+AnalogRedirectRecord ::= SEQUENCE {
+ analogRedirectInfo [224] IMPLICIT AnalogRedirectInfo,
+ -- M 6.5.2.bc
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.82
+ ...
+ }
+
+-- 6.5.2.be N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 0 0 1 0 (0x62)(226)
+CDMAChannelNumber ::= OCTET STRING
+
+-- 6.5.2.bf N.S0010-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 0 0 1 1 (0x63)(227)
+CDMAChannelNumberList ::= SEQUENCE OF SEQUENCE{
+ cdmaChannelNumber [226] IMPLICIT CDMAChannelNumber,
+ -- M 6.5.2.be
+ cdmaChannelNumber2 [226] IMPLICIT CDMAChannelNumber,
+ -- O 6.5.2.be a
+ ...
+ }
+
+-- 6.5.2.bg N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 0 1 0 0 (0x64)(228)
+CDMAPowerCombinedIndicator ::= OCTET STRING
+
+-- 6.5.2.bh N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 0 1 0 1 (0x65)(229)
+CDMARedirectRecord ::= SEQUENCE {
+ cdmaBandClass [170] IMPLICIT CDMABandClass,
+ -- M 6.5.2.a a
+ cdmaChannelNumberList [227] IMPLICIT CDMAChannelNumberList,
+ -- M 6.5.2.bf
+ mscid [21] IMPLICIT MSCID,
+ -- M 6.5.2.82
+ cdmaNetworkIdentification [232] IMPLICIT CDMANetworkIdentification,
+ -- M 6.5.2.bk
+ ...
+ }
+
+-- 6.5.2.bi N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 0 1 1 0 (0x66)(230)
+CDMASearchParameters ::= OCTET STRING
+
+-- 6.5.2.bj N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 0 1 1 1 (0x67)(231)
+-- Reserved
+
+-- 6.5.2.bk N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 1 0 0 0 (0x68)(232)
+CDMANetworkIdentification ::= OCTET STRING
+
+-- 6.5.2.bl N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 1 0 0 1 (0x69)(233)
+-- XXX Is this correct? see (N.S0005-0 v 1.0 Chapter 5, page 219)
+-- Changed from DigitsType to Octetstring J-STD-036-AD-1
+NetworkTMSI ::= OCTET STRING
+
+-- 6.5.2.bm N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 1 0 1 0 (0x6a)(234)
+NetworkTMSIExpirationTime ::= OCTET STRING
+
+-- 6.5.2.bn N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 1 0 1 1 (0x6b)(235)
+NewNetworkTMSI ::= DigitsType
+
+-- 6.5.2.bo N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 1 1 0 0 (0x6c)(236)
+RequiredParametersMask ::= OCTET STRING
+
+-- 6.5.2.bp N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 1 1 0 1 (0x6d)(237)
+ServiceRedirectionCause ::= OCTET STRING
+
+-- 6.5.2.bq N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 1 1 1 0 (0x6e)(238)
+ServiceRedirectionInfo ::= OCTET STRING
+
+-- 6.5.2.br N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 0 1 1 1 1 (0x6f)(239)
+RoamingIndication ::= OCTET STRING
+
+-- 6.5.2.bs
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 0 0 0 0 (0x6f)(239)
+EmergencyServicesRoutingDigits ::= DigitsType
+
+-- 6.5.2.bu
+-- N.S0010-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 0 0 0 0 (0x70)(240)
+-- MSID
+
+
+-- 6.5.2.bv MSID
+
+MSID ::= CHOICE {
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+ imsi [242] IMPLICIT IMSI
+ }
+
+-- 6.5.2.bu (IS-751)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 0 0 1 0 (0x72)(242)
+-- Import from GSM MAP for convenience
+-- IMSI ::= OCTET STRING
+
+-- 6.5.2.bw N.S0012-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 0 0 1 1 (0x73)(243)
+CallingPartyName ::= OCTET STRING
+
+
+-- 6.5.2.bx N.S0012-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 0 1 0 0 (0x74)(244)
+DisplayText ::= OCTET STRING
+
+-- 6.5.2.by N.S0012-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 0 1 0 1 (0x75)(245)
+RedirectingPartyName ::= OCTET STRING
+
+-- 6.5.2.bz N.S0012-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 0 1 1 0 (0x76)(246)
+ServiceID ::= OCTET STRING
+
+--6.5.2.ca
+-- Ref N.S0013-0_v1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 0 1 1 1 (0x77) (247)
+AllOrNone ::= ENUMERATED{
+ notUsed ( 0 ),
+ allChangesMustSucceedOrNoneShouldBeApplied (1),
+ treatEachChangeIndependently (2)
+ }
+
+-- 6.5.2.cb N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 1 0 0 0 (0x78)(248)
+Change ::= ENUMERATED {
+ setDataItemToDefaultValue (1),
+ addDataItem (2),
+ deleteDataItem (3),
+ replaceDataItemWithAssociatedDataValue (4),
+...}
+
+-- 6.5.2.cc N.S0013-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0xbf)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 1 0 0 1 (0x79)(249)
+DataAccessElement ::= SEQUENCE {
+ dataID [251] IMPLICIT DataID,
+-- M 6.5.2.ce
+ change [248] IMPLICIT Change OPTIONAL,
+-- O 6.5.2.cb a
+ dataValue [256]IMPLICIT DataValue OPTIONAL,
+-- O 6.5.2.cj a
+ ...}
+
+-- 6.5.2.cd N.S0013-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 1 0 1 0 (0x7a) (250)
+DataAccessElementList ::= SEQUENCE OF SEQUENCE{
+ dataAccessElement1 [249] IMPLICIT DataAccessElement,
+ dataAccessElement2 [249] IMPLICIT DataAccessElement OPTIONAL
+}
+
+-- 6.5.2.ce N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 1 0 1 1 (0x7b)(251)
+DataID ::= OCTET STRING
+
+-- 6.5.2.cf N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 1 1 0 0 (0x7c)(252)
+DatabaseKey ::= OCTET STRING
+
+-- 6.5.2.cg N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 1 1 0 1 (0x7d)(253)
+DataResult ::= ENUMERATED {
+ not-used ( 0 ),
+ successful ( 1 ),
+ unsuccessful-unspecified ( 2 ),
+ unsuccessful-no-default-value-available ( 3 ),
+ reserved ( 4 ) }
+
+
+-- 6.5.2.ch N.S0013-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0xbf)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 1 1 1 0 (0x7e)(254)
+DataUpdateResult ::= SEQUENCE {
+ dataID [251] IMPLICIT DataID,
+-- M 6.5.2.ce
+ dataResult [253] IMPLICIT DataResult
+-- M 6.5.2.cg
+}
+
+-- 6.5.2.ci N.S0013-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 1 1 1 1 1 1 (0x7f)(255)
+DataUpdateResultList ::= SEQUENCE OF DataUpdateResult
+--DataUpdateResultList ::= SEQUENCE OF SEQUENCE{
+-- dataUpdateResult [254] IMPLICIT DataUpdateResult,
+ -- M 6.5.2.ch
+-- dataUpdateResultopt [254] IMPLICIT DataUpdateResult OPTIONAL
+ -- O 6.5.2.ch
+--}
+
+-- 6.5.2.cj N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 0 0 0 0 (0x00)(256)
+DataValue ::= OCTET STRING
+
+
+-- 6.5.2.ck DestinationAddress N.S0013-0 v 1.0
+DestinationAddress ::= CHOICE {
+ globalTitle [261] IMPLICIT GlobalTitle,
+ pC-SSN [32] IMPLICIT PC-SSN
+ }
+
+DetectionPointType ::= ENUMERATED {
+ tDP-R (1),
+ tDP-N (2),
+ eDP-R (3),
+ eDP-N (4)
+}
+
+-- 6.5.2.cl N.S0013-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 0 0 1 0 (0x02)(386)
+ExecuteScript ::= SEQUENCE {
+ scriptName [268] IMPLICIT ScriptName,
+-- M 6.5.2.cw a
+ scriptArgument [267] IMPLICIT ScriptArgument OPTIONAL
+-- O 6.5.2.cv b
+}
+
+-- 6.5.2.cm N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 0 0 1 1 (0x03)(387)
+FailureCause ::= OCTET STRING
+--encoding of this parameter is based on the encoding of
+--the information elements in T1.113.3 section 2.3.9.
+
+-- 6.5.2.cn N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 0 1 0 0 (0x04)(260)
+
+FailureType ::= ENUMERATED {
+ callAbandoned (1),
+ resourceDisconnect (2),
+ failureAtMSC (3),
+ sSFTExpiration (4)
+}
+
+
+-- 6.5.2.co N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 0 1 0 1 (0x05)(261)
+GlobalTitle ::= OCTET STRING
+--parameter carries the SCCP Global Title as defined in
+--Section 3 of ANSI T1.112.
+
+-- 6.5.2.cp N.S0013-0 v 1.0
+-- ModificationRequest
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 0 1 1 0 (0x06)(262)
+
+ModificationRequest ::= SEQUENCE {
+ serviceDataAccessElementList [271] IMPLICIT ServiceDataAccessElementList OPTIONAL,
+ allOrNone [247] IMPLICIT AllOrNone
+ }
+
+-- 6.5.2.cq N.S0013-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 0 1 1 1 (0x07)(263)
+ModificationRequestList ::= SEQUENCE OF [262] IMPLICIT ModificationRequest
+
+-- 6.5.2.cr ModificationResult N.S0013-0 v 1.0
+-- The ModificationResult CHOICE is not explicitly encoded with a parameter identifier and length
+ModificationResult ::= CHOICE
+ {dataResult [253] IMPLICIT DataResult,
+ serviceDataResultList [273] IMPLICIT ServiceDataResultList
+ }
+
+-- 6.5.2.cs N.S0013-0 v 1.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 1 0 0 0 (0x08)(264)
+ModificationResultList ::= SEQUENCE OF ModificationResult
+
+
+-- 6.5.2.ct N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 1 0 0 1 (0x09)(265)
+PrivateSpecializedResource ::= OCTET STRING
+--values are allocated by network operators for use
+--within their networks
+
+-- 6.5.2.cu N.S0013-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 1 0 1 0 (0x0a)(266)
+ResumePIC ::= ENUMERATED {
+ continue-Call-Processing (1),
+ collect-Information-PIC (2),
+ analyze-Information-PIC (3),
+ select-Route-PIC (4),
+ authorize-Origination-Attempt-PIC (5),
+ authorize-Call-Setup-PIC (6),
+ send-Call-PIC (7),
+ o-Alerting-PIC (8),
+ o-Active-PIC (9),
+ o-Suspended-PIC (10),
+ o-Null-PIC (11),
+ select-Facility-PIC (32),
+ present-Call-PIC (33),
+ authorize-Termination-Attempt-PIC (34),
+ t-Alerting-PIC (35),
+ t-Active-PIC (36),
+ t-Suspended-PIC (37),
+ t-Null-PIC (38)
+}
+
+-- 6.5.2.cv
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 1 0 1 1 (0x0b)(267)
+ScriptArgument ::= OCTET STRING
+
+-- 6.5.2.cw
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 1 1 0 0 (0x0c)(268)
+ScriptName ::= OCTET STRING
+
+-- 6.5.2.cx
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 1 1 0 1 (0x0d)(269)
+ScriptResult ::= OCTET STRING
+
+-- 6.5.2.cy
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 1 1 1 0 (0x0e) (270)
+ServiceDataAccessElement ::= SEQUENCE {
+ dataAccessElementList [250] IMPLICIT DataAccessElementList,
+ serviceID [246] IMPLICIT ServiceID OPTIONAL
+ }
+
+-- 6.5.2.cz
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 0 1 1 1 1 (0x0f)(271)
+ServiceDataAccessElementList ::= SEQUENCE OF [270] IMPLICIT ServiceDataAccessElement
+
+-- 6.5.2.da
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 0 0 0 0 (0x10)(272)
+ServiceDataResult ::= SEQUENCE {
+ dataUpdateResultList [255] IMPLICIT DataUpdateResultList,
+ serviceID [246] IMPLICIT ServiceID OPTIONAL
+ }
+
+-- 6.5.2.db
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 0 0 0 1 (0x11)(273)
+ServiceDataResultList ::= SEQUENCE OF [272] IMPLICIT ServiceDataResult
+
+-- 6.5.2.dc
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 0 0 1 0 (0x12)(274)
+SpecializedResource ::= OCTET STRING
+
+--SRFCapability ::= SET {
+-- specializedResource [274] IMPLICIT SpecializedResource OPTIONAL,
+-- privateSpecializedResource [265] IMPLICIT PrivateSpecializedResource OPTIONAL
+-- }
+--at least one must be present
+
+-- 6.5.2.dd
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 0 0 1 1 (0x13)(275)
+TimeDateOffset ::= OCTET STRING
+
+-- 6.5.2.de
+-- 1 0 1 1 1 1 1 1 (0xbf)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 0 1 0 0 (0x14)(276)
+TriggerAddressList ::= SET{
+ triggerList [278] IMPLICIT TriggerList,
+-- M 6.5.2.dg
+ triggerListOpt [278] IMPLICIT TriggerList OPTIONAL
+-- O 6.5.2.dg a
+}
+
+-- 6.5.2.df TIA/EIA/IS-848 N.S0004
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 0 1 0 1 (0x15)(277)
+TriggerCapability ::= OCTET STRING
+--see 6.5.2.gg for encoding
+
+-- 6.5.2.dg
+-- 1 0 1 1 1 1 1 1 (0xbf) (0xbf)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 0 1 1 0 (0x16)(278)
+-- 6.5.2.ck DestinationAddress N.S0013-0 v 1.0
+--DestinationAddress ::= CHOICE {
+-- globalTitle [261] IMPLICIT GlobalTitle,
+-- pC-SSN [32] IMPLICIT PC-SSN
+-- }
+
+TriggerList ::= SET{
+ destinationAddress DestinationAddress,
+ wIN-TriggerList [283] IMPLICIT WIN-TriggerList
+ -- M 6.5.2.dk
+}
+
+-- 6.5.2.dh
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 0 1 1 1 (0x17)(279)
+
+TriggerType ::= ENUMERATED {
+ all-Calls (1),
+ double-Introducing-Star (2),
+ single-Introducing-Star (3),
+ reserved-for-Home-System-Feature-Code (4),
+ double-Introducing-Pound (5),
+ single-Introducing-Pound (6),
+ revertive-Call (7),
+ a0-Digit (8),
+ a1-Digit (9),
+ a2-Digit (10),
+ a3-Digit (11),
+ a4-Digit (12),
+ a5-Digit (13),
+ a6-Digit (14),
+ a7-Digit (15),
+ a8-Digit (16),
+ a9-Digit (17),
+ a10-Digit (18),
+ a11-Digit (19),
+ a12-Digit (20),
+ a13-Digit (21),
+ a14-Digit (22),
+ a15-Digit (23),
+ local-Call (24),
+ intra-LATA-Toll-Call (25),
+ inter-LATA-Toll-Call (26),
+ world-Zone-Call (27),
+ international-Call (28),
+ unrecognized-Number (29),
+ prior-Agreement (30),
+ specific-Called-Party-Digit-String (31),
+ mobile-Termination (32),
+ advanced-Termination (33),
+ location (34),
+ locally-Allowed-Specific-Digit-String (35),
+ origination-Attempt-Authorized (36),
+ calling-Routing-Address-Available (37),
+ initial-Termination (38),
+ called-Routing-Address-Available (39),
+ o-Answer (40),
+ o-Disconnect (41),
+ o-Called-Party-Busy (42),
+ o-No-Answer (43),
+
+ terminating-Resource-Available (64),
+ t-Busy (65),
+ t-No-Answer (66),
+ t-No-Page-Response (67),
+ t-Routable (68),
+ t-Answer (69),
+ t-Disconnect (70),
+
+ reserved-for-TDP-R-DP-Type-value (220),
+ reserved-for-TDP-N-DP-Type-value (221),
+ reserved-for-EDP-R-DP-Type-value (222),
+ reserved-for-EDP-N-DP-Type-value (223),
+ ...
+ }
+-- 1 0 1 1 1 1 1 1 (0x9f) (0xbf)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 0 0 0 (0x18)(280)
+-- 6.5.2.di
+WINCapability ::= SET {
+ triggerCapability [277] IMPLICIT TriggerCapability OPTIONAL,
+-- O 6.5.2.df a
+ wINOperationsCapability [281] IMPLICIT WINOperationsCapability OPTIONAL
+-- O 6.5.2.dj a
+}
+
+-- 6.5.2.dj
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 0 0 1 (0x19)(281)
+WINOperationsCapability ::= OCTET STRING
+--see 6.5.2.kk for encoding
+
+--WIN-Trigger ::= SEQUENCE {
+-- triggerType [279] IMPLICIT TriggerType OPTIONAL,
+-- detectionPointType DetectionPointType
+-- }
+
+--6.5.2.dk N.S0013-0 v 1.0,X.S0004-550-E v1.0 2.301
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 0 1 1 (0x1b)(283)
+-- WIN-TriggerList ::= SET OF WIN-Trigger
+WIN-TriggerList ::= OCTET STRING
+
+-- 6.5.2.do
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 1 0 1 (0x1d)(285)
+
+SuspiciousAccess ::= ENUMERATED {
+ not-used (0),
+ anomalous-Digits (1),
+ unspecified (2),
+ ...
+ }
+-- 6.5.2.dp 1e 286
+-- 6.5.2.dq 1f 287
+-- 6.5.2.dr 20 288
+-- 6.5.2.ds 21 289
+-- (ANSI-41 6.5.2.dt) 2.2.2.25 J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 0 0 0 1 0 (0x22)(290)
+Teleservice-Priority ::= OCTET STRING
+
+-- 6.5.2.eb
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 0 1 0 1 0 1 0
+-- [298)
+--CommandCode
+--(IS-764 modification)
+
+-- 6.5.2.ec
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 0 1 0 1 0 1 1
+-- (299)
+DisplayText2 ::= OCTET STRING
+
+
+
+-- 6.5.2.ed
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 0 1 0 1 1 0 0
+-- (300)
+-- PageCount
+
+PageCount ::= OCTET STRING
+
+-- 6.5.2.ee
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 0 1 0 1 1 0 1
+-- (301)
+-- PageResponseTime
+PageResponseTime ::= OCTET STRING
+
+-- 2.258 X.S0004-550-E v2.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 0 1 1 1 0 (0x2e)(302)
+SMS-TransactionID ::= OCTET STRING
+
+-- 6.5.2.eg
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 0 1 1 1 1 (0x2f)(303)
+CallRecoveryID ::= SET{
+ billingID [1] IMPLICIT BillingID ,
+ timeDateOffset [275] IMPLICIT TimeDateOffset,
+ timeOfDay [309] IMPLICIT TimeOfDay,
+ ...}
+
+-- 6.5.2.eh
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 0 0 0 0 (0x30)(304)
+CallRecoveryIDList ::= SET OF [303] IMPLICIT CallRecoveryID
+
+-- callRecoveryID [303] IMPLICIT CallRecoveryID,
+-- callRecoveryIDopt [303] IMPLICIT CallRecoveryID OPTIONAL,
+-- }
+
+-- 6.5.2.ei TIA/EIA-41.5-D Modifications N.S0018Re ??
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 0 0 0 1 (0x31)(305)
+DMH-ServiceID ::= OCTET STRING
+
+-- 6.5.2.ej
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 0 0 1 0 (0x32)(306)
+FeatureIndicator ::= ENUMERATED {
+ not-used (0),
+ user-selective-call-forwarding (38),
+ ...
+ }
+-- See the DMH FeatureIndicator parameter for the values of this field.
+-- Dummy define here
+
+-- 6.5.2.ek
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 0 0 1 1 (0x33)(307)
+ControlNetworkID ::= OCTET STRING
+
+-- 6.5.2.el
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 0 1 0 0 (0x34)(308)
+ReleaseCause ::= ENUMERATED {
+ unspecified (0),
+ calling-Party (1),
+ called-Party (2),
+ commanded-Disconnect (3),
+ ...
+ }
+
+-- 6.5.2.em
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 0 1 0 1 (0x35) (309)
+TimeOfDay ::= INTEGER
+
+-- 6.5.2.en
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 0 1 1 0 (0x36) (310)
+CallStatus ::= ENUMERATED {
+ not-used (0),
+ call-Setup-in-Progress (1),
+ called-Party (2),
+ locally-Allowed-Call-No-Action (3),
+ ...
+ }
+
+-- 6.5.2.eo
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 0 1 1 1 (0x37)(311)
+DMH-ChargeInformation ::= OCTET STRING
+
+
+-- 6.5.2.ep
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 1 0 0 0 (0x38)(312)
+DMH-BillingIndicator ::= ENUMERATED {
+ unspecified (0)
+ }
+-- b. See the DMH BillingIndicator parameter for the values of this field. (?? Huh?)
+
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 1 0 0 1 (0x39)(313)
+-- 6.5.2.eq
+MSStatus ::= OCTET STRING
+
+-- 6.5.2.er
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 1 0 1 1 (0x3b)(315)
+PositionInformationCode::= OCTET STRING
+
+-- 2.38 http://www.3gpp2.org/Public_html/specs/X.S0004-550-E_v1.0_040406.pdf
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 1 1 1 1 0 0 (0x3c)(316)
+CaveKey ::= OCTET STRING
+
+-- 2.41 http://www.3gpp2.org/Public_html/specs/X.S0004-550-E_v1.0_040406.pdf
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 0 0 0 1 (0x41)(321)
+CDMA2000MobileSupportedCapabilities ::= OCTET STRING
+
+-- 2.114 http://www.3gpp2.org/Public_html/specs/X.S0004-550-E_v1.0_040406.pdf
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 0 1 0 1 (0x45)(325)
+EnhancedPrivacyEncryptionReport ::= OCTET STRING
+
+-- 6.5.2.fd
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 0 1 1 0 (0x46)(326)
+InterMessageTime ::= OCTET STRING
+
+-- 6.5.2.fe
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 0 1 1 1 (0x47)(327)
+-- (3xx)
+MSIDUsage ::= OCTET STRING
+
+-- 6.5.2.ff
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 1 0 0 0 (0x48)(328)
+-- (3xx)
+NewMINExtension ::= MINType
+
+-- (ANSI-41 6.5.2.fg) 2.2.2.7 J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 1 0 0 1 (0x49)(329)
+DTXIndication ::= OCTET STRING
+
+-- (ANSI-4a1 6.5.2.fh) 2.2.2.5 J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 1 0 1 0 (0x4a)(330)
+CDMAMobileCapabilities ::= OCTET STRING
+-- H G F E D C B A octet Notes
+-- Reserved MIPLI 1 a ( Bit A)
+--
+-- 0 No MS-initiated position determination.
+-- 1 MS-initiated position determination.
+
+-- (ANSI-41 6.5.2.fi) 2.2.2.8 J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 1 0 1 1 (0x4b)(331)
+-- GeneralizedTime
+-- Generalized Time is included by reference to Chapter 7. The definition from
+-- X.680 that is referenced from Chapter 7 should be used, and not the definition
+-- from TIA/EIA-41-D.
+
+-- (ANSI-41 6.5.2.fj) 2.2.2.9 J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 1 1 0 0 (0x4c)(332)
+-- GenericDigits
+
+-- (ANSI-41 6.5.2.fk) 2.2.2.10 J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 1 1 0 1 (0x4d)(333)
+GeographicPosition ::= OCTET STRING
+
+-- 2.2.2.11 (ANSI-41 6.5.2.fl) J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 1 1 1 0 (0x4e)(334)
+-- MobileCallStatus ::= OCTET STRING
+
+-- 2.2.2.12 (ANSI-41 6.5.2.fm) J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 0 1 1 1 1 (0x4f)(335)
+MobilePositionCapability ::= OCTET STRING
+
+-- 2.3.2.14 MobInfo_AMPS
+-- The MobInfo_AMPS (AMPS Analog Mobile Information) is a collection of information
+-- needed to determine the position of an MS that is currently operating in the AMPS analog mode.
+-- The MobInfo_AMPS macro has been defined solely for editorial convenience, and does not
+-- affect the encoding in any way.
+
+-- channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.47
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+
+-- 2.3.2.15 MobInfo_CDMA
+-- 6.5.2.fo MobInfo_CDMA
+-- MobInfo_CDMA Macro
+-- cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
+ -- (Serving) O 6.5.2.30 c
+-- cdmaCodeChannel [68] IMPLICIT CDMACodeChannel OPTIONAL,
+ -- O 6.5.2.31 a
+-- cdmaMobileCapabilities [330] IMPLICIT CDMAMobileCapabilities OPTIONAL,
+ -- O 6.5.2.xx a
+-- cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 a
+-- cdmaServingOneWayDelay2 [347] IMPLICIT CDMAServingOneWayDelay2 OPTIONAL,
+ -- O 6.5.2.gd a
+-- cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
+ -- O 6.5.2.f m
+-- cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
+ -- O 6.5.2.43 g
+-- cdmaPSMMList [346] IMPLICIT CDMAPSMMList OPTIONAL,
+ -- O 6.5.2.gc a
+
+-- 2.3.2.16 MobInfo_NAMPS TIA/EIA/J-STD-036-A
+-- channelData [5] IMPLICIT ChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.47
+-- nampsChannelData [76] IMPLICIT NAMPSChannelData OPTIONAL,
+ -- (Serving) M 6.5.2.86
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+
+-- 2.3.2.17 MobInfo_TDMA
+-- (new for ANSI-41-D Chapter 5, page 5-306)
+-- The MobInfo_TDMA (TDMA Mobile Information) is a collection of information needed to
+-- determine the position of an MS that is currently operating in the TDMA mode. The
+-- MobInfo_TDMA macro has been defined solely for editorial convenience, and does not affect
+-- the encoding in any way.
+-- tdmaChannelData [28] IMPLICIT TDMAChannelData,
+ -- M 6.5.2.153
+-- dtxIndication [329] IMPLICIT DTXIndication OPTIONAL,
+ -- O 6.5.2.fg a
+-- receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
+ -- O 6.5.2.106 a
+-- targetMeasurementList [157] IMPLICIT TargetMeasurementList OPTIONAL,
+ -- O 6.5.2.150 a
+-- tdma-MAHO-CELLID [359] IMPLICIT TDMA-MAHO-CELLID OPTIONAL,
+ -- O 2.3.2.26 b
+-- tdma-MAHO-CHANNEL [360] IMPLICIT TDMA-MAHO-CHANNEL OPTIONAL,
+ -- O 2.3.2.27 c
+-- tdma-TimeAlignment [362] IMPLICIT TDMA-TimeAlignment OPTIONAL,
+ -- O 2.3.2.29 d
+-- tdmaVoiceMode [223] IMPLICIT TDMAVoiceMode OPTIONAL,
+ -- O ANSI-41-E a
+-- voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL,
+ -- O 6.5.2.166 a
+
+-- 2.2.2.18 (ANSI-41 6.5.2.fr) J-STD-036-AD-1
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 0 0 0 (0x50)(336)
+PositionInformation ::= SET {
+ generalizedTime [331] IMPLICIT GeneralizedTime,
+ -- M 6.5.2.fi
+ geographicPosition [333] IMPLICIT GeographicPosition,
+ -- M 6.5.2.fk
+ positionSource [339] IMPLICIT PositionSource OPTIONAL,
+ -- O 6.5.2.fu
+ horizontal-Velocity [379] IMPLICIT Horizontal-Velocity OPTIONAL,
+ -- O 6.5.2.hk
+ vertical-Velocity [380] IMPLICIT Vertical-Velocity OPTIONAL,
+ -- O 6.5.2.hl
+ ...
+}
+
+-- 2.2.2.19 (ANSI-41 6.5.2.fs) J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 0 0 1 (0x51)(337)
+PositionRequestType ::= OCTET STRING
+
+-- 2.2.2.20 (ANSI-41 6.5.2.ft) J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 0 1 0 (0x52)(338)
+PositionResult ::= OCTET STRING
+
+-- 2.2.2.21 (ANSI-41 6.5.2.fu) J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 0 1 1 (0x53)(339)
+PositionSource ::= OCTET STRING
+
+-- 6.5.2.fv ACGEncountered N.S0023-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 1 0 0 (0x54)(340)
+ACGEncountered ::= OCTET STRING
+
+-- 6.5.2.fw N.S0023-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 1 0 1 (0x55)(341)
+ControlType ::= OCTET STRING
+
+-- 6.5.2.fx GapDuration N.S0023-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 1 1 0 (0x56)(342)
+GapDuration ::= ENUMERATED{
+ not-used (0)
+ }
+
+-- 6.5.2.fy GapInterval
+-- The GapInterval (GAPINT) identifies the average minimum amount of time in seconds
+-- that the NE must wait before sending another query of the type under control. The
+-- GapInterval CHOICE is not explicitly encoded with a parameter identifier and length.
+GapInterval ::= CHOICE {
+ sCFOverloadGapInterval [343] IMPLICIT SCFOverloadGapInterval,
+ -- O 6.5.2.fz a
+ serviceManagementSystemGapInterval [344] IMPLICIT ServiceManagementSystemGapInterval
+ -- O 6.5.2.ga b
+}
+
+-- 6.5.2.fz N.S0023-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 0 1 1 1 (0x57)(343)
+SCFOverloadGapInterval ::= ENUMERATED {
+ not-used (0)
+ }
+
+
+-- 6.5.2.ga N.S0023-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 1 0 0 0 (0x58)(344)
+ServiceManagementSystemGapInterval ::= ENUMERATED{
+ not-used (0)
+ }
+
+-- 2.2.2.3 (ANSI-41 6.5.2.gb) J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 0 1 1 0 0 1(0x59)(345)
+CDMAPSMMCount ::= OCTET STRING
+
+-- 2.2.2.4 (ANSI-41 6.5.2.gc) J-STD-036-AD-1
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 1 0 1 0 (0x5a)(346)
+ CDMAPSMMList ::= SET OF SET{
+ cdmaServingOneWayDelay2 [347] IMPLICIT CDMAServingOneWayDelay2,
+ -- M 6.5.2.gd
+ cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList,
+ -- M 6.5.2.43
+ cdmaTargetMAHOList2 [136] IMPLICIT CDMATargetMAHOList OPTIONAL
+ -- O 6.5.2.43 a
+}
+
+-- 2.2.2.5 (ANSI-41 6.5.2.gd) J-STD-036-AD-1
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 1 0 1 1 (0x5b)(347)
+CDMAServingOneWayDelay2 ::= OCTET STRING
+
+-- 6.5.2.ge (Misc. 10.9)
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 1 1 0 0 (0x5c)(348)
+QoSPriority ::= OCTET STRING
+
+-- 6.5.2.gf
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 1 1 0 1 (0x5d)(349)
+PDSNAddress ::= OCTET STRING
+
+-- 6.5.2.gg
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 1 1 1 0 (0x5e)(350)
+PDSNProtocolType ::= OCTET STRING
+
+-- 6.5.2.gh
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 0 1 1 1 1 1 (0x5f)(351)
+CDMAMSMeasuredChannelIdentity ::= OCTET STRING
+
+-- 6.5.2.gj Range N.S0025-B v1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 0 0 0 0 (0x60)(352)
+Range ::= INTEGER
+
+-- 6.5.2.gk InvokingNEType N.S0025-B v1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 0 0 0 1 (0x61)(353)
+InvokingNEType ::= INTEGER
+
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 0 0 1 0 (0x62)(354)
+
+-- 6.5.2.gl
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 0 0 1 1 (0x63)(355)
+CallingPartyCategory ::= OCTET STRING
+
+--The CallingPartyCategory (CPC) parameter identifies the Calling Party's Category. This
+--parameter is based on the Calling Party's Category parameter defined in Section 3.11 of
+--ITU-T Q.763-1997 and includes the "reserved for national use" values.
+
+
+-- 6.5.2.gm
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 0 1 0 0 (0x64)(356)
+CDMA2000HandoffInvokeIOSData ::= OCTET STRING
+
+-- 6.5.2.gn
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 0 1 0 1 (0x65)(357)
+CDMA2000HandoffResponseIOSData ::= OCTET STRING
+
+-- 6.5.2.go X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 0 1 1 0 (0x66)(358)
+LCS-Client-ID ::= DigitsType
+
+-- 2.3.2.26 TIA/EIA/J-STD-036-A
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 0 1 1 1 (0x67)(359)
+TDMA-MAHO-CELLID ::= OCTET STRING
+
+-- 2.3.2.27
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 1 0 0 0 (0x68)(360)
+TDMA-MAHO-CHANNEL ::= OCTET STRING
+
+-- 2.3.2.29
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 1 0 1 0 (0x6a)(362)
+TDMA-TimeAlignment ::= OCTET STRING
+
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 1 1 0 0 (0x6c)(364)
+-- 2.3.2.28
+TDMA-MAHORequest ::= OCTET STRING
+
+-- 6.5.2.gr
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 1 0 0 1 (0x69)(361)
+CDMAServiceOptionConnectionIdentifier ::= OCTET STRING
+
+-- (0x6a)(362)
+-- (0x6b)(363)
+-- (0x6c)(364)
+-- (0x6d)(365)
+-- (0x6e)(366)
+
+-- 6.5.2.gx X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 0 1 1 1 1 (0x6f)(367)
+LCSBillingID ::= OCTET STRING
+
+-- 6.5.2.gy X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 1 0 0 0 0 (0x70)(368)
+LIRAuthorization ::= ENUMERATED {
+ not-used (0),
+ user-Authorized (1)
+ }
+
+-- 6.5.2.gz X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 1 0 0 0 1 (0x71)(369)
+LIRMode ::= ENUMERATED {
+ not-used (0),
+ unconditionally-Restricted (1),
+ pre-Authorized-LCS-Clients-Only (2),
+ pre-Authorized-LCS-Clients-and-User-Authorized-LCS-Clients (3),
+ unrestricted (4)
+ }
+
+-- 6.5.2.ha X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 0 0 1 0 (0x72)(370)
+MPCAddress ::= DigitsType
+
+-- 6.5.2.hb X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 0 0 1 1 (0x73)(371)
+MPCID ::= DigitsType
+
+--6.5.2.hc PositionQualityOfService
+--(New for MAP, Section 6.5.2)
+--The PositionQualityOfService (PQOS) is a collection of the required levels for the
+--independent positioning attributes that should be satisfied by the position estimate. The
+--PositionQualityOfService macro has been defined solely for editorial convenience and
+--does not affect the encoding in any way.
+-- pqos-HorizontalPosition [372] IMPLICIT PQOS-HorizontalPosition OPTIONAL,
+ -- O 6.5.2.hd a, b
+-- pqos-HorizontalVelocity [373] IMPLICIT PQOS-HorizontalVelocity OPTIONAL,
+ -- O 6.5.2.he c
+-- pqos-MaximumPositionAge [374] IMPLICIT PQOS-MaximumPositionAge OPTIONAL,
+ -- O 6.5.2.hf d
+-- pqos-PositionPriority [375] IMPLICIT PQOS-PositionPriority OPTIONAL,
+ -- O 6.5.2.hg e
+-- pqos-ResponseTime [376] IMPLICIT PQOS-ResponseTime OPTIONAL,
+ -- O 6.5.2.hh f
+-- pqos-VerticalPosition [377] IMPLICIT PQOS-VerticalPosition OPTIONAL,
+ -- O 6.5.2.hi g
+-- pqos-VerticalVelocity [378] IMPLICIT PQOS-VerticalVelocity OPTIONAL,
+ -- O 6.5.2.hj h
+
+-- 6.5.2.hd X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 0 1 0 0 (0x74)(372)
+PQOS-HorizontalPosition ::= OCTET STRING
+
+-- 6.5.2.he X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 0 1 0 1 (0x75)(373)
+PQOS-HorizontalVelocity ::= OCTET STRING
+
+-- 6.5.2.hf X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 0 1 1 0 (0x76)(374)
+PQOS-MaximumPositionAge ::= OCTET STRING
+
+-- 6.5.2.hg X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 0 1 1 1 (0x77)(375)
+PQOS-PositionPriority ::= OCTET STRING
+
+-- 6.5.2.hh X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 1 0 0 0 (0x78)(376)
+PQOS-ResponseTime ::= ENUMERATED {
+ not-used (0),
+ no-Delay (1),
+ low-Delay (2),
+ delay-Tolerant (3)
+ }
+
+-- 6.5.2.hi X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 1 0 0 1 (0x79)(377)
+PQOS-VerticalPosition ::= OCTET STRING
+
+-- 6.5.2.hj X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 1 0 1 0 (0x7a)(378)
+PQOS-VerticalVelocity ::= OCTET STRING
+
+-- 6.5.2.hk X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 1 0 1 1 (0x7b)(379)
+Horizontal-Velocity ::= OCTET STRING
+
+-- 6.5.2.hl X.S0002-0 v2.0
+-- 1 0 0 1 1 1 1 1
+-- 1 0 0 0 0 0 1 0
+-- 0 1 1 1 1 1 0 0 (0x7c)(380)
+Vertical-Velocity ::= OCTET STRING
+
+-- 6.5.2.hm X.S0002-0 v2.0
+-- 1 0 1 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 1 1 1 1 1 0 1 (0x7d)(381)
+MPCAddressList ::= SET{
+ mpcAddress [370] IMPLICIT MPCAddress,
+ -- M 6.5.2.ha
+ mpcAddress2 [370] IMPLICIT MPCAddress OPTIONAL,
+ -- O 6.5.2.ha a
+ ...
+}
+-- (0x7e)(382)
+-- (0x7f)(383)
+-- (0x00)(384)
+-- (0x01)(385)
+-- (0x02)(386)
+-- (0x03)(387)
+
+-- 2.138 http://www.3gpp2.org/Public_html/specs/X.S0004-550-E_v1.0_040406.pdf
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 1 (0x83)
+-- 0 0 0 0 0 1 0 0 (0x04)(388)
+MINExtension ::= OCTET STRING
+
+-- 3.3.2.2 X.S0008-0 v1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 1 (0x83)
+-- 0 0 0 0 0 1 0 1 (0x05)(389)
+Information-Record ::= OCTET STRING
+
+-- 3.3.2.3 X.S0008-0 v1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 1 (0x83)
+-- 0 0 0 0 0 1 1 0 (0x06)(390)
+MEID ::= OCTET STRING
+
+-- 3.3.2.97 X.S0008-0 v1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 1 (0x83)
+-- 0 0 0 0 0 1 1 1 (0x07)(391)
+MEIDStatus ::= OCTET STRING
+
+-- 3.3.2.98 X.S0008-0 v1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 1 (0x83)
+-- 0 0 0 0 1 0 0 0 (0x08)(392)
+Record-Type ::= OCTET STRING
+
+-- 3.3.2.98 X.S0008-0 v1.0, X.S0004-550
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 1 (0x83)
+-- 0 0 0 1 0 0 0 1 (0x11)(401)
+MEIDValidated ::= NULL
+
+-- 6.5.2.lB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 1 0 1 (0x35)(181)
+AKeyProtocolVersion ::= OCTET STRING
+
+
+-- 6.5.2.mT N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 1 1 0 (0x36)(182)
+AuthenticationResponseReauthentication ::= OCTET STRING
+
+-- 6.5.2.nB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 1 1 1 (0x37)(183)
+BaseStationPartialKey ::= OCTET STRING
+
+-- 6.5.2.oC N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 0 0 0 (0x38)(184)
+MobileStationMIN ::= MINType
+-- b. Refer to the MINType parameter type (see 6.5.3.u1) for notes and field encoding.
+
+-- 6.5.2.pB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 0 0 1 (0x39)(185)
+MobileStationPartialKey ::= OCTET STRING
+
+-- 6.5.2.qB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 0 1 0 (0x3a)(186)
+ModulusValue ::= OCTET STRING
+
+-- 6.5.2.rB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 0 1 1 (0x3b)(187)
+NewlyAssignedMIN ::= MINType
+
+
+-- 6.5.2.sB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 1 0 1 (0x3d)(189)
+OTASP-ResultCode ::= OCTET STRING
+
+-- 6.5.2.tB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 1 1 0 (0x3e)(190)
+PrimitiveValue ::= OCTET STRING
+
+-- 6.5.2.uT N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 1 1 1 (0x3f)(191)
+RandomVariableReauthentication ::= OCTET STRING
+
+-- 6.5.2.vT N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 0 0 0 (0x40)(192)
+ReauthenticationReport ::= OCTET STRING
+
+-- 6.5.2.wB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 0 0 1 (0x41)(193)
+ServiceIndicator ::= OCTET STRING
+
+-- 6.5.2.xB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 0 1 0 (0x42)(194)
+SignalingMessageEncryptionReport ::= OCTET STRING
+
+
+-- 6.5.2.yC N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 0 1 1 (0x43)(195)
+TemporaryReferenceNumber ::= MINType
+
+-- 6.5.2.zB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 1 0 0 (0x44)(196)
+VoicePrivacyReport::= OCTET STRING
+
+-- 6.5.2.dnC N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 1 0 0 (0x1c)(284)
+MSC-Address::= DigitsType
+
+-- 6.5.2.dpC N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 1 1 0 (0x1e)(286)
+MobileStationIMSI ::= IMSIType
+
+-- 6.5.2.dqB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 1 1 1 (0x1f)(287)
+NewlyAssignedIMSI ::= IMSIType
+
+-- 6.5.2.adC MobileStationMSID N.S0011-0 v 1.0
+--The MobileStationMSID (MS_MSID) identifies the MIN or the IMSI value stored in the
+--MS's permanent memory at an OTASP call origination. The MS_MSID CHOICE is not
+--explicitly encoded with a parameter ID and length.
+
+MobileStationMSID ::= CHOICE {
+ mobileStationMIN [184] IMPLICIT MobileStationMIN,
+ -- O 6.5.2.oC
+ mobileStationIMSI [286] IMPLICIT MobileStationIMSI
+ -- O 6.5.2.dpC
+ }
+
+-- 6.5.2.aeB NewlyAssignedMSID
+--The NewlyAssignedMSID (NEWMSID) identifies the MIN or the IMSI value that may be
+--assigned following the successful completion of the OTASP process. The MS_MSID
+--CHOICE is not explicitly encoded with a parameter ID and length.
+
+NewlyAssignedMSID ::= CHOICE {
+ newlyAssignedMIN [187] IMPLICIT NewlyAssignedMIN,
+ -- O 6.5.2.rB
+ newlyAssignedIMSI [287] IMPLICIT NewlyAssignedIMSI
+ -- O 6.5.2.dqB
+ }
+
+--Notes:
+--a. Parameters with references ending with a "B" in them, such as "6.5.2.qB" are
+--common to BOTH CDMA and TDMA OTASP.
+--b. Parameters with references ending with a "C" in them, such as "6.5.2.oC" are
+--unique to CDMA OTASP.
+--c. Parameters with references ending with a "T" in them, such as "6.5.2.uT" are
+--unique to TDMA OTASP.
+
+-- 6.5.3 Parameter Type Definitions
+-- 6.5.3.2
+DigitsType ::= OCTET STRING
+
+-- 6.5.3.13
+Subaddress ::= OCTET STRING
+
+-- 6.5.3.u1 MINType
+MINType ::= OCTET STRING
+
+-- 6.5.3.u2 IMSIType
+
+IMSIType ::= OCTET STRING
+
+
+
+-- Definition to support ASN2WRS generating hf_indices
+
+InvokeData ::= SEQUENCE {
+ handoffMeasurementRequest HandoffMeasurementRequest,
+ facilitiesDirective FacilitiesDirective,
+ handoffBack HandoffBack,
+ facilitiesRelease FacilitiesRelease,
+ qualificationRequest QualificationRequest,
+ qualificationDirective QualificationDirective,
+ blocking Blocking,
+ unblocking Unblocking,
+ resetCircuit ResetCircuit,
+ trunkTest TrunkTest,
+ trunkTestDisconnect TrunkTestDisconnect,
+ registrationNotification RegistrationNotification,
+ registrationCancellation RegistrationCancellation,
+ locationRequest LocationRequest,
+ routingRequest RoutingRequest,
+ featureRequest FeatureRequest,
+ unreliableRoamerDataDirective UnreliableRoamerDataDirective,
+ mSInactive MSInactive,
+ transferToNumberRequest TransferToNumberRequest,
+ redirectionRequest RedirectionRequest,
+ handoffToThird HandoffToThird,
+ flashRequest FlashRequest,
+ authenticationDirective AuthenticationDirective,
+ authenticationRequest AuthenticationRequest,
+ baseStationChallenge BaseStationChallenge,
+ authenticationFailureReport AuthenticationFailureReport,
+ countRequest CountRequest,
+ interSystemPage InterSystemPage,
+ unsolicitedResponse UnsolicitedResponse,
+ bulkDeregistration BulkDeregistration,
+ handoffMeasurementRequest2 HandoffMeasurementRequest2,
+ facilitiesDirective2 FacilitiesDirective2,
+ handoffBack2 HandoffBack2,
+ handoffToThird2 HandoffToThird2,
+ authenticationDirectiveForward AuthenticationDirectiveForward,
+ authenticationStatusReport AuthenticationStatusReport,
+ informationDirective InformationDirective,
+ informationForward InformationForward,
+ interSystemAnswer InterSystemAnswer,
+ interSystemPage2 InterSystemPage2,
+ interSystemSetup InterSystemSetup,
+ originationRequest OriginationRequest,
+ randomVariableRequest RandomVariableRequest,
+ redirectionDirective RedirectionDirective,
+ remoteUserInteractionDirective RemoteUserInteractionDirective,
+ sMSDeliveryBackward SMSDeliveryBackward,
+ sMSDeliveryForward SMSDeliveryForward,
+ sMSDeliveryPointToPoint SMSDeliveryPointToPoint,
+ sMSNotification SMSNotification,
+ sMSRequest SMSRequest,
+ oTASPRequest OTASPRequest,
+ changeFacilities ChangeFacilities,
+ changeService ChangeService,
+ parameterRequest ParameterRequest,
+ tMSIDirective TMSIDirective,
+ numberPortabilityRequest NumberPortabilityRequest,
+ serviceRequest ServiceRequest,
+ analyzedInformation AnalyzedInformation,
+ connectionFailureReport ConnectionFailureReport,
+ connectResource ConnectResource,
+ facilitySelectedAndAvailable FacilitySelectedAndAvailable,
+ modify Modify,
+ search Search,
+ seizeResource SeizeResource,
+ sRFDirective SRFDirective,
+ tBusy TBusy,
+ tNoAnswer TNoAnswer,
+ smsDeliveryPointToPointAck SMSDeliveryPointToPointAck,
+ messageDirective MessageDirective,
+ bulkDisconnection BulkDisconnection,
+ callControlDirective CallControlDirective,
+ oAnswer OAnswer,
+ oDisconnect ODisconnect,
+ callRecoveryReport CallRecoveryReport,
+ tAnswer TAnswer,
+ tDisconnect TDisconnect,
+ unreliableCallData UnreliableCallData,
+ oCalledPartyBusy OCalledPartyBusy,
+ oNoAnswer ONoAnswer,
+ positionRequest PositionRequest,
+ positionRequestForward PositionRequestForward,
+ callTerminationReport CallTerminationReport,
+ geoPositionRequest GeoPositionRequest,
+ interSystemPositionRequest InterSystemPositionRequest,
+ interSystemPositionRequestForward InterSystemPositionRequestForward,
+ aCGDirective ACGDirective,
+ roamerDatabaseVerificationRequest RoamerDatabaseVerificationRequest,
+ addService AddService,
+ dropService DropService,
+ lcsParameterRequest LCSParameterRequest,
+ checkMEID CheckMEID,
+ positionEventNotification PositionEventNotification,
+ statusRequest StatusRequest,
+ interSystemSMSDeliveryPointToPoint InterSystemSMSDeliveryPointToPoint,
+ qualificationRequest2 QualificationRequest2
+}
+
+ReturnData ::= SEQUENCE {
+ handoffMeasurementRequestRes HandoffMeasurementRequestRes,
+ facilitiesDirectiveRes FacilitiesDirectiveRes,
+ handoffBackRes HandoffBackRes,
+ facilitiesReleaseRes FacilitiesReleaseRes,
+ qualificationDirectiveRes QualificationDirectiveRes,
+ qualificationRequestRes QualificationRequestRes,
+ resetCircuitRes ResetCircuitRes,
+ registrationNotificationRes RegistrationNotificationRes,
+ registrationCancellationRes RegistrationCancellationRes,
+ locationRequestRes LocationRequestRes,
+ routingRequestRes RoutingRequestRes,
+ featureRequestRes FeatureRequestRes,
+ transferToNumberRequestRes TransferToNumberRequestRes,
+ handoffToThirdRes HandoffToThirdRes,
+ authenticationDirectiveRes AuthenticationDirectiveRes,
+ authenticationRequestRes AuthenticationRequestRes,
+ baseStationChallengeRes BaseStationChallengeRes,
+ authenticationFailureReportRes AuthenticationFailureReportRes,
+ countRequestRes CountRequestRes,
+ interSystemPageRes InterSystemPageRes,
+ unsolicitedResponseRes UnsolicitedResponseRes,
+ handoffMeasurementRequest2Res HandoffMeasurementRequest2Res,
+ facilitiesDirective2Res FacilitiesDirective2Res,
+ handoffBack2Res HandoffBack2Res,
+ handoffToThird2Res HandoffToThird2Res,
+ authenticationDirectiveForwardRes AuthenticationDirectiveForwardRes,
+ authenticationStatusReportRes AuthenticationStatusReportRes,
+ informationDirectiveRes InformationDirectiveRes,
+ informationForwardRes InformationForwardRes,
+ interSystemPage2Res InterSystemPage2Res,
+ interSystemSetupRes InterSystemSetupRes,
+ originationRequestRes OriginationRequestRes,
+ randomVariableRequestRes RandomVariableRequestRes,
+ remoteUserInteractionDirectiveRes RemoteUserInteractionDirectiveRes,
+ sMSDeliveryBackwardRes SMSDeliveryBackwardRes,
+ sMSDeliveryForwardRes SMSDeliveryForwardRes,
+ sMSDeliveryPointToPointRes SMSDeliveryPointToPointRes,
+ sMSNotificationRes SMSNotificationRes,
+ sMSRequestRes SMSRequestRes,
+ oTASPRequestRes OTASPRequestRes,
+ changeFacilitiesRes ChangeFacilitiesRes,
+ changeServiceRes ChangeServiceRes,
+ parameterRequestRes ParameterRequestRes,
+ tMSIDirectiveRes TMSIDirectiveRes,
+ numberPortabilityRequestRes NumberPortabilityRequestRes,
+ serviceRequestRes ServiceRequestRes,
+ analyzedInformationRes AnalyzedInformationRes,
+ facilitySelectedAndAvailableRes FacilitySelectedAndAvailableRes,
+ modifyRes ModifyRes,
+ searchRes SearchRes,
+ seizeResourceRes SeizeResourceRes,
+ sRFDirectiveRes SRFDirectiveRes,
+ tBusyRes TBusyRes,
+ tNoAnswerRes TNoAnswerRes,
+ callControlDirectiveRes CallControlDirectiveRes,
+ oDisconnectRes ODisconnectRes,
+ tDisconnectRes TDisconnectRes,
+ oCalledPartyBusyRes OCalledPartyBusyRes,
+ oNoAnswerRes ONoAnswerRes,
+ positionRequestRes PositionRequestRes,
+ positionRequestForwardRes PositionRequestForwardRes,
+ interSystemPositionRequestRes InterSystemPositionRequestRes,
+ interSystemPositionRequestForwardRes InterSystemPositionRequestForwardRes,
+ roamerDatabaseVerificationRequestRes RoamerDatabaseVerificationRequestRes,
+ addServiceRes AddServiceRes,
+ dropServiceRes DropServiceRes,
+ interSystemSMSPage InterSystemSMSPage,
+ lcsParameterRequestRes LCSParameterRequestRes,
+ checkMEIDRes CheckMEIDRes,
+ statusRequestRes StatusRequestRes,
+ interSystemSMSDeliveryPointToPointRes InterSystemSMSDeliveryPointToPointRes,
+ qualificationRequest2Res QualificationRequest2Res
+}
+
+END
diff --git a/epan/dissectors/asn1/ansi_map/ansi_map.cnf b/epan/dissectors/asn1/ansi_map/ansi_map.cnf
new file mode 100644
index 0000000000..b895a82834
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_map/ansi_map.cnf
@@ -0,0 +1,522 @@
+# ansi_map.cnf
+# ansi_map conformation file
+# Copyright 2005-2007 Anders Broman
+
+#.IMPORT ../gsm_map/gsm_map-exp.cnf
+#.EXPORTS
+
+#.OMIT_ASSIGNMENT
+DetectionPointType
+EnhancedPrivacyEncryptionReport
+MINExtension
+
+#.USE_VALS_EXT
+# AnnouncementCode-std-ann
+TriggerType
+SMS-CauseCode
+SystemMyTypeCode
+# AnnouncementCode-tone
+DMH-RedirectionIndicator
+ActionCode
+SignalQuality
+# AlertCode-Cadence
+TerminalType
+
+#.NO_EMIT
+InvokeData
+ReturnData
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+
+
+# N.S0005-0 v 1.0 TCAP Formats and Procedures 5-16 Application Services
+# 6.3.2 Component Portion
+# The Operation Code is partitioned into an Operation Family followed by a
+# Specifier associated with each Operation Family member. For TIA/EIA-41 the
+# Operation Family is coded as decimal 9. Bit H of the Operation Family is always
+# coded as 0.
+
+#.FN_BODY MINType VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_min_type(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+#.FN_BODY DigitsType VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_digits_type(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+#.FN_BODY Subaddress VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_subaddress(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.3 AlertCode
+#.FN_BODY AlertCode VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_alertcode(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.5 AnnouncementCode
+#.FN_BODY AnnouncementCode VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_announcementcode(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.14 AuthorizationPeriod
+#.FN_BODY AuthorizationPeriod VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_authorizationperiod(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+
+# 6.5.2.16 BillingID
+#.FN_BODY BillingID VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_billingid(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.20 CallingFeaturesIndicator
+#.FN_BODY CallingFeaturesIndicator VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_callingfeaturesindicator(parameter_tvb,actx->pinfo,tree, actx);
+ }
+# 6.5.2.29 CDMACallMode
+#.FN_BODY CDMACallMode VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_cdmacallmode(parameter_tvb,actx->pinfo,tree, actx);
+ }
+# 6.5.2.30 CDMAChannelData
+#.FN_BODY CDMAChannelData VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_cdmachanneldata(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.41 CDMAStationClassMark
+#.FN_BODY CDMAStationClassMark VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_cdmastationclassmark(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.47 ChannelData
+#.FN_BODY ChannelData VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_channeldata(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.50 ConfidentialityModes
+#.FN_BODY ConfidentialityModes VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_confidentialitymodes(parameter_tvb,actx->pinfo,tree, actx);
+ }
+# 6.5.2.51 ControlChannelData
+#.FN_BODY ControlChannelData VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_controlchanneldata(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.53 DeniedAuthorizationPeriod
+#.FN_BODY DeniedAuthorizationPeriod VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_deniedauthorizationperiod(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.64 ExtendedMSCID
+#.FN_BODY ExtendedMSCID VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_extendedmscid(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.65 ExtendedSystemMyTypeCode
+#.FN_BODY ExtendedSystemMyTypeCode VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_extendedsystemmytypecode(parameter_tvb, actx->pinfo, tree, actx);
+ }
+#6.5.2.71 HandoffState
+#.FN_BODY HandoffState VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_handoffstate(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.72 InterMSCCircuitID
+#.FN_BODY InterMSCCircuitID VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_intermsccircuitid(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.78 MessageWaitingNotificationCount
+#.FN_BODY MessageWaitingNotificationCount VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_messagewaitingnotificationcount(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.79 MessageWaitingNotificationType
+#.FN_BODY MessageWaitingNotificationType VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_messagewaitingnotificationtype(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+
+# 6.5.2.82 MSCID
+#.FN_BODY MSCID VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_mscid(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.84 MSLocation
+#.FN_BODY MSLocation VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_mslocation(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.85 NAMPSCallMode
+#.FN_BODY NAMPSCallMode VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_nampscallmode(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.86 NAMPSChannelData
+#.FN_BODY NAMPSChannelData VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_nampschanneldata(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.88 OneTimeFeatureIndicator
+#.FN_BODY OneTimeFeatureIndicator VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_onetimefeatureindicator(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.90 OriginationTriggers
+#.FN_BODY OriginationTriggers VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_originationtriggers(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.91 PACAIndicator
+#.FN_BODY PACAIndicator VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_pacaindicator(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.93 PC_SSN
+#.FN_BODY PC-SSN VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_pc_ssn(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.94 PilotBillingID
+#.FN_BODY PilotBillingID VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_pilotbillingid(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.124
+#.FN_BODY SMS-BearerData VAL_PTR = &SMS_BearerData_tvb
+ int length;
+ SMS_BearerData_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ if (SMS_BearerData_tvb){
+ /* A zero length OCTET STRING will return a zero length tvb */
+ length = tvb_reported_length_remaining(SMS_BearerData_tvb,0);
+ if (length <=0){
+ proto_item_append_text(actx->created_item," length %%u",length);
+ SMS_BearerData_tvb = NULL;
+ return offset;
+ }
+ if (ansi_map_sms_tele_id != -1)
+ {
+ dissector_try_uint(is637_tele_id_dissector_table, ansi_map_sms_tele_id, SMS_BearerData_tvb, g_pinfo, g_tree);
+ }
+ else
+ {
+ switch(ServiceIndicator){
+ case 1: /* CDMA OTASP Service */
+ case 3: /* CDMA OTAPA Service */
+ dissector_try_uint(is683_dissector_table, ansi_map_is_invoke ? 0 : 1, SMS_BearerData_tvb, g_pinfo, g_tree);
+ break;
+ case 4: /* CDMA Position Determination Service */
+ dissector_try_uint(is801_dissector_table, ansi_map_is_invoke ? 0 : 1, SMS_BearerData_tvb, g_pinfo, g_tree);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+# 6.5.2.136 SMS-OriginationRestrictions
+#.FN_BODY SMS-OriginationRestrictions VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_sms_originationrestrictions(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.137
+# N.S0005-0 v 1.0
+#.FN_BODY SMS-TeleserviceIdentifier VAL_PTR = &parameter_tvb
+
+ int length;
+ tvbuff_t *parameter_tvb = NULL;
+ ansi_map_sms_tele_id = -1;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ /* A zero length OCTET STRING will return a zero length tvb */
+ length = tvb_reported_length_remaining(parameter_tvb,0);
+ if (length <=0){
+ proto_item_append_text(actx->created_item, " length %%u",length);
+ return offset;
+ }
+ ansi_map_sms_tele_id = tvb_get_ntohs(tvb,0);
+ if ((ansi_map_sms_tele_id != -1)&&(SMS_BearerData_tvb !=NULL))
+ {
+ dissector_try_uint(is637_tele_id_dissector_table, ansi_map_sms_tele_id, SMS_BearerData_tvb, g_pinfo, g_tree);
+ }
+ }
+
+# 6.5.2.146 SystemCapabilities */
+# Updated in N.S0008-0 v 1.0 */
+#.FN_BODY SystemCapabilities VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_systemcapabilities(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+
+# 6.5.2.159 TerminationTriggers
+#.FN_BODY TerminationTriggers VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_terminationtriggers(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.160 TransactionCapability
+#.FN_BODY TransactionCapability VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_transactioncapability(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.f (TSB76) CDMAServiceOption N.S0010-0 v 1.0
+#.FN_BODY CDMAServiceOption VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_cdmaserviceoption(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.aj SecondInterMSCCircuitID
+# -- XXX Same code as ISLPinformation???
+
+# 6.5.2.bw CallingPartyName N.S0012-0 v 1.0
+#.FN_BODY CallingPartyName VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_callingpartyname(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.df TriggerCapability
+#.FN_BODY TriggerCapability VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_triggercapability(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.dj WINOperationsCapability
+#.FN_BODY WINOperationsCapability VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_winoperationscapability(parameter_tvb,actx->pinfo,tree, actx);
+ }
+# 6.5.2.dk WIN-TriggerList
+#.FN_BODY WIN-TriggerList VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_win_trigger_list(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+# 6.5.2.ek ControlNetworkID
+#.FN_BODY ControlNetworkID VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_controlnetworkid(parameter_tvb,actx->pinfo,tree, actx);
+ }
+
+#6.5.2.gm CDMA2000HandoffInvokeIOSData
+#.FN_BODY CDMA2000HandoffInvokeIOSData VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ subtree = proto_item_add_subtree(actx->created_item, ett_CDMA2000HandoffInvokeIOSData);
+ dissect_cdma2000_a1_elements(parameter_tvb, actx->pinfo, subtree,
+ 0, tvb_reported_length_remaining(parameter_tvb,0));
+ }
+#6.5.2.gn CDMA2000HandoffResponseIOSData
+#.FN_BODY CDMA2000HandoffResponseIOSData VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ subtree = proto_item_add_subtree(actx->created_item, ett_CDMA2000HandoffResponseIOSData);
+ dissect_cdma2000_a1_elements(parameter_tvb, actx->pinfo, subtree,
+ 0, tvb_reported_length_remaining(parameter_tvb,0));
+ }
+#6.5.2.wB ServiceIndicator N.S0011-0 v 1.0
+#.FN_BODY ServiceIndicator VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ ServiceIndicator = tvb_get_guint8(parameter_tvb,0);
+ if (SMS_BearerData_tvb !=NULL)
+ {
+ switch(ServiceIndicator){
+ case 1: /* CDMA OTASP Service */
+ case 3: /* CDMA OTAPA Service */
+ dissector_try_uint(is683_dissector_table, ansi_map_is_invoke ? 0 : 1, SMS_BearerData_tvb, g_pinfo, g_tree);
+ break;
+ case 4: /* CDMA Position Determination Service */
+ dissector_try_uint(is801_dissector_table, ansi_map_is_invoke ? 0 : 1, SMS_BearerData_tvb, g_pinfo, g_tree);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+#.TYPE_ATTR
+# Dont't put the bytes after the name in the display
+CDMA2000HandoffInvokeIOSData TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+CDMA2000HandoffResponseIOSData TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+InterMSCCircuitID TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+MobileIdentificationNumber TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+MobileStationMIN TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+CallingPartyNumberString1 TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+CallingPartyNumberString2 TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+SMS-Address TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+SMS-DestinationAddress TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+SMS-OriginatingAddress TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+SMS-OriginalOriginatingAddress TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+SMS-OriginalDestinationAddress TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+SenderIdentificationNumber TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+MobileDirectoryNumber TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+Digits TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+MSCIdentificationNumber TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+NewlyAssignedMIN TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+RedirectingNumberDigits = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+RedirectingNumberString = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+CallingPartyNumberDigits1 = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+CallingPartyNumberDigits2 = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+TemporaryReferenceNumber TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL
+
+ActionCode TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &ansi_map_ActionCode_vals_ext
+AuthenticationCapability TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_AuthenticationCapability_vals)
+AlertResult TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_AlertResult_result_vals)
+AvailabilityType TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_AvailabilityType_vals)
+CancellationType TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_CancellationType_vals)
+GeographicAuthorization TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_GeographicAuthorization_vals)
+CountUpdateReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_CountUpdateReport_vals)
+ControlChannelMode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ControlChannelMode_vals)
+PageIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_PageIndicator_vals)
+SMS-AccessDeniedReason TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_AccessDeniedReason_vals)
+SMS-CauseCode TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &ansi_map_SMS_CauseCode_vals_ext
+SMS-ChargeIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_ChargeIndicator_vals)
+SMS-NotificationIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_NotificationIndicator_vals)
+#SMS-TeleserviceIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_TeleserviceIdentifier_vals)
+TDMABandwidth TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x0f STRINGS = VALS(ansi_map_TDMABandwidth_vals)
+TDMAServiceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_TDMAServiceCode_vals)
+OTASP-ResultCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_OTASP_ResultCode_vals)
+ServiceIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ServiceIndicator_vals)
+TerminationAccessType TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_TerminationAccessType_vals)
+TerminationTreatment TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_TerminationTreatment_vals)
+SignalingMessageEncryptionReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMEReport_vals)
+VoicePrivacyReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_VoicePrivacyReport_vals)
+PreferredLanguageIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_PreferredLanguageIndicator_vals)
+SetupResult TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SetupResult_vals)
+UniqueChallengeReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_UniqueChallengeReport_vals)
+ISLPInformation TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_islp_type_vals)
+ServiceRedirectionCause TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ServiceRedirectionCause_type_vals)
+SSDUpdateReport TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SSDUpdateReport_vals)
+ReauthenticationReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ReauthenticationReport_vals)
+MSIDUsage TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_MSIDUsage_m_or_i_vals)
+BSMCStatus TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_map_BSMCStatus_vals)
+PagingFrameClass TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_map_PagingFrameClass_vals)
+ServicesResult TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_map_ServicesResult_ppr_vals)
+SOCStatus TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_map_SOCStatus_vals)
+#.END
diff --git a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
new file mode 100644
index 0000000000..e32291d9bf
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
@@ -0,0 +1,5510 @@
+/* packet-ansi_map.c
+ * Routines for ANSI 41 Mobile Application Part (IS41 MAP) dissection
+ * Specications from 3GPP2 (www.3gpp2.org)
+ * Based on the dissector by :
+ * Michael Lum <mlum [AT] telostech.com>
+ * In association with Telos Technology Inc.
+ *
+ * Copyright 2005 - 2009, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Credit to Tomas Kukosa for developing the asn2wrs compiler.
+ *
+ * Title 3GPP2 Other
+ *
+ * Cellular Radiotelecommunications Intersystem Operations
+ * 3GPP2 N.S0005-0 v 1.0 ANSI/TIA/EIA-41-D
+ *
+ * Network Support for MDN-Based Message Centers
+ * 3GPP2 N.S0024-0 v1.0 IS-841
+ *
+ * Enhanced International Calling
+ * 3GPP2 N.S0027 IS-875
+ *
+ * ANSI-41-D Miscellaneous Enhancements Revision 0
+ * 3GPP2 N.S0015 PN-3590 (ANSI-41-E)
+ *
+ * Authentication Enhancements
+ * 3GPP2 N.S0014-0 v1.0 IS-778
+ *
+ * Features In CDMA
+ * 3GPP2 N.S0010-0 v1.0 IS-735
+ *
+ * OTASP and OTAPA
+ * 3GPP2 N.S0011-0 v1.0 IS-725-A
+ *
+ * Circuit Mode Services
+ * 3GPP2 N.S0008-0 v1.0 IS-737
+ * XXX SecondInterMSCCircuitID not implemented, parameter ID conflicts with ISLP Information!
+ *
+ * IMSI
+ * 3GPP2 N.S0009-0 v1.0 IS-751
+ *
+ * WIN Phase 1
+ * 3GPP2 N.S0013-0 v1.0 IS-771
+ *
+ * DCCH (Clarification of Audit Order with Forced
+ * Re-Registration in pre-TIA/EIA-136-A Implementation
+ * 3GPP2 A.S0017-B IS-730
+ *
+ * UIM
+ * 3GPP2 N.S0003
+ *
+ * WIN Phase 2
+ * 3GPP2 N.S0004-0 v1.0 IS-848
+ *
+ * TIA/EIA-41-D Pre-Paid Charging
+ * 3GPP2 N.S0018-0 v1.0 IS-826
+ *
+ * User Selective Call Forwarding
+ * 3GPP2 N.S0021-0 v1.0 IS-838
+ *
+ *
+ * Answer Hold
+ * 3GPP2 N.S0022-0 v1.0 IS-837
+ *
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/expert.h>
+#include <epan/tap.h>
+#include <epan/stat_tap_ui.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-ansi_map.h"
+#include "packet-ansi_a.h"
+#include "packet-gsm_map.h"
+#include "packet-tcap.h"
+#include "packet-ansi_tcap.h"
+
+#define PNAME "ANSI Mobile Application Part"
+#define PSNAME "ANSI MAP"
+#define PFNAME "ansi_map"
+
+
+void proto_register_ansi_map(void);
+void proto_reg_handoff_ansi_map(void);
+
+/* Preference settings */
+#define MAX_SSN 254
+static range_t *global_ssn_range;
+#define ANSI_MAP_TID_ONLY 0
+#define ANSI_MAP_TID_AND_SOURCE 1
+#define ANSI_MAP_TID_SOURCE_AND_DEST 2
+static gint ansi_map_response_matching_type = ANSI_MAP_TID_AND_SOURCE;
+
+static dissector_handle_t ansi_map_handle=NULL;
+
+/* Initialize the protocol and registered fields */
+static int ansi_map_tap = -1;
+static int proto_ansi_map = -1;
+
+static int hf_ansi_map_op_code_fam = -1;
+static int hf_ansi_map_op_code = -1;
+
+static int hf_ansi_map_reservedBitH = -1;
+static int hf_ansi_map_reservedBitHG = -1;
+static int hf_ansi_map_reservedBitHGFE = -1;
+static int hf_ansi_map_reservedBitFED = -1;
+static int hf_ansi_map_reservedBitD = -1;
+static int hf_ansi_map_reservedBitED = -1;
+
+static int hf_ansi_map_type_of_digits = -1;
+static int hf_ansi_map_na = -1;
+static int hf_ansi_map_pi = -1;
+static int hf_ansi_map_navail = -1;
+static int hf_ansi_map_si = -1;
+static int hf_ansi_map_digits_enc = -1;
+static int hf_ansi_map_np = -1;
+static int hf_ansi_map_nr_digits = -1;
+static int hf_ansi_map_bcd_digits = -1;
+static int hf_ansi_map_ia5_digits = -1;
+static int hf_ansi_map_subaddr_type = -1;
+static int hf_ansi_map_subaddr_odd_even = -1;
+static int hf_ansi_alertcode_cadence = -1;
+static int hf_ansi_alertcode_pitch = -1;
+static int hf_ansi_alertcode_alertaction = -1;
+static int hf_ansi_map_announcementcode_tone = -1;
+static int hf_ansi_map_announcementcode_class = -1;
+static int hf_ansi_map_announcementcode_std_ann = -1;
+static int hf_ansi_map_announcementcode_cust_ann = -1;
+static int hf_ansi_map_authorizationperiod_period = -1;
+static int hf_ansi_map_value = -1;
+static int hf_ansi_map_msc_type = -1;
+static int hf_ansi_map_handoffstate_pi = -1;
+static int hf_ansi_map_tgn = -1;
+static int hf_ansi_map_tmn = -1;
+static int hf_ansi_map_messagewaitingnotificationcount_tom = -1;
+static int hf_ansi_map_messagewaitingnotificationcount_no_mw = -1;
+static int hf_ansi_map_messagewaitingnotificationtype_mwi = -1;
+static int hf_ansi_map_messagewaitingnotificationtype_apt = -1;
+static int hf_ansi_map_messagewaitingnotificationtype_pt = -1;
+
+static int hf_ansi_map_trans_cap_prof = -1;
+static int hf_ansi_map_trans_cap_busy = -1;
+static int hf_ansi_map_trans_cap_ann = -1;
+static int hf_ansi_map_trans_cap_rui = -1;
+static int hf_ansi_map_trans_cap_spini = -1;
+static int hf_ansi_map_trans_cap_uzci = -1;
+static int hf_ansi_map_trans_cap_ndss = -1;
+static int hf_ansi_map_trans_cap_nami = -1;
+static int hf_ansi_trans_cap_multerm = -1;
+static int hf_ansi_map_terminationtriggers_busy = -1;
+static int hf_ansi_map_terminationtriggers_rf = -1;
+static int hf_ansi_map_terminationtriggers_npr = -1;
+static int hf_ansi_map_terminationtriggers_na = -1;
+static int hf_ansi_map_terminationtriggers_nr = -1;
+static int hf_ansi_trans_cap_tl = -1;
+static int hf_ansi_map_cdmaserviceoption = -1;
+static int hf_ansi_trans_cap_waddr = -1;
+static int hf_ansi_map_MarketID = -1;
+static int hf_ansi_map_swno = -1;
+static int hf_ansi_map_idno = -1;
+static int hf_ansi_map_segcount = -1;
+static int hf_ansi_map_sms_originationrestrictions_fmc = -1;
+static int hf_ansi_map_sms_originationrestrictions_direct = -1;
+static int hf_ansi_map_sms_originationrestrictions_default = -1;
+static int hf_ansi_map_systemcapabilities_auth = -1;
+static int hf_ansi_map_systemcapabilities_se = -1;
+static int hf_ansi_map_systemcapabilities_vp = -1;
+static int hf_ansi_map_systemcapabilities_cave = -1;
+static int hf_ansi_map_systemcapabilities_ssd = -1;
+static int hf_ansi_map_systemcapabilities_dp = -1;
+
+static int hf_ansi_map_mslocation_lat = -1;
+static int hf_ansi_map_mslocation_long = -1;
+static int hf_ansi_map_mslocation_res = -1;
+static int hf_ansi_map_nampscallmode_namps = -1;
+static int hf_ansi_map_nampscallmode_amps = -1;
+static int hf_ansi_map_nampschanneldata_navca = -1;
+static int hf_ansi_map_nampschanneldata_CCIndicator = -1;
+
+static int hf_ansi_map_callingfeaturesindicator_cfufa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cfbfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cfnafa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cwfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_3wcfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_pcwfa =-1;
+static int hf_ansi_map_callingfeaturesindicator_dpfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_ahfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_uscfvmfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_uscfmsfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_uscfnrfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cpdsfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_ccsfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_epefa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cdfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_vpfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_ctfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cnip1fa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cnip2fa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cnirfa = -1;
+static int hf_ansi_map_callingfeaturesindicator_cniroverfa = -1;
+static int hf_ansi_map_cdmacallmode_cdma = -1;
+static int hf_ansi_map_cdmacallmode_amps = -1;
+static int hf_ansi_map_cdmacallmode_namps = -1;
+static int hf_ansi_map_cdmacallmode_cls1 = -1;
+static int hf_ansi_map_cdmacallmode_cls2 = -1;
+static int hf_ansi_map_cdmacallmode_cls3 = -1;
+static int hf_ansi_map_cdmacallmode_cls4 = -1;
+static int hf_ansi_map_cdmacallmode_cls5 = -1;
+static int hf_ansi_map_cdmacallmode_cls6 = -1;
+static int hf_ansi_map_cdmacallmode_cls7 = -1;
+static int hf_ansi_map_cdmacallmode_cls8 = -1;
+static int hf_ansi_map_cdmacallmode_cls9 = -1;
+static int hf_ansi_map_cdmacallmode_cls10 = -1;
+static int hf_ansi_map_cdmachanneldata_Frame_Offset = -1;
+static int hf_ansi_map_cdmachanneldata_CDMA_ch_no = -1;
+static int hf_ansi_map_cdmachanneldata_band_cls = -1;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b6 = -1;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b5 = -1;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b4 = -1;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b3 = -1;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b2 = -1;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b1 = -1;
+static int hf_ansi_map_cdmachanneldata_np_ext = -1;
+static int hf_ansi_map_cdmachanneldata_nominal_pwr = -1;
+static int hf_ansi_map_cdmachanneldata_nr_preamble = -1;
+
+static int hf_ansi_map_cdmastationclassmark_pc = -1;
+static int hf_ansi_map_cdmastationclassmark_dtx = -1;
+static int hf_ansi_map_cdmastationclassmark_smi = -1;
+static int hf_ansi_map_cdmastationclassmark_dmi = -1;
+static int hf_ansi_map_channeldata_vmac = -1;
+static int hf_ansi_map_channeldata_dtx = -1;
+static int hf_ansi_map_channeldata_scc = -1;
+static int hf_ansi_map_channeldata_chno = -1;
+static int hf_ansi_map_ConfidentialityModes_vp = -1;
+static int hf_ansi_map_controlchanneldata_dcc = -1;
+static int hf_ansi_map_controlchanneldata_cmac = -1;
+static int hf_ansi_map_controlchanneldata_chno = -1;
+static int hf_ansi_map_controlchanneldata_sdcc1 = -1;
+static int hf_ansi_map_controlchanneldata_sdcc2 = -1;
+static int hf_ansi_map_ConfidentialityModes_se = -1;
+static int hf_ansi_map_deniedauthorizationperiod_period = -1;
+static int hf_ansi_map_ConfidentialityModes_dp = -1;
+
+static int hf_ansi_map_originationtriggers_all = -1;
+static int hf_ansi_map_originationtriggers_local = -1;
+static int hf_ansi_map_originationtriggers_ilata = -1;
+static int hf_ansi_map_originationtriggers_olata = -1;
+static int hf_ansi_map_originationtriggers_int = -1;
+static int hf_ansi_map_originationtriggers_wz = -1;
+static int hf_ansi_map_originationtriggers_unrec = -1;
+static int hf_ansi_map_originationtriggers_rvtc = -1;
+static int hf_ansi_map_originationtriggers_star = -1;
+static int hf_ansi_map_originationtriggers_ds = -1;
+static int hf_ansi_map_originationtriggers_pound = -1;
+static int hf_ansi_map_originationtriggers_dp = -1;
+static int hf_ansi_map_originationtriggers_pa = -1;
+static int hf_ansi_map_originationtriggers_nodig = -1;
+static int hf_ansi_map_originationtriggers_onedig = -1;
+static int hf_ansi_map_originationtriggers_twodig = -1;
+static int hf_ansi_map_originationtriggers_threedig = -1;
+static int hf_ansi_map_originationtriggers_fourdig = -1;
+static int hf_ansi_map_originationtriggers_fivedig = -1;
+static int hf_ansi_map_originationtriggers_sixdig = -1;
+static int hf_ansi_map_originationtriggers_sevendig = -1;
+static int hf_ansi_map_originationtriggers_eightdig = -1;
+static int hf_ansi_map_originationtriggers_ninedig = -1;
+static int hf_ansi_map_originationtriggers_tendig = -1;
+static int hf_ansi_map_originationtriggers_elevendig = -1;
+static int hf_ansi_map_originationtriggers_twelvedig = -1;
+static int hf_ansi_map_originationtriggers_thirteendig = -1;
+static int hf_ansi_map_originationtriggers_fourteendig = -1;
+static int hf_ansi_map_originationtriggers_fifteendig = -1;
+static int hf_ansi_map_triggercapability_init = -1;
+static int hf_ansi_map_triggercapability_kdigit = -1;
+static int hf_ansi_map_triggercapability_all = -1;
+static int hf_ansi_map_triggercapability_rvtc = -1;
+static int hf_ansi_map_triggercapability_oaa = -1;
+static int hf_ansi_map_triggercapability_oans = -1;
+static int hf_ansi_map_triggercapability_odisc = -1;
+static int hf_ansi_map_triggercapability_ona = -1;
+static int hf_ansi_map_triggercapability_ct = -1;
+static int hf_ansi_map_triggercapability_unrec =-1;
+static int hf_ansi_map_triggercapability_pa = -1;
+static int hf_ansi_map_triggercapability_at = -1;
+static int hf_ansi_map_triggercapability_cgraa = -1;
+static int hf_ansi_map_triggercapability_it = -1;
+static int hf_ansi_map_triggercapability_cdraa = -1;
+static int hf_ansi_map_triggercapability_obsy = -1;
+static int hf_ansi_map_triggercapability_tra = -1;
+static int hf_ansi_map_triggercapability_tbusy = -1;
+static int hf_ansi_map_triggercapability_tna = -1;
+static int hf_ansi_map_triggercapability_tans = -1;
+static int hf_ansi_map_triggercapability_tdisc = -1;
+static int hf_ansi_map_winoperationscapability_conn = -1;
+static int hf_ansi_map_winoperationscapability_ccdir = -1;
+static int hf_ansi_map_winoperationscapability_pos = -1;
+static int hf_ansi_map_PACA_Level = -1;
+static int hf_ansi_map_pacaindicator_pa = -1;
+
+static int hf_ansi_map_point_code = -1;
+static int hf_ansi_map_SSN = -1;
+static int hf_ansi_map_win_trigger_list = -1;
+
+#include "packet-ansi_map-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_ansi_map = -1;
+static gint ett_mintype = -1;
+static gint ett_digitstype = -1;
+static gint ett_billingid = -1;
+static gint ett_sms_bearer_data = -1;
+static gint ett_sms_teleserviceIdentifier = -1;
+static gint ett_extendedmscid = -1;
+static gint ett_extendedsystemmytypecode = -1;
+static gint ett_handoffstate = -1;
+static gint ett_mscid = -1;
+static gint ett_cdmachanneldata = -1;
+static gint ett_cdmastationclassmark = -1;
+static gint ett_channeldata = -1;
+static gint ett_confidentialitymodes = -1;
+static gint ett_controlchanneldata = -1;
+static gint ett_CDMA2000HandoffInvokeIOSData = -1;
+static gint ett_CDMA2000HandoffResponseIOSData = -1;
+static gint ett_originationtriggers = -1;
+static gint ett_pacaindicator = -1;
+static gint ett_callingpartyname = -1;
+static gint ett_triggercapability = -1;
+static gint ett_winoperationscapability = -1;
+static gint ett_win_trigger_list = -1;
+static gint ett_controlnetworkid = -1;
+static gint ett_transactioncapability = -1;
+static gint ett_cdmaserviceoption = -1;
+static gint ett_systemcapabilities = -1;
+static gint ett_sms_originationrestrictions = -1;
+
+#include "packet-ansi_map-ett.c"
+
+static expert_field ei_ansi_map_nr_not_used = EI_INIT;
+static expert_field ei_ansi_map_unknown_invokeData_blob = EI_INIT;
+static expert_field ei_ansi_map_no_data = EI_INIT;
+
+/* Global variables */
+static dissector_table_t is637_tele_id_dissector_table; /* IS-637 Teleservice ID */
+static dissector_table_t is683_dissector_table; /* IS-683-A (OTA) */
+static dissector_table_t is801_dissector_table; /* IS-801 (PLD) */
+static packet_info *g_pinfo;
+static proto_tree *g_tree;
+tvbuff_t *SMS_BearerData_tvb = NULL;
+gint32 ansi_map_sms_tele_id = -1;
+static gboolean is683_ota;
+static gboolean is801_pld;
+static gboolean ansi_map_is_invoke;
+static guint32 OperationCode;
+static guint8 ServiceIndicator;
+
+
+struct ansi_map_invokedata_t {
+ guint32 opcode;
+ guint8 ServiceIndicator;
+};
+
+static void dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_);
+
+
+/* Transaction table */
+static GHashTable *TransactionId_table=NULL;
+
+static void
+ansi_map_init(void)
+{
+ TransactionId_table = g_hash_table_new(g_str_hash, g_str_equal);
+}
+
+static void
+ansi_map_cleanup(void)
+{
+ /* Destroy any existing memory chunks / hashes. */
+ g_hash_table_destroy(TransactionId_table);
+}
+
+/* Store Invoke information needed for the corresponding reply */
+static void
+update_saved_invokedata(packet_info *pinfo, struct ansi_tcap_private_t *p_private_tcap){
+ struct ansi_map_invokedata_t *ansi_map_saved_invokedata;
+ address* src = &(pinfo->src);
+ address* dst = &(pinfo->dst);
+ guint8 *src_str;
+ guint8 *dst_str;
+ const char *buf = NULL;
+
+ src_str = address_to_str(wmem_packet_scope(), src);
+ dst_str = address_to_str(wmem_packet_scope(), dst);
+
+ /* Data from the TCAP dissector */
+ if ((!pinfo->fd->flags.visited)&&(p_private_tcap->TransactionID_str)){
+ /* Only do this once XXX I hope it's the right thing to do */
+ /* The hash string needs to contain src and dest to distiguish differnt flows */
+ switch(ansi_map_response_matching_type){
+ case ANSI_MAP_TID_ONLY:
+ buf = wmem_strdup(wmem_packet_scope(), p_private_tcap->TransactionID_str);
+ break;
+ case ANSI_MAP_TID_AND_SOURCE:
+ buf = wmem_strdup_printf(wmem_packet_scope(), "%s%s",p_private_tcap->TransactionID_str,src_str);
+ break;
+ case ANSI_MAP_TID_SOURCE_AND_DEST:
+ default:
+ buf = wmem_strdup_printf(wmem_packet_scope(), "%s%s%s",p_private_tcap->TransactionID_str,src_str,dst_str);
+ break;
+ }
+ /* If the entry allready exists don't owervrite it */
+ ansi_map_saved_invokedata = (struct ansi_map_invokedata_t *)g_hash_table_lookup(TransactionId_table,buf);
+ if(ansi_map_saved_invokedata)
+ return;
+
+ ansi_map_saved_invokedata = wmem_new(wmem_file_scope(), struct ansi_map_invokedata_t);
+ ansi_map_saved_invokedata->opcode = p_private_tcap->d.OperationCode_private;
+ ansi_map_saved_invokedata->ServiceIndicator = ServiceIndicator;
+
+ g_hash_table_insert(TransactionId_table,
+ wmem_strdup(wmem_file_scope(), buf),
+ ansi_map_saved_invokedata);
+
+ /*g_warning("Invoke Hash string %s pkt: %u",buf,pinfo->num);*/
+ }
+}
+/* value strings */
+const value_string ansi_map_opr_code_strings[] = {
+ { 1, "Handoff Measurement Request" },
+ { 2, "Facilities Directive" },
+ { 3, "Mobile On Channel" },
+ { 4, "Handoff Back" },
+ { 5, "Facilities Release" },
+ { 6, "Qualification Request" },
+ { 7, "Qualification Directive" },
+ { 8, "Blocking" },
+ { 9, "Unblocking" },
+ { 10, "Reset Circuit" },
+ { 11, "Trunk Test" },
+ { 12, "Trunk Test Disconnect" },
+ { 13, "Registration Notification" },
+ { 14, "Registration Cancellation" },
+ { 15, "Location Request" },
+ { 16, "Routing Request" },
+ { 17, "Feature Request" },
+ { 18, "Reserved 18 (Service Profile Request, IS-41-C)" },
+ { 19, "Reserved 19 (Service Profile Directive, IS-41-C)" },
+ { 20, "Unreliable Roamer Data Directive" },
+ { 21, "Reserved 21 (Call Data Request, IS-41-C)" },
+ { 22, "MS Inactive" },
+ { 23, "Transfer To Number Request" },
+ { 24, "Redirection Request" },
+ { 25, "Handoff To Third" },
+ { 26, "Flash Request" },
+ { 27, "Authentication Directive" },
+ { 28, "Authentication Request" },
+ { 29, "Base Station Challenge" },
+ { 30, "Authentication Failure Report" },
+ { 31, "Count Request" },
+ { 32, "Inter System Page" },
+ { 33, "Unsolicited Response" },
+ { 34, "Bulk Deregistration" },
+ { 35, "Handoff Measurement Request 2" },
+ { 36, "Facilities Directive 2" },
+ { 37, "Handoff Back 2" },
+ { 38, "Handoff To Third 2" },
+ { 39, "Authentication Directive Forward" },
+ { 40, "Authentication Status Report" },
+ { 41, "Reserved 41" },
+ { 42, "Information Directive" },
+ { 43, "Information Forward" },
+ { 44, "Inter System Answer" },
+ { 45, "Inter System Page 2" },
+ { 46, "Inter System Setup" },
+ { 47, "Origination Request" },
+ { 48, "Random Variable Request" },
+ { 49, "Redirection Directive" },
+ { 50, "Remote User Interaction Directive" },
+ { 51, "SMS Delivery Backward" },
+ { 52, "SMS Delivery Forward" },
+ { 53, "SMS Delivery Point to Point" },
+ { 54, "SMS Notification" },
+ { 55, "SMS Request" },
+ { 56, "OTASP Request" },
+ { 57, "Information Backward" },
+ { 58, "Change Facilities" },
+ { 59, "Change Service" },
+ { 60, "Parameter Request" },
+ { 61, "TMSI Directive" },
+ { 62, "NumberPortabilityRequest" },
+ { 63, "Service Request" },
+ { 64, "Analyzed Information Request" },
+ { 65, "Connection Failure Report" },
+ { 66, "Connect Resource" },
+ { 67, "Disconnect Resource" },
+ { 68, "Facility Selected and Available" },
+ { 69, "Instruction Request" },
+ { 70, "Modify" },
+ { 71, "Reset Timer" },
+ { 72, "Search" },
+ { 73, "Seize Resource" },
+ { 74, "SRF Directive" },
+ { 75, "T Busy" },
+ { 76, "T NoAnswer" },
+ { 77, "Release" },
+ { 78, "SMS Delivery Point to Point Ack" },
+ { 79, "Message Directive" },
+ { 80, "Bulk Disconnection" },
+ { 81, "Call Control Directive" },
+ { 82, "O Answer" },
+ { 83, "O Disconnect" },
+ { 84, "Call Recovery Report" },
+ { 85, "T Answer" },
+ { 86, "T Disconnect" },
+ { 87, "Unreliable Call Data" },
+ { 88, "O CalledPartyBusy" },
+ { 89, "O NoAnswer" },
+ { 90, "Position Request" },
+ { 91, "Position Request Forward" },
+ { 92, "Call Termination Report" },
+ { 93, "Geo Position Directive" },
+ { 94, "Geo Position Request" },
+ { 95, "Inter System Position Request" },
+ { 96, "Inter System Position Request Forward" },
+ { 97, "ACG Directive" },
+ { 98, "Roamer Database Verification Request" },
+ { 99, "Add Service" },
+ { 100, "Drop Service" },
+ { 101, "InterSystemSMSPage" },
+ { 102, "LCSParameterRequest" },
+ { 103, "Unknown ANSI-MAP PDU" },
+ { 104, "Unknown ANSI-MAP PDU" },
+ { 105, "Unknown ANSI-MAP PDU" },
+ { 106, "PositionEventNotification" },
+ { 107, "Unknown ANSI-MAP PDU" },
+ { 108, "Unknown ANSI-MAP PDU" },
+ { 109, "Unknown ANSI-MAP PDU" },
+ { 110, "Unknown ANSI-MAP PDU" },
+ { 111, "InterSystemSMSDelivery-PointToPoint" },
+ { 112, "QualificationRequest2" },
+ { 0, NULL },
+};
+static value_string_ext ansi_map_opr_code_strings_ext = VALUE_STRING_EXT_INIT(ansi_map_opr_code_strings);
+
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+static int dissect_returnData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+static int dissect_ansi_map_SystemMyTypeCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+
+static dgt_set_t Dgt_tbcd = {
+ {
+ /* 0 1 2 3 4 5 6 7 8 9 a b c d e */
+ '0','1','2','3','4','5','6','7','8','9','?','B','C','*','#','?'
+ }
+};
+
+/* Type of Digits (octet 1, bits A-H) */
+static const value_string ansi_map_type_of_digits_vals[] = {
+ { 0, "Not Used" },
+ { 1, "Dialed Number or Called Party Number" },
+ { 2, "Calling Party Number" },
+ { 3, "Caller Interaction" },
+ { 4, "Routing Number" },
+ { 5, "Billing Number" },
+ { 6, "Destination Number" },
+ { 7, "LATA" },
+ { 8, "Carrier" },
+ { 0, NULL }
+};
+/* Nature of Number (octet 2, bits A-H )*/
+static const true_false_string ansi_map_na_bool_val = {
+ "International",
+ "National"
+};
+static const true_false_string ansi_map_pi_bool_val = {
+ "Presentation Restricted",
+ "Presentation Allowed"
+};
+static const true_false_string ansi_map_navail_bool_val = {
+ "Number is not available",
+ "Number is available"
+};
+#if 0
+static const true_false_string ansi_map_si_bool_val = {
+ "User provided, screening passed",
+ "User provided, not screened"
+};
+#endif
+static const value_string ansi_map_si_vals[] = {
+ { 0, "User provided, not screened"},
+ { 1, "User provided, screening passed"},
+ { 2, "User provided, screening failed"},
+ { 3, "Network provided"},
+ { 0, NULL }
+};
+/* Encoding (octet 3, bits A-D) */
+static const value_string ansi_map_digits_enc_vals[] = {
+ { 0, "Not used"},
+ { 1, "BCD"},
+ { 2, "IA5"},
+ { 3, "Octet string"},
+ { 0, NULL }
+};
+/* Numbering Plan (octet 3, bits E-H) */
+static const value_string ansi_map_np_vals[] = {
+ { 0, "Unknown or not applicable"},
+ { 1, "ISDN Numbering"},
+ { 2, "Telephony Numbering (ITU-T Rec. E.164,E.163)"},
+ { 3, "Data Numbering (ITU-T Rec. X.121)"},
+ { 4, "Telex Numbering (ITU-T Rec. F.69)"},
+ { 5, "Maritime Mobile Numbering"},
+ { 6, "Land Mobile Numbering (ITU-T Rec. E.212)"},
+ { 7, "Private Numbering Plan"},
+ { 13, "SS7 Point Code (PC) and Subsystem Number (SSN)"},
+ { 14, "Internet Protocol (IP) Address."},
+ { 15, "Reserved for extension"},
+ { 0, NULL }
+};
+
+static void
+dissect_ansi_map_min_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ const char *digit_str;
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_mintype);
+
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(tvb, offset, tvb_reported_length_remaining(tvb,offset), NULL, FALSE);
+ proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
+ proto_item_append_text(actx->created_item, " - %s", digit_str);
+}
+
+static void
+dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ guint8 octet , octet_len;
+ guint8 b1,b2,b3,b4;
+ int offset = 0;
+ const char *digit_str;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_digitstype);
+
+ /* Octet 1 */
+ proto_tree_add_item(subtree, hf_ansi_map_type_of_digits, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Octet 2 */
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitHG, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_si, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitD, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_navail, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_pi, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_na, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Octet 3 */
+ octet = tvb_get_guint8(tvb,offset);
+ proto_tree_add_item(subtree, hf_ansi_map_np, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_digits_enc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Octet 4 - */
+ switch(octet>>4){
+ case 0:/* Unknown or not applicable */
+ switch ((octet&0xf)){
+ case 1:
+ /* BCD Coding */
+ octet_len = tvb_get_guint8(tvb,offset);
+ proto_tree_add_item(subtree, hf_ansi_map_nr_digits, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if(octet_len == 0)
+ return;
+ offset++;
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(tvb, offset, tvb_reported_length_remaining(tvb,offset), &Dgt_tbcd, FALSE);
+ proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
+ proto_item_append_text(actx->created_item, " - %s", digit_str);
+ break;
+ case 2:
+ /* IA5 Coding */
+ octet_len = tvb_get_guint8(tvb,offset);
+ proto_tree_add_item(subtree, hf_ansi_map_nr_digits, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if(octet_len == 0)
+ return;
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_ia5_digits, tvb, offset, -1, ENC_ASCII|ENC_NA);
+ proto_item_append_text(actx->created_item, " - %s", tvb_get_string_enc(wmem_packet_scope(),tvb,offset,tvb_reported_length_remaining(tvb,offset),ENC_ASCII|ENC_NA));
+ break;
+ case 3:
+ /* Octet string */
+ break;
+ default:
+ break;
+ }
+ break;
+ case 1:/* ISDN Numbering (not used in this Standard). */
+ case 3:/* Data Numbering (ITU-T Rec. X.121) (not used in this Standard). */
+ case 4:/* Telex Numbering (ITU-T Rec. F.69) (not used in this Standard). */
+ case 5:/* Maritime Mobile Numbering (not used in this Standard). */
+ proto_tree_add_expert(subtree, pinfo, &ei_ansi_map_nr_not_used, tvb, offset, -1);
+ break;
+ case 2:/* Telephony Numbering (ITU-T Rec. E.164,E.163). */
+ case 6:/* Land Mobile Numbering (ITU-T Rec. E.212) */
+ case 7:/* Private Numbering Plan */
+ octet_len = tvb_get_guint8(tvb,offset);
+ proto_tree_add_item(subtree, hf_ansi_map_nr_digits, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if(octet_len == 0)
+ return;
+ offset++;
+ switch ((octet&0xf)){
+ case 1:
+ /* BCD Coding */
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(tvb, offset, tvb_reported_length_remaining(tvb,offset), &Dgt_tbcd, FALSE);
+ proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
+ proto_item_append_text(actx->created_item, " - %s", digit_str);
+ break;
+ case 2:
+ /* IA5 Coding */
+ proto_tree_add_item(subtree, hf_ansi_map_ia5_digits, tvb, offset, -1, ENC_ASCII|ENC_NA);
+ proto_item_append_text(actx->created_item, " - %s", tvb_get_string_enc(wmem_packet_scope(),tvb,offset,tvb_reported_length_remaining(tvb,offset),ENC_ASCII|ENC_NA));
+ break;
+ case 3:
+ /* Octet string */
+ break;
+ default:
+ break;
+ }
+ break;
+ case 13:/* ANSI SS7 Point Code (PC) and Subsystem Number (SSN). */
+ switch ((octet&0xf)){
+ case 3:
+ /* Octet string */
+ /* Point Code Member Number octet 2 */
+ b1 = tvb_get_guint8(tvb,offset);
+ offset++;
+ /* Point Code Cluster Number octet 3 */
+ b2 = tvb_get_guint8(tvb,offset);
+ offset++;
+ /* Point Code Network Number octet 4 */
+ b3 = tvb_get_guint8(tvb,offset);
+ offset++;
+ proto_tree_add_bytes_format_value(subtree, hf_ansi_map_point_code, tvb, offset-3, 3, NULL, "%u-%u-%u", b3, b2, b1);
+ /* Subsystem Number (SSN) octet 5 */
+ b4 = tvb_get_guint8(tvb,offset);
+ proto_tree_add_item(subtree, hf_ansi_map_SSN, tvb, offset, 1, ENC_NA);
+ proto_item_append_text(actx->created_item, " - Point Code %u-%u-%u SSN %u", b3, b2, b1, b4);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 14:/* Internet Protocol (IP) Address. */
+ break;
+ default:
+ proto_tree_add_expert(subtree, pinfo, &ei_ansi_map_nr_not_used, tvb, offset, -1);
+ break;
+ }
+
+}
+/* 6.5.3.13. Subaddress */
+
+#if 0
+static const true_false_string ansi_map_Odd_Even_Ind_bool_val = {
+ "Odd",
+ "Even"
+};
+#endif
+/* Type of Subaddress (octet 1, bits E-G) */
+static const value_string ansi_map_sub_addr_type_vals[] = {
+ { 0, "NSAP (CCITT Rec. X.213 or ISO 8348 AD2)"},
+ { 1, "User specified"},
+ { 2, "Reserved"},
+ { 3, "Reserved"},
+ { 4, "Reserved"},
+ { 5, "Reserved"},
+ { 6, "Reserved"},
+ { 7, "Reserved"},
+ { 0, NULL }
+};
+
+static void
+dissect_ansi_map_subaddress(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ /* Type of Subaddress (octet 1, bits E-G) */
+ proto_tree_add_item(subtree, hf_ansi_map_subaddr_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Odd/Even Indicator (O/E) (octet 1, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_subaddr_odd_even, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/*
+ * 6.5.2.2 ActionCode
+ * Table 114 ActionCode value
+ *
+ * 6.5.2.2 ActionCode(TIA/EIA-41.5-D, page 5-129) */
+
+static const value_string ansi_map_ActionCode_vals[] = {
+ { 0, "Not used"},
+ { 1, "Continue processing"},
+ { 2, "Disconnect call"},
+ { 3, "Disconnect call leg"},
+ { 4, "Conference Calling Drop Last Party"},
+ { 5, "Bridge call leg(s) to conference call"},
+ { 6, "Drop call leg on busy or routing failure"},
+ { 7, "Disconnect all call legs"},
+ { 8, "Attach MSC to OTAF"},
+ { 9, "Initiate RegistrationNotification"},
+ { 10, "Generate Public Encryption values"},
+ { 11, "Generate A-key"},
+ { 12, "Perform SSD Update procedure"},
+ { 13, "Perform Re-authentication procedure"},
+ { 14, "Release TRN"},
+ { 15, "Commit A-key"},
+ { 16, "Release Resources (e.g., A-key, Traffic Channel)"},
+ { 17, "Record NEWMSID"},
+ { 18, "Allocate Resources (e.g., Multiple message traffic channel delivery)."},
+ { 19, "Generate Authentication Signature"},
+ { 20, "Release leg and redirect subscriber"},
+ { 21, "Do Not Wait For MS User Level Response"},
+ { 22, "Prepare for CDMA Handset-Based Position Determination"},
+ { 23, "CDMA Handset-Based Position Determination Complete"},
+ { 0, NULL }
+};
+static value_string_ext ansi_map_ActionCode_vals_ext = VALUE_STRING_EXT_INIT(ansi_map_ActionCode_vals);
+
+/* 6.5.2.3 AlertCode */
+
+/* Pitch (octet 1, bits G-H) */
+static const value_string ansi_map_AlertCode_Pitch_vals[] = {
+ { 0, "Medium pitch"},
+ { 1, "High pitch"},
+ { 2, "Low pitch"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+/* Cadence (octet 1, bits A-F) */
+static const value_string ansi_map_AlertCode_Cadence_vals[] = {
+ { 0, "NoTone"},
+ { 1, "Long"},
+ { 2, "ShortShort"},
+ { 3, "ShortShortLong"},
+ { 4, "ShortShort2"},
+ { 5, "ShortLongShort"},
+ { 6, "ShortShortShortShort"},
+ { 7, "PBXLong"},
+ { 8, "PBXShortShort"},
+ { 9, "PBXShortShortLong"},
+
+ { 10, "PBXShortLongShort"},
+ { 11, "PBXShortShortShortShort"},
+ { 12, "PipPipPipPip"},
+ { 13, "Reserved. Treat the same as value 0, NoTone"},
+ { 14, "Reserved. Treat the same as value 0, NoTone"},
+ { 15, "Reserved. Treat the same as value 0, NoTone"},
+ { 16, "Reserved. Treat the same as value 0, NoTone"},
+ { 17, "Reserved. Treat the same as value 0, NoTone"},
+ { 18, "Reserved. Treat the same as value 0, NoTone"},
+ { 19, "Reserved. Treat the same as value 0, NoTone"},
+ { 0, NULL }
+};
+
+/* Alert Action (octet 2, bits A-C) */
+static const value_string ansi_map_AlertCode_Alert_Action_vals[] = {
+ { 0, "Alert without waiting to report"},
+ { 1, "Apply a reminder alert once"},
+ { 2, "Other values reserved. Treat the same as value 0, Alert without waiting to report"},
+ { 3, "Other values reserved. Treat the same as value 0, Alert without waiting to report"},
+ { 4, "Other values reserved. Treat the same as value 0, Alert without waiting to report"},
+ { 5, "Other values reserved. Treat the same as value 0, Alert without waiting to report"},
+ { 6, "Other values reserved. Treat the same as value 0, Alert without waiting to report"},
+ { 7, "Other values reserved. Treat the same as value 0, Alert without waiting to report"},
+ { 0, NULL }
+};
+static void
+dissect_ansi_map_alertcode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ /* Pitch (octet 1, bits G-H) */
+ proto_tree_add_item(subtree, hf_ansi_alertcode_pitch, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Cadence (octet 1, bits A-F) */
+ proto_tree_add_item(subtree, hf_ansi_alertcode_cadence, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Alert Action (octet 2, bits A-C) */
+ proto_tree_add_item(subtree, hf_ansi_alertcode_alertaction, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.4 AlertResult */
+/* Result (octet 1) */
+static const value_string ansi_map_AlertResult_result_vals[] = {
+ { 0, "Not specified"},
+ { 1, "Success"},
+ { 2, "Failure"},
+ { 3, "Denied"},
+ { 4, "NotAttempted"},
+ { 5, "NoPageResponse"},
+ { 6, "Busy"},
+ { 0, NULL }
+};
+
+/* 6.5.2.5 AnnouncementCode Updatef from NS0018Re*/
+/* Tone (octet 1) */
+static const value_string ansi_map_AnnouncementCode_tone_vals[] = {
+ { 0, "DialTone"},
+ { 1, "RingBack or AudibleAlerting"},
+ { 2, "InterceptTone or MobileReorder"},
+ { 3, "CongestionTone or ReorderTone"},
+ { 4, "BusyTone"},
+ { 5, "ConfirmationTone"},
+ { 6, "AnswerTone"},
+ { 7, "CallWaitingTone"},
+ { 8, "OffHookTone"},
+ { 17, "RecallDialTone"},
+ { 18, "BargeInTone"},
+ { 20, "PPCInsufficientTone"},
+ { 21, "PPCWarningTone1"},
+ { 22, "PPCWarningTone2"},
+ { 23, "PPCWarningTone3"},
+ { 24, "PPCDisconnectTone"},
+ { 25, "PPCRedirectTone"},
+ { 63, "TonesOff"},
+ { 192, "PipTone"},
+ { 193, "AbbreviatedIntercept"},
+ { 194, "AbbreviatedCongestion"},
+ { 195, "WarningTone"},
+ { 196, "DenialToneBurst"},
+ { 197, "DialToneBurst"},
+ { 250, "IncomingAdditionalCallTone"},
+ { 251, "PriorityAdditionalCallTone"},
+ { 0, NULL }
+};
+/* Class (octet 2, bits A-D) */
+static const value_string ansi_map_AnnouncementCode_class_vals[] = {
+ { 0, "Concurrent"},
+ { 1, "Sequential"},
+ { 0, NULL }
+};
+/* Standard Announcement (octet 3) Updated with N.S0015 */
+static const value_string ansi_map_AnnouncementCode_std_ann_vals[] = {
+ { 0, "None"},
+ { 1, "UnauthorizedUser"},
+ { 2, "InvalidESN"},
+ { 3, "UnauthorizedMobile"},
+ { 4, "SuspendedOrigination"},
+ { 5, "OriginationDenied"},
+ { 6, "ServiceAreaDenial"},
+ { 16, "PartialDial"},
+ { 17, "Require1Plus"},
+ { 18, "Require1PlusNPA"},
+ { 19, "Require0Plus"},
+ { 20, "Require0PlusNPA"},
+ { 21, "Deny1Plus"},
+ { 22, "Unsupported10plus"},
+ { 23, "Deny10plus"},
+ { 24, "Unsupported10XXX"},
+ { 25, "Deny10XXX"},
+ { 26, "Deny10XXXLocally"},
+ { 27, "Require10Plus"},
+ { 28, "RequireNPA"},
+ { 29, "DenyTollOrigination"},
+ { 30, "DenyInternationalOrigination"},
+ { 31, "Deny0Minus"},
+ { 48, "DenyNumber"},
+ { 49, "AlternateOperatorServices"},
+ { 64, "No Circuit or AllCircuitsBusy or FacilityProblem"},
+ { 65, "Overload"},
+ { 66, "InternalOfficeFailure"},
+ { 67, "NoWinkReceived"},
+ { 68, "InterofficeLinkFailure"},
+ { 69, "Vacant"},
+ { 70, "InvalidPrefix or InvalidAccessCode"},
+ { 71, "OtherDialingIrregularity"},
+ { 80, "VacantNumber or DisconnectedNumber"},
+ { 81, "DenyTermination"},
+ { 82, "SuspendedTermination"},
+ { 83, "ChangedNumber"},
+ { 84, "InaccessibleSubscriber"},
+ { 85, "DenyIncomingTol"},
+ { 86, "RoamerAccessScreening"},
+ { 87, "RefuseCall"},
+ { 88, "RedirectCall"},
+ { 89, "NoPageResponse"},
+ { 90, "NoAnswer"},
+ { 96, "RoamerIntercept"},
+ { 97, "GeneralInformation"},
+ { 112, "UnrecognizedFeatureCode"},
+ { 113, "UnauthorizedFeatureCode"},
+ { 114, "RestrictedFeatureCode"},
+ { 115, "InvalidModifierDigits"},
+ { 116, "SuccessfulFeatureRegistration"},
+ { 117, "SuccessfulFeatureDeRegistration"},
+ { 118, "SuccessfulFeatureActivation"},
+ { 119, "SuccessfulFeatureDeActivation"},
+ { 120, "InvalidForwardToNumber"},
+ { 121, "CourtesyCallWarning"},
+ { 128, "EnterPINSendPrompt"},
+ { 129, "EnterPINPrompt"},
+ { 130, "ReEnterPINSendPrompt"},
+ { 131, "ReEnterPINPrompt"},
+ { 132, "EnterOldPINSendPrompt"},
+ { 133, "EnterOldPINPrompt"},
+ { 134, "EnterNewPINSendPrompt"},
+ { 135, "EnterNewPINPrompt"},
+ { 136, "ReEnterNewPINSendPrompt"},
+ { 137, "ReEnterNewPINPrompt"},
+ { 138, "EnterPasswordPrompt"},
+ { 139, "EnterDirectoryNumberPrompt"},
+ { 140, "ReEnterDirectoryNumberPrompt"},
+ { 141, "EnterFeatureCodePrompt"},
+ { 142, "EnterEnterCreditCardNumberPrompt"},
+ { 143, "EnterDestinationNumberPrompt"},
+ { 152, "PPCInsufficientAccountBalance"},
+ { 153, "PPCFiveMinuteWarning"},
+ { 154, "PPCThreeMinuteWarning"},
+ { 155, "PPCTwoMinuteWarning"},
+ { 156, "PPCOneMinuteWarning"},
+ { 157, "PPCDisconnect"},
+ { 158, "PPCRedirect"},
+ { 0, NULL }
+};
+
+
+
+static void
+dissect_ansi_map_announcementcode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+
+ /* Tone (octet 1) */
+ proto_tree_add_item(subtree, hf_ansi_map_announcementcode_tone, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Class (octet 2, bits A-D) */
+ proto_tree_add_item(subtree, hf_ansi_map_announcementcode_class, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Standard Announcement (octet 3) */
+ proto_tree_add_item(subtree, hf_ansi_map_announcementcode_std_ann, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Custom Announcement ( octet 4 )
+ e. The assignment of this octet is left to bilateral agreement. When a Custom
+ Announcement is specified it takes precedence over either the Standard
+ Announcement or Tone
+ */
+ proto_tree_add_item(subtree, hf_ansi_map_announcementcode_cust_ann, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.8 AuthenticationCapability Updated N.S0003*/
+static const value_string ansi_map_AuthenticationCapability_vals[] = {
+ { 0, "Not used"},
+ { 1, "No authentication required"},
+ { 2, "Authentication required"},
+ { 128, "Authentication required and UIM capable."},
+ { 0, NULL }
+};
+
+/* 6.5.2.14 AuthorizationPeriod*/
+
+/* Period (octet 1) */
+static const value_string ansi_map_authorizationperiod_period_vals[] = {
+ { 0, "Not used"},
+ { 1, "Per Call"},
+ { 2, "Hours"},
+ { 3, "Days"},
+ { 4, "Weeks"},
+ { 5, "Per Agreement"},
+ { 6, "Indefinite (i.e., authorized until canceled or deregistered)"},
+ { 7, "Number of calls. Re-authorization should be attempted after this number of (rejected) call attempts"},
+ { 0, NULL }
+};
+/* Value (octet 2)
+Number of minutes hours, days, weeks, or
+number of calls (as per Period). If Period
+indicates anything else the Value is set to zero
+on sending and ignored on receipt.
+*/
+static void
+dissect_ansi_map_authorizationperiod(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ proto_tree_add_item(subtree, hf_ansi_map_authorizationperiod_period, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_value, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.15 AvailabilityType */
+static const value_string ansi_map_AvailabilityType_vals[] = {
+ { 0, "Not used"},
+ { 1, "Unspecified MS inactivity type"},
+ { 0, NULL }
+};
+
+/* 6.5.2.16 BillingID */
+static void
+dissect_ansi_map_billingid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+
+ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset = offset + 2;
+ proto_tree_add_item(subtree, hf_ansi_map_swno, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* ID Number */
+ proto_tree_add_item(subtree, hf_ansi_map_idno, tvb, offset, 3, ENC_BIG_ENDIAN);
+ offset = offset + 3;
+ proto_tree_add_item(subtree, hf_ansi_map_segcount, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+
+
+/* 6.5.2.20 CallingFeaturesIndicator */
+static const value_string ansi_map_FeatureActivity_vals[] = {
+ { 0, "Not used"},
+ { 1, "Not authorized"},
+ { 2, "Authorized but de-activated"},
+ { 3, "Authorized and activated"},
+ { 0, NULL }
+};
+
+
+static void
+dissect_ansi_map_callingfeaturesindicator(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+ int length;
+
+ proto_tree *subtree;
+
+ length = tvb_reported_length_remaining(tvb,offset);
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
+
+ /* Call Waiting: FeatureActivity, CW-FA (Octet 1 bits GH ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cwfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Forwarding No Answer FeatureActivity, CFNA-FA (Octet 1 bits EF ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cfnafa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Forwarding Busy FeatureActivity, CFB-FA (Octet 1 bits CD ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cfbfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Forwarding Unconditional FeatureActivity, CFU-FA (Octet 1 bits AB ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cfufa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ length--;
+
+ /* Call Transfer: FeatureActivity, CT-FA (Octet 2 bits GH ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_ctfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Voice Privacy FeatureActivity, VP-FA (Octet 2 bits EF ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_vpfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Delivery: FeatureActivity (not interpreted on reception by IS-41-C or later)
+ CD-FA (Octet 2 bits CD ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cdfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Three-Way Calling FeatureActivity, 3WC-FA (Octet 2 bits AB ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_3wcfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ length--;
+
+
+ /* Calling Number Identification Restriction Override FeatureActivity CNIROver-FA (Octet 3 bits GH ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cniroverfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Calling Number Identification Restriction: FeatureActivity CNIR-FA (Octet 3 bits EF ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cnirfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Calling Number Identification Presentation: FeatureActivity CNIP2-FA (Octet 3 bits CD ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cnip2fa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Calling Number Identification Presentation: FeatureActivity CNIP1-FA (Octet 3 bits AB ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cnip1fa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ length--;
+ if ( length == 0)
+ return;
+ offset++;
+
+ /* USCF divert to voice mail: FeatureActivity USCFvm-FA (Octet 4 bits GH ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_uscfvmfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Answer Hold: FeatureActivity AH-FA (Octet 4 bits EF ) N.S0029-0 v1.0 */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_ahfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Data Privacy Feature Activity DP-FA (Octet 4 bits CD ) N.S0008-0 v 1.0 */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_dpfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Priority Call Waiting FeatureActivity PCW-FA (Octet 4 bits AB ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_pcwfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ length--;
+ if ( length == 0)
+ return;
+ offset++;
+
+ /* USCF divert to mobile station provided DN:FeatureActivity.USCFms-FA (Octet 5 bits AB ) */
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_uscfmsfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* USCF divert to network registered DN:FeatureActivity. USCFnr-FA (Octet 5 bits CD )*/
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_uscfnrfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* CDMA-Packet Data Service: FeatureActivity. CPDS-FA (Octet 5 bits EF ) N.S0029-0 v1.0*/
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_cpdsfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* CDMA-Concurrent Service:FeatureActivity. CCS-FA (Octet 5 bits GH ) N.S0029-0 v1.0*/
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_ccsfa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ length--;
+ if ( length == 0)
+ return;
+ offset++;
+
+ /* TDMA Enhanced Privacy and Encryption:FeatureActivity.TDMA EPE-FA (Octet 6 bits AB ) N.S0029-0 v1.0*/
+ proto_tree_add_item(subtree, hf_ansi_map_callingfeaturesindicator_epefa, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+
+/* 6.5.2.27 CancellationType */
+static const value_string ansi_map_CancellationType_vals[] = {
+ { 0, "Not used"},
+ { 1, "ServingSystemOption"},
+ { 2, "ReportInCall."},
+ { 3, "Discontinue"},
+ { 0, NULL }
+};
+
+/* 6.5.2.29 CDMACallMode Updated with N.S0029-0 v1.0*/
+/* Call Mode (octet 1, bit A) */
+static const true_false_string ansi_map_CDMACallMode_cdma_bool_val = {
+ "CDMA 800 MHz channel (Band Class 0) acceptable.",
+ "CDMA 800 MHz channel (Band Class 0) not acceptable"
+};
+/* Call Mode (octet 1, bit B) */
+static const true_false_string ansi_map_CallMode_amps_bool_val = {
+ "AAMPS 800 MHz channel acceptable",
+ "AMPS 800 MHz channel not acceptable"
+};
+/* Call Mode (octet 1, bit C) */
+static const true_false_string ansi_map_CallMode_namps_bool_val = {
+ "NAMPS 800 MHz channel acceptable",
+ "NAMPS 800 MHz channel not acceptable"
+};
+/* Call Mode (octet 1, bit D) */
+static const true_false_string ansi_map_CDMACallMode_cls1_bool_val = {
+ "CDMA 1900 MHz channel (Band Class 1) acceptable.",
+ "CDMA 1900 MHz channel (Band Class 1) not acceptable"
+};
+/* Call Mode (octet 1, bit E) */
+static const true_false_string ansi_map_CDMACallMode_cls2_bool_val = {
+ "TACS channel (Band Class 2) acceptable",
+ "TACS channel (Band Class 2) not acceptable"
+};
+/* Call Mode (octet 1, bit F) */
+static const true_false_string ansi_map_CDMACallMode_cls3_bool_val = {
+ "JTACS channel (Band Class 3) acceptable",
+ "JTACS channel (Band Class 3) not acceptable"
+};
+/* Call Mode (octet 1, bit G) */
+static const true_false_string ansi_map_CDMACallMode_cls4_bool_val = {
+ "Korean PCS channel (Band Class 4) acceptable",
+ "Korean PCS channel (Band Class 4) not acceptable"
+};
+/* Call Mode (octet 1, bit H) */
+static const true_false_string ansi_map_CDMACallMode_cls5_bool_val = {
+ "450 MHz channel (Band Class 5) not acceptable",
+ "450 MHz channel (Band Class 5) not acceptable"
+};
+/* Call Mode (octet 2, bit A) */
+static const true_false_string ansi_map_CDMACallMode_cls6_bool_val = {
+ "2 GHz channel (Band Class 6) acceptable.",
+ "2 GHz channel (Band Class 6) not acceptable."
+};
+
+/* Call Mode (octet 2, bit B) */
+static const true_false_string ansi_map_CDMACallMode_cls7_bool_val = {
+ "700 MHz channel (Band Class 7) acceptable",
+ "700 MHz channel (Band Class 7) not acceptable"
+};
+
+/* Call Mode (octet 2, bit C) */
+static const true_false_string ansi_map_CDMACallMode_cls8_bool_val = {
+ "1800 MHz channel (Band Class 8) acceptable",
+ "1800 MHz channel (Band Class 8) not acceptable"
+};
+/* Call Mode (octet 2, bit D) */
+static const true_false_string ansi_map_CDMACallMode_cls9_bool_val = {
+ "900 MHz channel (Band Class 9) acceptable",
+ "900 MHz channel (Band Class 9) not acceptable"
+};
+/* Call Mode (octet 2, bit E) */
+static const true_false_string ansi_map_CDMACallMode_cls10_bool_val = {
+ "Secondary 800 MHz channel (Band Class 10) acceptable.",
+ "Secondary 800 MHz channel (Band Class 10) not acceptable."
+};
+
+static void
+dissect_ansi_map_cdmacallmode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+ int length;
+
+ proto_tree *subtree;
+
+ length = tvb_reported_length_remaining(tvb,offset);
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
+ /* Call Mode (octet 1, bit H) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls5, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 1, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls4, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 1, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls3, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 1, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls2, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 1, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls1, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 1, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_namps, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 1, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_amps, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cdma, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ length--;
+ if ( length == 0)
+ return;
+ offset++;
+
+ /* Call Mode (octet 2, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls10, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 2, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls9, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 2, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls8, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 2, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls7, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Mode (octet 2, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cls6, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.30 CDMAChannelData */
+/* Updated with N.S0010-0 v 1.0 */
+
+static const value_string ansi_map_cdmachanneldata_band_cls_vals[] = {
+ { 0, "800 MHz Cellular System"},
+ { 0, NULL }
+};
+
+static void
+dissect_ansi_map_cdmachanneldata(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ int length;
+
+ proto_tree *subtree;
+
+ length = tvb_reported_length_remaining(tvb,offset);
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_cdmachanneldata);
+
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitH, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_Frame_Offset, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* CDMA Channel Number */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_CDMA_ch_no, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset = offset + 2;
+ length = length -2;
+ /* Band Class */
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitH, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_band_cls, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Long Code Mask */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_lc_mask_b6, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_lc_mask_b5, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_lc_mask_b4, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_lc_mask_b3, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_lc_mask_b2, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_lc_mask_b1, tvb, offset, 1, ENC_BIG_ENDIAN);
+ length = length - 6;
+ if (length == 0)
+ return;
+ offset++;
+ /* NP_EXT */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_np_ext, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Nominal Power */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_nominal_pwr, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Number Preamble */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmachanneldata_nr_preamble, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.31 CDMACodeChannel */
+
+/* 6.5.2.41 CDMAStationClassMark */
+/* Power Class: (PC) (octet 1, bits A and B) */
+static const value_string ansi_map_CDMAStationClassMark_pc_vals[] = {
+ { 0, "Class I"},
+ { 1, "Class II"},
+ { 2, "Class III"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+/* Analog Transmission: (DTX) (octet 1, bit C) */
+static const true_false_string ansi_map_CDMAStationClassMark_dtx_bool_val = {
+ "Discontinuous",
+ "Continuous"
+};
+/* Slotted Mode Indicator: (SMI) (octet 1, bit F) */
+static const true_false_string ansi_map_CDMAStationClassMark_smi_bool_val = {
+ "Slotted capable",
+ "Slotted incapable"
+};
+/* Dual-mode Indicator(DMI) (octet 1, bit G) */
+static const true_false_string ansi_map_CDMAStationClassMark_dmi_bool_val = {
+ "Dual-mode CDMA",
+ "CDMA only"
+};
+
+
+static void
+dissect_ansi_map_cdmastationclassmark(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_cdmastationclassmark);
+
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitH, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Dual-mode Indicator(DMI) (octet 1, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmastationclassmark_dmi, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Slotted Mode Indicator: (SMI) (octet 1, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmastationclassmark_smi, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitED, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Analog Transmission: (DTX) (octet 1, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmastationclassmark_dtx, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Power Class: (PC) (octet 1, bits A and B) */
+ proto_tree_add_item(subtree, hf_ansi_map_cdmastationclassmark_pc, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+/* 6.5.2.47 ChannelData */
+/* Discontinuous Transmission Mode (DTX) (octet 1, bits E and D) */
+static const value_string ansi_map_ChannelData_dtx_vals[] = {
+ { 0, "DTX disabled"},
+ { 1, "Reserved. Treat the same as value 00, DTX disabled."},
+ { 2, "DTX-low mode"},
+ { 3, "DTX mode active or acceptable"},
+ { 0, NULL }
+};
+
+
+static void
+dissect_ansi_map_channeldata(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_channeldata);
+
+ /* SAT Color Code (SCC) (octet 1, bits H and G) */
+ proto_tree_add_item(subtree, hf_ansi_map_channeldata_scc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Discontinuous Transmission Mode (DTX) (octet 1, bits E and D) */
+ proto_tree_add_item(subtree, hf_ansi_map_channeldata_dtx, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Voice Mobile Attenuation Code (VMAC) (octet 1, bits A - C)*/
+ proto_tree_add_item(subtree, hf_ansi_map_channeldata_vmac, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ offset++;
+ /* Channel Number (CHNO) ( octet 2 and 3 ) */
+ proto_tree_add_item(subtree, hf_ansi_map_channeldata_chno, tvb, offset, 2, ENC_BIG_ENDIAN);
+
+}
+
+/* 6.5.2.50 ConfidentialityModes */
+/* Updated with N.S0008-0 v 1.0*/
+/* Voice Privacy (VP) Confidentiality Status (octet 1, bit A) */
+
+static const true_false_string ansi_map_ConfidentialityModes_bool_val = {
+ "On",
+ "Off"
+};
+static void
+dissect_ansi_map_confidentialitymodes(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_confidentialitymodes);
+
+ /* DataPrivacy (DP) Confidentiality Status (octet 1, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_ConfidentialityModes_dp, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Signaling Message Encryption (SE) Confidentiality Status (octet 1, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_ConfidentialityModes_se, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Voice Privacy (VP) Confidentiality Status (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_ConfidentialityModes_vp, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+
+/* 6.5.2.51 ControlChannelData */
+
+/* Digital Color Code (DCC) (octet 1, bit H and G) */
+/* Control Mobile Attenuation Code (CMAC) (octet 1, bit A - C) */
+/* Channel Number (CHNO) ( octet 2 and 3 ) */
+/* Supplementary Digital Color Codes (SDCC1 and SDCC2) */
+/* SDCC1 ( octet 4, bit D and C )*/
+/* SDCC2 ( octet 4, bit A and B )*/
+
+static void
+dissect_ansi_map_controlchanneldata(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_controlchanneldata);
+
+ /* Digital Color Code (DCC) (octet 1, bit H and G) */
+ proto_tree_add_item(subtree, hf_ansi_map_controlchanneldata_dcc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitFED, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Control Mobile Attenuation Code (CMAC) (octet 1, bit A - C) */
+ proto_tree_add_item(subtree, hf_ansi_map_controlchanneldata_cmac, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Channel Number (CHNO) ( octet 2 and 3 ) */
+ proto_tree_add_item(subtree, hf_ansi_map_controlchanneldata_chno, tvb, offset, 2, ENC_BIG_ENDIAN);
+ /* Supplementary Digital Color Codes (SDCC1 and SDCC2) */
+ offset = offset +2;
+ /* SDCC1 ( octet 4, bit D and C )*/
+ proto_tree_add_item(subtree, hf_ansi_map_controlchanneldata_sdcc1, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitHGFE, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* SDCC2 ( octet 4, bit A and B )*/
+ proto_tree_add_item(subtree, hf_ansi_map_controlchanneldata_sdcc2, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+
+/* 6.5.2.52 CountUpdateReport */
+static const value_string ansi_map_CountUpdateReport_vals[] = {
+ { 0, "Class I"},
+ { 1, "Class II"},
+ { 2, "Class III"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+
+/* 6.5.2.53 DeniedAuthorizationPeriod */
+/* Period (octet 1) */
+static const value_string ansi_map_deniedauthorizationperiod_period_vals[] = {
+ { 0, "Not used"},
+ { 1, "Per Call. Re-authorization should be attempted on the next call attempt"},
+ { 2, "Hours"},
+ { 3, "Days"},
+ { 4, "Weeks"},
+ { 5, "Per Agreement"},
+ { 6, "Reserved"},
+ { 7, "Number of calls. Re-authorization should be attempted after this number of (rejected) call attempts"},
+ { 8, "Minutes"},
+ { 0, NULL }
+};
+/* Value (octet 2)
+Number of minutes hours, days, weeks, or
+number of calls (as per Period). If Period
+indicates anything else the Value is set to zero
+on sending and ignored on receipt.
+*/
+
+static void
+dissect_ansi_map_deniedauthorizationperiod(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ proto_tree_add_item(subtree, hf_ansi_map_deniedauthorizationperiod_period, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_value, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+
+
+/* 6.5.2.57 DigitCollectionControl */
+/* TODO Add decoding here */
+
+/* 6.5.2.64 ExtendedMSCID */
+static const value_string ansi_map_msc_type_vals[] = {
+ { 0, "Not specified"},
+ { 1, "Serving MSC"},
+ { 2, "Home MSC"},
+ { 3, "Gateway MSC"},
+ { 4, "HLR"},
+ { 5, "VLR"},
+ { 6, "EIR (reserved)"},
+ { 7, "AC"},
+ { 8, "Border MSC"},
+ { 9, "Originating MSC"},
+ { 0, NULL }
+};
+
+static void
+dissect_ansi_map_extendedmscid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_extendedmscid);
+ /* Type (octet 1) */
+ proto_tree_add_item(subtree, hf_ansi_map_msc_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset = offset + 2;
+ proto_tree_add_item(subtree, hf_ansi_map_swno, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.65 ExtendedSystemMyTypeCode */
+static void
+dissect_ansi_map_extendedsystemmytypecode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_extendedsystemmytypecode);
+ /* Type (octet 1) */
+ proto_tree_add_item(subtree, hf_ansi_map_msc_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ dissect_ansi_map_SystemMyTypeCode(TRUE, tvb, offset, actx, subtree, hf_ansi_map_systemMyTypeCode);
+}
+
+
+/* 6.5.2.68 GeographicAuthorization */
+/* Geographic Authorization (octet 1) */
+static const value_string ansi_map_GeographicAuthorization_vals[] = {
+ { 0, "Not used"},
+ { 1, "Authorized for all MarketIDs served by the VLR"},
+ { 2, "Authorized for this MarketID only"},
+ { 3, "Authorized for this MarketID and Switch Number only"},
+ { 4, "Authorized for this LocationAreaID within a MarketID only"},
+ { 5, "VLR"},
+ { 6, "EIR (reserved)"},
+ { 7, "AC"},
+ { 8, "Border MSC"},
+ { 9, "Originating MSC"},
+ { 0, NULL }
+};
+
+/* 6.5.2.71 HandoffState */
+/* Party Involved (PI) (octet 1, bit A) */
+static const true_false_string ansi_map_HandoffState_pi_bool_val = {
+ "Terminator is handing off",
+ "Originator is handing off"
+};
+static void
+dissect_ansi_map_handoffstate(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_handoffstate);
+ /* Party Involved (PI) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_handoffstate_pi, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+/* 6.5.2.72 InterMSCCircuitID */
+/* Trunk Member Number (M) Octet2 */
+static void
+dissect_ansi_map_intermsccircuitid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+ guint8 octet, octet2;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ /* Trunk Group Number (G) Octet 1 */
+ octet = tvb_get_guint8(tvb,offset);
+ proto_tree_add_item(subtree, hf_ansi_map_tgn, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Trunk Member Number (M) Octet2 */
+ octet2 = tvb_get_guint8(tvb,offset);
+ proto_tree_add_item(subtree, hf_ansi_map_tmn, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " (G %u/M %u)", octet, octet2);
+}
+
+/* 6.5.2.78 MessageWaitingNotificationCount */
+/* Type of messages (octet 1) */
+static const value_string ansi_map_MessageWaitingNotificationCount_type_vals[] = {
+ { 0, "Voice messages"},
+ { 1, "Short Message Services (SMS) messages"},
+ { 2, "Group 3 (G3) Fax messages"},
+ { 0, NULL }
+};
+
+static void
+dissect_ansi_map_messagewaitingnotificationcount(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ /* Type of messages (octet 1) */
+ proto_tree_add_item(subtree, hf_ansi_map_messagewaitingnotificationcount_tom, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Number of Messages Waiting (octet 2) */
+ proto_tree_add_item(subtree, hf_ansi_map_messagewaitingnotificationcount_no_mw, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+
+#if 0
+/* 6.5.2.79 MessageWaitingNotificationType */
+/* Pip Tone (PT) (octet 1, bit A) */
+static const true_false_string ansi_map_MessageWaitingNotificationType_pt_bool_val = {
+ "Pip Tone (PT) notification is required",
+ "Pip Tone (PT) notification is not authorized or no notification is required"
+};
+#endif
+#if 0
+/* Alert Pip Tone (APT) (octet 1, bit B) */
+static const true_false_string ansi_map_MessageWaitingNotificationType_apt_bool_val = {
+ "Alert Pip Tone (APT) notification is required",
+ "Alert Pip Tone (APT) notification is not authorized or notification is not required"
+};
+#endif
+/* Message Waiting Indication (MWI) (octet 1, bits C and D) */
+static const value_string ansi_map_MessageWaitingNotificationType_mwi_vals[] = {
+ { 0, "No MWI. Message Waiting Indication (MWI) notification is not authorized or notification is not required"},
+ { 1, "Reserved"},
+ { 2, "MWI On. Message Waiting Indication (MWI) notification is required. Messages waiting"},
+ { 3, "MWI Off. Message Waiting Indication (MWI) notification is required. No messages waiting"},
+ { 0, NULL }
+};
+
+static void
+dissect_ansi_map_messagewaitingnotificationtype(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+
+ /* Message Waiting Indication (MWI) (octet 1, bits C and D) */
+ proto_tree_add_item(subtree, hf_ansi_map_messagewaitingnotificationtype_mwi, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Alert Pip Tone (APT) (octet 1, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_messagewaitingnotificationtype_apt, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Pip Tone (PT) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_messagewaitingnotificationtype_pt, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+/* 6.5.2.81 MobileIdentificationNumber */
+
+/* 6.5.2.82 MSCID */
+
+static void
+dissect_ansi_map_mscid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
+
+ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset = offset + 2;
+ proto_tree_add_item(subtree, hf_ansi_map_swno, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+
+/* 6.5.2.84 MSLocation */
+static void
+dissect_ansi_map_mslocation(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
+
+ /* Latitude in tenths of a second octet 1 - 3 */
+ proto_tree_add_item(subtree, hf_ansi_map_mslocation_lat, tvb, offset, 3, ENC_BIG_ENDIAN);
+ offset = offset + 3;
+ /* Longitude in tenths of a second octet 4 - 6 */
+ proto_tree_add_item(subtree, hf_ansi_map_mslocation_long, tvb, offset, 3, ENC_BIG_ENDIAN);
+ offset = offset + 3;
+ /* Resolution in units of 1 foot octet 7, octet 8 optional */
+ proto_tree_add_item(subtree, hf_ansi_map_mslocation_res, tvb, offset, -1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.85 NAMPSCallMode */
+static void
+dissect_ansi_map_nampscallmode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
+
+ /* Call Mode (octet 1, bits A and B) */
+ proto_tree_add_item(subtree, hf_ansi_map_nampscallmode_amps, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_nampscallmode_namps, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+/* 6.5.2.86 NAMPSChannelData */
+/* Narrow Analog Voice Channel Assignment (NAVCA) (octet 1, bits A and B) */
+static const value_string ansi_map_NAMPSChannelData_navca_vals[] = {
+ { 0, "Wide. 30 kHz AMPS voice channel"},
+ { 1, "Upper. 10 kHz NAMPS voice channel"},
+ { 2, "Middle. 10 kHz NAMPS voice channel"},
+ { 3, "Lower. 10 kHz NAMPS voice channel"},
+ { 0, NULL }
+};
+/* Color Code Indicator (CCIndicator) (octet 1, bits C, D, and E) */
+static const value_string ansi_map_NAMPSChannelData_ccinidicator_vals[] = {
+ { 0, "ChannelData parameter SCC field applies"},
+ { 1, "Digital SAT Color Code 1 (ignore SCC field)"},
+ { 2, "Digital SAT Color Code 2 (ignore SCC field)"},
+ { 3, "Digital SAT Color Code 3 (ignore SCC field)"},
+ { 4, "Digital SAT Color Code 4 (ignore SCC field)"},
+ { 5, "Digital SAT Color Code 5 (ignore SCC field)"},
+ { 6, "Digital SAT Color Code 6 (ignore SCC field)"},
+ { 7, "Digital SAT Color Code 7 (ignore SCC field)"},
+ { 0, NULL }
+};
+
+
+
+static void
+dissect_ansi_map_nampschanneldata(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
+
+ /* Color Code Indicator (CCIndicator) (octet 1, bits C, D, and E) */
+ proto_tree_add_item(subtree, hf_ansi_map_nampschanneldata_CCIndicator, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Narrow Analog Voice Channel Assignment (NAVCA) (octet 1, bits A and B) */
+ proto_tree_add_item(subtree, hf_ansi_map_nampschanneldata_navca, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+
+#if 0
+/* 6.5.2.88 OneTimeFeatureIndicator */
+/* updated with N.S0012 */
+/* Call Waiting for Future Incoming Call (CWFI) (octet 1, bits A and B) */
+/* Call Waiting for Incoming Call (CWIC) (octet 1, bits C and D) */
+
+static const value_string ansi_map_onetimefeatureindicator_cw_vals[] = {
+ { 0, "Ignore"},
+ { 1, "No CW"},
+ { 2, "Normal CW"},
+ { 3, "Priority CW"},
+ { 0, NULL }
+};
+#endif
+#if 0
+/* MessageWaitingNotification (MWN) (octet 1, bits E and F) */
+static const value_string ansi_map_onetimefeatureindicator_mwn_vals[] = {
+ { 0, "Ignore"},
+ { 1, "Pip Tone Inactive"},
+ { 2, "Pip Tone Active"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+#endif
+#if 0
+/* Calling Number Identification Restriction (CNIR) (octet 1, bits G and H)*/
+static const value_string ansi_map_onetimefeatureindicator_cnir_vals[] = {
+ { 0, "Ignore"},
+ { 1, "CNIR Inactive"},
+ { 2, "CNIR Active"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+#endif
+
+#if 0
+/* Priority Access and Channel Assignment (PACA) (octet 2, bits A and B)*/
+static const value_string ansi_map_onetimefeatureindicator_paca_vals[] = {
+ { 0, "Ignore"},
+ { 1, "PACA Demand Inactive"},
+ { 2, "PACA Demand Activated"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+#endif
+
+#if 0
+/* Flash Privileges (Flash) (octet 2, bits C and D) */
+static const value_string ansi_map_onetimefeatureindicator_flash_vals[] = {
+ { 0, "Ignore"},
+ { 1, "Flash Inactive"},
+ { 2, "Flash Active"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+#endif
+#if 0
+/* Calling Name Restriction (CNAR) (octet 2, bits E and F) */
+static const value_string ansi_map_onetimefeatureindicator_cnar_vals[] = {
+ { 0, "Ignore"},
+ { 1, "Presentation Allowed"},
+ { 2, "Presentation Restricted."},
+ { 3, "Blocking Toggle"},
+ { 0, NULL }
+};
+#endif
+static void
+dissect_ansi_map_onetimefeatureindicator(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ /*
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
+ */
+ /* Calling Number Identification Restriction (CNIR) (octet 1, bits G and H)*/
+ /* MessageWaitingNotification (MWN) (octet 1, bits E and F) */
+ /* Call Waiting for Incoming Call (CWIC) (octet 1, bits C and D) */
+ /* Call Waiting for Future Incoming Call (CWFI) (octet 1, bits A and B) */
+ /*offset++;*/
+ /* Calling Name Restriction (CNAR) (octet 2, bits E and F) */
+ /* Flash Privileges (Flash) (octet 2, bits C and D) */
+ /* Priority Access and Channel Assignment (PACA) (octet 2, bits A and B)*/
+
+
+}
+
+/* 6.5.2.90 OriginationTriggers */
+/* All Origination (All) (octet 1, bit A) */
+static const true_false_string ansi_map_originationtriggers_all_bool_val = {
+ "Launch an OriginationRequest for any call attempt. This overrides all other values",
+ "Trigger is not active"
+};
+
+/* Local (octet 1, bit B) */
+static const true_false_string ansi_map_originationtriggers_local_bool_val = {
+ "Launch an OriginationRequest for any local call attempt",
+ "Trigger is not active"
+};
+
+/* Intra-LATA Toll (ILATA) (octet 1, bit C) */
+static const true_false_string ansi_map_originationtriggers_ilata_bool_val = {
+ "Launch an OriginationRequest for any intra-LATA call attempt",
+ "Trigger is not active"
+};
+/* Inter-LATA Toll (OLATA) (octet 1, bit D) */
+static const true_false_string ansi_map_originationtriggers_olata_bool_val = {
+ "Launch an OriginationRequest for any inter-LATA toll call attempt",
+ "Trigger is not active"
+};
+/* International (Int'l ) (octet 1, bit E) */
+static const true_false_string ansi_map_originationtriggers_int_bool_val = {
+ "Launch an OriginationRequest for any international call attempt",
+ "Trigger is not active"
+};
+/* World Zone (WZ) (octet 1, bit F) */
+static const true_false_string ansi_map_originationtriggers_wz_bool_val = {
+ "Launch an OriginationRequest for any call attempt outside of the current World Zone (as defined in ITU-T Rec. E.164)",
+ "Trigger is not active"
+};
+
+/* Unrecognized Number (Unrec) (octet 1, bit G) */
+static const true_false_string ansi_map_originationtriggers_unrec_bool_val = {
+ "Launch an OriginationRequest for any call attempt to an unrecognized number",
+ "Trigger is not active"
+};
+/* Revertive Call (RvtC) (octet 1, bit H)*/
+static const true_false_string ansi_map_originationtriggers_rvtc_bool_val = {
+ "Launch an OriginationRequest for any Revertive Call attempt",
+ "Trigger is not active"
+};
+
+/* Star (octet 2, bit A) */
+static const true_false_string ansi_map_originationtriggers_star_bool_val = {
+ "Launch an OriginationRequest for any number beginning with a Star '*' digit",
+ "Trigger is not active"
+};
+
+/* Double Star (DS) (octet 2, bit B) */
+static const true_false_string ansi_map_originationtriggers_ds_bool_val = {
+ "Launch an OriginationRequest for any number beginning with two Star '**' digits",
+ "Trigger is not active"
+};
+/* Pound (octet 2, bit C) */
+static const true_false_string ansi_map_originationtriggers_pound_bool_val = {
+ "Launch an OriginationRequest for any number beginning with a Pound '#' digit",
+ "Trigger is not active"
+};
+/* Double Pound (DP) (octet 2, bit D) */
+static const true_false_string ansi_map_originationtriggers_dp_bool_val = {
+ "Launch an OriginationRequest for any number beginning with two Pound '##' digits",
+ "Trigger is not active"
+};
+/* Prior Agreement (PA) (octet 2, bit E) */
+static const true_false_string ansi_map_originationtriggers_pa_bool_val = {
+ "Launch an OriginationRequest for any number matching a criteria of a prior agreement",
+ "Trigger is not active"
+};
+
+/* No digits (octet 3, bit A) */
+static const true_false_string ansi_map_originationtriggers_nodig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with no digits",
+ "Trigger is not active"
+};
+
+/* 1 digit (octet 3, bit B) */
+static const true_false_string ansi_map_originationtriggers_onedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 1 digit",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit C) */
+static const true_false_string ansi_map_originationtriggers_twodig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 2 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit D) */
+static const true_false_string ansi_map_originationtriggers_threedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 3 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit E) */
+static const true_false_string ansi_map_originationtriggers_fourdig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 4 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit F) */
+static const true_false_string ansi_map_originationtriggers_fivedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 5 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit G) */
+static const true_false_string ansi_map_originationtriggers_sixdig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 6 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit H) */
+static const true_false_string ansi_map_originationtriggers_sevendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 7 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit A) */
+static const true_false_string ansi_map_originationtriggers_eightdig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 8 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit B) */
+static const true_false_string ansi_map_originationtriggers_ninedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 9 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit C) */
+static const true_false_string ansi_map_originationtriggers_tendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 10 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit D) */
+static const true_false_string ansi_map_originationtriggers_elevendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 11 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit E) */
+static const true_false_string ansi_map_originationtriggers_twelvedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 12 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit F) */
+static const true_false_string ansi_map_originationtriggers_thirteendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 13 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit G) */
+static const true_false_string ansi_map_originationtriggers_fourteendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 14 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit H) */
+static const true_false_string ansi_map_originationtriggers_fifteendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 15 digits",
+ "Trigger is not active"
+};
+
+static void
+dissect_ansi_map_originationtriggers(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_originationtriggers);
+
+ /* Revertive Call (RvtC) (octet 1, bit H)*/
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_rvtc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Unrecognized Number (Unrec) (octet 1, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_unrec, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* World Zone (WZ) (octet 1, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_wz, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* International (Int'l ) (octet 1, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_int, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Inter-LATA Toll (OLATA) (octet 1, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_olata, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Intra-LATA Toll (ILATA) (octet 1, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_ilata, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Local (octet 1, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_local, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* All Origination (All) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_all, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /*Prior Agreement (PA) (octet 2, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_pa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Double Pound (DP) (octet 2, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_dp, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Pound (octet 2, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_pound, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Double Star (DS) (octet 2, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_ds, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Star (octet 2, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_star, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* 7 digit (octet 3, bit H) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_sevendig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 6 digit (octet 3, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_sixdig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 5 digit (octet 3, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_fivedig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 4 digit (octet 3, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_fourdig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 3 digit (octet 3, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_threedig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 2 digit (octet 3, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_twodig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 1 digit (octet 3, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_onedig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* No digits (octet 3, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_nodig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* 15 digit (octet 4, bit H) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_fifteendig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 14 digit (octet 4, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_fourteendig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 13 digit (octet 4, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_thirteendig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 12 digit (octet 4, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_twelvedig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 11 digit (octet 4, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_elevendig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 10 digit (octet 4, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_tendig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 9 digit (octet 4, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_ninedig, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* 8 digits (octet 4, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_eightdig, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+
+/* 6.5.2.91 PACAIndicator */
+
+/* Permanent Activation (PA) (octet 1, bit A) */
+static const true_false_string ansi_map_pacaindicator_pa_bool_val = {
+ "PACA is permanently activated",
+ "PACA is not permanently activated"
+};
+
+static const value_string ansi_map_PACA_Level_vals[] = {
+ { 0, "Not used"},
+ { 1, "Priority Level. 1 This is the highest level"},
+ { 2, "Priority Level 2"},
+ { 3, "Priority Level 3"},
+ { 4, "Priority Level 4"},
+ { 5, "Priority Level 5"},
+ { 6, "Priority Level 6"},
+ { 7, "Priority Level 7"},
+ { 8, "Priority Level 8"},
+ { 9, "Priority Level 9"},
+ { 10, "Priority Level 10"},
+ { 11, "Priority Level 11"},
+ { 12, "Priority Level 12"},
+ { 13, "Priority Level 13"},
+ { 14, "Priority Level 14"},
+ { 15, "Priority Level 15"},
+ { 0, NULL }
+};
+
+static void
+dissect_ansi_map_pacaindicator(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_pacaindicator);
+ /* PACA Level (octet 1, bits B-E) */
+ proto_tree_add_item(subtree, hf_ansi_map_PACA_Level, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Permanent Activation (PA) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_pacaindicator_pa, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+/* 6.5.2.92 PageIndicator */
+static const value_string ansi_map_PageIndicator_vals[] = {
+ { 0, "Not used"},
+ { 1, "Page"},
+ { 2, "Listen only"},
+ { 0, NULL }
+};
+
+/* 6.5.2.93 PC_SSN */
+static void
+dissect_ansi_map_pc_ssn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+ guint8 b1,b2,b3;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ /* Type (octet 1) */
+ proto_tree_add_item(subtree, hf_ansi_map_msc_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* Point Code Member Number octet 2 */
+ b1 = tvb_get_guint8(tvb,offset);
+ offset++;
+ /* Point Code Cluster Number octet 3 */
+ b2 = tvb_get_guint8(tvb,offset);
+ offset++;
+ /* Point Code Network Number octet 4 */
+ b3 = tvb_get_guint8(tvb,offset);
+ offset++;
+ proto_tree_add_bytes_format_value(subtree, hf_ansi_map_point_code, tvb, offset-3, 3, NULL, "%u-%u-%u", b3, b2, b1);
+ proto_tree_add_item(subtree, hf_ansi_map_SSN, tvb, offset, 1, ENC_NA);
+}
+/* 6.5.2.94 PilotBillingID */
+static void
+dissect_ansi_map_pilotbillingid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ /* First Originating MarketID octet 1 and 2 */
+ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset = offset + 2;
+ /* First Originating Switch Number octet 3*/
+ proto_tree_add_item(subtree, hf_ansi_map_swno, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* ID Number */
+ proto_tree_add_item(subtree, hf_ansi_map_idno, tvb, offset, 3, ENC_BIG_ENDIAN);
+ offset = offset + 3;
+ proto_tree_add_item(subtree, hf_ansi_map_segcount, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.96 PreferredLanguageIndicator */
+static const value_string ansi_map_PreferredLanguageIndicator_vals[] = {
+ { 0, "Unspecified"},
+ { 1, "English"},
+ { 2, "French"},
+ { 3, "Spanish"},
+ { 4, "German"},
+ { 5, "Portuguese"},
+ { 0, NULL }
+};
+
+/* 6.5.2.106 ReceivedSignalQuality */
+/* a. This octet is encoded the same as octet 1 in the SignalQuality parameter (see
+ 6.5.2.121).
+*/
+/* 6.5.2.118 SetupResult */
+static const value_string ansi_map_SetupResult_vals[] = {
+ { 0, "Not used"},
+ { 1, "Unsuccessful"},
+ { 2, "Successful"},
+ { 0, NULL }
+};
+/* 6.5.2.121 SignalQuality */
+/* TODO */
+
+/* 6.5.2.122 SMS_AccessDeniedReason (TIA/EIA-41.5-D, page 5-256)
+ N.S0011-0 v 1.0
+*/
+static const value_string ansi_map_SMS_AccessDeniedReason_vals[] = {
+ { 0, "Not used"},
+ { 1, "Denied"},
+ { 2, "Postponed"},
+ { 3, "Unavailable"},
+ { 4, "Invalid"},
+ { 0, NULL }
+};
+
+
+/* 6.5.2.125 SMS_CauseCode (TIA/EIA-41.5-D, page 5-262)
+ N.S0011-0 v 1.0
+*/
+static const value_string ansi_map_SMS_CauseCode_vals[] = {
+ { 0, "Address vacant"},
+ { 1, "Address translation failure"},
+ { 2, "Network resource shortage"},
+ { 3, "Network failure"},
+ { 4, "Invalid Teleservice ID"},
+ { 5, "Other network problem"},
+ { 6, "Unsupported network interface"},
+ { 8, "CDMA handset-based position determination failure"},
+ { 9, "CDMA handset-based position determination resources released - voice service request"},
+ { 10, "CDMA handset-based position determination resources released - voice service request - message acknowledged"},
+ { 11, "Reserved"},
+ { 12, "Reserved"},
+ { 13, "Reserved"},
+ { 14, "Emergency Services Call Precedence"},
+ { 32, "No page response"},
+ { 33, "Destination busy"},
+ { 34, "No acknowledgment"},
+ { 35, "Destination resource shortage"},
+ { 36, "SMS delivery postponed"},
+ { 37, "Destination out of service"},
+ { 38, "Destination no longer at this address"},
+ { 39, "Other terminal problem"},
+ { 64, "Radio interface resource shortage"},
+ { 65, "Radio interface incompatibility"},
+ { 66, "Other radio interface problem"},
+ { 67, "Unsupported Base Station Capability"},
+ { 96, "Encoding problem"},
+ { 97, "Service origination denied"},
+ { 98, "Service termination denied"},
+ { 99, "Supplementary service not supported"},
+ { 100, "Service not supported"},
+ { 101, "Reserved"},
+ { 102, "Missing expected parameter"},
+ { 103, "Missing mandatory parameter"},
+ { 104, "Unrecognized parameter value"},
+ { 105, "Unexpected parameter value"},
+ { 106, "User Data size error"},
+ { 107, "Other general problems"},
+ { 108, "Session not active"},
+ { 109, "Reserved"},
+ { 110, "MS Disconnect"},
+ { 0, NULL }
+};
+static value_string_ext ansi_map_SMS_CauseCode_vals_ext = VALUE_STRING_EXT_INIT(ansi_map_SMS_CauseCode_vals);
+
+/* 6.5.2.126 SMS_ChargeIndicator */
+/* SMS Charge Indicator (octet 1) */
+static const value_string ansi_map_SMS_ChargeIndicator_vals[] = {
+ { 0, "Not used"},
+ { 1, "No charge"},
+ { 2, "Charge original originator"},
+ { 3, "Charge original destination"},
+ { 0, NULL }
+};
+/* 4 through 63 Reserved. Treat the same as value 1, No charge.
+ 64 through 127 Reserved. Treat the same as value 2, Charge original originator.
+ 128 through 223 Reserved. Treat the same as value 3, Charge original destination.
+ 224 through 255 Reserved for TIA/EIA-41 protocol extension. If unknown, treat the same as value 2, Charge
+ original originator.
+*/
+
+/* 6.5.2.130 SMS_NotificationIndicator N.S0005-0 v 1.0*/
+static const value_string ansi_map_SMS_NotificationIndicator_vals[] = {
+ { 0, "Not used"},
+ { 1, "Notify when available"},
+ { 2, "Do not notify when available"},
+ { 0, NULL }
+};
+
+/* 6.5.2.136 SMS_OriginationRestrictions */
+/* DEFAULT (octet 1, bits A and B) */
+
+static const value_string ansi_map_SMS_OriginationRestrictions_default_vals[] = {
+ { 0, "Block all"},
+ { 1, "Reserved"},
+ { 2, "Allow specific"},
+ { 3, "Allow all"},
+ { 0, NULL }
+};
+/* DIRECT (octet 1, bit C) */
+static const true_false_string ansi_map_SMS_OriginationRestrictions_direct_bool_val = {
+ "Allow Direct",
+ "Block Direct"
+};
+
+/* Force Message Center (FMC) (octet 1, bit D) */
+static const true_false_string ansi_map_SMS_OriginationRestrictions_fmc_bool_val = {
+ "Force Indirect",
+ "No effect"
+};
+
+static void
+dissect_ansi_map_sms_originationrestrictions(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_sms_originationrestrictions);
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitHGFE, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_sms_originationrestrictions_fmc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_sms_originationrestrictions_direct, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_sms_originationrestrictions_default, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+
+/* 6.5.2.137 SMS_TeleserviceIdentifier */
+/* Updated with N.S0011-0 v 1.0 */
+
+#if 0
+/* SMS Teleservice Identifier (octets 1 and 2) */
+static const value_string ansi_map_SMS_TeleserviceIdentifier_vals[] = {
+ { 0, "Not used"},
+ { 1, "Reserved for maintenance"},
+ { 2, "SSD Update no response"},
+ { 3, "SSD Update successful"},
+ { 4, "SSD Update failed"},
+ { 4096, "AMPS Extended Protocol Enhanced Services" },
+ { 4097, "CDMA Cellular Paging Teleservice" },
+ { 4098, "CDMA Cellular Messaging Teleservice" },
+ { 4099, "CDMA Voice Mail Notification" },
+ { 32513, "TDMA Cellular Messaging Teleservice" },
+ { 32520, "TDMA System Assisted Mobile Positioning through Satellite (SAMPS)" },
+ { 32584, "TDMA Segmented System Assisted Mobile Positioning Service" },
+ { 0, NULL }
+};
+#endif
+/* 6.5.2.140 SPINITriggers */
+/* All Origination (All) (octet 1, bit A) */
+
+/* 6.5.2.142 SSDUpdateReport */
+static const value_string ansi_map_SSDUpdateReport_vals[] = {
+ { 0, "Not used"},
+ { 4096, "AMPS Extended Protocol Enhanced Services"},
+ { 4097, "CDMA Cellular Paging Teleservice"},
+ { 4098, "CDMA Cellular Messaging Teleservice"},
+ { 32513, "TDMA Cellular Messaging Teleservice"},
+ { 32514, "TDMA Cellular Paging Teleservice (CPT-136)"},
+ { 32515, "TDMA Over-the-Air Activation Teleservice (OATS)"},
+ { 32516, "TDMA Over-the-Air Programming Teleservice (OPTS)"},
+ { 32517, "TDMA General UDP Transport Service (GUTS)"},
+ { 32576, "Reserved"},
+ { 32577, "TDMA Segmented Cellular MessagingTeleservice"},
+ { 32578, "TDMA Segmented Cellular Paging Teleservice"},
+ { 32579, "TDMA Segmented Over-the-Air Activation Teleservice (OATS)"},
+ { 32580, "TDMA Segmented Over-the-Air Programming Teleservice (OPTS)."},
+ { 32581, "TDMA Segmented General UDP Transport Service (GUTS)"},
+ { 32576, "Reserved"},
+ { 0, NULL }
+};
+
+/* 6.5.2.143 StationClassMark */
+
+/* 6.5.2.144 SystemAccessData */
+
+/* 6.5.2.146 SystemCapabilities */
+/* Updated in N.S0008-0 v 1.0 */
+static const true_false_string ansi_map_systemcapabilities_auth_bool_val = {
+ "Authentication parameters were requested on this system access (AUTH=1 in the OMT)",
+ "Authentication parameters were not requested on this system access (AUTH=0 in the OMT)."
+};
+
+static const true_false_string ansi_map_systemcapabilities_se_bool_val = {
+ "Signaling Message Encryption supported by the system",
+ "Signaling Message Encryption not supported by the system"
+};
+
+static const true_false_string ansi_map_systemcapabilities_vp_bool_val = {
+ "Voice Privacy supported by the system",
+ "Voice Privacy not supported by the system"
+};
+
+static const true_false_string ansi_map_systemcapabilities_cave_bool_val = {
+ "System can execute the CAVE algorithm and share SSD for the indicated MS",
+ "System cannot execute the CAVE algorithm and cannot share SSD for the indicated MS"
+};
+
+static const true_false_string ansi_map_systemcapabilities_ssd_bool_val = {
+ "SSD is shared with the system for the indicated MS",
+ "SSD is not shared with the system for the indicated MS"
+};
+
+static const true_false_string ansi_map_systemcapabilities_dp_bool_val = {
+ "DP is supported by the system",
+ "DP is not supported by the system"
+};
+
+static void
+dissect_ansi_map_systemcapabilities(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_systemcapabilities);
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitHG, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_systemcapabilities_dp, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_systemcapabilities_ssd, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_systemcapabilities_cave, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_systemcapabilities_vp, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_systemcapabilities_se, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_map_systemcapabilities_auth, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+/* 6.5.2.151 TDMABurstIndicator */
+/* 6.5.2.152 TDMACallMode */
+/* 6.5.2.153 TDMAChannelData Updated in N.S0007-0 v 1.0*/
+
+/* 6.5.2.155 TerminationAccessType */
+/* XXX Fix Me, Fill up the values or do special decoding? */
+static const value_string ansi_map_TerminationAccessType_vals[] = {
+ { 0, "Not used"},
+ { 1, "Reserved for controlling system assignment (may be a trunk group identifier)."},
+ /* 1 through 127 */
+ { 127, "Reserved for controlling system assignment (may be a trunk group identifier)."},
+ { 128, "Reserved for TIA/EIA-41 protocol extension. If unknown, treat the same as value 253, Land-to-Mobile Directory Number access"},
+ /* 128 through 160 */
+ { 160, "Reserved for TIA/EIA-41 protocol extension. If unknown, treat the same as value 253, Land-to-Mobile Directory Number access"},
+ { 161, "Reserved for this Standard"},
+ /* 161 through 251 */
+ { 151, "Reserved for this Standard"},
+ { 252, "Mobile-to-Mobile Directory Number access"},
+ { 253, "Land-to-Mobile Directory Number access"},
+ { 254, "Remote Feature Control port access"},
+ { 255, "Roamer port access"},
+ { 0, NULL }
+};
+
+/* 6.5.2.158 TerminationTreatment */
+static const value_string ansi_map_TerminationTreatment_vals[] = {
+ { 0, "Not used"},
+ { 1, "MS Termination"},
+ { 2, "Voice Mail Storage"},
+ { 3, "Voice Mail Retrieval"},
+ { 4, "Dialogue Termination"},
+ { 0, NULL }
+};
+
+/* 6.5.2.159 TerminationTriggers */
+/* Busy (octet 1, bits A and B) */
+static const value_string ansi_map_terminationtriggers_busy_vals[] = {
+ { 0, "Busy Call"},
+ { 1, "Busy Trigger"},
+ { 2, "Busy Leg"},
+ { 3, "Reserved. Treat as an unrecognized parameter value"},
+ { 0, NULL }
+};
+/* Routing Failure (RF) (octet 1, bits C and D) */
+static const value_string ansi_map_terminationtriggers_rf_vals[] = {
+ { 0, "Failed Call"},
+ { 1, "Routing Failure Trigger"},
+ { 2, "Failed Leg"},
+ { 3, "Reserved. Treat as an unrecognized parameter value"},
+ { 0, NULL }
+};
+/* No Page Response (NPR) (octet 1, bits E and F) */
+static const value_string ansi_map_terminationtriggers_npr_vals[] = {
+ { 0, "No Page Response Call"},
+ { 1, "No Page Response Trigger"},
+ { 2, "No Page Response Leg"},
+ { 3, "Reserved. Treat as an unrecognized parameter value"},
+ { 0, NULL }
+};
+/* No Answer (NA) (octet 1, bits G and H) */
+static const value_string ansi_map_terminationtriggers_na_vals[] = {
+ { 0, "No Answer Call"},
+ { 1, "No Answer Trigger"},
+ { 2, "No Answer Leg"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+/* None Reachable (NR) (octet 2, bit A) */
+static const value_string ansi_map_terminationtriggers_nr_vals[] = {
+ { 0, "Member Not Reachable"},
+ { 1, "Group Not Reachable"},
+ { 0, NULL }
+};
+
+/* 6.5.2.159 TerminationTriggers N.S0005-0 v 1.0*/
+static void
+dissect_ansi_map_terminationtriggers(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_transactioncapability);
+
+ proto_tree_add_item(subtree, hf_ansi_map_reservedBitH, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* No Page Response (NPR) (octet 1, bits E and F) */
+ proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_npr, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* No Answer (NA) (octet 1, bits G and H) */
+ proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_na, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Routing Failure (RF) (octet 1, bits C and D) */
+ proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_rf, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Busy (octet 1, bits A and B) */
+ proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_busy, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* None Reachable (NR) (octet 2, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_nr, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+/* 6.5.2.160 TransactionCapability (TIA/EIA-41.5-D, page 5-315) */
+/* Updated with N.S0010-0 v 1.0, N.S0012-0 v 1.0 N.S0013-0 v 1.0 */
+static const true_false_string ansi_map_trans_cap_prof_bool_val = {
+ "The system is capable of supporting the IS-41-C profile parameters",
+ "The system is not capable of supporting the IS-41-C profile parameters"
+};
+
+static const true_false_string ansi_map_trans_cap_busy_bool_val = {
+ "The system is capable of detecting a busy condition at the current time",
+ "The system is not capable of detecting a busy condition at the current time"
+};
+
+static const true_false_string ansi_map_trans_cap_ann_bool_val = {
+ "The system is capable of honoring the AnnouncementList parameter at the current time",
+ "The system is not capable of honoring the AnnouncementList parameter at the current time"
+};
+
+static const true_false_string ansi_map_trans_cap_rui_bool_val = {
+ "The system is capable of interacting with the user",
+ "The system is not capable of interacting with the user"
+};
+
+static const true_false_string ansi_map_trans_cap_spini_bool_val = {
+ "The system is capable of supporting local SPINI operation",
+ "The system is not capable of supporting local SPINI operation at the current time"
+};
+
+static const true_false_string ansi_map_trans_cap_uzci_bool_val = {
+ "The system is User Zone capable at the current time",
+ "The system is not User Zone capable at the current time"
+};
+static const true_false_string ansi_map_trans_cap_ndss_bool_val = {
+ "Serving system is NDSS capable",
+ "Serving system is not NDSS capable"
+};
+static const true_false_string ansi_map_trans_cap_nami_bool_val = {
+ "The system is CNAP/CNAR capable",
+ "The system is not CNAP/CNAR capable"
+};
+
+static const value_string ansi_map_trans_cap_multerm_vals[] = {
+ { 0, "The system cannot accept a termination at this time (i.e., cannot accept routing information)"},
+ { 1, "The system supports the number of call legs indicated"},
+ { 2, "The system supports the number of call legs indicated"},
+ { 3, "The system supports the number of call legs indicated"},
+ { 4, "The system supports the number of call legs indicated"},
+ { 5, "The system supports the number of call legs indicated"},
+ { 6, "The system supports the number of call legs indicated"},
+ { 7, "The system supports the number of call legs indicated"},
+ { 8, "The system supports the number of call legs indicated"},
+ { 9, "The system supports the number of call legs indicated"},
+ { 10, "The system supports the number of call legs indicated"},
+ { 11, "The system supports the number of call legs indicated"},
+ { 12, "The system supports the number of call legs indicated"},
+ { 13, "The system supports the number of call legs indicated"},
+ { 14, "The system supports the number of call legs indicated"},
+ { 15, "The system supports the number of call legs indicated"},
+ { 0, NULL }
+};
+
+static const true_false_string ansi_map_trans_cap_tl_bool_val = {
+ "The system is capable of supporting the TerminationList parameter at the current time",
+ "The system is not capable of supporting the TerminationList parameter at the current time"
+};
+
+static const true_false_string ansi_map_trans_cap_waddr_bool_val = {
+ "The system is capable of supporting the TriggerAddressList parameter",
+ "The system is not capable of supporting the TriggerAddressList parameter"
+};
+
+
+static void
+dissect_ansi_map_transactioncapability(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_transactioncapability);
+
+ /*NAME Capability Indicator (NAMI) (octet 1, bit H) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_nami, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* NDSS Capability (NDSS) (octet 1, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_ndss, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* UZ Capability Indicator (UZCI) (octet 1, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_uzci, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Subscriber PIN Intercept (SPINI) (octet 1, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_spini, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Remote User Interaction (RUI) (octet 1, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_rui, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Announcements (ANN) (octet 1, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_ann, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Busy Detection (BUSY) (octet 1, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_busy, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Profile (PROF) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_prof, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* WIN Addressing (WADDR) (octet 2, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_trans_cap_waddr, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* TerminationList (TL) (octet 2, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_trans_cap_tl, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Multiple Terminations (octet 2, bits A-D) */
+ proto_tree_add_item(subtree, hf_ansi_trans_cap_multerm, tvb, offset, 1, ENC_BIG_ENDIAN);
+}
+
+/* 6.5.2.162 UniqueChallengeReport */
+/* Unique Challenge Report (octet 1) */
+static const value_string ansi_map_UniqueChallengeReport_vals[] = {
+ { 0, "Not used"},
+ { 1, "Unique Challenge not attempted"},
+ { 2, "Unique Challenge no response"},
+ { 3, "Unique Challenge successful"},
+ { 4, "Unique Challenge failed"},
+ { 0, NULL }
+};
+
+/* 6.5.2.166 VoicePrivacyMask */
+
+
+/* 6.5.2.e (TSB76) CDMAServiceConfigurationRecord N.S0008-0 v 1.0 */
+/* a. This field carries the CDMA Service Configuration Record. The bit-layout is the
+ same as that of Service Configuration Record in TSB74, and J-STD-008.
+*/
+
+/* 6.5.2.f CDMAServiceOption N.S0010-0 v 1.0 */
+
+/* values copied from old ANSI map dissector */
+static const range_string cdmaserviceoption_vals[] = {
+ { 1, 1, "Basic Variable Rate Voice Service (8 kbps)" },
+ { 2, 2, "Mobile Station Loopback (8 kbps)" },
+ { 3, 3, "Enhanced Variable Rate Voice Service (8 kbps)" },
+ { 4, 4, "Asynchronous Data Service (9.6 kbps)" },
+ { 5, 5, "Group 3 Facsimile (9.6 kbps)" },
+ { 6, 6, "Short Message Services (Rate Set 1)" },
+ { 7, 7, "Packet Data Service: Internet or ISO Protocol Stack (9.6 kbps)" },
+ { 8, 8, "Packet Data Service: CDPD Protocol Stack (9.6 kbps)" },
+ { 9, 9, "Mobile Station Loopback (13 kbps)" },
+ { 10, 10, "STU-III Transparent Service" },
+ { 11, 11, "STU-III Non-Transparent Service" },
+ { 12, 12, "Asynchronous Data Service (14.4 or 9.6 kbps)" },
+ { 13, 13, "Group 3 Facsimile (14.4 or 9.6 kbps)" },
+ { 14, 14, "Short Message Services (Rate Set 2)" },
+ { 15, 15, "Packet Data Service: Internet or ISO Protocol Stack (14.4 kbps)" },
+ { 16, 16, "Packet Data Service: CDPD Protocol Stack (14.4 kbps)" },
+ { 17, 17, "High Rate Voice Service (13 kbps)" },
+ { 18, 18, "Over-the-Air Parameter Administration (Rate Set 1)" },
+ { 19, 19, "Over-the-Air Parameter Administration (Rate Set 2)" },
+ { 20, 20, "Group 3 Analog Facsimile (Rate Set 1)" },
+ { 21, 21, "Group 3 Analog Facsimile (Rate Set 2)" },
+ { 22, 22, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS1 forward, RS1 reverse)" },
+ { 23, 23, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS1 forward, RS2 reverse)" },
+ { 24, 24, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS2 forward, RS1 reverse)" },
+ { 25, 25, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS2 forward, RS2 reverse)" },
+ { 26, 26, "High Speed Packet Data Service: CDPD Protocol Stack (RS1 forward, RS1 reverse)" },
+ { 27, 27, "High Speed Packet Data Service: CDPD Protocol Stack (RS1 forward, RS2 reverse)" },
+ { 28, 28, "High Speed Packet Data Service: CDPD Protocol Stack (RS2 forward, RS1 reverse)" },
+ { 29, 29, "High Speed Packet Data Service: CDPD Protocol Stack (RS2 forward, RS2 reverse)" },
+ { 30, 30, "Supplemental Channel Loopback Test for Rate Set 1" },
+ { 31, 31, "Supplemental Channel Loopback Test for Rate Set 2" },
+ { 32, 32, "Test Data Service Option (TDSO)" },
+ { 33, 33, "cdma2000 High Speed Packet Data Service, Internet or ISO Protocol Stack" },
+ { 34, 34, "cdma2000 High Speed Packet Data Service, CDPD Protocol Stack" },
+ { 35, 35, "Location Services, Rate Set 1 (9.6 kbps)" },
+ { 36, 36, "Location Services, Rate Set 2 (14.4 kbps)" },
+ { 37, 37, "ISDN Interworking Service (64 kbps)" },
+ { 38, 38, "GSM Voice" },
+ { 39, 39, "GSM Circuit Data" },
+ { 40, 40, "GSM Packet Data" },
+ { 41, 41, "GSM Short Message Service" },
+ { 42, 42, "None Reserved for MC-MAP standard service options" },
+ { 54, 54, "Markov Service Option (MSO)" },
+ { 55, 55, "Loopback Service Option (LSO)" },
+ { 56, 56, "Selectable Mode Vocoder" },
+ { 57, 57, "32 kbps Circuit Video Conferencing" },
+ { 58, 58, "64 kbps Circuit Video Conferencing" },
+ { 59, 59, "HRPD Accounting Records Identifier" },
+ { 60, 60, "Link Layer Assisted Robust Header Compression (LLA ROHC) - Header Removal" },
+ { 61, 61, "Link Layer Assisted Robust Header Compression (LLA ROHC) - Header Compression" },
+ { 62, 62, "Source-Controlled Variable-Rate Multimode Wideband Speech Codec (VMR-WB) Rate Set 2" },
+ { 63, 63, "Source-Controlled Variable-Rate Multimode Wideband Speech Codec (VMR-WB) Rate Set 1" },
+ { 64, 64, "HRPD auxiliary Packet Data Service instance" },
+ { 65, 65, "cdma2000/GPRS Inter-working" },
+ { 66, 66, "cdma2000 High Speed Packet Data Service, Internet or ISO Protocol Stack" },
+ { 67, 67, "HRPD Packet Data IP Service where Higher Layer Protocol is IP or ROHC" },
+ { 68, 68, "Enhanced Variable Rate Voice Service (EVRC-B)" },
+ { 69, 69, "HRPD Packet Data Service, which when used in paging over the 1x air interface, a page response is required" },
+ { 70, 70, "Enhanced Variable Rate Voice Service (EVRC-WB)" },
+ { 71, 4099, "None Reserved for standard service options" },
+ { 4100, 4100, "Asynchronous Data Service, Revision 1 (9.6 or 14.4 kbps)" },
+ { 4101, 4101, "Group 3 Facsimile, Revision 1 (9.6 or 14.4 kbps)" },
+ { 4102, 4102, "Reserved for standard service option" },
+ { 4103, 4103, "Packet Data Service: Internet or ISO Protocol Stack, Revision 1 (9.6 or 14.4 kbps)" },
+ { 4104, 4104, "Packet Data Service: CDPD Protocol Stack, Revision 1 (9.6 or 14.4 kbps)" },
+ { 4105, 32767, "Reserved for standard service options" },
+ { 32768, 32768, "QCELP (13 kbps)" },
+ { 32769, 32771, "Proprietary QUALCOMM Incorporated" },
+ { 32772, 32775, "Proprietary OKI Telecom" },
+ { 32776, 32779, "Proprietary Lucent Technologies" },
+ { 32780, 32783, "Nokia" },
+ { 32784, 32787, "NORTEL NETWORKS" },
+ { 32788, 32791, "Sony Electronics Inc" },
+ { 32792, 32795, "Motorola" },
+ { 32796, 32799, "QUALCOMM Incorporated" },
+ { 32800, 32803, "QUALCOMM Incorporated" },
+ { 32804, 32807, "QUALCOMM Incorporated" },
+ { 32808, 32811, "QUALCOMM Incorporated" },
+ { 32812, 32815, "Lucent Technologies" },
+ { 32816, 32819, "Denso International" },
+ { 32820, 32823, "Motorola" },
+ { 32824, 32827, "Denso International" },
+ { 32828, 32831, "Denso International" },
+ { 32832, 32835, "Denso International" },
+ { 32836, 32839, "NEC America" },
+ { 32840, 32843, "Samsung Electronics" },
+ { 32844, 32847, "Texas Instruments Incorporated" },
+ { 32848, 32851, "Toshiba Corporation" },
+ { 32852, 32855, "LG Electronics Inc." },
+ { 32856, 32859, "VIA Telecom Inc." },
+ { 0, 0, NULL }
+};
+
+static void
+dissect_ansi_map_cdmaserviceoption(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_cdmaserviceoption);
+
+ proto_tree_add_item(subtree, hf_ansi_map_cdmaserviceoption, tvb, offset, 2, ENC_BIG_ENDIAN);
+
+
+}
+/* 6.5.2.f (TSB76) CDMAServiceOption N.S0008-0 v 1.0*/
+/* This field carries the CDMA Service Option. The bit-layout is the same as that of
+ Service Option in TSB74 and J-STD-008.*/
+
+/* 6.5.2.i (IS-730) TDMAServiceCode N.S0008-0 v 1.0 */
+static const value_string ansi_map_TDMAServiceCode_vals[] = {
+ { 0, "Analog Speech Only"},
+ { 1, "Digital Speech Only"},
+ { 2, "Analog or Digital Speech, Analog Preferred"},
+ { 3, "Analog or Digital Speech, Digital Preferred"},
+ { 4, "Asynchronous Data"},
+ { 5, "G3 Fax"},
+ { 6, "Not Used (Service Rejected)"},
+ { 7, "STU-III"},
+ { 0, NULL }
+};
+#if 0
+/* 6.5.2.j (IS-730) TDMATerminalCapability N.S0008-0 v 1.0 Updted with N.S0015-0 */
+/* Supported Frequency Band (octet 1) */
+/* Voice Coder (octet 2) */
+/* Protocol Version (octet 3) N.S0015-0 */
+static const value_string ansi_map_TDMATerminalCapability_prot_ver_vals[] = {
+ { 0, "EIA-553 or IS-54-A"},
+ { 1, "TIA/EIA-627.(IS-54-B)"},
+ { 2, "IS-136"},
+ { 3, "Permanently Reserved (ANSI J-STD-011).Treat the same as value 4, IS-136-A."},
+ { 4, "PV 0 as published in TIA/EIA-136-0 and IS-136-A."},
+ { 5, "PV 1 as published in TIA/EIA-136-A."},
+ { 6, "PV 2 as published in TIA/EIA-136-A."},
+ { 7, "PV 3 as published in TIA/EIA-136-A."},
+ { 0, NULL }
+};
+#endif
+/* Asynchronous Data (ADS) (octet 4, bit A) N.S0007-0*/
+/* Group 3 Fax (G3FAX) (octet 4, bit B) */
+/* Secure Telephone Unit III (STU3) (octet 4, bit C) */
+/* Analog Voice (AVOX) (octet 4, bit D) */
+/* Half Rate (HRATE) (octet 4, bit E) */
+/* Full Rate (FRATE) (octet 4, bit F) */
+/* Double Rate (2RATE) (octet 4, bit G) */
+/* Triple Rate (3RATE) (octet 4, bit H) */
+
+
+/* 6.5.2.k (IS-730)) TDMAVoiceCoder N.S0008-0 v 1.0, N.S0007-0 */
+/* VoiceCoder (octet 1) */
+
+/* 6.5.2.p UserZoneData N.S0015-0 */
+
+/* 6.5.2.aa BaseStationManufacturerCode N.S0007-0 v 1.0 */
+/* The BaseStationManufacturerCode (BSMC) parameter specifies the manufacturer of the
+ base station that is currently serving the MS (see IS-136 for enumeration of values).*/
+
+/* 6.5.2.ab BSMCStatus */
+
+/* BSMC Status (octet 1) */
+static const value_string ansi_map_BSMCStatus_vals[] = {
+ { 0, "Same BSMC Value shall not be supported"},
+ { 1, "Same BSMC Value shall be supported"},
+ { 0, NULL }
+};
+
+/*- 6.5.2.ac ControlChannelMode (N.S0007-0 v 1.0)*/
+static const value_string ansi_map_ControlChannelMode_vals[] = {
+ { 0, "Unknown"},
+ { 1, "MS is in Analog CC Mode"},
+ { 2, "MS is in Digital CC Mode"},
+ { 3, "MS is in NAMPS CC Mode"},
+ { 0, NULL }
+};
+
+/* 6.5.2.ad NonPublicData N.S0007-0 v 1.0*/
+/* NP Only Service (NPOS) (octet 1, bits A and B) */
+/* Charging Area Tone Service (CATS) (octet 1, bits C - F) */
+/* PSID/RSID Download Order (PRDO) (octet 1, bits G and H) */
+
+/* 6.5.2.ae PagingFrameClass N.S0007-0 v 1.0*/
+/* Paging Frame Class (octet 1) */
+
+static const value_string ansi_map_PagingFrameClass_vals[] = {
+ { 0, "PagingFrameClass 1 (1.28 seconds)"},
+ { 1, "PagingFrameClass 2 (2.56 seconds)"},
+ { 2, "PagingFrameClass 3 (3.84 seconds)"},
+ { 3, "PagingFrameClass 4 (7.68 seconds)"},
+ { 4, "PagingFrameClass 5 (15.36 seconds)"},
+ { 5, "PagingFrameClass 6 (30.72 seconds)"},
+ { 6, "PagingFrameClass 7 (61.44 seconds)"},
+ { 7, "PagingFrameClass 8 (122.88 seconds)"},
+ { 8, "Reserved. Treat the same as value 0, PagingFrameClass 1"},
+ { 0, NULL }
+};
+
+/* 6.5.2.af PSID_RSIDInformation N.S0007-0 v 1.0*/
+/* PSID/RSID Indicator (octet 1, bit A) */
+/* PSID/RSID Type (octet 1, bits B-D) */
+
+/* 6.5.2.ah ServicesResult N.S0007-0 v 1.0*/
+/* PSID/RSID Download Result (PRDR) (octet 1, bits A and B) */
+static const value_string ansi_map_ServicesResult_ppr_vals[] = {
+ { 0, "No Indication"},
+ { 1, "Unsuccessful PSID/RSID download"},
+ { 2, "Successful PSID/RSID download"},
+ { 3, "Reserved. Treat the same as value 0, No Indication"},
+ { 0, NULL }
+};
+
+/* 6.5.2.ai SOCStatus N.S0007-0 v 1.0*/
+
+/* SOC Status (octet 1) */
+static const value_string ansi_map_SOCStatus_vals[] = {
+ { 0, "Same SOC Value shall not be supported"},
+ { 1, "Same SOC Value shall be supported"},
+ { 0, NULL }
+};
+
+/* 6.5.2.aj SystemOperatorCode N.S0007-0 v 1.0*/
+/* The SystemOperatorCode (SOC) parameter specifies the system operator that is currently
+ providing service to a MS (see IS-136 for enumeration of values) */
+
+/* 6.5.2.al UserGroup N.S0007-0 v 1.0*/
+
+/* 6.5.2.am UserZoneData N.S0007-0 v 1.0*/
+
+
+/*Table 6.5.2.ay TDMABandwidth value N.S0008-0 v 1.0 */
+static const value_string ansi_map_TDMABandwidth_vals[] = {
+ { 0, "Half-Rate Digital Traffic Channel Only"},
+ { 1, "Full-Rate Digital Traffic Channel Only"},
+ { 2, "Half-Rate or Full-rate Digital Traffic Channel - Full-Rate Preferred"},
+ { 3, "Half-rate or Full-rate Digital Traffic Channel - Half-rate Preferred"},
+ { 4, "Double Full-Rate Digital Traffic Channel Only"},
+ { 5, "Triple Full-Rate Digital Traffic Channel Only"},
+ { 6, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 7, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 8, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 9, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 10, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 11, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 12, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 13, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 14, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 15, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 0, NULL }
+
+};
+
+/* 6.5.2.az TDMADataFeaturesIndicator N.S0008-0 v 1.0 */
+/* TDMADataFeaturesIndicator
+ ansi_map_FeatureActivity_vals
+
+ ADS FeatureActivity ADS-FA ( octet 1 bit A and B )
+ G3 Fax FeatureActivity G3FAX-FA ( octet 1 bit C and D )
+ STU-III FeatureActivity STUIII-FA ( octet 1 bit E and F )
+ Half Rate data FeatureActivity HRATE-FA ( octet 2 bit A and B )
+ Full Rate data FeatureActivity FRATE-FA ( octet 2 bit C and D )
+ Double Rate data FeatureActivity 2RATE-FA ( octet 2 bit E and F )
+ Triple Rate data FeatureActivity 3RATE-FA ( octet g bit G and H )
+
+ Table 6.5.2.azt TDMADataFeaturesIndicator value
+ static const value_string ansi_map_TDMADataFeaturesIndicator_vals[] = {
+ { 0, "Not Used"},
+ { 1, "Not Authorized"},
+ { 2, "Authorized, but de-activated"},
+ { 3, "Authorized and activated"},
+ { 0, NULL }
+
+ };
+*/
+
+/* 6.5.2.ba TDMADataMode N.S0008-0 v 1.0*/
+
+/* 6.5.2.bb TDMAVoiceMode */
+
+/* 6.5.2.bb CDMAConnectionReference N.S0008-0 v 1.0 */
+/* Service Option Connection Reference Octet 1 */
+/* a. This field carries the CDMA Service Option Connection Reference. The bitlayout
+ is the same as that of Service Option Connection Reference in TSB74 and
+ J-STD-008.
+*/
+
+/* 6.5.2.ad CDMAState N.S0008-0 v 1.0 */
+/* Service Option State Octet 1 */
+/* a. This field carries the CDMA Service Option State information. The CDMA
+ Service Option State is defined in the current CDMA Service Options standard.
+ If CDMA Service Option State is not explicitly defined within a section of the
+ relevant CDMA Service Option standard, the CDMA Service Option State shall
+ carry the value of the ORD_Q octet of all current Service Option Control Orders
+ (see IS-95), or the contents of all current CDMA Service Option Control
+ Messages (see TSB74) type specific field for this connection reference. */
+
+/* 6.5.2.aj SecondInterMSCCircuitID */
+/* -- XXX Same code as ISLPinformation???
+ dissect_ansi_map_secondintermsccircuitid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
+
+ int offset = 0;
+
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
+ / Trunk Group Number (G) Octet 1 /
+ proto_tree_add_item(subtree, hf_ansi_map_tgn, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ / Trunk Member Number (M) Octet2 /
+ proto_tree_add_item(subtree, hf_ansi_map_tmn, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
+*/
+#if 0
+/* 6.5.2.as ChangeServiceAttributes N.S0008-0 v 1.0 */
+/* Change Facilities Flag (CHGFAC)(octet 1, bits A - B) */
+static const value_string ansi_map_ChangeServiceAttributes_chgfac_vals[] = {
+ { 0, "Change Facilities Operation Requested"},
+ { 1, "Change Facilities Operation Not Requested"},
+ { 2, "Change Facilities Operation Used"},
+ { 3, "Change Facilities Operation Not Used"},
+ { 0, NULL }
+};
+#endif
+#if 0
+/* Service Negotiate Flag (SRVNEG)(octet 1, bits C - D) */
+static const value_string ansi_map_ChangeServiceAttributes_srvneg_vals[] = {
+ { 0, "Service Negotiation Used"},
+ { 1, "Service Negotiation Not Used"},
+ { 2, "Service Negotiation Required"},
+ { 3, "Service Negotiation Not Required"},
+ { 0, NULL }
+};
+#endif
+#if 0
+/* 6.5.2.au DataPrivacyParameters N.S0008-0 v 1.0*/
+/* Privacy Mode (PM) (octet 1, Bits A and B) */
+static const value_string ansi_map_DataPrivacyParameters_pm_vals[] = {
+ { 0, "Privacy inactive or not supported"},
+ { 1, "Privacy Requested or Acknowledged"},
+ { 2, "Reserved. Treat reserved values the same as value 0, Privacy inactive or not supported."},
+ { 3, "Reserved. Treat reserved values the same as value 0, Privacy inactive or not supported."},
+ { 0, NULL }
+};
+#endif
+#if 0
+/* Data Privacy Version (PM) (octet 2) */
+static const value_string ansi_map_DataPrivacyParameters_data_priv_ver_vals[] = {
+ { 0, "Not used"},
+ { 1, "Data Privacy Version 1"},
+ { 0, NULL }
+};
+#endif
+
+/* 6.5.2.av ISLPInformation N.S0008-0 v 1.0*/
+/* ISLP Type (octet 1) */
+static const value_string ansi_map_islp_type_vals[] = {
+ { 0, "No ISLP supported"},
+ { 1, "ISLP supported"},
+ { 0, NULL }
+};
+/* 6.5.2.bc AnalogRedirectInfo */
+/* Sys Ordering (octet 1, bits A-E) */
+/* Ignore CDMA (IC) (octet 1, bit F) */
+
+/* 6.5.2.be CDMAChannelNumber N.S0010-0 v 1.0*/
+
+/* 6.5.2.bg CDMAPowerCombinedIndicator N.S0010-0 v 1.0*/
+
+/* 6.5.2.bi CDMASearchParameters N.S0010-0 v 1.0*/
+
+/* 6.5.2.bk CDMANetworkIdentification N.S0010-0 v 1.0*/
+/* See CDMA [J-STD-008] for encoding of this field. */
+
+/* 6.5.2.bo RequiredParametersMask N.S0010-0 v 1.0 */
+
+/* 6.5.2.bp ServiceRedirectionCause */
+static const value_string ansi_map_ServiceRedirectionCause_type_vals[] = {
+ { 0, "Not used"},
+ { 1, "NormalRegistration"},
+ { 2, "SystemNotFound."},
+ { 3, "ProtocolMismatch."},
+ { 4, "RegistrationRejection."},
+ { 5, "WrongSID."},
+ { 6, "WrongNID.."},
+ { 0, NULL }
+};
+
+/* 6.5.2.bq ServiceRedirectionInfo N.S0010-0 v 1.0 */
+
+/* 6.5.2.br RoamingIndication N.S0010-0 v 1.0*/
+/* See CDMA [TSB58] for the definition of this field. */
+
+/* 6.5.2.bw CallingPartyName N.S0012-0 v 1.0*/
+
+#if 0
+/* Presentation Status (octet 1, bits A and B) */
+static const value_string ansi_map_Presentation_Status_vals[] = {
+ { 0, "Presentation allowed"},
+ { 1, "Presentation restricted"},
+ { 2, "Blocking toggle"},
+ { 3, "No indication"},
+ { 0, NULL }
+};
+#endif
+#if 0
+/* Availability (octet 1, bit E) N.S0012-0 v 1.0*/
+static const true_false_string ansi_map_Availability_bool_val = {
+ "Name not available",
+ "Name available/unknown"
+};
+#endif
+static void
+dissect_ansi_map_callingpartyname(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ /* Availability (octet 1, bit E) N.S0012-0 v 1.0*/
+
+ /* Presentation Status (octet 1, bits A and B) */
+
+
+
+}
+
+
+/* 6.5.2.bx DisplayText N.S0012-0 v 1.0*/
+/* a. Refer to ANSI T1.610 for field encoding. */
+
+/* 6.5.2.bz ServiceID
+ Service Identifier (octets 1 to n)
+ 0 Not used.
+ 1 Calling Name Presentation - No RND.
+ 2 Calling Name Presentation with RND.
+*/
+
+/* 6.5.2.co GlobalTitle N.S0013-0 v 1.0
+ * Refer to Section 3 of ANSI T1.112 for the encoding of this field.
+ */
+/* Address Indicator octet 1 */
+/* Global Title Octet 2 - n */
+
+
+#if 0
+/* 6.5.2.dc SpecializedResource N.S0013-0 v 1.0*/
+/* Resource Type (octet 1) */
+static const value_string ansi_map_resource_type_vals[] = {
+ { 0, "Not used"},
+ { 1, "DTMF tone detector"},
+ { 2, "Automatic Speech Recognition - Speaker Independent - Digits"},
+ { 3, "Automatic Speech Recognition - Speaker Independent - Speech User Interface Version 1"},
+ { 0, NULL }
+};
+#endif
+/* 6.5.2.df TriggerCapability */
+/* Updated with N.S0004 N.S0013-0 v 1.0*/
+
+static const true_false_string ansi_map_triggercapability_bool_val = {
+ "triggers can be armed by the TriggerAddressList parameter",
+ "triggers cannot be armed by the TriggerAddressList parameter"
+};
+
+static void
+dissect_ansi_map_triggercapability(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_triggercapability);
+
+
+ /* O_No_Answer (ONA) (octet 1, bit H)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_ona, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* O_Disconnect (ODISC) (octet 1, bit G)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_odisc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* O_Answer (OANS) (octet 1, bit F)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_oans, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Origination_Attempt_Authorized (OAA) (octet 1, bit E)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_oaa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Revertive_Call (RvtC) (octet 1, bit D)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_rvtc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* All_Calls (All) (octet 1, bit C)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_all, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* K-digit (K-digit) (octet 1, bit B)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_kdigit, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Introducing Star/Pound (INIT) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_init, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+
+ /* O_Called_Party_Busy (OBSY) (octet 2, bit H)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_obsy, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Called_Routing_Address_Available (CdRAA) (octet 2, bit G)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_cdraa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Initial_Termination (IT) (octet 2, bit F)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_it, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Calling_Routing_Address_Available (CgRAA)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_cgraa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Advanced_Termination (AT) (octet 2, bit D)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_at, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Prior_Agreement (PA) (octet 2, bit C)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_pa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Unrecognized_Number (Unrec) (octet 2, bit B)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_unrec, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Call Types (CT) (octet 2, bit A)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_ct, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /* */
+ /* */
+ /* */
+ /* T_Disconnect (TDISC) (octet 3, bit E)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_tdisc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* T_Answer (TANS) (octet 3, bit D)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_tans, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* T_No_Answer (TNA) (octet 3, bit C)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_tna, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* T_Busy (TBusy) (octet 3, bit B)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_tbusy, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Terminating_Resource_Available (TRA) (octet 3, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_tra, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/* 6.5.2.ei DMH_ServiceID N.S0018 */
+
+/* 6.5.2.dj WINOperationsCapability */
+/* Updated with N.S0004 */
+/* ConnectResource (CONN) (octet 1, bit A) */
+static const true_false_string ansi_map_winoperationscapability_conn_bool_val = {
+ "Sender is capable of supporting the ConnectResource, DisconnectResource, ConnectionFailureReport and ResetTimer (SSFT timer) operations",
+ "Sender is not capable of supporting the ConnectResource, DisconnectResource,ConnectionFailureReport and ResetTimer (SSFT timer) operations"
+};
+
+/* CallControlDirective (CCDIR) (octet 1, bit B) */
+static const true_false_string ansi_map_winoperationscapability_ccdir_bool_val = {
+ "Sender is capable of supporting the CallControlDirective operation",
+ "Sender is not capable of supporting the CallControlDirective operation"
+};
+
+/* PositionRequest (POS) (octet 1, bit C) */
+static const true_false_string ansi_map_winoperationscapability_pos_bool_val = {
+ "Sender is capable of supporting the PositionRequest operation",
+ "Sender is not capable of supporting the PositionRequest operation"
+};
+static void
+dissect_ansi_map_winoperationscapability(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_winoperationscapability);
+
+ /* PositionRequest (POS) (octet 1, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_winoperationscapability_pos, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* CallControlDirective (CCDIR) (octet 1, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_winoperationscapability_ccdir, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* ConnectResource (CONN) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_winoperationscapability_conn, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+}
+/*
+ * 6.5.2.dk N.S0013-0 v 1.0,X.S0004-550-E v1.0 2.301
+ * Code to be found after include functions.
+ */
+
+/* 6.5.2.ei TIA/EIA-41.5-D Modifications N.S0018Re */
+/* Octet 1,2 1st MarketID */
+/* Octet 3 1st MarketSegmentID */
+/* Octet 4,5 1st DMH_ServiceID value */
+/* Second marcet ID etc */
+/* 6.5.2.ek ControlNetworkID N.S0018*/
+static void
+dissect_ansi_map_controlnetworkid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ proto_tree *subtree;
+
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_controlnetworkid);
+ /* MarketID octet 1 and 2 */
+ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset = offset + 2;
+ /* Switch Number octet 3*/
+ proto_tree_add_item(subtree, hf_ansi_map_swno, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+}
+
+
+/* 6.5.2.dk WIN_TriggerList N.S0013-0 v 1.0 */
+
+/* 6.5.2.ec DisplayText2 Updated in N.S0015-0*/
+
+/* 6.5.2.eq MSStatus N.S0004 */
+
+/* 6.5.2.er PositionInformationCode N.S0004 */
+
+/* 6.5.2.fd InterMessageTime N.S0015-0*/
+/* Timer value (in 10s of seconds) octet 1 */
+
+/* 6.5.2.fe MSIDUsage N.S0015-0 */
+/* M and I Report (octet 1, bits A and B) */
+static const value_string ansi_MSIDUsage_m_or_i_vals[] = {
+ { 0, "Not used"},
+ { 1, "MIN last used"},
+ { 2, "IMSI last used"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+
+/* 6.5.2.ff NewMINExtension N.S0015-0 */
+
+#if 0
+/* 6.5.2.fv ACGEncountered N.S0023-0 v 1.0 */
+/* ACG Encountered (octet 1, bits A-F) */
+static const value_string ansi_ACGEncountered_vals[] = {
+ { 0, "PC_SSN"},
+ { 1, "1-digit control"},
+ { 2, "2-digit control"},
+ { 3, "3-digit control"},
+ { 4, "4-digit control"},
+ { 5, "5-digit control"},
+ { 6, "6-digit control"},
+ { 7, "7-digit control"},
+ { 8, "8-digit control"},
+ { 9, "9-digit control"},
+ { 10, "10-digit control"},
+ { 11, "11-digit control"},
+ { 12, "12-digit control"},
+ { 13, "13-digit control"},
+ { 14, "14-digit control"},
+ { 15, "15-digit control"},
+ { 0, NULL }
+};
+#endif
+#if 0
+/* Control Type (octet 1, bits G-H) */
+static const value_string ansi_ACGEncountered_cntrl_type_vals[] = {
+ { 0, "Not used."},
+ { 1, "Service Management System Initiated control encountered"},
+ { 2, "SCF Overload control encountered"},
+ { 3, "Reserved. Treat the same as value 0, Not used."},
+ { 0, NULL }
+};
+#endif
+
+/* 6.5.2.fw ControlType N.S0023-0 v 1.0 */
+
+
+
+#if 0
+/* 6.5.2.ge QoSPriority N.S0029-0 v1.0*/
+/* 6.5.2.xx QOSPriority */
+/* Non-Assured Priority (octet 1, bits A-D) */
+static const value_string ansi_map_Priority_vals[] = {
+ { 0, "Priority Level 0. This is the lowest level"},
+ { 1, "Priority Level 1"},
+ { 2, "Priority Level 2"},
+ { 3, "Priority Level 3"},
+ { 4, "Priority Level 4"},
+ { 5, "Priority Level 5"},
+ { 6, "Priority Level 6"},
+ { 7, "Priority Level 7"},
+ { 8, "Priority Level 8"},
+ { 8, "Priority Level 9"},
+ { 10, "Priority Level 10"},
+ { 11, "Priority Level 11"},
+ { 12, "Priority Level 12"},
+ { 13, "Priority Level 13"},
+ { 14, "Reserved"},
+ { 15, "Reserved"},
+ { 0, NULL }
+};
+#endif
+/* Assured Priority (octet 1, bits E-H)*/
+
+
+/* 6.5.2.gf PDSNAddress N.S0029-0 v1.0*/
+/* a. See IOS Handoff Request message for the definition of this field. */
+
+/* 6.5.2.gg PDSNProtocolType N.S0029-0 v1.0*/
+/* See IOS Handoff Request message for the definition of this field. */
+
+/* 6.5.2.gh CDMAMSMeasuredChannelIdentity N.S0029-0 v1.0*/
+
+/* 6.5.2.gl CallingPartyCategory N.S0027*/
+/* a. Refer to ITU-T Q.763 (Signalling System No. 7 ISDN user part formats and
+ codes) for encoding of this parameter.
+ b. Refer to national ISDN user part specifications for definitions and encoding of the
+ reserved for national use values.
+*/
+/* 6.5.2.gm CDMA2000HandoffInvokeIOSData N.S0029-0 v1.0*/
+/* IOS A1 Element Handoff Invoke Information */
+
+
+/* 6.5.2.gn CDMA2000HandoffResponseIOSData */
+/* IOS A1 Element Handoff Response Information N.S0029-0 v1.0*/
+
+/* 6.5.2.gr CDMAServiceOptionConnectionIdentifier N.S0029-0 v1.0*/
+
+/* 6.5.2.fk GeographicPosition */
+/* Calling Geodetic Location (CGL)
+ * a. See T1.628 for encoding.
+ * b. Ignore extra octets, if received. Send only defined (or significant) octets.
+ */
+/* 6.5.2.fs PositionRequestType (See J-STD-036, page 8-47) X.S0002-0 v2.0
+ */
+
+/* Position Request Type (octet 1, bits A-H) */
+/*
+ static const value_string ansi_map_Position_Request_Type_vals[] = {
+ { 0, "Not used"},
+ { 1, "Initial Position"},
+ { 2, "Return the updated position"},
+ { 3, "Return the updated or last known position"},
+ { 4, "Reserved for LSP interface"},
+ { 5, "Initial Position Only"},
+ { 6, "Return the last known position"},
+ { 7, "Return the updated position based on the serving cell identity"},
+*/
+/*
+ values through 95 Reserved. Treat the same as value 1, Initial position.
+ 96 through 255 Reserved for TIA/EIA-41 protocol extension. If unknown, treat the
+ same as value 1, Initial position.
+ *
+ { 0, NULL }
+ };
+
+*/
+
+/* LCS Client Type (CTYP) (octet 2, bit A) *
+ 0 Emergency services LCS Client.
+ 1 Non-emergency services LCS Client.
+ Call-Related Indicator (CALL) (octet 2, bit B)
+ Decimal Value Meaning
+ 0 Call-related LCS Client request.
+ 1 Non call-related LCS Client request.
+
+ Current Serving Cell Information for Coarse Position Determination (CELL) (octet 2, bit C)
+ Decimal Value Meaning
+ 0 No specific request.
+ 1 Current serving cell information. Current serving cell information for
+ Target MS requested. Radio contact with Target MS is required.
+*/
+/* 6.5.2.ft PositionResult *
+ static const value_string ansi_map_PositionResult_vals[] = {
+ { 0, "Not used"},
+ { 1, "Initial position returned"},
+ { 2, "Updated position returned"},
+ { 3, "Last known position returned"},
+ { 4, "Requested position is not available"},
+ { 5, "Target MS disconnect"},
+ { 6, "Target MS has handed-off"},
+ { 7, "Identified MS is inactive or has roamed to another system"},
+ { 8, "Unresponsive"},
+ { 9, "Identified MS is responsive, but refused position request"},
+ { 10, "System Failure"},
+ { 11, "MSID is not known"},
+ { 12, "Callback number is not known"},
+ { 13, "Improper request"},
+ { 14, "Mobile information returned"},
+ { 15, "Signal not detected"},
+ { 16, "PDE Timeout"},
+ { 17, "Position pending"},
+ { 18, "TDMA MAHO Information Returned"},
+ { 19, "TDMA MAHO Information is not available"},
+ { 20, "Access Denied"},
+ { 21, "Requested PQOS not met"},
+ { 22, "Resource required for CDMA handset-based position determination is currently unavailable"},
+ { 23, "CDMA handset-based position determination failure"},
+ { 24, "CDMA handset-based position determination failure detected by the PDE"},
+ { 25, "CDMA handset-based position determination incomplete traffic channel requested for voice services"},
+ { 26, "Emergency services call notification"},
+ { 27, "Emergency services call precedence"},
+ { 28, "Request acknowledged"},
+ { 0, NULL }
+ };
+*/
+#if 0
+/* 6.5.2.bp-1 ServiceRedirectionCause value */
+static const value_string ansi_map_ServiceRedirectionCause_vals[] = {
+ { 0, "Not used"},
+ { 1, "NormalRegistration"},
+ { 2, "SystemNotFound"},
+ { 3, "ProtocolMismatch"},
+ { 4, "RegistrationRejection"},
+ { 5, "WrongSID"},
+ { 6, "WrongNID"},
+ { 0, NULL }
+};
+#endif
+/* 6.5.2.mT AuthenticationResponseReauthentication N.S0011-0 v 1.0*/
+
+/* 6.5.2.vT ReauthenticationReport N.S0011-0 v 1.0*/
+static const value_string ansi_map_ReauthenticationReport_vals[] = {
+ { 0, "Not used"},
+ { 1, "Reauthentication not attempted"},
+ { 2, "Reauthentication no response"},
+ { 3, "Reauthentication successful"},
+ { 4, "Reauthentication failed"},
+ { 0, NULL }
+};
+
+
+
+#if 0
+/* 6.5.2.lB AKeyProtocolVersion
+ N.S0011-0 v 1.0
+*/
+static const value_string ansi_map_AKeyProtocolVersion_vals[] = {
+ { 0, "Not used"},
+ { 1, "A-key Generation not supported"},
+ { 2, "Diffie Hellman with 768-bit modulus, 160-bit primitive, and 160-bit exponents"},
+ { 3, "Diffie Hellman with 512-bit modulus, 160-bit primitive, and 160-bit exponents"},
+ { 4, "Diffie Hellman with 768-bit modulus, 32-bit primitive, and 160-bit exponents"},
+ { 0, NULL }
+};
+#endif
+/* 6.5.2.sB OTASP_ResultCode
+ N.S0011-0 v 1.0
+*/
+static const value_string ansi_map_OTASP_ResultCode_vals[] = {
+ { 0, "Accepted - Successful"},
+ { 1, "Rejected - Unknown cause."},
+ { 2, "Computation Failure - E.g., unable to compute A-key"},
+ { 3, "CSC Rejected - CSC challenge failure"},
+ { 4, "Unrecognized OTASPCallEntry"},
+ { 5, "Unsupported AKeyProtocolVersion(s)"},
+ { 6, "Unable to Commit"},
+ { 0, NULL }
+};
+
+/*6.5.2.wB ServiceIndicator
+ N.S0011-0 v 1.0
+*/
+static const value_string ansi_map_ServiceIndicator_vals[] = {
+ { 0, "Undefined Service"},
+ { 1, "CDMA OTASP Service"},
+ { 2, "TDMA OTASP Service"},
+ { 3, "CDMA OTAPA Service"},
+ { 4, "CDMA Position Determination Service (Emergency Services)"},
+ { 5, "AMPS Position Determination Service (Emergency Services)"},
+ { 6, "CDMA Position Determination Service (Value Added Services)"},
+ { 0, NULL }
+};
+
+/* 6.5.2.xB SignalingMessageEncryptionReport
+ N.S0011-0 v 1.0
+*/
+static const value_string ansi_map_SMEReport_vals[] = {
+ { 0, "Not used"},
+ { 1, "Signaling Message Encryption enabling not attempted"},
+ { 2, "Signaling Message Encryption enabling no response"},
+ { 3, "Signaling Message Encryption is enabled"},
+ { 4, "Signaling Message Encryption enabling failed"},
+ { 0, NULL }
+};
+
+/* 6.5.2.zB VoicePrivacyReport
+ N.S0011-0 v 1.0
+*/
+static const value_string ansi_map_VoicePrivacyReport_vals[] = {
+ { 0, "Not used"},
+ { 1, "Voice Privacy not attempted"},
+ { 2, "Voice Privacy no response"},
+ { 3, "Voice Privacy is active"},
+ { 4, "Voice Privacy failed"},
+ { 0, NULL }
+};
+
+
+#include "packet-ansi_map-fn.c"
+
+/*
+ * 6.5.2.dk N.S0013-0 v 1.0,X.S0004-550-E v1.0 2.301
+ */
+static void
+dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
+
+ int offset = 0;
+ int end_offset = 0;
+ int j = 0;
+ proto_tree *subtree;
+ guint8 octet;
+
+ end_offset = tvb_reported_length_remaining(tvb,offset);
+ subtree = proto_item_add_subtree(actx->created_item, ett_win_trigger_list);
+
+ while(offset< end_offset) {
+ octet = tvb_get_guint8(tvb,offset);
+ switch (octet){
+ case 0xdc:
+ proto_tree_add_uint_format(subtree, hf_ansi_map_win_trigger_list, tvb, offset, 1, octet, "TDP-R's armed");
+ j=0;
+ break;
+ case 0xdd:
+ proto_tree_add_uint_format(subtree, hf_ansi_map_win_trigger_list, tvb, offset, 1, octet, "TDP-N's armed");
+ j=0;
+ break;
+ case 0xde:
+ proto_tree_add_uint_format(subtree, hf_ansi_map_win_trigger_list, tvb, offset, 1, octet, "EDP-R's armed");
+ j=0;
+ break;
+ case 0xdf:
+ proto_tree_add_uint_format(subtree, hf_ansi_map_win_trigger_list, tvb, offset, 1, octet, "EDP-N's armed");
+ j=0;
+ break;
+ default:
+ proto_tree_add_uint_format(subtree, hf_ansi_map_win_trigger_list, tvb, offset, 1, octet, "[%u] (%u) %s",j,octet,val_to_str_ext(octet, &ansi_map_TriggerType_vals_ext, "Unknown TriggerType (%u)"));
+ j++;
+ break;
+ }
+ offset++;
+ }
+}
+
+
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+ static gboolean opCodeKnown = TRUE;
+ static ansi_map_tap_rec_t tap_rec[16];
+ static ansi_map_tap_rec_t *tap_p;
+ static int tap_current=0;
+
+ /*
+ * set tap record pointer
+ */
+ tap_current++;
+ if (tap_current == array_length(tap_rec))
+ {
+ tap_current = 0;
+ }
+ tap_p = &tap_rec[tap_current];
+
+ switch(OperationCode){
+ case 1: /*Handoff Measurement Request*/
+ offset = dissect_ansi_map_HandoffMeasurementRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffMeasurementRequest);
+ break;
+ case 2: /*Facilities Directive*/
+ offset = dissect_ansi_map_FacilitiesDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitiesDirective);
+ break;
+ case 3: /*Mobile On Channel*/
+ proto_tree_add_expert(tree, actx->pinfo, &ei_ansi_map_no_data, tvb, offset, -1);
+ break;
+ case 4: /*Handoff Back*/
+ offset = dissect_ansi_map_HandoffBack(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffBack);
+ break;
+ case 5: /*Facilities Release*/
+ offset = dissect_ansi_map_FacilitiesRelease(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitiesRelease);
+ break;
+ case 6: /*Qualification Request*/
+ offset = dissect_ansi_map_QualificationRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_qualificationRequest);
+ break;
+ case 7: /*Qualification Directive*/
+ offset = dissect_ansi_map_QualificationDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_qualificationDirective);
+ break;
+ case 8: /*Blocking*/
+ offset = dissect_ansi_map_Blocking(TRUE, tvb, offset, actx, tree, hf_ansi_map_blocking);
+ break;
+ case 9: /*Unblocking*/
+ offset = dissect_ansi_map_Unblocking(TRUE, tvb, offset, actx, tree, hf_ansi_map_unblocking);
+ break;
+ case 10: /*Reset Circuit*/
+ offset = dissect_ansi_map_ResetCircuit(TRUE, tvb, offset, actx, tree, hf_ansi_map_resetCircuit);
+ break;
+ case 11: /*Trunk Test*/
+ offset = dissect_ansi_map_TrunkTest(TRUE, tvb, offset, actx, tree, hf_ansi_map_trunkTest);
+ break;
+ case 12: /*Trunk Test Disconnect*/
+ offset = dissect_ansi_map_TrunkTestDisconnect(TRUE, tvb, offset, actx, tree, hf_ansi_map_trunkTestDisconnect);
+ break;
+ case 13: /*Registration Notification*/
+ offset = dissect_ansi_map_RegistrationNotification(TRUE, tvb, offset, actx, tree, hf_ansi_map_registrationNotification);
+ break;
+ case 14: /*Registration Cancellation*/
+ offset = dissect_ansi_map_RegistrationCancellation(TRUE, tvb, offset, actx, tree, hf_ansi_map_registrationCancellation);
+ break;
+ case 15: /*Location Request*/
+ offset = dissect_ansi_map_LocationRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_locationRequest);
+ break;
+ case 16: /*Routing Request*/
+ offset = dissect_ansi_map_RoutingRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_routingRequest);
+ break;
+ case 17: /*Feature Request*/
+ offset = dissect_ansi_map_FeatureRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_featureRequest);
+ break;
+ case 18: /*Reserved 18 (Service Profile Request, IS-41-C)*/
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_map_unknown_invokeData_blob, tvb, offset, -1, "Unknown invokeData blob(18 (Service Profile Request, IS-41-C)");
+ break;
+ case 19: /*Reserved 19 (Service Profile Directive, IS-41-C)*/
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_map_unknown_invokeData_blob, tvb, offset, -1, "Unknown invokeData blob(19 Service Profile Directive, IS-41-C)");
+ break;
+ case 20: /*Unreliable Roamer Data Directive*/
+ offset = dissect_ansi_map_UnreliableRoamerDataDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_unreliableRoamerDataDirective);
+ break;
+ case 21: /*Reserved 21 (Call Data Request, IS-41-C)*/
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_map_unknown_invokeData_blob, tvb, offset, -1, "Unknown invokeData blob(Reserved 21 (Call Data Request, IS-41-C)");
+ break;
+ case 22: /*MS Inactive*/
+ offset = dissect_ansi_map_MSInactive(TRUE, tvb, offset, actx, tree, hf_ansi_map_mSInactive);
+ break;
+ case 23: /*Transfer To Number Request*/
+ offset = dissect_ansi_map_TransferToNumberRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_transferToNumberRequest);
+ break;
+ case 24: /*Redirection Request*/
+ offset = dissect_ansi_map_RedirectionRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_redirectionRequest);
+ break;
+ case 25: /*Handoff To Third*/
+ offset = dissect_ansi_map_HandoffToThird(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffToThird);
+ break;
+ case 26: /*Flash Request*/
+ offset = dissect_ansi_map_FlashRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_flashRequest);
+ break;
+ case 27: /*Authentication Directive*/
+ offset = dissect_ansi_map_AuthenticationDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationDirective);
+ break;
+ case 28: /*Authentication Request*/
+ offset = dissect_ansi_map_AuthenticationRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationRequest);
+ break;
+ case 29: /*Base Station Challenge*/
+ offset = dissect_ansi_map_BaseStationChallenge(TRUE, tvb, offset, actx, tree, hf_ansi_map_baseStationChallenge);
+ break;
+ case 30: /*Authentication Failure Report*/
+ offset = dissect_ansi_map_AuthenticationFailureReport(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationFailureReport);
+ break;
+ case 31: /*Count Request*/
+ offset = dissect_ansi_map_CountRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_countRequest);
+ break;
+ case 32: /*Inter System Page*/
+ offset = dissect_ansi_map_InterSystemPage(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPage);
+ break;
+ case 33: /*Unsolicited Response*/
+ offset = dissect_ansi_map_UnsolicitedResponse(TRUE, tvb, offset, actx, tree, hf_ansi_map_unsolicitedResponse);
+ break;
+ case 34: /*Bulk Deregistration*/
+ offset = dissect_ansi_map_BulkDeregistration(TRUE, tvb, offset, actx, tree, hf_ansi_map_bulkDeregistration);
+ break;
+ case 35: /*Handoff Measurement Request 2*/
+ offset = dissect_ansi_map_HandoffMeasurementRequest2(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffMeasurementRequest2);
+ break;
+ case 36: /*Facilities Directive 2*/
+ offset = dissect_ansi_map_FacilitiesDirective2(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitiesDirective2);
+ break;
+ case 37: /*Handoff Back 2*/
+ offset = dissect_ansi_map_HandoffBack2(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffBack2);
+ break;
+ case 38: /*Handoff To Third 2*/
+ offset = dissect_ansi_map_HandoffToThird2(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffToThird2);
+ break;
+ case 39: /*Authentication Directive Forward*/
+ offset = dissect_ansi_map_AuthenticationDirectiveForward(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationDirectiveForward);
+ break;
+ case 40: /*Authentication Status Report*/
+ offset = dissect_ansi_map_AuthenticationStatusReport(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationStatusReport);
+ break;
+ case 41: /*Reserved 41*/
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_map_unknown_invokeData_blob, tvb, offset, -1, "Reserved 41, Unknown invokeData blob");
+ break;
+ case 42: /*Information Directive*/
+ offset = dissect_ansi_map_InformationDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_informationDirective);
+ break;
+ case 43: /*Information Forward*/
+ offset = dissect_ansi_map_InformationForward(TRUE, tvb, offset, actx, tree, hf_ansi_map_informationForward);
+ break;
+ case 44: /*Inter System Answer*/
+ offset = dissect_ansi_map_InterSystemAnswer(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemAnswer);
+ break;
+ case 45: /*Inter System Page 2*/
+ offset = dissect_ansi_map_InterSystemPage2(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPage2);
+ break;
+ case 46: /*Inter System Setup*/
+ offset = dissect_ansi_map_InterSystemSetup(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemSetup);
+ break;
+ case 47: /*OriginationRequest*/
+ offset = dissect_ansi_map_OriginationRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_originationRequest);
+ break;
+ case 48: /*Random Variable Request*/
+ offset = dissect_ansi_map_RandomVariableRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_randomVariableRequest);
+ break;
+ case 49: /*Redirection Directive*/
+ offset = dissect_ansi_map_RedirectionDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_redirectionDirective);
+ break;
+ case 50: /*Remote User Interaction Directive*/
+ offset = dissect_ansi_map_RemoteUserInteractionDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_remoteUserInteractionDirective);
+ break;
+ case 51: /*SMS Delivery Backward*/
+ offset = dissect_ansi_map_SMSDeliveryBackward(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSDeliveryBackward);
+ break;
+ case 52: /*SMS Delivery Forward*/
+ offset = dissect_ansi_map_SMSDeliveryForward(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSDeliveryForward);
+ break;
+ case 53: /*SMS Delivery Point to Point*/
+ offset = dissect_ansi_map_SMSDeliveryPointToPoint(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSDeliveryPointToPoint);
+ break;
+ case 54: /*SMS Notification*/
+ offset = dissect_ansi_map_SMSNotification(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSNotification);
+ break;
+ case 55: /*SMS Request*/
+ offset = dissect_ansi_map_SMSRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSRequest);
+ break;
+ /* End N.S0005*/
+ /* N.S0010-0 v 1.0 */
+ /* N.S0011-0 v 1.0 */
+ case 56: /*OTASP Request 6.4.2.CC*/
+ offset = dissect_ansi_map_OTASPRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_oTASPRequest);
+ break;
+ /*End N.S0011-0 v 1.0 */
+ case 57: /*Information Backward*/
+ break;
+ /* N.S0008-0 v 1.0 */
+ case 58: /*Change Facilities*/
+ offset = dissect_ansi_map_ChangeFacilities(TRUE, tvb, offset, actx, tree, hf_ansi_map_changeFacilities);
+ break;
+ case 59: /*Change Service*/
+ offset = dissect_ansi_map_ChangeService(TRUE, tvb, offset, actx, tree, hf_ansi_map_changeService);
+ break;
+ /* End N.S0008-0 v 1.0 */
+ case 60: /*Parameter Request*/
+ offset = dissect_ansi_map_ParameterRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_parameterRequest);
+ break;
+ case 61: /*TMSI Directive*/
+ offset = dissect_ansi_map_TMSIDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_tMSIDirective);
+ break;
+ /*End N.S0010-0 v 1.0 */
+ case 62: /*NumberPortabilityRequest 62*/
+ offset = dissect_ansi_map_NumberPortabilityRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_numberPortabilityRequest);
+ break;
+ case 63: /*Service Request N.S0012-0 v 1.0*/
+ offset = dissect_ansi_map_ServiceRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_serviceRequest);
+ break;
+ /* N.S0013 */
+ case 64: /*Analyzed Information Request*/
+ offset = dissect_ansi_map_AnalyzedInformation(TRUE, tvb, offset, actx, tree, hf_ansi_map_analyzedInformation);
+ break;
+ case 65: /*Connection Failure Report*/
+ offset = dissect_ansi_map_ConnectionFailureReport(TRUE, tvb, offset, actx, tree, hf_ansi_map_connectionFailureReport);
+ break;
+ case 66: /*Connect Resource*/
+ offset = dissect_ansi_map_ConnectResource(TRUE, tvb, offset, actx, tree, hf_ansi_map_connectResource);
+ break;
+ case 67: /*Disconnect Resource*/
+ /* No data */
+ break;
+ case 68: /*Facility Selected and Available*/
+ offset = dissect_ansi_map_FacilitySelectedAndAvailable(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitySelectedAndAvailable);
+ break;
+ case 69: /*Instruction Request*/
+ /* No data */
+ break;
+ case 70: /*Modify*/
+ offset = dissect_ansi_map_Modify(TRUE, tvb, offset, actx, tree, hf_ansi_map_modify);
+ break;
+ case 71: /*Reset Timer*/
+ /*No Data*/
+ break;
+ case 72: /*Search*/
+ offset = dissect_ansi_map_Search(TRUE, tvb, offset, actx, tree, hf_ansi_map_search);
+ break;
+ case 73: /*Seize Resource*/
+ offset = dissect_ansi_map_SeizeResource(TRUE, tvb, offset, actx, tree, hf_ansi_map_seizeResource);
+ break;
+ case 74: /*SRF Directive*/
+ offset = dissect_ansi_map_SRFDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_sRFDirective);
+ break;
+ case 75: /*T Busy*/
+ offset = dissect_ansi_map_TBusy(TRUE, tvb, offset, actx, tree, hf_ansi_map_tBusy);
+ break;
+ case 76: /*T NoAnswer*/
+ offset = dissect_ansi_map_TNoAnswer(TRUE, tvb, offset, actx, tree, hf_ansi_map_tNoAnswer);
+ break;
+ /*END N.S0013 */
+ case 77: /*Release*/
+ break;
+ case 78: /*SMS Delivery Point to Point Ack*/
+ offset = dissect_ansi_map_SMSDeliveryPointToPointAck(TRUE, tvb, offset, actx, tree, hf_ansi_map_smsDeliveryPointToPointAck);
+ break;
+ /* N.S0024*/
+ case 79: /*Message Directive*/
+ offset = dissect_ansi_map_MessageDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_messageDirective);
+ break;
+ /*END N.S0024*/
+ /* N.S0018 PN-4287*/
+ case 80: /*Bulk Disconnection*/
+ offset = dissect_ansi_map_BulkDisconnection(TRUE, tvb, offset, actx, tree, hf_ansi_map_bulkDisconnection);
+ break;
+ case 81: /*Call Control Directive*/
+ offset = dissect_ansi_map_CallControlDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_callControlDirective);
+ break;
+ case 82: /*O Answer*/
+ offset = dissect_ansi_map_OAnswer(TRUE, tvb, offset, actx, tree, hf_ansi_map_oAnswer);
+ break;
+ case 83: /*O Disconnect*/
+ offset = dissect_ansi_map_ODisconnect(TRUE, tvb, offset, actx, tree, hf_ansi_map_oDisconnect);
+ break;
+ case 84: /*Call Recovery Report*/
+ offset = dissect_ansi_map_CallRecoveryReport(TRUE, tvb, offset, actx, tree, hf_ansi_map_callRecoveryReport);
+ break;
+ case 85: /*T Answer*/
+ offset = dissect_ansi_map_TAnswer(TRUE, tvb, offset, actx, tree, hf_ansi_map_tAnswer);
+ break;
+ case 86: /*T Disconnect*/
+ offset = dissect_ansi_map_TDisconnect(TRUE, tvb, offset, actx, tree, hf_ansi_map_tDisconnect);
+ break;
+ case 87: /*Unreliable Call Data*/
+ offset = dissect_ansi_map_UnreliableCallData(TRUE, tvb, offset, actx, tree, hf_ansi_map_unreliableCallData);
+ break;
+ /* N.S0018 PN-4287*/
+ /*N.S0004 */
+ case 88: /*O CalledPartyBusy*/
+ offset = dissect_ansi_map_OCalledPartyBusy(TRUE, tvb, offset, actx, tree, hf_ansi_map_oCalledPartyBusy);
+ break;
+ case 89: /*O NoAnswer*/
+ offset = dissect_ansi_map_ONoAnswer(TRUE, tvb, offset, actx, tree, hf_ansi_map_oNoAnswer);
+ break;
+ case 90: /*Position Request*/
+ offset = dissect_ansi_map_PositionRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_positionRequest);
+ break;
+ case 91: /*Position Request Forward*/
+ offset = dissect_ansi_map_PositionRequestForward(TRUE, tvb, offset, actx, tree, hf_ansi_map_positionRequestForward);
+ break;
+ /*END N.S0004 */
+ case 92: /*Call Termination Report*/
+ offset = dissect_ansi_map_CallTerminationReport(TRUE, tvb, offset, actx, tree, hf_ansi_map_callTerminationReport);
+ break;
+ case 93: /*Geo Position Directive*/
+ break;
+ case 94: /*Geo Position Request*/
+ offset = dissect_ansi_map_GeoPositionRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPositionRequest);
+ break;
+ case 95: /*Inter System Position Request*/
+ offset = dissect_ansi_map_InterSystemPositionRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPositionRequest);
+ break;
+ case 96: /*Inter System Position Request Forward*/
+ offset = dissect_ansi_map_InterSystemPositionRequestForward(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPositionRequestForward);
+ break;
+ /* 3GPP2 N.S0023-0 */
+ case 97: /*ACG Directive*/
+ offset = dissect_ansi_map_ACGDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_aCGDirective);
+ break;
+ /* END 3GPP2 N.S0023-0 */
+ case 98: /*Roamer Database Verification Request*/
+ offset = dissect_ansi_map_RoamerDatabaseVerificationRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_roamerDatabaseVerificationRequest);
+ break;
+ /* N.S0029 X.S0001-A v1.0*/
+ case 99: /*Add Service*/
+ offset = dissect_ansi_map_AddService(TRUE, tvb, offset, actx, tree, hf_ansi_map_addService);
+ break;
+ case 100: /*Drop Service*/
+ offset = dissect_ansi_map_DropService(TRUE, tvb, offset, actx, tree, hf_ansi_map_dropService);
+ break;
+ /*End N.S0029 X.S0001-A v1.0*/
+ /* X.S0002-0 v1.0 */
+ /* LCSParameterRequest */
+ case 101: /* InterSystemSMSPage 101 */
+ offset = dissect_ansi_map_InterSystemSMSPage(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemSMSPage);
+ break;
+ case 102:
+ offset = dissect_ansi_map_LCSParameterRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_lcsParameterRequest);
+ break;
+ /* CheckMEID X.S0008-0 v1.0*/
+ case 104:
+ offset = dissect_ansi_map_CheckMEID(TRUE, tvb, offset, actx, tree, hf_ansi_map_checkMEID);
+ break;
+ /* PositionEventNotification */
+ case 106:
+ offset = dissect_ansi_map_PositionEventNotification(TRUE, tvb, offset, actx, tree, hf_ansi_map_positionEventNotification);
+ break;
+ case 107:
+ /* StatusRequest X.S0008-0 v1.0*/
+ offset = dissect_ansi_map_StatusRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_statusRequest);
+ break;
+ /* InterSystemSMSDelivery-PointToPoint 111 X.S0004-540-E v2.0*/
+ case 111:
+ /* InterSystemSMSDeliveryPointToPoint X.S0004-540-E v2.0 */
+ offset = dissect_ansi_map_InterSystemSMSDeliveryPointToPoint(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemSMSDeliveryPointToPoint);
+ break;
+ case 112:
+ /* QualificationRequest2 112 X.S0004-540-E v2.0*/
+ offset = dissect_ansi_map_QualificationRequest2(TRUE, tvb, offset, actx, tree, hf_ansi_map_qualificationRequest2);
+ break;
+ default:
+ proto_tree_add_expert(tree, actx->pinfo, &ei_ansi_map_unknown_invokeData_blob, tvb, offset, -1);
+ opCodeKnown = FALSE;
+ break;
+ }
+
+ if (opCodeKnown)
+ {
+ tap_p->message_type = OperationCode;
+ tap_p->size = 0; /* should be number of octets in message */
+
+ tap_queue_packet(ansi_map_tap, g_pinfo, tap_p);
+ }
+
+ return offset;
+}
+
+static int dissect_returnData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+ static gboolean opCodeKnown = TRUE;
+ static ansi_map_tap_rec_t tap_rec[16];
+ static ansi_map_tap_rec_t *tap_p;
+ static int tap_current=0;
+
+ /*
+ * set tap record pointer
+ */
+ tap_current++;
+ if (tap_current == array_length(tap_rec))
+ {
+ tap_current = 0;
+ }
+ tap_p = &tap_rec[tap_current];
+
+ switch(OperationCode){
+ case 1: /*Handoff Measurement Request*/
+ offset = dissect_ansi_map_HandoffMeasurementRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffMeasurementRequestRes);
+ break;
+ case 2: /*Facilities Directive*/
+ offset = dissect_ansi_map_FacilitiesDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitiesDirectiveRes);
+ break;
+ case 4: /*Handoff Back*/
+ offset = dissect_ansi_map_HandoffBackRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffBackRes);
+ break;
+ case 5: /*Facilities Release*/
+ offset = dissect_ansi_map_FacilitiesReleaseRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitiesReleaseRes);
+ break;
+ case 6: /*Qualification Request*/
+ offset = dissect_ansi_map_QualificationRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_qualificationRequestRes);
+ break;
+ case 7: /*Qualification Directive*/
+ offset = dissect_ansi_map_QualificationDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_qualificationDirectiveRes);
+ break;
+ case 10: /*Reset Circuit*/
+ offset = dissect_ansi_map_ResetCircuitRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_resetCircuitRes);
+ break;
+ case 13: /*Registration Notification*/
+ offset = dissect_ansi_map_RegistrationNotificationRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_registrationNotificationRes);
+ break;
+ case 14: /*Registration Cancellation*/
+ offset = dissect_ansi_map_RegistrationCancellationRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_registrationCancellationRes);
+ break;
+ case 15: /*Location Request*/
+ offset = dissect_ansi_map_LocationRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_locationRequestRes);
+ break;
+ case 16: /*Routing Request*/
+ offset = dissect_ansi_map_RoutingRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_routingRequestRes);
+ break;
+ case 17: /*Feature Request*/
+ offset = dissect_ansi_map_FeatureRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_featureRequestRes);
+ break;
+ case 23: /*Transfer To Number Request*/
+ offset = dissect_ansi_map_TransferToNumberRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_transferToNumberRequestRes);
+ break;
+ case 25: /*Handoff To Third*/
+ offset = dissect_ansi_map_HandoffToThirdRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffToThirdRes);
+ break;
+ case 26: /*Flash Request*/
+ /* No data */
+ proto_tree_add_expert(tree, actx->pinfo, &ei_ansi_map_no_data, tvb, offset, -1);
+ break;
+ case 27: /*Authentication Directive*/
+ offset = dissect_ansi_map_AuthenticationDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationDirectiveRes);
+ break;
+ case 28: /*Authentication Request*/
+ offset = dissect_ansi_map_AuthenticationRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationRequestRes);
+ break;
+ case 29: /*Base Station Challenge*/
+ offset = dissect_ansi_map_BaseStationChallengeRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_baseStationChallengeRes);
+ break;
+ case 30: /*Authentication Failure Report*/
+ offset = dissect_ansi_map_AuthenticationFailureReportRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationFailureReportRes);
+ break;
+ case 31: /*Count Request*/
+ offset = dissect_ansi_map_CountRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_countRequestRes);
+ break;
+ case 32: /*Inter System Page*/
+ offset = dissect_ansi_map_InterSystemPageRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPageRes);
+ break;
+ case 33: /*Unsolicited Response*/
+ offset = dissect_ansi_map_UnsolicitedResponseRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_unsolicitedResponseRes);
+ break;
+ case 35: /*Handoff Measurement Request 2*/
+ offset = dissect_ansi_map_HandoffMeasurementRequest2Res(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffMeasurementRequest2Res);
+ break;
+ case 36: /*Facilities Directive 2*/
+ offset = dissect_ansi_map_FacilitiesDirective2Res(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitiesDirective2Res);
+ break;
+ case 37: /*Handoff Back 2*/
+ offset = dissect_ansi_map_HandoffBack2Res(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffBack2Res);
+ break;
+ case 38: /*Handoff To Third 2*/
+ offset = dissect_ansi_map_HandoffToThird2Res(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffToThird2Res);
+ break;
+ case 39: /*Authentication Directive Forward*/
+ offset = dissect_ansi_map_AuthenticationDirectiveForwardRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationDirectiveForwardRes);
+ break;
+ case 40: /*Authentication Status Report*/
+ offset = dissect_ansi_map_AuthenticationStatusReportRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_authenticationStatusReportRes);
+ break;
+ /*Reserved 41*/
+ case 42: /*Information Directive*/
+ offset = dissect_ansi_map_InformationDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_informationDirectiveRes);
+ break;
+ case 43: /*Information Forward*/
+ offset = dissect_ansi_map_InformationForwardRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_informationForwardRes);
+ break;
+ case 45: /*Inter System Page 2*/
+ offset = dissect_ansi_map_InterSystemPage2Res(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPage2Res);
+ break;
+ case 46: /*Inter System Setup*/
+ offset = dissect_ansi_map_InterSystemSetupRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemSetupRes);
+ break;
+ case 47: /*OriginationRequest*/
+ offset = dissect_ansi_map_OriginationRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_originationRequestRes);
+ break;
+ case 48: /*Random Variable Request*/
+ offset = dissect_ansi_map_RandomVariableRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_randomVariableRequestRes);
+ break;
+ case 50: /*Remote User Interaction Directive*/
+ offset = dissect_ansi_map_RemoteUserInteractionDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_remoteUserInteractionDirectiveRes);
+ break;
+ case 51: /*SMS Delivery Backward*/
+ offset = dissect_ansi_map_SMSDeliveryBackwardRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSDeliveryBackwardRes);
+ break;
+ case 52: /*SMS Delivery Forward*/
+ offset = dissect_ansi_map_SMSDeliveryForwardRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSDeliveryForwardRes);
+ break;
+ case 53: /*SMS Delivery Point to Point*/
+ offset = dissect_ansi_map_SMSDeliveryPointToPointRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSDeliveryPointToPointRes);
+ break;
+ case 54: /*SMS Notification*/
+ offset = dissect_ansi_map_SMSNotificationRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSNotificationRes);
+ break;
+ case 55: /*SMS Request*/
+ offset = dissect_ansi_map_SMSRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_sMSRequestRes);
+ break;
+ /* N.S0008-0 v 1.0 */
+ case 56: /*OTASP Request 6.4.2.CC*/
+ offset = dissect_ansi_map_OTASPRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_oTASPRequestRes);
+ break;
+ /* 57 Information Backward*/
+ case 58: /*Change Facilities*/
+ offset = dissect_ansi_map_ChangeFacilitiesRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_changeFacilitiesRes);
+ break;
+ case 59: /*Change Service*/
+ offset = dissect_ansi_map_ChangeServiceRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_changeServiceRes);
+ break;
+ case 60: /*Parameter Request*/
+ offset = dissect_ansi_map_ParameterRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_parameterRequestRes);
+ break;
+ case 61: /*TMSI Directive*/
+ offset = dissect_ansi_map_TMSIDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_tMSIDirectiveRes);
+ break;
+ case 62: /*NumberPortabilityRequest */
+ offset = dissect_ansi_map_NumberPortabilityRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_numberPortabilityRequestRes);
+ break;
+ case 63: /*Service Request*/
+ offset = dissect_ansi_map_ServiceRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_serviceRequestRes);
+ break;
+ /* N.S0013 */
+ case 64: /*Analyzed Information Request*/
+ offset = dissect_ansi_map_AnalyzedInformationRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_analyzedInformationRes);
+ break;
+ /* 65 Connection Failure Report*/
+ /* 66 Connect Resource*/
+ /* 67 Disconnect Resource*/
+ case 68: /*Facility Selected and Available*/
+ offset = dissect_ansi_map_FacilitySelectedAndAvailableRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitySelectedAndAvailableRes);
+ break;
+ /* 69 Instruction Request*/
+ case 70: /*Modify*/
+ offset = dissect_ansi_map_ModifyRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_modifyRes);
+ break;
+ case 72: /*Search*/
+ offset = dissect_ansi_map_SearchRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_searchRes);
+ break;
+ case 73: /*Seize Resource*/
+ offset = dissect_ansi_map_SeizeResourceRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_seizeResourceRes);
+ break;
+ case 74: /*SRF Directive*/
+ offset = dissect_ansi_map_SRFDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_sRFDirectiveRes);
+ break;
+ case 75: /*T Busy*/
+ offset = dissect_ansi_map_TBusyRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_tBusyRes);
+ break;
+ case 76: /*T NoAnswer*/
+ offset = dissect_ansi_map_TNoAnswerRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_tNoAnswerRes);
+ break;
+ case 81: /*Call Control Directive*/
+ offset = dissect_ansi_map_CallControlDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_callControlDirectiveRes);
+ break;
+ case 83: /*O Disconnect*/
+ offset = dissect_ansi_map_ODisconnectRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_oDisconnectRes);
+ break;
+ case 86: /*T Disconnect*/
+ offset = dissect_ansi_map_TDisconnectRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_tDisconnectRes);
+ break;
+ case 88: /*O CalledPartyBusy*/
+ offset = dissect_ansi_map_OCalledPartyBusyRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_oCalledPartyBusyRes);
+ break;
+ case 89: /*O NoAnswer*/
+ offset = dissect_ansi_map_ONoAnswerRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_oNoAnswerRes);
+ break;
+ case 90: /*Position Request*/
+ offset = dissect_ansi_map_PositionRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_positionRequestRes);
+ break;
+ case 91: /*Position Request Forward*/
+ offset = dissect_ansi_map_PositionRequestForwardRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_positionRequestForwardRes);
+ break;
+ case 95: /*Inter System Position Request*/
+ offset = dissect_ansi_map_InterSystemPositionRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPositionRequestRes);
+ break;
+ case 96: /*Inter System Position Request Forward*/
+ offset = dissect_ansi_map_InterSystemPositionRequestForwardRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPositionRequestRes);
+ break;
+ case 98: /*Roamer Database Verification Request*/
+ offset = dissect_ansi_map_RoamerDatabaseVerificationRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_roamerDatabaseVerificationRequestRes);
+ break;
+ case 99: /*Add Service*/
+ offset = dissect_ansi_map_AddServiceRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_addServiceRes);
+ break;
+ case 100: /*Drop Service*/
+ offset = dissect_ansi_map_DropServiceRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_dropServiceRes);
+ break;
+ /*End N.S0029 */
+ /* X.S0002-0 v1.0 */
+ /* LCSParameterRequest */
+ case 102:
+ offset = dissect_ansi_map_LCSParameterRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_lcsParameterRequestRes);
+ break;
+ /* CheckMEID X.S0008-0 v1.0*/
+ case 104:
+ offset = dissect_ansi_map_CheckMEIDRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_checkMEIDRes);
+ break;
+ /* PositionEventNotification *
+ case 106:
+ offset = dissect_ansi_map_PositionEventNotification(TRUE, tvb, offset, actx, tree, hf_ansi_map_positionEventNotificationRes);
+ break;
+ */
+ case 107:
+ /* StatusRequest X.S0008-0 v1.0*/
+ offset = dissect_ansi_map_StatusRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_statusRequestRes);
+ break;
+ case 111:
+ /* InterSystemSMSDeliveryPointToPointRes X.S0004-540-E v2.0 */
+ offset = dissect_ansi_map_InterSystemSMSDeliveryPointToPointRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemSMSDeliveryPointToPointRes);
+ break;
+ case 112:
+ /* QualificationRequest2Res 112 X.S0004-540-E v2.0*/
+ offset = dissect_ansi_map_QualificationRequest2Res(TRUE, tvb, offset, actx, tree, hf_ansi_map_qualificationRequest2Res);
+ break;
+ default:
+ proto_tree_add_expert(tree, actx->pinfo, &ei_ansi_map_unknown_invokeData_blob, tvb, offset, -1);
+ opCodeKnown = FALSE;
+ break;
+ }
+
+ if (opCodeKnown)
+ {
+ tap_p->message_type = OperationCode;
+ tap_p->size = 0; /* should be number of octets in message */
+
+ tap_queue_packet(ansi_map_tap, g_pinfo, tap_p);
+ }
+
+ return offset;
+}
+
+static int
+find_saved_invokedata(asn1_ctx_t *actx, struct ansi_tcap_private_t *p_private_tcap){
+ struct ansi_map_invokedata_t *ansi_map_saved_invokedata;
+ address* src = &(actx->pinfo->src);
+ address* dst = &(actx->pinfo->dst);
+ guint8 *src_str;
+ guint8 *dst_str;
+ char *buf;
+
+ buf=(char *)wmem_alloc(wmem_packet_scope(), 1024);
+
+ /* Data from the TCAP dissector */
+ /* The hash string needs to contain src and dest to distiguish differnt flows */
+ src_str = address_to_str(wmem_packet_scope(), src);
+ dst_str = address_to_str(wmem_packet_scope(), dst);
+ /* Reverse order to invoke */
+ switch(ansi_map_response_matching_type){
+ case ANSI_MAP_TID_ONLY:
+ g_snprintf(buf,1024,"%s",p_private_tcap->TransactionID_str);
+ break;
+ case ANSI_MAP_TID_AND_SOURCE:
+ g_snprintf(buf,1024,"%s%s",p_private_tcap->TransactionID_str,dst_str);
+ break;
+ case ANSI_MAP_TID_SOURCE_AND_DEST:
+ default:
+ g_snprintf(buf,1024,"%s%s%s",p_private_tcap->TransactionID_str,dst_str,src_str);
+ break;
+ }
+
+ /*g_warning("Find Hash string %s pkt: %u",buf,actx->pinfo->num);*/
+ ansi_map_saved_invokedata = (struct ansi_map_invokedata_t *)g_hash_table_lookup(TransactionId_table, buf);
+ if(ansi_map_saved_invokedata){
+ OperationCode = ansi_map_saved_invokedata->opcode & 0xff;
+ ServiceIndicator = ansi_map_saved_invokedata->ServiceIndicator;
+ }else{
+ OperationCode = OperationCode & 0x00ff;
+ }
+
+ return OperationCode;
+}
+
+static int
+dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ proto_item *ansi_map_item;
+ proto_tree *ansi_map_tree = NULL;
+ struct ansi_tcap_private_t *p_private_tcap = (struct ansi_tcap_private_t *)data;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ SMS_BearerData_tvb = NULL;
+ ansi_map_sms_tele_id = -1;
+ g_pinfo = pinfo;
+ g_tree = tree;
+
+ /* The TCAP dissector should have provided data but didn't so reject it. */
+ if (data == NULL)
+ return 0;
+ /*
+ * Make entry in the Protocol column on summary display
+ */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "ANSI MAP");
+
+ /*
+ * create the ansi_map protocol tree
+ */
+ ansi_map_item = proto_tree_add_item(tree, proto_ansi_map, tvb, 0, -1, ENC_NA);
+ ansi_map_tree = proto_item_add_subtree(ansi_map_item, ett_ansi_map);
+ ansi_map_is_invoke = FALSE;
+ is683_ota = FALSE;
+ is801_pld = FALSE;
+ ServiceIndicator = 0;
+
+ switch(p_private_tcap->d.pdu){
+ /*
+ 1 : invoke,
+ 2 : returnResult,
+ 3 : returnError,
+ 4 : reject
+ */
+ case 1:
+ OperationCode = p_private_tcap->d.OperationCode_private & 0x00ff;
+ ansi_map_is_invoke = TRUE;
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s Invoke ", val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ proto_item_append_text(p_private_tcap->d.OperationCode_item," %s",val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ dissect_invokeData(ansi_map_tree, tvb, 0, &asn1_ctx);
+ update_saved_invokedata(pinfo, p_private_tcap);
+ break;
+ case 2:
+ OperationCode = find_saved_invokedata(&asn1_ctx, p_private_tcap);
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s ReturnResult ", val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ proto_item_append_text(p_private_tcap->d.OperationCode_item," %s",val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ dissect_returnData(ansi_map_tree, tvb, 0, &asn1_ctx);
+ break;
+ case 3:
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s ReturnError ", val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ break;
+ case 4:
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s Reject ", val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ break;
+ default:
+ /* Must be Invoke ReturnResult ReturnError or Reject */
+ DISSECTOR_ASSERT_NOT_REACHED();
+ break;
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static void range_delete_callback(guint32 ssn)
+{
+ if (ssn) {
+ delete_ansi_tcap_subdissector(ssn , ansi_map_handle);
+ }
+}
+
+static void range_add_callback(guint32 ssn)
+{
+ if (ssn) {
+ add_ansi_tcap_subdissector(ssn , ansi_map_handle);
+ }
+}
+
+/* TAP STAT INFO */
+typedef enum
+{
+ OPCODE_COLUMN = 0,
+ OPERATION_COLUMN,
+ COUNT_COLUMN,
+ TOTAL_BYTES_COLUMN,
+ AVG_BYTES_COLUMN
+} ansi_map_stat_columns;
+
+static stat_tap_table_item stat_fields[] = {{TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "OpCode", "0x%02x"}, {TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Operation Name", "%-50s"},
+ {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Count", " %d "}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Total Bytes", " %d "},
+ {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", " %8.2f "}};
+
+static void ansi_map_stat_init(stat_tap_table_ui* new_stat, new_stat_tap_gui_init_cb gui_callback, void* gui_data)
+{
+ int num_fields = sizeof(stat_fields)/sizeof(stat_tap_table_item);
+ stat_tap_table* table = new_stat_tap_init_table("ANSI MAP Operation Statistics", num_fields, 0, "ansi_map.op_code", gui_callback, gui_data);
+ int i = 0;
+ stat_tap_table_item_type items[sizeof(stat_fields)/sizeof(stat_tap_table_item)];
+
+ new_stat_tap_add_table(new_stat, table);
+
+ /* Add a fow for each value type */
+ while (ansi_map_opr_code_strings[i].strptr)
+ {
+ items[OPCODE_COLUMN].type = TABLE_ITEM_UINT;
+ items[OPCODE_COLUMN].value.uint_value = ansi_map_opr_code_strings[i].value;
+ items[OPERATION_COLUMN].type = TABLE_ITEM_STRING;
+ items[OPERATION_COLUMN].value.string_value = ansi_map_opr_code_strings[i].strptr;
+ items[COUNT_COLUMN].type = TABLE_ITEM_UINT;
+ items[COUNT_COLUMN].value.uint_value = 0;
+ items[TOTAL_BYTES_COLUMN].type = TABLE_ITEM_UINT;
+ items[TOTAL_BYTES_COLUMN].value.uint_value = 0;
+ items[AVG_BYTES_COLUMN].type = TABLE_ITEM_FLOAT;
+ items[AVG_BYTES_COLUMN].value.float_value = 0.0f;
+
+ new_stat_tap_init_table_row(table, ansi_map_opr_code_strings[i].value, num_fields, items);
+ i++;
+ }
+}
+
+
+static gboolean
+ansi_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *data)
+{
+ new_stat_data_t* stat_data = (new_stat_data_t*)tapdata;
+ const ansi_map_tap_rec_t *data_p = (const ansi_map_tap_rec_t *)data;
+ stat_tap_table* table;
+ stat_tap_table_item_type* item_data;
+ guint i = 0, count, total_bytes;
+
+ /* Only tracking field values we know */
+ if (try_val_to_str(data_p->message_type, ansi_map_opr_code_strings) == NULL)
+ return FALSE;
+
+ table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, i);
+
+ item_data = new_stat_tap_get_field_data(table, data_p->message_type, COUNT_COLUMN);
+ item_data->value.uint_value++;
+ count = item_data->value.uint_value;
+ new_stat_tap_set_field_data(table, data_p->message_type, COUNT_COLUMN, item_data);
+
+ item_data = new_stat_tap_get_field_data(table, data_p->message_type, TOTAL_BYTES_COLUMN);
+ item_data->value.uint_value += data_p->size;
+ total_bytes = item_data->value.uint_value;
+ new_stat_tap_set_field_data(table, data_p->message_type, TOTAL_BYTES_COLUMN, item_data);
+
+ item_data = new_stat_tap_get_field_data(table, data_p->message_type, AVG_BYTES_COLUMN);
+ item_data->value.float_value = (float)total_bytes/(float)count;
+ new_stat_tap_set_field_data(table, data_p->message_type, AVG_BYTES_COLUMN, item_data);
+
+ return TRUE;
+}
+
+static void
+ansi_map_stat_reset(stat_tap_table* table)
+{
+ guint element;
+ stat_tap_table_item_type* item_data;
+
+ for (element = 0; element < table->num_elements; element++)
+ {
+ item_data = new_stat_tap_get_field_data(table, element, COUNT_COLUMN);
+ item_data->value.uint_value = 0;
+ new_stat_tap_set_field_data(table, element, COUNT_COLUMN, item_data);
+
+ item_data = new_stat_tap_get_field_data(table, element, TOTAL_BYTES_COLUMN);
+ item_data->value.uint_value = 0;
+ new_stat_tap_set_field_data(table, element, TOTAL_BYTES_COLUMN, item_data);
+
+ item_data = new_stat_tap_get_field_data(table, element, AVG_BYTES_COLUMN);
+ item_data->value.float_value = 0.0f;
+ new_stat_tap_set_field_data(table, element, AVG_BYTES_COLUMN, item_data);
+ }
+
+}
+
+void
+proto_reg_handoff_ansi_map(void)
+{
+ static gboolean ansi_map_prefs_initialized = FALSE;
+ static range_t *ssn_range;
+
+ if(!ansi_map_prefs_initialized)
+ {
+ ansi_map_prefs_initialized = TRUE;
+ ansi_map_handle = find_dissector("ansi_map");
+ }
+ else
+ {
+ range_foreach(ssn_range, range_delete_callback);
+ g_free(ssn_range);
+ }
+
+ ssn_range = range_copy(global_ssn_range);
+
+ range_foreach(ssn_range, range_add_callback);
+}
+
+/*--- proto_register_ansi_map -------------------------------------------*/
+void proto_register_ansi_map(void) {
+
+ module_t *ansi_map_module;
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+ { &hf_ansi_map_op_code_fam,
+ { "Operation Code Family", "ansi_map.op_code_fam",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_reservedBitH,
+ { "Reserved", "ansi_map.reserved_bitH",
+ FT_BOOLEAN, 8, NULL,0x80,
+ NULL, HFILL }},
+ { &hf_ansi_map_reservedBitD,
+ { "Reserved", "ansi_map.reserved_bitD",
+ FT_BOOLEAN, 8, NULL,0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_reservedBitHG,
+ { "Reserved", "ansi_map.reserved_bitHG",
+ FT_UINT8, BASE_DEC, NULL, 0xc0,
+ NULL, HFILL }},
+ { &hf_ansi_map_reservedBitHGFE,
+ { "Reserved", "ansi_map.reserved_bitHGFE",
+ FT_UINT8, BASE_DEC, NULL, 0xf0,
+ NULL, HFILL }},
+ { &hf_ansi_map_reservedBitFED,
+ { "Reserved", "ansi_map.reserved_bitFED",
+ FT_UINT8, BASE_DEC, NULL, 0x38,
+ NULL, HFILL }},
+ { &hf_ansi_map_reservedBitED,
+ { "Reserved", "ansi_map.reserved_bitED",
+ FT_UINT8, BASE_DEC, NULL, 0x18,
+ NULL, HFILL }},
+ { &hf_ansi_map_op_code,
+ { "Operation Code", "ansi_map.op_code",
+ FT_UINT8, BASE_DEC|BASE_EXT_STRING, &ansi_map_opr_code_strings_ext, 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_type_of_digits,
+ { "Type of Digits", "ansi_map.type_of_digits",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_type_of_digits_vals), 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_na,
+ { "Nature of Number", "ansi_map.na",
+ FT_BOOLEAN, 8, TFS(&ansi_map_na_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_pi,
+ { "Presentation Indication", "ansi_map.type_of_pi",
+ FT_BOOLEAN, 8, TFS(&ansi_map_pi_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_navail,
+ { "Number available indication", "ansi_map.navail",
+ FT_BOOLEAN, 8, TFS(&ansi_map_navail_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_si,
+ { "Screening indication", "ansi_map.si",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_si_vals), 0x30,
+ NULL, HFILL }},
+ { &hf_ansi_map_digits_enc,
+ { "Encoding", "ansi_map.enc",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_digits_enc_vals), 0x0f,
+ NULL, HFILL }},
+ { &hf_ansi_map_np,
+ { "Numbering Plan", "ansi_map.np",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_np_vals), 0xf0,
+ NULL, HFILL }},
+ { &hf_ansi_map_nr_digits,
+ { "Number of Digits", "ansi_map.nr_digits",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_bcd_digits,
+ { "BCD digits", "ansi_map.bcd_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_ia5_digits,
+ { "IA5 digits", "ansi_map.ia5_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_subaddr_type,
+ { "Type of Subaddress", "ansi_map.subaddr_type",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_sub_addr_type_vals), 0x70,
+ NULL, HFILL }},
+ { &hf_ansi_map_subaddr_odd_even,
+ { "Odd/Even Indicator", "ansi_map.subaddr_odd_even",
+ FT_BOOLEAN, 8, TFS(&ansi_map_navail_bool_val),0x08,
+ NULL, HFILL }},
+
+ { &hf_ansi_alertcode_cadence,
+ { "Cadence", "ansi_map.alertcode.cadence",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_AlertCode_Cadence_vals), 0x3f,
+ NULL, HFILL }},
+ { &hf_ansi_alertcode_pitch,
+ { "Pitch", "ansi_map.alertcode.pitch",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_AlertCode_Pitch_vals), 0xc0,
+ NULL, HFILL }},
+ { &hf_ansi_alertcode_alertaction,
+ { "Alert Action", "ansi_map.alertcode.alertaction",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_AlertCode_Alert_Action_vals), 0x07,
+ NULL, HFILL }},
+ { &hf_ansi_map_announcementcode_tone,
+ { "Tone", "ansi_map.announcementcode.tone",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_AnnouncementCode_tone_vals), 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_announcementcode_class,
+ { "Tone", "ansi_map.announcementcode.class",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_AnnouncementCode_class_vals), 0xf,
+ NULL, HFILL }},
+ { &hf_ansi_map_announcementcode_std_ann,
+ { "Standard Announcement", "ansi_map.announcementcode.std_ann",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_AnnouncementCode_std_ann_vals), 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_announcementcode_cust_ann,
+ { "Custom Announcement", "ansi_map.announcementcode.cust_ann",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_authorizationperiod_period,
+ { "Period", "ansi_map.authorizationperiod.period",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_authorizationperiod_period_vals), 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_value,
+ { "Value", "ansi_map.value",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_msc_type,
+ { "Type", "ansi_map.extendedmscid.type",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_msc_type_vals), 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_handoffstate_pi,
+ { "Party Involved (PI)", "ansi_map.handoffstate.pi",
+ FT_BOOLEAN, 8, TFS(&ansi_map_HandoffState_pi_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_tgn,
+ { "Trunk Group Number (G)", "ansi_map.tgn",
+ FT_UINT8, BASE_DEC, NULL,0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_tmn,
+ { "Trunk Member Number (M)", "ansi_map.tmn",
+ FT_UINT8, BASE_DEC, NULL,0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_messagewaitingnotificationcount_tom,
+ { "Type of messages", "ansi_map.messagewaitingnotificationcount.tom",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_MessageWaitingNotificationCount_type_vals), 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_messagewaitingnotificationcount_no_mw,
+ { "Number of Messages Waiting", "ansi_map.messagewaitingnotificationcount.nomw",
+ FT_UINT8, BASE_DEC, NULL,0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_messagewaitingnotificationtype_mwi,
+ { "Message Waiting Indication (MWI)", "ansi_map.messagewaitingnotificationcount.mwi",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_MessageWaitingNotificationType_mwi_vals), 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_messagewaitingnotificationtype_apt,
+ { "Alert Pip Tone (APT)", "ansi_map.messagewaitingnotificationtype.apt",
+ FT_BOOLEAN, 8, TFS(&ansi_map_HandoffState_pi_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_messagewaitingnotificationtype_pt,
+ { "Pip Tone (PT)", "ansi_map.messagewaitingnotificationtype.pt",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_MessageWaitingNotificationType_mwi_vals), 0xc0,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_trans_cap_prof,
+ { "Profile (PROF)", "ansi_map.trans_cap_prof",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_prof_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_trans_cap_busy,
+ { "Busy Detection (BUSY)", "ansi_map.trans_cap_busy",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_busy_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_trans_cap_ann,
+ { "Announcements (ANN)", "ansi_map.trans_cap_ann",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_ann_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_trans_cap_rui,
+ { "Remote User Interaction (RUI)", "ansi_map.trans_cap_rui",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_rui_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_trans_cap_spini,
+ { "Subscriber PIN Intercept (SPINI)", "ansi_map.trans_cap_spini",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_spini_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_trans_cap_uzci,
+ { "UZ Capability Indicator (UZCI)", "ansi_map.trans_cap_uzci",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_uzci_bool_val),0x20,
+ NULL, HFILL }},
+ { &hf_ansi_map_trans_cap_ndss,
+ { "NDSS Capability (NDSS)", "ansi_map.trans_cap_ndss",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_ndss_bool_val),0x40,
+ NULL, HFILL }},
+ { &hf_ansi_map_trans_cap_nami,
+ { "NAME Capability Indicator (NAMI)", "ansi_map.trans_cap_nami",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_nami_bool_val),0x80,
+ NULL, HFILL }},
+ { &hf_ansi_trans_cap_multerm,
+ { "Multiple Terminations", "ansi_map.trans_cap_multerm",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_trans_cap_multerm_vals), 0x0f,
+ NULL, HFILL }},
+ { &hf_ansi_map_terminationtriggers_busy,
+ { "Busy", "ansi_map.terminationtriggers.busy",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_busy_vals), 0x03,
+ NULL, HFILL }},
+ { &hf_ansi_map_terminationtriggers_rf,
+ { "Routing Failure (RF)", "ansi_map.terminationtriggers.rf",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_rf_vals), 0x0c,
+ NULL, HFILL }},
+ { &hf_ansi_map_terminationtriggers_npr,
+ { "No Page Response (NPR)", "ansi_map.terminationtriggers.npr",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_npr_vals), 0x30,
+ NULL, HFILL }},
+ { &hf_ansi_map_terminationtriggers_na,
+ { "No Answer (NA)", "ansi_map.terminationtriggers.na",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_na_vals), 0xc0,
+ NULL, HFILL }},
+ { &hf_ansi_map_terminationtriggers_nr,
+ { "None Reachable (NR)", "ansi_map.terminationtriggers.nr",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_nr_vals), 0x01,
+ NULL, HFILL }},
+ { &hf_ansi_trans_cap_tl,
+ { "TerminationList (TL)", "ansi_map.trans_cap_tl",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_tl_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmaserviceoption,
+ { "CDMAServiceOption", "ansi_map.cdmaserviceoption",
+ FT_UINT16, BASE_RANGE_STRING | BASE_DEC, RVALS(cdmaserviceoption_vals), 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_trans_cap_waddr,
+ { "WIN Addressing (WADDR)", "ansi_map.trans_cap_waddr",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_waddr_bool_val),0x20,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_MarketID,
+ { "MarketID", "ansi_map.marketid",
+ FT_UINT16, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_swno,
+ { "Switch Number (SWNO)", "ansi_map.swno",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_idno,
+ { "ID Number", "ansi_map.idno",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_segcount,
+ { "Segment Counter", "ansi_map.segcount",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_sms_originationrestrictions_direct,
+ { "DIRECT", "ansi_map.originationrestrictions.direct",
+ FT_BOOLEAN, 8, TFS(&ansi_map_SMS_OriginationRestrictions_direct_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_sms_originationrestrictions_default,
+ { "DEFAULT", "ansi_map.originationrestrictions.default",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_SMS_OriginationRestrictions_default_vals), 0x03,
+ NULL, HFILL }},
+ { &hf_ansi_map_sms_originationrestrictions_fmc,
+ { "Force Message Center (FMC)", "ansi_map.originationrestrictions.fmc",
+ FT_BOOLEAN, 8, TFS(&ansi_map_SMS_OriginationRestrictions_fmc_bool_val),0x08,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_systemcapabilities_auth,
+ { "Authentication Parameters Requested (AUTH)", "ansi_map.systemcapabilities.auth",
+ FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_auth_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_systemcapabilities_se,
+ { "Signaling Message Encryption Capable (SE )", "ansi_map.systemcapabilities.se",
+ FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_se_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_systemcapabilities_vp,
+ { "Voice Privacy Capable (VP )", "ansi_map.systemcapabilities.vp",
+ FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_vp_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_systemcapabilities_cave,
+ { "CAVE Algorithm Capable (CAVE)", "ansi_map.systemcapabilities.cave",
+ FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_cave_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_systemcapabilities_ssd,
+ { "Shared SSD (SSD)", "ansi_map.systemcapabilities.ssd",
+ FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_ssd_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_systemcapabilities_dp,
+ { "Data Privacy (DP)", "ansi_map.systemcapabilities.dp",
+ FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_dp_bool_val),0x20,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_mslocation_lat,
+ { "Latitude in tenths of a second", "ansi_map.mslocation.lat",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_mslocation_long,
+ { "Longitude in tenths of a second", "ansi_map.mslocation.long",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ "Switch Number (SWNO)", HFILL }},
+ { &hf_ansi_map_mslocation_res,
+ { "Resolution in units of 1 foot", "ansi_map.mslocation.res",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ansi_map_nampscallmode_namps,
+ { "Call Mode", "ansi_map.nampscallmode.namps",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CallMode_namps_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_nampscallmode_amps,
+ { "Call Mode", "ansi_map.nampscallmode.amps",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CallMode_amps_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_nampschanneldata_navca,
+ { "Narrow Analog Voice Channel Assignment (NAVCA)", "ansi_map.nampschanneldata.navca",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_NAMPSChannelData_navca_vals), 0x03,
+ NULL, HFILL }},
+ { &hf_ansi_map_nampschanneldata_CCIndicator,
+ { "Color Code Indicator (CCIndicator)", "ansi_map.nampschanneldata.ccindicator",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_NAMPSChannelData_ccinidicator_vals), 0x1c,
+ NULL, HFILL }},
+
+
+ { &hf_ansi_map_callingfeaturesindicator_cfufa,
+ { "Call Forwarding Unconditional FeatureActivity, CFU-FA", "ansi_map.callingfeaturesindicator.cfufa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_cfbfa,
+ { "Call Forwarding Busy FeatureActivity, CFB-FA", "ansi_map.callingfeaturesindicator.cfbafa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_cfnafa,
+ { "Call Forwarding No Answer FeatureActivity, CFNA-FA", "ansi_map.callingfeaturesindicator.cfnafa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_cwfa,
+ { "Call Waiting: FeatureActivity, CW-FA", "ansi_map.callingfeaturesindicator.cwfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_callingfeaturesindicator_3wcfa,
+ { "Three-Way Calling FeatureActivity, 3WC-FA", "ansi_map.callingfeaturesindicator.3wcfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_callingfeaturesindicator_pcwfa,
+ { "Priority Call Waiting FeatureActivity PCW-FA", "ansi_map.callingfeaturesindicator.pcwfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_callingfeaturesindicator_dpfa,
+ { "Data Privacy Feature Activity DP-FA", "ansi_map.callingfeaturesindicator.dpfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_ahfa,
+ { "Answer Hold: FeatureActivity AH-FA", "ansi_map.callingfeaturesindicator.ahfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_uscfvmfa,
+ { "USCF divert to voice mail: FeatureActivity USCFvm-FA", "ansi_map.callingfeaturesindicator.uscfvmfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_callingfeaturesindicator_uscfmsfa,
+ { "USCF divert to mobile station provided DN:FeatureActivity.USCFms-FA", "ansi_map.callingfeaturesindicator.uscfmsfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_uscfnrfa,
+ { "USCF divert to network registered DN:FeatureActivity. USCFnr-FA", "ansi_map.callingfeaturesindicator.uscfnrfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_cpdsfa,
+ { "CDMA-Packet Data Service: FeatureActivity. CPDS-FA", "ansi_map.callingfeaturesindicator.cpdfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_ccsfa,
+ { "CDMA-Concurrent Service:FeatureActivity. CCS-FA", "ansi_map.callingfeaturesindicator.ccsfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_callingfeaturesindicator_epefa,
+ { "TDMA Enhanced Privacy and Encryption:FeatureActivity.TDMA EPE-FA", "ansi_map.callingfeaturesindicator.epefa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
+ NULL, HFILL }},
+
+
+ { &hf_ansi_map_callingfeaturesindicator_cdfa,
+ { "Call Delivery: FeatureActivity, CD-FA", "ansi_map.callingfeaturesindicator.cdfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_vpfa,
+ { "Voice Privacy FeatureActivity, VP-FA", "ansi_map.callingfeaturesindicator.vpfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_ctfa,
+ { "Call Transfer: FeatureActivity, CT-FA", "ansi_map.callingfeaturesindicator.ctfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_callingfeaturesindicator_cnip1fa,
+ { "One number (network-provided only) Calling Number Identification Presentation: FeatureActivity CNIP1-FA", "ansi_map.callingfeaturesindicator.cnip1fa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_cnip2fa,
+ { "Two number (network-provided and user-provided) Calling Number Identification Presentation: FeatureActivity CNIP2-FA", "ansi_map.callingfeaturesindicator.cnip2fa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_cnirfa,
+ { "Calling Number Identification Restriction: FeatureActivity CNIR-FA", "ansi_map.callingfeaturesindicator.cnirfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
+ NULL, HFILL }},
+ { &hf_ansi_map_callingfeaturesindicator_cniroverfa,
+ { "Calling Number Identification Restriction Override FeatureActivity CNIROver-FA", "ansi_map.callingfeaturesindicator.cniroverfa",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_cdmacallmode_cdma,
+ { "Call Mode", "ansi_map.cdmacallmode.cdma",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cdma_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_amps,
+ { "Call Mode", "ansi_map.cdmacallmode.amps",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CallMode_amps_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_namps,
+ { "Call Mode", "ansi_map.cdmacallmode.namps",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CallMode_namps_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls1,
+ { "Call Mode", "ansi_map.cdmacallmode.cls1",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls1_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls2,
+ { "Call Mode", "ansi_map.cdmacallmode.cls2",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls2_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls3,
+ { "Call Mode", "ansi_map.cdmacallmode.cls3",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls3_bool_val),0x20,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls4,
+ { "Call Mode", "ansi_map.cdmacallmode.cls4",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls4_bool_val),0x40,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls5,
+ { "Call Mode", "ansi_map.cdmacallmode.cls5",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls5_bool_val),0x80,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls6,
+ { "Call Mode", "ansi_map.cdmacallmode.cls6",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls6_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls7,
+ { "Call Mode", "ansi_map.cdmacallmode.cls7",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls7_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls8,
+ { "Call Mode", "ansi_map.cdmacallmode.cls8",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls8_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls9,
+ { "Call Mode", "ansi_map.cdmacallmode.cls9",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls9_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmacallmode_cls10,
+ { "Call Mode", "ansi_map.cdmacallmode.cls10",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls10_bool_val),0x10,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_Frame_Offset,
+ { "Frame Offset", "ansi_map.cdmachanneldata.frameoffset",
+ FT_UINT8, BASE_DEC, NULL, 0x78,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_CDMA_ch_no,
+ { "CDMA Channel Number", "ansi_map.cdmachanneldata.cdma_ch_no",
+ FT_UINT16, BASE_DEC, NULL, 0x07FF,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_band_cls,
+ { "Band Class", "ansi_map.cdmachanneldata.band_cls",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_cdmachanneldata_band_cls_vals), 0x7c,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_lc_mask_b6,
+ { "Long Code Mask (byte 6) MSB", "ansi_map.cdmachanneldata.lc_mask_b6",
+ FT_UINT8, BASE_HEX, NULL, 0x03,
+ "Long Code Mask MSB (byte 6)", HFILL }},
+ {&hf_ansi_map_cdmachanneldata_lc_mask_b5,
+ { "Long Code Mask (byte 5)", "ansi_map.cdmachanneldata.lc_mask_b5",
+ FT_UINT8, BASE_HEX, NULL, 0xff,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_lc_mask_b4,
+ { "Long Code Mask (byte 4)", "ansi_map.cdmachanneldata.lc_mask_b4",
+ FT_UINT8, BASE_HEX, NULL, 0xff,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_lc_mask_b3,
+ { "Long Code Mask (byte 3)", "ansi_map.cdmachanneldata.lc_mask_b3",
+ FT_UINT8, BASE_HEX, NULL, 0xff,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_lc_mask_b2,
+ { "Long Code Mask (byte 2)", "ansi_map.cdmachanneldata.lc_mask_b2",
+ FT_UINT8, BASE_HEX, NULL, 0xff,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_lc_mask_b1,
+ { "Long Code Mask LSB(byte 1)", "ansi_map.cdmachanneldata.lc_mask_b1",
+ FT_UINT8, BASE_HEX, NULL, 0xff,
+ "Long Code Mask (byte 1)LSB", HFILL }},
+ {&hf_ansi_map_cdmachanneldata_np_ext,
+ { "NP EXT", "ansi_map.cdmachanneldata.np_ext",
+ FT_BOOLEAN, 8, NULL,0x80,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_nominal_pwr,
+ { "Nominal Power", "ansi_map.cdmachanneldata.nominal_pwr",
+ FT_UINT8, BASE_DEC, NULL, 0x71,
+ NULL, HFILL }},
+ {&hf_ansi_map_cdmachanneldata_nr_preamble,
+ { "Number Preamble", "ansi_map.cdmachanneldata.nr_preamble",
+ FT_UINT8, BASE_DEC, NULL, 0x07,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_cdmastationclassmark_pc,
+ { "Power Class(PC)", "ansi_map.cdmastationclassmark.pc",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_CDMAStationClassMark_pc_vals), 0x03,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_cdmastationclassmark_dtx,
+ { "Analog Transmission: (DTX)", "ansi_map.cdmastationclassmark.dtx",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMAStationClassMark_dtx_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmastationclassmark_smi,
+ { "Slotted Mode Indicator: (SMI)", "ansi_map.cdmastationclassmark.smi",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMAStationClassMark_smi_bool_val),0x20,
+ NULL, HFILL }},
+ { &hf_ansi_map_cdmastationclassmark_dmi,
+ { "Dual-mode Indicator(DMI)", "ansi_map.cdmastationclassmark.dmi",
+ FT_BOOLEAN, 8, TFS(&ansi_map_CDMAStationClassMark_dmi_bool_val),0x40,
+ NULL, HFILL }},
+ { &hf_ansi_map_channeldata_vmac,
+ { "Voice Mobile Attenuation Code (VMAC)", "ansi_map.channeldata.vmac",
+ FT_UINT8, BASE_DEC, NULL, 0x07,
+ NULL, HFILL }},
+ { &hf_ansi_map_channeldata_dtx,
+ { "Discontinuous Transmission Mode (DTX)", "ansi_map.channeldata.dtx",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_ChannelData_dtx_vals), 0x18,
+ NULL, HFILL }},
+ { &hf_ansi_map_channeldata_scc,
+ { "SAT Color Code (SCC)", "ansi_map.channeldata.scc",
+ FT_UINT8, BASE_DEC, NULL, 0xc0,
+ NULL, HFILL }},
+ { &hf_ansi_map_channeldata_chno,
+ { "Channel Number (CHNO)", "ansi_map.channeldata.chno",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_ConfidentialityModes_vp,
+ { "Voice Privacy (VP) Confidentiality Status", "ansi_map.confidentialitymodes.vp",
+ FT_BOOLEAN, 8, TFS(&ansi_map_ConfidentialityModes_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_controlchanneldata_dcc,
+ { "Digital Color Code (DCC)", "ansi_map.controlchanneldata.dcc",
+ FT_UINT8, BASE_DEC, NULL, 0xc0,
+ NULL, HFILL }},
+ { &hf_ansi_map_controlchanneldata_cmac,
+ { "Control Mobile Attenuation Code (CMAC)", "ansi_map.controlchanneldata.cmac",
+ FT_UINT8, BASE_DEC, NULL, 0x07,
+ NULL, HFILL }},
+ { &hf_ansi_map_controlchanneldata_chno,
+ { "Channel Number (CHNO)", "ansi_map.controlchanneldata.chno",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_controlchanneldata_sdcc1,
+ { "Supplementary Digital Color Codes (SDCC1)", "ansi_map.controlchanneldata.ssdc1",
+ FT_UINT8, BASE_DEC, NULL, 0x0c,
+ NULL, HFILL }},
+ { &hf_ansi_map_controlchanneldata_sdcc2,
+ { "Supplementary Digital Color Codes (SDCC2)", "ansi_map.controlchanneldata.ssdc2",
+ FT_UINT8, BASE_DEC, NULL, 0x03,
+ NULL, HFILL }},
+ { &hf_ansi_map_ConfidentialityModes_se,
+ { "Signaling Message Encryption (SE) Confidentiality Status", "ansi_map.confidentialitymodes.se",
+ FT_BOOLEAN, 8, TFS(&ansi_map_ConfidentialityModes_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_ConfidentialityModes_dp,
+ { "DataPrivacy (DP) Confidentiality Status", "ansi_map.confidentialitymodes.dp",
+ FT_BOOLEAN, 8, TFS(&ansi_map_ConfidentialityModes_bool_val),0x04,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_deniedauthorizationperiod_period,
+ { "Period", "ansi_map.deniedauthorizationperiod.period",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_deniedauthorizationperiod_period_vals), 0x0,
+ NULL, HFILL }},
+
+
+ { &hf_ansi_map_originationtriggers_all,
+ { "All Origination (All)", "ansi_map.originationtriggers.all",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_all_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_local,
+ { "Local", "ansi_map.originationtriggers.local",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_local_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_ilata,
+ { "Intra-LATA Toll (ILATA)", "ansi_map.originationtriggers.ilata",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ilata_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_olata,
+ { "Inter-LATA Toll (OLATA)", "ansi_map.originationtriggers.olata",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_olata_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_int,
+ { "International (Int'l )", "ansi_map.originationtriggers.int",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_int_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_wz,
+ { "World Zone (WZ)", "ansi_map.originationtriggers.wz",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_wz_bool_val),0x20,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_unrec,
+ { "Unrecognized Number (Unrec)", "ansi_map.originationtriggers.unrec",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_unrec_bool_val),0x40,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_rvtc,
+ { "Revertive Call (RvtC)", "ansi_map.originationtriggers.rvtc",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_rvtc_bool_val),0x80,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_star,
+ { "Star", "ansi_map.originationtriggers.star",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_star_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_ds,
+ { "Double Star (DS)", "ansi_map.originationtriggers.ds",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ds_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_pound,
+ { "Pound", "ansi_map.originationtriggers.pound",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_pound_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_dp,
+ { "Double Pound (DP)", "ansi_map.originationtriggers.dp",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_dp_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_pa,
+ { "Prior Agreement (PA)", "ansi_map.originationtriggers.pa",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_pa_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_nodig,
+ { "No digits", "ansi_map.originationtriggers.nodig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_nodig_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_onedig,
+ { "1 digit", "ansi_map.originationtriggers.onedig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_onedig_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_twodig,
+ { "2 digits", "ansi_map.originationtriggers.twodig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_twodig_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_threedig,
+ { "3 digits", "ansi_map.originationtriggers.threedig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_threedig_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_fourdig,
+ { "4 digits", "ansi_map.originationtriggers.fourdig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fourdig_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_fivedig,
+ { "5 digits", "ansi_map.originationtriggers.fivedig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fivedig_bool_val),0x20,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_sixdig,
+ { "6 digits", "ansi_map.originationtriggers.sixdig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_sixdig_bool_val),0x40,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_sevendig,
+ { "7 digits", "ansi_map.originationtriggers.sevendig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_sevendig_bool_val),0x80,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_eightdig,
+ { "8 digits", "ansi_map.originationtriggers.eight",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_eightdig_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_ninedig,
+ { "9 digits", "ansi_map.originationtriggers.nine",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ninedig_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_tendig,
+ { "10 digits", "ansi_map.originationtriggers.ten",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_tendig_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_elevendig,
+ { "11 digits", "ansi_map.originationtriggers.eleven",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_elevendig_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_twelvedig,
+ { "12 digits", "ansi_map.originationtriggers.twelve",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_twelvedig_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_thirteendig,
+ { "13 digits", "ansi_map.originationtriggers.thirteen",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_thirteendig_bool_val),0x20,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_fourteendig,
+ { "14 digits", "ansi_map.originationtriggers.fourteen",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fourteendig_bool_val),0x40,
+ NULL, HFILL }},
+ { &hf_ansi_map_originationtriggers_fifteendig,
+ { "15 digits", "ansi_map.originationtriggers.fifteen",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fifteendig_bool_val),0x80,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_triggercapability_init,
+ { "Introducing Star/Pound (INIT)", "ansi_map.triggercapability.init",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_kdigit,
+ { "K-digit (K-digit)", "ansi_map.triggercapability.kdigit",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_all,
+ { "All_Calls (All)", "ansi_map.triggercapability.all",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_rvtc,
+ { "Revertive_Call (RvtC)", "ansi_map.triggercapability.rvtc",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_oaa,
+ { "Origination_Attempt_Authorized (OAA)", "ansi_map.triggercapability.oaa",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_oans,
+ { "O_Answer (OANS)", "ansi_map.triggercapability.oans",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x20,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_odisc,
+ { "O_Disconnect (ODISC)", "ansi_map.triggercapability.odisc",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x40,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_ona,
+ { "O_No_Answer (ONA)", "ansi_map.triggercapability.ona",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x80,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_triggercapability_ct ,
+ { "Call Types (CT)", "ansi_map.triggercapability.ct",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_unrec,
+ { "Unrecognized_Number (Unrec)", "ansi_map.triggercapability.unrec",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_pa,
+ { "Prior_Agreement (PA)", "ansi_map.triggercapability.pa",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_at,
+ { "Advanced_Termination (AT)", "ansi_map.triggercapability.at",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_cgraa,
+ { "Calling_Routing_Address_Available (CgRAA)", "ansi_map.triggercapability.cgraa",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_it,
+ { "Initial_Termination (IT)", "ansi_map.triggercapability.it",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x20,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_cdraa,
+ { "Called_Routing_Address_Available (CdRAA)", "ansi_map.triggercapability.cdraa",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x40,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_obsy,
+ { "O_Called_Party_Busy (OBSY)", "ansi_map.triggercapability.obsy",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x80,
+ NULL, HFILL }},
+
+ { &hf_ansi_map_triggercapability_tra ,
+ { "Terminating_Resource_Available (TRA)", "ansi_map.triggercapability.tra",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_tbusy,
+ { "T_Busy (TBusy)", "ansi_map.triggercapability.tbusy",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_tna,
+ { "T_No_Answer (TNA)", "ansi_map.triggercapability.tna",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_tans,
+ { "T_Answer (TANS)", "ansi_map.triggercapability.tans",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x08,
+ NULL, HFILL }},
+ { &hf_ansi_map_triggercapability_tdisc,
+ { "T_Disconnect (TDISC)", "ansi_map.triggercapability.tdisc",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x10,
+ NULL, HFILL }},
+ { &hf_ansi_map_winoperationscapability_conn,
+ { "ConnectResource (CONN)", "ansi_map.winoperationscapability.conn",
+ FT_BOOLEAN, 8, TFS(&ansi_map_winoperationscapability_conn_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_winoperationscapability_ccdir,
+ { "CallControlDirective(CCDIR)", "ansi_map.winoperationscapability.ccdir",
+ FT_BOOLEAN, 8, TFS(&ansi_map_winoperationscapability_ccdir_bool_val),0x02,
+ NULL, HFILL }},
+ { &hf_ansi_map_winoperationscapability_pos,
+ { "PositionRequest (POS)", "ansi_map.winoperationscapability.pos",
+ FT_BOOLEAN, 8, TFS(&ansi_map_winoperationscapability_pos_bool_val),0x04,
+ NULL, HFILL }},
+ { &hf_ansi_map_pacaindicator_pa,
+ { "Permanent Activation (PA)", "ansi_map.pacaindicator_pa",
+ FT_BOOLEAN, 8, TFS(&ansi_map_pacaindicator_pa_bool_val),0x01,
+ NULL, HFILL }},
+ { &hf_ansi_map_PACA_Level,
+ { "PACA Level", "ansi_map.PACA_Level",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_PACA_Level_vals), 0x1e,
+ NULL, HFILL }},
+ { &hf_ansi_map_point_code,
+ { "Point Code", "ansi_map.point_code",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_SSN,
+ { "SSN", "ansi_map.SSN",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_ansi_map_win_trigger_list,
+ { "WIN trigger list", "ansi_map.win_trigger_list",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+
+#include "packet-ansi_map-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ansi_map,
+ &ett_mintype,
+ &ett_digitstype,
+ &ett_billingid,
+ &ett_sms_bearer_data,
+ &ett_sms_teleserviceIdentifier,
+ &ett_extendedmscid,
+ &ett_extendedsystemmytypecode,
+ &ett_handoffstate,
+ &ett_mscid,
+ &ett_cdmachanneldata,
+ &ett_cdmastationclassmark,
+ &ett_channeldata,
+ &ett_confidentialitymodes,
+ &ett_controlchanneldata,
+ &ett_CDMA2000HandoffInvokeIOSData,
+ &ett_CDMA2000HandoffResponseIOSData,
+ &ett_originationtriggers,
+ &ett_pacaindicator,
+ &ett_callingpartyname,
+ &ett_triggercapability,
+ &ett_winoperationscapability,
+ &ett_win_trigger_list,
+ &ett_controlnetworkid,
+ &ett_transactioncapability,
+ &ett_cdmaserviceoption,
+ &ett_sms_originationrestrictions,
+ &ett_systemcapabilities,
+#include "packet-ansi_map-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_ansi_map_nr_not_used, { "ansi_map.nr_not_used", PI_PROTOCOL, PI_WARN, "This Number plan should not have been used", EXPFILL }},
+ { &ei_ansi_map_unknown_invokeData_blob, { "ansi_map.unknown_invokeData_blob", PI_PROTOCOL, PI_WARN, "Unknown invokeData blob", EXPFILL }},
+ { &ei_ansi_map_no_data, { "ansi_map.no_data", PI_PROTOCOL, PI_NOTE, "Carries no data", EXPFILL }},
+ };
+
+ expert_module_t* expert_ansi_map;
+
+ static const enum_val_t ansi_map_response_matching_type_values[] = {
+ {"Only Transaction ID will be used in Invoke/response matching", "Transaction ID only", ANSI_MAP_TID_ONLY},
+ {"Transaction ID and Source will be used in Invoke/response matching", "Transaction ID and Source", ANSI_MAP_TID_AND_SOURCE},
+ {"Transaction ID Source and Destination will be used in Invoke/response matching", "Transaction ID Source and Destination", ANSI_MAP_TID_SOURCE_AND_DEST},
+ {NULL, NULL, -1}
+ };
+
+ /* TAP STAT INFO */
+ static stat_tap_table_ui stat_table = {
+ REGISTER_STAT_GROUP_TELEPHONY_ANSI,
+ "Map Operation Statistics",
+ "ansi_map",
+ "ansi_map",
+ ansi_map_stat_init,
+ ansi_map_stat_packet,
+ ansi_map_stat_reset,
+ NULL,
+ NULL,
+ sizeof(stat_fields)/sizeof(stat_tap_table_item), stat_fields,
+ 0, NULL,
+ NULL
+ };
+
+ /* Register protocol */
+ proto_ansi_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ansi_map, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_ansi_map = expert_register_protocol(proto_ansi_map);
+ expert_register_field_array(expert_ansi_map, ei, array_length(ei));
+
+ register_dissector("ansi_map", dissect_ansi_map, proto_ansi_map);
+
+ is637_tele_id_dissector_table =
+ register_dissector_table("ansi_map.tele_id", "IS-637 Teleservice ID",
+ FT_UINT8, BASE_DEC, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+
+ is683_dissector_table =
+ register_dissector_table("ansi_map.ota", "IS-683-A (OTA)",
+ FT_UINT8, BASE_DEC, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+
+ is801_dissector_table =
+ register_dissector_table("ansi_map.pld", "IS-801 (PLD)",
+ FT_UINT8, BASE_DEC, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+
+ ansi_map_tap = register_tap("ansi_map");
+
+
+ range_convert_str(&global_ssn_range, "5-14", MAX_SSN);
+
+ ansi_map_module = prefs_register_protocol(proto_ansi_map, proto_reg_handoff_ansi_map);
+
+
+ prefs_register_range_preference(ansi_map_module, "map.ssn", "ANSI MAP SSNs",
+ "ANSI MAP SSNs to decode as ANSI MAP",
+ &global_ssn_range, MAX_SSN);
+
+ prefs_register_enum_preference(ansi_map_module, "transaction.matchtype",
+ "Type of matching invoke/response",
+ "Type of matching invoke/response, risk of mismatch if loose matching chosen",
+ &ansi_map_response_matching_type, ansi_map_response_matching_type_values, FALSE);
+
+ register_init_routine(&ansi_map_init);
+ register_cleanup_routine(&ansi_map_cleanup);
+ register_stat_tap_table_ui(&stat_table);
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h
new file mode 100644
index 0000000000..e777e181b3
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h
@@ -0,0 +1,50 @@
+/* packet-ansi_map.h
+ * Routines for ansi_map packet dissection
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_ANSI_MAP_H
+#define PACKET_ANSI_MAP_H
+
+#include "ws_symbol_export.h"
+
+#define ANSI_MAP_MAX_NUM_MESSAGE_TYPES 256
+
+typedef struct _ansi_map_tap_rec_t {
+ guint8 message_type;
+ guint16 size;
+} ansi_map_tap_rec_t;
+
+
+/*
+ * the following allows TAP code access to the messages
+ * without having to duplicate it. With MSVC and a
+ * libwireshark.dll, we need a special declaration.
+ */
+WS_DLL_PUBLIC const value_string ansi_map_opr_code_strings[];
+
+
+
+/*#include "packet-ansi_map-exp.h" */
+
+#endif /* PACKET_ansi_map_H */
+
+
diff --git a/epan/dissectors/asn1/ansi_tcap/CMakeLists.txt b/epan/dissectors/asn1/ansi_tcap/CMakeLists.txt
new file mode 100644
index 0000000000..5f796635b2
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ansi_tcap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ TCAP-Remote-Operations-Information-Objects.asn
+ TCAPPackage.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ansi_tcap/Makefile.am b/epan/dissectors/asn1/ansi_tcap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ansi_tcap/Makefile.common b/epan/dissectors/asn1/ansi_tcap/Makefile.common
new file mode 100644
index 0000000000..9b251cdbb0
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/Makefile.common
@@ -0,0 +1,44 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=ansi_tcap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ TCAP-Remote-Operations-Information-Objects.asn \
+ TCAPPackage.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/ansi_tcap/Makefile.nmake b/epan/dissectors/asn1/ansi_tcap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ansi_tcap/TCAP-Remote-Operations-Information-Objects.asn b/epan/dissectors/asn1/ansi_tcap/TCAP-Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000000..7996446da3
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/TCAP-Remote-Operations-Information-Objects.asn
@@ -0,0 +1,145 @@
+TCAP-Remote-Operations-Information-Objects {iso(1)
+memberbody(2) usa(840) t1-114(10013) modules(0) informationObjects(1) version4(4) }
+
+DEFINITIONS ::=
+
+BEGIN
+
+--Exports Everything
+
+IMPORTS
+ emptyBind, emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-ccitt 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,
+ &invokeLast BOOLEAN DEFAULT FALSE,
+ &operationCode OperationCode UNIQUE OPTIONAL
+ }
+WITH SYNTAX {
+ [ARGUMENT &ArgumentType
+ [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType
+ [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [ALWAYS RETURNS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT PRIORITY &ResultPriority]
+ [LAST &invokeLast]
+ [CODE &operationCode]
+ }
+
+ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode ErrorCode 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
+ }
+
+OperationCode ::= CHOICE{
+ national [PRIVATE 16] IMPLICIT INTEGER (-32768..32767),
+ private [PRIVATE 17] IMPLICIT INTEGER
+ }
+
+ErrorCode ::= CHOICE {
+ national [PRIVATE 19] INTEGER (-128..127),
+--WS adaptation This is only correct for ANSI MAP but that's the only user.
+ private [PRIVATE 20] IMPLICIT ANSIMAPPrivateErrorcode
+ }
+
+ANSIMAPPrivateErrorcode ::= INTEGER {
+ unrecognized-MIN (129),
+ unrecognized-ESN (130),
+ mINorHLR-Mismatch (131),
+ operation-Sequence-Problem (132),
+ resource-Shortage (133),
+ operation-Not-Supported (134),
+ trunk-Unavailable (135),
+ parameter-Error (136),
+ system-Failure (137),
+ unrecognized-Parameter-Value (138),
+ feature-Inactive (139),
+ missing-Parameter (140)
+} (0..255)
+
+Priority ::= INTEGER (0..MAX)
+
+END --end of Information Object Specifications
diff --git a/epan/dissectors/asn1/ansi_tcap/TCAPPackage.asn b/epan/dissectors/asn1/ansi_tcap/TCAPPackage.asn
new file mode 100644
index 0000000000..7bd3361bf1
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/TCAPPackage.asn
@@ -0,0 +1,242 @@
+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
+ TCAP-Remote-Operations-Information-Objects{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,
+ dialogPortion 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
+-- 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 : general-incorrectComponentPortion),
+ 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 : general-incorrectComponentPortion),
+ returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult {{Returnable}}
+ }
+ (CONSTRAINED BY { -- must conform to the above definition -- }
+ ! RejectProblem : general-unrecognisedComponentType)
+
+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's.
+ (CONSTRAINED BY { -- must be unambiguous -- }
+ ! RejectProblem : invoke-duplicateInvocation )
+ (CONSTRAINED BY { -- correlation ID must identify an
+ -- outstanding operation -- }
+ ! RejectProblem : invoke-unrecognisedCorrelationId )
+ OPTIONAL,
+ operationCode OPERATION.&operationCode
+ ((Operations)
+ ! RejectProblem : invoke-unrecognisedOperation),
+ parameter
+ OPERATION.&ParameterType
+ ({Operations}{@opcode}
+ ! RejectProblem : invoke-mistypedArgument ) OPTIONAL
+ }
+ (CONSTRAINED BY { -- must conform to the above definition -- }
+ ! RejectProblem : general-incorrectComponentPortion )
+ (CONSTRAINED BY { -- must have consistent encoding -- }
+ ! RejectProblem : general-badlyStructuredCompPortion )
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
+ ! RejectProblem : general-incorrectComponentCoding )
+
+ReturnResult{ OPERATION: Operations } ::= SEQUENCE {
+ componentID [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1))
+ (CONSTRAINED BY { --must be that of an outstanding operation--}
+ ! RejectProblem : returnResult-unrecognisedCorrelationId)
+ (CONSTRAINED BY { -- which returns a result -- }
+ ! RejectProblem : returnResult-unexpectedReturnResult),
+ parameter OPERATION.&ResultType
+ ({Operations}{@opcode}
+ ! RejectProblem : returnResult-incorrectParameter)
+ OPTIONAL
+ }
+ (CONSTRAINED BY { -- must conform to the above definition -- }
+ ! RejectProblem : general-incorrectComponentPortion )
+ (CONSTRAINED BY { -- must have consistent encoding -- }
+ ! RejectProblem : general-badlyStructuredCompPortion )
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
+ ! RejectProblem : general-incorrectComponentCoding )
+
+ReturnError{ ERROR: Errors } ::= SEQUENCE {
+ componentID [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1))
+ (CONSTRAINED BY { --must be that of an outstanding operation--}
+ ! RejectProblem : returnError-unrecognisedCorrelationId)
+ (CONSTRAINED BY { --which returns an error-- }
+ ! RejectProblem : returnError-unexpectedReturnError),
+ errorCode ERROR.&errorCode
+ ({Errors}
+ ! RejectProblem : returnError-unrecognisedError)
+ (CONSTRAINED BY { -- must be in the &Errors field of the
+ --associated operation -- }
+ ! RejectProblem : returnError-unexpectedError),
+ parameter
+ ERROR.&ParameterType
+ ({Errors}{@errorcode}
+ ! RejectProblem : returnError-incorrectParameter) OPTIONAL
+ }
+ (CONSTRAINED BY { -- must conform to the above definition -- }
+ ! RejectProblem : general-incorrectComponentPortion )
+ (CONSTRAINED BY { -- must have consistent encoding -- }
+ ! RejectProblem : general-badlyStructuredCompPortion )
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
+ ! RejectProblem : general-incorrectComponentCoding )
+
+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 : general-incorrectComponentPortion )
+ (CONSTRAINED BY { -- must have consistent encoding -- }
+ ! RejectProblem : general-badlyStructuredCompPortion )
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
+ ! RejectProblem : general-incorrectComponentCoding )
+
+-- PROBLEMS, the specification of Problems follows
+Problem ::= INTEGER {
+ general-unrecognisedComponentType (257),
+ general-incorrectComponentPortion (258),
+ general-badlyStructuredCompPortion (259),
+ general-incorrectComponentCoding (260),
+ invoke-duplicateInvocation (513),
+ invoke-unrecognisedOperation (514),
+ invoke-incorrectParameter (515),
+ invoke-unrecognisedCorrelationID (516),
+ returnResult-unrecognisedCorrelationID (769),
+ returnResult-unexpectedReturnResult (770),
+ returnResult-incorrectParameter (771),
+ returnError-unrecognisedCorrelationID (1025),
+ returnError-unexpectedReturnError (1026),
+ returnError-unrecognisedError (1027),
+ returnError-unexpectedError (1028),
+ returnError-incorrectParameter (1029),
+ -- Applications using T1.114-1988 report Transaction portion
+ -- problems using a Reject component with a problem code in
+ -- the range 1281-1286.
+ -- It is preferred that other applications report
+ -- these problems using the Abort package type
+ transaction-unrecognizedPackageType (1281),
+ transaction-incorrectTransPortion (1282),
+ transaction-badlyStructuredTransPortion (1283),
+ transaction-unassignedRespondingTransID (1284),
+ transaction-permissionToReleaseProblem (1285),
+ transaction-resourceUnavailable (1286)
+ }
+
+END -- end of the TCAPPackage Module
diff --git a/epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf b/epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf
new file mode 100644
index 0000000000..4fdbbff7fa
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf
@@ -0,0 +1,192 @@
+# tcap.cnf
+# tcap conformation file
+
+#.NO_EMIT ONLY_VALS
+PackageType
+
+#.OMIT_ASSIGNMENT
+# Removed as they are giving 'defined but not used' warnings currently.
+Priority
+#.END
+
+#--- OperationCode ---
+
+#.FN_PARS
+OperationCode VAL_PTR = &ansi_tcap_private.d.OperationCode
+OperationCode/private VAL_PTR = &ansi_tcap_private.d.OperationCode_private
+#.FN_FTR OperationCode
+ ansi_tcap_private.d.OperationCode_item = actx->created_item;
+#.END
+
+#.FN_BODY OperationCode/national VAL_PTR = &ansi_tcap_private.d.OperationCode_national
+ proto_tree *subtree;
+ proto_item *spcifier_item;
+ int start_offset = offset;
+ guint8 family;
+ guint8 specifier;
+
+ %(DEFAULT_BODY)s
+ /* mask off the H bit */
+ ansi_tcap_private.d.OperationCode_national = (ansi_tcap_private.d.OperationCode_national&0x7fff);
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ansi_tcap_op_code_nat);
+ /* Bit H is used to distinguish between Operations that require a reply and those that do not. A value of 1
+ * indicates that a reply is required; a value of 0 indicates that a reply is not required.
+ */
+ family = (ansi_tcap_private.d.OperationCode_national & 0x7f00)>>8;
+ specifier = (guint8)(ansi_tcap_private.d.OperationCode_national & 0xff);
+ proto_tree_add_item(subtree, hf_ansi_tcap_bit_h, tvb, start_offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ansi_tcap_op_family, tvb, start_offset, 2, ENC_BIG_ENDIAN);
+ spcifier_item = proto_tree_add_item(subtree, hf_ansi_tcap_op_specifier, tvb, start_offset, 2, ENC_BIG_ENDIAN);
+
+ switch(family){
+ case 0:
+ /* All Families ( Not used ) */
+ break;
+ case 1:
+ /* Parameter */
+ if(specifier== 1){
+ proto_item_append_text(spcifier_item, " Provide Value");
+ }else if (specifier== 2){
+ proto_item_append_text(spcifier_item, " Set Value");
+ }
+ break;
+ case 2:
+ /* Charging */
+ if (specifier== 1){
+ proto_item_append_text(spcifier_item, " Bill Call");
+ }
+ break;
+ case 3:
+ /* Provide Instructions */
+ if (specifier== 1){
+ proto_item_append_text(spcifier_item, " Start");
+ }else if (specifier== 2){
+ proto_item_append_text(spcifier_item, " Assist");
+ }
+ break;
+ case 4:
+ /* Connection Control */
+ if (specifier== 1){
+ proto_item_append_text(spcifier_item, " Connect");
+ }else if (specifier== 2){
+ proto_item_append_text(spcifier_item, " Temporary Connect");
+ }else if (specifier== 3){
+ proto_item_append_text(spcifier_item, " Disconnect");
+ }else if (specifier== 4){
+ proto_item_append_text(spcifier_item, " Forward Disconnect");
+ }
+ break;
+ default:
+ break;
+ }
+
+#--- INVOKE ---
+
+#.FN_BODY Invoke/parameter
+
+ if(find_tcap_subdissector(tvb, actx, tree))
+ offset = tvb_reported_length(tvb);
+
+
+#.FN_HDR Invoke
+ ansi_tcap_private.d.pdu = 1;
+
+#--- RETURN RESULT ---
+
+#.FIELD_ATTR
+
+#.FN_BODY ReturnResult/parameter
+ if(find_tcap_subdissector(tvb, actx, tree))
+ offset = tvb_reported_length(tvb);
+
+#.FN_HDR ReturnResult
+ ansi_tcap_private.d.pdu = 2;
+
+
+#--- RETURN ERROR ---
+
+#.FN_BODY ReturnError/parameter
+ if(find_tcap_subdissector(tvb, actx, tree))
+ offset = tvb_reported_length(tvb);
+
+#.FN_HDR ReturnError
+ ansi_tcap_private.d.pdu = 3;
+
+#--- ObjectIDApplicationContext --
+#.FN_BODY ObjectIDApplicationContext FN_VARIANT = _str VAL_PTR = &oid_str
+
+ static const char * oid_str;
+
+ %(DEFAULT_BODY)s
+ ansi_tcap_private.objectApplicationId_oid= (const void*) oid_str;
+ ansi_tcap_private.oid_is_present=TRUE;
+
+#.FN_HDR PackageType/unidirectional
+gp_tcapsrt_info->ope=TC_ANSI_ALL;
+col_set_str(actx->pinfo->cinfo, COL_INFO, "unidirectional ");
+
+#.FN_HDR PackageType/queryWithPerm
+gp_tcapsrt_info->ope=TC_ANSI_ALL;
+col_set_str(actx->pinfo->cinfo, COL_INFO, "queryWithPerm ");
+
+#.FN_HDR PackageType/queryWithoutPerm
+gp_tcapsrt_info->ope=TC_ANSI_ALL;
+col_set_str(actx->pinfo->cinfo, COL_INFO, "queryWithoutPerm ");
+
+#.FN_HDR PackageType/response
+gp_tcapsrt_info->ope=TC_ANSI_ALL;
+col_set_str(actx->pinfo->cinfo, COL_INFO, "response ");
+
+#.FN_HDR PackageType/conversationWithPerm
+gp_tcapsrt_info->ope=TC_ANSI_ALL;
+col_set_str(actx->pinfo->cinfo, COL_INFO, "conversationWithPerm ");
+
+#.FN_HDR PackageType/conversationWithoutPerm
+gp_tcapsrt_info->ope=TC_ANSI_ALL;
+col_set_str(actx->pinfo->cinfo, COL_INFO, "conversationWithoutPerm ");
+
+#.FN_HDR PackageType/abort
+gp_tcapsrt_info->ope=TC_ANSI_ABORT;
+col_set_str(actx->pinfo->cinfo, COL_INFO, "Abort ");
+
+#.FN_BODY TransactionID/_untag VAL_PTR = &next_tvb
+
+tvbuff_t *next_tvb;
+guint8 len;
+
+%(DEFAULT_BODY)s
+
+if(next_tvb) {
+ len = tvb_reported_length_remaining(next_tvb, 0);
+ if(len !=0){
+ /* 0 octets for the Unidirectional,
+ * 4 octets for Query, Response & Abort
+ * 8 octets for Conversation in the order Originating then Responding TID
+ *
+ * In order to match this it seems like we should only use the last 4 octets
+ * in the 8 octets case.
+ */
+ if (len > 4){
+ ansi_tcap_private.TransactionID_str = tvb_bytes_to_str(wmem_packet_scope(), next_tvb, 4,len-4);
+ }else{
+ ansi_tcap_private.TransactionID_str = tvb_bytes_to_str(wmem_packet_scope(), next_tvb, 0,len);
+ }
+ }
+ switch(len) {
+ case 1:
+ gp_tcapsrt_info->src_tid=tvb_get_guint8(next_tvb, 0);
+ break;
+ case 2:
+ gp_tcapsrt_info->src_tid=tvb_get_ntohs(next_tvb, 0);
+ break;
+ case 4:
+ gp_tcapsrt_info->src_tid=tvb_get_ntohl(next_tvb, 0);
+ break;
+ default:
+ gp_tcapsrt_info->src_tid=0;
+ break;
+ }
+}
+
+#.END
diff --git a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
new file mode 100644
index 0000000000..93d13dc362
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
@@ -0,0 +1,536 @@
+/* packet-ansi_tcap-template.c
+ * Routines for ANSI TCAP
+ * Copyright 2007 Anders Broman <anders.broman@ericsson.com>
+ * Built from the gsm-map dissector Copyright 2004 - 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References: T1.114
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/expert.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/strutil.h>
+
+#include "packet-ber.h"
+#include "packet-tcap.h"
+#include "packet-ansi_tcap.h"
+
+#define PNAME "ANSI Transaction Capabilities Application Part"
+#define PSNAME "ANSI_TCAP"
+#define PFNAME "ansi_tcap"
+
+void proto_register_ansi_tcap(void);
+void proto_reg_handoff_ansi_tcap(void);
+
+/* Preference settings */
+#define ANSI_TCAP_TID_ONLY 0
+#define ANSI_TCAP_TID_AND_SOURCE 1
+#define ANSI_TCAP_TID_SOURCE_AND_DEST 2
+static gint ansi_tcap_response_matching_type = ANSI_TCAP_TID_ONLY;
+
+/* Initialize the protocol and registered fields */
+static int proto_ansi_tcap = -1;
+
+static int hf_ansi_tcapsrt_SessionId = -1;
+static int hf_ansi_tcapsrt_Duplicate = -1;
+static int hf_ansi_tcapsrt_BeginSession = -1;
+static int hf_ansi_tcapsrt_EndSession = -1;
+static int hf_ansi_tcapsrt_SessionTime = -1;
+static int hf_ansi_tcap_bit_h = -1;
+static int hf_ansi_tcap_op_family = -1;
+static int hf_ansi_tcap_op_specifier = -1;
+
+#include "packet-ansi_tcap-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_tcap = -1;
+static gint ett_param = -1;
+static gint ett_ansi_tcap_op_code_nat = -1;
+
+static gint ett_otid = -1;
+static gint ett_dtid = -1;
+static gint ett_ansi_tcap_stat = -1;
+
+static expert_field ei_ansi_tcap_dissector_not_implemented = EI_INIT;
+
+static struct tcapsrt_info_t * gp_tcapsrt_info;
+static gboolean tcap_subdissector_used=FALSE;
+
+static struct tcaphash_context_t * gp_tcap_context=NULL;
+
+/* Note the high bit should be masked off when registering in this table (0x7fff)*/
+static dissector_table_t ansi_tcap_national_opcode_table; /* National Operation Codes */
+
+#include "packet-ansi_tcap-ett.c"
+
+#define MAX_SSN 254
+
+extern gboolean gtcap_PersistentSRT;
+extern guint gtcap_RepetitionTimeout;
+extern guint gtcap_LostTimeout;
+
+/* When several Tcap components are received in a single TCAP message,
+ we have to use several buffers for the stored parameters
+ because else this data are erased during TAP dissector call */
+#define MAX_TCAP_INSTANCE 10
+int tcapsrt_global_current=0;
+struct tcapsrt_info_t tcapsrt_global_info[MAX_TCAP_INSTANCE];
+
+static dissector_table_t ber_oid_dissector_table=NULL;
+static const char * cur_oid;
+static const char * tcapext_oid;
+static proto_tree * tcap_top_tree=NULL;
+static proto_tree * tcap_stat_tree=NULL;
+static proto_item * tcap_stat_item=NULL;
+
+static dissector_handle_t ansi_map_handle;
+
+struct ansi_tcap_private_t ansi_tcap_private;
+#define MAX_TID_STR_LEN 1024
+
+static void ansi_tcap_ctx_init(struct ansi_tcap_private_t *a_tcap_ctx) {
+ memset(a_tcap_ctx, '\0', sizeof(*a_tcap_ctx));
+ a_tcap_ctx->signature = ANSI_TCAP_CTX_SIGNATURE;
+ a_tcap_ctx->oid_is_present = FALSE;
+ a_tcap_ctx->TransactionID_str = NULL;
+}
+
+static const value_string ansi_tcap_national_op_code_family_vals[] = {
+ { 0x0, "All Families" },
+ { 0x1, "Parameter" },
+ { 0x2, "Charging" },
+ { 0x3, "Provide Instructions" },
+ { 0x4, "Connection Control" },
+ { 0x5, "Caller Interaction" },
+ { 0x6, "Send Notification" },
+ { 0x7, "Network Management" },
+ { 0x8, "Procedural" },
+ { 0x9, "Operation Control" },
+ { 0xa, "Report Event" },
+ /* Spare */
+ { 0x7e, "Miscellaneous" },
+ { 0x7f, "Reserved" },
+ { 0, NULL }
+};
+
+/*
+static dissector_handle_t tcap_handle = NULL;
+static dissector_table_t sccp_ssn_table;
+
+static GHashTable* ansi_sub_dissectors = NULL;
+static GHashTable* itu_sub_dissectors = NULL;
+
+ extern void add_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector) {
+ g_hash_table_insert(ansi_sub_dissectors,GUINT_TO_POINTER(ssn),dissector);
+ dissector_add_uint("sccp.ssn",ssn,tcap_handle);
+}
+
+extern void delete_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector _U_) {
+ g_hash_table_remove(ansi_sub_dissectors,GUINT_TO_POINTER(ssn));
+ dissector_delete_uint("sccp.ssn",ssn,tcap_handle);
+}
+
+dissector_handle_t get_ansi_tcap_subdissector(guint32 ssn) {
+ return g_hash_table_lookup(ansi_sub_dissectors,GUINT_TO_POINTER(ssn));
+}
+*/
+
+/* Transaction tracking */
+/* Transaction table */
+struct ansi_tcap_invokedata_t {
+ gint OperationCode;
+ /*
+ 0 : national,
+ 1 : private
+ */
+ gint32 OperationCode_private;
+ gint32 OperationCode_national;
+};
+
+static GHashTable *TransactionId_table=NULL;
+
+static void
+ansi_tcap_init(void)
+{
+ TransactionId_table = g_hash_table_new(g_str_hash, g_str_equal);
+}
+
+static void
+ansi_tcap_cleanup(void)
+{
+ /* Destroy any existing memory chunks / hashes. */
+ g_hash_table_destroy(TransactionId_table);
+}
+
+/* Store Invoke information needed for the corresponding reply */
+static void
+save_invoke_data(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U_){
+ struct ansi_tcap_invokedata_t *ansi_tcap_saved_invokedata;
+ gchar *src, *dst;
+ char *buf;
+
+ src = address_to_str(wmem_packet_scope(), &(pinfo->src));
+ dst = address_to_str(wmem_packet_scope(), &(pinfo->dst));
+
+ if ((!pinfo->fd->flags.visited)&&(ansi_tcap_private.TransactionID_str)){
+
+ /* Only do this once XXX I hope it's the right thing to do */
+ /* The hash string needs to contain src and dest to distiguish differnt flows */
+ switch(ansi_tcap_response_matching_type){
+ case ANSI_TCAP_TID_ONLY:
+ buf = wmem_strdup(wmem_packet_scope(), ansi_tcap_private.TransactionID_str);
+ break;
+ case ANSI_TCAP_TID_AND_SOURCE:
+ buf = wmem_strdup_printf(wmem_packet_scope(), "%s%s",ansi_tcap_private.TransactionID_str,src);
+ break;
+ case ANSI_TCAP_TID_SOURCE_AND_DEST:
+ default:
+ buf = wmem_strdup_printf(wmem_packet_scope(), "%s%s%s",ansi_tcap_private.TransactionID_str,src,dst);
+ break;
+ }
+
+ /* If the entry allready exists don't owervrite it */
+ ansi_tcap_saved_invokedata = (struct ansi_tcap_invokedata_t *)g_hash_table_lookup(TransactionId_table,buf);
+ if(ansi_tcap_saved_invokedata)
+ return;
+
+ ansi_tcap_saved_invokedata = wmem_new(wmem_file_scope(), struct ansi_tcap_invokedata_t);
+ ansi_tcap_saved_invokedata->OperationCode = ansi_tcap_private.d.OperationCode;
+ ansi_tcap_saved_invokedata->OperationCode_national = ansi_tcap_private.d.OperationCode_national;
+ ansi_tcap_saved_invokedata->OperationCode_private = ansi_tcap_private.d.OperationCode_private;
+
+ g_hash_table_insert(TransactionId_table,
+ wmem_strdup(wmem_file_scope(), buf),
+ ansi_tcap_saved_invokedata);
+ /*
+ g_warning("Tcap Invoke Hash string %s",buf);
+ */
+ }
+}
+
+static gboolean
+find_saved_invokedata(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U_){
+ struct ansi_tcap_invokedata_t *ansi_tcap_saved_invokedata;
+ gchar *src, *dst;
+ char *buf;
+
+ if (!ansi_tcap_private.TransactionID_str) {
+ return FALSE;
+ }
+
+ src = address_to_str(wmem_packet_scope(), &(pinfo->src));
+ dst = address_to_str(wmem_packet_scope(), &(pinfo->dst));
+
+ /* The hash string needs to contain src and dest to distiguish differnt flows */
+ buf = (char *)wmem_alloc(wmem_packet_scope(), MAX_TID_STR_LEN);
+ buf[0] = '\0';
+ /* Reverse order to invoke */
+ switch(ansi_tcap_response_matching_type){
+ case ANSI_TCAP_TID_ONLY:
+ g_snprintf(buf,MAX_TID_STR_LEN,"%s",ansi_tcap_private.TransactionID_str);
+ break;
+ case ANSI_TCAP_TID_AND_SOURCE:
+ g_snprintf(buf,MAX_TID_STR_LEN,"%s%s",ansi_tcap_private.TransactionID_str,dst);
+ break;
+ case ANSI_TCAP_TID_SOURCE_AND_DEST:
+ default:
+ g_snprintf(buf,MAX_TID_STR_LEN,"%s%s%s",ansi_tcap_private.TransactionID_str,dst,src);
+ break;
+ }
+
+ ansi_tcap_saved_invokedata = (struct ansi_tcap_invokedata_t *)g_hash_table_lookup(TransactionId_table, buf);
+ if(ansi_tcap_saved_invokedata){
+ ansi_tcap_private.d.OperationCode = ansi_tcap_saved_invokedata->OperationCode;
+ ansi_tcap_private.d.OperationCode_national = ansi_tcap_saved_invokedata->OperationCode_national;
+ ansi_tcap_private.d.OperationCode_private = ansi_tcap_saved_invokedata->OperationCode_private;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* As currently ANSI MAP is the only possible sub dissector this function
+ * must be improved to handle general cases.
+ *
+ *
+ *
+ * TODO:
+ * 1)Handle national codes
+ * Design option
+ * - Create a ansi.tcap.national dissector table and have dissectors for
+ * national codes register there and let ansi tcap call them.
+ * 2)Handle Private codes properly
+ * Design question
+ * Unclear how to differentiate between different private "code sets".
+ * Use SCCP SSN table as before? or a ansi.tcap.private dissector table?
+ *
+ */
+static gboolean
+find_tcap_subdissector(tvbuff_t *tvb, asn1_ctx_t *actx, proto_tree *tree){
+ proto_item *item;
+
+ /* If "DialoguePortion objectApplicationId ObjectIDApplicationContext
+ * points to the subdissector this code can be used.
+ *
+ if(ansi_tcap_private.d.oid_is_present){
+ call_ber_oid_callback(ansi_tcap_private.objectApplicationId_oid, tvb, 0, actx-pinfo, tree, NULL);
+ return TRUE;
+ }
+ */
+ if(ansi_tcap_private.d.pdu == 1){
+ /* Save Invoke data for this transaction */
+ save_invoke_data(actx->pinfo, tree, tvb);
+ }else{
+ /* Get saved data for this transaction */
+ if(find_saved_invokedata(actx->pinfo, tree, tvb)){
+ if(ansi_tcap_private.d.OperationCode == 0){
+ /* national */
+ item = proto_tree_add_int(tree, hf_ansi_tcap_national, tvb, 0, 0, ansi_tcap_private.d.OperationCode_national);
+ }else{
+ item = proto_tree_add_int(tree, hf_ansi_tcap_private, tvb, 0, 0, ansi_tcap_private.d.OperationCode_private);
+ }
+ PROTO_ITEM_SET_GENERATED(item);
+ ansi_tcap_private.d.OperationCode_item = item;
+ }
+ }
+ if(ansi_tcap_private.d.OperationCode == 0){
+ /* national */
+ guint8 family = (ansi_tcap_private.d.OperationCode_national & 0x7f00)>>8;
+ guint8 specifier = (guint8)(ansi_tcap_private.d.OperationCode_national & 0xff);
+ if(!dissector_try_uint(ansi_tcap_national_opcode_table, ansi_tcap_private.d.OperationCode_national, tvb, actx->pinfo, tcap_top_tree)){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_tcap_dissector_not_implemented, tvb, 0, -1,
+ "Dissector for ANSI TCAP NATIONAL code:0x%x(Family %u, Specifier %u) \n"
+ "not implemented. Contact Wireshark developers if you want this supported(Spec required)",
+ ansi_tcap_private.d.OperationCode_national, family, specifier);
+ return FALSE;
+ }
+ return TRUE;
+ }else if(ansi_tcap_private.d.OperationCode == 1){
+ /* private */
+ if((ansi_tcap_private.d.OperationCode_private & 0x0900) != 0x0900){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_tcap_dissector_not_implemented, tvb, 0, -1,
+ "Dissector for ANSI TCAP PRIVATE code:%u not implemented.\n"
+ "Contact Wireshark developers if you want this supported(Spec required)",
+ ansi_tcap_private.d.OperationCode_private);
+ return FALSE;
+ }
+ }
+ /* This is abit of a hack as it assumes the private codes with a "family" of 0x09 is ANSI MAP
+ * See TODO above.
+ * N.S0005-0 v 1.0 TCAP Formats and Procedures 5-16 Application Services
+ * 6.3.2 Component Portion
+ * The Operation Code is partitioned into an Operation Family followed by a
+ * Specifier associated with each Operation Family member. For TIA/EIA-41 the
+ * Operation Family is coded as decimal 9. Bit H of the Operation Family is always
+ * coded as 0.
+ */
+ call_dissector_with_data(ansi_map_handle, tvb, actx->pinfo, tcap_top_tree, &ansi_tcap_private);
+
+ return TRUE;
+}
+
+#include "packet-ansi_tcap-fn.c"
+
+
+
+
+static int
+dissect_ansi_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+#if 0
+ proto_item *stat_item=NULL;
+ proto_tree *stat_tree=NULL;
+ gint offset = 0;
+ struct tcaphash_context_t * p_tcap_context;
+ dissector_handle_t subdissector_handle;
+#endif
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ ansi_tcap_ctx_init(&ansi_tcap_private);
+
+ tcap_top_tree = parent_tree;
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "ANSI TCAP");
+
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_ansi_tcap, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_tcap);
+ tcap_stat_item=item;
+ tcap_stat_tree=tree;
+ }
+ cur_oid = NULL;
+ tcapext_oid = NULL;
+
+ gp_tcapsrt_info=tcapsrt_razinfo();
+ tcap_subdissector_used=FALSE;
+ gp_tcap_context=NULL;
+ dissect_ansi_tcap_PackageType(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+
+#if 0 /* Skip this part for now it will be rewritten */
+ if (g_ansi_tcap_HandleSRT && !tcap_subdissector_used ) {
+ if (gtcap_DisplaySRT && tree) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, 0, ett_ansi_tcap_stat, &stat_item, "Stat");
+ PROTO_ITEM_SET_GENERATED(stat_item);
+ }
+ p_tcap_context=tcapsrt_call_matching(tvb, pinfo, stat_tree, gp_tcapsrt_info);
+ ansi_tcap_private.context=p_tcap_context;
+
+ /* If the current message is TCAP only,
+ * save the Application contexte name for the next messages
+ */
+ if ( p_tcap_context && cur_oid && !p_tcap_context->oid_present ) {
+ /* Save the application context and the sub dissector */
+ g_strlcpy(p_tcap_context->oid, cur_oid, sizeof(p_tcap_context->oid));
+ if ( (subdissector_handle = dissector_get_string_handle(ber_oid_dissector_table, cur_oid)) ) {
+ p_tcap_context->subdissector_handle=subdissector_handle;
+ p_tcap_context->oid_present=TRUE;
+ }
+ }
+ if (g_ansi_tcap_HandleSRT && p_tcap_context && p_tcap_context->callback) {
+ /* Callback fonction for the upper layer */
+ (p_tcap_context->callback)(tvb, pinfo, stat_tree, p_tcap_context);
+ }
+ }
+#endif
+ return tvb_captured_length(tvb);
+}
+
+
+void
+proto_reg_handoff_ansi_tcap(void)
+{
+
+ ansi_map_handle = find_dissector("ansi_map");
+ ber_oid_dissector_table = find_dissector_table("ber.oid");
+}
+
+
+
+void
+proto_register_ansi_tcap(void)
+{
+ module_t *ansi_tcap_module;
+
+
+/* Setup list of header fields See Section 1.6.1 for details*/
+ static hf_register_info hf[] = {
+ /* Tcap Service Response Time */
+ { &hf_ansi_tcapsrt_SessionId,
+ { "Session Id",
+ "ansi_tcap.srt.session_id",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_ansi_tcapsrt_BeginSession,
+ { "Begin Session",
+ "ansi_tcap.srt.begin",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "SRT Begin of Session", HFILL }
+ },
+ { &hf_ansi_tcapsrt_EndSession,
+ { "End Session",
+ "ansi_tcap.srt.end",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "SRT End of Session", HFILL }
+ },
+ { &hf_ansi_tcapsrt_SessionTime,
+ { "Session duration",
+ "ansi_tcap.srt.sessiontime",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "Duration of the TCAP session", HFILL }
+ },
+ { &hf_ansi_tcapsrt_Duplicate,
+ { "Request Duplicate",
+ "ansi_tcap.srt.duplicate",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_ansi_tcap_bit_h,
+ { "Require Reply", "ansi_tcap.req_rep",
+ FT_BOOLEAN, 16, NULL, 0x8000,
+ NULL, HFILL }
+ },
+ { &hf_ansi_tcap_op_family,
+ { "Family",
+ "ansi_tcap.op_family",
+ FT_UINT16, BASE_DEC, VALS(ansi_tcap_national_op_code_family_vals), 0x7f00,
+ NULL, HFILL }
+ },
+ { &hf_ansi_tcap_op_specifier,
+ { "Specifier",
+ "ansi_tcap.op_specifier",
+ FT_UINT16, BASE_DEC, NULL, 0x00ff,
+ NULL, HFILL }
+ },
+#include "packet-ansi_tcap-hfarr.c"
+ };
+
+/* Setup protocol subtree array */
+ static gint *ett[] = {
+ &ett_tcap,
+ &ett_param,
+ &ett_otid,
+ &ett_dtid,
+ &ett_ansi_tcap_stat,
+ &ett_ansi_tcap_op_code_nat,
+ #include "packet-ansi_tcap-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_ansi_tcap_dissector_not_implemented, { "ansi_tcap.dissector_not_implemented", PI_UNDECODED, PI_WARN, "Dissector not implemented", EXPFILL }},
+ };
+
+ expert_module_t* expert_ansi_tcap;
+
+ static const enum_val_t ansi_tcap_response_matching_type_values[] = {
+ {"Only Transaction ID will be used in Invoke/response matching", "Transaction ID only", ANSI_TCAP_TID_ONLY},
+ {"Transaction ID and Source will be used in Invoke/response matching", "Transaction ID and Source", ANSI_TCAP_TID_AND_SOURCE},
+ {"Transaction ID Source and Destination will be used in Invoke/response matching", "Transaction ID Source and Destination", ANSI_TCAP_TID_SOURCE_AND_DEST},
+ {NULL, NULL, -1}
+ };
+
+/* Register the protocol name and description */
+ proto_ansi_tcap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("ansi_tcap", dissect_ansi_tcap, proto_ansi_tcap);
+
+ /* Note the high bit should be masked off when registering in this table (0x7fff)*/
+ ansi_tcap_national_opcode_table = register_dissector_table("ansi_tcap.nat.opcode", "ANSI TCAP National Opcodes", FT_UINT16, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+/* Required function calls to register the header fields and subtrees used */
+ proto_register_field_array(proto_ansi_tcap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_ansi_tcap = expert_register_protocol(proto_ansi_tcap);
+ expert_register_field_array(expert_ansi_tcap, ei, array_length(ei));
+
+ ansi_tcap_module = prefs_register_protocol(proto_ansi_tcap, proto_reg_handoff_ansi_tcap);
+
+ prefs_register_enum_preference(ansi_tcap_module, "transaction.matchtype",
+ "Type of matching invoke/response",
+ "Type of matching invoke/response, risk of mismatch if loose matching chosen",
+ &ansi_tcap_response_matching_type, ansi_tcap_response_matching_type_values, FALSE);
+
+ register_init_routine(&ansi_tcap_init);
+ register_cleanup_routine(&ansi_tcap_cleanup);
+}
diff --git a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h
new file mode 100644
index 0000000000..d9a6f03914
--- /dev/null
+++ b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h
@@ -0,0 +1,63 @@
+/* packet-ansi_tcap.h
+ *
+ * Copyright 2007 Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+
+#ifndef PACKET_ANSI_TCAP_H
+#define PACKET_ANSI_TCAP_H
+
+#define ANSI_TCAP_CTX_SIGNATURE 0x41544341 /* "ATCA" */
+
+struct ansi_tcap_private_t {
+ guint32 signature;
+ gboolean oid_is_present; /* Is the Application Context Version present */
+ const void * objectApplicationId_oid;
+ guint32 session_id;
+ void * context;
+ gchar *TransactionID_str;
+ struct { /* "dynamic" data */
+ gint pdu;
+ /*
+ 1 : invoke,
+ 2 : returnResult,
+ 3 : returnError,
+ 4 : reject
+ */
+ gint OperationCode;
+ /*
+ 0 : national,
+ 1 : private
+ */
+ gint32 OperationCode_national;
+ gint32 OperationCode_private;
+ proto_item *OperationCode_item;
+ } d;
+
+};
+
+/*extern void add_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector);*/
+
+
+/*extern void delete_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector);*/
+
+
+#endif /* PACKET_ANSI_TCAP_H */
diff --git a/epan/dissectors/asn1/atn-cm/CMakeLists.txt b/epan/dissectors/asn1/atn-cm/CMakeLists.txt
new file mode 100644
index 0000000000..7a7176ce76
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cm/CMakeLists.txt
@@ -0,0 +1,53 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME atn-cm )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -u -L )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/atn-cm/Makefile.am b/epan/dissectors/asn1/atn-cm/Makefile.am
new file mode 100644
index 0000000000..11932c53a4
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cm/Makefile.am
@@ -0,0 +1,22 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
diff --git a/epan/dissectors/asn1/atn-cm/Makefile.common b/epan/dissectors/asn1/atn-cm/Makefile.common
new file mode 100644
index 0000000000..508ed3136c
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cm/Makefile.common
@@ -0,0 +1,40 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = atn-cm
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = $(PROTOCOL_NAME).asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+# ASN1 PER unaligned encoding
+A2W_FLAGS= -u -L
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/atn-cm/Makefile.nmake b/epan/dissectors/asn1/atn-cm/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cm/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/atn-cm/atn-cm.asn b/epan/dissectors/asn1/atn-cm/atn-cm.asn
new file mode 100644
index 0000000000..fdbf4ddf70
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cm/atn-cm.asn
@@ -0,0 +1,194 @@
+-- ICAO doc 9705 Edition 2 Contact Management (CM)
+CMMessageSetVersion1 DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- ----------------------------------------------------------------------------------
+-- CM Message Structure
+-- ----------------------------------------------------------------------------------
+-- Aircraft-generated messages
+
+CMAircraftMessage ::= CHOICE
+{
+ cmLogonRequest [0] CMLogonRequest,
+ cmContactResponse [1] CMContactResponse,
+ cmAbortReason [2] CMAbortReason,
+ ...
+}
+
+-- Ground-generated messages
+
+CMGroundMessage ::= CHOICE
+{
+ cmLogonResponse [0] CMLogonResponse,
+ cmUpdate [1] CMUpdate,
+ cmContactRequest [2] CMContactRequest,
+ cmForwardRequest [3] CMForwardRequest,
+ cmAbortReason [4] CMAbortReason,
+ cmForwardResponse [5] CMForwardResponse,
+ ...
+}
+
+-- ----------------------------------------------------------------------------------
+-- CM Message Components
+-- ----------------------------------------------------------------------------------
+
+AircraftFlightIdentification ::= IA5String(SIZE(2..8))
+Airport ::=IA5String (SIZE(4))
+
+APAddress ::= CHOICE
+{
+ longTsap [0] LongTsap,
+ shortTsap [1] ShortTsap
+}
+
+AEQualifier ::= INTEGER (0..255)
+-- ATN AE-Qualifier Numeric Values are described in 4
+
+AEQualifierVersion ::= SEQUENCE
+{
+ aeQualifier AEQualifier,
+ apVersion VersionNumber
+}
+
+AEQualifierVersionAddress ::= SEQUENCE
+{
+ aeQualifier AEQualifier,
+ apVersion VersionNumber,
+ apAddress APAddress
+}
+
+CMAbortReason ::= ENUMERATED
+{
+ timer-expired (0),
+ undefined-error (1),
+ invalid-PDU (2),
+ protocol-error (3),
+ dialogue-acceptance-not-permitted (4),
+ dialogue-end-not-accepted (5),
+ communication-service-error (6),
+ communication-service-failure (7),
+ invalid-QOS-parameter (8),
+ expected-PDU-missing (9),
+ ...
+}
+
+CMContactRequest ::= SEQUENCE
+{
+ facilityDesignation FacilityDesignation,
+ address LongTsap
+}
+
+CMContactResponse ::= Response
+
+
+CMForwardRequest ::= CMLogonRequest
+
+CMForwardResponse ::= ENUMERATED
+{
+ success (0),
+ incompatible-version (1),
+ service-not-supported (2)
+}
+
+CMLogonRequest ::= SEQUENCE
+{
+ aircraftFlightIdentification [0] AircraftFlightIdentification,
+ cMLongTSAP [1] LongTsap,
+
+ groundInitiatedApplications [2] SEQUENCE SIZE (1..256) OF AEQualifierVersionAddress OPTIONAL,
+ airOnlyInitiatedApplications [3] SEQUENCE SIZE (1..256) OF AEQualifierVersion OPTIONAL,
+ facilityDesignation [4] FacilityDesignation OPTIONAL,
+ airportDeparture [5] Airport OPTIONAL,
+ airportDestination [6] Airport OPTIONAL,
+ dateTimeDepartureETD [7] DateTime OPTIONAL
+}
+
+CMLogonResponse ::= SEQUENCE
+{
+ airInitiatedApplications [0] SEQUENCE SIZE (1..256) OF AEQualifierVersionAddress
+ OPTIONAL,
+ groundOnlyInitiatedApplications [1] SEQUENCE SIZE (1..256) OF AEQualifierVersion
+ OPTIONAL
+}
+
+CMUpdate ::= CMLogonResponse
+
+Date ::= SEQUENCE
+{
+ year Year,
+ month Month,
+ day Day
+}
+
+ -- The Date field does not have to correspond to the flight if the field is not to be used;
+ -- the field's value can be assigned a meaningless, but compliant, value locally. If operational
+ -- use of the Date field is intended, there must be bilateral agreements in place to ensure its proper
+ -- use. This is a local implementation issue.
+
+DateTime ::= SEQUENCE
+{
+ date Date,
+ time Time
+}
+
+Day ::= INTEGER (1..31)
+ --unit = Day, Range (1..31), resolution = 1
+
+FacilityDesignation ::= IA5String (SIZE(4..8))
+
+LongTsap ::= SEQUENCE
+{
+ rDP OCTET STRING (SIZE(5)),
+ shortTsap ShortTsap
+}
+
+Month ::= INTEGER (1..12)
+ --unit = Month, Range (1..12), resolution = 1
+
+Response ::= ENUMERATED
+{
+ contactSuccess (0),
+ contactNotSuccessful (1)
+}
+
+ShortTsap ::= SEQUENCE
+{
+ aRS [0] OCTET STRING (SIZE(3)) OPTIONAL,
+ -- the aRS contains the ICAO 24 bit aircraft address when the ShortTsap belongs to an aircraft;
+ -- or a ground address when the Short Tsap belongs to a ground system
+ locSysNselTsel [1] OCTET STRING (SIZE(10..11))
+}
+
+Time ::= SEQUENCE
+{
+ hours Timehours,
+ minutes Timeminutes
+}
+
+Timehours ::= INTEGER (0..23)
+-- units = hour, range (0..23), resolution = 1 hour
+
+Timeminutes ::= INTEGER (0..59)
+-- units = minute, range (0..59), resolution = 1 minute
+
+VersionNumber ::= INTEGER (1..255)
+ -- VersionNumber 0 is reserved for the Dialogue Service
+
+Year ::= INTEGER (1996..2095)
+ --unit = Year, Range (1996..2095), resolution = 1
+
+END
+
+--
+-- Editor modelines - http://www.wireshark.org/tools/modelines.html
+--
+-- Local variables:
+-- c-basic-offset: 4
+-- tab-width: 8
+-- indent-tabs-mode: nil
+-- End:
+--
+-- vi: set shiftwidth=4 tabstop=8 expandtab:
+-- :indentSize=4:tabSize=8:noTabs=true:
+--
+
diff --git a/epan/dissectors/asn1/atn-cm/atn-cm.cnf b/epan/dissectors/asn1/atn-cm/atn-cm.cnf
new file mode 100644
index 0000000000..d3eef8551d
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cm/atn-cm.cnf
@@ -0,0 +1,20 @@
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.PDU
+ CMAircraftMessage
+ CMGroundMessage
+#.END
+
+#
+# Editor modelines - http://www.wireshark.org/tools/modelines.html
+#
+# Local variables:
+# c-basic-offset: 4
+# tab-width: 8
+# indent-tabs-mode: nil
+# End:
+#
+# vi: set shiftwidth=4 tabstop=8 expandtab:
+# :indentSize=4:tabSize=8:noTabs=true:
diff --git a/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c b/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c
new file mode 100644
index 0000000000..5dc966e69c
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c
@@ -0,0 +1,244 @@
+/* packet-atn-cm.c
+ * By Mathias Guettler <guettler@web.de>
+ * Copyright 2013
+ *
+ * Routines for ATN context management protocol packet disassembly.
+ * ATN context management allows an aircraft
+ * to log on to a ground facility.
+
+ * details see:
+ * http://en.wikipedia.org/wiki/CPDLC
+ * http://members.optusnet.com.au/~cjr/introduction.htm
+
+ * standards:
+ * http://legacy.icao.int/anb/panels/acp/repository.cfm
+
+ * note:
+ * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Ed2 here
+ * (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
+
+
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/conversation.h>
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-atn-ulcs.h"
+
+#define ATN_CM_PROTO "ICAO Doc9705 CM"
+
+void proto_register_atn_cm(void);
+void proto_reg_handoff_atn_cm(void);
+
+#include "packet-atn-cm-hf.c"
+
+#include "packet-atn-cm-ett.c"
+static gint ett_atn_cm = -1;
+
+#include "packet-atn-cm-fn.c"
+static int proto_atn_cm = -1;
+
+static int
+dissect_atn_cm(
+ tvbuff_t *tvb,
+ packet_info *pinfo,
+ proto_tree *tree,
+ void *data _U_)
+{
+ int type;
+ proto_tree *sub_tree;
+
+ sub_tree = proto_tree_add_subtree(
+ tree, tvb, 0, -1, ett_atn_cm, NULL, ATN_CM_PROTO);
+
+ /* ti = proto_tree_add_item(tree, proto_atn_cm, tvb, 0, 0 , ENC_NA); */
+ /* sub_tree = proto_item_add_subtree(ti, ett_atn_cm_pdu); */
+
+ /* determine whether it is uplink or downlink */
+ type = check_heur_msg_type(pinfo);
+
+ switch(type){
+ case um:
+ dissect_CMGroundMessage_PDU(
+ tvb,
+ pinfo,
+ sub_tree, NULL);
+ break;
+ case dm:
+ dissect_CMAircraftMessage_PDU(
+ tvb,
+ pinfo,
+ sub_tree, NULL);
+ break;
+ default:
+ break;
+ }
+ return tvb_reported_length_remaining(tvb, 0);
+}
+
+static gboolean
+dissect_atn_cm_heur(
+ tvbuff_t *tvb,
+ packet_info *pinfo,
+ proto_tree *tree,
+ void *data _U_)
+{
+ atn_conversation_t *volatile atn_cv = NULL;
+ volatile gboolean is_atn_cm = FALSE;
+ int type;
+
+ /* determine whether it is uplink or downlink */
+ type = check_heur_msg_type(pinfo);
+
+ /* heuristically decode message */
+ switch(type){
+ case um:
+ TRY {
+ dissect_CMGroundMessage_PDU(
+ tvb,
+ pinfo,
+ NULL, NULL);
+ /* no exception thrown: looks like it is a CM PDU */
+ is_atn_cm = TRUE; }
+ CATCH_ALL {
+ is_atn_cm = FALSE; }
+ ENDTRY;
+ break;
+ case dm:
+ TRY {
+ dissect_CMAircraftMessage_PDU(
+ tvb,
+ pinfo,
+ NULL, NULL);
+ /* no exception thrown: looks like it is a CM PDU */
+ is_atn_cm = TRUE;}
+ CATCH_ALL {
+ is_atn_cm = FALSE; }
+ ENDTRY;
+ break;
+ default:
+ break;
+ }
+
+ if (is_atn_cm == TRUE) {
+ /* note: */
+ /* all subsequent PDU's belonging to this conversation are considered CM */
+ /* if the first CM PDU has been decoded successfully */
+ /* (This is done in "atn-ulcs" by using "call_dissector_with_data()") */
+
+ /* DT: dstref present, srcref is always zero */
+ if((pinfo->clnp_dstref) &&
+ (!pinfo->clnp_srcref)){
+
+ atn_cv = find_atn_conversation(
+ &pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src );
+ }
+ /* CR: srcref present, dstref is always zero */
+ if((!pinfo->clnp_dstref) &&
+ (pinfo->clnp_srcref)){
+
+ atn_cv = find_atn_conversation(
+ &pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst );
+
+ }
+ /* CC: srcref and dstref present */
+ if((pinfo->clnp_dstref) &&
+ (pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(
+ &pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst );
+ }
+ if(atn_cv){
+ atn_cv->ae_qualifier = cma;
+ }
+ dissect_atn_cm(
+ tvb,
+ pinfo,
+ tree,
+ NULL);
+ }
+
+ return is_atn_cm;
+}
+
+
+void proto_register_atn_cm (void)
+{
+ static hf_register_info hf_atn_cm[] = {
+ #include "packet-atn-cm-hfarr.c"
+ };
+ static gint *ett[] = {
+ #include "packet-atn-cm-ettarr.c"
+ &ett_atn_cm
+ };
+
+ /* register CM application */
+ proto_atn_cm = proto_register_protocol(
+ ATN_CM_PROTO ,
+ "ATN-CM",
+ "atn-cm");
+
+ proto_register_field_array(
+ proto_atn_cm,
+ hf_atn_cm,
+ array_length(hf_atn_cm));
+
+ proto_register_subtree_array(
+ ett,
+ array_length(ett));
+
+ register_dissector(
+ "atn-cm",
+ dissect_atn_cm,
+ proto_atn_cm);
+}
+
+void proto_reg_handoff_atn_cm(void)
+{
+ /* add session dissector to subdissector list*/
+ heur_dissector_add(
+ "atn-ulcs",
+ dissect_atn_cm_heur,
+ "ATN-CM over ATN-ULCS",
+ "atn-cm-ulcs",
+ proto_atn_cm, HEURISTIC_ENABLE);
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/atn-cpdlc/CMakeLists.txt b/epan/dissectors/asn1/atn-cpdlc/CMakeLists.txt
new file mode 100644
index 0000000000..50af9cbf99
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cpdlc/CMakeLists.txt
@@ -0,0 +1,53 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME atn-cpdlc )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -u -L )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/atn-cpdlc/Makefile.am b/epan/dissectors/asn1/atn-cpdlc/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cpdlc/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/atn-cpdlc/Makefile.common b/epan/dissectors/asn1/atn-cpdlc/Makefile.common
new file mode 100644
index 0000000000..a372667c5a
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cpdlc/Makefile.common
@@ -0,0 +1,40 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = atn-cpdlc
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = $(PROTOCOL_NAME).asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+# ASN1 PER unaligned encoding
+A2W_FLAGS= -u -L
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/atn-cpdlc/Makefile.nmake b/epan/dissectors/asn1/atn-cpdlc/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cpdlc/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.asn b/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.asn
new file mode 100644
index 0000000000..32fc1a13f9
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.asn
@@ -0,0 +1,2793 @@
+-- Sub-Volume IV ASN.1 reference definitions for ICAO Doc. 9705,
+-- Second Edition
+-- Version 1.1, 03 Oct 2001
+
+-- protected mode PDR's
+-- 2011-10-25 Doc 9705 Draft Ed 3 (ICAO web site - 11/00) including "9705 PDRS FOR CPDLC"
+-- based on "ACP WGN SG/N2 Version 1.1 (Output Montreal - May 2005)"
+
+
+-- plain old CPDLC
+CPDLCAPDUsVersion1 DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ ATCUplinkMessage, ATCDownlinkMessage
+ FROM PMCPDLCMessageSetVersion1
+ ATCForwardMessage, ATCForwardResponse
+ FROM PMCPDLCAPDUsVersion1;
+
+-- ----------------------------------------------------------------------------------
+-- Ground Generated Messages - Top level
+-- ----------------------------------------------------------------------------------
+GroundPDUs ::= CHOICE
+{
+ abortUser [0] CPDLCUserAbortReason,
+ abortProvider [1] CPDLCProviderAbortReason,
+ startup [2] UplinkMessage,
+ send [3] ATCUplinkMessage,
+ forward [4] ATCForwardMessage,
+ forwardresponse [5] ATCForwardResponse,
+ ...
+}
+
+UplinkMessage ::= CHOICE
+{
+ noMessage [0] NULL,
+ aTCUplinkMessage [1] ATCUplinkMessage
+}
+
+AircraftPDUs::= CHOICE
+{
+ abortUser [0] CPDLCUserAbortReason,
+ abortProvider [1] CPDLCProviderAbortReason,
+ startdown [2] StartDownMessage,
+ send [3] ATCDownlinkMessage,
+ ...
+}
+
+StartDownMessage ::= SEQUENCE
+{
+ mode Mode DEFAULT cpdlc,
+ startDownlinkMessage DownlinkMessage
+}
+
+Mode ::= ENUMERATED
+{
+ cpdlc (0),
+ dsc (1)
+}
+
+DownlinkMessage ::= CHOICE
+{
+ noMessage [0] NULL,
+ aTCDownlinkMessage [1] ATCDownlinkMessage
+}
+
+CPDLCUserAbortReason ::= ENUMERATED
+{
+ undefined (0),
+ no-message-identification-numbers-available (1),
+ duplicate-message-identification-numbers (2),
+ no-longer-next-data-authority (3),
+ current-data-authority-abort (4),
+ commanded-termination (5),
+ invalid-response (6),
+ ...
+}
+
+
+CPDLCProviderAbortReason ::= ENUMERATED
+{
+ timer-expired (0),
+ undefined-error (1),
+ invalid-PDU (2),
+ protocol-error (3),
+ communication-service-error (4),
+ communication-service-failure (5),
+ invalid-QOS-parameter (6),
+ expected-PDU-missing (7),
+ ...
+ }
+
+END
+
+-- protected mode PMCPDLC
+PMCPDLCAPDUsVersion1 DEFINITIONS::=
+BEGIN
+
+IMPORTS
+DateTimeGroup,
+AircraftFlightIdentification,
+AircraftAddress
+FROM PMCPDLCMessageSetVersion1;
+
+-- ----------------------------------------------------------------------------------
+-- Ground Generated Messages - Top level
+-- ----------------------------------------------------------------------------------
+ProtectedGroundPDUs ::= CHOICE
+{
+ abortUser [0] PMCPDLCUserAbortReason,
+ abortProvider [1] PMCPDLCProviderAbortReason,
+ startup [2] ProtectedUplinkMessage,
+ send [3] ProtectedUplinkMessage,
+ forward [4] ATCForwardMessage,
+ forwardresponse [5] ATCForwardResponse,
+ ...
+}
+
+ProtectedUplinkMessage::= SEQUENCE
+{
+ algorithmIdentifier [0] AlgorithmIdentifier OPTIONAL,
+ protectedMessage [1] CPDLCMessage OPTIONAL,
+-- PER encoded ATCUplinkMessage
+-- (see Module PMCPDLCMessageSetVersion1)
+ integrityCheck [2] BIT STRING,
+ ...
+}
+
+ATCForwardMessage ::= SEQUENCE
+{
+ forwardHeader ForwardHeader,
+ forwardMessage ForwardMessage
+}
+
+ForwardHeader ::= SEQUENCE
+{
+ dateTime DateTimeGroup,
+ aircraftID AircraftFlightIdentification,
+ aircraftAddress AircraftAddress
+}
+
+ForwardMessage ::= CHOICE
+{
+ upElementIDs [0] BIT STRING,
+--PER encoded ATCUplinkMessageData,
+-- (see Module PMCPDLCMessageSetVersion1)
+ downElementIDs [1] BIT STRING
+--PER encoded ATCDownlinkMessageData,
+-- (see Module PMCPDLCMessageSetVersion1)
+}
+
+ATCForwardResponse ::= ENUMERATED
+{
+ success (0),
+ service-not-supported (1),
+ version-not-equal (2),
+ ...
+}
+-- ----------------------------------------------------------------------------------
+-- Aircraft Generated Messages - Top level
+-- ----------------------------------------------------------------------------------
+ProtectedAircraftPDUs::= CHOICE
+{
+ abortUser [0] PMCPDLCUserAbortReason,
+ abortProvider [1] PMCPDLCProviderAbortReason,
+ startdown [2] ProtectedStartDownMessage,
+ send [3] ProtectedDownlinkMessage,
+ ...
+}
+
+
+ProtectedStartDownMessage ::= SEQUENCE
+{
+ mode ProtectedMode DEFAULT cpdlc,
+ startDownlinkMessage ProtectedDownlinkMessage
+}
+
+ProtectedMode ::= ENUMERATED
+{
+ cpdlc (0),
+ dsc (1)
+}
+
+ProtectedDownlinkMessage::= SEQUENCE
+{
+ algorithmIdentifier [0] AlgorithmIdentifier OPTIONAL,
+ protectedMessage [1] CPDLCMessage OPTIONAL,
+--PER encoded ATCDownlinkMessage,
+-- (see Module PMCPDLCMessageSetVersion1)
+ integrityCheck [2] BIT STRING,
+ ...
+}
+
+-- ----------------------------------------------------------------------------------
+-- Uplink and Downlink messages - Common Elements
+-- ----------------------------------------------------------------------------------
+AlgorithmIdentifier ::= RELATIVE-OID
+--root is {icao-arc atn-algorithms(9)}
+
+CPDLCMessage ::= BIT STRING
+
+PMCPDLCUserAbortReason ::= ENUMERATED
+{
+ undefined (0),
+ no-message-identification-numbers-available (1),
+ duplicate-message-identification-numbers (2),
+ no-longer-next-data-authority (3),
+ current-data-authority-abort (4),
+ commanded-termination (5),
+ invalid-response (6),
+ time-out-of-synchronisation (7),
+ unknown-integrity-check (8),
+ validation-failure (9),
+ unable-to-decode-message (10),
+ invalid-pdu (11),
+ invalid-CPDLC-message (12),
+ ...
+}
+
+PMCPDLCProviderAbortReason ::= ENUMERATED
+{
+ timer-expired (0),
+ undefined-error (1),
+ invalid-PDU (2),
+ protocol-error (3),
+ communication-service-error (4),
+ communication-service-failure (5),
+ invalid-QOS-parameter (6),
+ expected-PDU-missing (7),
+ ...
+}
+
+END
+
+PMCPDLCMessageSetVersion1 DEFINITIONS::=
+BEGIN
+
+ATCUplinkMessage ::= SEQUENCE
+{
+ header ATCMessageHeader,
+ messageData ATCUplinkMessageData
+}
+
+ATCUplinkMessageData ::= SEQUENCE
+{
+ elementIds SEQUENCE SIZE (1..5) OF ATCUplinkMsgElementId,
+ constrainedData SEQUENCE
+ {
+ routeClearanceData SEQUENCE SIZE (1..2) OF RouteClearance OPTIONAL,
+ ...
+ } OPTIONAL
+}
+
+ATCDownlinkMessage ::= SEQUENCE
+{
+ header ATCMessageHeader,
+ messageData ATCDownlinkMessageData
+}
+
+ATCDownlinkMessageData ::= SEQUENCE
+{
+ elementIds SEQUENCE SIZE (1..5) OF ATCDownlinkMsgElementId,
+ constrainedData SEQUENCE
+ {
+ routeClearanceData SEQUENCE SIZE (1..2) OF RouteClearance OPTIONAL,
+ ...
+ } OPTIONAL
+}
+
+-- ----------------------------------------------------------------------------------
+-- Uplink and Downlink messages - Common Elements
+-- ----------------------------------------------------------------------------------
+ATCMessageHeader ::= SEQUENCE
+{
+ messageIdNumber [0] MsgIdentificationNumber,
+ messageRefNumber [1] MsgReferenceNumber OPTIONAL,
+ dateTime [2] DateTimeGroup,
+ logicalAck [3] LogicalAck DEFAULT notRequired
+}
+
+MsgIdentificationNumber ::= INTEGER (0..63)
+
+MsgReferenceNumber ::= INTEGER (0..63)
+
+LogicalAck ::= ENUMERATED
+{
+ required (0),
+ notRequired (1)
+}
+
+-- ----------------------------------------------------------------------------------
+-- Uplink message element
+-- ----------------------------------------------------------------------------------
+ATCUplinkMsgElementId ::= CHOICE
+{
+ -- UNABLE
+ -- Urg(N)/Alr(M)/Resp(N)
+ uM0NULL [0] NULL,
+
+ -- STANDBY
+ -- Urg(N)/Alr(L)/Resp(N)
+ uM1NULL [1] NULL,
+
+ -- REQUEST DEFERRED
+ -- Urg(N)/Alr(L)/Resp(N)
+ uM2NULL [2] NULL,
+
+ -- ROGER
+ -- Urg(N)/Alr(L)/Resp(N)
+ uM3NULL [3] NULL,
+
+ -- AFFIRM
+ -- Urg(N)/Alr(L)/Resp(N)
+ uM4NULL [4] NULL,
+
+ -- NEGATIVE Urg(N)/Alr(L)/Resp(N)
+ uM5NULL [5] NULL,
+
+ -- EXPECT [level] Urg(L)/Alr(L)/Resp(R)
+ uM6Level [6] Level,
+
+ -- EXPECT CLIMB AT [time]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM7Time [7] Time,
+
+ -- EXPECT CLIMB AT [position]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM8Position [8] Position,
+
+ -- EXPECT DESCENT AT [time]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM9Time [9] Time,
+
+ -- EXPECT DESCENT AT [position]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM10Position [10] Position,
+
+ -- EXPECT CRUISE CLIMB AT [time]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM11Time [11] Time,
+
+ -- EXPECT CRUISE CLIMB AT [position]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM12Position [12] Position,
+
+ -- AT [time] EXPECT CLIMB TO [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM13TimeLevel [13] TimeLevel,
+
+ -- AT [position] EXPECT CLIMB TO [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM14PositionLevel [14] PositionLevel,
+
+ -- AT [time] EXPECT DESCENT TO [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM15TimeLevel [15] TimeLevel,
+
+ -- AT [position] EXPECT DESCENT TO [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM16PositionLevel [16] PositionLevel,
+
+ -- AT [time] EXPECT CRUISE CLIMB TO [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM17TimeLevel [17] TimeLevel,
+
+ -- AT [position] EXPECT CRUISE CLIMB TO [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM18PositionLevel [18] PositionLevel,
+
+ -- MAINTAIN [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM19Level [19] Level,
+
+ -- CLIMB TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM20Level [20] Level,
+
+ -- AT [time] CLIMB TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM21TimeLevel [21] TimeLevel,
+
+ -- AT [position] CLIMB TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM22PositionLevel [22] PositionLevel,
+
+ -- DESCEND TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM23Level [23] Level,
+
+ -- AT [time] DESCEND TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM24TimeLevel [24] TimeLevel,
+
+ -- AT [position] DESCEND TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM25PositionLevel [25] PositionLevel,
+
+ -- CLIMB TO REACH [level] BY [time]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM26LevelTime [26] LevelTime,
+
+ -- CLIMB TO REACH [level] BY [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM27LevelPosition [27] LevelPosition,
+
+ -- DESCEND TO REACH [level] BY [time]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM28LevelTime [28] LevelTime,
+
+ -- DESCEND TO REACH [level] BY [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM29LevelPosition [29] LevelPosition,
+
+ -- MAINTAIN BLOCK [level] TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM30LevelLevel [30] LevelLevel,
+
+ -- CLIMB TO AND MAINTAIN BLOCK [level] TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM31LevelLevel [31] LevelLevel,
+
+ -- DESCEND TO AND MAINTAIN BLOCK [level] TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM32LevelLevel [32] LevelLevel,
+
+ -- Reserved
+ -- Urg(L)/Alr(L)/Resp(Y)
+ uM33NULL [33] NULL,
+
+ -- CRUISE CLIMB TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM34Level [34] Level,
+
+ -- CRUISE CLIMB ABOVE [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM35Level [35] Level,
+
+ -- EXPEDITE CLIMB TO [level]
+ -- Urg(U)/Alr(M)/Resp(W/U)
+ uM36Level [36] Level,
+
+ -- EXPEDITE DESCENT TO [level]
+ -- Urg(U)/Alr(M)/Resp(W/U)
+ uM37Level [37] Level,
+
+ -- IMMEDIATELY CLIMB TO [level]
+ -- Urg(D)/Alr(H)/Resp(W/U)
+ uM38Level [38] Level,
+
+ -- IMMEDIATELY DESCEND TO [level]
+ -- Urg(D)/Alr(H)/Resp(W/U)
+ uM39Level [39] Level,
+
+ -- Reserved
+ -- Urg(L)/Alr(L)/Resp(Y)
+ uM40NULL [40] NULL,
+
+ -- Reserved Urg(L)/Alr(L)/Resp(Y)
+ uM41NULL [41] NULL,
+
+ -- EXPECT TO CROSS [position] AT [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM42PositionLevel [42] PositionLevel,
+
+ -- EXPECT TO CROSS [position] AT OR ABOVE [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM43PositionLevel [43] PositionLevel,
+
+ -- EXPECT TO CROSS [position] AT OR BELOW [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM44PositionLevel [44] PositionLevel,
+
+ -- EXPECT TO CROSS [position] AT AND MAINTAIN [level]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM45PositionLevel [45] PositionLevel,
+
+ -- CROSS [position] AT [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM46PositionLevel [46] PositionLevel,
+
+ -- CROSS [position] AT OR ABOVE [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM47PositionLevel [47] PositionLevel,
+
+ -- CROSS [position] AT OR BELOW [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM48PositionLevel [48] PositionLevel,
+
+ -- CROSS [position] AT AND MAINTAIN [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM49PositionLevel [49] PositionLevel,
+
+ -- CROSS [position] BETWEEN [level] AND [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM50PositionLevelLevel [50] PositionLevelLevel,
+
+ -- CROSS [position] AT [time]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM51PositionTime [51] PositionTime,
+
+ -- CROSS [position] AT OR BEFORE [time]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM52PositionTime [52] PositionTime,
+
+ -- CROSS [position] AT OR AFTER [time]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM53PositionTime [53] PositionTime,
+
+ -- CROSS [position] BETWEEN [time] AND [time]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM54PositionTimeTime [54] PositionTimeTime,
+
+ -- CROSS [position] AT [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM55PositionSpeed [55] PositionSpeed,
+
+ -- CROSS [position] AT OR LESS THAN [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM56PositionSpeed [56] PositionSpeed,
+
+ -- CROSS [position] AT OR GREATER THAN [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM57PositionSpeed [57] PositionSpeed,
+
+ -- CROSS [position] AT [time] AT [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM58PositionTimeLevel [58] PositionTimeLevel,
+
+ -- CROSS [position] AT OR BEFORE [time] AT [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM59PositionTimeLevel [59] PositionTimeLevel,
+
+ -- CROSS [position] AT OR AFTER [time] AT [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM60PositionTimeLevel [60] PositionTimeLevel,
+
+ -- CROSS [position] AT AND MAINTAIN [level] AT [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM61PositionLevelSpeed [61] PositionLevelSpeed,
+
+ -- AT [time] CROSS [position] AT AND MAINTAIN [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM62TimePositionLevel [62] TimePositionLevel,
+
+ -- AT [time] CROSS [position] AT AND MAINTAIN [level] AT [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM63TimePositionLevelSpeed [63] TimePositionLevelSpeed,
+
+ -- OFFSET [specifiedDistance] [direction] OF ROUTE
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM64DistanceSpecifiedDirection [64] DistanceSpecifiedDirection,
+
+ -- AT [position] OFFSET [specifiedDistance] [direction] OF ROUTE
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM65PositionDistanceSpecifiedDirection[65] PositionDistanceSpecifiedDirection,
+
+ -- AT [time] OFFSET [specifiedDistance] [direction] OF ROUTE
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM66TimeDistanceSpecifiedDirection [66] TimeDistanceSpecifiedDirection,
+
+ -- PROCEED BACK ON ROUTE
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM67NULL [67] NULL,
+
+ -- REJOIN ROUTE BY [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM68Position [68] Position,
+
+ -- REJOIN ROUTE BY [time]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM69Time [69] Time,
+
+ -- EXPECT BACK ON ROUTE BY [position]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM70Position [70] Position,
+
+ -- EXPECT BACK ON ROUTE BY [time]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM71Time [71] Time,
+
+ -- RESUME OWN NAVIGATION
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM72NULL [72] NULL,
+
+ -- [DepartureClearance]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM73DepartureClearance [73] DepartureClearance,
+
+ -- PROCEED DIRECT TO [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM74Position [74] Position,
+
+ -- WHEN ABLE PROCEED DIRECT TO [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM75Position [75] Position,
+
+ -- AT [time] PROCEED DIRECT TO [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM76TimePosition [76] TimePosition,
+
+ -- AT [position] PROCEED DIRECT TO [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM77PositionPosition [77] PositionPosition,
+
+ -- AT [level] PROCEED DIRECT TO [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM78LevelPosition [78] LevelPosition,
+
+ -- CLEARED TO [position] VIA [routeClearance]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM79PositionRouteClearance [79] PositionRouteClearanceIndex,
+
+ -- CLEARED [routeClearance]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM80RouteClearance [80] RouteClearanceIndex,
+
+ -- CLEARED [procedureName]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM81ProcedureName [81] ProcedureName,
+
+ -- CLEARED TO DEVIATE UP TO [specifiedDistance] [direction] OF ROUTE
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM82DistanceSpecifiedDirection [82] DistanceSpecifiedDirection,
+
+ -- AT [position] CLEARED [routeClearance]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM83PositionRouteClearance [83] PositionRouteClearanceIndex,
+
+ -- AT [position] CLEARED [procedureName]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM84PositionProcedureName [84] PositionProcedureName,
+
+ -- EXPECT [routeClearance]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM85RouteClearance [85] RouteClearanceIndex,
+
+ -- AT [position] EXPECT [routeClearance]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM86PositionRouteClearance [86] PositionRouteClearanceIndex,
+
+ -- EXPECT DIRECT TO [position]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM87Position [87] Position,
+
+ -- AT [position] EXPECT DIRECT TO [position]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM88PositionPosition [88]PositionPosition,
+
+ -- AT [time] EXPECT DIRECT TO [position]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM89TimePosition [89] TimePosition,
+
+
+ -- AT [level] EXPECT DIRECT TO [position]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM90LevelPosition [90] LevelPosition,
+
+ -- HOLD AT [position] MAINTAIN [level] INBOUND TRACK [degrees][direction] TURNS [legtype]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM91HoldClearance [91] HoldClearance,
+
+ -- HOLD AT [position] AS PUBLISHED MAINTAIN [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM92PositionLevel [92] PositionLevel,
+
+ -- EXPECT FURTHER CLEARANCE AT [time]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM93Time [93] Time,
+
+ -- TURN [direction] HEADING [degrees]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM94DirectionDegrees [94] DirectionDegrees,
+
+ -- TURN [direction] GROUND TRACK [degrees]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM95DirectionDegrees [95] DirectionDegrees,
+
+ -- CONTINUE PRESENT HEADING
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM96NULL [96] NULL,
+
+ -- AT [position] FLY HEADING [degrees]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM97PositionDegrees [97] PositionDegrees,
+
+ -- IMMEDIATELY TURN [direction] HEADING [degrees]
+ -- Urg(D)/Alr(H)/Resp(W/U)
+ uM98DirectionDegrees [98] DirectionDegrees,
+
+ -- EXPECT [procedureName]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM99ProcedureName [99] ProcedureName,
+
+ -- AT [time] EXPECT [speed]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM100TimeSpeed [100] TimeSpeed,
+
+ -- AT [position] EXPECT [speed]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM101PositionSpeed [101] PositionSpeed,
+
+ -- AT [level] EXPECT [speed]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM102LevelSpeed [102] LevelSpeed,
+
+ -- AT [time] EXPECT [speed] TO [speed]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM103TimeSpeedSpeed [103] TimeSpeedSpeed,
+
+ -- AT [position] EXPECT [speed] TO [speed]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM104PositionSpeedSpeed [104] PositionSpeedSpeed,
+
+ -- AT [level] EXPECT [speed] TO [speed]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM105LevelSpeedSpeed [105] LevelSpeedSpeed,
+
+ -- MAINTAIN [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM106Speed [106] Speed,
+
+ -- MAINTAIN PRESENT SPEED
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM107NULL [107] NULL,
+
+ -- MAINTAIN [speed] OR GREATER
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM108Speed [108] Speed,
+
+ -- MAINTAIN [speed] OR LESS
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM109Speed [109] Speed,
+
+ -- MAINTAIN [speed] TO [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM110SpeedSpeed [110] SpeedSpeed,
+
+ -- INCREASE SPEED TO [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM111Speed [111] Speed,
+
+ -- INCREASE SPEED TO [speed] OR GREATER
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM112Speed [112] Speed,
+
+ -- REDUCE SPEED TO [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM113Speed [113] Speed,
+
+ -- REDUCE SPEED TO [speed] OR LESS
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM114Speed [114] Speed,
+
+ -- DO NOT EXCEED [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM115Speed [115] Speed,
+
+ -- RESUME NORMAL SPEED
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM116NULL [116] NULL,
+
+ -- CONTACT [unitname] [frequency]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM117UnitNameFrequency [117] UnitNameFrequency,
+
+ -- AT [position] CONTACT [unitname] [frequency]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM118PositionUnitNameFrequency [118] PositionUnitNameFrequency,
+
+ -- AT [time] CONTACT [unitname] [frequency]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM119TimeUnitNameFrequency [119] TimeUnitNameFrequency,
+
+ -- MONITOR [unitname] [frequency]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM120UnitNameFrequency [120] UnitNameFrequency,
+
+ -- AT [position] MONITOR [unitname] [frequency]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM121PositionUnitNameFrequency [121] PositionUnitNameFrequency,
+
+ -- AT [time] MONITOR [unitname] [frequency]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM122TimeUnitNameFrequency [122] TimeUnitNameFrequency,
+
+ -- SQUAWK [code]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM123Code [123] Code,
+
+ -- STOP SQUAWK
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM124NULL [124] NULL,
+
+ -- SQUAWK MODE CHARLIE
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM125NULL [125] NULL,
+
+ -- STOP SQUAWK MODE CHARLIE
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM126NULL [126] NULL,
+
+ -- REPORT BACK ON ROUTE
+ -- Urg(N)/Alr(L)/Resp(W/U)
+ uM127NULL [127] NULL,
+
+ -- REPORT LEAVING [level]
+ -- Urg(N)/Alr(L)/Resp(W/U)
+ uM128Level [128] Level,
+
+ -- REPORT MAINTAINING [level]
+ -- Urg(N)/Alr(L)/Resp(W/U)
+ uM129Level [129] Level,
+
+ -- REPORT PASSING [position]
+ -- Urg(N)/Alr(L)/Resp(W/U)
+ uM130Position [130] Position,
+
+ -- REPORT REMAINING FUEL AND PERSONS ON BOARD
+ -- Urg(U)/Alr(M)/Resp(Y)
+ uM131NULL [131] NULL,
+
+ -- REPORT POSITION
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM132NULL [132] NULL,
+
+ -- REPORT PRESENT LEVEL
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM133NULL [133] NULL,
+
+ -- REPORT [speedtype] [speedtype] [speedtype]SPEED
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM134SpeedTypeSpeedTypeSpeedType [134] SpeedTypeSpeedTypeSpeedType,
+
+ -- CONFIRM ASSIGNED LEVEL
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM135NULL [135] NULL,
+
+ -- CONFIRM ASSIGNED SPEED
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM136NULL [136] NULL,
+
+ -- CONFIRM ASSIGNED ROUTE
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM137NULL [137] NULL,
+
+ -- CONFIRM TIME OVER REPORTED WAYPOINT
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM138NULL [138] NULL,
+
+ -- CONFIRM REPORTED WAYPOINT
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM139NULL [139] NULL,
+
+ -- CONFIRM NEXT WAYPOINT
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM140NULL [140] NULL,
+
+ -- CONFIRM NEXT WAYPOINT ETA
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM141NULL [141] NULL,
+
+ -- CONFIRM ENSUING WAYPOINT
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM142NULL [142] NULL,
+
+ -- CONFIRM REQUEST
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM143NULL [143] NULL,
+
+ -- CONFIRM SQUAWK
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM144NULL [144] NULL,
+
+ -- REPORT HEADING
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM145NULL [145] NULL,
+
+ -- REPORT GROUND TRACK
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM146NULL [146] NULL,
+
+ -- REQUEST POSITION REPORT
+ -- Urg(N)/Alr(M)/Resp(Y )
+ uM147NULL [147] NULL,
+
+ -- WHEN CAN YOU ACCEPT [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM148Level [148] Level,
+
+ -- CAN YOU ACCEPT [level] AT [position]
+ -- Urg(N)/Alr(L)/Resp(A/N)
+ uM149LevelPosition [149] LevelPosition,
+
+ -- CAN YOU ACCEPT [level] AT [time]
+ -- Urg(N)/Alr(L)/Resp(A/N)
+ uM150LevelTime [150] LevelTime,
+
+ -- WHEN CAN YOU ACCEPT [speed]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM151Speed [151] Speed,
+
+ -- WHEN CAN YOU ACCEPT [specifiedDistance] [direction] OFFSET
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM152DistanceSpecifiedDirection [152] DistanceSpecifiedDirection,
+
+ -- ALTIMETER [altimeter]
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM153Altimeter [153] Altimeter,
+
+ -- RADAR SERVICE TERMINATED
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM154NULL [154] NULL,
+
+ -- RADAR CONTACT [position]
+ -- Urg(N)/Alr(M)/Resp(R)
+ uM155Position [155] Position,
+
+ -- RADAR CONTACT LOST
+ -- Urg(N)/Alr(M)/Resp(R)
+ uM156NULL [156] NULL,
+
+ -- CHECK STUCK MICROPHONE [frequency]
+ -- Urg(U)/Alr(M)/Resp(N)
+ uM157Frequency [157] Frequency,
+
+ -- ATIS [atiscode]
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM158AtisCode [158] ATISCode,
+
+ -- ERROR [errorInformation]
+ -- Urg(U)/Alr(M)/Resp(N)
+ uM159ErrorInformation [159] ErrorInformation,
+
+ -- NEXT DATA AUTHORITY [facility]
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM160Facility [160] Facility,
+
+ -- END SERVICE
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM161NULL [161] NULL,
+
+ -- SERVICE UNAVAILABLE
+ -- Urg(L)/Alr(L)/Resp(N )
+ uM162NULL [162] NULL,
+
+ -- [facilitydesignation]
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM163FacilityDesignation [163] FacilityDesignation,
+
+ -- WHEN READY
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM164NULL [164] NULL,
+
+ -- THEN
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM165NULL [165] NULL,
+
+ -- DUE TO [traffictype]TRAFFIC
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM166TrafficType [166] TrafficType,
+
+ -- DUE TO AIRSPACE RESTRICTION
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM167NULL [167] NULL,
+
+ -- DISREGARD
+ -- Urg(U)/Alr(M)/Resp(R)
+ uM168NULL [168] NULL,
+
+ -- [freetext]
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM169FreeText [169] FreeText,
+
+ -- [freetext]
+ -- Urg(D)/Alr(H)/Resp(R)
+ uM170FreeText [170] FreeText,
+
+ -- CLIMB AT [verticalRate] MINIMUM
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM171VerticalRate [171] VerticalRate,
+
+ -- CLIMB AT [verticalRate] MAXIMUM
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM172VerticalRate [172] VerticalRate,
+
+ -- DESCEND AT [verticalRate] MINIMUM
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM173VerticalRate [173] VerticalRate,
+
+ -- DESCEND AT [verticalRate] MAXIMUM
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM174VerticalRate [174] VerticalRate,
+
+ -- REPORT REACHING [level]
+ -- Urg(N)/Alr(L)/Resp(W/U)
+ uM175Level [175] Level,
+
+ -- MAINTAIN OWN SEPARATION AND VMC
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM176NULL [176] NULL,
+
+ -- AT PILOTS DISCRETION
+ -- Urg(L)/Alr(L)/Resp(N)
+ uM177NULL [177] NULL,
+
+ -- Reserved
+ -- Urg(L)/Alr(L)/Resp(Y)
+ uM178NULL [178] NULL,
+
+ -- SQUAWK IDENT
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM179NULL [179] NULL,
+
+ -- REPORT REACHING BLOCK [level] TO [level]
+ -- Urg(N)/Alr(L)/Resp(W/U)
+ uM180LevelLevel [180] LevelLevel,
+
+ -- REPORT DISTANCE [tofrom] [position]
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM181ToFromPosition [181] ToFromPosition,
+
+ -- CONFIRM ATIS CODE
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM182NULL [182] NULL,
+
+ -- [freetext]
+ -- Urg(N)/Alr(M)/Resp(N)
+ uM183FreeText [183] FreeText,
+
+ -- AT [time] REPORT DISTANCE [tofrom] [position]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM184TimeToFromPosition [184] TimeToFromPosition,
+
+ -- AFTER PASSING [position] CLIMB TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM185PositionLevel [185] PositionLevel,
+
+ -- AFTER PASSING [position] DESCEND TO [level]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM186PositionLevel [186] PositionLevel,
+
+ -- [freetext]
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM187FreeText [187] FreeText,
+
+ -- AFTER PASSING [position] MAINTAIN [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM188PositionSpeed [188] PositionSpeed,
+
+ -- ADJUST SPEED TO [speed]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM189Speed [189] Speed,
+
+ -- FLY HEADING [degrees]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM190Degrees [190] Degrees,
+
+ -- ALL ATS TERMINATED
+ -- Urg(N)/Alr(M)/Resp(R)
+ uM191NULL [191] NULL,
+
+ -- REACH [level] BY [time]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM192LevelTime [192] LevelTime,
+
+ -- IDENTIFICATION LOST
+ -- Urg(N)/Alr(M)/Resp(R)
+ uM193NULL [193] NULL,
+
+ -- [freetext]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ uM194FreeText [194] FreeText,
+
+ -- [freetext]
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM195FreeText [195] FreeText,
+
+ -- [freetext]
+ -- Urg(N)/Alr(M)/Resp
+ uM196FreeText [196] FreeText,
+
+ -- [freetext]
+ -- Urg(U)/Alr(M)/Resp(W/U)
+ uM197FreeText [197] FreeText,
+
+ -- [freetext]
+ -- Urg(D)/Alr(H)/Resp(W/U)
+ uM198FreeText [198] FreeText,
+
+ -- [freetext]
+ -- Urg(N)/Alr(L)/Resp(N)
+ uM199FreeText [199] FreeText,
+
+ -- REPORT REACHING
+ -- Urg(N)/Alr(L)/Resp(W/U)
+ uM200NULL [200] NULL,
+
+ -- Not Used
+ -- Urg(L)/Alr(L)/Resp(N)
+ uM201NULL [201] NULL,
+
+ -- Not Used
+ -- Urg(L)/Alr(L)/Resp(N)
+ uM202NULL [202] NULL,
+
+ -- [freetext]
+ -- Urg(N)/Alr(M)/Resp(R)
+ uM203FreeText [203] FreeText,
+
+ -- [freetext]
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM204FreeText [204] FreeText,
+
+ -- [freetext]
+ -- Urg(N)/Alr(M)/Resp(A/N)
+ uM205FreeText [205] FreeText,
+
+ -- [freetext]
+ -- Urg(L)/Alr(N)/Resp(Y)
+ uM206FreeText [206] FreeText,
+
+ -- [freetext]
+ -- Urg(L)/Alr(L)/Resp(Y)
+ uM207FreeText [207] FreeText,
+
+ -- [freetext]
+ -- Urg(L)/Alr(L)/Resp(N)
+ uM208FreeText [208] FreeText,
+
+ -- REACH [level] BY [position]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM209LevelPosition [209] LevelPosition,
+
+ -- IDENTIFIED [position]
+ -- Urg(N)/Alr(M)/Resp(R)
+ uM210Position [210] Position,
+
+ -- REQUEST FORWARDED
+ -- Urg(N)/Alr(L)/Resp(N)
+ uM211NULL [211] NULL,
+
+ -- [facilitydesignation] ATIS [atiscode] CURRENT
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM212FacilityDesignationATISCode [212] FacilityDesignationATISCode,
+
+ -- [facilitydesignation] ALTIMETER [altimeter]
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM213FacilityDesignationAltimeter [213] FacilityDesignationAltimeter,
+
+ -- RVR RUNWAY [runway] [rvr]
+ -- Urg(N)/Alr(M)/Resp(R)
+ uM214RunwayRVR [214] RunwayRVR,
+
+ -- TURN [direction][degrees]
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM215DirectionDegrees [215] DirectionDegrees,
+
+ -- REQUEST FLIGHT PLAN
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM216NULL [216] NULL,
+
+ -- REPORT ARRIVAL
+ -- Urg(N)/Alr(M)/Resp(Y)
+ uM217NULL [217] NULL,
+
+ -- REQUEST ALREADY RECEIVED
+ -- Urg(L)/Alr(N)/Resp(N)
+ uM218NULL [218] NULL,
+
+ -- STOP CLIMB AT [level]
+ -- Urg(U)/Alr(M)/Resp(W/U)
+ uM219Level [219] Level,
+
+ -- STOP DESCENT AT [level]
+ -- Urg(U)/Alr(M)/Resp(W/U)
+ uM220Level [220] Level,
+
+ -- STOP TURN HEADING [degrees]
+ -- Urg(U)/Alr(M)/Resp(W/U)
+ uM221Degrees [221] Degrees,
+
+ -- NO SPEED RESTRICTION
+ -- Urg(L)/Alr(L)/Resp(R)
+ uM222NULL [222] NULL,
+
+ -- REDUCE TO MINIMUM APPROACH SPEED
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM223NULL [223] NULL,
+
+ -- NO DELAY EXPECTED
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM224NULL [224] NULL,
+
+ -- DELAY NOT DETERMINED
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM225NULL [225] NULL,
+
+ -- EXPECTED APPROACH TIME [time]
+ -- Urg(N)/Alr(L)/Resp(R)
+ uM226Time [226] Time,
+
+ -- LOGICAL ACKNOWLEDGMENT
+ -- Urg(N)/Alr(M)/Resp(N)
+ uM227NULL [227] NULL,
+
+ -- REPORT ETA [position]
+ --Urg(L)/Alr(L)/Resp(Y)
+ uM228Position [228] Position,
+
+ -- REPORT ALTERNATE AERODROME
+ -- Urg(L)/Alr(L)/Resp(Y)
+ uM229NULL [229] NULL,
+
+ -- IMMEDIATELY
+ -- Urg(D)/Alr(H)/Resp(N)
+ uM230NULL [230] NULL,
+
+ -- STATE PREFERRED LEVEL
+ -- Urg(L)/Alr(L)/Resp(Y)
+ uM231NULL [231] NULL,
+
+ -- STATE TOP OF DESCENT
+ -- Urg(L)/Alr(L)/Resp(Y)
+ uM232NULL [232] NULL,
+
+ -- USE OF LOGICAL ACKNOWLEDGMENT PROHIBITED
+ -- Urg(N)/Alr(M)/Resp(N)
+ uM233NULL [233] NULL,
+
+ -- FLIGHT PLAN NOT HELD
+ -- Urg(L)/Alr(L)/Resp(N)
+ uM234NULL [234] NULL,
+
+ -- ROGER 7500
+ -- Urg(U)/Alr(H)/Resp(N)
+ uM235NULL [235] NULL,
+
+ -- LEAVE CONTROLLED AIRSPACE
+ -- Urg(N)/Alr(M)/Resp(W/U)
+ uM236NULL [236] NULL,
+ ...,
+
+ -- REQUEST AGAIN WITH NEXT UNIT
+ -- Urg(N)/Alr(L)/Resp(N)
+ uM237NULL [237]NULL
+}
+
+------------------------------------------------------------------------------------
+-- Downlink message element
+-- ----------------------------------------------------------------------------------
+ATCDownlinkMsgElementId ::= CHOICE
+{
+ -- WILCO
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM0NULL [0] NULL,
+
+ --UNABLE
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM1NULL [1] NULL,
+
+ -- STANDBY
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM2NULL [2] NULL,
+
+ -- ROGER
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM3NULL [3] NULL,
+
+ -- AFFIRM
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM4NULL [4] NULL,
+
+ -- NEGATIVE
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM5NULL [5] NULL,
+
+ -- REQUEST [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM6Level [6] Level,
+
+ -- REQUEST BLOCK [level] TO [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM7LevelLevel [7] LevelLevel,
+
+ -- REQUEST CRUISE CLIMB TO [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM8Level [8] Level,
+
+ -- REQUEST CLIMB TO [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM9Level [9] Level,
+
+ -- REQUEST DESCENT TO [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM10Level [10] Level,
+
+ -- AT [position] REQUEST CLIMB TO [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM11PositionLevel [11] PositionLevel,
+
+ -- AT [position] REQUEST DESCENT TO [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM12PositionLevel [12] PositionLevel,
+
+ -- AT [time] REQUEST CLIMB TO [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM13TimeLevel [13] TimeLevel,
+
+ -- AT [time] REQUEST DESCENT TO [level]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM14TimeLevel [14] TimeLevel,
+
+ -- REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM15DistanceSpecifiedDirection [15] DistanceSpecifiedDirection,
+
+ -- AT [position] REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM16PositionDistanceSpecifiedDirection [16] PositionDistanceSpecifiedDirection,
+
+ -- AT [time] REQUEST OFFSET [specifiedDistance] [direction] OF ROUTE
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM17TimeDistanceSpecifiedDirection [17] TimeDistanceSpecifiedDirection,
+
+ -- REQUEST [speed]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM18Speed [18] Speed,
+
+ -- REQUEST [speed] TO [speed]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM19SpeedSpeed [19] SpeedSpeed,
+
+ -- REQUEST VOICE CONTACT
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM20NULL [20] NULL,
+
+ -- REQUEST VOICE CONTACT [frequency]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM21Frequency [21] Frequency,
+
+ -- REQUEST DIRECT TO [position]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM22Position [22] Position,
+
+ -- REQUEST [procedureName]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM23ProcedureName [23] ProcedureName,
+
+ -- REQUEST CLEARANCE [routeClearance]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM24RouteClearance [24] RouteClearanceIndex,
+
+ -- REQUEST [clearanceType] CLEARANCE
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM25ClearanceType [25] ClearanceType,
+
+ -- REQUEST WEATHER DEVIATION TO [position] VIA [routeClearance]
+ -- Urg(N)/Alr(M)/Resp(Y)
+ dM26PositionRouteClearance [26] PositionRouteClearanceIndex,
+
+ -- REQUEST WEATHER DEVIATION UP TO [specifiedDistance] [direction] OF ROUTE
+ -- Urg(N)/Alr(M)/Resp(Y)
+ dM27DistanceSpecifiedDirection [27] DistanceSpecifiedDirection,
+
+ -- LEAVING [level]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM28Level [28] Level,
+
+ -- CLIMBING TO [level]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM29Level [29]Level,
+
+ -- DESCENDING TO [level]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM30Level [30] Level,
+
+ -- PASSING [position]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM31Position [31] Position,
+
+ -- PRESENT LEVEL [level]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM32Level [32] Level,
+
+ -- PRESENT POSITION [position]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM33Position [33] Position,
+
+ -- PRESENT SPEED [speed]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM34Speed [34] Speed,
+
+ -- PRESENT HEADING [degrees]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM35Degrees [35] Degrees,
+
+ -- PRESENT GROUND TRACK [degrees]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM36Degrees [36] Degrees,
+
+ -- MAINTAINING [level]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM37Level [37] Level,
+
+ -- ASSIGNED LEVEL [level]
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM38Level [38] Level,
+
+ -- ASSIGNED SPEED [speed]
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM39Speed [39] Speed,
+
+ -- ASSIGNED ROUTE [routeClearance]
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM40RouteClearance [40] RouteClearanceIndex,
+
+ -- BACK ON ROUTE
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM41NULL [41] NULL,
+
+ -- NEXT WAYPOINT [position]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM42Position [42] Position,
+
+ -- NEXT WAYPOINT ETA [time]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM43Time [43] Time,
+
+ -- ENSUING WAYPOINT [position]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM44Position [44] Position,
+
+ -- REPORTED WAYPOINT [position]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM45Position [45] Position,
+
+ -- REPORTED WAYPOINT [time]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM46Time [46] Time,
+
+ -- SQUAWKING [code]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM47Code [47] Code,
+
+ -- POSITION REPORT [positionreport]
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM48PositionReport [48] PositionReport,
+
+ -- WHEN CAN WE EXPECT [speed]
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM49Speed [49] Speed,
+
+ -- WHEN CAN WE EXPECT [speed] TO [speed]
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM50SpeedSpeed [50] SpeedSpeed,
+
+ -- WHEN CAN WE EXPECT BACK ON ROUTE
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM51NULL [51] NULL,
+
+ -- WHEN CAN WE EXPECT LOWER LEVEL
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM52NULL [52] NULL,
+
+ -- WHEN CAN WE EXPECT HIGHER LEVEL Urg(L)/Alr(L)/Resp(Y)
+ dM53NULL [53] NULL,
+
+ -- WHEN CAN WE EXPECT CRUISE CLIMB TO [level]
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM54Level [54] Level,
+
+ -- PAN PAN PAN
+ -- Urg(U)/Alr(H)/Resp(Y)
+ dM55NULL [55] NULL,
+
+ -- MAYDAY MAYDAY MAYDAY
+ -- Urg(D)/Alr(H)/Resp(Y)
+ dM56NULL [56] NULL,
+
+ -- [remainingFuel] OF FUEL REMAINING AND [personsonboard] PERSONS ON BOARD
+ -- Urg(U)/Alr(H)/Resp(Y)
+ dM57RemainingFuelPersonsOnBoard [57] RemainingFuelPersonsOnBoard,
+
+ -- CANCEL EMERGENCY
+ -- Urg(U)/Alr(M)/Resp(Y)
+ dM58NULL [58] NULL,
+
+ -- DIVERTING TO [position] VIA [routeClearance]
+ -- Urg(U)/Alr(H)/Resp(Y)
+ dM59PositionRouteClearance [59] PositionRouteClearanceIndex,
+
+ -- OFFSETTING [specifiedDistance] [direction] OF ROUTE
+ -- Urg(U)/Alr(H)/Resp(Y)
+ dM60DistanceSpecifiedDirection [60] DistanceSpecifiedDirection,
+
+ -- DESCENDING TO [level]
+ -- Urg(U)/Alr(H)/Resp(Y)
+ dM61Level [61] Level,
+
+ -- ERROR [errorInformation]
+ -- Urg(U)/Alr(L)/Resp(N)
+ dM62ErrorInformation [62] ErrorInformation,
+
+ -- NOT CURRENT DATA AUTHORITY
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM63NULL [63] NULL,
+
+ -- [facilitydesignation]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM64FacilityDesignation [64] FacilityDesignation,
+
+ -- DUE TO WEATHER
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM65NULL [65] NULL,
+
+ -- DUE TO AIRCRAFT PERFORMANCE
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM66NULL [66] NULL,
+
+ -- [freetext]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM67FreeText [67] FreeText,
+
+ -- [freetext]
+ -- Urg(D)/Alr(H)/Resp(Y)
+ dM68FreeText [68] FreeText,
+
+ -- REQUEST VMC DESCENT
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM69NULL [69] NULL,
+
+ -- REQUEST HEADING [degrees]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM70Degrees [70] Degrees,
+
+ -- REQUEST GROUND TRACK [degrees]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM71Degrees [71] Degrees,
+
+ -- REACHING [level]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM72Level [72] Level,
+
+ -- [versionnumber]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM73Versionnumber [73] VersionNumber,
+
+ -- REQUEST TO MAINTAIN OWN SEPARATION AND VMC
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM74NULL [74] NULL,
+
+ -- AT PILOTS DISCRETION
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM75NULL [75] NULL,
+
+ -- REACHING BLOCK [level] TO [level]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM76LevelLevel [76] LevelLevel,
+
+ -- ASSIGNED BLOCK [level] TO [level]
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM77LevelLevel [77] LevelLevel,
+
+ -- AT [time] [distance] [tofrom] [position]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM78TimeDistanceToFromPosition [78] TimeDistanceToFromPosition,
+
+ -- ATIS [atiscode]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM79AtisCode [79] ATISCode,
+
+ -- DEVIATING UP TO [specifiedDistance] [direction] OF ROUTE
+ -- Urg(U)/Alr(H)/Resp(Y)
+ dM80DistanceSpecifiedDirection [80] DistanceSpecifiedDirection,
+
+ -- WE CAN ACCEPT [level] AT [time]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM81LevelTime [81] LevelTime,
+
+ -- WE CANNOT ACCEPT [level]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM82Level [82] Level,
+
+ -- WE CAN ACCEPT [speed] AT [time]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM83SpeedTime [83] SpeedTime,
+
+ -- WE CANNOT ACCEPT [speed]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM84Speed [84] Speed,
+
+ -- WE CAN ACCEPT [specifiedDistance] [direction] AT [time]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM85DistanceSpecifiedDirectionTime [85] DistanceSpecifiedDirectionTime,
+
+ -- WE CANNOT ACCEPT [specifiedDistance] [direction]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM86DistanceSpecifiedDirection [86] DistanceSpecifiedDirection,
+
+ -- WHEN CAN WE EXPECT CLIMB TO [level]
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM87Level [87] Level,
+
+ -- WHEN CAN WE EXPECT DESCENT TO [level]
+ --Urg(L)/Alr(L)/Resp(Y)
+ dM88Level [88] Level,
+
+ -- MONITORING [unitname] [frequency]
+ -- Urg(U)/Alr(M)/Resp(N)
+ dM89UnitnameFrequency [89] UnitNameFrequency,
+
+ -- [freetext]
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM90FreeText [90] FreeText,
+
+ -- [freetext]
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM91FreeText [91] FreeText,
+
+ -- [freetext]
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM92FreeText [92] FreeText,
+
+ -- [freetext]
+ -- Urg(U)/Alr(H)/Resp(N)
+ dM93FreeText [93] FreeText,
+
+ -- [freetext]
+ -- Urg(D)/Alr(H)/Resp(N)
+ dM94FreeText [94] FreeText,
+
+ -- [freetext]
+ -- Urg(U)/Alr(M)/Resp(N)
+ dM95FreeText [95] FreeText,
+
+ -- [freetext]
+ -- Urg(U)/Alr(L)/Resp(N)
+ dM96FreeText [96] FreeText,
+
+ -- [freetext]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM97FreeText [97] FreeText,
+
+ -- [freetext]
+ -- Urg(N)/Alr(N)/Resp(N)
+ dM98FreeText [98] FreeText,
+
+ -- CURRENT DATA AUTHORITY
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM99NULL [99] NULL,
+
+ -- LOGICAL ACKNOWLEDGMENT
+ -- Urg(N)/Alr(M)/Resp(N)
+ dM100NULL [100] NULL,
+
+ -- REQUEST END OF SERVICE
+ -- Urg(L)/Alr(L)/Resp(Y)
+ dM101NULL [101] NULL,
+
+ -- LANDING REPORT
+ -- Urg(N)/Alr(N)/Resp(N)
+ dM102NULL [102] NULL,
+
+ -- CANCELLING IFR
+ -- Urg(N)/Alr(L)/Resp(Y)
+ dM103NULL [103] NULL,
+
+ -- ETA[position][time]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM104PositionTime [104] PositionTime,
+
+ -- ALTERNATE AERODROME[airport]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM105Airport [105] Airport,
+
+ -- PREFERRED LEVEL[level]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM106Level [106] Level,
+
+ -- NOT AUTHORIZED NEXT DATA AUTHORITY
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM107NULL [107] NULL,
+
+ -- DE-ICING COMPLETE
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM108NULL [108] NULL,
+
+ -- TOP OF DESCENT [time]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM109Time [109] Time,
+
+ -- TOP OF DESCENT [position]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM110Position [110] Position,
+
+ -- TOP OF DESCENT [time] [position]
+ -- Urg(L)/Alr(L)/Resp(N)
+ dM111TimePosition [111] TimePosition,
+
+ -- SQUAWKING 7500
+ -- Urg(U)/Alr(H)/Resp(N)
+ dM112NULL [112] NULL,
+
+ -- [speedType] [speedType] [speedType] SPEED [speed]
+ -- Urg(N)/Alr(L)/Resp(N)
+ dM113SpeedTypeSpeedTypeSpeedTypeSpeed [113] SpeedTypeSpeedTypeSpeedTypeSpeed,
+
+ ...
+}
+
+AircraftAddress ::= BIT STRING (SIZE(24))
+
+AircraftFlightIdentification ::= IA5String (SIZE (2..8))
+
+Airport ::= IA5String (SIZE (4))
+
+Altimeter ::= CHOICE
+{
+ altimeterEnglish [0] AltimeterEnglish,
+ altimeterMetric [1] AltimeterMetric
+}
+
+AltimeterEnglish ::= INTEGER (2200..3200)
+-- unit = Inches Mercury, Range (22.00 .. 32.00), resolution = 0.01
+
+AltimeterMetric ::= INTEGER (7500..12500)
+-- unit = Hectopascal, Range (750.0..1250.0), resolution = 0.1
+
+ATISCode ::= IA5String (SIZE (1))
+
+ATSRouteDesignator ::= IA5String (SIZE (2..7))
+
+ATWAlongTrackWaypoint ::= SEQUENCE
+{
+ position [0] Position,
+ aTWDistance [1] ATWDistance,
+ speed [2] Speed OPTIONAL,
+ aTWLevels [3] ATWLevelSequence OPTIONAL
+}
+
+ATWLevel ::= SEQUENCE
+{
+ atw ATWLevelTolerance,
+ level Level
+}
+
+ATWLevelSequence ::= SEQUENCE SIZE (1..2) OF ATWLevel
+
+ATWLevelTolerance ::= ENUMERATED
+{
+ at (0),
+ atorabove (1),
+ atorbelow (2)
+}
+
+ATWDistance ::= SEQUENCE
+{
+ atwDistanceTolerance ATWDistanceTolerance,
+ distance Distance
+}
+
+ATWDistanceTolerance ::= ENUMERATED
+{
+ plus (0),
+ minus (1)
+}
+
+ClearanceType ::= ENUMERATED
+{
+ noneSpecified (0),
+ approach (1),
+ departure (2),
+ further (3),
+ start-up (4),
+ pushback (5),
+ taxi (6),
+ take-off (7),
+ landing (8),
+ oceanic (9),
+ en-route (10),
+ downstream (11),
+ ...
+}
+
+Code ::= SEQUENCE SIZE (4) OF CodeOctalDigit
+
+CodeOctalDigit ::= INTEGER (0..7)
+
+ControlledTime ::= SEQUENCE
+{
+ time Time,
+ timeTolerance TimeTolerance
+}
+
+Date ::= SEQUENCE
+{
+ year Year,
+ month Month,
+ day Day
+}
+
+DateTimeGroup ::= SEQUENCE
+{
+ date Date,
+ timehhmmss Timehhmmss
+}
+
+Day ::= INTEGER (1..31)
+--unit = Day, Range (1..31), resolution = 1
+
+DegreeIncrement ::= INTEGER (1..20)
+--unit = Degree, Range (1..20), resolution = 1
+
+Degrees ::= CHOICE
+{
+ degreesMagnetic [0] DegreesMagnetic,
+ degreesTrue [1] DegreesTrue
+}
+
+DegreesMagnetic ::= INTEGER (1..360)
+--unit = degree, Range (1..360), resolution = 1
+
+DegreesTrue ::= INTEGER (1..360)
+--unit = degree, Range (1..360), resolution = 1
+
+DepartureClearance ::= SEQUENCE
+{
+ aircraftFlightIdentification [0] AircraftFlightIdentification,
+ clearanceLimit [1] Position,
+ flightInformation [2] FlightInformation OPTIONAL,
+ furtherInstructions [3] FurtherInstructions OPTIONAL
+}
+
+DepartureMinimumInterval ::= INTEGER (1..150)
+--unit = Minute, Range (0.1..15.0), resolution = 0.1
+
+Direction ::= ENUMERATED
+{
+ left (0),
+ right (1),
+ eitherSide (2),
+ north (3),
+ south (4),
+ east (5),
+ west (6),
+ northEast (7),
+ northWest (8),
+ southEast (9),
+ southWest (10)
+}
+
+DirectionDegrees ::= SEQUENCE
+{
+ direction Direction,
+ degrees Degrees
+}
+
+Distance ::= CHOICE
+{
+ distanceNm [0] DistanceNm,
+ distanceKm [1] DistanceKm
+}
+
+
+DistanceKm ::= INTEGER (0..8000)
+-- unit = Kilometer, Range (0..2000), resolution = 0.25
+
+DistanceNm ::= INTEGER (0..9999)
+-- unit = Nautical Mile, Range (0..999.9), resolution = 0.1
+
+DistanceSpecified ::= CHOICE
+{
+ distanceSpecifiedNm [0] DistanceSpecifiedNm,
+ distanceSpecifiedKm [1] DistanceSpecifiedKm
+}
+
+
+DistanceSpecifiedDirection ::= SEQUENCE
+{
+ distanceSpecified DistanceSpecified,
+ direction Direction
+}
+
+DistanceSpecifiedDirectionTime ::= SEQUENCE
+{
+ distanceSpecifiedDirection DistanceSpecifiedDirection,
+ time Time
+}
+
+DistanceSpecifiedKm ::= INTEGER (1..500)
+-- unit = Kilometer, Range (1..500), resolution = 1
+
+DistanceSpecifiedNm ::= INTEGER (1..250)
+-- unit = Nautical Mile, Range (1..250), resolution = 1
+
+ErrorInformation ::= ENUMERATED
+{
+ unrecognizedMsgReferenceNumber (0),
+ logicalAcknowledgmentNotAccepted (1),
+ insufficientResources (2),
+ invalidMessageElementCombination (3),
+ invalidMessageElement (4),
+ ...
+}
+
+Facility ::= CHOICE{
+ noFacility [0] NULL,
+ facilityDesignation [1] FacilityDesignation
+}
+
+FacilityDesignation ::= IA5String (SIZE (4..8))
+
+FacilityFunction ::= ENUMERATED
+{
+ center (0),
+ approach (1),
+ tower (2),
+ final (3),
+ groundControl (4),
+ clearanceDelivery (5),
+ departure (6),
+ control (7),
+ radio (8),
+ ...
+}
+
+FacilityDesignationAltimeter ::= SEQUENCE
+{
+ facilityDesignation FacilityDesignation,
+ altimeter Altimeter
+}
+
+FacilityDesignationATISCode ::= SEQUENCE
+{
+ facilityDesignation FacilityDesignation,
+ aTISCode ATISCode
+}
+
+FacilityName ::= IA5String (SIZE (3..18))
+
+Fix ::= IA5String (SIZE (1..5))
+
+FixName ::= SEQUENCE
+{
+ name [0] Fix,
+ latlon [1] LatitudeLongitude OPTIONAL
+}
+
+FlightInformation ::= CHOICE
+{
+ routeOfFlight [0] RouteInformation,
+ levelsOfFlight [1] LevelsOfFlight,
+ routeAndLevels [2] RouteAndLevels
+}
+
+FreeText ::= IA5String (SIZE (1..256))
+
+Frequency ::= CHOICE
+{
+ frequencyhf [0] Frequencyhf,
+ frequencyvhf [1] Frequencyvhf,
+ frequencyuhf [2] Frequencyuhf,
+ frequencysatchannel [3] Frequencysatchannel
+}
+
+Frequencyhf ::= INTEGER (2850..28000)
+-- unit = Kilohertz, Range (2850..28000), resolution = 1
+
+Frequencysatchannel ::= NumericString (SIZE (12))
+-- Frequencysatchannel corresponds to a 12 digit telephone number
+
+Frequencyuhf ::= INTEGER (9000..15999)
+-- unit = Megahertz, Range (225.000..399.975), resolution = 0.025
+
+Frequencyvhf ::= INTEGER (23600..27398)
+-- unit = Megahertz, Range (118.000..136.990), resolution = 0.005
+
+FurtherInstructions ::= SEQUENCE
+{
+ code [0] Code OPTIONAL,
+ frequencyDeparture [1] UnitNameFrequency OPTIONAL,
+ clearanceExpiryTime [2] Time OPTIONAL,
+ airportDeparture [3] Airport OPTIONAL,
+ airportDestination [4] Airport OPTIONAL,
+ timeDeparture [5] TimeDeparture OPTIONAL,
+ runwayDeparture [6] Runway OPTIONAL,
+ revisionNumber [7] RevisionNumber OPTIONAL,
+ aTISCode [8] ATISCode OPTIONAL
+}
+
+
+Holdatwaypoint ::= SEQUENCE
+{
+ position [0] Position,
+ holdatwaypointspeedlow [1] Speed OPTIONAL,
+ aTWlevel [2] ATWLevel OPTIONAL,
+ holdatwaypointspeedhigh [3] Speed OPTIONAL,
+ direction [4] Direction OPTIONAL,
+ degrees [5] Degrees OPTIONAL,
+ eFCtime [6] Time OPTIONAL,
+ legtype [7] LegType OPTIONAL
+}
+
+HoldClearance ::= SEQUENCE
+{
+ position [0] Position,
+ level [1] Level,
+ degrees [2] Degrees,
+ direction [3] Direction,
+ legType [4] LegType OPTIONAL
+}
+
+
+Humidity ::= INTEGER (0..100)
+-- unit = Percent humidity, Range (0..100), resolution = 1
+
+InterceptCourseFrom ::= SEQUENCE
+{
+ fromSelection InterceptCourseFromSelection,
+ degrees Degrees
+}
+
+InterceptCourseFromSelection ::= CHOICE
+{
+ publishedIdentifier [0] PublishedIdentifier,
+ latitudeLongitude [1] LatitudeLongitude,
+ placeBearingPlaceBearing [2] PlaceBearingPlaceBearing,
+ placeBearingDistance [3] PlaceBearingDistance
+}
+
+Icing ::= ENUMERATED
+{
+ reserved (0),
+ light (1),
+ moderate (2),
+ severe (3)
+}
+
+
+Latitude ::= SEQUENCE
+{
+ latitudeType LatitudeType,
+ latitudeDirection LatitudeDirection
+}
+
+LatitudeDegrees ::= INTEGER (0..90000)
+-- unit = Degree, Range (0..90), resolution = 0.001
+
+LatitudeDegreesMinutes ::= SEQUENCE
+{
+ latitudeWholeDegrees LatitudeWholeDegrees,
+ minutesLatLon MinutesLatLon
+}
+
+LatitudeDegreesMinutesSeconds ::= SEQUENCE
+{
+ latitudeWholeDegrees LatitudeWholeDegrees,
+ latlonWholeMinutes LatLonWholeMinutes,
+ secondsLatLon SecondsLatLon
+}
+
+LatitudeDirection ::= ENUMERATED
+{
+ north (0),
+ south (1)
+}
+
+LatitudeWholeDegrees ::= INTEGER (0..89)
+-- unit = Degree, Range (0..89), resolution = 1
+
+LatitudeLongitude ::= SEQUENCE
+{
+ latitude [0] Latitude OPTIONAL,
+ longitude [1] Longitude OPTIONAL
+}
+
+LatitudeReportingPoints ::= SEQUENCE
+{
+ latitudeDirection LatitudeDirection,
+ latitudeDegrees LatitudeDegrees
+}
+
+LatitudeType ::= CHOICE
+{
+ latitudeDegrees [0] LatitudeDegrees,
+ latitudeDegreesMinutes [1] LatitudeDegreesMinutes,
+ latitudeDMS [2] LatitudeDegreesMinutesSeconds
+}
+
+LatLonWholeMinutes ::= INTEGER (0..59)
+-- unit = Minute, Range (0..59), resolution = 1
+
+LatLonReportingPoints ::= CHOICE
+{
+ latitudeReportingPoints [0] LatitudeReportingPoints,
+ longitudeReportingPoints [1] LongitudeReportingPoints
+}
+
+LegDistance ::= CHOICE
+{
+ legDistanceEnglish [0] LegDistanceEnglish,
+ legDistanceMetric [1] LegDistanceMetric
+}
+
+LegDistanceEnglish ::= INTEGER (0..50)
+-- unit = Nautical Mile, Range (0..50), resolution = 1
+
+LegDistanceMetric ::= INTEGER (1..128)
+-- unit = Kilometer, Range (1..128), resolution = 1
+
+LegTime ::= INTEGER (0..10)
+--unit = Minute, Range (0..10), resolution = 1
+
+LegType ::= CHOICE
+{
+ legDistance [0] LegDistance,
+ legTime [1] LegTime
+}
+
+Level ::= CHOICE
+{
+ singleLevel [0] LevelType,
+ blockLevel [1] SEQUENCE SIZE (2) OF LevelType
+}
+
+LevelFeet ::= INTEGER (-60..7000)
+--unit = Feet, Range (-600..70000), resolution = 10
+
+LevelFlightLevel ::= INTEGER (30..700)
+--unit = Level (100 Feet), Range (030..700), resolution = 1
+
+LevelFlightLevelMetric ::= INTEGER (100..2500)
+--unit = Level (10 Meters), Range (100..2500), resolution = 1
+LevelLevel ::= SEQUENCE SIZE (2) OF Level
+LevelMeters ::= INTEGER (-30..25000)
+--unit = Meter, Range (-30..25000), resolution = 1
+
+LevelPosition ::= SEQUENCE
+{
+ level Level,
+ position Position
+}
+
+LevelProcedureName ::= SEQUENCE
+{
+ level Level,
+ procedureName ProcedureName
+}
+
+LevelsOfFlight ::= CHOICE
+{
+ level [0] Level,
+ procedureName [1] ProcedureName,
+ levelProcedureName [2] LevelProcedureName
+}
+
+LevelSpeed ::= SEQUENCE
+{
+ level Level,
+ speed SpeedSpeed
+}
+
+LevelSpeedSpeed ::= SEQUENCE
+{
+ level Level,
+ speeds SpeedSpeed
+}
+
+LevelTime ::= SEQUENCE
+{
+ level Level,
+ time Time
+}
+
+LevelType ::= CHOICE
+{
+ levelFeet [0] LevelFeet,
+ levelMeters [1] LevelMeters,
+ levelFlightLevel [2] LevelFlightLevel,
+ levelFlightLevelMetric [3] LevelFlightLevelMetric
+}
+
+Longitude ::= SEQUENCE
+{
+ longitudeType LongitudeType,
+ longitudeDirection LongitudeDirection
+}
+
+LongitudeDegrees ::= INTEGER (0..180000)
+--unit = Degree, Range (0..180), resolution = 0.001
+
+LongitudeDegreesMinutes ::= SEQUENCE
+{
+ longitudeWholeDegrees LongitudeWholeDegrees,
+ minutesLatLon MinutesLatLon
+}
+
+LongitudeDegreesMinutesSeconds ::= SEQUENCE
+{
+ longitudeWholeDegrees LongitudeWholeDegrees,
+ latLonWholeMinutes LatLonWholeMinutes,
+ secondsLatLon SecondsLatLon
+}
+
+LongitudeDirection ::= ENUMERATED
+{
+ east (0),
+ west (1)
+}
+
+LongitudeWholeDegrees ::= INTEGER (0..179)
+-- unit = Degree, Range (0..179), resolution = 1
+
+LongitudeReportingPoints ::= SEQUENCE
+{
+ longitudeDirection LongitudeDirection,
+ longitudeDegrees LongitudeDegrees
+}
+
+LongitudeType ::= CHOICE
+{
+ longitudeDegrees [0] LongitudeDegrees,
+ longitudeDegreesMinutes [1] LongitudeDegreesMinutes,
+ longitudeDMS [2] LongitudeDegreesMinutesSeconds
+}
+
+MinutesLatLon ::= INTEGER (0..5999)
+--unit = Minute, Range (0..59.99), resolution = 0.01
+
+Month ::= INTEGER (1..12)
+--unit = 1 Month, Range (1..12), resolution = 1
+
+Navaid ::= SEQUENCE
+{
+ name [0] NavaidName,
+ latlon [1] LatitudeLongitude OPTIONAL
+}
+
+NavaidName ::= IA5String (SIZE (1..4))
+
+PersonsOnBoard ::= INTEGER (1..1024)
+
+PlaceBearing ::= SEQUENCE
+{
+ publishedIdentifier PublishedIdentifier,
+ degrees Degrees
+}
+
+PlaceBearingDistance ::= SEQUENCE
+{
+ publishedIdentifier PublishedIdentifier,
+ degrees Degrees,
+ distance Distance
+}
+
+PlaceBearingPlaceBearing ::= SEQUENCE SIZE (2) OF PlaceBearing
+
+Position ::= CHOICE
+{
+ fixName [0] FixName,
+ navaid [1] Navaid,
+ airport [2] Airport,
+ latitudeLongitude [3] LatitudeLongitude,
+ placeBearingDistance [4] PlaceBearingDistance
+}
+
+PositionDegrees ::= SEQUENCE
+{
+ position Position,
+ degrees Degrees
+}
+
+
+PositionDistanceSpecifiedDirection ::= SEQUENCE
+{
+ position Position,
+ distanceSpecifiedDirection DistanceSpecifiedDirection
+}
+
+PositionLevel ::= SEQUENCE
+{
+ position Position,
+ level Level
+}
+
+PositionLevelLevel ::= SEQUENCE
+{
+ position Position,
+ levels LevelLevel
+}
+
+PositionLevelSpeed ::= SEQUENCE
+{
+ positionlevel PositionLevel,
+ speed Speed
+}
+
+PositionPosition ::= SEQUENCE SIZE (2) OF Position
+
+PositionProcedureName ::= SEQUENCE
+{
+ position Position,
+ procedureName ProcedureName
+}
+
+PositionReport ::= SEQUENCE
+{
+ positioncurrent [0] Position,
+ timeatpositioncurrent [1] Time,
+ level [2] Level,
+ fixnext [3] Position OPTIONAL,
+ timeetaatfixnext [4] Time OPTIONAL,
+ fixnextplusone [5] Position OPTIONAL,
+ timeetaatdestination [6] Time OPTIONAL,
+ remainingFuel [7] RemainingFuel OPTIONAL,
+ temperature [8] Temperature OPTIONAL,
+ winds [9] Winds OPTIONAL,
+ turbulence [10] Turbulence OPTIONAL,
+ icing [11] Icing OPTIONAL,
+ speed [12] Speed OPTIONAL,
+ speedground [13] SpeedGround OPTIONAL,
+ verticalChange [14] VerticalChange OPTIONAL,
+ trackAngle [15] Degrees OPTIONAL,
+ heading [16] Degrees OPTIONAL,
+ distance [17] Distance OPTIONAL,
+ humidity [18] Humidity OPTIONAL,
+ reportedWaypointPosition[19] Position OPTIONAL,
+ reportedWaypointTime [20] Time OPTIONAL,
+ reportedWaypointLevel [21] Level OPTIONAL
+}
+
+PositionRouteClearanceIndex ::= SEQUENCE
+{
+ position Position,
+ routeClearanceIndex RouteClearanceIndex
+}
+
+PositionSpeed ::= SEQUENCE
+{
+ position Position,
+ speed Speed
+}
+
+PositionSpeedSpeed ::= SEQUENCE
+{
+ position Position,
+ speeds SpeedSpeed
+}
+
+PositionTime ::= SEQUENCE
+{
+ position Position,
+ time Time
+}
+
+PositionTimeLevel ::= SEQUENCE
+{
+ positionTime PositionTime,
+ level Level
+}
+
+PositionTimeTime ::= SEQUENCE
+{
+ position Position,
+ times TimeTime
+}
+
+PositionUnitNameFrequency ::= SEQUENCE
+{
+ position Position,
+ unitname UnitName,
+ frequency Frequency
+}
+
+Procedure ::= IA5String (SIZE (1..20))
+
+ProcedureName ::= SEQUENCE
+{
+ type [0] ProcedureType,
+ procedure [1] Procedure,
+ transition [2] ProcedureTransition OPTIONAL
+}
+
+ProcedureTransition ::= IA5String (SIZE (1..5))
+
+ProcedureType ::= ENUMERATED
+{
+ arrival (0),
+ approach (1),
+ departure (2)
+}
+
+PublishedIdentifier ::= CHOICE
+{
+ fixName [0] FixName,
+ navaid [1] Navaid
+}
+
+RemainingFuel ::= Time
+
+RemainingFuelPersonsOnBoard ::= SEQUENCE
+{
+ remainingFuel RemainingFuel,
+ personsOnBoard PersonsOnBoard
+}
+
+ReportingPoints ::= SEQUENCE
+{
+ latLonReportingPoints [0] LatLonReportingPoints,
+ degreeIncrement [1] DegreeIncrement OPTIONAL
+}
+
+RevisionNumber ::= INTEGER (1..16)
+
+RouteAndLevels ::= SEQUENCE
+{
+ routeOfFlight RouteInformation,
+ levelsOfFlight LevelsOfFlight
+}
+
+RouteClearance ::= SEQUENCE
+{
+ airportDeparture [0] Airport OPTIONAL,
+ airportDestination [1] Airport OPTIONAL,
+ runwayDeparture [2] Runway OPTIONAL,
+ procedureDeparture [3] ProcedureName OPTIONAL,
+ runwayArrival [4] Runway OPTIONAL,
+ procedureApproach [5] ProcedureName OPTIONAL,
+ procedureArrival [6] ProcedureName OPTIONAL,
+ routeInformations [7] SEQUENCE SIZE (1..128) OF RouteInformation OPTIONAL,
+ routeInformationAdditional [8] RouteInformationAdditional OPTIONAL
+}
+
+RouteClearanceIndex ::= INTEGER (1..2)
+-- RouteClearanceIndex identifies the position of the RouteClearance data
+-- in the ASN.1 type for
+-- ATC UplinkMessage, constrained Data, routeClearance Data
+-- ATC DownlinkMessage, constrained Data, routeClearance Data
+
+RouteInformation ::= CHOICE
+{
+ publishedIdentifier [0] PublishedIdentifier,
+ latitudeLongitude [1] LatitudeLongitude,
+ placeBearingPlaceBearing [2] PlaceBearingPlaceBearing,
+ placeBearingDistance [3] PlaceBearingDistance,
+ aTSRouteDesignator [4] ATSRouteDesignator
+}
+
+
+RouteInformationAdditional ::= SEQUENCE
+{
+ aTWAlongTrackWaypoints [0] SEQUENCE SIZE (1..8) OF ATWAlongTrackWaypoint OPTIONAL,
+ reportingpoints [1] ReportingPoints OPTIONAL,
+ interceptCourseFroms [2] SEQUENCE SIZE (1..4) OF InterceptCourseFrom OPTIONAL,
+ holdAtWaypoints [3] SEQUENCE SIZE (1..8) OF Holdatwaypoint OPTIONAL,
+ waypointSpeedLevels [4] SEQUENCE SIZE (1..32) OF WaypointSpeedLevel OPTIONAL,
+ rTARequiredTimeArrivals [5] SEQUENCE SIZE (1..32) OF RTARequiredTimeArrival OPTIONAL
+}
+
+RTARequiredTimeArrival ::= SEQUENCE
+{
+ position [0] Position,
+ rTATime [1] RTATime,
+ rTATolerance [2] RTATolerance OPTIONAL
+}
+
+RTATime ::= SEQUENCE
+{
+ time Time,
+ timeTolerance TimeTolerance
+}
+
+RTATolerance ::= INTEGER (1..150)
+--unit= Minute, Range (0.1..15.0), resolution = 0.1
+
+Runway ::= SEQUENCE
+{
+ direction RunwayDirection,
+ configuration RunwayConfiguration
+}
+
+RunwayDirection ::= INTEGER (1..36)
+
+RunwayConfiguration ::= ENUMERATED
+{
+ left (0),
+ right (1),
+ center (2),
+ none (3)
+}
+
+RunwayRVR ::= SEQUENCE
+{
+ runway Runway,
+ rVR RVR
+}
+
+RVR ::= CHOICE
+{
+ rVRFeet [0] RVRFeet,
+ rVRMeters [1] RVRMeters
+}
+
+RVRFeet ::= INTEGER (0..6100)
+-- unit = Feet, Range (0..6100), resolution = 1
+
+RVRMeters ::= INTEGER (0..1500)
+-- unit = Meters (0..1500), resolution = 1
+
+SecondsLatLon ::= INTEGER (0..59)
+--unit = Second, Range (0.. 59), resolution = 1
+
+Speed ::= CHOICE
+{
+ speedIndicated [0] SpeedIndicated,
+ speedIndicatedMetric [1] SpeedIndicatedMetric,
+ speedTrue [2] SpeedTrue,
+ speedTrueMetric [3] SpeedTrueMetric,
+ speedGround [4] SpeedGround,
+ speedGroundMetric [5] SpeedGroundMetric,
+ speedMach [6] SpeedMach
+}
+
+SpeedIndicated ::= INTEGER (0..400)
+-- unit = Knots, Range (0..400), resolution = 1
+
+SpeedIndicatedMetric ::= INTEGER (0..800)
+-- unit = Kilometers/Hour, Range (0..800), resolution = 1
+
+SpeedGround ::= INTEGER (-50..2000)
+-- unit = Knots, Range (-50..2000), resolution = 1
+
+SpeedGroundMetric ::= INTEGER (-100..4000)
+-- unit = Kilometers/Hour, Range (-100..4000), resolution = 1
+
+SpeedMach ::= INTEGER (500..4000)
+-- unit = Mach Range (0.5 to 4.0), resolution = 0.001
+
+SpeedSpeed ::= SEQUENCE SIZE (2) OF Speed
+SpeedTime ::= SEQUENCE
+{
+ speed Speed,
+ time Time
+}
+
+SpeedTrue ::= INTEGER (0..2000)
+-- unit = Knots, Range (0..2000), resolution = 1
+
+SpeedTrueMetric ::= INTEGER (0..4000)
+-- unit = Kilometers/Hour, Range (0..4000), resolution = 1
+
+SpeedType ::= ENUMERATED
+{
+ noneSpecified (0),
+ indicated (1),
+ true (2),
+ ground (3),
+ mach (4),
+ approach (5),
+ cruise (6),
+ minimum (7),
+ maximum (8),
+ ...
+}
+
+SpeedTypeSpeedTypeSpeedType ::= SEQUENCE SIZE (3) OF SpeedType
+
+SpeedTypeSpeedTypeSpeedTypeSpeed ::= SEQUENCE
+{
+ speedTypes SpeedTypeSpeedTypeSpeedType,
+ speed Speed
+}
+
+Temperature ::= INTEGER (-100..100)
+-- unit = Degree Celsius, Range (-100..100), resolution = 1
+
+Time ::= SEQUENCE
+{
+ hours TimeHours,
+ minutes TimeMinutes
+}
+
+TimeLevel ::= SEQUENCE
+{
+ time Time,
+ level Level
+}
+
+TimeDeparture ::= SEQUENCE
+{
+ timeDepartureAllocated [0] Time OPTIONAL,
+ timeDepartureControlled [1] ControlledTime OPTIONAL,
+ timeDepartureClearanceExpected [2] Time OPTIONAL,
+ departureMinimumInterval [3] DepartureMinimumInterval OPTIONAL
+}
+
+
+TimeDistanceSpecifiedDirection ::= SEQUENCE
+{
+ time Time,
+ distanceSpecifiedDirection DistanceSpecifiedDirection
+}
+
+TimeDistanceToFromPosition ::= SEQUENCE
+{
+ time Time,
+ distance Distance,
+ tofrom ToFrom,
+ position Position
+}
+
+Timehhmmss ::= SEQUENCE
+{
+ hoursminutes Time,
+ seconds TimeSeconds
+}
+
+TimeHours ::= INTEGER (0..23)
+-- unit = Hour, Range (0..23), resolution = 1
+
+TimeUnitNameFrequency ::= SEQUENCE
+{
+ time Time,
+ unitName UnitName,
+ frequency Frequency
+}
+
+TimeMinutes ::= INTEGER (0..59)
+-- unit = Minute, Range (0..59), resolution = 1
+
+TimePosition ::= SEQUENCE
+{
+ time Time,
+ position Position
+}
+
+TimePositionLevel ::= SEQUENCE
+{
+ timeposition TimePosition,
+ level Level
+}
+
+TimePositionLevelSpeed ::= SEQUENCE
+{
+ timeposition TimePosition,
+ levelspeed LevelSpeed
+}
+
+TimeSeconds ::= INTEGER (0..59)
+-- unit = Second, Range (0..59), resolution = 1
+
+TimeSpeed ::= SEQUENCE
+{
+ time Time,
+ speed Speed
+}
+
+TimeSpeedSpeed ::= SEQUENCE
+{
+ time Time,
+ speedspeed SpeedSpeed
+}
+
+TimeTime ::= SEQUENCE SIZE (2) OF Time
+
+TimeToFromPosition ::= SEQUENCE
+{
+ time Time,
+ tofrom ToFrom,
+ position Position
+}
+TimeTolerance ::= ENUMERATED
+{
+ at (0),
+ atorafter (1),
+ atorbefore(2)
+}
+
+ToFrom ::= ENUMERATED
+{
+ to (0),
+ from (1)
+}
+
+ToFromPosition ::= SEQUENCE
+{
+ toFrom ToFrom,
+ position Position
+}
+
+TrafficType ::= ENUMERATED
+{
+ noneSpecified (0),
+ oppositeDirection (1),
+ sameDirection (2),
+ converging (3),
+ crossing (4),
+ diverging (5),
+ ...
+}
+
+Turbulence ::= ENUMERATED
+{
+ light (0),
+ moderate (1),
+ severe (2)
+}
+
+UnitName ::= SEQUENCE
+{
+ facilityDesignation [0] FacilityDesignation,
+ facilityName [1] FacilityName OPTIONAL,
+ facilityFunction [2] FacilityFunction
+}
+
+UnitNameFrequency ::= SEQUENCE
+{
+ unitName UnitName,
+ frequency Frequency
+}
+
+VersionNumber ::= INTEGER (0..15)
+
+VerticalChange ::= SEQUENCE
+{
+ direction VerticalDirection,
+ rate VerticalRate
+}
+
+VerticalDirection ::= ENUMERATED
+{
+ up (0),
+ down (1)
+}
+
+VerticalRate ::= CHOICE
+{
+ verticalRateEnglish [0] VerticalRateEnglish,
+ verticalRateMetric [1] VerticalRateMetric
+}
+
+VerticalRateEnglish ::= INTEGER (0..3000)
+-- unit = Feet/Minute, Range (0..30000), resolution = 10
+
+VerticalRateMetric ::= INTEGER (0..1000)
+-- unit = Meters/Minute, Range (0..10000), resolution = 10
+
+WaypointSpeedLevel ::= SEQUENCE
+{
+ position [0] Position,
+ speed [1] Speed OPTIONAL,
+ aTWLevels [2] ATWLevelSequence OPTIONAL
+}
+
+WindDirection ::= INTEGER (1..360)
+-- unit = Degree, Range (1..360), resolution = 1
+
+Winds ::= SEQUENCE
+{
+ direction WindDirection,
+ speed WindSpeed
+}
+
+WindSpeed ::= CHOICE
+{
+ windSpeedEnglish [0] WindSpeedEnglish,
+ windSpeedMetric [1] WindSpeedMetric
+}
+
+WindSpeedEnglish ::= INTEGER (0..255)
+-- unit = Knot, Range (0..255), resolution = 1
+
+WindSpeedMetric ::= INTEGER (0..511)
+-- unit = Kilometer/Hour, Range (0..511), resolution = 1
+
+Year ::= INTEGER (1996..2095)
+-- unit = Year, Range (1996..2095), resolution = 1
+
+END
+
+
+--
+-- Editor modelines - http://www.wireshark.org/tools/modelines.html
+--
+-- Local variables:
+-- c-basic-offset: 4
+-- tab-width: 8
+-- indent-tabs-mode: nil
+-- End:
+--
+-- vi: set shiftwidth=4 tabstop=8 expandtab:
+-- :indentSize=4:tabSize=8:noTabs=true:
+--
diff --git a/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf b/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf
new file mode 100644
index 0000000000..ac10fbcf6a
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf
@@ -0,0 +1,134 @@
+#.MODULE_IMPORT
+#.END
+
+#.EXPORTS
+#.END
+
+#.OMIT_ASSIGNMENT
+#.END
+
+#.PDU
+ AircraftPDUs
+ GroundPDUs
+ ProtectedAircraftPDUs
+ ProtectedGroundPDUs
+#.END
+
+
+#.FIELD_RENAME
+AircraftPDUs/send aircraftpdus_send
+GroundPDUs/send groundpdus_send
+ATCUplinkMessageData/constrainedData atcuplinkmessagedata_constraineddata
+ATCDownlinkMessageData/constrainedData atcdownlinkmessagedata_constraineddata
+ATCDownlinkMessageData/elementIds/_item atcdownlinkmessagedata_elementids_item
+ATCUplinkMessageData/elementIds/_item atcuplinkmessagedata_elementids_item
+ATCDownlinkMessageData/elementIds atcdownlinkmessagedata_elementids
+ATCUplinkMessageData/elementIds atcuplinkmessagedata_elementids
+ATCUplinkMessage/messageData atcuplinkmessage_messagedata
+ATCDownlinkMessage/messageData atcdownlinkmessage_messagedata
+Runway/direction runway_direction
+Winds/direction winds_direction
+DirectionDegrees/direction direction
+DistanceSpecifiedDirection/direction direction
+Holdatwaypoint/direction direction
+HoldClearance/direction direction
+VerticalChange/direction vertical_direction
+FixName/name fixname_name
+Navaid/name navaid_name
+Winds/speed winds_speed
+LevelSpeed/speed levelspeed_speed
+ProtectedGroundPDUs/abortProvider pmcpdlcproviderabortreason
+ProtectedAircraftPDUs/abortProvider pmcpdlcproviderabortreason
+ProtectedGroundPDUs/abortUser pmcpdlcuserabortreason
+ProtectedAircraftPDUs/abortUser pmcpdlcuserabortreason
+ProtectedStartDownMessage/mode protectedmode
+ProtectedGroundPDUs/send protecteduplinkmessage
+ProtectedStartDownMessage/startDownlinkMessage protecteddownlinkmessage
+ProtectedGroundPDUs/startup protecteduplinkmessage
+ProtectedAircraftPDUs/startdown protectedstartDownmessage
+#.END
+
+
+#.FN_BODY CPDLCMessage
+ tvbuff_t *tvb_usr = NULL;
+
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, &tvb_usr, NULL);
+
+ if (tvb_usr) {
+ switch(check_heur_msg_type(actx->pinfo)){
+ case dm:
+ dissect_atn_cpdlc_ATCDownlinkMessage(tvb_new_subset_remaining(tvb_usr, 0), 0, actx, tree, hf_index);
+ break;
+ case um:
+ dissect_atn_cpdlc_ATCUplinkMessage(tvb_new_subset_remaining(tvb_usr, 0), 0, actx , tree, hf_index);
+ break;
+ default:
+ break;
+ }
+ }
+
+#.END
+
+#.FN_BODY AlgorithmIdentifier
+ proto_tree *top_tree=NULL;
+
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, top_tree, NULL);
+
+#.END
+
+#.FN_BODY AircraftFlightIdentification
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,2, 8, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY Airport
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,4, 4, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY FacilityDesignation
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,4, 8, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY FreeText
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 256, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY NavaidName
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 4, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY Procedure
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 20, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY ProcedureTransition
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 5, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY Fix
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 5, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY ATISCode
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 1, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY ATSRouteDesignator
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,2, 7, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#.FN_BODY FacilityName
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,3, 18, FALSE, ia5alpha , 127, NULL);
+#.END
+
+#
+# Editor modelines - http://www.wireshark.org/tools/modelines.html
+#
+# Local variables:
+# c-basic-offset: 4
+# tab-width: 8
+# indent-tabs-mode: nil
+# End:
+#
+# vi: set shiftwidth=4 tabstop=8 expandtab:
+# :indentSize=4:tabSize=8:noTabs=true:
+#
diff --git a/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c b/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c
new file mode 100644
index 0000000000..500dd3d511
--- /dev/null
+++ b/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c
@@ -0,0 +1,367 @@
+/* packet-atn-cpdlc-template.c
+ * By Mathias Guettler <guettler@web.de>
+ * Copyright 2013
+ *
+ * Routines for ATN Cpdlcc protocol packet disassembly
+
+ * details see:
+ * http://en.wikipedia.org/wiki/CPDLC
+ * http://members.optusnet.com.au/~cjr/introduction.htm
+
+ * standards:
+ * http://legacy.icao.int/anb/panels/acp/repository.cfm
+
+ * note:
+ * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Ed2 here
+ * (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
+
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+/*
+ developper comments:
+ Which CPDLC messages are supported ?
+ Protected Mode CPDLC (AeQualifier 22) and Plain Old CPDLC (AeQualifier 2)
+ The dissector has been tested with ICAO doc9705 Edition2 compliant traffic.
+*/
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/conversation.h>
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-atn-ulcs.h"
+
+#define ATN_CPDLC_PROTO "ICAO Doc9705 CPDLC"
+
+void proto_register_atn_cpdlc(void);
+void proto_reg_handoff_atn_cpdlc(void);
+
+static const char *object_identifier_id;
+
+/* IA5 charset (7-bit) for PER IA5 decoding */
+static const gchar ia5alpha[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, \
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, \
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, \
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, \
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, \
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, \
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, \
+ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, \
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, '\0'
+};
+
+/* forward declarations */
+static int dissect_GroundPDUs_PDU(
+ tvbuff_t *tvb _U_,
+ packet_info *pinfo _U_,
+ proto_tree *tree _U_,
+ void *data _U_);
+static int dissect_AircraftPDUs_PDU(
+ tvbuff_t *tvb _U_,
+ packet_info *pinfo _U_,
+ proto_tree *tree _U_,
+ void *data _U_);
+static int dissect_ProtectedGroundPDUs_PDU(
+ tvbuff_t *tvb _U_,
+ packet_info *pinfo _U_,
+ proto_tree *tree _U_,
+ void *data _U_);
+static int dissect_ProtectedAircraftPDUs_PDU(
+ tvbuff_t *tvb _U_,
+ packet_info *pinfo _U_,
+ proto_tree *tree _U_,
+ void *data _U_);
+
+#include "packet-atn-cpdlc-hf.c"
+
+#include "packet-atn-cpdlc-ett.c"
+static gint ett_atn_cpdlc = -1;
+
+#include "packet-atn-cpdlc-fn.c"
+
+/* Wireshark ID of CPDLC protocol */
+static int proto_atn_cpdlc = -1;
+
+
+static int
+dissect_atn_cpdlc(
+ tvbuff_t *tvb,
+ packet_info *pinfo,
+ proto_tree *tree,
+ void *data _U_)
+{
+ /* note: */
+ /* there are two co-existing applications of CPDLC: */
+ /* "plain old" (ae-qualifier 2) and */
+ /* "protected mode" (ae-qualifier 22) CPDLC. */
+ /* "protected mode" was introduced to cope with a */
+ /* safety issue in which a message would sent to the wrong aircraft. */
+
+ /* note:*/
+ /* The protection is an additional checksum and covers the message content, */
+ /* the 24-bit address of the aircraft, the current flight id and */
+ /* the current ground facility so that an aircraft would be able to reject */
+ /* messages which are unexpected (i.e. messages to another flight or */
+ /* messages from the wrong center). */
+
+ /*note:*/
+ /* although "plain old" CPDLC is more or less deprecated */
+ /* many aircraft cannot perform */
+ /* "protected mode" for this largely depends on */
+ /* upgraded avionics packages */
+
+ /*note:*/
+ /* The use of CPDLC is *optional* as the pilot */
+ /* may always use a voice radio channel to talk to the controller.*/
+
+ proto_tree *atn_cpdlc_tree = NULL;
+ atn_conversation_t *atn_cv = NULL;
+
+ /* note: */
+ /* we need the ae qualifier stored within the conversation */
+ /* to decode "plain old cpdlc" or */
+ /* "protected mode cpdlc correctly " */
+
+ /* DT: dstref present, srcref is always zero */
+ if((pinfo->clnp_dstref) && (!pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(
+ &pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src );
+ }
+ /* CR: srcref present, dstref is always zero */
+ if((!pinfo->clnp_dstref) && (pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(
+ &pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst );
+ }
+ /* CC: srcref and dstref present, always use src/srcref & dst */
+ if((pinfo->clnp_dstref) && (pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(
+ &pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst );
+ }
+
+ if(!atn_cv){ /* atn conversation not found */
+ return 0; }
+
+ atn_cpdlc_tree = proto_tree_add_subtree(
+ tree, tvb, 0, -1, ett_atn_cpdlc, NULL,
+ ATN_CPDLC_PROTO );
+
+ switch(atn_cv->ae_qualifier){
+ case pmcpdlc:
+ if( check_heur_msg_type(pinfo) == um ) {
+ /* uplink PDU's = Ground PDU's */
+ dissect_ProtectedGroundPDUs_PDU(
+ tvb,
+ pinfo,
+ atn_cpdlc_tree, NULL);
+ }else { /* downlink PDU's = Aircraft PDU's */
+ dissect_ProtectedAircraftPDUs_PDU(
+ tvb,
+ pinfo,
+ atn_cpdlc_tree, NULL);
+ }
+ break;
+ case cpdlc:
+ if( check_heur_msg_type(pinfo) == um ) {
+ /* uplink PDU's = Ground PDU's */
+ dissect_GroundPDUs_PDU(
+ tvb,
+ pinfo,
+ atn_cpdlc_tree, NULL);
+ }else { /* downlink PDU's = Aircraft PDU's */
+ dissect_AircraftPDUs_PDU(
+ tvb,
+ pinfo,
+ atn_cpdlc_tree, NULL);
+ }
+ break;
+ default:
+ break;
+ }
+ return tvb_reported_length_remaining(tvb, 0);
+}
+
+static gboolean
+dissect_atn_cpdlc_heur(
+ tvbuff_t *tvb,
+ packet_info *pinfo,
+ proto_tree *tree,
+ void *data _U_)
+{
+ atn_conversation_t *volatile atn_cv = NULL;
+ volatile gboolean is_atn_cpdlc = FALSE;
+ volatile gboolean is_pm = FALSE;
+ int type;
+
+ type = check_heur_msg_type(pinfo);
+
+ switch(type){
+ case um:
+ TRY {
+ dissect_ProtectedGroundPDUs_PDU(tvb, pinfo, NULL, NULL);
+ is_atn_cpdlc = TRUE;
+ is_pm = TRUE;}
+ CATCH_ALL{
+ is_atn_cpdlc = FALSE;
+ is_pm = FALSE;}
+ ENDTRY;
+ if (is_atn_cpdlc) {
+ break;
+ }
+ TRY {
+ dissect_GroundPDUs_PDU(tvb, pinfo, NULL, NULL);
+ is_pm = FALSE;
+ is_atn_cpdlc = TRUE;}
+ CATCH_ALL{
+ is_atn_cpdlc = FALSE;
+ is_pm = FALSE;}
+ ENDTRY;
+ break;
+ case dm:
+ TRY {
+ dissect_ProtectedAircraftPDUs_PDU(tvb, pinfo, NULL, NULL);
+ is_atn_cpdlc = TRUE;
+ is_pm = TRUE;}
+ CATCH_ALL {
+ is_atn_cpdlc = FALSE;
+ is_pm = FALSE; }
+ ENDTRY;
+ if (is_atn_cpdlc) {
+ break;
+ }
+ TRY{
+ dissect_AircraftPDUs_PDU(tvb, pinfo, NULL, NULL);
+ is_atn_cpdlc = TRUE;
+ is_pm = FALSE;}
+ CATCH_ALL{
+ is_atn_cpdlc = FALSE;
+ is_pm = FALSE;}
+ ENDTRY;
+ break;
+ default:
+ break;
+ }
+
+ if(is_atn_cpdlc){
+ /* note: */
+ /* all subsequent PDU's belonging to this conversation */
+ /* are considered CPDLC */
+ /* if the first CPDLC PDU has been decoded successfully */
+ /* (This is done in "atn-ulcs" by using "call_dissector_with_data()") */
+
+ /* DT: dstref present, srcref is always zero */
+ if((pinfo->clnp_dstref) && (!pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(&pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src );
+ }
+ /* CR: srcref present, dstref is always zero */
+ if((!pinfo->clnp_dstref) && (pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(&pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst );
+ }
+ /* CC: srcref and dstref present, always use src/srcref & dst */
+ if((pinfo->clnp_dstref) && (pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(&pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst );
+ }
+
+ if(atn_cv){ /* atn conversation found */
+ if(is_pm == TRUE) {
+ atn_cv->ae_qualifier = pmcpdlc; }
+ else {
+ atn_cv->ae_qualifier = cpdlc; }
+ dissect_atn_cpdlc(tvb, pinfo, tree, NULL);
+ }
+ }else { /* there should *always* be an atn conversation */
+ is_atn_cpdlc = FALSE;
+ }
+
+ return is_atn_cpdlc;
+}
+
+
+
+void proto_register_atn_cpdlc (void)
+{
+ static hf_register_info hf_atn_cpdlc[] = {
+ #include "packet-atn-cpdlc-hfarr.c"
+ };
+
+ static gint *ett[] = {
+ #include "packet-atn-cpdlc-ettarr.c"
+ &ett_atn_cpdlc
+ };
+
+ /* register CPDLC */
+ proto_atn_cpdlc = proto_register_protocol(
+ ATN_CPDLC_PROTO ,
+ "ATN-CPDLC",
+ "atn-cpdlc");
+
+ proto_register_field_array(
+ proto_atn_cpdlc,
+ hf_atn_cpdlc,
+ array_length(hf_atn_cpdlc));
+
+ proto_register_subtree_array(
+ ett,
+ array_length(ett));
+
+ register_dissector(
+ "atn-cpdlc",
+ dissect_atn_cpdlc,
+ proto_atn_cpdlc);
+}
+
+void proto_reg_handoff_atn_cpdlc(void)
+{
+ /* add session dissector to atn dissector list dissector list*/
+ heur_dissector_add(
+ "atn-ulcs",
+ dissect_atn_cpdlc_heur,
+ "ATN-CPDLC over ATN-ULCS",
+ "atn-cpdlc-ulcs",
+ proto_atn_cpdlc, HEURISTIC_ENABLE);
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/atn-ulcs/CMakeLists.txt b/epan/dissectors/asn1/atn-ulcs/CMakeLists.txt
new file mode 100644
index 0000000000..492870a06f
--- /dev/null
+++ b/epan/dissectors/asn1/atn-ulcs/CMakeLists.txt
@@ -0,0 +1,54 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME atn-ulcs )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -u -L )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/atn-ulcs/Makefile.am b/epan/dissectors/asn1/atn-ulcs/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/atn-ulcs/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/atn-ulcs/Makefile.common b/epan/dissectors/asn1/atn-ulcs/Makefile.common
new file mode 100644
index 0000000000..fce3322668
--- /dev/null
+++ b/epan/dissectors/asn1/atn-ulcs/Makefile.common
@@ -0,0 +1,41 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = atn-ulcs
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = $(PROTOCOL_NAME).asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+# default behavoiur ASN1 PER encoding
+A2W_FLAGS= -u -L
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/atn-ulcs/Makefile.nmake b/epan/dissectors/asn1/atn-ulcs/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/atn-ulcs/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/atn-ulcs/atn-ulcs.asn b/epan/dissectors/asn1/atn-ulcs/atn-ulcs.asn
new file mode 100644
index 0000000000..8aad7b97e3
--- /dev/null
+++ b/epan/dissectors/asn1/atn-ulcs/atn-ulcs.asn
@@ -0,0 +1,508 @@
+-- File: atn-ulcs.asn
+-- Sub-Volume IV ASN.1 reference definitions for ICAO Doc. 9705,
+-- Second Edition
+-- Version 1.1, 03 Oct 2001
+
+-- The majority of the ULCS protocol definitions are specified in the ULCS
+-- Technical Provisions by reference to ISO/IEC Standards and/or ITU-T
+-- Recommendations. The ASN.1 definitions are reproduced here for ease of
+-- reference and to allow explanatory annotations to be added. In the case of
+-- any discrepancy between the definitions here and the corresponding
+-- definitions defined in or referenced by the ULCS Technical Provisions,
+-- the latter are assumed to take precedence.
+
+-- The following ASN.1 modules are included here:
+
+-- * General ULCS types. These are ASN.1 definitions used in the ULCS
+-- Technical Provisions, though there is no equivalent ASN.1 module
+-- defined there. The definitions in this module would generally be
+-- incorporated into a wider "user" protocol module if using ASN.1 automated
+-- tools. They are defined in a separate module here so that their syntax can
+-- easily be verified by an ASN.1 syntax checker.
+
+-- * Connection-oriented ACSE definitions. This is equivalent to the "ACSE-1"
+-- module defined in the connection-oriented ACSE protocol standard.
+
+-- * Information Framework. This is an extract of relevant definitions from the
+-- InformationFramework module in the OSI standard "Directory : Models". The
+-- types defined in this module are not actively used in the ULCS protocol, but
+-- they are needed to satisfy IMPORTS statements in the ACSE definitions, and
+-- to allow certain CHOICE types in the ACSE definitions to be sorted correctly
+-- into canonical order.
+
+
+-- Note.- In the following definitions, the ASN.1 comment " X" indicates
+-- choice elements and optional elements in sequence types that are defined as
+-- "Excluded" in the ULCS profile. That is, implementations of ULCS provisions
+-- are never required to encode values for such elements (though they are
+-- required to indicate the absence of these elements in all instances, by means
+-- of bits in the appropriate PER preamble or choice index).
+
+
+-- General ULCS types
+
+ULCS DEFINITIONS ::= BEGIN
+-- ***************************************************************************
+-- The following ASN.1 definitions are from Doc 9705 Sub-Volume IV,
+-- section 4.3.2.6.2
+-- ***************************************************************************
+
+--Presentation User Data is Fully-encoded-data from
+--ISO/IEC 8823-1:1994/Amd.1:1997 | ITU-T Rec. X.226/Amd. 1
+
+--Fully-encoded-data ::= SEQUENCE SIZE (1, ...) OF PDV-list
+Fully-encoded-data ::= SEQUENCE SIZE (1, ..., 2..MAX) OF PDV-list
+-- contains one or more presentation-data-value-list (PDV-list) values
+-- ATN commentary: The SIZE constraint above differs from the referenced
+-- standard, which specifies (in 8.2):
+-- Fully-encoded-data ::= SEQUENCE SIZE (1, ..., 2..MAX) OF PDV-list.
+-- The ULCS provisions specify a simplified, but compatible, efficiency
+-- constraint as there will never be more than one element in the SEQUENCE OF
+-- for the foreseeable future.
+-- This simplifies matters for some compilers.
+
+PDV-list ::= SEQUENCE {
+ transfer-syntax-name Transfer-syntax-name OPTIONAL, -- X
+ presentation-context-identifier Presentation-context-identifier,
+ presentation-data-values CHOICE
+ { single-ASN1-type [0] ABSTRACT-SYNTAX.&Type
+ (CONSTRAINED BY {
+ -- Type corresponding to presentation context identifier -- }) , -- X
+ octet-aligned [1] IMPLICIT OCTET STRING, -- X
+ arbitrary [2] IMPLICIT BIT STRING }
+ -- contains one or more presentation data values from the same
+ -- presentation context.
+ -- ATN Commentary: only the arbitrary BIT STRING encoding choice is used.
+}
+
+Transfer-syntax-name ::= OBJECT IDENTIFIER -- ATN: not used for ATN Upper Layers
+
+Presentation-context-identifier::= INTEGER -- ATN: the following values are
+ -- ATN-specific
+{ acse-apdu (1),
+ reserved (2),
+ user-ase-apdu (3) } (1..127, ... )
+-- ATN commentary: The SIZE constraint above differs from the referenced
+-- standard, which specifies (in 8.2):
+-- Presentation-context-identifier::= INTEGER (1..127, ..., 128..MAX ).
+-- The ULCS provisions specify a simplified, but compatible, efficiency
+-- constraint as there will never be more than 127 presentation contexts in
+-- ATN for the foreseeable future.
+-- This simplifies matters for some compilers. The list of defined values is
+-- shown here for guidance only, and has no effect on the PER encoding.
+
+
+END -- of ULCS definitions
+
+-- Connection-oriented ACSE definitions
+--*************************************************************************
+-- The ACSE abstract syntax from ISO/IEC 8650-1/Amd.1 | ITU-T Rec. X.227/
+-- Amd. 1 is reproduced here for ease of reference. In case of any discrepancy,
+-- the ISO/IEC standard takes precedence.
+--*************************************************************************
+
+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, (ATN: AE-title is not needed)
+ AP-invocation-identifier,
+ AE-invocation-identifier, Mechanism-name, Authentication-value,
+ ACSE-requirements;
+ IMPORTS Name, RelativeDistinguishedName
+ FROM InformationFramework
+ { joint-iso-ccitt ds(5) module(1) informationFramework(1) 2 };
+ -- The data types Name and RelativeDistinguishedName are imported
+ -- from ISO/IEC 9594-2 | ITU-T Rec. X.501.
+ -- ATN Commentary: The relevant InformationFramework extracts are given
+ -- below.
+
+-- *************************************************************************
+-- EXTERNAL
+-- *************************************************************************
+
+-- EXTERNAL is an ASN.1 UNIVERSAL type. The definition in the PER standard
+-- ISO/IEC 8825-2 | ITU-T Rec. X.691 is assumed for ACSE.
+-- The type is used in ACSE user-information
+-- fields. ASN.1 compilers will not in general allow EXTERNAL to be
+-- redefined (therefore 'EXTERNALt'),
+-- and it is invalid ASN.1 to define a type with tag [UNIVERSAL 8]
+--
+-- Workaround for bug in asn2wrs in the .cnf file
+-- to handle the lack of support for tagged assignments.
+-- remove that workaround once asn2wrs learns how to handle
+-- tagged assignments.
+--
+EXTERNALt ::= [8] IMPLICIT SEQUENCE {
+ direct-reference OBJECT IDENTIFIER OPTIONAL, -- X
+ indirect-reference INTEGER OPTIONAL,
+ data-value-descriptor ObjectDescriptor OPTIONAL, -- X
+ encoding CHOICE {
+ single-ASN1-type [0] ABSTRACT-SYNTAX.&Type,
+ octet-aligned [1] IMPLICIT OCTET STRING, -- X
+ arbitrary [2] IMPLICIT BIT STRING }}
+-- ATN: implementations are advised to use arbitrary (BIT STRING)
+-- encodings only (see Guidance Material section 2.6.5.21).
+-- BIT STRING values are not padded to octet boundaries.
+
+
+-- 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, -- ACSE associate request pdu
+ aare AARE-apdu, -- ACSE associate response pdu
+ rlrq RLRQ-apdu, -- ACSE release request pdu
+ rlre RLRE-apdu, -- ACSE release response pdu
+ abrt ABRT-apdu, -- ACSE abort pdu
+ ...
+}
+
+AARQ-apdu ::= [ APPLICATION 0 ] IMPLICIT SEQUENCE
+{ protocol-version [0] IMPLICIT BIT STRING { version1 (0) } DEFAULT { version1 }, -- X
+ application-context-name [1] Application-context-name,
+ called-AP-title [2] AP-title OPTIONAL, -- X
+ called-AE-qualifier [3] AE-qualifier OPTIONAL, -- X
+ called-AP-invocation-identifier [4] AP-invocation-identifier OPTIONAL, -- X
+ called-AE-invocation-identifier [5] AE-invocation-identifier OPTIONAL, -- X
+ calling-AP-title [6] AP-title OPTIONAL,
+ calling-AE-qualifier [7] AE-qualifier OPTIONAL,
+ calling-AP-invocation-identifier [8] AP-invocation-identifier OPTIONAL, -- X
+ calling-AE-invocation-identifier [9] AE-invocation-identifier OPTIONAL, -- X
+ -- The following field is not present if only the Kernel is used.
+ -- ATN: For Doc 9705 ed 1/ed 2, only the Kernel is required.
+ sender-acse-requirements [10] IMPLICIT ACSE-requirements OPTIONAL,
+ -- The following field is only present if the Authentication functional
+ -- unit is selected. ATN: not used in Doc 9705 ed 1/ed 2.
+ mechanism-name [11] IMPLICIT Mechanism-name OPTIONAL,
+ -- The following field is only present if the Authentication functional
+ -- unit is selected. ATN: use is deprecated in Doc 9705 ed 1/ed 2.
+ calling-authentication-value [12] EXPLICIT Authentication-value OPTIONAL,
+ application-context-name-list [13] IMPLICIT Application-context-name-list OPTIONAL, -- X
+ -- The above field is only present if the Application Context Negotiation
+ -- functional unit is selected - never for ATN
+ implementation-information [29] IMPLICIT Implementation-data OPTIONAL, -- X
+ ..., ..., -- ATN: Note use of extension marker pair
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+
+AARE-apdu ::= [ APPLICATION 1 ] IMPLICIT SEQUENCE
+{ protocol-version [0] IMPLICIT BIT STRING{ version1 (0) }
+ DEFAULT { version1 }, -- X
+ 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, -- X
+ responding-AE-qualifier [5] AE-qualifier OPTIONAL, -- X
+ responding-AP-invocation-identifier [6] AP-invocation-identifier OPTIONAL, -- X
+ responding-AE-invocation-identifier [7] AE-invocation-identifier OPTIONAL, -- X
+ -- The following field is not present if only the Kernel is used.
+ -- ATN: For Doc 9705 ed 1/ed 2, only the Kernel is required.
+ responder-acse-requirements [8] IMPLICIT ACSE-requirements OPTIONAL,
+ -- The following field is only present if the Authentication functional
+ -- unit is selected. ATN: not used in Doc 9705 ed 1/ed 2.
+ mechanism-name [9] IMPLICIT Mechanism-name OPTIONAL,
+ -- The following field is only present if the Authentication functional
+ -- unit is selected. ATN: use is deprecated in Doc 9705 ed 1/ed 2.
+ responding-authentication-value [10] EXPLICIT Authentication-value OPTIONAL,
+ application-context-name-list [11] IMPLICIT Application-context-name-list
+ OPTIONAL, -- X
+ -- The above field is only present if the Application Context Negotiation
+ -- functional unit is selected - never for ATN
+ implementation-information [29] IMPLICIT Implementation-data OPTIONAL, --X
+ ..., ..., -- ATN: Note use of extension marker pair
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+
+RLRQ-apdu ::= [ APPLICATION 2 ] IMPLICIT SEQUENCE
+{ reason [0] IMPLICIT Release-request-reason OPTIONAL,
+ ..., ..., -- ATN: Note use of extension marker pair
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+
+RLRE-apdu ::= [ APPLICATION 3 ] IMPLICIT SEQUENCE
+{ reason [0] IMPLICIT Release-response-reason OPTIONAL,
+ ..., ..., -- ATN: Note use of extension marker pair
+ 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,
+ -- The above field is not present if only the Kernel is used.
+ -- ATN: For Doc 9705 ed 1/ed 2, only the Kernel is required.
+ ..., ..., -- ATN: Note use of extension marker pair
+ 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) }
+-- ATN commentary: application-context-negotiation (bit 1) is
+-- never set for ATN ULCS. Use of authentication is deprecated
+-- for Doc 9705 ed 1/ed 2.
+
+Application-context-name-list ::= SEQUENCE OF Application-context-name
+-- ATN Commentary: the above type is not used for ATN ULCS.
+
+Application-context-name ::= OBJECT IDENTIFIER
+
+-- ***************************************************************************
+-- Application-entity title productions follow (not in alphabetical order)
+-- ***************************************************************************
+-- MG: asn2wrs cannot handle untagged CHOICEs within either a SET or a SEQUENCE.
+-- https://wiki.wireshark.org/Asn2wrs_Handmassaging_the_ASN_file
+AP-title ::= CHOICE { -- ATN: See encoding guidance in 2.5.11
+ -- "form2" is encoded as 0 and "form1" as 1
+ ap-title-form2 [0] IMPLICIT AP-title-form2, -- Object Identifier form
+ ap-title-form1 [1] IMPLICIT AP-title-form1, -- X (Directory name form)
+ ... }
+
+AE-qualifier ::= CHOICE {-- ATN: See encoding guidance in 2.5.11
+ -- "form2" is encoded as 0 and "form1" as 1
+ ae-qualifier-form2 [0] IMPLICIT AE-qualifier-form2, -- INTEGER form
+ ae-qualifier-form1 [1] IMPLICIT AE-qualifier-form1, -- X (RDN form)
+ ... }
+-- ATN commentary: AE-qualifier is set to "app-type" in Doc 9705 1st and
+-- 2nd editions. For forward compatibility, the value should not be
+-- analysed.
+
+-- When both AP-title and AE-qualifier data values are present in an AARQ or
+-- AARE APDU, both 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 -- ATN: Not used for ATN ULCS
+-- The value assigned to AP-title-form1 is The Directory Name of an
+-- application-process title.
+
+AE-qualifier-form1 ::= RelativeDistinguishedName -- ATN: Not used for ULCS
+-- 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
+
+-- ATN commentary: The AE-title productions below are commented out,
+-- as they are not required for ATN ULCS.
+-- 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. (Not used for ATN ULCS)
+--
+-- 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 -- ATN: not used in ULCS
+AP-invocation-identifier ::= INTEGER -- ATN: not used in ULCS
+-- 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 EXTERNALt
+-- ATN: No SIZE extensions are defined, only one EXTERNAL element is present
+
+
+
+Implementation-data ::= OCTET STRING -- ATN: Not used for ULCS
+
+Mechanism-name ::= OBJECT IDENTIFIER -- ATN: Not used for ULCS
+
+MECHANISM-NAME ::=TYPE-IDENTIFIER -- ATN: Not used for ULCS
+
+ObjectSet MECHANISM-NAME ::= {...} -- ATN: Not used for ULCS
+
+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, ...)
+-- ATN commentary: For the above two types, see the encoding guidance in 2.5.10
+-- Values are encoded in 5 bits, not 3 as might be expected.
+
+Authentication-value ::= CHOICE -- ATN: use is deprecated in ed 1/ed 2
+{ charstring [0] IMPLICIT OCTET STRING,
+ bitstring [1] IMPLICIT BIT STRING,
+ external [2] IMPLICIT EXTERNAL,
+ other [3] IMPLICIT SEQUENCE {
+-- other-mechanism-name MECHANISM-NAME.&id ({ObjectSet}),
+ other-mechanism-name OBJECT IDENTIFIER,
+-- other-mechanism-value MECHANISM-NAME.&Type ({ObjectSet}{@.other-mechanism-name})
+ other-mechanism-value ANY
+ } -- X
+}
+-- 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 is 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 is the same as the value for "other-mechanism-name"
+END -- of Connection-Oriented ACSE definitions
+
+
+-- *************************************************************************
+-- The following definitions are adapted from the Directory standard
+-- ISO/IEC 9594-2:1993 | ITU-T Rec. X.501 (1993 E). In case of any discrepancy,
+-- the ISO/IEC standard takes precedence.
+-- *************************************************************************
+
+InformationFramework {joint-iso-ccitt ds(5) module(1) informationFramework(1) 2}
+DEFINITIONS ::=
+BEGIN
+EXPORTS Name, RelativeDistinguishedName;
+
+Name ::= CHOICE {rdnSequence RDNSequence}
+-- only one CHOICE defined
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+RelativeDistinguishedName ::= SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+
+AttributeTypeAndValue ::= SEQUENCE {
+-- ATN commentary: The following line has been inserted to allow the Name and
+-- RelativeDistinguishedName types, as used by ACSE, to be resolved by an
+-- ASN.1 compiler, without introducing the unnecessary complexity
+-- Of the ATTRIBUTE information object class, which is used in the
+-- Directory standards.
+ null NULL}
+-- The "real" components of AttributeTypeAndValue follow. They have been
+-- commented out here, but could be restored if required, for example, for
+-- sharing data types with a Directory implementation. The syntax has been
+-- verified by the OSS syntax checker.
+-- type ATTRIBUTE.&id ({SupportedAttributes}),
+-- value ATTRIBUTE.&Type ({SupportedAttributes} {@type})
+--}
+
+--SupportedAttributes ATTRIBUTE ::=
+-- {objectClass | aliasedEntryName, ...}
+
+-- ATN Commentary: ATTRIBUTE is an information object class, specified in
+-- ISO/IEC 9594-2 | ITU-T Rec. X.501, using the notation defined in
+-- ISO/IEC 8824-2 | ITU-T Rec. X.681. However, for ULCS implementation, it
+-- is only necessary to note that the ACSE CHOICE types AP-title,
+-- AE-qualifier and AE-title are all constrained to be the "form 2" variants,
+-- with types Object Identifier, Integer and Object Identifier, respectively.
+-- It is however necessary to know the syntax of the "form 1" variants (Name,
+-- RelativeDistinguishedName and Name, respectively) so that the CHOICE
+-- elements can be sorted into canonical order, based on their ASN.1 types,
+-- for PER encoding (see 2.5.11).
+--
+--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 AttributeUsage DEFAULT userApplications,
+-- &id OBJECT IDENTIFIER UNIQUE }
+--
+--MATCHING-RULE ::= CLASS {
+-- &AssertionType OPTIONAL,
+-- &id OBJECT IDENTIFIER UNIQUE }
+
+--objectClass ATTRIBUTE ::= {
+-- &Type OBJECT IDENTIFIER,
+-- &id id-at-objectClass
+--}
+--
+--aliasedEntryName ATTRIBUTE ::= {
+-- &Type OBJECT IDENTIFIER,
+-- &id id-at-aliasedEntryName
+--}
+--
+--AttributeUsage ::= ENUMERATED {
+-- userApplications (0),
+-- directoryOperation (1),
+-- distributedOperation (2),
+-- dSAOperation (3) }
+--
+--id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+--id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+--id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt ds(5) attributeType(4)}
+
+END -- of Directory Information Framework extracts
+--
+-- Editor modelines - http://www.wireshark.org/tools/modelines.html
+--
+-- Local variables:
+-- c-basic-offset: 4
+-- tab-width: 8
+-- indent-tabs-mode: nil
+-- End:
+--
+-- vi: set shiftwidth=4 tabstop=8 expandtab:
+-- :indentSize=4:tabSize=8:noTabs=true:
+--
diff --git a/epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf b/epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf
new file mode 100644
index 0000000000..a25be95f3e
--- /dev/null
+++ b/epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf
@@ -0,0 +1,554 @@
+#.MODULE_IMPORT
+
+#.FIELD_RENAME
+AARQ-apdu/protocol-version aarq-apdu_protocol-version
+AARE-apdu/protocol-version aare-apdu_protocol-version
+RLRE-apdu/reason rlre-apdu_response_reason
+RLRQ-apdu/reason rlrq-apdu_request_reason
+EXTERNALt/encoding/single-ASN1-type externalt_encoding_single-asn1-type
+EXTERNALt/encoding/arbitrary externalt_encoding_arbitrary
+EXTERNALt/encoding/octet-aligned externalt_encoding_octet-aligned
+PDV-list/presentation-data-values/single-ASN1-type pdv-list_presentation-data-values_single-asn1-type
+PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_arbitrary
+#.END
+
+#.PDU
+ Fully-encoded-data
+ ACSE-apdu
+#.END
+
+
+#.FN_PARS Release-request-reason
+ VAL_PTR=&reason
+#.END
+
+
+#.FN_BODY Presentation-context-identifier
+
+ offset = dissect_per_constrained_integer(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index,
+ 1U,
+ 127U,
+ &ulcs_context_value,
+ TRUE);
+
+#.END
+
+#.FN_BODY PDV-list/presentation-data-values/arbitrary
+
+ packet_info * pinfo = actx->pinfo;
+ tvbuff_t *tvb_usr = NULL;
+ proto_tree *atn_ulcs_tree = NULL;
+ atn_conversation_t *atn_cv = NULL;
+ heur_dtbl_entry_t *hdtbl_entry;
+
+ /* extract bitstring into new tvb buffer */
+ offset = dissect_per_bit_string(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index,
+ NO_BOUND,
+ NO_BOUND,
+ FALSE,
+ &tvb_usr,
+ NULL);
+
+ if (tvb_usr) {
+ /* call appropiate dissector for bitstring data */
+ switch(ulcs_context_value){
+ case 1: /* ACSE PDU*/
+ atn_ulcs_tree = proto_tree_add_subtree(
+ root_tree, tvb, offset, 0,
+ ett_atn_acse, NULL, ATN_ACSE_PROTO );
+
+ dissect_ACSE_apdu_PDU(
+ tvb_new_subset_remaining(tvb_usr, 0),
+ pinfo,
+ atn_ulcs_tree, NULL);
+ break;
+ case 3: /* USER data; call subdissector for CM, CPDLC ... */
+
+ /* using dstref for PDV-list only occurrs in DT */
+ atn_cv = find_atn_conversation(
+ &pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src);
+
+ if(atn_cv) {
+ switch(atn_cv->ae_qualifier){
+ case cma: /* contact management */
+ call_dissector_with_data(
+ atn_cm_handle,
+ tvb_new_subset_remaining(tvb_usr, 0),
+ pinfo,
+ root_tree,
+ NULL);
+ break;
+ case cpdlc: /* plain old cpdlc */
+ case pmcpdlc: /* protected mode cpdlc */
+ call_dissector_with_data(
+ atn_cpdlc_handle,
+ tvb_new_subset_remaining(tvb_usr, 0),
+ pinfo,
+ root_tree,
+ NULL);
+ break;
+ default: /* unknown or unhandled datalink application */
+ dissector_try_heuristic(
+ atn_ulcs_heur_subdissector_list,
+ tvb_new_subset_remaining(tvb_usr,0),
+ actx->pinfo,
+ root_tree,
+ &hdtbl_entry,
+ NULL);
+ break;
+ }
+ }
+ else{
+ dissector_try_heuristic(
+ atn_ulcs_heur_subdissector_list,
+ tvb_new_subset_remaining(tvb_usr,0),
+ actx->pinfo,
+ root_tree,
+ &hdtbl_entry,
+ NULL);
+ }
+ break;
+ default:
+ break;
+ } /* switch(ulcs_context_value) */
+ }
+
+#.END
+
+
+#.FN_BODY Authentication-value/other/other-mechanism-value
+
+ offset=call_ber_oid_callback(
+ object_identifier_id,
+ tvb,
+ offset,
+ actx->pinfo,
+ tree, NULL);
+
+#.END
+
+#.FN_BODY Mechanism-name
+
+ offset = dissect_per_object_identifier(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index,
+ NULL);
+
+#.END
+
+
+#.FN_BODY Authentication-value/other/other-mechanism-value
+
+ offset=call_ber_oid_callback(
+ object_identifier_id,
+ tvb,
+ offset,
+ actx->pinfo,
+ tree, NULL);
+
+#.END
+
+#.FN_BODY AE-qualifier-form2
+ packet_info * pinfo = actx->pinfo;
+ atn_conversation_t *atn_cv = NULL;
+ guint32 ae_qualifier = 0;
+
+ /* dissect ae-qualifier */
+ offset = dissect_per_integer(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index,
+ &ae_qualifier);
+
+
+ /*note: */
+ /* the field "calling-AE-qualifier" is optional, */
+ /* which means that we can exploit it only if it is present. */
+ /* We still depend on heuristical decoding of CM, CPDLC PDU's otherwise. */
+
+ /* AARQ/DT: dstref present, srcref is always zero */
+ if((pinfo->clnp_dstref) && (!pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(&pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src );
+ }
+
+ /* AARQ/CR: srcref present, dstref is always zero */
+ if((!pinfo->clnp_dstref) && (pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(&pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst );
+ }
+
+ if(atn_cv){
+ atn_cv->ae_qualifier = ae_qualifier;
+ }
+#.END
+
+#.FN_BODY AARQ-apdu
+ packet_info * pinfo = actx->pinfo;
+ aarq_data_t *aarq_data = NULL;
+ atn_conversation_t *atn_cv = NULL;
+ guint32 aircraft_24_bit_address = 0;
+
+ /* AARQ/DT: dstref present, srcref is always zero */
+ if((pinfo->clnp_dstref) && (!pinfo->clnp_srcref)){
+
+ atn_cv = find_atn_conversation(
+ &pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src );
+ if(!atn_cv){
+ atn_cv = wmem_new(wmem_file_scope(), atn_conversation_t);
+ atn_cv->ae_qualifier = unknown;
+ create_atn_conversation(&pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src ,
+ atn_cv);
+ }
+ }
+
+ /* AARQ/CR: srcref present, dstref is always zero */
+ if((!pinfo->clnp_dstref) && (pinfo->clnp_srcref)){
+ atn_cv = find_atn_conversation(&pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst );
+ if(!atn_cv){
+ atn_cv = wmem_new(wmem_file_scope(), atn_conversation_t);
+ atn_cv->ae_qualifier = unknown;
+ create_atn_conversation(&pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst ,
+ atn_cv);
+ }
+ }
+
+ /* conversation is to be created prior to decoding */
+ /* of "AE-qualifier-form2" which takes place here: */
+ %(DEFAULT_BODY)s
+
+
+ /* save AARQ packet data to create a conversation */
+ /* when decoding the following AARE PDU */
+ /* ATN applications CM and CPDLC are air/ground applications */
+ /* so there is always an aircraft (with its 24-bit address) */
+ /* and a ground facility. */
+ /* the assumption is that there is only one open AARQ/AARE */
+ /* dialog per aircraft at a time. */
+ /* the aircraft's 24-bit address is used as a key to each AARQ */
+ /* data. AARQ data is used to create a conversation with */
+ /* air and ground endpoints (based on NSAP's and transport references) */
+ /* when decoding AARE.*/
+ /* note: */
+ /* it may be more robust to create the conversation */
+ /* in the "ositp" dissector an to merely use the conversation here */
+ aircraft_24_bit_address =
+ get_aircraft_24_bit_address_from_nsap(pinfo);
+
+ /* search for aarq entry */
+ aarq_data = (aarq_data_t *) wmem_tree_lookup32(
+ aarq_data_tree,
+ aircraft_24_bit_address);
+
+ if(!aarq_data){ /* aarq data not found, create new record */
+
+ /* alloc aarq data */
+ aarq_data = wmem_new(wmem_file_scope(), aarq_data_t);
+ aarq_data-> aarq_pending = FALSE;
+
+ /* insert aarq data */
+ wmem_tree_insert32(aarq_data_tree ,aircraft_24_bit_address,(void*)aarq_data);
+ }
+
+ /* check for pending AARQ/AARE sequences */
+ /* if "aarq_data-> aarq_pending" is set this means that there is already one */
+ /* AARQ/AARE sequence pending (is unwise to overwrite AARE/AARQ) */
+ if (aarq_data-> aarq_pending == FALSE ) {
+
+ /* init aarq data */
+ memset(aarq_data,0,sizeof(aarq_data_t));
+
+ aarq_data->cv = atn_cv;
+ aarq_data-> aarq_pending = TRUE;
+ }
+
+#.END
+
+
+#.FN_BODY AARE-apdu
+ packet_info * pinfo = actx->pinfo;
+ guint32 aircraft_24_bit_address = 0 ;
+ atn_conversation_t *atn_cv = NULL;
+ aarq_data_t *aarq_data = NULL;
+
+ /* get AARQ data and use it to create a new conversation, */
+ /* the conversation is used along with */
+ /* AARQ's "calling ae qualifier" to determine the */
+ /* type of air/ground application of each subsequent frame.*/
+ /* we use this information to invoke the correct application dissector. */
+ /* note: */
+ /* heuristical decoding of ASN1 will not work for all cases, */
+ /* for there may be CM PDU's which will exactly look like CPDLC PDU'S */
+
+ /* get 24-bit icao address */
+ aircraft_24_bit_address = get_aircraft_24_bit_address_from_nsap(pinfo);
+
+ /* search for aarq entry */
+ aarq_data = (aarq_data_t *) wmem_tree_lookup32(
+ aarq_data_tree,
+ aircraft_24_bit_address);
+
+ /* no aarq data present, do nothing */
+ /* without both ends of the conversation and without */
+ /* the "calling ae-qualifier there is no point in setting up "*/
+ /* a conversation */
+ if(!aarq_data) {
+
+ return offset;
+ }
+
+ /* AARE/DT: dstref present, srcref is always zero */
+ if((pinfo->clnp_dstref) && (!pinfo->clnp_srcref)){
+
+ atn_cv = find_atn_conversation(&pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src );
+
+ if(!atn_cv){ /* conversation not fond */
+
+ /* DT has only dstref - create new conversation */
+ create_atn_conversation(&pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src ,
+ aarq_data->cv);
+ }
+ }
+
+ /* AARE/CC: srcref and dstref present */
+ if((pinfo->clnp_dstref) && (pinfo->clnp_srcref)){
+
+ atn_cv = find_atn_conversation(
+ &pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst);
+
+ if(atn_cv){ /* conversation found. */
+
+ /* create new conversation for dstref */
+ create_atn_conversation(&pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src ,
+ aarq_data->cv);
+
+ }else { /* no conversation found */
+ /* as CC contains srcref *and* dstref we use both to create new records */
+ create_atn_conversation(&pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst ,
+ aarq_data->cv);
+ create_atn_conversation(&pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src ,
+ aarq_data->cv);
+ }
+ }
+
+ /* clear aarq data */
+ memset(aarq_data,0,sizeof(aarq_data_t));
+ aarq_data-> aarq_pending = FALSE;
+
+ %(DEFAULT_BODY)s
+
+
+#.END
+
+
+#.FN_BODY Associate-result
+ /* extension present: last param set to true. asn2wrs didn't take notice of that */
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 2U, NULL, TRUE);
+#.END
+
+#.FN_BODY Release-request-reason
+ /* extension present: last param set to true. asn2wrs didn't take notice of that */
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 30U, NULL, TRUE);
+#.END
+
+#.FN_BODY Release-response-reason
+
+ /* extension present: last param set to true. asn2wrs didn't take notice of that */
+ offset = dissect_per_constrained_integer(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index,
+ 0U,
+ 30U,
+ NULL,
+ TRUE);
+
+#.END
+
+#.FN_BODY Mechanism-name
+
+ offset = dissect_per_object_identifier(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index,
+ NULL);
+
+#.END
+
+#.FN_BODY EXTERNALt/data-value-descriptor
+
+ offset = dissect_per_octet_string(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index,
+ -1,
+ -1,
+ FALSE,
+ &actx->external.data_value_descriptor);
+ actx->external.data_value_descr_present = TRUE;
+
+#.END
+
+#.FN_BODY EXTERNALt/encoding/single-ASN1-type
+
+ %(DEFAULT_BODY)s
+
+#.END
+
+#.FN_BODY EXTERNALt/encoding/octet-aligned
+
+ %(DEFAULT_BODY)s
+
+#.END
+
+#.FN_BODY EXTERNALt/encoding/arbitrary
+ tvbuff_t *tvb_usr = NULL;
+ packet_info * pinfo = actx->pinfo;
+ atn_conversation_t *atn_cv = NULL;
+ heur_dtbl_entry_t *hdtbl_entry;
+
+ /* decode bit-string user data within ACSE */
+ offset = dissect_per_bit_string(
+ tvb,
+ offset,
+ actx,
+ tree, hf_index,
+ NO_BOUND,
+ NO_BOUND,
+ FALSE,
+ &tvb_usr,
+ NULL);
+
+ if (tvb_usr) {
+ /* DT: dstref present, srcref is always zero */
+ if((pinfo->clnp_dstref) && (!pinfo->clnp_srcref)){
+
+ atn_cv = find_atn_conversation(
+ &pinfo->dst,
+ pinfo->clnp_dstref,
+ &pinfo->src);
+ }
+ /* CR: srcref present, dstref always zero */
+ if((pinfo->clnp_srcref) && (!pinfo->clnp_dstref)){
+
+ atn_cv = find_atn_conversation(
+ &pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst);
+ }
+ /* CC: srcref and dstref present */
+ if((pinfo->clnp_srcref) && (pinfo->clnp_dstref)){
+
+ atn_cv = find_atn_conversation(
+ &pinfo->src,
+ pinfo->clnp_srcref,
+ &pinfo->dst);
+ }
+
+ if(atn_cv) {
+ switch(atn_cv->ae_qualifier){
+ case cma: /* contact management */
+
+ call_dissector_with_data(
+ atn_cm_handle,
+ tvb_new_subset_remaining(tvb_usr, 0),
+ pinfo,
+ root_tree,
+ NULL);
+ break;
+ case cpdlc: /* plain old cpdlc */
+ case pmcpdlc: /* protected mode cpdlc */
+
+ call_dissector_with_data(
+ atn_cpdlc_handle,
+ tvb_new_subset_remaining(tvb_usr, 0),
+ pinfo,
+ root_tree,
+ NULL);
+ break;
+ default: /* unknown or unhandled datalink application */
+
+ dissector_try_heuristic(
+ atn_ulcs_heur_subdissector_list,
+ tvb_new_subset_remaining(tvb_usr,0),
+ actx->pinfo,
+ root_tree,
+ &hdtbl_entry,
+ NULL);
+ break;
+ }
+ }else {
+
+ dissector_try_heuristic(
+ atn_ulcs_heur_subdissector_list,
+ tvb_new_subset_remaining(tvb_usr,0),
+ actx->pinfo,
+ root_tree,
+ &hdtbl_entry,
+ NULL);
+ }
+ }
+
+ offset += tvb_reported_length_remaining(tvb, offset);
+
+#.END
+
+#
+# Editor modelines - http://www.wireshark.org/tools/modelines.html
+#
+# Local variables:
+# c-basic-offset: 4
+# tab-width: 8
+# indent-tabs-mode: nil
+# End:
+#
+# vi: set shiftwidth=4 tabstop=8 expandtab:
+# :indentSize=4:tabSize=8:noTabs=true:
+#
diff --git a/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c
new file mode 100644
index 0000000000..446c33f023
--- /dev/null
+++ b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c
@@ -0,0 +1,903 @@
+/* packet-atn-ulcs.c
+ * By Mathias Guettler <guettler@web.de>
+ * Copyright 2013
+ *
+ * Routines for ATN upper layer
+ * protocol packet disassembly
+
+ * ATN upper layers are embedded within OSI Layer 4 (COTP).
+ *
+ * ATN upper layers contain:
+ * Session Layer (NUL protocol option)
+ * Presentation Layer (NUL protocol option)
+ * ATN upper Layer/Application (ACSE PDU or PDV-list PDU)
+
+ * ATN applications protocols (i.e. CM or CPDLC) are contained within
+ * ACSE user-information or PDV presentation data.
+
+ * details see:
+ * http://en.wikipedia.org/wiki/CPDLC
+ * http://members.optusnet.com.au/~cjr/introduction.htm
+
+ * standards:
+ * http://legacy.icao.int/anb/panels/acp/repository.cfm
+
+ * note:
+ * We are dealing with ATN/ULCS aka ICAO Doc 9705 Ed2 here
+ * (don't think there is an ULCS equivalent for "FANS-1/A ").
+
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+/*
+ developer comments:
+why not using existing ses, pres and acse dissectors ?
+ ATN upper layers are derived from OSI standards for session,
+ presentation and application but the encoding differs
+ (it's PER instead of BER encoding to save bandwith).
+ Session and presentation use the "null" encoding option,
+ meaning that they are only present at connection establishment
+ and ommitted otherwise.
+ Instead of adapting existing dissectors it seemed simpler and cleaner
+ to implement everything the new atn-ulcs dissector.
+
+why using conversations ?
+ PER encoded user data is ambigous; the same encoding may apply to a CM or
+ CPDLC PDU. The workaround is to decode on a transport connection basis.
+ I use my own version of conversations to identify
+ the transport connection the PDU belongs to for the standard functions
+ from "conversation.h" didn't work out.
+
+what is the use of AARQ/AARE data ?
+ Converstions should be maintained on the COTP layer in a standard way
+ for there are usually more packets available than in the layers above.
+ In the worst case my dissector is called from a DT packet which
+ has destination references but no source reference.
+ I have to guess the reference used the other way round
+ (curently I am using ACSE PDU'S used during OSI connection establishment for that).
+ The idea is that each ACSE AARQ is answered by ACSE AARE and having this sequence
+ I have all the source/destination references for this transport connection.
+ I use AARQ/AARE data to store the source/destination reference of AARQ as well
+ as the optional ae-qualifier which tells me the application and
+ the dissector I have to use.
+ This approach donesn't work well when there are interleaving AARQ/AARE sequences for
+ the same aircraft.
+
+which ATN standard is supported ?
+ The dissector has been tested with ICAO doc9705 Edition2 compliant traffic.
+ No ATN Secutity is supported.
+ note:
+ The ATN upper layers are derived from OSI standards (ICAO DOC 9705)
+ while ATN/IPS (ICAO DOC 9896) which is entirely based on IPV6.
+
+*/
+
+/*
+ known defects/deficiencies:
+
+- user-information within AARE is sometines not decoded due to an unset flag
+ (the field is optional). As far as I can tell asn2wrs is right here,
+ but on the other hand I know that in all of this cases user-information
+ is present and is processed by the ATN end system.
+ Maybe a true ATN expert may help me out here.
+
+ - The conversation handling is based on src/dst addresses as well as
+ source or destination references depending on the TP4 packet type.
+ This means that after some time these references get reused for
+ new conversations. This almost certain happens for traces longer
+ than one day rendering this dissector unsuitable for captures exceeding
+ this one day.
+
+*/
+
+#include "config.h"
+
+#ifndef _MSC_VER
+#include <stdint.h>
+#endif
+
+
+#include <epan/packet.h>
+#include <epan/address.h>
+#include <epan/conversation.h>
+#include <epan/osi-utils.h>
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-atn-ulcs.h"
+
+#define ATN_ACSE_PROTO "ICAO Doc9705 ULCS ACSE (ISO 8649/8650-1:1996)"
+#define ATN_ULCS_PROTO "ICAO Doc9705 ULCS"
+
+void proto_register_atn_ulcs(void);
+void proto_reg_handoff_atn_ulcs(void);
+
+static heur_dissector_list_t atn_ulcs_heur_subdissector_list;
+
+/* presentation subdissectors i.e. CM, CPDLC */
+static dissector_handle_t atn_cm_handle = NULL;
+static dissector_handle_t atn_cpdlc_handle = NULL;
+
+static int proto_atn_ulcs = -1;
+static guint32 ulcs_context_value = 0;
+static const char *object_identifier_id;
+
+static wmem_tree_t *aarq_data_tree = NULL;
+static wmem_tree_t *atn_conversation_tree = NULL;
+
+
+static proto_tree *root_tree = NULL;
+
+/* forward declarations for functions generated from asn1 */
+static int dissect_atn_ulcs_T_externalt_encoding_single_asn1_type(
+ tvbuff_t *tvb _U_,
+ int offset _U_,
+ asn1_ctx_t *actx _U_,
+ proto_tree *tree _U_,
+ int hf_index
+ _U_);
+
+static int dissect_atn_ulcs_T_externalt_encoding_octet_aligned(
+ tvbuff_t *tvb _U_,
+ int offset _U_,
+ asn1_ctx_t *actx _U_,
+ proto_tree *tree _U_,
+ int hf_index _U_);
+
+static int dissect_atn_ulcs_T_externalt_encoding_arbitrary(
+ tvbuff_t *tvb _U_,
+ int offset _U_,
+ asn1_ctx_t *actx _U_,
+ proto_tree *tree _U_,
+ int hf_index _U_);
+
+static int dissect_ACSE_apdu_PDU(
+ tvbuff_t *tvb _U_,
+ packet_info *pinfo _U_,
+ proto_tree *tree _U_,
+ void *data _U_);
+
+guint32 dissect_per_object_descriptor_t(
+ tvbuff_t *tvb,
+ guint32 offset,
+ asn1_ctx_t *actx,
+ proto_tree *tree,
+ int hf_index,
+ tvbuff_t **value_tvb);
+
+static gint dissect_atn_ulcs(
+ tvbuff_t *tvb,
+ packet_info *pinfo,
+ proto_tree *tree,
+ void *data _U_);
+
+#include "packet-atn-ulcs-hf.c"
+
+#include "packet-atn-ulcs-ett.c"
+static gint ett_atn_ulcs = -1;
+static gint ett_atn_acse = -1;
+
+#include "packet-atn-ulcs-fn.c"
+
+#if 0
+/* re-implementing external data: packet-per.c */
+static const value_string per_External_encoding_vals[] = {
+{ 0, "single-ASN1-type" },
+{ 1, "octet-aligned" },
+{ 2, "arbitrary" },
+{ 0, NULL }
+};
+
+/* re-implementing external data: packet-per.c */
+static const per_choice_t External_encoding_choice[] =
+{
+ { 0,
+ &hf_atn_ulcs_externalt_encoding_single_asn1_type,
+ ASN1_NO_EXTENSIONS,
+ dissect_atn_ulcs_T_externalt_encoding_single_asn1_type
+ },
+ { 1,
+ &hf_atn_ulcs_externalt_encoding_octet_aligned,
+ ASN1_NO_EXTENSIONS,
+ dissect_atn_ulcs_T_externalt_encoding_octet_aligned
+ },
+ { 2,
+ &hf_atn_ulcs_externalt_encoding_arbitrary,
+ ASN1_NO_EXTENSIONS,
+ dissect_atn_ulcs_T_externalt_encoding_arbitrary
+ },
+ { 0,
+ NULL,
+ 0,
+ NULL
+ }
+};
+#endif
+
+/* ATN Session layer */
+#define SES_PDU_TYPE_MASK 0xf8
+#define SES_PARAM_IND_MASK 0x04
+#define SES_PARAM_B2_MASK 0x02
+#define SES_PARAM_B1_MASK 0x01
+
+static int hf_atn_ses_type = -1;
+static int hf_atn_ses_param_ind = -1;
+static int hf_atn_ses_param_b1 = -1;
+static int hf_atn_ses_param_b2 = -1;
+
+static gint ett_atn_ses = -1;
+
+#define ATN_SES_PROTO "ICAO Doc9705 ULCS Session (ISO 8326/8327-1:1994)"
+
+const value_string atn_ses_param_ind[] =
+{
+ {0, "No Parameter Indication "},
+ {1, "Parameter Indication "},
+ {0, NULL }
+};
+
+const value_string srf_b2[] =
+{
+ {0, "Transport Connection is kept"},
+ {1, "Transport Connection is released" },
+ {0, NULL }
+};
+
+const value_string srf_b1[] =
+{
+ {0, "Transport Connection is transient"},
+ {1, "Transport Connection is persistent"},
+ {0, NULL }
+};
+
+#define SES_ATN_SCN 0xe8
+#define SES_ATN_SCNC 0xf8
+#define SES_ATN_SAC 0xf0
+#define SES_ATN_SACC 0xd8
+#define SES_ATN_SRF 0xe0
+#define SES_ATN_SRFC 0xa0
+
+const value_string atn_ses_type[] =
+{
+ { 0x1d, "Short Connect (SCN) SPDU" },
+ { 0x1f, "Short Connect Accept (SAC) SPDU" },
+ { 0x1e, "Short Connect Accept Continue (SACC) SPDU" },
+ { 0x1c, "Short Refuse (SRF) SPDU" },
+ { 0x14, "Short Refuse Continue (SRFC) SPDU" },
+ {0, NULL }
+};
+
+/* ATN Presentation layer */
+#define ATN_PRES_PROTO "ICAO Doc9705 ULCS Presentation (ISO 8822/8823-1:1994)"
+
+static int hf_atn_pres_err = -1;
+static int hf_atn_pres_pdu_type = -1;
+static gint ett_atn_pres = -1;
+
+#define ATN_SES_PRES_MASK 0xf803
+#define PRES_CPR_ER_MASK 0x70
+
+/* type determined by SPDU and PPDU */
+const value_string atn_pres_vals[] =
+{
+ { 0xe802, "Short Presentation Connect PPDU (CP) " },
+ { 0xf802, "Short Presentation Connect PPDU (CP) " },
+ { 0xf002, "Short Presentation Connect Accept PPDU (CPA)" },
+ { 0xd802, "Short Presentation Connect Accept PPDU (CPA)" },
+ { 0xe002, "Short Presentation Connect Reject PPDU (CPR)" },
+ { 0xa002, "Short Presentation Connect Reject PPDU (CPR)" },
+ {0, NULL }
+};
+
+/* Short Presentation Connect Reject PPDU's 0yyy 00zz */
+const value_string atn_pres_err[] =
+{
+ { 0x00, "Presentation-user" },
+ { 0x01, "Reason not specified (transient)"},
+ { 0x02, "Temporary congestion (transient)"},
+ { 0x03, "Local limit exceeded (transient)"},
+ { 0x04, "Called presentation-address unknown (permanent)"},
+ { 0x05, "Protocol version not supported (permanent)"},
+ { 0x06, "Default context not supported (permanent)"},
+ { 0x07, "User data not readable (permanent)"},
+ { 0, NULL }
+};
+
+#if 0
+/* re-implementing external data: packet-per.c */
+static int atn_ulcs_Externalt_encoding(
+ tvbuff_t *tvb _U_,
+ int offset _U_,
+ asn1_ctx_t *actx _U_,
+ proto_tree *tree _U_,
+ int hf_index _U_)
+{
+ offset = dissect_per_choice(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index,
+ ett_atn_ulcs_EXTERNALt,
+ External_encoding_choice,
+ &actx->external.encoding);
+
+ return offset;
+}
+
+/* re-implementing external data: packet-per.c */
+static guint32 atn_per_external_type(
+ tvbuff_t *tvb _U_,
+ guint32 offset,
+ asn1_ctx_t *actx,
+ proto_tree *tree _U_,
+ int hf_index _U_,
+ per_type_fn type_cb)
+{
+ memset(&actx->external, '\0', sizeof(actx->external));
+ actx->external.hf_index = -1;
+ actx->external.encoding = -1;
+
+ actx->external.u.per.type_cb = type_cb;
+ offset = atn_ulcs_Externalt_encoding(
+ tvb,
+ offset,
+ actx,
+ tree,
+ hf_index);
+
+ memset(
+ &actx->external,
+ '\0',
+ sizeof(actx->external));
+
+ actx->external.hf_index = -1;
+ actx->external.encoding = -1;
+
+ return offset;
+}
+#endif
+
+/* determine 24-bit aircraft address(ARS) */
+/* from 20-byte ATN NSAP. */
+guint32 get_aircraft_24_bit_address_from_nsap(
+ packet_info *pinfo)
+{
+ const guint8* addr = NULL;
+ guint32 ars =0;
+ guint32 adr_prefix =0;
+
+ /* check NSAP address type*/
+ if( (pinfo->src.type != get_osi_address_type()) ||
+ (pinfo->dst.type != get_osi_address_type())) {
+ return ars; }
+
+ /* 20 octets address length required */
+ /* for ATN */
+ if( (pinfo->src.len != 20) ||
+ (pinfo->dst.len != 20)) {
+ return ars; }
+
+ /* first try source address */
+ /* if the src address originates */
+ /* from an aircraft it's downlink */
+
+ /* convert addr into 32-bit integer */
+ addr = (const guint8 *)pinfo->src.data;
+ adr_prefix =
+ ((addr[0]<<24) |
+ (addr[1]<<16) |
+ (addr[2]<<8) |
+ addr[3] );
+
+ /* according to ICAO doc9507 Ed2 SV5 */
+ /* clause 5.4.3.8.1.5 and 5.4.3.8.1.3 */
+ /* mobile addresses contain "c1" of "41" */
+ /* in the VER subfield of the NSAP */
+ if((adr_prefix == 0x470027c1) ||
+ (adr_prefix == 0x47002741)) {
+ /* ICAO doc9507 Ed2 SV5 5.4.3.8.4.4 */
+ /* states that the ARS subfield containes */
+ /* the 24-bitaddress of the aircraft */
+ ars = ((addr[8])<<16) |
+ ((addr[9])<<8) |
+ (addr[10]);
+ }
+
+ /* try destination address */
+ /* if the src address originates */
+ /* from an aircraft it's downlink */
+
+ /* convert addr into 32-bit integer */
+ addr = (const guint8 *)pinfo->dst.data;
+ adr_prefix = ((addr[0]<<24) |
+ (addr[1]<<16) |
+ (addr[2]<<8) |
+ addr[3] );
+
+ /* according to ICAO doc9507 Ed2 SV5 */
+ /* clause 5.4.3.8.1.5 and 5.4.3.8.1.3 */
+ /* mobile addresses contain "c1" of "41" */
+ /* in the VER subfield of the NSAP */
+ if((adr_prefix == 0x470027c1) ||
+ (adr_prefix == 0x47002741)) {
+ /* ICAO doc9507 Ed2 SV5 5.4.3.8.4.4 */
+ /* states that the ARS subfield containes */
+ /* the 24-bitaddress of the aircraft */
+ ars = ((addr[8])<<16) |
+ ((addr[9])<<8) |
+ (addr[10]);
+ }
+ return ars;
+}
+
+/* determine whether a PDU is uplink or downlink */
+/* by checking for known aircraft address prefices*/
+int check_heur_msg_type(packet_info *pinfo _U_)
+{
+ int t = no_msg;
+ const guint8* addr = NULL;
+ guint32 adr_prefix =0;
+
+ /* check NSAP address type*/
+ if( (pinfo->src.type != get_osi_address_type()) || (pinfo->dst.type != get_osi_address_type())) {
+ return t; }
+
+ /* check NSAP address length; 20 octets address length required */
+ if( (pinfo->src.len != 20) || (pinfo->dst.len != 20)) {
+ return t; }
+
+ addr = (const guint8 *)pinfo->src.data;
+
+ /* convert address to 32-bit integer */
+ adr_prefix = ((addr[0]<<24) | (addr[1]<<16) | (addr[2]<<8) | addr[3] );
+
+ /* According to the published ATN NSAP adddressing scheme */
+ /* in ICAO doc9705 Ed2 SV5 5.4.3.8.1.3 and 5.4.3.8.1.5 */
+ /* the "VER" field shall be 0x41 ("all Mobile AINSC") or */
+ /* 0xc1 ("all Mobile ATSC") for mobile stations (aka aircraft).*/
+ if((adr_prefix == 0x470027c1) || (adr_prefix == 0x47002741)) {
+ t = dm; /* source is an aircraft: it's a downlink PDU */
+ }
+
+ addr = (const guint8 *)pinfo->dst.data;
+
+ /* convert address to 32-bit integer */
+ adr_prefix = ((addr[0]<<24) | (addr[1]<<16) | (addr[2]<<8) | addr[3] );
+
+ /* According to the published ATN NSAP adddressing scheme */
+ /* in ICAO doc9705 Ed2 SV5 5.4.3.8.1.3 and 5.4.3.8.1.5 */
+ /* the "VER" field shall be 0x41 ("all Mobile AINSC") or */
+ /* 0xc1 ("all Mobile ATSC") for mobile stations (aka aircraft).*/
+ if((adr_prefix == 0x470027c1) || (adr_prefix == 0x47002741)) {
+ t = um; /* destination is aircraft: uplink PDU */
+ }
+
+ return t;
+}
+
+/* conversation may be used by other dissectors */
+wmem_tree_t *get_atn_conversation_tree(void){
+ return atn_conversation_tree;
+}
+
+
+/* find a atn conversation tree node by an endpoint */
+/* an endpoint is identified by atn src and dst addresses */
+/* and srcref or dstref (depends on the transport packet type) */
+/* IMHO it's a hack - conversations should be maintained */
+/* at transport layer (cotp) but this isn't working yet. */
+atn_conversation_t * find_atn_conversation(
+ address *address1,
+ guint16 clnp_ref1,
+ address *address2 )
+{
+ atn_conversation_t *cv = NULL;
+ guint32 key = 0;
+ guint32 tmp = 0;
+
+ tmp = add_address_to_hash( tmp, address1);
+ key = (tmp << 16) | clnp_ref1 ;
+
+ tmp = add_address_to_hash( tmp, address2);
+ key = (tmp << 24) | key ;
+
+ /* search for atn conversation */
+ cv = (atn_conversation_t *)
+ wmem_tree_lookup32(get_atn_conversation_tree(),key);
+
+ return cv;
+}
+
+/* create a atn conversation tree node */
+/* conversation data is to be allocated externally */
+/* a conversation may be referenced from both endpoints */
+atn_conversation_t * create_atn_conversation(
+ address *address1,
+ guint16 clnp_ref1,
+ address *address2,
+ atn_conversation_t *conversation)
+{
+ atn_conversation_t *cv = NULL;
+ guint32 key = 0;
+ guint32 tmp = 0;
+
+ tmp = add_address_to_hash( tmp, address1);
+ key = (tmp << 16) | clnp_ref1 ;
+
+ tmp = add_address_to_hash( tmp, address2);
+ key = (tmp << 24) | key ;
+
+ /* search for aircraft entry */
+ cv = (atn_conversation_t *)
+ wmem_tree_lookup32(
+ get_atn_conversation_tree(),
+ key);
+
+ /* tree node already present */
+ if(cv) {
+ return NULL; }
+
+ /* insert conversation data in tree*/
+ wmem_tree_insert32(
+ get_atn_conversation_tree(),
+ key,
+ (void*)conversation);
+
+ return conversation;
+}
+
+static int
+dissect_atn_ulcs(
+ tvbuff_t *tvb,
+ packet_info *pinfo,
+ proto_tree *tree,
+ void *data _U_)
+{
+ int offset = 0;
+ proto_item *ti = NULL;
+ proto_tree *atn_ulcs_tree = NULL;
+ guint8 value_pres = 0;
+ guint8 value_ses = 0;
+ guint16 value_ses_pres = 0;
+
+ root_tree = tree;
+
+ /* data pointer */
+ /* decode as PDV-list */
+ if ( (int)(intptr_t) data == FALSE )
+ {
+ ti = proto_tree_add_item(
+ tree,
+ proto_atn_ulcs,
+ tvb,
+ 0,
+ 0 ,
+ ENC_NA);
+
+ atn_ulcs_tree = proto_item_add_subtree(
+ ti,
+ ett_atn_ulcs);
+
+ dissect_Fully_encoded_data_PDU(
+ tvb,
+ pinfo,
+ atn_ulcs_tree, NULL);
+
+ return offset +
+ tvb_reported_length_remaining(tvb, offset ) ;
+ }
+
+ /* decode as SPDU, PPDU and ACSE PDU */
+ if ( (int)(intptr_t) data == TRUE )
+ {
+ /* get session and presentation PDU's */
+ value_ses_pres = tvb_get_ntohs(tvb, offset);
+
+ /* SPDU: dissect session layer */
+ atn_ulcs_tree = proto_tree_add_subtree(
+ tree, tvb, offset, 0,
+ ett_atn_ses, NULL, ATN_SES_PROTO );
+
+ /* get SPDU (1 octet) */
+ value_ses = tvb_get_guint8(tvb, offset);
+
+ /* SPDU type/identifier */
+ proto_tree_add_item(atn_ulcs_tree,
+ hf_atn_ses_type,
+ tvb,
+ offset,
+ 1,
+ ENC_BIG_ENDIAN );
+
+ /* SPDU parameters may be present in Short Refuse */
+ /* or Short Refuse Continue SPDU's */
+ switch(value_ses & SES_PDU_TYPE_MASK){
+ case SES_ATN_SRF:
+ case SES_ATN_SRFC:
+
+ /* SPDU parameter presence */
+ proto_tree_add_item(atn_ulcs_tree,
+ hf_atn_ses_param_ind,
+ tvb,
+ offset,
+ 1,
+ ENC_BIG_ENDIAN );
+
+ /* parameter B2 */
+ proto_tree_add_item(atn_ulcs_tree,
+ hf_atn_ses_param_b2,
+ tvb,
+ offset,
+ 1,
+ ENC_BIG_ENDIAN );
+
+ /* parameter B1 */
+ proto_tree_add_item(atn_ulcs_tree,
+ hf_atn_ses_param_b1,
+ tvb,
+ offset,
+ 1,
+ ENC_BIG_ENDIAN );
+
+ break;
+ default:
+ break;
+ }
+ offset++;
+
+ /* PPDU: dissect presentation layer */
+ atn_ulcs_tree = proto_tree_add_subtree(
+ tree, tvb, offset, 0,
+ ett_atn_pres, NULL, ATN_PRES_PROTO );
+
+ value_pres = tvb_get_guint8(tvb, offset);
+
+ /* need session context to identify PPDU type */
+ /* note: */
+ proto_tree_add_uint_format(atn_ulcs_tree, hf_atn_pres_pdu_type,
+ tvb,
+ offset,
+ 1,
+ value_ses_pres,
+ "%s (0x%02x)",
+ val_to_str( value_ses_pres & ATN_SES_PRES_MASK , atn_pres_vals, "?"),
+ value_pres);
+
+ /* PPDU errorcode in case of SRF/CPR */
+ switch(value_ses & SES_PDU_TYPE_MASK){
+ case SES_ATN_SRF:
+ case SES_ATN_SRFC:
+ proto_tree_add_item(
+ atn_ulcs_tree,
+ hf_atn_pres_err,
+ tvb,
+ offset,
+ 1,
+ ENC_BIG_ENDIAN );
+ break;
+ default:
+ break;
+ }
+
+ offset++;
+
+ /* ACSE PDU: dissect application layer */
+ atn_ulcs_tree = proto_tree_add_subtree(
+ tree, tvb, offset, 0,
+ ett_atn_acse, NULL, ATN_ACSE_PROTO );
+
+ dissect_ACSE_apdu_PDU(
+ tvb_new_subset_remaining(tvb, offset),
+ pinfo,
+ atn_ulcs_tree, NULL);
+
+ return offset +
+ tvb_reported_length_remaining(tvb, offset );
+ }
+ return offset;
+}
+
+static gboolean dissect_atn_ulcs_heur(
+ tvbuff_t *tvb,
+ packet_info *pinfo,
+ proto_tree *tree,
+ void *data _U_)
+{
+ /* do we have enough data*/
+ /* at least session + presentation data or pdv-list */
+ if (tvb_captured_length(tvb) < 2){
+ return FALSE; }
+
+ /* check for session/presentation/ACSE PDU's */
+ /* SPDU and PPDU are one octet each */
+ switch( tvb_get_ntohs(tvb, 0) & 0xf8ff ){
+ case 0xe802: /* SCN + CP*/
+ case 0xf802: /* SCNC + CP */
+ case 0xf002: /* SAC + CPA */
+ case 0xd802: /* SACC + CPA */
+ case 0xe002: /* SRF + CPR + R0 */
+ case 0xe012: /* SRF + CPR + R1 */
+ case 0xe022: /* SRF + CPR + R2 */
+ case 0xe032: /* SRF + CPR + R3 */
+ case 0xe042: /* SRF + CPR + R4 */
+ case 0xe052: /* SRF + CPR + R5 */
+ case 0xe062: /* SRF + CPR + R6 */
+ case 0xe072: /* SRF + CPR + R7 */
+ case 0xa002: /* SRFC + CPR + R0*/
+ case 0xa012: /* SRFC + CPR + R1*/
+ case 0xa022: /* SRFC + CPR + R2*/
+ case 0xa032: /* SRFC + CPR + R3*/
+ case 0xa042: /* SRFC + CPR + R4*/
+ case 0xa052: /* SRFC + CPR + R5*/
+ case 0xa062: /* SRFC + CPR + R6*/
+ case 0xa072: /* SRFC + CPR + R7*/
+ /* indicate to dissector routine */
+ /* that a least SPDU, PPDU and */
+ /* ACSE PDU is present */
+ dissect_atn_ulcs(
+ tvb,
+ pinfo,
+ tree,
+ (void*) TRUE);
+ return TRUE;
+ default: /* no SPDU */
+ break;
+ }
+
+ /* try to detect "Fully-encoded-data" heuristically */
+ /* the constants listed match the ASN.1 PER encoding */
+ /* of PDV-List */
+ switch( tvb_get_ntohs(tvb, 0) & 0xfff0 ){
+ case 0x0020: /* acse-apdu */
+ case 0x00a0: /* user-ase-apdu */
+ /* indicate to dissector routine */
+ /* that a PDV-list PDU is present */
+ /* */
+ /* PDV-list PDU may contain */
+ /* application protocol data (CM, CPDLC) */
+ /* or an ACSE PDU */
+ dissect_atn_ulcs(tvb, pinfo, tree, (void*) FALSE);
+ return TRUE;
+ break;
+ default: /* no or unsupported PDU */
+ break;
+ }
+ return FALSE;
+}
+
+void proto_register_atn_ulcs (void)
+{
+ static hf_register_info hf_atn_ulcs[] = {
+ #include "packet-atn-ulcs-hfarr.c"
+ {&hf_atn_ses_type,
+ { "SPDU Type",
+ "atn-ulcs.ses.type",
+ FT_UINT8,
+ BASE_HEX,
+ VALS(atn_ses_type),
+ 0xf8,
+ "Indicates presence of session parameters",
+ HFILL}},
+ {&hf_atn_ses_param_ind,
+ { "SPDU Parameter Indication",
+ "atn-ulcs.ses.parameter-indication",
+ FT_UINT8,
+ BASE_HEX,
+ VALS(atn_ses_param_ind),
+ SES_PARAM_IND_MASK,
+ "Indicates presence of session parameters",
+ HFILL}},
+ {&hf_atn_ses_param_b1,
+ { "SRF Parameter B1",
+ "atn-ulcs.ses.srf-b1",
+ FT_UINT8,
+ BASE_HEX,
+ VALS(srf_b1),
+ 0x01,
+ "Determines if transport connection reject is transient or persistent",
+ HFILL}},
+ {&hf_atn_ses_param_b2,
+ { "SRF Parameter B2",
+ "atn-ulcs.ses.srf-b2",
+ FT_UINT8,
+ BASE_HEX,
+ VALS(srf_b2),
+ 0x02,
+ "Determines if transport connection is retained or released",
+ HFILL}},
+ { &hf_atn_pres_err,
+ { "Error Code", "atn-ulcs.pres.cpr-error",
+ FT_UINT8,
+ BASE_HEX,
+ VALS(atn_pres_err),
+ PRES_CPR_ER_MASK,
+ NULL,
+ HFILL}},
+ { &hf_atn_pres_pdu_type,
+ { "PDU type", "atn-ulcs.pres.pdu_type",
+ FT_UINT8,
+ BASE_HEX,
+ NULL,
+ ATN_SES_PRES_MASK,
+ NULL,
+ HFILL}},
+ };
+
+ static gint *ett[] = {
+ #include "packet-atn-ulcs-ettarr.c"
+ &ett_atn_ses,
+ &ett_atn_pres,
+ &ett_atn_acse,
+ &ett_atn_ulcs
+ };
+
+ proto_atn_ulcs = proto_register_protocol (
+ ATN_ULCS_PROTO ,
+ "ATN-ULCS",
+ "atn-ulcs");
+
+ proto_register_field_array (
+ proto_atn_ulcs,
+ hf_atn_ulcs,
+ array_length(hf_atn_ulcs));
+
+ proto_register_subtree_array (
+ ett,
+ array_length (ett));
+
+ register_dissector(
+ "atn-ulcs",
+ dissect_atn_ulcs,
+ proto_atn_ulcs);
+
+ atn_cm_handle = find_dissector("atn-cm");
+ atn_cpdlc_handle = find_dissector("atn-cpdlc");
+
+ /* initiate sub dissector list */
+ atn_ulcs_heur_subdissector_list = register_heur_dissector_list("atn-ulcs");
+
+ /* init aare/aare data */
+ aarq_data_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+
+ atn_conversation_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+}
+
+void proto_reg_handoff_atn_ulcs(void)
+{
+ /* add session dissector to cotp dissector list dissector list*/
+ heur_dissector_add(
+ "cotp",
+ dissect_atn_ulcs_heur,
+ "ATN-ULCS over COTP",
+ "atn-ucls_cotp",
+ proto_atn_ulcs, HEURISTIC_ENABLE);
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h
new file mode 100644
index 0000000000..98228928e9
--- /dev/null
+++ b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h
@@ -0,0 +1,95 @@
+/* packet-atn-ulcs.h
+ * Definitions for atn packet disassembly structures and routines
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#ifndef PACKET_ATN_ULCS_H
+#define PACKET_ATN_ULCS_H
+
+#include <config.h>
+
+#include "packet.h"
+
+#include <epan/wmem/wmem.h>
+
+enum msg_type {
+ um,
+ dm,
+ no_msg
+};
+
+enum ae_qualifier {
+ ads = 0,
+ cma =1, /* contact management (CM) */
+ cpdlc = 2, /* "plain old" CPDLC */
+ ati = 3 ,
+ arf =10 ,
+ met =11,
+ gac =12,
+ pmcpdlc =22, /* "protected mode" CPDLC */
+ unknown = -1
+};
+
+typedef struct atn_conversation_t {
+ gint ae_qualifier; /* A/G application type */
+} atn_conversation_t;
+
+atn_conversation_t * create_atn_conversation(
+ address*,
+ guint16,
+ address*,
+ atn_conversation_t*);
+
+atn_conversation_t * find_atn_conversation(
+ address*,
+ guint16,
+ address*);
+
+/* struct for conversation data reconstruction used in AARQ and AARE */
+/* if transport data is larger than 32 octets AARQ/AARE is contained */
+/* within DT frames which have only dest_ref, but no src_ref */
+/* if AARQ/AARQ is contained within CR/CC only src_ref is present in CR */
+/* while CC provides src_ref and dstref */
+typedef struct aarq_data_t {
+ gboolean aarq_pending; /* flag tells whether AARQ/sequence is pending (true) */
+ /* required not to mix up different AARQ/AARE sequences */
+ /* during simoultanous establishment of transport connections */
+ /* i.e. GND facility initialises cpcstart and cmcontact at the same time */
+ atn_conversation_t* cv; /* pointer to AARQ conversation */
+} aarq_data_t;
+
+wmem_tree_t *get_atn_conversation_tree(void);
+
+guint32 get_aircraft_24_bit_address_from_nsap(packet_info *);
+int check_heur_msg_type(packet_info *);
+
+#endif
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/c1222/CMakeLists.txt b/epan/dissectors/asn1/c1222/CMakeLists.txt
new file mode 100644
index 0000000000..23dc45a4cd
--- /dev/null
+++ b/epan/dissectors/asn1/c1222/CMakeLists.txt
@@ -0,0 +1,51 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME c1222 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/c1222/Makefile.am b/epan/dissectors/asn1/c1222/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/c1222/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/c1222/Makefile.common b/epan/dissectors/asn1/c1222/Makefile.common
new file mode 100644
index 0000000000..81ff719440
--- /dev/null
+++ b/epan/dissectors/asn1/c1222/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = c1222
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/c1222/Makefile.nmake b/epan/dissectors/asn1/c1222/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/c1222/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/c1222/c1222.asn b/epan/dissectors/asn1/c1222/c1222.asn
new file mode 100644
index 0000000000..39ac7756a3
--- /dev/null
+++ b/epan/dissectors/asn1/c1222/c1222.asn
@@ -0,0 +1,81 @@
+-- C1222 PROTOCOL
+--
+
+C1222-PROTOCOL DEFINITIONS ::=
+BEGIN
+
+MESSAGE ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ aSO-context [1] ASO-qualifier OPTIONAL,
+ called-AP-title [2] Called-AP-title OPTIONAL,
+ called-AP-invocation-id [4] Called-AP-invocation-id OPTIONAL,
+ calling-AP-title [6] Calling-AP-title OPTIONAL,
+ calling-AE-qualifier [7] Calling-AE-qualifier OPTIONAL,
+ calling-AP-invocation-id [8] Calling-AP-invocation-id,
+ mechanism-name [11] IMPLICIT Mechanism-name OPTIONAL,
+ calling-authentication-value [12] Calling-authentication-value OPTIONAL,
+ user-information [30] User-information
+}
+
+ASO-qualifier ::= OBJECT IDENTIFIER
+
+Called-AP-title ::= CHOICE {
+ called-ap-title-abs OBJECT IDENTIFIER,
+ called-ap-title-rel [0] IMPLICIT RELATIVE-OID
+}
+Calling-AP-title ::= CHOICE {
+ calling-ap-title-abs OBJECT IDENTIFIER,
+ calling-ap-title-rel [0] IMPLICIT RELATIVE-OID
+}
+AP-invocation-id ::= INTEGER
+Called-AP-invocation-id ::= AP-invocation-id
+Calling-AP-invocation-id ::= AP-invocation-id
+AE-qualifier ::= INTEGER
+Calling-AE-qualifier ::= AE-qualifier
+Mechanism-name ::= OBJECT IDENTIFIER
+
+-- this is all of the authentication mechanism related stuff
+
+Calling-authentication-value ::= [2] IMPLICIT SEQUENCE {
+ calling-authentication-value-indirect INTEGER DEFAULT 0,
+ calling-authentication-value-encoding Authentication-value-encoding
+}
+
+Authentication-value-encoding ::= CHOICE {
+ calling-authentication-value-single-asn1 [0] Calling-authentication-value-single-asn1,
+ calling-authentication-value-octet-aligned [1] IMPLICIT OCTET STRING
+}
+
+Calling-authentication-value-single-asn1 ::= CHOICE {
+ calling-authentication-value-c1222 Calling-authentication-value-c1222,
+ calling-authentication-value-c1221 Calling-authentication-value-c1221
+}
+
+Calling-authentication-value-c1222 ::= [1] IMPLICIT SEQUENCE {
+ key-id-element [0] IMPLICIT Key-id-element OPTIONAL,
+ iv-element [1] IMPLICIT Iv-element OPTIONAL
+}
+
+Key-id-element ::= OCTET STRING (SIZE(1))
+Iv-element ::= OCTET STRING (SIZE(4))
+
+Calling-authentication-value-c1221 ::= [0] IMPLICIT CHOICE {
+ c1221-auth-identification [0] IMPLICIT OCTET STRING (SIZE(3|5..259)),
+ c1221-auth-request [0] IMPLICIT OCTET STRING (SIZE(1..255)),
+ c1221-auth-response [0] IMPLICIT OCTET STRING (SIZE(0|1..255)),
+ ...
+}
+
+-- now the user information (EPSEM)
+User-information ::= EXTERNAL
+
+--User-information EPSEM-TYPE ::= { ... }
+
+--EPSEM-TYPE ::= CLASS {
+-- &direct-reference OBJECT IDENTIFIER OPTIONAL,
+-- &octet-aligned [1] IMPLICIT OCTET STRING
+--}
+
+
+END
+
+
diff --git a/epan/dissectors/asn1/c1222/c1222.cnf b/epan/dissectors/asn1/c1222/c1222.cnf
new file mode 100644
index 0000000000..d3d4fb8da5
--- /dev/null
+++ b/epan/dissectors/asn1/c1222/c1222.cnf
@@ -0,0 +1,117 @@
+# c1222.cnf
+# C1222 conformation file
+# Copyright 2010, Edward J. Beroset, edward.beroset@elster.com
+
+#.MODULE_IMPORT
+IMPORT ../acse/acse.inf
+
+#.EXPORTS
+
+#.PDU
+MESSAGE
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.TYPE_ATTR
+Calling-authentication-value-c1222/_untag/iv-element BLURB="c1222.iv-element"
+Calling-authentication-value-c1222/_untag/key-id-element BLURB = "c1222.key-id-element"
+AP-invocation-id TYPE=FT_UINT32
+AE-qualifier TYPE=FT_UINT32
+
+#.FN_BODY User-information
+ gint8 end_device_class;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+ proto_item *tf = NULL;
+ proto_tree *epsem_tree = NULL;
+ FILL_START;
+
+ /* get Tag and Length */
+ offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &end_device_class, &pc, &tag);
+ offset = dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ FILL_TABLE_TRUNCATE(user_information, len+offset-start_offset);
+ if (tag == 0x8) { /* BER_TAG_EXTERNAL */
+ offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &end_device_class, &pc, &tag);
+ offset = dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ if (tag == 0x1) { /* implicit octet string */
+ tf = proto_tree_add_item(tree, hf_c1222_user_information, tvb, offset, len, ENC_NA);
+ epsem_tree = proto_item_add_subtree(tf, ett_c1222_epsem);
+ dissect_epsem(tvb, offset, len, actx->pinfo, epsem_tree);
+ offset += len;
+ }
+ }
+
+#.FN_BODY ASO-qualifier
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE(aSO_context);
+
+#.FN_BODY Called-AP-title
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE_APTITLE(called_AP_title);
+
+#.FN_BODY Called-AP-invocation-id
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE(called_AP_invocation_id);
+
+#.FN_BODY Calling-AE-qualifier
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE(calling_AE_qualifier);
+
+#.FN_BODY Calling-AP-invocation-id
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE(calling_AP_invocation_id);
+
+#.FN_BODY Mechanism-name
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE(mechanism_name);
+
+#.FN_BODY Calling-authentication-value
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE(calling_authentication_value);
+
+#.FN_BODY Calling-AP-title
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE_APTITLE(calling_AP_title);
+
+#.FN_BODY Key-id-element
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE(key_id_element);
+
+#.FN_BODY Iv-element
+ FILL_START;
+ %(DEFAULT_BODY)s
+ FILL_TABLE(iv_element);
+
+#.FN_BODY MESSAGE
+/**/#ifdef HAVE_LIBGCRYPT
+ clear_canon();
+/**/#endif
+ %(DEFAULT_BODY)s
+#.END
+
+#
+# Editor modelines - http://www.wireshark.org/tools/modelines.html
+#
+# Local variables:
+# c-basic-offset: 2
+# tab-width: 8
+# indent-tabs-mode: nil
+# End:
+#
+# vi: set shiftwidth=2 tabstop=8 expandtab:
+# :indentSize=2:tabSize=8:noTabs=true:
+#
diff --git a/epan/dissectors/asn1/c1222/packet-c1222-template.c b/epan/dissectors/asn1/c1222/packet-c1222-template.c
new file mode 100644
index 0000000000..42f0ab8a40
--- /dev/null
+++ b/epan/dissectors/asn1/c1222/packet-c1222-template.c
@@ -0,0 +1,1449 @@
+/* packet-c1222.c
+ * Routines for ANSI C12.22 packet dissection
+ * Copyright 2010, Edward J. Beroset, edward.beroset@elster.com
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/conversation.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+#include <epan/strutil.h>
+#include <epan/uat.h>
+#include <epan/oids.h>
+#include <wsutil/eax.h>
+#include "packet-ber.h"
+#include "packet-tcp.h"
+#include "packet-c1222.h"
+
+#define PNAME "ANSI C12.22"
+#define PSNAME "C12.22"
+#define PFNAME "c1222"
+#define C1222_PORT 1153 /* TCP port */
+
+/* C12.22 flag definitions */
+#define C1222_EPSEM_FLAG_RESERVED 0x80
+#define C1222_EPSEM_FLAG_RECOVERY_SESSION 0x40
+#define C1222_EPSEM_FLAG_PROXY_SERVICE_USED 0x20
+#define C1222_EPSEM_FLAG_ED_CLASS_INCLUDED 0x10
+#define C1222_EPSEM_FLAG_SECURITY_MODE 0x0c
+#define C1222_EPSEM_FLAG_RESPONSE_CONTROL 0x03
+
+/* if the packet is encrypted, it can be
+ * good, bad, or simply not checked
+ */
+#define C1222_EPSEM_CRYPTO_GOOD 0x01
+#define C1222_EPSEM_CRYPTO_BAD 0x02
+
+/* these defines are for each of the C12.22 services */
+#define C1222_CMD_IDENTIFY 0x20
+#define C1222_CMD_TERMINATE 0x21
+#define C1222_CMD_DISCONNECT 0x22
+#define C1222_CMD_FULL_READ 0x30
+#define C1222_CMD_DEFAULT_READ 0x3E
+#define C1222_CMD_PARTIAL_READ_OFFSET 0x3F
+#define C1222_CMD_FULL_WRITE 0x40
+#define C1222_CMD_DEFAULT_WRITE 0x4E
+#define C1222_CMD_PARTIAL_WRITE_OFFSET 0x4F
+#define C1222_CMD_LOGON 0x50
+#define C1222_CMD_SECURITY 0x51
+#define C1222_CMD_LOGOFF 0x52
+#define C1222_CMD_AUTHENTICATE 0x53
+#define C1222_CMD_NEGOTIATE 0x60
+#define C1222_CMD_WAIT 0x70
+#define C1222_CMD_TIMING_SETUP 0x71
+
+void proto_register_c1222(void);
+
+static dissector_handle_t c1222_handle=NULL;
+static dissector_handle_t c1222_udp_handle=NULL;
+
+/* Initialize the protocol and registered fields */
+static int proto_c1222 = -1;
+
+#include "packet-c1222-hf.c"
+/* These are the EPSEM pieces */
+/* first, the flag components */
+static int hf_c1222_epsem_flags = -1;
+static int hf_c1222_epsem_flags_reserved = -1;
+static int hf_c1222_epsem_flags_recovery = -1;
+static int hf_c1222_epsem_flags_proxy = -1;
+static int hf_c1222_epsem_flags_ed_class = -1;
+static int hf_c1222_epsem_flags_security_modes = -1;
+static int hf_c1222_epsem_flags_response_control = -1;
+/* and the structure of the flag components */
+static const int *c1222_flags[] = {
+ &hf_c1222_epsem_flags_reserved,
+ &hf_c1222_epsem_flags_recovery,
+ &hf_c1222_epsem_flags_proxy,
+ &hf_c1222_epsem_flags_ed_class,
+ &hf_c1222_epsem_flags_security_modes,
+ &hf_c1222_epsem_flags_response_control,
+ NULL
+};
+/* next the optional ed_class */
+static int hf_c1222_epsem_ed_class = -1;
+/* now the aggregate epsem */
+static int hf_c1222_epsem_total = -1;
+/* generic command */
+static int hf_c1222_cmd = -1;
+static int hf_c1222_err = -1;
+static int hf_c1222_data = -1;
+/* individual epsem fields */
+static int hf_c1222_logon_id = -1;
+static int hf_c1222_logon_user = -1;
+static int hf_c1222_security_password = -1;
+static int hf_c1222_auth_len = -1;
+static int hf_c1222_auth_data = -1;
+static int hf_c1222_read_table = -1;
+static int hf_c1222_read_offset = -1;
+static int hf_c1222_read_count = -1;
+static int hf_c1222_write_table = -1;
+static int hf_c1222_write_offset = -1;
+static int hf_c1222_write_size = -1;
+static int hf_c1222_write_data = -1;
+static int hf_c1222_procedure_num = -1;
+static int hf_c1222_write_chksum = -1;
+static int hf_c1222_wait_secs = -1;
+static int hf_c1222_neg_pkt_size = -1;
+static int hf_c1222_neg_nbr_pkts = -1;
+static int hf_c1222_timing_setup_traffic = -1;
+static int hf_c1222_timing_setup_inter_char = -1;
+static int hf_c1222_timing_setup_resp_to = -1;
+static int hf_c1222_timing_setup_nbr_retries = -1;
+
+/* the MAC */
+static int hf_c1222_epsem_mac = -1;
+
+/* crypto result flags */
+static int hf_c1222_epsem_crypto_good = -1;
+static int hf_c1222_epsem_crypto_bad = -1;
+
+/* Initialize the subtree pointers */
+static int ett_c1222 = -1;
+static int ett_c1222_epsem = -1;
+static int ett_c1222_flags = -1;
+static int ett_c1222_crypto = -1;
+static int ett_c1222_cmd = -1;
+
+#ifdef HAVE_LIBGCRYPT
+/* these pointers are for the header elements that may be needed to verify the crypto */
+static guint8 *aSO_context = NULL;
+static guint8 *called_AP_title = NULL;
+static guint8 *called_AP_invocation_id = NULL;
+static guint8 *calling_AE_qualifier = NULL;
+static guint8 *calling_AP_invocation_id = NULL;
+static guint8 *mechanism_name = NULL;
+static guint8 *calling_authentication_value = NULL;
+static guint8 *user_information = NULL;
+static guint8 *calling_AP_title = NULL;
+static guint8 *key_id_element = NULL;
+static guint8 *iv_element = NULL;
+
+/* these are the related lengths */
+static guint32 aSO_context_len = 0;
+static guint32 called_AP_title_len = 0;
+static guint32 called_AP_invocation_id_len = 0;
+static guint32 calling_AE_qualifier_len = 0;
+static guint32 calling_AP_invocation_id_len = 0;
+static guint32 mechanism_name_len = 0;
+static guint32 calling_authentication_value_len = 0;
+static guint32 user_information_len = 0;
+static guint32 calling_AP_title_len = 0;
+static guint32 key_id_element_len = 0;
+static guint32 iv_element_len = 0;
+#endif /* HAVE_LIBGCRYPT */
+
+#include "packet-c1222-ett.c"
+
+static expert_field ei_c1222_command_truncated = EI_INIT;
+static expert_field ei_c1222_bad_checksum = EI_INIT;
+static expert_field ei_c1222_epsem_missing = EI_INIT;
+#ifdef HAVE_LIBGCRYPT
+static expert_field ei_c1222_epsem_failed_authentication = EI_INIT;
+#else
+static expert_field ei_c1222_epsem_not_authenticated = EI_INIT;
+#endif
+static expert_field ei_c1222_epsem_not_decryped = EI_INIT;
+static expert_field ei_c1222_ed_class_missing = EI_INIT;
+static expert_field ei_c1222_epsem_ber_length_error = EI_INIT;
+static expert_field ei_c1222_epsem_field_length_error = EI_INIT;
+static expert_field ei_c1222_mac_missing = EI_INIT;
+
+/* Preferences */
+static int global_c1222_port = C1222_PORT;
+static gboolean c1222_desegment = TRUE;
+#ifdef HAVE_LIBGCRYPT
+static gboolean c1222_decrypt = TRUE;
+#endif
+static const gchar *c1222_baseoid_str = NULL;
+static guint8 *c1222_baseoid = NULL;
+static guint c1222_baseoid_len = 0;
+
+/*------------------------------
+ * Data Structures
+ *------------------------------
+ */
+static const value_string c1222_security_modes[] = {
+ { 0x00, "Cleartext"},
+ { 0x01, "Cleartext with authentication"},
+ { 0x02, "Ciphertext with authentication"},
+ { 0, NULL }
+};
+
+static const value_string c1222_response_control[] = {
+ { 0x00, "Always respond"},
+ { 0x01, "Respond on exception"},
+ { 0x02, "Never respond"},
+ { 0, NULL }
+};
+
+static const value_string tableflags[] = {
+ { 0x00, "ST" },
+ { 0x08, "MT" },
+ { 0x10, "Pending ST" },
+ { 0x18, "Pending MT" },
+ { 0, NULL }
+};
+
+static const value_string procflags[] = {
+ { 0x00, "SF" },
+ { 0x08, "MF" },
+ { 0, NULL }
+};
+
+static const value_string commandnames[] = {
+/* error codes are in the range 0x00 - 0x1f inclusive */
+ { 0x00, "OK" },
+ { 0x01, "Error" },
+ { 0x02, "Service Not Supported" },
+ { 0x03, "Insufficient Security Clearance" },
+ { 0x04, "Operation Not Possible" },
+ { 0x05, "Inappropriate Action Requested" },
+ { 0x06, "Device Busy" },
+ { 0x07, "Data Not Ready" },
+ { 0x08, "Data Locked" },
+ { 0x09, "Renegotiate Request" },
+ { 0x0A, "Invalid Service Sequence State" },
+ { 0x0B, "Security Mechanism Error" },
+ { 0x0C, "Unknown Application Title" },
+ { 0x0D, "Network Time-out" },
+ { 0x0E, "Network Not Reachable" },
+ { 0x0F, "Request Too Large" },
+ { 0x10, "Response Too Large" },
+ { 0x11, "Segmentation Not Possible" },
+ { 0x12, "Segmentation Error" },
+/* commands are in the range 0x20 - 0x7f inclusive */
+ {C1222_CMD_IDENTIFY, "Identify" },
+ {C1222_CMD_TERMINATE, "Terminate" },
+ {C1222_CMD_DISCONNECT, "Disconnect" },
+ {C1222_CMD_FULL_READ, "Full Read" },
+ {C1222_CMD_DEFAULT_READ, "Default Read" },
+ {C1222_CMD_PARTIAL_READ_OFFSET, "Partial Read Offset" },
+ {C1222_CMD_FULL_WRITE, "Full Write" },
+ {C1222_CMD_DEFAULT_WRITE, "Default Write" },
+ {C1222_CMD_PARTIAL_WRITE_OFFSET, "Partial Write Offset" },
+ {C1222_CMD_LOGON, "Logon" },
+ {C1222_CMD_SECURITY, "Security" },
+ {C1222_CMD_LOGOFF, "Logoff" },
+ {C1222_CMD_AUTHENTICATE, "Authenticate" },
+ {C1222_CMD_NEGOTIATE, "Negotiate" },
+ {C1222_CMD_NEGOTIATE | 0x1, "Negotiate w/ 1 Baud Rate" },
+ {C1222_CMD_NEGOTIATE | 0x2, "Negotiate w/ 2 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0x3, "Negotiate w/ 3 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0x4, "Negotiate w/ 4 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0x5, "Negotiate w/ 5 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0x6, "Negotiate w/ 6 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0x7, "Negotiate w/ 7 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0x8, "Negotiate w/ 8 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0x9, "Negotiate w/ 9 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0xA, "Negotiate w/ 10 Baud Rates" },
+ {C1222_CMD_NEGOTIATE | 0xB, "Negotiate w/ 11 Baud Rates" },
+ {C1222_CMD_WAIT, "Wait" },
+ {C1222_CMD_TIMING_SETUP, "Timing Setup" },
+ { 0, NULL }
+};
+
+#ifdef HAVE_LIBGCRYPT
+/* these are for the key tables */
+typedef struct _c1222_uat_data {
+ guint keynum;
+ guchar *key;
+ guint keylen;
+} c1222_uat_data_t;
+
+UAT_HEX_CB_DEF(c1222_users, keynum, c1222_uat_data_t)
+UAT_BUFFER_CB_DEF(c1222_users, key, c1222_uat_data_t, key, keylen)
+
+static c1222_uat_data_t *c1222_uat_data = NULL;
+static guint num_c1222_uat_data = 0;
+static uat_t *c1222_uat;
+
+/* these macros ares used to populate fields needed to verify crypto */
+#define FILL_START int length, start_offset = offset;
+#define FILL_TABLE(fieldname) \
+ length = offset - start_offset; \
+ fieldname = (guint8 *)tvb_memdup(wmem_packet_scope(), tvb, start_offset, length); \
+ fieldname##_len = length;
+#define FILL_TABLE_TRUNCATE(fieldname, len) \
+ length = 1 + 2*(offset - start_offset); \
+ fieldname = (guint8 *)tvb_memdup(wmem_packet_scope(), tvb, start_offset, length); \
+ fieldname##_len = len;
+#define FILL_TABLE_APTITLE(fieldname) \
+ length = offset - start_offset; \
+ switch (tvb_get_guint8(tvb, start_offset)) { \
+ case 0x80: /* relative OID */ \
+ tvb_ensure_bytes_exist(tvb, start_offset, length); \
+ fieldname##_len = length + c1222_baseoid_len; \
+ fieldname = (guint8 *)wmem_alloc(wmem_packet_scope(), fieldname##_len); \
+ fieldname[0] = 0x06; /* create absolute OID tag */ \
+ fieldname[1] = (fieldname##_len - 2) & 0xff; \
+ memcpy(&(fieldname[2]), c1222_baseoid, c1222_baseoid_len); \
+ tvb_memcpy(tvb, &(fieldname[c1222_baseoid_len+2]), start_offset+2, length-2); \
+ break; \
+ case 0x06: /* absolute OID */ \
+ default: \
+ fieldname = (guint8 *)tvb_memdup(wmem_packet_scope(), tvb, start_offset, length); \
+ fieldname##_len = length; \
+ break; \
+ }
+#else /* HAVE_LIBGCRYPT */
+#define FILL_TABLE(fieldname)
+#define FILL_TABLE_TRUNCATE(fieldname, len)
+#define FILL_TABLE_APTITLE(fieldname)
+#define FILL_START
+#endif /* HAVE_LIBGCRYPT */
+
+/*------------------------------
+ * Function Prototypes
+ *------------------------------
+ */
+void proto_reg_handoff_c1222(void);
+
+
+/*------------------------------
+ * Code
+ *------------------------------
+ */
+
+/**
+ * Calculates simple one's complement checksum.
+ *
+ * \param tvb pointer to tvbuff containing data to be checksummed
+ * \param offset offset within tvbuff to beginning of data
+ * \param len length of data to be checksummed
+ * \returns calculated checksum
+ */
+static guint8
+c1222_cksum(tvbuff_t *tvb, gint offset, int len)
+{
+ guint8 sum;
+ for (sum = 0; len; offset++, len--)
+ sum += tvb_get_guint8(tvb, offset);
+ return ~sum + 1;
+}
+/**
+ * Dissects C12.22 packet in detail (with a tree).
+ *
+ * \param tvb input buffer containing packet to be dissected
+ * \param pinfo the packet info of the current data
+ * \param tree the tree to append this item to
+ * \param length length of data
+ * \param offset the offset in the tvb
+ */
+static void
+parse_c1222_detailed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int cmd, guint32 *length, int *offset)
+{
+ guint16 user_id = 0;
+ guint8 *user_name = NULL;
+ guint8 *password = NULL;
+ guint8 auth_len = 0;
+ gchar *auth_req = NULL;
+ guint16 table = 0;
+ guint16 tblsize = 0;
+ guint8 chksum = 0;
+ guint16 calcsum = 0;
+ guint8 wait_seconds = 0;
+ int numrates = 0;
+ guint16 packet_size;
+ guint16 procedure_num = 0;
+ guint8 nbr_packet;
+ /* timing setup parameters */
+ guint8 traffic;
+ guint8 inter_char;
+ guint8 resp_to;
+ guint8 nbr_retries;
+ proto_item *item = NULL;
+
+ /* special case to simplify handling of Negotiate service */
+ if ((cmd & 0xF0) == C1222_CMD_NEGOTIATE) {
+ numrates = cmd & 0x0F;
+ cmd = C1222_CMD_NEGOTIATE;
+ }
+ proto_tree_add_uint(tree, cmd >= 0x20 ? hf_c1222_cmd : hf_c1222_err, tvb, *offset, 1, cmd);
+ (*offset)++;
+ (*length)--;
+ switch (cmd) {
+ case C1222_CMD_LOGON:
+ if (*length >= 12) {
+ user_id = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_logon_id, tvb, *offset, 2, user_id);
+ *offset += 2;
+ user_name = tvb_get_string_enc(wmem_packet_scope(),tvb, *offset, 10, ENC_ASCII);
+ proto_tree_add_string(tree, hf_c1222_logon_user, tvb, *offset, 10, user_name);
+ *offset += 10;
+ *length -= 12;
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (id %d, user \"%s\")",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"), user_id, user_name);
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 LOGON command truncated");
+ }
+ break;
+ case C1222_CMD_SECURITY:
+ if (*length >= 20) {
+ password = tvb_get_string_enc(wmem_packet_scope(),tvb, *offset, 20, ENC_ASCII);
+ proto_tree_add_string(tree, hf_c1222_security_password, tvb, *offset, 20, password);
+ *offset += 20;
+ *length -= 20;
+ if (*length >= 2) {
+ user_id = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_logon_id, tvb, *offset, 2, user_id);
+ *offset += 2;
+ *length -= 2;
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (password \"%s\", id %d)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"), password, user_id);
+ } else {
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (password \"%s\")",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"), password);
+ }
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 SECURITY command truncated");
+ }
+ break;
+ case C1222_CMD_AUTHENTICATE:
+ if (*length >= 1) {
+ auth_len = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_auth_len, tvb, *offset, 1, auth_len);
+ *offset += 1;
+ if (*length >= auth_len) {
+ auth_req = tvb_bytes_to_str(wmem_packet_scope(), tvb, *offset, auth_len);
+ proto_tree_add_item(tree, hf_c1222_auth_data, tvb, *offset, auth_len, ENC_NA);
+ *offset += auth_len;
+ *length -= auth_len + 1;
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (%d bytes: %s)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"), auth_len, auth_req);
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 AUTHENTICATE command truncated");
+ }
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 AUTHENTICATE command truncated");
+ }
+ break;
+ case C1222_CMD_FULL_READ:
+ if (*length >= 2) {
+ table = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_read_table, tvb, *offset, 2, table);
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (%s-%d)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"),
+ val_to_str((table >> 8) & 0xF8, tableflags,"Unknown (0x%04x)"), table & 0x7FF);
+ *offset += 2;
+ *length -= 2;
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 READ command truncated");
+ }
+ break;
+ case C1222_CMD_PARTIAL_READ_OFFSET:
+ if (*length >= 7) {
+ table = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_read_table, tvb, *offset, 2, table);
+ *offset += 2;
+ *length -= 2;
+ proto_tree_add_item(tree, hf_c1222_read_offset, tvb, *offset, 3, ENC_BIG_ENDIAN);
+ *offset += 3;
+ *length -= 3;
+ proto_tree_add_item(tree, hf_c1222_read_count, tvb, *offset, 2, ENC_BIG_ENDIAN);
+ *offset += 2;
+ *length -= 2;
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (%s-%d)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"),
+ val_to_str((table >> 8) & 0xF8, tableflags,"Unknown (0x%04x)"), table & 0x7FF);
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 READ command truncated");
+ }
+ break;
+ case C1222_CMD_FULL_WRITE:
+ if (*length >= 5) {
+ table = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_write_table, tvb, *offset, 2, table);
+ *offset += 2;
+ *length -= 2;
+ tblsize = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_write_size, tvb, *offset, 2, tblsize);
+ *offset += 2;
+ *length -= 2;
+ if (*length >= tblsize+1U) {
+ if (table == 7) {/* is it a procedure call? */
+ procedure_num = tvb_get_letohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_procedure_num, tvb, *offset, 2, procedure_num);
+ *offset += 2;
+ *length -= 2;
+ tblsize -= 2;
+ }
+ proto_tree_add_item(tree, hf_c1222_write_data, tvb, *offset, tblsize, ENC_NA);
+ *offset += tblsize;
+ *length -= tblsize;
+ chksum = tvb_get_guint8(tvb, *offset);
+ item = proto_tree_add_uint(tree, hf_c1222_write_chksum, tvb, *offset, 1, chksum);
+ if (table == 7) {/* is it a procedure call? */
+ calcsum = c1222_cksum(tvb, (*offset)-tblsize-2, tblsize+2);
+ } else {
+ calcsum = c1222_cksum(tvb, (*offset)-tblsize, tblsize);
+ }
+ if (chksum != calcsum) {
+ expert_add_info_format(pinfo, item, &ei_c1222_bad_checksum, "Bad checksum [should be 0x%02x]", calcsum);
+ }
+ if (table == 7) {/* is it a procedure call? */
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (%s-%d, %s-%d)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"),
+ val_to_str((table >> 8) & 0xF8, tableflags,"Unknown (0x%04x)"), table & 0x7FF,
+ val_to_str((procedure_num >> 8) & 0xF8, procflags,"Unknown (0x%04x)"), procedure_num & 0x7FF);
+ } else {
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (%s-%d)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"),
+ val_to_str((table >> 8) & 0xF8, tableflags,"Unknown (0x%04x)"), table & 0x7FF);
+ }
+ *offset += 1;
+ *length -= 1;
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 WRITE command truncated");
+ }
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 WRITE command truncated");
+ }
+ break;
+ case C1222_CMD_PARTIAL_WRITE_OFFSET:
+ if (*length >= 8) {
+ table = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_write_table, tvb, *offset, 2, table);
+ *offset += 2;
+ *length -= 2;
+ proto_tree_add_item(tree, hf_c1222_write_offset, tvb, *offset, 3, ENC_BIG_ENDIAN);
+ *offset += 3;
+ *length -= 3;
+ tblsize = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_write_size, tvb, *offset, 2, tblsize);
+ *offset += 2;
+ *length -= 2;
+ if (*length >= tblsize+1U) {
+ proto_tree_add_item(tree, hf_c1222_write_data, tvb, *offset, tblsize, ENC_NA);
+ *offset += tblsize;
+ *length -= tblsize;
+ chksum = tvb_get_guint8(tvb, *offset);
+ item = proto_tree_add_uint(tree, hf_c1222_write_chksum, tvb, *offset, 1, chksum);
+ calcsum = c1222_cksum(tvb, (*offset)-tblsize, tblsize);
+ if (chksum != calcsum) {
+ expert_add_info_format(pinfo, item, &ei_c1222_bad_checksum, "Bad checksum [should be 0x%02x]", calcsum);
+ }
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (%s-%d)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"),
+ val_to_str((table >> 8) & 0xF8, tableflags,"Unknown (0x%04x)"), table & 0x7FF);
+ *offset += 1;
+ *length -= 1;
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 WRITE command truncated");
+ }
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 WRITE command truncated");
+ }
+ break;
+ case C1222_CMD_WAIT:
+ if (*length >= 1) {
+ wait_seconds = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_wait_secs, tvb, *offset, 1, wait_seconds);
+ *offset += 1;
+ *length -= 1;
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (%d seconds)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"), wait_seconds);
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 WAIT command truncated");
+ }
+ break;
+ case C1222_CMD_NEGOTIATE:
+ if (*length >= 3) {
+ packet_size = tvb_get_ntohs(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_neg_pkt_size, tvb, *offset, 2, packet_size);
+ *offset += 2;
+ *length -= 2;
+ nbr_packet = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_neg_nbr_pkts, tvb, *offset, 1, nbr_packet);
+ *offset += 1;
+ *length -= 1;
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (pkt size %d, num pkts %d, with %d baud rates)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"), packet_size, nbr_packet, numrates);
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 NEGOTIATE command truncated");
+ }
+ break;
+ case C1222_CMD_TIMING_SETUP:
+ if (*length >= 4) {
+ traffic = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_timing_setup_traffic, tvb, *offset, 1, traffic);
+ *offset += 1;
+ *length -= 1;
+ inter_char = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_timing_setup_inter_char, tvb, *offset, 1, inter_char);
+ *offset += 1;
+ *length -= 1;
+ resp_to = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_timing_setup_resp_to, tvb, *offset, 1, resp_to);
+ *offset += 1;
+ *length -= 1;
+ nbr_retries = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_uint(tree, hf_c1222_timing_setup_nbr_retries, tvb, *offset, 1, nbr_retries);
+ *offset += 1;
+ *length -= 1;
+ proto_item_set_text(tree, "C12.22 EPSEM: %s (traffic to %d s, inter-char to %d s, response to %d s, %d retries)",
+ val_to_str(cmd,commandnames,"Unknown (0x%02x)"), traffic, inter_char, resp_to, nbr_retries);
+ } else {
+ expert_add_info_format(pinfo, tree, &ei_c1222_command_truncated, "C12.22 NEGOTIATE command truncated");
+ }
+ break;
+
+ default:
+ /* don't do anything */
+ proto_item_set_text(tree, "C12.22 EPSEM: %s", val_to_str(cmd, commandnames, "Unknown (0x%02x)"));
+ if (*length) {
+ proto_tree_add_item(tree, hf_c1222_data, tvb, *offset, *length, ENC_NA);
+ }
+ break;
+ }
+}
+
+#ifdef HAVE_LIBGCRYPT
+typedef struct tagTOP_ELEMENT_CONTROL
+{
+ /* TRUE if this tag is required */
+ gboolean required;
+ /* TRUE if we must truncate this tag */
+ gboolean truncate;
+ /* actual hex value of the tag we're seeking */
+ guint8 tag;
+ /* if TRUE, add tag and length before copying */
+ gboolean addtag;
+ /* pointer to pointer to memory copy of element */
+ guint8 **element;
+ /* pointer to element length */
+ guint32 *length;
+} TOP_ELEMENT_CONTROL;
+
+static const TOP_ELEMENT_CONTROL canonifyTable[] = {
+ { FALSE, FALSE, 0xA1, TRUE, &aSO_context, &aSO_context_len },
+ { TRUE , FALSE, 0xA2, TRUE, &called_AP_title, &called_AP_title_len },
+ { FALSE, FALSE, 0xA4, TRUE, &called_AP_invocation_id, &called_AP_invocation_id_len },
+ { FALSE, FALSE, 0xA7, TRUE, &calling_AE_qualifier, &calling_AE_qualifier_len },
+ { TRUE, FALSE, 0xA8, TRUE, &calling_AP_invocation_id, &calling_AP_invocation_id_len },
+ { FALSE, FALSE, 0x8B, TRUE, &mechanism_name, &mechanism_name_len },
+ { FALSE, FALSE, 0xAC, TRUE, &calling_authentication_value, &calling_authentication_value_len },
+ { TRUE , TRUE , 0xBE, TRUE, &user_information, &user_information_len },
+ { FALSE, FALSE, 0xA6, TRUE, &calling_AP_title, &calling_AP_title_len },
+ { FALSE, FALSE, 0xAC, FALSE, &key_id_element, &key_id_element_len },
+ { FALSE, FALSE, 0xAC, FALSE, &iv_element, &iv_element_len },
+ { FALSE, FALSE, 0x0, TRUE, NULL, NULL }
+};
+
+static void
+clear_canon(void)
+{
+ const TOP_ELEMENT_CONTROL *t = canonifyTable;
+
+ for (t = canonifyTable; t->element != NULL; t++) {
+ *(t->length) = 0;
+ *(t->element) = NULL;
+ }
+}
+
+/**
+ * Calculates the size of the passed number n as encoded as a BER length field.
+ *
+ * \param n is the length value to be BER encoded
+ * \returns the sized of the encoding
+ */
+static guint32
+get_ber_len_size(guint32 n)
+{
+ guint32 len = 1;
+ if (n > 0x7f) len++;
+ if (n > 0xff) len++;
+ if (n > 0xffff) len++;
+ if (n > 0xffffff) len++;
+ return len;
+}
+/**
+ * Encodes the passed value n as a BER-encoded length at puts it in memory.
+ *
+ * \param ptr points to the buffer to be written
+ * \param n is the length to be BER encoded
+ * \param maxsize is the maximum number of bytes we're allowed to write
+ * \returns length of encoded value in bytes
+ */
+static int
+encode_ber_len(guint8 *ptr, guint32 n, int maxsize)
+{
+ int len = get_ber_len_size(n);
+ if (len > maxsize) return 0;
+ if (len == 1) {
+ *ptr = 0x7f & n;
+ } else {
+ *ptr = (len -1) | 0x80;
+ for (ptr += len-1; n; n >>= 8)
+ *ptr-- = n & 0xff;
+ }
+ return len;
+
+}
+
+/**
+ * Checks a new encryption table item for validity.
+ *
+ * \param n points to the new record
+ * \param err is updated to point to an error string if needed
+ * \return FALSE if error; TRUE otherwise
+ */
+static gboolean
+c1222_uat_data_update_cb(void* n, char** err)
+{
+ c1222_uat_data_t* new_rec = (c1222_uat_data_t *)n;
+
+ if (new_rec->keynum > 0xff) {
+ *err = g_strdup("Invalid key number; must be less than 256");
+ return FALSE;
+ }
+ if (new_rec->keylen != EAX_SIZEOF_KEY) {
+ *err = g_strdup("Invalid key size; must be 16 bytes");
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ * Canonifies header fields in preparation for authenticating and/or decrypting the packet.
+ *
+ * \param buff points to the allocated canonization buffer
+ * \param offset points to start of unallocated space in buffer and
+ is updated as we put bytes into buffer
+ * \param buffsize total size of allocated buffer
+ * \return FALSE if element is required and not present; otherwise TRUE
+ */
+static gboolean
+canonify_unencrypted_header(guchar *buff, guint32 *offset, guint32 buffsize)
+{
+ const TOP_ELEMENT_CONTROL *t = canonifyTable;
+ guint32 len;
+
+ for (t = canonifyTable; t->element != NULL; t++)
+ {
+ len = *(t->length);
+ if (t->required && *(t->element) == NULL)
+ return FALSE;
+ if (*(t->element) != NULL) {
+ if (t->addtag) {
+ /* recreate original tag and length */
+ buff[(*offset)++] = t->tag;
+ (*offset) += encode_ber_len(&buff[*offset], len, 4);
+ }
+ if (t->truncate) {
+ len = 3+2*get_ber_len_size(len);
+ }
+ /* bail out if the cannonization buffer is too small */
+ /* this should never happen! */
+ if (buffsize < *offset + len) {
+ return FALSE;
+ }
+ memcpy(&buff[*offset], *(t->element), len);
+ (*offset) += len;
+ if (t->addtag) {
+ *(t->element) = NULL;
+ }
+ }
+ }
+ return TRUE;
+}
+
+/**
+ * Looks up the required key in the key table.
+ *
+ * \param keybuff is updated with a copy of the key data if successful lookup.
+ * \param keyid is the ID number of the desired key
+ * \returns TRUE if key was found; otherwise FALSE
+ */
+static gboolean
+keylookup(guint8 *keybuff, guint8 keyid)
+{
+ guint i;
+
+ if (c1222_uat_data == NULL)
+ return FALSE;
+ for (i = 0; i < num_c1222_uat_data; i++) {
+ if (c1222_uat_data[i].keynum == keyid) {
+ memcpy(keybuff, c1222_uat_data[i].key, EAX_SIZEOF_KEY);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/**
+ * Authenticates and decrypts the passed packet.
+ *
+ * \param buffer points to a memory copy of the packet to be authenticated/decrypted
+ * and contains the decrypted value on successful return.
+ * \param length lenth of input packet
+ * \param decrypt TRUE if packet is to be authenticated and decrypted; FALSE if authentication only is requested
+ * \returns TRUE if the requested operation was successful; otherwise FALSE
+ */
+static gboolean
+decrypt_packet(guchar *buffer, guint32 length, gboolean decrypt)
+{
+#define CANONBUFFSIZE 300U
+ guchar canonbuff[CANONBUFFSIZE];
+ guint8 c1222_key[EAX_SIZEOF_KEY];
+ guchar key_id = 0;
+ guint32 offset = 0;
+ gboolean status = FALSE;
+
+ /* must be at least 4 bytes long to include the MAC */
+ if (length < 4)
+ return status;
+ if (key_id_element != NULL)
+ key_id = key_id_element[0];
+ /* extract unencrypted header information */
+ if (!canonify_unencrypted_header(canonbuff, &offset, CANONBUFFSIZE))
+ return status;
+ /* decrypt and authenticate in place */
+/* PARAMETERS: pN : Pointer to ClearText (Input, Canonified form). */
+/* pK : Pointer to secret key (Input). */
+/* pC : Pointer to CipherText (Input/Output). */
+/* SizeN : Byte length of ClearText buffer. */
+/* SizeK : Byte length of secret key. */
+/* SizeC : Byte length of CipherText buffer. */
+/* pMac : Four byte Message Authentication Code. */
+/* Mode : Operating mode (See EAX_MODE_xxx). */
+/* RETURNS: TRUE if message has been authenticated. */
+/* FALSE if not authenticated, invalid Mode, or error. */
+ if (offset) {
+ if (!keylookup((guint8 *)&c1222_key, key_id))
+ return FALSE;
+ status = Eax_Decrypt(canonbuff, c1222_key, buffer,
+ offset, EAX_SIZEOF_KEY, length-4,
+ (MAC_T *)&buffer[length-4],
+ decrypt ? EAX_MODE_CIPHERTEXT_AUTH : EAX_MODE_CLEARTEXT_AUTH);
+ }
+ return status;
+}
+#endif /* HAVE_LIBGCRYPT */
+
+/**
+ * Checks to make sure that a complete, valid BER-encoded length is in the buffer.
+ *
+ * \param tvb contains the buffer to be examined
+ * \param offset is the offset within the buffer at which the BER-encoded length begins
+ * \returns TRUE if a complete, valid BER-encoded length is in the buffer; otherwise FALSE
+ */
+static gboolean
+ber_len_ok(tvbuff_t *tvb, int offset)
+{
+ guint8 ch;
+
+ if (tvb_offset_exists(tvb, offset)) {
+ ch = tvb_get_guint8(tvb, offset);
+ offset++;
+ if (!(ch & 0x80)) {
+ return TRUE;
+ } else if (tvb_offset_exists(tvb, offset)) {
+ ch = tvb_get_guint8(tvb, offset);
+ offset++;
+ if (!(ch & 0x80)) {
+ return TRUE;
+ } else if (tvb_offset_exists(tvb, offset)) {
+ ch = tvb_get_guint8(tvb, offset);
+ offset++;
+ if (!(ch & 0x80)) {
+ return TRUE;
+ } else if (tvb_offset_exists(tvb, offset)) {
+ ch = tvb_get_guint8(tvb, offset);
+ /*offset++;*/
+ if (!(ch & 0x80)) {
+ return TRUE;
+ }
+ }
+ }
+ }
+ }
+ return FALSE;
+}
+
+/**
+ * Dissects the EPSEM portion of the User-information part of a C12.22 message.
+ *
+ * \param tvb the tv buffer of the current data
+ * \param offset the offset in the tvb
+ * \param len length of data
+ * \param pinfo the packet info of the current data
+ * \param tree the tree to append this item to
+ */
+static int
+dissect_epsem(tvbuff_t *tvb, int offset, guint32 len, packet_info *pinfo, proto_tree *tree)
+{
+ proto_tree *cmd_tree = NULL;
+ proto_tree *ct = NULL;
+ proto_tree *crypto_tree = NULL;
+ proto_tree *yt = NULL;
+ proto_item *item = NULL;
+ guint8 flags;
+ int local_offset;
+ gint len2;
+ int cmd_err;
+ gboolean ind;
+#ifdef HAVE_LIBGCRYPT
+ guchar *buffer;
+#endif
+ tvbuff_t *epsem_buffer = NULL;
+ gboolean crypto_good = FALSE;
+ gboolean crypto_bad = FALSE;
+ gboolean hasmac = FALSE;
+ gboolean encrypted = FALSE;
+
+ if ((tvb == NULL) && (len == 0)) {
+ expert_add_info(pinfo, tree, &ei_c1222_epsem_missing);
+ return offset;
+ }
+ /* parse the flags byte which is always unencrypted */
+ flags = tvb_get_guint8(tvb, offset);
+ proto_tree_add_bitmask(tree, tvb, offset, hf_c1222_epsem_flags, ett_c1222_flags, c1222_flags, ENC_BIG_ENDIAN);
+ offset++;
+ switch ((flags & C1222_EPSEM_FLAG_SECURITY_MODE) >> 2) {
+ case EAX_MODE_CIPHERTEXT_AUTH:
+ /* mode is ciphertext with authentication */
+ hasmac = TRUE;
+ len2 = tvb_reported_length_remaining(tvb, offset);
+ if (len2 <= 0)
+ return offset;
+ encrypted = TRUE;
+#ifdef HAVE_LIBGCRYPT
+ if (c1222_decrypt) {
+ buffer = (guchar *)tvb_memdup(wmem_packet_scope(), tvb, offset, len2);
+ if (!decrypt_packet(buffer, len2, TRUE)) {
+ crypto_bad = TRUE;
+ } else {
+ epsem_buffer = tvb_new_real_data(buffer, len2, len2);
+ tvb_set_child_real_data_tvbuff(tvb, epsem_buffer);
+ add_new_data_source(pinfo, epsem_buffer, "Decrypted EPSEM Data");
+ crypto_good = TRUE;
+ encrypted = FALSE;
+ }
+ }
+#endif
+ break;
+ case EAX_MODE_CLEARTEXT_AUTH:
+ /* mode is cleartext with authentication */
+ hasmac = TRUE;
+ len2 = tvb_reported_length_remaining(tvb, offset);
+ if (len2 <= 0)
+ return offset;
+ epsem_buffer = tvb_new_subset_remaining(tvb, offset);
+#ifdef HAVE_LIBGCRYPT
+ buffer = (guchar *)tvb_memdup(wmem_packet_scope(), tvb, offset, len2);
+ if (c1222_decrypt) {
+ if (!decrypt_packet(buffer, len2, FALSE)) {
+ crypto_bad = TRUE;
+ expert_add_info(pinfo, tree, &ei_c1222_epsem_failed_authentication);
+ } else {
+ crypto_good = TRUE;
+ }
+ }
+#else /* HAVE_LIBGCRYPT */
+ expert_add_info(pinfo, tree, &ei_c1222_epsem_not_authenticated);
+#endif /* HAVE_LIBGCRYPT */
+ break;
+ default:
+ /* it's not encrypted */
+ epsem_buffer = tvb_new_subset_remaining(tvb, offset);
+ }
+ /* it's only encrypted if we have an undecrypted payload */
+ if (encrypted) {
+ proto_tree_add_item(tree, hf_c1222_epsem_total, tvb, offset, -1, ENC_NA);
+ expert_add_info(pinfo, tree, &ei_c1222_epsem_not_decryped);
+ local_offset = offset+len2-4;
+ epsem_buffer = tvb;
+ } else { /* it's not (now) encrypted */
+ local_offset = 0;
+ /* retrieve the ed_class if it's there */
+ if (flags & C1222_EPSEM_FLAG_ED_CLASS_INCLUDED) {
+ if (tvb_offset_exists(epsem_buffer, local_offset+4-1)) {
+ proto_tree_add_item(tree, hf_c1222_epsem_ed_class, epsem_buffer, local_offset, 4, ENC_NA);
+ local_offset += 4;
+ } else {
+ expert_add_info(pinfo, tree, &ei_c1222_ed_class_missing);
+ }
+ }
+ /* what follows are one or more <epsem-data> elements possibly followed by
+ * a <mac>. Each <epsem-data> element is defined as <service-length><res-req>,
+ * so we fetch such pairs until there isn't anything left (except possibly
+ * the <mac>).
+ */
+ while (tvb_offset_exists(epsem_buffer, local_offset+(hasmac?5:1))) {
+ if (ber_len_ok(epsem_buffer, local_offset)) {
+ local_offset = dissect_ber_length(pinfo, tree, epsem_buffer, local_offset, (guint32 *)&len2, &ind);
+ } else {
+ expert_add_info(pinfo, tree, &ei_c1222_epsem_ber_length_error);
+ return offset+len;
+ }
+ if (tvb_offset_exists(epsem_buffer, local_offset+len2-1)) {
+ cmd_err = tvb_get_guint8(epsem_buffer, local_offset);
+ ct = proto_tree_add_item(tree, hf_c1222_epsem_total, epsem_buffer, local_offset, len2, ENC_NA);
+ cmd_tree = proto_item_add_subtree(ct, ett_c1222_cmd);
+ parse_c1222_detailed(epsem_buffer, pinfo, cmd_tree, cmd_err, (guint32 *)&len2, &local_offset);
+ local_offset += len2;
+ } else {
+ expert_add_info(pinfo, tree, &ei_c1222_epsem_field_length_error);
+ return offset+len;
+ }
+ }
+ }
+ if (hasmac) {
+ if (tvb_offset_exists(epsem_buffer, local_offset+4-1)) {
+ yt = proto_tree_add_item(tree, hf_c1222_epsem_mac, epsem_buffer, local_offset, 4, ENC_NA);
+ /* now we have enough information to fill in the crypto subtree */
+ crypto_tree = proto_item_add_subtree(yt, ett_c1222_crypto);
+ item = proto_tree_add_boolean(crypto_tree, hf_c1222_epsem_crypto_good, tvb, local_offset, 4, crypto_good);
+ PROTO_ITEM_SET_GENERATED(item);
+ item = proto_tree_add_boolean(crypto_tree, hf_c1222_epsem_crypto_bad, tvb, local_offset, 4, crypto_bad);
+ PROTO_ITEM_SET_GENERATED(item);
+ } else {
+ expert_add_info(pinfo, tree, &ei_c1222_mac_missing);
+ return offset+len;
+ }
+ }
+ return offset;
+}
+
+#include "packet-c1222-fn.c"
+
+/**
+ * Dissects a a full (reassembled) C12.22 message.
+ *
+ * \param tvb the tv buffer of the current data
+ * \param pinfo the packet info of the current data
+ * \param tree the tree to append this item to
+ */
+static int
+dissect_c1222_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *c1222_item = NULL;
+ proto_tree *c1222_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PNAME);
+
+ /* create the c1222 protocol tree */
+ c1222_item = proto_tree_add_item(tree, proto_c1222, tvb, 0, -1, ENC_NA);
+ c1222_tree = proto_item_add_subtree(c1222_item, ett_c1222);
+ return dissect_MESSAGE_PDU(tvb, pinfo, c1222_tree, NULL);
+}
+
+/**
+ * Fetches the length of an entire C12.22 message to assist in reassembly.
+ *
+ * \param pinfo the packet info of the current data
+ * \param tvb the tv buffer of the current data
+ * \param offset the offset in the tvb
+ * \returns length of entire C12.22 message
+ */
+static guint
+get_c1222_message_len(packet_info *pinfo, tvbuff_t *tvb, int offset, void *data _U_)
+{
+ int orig_offset;
+ guint length;
+ gboolean ind;
+
+ orig_offset = offset;
+ /* note that this assumes a Tag length of 1 which is always valid for C12.22 */
+ offset = dissect_ber_length(pinfo, NULL, tvb, offset+1, &length, &ind);
+ return length+(offset - orig_offset);
+}
+
+/**
+ * Reassembles and dissects C12.22 messages.
+ *
+ * \param tvb the tv buffer of the current data
+ * \param pinfo the packet info of the current data
+ * \param tree the tree to append this item to
+ */
+static int
+dissect_c1222(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ tcp_dissect_pdus(tvb, pinfo, tree, c1222_desegment, 5,
+ get_c1222_message_len, dissect_c1222_common, data);
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_c1222 -------------------------------------------*/
+void proto_register_c1222(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_c1222_epsem_flags,
+ { "C12.22 EPSEM Flags", "c1222.epsem.flags",
+ FT_UINT8, BASE_HEX,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_flags_reserved,
+ { "C12.22 Reserved Flag", "c1222.epsem.flags.reserved",
+ FT_BOOLEAN, 8,
+ NULL, C1222_EPSEM_FLAG_RESERVED,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_flags_recovery,
+ { "C12.22 Recovery Flag", "c1222.epsem.flags.recovery",
+ FT_BOOLEAN, 8,
+ NULL, C1222_EPSEM_FLAG_RECOVERY_SESSION,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_flags_proxy,
+ { "C12.22 Proxy Service Used Flag", "c1222.epsem.flags.proxy",
+ FT_BOOLEAN, 8,
+ NULL, C1222_EPSEM_FLAG_PROXY_SERVICE_USED,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_flags_ed_class,
+ { "C12.22 ED Class Flag", "c1222.epsem.flags.ed_class",
+ FT_BOOLEAN, 8,
+ NULL, C1222_EPSEM_FLAG_ED_CLASS_INCLUDED,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_flags_security_modes,
+ { "C12.22 Security Mode Flags", "c1222.epsem.flags.security",
+ FT_UINT8, BASE_HEX,
+ VALS(c1222_security_modes), C1222_EPSEM_FLAG_SECURITY_MODE,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_flags_response_control,
+ { "C12.22 Response Control Flags", "c1222.epsem.flags.response_control",
+ FT_UINT8, BASE_HEX,
+ VALS(c1222_response_control), C1222_EPSEM_FLAG_RESPONSE_CONTROL,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_ed_class,
+ { "C12.22 EPSEM ED Class", "c1222.epsem.edclass",
+ FT_BYTES, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_total,
+ { "C12.22 EPSEM", "c1222.epsem.data",
+ FT_BYTES, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_mac,
+ { "C12.22 EPSEM MAC", "c1222.epsem.mac",
+ FT_BYTES, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_cmd,
+ { "C12.22 Command", "c1222.cmd",
+ FT_UINT8, BASE_HEX,
+ VALS(commandnames), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_err,
+ { "C12.22 Response", "c1222.err",
+ FT_UINT8, BASE_HEX,
+ VALS(commandnames), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_logon_id,
+ { "C12.22 Logon User-Id", "c1222.logon.id",
+ FT_UINT16, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_logon_user,
+ { "C12.22 Logon User", "c1222.logon.user",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_security_password,
+ { "C12.22 Security Password", "c1222.security.password",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_auth_len,
+ { "C12.22 Authenticate Request Length", "c1222.authenticate.len",
+ FT_UINT8, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_auth_data,
+ { "C12.22 Authenticate Data", "c1222.authenticate.data",
+ FT_BYTES, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_read_table,
+ { "C12.22 Table", "c1222.read.table",
+ FT_UINT16, BASE_HEX,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_read_offset,
+ { "C12.22 Offset", "c1222.read.offset",
+ FT_UINT24, BASE_HEX,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_read_count,
+ { "C12.22 Count", "c1222.read.count",
+ FT_UINT16, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_write_table,
+ { "C12.22 Table", "c1222.write.table",
+ FT_UINT16, BASE_HEX,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_write_offset,
+ { "C12.22 Offset", "c1222.write.offset",
+ FT_UINT24, BASE_HEX,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_write_size,
+ { "C12.22 Table Size", "c1222.write.size",
+ FT_UINT16, BASE_HEX,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_write_data,
+ { "C12.22 Table Data", "c1222.write.data",
+ FT_BYTES, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_write_chksum,
+ { "C12.22 Table Data Checksum", "c1222.write.chksum",
+ FT_UINT8, BASE_HEX,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_procedure_num,
+ { "C12.22 Procedure Number", "c1222.procedure.num",
+ FT_UINT16, BASE_DEC,
+ NULL, 0x7ff,
+ NULL, HFILL }
+ },
+ { &hf_c1222_neg_pkt_size,
+ { "C12.22 Negotiate Packet Size", "c1222.negotiate.pktsize",
+ FT_UINT16, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_neg_nbr_pkts,
+ { "C12.22 Negotiate Number of Packets", "c1222.negotiate.numpkts",
+ FT_UINT8, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_wait_secs,
+ { "C12.22 Wait Seconds", "c1222.wait.seconds",
+ FT_UINT8, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_timing_setup_traffic,
+ { "C12.22 Timing Setup Channel Traffic Timeout", "c1222.timingsetup.traffic",
+ FT_UINT8, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_timing_setup_inter_char,
+ { "C12.22 Timing Setup Intercharacter Timeout", "c1222.timingsetup.interchar",
+ FT_UINT8, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_timing_setup_resp_to,
+ { "C12.22 Timing Setup Response Timeout", "c1222.timingsetup.respto",
+ FT_UINT8, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_timing_setup_nbr_retries,
+ { "C12.22 Timing Setup Number of Retries", "c1222.timingsetup.nbrretries",
+ FT_UINT8, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_data,
+ { "C12.22 data", "c1222.data",
+ FT_BYTES, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_c1222_epsem_crypto_good,
+ { "Crypto good", "c1222.crypto_good",
+ FT_BOOLEAN, BASE_NONE,
+ NULL, 0x0,
+ "True: crypto ok; False: doesn't match or not checked", HFILL }
+ },
+ { &hf_c1222_epsem_crypto_bad,
+ { "Crypto bad", "c1222.crypto_bad",
+ FT_BOOLEAN, BASE_NONE,
+ NULL, 0x0,
+ "True: crypto bad; False: crypto ok or not checked", HFILL }
+ },
+#include "packet-c1222-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_c1222,
+ &ett_c1222_epsem,
+ &ett_c1222_flags,
+ &ett_c1222_crypto,
+ &ett_c1222_cmd,
+#include "packet-c1222-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_c1222_command_truncated, { "c1222.command_truncated", PI_MALFORMED, PI_ERROR, "C12.22 command truncated", EXPFILL }},
+ { &ei_c1222_bad_checksum, { "c1222.bad_checksum", PI_CHECKSUM, PI_ERROR, "Bad checksum", EXPFILL }},
+ { &ei_c1222_epsem_missing, { "c1222.epsem.missing", PI_MALFORMED, PI_ERROR, "C12.22 EPSEM missing", EXPFILL }},
+#ifdef HAVE_LIBGCRYPT
+ { &ei_c1222_epsem_failed_authentication, { "c1222.epsem.failed_authentication", PI_SECURITY, PI_ERROR, "C12.22 EPSEM failed authentication", EXPFILL }},
+#else
+ { &ei_c1222_epsem_not_authenticated, { "c1222.epsem.not_authenticated", PI_SECURITY, PI_WARN, "C12.22 EPSEM could not be authenticated", EXPFILL }},
+#endif
+ { &ei_c1222_epsem_not_decryped, { "c1222.epsem.not_decryped", PI_UNDECODED, PI_WARN, "C12.22 EPSEM could not be decrypted", EXPFILL }},
+ { &ei_c1222_ed_class_missing, { "c1222.ed_class_missing", PI_SECURITY, PI_ERROR, "C12.22 ED Class missing", EXPFILL }},
+ { &ei_c1222_epsem_ber_length_error, { "c1222.epsem.ber_length_error", PI_MALFORMED, PI_ERROR, "C12.22 EPSEM BER length error", EXPFILL }},
+ { &ei_c1222_epsem_field_length_error, { "c1222.epsem.field_length_error", PI_MALFORMED, PI_ERROR, "C12.22 EPSEM field length error", EXPFILL }},
+ { &ei_c1222_mac_missing, { "c1222.mac_missing", PI_MALFORMED, PI_ERROR, "C12.22 MAC missing", EXPFILL }},
+ };
+
+ expert_module_t* expert_c1222;
+ module_t *c1222_module;
+
+#ifdef HAVE_LIBGCRYPT
+ static uat_field_t c1222_uat_flds[] = {
+ UAT_FLD_HEX(c1222_users,keynum,"Key ID","Key identifier in hexadecimal"),
+ UAT_FLD_BUFFER(c1222_users, key, "Key", "Encryption key as 16-byte hex string"),
+ UAT_END_FIELDS
+ };
+#endif /* HAVE_LIBGCRYPT */
+
+ /* Register protocol */
+ proto_c1222 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_c1222, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_c1222 = expert_register_protocol(proto_c1222);
+ expert_register_field_array(expert_c1222, ei, array_length(ei));
+ c1222_module = prefs_register_protocol(proto_c1222, proto_reg_handoff_c1222);
+ prefs_register_bool_preference(c1222_module, "desegment",
+ "Reassemble all C12.22 messages spanning multiple TCP segments",
+ "Whether the C12.22 dissector should reassemble all messages spanning multiple TCP segments",
+ &c1222_desegment);
+ prefs_register_string_preference(c1222_module, "baseoid", "Base OID to use for relative OIDs",
+ "Base object identifier for use in resolving relative object identifiers",
+ &c1222_baseoid_str);
+#ifdef HAVE_LIBGCRYPT
+ prefs_register_bool_preference(c1222_module, "decrypt",
+ "Verify crypto for all applicable C12.22 messages",
+ "Whether the C12.22 dissector should verify the crypto for all relevant messages",
+ &c1222_decrypt);
+
+ c1222_uat = uat_new("Decryption Table",
+ sizeof(c1222_uat_data_t), /* record size */
+ "c1222_decryption_table", /* filename */
+ TRUE, /* from_profile */
+ &c1222_uat_data, /* data_ptr */
+ &num_c1222_uat_data, /* numitems_ptr */
+ UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
+ NULL, /* help */
+ NULL, /* copy callback */
+ c1222_uat_data_update_cb, /* update callback */
+ NULL, /* free callback */
+ NULL, /* post update callback */
+ c1222_uat_flds); /* UAT field definitions */
+
+ prefs_register_uat_preference(c1222_module,
+ "decryption_table",
+ "Decryption Table",
+ "Table of security parameters for decryption of C12.22 packets",
+ c1222_uat);
+#endif /* HAVE_LIBGCRYPT */
+}
+
+/*--- proto_reg_handoff_c1222 ---------------------------------------*/
+void
+proto_reg_handoff_c1222(void)
+{
+ static gboolean initialized = FALSE;
+ guint8 *temp = NULL;
+
+ if( !initialized ) {
+ c1222_handle = create_dissector_handle(dissect_c1222, proto_c1222);
+ c1222_udp_handle = create_dissector_handle(dissect_c1222_common, proto_c1222);
+ dissector_add_uint("tcp.port", global_c1222_port, c1222_handle);
+ dissector_add_uint("udp.port", global_c1222_port, c1222_udp_handle);
+ initialized = TRUE;
+ }
+ if (c1222_baseoid_str && (c1222_baseoid_str[0] != '\0') &&
+ ((c1222_baseoid_len = oid_string2encoded(NULL, c1222_baseoid_str, &temp)) != 0)) {
+ c1222_baseoid = (guint8 *)wmem_realloc(wmem_epan_scope(), c1222_baseoid, c1222_baseoid_len);
+ memcpy(c1222_baseoid, temp, c1222_baseoid_len);
+ wmem_free(NULL, temp);
+ } else if (c1222_baseoid) {
+ wmem_free(wmem_epan_scope(), c1222_baseoid);
+ c1222_baseoid = NULL;
+ c1222_baseoid_len = 0;
+ }
+}
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/c1222/packet-c1222-template.h b/epan/dissectors/asn1/c1222/packet-c1222-template.h
new file mode 100644
index 0000000000..d0c01d75f4
--- /dev/null
+++ b/epan/dissectors/asn1/c1222/packet-c1222-template.h
@@ -0,0 +1,41 @@
+/* packet-c1222.h
+ * Routines for ANSI C12.22 packet dissection
+ * Copyright 2010, Edward J. Beroset, edward.beroset@elster.com
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_C1222_H
+#define PACKET_C1222_H
+
+#endif /* PACKET_C1222_H */
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
+
diff --git a/epan/dissectors/asn1/camel/CAP-GPRS-ReferenceNumber.asn b/epan/dissectors/asn1/camel/CAP-GPRS-ReferenceNumber.asn
new file mode 100644
index 0000000000..f8859782e5
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-GPRS-ReferenceNumber.asn
@@ -0,0 +1,32 @@
+-- 3GPP TS 29.078 29.078 11.0.0 (2011-09)
+-- 8.1.1 GPRS Reference Number
+
+CAP-GPRS-ReferenceNumber {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-dialogueInformation(111) version8(7)}
+-- Module CAP-GPRS-ReferenceNumber is updated to version8(7) for Rel-6. The definitions
+-- in this module are not modified, compared to Rel-5.
+
+DEFINITIONS ::= BEGIN
+
+EXPORTS
+ id-CAP-GPRS-ReferenceNumber,
+ cAP-GPRS-ReferenceNumber-Abstract-Syntax;
+
+IMPORTS
+
+ Integer4
+FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+modules(0) cs1-datatypes(2) version1(0)}
+;
+
+id-CAP-GPRS-ReferenceNumber OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) as(1) cap-GPRS-ReferenceNumber(5) version3(2)}
+
+cAP-GPRS-ReferenceNumber-Abstract-Syntax ABSTRACT-SYNTAX ::= {CAP-GPRS-ReferenceNumber IDENTIFIED BY id-CAP-GPRS-ReferenceNumber}
+
+CAP-GPRS-ReferenceNumber ::= SEQUENCE {
+ destinationReference [0] Integer4 OPTIONAL,
+ originationReference [1] Integer4 OPTIONAL
+ }
+-- This parameter is used to identify the relationship between SGSN and the gsmSCF.
+
+END -- of CAP-GPRS-ReferenceNumber
diff --git a/epan/dissectors/asn1/camel/CAP-SMS-ops-args.asn b/epan/dissectors/asn1/camel/CAP-SMS-ops-args.asn
new file mode 100644
index 0000000000..a337ace96f
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-SMS-ops-args.asn
@@ -0,0 +1,269 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 7 SMS Control
+-- 7.1 SMS operations and arguments
+CAP-SMS-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-SMS-ops-args(105) version8(7)}
+-- The module CAP-SMS-ops-args is updated to version8(7) for Rel-6. The OPERATION definitions
+-- are not modified.
+
+DEFINITIONS IMPLICIT TAGS::= BEGIN
+
+-- This module contains the operations and operation arguments used for the
+-- smsSSF? gsmSCF interface, for the control of MO-SMS and MT-SMS.
+
+-- The table in subclause 2.1 lists the specifications that contain the modules
+-- that are used by CAP.
+
+IMPORTS
+
+ errortypes,
+ datatypes,
+ operationcodes,
+ classes,
+ ros-InformationObjects,
+ tc-Messages
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+ OPERATION
+FROM Remote-Operations-Information-Objects ros-InformationObjects
+
+ ServiceKey
+FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+modules(0) cs1-datatypes(2) version1(0)}
+
+ MiscCallInfo
+FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+cs2(20) modules(0) in-cs2-datatypes (0) version1(0)}
+
+ IMEI,
+ IMSI,
+ ISDN-AddressString
+FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}
+
+ GPRSMSClass,
+ LocationInformation,
+ MS-Classmark2
+FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}
+
+ PARAMETERS-BOUND
+FROM CAP-classes classes
+
+ opcode-connectSMS,
+ opcode-continueSMS,
+ opcode-eventReportSMS,
+ opcode-furnishChargingInformationSMS,
+ opcode-initialDPSMS,
+ opcode-releaseSMS,
+ opcode-requestReportSMSEvent,
+ opcode-resetTimerSMS
+FROM CAP-operationcodes operationcodes
+-- The CAP Operation identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as in Rel-5.
+
+ CalledPartyBCDNumber {},
+ EventSpecificInformationSMS,
+ EventTypeSMS,
+ Extensions {},
+ FCISMSBillingChargingCharacteristics,
+ LocationInformationGPRS,
+ RPCause,
+ SMS-AddressString,
+ SMSEvent,
+ TimeAndTimezone {},
+ TimerID,
+ TimerValue,
+ TPDataCodingScheme,
+ TPProtocolIdentifier,
+ TPShortMessageSpecificInfo,
+ TPValidityPeriod
+FROM CAP-datatypes datatypes
+-- For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier 'datatypes'
+-- is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.
+
+ missingCustomerRecord,
+ missingParameter,
+ parameterOutOfRange,
+ systemFailure,
+ taskRefused,
+ unexpectedComponentSequence,
+ unexpectedDataValue,
+ unexpectedParameter
+FROM CAP-errortypes errortypes
+-- For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier
+-- 'errortypes' is also updated to version8(7). As a result, the present module uses Rel-6
+-- error type definitions.
+
+ CallReferenceNumber
+FROM MAP-CH-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CH-DataTypes(13) version12(12)}
+
+;
+
+connectSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ConnectSMSArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-connectSMS}
+-- Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Tconsms
+-- This operation is used to request the smsSSF to perform the SMS processing
+-- actions to route or forward a short message to a specified destination.
+
+ConnectSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ callingPartysNumber [0] SMS-AddressString OPTIONAL,
+ destinationSubscriberNumber [1] CalledPartyBCDNumber {bound} OPTIONAL,
+ sMSCAddress [2] ISDN-AddressString OPTIONAL,
+ extensions [10] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+continueSMS OPERATION ::= {
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-continueSMS}
+-- Direction: gsmSCF -> smsSSF, Timer: Tcuesms
+-- This operation is used to request the smsSSF to proceed with
+-- Short Message processing at the DP at which it previously suspended
+-- Short Message processing to await gsmSCF instructions (i.e. proceed
+-- to the next Point in Association in the SMS FSM). The smsSSF
+-- continues SMS processing without substituting new data from the gsmSCF.
+
+eventReportSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT EventReportSMSArg {bound}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-eventReportSMS}
+-- Direction: gsmSSF or gprsSSF -> gsmSCF, Timer: Terbsms
+-- This operation is used to notify the gsmSCF of a Short Message related event (FSM events
+-- such as submission, delivery or failure) previously requested by the gsmSCF in a
+-- RequestReportSMSEvent operation.
+
+EventReportSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ eventTypeSMS [0] EventTypeSMS,
+ eventSpecificInformationSMS [1] EventSpecificInformationSMS OPTIONAL,
+ miscCallInfo [2] MiscCallInfo DEFAULT {messageType request},
+ extensions [10] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+furnishChargingInformationSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT FurnishChargingInformationSMSArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-furnishChargingInformationSMS}
+-- Direction: gsmSCF ?? gsmSSF or gprsSSF, Timer: Tfcisms
+-- This operation is used to request the smsSSF to generate, register a charging record
+-- or to include some information in the default SM record. The registered charging record is
+-- intended for off line charging of the Short Message.
+
+FurnishChargingInformationSMSArg {PARAMETERS-BOUND : bound} ::=
+ FCISMSBillingChargingCharacteristics {bound}
+
+initialDPSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT InitialDPSMSArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingCustomerRecord |
+ missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-initialDPSMS}
+-- Direction: gsmSSF or gprsSSF -> gsmSCF, Timer: Tidpsms
+-- This operation is used after a TDP to indicate request for service.
+
+InitialDPSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ serviceKey [0] ServiceKey,
+ destinationSubscriberNumber [1] CalledPartyBCDNumber {bound} OPTIONAL,
+ callingPartyNumber [2] SMS-AddressString OPTIONAL,
+ eventTypeSMS [3] EventTypeSMS OPTIONAL,
+ iMSI [4] IMSI OPTIONAL,
+ locationInformationMSC [5] LocationInformation OPTIONAL,
+ locationInformationGPRS [6] LocationInformationGPRS OPTIONAL,
+ sMSCAddress [7] ISDN-AddressString OPTIONAL,
+ timeAndTimezone [8] TimeAndTimezone {bound} OPTIONAL,
+ tPShortMessageSpecificInfo [9] TPShortMessageSpecificInfo OPTIONAL,
+ tPProtocolIdentifier [10] TPProtocolIdentifier OPTIONAL,
+ tPDataCodingScheme [11] TPDataCodingScheme OPTIONAL,
+ tPValidityPeriod [12] TPValidityPeriod OPTIONAL,
+ extensions [13] Extensions {bound} OPTIONAL,
+ ...,
+ smsReferenceNumber [14] CallReferenceNumber OPTIONAL,
+ mscAddress [15] ISDN-AddressString OPTIONAL,
+ sgsn-Number [16] ISDN-AddressString OPTIONAL,
+ ms-Classmark2 [17] MS-Classmark2 OPTIONAL,
+ gPRSMSClass [18] GPRSMSClass OPTIONAL,
+ iMEI [19] IMEI OPTIONAL,
+ calledPartyNumber [20] ISDN-AddressString OPTIONAL
+ }
+
+-- The UserCSGInformation is conveyed in the LocationInformation for CS and LocationInformationGPRS
+-- for GPRS. The encoding of the parameter is as defined in 3GPP TS 29.002 [11].
+
+releaseSMS OPERATION ::= {
+ ARGUMENT ReleaseSMSArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-releaseSMS}
+-- Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Trelsms
+-- This operation is used to prevent an attempt to submit or deliver a short message.
+
+ReleaseSMSArg ::= RPCause
+
+requestReportSMSEvent {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT RequestReportSMSEventArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-requestReportSMSEvent}
+-- Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Trrbsms
+-- This operation is used to request the gsmSSF or gprsSSF to monitor for a
+-- Short Message related event (FSM events such as submission, delivery or failure)
+-- and to send a notification to the gsmSCF when the event is detected.
+
+RequestReportSMSEventArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ sMSEvents [0] SEQUENCE SIZE (1..bound.&numOfSMSEvents) OF SMSEvent,
+ extensions [10] Extensions {bound} OPTIONAL,
+ ...
+ }
+-- Indicates the Short Message related events(s) for notification.
+
+resetTimerSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ResetTimerSMSArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-resetTimerSMS}
+-- Direction: gsmSCF -> smsSSF, Timer: Trtsms
+-- This operation is used to request the smsSSF to refresh an application
+-- timer in the smsSSF.
+
+ResetTimerSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-U-ABORT-Data.asn b/epan/dissectors/asn1/camel/CAP-U-ABORT-Data.asn
new file mode 100644
index 0000000000..ebbd786bb3
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-U-ABORT-Data.asn
@@ -0,0 +1,48 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 5.7 User Abort Data
+CAP-U-ABORT-Data {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-u-abort-data(110) version8(7)}
+
+DEFINITIONS ::= BEGIN
+
+id-CAP-U-ABORT-Reason OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-Network(1) as(1) cap-u-abort-reason(2) version3(2)}
+
+cAP-U-ABORT-Reason-Abstract-Syntax ABSTRACT-SYNTAX ::= {CAP-U-ABORT-REASON IDENTIFIED BY
+id-CAP-U-ABORT-Reason}
+
+CAP-U-ABORT-REASON ::= ENUMERATED {
+ no-reason-given (1),
+ application-timer-expired (2),
+ not-allowed-procedures (3),
+ abnormal-processing (4),
+ congestion (5),
+ invalid-reference (6),
+ missing-reference (7),
+ overlapping-dialogue (8)
+ }
+-- application-timer-expired shall be set when application timer (e.g. Tssf) is expired.
+-- not-allowed-procedures shall be set when received signal is not allowed in CAP
+-- procedures.
+-- For example, when a class 4 operation is received from the
+-- gsmSCF and the operation is not allowed in gsmSSF FSM.
+-- (gsmSSF FSM cannot continue state transition). (e.g. ReleaseCall
+-- operation received in Waiting for End of Temporary Connection
+-- state.)
+-- abnormal-processing shall be set when abnormal procedures occur at entity action.
+-- congestion shall be set when requested resource is unavailable due to
+-- congestion at TC user (CAP) level.
+-- invalid-reference shall be set if the received destinationReference is unknown or
+-- for a known destination Reference the received originationReference
+-- does not match with the stored originationReference.
+-- This abort reason is used for CAP defined GPRS-ReferenceNumber.
+-- missing-reference shall be set when the destinationReference or the
+-- originationReference is absent in the received message but is
+-- required to be present according to the procedures in
+-- subclause 14.1.7.
+-- This abort reason is used for CAP defined GPRS ReferenceNumber.
+-- overlapping-dialogue shall be used by the gprsSSF to indicate to the gsmSCF that a
+-- specific instance already has a TC dialogue open. This error
+-- cause is typically obtained when both the gsmSCF and gprsSSF
+-- open a new dialogue at the same time.
+-- no-reason-given shall be set when any other reasons above do not apply
+END -- of CAP-U-ABORT-Data
+
diff --git a/epan/dissectors/asn1/camel/CAP-classes.asn b/epan/dissectors/asn1/camel/CAP-classes.asn
new file mode 100644
index 0000000000..f35ea95c6f
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-classes.asn
@@ -0,0 +1,306 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 5.5 Classes
+CAP-classes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1)
+modules(3) cap-classes(54) version8(7)}
+
+DEFINITIONS ::= BEGIN
+
+IMPORTS
+
+ ROS-OBJECT-CLASS,
+ Code
+FROM Remote-Operations-Information-Objects ros-InformationObjects
+
+ id-rosObject-gprsSSF,
+ id-rosObject-gsmSRF,
+ id-rosObject-gsmSSF,
+ id-rosObject-smsSSF-V3,
+ id-rosObject-smsSSF-V4,
+ ros-InformationObjects,
+ gsmSSF-gsmSCF-Protocol,
+ gsmSCF-gsmSRF-Protocol,
+ smsSSF-gsmSCF-Protocol,
+ gprsSSF-gsmSCF-Protocol
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+ capSsfToScfGeneric,
+ capAssistHandoffssfToScf,
+ capScfToSsfGeneric
+FROM CAP-gsmSSF-gsmSCF-pkgs-contracts-acs gsmSSF-gsmSCF-Protocol
+
+ gsmSRF-gsmSCF-contract
+FROM CAP-gsmSCF-gsmSRF-pkgs-contracts-acs gsmSCF-gsmSRF-Protocol
+
+ cap3SMS,
+ cap4SMS
+FROM CAP-smsSSF-gsmSCF-pkgs-contracts-acs smsSSF-gsmSCF-Protocol
+
+ capGprsSsfToScf,
+ capGsmScfToGprsSsf
+FROM CAP-gprsSSF-gsmSCF-pkgs-contracts-acs gprsSSF-gsmSCF-Protocol
+
+ CriticalityType
+FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1) cs2(20)
+modules(0) in-cs2-datatypes(0) version1(0)}
+
+;
+
+gsmSSF ROS-OBJECT-CLASS ::= {
+ INITIATES {capSsfToScfGeneric|
+ capAssistHandoffssfToScf}
+ RESPONDS {capScfToSsfGeneric}
+ ID id-rosObject-gsmSSF}
+-- The Rel-6 'gsmSSF' definition uses the Rel-6 capSsfToScfGeneric, capAssistHandoffssfToScf
+-- and capScfToSsfGeneric CONTRACT definitions.
+
+gsmSRF ROS-OBJECT-CLASS ::= {
+ INITIATES {gsmSRF-gsmSCF-contract}
+ ID id-rosObject-gsmSRF}
+-- The Rel-6 'gsmSRF' definition uses the Rel-6 gsmSRF-gsmSCF-contract CONTRACT definition.
+
+smsSSF-V3 ROS-OBJECT-CLASS ::= {
+ INITIATES {cap3SMS}
+ ID id-rosObject-smsSSF-V3}
+-- The Rel-6 'smsSSF-V3' definition uses the Rel-6 cap3SMS CONTRACT definition. The smsSSF-V3
+-- ROS-OBJECT-CLASS is used for MO SMS control.
+
+smsSSF-V4 ROS-OBJECT-CLASS ::= {
+ INITIATES {cap4SMS}
+ ID id-rosObject-smsSSF-V4}
+-- The Rel-6 'smsSSF-V4' definition uses the Rel-6 cap4SMS CONTRACT definition. The smsSSF-V4
+-- ROS-OBJECT-CLASS is used for MT SMS control.
+
+gprsSSF ROS-OBJECT-CLASS ::= {
+ INITIATES {capGprsSsfToScf}
+ RESPONDS {capGsmScfToGprsSsf}
+ ID id-rosObject-gprsSSF}
+-- The Rel-6 'gprsSSF' definition uses the Rel-6 capGprsSsfTogsmScf and capGsmScfToGprsSsf
+-- CONTRACT definitions.
+
+EXTENSION ::= CLASS {
+ &ExtensionType,
+ &criticality CriticalityType DEFAULT ignore,
+ &id Code}
+
+WITH SYNTAX {
+ EXTENSION-SYNTAX &ExtensionType
+ CRITICALITY &criticality
+ IDENTIFIED BY &id
+ }
+-- Only value Global OBJECT IDENTIFIER is used for &id;
+-- Only the value ignore (0) is used for &criticality.
+
+-- Example of addition of an extension named 'Some Network Specific Indicator' of type
+-- BOOLEAN, with criticality 'ignore' and identified by global Object Identifier.
+--
+-- Example of definition using the above information object class:
+--
+-- SomeNetworkSpecificIndicator EXTENSION ::= {
+-- EXTENSION-SYNTAX BOOLEAN
+-- CRITICALITY ignore
+-- IDENTIFIED BY global : {itu-t(0) identified-organization(4) organisation(0) gsm(1)
+-- capextension(2)}
+-- }
+
+-- Example of transfer syntax, using the ExtensionField datatype as specified in clause 5.
+-- Assuming the value of the extension is set to TRUE, the extensions parameter becomes
+-- a Sequence of type {itu-t(0) identified-organization(4) organisation(0) gsm(1)
+-- capextension(2)}, criticality ENUMERATED ::= ignore(0) and value [1] EXPLICIT BOOLEAN
+-- ::= TRUE.
+--
+-- Use of ITU-T Recommendation Q.1400 [52] defined Extension is for further study.
+-- In addition the extension mechanism marker is used to identify the future minor additions
+-- to CAP.
+
+firstExtension EXTENSION ::= {
+ EXTENSION-SYNTAX NULL
+ CRITICALITY ignore
+ IDENTIFIED BY global : {itu-t(0) identified-organization(4) organisation(0) gsm(1)
+ capextension(2)}
+ }
+-- firstExtension is just an example.
+
+SupportedExtensions EXTENSION ::= {firstExtension, ...
+-- full set of network operator extensions --
+}
+-- SupportedExtension is the full set of the network operator extensions.
+
+PARAMETERS-BOUND ::= CLASS {
+ &minAccessPointNameLength INTEGER,
+ &maxAccessPointNameLength INTEGER,
+ &minAChBillingChargingLength INTEGER,
+ &maxAChBillingChargingLength INTEGER,
+ &minAttributesLength INTEGER,
+ &maxAttributesLength INTEGER,
+ &maxBearerCapabilityLength INTEGER,
+ &minCalledPartyBCDNumberLength INTEGER,
+ &maxCalledPartyBCDNumberLength INTEGER,
+ &minCalledPartyNumberLength INTEGER,
+ &maxCalledPartyNumberLength INTEGER,
+ &minCallingPartyNumberLength INTEGER,
+ &maxCallingPartyNumberLength INTEGER,
+ &minCallResultLength INTEGER,
+ &maxCallResultLength INTEGER,
+ &minCarrierLength INTEGER,
+ &maxCarrierLength INTEGER,
+ &minCauseLength INTEGER,
+ &maxCauseLength INTEGER,
+ &minDigitsLength INTEGER,
+ &maxDigitsLength INTEGER,
+ &minFCIBillingChargingDataLength INTEGER,
+ &maxFCIBillingChargingDataLength INTEGER,
+ &minFCIBillingChargingLength INTEGER,
+ &maxFCIBillingChargingLength INTEGER,
+ &minGenericNumberLength INTEGER,
+ &maxGenericNumberLength INTEGER,
+ &minGPRSCauseLength INTEGER,
+ &maxGPRSCauseLength INTEGER,
+ &minIPSSPCapabilitiesLength INTEGER,
+ &maxIPSSPCapabilitiesLength INTEGER,
+ &minLocationNumberLength INTEGER,
+ &maxLocationNumberLength INTEGER,
+ &minLowLayerCompatibilityLength INTEGER,
+ &maxLowLayerCompatibilityLength INTEGER,
+ &minMessageContentLength INTEGER,
+ &maxMessageContentLength INTEGER,
+ &minOriginalCalledPartyIDLength INTEGER,
+ &maxOriginalCalledPartyIDLength INTEGER,
+ &minPDPAddressLength INTEGER,
+ &maxPDPAddressLength INTEGER,
+ &minRedirectingPartyIDLength INTEGER,
+ &maxRedirectingPartyIDLength INTEGER,
+ &minScfIDLength INTEGER,
+ &maxScfIDLength INTEGER,
+ &minSCIBillingChargingLength INTEGER,
+ &maxSCIBillingChargingLength INTEGER,
+ &minTimeAndTimezoneLength INTEGER,
+ &maxTimeAndTimezoneLength INTEGER,
+ &numOfBCSMEvents INTEGER,
+ &numOfChangeOfPositionControlInfo INTEGER,
+ &numOfCSs INTEGER,
+ &numOfSMSEvents INTEGER,
+ &numOfGPRSEvents INTEGER,
+ &numOfExtensions INTEGER,
+ &numOfGenericNumbers INTEGER,
+ &numOfMessageIDs INTEGER}
+
+WITH SYNTAX {
+ MINIMUM-FOR-ACCESS-POINT-NAME &minAccessPointNameLength
+ MAXIMUM-FOR-ACCESS-POINT-NAME &maxAccessPointNameLength
+ MINIMUM-FOR-ACH-BILLING-CHARGING &minAChBillingChargingLength
+ MAXIMUM-FOR-ACH-BILLING-CHARGING &maxAChBillingChargingLength
+ MINIMUM-FOR-ATTRIBUTES &minAttributesLength
+ MAXIMUM-FOR-ATTRIBUTES &maxAttributesLength
+ MAXIMUM-FOR-BEARER-CAPABILITY &maxBearerCapabilityLength
+ MINIMUM-FOR-CALLED-PARTY-BCD-NUMBER &minCalledPartyBCDNumberLength
+ MAXIMUM-FOR-CALLED-PARTY-BCD-NUMBER &maxCalledPartyBCDNumberLength
+ MINIMUM-FOR-CALLED-PARTY-NUMBER &minCalledPartyNumberLength
+ MAXIMUM-FOR-CALLED-PARTY-NUMBER &maxCalledPartyNumberLength
+ MINIMUM-FOR-CALLING-PARTY-NUMBER &minCallingPartyNumberLength
+ MAXIMUM-FOR-CALLING-PARTY-NUMBER &maxCallingPartyNumberLength
+ MINIMUM-FOR-CALL-RESULT &minCallResultLength
+ MAXIMUM-FOR-CALL-RESULT &maxCallResultLength
+ MINIMUM-FOR-CARRIER &minCarrierLength
+ MAXIMUM-FOR-CARRIER &maxCarrierLength
+ MINIMUM-FOR-CAUSE &minCauseLength
+ MAXIMUM-FOR-CAUSE &maxCauseLength
+ MINIMUM-FOR-DIGITS &minDigitsLength
+ MAXIMUM-FOR-DIGITS &maxDigitsLength
+ MINIMUM-FOR-FCI-BILLING-CHARGING-DATA &minFCIBillingChargingDataLength
+ MAXIMUM-FOR-FCI-BILLING-CHARGING-DATA &maxFCIBillingChargingDataLength
+ MINIMUM-FOR-FCI-BILLING-CHARGING &minFCIBillingChargingLength
+ MAXIMUM-FOR-FCI-BILLING-CHARGING &maxFCIBillingChargingLength
+ MINIMUM-FOR-GENERIC-NUMBER &minGenericNumberLength
+ MAXIMUM-FOR-GENERIC-NUMBER &maxGenericNumberLength
+ MINIMUM-FOR-GPRS-CAUSE-LENGTH &minGPRSCauseLength
+ MAXIMUM-FOR-GPRS-CAUSE-LENGTH &maxGPRSCauseLength
+ MINIMUM-FOR-IP-SSP-CAPABILITIES &minIPSSPCapabilitiesLength
+ MAXIMUM-FOR-IP-SSP-CAPABILITIES &maxIPSSPCapabilitiesLength
+ MINIMUM-FOR-LOCATION-NUMBER &minLocationNumberLength
+ MAXIMUM-FOR-LOCATION-NUMBER &maxLocationNumberLength
+ MINIMUM-FOR-LOW-LAYER-COMPATIBILITY &minLowLayerCompatibilityLength
+ MAXIMUM-FOR-LOW-LAYER-COMPATIBILITY &maxLowLayerCompatibilityLength
+ MINIMUM-FOR-MESSAGE-CONTENT &minMessageContentLength
+ MAXIMUM-FOR-MESSAGE-CONTENT &maxMessageContentLength
+ MINIMUM-FOR-ORIGINAL-CALLED-PARTY-ID &minOriginalCalledPartyIDLength
+ MAXIMUM-FOR-ORIGINAL-CALLED-PARTY-ID &maxOriginalCalledPartyIDLength
+ MINIMUM-FOR-PDP-ADDRESS-LENGTH &minPDPAddressLength
+ MAXIMUM-FOR-PDP-ADDRESS-LENGTH &maxPDPAddressLength
+ MINIMUM-FOR-REDIRECTING-ID &minRedirectingPartyIDLength
+ MAXIMUM-FOR-REDIRECTING-ID &maxRedirectingPartyIDLength
+ MINIMUM-FOR-GSMSCF-ID &minScfIDLength
+ MAXIMUM-FOR-GSMSCF-ID &maxScfIDLength
+ MINIMUM-FOR-SCI-BILLING-CHARGING &minSCIBillingChargingLength
+ MAXIMUM-FOR-SCI-BILLING-CHARGING &maxSCIBillingChargingLength
+ MINIMUM-FOR-TIME-AND-TIMEZONE &minTimeAndTimezoneLength
+ MAXIMUM-FOR-TIME-AND-TIMEZONE &maxTimeAndTimezoneLength
+ NUM-OF-BCSM-EVENT &numOfBCSMEvents
+ NUM-OF-CHANGE-OF-POSITION-CONTROL-INFO &numOfChangeOfPositionControlInfo
+ NUM-OF-CSS &numOfCSs
+ NUM-OF-SMS-EVENTS &numOfSMSEvents
+ NUM-OF-GPRS-EVENTS &numOfGPRSEvents
+ NUM-OF-EXTENSIONS &numOfExtensions
+ NUM-OF-GENERIC-NUMBERS &numOfGenericNumbers
+ NUM-OF-MESSAGE-IDS &numOfMessageIDs}
+
+cAPSpecificBoundSet PARAMETERS-BOUND ::= {
+ MINIMUM-FOR-ACCESS-POINT-NAME 1
+ MAXIMUM-FOR-ACCESS-POINT-NAME 100
+ MINIMUM-FOR-ACH-BILLING-CHARGING 5
+ MAXIMUM-FOR-ACH-BILLING-CHARGING 177
+ MINIMUM-FOR-ATTRIBUTES 2
+ MAXIMUM-FOR-ATTRIBUTES 10
+ MAXIMUM-FOR-BEARER-CAPABILITY 11
+ MINIMUM-FOR-CALLED-PARTY-BCD-NUMBER 1
+ MAXIMUM-FOR-CALLED-PARTY-BCD-NUMBER 41
+ MINIMUM-FOR-CALLED-PARTY-NUMBER 2
+ MAXIMUM-FOR-CALLED-PARTY-NUMBER 18
+ MINIMUM-FOR-CALLING-PARTY-NUMBER 2
+ MAXIMUM-FOR-CALLING-PARTY-NUMBER 10
+ MINIMUM-FOR-CALL-RESULT 12
+ MAXIMUM-FOR-CALL-RESULT 193
+ MINIMUM-FOR-CARRIER 4
+ MAXIMUM-FOR-CARRIER 4
+ MINIMUM-FOR-CAUSE 2
+ MAXIMUM-FOR-CAUSE 32
+ MINIMUM-FOR-DIGITS 2
+ MAXIMUM-FOR-DIGITS 16
+ MINIMUM-FOR-FCI-BILLING-CHARGING-DATA 1
+ MAXIMUM-FOR-FCI-BILLING-CHARGING-DATA 160
+ MINIMUM-FOR-FCI-BILLING-CHARGING 5
+ MAXIMUM-FOR-FCI-BILLING-CHARGING 225
+ MINIMUM-FOR-GENERIC-NUMBER 3
+ MAXIMUM-FOR-GENERIC-NUMBER 11
+ MINIMUM-FOR-GPRS-CAUSE-LENGTH 1
+ MAXIMUM-FOR-GPRS-CAUSE-LENGTH 1
+ MINIMUM-FOR-IP-SSP-CAPABILITIES 1
+ MAXIMUM-FOR-IP-SSP-CAPABILITIES 4
+ MINIMUM-FOR-LOCATION-NUMBER 2
+ MAXIMUM-FOR-LOCATION-NUMBER 10
+ MINIMUM-FOR-LOW-LAYER-COMPATIBILITY 1
+ MAXIMUM-FOR-LOW-LAYER-COMPATIBILITY 16
+ MINIMUM-FOR-MESSAGE-CONTENT 1
+ MAXIMUM-FOR-MESSAGE-CONTENT 127
+ MINIMUM-FOR-ORIGINAL-CALLED-PARTY-ID 2
+ MAXIMUM-FOR-ORIGINAL-CALLED-PARTY-ID 10
+ MINIMUM-FOR-PDP-ADDRESS-LENGTH 1
+ MAXIMUM-FOR-PDP-ADDRESS-LENGTH 63
+ MINIMUM-FOR-REDIRECTING-ID 2
+ MAXIMUM-FOR-REDIRECTING-ID 10
+ MINIMUM-FOR-GSMSCF-ID 2
+ MAXIMUM-FOR-GSMSCF-ID 10
+ MINIMUM-FOR-SCI-BILLING-CHARGING 4
+ MAXIMUM-FOR-SCI-BILLING-CHARGING 225
+ MINIMUM-FOR-TIME-AND-TIMEZONE 8
+ MAXIMUM-FOR-TIME-AND-TIMEZONE 8
+ NUM-OF-BCSM-EVENT 30
+ NUM-OF-CHANGE-OF-POSITION-CONTROL-INFO 10
+ NUM-OF-CSS 127
+ NUM-OF-SMS-EVENTS 10
+ NUM-OF-GPRS-EVENTS 10
+ NUM-OF-EXTENSIONS 10
+ NUM-OF-GENERIC-NUMBERS 5
+ NUM-OF-MESSAGE-IDS 16}
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-datatypes.asn b/epan/dissectors/asn1/camel/CAP-datatypes.asn
new file mode 100644
index 0000000000..df8d1df0ae
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-datatypes.asn
@@ -0,0 +1,1527 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 5 Common CAP Types
+-- 5.1 Data types
+
+CAP-datatypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-datatypes(52) version8(7)}
+
+DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+IMPORTS
+
+ Duration,
+ Integer4,
+ Interval,
+ LegID,
+ ServiceKey
+FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+modules(0) cs1-datatypes(2) version1(0)}
+
+ BothwayThroughConnectionInd,
+ CriticalityType,
+ MiscCallInfo
+FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+cs2(20) modules(0) in-cs2-datatypes(0) version1(0)}
+
+ AddressString,
+ CellGlobalIdOrServiceAreaIdFixedLength,
+ Ext-BasicServiceCode,
+ IMSI,
+ ISDN-AddressString,
+ LAIFixedLength,
+ GSN-Address, -- WS moved to common datatypes in rel 9.0.0
+ RAIdentity, -- WS moved to common datatypes in rel 10.4.0
+ NAEA-CIC
+FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}
+
+ Ext-QoS-Subscribed,
+ Ext2-QoS-Subscribed,
+ Ext3-QoS-Subscribed,
+ GeographicalInformation,
+-- GSN-Address, WS moved to common datatypes in rel 9.0.0
+ LocationInformation,
+ LSAIdentity,
+ QoS-Subscribed,
+-- RAIdentity, WS moved to common datatypes in rel 10.4.0
+ SubscriberState,
+ GPRSChargingID
+FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}
+
+ CallReferenceNumber,
+ SuppressionOfAnnouncement
+FROM MAP-CH-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CH-DataTypes(13) version12(12)}
+
+ tc-Messages,
+ classes
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+ EXTENSION,
+ PARAMETERS-BOUND,
+ SupportedExtensions
+FROM CAP-classes classes
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-ExtensionDataTypes(21) version12(12)}
+
+;
+
+AccessPointName {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minAccessPointNameLength .. bound.&maxAccessPointNameLength))
+-- Indicates the AccessPointName, refer to 3GPP TS 24.008 [9] for the encoding.
+-- It shall be coded as in the value part defined in 3GPP TS 24.008,
+-- i.e. the 3GPP TS 24.008 IEI and 3GPP TS 24.008 octet length indicator
+-- shall not be included.
+
+AChBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE
+ (bound.&minAChBillingChargingLength .. bound.&maxAChBillingChargingLength))
+ (CONSTRAINED BY {-- shall be the result of the BER-encoded value of the type --
+ CAMEL-AChBillingChargingCharacteristics {bound}})
+-- The AChBillingChargingCharacteristics parameter specifies the charging related information
+-- to be provided by the gsmSSF and the conditions on which this information has to be reported
+-- back to the gsmSCF with the ApplyChargingReport operation. The value of the
+-- AChBillingChargingCharacteristics of type OCTET STRING carries a value of the ASN.1 data type:
+-- CAMEL-AChBillingChargingCharacteristics. The normal encoding rules are used to encode this
+-- value.
+-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.
+
+AChChargingAddress {PARAMETERS-BOUND : bound} ::= CHOICE {
+ legID [2] LegID,
+ srfConnection [50] CallSegmentID {bound}
+ }
+
+AdditionalCallingPartyNumber {PARAMETERS-BOUND : bound} ::= Digits {bound}
+-- Indicates the Additional Calling Party Number.
+
+AlertingPattern ::= OCTET STRING (SIZE(3))
+-- Indicates a specific pattern that is used to alert a subscriber
+-- (e.g. distinctive ringing, tones, etc.).
+-- The encoding of the last octet of this parameter is as defined in 3GPP TS 29.002 [11].
+-- Only the trailing OCTET is used, the remaining OCTETS shall be sent as NULL (zero)
+-- The receiving side shall ignore the leading two OCTETS.
+
+AOCBeforeAnswer ::= SEQUENCE {
+ aOCInitial [0] CAI-GSM0224,
+ aOCSubsequent [1] AOCSubsequent OPTIONAL
+ }
+
+AOCGPRS ::= SEQUENCE {
+ aOCInitial [0] CAI-GSM0224,
+ aOCSubsequent [1] AOCSubsequent OPTIONAL
+ }
+
+AOCSubsequent ::= SEQUENCE {
+ cAI-GSM0224 [0] CAI-GSM0224 ,
+ tariffSwitchInterval [1] INTEGER (1..86400) OPTIONAL
+ }
+-- tariffSwitchInterval is measured in 1 second units
+
+AppendFreeFormatData ::= ENUMERATED {
+ overwrite (0),
+ append (1)
+ }
+
+ApplicationTimer ::=INTEGER (0..2047)
+-- Used by the gsmSCF to set a timer in the gsmSSF. The timer is in seconds.
+
+AssistingSSPIPRoutingAddress {PARAMETERS-BOUND : bound} ::= Digits {bound}
+-- Indicates the destination address of the gsmSRF for the assist procedure.
+
+AudibleIndicator ::= CHOICE {
+ tone BOOLEAN,
+ burstList [1] BurstList
+ }
+
+BackwardServiceInteractionInd ::= SEQUENCE {
+ conferenceTreatmentIndicator [1] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- acceptConferenceRequest 'xxxx xx01'B
+ -- rejectConferenceRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect conference treatement
+ callCompletionTreatmentIndicator [2] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- acceptCallCompletionServiceRequest 'xxxx xx01'B,
+ -- rejectCallCompletionServiceRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect call completion treatment
+ ...
+ }
+
+BasicGapCriteria {PARAMETERS-BOUND : bound} ::= CHOICE {
+ calledAddressValue [0] Digits {bound},
+ gapOnService [2] GapOnService,
+ calledAddressAndService [29] SEQUENCE {
+ calledAddressValue [0] Digits {bound},
+ serviceKey [1] ServiceKey,
+ ...
+ },
+ callingAddressAndService [30] SEQUENCE {
+ callingAddressValue [0] Digits {bound},
+ serviceKey [1] ServiceKey,
+ ...
+ }
+ }
+-- 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
+
+BCSMEvent{PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL,
+ dpSpecificCriteria [30] DpSpecificCriteria {bound} OPTIONAL,
+ automaticRearm [50] NULL OPTIONAL,
+ ...
+ }
+-- Indicates the BCSM Event information for monitoring.
+
+BCSM-Failure {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ legID [0] LegID OPTIONAL,
+ cause [2] Cause {bound} OPTIONAL,
+ ...
+ }
+
+BearerCapability {PARAMETERS-BOUND : bound} ::= CHOICE {
+ bearerCap [0] OCTET STRING (SIZE(2..bound.&maxBearerCapabilityLength))
+ }
+-- Indicates the type of bearer capability connection to the user. For bearerCap, the ISUP User
+-- Service Information, ETSI EN 300 356-1 [23]
+-- encoding shall be used.
+
+Burst ::= SEQUENCE {
+ numberOfBursts [0] INTEGER (1..3) DEFAULT 1,
+ burstInterval [1] INTEGER (1..1200) DEFAULT 2,
+ numberOfTonesInBurst [2] INTEGER (1..3) DEFAULT 3,
+ toneDuration [3] INTEGER (1..20) DEFAULT 2,
+ toneInterval [4] INTEGER (1..20) DEFAULT 2,
+ ...
+ }
+-- burstInterval, toneDurartion and toneInterval are measured in 100 millisecond units
+
+BurstList ::= SEQUENCE {
+ warningPeriod [0] INTEGER (1..1200) DEFAULT 30,
+ bursts [1] Burst,
+ ...
+ }
+-- warningPeriod is measured in 1 second units.
+
+CAI-GSM0224 ::= SEQUENCE {
+ e1 [0] INTEGER (0..8191) OPTIONAL,
+ e2 [1] INTEGER (0..8191) OPTIONAL,
+ e3 [2] INTEGER (0..8191) OPTIONAL,
+ e4 [3] INTEGER (0..8191) OPTIONAL,
+ e5 [4] INTEGER (0..8191) OPTIONAL,
+ e6 [5] INTEGER (0..8191) OPTIONAL,
+ e7 [6] INTEGER (0..8191) OPTIONAL
+ }
+-- Indicates Charge Advice Information to the Mobile Station. For information regarding
+-- parameter usage, refer to 3GPP TS 22.024 [2].
+
+CalledPartyBCDNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minCalledPartyBCDNumberLength .. bound.&maxCalledPartyBCDNumberLength))
+-- Indicates the Called Party Number, including service selection information.
+-- Refer to 3GPP TS 24.008 [9] for encoding.
+-- This data type carries only the 'type of number', 'numbering plan
+-- identification' and 'number digit' fields defined in 3GPP TS 24.008 [9];
+-- it does not carry the 'called party BCD number IEI' or 'length of called
+-- party BCD number contents'.
+-- In the context of the DestinationSubscriberNumber field in ConnectSMSArg or
+-- InitialDPSMSArg, a CalledPartyBCDNumber may also contain an alphanumeric
+-- character string. In this case, type-of-number '101'B is used, in accordance
+-- with 3GPP TS 23.040 [6]. The address is coded in accordance with the
+-- GSM 7 bit default alphabet definition and the SMS packing rules
+-- as specified in 3GPP TS 23.038 [15] in this case.
+
+CalledPartyNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minCalledPartyNumberLength .. bound.&maxCalledPartyNumberLength))
+-- Indicates the Called Party Number. Refer to ETS EN 300 356 1 [23] for encoding.
+
+-- A CalledPartyNumber may contain national-specific values of the Nature Of Address
+-- indicator. The filling-in of the national-specific Nature Of Address indicator
+-- values shall be done in accordance with the national ISUP of the gsmSSF country, e.g.
+-- ANSI T1.113-1995 [92].
+-- In terms of ETS EN 300 356-1 [23], the Destination Address Field is not present if the
+-- destination address length is set to zero. This is the case e.g. when the ANSI
+-- ISUP Nature Of Address indicator indicates no number present, operator requested
+-- (1110100) or no number present, cut-through call to carrier (1110101).
+-- See also see 3GPP TS 23.078 [7].
+
+CallingPartyNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minCallingPartyNumberLength .. bound.&maxCallingPartyNumberLength))
+-- Indicates the Calling Party Number. Refer to ETSI EN 300 356 1 [23] for encoding.
+
+CallResult {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minCallResultLength .. bound.&maxCallResultLength))
+ (CONSTRAINED BY {-- shall be the result of the BER-encoded value of type -
+ CAMEL-CallResult {bound}})
+-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.
+
+-- This parameter provides the gsmSCF 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
+
+CallSegmentFailure {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ callSegmentID [0] CallSegmentID {bound} OPTIONAL,
+ cause [2] Cause {bound} OPTIONAL,
+ ...
+ }
+
+CallSegmentID {PARAMETERS-BOUND : bound} ::= INTEGER (1..bound.&numOfCSs)
+
+CallSegmentToCancel {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ invokeID [0] InvokeID OPTIONAL,
+ callSegmentID [1] CallSegmentID {bound} OPTIONAL,
+ ...
+ }
+
+CAMEL-AChBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= CHOICE {
+ timeDurationCharging [0] SEQUENCE {
+ maxCallPeriodDuration [0] INTEGER (1..864000),
+ releaseIfdurationExceeded [1] BOOLEAN DEFAULT FALSE,
+ tariffSwitchInterval [2] INTEGER (1..86400) OPTIONAL,
+ audibleIndicator [3] AudibleIndicator DEFAULT tone: FALSE,
+ extensions [4] Extensions {bound} OPTIONAL,
+ ...
+ }
+ }
+-- tariffSwitchInterval is measured in 1 second units.
+-- maxCallPeriodDuration is measured in 100 millisecond units
+
+CAMEL-CallResult {PARAMETERS-BOUND : bound} ::= CHOICE {
+ timeDurationChargingResult [0] SEQUENCE {
+ partyToCharge [0] ReceivingSideID,
+ timeInformation [1] TimeInformation,
+ legActive [2] BOOLEAN DEFAULT TRUE,
+ callLegReleasedAtTcpExpiry [3] NULL OPTIONAL,
+ extensions [4] Extensions {bound} OPTIONAL,
+ aChChargingAddress [5] AChChargingAddress {bound}
+ DEFAULT legID:receivingSideID:leg1,
+ ...
+ }
+ }
+
+CAMEL-FCIBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= CHOICE{
+ fCIBCCCAMELsequence1 [0] SEQUENCE {
+ freeFormatData [0] OCTET STRING (SIZE(
+ bound.&minFCIBillingChargingDataLength .. bound.&maxFCIBillingChargingDataLength)),
+ partyToCharge [1] SendingSideID DEFAULT sendingSideID: leg1,
+ appendFreeFormatData [2] AppendFreeFormatData DEFAULT overwrite,
+ ...
+ }
+ }
+
+CAMEL-FCIGPRSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= SEQUENCE{
+ fCIBCCCAMELsequence1 [0] SEQUENCE {
+ freeFormatData [0] OCTET STRING (SIZE(
+ bound.&minFCIBillingChargingDataLength .. bound.&maxFCIBillingChargingDataLength)),
+ pDPID [1] PDPID OPTIONAL,
+ appendFreeFormatData [2] AppendFreeFormatData DEFAULT overwrite,
+ ...
+ }
+ }
+
+CAMEL-FCISMSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= CHOICE{
+ fCIBCCCAMELsequence1 [0] SEQUENCE {
+ freeFormatData [0] OCTET STRING (SIZE(
+ bound.&minFCIBillingChargingDataLength .. bound.&maxFCIBillingChargingDataLength)),
+ appendFreeFormatData [1] AppendFreeFormatData DEFAULT overwrite
+ }
+ }
+
+CAMEL-SCIBillingChargingCharacteristics ::= CHOICE {
+ aOCBeforeAnswer [0] AOCBeforeAnswer,
+ aOCAfterAnswer [1] AOCSubsequent,
+ aOC-extension [2] CAMEL-SCIBillingChargingCharacteristicsAlt
+ }
+
+CAMEL-SCIBillingChargingCharacteristicsAlt ::= SEQUENCE {
+ ...
+ }
+-- This datatype is for extension in future releases.
+
+CAMEL-SCIGPRSBillingChargingCharacteristics ::= SEQUENCE {
+ aOCGPRS [0] AOCGPRS,
+ pDPID [1] PDPID OPTIONAL,
+ ...
+ }
+
+Carrier {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minCarrierLength .. bound.&maxCarrierLength))
+-- This parameter is used for North America (na) only.
+-- It contains the carrier selection field (first octet) followed by Carrier ID
+-- information (North America (na)).
+
+-- The Carrier selection is one octet and is encoded as:
+-- 00000000 No indication
+-- 00000001 Selected carrier identification code (CIC) pre subscribed and not
+-- input by calling party
+-- 00000010 Selected carrier identification code (CIC) pre subscribed and input by
+-- calling party
+-- 00000011 Selected carrier identification code (CIC) pre subscribed, no
+-- indication of whether input by calling party (undetermined)
+-- 00000100 Selected carrier identification code (CIC) not pre subscribed and
+-- input by calling party
+-- 00000101
+-- to Spare
+-- 11111110
+-- 11111111 Reserved
+
+-- Refer to ANSI T1.113-1995 [92] for encoding of na carrier ID information (3 octets).
+
+Cause {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minCauseLength .. bound.&maxCauseLength))
+-- Indicates the cause for interface related information.
+-- Refer to ETSI EN 300 356 1 [23] Cause parameter for encoding.
+-- For the use of cause and location values refer to ITU T Recommendation Q.850 [47]
+-- Shall always include the cause value and shall also include the diagnostics field,
+-- if available.
+
+CGEncountered ::= ENUMERATED {
+ noCGencountered (0),
+ manualCGencountered (1),
+ scpOverload (2)
+ }
+-- Indicates the type of automatic call gapping encountered, if any.
+
+ChangeOfPositionControlInfo {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE (1..bound.&numOfChangeOfPositionControlInfo) OF ChangeOfLocation {bound}
+
+ChangeOfLocation {PARAMETERS-BOUND : bound} ::= CHOICE {
+ cellGlobalId [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ serviceAreaId [1] CellGlobalIdOrServiceAreaIdFixedLength,
+ locationAreaId [2] LAIFixedLength,
+ inter-SystemHandOver [3] NULL,
+ inter-PLMNHandOver [4] NULL,
+ inter-MSCHandOver [5] NULL,
+ changeOfLocationAlt [6] ChangeOfLocationAlt {bound}
+}
+-- The cellGlobalId shall contain a Cell Global Identification.
+-- The serviceAreaId shall contain a Service Area Identification.
+
+ChangeOfLocationAlt {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ ...
+ }
+
+ChargeIndicator ::= OCTET STRING (SIZE (1))
+-- As specified in ITU-T Recommendation Q.763 as follows:
+-- no indication 'xxxx xx00'B
+-- no charge 'xxxx xx01'B
+-- charge 'xxxx xx10'B
+-- spare 'xxxx xx11'B
+-- Sending entity shall fill the upper six bits with '0's.
+-- Receiving entity shall ignore the upper six bits.
+
+ChargeNumber {PARAMETERS-BOUND : bound} ::= LocationNumber {bound}
+-- 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 Location Number format as defined
+-- in ITU-T Recommendation Q.763 [45].
+-- 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.
+
+-- For NA, this parameter uniquely identifies the chargeable number for a call sent into a North
+-- American long distance carrier. It transports the ChargeNumber Parameter Field as defined in
+-- ANSI T1.113-1995 [92]. This provides
+-- - 1 octet for the nature of address indicator field, plus
+-- - 1 octet for a numbering plan field, plus
+-- - up to 5 octets for the address signal (up to 10 digits)
+
+-- The Charge Number in ANSI T1.113-1995 [92] normally contains a 10 digit national number within
+-- the North American Numbering Plan (NANP); longer (e.g. international) charge numbers are not
+-- supported in ANSI T1.113-1995 [92].
+
+ChargingCharacteristics ::= CHOICE {
+ maxTransferredVolume [0] INTEGER (1..4294967295),
+ maxElapsedTime [1] INTEGER (1..86400)
+ }
+-- maxTransferredVolume is measured in number of bytes
+-- maxElapsedTime is measured in seconds
+
+ChargingResult ::= CHOICE {
+ transferredVolume [0] TransferredVolume,
+ elapsedTime [1] ElapsedTime
+ }
+
+ChargingRollOver ::= CHOICE {
+ transferredVolumeRollOver [0] TransferredVolumeRollOver,
+ elapsedTimeRollOver [1] ElapsedTimeRollOver
+ }
+-- transferredVolumeRollOver shall be reported if ApplyChargingReportGPRS reports volume and
+-- a roll-over has occurred in one or more volume counters. Otherwise, it shall be absent.
+-- elapsedTimeRollOver shall be reported if ApplyChargingReportGPRS reports duration and
+-- a roll-over has occurred in one or more duration counters. Otherwise, it shall be absent.
+
+CollectedDigits ::= SEQUENCE {
+ minimumNbOfDigits [0] INTEGER (1..30) DEFAULT 1,
+ maximumNbOfDigits [1] INTEGER (1..30),
+ 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 stdErrorAndInfo,
+ interruptableAnnInd [8] BOOLEAN DEFAULT TRUE,
+ voiceInformation [9] BOOLEAN DEFAULT FALSE,
+ voiceBack [10] BOOLEAN DEFAULT FALSE
+ }
+-- The use of voiceBack and the support of voice recognition via voiceInformation
+-- 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 following encoding shall
+-- be applied for the non-decimal characters:
+-- 1011 (*), 1100 (#).
+-- The usage is service dependent.
+-- firstDigitTimeOut and interDigitTimeOut are measured in seconds.
+
+CollectedInfo ::= CHOICE {
+ collectedDigits [0] CollectedDigits
+ }
+
+ConnectedNumberTreatmentInd ::= ENUMERATED {
+ noINImpact (0),
+ presentationRestricted (1),
+ presentCalledINNumber (2),
+ presentCallINNumberRestricted (3)
+}
+-- This parameter is used to suppress or to display the connected number.
+
+ControlType ::= ENUMERATED {
+ sCPOverloaded (0),
+ manuallyInitiated (1)
+ }
+
+CompoundCriteria {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ basicGapCriteria [0] BasicGapCriteria {bound},
+ scfID [1] ScfID {bound} OPTIONAL
+ }
+
+CorrelationID {PARAMETERS-BOUND : bound} ::= Digits {bound}
+-- used by gsmSCF for correlation with a previous operation.
+
+DateAndTime ::= OCTET STRING (SIZE(7))
+-- DateAndTime is BCD encoded. The year digit indicating millenium occupies bits
+-- 0-3 of the first octet, and the year digit indicating century occupies bits
+-- 4-7 of the first octet.
+-- The year digit indicating decade occupies bits 0-3 of the second octet,
+-- whilst the digit indicating the year within the decade occupies bits 4-7 of
+-- the second octet.
+-- The most significant month digit occupies bits 0-3 of the third octet,
+-- and the least significant month digit occupies bits 4-7 of the third octet.
+-- The most significant day digit occupies bits 0-3 of the fourth octet,
+-- and the least significant day digit occupies bits 4-7 of the fourth octet.
+-- The most significant hours digit occupies bits 0-3 of the fifth octet,
+-- and the least significant digit occupies bits 4-7 of the fifth octet.
+-- The most significant minutes digit occupies bits 0-3 of the sixth octet,
+-- and the least significant digit occupies bits 4-7 of the sixth octet.
+-- The most significant seconds digit occupies bits 0-3 of the seventh octet,
+-- and the least seconds significant digit occupies bits 4-7 of the seventh octet.
+-- For the encoding of digits in an octet, refer to the timeAndtimezone parameter.
+
+DestinationRoutingAddress {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE(1) OF
+ CalledPartyNumber {bound}
+-- Indicates the Called Party Number.
+
+Digits {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minDigitsLength .. bound.&maxDigitsLength))
+-- Indicates the address signalling digits.
+-- Refer to ETSI EN 300 356 1 [23] Generic Number & Generic Digits parameters for encoding.
+-- The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
+-- Generic Digits are irrelevant to the CAP;
+-- 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 shall use Generic Number:
+-- - AdditionalCallingPartyNumber for InitialDP
+-- - AssistingSSPIPRoutingAddress for EstablishTemporaryConnection
+-- - CorrelationID for AssistRequestInstructions
+-- - CalledAddressValue for all occurrences, CallingAddressValue for all occurrences.
+--
+-- The following parameters shall use Generic Digits:
+-- - CorrelationID in EstablishTemporaryConnection
+-- - number in VariablePart
+-- - digitsResponse in ReceivedInformationArg
+-- - midCallEvents in oMidCallSpecificInfo and tMidCallSpecificInfo
+--
+-- In the digitsResponse and midCallevents, the digits may also include the '*', '#',
+-- a, b, c and d digits by using the IA5 character encoding scheme. If the BCD even or
+-- BCD odd encoding scheme is used, then the following encoding shall be applied for the
+-- non-decimal characters: 1011 (*), 1100 (#).
+--
+-- AssistingSSPIPRoutingAddress in EstablishTemporaryConnection and CorrelationID in
+-- AssistRequestInstructions may contain a Hex B digit as address signal. Refer to
+-- Annex A.6 for the usage of the Hex B digit.
+--
+-- Note that when CorrelationID is transported in Generic Digits, then the digits shall
+-- always be BCD encoded.
+
+DpSpecificCriteria {PARAMETERS-BOUND : bound}::= CHOICE {
+ applicationTimer [1] ApplicationTimer,
+ midCallControlInfo [2] MidCallControlInfo,
+ dpSpecificCriteriaAlt [3] DpSpecificCriteriaAlt {bound}
+ }
+-- Exception handling: reception of DpSpecificCriteriaAlt shall be treated like
+-- reception of no DpSpecificCriteria.
+-- The gsmSCF may set a timer in the gsmSSF for the No_Answer event.
+-- If the user does not answer the call within the allotted time,
+-- then the gsmSSF reports the event to the gsmSCF.
+-- The gsmSCF may define a criterion for the detection of DTMF digits during a call.
+-- The gsmSCF may define other criteria in the dpSpecificCriteriaAlt alternative
+-- in future releases.
+
+DpSpecificCriteriaAlt {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ ...,
+ changeOfPositionControlInfo [0] ChangeOfPositionControlInfo {bound},
+ numberOfDigits [1] NumberOfDigits OPTIONAL,
+ interDigitTimeout [2] INTEGER (1..127) OPTIONAL
+ }
+-- interDigitTimeout duration in seconds.
+
+DpSpecificInfoAlt {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ ...,
+ oServiceChangeSpecificInfo [0] SEQUENCE {
+ ext-basicServiceCode [0] Ext-BasicServiceCode OPTIONAL,
+ ...,
+ initiatorOfServiceChange [1] InitiatorOfServiceChange OPTIONAL,
+ natureOfServiceChange [2] NatureOfServiceChange OPTIONAL
+
+ },
+ tServiceChangeSpecificInfo [1] SEQUENCE {
+ ext-basicServiceCode [0] Ext-BasicServiceCode OPTIONAL,
+ ...,
+ initiatorOfServiceChange [1] InitiatorOfServiceChange OPTIONAL,
+ natureOfServiceChange [2] NatureOfServiceChange OPTIONAL
+ },
+
+ collectedInfoSpecificInfo [2] SEQUENCE {
+ calledPartyNumber [0] CalledPartyNumber OPTIONAL,
+ ...
+ }
+ }
+-- This datatype is for extension in future releases.
+
+ElapsedTime ::= CHOICE {
+ timeGPRSIfNoTariffSwitch [0] INTEGER (0..86400),
+ timeGPRSIfTariffSwitch [1] SEQUENCE {
+ timeGPRSSinceLastTariffSwitch [0] INTEGER (0..86400),
+ timeGPRSTariffSwitchInterval [1] INTEGER (0..86400) OPTIONAL
+ }
+ }
+-- timeGPRSIfNoTariffSwitch is measured in seconds
+-- timeGPRSSinceLastTariffSwitch and timeGPRSTariffSwitchInterval are measured in seconds
+
+ElapsedTimeRollOver ::= CHOICE {
+ rO-TimeGPRSIfNoTariffSwitch [0] INTEGER (0..255),
+ rO-TimeGPRSIfTariffSwitch [1] SEQUENCE {
+ rO-TimeGPRSSinceLastTariffSwitch [0] INTEGER (0..255) OPTIONAL,
+ rO-TimeGPRSTariffSwitchInterval [1] INTEGER (0..255) OPTIONAL
+ }
+ }
+-- rO-TimeGPRSIfNoTariffSwitch, rO-TimeGPRSSinceLastTariffSwitch and
+-- rO-TimeGPRSTariffSwitchInterval
+-- present counters indicating the number of parameter range rollovers.
+
+EndUserAddress {PARAMETERS-BOUND: bound} ::= SEQUENCE {
+ pDPTypeOrganization [0] OCTET STRING (SIZE(1)),
+ pDPTypeNumber [1] OCTET STRING (SIZE(1)),
+ pDPAddress [2] OCTET STRING (SIZE(
+ bound.&minPDPAddressLength .. bound.&maxPDPAddressLength)) OPTIONAL
+ }
+-- Indicates the EndUserAddress, refer to 3GPP TS 29.060 [12] for the encoding.
+-- The pDPTypeOrganization shall use the least significant 4 bits of the octet encoded.
+-- The sender of this parameter shall set the most significant 4 bits of the octet to 1.
+-- The receiver of this parameter shall ignore the most significant 4 bits of this octet.
+
+ErrorTreatment ::= ENUMERATED {
+ stdErrorAndInfo (0),
+ help (1),
+ repeatPrompt (2)
+ }
+-- stdErrorAndInfomeans returning the 'ImproperCallerResponse' error in the event of an error
+-- condition during collection of user info.
+
+EventSpecificInformationBCSM {PARAMETERS-BOUND : bound} ::= CHOICE {
+ routeSelectFailureSpecificInfo [2] SEQUENCE {
+ failureCause [0] Cause {bound} OPTIONAL,
+ ...
+ },
+ oCalledPartyBusySpecificInfo [3] SEQUENCE {
+ busyCause [0] Cause {bound} OPTIONAL,
+ ...
+ },
+ oNoAnswerSpecificInfo [4] SEQUENCE {
+ -- no specific info defined --
+ ...
+ },
+ oAnswerSpecificInfo [5] SEQUENCE {
+ destinationAddress [50] CalledPartyNumber {bound} OPTIONAL,
+ or-Call [51] NULL OPTIONAL,
+ forwardedCall [52] NULL OPTIONAL,
+ chargeIndicator [53] ChargeIndicator OPTIONAL,
+ ext-basicServiceCode [54] Ext-BasicServiceCode OPTIONAL,
+ ext-basicServiceCode2 [55] Ext-BasicServiceCode OPTIONAL,
+ ...
+ },
+ oMidCallSpecificInfo [6] SEQUENCE {
+ midCallEvents [1] CHOICE {
+ dTMFDigitsCompleted [3] Digits {bound},
+ dTMFDigitsTimeOut [4] Digits {bound}
+ } OPTIONAL,
+ ...
+ },
+ oDisconnectSpecificInfo [7] SEQUENCE {
+ releaseCause [0] Cause {bound} OPTIONAL,
+ ...
+ },
+ tBusySpecificInfo [8] SEQUENCE {
+ busyCause [0] Cause {bound} OPTIONAL,
+ callForwarded [50] NULL OPTIONAL,
+ routeNotPermitted [51] NULL OPTIONAL,
+ forwardingDestinationNumber [52] CalledPartyNumber {bound} OPTIONAL,
+ ...
+ },
+ tNoAnswerSpecificInfo [9] SEQUENCE {
+ callForwarded [50] NULL OPTIONAL,
+ forwardingDestinationNumber [52] CalledPartyNumber {bound} OPTIONAL,
+ ...
+ },
+ tAnswerSpecificInfo [10] SEQUENCE {
+ destinationAddress [50] CalledPartyNumber {bound} OPTIONAL,
+ or-Call [51] NULL OPTIONAL,
+ forwardedCall [52] NULL OPTIONAL,
+ chargeIndicator [53] ChargeIndicator OPTIONAL,
+ ext-basicServiceCode [54] Ext-BasicServiceCode OPTIONAL,
+ ext-basicServiceCode2 [55] Ext-BasicServiceCode OPTIONAL,
+ ...
+ },
+ tMidCallSpecificInfo [11] SEQUENCE {
+ midCallEvents [1] CHOICE {
+ dTMFDigitsCompleted [3] Digits {bound},
+ dTMFDigitsTimeOut [4] Digits {bound}
+ } OPTIONAL,
+ ...
+ },
+ tDisconnectSpecificInfo [12] SEQUENCE {
+ releaseCause [0] Cause {bound} OPTIONAL,
+ ...
+ },
+ oTermSeizedSpecificInfo [13] SEQUENCE {
+ locationInformation [50] LocationInformation OPTIONAL,
+ ...
+ },
+ callAcceptedSpecificInfo [20] SEQUENCE {
+ locationInformation [50] LocationInformation OPTIONAL,
+ ...
+ },
+ oAbandonSpecificInfo [21] SEQUENCE {
+ routeNotPermitted [50] NULL OPTIONAL,
+ ...
+ },
+ oChangeOfPositionSpecificInfo [50] SEQUENCE {
+ locationInformation [50] LocationInformation OPTIONAL,
+ ...,
+ metDPCriteriaList [51] MetDPCriteriaList {bound} OPTIONAL
+ },
+ tChangeOfPositionSpecificInfo [51] SEQUENCE {
+ locationInformation [50] LocationInformation OPTIONAL,
+ ...,
+ metDPCriteriaList [51] MetDPCriteriaList {bound} OPTIONAL
+ },
+ dpSpecificInfoAlt [52] DpSpecificInfoAlt {bound}
+ }
+-- Indicates the call related information specific to the event.
+
+EventSpecificInformationSMS ::= CHOICE {
+ o-smsFailureSpecificInfo [0] SEQUENCE {
+ failureCause [0] MO-SMSCause OPTIONAL,
+ ...
+ },
+ o-smsSubmissionSpecificInfo [1] SEQUENCE {
+ -- no specific info defined--
+ ...
+ },
+ t-smsFailureSpecificInfo [2] SEQUENCE {
+ failureCause [0] MT-SMSCause OPTIONAL,
+ ...
+ },
+ t-smsDeliverySpecificInfo [3] SEQUENCE {
+ -- no specific info defined--
+ ...
+ }
+ }
+
+EventTypeBCSM ::= ENUMERATED {
+ collectedInfo (2),
+ analyzedInformation (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),
+ oTermSeized (19),
+ callAccepted (27),
+ oChangeOfPosition (50),
+ tChangeOfPosition (51),
+ ...,
+ oServiceChange (52),
+ tServiceChange (53)
+ }
+-- Indicates the BCSM detection point event.
+-- Values analyzedInformation and termAttemptAuthorized may be used
+-- for TDPs only.
+-- Exception handling: reception of an unrecognized value shall be treated
+-- like reception of no detection point.
+
+EventTypeSMS ::= ENUMERATED {
+ sms-CollectedInfo (1),
+ o-smsFailure (2),
+ o-smsSubmission (3),
+ sms-DeliveryRequested (11),
+ t-smsFailure (12),
+ t-smsDelivery (13)
+ }
+-- Values sms-CollectedInfo and sms-DeliveryRequested may be used for TDPs only.
+
+Extensions {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE (1..bound.&numOfExtensions) OF ExtensionField
+ExtensionField ::= SEQUENCE {
+ type EXTENSION.&id ({SupportedExtensions}),
+ -- shall identify the value of an EXTENSION type
+ criticality CriticalityType DEFAULT ignore,
+ value [1] EXTENSION.&ExtensionType ({SupportedExtensions}{@type}),
+ ...
+ }
+-- This parameter indicates an extension of an argument data type.
+-- Its content is network operator specific
+
+FCIBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minFCIBillingChargingLength .. bound.&maxFCIBillingChargingLength))
+ (CONSTRAINED BY {-- shall be the result of the BER-encoded value of type --
+ CAMEL-FCIBillingChargingCharacteristics {bound}})
+-- This parameter indicates the billing and/or charging characteristics.
+-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.
+
+FCIGPRSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minFCIBillingChargingLength .. bound.&maxFCIBillingChargingLength))
+ (CONSTRAINED BY {-- shall be the result of the BER-encoded value of type -
+ CAMEL-FCIGPRSBillingChargingCharacteristics {bound}})
+-- This parameter indicates the GPRS billing and/or charging characteristics.
+-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.
+
+FCISMSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minFCIBillingChargingLength .. bound.&maxFCIBillingChargingLength))
+ (CONSTRAINED BY {-- shall be the result of the BER-encoded value of type -
+ CAMEL-FCISMSBillingChargingCharacteristics {bound}})
+-- This parameter indicates the SMS billing and/or charging characteristics.
+-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.
+
+ForwardServiceInteractionInd ::= SEQUENCE {
+ conferenceTreatmentIndicator [1] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- acceptConferenceRequest 'xxxx xx01'B
+ -- rejectConferenceRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect conference treatment
+ callDiversionTreatmentIndicator [2] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- callDiversionAllowed 'xxxx xx01'B
+ -- callDiversionNotAllowed 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect call diversion treatment
+ callingPartyRestrictionIndicator [4] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- noINImpact 'xxxx xx01'B
+ -- presentationRestricted 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect calling party restriction treatment
+...
+ }
+
+GapCriteria {PARAMETERS-BOUND : bound}::= CHOICE {
+ basicGapCriteria BasicGapCriteria {bound},
+ compoundGapCriteria CompoundCriteria {bound}
+ }
+
+GapIndicators ::= SEQUENCE {
+ duration [0] Duration,
+ gapInterval [1] Interval,
+ ...
+ }
+-- Indicates the call gapping characteristics.
+-- No call gapping when gapInterval equals 0.
+
+GapOnService ::= SEQUENCE {
+ serviceKey [0] ServiceKey,
+ ...
+ }
+
+GapTreatment {PARAMETERS-BOUND : bound} ::= CHOICE {
+ informationToSend [0] InformationToSend {bound},
+ releaseCause [1] Cause {bound}
+ }
+-- The default value for Cause is the same as in ISUP.
+
+GenericNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minGenericNumberLength .. bound.&maxGenericNumberLength))
+-- Indicates a generic number. Refer to ETSI EN 300 356 1 [23] Generic number for encoding.
+
+GenericNumbers {PARAMETERS-BOUND : bound} ::= SET SIZE(1..bound.&numOfGenericNumbers) OF GenericNumber {bound}
+
+GPRS-QoS ::= CHOICE {
+ short-QoS-format [0] QoS-Subscribed,
+ long-QoS-format [1] Ext-QoS-Subscribed
+ }
+-- Short-QoS-format shall be sent for QoS in pre GSM release 99 format.
+-- Long-QoS-format shall be sent for QoS in GSM release 99 (and beyond) format.
+-- Which of the two QoS formats shall be sent is determined by which QoS
+-- format is available in the SGSN at the time of sending.
+-- Refer to 3GPP TS 29.002 [11] for encoding details of QoS-Subscribed and
+-- Ext-QoS-Subscribed.
+
+GPRS-QoS-Extension ::= SEQUENCE {
+ supplement-to-long-QoS-format [0] Ext2-QoS-Subscribed,
+ ... ,
+ additionalSupplement [1] Ext3-QoS-Subscribed OPTIONAL
+ }
+
+GPRSCause {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE
+ (bound.&minGPRSCauseLength .. bound.&maxGPRSCauseLength))
+-- Shall only include the cause value.
+
+-- 00000000 Unspecified
+-- All other values shall be interpreted as 'Unspecified'.
+--
+-- This parameter indicates the cause for CAP interface related information.
+-- The GPRSCause mapping to/from GTP cause values specified in the 3GPP TS 29.060 [12] and
+-- to/from 3GPP TS 24.008 [9] GMM cause and SM cause values are outside scope of this document.
+
+GPRSEvent ::= SEQUENCE {
+ gPRSEventType [0] GPRSEventType,
+ monitorMode [1] MonitorMode
+ }
+-- Indicates the GPRS event information for monitoring.
+
+GPRSEventSpecificInformation {PARAMETERS-BOUND : bound} ::= CHOICE {
+
+ attachChangeOfPositionSpecificInformation
+ [0] SEQUENCE {
+ locationInformationGPRS [0] LocationInformationGPRS OPTIONAL,
+ ...
+ },
+
+ pdp-ContextchangeOfPositionSpecificInformation
+ [1] SEQUENCE {
+ accessPointName [0] AccessPointName {bound} OPTIONAL,
+ chargingID [1] GPRSChargingID OPTIONAL,
+ locationInformationGPRS [2] LocationInformationGPRS OPTIONAL,
+ endUserAddress [3] EndUserAddress {bound} OPTIONAL,
+ qualityOfService [4] QualityOfService OPTIONAL,
+ timeAndTimeZone [5] TimeAndTimezone {bound} OPTIONAL,
+ ...,
+ gGSNAddress [6] GSN-Address OPTIONAL
+ },
+
+ detachSpecificInformation [2] SEQUENCE {
+ initiatingEntity [0] InitiatingEntity OPTIONAL,
+ ...,
+ routeingAreaUpdate [1] NULL OPTIONAL
+ },
+
+ disconnectSpecificInformation [3] SEQUENCE {
+ initiatingEntity [0] InitiatingEntity OPTIONAL,
+ ...,
+ routeingAreaUpdate [1] NULL OPTIONAL
+ },
+
+ pDPContextEstablishmentSpecificInformation
+ [4] SEQUENCE {
+ accessPointName [0] AccessPointName {bound} OPTIONAL,
+ endUserAddress [1] EndUserAddress {bound} OPTIONAL,
+ qualityOfService [2] QualityOfService OPTIONAL,
+ locationInformationGPRS [3] LocationInformationGPRS OPTIONAL,
+ timeAndTimeZone [4] TimeAndTimezone {bound} OPTIONAL,
+ pDPInitiationType [5] PDPInitiationType OPTIONAL,
+ ...,
+ secondaryPDP-context [6] NULL OPTIONAL
+ },
+
+ pDPContextEstablishmentAcknowledgementSpecificInformation
+ [5] SEQUENCE {
+ accessPointName [0] AccessPointName {bound} OPTIONAL,
+ chargingID [1] GPRSChargingID OPTIONAL,
+ endUserAddress [2] EndUserAddress {bound} OPTIONAL,
+ qualityOfService [3] QualityOfService OPTIONAL,
+ locationInformationGPRS [4] LocationInformationGPRS OPTIONAL,
+ timeAndTimeZone [5] TimeAndTimezone {bound} OPTIONAL,
+ ...,
+ gGSNAddress [6] GSN-Address OPTIONAL
+ }
+ }
+
+GPRSEventType ::= ENUMERATED {
+ attach (1),
+ attachChangeOfPosition (2),
+ detached (3),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ disonnect (13),
+ pdp-ContextChangeOfPosition (14)
+ }
+
+InbandInfo {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ messageID [0] MessageID {bound},
+ 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 {PARAMETERS-BOUND : bound} ::= CHOICE {
+ inbandInfo [0] InbandInfo {bound},
+ tone [1] Tone
+ }
+
+InitiatingEntity ::= ENUMERATED {
+ mobileStation (0),
+ sgsn (1),
+ hlr (2),
+ ggsn (3)
+ }
+
+InitiatorOfServiceChange ::= ENUMERATED {
+ a-side (0),
+ b-side (1)
+ }
+
+InvokeID ::= INTEGER (-128..127)
+
+IPRoutingAddress {PARAMETERS-BOUND : bound} ::= CalledPartyNumber {bound}
+-- Indicates the routeing address for the IP.
+
+IPSSPCapabilities {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minIPSSPCapabilitiesLength .. bound.&maxIPSSPCapabilitiesLength))
+-- Indicates the gsmSRF resources available. The parameter has two parts, a standard and a
+-- bilateral part. The standard part indicates capabilities defined as optional in CAP
+-- that shall be recognised (but not necessarily supported) by a gsmSCF. The bilateral
+-- part contains further information that is not specified in this standard, but which is set
+-- according to bilateral agreements between network operators and/or equipment vendors.
+-- The last octet of the standard part is indicated by bit 7 being set to 0, otherwise Bit 7 of
+-- a standard part octet is set to 1 indicating that the standard part continues in the following
+-- octet. Coding is as follows:
+
+-- Octet 1 Standard Part for CAP
+-- Bit Value Meaning
+-- 0 0 IPRoutingAddress not supported
+-- 1 IPRoutingAddress supported
+-- 1 0 VoiceBack not supported
+-- 1 VoiceBack supported
+-- 2 0 VoiceInformation not supported, via speech recognition
+-- 1 VoiceInformation supported, via speech recognition
+-- 3 0 VoiceInformation not supported, via voice recognition
+-- 1 VoiceInformation supported, via voice recognition
+-- 4 0 Generation of voice announcements from Text not supported
+-- 1 Generation of voice announcements from Text supported
+-- 5 - Reserved
+-- 6 - Reserved
+-- 7 0 End of standard part
+-- 1 This value is reserved in CAP
+--
+-- Octets 2 to 4 Bilateral Part: Network operator/equipment vendor specific
+
+LegOrCallSegment {PARAMETERS-BOUND : bound} ::= CHOICE {
+ callSegmentID [0] CallSegmentID {bound},
+ legID [1] LegID
+ }
+
+LegType ::= OCTET STRING (SIZE(1))
+leg1 LegType ::= '01'H
+leg2 LegType ::= '02'H
+
+LocationInformationGPRS ::= SEQUENCE {
+ cellGlobalIdOrServiceAreaIdOrLAI [0] OCTET STRING (SIZE(5..7)) 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,
+ userCSGInformation [7] UserCSGInformation OPTIONAL
+}
+-- cellGlobalIdOrServiceAreaIdOrLAI shall contain the value part of the
+-- CellGlobalIdOrServiceAreaIdFixedLength type or the LAIFixedLength type (i.e. excluding tags
+-- and lengths) as defined in 3GPP TS 29.002 [13].
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- UserCSGInformation contains the CSG ID, Access mode, and the CSG Membership Indication in the
+-- case the Access mode is Hybrid Mode, as defined in 3GPP TS 23.060 [93].
+
+-- WS define UserCSGInformation
+UserCSGInformation ::= OCTET STRING
+
+LocationNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
+ bound.&minLocationNumberLength .. bound.&maxLocationNumberLength))
+-- Indicates the Location Number for the calling party.
+-- Refer to ETSI EN 300 356 1 [23] for encoding.
+
+LowLayerCompatibility {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
+ bound.&minLowLayerCompatibilityLength .. bound.&maxLowLayerCompatibilityLength))
+-- indicates the LowLayerCompatibility for the calling party.
+-- Refer to 3GPP TS 24.008 [9] for encoding.
+-- It shall be coded as in the value part defined in 3GPP TS 24.008.
+-- i.e. the 3GPP TS 24.008 IEI and 3GPP TS 24.008 octet length indicator
+-- shall not be included.
+
+MessageID {PARAMETERS-BOUND : bound} ::= CHOICE {
+ elementaryMessageID [0] Integer4,
+ text [1] SEQUENCE {
+ messageContent [0] IA5String (SIZE(
+ bound.&minMessageContentLength .. bound.&maxMessageContentLength)),
+ attributes [1] OCTET STRING (SIZE(
+ bound.&minAttributesLength .. bound.&maxAttributesLength)) OPTIONAL
+ },
+ elementaryMessageIDs [29] SEQUENCE SIZE (1.. bound.&numOfMessageIDs) OF Integer4,
+ variableMessage [30] SEQUENCE {
+ elementaryMessageID [0] Integer4,
+ variableParts [1] SEQUENCE SIZE (1..5) OF VariablePart {bound}
+ }
+ }
+-- Use of the text parameter is network operator/equipment vendor specific.
+
+MetDPCriteriaList {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE (1..bound.&numOfChangeOfPositionControlInfo) OF MetDPCriterion {bound}
+
+MetDPCriterion {PARAMETERS-BOUND : bound} ::= CHOICE {
+ enteringCellGlobalId [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ leavingCellGlobalId [1] CellGlobalIdOrServiceAreaIdFixedLength,
+ enteringServiceAreaId [2] CellGlobalIdOrServiceAreaIdFixedLength,
+ leavingServiceAreaId [3] CellGlobalIdOrServiceAreaIdFixedLength,
+ enteringLocationAreaId [4] LAIFixedLength,
+ leavingLocationAreaId [5] LAIFixedLength,
+ inter-SystemHandOverToUMTS [6] NULL,
+ inter-SystemHandOverToGSM [7] NULL,
+ inter-PLMNHandOver [8] NULL,
+ inter-MSCHandOver [9] NULL,
+ metDPCriterionAlt [10] MetDPCriterionAlt {bound}
+}
+-- The enteringCellGlobalId and leavingCellGlobalId shall contain a Cell Global Identification.
+-- The enteringServiceAreaId and leavingServiceAreaId shall contain a Service Area Identification.
+
+MetDPCriterionAlt {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ ...
+ }
+
+MidCallControlInfo ::= SEQUENCE {
+ minimumNumberOfDigits [0] INTEGER (1..30) DEFAULT 1,
+ maximumNumberOfDigits [1] INTEGER (1..30) DEFAULT 30,
+ endOfReplyDigit [2] OCTET STRING (SIZE (1..2)) OPTIONAL,
+ cancelDigit [3] OCTET STRING (SIZE (1..2)) OPTIONAL,
+ startDigit [4] OCTET STRING (SIZE (1..2)) OPTIONAL,
+ interDigitTimeout [6] INTEGER (1..127) DEFAULT 10,
+ ...
+ }
+--
+-- - minimumNumberOfDigits specifies the minumum number of digits that shall be collected
+-- - maximumNumberOfDigits specifies the maximum number of digits that shall be collected
+-- - endOfReplyDigit specifies the digit string that denotes the end of the digits
+-- to be collected.
+-- - cancelDigit specifies the digit string that indicates that the input shall
+-- be erased and digit collection shall start afresh.
+-- - startDigit specifies the digit string that denotes the start of the digits
+-- to be collected.
+-- - interDigitTimeout specifies the maximum duration in seconds between successive
+-- digits.
+--
+-- endOfReplyDigit, cancelDigit and startDigit shall contain digits in the range 0..9, '*' and '#'
+-- only. The collected digits string, reported to the gsmSCF, shall include the endOfReplyDigit and
+-- the startDigit, if present.
+--
+-- endOfReplyDigit, cancelDigit and startDigit shall be encoded as BCD digits. Each octet shall
+-- contain one BCD digit, in the 4 least significant bits of each octet.
+-- The following encoding shall be used for the over-decadic digits: 1011 (*), 1100 (#).
+
+MonitorMode ::= ENUMERATED {
+ interrupted (0),
+ notifyAndContinue (1),
+ transparent (2)
+ }
+-- Indicates the event is relayed and/or processed by the SSP.
+-- Transparent means that the gsmSSF or gprsSSF does not notify the gsmSCF of the event.
+-- For the use of this parameter refer to the procedure descriptions in clause 11.
+-- For the RequestNotificationCharging operation, 'interrupted' shall not be used in MonitorMode.
+
+MO-SMSCause ::= ENUMERATED {
+ systemFailure (0),
+ unexpectedDataValue (1),
+ facilityNotSupported (2),
+ sM-DeliveryFailure (3),
+ releaseFromRadioInterface (4)
+ }
+-- MO SMS error values which are reported to gsmSCF.
+-- Most of these values are received from the SMSC as a response to
+-- MO-ForwardSM operation.
+
+MT-SMSCause ::= OCTET STRING (SIZE (1))
+-- This variable is sent to the gsmSCF for a Short Message delivery failure
+-- notification.
+-- If the delivery failure is due to RP-ERROR RPDU received from the MS,
+-- then MT-SMSCause shall be set to the RP-Cause component in the RP-ERROR RPDU.
+-- Refer to 3GPP TS 24.011 [10] for the encoding of RP-Cause values.
+-- Otherwise, if the delivery failure is due to internal failure in the MSC or SGSN
+-- or time-out from the MS, then MT-SMSCause shall be set to 'Protocol error,
+-- unspecified', as defined in 3GPP TS 24.011 [10].
+
+NAOliInfo ::= OCTET STRING (SIZE (1))
+-- NA Oli information takes the same value as defined in ANSI T1.113-1995 [92]
+-- e.g. '3D'H - Decimal value 61 - Cellular Service (Type 1)
+-- '3E'H - Decimal value 62 - Cellular Service (Type 2)
+-- '3F'H - Decimal value 63 - Cellular Service (roaming)
+
+NatureOfServiceChange ::= ENUMERATED {
+ userInitiated (0),
+ networkInitiated (1)
+ }
+
+NumberOfDigits ::= INTEGER (1..255)
+-- Indicates the number of digits to be collected.
+
+OCSIApplicable ::= NULL
+-- Indicates that the Originating CAMEL Subscription Information, if present, shall be
+-- applied on the outgoing call leg created with a Connect operation. For the use of this
+-- parameter see 3GPP TS 23.078 [7].
+
+OriginalCalledPartyID {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minOriginalCalledPartyIDLength .. bound.&maxOriginalCalledPartyIDLength))
+-- Indicates the original called number. Refer to ETSI EN 300 356 1 [23] Original Called Number
+-- for encoding.
+
+PDPID ::= OCTET STRING (SIZE (1))
+-- PDP Identifier is a counter used to identify a specific PDP Context within a control
+-- relationship between gprsSSF and gsmSCF.
+
+PDPInitiationType ::= ENUMERATED {
+ mSInitiated (0),
+ networkInitiated (1)
+ }
+
+QualityOfService ::= SEQUENCE {
+ requested-QoS [0] GPRS-QoS OPTIONAL,
+ subscribed-QoS [1] GPRS-QoS OPTIONAL,
+ negotiated-QoS [2] GPRS-QoS OPTIONAL,
+ ...,
+ requested-QoS-Extension [3] GPRS-QoS-Extension OPTIONAL,
+ subscribed-QoS-Extension [4] GPRS-QoS-Extension OPTIONAL,
+ negotiated-QoS-Extension [5] GPRS-QoS-Extension OPTIONAL
+ }
+
+ReceivingSideID ::= CHOICE {
+ receivingSideID [1] LegType
+ }
+-- used to identify LegID in operations sent from gsmSSF to gsmSCF
+
+RedirectingPartyID {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
+ bound.&minRedirectingPartyIDLength .. bound.&maxRedirectingPartyIDLength))
+-- Indicates redirecting number.
+-- Refer to ETSI EN 300 356 1 [23] Redirecting number for encoding.
+
+RequestedInformationList {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE (1.. numOfInfoItems) OF RequestedInformation {bound}
+
+RequestedInformationTypeList ::= SEQUENCE SIZE (1.. numOfInfoItems) OF RequestedInformationType
+
+RequestedInformation {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ requestedInformationType [0] RequestedInformationType,
+ requestedInformationValue [1] RequestedInformationValue {bound},
+...
+ }
+
+RequestedInformationType ::= ENUMERATED {
+ callAttemptElapsedTime (0),
+ callStopTime (1),
+ callConnectedElapsedTime (2),
+ releaseCause (30)
+ }
+
+RequestedInformationValue {PARAMETERS-BOUND : bound} ::= CHOICE {
+ callAttemptElapsedTimeValue [0] INTEGER (0..255),
+ callStopTimeValue [1] DateAndTime,
+ callConnectedElapsedTimeValue [2] Integer4,
+ releaseCauseValue [30] Cause {bound}
+ }
+-- The callAttemptElapsedTimeValue is specified in seconds. The unit for the
+-- callConnectedElapsedTimeValue is 100 milliseconds
+
+RPCause ::= OCTET STRING (SIZE (1))
+-- RP cause according to 3GPP TS 24.011 [10] or 3GPP TS 29.002 [11].
+-- GsmSCF shall send this cause in the ReleaseSMS operation.
+-- For a MO-SMS service, the MSC or SGSN shall send the RP Cause to the originating MS.
+-- It shall be used to overwrite the RP-Cause element in the RP-ERROR RPDU.
+-- For a MT-SMS service, the MSC or SGSN shall send the RP Cause to the sending SMS-GMSC.
+-- It shall be used to overwrite the RP-Cause element in the RP-ERROR RPDU.
+
+ScfID {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minScfIDLength .. bound.&maxScfIDLength))
+-- defined by network operator.
+-- Indicates the gsmSCF identity.
+
+SCIBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
+ bound.&minSCIBillingChargingLength .. bound.&maxSCIBillingChargingLength))
+ (CONSTRAINED BY {-- shall be the result of the BER-encoded value of type --
+ CAMEL-SCIBillingChargingCharacteristics})
+-- Indicates AOC information to be sent to a Mobile Station
+-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.
+
+SCIGPRSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
+ bound.&minSCIBillingChargingLength .. bound.&maxSCIBillingChargingLength))
+ (CONSTRAINED BY {-- shall be the result of the BER-encoded value of type -
+ CAMEL-SCIGPRSBillingChargingCharacteristics})
+-- Indicates AOC information to be sent to a Mobile Station
+-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.
+
+SendingSideID ::= CHOICE {sendingSideID [0] LegType}
+-- used to identify LegID in operations sent from gsmSCF to gsmSSF
+
+ServiceInteractionIndicatorsTwo ::= SEQUENCE {
+ forwardServiceInteractionInd [0] ForwardServiceInteractionInd OPTIONAL,
+ -- applicable to operations InitialDP, Connect and ContinueWithArgument.
+ backwardServiceInteractionInd [1] BackwardServiceInteractionInd OPTIONAL,
+ -- applicable to operations Connect and ContinueWithArgument.
+ bothwayThroughConnectionInd [2] BothwayThroughConnectionInd OPTIONAL,
+ -- applicable to ConnectToResource and EstablishTemporaryConnection
+ connectedNumberTreatmentInd [4] ConnectedNumberTreatmentInd OPTIONAL,
+ -- applicable to Connect and ContinueWithArgument
+ nonCUGCall [13] NULL OPTIONAL,
+ -- applicable to Connect and ContinueWithArgument
+ -- indicates that no parameters for CUG shall be used for the call (i.e. the call shall
+ -- be a non-CUG call).
+ -- If not present, it indicates one of three things:
+ -- a) continue with modified CUG information (when one or more of either CUG Interlock Code
+ -- and Outgoing Access Indicator are present), or
+ -- b) continue with original CUG information (when neither CUG Interlock Code or Outgoing
+ -- Access Indicator are present), i.e. no IN impact.
+ -- c) continue with the original non-CUG call.
+ holdTreatmentIndicator [50] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- applicable to InitialDP, Connect and ContinueWithArgument
+ -- acceptHoldRequest 'xxxx xx01'B
+ -- rejectHoldRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect call hold treatment
+ cwTreatmentIndicator [51] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- applicable to InitialDP, Connect and ContinueWithArgument
+ -- acceptCw 'xxxx xx01'B
+ -- rejectCw 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect call waiting treatment
+ ectTreatmentIndicator [52] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- applicable to InitialDP, Connect and ContinueWithArgument
+ -- acceptEctRequest 'xxxx xx01'B
+ -- rejectEctRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect explicit call transfer treatment
+ ...
+ }
+
+SGSNCapabilities ::= OCTET STRING (SIZE (1))
+
+-- Indicates the SGSN capabilities. The coding of the parameter is as follows:
+-- Bit Value Meaning
+-- 0 0 AoC not supported by SGSN
+-- 1 AoC supported by SGSN
+-- 1 - This bit is reserved in CAP V.3
+-- 2 - This bit is reserved in CAP V.3
+-- 3 - This bit is reserved in CAP V.3
+-- 4 - This bit is reserved in CAP V.3
+-- 5 - This bit is reserved in CAP V.3
+-- 6 - This bit is reserved in CAP V.3
+-- 7 - This bit is reserved in CAP V.3
+
+SMS-AddressString ::= AddressString (SIZE (1 .. maxSMS-AddressStringLength))
+-- This data type is used to transport CallingPartyNumber for MT-SMS.
+-- If this data type is used for MO-SMS, then the maximum number of digits shall be 16.
+-- An SMS-AddressString may contain an alphanumeric character string. In this
+-- case, a nature of address indicator '101'B is used, in accordance with
+-- 3GPP TS 23.040 [6]. The address is coded in accordance with the GSM 7 bit
+-- default alphabet definition and the SMS packing rules as specified in
+-- 3GPP TS 23.038 [15] in this case.
+
+maxSMS-AddressStringLength INTEGER ::= 11
+
+SMSEvent ::= SEQUENCE {
+ eventTypeSMS [0] EventTypeSMS,
+ monitorMode [1] MonitorMode
+ }
+
+TariffSwitchInterval ::= INTEGER (1 .. 86400)
+-- TariffSwitchInterval is measured in 1 second units
+
+TimeAndTimezone {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+ bound.&minTimeAndTimezoneLength .. bound.&maxTimeAndTimezoneLength))
+-- Indicates the time and timezone, relative to GMT. This parameter is BCD encoded.
+-- The year digit indicating millenium occupies bits 0-3 of the first octet, and the year
+-- digit indicating century occupies bits 4-7 of the first octet.
+-- The year digit indicating decade occupies bits 0-3 of the second octet, whilst the digit
+-- indicating the year within the decade occupies bits 4-7 of the second octet.
+-- The most significant month digit occupies bits 0-3 of the third octet, and the least
+-- significant month digit occupies bits 4-7 of the third octet.
+-- The most significant day digit occupies bits 0-3 of the fourth octet, and the least
+-- significant day digit occupies bits 4-7 of the fourth octet.
+-- The most significant hours digit occupies bits 0-3 of the fifth octet, and the least
+-- significant hours digit occupies bits 4-7 of the fifth octet.
+-- The most significant minutes digit occupies bits 0-3 of the sixth octet, and the least
+-- significant minutes digit occupies bits 4-7 of the sixth octet.
+-- The most significant seconds digit occupies bits 0-3 of the seventh octet, and the least
+-- significant seconds digit occupies bits 4-7 of the seventh octet.
+--
+-- The timezone information occupies the eighth octet. For the encoding of Timezone refer to
+-- 3GPP TS 23.040 [6].
+--
+-- The BCD digits are packed and encoded as follows:
+--
+-- Bit 7 6 5 4 | 3 2 1 0
+-- 2nd digit | 1st digit Octet 1
+-- 3rd digit | 4th digit Octet 2
+-- .. ..
+-- nth digit | n-1th digit Octet m
+--
+-- 0000 digit 0
+-- 0001 digit 1
+-- 0010 digit 2
+-- 0011 digit 3
+-- 0100 digit 4
+-- 0101 digit 5
+-- 0110 digit 6
+-- 0111 digit 7
+-- 1000 digit 8
+-- 1001 digit 9
+-- 1010 spare
+-- 1011 spare
+-- 1100 spare
+-- 1101 spare
+-- 1110 spare
+-- 1101 spare
+--
+-- where the leftmost bit of the digit is either bit 7 or bit 3 of the octet.
+
+TimeIfNoTariffSwitch ::= INTEGER(0..864000)
+-- TimeIfNoTariffSwitch is measured in 100 millisecond intervals
+
+TimeIfTariffSwitch ::= SEQUENCE {
+ timeSinceTariffSwitch [0] INTEGER(0..864000),
+ tariffSwitchInterval [1] INTEGER(1..864000) OPTIONAL
+ }
+-- timeSinceTariffSwitch and tariffSwitchInterval are measured in 100 millisecond intervals
+
+TimeInformation ::= CHOICE {
+ timeIfNoTariffSwitch [0] TimeIfNoTariffSwitch,
+ timeIfTariffSwitch [1] TimeIfTariffSwitch
+ }
+-- Indicates call duration information
+
+TimerID ::= ENUMERATED {
+ tssf (0)
+ }
+-- 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.
+
+TPDataCodingScheme ::= OCTET STRING (SIZE (1))
+-- TP Data Coding Scheme according to 3GPP TS 23.040 [6]
+
+TPProtocolIdentifier ::= OCTET STRING (SIZE (1))
+-- indicates the protocol used above the SM-Transfer Layer as specified in 3GPP TS 23.040 [6].
+
+TPShortMessageSpecificInfo ::= OCTET STRING (SIZE (1))
+-- contains the 1st octect of the applicable TPDU or the SMS-COMMAND TPDU as specified in
+-- 3GPP TS 23.040 [6].
+
+TPValidityPeriod ::= OCTET STRING (SIZE (1..7))
+-- indicates the length of the validity period or the absolute time of the validity
+-- period termination as specified in 3GPP TS 23.040 [6].
+-- the length of ValidityPeriod is either 1 octet or 7 octets
+
+TransferredVolume ::= CHOICE {
+ volumeIfNoTariffSwitch [0] INTEGER (0..4294967295),
+ volumeIfTariffSwitch [1] SEQUENCE {
+ volumeSinceLastTariffSwitch [0] INTEGER (0..4294967295),
+ volumeTariffSwitchInterval [1] INTEGER (0..4294967295) OPTIONAL
+ }
+ }
+-- volumeIfNoTariffSwitch, volumeSinceLastTariffSwitch and volumeTariffSwitchInterval
+-- are measured in bytes.
+
+TransferredVolumeRollOver ::= CHOICE {
+ rO-VolumeIfNoTariffSwitch [0] INTEGER (0..255),
+ rO-VolumeIfTariffSwitch [1] SEQUENCE {
+ rO-VolumeSinceLastTariffSwitch [0] INTEGER (0..255) OPTIONAL,
+ rO-VolumeTariffSwitchInterval [1] INTEGER (0..255) OPTIONAL
+ }
+ }
+-- rO-VolumeIfNoTariffSwitch, rO-VolumeSinceLastTariffSwitch and rO-VolumeTariffSwitchInterval
+-- present counters indicating the number of parameter range rollovers.
+
+UnavailableNetworkResource ::= ENUMERATED {
+ unavailableResources (0),
+ componentFailure (1),
+ basicCallProcessingException (2),
+ resourceStatusFailure (3),
+ endUserFailure (4)
+ }
+-- Indicates the network resource that failed.
+
+VariablePart {PARAMETERS-BOUND : bound} ::= CHOICE {
+ integer [0] Integer4,
+ number [1] Digits {bound}, -- Generic digits
+ time [2] OCTET STRING (SIZE(2)), -- HH: MM, BCD coded
+ date [3] OCTET STRING (SIZE(4)), -- YYYYMMDD, BCD coded
+ price [4] OCTET STRING (SIZE(4))
+ }
+-- Indicates the variable part of the message. Time is BCD encoded.
+-- The most significant hours digit occupies bits 0-3 of the first octet, and the least
+-- significant digit occupies bits 4-7 of the first octet. The most significant minutes digit
+-- occupies bits 0-3 of the second octet, and the least significant digit occupies bits 4-7
+-- of the second octet.
+--
+-- Date is BCD encoded. The year digit indicating millenium occupies bits 0-3 of the first octet,
+-- and the year digit indicating century occupies bits 4-7 of the first octet. The year digit
+-- indicating decade occupies bits 0-3 of the second octet, whilst the digit indicating the year
+-- within the decade occupies bits 4-7 of the second octet.
+-- The most significant month digit occupies bits 0-3 of the third octet, and the least
+-- significant month digit occupies bits 4-7 of the third octet. The most significant day digit
+-- occupies bits 0-3 of the fourth octet, and the least significant day digit occupies bits 4-7
+-- of the fourth octet.
+-- Price is BCD encoded. The digit indicating hundreds of thousands occupies bits 0-3 of the
+-- first octet, and the digit indicating tens of thousands occupies bits 4-7 of the first octet.
+-- The digit indicating thousands occupies bits 0-3 of the second octet, whilst the digit
+-- indicating hundreds occupies bits 4-7 of the second octet. The digit indicating tens occupies
+-- bits 0-3 of the third octet, and the digit indicating 0 to 9 occupies bits 4-7 of the third
+-- octet. The tenths digit occupies bits 0-3 of the fourth octet, and the hundredths digit
+-- occupies bits 4-7 of the fourth octet.
+--
+-- For the encoding of digits in an octet, refer to the timeAndtimezone parameter
+
+-- The Definition of range of constants follows
+numOfInfoItems INTEGER ::= 4
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-errorcodes.asn b/epan/dissectors/asn1/camel/CAP-errorcodes.asn
new file mode 100644
index 0000000000..8db9639dd1
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-errorcodes.asn
@@ -0,0 +1,36 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 5.4 Error codes
+CAP-errorcodes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-errorcodes(57) version8(7)}
+
+DEFINITIONS ::= BEGIN
+
+IMPORTS
+
+ ros-InformationObjects
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+ Code
+FROM Remote-Operations-Information-Objects ros-InformationObjects
+
+;
+
+errcode-canceled Code ::= local: 0
+errcode-cancelFailed Code ::= local: 1
+errcode-eTCFailed Code ::= local: 3
+errcode-improperCallerResponse Code ::= local: 4
+errcode-missingCustomerRecord Code ::= local: 6
+errcode-missingParameter Code ::= local: 7
+errcode-parameterOutOfRange Code ::= local: 8
+errcode-requestedInfoError Code ::= local: 10
+errcode-systemFailure Code ::= local: 11
+errcode-taskRefused Code ::= local: 12
+errcode-unavailableResource Code ::= local: 13
+errcode-unexpectedComponentSequence Code ::= local: 14
+errcode-unexpectedDataValue Code ::= local: 15
+errcode-unexpectedParameter Code ::= local: 16
+errcode-unknownLegID Code ::= local: 17
+errcode-unknownPDPID Code ::= local: 50
+errcode-unknownCSID Code ::= local: 51
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-errortypes.asn b/epan/dissectors/asn1/camel/CAP-errortypes.asn
new file mode 100644
index 0000000000..7f4a60d13b
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-errortypes.asn
@@ -0,0 +1,157 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 5.2 Error types
+
+CAP-errortypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-errortypes(51) version8(7)}
+
+-- This module contains the type definitions for the CAP Error 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.
+
+DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+IMPORTS
+
+ ros-InformationObjects,
+ datatypes,
+ errorcodes
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+ ERROR
+FROM Remote-Operations-Information-Objects ros-InformationObjects
+
+ InvokeID,
+ UnavailableNetworkResource
+FROM CAP-datatypes datatypes
+
+ errcode-canceled,
+ errcode-cancelFailed,
+ errcode-eTCFailed,
+ errcode-improperCallerResponse,
+ errcode-missingCustomerRecord,
+ errcode-missingParameter,
+ errcode-parameterOutOfRange,
+ errcode-requestedInfoError,
+ errcode-systemFailure,
+ errcode-taskRefused,
+ errcode-unavailableResource,
+ errcode-unexpectedComponentSequence,
+ errcode-unexpectedDataValue,
+ errcode-unexpectedParameter,
+ errcode-unknownLegID,
+ errcode-unknownCSID,
+ errcode-unknownPDPID
+FROM CAP-errorcodes errorcodes
+
+;
+
+-- TYPE DEFINITION FOR CAP ERROR TYPES FOLLOWS
+
+canceled ERROR ::= {
+ CODE errcode-canceled
+ }
+-- The operation has been canceled.
+
+cancelFailed ERROR ::= {
+ PARAMETER SEQUENCE {
+ problem [0] ENUMERATED {
+ unknownOperation (0),
+ tooLate (1),
+ operationNotCancellable (2)
+ },
+ operation [1] InvokeID,
+ ...
+ }
+ CODE errcode-cancelFailed
+ }
+-- The operation failed to be canceled.
+
+eTCFailed ERROR ::= {
+ CODE errcode-eTCFailed
+ }
+-- The establish temporary connection failed.
+
+improperCallerResponse ERROR ::= {
+ CODE errcode-improperCallerResponse
+ }
+-- The caller response was not as expected.
+
+missingCustomerRecord ERROR ::= {
+ CODE errcode-missingCustomerRecord
+ }
+-- The Service Logic Program could not be found in the gsmSCF.
+
+missingParameter ERROR ::= {
+ CODE errcode-missingParameter
+ }
+-- An expected optional parameter was not received.
+
+parameterOutOfRange ERROR ::= {
+ CODE errcode-parameterOutOfRange
+ }
+-- The parameter was not as expected (e.g. missing or out of range).
+
+requestedInfoError ERROR ::= {
+ PARAMETER ENUMERATED {
+ unknownRequestedInfo (1),
+ requestedInfoNotAvailable (2)
+ }
+ CODE errcode-requestedInfoError
+ }
+-- The requested information cannot be found.
+
+systemFailure ERROR ::= {
+ PARAMETER UnavailableNetworkResource
+ CODE errcode-systemFailure
+ }
+-- The operation could not be completed due to a system failure at the serving physical entity.
+
+taskRefused ERROR ::= {
+ PARAMETER ENUMERATED {
+ generic (0),
+ unobtainable (1),
+ congestion (2)
+ }
+ CODE errcode-taskRefused
+ }
+-- An entity normally capable of the task requested cannot or chooses not to perform the task at
+-- this time. This includes error situations like congestion and unobtainable address as used in
+-- e.g. the connect operation.)
+
+unavailableResource ERROR ::= {
+ CODE errcode-unavailableResource
+ }
+-- A requested resource is not available at the serving entity.
+
+unexpectedComponentSequence ERROR ::= {
+ CODE errcode-unexpectedComponentSequence
+ }
+-- An incorrect sequence of Components was received (e.g. 'DisconnectForwardConnection'
+-- followed by 'PlayAnnouncement').
+
+unexpectedDataValue ERROR ::= {
+ CODE errcode-unexpectedDataValue
+ }
+-- The data value was not as expected (e.g. route number expected but billing number received)
+
+unexpectedParameter ERROR ::= {
+ CODE errcode-unexpectedParameter
+ }
+-- A parameter received was not expected.
+
+unknownLegID ERROR ::= {
+ CODE errcode-unknownLegID
+ }
+-- Leg not known to the gsmSSF.
+
+unknownCSID ERROR ::= {
+ CODE errcode-unknownCSID
+ }
+-- Call Segment not known to the gsmSSF.
+
+unknownPDPID ERROR ::= {
+ CODE errcode-unknownPDPID
+ }
+-- PDPID not known by the receiving entity.
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-gprsSSF-gsmSCF-ops-args.asn b/epan/dissectors/asn1/camel/CAP-gprsSSF-gsmSCF-ops-args.asn
new file mode 100644
index 0000000000..219c5dca58
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-gprsSSF-gsmSCF-ops-args.asn
@@ -0,0 +1,409 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 8 GPRS Control
+-- 8.1 gsmSCF/gprsSSF operations and arguments
+
+CAP-gprsSSF-gsmSCF-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-GPRS-ops-args(107) version8(7)}
+-- Module CAP-gprsSSF-gsmSCF-ops-args is updated to version8(7) for Rel-6. The OPERATION
+-- definitions in this module are not modified, compared to Rel-5.
+
+DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+-- This module contains the operations and operation arguments used for the
+-- gprsSSF ? gsmSCF interface, for the control of GPRS.
+
+-- The table in subclause 2.1 lists the specifications that contain the modules
+-- that are used by CAP.
+
+IMPORTS
+
+ errortypes,
+ datatypes,
+ operationcodes,
+ classes,
+ ros-InformationObjects
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+ OPERATION
+FROM Remote-Operations-Information-Objects ros-InformationObjects
+
+ ServiceKey
+FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+modules(0) cs1-datatypes(2) version1(0)}
+
+ MiscCallInfo
+FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+cs2(20) modules(0) in-cs2-datatypes (0) version1(0)}
+
+ IMEI,
+ IMSI,
+ GSN-Address, -- WS moved to common datatypes in rel 9.0.0
+ RAIdentity, -- WS moved to common datatypes in rel 10.4.0
+ ISDN-AddressString
+FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}
+
+ GPRSChargingID,
+ GPRSMSClass
+-- GSN-Address, WS moved to common datatypes in rel 9.0.0
+-- RAIdentity WS moved to common datatypes in rel 10.4.0
+FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}
+
+ PARAMETERS-BOUND
+FROM CAP-classes classes
+
+ opcode-activityTestGPRS,
+ opcode-applyChargingGPRS,
+ opcode-applyChargingReportGPRS,
+ opcode-cancelGPRS,
+ opcode-connectGPRS,
+ opcode-continueGPRS,
+ opcode-entityReleasedGPRS,
+ opcode-eventReportGPRS,
+ opcode-furnishChargingInformationGPRS,
+ opcode-initialDPGPRS,
+ opcode-releaseGPRS,
+ opcode-requestReportGPRSEvent,
+ opcode-resetTimerGPRS,
+ opcode-sendChargingInformationGPRS
+FROM CAP-operationcodes operationcodes
+-- The CAP Operation identifiers for CAP V3 for GPRS in Rel-6 are the same as the CAP Operation
+-- identifiers for CAP V3 for GPRS in Rel-5.
+
+ AccessPointName {},
+ GPRSCause {},
+ ChargingCharacteristics,
+ ChargingResult,
+ ChargingRollOver,
+ EndUserAddress,
+ Extensions,
+ FCIGPRSBillingChargingCharacteristics,
+ GPRSEventSpecificInformation {},
+ GPRSEvent,
+ GPRSEventType,
+ LocationInformationGPRS,
+ PDPID,
+ PDPInitiationType,
+ QualityOfService,
+ SCIGPRSBillingChargingCharacteristics {},
+ SGSNCapabilities,
+ TimeAndTimezone {},
+ TimerID,
+ TimerValue
+FROM CAP-datatypes datatypes
+-- For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier 'datatypes'
+-- is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.
+
+ missingCustomerRecord,
+ missingParameter,
+ parameterOutOfRange,
+ systemFailure,
+ taskRefused,
+ unexpectedComponentSequence,
+ unexpectedDataValue,
+ unexpectedParameter,
+ unknownPDPID
+FROM CAP-errortypes errortypes
+-- For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier
+-- 'errortypes' is also updated to version8(7). As a result, the present module uses Rel-6
+-- error type definitions.
+
+;
+
+activityTestGPRS OPERATION ::= {
+ RETURN RESULT TRUE
+ CODE opcode-activityTestGPRS}
+-- Direction: gsmSCF -> gprsSSF, Timer: Tatg
+-- This operation is used to check for the continued existence of a relationship between the gsmSCF
+-- and gprsSSF. If the relationship is still in existence, then the gprsSSF will respond. If no
+-- reply is received, then the gsmSCF will assume that the gprsSSF has failed in some way
+-- and will take the appropriate action.
+
+applyChargingGPRS OPERATION ::= {
+ ARGUMENT ApplyChargingGPRSArg
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ unexpectedComponentSequence |
+ unexpectedParameter |
+ unexpectedDataValue |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unknownPDPID}
+ CODE opcode-applyChargingGPRS}
+-- Direction gsmSCF -> gprsSSF, Timer Tacg
+-- This operation is used for interacting from the gsmSCF with the gprsSSF CSE-controlled
+-- GPRS session or PDP Context charging mechanism.
+
+ApplyChargingGPRSArg ::= SEQUENCE {
+ chargingCharacteristics [0] ChargingCharacteristics,
+ tariffSwitchInterval [1] INTEGER (1..86400) OPTIONAL,
+ pDPID [2] PDPID OPTIONAL,
+ ...
+ }
+-- tariffSwitchInterval is measured in 1 second units.
+
+applyChargingReportGPRS OPERATION ::= {
+ ARGUMENT ApplyChargingReportGPRSArg
+ RETURN RESULT TRUE
+ ERRORS {missingParameter |
+ unexpectedComponentSequence |
+ unexpectedParameter |
+ unexpectedDataValue |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unknownPDPID}
+ CODE opcode-applyChargingReportGPRS}
+-- Direction gprsSSF -> gsmSCF,Timer Tacrg
+-- The ApplyChargingReportGPRS operation provides the feedback from the gprsSCF to the gsmSCF
+-- CSE-controlled GPRS session charging mechanism.
+
+ApplyChargingReportGPRSArg ::= SEQUENCE {
+ chargingResult [0] ChargingResult,
+ qualityOfService [1] QualityOfService OPTIONAL,
+ active [2] BOOLEAN DEFAULT TRUE,
+ pDPID [3] PDPID OPTIONAL,
+ ...,
+ chargingRollOver [4] ChargingRollOver OPTIONAL
+ }
+
+cancelGPRS OPERATION ::= {
+ ARGUMENT CancelGPRSArg
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ taskRefused |
+ unknownPDPID}
+ CODE opcode-cancelGPRS}
+-- Direction: gsmSCF ?? gprsSSF, Timer: Tcag
+-- This generic operation cancels all previous requests,
+-- i.e. all EDPs and reports can be cancelled by the gsmSCF.
+
+CancelGPRSArg ::= SEQUENCE {
+ pDPID [0] PDPID OPTIONAL,
+ ...
+ }
+
+connectGPRS {PARAMETERS-BOUND: bound} OPERATION::= {
+ ARGUMENT ConnectGPRSArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ unknownPDPID |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-connectGPRS}
+-- Direction: gsmSCF -> gprsSSF, Timer: Tcong
+-- This operation is used to modify the Access Point Name used when establishing a PDP Context.
+
+ConnectGPRSArg {PARAMETERS-BOUND: bound}::= SEQUENCE {
+ accessPointName [0] AccessPointName {bound},
+ pdpID [1] PDPID OPTIONAL,
+ ...
+ }
+
+continueGPRS OPERATION ::= {
+ ARGUMENT ContinueGPRSArg
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ unknownPDPID |
+ unexpectedDataValue}
+ CODE opcode-continueGPRS}
+-- Direction: gsmSCF -> gprsSSF, Timer: Tcueg
+-- This operation is used to request the gprsSSF to proceed with processing at the DP at
+-- which it previously suspended processing to await gsmSCF instructions (i.e., proceed to
+-- the next point in processing in the Attach/Detach state model or PDP Context
+-- state model) substituting new data from the gsmSCF.
+
+ContinueGPRSArg ::= SEQUENCE {
+ pDPID [0] PDPID OPTIONAL,
+ ...
+}
+
+entityReleasedGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT EntityReleasedGPRSArg {bound}
+ RETURN RESULT TRUE
+ ERRORS {missingParameter |
+ taskRefused |
+ unknownPDPID}
+ CODE opcode-entityReleasedGPRS}
+-- Direction: gprsSSF -> gsmSCF, Timer: Terg
+-- This operation is used when the GPRS Session is detached or a PDP Context is diconnected and
+-- the associated event is not armed for reporting.
+-- The usage of this operation is independent of the functional entity that initiates the Detach
+-- or PDP Context Disconnection and is independent of the cause of the Detach or PDP Context
+-- Disconnect.
+
+EntityReleasedGPRSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ gPRSCause [0] GPRSCause {bound},
+ pDPID [1] PDPID OPTIONAL,
+ ...
+ }
+
+eventReportGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT EventReportGPRSArg {bound}
+ RETURN RESULT TRUE
+ ERRORS {unknownPDPID}
+ CODE opcode-eventReportGPRS}
+-- Direction gprsSSF -> gsmSCF,Timer Tereg
+-- This operation is used to notify the gsmSCF of a GPRS session or PDP context related
+-- events (e.g. PDP context activation) previously requested by the gsmSCF in a
+-- RequestReportGPRSEventoperation.
+
+EventReportGPRSArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
+ gPRSEventType [0] GPRSEventType,
+ miscGPRSInfo [1] MiscCallInfo DEFAULT {messageType request},
+ gPRSEventSpecificInformation [2] GPRSEventSpecificInformation {bound} OPTIONAL,
+ pDPID [3] PDPID OPTIONAL,
+ ...
+ }
+
+furnishChargingInformationGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT FurnishChargingInformationGPRSArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownPDPID}
+ CODE opcode-furnishChargingInformationGPRS}
+-- Direction: gsmSCF -> gprsSSF, Timer: Tfcig
+-- This operation is used to request the gprsSSF to generate, register a logical record or to
+-- include some information in the default logical GPRS record.
+-- The registered logical record is intended for off line charging of the GPRS session
+-- or PDP Context.
+
+FurnishChargingInformationGPRSArg {PARAMETERS-BOUND : bound} ::=
+ FCIGPRSBillingChargingCharacteristics{bound}
+
+initialDPGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT InitialDPGPRSArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingCustomerRecord |
+ missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-initialDPGPRS}
+-- Direction gprsSSF -> gsmSCF,Timer Tidpg
+-- This operation is used by the gprsSSF when a trigger is detected at a DP in the GPRS state
+-- machines to request instructions from the gsmSCF
+
+InitialDPGPRSArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
+ serviceKey [0] ServiceKey,
+ gPRSEventType [1] GPRSEventType,
+ mSISDN [2] ISDN-AddressString,
+ iMSI [3] IMSI,
+ timeAndTimeZone [4] TimeAndTimezone {bound},
+ gPRSMSClass [5] GPRSMSClass OPTIONAL,
+ endUserAddress [6] EndUserAddress {bound} OPTIONAL,
+ qualityOfService [7] QualityOfService OPTIONAL,
+ accessPointName [8] AccessPointName{bound} OPTIONAL,
+ routeingAreaIdentity [9] RAIdentity OPTIONAL,
+ chargingID [10] GPRSChargingID OPTIONAL,
+ sGSNCapabilities [11] SGSNCapabilities OPTIONAL,
+ locationInformationGPRS [12] LocationInformationGPRS OPTIONAL,
+ pDPInitiationType [13] PDPInitiationType OPTIONAL,
+ extensions [14] Extensions {bound} OPTIONAL,
+ ...,
+ gGSNAddress [15] GSN-Address OPTIONAL,
+ secondaryPDP-context [16] NULL OPTIONAL,
+ iMEI [17] IMEI OPTIONAL
+ }
+-- The RouteingAreaIdentity parameter is not used.
+-- The receiving entity shall ignore RouteingAreaIdentity if received.
+-- The RouteingAreaIdentity is conveyed in the LocationInformationGPRS parameter.
+-- The CSGInformation is conveyed in the LocationInformationGPRS parameter. The encoding of the
+-- parameter is as defined in 3GPP TS 29.002 [11].
+
+releaseGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ReleaseGPRSArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ taskRefused |
+ unknownPDPID}
+ CODE opcode-releaseGPRS}
+-- Direction: gsmSCF -> gprsSSF, Timer: Trg
+-- This operation is used to tear down an existing GPRS session or PDP Context at any phase.
+
+ReleaseGPRSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ gprsCause [0] GPRSCause {bound},
+ pDPID [1] PDPID OPTIONAL,
+ ...
+ }
+
+requestReportGPRSEvent {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT RequestReportGPRSEventArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownPDPID}
+ CODE opcode-requestReportGPRSEvent}
+-- Direction: gsmSCF -> gprsSSF, Timer: Trrqe
+-- This operation is used to request the gprsSSF to monitor for an event (e.g., GPRS events
+-- such as attach or PDP Context activiation), then send a notification back to the
+-- gsmSCF when the event is detected.
+
+RequestReportGPRSEventArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ gPRSEvent [0] SEQUENCE SIZE (1..bound.&numOfGPRSEvents) OF GPRSEvent,
+ pDPID [1] PDPID OPTIONAL,
+ ...
+ }
+-- Indicates the GPRS related events for notification.
+
+resetTimerGPRS OPERATION ::= {
+ ARGUMENT ResetTimerGPRSArg
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownPDPID}
+ CODE opcode-resetTimerGPRS}
+-- Direction: gsmSCF ? gprsSSF, Timer: Trtg
+-- This operation is used to request the gprsSSF to refresh an application timer in the gprsSSF.
+
+ResetTimerGPRSArg ::= SEQUENCE {
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ ...
+ }
+
+sendChargingInformationGPRS {PARAMETERS-BOUND: bound} OPERATION ::= {
+ ARGUMENT SendChargingInformationGPRSArg { bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ unexpectedComponentSequence |
+ unexpectedParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedDataValue |
+ unknownPDPID}
+ CODE opcode-sendChargingInformationGPRS}
+-- Direction: gsmSCF -> gprsSSF, Timer: Tscig
+-- This operation is used to instruct the gprsSSF on the charging information which the
+-- gprsSSF shall send to the Mobile Station by means of GSM access signalling.
+
+SendChargingInformationGPRSArg {PARAMETERS-BOUND: bound}::= SEQUENCE {
+ sCIGPRSBillingChargingCharacteristics [0] SCIGPRSBillingChargingCharacteristics {bound},
+ ...
+ }
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-gsmSCF-gsmSRF-ops-args.asn b/epan/dissectors/asn1/camel/CAP-gsmSCF-gsmSRF-ops-args.asn
new file mode 100644
index 0000000000..92840c19c7
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-gsmSCF-gsmSRF-ops-args.asn
@@ -0,0 +1,147 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 6.2 gsmSCF/gsmSRF interface
+-- 6.2.1 gsmSCF/gsmSRF operations and arguments
+CAP-gsmSCF-gsmSRF-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-gsmSCF-gsmSRF-ops-args(103) version8(7)}
+
+DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+-- This module contains the operations and operation arguments used for the
+-- gsmSRF - gsmSCF interface, for the control of circuit switched calls.
+
+-- The table in subclause 2.1 lists the specifications that contain the modules
+-- that are used by CAP.
+
+IMPORTS
+
+ OPERATION
+FROM Remote-Operations-Information-Objects ros-InformationObjects
+
+ opcode-playAnnouncement,
+ opcode-promptAndCollectUserInformation,
+ opcode-specializedResourceReport
+FROM CAP-operationcodes operationcodes
+-- The CAP Operation identifiers for CAP V4 in Rel-6 are the same as the CAP Operation
+-- identifiers for CAP V4 in Rel-5.
+
+ CallSegmentID {},
+ CollectedInfo,
+ Digits {},
+ Extensions {},
+ InformationToSend {}
+FROM CAP-datatypes datatypes
+-- For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier 'datatypes'
+-- is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.
+
+ canceled,
+ improperCallerResponse,
+ missingParameter,
+ parameterOutOfRange,
+ systemFailure,
+ taskRefused,
+ unavailableResource,
+ unexpectedComponentSequence,
+ unexpectedDataValue,
+ unexpectedParameter,
+ unknownCSID
+FROM CAP-errortypes errortypes
+-- For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier
+-- 'errortypes' is also updated to version8(7). As a result, the present module uses Rel-6
+-- error type definitions.
+
+ PARAMETERS-BOUND
+FROM CAP-classes classes
+
+ ros-InformationObjects,
+ operationcodes,
+ datatypes,
+ errortypes,
+ classes
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+;
+
+playAnnouncement {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT PlayAnnouncementArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {canceled |
+ missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unavailableResource |
+ unknownCSID}
+ LINKED {specializedResourceReport}
+ CODE opcode-playAnnouncement}
+-- Direction: gsmSCF -> gsmSRF, Timer: Tpa
+-- This operation is to be used after Establish Temporary Connection (assist procedure
+-- with a second gsmSSF) or a Connect to Resource (no assist) operation. It may be used
+-- for inband interaction with a mobile station, or for interaction with an ISDN user.
+-- In the former case, the gsmSRF is usually collocated with the gsmSSF for standard
+-- tones (congestion tone...) or standard announcements.
+-- In the latter case, the gsmSRF is always collocated with the gsmSSF in the switch.
+-- Any error is returned to the gsmSCF. The timer associated with this operation must
+-- be of a sufficient duration to allow its linked operation to be correctly correlated.
+
+PlayAnnouncementArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
+ informationToSend [0] InformationToSend {bound},
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ requestAnnouncementCompleteNotification [2] BOOLEAN DEFAULT TRUE,
+ extensions [3] Extensions {bound} OPTIONAL,
+ callSegmentID [5] CallSegmentID {bound} OPTIONAL,
+ requestAnnouncementStartedNotification [51] BOOLEAN DEFAULT FALSE,
+ ...
+ }
+
+promptAndCollectUserInformation {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT PromptAndCollectUserInformationArg {bound}
+ RESULT ReceivedInformationArg {bound}
+ ERRORS {canceled |
+ improperCallerResponse |
+ missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unavailableResource |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownCSID}
+ LINKED {specializedResourceReport}
+ CODE opcode-promptAndCollectUserInformation}
+-- Direction: gsmSCF -> gsmSRF, Timer: Tpc
+-- This operation is used to interact with a user to collect information.
+
+PromptAndCollectUserInformationArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
+ collectedInfo [0] CollectedInfo,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ informationToSend [2] InformationToSend {bound} OPTIONAL,
+ extensions [3] Extensions {bound} OPTIONAL,
+ callSegmentID [4] CallSegmentID {bound} OPTIONAL,
+ requestAnnouncementStartedNotification [51] BOOLEAN DEFAULT FALSE,
+ ...
+ }
+
+ReceivedInformationArg {PARAMETERS-BOUND : bound}::= CHOICE {
+ digitsResponse [0] Digits {bound}
+ }
+
+specializedResourceReport OPERATION ::= {
+ ARGUMENT SpecializedResourceReportArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-specializedResourceReport}
+-- Direction: gsmSRF -> gsmSCF, Timer: Tsrr
+-- This operation is used as the response to a PlayAnnouncement operation when the announcement
+-- completed report indication is set.
+
+SpecializedResourceReportArg ::= CHOICE {
+ allAnnouncementsComplete [50] NULL,
+ firstAnnouncementStarted [51] NULL
+ }
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-gsmSSF-gsmSCF-ops-args.asn b/epan/dissectors/asn1/camel/CAP-gsmSSF-gsmSCF-ops-args.asn
new file mode 100644
index 0000000000..3e8f738009
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-gsmSSF-gsmSCF-ops-args.asn
@@ -0,0 +1,905 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 6 Circuit Switched Call Control
+-- 6.1 gsmSSF/CCF - gsmSCF Interface
+-- 6.1.1 Operations and arguments
+CAP-gsmSSF-gsmSCF-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-gsmSSF-gsmSCF-ops-args(101) version8(7)}
+
+DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+-- This module contains the operations and operation arguments used for the
+-- gsmSSF - gsmSCF interface, for the control of circuit switched calls.
+
+-- The table in subclause 2.1 lists the specifications that contain the modules
+-- that are used by CAP.
+
+IMPORTS
+
+ errortypes,
+ datatypes,
+ operationcodes,
+ classes,
+ tc-Messages,
+ ros-InformationObjects
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+ OPERATION
+FROM Remote-Operations-Information-Objects ros-InformationObjects
+
+ CallingPartysCategory,
+ HighLayerCompatibility,
+ LegID,
+ RedirectionInformation,
+ ServiceKey
+FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+modules(0) cs1-datatypes(2) version1(0)}
+
+ MiscCallInfo
+FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
+cs2(20) modules(0) in-cs2-datatypes (0) version1(0)}
+
+ Ext-BasicServiceCode,
+ IMEI,
+ IMSI,
+ ISDN-AddressString
+FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}
+
+ CUG-Index,
+ CUG-Interlock,
+ CUG-Info,
+ LocationInformation,
+ MS-Classmark2,
+ SubscriberState,
+ SupportedCamelPhases,
+ OfferedCamel4Functionalities
+FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}
+
+ CallReferenceNumber,
+ SuppressionOfAnnouncement,
+ UU-Data
+FROM MAP-CH-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CH-DataTypes(13) version12(12)}
+
+ PARAMETERS-BOUND
+FROM CAP-classes classes
+
+ opcode-activityTest,
+ opcode-applyCharging,
+ opcode-applyChargingReport,
+ opcode-assistRequestInstructions,
+ opcode-callGap,
+ opcode-callInformationReport,
+ opcode-callInformationRequest,
+ opcode-cancel,
+ opcode-collectInformation,
+ opcode-connect,
+ opcode-connectToResource,
+ opcode-continue,
+ opcode-continueWithArgument,
+ opcode-disconnectForwardConnection,
+ opcode-dFCWithArgument,
+ opcode-disconnectLeg,
+ opcode-entityReleased,
+ opcode-establishTemporaryConnection,
+ opcode-eventReportBCSM,
+ opcode-furnishChargingInformation,
+ opcode-initialDP,
+ opcode-initiateCallAttempt,
+ opcode-moveLeg,
+ opcode-playTone,
+ opcode-releaseCall,
+ opcode-requestReportBCSMEvent,
+ opcode-resetTimer,
+ opcode-sendChargingInformation,
+ opcode-splitLeg
+FROM CAP-operationcodes operationcodes
+-- The CAP Operation identifiers for CAP V4 in Rel-6 are the same as the CAP Operation
+-- identifiers for CAP V4 in Rel-5.
+
+ AChBillingChargingCharacteristics {},
+ AdditionalCallingPartyNumber {},
+ AlertingPattern,
+ AChChargingAddress {},
+ AssistingSSPIPRoutingAddress {},
+ BCSMEvent {},
+ BCSM-Failure,
+ BearerCapability {},
+ Burst,
+ CalledPartyNumber {},
+ CalledPartyBCDNumber {},
+ CallingPartyNumber {},
+ CallResult {},
+ CallSegmentID {},
+ CallSegmentToCancel {},
+ CallSegmentFailure {},
+ Carrier,
+ Cause {},
+ CGEncountered,
+ ChargeNumber {},
+ ControlType,
+ CorrelationID {},
+ DestinationRoutingAddress {},
+ EventSpecificInformationBCSM {},
+ EventTypeBCSM,
+ Extensions {},
+ FCIBillingChargingCharacteristics {},
+ GapCriteria {},
+ GapIndicators,
+ GapTreatment,
+ GenericNumbers {},
+ InvokeID,
+ IPRoutingAddress {},
+ IPSSPCapabilities {},
+ leg1,
+ leg2,
+ LegOrCallSegment {},
+ LocationNumber {},
+ LowLayerCompatibility {},
+ MonitorMode,
+ NAOliInfo,
+ OCSIApplicable,
+ OriginalCalledPartyID {},
+ ReceivingSideID,
+ RedirectingPartyID {},
+ RequestedInformationList {},
+ RequestedInformationTypeList,
+ ScfID {},
+ SCIBillingChargingCharacteristics {},
+ SendingSideID,
+ ServiceInteractionIndicatorsTwo,
+ TimeAndTimezone {},
+ TimerID,
+ TimerValue
+FROM CAP-datatypes datatypes
+-- For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier 'datatypes'
+-- is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.
+
+ cancelFailed,
+ eTCFailed,
+ missingCustomerRecord,
+ missingParameter,
+ parameterOutOfRange,
+ requestedInfoError,
+ systemFailure,
+ taskRefused,
+ unexpectedComponentSequence,
+ unexpectedDataValue,
+ unexpectedParameter,
+ unknownLegID,
+ unknownCSID
+FROM CAP-errortypes errortypes
+-- For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier
+-- 'errortypes' is also updated to version8(7). As a result, the present module uses Rel-6
+-- error type definitions.
+
+;
+
+activityTest OPERATION ::= {
+ RETURN RESULT TRUE
+ CODE opcode-activityTest}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tat
+-- This operation is used to check for the continued existence of a relationship
+-- between the gsmSCF and gsmSSF, assist gsmSSF or gsmSRF. If the relationship is
+-- still in existence, then the gsmSSF will respond. If no reply is received,
+-- then the gsmSCF will assume that the gsmSSF, assist gsmSSF or gsmSRF has failed
+-- in some way.
+
+applyCharging {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ApplyChargingArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ unexpectedComponentSequence |
+ unexpectedParameter |
+ unexpectedDataValue |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unknownLegID |
+ unknownCSID}
+ CODE opcode-applyCharging}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tac
+-- This operation is used for interacting from the gsmSCF with the gsmSSF charging mechanisms.
+-- The ApplyChargingReport operation provides the feedback from the gsmSSF to the gsmSCF.
+
+ApplyChargingArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ aChBillingChargingCharacteristics [0] AChBillingChargingCharacteristics {bound},
+ partyToCharge [2] SendingSideID DEFAULT sendingSideID : leg1,
+ extensions [3] Extensions {bound} OPTIONAL,
+ aChChargingAddress [50] AChChargingAddress {bound}
+ DEFAULT legID:sendingSideID:leg1,
+ ...,
+ -- WS modification Frensh National standard addition
+ -- https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7656
+ iTXcharging [64] BOOLEAN OPTIONAL
+ -- End WS
+ }
+
+-- The partyToCharge parameter indicates the party in the call to which the ApplyCharging operation
+-- shall be applied.
+
+applyChargingReport {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ApplyChargingReportArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ unexpectedComponentSequence |
+ unexpectedParameter |
+ unexpectedDataValue |
+ unknownCSID |
+ unknownLegID |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused}
+ CODE opcode-applyChargingReport}
+-- Direction: gsmSSF -> gsmSCF, Timer: Tacr
+-- This operation is used by the gsmSSF to report to the gsmSCF the occurrence of a
+-- specific charging event as requested by the gsmSCF using the ApplyCharging operation.
+
+ApplyChargingReportArg {PARAMETERS-BOUND : bound} ::= CallResult {bound}
+
+assistRequestInstructions {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT AssistRequestInstructionsArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingCustomerRecord |
+ missingParameter |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-assistRequestInstructions}
+-- Direction: gsmSSF -> gsmSCF or gsmSRF -> gsmSCF, Timer: Tari
+-- This operation is used when there is an assist procedure and may be
+-- sent by the gsmSSF or gsmSRF to the gsmSCF. This operation is sent by the
+-- assisting gsmSSF to gsmSCF, when the initiating gsmSSF has set up a connection to
+-- the gsmSRF or to the assisting gsmSSF as a result of receiving an
+-- EstablishTemporaryConnection from
+-- the gsmSCF.
+-- Refer to clause 11 for a description of the procedures associated with this operation.
+
+AssistRequestInstructionsArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ correlationID [0] CorrelationID {bound},
+ iPSSPCapabilities [2] IPSSPCapabilities {bound},
+ extensions [3] Extensions {bound} OPTIONAL,
+ ...
+ }
+-- OPTIONAL denotes network operator specific use. The value of the correlationID may be the
+-- Called Party Number supplied by the initiating gsmSSF.
+
+callGap {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT CallGapArg {bound}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-callGap}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tcg
+-- This operation is used to request the gsmSSF to reduce the rate at which specific service
+-- requests are sent to the gsmSCF.
+
+CallGapArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
+ gapCriteria [0] GapCriteria {bound},
+ gapIndicators [1] GapIndicators,
+ controlType [2] ControlType OPTIONAL,
+ gapTreatment [3] GapTreatment {bound} OPTIONAL,
+ extensions [4] Extensions {bound} OPTIONAL,
+ ...
+ }
+-- OPTIONAL denotes network operator optional. If gapTreatment is not present, then the gsmSSF will
+-- use a default treatment depending on network operator implementation.
+
+callInformationReport {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT CallInformationReportArg {bound}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-callInformationReport}
+-- Direction: gsmSSF -> gsmSCF, Timer: Tcirp
+-- This operation is used to send specific call information for a single call party to the gsmSCF as
+-- requested by the gsmSCF in a previous CallInformationRequest.
+
+CallInformationReportArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ requestedInformationList [0] RequestedInformationList {bound},
+ extensions [2] Extensions {bound} OPTIONAL,
+ legID [3] ReceivingSideID DEFAULT receivingSideID:leg2,
+ ...
+ }
+
+callInformationRequest {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT CallInformationRequestArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ requestedInfoError |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownLegID}
+ CODE opcode-callInformationRequest}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tcirq
+-- This operation is used to request the gsmSSF to record specific information about a single
+-- call party and report it to the gsmSCF (with a CallInformationReport operation).
+
+CallInformationRequestArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
+ requestedInformationTypeList [0] RequestedInformationTypeList,
+ extensions [2] Extensions {bound} OPTIONAL,
+ legID [3] SendingSideID DEFAULT sendingSideID:leg2,
+ ...
+ }
+-- OPTIONAL denotes network operator optional.
+
+cancel {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT CancelArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {cancelFailed |
+ missingParameter |
+ taskRefused |
+ unknownCSID}
+ CODE opcode-cancel}
+-- Direction: gsmSCF -> gsmSSF, or gsmSCF -> gsmSRF, Timer: Tcan
+-- This operation cancels the correlated previous operation or all previous requests. The following
+-- operations can be canceled: PlayAnnouncement, PromptAndCollectUserInformation.
+
+CancelArg {PARAMETERS-BOUND : bound} ::= CHOICE {
+ invokeID [0] InvokeID,
+ allRequests [1] NULL,
+ callSegmentToCancel [2] CallSegmentToCancel {bound}
+ }
+-- The InvokeID has the same value as that which was used for the operation to be cancelled.
+
+collectInformation {PARAMETERS-BOUND : bound} OPERATION::= {
+ ARGUMENT CollectInformationArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ SystemFailure |
+ TaskRefused |
+ UnexpectedComponentSequence |
+ UnexpectedDataValue |
+ UnexpectedParameter}
+ CODE opcode-collectInformation}
+-- Direction: gsmSCF-> gsmSSF, Timer: Tci
+-- This operation is used to request the gsmSSF to perform the call
+-- processing actions to prompt a calling party for additional digits.
+
+CollectInformationArg {PARAMETERS-BOUND : bound} ::= SEQUENCE{
+ extensions [0] Extensions {bound} OPTIONAL,
+ ...
+}
+
+connect {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ConnectArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownLegID}
+ CODE opcode-connect}
+-- Direction: gsmSCF-> gsmSSF, Timer: Tcon
+-- This operation is used to request the gsmSSF to perform the call processing actions
+-- to route or forward a call to a specified destination.
+
+ConnectArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress {bound},
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID {bound} OPTIONAL,
+ extensions [10] Extensions {bound} OPTIONAL,
+ carrier [11] Carrier {bound} OPTIONAL,
+ callingPartysCategory [28] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID {bound} OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ genericNumbers [14] GenericNumbers {bound} OPTIONAL,
+ serviceInteractionIndicatorsTwo [15] ServiceInteractionIndicatorsTwo OPTIONAL,
+ chargeNumber [19] ChargeNumber {bound} OPTIONAL,
+ legToBeConnected [21] LegID OPTIONAL,
+ cug-Interlock [31] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [32] NULL OPTIONAL,
+ suppressionOfAnnouncement [55] SuppressionOfAnnouncement OPTIONAL,
+ oCSIApplicable [56] OCSIApplicable OPTIONAL,
+ naOliInfo [57] NAOliInfo OPTIONAL,
+ bor-InterrogationRequested [58] NULL OPTIONAL,
+ ... ,
+ suppress-N-CSI [59] NULL OPTIONAL
+ }
+-- na-Info is included at the discretion of the gsmSCF operator.
+
+connectToResource {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ConnectToResourceArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownCSID}
+ CODE opcode-connectToResource}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tctr
+-- This operation is used to connect a call segment from the gsmSSF to the
+-- gsmSRF.
+
+ConnectToResourceArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ resourceAddress CHOICE {
+ ipRoutingAddress [0] IPRoutingAddress {bound},
+ none [3] NULL
+ },
+ extensions [4] Extensions {bound} OPTIONAL,
+ serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callSegmentID [50] CallSegmentID {bound} OPTIONAL,
+ ...
+ }
+
+continue OPERATION ::= {
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-continue}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tcue
+-- This operation is used to request the gsmSSF to proceed with call processing at the
+-- DP at which it previously suspended call processing to await gsmSCF instructions
+-- (i.e. proceed to the next point in call in the BCSM). The gsmSSF continues call
+-- processing without substituting new data from gsmSCF.
+
+continueWithArgument {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ContinueWithArgumentArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownLegID |
+ unknownCSID}
+ CODE opcode-continueWithArgument}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tcwa
+-- This operation is used to request the gsmSSF to proceed with call processing at the
+-- DP at which it previously suspended call processing to await gsmSCF instructions
+-- (i.e. proceed to the next point in call in the BCSM). The gsmSSF continues call
+-- processing with the modified call setup information as received from the gsmSCF.
+
+ContinueWithArgumentArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ extensions [6] Extensions {bound} OPTIONAL,
+ serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callingPartysCategory [12] CallingPartysCategory OPTIONAL,
+ genericNumbers [16] GenericNumbers {bound} OPTIONAL,
+ cug-Interlock [17] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [18] NULL OPTIONAL,
+ chargeNumber [50] ChargeNumber {bound} OPTIONAL,
+ carrier [52] Carrier {bound} OPTIONAL,
+ suppressionOfAnnouncement [55] SuppressionOfAnnouncement OPTIONAL,
+ naOliInfo [56] NAOliInfo OPTIONAL,
+ bor-InterrogationRequested [57] NULL OPTIONAL,
+ suppress-O-CSI [58] NULL OPTIONAL,
+ continueWithArgumentArgExtension [59] ContinueWithArgumentArgExtension {bound} OPTIONAL,
+ ...
+ }
+
+ContinueWithArgumentArgExtension {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ suppress-D-CSI [0] NULL OPTIONAL,
+ suppress-N-CSI [1] NULL OPTIONAL,
+ suppressOutgoingCallBarring [2] NULL OPTIONAL,
+ legOrCallSegment [3] LegOrCallSegment {bound} OPTIONAL,
+ ...
+ }
+
+disconnectForwardConnection OPERATION ::= {
+ RETURN RESULT FALSE
+ ERRORS {systemFailure |
+ taskRefused |
+ unexpectedComponentSequence}
+ CODE opcode-disconnectForwardConnection}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tdfc
+-- This operation is used to disconnect a forward temporary connection or a connection to a
+-- resource. Refer to clause 11 for a description of the procedures associated with this operation.
+
+disconnectForwardConnectionWithArgument {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT DisconnectForwardConnectionWithArgumentArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownCSID}
+ CODE opcode-dFCWithArgument}
+-- Direction gsmSCF -> gsmSSF, Timer Tdfcwa
+-- This operation is used to disconnect a forward temporary connection or a connection to a
+-- resource. Refer to clause 11 for a description of the procedures associated with this operation.
+
+DisconnectForwardConnectionWithArgumentArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ callSegmentID [1] CallSegmentID {bound} OPTIONAL,
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+disconnectLeg {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT DisconnectLegArg {bound}
+ RETURN RESULT TRUE
+ ERRORS {missingParameter |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownLegID}
+ CODE opcode-disconnectLeg}
+-- Direction: gsmSCF -> gsmSSF, Timer Tdl
+-- This operation is used by the gsmSCF to release a specific leg associated with the call and
+-- retain any other legs not specified in the DisconnectLeg. Refer to clause 11 for a description
+-- of the procedures associated with this operation.
+
+DisconnectLegArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ legToBeReleased [0] LegID,
+ releaseCause [1] Cause {bound} OPTIONAL,
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+entityReleased {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT EntityReleasedArg {bound}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-entityReleased}
+-- Direction: gsmSSF -> gsmSCF, Timer: Ter
+-- This operation is used by the gsmSSF to inform the gsmSCF of an error or exception
+
+EntityReleasedArg {PARAMETERS-BOUND : bound} ::= CHOICE {
+ callSegmentFailure [0] CallSegmentFailure {bound},
+ bCSM-Failure [1] BCSM-Failure {bound}
+ }
+
+establishTemporaryConnection {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT EstablishTemporaryConnectionArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {eTCFailed |
+ missingParameter |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownCSID}
+ CODE opcode-establishTemporaryConnection}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tetc
+-- This operation is used to create a connection to a resource for a limited period
+-- of time (e.g. to play an announcement, to collect user information); it implies
+-- the use of the assist procedure. Refer to clause 11 for a description of the
+-- procedures associated with this operation.
+
+EstablishTemporaryConnectionArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress {bound},
+ correlationID [1] CorrelationID {bound} OPTIONAL,
+ scfID [3] ScfID {bound} OPTIONAL,
+ extensions [4] Extensions {bound} OPTIONAL,
+ carrier [5] Carrier {bound} OPTIONAL,
+ serviceInteractionIndicatorsTwo [6] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callSegmentID [7] CallSegmentID {bound} OPTIONAL,
+ naOliInfo [50] NAOliInfo OPTIONAL,
+ chargeNumber [51] ChargeNumber {bound} OPTIONAL,
+ ...,
+ originalCalledPartyID [52] OriginalCalledPartyID {bound} OPTIONAL,
+ callingPartyNumber [53] CallingPartyNumber {bound} OPTIONAL
+ }
+
+eventReportBCSM {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT EventReportBCSMArg {bound}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-eventReportBCSM}
+-- Direction: gsmSSF -> gsmSCF, Timer: Terb
+-- This operation is used to notify the gsmSCF of a call-related event (e.g. BCSM
+-- events such as O_Busy or O_No_Answer) previously requested by the gsmSCF in a
+-- RequestReportBCSMEvent operation.
+
+EventReportBCSMArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ eventSpecificInformationBCSM [2] EventSpecificInformationBCSM {bound} OPTIONAL,
+ legID [3] ReceivingSideID OPTIONAL,
+ miscCallInfo [4] MiscCallInfo DEFAULT {messageType request},
+ extensions [5] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+furnishChargingInformation {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT FurnishChargingInformationArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownLegID}
+ CODE opcode-furnishChargingInformation}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tfci
+-- This operation is used to request the gsmSSF to generate, register a call record
+-- or to include some information in the default call record.
+-- The registered call record is intended for off line charging of the call.
+
+FurnishChargingInformationArg {PARAMETERS-BOUND : bound} ::=
+ FCIBillingChargingCharacteristics{bound}
+
+initialDP {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT InitialDPArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingCustomerRecord |
+ missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter}
+ CODE opcode-initialDP}
+-- Direction: gsmSSF -> gsmSCF, Timer: Tidp
+-- This operation is used after a TDP to indicate request for service.
+
+InitialDPArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ serviceKey [0] ServiceKey ,
+ calledPartyNumber [2] CalledPartyNumber {bound} OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber {bound} OPTIONAL,
+ callingPartysCategory [5] CallingPartysCategory OPTIONAL,
+ cGEncountered [7] CGEncountered OPTIONAL,
+ iPSSPCapabilities [8] IPSSPCapabilities {bound} OPTIONAL,
+ locationNumber [10] LocationNumber {bound} OPTIONAL,
+ originalCalledPartyID [12] OriginalCalledPartyID {bound} OPTIONAL,
+ extensions [15] Extensions {bound} OPTIONAL,
+ highLayerCompatibility [23] HighLayerCompatibility OPTIONAL,
+ additionalCallingPartyNumber [25] AdditionalCallingPartyNumber {bound} OPTIONAL,
+ bearerCapability [27] BearerCapability {bound} OPTIONAL,
+ eventTypeBCSM [28] EventTypeBCSM OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID {bound} OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ cause [17] Cause {bound} OPTIONAL,
+ serviceInteractionIndicatorsTwo [32] ServiceInteractionIndicatorsTwo OPTIONAL,
+ carrier [37] Carrier {bound} OPTIONAL,
+ cug-Index [45] CUG-Index OPTIONAL,
+ cug-Interlock [46] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [47] NULL OPTIONAL,
+ iMSI [50] IMSI OPTIONAL,
+ subscriberState [51] SubscriberState OPTIONAL,
+ locationInformation [52] LocationInformation OPTIONAL,
+ ext-basicServiceCode [53] Ext-BasicServiceCode OPTIONAL,
+ callReferenceNumber [54] CallReferenceNumber OPTIONAL,
+ mscAddress [55] ISDN-AddressString OPTIONAL,
+ calledPartyBCDNumber [56] CalledPartyBCDNumber {bound} OPTIONAL,
+ timeAndTimezone [57] TimeAndTimezone {bound} OPTIONAL,
+ callForwardingSS-Pending [58] NULL OPTIONAL,
+ initialDPArgExtension [59] InitialDPArgExtension {bound} OPTIONAL,
+ ...
+ }
+
+InitialDPArgExtension {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ gmscAddress [0] ISDN-AddressString OPTIONAL,
+ forwardingDestinationNumber [1] CalledPartyNumber {bound} OPTIONAL,
+ ms-Classmark2 [2] MS-Classmark2 OPTIONAL,
+ iMEI [3] IMEI OPTIONAL,
+ supportedCamelPhases [4] SupportedCamelPhases OPTIONAL,
+ offeredCamel4Functionalities [5] OfferedCamel4Functionalities OPTIONAL,
+ bearerCapability2 [6] BearerCapability {bound} OPTIONAL,
+ ext-basicServiceCode2 [7] Ext-BasicServiceCode OPTIONAL,
+ highLayerCompatibility2 [8] HighLayerCompatibility OPTIONAL,
+ lowLayerCompatibility [9] LowLayerCompatibility {bound} OPTIONAL,
+ lowLayerCompatibility2 [10] LowLayerCompatibility {bound} OPTIONAL,
+ ...,
+ enhancedDialledServicesAllowed [11] NULL OPTIONAL,
+ uu-Data [12] UU-Data OPTIONAL,
+ collectInformationAllowed [13] NULL OPTIONAL,
+ releaseCallArgExtensionAllowed [14] NULL OPTIONAL
+}
+-- If iPSSPCapabilities is not present then this denotes that a colocated gsmSRF is not
+-- supported by the gsmSSF. If present, then the gsmSSF supports a colocated gsmSRF capable
+-- of playing announcements via elementaryMessageIDs and variableMessages, the playing of
+-- tones and the collection of DTMF digits. Other supported capabilities are explicitly
+-- detailed in the IPSSPCapabilities parameter itself.
+-- Carrier is included at the discretion of the gsmSSF operator.
+-- The UserCSGInformation is conveyed in the LocationInformation. The encoding of the parameter is
+-- as defined in 3GPP TS 29.002 [11].
+
+initiateCallAttempt {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT InitiateCallAttemptArg {bound}
+ RESULT InitiateCallAttemptRes {bound}
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter
+ }
+ CODE opcode-initiateCallAttempt}
+-- Direction: gsmSCF -> gsmSSF, Timer Tica
+-- This operation is used to instruct the gsmSSF to create a new call to a call party using the
+-- address information provided by the gsmSCF.
+
+InitiateCallAttemptArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress {bound},
+ extensions [4] Extensions {bound} OPTIONAL,
+ legToBeCreated [5] LegID OPTIONAL,
+ newCallSegment [6] CallSegmentID {bound} OPTIONAL,
+ callingPartyNumber [30] CallingPartyNumber {bound} OPTIONAL,
+ callReferenceNumber [51] CallReferenceNumber OPTIONAL,
+ gsmSCFAddress [52] ISDN-AddressString OPTIONAL,
+ suppress-T-CSI [53] NULL OPTIONAL,
+ ...
+ }
+
+InitiateCallAttemptRes {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ supportedCamelPhases [0] SupportedCamelPhases OPTIONAL,
+ offeredCamel4Functionalities [1] OfferedCamel4Functionalities OPTIONAL,
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...,
+ releaseCallArgExtensionAllowed [3] NULL OPTIONAL
+ }
+
+moveLeg {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT MoveLegArg {bound}
+ RETURN RESULT TRUE
+ ERRORS {missingParameter |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownLegID}
+ CODE opcode-moveLeg}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tml
+-- This operation is used by the gsmSCF to move a leg from one call segment to another call segment
+-- within the same call segment association.
+
+MoveLegArg {PARAMETERS-BOUND : bound} ::= SEQUENCE{
+ legIDToMove [0] LegID,
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+playTone {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT PlayToneArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownLegID |
+ unknownCSID}
+ CODE opcode-playTone}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tpt
+-- This operation is used to play tones to either a leg or a call segment using
+-- the MSC's tone generator.
+
+PlayToneArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ legOrCallSegment [0] LegOrCallSegment {bound},
+ bursts [1] Burst,
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+releaseCall {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ReleaseCallArg {bound}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-releaseCall}
+-- Direction: gsmSCF ->?gsmSSF, Timer: Trc
+-- This operation is used to tear down an existing call at any phase of the call for all parties
+-- involved in the call.
+
+ReleaseCallArg {PARAMETERS-BOUND : bound} ::= CHOICE {
+ allCallSegments AllCallSegments,
+ allCallSegmentsWithExtension [2] AllCallSegmentsWithExtension
+ }
+
+AllCallSegments ::= Cause {bound}
+-- A default value of decimal 31 (normal unspecified) shall be given.
+
+AllCallSegmentsWithExtension ::= SEQUENCE {
+ allCallSegments [0] AllCallSegments,
+ extensions [1] Extensions {bound} OPTIONAL
+ }
+
+requestReportBCSMEvent {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT RequestReportBCSMEventArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownLegID}
+ CODE opcode-requestReportBCSMEvent}
+-- Direction: gsmSCF -> gsmSSF, Timer: Trrb
+-- This operation is used to request the gsmSSF to monitor for a call-related event
+-- (e.g. BCSM events such as O_Busy or O_No_Answer) and to send a notification
+-- to the gsmSCF when the event is detected.
+--
+-- NOTE:
+-- Every EDP must be explicitly armed by the gsmSCF via a RequestReportBCSMEvent operation.
+-- No implicit arming of EDPs at the gsmSSF after reception of any operation (different
+-- from RequestReportBCSMEvent) from the gsmSCF is allowed.
+
+RequestReportBCSMEventArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ bcsmEvents [0] SEQUENCE SIZE(1..bound.&numOfBCSMEvents) OF
+ BCSMEvent {bound},
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...
+ }
+-- Indicates the BCSM related events for notification.
+
+resetTimer {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT ResetTimerArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ parameterOutOfRange |
+ taskRefused |
+ unexpectedComponentSequence |
+ unexpectedDataValue |
+ unexpectedParameter |
+ unknownCSID}
+ CODE opcode-resetTimer}
+-- Direction: gsmSCF -> gsmSSF, Timer: Trt
+-- This operation is used to request the gsmSSF to refresh an application timer in the gsmSSF.
+
+ResetTimerArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions [2] Extensions {bound} OPTIONAL,
+ callSegmentID [3] CallSegmentID {bound} OPTIONAL,
+ ...
+ }
+
+sendChargingInformation {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT SendChargingInformationArg {bound}
+ RETURN RESULT FALSE
+ ERRORS {missingParameter |
+ unexpectedComponentSequence |
+ unexpectedParameter |
+ parameterOutOfRange |
+ systemFailure |
+ taskRefused |
+ unexpectedDataValue |
+ unknownLegID}
+ CODE opcode-sendChargingInformation}
+-- Direction: gsmSCF -> gsmSSF, Timer: Tsci
+-- This operation is used to instruct the gsmSSF on the charging information to send by the gsmSSF.
+-- The charging information can either be sent back by means of signalling or internal
+-- if the gsmSSF is located in the local exchange. In the local exchange
+-- this information may be used to update the charge meter or to create a standard call record.
+
+SendChargingInformationArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
+ sCIBillingChargingCharacteristics [0] SCIBillingChargingCharacteristics {bound},
+ partyToCharge [1] SendingSideID,
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+splitLeg {PARAMETERS-BOUND : bound} OPERATION ::= {
+ ARGUMENT SplitLegArg {bound}
+ RETURN RESULT TRUE
+ ERRORS {missingParameter |
+ unexpectedComponentSequence |
+ unexpectedParameter |
+ unexpectedDataValue |
+ systemFailure |
+ taskRefused |
+ unknownLegID}
+ CODE opcode-splitLeg}
+-- Direction: gsmSCF -> gsmSSF, Timer Tsl
+-- This operation is used by the gsmSCF to separate a leg from its source call segment and
+-- place it in a new call segment within the same call segment association.
+
+SplitLegArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
+ legToBeSplit [0] LegID,
+ newCallSegment [1] CallSegmentID {bound} OPTIONAL,
+ extensions [2] Extensions {bound} OPTIONAL,
+ ...
+ }
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-object-identifiers.asn b/epan/dissectors/asn1/camel/CAP-object-identifiers.asn
new file mode 100644
index 0000000000..40a3bf9f6c
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-object-identifiers.asn
@@ -0,0 +1,242 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 5.6 Object IDentifiers (IDs)
+CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+DEFINITIONS ::= BEGIN
+
+-- This module assigns object identifiers for Modules, Packages, Contracts and ACs
+-- used by CAP
+
+-- For Modules from TC, ROS,
+tc-Messages OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+tc-NotationExtensions OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 775 modules(2) notation-extension (4) version1(1)}
+
+ros-InformationObjects OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+
+-- For CAP Modules
+datatypes OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-datatypes(52) version8(7)}
+
+errortypes OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-errortypes(51) version8(7)}
+
+operationcodes OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-operationcodes(53) version8(7)}
+
+errorcodes OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-errorcodes(57) version8(7)}
+
+classes OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-classes(54) version8(7)}
+
+
+gsmSSF-gsmSCF-Operations OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-gsmSSF-gsmSCF-ops-args(101) version8(7)}
+-- The Object Identifier 'gsmSSF-gsmSCF-Operations' is updated to version8(7) in Rel-6, so
+-- other modules can IMPORT Rel-6 Operation definitions related to call control.
+
+gsmSSF-gsmSCF-Protocol OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-gsmSSF-gsmSCF-pkgs-contracts-acs(102) version8(7)}
+-- The Object Identifier 'gsmSSF-gsmSCF-Protocol' is updated to version8(7) in Rel-6, so
+-- other modules can IMPORT Rel-6 Protocol definitions related to call control.
+
+gsmSCF-gsmSRF-Operations OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-gsmSCF-gsmSRF-ops-args(103) version8(7)}
+-- The Object Identifier 'gsmSCF-gsmSRF-Operations' is updated to version8(7) in Rel-6, so
+-- other modules can IMPORT Rel-6 Operation definitions related to gsmSRF control.
+
+gsmSCF-gsmSRF-Protocol OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-gsmSCF-gsmSRF-pkgs-contracts-acs(104) version8(7)}
+-- The Object Identifier 'gsmSCF-gsmSRF-Protocol' is updated to version8(7) in Rel-6, so
+-- other modules can IMPORT Rel-6 Protocol definitions related to gsmSRF control.
+
+sms-Operations OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-SMS-ops-args(105) version8(7)}
+-- The Object Identifier 'sms-Operations' is updated to version8(7) in Rel-6, so other
+-- modules can IMPORT Rel-6 Operation definitions related to SMS control.
+
+smsSSF-gsmSCF-Protocol OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-smsSSF-gsmSCF-pkgs-contracts-acs(106) version8(7)}
+-- The Object Identifier 'smsSSF-gsmSCF-Protocol' is updated to version8(7) in Rel-6, so
+-- other modules can IMPORT Rel-6 Protocol definitions related to SMS control.
+
+gprsSSF-gsmSCF-Operations OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-GPRS-ops-args(107) version8(7)}
+-- The Object Identifier 'gprsSSF-gsmSCF-Operations' is updated to version8(7) in Rel-6, so
+-- other modules can IMPORT Rel-6 Operation definitions related to GPRS control.
+
+gprsSSF-gsmSCF-Protocol OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
+ cap-gprsSSF-gsmSCF-pkgs-contracts-acs(108) version8(7)}
+-- The Object Identifier 'gprsSSF-gsmSCF-Protocol' is updated to version8(7) in Rel-6, so
+-- other modules can IMPORT Rel-6 Protocol definitions related to GPRS control.
+
+id-CAP OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+ umts-network(1) cap4(22)}
+
+id-CAP3 OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+ umts-network(1) cap3(20)}
+
+id-CAPOE OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+ umts-network(1) cap4OE(23)}
+
+id-CAP3OE OBJECT IDENTIFIER ::=
+ {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+ umts-network(1) cap3OE(21)}
+
+id-ac OBJECT IDENTIFIER ::= {id-CAP ac(3)}
+id-acE OBJECT IDENTIFIER ::= {id-CAPOE ac(3)}
+id-ac3E OBJECT IDENTIFIER ::= {id-CAP3OE ac(3)}
+id-as OBJECT IDENTIFIER ::= {id-CAP as(5)}
+id-asE OBJECT IDENTIFIER ::= {id-CAPOE as(5)}
+id-rosObject OBJECT IDENTIFIER ::= {id-CAP rosObject(25)}
+id-contract OBJECT IDENTIFIER ::= {id-CAP contract(26)}
+id-contract3 OBJECT IDENTIFIER ::= {id-CAP3 contract(26)}
+id-contractE OBJECT IDENTIFIER ::= {id-CAPOE contract(26)}
+id-package OBJECT IDENTIFIER ::= {id-CAP package(27)}
+id-packageE OBJECT IDENTIFIER ::= {id-CAPOE package(27)}
+
+-- for ac, as, rosObject, contract and package, the values are identical to ITU-T Recommendation
+-- Q.1218 [49]
+
+
+-- ROS Objects
+
+id-rosObject-gsmSCF OBJECT IDENTIFIER ::= {id-rosObject 4}
+id-rosObject-gsmSSF OBJECT IDENTIFIER ::= {id-rosObject 5}
+id-rosObject-gsmSRF OBJECT IDENTIFIER ::= {id-rosObject 6}
+id-rosObject-gprsSSF OBJECT IDENTIFIER ::= {id-rosObject 7}
+id-rosObject-smsSSF-V3 OBJECT IDENTIFIER ::= {id-rosObject 8}
+id-rosObject-smsSSF-V4 OBJECT IDENTIFIER ::= {id-rosObject 9}
+
+
+-- Application Contexts
+
+-- gsmSSF/gsmSCF AC
+id-ac-CAP-gsmSSF-scfGenericAC OBJECT IDENTIFIER ::= {id-acE 4}
+id-ac-CAP-gsmSSF-scfAssistHandoffAC OBJECT IDENTIFIER ::= {id-acE 6}
+id-ac-CAP-scf-gsmSSFGenericAC OBJECT IDENTIFIER ::= {id-acE 8}
+
+-- gsmSRF/gsmSCF AC
+id-ac-gsmSRF-gsmSCF OBJECT IDENTIFIER ::= {id-ac 14}
+
+-- gprsSSF/gsmSCF AC
+id-ac-CAP-gprsSSF-gsmSCF-AC OBJECT IDENTIFIER ::= {id-ac3E 50}
+id-ac-CAP-gsmSCF-gprsSSF-AC OBJECT IDENTIFIER ::= {id-ac3E 51}
+
+-- gprsSSF/gsmSCF or gsmSSF/gsmSCF AC
+id-ac-cap3-sms-AC OBJECT IDENTIFIER ::= {id-ac3E 61}
+id-ac-cap4-sms-AC OBJECT IDENTIFIER ::= {id-acE 61}
+
+
+-- Contracts
+
+-- gsmSSF/gsmSCF Contracts
+id-CAPSsfToScfGeneric OBJECT IDENTIFIER ::= {id-contractE 3}
+id-CAPAssistHandoffssfToScf OBJECT IDENTIFIER ::= {id-contractE 5}
+id-CAPScfToSsfGeneric OBJECT IDENTIFIER ::= {id-contractE 6}
+
+-- gsmSRF/gsmSCF Contracts
+id-contract-gsmSRF-gsmSCF OBJECT IDENTIFIER ::= {id-contract 13}
+
+-- gprsSSF/gsmSCF Contracts
+id-capGprsSsfTogsmScf OBJECT IDENTIFIER ::= {id-contract 14}
+id-capGsmScfToGprsSsf OBJECT IDENTIFIER ::= {id-contract 15}
+
+-- gprsSSF/gsmSCF or gsmSSF/gsmSCF Contracts
+id-cap3SmsSsfTogsmScf OBJECT IDENTIFIER ::= {id-contract3 16}
+id-cap4SmsSsfTogsmScf OBJECT IDENTIFIER ::= {id-contract 16}
+
+
+-- Operation Packages
+
+-- gsmSSF/gsmSCF Operation Packages
+id-package-scfActivation OBJECT IDENTIFIER ::= {id-package 11}
+id-package-gsmSRF-scfActivationOfAssist OBJECT IDENTIFIER ::= {id-package 15}
+id-package-assistConnectionEstablishment OBJECT IDENTIFIER ::= {id-package 16}
+id-package-genericDisconnectResource OBJECT IDENTIFIER ::= {id-package 17}
+id-package-nonAssistedConnectionEstablishment OBJECT IDENTIFIER ::= {id-package 18}
+id-package-connect OBJECT IDENTIFIER ::= {id-package 19}
+id-package-callHandling OBJECT IDENTIFIER ::= {id-packageE 20}
+id-package-bcsmEventHandling OBJECT IDENTIFIER ::= {id-package 21}
+id-package-ssfCallProcessing OBJECT IDENTIFIER ::= {id-packageE 24}
+id-package-scfCallInitiation OBJECT IDENTIFIER ::= {id-package 25}
+id-package-timer OBJECT IDENTIFIER ::= {id-package 26}
+id-package-billing OBJECT IDENTIFIER ::= {id-package 27}
+id-package-charging OBJECT IDENTIFIER ::= {id-package 28}
+id-package-trafficManagement OBJECT IDENTIFIER ::= {id-package 29}
+id-package-callReport OBJECT IDENTIFIER ::= {id-package 32}
+id-package-signallingControl OBJECT IDENTIFIER ::= {id-package 33}
+id-package-activityTest OBJECT IDENTIFIER ::= {id-package 34}
+id-package-cancel OBJECT IDENTIFIER ::= {id-packageE 36}
+id-package-cphResponse OBJECT IDENTIFIER ::= {id-package 37}
+id-package-exceptionInform OBJECT IDENTIFIER ::= {id-package 38}
+id-package-playTone OBJECT IDENTIFIER ::= {id-package 39}
+
+-- gsmSRF/gsmSCF Operation Packages
+id-package-specializedResourceControl OBJECT IDENTIFIER ::= {id-package 42}
+id-package-gsmSRF-scfCancel OBJECT IDENTIFIER ::= {id-package 43}
+
+-- gprsSSF/gsmSCF Operation Packages
+id-package-gprsContinue OBJECT IDENTIFIER ::= {id-package 49}
+id-package-gprsExceptionInformation OBJECT IDENTIFIER ::= {id-package 50}
+id-package-gprsScfActivation OBJECT IDENTIFIER ::= {id-package 51}
+id-package-gprsConnect OBJECT IDENTIFIER ::= {id-package 52}
+id-package-gprsRelease OBJECT IDENTIFIER ::= {id-package 53}
+id-package-gprsEventHandling OBJECT IDENTIFIER ::= {id-package 54}
+id-package-gprsTimer OBJECT IDENTIFIER ::= {id-package 55}
+id-package-gprsBilling OBJECT IDENTIFIER ::= {id-package 56}
+id-package-gprsCharging OBJECT IDENTIFIER ::= {id-package 57}
+id-package-gprsActivityTest OBJECT IDENTIFIER ::= {id-package 58}
+id-package-gprsCancel OBJECT IDENTIFIER ::= {id-package 59}
+id-package-gprsChargeAdvice OBJECT IDENTIFIER ::= {id-package 60}
+
+-- gprsSSF/gsmSCF or gsmSSF/gsmSCF Operation Packages
+id-package-smsActivation OBJECT IDENTIFIER ::= {id-package 61}
+id-package-smsConnect OBJECT IDENTIFIER ::= {id-package 62}
+id-package-smsContinue OBJECT IDENTIFIER ::= {id-package 63}
+id-package-smsRelease OBJECT IDENTIFIER ::= {id-package 64}
+id-package-smsEventHandling OBJECT IDENTIFIER ::= {id-package 65}
+id-package-smsBilling OBJECT IDENTIFIER ::= {id-package 66}
+id-package-smsTimer OBJECT IDENTIFIER ::= {id-package 67}
+
+
+-- Abstract Syntaxes
+
+-- gsmSSF/gsmSCF Abstract Syntaxes
+id-as-gsmSSF-scfGenericAS OBJECT IDENTIFIER ::= {id-asE 4}
+id-as-assistHandoff-gsmSSF-scfAS OBJECT IDENTIFIER ::= {id-asE 6}
+id-as-scf-gsmSSFGenericAS OBJECT IDENTIFIER ::= {id-asE 7}
+
+-- gsmSRF/gsmSCF Abstract Syntaxes
+id-as-basic-gsmSRF-gsmSCF OBJECT IDENTIFIER ::= {id-as 14}
+
+-- gprsSSF/gsmSCF Abstract Syntaxes
+id-as-gprsSSF-gsmSCF-AS OBJECT IDENTIFIER ::= {id-as 50}
+id-as-gsmSCF-gprsSSF-AS OBJECT IDENTIFIER ::= {id-as 51}
+
+-- gprsSSF/gsmSCF or gsmSSF/gsmSCF Abstract Syntaxes
+id-as-smsSSF-gsmSCF-AS OBJECT IDENTIFIER ::= {id-as 61}
+
+END
diff --git a/epan/dissectors/asn1/camel/CAP-operationcodes.asn b/epan/dissectors/asn1/camel/CAP-operationcodes.asn
new file mode 100644
index 0000000000..deecd260be
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CAP-operationcodes.asn
@@ -0,0 +1,119 @@
+-- 3GPP TS 29.078 11.0.0 (2011-09)
+-- 5.3 Operation codes
+CAP-operationcodes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-operationcodes(53) version8(7)}
+
+DEFINITIONS ::= BEGIN
+
+IMPORTS
+
+ ros-InformationObjects
+FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}
+
+ Code
+FROM Remote-Operations-Information-Objects ros-InformationObjects
+
+;
+
+-- the operations are grouped by the identified operation packages.
+
+-- gsmSCF activation Package
+ opcode-initialDP Code ::= local: 0
+-- gsmSCF/gsmSRF activation of assist Package
+ opcode-assistRequestInstructions Code ::= local: 16
+-- Assist connection establishment Package
+ opcode-establishTemporaryConnection Code ::= local: 17
+-- Generic disconnect resource Package
+ opcode-disconnectForwardConnection Code ::= local: 18
+ opcode-dFCWithArgument Code ::= local: 86
+-- Non-assisted connection establishment Package
+
+ opcode-connectToResource Code ::= local: 19
+-- Connect Package (elementary gsmSSF function)
+ opcode-connect Code ::= local: 20
+-- Call handling Package (elementary gsmSSF function)
+ opcode-releaseCall Code ::= local: 22
+-- BCSM Event handling Package
+ opcode-requestReportBCSMEvent Code ::= local: 23
+ opcode-eventReportBCSM Code ::= local: 24
+-- gsmSSF call processing Package
+ opcode-collectInformation Code ::= local: 27
+ opcode-continue Code ::= local: 31
+-- gsmSCF call initiation Package
+ opcode-initiateCallAttempt Code ::= local: 32
+-- Timer Package
+ opcode-resetTimer Code ::= local: 33
+-- Billing Package
+ opcode-furnishChargingInformation Code ::= local: 34
+-- Charging Package
+ opcode-applyCharging Code ::= local: 35
+ opcode-applyChargingReport Code ::= local: 36
+-- Traffic management Package
+ opcode-callGap Code ::= local: 41
+-- Call report Package
+ opcode-callInformationReport Code ::= local: 44
+ opcode-callInformationRequest Code ::= local: 45
+-- Signalling control Package
+ opcode-sendChargingInformation Code ::= local: 46
+-- Specialized resource control Package
+ opcode-playAnnouncement Code ::= local: 47
+ opcode-promptAndCollectUserInformation Code ::= local: 48
+ opcode-specializedResourceReport Code ::= local: 49
+-- Cancel Package
+ opcode-cancel Code ::= local: 53
+-- Activity Test Package
+ opcode-activityTest Code ::= local: 55
+-- CPH Response Package
+ opcode-continueWithArgument Code ::= local: 88
+ opcode-disconnectLeg Code ::= local: 90
+ opcode-moveLeg Code ::= local: 93
+ opcode-splitLeg Code ::= local: 95
+-- Exception Inform Package
+ opcode-entityReleased Code ::= local: 96
+-- Play Tone Package
+ opcode-playTone Code ::= local: 97
+
+-- Sms Activation Package
+ opcode-initialDPSMS Code ::= local: 60
+-- Sms Billing Package
+ opcode-furnishChargingInformationSMS Code ::= local: 61
+-- Sms Connect Package
+ opcode-connectSMS Code ::= local: 62
+-- Sms Event Handling Package
+ opcode-requestReportSMSEvent Code ::= local: 63
+ opcode-eventReportSMS Code ::= local: 64
+-- Sms Processing Package
+ opcode-continueSMS Code ::= local: 65
+-- Sms Release Package
+ opcode-releaseSMS Code ::= local: 66
+-- Sms Timer Package
+ opcode-resetTimerSMS Code ::= local: 67
+
+-- Gprs Activity Test Package
+ opcode-activityTestGPRS Code ::= local: 70
+-- Gprs Charging Package
+ opcode-applyChargingGPRS Code ::= local: 71
+ opcode-applyChargingReportGPRS Code ::= local: 72
+-- Gprs Cancel Package
+ opcode-cancelGPRS Code ::= local: 73
+-- Gprs Connect Package
+ opcode-connectGPRS Code ::= local: 74
+-- Gprs Processing Package
+ opcode-continueGPRS Code ::= local: 75
+-- Gprs Exception Information Package
+ opcode-entityReleasedGPRS Code ::= local: 76
+-- Gprs Billing Package
+ opcode-furnishChargingInformationGPRS Code ::= local: 77
+-- Gprs Scf Activation Package
+ opcode-initialDPGPRS Code ::= local: 78
+-- Gprs Release Package
+ opcode-releaseGPRS Code ::= local: 79
+-- Gprs Event Handling Package
+ opcode-eventReportGPRS Code ::= local: 80
+ opcode-requestReportGPRSEvent Code ::= local: 81
+-- Gprs Timer Package
+ opcode-resetTimerGPRS Code ::= local: 82
+-- Gprs Charge Advice Package
+ opcode-sendChargingInformationGPRS Code ::= local: 83
+
+END
diff --git a/epan/dissectors/asn1/camel/CMakeLists.txt b/epan/dissectors/asn1/camel/CMakeLists.txt
new file mode 100644
index 0000000000..8aa9bb8329
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CMakeLists.txt
@@ -0,0 +1,71 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME camel )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( EXT_ASN_FILE_LIST_LATE
+ ../ros/Remote-Operations-Information-Objects.asn
+ ../ros/Remote-Operations-Generic-ROS-PDUs.asn
+)
+
+set( ASN_FILE_LIST
+ CAP-object-identifiers.asn
+ CAP-classes.asn
+ CAP-datatypes.asn
+ CAP-errorcodes.asn
+ CAP-errortypes.asn
+ CAP-operationcodes.asn
+ CAP-GPRS-ReferenceNumber.asn
+ CAP-gsmSCF-gsmSRF-ops-args.asn
+ CAP-gsmSSF-gsmSCF-ops-args.asn
+ CAP-gprsSSF-gsmSCF-ops-args.asn
+ CAP-SMS-ops-args.asn
+ CAP-U-ABORT-Data.asn
+ CamelV2diff.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.asn
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -L )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../inap/inap-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../gsm_map/gsm_map-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/camel/CamelV2diff.asn b/epan/dissectors/asn1/camel/CamelV2diff.asn
new file mode 100644
index 0000000000..4f1899631b
--- /dev/null
+++ b/epan/dissectors/asn1/camel/CamelV2diff.asn
@@ -0,0 +1,98 @@
+-- Hand crafted ASN1 file for the differences between latest spec and V2
+-- statments sufixed with V2 to be able to generate this with the latest ASN1 spec.
+-- .cnf and -template is used to call the statmets here.
+
+CAP-DataTypesV2 {ccitt(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) modules(3)cap-datatypes(52) version2(1)}
+
+-- This module contains the type definitions for the CAP v.2 data types.
+
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+ IMPORTS
+
+ NAEA-CIC
+FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}
+
+;
+
+-- From:
+-- CAP-Operations {ccitt(0) identified-organization(4) etsi(0) mobileDomain(0)
+-- gsm-Network(1) modules(3) cap-operations(50) version2(1)}
+-- This module contains the type definitions for the CAP v.2 operations.
+EstablishTemporaryConnectionArgV2 ::= SEQUENCE {
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress,
+ correlationID [1] CorrelationID OPTIONAL,
+ scfID [3] ScfID OPTIONAL,
+ extensions [4] SEQUENCE SIZE(1..numOfExtensions) OF
+ ExtensionField OPTIONAL,
+ serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ ...,
+ na-info [50] NA-Info OPTIONAL
+ }
+-- na-info is included at the discretion of the
+-- gsmSCF operator.
+
+-- Use of the text parameter is network operator/equipment vendor specific.
+-- End CAP-Operations
+
+-- TYPE DEFINITIONS FOR CAP v.2 DATA TYPES FOLLOW
+
+InitialDPArgExtensionV2 ::= SEQUENCE {
+ naCarrierInformation [0] NACarrierInformation OPTIONAL,
+ gmscAddress [1] ISDN-AddressString OPTIONAL,
+ ...
+
+
+}
+
+NACarrierInformation ::= SEQUENCE {
+ naCarrierId [0] NAEA-CIC OPTIONAL,
+ naCICSelectionType [1] NACarrierSelectionInfo OPTIONAL,
+ ...}
+
+NACarrierSelectionInfo ::= OCTET STRING (SIZE (1))
+-- NA carrier selection information octet carries the same values as ANSI
+-- ISUP T1.113: '00'H - not indicated or not explicitly provided
+-- '01'H - subscribed not dialed
+-- '02'H - subscribed and dialed
+-- '03'H - subscribed with dialing undetermined
+-- '04'H - dialed CIC not subscribed
+
+NAChargeNumber ::= OCTET STRING (SIZE (2..7))
+-- This parameter uniquely identifies the chargeable number for a call sent into a North American
+-- long distance carrier. It transports the ChargeNumber Parameter Field
+-- as defined in ANSI ISUP T1.113. This provides
+-- - 1 octet for the nature of address indicator field, plus
+-- - 1 octet for a numbering plan field, plus
+-- - up to 5 octets for the address signal (up to 10 digits)
+
+-- The Charge Number in ANSI T1.113 normally contains a 10 digit national number within the North
+-- American Numbering Plan (NANP); longer (e.g. international) charge numbers are not supported in
+-- T1.113
+
+NA-Info ::= SEQUENCE {
+ naCarrierInformation [0] NACarrierInformation OPTIONAL,
+ naOliInfo [1] NAOliInfo OPTIONAL,
+ naChargeNumber [2] NAChargeNumber OPTIONAL,
+ ...}
+
+
+CAMEL-AChBillingChargingCharacteristicsV2 ::= CHOICE {
+ timeDurationCharging [0] SEQUENCE {
+ maxCallPeriodDuration [0] INTEGER (1..864000),
+ releaseIfdurationExceeded [1] ReleaseIfDurationExceeded OPTIONAL,
+ tariffSwitchInterval [2] INTEGER (1..86400) OPTIONAL
+ }
+ }
+-- tariffSwitchInterval is measured in 1 second units.
+-- maxCallPeriodDuration is measured in100 millisecond units
+
+ReleaseIfDurationExceeded ::= SEQUENCE {
+ tone BOOLEAN DEFAULT FALSE,
+ ...,
+ extensions [10] SEQUENCE SIZE(1..numOfExtensions) OF
+ ExtensionField OPTIONAL
+ }
+
+END
diff --git a/epan/dissectors/asn1/camel/Makefile.am b/epan/dissectors/asn1/camel/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/camel/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/camel/Makefile.common b/epan/dissectors/asn1/camel/Makefile.common
new file mode 100644
index 0000000000..d2203a1b92
--- /dev/null
+++ b/epan/dissectors/asn1/camel/Makefile.common
@@ -0,0 +1,69 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=camel
+
+EXT_ASN_FILE_LIST_LATE = \
+ ../ros/Remote-Operations-Information-Objects.asn \
+ ../ros/Remote-Operations-Generic-ROS-PDUs.asn
+
+ASN_FILE_LIST = \
+ CAP-object-identifiers.asn \
+ CAP-classes.asn \
+ CAP-datatypes.asn \
+ CAP-errorcodes.asn \
+ CAP-errortypes.asn \
+ CAP-operationcodes.asn \
+ CAP-GPRS-ReferenceNumber.asn \
+ CAP-gsmSCF-gsmSRF-ops-args.asn \
+ CAP-gsmSSF-gsmSCF-ops-args.asn \
+ CAP-gprsSSF-gsmSCF-ops-args.asn \
+ CAP-SMS-ops-args.asn \
+ CAP-U-ABORT-Data.asn \
+ CamelV2diff.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ TCAPMessages.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).asn \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b -L
+
+EXTRA_CNF=$(builddir)/../inap/inap-exp.cnf \
+ $(builddir)/../gsm_map/gsm_map-exp.cnf
+
+$(builddir)/../gsm_map/gsm_map-exp.cnf:
+ (cd $(builddir)/../gsm_map && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../inap/inap-exp.cnf:
+ (cd $(builddir)/../inap && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/camel/Makefile.nmake b/epan/dissectors/asn1/camel/Makefile.nmake
new file mode 100644
index 0000000000..270082fb45
--- /dev/null
+++ b/epan/dissectors/asn1/camel/Makefile.nmake
@@ -0,0 +1,30 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+checkapi:
+ $(PERL) ../../tools/checkAPIs.pl -build \
+ $(PROTOCOL_NAME).cnf \
+ packet-$(PROTOCOL_NAME)-template.c \ No newline at end of file
diff --git a/epan/dissectors/asn1/camel/TCAPMessages.asn b/epan/dissectors/asn1/camel/TCAPMessages.asn
new file mode 100644
index 0000000000..1e0b5561c1
--- /dev/null
+++ b/epan/dissectors/asn1/camel/TCAPMessages.asn
@@ -0,0 +1,21 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+-- This is a dummy asn1 file to be replacet when everthing is in place...
+-- 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)};
+
+
+TCInvokeIdSet ::= InvokeId(WITH COMPONENTS {
+ present (-128..127)
+ })
+
+END -- TCAPMessages
diff --git a/epan/dissectors/asn1/camel/camel.asn b/epan/dissectors/asn1/camel/camel.asn
new file mode 100644
index 0000000000..0c65a27506
--- /dev/null
+++ b/epan/dissectors/asn1/camel/camel.asn
@@ -0,0 +1,3246 @@
+--***********************************************
+-- ASN.1+ version of CAMEL3 message set.
+--
+-- Ref : CAMEL Application Part (CAP) specification
+-- (3GPP TS 29.078 version 3.5.0 Release 1999)
+-- ETSI TS 129 078 V3.5.0 (2000-09)
+-- Updated to 3GPP TS 29.078 version 7.3.0 Release 7 (2006-06)
+--
+--***********************************************
+
+--*********************************************
+-- Core-INAP-CS1-Operations DEFINITIONS
+--*********************************************
+
+CAP-datatypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-datatypes(52) version5(4)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+
+
+-- exports everything
+
+
+
+IMPORTS
+
+ CellGlobalIdOrServiceAreaIdFixedLength,
+ Ext-BasicServiceCode,
+ IMEI,
+ IMSI,
+ LAIFixedLength
+
+FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CommonDataTypes(18) version9(9)}
+
+ CUG-Index,
+ CUG-Interlock,
+ Ext-QoS-Subscribed,
+ Ext2-QoS-Subscribed,
+ GeographicalInformation,
+ GSN-Address,
+ LocationInformation,
+ LSAIdentity,
+ MS-Classmark2,
+ QoS-Subscribed,
+ RAIdentity,
+ GPRSChargingID
+FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-MS-DataTypes(11) version9(9)}
+
+ UU-Data
+FROM MAP-CH-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
+gsm-Network(1) modules(3) map-CH-DataTypes(13) version9(9)}
+
+;
+-- ================================
+-- MACRO OPERATION
+-- ================================
+
+-- ROS def's
+-- Module Remote-Operations-Apdus (H.450.1:02/1998)
+--Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
+-- remote-operations-apdus(11)} DEFINITIONS AUTOMATIC TAGS ::=
+--BEGIN
+
+Component ::= CHOICE {
+ invoke [1] IMPLICIT Invoke,
+ returnResultLast [2] IMPLICIT ReturnResult,
+ returnError [3] IMPLICIT ReturnError,
+ reject [4] IMPLICIT Reject
+}
+
+Invoke ::= SEQUENCE {
+ invokeID InvokeIdType,
+ linkedID [0] IMPLICIT InvokeIdType OPTIONAL,
+ opCode OPERATION,
+ invokeparameter InvokeParameter OPTIONAL
+}
+InvokeParameter ::= ANY
+
+
+-- 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,
+ resultretres SEQUENCE {
+ opCode OPERATION,
+ returnparameter ReturnResultParameter OPTIONAL
+ } OPTIONAL
+}
+
+ReturnResultParameter ::= ANY
+
+-- 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 ReturnErrorParameter OPTIONAL }
+
+ReturnErrorParameter ::= ANY
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+Reject ::= SEQUENCE {
+ invokeIDRej 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)
+
+
+OPERATION ::= CHOICE {
+ localValue OperationLocalvalue,
+ globalValue OBJECT IDENTIFIER }
+
+
+CAMELOperationLocalvalue ::= INTEGER{
+ initialDP (0),
+ assistRequestInstructions (16),
+ establishTemporaryConnection (17),
+ disconnectForwardConnection (18),
+ connectToResource (19),
+ connect (20),
+ releaseCall (22),
+ requestReportBCSMEvent (23),
+ eventReportBCSM (24),
+ collectInformation (27),
+ continue (31),
+ initiateCallAttempt (32),
+ resetTimer (33),
+ furnishChargingInformation (34),
+ applyCharging (35),
+ applyChargingReport (36),
+ callGap (41),
+ callInformationReport (44),
+ callInformationRequest (45),
+ sendChargingInformation (46),
+ playAnnouncement (47),
+ promptAndCollectUserInformation (48),
+ specializedResourceReport (49),
+ cancel (53),
+ activityTest (55),
+ continueWithArgument (56),
+ initialDPSMS (60),
+ furnishChargingInformationSMS (61),
+ connectSMS (62),
+ requestReportSMSEvent (63),
+ eventReportSMS (64),
+ continueSMS (65),
+ releaseSMS (66),
+ resetTimerSMS (67),
+ activityTestGPRS (70),
+ applyChargingGPRS (71),
+ applyChargingReportGPRS (72),
+ cancelGPRS (73),
+ connectGPRS (74),
+ continueGPRS (75),
+ entityReleasedGPRS (76),
+ furnishChargingInformationGPRS (77),
+ initialDPGPRS (78),
+ releaseGPRS (79),
+ eventReportGPRS (80),
+ requestReportGPRSEvent (81),
+ resetTimerGPRS (82),
+ sendChargingInformationGPRS (83),
+ dFCWithArgument (86),
+ continueWithArgument (88),
+ disconnectLeg (90),
+ moveLeg (93),
+ splitLeg (95),
+ entityReleased (96),
+ playTone (97)
+}
+
+OperationLocalvalue ::= CAMELOperationLocalvalue
+
+
+ERROR ::= CHOICE {
+ localErrorValue LocalErrorcode,
+ globalErrorValue OBJECT IDENTIFIER
+}
+
+CAMELLocalErrorcode ::= INTEGER{
+ canceled (0),
+ cancelFailed (1),
+ eTCFailed (3),
+ improperCallerResponse (4),
+ missingCustomerRecord (6),
+ missingParameter (7),
+ parameterOutOfRange (8),
+ requestedInfoError (10),
+ systemFailure (11),
+ taskRefused (12),
+ unavailableResource (13),
+ unexpectedComponentSequence (14),
+ unexpectedDataValue (15),
+ unexpectedParameter (16),
+ unknownLegID (17),
+ unknownPDPID (50),
+ unknownCSID (51)
+}
+
+LocalErrorcode ::= CAMELLocalErrorcode
+
+-- 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
+
+--
+--
+--
+
+
+
+
+-- AccessPointName notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+
+AccessPointName ::= OCTET STRING (SIZE (cAPSpecificBoundSetminAccessPointNameLength .. cAPSpecificBoundSetmaxAccessPointNameLength ))
+
+-- Indicates the AccessPointName, refer to 3GPP TS 24.008 [9] for the encoding.
+-- It shall be coded as in the value part defined in 3GPP TS 24.008,
+-- i.e. the 3GPP TS 24.008 IEI and 3GPP TS 24.008 octet length indicator
+-- shall not be included.
+
+-- AChBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+AChBillingChargingCharacteristics ::= CHOICE
+{
+ actimeDurationCharging [0] SEQUENCE
+ {
+ maxCallPeriodDuration [0] INTEGER (1..864000),
+ releaseIfdurationExceeded [1] BOOLEAN DEFAULT FALSE,
+ tariffSwitchInterval [2] INTEGER (1..86400) OPTIONAL,
+ actone [3] BOOLEAN DEFAULT FALSE,
+ extensions [4] ExtensionsArray OPTIONAL
+ }
+}
+
+AChChargingAddress ::= CHOICE {
+ legID [2] LegID,
+ srfConnection [50] CallSegmentID
+ }
+
+-- AdditionalCallingPartyNumber notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+AdditionalCallingPartyNumber ::= Digits
+
+-- AlertingPattern notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+AlertingPattern ::= OCTET STRING (SIZE(3))
+-- Indicates a specific pattern that is used to alert a subscriber
+-- (e.g. distinctive ringing, tones, etc.).
+-- The encoding of the last octet of this parameter is as defined in 3GPP TS 29.002 [11].
+
+
+-- This one Commented out by Javier Acuna (javier.acuna@sixbell.cl)
+-- Because I added a new Errortypes section at the end.
+
+--CancelFailedPARAM ::= SEQUENCE
+--{
+ -- operation [1] InvokeID
+--}
+
+-- AOCBeforeAnswer notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+
+AOCBeforeAnswer ::= SEQUENCE
+{
+ aOCInitial [0] CAI-Gsm0224,
+ aOCSubsequent [1] AOCSubsequent OPTIONAL
+}
+
+-- AOCGprs notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+AOCGprs ::= SEQUENCE
+{
+ aOCInitial [0] CAI-Gsm0224,
+ aOCSubsequent [1] AOCSubsequent OPTIONAL
+}
+
+-- AOCSubsequent notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+AOCSubsequent ::= SEQUENCE
+{
+ cAI-GSM0224 [0] CAI-Gsm0224,
+ tariffSwitchInterval [1] INTEGER (1..86400) OPTIONAL
+}
+
+-- AppendFreeFormatData notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+AppendFreeFormatData ::= ENUMERATED
+{
+ overwrite (0),
+ append (1)
+}
+
+-- ApplicationTimer notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ApplicationTimer ::= INTEGER (0..2047)
+
+-- AssistingSSPIPRoutingAddress notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+AssistingSSPIPRoutingAddress ::= Digits
+
+AudibleIndicator ::= CHOICE {
+ istone BOOLEAN,
+ burstList [1] BurstList
+ }
+
+-- BackwardServiceInteractionInd notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+BackwardServiceInteractionInd ::= SEQUENCE {
+ conferenceTreatmentIndicator [1] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- acceptConferenceRequest 'xxxx xx01'B
+ -- rejectConferenceRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect conference treatement
+ callCompletionTreatmentIndicator [2] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- acceptCallCompletionServiceRequest 'xxxx xx01'B,
+ -- rejectCallCompletionServiceRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect call completion treatment
+ ...
+ }
+
+-- BasicGapCriteria notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+BasicGapCriteria ::= 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,
+ ...
+ }
+}
+-- 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
+
+
+-- BCSMEvent notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+BCSMEvent ::= SEQUENCE
+{
+ eventTypeBCSM [0] EventTypeBCSM,
+ monitorMode [1] MonitorMode,
+ legID6 [2] LegID OPTIONAL,
+ dpSpecificCriteria [30] DpSpecificCriteria OPTIONAL,
+ automaticRearm [50] NULL OPTIONAL,
+ ...
+}
+
+-- Indicates the BCSM Event information for monitoring.
+BCSM-Failure ::= SEQUENCE {
+ legID [0] LegID OPTIONAL,
+ cause [2] Cause OPTIONAL,
+ ...
+ }
+
+-- BearerCapability notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+BearerCapability ::= CHOICE
+{
+ bearerCap [0] BearerCap
+}
+
+BearerCap ::= OCTET STRING (SIZE (2..cAPSpecificBoundSetmaxBearerCapabilityLength ))
+
+-- Indicates the type of bearer capability connection to the user. For bearerCap, the ISUP User
+-- Service Information, ETSI EN 300 356-1 [23]
+-- encoding shall be used.
+
+Burst ::= SEQUENCE {
+ numberOfBursts [0] INTEGER (1..3) DEFAULT 1,
+ burstInterval [1] INTEGER (1..1200) DEFAULT 2,
+ numberOfTonesInBurst [2] INTEGER (1..3) DEFAULT 3,
+ toneDuration [3] INTEGER (1..20) DEFAULT 2,
+ toneInterval [4] INTEGER (1..20) DEFAULT 2,
+ ...
+ }
+-- burstInterval, toneDurartion and toneInterval are measured in 100 millisecond units
+
+BurstList ::= SEQUENCE {
+ warningPeriod [0] INTEGER (1..1200) DEFAULT 30,
+ bursts [1] Burst,
+ ...
+ }
+-- warningPeriod is measured in 1 second units.
+
+-- CAI-Gsm0224 notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+CAI-Gsm0224 ::= SEQUENCE
+{
+ e1 [0] INTEGER (0..8191) OPTIONAL,
+ e2 [1] INTEGER (0..8191) OPTIONAL,
+ e3 [2] INTEGER (0..8191) OPTIONAL,
+ e4 [3] INTEGER (0..8191) OPTIONAL,
+ e5 [4] INTEGER (0..8191) OPTIONAL,
+ e6 [5] INTEGER (0..8191) OPTIONAL,
+ e7 [6] INTEGER (0..8191) OPTIONAL
+}
+-- Indicates Charge Advice Information to the Mobile Station. For information regarding
+-- parameter usage, refer to 3GPP TS 22.024 [2].
+
+-- CalledPartyBCDNumber notes: not recursive, exported,
+-- locally refd 4 times, import refd 0 times
+-- See 3GPP TS 29.078
+-- and 3GPP TS 24.008, section 10.5.4.7
+CalledPartyBCDNumber ::= ISDN-AddressString
+-- Indicates the Called Party Number, including service selection information.
+-- Refer to 3GPP TS 24.008 [9] for encoding.
+-- This data type carries only the 'type of number', 'numbering plan
+-- identification' and 'number digit' fields defined in 3GPP TS 24.008 [9];
+-- it does not carry the 'called party BCD number IEI' or 'length of called
+-- party BCD number contents'.
+-- In the context of the DestinationSubscriberNumber field in ConnectSMSArg or
+-- InitialDPSMSArg, a CalledPartyBCDNumber may also contain an alphanumeric
+-- character string. In this case, type-of-number '101'B is used, in accordance
+-- with 3GPP TS 23.040 [6]. The address is coded in accordance with the
+-- GSM 7-bit default alphabet definition and the SMS packing rules
+-- as specified in 3GPP TS 23.038 [15] in this case.
+
+-- CalledPartyNumber notes: not recursive, exported,
+-- locally refd 6 times, import refd 0 times
+
+CalledPartyNumber ::=
+
+
+ OCTET STRING (SIZE (cAPSpecificBoundSetminCalledPartyNumberLength ..cAPSpecificBoundSetmaxCalledPartyNumberLength ))
+-- Indicates the Called Party Number. Refer to ETS EN 300 356-1 [23] for encoding.
+
+-- A CalledPartyNumber may contain national-specific values of the Nature Of Address
+-- indicator. The filling-in of the national-specific Nature Of Address indicator
+-- values shall be done in accordance with the national ISUP of the gsmSSF country, e.g.
+-- ANSI T1.113-1995 [92].
+-- In terms of ETS EN 300 356-1 [23], the Destination Address Field is not present if the
+-- destination address length is set to zero. This is the case e.g. when the ANSI
+-- ISUP Nature Of Address indicator indicates no number present, operator requested
+-- (1110100) or no number present, cut-through call to carrier (1110101).
+-- See also see 3GPP TS 23.078 [7].
+
+-- CallingPartyNumber notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+CallingPartyNumber ::=
+
+
+ OCTET STRING (SIZE (cAPSpecificBoundSetminCallingPartyNumberLength..cAPSpecificBoundSetmaxCallingPartyNumberLength ))
+-- Indicates the Calling Party Number. Refer to ETSI EN 300 356-1 [23] for encoding.
+
+-- CallResult notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+CallResult ::= CAMEL-CallResult
+
+--OCTET STRING (SIZE (cAPSpecificBoundSetminCallResultLength..cAPSpecificBoundSetmaxCallResultLength))
+-- shall be the result of the BER-encoded value of type
+-- CAMEL-CallResult
+
+CallSegmentFailure ::= SEQUENCE {
+ callSegmentID [0] CallSegmentID OPTIONAL,
+ cause [2] Cause OPTIONAL,
+ ...
+ }
+
+CallSegmentID ::= INTEGER (1..cAPSpecificBoundsSetnumOfCSs)
+
+CallSegmentToCancel ::= SEQUENCE {
+ callInvokeID [0] InvokeID OPTIONAL,
+ callSegmentID [1] CallSegmentID OPTIONAL,
+ ...
+ }
+
+-- CAMEL-AChBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CAMEL-AChBillingChargingCharacteristics ::= CHOICE
+{
+ timeDurationCharging [0] SEQUENCE
+ {
+ maxCallPeriodDuration [0] INTEGER (1..864000),
+ releaseIfdurationExceeded [1] BOOLEAN DEFAULT FALSE,
+ tariffSwitchInterval [2] INTEGER (1..86400) OPTIONAL,
+ audibleIndicator [3] AudibleIndicator,
+ extensions [4] ExtensionsArray OPTIONAL,
+ ...
+ }
+}
+
+-- CAMEL-CallResult notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+--CAMEL-CallResult ::= CHOICE
+--{
+-- timeDurationChargingResult [0] SEQUENCE {
+-- partyToCharge [0] ReceivingSideID,
+-- timeInformation [1] TimeInformation,
+-- legActive [2] BOOLEAN DEFAULT TRUE,
+-- callLegReleasedAtTcpExpiry [3] NULL OPTIONAL,
+-- extensions [4] ExtensionsArray OPTIONAL,
+-- aChChargingAddress [5] AChChargingAddress,
+-- ...
+-- }
+-- }
+
+CAMEL-CallResult ::= CHOICE
+{
+ timeDurationChargingResult [0] TimeDurationChargingResult,
+ void [99] NULL
+}
+
+TimeDurationChargingResult ::= SEQUENCE {
+ partyToCharge [0] ReceivingSideID,
+ timeInformation [1] TimeInformation,
+ legActive [2] BOOLEAN OPTIONAL,
+ callLegReleasedAtTcpExpiry [3] NULL OPTIONAL,
+ extensions [4] ExtensionsArray OPTIONAL,
+ aChChargingAddress [5] AChChargingAddress OPTIONAL,
+ ...
+}
+
+
+-- CAMEL-FCIBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CAMEL-FCIBillingChargingCharacteristics ::= CHOICE
+{
+ fCIBCCCAMELsequence1 [0] SEQUENCE
+ {
+ freeFormatData [0] FreeFormatData,
+ partyToCharge4 [1] SendingSideID DEFAULT '01'H,
+ appendFreeFormatData [2] AppendFreeFormatData DEFAULT overwrite
+ }
+}
+
+
+-- CAMEL-FCIGPRSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CAMEL-FCIGPRSBillingChargingCharacteristics ::=
+
+SEQUENCE
+{
+ fCIBCCCAMELsequence2 [0] SEQUENCE
+ {
+ freeFormatData [0] FreeFormatData,
+ pDPID [1] PDPId OPTIONAL,
+ appendFreeFormatData [2] AppendFreeFormatData DEFAULT overwrite
+ }
+}
+
+
+-- CCAMEL-FCISMSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CAMEL-FCISMSBillingChargingCharacteristics ::= CHOICE
+{
+ fCIBCCCAMELsequence3 [0] SEQUENCE
+ {
+ freeFormatData [0] FreeFormatData,
+ appendFreeFormatData [1] AppendFreeFormatData DEFAULT overwrite
+ }
+}
+
+
+-- CAMEL-SCIBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+CAMEL-SCIBillingChargingCharacteristics ::= CHOICE
+{
+ aOCBeforeAnswer [0] AOCBeforeAnswer,
+ aOCAfterAnswer [1] AOCSubsequent,
+ aOC-extension [2] CAMEL-SCIBillingChargingCharacteristicsAlt
+}
+
+CAMEL-SCIBillingChargingCharacteristicsAlt ::= SEQUENCE {
+ ...
+ }
+-- This datatype is for extension in future releases.
+
+-- CAMEL-SCIGPRSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+CamelSCIGPRSBillingChargingCharacteristics ::=
+
+ SEQUENCE
+{
+ aOCGPRS [0] AOCGprs,
+ pDPID [1] PDPId OPTIONAL
+}
+
+-- Carrier notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+Carrier ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminCarrierLength ..cAPSpecificBoundSetmaxCarrierLength ))
+-- This parameter is used for North America (na) only.
+-- It contains the carrier selection field (first octet) followed by Carrier ID
+-- information (North America (na)).
+
+-- The Carrier selection is one octet and is encoded as:
+-- 00000000 No indication
+-- 00000001 Selected carrier identification code (CIC) pre subscribed and not
+-- input by calling party
+-- 00000010 Selected carrier identification code (CIC) pre subscribed and input by
+-- calling party
+-- 00000011 Selected carrier identification code (CIC) pre subscribed, no
+-- indication of whether input by calling party (undetermined)
+-- 00000100 Selected carrier identification code (CIC) not pre subscribed and
+-- input by calling party
+-- 00000101
+-- to Spare
+-- 11111110
+-- 11111111 Reserved
+
+-- Refer to ANSI T1.113-1995 [92] for encoding of na carrier ID information (3 octets).
+
+
+
+-- CGEncountered notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CGEncountered ::= ENUMERATED
+{
+ noCGencountered (0),
+ manualCGencountered (1),
+ scpOverload (2)
+}
+
+ChangeOfPositionControlInfo ::= SEQUENCE SIZE(1..cAPSpecificBoundsSetnumOfChangeOfPositionControlInf) OF ChangeOfLocation
+
+ChangeOfLocation ::= CHOICE {
+ cellGlobalId [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ serviceAreaId [1] CellGlobalIdOrServiceAreaIdFixedLength,
+ locationAreaId [2] LAIFixedLength,
+ inter-SystemHandOver [3] NULL,
+ inter-PLMNHandOver [4] NULL,
+ inter-MSCHandOver [5] NULL,
+ changeOfLocationAlt [6] ChangeOfLocationAlt
+}
+-- The cellGlobalId shall contain a Cell Global Identification.
+-- The serviceAreaId shall contain a Service Area Identification.
+
+ChangeOfLocationAlt ::= SEQUENCE {
+ ...
+ }
+
+ChargeIndicator ::= OCTET STRING (SIZE (1))
+-- As specified in ITU-T Recommendation Q.763 as follows:
+-- no indication 'xxxx xx00'B
+-- no charge 'xxxx xx01'B
+-- charge 'xxxx xx10'B
+-- spare 'xxxx xx11'B
+-- Sending entity shall fill the upper six bits with '0's.
+-- Receiving entity shall ignore the upper six bits.
+
+
+-- ChargeNumber notes: not recursive, exported,
+-- locally refd 4 times, import refd 0 times
+ChargeNumber ::= LocationNumber
+
+-- ChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ChargingCharacteristics ::= CHOICE
+{
+ maxTransferredVolume [0] INTEGER (1..4294967295),
+ maxElapsedTime [1] INTEGER (1..86400)
+}
+
+-- ChargingResult notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ChargingResult ::= CHOICE
+{
+ transferredVolume [0] TransferredVolume,
+ elapsedTime [1] ElapsedTime
+}
+
+ChargingRollOver ::= CHOICE {
+ transferredVolumeRollOver [0] TransferredVolumeRollOver,
+ elapsedTimeRollOver [1] ElapsedTimeRollOver
+}
+
+-- CollectedDigits notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CollectedDigits ::= SEQUENCE
+{
+ minimumNbOfDigits [0] INTEGER (1..30) DEFAULT 1,
+ maximumNbOfDigits [1] INTEGER (1..30),
+ 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 stdErrorAndInfo,
+ interruptableAnnInd [8] BOOLEAN DEFAULT TRUE,
+ voiceInformation [9] BOOLEAN DEFAULT FALSE,
+ voiceBack [10] BOOLEAN DEFAULT FALSE
+}
+-- The use of voiceBack and the support of voice recognition via voiceInformation
+-- 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 following encoding shall
+-- be applied for the non-decimal characters:
+-- 1011 (*), 1100 (#).
+-- The usage is service dependent.
+-- firstDigitTimeOut and interDigitTimeOut are measured in seconds.
+
+-- CollectedInfo notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CollectedInfo ::= CHOICE
+{
+ collectedDigits [0] CollectedDigits
+}
+
+
+-- ConnectedNumberTreatmentInd notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectedNumberTreatmentInd ::= ENUMERATED
+{
+ noINImpact (0),
+ presentationRestricted (1),
+ presentCalledINNumber (2),
+ presentCallINNumberRestricted (3)
+}
+
+-- ControlType notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ControlType ::= ENUMERATED
+{
+ sCPOverloaded (0),
+ manuallyInitiated (1)
+}
+
+-- CompoundCriteria notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CompoundCriteria ::= SEQUENCE
+{
+ basicGapCriteria [0] BasicGapCriteria,
+ scfID [1] ScfID OPTIONAL
+}
+
+-- CorrelationID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+CorrelationID ::= Digits
+-- used by gsmSCF for correlation with a previous operation.
+
+-- DateAndTime notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+DateAndTime ::= OCTET STRING (SIZE (7))
+-- DateAndTime is BCD encoded. The year digit indicating millenium occupies bits
+-- 0-3 of the first octet, and the year digit indicating century occupies bits
+-- 4-7 of the first octet.
+-- The year digit indicating decade occupies bits 0-3 of the second octet,
+-- whilst the digit indicating the year within the decade occupies bits 4-7 of
+-- the second octet.
+-- The most significant month digit occupies bits 0-3 of the third octet,
+-- and the least significant month digit occupies bits 4-7 of the third octet.
+-- The most significant day digit occupies bits 0-3 of the fourth octet,
+-- and the least significant day digit occupies bits 4-7 of the fourth octet.
+-- The most significant hours digit occupies bits 0-3 of the fifth octet,
+-- and the least significant digit occupies bits 4-7 of the fifth octet.
+-- The most significant minutes digit occupies bits 0-3 of the sixth octet,
+-- and the least significant digit occupies bits 4-7 of the sixth octet.
+-- The most significant seconds digit occupies bits 0-3 of the seventh octet,
+-- and the least seconds significant digit occupies bits 4-7 of the seventh octet.
+-- For the encoding of digits in an octet, refer to the timeAndtimezone parameter.
+
+
+-- DestinationRoutingAddress notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+DestinationRoutingAddress ::=
+
+SEQUENCE SIZE (1) OF CalledPartyNumber
+
+-- Digits notes: not recursive, exported,
+-- locally refd 9 times, import refd 0 times
+Digits ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminDigitsLength ..cAPSpecificBoundSetmaxDigitsLength ))
+-- Indicates the address signalling digits.
+-- Refer to ETSI EN 300 356-1 [23] Generic Number & Generic Digits parameters for encoding.
+-- The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
+-- Generic Digits are irrelevant to the CAP;
+-- 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 shall use Generic Number:
+-- - AdditionalCallingPartyNumber for InitialDP
+-- - AssistingSSPIPRoutingAddress for EstablishTemporaryConnection
+-- - CorrelationID for AssistRequestInstructions
+-- - CalledAddressValue for all occurrences, CallingAddressValue for all occurrences.
+--
+-- The following parameters shall use Generic Digits:
+-- - CorrelationID in EstablishTemporaryConnection
+-- - number in VariablePart
+-- - digitsResponse in ReceivedInformationArg
+-- - midCallEvents in oMidCallSpecificInfo and tMidCallSpecificInfo
+--
+-- In the digitsResponse and midCallevents, the digits may also include the '*', '#',
+-- a, b, c and d digits by using the IA5 character encoding scheme. If the BCD even or
+-- BCD odd encoding scheme is used, then the following encoding shall be applied for the
+-- non-decimal characters: 1011 (*), 1100 (#).
+--
+-- AssistingSSPIPRoutingAddress in EstablishTemporaryConnection and CorrelationID in
+-- AssistRequestInstructions may contain a Hex B digit as address signal. Refer to
+-- Annex A.6 for the usage of the Hex B digit.
+--
+-- Note that when CorrelationID is transported in Generic Digits, then the digits shall
+-- always be BCD encoded.
+
+
+-- DpSpecificCriteria notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+DpSpecificCriteria ::= CHOICE
+{
+ applicationTimer [1] ApplicationTimer,
+ midCallControlInfo [2] MidCallControlInfo,
+ dpSpecificCriteriaAlt [3] DpSpecificCriteriaAlt
+}
+
+DpSpecificCriteriaAlt ::= SEQUENCE {
+ ...,
+ changeOfPositionControlInfo [0] ChangeOfPositionControlInfo,
+ numberOfDigits [1] NumberOfDigits OPTIONAL,
+ interDigitTimeout [2] INTEGER (1..127) OPTIONAL
+ }
+-- interDigitTimeout duration in seconds.
+
+DpSpecificInfoAlt ::= SEQUENCE {
+ ...,
+ oServiceChangeSpecificInfo [0] SEQUENCE {
+ ext-basicServiceCode [0] Ext-BasicServiceCode OPTIONAL,
+ ...,
+ initiatorOfServiceChange [1] InitiatorOfServiceChange OPTIONAL,
+ natureOfServiceChange [2] NatureOfServiceChange OPTIONAL
+ },
+ tServiceChangeSpecificInfo [1] SEQUENCE {
+ ext-basicServiceCode [0] Ext-BasicServiceCode OPTIONAL,
+ ...,
+ initiatorOfServiceChange [1] InitiatorOfServiceChange OPTIONAL,
+ natureOfServiceChange [2] NatureOfServiceChange OPTIONAL
+ }
+ }
+-- This datatype is for extension in future releases.
+
+-- ElapsedTime notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ElapsedTime ::= CHOICE
+{
+ timeGPRSIfNoTariffSwitch [0] INTEGER (0..86400),
+ timeGPRSIfTariffSwitch [1] SEQUENCE
+ {
+ timeGPRSSinceLastTariffSwitch [0] INTEGER (0..86400),
+ timeGPRSTariffSwitchInterval [1] INTEGER (0..86400) OPTIONAL
+ }
+}
+
+
+ElapsedTimeRollOver ::= CHOICE {
+ rOTimeGPRSIfNoTariffSwitch [0] INTEGER (0..255),
+ rOTimeGPRSIfTariffSwitch [1] SEQUENCE {
+ rOTimeGPRSSinceLastTariffSwitch [0] INTEGER (0..255) OPTIONAL,
+ rOTimeGPRSTariffSwitchInterval [1] INTEGER (0..255) OPTIONAL
+ }
+}
+
+-- Indicates the EndUserAddress, refer to 3GPP TS 29.060 for the encoding.
+-- The pDPTypeOrganization shall use the least significant 4 bits of the octet encoded.
+-- The sender of this parameter shall set the most significant 4 bits of the octet to 1.
+-- The receiver of this parameter shall ignore the most significant 4 bits of this octet.
+-- Not used anymore, replaced by PDPType
+-- EndUserAddress ::= SEQUENCE
+-- {
+-- pDPTypeOrganization [0] OCTET STRING (SIZE (1)),
+-- pDPTypeNumber [1] OCTET STRING (SIZE (1)),
+-- pDPAddress [2] OCTET STRING (SIZE (cAPSpecificBoundSetminPDPAddressLength..cAPSpecificBoundSetmaxPDPAddressLength)) OPTIONAL
+-- }
+
+-- Indicates the EndUserAddress, refer to 3GPP TS 29.060 [12] for the encoding.
+-- The pDPTypeOrganization shall use the least significant 4 bits of the octet encoded.
+-- The sender of this parameter shall set the most significant 4 bits of the octet to 1.
+-- The receiver of this parameter shall ignore the most significant 4 bits of this octet.
+
+-- ErrorTreatment notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ErrorTreatment ::= ENUMERATED
+{
+ stdErrorAndInfo (0),
+ help (1),
+ repeatPrompt (2)
+}
+
+-- EventSpecificInformationBCSM notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+EventSpecificInformationBCSM ::= CHOICE
+{
+ routeSelectFailureSpecificInfo [2] SEQUENCE {
+ failureCause [0] Cause OPTIONAL,
+ ...
+ },
+ oCalledPartyBusySpecificInfo [3] SEQUENCE {
+ busyCause [0] Cause OPTIONAL,
+ ...
+ },
+ oNoAnswerSpecificInfo [4] SEQUENCE {
+ -- no specific info defined --
+ ...
+ },
+ oAnswerSpecificInfo [5] SEQUENCE {
+ destinationAddress [50] CalledPartyNumber OPTIONAL,
+ or-Call [51] NULL OPTIONAL,
+ forwardedCall [52] NULL OPTIONAL,
+ chargeIndicator [53] ChargeIndicator OPTIONAL,
+ ext-basicServiceCode [54] Ext-BasicServiceCode OPTIONAL,
+ ext-basicServiceCode2 [55] Ext-BasicServiceCode OPTIONAL,
+ ...
+ },
+ oMidCallSpecificInfo [6] SEQUENCE {
+ omidCallEvents [1] CHOICE {
+ dTMFDigitsCompleted [3] Digits,
+ dTMFDigitsTimeOut [4] Digits
+ } OPTIONAL,
+ ...
+ },
+ oDisconnectSpecificInfo [7] SEQUENCE {
+ releaseCause [0] Cause OPTIONAL,
+ ...
+ },
+ tBusySpecificInfo [8] SEQUENCE {
+ busyCause [0] Cause OPTIONAL,
+ callForwarded [50] NULL OPTIONAL,
+ routeNotPermitted [51] NULL OPTIONAL,
+ forwardingDestinationNumber [52] CalledPartyNumber OPTIONAL,
+ ...
+ },
+ tNoAnswerSpecificInfo [9] SEQUENCE {
+ callForwarded [50] NULL OPTIONAL,
+ forwardingDestinationNumber [52] CalledPartyNumber OPTIONAL,
+ ...
+ },
+ tAnswerSpecificInfo [10] SEQUENCE {
+ destinationAddress [50] CalledPartyNumber OPTIONAL,
+ or-Call [51] NULL OPTIONAL,
+ forwardedCall [52] NULL OPTIONAL,
+ chargeIndicator [53] ChargeIndicator OPTIONAL,
+ ext-basicServiceCode [54] Ext-BasicServiceCode OPTIONAL,
+ ext-basicServiceCode2 [55] Ext-BasicServiceCode OPTIONAL,
+ ...
+ },
+ tMidCallSpecificInfo [11] SEQUENCE {
+ tmidCallEvents [1] CHOICE {
+ dTMFDigitsCompleted [3] Digits,
+ dTMFDigitsTimeOut [4] Digits
+ } OPTIONAL,
+ ...
+ },
+ tDisconnectSpecificInfo [12] SEQUENCE {
+ releaseCause [0] Cause OPTIONAL,
+ ...
+ },
+ oTermSeizedSpecificInfo [13] SEQUENCE {
+ locationInformation [50] LocationInformation OPTIONAL,
+ ...
+ },
+ callAcceptedSpecificInfo [20] SEQUENCE {
+ locationInformation [50] LocationInformation OPTIONAL,
+ ...
+ },
+ oAbandonSpecificInfo [21] SEQUENCE {
+ routeNotPermitted [50] NULL OPTIONAL,
+ ...
+ },
+ oChangeOfPositionSpecificInfo [50] SEQUENCE {
+ locationInformation [50] LocationInformation OPTIONAL,
+ ...,
+ metDPCriteriaList [51] MetDPCriteriaList OPTIONAL
+ },
+ tChangeOfPositionSpecificInfo [51] SEQUENCE {
+ locationInformation [50] LocationInformation OPTIONAL,
+ ...,
+ metDPCriteriaList [51] MetDPCriteriaList OPTIONAL
+ },
+ dpSpecificInfoAlt [52] DpSpecificInfoAlt
+}
+
+-- EventSpecificInformationSMS notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EventSpecificInformationSMS ::= CHOICE
+{
+ o-smsFailureSpecificInfo [0] SEQUENCE
+ {
+ smsfailureCause [0] MO-SMSCause OPTIONAL
+ },
+ o-smsSubmittedSpecificInfo [1] SEQUENCE
+ {
+ -- no specific info defined-
+ foo INTEGER(0) OPTIONAL
+ },
+ t-smsFailureSpecificInfo [2] SEQUENCE {
+ failureMTSMSCause [0] MT-SMSCause OPTIONAL,
+ ...
+ },
+ t-smsDeliverySpecificInfo [3] SEQUENCE {
+ -- no specific info defined-
+ ...
+ }
+}
+
+-- EventTypeBCSM notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+EventTypeBCSM ::= ENUMERATED
+{
+ collectedInfo (2),
+ analyzedInformation (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),
+ oTermSeized (19),
+ callAccepted (27),
+ oChangeOfPosition (50),
+ tChangeOfPosition (51),
+ ...,
+ oServiceChange (52),
+ tServiceChange (53)
+}
+-- Indicates the BCSM detection point event.
+-- Values collectedInfo, analyzedInformation and termAttemptAuthorized may be used
+-- for TDPs only.
+-- Exception handling: reception of an unrecognized value shall be treated
+-- like reception of no detection point.
+
+-- EventTypeSMS notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+EventTypeSMS ::= ENUMERATED
+{
+ sms-CollectedInfo (1),
+ o-smsFailure (2),
+ o-smsSubmission (3),
+ sms-DeliveryRequested (11),
+ t-smsFailure (12),
+ t-smsDelivery (13)
+}
+-- Values sms-CollectedInfo and sms-DeliveryRequested may be used for TDPs only.
+-- Replace by ExtensionsArray
+--Extensions ::= SEQUENCE SIZE (1..cAPSpecificBoundSetnumOfExtensions) OF ExtensionField
+--
+
+-- FCIBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+FCIBillingChargingCharacteristics ::= CAMEL-FCIBillingChargingCharacteristics
+
+-- FCIGPRSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+FCIGPRSBillingChargingCharacteristics ::= CAMEL-FCIGPRSBillingChargingCharacteristics
+
+-- shall be the result of the BER-encoded value of type
+-- CAMEL-FCIGPRSBillingChargingCharacteristics
+
+-- FCISMSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+
+--FCISMSBillingChargingCharacteristics ::= OCTET STRING (SIZE (cAPSpecificBoundSetminFCIBillingChargingLength ..cAPSpecificBoundSetmaxFCIBillingChargingLength ))
+-- (CONSTRAINED BY { shall be the result of the BER-encoded value of type
+-- CAMEL-FCISMSBillingChargingCharacteristics {bound}})
+
+FCISMSBillingChargingCharacteristics ::= CAMEL-FCISMSBillingChargingCharacteristics
+
+-- ForwardServiceInteractionInd notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ForwardServiceInteractionInd ::= SEQUENCE
+{
+ conferenceTreatmentIndicator [1] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- acceptConferenceRequest 'xxxx xx01'B
+ -- rejectConferenceRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect conference treatment
+ callDiversionTreatmentIndicator [2] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- callDiversionAllowed 'xxxx xx01'B
+ -- callDiversionNotAllowed 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect call diversion treatment
+ callingPartyRestrictionIndicator [4] OCTET STRING (SIZE(1)) OPTIONAL,
+ -- noINImpact 'xxxx xx01'B
+ -- presentationRestricted 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect calling party restriction treatment
+...
+}
+
+-- GapCriteria notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+GapCriteria ::= CHOICE
+{
+ basicGapCriteria BasicGapCriteria,
+ compoundGapCriteria CompoundCriteria
+}
+
+
+-- GapIndicators notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GapIndicators ::= SEQUENCE
+{
+ duration1 [0] Duration,
+ gapInterval [1] Interval,
+ ...
+}
+
+
+
+-- GapOnService notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GapOnService ::= SEQUENCE
+{
+ serviceKey [0] ServiceKey,
+ ...
+}
+
+
+-- GapTreatment notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+GapTreatment ::= CHOICE
+{
+ informationToSend [0] InformationToSend,
+ releaseCause [1] Cause
+}
+
+-- GenericNumber notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+GenericNumber ::=
+
+
+ OCTET STRING (SIZE (cAPSpecificBoundSetminGenericNumberLength..cAPSpecificBoundSetmaxGenericNumberLength))
+
+-- GenericNumbers notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GenericNumbers ::=
+
+SET SIZE (1..cAPSpecificBoundSetnumOfGenericNumbers) OF GenericNumber
+
+
+-- GPRS-QoS notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GPRS-QoS ::= CHOICE
+{
+ short-QoS-format [0] QoS-Subscribed,
+ long-QoS-format [1] Ext-QoS-Subscribed
+}
+
+GPRS-QoS-Extension ::= SEQUENCE {
+ supplement-to-long-QoS-format [0] Ext2-QoS-Subscribed,
+ ...
+ }
+
+-- GPRSCause notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GPRSCause ::=
+
+ OCTET STRING (SIZE (cAPSpecificBoundSetminGPRSCauseLength..cAPSpecificBoundSetmaxGPRSCauseLength))
+-- 00000000 Unspecified
+-- All other values shall be interpreted as 'Unspecified'.
+--
+-- This parameter indicates the cause for CAP interface related information.
+-- The GPRSCause mapping to/from GTP cause values specified in the 3GPP TS 29.060 [12] and
+-- to/from 3GPP TS 24.008 [9] GMM cause and SM cause values are outside scope of this document.
+
+
+-- GPRSEvent notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GPRSEvent ::= SEQUENCE
+{
+ gPRSEventType [0] GPRSEventType,
+ monitorMode [1] MonitorMode
+}
+
+-- GPRSEventSpecificInformation notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+GPRSEventSpecificInformation ::= CHOICE
+{
+ attachChangeOfPositionSpecificInformation [0] SEQUENCE
+ {
+ locationInformationGPRS [0] LocationInformationGPRS OPTIONAL,
+ ...
+ },
+ pdp-ContextchangeOfPositionSpecificInformation [1] SEQUENCE
+ {
+ accessPointName [0] AccessPointName OPTIONAL,
+ chargingID [1] GPRSChargingID OPTIONAL,
+ locationInformationGPRS [2] LocationInformationGPRS OPTIONAL,
+ pDPType [3] PDPType OPTIONAL,
+ qualityOfService [4] QualityOfService OPTIONAL,
+ timeAndTimeZone [5] TimeAndTimezone OPTIONAL,
+ ...,
+ gGSNAddress [6] GSN-Address OPTIONAL
+ },
+ detachSpecificInformation [2] SEQUENCE
+ {
+ inititatingEntity [0] InitiatingEntity OPTIONAL,
+ ...,
+ routeingAreaUpdate [1] NULL OPTIONAL
+ },
+ disconnectSpecificInformation [3] SEQUENCE
+ {
+ inititatingEntity [0] InitiatingEntity OPTIONAL,
+ ...,
+ routeingAreaUpdate [1] NULL OPTIONAL
+ },
+ pDPContextEstablishmentSpecificInformation [4] SEQUENCE
+ {
+ accessPointName [0] AccessPointName OPTIONAL,
+ pDPType [1] PDPType OPTIONAL,
+ qualityOfService [2] QualityOfService OPTIONAL,
+ locationInformationGPRS [3] LocationInformationGPRS OPTIONAL,
+ timeAndTimeZone [4] TimeAndTimezone OPTIONAL,
+ pDPInitiationType [5] PDPInitiationType OPTIONAL,
+ ...,
+ secondaryPDPContext [6] NULL OPTIONAL
+ },
+ pDPContextEstablishmentAcknowledgementSpecificInformation [5] SEQUENCE
+ {
+ accessPointName [0] AccessPointName OPTIONAL,
+ chargingID [1] GPRSChargingID OPTIONAL,
+ pDPType [2] PDPType OPTIONAL,
+ qualityOfService [3] QualityOfService OPTIONAL,
+ locationInformationGPRS [4] LocationInformationGPRS OPTIONAL,
+ timeAndTimeZone [5] TimeAndTimezone OPTIONAL,
+ ...,
+ gGSNAddress [6] GSN-Address OPTIONAL
+ }
+}
+
+-- GPRSEventType notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GPRSEventType ::= ENUMERATED
+{
+ attach (1),
+ attachChangeOfPosition (2),
+ detached (3),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ disconnect (13),
+ pdp-ContextChangeOfPosition (14)
+}
+
+-- GPRSMSClass notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GPRSMSClass ::= SEQUENCE
+ {
+ mSNetworkCapability [0] MSNetworkCapability,
+ mSRadioAccessCapability [1] MSRadioAccessCapability OPTIONAL
+ }
+
+-- InbandInfo notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InbandInfo ::= SEQUENCE
+{
+ messageID [0] MessageID,
+ numberOfRepetitions [1] INTEGER (1..127) OPTIONAL,
+ duration2 [2] INTEGER (0..32767) OPTIONAL,
+ interval [3] INTEGER (0..32767) OPTIONAL,
+ ...
+}
+
+
+-- InformationToSend notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+InformationToSend ::= CHOICE
+{
+ inbandInfo [0] InbandInfo,
+ tone [1] Tone
+}
+
+-- InitiatingEntity notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+InitiatingEntity ::= ENUMERATED
+{
+ mobileStation (0),
+ sgsn (1),
+ hlr (2),
+ ggsn (3)
+}
+
+InitiatorOfServiceChange ::= ENUMERATED
+{
+ a-side (0),
+ b-side (1)
+}
+
+-- InvokeID notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+--InvokeID ::= TCInvokeIdSet
+InvokeID ::= InvokeIdType
+
+-- IPRoutingAddress notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+IPRoutingAddress ::= CalledPartyNumber
+
+-- IPSSPCapabilities notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+IPSSPCapabilities ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminIPSSPCapabilitiesLength..cAPSpecificBoundSetmaxIPSSPCapabilitiesLength ))
+-- Indicates the gsmSRF resources available. The parameter has two parts, a standard and a
+-- bilateral part. The standard part indicates capabilities defined as optional in CAP
+-- that shall be recognised (but not necessarily supported) by a gsmSCF. The bilateral
+-- part contains further information that is not specified in this standard, but which is set
+-- according to bilateral agreements between network operators and/or equipment vendors.
+-- The last octet of the standard part is indicated by bit 7 being set to 0, otherwise Bit 7 of
+-- a standard part octet is set to 1 indicating that the standard part continues in the following
+-- octet. Coding is as follows:
+
+-- Octet 1 Standard Part for CAP
+-- Bit Value Meaning
+-- 0 0 IPRoutingAddress not supported
+-- 1 IPRoutingAddress supported
+-- 1 0 VoiceBack not supported
+-- 1 VoiceBack supported
+-- 2 0 VoiceInformation not supported, via speech recognition
+-- 1 VoiceInformation supported, via speech recognition
+-- 3 0 VoiceInformation not supported, via voice recognition
+-- 1 VoiceInformation supported, via voice recognition
+-- 4 0 Generation of voice announcements from Text not supported
+-- 1 Generation of voice announcements from Text supported
+-- 5 - Reserved
+-- 6 - Reserved
+-- 7 0 End of standard part
+-- 1 This value is reserved in CAP
+--
+-- Octets 2 to 4 Bilateral Part: Network operator/equipment vendor specific
+
+LegOrCallSegment ::= CHOICE {
+ callSegmentID [0] CallSegmentID,
+ legID [1] LegID
+ }
+
+-- LegType notes: not recursive, exported,
+-- locally refd 6 times, import refd 0 times
+LegType ::= OCTET STRING (SIZE(1))
+
+-- LocationInformationGPRS notes: not recursive, exported,
+-- locally refd 6 times, import refd 0 times
+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,
+ ...,
+ saiPresent [6] NULL OPTIONAL
+}
+-- cellGlobalIdOrServiceAreaIdOrLAI shall contain the value part of the
+-- CellGlobalIdOrServiceAreaIdFixedLength type or the LAIFixedLength type (i.e. excluding tags
+-- and lengths) as defined in 3GPP TS 29.002 [13].
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+
+-- LocationNumber notes: not recursive, exported,
+-- locally refd 4 times, import refd 0 times
+LocationNumber ::=
+
+ OCTET STRING (SIZE (cAPSpecificBoundSetminLocationNumberLength ..cAPSpecificBoundSetmaxLocationNumberLength ))
+-- Indicates the Location Number for the calling party.
+-- Refer to ETSI EN 300 356-1 [23] for encoding.
+
+LowLayerCompatibility ::=
+OCTET STRING (SIZE (cAPSpecificBoundSetminLowLayerCompatibilityLength .. cAPSpecificBoundSetmaxLowLayerCompatibilityLength ))
+-- indicates the LowLayerCompatibility for the calling party.
+-- Refer to 3GPP TS 24.008 [9] for encoding.
+-- It shall be coded as in the value part defined in 3GPP TS 24.008.
+-- i.e. the 3GPP TS 24.008 IEI and 3GPP TS 24.008 octet length indicator
+-- shall not be included.
+
+-- MessageID notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+MessageID ::= CHOICE
+{
+ elementaryMessageID [0] Integer4,
+ text [1] SEQUENCE
+ {
+ messageContent [0]
+
+ IA5String (SIZE (cAPSpecificBoundSetminMessageContentLength..cAPSpecificBoundSetmaxMessageContentLength)),
+ attributes [1]
+
+ OCTET STRING (SIZE (cAPSpecificBoundSetminAttributesLength..cAPSpecificBoundSetmaxAttributesLength)) OPTIONAL
+ },
+ elementaryMessageIDs [29]
+
+ SEQUENCE SIZE (1..cAPSpecificBoundSetnumOfMessageIDs) OF Integer4,
+ variableMessage [30] SEQUENCE
+ {
+ elementaryMessageID [0] Integer4,
+ variableParts [1] VariablePartsArray
+ }
+}
+-- Use of the text parameter is network operator/equipment vendor specific.
+
+MetDPCriteriaList ::= SEQUENCE SIZE(1..cAPSpecificBoundsSetnumOfChangeOfPositionControlInf) OF MetDPCriterion
+
+MetDPCriterion ::= CHOICE {
+ enteringCellGlobalId [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ leavingCellGlobalId [1] CellGlobalIdOrServiceAreaIdFixedLength,
+ enteringServiceAreaId [2] CellGlobalIdOrServiceAreaIdFixedLength,
+ leavingServiceAreaId [3] CellGlobalIdOrServiceAreaIdFixedLength,
+ enteringLocationAreaId [4] LAIFixedLength,
+ leavingLocationAreaId [5] LAIFixedLength,
+ inter-SystemHandOverToUMTS [6] NULL,
+ inter-SystemHandOverToGSM [7] NULL,
+ inter-PLMNHandOver [8] NULL,
+ inter-MSCHandOver [9] NULL,
+ metDPCriterionAlt [10] MetDPCriterionAlt
+}
+-- The enteringCellGlobalId and leavingCellGlobalId shall contain a Cell Global Identification.
+-- The enteringServiceAreaId and leavingServiceAreaId shall contain a Service Area Identification.
+
+MetDPCriterionAlt ::= SEQUENCE {
+ ...
+ }
+
+MidCallControlInfo ::= SEQUENCE {
+ minimumNumberOfDigits [0] INTEGER (1..30) DEFAULT 1,
+ maximumNumberOfDigits [1] INTEGER (1..30) DEFAULT 30,
+ endOfReplyDigit [2] OCTET STRING (SIZE (1..2)) OPTIONAL,
+ cancelDigit [3] OCTET STRING (SIZE (1..2)) OPTIONAL,
+ startDigit [4] OCTET STRING (SIZE (1..2)) OPTIONAL,
+ interDigitTimeout [6] INTEGER (1..127) DEFAULT 10,
+ ...
+ }
+--
+-- - minimumNumberOfDigits specifies the minumum number of digits that shall be collected
+-- - maximumNumberOfDigits specifies the maximum number of digits that shall be collected
+-- - endOfReplyDigit specifies the digit string that denotes the end of the digits
+-- to be collected.
+-- - cancelDigit specifies the digit string that indicates that the input shall
+-- be erased and digit collection shall start afresh.
+-- - startDigit specifies the digit string that denotes the start of the digits
+-- to be collected.
+-- - interDigitTimeout specifies the maximum duration in seconds between successive
+-- digits.
+--
+-- endOfReplyDigit, cancelDigit and startDigit shall contain digits in the range 0..9, '*' and '#'
+-- only. The collected digits string, reported to the gsmSCF, shall include the endOfReplyDigit and
+-- the startDigit, if present.
+--
+-- endOfReplyDigit, cancelDigit and startDigit shall be encoded as BCD digits. Each octet shall
+-- contain one BCD digit, in the 4 least significant bits of each octet.
+-- The following encoding shall be used for the over-decadic digits: 1011 (*), 1100 (#).
+
+
+
+
+-- MonitorMode notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+MonitorMode ::= ENUMERATED
+{
+ interrupted (0),
+ notifyAndContinue (1),
+ transparent (2)
+}
+-- Indicates the event is relayed and/or processed by the SSP.
+-- Transparent means that the gsmSSF or gprsSSF does not notify the gsmSCF of the event.
+-- For the use of this parameter refer to the procedure descriptions in clause 11.
+-- For the RequestNotificationCharging operation, 'interrupted' shall not be used in MonitorMode.
+
+-- MO-SMSCause notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+MO-SMSCause ::= ENUMERATED {
+ systemFailure (0),
+ unexpectedDataValue (1),
+ facilityNotSupported (2),
+ sM-DeliveryFailure (3),
+ releaseFromRadioInterface (4)
+ }
+MT-SMSCause ::= OCTET STRING (SIZE (1))
+-- This variable is sent to the gsmSCF for a Short Message delivery failure
+-- notification.
+-- If the delivery failure is due to RP-ERROR RPDU received from the MS,
+-- then MT-SMSCause shall be set to the RP-Cause component in the RP-ERROR RPDU.
+-- Refer to 3GPP TS 24.011 [10] for the encoding of RP-Cause values.
+-- Otherwise, if the delivery failure is due to internal failure in the MSC or SGSN
+-- or time-out from the MS, then MT-SMSCause shall be set to 'Protocol error,
+-- unspecified', as defined in 3GPP TS 24.011 [10].
+
+
+
+
+-- MSNetworkCapability notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+MSNetworkCapability ::=
+
+OCTET STRING (SIZE (1..8))
+-- MS Network Capability describes the GPRS terminal capabilites related to the network, i.e. SMS
+-- point to point service over packet data channels. For encoding refer to 3GPP TS 24.008 [12].
+-- It shall contain the value part defined in 3GPP TS 24.008 only. I.e. the 3GPP TS 24.008 IEI
+-- and 3GPP TS 24.008 octet length indicator shall not be included.
+
+
+-- MSRadioAccessCapability notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+MSRadioAccessCapability ::=
+
+OCTET STRING (SIZE (1..50))
+-- MS Radio Access Capability describes the terminal capabilites relevant for the radio network,
+-- which may affect the way the network handles the mobile.
+-- For encoding refer to 3GPP TS 24.008 [12].
+-- It shall contain the value part defined in 3GPP TS 24.008 only. I.e. the 3GPP TS 24.008 IEI
+-- and 3GPP TS 24.008 octet length indicator shall not be included.
+
+
+-- NAOliInfo notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+NAOliInfo ::=
+
+OCTET STRING (SIZE (1))
+-- NA Oli information takes the same value as defined in ANSI T1.113-1995 [92]
+-- e.g. '3D'H - Decimal value 61 - Cellular Service (Type 1)
+-- '3E'H - Decimal value 62 - Cellular Service (Type 2)
+-- '3F'H - Decimal value 63 - Cellular Service (roaming)
+
+NatureOfServiceChange ::= ENUMERATED {
+ userInitiated (0),
+ networkInitiated (1)
+}
+
+NumberOfDigits ::= INTEGER (1..255)
+-- Indicates the number of digits to be collected.
+
+
+-- OCSIApplicable notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+OCSIApplicable ::= NULL
+-- Indicates that the Originating CAMEL Subscription Information, if present, shall be
+-- applied on the outgoing call leg created with a Connect operation. For the use of this
+-- parameter see 3GPP TS 23.078 [7].
+
+-- OriginalCalledPartyID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+OriginalCalledPartyID ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminOriginalCalledPartyIDLength ..cAPSpecificBoundSetmaxOriginalCalledPartyIDLength ))
+
+
+
+-- PDPId notes: not recursive, exported,
+-- locally refd 11 times, import refd 0 times
+PDPId ::=
+
+OCTET STRING (SIZE (1))
+
+-- PDPInitiationType notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+PDPInitiationType ::= ENUMERATED
+{
+ mSInitiated (0),
+ networkInitiated (1)
+}
+
+-- QualityOfService notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+QualityOfService ::=
+ SEQUENCE
+{
+ requested-QoS [0] GPRS-QoS OPTIONAL,
+ subscribed-QoS [1] GPRS-QoS OPTIONAL,
+ negotiated-QoS [2] GPRS-QoS OPTIONAL,
+ ...,
+ requested-QoS-Extension [3] GPRS-QoS-Extension OPTIONAL,
+ subscribed-QoS-Extension [4] GPRS-QoS-Extension OPTIONAL,
+ negotiated-QoS-Extension [5] GPRS-QoS-Extension OPTIONAL
+}
+
+-- ReceivingSideID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+ReceivingSideID ::= CHOICE
+{
+ receivingSideID [1] LegType
+}
+
+-- RedirectingPartyID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+RedirectingPartyID ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminRedirectingPartyIDLength ..cAPSpecificBoundSetmaxRedirectingPartyIDLength ))
+-- Indicates redirecting number.
+-- Refer to ETSI EN 300 356-1 [23] Redirecting number for encoding.
+
+
+-- RequestedInformationList notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RequestedInformationList ::=
+
+SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformation
+
+-- RequestedInformationTypeList notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RequestedInformationTypeList ::=
+
+SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformationType
+
+-- RequestedInformation notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RequestedInformation ::= SEQUENCE
+{
+ requestedInformationType [0] RequestedInformationType,
+ requestedInformationValue [1] RequestedInformationValue
+}
+
+-- RequestedInformationType notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RequestedInformationType ::= ENUMERATED
+{
+ callAttemptElapsedTime (0),
+ callStopTime (1),
+ callConnectedElapsedTime (2),
+ releaseCause (30)
+}
+
+-- RequestedInformationValue notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RequestedInformationValue ::= CHOICE
+{
+ callAttemptElapsedTimeValue [0] INTEGER (0..255),
+ callStopTimeValue [1] DateAndTime,
+ callConnectedElapsedTimeValue [2] Integer4,
+ releaseCauseValue [30] Cause
+}
+
+-- RPCause notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RPCause ::=
+
+OCTET STRING (SIZE (1))
+-- RP cause according to 3GPP TS 24.011 [10] or 3GPP TS 29.002 [11].
+-- GsmSCF shall send this cause in the ReleaseSMS operation.
+-- For a MO-SMS service, the MSC or SGSN shall send the RP Cause to the originating MS.
+-- It shall be used to overwrite the RP-Cause element in the RP-ERROR RPDU.
+-- For a MT-SMS service, the MSC or SGSN shall send the RP Cause to the sending SMS-GMSC.
+-- It shall be used to overwrite the RP-Cause element in the RP-ERROR RPDU.
+
+-- ScfID notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+ScfID ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminScfIDLength..cAPSpecificBoundSetmaxScfIDLength ))
+
+-- SCIBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+SCIBillingChargingCharacteristics ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminSCIBillingChargingLength ..cAPSpecificBoundSetmaxSCIBillingChargingLength ))
+
+-- SCIGPRSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+SCIGPRSBillingChargingCharacteristics ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminSCIBillingChargingLength ..cAPSpecificBoundSetmaxSCIBillingChargingLength ))
+
+-- SendingSideID notes: not recursive, exported,
+-- locally refd 4 times, import refd 0 times
+SendingSideID ::= CHOICE
+{
+ sendingSideID [0] LegType
+}
+
+-- ServiceInteractionIndicatorsTwo notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+ServiceInteractionIndicatorsTwo ::= SEQUENCE
+{
+ forwardServiceInteractionInd [0] ForwardServiceInteractionInd OPTIONAL,
+ backwardServiceInteractionInd [1] BackwardServiceInteractionInd OPTIONAL,
+ bothwayThroughConnectionInd [2] BothwayThroughConnectionInd OPTIONAL,
+ connectedNumberTreatmentInd [4] ConnectedNumberTreatmentInd OPTIONAL,
+ nonCUGCall [13] NULL OPTIONAL,
+ -- applicable to Connect and ContinueWithArgument
+ -- indicates that no parameters for CUG shall be used for the call (i.e. the call shall
+ -- be a non-CUG call).
+ -- If not present, it indicates one of three things:
+ -- a) continue with modified CUG information (when one or more of either CUG Interlock Code
+ -- and Outgoing Access Indicator are present), or
+ -- b) continue with original CUG information (when neither CUG Interlock Code or Outgoing
+ -- Access Indicator are present), i.e. no IN impact.
+ -- c) continue with the original non-CUG call.
+ holdTreatmentIndicator [50] OCTET STRING (SIZE (1)) OPTIONAL,
+ -- applicable to InitialDP, Connect and ContinueWithArgument
+ -- acceptHoldRequest 'xxxx xx01'B
+ -- rejectHoldRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect call hold treatment
+ cwTreatmentIndicator [51] OCTET STRING (SIZE (1)) OPTIONAL,
+ -- applicable to InitialDP, Connect and ContinueWithArgument
+ -- acceptCw 'xxxx xx01'B
+ -- rejectCw 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect call waiting treatment
+ ectTreatmentIndicator [52] OCTET STRING (SIZE (1)) OPTIONAL,
+ -- applicable to InitialDP, Connect and ContinueWithArgument
+ -- acceptEctRequest 'xxxx xx01'B
+ -- rejectEctRequest 'xxxx xx10'B
+ -- if absent from Connect or ContinueWithArgument,
+ -- then CAMEL service does not affect explicit call transfer treatment
+ ...
+}
+
+-- SGSNCapabilities notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SGSNCapabilities ::=
+
+
+OCTET STRING (SIZE (1))
+-- Indicates the SGSN capabilities. The coding of the parameter is as follows:
+-- Bit Value Meaning
+-- 0 0 AoC not supported by SGSN
+-- 1 AoC supported by SGSN
+-- 1 - This bit is reserved in CAP V.3
+-- 2 - This bit is reserved in CAP V.3
+-- 3 - This bit is reserved in CAP V.3
+-- 4 - This bit is reserved in CAP V.3
+-- 5 - This bit is reserved in CAP V.3
+-- 6 - This bit is reserved in CAP V.3
+-- 7 - This bit is reserved in CAP V.3
+
+SMS-AddressString ::= AddressString
+-- (SIZE (1 .. maxSMS-AddressStringLength))
+-- This data type is used to transport CallingPartyNumber for MT-SMS.
+-- If this data type is used for MO-SMS, then the maximum number of digits shall be 16.
+-- An SMS-AddressString may contain an alphanumeric character string. In this
+-- case, a nature of address indicator '101'B is used, in accordance with
+-- 3GPP TS 23.040 [6]. The address is coded in accordance with the GSM 7-bit
+-- default alphabet definition and the SMS packing rules as specified in
+-- 3GPP TS 23.038 [15] in this case.
+-- maxSMS-AddressStringLength INTEGER ::= 11
+
+SMSEvent ::= SEQUENCE
+{
+ eventTypeSMS [0] EventTypeSMS,
+ monitorMode [1] MonitorMode
+}
+
+-- TimeAndTimezone notes: not recursive, exported,
+-- locally refd 7 times, import refd 0 times
+TimeAndTimezone ::=
+ OCTET STRING (SIZE (cAPSpecificBoundSetminTimeAndTimezoneLength..cAPSpecificBoundSetmaxTimeAndTimezoneLength))
+-- Indicates the time and timezone, relative to GMT. This parameter is BCD encoded.
+-- The year digit indicating millenium occupies bits 0-3 of the first octet, and the year
+-- digit indicating century occupies bits 4-7 of the first octet.
+-- The year digit indicating decade occupies bits 0-3 of the second octet, whilst the digit
+-- indicating the year within the decade occupies bits 4-7 of the second octet.
+-- The most significant month digit occupies bits 0-3 of the third octet, and the least
+-- significant month digit occupies bits 4-7 of the third octet.
+-- The most significant day digit occupies bits 0-3 of the fourth octet, and the least
+-- significant day digit occupies bits 4-7 of the fourth octet.
+-- The most significant hours digit occupies bits 0-3 of the fifth octet, and the least
+-- significant hours digit occupies bits 4-7 of the fifth octet.
+-- The most significant minutes digit occupies bits 0-3 of the sixth octet, and the least
+-- significant minutes digit occupies bits 4-7 of the sixth octet.
+-- The most significant seconds digit occupies bits 0-3 of the seventh octet, and the least
+-- significant seconds digit occupies bits 4-7 of the seventh octet.
+--
+-- The timezone information occupies the eighth octet. For the encoding of Timezone refer to
+-- 3GPP TS 23.040 [6].
+--
+-- The BCD digits are packed and encoded as follows:
+--
+-- Bit 7 6 5 4 | 3 2 1 0
+-- 2nd digit | 1st digit Octet 1
+-- 3rd digit | 4th digit Octet 2
+-- .. ..
+-- nth digit | n-1th digit Octet m
+--
+-- 0000 digit 0
+-- 0001 digit 1
+-- 0010 digit 2
+-- 0011 digit 3
+-- 0100 digit 4
+-- 0101 digit 5
+-- 0110 digit 6
+-- 0111 digit 7
+-- 1000 digit 8
+-- 1001 digit 9
+-- 1010 spare
+-- 1011 spare
+-- 1100 spare
+-- 1101 spare
+-- 1110 spare
+-- 1101 spare
+--
+-- where the leftmost bit of the digit is either bit 7 or bit 3 of the octet.
+
+-- TimeIfNoTariffSwitch notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TimeIfNoTariffSwitch ::= INTEGER (0..864000)
+
+-- TimeIfTariffSwitch notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TimeIfTariffSwitch ::= SEQUENCE
+{
+ timeSinceTariffSwitch [0] INTEGER (0..864000),
+ tttariffSwitchInterval [1] INTEGER (1..864000) OPTIONAL
+}
+
+-- TimeInformation notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TimeInformation ::= CHOICE
+{
+ timeIfNoTariffSwitch [0] TimeIfNoTariffSwitch,
+ timeIfTariffSwitch [1] TimeIfTariffSwitch
+}
+
+
+-- TimerID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+TimerID ::= ENUMERATED
+{
+ tssf (0)
+}
+
+-- TimerValue notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+TimerValue ::= Integer4
+
+
+-- Tone notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Tone ::= SEQUENCE
+{
+ toneID [0] Integer4,
+ duration3 [1] Integer4 OPTIONAL
+}
+
+-- TPDataCodingScheme notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TPDataCodingScheme ::=
+
+OCTET STRING (SIZE (1))
+-- TP Data Coding Scheme according to 3GPP TS 23.040 [6]
+
+-- TPProtocolIdentifier notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TPProtocolIdentifier ::= OCTET STRING (SIZE (1))
+-- indicates the protocol used above the SM-Transfer Layer as specified in 3GPP TS 23.040 [6].
+
+TPShortMessageSpecificInfo ::= OCTET STRING (SIZE (1))
+-- contains the 1st octect of the applicable TPDU or the SMS-COMMAND TPDU as specified in
+-- 3GPP TS 23.040 [6].
+
+
+-- TPValidityPeriod notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TPValidityPeriod ::= OCTET STRING (SIZE (1..7))
+-- indicates the length of the validity period or the absolute time of the validity
+-- period termination as specified in 3GPP TS 23.040 [6].
+-- the length of ValidityPeriod is either 1 octet or 7 octets
+
+-- TransferredVolume notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TransferredVolume ::= CHOICE
+{
+ volumeIfNoTariffSwitch [0] INTEGER (0..4294967295),
+ volumeIfTariffSwitch [1] SEQUENCE
+ {
+ volumeSinceLastTariffSwitch [0] INTEGER (0..4294967295),
+ volumeTariffSwitchInterval [1] INTEGER (0..4294967295) OPTIONAL
+ }
+}
+-- volumeIfNoTariffSwitch, volumeSinceLastTariffSwitch and volumeTariffSwitchInterval
+-- are measured in bytes.
+
+
+TransferredVolumeRollOver ::= CHOICE {
+ rOVolumeIfNoTariffSwitch [0] INTEGER (0.. 255),
+ rOVolumeIfTariffSwitch [1] SEQUENCE {
+ rOVolumeSinceLastTariffSwitch [0] INTEGER (0.. 255) OPTIONAL,
+ rOVolumeTariffSwitchInterval [1] INTEGER (0.. 255) OPTIONAL
+ }
+}
+-- rO-VolumeIfNoTariffSwitch, rO-VolumeSinceLastTariffSwitch and rO-VolumeTariffSwitchInterval
+-- present counters indicating the number of parameter range rollovers.
+
+UnavailableNetworkResource ::= ENUMERATED {
+ unavailableResources (0),
+ componentFailure (1),
+ basicCallProcessingException (2),
+ resourceStatusFailure (3),
+ endUserFailure (4)
+}
+-- Indicates the network resource that failed.
+
+-- VariablePart notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+VariablePart ::= CHOICE
+{
+ integer [0] Integer4,
+ number [1] Digits,
+ time [2]
+ OCTET STRING (SIZE (2)),
+ date [3]
+ OCTET STRING (SIZE (4)),
+ price [4]
+ OCTET STRING (SIZE (4))
+}
+-- Indicates the variable part of the message. Time is BCD encoded.
+-- The most significant hours digit occupies bits 0-3 of the first octet, and the least
+-- significant digit occupies bits 4-7 of the first octet. The most significant minutes digit
+-- occupies bits 0-3 of the second octet, and the least significant digit occupies bits 4-7
+-- of the second octet.
+--
+-- Date is BCD encoded. The year digit indicating millenium occupies bits 0-3 of the first octet,
+-- and the year digit indicating century occupies bits 4-7 of the first octet. The year digit
+-- indicating decade occupies bits 0-3 of the second octet, whilst the digit indicating the year
+-- within the decade occupies bits 4-7 of the second octet.
+-- The most significant month digit occupies bits 0-3 of the third octet, and the least
+-- significant month digit occupies bits 4-7 of the third octet. The most significant day digit
+-- occupies bits 0-3 of the fourth octet, and the least significant day digit occupies bits 4-7
+-- of the fourth octet.
+-- Price is BCD encoded. The digit indicating hundreds of thousands occupies bits 0-3 of the
+-- first octet, and the digit indicating tens of thousands occupies bits 4-7 of the first octet.
+-- The digit indicating thousands occupies bits 0-3 of the second octet, whilst the digit
+-- indicating hundreds occupies bits 4-7 of the second octet. The digit indicating tens occupies
+-- bits 0-3 of the third octet, and the digit indicating 0 to 9 occupies bits 4-7 of the third
+-- octet. The tenths digit occupies bits 0-3 of the fourth octet, and the hundredths digit
+-- occupies bits 4-7 of the fourth octet.
+--
+-- For the encoding of digits in an octet, refer to the timeAndtimezone parameter
+
+-- SpecializedResourceReportArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+-- SpecializedResourceReportArg ::= NULL
+SpecializedResourceReportArg ::= CHOICE {
+ allAnnouncementsComplete [50] NULL,
+ firstAnnouncementStarted [51] NULL
+}
+
+-- CUG-Interlock notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+-- imported from gsmmap
+-- CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+-- CUG-Index notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+-- imported from gsmmap
+-- CUG-Index ::= INTEGER (0..32767)
+
+-- CallReferenceNumber notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallReferenceNumber ::= OCTET STRING (SIZE (1..8))
+
+-- SuppressionOfAnnouncement notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+SuppressionOfAnnouncement ::= NULL
+
+-- NotReachableReason notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+NotReachableReason ::= ENUMERATED
+{
+ msPurged (0),
+ imsiDetached (1),
+ restrictedArea (2),
+ notRegistred (3)
+}
+
+-- AddressString notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+AddressString ::=
+
+
+ OCTET STRING (SIZE(1..maxAddressLength))
+
+-- LAIFixedLength notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+-- IMPORTED fom GSM MAP
+-- LAIFixedLength ::= OCTET STRING (SIZE (5))
+ -- Refers to Location Area Identification defined in TS GSM 03.03.
+ -- Octets ares encoded according to TS GSM 04.08.
+ -- The internal structure is defined as follows:
+ -- Mobile Country Code: 3 digits according to CCITT Rec E.212.
+ -- 1 digits filler (1111)
+ -- Mobile Network Code: 2 digits according to CCITT Rec E.212.
+ -- Location Area Code: 2 octets according to TS GSM 04.08.
+
+
+-- ServiceKey notes: not recursive, exported,
+-- locally refd 6 times, import refd 0 times
+ServiceKey ::= INTEGER (0..2147483647)
+
+
+-- Duration notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Duration ::= INTEGER (-2..86400)
+
+-- Integer4 notes: not recursive, exported,
+-- locally refd 8 times, import refd 0 times
+Integer4 ::= INTEGER (0..2147483647)
+
+-- Interval notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Interval ::= INTEGER (-1..60000)
+
+-- CallingPartysCategory notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+CallingPartysCategory ::=
+
+OCTET STRING (SIZE (1))
+
+-- RedirectionInformation notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RedirectionInformation ::=
+
+ OCTET STRING (SIZE (2))
+
+-- HighLayerCompatibility notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+HighLayerCompatibility ::=
+
+OCTET STRING (SIZE (highLayerCompatibilityLength))
+
+-- BothwayThroughConnectionInd notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+BothwayThroughConnectionInd ::= ENUMERATED
+{
+ bothwayPathRequired (0),
+ bothwayPathNotRequired (1)
+}
+
+
+-- TCInvokeIdSet notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+-- TCInvokeIdSet ::= INTEGER (-128..127)
+
+-- ExtensionSetExtensionType notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+-- FIXME: add to decode this: ExtensionSetExtensionType ::= ANY
+
+
+-- ExtensionSetextensionId notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ExtensionSetextensionId ::= OBJECT IDENTIFIER
+
+
+-- Import from GSM MAP
+-- GSN-Address ::= OCTET STRING (SIZE (5..17))
+
+
+
+-- PDPType notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+-- Equivalent to EndUserAddress
+PDPType ::= SEQUENCE
+{
+ pDPTypeOrganization [0] PDPTypeOrganization,
+ pDPTypeNumber [1] PDPTypeNumber,
+ pDPAddress [2] PDPAddress OPTIONAL
+}
+
+PDPTypeOrganization ::= OCTET STRING (SIZE (1))
+
+PDPTypeNumber ::= OCTET STRING (SIZE (1))
+
+PDPAddress ::= OCTET STRING (SIZE (cAPSpecificBoundSetminPDPAddressLength..cAPSpecificBoundSetmaxPDPAddressLength))
+
+-- Indicates the PDPType, refer to 3GPP TS 29.060 for the encoding.
+-- The pDPTypeOrganization shall use the least significant 4 bits of the octet encoded.
+-- The sender of this parameter shall set the most significant 4 bit of the octet to 0.
+-- The receiver of this parameter shall ignore the most significant 4 bits of this octet.
+-- TS 29.060 "The PDP Type Organisation and PDP Type Number are encoded as in the End User Address information element."
+
+-- Code notes: not recursive, exported,
+-- locally refd 63 times, import refd 0 times
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+-- PCS-Extensions notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PCS-Extensions ::= SEQUENCE
+{
+ foo INTEGER (0) OPTIONAL
+}
+
+
+
+-- MiscCallInfo notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+MiscCallInfo ::= SEQUENCE
+{
+ messageType [0] ENUMERATED
+ {
+ request (0),
+ notification (1)
+ }
+}
+
+-- SupportedExtensionsExtensionType notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SupportedExtensionsExtensionType ::= CHOICE
+{
+ firstExtensionExtensionType NULL --,
+ -- secondExtensionExtensionType NULL
+}
+
+-- PrivateExtension notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PrivateExtension ::= SEQUENCE
+{
+ extId ExtensionSetextensionId
+ -- FIXME: add to decode this: extType ExtensionSetExtensionType OPTIONAL
+}
+
+
+FreeFormatData ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminSCIBillingChargingLength..cAPSpecificBoundSetmaxSCIBillingChargingLength ))
+
+
+-- 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 following encoding shall
+-- be applied for the non-decimal characters:
+-- 1011 (*), 1100 (#).
+
+
+
+-- ApplyChargingReportArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallresultoctetPDU ::= OCTET STRING (SIZE (cAPSpecificBoundSetminCallResultLength..cAPSpecificBoundSetmaxCallResultLength))
+
+--ApplyChargingReportArg ::= SEQUENCE {
+-- callresultOctet CallresultoctetPDU
+-- }
+-- (
+-- CONTAINING CamelCallResult
+-- ENCODED BY enc-BER
+-- )
+
+-- CallResult type
+ApplyChargingReportArg ::= SEQUENCE {
+ callresultOctet CAMEL-CallResult
+ }
+
+-- CancelArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CancelArg ::=
+
+CHOICE
+{
+ callInvokeID [0] InvokeID,
+ allRequests [1] NULL,
+ callSegmentToCancel [2] CallSegmentToCancel
+
+}
+
+CollectInformationArg ::= SEQUENCE {
+ extensions [0] ExtensionsArray OPTIONAL,
+ ...
+ }
+
+-- FurnishChargingInformationArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+FurnishChargingInformationArg ::= CAMEL-FCIBillingChargingCharacteristics
+
+-- FCIBillingChargingCharacteristics type.
+
+-- ReleaseCallArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+-- ReleaseCallArg ::= OCTET STRING (SIZE (minCauseLength..32))
+ReleaseCallArg ::= Q850Cause
+
+Q850Cause ::=OCTET STRING (SIZE (cAPSpecificBoundSetminCauseLength..cAPSpecificBoundSetminCauseLength))
+
+-- Cause notes: not recursive, exported,
+-- locally refd 10 times, import refd 0 times
+Cause ::= OCTET STRING (SIZE (cAPSpecificBoundSetminCauseLength..cAPSpecificBoundSetmaxCauseLength))
+
+--
+-- ReceivedInformationArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ReceivedInformationArg ::=
+
+CHOICE
+{
+ digitsResponse [0] Digits
+}
+
+-- FurnishChargingInformationSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+FurnishChargingInformationSMSArg ::=
+
+
+OCTET STRING (SIZE (5..225))
+-- FCISMSBillingChargingCharacteristics type.
+
+
+-- ConnectGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectGPRSArg ::=
+
+ SEQUENCE
+{
+ accessPointName [0] AccessPointName,
+ pdpID [1] PDPId OPTIONAL,
+ ...
+}
+
+
+
+-- EntityReleasedGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EntityReleasedGPRSArg ::=
+
+ SEQUENCE
+{
+ gPRSCause [0] GPRSCause,
+ pDPID [1] PDPId OPTIONAL,
+ ...
+}
+
+-- ReleaseGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ReleaseGPRSArg ::=
+
+ SEQUENCE
+{
+ gprsCause [0] GPRSCause,
+ pDPID [1] PDPId OPTIONAL,
+ ...
+}
+
+-- RequestReportGPRSEventArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RequestReportGPRSEventArg ::=
+
+ SEQUENCE
+{
+ gPRSEvent [0] GPRSEventArray,
+ pDPID [1] PDPId OPTIONAL,
+ ...
+}
+
+GPRSEventArray ::=
+ SEQUENCE SIZE (1..cAPSpecificBoundSetnumOfGPRSEvents) OF GPRSEvent
+
+-- SendChargingInformationGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SendChargingInformationGPRSArg ::=
+
+ SEQUENCE
+{
+ sCIGPRSBillingChargingCharacteristics [0] SCIGPRSBillingChargingCharacteristics,
+ ...
+}
+
+
+
+-- SubscriberState notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SubscriberState ::=
+CHOICE
+{
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL
+}
+
+-- PrivateExtensionList notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PrivateExtensionList ::=
+
+SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF PrivateExtension
+
+-- ISDN-AddressString notes: not recursive, exported,
+-- locally refd 9 times, import refd 0 times
+ISDN-AddressString ::= OCTET STRING (SIZE(1..maxISDN-AddressLength))
+
+
+-- LegID notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+LegID ::= CHOICE
+{
+ sendingSideID [0] LegType,
+ receivingSideID [1] LegType
+}
+
+
+VariablePartsArray ::= SEQUENCE SIZE (1..5) OF VariablePart
+
+
+-- InitialDPArgExtension notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+-- Updated from ETSI TS 129 078 V6.4.0 (2004-3GPP TS 29.078 version 6.4.0 Release 6 1 12)
+InitialDPArgExtension ::= SEQUENCE {
+ gmscAddress [0] ISDN-AddressString OPTIONAL,
+ forwardingDestinationNumber [1] CalledPartyNumber OPTIONAL,
+ ms-Classmark2 [2] MS-Classmark2 OPTIONAL,
+ iMEI [3] IMEI OPTIONAL,
+ supportedCamelPhases [4] SupportedCamelPhases OPTIONAL,
+ offeredCamel4Functionalities [5] OfferedCamel4Functionalities OPTIONAL,
+ bearerCapability2 [6] BearerCapability OPTIONAL,
+ ext-basicServiceCode2 [7] Ext-BasicServiceCode OPTIONAL,
+ highLayerCompatibility2 [8] HighLayerCompatibility OPTIONAL,
+ lowLayerCompatibility [9] LowLayerCompatibility OPTIONAL,
+ lowLayerCompatibility2 [10] LowLayerCompatibility OPTIONAL,
+ ...,
+ enhancedDialledServicesAllowed [11] NULL OPTIONAL,
+ uu-Data [12] UU-Data OPTIONAL,
+ collectInformationAllowed [13] NULL OPTIONAL
+}
+
+
+InitiateCallAttemptArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ extensions [4] ExtensionsArray OPTIONAL,
+ legToBeCreated [5] LegID OPTIONAL,
+ newCallSegment [6] CallSegmentID OPTIONAL,
+ callingPartyNumber [30] CallingPartyNumber OPTIONAL,
+ callReferenceNumber [51] CallReferenceNumber OPTIONAL,
+ gsmSCFAddress [52] ISDN-AddressString OPTIONAL,
+ suppress-T-CSI [53] NULL OPTIONAL,
+ ...
+ }
+
+InitiateCallAttemptRes ::= SEQUENCE {
+ supportedCamelPhases [0] SupportedCamelPhases OPTIONAL,
+ offeredCamel4Functionalities [1] OfferedCamel4Functionalities OPTIONAL,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+ }
+
+MoveLegArg ::= SEQUENCE{
+ legIDToMove [0] LegID,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+ }
+
+PlayToneArg ::= SEQUENCE {
+ legOrCallSegment [0] LegOrCallSegment,
+ bursts [1] Burst,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+ }
+
+CellGlobalIdOrServiceAreaIdOrLAI ::= OCTET STRING (SIZE (5..7))
+
+-- The 3GPP TS 29.078 standard, about cellGlobalIdOrServiceAreaIdOrLAI:
+-- "CellGlobalIdOrServiceAreaIdOrLAI and LSAIdentity are coded in accordance with
+-- 3GPP TS 29.002 [13].
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity."
+
+-- GPP TS 29.078 version 6.4.0 Release 6 has it as:
+-- CellGlobalIdOrServiceAreaIdFixedLength type or the LAIFixedLength type (i.e. excluding tags
+-- and lengths) as defined in 3GPP TS 29.002 [13].
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+
+-- 3GPP TS 29.002 [13] gives the folowing coding for CellGlobalIdOrServiceAreaIdOrLAI:
+-- CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+-- cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
+-- laiFixedLength [1] LAIFixedLength
+-- }
+--
+-- CellGlobalIdOrServiceAreaIdFixedLength ::=
+-- implement size < 8 --
+-- OCTET STRING (SIZE (7))
+-- This coding would disrupt the backward compatibillity, so the cellGlobalIdOrServiceAreaIdOrLAI
+-- parameter is set as an OCTET STRING, as it was in previous implementations.
+
+-- Local imports
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0 ),
+ phase2 (1 ),
+ phase3 (2 ),
+ phase4 (3 )}
+
+
+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.
+
+
+-- EventReportGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EventReportGPRSArg ::=
+
+ SEQUENCE
+{
+ gPRSEventType [0] GPRSEventType,
+ miscGPRSInfo [1] MiscCallInfo OPTIONAL,
+ gPRSEventSpecificInformation [2] GPRSEventSpecificInformation OPTIONAL,
+ pDPID [3] PDPId OPTIONAL,
+ ...
+}
+
+-- SupportedExtensionsid notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SupportedExtensionsid ::= Code
+-- Creation d'un nouveau type : NomObjetClasse-NomChampsClasse --
+
+
+-- ExtensionField notes: not recursive, exported,
+-- locally refd 24 times, import refd 0 times
+ExtensionField ::= SEQUENCE
+{
+ type SupportedExtensionsid,
+ criticality CriticalityType DEFAULT ignore,
+ value [1] SupportedExtensionsExtensionType,
+ ...
+}
+
+
+
+-- ApplyChargingArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ApplyChargingArg ::= SEQUENCE
+{
+ aChBillingChargingCharacteristics [0] AChBillingChargingCharacteristics,
+ partyToCharge1 [2] SendingSideID DEFAULT '01'H,
+ extensions [3] ExtensionsArray OPTIONAL,
+ aChChargingAddress [50] AChChargingAddress,
+ ...
+}
+
+ExtensionsArray ::= SEQUENCE SIZE (1..cAPSpecificBoundSetnumOfExtensions) OF ExtensionField
+
+
+-- AssistRequestInstructionsArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+AssistRequestInstructionsArg ::=
+
+ SEQUENCE
+{
+ correlationID [0] CorrelationID,
+ iPSSPCapabilities [2] IPSSPCapabilities,
+ extensions [3] ExtensionsArray OPTIONAL,
+ ...
+}
+
+
+
+-- CallInformationRequestArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallInformationRequestArg ::=
+
+ SEQUENCE
+{
+ requestedInformationTypeList [0] RequestedInformationTypeList,
+ extensions [2] ExtensionsArray OPTIONAL,
+ legID3 [3] SendingSideID OPTIONAL,
+ ...
+}
+
+
+
+-- ConnectArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectArg ::=
+
+ SEQUENCE
+{
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ extensions [10] ExtensionsArray OPTIONAL,
+ carrier [11] Carrier OPTIONAL,
+ callingPartysCategory [28] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ genericNumbers [14] GenericNumbers OPTIONAL,
+ serviceInteractionIndicatorsTwo [15] ServiceInteractionIndicatorsTwo OPTIONAL,
+ chargeNumber [19] ChargeNumber OPTIONAL,
+ legToBeConnected [21] LegID OPTIONAL,
+ cug-Interlock [31] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [32] NULL OPTIONAL,
+ suppressionOfAnnouncement [55] SuppressionOfAnnouncement OPTIONAL,
+ oCSIApplicable [56] OCSIApplicable OPTIONAL,
+ naOliInfo [57] NAOliInfo OPTIONAL,
+ bor-InterrogationRequested [58] NULL OPTIONAL,
+ ...,
+ suppress-N-CSI [59] NULL OPTIONAL
+}
+
+-- ConnectToResourceArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectToResourceArg ::=
+
+ SEQUENCE
+{
+ resourceAddress CHOICE
+ {
+ ipRoutingAddress [0] IPRoutingAddress,
+ none [3] NULL
+ },
+ extensions [4] ExtensionsArray OPTIONAL,
+ serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callSegmentID [50] CallSegmentID OPTIONAL,
+ ...
+}
+
+
+
+-- ContinueWithArgumentArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ContinueWithArgumentArg ::=
+
+ SEQUENCE
+{
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ extensions [6] ExtensionsArray OPTIONAL,
+ serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callingPartysCategory [12] CallingPartysCategory OPTIONAL,
+ genericNumbers [16] GenericNumbers OPTIONAL,
+ cug-Interlock [17] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [18] NULL OPTIONAL,
+ chargeNumber [50] ChargeNumber OPTIONAL,
+ carrier [52] Carrier OPTIONAL,
+ suppressionOfAnnouncement [55] SuppressionOfAnnouncement OPTIONAL,
+ naOliInfo [56] NAOliInfo OPTIONAL,
+ bor-InterrogationRequested [57] NULL OPTIONAL,
+ suppress-O-CSI [58] NULL OPTIONAL,
+ continueWithArgumentArgExtension [59] ContinueWithArgumentArgExtension OPTIONAL,
+ ...
+}
+
+ContinueWithArgumentArgExtension ::= SEQUENCE {
+ suppress-D-CSI [0] NULL OPTIONAL,
+ suppress-N-CSI [1] NULL OPTIONAL,
+ suppressOutgoingCallBarring [2] NULL OPTIONAL,
+ legOrCallSegment [3] LegOrCallSegment OPTIONAL,
+ ...
+ }
+
+DisconnectLegArg ::= SEQUENCE {
+ legToBeReleased [0] LegID,
+ releaseCause [1] Cause OPTIONAL,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+ }
+EntityReleasedArg ::= CHOICE {
+ callSegmentFailure [0] CallSegmentFailure,
+ bCSM-Failure [1] BCSM-Failure
+ }
+
+DisconnectForwardConnectionWithArgumentArg ::= SEQUENCE {
+ callSegmentID [1] CallSegmentID OPTIONAL,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+ }
+
+-- EstablishTemporaryConnectionArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EstablishTemporaryConnectionArg ::=
+
+ SEQUENCE
+{
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress,
+ correlationID [1] CorrelationID OPTIONAL,
+ scfID [3] ScfID OPTIONAL,
+ extensions [4] ExtensionsArray OPTIONAL,
+ carrier [5] Carrier OPTIONAL,
+ serviceInteractionIndicatorsTwo [6] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callSegmentID [7] CallSegmentID OPTIONAL,
+ naOliInfo [50] NAOliInfo OPTIONAL,
+ chargeNumber [51] ChargeNumber OPTIONAL,
+ ...,
+ originalCalledPartyID [52] OriginalCalledPartyID OPTIONAL,
+ callingPartyNumber [53] CallingPartyNumber OPTIONAL
+}
+
+
+-- EventReportBCSMArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EventReportBCSMArg ::=
+
+ SEQUENCE
+{
+ eventTypeBCSM [0] EventTypeBCSM,
+ eventSpecificInformationBCSM [2] EventSpecificInformationBCSM OPTIONAL,
+ legID4 [3] ReceivingSideID OPTIONAL,
+ miscCallInfo [4] MiscCallInfo OPTIONAL,
+ extensions [5] ExtensionsArray OPTIONAL,
+ ...
+}
+
+
+
+-- ResetTimerArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ResetTimerArg ::=
+
+ SEQUENCE
+{
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions [2] ExtensionsArray OPTIONAL,
+ callSegmentID [3] CallSegmentID OPTIONAL,
+ ...
+}
+
+
+
+-- SendChargingInformationArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SendChargingInformationArg ::=
+
+ SEQUENCE
+{
+ sCIBillingChargingCharacteristics [0] SCIBillingChargingCharacteristics,
+ partyToCharge2 [1] SendingSideID,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+}
+
+SplitLegArg ::= SEQUENCE {
+ legToBeSplit [0] LegID,
+ newCallSegment [1] CallSegmentID OPTIONAL,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+ }
+
+CAPGPRSReferenceNumber ::= SEQUENCE {
+ destinationReference [0] EXPLICIT Integer4 OPTIONAL,
+ originationReference [1] EXPLICIT Integer4 OPTIONAL
+ }
+
+-- EventReportSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EventReportSMSArg ::=
+
+ SEQUENCE
+{
+ eventTypeSMS [0] EventTypeSMS,
+ eventSpecificInformationSMS [1] EventSpecificInformationSMS OPTIONAL,
+ miscCallInfo [2] MiscCallInfo OPTIONAL,
+ extensions [10] ExtensionsArray OPTIONAL,
+ ...
+}
+
+
+
+-- ResetTimerSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ResetTimerSMSArg ::=
+
+ SEQUENCE
+{
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+}
+
+
+
+
+-- RequestReportBCSMEventArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RequestReportBCSMEventArg ::=
+
+ SEQUENCE
+{
+ bcsmEvents [0] BCSMEventArray,
+ extensions [2] ExtensionsArray OPTIONAL,
+ ...
+}
+
+BCSMEventArray ::=
+ SEQUENCE SIZE (1..cAPSpecificBoundSetnumOfBCSMEvents) OF BCSMEvent
+
+
+
+-- ConnectSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectSMSArg ::=
+
+ SEQUENCE
+{
+ callingPartysNumber [0] SMS-AddressString OPTIONAL,
+ destinationSubscriberNumber [1] CalledPartyBCDNumber OPTIONAL,
+ sMSCAddress [2] ISDN-AddressString OPTIONAL,
+ extensions [10] ExtensionsArray OPTIONAL,
+ ...
+}
+
+
+-- CallInformationReportArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallInformationReportArg ::=
+
+ SEQUENCE
+{
+ requestedInformationList [0] RequestedInformationList,
+ extensions [2] ExtensionsArray OPTIONAL,
+ legID5 [3] ReceivingSideID OPTIONAL,
+ ...
+}
+
+
+
+-- PlayAnnouncementArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PlayAnnouncementArg ::=
+
+ SEQUENCE
+{
+ informationToSend [0] InformationToSend,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ requestAnnouncementComplete [2] BOOLEAN DEFAULT TRUE,
+ extensions [3] ExtensionsArray OPTIONAL,
+ callSegmentID [5] CallSegmentID OPTIONAL,
+ requestAnnouncementStartedNotification [51] BOOLEAN DEFAULT FALSE,
+ ...
+}
+
+
+
+-- PromptAndCollectUserInformationArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PromptAndCollectUserInformationArg ::=
+
+ SEQUENCE
+{
+ collectedInfo [0] CollectedInfo,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ informationToSend [2] InformationToSend OPTIONAL,
+ extensions [3] ExtensionsArray OPTIONAL,
+ callSegmentID [5] CallSegmentID OPTIONAL,
+ requestAnnouncementStartedNotification [51] BOOLEAN DEFAULT FALSE,
+ ...
+}
+
+--furnishChargingInformationGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
+-- ARGUMENT FurnishChargingInformationGPRSArg {bound}
+-- RETURN RESULT FALSE
+-- ERRORS {missingParameter |
+-- taskRefused |
+-- unexpectedComponentSequence |
+-- unexpectedDataValue |
+-- unexpectedParameter |
+-- unknownPDPID}
+-- CODE opcode-furnishChargingInformationGPRS}
+-- Direction: gsmSCF -> gprsSSF, Timer: Tfcig
+-- This operation is used to request the gprsSSF to generate, register a logical record or to
+-- include some information in the default logical GPRS record.
+-- The registered logical record is intended for off line charging of the GPRS session
+-- or PDP Context.
+
+-- FurnishChargingInformationGPRSArg {PARAMETERS-BOUND : bound} ::=
+-- FCIGPRSBillingChargingCharacteristics{bound}
+
+FurnishChargingInformationGPRSArg ::= FCIGPRSBillingChargingCharacteristics
+
+
+-- InitialDPGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InitialDPGPRSArg ::=
+
+ SEQUENCE
+{
+ serviceKey [0] ServiceKey,
+ gPRSEventType [1] GPRSEventType,
+ mSISDN [2] ISDN-AddressString,
+ iMSI [3] IMSI,
+ timeAndTimeZone [4] TimeAndTimezone,
+ gPRSMSClass [5] GPRSMSClass OPTIONAL,
+ pDPType [6] PDPType OPTIONAL,
+ qualityOfService [7] QualityOfService OPTIONAL,
+ accessPointName [8] AccessPointName OPTIONAL,
+ routeingAreaIdentity [9] RAIdentity OPTIONAL,
+ chargingID [10] GPRSChargingID OPTIONAL,
+ sGSNCapabilities [11] SGSNCapabilities OPTIONAL,
+ locationInformationGPRS [12] LocationInformationGPRS OPTIONAL,
+ pDPInitiationType [13] PDPInitiationType OPTIONAL,
+ extensions [14] ExtensionsArray OPTIONAL,
+ ...,
+ gGSNAddress [15] GSN-Address OPTIONAL,
+ secondaryPDPContext [16] NULL OPTIONAL,
+ iMEI [17] IMEI OPTIONAL
+}
+
+
+
+-- CallGapArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallGapArg ::=
+
+ SEQUENCE
+{
+ gapCriteria [0] GapCriteria,
+ gapIndicators [1] GapIndicators,
+ controlType [2] ControlType OPTIONAL,
+ gapTreatment [3] GapTreatment OPTIONAL,
+ extensions [4] ExtensionsArray OPTIONAL,
+ ...
+}
+
+
+
+-- InitialDPArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InitialDPArg ::=
+
+ SEQUENCE
+{
+ serviceKey [0] ServiceKey,
+ calledPartyNumber [2] CalledPartyNumber OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [5] CallingPartysCategory OPTIONAL,
+ cGEncountered [7] CGEncountered OPTIONAL,
+ iPSSPCapabilities [8] IPSSPCapabilities OPTIONAL,
+ locationNumber [10] LocationNumber OPTIONAL,
+ originalCalledPartyID [12] OriginalCalledPartyID OPTIONAL,
+ extensions [15] ExtensionsArray OPTIONAL,
+ highLayerCompatibility [23] HighLayerCompatibility OPTIONAL,
+ additionalCallingPartyNumber [25] AdditionalCallingPartyNumber OPTIONAL,
+ bearerCapability [27] BearerCapability OPTIONAL,
+ eventTypeBCSM [28] EventTypeBCSM OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ cause [17] Cause OPTIONAL,
+ serviceInteractionIndicatorsTwo [32] ServiceInteractionIndicatorsTwo OPTIONAL,
+ carrier [37] Carrier OPTIONAL,
+ cug-Index [45] CUG-Index OPTIONAL,
+ cug-Interlock [46] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [47] NULL OPTIONAL,
+ iMSI [50] IMSI OPTIONAL,
+ subscriberState [51] SubscriberState OPTIONAL,
+ locationInformation [52] LocationInformation OPTIONAL,
+ ext-basicServiceCode [53] Ext-BasicServiceCode OPTIONAL,
+ callReferenceNumber [54] CallReferenceNumber OPTIONAL,
+ mscAddress [55] ISDN-AddressString OPTIONAL,
+ calledPartyBCDNumber [56] CalledPartyBCDNumber OPTIONAL,
+ timeAndTimezone [57] TimeAndTimezone OPTIONAL,
+ gsm-ForwardingPending [58] NULL OPTIONAL,
+ initialDPArgExtension [59] InitialDPArgExtension OPTIONAL,
+ ...
+}
+
+
+
+-- InitialDPSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InitialDPSMSArg ::=
+
+ SEQUENCE
+{
+ serviceKey [0] ServiceKey,
+ destinationSubscriberNumber [1] CalledPartyBCDNumber OPTIONAL,
+ callingPartyNumberas [2] SMS-AddressString OPTIONAL,
+ eventTypeSMS [3] EventTypeSMS OPTIONAL,
+ iMSI [4] IMSI OPTIONAL,
+ locationInformationMSC [5] LocationInformation OPTIONAL,
+ locationInformationGPRS [6] LocationInformationGPRS OPTIONAL,
+ sMSCAddress [7] ISDN-AddressString OPTIONAL,
+ timeAndTimezone [8] TimeAndTimezone OPTIONAL,
+ tPShortMessageSpecificInfo [9] TPShortMessageSpecificInfo OPTIONAL,
+ tPProtocolIdentifier [10] TPProtocolIdentifier OPTIONAL,
+ tPDataCodingScheme [11] TPDataCodingScheme OPTIONAL,
+ tPValidityPeriod [12] TPValidityPeriod OPTIONAL,
+ extensions [13] ExtensionsArray OPTIONAL,
+ ...,
+ smsReferenceNumber [14] CallReferenceNumber OPTIONAL,
+ mscAddress [15] ISDN-AddressString OPTIONAL,
+ sgsnNumber [16] ISDN-AddressString OPTIONAL,
+ ms-Classmark2 [17] MS-Classmark2 OPTIONAL,
+ gPRSMSClass [18] GPRSMSClass OPTIONAL,
+ iMEI [19] IMEI OPTIONAL,
+ calledPartyNumberSMS [20] ISDN-AddressString OPTIONAL
+}
+
+-- ReleaseSMSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ReleaseSMSArg ::= RPCause
+
+-- RequestReportSMSEventArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RequestReportSMSEventArg ::=
+
+ SEQUENCE
+{
+ sMSEvents [0] SMSEventArray,
+ extensions [10] ExtensionsArray OPTIONAL,
+ ...
+}
+
+SMSEventArray ::=
+ SEQUENCE SIZE (1..cAPSpecificBoundSetnumOfSMSEvents) OF SMSEvent
+
+
+-- ExtensionContainer notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ExtensionContainer ::= SEQUENCE
+{
+ privateExtensionList [0] PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1] PCS-Extensions OPTIONAL
+}
+
+
+
+-- ApplyChargingGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ApplyChargingGPRSArg ::= SEQUENCE
+{
+ chargingCharacteristics [0] ChargingCharacteristics,
+ tariffSwitchInterval [1] INTEGER (1..86400) OPTIONAL,
+ pDPID [2] PDPId OPTIONAL,
+ ...
+}
+
+-- CriticalityType notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+CriticalityType ::= ENUMERATED
+{
+ ignore (0),
+ abort (1)
+}
+
+-- ApplyChargingReportGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ApplyChargingReportGPRSArg ::=
+
+ SEQUENCE
+{
+ chargingResult [0] ChargingResult,
+ qualityOfService [1] QualityOfService OPTIONAL,
+ active [2] BOOLEAN DEFAULT TRUE,
+ pDPID [3] PDPId OPTIONAL,
+ ...,
+ chargingRollOver [4] ChargingRollOver OPTIONAL
+}
+
+-- CancelGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+CancelGPRSArg ::=
+
+ SEQUENCE
+{
+ pDPID [0] PDPId OPTIONAL,
+ ...
+}
+
+-- ContinueGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ContinueGPRSArg ::=
+
+ SEQUENCE
+{
+ pDPID [0] PDPId OPTIONAL,
+ ...
+}
+
+-- ResetTimerGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ResetTimerGPRSArg ::=
+
+ SEQUENCE
+{
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ ...
+}
+
+-- #############################
+-- Definition of range constants
+-- #############################
+
+leg1 LegType ::= '01'H
+leg2 LegType ::= '02'H
+
+numOfInfoItems INTEGER ::= 4
+
+opcode-initialDP Code ::= 0
+opcode-assistRequestInstructions Code ::= 16
+opcode-establishTemporaryConnection Code ::= 17
+opcode-disconnectForwardConnection Code ::= 18
+opcode-dFCWithArgument Code ::= 86
+opcode-connectToResource Code ::= 19
+opcode-connect Code ::= 20
+opcode-releaseCall Code ::= 22
+opcode-requestReportBCSMEvent Code ::= 23
+opcode-eventReportBCSM Code ::= 24
+opcode-collectInformation Code ::= 27
+opcode-continue Code ::= 31
+opcode-initiateCallAttempt Code ::= 32
+-- opcode-continueWithArgument Code ::= 56 (should be 88)
+opcode-resetTimer Code ::= 33
+opcode-furnishChargingInformation Code ::= 34
+opcode-applyCharging Code ::= 35
+opcode-applyChargingReport Code ::= 36
+opcode-callGap Code ::= 41
+opcode-callInformationReport Code ::= 44
+opcode-callInformationRequest Code ::= 45
+opcode-sendChargingInformation Code ::= 46
+opcode-playAnnouncement Code ::= 47
+opcode-promptAndCollectUserInformation Code ::= 48
+opcode-specializedResourceReport Code ::= 49
+opcode-cancel Code ::= 53
+opcode-activityTest Code ::= 55
+opcode-initialDPSMS Code ::= 60
+opcode-furnishChargingInformationSMS Code ::= 61
+opcode-connectSMS Code ::= 62
+opcode-requestReportSMSEvent Code ::= 63
+opcode-eventReportSMS Code ::= 64
+opcode-continueSMS Code ::= 65
+opcode-releaseSMS Code ::= 66
+opcode-resetTimerSMS Code ::= 67
+opcode-activityTestGPRS Code ::= 70
+opcode-applyChargingGPRS Code ::= 71
+opcode-applyChargingReportGPRS Code ::= 72
+opcode-cancelGPRS Code ::= 73
+opcode-connectGPRS Code ::= 74
+opcode-continueGPRS Code ::= 75
+opcode-entityReleasedGPRS Code ::= 76
+opcode-furnishChargingInformationGPRS Code ::= 77
+opcode-initialDPGPRS Code ::= 78
+opcode-releaseGPRS Code ::= 79
+opcode-eventReportGPRS Code ::= 80
+opcode-requestReportGPRSEvent Code ::= 81
+opcode-resetTimerGPRS Code ::= 82
+opcode-sendChargingInformationGPRS Code ::= 83
+opcode-continueWithArgument Code ::= 88
+opcode-disconnectLeg Code ::= 90
+opcode-moveLeg Code ::= 93
+opcode-splitLeg Code ::= 95
+opcode-entityReleased Code ::= 96
+opcode-playTone Code ::= 97
+
+errcode-canceled Code ::= 0
+errcode-cancelFailed Code ::= 1
+errcode-eTCFailed Code ::= 3
+errcode-improperCallerResponse Code ::= 4
+errcode-missingCustomerRecord Code ::= 6
+errcode-missingParameter Code ::= 7
+errcode-parameterOutOfRange Code ::= 8
+errcode-requestedInfoError Code ::= 10
+errcode-systemFailure Code ::= 11
+errcode-taskRefused Code ::= 12
+errcode-unavailableResource Code ::= 13
+errcode-unexpectedComponentSequence Code ::= 14
+errcode-unexpectedDataValue Code ::= 15
+errcode-unexpectedParameter Code ::= 16
+errcode-unknownLegID Code ::= 17
+errcode-unknownPDPId Code ::= 50
+errcode-unknownCSId Code ::= 51
+
+--cAPSpecificBoundSetnumOfExtensions INTEGER ::= 10
+maxNumOfPrivateExtensions INTEGER ::= 10
+
+--cAPSpecificBoundSetminCalledPartyBCDNumberLength INTEGER ::= 1
+--cAPSpecificBoundSetmaxCalledPartyBCDNumberLength INTEGER ::= 41
+maxISDN-AddressLength INTEGER ::= 9
+-- for AddressString
+maxAddressLength INTEGER ::= 20
+
+highLayerCompatibilityLength INTEGER ::= 2
+
+cAPSpecificBoundSetminAccessPointNameLength INTEGER ::= 1
+cAPSpecificBoundSetmaxAccessPointNameLength INTEGER ::= 100
+cAPSpecificBoundSetminAChBillingChargingLength INTEGER ::= 5
+cAPSpecificBoundSetmaxAChBillingChargingLength INTEGER ::= 177
+cAPSpecificBoundSetminAttributesLength INTEGER ::= 2
+cAPSpecificBoundSetmaxAttributesLength INTEGER ::= 10
+cAPSpecificBoundSetmaxBearerCapabilityLength INTEGER ::= 11
+cAPSpecificBoundSetminCalledPartyBCDNumberLength INTEGER ::= 1
+cAPSpecificBoundSetmaxCalledPartyBCDNumberLength INTEGER ::= 41
+cAPSpecificBoundSetminCalledPartyNumberLength INTEGER ::= 2
+cAPSpecificBoundSetmaxCalledPartyNumberLength INTEGER ::= 18
+cAPSpecificBoundSetminCallingPartyNumberLength INTEGER ::= 2
+cAPSpecificBoundSetmaxCallingPartyNumberLength INTEGER ::= 10
+cAPSpecificBoundSetminCallResultLength INTEGER ::= 12
+cAPSpecificBoundSetmaxCallResultLength INTEGER ::= 193
+cAPSpecificBoundSetminCarrierLength INTEGER ::= 4
+cAPSpecificBoundSetmaxCarrierLength INTEGER ::= 4
+cAPSpecificBoundSetminCauseLength INTEGER ::= 2
+cAPSpecificBoundSetmaxCauseLength INTEGER ::= 32
+cAPSpecificBoundSetminDigitsLength INTEGER ::= 2
+cAPSpecificBoundSetmaxDigitsLength INTEGER ::= 16
+cAPSpecificBoundSetminFCIBillingChargingDataLength INTEGER ::= 1
+cAPSpecificBoundSetmaxFCIBillingChargingDataLength INTEGER ::= 160
+cAPSpecificBoundSetminFCIBillingChargingLength INTEGER ::= 5
+cAPSpecificBoundSetmaxFCIBillingChargingLength INTEGER ::= 225
+cAPSpecificBoundSetminGenericNumberLength INTEGER ::= 3
+cAPSpecificBoundSetmaxGenericNumberLength INTEGER ::= 11
+cAPSpecificBoundSetminGPRSCauseLength INTEGER ::= 1
+cAPSpecificBoundSetmaxGPRSCauseLength INTEGER ::= 1
+cAPSpecificBoundSetminIPSSPCapabilitiesLength INTEGER ::= 1
+cAPSpecificBoundSetmaxIPSSPCapabilitiesLength INTEGER ::= 4
+cAPSpecificBoundSetminLocationNumberLength INTEGER ::= 2
+cAPSpecificBoundSetmaxLocationNumberLength INTEGER ::= 10
+cAPSpecificBoundSetminLowLayerCompatibilityLength INTEGER ::= 1
+cAPSpecificBoundSetmaxLowLayerCompatibilityLength INTEGER ::= 16
+cAPSpecificBoundSetminMessageContentLength INTEGER ::= 1
+cAPSpecificBoundSetmaxMessageContentLength INTEGER ::= 127
+cAPSpecificBoundSetminOriginalCalledPartyIDLength INTEGER ::= 2
+cAPSpecificBoundSetmaxOriginalCalledPartyIDLength INTEGER ::= 10
+cAPSpecificBoundSetminPDPAddressLength INTEGER ::= 1
+cAPSpecificBoundSetmaxPDPAddressLength INTEGER ::= 63
+cAPSpecificBoundSetminRedirectingPartyIDLength INTEGER ::= 2
+cAPSpecificBoundSetmaxRedirectingPartyIDLength INTEGER ::= 10
+cAPSpecificBoundSetminScfIDLength INTEGER ::= 2
+cAPSpecificBoundSetmaxScfIDLength INTEGER ::= 10
+cAPSpecificBoundSetminSCIBillingChargingLength INTEGER ::= 4
+cAPSpecificBoundSetmaxSCIBillingChargingLength INTEGER ::= 225
+cAPSpecificBoundSetminTimeAndTimezoneLength INTEGER ::= 8
+cAPSpecificBoundSetmaxTimeAndTimezoneLength INTEGER ::= 8
+cAPSpecificBoundSetnumOfBCSMEvents INTEGER ::= 30
+cAPSpecificBoundsSetnumOfChangeOfPositionControlInfo INTEGER ::= 10
+cAPSpecificBoundsSetnumOfCSs INTEGER ::= 127
+cAPSpecificBoundSetnumOfSMSEvents INTEGER ::= 10
+cAPSpecificBoundSetnumOfGPRSEvents INTEGER ::= 10
+cAPSpecificBoundSetnumOfExtensions INTEGER ::= 10
+cAPSpecificBoundSetnumOfGenericNumbers INTEGER ::= 5
+cAPSpecificBoundSetnumOfMessageIDs INTEGER ::= 16
+
+
+END
+
+
+-- #############################
+-- CAP ErrorTypes
+-- #############################
+
+
+CAP-errortypes --{ccitt(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-errortypes(51) version3(2)}
+-- This module contains the type definitions for the CAP Error 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.
+
+DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+
+
+-- TYPE DEFINITION FOR CAP ERROR TYPES FOLLOWS
+
+
+--cancelFailed ERROR
+-- PARAMETER
+CancelFailedPARAM ::= SEQUENCE
+{
+ cancelproblem [0] ENUMERATED
+ {
+ unknownOperation (0),
+ tooLate (1),
+ operationNotCancellable (2)
+ },
+ operation [1] InvokeID
+
+}
+-- The operation failed to be canceled.
+
+
+--requestedInfoError ERROR ::= {
+-- PARAMETER
+RequestedInfoErrorPARAM ::= ENUMERATED
+{
+ unknownRequestedInfo (1),
+ requestedInfoNotAvailable (2)
+}
+-- The requested information cannot be found.
+
+SystemFailurePARAM ::= UnavailableNetworkResource
+-- The operation could not be completed due to a system failure at the serving physical entity.
+
+--taskRefused ERROR ::= {
+-- PARAMETER
+TaskRefusedPARAM ::= ENUMERATED
+{
+ generic (0),
+ unobtainable (1),
+ congestion (2)
+}
+-- An entity normally capable of the task requested cannot or chooses not to perform the task at
+-- this time. This includes error situations like congestion and unobtainable address as used in
+-- e.g. the connect operation.)
+
+END
+
diff --git a/epan/dissectors/asn1/camel/camel.cnf b/epan/dissectors/asn1/camel/camel.cnf
new file mode 100644
index 0000000000..a298179964
--- /dev/null
+++ b/epan/dissectors/asn1/camel/camel.cnf
@@ -0,0 +1,707 @@
+# camel.cnf
+# camel conformation file
+# Anders Broman 2007
+
+#.IMPORT ../gsm_map/gsm_map-exp.cnf
+#.IMPORT ../inap/inap-exp.cnf
+
+#.MODULE
+CS1-DataTypes inap
+CS2-datatypes inap
+
+#.ASSIGNED_OBJECT_IDENTIFIER classes
+#.ASSIGNED_OBJECT_IDENTIFIER ros-InformationObjects
+#.ASSIGNED_OBJECT_IDENTIFIER tc-Messages
+#.ASSIGNED_OBJECT_IDENTIFIER tc-NotationExtensions
+#.ASSIGNED_OBJECT_IDENTIFIER gprsSSF-gsmSCF-Operations
+#.ASSIGNED_OBJECT_IDENTIFIER gsmSCF-gsmSRF-Operations
+#.ASSIGNED_OBJECT_IDENTIFIER gsmSSF-gsmSCF-Operations
+#.ASSIGNED_OBJECT_IDENTIFIER sms-Operations
+#.ASSIGNED_OBJECT_IDENTIFIER gsmSSF-gsmSCF-Protocol
+#.ASSIGNED_OBJECT_IDENTIFIER gsmSCF-gsmSRF-Protocol
+#.ASSIGNED_OBJECT_IDENTIFIER operationcodes
+#.ASSIGNED_OBJECT_IDENTIFIER datatypes
+#.ASSIGNED_OBJECT_IDENTIFIER errortypes
+
+#.OMIT_ASSIGNMENT Remote-Operations-Information-Objects
+Bind
+Unbind
+#.END
+#.OMIT_ASSIGNMENT
+# Removed as they are giving 'defined but not used' warnings currently.
+RejectProblem
+TariffSwitchInterval
+Priority
+#.END
+
+#.PDU
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+#.END
+
+
+#.REGISTER
+CAP-GPRS-ReferenceNumber B "0.4.0.0.1.1.5.2" "id-CAP-GPRS-ReferenceNumber"
+CAP-U-ABORT-REASON B "0.4.0.0.1.1.2.2" "id-CAP-U-ABORT-Reason"
+
+#.NO_EMIT ONLY_VALS
+CAMEL-AChBillingChargingCharacteristicsV2
+ROS
+
+#.TYPE_RENAME
+ReturnResult/result/result ResultArgument
+
+#.FIELD_RENAME
+Invoke/linkedId/present linkedIdPresent
+Reject/problem/invoke invokeProblem
+Reject/problem/returnError returnErrorProblem
+ReturnResult/result/result resultArgument
+Reject/problem/returnResult problemReturnResult
+
+PAR-cancelFailed/problem par-cancelFailedProblem
+CAMEL-FCIBillingChargingCharacteristics/fCIBCCCAMELsequence1 fci-fCIBCCCAMELsequence1
+CAMEL-FCIGPRSBillingChargingCharacteristics/fCIBCCCAMELsequence1 fciGPRS-fCIBCCCAMELsequence1
+CAMEL-FCISMSBillingChargingCharacteristics/fCIBCCCAMELsequence1 fciSMS-fCIBCCCAMELsequence1
+EventSpecificInformationBCSM/oMidCallSpecificInfo/midCallEvents omidCallEvents
+EventSpecificInformationBCSM/tMidCallSpecificInfo/midCallEvents tmidCallEvents
+AudibleIndicator/tone audibleIndicatorTone
+GapIndicators/duration gapIndicatorsDuration
+InbandInfo/duration inbandInfoDuration
+Tone/duration toneDuration
+Burst/toneDuration burstToneDuration
+
+EventSpecificInformationSMS/o-smsFailureSpecificInfo/failureCause smsfailureCause
+EventSpecificInformationBCSM/routeSelectFailureSpecificInfo/failureCause routeSelectfailureCause
+EventSpecificInformationSMS/t-smsFailureSpecificInfo/failureCause t-smsfailureCause
+
+CAMEL-FCIBillingChargingCharacteristics/fCIBCCCAMELsequence1/partyToCharge fCIBCCCAMELsequence1partyToCharge
+CAMEL-CallResult/timeDurationChargingResult/partyToCharge timeDurationChargingResultpartyToCharge
+
+AOCSubsequent/tariffSwitchInterval aocSubsequent-tariffSwitchInterval
+CAMEL-AChBillingChargingCharacteristics/timeDurationCharging/tariffSwitchInterval timeDurationCharging-tariffSwitchInterval
+ApplyChargingGPRSArg/tariffSwitchInterval applyChargingGPRS-tariffSwitchInterval
+TimeIfTariffSwitch/tariffSwitchInterval timeIfTariffSwitch-tariffSwitchInterval
+
+# This table creates the value_sting to name Camel operation codes and errors
+# in file packet-camel-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* CAMEL OPERATIONS */
+const value_string camel_opr_code_strings[] = {
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* CAMEL ERRORS */
+static const value_string camel_err_code_string_vals[] = {
+#.TABLE_BODY ERROR
+ { %(&errorCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# This table creates the switch() to branch on Camel operation codes and errors
+# in file packet-camel-table2.c which is included in the template file
+#
+#.TABLE2_HDR
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ switch(opcode){
+#.TABLE2_BODY OPERATION.&ArgumentType
+ case %(&operationCode)s: /* %(_ident)s */
+ offset= %(_argument_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_camel_unknown_invokeData,
+ tvb, offset, -1, "Unknown invokeData %d", opcode);
+ /* todo call the asn.1 dissector */
+ break;
+ }
+ return offset;
+}
+#.END
+#.TABLE2_HDR
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
+
+ switch(opcode){
+#.TABLE2_BODY OPERATION.&ResultType
+ case %(&operationCode)s: /* %(_ident)s */
+ offset= %(_result_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_camel_unknown_returnResultData,
+ tvb, offset, -1, "Unknown returnResultData %d",opcode);
+ }
+ return offset;
+}
+#.END
+#.TABLE2_HDR
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
+
+ switch(errorCode) {
+#.TABLE2_BODY ERROR.&ParameterType
+ case %(&errorCode)s: /* %(_ident)s */
+ %(_parameter_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_camel_unknown_returnErrorData,
+ tvb, offset, -1, "Unknown returnErrorData %d",errorCode);
+ }
+ return offset;
+}
+#.END
+# ROS stuff here XXX change when TCAP is redone.
+
+#.FN_BODY Code/local VAL_PTR = &opcode
+
+ if (is_ExtensionField){
+ hf_index = hf_camel_extension_code_local;
+ }else if (camel_opcode_type == CAMEL_OPCODE_RETURN_ERROR){
+ hf_index = hf_camel_error_code_local;
+ }
+ %(DEFAULT_BODY)s
+ if (is_ExtensionField == FALSE){
+ if (camel_opcode_type == CAMEL_OPCODE_RETURN_ERROR){
+ errorCode = opcode;
+ col_append_str(actx->pinfo->cinfo, COL_INFO,
+ val_to_str(errorCode, camel_err_code_string_vals, "Unknown CAMEL error (%%u)"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ }else{
+ col_append_str(actx->pinfo->cinfo, COL_INFO,
+ val_to_str(opcode, camel_opr_code_strings, "Unknown CAMEL (%%u)"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ }
+ gp_camelsrt_info->opcode=opcode;
+ }
+#.FN_HDR Invoke
+ camel_opcode_type=CAMEL_OPCODE_INVOKE;
+
+#.FN_HDR ReturnResult
+ camel_opcode_type=CAMEL_OPCODE_RETURN_RESULT;
+
+#.FN_HDR ReturnError
+ camel_opcode_type=CAMEL_OPCODE_RETURN_ERROR;
+
+#.FN_HDR Reject
+ camel_opcode_type=CAMEL_OPCODE_REJECT;
+
+
+#.FN_BODY Invoke/argument
+ offset = dissect_invokeData(tree, tvb, offset, actx);
+
+#.FN_BODY ReturnResult/result/result
+ offset = dissect_returnResultData(tree, tvb, offset, actx);
+
+#.FN_BODY ReturnError/parameter
+ offset = dissect_returnErrorData(tree, tvb, offset, actx);
+
+# END ROS
+
+#.FN_BODY InitialDPArgExtension
+
+if((camel_ver == 2)||(camel_ver == 1)){
+ return dissect_camel_InitialDPArgExtensionV2(implicit_tag, tvb, offset, actx, tree, hf_index);
+}
+
+%(DEFAULT_BODY)s
+
+#.FN_HDR ExtensionField
+ camel_obj_id = NULL;
+ is_ExtensionField =TRUE;
+
+#.FN_PARS Code/global FN_VARIANT = _str VAL_PTR = &camel_obj_id
+
+#.FN_BODY ExtensionField/value
+ /*XXX handle local form here */
+ if(camel_obj_id){
+ offset=call_ber_oid_callback(camel_obj_id, tvb, offset, actx->pinfo, tree, NULL);
+ }
+ is_ExtensionField = FALSE;
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY CallingPartyNumber VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+subtree = proto_item_add_subtree(actx->created_item, ett_camel_callingpartynumber);
+dissect_isup_calling_party_number_parameter(parameter_tvb, subtree, NULL);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY CalledPartyNumber VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_calledpartybcdnumber);
+ dissect_isup_called_party_number_parameter(parameter_tvb, subtree, NULL);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY LocationNumber VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+subtree = proto_item_add_subtree(actx->created_item, ett_camel_locationnumber);
+dissect_isup_location_number_parameter(parameter_tvb, subtree, NULL);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY GenericNumber VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+dissect_isup_generic_number_parameter(parameter_tvb, actx->pinfo, tree, NULL);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY Cause VAL_PTR = &parameter_tvb
+
+tvbuff_t *parameter_tvb;
+guint8 Cause_value;
+proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_cause);
+
+ dissect_q931_cause_ie(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), subtree, hf_camel_cause_indicator, &Cause_value, isup_parameter_type_value);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY RPCause VAL_PTR = &parameter_tvb
+
+tvbuff_t *parameter_tvb;
+guint8 Cause_value;
+proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_RPcause);
+
+ dissect_RP_cause_ie(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), subtree, hf_camel_RP_Cause, &Cause_value);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY DateAndTime
+
+
+/*
+* date_option = 1 european dd:mm:yyyy
+* date_option = 2 american mm:dd:yyyy
+*/
+
+/*
+* Output should be HH:MM:SS;dd/mm/yyyy
+* if european is selected, and HH:MM:SS;mm/dd/yyyy
+* otherwise.
+*/
+
+ guint8 digit_pair;
+ guint8 i = 0, curr_offset;
+ char camel_time[CAMEL_DATE_AND_TIME_LEN];
+ char c[CAMEL_DATE_AND_TIME_LEN]; /*temporary container*/
+
+ /* 2 digits per octet, 7 octets total + 5 delimiters */
+
+ for (curr_offset = 0; curr_offset < 7 ; curr_offset++)
+ /*Loop to extract date*/
+ {
+ digit_pair = tvb_get_guint8(tvb, curr_offset);
+
+ proto_tree_add_uint(tree,
+ hf_digit,
+ tvb,
+ curr_offset,
+ 1,
+ digit_pair & 0x0F);
+
+ proto_tree_add_uint(tree,
+ hf_digit,
+ tvb,
+ curr_offset,
+ 1,
+ digit_pair >>4);
+
+
+ c[i] = camel_number_to_char( digit_pair & 0x0F);
+ i++;
+ c[i] = camel_number_to_char( digit_pair >>4);
+ i++;
+ }
+
+ /* Pretty print date */
+ /* XXX - Should we use sprintf here instead of assembling the string by
+ * hand? */
+
+ camel_time[0] = c[8];
+ camel_time[1] = c[9];
+ camel_time[2] = ':';
+ camel_time[3] = c[10];
+ camel_time[4] = c[11];
+ camel_time[5] = ':';
+ camel_time[6] = c[12];
+ camel_time[7] = c[13];
+ camel_time[8] = ';';
+ if ( EUROPEAN_DATE == date_format) /*european*/
+ {
+ camel_time[9] = c[6]; /*day*/
+ camel_time[10] = c[7];
+ camel_time[11] = '/';
+ camel_time[12] = c[4]; /*month*/
+ camel_time[13] = c[5];
+ }
+ else /*american*/
+ {
+ camel_time[9] = c[4]; /*month*/
+ camel_time[10] = c[5];
+ camel_time[11] = '/';
+ camel_time[12] = c[6]; /*day*/
+ camel_time[13] = c[7];
+ }
+ camel_time[14] = '/';
+ camel_time[15] = c[0];
+ camel_time[16] = c[1];
+ camel_time[17] = c[2];
+ camel_time[18] = c[3];
+
+ camel_time[CAMEL_DATE_AND_TIME_LEN - 1] = '\0';
+
+/*start = 0, length = 7*/
+
+ proto_tree_add_string(tree,
+ hf_index,
+ tvb,
+ 0,
+ 7,
+ camel_time);
+
+ return 7; /* 7 octets eaten*/
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY BearerCapability/bearerCap VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), tree);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY OriginalCalledPartyID VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_isup_original_called_number_parameter(parameter_tvb, actx->pinfo, tree, NULL);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_PARS RedirectingPartyID
+
+ VAL_PTR = &parameter_tvb
+
+#.FN_BODY RedirectingPartyID
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_PARS AccessPointName
+ VAL_PTR = &parameter_tvb
+
+#.FN_BODY AccessPointName
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_AccessPointName);
+ de_sm_apn(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY EndUserAddress/pDPTypeOrganization VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ PDPTypeOrganization = (tvb_get_guint8(parameter_tvb,0) &0x0f);
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY EndUserAddress/pDPTypeNumber VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ PDPTypeNumber = tvb_get_guint8(parameter_tvb,0);
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_pdptypenumber);
+ switch (PDPTypeOrganization){
+ case 0: /* ETSI */
+ proto_tree_add_item(subtree, hf_camel_PDPTypeNumber_etsi, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ break;
+ case 1: /* IETF */
+ proto_tree_add_item(subtree, hf_camel_PDPTypeNumber_ietf, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ break;
+ default:
+ break;
+ }
+#.END
+
+
+#.FN_BODY EndUserAddress/pDPAddress VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_pdptypenumber);
+ switch (PDPTypeOrganization){
+ case 0: /* ETSI */
+ break;
+ case 1: /* IETF */
+ switch(PDPTypeNumber){
+ case 0x21: /* IPv4 */
+ proto_tree_add_item(subtree, hf_camel_PDPAddress_IPv4, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_BIG_ENDIAN);
+ break;
+ case 0x57: /* IPv6 */
+ proto_tree_add_item(subtree, hf_camel_PDPAddress_IPv6, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_NA);
+ break;
+ default:
+ break;
+ }
+ default:
+ break;
+
+ }
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY LocationInformationGPRS/cellGlobalIdOrServiceAreaIdOrLAI
+ proto_tree *subtree;
+ int start_offset;
+
+ start_offset = offset;
+%(DEFAULT_BODY)s
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_pdptypenumber);
+
+ if (tvb_reported_length_remaining(tvb,start_offset) == 7){
+ dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, start_offset, actx, subtree, hf_camel_cellGlobalIdOrServiceAreaIdFixedLength);
+ }else{
+ dissect_gsm_map_LAIFixedLength(TRUE, tvb, start_offset, actx, subtree, hf_camel_locationAreaId);
+ }
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY AChBillingChargingCharacteristics VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_AChBillingChargingCharacteristics);
+ if((camel_ver == 2)||(camel_ver == 1)){
+ return dissect_camel_CAMEL_AChBillingChargingCharacteristicsV2(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_AChBillingChargingCharacteristics);
+ }
+ dissect_camel_CAMEL_AChBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_AChBillingChargingCharacteristics);
+
+#.FN_BODY FCIBillingChargingCharacteristics VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_FCIBillingChargingCharacteristics);
+ dissect_camel_CAMEL_FCIBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_FCIBillingChargingCharacteristics);
+
+#.FN_BODY FCIGPRSBillingChargingCharacteristics VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics);
+ dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics);
+
+#.FN_BODY FCISMSBillingChargingCharacteristics VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_FCISMSBillingChargingCharacteristics);
+ dissect_camel_CAMEL_FCISMSBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_FCISMSBillingChargingCharacteristics);
+
+#.FN_BODY SCIBillingChargingCharacteristics VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_SCIBillingChargingCharacteristics);
+ dissect_camel_CAMEL_SCIBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_SCIBillingChargingCharacteristics);
+
+#.FN_BODY SCIGPRSBillingChargingCharacteristics VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics);
+ dissect_camel_CAMEL_SCIGPRSBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics);
+
+#.FN_BODY CallResult VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_CallResult);
+ dissect_camel_CAMEL_CallResult(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_CallResult);
+
+# V3 and V4 incompatibillity bug #1719
+#.FN_BODY CAMEL-AChBillingChargingCharacteristics/timeDurationCharging/audibleIndicator
+ if (tvb_reported_length_remaining(tvb,offset) < 2)
+ offset = dissect_camel_BOOLEAN(TRUE, tvb, offset, actx , tree, hf_camel_audibleIndicatorTone);
+ else
+%(DEFAULT_BODY)s
+
+#.FN_BODY CalledPartyBCDNumber VAL_PTR = &parameter_tvb
+/* See 3GPP TS 29.078
+ * and 3GPP TS 24.008, section 10.5.4.7
+ * Indicates the Called Party Number, including service selection information.
+ * Refer to 3GPP TS 24.008 [9] for encoding.
+ * This data type carries only the 'type of number', 'numbering plan
+ * identification' and 'number digit' fields defined in 3GPP TS 24.008 [9];
+ * it does not carry the 'called party BCD number IEI' or 'length of called
+ * party BCD number contents'.
+ * In the context of the DestinationSubscriberNumber field in ConnectSMSArg or
+ * InitialDPSMSArg, a CalledPartyBCDNumber may also contain an alphanumeric
+ * character string. In this case, type-of-number '101'B is used, in accordance
+ * with 3GPP TS 23.040 [6]. The address is coded in accordance with the
+ * GSM 7-bit default alphabet definition and the SMS packing rules
+ * as specified in 3GPP TS 23.038 [15] in this case.
+ */
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_calledpartybcdnumber);
+ de_cld_party_bcd_num(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0);
+
+#.END
+
+#.FN_BODY AdditionalCallingPartyNumber VAL_PTR = &parameter_tvb
+/*
+* Digits {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+* bound.&minDigitsLength .. bound.&maxDigitsLength))
+*-- Indicates the address signalling digits.
+*-- Refer to ETSI EN 300 356 1 [23] Generic Number & Generic Digits parameters for encoding.
+*-- The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
+*-- Generic Digits are irrelevant to the CAP;
+*-- 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 shall use Generic Number:
+*-- - AdditionalCallingPartyNumber for InitialDP
+*
+*/
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_additionalcallingpartynumber);
+ dissect_isup_generic_number_parameter(parameter_tvb, actx->pinfo, subtree, NULL);
+
+# I don't know how to "access" the EstablishTemporaryConnectionArg-PDU which would have been cleaner.
+#.FN_BODY EstablishTemporaryConnectionArg
+
+ if(camel_ver==2){
+ return dissect_camel_EstablishTemporaryConnectionArgV2(implicit_tag, tvb, offset, actx, tree, hf_index);
+ }
+%(DEFAULT_BODY)s
+
+#.TYPE_ATTR
+PDPTypeOrganization TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x0f STRINGS = VALS(gsm_map_PDP_Type_Organisation_vals)
+DateAndTime TYPE = FT_STRING DISPLAY = BASE_NONE
+Code/local TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(camel_opr_code_strings)
+ServiceInteractionIndicatorsTwo/holdTreatmentIndicator TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(camel_holdTreatmentIndicator_values)
+ServiceInteractionIndicatorsTwo/cwTreatmentIndicator TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(camel_cwTreatmentIndicator_values)
+ServiceInteractionIndicatorsTwo/ectTreatmentIndicator TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(camel_ectTreatmentIndicator_values)
+#.END
diff --git a/epan/dissectors/asn1/camel/packet-camel-template.c b/epan/dissectors/asn1/camel/packet-camel-template.c
new file mode 100644
index 0000000000..6e6cd6d6b8
--- /dev/null
+++ b/epan/dissectors/asn1/camel/packet-camel-template.c
@@ -0,0 +1,1621 @@
+/* packet-camel-template.c
+ * Routines for Camel
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ * Copyright 2005, Olivier Jacques <olivier.jacques@hp.com>
+ * Copyright 2005, Javier Acuna <javier.acuna@sixbell.com>
+ * Updated to ETSI TS 129 078 V6.4.0 (2004-3GPP TS 29.078 version 6.4.0 Release 6 1 12)
+ * Copyright 2005-2010, Anders Broman <anders.broman@ericsson.com>
+ * Updated to 3GPP TS 29.078 version 7.3.0 Release 7 (2006-06)
+ * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References: ETSI 300 374
+ */
+/*
+ * Indentation logic: this file is indented with 2 spaces indentation.
+ * there are no tabs.
+ */
+#include "config.h"
+
+#include <stdlib.h>
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/tap.h>
+#include <epan/srt_table.h>
+#include <epan/stat_tap_ui.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+#include "packet-camel.h"
+#include "packet-q931.h"
+#include "packet-e164.h"
+#include "packet-isup.h"
+#include "packet-gsm_map.h"
+#include "packet-gsm_a_common.h"
+#include "packet-inap.h"
+#include "packet-tcap.h"
+
+#define PNAME "Camel"
+#define PSNAME "CAMEL"
+#define PFNAME "camel"
+
+/* Initialize the protocol and registered fields */
+static int proto_camel = -1;
+int date_format = 1; /*assume european date format */
+int camel_tap = -1;
+/* Global variables */
+static guint32 opcode=0;
+static guint32 errorCode=0;
+static guint32 camel_ver = 0;
+
+/* When several Camel components are received in a single TCAP message,
+ we have to use several buffers for the stored parameters
+ because else this data are erased during TAP dissector call */
+#define MAX_CAMEL_INSTANCE 10
+static int camelsrt_global_current=0;
+static struct camelsrt_info_t camelsrt_global_info[MAX_CAMEL_INSTANCE];
+
+/* ROSE context */
+static rose_ctx_t camel_rose_ctx;
+
+static int hf_digit = -1;
+static int hf_camel_extension_code_local = -1;
+static int hf_camel_error_code_local = -1;
+static int hf_camel_cause_indicator = -1;
+static int hf_camel_PDPTypeNumber_etsi = -1;
+static int hf_camel_PDPTypeNumber_ietf = -1;
+static int hf_camel_PDPAddress_IPv4 = -1;
+static int hf_camel_PDPAddress_IPv6 = -1;
+static int hf_camel_cellGlobalIdOrServiceAreaIdFixedLength = -1;
+static int hf_camel_RP_Cause = -1;
+static int hf_camel_CAMEL_AChBillingChargingCharacteristics = -1;
+static int hf_camel_CAMEL_FCIBillingChargingCharacteristics = -1;
+static int hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics = -1;
+static int hf_camel_CAMEL_FCISMSBillingChargingCharacteristics = -1;
+static int hf_camel_CAMEL_SCIBillingChargingCharacteristics = -1;
+static int hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics = -1;
+static int hf_camel_CAMEL_CallResult = -1;
+
+/* Used by persistent data */
+static int hf_camelsrt_SessionId=-1;
+static int hf_camelsrt_RequestNumber=-1;
+static int hf_camelsrt_Duplicate=-1;
+static int hf_camelsrt_RequestFrame=-1;
+static int hf_camelsrt_ResponseFrame=-1;
+static int hf_camelsrt_DeltaTime=-1;
+static int hf_camelsrt_SessionTime=-1;
+static int hf_camelsrt_DeltaTime31=-1;
+static int hf_camelsrt_DeltaTime75=-1;
+static int hf_camelsrt_DeltaTime65=-1;
+static int hf_camelsrt_DeltaTime22=-1;
+static int hf_camelsrt_DeltaTime35=-1;
+static int hf_camelsrt_DeltaTime80=-1;
+
+#include "packet-camel-hf.c"
+
+static struct camelsrt_info_t * gp_camelsrt_info;
+
+/* Forward declarations */
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx);
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx);
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx);
+static int dissect_camel_CAMEL_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_camel_CAMEL_AChBillingChargingCharacteristicsV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_camel_CAMEL_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_camel_EstablishTemporaryConnectionArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+
+/* XXX - can we get rid of these and always do the SRT work? */
+static gboolean gcamel_HandleSRT=FALSE;
+static gboolean gcamel_PersistentSRT=FALSE;
+static gboolean gcamel_DisplaySRT=FALSE;
+gboolean gcamel_StatSRT=FALSE;
+
+/* Initialize the subtree pointers */
+static gint ett_camel = -1;
+static gint ett_camelisup_parameter = -1;
+static gint ett_camel_AccessPointName = -1;
+static gint ett_camel_pdptypenumber = -1;
+static gint ett_camel_cause = -1;
+static gint ett_camel_RPcause = -1;
+static gint ett_camel_stat = -1;
+static gint ett_camel_calledpartybcdnumber = -1;
+static gint ett_camel_callingpartynumber = -1;
+static gint ett_camel_locationnumber = -1;
+static gint ett_camel_additionalcallingpartynumber = -1;
+
+#include "packet-camel-ett.c"
+
+static expert_field ei_camel_unknown_invokeData = EI_INIT;
+static expert_field ei_camel_unknown_returnResultData = EI_INIT;
+static expert_field ei_camel_unknown_returnErrorData = EI_INIT;
+
+/* Preference settings default */
+#define MAX_SSN 254
+static range_t *global_ssn_range;
+static dissector_handle_t camel_handle;
+static dissector_handle_t camel_v1_handle;
+static dissector_handle_t camel_v2_handle;
+
+/* Global variables */
+
+static int application_context_version;
+static guint8 PDPTypeOrganization;
+static guint8 PDPTypeNumber;
+const char *camel_obj_id = NULL;
+gboolean is_ExtensionField =FALSE;
+
+/* Global hash tables*/
+static GHashTable *srt_calls = NULL;
+static guint32 camelsrt_global_SessionId=1;
+
+static int camel_opcode_type;
+#define CAMEL_OPCODE_INVOKE 1
+#define CAMEL_OPCODE_RETURN_RESULT 2
+#define CAMEL_OPCODE_RETURN_ERROR 3
+#define CAMEL_OPCODE_REJECT 4
+
+static const value_string camel_Component_vals[] = {
+ { 1, "invoke" },
+ { 2, "returnResultLast" },
+ { 3, "returnError" },
+ { 4, "reject" },
+ { 0, NULL }
+};
+
+const value_string camelSRTtype_naming[]= {
+ { CAMELSRT_SESSION, "TCAP_Session" },
+ { CAMELSRT_VOICE_INITIALDP, "InialDP/Continue" },
+ { CAMELSRT_VOICE_ACR1, "Slice1_ACR/ACH" },
+ { CAMELSRT_VOICE_ACR2, "Slice2_ACR/ACH" },
+ { CAMELSRT_VOICE_ACR3, "Slice3_ACR/ACH" },
+ { CAMELSRT_VOICE_DISC, "EvtRepBSCM/Release" },
+ { CAMELSRT_SMS_INITIALDP, "InitialDP/ContinueSMS" },
+ { CAMELSRT_GPRS_INITIALDP, "InitialDP/ContinueGPRS" },
+ { CAMELSRT_GPRS_REPORT, "EvtRepGPRS/ContinueGPRS" },
+ { 0,NULL}
+};
+
+#if 0
+static const true_false_string camel_extension_value = {
+ "No Extension",
+ "Extension"
+};
+#endif
+#define EUROPEAN_DATE 1
+#define AMERICAN_DATE 2
+#define CAMEL_DATE_AND_TIME_LEN 20 /* 2*5 + 4 + 5 + 1 (HH:MM:SS;mm/dd/yyyy) */
+
+static const enum_val_t date_options[] = {
+ { "european", "DD/MM/YYYY", EUROPEAN_DATE },
+ { "american", "MM/DD/YYYY", AMERICAN_DATE },
+ { NULL, NULL, 0 }
+};
+
+static const value_string digit_value[] = {
+ { 0, "0"},
+ { 1, "1"},
+ { 2, "2"},
+ { 3, "3"},
+ { 4, "4"},
+ { 5, "5"},
+ { 6, "6"},
+ { 7, "7"},
+ { 8, "8"},
+ { 9, "9"},
+ { 10, "spare"},
+ { 11, "spare"},
+ { 12, "spare"},
+ { 13, "spare"},
+ { 0, NULL}
+
+};
+
+
+#if 0
+static const value_string camel_nature_of_addr_indicator_values[] = {
+ { 0x00, "unknown" },
+ { 0x01, "International Number" },
+ { 0x02, "National Significant Number" },
+ { 0x03, "Network Specific Number" },
+ { 0x04, "Subscriber Number" },
+ { 0x05, "Reserved" },
+ { 0x06, "Abbreviated Number" },
+ { 0x07, "Reserved for extension" },
+ { 0, NULL }
+};
+static const value_string camel_number_plan_values[] = {
+ { 0x00, "unknown" },
+ { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
+ { 0x02, "spare" },
+ { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
+ { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
+ { 0x05, "spare" },
+ { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
+ { 0x07, "spare" },
+ { 0x08, "National Numbering" },
+ { 0x09, "Private Numbering" },
+ { 0x0f, "Reserved for extension" },
+ { 0, NULL }
+};
+#endif
+
+/* End includes from old" packet-camel.c */
+
+static const value_string camel_RP_Cause_values[] = {
+ { 1, "Unassigned (unallocated) number" },
+ { 8, "Operator determined barring" },
+ { 10, "Call barred" },
+ { 11, "Reserved" },
+ { 21, "Short message transfer rejected" },
+ { 27, "Destination out of order" },
+ { 28, "Unidentified subscriber" },
+ { 29, "Facility Rejected" },
+ { 30, "Unknown subscriber" },
+ { 38, "Network out of order" },
+ { 41, "Temporary failure" },
+ { 42, "Congestion" },
+ { 47, "Resources unavailable, unspecified" },
+ { 50, "Requested facility not subscribed" },
+ { 69, "Requested facility not implemented" },
+ { 81, "Invalid short message transfer reference value" },
+ { 95, "Semantically incorrect message" },
+ { 96, "Invalid mandatory information" },
+ { 97, " Message Type non-existent or not implemented" },
+ { 98, "Message not compatible with short message protocol state" },
+ { 99, "Information element non existent or not implemented" },
+ { 111, "Protocol error, unspecified" },
+ { 127, "Interworking, unspecified" },
+ { 22,"Memory capacity exceeded" },
+ { 0, NULL }
+};
+
+static const value_string camel_holdTreatmentIndicator_values[] = {
+ { 0x01, "acceptHoldRequest" },
+ { 0x02, "rejectHoldRequest" },
+ { 0, NULL }
+};
+static const value_string camel_cwTreatmentIndicator_values[] = {
+ { 0x01, "acceptCw" },
+ { 0x02, "rejectCw" },
+ { 0, NULL }
+};
+static const value_string camel_ectTreatmentIndicator_values[] = {
+ { 0x01, "acceptEctRequest" },
+ { 0x02, "rejectEctRequest" },
+ { 0, NULL }
+};
+
+#include "packet-camel-val.h"
+
+#include "packet-camel-table.c"
+
+/*
+ * DEBUG fonctions
+ */
+
+#undef DEBUG_CAMELSRT
+/* #define DEBUG_CAMELSRT */
+
+#ifdef DEBUG_CAMELSRT
+#include <stdio.h>
+#include <stdarg.h>
+static guint debug_level = 99;
+
+static void dbg(guint level, char *fmt, ...) {
+ va_list ap;
+
+ if (level > debug_level) return;
+ va_start(ap,fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+}
+#endif
+
+static void
+camelstat_init(struct register_srt* srt _U_, GArray* srt_array, srt_gui_init_cb gui_callback, void* gui_data)
+{
+ srt_stat_table *camel_srt_table;
+ gchar* tmp_str;
+ guint32 i;
+
+ camel_srt_table = init_srt_table("CAMEL Commands", NULL, srt_array, NB_CAMELSRT_CATEGORY, NULL, NULL, gui_callback, gui_data, NULL);
+ for (i = 0; i < NB_CAMELSRT_CATEGORY; i++)
+ {
+ tmp_str = val_to_str_wmem(NULL,i,camelSRTtype_naming,"Unknown (%d)");
+ init_srt_table_row(camel_srt_table, i, tmp_str);
+ wmem_free(NULL, tmp_str);
+ }
+}
+
+static gboolean
+camelstat_packet(void *pcamel, packet_info *pinfo, epan_dissect_t *edt _U_, const void *psi)
+{
+ guint idx = 0;
+ srt_stat_table *camel_srt_table;
+ const struct camelsrt_info_t * pi=(const struct camelsrt_info_t *)psi;
+ srt_data_t *data = (srt_data_t *)pcamel;
+ int i;
+
+ for (i=1; i<NB_CAMELSRT_CATEGORY; i++) {
+ if ( pi->bool_msginfo[i] &&
+ pi->msginfo[i].is_delta_time
+ && pi->msginfo[i].request_available
+ && !pi->msginfo[i].is_duplicate )
+ {
+ camel_srt_table = g_array_index(data->srt_array, srt_stat_table*, idx);
+ add_srt_table_data(camel_srt_table, i, &pi->msginfo[i].req_time, pinfo);
+ }
+ } /* category */
+ return TRUE;
+}
+
+
+static char camel_number_to_char(int number)
+{
+ if (number < 10)
+ return (char) (number + 48 ); /* this is ASCII specific */
+ else
+ return (char) (number + 55 );
+}
+
+/*
+ * 24.011 8.2.5.4
+ */
+static guint8
+dissect_RP_cause_ie(tvbuff_t *tvb, guint32 offset, _U_ guint len,
+ proto_tree *tree, int hf_cause_value, guint8 *cause_value)
+{
+ guint8 oct;
+ guint32 curr_offset;
+
+ curr_offset = offset;
+ oct = tvb_get_guint8(tvb, curr_offset);
+
+ *cause_value = oct & 0x7f;
+
+ proto_tree_add_uint(tree, hf_cause_value, tvb, curr_offset, 1, oct);
+ curr_offset++;
+
+ if ((oct & 0x80)) {
+ oct = tvb_get_guint8(tvb, curr_offset);
+ proto_tree_add_uint_format(tree, hf_cause_value,
+ tvb, curr_offset, 1, oct,
+ "Diagnostic : %u", oct);
+ curr_offset++;
+ }
+ return(curr_offset - offset);
+}
+
+static int dissect_camel_InitialDPArgExtensionV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+
+#include "packet-camel-fn.c"
+
+#include "packet-camel-table2.c"
+
+/*
+ * Functions needed for Hash-Table
+ */
+
+/* compare 2 keys */
+static gint
+camelsrt_call_equal(gconstpointer k1, gconstpointer k2)
+{
+ const struct camelsrt_call_info_key_t *key1 = (const struct camelsrt_call_info_key_t *) k1;
+ const struct camelsrt_call_info_key_t *key2 = (const struct camelsrt_call_info_key_t *) k2;
+
+ return (key1->SessionIdKey == key2->SessionIdKey) ;
+}
+
+/* calculate a hash key */
+static guint
+camelsrt_call_hash(gconstpointer k)
+{
+ const struct camelsrt_call_info_key_t *key = (const struct camelsrt_call_info_key_t *) k;
+ return key->SessionIdKey;
+}
+
+/*
+ * Find the dialog by Key and Time
+ */
+static struct camelsrt_call_t *
+find_camelsrt_call(struct camelsrt_call_info_key_t *p_camelsrt_call_key)
+{
+ struct camelsrt_call_t *p_camelsrt_call = NULL;
+ p_camelsrt_call = (struct camelsrt_call_t *)g_hash_table_lookup(srt_calls, p_camelsrt_call_key);
+
+#ifdef DEBUG_CAMELSRT
+ if(p_camelsrt_call) {
+ dbg(10,"D%d ", p_camelsrt_call->session_id);
+ } else {
+ dbg(23,"Not in hash ");
+ }
+#endif
+
+ return p_camelsrt_call;
+}
+
+/*
+ * Initialize the data per call for the Service Response Time Statistics
+ * Data are linked to a Camel operation in a TCAP transaction
+ */
+static void
+raz_camelsrt_call (struct camelsrt_call_t *p_camelsrt_call)
+{
+ memset(p_camelsrt_call,0,sizeof(struct camelsrt_call_t));
+}
+
+/*
+ * New record to create, to identify a new transaction
+ */
+static struct camelsrt_call_t *
+new_camelsrt_call(struct camelsrt_call_info_key_t *p_camelsrt_call_key)
+{
+ struct camelsrt_call_info_key_t *p_new_camelsrt_call_key;
+ struct camelsrt_call_t *p_new_camelsrt_call = NULL;
+
+ /* Register the transaction in the hash table
+ with the tcap transaction Id as main Key
+ Once created, this entry will be updated later */
+
+ p_new_camelsrt_call_key = wmem_new(wmem_file_scope(), struct camelsrt_call_info_key_t);
+ p_new_camelsrt_call_key->SessionIdKey = p_camelsrt_call_key->SessionIdKey;
+ p_new_camelsrt_call = wmem_new(wmem_file_scope(), struct camelsrt_call_t);
+ raz_camelsrt_call(p_new_camelsrt_call);
+ p_new_camelsrt_call->session_id = camelsrt_global_SessionId++;
+#ifdef DEBUG_CAMELSRT
+ dbg(10,"D%d ", p_new_camelsrt_call->session_id);
+#endif
+ /* store it */
+ g_hash_table_insert(srt_calls, p_new_camelsrt_call_key, p_new_camelsrt_call);
+ return p_new_camelsrt_call;
+}
+
+/*
+ * Routine called when the TAP is initialized.
+ * so hash table are (re)created
+ */
+static void
+camelsrt_init_routine(void)
+{
+ /* create new hash-table for SRT */
+ srt_calls = g_hash_table_new(camelsrt_call_hash, camelsrt_call_equal);
+ /* Reset the session counter */
+ camelsrt_global_SessionId=1;
+
+ /* The Display of SRT is enable
+ * 1) For wireshark only if Persistent Stat is enable
+ * 2) For Tshark, if the SRT handling is enable
+ */
+ gcamel_DisplaySRT=gcamel_PersistentSRT || gcamel_HandleSRT&gcamel_StatSRT;
+}
+
+static void
+camelsrt_cleanup_routine(void)
+{
+ /* free hash-table for SRT */
+ g_hash_table_destroy(srt_calls);
+}
+
+
+/*
+ * Update a record with the data of the Request
+ */
+static void
+update_camelsrt_call(struct camelsrt_call_t *p_camelsrt_call, packet_info *pinfo,
+ guint msg_category)
+{
+ p_camelsrt_call->category[msg_category].req_num = pinfo->num;
+ p_camelsrt_call->category[msg_category].rsp_num = 0;
+ p_camelsrt_call->category[msg_category].responded = FALSE;
+ p_camelsrt_call->category[msg_category].req_time = pinfo->abs_ts;
+}
+
+/*
+ * Update the Camel session info, and close the session.
+ * Then remove the associated context, if we do not have persistentSRT enable
+ */
+static void
+camelsrt_close_call_matching(packet_info *pinfo,
+ struct camelsrt_info_t *p_camelsrt_info)
+{
+ struct camelsrt_call_t *p_camelsrt_call;
+ struct camelsrt_call_info_key_t camelsrt_call_key;
+ nstime_t delta;
+
+ p_camelsrt_info->bool_msginfo[CAMELSRT_SESSION]=TRUE;
+#ifdef DEBUG_CAMELSRT
+ dbg(10,"\n Session end #%u\n", pinfo->num);
+#endif
+ /* look only for matching request, if matching conversation is available. */
+ camelsrt_call_key.SessionIdKey = p_camelsrt_info->tcap_session_id;
+
+#ifdef DEBUG_CAMELSRT
+ dbg(11,"Search key %lu ",camelsrt_call_key.SessionIdKey);
+#endif
+ p_camelsrt_call = find_camelsrt_call(&camelsrt_call_key);
+ if(p_camelsrt_call) {
+#ifdef DEBUG_CAMELSRT
+ dbg(12,"Found ");
+#endif
+ /* Calculate Service Response Time */
+ nstime_delta(&delta, &pinfo->abs_ts, &p_camelsrt_call->category[CAMELSRT_SESSION].req_time);
+ p_camelsrt_call->category[CAMELSRT_SESSION].responded = TRUE;
+ p_camelsrt_info->msginfo[CAMELSRT_SESSION].request_available = TRUE;
+ p_camelsrt_info->msginfo[CAMELSRT_SESSION].is_delta_time = TRUE;
+ p_camelsrt_info->msginfo[CAMELSRT_SESSION].delta_time = delta; /* give it to tap */
+ p_camelsrt_info->msginfo[CAMELSRT_SESSION].req_time = p_camelsrt_call->category[CAMELSRT_SESSION].req_time;
+
+ if ( !gcamel_PersistentSRT ) {
+ g_hash_table_remove(srt_calls, &camelsrt_call_key);
+#ifdef DEBUG_CAMELSRT
+ dbg(20,"remove hash ");
+#endif
+ } else {
+#ifdef DEBUG_CAMELSRT
+ dbg(20,"keep hash ");
+#endif
+ }
+ } /* call reference found */
+}
+
+/*
+ * Callback function for the TCAP dissector
+ * This callback function is used to inform the camel layer, that the session
+ * has been Closed or Aborted by a TCAP message without Camel component
+ * So, we can close the context for camel session, and update the stats.
+ */
+static void
+camelsrt_tcap_matching(tvbuff_t *tvb _U_, packet_info *pinfo,
+ proto_tree *tree _U_,
+ struct tcaphash_context_t *p_tcap_context)
+{
+ struct camelsrt_info_t *p_camelsrt_info;
+
+#ifdef DEBUG_CAMELSRT
+ dbg(11,"Camel_CallBack ");
+#endif
+ p_camelsrt_info=camelsrt_razinfo();
+
+ p_camelsrt_info->tcap_context=p_tcap_context;
+ if (p_tcap_context) {
+#ifdef DEBUG_CAMELSRT
+ dbg(11,"Close TCAP ");
+#endif
+ p_camelsrt_info->tcap_session_id = p_tcap_context->session_id;
+ camelsrt_close_call_matching(pinfo, p_camelsrt_info);
+ tap_queue_packet(camel_tap, pinfo, p_camelsrt_info);
+ }
+}
+
+/*
+ * Create the record identifiying the Camel session
+ * As the Tcap session id given by the TCAP dissector is uniq, it will be
+ * used as main key.
+ */
+static void
+camelsrt_begin_call_matching(packet_info *pinfo,
+ struct camelsrt_info_t *p_camelsrt_info)
+{
+ struct camelsrt_call_t *p_camelsrt_call;
+ struct camelsrt_call_info_key_t camelsrt_call_key;
+
+ p_camelsrt_info->bool_msginfo[CAMELSRT_SESSION]=TRUE;
+
+ /* prepare the key data */
+ camelsrt_call_key.SessionIdKey = p_camelsrt_info->tcap_session_id;
+
+ /* look up the request */
+#ifdef DEBUG_CAMELSRT
+ dbg(10,"\n Session begin #%u\n", pinfo->num);
+ dbg(11,"Search key %lu ",camelsrt_call_key.SessionIdKey);
+#endif
+ p_camelsrt_call = (struct camelsrt_call_t *)g_hash_table_lookup(srt_calls, &camelsrt_call_key);
+ if (p_camelsrt_call) {
+ /* We have seen this request before -> do nothing */
+#ifdef DEBUG_CAMELSRT
+ dbg(22,"Already seen ");
+#endif
+ } else { /* p_camelsrt_call has not been found */
+#ifdef DEBUG_CAMELSRT
+ dbg(10,"New key %lu ",camelsrt_call_key.SessionIdKey);
+#endif
+ p_camelsrt_call = new_camelsrt_call(&camelsrt_call_key);
+ p_camelsrt_call->tcap_context=(struct tcaphash_context_t *)p_camelsrt_info->tcap_context;
+ update_camelsrt_call(p_camelsrt_call, pinfo,CAMELSRT_SESSION);
+
+#ifdef DEBUG_CAMELSRT
+ dbg(11,"Update Callback ");
+#endif
+ p_camelsrt_call->tcap_context->callback=camelsrt_tcap_matching;
+ }
+}
+
+/*
+ * Register the request, and try to find the response
+ *
+ */
+static void
+camelsrt_request_call_matching(tvbuff_t *tvb, packet_info *pinfo,
+ proto_tree *tree,
+ struct camelsrt_info_t *p_camelsrt_info,
+ guint srt_type )
+{
+ struct camelsrt_call_t *p_camelsrt_call;
+ struct camelsrt_call_info_key_t camelsrt_call_key;
+ proto_item *ti, *hidden_item;
+
+#ifdef DEBUG_CAMELSRT
+ dbg(10,"\n %s #%u\n", val_to_str_const(srt_type, camelSRTtype_naming, "Unk"),pinfo->num);
+#endif
+
+ /* look only for matching request, if matching conversation is available. */
+ camelsrt_call_key.SessionIdKey = p_camelsrt_info->tcap_session_id;
+
+#ifdef DEBUG_CAMELSRT
+ dbg(11,"Search key %lu ", camelsrt_call_key.SessionIdKey);
+#endif
+ p_camelsrt_call = find_camelsrt_call(&camelsrt_call_key);
+ if(p_camelsrt_call) {
+#ifdef DEBUG_CAMELSRT
+ dbg(12,"Found ");
+#endif
+ if (gcamel_DisplaySRT)
+ proto_tree_add_uint(tree, hf_camelsrt_SessionId, tvb, 0,0, p_camelsrt_call->session_id);
+
+
+ /* Hmm.. As there are several slices ApplyChargingReport/ApplyCharging
+ * we will prepare the measurement for 3 slices with 3 categories */
+ if (srt_type==CAMELSRT_VOICE_ACR1) {
+ if (p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].req_num == 0) {
+ srt_type=CAMELSRT_VOICE_ACR1;
+ } else if ( (p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].req_num == 0)
+ && (p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].rsp_num != 0)
+ && (p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].rsp_num < pinfo->num) ) {
+ srt_type=CAMELSRT_VOICE_ACR2;
+ } else if ( (p_camelsrt_call->category[CAMELSRT_VOICE_ACR3].req_num == 0)
+ && (p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].rsp_num != 0)
+ && (p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].rsp_num < pinfo->num) ) {
+ srt_type=CAMELSRT_VOICE_ACR3;
+ } else if (p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].rsp_num != 0
+ && p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].rsp_num > pinfo->num) {
+ srt_type=CAMELSRT_VOICE_ACR1;
+ } else if ( p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].rsp_num != 0
+ && p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].rsp_num > pinfo->num) {
+ srt_type=CAMELSRT_VOICE_ACR2;
+ } else if (p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].rsp_num != 0
+ && p_camelsrt_call->category[CAMELSRT_VOICE_ACR3].rsp_num > pinfo->num) {
+ srt_type=CAMELSRT_VOICE_ACR3;
+ }
+#ifdef DEBUG_CAMELSRT
+ dbg(70,"Request ACR %u ",srt_type);
+ dbg(70,"ACR1 %u %u",p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].req_num, p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].rsp_num);
+ dbg(70,"ACR2 %u %u",p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].req_num, p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].rsp_num);
+ dbg(70,"ACR3 %u %u",p_camelsrt_call->category[CAMELSRT_VOICE_ACR3].req_num, p_camelsrt_call->category[CAMELSRT_VOICE_ACR3].rsp_num);
+#endif
+ } /* not ACR */
+ p_camelsrt_info->bool_msginfo[srt_type]=TRUE;
+
+
+ if (p_camelsrt_call->category[srt_type].req_num == 0) {
+ /* We have not yet seen a request to that call, so this must be the first request
+ remember its frame number. */
+#ifdef DEBUG_CAMELSRT
+ dbg(5,"Set reqlink #%u ", pinfo->num);
+#endif
+ update_camelsrt_call(p_camelsrt_call, pinfo, srt_type);
+ } else {
+ /* We have seen a request to this call - but was it *this* request? */
+ if (p_camelsrt_call->category[srt_type].req_num != pinfo->num) {
+
+ if (srt_type!=CAMELSRT_VOICE_DISC) {
+ /* No, so it's a duplicate request. Mark it as such. */
+#ifdef DEBUG_CAMELSRT
+ dbg(21,"Display_duplicate with req %d ", p_camelsrt_call->category[srt_type].req_num);
+#endif
+ p_camelsrt_info->msginfo[srt_type].is_duplicate = TRUE;
+ if (gcamel_DisplaySRT){
+ hidden_item = proto_tree_add_uint(tree, hf_camelsrt_Duplicate, tvb, 0,0, 77);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ }
+
+ } else {
+ /* Ignore duplicate frame */
+ if (pinfo->num > p_camelsrt_call->category[srt_type].req_num) {
+ p_camelsrt_call->category[srt_type].req_num = pinfo->num;
+#ifdef DEBUG_CAMELSRT
+ dbg(5,"DISC Set reqlink #%u ", pinfo->num);
+#endif
+ update_camelsrt_call(p_camelsrt_call, pinfo, srt_type);
+ } /* greater frame */
+ } /* DISC */
+ } /* req_num already seen */
+ } /* req_num != 0 */
+
+ /* add link to response frame, if available */
+ if ( gcamel_DisplaySRT &&
+ (p_camelsrt_call->category[srt_type].rsp_num != 0) &&
+ (p_camelsrt_call->category[srt_type].req_num != 0) &&
+ (p_camelsrt_call->category[srt_type].req_num == pinfo->num) ) {
+#ifdef DEBUG_CAMELSRT
+ dbg(20,"Display_framersplink %d ",p_camelsrt_call->category[srt_type].rsp_num);
+#endif
+ ti = proto_tree_add_uint_format(tree, hf_camelsrt_RequestFrame, tvb, 0, 0,
+ p_camelsrt_call->category[srt_type].rsp_num,
+ "Linked response %s in frame %u",
+ val_to_str_const(srt_type, camelSRTtype_naming, "Unk"),
+ p_camelsrt_call->category[srt_type].rsp_num);
+ PROTO_ITEM_SET_GENERATED(ti);
+ } /* frame valid */
+ } /* call reference */
+}
+
+/*
+ * Display the delta time between two messages in a field corresponding
+ * to the category (hf_camelsrt_DeltaTimexx).
+ */
+static void
+camelsrt_display_DeltaTime(proto_tree *tree, tvbuff_t *tvb, nstime_t *value_ptr,
+ guint category)
+{
+ proto_item *ti;
+
+ if ( gcamel_DisplaySRT ) {
+ switch(category) {
+ case CAMELSRT_VOICE_INITIALDP:
+ ti = proto_tree_add_time(tree, hf_camelsrt_DeltaTime31, tvb, 0, 0, value_ptr);
+ PROTO_ITEM_SET_GENERATED(ti);
+ break;
+
+ case CAMELSRT_VOICE_ACR1:
+ case CAMELSRT_VOICE_ACR2:
+ case CAMELSRT_VOICE_ACR3:
+ ti = proto_tree_add_time(tree, hf_camelsrt_DeltaTime22, tvb, 0, 0, value_ptr);
+ PROTO_ITEM_SET_GENERATED(ti);
+ break;
+
+ case CAMELSRT_VOICE_DISC:
+ ti = proto_tree_add_time(tree, hf_camelsrt_DeltaTime35, tvb, 0, 0, value_ptr);
+ PROTO_ITEM_SET_GENERATED(ti);
+ break;
+
+ case CAMELSRT_GPRS_INITIALDP:
+ ti = proto_tree_add_time(tree, hf_camelsrt_DeltaTime75, tvb, 0, 0, value_ptr);
+ PROTO_ITEM_SET_GENERATED(ti);
+ break;
+
+ case CAMELSRT_GPRS_REPORT:
+ ti = proto_tree_add_time(tree, hf_camelsrt_DeltaTime80, tvb, 0, 0, value_ptr);
+ PROTO_ITEM_SET_GENERATED(ti);
+ break;
+
+ case CAMELSRT_SMS_INITIALDP:
+ ti = proto_tree_add_time(tree, hf_camelsrt_DeltaTime65, tvb, 0, 0, value_ptr);
+ PROTO_ITEM_SET_GENERATED(ti);
+ break;
+
+ default:
+ break;
+ }
+ }
+}
+
+/*
+ * Check if the received message is a response to a previous request
+ * registered is the camel session context.
+ */
+static void
+camelsrt_report_call_matching(tvbuff_t *tvb, packet_info *pinfo,
+ proto_tree *tree,
+ struct camelsrt_info_t *p_camelsrt_info,
+ guint srt_type)
+{
+ struct camelsrt_call_t *p_camelsrt_call;
+ struct camelsrt_call_info_key_t camelsrt_call_key;
+ nstime_t delta;
+ proto_item *ti, *hidden_item;
+
+#ifdef DEBUG_CAMELSRT
+ dbg(10,"\n %s #%u\n", val_to_str_const(srt_type, camelSRTtype_naming, "Unk"),pinfo->num);
+#endif
+ camelsrt_call_key.SessionIdKey = p_camelsrt_info->tcap_session_id;
+ /* look only for matching request, if matching conversation is available. */
+
+#ifdef DEBUG_CAMELSRT
+ dbg(11,"Search key %lu ",camelsrt_call_key.SessionIdKey);
+#endif
+ p_camelsrt_call = find_camelsrt_call(&camelsrt_call_key);
+ if(p_camelsrt_call) {
+#ifdef DEBUG_CAMELSRT
+ dbg(12,"Found, req=%d ",p_camelsrt_call->category[srt_type].req_num);
+#endif
+ if ( gcamel_DisplaySRT )
+ proto_tree_add_uint(tree, hf_camelsrt_SessionId, tvb, 0,0, p_camelsrt_call->session_id);
+
+ if (srt_type==CAMELSRT_VOICE_ACR1) {
+ if (p_camelsrt_call->category[CAMELSRT_VOICE_ACR3].req_num != 0
+ && p_camelsrt_call->category[CAMELSRT_VOICE_ACR3].req_num < pinfo->num) {
+ srt_type=CAMELSRT_VOICE_ACR1;
+ } else if ( p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].req_num != 0
+ && p_camelsrt_call->category[CAMELSRT_VOICE_ACR2].req_num < pinfo->num) {
+ srt_type=CAMELSRT_VOICE_ACR2;
+ } else if (p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].req_num != 0
+ && p_camelsrt_call->category[CAMELSRT_VOICE_ACR1].req_num < pinfo->num) {
+ srt_type=CAMELSRT_VOICE_ACR1;
+ }
+#ifdef DEBUG_CAMELSRT
+ dbg(70,"Report ACR %u ",srt_type);
+#endif
+ } /* not ACR */
+ p_camelsrt_info->bool_msginfo[srt_type]=TRUE;
+
+ if (p_camelsrt_call->category[srt_type].rsp_num == 0) {
+ if ( (p_camelsrt_call->category[srt_type].req_num != 0)
+ && (pinfo->num > p_camelsrt_call->category[srt_type].req_num) ){
+ /* We have not yet seen a response to that call, so this must be the first response;
+ remember its frame number only if response comes after request */
+#ifdef DEBUG_CAMELSRT
+ dbg(14,"Set reslink #%d req %u ",pinfo->num, p_camelsrt_call->category[srt_type].req_num);
+#endif
+ p_camelsrt_call->category[srt_type].rsp_num = pinfo->num;
+
+ } else {
+#ifdef DEBUG_CAMELSRT
+ dbg(2,"badreslink #%u req %u ",pinfo->num, p_camelsrt_call->category[srt_type].req_num);
+#endif
+ } /* req_num != 0 */
+ } else { /* rsp_num != 0 */
+ /* We have seen a response to this call - but was it *this* response? */
+ if (p_camelsrt_call->category[srt_type].rsp_num != pinfo->num) {
+ /* No, so it's a duplicate response. Mark it as such. */
+#ifdef DEBUG_CAMELSRT
+ dbg(21,"Display_duplicate rsp=%d ", p_camelsrt_call->category[srt_type].rsp_num);
+#endif
+ p_camelsrt_info->msginfo[srt_type].is_duplicate = TRUE;
+ if ( gcamel_DisplaySRT ){
+ hidden_item = proto_tree_add_uint(tree, hf_camelsrt_Duplicate, tvb, 0,0, 77);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ }
+ }
+ } /* rsp_num != 0 */
+
+ if ( (p_camelsrt_call->category[srt_type].req_num != 0) &&
+ (p_camelsrt_call->category[srt_type].rsp_num != 0) &&
+ (p_camelsrt_call->category[srt_type].rsp_num == pinfo->num) ) {
+
+ p_camelsrt_call->category[srt_type].responded = TRUE;
+ p_camelsrt_info->msginfo[srt_type].request_available = TRUE;
+#ifdef DEBUG_CAMELSRT
+ dbg(20,"Display_frameReqlink %d ",p_camelsrt_call->category[srt_type].req_num);
+#endif
+ /* Indicate the frame to which this is a reply. */
+ if ( gcamel_DisplaySRT ) {
+ ti = proto_tree_add_uint_format(tree, hf_camelsrt_ResponseFrame, tvb, 0, 0,
+ p_camelsrt_call->category[srt_type].req_num,
+ "Linked request %s in frame %u",
+ val_to_str_const(srt_type, camelSRTtype_naming, "Unk"),
+ p_camelsrt_call->category[srt_type].req_num);
+ PROTO_ITEM_SET_GENERATED(ti);
+ }
+ /* Calculate Service Response Time */
+ nstime_delta(&delta, &pinfo->abs_ts, &p_camelsrt_call->category[srt_type].req_time);
+
+ p_camelsrt_info->msginfo[srt_type].is_delta_time = TRUE;
+ p_camelsrt_info->msginfo[srt_type].delta_time = delta; /* give it to tap */
+ p_camelsrt_info->msginfo[srt_type].req_time = p_camelsrt_call->category[srt_type].req_time;
+
+ /* display Service Response Time and make it filterable */
+ camelsrt_display_DeltaTime(tree, tvb, &delta, srt_type);
+
+ } /*req_num != 0 && not duplicate */
+ } /* call reference found */
+}
+
+/*
+ * Service Response Time analyze, called just after the camel dissector
+ * According to the camel operation, we
+ * - open/close a context for the camel session
+ * - look for a request, or look for the corresponding response
+ */
+void
+camelsrt_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ struct camelsrt_info_t *p_camelsrt_info)
+{
+
+#ifdef DEBUG_CAMELSRT
+ dbg(10,"tcap_session #%d ", p_camelsrt_info->tcap_session_id);
+#endif
+
+ switch (p_camelsrt_info->opcode) {
+
+ case 0: /*InitialDP*/
+ camelsrt_begin_call_matching(pinfo, p_camelsrt_info);
+ camelsrt_request_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_VOICE_INITIALDP);
+ break;
+ case 60: /*InitialDPSMS*/
+ camelsrt_begin_call_matching(pinfo, p_camelsrt_info);
+ camelsrt_request_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_SMS_INITIALDP);
+ break;
+ case 78: /*InitialDPGPRS*/
+ camelsrt_begin_call_matching(pinfo, p_camelsrt_info);
+ camelsrt_request_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_GPRS_INITIALDP);
+ break;
+
+ case 23: /*RequestReportBCSMEvent*/
+ break;
+
+ case 63: /*RequestReportSMSEvent*/
+ break;
+
+ case 81: /*RequestReportGPRSEvent*/
+ break;
+
+ case 24: /*EventReportBCSMEvent*/
+ camelsrt_request_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_VOICE_DISC );
+ break;
+
+ case 64: /*EventReportSMS*/
+ /* Session has been explicity closed without TC_END */
+ camelsrt_close_call_matching(pinfo, p_camelsrt_info);
+ tcapsrt_close((struct tcaphash_context_t *)p_camelsrt_info->tcap_context, pinfo);
+ break;
+
+ case 80: /*EventReportGPRS*/
+ camelsrt_begin_call_matching(pinfo, p_camelsrt_info);
+ camelsrt_request_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_GPRS_REPORT);
+ break;
+
+ case 35: /*ApplyCharging*/
+ camelsrt_report_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_VOICE_ACR1 );
+ break;
+
+ case 71: /*ApplyChargingGPRS*/
+ break;
+
+ case 36: /*ApplyChargingReport*/
+ camelsrt_request_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_VOICE_ACR1 );
+ break;
+
+ case 72: /*ApplyChargingReportGPRS*/
+ break;
+
+ case 31: /*Continue*/
+ camelsrt_report_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_VOICE_INITIALDP);
+ break;
+ case 65: /*ContinueSMS*/
+ camelsrt_report_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_SMS_INITIALDP);
+ break;
+ case 75: /*ContinueGPRS*/
+ camelsrt_report_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_GPRS_INITIALDP);
+ camelsrt_report_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_GPRS_REPORT);
+ break;
+
+ case 22: /*ReleaseCall*/
+ camelsrt_report_call_matching(tvb, pinfo, tree, p_camelsrt_info,
+ CAMELSRT_VOICE_DISC);
+ /* Session has been closed by Network */
+ camelsrt_close_call_matching(pinfo, p_camelsrt_info);
+ break;
+
+ case 66: /*ReleaseSMS*/
+ /* Session has been closed by Network */
+ camelsrt_close_call_matching(pinfo, p_camelsrt_info);
+ tcapsrt_close((struct tcaphash_context_t *)p_camelsrt_info->tcap_context,pinfo);
+ break;
+
+ case 79: /*ReleaseGPRS*/
+ /* Session has been closed by Network */
+ camelsrt_close_call_matching(pinfo, p_camelsrt_info);
+ break;
+ } /* switch opcode */
+}
+
+/*
+ * Initialize the Message Info used by the main dissector
+ * Data are linked to a TCAP transaction
+ */
+struct camelsrt_info_t *
+camelsrt_razinfo(void)
+{
+ struct camelsrt_info_t *p_camelsrt_info ;
+
+ /* Global buffer for packet extraction */
+ camelsrt_global_current++;
+ if(camelsrt_global_current==MAX_CAMEL_INSTANCE){
+ camelsrt_global_current=0;
+ }
+
+ p_camelsrt_info=&camelsrt_global_info[camelsrt_global_current];
+ memset(p_camelsrt_info,0,sizeof(struct camelsrt_info_t));
+
+ p_camelsrt_info->opcode=255;
+
+ return p_camelsrt_info;
+}
+
+
+static guint8 camel_pdu_type = 0;
+static guint8 camel_pdu_size = 0;
+
+
+static int
+dissect_camel_camelPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_,proto_tree *tree,
+ int hf_index, struct tcap_private_t * p_private_tcap) {
+
+ char *version_ptr;
+
+ opcode = 0;
+ application_context_version = 0;
+ if (p_private_tcap != NULL){
+ if (p_private_tcap->acv==TRUE ){
+ version_ptr = strrchr((const char *)p_private_tcap->oid,'.');
+ if (version_ptr)
+ application_context_version = atoi(version_ptr+1);
+ }
+ gp_camelsrt_info->tcap_context=p_private_tcap->context;
+ if (p_private_tcap->context)
+ gp_camelsrt_info->tcap_session_id = ( (struct tcaphash_context_t *) (p_private_tcap->context))->session_id;
+ }
+
+ camel_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
+ /* Get the length and add 2 */
+ camel_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+
+ /* Populate the info column with PDU type*/
+ col_add_str(actx->pinfo->cinfo, COL_INFO, val_to_str(camel_pdu_type, camel_Component_vals, "Unknown Camel (%u)"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+
+ is_ExtensionField =FALSE;
+ offset = dissect_camel_ROS(TRUE, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+static int
+dissect_camel_v1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ proto_item *item;
+ proto_tree *tree = NULL, *stat_tree = NULL;
+ struct tcap_private_t * p_private_tcap = (struct tcap_private_t*)data;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "Camel-v1");
+
+ camel_ver = 1;
+
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_camel, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_camel);
+ }
+ /* camelsrt reset counter, and initialise global pointer
+ to store service response time related data */
+ gp_camelsrt_info=camelsrt_razinfo();
+
+ dissect_camel_camelPDU(FALSE, tvb, 0, &asn1_ctx , tree, -1, p_private_tcap);
+
+ /* If a Tcap context is associated to this transaction */
+ if (gcamel_HandleSRT &&
+ gp_camelsrt_info->tcap_context ) {
+ if (gcamel_DisplaySRT && tree) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, 0, ett_camel_stat, NULL, "Stat");
+ }
+ camelsrt_call_matching(tvb, pinfo, stat_tree, gp_camelsrt_info);
+ tap_queue_packet(camel_tap, pinfo, gp_camelsrt_info);
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_camel_v2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ proto_item *item;
+ proto_tree *tree = NULL, *stat_tree = NULL;
+ struct tcap_private_t * p_private_tcap = (struct tcap_private_t*)data;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "Camel-v2");
+
+ camel_ver = 2;
+
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_camel, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_camel);
+ proto_item_append_text(item, "-V2");
+ }
+ /* camelsrt reset counter, and initialise global pointer
+ to store service response time related data */
+ gp_camelsrt_info=camelsrt_razinfo();
+
+ dissect_camel_camelPDU(FALSE, tvb, 0, &asn1_ctx , tree, -1, p_private_tcap);
+
+ /* If a Tcap context is associated to this transaction */
+ if (gcamel_HandleSRT &&
+ gp_camelsrt_info->tcap_context ) {
+ if (gcamel_DisplaySRT && tree) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, 0, ett_camel_stat, NULL, "Stat");
+ }
+ camelsrt_call_matching(tvb, pinfo, stat_tree, gp_camelsrt_info);
+ tap_queue_packet(camel_tap, pinfo, gp_camelsrt_info);
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_camel(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ proto_item *item;
+ proto_tree *tree, *stat_tree = NULL;
+ struct tcap_private_t * p_private_tcap = (struct tcap_private_t*)data;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "Camel");
+
+ /* Unknown camel version */
+ camel_ver = 0;
+
+ /* create display subtree for the protocol */
+ item = proto_tree_add_item(parent_tree, proto_camel, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_camel);
+
+ /* camelsrt reset counter, and initialise global pointer
+ to store service response time related data */
+ gp_camelsrt_info=camelsrt_razinfo();
+ dissect_camel_camelPDU(FALSE, tvb, 0, &asn1_ctx , tree, -1, p_private_tcap);
+
+ /* If a Tcap context is associated to this transaction */
+ if (gcamel_HandleSRT &&
+ gp_camelsrt_info->tcap_context ) {
+ if (gcamel_DisplaySRT && tree) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, 0, ett_camel_stat, NULL, "Stat");
+ }
+ camelsrt_call_matching(tvb, pinfo, stat_tree, gp_camelsrt_info);
+ tap_queue_packet(camel_tap, pinfo, gp_camelsrt_info);
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+/* TAP STAT INFO */
+typedef enum
+{
+ MESSAGE_TYPE_COLUMN = 0,
+ COUNT_COLUMN
+} camel_stat_columns;
+
+static stat_tap_table_item camel_stat_fields[] = {{TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Message Type or Reason", "%-25s"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Count", "%d"}};
+
+static void camel_stat_init(stat_tap_table_ui* new_stat, new_stat_tap_gui_init_cb gui_callback, void* gui_data)
+{
+ int num_fields = sizeof(camel_stat_fields)/sizeof(stat_tap_table_item);
+ stat_tap_table* table = new_stat_tap_init_table("CAMEL Message Counters", num_fields, 0, NULL, gui_callback, gui_data);
+ int i;
+ stat_tap_table_item_type items[sizeof(camel_stat_fields)/sizeof(stat_tap_table_item)];
+
+ new_stat_tap_add_table(new_stat, table);
+
+ items[MESSAGE_TYPE_COLUMN].type = TABLE_ITEM_STRING;
+ items[COUNT_COLUMN].type = TABLE_ITEM_UINT;
+ items[COUNT_COLUMN].value.uint_value = 0;
+
+ /* Add a row for each value type */
+ for (i = 0; i < camel_MAX_NUM_OPR_CODES; i++)
+ {
+ const char *ocs = try_val_to_str(i, camel_opr_code_strings);
+ char *col_str;
+ if (ocs) {
+ col_str = g_strdup_printf("Request %s", ocs);
+ } else {
+ col_str = g_strdup_printf("Unknown op code %d", i);
+ }
+
+ items[MESSAGE_TYPE_COLUMN].value.string_value = col_str;
+ new_stat_tap_init_table_row(table, i, num_fields, items);
+ }
+}
+
+static gboolean
+camel_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *csi_ptr)
+{
+ new_stat_data_t* stat_data = (new_stat_data_t*)tapdata;
+ const struct camelsrt_info_t *csi = (const struct camelsrt_info_t *) csi_ptr;
+ stat_tap_table* table;
+ stat_tap_table_item_type* msg_data;
+ guint i = 0;
+
+ table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, i);
+ if (csi->opcode >= table->num_elements)
+ return FALSE;
+ msg_data = new_stat_tap_get_field_data(table, csi->opcode, COUNT_COLUMN);
+ msg_data->value.uint_value++;
+ new_stat_tap_set_field_data(table, csi->opcode, COUNT_COLUMN, msg_data);
+
+ return TRUE;
+}
+
+static void
+camel_stat_reset(stat_tap_table* table)
+{
+ guint element;
+ stat_tap_table_item_type* item_data;
+
+ for (element = 0; element < table->num_elements; element++)
+ {
+ item_data = new_stat_tap_get_field_data(table, element, COUNT_COLUMN);
+ item_data->value.uint_value = 0;
+ new_stat_tap_set_field_data(table, element, COUNT_COLUMN, item_data);
+ }
+}
+
+static void
+camel_stat_free_table_item(stat_tap_table* table _U_, guint row _U_, guint column, stat_tap_table_item_type* field_data)
+{
+ if (column != MESSAGE_TYPE_COLUMN) return;
+ g_free((char*)field_data->value.string_value);
+}
+
+/*--- proto_reg_handoff_camel ---------------------------------------*/
+static void range_delete_callback(guint32 ssn)
+{
+ if (ssn) {
+ delete_itu_tcap_subdissector(ssn, camel_handle);
+ }
+}
+
+static void range_add_callback(guint32 ssn)
+{
+ if (ssn) {
+ add_itu_tcap_subdissector(ssn, camel_handle);
+ }
+}
+
+void proto_reg_handoff_camel(void) {
+ static gboolean camel_prefs_initialized = FALSE;
+ static range_t *ssn_range;
+
+ if (!camel_prefs_initialized) {
+
+ camel_prefs_initialized = TRUE;
+ camel_handle = find_dissector("camel");
+ camel_v1_handle = find_dissector("camel-v1");
+ camel_v2_handle = find_dissector("camel-v2");
+
+
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.50.0",camel_v1_handle, proto_camel, "CAP-v1-gsmSSF-to-gsmSCF-AC" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.50.1",camel_v2_handle, proto_camel, "CAP-v2-gsmSSF-to-gsmSCF-AC" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.51.1",camel_v2_handle, proto_camel, "CAP-v2-assist-gsmSSF-to-gsmSCF-AC" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.52.1",camel_v2_handle, proto_camel, "CAP-v2-gsmSRF-to-gsmSCF-AC" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.21.3.50",camel_handle, proto_camel, "cap3-gprssf-scfAC" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.21.3.51",camel_handle, proto_camel, "cap3-gsmscf-gprsssfAC" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.21.3.61",camel_handle, proto_camel, "cap3-sms-AC" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.23.3.4",camel_handle, proto_camel, "capssf-scfGenericAC" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.23.3.61",camel_handle, proto_camel, "cap4-sms-AC" );
+
+
+#include "packet-camel-dis-tab.c"
+ } else {
+ range_foreach(ssn_range, range_delete_callback);
+ g_free(ssn_range);
+ }
+
+ ssn_range = range_copy(global_ssn_range);
+
+ range_foreach(ssn_range, range_add_callback);
+
+}
+
+void proto_register_camel(void) {
+ module_t *camel_module;
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_camel_extension_code_local,
+ { "local", "camel.extension_code_local",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "Extension local code", HFILL }},
+ { &hf_camel_error_code_local,
+ { "local", "camel.error_code_local",
+ FT_INT32, BASE_DEC, VALS(camel_err_code_string_vals), 0,
+ "ERROR code", HFILL }},
+ { &hf_camel_cause_indicator, /* Currently not enabled */
+ { "Cause indicator", "camel.cause_indicator",
+ FT_UINT8, BASE_DEC|BASE_EXT_STRING, &q850_cause_code_vals_ext, 0x7f,
+ NULL, HFILL }},
+ { &hf_digit,
+ { "Digit Value", "camel.digit_value",
+ FT_UINT8, BASE_DEC, VALS(digit_value), 0, NULL, HFILL }},
+ { &hf_camel_PDPTypeNumber_etsi,
+ { "ETSI defined PDP Type Value", "camel.PDPTypeNumber_etsi",
+ FT_UINT8, BASE_HEX, VALS(gsm_map_etsi_defined_pdp_vals), 0,
+ NULL, HFILL }},
+ { &hf_camel_PDPTypeNumber_ietf,
+ { "IETF defined PDP Type Value", "camel.PDPTypeNumber_ietf",
+ FT_UINT8, BASE_HEX, VALS(gsm_map_ietf_defined_pdp_vals), 0,
+ NULL, HFILL }},
+ { &hf_camel_PDPAddress_IPv4,
+ { "PDPAddress IPv4", "camel.PDPAddress_IPv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ "IPAddress IPv4", HFILL }},
+ { &hf_camel_PDPAddress_IPv6,
+ { "PDPAddress IPv6", "camel.PDPAddress_IPv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ "IPAddress IPv6", HFILL }},
+ { &hf_camel_cellGlobalIdOrServiceAreaIdFixedLength,
+ { "CellGlobalIdOrServiceAreaIdFixedLength", "camel.CellGlobalIdOrServiceAreaIdFixedLength",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "LocationInformationGPRS/CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
+ { &hf_camel_RP_Cause,
+ { "RP Cause", "camel.RP_Cause",
+ FT_UINT8, BASE_DEC, VALS(camel_RP_Cause_values), 0x7F,
+ "RP Cause Value", HFILL }},
+
+ { &hf_camel_CAMEL_AChBillingChargingCharacteristics,
+ { "CAMEL-AChBillingChargingCharacteristics", "camel.CAMEL_AChBillingChargingCharacteristics",
+ FT_UINT32, BASE_DEC, VALS(camel_CAMEL_AChBillingChargingCharacteristics_vals), 0,
+ NULL, HFILL }},
+
+ { &hf_camel_CAMEL_FCIBillingChargingCharacteristics,
+ { "CAMEL-FCIBillingChargingCharacteristics", "camel.CAMEL_FCIBillingChargingCharacteristics",
+ FT_UINT32, BASE_DEC, VALS(camel_CAMEL_FCIBillingChargingCharacteristics_vals), 0,
+ NULL, HFILL }},
+
+ { &hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics,
+ { "CAMEL-FCIGPRSBillingChargingCharacteristics", "camel.CAMEL_FCIGPRSBillingChargingCharacteristics",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+
+ { &hf_camel_CAMEL_FCISMSBillingChargingCharacteristics,
+ { "CAMEL-FCISMSBillingChargingCharacteristics", "camel.CAMEL_FCISMSBillingChargingCharacteristics",
+ FT_UINT32, BASE_DEC, VALS(camel_CAMEL_FCISMSBillingChargingCharacteristics_vals), 0,
+ NULL, HFILL }},
+
+ { &hf_camel_CAMEL_SCIBillingChargingCharacteristics,
+ { "CAMEL-SCIBillingChargingCharacteristics", "camel.CAMEL_SCIBillingChargingCharacteristics",
+ FT_UINT32, BASE_DEC, VALS(camel_CAMEL_SCIBillingChargingCharacteristics_vals), 0,
+ NULL, HFILL }},
+
+ { &hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics,
+ { "CAMEL-SCIGPRSBillingChargingCharacteristics", "camel.CAMEL_SCIGPRSBillingChargingCharacteristics",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CAMEL-FSCIGPRSBillingChargingCharacteristics", HFILL }},
+
+ { &hf_camel_CAMEL_CallResult,
+ { "CAMEL-CAMEL_CallResult", "camel.CAMEL_CallResult",
+ FT_UINT32, BASE_DEC, VALS(camel_CAMEL_CallResult_vals), 0,
+ "CAMEL-CallResult", HFILL }},
+
+ /* Camel Service Response Time */
+ { &hf_camelsrt_SessionId,
+ { "Session Id",
+ "camel.srt.session_id",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_camelsrt_RequestNumber,
+ { "Request Number",
+ "camel.srt.request_number",
+ FT_UINT64, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_camelsrt_Duplicate,
+ { "Request Duplicate",
+ "camel.srt.duplicate",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_camelsrt_RequestFrame,
+ { "Requested Frame",
+ "camel.srt.reqframe",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "SRT Request Frame", HFILL }
+ },
+ { &hf_camelsrt_ResponseFrame,
+ { "Response Frame",
+ "camel.srt.rspframe",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "SRT Response Frame", HFILL }
+ },
+ { &hf_camelsrt_DeltaTime,
+ { "Service Response Time",
+ "camel.srt.deltatime",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "DeltaTime between Request and Response", HFILL }
+ },
+ { &hf_camelsrt_SessionTime,
+ { "Session duration",
+ "camel.srt.sessiontime",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "Duration of the TCAP session", HFILL }
+ },
+ { &hf_camelsrt_DeltaTime31,
+ { "Service Response Time",
+ "camel.srt.deltatime31",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "DeltaTime between InitialDP and Continue", HFILL }
+ },
+ { &hf_camelsrt_DeltaTime65,
+ { "Service Response Time",
+ "camel.srt.deltatime65",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "DeltaTime between InitialDPSMS and ContinueSMS", HFILL }
+ },
+ { &hf_camelsrt_DeltaTime75,
+ { "Service Response Time",
+ "camel.srt.deltatime75",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "DeltaTime between InitialDPGPRS and ContinueGPRS", HFILL }
+ },
+ { &hf_camelsrt_DeltaTime35,
+ { "Service Response Time",
+ "camel.srt.deltatime35",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "DeltaTime between ApplyCharginReport and ApplyCharging", HFILL }
+ },
+ { &hf_camelsrt_DeltaTime22,
+ { "Service Response Time",
+ "camel.srt.deltatime22",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "DeltaTime between EventReport(Disconnect) and Release Call", HFILL }
+ },
+ { &hf_camelsrt_DeltaTime80,
+ { "Service Response Time",
+ "camel.srt.deltatime80",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "DeltaTime between EventReportGPRS and ContinueGPRS", HFILL }
+ },
+
+#ifdef REMOVED
+#endif
+#include "packet-camel-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_camel,
+ &ett_camelisup_parameter,
+ &ett_camel_AccessPointName,
+ &ett_camel_pdptypenumber,
+ &ett_camel_cause,
+ &ett_camel_RPcause,
+ &ett_camel_stat,
+ &ett_camel_calledpartybcdnumber,
+ &ett_camel_callingpartynumber,
+ &ett_camel_locationnumber,
+ &ett_camel_additionalcallingpartynumber,
+
+#include "packet-camel-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_camel_unknown_invokeData, { "camel.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL }},
+ { &ei_camel_unknown_returnResultData, { "camel.unknown.returnResultData", PI_MALFORMED, PI_WARN, "Unknown returnResultData", EXPFILL }},
+ { &ei_camel_unknown_returnErrorData, { "camel.unknown.returnErrorData", PI_MALFORMED, PI_WARN, "Unknown returnResultData", EXPFILL }},
+ };
+
+ expert_module_t* expert_camel;
+
+ static tap_param camel_stat_params[] = {
+ { PARAM_FILTER, "filter", "Filter", NULL, TRUE }
+ };
+
+ static stat_tap_table_ui camel_stat_table = {
+ REGISTER_STAT_GROUP_TELEPHONY_GSM,
+ "CAMEL Messages and Response Status",
+ PSNAME,
+ "camel,counter",
+ camel_stat_init,
+ camel_stat_packet,
+ camel_stat_reset,
+ camel_stat_free_table_item,
+ NULL,
+ sizeof(camel_stat_fields)/sizeof(stat_tap_table_item), camel_stat_fields,
+ sizeof(camel_stat_params)/sizeof(tap_param), camel_stat_params,
+ NULL
+ };
+
+ /* Register protocol */
+ proto_camel = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ register_dissector("camel", dissect_camel, proto_camel);
+ register_dissector("camel-v1", dissect_camel_v1, proto_camel);
+ register_dissector("camel-v2", dissect_camel_v2, proto_camel);
+
+ proto_register_field_array(proto_camel, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_camel = expert_register_protocol(proto_camel);
+ expert_register_field_array(expert_camel, ei, array_length(ei));
+
+ rose_ctx_init(&camel_rose_ctx);
+
+ /* Register dissector tables */
+ camel_rose_ctx.arg_local_dissector_table = register_dissector_table("camel.ros.local.arg",
+ "CAMEL Operation Argument (local opcode)",
+ FT_UINT32, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ camel_rose_ctx.res_local_dissector_table = register_dissector_table("camel.ros.local.res",
+ "CAMEL Operation Result (local opcode)",
+ FT_UINT32, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ camel_rose_ctx.err_local_dissector_table = register_dissector_table("camel.ros.local.err",
+ "CAMEL Error (local opcode)",
+ FT_UINT32, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+
+ /* Register our configuration options, particularly our SSNs */
+ /* Set default SSNs */
+ range_convert_str(&global_ssn_range, "146", MAX_SSN);
+
+ camel_module = prefs_register_protocol(proto_camel, proto_reg_handoff_camel);
+
+ prefs_register_enum_preference(camel_module, "date.format", "Date Format",
+ "The date format: (DD/MM) or (MM/DD)",
+ &date_format, date_options, FALSE);
+
+
+ prefs_register_range_preference(camel_module, "tcap.ssn",
+ "TCAP SSNs",
+ "TCAP Subsystem numbers used for Camel",
+ &global_ssn_range, MAX_SSN);
+
+ prefs_register_bool_preference(camel_module, "srt",
+ "Analyze Service Response Time",
+ "Enable response time analysis",
+ &gcamel_HandleSRT);
+
+ prefs_register_bool_preference(camel_module, "persistentsrt",
+ "Persistent stats for SRT",
+ "Statistics for Response Time",
+ &gcamel_PersistentSRT);
+
+ /* Routine for statistic */
+ register_init_routine(&camelsrt_init_routine);
+ register_cleanup_routine(&camelsrt_cleanup_routine);
+ camel_tap=register_tap(PSNAME);
+
+ register_srt_table(proto_camel, PSNAME, 1, camelstat_packet, camelstat_init, NULL);
+ register_stat_tap_table_ui(&camel_stat_table);
+}
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/camel/packet-camel-template.h b/epan/dissectors/asn1/camel/packet-camel-template.h
new file mode 100644
index 0000000000..6bff47834c
--- /dev/null
+++ b/epan/dissectors/asn1/camel/packet-camel-template.h
@@ -0,0 +1,139 @@
+/* packet-camel-template.h
+ * Routines for Camel
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ * Copyright 2005, Olivier Jacques <olivier.jacques@hp.com>
+ * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References: ETSI 300 374
+ */
+/*
+ * Indentation logic: this file is indented with 2 spaces indentation.
+ * there are no tabs.
+ */
+
+
+#ifndef PACKET_CAMEL_H
+#define PACKET_CAMEL_H
+
+#include "ws_symbol_export.h"
+
+void proto_reg_handoff_camel(void);
+void proto_register_camel(void);
+
+/* Defines for the camel taps */
+#define camel_MAX_NUM_OPR_CODES 256
+
+WS_DLL_PUBLIC const value_string camel_opr_code_strings[];
+/* #include "packet-camel-exp.h"*/
+
+/** @file
+*/
+#define NB_CAMELSRT_CATEGORY 9+1 /**< Number of type of message */
+/* for example TC_BEGIN with InitalDP, and TC_CONT with RequestReportBCSMEvent
+ is a category, we want to measure the delay between the two messages */
+
+#define CAMELSRT_SESSION 1
+
+#define CAMELSRT_VOICE_INITIALDP 2
+#define CAMELSRT_VOICE_ACR1 3
+#define CAMELSRT_VOICE_ACR2 4
+#define CAMELSRT_VOICE_ACR3 5
+#define CAMELSRT_VOICE_DISC 6
+
+#define CAMELSRT_GPRS_INITIALDP 7
+#define CAMELSRT_GPRS_REPORT 8
+
+#define CAMELSRT_SMS_INITIALDP 9
+
+WS_DLL_PUBLIC const value_string camelSRTtype_naming[];
+
+/** If we have a request message and its response,
+ (eg: ApplyCharging, ApplyChargingReport)
+ the frames numbers are stored in this structure */
+
+struct camelsrt_category_t {
+ guint32 req_num; /**< frame number request seen */
+ guint32 rsp_num; /**< frame number response seen */
+ nstime_t req_time; /**< arrival time of request */
+ gboolean responded; /**< true, if request has been responded */
+};
+
+/** List of stored parameters for a Camel dialogue
+ All this parameters are linked to the hash table key below (use of Tid)
+ In case of same Tid reused, the Camel parameters are chained.
+ The right dialogue will be identified with the arrival time of the InitialDP */
+
+struct camelsrt_call_t {
+ guint32 session_id; /**< Identify the session, with an internal number */
+ struct tcaphash_context_t * tcap_context;
+ struct camelsrt_category_t category[NB_CAMELSRT_CATEGORY];
+};
+
+
+/** The Key for the hash table is the TCAP origine transaction identifier
+ of the TC_BEGIN containing the InitialDP */
+
+struct camelsrt_call_info_key_t {
+ guint32 SessionIdKey;
+};
+
+/** Info for a couple of messages (or category)
+ The request must be available, not duplicated,
+ and once the corresponding response received,
+ we can deduce the Delta Time between Request/response */
+
+struct camelsrt_msginfo_t {
+ gboolean request_available;
+ gboolean is_duplicate;
+ gboolean is_delta_time;
+ nstime_t req_time;
+ nstime_t delta_time;
+};
+
+/** List of infos to store for the analyse */
+
+struct camelsrt_info_t {
+ guint32 tcap_session_id;
+ void * tcap_context;
+ guint8 opcode; /**< operation code of message received */
+ guint8 bool_msginfo[NB_CAMELSRT_CATEGORY]; /**< category for the received message */
+ struct camelsrt_msginfo_t msginfo[NB_CAMELSRT_CATEGORY];
+};
+
+/**
+ * Initialize the Message Info used by the main dissector
+ * Data are linked to a TCAP transaction
+ */
+struct camelsrt_info_t * camelsrt_razinfo(void);
+
+/**
+ * Service Response Time analyze, called just after the camel dissector
+ * According to the camel operation, we
+ * - open/close a context for the camel session
+ * - look for a request, or look for the corresponding response
+ */
+void camelsrt_call_matching(tvbuff_t *tvb,
+ packet_info * pinfo _U_,
+ proto_tree *tree,
+ struct camelsrt_info_t * p_camel_info);
+
+WS_DLL_PUBLIC gboolean gcamel_StatSRT;
+
+#endif /* PACKET_camel_H */
diff --git a/epan/dissectors/asn1/cdt/CMakeLists.txt b/epan/dissectors/asn1/cdt/CMakeLists.txt
new file mode 100644
index 0000000000..0ebeec9def
--- /dev/null
+++ b/epan/dissectors/asn1/cdt/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME cdt )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/cdt/Makefile.am b/epan/dissectors/asn1/cdt/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/cdt/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/cdt/Makefile.common b/epan/dissectors/asn1/cdt/Makefile.common
new file mode 100644
index 0000000000..5bf313e49b
--- /dev/null
+++ b/epan/dissectors/asn1/cdt/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=cdt
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/cdt/Makefile.nmake b/epan/dissectors/asn1/cdt/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/cdt/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/cdt/cdt.asn b/epan/dissectors/asn1/cdt/cdt.asn
new file mode 100644
index 0000000000..9acc2da46c
--- /dev/null
+++ b/epan/dissectors/asn1/cdt/cdt.asn
@@ -0,0 +1,36 @@
+CompressedDataType
+ { iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0) id-mcont(4) 2 }
+
+DEFINITIONS ::=
+BEGIN
+
+CompressedData ::= SEQUENCE {
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ compressedContentInfo CompressedContentInfo }
+
+CompressionAlgorithmIdentifier ::= CHOICE {
+ algorithmID-ShortForm [0] IMPLICIT AlgorithmID-ShortForm,
+ algorithmID-OID [1] IMPLICIT OBJECT IDENTIFIER }
+
+AlgorithmID-ShortForm ::= INTEGER {
+ zlibCompress (0) }
+
+CompressedContentInfo ::= SEQUENCE {
+ contentType CHOICE {
+ contentType-ShortForm [0] IMPLICIT ContentType-ShortForm,
+ contentType-OID [1] IMPLICIT OBJECT IDENTIFIER
+ },
+ compressedContent [0] EXPLICIT CompressedContent }
+
+CompressedContent ::= OCTET STRING
+
+ContentType-ShortForm ::= INTEGER {
+ unidentified (0),
+ external (1), -- identified by the object-identifier
+ -- of the EXTERNAL content
+ p1 (2),
+ p3 (3),
+ p7 (4) }
+
+END
diff --git a/epan/dissectors/asn1/cdt/cdt.cnf b/epan/dissectors/asn1/cdt/cdt.cnf
new file mode 100644
index 0000000000..a3b8e0a7e2
--- /dev/null
+++ b/epan/dissectors/asn1/cdt/cdt.cnf
@@ -0,0 +1,106 @@
+# cdt.cnf
+# Compressed Data Type conformation file
+
+#.EXPORTS
+CompressedData
+
+#.REGISTER
+CompressedData B "1.3.26.0.4406.0.4.2" "cdt"
+
+#.FN_BODY CompressedData
+ content_type = 0;
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS AlgorithmID-ShortForm
+ VAL_PTR = &value
+
+#.FN_BODY AlgorithmID-ShortForm
+ guint32 value;
+
+ %(DEFAULT_BODY)s
+ proto_item_append_text (cdt_item, ", %%s",
+ val_to_str (value, cdt_AlgorithmID_ShortForm_vals,
+ "unknown"));
+
+ col_append_fstr (actx->pinfo->cinfo, COL_INFO, "%%s ",
+ val_to_str (value, cdt_AlgorithmID_ShortForm_vals,
+ "unknown"));
+
+#.FN_PARS ContentType-ShortForm
+ VAL_PTR = &content_type
+
+#.FN_BODY ContentType-ShortForm
+
+ %(DEFAULT_BODY)s
+ proto_item_append_text (cdt_item, ", %%s",
+ val_to_str (content_type, cdt_ContentType_ShortForm_vals,
+ "unknown"));
+
+ col_append_fstr (actx->pinfo->cinfo, COL_INFO, "%%s ",
+ val_to_str (content_type, cdt_ContentType_ShortForm_vals,
+ "unknown"));
+
+#.FN_PARS CompressedContentInfo/contentType/contentType-OID
+ FN_VARIANT = _str VAL_PTR = &obj_id
+
+#.FN_BODY CompressedContentInfo/contentType/contentType-OID
+ const char *obj_id = NULL;
+
+ %(DEFAULT_BODY)s
+ if (obj_id) {
+ const char *name = oid_resolved_from_string (wmem_packet_scope(), obj_id);
+
+ if (!name) {
+ name = obj_id;
+ }
+
+ proto_item_append_text (cdt_item, ", %%s", name);
+
+ col_append_fstr (actx->pinfo->cinfo, COL_INFO, "%%s ", name);
+ }
+
+#.FN_PARS CompressedContent
+ VAL_PTR = &compr_tvb
+
+#.FN_BODY CompressedContent
+ tvbuff_t *next_tvb = NULL, *compr_tvb = NULL;
+ int save_offset = offset;
+
+ %(DEFAULT_BODY)s
+ if (compr_tvb == NULL) {
+ proto_tree_add_expert(top_tree, actx->pinfo, &ei_cdt_unable_compress_content,
+ tvb, save_offset, -1);
+ col_append_str (actx->pinfo->cinfo, COL_INFO,
+ "[Error: Unable to get compressed content]");
+ return offset;
+ }
+
+ next_tvb = tvb_child_uncompress (tvb, compr_tvb, 0, tvb_reported_length (compr_tvb));
+
+ if (next_tvb == NULL) {
+ proto_tree_add_expert(top_tree, actx->pinfo, &ei_cdt_unable_uncompress_content,
+ tvb, save_offset, -1);
+ col_append_str (actx->pinfo->cinfo, COL_INFO,
+ "[Error: Unable to uncompress content]");
+ return offset;
+ }
+
+ add_new_data_source (actx->pinfo, next_tvb, "Uncompressed Content");
+
+ switch (content_type) {
+ case CDT_UNDEFINED:
+ call_dissector (data_handle, next_tvb, actx->pinfo, top_tree);
+ break;
+ case CDT_EXTERNAL:
+ dissect_unknown_ber (actx->pinfo, next_tvb, 0, top_tree);
+ break;
+ case CDT_P1:
+ dissect_p1_mts_apdu (next_tvb, actx->pinfo, top_tree, NULL);
+ break;
+ default:
+ call_dissector (data_handle, next_tvb, actx->pinfo, top_tree);
+ break;
+ }
+
+#.END
diff --git a/epan/dissectors/asn1/cdt/packet-cdt-template.c b/epan/dissectors/asn1/cdt/packet-cdt-template.c
new file mode 100644
index 0000000000..355737d926
--- /dev/null
+++ b/epan/dissectors/asn1/cdt/packet-cdt-template.c
@@ -0,0 +1,133 @@
+/* packet-cdt.c
+ *
+ * Routines for Compressed Data Type packet dissection.
+ *
+ * Copyright 2005, Stig Bjorlykke <stig@bjorlykke.org>, Thales Norway AS
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref: STANAG 4406 Annex E
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/expert.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-p1.h"
+
+#include "packet-cdt.h"
+
+#define CDT_UNDEFINED 0
+#define CDT_EXTERNAL 1
+#define CDT_P1 2
+#define CDT_P3 3
+#define CDT_P7 4
+
+#define PNAME "Compressed Data Type"
+#define PSNAME "CDT"
+#define PFNAME "cdt"
+
+void proto_register_cdt(void);
+void proto_reg_handoff_cdt(void);
+
+static proto_tree *top_tree = NULL;
+static proto_item *cdt_item = NULL;
+
+static guint32 content_type = 0;
+
+/* Initialize the protocol and registered fields */
+static int proto_cdt = -1;
+#include "packet-cdt-hf.c"
+
+static dissector_handle_t data_handle = NULL;
+
+/* Initialize the subtree pointers */
+#include "packet-cdt-ett.c"
+
+static expert_field ei_cdt_unable_compress_content = EI_INIT;
+static expert_field ei_cdt_unable_uncompress_content = EI_INIT;
+
+#include "packet-cdt-fn.c"
+
+
+/*--- proto_register_cdt -------------------------------------------*/
+
+/*
+** Dissect Compressed Data Type
+*/
+void dissect_cdt (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+ proto_tree *tree = NULL;
+
+ /* save parent_tree so subdissectors can create new top nodes */
+ top_tree = parent_tree;
+
+ if (parent_tree) {
+ cdt_item = proto_tree_add_item (parent_tree, proto_cdt, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree (cdt_item, ett_cdt_CompressedData);
+ } else {
+ cdt_item = NULL;
+ }
+
+ col_set_str (pinfo->cinfo, COL_PROTOCOL, "CDT");
+ col_clear (pinfo->cinfo, COL_INFO);
+
+ dissect_CompressedData_PDU (tvb, pinfo, tree, NULL);
+}
+
+void proto_register_cdt (void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-cdt-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-cdt-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_cdt_unable_compress_content, { "cdt.unable_compress_content", PI_UNDECODED, PI_ERROR, "Unable to get compressed content", EXPFILL }},
+ { &ei_cdt_unable_uncompress_content, { "cdt.unable_uncompress_content", PI_UNDECODED, PI_ERROR, "Unable to get uncompressed content", EXPFILL }},
+ };
+
+ expert_module_t* expert_cdt;
+
+ /* Register protocol */
+ proto_cdt = proto_register_protocol (PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array (proto_cdt, hf, array_length(hf));
+ proto_register_subtree_array (ett, array_length(ett));
+ expert_cdt = expert_register_protocol(proto_cdt);
+ expert_register_field_array(expert_cdt, ei, array_length(ei));
+}
+
+
+/*--- proto_reg_handoff_cdt ---------------------------------------*/
+void proto_reg_handoff_cdt (void) {
+#include "packet-cdt-dis-tab.c"
+
+ data_handle = find_dissector ("data");
+}
diff --git a/epan/dissectors/asn1/cdt/packet-cdt-template.h b/epan/dissectors/asn1/cdt/packet-cdt-template.h
new file mode 100644
index 0000000000..b561775289
--- /dev/null
+++ b/epan/dissectors/asn1/cdt/packet-cdt-template.h
@@ -0,0 +1,33 @@
+/* packet-cdt.h
+ *
+ * Routines for Compressed Data Type packet dissection.
+ *
+ * Copyright 2005, Stig Bjorlykke <stig@bjorlykke.org>, Thales Norway AS
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_CDT_H
+#define PACKET_CDT_H
+
+void dissect_cdt (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree);
+#include "packet-cdt-exp.h"
+
+#endif /* PACKET_CDT_H */
+
diff --git a/epan/dissectors/asn1/charging_ase/CMakeLists.txt b/epan/dissectors/asn1/charging_ase/CMakeLists.txt
new file mode 100644
index 0000000000..9a4266c57f
--- /dev/null
+++ b/epan/dissectors/asn1/charging_ase/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME charging_ase )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ Tariffing-Data-Types.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/charging_ase/Makefile.am b/epan/dissectors/asn1/charging_ase/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/charging_ase/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/charging_ase/Makefile.common b/epan/dissectors/asn1/charging_ase/Makefile.common
new file mode 100644
index 0000000000..912ede4faa
--- /dev/null
+++ b/epan/dissectors/asn1/charging_ase/Makefile.common
@@ -0,0 +1,41 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=charging_ase
+
+ASN_FILE_LIST = \
+ Tariffing-Data-Types.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/charging_ase/Makefile.nmake b/epan/dissectors/asn1/charging_ase/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/charging_ase/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/charging_ase/Tariffing-Data-Types.asn b/epan/dissectors/asn1/charging_ase/Tariffing-Data-Types.asn
new file mode 100644
index 0000000000..86d6fbfb52
--- /dev/null
+++ b/epan/dissectors/asn1/charging_ase/Tariffing-Data-Types.asn
@@ -0,0 +1,446 @@
+-- ETSI ES 201 296 V1.3.1 (2003-04)
+Tariffing-Data-Types {itu-t(0) identified-organization(4) etsi (0) 1296 version3(4)}
+
+DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+-- This module contains the common data type definitions for the charging information used in the
+-- new ISUP APM application "Charging ASE" and in the INAP charging operations.
+--
+--
+
+EXPORTS
+
+-- Charging Common Data Types
+ ChargingAcknowledgementInformation ,
+ AddOnChargingInformation ,
+ ChargingTariffInformation ,
+ StartCharging ,
+ StopCharging ,
+ ChargingMessageType
+
+;
+
+-- ChargingMessageType Type
+
+ChargingMessageType ::= CHOICE {
+ crgt [0] ChargingTariffInformation,
+ aocrg [1] AddOnChargingInformation ,
+ crga [2] ChargingAcknowledgementInformation ,
+ start [3] StartCharging ,
+ stop [4] StopCharging }
+
+-- ChargeUnitTimeInterval Type
+
+ChargeUnitTimeInterval ::= OCTET STRING (SIZE(2))
+
+-- The ChargeUnitTimeInterval is binary coded and has the value range from 0 to 35997. It begins with 200 milliseconds and
+-- then in steps of 50 milliseconds.
+-- the LSBit is the least significant bit of the first octet
+-- the MSBit is the most significant bit of the last octet
+-- the coding of the ChargeUnitTimeInterval is the following:
+-- 0 : no periodic metering
+-- 1 : 200 msec
+-- 2 : 250 msec
+-- ..
+-- 35997 : 30 minutes
+-- All other values are spare.
+
+-- ChargingAcknowledgementInformation Type
+
+ChargingAcknowledgementInformation ::= SEQUENCE {
+ acknowledgementIndicators [0] BIT STRING {
+ accepted (0) }
+ (SIZE(minAcknowledgementIndicatorsLen..maxAcknowledgementIndicatorsLen)), extensions [1]
+SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
+ originationIdentification [2] ChargingReferenceIdentification,
+ destinationIdentification [3] ChargingReferenceIdentification
+}
+
+-- Coding of "accepted":
+-- 0: not accepted.
+-- 1: accepted.
+-- The "extensions" is a SEQUENCE for possible extensions.
+
+-- ChargingControlIndicators Type
+
+ChargingControlIndicators ::= BIT STRING {
+ subscriberCharge (0),
+ immediateChangeOfActuallyAppliedTariff (1),
+ delayUntilStart (2) }
+ (SIZE(minChargingControlIndicatorsLen..maxChargingControlIndicatorsLen))
+
+-- Coding of "subscriberCharge":
+-- 0 - advice-of-charge: charging information only to be used by the advice of charge service.
+-- 1 - subscriber-charge: charging information to be used by the subscriber charging program.
+-- Coding of "immediateChangeOfActuallyAppliedTariff":
+-- 0 - immediate tariff change without restart
+-- 1 - immediate tariff change with restart
+-- It is only used to change the actually applied tariff.
+-- Coding of 'delayUntilStart':
+-- 0 - start tariffing, if it is not already started, without waiting for the 'start' signal
+-- 1 - delay start of tariffing up to the receipt of the 'start' signal
+
+-- AddOnChargingInformation Type
+
+AddOnChargingInformation ::= SEQUENCE {
+ chargingControlIndicators [0] ChargingControlIndicators ,
+ addOncharge [1] CHOICE {
+ addOnChargeCurrency [0] CurrencyFactorScale ,
+ addOnChargePulse [1] PulseUnits
+ },
+ extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
+ originationIdentification [3] ChargingReferenceIdentification,
+ destinationIdentification [4] ChargingReferenceIdentification OPTIONAL,
+ currency [5] Currency
+}
+
+-- This message is used to add an amount of charge for the call and does not alter the current tariff.
+-- The destinationIdentification is not available in an initial AddOnChargingInformation, in all subsequent ones it is included, see
+-- "Handling of Identifiers".
+-- In the message the
+-- add-on charge has either the pulse or currency format.
+-- ChargingTariffInformation Type
+
+ChargingTariffInformation ::= SEQUENCE {
+ chargingControlIndicators [0] ChargingControlIndicators,
+ chargingTariff [1] CHOICE {
+ tariffCurrency [0] TariffCurrency,
+ tariffPulse [1] TariffPulse
+ },
+ extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
+ originationIdentification [3] ChargingReferenceIdentification,
+ destinationIdentification [4] ChargingReferenceIdentification OPTIONAL,
+ currency [5] Currency
+}
+
+--This message is used
+-- to transfer explicit tariff data to the originating subscriber exchange and the charge registration exchange during call
+-- set-up and also in the active phase of a call.
+-- The destinationIdentification is not available in an initial ChargingTariffInformation, in all subsequent ones it is included, see
+-- "Handling of Identifiers".
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+-- CommunicationChargeCurrency Type
+
+CommunicationChargeCurrency ::= SEQUENCE {
+ currencyFactorScale [0] CurrencyFactorScale ,
+ tariffDuration [1] TariffDuration ,
+ subTariffControl [2] SubTariffControl }
+
+-- CommunicationChargePulse Type
+
+CommunicationChargePulse ::= SEQUENCE {
+ pulseUnits [0] PulseUnits ,
+ chargeUnitTimeInterval [1] ChargeUnitTimeInterval ,
+ tariffDuration [2] TariffDuration }
+
+-- Criticality Type
+CriticalityType ::= ENUMERATED {
+ ignore(0),
+ abort(1) }
+
+-- Currency Type
+Currency ::= ENUMERATED {
+ noIndication (0),
+ australianDollar (1),
+ austrianSchilling (2),
+ belgianFranc (3),
+ britishPound (4),
+ czechKoruna (5),
+ danishKrone (6),
+ dutchGuilder (7),
+ euro (8),
+ finnishMarkka (9),
+ frenchFranc (10),
+ germanMark (11),
+ greekDrachma (12),
+ hungarianForint (13),
+ irishPunt (14),
+ italianLira (15),
+ japaneseYen (16),
+ luxembourgian-Franc (17),
+ norwegianKrone (18),
+ polishZloty (19),
+ portugeseEscudo (20),
+ russianRouble (21),
+ slovakKoruna (22),
+ spanishPeseta (23),
+ swedishKrone (24),
+ swissFranc (25),
+ turkishLira (26),
+ uSDollar (27),
+ ...}
+
+-- CurrencyFactor Type
+
+CurrencyFactor ::= INTEGER (0..999999)
+
+-- Value 0 indicates "no charge".
+-- CurrencyFactorScale Type
+
+CurrencyFactorScale ::= SEQUENCE {
+ currencyFactor [0] CurrencyFactor DEFAULT noCharge ,
+ currencyScale [1] CurrencyScale DEFAULT noScale }
+
+-- The charge amount is indicated by the currency factor multiplied with the currency scale.
+-- "no charge" indicates CurrencyFactorScale has the value 0.
+-- CurrencyScale Type
+
+CurrencyScale ::= INTEGER (-7..3)
+
+-- The actual value for currency scale is given by 10x, where x is the value of the CurrencyScale.
+--
+-- the coding of CurrencyScale is as follows, all other values are spare:
+-- -7 (249): 0,0000001
+-- -6 (250): 0,000001
+-- -5 (251): 0,00001
+-- -4 (252): 0,0001
+-- -3 (253): 0,001
+-- -2 (254): 0,01
+-- -1 (255): 0,1
+-- 0 : 1
+-- 1 : 10
+-- 2 : 100
+-- 3 : 1000
+
+-- Definition of the extension class
+
+EXTENSION ::= CLASS {
+ &ExtensionType,
+ &criticality CriticalityType DEFAULT ignore,
+ &id Code
+}
+WITH SYNTAX {
+ EXTENSION-SYNTAX &ExtensionType
+ CRITICALITY &criticality
+ IDENTIFIED BY &id
+}
+-- 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 information object class:
+--
+-- SomeNetworkSpecificIndicator EXTENSION ::= {
+-- EXTENSION-SYNTAX BOOLEAN
+-- CRITICALITY abort
+-- IDENTIFIED BY local : 1
+-- }
+-- Example of transfer syntax, using the ExtensionField datatype as specified in section 4.1.
+-- 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.
+firstExtension EXTENSION ::= {
+ EXTENSION-SYNTAX NULL
+ CRITICALITY ignore
+ IDENTIFIED BY local:1
+ }
+
+-- firstExtension is just an example.
+
+SupportedExtensions EXTENSION ::= {firstExtension , ...
+-- full set of network operator extensions --}
+-- SupportedExtension is the full set of the network operator extensions.
+-- ExtensionField Type
+
+ExtensionField ::= SEQUENCE {
+ type EXTENSION.&id ({SupportedExtensions}),
+ -- shall identify the value of an EXTENSION type
+ criticality CriticalityType DEFAULT ignore,
+ value [1] EXTENSION.&ExtensionType
+ ({SupportedExtensions}{@type})
+}
+-- This parameter indicates an extension of an argument data type. Its contents is network operator specific.
+-- PulseUnits Type
+
+PulseUnits ::= OCTET STRING (SIZE(1))
+-- the PulseUnits is binary coded and has the value range from 0 to 255
+-- StartCharging Type
+StartCharging ::= SEQUENCE {
+ networkOperators [0] SEQUENCE SIZE (1..maxNetworkOperators) OF NetworkIdentification OPTIONAL,
+ extensions [1] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
+ originationIdentification [2] ChargingReferenceIdentification
+}
+
+--This message is used
+-- to start charge generation/registration for one that belongs to one network operator or
+-- to start charge generation/registration for more tariffs that belong to several network
+-- operators.
+-- The corresponding network operator(s) are listed within sub-parameter 'networkOperators'.
+-- The sub-parameter 'networkOperators' is mandatory in configurations of multiple charge
+-- determination points.
+-- If sub-parameter 'networkOperators' is not present in a configuration with only one charge
+-- determination point, the corresponding tariff is started.
+-- The 'extensions' is a SEQUENCE for possible extensions.
+-- StopCharging Type
+
+StopCharging ::= SEQUENCE {
+ stopIndicators [0] BIT STRING {
+ callAttemptChargesApplicable (0) }
+ (SIZE(minStopIndicatorsLen.. maxStopIndicatorsLen)),
+ networkOperators [1] SEQUENCE SIZE (1..maxNetworkOperators) OF NetworkIdentification OPTIONAL,
+ extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
+ originationIdentification [3] ChargingReferenceIdentification
+}
+
+--This message is used to stop charge generation/registration
+-- for one that belongs to one network operator or
+-- to stop charge generation/registration for more tariffs that belong to several network operators.
+-- The corresponding network operator(s) are listed within sub-parameter 'networkOperators'.
+-- The sub-parameter 'networkOperators' is mandatory in configurations of multiple charge
+-- determination points.
+-- If sub-parameter 'networkOperators' is not present in a configuration with only one charge
+-- determination point, the corresponding tariff is stopped.
+-- Coding of 'callAttemptChargesApplicable':
+-- 0 - stop tariffing, call attempt charges are not applicable
+-- 1 - stop tariffing, call attempt charges are applicable
+-- The 'extensions' is a SEQUENCE for possible extensions.
+
+-- SubTariffControl Type
+
+SubTariffControl ::= BIT STRING {oneTimeCharge (0)}
+(SIZE(minSubTariffControlLen..maxSubTariffControlLen))
+-- The coding of the oneTimeCharge is as follows:
+-- 0 - Periodic charge
+-- 1 - One time charge
+minSubTariffControlLen INTEGER ::= 1
+maxSubTariffControlLen INTEGER ::= 8
+
+-- TariffCurrency Type
+
+TariffCurrency ::= SEQUENCE {
+ currentTariffCurrency [0] TariffCurrencyFormat OPTIONAL ,
+ tariffSwitchCurrency [1] TariffSwitchCurrency OPTIONAL
+}
+-- TariffSwitchCurrency Type
+
+TariffSwitchCurrency ::= SEQUENCE {
+ nextTariffCurrency [0] TariffCurrencyFormat ,
+ tariffSwitchoverTime [1] TariffSwitchoverTime
+}
+
+-- TariffCurrencyFormat Type
+
+TariffCurrencyFormat ::= SEQUENCE {
+ communicationChargeSequenceCurrency [0] SEQUENCE
+ SIZE(minCommunicationTariffNum..maxCommunicationTariffNum)
+ OF CommunicationChargeCurrency OPTIONAL ,
+ tariffControlIndicators [1] BIT STRING {
+ non-cyclicTariff (0) }
+ (SIZE(minTariffIndicatorsLen..maxTariffIndicatorsLen)) ,
+ callAttemptChargeCurrency [2] CurrencyFactorScale OPTIONAL ,
+ callSetupChargeCurrency [3] CurrencyFactorScale OPTIONAL }
+
+-- The communication charge sequence currency is a direct charge in currency per time unit. Only one fixed time unit is used.
+-- This time unit has
+-- to be agreed between all cooperating networks, e.g. one second. Being fixed, the time unit is not transferred over
+-- ISUP/INAP.
+-- The call attempt charge is a direct charge, to be charged only for unsuccessful calls.
+-- The call set-up charge is a direct charge, to be charged once at start of charging.
+--
+-- The coding of the non-cyclicTariff is as follows:
+-- 0 - Cyclic tariff ( at expiration of the tariff duration of the last communication tariff of the communication charge sequence,
+-- the communication charge sequence is re-applied.
+-- 1 - Non-cyclic tariff ( at expiration of the tariff duration of the last communication tariff of the communication charge
+-- sequence, do not re-apply the communication charge sequence)
+
+-- TariffDuration Type
+
+TariffDuration ::= INTEGER (0..36000)
+
+-- TariffDuration identifies with 0 unlimited duration and else in seconds unit.
+-- 0 = unlimited
+-- 1 = 1 second
+-- 2 = 2 seconds
+-- ...
+-- 36000 = 10 hours
+--
+-- The duration indicates for how long time the communication charge component is valid. Expiration of the tariff duration
+-- timer leads to the activation of the next communication charge (if present).
+-- In the case where there is no next communication charge in the communication charge sequence, the action to be performed
+-- is indicated by the tariffControlIndicators.
+-- TariffPulse Type
+
+TariffPulse ::= SEQUENCE {
+ currentTariffPulse [0] TariffPulseFormat OPTIONAL ,
+ tariffSwitchPulse [1] TariffSwitchPulse OPTIONAL }
+
+-- TariffSwitchPulse Type
+
+TariffSwitchPulse ::= SEQUENCE {
+ nextTariffPulse [0] TariffPulseFormat ,
+ tariffSwitchoverTime [1] TariffSwitchoverTime }
+
+-- TariffPulseFormat Type
+
+TariffPulseFormat ::= SEQUENCE {
+ communicationChargeSequencePulse [0] SEQUENCE
+ SIZE(minCommunicationTariffNum.. maxCommunicationTariffNum)
+ OF CommunicationChargePulse OPTIONAL ,
+ tariffControlIndicators [1] BIT STRING {
+ non-cyclicTariff (0) }
+ (SIZE(minTariffIndicatorsLen..maxTariffIndicatorsLen)) ,
+ callAttemptChargePulse [2] PulseUnits OPTIONAL ,
+ callSetupChargePulse [3] PulseUnits OPTIONAL }
+
+-- The communication charges are meter-pulse units, which are to be applied per charge unit time interval.
+-- The call attempt pulse units are to be charged only for unsuccessful calls.
+-- The call set-up pulse units are to be charged once at start of charging.
+
+-- TariffSwitchoverTime Type
+
+TariffSwitchoverTime ::= OCTET STRING (SIZE(1))
+
+-- This time is the absolute time at which the next tariff has to become active. It is represented in steps of 15 minutes.
+-- The coding is the following:
+-- 0 : spare
+-- 1 : 0 hour 15 minutes
+-- 2 : 0 hour 30 minutes
+-- 3 : 0 hour 45 minutes
+-- 4 : 1 hour 0 minutes
+-- ..
+-- 96 : 24 hours 0 minutes
+-- 97-255 : spare
+
+minAcknowledgementIndicatorsLen INTEGER ::= 1
+maxAcknowledgementIndicatorsLen INTEGER ::= 8
+minChargingControlIndicatorsLen INTEGER ::= 1
+maxChargingControlIndicatorsLen INTEGER ::= 8
+maxNetworkOperators INTEGER ::= 6
+minStopIndicatorsLen INTEGER ::= 1
+maxStopIndicatorsLen INTEGER ::= 8
+minTariffIndicatorsLen INTEGER ::= 1
+maxTariffIndicatorsLen INTEGER ::= 8
+minCommunicationTariffNum INTEGER ::= 1
+maxCommunicationTariffNum INTEGER ::= 4
+noCharge INTEGER ::= 0
+noScale INTEGER ::= 0
+numOfExtensions INTEGER ::= 1 --network specific
+
+-- ChargingReferenceIdentification Type
+
+ChargingReferenceIdentification ::= SEQUENCE {
+ networkIdentification [0] NetworkIdentification,
+ referenceID [1] ReferenceID}
+
+-- NetworkIdentification Type
+
+NetworkIdentification ::= OBJECT IDENTIFIER
+
+-- Following structure of the networkIdentification value shall be used:
+-- {itu-t (0) administration (2) <national regulation authority> (x) network (y) node identification (z)}
+-- The value for x is the value of the national regulation authority, the value for y is under the control of the national
+-- regulation authority concerned, the value for z is under the control of the network concerned.
+
+-- ReferenceID Type
+
+ReferenceID ::= INTEGER (0..4294967295)
+-- maximum value 232 - 1
+
+END
+-- of Tariffing-Data Types
diff --git a/epan/dissectors/asn1/charging_ase/charging_ase.cnf b/epan/dissectors/asn1/charging_ase/charging_ase.cnf
new file mode 100644
index 0000000000..661c68f234
--- /dev/null
+++ b/epan/dissectors/asn1/charging_ase/charging_ase.cnf
@@ -0,0 +1,16 @@
+# charging ase.cnf
+# charging ase conformation file
+# Anders Broman 2009
+
+#.EXPORTS
+ChargingMessageType
+ChargingMessageType_PDU
+
+#.PDU
+ChargingMessageType
+
+#.FN_BODY ExtensionField/value
+
+ proto_tree_add_expert(tree, actx->pinfo, &ei_charging_ase_extensions_not_dissected, tvb, offset, -1);
+ return tvb_reported_length(tvb);
+#.END
diff --git a/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c b/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c
new file mode 100644
index 0000000000..cb4cbe0384
--- /dev/null
+++ b/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c
@@ -0,0 +1,105 @@
+/* packet-charging_ase-template.c
+ * Copyright 2009 , Anders Broman <anders.broman [AT] ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References: ETSI ES 201 296 V1.3.1 (2003-04)
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-charging_ase.h"
+
+#define PNAME "Charging ASE"
+#define PSNAME "ChargingASE"
+#define PFNAME "chargingase"
+
+void proto_register_charging_ase(void);
+void proto_reg_handoff_charging_ase(void);
+
+/* Define the Charging ASE proto */
+static int proto_charging_ase = -1;
+
+#include "packet-charging_ase-hf.c"
+
+static int ett_charging_ase = -1;
+#include "packet-charging_ase-ett.c"
+
+static expert_field ei_charging_ase_extensions_not_dissected = EI_INIT;
+
+static dissector_handle_t charging_ase_handle;
+
+#include "packet-charging_ase-fn.c"
+
+static int
+dissect_charging_ase(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *it;
+ proto_tree *tr;
+
+ it=proto_tree_add_protocol_format(tree, proto_charging_ase, tvb, 0, -1, "Charging ASE");
+ tr=proto_item_add_subtree(it, ett_charging_ase);
+
+ if(tvb_reported_length(tvb)>0)
+ {
+ dissect_charging_ase_ChargingMessageType_PDU(tvb , pinfo, tr, NULL);
+ }
+ return tvb_captured_length(tvb);
+}
+
+/* Register all the bits needed with the filtering engine */
+void
+proto_register_charging_ase(void)
+{
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-charging_ase-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_charging_ase,
+#include "packet-charging_ase-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_charging_ase_extensions_not_dissected, { "charging_ase.extensions_not_dissected", PI_UNDECODED, PI_WARN, "Extensions not dissected", EXPFILL }},
+ };
+
+ expert_module_t* expert_charging_ase;
+
+ proto_charging_ase = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ proto_register_field_array(proto_charging_ase, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_charging_ase = expert_register_protocol(proto_charging_ase);
+ expert_register_field_array(expert_charging_ase, ei, array_length(ei));
+}
+
+/* The registration hand-off routine */
+void
+proto_reg_handoff_charging_ase(void)
+{
+ charging_ase_handle = create_dissector_handle(dissect_charging_ase, proto_charging_ase);
+}
+
diff --git a/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.h b/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.h
new file mode 100644
index 0000000000..1740f6ce15
--- /dev/null
+++ b/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.h
@@ -0,0 +1,28 @@
+/* packet-charging_ase-template.h
+ * Copyright 2009, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_CHARGING_ASE_H
+#define PACKET_CHARGING_ASE_H
+
+#include "packet-charging_ase-exp.h"
+
+#endif /* PACKET_CHARGING_ASE_H */
diff --git a/epan/dissectors/asn1/cmip/CMIP-1.asn b/epan/dissectors/asn1/cmip/CMIP-1.asn
new file mode 100644
index 0000000000..a50e66e511
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/CMIP-1.asn
@@ -0,0 +1,706 @@
+-- Module CMIP-1 (X.711:10/1997)
+CMIP-1 {joint-iso-itu-t ms(9) cmip(1) modules(0) protocol(3)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ ERROR, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, InvokeId, noInvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+CMIP-Operations OPERATION ::=
+ {m-Action | m-Action-Confirmed | m-CancelGet | m-Create | m-Delete |
+ m-EventReport | m-EventReport-Confirmed | m-Get | m-Linked-Reply | m-Set |
+ m-Set-Confirmed}
+
+CMIP-Confirmed-Operations OPERATION ::=
+ {m-Action-Confirmed | m-CancelGet | m-Create | m-Delete |
+ m-EventReport-Confirmed | m-Get | m-Set-Confirmed}
+
+-- CMISE error definitions
+accessDenied ERROR ::= {PRIORITY {0}
+ CODE local:2
+}
+
+classInstanceConflict ERROR ::= {
+ PARAMETER BaseManagedObjectId
+ PRIORITY {1}
+ CODE local:19
+}
+
+complexityLimitation ERROR ::= {
+ PARAMETER ComplexityLimitation
+ OPTIONAL TRUE
+ PRIORITY {1}
+ CODE local:20
+}
+
+duplicateManagedObjectInstance ERROR ::= {
+ PARAMETER ObjectInstance
+ PRIORITY {1}
+ CODE local:11
+}
+
+getListError ERROR ::= {
+ PARAMETER GetListError
+ PRIORITY {1}
+ CODE local:7
+}
+
+invalidArgumentValue ERROR ::= {
+ PARAMETER InvalidArgumentValue
+ PRIORITY {1}
+ CODE local:15
+}
+
+invalidAttributeValue ERROR ::= {
+ PARAMETER Attribute
+ PRIORITY {1}
+ CODE local:6
+}
+
+invalidFilter ERROR ::= {
+ PARAMETER CMISFilter
+ PRIORITY {1}
+ CODE local:4
+}
+
+invalidObjectInstance ERROR ::= {
+ PARAMETER ObjectInstance
+ PRIORITY {1}
+ CODE local:17
+}
+
+invalidScope ERROR ::= {PARAMETER Scope
+ PRIORITY {1}
+ CODE local:16
+}
+
+missingAttributeValue ERROR ::= {
+ PARAMETER SET OF AttributeId
+ PRIORITY {1}
+ CODE local:18
+}
+
+mistypedOperation ERROR ::= {PRIORITY {1}
+ CODE local:21
+}
+
+noSuchAction ERROR ::= {
+ PARAMETER NoSuchAction
+ PRIORITY {1}
+ CODE local:9
+}
+
+noSuchArgument ERROR ::= {
+ PARAMETER NoSuchArgument
+ PRIORITY {1}
+ CODE local:14
+}
+
+noSuchAttribute ERROR ::= {
+ PARAMETER AttributeId
+ PRIORITY {1}
+ CODE local:5
+}
+
+noSuchEventType ERROR ::= {
+ PARAMETER NoSuchEventType
+ PRIORITY {1}
+ CODE local:13
+}
+
+noSuchInvokeId ERROR ::= {
+ PARAMETER InvokeIDType
+ PRIORITY {1}
+ CODE local:22
+}
+
+noSuchObjectClass ERROR ::= {
+ PARAMETER ObjectClass
+ PRIORITY {1}
+ CODE local:0
+}
+
+noSuchObjectInstance ERROR ::= {
+ PARAMETER ObjectInstance
+ PRIORITY {1}
+ CODE local:1
+}
+
+noSuchReferenceObject ERROR ::= {
+ PARAMETER ObjectInstance
+ PRIORITY {1}
+ CODE local:12
+}
+
+operationCancelled ERROR ::= {PRIORITY {1}
+ CODE local:23
+}
+
+processingFailure ERROR ::= {
+ PARAMETER ProcessingFailure
+ OPTIONAL TRUE
+ PRIORITY {1}
+ CODE local:10
+}
+
+setListError ERROR ::= {
+ PARAMETER SetListError
+ PRIORITY {1}
+ CODE local:8
+}
+
+syncNotSupported ERROR ::= {
+ PARAMETER CMISSync
+ PRIORITY {1}
+ CODE local:3
+}
+
+-- CMISE operations
+-- Action operation (M-ACTION)
+m-Action OPERATION ::= {
+ ARGUMENT ActionArgument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:6
+}
+
+m-Action-Confirmed OPERATION ::= {
+ ARGUMENT ActionArgument
+ RESULT ActionResult
+ OPTIONAL TRUE -- this result is conditional;
+ -- for conditions see 8.3.3.2.9 of ITU-T Rec. X.710
+ ERRORS
+ {accessDenied | classInstanceConflict | complexityLimitation | invalidScope
+ | invalidArgumentValue | invalidFilter | noSuchAction | noSuchArgument |
+ noSuchObjectClass | noSuchObjectInstance | processingFailure |
+ syncNotSupported}
+ LINKED {m-Linked-Reply}
+ CODE local:7
+}
+
+-- Cancel get operation (M-CANCEL-GET)
+m-CancelGet OPERATION ::= {
+ ARGUMENT InvokeIDType
+ RETURN RESULT TRUE
+ ERRORS {mistypedOperation | noSuchInvokeId | processingFailure}
+ CODE local:10
+}
+
+-- Create operation (M-CREATE)
+m-Create OPERATION ::= {
+ ARGUMENT CreateArgument
+ RESULT CreateResult
+ OPTIONAL TRUE -- this result is conditional;
+ -- for conditions see 8.3.4.1.3 of ITU-T Rec. X.710
+ ERRORS
+ {accessDenied | classInstanceConflict | duplicateManagedObjectInstance |
+ invalidAttributeValue | invalidObjectInstance | missingAttributeValue |
+ noSuchAttribute | noSuchObjectClass | noSuchObjectInstance |
+ noSuchReferenceObject | processingFailure}
+ CODE local:8
+}
+
+-- Delete operation (M-DELETE)
+m-Delete OPERATION ::= {
+ ARGUMENT DeleteArgument
+ RESULT DeleteResult
+ OPTIONAL TRUE -- this result is conditional;
+ -- for conditions see 8.3.5.2.8 of ITU-T Rec. X.710
+ ERRORS
+ {accessDenied | classInstanceConflict | complexityLimitation |
+ invalidFilter | invalidScope | noSuchObjectClass | noSuchObjectInstance |
+ processingFailure | syncNotSupported}
+ LINKED {m-Linked-Reply}
+ CODE local:9
+}
+
+-- Event Reporting operations (M-EVENT-REPORT)
+m-EventReport OPERATION ::= {
+ ARGUMENT EventReportArgument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:0
+}
+
+m-EventReport-Confirmed OPERATION ::= {
+ ARGUMENT EventReportArgument
+ RESULT EventReportResult
+ OPTIONAL TRUE
+ ERRORS
+ {invalidArgumentValue | noSuchArgument | noSuchEventType |
+ noSuchObjectClass | noSuchObjectInstance | processingFailure}
+ CODE local:1
+}
+
+-- Get operation (M-GET)
+m-Get OPERATION ::= {
+ ARGUMENT GetArgument
+ RESULT GetResult
+ OPTIONAL TRUE -- this result is conditional;
+ -- for conditions see 8.3.1.2.8 of ITU-T Rec. X.710
+ ERRORS
+ {accessDenied | classInstanceConflict | complexityLimitation | getListError
+ | invalidFilter | invalidScope | noSuchObjectClass | noSuchObjectInstance
+ | operationCancelled | processingFailure | syncNotSupported}
+ LINKED {m-Linked-Reply}
+ CODE local:3
+}
+
+-- Linked operation to M-GET, M-SET (Confirmed), M-ACTION (Confirmed), and M-DELETE
+m-Linked-Reply OPERATION ::= {ARGUMENT LinkedReplyArgument
+ CODE local:2
+}
+
+-- Set operations (M-SET)
+m-Set OPERATION ::= {
+ ARGUMENT SetArgument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:4
+}
+
+m-Set-Confirmed OPERATION ::= {
+ ARGUMENT SetArgument
+ RESULT SetResult
+ OPTIONAL TRUE -- this result is conditional;
+ -- for conditions see 8.3.2.2.9 of ITU-T Rec. X.710
+ ERRORS
+ {accessDenied | classInstanceConflict | complexityLimitation |
+ invalidFilter | invalidScope | noSuchObjectClass | noSuchObjectInstance |
+ processingFailure | setListError | syncNotSupported}
+ LINKED {m-Linked-Reply}
+ CODE local:5
+}
+
+-- INFORMATION OBJECT definitions
+-- While it is possible to use the Information object class definitions defined below to specify
+-- Action types, Attribute types, Event Report types, and their associated ASN.1 type definitions,
+-- the alternative approach using GDMO templates, as defined in ITU-T Rec. 722 | ISO/IEC 10165-5,
+-- continues to be available for use with this Recommendation | International Standard.
+CMIP-ACTION ::= CLASS {&id ActionTypeId UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+CMIP-ATTRIBUTE ::= CLASS {&id AttributeId UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+CMIP-AVA ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}
+
+CMIP-EVENT ::= CLASS {&id EventTypeId UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+CMIP-SPECIFICERROR ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+-- Supporting type definitions
+AccessControl ::= EXTERNAL
+
+ActionArgument ::= SEQUENCE {
+ COMPONENTS OF BaseManagedObjectId,
+ accessControl [5] AccessControl OPTIONAL,
+ synchronization [6] IMPLICIT CMISSync DEFAULT bestEffort,
+ scope [7] Scope DEFAULT namedNumbers:baseObject,
+ filter CMISFilter DEFAULT and:{},
+ actionInfo [12] IMPLICIT ActionInfo,
+ ...
+}
+
+ActionError ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ actionErrorInfo [6] ActionErrorInfo,
+ ...
+}
+
+ActionErrorInfo ::= SEQUENCE {
+ errorStatus
+ ENUMERATED {accessDenied(2), noSuchAction(9), noSuchArgument(14),
+ invalidArgumentValue(15), ...
+ },
+ errorInfo
+ CHOICE {actionType CMIP-ACTION.&id({ActionSet}),
+ actionArgument [0] NoSuchArgument,
+ argumentValue [1] InvalidArgumentValue},
+ ...
+}
+
+ActionInfo ::= SEQUENCE {
+ actionType CMIP-ACTION.&id({ActionSet}),
+ actionInfoArg [4] CMIP-ACTION.&Value({ActionSet}{@.actionType}) OPTIONAL
+}
+
+ActionReply ::= SEQUENCE {
+ actionType CMIP-ACTION.&id({ActionSet}),
+ actionReplyInfo [4] CMIP-ACTION.&Value({ActionSet}{@.actionType})
+}
+
+ActionResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ actionReply [6] IMPLICIT ActionReply OPTIONAL,
+ ...
+}
+
+ActionSet CMIP-ACTION ::=
+ {...}
+
+ActionTypeId ::= CHOICE {
+ globalForm [2] IMPLICIT OBJECT IDENTIFIER,
+ localForm [3] IMPLICIT INTEGER
+}
+
+-- This Recommendation | International Standard does not allocate any values for localForm.
+-- Where this alternative is used, the permissible values for the integers and their meanings shall be defined
+-- as part of the application context in which they are used
+Attribute ::= SEQUENCE {
+ id CMIP-ATTRIBUTE.&id({AttributeSet}),
+ value CMIP-ATTRIBUTE.&Value({AttributeSet}{@.id})
+}
+
+AttributeError ::= SEQUENCE {
+ errorStatus
+ ENUMERATED {accessDenied(2), noSuchAttribute(5), invalidAttributeValue(6),
+ invalidOperation(24), invalidOperator(25), ...
+ },
+ modifyOperator [2] IMPLICIT ModifyOperator OPTIONAL, -- present for invalidOperator
+
+ -- and invalidOperation
+ attributeId CMIP-ATTRIBUTE.&id({AttributeSet}),
+ attributeValue CMIP-ATTRIBUTE.&Value({AttributeSet}{@.attributeId}) OPTIONAL
+ -- value is absent for setToDefault
+}
+
+AttributeId ::= CHOICE {
+ globalForm [0] IMPLICIT OBJECT IDENTIFIER,
+ localForm [1] IMPLICIT INTEGER
+}
+
+-- This Recommendation | International Standard does not allocate any values for localForm.
+-- Where this alternative is used, the permissible values for the integers and their meanings shall be defined
+-- as part of the application context in which they are used
+AttributeIdError ::= SEQUENCE {
+ errorStatus ENUMERATED {accessDenied(2), noSuchAttribute(5), ...
+ },
+ attributeId AttributeId,
+ ...
+}
+
+AttributeSet CMIP-ATTRIBUTE ::=
+ {...}
+
+AttributeValueAssertion ::= SEQUENCE {
+ id CMIP-AVA.&id({AvaSet}),
+ value CMIP-AVA.&Value({AvaSet}{@.id})
+}
+
+AvaSet CMIP-AVA ::=
+ {...}
+
+BaseManagedObjectId ::= SEQUENCE {
+ baseManagedObjectClass ObjectClass,
+ baseManagedObjectInstance ObjectInstance
+}
+
+CMISFilter ::= CHOICE {
+ item [8] FilterItem,
+ and [9] IMPLICIT SET OF CMISFilter,
+ or [10] IMPLICIT SET OF CMISFilter,
+ not [11] CMISFilter
+}
+
+CMISSync ::= ENUMERATED {bestEffort(0), atomic(1)}
+
+ComplexityLimitation ::= SET {
+ scope [0] Scope OPTIONAL,
+ filter [1] CMISFilter OPTIONAL,
+ sync [2] CMISSync OPTIONAL,
+ ...
+}
+
+CreateArgument ::= SEQUENCE {
+ managedObjectClass ObjectClass,
+ managedOrSuperiorObjectInstance
+ CHOICE {managedObjectInstance ObjectInstance,
+ superiorObjectInstance [8] ObjectInstance} OPTIONAL,
+ accessControl [5] AccessControl OPTIONAL,
+ referenceObjectInstance [6] ObjectInstance OPTIONAL,
+ attributeList [7] IMPLICIT SET OF Attribute OPTIONAL,
+ ...
+}
+
+CreateResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL, -- shall be returned if omitted from CreateArgument
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ attributeList [6] IMPLICIT SET OF Attribute OPTIONAL,
+ ...
+}
+
+DeleteArgument ::= SEQUENCE {
+ COMPONENTS OF BaseManagedObjectId,
+ accessControl [5] AccessControl OPTIONAL,
+ synchronization [6] IMPLICIT CMISSync DEFAULT bestEffort,
+ scope [7] Scope DEFAULT namedNumbers:baseObject,
+ filter CMISFilter DEFAULT and:{},
+ ...
+}
+
+DeleteError ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ deleteErrorInfo [6] ENUMERATED {accessDenied(2), ...
+ },
+ ...
+}
+
+DeleteResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ ...
+}
+
+DistinguishedName ::= RDNSequence
+
+EventReply ::= SEQUENCE {
+ eventType CMIP-EVENT.&id({EventSet}),
+ eventReplyInfo [8] CMIP-EVENT.&Value({EventSet}{@.eventType}) OPTIONAL
+}
+
+EventReportArgument ::= SEQUENCE {
+ managedObjectClass ObjectClass,
+ managedObjectInstance ObjectInstance,
+ eventTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ eventType CMIP-EVENT.&id({EventSet}),
+ eventInfo
+ [8] CMIP-EVENT.&Value({EventSet}{@.eventType}) OPTIONAL,
+ ...
+}
+
+EventReportResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ eventReply EventReply OPTIONAL,
+ ...
+}
+
+EventSet CMIP-EVENT ::=
+ {...}
+
+EventTypeId ::= CHOICE {
+ globalForm [6] IMPLICIT OBJECT IDENTIFIER,
+ localForm [7] IMPLICIT INTEGER
+}
+
+-- This Recommendation | International Standard does not allocate any values for localForm.
+-- Where this alternative is used, the permissible values for the integers and their meanings shall be defined
+-- as part of the application context in which they are used
+FilterItem ::= CHOICE {
+ equality [0] IMPLICIT Attribute,
+ substrings
+ [1] IMPLICIT SEQUENCE OF
+ CHOICE {initialString [0] IMPLICIT Attribute,
+ anyString [1] IMPLICIT Attribute,
+ finalString [2] IMPLICIT Attribute},
+ greaterOrEqual [2] IMPLICIT Attribute, -- asserted value ? attribute value
+ lessOrEqual [3] IMPLICIT Attribute, -- asserted value <= attribute value
+ present [4] AttributeId,
+ subsetOf [5] IMPLICIT Attribute, -- asserted value is a subset of attribute value
+ supersetOf [6] IMPLICIT Attribute, -- asserted value is a superset of attribute value
+ nonNullSetIntersection [7] IMPLICIT Attribute
+}
+
+GetArgument ::= SEQUENCE {
+ COMPONENTS OF BaseManagedObjectId,
+ accessControl [5] AccessControl OPTIONAL,
+ synchronization [6] IMPLICIT CMISSync DEFAULT bestEffort,
+ scope [7] Scope DEFAULT namedNumbers:baseObject,
+ filter CMISFilter DEFAULT and:{},
+ attributeIdList [12] IMPLICIT SET OF AttributeId OPTIONAL,
+ ...
+}
+
+GetInfoStatus ::= CHOICE {
+ attributeIdError [0] IMPLICIT AttributeIdError,
+ attribute [1] IMPLICIT Attribute
+}
+
+GetListError ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ getInfoList [6] IMPLICIT SET OF GetInfoStatus,
+ ...
+}
+
+GetResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ attributeList [6] IMPLICIT SET OF Attribute OPTIONAL,
+ ...
+}
+
+InvalidArgumentValue ::= CHOICE {
+ actionValue [0] IMPLICIT ActionInfo,
+ eventValue
+ [1] IMPLICIT SEQUENCE {eventType CMIP-EVENT.&id({EventSet}),
+ eventInfo
+ [8] CMIP-EVENT.&Value({EventSet}{@.eventType})
+ OPTIONAL}
+}
+
+InvokeIDType ::= InvokeId--(ALL EXCEPT absent:NULL)
+
+LinkedReplyArgument ::= CHOICE {
+ getResult [0] IMPLICIT GetResult,
+ getListError [1] IMPLICIT GetListError,
+ setResult [2] IMPLICIT SetResult,
+ setListError [3] IMPLICIT SetListError,
+ actionResult [4] IMPLICIT ActionResult,
+ processingFailure [5] IMPLICIT ProcessingFailure,
+ deleteResult [6] IMPLICIT DeleteResult,
+ actionError [7] IMPLICIT ActionError,
+ deleteError [8] IMPLICIT DeleteError
+}
+
+ModifyOperator ::= INTEGER {
+ replace(0), addValues(1), removeValues(2), setToDefault(3)}
+
+NoSuchAction ::= SEQUENCE {
+ managedObjectClass ObjectClass,
+ actionType CMIP-ACTION.&id({ActionSet}),
+ ...
+}
+
+NoSuchArgument ::= CHOICE {
+ actionId
+ [0] IMPLICIT SEQUENCE {managedObjectClass ObjectClass OPTIONAL,
+ actionType CMIP-ACTION.&id({ActionSet})
+ },
+ eventId
+ [1] IMPLICIT SEQUENCE {managedObjectClass ObjectClass OPTIONAL,
+ eventType CMIP-EVENT.&id({EventSet})
+ }
+}
+
+NoSuchEventType ::= SEQUENCE {
+ managedObjectClass ObjectClass,
+ eventType CMIP-EVENT.&id({EventSet}),
+ ...
+}
+
+ObjectClass ::= CHOICE {
+ globalForm [0] IMPLICIT OBJECT IDENTIFIER,
+ localForm [1] IMPLICIT INTEGER
+}
+
+-- This Recommendation | International Standard does not allocate any values for localForm.
+-- Where this alternative is used, the permissible values for the integers and their meanings shall be defined
+-- as part of the application context in which they are used
+ObjectInstance ::= CHOICE {
+ distinguishedName [2] IMPLICIT DistinguishedName,
+ nonSpecificForm [3] IMPLICIT OCTET STRING,
+ localDistinguishedName [4] IMPLICIT RDNSequence
+}
+
+-- localDistinguishedName is that portion of the distinguished name that is necessary to unambiguously identify the
+-- managed object within the context of communication between the open systems
+ProcessingFailure ::= SEQUENCE {
+ managedObjectClass ObjectClass,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ specificErrorInfo [5] SpecificErrorInfo,
+ ...
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+RelativeDistinguishedName ::= SET OF AttributeValueAssertion
+
+Scope ::= CHOICE {
+ namedNumbers INTEGER {baseObject(0), firstLevelOnly(1), wholeSubtree(2)},
+ individualLevels [1] IMPLICIT INTEGER, -- POSITIVE integer indicates the level to be selected
+ baseToNthLevel [2] IMPLICIT INTEGER
+} -- POSITIVE integer N indicates that the range of levels
+
+-- (0 - N) is to be selected
+-- with individualLevels and baseToNthLevel, a value of 0 has the same semantics as baseObject
+-- with individualLevels, a value of 1 has the same semantics as firstLevelOnly
+SetArgument ::= SEQUENCE {
+ COMPONENTS OF BaseManagedObjectId,
+ accessControl [5] AccessControl OPTIONAL,
+ synchronization [6] IMPLICIT CMISSync DEFAULT bestEffort,
+ scope [7] Scope DEFAULT namedNumbers:baseObject,
+ filter CMISFilter DEFAULT and:{},
+ modificationList
+ [12] IMPLICIT SET OF
+ SEQUENCE {modifyOperator
+ [2] IMPLICIT ModifyOperator DEFAULT replace,
+ attributeId
+ CMIP-ATTRIBUTE.&id({AttributeSet}),
+ attributeValue
+ CMIP-ATTRIBUTE.&Value
+ ({AttributeSet}{@.attributeId}) OPTIONAL
+ },
+ -- value is absent for setToDefault
+ ...
+}
+
+SetInfoStatus ::= CHOICE {
+ attributeError [0] IMPLICIT AttributeError,
+ attribute [1] IMPLICIT Attribute
+}
+
+SetListError ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ setInfoList [6] IMPLICIT SET OF SetInfoStatus,
+ ...
+}
+
+SetResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ attributeList [6] IMPLICIT SET OF Attribute OPTIONAL,
+ ...
+}
+
+SpecificErrorInfo ::= SEQUENCE {
+ errorId CMIP-SPECIFICERROR.&id({SpecificErrorSet}),
+ errorInfo CMIP-SPECIFICERROR.&Value({SpecificErrorSet}{@.errorId})
+}
+
+SpecificErrorSet CMIP-SPECIFICERROR ::=
+ {...}
+
+-- the following type specifies the constraints to be applied when using ROSE to support CMIP
+ROSEapdus ::=
+ ROS{{InvokeIDType}, {CMIP-Operations}, {CMIP-Confirmed-Operations}}
+
+END -- End of CMIP syntax definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/cmip/CMIP-A-ABORT-Information.asn b/epan/dissectors/asn1/cmip/CMIP-A-ABORT-Information.asn
new file mode 100644
index 0000000000..f2d3e8e4f5
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/CMIP-A-ABORT-Information.asn
@@ -0,0 +1,17 @@
+-- Module CMIP-A-ABORT-Information (X.711:10/1997)
+CMIP-A-ABORT-Information {joint-iso-itu-t ms(9) cmip(1) modules(0)
+ aAbortUserInfo(2)} DEFINITIONS ::=
+BEGIN
+
+-- Information carried in user-information parameter of A-ABORT
+CMIPAbortInfo ::= SEQUENCE {
+ abortSource [0] IMPLICIT CMIPAbortSource,
+ userInfo [1] EXTERNAL OPTIONAL
+}
+
+CMIPAbortSource ::= ENUMERATED {cmiseServiceUser(0), cmiseServiceProvider(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/cmip/CMIP-A-ASSOCIATE-Information.asn b/epan/dissectors/asn1/cmip/CMIP-A-ASSOCIATE-Information.asn
new file mode 100644
index 0000000000..0516dd5e8f
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/CMIP-A-ASSOCIATE-Information.asn
@@ -0,0 +1,24 @@
+-- Module CMIP-A-ASSOCIATE-Information (X.711:10/1997)
+CMIP-A-ASSOCIATE-Information {joint-iso-itu-t ms(9) cmip(1) modules(0)
+ aAssociateUserInfo(1)} DEFINITIONS ::=
+BEGIN
+
+FunctionalUnits ::= BIT STRING {
+ multipleObjectSelection(0), filter(1), multipleReply(2), extendedService(3),
+ cancelGet(4)}
+
+-- Functional unit i is supported if and only if bit i is one
+-- Information carried in user-information parameter of A-ASSOCIATE
+CMIPUserInfo ::= SEQUENCE {
+ protocolVersion [0] IMPLICIT ProtocolVersion DEFAULT {version1},
+ functionalUnits [1] IMPLICIT FunctionalUnits DEFAULT {},
+ accessControl [2] EXTERNAL OPTIONAL,
+ userInfo [3] EXTERNAL OPTIONAL
+}
+
+ProtocolVersion ::= BIT STRING {version1(0), version2(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/cmip/CMIP.asn b/epan/dissectors/asn1/cmip/CMIP.asn
new file mode 100644
index 0000000000..a00ef2233b
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/CMIP.asn
@@ -0,0 +1,526 @@
+-- some of the definitions use implicit tags so be careful when adding
+-- new structures.
+-- Module CMIP-A-ASSOCIATE-Information (X.711:10/1997)
+CMIP-A-ASSOCIATE-Information {joint-iso-itu-t ms(9) cmip(1) modules(0)
+ aAssociateUserInfo(1)} DEFINITIONS ::=
+BEGIN
+
+ IMPORTS
+
+ EXTERNALt
+ FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) acse1(1) version1(1)};
+
+
+ModificationItem ::= SEQUENCE {
+ modifyOperator [2] IMPLICIT ModifyOperator OPTIONAL,
+ attributeId OBJECT IDENTIFIER,
+ attributeValue ANY OPTIONAL
+}
+
+GetListError ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ getInfoList [6] IMPLICIT SET OF GetInfoStatus,
+ ...
+}
+
+ModifyOperator ::= INTEGER {
+ replace(0), addValues(1), removeValues(2), setToDefault(3)}
+
+GetInfoStatus ::= CHOICE {
+ attributeIdError [0] IMPLICIT AttributeIdError,
+ attribute [1] IMPLICIT Attribute
+}
+
+AttributeIdError ::= SEQUENCE {
+ errorStatus ENUMERATED {accessDenied(2), noSuchAttribute(5), ...
+ },
+ attributeId AttributeId,
+ ...
+}
+
+SetListError ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ setInfoList [6] IMPLICIT SET OF SetInfoStatus,
+ ...
+}
+
+ActionError ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ actionErrorInfo [6] ActionErrorInfo,
+ ...
+}
+
+ProcessingFailure ::= SEQUENCE {
+ managedObjectClass ObjectClass,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ specificErrorInfo [5] SpecificErrorInfo,
+ ...
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+RelativeDistinguishedName ::= SET OF AttributeValueAssertion
+
+DeleteError ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ deleteErrorInfo [6] ENUMERATED {accessDenied(2), ...
+ },
+ ...
+}
+
+SetInfoStatus ::= CHOICE {
+ attributeError [0] IMPLICIT AttributeError,
+ attribute [1] IMPLICIT Attribute
+}
+
+SpecificErrorInfo ::= SEQUENCE {
+ errorId OBJECT IDENTIFIER,
+ errorInfo ANY
+}
+
+NoSuchArgumentAction ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ actionType OBJECT IDENTIFIER
+}
+
+NoSuchArgumentEvent ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ eventType OBJECT IDENTIFIER
+}
+
+NoSuchArgument ::= CHOICE {
+ actionId
+ [0] IMPLICIT NoSuchArgumentAction,
+ eventId
+ [1] IMPLICIT NoSuchArgumentEvent
+}
+
+InvalidArgumentValueEventValue ::= SEQUENCE {
+ eventType OBJECT IDENTIFIER,
+ eventInfo [8] ANY OPTIONAL
+}
+
+InvalidArgumentValue ::= CHOICE {
+ actionValue [0] IMPLICIT ActionInfo,
+ eventValue
+ [1] IMPLICIT InvalidArgumentValueEventValue
+}
+
+ErrorInfo ::= CHOICE {
+ actionType OBJECT IDENTIFIER,
+ actionArgument [0] NoSuchArgument,
+ argumentValue [1] InvalidArgumentValue
+}
+
+ActionErrorInfo ::= SEQUENCE {
+ errorStatus
+ ENUMERATED {accessDenied(2), noSuchAction(9), noSuchArgument(14),
+ invalidArgumentValue(15), ...
+ },
+ errorInfo
+ ErrorInfo,
+ ...
+}
+
+AttributeError ::= SEQUENCE {
+ errorStatus
+ ENUMERATED {accessDenied(2), noSuchAttribute(5), invalidAttributeValue(6),
+ invalidOperation(24), invalidOperator(25), ...
+ },
+ modifyOperator [2] IMPLICIT ModifyOperator OPTIONAL, -- present for invalidOperator
+
+ -- and invalidOperation
+ attributeId OBJECT IDENTIFIER,
+ attributeValue ANY OPTIONAL
+ -- value is absent for setToDefault
+}
+
+SetResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ attributeList [6] IMPLICIT SET OF Attribute OPTIONAL,
+ ...
+}
+
+SetArgument ::= SEQUENCE {
+ baseManagedObjectClass ObjectClass,
+ baseManagedObjectInstance ObjectInstance,
+ accessControl [5] AccessControl OPTIONAL,
+ synchronization [6] IMPLICIT CMISSync OPTIONAL,
+ scope [7] Scope OPTIONAL,
+ filter CMISFilter OPTIONAL,
+ modificationList [12] IMPLICIT SET OF ModificationItem,
+ -- value is absent for setToDefault
+ ...
+}
+
+LinkedReplyArgument ::= CHOICE {
+ getResult [0] IMPLICIT GetResult,
+ getListError [1] IMPLICIT GetListError,
+ setResult [2] IMPLICIT SetResult,
+ setListError [3] IMPLICIT SetListError,
+ actionResult [4] IMPLICIT ActionResult,
+ processingFailure [5] IMPLICIT ProcessingFailure,
+ deleteResult [6] IMPLICIT DeleteResult,
+ actionError [7] IMPLICIT ActionError,
+ deleteError [8] IMPLICIT DeleteError
+}
+
+EventReply ::= SEQUENCE {
+ eventType OBJECT IDENTIFIER,
+ eventReplyInfo [8] ANY OPTIONAL
+}
+
+DistinguishedName ::= RDNSequence
+
+EventReportResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ eventReply EventReply OPTIONAL,
+ ...
+}
+
+EventReportArgument ::= SEQUENCE {
+ managedObjectClass ObjectClass,
+ managedObjectInstance ObjectInstance,
+ eventTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ eventType OBJECT IDENTIFIER,
+ eventInfo [8] ANY OPTIONAL,
+ ...
+}
+
+DeleteArgument ::= SEQUENCE {
+ baseManagedObjectClass ObjectClass,
+ baseManagedObjectInstance ObjectInstance,
+ accessControl [5] AccessControl OPTIONAL,
+ synchronization [6] IMPLICIT CMISSync OPTIONAL,
+ scope [7] Scope OPTIONAL,
+ filter CMISFilter OPTIONAL,
+ ...
+}
+
+DeleteResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ ...
+}
+
+CreateArgument ::= SEQUENCE {
+ managedObjectClass ObjectClass,
+ managedOrSuperiorObjectInstance
+ CHOICE {managedObjectInstance ObjectInstance,
+ superiorObjectInstance [8] ObjectInstance} OPTIONAL,
+ accessControl [5] AccessControl OPTIONAL,
+ referenceObjectInstance [6] ObjectInstance OPTIONAL,
+ attributeList [7] IMPLICIT SET OF Attribute OPTIONAL,
+ ...
+}
+
+CreateResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL, -- shall be returned if omitted from CreateArgument
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ attributeList [6] IMPLICIT SET OF Attribute OPTIONAL,
+ ...
+}
+
+ActionReply ::= SEQUENCE {
+ actionType OBJECT IDENTIFIER,
+ actionReplyInfo [4] ANY
+}
+
+ActionResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ actionReply [6] IMPLICIT ActionReply OPTIONAL,
+ ...
+}
+
+ActionArgument ::= SEQUENCE {
+ baseManagedObjectClass ObjectClass,
+ baseManagedObjectInstance ObjectInstance,
+ accessControl [5] AccessControl OPTIONAL,
+ synchronization [6] IMPLICIT CMISSync OPTIONAL,
+ scope [7] Scope OPTIONAL,
+ filter CMISFilter OPTIONAL,
+ actionInfo [12] IMPLICIT ActionInfo,
+ ...
+}
+
+ActionInfo ::= SEQUENCE {
+ actionType OBJECT IDENTIFIER,
+ actionInfoArg [4] ANY OPTIONAL
+}
+
+ObjectClass ::= CHOICE {
+ ocglobalForm [0] IMPLICIT OBJECT IDENTIFIER,
+ oclocalForm [1] IMPLICIT INTEGER
+}
+
+ObjectInstance ::= CHOICE {
+ distinguishedName [2] IMPLICIT DistinguishedName,
+ nonSpecificForm [3] IMPLICIT OCTET STRING,
+ localDistinguishedName [4] IMPLICIT RDNSequence
+}
+
+BaseManagedObjectId ::= SEQUENCE {
+ baseManagedObjectClass ObjectClass,
+ baseManagedObjectInstance ObjectInstance
+}
+
+AttributeId ::= CHOICE {
+ globalForm [0] IMPLICIT OBJECT IDENTIFIER,
+ localForm [1] IMPLICIT INTEGER
+}
+
+Attribute ::= SEQUENCE {
+ id AttributeId,
+ value ANY
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ id OBJECT IDENTIFIER,
+ value ANY
+}
+
+-- This Recommendation | International Standard does not allocate any values for localForm.
+-- Where this alternative is used, the permissible values for the integers and their meanings shall be defined
+-- as part of the application context in which they are used
+FilterItem ::= CHOICE {
+ equality [0] IMPLICIT Attribute,
+ substrings
+ [1] IMPLICIT SEQUENCE OF
+ CHOICE {initialString [0] IMPLICIT Attribute,
+ anyString [1] IMPLICIT Attribute,
+ finalString [2] IMPLICIT Attribute},
+ greaterOrEqual [2] IMPLICIT Attribute, -- asserted value ? attribute value
+ lessOrEqual [3] IMPLICIT Attribute, -- asserted value <= attribute value
+ present [4] AttributeId,
+ subsetOf [5] IMPLICIT Attribute, -- asserted value is a subset of attribute value
+ supersetOf [6] IMPLICIT Attribute, -- asserted value is a superset of attribute value
+ nonNullSetIntersection [7] IMPLICIT Attribute
+}
+
+-- IMPORTED from Attribute-ASN1Module {joint-iso-itu-t ms(9) smi(3) part2(2) asn1Module(2) 1}
+
+AdministrativeState ::= ENUMERATED {locked(0), unlocked(1), shuttingDown(2)}
+
+DiscriminatorConstruct ::= CMISFilter
+
+Destination ::= CHOICE {single AE-title,
+ multiple SET OF AE-title
+}
+
+OperationalState ::= ENUMERATED {disabled(0), enabled(1)}
+
+NameBinding ::= OBJECT IDENTIFIER
+
+
+-- FROM ACSE
+AE-title ::= CHOICE {
+ ae-title-form1 AE-title-form1,
+ ae-title-form2 AE-title-form2,
+ ...
+}
+
+-- As defined in ITU-T Rec. X.650 | ISO/IEC 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 (see 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 itu-t
+-- Rec X.665 | ISO/IEC 9834-6.
+AE-title-form2 ::= OBJECT IDENTIFIER
+
+Name ::= CHOICE {
+ rdnSequence RDNSequence
+}
+
+-- End Imports
+
+
+CMISFilter ::= CHOICE {
+ item [8] FilterItem,
+ and [9] IMPLICIT SET OF CMISFilter,
+ or [10] IMPLICIT SET OF CMISFilter,
+ not [11] CMISFilter
+}
+
+Scope ::= CHOICE {
+ namedNumbers INTEGER {baseObject(0), firstLevelOnly(1), wholeSubtree(2)},
+ individualLevels [1] IMPLICIT INTEGER, -- POSITIVE integer indicates the level to be selected
+ baseToNthLevel [2] IMPLICIT INTEGER
+} -- POSITIVE integer N indicates that the range of levels
+
+CMISSync ::= ENUMERATED {bestEffort(0), atomic(1)}
+
+-- Supporting type definitions
+AccessControl ::= EXTERNALt
+
+
+GetArgument ::= SEQUENCE {
+-- COMPONENTS OF BaseManagedObjectId, manually expanded
+ baseManagedObjectClass ObjectClass,
+ baseManagedObjectInstance ObjectInstance,
+ accessControl [5] AccessControl OPTIONAL,
+ synchronization [6] IMPLICIT CMISSync OPTIONAL,
+ scope [7] Scope OPTIONAL,
+ filter CMISFilter OPTIONAL,
+ attributeIdList [12] IMPLICIT SET OF AttributeId OPTIONAL,
+ ...
+}
+
+GetResult ::= SEQUENCE {
+ managedObjectClass ObjectClass OPTIONAL,
+ managedObjectInstance ObjectInstance OPTIONAL,
+ currentTime [5] IMPLICIT GeneralizedTime OPTIONAL,
+ attributeList [6] IMPLICIT SET OF Attribute OPTIONAL,
+ ...
+}
+
+Argument ::= ANY
+
+ReturnResultBody ::= SEQUENCE {
+ opcode Opcode,
+ argument Argument
+}
+
+InvokeID ::= INTEGER
+
+Opcode ::= INTEGER { m-EventReport(0), m-EventReport-Confirmed(1), m-Linked-Reply(2), m-Get(3), m-Set(4), m-Set-Confirmed(5), m-Action(6), m-Action-Confirmed(7), m-Create(8), m-Delete(9), m-CancelGet(10) }
+
+--InvokeLinkedId ::= CHOICE {
+-- present [0] IMPLICIT InvokeId,
+-- absent [1] IMPLICIT NULL
+--}
+InvokeLinkedId ::= INTEGER
+
+InvokeIDType ::= InvokeId
+
+InvokeId ::= CHOICE {
+ present InvokeID,
+ absent NULL
+}
+
+Invoke ::= SEQUENCE {
+ invokeId InvokeId,
+ linkedId [0] IMPLICIT InvokeLinkedId OPTIONAL,
+ opcode Opcode,
+ argument Argument OPTIONAL
+}
+
+ReturnResult ::= SEQUENCE {
+ invokeId InvokeId,
+ rRBody ReturnResultBody OPTIONAL
+}
+
+ReturnError ::= SEQUENCE {
+ invokeId InvokeId
+--XXX need to fill in missing fields here
+}
+
+
+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)
+}
+
+RejectProb ::= CHOICE {
+ generalProblem [0] IMPLICIT GeneralProblem,
+ invokeProblem [1] IMPLICIT InvokeProblem,
+ returnResultProblem [2] IMPLICIT ReturnResultProblem,
+ returnErrorProblem [3] IMPLICIT ReturnErrorProblem
+}
+
+Reject ::= SEQUENCE {
+ invokeId InvokeId,
+ rejectProblem RejectProb
+}
+
+ROS ::= CHOICE {
+ invoke [1] IMPLICIT Invoke,
+ returnResult [2] IMPLICIT ReturnResult,
+ returnError [3] IMPLICIT ReturnError,
+ reject [4] IMPLICIT Reject
+}
+
+
+
+
+
+
+-- CMIP-A-ABORT
+-- Information carried in user-information parameter of A-ABORT
+CMIPAbortInfo ::= SEQUENCE {
+ abortSource [0] IMPLICIT CMIPAbortSource,
+ userInfo [1] EXTERNALt OPTIONAL
+}
+
+CMIPAbortSource ::= ENUMERATED {cmiseServiceUser(0), cmiseServiceProvider(1)}
+
+
+
+
+-- CMIP-A-ASSOCIATE
+FunctionalUnits ::= BIT STRING {
+ multipleObjectSelection(0), filter(1), multipleReply(2), extendedService(3),
+ cancelGet(4)}
+
+-- Functional unit i is supported if and only if bit i is one
+-- Information carried in user-information parameter of A-ASSOCIATE
+CMIPUserInfo ::= SEQUENCE {
+ protocolVersion [0] IMPLICIT ProtocolVersion OPTIONAL,
+ functionalUnits [1] IMPLICIT FunctionalUnits OPTIONAL,
+ accessControl [2] EXTERNALt OPTIONAL,
+ userInfo [3] EXTERNALt OPTIONAL
+}
+
+ProtocolVersion ::= BIT STRING {version1(0), version2(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/cmip/CMakeLists.txt b/epan/dissectors/asn1/cmip/CMakeLists.txt
new file mode 100644
index 0000000000..d8f04ab560
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/CMakeLists.txt
@@ -0,0 +1,61 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME cmip )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST_LATE
+ ../x721/Attribute-ASN1Module.asn
+ ../ros/Remote-Operations-Information-Objects.asn
+ ../ros/Remote-Operations-Generic-ROS-PDUs.asn
+)
+
+set( ASN_FILE_LIST
+ CMIP-1.asn
+ CMIP-A-ABORT-Information.asn
+ CMIP-A-ASSOCIATE-Information.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../acse/acse-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/cmip/Makefile.am b/epan/dissectors/asn1/cmip/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/cmip/Makefile.common b/epan/dissectors/asn1/cmip/Makefile.common
new file mode 100644
index 0000000000..d80015e6de
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/Makefile.common
@@ -0,0 +1,59 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=cmip
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST_LATE = \
+ ../x721/Attribute-ASN1Module.asn \
+ ../ros/Remote-Operations-Information-Objects.asn \
+ ../ros/Remote-Operations-Generic-ROS-PDUs.asn
+
+ASN_FILE_LIST = \
+ CMIP-1.asn \
+ CMIP-A-ABORT-Information.asn \
+ CMIP-A-ASSOCIATE-Information.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ CMIP.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../acse/acse-exp.cnf
+
+$(builddir)/../acse/acse-exp.cnf:
+ (cd $(builddir)/../acse && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/cmip/Makefile.nmake b/epan/dissectors/asn1/cmip/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/cmip/cmip.cnf b/epan/dissectors/asn1/cmip/cmip.cnf
new file mode 100644
index 0000000000..3f37b9d48e
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/cmip.cnf
@@ -0,0 +1,503 @@
+# cmip.cnf
+# CMIP conformation file
+
+#.IMPORT ../acse/acse-exp.cnf
+
+#.MODULE
+Remote-Operations-Information-Objects cmip.ros
+Attribute-ASN1Module cmip.x721
+
+
+#.OMIT_ASSIGNMENT Remote-Operations-Information-Objects
+Bind
+Unbind
+#.END
+
+#.NO_EMIT ONLY_VALS
+LinkedReplyArgument
+
+#.TYPE_RENAME
+
+Invoke/argument InvokeArgument
+ReturnResult/result/result ResultArgument
+Attribute/value AttributeValue
+EventReportArgument/eventInfo EventReportArgumentEventInfo
+
+#.FIELD_RENAME
+
+Invoke/linkedId/present linkedIdPresent
+
+Reject/problem/invoke invokeProblem
+Reject/problem/returnError returnErrorProblem
+Reject/problem/returnResult returnResultProblem
+
+ReturnResult/result/result resultArgument
+
+SetArgument/modificationList/_item/attributeValue attributevalue
+ActionTypeId/globalForm actionTypeId_globalForm
+AttributeId/globalForm attributeId_globalForm
+EventTypeId/globalForm eventTypeId_globalForm
+ObjectClass/globalForm objectClass_globalForm
+ManagementExtension/identifier managementExtensionidentifier
+ServiceUser/identifier serviceUseridentifier
+AttributeValueAssertion/value attributeValueAssertionvalue
+FilterItem/present filterItempresent
+ObjectClass/localForm objectClasslocalForm
+AttributeId/localForm attributeIdlocalForm
+ActionErrorInfo/errorStatus actionErrorInfo-errorStatus
+AttributeError/errorStatus attributeError-errorStatus
+AttributeIdError/errorStatus attributeIdError-errorStatus
+ActionErrorInfo/errorInfo actionErrorInfo
+# SpecificErrorInfo/errorInfo specificErrorInfo
+Attribute/id attributeid
+CMIPUserInfo/accessControl cmipUserInfoaccessControl
+ActionError/actionErrorInfo actionErroractionErrorInfo
+EventReportArgument/eventInfo eventReportArgumenteventInfo
+
+#.EXPORTS
+CMIPAbortInfo
+CMIPUserInfo
+ROS
+InvokeIDType
+ObjectInstance
+ObjectClass
+Attribute
+RDNSequence
+ProbableCause
+AdministrativeState
+AvailabilityStatus
+AttributeList
+AdditionalInformation
+
+#.TABLE_HDR
+/* CMIP OPERATIONS */
+static const value_string cmip_Opcode_vals[] = {
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* CMIP ERRORS */
+static const value_string cmip_error_code_vals[] = {
+#.TABLE_BODY ERROR
+ { %(&errorCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# X.721
+
+#.REGISTER
+BaseManagedObjectId B "2.9.2.21.7.13" "BaseManagedObjectId(13)"
+# X.721
+SimpleNameType B "2.9.3.2.7.1" "discriminatorId(1)"
+SimpleNameType B "2.9.3.2.7.2" "logId(2)"
+LogRecordId B "2.9.3.2.7.3" "logRecordId(3)"
+SystemId B "2.9.3.2.7.4" "systemId(4)"
+SystemTitle B "2.9.3.2.7.5" "systemTitle(5)"
+AdditionalInformation B "2.9.3.2.7.6" "additionalInformation(6)"
+AdditionalText B "2.9.3.2.7.7" "additionalText(7)"
+AttributeIdentifierList B "2.9.3.2.7.8" "attributeIdentifierList(8)"
+AttributeList B "2.9.3.2.7.9" "attributeList(9)"
+AttributeValueChangeDefinition B "2.9.3.2.7.10" "attributeValueChangeDefinition(10)"
+BackedUpStatus B "2.9.3.2.7.11" "backedUpStatus(11)"
+CorrelatedNotifications B "2.9.3.2.7.12" "correlatedNotifications(12)"
+EventTime B "2.9.3.2.7.13" "eventTime(13)"
+EventTypeId B "2.9.3.2.7.14" "eventType(14)"
+MonitoredAttributes B "2.9.3.2.7.15" "monitoredAttributes(15)"
+NotificationIdentifier B "2.9.3.2.7.16" "notificationIdentifier(16)"
+PerceivedSeverity B "2.9.3.2.7.17" "perceivedSeverity(17)"
+ProbableCause B "2.9.3.2.7.18" "probableCause(18)"
+ProposedRepairActions B "2.9.3.2.7.19" "proposedRepairActions(19)"
+AttributeValueChangeDefinition B "2.9.3.2.7.20" "relationshipChangeDefinition(20)"
+SecurityAlarmCause B "2.9.3.2.7.21" "securityAlarmCause(21)"
+SecurityAlarmDetector B "2.9.3.2.7.22" "securityAlarmDetector(22)"
+SecurityAlarmSeverity B "2.9.3.2.7.23" "securityAlarmSeverity(23)"
+ServiceProvider B "2.9.3.2.7.24" "serviceProvider(24)"
+ServiceUser B "2.9.3.2.7.25" "serviceUser(25)"
+SourceIndicator B "2.9.3.2.7.26" "sourceIndicator(26)"
+SpecificProblems B "2.9.3.2.7.27" "specificProblems(27)"
+AttributeValueChangeDefinition B "2.9.3.2.7.28" "stateChangeDefinition(28)"
+ThresholdInfo B "2.9.3.2.7.29" "thresholdInfo(29)"
+TrendIndication B "2.9.3.2.7.30" "trendIndication(30)"
+AdministrativeState B "2.9.3.2.7.31" "administrativeState(31)"
+AlarmStatus B "2.9.3.2.7.32" "alarmStatus(32)"
+AvailabilityStatus B "2.9.3.2.7.33" "availabilityStatus(33)"
+ControlStatus B "2.9.3.2.7.34" "controlStatus(34)"
+OperationalState B "2.9.3.2.7.35" "operationalState(35)"
+ProceduralStatus B "2.9.3.2.7.36" "proceduralStatus(36)"
+StandbyStatus B "2.9.3.2.7.37" "standbyStatus(37)"
+UnknownStatus B "2.9.3.2.7.38" "unknownStatus(38)"
+UsageState B "2.9.3.2.7.39" "usageState(39)"
+BackUpRelationshipObject B "2.9.3.2.7.40" "backUpObject(40)"
+BackUpRelationshipObject B "2.9.3.2.7.41" "backedUpObject(41)"
+GroupObjects B "2.9.3.2.7.42" "member(42)"
+GroupObjects B "2.9.3.2.7.43" "owner(43)"
+BackUpRelationshipObject B "2.9.3.2.7.44" "peer(44)"
+PrioritisedObject B "2.9.3.2.7.45" "primary(45)"
+PrioritisedObject B "2.9.3.2.7.46" "providerObject(46)"
+PrioritisedObject B "2.9.3.2.7.47" "secondary(47)"
+PrioritisedObject B "2.9.3.2.7.48" "userObject(48)"
+ActiveDestination B "2.9.3.2.7.49" "activeDestination(49)"
+Allomorphs B "2.9.3.2.7.50" "allomorphs(50)"
+BackUpDestinationList B "2.9.3.2.7.51" "backUpDestinationList(51)"
+CapacityAlarmThreshold B "2.9.3.2.7.52" "capacityAlarmThreshold(52)"
+ConfirmedMode B "2.9.3.2.7.53" "confirmedMode(53)"
+CurrentLogSize B "2.9.3.2.7.54" "currentLogSize(54)"
+Destination B "2.9.3.2.7.55" "destination(55)"
+DiscriminatorConstruct B "2.9.3.2.7.56" "discriminatorConstruct(56)"
+IntervalsOfDay B "2.9.3.2.7.57" "intervalsOfDay(57)"
+LogFullAction B "2.9.3.2.7.58" "logFullAction(58)"
+LoggingTime B "2.9.3.2.7.59" "loggingTime(59)"
+#ObjectClass B "2.9.3.2.7.60" "managedObjectClass(60)"
+#ObjectInstance B "2.9.3.2.7.61" "managedObjectInstance(61)"
+MaxLogSize B "2.9.3.2.7.62" "maxLogSize(62)"
+NameBinding B "2.9.3.2.7.63" "nameBinding(63)"
+NumberOfRecords B "2.9.3.2.7.64" "numberOfRecords(64)"
+ObjectClass B "2.9.3.2.7.65" "objectClass(65)"
+Packages B "2.9.3.2.7.66" "packages(66)"
+#ObjectInstance B "2.9.3.2.7.66" "schedulerName(67)"
+StartTime B "2.9.3.2.7.68" "startTime(68)"
+StopTime B "2.9.3.2.7.69" "stopTime(69)"
+SupportedFeatures B "2.9.3.2.7.70" "supportedFeatures(70)"
+WeekMask B "2.9.3.2.7.71" "weekMask(71)"
+# corruptedPDUsReceivedCounter(72) -- corruptedPDUsReceivedCounter attribute type
+# incomingConnectionRejectErrorCounter(73) -- incomingConnectionRejectErrorCounte...
+# incomingConnectionRequestsCounter(74) -- incomingConnectionRequestsCounter attr...
+# incomingDisconnectCounter(75) -- incomingDisconnectCounter attribute type
+# ncomingDisconnectErrorCounter(76) -- ncomingDisconnectErrorCounter attribute ty...
+# incomingProtocolErrorCounter(77) -- incomingProtocolErrorCounter attribute type
+# octetsReceivedCounter(78) -- octetsReceivedCounter attribute type
+# octetsRetransmittedErrorCounter(79) -- octetsRetransmittedErrorCounter attribut...
+# octetsSentCounter(80) -- octetsSentCounter attribute type
+# outgoingConnectionRejectErrorCounter(81) -- outgoingConnectionRejectErrorCounte...
+# outgoingConnectionRequestsCounter(82) -- outgoingConnectionRequestsCounter attr...
+# outgoingDisconnectCounter(83) -- outgoingDisconnectCounter attribute type
+# outgoingDisconnectErrorCounter(84) -- outgoingDisconnectErrorCounter attribute ...
+# outgoingProtocolErrorCounter(85) -- outgoingProtocolErrorCounter attribute type
+# pdusReceivedCounter(86) -- pdusReceivedCounter attribute type (PDU: Protocol Da...
+# pdusRetransmittedErrorCounter(87) -- pdusRetransmittedErrorCounter attribute ty...
+# pdusSentCounter(88) -- pdusSentCounter attribute type (PDU: Protocol Data Unit)
+# corruptedPDUsReceivedThreshold(89) -- corruptedPDUsReceivedThreshold attribute ...
+# incomingConnectionRejectErrorThreshold(90) -- incomingConnectionRejectErrorThre...
+# incomingConnectionRequestsThreshold(91) -- incomingConnectionRequestsThreshold ...
+# incomingDisconnectErrorThreshold(92) -- incomingDisconnectErrorThreshold attrib...
+# incomingProtocolErrorThreshold(93) -- incomingProtocolErrorThreshold attribute ...
+# octetsReceivedThreshold(94) -- octetsReceivedThreshold attribute type
+# octetsRetransmittedThreshold(95) -- octetsRetransmittedThreshold attribute type
+# octetsSentThreshold(96) -- octetsSentThreshold attribute type
+# outgoingConnectionRejectErrorThreshold(97) -- outgoingConnectionRejectErrorThre...
+# outgoingConnectionRequestsThreshold(98) -- outgoingConnectionRequestsThreshold ...
+# outgoingDisconnectErrorThreshold(99) -- outgoingDisconnectErrorThreshold attrib...
+# outgoingProtocolErrorThreshold(100) -- outgoingProtocolErrorThreshold attribute...
+# pdusReceivedThreshold(101) -- pdusReceivedThreshold attribute type (PDU: Protoc...
+# pdusRetransmittedErrorThreshold(102) -- pdusRetransmittedErrorThreshold attribu...
+# pdusSentThreshold(103) -- pdusSentThreshold attribute type (PDU: Protocol Data ...
+LifecycleState B "2.9.3.2.7.115" "lifecycleState(115)"
+
+
+#.OMIT_ASSIGNMENT
+# Removed as they are giving 'defined but not used' warnings currently.
+ROSEapdus
+CounterThreshold
+GaugeThreshold
+GaugeThresholdValue
+LogAvailability
+NotifyThreshold
+SchedulingAvailability
+TideMarkInfo
+TideMark
+UnscheduledLogAvailability
+Priority
+RejectProblem
+
+
+#.PDU
+
+
+#.FN_HDR CMIPAbortInfo
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CMIP-A-ABORT");
+#.END
+
+#.FN_HDR CMIPUserInfo
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CMIP-A-ASSOCIATE");
+#.END
+
+#.FN_BODY CMIPAbortSource VAL_PTR = &value
+ guint32 value;
+
+ %(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " AbortSource:%%s", val_to_str(value, cmip_CMIPAbortSource_vals, " Unknown AbortSource:%%d"));
+#.END
+
+#.FN_BODY Code/local VAL_PTR = &opcode
+ %(DEFAULT_BODY)s
+ if(opcode_type== OPCODE_RETURN_ERROR){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s", val_to_str(opcode, cmip_error_code_vals, " Unknown Opcode:%%d"));
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s", val_to_str(opcode, cmip_Opcode_vals, " Unknown Opcode:%%d"));
+ }
+#.END
+
+#.FN_HDR Invoke
+ opcode_type=OPCODE_INVOKE;
+ col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "Invoke ");
+#.END
+
+#.FN_HDR ReturnResult
+ opcode_type=OPCODE_RETURN_RESULT;
+ col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "ReturnResult ");
+#.END
+
+#.FN_HDR ReturnError
+ opcode_type=OPCODE_RETURN_ERROR;
+ col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "ReturnError ");
+#.END
+
+#.FN_HDR Reject
+ opcode_type=OPCODE_REJECT;
+ col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "Reject ");
+#.END
+
+#.FN_BODY AttributeId/globalForm FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+ %(DEFAULT_BODY)s
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY AttributeId/localForm VAL_PTR = &actx->external.indirect_reference
+ %(DEFAULT_BODY)s
+ actx->external.indirect_ref_present = TRUE;
+
+#.FN_BODY Attribute/value
+ if(actx->external.direct_ref_present){
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
+ } else if (actx->external.indirect_ref_present &&
+ dissector_try_uint(attribute_id_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
+ offset=tvb_reported_length (tvb);
+ } else {
+ offset=dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+ }
+
+#.FN_PARS AttributeValueAssertion/id
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_FTR AttributeValueAssertion/id
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY AttributeValueAssertion/value
+ if (actx->external.direct_ref_present) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
+ }
+
+#.FN_BODY Invoke/argument
+ switch(opcode){
+ case 0: /* M-eventreport */
+ offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 1: /* M-eventreport-confirmed */
+ offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 2: /* M-linkedreply */
+ offset = dissect_cmip_LinkedReplyArgument(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 3: /* M-get */
+ offset = dissect_cmip_GetArgument(FALSE, tvb, offset,actx, tree, -1);
+ break;
+ case 4: /* M-set */
+ offset = dissect_cmip_SetArgument(FALSE, tvb, offset,actx, tree, -1);
+ break;
+ case 5: /* M-set-confirmed */
+ offset = dissect_cmip_SetArgument(FALSE, tvb, offset,actx, tree, -1);
+ break;
+ case 6: /* M-action*/
+ offset = dissect_cmip_ActionArgument(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 7: /* M-action-confirmed*/
+ offset = dissect_cmip_ActionArgument(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /* M-create*/
+ offset = dissect_cmip_CreateArgument(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 9: /* M-delete*/
+ offset = dissect_cmip_DeleteArgument(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 10: /* M-cancelget */
+ offset = dissect_cmip_InvokeIDType(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ }
+
+
+#.FN_BODY ReturnResult/result/result
+
+ switch(opcode){
+ case 0: /* M-eventreport*/
+ break; /* No return data */
+ case 1: /* M-eventreport-confirmed */
+ offset = dissect_cmip_EventReportResult(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 2: /* M-linkedreply*/
+ break; /* No return data */
+ case 3: /* M-get */
+ offset = dissect_cmip_GetResult(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 4: /* M-set */
+ break; /* No return data */
+ case 5: /* M-set-confirmed*/
+ offset = dissect_cmip_SetResult(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 6: /* M-action*/
+ break; /* No return data */
+ case 7: /* M-action-confirmed*/
+ offset = dissect_cmip_ActionResult(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /* M-create*/
+ offset = dissect_cmip_CreateResult(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 9: /* M-delete*/
+ offset = dissect_cmip_DeleteResult(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 10: /* M-cancelget */
+ break; /* doe this one return any data? */
+ }
+ /*XXX add more types here */
+
+#.FN_BODY ReturnError/parameter
+
+ switch(opcode){
+ case 19: /* classInstanceConflict */
+ dissect_cmip_BaseManagedObjectId(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 20: /* complexityLimitation */
+ dissect_cmip_ComplexityLimitation(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 11: /* duplicateManagedObjectInstance */
+ dissect_cmip_ObjectInstance(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 7: /* getListError */
+ dissect_cmip_GetListError(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 15: /* invalidArgumentValue */
+ dissect_cmip_InvalidArgumentValue(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 6: /* invalidAttributeValue */
+ dissect_cmip_Attribute(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 4: /* invalidFilter */
+ dissect_cmip_CMISFilter(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 17: /* invalidObjectInstance */
+ dissect_cmip_ObjectInstance(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 16: /* invalidScope */
+ dissect_cmip_Scope(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 18: /* missingAttributeValue */
+ /* Hmmm SET OF AttributeId */
+ dissect_cmip_PAR_missingAttributeValue(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 9: /* noSuchAction */
+ dissect_cmip_NoSuchAction(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 14: /* noSuchArgument */
+ dissect_cmip_NoSuchArgument(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 5: /* noSuchAttribute */
+ dissect_cmip_AttributeId(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 13: /* noSuchEventType */
+ dissect_cmip_NoSuchEventType(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 22: /* noSuchInvokeId */
+ dissect_cmip_InvokeIDType(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 0: /* noSuchObjectClass */
+ dissect_cmip_ObjectClass(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 1:/* noSuchObjectInstance */
+ dissect_cmip_ObjectInstance(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 12: /* noSuchReferenceObject */
+ dissect_cmip_ObjectInstance(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 10: /* processingFailure OPTIONAL TRUE*/
+ dissect_cmip_ProcessingFailure(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /* setListError */
+ dissect_cmip_SetListError(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 3:/* syncNotSupported */
+ dissect_cmip_CMISSync(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ }
+
+#.FN_PARS ObjectClass/globalForm
+ FN_VARIANT = _str
+
+#.FN_PARS ActionTypeId/globalForm
+ FN_VARIANT = _str HF_INDEX = hf_cmip_actionType_OID VAL_PTR = &object_identifier_id
+
+#.FN_BODY ActionInfo/actionInfoArg
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_PARS EventTypeId/globalForm
+ FN_VARIANT = _str HF_INDEX = hf_cmip_eventType_OID VAL_PTR = &object_identifier_id
+
+#.FN_BODY EventReportArgument/eventInfo
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_BODY EventReply/eventReplyInfo
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_BODY SetArgument/modificationList/_item/attributeValue
+ if(actx->external.direct_ref_present){
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+ } else if (actx->external.indirect_ref_present &&
+ dissector_try_uint(attribute_id_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
+ offset=tvb_reported_length (tvb);
+ } else {
+ offset=dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+ }
+
+#.FN_PARS SpecificErrorInfo/errorId
+ FN_VARIANT = _str HF_INDEX = hf_cmip_errorId_OID VAL_PTR = &object_identifier_id
+
+#.FN_BODY SpecificErrorInfo/errorInfo
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_BODY AttributeError/attributeValue
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_BODY InvalidArgumentValue/eventValue/eventInfo
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_BODY ActionReply/actionReplyInfo
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+
+# X.721
+#.FN_PARS ManagementExtension/identifier FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY ManagementExtension/information
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_BODY AttributeValueChangeDefinition/_item/oldAttributeValue
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_BODY AttributeValueChangeDefinition/_item/newAttributeValue
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_PARS ServiceUser/identifier FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY ServiceUser/details
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_PARS SupportedFeatures/_item/featureIdentifier FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY SupportedFeatures/_item/featureInfo
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+
+#.END
diff --git a/epan/dissectors/asn1/cmip/packet-cmip-template.c b/epan/dissectors/asn1/cmip/packet-cmip-template.c
new file mode 100644
index 0000000000..6ecbaf9918
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/packet-cmip-template.c
@@ -0,0 +1,232 @@
+/* packet-cmip.c
+ * Routines for X.711 CMIP packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-x509if.h"
+#include "packet-cmip.h"
+
+#define PNAME "X711 CMIP"
+#define PSNAME "CMIP"
+#define PFNAME "cmip"
+
+void proto_register_cmip(void);
+void proto_reg_handoff_cmip(void);
+
+/* XXX some stuff we need until we can get rid of it */
+#include "packet-ses.h"
+#include "packet-pres.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_cmip = -1;
+static int hf_cmip_actionType_OID = -1;
+static int hf_cmip_eventType_OID = -1;
+static int hf_cmip_attributeId_OID = -1;
+static int hf_cmip_errorId_OID = -1;
+static int hf_DiscriminatorConstruct = -1;
+static int hf_Destination = -1;
+static int hf_NameBinding = -1;
+static int hf_ObjectClass = -1;
+#include "packet-cmip-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_cmip = -1;
+#include "packet-cmip-ett.c"
+
+static expert_field ei_wrong_spdu_type = EI_INIT;
+
+static guint32 opcode;
+
+/* Dissector table */
+static dissector_table_t attribute_id_dissector_table;
+
+#include "packet-cmip-table.c"
+
+static int opcode_type;
+#define OPCODE_INVOKE 1
+#define OPCODE_RETURN_RESULT 2
+#define OPCODE_RETURN_ERROR 3
+#define OPCODE_REJECT 4
+
+static const char *object_identifier_id;
+
+#include "packet-cmip-val.h"
+#include "packet-cmip-fn.c"
+
+
+
+
+/* XXX this one should be broken out later and moved into the conformance file */
+static int
+dissect_cmip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ struct SESSION_DATA_STRUCTURE* session;
+ proto_item *item;
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ session = (struct SESSION_DATA_STRUCTURE*)data;
+
+ if(session->spdu_type == 0 ) {
+ proto_tree_add_expert_format(parent_tree, pinfo, &ei_wrong_spdu_type, tvb, 0, -1,
+ "Internal error: wrong spdu type %x from session dissector.", session->spdu_type);
+ return 0;
+ }
+
+ asn1_ctx.private_data = session;
+
+ item = proto_tree_add_item(parent_tree, proto_cmip, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_cmip);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CMIP");
+ col_clear(pinfo->cinfo, COL_INFO);
+ switch(session->spdu_type){
+ case SES_CONNECTION_REQUEST:
+ case SES_CONNECTION_ACCEPT:
+ case SES_DISCONNECT:
+ case SES_FINISH:
+ case SES_REFUSE:
+ dissect_cmip_CMIPUserInfo(FALSE,tvb,0,&asn1_ctx,tree,-1);
+ break;
+ case SES_ABORT:
+ dissect_cmip_CMIPAbortInfo(FALSE,tvb,0,&asn1_ctx,tree,-1);
+ break;
+ case SES_DATA_TRANSFER:
+ dissect_cmip_ROS(FALSE,tvb,0,&asn1_ctx,tree,-1);
+ break;
+ default:
+ ;
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_cmip ----------------------------------------------*/
+void proto_register_cmip(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_cmip_actionType_OID,
+ { "actionType", "cmip.actionType_OID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_cmip_eventType_OID,
+ { "eventType", "cmip.eventType_OID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_cmip_attributeId_OID,
+ { "attributeId", "cmip.attributeId_OID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_cmip_errorId_OID,
+ { "errorId", "cmip.errorId_OID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_DiscriminatorConstruct,
+ { "DiscriminatorConstruct", "cmip.DiscriminatorConstruct",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_Destination,
+ { "Destination", "cmip.Destination",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_NameBinding,
+ { "NameBinding", "cmip.NameBinding",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ObjectClass,
+ { "ObjectClass", "cmip.ObjectClass",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectClass_vals), 0,
+ NULL, HFILL }},
+
+#include "packet-cmip-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_cmip,
+#include "packet-cmip-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_wrong_spdu_type, { "cmip.wrong_spdu_type", PI_PROTOCOL, PI_ERROR, "Internal error: wrong spdu type", EXPFILL }},
+ };
+
+ expert_module_t* expert_cmip;
+
+ /* Register protocol */
+ proto_cmip = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("cmip", dissect_cmip, proto_cmip);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_cmip, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_cmip = expert_register_protocol(proto_cmip);
+ expert_register_field_array(expert_cmip, ei, array_length(ei));
+
+#include "packet-cmip-dis-tab.c"
+ oid_add_from_string("discriminatorId(1)","2.9.3.2.7.1");
+
+ attribute_id_dissector_table = register_dissector_table("cmip.attribute_id", "CMIP Attribute Id", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+
+}
+
+
+/*--- proto_reg_handoff_cmip -------------------------------------------*/
+void proto_reg_handoff_cmip(void) {
+ dissector_handle_t cmip_handle = find_dissector("cmip");
+
+ register_ber_oid_dissector_handle("2.9.0.0.2", cmip_handle, proto_cmip, "cmip");
+ register_ber_oid_dissector_handle("2.9.1.1.4", cmip_handle, proto_cmip, "joint-iso-itu-t(2) ms(9) cmip(1) cmip-pci(1) abstractSyntax(4)");
+
+ oid_add_from_string("2.9.3.2.3.1","managedObjectClass(3) alarmRecord(1)");
+ oid_add_from_string("2.9.3.2.3.2","managedObjectClass(3) attributeValueChangeRecord(2)");
+ oid_add_from_string("2.9.3.2.3.3","managedObjectClass(3) discriminator(3)");
+ oid_add_from_string("2.9.3.2.3.4","managedObjectClass(3) eventForwardingDiscriminator(4)");
+ oid_add_from_string("2.9.3.2.3.5","managedObjectClass(3) eventLogRecord(5)");
+ oid_add_from_string("2.9.3.2.3.6","managedObjectClass(3) log(6)");
+ oid_add_from_string("2.9.3.2.3.7","managedObjectClass(3) logRecord(7)");
+ oid_add_from_string("2.9.3.2.3.8","managedObjectClass(3) objectCreationRecord(8)");
+ oid_add_from_string("2.9.3.2.3.9","managedObjectClass(3) objectDeletionRecord(9)");
+ oid_add_from_string("2.9.3.2.3.10","managedObjectClass(3) relationshipChangeRecord(10)");
+ oid_add_from_string("2.9.3.2.3.11","managedObjectClass(3) securityAlarmReportRecord(11)");
+ oid_add_from_string("2.9.3.2.3.12","managedObjectClass(3) stateChangeRecord(12)");
+ oid_add_from_string("2.9.3.2.3.13","managedObjectClass(3) system(13)");
+ oid_add_from_string("2.9.3.2.3.14","managedObjectClass(3) top(14)");
+ oid_add_from_string("2.9.3.2.4.14","administrativeStatePackage(14)");
+ oid_add_from_string("2.9.1.1.4","joint-iso-itu-t(2) ms(9) cmip(1) cmip-pci(1) abstractSyntax(4)");
+
+/*#include "packet-cmip-dis-tab.c" */
+}
+
diff --git a/epan/dissectors/asn1/cmip/packet-cmip-template.h b/epan/dissectors/asn1/cmip/packet-cmip-template.h
new file mode 100644
index 0000000000..3147cd1db7
--- /dev/null
+++ b/epan/dissectors/asn1/cmip/packet-cmip-template.h
@@ -0,0 +1,30 @@
+/* packet-cmip.h
+ * Routines for X.711 CMIP packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_CMIP_H
+#define PACKET_CMIP_H
+
+#include "packet-cmip-exp.h"
+
+#endif /* PACKET_CMIP_H */
+
diff --git a/epan/dissectors/asn1/cmp/CMP.asn b/epan/dissectors/asn1/cmp/CMP.asn
new file mode 100644
index 0000000000..94e80dde5e
--- /dev/null
+++ b/epan/dissectors/asn1/cmp/CMP.asn
@@ -0,0 +1,524 @@
+-- Extracted from RFC4210
+-- by Martin Peylo <martin.peylo@nsn.com>
+--
+-- Changes to the original ASN.1 source:
+-- - Commented out the import of UTF8String which is not needed
+-- - Commented out PKIBody/p10cr since PKCS-10 is not implemented
+-- - Uncommented the definitions for the OIDs used in InfoTypeAndValue
+--
+-- The copyright statement from the original description in RFC4211
+-- follows below:
+--
+-- Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (2005).
+--
+-- This document is subject to the rights, licenses and restrictions
+-- contained in BCP 78, and except as set forth therein, the authors
+-- retain all their rights.
+--
+-- This document and the information contained herein are provided on an
+-- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+-- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+-- ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+-- INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+-- INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+-- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+ PKIXCMP {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-mod-cmp2000(16)}
+
+ DEFINITIONS EXPLICIT TAGS ::=
+
+ BEGIN
+
+ -- EXPORTS ALL --
+
+ IMPORTS
+
+ Certificate, CertificateList, Extensions, AlgorithmIdentifier --,
+ -- UTF8String
+ -- if required; otherwise, comment out
+ 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, KeyIdentifier
+ 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)}
+
+ CertTemplate, PKIPublicationInfo, EncryptedValue, CertId,
+ CertReqMessages
+ FROM PKIXCRMF-2005 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-mod-crmf2005(36)}
+
+ -- see also the behavioral clarifications to CRMF codified in
+ -- Appendix C of this specification
+
+ CertificationRequest
+ FROM PKCS-10 {iso(1) member-body(2)
+ us(840) rsadsi(113549)
+ pkcs(1) pkcs-10(10) modules(1) pkcs-10(1)}
+
+ -- (specified in RFC 2986 with 1993 ASN.1 syntax and IMPLICIT
+ -- tags). Alternatively, implementers may directly include
+ -- the [PKCS10] syntax in this module
+
+ ;
+
+ -- the rest of the module contains locally-defined OIDs and
+ -- constructs
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ }
+ -- This syntax, while bits-on-the-wire compatible with the
+ -- standard X.509 definition of "Certificate", allows the
+ -- possibility of future certificate types (such as X.509
+ -- attribute certificates, WAP WTLS certificates, or other kinds
+ -- of certificates) within this certificate management protocol,
+ -- should a need ever arise to support such generality. Those
+ -- implementations that do not foresee a need to ever support
+ -- other certificate types MAY, if they wish, comment out the
+ -- above structure and "un-comment" the following one prior to
+ -- compiling this ASN.1 module. (Note that interoperability
+ -- with implementations that don't do this will be unaffected by
+ -- this change.)
+
+ -- CMPCertificate ::= Certificate
+
+ PKIMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ PKIMessages ::= SEQUENCE SIZE (1..MAX) OF PKIMessage
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+ -- text encoded as UTF-8 String [RFC3629] (note: each
+ -- UTF8String MAY include an [RFC3066] language tag
+ -- to indicate the language of the contained text
+ -- see [RFC2482] for details)
+
+ PKIBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ -- p10cr [4] CertificationRequest,
+ --imported from [PKCS10]
+ p10cr [4] NULL, -- added for Wireshark to avoid miscounting of the branch_taken
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ PKIProtection ::= BIT STRING
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ id-PasswordBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 13}
+ PBMParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ id-DHBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 30}
+ DHBMParameter ::= SEQUENCE {
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+ NestedMessageContent ::= PKIMessages
+
+ PKIStatus ::= INTEGER {
+ accepted (0),
+ -- you got exactly what you asked for
+ grantedWithMods (1),
+ -- you got something like what you asked for; the
+ -- requester is responsible for ascertaining the differences
+ rejection (2),
+ -- you don't get it, more information elsewhere in the message
+ waiting (3),
+ -- the request body part has not yet been processed; expect to
+ -- hear more later (note: proper handling of this status
+ -- response MAY use the polling req/rep PKIMessages specified
+ -- in Section 5.3.22; alternatively, polling in the underlying
+ -- transport layer MAY have some utility in this regard)
+ revocationWarning (4),
+ -- this message contains a warning that a revocation is
+ -- imminent
+ revocationNotification (5),
+ -- notification that a revocation has occurred
+ keyUpdateWarning (6)
+ -- update already done for the oldCertId specified in
+ -- CertReqMsg
+ }
+
+ PKIFailureInfo ::= BIT STRING {
+ -- since we can fail in more than one way!
+ -- More codes may be added in the future if/when required.
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1),
+ -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3),
+ -- messageTime was not sufficiently close to the system time,
+ -- as defined by local policy
+ badCertId (4),
+ -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6),
+ -- the authority indicated in the request is different from the
+ -- one creating the response token
+ incorrectData (7),
+ -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8),
+ -- when the timestamp is missing but should be there
+ -- (by policy)
+ badPOP (9),
+ -- the proof-of-possession failed
+ certRevoked (10),
+ -- the certificate has already been revoked
+ certConfirmed (11),
+ -- the certificate has already been confirmed
+ wrongIntegrity (12),
+ -- invalid integrity, password based instead of signature or
+ -- vice versa
+ badRecipientNonce (13),
+ -- invalid recipient nonce, either missing or wrong value
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA.
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA.
+ addInfoNotAvailable (17),
+ -- the additional information requested could not be
+ -- understood or is not available
+ badSenderNonce (18),
+ -- invalid sender nonce, either missing or wrong size
+ badCertTemplate (19),
+ -- invalid cert. template or missing mandatory information
+ signerNotTrusted (20),
+ -- signer of the message unknown or not trusted
+ transactionIdInUse (21),
+ -- the transaction identifier is already in use
+ unsupportedVersion (22),
+ -- the version of the message is not supported
+ notAuthorized (23),
+ -- the sender was not authorized to make the preceding
+ -- request or perform the preceding action
+ systemUnavail (24),
+ -- the request cannot be handled due to system unavailability
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+ -- certificate cannot be issued because a duplicate
+ -- certificate already exists
+ }
+
+ PKIStatusInfo ::= SEQUENCE {
+ status PKIStatus,
+ statusString PKIFreeText OPTIONAL,
+ failInfo PKIFailureInfo OPTIONAL
+ }
+
+ OOBCert ::= CMPCertificate
+
+ OOBCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the DER encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ POPODecKeyChallContent ::= SEQUENCE OF Challenge
+ -- One Challenge per encryption key certification request (in the
+ -- same order as these requests appear in CertReqMessages).
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ POPODecKeyRespContent ::= SEQUENCE OF INTEGER
+ -- One INTEGER per encryption key certification request (in the
+ -- same order as these requests appear in CertReqMessages). The
+ -- retrieved INTEGER A (above) is returned to the sender of the
+ -- corresponding Challenge.
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedValue
+ }
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId
+ OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CMPCertificate, -- old pub signed with new priv
+ newWithOld CMPCertificate, -- new pub signed with old priv
+ newWithNew CMPCertificate -- new pub signed with new priv
+ }
+
+ CertAnnContent ::= CMPCertificate
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ CRLAnnContent ::= SEQUENCE OF CertificateList
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ PKIConfirmContent ::= NULL
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+ -- Example InfoTypeAndValue contents include, but are not limited
+ -- to, the following (un-comment in this ASN.1 module and use as
+ -- appropriate for a given environment):
+ --
+ -- id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ -- id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ -- id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ -- id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ -- id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ -- id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ -- id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ -- id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ -- id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifier
+ -- id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ -- id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ -- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ -- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ -- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+ --
+ -- where
+ --
+ -- id-pkix OBJECT IDENTIFIER ::= {
+ -- iso(1) identified-organization(3)
+ -- dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ -- and
+ -- id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+ --
+ --
+ -- This construct MAY also be used to define new PKIX Certificate
+ -- Management Protocol request and response messages, or general-
+ -- purpose (e.g., announcement) messages for future needs or for
+ -- specific environments.
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ -- May be sent by EE, RA, or CA (depending on message content).
+ -- The OPTIONAL infoValue parameter of InfoTypeAndValue will
+ -- typically be omitted for some of the examples given above.
+ -- The receiver is free to ignore any contained OBJ. IDs that it
+ -- does not recognize. If sent from EE to CA, the empty set
+ -- indicates that the CA may send
+ -- any/all information that it wishes.
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+ -- Receiver MAY ignore any contained OIDs that it does not
+ -- recognize.
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ END -- of CMP module
diff --git a/epan/dissectors/asn1/cmp/CMakeLists.txt b/epan/dissectors/asn1/cmp/CMakeLists.txt
new file mode 100644
index 0000000000..64ee4dcfe6
--- /dev/null
+++ b/epan/dissectors/asn1/cmp/CMakeLists.txt
@@ -0,0 +1,54 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME cmp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ CMP.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ ../pkix1explicit/pkix1explicit_exp.cnf
+ ../pkix1implicit/pkix1implicit_exp.cnf
+ "${CMAKE_CURRENT_BINARY_DIR}/../crmf/crmf-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/cmp/Makefile.am b/epan/dissectors/asn1/cmp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/cmp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/cmp/Makefile.common b/epan/dissectors/asn1/cmp/Makefile.common
new file mode 100644
index 0000000000..89ce31958e
--- /dev/null
+++ b/epan/dissectors/asn1/cmp/Makefile.common
@@ -0,0 +1,49 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=cmp
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ CMP.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../pkix1explicit/pkix1explicit_exp.cnf \
+ $(builddir)/../pkix1implicit/pkix1implicit_exp.cnf \
+ $(builddir)/../crmf/crmf-exp.cnf
+
+$(builddir)/../crmf/crmf-exp.cnf:
+ (cd $(builddir)/../crmf && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/cmp/Makefile.nmake b/epan/dissectors/asn1/cmp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/cmp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/cmp/cmp.cnf b/epan/dissectors/asn1/cmp/cmp.cnf
new file mode 100644
index 0000000000..3c9b7f804a
--- /dev/null
+++ b/epan/dissectors/asn1/cmp/cmp.cnf
@@ -0,0 +1,110 @@
+# CMP.cnf
+# CMP conformation file
+
+#.MODULE_IMPORT
+PKIX1Explicit88 pkix1explicit
+PKIX1Implicit88 pkix1implicit
+PKIXCRMF-2005 crmf
+
+#.INCLUDE ../pkix1explicit/pkix1explicit_exp.cnf
+#.INCLUDE ../pkix1implicit/pkix1implicit_exp.cnf
+#.IMPORT ../crmf/crmf-exp.cnf
+
+#.EXPORTS
+CAKeyUpdAnnContent
+CMPCertificate
+CRLAnnContent
+CertAnnContent
+CertConfirmContent
+CertOrEncCert
+CertRepMessage
+CertResponse
+CertStatus
+CertifiedKeyPair
+Challenge
+DHBMParameter
+ErrorMsgContent
+GenMsgContent
+InfoTypeAndValue
+KeyRecRepContent
+NestedMessageContent
+OOBCert
+OOBCertHash
+PBMParameter
+PKIBody
+PKIConfirmContent
+PKIFailureInfo
+PKIFreeText
+PKIHeader
+PKIMessage
+PKIMessages
+PKIProtection
+PKIStatus
+PKIStatusInfo
+POPODecKeyRespContent
+PollRepContent
+PollReqContent
+ProtectedPart
+RevAnnContent
+RevDetails
+RevRepContent
+RevReqContent
+
+#.REGISTER
+PBMParameter B "1.2.840.113533.7.66.13" "id-PasswordBasedMac"
+DHBMParameter B "1.2.640.113533.7.66.30" "id-DHBasedMac"
+CAProtEncCertValue B "1.3.6.1.5.5.7.4.1" "id-it-caProtEncCert"
+SignKeyPairTypesValue B "1.3.6.1.5.5.7.4.2" "id-it-signKeyPairTypes"
+EncKeyPairTypesValue B "1.3.6.1.5.5.7.4.3" "id-it-encKeyPairTypes"
+PreferredSymmAlgValue B "1.3.6.1.5.5.7.4.4" "id-it-preferredSymmAlg"
+CAKeyUpdateInfoValue B "1.3.6.1.5.5.7.4.5" "id-it-caKeyUpdateInfo"
+CurrentCRLValue B "1.3.6.1.5.5.7.4.6" "id-it-currentCRL"
+UnsupportedOIDsValue B "1.3.6.1.5.5.7.4.7" "id-it-unsupportedOIDs"
+KeyPairParamReqValue B "1.3.6.1.5.5.7.4.10" "id-it-keyPairParamReq"
+KeyPairParamRepValue B "1.3.6.1.5.5.7.4.11" "id-it-keyPairParamRep"
+RevPassphraseValue B "1.3.6.1.5.5.7.4.12" "id-it-revPassphrase"
+ImplicitConfirmValue B "1.3.6.1.5.5.7.4.13" "id-it-implicitConfirm"
+ConfirmWaitTimeValue B "1.3.6.1.5.5.7.4.14" "id-it-confirmWaitTime"
+OrigPKIMessageValue B "1.3.6.1.5.5.7.4.15" "id-it-origPKIMessage"
+SuppLangTagsValue B "1.3.6.1.5.5.7.4.16" "id-it-suppLangTags"
+
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+RevRepContent/status rvrpcnt_status
+CertResponse/status pkistatusinf
+KeyRecRepContent/status pkistatusinf
+PKIStatusInfo/status pkistatus
+RevAnnContent/status pkistatus
+
+
+#.FN_PARS InfoTypeAndValue/infoType
+ FN_VARIANT = _str HF_INDEX = hf_cmp_type_oid VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY InfoTypeAndValue/infoValue
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS PKIBody
+ VAL_PTR = &branch_taken
+
+#.FN_BODY PKIBody
+ gint branch_taken;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " Body=%%s", val_to_str(branch_taken, cmp_PKIBody_vals, "unknown"));
+
+#.FN_PARS PKIStatus
+ VAL_PTR = &value
+
+#.FN_BODY PKIStatus
+ guint32 value;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " Status=%%s", val_to_str(value, cmp_PKIStatus_vals, "unknown"));
+
+#.END_OF_CNF
diff --git a/epan/dissectors/asn1/cmp/packet-cmp-template.c b/epan/dissectors/asn1/cmp/packet-cmp-template.c
new file mode 100644
index 0000000000..b1219cab72
--- /dev/null
+++ b/epan/dissectors/asn1/cmp/packet-cmp-template.c
@@ -0,0 +1,436 @@
+/* packet-cmp.c
+ *
+ * Routines for RFC2510 Certificate Management Protocol packet dissection
+ * Ronnie Sahlberg 2004
+ * Updated to RFC4210 CMPv2 and associated "Transport Protocols for CMP" draft
+ * Martin Peylo 2008
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include "packet-ber.h"
+#include "packet-cmp.h"
+#include "packet-crmf.h"
+#include "packet-pkix1explicit.h"
+#include "packet-pkix1implicit.h"
+#include "packet-tcp.h"
+#include "packet-http.h"
+#include <epan/prefs.h>
+
+#define PNAME "Certificate Management Protocol"
+#define PSNAME "CMP"
+#define PFNAME "cmp"
+
+#define TCP_PORT_CMP 829
+
+void proto_register_cmp(void);
+
+/* desegmentation of CMP over TCP */
+static gboolean cmp_desegment = TRUE;
+
+static guint cmp_alternate_tcp_port = 0;
+static guint cmp_alternate_http_port = 0;
+static guint cmp_alternate_tcp_style_http_port = 0;
+
+/* Initialize the protocol and registered fields */
+static int proto_cmp = -1;
+static int hf_cmp_type_oid = -1;
+static int hf_cmp_tcptrans_len = -1;
+static int hf_cmp_tcptrans_type = -1;
+static int hf_cmp_tcptrans_poll_ref = -1;
+static int hf_cmp_tcptrans_next_poll_ref = -1;
+static int hf_cmp_tcptrans_ttcb = -1;
+static int hf_cmp_tcptrans10_version = -1;
+static int hf_cmp_tcptrans10_flags = -1;
+#include "packet-cmp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_cmp = -1;
+#include "packet-cmp-ett.c"
+#include "packet-cmp-fn.c"
+
+static int
+dissect_cmp_pdu(tvbuff_t *tvb, proto_tree *tree, asn1_ctx_t *actx)
+{
+ return dissect_cmp_PKIMessage(FALSE, tvb, 0, actx,tree, -1);
+}
+
+#define CMP_TYPE_PKIMSG 0
+#define CMP_TYPE_POLLREP 1
+#define CMP_TYPE_POLLREQ 2
+#define CMP_TYPE_NEGPOLLREP 3
+#define CMP_TYPE_PARTIALMSGREP 4
+#define CMP_TYPE_FINALMSGREP 5
+#define CMP_TYPE_ERRORMSGREP 6
+static const value_string cmp_pdu_types[] = {
+ { CMP_TYPE_PKIMSG, "pkiMsg" },
+ { CMP_TYPE_POLLREP, "pollRep" },
+ { CMP_TYPE_POLLREQ, "pollReq" },
+ { CMP_TYPE_NEGPOLLREP, "negPollRep" },
+ { CMP_TYPE_PARTIALMSGREP, "partialMsgRep" },
+ { CMP_TYPE_FINALMSGREP, "finalMsgRep" },
+ { CMP_TYPE_ERRORMSGREP, "errorMsgRep" },
+ { 0, NULL },
+};
+
+
+static int dissect_cmp_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ tvbuff_t *next_tvb;
+ guint32 pdu_len;
+ guint8 pdu_type;
+ nstime_t ts;
+ proto_item *item=NULL;
+ proto_item *ti=NULL;
+ proto_tree *tree=NULL;
+ proto_tree *tcptrans_tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ int offset=0;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CMP");
+
+ col_set_str(pinfo->cinfo, COL_INFO, "PKIXCMP");
+
+ if(parent_tree){
+ item=proto_tree_add_item(parent_tree, proto_cmp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_cmp);
+ }
+
+ pdu_len=tvb_get_ntohl(tvb, 0);
+ pdu_type=tvb_get_guint8(tvb, 4);
+
+ if (pdu_type < 10) {
+ /* RFC2510 TCP transport */
+ ti = proto_tree_add_item(tree, proto_cmp, tvb, offset, 5, ENC_NA);
+ tcptrans_tree = proto_item_add_subtree(ti, ett_cmp);
+ proto_tree_add_item(tree, hf_cmp_tcptrans_len, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ proto_tree_add_item(tree, hf_cmp_tcptrans_type, tvb, offset++, 1, ENC_BIG_ENDIAN);
+ } else {
+ /* post RFC2510 TCP transport - the former "type" field is now "version" */
+ tcptrans_tree = proto_tree_add_subtree(tree, tvb, offset, 7, ett_cmp, NULL, "TCP transport");
+ pdu_type=tvb_get_guint8(tvb, 6);
+ proto_tree_add_item(tcptrans_tree, hf_cmp_tcptrans_len, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ proto_tree_add_item(tcptrans_tree, hf_cmp_tcptrans10_version, tvb, offset++, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tcptrans_tree, hf_cmp_tcptrans10_flags, tvb, offset++, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tcptrans_tree, hf_cmp_tcptrans_type, tvb, offset++, 1, ENC_BIG_ENDIAN);
+ }
+
+ col_add_str (pinfo->cinfo, COL_INFO, val_to_str (pdu_type, cmp_pdu_types, "0x%x"));
+
+ switch(pdu_type){
+ case CMP_TYPE_PKIMSG:
+ next_tvb = tvb_new_subset(tvb, offset, tvb_reported_length_remaining(tvb, offset), pdu_len);
+ dissect_cmp_pdu(next_tvb, tree, &asn1_ctx);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ break;
+ case CMP_TYPE_POLLREP:
+ proto_tree_add_item(tcptrans_tree, hf_cmp_tcptrans_poll_ref, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ ts.secs = tvb_get_ntohl(tvb, 4);
+ ts.nsecs = 0;
+ proto_tree_add_time(tcptrans_tree, hf_cmp_tcptrans_ttcb, tvb, offset, 4, &ts);
+ offset += 4;
+ break;
+ case CMP_TYPE_POLLREQ:
+ proto_tree_add_item(tcptrans_tree, hf_cmp_tcptrans_poll_ref, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ break;
+ case CMP_TYPE_NEGPOLLREP:
+ break;
+ case CMP_TYPE_PARTIALMSGREP:
+ proto_tree_add_item(tcptrans_tree, hf_cmp_tcptrans_next_poll_ref, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ ts.secs = tvb_get_ntohl(tvb, 4);
+ ts.nsecs = 0;
+ proto_tree_add_time(tcptrans_tree, hf_cmp_tcptrans_ttcb, tvb, offset, 4, &ts);
+ offset += 4;
+
+ next_tvb = tvb_new_subset(tvb, offset, tvb_reported_length_remaining(tvb, offset), pdu_len);
+ dissect_cmp_pdu(next_tvb, tree, &asn1_ctx);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ break;
+ case CMP_TYPE_FINALMSGREP:
+ next_tvb = tvb_new_subset(tvb, offset, tvb_reported_length_remaining(tvb, offset), pdu_len);
+ dissect_cmp_pdu(next_tvb, tree, &asn1_ctx);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ break;
+ case CMP_TYPE_ERRORMSGREP:
+ /*XXX to be added*/
+ break;
+ }
+
+ return offset;
+}
+
+static guint get_cmp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
+ int offset, void *data _U_)
+{
+ guint32 plen;
+
+ /*
+ * Get the length of the CMP-over-TCP packet.
+ */
+ plen = tvb_get_ntohl(tvb, offset);
+
+ return plen+4;
+}
+
+
+/* CMP over TCP: RFC2510 section 5.2 and "Transport Protocols for CMP" draft */
+static int
+dissect_cmp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data)
+{
+ guint32 pdu_len;
+ guint8 pdu_type;
+ int offset=4; /* RFC2510 TCP transport header length */
+
+ /* only attempt to dissect it as CMP over TCP if we have
+ * at least 5 bytes.
+ */
+ if (!tvb_bytes_exist(tvb, 0, 5)) {
+ return 0;
+ }
+
+ pdu_len=tvb_get_ntohl(tvb, 0);
+ pdu_type=tvb_get_guint8(tvb, 4);
+
+ if(pdu_type == 10) {
+ /* post RFC2510 TCP transport */
+ pdu_type = tvb_get_guint8(tvb, 7);
+ offset = 7; /* post RFC2510 TCP transport header length */
+ /* arbitrary limit: assume a CMP over TCP pdu is never >10000 bytes
+ * in size.
+ * It is definitely at least 3 byte for post RFC2510 TCP transport
+ */
+ if((pdu_len<=2)||(pdu_len>10000)){
+ return 0;
+ }
+ } else {
+ /* RFC2510 TCP transport */
+ /* type is between 0 and 6 */
+ if(pdu_type>6){
+ return 0;
+ }
+ /* arbitrary limit: assume a CMP over TCP pdu is never >10000 bytes
+ * in size.
+ * It is definitely at least 1 byte to accommodate the flags byte
+ */
+ if((pdu_len<=0)||(pdu_len>10000)){
+ return 0;
+ }
+ }
+
+ /* type 0 contains a PKI message and must therefore be >= 3 bytes
+ * long (flags + BER TAG + BER LENGTH
+ */
+ if((pdu_type==0)&&(pdu_len<3)){
+ return 0;
+ }
+
+ tcp_dissect_pdus(tvb, pinfo, parent_tree, cmp_desegment, offset, get_cmp_pdu_len,
+ dissect_cmp_tcp_pdu, data);
+
+ return tvb_captured_length(tvb);
+}
+
+
+static int
+dissect_cmp_http(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CMP");
+
+ col_set_str(pinfo->cinfo, COL_INFO, "PKIXCMP");
+
+ if(parent_tree){
+ item=proto_tree_add_item(parent_tree, proto_cmp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_cmp);
+ }
+
+ return dissect_cmp_pdu(tvb, tree, &asn1_ctx);
+}
+
+
+/*--- proto_register_cmp ----------------------------------------------*/
+void proto_register_cmp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_cmp_type_oid,
+ { "InfoType", "cmp.type.oid",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Type of InfoTypeAndValue", HFILL }},
+ { &hf_cmp_tcptrans_len,
+ { "Length", "cmp.tcptrans.length",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "TCP transport Length of PDU in bytes", HFILL }},
+ { &hf_cmp_tcptrans_type,
+ { "Type", "cmp.tcptrans.type",
+ FT_UINT8, BASE_DEC, VALS(cmp_pdu_types), 0,
+ "TCP transport PDU Type", HFILL }},
+ { &hf_cmp_tcptrans_poll_ref,
+ { "Polling Reference", "cmp.tcptrans.poll_ref",
+ FT_UINT32, BASE_HEX, NULL, 0,
+ "TCP transport Polling Reference", HFILL }},
+ { &hf_cmp_tcptrans_next_poll_ref,
+ { "Next Polling Reference", "cmp.tcptrans.next_poll_ref",
+ FT_UINT32, BASE_HEX, NULL, 0,
+ "TCP transport Next Polling Reference", HFILL }},
+ { &hf_cmp_tcptrans_ttcb,
+ { "Time to check Back", "cmp.tcptrans.ttcb",
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ "TCP transport Time to check Back", HFILL }},
+ { &hf_cmp_tcptrans10_version,
+ { "Version", "cmp.tcptrans10.version",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ "TCP transport version", HFILL }},
+ { &hf_cmp_tcptrans10_flags,
+ { "Flags", "cmp.tcptrans10.flags",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ "TCP transport flags", HFILL }},
+#include "packet-cmp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_cmp,
+#include "packet-cmp-ettarr.c"
+ };
+ module_t *cmp_module;
+
+ /* Register protocol */
+ proto_cmp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_cmp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ cmp_module = prefs_register_protocol(proto_cmp, proto_reg_handoff_cmp);
+ prefs_register_bool_preference(cmp_module, "desegment",
+ "Reassemble CMP-over-TCP messages spanning multiple TCP segments",
+ "Whether the CMP-over-TCP dissector should reassemble messages spanning multiple TCP segments. "
+ "To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &cmp_desegment);
+
+ prefs_register_uint_preference(cmp_module, "tcp_alternate_port",
+ "Alternate TCP port",
+ "Decode this TCP port\'s traffic as CMP. Set to \"0\" to disable.",
+ 10,
+ &cmp_alternate_tcp_port);
+
+ prefs_register_uint_preference(cmp_module, "http_alternate_port",
+ "Alternate HTTP port",
+ "Decode this TCP port\'s traffic as CMP-over-HTTP. Set to \"0\" to disable. "
+ "Use this if the Content-Type is not set correctly.",
+ 10,
+ &cmp_alternate_http_port);
+
+ prefs_register_uint_preference(cmp_module, "tcp_style_http_alternate_port",
+ "Alternate TCP-style-HTTP port",
+ "Decode this TCP port\'s traffic as TCP-transport-style CMP-over-HTTP. Set to \"0\" to disable. "
+ "Use this if the Content-Type is not set correctly.",
+ 10,
+ &cmp_alternate_tcp_style_http_port);
+}
+
+
+/*--- proto_reg_handoff_cmp -------------------------------------------*/
+void proto_reg_handoff_cmp(void) {
+ static gboolean inited = FALSE;
+ static dissector_handle_t cmp_http_handle;
+ static dissector_handle_t cmp_tcp_style_http_handle;
+ static dissector_handle_t cmp_tcp_handle;
+ static guint cmp_alternate_tcp_port_prev = 0;
+ static guint cmp_alternate_http_port_prev = 0;
+ static guint cmp_alternate_tcp_style_http_port_prev = 0;
+
+ if (!inited) {
+ cmp_http_handle = create_dissector_handle(dissect_cmp_http, proto_cmp);
+ dissector_add_string("media_type", "application/pkixcmp", cmp_http_handle);
+ dissector_add_string("media_type", "application/x-pkixcmp", cmp_http_handle);
+
+ cmp_tcp_style_http_handle = create_dissector_handle(dissect_cmp_tcp_pdu, proto_cmp);
+ dissector_add_string("media_type", "application/pkixcmp-poll", cmp_tcp_style_http_handle);
+ dissector_add_string("media_type", "application/x-pkixcmp-poll", cmp_tcp_style_http_handle);
+
+ cmp_tcp_handle = create_dissector_handle(dissect_cmp_tcp, proto_cmp);
+ dissector_add_uint("tcp.port", TCP_PORT_CMP, cmp_tcp_handle);
+
+ oid_add_from_string("Cryptlib-presence-check","1.3.6.1.4.1.3029.3.1.1");
+ oid_add_from_string("Cryptlib-PKIBoot","1.3.6.1.4.1.3029.3.1.2");
+
+ oid_add_from_string("HMAC MD5","1.3.6.1.5.5.8.1.1");
+ oid_add_from_string("HMAC SHA-1","1.3.6.1.5.5.8.1.2");
+ oid_add_from_string("HMAC TIGER","1.3.6.1.5.5.8.1.3");
+ oid_add_from_string("HMAC RIPEMD-160","1.3.6.1.5.5.8.1.4");
+
+#include "packet-cmp-dis-tab.c"
+ inited = TRUE;
+ }
+
+ /* change alternate TCP port if changed in the preferences */
+ if (cmp_alternate_tcp_port != cmp_alternate_tcp_port_prev) {
+ if (cmp_alternate_tcp_port_prev != 0)
+ dissector_delete_uint("tcp.port", cmp_alternate_tcp_port_prev, cmp_tcp_handle);
+ if (cmp_alternate_tcp_port != 0)
+ dissector_add_uint("tcp.port", cmp_alternate_tcp_port, cmp_tcp_handle);
+ cmp_alternate_tcp_port_prev = cmp_alternate_tcp_port;
+ }
+
+ /* change alternate HTTP port if changed in the preferences */
+ if (cmp_alternate_http_port != cmp_alternate_http_port_prev) {
+ if (cmp_alternate_http_port_prev != 0) {
+ dissector_delete_uint("tcp.port", cmp_alternate_http_port_prev, NULL);
+ dissector_delete_uint("http.port", cmp_alternate_http_port_prev, NULL);
+ }
+ if (cmp_alternate_http_port != 0)
+ http_dissector_add( cmp_alternate_http_port, cmp_http_handle);
+ cmp_alternate_http_port_prev = cmp_alternate_http_port;
+ }
+
+ /* change alternate TCP-style-HTTP port if changed in the preferences */
+ if (cmp_alternate_tcp_style_http_port != cmp_alternate_tcp_style_http_port_prev) {
+ if (cmp_alternate_tcp_style_http_port_prev != 0) {
+ dissector_delete_uint("tcp.port", cmp_alternate_tcp_style_http_port_prev, NULL);
+ dissector_delete_uint("http.port", cmp_alternate_tcp_style_http_port_prev, NULL);
+ }
+ if (cmp_alternate_tcp_style_http_port != 0)
+ http_dissector_add( cmp_alternate_tcp_style_http_port, cmp_tcp_style_http_handle);
+ cmp_alternate_tcp_style_http_port_prev = cmp_alternate_tcp_style_http_port;
+ }
+
+}
+
diff --git a/epan/dissectors/asn1/cmp/packet-cmp-template.h b/epan/dissectors/asn1/cmp/packet-cmp-template.h
new file mode 100644
index 0000000000..4556241481
--- /dev/null
+++ b/epan/dissectors/asn1/cmp/packet-cmp-template.h
@@ -0,0 +1,32 @@
+/* packet-cmp.h
+ * Routines for RFC2510 Certificate Management Protocol packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_CMP_H
+#define PACKET_CMP_H
+
+void proto_reg_handoff_cmp(void);
+
+#include "packet-cmp-exp.h"
+
+#endif /* PACKET_CMP_H */
+
diff --git a/epan/dissectors/asn1/cms/AttributeCertificateVersion1.asn b/epan/dissectors/asn1/cms/AttributeCertificateVersion1.asn
new file mode 100644
index 0000000000..1187616e34
--- /dev/null
+++ b/epan/dissectors/asn1/cms/AttributeCertificateVersion1.asn
@@ -0,0 +1,51 @@
+-- Extracted from RFC5652
+AttributeCertificateVersion1
+ { iso(1) member-body(2) us(840) rsadsi(113549)
+ pkcs(1) pkcs-9(9) smime(16) modules(0) v1AttrCert(15) }
+
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS All
+
+IMPORTS
+ -- Directory Authentication Framework (X.509)
+ AttCertValidityPeriod, Extensions, IssuerSerial
+ FROM AuthenticationFramework { joint-iso-itu-t ds(5)
+ module(1) authenticationFramework(7) 3 }
+
+ GeneralNames
+ FROM CertificateExtensions { joint-iso-ccitt ds(5)
+ module(1) certificateExtensions(26) 0 }
+
+ UniqueIdentifier
+ FROM SelectedAttributeTypes { joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3 };
+
+
+-- Definition extracted from X.509-1997 [X.509-97], but
+-- different type names are used to avoid collisions.
+
+AttributeCertificateV1 ::= SEQUENCE {
+ acInfo AttributeCertificateInfoV1,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+AttributeCertificateInfoV1 ::= SEQUENCE {
+ version AttCertVersionV1 DEFAULT v1,
+ subject CHOICE {
+ baseCertificateID [0] IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] GeneralNames },
+ -- associated with a name
+ issuer GeneralNames,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL }
+
+AttCertVersionV1 ::= INTEGER { v1(0) }
+
+END -- of AttributeCertificateVersion1
diff --git a/epan/dissectors/asn1/cms/CMakeLists.txt b/epan/dissectors/asn1/cms/CMakeLists.txt
new file mode 100644
index 0000000000..f0bc556720
--- /dev/null
+++ b/epan/dissectors/asn1/cms/CMakeLists.txt
@@ -0,0 +1,64 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME cms )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ CryptographicMessageSyntax.asn
+ AttributeCertificateVersion1.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -C )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+set ( EXPORT_DEPENDS
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/cms/CryptographicMessageSyntax.asn b/epan/dissectors/asn1/cms/CryptographicMessageSyntax.asn
new file mode 100644
index 0000000000..3a78b24fa4
--- /dev/null
+++ b/epan/dissectors/asn1/cms/CryptographicMessageSyntax.asn
@@ -0,0 +1,396 @@
+-- Extracted from RFC5652
+-- and massaged/modified so it passes through our asn2wrs compiler
+
+CryptographicMessageSyntax { iso(1) member-body(2) us(840) rsadsi(113549)
+ pkcs(1) pkcs-9(9) smime(16) modules(0) cms-2004(24) } DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in
+-- the other ASN.1 modules. Other applications may use them for their
+-- own purposes.
+
+IMPORTS
+ -- Directory Information Framework (X.501)
+ Name
+ FROM InformationFramework { joint-iso-itu-t ds(5) modules(1)
+ informationFramework(1) 3 }
+
+ -- Directory Authentication Framework (X.509)
+ AlgorithmIdentifier, AttributeCertificate, Certificate,
+ CertificateList, CertificateSerialNumber
+ FROM AuthenticationFramework { joint-iso-itu-t ds(5)
+ module(1) authenticationFramework(7) 3 } ;
+
+
+-- Cryptographic Message Syntax
+--
+
+
+ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content [0] EXPLICIT ANY DEFINED BY contentType
+}
+
+ContentType ::= OBJECT IDENTIFIER
+
+SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
+ signerInfos SignerInfos }
+
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+
+SignerInfos ::= SET OF SignerInfo
+
+-- Implemented by hand in the template
+EncapsulatedContentInfo ::= SEQUENCE {
+ eContentType ContentType,
+ eContent [0] EXPLICIT OCTET STRING OPTIONAL }
+
+SignerInfo ::= SEQUENCE {
+ version CMSVersion,
+ sid SignerIdentifier,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
+ signatureAlgorithm SignatureAlgorithmIdentifier,
+ signature SignatureValue,
+ unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }
+
+SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier }
+
+SignedAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+UnsignedAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+}
+
+AttributeValue ::= ANY
+
+SignatureValue ::= OCTET STRING
+
+EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+OriginatorInfo ::= SEQUENCE {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT RevocationInfoChoices OPTIONAL }
+
+RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
+
+EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL }
+
+EncryptedContent ::= OCTET STRING
+
+UnprotectedAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KEKRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+EncryptedKey ::= OCTET STRING
+
+KeyTransRecipientInfo ::= SEQUENCE {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier }
+
+KeyAgreeRecipientInfo ::= SEQUENCE {
+ version CMSVersion, -- always set to 3
+ originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ recipientEncryptedKeys RecipientEncryptedKeys }
+
+OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey }
+
+OriginatorPublicKey ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
+
+RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey }
+
+KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier }
+
+RecipientKeyIdentifier ::= SEQUENCE {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL }
+
+SubjectKeyIdentifier ::= OCTET STRING
+
+KEKRecipientInfo ::= SEQUENCE {
+ version CMSVersion, -- always set to 4
+ kekid KEKIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+KEKIdentifier ::= SEQUENCE {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL }
+
+PasswordRecipientInfo ::= SEQUENCE {
+ version CMSVersion, -- always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+OtherRecipientInfo ::= SEQUENCE {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+DigestedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo,
+ digest Digest }
+
+Digest ::= OCTET STRING
+
+EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+MessageAuthenticationCode ::= OCTET STRING
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+SignatureAlgorithmIdentifier ::= AlgorithmIdentifier
+
+KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+MessageAuthenticationCodeAlgorithm ::= AlgorithmIdentifier
+
+KeyDerivationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+RevocationInfoChoices ::= SET OF RevocationInfoChoice
+
+RevocationInfoChoice ::= CHOICE {
+ crl CertificateList,
+ other [1] IMPLICIT OtherRevocationInfoFormat }
+
+OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+CertificateChoices ::= CHOICE {
+ certificate Certificate,
+ extendedCertificate [0] IMPLICIT ExtendedCertificate, -- Obsolete
+ v1AttrCert [1] IMPLICIT AttributeCertificateV1, -- Obsolete
+ v2AttrCert [2] IMPLICIT AttributeCertificateV2 }
+
+AttributeCertificateV2 ::= AttributeCertificate
+
+CertificateSet ::= SET OF CertificateChoices
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serialNumber CertificateSerialNumber }
+
+CMSVersion ::= INTEGER { v0(0), v1(1), v2(2), v3(3), v4(4), v5(5) }
+
+UserKeyingMaterial ::= OCTET STRING
+
+OtherKeyAttribute ::= SEQUENCE {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+}
+
+-- Content Type Object Identifiers
+
+id-ct-contentInfo OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) 6 }
+
+id-data OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs7(7) 1 }
+
+id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }
+
+id-envelopedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs7(7) 3 }
+
+id-digestedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs7(7) 5 }
+
+id-encryptedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs7(7) 6 }
+
+id-ct-authData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 2 }
+
+-- The CMS Attributes
+
+MessageDigest ::= OCTET STRING
+
+SigningTime ::= Time
+
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+Countersignature ::= SignerInfo
+
+-- Algorithm Identifiers
+--
+-- sha-1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+-- oiw(14) secsig(3) algorithm(2) 26 }
+--
+-- md5 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
+-- rsadsi(113549) digestAlgorithm(2) 5 }
+--
+-- id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+-- us(840) x9-57 (10040) x9cm(4) 3 }
+--
+-- rsaEncryption OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+-- us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 1 }
+--
+-- dh-public-number OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+-- us(840) ansi-x942(10046) number-type(2) 1 }
+--
+-- id-alg-ESDH OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
+-- rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 5 }
+--
+-- id-alg-CMS3DESwrap OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+-- us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 6 }
+--
+-- id-alg-CMSRC2wrap OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+-- us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 7 }
+--
+-- des-ede3-cbc OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+-- us(840) rsadsi(113549) encryptionAlgorithm(3) 7 }
+--
+-- rc2-cbc OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
+-- rsadsi(113549) encryptionAlgorithm(3) 2 }
+--
+-- hMAC-SHA1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+-- dod(6) internet(1) security(5) mechanisms(5) 8 1 2 }
+--
+--
+-- Algorithm Parameters
+--
+KeyWrapAlgorithm ::= AlgorithmIdentifier
+
+RC2WrapParameter ::= RC2ParameterVersion
+
+RC2ParameterVersion ::= INTEGER
+
+CBCParameter ::= IV
+
+IV ::= OCTET STRING
+
+RC2CBCParameter ::= SEQUENCE {
+ rc2ParameterVersion INTEGER,
+ iv OCTET STRING }
+
+-- Attribute Object Identifiers
+
+id-contentType OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs9(9) 3 }
+
+id-messageDigest OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs9(9) 4 }
+
+id-signingTime OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs9(9) 5 }
+
+id-countersignature OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs9(9) 6 }
+
+-- Obsolete Extended Certificate syntax from PKCS#6
+
+ExtendedCertificateOrCertificate ::= CHOICE {
+ certificate Certificate,
+ extendedCertificate [0] IMPLICIT ExtendedCertificate }
+
+ExtendedCertificate ::= SEQUENCE {
+ extendedCertificateInfo ExtendedCertificateInfo,
+ signatureAlgorithm SignatureAlgorithmIdentifier,
+ signature Signature }
+
+ExtendedCertificateInfo ::= SEQUENCE {
+ version CMSVersion,
+ certificate Certificate,
+ attributes UnauthAttributes }
+
+Signature ::= BIT STRING
+
+-- From S/MIME
+
+SMIMECapabilities ::= SEQUENCE OF SMIMECapability
+
+SMIMECapability ::= SEQUENCE {
+ capability OBJECT IDENTIFIER,
+ parameters ANY OPTIONAL
+}
+
+SMIMEEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ recipientKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+
+}
+
+-- some implememtations do not seem to use the RC2CBCParameter with 1.2.840.113549.3.2 as per RFC 2630 12.4.2
+-- so we create this CHOICE to workaround this problem until we understand what is really the correct solution
+
+RC2CBCParameters ::= CHOICE {
+ rc2WrapParameter RC2WrapParameter,
+ rc2CBCParameter RC2CBCParameter
+
+}
+
+
+END -- of CryptographicMessageSyntax2004
diff --git a/epan/dissectors/asn1/cms/Makefile.am b/epan/dissectors/asn1/cms/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/cms/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/cms/Makefile.common b/epan/dissectors/asn1/cms/Makefile.common
new file mode 100644
index 0000000000..41541fd057
--- /dev/null
+++ b/epan/dissectors/asn1/cms/Makefile.common
@@ -0,0 +1,66 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=cms
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ CryptographicMessageSyntax.asn \
+ AttributeCertificateVersion1.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS = -b -C
+
+EXTRA_CNF = \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+EXPORT_DEPENDS = \
+ $(builddir)/../x509af/x509af-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/cms/Makefile.nmake b/epan/dissectors/asn1/cms/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/cms/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/cms/cms.cnf b/epan/dissectors/asn1/cms/cms.cnf
new file mode 100644
index 0000000000..2f965acb28
--- /dev/null
+++ b/epan/dissectors/asn1/cms/cms.cnf
@@ -0,0 +1,201 @@
+# CMS.cnf
+# CMS conformation file
+
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+
+#.OMIT_ASSIGNMENT
+KeyWrapAlgorithm
+CBCParameter
+IV
+ExtendedCertificateOrCertificate
+#.END
+
+#.EXPORTS
+ContentInfo
+ContentType
+Countersignature
+Digest
+DigestAlgorithmIdentifier
+DigestAlgorithmIdentifiers
+EncapsulatedContentInfo
+EnvelopedData
+IssuerAndSerialNumber
+SignedAttributes
+SignedData
+SignerIdentifier
+SignerInfo
+SignerInfos
+SignatureValue
+UnsignedAttributes
+
+#.REGISTER
+ContentInfo B "1.2.840.113549.1.9.16.1.6" "id-ct-contentInfo"
+#OctetString B "1.2.840.113549.1.7.1" "id-data" see x509sat.cnf
+SignedData B "1.2.840.113549.1.7.2" "id-signedData"
+EnvelopedData B "1.2.840.113549.1.7.3" "id-envelopedData"
+DigestedData B "1.2.840.113549.1.7.5" "id-digestedData"
+EncryptedData B "1.2.840.113549.1.7.6" "id-encryptedData"
+AuthenticatedData B "1.2.840.113549.1.9.16.1.2" "id-ct-authenticatedData"
+
+ContentType B "1.2.840.113549.1.9.3" "id-contentType"
+MessageDigest B "1.2.840.113549.1.9.4" "id-messageDigest"
+SigningTime B "1.2.840.113549.1.9.5" "id-signingTime"
+Countersignature B "1.2.840.113549.1.9.6" "id-counterSignature"
+
+ContentInfo B "2.6.1.4.18" "id-et-pkcs7"
+
+IssuerAndSerialNumber B "1.3.6.1.4.1.311.16.4" "ms-oe-encryption-key-preference"
+SMIMECapabilities B "1.2.840.113549.1.9.15" "id-smime-capabilities"
+SMIMEEncryptionKeyPreference B "1.2.840.113549.1.9.16.2.11" "id-encryption-key-preference"
+
+# I think the following should be RC2CBCParameter - but that appears to be incorrect
+RC2CBCParameters B "1.2.840.113549.3.2" "id-alg-rc2-cbc"
+RC2CBCParameters B "1.2.840.113549.3.4" "id-alg-rc4"
+RC2WrapParameter B "1.2.840.113549.1.9.16.3.7" "id-alg-cmsrc2-wrap"
+
+# RFC 2798 Attributes - see master list in x509sat.cnf
+SignedData B "2.16.840.1.113730.3.1.40" "userSMIMECertificate"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+SignerInfo/signature signatureValue
+RecipientEncryptedKey/rid rekRid
+EncryptedContentInfo/contentType encryptedContentType
+AttributeCertificateV1/signature signatureValue_v1
+AttributeCertificateV1/signatureAlgorithm signatureAlgorithm_v1
+AttributeCertificateInfoV1/attributes attributes_v1
+AttributeCertificateInfoV1/issuer issuer_v1
+AttributeCertificateInfoV1/signature signature_v1
+AttributeCertificateInfoV1/version version_v1
+RevocationInfoChoice/other otherRIC
+
+#.FN_BODY ContentInfo
+ top_tree = tree;
+ %(DEFAULT_BODY)s
+ content_tvb = NULL;
+ top_tree = NULL;
+
+#.FN_PARS ContentType
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY ContentType
+ const char *name = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(object_identifier_id) {
+ name = oid_resolved_from_string(wmem_packet_scope(), object_identifier_id);
+ proto_item_append_text(tree, " (%%s)", name ? name : object_identifier_id);
+ }
+
+#.FN_BODY ContentInfo/content
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+
+#.FN_BODY EncapsulatedContentInfo/eContent
+
+ offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &content_tvb);
+ proto_item_set_text(actx->created_item, "eContent (%%u bytes)", tvb_reported_length (content_tvb));
+
+ call_ber_oid_callback(object_identifier_id, content_tvb, 0, actx->pinfo, top_tree ? top_tree : tree, NULL);
+
+#.FN_PARS OtherRecipientInfo/oriType
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY OtherRecipientInfo/oriValue
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS OtherKeyAttribute/keyAttrId
+ FN_VARIANT = _str HF_INDEX = hf_cms_ci_contentType VAL_PTR = &object_identifier_id
+
+#.FN_BODY OtherKeyAttribute/keyAttr
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+#.FN_PARS OtherRevocationInfoFormat/otherRevInfoFormat
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY OtherRevocationInfoFormat/otherRevInfo
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS Attribute/attrType
+ FN_VARIANT = _str HF_INDEX = hf_cms_attrType VAL_PTR = &object_identifier_id
+
+#.FN_BODY Attribute/attrType
+ const char *name = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(object_identifier_id) {
+ name = oid_resolved_from_string(wmem_packet_scope(), object_identifier_id);
+ proto_item_append_text(tree, " (%%s)", name ? name : object_identifier_id);
+ }
+
+#.FN_BODY AttributeValue
+
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY MessageDigest
+ proto_item *pi;
+ int old_offset = offset;
+
+ %(DEFAULT_BODY)s
+
+ pi = actx->created_item;
+
+ /* move past TLV */
+ old_offset = get_ber_identifier(tvb, old_offset, NULL, NULL, NULL);
+ old_offset = get_ber_length(tvb, old_offset, NULL, NULL);
+
+ if(content_tvb)
+ cms_verify_msg_digest(pi, content_tvb, x509af_get_last_algorithm_id(), tvb, old_offset);
+
+#.FN_PARS SMIMECapability/capability
+ FN_VARIANT = _str HF_INDEX = hf_cms_attrType VAL_PTR = &object_identifier_id
+
+#.FN_BODY SMIMECapability/capability
+ const char *name = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(object_identifier_id) {
+ name = oid_resolved_from_string(wmem_packet_scope(), object_identifier_id);
+ proto_item_append_text(tree, " %%s", name ? name : object_identifier_id);
+ cap_tree = tree;
+ }
+
+#.FN_BODY SMIMECapability/parameters
+
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS RC2ParameterVersion
+ VAL_PTR = &length
+
+#.FN_BODY RC2ParameterVersion
+ guint32 length = 0;
+
+ %(DEFAULT_BODY)s
+
+ if(cap_tree != NULL)
+ proto_item_append_text(cap_tree, " (%%d bits)", length);
+
+#.FN_PARS EncryptedContent VAL_PTR = &encrypted_tvb
+
+#.FN_HDR EncryptedContent
+ tvbuff_t *encrypted_tvb;
+ proto_item *item;
+#.END
+
+#.FN_FTR EncryptedContent
+
+ item = actx->created_item;
+
+ PBE_decrypt_data(object_identifier_id, encrypted_tvb, actx, item);
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/cms/packet-cms-template.c b/epan/dissectors/asn1/cms/packet-cms-template.c
new file mode 100644
index 0000000000..62e2b2f144
--- /dev/null
+++ b/epan/dissectors/asn1/cms/packet-cms-template.c
@@ -0,0 +1,180 @@
+/* packet-cms.c
+ * Routines for RFC5652 Cryptographic Message Syntax packet dissection
+ * Ronnie Sahlberg 2004
+ * Stig Bjorlykke 2010
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <wsutil/sha1.h>
+#include <wsutil/md5.h>
+
+#include "packet-ber.h"
+#include "packet-cms.h"
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-x509if.h"
+#include "packet-x509sat.h"
+#include "packet-pkcs12.h"
+
+#define PNAME "Cryptographic Message Syntax"
+#define PSNAME "CMS"
+#define PFNAME "cms"
+
+void proto_register_cms(void);
+void proto_reg_handoff_cms(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_cms = -1;
+static int hf_cms_ci_contentType = -1;
+#include "packet-cms-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-cms-ett.c"
+
+static int dissect_cms_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) ; /* XXX kill a compiler warning until asn2wrs stops generating these silly wrappers */
+
+
+static const char *object_identifier_id;
+static tvbuff_t *content_tvb = NULL;
+
+static proto_tree *top_tree=NULL;
+static proto_tree *cap_tree=NULL;
+
+#define HASH_SHA1 "1.3.14.3.2.26"
+
+#define HASH_MD5 "1.2.840.113549.2.5"
+#define MD5_BUFFER_SIZE 16
+
+
+/* SHA-2 variants */
+#define HASH_SHA224 "2.16.840.1.101.3.4.2.4"
+#define SHA224_BUFFER_SIZE 32 /* actually 28 */
+#define HASH_SHA256 "2.16.840.1.101.3.4.2.1"
+#define SHA256_BUFFER_SIZE 32
+
+unsigned char digest_buf[MAX(SHA1_DIGEST_LEN, MD5_BUFFER_SIZE)];
+
+static void
+cms_verify_msg_digest(proto_item *pi, tvbuff_t *content, const char *alg, tvbuff_t *tvb, int offset)
+{
+ sha1_context sha1_ctx;
+ md5_state_t md5_ctx;
+ int i= 0, buffer_size = 0;
+
+ /* we only support two algorithms at the moment - if we do add SHA2
+ we should add a registration process to use a registration process */
+
+ if(strcmp(alg, HASH_SHA1) == 0) {
+
+ sha1_starts(&sha1_ctx);
+
+ sha1_update(&sha1_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
+ tvb_captured_length(content));
+
+ sha1_finish(&sha1_ctx, digest_buf);
+
+ buffer_size = SHA1_DIGEST_LEN;
+
+ } else if(strcmp(alg, HASH_MD5) == 0) {
+
+ md5_init(&md5_ctx);
+
+ md5_append(&md5_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
+ tvb_captured_length(content));
+
+ md5_finish(&md5_ctx, digest_buf);
+
+ buffer_size = MD5_BUFFER_SIZE;
+ }
+
+ if(buffer_size) {
+ /* compare our computed hash with what we have received */
+
+ if(tvb_bytes_exist(tvb, offset, buffer_size) &&
+ (tvb_memeql(tvb, offset, digest_buf, buffer_size) != 0)) {
+ proto_item_append_text(pi, " [incorrect, should be ");
+ for(i = 0; i < buffer_size; i++)
+ proto_item_append_text(pi, "%02X", digest_buf[i]);
+
+ proto_item_append_text(pi, "]");
+ }
+ else
+ proto_item_append_text(pi, " [correct]");
+ } else {
+ proto_item_append_text(pi, " [unable to verify]");
+ }
+
+}
+
+#include "packet-cms-fn.c"
+
+/*--- proto_register_cms ----------------------------------------------*/
+void proto_register_cms(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_cms_ci_contentType,
+ { "contentType", "cms.contentInfo.contentType",
+ FT_OID, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-cms-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-cms-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_cms = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_cms, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_ber_syntax_dissector("ContentInfo", proto_cms, dissect_ContentInfo_PDU);
+ register_ber_syntax_dissector("SignedData", proto_cms, dissect_SignedData_PDU);
+ register_ber_oid_syntax(".p7s", NULL, "ContentInfo");
+ register_ber_oid_syntax(".p7m", NULL, "ContentInfo");
+ register_ber_oid_syntax(".p7c", NULL, "ContentInfo");
+
+
+}
+
+
+/*--- proto_reg_handoff_cms -------------------------------------------*/
+void proto_reg_handoff_cms(void) {
+ dissector_handle_t content_info_handle;
+#include "packet-cms-dis-tab.c"
+
+ oid_add_from_string("id-data","1.2.840.113549.1.7.1");
+ oid_add_from_string("id-alg-des-ede3-cbc","1.2.840.113549.3.7");
+ oid_add_from_string("id-alg-des-cbc","1.3.14.3.2.7");
+
+ content_info_handle = create_dissector_handle (dissect_ContentInfo_PDU, proto_cms);
+ dissector_add_string("media_type", "application/pkcs7-mime", content_info_handle);
+ dissector_add_string("media_type", "application/pkcs7-signature", content_info_handle);
+}
+
diff --git a/epan/dissectors/asn1/cms/packet-cms-template.h b/epan/dissectors/asn1/cms/packet-cms-template.h
new file mode 100644
index 0000000000..7ffea927bd
--- /dev/null
+++ b/epan/dissectors/asn1/cms/packet-cms-template.h
@@ -0,0 +1,31 @@
+/* packet-cms.h
+ * Routines for RFC5652 Cryptographic Message Syntax packet dissection
+ * Ronnie Sahlberg 2004
+ * Stig Bjorlykke 2010
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_CMS_H
+#define PACKET_CMS_H
+
+#include "packet-cms-exp.h"
+
+#endif /* PACKET_CMS_H */
+
diff --git a/epan/dissectors/asn1/credssp/CMakeLists.txt b/epan/dissectors/asn1/credssp/CMakeLists.txt
new file mode 100644
index 0000000000..0cce759be4
--- /dev/null
+++ b/epan/dissectors/asn1/credssp/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME credssp )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ CredSSP.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -C )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/credssp/CredSSP.asn b/epan/dissectors/asn1/credssp/CredSSP.asn
new file mode 100644
index 0000000000..39731559dc
--- /dev/null
+++ b/epan/dissectors/asn1/credssp/CredSSP.asn
@@ -0,0 +1,44 @@
+-- Derived from http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-CSSP%5D.pdf
+
+CredSSP DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+NegoData ::= SEQUENCE OF SEQUENCE {
+ negoToken [0] OCTET STRING
+}
+
+TSPasswordCreds ::= SEQUENCE {
+ domainName [0] OCTET STRING,
+ userName [1] OCTET STRING,
+ password [2] OCTET STRING
+}
+
+TSCspDataDetail ::= SEQUENCE {
+ keySpec [0] INTEGER,
+ cardName [1] OCTET STRING OPTIONAL,
+ readerName [2] OCTET STRING OPTIONAL,
+ containerName [3] OCTET STRING OPTIONAL,
+ cspName [4] OCTET STRING OPTIONAL
+}
+
+TSSmartCardCreds ::= SEQUENCE {
+ pin [0] OCTET STRING,
+ cspData [1] TSCspDataDetail,
+ userHint [2] OCTET STRING OPTIONAL,
+ domainHint [3] OCTET STRING OPTIONAL
+}
+
+TSCredentials ::= SEQUENCE {
+ credType [0] INTEGER,
+ credentials [1] OCTET STRING
+}
+
+TSRequest ::= SEQUENCE {
+ version [0] INTEGER,
+ negoTokens [1] NegoData OPTIONAL,
+ authInfo [2] OCTET STRING OPTIONAL,
+ pubKeyAuth [3] OCTET STRING OPTIONAL
+}
+
+END
diff --git a/epan/dissectors/asn1/credssp/Makefile.am b/epan/dissectors/asn1/credssp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/credssp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/credssp/Makefile.common b/epan/dissectors/asn1/credssp/Makefile.common
new file mode 100644
index 0000000000..91e1682c9a
--- /dev/null
+++ b/epan/dissectors/asn1/credssp/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=credssp
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ CredSSP.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b -C
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/credssp/Makefile.nmake b/epan/dissectors/asn1/credssp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/credssp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/credssp/credssp.cnf b/epan/dissectors/asn1/credssp/credssp.cnf
new file mode 100644
index 0000000000..6a2f301c04
--- /dev/null
+++ b/epan/dissectors/asn1/credssp/credssp.cnf
@@ -0,0 +1,57 @@
+# credssp.cnf
+# Credential Security Support Provider (CredSSP) conformance file
+
+#.PDU
+TSRequest
+
+#.FN_PARS TSRequest/authInfo VAL_PTR = &auth_tvb
+
+#.FN_BODY TSRequest/authInfo
+ tvbuff_t *auth_tvb = NULL;
+ tvbuff_t *decr_tvb = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(decr_tvb != NULL)
+ offset = dissect_credssp_TSCredentials(FALSE, decr_tvb, 0, actx, tree, hf_credssp_TSCredentials);
+
+
+#.FN_PARS TSCredentials/credType VAL_PTR = &creds_type
+#.FN_PARS TSCredentials/credentials VAL_PTR = &creds_tvb
+
+#.FN_BODY TSCredentials/credentials
+ tvbuff_t *creds_tvb = NULL;
+ tvbuff_t *decr_tvb = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if((decr_tvb != NULL) &&
+ ((creds_type == TS_PASSWORD_CREDS) || (creds_type == TS_SMARTCARD_CREDS))) {
+
+ switch(creds_type) {
+ case TS_PASSWORD_CREDS:
+ offset = dissect_credssp_TSPasswordCreds(FALSE, decr_tvb, 0, actx, tree, hf_credssp_TSPasswordCreds);
+ break;
+ case TS_SMARTCARD_CREDS:
+ offset = dissect_credssp_TSSmartCardCreds(FALSE, decr_tvb, 0, actx, tree, hf_credssp_TSSmartCardCreds);
+ break;
+ }
+ }
+
+
+#.FN_PARS NegoData/_item/negoToken VAL_PTR = &token_tvb
+
+#.FN_BODY NegoData/_item/negoToken
+ tvbuff_t *token_tvb = NULL;
+ heur_dtbl_entry_t *hdtbl_entry;
+
+ %(DEFAULT_BODY)s
+
+ if(token_tvb != NULL)
+ dissector_try_heuristic(credssp_heur_subdissector_list,
+ token_tvb, actx->pinfo, proto_tree_get_root(tree), &hdtbl_entry, NULL);
+
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/credssp/packet-credssp-template.c b/epan/dissectors/asn1/credssp/packet-credssp-template.c
new file mode 100644
index 0000000000..0da2930ffe
--- /dev/null
+++ b/epan/dissectors/asn1/credssp/packet-credssp-template.c
@@ -0,0 +1,182 @@
+/* packet-credssp.c
+ * Routines for CredSSP (Credential Security Support Provider) packet dissection
+ * Graeme Lunt 2011
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+#include <epan/tap.h>
+#include <epan/exported_pdu.h>
+
+#include "packet-ber.h"
+#include "packet-credssp.h"
+
+
+#define PNAME "Credential Security Support Provider"
+#define PSNAME "CredSSP"
+#define PFNAME "credssp"
+
+#define TS_PASSWORD_CREDS 1
+#define TS_SMARTCARD_CREDS 2
+static gint creds_type;
+
+static gint exported_pdu_tap = -1;
+
+/* Initialize the protocol and registered fields */
+static int proto_credssp = -1;
+
+/* List of dissectors to call for negoToken data */
+static heur_dissector_list_t credssp_heur_subdissector_list;
+
+static int hf_credssp_TSPasswordCreds = -1; /* TSPasswordCreds */
+static int hf_credssp_TSSmartCardCreds = -1; /* TSSmartCardCreds */
+static int hf_credssp_TSCredentials = -1; /* TSCredentials */
+#include "packet-credssp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_credssp = -1;
+#include "packet-credssp-ett.c"
+
+#include "packet-credssp-fn.c"
+
+/*
+* Dissect CredSSP PDUs
+*/
+static int
+dissect_credssp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_credssp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_credssp);
+ }
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CredSSP");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ creds_type = -1;
+ return dissect_TSRequest_PDU(tvb, pinfo, tree, data);
+}
+
+static gboolean
+dissect_credssp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ asn1_ctx_t asn1_ctx;
+ int offset = 0;
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ guint32 length;
+ gint8 ver;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* Look for SEQUENCE, CONTEXT 0, and INTEGER 2 */
+ if(tvb_captured_length(tvb) > 7) {
+ offset = get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if((ber_class == BER_CLASS_UNI) && (tag == BER_UNI_TAG_SEQUENCE) && (pc == TRUE)) {
+ offset = get_ber_length(tvb, offset, NULL, NULL);
+ offset = get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if((ber_class == BER_CLASS_CON) && (tag == 0)) {
+ offset = get_ber_length(tvb, offset, NULL, NULL);
+ offset = get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if((ber_class == BER_CLASS_UNI) && (tag == BER_UNI_TAG_INTEGER)) {
+ offset = get_ber_length(tvb, offset, &length, NULL);
+ ver = tvb_get_guint8(tvb, offset);
+ if((length == 1) && ((ver == 2) || (ver == 3))) {
+ if (have_tap_listener(exported_pdu_tap)) {
+ exp_pdu_data_t *exp_pdu_data;
+ guint8 tags_bit_field;
+
+ tags_bit_field = EXP_PDU_TAG_IP_SRC_BIT + EXP_PDU_TAG_IP_DST_BIT + EXP_PDU_TAG_SRC_PORT_BIT+
+ EXP_PDU_TAG_DST_PORT_BIT + EXP_PDU_TAG_ORIG_FNO_BIT;
+
+ exp_pdu_data = load_export_pdu_tags(pinfo, EXP_PDU_TAG_PROTO_NAME, "credssp", &tags_bit_field, 1);
+
+ exp_pdu_data->tvb_captured_length = tvb_captured_length(tvb);
+ exp_pdu_data->tvb_reported_length = tvb_reported_length(tvb);
+ exp_pdu_data->pdu_tvb = tvb;
+
+ tap_queue_packet(exported_pdu_tap, pinfo, exp_pdu_data);
+ }
+ dissect_credssp(tvb, pinfo, parent_tree, NULL);
+ return TRUE;
+ }
+ }
+ }
+ }
+ }
+ return FALSE;
+}
+
+
+/*--- proto_register_credssp -------------------------------------------*/
+void proto_register_credssp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ { &hf_credssp_TSPasswordCreds,
+ { "TSPasswordCreds", "credssp.TSPasswordCreds",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_credssp_TSSmartCardCreds,
+ { "TSSmartCardCreds", "credssp.TSSmartCardCreds",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_credssp_TSCredentials,
+ { "TSCredentials", "credssp.TSCredentials",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-credssp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_credssp,
+#include "packet-credssp-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_credssp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("credssp", dissect_credssp, proto_credssp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_credssp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* heuristic dissectors for any premable e.g. CredSSP before RDP */
+ credssp_heur_subdissector_list = register_heur_dissector_list("credssp");
+
+}
+
+
+/*--- proto_reg_handoff_credssp --- */
+void proto_reg_handoff_credssp(void) {
+
+ heur_dissector_add("ssl", dissect_credssp_heur, "CredSSP over SSL", "credssp_ssl", proto_credssp, HEURISTIC_ENABLE);
+ exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
+}
+
diff --git a/epan/dissectors/asn1/credssp/packet-credssp-template.h b/epan/dissectors/asn1/credssp/packet-credssp-template.h
new file mode 100644
index 0000000000..0050ae0a3f
--- /dev/null
+++ b/epan/dissectors/asn1/credssp/packet-credssp-template.h
@@ -0,0 +1,32 @@
+/* packet-credssp.h
+ * Routines for CredSSP (Credential Security Support Provider) packet dissection
+ * Graeme Lunt 2011
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_CREDSSP_H
+#define PACKET_CREDSSP_H
+
+#include "packet-credssp-val.h"
+
+void proto_reg_handoff_credssp(void);
+void proto_register_credssp(void);
+
+#endif /* PACKET_CREDSSP_H */
diff --git a/epan/dissectors/asn1/crmf/CMakeLists.txt b/epan/dissectors/asn1/crmf/CMakeLists.txt
new file mode 100644
index 0000000000..bc6ec91110
--- /dev/null
+++ b/epan/dissectors/asn1/crmf/CMakeLists.txt
@@ -0,0 +1,56 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME crmf )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ CRMF.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../cms/cms-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/crmf/CRMF.asn b/epan/dissectors/asn1/crmf/CRMF.asn
new file mode 100644
index 0000000000..eb1eb17e61
--- /dev/null
+++ b/epan/dissectors/asn1/crmf/CRMF.asn
@@ -0,0 +1,311 @@
+-- Extracted from RFC4211
+-- by Martin Peylo <martin.peylo@nsn.com>
+--
+-- Changes to make it work with asn2wrs:
+-- - none
+--
+-- The copyright statement from the original description in RFC4211
+-- follows below:
+--
+-- Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (2005).
+--
+-- This document is subject to the rights, licenses and restrictions
+-- contained in BCP 78, and except as set forth therein, the authors
+-- retain all their rights.
+--
+-- This document and the information contained herein are provided on an
+-- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+-- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+-- ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+-- INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+-- INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+-- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+
+PKIXCRMF-2005 {iso(1) identified-organization(3) dod(6) internet(1)
+security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-crmf2005(36)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ -- Directory Authentication Framework (X.509)
+ Version, AlgorithmIdentifier, Name, Time,
+ SubjectPublicKeyInfo, Extensions, UniqueIdentifier, Attribute
+ FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-explicit(18)} -- found in [PROFILE]
+
+ -- Certificate Extensions (X.509)
+ GeneralName
+ FROM PKIX1Implicit88 {iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-implicit(19)} -- found in [PROFILE]
+
+ -- Cryptographic Message Syntax
+ EnvelopedData
+ FROM CryptographicMessageSyntax2004 { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16)
+ modules(0) cms-2004(24) }; -- found in [CMS]
+
+-- The following definition may be uncommented for use with
+-- ASN.1 compilers that do not understand UTF8String.
+
+-- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+ -- The contents of this type correspond to RFC 2279.
+
+id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+dod(6) internet(1) security(5) mechanisms(5) 7 }
+
+-- arc for Internet X.509 PKI protocols and their components
+
+id-pkip OBJECT IDENTIFIER ::= { id-pkix 5 }
+
+id-smime OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs9(9) 16 }
+
+id-ct OBJECT IDENTIFIER ::= { id-smime 1 } -- content types
+
+-- Core definitions for this module
+
+CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ popo ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } -- at least one MUST be present
+
+Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] POPOSigningKey,
+ keyEncipherment [2] POPOPrivKey,
+ keyAgreement [3] POPOPrivKey }
+
+POPOSigningKey ::= SEQUENCE {
+ poposkInput [0] POPOSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed over the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain both the
+ -- public key and subject values (i.e., if it contains only one
+ -- of these, or neither), then poposkInput MUST be present and
+ -- MUST be signed.
+
+POPOSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate)
+ publicKeyMAC PKMACValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMAC contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+PKMACValue ::= SEQUENCE {
+algId AlgorithmIdentifier,
+-- algorithm value shall be PasswordBasedMac {1 2 840 113533 7 66 13}
+-- parameter value is PBMParameter
+value BIT STRING }
+
+PBMParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+} -- or HMAC [HMAC, RFC2202])
+
+POPOPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+ -- for keyAgreement (only), possession is proven in this message
+ -- (which contains a MAC (over the DER-encoded value of the
+ -- certReq parameter in CertReqMsg, which MUST include both subject
+ -- and publicKey) based on a key derived from the end entity's
+ -- private DH key and the CA's public DH key);
+
+SubsequentMessage ::= INTEGER {
+ encrCert (0),
+ -- requests that resulting certificate be encrypted for the
+ -- end entity (following which, POP will be proven in a
+ -- confirmation message)
+ challengeResp (1) }
+ -- requests that CA engage in challenge-response exchange with
+ -- end entity in order to prove private key possession
+
+-- Object identifier assignments --
+
+-- Registration Controls in CRMF
+id-regCtrl OBJECT IDENTIFIER ::= { id-pkip 1 }
+
+
+id-regCtrl-regToken OBJECT IDENTIFIER ::= { id-regCtrl 1 }
+--with syntax:
+RegToken ::= UTF8String
+
+id-regCtrl-authenticator OBJECT IDENTIFIER ::= { id-regCtrl 2 }
+--with syntax:
+Authenticator ::= UTF8String
+
+id-regCtrl-pkiPublicationInfo OBJECT IDENTIFIER ::= { id-regCtrl 3 }
+--with syntax:
+
+PKIPublicationInfo ::= SEQUENCE {
+action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+id-regCtrl-pkiArchiveOptions OBJECT IDENTIFIER ::= { id-regCtrl 4 }
+--with syntax:
+PKIArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters that allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- Deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+-- When EncryptedValue is used to carry a private key (as opposed to
+-- a certificate), implementations MUST support the encValue field
+-- containing an encrypted PrivateKeyInfo as defined in [PKCS11],
+-- section 12.11. If encValue contains some other format/encoding
+-- for the private key, the first octet of valueHint MAY be used
+-- to indicate the format/encoding (but note that the possible values
+-- of this octet are not specified at this time). In all cases, the
+-- intendedAlg field MUST be used to indicate at least the OID of
+-- the intended algorithm of the private key, unless this information
+-- is known a priori to both sender and receiver by some other means.
+
+KeyGenParameters ::= OCTET STRING
+
+id-regCtrl-oldCertID OBJECT IDENTIFIER ::= { id-regCtrl 5 }
+--with syntax:
+OldCertId ::= CertId
+
+CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+id-regCtrl-protocolEncrKey OBJECT IDENTIFIER ::= { id-regCtrl 6 }
+--with syntax:
+ProtocolEncrKey ::= SubjectPublicKeyInfo
+
+-- Registration Info in CRMF
+id-regInfo OBJECT IDENTIFIER ::= { id-pkip 2 }
+
+id-regInfo-utf8Pairs OBJECT IDENTIFIER ::= { id-regInfo 1 }
+--with syntax
+UTF8Pairs ::= UTF8String
+
+id-regInfo-certReq OBJECT IDENTIFIER ::= { id-regInfo 2 }
+--with syntax
+CertReq ::= CertRequest
+
+-- id-ct-encKeyWithID is a new content type used for CMS objects.
+-- it contains both a private key and an identifier for key escrow
+-- agents to check against recovery requestors.
+
+id-ct-encKeyWithID OBJECT IDENTIFIER ::= {id-ct 21}
+
+EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+}
+
+PrivateKeyInfo ::= SEQUENCE {
+ version INTEGER,
+ privateKeyAlgorithm AlgorithmIdentifier,
+ privateKey OCTET STRING,
+ attributes [0] IMPLICIT Attributes OPTIONAL
+}
+
+Attributes ::= SET OF Attribute
+
+END
diff --git a/epan/dissectors/asn1/crmf/Makefile.am b/epan/dissectors/asn1/crmf/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/crmf/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/crmf/Makefile.common b/epan/dissectors/asn1/crmf/Makefile.common
new file mode 100644
index 0000000000..48c69da6bd
--- /dev/null
+++ b/epan/dissectors/asn1/crmf/Makefile.common
@@ -0,0 +1,49 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=crmf
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ CRMF.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../cms/cms-exp.cnf
+
+$(builddir)/../cms/cms-exp.cnf:
+ (cd $(builddir)/../cms && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/crmf/Makefile.nmake b/epan/dissectors/asn1/crmf/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/crmf/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/crmf/crmf.cnf b/epan/dissectors/asn1/crmf/crmf.cnf
new file mode 100644
index 0000000000..42e6563f85
--- /dev/null
+++ b/epan/dissectors/asn1/crmf/crmf.cnf
@@ -0,0 +1,76 @@
+# CRMF.cnf
+# CRMF conformation file
+
+#.MODULE_IMPORT
+PKIX1Explicit88 pkix1explicit
+PKIX1Implicit88 pkix1implicit
+CryptographicMessageSyntax2004 cms
+
+#.IMPORT ../cms/cms-exp.cnf
+#.INCLUDE ../pkix1explicit/pkix1explicit_exp.cnf
+#.INCLUDE ../pkix1implicit/pkix1implicit_exp.cnf
+
+#.EXPORTS
+Authenticator
+Attributes
+AttributeTypeAndValue
+CertId
+CertReq
+CertReqMessages
+CertReqMsg
+CertRequest
+CertTemplate
+Controls
+EncKeyWithID
+EncryptedKey
+EncryptedValue
+KeyGenParameters
+OldCertId
+OptionalValidity
+PBMParameter
+PKIArchiveOptions
+PKIPublicationInfo
+PKMACValue
+POPOPrivKey
+POPOSigningKey
+POPOSigningKeyInput
+PrivateKeyInfo
+ProofOfPossession
+ProtocolEncrKey
+RegToken
+SinglePubInfo
+SubsequentMessage
+UTF8Pairs
+
+#.REGISTER
+EncKeyWithID B "1.2.840.113549.1.9.16.1.21" "id-ct-encKeyWithID"
+PBMParameter B "1.2.840.113533.7.66.13" "PasswordBasedMac"
+RegToken B "1.3.6.1.5.5.7.5.1.1" "id-regCtrl-regToken"
+Authenticator B "1.3.6.1.5.5.7.5.1.2" "id-regCtrl-authenticator"
+PKIPublicationInfo B "1.3.6.1.5.5.7.5.1.3" "id-regCtrl-pkiPublicationInfo"
+PKIArchiveOptions B "1.3.6.1.5.5.7.5.1.4" "id-regCtrl-pkiArchiveOptions"
+OldCertId B "1.3.6.1.5.5.7.5.1.5" "id-regCtrl-oldCertID"
+ProtocolEncrKey B "1.3.6.1.5.5.7.5.1.6" "id-regCtrl-protocolEncrKey"
+UTF8Pairs B "1.3.6.1.5.5.7.5.2.1" "id-regInfo-utf8Pairs"
+CertRequest B "1.3.6.1.5.5.7.5.2.2" "id-regInfo-certReq"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+CertTemplate/issuer template_issuer
+POPOSigningKey/signature sk_signature
+PKMACValue/value pkmac_value
+PrivateKeyInfo/version privkey_version
+EncKeyWithID/privateKey enckeywid_privkey
+
+#.FN_PARS AttributeTypeAndValue/type
+ FN_VARIANT = _str HF_INDEX = hf_crmf_type_oid VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY AttributeTypeAndValue/value
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/crmf/packet-crmf-template.c b/epan/dissectors/asn1/crmf/packet-crmf-template.c
new file mode 100644
index 0000000000..e7399984cb
--- /dev/null
+++ b/epan/dissectors/asn1/crmf/packet-crmf-template.c
@@ -0,0 +1,87 @@
+/* packet-crmf.c
+ * Routines for RFC2511 Certificate Request Message Format packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-crmf.h"
+#include "packet-cms.h"
+#include "packet-pkix1explicit.h"
+#include "packet-pkix1implicit.h"
+
+#define PNAME "Certificate Request Message Format"
+#define PSNAME "CRMF"
+#define PFNAME "crmf"
+
+void proto_register_crmf(void);
+void proto_reg_handoff_crmf(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_crmf = -1;
+static int hf_crmf_type_oid = -1;
+#include "packet-crmf-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-crmf-ett.c"
+#include "packet-crmf-fn.c"
+
+
+/*--- proto_register_crmf ----------------------------------------------*/
+void proto_register_crmf(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_crmf_type_oid,
+ { "Type", "crmf.type.oid",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Type of AttributeTypeAndValue", HFILL }},
+#include "packet-crmf-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-crmf-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_crmf = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_crmf, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_crmf -------------------------------------------*/
+void proto_reg_handoff_crmf(void) {
+ oid_add_from_string("id-pkip","1.3.6.1.5.5.7.5");
+ oid_add_from_string("id-regCtrl","1.3.6.1.5.5.7.5.1");
+ oid_add_from_string("id-regInfo","1.3.6.1.5.5.7.5.2");
+#include "packet-crmf-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/crmf/packet-crmf-template.h b/epan/dissectors/asn1/crmf/packet-crmf-template.h
new file mode 100644
index 0000000000..e187bc497d
--- /dev/null
+++ b/epan/dissectors/asn1/crmf/packet-crmf-template.h
@@ -0,0 +1,30 @@
+/* packet-crmf.h
+ * Routines for RFC2511 Certificate Request Message Format packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_CRMF_H
+#define PACKET_CRMF_H
+
+#include "packet-crmf-exp.h"
+
+#endif /* PACKET_CRMF_H */
+
diff --git a/epan/dissectors/asn1/dap/CMakeLists.txt b/epan/dissectors/asn1/dap/CMakeLists.txt
new file mode 100644
index 0000000000..53277cf453
--- /dev/null
+++ b/epan/dissectors/asn1/dap/CMakeLists.txt
@@ -0,0 +1,65 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME dap )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+ DirectoryAccessProtocol.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -L )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../acse/acse-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../dop/dop-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../disp/disp-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../dsp/dsp-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../crmf/crmf-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../ros/ros-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/dap/DirectoryAccessProtocol.asn b/epan/dissectors/asn1/dap/DirectoryAccessProtocol.asn
new file mode 100644
index 0000000000..2d558904ef
--- /dev/null
+++ b/epan/dissectors/asn1/dap/DirectoryAccessProtocol.asn
@@ -0,0 +1,170 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x519/2001/index.html
+-- Module DirectoryAccessProtocol (X.519:02/2001)
+DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 4} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ directoryAbstractService, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 4}
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ abandon, addEntry, compare, directoryBind, directoryUnbind, list, modifyDN,
+ modifyEntry, read, removeEntry, search
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 4}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+ id-ac-directoryAccessAC, id-as-directoryAccessAS, id-contract-dap,
+ id-package-dapConnection, id-package-modify, id-package-read,
+ id-package-search, id-rosObject-dapDSA, id-rosObject-directory,
+ id-rosObject-dua
+ FROM ProtocolObjectIdentifiers {joint-iso-itu-t ds(5) module(1)
+ protocolObjectIdentifiers(4) 4}
+ -- from ITU-T Rec. X.880 | ISO/IEC 13712-1
+ Code, CONNECTION-PACKAGE, CONTRACT, OPERATION, OPERATION-PACKAGE,
+ ROS-OBJECT-CLASS
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, ROS{}, Unbind{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ -- from ITU-T Rec. X.881 | ISO/IEC 13712-2
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ -- from ITU-T Rec. X.882 | ISO/IEC 13712-3
+ 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)};
+
+-- 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/epan/dissectors/asn1/dap/Makefile.am b/epan/dissectors/asn1/dap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/dap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/dap/Makefile.common b/epan/dissectors/asn1/dap/Makefile.common
new file mode 100644
index 0000000000..3451f88a1d
--- /dev/null
+++ b/epan/dissectors/asn1/dap/Makefile.common
@@ -0,0 +1,83 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=dap
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn \
+ DirectoryAccessProtocol.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b -L
+
+EXTRA_CNF= \
+ $(builddir)/../acse/acse-exp.cnf \
+ $(builddir)/../dop/dop-exp.cnf \
+ $(builddir)/../disp/disp-exp.cnf \
+ $(builddir)/../dsp/dsp-exp.cnf \
+ $(builddir)/../crmf/crmf-exp.cnf \
+ $(builddir)/../ros/ros-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+$(builddir)/../acse/acse-exp.cnf:
+ (cd $(builddir)/../acse && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../dop/dop-exp.cnf:
+ (cd $(builddir)/../dop && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../disp/disp-exp.cnf:
+ (cd $(builddir)/../disp && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../dsp/dsp-exp.cnf:
+ (cd $(builddir)/../dsp && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../crmf/crmf-exp.cnf:
+ (cd $(builddir)/../crmf && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../ros/ros-exp.cnf:
+ (cd $(builddir)/../ros && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/dap/Makefile.nmake b/epan/dissectors/asn1/dap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/dap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/dap/dap.asn b/epan/dissectors/asn1/dap/dap.asn
new file mode 100644
index 0000000000..80083891aa
--- /dev/null
+++ b/epan/dissectors/asn1/dap/dap.asn
@@ -0,0 +1,1304 @@
+-- Module DirectoryAbstractService (X.511:08/2005)
+DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 4} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ attributeCertificateDefinitions, authenticationFramework, basicAccessControl,
+ dap, directoryShadowAbstractService, distributedOperations,
+ enhancedSecurity, id-at, informationFramework, selectedAttributeTypes,
+ serviceAdministration, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 4}
+ Attribute, ATTRIBUTE, AttributeType, AttributeTypeAssertion, AttributeValue,
+ AttributeValueAssertion, CONTEXT, ContextAssertion, DistinguishedName, RDNSequence,
+ MATCHING-RULE, -- Name,-- OBJECT-CLASS, RelativeDistinguishedName,
+ SupportedAttributes, SupportedContexts
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 4}
+ RelaxationPolicy
+ FROM ServiceAdministration {joint-iso-itu-t ds(5) module(1)
+ serviceAdministration(33) 4}
+ AttributeTypeAndValue
+ FROM BasicAccessControl {joint-iso-itu-t ds(5) module(1)
+ basicAccessControl(24) 4}
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28)
+ 4}
+ -- from ITU-T Rec. X.518 | ISO/IEC 9594-4
+ AccessPoint, ContinuationReference, Exclusions, OperationProgress,
+ ReferenceType
+ FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
+ distributedOperations(3) 4}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+ id-errcode-abandoned, id-errcode-abandonFailed, id-errcode-attributeError,
+ id-errcode-nameError, id-errcode-referral, id-errcode-securityError,
+ id-errcode-serviceError, id-errcode-updateError, id-opcode-abandon,
+ id-opcode-addEntry, id-opcode-compare, id-opcode-list, id-opcode-modifyDN,
+ id-opcode-modifyEntry, id-opcode-read, id-opcode-removeEntry,
+ id-opcode-search
+ FROM DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 4}
+ -- from ITU-T Rec. X.520 | ISO/IEC 9594-6
+ DirectoryString
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 4}
+ ub-domainLocalID
+ FROM UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 4}
+ -- from ITU-T Rec. X.509 | ISO/IEC 9594-8
+ AlgorithmIdentifier, CertificationPath, ENCRYPTED{}, SIGNATURE{}, SIGNED{}
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 4}
+ AttributeCertificationPath
+ FROM AttributeCertificateDefinitions {joint-iso-itu-t ds(5) module(1)
+ attributeCertificateDefinitions(32) 4}
+ -- from ITU-T Rec. X.525 | ISO/IEC 9594-9
+ AgreementID
+ FROM DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryShadowAbstractService(15) 4}
+ -- from ITU-T Rec. X.880 | ISO/IEC 13712-1
+ Code, ERROR, OPERATION
+ 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)}
+ -- from RFC 2025
+ SPKM-ERROR, SPKM-REP-TI, SPKM-REQ
+ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
+
+-- Common data types
+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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [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,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+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), dontSelectFriends(12), dontMatchFriends(13)}
+
+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 SIZE (1..MAX) OF AttributeType
+ } OPTIONAL,
+ contextSelection ContextSelection OPTIONAL,
+ returnContexts BOOLEAN DEFAULT FALSE,
+ familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly}
+}
+
+ContextSelection ::= CHOICE {
+ allContexts NULL,
+ selectedContexts SET SIZE (1..MAX) 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
+}
+
+
+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
+ partialName [4] BOOLEAN DEFAULT FALSE, -- not in 1988 or 1993 edition systems
+ derivedEntry
+ [5] BOOLEAN DEFAULT FALSE -- not in pre-2001 edition systems --
+}
+
+--family-information ATTRIBUTE ::= {
+-- WITH SYNTAX FamilyEntries
+-- USAGE directoryOperation
+-- ID id-at-family-information
+--}
+
+FamilyEntries ::= SEQUENCE {
+ family-class --OBJECT-CLASS.&id-- OBJECT IDENTIFIER, -- 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
+}
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SetOfFilter,
+ or [2] SetOfFilter,
+ not [3] Filter
+}
+
+SetOfFilter ::= SET OF 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 shall 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-- OBJECT IDENTIFIER 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}
+ CODE op-ros-bind -- WS: internal operation code
+}
+
+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,
+ sasl [4] SaslCredentials
+}
+
+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} OPTIONAL,
+ password
+ [2] CHOICE {unprotected OCTET STRING,
+-- protected SIGNATURE{OCTET STRING}} OPTIONAL
+ protected SEQUENCE {
+ protectedPassword OCTET STRING,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT 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 -- ANY,
+ rep [1] -- SPKM-REP-TI-- ANY
+}
+
+SaslCredentials ::= SEQUENCE {
+ mechanism [0] DirectoryString {--ub-sasIMechanism--},
+ credentials [1] OCTET STRING OPTIONAL,
+ saslAbort [2] BOOLEAN DEFAULT FALSE
+}
+
+TokenData ::=
+-- SIGNED
+-- { --SEQUENCE {algorithm [0] AlgorithmIdentifier,
+ name [1] DistinguishedName,
+ time [2] UTCTime,
+ 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 -- dirqop [9] OBJECT IDENTIFIER OPTIONAL--
+ } --}
+
+-- expand SIGNED macro
+
+Token ::= SEQUENCE {
+ token-data TokenData,
+ algorithm-identifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+Versions ::= BIT STRING {v1(0), v2(1)}
+
+DirectoryBindResult ::= DirectoryBindArgument
+
+directoryBindError ERROR ::= {
+ PARAMETER -- OPTIONALLY-PROTECTED -- DirectoryBindError
+-- {SET {versions [0] Versions DEFAULT {v1},
+-- error
+-- CHOICE {serviceError [1] ServiceProblem,
+-- securityError [2] SecurityProblem}} }
+ CODE err-ros-bind -- WS: internal error code
+}
+
+-- expand OPTIONALLY-PROTECTED macro
+DirectoryBindError ::= CHOICE {
+ unsignedDirectoryBindError DirectoryBindErrorData,
+ signedDirectoryBindError SEQUENCE {
+ directoryBindError DirectoryBindErrorData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+DirectoryBindErrorData ::=
+ SET {versions [0] Versions DEFAULT {v1},
+ error
+ CHOICE {serviceError [1] ServiceProblem,
+ securityError [2] SecurityProblem},
+ securityParameters [30] SecurityParameters OPTIONAL
+}
+
+
+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
+}
+
+ReadArgumentData ::=
+-- OPTIONALLY-PROTECTED
+-- {-- SET {object [0] Name,
+ selection [1] EntryInformationSelection DEFAULT {},
+ modifyRightsRequest [2] BOOLEAN DEFAULT FALSE,
+-- COMPONENTS OF CommonArguments
+ 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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}--}
+
+Name ::= CHOICE {
+ rdnSequence RDNSequence
+}
+
+
+-- OPTIONALLY-PROTECTED macro expansion
+ReadArgument ::= CHOICE {
+ unsignedReadArgument ReadArgumentData,
+ signedReadArgument SEQUENCE {
+ readArgument ReadArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ReadResultData ::=
+-- OPTIONALLY-PROTECTED
+-- {--SET {entry [0] EntryInformation,
+ modifyRights [1] ModifyRights OPTIONAL,
+-- COMPONENTS OF CommonResults
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}--}
+
+-- OPTIONALLY-PROTECTED macro expansion
+ReadResult ::= CHOICE {
+ unsignedReadResult ReadResultData,
+ signedReadResult SEQUENCE {
+ readResult ReadResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+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
+}
+
+CompareArgumentData ::=
+-- OPTIONALLY-PROTECTED
+-- {--SET {object [0] Name,
+ purported [1] AttributeValueAssertion,
+-- COMPONENTS OF CommonArguments}}
+ 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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+-- OPTIONALLY-PROTECTED macro expansion
+CompareArgument ::= CHOICE {
+ unsignedCompareArgument CompareArgumentData,
+ signedCompareArgument SEQUENCE {
+ compareArgument CompareArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+CompareResultData ::=
+-- OPTIONALLY-PROTECTED
+-- {--SET {name Name OPTIONAL,
+ matched [0] BOOLEAN,
+ fromEntry [1] BOOLEAN DEFAULT TRUE,
+ matchedSubtype [2] AttributeType OPTIONAL,
+-- COMPONENTS OF CommonResults}}
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+-- OPTIONALLY-PROTECTED macro expansion
+CompareResult ::= CHOICE {
+ unsignedCompareResult CompareResultData,
+ signedCompareResult SEQUENCE {
+ compareResult CompareResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+abandon OPERATION ::= {
+ ARGUMENT AbandonArgument
+ RESULT AbandonResult
+ ERRORS {abandonFailed}
+ CODE id-opcode-abandon
+}
+
+AbandonArgumentData ::=
+-- OPTIONALLY-PROTECTED-SEQ{--SEQUENCE {invokeID [0] InvokeId}--}
+
+-- OPTIONALLY-PROTECTED-SEQ macro expansion
+AbandonArgument ::= CHOICE {
+ unsignedAbandonArgument AbandonArgumentData,
+ signedAbandonArgument [0] SEQUENCE {
+ abandonArgument AbandonArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+AbandonResultData ::= SEQUENCE {
+ invokeID InvokeId,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+AbandonResult ::= CHOICE {
+ null NULL,
+ information
+-- OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId,
+-- COMPONENTS OF CommonResultsSeq
+-- }}
+ CHOICE {
+ unsignedAbandonResult AbandonResultData,
+ signedAbandonResult [0] SEQUENCE {
+ abandonResult AbandonResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+ }
+}
+
+list OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS {nameError | serviceError | referral | abandoned | securityError}
+ CODE id-opcode-list
+}
+
+ListArgumentData ::=
+-- OPTIONALLY-PROTECTED
+-- {--SET {object [0] Name,
+ pagedResults [1] PagedResultsRequest OPTIONAL,
+ listFamily [2] BOOLEAN DEFAULT FALSE,
+-- COMPONENTS OF CommonArguments}}
+ 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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+-- expand OPTIONALLY-PROTECTED macro
+ListArgument ::= CHOICE {
+ unsignedListArgument ListArgumentData,
+ signedListArgument SEQUENCE {
+ listArgument ListArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+ListResultData ::=
+-- 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},
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+ },
+ uncorrelatedListInfo [0] SET OF ListResult}--}
+
+-- expand OPTIONALLY-PROTECTED macro
+ListResult ::= CHOICE {
+ unsignedListResult ListResultData,
+ signedListResult SEQUENCE {
+ listResult ListResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+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-- OBJECT IDENTIFIER 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,
+ exact [9] INTEGER} OPTIONAL,
+ streamedResult [10] BOOLEAN DEFAULT FALSE
+}
+
+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
+}
+
+SearchArgumentData ::=
+-- 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},
+ joinArguments
+ [13] SEQUENCE SIZE (1..MAX) OF JoinArgument OPTIONAL,
+ joinType
+ [14] ENUMERATED {innerJoin(0), leftOuterJoin(1), fullOuterJoin(2)}
+ DEFAULT leftOuterJoin,
+-- COMPONENTS OF CommonArguments}}
+ 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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+-- expand OPTIONALLY-PROTECTED macro
+SearchArgument ::= CHOICE {
+ unsignedSearchArgument SearchArgumentData,
+ signedSearchArgument SEQUENCE {
+ searchArgument SearchArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+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)}
+
+JoinArgument ::= SEQUENCE {
+ joinBaseObject [0] Name,
+ domainLocalID [1] DomainLocalID OPTIONAL,
+ joinSubset
+ [2] ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+ DEFAULT baseObject,
+ joinFilter [3] Filter OPTIONAL,
+ joinAttributes [4] SEQUENCE SIZE (1..MAX) OF JoinAttPair OPTIONAL,
+ joinSelection [5] EntryInformationSelection
+}
+
+DomainLocalID ::= DirectoryString --{ub-domainLocalID}--
+
+JoinAttPair ::= SEQUENCE {
+ baseAtt AttributeType,
+ joinAtt AttributeType,
+ joinContext SEQUENCE SIZE (1..MAX) OF JoinContextType OPTIONAL
+}
+
+JoinContextType ::= --CONTEXT.&id({SupportedContexts})-- OBJECT IDENTIFIER
+
+SearchResultData ::=
+-- 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},
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX)OF Attribute OPTIONAL},
+ uncorrelatedSearchInfo [0] SET OF SearchResult}--}
+
+-- expand OPTIONALLY-PROTECTED macro
+SearchResult ::= CHOICE {
+ unsignedSearchResult SearchResultData,
+ signedSearchResult SEQUENCE {
+ searchResult SearchResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+addEntry OPERATION ::= {
+ ARGUMENT AddEntryArgument
+ RESULT AddEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-addEntry
+}
+
+AddEntryArgumentData ::=
+-- OPTIONALLY-PROTECTED
+-- {--SET {object [0] Name,
+ entry [1] SET OF Attribute,
+ targetSystem [2] AccessPoint OPTIONAL,
+-- COMPONENTS OF CommonArguments}}
+ 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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+-- expand OPTIONALLY-PROTECTED macro
+AddEntryArgument ::= CHOICE {
+ unsignedAddEntryArgument AddEntryArgumentData,
+ signedAddEntryArgument SEQUENCE {
+ addEntryArgument AddEntryArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+AddEntryResultData ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+AddEntryResult ::= CHOICE {
+ null NULL,
+ information
+-- OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+ CHOICE {
+ unsignedAddEntryResult AddEntryResultData,
+ signedAddEntryResult [0] SEQUENCE {
+ addEntryResult AddEntryResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+ }
+}
+
+removeEntry OPERATION ::= {
+ ARGUMENT RemoveEntryArgument
+ RESULT RemoveEntryResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-removeEntry
+}
+
+RemoveEntryArgumentData ::=
+-- OPTIONALLY-PROTECTED{--SET {object [0] Name,
+-- COMPONENTS OF CommonArguments}}
+ 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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+-- OPTIONALLY-PROTECTED macro expansion
+RemoveEntryArgument ::= CHOICE {
+ unsignedRemoveEntryArgument RemoveEntryArgumentData,
+ signedRemoveEntryArgument SEQUENCE {
+ removeEntryArgument RemoveEntryArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+RemoveEntryResultData ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+RemoveEntryResult ::= CHOICE {
+ null NULL,
+ information
+-- OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+ CHOICE {
+ unsignedRemoveEntryResult RemoveEntryResultData,
+ signedRemoveEntryResult [0] SEQUENCE {
+ removeEntryResult RemoveEntryResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+ }
+}
+
+modifyEntry OPERATION ::= {
+ ARGUMENT ModifyEntryArgument
+ RESULT ModifyEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-modifyEntry
+}
+
+ModifyEntryArgumentData ::=
+-- OPTIONALLY-PROTECTED
+-- {--SET {object [0] Name,
+ changes [1] SEQUENCE OF EntryModification,
+ selection [2] EntryInformationSelection OPTIONAL,
+-- COMPONENTS OF CommonArguments}}
+ 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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+-- OPTIONALLY-PROTECTED macro expansion
+ModifyEntryArgument ::= CHOICE {
+ unsignedModifyEntryArgument ModifyEntryArgumentData,
+ signedModifyEntryArgument SEQUENCE {
+ modifyEntryArgument ModifyEntryArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+ModifyEntryResultData ::= SEQUENCE {
+ entry [0] EntryInformation OPTIONAL,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+ModifyEntryResult ::= CHOICE {
+ null NULL,
+ information
+-- OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+ CHOICE {
+ unsignedModifyEntryResult ModifyEntryResultData,
+ signedModifyEntryResult [0] SEQUENCE {
+ modifyEntryResult ModifyEntryResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+ }
+}
+
+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}}
+ 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,
+ exclusions [22] Exclusions OPTIONAL,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+ModifyDNResultData ::= SEQUENCE {
+ newRDN RelativeDistinguishedName,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+
+ModifyDNResult ::= CHOICE {
+ null NULL,
+ information
+-- OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+ CHOICE {
+ unsignedModifyDNResult ModifyDNResultData,
+ signedModifyDNResult [0] SEQUENCE {
+ modifyDNResult ModifyDNResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+ }
+}
+
+
+-- Errors and parameters
+
+abandoned ERROR ::= { -- not literally an "error"
+ PARAMETER --OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}-- Abandoned
+ CODE id-errcode-abandoned
+}
+
+AbandonedData ::= SET {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+Abandoned ::= CHOICE {
+ unsignedAbandoned AbandonedData,
+ signedAbandoned SEQUENCE {
+ abandoned AbandonedData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+abandonFailed ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- AbandonFailedError
+-- {SET {problem [0] AbandonProblem,
+-- operation [1] InvokeId,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandonFailed
+}
+
+AbandonFailedErrorData ::= SET {
+ problem [0] AbandonProblem,
+ operation [1] InvokeId,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+AbandonFailedError ::= CHOICE {
+ unsignedAbandonFailedError AbandonFailedErrorData,
+ signedAbandonFailedError SEQUENCE {
+ abandonFailedError AbandonFailedErrorData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)}
+
+attributeError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- AttributeError
+-- {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
+}
+
+AttributeErrorData ::= SET {
+ object [0] Name,
+ problems
+ [1] SET OF
+ SEQUENCE {problem [0] AttributeProblem,
+ type [1] AttributeType,
+ value [2] AttributeValue OPTIONAL},
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+AttributeError ::= CHOICE {
+ unsignedAttributeError AttributeErrorData,
+ signedAttributeError SEQUENCE {
+ attributeError AttributeErrorData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+AttributeProblem ::= INTEGER {
+ noSuchAttributeOrValue(1), invalidAttributeSyntax(2),
+ undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5),
+ attributeOrValueAlreadyExists(6), contextViolation(7)}
+
+nameError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- NameError
+-- {SET {problem [0] NameProblem,
+-- matched [1] Name,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-nameError
+}
+
+NameErrorData ::= SET {
+ problem [0] NameProblem,
+ matched [1] Name,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+
+NameError ::= CHOICE {
+ unsignedNameError NameErrorData,
+ signedNameError SEQUENCE {
+ nameError NameErrorData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+NameProblem ::= INTEGER {
+ noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3),
+ aliasDereferencingProblem(4), contextProblem(5)}
+
+referral ERROR ::= { -- not literally an "error"
+ PARAMETER --OPTIONALLY-PROTECTED-- Referral
+-- {SET {candidate [0] ContinuationReference,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-referral
+}
+
+ReferralData ::= SET {
+ candidate [0] ContinuationReference,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+
+}
+
+Referral ::= CHOICE {
+ unsignedReferral ReferralData,
+ signedReferral SEQUENCE {
+ referral ReferralData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+securityError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- SecurityError
+-- {SET {problem [0] SecurityProblem,
+-- spkmInfo [1] SPKM-ERROR,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-securityError
+}
+
+SecurityErrorData ::= SET {
+ problem [0] SecurityProblem,
+ spkmInfo [1] -- SPKM-ERROR -- ANY,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+SecurityError ::= CHOICE {
+ unsignedSecurityError SecurityErrorData,
+ signedSecurityError SEQUENCE {
+ securityError SecurityErrorData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+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-- ServiceError
+-- {SET {problem [0] ServiceProblem,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-serviceError
+}
+
+ServiceErrorData ::= SET {
+ problem [0] ServiceProblem,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+ServiceError ::= CHOICE {
+ unsignedServiceError ServiceErrorData,
+ signedServiceError SEQUENCE {
+ serviceError ServiceErrorData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+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),
+ unsupportedMatchingUse(15), ambiguousKeyAttributes(16),
+ saslBindInProgress(17)
+}
+
+
+updateError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- UpdateError
+-- {SET {problem [0] UpdateProblem,
+-- attributeInfo
+-- [1] SET SIZE (1..MAX) OF
+-- CHOICE {attributeType AttributeType,
+-- attribute Attribute} OPTIONAL,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-updateError
+}
+
+UpdateErrorData ::= SET {
+ problem [0] UpdateProblem,
+ attributeInfo
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+UpdateError ::= CHOICE {
+ unsignedUpdateError UpdateErrorData,
+ signedUpdateError SEQUENCE {
+ updateError UpdateErrorData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+UpdateProblem ::= INTEGER {
+ namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3),
+ notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6),
+ objectClassModificationProhibited(7), noSuchSuperior(8), notAncestor(9),
+ parentNotAncestor(10), hierarchyRuleViolation(11), familyRuleViolation(12)
+}
+
+-- attribute types
+--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/epan/dissectors/asn1/dap/dap.cnf b/epan/dissectors/asn1/dap/dap.cnf
new file mode 100644
index 0000000000..c20d57af02
--- /dev/null
+++ b/epan/dissectors/asn1/dap/dap.cnf
@@ -0,0 +1,368 @@
+#.TYPE_ATTR
+# X509AF also exports the type Time. This makes sure asn2wrs uses the locally defined version.
+Time TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(dap_Time_vals) BITMASK = 0
+#.END
+
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+#.IMPORT ../crmf/crmf-exp.cnf
+#.IMPORT ../dsp/dsp-exp.cnf
+#.IMPORT ../disp/disp-exp.cnf
+#.IMPORT ../ros/ros-exp.cnf
+#.IMPORT ../acse/acse-exp.cnf
+
+#.OMIT_ASSIGNMENT
+DAP-InvokeIDSet
+#.END
+
+#.NO_EMIT ONLY_VALS
+Name
+
+#.MODULE_IMPORT
+AttributeCertificateDefinitions x509af
+BasicAccessControl crmf
+
+# Forward declaration of classes
+#.CLASS CONTEXT
+&Type
+&Assertion
+&id ObjectIdentifierType
+#.END
+
+#.CLASS CONTRACT
+&connection ClassReference CONNECTION-PACKAGE
+&OperationsOf ClassReference OPERATION-PACKAGE
+&InitiatorConsumerOf ClassReference OPERATION-PACKAGE
+&InitiatorSupplierOf ClassReference OPERATION-PACKAGE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS APPLICATION-CONTEXT
+&bind-operation ClassReference OPERATION
+&Operations ClassReference OPERATION
+&applicationContextName ObjectIdentifierType
+#.END
+
+#.CLASS OBJECT-CLASS
+&Superclasses ClassReference OBJECT-CLASS
+&kind TypeReference ObjectClassKind
+&MandatoryAttributes ClassReference ATTRIBUTE
+&OptionalAttributes ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS ATTRIBUTE
+&derivation ClassReference ATTRIBUTE
+&Type
+&equality-match ClassReference MATCHING-RULE
+&ordering-match ClassReference MATCHING-RULE
+&substrings-match ClassReference MATCHING-RULE
+&single-valued BooleanType
+&collective BooleanType
+&no-user-modification BooleanType
+&usage TypeReference AttributeUsage
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.OMIT_ASSIGNMENT
+CommonArguments
+CommonResults
+CommonResultsSeq
+#.END
+
+#.EXPORTS
+Filter
+Referral
+EntryModification
+ContextSelection
+DirectoryBindArgument
+DirectoryBindError
+ReadArgument
+ReadResult
+ListArgument
+ListResult
+SearchArgument
+SearchResult
+AddEntryArgument
+AddEntryResult
+CompareArgument
+CompareResult
+RemoveEntryArgument
+RemoveEntryResult
+ModifyEntryArgument
+ModifyEntryResult
+ModifyDNArgument
+ModifyDNResult
+AbandonArgument
+AbandonResult
+AttributeError
+NameError
+ServiceError
+Abandoned
+SearchControlOptions
+SecurityError
+SecurityProblem
+SecurityParameters EXTERN WS_DLL
+ServiceControlOptions
+AbandonFailedError
+UpdateError
+HierarchySelections
+FamilyGrouping
+FamilyReturn
+
+#.TYPE_RENAME
+FamilyEntry/information FamilyInformation
+AbandonResult/information AbandonInformation
+AddEntryResult/information AddEntryInformation
+RemoveEntryResult/information RemoveEntryInformation
+ModifyEntryResult/information ModifyEntryInformation
+ModifyDNResult/information ModifyDNInformation
+
+EntryInformation/information/_item EntryInformationItem
+
+#.FIELD_RENAME
+
+ModifyRights/_item/item/attribute attribute-type
+
+ModifyRights/_item/item/entry item-entry
+AddEntryArgumentData/entry add-entry
+
+EntryInformation/information entry-information
+FamilyEntry/information family-information
+AbandonResult/information abandon-information
+AddEntryResult/information add-entry-information
+RemoveEntryResult/information remove-entry-information
+ModifyEntryResult/information modify-entry-information
+ModifyDNResult/information modify-dn-information
+
+EntryInformation/information/_item entry-information-item
+
+Filter/item filter-item
+
+NameErrorData/matched matched-name
+
+SecurityParameters/name distinguished-name
+SimpleCredentials/name distinguished-name
+StrongCredentials/name distinguished-name
+
+ModifyDNArgument/object distinguished-name
+
+AbandonFailedErrorData/problem abandon-failed-problem
+ServiceErrorData/problem service-error-problem
+AttributeErrorData/problems/_item/problem attribute-error-problem
+NameErrorData/problem name-error-problem
+SecurityErrorData/problem security-error-problem
+UpdateErrorData/problem update-error-problem
+
+DirectoryBindErrorData/error/securityError securityProblem
+SecurityError/signedSecurityError/securityError securityErrorData
+
+DirectoryBindErrorData/error/serviceError serviceProblem
+
+FilterItem/substrings/type sunstringType
+
+ModifyRights/_item/item/value value-assertion
+
+TokenData/name distinguished-name
+
+TokenData/time utctime
+
+PagedResultsRequest/queryReference pagedResultsQueryReference
+
+EntryInformationSelection/extraAttributes/select extraSelect
+
+SaslCredentials/credentials saslCredentials
+
+# This table creates the value_sting to name DAP operation codes and errors
+# in file packet-dap-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* DAP OPERATIONS */
+const value_string dap_opr_code_string_vals[] = {
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* DAP ERRORS */
+static const value_string dap_err_code_string_vals[] = {
+#.TABLE_BODY ERROR
+ { %(&errorCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# Create a table of opcode and corresponding args and res
+#.TABLE11_HDR
+static const ros_opr_t dap_opr_tab[] = {
+#.TABLE11_BODY OPERATION
+ /* %(_name)s */
+ { %(&operationCode)-25s, %(_argument_pdu)s, %(_result_pdu)s },
+#.TABLE11_FTR
+ { 0, (dissector_t)(-1), (dissector_t)(-1) },
+};
+#.END
+
+#.TABLE21_HDR
+static const ros_err_t dap_err_tab[] = {
+#.TABLE21_BODY ERROR
+ /* %(_name)s*/
+ { %(&errorCode)s, %(_parameter_pdu)s },
+#.TABLE21_FTR
+ { 0, (dissector_t)(-1) },
+};
+#.END
+
+
+#.PDU
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+#.END
+
+#.FN_BODY FilterItem/substrings/strings/_item/initial
+ proto_item *it;
+ it = proto_tree_add_item(tree, hf_index, tvb, offset, -1, ENC_BIG_ENDIAN);
+ proto_item_append_text(it," XXX: Not yet implemented!");
+
+#.FN_BODY FilterItem/substrings/strings/_item/any
+ /* XXX: not yet implemented */
+
+#.FN_BODY FilterItem/substrings/strings/_item/final
+ /* XXX: not yet implemented */
+
+#.FN_BODY MatchingRuleAssertion/matchValue
+ /* XXX: not yet implemented */
+
+#.FN_BODY SpkmCredentials/req
+ /* XXX: not yet implemented */
+
+#.FN_BODY SpkmCredentials/rep
+ /* XXX: not yet implemented */
+
+#.FN_BODY SecurityErrorData/spkmInfo
+ /* XXX: not yet implemented */
+
+#.FN_BODY DirectoryBindArgument
+
+ guint32 len;
+
+ /* check and see if this is an empty set */
+ dissect_ber_length(actx->pinfo, tree, tvb, offset+1, &len, NULL);
+
+ if(len == 0) {
+ /* it's an empty set - i.e anonymous (assuming version is DEFAULTed) */
+ proto_tree_add_expert(tree, actx->pinfo, &ei_dap_anonymous, tvb, offset, -1);
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " anonymous");
+
+ }
+ /* do the default thing */
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY SimpleCredentials
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", x509if_get_last_dn());
+
+
+
+
+#.FN_BODY PagedResultsRequest/queryReference VAL_PTR=&out_tvb
+ tvbuff_t *out_tvb;
+ int i;
+ int len;
+
+ %(DEFAULT_BODY)s
+
+ if(out_tvb) {
+ len = tvb_reported_length(out_tvb);
+ /* now see if we can add a string representation */
+ for(i=0; i<len; i++)
+ if(!g_ascii_isprint(tvb_get_guint8(out_tvb, i)))
+ break;
+
+ if(i == len) {
+ if(actx->created_item) {
+
+ proto_item_append_text(actx->created_item," (");
+ for(i=0; i<len; i++)
+ proto_item_append_text(actx->created_item,"%%c",tvb_get_guint8(out_tvb,i));
+ proto_item_append_text(actx->created_item,")");
+ }
+ }
+ }
+
+#.FN_PARS SecurityProblem
+ VAL_PTR = &problem
+
+#.FN_BODY SecurityProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, dap_SecurityProblem_vals, "SecurityProblem(%%d)"));
+
+#.FN_PARS ServiceProblem
+ VAL_PTR = &problem
+
+#.FN_BODY ServiceProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, dap_ServiceProblem_vals, "ServiceProblem(%%d)"));
+
+#.FN_PARS UpdateProblem
+ VAL_PTR = &problem
+
+#.FN_BODY UpdateProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, dap_UpdateProblem_vals, "UpdateProblem(%%d)"));
+
+#.FN_PARS LimitProblem
+ VAL_PTR = &problem
+
+#.FN_BODY LimitProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, dap_LimitProblem_vals, "LimitProblem(%%d)"));
+
+#.END
+
+
+#.FN_BODY SearchArgumentData/subset VAL_PTR=&subset
+ guint32 subset;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(subset, dap_T_subset_vals, "Subset(%%d)"));
+
+
+#.FN_BODY Name
+ const char *dn;
+
+ %(DEFAULT_BODY)s
+
+ dn = x509if_get_last_dn();
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", (dn && *dn) ? dn : "(root)");
+
diff --git a/epan/dissectors/asn1/dap/packet-dap-template.c b/epan/dissectors/asn1/dap/packet-dap-template.c
new file mode 100644
index 0000000000..c5592bce1f
--- /dev/null
+++ b/epan/dissectors/asn1/dap/packet-dap-template.c
@@ -0,0 +1,182 @@
+/* packet-dap.c
+ * Routines for X.511 (X.500 Directory Asbtract Service) and X.519 DAP packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/expert.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+#include "packet-idmp.h"
+
+#include "packet-x509if.h"
+#include "packet-x509af.h"
+#include "packet-x509sat.h"
+#include "packet-crmf.h"
+
+#include "packet-dsp.h"
+#include "packet-disp.h"
+#include "packet-dap.h"
+#include <epan/strutil.h>
+
+/* we don't have a separate dissector for X519 -
+ most of DAP is defined in X511 */
+#define PNAME "X.519 Directory Access Protocol"
+#define PSNAME "DAP"
+#define PFNAME "dap"
+
+void proto_register_dap(void);
+void proto_reg_handoff_dap(void);
+
+static guint global_dap_tcp_port = 102;
+static dissector_handle_t tpkt_handle;
+static void prefs_register_dap(void); /* forward declaration for use in preferences registration */
+
+
+/* Initialize the protocol and registered fields */
+static int proto_dap = -1;
+
+
+#include "packet-dap-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_dap = -1;
+#include "packet-dap-ett.c"
+
+static expert_field ei_dap_anonymous = EI_INIT;
+
+#include "packet-dap-val.h"
+
+#include "packet-dap-table.c" /* operation and error codes */
+
+#include "packet-dap-fn.c"
+
+#include "packet-dap-table11.c" /* operation argument/result dissectors */
+#include "packet-dap-table21.c" /* error dissector */
+
+static const ros_info_t dap_ros_info = {
+ "DAP",
+ &proto_dap,
+ &ett_dap,
+ dap_opr_code_string_vals,
+ dap_opr_tab,
+ dap_err_code_string_vals,
+ dap_err_tab
+};
+
+
+/*--- proto_register_dap -------------------------------------------*/
+void proto_register_dap(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-dap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_dap,
+#include "packet-dap-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_dap_anonymous, { "dap.anonymous", PI_PROTOCOL, PI_NOTE, "Anonymous", EXPFILL }},
+ };
+
+ module_t *dap_module;
+ expert_module_t* expert_dap;
+
+ /* Register protocol */
+ proto_dap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_dap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_dap = expert_register_protocol(proto_dap);
+ expert_register_field_array(expert_dap, ei, array_length(ei));
+
+ /* Register our configuration options for DAP, particularly our port */
+
+ dap_module = prefs_register_protocol_subtree("OSI/X.500", proto_dap, prefs_register_dap);
+
+ prefs_register_uint_preference(dap_module, "tcp.port", "DAP TCP Port",
+ "Set the port for DAP operations (if other"
+ " than the default of 102)",
+ 10, &global_dap_tcp_port);
+
+}
+
+
+/*--- proto_reg_handoff_dap --- */
+void proto_reg_handoff_dap(void) {
+
+ /* #include "packet-dap-dis-tab.c" */
+
+ /* APPLICATION CONTEXT */
+
+ oid_add_from_string("id-ac-directory-access","2.5.3.1");
+
+ /* ABSTRACT SYNTAXES */
+
+ /* Register DAP with ROS (with no use of RTSE) */
+ register_ros_protocol_info("2.5.9.1", &dap_ros_info, 0, "id-as-directory-access", FALSE);
+
+ register_idmp_protocol_info("2.5.33.0", &dap_ros_info, 0, "dap-ip");
+
+ /* remember the tpkt handler for change in preferences */
+ tpkt_handle = find_dissector("tpkt");
+
+ /* AttributeValueAssertions */
+ x509if_register_fmt(hf_dap_equality, "=");
+ x509if_register_fmt(hf_dap_greaterOrEqual, ">=");
+ x509if_register_fmt(hf_dap_lessOrEqual, "<=");
+ x509if_register_fmt(hf_dap_approximateMatch, "=~");
+ /* AttributeTypes */
+ x509if_register_fmt(hf_dap_present, "= *");
+
+}
+
+
+static void
+prefs_register_dap(void)
+{
+ static guint tcp_port = 0;
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_dap_tcp_port;
+
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_add_uint("tcp.port", global_dap_tcp_port, tpkt_handle);
+
+}
diff --git a/epan/dissectors/asn1/dap/packet-dap-template.h b/epan/dissectors/asn1/dap/packet-dap-template.h
new file mode 100644
index 0000000000..cedafb133b
--- /dev/null
+++ b/epan/dissectors/asn1/dap/packet-dap-template.h
@@ -0,0 +1,29 @@
+/* packet-dap.h
+ * Routines for X.511 (X.500 Directory Access Protocol) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_DAP_H
+#define PACKET_DAP_H
+
+#include "packet-dap-exp.h"
+
+#endif /* PACKET_DAP_H */
diff --git a/epan/dissectors/asn1/disp/CMakeLists.txt b/epan/dissectors/asn1/disp/CMakeLists.txt
new file mode 100644
index 0000000000..38bb4787f5
--- /dev/null
+++ b/epan/dissectors/asn1/disp/CMakeLists.txt
@@ -0,0 +1,64 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME disp )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../dap/dap-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../dop/dop-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../dsp/dsp-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+)
+
+set( EXPORT_DEPENDS
+ "${CMAKE_CURRENT_BINARY_DIR}/../dop/dop-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/disp/Makefile.am b/epan/dissectors/asn1/disp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/disp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/disp/Makefile.common b/epan/dissectors/asn1/disp/Makefile.common
new file mode 100644
index 0000000000..113d696005
--- /dev/null
+++ b/epan/dissectors/asn1/disp/Makefile.common
@@ -0,0 +1,69 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=disp
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXPORT_DEPENDS = \
+ $(builddir)/../dop/dop-exp.cnf
+
+EXTRA_CNF = \
+ $(builddir)/../dap/dap-exp.cnf \
+ $(builddir)/../dop/dop-exp.cnf \
+ $(builddir)/../dsp/dsp-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf
+
+$(builddir)/../dap/dap-exp.cnf:
+ (cd $(builddir)/../dap && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../dop/dop-exp.cnf:
+ (cd $(builddir)/../dop && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../dsp/dsp-exp.cnf:
+ (cd $(builddir)/../dsp && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/disp/Makefile.nmake b/epan/dissectors/asn1/disp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/disp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/disp/disp.asn b/epan/dissectors/asn1/disp/disp.asn
new file mode 100644
index 0000000000..cc76ebf472
--- /dev/null
+++ b/epan/dissectors/asn1/disp/disp.asn
@@ -0,0 +1,405 @@
+-- Module DirectoryShadowAbstractService (X.525:02/2001)
+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) 4}
+ Attribute, AttributeType, CONTEXT, DistinguishedName,
+ RelativeDistinguishedName, SubtreeSpecification
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 4}
+ OPERATIONAL-BINDING, OperationalBindingID
+ FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+ opBindingManagement(18) 4}
+ DSEType, SupplierAndConsumers
+ FROM DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ dsaOperationalAttributeTypes(22) 4}
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28)
+ 4}
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ CommonResultsSeq, ContextSelection, directoryBind, directoryUnbind, DirectoryBindArgument, DirectoryBindError,
+ EntryModification, SecurityParameters
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 4}
+ -- from ITU-T Rec. X.518 | ISO/IEC 9594-4
+ AccessPoint
+ FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
+ distributedOperations(3) 4}
+ -- 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) 4}
+ 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) 4}
+ AlgorithmIdentifier, CertificationPath, ENCRYPTED{}, SIGNATURE{}, SIGNED{}
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 4}
+ -- 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
+DSAShadowBindArgument ::= DirectoryBindArgument
+DSAShadowBindResult ::= DirectoryBindArgument
+DSAShadowBindError ::= DirectoryBindError
+
+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
+
+EstablishParameter ::= NULL
+
+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-- OBJECT IDENTIFIER } 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, -- shall 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
+--}
+
+CoordinateShadowUpdateArgumentData ::=
+-- OPTIONALLY-PROTECTED
+-- {[0] -- SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ updateStrategy
+ CHOICE {standard
+ ENUMERATED {noChanges(0), incremental(1),
+ total(2)},
+ other EXTERNAL},
+ securityParameters SecurityParameters OPTIONAL} --}
+
+-- expand OPTIONALLY-PROTECTED macro
+CoordinateShadowUpdateArgument ::= CHOICE {
+ unsignedCoordinateShadowUpdateArgument [0] CoordinateShadowUpdateArgumentData,
+ signedCoordinateShadowUpdateArgument SEQUENCE {
+ coordinateShadowUpdateArgument [0] CoordinateShadowUpdateArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+CoordinateShadowUpdateResult ::= CHOICE {
+ null NULL,
+ information Information
+-- OPTIONALLY-PROTECTED{ [0] SEQUENCE {agreementID AgreementID,
+-- lastUpdate Time OPTIONAL,
+-- COMPONENTS OF CommonResultsSeq
+-- }}
+}
+
+InformationData ::= SEQUENCE {
+ agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+-- COMPONENTS OF CommonResultsSeq
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ }
+
+-- expand OPTIONALLY-PROTECTED macro
+Information ::= CHOICE {
+ unsignedInformation [0] InformationData,
+ signedInformation SEQUENCE {
+ information [0] InformationData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+--requestShadowUpdate OPERATION ::= {
+-- ARGUMENT RequestShadowUpdateArgument
+-- RESULT RequestShadowUpdateResult
+-- ERRORS {shadowError}
+-- CODE id-opcode-requestShadowUpdate
+--}
+
+RequestShadowUpdateArgumentData ::=
+-- OPTIONALLY-PROTECTED
+-- { [0] -- SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ requestedStrategy
+ CHOICE {standard ENUMERATED {incremental(1), total(2)},
+ other EXTERNAL},
+ securityParameters SecurityParameters OPTIONAL} --}
+
+-- expand OPTIONALLY-PROTECTED macro
+RequestShadowUpdateArgument ::= CHOICE {
+ unsignedRequestShadowUpdateArgument [0] RequestShadowUpdateArgumentData,
+ signedRequestShadowUpdateArgument SEQUENCE {
+ requestShadowUpdateArgument [0] RequestShadowUpdateArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+RequestShadowUpdateResult ::= CHOICE {
+ null NULL,
+ information 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
+--}
+
+UpdateShadowArgumentData ::=
+-- OPTIONALLY-PROTECTED
+-- { [0] -- SEQUENCE {agreementID AgreementID,
+ updateTime Time,
+ updateWindow UpdateWindow OPTIONAL,
+ updatedInfo RefreshInformation,
+ securityParameters SecurityParameters OPTIONAL} --}
+
+-- expand OPTIONALLY-PROTECTED macro
+UpdateShadowArgument ::= CHOICE {
+ unsignedUpdateShadowArgument [0] UpdateShadowArgumentData,
+ signedUpdateShadowArgument SEQUENCE {
+ updateShadowArgument [0] UpdateShadowArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+UpdateShadowResult ::= CHOICE {
+ null NULL,
+ information 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
+ sDSE SDSEContent OPTIONAL,
+ subtree SET --SIZE (1..MAX)-- OF Subtree OPTIONAL
+}
+
+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
+ShadowErrorData ::= -- ERROR ::= {
+-- PARAMETER OPTIONALLY-PROTECTED-SEQ
+-- { --SEQUENCE {problem ShadowProblem,
+ lastUpdate Time OPTIONAL,
+ updateWindow UpdateWindow OPTIONAL,
+-- COMPONENTS OF CommonResultsSeq}}
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+-- CODE id-errcode-shadowError
+}
+
+-- OPTIONALLY-PROTECTED-SEQ macro expansion
+ShadowError ::= CHOICE {
+ unsignedShadowError ShadowErrorData,
+ signedShadowError [0] SEQUENCE {
+ shadowError ShadowErrorData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+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/epan/dissectors/asn1/disp/disp.cnf b/epan/dissectors/asn1/disp/disp.cnf
new file mode 100644
index 0000000000..f4437b20fa
--- /dev/null
+++ b/epan/dissectors/asn1/disp/disp.cnf
@@ -0,0 +1,107 @@
+#.TYPE_ATTR
+Time TYPE = FT_STRING DISPLAY = BASE_NONE STRING = NULL BITMASK = 0
+
+#.MODULE_IMPORT
+OperationalBindingManagement dop
+
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../dap/dap-exp.cnf
+#.IMPORT ../dsp/dsp-exp.cnf
+#.IMPORT ../dop/dop-exp.cnf
+
+#.EXPORTS
+AgreementID
+
+#.NO_EMIT ONLY_VALS
+CoordinateShadowUpdateArgument
+RequestShadowUpdateArgument
+UpdateShadowArgument
+ShadowError
+
+#.TYPE_RENAME
+CoordinateShadowUpdateArgumentData/updateStrategy/standard StandardUpdate
+
+#.FIELD_RENAME
+UnitOfReplication/attributes replication-attributes
+SubordinateChanges/changes subordinate-changes
+ModificationParameter/secondaryShadows modifiedSecondaryShadows
+CoordinateShadowUpdateArgumentData/updateStrategy/standard standardUpdate
+Information/signedInformation/information information-data
+
+#.REGISTER
+ShadowingAgreementInfo S dop.oid "agreement.2.5.19.1"
+EstablishParameter S dop.oid "establish.rolea.2.5.19.1"
+EstablishParameter S dop.oid "establish.roleb.2.5.19.1"
+ModificationParameter S dop.oid "modify.rolea.2.5.19.1"
+ModificationParameter S dop.oid "modify.roleb.2.5.19.1"
+
+
+
+
+#.FN_BODY RequestShadowUpdateArgumentData/requestedStrategy/standard VAL_PTR=&update
+ guint32 update;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(update, disp_T_standard_vals, "standard(%%d"));
+
+#.FN_PARS RefreshInformation
+ VAL_PTR = &update
+
+#.FN_BODY RefreshInformation
+ guint32 update;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(update, disp_RefreshInformation_vals, "unknown(%%d)"));
+
+#.END
+
+
+#.FN_BODY CoordinateShadowUpdateArgumentData/updateStrategy/standard VAL_PTR = &update
+ guint32 update;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(update, disp_StandardUpdate_vals, "unknown(%%d)"));
+
+#.FN_PARS CoordinateShadowUpdateResult
+ VAL_PTR = &update
+
+#.FN_BODY CoordinateShadowUpdateResult
+ guint32 update;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(update, disp_CoordinateShadowUpdateResult_vals, "unknown(%%d)"));
+
+#.FN_PARS RequestShadowUpdateResult
+ VAL_PTR = &update
+
+#.FN_BODY RequestShadowUpdateResult
+ guint32 update;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(update, disp_RequestShadowUpdateResult_vals, "unknown(%%d)"));
+
+#.FN_PARS UpdateShadowResult
+ VAL_PTR = &update
+
+#.FN_BODY UpdateShadowResult
+ guint32 update;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(update, disp_UpdateShadowResult_vals, "unknown(%%d)"));
+
+#.FN_PARS ShadowProblem
+ VAL_PTR = &problem
+
+#.FN_BODY ShadowProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, disp_ShadowProblem_vals, "ShadowProblem(%%d)"));
diff --git a/epan/dissectors/asn1/disp/packet-disp-template.c b/epan/dissectors/asn1/disp/packet-disp-template.c
new file mode 100644
index 0000000000..1250d38e89
--- /dev/null
+++ b/epan/dissectors/asn1/disp/packet-disp-template.c
@@ -0,0 +1,290 @@
+/* packet-disp.c
+ * Routines for X.525 (X.500 Directory Shadow Asbtract Service) and X.519 DISP packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+#include "packet-rtse.h"
+
+#include "packet-x509if.h"
+#include "packet-x509af.h"
+#include "packet-x509sat.h"
+#include "packet-crmf.h"
+
+#include "packet-dop.h"
+#include "packet-dap.h"
+#include "packet-dsp.h"
+#include "packet-disp.h"
+
+
+/* we don't have a separate dissector for X519 -
+ and most of DISP is defined in X525 */
+#define PNAME "X.519 Directory Information Shadowing Protocol"
+#define PSNAME "DISP"
+#define PFNAME "disp"
+
+void proto_register_disp(void);
+void proto_reg_handoff_disp(void);
+
+static guint global_disp_tcp_port = 102;
+static dissector_handle_t tpkt_handle;
+static void prefs_register_disp(void); /* forward declaration for use in preferences registration */
+
+
+/* Initialize the protocol and registered fields */
+static int proto_disp = -1;
+
+#include "packet-disp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_disp = -1;
+#include "packet-disp-ett.c"
+
+static expert_field ei_disp_unsupported_opcode = EI_INIT;
+static expert_field ei_disp_unsupported_errcode = EI_INIT;
+static expert_field ei_disp_unsupported_pdu = EI_INIT;
+static expert_field ei_disp_zero_pdu = EI_INIT;
+
+#include "packet-disp-fn.c"
+
+/*
+* Dissect DISP PDUs inside a ROS PDUs
+*/
+static int
+dissect_disp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item;
+ proto_tree *tree;
+ struct SESSION_DATA_STRUCTURE* session;
+ int (*disp_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
+ const char *disp_op_name;
+ asn1_ctx_t asn1_ctx;
+
+ /* do we have operation information from the ROS dissector */
+ if (data == NULL)
+ return 0;
+ session = (struct SESSION_DATA_STRUCTURE*)data;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ asn1_ctx.private_data = session;
+
+ item = proto_tree_add_item(parent_tree, proto_disp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_disp);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "DISP");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ switch(session->ros_op & ROS_OP_MASK) {
+ case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
+ disp_dissector = dissect_disp_DSAShadowBindArgument;
+ disp_op_name = "Shadow-Bind-Argument";
+ break;
+ case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
+ disp_dissector = dissect_disp_DSAShadowBindResult;
+ disp_op_name = "Shadow-Bind-Result";
+ break;
+ case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
+ disp_dissector = dissect_disp_DSAShadowBindError;
+ disp_op_name = "Shadow-Bind-Error";
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 1: /* requestShadowUpdate */
+ disp_dissector = dissect_disp_RequestShadowUpdateArgument;
+ disp_op_name = "Request-Shadow-Update-Argument";
+ break;
+ case 2: /* updateShadow*/
+ disp_dissector = dissect_disp_UpdateShadowArgument;
+ disp_op_name = "Update-Shadow-Argument";
+ break;
+ case 3: /* coordinateShadowUpdate */
+ disp_dissector = dissect_disp_CoordinateShadowUpdateArgument;
+ disp_op_name = "Coordinate-Shadow-Update-Argument";
+ break;
+ default:
+ proto_tree_add_expert_format(tree, pinfo, &ei_disp_unsupported_opcode, tvb, offset, -1,
+ "Unsupported DISP opcode (%d)", session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 1: /* requestShadowUpdate */
+ disp_dissector = dissect_disp_RequestShadowUpdateResult;
+ disp_op_name = "Request-Shadow-Result";
+ break;
+ case 2: /* updateShadow */
+ disp_dissector = dissect_disp_UpdateShadowResult;
+ disp_op_name = "Update-Shadow-Result";
+ break;
+ case 3: /* coordinateShadowUpdate */
+ disp_dissector = dissect_disp_CoordinateShadowUpdateResult;
+ disp_op_name = "Coordinate-Shadow-Update-Result";
+ break;
+ default:
+ proto_tree_add_expert_format(tree, pinfo, &ei_disp_unsupported_opcode, tvb, offset, -1,
+ "Unsupported DISP opcode (%d)", session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 1: /* shadowError */
+ disp_dissector = dissect_disp_ShadowError;
+ disp_op_name = "Shadow-Error";
+ break;
+ default:
+ proto_tree_add_expert_format(tree, pinfo, &ei_disp_unsupported_errcode, tvb, offset, -1,
+ "Unsupported DISP errcode (%d)", session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ default:
+ proto_tree_add_expert(tree, pinfo, &ei_disp_unsupported_pdu, tvb, offset, -1);
+ return tvb_captured_length(tvb);
+ }
+
+ if(disp_dissector) {
+ col_set_str(pinfo->cinfo, COL_INFO, disp_op_name);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0){
+ old_offset=offset;
+ offset=(*disp_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ if(offset == old_offset){
+ proto_tree_add_expert(tree, pinfo, &ei_disp_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+
+/*--- proto_register_disp -------------------------------------------*/
+void proto_register_disp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-disp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_disp,
+#include "packet-disp-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_disp_unsupported_opcode, { "disp.unsupported_opcode", PI_UNDECODED, PI_WARN, "Unsupported DISP opcode", EXPFILL }},
+ { &ei_disp_unsupported_errcode, { "disp.unsupported_errcode", PI_UNDECODED, PI_WARN, "Unsupported DISP errcode", EXPFILL }},
+ { &ei_disp_unsupported_pdu, { "disp.unsupported_pdu", PI_UNDECODED, PI_WARN, "Unsupported DISP PDU", EXPFILL }},
+ { &ei_disp_zero_pdu, { "disp.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte DISP PDU", EXPFILL }},
+ };
+
+ module_t *disp_module;
+ expert_module_t* expert_disp;
+
+ /* Register protocol */
+ proto_disp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("disp", dissect_disp, proto_disp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_disp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_disp = expert_register_protocol(proto_disp);
+ expert_register_field_array(expert_disp, ei, array_length(ei));
+
+ /* Register our configuration options for DISP, particularly our port */
+
+ disp_module = prefs_register_protocol_subtree("OSI/X.500", proto_disp, prefs_register_disp);
+
+ prefs_register_uint_preference(disp_module, "tcp.port", "DISP TCP Port",
+ "Set the port for DISP operations (if other"
+ " than the default of 102)",
+ 10, &global_disp_tcp_port);
+
+}
+
+
+/*--- proto_reg_handoff_disp --- */
+void proto_reg_handoff_disp(void) {
+ dissector_handle_t disp_handle;
+
+ #include "packet-disp-dis-tab.c"
+
+ /* APPLICATION CONTEXT */
+
+ oid_add_from_string("id-ac-shadow-consumer-initiated","2.5.3.4");
+ oid_add_from_string("id-ac-shadow-supplier-initiated","2.5.3.5");
+ oid_add_from_string("id-ac-reliable-shadow-consumer-initiated","2.5.3.6");
+ oid_add_from_string("id-ac-reliable-shadow-supplier-initiated","2.5.3.7");
+
+ /* ABSTRACT SYNTAXES */
+
+ disp_handle = find_dissector("disp");
+
+ register_ros_oid_dissector_handle("2.5.9.3", disp_handle, 0, "id-as-directory-shadow", FALSE);
+ register_rtse_oid_dissector_handle("2.5.9.5", disp_handle, 0, "id-as-directory-reliable-shadow", FALSE);
+ register_rtse_oid_dissector_handle("2.5.9.6", disp_handle, 0, "id-as-directory-reliable-binding", FALSE);
+
+ /* OPERATIONAL BINDING */
+ oid_add_from_string("id-op-binding-shadow","2.5.1.0.5.1");
+
+ tpkt_handle = find_dissector("tpkt");
+
+ /* DNs */
+ x509if_register_fmt(hf_disp_contextPrefix, "cp=");
+
+}
+
+
+static void
+prefs_register_disp(void)
+{
+ static guint tcp_port = 0;
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_disp_tcp_port;
+
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_add_uint("tcp.port", global_disp_tcp_port, tpkt_handle);
+
+}
diff --git a/epan/dissectors/asn1/disp/packet-disp-template.h b/epan/dissectors/asn1/disp/packet-disp-template.h
new file mode 100644
index 0000000000..c627fc9f7c
--- /dev/null
+++ b/epan/dissectors/asn1/disp/packet-disp-template.h
@@ -0,0 +1,29 @@
+/* packet-disp.h
+ * Routines for X.525 (X.400 Message Transfer) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_DISP_H
+#define PACKET_DISP_H
+
+#include "packet-disp-exp.h"
+
+#endif /* PACKET_DISP_H */
diff --git a/epan/dissectors/asn1/dop/CMakeLists.txt b/epan/dissectors/asn1/dop/CMakeLists.txt
new file mode 100644
index 0000000000..9df5fa05cb
--- /dev/null
+++ b/epan/dissectors/asn1/dop/CMakeLists.txt
@@ -0,0 +1,61 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME dop )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../dap/dap-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../dsp/dsp-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../crmf/crmf-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/dop/Makefile.am b/epan/dissectors/asn1/dop/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/dop/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/dop/Makefile.common b/epan/dissectors/asn1/dop/Makefile.common
new file mode 100644
index 0000000000..13a68e96c3
--- /dev/null
+++ b/epan/dissectors/asn1/dop/Makefile.common
@@ -0,0 +1,70 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=dop
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../dap/dap-exp.cnf \
+ $(builddir)/../dsp/dsp-exp.cnf \
+ $(builddir)/../crmf/crmf-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+$(builddir)/../dap/dap-exp.cnf:
+ (cd $(builddir)/../dap && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../dsp/dsp-exp.cnf:
+ (cd $(builddir)/../dsp && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../crmf/crmf-exp.cnf:
+ (cd $(builddir)/../crmf && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/dop/Makefile.nmake b/epan/dissectors/asn1/dop/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/dop/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/dop/dop.asn b/epan/dissectors/asn1/dop/dop.asn
new file mode 100644
index 0000000000..cba83c0538
--- /dev/null
+++ b/epan/dissectors/asn1/dop/dop.asn
@@ -0,0 +1,881 @@
+-- Module DSAOperationalAttributeTypes (X.501:02/2001)
+DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ dsaOperationalAttributeTypes(22) 4} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ distributedOperations, id-doa, id-kmr, informationFramework,
+ opBindingManagement, selectedAttributeTypes, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 4}
+ ATTRIBUTE, MATCHING-RULE, Name, Attribute, DistinguishedName,
+ RelativeDistinguishedName, Refinement, SubtreeSpecification, AttributeType, ContextAssertion
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 4}
+-- OperationalBindingID
+-- FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+-- opBindingManagement(18) 4}
+ -- from ITU-T Rec. X.518 | ISO/IEC 9594-4
+ AccessPoint, MasterAndShadowAccessPoints
+ FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
+ distributedOperations(3) 4}
+ -- from ITU-T Rec. X.520 | ISO/IEC 9594-6
+ DirectoryString, NameAndOptionalUID, bitStringMatch
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 4}
+ PresentationAddress, ProtocolInformation
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 4}
+ DirectoryBindArgument, DirectoryBindError, SecurityParameters
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 5}
+ -- from ITU-T Rec. X.509 | ISO/IEC 9594-8
+ AlgorithmIdentifier
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 4}
+ AttributeTypeAndValue
+ FROM BasicAccessControl {joint-iso-itu-t ds(5) module(1)
+ basicAccessControl(24) 4}
+ Filter
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 4};
+
+-- 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
+ ditBridge(18), -- DIT bridge reference
+ writeableCopy(19) -- writeable copy
+}
+
+SupplierOrConsumer ::= SET {
+-- COMPONENTS OF AccessPoint, - - supplier or consumer
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
+ agreementID [3] OperationalBindingID
+}
+
+SupplierInformation ::= SET {
+-- COMPONENTS OF SupplierOrConsumer, - - supplier
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
+ agreementID [3] OperationalBindingID,
+ supplier-is-master [4] BOOLEAN DEFAULT TRUE,
+ non-supplying-master [5] AccessPoint OPTIONAL
+}
+
+ConsumerInformation ::= SupplierOrConsumer -- consumer
+
+SupplierAndConsumers ::= SET {
+-- COMPONENTS OF AccessPoint, - - supplier
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
+ consumers [3] 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
+
+-- we include this here to reduce the number of dissectors
+-- Module OperationalBindingManagement (X.501:08/2005)
+--OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+-- opBindingManagement(18) 5} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+-- directoryAbstractService, directoryShadowAbstractService,
+-- distributedOperations, directoryOSIProtocols, enhancedSecurity,
+-- hierarchicalOperationalBindings, commonProtocolSpecification
+-- FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+-- usefulDefinitions(0) 5}
+-- OPTIONALLY-PROTECTED-SEQ
+-- FROM EnhancedSecurity {joint-iso-itu-t ds(5) modules(1)
+-- enhancedSecurity(28) 5}
+-- hierarchicalOperationalBinding, nonSpecificHierarchicalOperationalBinding
+-- FROM HierarchicalOperationalBindings hierarchicalOperationalBindings
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+-- CommonResultsSeq, directoryBind, directoryUnbind, securityError,
+-- SecurityParameters
+-- FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+-- directoryAbstractService(2) 5}
+ -- from ITU-T Rec. X.518 | ISO/IEC 9594-4
+-- AccessPoint
+-- FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
+-- distributedOperations(3) 5}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+-- id-err-operationalBindingError, id-op-establishOperationalBinding,
+-- id-op-modifyOperationalBinding, id-op-terminateOperationalBinding,
+-- OPERATION, ERROR
+-- FROM CommonProtocolSpecification commonProtocolSpecification
+-- APPLICATION-CONTEXT
+-- FROM DirectoryOSIProtocols directoryOSIProtocols
+ -- from ITU-T Rec. X.525 | ISO/IEC 9594-9
+-- shadowOperationalBinding
+-- FROM DirectoryShadowAbstractService directoryShadowAbstractService;
+
+-- bind and unbind
+dSAOperationalBindingManagementBind OPERATION ::=
+ directoryBind
+
+DSAOperationalManagementBindArgument ::= DirectoryBindArgument
+DSAOperationalManagementBindResult ::= DirectoryBindArgument
+DSAOperationalManagementBindError ::= DirectoryBindError
+
+dSAOperationalBindingManagementUnbind OPERATION ::= directoryUnbind
+
+-- operations, arguments and results
+--establishOperationalBinding OPERATION ::= {
+-- ARGUMENT EstablishOperationalBindingArgument
+-- RESULT EstablishOperationalBindingResult
+-- ERRORS {operationalBindingError | securityError}
+-- CODE id-op-establishOperationalBinding
+--}
+
+EstablishOperationalBindingArgumentData ::=
+-- OPTIONALLY-PROTECTED-SEQ
+-- {-- SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet}) -- OBJECT IDENTIFIER,
+ 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}) -- ANY,
+ roleA-initiates
+ [4] -- OPERATIONAL-BINDING.&roleA.&EstablishParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY,
+ roleB-initiates
+ [5] -- OPERATIONAL-BINDING.&roleB.&EstablishParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY } OPTIONAL,
+ agreement
+ [6] -- OPERATIONAL-BINDING.&Agreement
+ -- ({OpBindingSet}{@bindingType}) -- ANY,
+ valid [7] Validity DEFAULT {},
+ securityParameters [8] SecurityParameters OPTIONAL} --}
+
+-- expand OPTIONALLY-PROTECTED macro
+EstablishOperationalBindingArgument ::= CHOICE {
+ unsignedEstablishOperationalBindingArgument EstablishOperationalBindingArgumentData,
+ signedEstablishOperationalBindingArgument SEQUENCE {
+ establishOperationalBindingArgument EstablishOperationalBindingArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+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}) -- OBJECT IDENTIFIER,
+ 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}) -- ANY,
+ roleA-replies
+ [4] -- OPERATIONAL-BINDING.&roleA.&EstablishParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY,
+ roleB-replies
+ [5] -- OPERATIONAL-BINDING.&roleB.&EstablishParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY } OPTIONAL,
+-- COMPONENTS OF CommonResultsSeq}}
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL}
+
+
+--modifyOperationalBinding OPERATION ::= {
+-- ARGUMENT ModifyOperationalBindingArgument
+-- RESULT ModifyOperationalBindingResult
+-- ERRORS {operationalBindingError | securityError}
+-- CODE id-op-modifyOperationalBinding
+--}
+
+ModifyOperationalBindingArgumentData ::=
+-- OPTIONALLY-PROTECTED-SEQ
+-- {--SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet})-- OBJECT IDENTIFIER,
+ 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}) -- ANY,
+ roleA-initiates
+ [4] -- OPERATIONAL-BINDING.&roleA.&ModifyParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY,
+ roleB-initiates
+ [5] -- OPERATIONAL-BINDING.&roleB.&ModifyParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY } OPTIONAL,
+ newBindingID [6] OperationalBindingID,
+ newAgreement
+ [7] -- OPERATIONAL-BINDING.&Agreement
+ -- ({OpBindingSet}{@bindingType}) -- ANY OPTIONAL,
+ valid [8] Validity OPTIONAL,
+ securityParameters [9] SecurityParameters OPTIONAL} -- }
+
+
+ModifyOperationalBindingArgument ::= CHOICE {
+ unsignedModifyOperationalBindingArgument ModifyOperationalBindingArgumentData,
+ signedModifyOperationalBindingArgument SEQUENCE {
+ modifyOperationalBindingArgument ModifyOperationalBindingArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ModifyOperationalBindingResult ::= CHOICE {
+ null [0] NULL,
+ protected [1] SEQUENCE {
+ modifyOperationalBindingResultData ModifyOperationalBindingResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ModifyOperationalBindingResultData ::= SEQUENCE {
+ newBindingID OperationalBindingID,
+ bindingType
+ -- OPERATIONAL-BINDING.&id
+ -- ({OpBindingSet}) -- OBJECT IDENTIFIER,
+ newAgreement
+ -- OPERATIONAL-BINDING.&Agreement
+ -- ({OpBindingSet}{@.bindingType}) -- ANY,
+ valid Validity OPTIONAL,
+ --COMPONENTS OF CommonResultsSeq
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+ -- }}
+}
+
+--terminateOperationalBinding OPERATION ::= {
+-- ARGUMENT TerminateOperationalBindingArgument
+-- RESULT TerminateOperationalBindingResult
+-- ERRORS {operationalBindingError | securityError}
+-- CODE id-op-terminateOperationalBinding
+--}
+
+TerminateOperationalBindingArgumentData ::=
+-- OPTIONALLY-PROTECTED-SEQ
+-- {-- SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet})-- OBJECT IDENTIFIER,
+ bindingID [1] OperationalBindingID,
+ -- symmetric, Role A initiates, or Role B initiates
+ initiator
+ CHOICE {symmetric
+ [2] -- OPERATIONAL-BINDING.&both.&TerminateParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY,
+ roleA-initiates
+ [3] -- OPERATIONAL-BINDING.&roleA.&TerminateParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY,
+ roleB-initiates
+ [4] -- OPERATIONAL-BINDING.&roleB.&TerminateParam
+ -- ({OpBindingSet}{@bindingType}) -- ANY } OPTIONAL,
+ terminateAt [5] Time OPTIONAL,
+ securityParameters [6] SecurityParameters OPTIONAL} --}
+
+
+TerminateOperationalBindingArgument ::= CHOICE {
+ unsignedTerminateOperationalBindingArgument TerminateOperationalBindingArgumentData,
+ signedTerminateOperationalBindingArgument SEQUENCE {
+ terminateOperationalBindingArgument TerminateOperationalBindingArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+TerminateOperationalBindingResult ::= CHOICE {
+ null [0] NULL,
+ protected [1] SEQUENCE {
+ terminateOperationalBindingResultData TerminateOperationalBindingResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+TerminateOperationalBindingResultData ::= SEQUENCE {
+ bindingID OperationalBindingID,
+ bindingType
+ -- OPERATIONAL-BINDING.&id
+ -- ({OpBindingSet}) -- OBJECT IDENTIFIER,
+ terminateAt GeneralizedTime OPTIONAL,
+ --COMPONENTS OF CommonResultsSeq
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+-- }}
+}
+
+-- 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})-- OBJECT IDENTIFIER OPTIONAL,
+ agreementProposal
+ [2] -- OPERATIONAL-BINDING.&Agreement({OpBindingSet}{@bindingType})-- ANY OPTIONAL,
+ retryAt [3] Time OPTIONAL,
+-- COMPONENTS OF CommonResultsSeq
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+
+}
+
+-- 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
+
+-- Module HierarchicalOperationalBindings (X.518:08/2005)
+--HierarchicalOperationalBindings {joint-iso-itu-t ds(5) module(1)
+-- hierarchicalOperationalBindings(20) 5} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+-- directoryOperationalBindingTypes, directoryOSIProtocols,
+-- distributedOperations, informationFramework, opBindingManagement
+-- FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+-- usefulDefinitions(0) 5}
+-- Attribute, DistinguishedName, RelativeDistinguishedName
+-- FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+-- informationFramework(1) 5}
+-- OPERATIONAL-BINDING
+-- FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+-- opBindingManagement(18) 5}
+ -- from ITU-T Rec. X.518 | ISO/IEC 9594-4
+-- MasterAndShadowAccessPoints
+-- FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
+-- distributedOperations(3) 5}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+-- directorySystemAC
+-- FROM DirectoryOSIProtocols {joint-iso-itu-t ds(5) module(1)
+-- directoryOSIProtocols(37) 5}
+-- id-op-binding-hierarchical, id-op-binding-non-specific-hierarchical
+-- FROM DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1)
+-- directoryOperationalBindingTypes(25) 5};
+
+-- types
+HierarchicalAgreement ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ 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
+-- })
+ SEQUENCE {
+ contextPrefixInfo [0] DITcontext,
+ immediateSuperiorInfo [2] SET --SIZE (1..MAX)-- OF Attribute OPTIONAL
+}
+
+NonSpecificHierarchicalAgreement ::= SEQUENCE {
+ immediateSuperior [1] DistinguishedName
+}
+
+NHOBSuperiorToSubordinate ::=
+-- SuperiorToSubordinate(WITH COMPONENTS {
+-- ...,
+-- entryInfo ABSENT
+-- })
+ SEQUENCE {
+ contextPrefixInfo [0] DITcontext,
+ immediateSuperiorInfo [2] SET --SIZE (1..MAX)-- OF Attribute OPTIONAL
+}
+
+NHOBSubordinateToSuperior ::= SEQUENCE {
+ accessPoints [0] MasterAndShadowAccessPoints OPTIONAL,
+ subentries [3] SET --SIZE (1..MAX)-- OF SubentryInfo OPTIONAL
+}
+
+-- operational binding information objects
+--hierarchicalOperationalBinding OPERATIONAL-BINDING ::= {
+-- AGREEMENT HierarchicalAgreement
+-- APPLICATION CONTEXTS {{directorySystemAC}}
+-- ASYMMETRIC ROLE-A - - superior DSA - -
+-- {ESTABLISHMENT-INITIATOR TRUE
+-- ESTABLISHMENT-PARAMETER SuperiorToSubordinate
+-- MODIFICATION-INITIATOR TRUE
+-- MODIFICATION-PARAMETER SuperiorToSubordinateModification
+-- TERMINATION-INITIATOR TRUE}
+-- ROLE-B - - subordinate DSA - -
+-- {ESTABLISHMENT-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}}
+-- ASYMMETRIC ROLE-A - - superior DSA - -
+-- {ESTABLISHMENT-PARAMETER NHOBSuperiorToSubordinate
+-- MODIFICATION-INITIATOR TRUE
+-- MODIFICATION-PARAMETER NHOBSuperiorToSubordinate
+-- TERMINATION-INITIATOR TRUE}
+-- ROLE-B - - subordinate DSA - -
+-- {ESTABLISHMENT-INITIATOR TRUE
+-- ESTABLISHMENT-PARAMETER NHOBSubordinateToSuperior
+-- MODIFICATION-INITIATOR TRUE
+-- MODIFICATION-PARAMETER NHOBSubordinateToSuperior
+-- TERMINATION-INITIATOR TRUE}
+-- ID id-op-binding-non-specific-hierarchical
+--}
+
+--END - - HierarchicalOperationalBindings
+
+-- Module BasicAccessControl (X.501:02/2001)
+--BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 4}
+--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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+-- directoryAbstractService, id-aca, id-acScheme, informationFramework,
+-- selectedAttributeTypes, upperBounds
+-- FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+-- usefulDefinitions(0) 4}
+-- ATTRIBUTE, AttributeType, ContextAssertion, DistinguishedName, MATCHING-RULE,
+-- objectIdentifierMatch, Refinement, SubtreeSpecification,
+-- SupportedAttributes
+-- FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+-- informationFramework(1) 4}
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+-- Filter
+-- FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+-- directoryAbstractService(2) 4}
+ -- from ITU-T Rec. X.520 | ISO/IEC 9594-6
+-- DirectoryString{}, directoryStringFirstComponentMatch, NameAndOptionalUID,
+-- UniqueIdentifier
+-- FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+-- selectedAttributeTypes(5) 4}
+-- ub-tag
+-- FROM UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 4};
+
+-- 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 shall 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
+
+
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/dop/dop.cnf b/epan/dissectors/asn1/dop/dop.cnf
new file mode 100644
index 0000000000..e6629be715
--- /dev/null
+++ b/epan/dissectors/asn1/dop/dop.cnf
@@ -0,0 +1,202 @@
+#.IMPORT ../x509sat/x509sat-exp.cnf
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../dsp/dsp-exp.cnf
+#.IMPORT ../dap/dap-exp.cnf
+#.IMPORT ../crmf/crmf-exp.cnf
+
+#.MODULE_IMPORT
+BasicAccessControl crmf
+
+#.EXPORTS
+DSEType
+SupplierAndConsumers
+OperationalBindingID
+
+#.NO_EMIT ONLY_VALS
+EstablishOperationalBindingArgument
+ModifyOperationalBindingArgument
+ModifyOperationalBindingResult
+TerminateOperationalBindingArgument
+TerminateOperationalBindingResult
+
+#.TYPE_RENAME
+EstablishOperationalBindingArgumentData/initiator EstablishArgumentInitiator
+ModifyOperationalBindingArgumentData/initiator ModifyArgumentInitiator
+TerminateOperationalBindingArgumentData/initiator TerminateArgumentInitiator
+
+ModifyOperationalBindingArgumentData/newAgreement ArgumentNewAgreement
+ModifyOperationalBindingResultData/newAgreement ResultNewAgreement
+
+ModifyOperationalBindingResult/protected ProtectedModifyResult
+TerminateOperationalBindingResult/protected ProtectedTerminateResult
+
+EstablishOperationalBindingArgumentData/initiator/roleA-initiates EstablishRoleAInitiates
+ModifyOperationalBindingArgumentData/initiator/roleA-initiates ModifyRoleAInitiates
+TerminateOperationalBindingArgumentData/initiator/roleA-initiates TerminateRoleAInitiates
+
+EstablishOperationalBindingArgumentData/initiator/roleB-initiates EstablishRoleBInitiates
+ModifyOperationalBindingArgumentData/initiator/roleB-initiates ModifyRoleBInitiates
+TerminateOperationalBindingArgumentData/initiator/roleB-initiates TerminateRoleBInitiates
+
+EstablishOperationalBindingArgumentData/initiator/symmetric EstablishSymmetric
+ModifyOperationalBindingArgumentData/initiator/symmetric ModifySymmetric
+TerminateOperationalBindingArgumentData/initiator/symmetric TerminateSymmetric
+
+
+#.FIELD_RENAME
+EstablishOperationalBindingArgumentData/initiator establishInitiator
+ModifyOperationalBindingArgumentData/initiator modifyInitiator
+TerminateOperationalBindingArgumentData/initiator terminateInitiator
+
+ModifyOperationalBindingArgumentData/newAgreement argumentNewAgreement
+ModifyOperationalBindingResultData/newAgreement resultNewAgreement
+
+ModifyOperationalBindingResult/protected protectedModifyResult
+TerminateOperationalBindingResult/protected protectedTerminateResult
+
+EstablishOperationalBindingArgumentData/initiator/roleA-initiates establishRoleAInitiates
+ModifyOperationalBindingArgumentData/initiator/roleA-initiates modifyRoleAInitiates
+TerminateOperationalBindingArgumentData/initiator/roleA-initiates terminateRoleAInitiates
+
+EstablishOperationalBindingArgumentData/initiator/roleB-initiates establishRoleBInitiates
+ModifyOperationalBindingArgumentData/initiator/roleB-initiates modifyRoleBInitiates
+TerminateOperationalBindingArgumentData/initiator/roleB-initiates terminateRoleBInitiates
+
+EstablishOperationalBindingArgumentData/initiator/symmetric establishSymmetric
+ModifyOperationalBindingArgumentData/initiator/symmetric modifySymmetric
+TerminateOperationalBindingArgumentData/initiator/symmetric terminateSymmetric
+
+TerminateOperationalBindingArgumentData/terminateAt terminateAtTime
+TerminateOperationalBindingResultData/terminateAt terminateAtGeneralizedTime
+
+
+#.REGISTER
+DSEType B "2.5.12.0" "id-doa-dseType"
+SupplierInformation B "2.5.12.5" "id-doa-supplierKnowledge"
+ConsumerInformation B "2.5.12.6" "id-doa-consumerKnowledge"
+SupplierAndConsumers B "2.5.12.7" "id-doa-secondaryShadows"
+
+HierarchicalAgreement S dop.oid "agreement.2.5.19.2"
+SuperiorToSubordinate S dop.oid "establish.rolea.2.5.19.2"
+SuperiorToSubordinateModification S dop.oid "modify.rolea.2.5.19.2"
+SubordinateToSuperior S dop.oid "establish.roleb.2.5.19.2"
+SubordinateToSuperior S dop.oid "modify.roleb.2.5.19.2"
+
+NonSpecificHierarchicalAgreement S dop.oid "agreement.2.5.19.3"
+NHOBSuperiorToSubordinate S dop.oid "establish.rolea.2.5.19.3"
+NHOBSuperiorToSubordinate S dop.oid "modify.rolea.2.5.19.3"
+NHOBSubordinateToSuperior S dop.oid "establish.roleb.2.5.19.3"
+NHOBSubordinateToSuperior S dop.oid "modify.roleb.2.5.19.3"
+
+ACIItem B "2.5.24.4" "id-aca-prescriptiveACI"
+ACIItem B "2.5.24.5" "id-aca-entryACI"
+ACIItem B "2.5.24.6" "id-aca-subentryACI"
+
+#.VIRTUAL_ASSGN
+BindingType EstablishOperationalBindingArgumentData/bindingType
+#.SET_TYPE
+EstablishOperationalBindingArgumentData/bindingType BindingType
+EstablishOperationalBindingResult/bindingType BindingType
+ModifyOperationalBindingArgumentData/bindingType BindingType
+ModifyOperationalBindingResultData/bindingType BindingType
+TerminateOperationalBindingArgumentData/bindingType BindingType
+TerminateOperationalBindingResultData/bindingType BindingType
+OpBindingErrorParam/bindingType BindingType
+#.END
+
+#.FN_PARS BindingType FN_VARIANT = _str VAL_PTR = &binding_type
+#.FN_FTR BindingType
+ append_oid(actx->pinfo, binding_type);
+#.END
+
+#.FN_BODY EstablishOperationalBindingArgumentData/initiator/symmetric
+
+ offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
+
+#.FN_BODY EstablishOperationalBindingArgumentData/initiator/roleA-initiates
+
+ offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
+
+#.FN_BODY EstablishOperationalBindingArgumentData/initiator/roleB-initiates
+
+ offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
+
+#.FN_BODY ModifyOperationalBindingArgumentData/initiator/symmetric
+
+ offset = call_dop_oid_callback("modify.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
+
+#.FN_BODY ModifyOperationalBindingArgumentData/initiator/roleA-initiates
+
+ offset = call_dop_oid_callback("modify.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
+
+#.FN_BODY ModifyOperationalBindingArgumentData/initiator/roleB-initiates
+
+ offset = call_dop_oid_callback("modify.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
+
+#.FN_BODY TerminateOperationalBindingArgumentData/initiator/symmetric
+
+ offset = call_dop_oid_callback("terminate.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
+
+#.FN_BODY TerminateOperationalBindingArgumentData/initiator/roleA-initiates
+
+ offset = call_dop_oid_callback("terminate.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
+
+#.FN_BODY TerminateOperationalBindingArgumentData/initiator/roleB-initiates
+
+ offset = call_dop_oid_callback("terminate.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
+
+#.FN_BODY EstablishOperationalBindingArgumentData/agreement
+
+ offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
+
+#.FN_BODY EstablishOperationalBindingResult/initiator/symmetric
+
+ offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
+
+#.FN_BODY EstablishOperationalBindingResult/initiator/roleA-replies
+
+ offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
+
+#.FN_BODY EstablishOperationalBindingResult/initiator/roleB-replies
+
+ offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
+
+#.FN_BODY OpBindingErrorParam/agreementProposal
+
+ offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
+
+#.FN_BODY ModifyOperationalBindingResultData/newAgreement
+
+ offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
+
+#.FN_BODY ModifyOperationalBindingArgumentData/newAgreement
+
+ offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
+
+
+#.FN_BODY OperationalBindingID/identifier VAL_PTR = &value
+ guint32 value;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " id=%%d", value);
+
+
+
+#.FN_BODY OperationalBindingID/version VAL_PTR = &value
+ guint32 value;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, ",%%d", value);
+
+#.FN_PARS Precedence VAL_PTR = &precedence
+
+#.FN_BODY Precedence
+ guint32 precedence = 0;
+
+ %(DEFAULT_BODY)s
+
+ proto_item_append_text(tree, " precedence=%%d", precedence);
+
diff --git a/epan/dissectors/asn1/dop/packet-dop-template.c b/epan/dissectors/asn1/dop/packet-dop-template.c
new file mode 100644
index 0000000000..1cf698a20d
--- /dev/null
+++ b/epan/dissectors/asn1/dop/packet-dop-template.c
@@ -0,0 +1,346 @@
+/* packet-dop.c
+ * Routines for X.501 (DSA Operational Attributes) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+
+#include "packet-x509sat.h"
+#include "packet-x509af.h"
+#include "packet-x509if.h"
+#include "packet-dap.h"
+#include "packet-dsp.h"
+#include "packet-crmf.h"
+
+
+#include "packet-dop.h"
+
+#define PNAME "X.501 Directory Operational Binding Management Protocol"
+#define PSNAME "DOP"
+#define PFNAME "dop"
+
+void proto_register_dop(void);
+void proto_reg_handoff_dop(void);
+
+static guint global_dop_tcp_port = 102;
+static dissector_handle_t tpkt_handle;
+static void prefs_register_dop(void); /* forward declaration for use in preferences registration */
+
+/* Initialize the protocol and registered fields */
+static int proto_dop = -1;
+
+static const char *binding_type = NULL; /* binding_type */
+
+static int call_dop_oid_callback(const char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const char *col_info, void* data);
+
+#include "packet-dop-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_dop = -1;
+static gint ett_dop_unknown = -1;
+#include "packet-dop-ett.c"
+
+static expert_field ei_dop_unknown_binding_parameter = EI_INIT;
+static expert_field ei_dop_unsupported_opcode = EI_INIT;
+static expert_field ei_dop_unsupported_errcode = EI_INIT;
+static expert_field ei_dop_unsupported_pdu = EI_INIT;
+static expert_field ei_dop_zero_pdu = EI_INIT;
+
+/* Dissector table */
+static dissector_table_t dop_dissector_table;
+
+static void append_oid(packet_info *pinfo, const char *oid)
+{
+ const char *name = NULL;
+
+ name = oid_resolved_from_string(wmem_packet_scope(), oid);
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name ? name : oid);
+}
+
+#include "packet-dop-fn.c"
+
+static int
+call_dop_oid_callback(const char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const char *col_info, void* data)
+{
+ char* binding_param;
+
+ binding_param = wmem_strdup_printf(wmem_packet_scope(), "%s.%s", base_string, binding_type ? binding_type : "");
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s", col_info);
+
+ if (dissector_try_string(dop_dissector_table, binding_param, tvb, pinfo, tree, data)) {
+ offset = tvb_reported_length (tvb);
+ } else {
+ proto_item *item;
+ proto_tree *next_tree;
+
+ next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_dop_unknown, &item,
+ "Dissector for parameter %s OID:%s not implemented. Contact Wireshark developers if you want this supported", base_string, binding_type ? binding_type : "<empty>");
+
+ offset = dissect_unknown_ber(pinfo, tvb, offset, next_tree);
+ expert_add_info(pinfo, item, &ei_dop_unknown_binding_parameter);
+ }
+
+ return offset;
+}
+
+
+/*
+* Dissect DOP PDUs inside a ROS PDUs
+*/
+static int
+dissect_dop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item;
+ proto_tree *tree;
+ struct SESSION_DATA_STRUCTURE* session;
+ int (*dop_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
+ const char *dop_op_name;
+ asn1_ctx_t asn1_ctx;
+
+ /* do we have operation information from the ROS dissector? */
+ if (data == NULL)
+ return 0;
+ session = (struct SESSION_DATA_STRUCTURE*)data;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ item = proto_tree_add_item(parent_tree, proto_dop, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_dop);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "DOP");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ asn1_ctx.private_data = session;
+
+ switch(session->ros_op & ROS_OP_MASK) {
+ case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
+ dop_dissector = dissect_dop_DSAOperationalManagementBindArgument;
+ dop_op_name = "DSA-Operational-Bind-Argument";
+ break;
+ case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
+ dop_dissector = dissect_dop_DSAOperationalManagementBindResult;
+ dop_op_name = "DSA-Operational-Bind-Result";
+ break;
+ case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
+ dop_dissector = dissect_dop_DSAOperationalManagementBindError;
+ dop_op_name = "DSA-Operational-Management-Bind-Error";
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 100: /* establish */
+ dop_dissector = dissect_dop_EstablishOperationalBindingArgument;
+ dop_op_name = "Establish-Operational-Binding-Argument";
+ break;
+ case 101: /* terminate */
+ dop_dissector = dissect_dop_TerminateOperationalBindingArgument;
+ dop_op_name = "Terminate-Operational-Binding-Argument";
+ break;
+ case 102: /* modify */
+ dop_dissector = dissect_dop_ModifyOperationalBindingArgument;
+ dop_op_name = "Modify-Operational-Binding-Argument";
+ break;
+ default:
+ proto_tree_add_expert_format(tree, pinfo, &ei_dop_unsupported_opcode, tvb, offset, -1,
+ "Unsupported DOP Argument opcode (%d)", session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 100: /* establish */
+ dop_dissector = dissect_dop_EstablishOperationalBindingResult;
+ dop_op_name = "Establish-Operational-Binding-Result";
+ break;
+ case 101: /* terminate */
+ dop_dissector = dissect_dop_TerminateOperationalBindingResult;
+ dop_op_name = "Terminate-Operational-Binding-Result";
+ break;
+ case 102: /* modify */
+ dop_dissector = dissect_dop_ModifyOperationalBindingResult;
+ dop_op_name = "Modify-Operational-Binding-Result";
+ break;
+ default:
+ proto_tree_add_expert_format(tree, pinfo, &ei_dop_unsupported_opcode, tvb, offset, -1,
+ "Unsupported DOP Result opcode (%d)", session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 100: /* operational-binding */
+ dop_dissector = dissect_dop_OpBindingErrorParam;
+ dop_op_name = "Operational-Binding-Error";
+ break;
+ default:
+ proto_tree_add_expert_format(tree, pinfo, &ei_dop_unsupported_errcode, tvb, offset, -1,
+ "Unsupported DOP Error opcode (%d)", session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ default:
+ proto_tree_add_expert(tree, pinfo, &ei_dop_unsupported_pdu, tvb, offset, -1);
+ return tvb_captured_length(tvb);
+ }
+
+ if(dop_dissector) {
+ col_set_str(pinfo->cinfo, COL_INFO, dop_op_name);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0){
+ old_offset=offset;
+ offset=(*dop_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ if(offset == old_offset){
+ proto_tree_add_expert(tree, pinfo, &ei_dop_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+
+
+/*--- proto_register_dop -------------------------------------------*/
+void proto_register_dop(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-dop-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_dop,
+ &ett_dop_unknown,
+#include "packet-dop-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_dop_unknown_binding_parameter, { "dop.unknown_binding_parameter", PI_UNDECODED, PI_WARN, "Unknown binding-parameter", EXPFILL }},
+ { &ei_dop_unsupported_opcode, { "dop.unsupported_opcode", PI_UNDECODED, PI_WARN, "Unsupported DOP opcode", EXPFILL }},
+ { &ei_dop_unsupported_errcode, { "dop.unsupported_errcode", PI_UNDECODED, PI_WARN, "Unsupported DOP errcode", EXPFILL }},
+ { &ei_dop_unsupported_pdu, { "dop.unsupported_pdu", PI_UNDECODED, PI_WARN, "Unsupported DOP PDU", EXPFILL }},
+ { &ei_dop_zero_pdu, { "dop.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte DOP PDU", EXPFILL }},
+ };
+
+ expert_module_t* expert_dop;
+ module_t *dop_module;
+
+ /* Register protocol */
+ proto_dop = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ register_dissector("dop", dissect_dop, proto_dop);
+
+ dop_dissector_table = register_dissector_table("dop.oid", "DOP OID Dissectors", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_dop, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_dop = expert_register_protocol(proto_dop);
+ expert_register_field_array(expert_dop, ei, array_length(ei));
+
+ /* Register our configuration options for DOP, particularly our port */
+
+ dop_module = prefs_register_protocol_subtree("OSI/X.500", proto_dop, prefs_register_dop);
+
+ prefs_register_uint_preference(dop_module, "tcp.port", "DOP TCP Port",
+ "Set the port for DOP operations (if other"
+ " than the default of 102)",
+ 10, &global_dop_tcp_port);
+
+
+}
+
+
+/*--- proto_reg_handoff_dop --- */
+void proto_reg_handoff_dop(void) {
+ dissector_handle_t dop_handle;
+
+#include "packet-dop-dis-tab.c"
+ /* APPLICATION CONTEXT */
+
+ oid_add_from_string("id-ac-directory-operational-binding-management","2.5.3.3");
+
+ /* ABSTRACT SYNTAXES */
+
+ /* Register DOP with ROS (with no use of RTSE) */
+ dop_handle = find_dissector("dop");
+ register_ros_oid_dissector_handle("2.5.9.4", dop_handle, 0, "id-as-directory-operational-binding-management", FALSE);
+
+ /* BINDING TYPES */
+
+ oid_add_from_string("shadow-agreement","2.5.19.1");
+ oid_add_from_string("hierarchical-agreement","2.5.19.2");
+ oid_add_from_string("non-specific-hierarchical-agreement","2.5.19.3");
+
+ /* ACCESS CONTROL SCHEMES */
+ oid_add_from_string("basic-ACS","2.5.28.1");
+ oid_add_from_string("simplified-ACS","2.5.28.2");
+ oid_add_from_string("ruleBased-ACS","2.5.28.3");
+ oid_add_from_string("ruleAndBasic-ACS","2.5.28.4");
+ oid_add_from_string("ruleAndSimple-ACS","2.5.28.5");
+
+ /* ADMINISTRATIVE ROLES */
+ oid_add_from_string("id-ar-autonomousArea","2.5.23.1");
+ oid_add_from_string("id-ar-accessControlSpecificArea","2.5.23.2");
+ oid_add_from_string("id-ar-accessControlInnerArea","2.5.23.3");
+ oid_add_from_string("id-ar-subschemaAdminSpecificArea","2.5.23.4");
+ oid_add_from_string("id-ar-collectiveAttributeSpecificArea","2.5.23.5");
+ oid_add_from_string("id-ar-collectiveAttributeInnerArea","2.5.23.6");
+ oid_add_from_string("id-ar-contextDefaultSpecificArea","2.5.23.7");
+ oid_add_from_string("id-ar-serviceSpecificArea","2.5.23.8");
+
+ /* remember the tpkt handler for change in preferences */
+ tpkt_handle = find_dissector("tpkt");
+
+}
+
+static void
+prefs_register_dop(void)
+{
+ static guint tcp_port = 0;
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_dop_tcp_port;
+
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_add_uint("tcp.port", tcp_port, tpkt_handle);
+
+}
diff --git a/epan/dissectors/asn1/dop/packet-dop-template.h b/epan/dissectors/asn1/dop/packet-dop-template.h
new file mode 100644
index 0000000000..ddb37b621f
--- /dev/null
+++ b/epan/dissectors/asn1/dop/packet-dop-template.h
@@ -0,0 +1,29 @@
+/* packet-x501.h
+ * Routines for X.501 (DSA Operational Attributes) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_X501_H
+#define PACKET_X501_H
+
+#include "packet-dop-exp.h"
+
+#endif /* PACKET_X501_H */
diff --git a/epan/dissectors/asn1/dsp/CMakeLists.txt b/epan/dissectors/asn1/dsp/CMakeLists.txt
new file mode 100644
index 0000000000..864add0a91
--- /dev/null
+++ b/epan/dissectors/asn1/dsp/CMakeLists.txt
@@ -0,0 +1,59 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME dsp )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../dap/dap-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/dsp/Makefile.am b/epan/dissectors/asn1/dsp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/dsp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/dsp/Makefile.common b/epan/dissectors/asn1/dsp/Makefile.common
new file mode 100644
index 0000000000..f1acd788cf
--- /dev/null
+++ b/epan/dissectors/asn1/dsp/Makefile.common
@@ -0,0 +1,62 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=dsp
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF = \
+ $(builddir)/../dap/dap-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+$(builddir)/../dap/dap-exp.cnf:
+ (cd $(builddir)/../dap && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/dsp/Makefile.nmake b/epan/dissectors/asn1/dsp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/dsp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/dsp/dsp.asn b/epan/dissectors/asn1/dsp/dsp.asn
new file mode 100644
index 0000000000..e0f2a6508a
--- /dev/null
+++ b/epan/dissectors/asn1/dsp/dsp.asn
@@ -0,0 +1,489 @@
+-- Module DistributedOperations (X.518:08/2005)
+DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3)
+ 4} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ basicAccessControl, dap, directoryAbstractService, enhancedSecurity,
+ informationFramework, selectedAttributeTypes, serviceAdministration
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 4}
+ DistinguishedName, Name, RDNSequence, Attribute
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 4}
+ MRMapping, SearchRuleId
+ FROM ServiceAdministration {joint-iso-itu-t ds(5) module(1)
+ serviceAdministration(33) 4}
+-- AuthenticationLevel
+-- FROM BasicAccessControl {joint-iso-itu-t ds(5) module(1)
+-- basicAccessControl(24) 4}
+ OPTIONALLY-PROTECTED{}
+ FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28)
+ 4}
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ abandon, addEntry, CommonResults, compare, directoryBind, directoryUnbind,
+ list, modifyDN, modifyEntry, read, referral, removeEntry, search,
+ SecurityParameters,
+ AbandonArgument, AbandonResult, AddEntryArgument, AddEntryResult,
+ CompareArgument, CompareResult, ListArgument, ListResult,
+ ModifyDNArgument, ModifyDNResult, ModifyEntryArgument, ModifyEntryResult,
+ ReadArgument, ReadResult, RemoveEntryArgument, RemoveEntryResult,
+ SearchArgument, SearchResult,
+ DirectoryBindArgument, DirectoryBindResult, DirectoryBindError
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 4}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+ id-errcode-dsaReferral
+ FROM DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 4}
+ -- from ITU-T Rec. X.520 | ISO/IEC 9594-6
+ DirectoryString{}, PresentationAddress, ProtocolInformation, UniqueIdentifier
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 4}
+ -- 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)}--;
+ AlgorithmIdentifier
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 4};
+
+
+
+-- 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
+DSASystemBindArgument ::= DirectoryBindArgument
+DSASystemBindResult ::= DirectoryBindArgument
+DSASystemBindError ::= DirectoryBindError
+
+
+--dSAUnbind OPERATION ::= directoryUnbind
+
+-- chained operations
+--chainedRead OPERATION ::= chained{read}
+
+-- expand chained{} macro
+ChainedReadArgumentData ::= SET {
+ chainedArgument ChainingArguments,
+ readArgument [0] ReadArgument
+}
+
+ChainedReadArgument ::= CHOICE {
+ unsignedChainedReadArgument ChainedReadArgumentData,
+ signedChainedReadArgument SEQUENCE {
+ chainedReadArgument ChainedReadArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ChainedReadResultData ::= SET {
+ chainedResults ChainingResults,
+ readResult [0] ReadResult
+}
+
+ChainedReadResult ::= CHOICE {
+ unsignedChainedReadResult ChainedReadResultData,
+ signedChainedReadResult SEQUENCE {
+ chainedReadResult ChainedReadResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+--chainedCompare OPERATION ::= chained{compare}
+
+-- expand chained{} macro
+ChainedCompareArgumentData ::= SET {
+ chainedArgument ChainingArguments,
+ compareArgument [0] CompareArgument
+}
+
+ChainedCompareArgument ::= CHOICE {
+ unsignedChainedCompareArgument ChainedCompareArgumentData,
+ signedChainedCompareArgument SEQUENCE {
+ chainedCompareArgument ChainedCompareArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ChainedCompareResultData ::= SET {
+ chainedResults ChainingResults,
+ compareResult [0] CompareResult
+}
+
+ChainedCompareResult ::= CHOICE {
+ unsignedChainedCompareResult ChainedCompareResultData,
+ signedChainedCompareResult SEQUENCE {
+ chainedCompareResult ChainedCompareResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+--chainedAbandon OPERATION ::= abandon
+
+ChainedAbandonArgument ::= AbandonArgument
+ChainedAbandonResult ::= AbandonResult
+
+--chainedList OPERATION ::= chained{list}
+
+-- expand chained{} macro
+ChainedListArgumentData ::= SET {
+ chainedArgument ChainingArguments,
+ listArgument [0] ListArgument
+}
+
+ChainedListArgument ::= CHOICE {
+ unsignedChainedListArgument ChainedListArgumentData,
+ signedChainedListArgument SEQUENCE {
+ chainedListArgument ChainedListArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ChainedListResultData ::= SET {
+ chainedResults ChainingResults,
+ listResult [0] ListResult
+}
+
+ChainedListResult ::= CHOICE {
+ unsignedChainedListResult ChainedListResultData,
+ signedChainedListResult SEQUENCE {
+ chainedListResult ChainedListResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+--chainedSearch OPERATION ::= chained{search}
+
+-- expand chained{} macro
+ChainedSearchArgumentData ::= SET {
+ chainedArgument ChainingArguments,
+ searchArgument [0] SearchArgument
+}
+
+ChainedSearchArgument ::= CHOICE {
+ unsignedChainedSearchArgument ChainedSearchArgumentData,
+ signedChainedSearchArgument SEQUENCE {
+ chainedSearchArgument ChainedSearchArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ChainedSearchResultData ::= SET {
+ chainedResults ChainingResults,
+ searchResult [0] SearchResult
+}
+
+ChainedSearchResult ::= CHOICE {
+ unsignedChainedSearchResult ChainedSearchResultData,
+ signedChainedSearchResult SEQUENCE {
+ chainedSearchResult ChainedSearchResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+--chainedAddEntry OPERATION ::= chained{addEntry}
+
+-- expand chained{} macro
+ChainedAddEntryArgumentData ::= SET {
+ chainedArgument ChainingArguments,
+ addEntryArgument [0] AddEntryArgument
+}
+
+ChainedAddEntryArgument ::= CHOICE {
+ unsignedChainedAddEntryArgument ChainedAddEntryArgumentData,
+ signedChainedAddEntryArgument SEQUENCE {
+ chainedAddEntryArgument ChainedAddEntryArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ChainedAddEntryResultData ::= SET {
+ chainedResults ChainingResults,
+ addEntryResult [0] AddEntryResult
+}
+
+ChainedAddEntryResult ::= CHOICE {
+ unsignedChainedAddEntryResult ChainedAddEntryResultData,
+ signedChainedAddEntryResult SEQUENCE {
+ chainedAddEntryResult ChainedAddEntryResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+--chainedRemoveEntry OPERATION ::= chained{removeEntry}
+
+-- expand chained{} macro
+
+ChainedRemoveEntryArgumentData ::= SET {
+ chainedArgument ChainingArguments,
+ removeEntryArgument [0] RemoveEntryArgument
+}
+
+ChainedRemoveEntryArgument ::= CHOICE {
+ unsignedChainedRemoveEntryArgument ChainedRemoveEntryArgumentData,
+ signedChainedRemoveEntryArgument SEQUENCE {
+ chainedRemoveEntryArgument ChainedRemoveEntryArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ChainedRemoveEntryResultData ::= SET {
+ chainedResults ChainingResults,
+ removeEntryResult [0] RemoveEntryResult
+}
+
+ChainedRemoveEntryResult ::= CHOICE {
+ unsignedChainedRemoveEntryResult ChainedRemoveEntryResultData,
+ signedChainedRemoveEntryResult SEQUENCE {
+ chainedRemoveEntryResult ChainedRemoveEntryResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+--chainedModifyEntry OPERATION ::= chained{modifyEntry}
+
+-- expand chained{} macro
+
+ChainedModifyEntryArgumentData ::= SET {
+ chainedArgument ChainingArguments,
+ modifyEntryArgument [0] ModifyEntryArgument
+}
+
+ChainedModifyEntryArgument ::= CHOICE {
+ unsignedChainedModifyEntryArgument ChainedModifyEntryArgumentData,
+ signedChainedModifyEntryArgument SEQUENCE {
+ chainedModifyEntryArgument ChainedModifyEntryArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ChainedModifyEntryResultData ::= SET {
+ chainedResults ChainingResults,
+ modifyEntryResult [0] ModifyEntryResult
+}
+
+ChainedModifyEntryResult ::= CHOICE {
+ unsignedChainedModifyEntryResult ChainedModifyEntryResultData,
+ signedChainedModifyEntryResult SEQUENCE {
+ chainedModifyEntryResult ChainedModifyEntryResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+--chainedModifyDN OPERATION ::= chained{modifyDN}
+
+-- expand chained{} macro
+
+ChainedModifyDNArgumentData ::= SET {
+ chainedArgument ChainingArguments,
+ modifyDNArgument [0] ModifyDNArgument
+}
+
+ChainedModifyDNArgument ::= CHOICE {
+ unsignedChainedModifyDNArgument ChainedModifyDNArgumentData,
+ signedChainedModifyDNArgument SEQUENCE {
+ chainedModifyDNArgument ChainedModifyDNArgumentData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+ChainedModifyDNResultData ::= SET {
+ chainedResults ChainingResults,
+ modifyDNResult [0] ModifyDNResult
+}
+
+ChainedModifyDNResult ::= CHOICE {
+ unsignedChainedModifyDNResult ChainedModifyDNResultData,
+ signedChainedModifyDNResult SEQUENCE {
+ chainedModifyDNResult ChainedModifyDNResultData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+-- errors and parameters
+DSAReferralData -- ERROR-- ::= -- {
+-- PARAMETER OPTIONALLY-PROTECTED
+-- {--SET {reference [0] ContinuationReference,
+ contextPrefix [1] DistinguishedName OPTIONAL,
+-- COMPONENTS OF CommonResults}}
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+-- CODE id-errcode-dsaReferral
+}
+
+-- expand OPTIONALLY-PROTECTED macro
+DSAReferral ::= CHOICE {
+ unsignedDSAReferral DSAReferralData,
+ signedDSAReferral SEQUENCE {
+ dsaReferral DSAReferralData,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+ }
+}
+
+
+-- 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,
+ relatedEntry [20] INTEGER OPTIONAL,
+ dspPaging [21] BOOLEAN DEFAULT FALSE,
+ nonDapPdu [22] ENUMERATED { ldap (0) } OPTIONAL,
+ streamedResults [23] INTEGER OPTIONAL,
+ excludeWriteableCopies [24] BOOLEAN DEFAULT FALSE
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+DomainInfo ::= --ABSTRACT-SYNTAX.&Type-- OBJECT IDENTIFIER
+
+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
+}
+
+OperationProgress ::= SET {
+ nameResolutionPhase
+ [0] ENUMERATED {notStarted(1), proceeding(2), completed(3)},
+ nextRDNToBeResolved [1] INTEGER OPTIONAL
+}
+
+TraceInformation ::= SEQUENCE OF TraceItem
+
+TraceItem ::= SET {
+ dsa [0] Name,
+ targetObject [1] Name OPTIONAL,
+ operationProgress [2] OperationProgress
+}
+
+ReferenceType ::= ENUMERATED {
+ superior(1), subordinate(2), cross(3), nonSpecificSubordinate(4),
+ supplier(5), master(6), immediateSuperior(7), self(8), ditBridge(9)}
+
+AccessPoint ::= SET {
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
+ labeledURI [6] LabeledURI OPTIONAL
+}
+
+LabeledURI ::= DirectoryString{--ub-labeledURI--}
+
+MasterOrShadowAccessPoint ::= SET {
+-- COMPONENTS OF AccessPoint,
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
+ category [3] ENUMERATED {master(0), shadow(1)} DEFAULT master,
+ chainingRequired [5] BOOLEAN DEFAULT FALSE
+}
+
+MasterAndShadowAccessPoints ::= SET --SIZE (1..MAX)-- OF MasterOrShadowAccessPoint
+
+AccessPointInformation ::= SET {
+-- COMPONENTS OF MasterOrShadowAccessPoint,
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
+ category [3] ENUMERATED {master(0), shadow(1)} DEFAULT master,
+ chainingRequired [5] BOOLEAN DEFAULT FALSE,
+ additionalPoints [4] MasterAndShadowAccessPoints OPTIONAL
+}
+
+DitBridgeKnowledge ::= SEQUENCE {
+ domainLocalID DirectoryString{--ub-domainLocalID--} OPTIONAL,
+ accessPoints MasterAndShadowAccessPoints
+}
+
+Exclusions ::= SET --SIZE (1..MAX)-- OF RDNSequence
+
+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
+}
+
+AuthenticationLevel ::= CHOICE {
+ basicLevels SEQUENCE {
+ level ENUMERATED { none(0), simple(1), strong (2) },
+ localQualifier INTEGER OPTIONAL,
+ signed BOOLEAN DEFAULT FALSE
+ },
+ other EXTERNAL
+}
+
+END -- DistributedOperations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/dsp/dsp.cnf b/epan/dissectors/asn1/dsp/dsp.cnf
new file mode 100644
index 0000000000..c10743b340
--- /dev/null
+++ b/epan/dissectors/asn1/dsp/dsp.cnf
@@ -0,0 +1,55 @@
+#.MODULE_IMPORT
+DirectoryAccessProtocol dap
+ServiceAdministration x509if
+
+#.IMPORT ../dap/dap-exp.cnf
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+
+#.EXPORTS
+AccessPoint
+AccessPointInformation EXTERN WS_DLL
+ContinuationReference
+Exclusions
+MasterAndShadowAccessPoints
+OperationProgress
+ReferenceType
+
+#.NO_EMIT ONLY_VALS
+ChainedReadArgument
+ChainedReadResult
+ChainedCompareArgument
+ChainedCompareResult
+ChainedListArgument
+ChainedListResult
+ChainedSearchArgument
+ChainedSearchResult
+ChainedAddEntryArgument
+ChainedAddEntryResult
+ChainedRemoveEntryArgument
+ChainedRemoveEntryResult
+ChainedModifyEntryArgument
+ChainedModifyEntryResult
+ChainedModifyDNArgument
+ChainedModifyDNResult
+DSAReferral
+
+#.TYPE_RENAME
+MasterOrShadowAccessPoint/category APCategory
+
+#.FIELD_RENAME
+MasterOrShadowAccessPoint/category access-point-category
+
+ChainingArguments/targetObject targetObjectDN
+
+#.PDU
+AccessPoint
+MasterAndShadowAccessPoints
+
+#.REGISTER
+AccessPoint B "2.5.12.1" "id-doa-myAccessPoint"
+AccessPoint B "2.5.12.2" "id-doa-superiorKnowledge"
+MasterAndShadowAccessPoints B "2.5.12.3" "id-doa-specificKnowledge"
+MasterAndShadowAccessPoints B "2.5.12.4" "id-doa-nonSpecificKnowledge"
+DitBridgeKnowledge B "2.5.12.8" "id-doa-ditBridgeKnowledge"
diff --git a/epan/dissectors/asn1/dsp/packet-dsp-template.c b/epan/dissectors/asn1/dsp/packet-dsp-template.c
new file mode 100644
index 0000000000..c39870676d
--- /dev/null
+++ b/epan/dissectors/asn1/dsp/packet-dsp-template.c
@@ -0,0 +1,352 @@
+/* packet-dsp.c
+ * Routines for X.518 (X.500 Distributed Operations) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+
+#include "packet-x509if.h"
+#include "packet-x509af.h"
+#include "packet-x509sat.h"
+
+#include "packet-dap.h"
+#include "packet-dsp.h"
+
+
+#define PNAME "X.519 Directory System Protocol"
+#define PSNAME "DSP"
+#define PFNAME "dsp"
+
+void proto_register_dsp(void);
+void proto_reg_handoff_dsp(void);
+
+static guint global_dsp_tcp_port = 102;
+static dissector_handle_t tpkt_handle;
+static void prefs_register_dsp(void); /* forward declaration for use in preferences registration */
+
+
+/* Initialize the protocol and registered fields */
+static int proto_dsp = -1;
+
+#include "packet-dsp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_dsp = -1;
+#include "packet-dsp-ett.c"
+
+static expert_field ei_dsp_unsupported_opcode = EI_INIT;
+static expert_field ei_dsp_unsupported_errcode = EI_INIT;
+static expert_field ei_dsp_unsupported_pdu = EI_INIT;
+static expert_field ei_dsp_zero_pdu = EI_INIT;
+
+#include "packet-dsp-fn.c"
+
+/*
+* Dissect X518 PDUs inside a ROS PDUs
+*/
+static int
+dissect_dsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item;
+ proto_tree *tree;
+ struct SESSION_DATA_STRUCTURE* session;
+ int (*dsp_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
+ const char *dsp_op_name;
+ asn1_ctx_t asn1_ctx;
+
+ /* do we have operation information from the ROS dissector? */
+ if (data == NULL)
+ return 0;
+ session = (struct SESSION_DATA_STRUCTURE*)data;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ item = proto_tree_add_item(parent_tree, proto_dsp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_dsp);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "DAP");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ asn1_ctx.private_data = session;
+
+ switch(session->ros_op & ROS_OP_MASK) {
+ case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
+ dsp_dissector = dissect_dsp_DSASystemBindArgument;
+ dsp_op_name = "System-Bind-Argument";
+ break;
+ case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
+ dsp_dissector = dissect_dsp_DSASystemBindResult;
+ dsp_op_name = "System-Bind-Result";
+ break;
+ case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
+ dsp_dissector = dissect_dsp_DSASystemBindError;
+ dsp_op_name = "System-Bind-Error";
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 1: /* read */
+ dsp_dissector = dissect_dsp_ChainedReadArgument;
+ dsp_op_name = "Chained-Read-Argument";
+ break;
+ case 2: /* compare */
+ dsp_dissector = dissect_dsp_ChainedCompareArgument;
+ dsp_op_name = "Chained-Compare-Argument";
+ break;
+ case 3: /* abandon */
+ dsp_dissector = dissect_dsp_ChainedAbandonArgument;
+ dsp_op_name = "Chained-Abandon-Argument";
+ break;
+ case 4: /* list */
+ dsp_dissector = dissect_dsp_ChainedListArgument;
+ dsp_op_name = "Chained-List-Argument";
+ break;
+ case 5: /* search */
+ dsp_dissector = dissect_dsp_ChainedSearchArgument;
+ dsp_op_name = "Chained-Search-Argument";
+ break;
+ case 6: /* addEntry */
+ dsp_dissector = dissect_dsp_ChainedAddEntryArgument;
+ dsp_op_name = "Chained-Add-Entry-Argument";
+ break;
+ case 7: /* removeEntry */
+ dsp_dissector = dissect_dsp_ChainedRemoveEntryArgument;
+ dsp_op_name = "Chained-Remove-Entry-Argument";
+ break;
+ case 8: /* modifyEntry */
+ dsp_dissector = dissect_dsp_ChainedModifyEntryArgument;
+ dsp_op_name = "ChainedModify-Entry-Argument";
+ break;
+ case 9: /* modifyDN */
+ dsp_dissector = dissect_dsp_ChainedModifyDNArgument;
+ dsp_op_name = "ChainedModify-DN-Argument";
+ break;
+ default:
+ proto_tree_add_expert_format(tree, pinfo, &ei_dsp_unsupported_opcode, tvb, offset, -1,
+ "Unsupported DSP opcode (%d)", session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 1: /* read */
+ dsp_dissector = dissect_dsp_ChainedReadResult;
+ dsp_op_name = "Chained-Read-Result";
+ break;
+ case 2: /* compare */
+ dsp_dissector = dissect_dsp_ChainedCompareResult;
+ dsp_op_name = "Chained-Compare-Result";
+ break;
+ case 3: /* abandon */
+ dsp_dissector = dissect_dsp_ChainedAbandonResult;
+ dsp_op_name = "Chained-Abandon-Result";
+ break;
+ case 4: /* list */
+ dsp_dissector = dissect_dsp_ChainedListResult;
+ dsp_op_name = "Chained-List-Result";
+ break;
+ case 5: /* search */
+ dsp_dissector = dissect_dsp_ChainedSearchResult;
+ dsp_op_name = "Chained-Search-Result";
+ break;
+ case 6: /* addEntry */
+ dsp_dissector = dissect_dsp_ChainedAddEntryResult;
+ dsp_op_name = "Chained-Add-Entry-Result";
+ break;
+ case 7: /* removeEntry */
+ dsp_dissector = dissect_dsp_ChainedRemoveEntryResult;
+ dsp_op_name = "Chained-Remove-Entry-Result";
+ break;
+ case 8: /* modifyEntry */
+ dsp_dissector = dissect_dsp_ChainedModifyEntryResult;
+ dsp_op_name = "Chained-Modify-Entry-Result";
+ break;
+ case 9: /* modifyDN */
+ dsp_dissector = dissect_dsp_ChainedModifyDNResult;
+ dsp_op_name = "ChainedModify-DN-Result";
+ break;
+ default:
+ proto_tree_add_expert(tree, pinfo, &ei_dsp_unsupported_opcode, tvb, offset, -1);
+ break;
+ }
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 1: /* attributeError */
+ dsp_dissector = dissect_dap_AttributeError;
+ dsp_op_name = "Attribute-Error";
+ break;
+ case 2: /* nameError */
+ dsp_dissector = dissect_dap_NameError;
+ dsp_op_name = "Name-Error";
+ break;
+ case 3: /* serviceError */
+ dsp_dissector = dissect_dap_ServiceError;
+ dsp_op_name = "Service-Error";
+ break;
+ case 4: /* referral */
+ dsp_dissector = dissect_dap_Referral;
+ dsp_op_name = "Referral";
+ break;
+ case 5: /* abandoned */
+ dsp_dissector = dissect_dap_Abandoned;
+ dsp_op_name = "Abandoned";
+ break;
+ case 6: /* securityError */
+ dsp_dissector = dissect_dap_SecurityError;
+ dsp_op_name = "Security-Error";
+ break;
+ case 7: /* abandonFailed */
+ dsp_dissector = dissect_dap_AbandonFailedError;
+ dsp_op_name = "Abandon-Failed-Error";
+ break;
+ case 8: /* updateError */
+ dsp_dissector = dissect_dap_UpdateError;
+ dsp_op_name = "Update-Error";
+ break;
+ case 9: /* DSAReferral */
+ dsp_dissector = dissect_dsp_DSAReferral;
+ dsp_op_name = "DSA-Referral";
+ break;
+ default:
+ proto_tree_add_expert(tree, pinfo, &ei_dsp_unsupported_errcode, tvb, offset, -1);
+ break;
+ }
+ break;
+ default:
+ proto_tree_add_expert(tree, pinfo, &ei_dsp_unsupported_pdu, tvb, offset, -1);
+ return tvb_captured_length(tvb);
+ }
+
+ if(dsp_dissector) {
+ col_set_str(pinfo->cinfo, COL_INFO, dsp_op_name);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0){
+ old_offset=offset;
+ offset=(*dsp_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ if(offset == old_offset){
+ proto_tree_add_expert(tree, pinfo, &ei_dsp_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+
+/*--- proto_register_dsp -------------------------------------------*/
+void proto_register_dsp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-dsp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_dsp,
+#include "packet-dsp-ettarr.c"
+ };
+ static ei_register_info ei[] = {
+ { &ei_dsp_unsupported_opcode, { "dsp.unsupported_opcode", PI_UNDECODED, PI_WARN, "Unsupported DSP opcode", EXPFILL }},
+ { &ei_dsp_unsupported_errcode, { "dsp.unsupported_errcode", PI_UNDECODED, PI_WARN, "Unsupported DSP errcode", EXPFILL }},
+ { &ei_dsp_unsupported_pdu, { "dsp.unsupported_pdu", PI_UNDECODED, PI_WARN, "Unsupported DSP PDU", EXPFILL }},
+ { &ei_dsp_zero_pdu, { "dsp.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte DSP PDU", EXPFILL }},
+ };
+
+ module_t *dsp_module;
+ expert_module_t* expert_dsp;
+
+ /* Register protocol */
+ proto_dsp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ register_dissector("dsp", dissect_dsp, proto_dsp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_dsp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_dsp = expert_register_protocol(proto_dsp);
+ expert_register_field_array(expert_dsp, ei, array_length(ei));
+
+ /* Register our configuration options for DSP, particularly our port */
+
+ dsp_module = prefs_register_protocol_subtree("OSI/X.500", proto_dsp, prefs_register_dsp);
+
+ prefs_register_uint_preference(dsp_module, "tcp.port", "DSP TCP Port",
+ "Set the port for DSP operations (if other"
+ " than the default of 102)",
+ 10, &global_dsp_tcp_port);
+
+
+}
+
+
+/*--- proto_reg_handoff_dsp --- */
+void proto_reg_handoff_dsp(void) {
+ dissector_handle_t dsp_handle;
+
+#include "packet-dsp-dis-tab.c"
+
+ /* APPLICATION CONTEXT */
+
+ oid_add_from_string("id-ac-directory-system","2.5.3.2");
+
+ /* ABSTRACT SYNTAXES */
+
+ /* remember the tpkt handler for change in preferences */
+ tpkt_handle = find_dissector("tpkt");
+
+ /* Register DSP with ROS (with no use of RTSE) */
+ dsp_handle = find_dissector("dsp");
+ register_ros_oid_dissector_handle("2.5.9.2", dsp_handle, 0, "id-as-directory-system", FALSE);
+
+}
+
+static void
+prefs_register_dsp(void)
+{
+ static guint tcp_port = 0;
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_dsp_tcp_port;
+
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_add_uint("tcp.port", global_dsp_tcp_port, tpkt_handle);
+
+}
diff --git a/epan/dissectors/asn1/dsp/packet-dsp-template.h b/epan/dissectors/asn1/dsp/packet-dsp-template.h
new file mode 100644
index 0000000000..436cc1db8d
--- /dev/null
+++ b/epan/dissectors/asn1/dsp/packet-dsp-template.h
@@ -0,0 +1,29 @@
+/* packet-dsp.h
+ * Routines for X.511 (X.500 Directory Access Protocol) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_DSP_H
+#define PACKET_DSP_H
+
+#include "packet-dsp-exp.h"
+
+#endif /* PACKET_DSP_H */
diff --git a/epan/dissectors/asn1/ess/CMakeLists.txt b/epan/dissectors/asn1/ess/CMakeLists.txt
new file mode 100644
index 0000000000..e4f34df2bb
--- /dev/null
+++ b/epan/dissectors/asn1/ess/CMakeLists.txt
@@ -0,0 +1,54 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ess )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ExtendedSecurityServices.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -k -C )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../cms/cms-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ess/ExtendedSecurityServices.asn b/epan/dissectors/asn1/ess/ExtendedSecurityServices.asn
new file mode 100644
index 0000000000..a484535197
--- /dev/null
+++ b/epan/dissectors/asn1/ess/ExtendedSecurityServices.asn
@@ -0,0 +1,297 @@
+-- ExtendedSecurityServices as defined in RFC5035
+--
+-- The ASN definition has been modified to suit the Wireshark asn2wrs compiler
+--
+--
+--
+-- The original ASN.1 definition from RFC5035 contains the following
+-- copyright statement:
+--
+-- Full Copyright Statement
+--
+-- Copyright (C) The IETF Trust (2007).
+--
+-- This document is subject to the rights, licenses and restrictions
+-- contained in BCP 78, and except as set forth therein, the authors
+-- retain all their rights.
+--
+-- This document and the information contained herein are provided on an
+-- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+-- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
+-- THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+-- THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+-- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--
+
+ExtendedSecurityServices
+ { iso(1) member-body(2) us(840) rsadsi(113549)
+ pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-ess-2006(30) }
+
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+
+-- Cryptographic Message Syntax (CMS)
+ ContentType, IssuerAndSerialNumber
+ FROM CryptographicMessageSyntax {iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16)
+ modules(0) cms-2004(24)}
+
+-- X.509
+ AlgorithmIdentifier, CertificateSerialNumber
+ FROM AuthenticationFramework
+ {joint-iso-itu-t ds(5) module(1) authenticationFramework(7) 3}
+
+ SubjectKeyIdentifier, PolicyInformation, GeneralNames
+ FROM CertificateExtensions
+ {joint-iso-ccitt ds(5) module(1) certificateExtensions(26) 0};
+
+
+-- Extended Security Services
+
+-- The construct "SEQUENCE SIZE (1..MAX) OF" appears in several ASN.1
+-- constructs in this module. A valid ASN.1 SEQUENCE can have zero or
+-- more entries. The SIZE (1..MAX) construct constrains the SEQUENCE to
+-- have at least one entry. MAX indicates the upper bound is unspecified.
+-- Implementations are free to choose an upper bound that suits their
+-- environment.
+
+-- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+
+-- The contents are formatted as described in [UTF8]
+
+-- Section 2.7
+
+ReceiptRequest ::= SEQUENCE {
+ signedContentIdentifier ContentIdentifier,
+ receiptsFrom ReceiptsFrom,
+ receiptsTo SEQUENCE SIZE (1..ub-receiptsTo) OF GeneralNames
+}
+
+ub-receiptsTo INTEGER ::= 16
+
+id-aa-receiptRequest OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 1}
+
+ContentIdentifier ::= OCTET STRING
+
+id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 7}
+
+ReceiptsFrom ::= CHOICE {
+ allOrFirstTier [0] AllOrFirstTier, -- formerly "allOrNone [0]AllOrNone"
+ receiptList [1] SEQUENCE OF GeneralNames
+}
+
+AllOrFirstTier ::= INTEGER { -- Formerly AllOrNone
+ allReceipts (0),
+ firstTierRecipients (1)
+}
+
+-- Section 2.8
+
+Receipt ::= SEQUENCE {
+ version ESSVersion,
+ contentType ContentType,
+ signedContentIdentifier ContentIdentifier,
+ originatorSignatureValue OCTET STRING
+}
+
+id-ct-receipt OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
+ rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-ct(1) 1}
+
+ESSVersion ::= INTEGER { v1(1) }
+
+-- Section 2.9
+
+ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType
+}
+
+id-aa-contentHint OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
+ rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 4}
+
+-- Section 2.10
+
+MsgSigDigest ::= OCTET STRING
+
+id-aa-msgSigDigest OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 5}
+
+-- Section 2.11
+
+ContentReference ::= SEQUENCE {
+ contentType ContentType,
+ signedContentIdentifier ContentIdentifier,
+ originatorSignatureValue OCTET STRING
+}
+
+id-aa-contentReference OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 10 }
+
+-- Section 3.2
+
+ESSSecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark ESSPrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}
+
+ id-aa-securityLabel OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 2}
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked (0),
+ unclassified (1),
+ restricted (2),
+ confidential (3),
+ secret (4),
+ top-secret (5)
+}(0..ub-integer-options)
+
+ub-integer-options INTEGER ::= 256
+
+ESSPrivacyMark ::= CHOICE {
+ pString PrintableString (SIZE (1..ub-privacy-mark-length)),
+ utf8String UTF8String (SIZE (1..MAX))
+}
+
+ub-privacy-mark-length INTEGER ::= 128
+
+SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory
+
+ub-security-categories INTEGER ::= 64
+
+SecurityCategory ::= SEQUENCE {
+ type [0] OBJECT IDENTIFIER,
+ value [1] ANY DEFINED BY type
+}
+
+--Note: The aforementioned SecurityCategory syntax produces identical
+--hex encodings as the following SecurityCategory syntax that is
+--documented in the X.411 specification:
+--
+--SecurityCategory ::= SEQUENCE {
+-- type [0] SECURITY-CATEGORY,
+-- value [1] ANY DEFINED BY type }
+--
+--SECURITY-CATEGORY MACRO ::=
+--BEGIN
+--TYPE NOTATION ::= type | empty
+--VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER)
+--END
+
+-- this is a commonly used definition of security categories
+
+RestrictiveTag ::= SEQUENCE {
+ tagName OBJECT IDENTIFIER,
+ attributeFlags BIT STRING
+}
+
+EnumeratedTag ::= SEQUENCE {
+ tagName OBJECT IDENTIFIER,
+ attributeList SET OF SecurityAttribute
+}
+
+PermissiveTag ::= SEQUENCE {
+ tagName OBJECT IDENTIFIER,
+ attributeFlags BIT STRING
+}
+
+SecurityAttribute ::= INTEGER
+
+InformativeTag ::= SEQUENCE {
+ tagName OBJECT IDENTIFIER,
+ attributes FreeFormField
+}
+
+FreeFormField ::= CHOICE {
+ bitSetAttributes BIT STRING,
+ securityAttributes SET OF SecurityAttribute
+}
+
+-- Section 3.4
+
+EquivalentLabels ::= SEQUENCE OF ESSSecurityLabel
+
+id-aa-equivalentLabels OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 9}
+
+-- Section 4.4
+
+MLExpansionHistory ::= SEQUENCE
+ SIZE (1..ub-ml-expansion-history) OF MLData
+
+id-aa-mlExpandHistory OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 3}
+
+ub-ml-expansion-history INTEGER ::= 64
+
+MLData ::= SEQUENCE {
+ mailListIdentifier EntityIdentifier,
+ expansionTime GeneralizedTime,
+ mlReceiptPolicy MLReceiptPolicy OPTIONAL
+}
+
+EntityIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier SubjectKeyIdentifier
+}
+
+MLReceiptPolicy ::= CHOICE {
+ none [0] NULL,
+ insteadOf [1] SEQUENCE SIZE (1..MAX) OF GeneralNames,
+ inAdditionTo [2] SEQUENCE SIZE (1..MAX) OF GeneralNames
+}
+
+-- Section 5.4
+
+SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF ESSCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+}
+
+id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF ESSCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+}
+
+id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+id-sha256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
+ country(16) us(840) organization(1) gov(101)
+ csor(3) nistalgorithm(4) hashalgs(2) 1 }
+
+ESSCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+}
+
+ESSCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+}
+
+Hash ::= OCTET STRING -- SHA1 hash of entire certificate
+
+IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+}
+
+END -- of ExtendedSecurityServices
+
diff --git a/epan/dissectors/asn1/ess/Makefile.am b/epan/dissectors/asn1/ess/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ess/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ess/Makefile.common b/epan/dissectors/asn1/ess/Makefile.common
new file mode 100644
index 0000000000..b843734a98
--- /dev/null
+++ b/epan/dissectors/asn1/ess/Makefile.common
@@ -0,0 +1,55 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=ess
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ ExtendedSecurityServices.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b -k -C
+
+EXTRA_CNF= \
+ $(builddir)/../cms/cms-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf
+
+$(builddir)/../cms/cms-exp.cnf:
+ (cd $(builddir)/../cms && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/ess/Makefile.nmake b/epan/dissectors/asn1/ess/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ess/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ess/ess.cnf b/epan/dissectors/asn1/ess/ess.cnf
new file mode 100644
index 0000000000..85d040dad1
--- /dev/null
+++ b/epan/dissectors/asn1/ess/ess.cnf
@@ -0,0 +1,105 @@
+# ess.cnf
+# ExtendedSecurityServices conformation file
+
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.IMPORT ../cms/cms-exp.cnf
+
+#.EXPORTS
+ESSSecurityLabel_PDU
+
+#.PDU
+
+#.REGISTER
+ReceiptRequest B "1.2.840.113549.1.9.16.2.1" "id-aa-receiptRequest"
+ContentIdentifier B "1.2.840.113549.1.9.16.2.7" "id-aa-contentIdentifier"
+Receipt B "1.2.840.113549.1.9.16.1.1" "id-ct-receipt"
+ContentHints B "1.2.840.113549.1.9.16.2.4" "id-aa-contentHint"
+MsgSigDigest B "1.2.840.113549.1.9.16.2.5" "id-aa-msgSigDigest"
+ContentReference B "1.2.840.113549.1.9.16.2.10" "id-aa-contentReference"
+ESSSecurityLabel B "1.2.840.113549.1.9.16.2.2" "id-aa-securityLabel"
+EquivalentLabels B "1.2.840.113549.1.9.16.2.9" "id-aa-equivalentLabels"
+MLExpansionHistory B "1.2.840.113549.1.9.16.2.3" "id-aa-mlExpandHistory"
+SigningCertificate B "1.2.840.113549.1.9.16.2.12" "id-aa-signingCertificate"
+SigningCertificateV2 B "1.2.840.113549.1.9.16.2.47" "id-aa-signingCertificateV2"
+
+RestrictiveTag B "2.16.840.1.101.2.1.8.3.0" "id-restrictiveAttributes"
+EnumeratedTag B "2.16.840.1.101.2.1.8.3.1" "id-enumeratedPermissiveAttributes"
+PermissiveTag B "2.16.840.1.101.2.1.8.3.2" "id-permissiveAttributes"
+InformativeTag B "2.16.840.1.101.2.1.8.3.3" "id-informativeAttributes"
+EnumeratedTag B "2.16.840.1.101.2.1.8.3.4" "id-enumeratedRestrictiveAttributes"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+SigningCertificateV2/certs certsV2
+RestrictiveTag/tagName restrictiveTagName
+RestrictiveTag/attributeFlags restrictiveAttributeFlags
+PermissiveTag/tagName permissiveTagName
+PermissiveTag/attributeFlags permissiveAttributeFlags
+InformativeTag/tagName informativeTagName
+FreeFormField/bitSetAttributes informativeAttributeFlags
+
+#.FN_PARS SecurityCategory/type
+ FN_VARIANT = _str HF_INDEX = hf_ess_SecurityCategory_type_OID VAL_PTR = &object_identifier_id
+
+#.FN_BODY SecurityCategory/value
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS RestrictiveTag/tagName
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_PARS EnumeratedTag/tagName
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_PARS PermissiveTag/tagName
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_PARS InformativeTag/tagName
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_PARS SecurityAttribute
+ VAL_PTR = &attribute
+
+#.FN_BODY SecurityAttribute
+ guint32 attribute;
+
+ %(DEFAULT_BODY)s
+ ess_dissect_attribute (attribute, actx);
+
+#.FN_PARS RestrictiveTag/attributeFlags
+ VAL_PTR = &attributes
+
+#.FN_BODY RestrictiveTag/attributeFlags
+ tvbuff_t *attributes;
+
+ %(DEFAULT_BODY)s
+ ess_dissect_attribute_flags (attributes, actx);
+
+#.FN_PARS PermissiveTag/attributeFlags
+ VAL_PTR = &attributes
+
+#.FN_BODY PermissiveTag/attributeFlags
+ tvbuff_t *attributes;
+
+ %(DEFAULT_BODY)s
+ ess_dissect_attribute_flags (attributes, actx);
+
+#.FN_PARS FreeFormField/bitSetAttributes
+ VAL_PTR = &attributes
+
+#.FN_BODY FreeFormField/bitSetAttributes
+ tvbuff_t *attributes;
+
+ %(DEFAULT_BODY)s
+ ess_dissect_attribute_flags (attributes, actx);
+
+#.FN_BODY Receipt
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "ESS");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "Signed Receipt");
+ %(DEFAULT_BODY)s
+
+#.END
+
diff --git a/epan/dissectors/asn1/ess/packet-ess-template.c b/epan/dissectors/asn1/ess/packet-ess-template.c
new file mode 100644
index 0000000000..b9c20eb7c1
--- /dev/null
+++ b/epan/dissectors/asn1/ess/packet-ess-template.c
@@ -0,0 +1,204 @@
+/* packet-ess.c
+ * Routines for RFC 2634 and RFC 5035 Extended Security Services packet
+ * dissection
+ * Ronnie Sahlberg 2004
+ * Stig Bjorlykke 2010
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+#include <epan/uat.h>
+
+#include "packet-ber.h"
+#include "packet-ess.h"
+#include "packet-cms.h"
+#include "packet-x509ce.h"
+#include "packet-x509af.h"
+
+#define PNAME "Extended Security Services"
+#define PSNAME "ESS"
+#define PFNAME "ess"
+
+void proto_register_ess(void);
+void proto_reg_handoff_ess(void);
+
+typedef struct _ess_category_attributes_t {
+ char *oid;
+ guint lacv;
+ char *name;
+} ess_category_attributes_t;
+
+static ess_category_attributes_t *ess_category_attributes;
+static guint num_ess_category_attributes;
+
+/* Initialize the protocol and registered fields */
+static int proto_ess = -1;
+static int hf_ess_SecurityCategory_type_OID = -1;
+static int hf_ess_Category_attribute = -1;
+
+static gint ett_Category_attributes = -1;
+
+#include "packet-ess-hf.c"
+
+#include "packet-ess-val.h"
+
+/* Initialize the subtree pointers */
+#include "packet-ess-ett.c"
+
+static const char *object_identifier_id;
+
+UAT_CSTRING_CB_DEF(ess_category_attributes, oid, ess_category_attributes_t)
+UAT_DEC_CB_DEF(ess_category_attributes, lacv, ess_category_attributes_t)
+UAT_CSTRING_CB_DEF(ess_category_attributes, name, ess_category_attributes_t)
+
+static void *
+ess_copy_cb(void *dest, const void *orig, size_t len _U_)
+{
+ ess_category_attributes_t *u = (ess_category_attributes_t *)dest;
+ const ess_category_attributes_t *o = (const ess_category_attributes_t *)orig;
+
+ u->oid = g_strdup(o->oid);
+ u->lacv = o->lacv;
+ u->name = g_strdup(o->name);
+
+ return dest;
+}
+
+static void
+ess_free_cb(void *r)
+{
+ ess_category_attributes_t *u = (ess_category_attributes_t *)r;
+
+ g_free(u->oid);
+ g_free(u->name);
+}
+
+static void
+ess_dissect_attribute (guint32 value, asn1_ctx_t *actx)
+{
+ guint i;
+
+ for (i = 0; i < num_ess_category_attributes; i++) {
+ ess_category_attributes_t *u = &(ess_category_attributes[i]);
+
+ if ((strcmp (u->oid, object_identifier_id) == 0) &&
+ (u->lacv == value))
+ {
+ proto_item_append_text (actx->created_item, " (%s)", u->name);
+ break;
+ }
+ }
+}
+
+static void
+ess_dissect_attribute_flags (tvbuff_t *tvb, asn1_ctx_t *actx)
+{
+ proto_tree *tree;
+ guint8 *value;
+ guint i;
+
+ tree = proto_item_add_subtree (actx->created_item, ett_Category_attributes);
+ value = (guint8 *)tvb_memdup (wmem_packet_scope(), tvb, 0, tvb_captured_length (tvb));
+
+ for (i = 0; i < num_ess_category_attributes; i++) {
+ ess_category_attributes_t *u = &(ess_category_attributes[i]);
+
+ if ((strcmp (u->oid, object_identifier_id) == 0) &&
+ ((u->lacv / 8) < tvb_captured_length (tvb)) &&
+ (value[u->lacv / 8] & (1U << (7 - (u->lacv % 8)))))
+ {
+ proto_tree_add_string_format (tree, hf_ess_Category_attribute, tvb,
+ u->lacv / 8, 1, u->name,
+ "%s (%d)", u->name, u->lacv);
+ }
+ }
+}
+
+#include "packet-ess-fn.c"
+
+/*--- proto_register_ess ----------------------------------------------*/
+void proto_register_ess(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_ess_SecurityCategory_type_OID,
+ { "type", "ess.type_OID", FT_STRING, BASE_NONE, NULL, 0,
+ "Type of Security Category", HFILL }},
+ { &hf_ess_Category_attribute,
+ { "Attribute", "ess.attribute", FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-ess-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_Category_attributes,
+#include "packet-ess-ettarr.c"
+ };
+
+ static uat_field_t attributes_flds[] = {
+ UAT_FLD_CSTRING(ess_category_attributes,oid, "Tag Set", "Category Tag Set (Object Identifier)"),
+ UAT_FLD_DEC(ess_category_attributes,lacv, "Value", "Label And Cert Value"),
+ UAT_FLD_CSTRING(ess_category_attributes,name, "Name", "Category Name"),
+ UAT_END_FIELDS
+ };
+
+ uat_t *attributes_uat = uat_new("ESS Category Attributes",
+ sizeof(ess_category_attributes_t),
+ "ess_category_attributes",
+ TRUE,
+ &ess_category_attributes,
+ &num_ess_category_attributes,
+ UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
+ "ChEssCategoryAttributes",
+ ess_copy_cb,
+ NULL,
+ ess_free_cb,
+ NULL,
+ attributes_flds);
+
+ static module_t *ess_module;
+
+ /* Register protocol */
+ proto_ess = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ess, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ ess_module = prefs_register_protocol(proto_ess, NULL);
+
+ prefs_register_uat_preference(ess_module, "attributes_table",
+ "ESS Category Attributes",
+ "ESS category attributes translation table",
+ attributes_uat);
+
+}
+
+
+/*--- proto_reg_handoff_ess -------------------------------------------*/
+void proto_reg_handoff_ess(void) {
+#include "packet-ess-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/ess/packet-ess-template.h b/epan/dissectors/asn1/ess/packet-ess-template.h
new file mode 100644
index 0000000000..20babdc036
--- /dev/null
+++ b/epan/dissectors/asn1/ess/packet-ess-template.h
@@ -0,0 +1,31 @@
+/* packet-ess.h
+ * Routines for RFC5035 Extended Security Services packet dissection
+ * Ronnie Sahlberg 2004
+ * Stig Bjorlykke 2010
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_ESS_H
+#define PACKET_ESS_H
+
+#include "packet-ess-exp.h"
+
+#endif /* PACKET_ESS_H */
+
diff --git a/epan/dissectors/asn1/ftam/CMakeLists.txt b/epan/dissectors/asn1/ftam/CMakeLists.txt
new file mode 100644
index 0000000000..e7c8a51c5b
--- /dev/null
+++ b/epan/dissectors/asn1/ftam/CMakeLists.txt
@@ -0,0 +1,56 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ftam )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ISO8571-FTAM.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../acse/acse-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ftam/ISO8571-FTAM.asn b/epan/dissectors/asn1/ftam/ISO8571-FTAM.asn
new file mode 100644
index 0000000000..b2d8231f0f
--- /dev/null
+++ b/epan/dissectors/asn1/ftam/ISO8571-FTAM.asn
@@ -0,0 +1,1451 @@
+-- Module ISO8571-FTAM (ISO 8571-4:1988)
+--
+-- Copyright (c) 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 extension 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/epan/dissectors/asn1/ftam/Makefile.am b/epan/dissectors/asn1/ftam/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ftam/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ftam/Makefile.common b/epan/dissectors/asn1/ftam/Makefile.common
new file mode 100644
index 0000000000..8248f0fff3
--- /dev/null
+++ b/epan/dissectors/asn1/ftam/Makefile.common
@@ -0,0 +1,50 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=ftam
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ ISO8571-FTAM.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../acse/acse-exp.cnf
+
+$(builddir)/../acse/acse-exp.cnf:
+ (cd $(builddir)/../acse && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/ftam/Makefile.nmake b/epan/dissectors/asn1/ftam/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ftam/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ftam/ftam.cnf b/epan/dissectors/asn1/ftam/ftam.cnf
new file mode 100644
index 0000000000..d473b842a5
--- /dev/null
+++ b/epan/dissectors/asn1/ftam/ftam.cnf
@@ -0,0 +1,131 @@
+# FTAM.cnf
+# FTAM conformation file
+
+#.IMPORT ../acse/acse-exp.cnf
+
+#.EXPORTS
+Attribute-Extensions
+Concurrency-Access
+Date-and-Time-Attribute
+Legal-Qualification-Attribute
+Object-Availability-Attribute
+Object-Size-Attribute
+Pathname
+Permitted-Actions-Attribute
+Private-Use-Attribute
+
+#.OMIT_ASSIGNMENT
+F-CHECK-request
+F-CHECK-response
+Other-Pattern
+#.END
+
+#.PDU
+
+#.NO_EMIT ONLY_VALS
+PDU
+
+#.TYPE_RENAME
+F-OPEN-request/recovery-mode T_request_recovery_mode
+F-OPEN-response/recovery-mode T_response_recovery_mode
+Access-Control-Change-Attribute/actual-values T_actual_values1
+
+Contents-Type-List/_untag/_item Contents_Type_List_item
+Charging/_untag/_item Charging_item
+Diagnostic/_untag/_item Diagnostic_item
+Path-Access-Passwords/_untag/_item Path_Access_Passwords_item
+
+#.FIELD_RENAME
+F-OPEN-request/recovery-mode request_recovery_mode
+F-OPEN-response/recovery-mode response_recovery_mode
+Concurrency-Access/replace replace_key
+Concurrency-Access/read-attribute read_attribute_key
+Concurrency-Access/read read_key
+Concurrency-Access/insert insert_key
+Concurrency-Access/extend extend_key
+Concurrency-Access/erase erase_key
+Concurrency-Access/change-attribute change_attribute_key
+Concurrency-Access/delete-Object delete_Object_key
+F-READ-request/access-context read_access_context
+Change-Attributes/_untag/path-access-control change_path_access_control
+Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-identifier attribute_extension_attribute_identifier
+F-OPEN-request/contents-type open_contents_type
+F-READ-ATTRIB-response/attributes read_attributes
+F-READ-LINK-ATTRIB-response/attributes read_link_attributes
+F-SELECT-request/attributes select_attributes
+F-SELECT-response/attributes select_attributes
+Change-Attributes/_untag/access-control change_attributes_access_control
+Access-Control-Change-Attribute/actual-values actual_values1
+Account-Attribute/actual-values actual_values2
+Access-Control-Attribute/actual-values actual_values3
+Private-Use-Attribute/actual-values actual_values4
+Date-and-Time-Attribute/actual-values actual_values5
+User-Identity-Attribute/actual-values actual_values6
+Object-Size-Attribute/actual-values actual_values7
+Object-Availability-Attribute/actual-values actual_values8
+Legal-Qualification-Attribute/actual-values actual_values9
+
+#.FN_PARS Extension-Attribute/extension-attribute-identifier
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_PARS OBJECT_IDENTIFIER
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Contents-Type-Attribute/document-type/parameter
+ if (actx->external.direct_reference) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY Extension-Attribute/extension-attribute
+ if (actx->external.direct_reference) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+ }
+
+#.FN_PARS Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-identifier
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-Pattern
+ if (actx->external.direct_reference) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY AP-title
+ /* XXX have no idea about this one */
+#.FN_BODY AE-qualifier
+ /* XXX have no idea about this one */
+
+#.FN_BODY FTAM-Regime-PDU VAL_PTR = &branch_taken
+ gint branch_taken;
+
+ %(DEFAULT_BODY)s
+
+ if( (branch_taken!=-1) && ftam_FTAM_Regime_PDU_vals[branch_taken].strptr ){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s:", ftam_FTAM_Regime_PDU_vals[branch_taken].strptr);
+ }
+
+#.FN_BODY File-PDU VAL_PTR = &branch_taken
+ gint branch_taken;
+
+ %(DEFAULT_BODY)s
+
+ if( (branch_taken!=-1) && ftam_File_PDU_vals[branch_taken].strptr ){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s:", ftam_File_PDU_vals[branch_taken].strptr);
+ }
+
+#.FN_BODY Bulk-Data-PDU VAL_PTR = &branch_taken
+ gint branch_taken;
+
+ %(DEFAULT_BODY)s
+
+ if( (branch_taken!=-1) && ftam_Bulk_Data_PDU_vals[branch_taken].strptr ){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s:", ftam_Bulk_Data_PDU_vals[branch_taken].strptr);
+ }
+
+#.FN_BODY FSM-PDU VAL_PTR = &branch_taken
+ gint branch_taken;
+
+ %(DEFAULT_BODY)s
+
+ if( (branch_taken!=-1) && ftam_FSM_PDU_vals[branch_taken].strptr ){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s:", ftam_FSM_PDU_vals[branch_taken].strptr);
+ }
diff --git a/epan/dissectors/asn1/ftam/packet-ftam-template.c b/epan/dissectors/asn1/ftam/packet-ftam-template.c
new file mode 100644
index 0000000000..7f4ed6a06c
--- /dev/null
+++ b/epan/dissectors/asn1/ftam/packet-ftam-template.c
@@ -0,0 +1,180 @@
+/* packet-ftam_asn1.c
+ * Routine to dissect OSI ISO 8571 FTAM Protocol packets
+ * based on the ASN.1 specification from http://www.itu.int/ITU-T/asn1/database/iso/8571-4/1988/
+ *
+ * also based on original handwritten dissector by
+ * Yuriy Sidelnikov <YSidelnikov@hotmail.com>
+ *
+ * Anders Broman and Ronnie Sahlberg 2005 - 2006
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ftam.h"
+
+#define PNAME "ISO 8571 FTAM"
+#define PSNAME "FTAM"
+#define PFNAME "ftam"
+
+void proto_register_ftam(void);
+void proto_reg_handoff_ftam(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_ftam = -1;
+
+/* Declare the function to avoid a compiler warning */
+static int dissect_ftam_OR_Set(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+
+static int hf_ftam_unstructured_text = -1; /* ISO FTAM unstructured text */
+static int hf_ftam_unstructured_binary = -1; /* ISO FTAM unstructured binary */
+#include "packet-ftam-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_ftam = -1;
+#include "packet-ftam-ett.c"
+
+static expert_field ei_ftam_zero_pdu = EI_INIT;
+
+#include "packet-ftam-fn.c"
+
+/*
+* Dissect FTAM unstructured text
+*/
+static int
+dissect_ftam_unstructured_text(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, void* data _U_)
+{
+ proto_tree_add_item (parent_tree, hf_ftam_unstructured_text, tvb, 0, tvb_reported_length_remaining(tvb, 0), ENC_ASCII|ENC_NA);
+ return tvb_captured_length(tvb);
+}
+
+/*
+* Dissect FTAM unstructured binary
+*/
+static int
+dissect_ftam_unstructured_binary(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, void* data _U_)
+{
+ proto_tree_add_item (parent_tree, hf_ftam_unstructured_binary, tvb, 0, tvb_reported_length_remaining(tvb, 0), ENC_NA);
+ return tvb_captured_length(tvb);
+}
+
+/*
+* Dissect FTAM PDUs inside a PPDU.
+*/
+static int
+dissect_ftam(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_ftam, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_ftam);
+ }
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "FTAM");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0){
+ old_offset=offset;
+ offset=dissect_ftam_PDU(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ if(offset == old_offset){
+ proto_tree_add_expert(tree, pinfo, &ei_ftam_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+ return tvb_captured_length(tvb);
+}
+
+
+/*--- proto_register_ftam -------------------------------------------*/
+void proto_register_ftam(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ { &hf_ftam_unstructured_text,
+ { "ISO FTAM unstructured text", "ftam.unstructured_text", FT_STRING,
+ BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_ftam_unstructured_binary,
+ { "ISO FTAM unstructured binary", "ftam.unstructured_binary", FT_BYTES,
+ BASE_NONE, NULL, 0x0, NULL, HFILL } },
+#include "packet-ftam-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ftam,
+#include "packet-ftam-ettarr.c"
+ };
+ static ei_register_info ei[] = {
+ { &ei_ftam_zero_pdu, { "ftam.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte FTAM PDU", EXPFILL }},
+ };
+
+ expert_module_t* expert_ftam;
+
+ /* Register protocol */
+ proto_ftam = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("ftam", dissect_ftam, proto_ftam);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ftam, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_ftam = expert_register_protocol(proto_ftam);
+ expert_register_field_array(expert_ftam, ei, array_length(ei));
+
+}
+
+
+/*--- proto_reg_handoff_ftam --- */
+void proto_reg_handoff_ftam(void) {
+ register_ber_oid_dissector("1.0.8571.1.1", dissect_ftam, proto_ftam,"iso-ftam(1)");
+ register_ber_oid_dissector("1.0.8571.2.1", dissect_ftam, proto_ftam,"ftam-pci(1)");
+ register_ber_oid_dissector("1.3.14.5.2.2", dissect_ftam, proto_ftam,"NIST file directory entry abstract syntax");
+
+ /* Unstructured text file document type FTAM-1 */
+ register_ber_oid_dissector("1.0.8571.5.1", dissect_ftam_unstructured_text, proto_ftam,"ISO FTAM unstructured text");
+ oid_add_from_string("ISO FTAM sequential text","1.0.8571.5.2");
+ oid_add_from_string("FTAM unstructured text abstract syntax","1.0.8571.2.3");
+ oid_add_from_string("FTAM simple-hierarchy","1.0.8571.2.5");
+ oid_add_from_string("FTAM hierarchical file model","1.0.8571.3.1");
+ oid_add_from_string("FTAM unstructured constraint set","1.0.8571.4.1");
+
+ /* Unstructured binary file document type FTAM-3 */
+ register_ber_oid_dissector("1.0.8571.5.3", dissect_ftam_unstructured_binary, proto_ftam,"ISO FTAM unstructured binary");
+ oid_add_from_string("FTAM unstructured binary abstract syntax","1.0.8571.2.4");
+
+ /* Filedirectory file document type NBS-9 */
+ oid_add_from_string("NBS-9 FTAM file directory file","1.3.14.5.5.9");
+
+ /* Filedirectory file document type NBS-9 (WITH OLD NIST OIDs)*/
+ oid_add_from_string("NBS-9-OLD FTAM file directory file","1.3.9999.1.5.9");
+ oid_add_from_string("NIST file directory entry abstract syntax","1.3.9999.1.2.2");
+}
diff --git a/epan/dissectors/asn1/ftam/packet-ftam-template.h b/epan/dissectors/asn1/ftam/packet-ftam-template.h
new file mode 100644
index 0000000000..19cac16286
--- /dev/null
+++ b/epan/dissectors/asn1/ftam/packet-ftam-template.h
@@ -0,0 +1,34 @@
+/* packet-ftam.h
+ * Routine to dissect OSI ISO 8571 FTAM Protocol packets
+ * based on the ASN.1 specification from http://www.itu.int/ITU-T/asn1/database/iso/8571-4/1988/
+ *
+ * also based on original handwritten dissector by
+ * Yuriy Sidelnikov <YSidelnikov@hotmail.com>
+ *
+ * Anders Broman and Ronnie Sahlberg 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_FTAM_H
+#define PACKET_FTAM_H
+
+#include "packet-ftam-exp.h"
+
+#endif /* PACKET_FTAM_H */
diff --git a/epan/dissectors/asn1/goose/CMakeLists.txt b/epan/dissectors/asn1/goose/CMakeLists.txt
new file mode 100644
index 0000000000..aa06dc2155
--- /dev/null
+++ b/epan/dissectors/asn1/goose/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME goose )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/goose/Makefile.am b/epan/dissectors/asn1/goose/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/goose/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/goose/Makefile.common b/epan/dissectors/asn1/goose/Makefile.common
new file mode 100644
index 0000000000..b9946fa1ae
--- /dev/null
+++ b/epan/dissectors/asn1/goose/Makefile.common
@@ -0,0 +1,42 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=goose
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/goose/Makefile.nmake b/epan/dissectors/asn1/goose/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/goose/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/goose/goose.asn b/epan/dissectors/asn1/goose/goose.asn
new file mode 100644
index 0000000000..3ed831f8c1
--- /dev/null
+++ b/epan/dissectors/asn1/goose/goose.asn
@@ -0,0 +1,143 @@
+IEC61850 DEFINITIONS ::= BEGIN
+
+GOOSEpdu ::= CHOICE {
+ gseMngtPdu [APPLICATION 0] IMPLICIT GSEMngtPdu,
+ goosePdu [APPLICATION 1] IMPLICIT IECGoosePdu,
+ ...
+}
+
+GSEMngtPdu ::= SEQUENCE {
+ stateID [0] IMPLICIT INTEGER,
+-- security [3] ANY OPTIONAL,
+ -- reserved for future definition
+ requestResp RequestResponse
+-- CHOICE {
+-- requests [1] IMPLICIT GSEMngtRequests,
+-- responses [2] IMPLICIT GSEMngtResponses
+-- }
+}
+
+RequestResponse ::= CHOICE {
+ requests [1] IMPLICIT GSEMngtRequests,
+ responses [2] IMPLICIT GSEMngtResponses
+}
+
+GSEMngtRequests ::= CHOICE {
+ getGoReference [1] IMPLICIT GetReferenceRequestPdu,
+ getGOOSEElementNumber [2] IMPLICIT GetElementRequestPdu,
+ getGsReference [3] IMPLICIT GetReferenceRequestPdu,
+ getGSSEDataOffset [4] IMPLICIT GetElementRequestPdu,
+ ...
+}
+
+GSEMngtResponses ::= CHOICE {
+ gseMngtNotSupported [0] IMPLICIT NULL,
+ getGoReference [1] IMPLICIT GSEMngtResponsePdu,
+ getGOOSEElementNumber [2] IMPLICIT GSEMngtResponsePdu,
+ getGsReference [3] IMPLICIT GSEMngtResponsePdu,
+ getGSSEDataOffset [4] IMPLICIT GSEMngtResponsePdu,
+ ...
+}
+
+GetReferenceRequestPdu ::= SEQUENCE {
+ ident [0] IMPLICIT VisibleString, -- size shall support up to 65 octets
+ offset [1] IMPLICIT SEQUENCE OF INTEGER,
+ ...
+}
+
+GetElementRequestPdu ::= SEQUENCE {
+ ident [0] IMPLICIT VisibleString, -- size shall support up to 65 octets
+ references [1] IMPLICIT SEQUENCE OF VisibleString,
+ ...
+}
+
+GSEMngtResponsePdu ::= SEQUENCE {
+ ident [0] IMPLICIT VisibleString, -- echos the value of the request
+ confRev [1] IMPLICIT INTEGER OPTIONAL,
+ posNeg PositiveNegative,
+-- CHOICE {
+-- responsePositive [2] IMPLICIT SEQUENCE {
+-- datSet [0] IMPLICIT VisibleString OPTIONAL,
+-- result [1] IMPLICIT SEQUENCE OF RequestResults
+-- },
+-- responseNegative [3] IMPLICIT GlbErrors
+-- },
+ ...
+}
+
+PositiveNegative ::= CHOICE {
+ responsePositive [2] IMPLICIT SEQUENCE {
+ datSet [0] IMPLICIT VisibleString OPTIONAL,
+ result [1] IMPLICIT SEQUENCE OF RequestResults
+ },
+ responseNegative [3] IMPLICIT GlbErrors
+}
+
+RequestResults::= CHOICE {
+ offset [0] IMPLICIT INTEGER,
+ reference [1] IMPLICIT IA5String,
+ error [2] IMPLICIT ErrorReason
+}
+
+GlbErrors ::= INTEGER {
+ other(0),
+ unknownControlBlock(1),
+ responseTooLarge(2),
+ controlBlockConfigurationError(3) --,
+-- ...
+}
+
+ErrorReason ::= INTEGER {
+ other (0),
+ notFound (1) --,
+-- ...
+}
+
+IECGoosePdu ::= SEQUENCE {
+ gocbRef [0] IMPLICIT VisibleString,
+ timeAllowedtoLive [1] IMPLICIT INTEGER,
+ datSet [2] IMPLICIT VisibleString,
+ goID [3] IMPLICIT VisibleString OPTIONAL,
+ t [4] IMPLICIT UtcTime,
+ stNum [5] IMPLICIT INTEGER,
+ sqNum [6] IMPLICIT INTEGER,
+ test [7] IMPLICIT BOOLEAN DEFAULT FALSE,
+ confRev [8] IMPLICIT INTEGER,
+ ndsCom [9] IMPLICIT BOOLEAN DEFAULT FALSE,
+ numDatSetEntries [10] IMPLICIT INTEGER,
+ allData [11] IMPLICIT SEQUENCE OF Data --,
+-- security [12] ANY OPTIONAL
+ -- reserved for digital signature
+}
+
+UtcTime ::= OCTET STRING -- format and size defined in 8.1.3.6.
+
+TimeOfDay ::= OCTET STRING -- (SIZE (4 | 6))
+FloatingPoint ::= OCTET STRING
+
+
+Data ::= CHOICE
+ {
+ -- context tag 0 is reserved for AccessResult
+ array [1] IMPLICIT SEQUENCE OF Data,
+ structure [2] IMPLICIT SEQUENCE OF Data,
+ boolean [3] IMPLICIT BOOLEAN,
+ bit-string [4] IMPLICIT BIT STRING,
+ integer [5] IMPLICIT INTEGER,
+ unsigned [6] IMPLICIT INTEGER,
+ floating-point [7] IMPLICIT FloatingPoint,
+ real [8] IMPLICIT REAL,
+ octet-string [9] IMPLICIT OCTET STRING,
+ visible-string [10] IMPLICIT VisibleString,
+ binary-time [12] IMPLICIT TimeOfDay,
+ bcd [13] IMPLICIT INTEGER,
+ booleanArray [14] IMPLICIT BIT STRING,
+ objId [15] IMPLICIT OBJECT IDENTIFIER,
+ ...,
+ mMSString [16] IMPLICIT MMSString,
+ utc-time [17] IMPLICIT UtcTime -- added by IEC61850 8.1 G3
+ }
+
+MMSString ::= UTF8String
+
+END
diff --git a/epan/dissectors/asn1/goose/goose.cnf b/epan/dissectors/asn1/goose/goose.cnf
new file mode 100644
index 0000000000..3331736ca2
--- /dev/null
+++ b/epan/dissectors/asn1/goose/goose.cnf
@@ -0,0 +1,70 @@
+# goose.cnf
+# goose conformation file
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.PDU
+
+#.NO_EMIT ONLY_VALS
+GOOSEpdu
+
+#.TYPE_RENAME
+
+
+#.FN_BODY UtcTime
+
+ guint32 len;
+ guint32 seconds;
+ guint32 fraction;
+ guint32 nanoseconds;
+ nstime_t ts;
+ gchar * ptime;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len != 8)
+ {
+ proto_tree_add_expert(tree, actx->pinfo, &ei_goose_mal_utctime, tvb, offset, len);
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
+ }
+ return offset;
+ }
+
+ seconds = tvb_get_ntohl(tvb, offset);
+ fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
+ nanoseconds = (guint32)( ((guint64)fraction * G_GUINT64_CONSTANT(1000000000)) / G_GUINT64_CONSTANT(0x100000000) ) ;
+
+ ts.secs = seconds;
+ ts.nsecs = nanoseconds;
+
+ ptime = abs_time_to_str(wmem_packet_scope(), &ts, ABSOLUTE_TIME_UTC, TRUE);
+
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
+
+ return offset;
+
+
+
+#.TYPE_ATTR
+UtcTime TYPE = FT_STRING DISPLAY = BASE_NONE
+
+
+#.FIELD_RENAME
+GetReferenceRequestPdu/offset getReferenceRequestPDU_offset
+GSEMngtResponses/getGsReference gseMngtResponses_GetGSReference
+GSEMngtResponses/getGoReference gseMngtResponses_GetGOReference
+GSEMngtResponses/getGSSEDataOffset gseMngtResponses_GetGSSEDataOffset
+GSEMngtResponses/getGOOSEElementNumber gseMngtResponses_GetGOOSEElementNumber
+
+#.FIELD_ATTR
+IECGoosePdu/stNum TYPE = FT_UINT32 DISPLAY = BASE_DEC
+IECGoosePdu/sqNum TYPE = FT_UINT32 DISPLAY = BASE_DEC
+
+#.END
diff --git a/epan/dissectors/asn1/goose/packet-goose-template.c b/epan/dissectors/asn1/goose/packet-goose-template.c
new file mode 100644
index 0000000000..b396a6f617
--- /dev/null
+++ b/epan/dissectors/asn1/goose/packet-goose-template.c
@@ -0,0 +1,160 @@
+/* packet-goose.c
+ * Routines for IEC 61850 GOOSE packet dissection
+ * Martin Lutz 2008
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+#include <epan/etypes.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+
+#define PNAME "GOOSE"
+#define PSNAME "GOOSE"
+#define PFNAME "goose"
+
+void proto_register_goose(void);
+void proto_reg_handoff_goose(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_goose = -1;
+static int hf_goose_appid = -1;
+static int hf_goose_length = -1;
+static int hf_goose_reserve1 = -1;
+static int hf_goose_reserve2 = -1;
+
+static expert_field ei_goose_mal_utctime = EI_INIT;
+static expert_field ei_goose_zero_pdu = EI_INIT;
+
+#include "packet-goose-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_goose = -1;
+
+#include "packet-goose-ett.c"
+
+#include "packet-goose-fn.c"
+
+/*
+* Dissect GOOSE PDUs inside a PPDU.
+*/
+static int
+dissect_goose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ int offset = 0;
+ int old_offset;
+ guint16 length;
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PNAME);
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ item = proto_tree_add_item(parent_tree, proto_goose, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_goose);
+
+
+ /* APPID */
+ proto_tree_add_item(tree, hf_goose_appid, tvb, offset, 2, ENC_BIG_ENDIAN);
+
+ /* Length */
+ length = tvb_get_ntohs(tvb, offset + 2);
+ proto_tree_add_item(tree, hf_goose_length, tvb, offset + 2, 2, ENC_BIG_ENDIAN);
+
+ /* Reserved 1 */
+ proto_tree_add_item(tree, hf_goose_reserve1, tvb, offset + 4, 2, ENC_BIG_ENDIAN);
+
+ /* Reserved 2 */
+ proto_tree_add_item(tree, hf_goose_reserve2, tvb, offset + 6, 2, ENC_BIG_ENDIAN);
+
+ offset = 8;
+ while (offset < length){
+ old_offset = offset;
+ offset = dissect_goose_GOOSEpdu(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ if (offset == old_offset) {
+ proto_tree_add_expert(tree, pinfo, &ei_goose_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+
+/*--- proto_register_goose -------------------------------------------*/
+void proto_register_goose(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ { &hf_goose_appid,
+ { "APPID", "goose.appid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL }},
+
+ { &hf_goose_length,
+ { "Length", "goose.length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+
+ { &hf_goose_reserve1,
+ { "Reserved 1", "goose.reserve1", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL }},
+
+ { &hf_goose_reserve2,
+ { "Reserved 2", "goose.reserve2", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL }},
+
+#include "packet-goose-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_goose,
+#include "packet-goose-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_goose_mal_utctime, { "goose.malformed.utctime", PI_MALFORMED, PI_WARN, "BER Error: malformed UTCTime encoding", EXPFILL }},
+ { &ei_goose_zero_pdu, { "goose.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte GOOSE PDU", EXPFILL }},
+ };
+
+ expert_module_t* expert_goose;
+
+ /* Register protocol */
+ proto_goose = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("goose", dissect_goose, proto_goose);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_goose, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_goose = expert_register_protocol(proto_goose);
+ expert_register_field_array(expert_goose, ei, array_length(ei));
+}
+
+/*--- proto_reg_handoff_goose --- */
+void proto_reg_handoff_goose(void) {
+
+ dissector_handle_t goose_handle;
+ goose_handle = find_dissector("goose");
+
+ dissector_add_uint("ethertype", ETHERTYPE_IEC61850_GOOSE, goose_handle);
+}
diff --git a/epan/dissectors/asn1/gprscdr/3GPPGenericChargingDataTypes.asn b/epan/dissectors/asn1/gprscdr/3GPPGenericChargingDataTypes.asn
new file mode 100644
index 0000000000..da7ce37503
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/3GPPGenericChargingDataTypes.asn
@@ -0,0 +1,431 @@
+-- 3GPP TS 32.298 V6.1.0 (2005-09)
+TGPPGenericChargingDataTypes {itu-t identified-organization (4) etsi(0) mobileDomain (0) gsmUmtsNetwork (5) charging (0) asn1Module (0) genericChargingDataTypes (0) version1 (1)}
+-- Editor's Note: what is the correct structure of the OID?
+
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+CallReferenceNumber, NumberOfForwarding
+FROM MAP-CH-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CH-DataTypes (13) version6 (6) }
+
+-- from TS 29.002 [60]
+
+AddressString, BasicServiceCode, IMSI, IMEI, ISDN-AddressString, LCSClientExternalID, LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+
+-- from TS 29.002 [60]
+
+DestinationRoutingAddress
+FROM CAP-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) cap-datatypes (52) version1 (0) }
+
+DefaultCallHandling, DefaultSMS-Handling, NotificationToMSUser, ServiceKey
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6) }
+
+-- from TS 29.002 [60]
+
+MOLR-Type
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+
+-- from TS 24.080 [61] (editor's note: correct reference?)
+
+BearerServiceCode
+FROM MAP-BS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-BS-Code (20) version6 (6) }
+
+-- from TS 29.002 [60]
+
+-- Editor's note: clarify if this should be moved to the CS module
+
+TeleserviceCode
+FROM MAP-TS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-TS-Code (19) version2 (2) }
+
+-- from TS 29.002 [60]
+
+-- Editor's note: clarify if this should be moved to the CS module
+
+SS-Code
+FROM MAP-SS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-SS-Code (15) version6 (6) }
+
+-- from TS 29.002 [60]
+
+-- Editor's note: clarify if this should be moved to the CS module
+
+Ext-GeographicalInformation, LCSClientType, LCS-Priority, LocationType
+FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version7 (7)}
+
+-- from TS 29.002 [60]
+
+PositionMethodFailure-Diagnostic, UnauthorizedLCSClient-Diagnostic
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version7 (7)}
+
+-- from TS 29.002 [60]
+
+-- Editor's note: "UnauthorizedLCSClient-Diagnostic" was missing in 32.205
+
+BasicService
+FROM Basic-Service-Elements { itu-t identified-organization (4) etsi (0)
+196 basic-service-elements (8) }
+--
+-- from "Digital Subscriber Signalling System No. one (DSS1) protocol"
+-- ETS 300 196 [62]
+--
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) version1 (1) protocol (3)}
+
+-- from ITU-T Rec. X.2ab [105] Editor's note: clarify if this definition is still needed. It appears that it ends in Nirwana.
+
+-- WS localy defined
+--ManagementExtension
+--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+
+-- from ITU-T Rec. X.721 [106] Editor's note: clarify if this definition is still needed.
+AE-title
+FROM ACSE-1 {joint-iso-itu-t association-control (2) abstract-syntax (1) apdus (0) version (1) };
+--
+-- From ITU-T Rec. X.2cd [107]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY" Editor's note: clarify if this definition is still needed. It appears that it ends in Nirwana.
+-- ;
+------------------------------------------------------------------------------
+--
+-- Generic Data Types
+--
+------------------------------------------------------------------------------
+
+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 24.008.
+ -- 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.
+
+CallDuration ::= INTEGER
+ --
+ -- The call duration is counted in seconds.
+ -- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+ -- For call attempts this is the call holding time.
+ --
+
+-- Editor's note: the explanation above should be removed as proper definitions are required in the individual CDR parameter descriptions in [10] - [31]
+
+CalledNumber ::= BCDDirectoryNumber
+
+CallEventRecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 29..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mmO1SRecord (29),
+ mmO4FRqRecord (30),
+ mmO4FRsRecord (31),
+ mmO4DRecord (32),
+ mmO1DRecord (33),
+ mmO4RRecord (34),
+ mmO1RRecord (35),
+ mmOMDRecord (36),
+ mmR4FRecord (37),
+ mmR1NRqRecord (38),
+ mmR1NRsRecord (39),
+ mmR1RtRecord (40),
+ mmR1AFRecord (42),
+ mmR4DRqRecord (43),
+ mmR4DRsRecord (44),
+ mmR1RRRecord (45),
+ mmR4RRqRecord (46),
+ mmR4RRsRecord (47),
+ mmRMDRecord (48),
+ mmFRecord (49),
+ mmBx1SRecord (50),
+ mmBx1VRecord (51),
+ mmBx1URecord (52),
+ mmBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ s-CSCFRecord (63),
+ p-CSCFRecord (64),
+ i-CSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+ egsnPDPRecord (70),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+ subBMSCRecord (78),
+ contentBMSCRecord (79)
+}
+
+CallingNumber ::= BCDDirectoryNumber
+
+CallReference ::= INTEGER
+
+CellId ::= OCTET STRING (SIZE(2))
+ --
+ -- Coded according to TS 24.008
+ --
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008
+ 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 29.002.
+ itu-tQ767Cause [2] INTEGER,
+ -- See ITU-T Q.767
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic
+ -- see TS 29.002
+}
+
+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))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+ --
+ -- See LCS Cause Value, 3GPP TS 49.031
+ --
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+ --
+ -- See LCS QoS IE, 3GPP TS 49.031
+ --
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+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
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+ --
+ -- See TS 24.008
+ --
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+ --
+ -- See TS 23.003
+ --
+
+MSISDN ::= ISDN-AddressString
+ --
+ -- See TS 23.003
+ --
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+ --
+ -- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
+ --
+PositioningData ::= OCTET STRING (SIZE(1..33))
+ --
+ -- See Positioning Data IE (octet 3..n), 3GPP TS 49.031
+ --
+
+RecordingEntity ::= AddressString
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+ --
+ -- This type contains the binary coded decimal representation of
+ -- the SMS address field the encoding of the octet string is in
+ -- accordance with the definition of address fields in TS 23.040.
+ -- This encoding includes type of number and numbering plan indication
+ -- together with the address value range.
+ --
+
+SystemType ::= ENUMERATED
+{
+ --
+ -- "unknown" is not to be used in PS domain.
+ --
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+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
+ --
+
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/CMakeLists.txt b/epan/dissectors/asn1/gprscdr/CMakeLists.txt
new file mode 100644
index 0000000000..6678566dd7
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/CMakeLists.txt
@@ -0,0 +1,58 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME gprscdr )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ GenericChargingDataTypesV1250.asn
+ GPRSChargingDataTypesV641.asn
+ GPRSChargingDataTypesV1260.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../gsm_map/gsm_map-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypes.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypes.asn
new file mode 100644
index 0000000000..7f9f45126e
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypes.asn
@@ -0,0 +1,772 @@
+-- 3GPP TS 32.298 V6.1.0 (2005-09)
+--GPRSChargingDataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0) gsmUmtsNetwork (x) charging (5) asn1Module (z) gprsChargingDataTypes (2) version1 (1)}
+GPRSChargingDataTypes {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+--CallDuration, CalledNumber, CallEventRecordType, CallingNumber, CallReferenceNumber, CellId, DefaultSMS-Handling, Diagnostics, Ext-GeographicalInformation, IMSI, IMEI, IPAddress, ISDN-AddressString, LCSCause, LCSClientExternalID, LCSClientIdentity, LCSClientInternalID, LCSClientType, LCS-Priority, LCSQoSInfo, LevelOfCAMELService, LocalSequenceNumber, LocationAreaAndCell, LocationAreaCode, LocationType, ManagementExtensions, MessageReference, MSISDN, NotificationToMSUser, PositioningData, RecordingEntity, ServiceKey, SMSResult, SmsTpDestinationNumber, TimeStamp
+--
+--FROM 3GPPGenericChargingDataTypes {itu-t identified-organization (4) etsi(0) mobileDomain (0) gsmUmtsNetwork (x) charging (y) asn1Module (z) genericChargingDataTypes (0) version1 (1)}
+
+
+DefaultGPRS-Handling
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6) }
+-- from TS 29.002 [60]
+
+
+LocationMethod
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+
+-- from TS 24.080 [61] (editor's note: correct reference?)
+
+--MBMS2G3GIndicator, FileRepairSupported, MBMSServiceType, MBMSUserServiceType, RequiredMBMSBearerCapabilities, MBMSSessionIdentity, TMGI, MBMSInformation
+
+
+--FROM MBMSChargingDataTypes {itu-t identified-organization (4) etsi(0) mobileDomain (0) gsm-Network (1) charging (y) asn1Module (z) mbmsChargingDataTypes (6) version1 (1)}
+--FROM MBMSChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) mbmsChargingDataTypes (8) asn1Module (0) version1 (0)}
+
+-- Editor's note: consider moving the above 2 items also into the generic module in order to avoid again copying from external sources.
+;
+
+------------------------------------------------------------------------------
+--
+-- GPRS CALL AND EVENT RECORDS
+--
+------------------------------------------------------------------------------
+
+GPRSCallEventRecord ::= CHOICE
+--
+-- Record values 20..27 are GPRS specific
+-- Record values 29..30 are GPRS and MBMS specific
+{
+ sgsnPDPRecord [20] SGSNPDPRecord,
+ ggsnPDPRecord [21] GGSNPDPRecord,
+ sgsnMMRecord [22] SGSNMMRecord,
+ sgsnSMORecord [23] SGSNSMORecord,
+ sgsnSMTRecord [24] SGSNSMTRecord,
+-- sgsnLCTRecord [25] SGSNLCTRecord,
+-- sgsnLCORecord [26] SGSNLCORecord,
+-- sgsnLCNRecord [27] SGSNLCNRecord,
+ egsnPDPRecord [28] EGSNPDPRecord,
+ sgsnMBMSRecord [29] SGSNMBMSRecord,
+ ggsnMBMSRecord [30] GGSNMBMSRecord
+}
+-- Editor's note: the acronyms for the LCS record types are not consistent with CS and the "call event record type" notation. They also contradict to the record type definitons below, so alignment is needed.
+
+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 OPTIONAL,
+ pdpType [8] PDPType OPTIONAL,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL
+
+}
+
+EGSNPDPRecord ::= 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 OPTIONAL,
+ pdpType [8] PDPType OPTIONAL,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL
+}
+
+
+SGSNMMRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ sgsnAddress [3] GSNAddress OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ routingArea [5] RoutingAreaCode OPTIONAL,
+ locationAreaCode [6] LocationAreaCode OPTIONAL,
+ cellIdentifier [7] CellId OPTIONAL,
+ changeLocation [8] SEQUENCE OF ChangeLocation OPTIONAL,
+ recordOpeningTime [9] TimeStamp,
+ duration [10] CallDuration OPTIONAL,
+ sgsnChange [11] SGSNChange OPTIONAL,
+ causeForRecClosing [12] CauseForRecClosing,
+ diagnostics [13] Diagnostics OPTIONAL,
+ recordSequenceNumber [14] INTEGER OPTIONAL,
+ nodeID [15] NodeID OPTIONAL,
+ recordExtensions [16] ManagementExtensions OPTIONAL,
+ localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+ servedMSISDN [18] MSISDN OPTIONAL,
+ chargingCharacteristics [19] ChargingCharacteristics,
+ cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+ rATType [21] RATType OPTIONAL,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL
+}
+
+SGSNPDPRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ servedIMEI [4] IMEI OPTIONAL,
+ sgsnAddress [5] GSNAddress OPTIONAL,
+ msNetworkCapability [6] MSNetworkCapability OPTIONAL,
+ routingArea [7] RoutingAreaCode OPTIONAL,
+ locationAreaCode [8] LocationAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ chargingID [10] ChargingID,
+ ggsnAddressUsed [11] GSNAddress,
+ accessPointNameNI [12] AccessPointNameNI OPTIONAL,
+ pdpType [13] PDPType OPTIONAL,
+ servedPDPAddress [14] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [16] TimeStamp,
+ duration [17] CallDuration,
+ sgsnChange [18] SGSNChange OPTIONAL,
+ causeForRecClosing [19] CauseForRecClosing,
+ diagnostics [20] Diagnostics OPTIONAL,
+ recordSequenceNumber [21] INTEGER OPTIONAL,
+ nodeID [22] NodeID OPTIONAL,
+ recordExtensions [23] ManagementExtensions OPTIONAL,
+ localSequenceNumber [24] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [25] APNSelectionMode OPTIONAL,
+ accessPointNameOI [26] AccessPointNameOI OPTIONAL,
+ servedMSISDN [27] MSISDN OPTIONAL,
+ chargingCharacteristics [28] ChargingCharacteristics,
+ rATType [29] RATType OPTIONAL,
+ cAMELInformationPDP [30] CAMELInformationPDP OPTIONAL,
+ rNCUnsentDownlinkVolume [31] DataVolumeGPRS OPTIONAL,
+ chChSelectionMode [32] ChChSelectionMode OPTIONAL,
+ dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL
+}
+
+SGSNSMORecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ messageReference [10] MessageReference,
+ eventTimeStamp [11] TimeStamp,
+ smsResult [12] SMSResult OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ nodeID [14] NodeID OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [16] ChargingCharacteristics,
+ rATType [17] RATType OPTIONAL,
+ destinationNumber [18] SmsTpDestinationNumber OPTIONAL,
+ cAMELInformationSMS [19] CAMELInformationSMS OPTIONAL,
+ chChSelectionMode [20] ChChSelectionMode OPTIONAL
+}
+
+SGSNSMTRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ eventTimeStamp [10] TimeStamp,
+ smsResult [11] SMSResult OPTIONAL,
+ recordExtensions [12] ManagementExtensions OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics,
+ rATType [16] RATType OPTIONAL,
+ chChSelectionMode [17] ChChSelectionMode OPTIONAL,
+ cAMELInformationSMS [18] CAMELInformationSMS OPTIONAL
+}
+
+SGSNMTLCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType,
+ lcsClientIdentity [3] LCSClientIdentity,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationType [7] LocationType,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ notificationToMSUser [13] NotificationToMSUser OPTIONAL,
+ privacyOverride [14] NULL OPTIONAL,
+ location [15] LocationAreaAndCell OPTIONAL,
+ routingArea [16] RoutingAreaCode OPTIONAL,
+ locationEstimate [17] Ext-GeographicalInformation OPTIONAL,
+ positioningData [18] PositioningData OPTIONAL,
+ lcsCause [19] LCSCause OPTIONAL,
+ diagnostics [20] Diagnostics OPTIONAL,
+ nodeID [21] NodeID OPTIONAL,
+ localSequenceNumber [22] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ rATType [25] RATType OPTIONAL,
+ recordExtensions [26] ManagementExtensions OPTIONAL,
+ causeForRecClosing [27] CauseForRecClosing
+}
+
+SGSNMOLCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationMethod [7] LocationMethod,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNNILCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI OPTIONAL,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ servedIMEI [7] IMEI OPTIONAL,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNMBMSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF RouteingAreaCode,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ sgsnPLMNIdentifier [15] PLMN-Id OPTIONAL,
+ numberofReceivingUE [16] INTEGER OPTIONAL,
+ mbmsInformation [17] MBMSInformation OPTIONAL
+
+}
+-- WS no def found
+RouteingAreaCode ::= OCTET STRING
+
+GGSNMBMSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [15] MBMSInformation OPTIONAL
+}
+
+------------------------------------------------------------------------------
+--
+-- 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 [75]
+ --
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CAMELInformationMM ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+ freeFormatData [6] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationPDP ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+ cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+ numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+ freeFormatData [8] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationSMS ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+ cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+ cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+ cAMELSMSCAddress [6] AddressString OPTIONAL,
+ freeFormatData [7] FreeFormatData OPTIONAL,
+ smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+}
+
+CategoryId ::= INTEGER
+-- IP service flow identity (DCCA)
+-- range of 4 byte (0..4294967259)
+
+CauseForRecClosing ::= INTEGER
+{
+ --
+ -- In GGSN the value sGSNChange should be used for partial record
+ -- generation due to SGSN Address List Overflow
+ --
+ -- LCS related causes belong to the MAP error causes acc. TS 29.002
+ --
+ -- cause codes 0 to 15 are defined in TS 32.205 as 'CauseForTerm' (cause for termination)
+ --
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ sGSNChange (18),
+ maxChangeCond (19),
+ managementIntervention (20),
+ intraSGSNIntersystemChange (21),
+ rATChange (22),
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ listofDownstreamNodeChange (59)
+}
+
+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
+}
+
+ChangeOfServiceCondition ::= SEQUENCE
+{
+ --
+ -- Used for Flow based Charging service data container
+ --
+ categoryId [1] CategoryId,
+ ratingGroupId [2] RatingGroupId,
+ localSequenceNumber [3] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [4] TimeStamp,
+ timeOfLastUsage [5] TimeStamp,
+ timeUsage [6] CallDuration,
+ serviceChangeCause [7] ServiceChangeCause,
+ qoSInformationNeg [8] QoSInformation OPTIONAL,
+ sgsn-Address [9] GSNAddress OPTIONAL,
+ sGSNPLMNIdentifier [10] SGSNPLMNIdentifier OPTIONAL,
+ datavolumeFBCUplink [11] DataVolumeGPRS,
+ datavolumeFBCDownlink [12] DataVolumeGPRS,
+ timeOfReport [13] TimeStamp,
+ rATType [14] RATType OPTIONAL
+}
+
+-- WS No def. found
+SGSNPLMNIdentifier ::= OCTET STRING
+ChangeLocation ::= SEQUENCE
+{
+ --
+ -- used in SGSNMMRecord only
+ --
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+ --
+ -- Bit 0-3: Profile Index
+ -- Bit 4-15: For Behavior
+ --
+
+ChargingID ::= INTEGER (0..4294967295)
+ --
+ -- Generated in GGSN, part of PDP context, see TS 23.060
+ -- 0..4294967295 is equivalent to 0..2**32-1
+ --
+
+ChChSelectionMode ::= ENUMERATED
+{
+ sGSNSupplied (0), -- For GGSN only
+ subscriptionSpecific (1), -- For SGSN only
+ aPNSpecific (2), -- For SGSN only
+ homeDefault (3), -- For SGSN and GGSN
+ roamingDefault (4), -- For SGSN and GGSN
+ visitingDefault (5) -- For SGSN and GGSN
+}
+
+
+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
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+ -- see 3G TS 24.008
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+ --
+ -- Set to true if PDP context was initiated from network side
+ --
+
+NodeID ::= IA5String (SIZE(1..20))
+
+NumberOfDPEncountered ::= INTEGER
+
+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 [75]
+ --
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ -- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060 [75]
+ -- 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
+
+
+
+
+PSFurnishChargingInformation ::= SEQUENCE
+
+{
+ pSFreeFormatData [1] FreeFormatData,
+ pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+}
+
+
+QoSInformation ::= OCTET STRING (SIZE (4..12))
+
+ --
+ -- This octet string
+ -- is a 1:1 copy of the contents (i.e. starting with octet 4) of the "Quality of
+ -- service Profile" information element specified in 3GPP TS 29.060 [75].
+
+--RATType ::= INTEGER (0..255)
+RATType ::= INTEGER
+ --
+ -- Ihis integer is 1:1 copy of the RAT type value as defined in 3GPP TS 29.060 [75].
+ --
+-- WS Extension
+{
+ reserved (0),
+ utran (1),
+ geran (2),
+ wlan (3),
+ gan (4),
+ hspa-evolution (5)
+}(0..255)
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+ --
+ -- See TS 24.008 --
+ --
+
+RatingGroupId ::= IA5String (SIZE(1..16))
+-- DCC rule base identifier
+
+ServiceChangeCause ::= OCTET STRING (SIZE(4))
+ --
+-- service container closure reason
+-- (some of the values are non-exclusive)
+--
+-- cause values for Gn update/release and TTS
+-- H'00000001 (Bit 1): QoS change
+-- H'00000002 (Bit 2): SGSN change
+-- H'00000004 (Bit 3): SGSN PLMN ID change
+-- H'00000008 (Bit 4): tariff time switch
+-- H'00000010 (Bit 5): PDP context release
+-- H'00000020 (Bit 6): RAT change
+--
+-- cause values for service stop:
+-- H'00000040 (Bit 7): service idled out (= service release by QHT)
+-- H'00000080 (Bit 8): not used
+-- H'00000100 (Bit 9): configuration change
+-- H'00000200 (Bit 10): service stop
+--
+-- cause values for service reauthorization request:
+-- H'00000400 (Bit 11): time threshold reached
+-- H'00000800 (Bit 12): volume threshold reached
+-- H'00001000 (Bit 13): time exhausted
+-- H'00002000 (Bit 14): volume exhausted
+--
+-- cause values for quota return:
+-- H'00004000 (Bit 15): timeout
+-- H'00008000 (Bit 16): return requested
+-- H'00010000 (Bit 17): reauthorisation request
+-- Bit 18-32: are unused and will always be zero
+
+SCFAddress ::= AddressString
+ --
+ -- See TS 29.002 --
+ --
+
+SGSNChange ::= BOOLEAN
+ --
+ -- present if first record after inter SGSN routing area update
+ -- in new SGSN
+ --
+
+-- WS Loacly imported MBMS structs
+
+MBMSInformation ::= SET
+{
+ tMGI [1] TMGI OPTIONAL,
+ mBMSSessionIdentity [2] MBMSSessionIdentity OPTIONAL,
+ mBMSServiceType [3] MBMSServiceType OPTIONAL,
+ mBMSUserServiceType [4] MBMSUserServiceType OPTIONAL, -- only supported in the BM-SC
+ mBMS2G3GIndicator [5] MBMS2G3GIndicator OPTIONAL,
+ fileRepairSupported [6] BOOLEAN OPTIONAL, -- only supported in the BM-SC
+ rAI [7] RoutingAreaCode OPTIONAL, -- only supported in the BM-SC
+ mBMSServiceArea [8] MBMSServiceArea OPTIONAL,
+ requiredMBMSBearerCaps [9] RequiredMBMSBearerCapabilities OPTIONAL,
+ mBMSGWAddress [10] GSNAddress OPTIONAL,
+ cNIPMulticastDistribution [11] CNIPMulticastDistribution OPTIONAL
+}
+
+MBMS2G3GIndicator ::= ENUMERATED
+{
+ t2G (0), -- For GERAN access only
+ t3G (1), -- For UTRAN access only
+ t2G-AND-3G (2) -- For both UTRAN and GERAN access
+}
+
+
+MBMSServiceType ::= ENUMERATED
+{
+ mULTICAST (0),
+ bROADCAST (1)
+}
+
+MBMSUserServiceType ::= ENUMERATED
+{
+ dOWNLOAD (0),
+ sTREAMING (1)
+}
+
+RequiredMBMSBearerCapabilities ::= OCTET STRING (SIZE (3..14))
+
+--
+-- This octet string
+-- is a 1:1 copy of the contents (i.e. starting with octet 5) of the "Quality of
+-- service Profile" information element specified in 3GPP TS 29.060 [75].
+--
+
+
+MBMSSessionIdentity ::= OCTET STRING (SIZE (1))
+
+--
+-- This octet string is a 1:1 copy of the contents of the MBMS-Session-Identity
+-- AVP specified in 3GPP TS 29.061 [82]
+--
+
+TMGI ::= OCTET STRING
+--
+-- This octet string
+-- is a 1:1 copy of the contents (i.e. starting with octet 4) of the "TMGI"
+-- information element specified in 3GPP TS 29.060 [75].
+--
+
+MBMSServiceArea ::= OCTET STRING
+
+CNIPMulticastDistribution ::= ENUMERATED
+{
+ nO-IP-MULTICAST (0),
+ iP-MULTICAST (1)
+}
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1171.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1171.asn
new file mode 100644
index 0000000000..42ebe458ce
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1171.asn
@@ -0,0 +1,979 @@
+-- 3GPP TS 32.298 V11.7.1 (2013-09)
+--
+
+GPRSChargingDataTypesV1171 {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+-- AddressString,
+CallDuration,
+CallingNumber,
+CellId,
+Diagnostics,
+DiameterIdentity,
+GSNAddress,
+IPAddress,
+LCSCause,
+LCSClientIdentity,
+LCSQoSInfo,
+LevelOfCAMELService,
+LocalSequenceNumber,
+LocationAreaAndCell,
+LocationAreaCode,
+ManagementExtensions,
+MessageReference, MSISDN,
+PositioningData,
+RecordingEntity,
+RecordType,
+RoutingAreaCode,
+ServiceSpecificInfo,
+SMSResult,
+SmsTpDestinationNumber,
+SubscriptionID,
+TimeStamp,
+MBMSInformation,
+MSTimeZone
+
+
+FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DefaultGPRS-Handling,
+DefaultSMS-Handling,
+NotificationToMSUser,
+ServiceKey
+
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6)}
+
+-- from TS 29.002 [214]
+
+
+IMEI,
+IMSI,
+ISDN-AddressString,
+RAIdentity
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13)}
+-- from TS 29.002 [214]
+
+
+CallReferenceNumber
+FROM MAP-CH-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)gsm-Network (1) modules (3) map-CH-DataTypes (13) version13 (13)}
+-- from TS 29.002 [214]
+
+
+Ext-GeographicalInformation,
+LCSClientType,
+LCS-Priority,
+LocationType
+FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version13 (13) }
+-- from TS 29.002 [214]
+
+LocationMethod
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version13 (13)}
+
+-- from TS 24.080 [209]
+
+;
+
+--
+--
+-- GPRS RECORDS
+--
+--
+
+
+GPRSRecord ::= CHOICE
+--
+-- Record values 20, 22..27 are specific
+-- Record values 76, 77, 86 are MBMS specific
+-- Record values 78..79 are EPC specific
+--
+{
+ sgsnPDPRecord [20] SGSNPDPRecord,
+ sgsnMMRecord [22] SGSNMMRecord,
+ sgsnSMORecord [23] SGSNSMORecord,
+ sgsnSMTRecord [24] SGSNSMTRecord,
+-- sgsnMTLCSRecord [25] SGSNMTLCSRecord,
+-- sgsnMOLCSRecord [26] SGSNMOLCSRecord,
+-- sgsnNILCSRecord [27] SGSNNILCSRecord,
+--
+-- sgsnMBMSRecord [76] SGSNMBMSRecord,
+-- ggsnMBMSRecord [77] GGSNMBMSRecord,
+-- gwMBMSRecord [86] GWMBMSRecord,
+ sGWRecord [78] SGWRecord,
+ pGWRecord [79] PGWRecord
+}
+
+SGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ s-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ sGWChange [34] SGWChange OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ p-GWAddressUsed [36] GSNAddress OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ pDNConnectionChargingID [40] ChargingID OPTIONAL,
+ iMSIunauthenticatedFlag [41] NULL OPTIONAL,
+ userCSGInformation [42] UserCSGInformation OPTIONAL,
+ servedPDPPDNAddressExt [43] PDPAddress OPTIONAL,
+ lowPriorityIndicator [44] NULL OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ s-GWiPv6Address [48] GSNAddress OPTIONAL,
+ servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL,
+ p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL
+}
+
+PGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ p-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ servinggNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ servedMNNAI [36] SubscriptionID OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ served3gpp2MEID [40] OCTET STRING OPTIONAL,
+ pDNConnectionChargingID [41] ChargingID OPTIONAL,
+ iMSIunauthenticatedFlag [42] NULL OPTIONAL,
+ userCSGInformation [43] UserCSGInformation OPTIONAL,
+ threeGPP2UserLocationInformation [44] OCTET STRING OPTIONAL,
+ servedPDPPDNAddressExt [45] PDPAddress OPTIONAL,
+ lowPriorityIndicator [46] NULL OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL,
+ p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL,
+ tWANUserLocationInformation [51] TWANUserLocationInfo OPTIONAL
+}
+
+SGSNMMRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ sgsnAddress [3] GSNAddress OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ routingArea [5] RoutingAreaCode OPTIONAL,
+ locationAreaCode [6] LocationAreaCode OPTIONAL,
+ cellIdentifier [7] CellId OPTIONAL,
+ changeLocation [8] SEQUENCE OF ChangeLocation OPTIONAL,
+ recordOpeningTime [9] TimeStamp,
+ duration [10] CallDuration OPTIONAL,
+ sgsnChange [11] SGSNChange OPTIONAL,
+ causeForRecClosing [12] CauseForRecClosing,
+ diagnostics [13] Diagnostics OPTIONAL,
+ recordSequenceNumber [14] INTEGER OPTIONAL,
+ nodeID [15] NodeID OPTIONAL,
+ recordExtensions [16] ManagementExtensions OPTIONAL,
+ localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+ servedMSISDN [18] MSISDN OPTIONAL,
+ chargingCharacteristics [19] ChargingCharacteristics,
+ cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+ rATType [21] RATType OPTIONAL,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ cellPLMNId [23] PLMN-Id OPTIONAL
+}
+
+SGSNPDPRecord ::= SET
+{
+ recordType [0] RecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI OPTIONAL,
+ servedIMEI [4] IMEI OPTIONAL,
+ sgsnAddress [5] GSNAddress OPTIONAL,
+ msNetworkCapability [6] MSNetworkCapability OPTIONAL,
+ routingArea [7] RoutingAreaCode OPTIONAL,
+ locationAreaCode [8] LocationAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ chargingID [10] ChargingID,
+ ggsnAddressUsed [11] GSNAddress,
+ accessPointNameNI [12] AccessPointNameNI OPTIONAL,
+ pdpType [13] PDPType OPTIONAL,
+ servedPDPAddress [14] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [16] TimeStamp,
+ duration [17] CallDuration,
+ sgsnChange [18] SGSNChange OPTIONAL,
+ causeForRecClosing [19] CauseForRecClosing,
+ diagnostics [20] Diagnostics OPTIONAL,
+ recordSequenceNumber [21] INTEGER OPTIONAL,
+ nodeID [22] NodeID OPTIONAL,
+ recordExtensions [23] ManagementExtensions OPTIONAL,
+ localSequenceNumber [24] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [25] APNSelectionMode OPTIONAL,
+ accessPointNameOI [26] AccessPointNameOI OPTIONAL,
+ servedMSISDN [27] MSISDN OPTIONAL,
+ chargingCharacteristics [28] ChargingCharacteristics,
+ rATType [29] RATType OPTIONAL,
+ cAMELInformationPDP [30] CAMELInformationPDP OPTIONAL,
+ rNCUnsentDownlinkVolume [31] DataVolumeGPRS OPTIONAL,
+ chChSelectionMode [32] ChChSelectionMode OPTIONAL,
+ dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL,
+ iMSIunauthenticatedFlag [34] NULL OPTIONAL,
+ userCSGInformation [35] UserCSGInformation OPTIONAL,
+ servedPDPPDNAddressExt [36] PDPAddress OPTIONAL,
+ lowPriorityIndicator [37] NULL OPTIONAL
+}
+
+SGSNSMORecord ::= SET
+--
+-- also for MME UE originated SMS record
+--
+--
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ messageReference [10] MessageReference,
+ eventTimeStamp [11] TimeStamp,
+ smsResult [12] SMSResult OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ nodeID [14] NodeID OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [16] ChargingCharacteristics,
+ rATType [17] RATType OPTIONAL,
+ destinationNumber [18] SmsTpDestinationNumber OPTIONAL,
+ cAMELInformationSMS [19] CAMELInformationSMS OPTIONAL,
+ chChSelectionMode [20] ChChSelectionMode OPTIONAL,
+ servingNodeType [21] ServingNodeType,
+ servingNodeAddress [22] GSNAddress OPTIONAL,
+ servingNodeiPv6Address [23] GSNAddress OPTIONAL,
+mMEName [24] DiameterIdentity OPTIONAL,
+mMERealm [25] DiameterIdentity OPTIONAL,
+ userLocationInformation [26] OCTET STRING OPTIONAL
+}
+
+SGSNSMTRecord ::= SET
+--
+-- also for MME UE terminated SMS record
+--
+--
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ eventTimeStamp [10] TimeStamp,
+ smsResult [11] SMSResult OPTIONAL,
+ recordExtensions [12] ManagementExtensions OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics,
+ rATType [16] RATType OPTIONAL,
+ chChSelectionMode [17] ChChSelectionMode OPTIONAL,
+ cAMELInformationSMS [18] CAMELInformationSMS OPTIONAL,
+ originatingAddress [19] AddressString OPTIONAL,
+ servingNodeType [20] ServingNodeType,
+ servingNodeAddress [21] GSNAddress OPTIONAL,
+ servingNodeiPv6Address [22] GSNAddress OPTIONAL,
+mMEName [23] DiameterIdentity OPTIONAL,
+mMERealm [24] DiameterIdentity OPTIONAL,
+ userLocationInformation [25] OCTET STRING OPTIONAL
+}
+
+SGSNMTLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType,
+ lcsClientIdentity [3] LCSClientIdentity,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationType [7] LocationType,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ notificationToMSUser [13] NotificationToMSUser OPTIONAL,
+ privacyOverride [14] NULL OPTIONAL,
+ location [15] LocationAreaAndCell OPTIONAL,
+ routingArea [16] RoutingAreaCode OPTIONAL,
+ locationEstimate [17] Ext-GeographicalInformation OPTIONAL,
+ positioningData [18] PositioningData OPTIONAL,
+ lcsCause [19] LCSCause OPTIONAL,
+ diagnostics [20] Diagnostics OPTIONAL,
+ nodeID [21] NodeID OPTIONAL,
+ localSequenceNumber [22] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ rATType [25] RATType OPTIONAL,
+ recordExtensions [26] ManagementExtensions OPTIONAL,
+ causeForRecClosing [27] CauseForRecClosing
+}
+
+SGSNMOLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationMethod [7] LocationMethod,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNNILCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI OPTIONAL,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ servedIMEI [7] IMEI OPTIONAL,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofRAs [3] SEQUENCE OF RAIdentity OPTIONAL,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ sgsnPLMNIdentifier [15] PLMN-Id OPTIONAL,
+ numberofReceivingUE [16] INTEGER OPTIONAL,
+ mbmsInformation [17] MBMSInformation OPTIONAL
+}
+
+GGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [15] MBMSInformation OPTIONAL
+}
+
+GWMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ mbmsGWAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ pdpPDNType [5] PDPType OPTIONAL,
+ servedPDPPDNAddress [6] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [7] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [8] TimeStamp,
+ duration [9] CallDuration,
+ causeForRecClosing [10] CauseForRecClosing,
+ diagnostics [11] Diagnostics OPTIONAL,
+ recordSequenceNumber [12] INTEGER OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ recordExtensions [14] ManagementExtensions OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [16] MBMSInformation OPTIONAL,
+ commonTeid [17] CTEID OPTIONAL,
+ iPMulticastSourceAddress [18] PDPAddress OPTIONAL
+}
+
+--
+--
+-- PS 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.
+--
+
+AFChargingIdentifier ::= OCTET STRING
+--
+-- see AF-Charging-Identifier AVP as defined in TS 29.214[221]
+--
+AFRecordInformation ::= SEQUENCE
+{
+ aFChargingIdentifier [1] AFChargingIdentifier,
+ flows [2] Flows OPTIONAL
+}
+
+APNSelectionMode::= ENUMERATED
+--
+-- See Information Elements TS 29.060 [215], TS 29.274 [223] or TS 29.275 [224]
+--
+{
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CAMELInformationMM ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+ freeFormatData [6] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationPDP ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+ cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+ numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+ freeFormatData [8] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationSMS ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+ cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+ cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+ cAMELSMSCAddress [6] AddressString OPTIONAL,
+ freeFormatData [7] FreeFormatData OPTIONAL,
+ smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+}
+
+CauseForRecClosing ::= INTEGER
+--
+-- In PGW-CDR and SGW-CDR the value servingNodeChange is used for partial record
+-- generation due to Serving Node Address list Overflow
+-- In SGSN servingNodeChange indicates the SGSN change
+--
+-- LCS related causes belong to the MAP error causes acc. TS 29.002 [214]
+--
+-- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination)
+--
+{
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ servingNodeChange (18),
+ maxChangeCond (19),
+ managementIntervention (20),
+ intraSGSNIntersystemChange (21),
+ rATChange (22),
+ mSTimeZoneChange (23),
+ sGSNPLMNIDChange (24),
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ listofDownstreamNodeChange (59)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2),
+ cGI-SAICHange (6), -- bearer modification. "CGI-SAI Change"
+ rAIChange (7), -- bearer modification. "RAI Change"
+ dT-Establishment (8),
+ dT-Removal (9),
+ eCGIChange (10), -- bearer modification. "ECGI Change"
+ tAIChange (11), -- bearer modification. "TAI Change"
+ userLocationChange (12) -- bearer modification. "User Location Change"
+
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+--
+-- qosRequested and qosNegotiated are used in S-CDR only
+-- ePCQoSInformation used in SGW-CDR only
+--
+{
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS OPTIONAL,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS OPTIONAL,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ userLocationInformation [8] OCTET STRING OPTIONAL,
+ ePCQoSInformation [9] EPCQoSInformation OPTIONAL
+}
+
+ChangeOfMBMSCondition ::= SEQUENCE
+--
+-- Used in MBMS record
+--
+{
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL,
+ dataVolumeMBMSDownlink [4] DataVolumeMBMS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ failureHandlingContinue [7] FailureHandlingContinue OPTIONAL
+}
+
+ChangeOfServiceCondition ::= SEQUENCE
+--
+-- Used for Flow based Charging service data container
+--
+{
+ ratingGroup [1] RatingGroupId,
+ chargingRuleBaseName [2] ChargingRuleBaseName OPTIONAL,
+ resultCode [3] ResultCode OPTIONAL,
+ localSequenceNumber [4] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [5] TimeStamp OPTIONAL,
+ timeOfLastUsage [6] TimeStamp OPTIONAL,
+ timeUsage [7] CallDuration OPTIONAL,
+ serviceConditionChange [8] ServiceConditionChange,
+ qoSInformationNeg [9] EPCQoSInformation OPTIONAL,
+ servingNodeAddress [10] GSNAddress OPTIONAL,
+ datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL,
+ datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL,
+ timeOfReport [14] TimeStamp,
+ failureHandlingContinue [16] FailureHandlingContinue OPTIONAL,
+ serviceIdentifier [17] ServiceIdentifier OPTIONAL,
+ pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL,
+ aFRecordInformation [19] SEQUENCE OF AFRecordInformation OPTIONAL,
+ userLocationInformation [20] OCTET STRING OPTIONAL,
+ eventBasedChargingInformation [21] EventBasedChargingInformation OPTIONAL,
+ timeQuotaMechanism [22] TimeQuotaMechanism OPTIONAL,
+ serviceSpecificInfo [23] SEQUENCE OF ServiceSpecificInfo OPTIONAL,
+ threeGPP2UserLocationInformation [24] OCTET STRING OPTIONAL,
+ sponsorIdentity [25] OCTET STRING OPTIONAL,
+ applicationServiceProviderIdentity [26] OCTET STRING OPTIONAL
+
+}
+
+ChangeLocation ::= SEQUENCE
+--
+-- used in SGSNMMRecord only
+--
+{
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp,
+ mCC-MNC [4] PLMN-Id OPTIONAL
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+
+ChargingID ::= INTEGER (0..4294967295)
+--
+-- Generated in P-GW, part of IP CAN bearer
+-- 0..4294967295 is equivalent to 0..2**32-1
+--
+
+ChargingRuleBaseName ::= IA5String
+--
+-- identifier for the group of charging rules
+-- see Charging-Rule-Base-Name AVP as desined in TS 29.212 [220]
+--
+
+ChChSelectionMode ::= ENUMERATED
+{
+ servingNodeSupplied (0), -- For S-GW/P-GW
+ subscriptionSpecific (1), -- For SGSN only
+ aPNSpecific (2), -- For SGSN only
+ homeDefault (3), -- For SGSN, S-GW and P-GW
+ roamingDefault (4), -- For SGSN, S-GW and P-GW
+ visitingDefault (5) -- For SGSN, S-GW and P-GW
+}
+
+CSGAccessMode ::= ENUMERATED
+{
+ closedMode (0),
+ hybridMode (1)
+}
+
+CSGId ::= OCTET STRING (SIZE(4))
+ --
+ -- Defined in 23.003[200]. Coded according to TS 29.060[215] for GTP, and in TS 29.274 [223]
+ -- for eGTP.
+ -- 24.008 [208]
+ --
+
+CTEID ::= OCTET STRING (SIZE(4))
+
+ --
+ -- Defined in 32.251[11] for MBMS-GW-CDR. Common Tunnel Endpoint Identifier of MBMS GW for user --
+ -- plane, defined in TS23.246 [207].
+ --
+
+DataVolumeGPRS ::= INTEGER
+--
+-- The volume of data transferred in octets.
+--
+
+DataVolumeMBMS ::= INTEGER
+--
+-- The volume of data transferred in octets.
+--
+
+
+DynamicAddressFlag ::= BOOLEAN
+
+EPCQoSInformation ::= SEQUENCE
+--
+-- See TS 29.212 [220] for more information
+--
+{
+ qCI [1] INTEGER,
+ maxRequestedBandwithUL [2] INTEGER OPTIONAL,
+ maxRequestedBandwithDL [3] INTEGER OPTIONAL,
+ guaranteedBitrateUL [4] INTEGER OPTIONAL,
+ guaranteedBitrateDL [5] INTEGER OPTIONAL,
+ aRP [6] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateUL [7] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateDL [8] INTEGER OPTIONAL
+}
+
+EventBasedChargingInformation ::= SEQUENCE
+{
+ numberOfEvents [1] INTEGER,
+ eventTimeStamps [2] SEQUENCE OF TimeStamp OPTIONAL
+}
+
+FailureHandlingContinue ::= BOOLEAN
+--
+-- This parameter is included when the failure handling procedure has been executed and new
+-- containers are opened. This parameter shall be included in the first and subsequent
+-- containers opened after the failure handling execution.
+--
+
+FFDAppendIndicator ::= BOOLEAN
+
+Flows ::= SEQUENCE
+--
+-- See Flows AVP as defined in TS 29.214 [221]
+--
+{
+ mediaComponentNumber [1] INTEGER,
+ flowNumber [2] SEQUENCE OF INTEGER OPTIONAL
+}
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+--
+-- Free formatted data as sent in the FurnishChargingInformationGPRS
+-- see TS 29.078 [217]
+--
+
+-- GSNAddress ::= IPAddress
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+--
+-- see TS 24.008 [208]
+--
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+--
+-- Set to true if PDP context was initiated from network side
+--
+
+NodeID ::= IA5String (SIZE(1..20))
+
+NumberOfDPEncountered ::= INTEGER
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress
+-- eTSIAddress [1] ETSIAddress : has only been used in earlier releases for X.121 format
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+--
+-- OCTET 1: PDP Type Organization
+-- OCTET 2: PDP/PDN Type Number
+-- See TS 29.060 [215] for encoding details.
+--
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+--
+-- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060 [215]
+-- 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
+--
+
+
+PSFurnishChargingInformation ::= SEQUENCE
+{
+ pSFreeFormatData [1] FreeFormatData,
+ pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+}
+
+QoSInformation ::= OCTET STRING (SIZE (4..255))
+--
+-- This octet string
+-- is a 1:1 copy of the contents (i.e. starting with octet 5) of the "Bearer Quality of
+-- Service" information element specified in TS 29.274 [223].
+--
+
+RatingGroupId ::= INTEGER
+--
+-- IP service flow identity (DCCA), range of 4 byte (0... 4294967295)
+-- see Rating-Group AVP as used in TS 32.299 [50]
+--
+
+RATType ::= INTEGER (0..255)
+--
+-- Ihis integer is 1:1 copy of the RAT type value as defined in TS 29.061 [215].
+--
+
+ResultCode ::= INTEGER
+--
+-- charging protocol return value, range of 4 byte (0... 4294967295)
+-- see Result-Code AVP as used in 32.299 [40]
+--
+
+ServiceConditionChange ::= BIT STRING
+{
+ qoSChange (0), -- bearer modification
+ sGSNChange (1), -- bearer modification: :apply to Gn-SGSN /SGW
+ sGSNPLMNIDChange (2), -- bearer modification
+ tariffTimeSwitch (3), -- tariff time change
+ pDPContextRelease (4), -- bearer release
+ rATChange (5), -- bearer modification
+ serviceIdledOut (6), -- IP flow idle out, DCCA QHT expiry
+ reserved (7), -- old: QCTexpiry is no report event
+ configurationChange (8), -- configuration change
+ serviceStop (9), -- IP flow termination.From "Service Stop" in
+ -- Change-Condition" AVP
+ dCCATimeThresholdReached (10), -- DCCA quota reauthorization
+ dCCAVolumeThresholdReached (11), -- DCCA quota reauthorization
+ dCCAServiceSpecificUnitThresholdReached (12), -- DCCA quota reauthorization
+ dCCATimeExhausted (13), -- DCCA quota reauthorization
+ dCCAVolumeExhausted (14), -- DCCA quota reauthorization
+ dCCAValidityTimeout (15), -- DCCA quota validity time (QVT expiry)
+ reserved1 (16), -- reserved due to no use case,
+ -- old: return Requested is covered by (17),(18)
+ dCCAReauthorisationRequest (17), -- DCCA quota reauthorization request by OCS
+ dCCAContinueOngoingSession (18), -- DCCA failure handling (CCFH),
+ -- continue IP flow
+ dCCARetryAndTerminateOngoingSession (19), -- DCCA failure handling (CCFH),
+ -- terminate IP flow after DCCA retry
+ dCCATerminateOngoingSession (20), -- DCCA failure handling,
+ -- terminate IP flow
+ cGI-SAIChange (21), -- bearer modification. "CGI-SAI Change"
+ rAIChange (22), -- bearer modification. "RAI Change"
+ dCCAServiceSpecificUnitExhausted (23), -- DCCA quota reauthorization
+ recordClosure (24), -- PGW-CDR closure
+ timeLimit (25), -- intermediate recording. From "Service Data
+ volumeLimit (26), -- intermediate recording.From "Service Data
+ serviceSpecificUnitLimit (27), -- intermediate recording
+ envelopeClosure (28),
+ eCGIChange (29), -- bearer modification. "ECGI Change"
+ tAIChange (30), -- bearer modification. "TAI Change"
+ userLocationChange (31) -- bearer modification. "User Location Change"
+}
+--
+-- Trigger and cause values for IP flow level recording are defined for support of independent
+-- online and offline charging and also for tight interworking between online and offline charging.
+-- Unused bits will always be zero.
+-- Some of the values are non-exclusive (e.g. bearer modification reasons).
+ --
+
+SCFAddress ::= AddressString
+--
+-- See TS 29.002 [214]
+--
+
+ServiceIdentifier ::= INTEGER (0..4294967295)
+--
+-- The service identifier is used to identify the service or the service component
+-- the service data flow relates to. See Service-Identifier AVP as defined in TS 29.212 [220]
+--
+
+ServingNodeType ::= ENUMERATED
+{
+ sGSN (0),
+ pMIPSGW (1),
+gTPSGW (2),
+ ePDG (3),
+ hSGW (4),
+ mME (5) ,
+ tWAN (6)
+}
+
+SGSNChange ::= BOOLEAN
+--
+-- present if first record after inter SGSN routing area update in new SGSN
+--
+
+SGWChange ::= BOOLEAN
+--
+-- present if first record after inter S-GW change
+--
+
+TimeQuotaMechanism ::= SEQUENCE
+{
+ timeQuotaType [1] TimeQuotaType,
+ baseTimeInterval [2] INTEGER
+}
+
+TimeQuotaType ::= ENUMERATED
+{
+ dISCRETETIMEPERIOD (0),
+ cONTINUOUSTIMEPERIOD (1)
+}
+
+TWANUserLocationInfo ::= SEQUENCE
+{
+ sSID [0] OCTET STRING, -- see format in IEEE Std 802.11-2012 [409]
+ bSSID [1] OCTET STRING OPTIONAL -- see format in IEEE Std 802.11-2012 [409]
+}
+
+UserCSGInformation ::= SEQUENCE
+{
+ cSGId [0] CSGId,
+ cSGAccessMode [1] CSGAccessMode,
+ cSGMembershipIndication [2] NULL OPTIONAL
+}
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1260.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1260.asn
new file mode 100644
index 0000000000..a1010870d2
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1260.asn
@@ -0,0 +1,1204 @@
+--
+-- 3GPP TS 32.298
+--
+GPRSChargingDataTypesV1260 {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+-- AddressString,
+CallDuration,
+CallingNumber,
+CellId,
+Diagnostics,
+DiameterIdentity,
+-- GSNAddress,
+IPAddress,
+LCSCause,
+LCSClientIdentity,
+LCSQoSInfo,
+LevelOfCAMELService,
+LocalSequenceNumber,
+LocationAreaAndCell,
+LocationAreaCode,
+ManagementExtensions,
+MBMSInformation,
+MessageReference,
+MSISDN,
+MSTimeZone,
+PositioningData,
+RecordingEntity,
+RecordType,
+RoutingAreaCode,
+ServiceSpecificInfo,
+SMSResult,
+SmsTpDestinationNumber,
+SubscriptionID,
+TimeStamp
+FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DefaultGPRS-Handling,
+DefaultSMS-Handling,
+NotificationToMSUser,
+ServiceKey
+FROM MAP-MS-DataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-MS-DataTypes (11) version15 (15)}
+-- from TS 29.002 [214]
+
+IMEI,
+IMSI,
+ISDN-AddressString,
+RAIdentity
+FROM MAP-CommonDataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0)gsm-Network (1) modules (3) map-CommonDataTypes (18) version15 (15)}
+-- from TS 29.002 [214]
+
+CallReferenceNumber
+FROM MAP-CH-DataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0)gsm-Network (1) modules (3) map-CH-DataTypes (13) version15 (15)}
+-- from TS 29.002 [214]
+
+Ext-GeographicalInformation,
+LCSClientType,
+LCS-Priority,
+LocationType
+FROM MAP-LCS-DataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version15 (15) }
+-- from TS 29.002 [214]
+
+LocationMethod
+FROM SS-DataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version15 (15)}
+-- from TS 24.080 [209]
+
+;
+
+--
+-- GPRS RECORDS
+--
+
+GPRSRecord ::= CHOICE
+--
+-- Record values 20, 22..27 are specific
+-- Record values 76, 77, 86 are MBMS specific
+-- Record values 78,79 and 92, 95, 96 are EPC specific
+--
+{
+ sgsnPDPRecord [20] SGSNPDPRecord,
+-- WS bacward compabillity addition
+ ggsnPDPRecord [21] GGSNPDPRecordV750,
+-- WS mod END
+ sgsnMMRecord [22] SGSNMMRecord,
+ sgsnSMORecord [23] SGSNSMORecord,
+ sgsnSMTRecord [24] SGSNSMTRecord,
+-- sgsnMTLCSRecord [25] SGSNMTLCSRecord,
+-- sgsnMOLCSRecord [26] SGSNMOLCSRecord,
+-- sgsnNILCSRecord [27] SGSNNILCSRecord,
+-- WS bacward compabillity addition
+ egsnPDPRecord [70] EGSNPDPRecordV750,
+-- WS mod END
+-- sgsnMBMSRecord [76] SGSNMBMSRecord,
+-- ggsnMBMSRecord [77] GGSNMBMSRecord,
+ sGWRecord [78] SGWRecord,
+ pGWRecord [79] PGWRecord,
+
+-- gwMBMSRecord [86] GWMBMSRecord,
+
+ tDFRecord [92] TDFRecord,
+
+ iPERecord [95] IPERecord,
+ ePDGRecord [96] EPDGRecord
+}
+
+SGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ s-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ servedIMEI [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ sGWChange [34] SGWChange OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ p-GWAddressUsed [36] GSNAddress OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ pDNConnectionChargingID [40] ChargingID OPTIONAL,
+ iMSIunauthenticatedFlag [41] NULL OPTIONAL,
+ userCSGInformation [42] UserCSGInformation OPTIONAL,
+ servedPDPPDNAddressExt [43] PDPAddress OPTIONAL,
+ lowPriorityIndicator [44] NULL OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ s-GWiPv6Address [48] GSNAddress OPTIONAL,
+ servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL,
+ p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL,
+ retransmission [51] NULL OPTIONAL,
+ userLocationInfoTime [52] TimeStamp OPTIONAL,
+ cNOperatorSelectionEnt [53] CNOperatorSelectionEntity OPTIONAL,
+ presenceReportingAreaInfo [54] PresenceReportingAreaInfo OPTIONAL,
+ lastUserLocationInformation [55] OCTET STRING OPTIONAL,
+ lastMSTimeZone [56] MSTimeZone OPTIONAL
+}
+
+PGWRecord ::= SET
+--
+-- List of traffic volumes is only applicable when Charging per IP-CAN session is active and
+-- IP-CAN bearer charging is being performed for the session.
+--
+-- EPC QoS Information is only applicable when Charging per IP-CAN session is active.
+--
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ p-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEI [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ servedMNNAI [36] SubscriptionID OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ served3gpp2MEID [40] OCTET STRING OPTIONAL,
+ pDNConnectionChargingID [41] ChargingID OPTIONAL,
+ iMSIunauthenticatedFlag [42] NULL OPTIONAL,
+ userCSGInformation [43] UserCSGInformation OPTIONAL,
+ threeGPP2UserLocationInformation [44] OCTET STRING OPTIONAL,
+ servedPDPPDNAddressExt [45] PDPAddress OPTIONAL,
+ lowPriorityIndicator [46] NULL OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL,
+ p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL,
+ tWANUserLocationInformation [51] TWANUserLocationInfo OPTIONAL,
+ retransmission [52] NULL OPTIONAL,
+ userLocationInfoTime [53] TimeStamp OPTIONAL,
+ cNOperatorSelectionEnt [54] CNOperatorSelectionEntity OPTIONAL,
+ ePCQoSInformation [55] EPCQoSInformation OPTIONAL,
+ presenceReportingAreaInfo [56] PresenceReportingAreaInfo OPTIONAL,
+ lastUserLocationInformation [57] OCTET STRING OPTIONAL,
+ lastMSTimeZone [58] MSTimeZone OPTIONAL
+}
+
+TDFRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ p-GWAddress [4] GSNAddress,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEI [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ servedMNNAI [36] SubscriptionID OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ served3gpp2MEID [40] OCTET STRING OPTIONAL,
+ pDNConnectionChargingID [41] ChargingID,
+ userCSGInformation [43] UserCSGInformation OPTIONAL,
+ threeGPP2UserLocationInformation [44] OCTET STRING OPTIONAL,
+ servedPDPPDNAddressExt [45] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL,
+ p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL,
+ tWANUserLocationInformation [51] TWANUserLocationInfo OPTIONAL,
+ retransmission [52] NULL OPTIONAL,
+ tDFAddress [53] GSNAddress,
+ tDFiPv6AddressUsed [54] GSNAddress OPTIONAL,
+ tDFPLMNIdentifier [55] PLMN-Id OPTIONAL,
+ servedFixedSubsID [56] FixedSubsID OPTIONAL,
+ accessLineIdentifier [57] AccessLineIdentifier OPTIONAL,
+ presenceReportingAreaInfo [58] PresenceReportingAreaInfo OPTIONAL, fixedUserLocationInformation [59] FixedUserLocationInformation OPTIONAL
+
+}
+
+IPERecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ iPEdgeAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ iPCANsessionType [8] PDPType OPTIONAL,
+ servedIPCANsessionAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ servedMSISDN [22] MSISDN OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEI [29] IMEI OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL,
+ servedMNNAI [36] SubscriptionID OPTIONAL,
+ iPEdgeOperatorIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ servedIPCANsessionAddressExt [45] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ iPEdgeiPv6AddressUsed [50] GSNAddress OPTIONAL,
+ retransmission [52] NULL OPTIONAL,
+ servedFixedSubsID [55] FixedSubsID OPTIONAL,
+ accessLineIdentifier [56] AccessLineIdentifier OPTIONAL,
+ fixedUserLocationInformation [57] FixedUserLocationInformation OPTIONAL
+}
+
+EPDGRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ ePDGAddressUsed [4] GSNAddress,
+ chargingID [5] ChargingID,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ servedIMEI [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ sGWChange [34] SGWChange OPTIONAL,
+ p-GWAddressUsed [36] GSNAddress OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ pDNConnectionChargingID [40] ChargingID OPTIONAL,
+ servedPDPPDNAddressExt [43] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ ePDGiPv6AddressUsed [48] GSNAddress OPTIONAL,
+ p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL,
+ retransmission [51] NULL OPTIONAL
+}
+
+
+SGSNMMRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ sgsnAddress [3] GSNAddress OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ routingArea [5] RoutingAreaCode OPTIONAL,
+ locationAreaCode [6] LocationAreaCode OPTIONAL,
+ cellIdentifier [7] CellId OPTIONAL,
+ changeLocation [8] SEQUENCE OF ChangeLocation OPTIONAL,
+ recordOpeningTime [9] TimeStamp,
+ duration [10] CallDuration OPTIONAL,
+ sgsnChange [11] SGSNChange OPTIONAL,
+ causeForRecClosing [12] CauseForRecClosing,
+ diagnostics [13] Diagnostics OPTIONAL,
+ recordSequenceNumber [14] INTEGER OPTIONAL,
+ nodeID [15] NodeID OPTIONAL,
+ recordExtensions [16] ManagementExtensions OPTIONAL,
+ localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+ servedMSISDN [18] MSISDN OPTIONAL,
+ chargingCharacteristics [19] ChargingCharacteristics,
+ cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+ rATType [21] RATType OPTIONAL,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ cellPLMNId [23] PLMN-Id OPTIONAL,
+ servingNodePLMNIdentifier [24] PLMN-Id OPTIONAL,
+ cNOperatorSelectionEnt [25] CNOperatorSelectionEntity OPTIONAL
+}
+
+SGSNPDPRecord ::= SET
+{
+ recordType [0] RecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI OPTIONAL,
+ servedIMEI [4] IMEI OPTIONAL,
+ sgsnAddress [5] GSNAddress OPTIONAL,
+ msNetworkCapability [6] MSNetworkCapability OPTIONAL,
+ routingArea [7] RoutingAreaCode OPTIONAL,
+ locationAreaCode [8] LocationAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ chargingID [10] ChargingID,
+ ggsnAddressUsed [11] GSNAddress,
+ accessPointNameNI [12] AccessPointNameNI OPTIONAL,
+ pdpType [13] PDPType OPTIONAL,
+ servedPDPAddress [14] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [16] TimeStamp,
+ duration [17] CallDuration,
+ sgsnChange [18] SGSNChange OPTIONAL,
+ causeForRecClosing [19] CauseForRecClosing,
+ diagnostics [20] Diagnostics OPTIONAL,
+ recordSequenceNumber [21] INTEGER OPTIONAL,
+ nodeID [22] NodeID OPTIONAL,
+ recordExtensions [23] ManagementExtensions OPTIONAL,
+ localSequenceNumber [24] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [25] APNSelectionMode OPTIONAL,
+ accessPointNameOI [26] AccessPointNameOI OPTIONAL,
+ servedMSISDN [27] MSISDN OPTIONAL,
+ chargingCharacteristics [28] ChargingCharacteristics,
+ rATType [29] RATType OPTIONAL,
+ cAMELInformationPDP [30] CAMELInformationPDP OPTIONAL,
+ rNCUnsentDownlinkVolume [31] DataVolumeGPRS OPTIONAL,
+ chChSelectionMode [32] ChChSelectionMode OPTIONAL,
+ dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL,
+ iMSIunauthenticatedFlag [34] NULL OPTIONAL,
+ userCSGInformation [35] UserCSGInformation OPTIONAL,
+ servedPDPPDNAddressExt [36] PDPAddress OPTIONAL,
+ lowPriorityIndicator [37] NULL OPTIONAL,
+ servingNodePLMNIdentifier [38] PLMN-Id OPTIONAL,
+ cNOperatorSelectionEnt [39] CNOperatorSelectionEntity OPTIONAL
+}
+
+SGSNSMORecord ::= SET
+--
+-- also for MME UE originated SMS record
+--
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ messageReference [10] MessageReference,
+ eventTimeStamp [11] TimeStamp,
+ smsResult [12] SMSResult OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ nodeID [14] NodeID OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [16] ChargingCharacteristics,
+ rATType [17] RATType OPTIONAL,
+ destinationNumber [18] SmsTpDestinationNumber OPTIONAL,
+ cAMELInformationSMS [19] CAMELInformationSMS OPTIONAL,
+ chChSelectionMode [20] ChChSelectionMode OPTIONAL,
+ servingNodeType [21] ServingNodeType,
+ servingNodeAddress [22] GSNAddress OPTIONAL,
+ servingNodeiPv6Address [23] GSNAddress OPTIONAL,
+ mMEName [24] DiameterIdentity OPTIONAL,
+ mMERealm [25] DiameterIdentity OPTIONAL,
+ userLocationInformation [26] OCTET STRING OPTIONAL,
+ retransmission [27] NULL OPTIONAL,
+ servingNodePLMNIdentifier [28] PLMN-Id OPTIONAL,
+ userLocationInfoTime [29] TimeStamp OPTIONAL,
+ cNOperatorSelectionEnt [30] CNOperatorSelectionEntity OPTIONAL
+}
+
+SGSNSMTRecord ::= SET
+--
+-- also for MME UE terminated SMS record
+--
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ eventTimeStamp [10] TimeStamp,
+ smsResult [11] SMSResult OPTIONAL,
+ recordExtensions [12] ManagementExtensions OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics,
+ rATType [16] RATType OPTIONAL,
+ chChSelectionMode [17] ChChSelectionMode OPTIONAL,
+ cAMELInformationSMS [18] CAMELInformationSMS OPTIONAL,
+ originatingAddress [19] AddressString OPTIONAL,
+ servingNodeType [20] ServingNodeType,
+ servingNodeAddress [21] GSNAddress OPTIONAL,
+ servingNodeiPv6Address [22] GSNAddress OPTIONAL,
+ mMEName [23] DiameterIdentity OPTIONAL,
+ mMERealm [24] DiameterIdentity OPTIONAL,
+ userLocationInformation [25] OCTET STRING OPTIONAL,
+ retransmission [26] NULL OPTIONAL,
+ servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ userLocationInfoTime [28] TimeStamp OPTIONAL,
+ cNOperatorSelectionEnt [29] CNOperatorSelectionEntity OPTIONAL
+}
+
+SGSNMTLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType,
+ lcsClientIdentity [3] LCSClientIdentity,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationType [7] LocationType,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ notificationToMSUser [13] NotificationToMSUser OPTIONAL,
+ privacyOverride [14] NULL OPTIONAL,
+ location [15] LocationAreaAndCell OPTIONAL,
+ routingArea [16] RoutingAreaCode OPTIONAL,
+ locationEstimate [17] Ext-GeographicalInformation OPTIONAL,
+ positioningData [18] PositioningData OPTIONAL,
+ lcsCause [19] LCSCause OPTIONAL,
+ diagnostics [20] Diagnostics OPTIONAL,
+ nodeID [21] NodeID OPTIONAL,
+ localSequenceNumber [22] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ rATType [25] RATType OPTIONAL,
+ recordExtensions [26] ManagementExtensions OPTIONAL,
+ causeForRecClosing [27] CauseForRecClosing,
+ servingNodePLMNIdentifier [28] PLMN-Id OPTIONAL,
+ cNOperatorSelectionEnt [29] CNOperatorSelectionEntity OPTIONAL
+}
+
+SGSNMOLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationMethod [7] LocationMethod,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing,
+ servingNodePLMNIdentifier [26] PLMN-Id OPTIONAL,
+ cNOperatorSelectionEnt [27] CNOperatorSelectionEntity OPTIONAL
+}
+
+SGSNNILCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI OPTIONAL,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ servedIMEI [7] IMEI OPTIONAL,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing,
+ servingNodePLMNIdentifier [26] PLMN-Id OPTIONAL,
+ cNOperatorSelectionEnt [27] CNOperatorSelectionEntity OPTIONAL
+}
+
+SGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofRAs [3] SEQUENCE OF RAIdentity OPTIONAL,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ sgsnPLMNIdentifier [15] PLMN-Id OPTIONAL,
+ numberofReceivingUE [16] INTEGER OPTIONAL,
+ mbmsInformation [17] MBMSInformation OPTIONAL
+}
+
+GGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [15] MBMSInformation OPTIONAL
+}
+
+GWMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ mbmsGWAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ pdpPDNType [5] PDPType OPTIONAL,
+ servedPDPPDNAddress [6] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [7] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [8] TimeStamp,
+ duration [9] CallDuration,
+ causeForRecClosing [10] CauseForRecClosing,
+ diagnostics [11] Diagnostics OPTIONAL,
+ recordSequenceNumber [12] INTEGER OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ recordExtensions [14] ManagementExtensions OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [16] MBMSInformation OPTIONAL,
+ commonTeid [17] CTEID OPTIONAL,
+ iPMulticastSourceAddress [18] PDPAddress OPTIONAL
+}
+
+--
+-- PS DATA TYPES
+--
+
+AccessLineIdentifier ::= SEQUENCE
+--
+-- "Physical Access Id" includes a port identifier and the identity of the access node where the
+-- port resides. "logical Access Id" contains a Circuit ID. Both are defined ETSI TS 283 034 [314]
+--
+{
+ physicalAccessID [0] UTF8String OPTIONAL,
+ logicalAccessID [1] OCTET STRING OPTIONAL
+}
+
+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.
+--
+
+ADCRuleBaseName ::= IA5String
+--
+-- identifier for the group of charging rules
+-- see ADC-Rule-Base-Name AVP as desined in TS 29.212 [220]
+--
+
+AFChargingIdentifier ::= OCTET STRING
+--
+-- see AF-Charging-Identifier AVP as defined in TS 29.214[221]
+--
+AFRecordInformation ::= SEQUENCE
+{
+ aFChargingIdentifier [1] AFChargingIdentifier,
+ flows [2] Flows OPTIONAL
+}
+
+APNSelectionMode ::= ENUMERATED
+--
+-- See Information Elements TS 29.060 [215], TS 29.274 [223] or TS 29.275 [224]
+--
+{
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CAMELInformationMM ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+ freeFormatData [6] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationPDP ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+ cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+ numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+ freeFormatData [8] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationSMS ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+ cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+ cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+ cAMELSMSCAddress [6] AddressString OPTIONAL,
+ freeFormatData [7] FreeFormatData OPTIONAL,
+ smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+}
+
+CauseForRecClosing ::= INTEGER
+--
+-- In PGW-CDR and SGW-CDR the value servingNodeChange is used for partial record
+-- generation due to Serving Node Address list Overflow
+-- In SGSN servingNodeChange indicates the SGSN change
+--
+-- sWGChange value is used in both the S-GW and ePDG for inter serving node change
+--
+-- LCS related causes belong to the MAP error causes acc. TS 29.002 [214]
+--
+-- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination)
+--
+{
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ servingNodeChange (18),
+ maxChangeCond (19),
+ managementIntervention (20),
+ intraSGSNIntersystemChange (21),
+ rATChange (22),
+ mSTimeZoneChange (23),
+ sGSNPLMNIDChange (24),
+ sGWChange (25),
+ aPNAMBRChange (26),
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ listofDownstreamNodeChange (59)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2),
+ cGI-SAICHange (6), -- bearer modification. "CGI-SAI Change"
+ rAIChange (7), -- bearer modification. "RAI Change"
+ dT-Establishment (8),
+ dT-Removal (9),
+ eCGIChange (10), -- bearer modification. "ECGI Change"
+ tAIChange (11), -- bearer modification. "TAI Change"
+ userLocationChange (12), -- bearer modification. "User Location Change"
+ userCSGInformationChange (13) -- bearer modification. "User CSG info Change"
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+--
+-- qosRequested and qosNegotiated are used in S-CDR only
+-- ePCQoSInformation used in SGW-CDR ,PGW-CDR, IPE-CDR and ePDG only
+-- userLocationInformation is used only in S-CDR, SGW-CDR and PGW-CDR
+-- chargingID used in PGW-CDR only when Charging per IP-CAN session is active
+--
+{
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS OPTIONAL,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS OPTIONAL,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ userLocationInformation [8] OCTET STRING OPTIONAL,
+ ePCQoSInformation [9] EPCQoSInformation OPTIONAL,
+ chargingID [10] ChargingID OPTIONAL,
+ presenceReportingAreaStatus [11] PresenceReportingAreaStatus OPTIONAL,
+ userCSGInformation [12] UserCSGInformation OPTIONAL
+}
+
+ChangeOfMBMSCondition ::= SEQUENCE
+--
+-- Used in MBMS record
+--
+{
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL,
+ dataVolumeMBMSDownlink [4] DataVolumeMBMS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ failureHandlingContinue [7] FailureHandlingContinue OPTIONAL
+}
+
+ChangeOfServiceCondition ::= SEQUENCE
+--
+-- Used for Flow based Charging and Application based Charging service data container
+--
+{
+ ratingGroup [1] RatingGroupId,
+ chargingRuleBaseName [2] ChargingRuleBaseName OPTIONAL,
+ resultCode [3] ResultCode OPTIONAL,
+ localSequenceNumber [4] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [5] TimeStamp OPTIONAL,
+ timeOfLastUsage [6] TimeStamp OPTIONAL,
+ timeUsage [7] CallDuration OPTIONAL,
+ serviceConditionChange [8] ServiceConditionChange,
+ qoSInformationNeg [9] EPCQoSInformation OPTIONAL,
+ servingNodeAddress [10] GSNAddress OPTIONAL,
+ datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL,
+ datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL,
+ timeOfReport [14] TimeStamp,
+ failureHandlingContinue [16] FailureHandlingContinue OPTIONAL,
+ serviceIdentifier [17] ServiceIdentifier OPTIONAL,
+ pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL,
+ aFRecordInformation [19] SEQUENCE OF AFRecordInformation OPTIONAL,
+ userLocationInformation [20] OCTET STRING OPTIONAL,
+ eventBasedChargingInformation [21] EventBasedChargingInformation OPTIONAL,
+ timeQuotaMechanism [22] TimeQuotaMechanism OPTIONAL,
+ serviceSpecificInfo [23] SEQUENCE OF ServiceSpecificInfo OPTIONAL,
+ threeGPP2UserLocationInformation [24] OCTET STRING OPTIONAL,
+ sponsorIdentity [25] OCTET STRING OPTIONAL,
+ applicationServiceProviderIdentity [26] OCTET STRING OPTIONAL,
+ aDCRuleBaseName [27] ADCRuleBaseName OPTIONAL,
+ presenceReportingAreaStatus [28] PresenceReportingAreaStatus OPTIONAL,
+ userCSGInformation [29] UserCSGInformation OPTIONAL
+}
+
+ChangeLocation ::= SEQUENCE
+--
+-- used in SGSNMMRecord only
+--
+{
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp,
+ mCC-MNC [4] PLMN-Id OPTIONAL
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+
+ChargingID ::= INTEGER (0..4294967295)
+--
+-- Generated in P-GW, part of IP-CAN bearer
+-- 0..4294967295 is equivalent to 0..2**32-1
+--
+
+ChargingRuleBaseName ::= IA5String
+--
+-- identifier for the group of charging rules
+-- see Charging-Rule-Base-Name AVP as desined in TS 29.212 [220]
+--
+
+ChChSelectionMode ::= ENUMERATED
+{
+ servingNodeSupplied (0), -- For S-GW/P-GW
+ subscriptionSpecific (1), -- For SGSN only
+ aPNSpecific (2), -- For SGSN only
+ homeDefault (3), -- For SGSN, S-GW, P-GW, TDF and IP-Edge
+ roamingDefault (4), -- For SGSN, S-GW, P-GW, TDF and IP-Edge
+ visitingDefault (5), -- For SGSN, S-GW, P-GW, TDF and IP-Edge
+ fixedDefault (6) -- For TDF and IP-Edge
+}
+
+CNOperatorSelectionEntity ::= ENUMERATED
+{
+ servCNSelectedbyUE (0),
+ servCNSelectedbyNtw (1)
+}
+
+CSGAccessMode ::= ENUMERATED
+{
+ closedMode (0),
+ hybridMode (1)
+}
+
+CSGId ::= OCTET STRING (SIZE(4))
+--
+-- Defined in TS 23.003 [200]. Coded according to TS 29.060 [215] for GTP, and
+-- in TS 29.274 [223] for eGTP.
+--
+
+CTEID ::= OCTET STRING (SIZE(4))
+--
+-- Defined in TS 32.251[11] for MBMS-GW-CDR. Common Tunnel Endpoint Identifier
+-- of MBMS GW for user plane, defined in TS 23.246 [207].
+--
+
+DataVolumeGPRS ::= INTEGER
+--
+-- The volume of data transferred in octets.
+--
+
+DataVolumeMBMS ::= INTEGER
+--
+-- The volume of data transferred in octets.
+--
+
+DynamicAddressFlag ::= BOOLEAN
+
+EPCQoSInformation ::= SEQUENCE
+--
+-- See TS 29.212 [220] for more information
+--
+{
+ qCI [1] INTEGER,
+ maxRequestedBandwithUL [2] INTEGER OPTIONAL,
+ maxRequestedBandwithDL [3] INTEGER OPTIONAL,
+ guaranteedBitrateUL [4] INTEGER OPTIONAL,
+ guaranteedBitrateDL [5] INTEGER OPTIONAL,
+ aRP [6] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateUL [7] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateDL [8] INTEGER OPTIONAL
+}
+
+EventBasedChargingInformation ::= SEQUENCE
+{
+ numberOfEvents [1] INTEGER,
+ eventTimeStamps [2] SEQUENCE OF TimeStamp OPTIONAL
+}
+
+FailureHandlingContinue ::= BOOLEAN
+--
+-- This parameter is included when the failure handling procedure has been executed and new
+-- containers are opened. This parameter shall be included in the first and subsequent
+-- containers opened after the failure handling execution.
+--
+
+FFDAppendIndicator ::= BOOLEAN
+
+
+FixedSubsID ::= OCTET STRING
+--
+-- The fixed subscriber Id identifier is defined in Broadband Forum TR 134 [601].
+--
+
+
+FixedUserLocationInformation ::= SEQUENCE
+--
+-- See format in IEEE Std 802.11-2012 [408] for "SSID" and "BSSID".
+--
+{
+ sSID [0] OCTET STRING OPTIONAL ,
+ bSSID [1] OCTET STRING OPTIONAL,
+ accessLineIdentifier [2] AccessLineIdentifier OPTIONAL
+}
+
+Flows ::= SEQUENCE
+--
+-- See Flows AVP as defined in TS 29.214 [221]
+--
+{
+ mediaComponentNumber [1] INTEGER,
+ flowNumber [2] SEQUENCE OF INTEGER OPTIONAL
+}
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+--
+-- Free formatted data as sent in the FurnishChargingInformationGPRS
+-- see TS 29.078 [217]
+--
+
+-- GSNAddress ::= IPAddress
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+--
+-- see TS 24.008 [208]
+--
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+--
+-- Set to true if PDP context was initiated from network side
+--
+
+NodeID ::= IA5String (SIZE(1..20))
+
+NumberOfDPEncountered ::= INTEGER
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress
+-- eTSIAddress [1] ETSIAddress
+-- has only been used in earlier releases for X.121 format
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+--
+-- OCTET 1: PDP Type Organization
+-- OCTET 2: PDP/PDN Type Number
+-- See TS 29.060 [215] for encoding details.
+--
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+--
+-- This is in the same format as octets 2,3,and 4 of the Routing Area Identity (RAI) IE specified
+-- in TS 29.060 [215]
+--
+
+PresenceReportingAreaInfo ::= SEQUENCE
+{
+ presenceReportingAreaIdentifier [0] OCTET STRING,
+ presenceReportingAreaStatus [1] PresenceReportingAreaStatus OPTIONAL
+}
+
+PresenceReportingAreaStatus ::= ENUMERATED
+{
+ insideArea (0),
+ outsideArea (1)
+}
+
+PSFurnishChargingInformation ::= SEQUENCE
+{
+ pSFreeFormatData [1] FreeFormatData,
+ pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+}
+
+QoSInformation ::= OCTET STRING (SIZE (4..255))
+--
+-- This octet string
+-- is a 1:1 copy of the contents (i.e. starting with octet 5) of the "Bearer Quality of
+-- Service" information element specified in TS 29.274 [223].
+--
+
+RatingGroupId ::= INTEGER
+--
+-- IP service flow identity (DCCA), range of 4 byte (0... 4294967295)
+-- see Rating-Group AVP as used in TS 32.299 [50]
+--
+
+RATType ::= INTEGER (0..255)
+--
+-- Ihis integer is 1:1 copy of the RAT type value as defined in TS 29.061 [215].
+--
+
+ResultCode ::= INTEGER
+--
+-- charging protocol return value, range of 4 byte (0... 4294967295)
+-- see Result-Code AVP as used in 32.299 [40]
+--
+
+ServiceConditionChange ::= BIT STRING
+{
+ qoSChange (0), -- bearer modification
+ sGSNChange (1), -- bearer modification:
+ -- apply to Gn-SGSN /SGW Change
+ sGSNPLMNIDChange (2), -- bearer modification
+ tariffTimeSwitch (3), -- tariff time change
+ pDPContextRelease (4), -- bearer release
+ rATChange (5), -- bearer modification
+ serviceIdledOut (6), -- IP flow idle out, DCCA QHT expiry
+ reserved (7), -- old: QCTexpiry is no report event
+ configurationChange (8), -- configuration change
+ serviceStop (9), -- IP flow termination.From "Service Stop" in
+ -- Change-Condition AVP
+ dCCATimeThresholdReached (10), -- DCCA quota reauthorization
+ dCCAVolumeThresholdReached (11), -- DCCA quota reauthorization
+ dCCAServiceSpecificUnitThresholdReached (12), -- DCCA quota reauthorization
+ dCCATimeExhausted (13), -- DCCA quota reauthorization
+ dCCAVolumeExhausted (14), -- DCCA quota reauthorization
+ dCCAValidityTimeout (15), -- DCCA quota validity time (QVT expiry)
+ reserved1 (16), -- reserved due to no use case,
+ -- old: return Requested is covered by (17),(18)
+ dCCAReauthorisationRequest (17), -- DCCA quota reauthorization request by OCS
+ dCCAContinueOngoingSession (18), -- DCCA failure handling (CCFH),
+ -- continue IP flow
+ dCCARetryAndTerminateOngoingSession (19), -- DCCA failure handling (CCFH),
+ -- terminate IP flow after DCCA retry
+ dCCATerminateOngoingSession (20), -- DCCA failure handling,
+ -- terminate IP flow
+ cGI-SAIChange (21), -- bearer modification. "CGI-SAI Change"
+ rAIChange (22), -- bearer modification. "RAI Change"
+ dCCAServiceSpecificUnitExhausted (23), -- DCCA quota reauthorization
+ recordClosure (24), -- PGW-CDR closure
+ timeLimit (25), -- intermediate recording. From "Service Data
+ --Time Limit" Change-Condition AVP value
+ volumeLimit (26), -- intermediate recording.From "Service Data
+ --Volume Limit" Change-Condition AVP value
+ serviceSpecificUnitLimit (27), -- intermediate recording
+ envelopeClosure (28),
+ eCGIChange (29), -- bearer modification. "ECGI Change"
+ tAIChange (30), -- bearer modification. "TAI Change"
+ userLocationChange (31), -- bearer modification. "User Location Change"
+ userCSGInformationChange (32) -- bearer modification. "User CSG info Change"
+}
+--
+-- Trigger and cause values for IP flow level recording are defined for support of independent
+-- online and offline charging and also for tight interworking between online and offline charging.
+-- Unused bits will always be zero.
+-- Some of the values are non-exclusive (e.g. bearer modification reasons).
+--
+
+SCFAddress ::= AddressString
+--
+-- See TS 29.002 [214]
+--
+
+ServiceIdentifier ::= INTEGER (0..4294967295)
+--
+-- The service identifier is used to identify the service or the service component
+-- the service data flow relates to. See Service-Identifier AVP as defined in TS 29.212 [220]
+--
+
+ServingNodeType ::= ENUMERATED
+{
+ sGSN (0),
+ pMIPSGW (1),
+ gTPSGW (2),
+ ePDG (3),
+ hSGW (4),
+ mME (5),
+ tWAN (6)
+}
+
+SGSNChange ::= BOOLEAN
+--
+-- present if first record after inter SGSN routing area update in new SGSN
+--
+
+SGWChange ::= BOOLEAN
+--
+-- present if first record after inter serving node change (SGW, ePDG, HSGW)
+--
+
+TimeQuotaMechanism ::= SEQUENCE
+{
+ timeQuotaType [1] TimeQuotaType,
+ baseTimeInterval [2] INTEGER
+}
+
+TimeQuotaType ::= ENUMERATED
+{
+ dISCRETETIMEPERIOD (0),
+ cONTINUOUSTIMEPERIOD (1)
+}
+
+TWANUserLocationInfo ::= SEQUENCE
+{
+ sSID [0] OCTET STRING, -- see format in IEEE Std 802.11-2012 [408]
+ bSSID [1] OCTET STRING OPTIONAL -- see format in IEEE Std 802.11-2012 [408]
+}
+
+UserCSGInformation ::= SEQUENCE
+{
+ cSGId [0] CSGId,
+ cSGAccessMode [1] CSGAccessMode,
+ cSGMembershipIndication [2] NULL OPTIONAL
+}
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn
new file mode 100644
index 0000000000..760ca18011
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn
@@ -0,0 +1,890 @@
+-- 3GPP TS 32.298 V6.4.1 (2006-06)
+--
+GPRSChargingDataTypes {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+--CallDuration, CalledNumber, CallEventRecordType, CallingNumber, CallReferenceNumber, CellId, DefaultSMS-Handling, Diagnostics, Ext-GeographicalInformation, IMSI, IMEI, IPAddress, ISDN-AddressString, LCSCause, LCSClientExternalID, LCSClientIdentity, LCSClientInternalID, LCSClientType, LCS-Priority, LCSQoSInfo, LevelOfCAMELService, LocalSequenceNumber, LocationAreaAndCell, LocationAreaCode, LocationType, ManagementExtensions, MessageReference, MSISDN, NotificationToMSUser, PositioningData, RecordingEntity, ServiceKey, SMSResult, SmsTpDestinationNumber, TimeStamp
+--FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+-- From V670
+RAIdentity
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+-- from TS 29.002 [60]
+
+DefaultGPRS-Handling
+-- RAIdentity
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6)}
+--
+-- from TS 29.002 [60]
+
+LocationMethod
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+-- from TS 24.080 [61]
+
+--MBMS2G3GIndicator, FileRepairSupported, MBMSServiceType, MBMSUserServiceType, RequiredMBMSBearerCapabilities, MBMSSessionIdentity, TMGI, MBMSInformation
+--FROM MBMSChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) mbmsChargingDataTypes (8) asn1Module (0) version1 (0)}
+
+-- Editor's note: consider moving the above 2 items also into the generic module in order to avoid again copying from external sources.
+;
+
+------------------------------------------------------------------------------
+--
+-- GPRS RECORDS
+--
+------------------------------------------------------------------------------
+
+GPRSCallEventRecord ::= CHOICE
+{
+--
+-- Record values 20..27 are GPRS specific
+-- Record values 29..30 are GPRS and MBMS specific
+
+ sgsnPDPRecord [20] SGSNPDPRecordV651,
+ ggsnPDPRecord [21] GGSNPDPRecord,
+ sgsnMMRecord [22] SGSNMMRecord,
+ sgsnSMORecord [23] SGSNSMORecordV651,
+ sgsnSMTRecord [24] SGSNSMTRecordV651,
+-- sgsnLCTRecord [25] SGSNLCTRecord,
+-- sgsnLCORecord [26] SGSNLCORecord,
+-- sgsnLCNRecord [27] SGSNLCNRecord,
+ egsnPDPRecord [28] EGSNPDPRecord
+-- sgsnMBMSRecord [29] SGSNMBMSRecord,
+-- ggsnMBMSRecord [30] GGSNMBMSRecord
+}
+-- Editor's note: the acronyms for the LCS record types are not consistent with CS and the "call event record type" notation. They also contradict to the record type definitons below, so alignment is needed.
+
+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 OPTIONAL,
+ pdpType [8] PDPType OPTIONAL,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosingV651,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL
+
+}
+
+-- WS Added GGSNPDPRecord from V750 spec here
+GGSNPDPRecordV750 ::= SET
+{
+ recordType [0] RecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ ggsnAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ sgsnAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpType [8] PDPType OPTIONAL,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL
+}
+EGSNPDPRecord ::= 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 OPTIONAL,
+ pdpType [8] PDPType OPTIONAL,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosingV651,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceConditionV651 OPTIONAL
+}
+
+EGSNPDPRecordV750 ::= 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 OPTIONAL,
+ pdpType [8] PDPType OPTIONAL,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosingV651,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceConditionV750 OPTIONAL
+}
+--SGSNMMRecord ::= SET
+--{
+-- recordType [0] CallEventRecordType,
+-- servedIMSI [1] IMSI,
+-- servedIMEI [2] IMEI OPTIONAL,
+-- sgsnAddress [3] GSNAddress OPTIONAL,
+-- msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+-- routingArea [5] RoutingAreaCode OPTIONAL,
+-- locationAreaCode [6] LocationAreaCode OPTIONAL,
+-- cellIdentifier [7] CellId OPTIONAL,
+-- changeLocation [8] SEQUENCE OF ChangeLocationV651 OPTIONAL,
+-- recordOpeningTime [9] TimeStamp,
+-- duration [10] CallDuration OPTIONAL,
+-- sgsnChange [11] SGSNChange OPTIONAL,
+-- causeForRecClosing [12] CauseForRecClosingV651,
+-- diagnostics [13] Diagnostics OPTIONAL,
+-- recordSequenceNumber [14] INTEGER OPTIONAL,
+-- nodeID [15] NodeID OPTIONAL,
+-- recordExtensions [16] ManagementExtensions OPTIONAL,
+-- localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+-- servedMSISDN [18] MSISDN OPTIONAL,
+-- chargingCharacteristics [19] ChargingCharacteristics,
+-- cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+-- rATType [21] RATType OPTIONAL,
+-- chChSelectionMode [22] ChChSelectionMode OPTIONAL
+--}
+
+SGSNPDPRecordV651 ::= SET
+{
+ recordType [0] CallEventRecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ servedIMEI [4] IMEI OPTIONAL,
+ sgsnAddress [5] GSNAddress OPTIONAL,
+ msNetworkCapability [6] MSNetworkCapability OPTIONAL,
+ routingArea [7] RoutingAreaCode OPTIONAL,
+ locationAreaCode [8] LocationAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ chargingID [10] ChargingID,
+ ggsnAddressUsed [11] GSNAddress,
+ accessPointNameNI [12] AccessPointNameNI OPTIONAL,
+ pdpType [13] PDPType OPTIONAL,
+ servedPDPAddress [14] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL,
+ recordOpeningTime [16] TimeStamp,
+ duration [17] CallDuration,
+ sgsnChange [18] SGSNChange OPTIONAL,
+ causeForRecClosing [19] CauseForRecClosingV651,
+ diagnostics [20] Diagnostics OPTIONAL,
+ recordSequenceNumber [21] INTEGER OPTIONAL,
+ nodeID [22] NodeID OPTIONAL,
+ recordExtensions [23] ManagementExtensions OPTIONAL,
+ localSequenceNumber [24] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [25] APNSelectionMode OPTIONAL,
+ accessPointNameOI [26] AccessPointNameOI OPTIONAL,
+ servedMSISDN [27] MSISDN OPTIONAL,
+ chargingCharacteristics [28] ChargingCharacteristics,
+ rATType [29] RATType OPTIONAL,
+ cAMELInformationPDP [30] CAMELInformationPDP OPTIONAL,
+ rNCUnsentDownlinkVolume [31] DataVolumeGPRS OPTIONAL,
+ chChSelectionMode [32] ChChSelectionMode OPTIONAL,
+ dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL
+}
+
+SGSNSMORecordV651 ::= SET
+{
+ recordType [0] CallEventRecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ messageReference [10] MessageReference,
+ eventTimeStamp [11] TimeStamp,
+ smsResult [12] SMSResult OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ nodeID [14] NodeID OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [16] ChargingCharacteristics,
+ rATType [17] RATType OPTIONAL,
+ destinationNumber [18] SmsTpDestinationNumber OPTIONAL,
+ cAMELInformationSMS [19] CAMELInformationSMS OPTIONAL,
+ chChSelectionMode [20] ChChSelectionMode OPTIONAL
+}
+
+SGSNSMTRecordV651 ::= SET
+{
+ recordType [0] CallEventRecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ eventTimeStamp [10] TimeStamp,
+ smsResult [11] SMSResult OPTIONAL,
+ recordExtensions [12] ManagementExtensions OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics,
+ rATType [16] RATType OPTIONAL,
+ chChSelectionMode [17] ChChSelectionMode OPTIONAL,
+ cAMELInformationSMS [18] CAMELInformationSMS OPTIONAL
+}
+
+SGSNMTLCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType,
+ lcsClientIdentity [3] LCSClientIdentity,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationType [7] LocationType,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ notificationToMSUser [13] NotificationToMSUser OPTIONAL,
+ privacyOverride [14] NULL OPTIONAL,
+ location [15] LocationAreaAndCell OPTIONAL,
+ routingArea [16] RoutingAreaCode OPTIONAL,
+ locationEstimate [17] Ext-GeographicalInformation OPTIONAL,
+ positioningData [18] PositioningData OPTIONAL,
+ lcsCause [19] LCSCause OPTIONAL,
+ diagnostics [20] Diagnostics OPTIONAL,
+ nodeID [21] NodeID OPTIONAL,
+ localSequenceNumber [22] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ rATType [25] RATType OPTIONAL,
+ recordExtensions [26] ManagementExtensions OPTIONAL,
+ causeForRecClosing [27] CauseForRecClosingV651
+}
+
+SGSNMOLCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationMethod [7] LocationMethod,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosingV651
+}
+
+SGSNNILCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI OPTIONAL,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ servedIMEI [7] IMEI OPTIONAL,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosingV651
+}
+
+SGSNMBMSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofRAs [3] SEQUENCE OF RAIdentity OPTIONAL,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosingV651,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ sgsnPLMNIdentifier [15] PLMN-Id OPTIONAL,
+ numberofReceivingUE [16] Integer OPTIONAL,
+ mbmsInformation [17] MBMSInformation OPTIONAL
+
+}
+
+GGSNMBMSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosingV651,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [15] MBMSInformation OPTIONAL
+}
+
+------------------------------------------------------------------------------
+--
+-- GPRS 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 [75]
+ --
+-- mSorNetworkProvidedSubscriptionVerified (0),
+-- mSProvidedSubscriptionNotVerified (1),
+-- networkProvidedSubscriptionNotVerified (2)
+--}
+
+--CAMELAccessPointNameNI ::= AccessPointNameNI
+
+--CAMELAccessPointNameOI ::= AccessPointNameOI
+
+--CAMELInformationMM ::= SET
+--{
+-- sCFAddress [1] SCFAddress OPTIONAL,
+-- serviceKey [2] ServiceKey OPTIONAL,
+-- defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+-- numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+-- levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+-- freeFormatData [6] FreeFormatData OPTIONAL,
+-- fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+--}
+
+--CAMELInformationPDP ::= SET
+--{
+-- sCFAddress [1] SCFAddress OPTIONAL,
+-- serviceKey [2] ServiceKey OPTIONAL,
+-- defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+-- cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+-- cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+-- numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+-- levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+-- freeFormatData [8] FreeFormatData OPTIONAL,
+-- fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+--}
+
+--CAMELInformationSMS ::= SET
+--{
+-- sCFAddress [1] SCFAddress OPTIONAL,
+-- serviceKey [2] ServiceKey OPTIONAL,
+-- defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+-- cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+-- cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+-- cAMELSMSCAddress [6] AddressString OPTIONAL,
+-- freeFormatData [7] FreeFormatData OPTIONAL,
+-- smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+--}
+CauseForRecClosingV651 ::= INTEGER
+{
+ --
+ -- In GGSN the value sGSNChange should be used for partial record
+ -- generation due to SGSN Address List Overflow
+ --
+ -- LCS related causes belong to the MAP error causes acc. TS 29.002
+ --
+ -- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination)
+ --
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ sGSNChange (18),
+ maxChangeCond (19),
+ managementIntervention (20),
+ intraSGSNIntersystemChange (21),
+ rATChange (22),
+ mSTimeZoneChange (23),
+ sGSNPLMNIDChange (24), -- Copied from V8e0
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ listofDownstreamNodeChange (59)
+}
+
+ChangeConditionV651 ::= ENUMERATED
+{
+ --
+ -- Failure Handling values used in eGCDR only
+ --
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2),
+ failureHandlingContinueOngoing (3),
+ failureHandlingRetryandTerminateOngoing (4),
+ failureHandlingTerminateOngoing (5),
+-- WS mod add from V750
+ cGI-SAICHange (6),
+ rAIChange (7),
+ dT-Establishment (8),
+ dT-Removal (9)
+}
+
+ChangeOfCharConditionV651 ::= SEQUENCE
+{
+ --
+ -- Used in PDP context record only
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS,
+ changeCondition [5] ChangeConditionV651,
+ changeTime [6] TimeStamp,
+-- WS mod add from V750
+ failureHandlingContinue [7] FailureHandlingContinue OPTIONAL,
+ userLocationInformation [8] OCTET STRING OPTIONAL
+}
+--ChangeOfMBMSCondition ::= SEQUENCE
+--{
+ --
+ -- Used in MBMS record
+ --
+-- qosRequested [1] QoSInformation OPTIONAL,
+-- qosNegotiated [2] QoSInformation OPTIONAL,
+-- dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL,
+-- dataVolumeMBMSDownlink [4] DataVolumeMBMS,
+-- changeCondition [5] ChangeConditionV651,
+-- changeTime [6] TimeStamp,
+-- failureHandlingContinue [7] FailureHandlingContinue OPTIONAL
+--}
+
+ChangeOfServiceConditionV651 ::= SEQUENCE
+{
+ --
+ -- Used for Flow based Charging service data container
+ --
+
+ ratingGroup [1] RatingGroupId,
+ chargingRuleBaseName [2] ChargingRuleBaseName OPTIONAL,
+ resultCode [3] ResultCode OPTIONAL,
+ localSequenceNumber [4] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [5] TimeStamp OPTIONAL,
+ timeOfLastUsage [6] TimeStamp OPTIONAL,
+ timeUsage [7] CallDuration OPTIONAL,
+ serviceConditionChange [8] ServiceConditionChangeV651,
+ qoSInformationNeg [9] QoSInformation OPTIONAL,
+ sgsn-Address [10] GSNAddress OPTIONAL,
+-- sGSNPLMNIdentifier [11] SGSNPLMNIdentifier OPTIONAL, Typo ?
+ sGSNPLMNIdentifier [11] PLMN-Id OPTIONAL,
+ datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL,
+ datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL,
+ timeOfReport [14] TimeStamp,
+ rATType [15] RATType OPTIONAL,
+ failureHandlingContinue [16] FailureHandlingContinue OPTIONAL,
+ serviceIdentifier [17] ServiceIdentifier OPTIONAL,
+ pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL
+}
+
+ChangeOfServiceConditionV750 ::= SEQUENCE
+{
+ --
+ -- Used for Flow based Charging service data container
+ --
+ ratingGroup [1] RatingGroupId,
+ chargingRuleBaseName [2] ChargingRuleBaseName OPTIONAL,
+ resultCode [3] ResultCode OPTIONAL,
+ localSequenceNumber [4] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [5] TimeStamp OPTIONAL,
+ timeOfLastUsage [6] TimeStamp OPTIONAL,
+ timeUsage [7] CallDuration OPTIONAL,
+ serviceConditionChangeV750 [8] ServiceConditionChangeV750,
+ qoSInformationNeg [9] QoSInformation OPTIONAL,
+ sgsn-Address [10] GSNAddress OPTIONAL,
+-- sGSNPLMNIdentifier [11] SGSNPLMNIdentifier OPTIONAL,
+ sGSNPLMNIdentifier [11] PLMN-Id OPTIONAL,
+ datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL,
+ datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL,
+ timeOfReport [14] TimeStamp,
+ rATType [15] RATType OPTIONAL,
+ failureHandlingContinue [16] FailureHandlingContinue OPTIONAL,
+ serviceIdentifier [17] ServiceIdentifier OPTIONAL,
+ pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL,
+ aFRecordInformation [19] SEQUENCE OF AFRecordInformation OPTIONAL,
+ userLocationInformation [20] OCTET STRING OPTIONAL,
+ eventBasedChargingInformation [21] EventBasedChargingInformation OPTIONAL,
+ timeQuotaMechanism [22] TimeQuotaMechanism OPTIONAL
+}
+
+ChangeLocationV651 ::= SEQUENCE
+{
+ --
+ -- used in SGSNMMRecord only
+ --
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp,
+ -- WS add from V750
+ mCC-MNC [4] PLMN-Id OPTIONAL
+}
+
+--ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+ --
+ -- Bit 0-3: Profile Index
+ -- Bit 4-15: For Behavior
+ --
+
+--ChargingID ::= INTEGER (0..4294967295)
+ --
+ -- Generated in GGSN, part of PDP context, see TS 23.060
+ -- 0..4294967295 is equivalent to 0..2**32-1
+ --
+
+--ChargingRuleBaseName ::= IA5String (SIZE(1..16))
+ --
+ -- identifier for the group of charging rules
+ -- see Charging-Rule-Base-Name AVP as desined in 3GPP TS 29.210 [85]
+
+--ChChSelectionMode ::= ENUMERATED
+--{
+-- sGSNSupplied (0), - - For GGSN only
+-- subscriptionSpecific (1), - - For SGSN only
+-- aPNSpecific (2), - - For SGSN only
+-- homeDefault (3), - - For SGSN and GGSN
+-- roamingDefault (4), - - For SGSN and GGSN
+-- visitingDefault (5) - - For SGSN and GGSN
+--}
+
+--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
+ --
+
+--FailureHandlingContinue ::= BOOLEAN
+ --
+-- This parameter is included when the failure handling procedure has been executed and new
+-- containers are opened. This parameter shall be included in the first and subsequent
+-- containers opened after the failure handling execution.
+ --
+
+--FFDAppendIndicator ::= BOOLEAN
+
+--FreeFormatData ::= OCTET STRING (SIZE(1..160))
+ --
+ -- Free formated data as sent in the FurnishChargingInformationGPRS
+ -- see TS 29.078
+ --
+
+--GSNAddress ::= IPAddress
+
+--MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+ -- see 3G TS 24.008
+
+--NetworkInitiatedPDPContext ::= BOOLEAN
+ --
+ -- Set to true if PDP context was initiated from network side
+ --
+
+--NodeID ::= IA5String (SIZE(1..20))
+
+--NumberOfDPEncountered ::= INTEGER
+
+--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 [75]
+ --
+
+--PLMN-Id ::= OCTET STRING (SIZE (3))
+ --
+ -- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060 [75]
+ -- 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
+
+
+--PSFurnishChargingInformation ::= SEQUENCE
+--{
+-- pSFreeFormatData [1] FreeFormatData,
+-- pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+--}
+
+
+--QoSInformation ::= OCTET STRING (SIZE (4..15))
+ --
+ -- This octet string
+ -- is a 1:1 copy of the contents (i.e. starting with octet 4) of the "Quality of
+ -- service Profile" information element specified in 3GPP TS 29.060 [75].
+
+-- RatingGroup ::= INTEGER Typo ?
+-- RatingGroupId ::= INTEGER
+ --
+ -- IP service flow identity (DCCA), range of 4 byte (0...4294967259)
+ -- see Rating-Group AVP as used in 3GPP TS 32.299 [40]
+ --
+
+-- RATType ::= INTEGER
+ --
+ -- Ihis integer is 1:1 copy of the RAT type value as defined in 3GPP TS 29.060 [75].
+ --
+
+--ResultCode ::= INTEGER
+--
+ -- charging protocol return value, range of 4 byte (0...4294967259)
+ -- see Result-Code AVP as used in 3GPP 29.210 [85]
+ --
+
+--RoutingAreaCode ::= OCTET STRING (SIZE(1))
+ --
+ -- See TS 24.008 --
+ --
+
+ServiceConditionChangeV651 ::= BIT STRING
+{
+qoSChange (0),
+sGSNChange (1),
+sGSNPLMNIDChange (2),
+tariffTimeSwitch (3),
+pDPContextRelease (4),
+rATChange (5),
+serviceIdledOut (6),
+qCTExpiry (7),
+configurationChange (8),
+serviceStop (9),
+timeThresholdReached (10),
+volumeThresholdReached (11),
+timeExhausted (13),
+volumeExhausted (14),
+timeout (15),
+returnRequested (16),
+reauthorisationRequest (17),
+continueOngoingSession (18),
+retryAndTerminateOngoingSession (19),
+terminateOngoingSession (20)
+}
+-- Bits 0-5 are cause values for Gn update/release and TTS
+-- Bits 6-9 are cause values for service stop
+-- Bits 10-14 are cause values for service reauthorization request
+-- Bits 15-17 are cause values for quota return
+-- Bits 18-20: are cause values for Failure Handling Procedure
+-- Bits 21-32: are unused and will always be zero
+-- some of the values are non-exclusive
+-- serviceIdledOut - bit 6 is equivalent to service release by QHT
+
+ServiceConditionChangeV750 ::= BIT STRING
+{
+ qoSChange (0), -- PDP context modification
+ sGSNChange (1), -- PDP context modification
+ sGSNPLMNIDChange (2), -- PDP context modification
+ tariffTimeSwitch (3), -- tariff time change
+ pDPContextRelease (4), -- PDP context release
+ rATChange (5), -- PDP context modification
+ serviceIdledOut (6), -- IP flow idle out, DCCA QHT expiry
+ reserved (7), -- old: QCTexpiry is no report event
+ configurationChange (8), -- configuration change
+ serviceStop (9), -- IP flow termination
+ dCCATimeThresholdReached (10), -- DCCA quota reauthorization
+ dCCAVolumeThresholdReached (11), -- DCCA quota reauthorization
+ dCCAServiceSpecificUnitThresholdReached (12), -- DCCA quota reauthorization
+ dCCATimeExhausted (13), -- DCCA quota reauthorization
+ dCCAVolumeExhausted (14), -- DCCA quota reauthorization
+ dCCAValidityTimeout (15), -- DCCA quota validity time (QVT expiry)
+ reserved2 (16), -- reserved due to no use case,
+ -- old: return Requested is covered by (17),(18)
+ dCCAReauthorisationRequest (17), -- DCCA quota reauthorization request by OCS
+ dCCAContinueOngoingSession (18), -- DCCA failure handling (CCFH),
+ -- continue IP flow
+ dCCARetryAndTerminateOngoingSession (19), -- DCCA failure handling (CCFH),
+ -- terminate IP flow after DCCA retry
+ dCCATerminateOngoingSession (20), -- DCCA failure handling,
+ -- terminate IP flow
+ cGI-SAIChange (21), -- PDP context modification
+ rAIChange (22), -- PDP context modification
+ dCCAServiceSpecificUnitExhausted (23), -- DCCA quota reauthorization
+ recordClosure (24), -- eG-CDR closure
+ timeLimit (25), -- intermediate recording
+ volumeLimit (26), -- intermediate recording
+ serviceSpecificUnitLimit (27), -- intermediate recording
+ envelopeClosure (28)
+}
+--
+-- Trigger and cause values for IP flow level recording are defined for support of independent
+-- online and offline charging and also for tight interworking between online and offline charging.
+-- Unused bits will always be zero.
+-- Some of the values are non-exclusive (e.g. PDP context modification reasons).
+ --
+--SCFAddress ::= AddressString
+ --
+ -- See TS 29.002
+ --
+
+--ServiceIdentifier ::= INTEGER (0..4294967295)
+ --
+ -- The service identifier is used to identify the service or the service component
+ -- the service data flow relates to. See Service-Identifier AVP as defined
+ -- in 3GPP TS 29.210 [85]
+ --
+
+--SGSNChange ::= BOOLEAN
+ --
+ -- present if first record after inter SGSN routing area update
+ -- in new SGSN
+ --
+
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV8e0.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV8e0.asn
new file mode 100644
index 0000000000..b5bc64e416
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV8e0.asn
@@ -0,0 +1,847 @@
+-- 3GPP TS 32.298 V8.14.0 (2012-03)
+--
+GPRSChargingDataTypesV8e0 {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+-- CallDuration, CalledNumber, RecordType, CallingNumber, CallReferenceNumber, CellId, DefaultSMS-Handling, Diagnostics, Ext-GeographicalInformation, IMSI, IMEI, IPAddress, ISDN-AddressString, LCSCause, LCSClientExternalID, LCSClientIdentity, LCSClientInternalID, LCSClientType, LCS-Priority, LCSQoSInfo, LevelOfCAMELService, LocalSequenceNumber, LocationAreaAndCell, LocationAreaCode, LocationType, ManagementExtensions, MessageReference, MSISDN, NotificationToMSUser, PositioningData, RecordingEntity, ServiceKey, ServiceSpecificInfo, SMSResult, SmsTpDestinationNumber, SubscriptionID, TimeStamp, AddressString, MSTimeZone
+-- FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DefaultGPRS-Handling
+-- From V670
+-- , RAIdentity
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6)}
+--
+-- from TS 29.002 [60]
+
+LocationMethod
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+--
+-- from TS 24.080 [61]
+
+-- MBMS2G3GIndicator, FileRepairSupported, MBMSServiceType, MBMSUserServiceType, RequiredMBMSBearerCapabilities, MBMSSessionIdentity, TMGI, MBMSInformation
+-- FROM MBMSChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) mbmsChargingDataTypes (8) asn1Module (0) version1 (0)}
+
+-- Editor's note: consider moving the above 2 items also into the generic module in order to avoid again copying from external sources.
+;
+
+------------------------------------------------------------------------------
+--
+-- GPRS RECORDS
+--
+------------------------------------------------------------------------------
+
+GPRSRecord ::= CHOICE
+--
+-- Record values 20, 22..27 are specific
+-- Record values 76..77 are MBMS specific
+-- Record values 78..79 are EPC specific
+{
+ sgsnPDPRecord [20] SGSNPDPRecord,
+ sgsnMMRecord [22] SGSNMMRecord,
+ sgsnSMORecord [23] SGSNSMORecord,
+ sgsnSMTRecord [24] SGSNSMTRecord,
+-- sgsnLCTRecord [25] SGSNLCTRecord,
+-- sgsnLCORecord [26] SGSNLCORecord,
+-- sgsnLCNRecord [27] SGSNLCNRecord,
+--
+--
+-- sgsnMBMSRecord [76] SGSNMBMSRecord,
+-- ggsnMBMSRecord [77] GGSNMBMSRecord,
+ sGWRecord [78] SGWRecord,
+ pGWRecord [79] PGWRecord
+}
+
+SGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI,
+ s-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ sGWChange [34] SGWChange OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ p-GWAddressUsed [36] GSNAddress OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ pDNConnectionChargingID [40] ChargingID OPTIONAL,
+ servedPDPPDNAddressExt [43] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL
+
+
+}
+
+PGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI,
+ p-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ servinggNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ servedMNNAI [36] SubscriptionID OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ served3gpp2MEID [40] OCTET STRING OPTIONAL,
+ pDNConnectionChargingID [41] ChargingID OPTIONAL,
+ tGPP2UserLocationInformation [42] OCTET STRING OPTIONAL,
+ servedPDPPDNAddressExt [45] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL
+
+}
+
+SGSNMMRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ sgsnAddress [3] GSNAddress OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ routingArea [5] RoutingAreaCode OPTIONAL,
+ locationAreaCode [6] LocationAreaCode OPTIONAL,
+ cellIdentifier [7] CellId OPTIONAL,
+ changeLocation [8] SEQUENCE OF ChangeLocation OPTIONAL,
+ recordOpeningTime [9] TimeStamp,
+ duration [10] CallDuration OPTIONAL,
+ sgsnChange [11] SGSNChange OPTIONAL,
+ causeForRecClosing [12] CauseForRecClosing,
+ diagnostics [13] Diagnostics OPTIONAL,
+ recordSequenceNumber [14] INTEGER OPTIONAL,
+ nodeID [15] NodeID OPTIONAL,
+ recordExtensions [16] ManagementExtensions OPTIONAL,
+ localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+ servedMSISDN [18] MSISDN OPTIONAL,
+ chargingCharacteristics [19] ChargingCharacteristics,
+ cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+ rATType [21] RATType OPTIONAL,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ cellPLMNId [23] PLMN-Id OPTIONAL
+}
+
+SGSNPDPRecord ::= SET
+{
+ recordType [0] RecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ servedIMEI [4] IMEI OPTIONAL,
+ sgsnAddress [5] GSNAddress OPTIONAL,
+ msNetworkCapability [6] MSNetworkCapability OPTIONAL,
+ routingArea [7] RoutingAreaCode OPTIONAL,
+ locationAreaCode [8] LocationAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ chargingID [10] ChargingID,
+ ggsnAddressUsed [11] GSNAddress,
+ accessPointNameNI [12] AccessPointNameNI OPTIONAL,
+ pdpType [13] PDPType OPTIONAL,
+ servedPDPAddress [14] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [16] TimeStamp,
+ duration [17] CallDuration,
+ sgsnChange [18] SGSNChange OPTIONAL,
+ causeForRecClosing [19] CauseForRecClosing,
+ diagnostics [20] Diagnostics OPTIONAL,
+ recordSequenceNumber [21] INTEGER OPTIONAL,
+ nodeID [22] NodeID OPTIONAL,
+ recordExtensions [23] ManagementExtensions OPTIONAL,
+ localSequenceNumber [24] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [25] APNSelectionMode OPTIONAL,
+ accessPointNameOI [26] AccessPointNameOI OPTIONAL,
+ servedMSISDN [27] MSISDN OPTIONAL,
+ chargingCharacteristics [28] ChargingCharacteristics,
+ rATType [29] RATType OPTIONAL,
+ cAMELInformationPDP [30] CAMELInformationPDP OPTIONAL,
+ rNCUnsentDownlinkVolume [31] DataVolumeGPRS OPTIONAL,
+ chChSelectionMode [32] ChChSelectionMode OPTIONAL,
+ dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL
+}
+
+SGSNSMORecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ messageReference [10] MessageReference,
+ eventTimeStamp [11] TimeStamp,
+ smsResult [12] SMSResult OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ nodeID [14] NodeID OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [16] ChargingCharacteristics,
+ rATType [17] RATType OPTIONAL,
+ destinationNumber [18] SmsTpDestinationNumber OPTIONAL,
+ cAMELInformationSMS [19] CAMELInformationSMS OPTIONAL,
+ chChSelectionMode [20] ChChSelectionMode OPTIONAL
+}
+
+SGSNSMTRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ eventTimeStamp [10] TimeStamp,
+ smsResult [11] SMSResult OPTIONAL,
+ recordExtensions [12] ManagementExtensions OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics,
+ rATType [16] RATType OPTIONAL,
+ chChSelectionMode [17] ChChSelectionMode OPTIONAL,
+ cAMELInformationSMS [18] CAMELInformationSMS OPTIONAL
+}
+
+SGSNMTLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType,
+ lcsClientIdentity [3] LCSClientIdentity,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationType [7] LocationType,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ notificationToMSUser [13] NotificationToMSUser OPTIONAL,
+ privacyOverride [14] NULL OPTIONAL,
+ location [15] LocationAreaAndCell OPTIONAL,
+ routingArea [16] RoutingAreaCode OPTIONAL,
+ locationEstimate [17] Ext-GeographicalInformation OPTIONAL,
+ positioningData [18] PositioningData OPTIONAL,
+ lcsCause [19] LCSCause OPTIONAL,
+ diagnostics [20] Diagnostics OPTIONAL,
+ nodeID [21] NodeID OPTIONAL,
+ localSequenceNumber [22] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ rATType [25] RATType OPTIONAL,
+ recordExtensions [26] ManagementExtensions OPTIONAL,
+ causeForRecClosing [27] CauseForRecClosing
+}
+
+SGSNMOLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationMethod [7] LocationMethod,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNNILCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI OPTIONAL,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ servedIMEI [7] IMEI OPTIONAL,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofRAs [3] SEQUENCE OF RAIdentity OPTIONAL,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ sgsnPLMNIdentifier [15] PLMN-Id OPTIONAL,
+ numberofReceivingUE [16] INTEGER OPTIONAL,
+ mbmsInformation [17] MBMSInformation OPTIONAL
+}
+
+GGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [15] MBMSInformation OPTIONAL
+}
+
+------------------------------------------------------------------------------
+--
+-- PS 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.
+ --
+
+AFChargingIdentifier ::= OCTET STRING
+ --
+ -- see AF-Charging-Identifier AVP as defined in TS 29.214[89]
+ --
+
+AFRecordInformation ::= SEQUENCE
+{
+ aFChargingIdentifier [1] AFChargingIdentifier,
+ flows [2] Flows OPTIONAL
+}
+
+APNSelectionMode::= ENUMERATED
+{
+ --
+ -- See Information Elements TS 29.060 [75], TS 29.274 [91] or TS 29.275 [92]
+ --
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CAMELInformationMM ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+ freeFormatData [6] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationPDP ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+ cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+ numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+ freeFormatData [8] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationSMS ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+ cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+ cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+ cAMELSMSCAddress [6] AddressString OPTIONAL,
+ freeFormatData [7] FreeFormatData OPTIONAL,
+ smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+}
+
+CauseForRecClosing ::= INTEGER
+{
+ --
+ -- In PGW-CDR and SGW-CDR the value servingNodeChange is used for partial record
+ -- generation due to Serving Node Address list Overflow
+ -- In SGSN servingNodeChange indicates the SGSN change
+ --
+ -- LCS related causes belong to the MAP error causes acc. TS 29.002 [60]
+ --
+ -- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination)
+ --
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ servingNodeChange (18),
+ maxChangeCond (19),
+ managementIntervention (20),
+ intraSGSNIntersystemChange (21),
+ rATChange (22),
+ mSTimeZoneChange (23),
+ sGSNPLMNIDChange (24),
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ listofDownstreamNodeChange (59)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2),
+ cGI-SAICHange (6), -- bearer modification. "CGI-SAI Change"
+ rAIChange (7), -- bearer modification. "RAI Change"
+ dT-Establishment (8),
+ dT-Removal (9),
+ eCGIChange (10), -- bearer modification. "ECGI Change"
+ tAIChange (11), -- bearer modification. "TAI Change"
+ userLocationChange (12) -- bearer modification. "User Location Change"
+
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+{
+ --
+ -- qosRequested and qosNegotiated are used in S-CDR only
+ -- ePCQoSInformation used in SGW-CDR only
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS OPTIONAL,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS OPTIONAL,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ userLocationInformation [8] OCTET STRING OPTIONAL,
+ ePCQoSInformation [9] EPCQoSInformation OPTIONAL
+}
+
+ChangeOfMBMSCondition ::= SEQUENCE
+{
+ --
+ -- Used in MBMS record
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL,
+ dataVolumeMBMSDownlink [4] DataVolumeMBMS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ failureHandlingContinue [7] FailureHandlingContinue OPTIONAL
+}
+
+ChangeOfServiceCondition ::= SEQUENCE
+{
+ --
+ -- Used for Flow based Charging service data container
+ --
+ ratingGroup [1] RatingGroupId,
+ chargingRuleBaseName [2] ChargingRuleBaseName OPTIONAL,
+ resultCode [3] ResultCode OPTIONAL,
+ localSequenceNumber [4] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [5] TimeStamp OPTIONAL,
+ timeOfLastUsage [6] TimeStamp OPTIONAL,
+ timeUsage [7] CallDuration OPTIONAL,
+ serviceConditionChange [8] ServiceConditionChange,
+ qoSInformationNeg [9] EPCQoSInformation OPTIONAL,
+ servingNodeAddress [10] GSNAddress OPTIONAL,
+ datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL,
+ datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL,
+ timeOfReport [14] TimeStamp,
+ failureHandlingContinue [16] FailureHandlingContinue OPTIONAL,
+ serviceIdentifier [17] ServiceIdentifier OPTIONAL,
+ pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL,
+ aFRecordInformation [19] SEQUENCE OF AFRecordInformation OPTIONAL,
+ userLocationInformation [20] OCTET STRING OPTIONAL,
+ eventBasedChargingInformation [21] EventBasedChargingInformation OPTIONAL,
+ timeQuotaMechanism [22] TimeQuotaMechanism OPTIONAL,
+ serviceSpecificInfo [23] SEQUENCE OF ServiceSpecificInfo OPTIONAL,
+ tGPP2UserLocationInformation [24] OCTET STRING OPTIONAL
+}
+
+ChangeLocation ::= SEQUENCE
+{
+ --
+ -- used in SGSNMMRecord only
+ --
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp,
+ mCC-MNC [4] PLMN-Id OPTIONAL
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+
+ChargingID ::= INTEGER (0..4294967295)
+ --
+ -- Generated in P-GW, part of IP CAN bearer
+ -- 0..4294967295 is equivalent to 0..2**32-1
+ --
+
+ChargingRuleBaseName ::= IA5String (SIZE(1..16))
+ --
+ -- identifier for the group of charging rules
+ -- see Charging-Rule-Base-Name AVP as desined in TS 29.212 [88]
+ --
+
+ChChSelectionMode ::= ENUMERATED
+{
+ servingNodeSupplied (0), -- For S-GW/P-GW
+ subscriptionSpecific (1), -- For SGSN only
+ aPNSpecific (2), -- For SGSN only
+ homeDefault (3), -- For SGSN, S-GW and P-GW
+ roamingDefault (4), -- For SGSN, S-GW and P-GW
+ visitingDefault (5) -- For SGSN, S-GW and P-GW
+}
+
+DataVolumeGPRS ::= INTEGER
+ --
+ -- The volume of data transferred in octets.
+ --
+
+DynamicAddressFlag ::= BOOLEAN
+
+EPCQoSInformation ::= SEQUENCE
+{
+ --
+ -- See TS 29.212 [88] for more information
+ --
+ qCI [1] INTEGER,
+ maxRequestedBandwithUL [2] INTEGER OPTIONAL,
+ maxRequestedBandwithDL [3] INTEGER OPTIONAL,
+ guaranteedBitrateUL [4] INTEGER OPTIONAL,
+ guaranteedBitrateDL [5] INTEGER OPTIONAL,
+ aRP [6] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateUL [7] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateDL [8] INTEGER OPTIONAL
+
+}
+
+EventBasedChargingInformation ::= SEQUENCE
+{
+ numberOfEvents [1] INTEGER,
+ eventTimeStamps [2] SEQUENCE OF TimeStamp OPTIONAL
+}
+
+FailureHandlingContinue ::= BOOLEAN
+ --
+-- This parameter is included when the failure handling procedure has been executed and new
+-- containers are opened. This parameter shall be included in the first and subsequent
+-- containers opened after the failure handling execution.
+ --
+
+FFDAppendIndicator ::= BOOLEAN
+
+Flows ::= SEQUENCE
+ --
+ -- See Flows AVP as defined in TS 29.214 [89]
+ --
+{
+ mediaComponentNumber [1] INTEGER,
+ flowNumber [2] SEQUENCE OF INTEGER OPTIONAL
+}
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+ --
+ -- Free formatted data as sent in the FurnishChargingInformationGPRS
+ -- see TS 29.078 [66]
+ --
+
+GSNAddress ::= IPAddress
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+ -- see TS 24.008 [64]
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+ --
+ -- Set to true if PDP context was initiated from network side
+ --
+
+NodeID ::= IA5String (SIZE(1..20))
+
+NumberOfDPEncountered ::= INTEGER
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress
+-- eTSIAddress [1] ETSIAddress : has only been used in earlier releases for X.121 format
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+ --
+ -- OCTET 1: PDP Type Organization
+ -- OCTET 2: PDP/PDN Type Number
+ -- See TS 29.060 [75] for encoding details.
+ --
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ --
+ -- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060 [75]
+ -- 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
+ --
+
+
+PSFurnishChargingInformation ::= SEQUENCE
+{
+ pSFreeFormatData [1] FreeFormatData,
+ pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+}
+
+QoSInformation ::= OCTET STRING (SIZE (4..255))
+ --
+ -- This octet string
+ -- is a 1:1 copy of the contents (i.e. starting with octet 5) of the "Bearer Quality of
+ -- Service" information element specified in TS 29.274 [92].
+ --
+
+RatingGroupId ::= INTEGER
+ --
+ -- IP service flow identity (DCCA), range of 4 byte (0...4294967295)
+ -- see Rating-Group AVP as used in TS 32.299 [40]
+ --
+
+RATType ::= INTEGER
+ --
+ -- Ihis integer is 1:1 copy of the RAT type value as defined in TS 29.061 [82].
+ --
+-- WS Extension
+{
+ reserved (0),
+ utran (1),
+ geran (2),
+ wlan (3),
+ gan (4),
+ hspa-evolution (5)
+}(0..255)
+
+ResultCode ::= INTEGER
+--
+ -- charging protocol return value, range of 4 byte (0...4294967295)
+ -- see Result-Code AVP as used in 3GPP 32.299 [40]
+ --
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+ --
+ -- See TS 24.008 [64]
+ --
+
+ServiceConditionChange ::= BIT STRING
+{
+ qoSChange (0), -- bearer modification
+ sGSNChange (1), -- bearer modification
+ sGSNPLMNIDChange (2), -- bearer modification
+ tariffTimeSwitch (3), -- tariff time change
+ pDPContextRelease (4), -- bearer release
+ rATChange (5), -- bearer modification
+ serviceIdledOut (6), -- IP flow idle out, DCCA QHT expiry
+ reserved (7), -- old: QCTexpiry is no report event
+ configurationChange (8), -- configuration change
+ serviceStop (9), -- IP flow termination.From "Service Stop" in
+ -- Change-Condition" AVP
+ dCCATimeThresholdReached (10), -- DCCA quota reauthorization
+ dCCAVolumeThresholdReached (11), -- DCCA quota reauthorization
+ dCCAServiceSpecificUnitThresholdReached (12), -- DCCA quota reauthorization
+ dCCATimeExhausted (13), -- DCCA quota reauthorization
+ dCCAVolumeExhausted (14), -- DCCA quota reauthorization
+ dCCAValidityTimeout (15), -- DCCA quota validity time (QVT expiry)
+ reserved1 (16), -- reserved due to no use case,
+ -- old: return Requested is covered by (17),(18)
+ dCCAReauthorisationRequest (17), -- DCCA quota reauthorization request by OCS
+ dCCAContinueOngoingSession (18), -- DCCA failure handling (CCFH),
+ -- continue IP flow
+ dCCARetryAndTerminateOngoingSession (19), -- DCCA failure handling (CCFH),
+ -- terminate IP flow after DCCA retry
+ dCCATerminateOngoingSession (20), -- DCCA failure handling,
+ -- terminate IP flow
+ cGI-SAIChange (21), -- bearer modification. "CGI-SAI Change"
+ rAIChange (22), -- bearer modification. "RAI Change"
+ dCCAServiceSpecificUnitExhausted (23), -- DCCA quota reauthorization
+ recordClosure (24), -- PGW-CDR closure
+ timeLimit (25), -- intermediate recording. From "Service Data
+ -- Time Limit" Change-Condition AVP value
+ volumeLimit (26), -- intermediate recording.From "Service Data
+ -- Volume Limit" Change-Condition AVP value
+ serviceSpecificUnitLimit (27), -- intermediate recording
+ envelopeClosure (28),
+ eCGIChange (29), -- bearer modification. "ECGI Change"
+ tAIChange (30), -- bearer modification. "TAI Change"
+ userLocationChange (31) -- bearer modification. "User Location Change"
+
+}
+--
+-- Trigger and cause values for IP flow level recording are defined for support of independent
+-- online and offline charging and also for tight interworking between online and offline charging.
+-- Unused bits will always be zero.
+-- Some of the values are non-exclusive (e.g. bearer modification reasons).
+ --
+
+SCFAddress ::= AddressString
+ --
+ -- See TS 29.002 [60]
+ --
+
+ServiceIdentifier ::= INTEGER (0..4294967295)
+ --
+ -- The service identifier is used to identify the service or the service component
+ -- the service data flow relates to. See Service-Identifier AVP as defined
+ -- in TS 29.212 [88]
+ --
+
+ServingNodeType ::= ENUMERATED
+{
+ sGSN (0),
+ pMIPSGW (1),
+gTPSGW (2),
+ ePDG (3),
+ hSGW (4),
+ mME (5)
+}
+
+SGSNChange ::= BOOLEAN
+ --
+ -- present if first record after inter SGSN routing area update
+ -- in new SGSN
+ --
+
+SGWChange ::= BOOLEAN
+ --
+ -- present if first record after inter S-GW change
+ --
+
+TimeQuotaMechanism ::= SEQUENCE
+{
+ timeQuotaType [1] TimeQuotaType,
+ baseTimeInterval [2] INTEGER
+}
+
+TimeQuotaType ::= ENUMERATED
+{
+ dISCRETETIMEPERIOD (0),
+ cONTINUOUSTIMEPERIOD (1)
+}
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV9f0.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV9f0.asn
new file mode 100644
index 0000000000..2fd452b322
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV9f0.asn
@@ -0,0 +1,908 @@
+-- 3GPP TS 32.298 V9.15.0 (2013-03)
+--
+
+GPRSChargingDataTypesV9f0 {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+-- CallDuration, CalledNumber, RecordType, CallingNumber, CallReferenceNumber, CellId, DefaultSMS-Handling, Diagnostics, Ext-GeographicalInformation, IMSI, IMEI, IPAddress, ISDN-AddressString, LCSCause, LCSClientExternalID, LCSClientIdentity, LCSClientInternalID, LCSClientType, LCS-Priority, LCSQoSInfo, LevelOfCAMELService, LocalSequenceNumber, LocationAreaAndCell, LocationAreaCode, LocationType, ManagementExtensions, MessageReference, MSISDN, NotificationToMSUser, PositioningData, RecordingEntity, ServiceKey, ServiceSpecificInfo, SMSResult, SmsTpDestinationNumber, SubscriptionID, TimeStamp, AddressString, MSTimeZone
+-- FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DefaultGPRS-Handling
+-- From V670
+-- , RAIdentity
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6)}
+--
+-- from TS 29.002 [214]
+--
+
+LocationMethod
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+--
+-- from TS 24.080 [209]
+--
+
+-- MBMS2G3GIndicator, FileRepairSupported, MBMSServiceType, MBMSUserServiceType, RequiredMBMSBearerCapabilities, MBMSSessionIdentity, TMGI, MBMSInformation
+-- FROM MBMSChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) mbmsChargingDataTypes (8) asn1Module (0) version1 (0)}
+
+-- Editor's note: consider moving the above 2 items also into the generic module in order to avoid again copying from external sources.
+;
+
+------------------------------------------------------------------------------
+--
+-- GPRS RECORDS
+--
+------------------------------------------------------------------------------
+
+GPRSRecord ::= CHOICE
+--
+-- Record values 20, 22..27 are specific
+-- Record values 76,77,86 are MBMS specific
+-- Record values 78..79 are EPC specific
+--
+{
+ sgsnPDPRecord [20] SGSNPDPRecord,
+ sgsnMMRecord [22] SGSNMMRecord,
+ sgsnSMORecord [23] SGSNSMORecord,
+ sgsnSMTRecord [24] SGSNSMTRecord,
+-- sgsnMTLCSRecord [25] SGSNMTLCSRecord,
+-- sgsnMOLCSRecord [26] SGSNMOLCSRecord,
+-- sgsnNILCSRecord [27] SGSNNILCSRecord,
+--
+-- sgsnMBMSRecord [76] SGSNMBMSRecord,
+-- ggsnMBMSRecord [77] GGSNMBMSRecord,
+-- gwMBMSRecord [86] GWMBMSRecord,
+ sGWRecord [78] SGWRecord,
+ pGWRecord [79] PGWRecord
+}
+
+SGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ s-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ sGWChange [34] SGWChange OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ p-GWAddressUsed [36] GSNAddress OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ pDNConnectionChargingID [40] ChargingID OPTIONAL,
+ iMSIunauthenticatedFlag [41] NULL OPTIONAL,
+ userCSGInformation [42] UserCSGInformation OPTIONAL,
+ servedPDPPDNAddressExt [43] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ s-GWiPv6Address [48] GSNAddress OPTIONAL,
+ servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL,
+ p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL
+
+}
+
+PGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI OPTIONAL,
+ p-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ 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,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ servinggNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ servedMNNAI [36] SubscriptionID OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ served3gpp2MEID [40] OCTET STRING OPTIONAL,
+ pDNConnectionChargingID [41] ChargingID OPTIONAL,
+ iMSIunauthenticatedFlag [42] NULL OPTIONAL,
+ userCSGInformation [43] UserCSGInformation OPTIONAL,
+ threeGPP2UserLocationInformation [44] OCTET STRING OPTIONAL,
+ servedPDPPDNAddressExt [45] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL,
+ servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL,
+ p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL
+
+
+}
+
+SGSNMMRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ sgsnAddress [3] GSNAddress OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ routingArea [5] RoutingAreaCode OPTIONAL,
+ locationAreaCode [6] LocationAreaCode OPTIONAL,
+ cellIdentifier [7] CellId OPTIONAL,
+ changeLocation [8] SEQUENCE OF ChangeLocation OPTIONAL,
+ recordOpeningTime [9] TimeStamp,
+ duration [10] CallDuration OPTIONAL,
+ sgsnChange [11] SGSNChange OPTIONAL,
+ causeForRecClosing [12] CauseForRecClosing,
+ diagnostics [13] Diagnostics OPTIONAL,
+ recordSequenceNumber [14] INTEGER OPTIONAL,
+ nodeID [15] NodeID OPTIONAL,
+ recordExtensions [16] ManagementExtensions OPTIONAL,
+ localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+ servedMSISDN [18] MSISDN OPTIONAL,
+ chargingCharacteristics [19] ChargingCharacteristics,
+ cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+ rATType [21] RATType OPTIONAL,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ cellPLMNId [23] PLMN-Id OPTIONAL
+}
+
+SGSNPDPRecord ::= SET
+{
+ recordType [0] RecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI OPTIONAL,
+ servedIMEI [4] IMEI OPTIONAL,
+ sgsnAddress [5] GSNAddress OPTIONAL,
+ msNetworkCapability [6] MSNetworkCapability OPTIONAL,
+ routingArea [7] RoutingAreaCode OPTIONAL,
+ locationAreaCode [8] LocationAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ chargingID [10] ChargingID,
+ ggsnAddressUsed [11] GSNAddress,
+ accessPointNameNI [12] AccessPointNameNI OPTIONAL,
+ pdpType [13] PDPType OPTIONAL,
+ servedPDPAddress [14] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [16] TimeStamp,
+ duration [17] CallDuration,
+ sgsnChange [18] SGSNChange OPTIONAL,
+ causeForRecClosing [19] CauseForRecClosing,
+ diagnostics [20] Diagnostics OPTIONAL,
+ recordSequenceNumber [21] INTEGER OPTIONAL,
+ nodeID [22] NodeID OPTIONAL,
+ recordExtensions [23] ManagementExtensions OPTIONAL,
+ localSequenceNumber [24] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [25] APNSelectionMode OPTIONAL,
+ accessPointNameOI [26] AccessPointNameOI OPTIONAL,
+ servedMSISDN [27] MSISDN OPTIONAL,
+ chargingCharacteristics [28] ChargingCharacteristics,
+ rATType [29] RATType OPTIONAL,
+ cAMELInformationPDP [30] CAMELInformationPDP OPTIONAL,
+ rNCUnsentDownlinkVolume [31] DataVolumeGPRS OPTIONAL,
+ chChSelectionMode [32] ChChSelectionMode OPTIONAL,
+ dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL,
+ iMSIunauthenticatedFlag [34] NULL OPTIONAL,
+ userCSGInformation [35] UserCSGInformation OPTIONAL,
+ servedPDPPDNAddressExt [36] PDPAddress OPTIONAL
+}
+
+SGSNSMORecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ messageReference [10] MessageReference,
+ eventTimeStamp [11] TimeStamp,
+ smsResult [12] SMSResult OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ nodeID [14] NodeID OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [16] ChargingCharacteristics,
+ rATType [17] RATType OPTIONAL,
+ destinationNumber [18] SmsTpDestinationNumber OPTIONAL,
+ cAMELInformationSMS [19] CAMELInformationSMS OPTIONAL,
+ chChSelectionMode [20] ChChSelectionMode OPTIONAL
+}
+
+SGSNSMTRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ eventTimeStamp [10] TimeStamp,
+ smsResult [11] SMSResult OPTIONAL,
+ recordExtensions [12] ManagementExtensions OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics,
+ rATType [16] RATType OPTIONAL,
+ chChSelectionMode [17] ChChSelectionMode OPTIONAL,
+ cAMELInformationSMS [18] CAMELInformationSMS OPTIONAL
+}
+
+SGSNMTLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType,
+ lcsClientIdentity [3] LCSClientIdentity,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationType [7] LocationType,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ notificationToMSUser [13] NotificationToMSUser OPTIONAL,
+ privacyOverride [14] NULL OPTIONAL,
+ location [15] LocationAreaAndCell OPTIONAL,
+ routingArea [16] RoutingAreaCode OPTIONAL,
+ locationEstimate [17] Ext-GeographicalInformation OPTIONAL,
+ positioningData [18] PositioningData OPTIONAL,
+ lcsCause [19] LCSCause OPTIONAL,
+ diagnostics [20] Diagnostics OPTIONAL,
+ nodeID [21] NodeID OPTIONAL,
+ localSequenceNumber [22] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ rATType [25] RATType OPTIONAL,
+ recordExtensions [26] ManagementExtensions OPTIONAL,
+ causeForRecClosing [27] CauseForRecClosing
+}
+
+SGSNMOLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationMethod [7] LocationMethod,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNNILCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI OPTIONAL,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ servedIMEI [7] IMEI OPTIONAL,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofRAs [3] SEQUENCE OF RAIdentity OPTIONAL,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ sgsnPLMNIdentifier [15] PLMN-Id OPTIONAL,
+ numberofReceivingUE [16] INTEGER OPTIONAL,
+ mbmsInformation [17] MBMSInformation OPTIONAL
+}
+
+GGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [15] MBMSInformation OPTIONAL
+}
+GWMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ mbmsGWAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ pdpPDNType [5] PDPType OPTIONAL,
+ servedPDPPDNAddress [6] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [7] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [8] TimeStamp,
+ duration [9] CallDuration,
+ causeForRecClosing [10] CauseForRecClosing,
+ diagnostics [11] Diagnostics OPTIONAL,
+ recordSequenceNumber [12] INTEGER OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ recordExtensions [14] ManagementExtensions OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [16] MBMSInformation OPTIONAL,
+ commonTeid [17] CTEID OPTIONAL,
+ iPMulticastSourceAddress [18] PDPAddress OPTIONAL
+}
+
+------------------------------------------------------------------------------
+--
+-- PS 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.
+--
+
+AFChargingIdentifier ::= OCTET STRING
+--
+-- see AF-Charging-Identifier AVP as defined in TS 29.214[221]
+--
+AFRecordInformation ::= SEQUENCE
+{
+ aFChargingIdentifier [1] AFChargingIdentifier,
+ flows [2] Flows OPTIONAL
+}
+
+APNSelectionMode::= ENUMERATED
+--
+-- See Information Elements TS 29.060 [215], TS 29.274 [223] or TS 29.275 [224]
+--
+{
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CAMELInformationMM ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+ freeFormatData [6] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationPDP ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+ cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+ numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+ freeFormatData [8] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationSMS ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+ cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+ cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+ cAMELSMSCAddress [6] AddressString OPTIONAL,
+ freeFormatData [7] FreeFormatData OPTIONAL,
+ smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+}
+
+CauseForRecClosing ::= INTEGER
+--
+-- In PGW-CDR and SGW-CDR the value servingNodeChange is used for partial record
+-- generation due to Serving Node Address list Overflow
+-- In SGSN servingNodeChange indicates the SGSN change
+--
+-- LCS related causes belong to the MAP error causes acc. TS 29.002 [214]
+--
+-- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination)
+--
+{
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ servingNodeChange (18),
+ maxChangeCond (19),
+ managementIntervention (20),
+ intraSGSNIntersystemChange (21),
+ rATChange (22),
+ mSTimeZoneChange (23),
+ sGSNPLMNIDChange (24),
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ listofDownstreamNodeChange (59)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2),
+ cGI-SAICHange (6), -- bearer modification. "CGI-SAI Change"
+ rAIChange (7), -- bearer modification. "RAI Change"
+ dT-Establishment (8),
+ dT-Removal (9),
+ eCGIChange (10), -- bearer modification. "ECGI Change"
+ tAIChange (11), -- bearer modification. "TAI Change"
+ userLocationChange (12) -- bearer modification. "User Location Change"
+
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+--
+-- qosRequested and qosNegotiated are used in S-CDR only
+-- ePCQoSInformation used in SGW-CDR only
+--
+{
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS OPTIONAL,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS OPTIONAL,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ userLocationInformation [8] OCTET STRING OPTIONAL,
+ ePCQoSInformation [9] EPCQoSInformation OPTIONAL
+}
+
+ChangeOfMBMSCondition ::= SEQUENCE
+--
+-- Used in MBMS record
+--
+{
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL,
+ dataVolumeMBMSDownlink [4] DataVolumeMBMS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ failureHandlingContinue [7] FailureHandlingContinue OPTIONAL
+}
+
+ChangeOfServiceCondition ::= SEQUENCE
+--
+-- Used for Flow based Charging service data container
+--
+{
+ ratingGroup [1] RatingGroupId,
+ chargingRuleBaseName [2] ChargingRuleBaseName OPTIONAL,
+ resultCode [3] ResultCode OPTIONAL,
+ localSequenceNumber [4] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [5] TimeStamp OPTIONAL,
+ timeOfLastUsage [6] TimeStamp OPTIONAL,
+ timeUsage [7] CallDuration OPTIONAL,
+ serviceConditionChange [8] ServiceConditionChange,
+ qoSInformationNeg [9] EPCQoSInformation OPTIONAL,
+ servingNodeAddress [10] GSNAddress OPTIONAL,
+ datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL,
+ datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL,
+ timeOfReport [14] TimeStamp,
+ failureHandlingContinue [16] FailureHandlingContinue OPTIONAL,
+ serviceIdentifier [17] ServiceIdentifier OPTIONAL,
+ pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL,
+ aFRecordInformation [19] SEQUENCE OF AFRecordInformation OPTIONAL,
+ userLocationInformation [20] OCTET STRING OPTIONAL,
+ eventBasedChargingInformation [21] EventBasedChargingInformation OPTIONAL,
+ timeQuotaMechanism [22] TimeQuotaMechanism OPTIONAL,
+ serviceSpecificInfo [23] SEQUENCE OF ServiceSpecificInfo OPTIONAL,
+ threeGPP2UserLocationInformation [24] OCTET STRING OPTIONAL
+
+}
+
+ChangeLocation ::= SEQUENCE
+--
+-- used in SGSNMMRecord only
+--
+{
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp,
+ mCC-MNC [4] PLMN-Id OPTIONAL
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+
+ChargingID ::= INTEGER (0..4294967295)
+--
+-- Generated in P-GW, part of IP CAN bearer
+-- 0..4294967295 is equivalent to 0..2**32-1
+--
+
+ChargingRuleBaseName ::= IA5String (SIZE(1..16))
+--
+-- identifier for the group of charging rules
+-- see Charging-Rule-Base-Name AVP as desined in TS 29.212 [220]
+--
+
+ChChSelectionMode ::= ENUMERATED
+{
+ servingNodeSupplied (0), -- For S-GW/P-GW
+ subscriptionSpecific (1), -- For SGSN only
+ aPNSpecific (2), -- For SGSN only
+ homeDefault (3), -- For SGSN, S-GW and P-GW
+ roamingDefault (4), -- For SGSN, S-GW and P-GW
+ visitingDefault (5) -- For SGSN, S-GW and P-GW
+}
+
+CSGAccessMode ::= ENUMERATED
+{
+ closedMode (0),
+ hybridMode (1)
+}
+
+CSGId ::= OCTET STRING (SIZE(4))
+ --
+ -- Defined in 23.003[200]. Coded according to TS 29.060[215] for GTP, and in TS 29.274 [223] for
+ -- eGTP.
+ -- 24.008 [208]
+ --
+
+CTEID ::= OCTET STRING (SIZE(4))
+
+ --
+ -- Defined in 32.251[11] for MBMS-GW-CDR. Common Tunnel Endpoint Identifier of MBMS GW for user --
+ -- plane, defined in TS23.246 [207].
+ --
+
+DataVolumeGPRS ::= INTEGER
+--
+-- The volume of data transferred in octets.
+--
+
+DynamicAddressFlag ::= BOOLEAN
+
+EPCQoSInformation ::= SEQUENCE
+--
+-- See TS 29.212 [220] for more information
+--
+{
+ qCI [1] INTEGER,
+ maxRequestedBandwithUL [2] INTEGER OPTIONAL,
+ maxRequestedBandwithDL [3] INTEGER OPTIONAL,
+ guaranteedBitrateUL [4] INTEGER OPTIONAL,
+ guaranteedBitrateDL [5] INTEGER OPTIONAL,
+ aRP [6] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateUL [7] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateDL [8] INTEGER OPTIONAL
+}
+
+EventBasedChargingInformation ::= SEQUENCE
+{
+ numberOfEvents [1] INTEGER,
+ eventTimeStamps [2] SEQUENCE OF TimeStamp OPTIONAL
+}
+
+FailureHandlingContinue ::= BOOLEAN
+--
+-- This parameter is included when the failure handling procedure has been executed and new
+-- containers are opened. This parameter shall be included in the first and subsequent
+-- containers opened after the failure handling execution.
+--
+
+FFDAppendIndicator ::= BOOLEAN
+
+Flows ::= SEQUENCE
+--
+-- See Flows AVP as defined in TS 29.214 [221]
+--
+{
+ mediaComponentNumber [1] INTEGER,
+ flowNumber [2] SEQUENCE OF INTEGER OPTIONAL
+}
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+--
+-- Free formatted data as sent in the FurnishChargingInformationGPRS
+-- see TS 29.078 [217]
+--
+
+GSNAddress ::= IPAddress
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+--
+-- see TS 24.008 [208]
+--
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+--
+-- Set to true if PDP context was initiated from network side
+--
+
+NodeID ::= IA5String (SIZE(1..20))
+
+NumberOfDPEncountered ::= INTEGER
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress
+-- eTSIAddress [1] ETSIAddress : has only been used in earlier releases for X.121 format
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+--
+-- OCTET 1: PDP Type Organization
+-- OCTET 2: PDP/PDN Type Number
+-- See TS 29.060 [215] for encoding details.
+--
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+--
+-- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060 [215]
+-- 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
+--
+
+
+PSFurnishChargingInformation ::= SEQUENCE
+{
+ pSFreeFormatData [1] FreeFormatData,
+ pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+}
+
+QoSInformation ::= OCTET STRING (SIZE (4..255))
+--
+-- This octet string
+-- is a 1:1 copy of the contents (i.e. starting with octet 5) of the "Bearer Quality of
+-- Service" information element specified in TS 29.274 [223].
+--
+
+RatingGroupId ::= INTEGER
+--
+-- IP service flow identity (DCCA), range of 4 byte (0...4294967295)
+-- see Rating-Group AVP as used in TS 32.299 [50]
+--
+
+RATType ::= INTEGER
+ --
+ -- Ihis integer is 1:1 copy of the RAT type value as defined in TS 29.061 [215].
+ --
+-- WS Extension
+{
+ reserved (0),
+ utran (1),
+ geran (2),
+ wlan (3),
+ gan (4),
+ hspa-evolution (5)
+}(0..255)
+
+ResultCode ::= INTEGER
+--
+-- charging protocol return value, range of 4 byte (0...4294967295)
+-- see Result-Code AVP as used in 32.299 [40]
+--
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+--
+-- See TS 24.008 [208]
+--
+
+ServiceConditionChange ::= BIT STRING
+{
+ qoSChange (0), -- bearer modification
+ sGSNChange (1), -- bearer modification
+ sGSNPLMNIDChange (2), -- bearer modification
+ tariffTimeSwitch (3), -- tariff time change
+ pDPContextRelease (4), -- bearer release
+ rATChange (5), -- bearer modification
+ serviceIdledOut (6), -- IP flow idle out, DCCA QHT expiry
+ reserved (7), -- old: QCTexpiry is no report event
+ configurationChange (8), -- configuration change
+ serviceStop (9), -- IP flow termination.From "Service Stop" in
+ -- Change-Condition" AVP
+ dCCATimeThresholdReached (10), -- DCCA quota reauthorization
+ dCCAVolumeThresholdReached (11), -- DCCA quota reauthorization
+ dCCAServiceSpecificUnitThresholdReached (12), -- DCCA quota reauthorization
+ dCCATimeExhausted (13), -- DCCA quota reauthorization
+ dCCAVolumeExhausted (14), -- DCCA quota reauthorization
+ dCCAValidityTimeout (15), -- DCCA quota validity time (QVT expiry)
+ reserved1 (16), -- reserved due to no use case,
+ -- old: return Requested is covered by (17),(18)
+ dCCAReauthorisationRequest (17), -- DCCA quota reauthorization request by OCS
+ dCCAContinueOngoingSession (18), -- DCCA failure handling (CCFH),
+ -- continue IP flow
+ dCCARetryAndTerminateOngoingSession (19), -- DCCA failure handling (CCFH),
+ -- terminate IP flow after DCCA retry
+ dCCATerminateOngoingSession (20), -- DCCA failure handling,
+ -- terminate IP flow
+ cGI-SAIChange (21), -- bearer modification. "CGI-SAI Change"
+ rAIChange (22), -- bearer modification. "RAI Change"
+ dCCAServiceSpecificUnitExhausted (23), -- DCCA quota reauthorization
+ recordClosure (24), -- PGW-CDR closure
+ timeLimit (25), -- intermediate recording. From "Service Data" - - Time Limit" Change-Condition AVP value
+ volumeLimit (26), -- intermediate recording.From "Service Data" - - Volume Limit" Change-Condition AVP value
+ serviceSpecificUnitLimit (27), -- intermediate recording
+ envelopeClosure (28),
+ eCGIChange (29), -- bearer modification. "ECGI Change"
+ tAIChange (30), -- bearer modification. "TAI Change"
+ userLocationChange (31) -- bearer modification. "User Location Change"
+
+}
+--
+-- Trigger and cause values for IP flow level recording are defined for support of independent
+-- online and offline charging and also for tight interworking between online and offline charging.
+-- Unused bits will always be zero.
+-- Some of the values are non-exclusive (e.g. bearer modification reasons).
+ --
+
+SCFAddress ::= AddressString
+--
+-- See TS 29.002 [214]
+--
+
+ServiceIdentifier ::= INTEGER (0..4294967295)
+--
+-- The service identifier is used to identify the service or the service component
+-- the service data flow relates to. See Service-Identifier AVP as defined in TS 29.212 [220]
+--
+
+ServingNodeType ::= ENUMERATED
+{
+ sGSN (0),
+ pMIPSGW (1),
+gTPSGW (2),
+ ePDG (3),
+ hSGW (4),
+ mME (5)
+}
+
+SGSNChange ::= BOOLEAN
+--
+-- present if first record after inter SGSN routing area update in new SGSN
+--
+
+SGWChange ::= BOOLEAN
+--
+-- present if first record after inter S-GW change
+--
+
+TimeQuotaMechanism ::= SEQUENCE
+{
+ timeQuotaType [1] TimeQuotaType,
+ baseTimeInterval [2] INTEGER
+}
+
+TimeQuotaType ::= ENUMERATED
+{
+ dISCRETETIMEPERIOD (0),
+ cONTINUOUSTIMEPERIOD (1)
+}
+
+UserCSGInformation ::= SEQUENCE
+{
+ cSGId [0] CSGId,
+ cSGAccessMode [1] CSGAccessMode,
+ cSGMembershipIndication [2] NULL OPTIONAL
+}
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GenericChargingDataTypes.asn b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypes.asn
new file mode 100644
index 0000000000..6c50b08621
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypes.asn
@@ -0,0 +1,454 @@
+-- 3GPP TS 32.298 V9.6.0 (2010-12)
+GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+CallReferenceNumber, NumberOfForwarding
+FROM MAP-CH-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CH-DataTypes (13) version6 (6) }
+-- from TS 29.002 [214]
+
+AddressString, BasicServiceCode, IMSI, IMEI, ISDN-AddressString, LCSClientExternalID, LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+-- from TS 29.002 [214]
+
+DestinationRoutingAddress
+FROM CAP-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) cap-datatypes (52) version1 (0) }
+-- from TS 29.078 [217]
+
+DefaultCallHandling, DefaultSMS-Handling, NotificationToMSUser, ServiceKey
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6) }
+-- from TS 29.002 [214]
+
+Ext-GeographicalInformation, LCSClientType, LCS-Priority, LocationType
+FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version7 (7)}
+-- from TS 29.002 [214]
+
+PositionMethodFailure-Diagnostic, UnauthorizedLCSClient-Diagnostic
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version7 (7)}
+--
+-- from TS 29.002 [214]
+--
+
+BasicService
+FROM Basic-Service-Elements { itu-t identified-organization (4) etsi (0)
+196 basic-service-elements (8) }
+--
+-- from "Digital Subscriber Signalling System No. one (DSS1) protocol" ETS 300 196 [310]
+--
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) version1 (1) protocol (3)}
+--
+-- from Rec. X.2ab[304] Editor's note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+
+-- WS imports locally
+--ManagementExtension
+--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+--
+-- from Rec. X.721 [305] Editor's note: clarify if this definition is still needed.
+--
+
+AE-title
+FROM ACSE-1 {joint-iso-itu-t association-control (2) abstract-syntax (1) apdus (0) version (1) };
+--
+-- From Rec. X.2cd[306]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY"
+-- Editor's note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+-- ;
+------------------------------------------------------------------------------
+--
+-- Generic Data Types
+--
+------------------------------------------------------------------------------
+
+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 24.008 [208].
+-- 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.
+--
+
+CallDuration ::= INTEGER
+--
+-- The call duration is counted in seconds.
+-- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+-- For call attempts this is the call holding time.
+--
+
+-- Editor's note: the explanation above should be removed as proper definitions are required in the individual CDR parameter descriptions in TS 32.250[10] - TS 32.275 [35]
+
+CalledNumber ::= BCDDirectoryNumber
+
+RecordType ::= INTEGER
+{--
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 30..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mMO1SRecord (30),
+ mMO4FRqRecord (31),
+ mMO4FRsRecord (32),
+ mMO4DRecord (33),
+ mMO1DRecord (34),
+ mMO4RRecord (35),
+ mMO1RRecord (36),
+ mMOMDRecord (37),
+ mMR4FRecord (38),
+ mMR1NRqRecord (39),
+ mMR1NRsRecord (40),
+ mMR1RtRecord (41),
+ mMR1AFRecord (42),
+ mMR4DRqRecord (43),
+ mMR4DRsRecord (44),
+ mMR1RRRecord (45),
+ mMR4RRqRecord (46),
+ mMR4RRsRecord (47),
+ mMRMDRecord (48),
+ mMFRecord (49),
+ mMBx1SRecord (50),
+ mMBx1VRecord (51),
+ mMBx1URecord (52),
+ mMBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69, 70, 82 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ sCSCFRecord (63),
+ pCSCFRecord (64),
+ iCSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+ eCSCFRecord (70),
+ iBCFRecord (82),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79,86 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76,77 and 86 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+ gwMBMSRecord (86),
+
+--
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+--
+ sUBBMSCRecord (78),
+ cONTENTBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [32]
+--
+ pPFRecord (80),
+ cPFRecord (81),
+
+-- Record values 84..85 are EPC specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sGWRecord (84),
+ pGWRecord (85),
+--
+-- Record Value 83 is MMTel specific.
+-- The contents are defined in TS 32.275 [35]
+--
+ mMTelRecord (83)
+}
+
+CallingNumber ::= BCDDirectoryNumber
+
+CallReference ::= INTEGER
+
+CellId ::= OCTET STRING (SIZE(2))
+--
+-- Coded according to TS 24.008 [208]
+--
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008 [208]
+ 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 29.002 [214].
+ itu-tQ767Cause [2] INTEGER,
+ -- See Q.767 [309]
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002 [214]
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic
+ -- see TS 29.002 [214]
+}
+
+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))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+--
+-- See LCS Cause Value, TS 49.031 [227]
+--
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+--
+-- See LCS QoS IE, TS 49.031 [227]
+--
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+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
+--
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId,
+ mCC-MNC [2] MCC-MNC OPTIONAL
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+--
+-- See TS 24.008 [208]
+--
+
+MCC-MNC ::= OCTET STRING (SIZE(3))
+--
+-- See TS 24.008 [208]
+--
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSISDN ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+--
+-- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [215]
+--
+
+NodeAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ domainName [1] GraphicString
+}
+
+PositioningData ::= OCTET STRING (SIZE(1..33))
+--
+-- See Positioning Data IE (octet 3..n), TS 49.031 [227]
+--
+
+RecordingEntity ::= AddressString
+
+ServiceContextID ::= UTF8String
+
+ServiceSpecificInfo ::= SEQUENCE
+{
+ serviceSpecificData [0] GraphicString OPTIONAL,
+ serviceSpecificType [1] INTEGER OPTIONAL
+}
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+--
+-- This type contains the binary coded decimal representation of
+-- the SMS address field the encoding of the octet string is in
+-- accordance with the definition of address fields in TS 23.040 [201].
+-- This encoding includes type of number and numbering plan indication
+-- together with the address value range.
+--
+
+SubscriptionID ::= SET
+{
+ subscriptionIDType [0] SubscriptionIDType,
+ subscriptionIDData [1] UTF8String
+}
+
+SubscriptionIDType ::= ENUMERATED
+{
+ eND-USER-E164 (0),
+ eND-USER-IMSI (1),
+ eND-USER-SIP-URI (2),
+ eND-USER-NAI (3),
+ eND-USER-PRIVATE (4)
+}
+
+SystemType ::= ENUMERATED
+{ --
+ -- "unknown" is not to be used in PS domain.
+ --
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+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
+--
+
+
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1171.asn b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1171.asn
new file mode 100644
index 0000000000..3c6837bf3a
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1171.asn
@@ -0,0 +1,672 @@
+-- 3GPP TS 32.298 V11.7.1 (2013-09)
+
+GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+AddressString,
+ISDN-AddressString,
+LCSClientExternalID,
+LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13) }
+-- from TS 29.002 [214]
+
+PositionMethodFailure-Diagnostic,
+UnauthorizedLCSClient-Diagnostic
+
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version13 (13)}
+-- from TS 29.002 [214]
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) modules (0) protocol (3)}
+--
+-- from Rec. X.2ab[304]
+
+-- WS localy defined
+--ManagementExtension
+-- FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+--
+-- from Rec. X.721 [305]
+--
+
+-- AE-title
+-- FROM ACSE-1 {joint-iso-itu-t association-control (2) abstract-syntax (1) apdus (0) version (1) };
+--
+-- From Rec. X.2cd[306]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY"
+--
+
+;
+
+--
+--
+-- Generic Data Types
+--
+--
+
+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 24.008 [208].
+-- 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.
+--
+
+CallDuration ::= INTEGER
+--
+-- The call duration is counted in seconds.
+-- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+-- For call attempts this is the call holding time.
+--
+
+CalledNumber ::= BCDDirectoryNumber
+
+-- WS extension to cater for older version(6)
+CallEventRecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 29..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mmO1SRecord (29),
+ mmO4FRqRecord (30),
+ mmO4FRsRecord (31),
+ mmO4DRecord (32),
+ mmO1DRecord (33),
+ mmO4RRecord (34),
+ mmO1RRecord (35),
+ mmOMDRecord (36),
+ mmR4FRecord (37),
+ mmR1NRqRecord (38),
+ mmR1NRsRecord (39),
+ mmR1RtRecord (40),
+ mmR1AFRecord (42),
+ mmR4DRqRecord (43),
+ mmR4DRsRecord (44),
+ mmR1RRRecord (45),
+ mmR4RRqRecord (46),
+ mmR4RRsRecord (47),
+ mmRMDRecord (48),
+ mmFRecord (49),
+ mmBx1SRecord (50),
+ mmBx1VRecord (51),
+ mmBx1URecord (52),
+ mmBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ s-CSCFRecord (63),
+ p-CSCFRecord (64),
+ i-CSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+ egsnPDPRecord (70),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+ subBMSCRecord (78),
+ contentBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [14]
+--
+ pPFRecord (80),
+ cPFRecord (81)
+}
+-- End WS
+
+CallingNumber ::= BCDDirectoryNumber
+
+CellId ::= OCTET STRING (SIZE(2))
+--
+-- Coded according to TS 24.008 [208]
+--
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+CNIPMulticastDistribution ::= ENUMERATED
+{
+ nO-IP-MULTICAST (0),
+ iP-MULTICAST (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008 [208]
+ 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 29.002 [214].
+ itu-tQ767Cause [2] INTEGER,
+ -- See Q.767 [309]
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002 [214]
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic,
+ -- see TS 29.002 [214]
+ diameterResultCodeAndExperimentalResult [7] INTEGER
+ -- See TS 29.338 [230]
+
+
+}
+
+DiameterIdentity ::= OCTET STRING
+
+GSNAddress ::= IPAddress
+
+IPAddress ::= CHOICE
+{
+ iPBinaryAddress IPBinaryAddress,
+ iPTextRepresentedAddress IPTextRepresentedAddress
+}
+
+IPBinaryAddress ::= CHOICE
+{
+ iPBinV4Address [0] IPBinV4Address,
+ iPBinV6Address IPBinV6AddressWithOrWithoutPrefixLength
+}
+
+
+IPBinV4Address ::= OCTET STRING (SIZE(4))
+
+IPBinV6Address ::= OCTET STRING (SIZE(16))
+
+IPBinV6AddressWithOrWithoutPrefixLength ::= CHOICE
+{
+ iPBinV6Address [1] IPBinV6Address,
+ iPBinV6AddressWithPrefix [4] IPBinV6AddressWithPrefixLength
+}
+
+IPBinV6AddressWithPrefixLength ::= SEQUENCE
+{
+ iPBinV6Address IPBinV6Address,
+ pDPAddressPrefixLength PDPAddressPrefixLength DEFAULT 64
+}
+
+IPTextRepresentedAddress ::= CHOICE
+{ --
+ -- IP address in the familiar "dot" notation
+ --
+ iPTextV4Address [2] IA5String (SIZE(7..15)),
+ iPTextV6Address [3] IA5String (SIZE(15..45))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+--
+-- See LCS Cause Value, TS 49.031 [227]
+--
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+--
+-- See LCS QoS IE, TS 49.031 [227]
+--
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+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
+--
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId,
+ mCC-MNC [2] MCC-MNC OPTIONAL
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+--
+-- See TS 24.008 [208]
+--
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MBMS2G3GIndicator ::= ENUMERATED
+{
+ twoG (0), -- For GERAN access only
+ threeG (1), -- For UTRAN access only
+ twoG-AND-threeG (2) -- For both UTRAN and GERAN access
+}
+
+MBMSInformation ::= SET
+{
+ tMGI [1] TMGI OPTIONAL,
+ mBMSSessionIdentity [2] MBMSSessionIdentity OPTIONAL,
+ mBMSServiceType [3] MBMSServiceType OPTIONAL,
+ mBMSUserServiceType [4] MBMSUserServiceType OPTIONAL, -- only supported in the BM-SC
+ mBMS2G3GIndicator [5] MBMS2G3GIndicator OPTIONAL,
+ fileRepairSupported [6] BOOLEAN OPTIONAL, -- only supported in the BM-SC
+ rAI [7] RoutingAreaCode OPTIONAL, -- only supported in the BM-SC
+ mBMSServiceArea [8] MBMSServiceArea OPTIONAL,
+ requiredMBMSBearerCaps [9] RequiredMBMSBearerCapabilities OPTIONAL,
+ mBMSGWAddress [10] GSNAddress OPTIONAL,
+ cNIPMulticastDistribution [11] CNIPMulticastDistribution OPTIONAL
+}
+
+MBMSServiceArea ::= OCTET STRING
+
+MBMSServiceType ::= ENUMERATED
+{
+ mULTICAST (0),
+ bROADCAST (1)
+}
+
+MBMSSessionIdentity ::= OCTET STRING (SIZE (1))
+
+--
+-- This octet string is a 1:1 copy of the contents of the MBMS-Session-Identity
+-- AVP specified in TS 29.061 [82]
+--
+
+MBMSUserServiceType ::= ENUMERATED
+{
+ dOWNLOAD (0),
+ sTREAMING (1)
+}
+
+MCC-MNC ::= OCTET STRING (SIZE(3))
+--
+-- See TS 24.008 [208]
+--
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSISDN ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+--
+-- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [215]
+--
+
+NodeAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ domainName [1] GraphicString
+}
+
+PDPAddressPrefixLength ::= INTEGER (1..64)
+--
+-- This is an interger indicating the leght of the PDP/PDN IPv6 address prefix
+-- and the default value is 64 bits.
+--
+
+PositioningData ::= OCTET STRING (SIZE(1..33))
+--
+-- See Positioning Data IE (octet 3..n), TS 49.031 [227]
+--
+
+RecordingEntity ::= AddressString
+
+
+RecordType ::= INTEGER
+--
+-- Record values 0..17 and 87,88 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+{
+ 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), -- used in earlier releases
+ mtTraceRecord (16), -- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21), -- also MME UE originated SMS record
+ sgsnSMTRecord (22), -- also MME UE terminated SMS record
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMTLCSRecord (26),
+ sgsnMOLCSRecord (27),
+ sgsnNILCSRecord (28),
+--
+-- Record values 30..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mMO1SRecord (30),
+ mMO4FRqRecord (31),
+ mMO4FRsRecord (32),
+ mMO4DRecord (33),
+ mMO1DRecord (34),
+ mMO4RRecord (35),
+ mMO1RRecord (36),
+ mMOMDRecord (37),
+ mMR4FRecord (38),
+ mMR1NRqRecord (39),
+ mMR1NRsRecord (40),
+ mMR1RtRecord (41),
+ mMR1AFRecord (42),
+ mMR4DRqRecord (43),
+ mMR4DRsRecord (44),
+ mMR1RRRecord (45),
+ mMR4RRqRecord (46),
+ mMR4RRsRecord (47),
+ mMRMDRecord (48),
+ mMFRecord (49),
+ mMBx1SRecord (50),
+ mMBx1VRecord (51),
+ mMBx1URecord (52),
+ mMBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69, 70, 82, 89, 90, 91 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ sCSCFRecord (63),
+ pCSCFRecord (64),
+ iCSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+ eCSCFRecord (70),
+ iBCFRecord (82),
+ tRFRecord (89),
+ tFRecord (90),
+ aTCFRecord (91),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79,86 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76,77 and 86 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+ gwMBMSRecord (86),
+--
+-- and TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+--
+ sUBBMSCRecord (78),
+ cONTENTBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [32]
+--
+ pPFRecord (80),
+ cPFRecord (81),
+
+-- Record values 84..85 are EPC specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sGWRecord (84),
+ pGWRecord (85),
+--
+-- Record Value 83 is MMTel specific.
+-- The contents are defined in TS 32.275 [35]
+--
+ mMTelRecord (83),
+--
+-- Record value 87 and 88 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mSCsRVCCRecord (87) ,
+ mMTRFRecord (88)
+
+}
+
+RequiredMBMSBearerCapabilities ::= OCTET STRING (SIZE (3..14))
+
+--
+-- This octet string
+-- is a 1:1 copy of the contents (i.e. starting with octet 5) of the "Quality of
+-- service Profile" information element specified in TS 29.060 [75].
+--
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+--
+-- See TS 24.008 [208]
+--
+
+ServiceContextID ::= UTF8String
+
+ServiceSpecificInfo ::= SEQUENCE
+{
+ serviceSpecificData [0] GraphicString OPTIONAL,
+ serviceSpecificType [1] INTEGER OPTIONAL
+}
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+--
+-- This type contains the binary coded decimal representation of
+-- the SMS address field the encoding of the octet string is in
+-- accordance with the definition of address fields in TS 23.040 [201].
+-- This encoding includes type of number and numbering plan indication
+-- together with the address value range.
+--
+
+SubscriptionID ::= SET
+{
+ subscriptionIDType [0] SubscriptionIDType,
+ subscriptionIDData [1] UTF8String
+}
+
+SubscriptionIDType ::= ENUMERATED
+{
+ eND-USER-E164 (0),
+ eND-USER-IMSI (1),
+ eND-USER-SIP-URI (2),
+ eND-USER-NAI (3),
+ eND-USER-PRIVATE (4)
+}
+
+SystemType ::= ENUMERATED
+{ --
+ -- "unknown" is not to be used in PS domain.
+ --
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+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
+--
+
+TMGI ::= OCTET STRING
+--
+-- This octet string
+-- is a 1:1 copy of the contents (i.e. starting with octet 4) of the "TMGI"
+-- information element specified in TS 29.060 [75].
+--
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+END
+
diff --git a/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1250.asn b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1250.asn
new file mode 100644
index 0000000000..e0bfa90ba4
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1250.asn
@@ -0,0 +1,668 @@
+-- 3GPP TS 32.298
+GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+AddressString,
+ISDN-AddressString,
+LCSClientExternalID,
+LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13) }
+-- from TS 29.002 [214]
+
+PositionMethodFailure-Diagnostic,
+UnauthorizedLCSClient-Diagnostic
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version13 (13)}
+-- from TS 29.002 [214]
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) modules (0) protocol (3)}
+-- from Rec. X.2ab[304]
+
+-- WS localy defined
+--ManagementExtension
+--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+-- from Rec. X.721 [305]
+
+--AE-title
+--FROM ACSE-1 {joint-iso-itu-t association-control (2) modules (0) apdus (0) version1 (1) };
+-- From Rec. X.2cd[306]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY"
+;
+--
+-- Generic Data Types
+--
+
+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 24.008 [208].
+-- 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.
+--
+
+CallDuration ::= INTEGER
+--
+-- The call duration is counted in seconds.
+-- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+-- For call attempts this is the call holding time.
+--
+
+CalledNumber ::= BCDDirectoryNumber
+
+-- WS extension to cater for older version(6)
+CallEventRecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 29..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mmO1SRecord (29),
+ mmO4FRqRecord (30),
+ mmO4FRsRecord (31),
+ mmO4DRecord (32),
+ mmO1DRecord (33),
+ mmO4RRecord (34),
+ mmO1RRecord (35),
+ mmOMDRecord (36),
+ mmR4FRecord (37),
+ mmR1NRqRecord (38),
+ mmR1NRsRecord (39),
+ mmR1RtRecord (40),
+ mmR1AFRecord (42),
+ mmR4DRqRecord (43),
+ mmR4DRsRecord (44),
+ mmR1RRRecord (45),
+ mmR4RRqRecord (46),
+ mmR4RRsRecord (47),
+ mmRMDRecord (48),
+ mmFRecord (49),
+ mmBx1SRecord (50),
+ mmBx1VRecord (51),
+ mmBx1URecord (52),
+ mmBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ s-CSCFRecord (63),
+ p-CSCFRecord (64),
+ i-CSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+ egsnPDPRecord (70),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+ subBMSCRecord (78),
+ contentBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [14]
+--
+ pPFRecord (80),
+ cPFRecord (81)
+}
+-- End WS
+
+
+CallingNumber ::= BCDDirectoryNumber
+
+CellId ::= OCTET STRING (SIZE(2))
+--
+-- Coded according to TS 24.008 [208]
+--
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+CNIPMulticastDistribution ::= ENUMERATED
+{
+ nO-IP-MULTICAST (0),
+ iP-MULTICAST (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008 [208]
+ 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 29.002 [214].
+ --
+ itu-tQ767Cause [2] INTEGER,
+ -- See Q.767 [309]
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002 [214]
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic,
+ -- see TS 29.002 [214]
+ diameterResultCodeAndExperimentalResult [7] INTEGER
+ -- See TS 29.338 [230], TS 29.337 [231]
+}
+
+DiameterIdentity ::= OCTET STRING
+
+GSNAddress ::= IPAddress
+
+IPAddress ::= CHOICE
+{
+ iPBinaryAddress IPBinaryAddress,
+ iPTextRepresentedAddress IPTextRepresentedAddress
+}
+
+IPBinaryAddress ::= CHOICE
+{
+ iPBinV4Address [0] IPBinV4Address,
+ iPBinV6Address IPBinV6AddressWithOrWithoutPrefixLength
+}
+
+IPBinV4Address ::= OCTET STRING (SIZE(4))
+
+IPBinV6Address ::= OCTET STRING (SIZE(16))
+
+IPBinV6AddressWithOrWithoutPrefixLength ::= CHOICE
+{
+ iPBinV6Address [1] IPBinV6Address,
+ iPBinV6AddressWithPrefix [4] IPBinV6AddressWithPrefixLength
+}
+
+IPBinV6AddressWithPrefixLength ::= SEQUENCE
+{
+ iPBinV6Address IPBinV6Address,
+ pDPAddressPrefixLength PDPAddressPrefixLength DEFAULT 64
+}
+
+IPTextRepresentedAddress ::= CHOICE
+{ --
+ -- IP address in the familiar "dot" notation
+ --
+ iPTextV4Address [2] IA5String (SIZE(7..15)),
+ iPTextV6Address [3] IA5String (SIZE(15..45))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+--
+-- See LCS Cause Value, TS 49.031 [227]
+--
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+--
+-- See LCS QoS IE, TS 49.031 [227]
+--
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+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
+--
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId,
+ mCC-MNC [2] MCC-MNC OPTIONAL
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+--
+-- See TS 24.008 [208]
+--
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MBMS2G3GIndicator ::= ENUMERATED
+{
+ twoG (0), -- For GERAN access only
+ threeG (1), -- For UTRAN access only
+ twoG-AND-threeG (2) -- For both UTRAN and GERAN access
+}
+
+MBMSInformation ::= SET
+{
+ tMGI [1] TMGI OPTIONAL,
+ mBMSSessionIdentity [2] MBMSSessionIdentity OPTIONAL,
+ mBMSServiceType [3] MBMSServiceType OPTIONAL,
+ mBMSUserServiceType [4] MBMSUserServiceType OPTIONAL, -- only supported in the BM-SC
+ mBMS2G3GIndicator [5] MBMS2G3GIndicator OPTIONAL,
+ fileRepairSupported [6] BOOLEAN OPTIONAL, -- only supported in the BM-SC
+ rAI [7] RoutingAreaCode OPTIONAL, -- only supported in the BM-SC
+ mBMSServiceArea [8] MBMSServiceArea OPTIONAL,
+ requiredMBMSBearerCaps [9] RequiredMBMSBearerCapabilities OPTIONAL,
+ mBMSGWAddress [10] GSNAddress OPTIONAL,
+ cNIPMulticastDistribution [11] CNIPMulticastDistribution OPTIONAL
+}
+
+MBMSServiceArea ::= OCTET STRING
+
+MBMSServiceType ::= ENUMERATED
+{
+ mULTICAST (0),
+ bROADCAST (1)
+}
+
+MBMSSessionIdentity ::= OCTET STRING (SIZE (1))
+--
+-- This octet string is a 1:1 copy of the contents of the MBMS-Session-Identity
+-- AVP specified in TS 29.061 [82]
+--
+
+MBMSUserServiceType ::= ENUMERATED
+{
+ dOWNLOAD (0),
+ sTREAMING (1)
+}
+
+MCC-MNC ::= OCTET STRING (SIZE(3))
+--
+-- See TS 24.008 [208]
+--
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSISDN ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+--
+-- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [215]
+--
+
+NodeAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ domainName [1] GraphicString
+}
+
+PDPAddressPrefixLength ::=INTEGER (1..64)
+--
+-- This is an interger indicating the leght of the PDP/PDN IPv6 address prefix
+-- and the default value is 64 bits.
+--
+
+PositioningData ::= OCTET STRING (SIZE(1..33))
+--
+-- See Positioning Data IE (octet 3..n), TS 49.031 [227]
+--
+
+RecordingEntity ::= AddressString
+
+RecordType ::= INTEGER
+--
+-- Record values 0..17 and 87,89 are CS specific. The contents are defined in TS 32.250 [10]
+--
+{
+ 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), -- used in earlier releases
+ mtTraceRecord (16), -- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific. The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21), -- also MME UE originated SMS record
+ sgsnSMTRecord (22), -- also MME UE terminated SMS record
+--
+-- Record values 23..25 are CS-LCS specific. The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific. The contents are defined in TS 32.251 [11]
+--
+ sgsnMTLCSRecord (26),
+ sgsnMOLCSRecord (27),
+ sgsnNILCSRecord (28),
+--
+-- Record values 30..62 are MMS specific. The contents are defined in TS 32.270 [30]
+--
+ mMO1SRecord (30),
+ mMO4FRqRecord (31),
+ mMO4FRsRecord (32),
+ mMO4DRecord (33),
+ mMO1DRecord (34),
+ mMO4RRecord (35),
+ mMO1RRecord (36),
+ mMOMDRecord (37),
+ mMR4FRecord (38),
+ mMR1NRqRecord (39),
+ mMR1NRsRecord (40),
+ mMR1RtRecord (41),
+ mMR1AFRecord (42),
+ mMR4DRqRecord (43),
+ mMR4DRsRecord (44),
+ mMR1RRRecord (45),
+ mMR4RRqRecord (46),
+ mMR4RRsRecord (47),
+ mMRMDRecord (48),
+ mMFRecord (49),
+ mMBx1SRecord (50),
+ mMBx1VRecord (51),
+ mMBx1URecord (52),
+ mMBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..70, 82, 89..91 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ sCSCFRecord (63),
+ pCSCFRecord (64),
+ iCSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+ eCSCFRecord (70),
+ iBCFRecord (82),
+ tRFRecord (89),
+ tFRecord (90),
+aTCFRecord (91),
+--
+-- Record values 71..75 are LCS specific. The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79,86 are MBMS specific.
+-- The contents are defined in TS 32.251 [11] and TS 32.273 [33]
+--
+-- Record values 76,77 and 86 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+ gwMBMSRecord (86),
+--
+-- Record values 78 and 79 are MBMS service specific and defined in TS 32.273 [33]
+--
+ sUBBMSCRecord (78),
+ cONTENTBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific. The contents are defined in TS 32.272 [32]
+--
+ pPFRecord (80),
+ cPFRecord (81),
+--
+-- Record values 84,85 and 92,95,96 are EPC specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sGWRecord (84),
+ pGWRecord (85),
+ tDFRecord (92),
+ iPERecord (95),
+ ePDGRecord (96),
+--
+-- Record Value 83 is MMTel specific. The contents are defined in TS 32.275 [35]
+--
+ mMTelRecord (83),
+--
+-- Record value 87,88 and 89 are CS specific. The contents are defined in TS 32.250 [10]
+--
+ mSCsRVCCRecord (87),
+ mMTRFRecord (88),
+ iCSRegisterRecord (99),
+--
+-- Record values 93 and 94 are SMS specific. The contents are defined in TS 32.274 [34]
+--
+ sCSMORecord (93),
+ sCSMTRecord (94)
+}
+
+RequiredMBMSBearerCapabilities ::= OCTET STRING (SIZE (3..14))
+--
+-- This octet string is a 1:1 copy of the contents (i.e. starting with octet 5) of the
+-- "Quality of service Profile" information element specified in TS 29.060 [75].
+--
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+--
+-- See TS 24.008 [208]
+--
+
+ServiceContextID ::= UTF8String
+
+ServiceSpecificInfo ::= SEQUENCE
+{
+ serviceSpecificData [0] GraphicString OPTIONAL,
+ serviceSpecificType [1] INTEGER OPTIONAL
+}
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+--
+-- This type contains the binary coded decimal representation of
+-- the SMS address field the encoding of the octet string is in
+-- accordance with the definition of address fields in TS 23.040 [201].
+-- This encoding includes type of number and numbering plan indication
+-- together with the address value range.
+--
+
+SubscriberEquipmentNumber ::= SET
+{
+ subscriberEquipmentNumberType [0] SubscriberEquipmentType,
+ subscriberEquipmentNumberData [1] OCTET STRING
+}
+
+SubscriberEquipmentType ::= ENUMERATED
+{
+ iMEISV (0),
+ mAC (1),
+ eUI64 (2),
+ modifiedEUI64 (3)
+}
+
+SubscriptionID ::= SET
+{
+ subscriptionIDType [0] SubscriptionIDType,
+ subscriptionIDData [1] UTF8String
+}
+
+SubscriptionIDType ::= ENUMERATED
+{
+ eND-USER-E164 (0),
+ eND-USER-IMSI (1),
+ eND-USER-SIP-URI (2),
+ eND-USER-NAI (3),
+ eND-USER-PRIVATE (4)
+}
+
+SystemType ::= ENUMERATED
+ --
+ -- "unknown" is not to be used in PS domain.
+ --
+{
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+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
+--
+
+TMGI ::= OCTET STRING
+--
+-- This octet string is a 1:1 copy of the contents (i.e. starting with octet 4)
+-- of the "TMGI" information element specified in TS 29.060 [75].
+--
+
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV641.asn b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV641.asn
new file mode 100644
index 0000000000..3eb5561115
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV641.asn
@@ -0,0 +1,434 @@
+-- 3GPP TS 32.298 V6.4.1 (2006-06)
+GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+CallReferenceNumber, NumberOfForwarding
+FROM MAP-CH-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CH-DataTypes (13) version6 (6) }
+
+-- from TS 29.002 [60]
+
+AddressString, BasicServiceCode, IMSI, IMEI, ISDN-AddressString, LCSClientExternalID, LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+
+-- from TS 29.002 [60]
+
+DestinationRoutingAddress
+FROM CAP-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) cap-datatypes (52) version1 (0) }
+
+DefaultCallHandling, DefaultSMS-Handling, NotificationToMSUser, ServiceKey
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6) }
+
+-- from TS 29.002 [60]
+
+MOLR-Type
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+
+-- from TS 24.080 [61] (editor's note: correct reference?)
+
+BearerServiceCode
+FROM MAP-BS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-BS-Code (20) version6 (6) }
+
+-- from TS 29.002 [60]
+
+-- Editor's note: clarify if this should be moved to the CS module
+
+TeleserviceCode
+FROM MAP-TS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-TS-Code (19) version2 (2) }
+
+-- from TS 29.002 [60]
+
+-- Editor's note: clarify if this should be moved to the CS module
+
+SS-Code
+FROM MAP-SS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-SS-Code (15) version6 (6) }
+
+-- from TS 29.002 [60]
+
+-- Editor's note: clarify if this should be moved to the CS module
+
+Ext-GeographicalInformation, LCSClientType, LCS-Priority, LocationType
+FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version7 (7)}
+
+-- from TS 29.002 [60]
+
+PositionMethodFailure-Diagnostic, UnauthorizedLCSClient-Diagnostic
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version7 (7)}
+
+-- from TS 29.002 [60]
+
+-- Editor's note: "UnauthorizedLCSClient-Diagnostic" was missing in 32.205
+
+BasicService
+FROM Basic-Service-Elements { itu-t identified-organization (4) etsi (0)
+196 basic-service-elements (8) }
+--
+-- from "Digital Subscriber Signalling System No. one (DSS1) protocol"
+-- ETS 300 196 [62]
+--
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) version1 (1) protocol (3)}
+
+-- from ITU-T Rec. X.2ab[105] Editor's note: clarify if this definition is still needed. It appears that it ends in Nirwana.
+
+-- WS localy defined
+--ManagementExtension
+--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+-- from ITU-T Rec. X.721 [106] Editor's note: clarify if this definition is still needed.
+--AE-title
+--FROM ACSE-1 {joint-iso-itu-t association-control (2) abstract-syntax (1) apdus (0) version (1) }
+--
+-- From ITU-T Rec. X.2cd[107]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY" Editor's note: clarify if this definition is still needed. It appears that it ends in Nirwana.
+;
+------------------------------------------------------------------------------
+--
+-- Generic Data Types
+--
+------------------------------------------------------------------------------
+
+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 24.008.
+ -- 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.
+
+CallDuration ::= INTEGER
+ --
+ -- The call duration is counted in seconds.
+ -- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+ -- For call attempts this is the call holding time.
+ --
+
+-- Editor's note: the explanation above should be removed as proper definitions are required in the individual CDR parameter descriptions in[10] -[31]
+
+CalledNumber ::= BCDDirectoryNumber
+
+CallEventRecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 29..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mmO1SRecord (29),
+ mmO4FRqRecord (30),
+ mmO4FRsRecord (31),
+ mmO4DRecord (32),
+ mmO1DRecord (33),
+ mmO4RRecord (34),
+ mmO1RRecord (35),
+ mmOMDRecord (36),
+ mmR4FRecord (37),
+ mmR1NRqRecord (38),
+ mmR1NRsRecord (39),
+ mmR1RtRecord (40),
+ mmR1AFRecord (42),
+ mmR4DRqRecord (43),
+ mmR4DRsRecord (44),
+ mmR1RRRecord (45),
+ mmR4RRqRecord (46),
+ mmR4RRsRecord (47),
+ mmRMDRecord (48),
+ mmFRecord (49),
+ mmBx1SRecord (50),
+ mmBx1VRecord (51),
+ mmBx1URecord (52),
+ mmBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ s-CSCFRecord (63),
+ p-CSCFRecord (64),
+ i-CSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+ egsnPDPRecord (70),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+ subBMSCRecord (78),
+ contentBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [14]
+--
+ pPFRecord (80),
+ cPFRecord (81)
+}
+
+CallingNumber ::= BCDDirectoryNumber
+
+CallReference ::= INTEGER
+
+CellId ::= OCTET STRING (SIZE(2))
+ --
+ -- Coded according to TS 24.008
+ --
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008
+ 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 29.002.
+ itu-tQ767Cause [2] INTEGER,
+ -- See ITU-T Q.767
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic
+ -- see TS 29.002
+}
+
+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))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+ --
+ -- See LCS Cause Value, 3GPP TS 49.031
+ --
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+ --
+ -- See LCS QoS IE, 3GPP TS 49.031
+ --
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+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
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+ --
+ -- See TS 24.008
+ --
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+ --
+ -- See TS 23.003
+ --
+
+MSISDN ::= ISDN-AddressString
+ --
+ -- See TS 23.003
+ --
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+ --
+ -- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
+ --
+PositioningData ::= OCTET STRING (SIZE(1..33))
+ --
+ -- See Positioning Data IE (octet 3..n), 3GPP TS 49.031
+ --
+
+RecordingEntity ::= AddressString
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+ --
+ -- This type contains the binary coded decimal representation of
+ -- the SMS address field the encoding of the octet string is in
+ -- accordance with the definition of address fields in TS 23.040.
+ -- This encoding includes type of number and numbering plan indication
+ -- together with the address value range.
+ --
+
+SystemType ::= ENUMERATED
+{
+ --
+ -- "unknown" is not to be used in PS domain.
+ --
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+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
+ --
+
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV8e0.asn b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV8e0.asn
new file mode 100644
index 0000000000..5f3d936454
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV8e0.asn
@@ -0,0 +1,590 @@
+-- 3GPP TS 32.298 V8.14.0 (2006-06)
+GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+
+CallReferenceNumber, NumberOfForwarding
+FROM MAP-CH-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CH-DataTypes (13) version6 (6) }
+-- from TS 29.002 [60]
+
+
+AddressString, BasicServiceCode, IMSI, IMEI, ISDN-AddressString, LCSClientExternalID, LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+-- from TS 29.002 [60]
+
+
+DestinationRoutingAddress
+FROM CAP-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) cap-datatypes (52) version1 (0) }
+-- from TS 29.078 [66]
+
+
+DefaultCallHandling, DefaultSMS-Handling, NotificationToMSUser, ServiceKey
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6) }
+-- from TS 29.002 [60]
+
+
+Ext-GeographicalInformation, LCSClientType, LCS-Priority, LocationType
+FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version7 (7)}
+-- from TS 29.002 [60]
+
+PositionMethodFailure-Diagnostic, UnauthorizedLCSClient-Diagnostic
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version7 (7)}
+-- from TS 29.002 [60]
+
+BasicService
+FROM Basic-Service-Elements { itu-t identified-organization (4) etsi (0)
+196 basic-service-elements (8) }
+--
+-- from "Digital Subscriber Signalling System No. one (DSS1) protocol"
+-- ETS 300 196 [62]
+--
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) version1 (1) protocol (3)}
+
+-- from ITU-T Rec. X.2ab[105] Editor's note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+
+-- WS localy defined
+--ManagementExtension
+--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+
+-- from ITU-T Rec. X.721 [106] Editor's note: clarify if this definition is still needed.
+--AE-title
+--FROM ACSE-1 {joint-iso-itu-t association-control (2) abstract-syntax (1) apdus (0) version (1) };
+--
+-- From ITU-T Rec. X.2cd[107]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY" Editor's note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+;
+------------------------------------------------------------------------------
+--
+-- Generic Data Types
+--
+------------------------------------------------------------------------------
+
+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 24.008 [64].
+ -- 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.
+
+CallDuration ::= INTEGER
+ --
+ -- The call duration is counted in seconds.
+ -- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+ -- For call attempts this is the call holding time.
+ --
+
+-- Editor's note: the explanation above should be removed as proper definitions are required in the individual CDR parameter descriptions in[10] -[31]
+
+CalledNumber ::= BCDDirectoryNumber
+
+-- WS extension to cater for older version(6)
+CallEventRecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 29..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mmO1SRecord (29),
+ mmO4FRqRecord (30),
+ mmO4FRsRecord (31),
+ mmO4DRecord (32),
+ mmO1DRecord (33),
+ mmO4RRecord (34),
+ mmO1RRecord (35),
+ mmOMDRecord (36),
+ mmR4FRecord (37),
+ mmR1NRqRecord (38),
+ mmR1NRsRecord (39),
+ mmR1RtRecord (40),
+ mmR1AFRecord (42),
+ mmR4DRqRecord (43),
+ mmR4DRsRecord (44),
+ mmR1RRRecord (45),
+ mmR4RRqRecord (46),
+ mmR4RRsRecord (47),
+ mmRMDRecord (48),
+ mmFRecord (49),
+ mmBx1SRecord (50),
+ mmBx1VRecord (51),
+ mmBx1URecord (52),
+ mmBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ s-CSCFRecord (63),
+ p-CSCFRecord (64),
+ i-CSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+ egsnPDPRecord (70),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+ subBMSCRecord (78),
+ contentBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [14]
+--
+ pPFRecord (80),
+ cPFRecord (81)
+}
+-- End WS
+RecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 30..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mMO1SRecord (30),
+ mMO4FRqRecord (31),
+ mMO4FRsRecord (32),
+ mMO4DRecord (33),
+ mMO1DRecord (34),
+ mMO4RRecord (35),
+ mMO1RRecord (36),
+ mMOMDRecord (37),
+ mMR4FRecord (38),
+ mMR1NRqRecord (39),
+ mMR1NRsRecord (40),
+ mMR1RtRecord (41),
+ mMR1AFRecord (42),
+ mMR4DRqRecord (43),
+ mMR4DRsRecord (44),
+ mMR1RRRecord (45),
+ mMR4RRqRecord (46),
+ mMR4RRsRecord (47),
+ mMRMDRecord (48),
+ mMFRecord (49),
+ mMBx1SRecord (50),
+ mMBx1VRecord (51),
+ mMBx1URecord (52),
+ mMBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69, 82 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ sCSCFRecord (63),
+ pCSCFRecord (64),
+ iCSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+ iBCFRecord (82),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+--
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+--
+ sUBBMSCRecord (78),
+ cONTENTBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [32]
+--
+ pPFRecord (80),
+ cPFRecord (81),
+
+-- Record values 84..85 are EPC specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sGWRecord (84),
+ pGWRecord (85),
+--
+-- Record Value 83 is MMTel specific.
+-- The contents are defined in TS 32.275 [35]
+--
+
+ mMTelRecord (83)
+
+}
+
+CallingNumber ::= BCDDirectoryNumber
+
+CallReference ::= INTEGER
+
+CellId ::= OCTET STRING (SIZE(2))
+ --
+ -- Coded according to TS 24.008 [64]
+ --
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008 [64]
+ 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 29.002 [60].
+ itu-tQ767Cause [2] INTEGER,
+ -- See ITU-T Q.767 [67]
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002 [60]
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic
+ -- see TS 29.002 [60]
+}
+
+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))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+ --
+ -- See LCS Cause Value, TS 49.031 [71]
+ --
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+ --
+ -- See LCS QoS IE, TS 49.031 [71]
+ --
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+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
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId,
+ mCC-MNC [2] MCC-MNC OPTIONAL
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+ --
+ -- See TS 24.008 [64]
+ --
+
+MCC-MNC ::= OCTET STRING (SIZE(3))
+ --
+ -- See TS 24.008 [64]
+ --
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+ --
+ -- See TS 23.003 [68]
+ --
+
+MSISDN ::= ISDN-AddressString
+ --
+ -- See TS 23.003 [68]
+ --
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+ --
+ -- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
+ --
+
+NodeAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ domainName [1] GraphicString
+}
+
+PositioningData ::= OCTET STRING (SIZE(1..33))
+ --
+ -- See Positioning Data IE (octet 3..n), TS 49.031 [71]
+ --
+
+RecordingEntity ::= AddressString
+
+ServiceContextID ::= UTF8String
+
+
+ServiceSpecificInfo ::= SEQUENCE
+{
+
+ serviceSpecificData [0] GraphicString OPTIONAL,
+serviceSpecificType [1] INTEGER OPTIONAL
+}
+
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+ --
+ -- This type contains the binary coded decimal representation of
+ -- the SMS address field the encoding of the octet string is in
+ -- accordance with the definition of address fields in TS 23.040 [72].
+ -- This encoding includes type of number and numbering plan indication
+ -- together with the address value range.
+ --
+
+SubscriptionID ::= SET
+{
+ subscriptionIDType [0] SubscriptionIDType,
+ subscriptionIDData [1] UTF8String
+}
+
+SubscriptionIDType ::= ENUMERATED
+{
+ eND-USER-E164 (0),
+ eND-USER-IMSI (1),
+ eND-USER-SIP-URI (2),
+ eND-USER-NAI (3),
+ eND-USER-PRIVATE (4)
+}
+
+SystemType ::= ENUMERATED
+{
+ --
+ -- "unknown" is not to be used in PS domain.
+ --
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+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
+ --
+
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+END
diff --git a/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV9f0.asn b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV9f0.asn
new file mode 100644
index 0000000000..8459e685c4
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV9f0.asn
@@ -0,0 +1,594 @@
+-- 3GPP TS 32.298 V9.15.0 (2013-03)
+
+GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+CallReferenceNumber, NumberOfForwarding
+FROM MAP-CH-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CH-DataTypes (13) version6 (6) }
+-- from TS 29.002 [214]
+
+AddressString, BasicServiceCode, IMSI, IMEI, ISDN-AddressString, LCSClientExternalID, LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+-- from TS 29.002 [214]
+
+DestinationRoutingAddress
+FROM CAP-datatypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) cap-datatypes (52) version1 (0) }
+-- from TS 29.078 [217]
+
+DefaultCallHandling, DefaultSMS-Handling, NotificationToMSUser, ServiceKey
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6) }
+-- from TS 29.002 [214]
+
+Ext-GeographicalInformation, LCSClientType, LCS-Priority, LocationType
+FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version7 (7)}
+-- from TS 29.002 [214]
+
+PositionMethodFailure-Diagnostic, UnauthorizedLCSClient-Diagnostic
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version7 (7)}
+--
+-- from TS 29.002 [214]
+--
+
+BasicService
+FROM Basic-Service-Elements { itu-t identified-organization (4) etsi (0)
+196 basic-service-elements (8) }
+--
+-- from "Digital Subscriber Signalling System No. one (DSS1) protocol" ETS 300 196 [310]
+--
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) version1 (1) protocol (3)}
+--
+-- from Rec. X.2ab[304] Editor's note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+
+-- WS localy defined
+--ManagementExtension
+-- FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+--
+-- from Rec. X.721 [305] Editor's note: clarify if this definition is still needed.
+--
+
+-- AE-title
+-- FROM ACSE-1 {joint-iso-itu-t association-control (2) abstract-syntax (1) apdus (0) version (1) };
+--
+-- From Rec. X.2cd[306]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY"
+-- Editor's note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+;
+------------------------------------------------------------------------------
+--
+-- Generic Data Types
+--
+------------------------------------------------------------------------------
+
+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 24.008 [208].
+-- 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.
+--
+
+CallDuration ::= INTEGER
+--
+-- The call duration is counted in seconds.
+-- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+-- For call attempts this is the call holding time.
+--
+
+-- Editor's note: the explanation above should be removed as proper definitions are required in the individual CDR parameter descriptions in TS 32.250[10] - TS 32.275 [35]
+
+CalledNumber ::= BCDDirectoryNumber
+
+-- WS extension to cater for older version(6)
+CallEventRecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 29..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mmO1SRecord (29),
+ mmO4FRqRecord (30),
+ mmO4FRsRecord (31),
+ mmO4DRecord (32),
+ mmO1DRecord (33),
+ mmO4RRecord (34),
+ mmO1RRecord (35),
+ mmOMDRecord (36),
+ mmR4FRecord (37),
+ mmR1NRqRecord (38),
+ mmR1NRsRecord (39),
+ mmR1RtRecord (40),
+ mmR1AFRecord (42),
+ mmR4DRqRecord (43),
+ mmR4DRsRecord (44),
+ mmR1RRRecord (45),
+ mmR4RRqRecord (46),
+ mmR4RRsRecord (47),
+ mmRMDRecord (48),
+ mmFRecord (49),
+ mmBx1SRecord (50),
+ mmBx1VRecord (51),
+ mmBx1URecord (52),
+ mmBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ s-CSCFRecord (63),
+ p-CSCFRecord (64),
+ i-CSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+ egsnPDPRecord (70),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+ subBMSCRecord (78),
+ contentBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [14]
+--
+ pPFRecord (80),
+ cPFRecord (81)
+}
+-- End WS
+
+RecordType ::= INTEGER
+{--
+-- Record values 0..17 and 87 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ 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), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMTLCSRecord (26),
+ sgsnMOLCSRecord (27),
+ sgsnNILCSRecord (28),
+--
+-- Record values 30..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mMO1SRecord (30),
+ mMO4FRqRecord (31),
+ mMO4FRsRecord (32),
+ mMO4DRecord (33),
+ mMO1DRecord (34),
+ mMO4RRecord (35),
+ mMO1RRecord (36),
+ mMOMDRecord (37),
+ mMR4FRecord (38),
+ mMR1NRqRecord (39),
+ mMR1NRsRecord (40),
+ mMR1RtRecord (41),
+ mMR1AFRecord (42),
+ mMR4DRqRecord (43),
+ mMR4DRsRecord (44),
+ mMR1RRRecord (45),
+ mMR4RRqRecord (46),
+ mMR4RRsRecord (47),
+ mMRMDRecord (48),
+ mMFRecord (49),
+ mMBx1SRecord (50),
+ mMBx1VRecord (51),
+ mMBx1URecord (52),
+ mMBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69, 70, 82 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ sCSCFRecord (63),
+ pCSCFRecord (64),
+ iCSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+ eCSCFRecord (70),
+ iBCFRecord (82),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79,86 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76,77 and 86 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+ gwMBMSRecord (86),
+
+--
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+--
+ sUBBMSCRecord (78),
+ cONTENTBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [32]
+--
+ pPFRecord (80),
+ cPFRecord (81),
+
+-- Record values 84..85 are EPC specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sGWRecord (84),
+ pGWRecord (85),
+--
+-- Record Value 83 is MMTel specific.
+-- The contents are defined in TS 32.275 [35]
+--
+ mMTelRecord (83),
+
+-- Record value 87 is CS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+
+ mSCsRVCCRecord (87)
+
+
+}
+
+CallingNumber ::= BCDDirectoryNumber
+
+CallReference ::= INTEGER
+
+CellId ::= OCTET STRING (SIZE(2))
+--
+-- Coded according to TS 24.008 [208]
+--
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008 [208]
+ 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 29.002 [214].
+ itu-tQ767Cause [2] INTEGER,
+ -- See Q.767 [309]
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002 [214]
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic
+ -- see TS 29.002 [214]
+}
+
+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))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+--
+-- See LCS Cause Value, TS 49.031 [227]
+--
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+--
+-- See LCS QoS IE, TS 49.031 [227]
+--
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+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
+--
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId,
+ mCC-MNC [2] MCC-MNC OPTIONAL
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+--
+-- See TS 24.008 [208]
+--
+
+MCC-MNC ::= OCTET STRING (SIZE(3))
+--
+-- See TS 24.008 [208]
+--
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSISDN ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+--
+-- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [215]
+--
+
+NodeAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ domainName [1] GraphicString
+}
+
+PositioningData ::= OCTET STRING (SIZE(1..33))
+--
+-- See Positioning Data IE (octet 3..n), TS 49.031 [227]
+--
+
+RecordingEntity ::= AddressString
+
+ServiceContextID ::= UTF8String
+
+ServiceSpecificInfo ::= SEQUENCE
+{
+ serviceSpecificData [0] GraphicString OPTIONAL,
+ serviceSpecificType [1] INTEGER OPTIONAL
+}
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+--
+-- This type contains the binary coded decimal representation of
+-- the SMS address field the encoding of the octet string is in
+-- accordance with the definition of address fields in TS 23.040 [201].
+-- This encoding includes type of number and numbering plan indication
+-- together with the address value range.
+--
+
+SubscriptionID ::= SET
+{
+ subscriptionIDType [0] SubscriptionIDType,
+ subscriptionIDData [1] UTF8String
+}
+
+SubscriptionIDType ::= ENUMERATED
+{
+ eND-USER-E164 (0),
+ eND-USER-IMSI (1),
+ eND-USER-SIP-URI (2),
+ eND-USER-NAI (3),
+ eND-USER-PRIVATE (4)
+}
+
+SystemType ::= ENUMERATED
+{ --
+ -- "unknown" is not to be used in PS domain.
+ --
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+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
+--
+
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+END
+
diff --git a/epan/dissectors/asn1/gprscdr/Makefile.am b/epan/dissectors/asn1/gprscdr/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/gprscdr/Makefile.common b/epan/dissectors/asn1/gprscdr/Makefile.common
new file mode 100644
index 0000000000..fc0872e73c
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/Makefile.common
@@ -0,0 +1,61 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=gprscdr
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+ASN_FILE_LIST = \
+ GenericChargingDataTypesV1250.asn \
+ GPRSChargingDataTypesV641.asn \
+ GPRSChargingDataTypesV1260.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ 3GPPGenericChargingDataTypes.asn \
+ GPRSChargingDataTypes.asn \
+ GPRSChargingDataTypesV8e0.asn \
+ GPRSChargingDataTypesV9f0.asn \
+ GPRSChargingDataTypesV1171.asn \
+ GenericChargingDataTypes.asn \
+ GenericChargingDataTypesV641.asn \
+ GenericChargingDataTypesV8e0.asn \
+ GenericChargingDataTypesV9f0.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=$(builddir)/../gsm_map/gsm_map-exp.cnf
+
+$(builddir)/../gsm_map/gsm_map-exp.cnf:
+ (cd $(builddir)/../gsm_map && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/gprscdr/Makefile.nmake b/epan/dissectors/asn1/gprscdr/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/gprscdr/gprscdr.cnf b/epan/dissectors/asn1/gprscdr/gprscdr.cnf
new file mode 100644
index 0000000000..bac6db2ed3
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/gprscdr.cnf
@@ -0,0 +1,173 @@
+# gprscdr.cnf
+# Anders Broman 2011
+
+#.IMPORT ../gsm_map/gsm_map-exp.cnf
+
+#.MODULE
+
+#.OMIT_ASSIGNMENT
+CalledNumber
+ChargeIndicator
+MscNo
+SystemType
+SGSNMTLCSRecord
+SGSNMOLCSRecord
+SGSNNILCSRecord
+LCSCause
+LCSClientIdentity
+LCSQoSInfo
+LocationAreaAndCell
+PositioningData
+MCC-MNC
+NodeAddress
+ServiceContextID
+ChangeLocationV651
+CTEID
+DataVolumeMBMS
+SubscriberEquipmentNumber
+SubscriberEquipmentType
+# 6.4 If these are needed MBMS asn1 should be added.
+SGSNMBMSRecord
+GGSNMBMSRecord
+GWMBMSRecord
+ChangeOfMBMSCondition
+CNIPMulticastDistribution
+MBMS2G3GIndicator
+TMGI
+MBMSSessionIdentity
+MBMSServiceType
+MBMSUserServiceType
+MBMSServiceArea
+RequiredMBMSBearerCapabilities
+
+#.NO_EMIT
+MBMSInformation
+
+#.EXPORTS
+GPRSCallEventRecord
+GPRSCallEventRecord_PDU
+GPRSRecord
+GPRSRecord_PDU
+
+#.CLASS ATTRIBUTE
+&id ObjectIdentifierType
+&Value
+
+#.CLASS CONTEXT
+&id ObjectIdentifierType
+&Value
+
+#.PDU
+GPRSCallEventRecord
+GPRSRecord
+
+
+# Get the OID
+#.FN_PARS ManagementExtension/identifier FN_VARIANT = _str VAL_PTR = &obj_id
+
+#.FN_BODY ManagementExtension/information
+
+ proto_tree *ext_tree;
+ ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gprscdr_managementextension_information, NULL, "Information");
+ if (obj_id){
+ offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, ext_tree, NULL);
+ }else{
+ proto_tree_add_expert(ext_tree, actx->pinfo, &ei_gprscdr_not_dissected, tvb, offset, -1);
+ }
+
+#.FN_BODY TimeStamp VAL_PTR = &parameter_tvb
+/*
+ *
+ * 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
+ */
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ proto_item_append_text(actx->created_item, " (UTC %%x-%%x-%%x %%x:%%x:%%x %%s%%x:%%x)",
+ tvb_get_guint8(parameter_tvb,0), /* Year */
+ tvb_get_guint8(parameter_tvb,1), /* Month */
+ tvb_get_guint8(parameter_tvb,2), /* Day */
+ tvb_get_guint8(parameter_tvb,3), /* Hour */
+ tvb_get_guint8(parameter_tvb,4), /* Minute */
+ tvb_get_guint8(parameter_tvb,5), /* Second */
+ tvb_get_string_enc(wmem_packet_scope(), parameter_tvb,6,1,ENC_ASCII|ENC_NA), /* Sign */
+ tvb_get_guint8(parameter_tvb,7), /* Hour */
+ tvb_get_guint8(parameter_tvb,8) /* Minute */
+ );
+
+#.FN_BODY MSTimeZone VAL_PTR = &parameter_tvb
+/*
+ *
+ * 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
+ */
+ tvbuff_t *parameter_tvb;
+ guint8 data, data2;
+ char sign;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ data = tvb_get_guint8(parameter_tvb, 0);
+ sign = (data & 0x08) ? '-' : '+';
+ data = (data >> 4) + (data & 0x07) * 10;
+
+ data2 = tvb_get_guint8(tvb, 1) & 0x3;
+
+ proto_item_append_text(actx->created_item, " (GMT %%c %%d hours %%d minutes %%s)",
+ sign,
+ data / 4,
+ data %% 4 * 15,
+ val_to_str_const(data2, gprscdr_daylight_saving_time_vals, "Unknown")
+ );
+
+#.FN_BODY PLMN-Id VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gprscdr_plmn_id);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, TRUE);
+
+#.FN_BODY GPRSRecord VAL_PTR = &branch_taken
+proto_item *item;
+gint branch_taken, t_offset = offset;
+gint32 tag;
+
+ %(DEFAULT_BODY)s
+
+ if(branch_taken == -1){
+ get_ber_identifier(tvb, t_offset, NULL, NULL, &tag);
+ item = proto_tree_add_uint(tree, hf_index, tvb, t_offset, 1, tag);
+ dissect_ber_identifier(actx->pinfo, tree, tvb, t_offset, NULL, NULL, &tag);
+ expert_add_info_format(actx->pinfo, item, &ei_gprscdr_choice_not_found,
+ "Record type(BER choice) not found: %%u", tag);
+ }
+#.TYPE_ATTR
+IPBinaryAddress/iPBinV4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE
+IPBinaryAddress/iPBinV6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE
+#.END
diff --git a/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c
new file mode 100644
index 0000000000..eec55555e3
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c
@@ -0,0 +1,104 @@
+/* packet-gprscdr-template.c
+ * Copyright 2011 , Anders Broman <anders.broman [AT] ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References: 3GPP TS 32.298
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-gsm_map.h"
+#include "packet-e212.h"
+#include "packet-gprscdr.h"
+
+#define PNAME "GPRS CDR"
+#define PSNAME "GPRSCDR"
+#define PFNAME "gprscdr"
+
+void proto_register_gprscdr(void);
+
+/* Define the GPRS CDR proto */
+static int proto_gprscdr = -1;
+
+#include "packet-gprscdr-hf.c"
+
+static int ett_gprscdr = -1;
+static int ett_gprscdr_timestamp = -1;
+static int ett_gprscdr_plmn_id = -1;
+static int ett_gprscdr_managementextension_information = -1;
+#include "packet-gprscdr-ett.c"
+
+static expert_field ei_gprscdr_not_dissected = EI_INIT;
+static expert_field ei_gprscdr_choice_not_found = EI_INIT;
+
+/* Global variables */
+static const char *obj_id = NULL;
+
+static const value_string gprscdr_daylight_saving_time_vals[] = {
+ {0, "No adjustment"},
+ {1, "+1 hour adjustment for Daylight Saving Time"},
+ {2, "+2 hours adjustment for Daylight Saving Time"},
+ {3, "Reserved"},
+ {0, NULL}
+};
+
+#include "packet-gprscdr-fn.c"
+
+
+
+/* Register all the bits needed with the filtering engine */
+void
+proto_register_gprscdr(void)
+{
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-gprscdr-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_gprscdr,
+ &ett_gprscdr_timestamp,
+ &ett_gprscdr_plmn_id,
+ &ett_gprscdr_managementextension_information,
+#include "packet-gprscdr-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_gprscdr_not_dissected, { "gprscdr.not_dissected", PI_UNDECODED, PI_WARN, "Not dissected", EXPFILL }},
+ { &ei_gprscdr_choice_not_found, { "gprscdr.error.choice_not_found", PI_MALFORMED, PI_WARN, "GPRS CDR Error: This choice field(Record type) was not found", EXPFILL }},
+ };
+
+ expert_module_t* expert_gprscdr;
+
+ proto_gprscdr = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ proto_register_field_array(proto_gprscdr, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_gprscdr = expert_register_protocol(proto_gprscdr);
+ expert_register_field_array(expert_gprscdr, ei, array_length(ei));
+}
+
+/* The registration hand-off routine */
+
diff --git a/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.h b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.h
new file mode 100644
index 0000000000..6baadbba56
--- /dev/null
+++ b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.h
@@ -0,0 +1,32 @@
+/* packet-gprscdr.h
+ * Routines for gprscdr packet dissection
+ * Copyright 2011, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_GPRSCDR_H
+#define PACKET_GPRSCDR_H
+
+
+#include "packet-gprscdr-exp.h"
+
+#endif /* PACKET_GPRSCDR_H */
+
+
diff --git a/epan/dissectors/asn1/gsm_map/CMakeLists.txt b/epan/dissectors/asn1/gsm_map/CMakeLists.txt
new file mode 100644
index 0000000000..186e508c6a
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/CMakeLists.txt
@@ -0,0 +1,101 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME gsm_map )
+
+set( PROTO_OPT _EMPTY_ )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+ ../ros/Remote-Operations-Information-Objects.asn
+)
+
+set( DATATYPES_ASN_FILES
+ MAP-ExtensionDataTypes.asn
+ MAP-CommonDataTypes.asn
+ MAP-SS-DataTypes.asn
+ MAP-ER-DataTypes.asn
+ MAP-SM-DataTypes.asn
+ MAP-OM-DataTypes.asn
+ MAP-MS-DataTypes.asn
+ MAP-CH-DataTypes.asn
+ MAP-LCS-DataTypes.asn
+ MAP-GR-DataTypes.asn
+)
+
+set( OPERATIONS_ASN_FILES
+ MAP-LocationServiceOperations.asn
+ MAP-Group-Call-Operations.asn
+ MAP-ShortMessageServiceOperations.asn
+ MAP-SupplementaryServiceOperations.asn
+ MAP-CallHandlingOperations.asn
+ MAP-OperationAndMaintenanceOperations.asn
+ MAP-MobileServiceOperations.asn
+)
+
+set( SS_ASN_FILES
+ SS-DataTypes.asn
+ SS-Operations.asn
+)
+
+set( PROPRIETARY_ASN_FILES
+ Ericsson.asn
+ Nokia.asn
+)
+
+set( ASN_FILE_LIST
+ MobileDomainDefinitions.asn
+ MAP-ApplicationContexts.asn
+ MAP-SS-Code.asn
+ MAP-BS-Code.asn
+ MAP-TS-Code.asn
+ ${DATATYPES_ASN_FILES}
+ MAP-DialogueInformation.asn
+ ${OPERATIONS_ASN_FILES}
+ MAP-Errors.asn
+ MAP-Protocol.asn
+ GSMMAP.asn
+ ${SS_ASN_FILES}
+ ${PROPRIETARY_ASN_FILES}
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/gsm_map/Ericsson.asn b/epan/dissectors/asn1/gsm_map/Ericsson.asn
new file mode 100644
index 0000000000..34a2cdc89b
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/Ericsson.asn
@@ -0,0 +1,42 @@
+-- Ericsson proprietary extensions
+
+EricssonMAP{ 0 identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-Protocol (4) version13 (13) }
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+IMPORTS
+
+ IMSI,
+ IMEI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13)}
+
+ RequestedEquipmentInfo
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version13 (13)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version13 (13)}
+;
+
+-- non 3GPP standard compliant extension used by Ericsson (see https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7648)
+EnhancedCheckIMEI-Arg ::= SEQUENCE {
+ imei IMEI,
+ requestedEquipmentInfo RequestedEquipmentInfo OPTIONAL,
+ imsi [PRIVATE 1] IMSI OPTIONAL,
+ locationInformation [PRIVATE 3] OCTET STRING (SIZE (1..7)) OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+END
+
diff --git a/epan/dissectors/asn1/gsm_map/GSMMAP.asn b/epan/dissectors/asn1/gsm_map/GSMMAP.asn
new file mode 100644
index 0000000000..c00ebbe8d6
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/GSMMAP.asn
@@ -0,0 +1,750 @@
+-- Expanded ASN1 Module 'MAP-Protocol'
+--SIEMENS ASN.1 Compiler R5.70 (Production_5.70)
+-- Date: 2003-09-04 Time: 14:14:00
+-- Updated to version 3GPP TS 29.002 V7.5.0 (2006-09) Release 7
+-- Partially from ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
+
+DummyMAP{ 0 identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-Protocol (4) version5 (5) }
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+
+-- Must import data types for the "old" asn1 defs collected here.
+IMPORTS
+ AddressString,
+ BasicServiceCode,
+ ExternalSignalInfo,
+ GlobalCellId,
+ ISDN-AddressString,
+ IMSI,
+ IMSI-WithLMSI,
+ LMSI,
+ ProtocolId,
+ SignalInfo,
+ TeleserviceCode,
+ SubscriberIdentity
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version11 (11)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)}
+
+ CUG-CheckInfo,
+ NumberOfForwarding,
+ RoutingInfo
+FROM MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version11 (11)}
+
+ CUG-Interlock,
+ SubscriberData,
+ AuthenticationSetList
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version15 (15)}
+
+ CorrelationID,
+ SM-DeliveryNotIntended,
+ SM-RP-MTI,
+ SM-RP-SMEA
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version15 (15)}
+
+;
+
+-- ROS def's
+-- Module Remote-Operations-Apdus (H.450.1:02/1998)
+--Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
+-- remote-operations-apdus(11)} DEFINITIONS AUTOMATIC TAGS ::=
+--BEGIN
+
+Component ::= CHOICE {
+ invoke [1] Invoke,
+ returnResultLast [2] ReturnResult,
+ returnError [3] ReturnError,
+ reject [4] Reject,
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+ returnResultNotLast [7] ReturnResult
+}
+
+Invoke ::= SEQUENCE {
+ invokeID InvokeIdType,
+ linkedID [0] InvokeIdType OPTIONAL,
+ opCode MAP-OPERATION,
+ invokeparameter InvokeParameter OPTIONAL
+}
+InvokeParameter ::= ANY
+
+
+-- 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,
+ resultretres SEQUENCE {
+ opCode MAP-OPERATION,
+ returnparameter ReturnResultParameter OPTIONAL
+ } OPTIONAL
+ }
+
+ReturnResultParameter ::= ANY
+
+-- 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 MAP-ERROR,
+ parameter ReturnErrorParameter OPTIONAL }
+
+ReturnErrorParameter ::= ANY
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+Reject ::= SEQUENCE {
+ invokeIDRej CHOICE {
+ derivable InvokeIdType,
+ not-derivable NULL },
+ problem CHOICE {
+ generalProblem [0] GeneralProblem,
+ invokeProblem [1] InvokeProblem,
+ returnResultProblem [2] ReturnResultProblem,
+ returnErrorProblem [3] ReturnErrorProblem } }
+
+InvokeIdType ::= INTEGER (-128..127)
+
+
+MAP-OPERATION ::= CHOICE {
+ localValue OperationLocalvalue,
+ globalValue OBJECT IDENTIFIER }
+
+GSMMAPOperationLocalvalue ::= INTEGER{
+ updateLocation (2),
+ cancelLocation (3),
+ provideRoamingNumber (4),
+ noteSubscriberDataModified (5),
+ resumeCallHandling (6),
+ insertSubscriberData (7),
+ deleteSubscriberData (8),
+ sendParameters (9),
+ registerSS (10),
+ eraseSS (11),
+ activateSS (12),
+ deactivateSS (13),
+ interrogateSS (14),
+ authenticationFailureReport (15),
+ notifySS (16),
+ registerPassword (17),
+ getPassword (18),
+ processUnstructuredSS-Data (19),
+ releaseResources (20),
+ mt-ForwardSM-VGCS (21),
+ sendRoutingInfo (22),
+ updateGprsLocation (23),
+ sendRoutingInfoForGprs (24),
+ failureReport (25),
+ noteMsPresentForGprs (26),
+ unAllocated (27),
+ performHandover (28),
+ sendEndSignal (29),
+ performSubsequentHandover (30),
+ provideSIWFSNumber (31),
+ sIWFSSignallingModify (32),
+ processAccessSignalling (33),
+ forwardAccessSignalling (34),
+ noteInternalHandover (35),
+ cancelVcsgLocation (36),
+ reset (37),
+ forwardCheckSS (38),
+ prepareGroupCall (39),
+ sendGroupCallEndSignal (40),
+ processGroupCallSignalling (41),
+ forwardGroupCallSignalling (42),
+ checkIMEI (43),
+ mt-forwardSM (44),
+ sendRoutingInfoForSM (45),
+ mo-forwardSM (46),
+ reportSM-DeliveryStatus (47),
+ noteSubscriberPresent (48),
+ alertServiceCentreWithoutResult (49),
+ activateTraceMode (50),
+ deactivateTraceMode (51),
+ traceSubscriberActivity (52),
+ updateVcsgLocation (53),
+ beginSubscriberActivity (54),
+ sendIdentification (55),
+ sendAuthenticationInfo (56),
+ restoreData (57),
+ sendIMSI (58),
+ processUnstructuredSS-Request (59),
+ unstructuredSS-Request (60),
+ unstructuredSS-Notify (61),
+ anyTimeSubscriptionInterrogation (62),
+ informServiceCentre (63),
+ alertServiceCentre (64),
+ anyTimeModification (65),
+ readyForSM (66),
+ purgeMS (67),
+ prepareHandover (68),
+ prepareSubsequentHandover (69),
+ provideSubscriberInfo (70),
+ anyTimeInterrogation (71),
+ ss-InvocationNotification (72),
+ setReportingState (73),
+ statusReport (74),
+ remoteUserFree (75),
+ registerCC-Entry (76),
+ eraseCC-Entry (77),
+ secureTransportClass1 (78),
+ secureTransportClass2 (79),
+ secureTransportClass3 (80),
+ secureTransportClass4 (81),
+ unAllocated (82),
+ provideSubscriberLocation (83),
+ sendGroupCallInfo (84),
+ sendRoutingInfoForLCS (85),
+ subscriberLocationReport (86),
+ ist-Alert (87),
+ ist-Command (88),
+ noteMM-Event (89),
+ unAllocated (90),
+ unAllocated (91),
+ unAllocated (92),
+ unAllocated (93),
+ unAllocated (94),
+ unAllocated (95),
+ unAllocated (96),
+ unAllocated (97),
+ unAllocated (98),
+ unAllocated (99),
+ unAllocated (100),
+ unAllocated (101),
+ unAllocated (102),
+ unAllocated (103),
+ unAllocated (104),
+ unAllocated (105),
+ unAllocated (106),
+ unAllocated (107),
+ unAllocated (108),
+ lcs-PeriodicLocationCancellation (109),
+ lcs-LocationUpdate (110),
+ lcs-PeriodicLocationRequest (111),
+ lcs-AreaEventCancellation (112),
+ lcs-AreaEventReport (113),
+ lcs-AreaEventRequest (114),
+ lcs-MOLR (115),
+ lcs-LocationNotification (116),
+ callDeflection (117),
+ userUserService (118),
+ accessRegisterCCEntry (119),
+ forwardCUG-Info (120),
+ splitMPTY (121),
+ retrieveMPTY (122),
+ holdMPTY(123),
+ buildMPTY (124),
+ forwardChargeAdvice(125),
+ explicitCT (126)
+ }
+
+OperationLocalvalue ::= GSMMAPOperationLocalvalue
+
+MAP-ERROR ::= CHOICE {
+ localValue LocalErrorcode,
+ globalValue OBJECT IDENTIFIER }
+
+GSMMAPLocalErrorcode ::= INTEGER{
+ unknownSubscriber (1),
+ unknownBaseStation (2),
+ unknownMSC (3),
+ secureTransportError (4),
+ unidentifiedSubscriber (5),
+ absentSubscriberSM (6),
+ unknownEquipment (7),
+ roamingNotAllowed (8),
+ illegalSubscriber (9),
+ bearerServiceNotProvisioned (10),
+ teleserviceNotProvisioned (11),
+ illegalEquipment (12),
+ callBarred (13),
+ forwardingViolation (14),
+ cug-Reject (15),
+ illegalSS-Operation (16),
+ ss-ErrorStatus (17),
+ ss-NotAvailable (18),
+ ss-SubscriptionViolatio (19),
+ ss-Incompatibility (20),
+ facilityNotSupported (21),
+ ongoingGroupCall (22),
+ invalidTargetBaseStation (23),
+ noRadioResourceAvailable (24),
+ noHandoverNumberAvailable (25),
+ subsequentHandoverFailure (26),
+ absentSubscriber (27),
+ incompatibleTerminal (28),
+ shortTermDenial (29),
+ longTermDenial (30),
+ subscriberBusyForMT-SMS (31),
+ sm-DeliveryFailure (32),
+ messageWaitingListFull (33),
+ systemFailure (34),
+ dataMissing (35),
+ unexpectedDataValue (36),
+ pw-RegistrationFailur (37),
+ negativePW-Check (38),
+ noRoamingNumberAvailable (39),
+ tracingBufferFull (40),
+ targetCellOutsideGroupCallArea (42),
+ numberOfPW-AttemptsViolation (43),
+ numberChanged (44),
+ busySubscriber (45),
+ noSubscriberReply (46),
+ forwardingFailed (47),
+ or-NotAllowed (48),
+ ati-NotAllowed (49),
+ noGroupCallNumberAvailable (50),
+ resourceLimitation (51),
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ mm-EventNotSupported (59),
+ atsi-NotAllowed (60),
+ atm-NotAllowed (61),
+ informationNotAvailabl (62),
+ unknownAlphabe (71),
+ ussd-Busy (72)
+}
+
+LocalErrorcode ::= GSMMAPLocalErrorcode
+
+-- 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
+
+Bss-APDU ::= SEQUENCE {
+ protocolId ProtocolId,
+ signalInfo SignalInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... }
+
+--provideSIWFSNumber OPERATION
+-- ARGUMENT
+
+ProvideSIWFSNumberArg ::= SEQUENCE {
+ gsm-BearerCapability [0] ExternalSignalInfo,
+ isdn-BearerCapability [1] ExternalSignalInfo,
+ call-Direction [2] CallDirection,
+ b-Subscriber-Address [3] ISDN-AddressString,
+ chosenChannel [4] ExternalSignalInfo,
+ lowerLayerCompatibility [5] ExternalSignalInfo OPTIONAL,
+ highLayerCompatibility [6] ExternalSignalInfo OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+...}
+-- RESULT
+ProvideSIWFSNumberRes ::= SEQUENCE {
+ sIWFSNumber [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+...}
+-- ERRORS {
+-- resourceLimitation localValue : 51,
+-- dataMissing localValue : 35,
+-- unexpectedDataValue localValue : 36,
+-- systemFailure localValue : 34}
+-- ::= localValue : 31
+
+CallDirection ::= OCTET STRING (SIZE (1))
+-- OCTET 1
+-- bit 1 (direction of call)
+-- 0 Mobile Originated Call (MOC)
+-- 1 Mobile Terminated Call (MTC)
+
+PurgeMSArgV2 ::= SEQUENCE {
+ imsi IMSI,
+ vlr-Number ISDN-AddressString OPTIONAL,
+ ... }
+
+PrepareHO-ArgOld ::= SEQUENCE {
+ targetCellId GlobalCellId OPTIONAL,
+ ho-NumberNotRequired NULL OPTIONAL,
+ bss-APDU Bss-APDU OPTIONAL,
+ ... }
+
+PrepareHO-ResOld ::= SEQUENCE {
+ handoverNumber ISDN-AddressString OPTIONAL,
+ bss-APDU Bss-APDU OPTIONAL,
+ ... }
+
+SendAuthenticationInfoResOld ::= SEQUENCE ( SIZE( 1 .. 5 ) ) OF
+ SEQUENCE {
+ rand RAND,
+ sres SRES,
+ kc Kc,
+ ... }
+
+RAND ::= OCTET STRING (SIZE (16))
+
+SRES ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+SendIdentificationResV2 ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ tripletList TripletListold OPTIONAL,
+ ...}
+
+TripletListold ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationTriplet-v2
+
+AuthenticationTriplet-v2 ::= SEQUENCE {
+ rand RAND,
+ sres SRES,
+ kc Kc,
+ ...}
+
+--sIWFSSignallingModify OPERATION
+-- ARGUMENT
+SIWFSSignallingModifyArg ::= SEQUENCE {
+ channelType [0] ExternalSignalInfo OPTIONAL,
+ chosenChannel [1] ExternalSignalInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+...}
+-- RESULT
+SIWFSSignallingModifyRes ::= SEQUENCE {
+ channelType [0] ExternalSignalInfo OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+-- ERRORS {
+-- resourceLimitation localValue : 51,
+-- dataMissing localValue : 35,
+-- unexpectedDataValue localValue : 36,
+-- systemFailure localValue : 34}
+-- ::= localValue : 32
+
+-- not used
+-- Ccbs-Monitoring ::= ENUMERATED {
+-- stopMonitoring ( 0 ),
+-- startMonitoring ( 1 ),
+-- ... }
+
+--setReportingState OPERATION
+-- ARGUMENT
+
+
+
+NewPassword ::= NumericString (SIZE( 4 ) )
+-- ERRORS {
+-- systemFailure localValue : 34,
+-- dataMissing localValue : 35,
+-- unexpectedDataValue localValue : 36,
+-- callBarred localValue : 13,
+-- ss-SubscriptionViolation localValue : 19,
+-- pw-RegistrationFailure localValue : 37,
+-- negativePW-Check localValue : 38,
+-- numberOfPW-AttemptsViolation localValue : 43}
+--LINKED {
+ -- getPassword localValue : 18}
+-- ::= localValue : 17
+
+--getPassword OPERATION
+-- ARGUMENT
+-- GetPasswordArg is GuidanceInfo
+GetPasswordArg ::= ENUMERATED {
+ enterPW ( 0 ),
+ enterNewPW ( 1 ),
+ enterNewPW-Again ( 2 ) }
+-- RESULT
+CurrentPassword ::= NumericString (SIZE( 4 ) )
+-- ::= localValue : 18
+
+--registerCC-Entry OPERATION
+-- ARGUMENT
+
+SecureTransportArg ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload 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 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}
+
+
+--PLMN_Data
+-- Alcatel Specific extension container
+PlmnContainer ::= [PRIVATE 2] SEQUENCE {
+ msisdn [0] ISDN-AddressString OPTIONAL,
+ category [1] Category OPTIONAL,
+ basicService BasicServiceCode OPTIONAL,
+ operatorSS-Code [4] SEQUENCE ( SIZE( 1 .. 16 ) ) OF
+ OCTET STRING ( SIZE ( 1 ) ) OPTIONAL,
+ ...
+}
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in ITU-T Rec Q.763.
+
+-- Special stuff from older spec's
+--ForwardSM OPERATION
+-- ARGUMENT
+ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DAold,
+ sm-RP-OA SM-RP-OAold,
+ sm-RP-UI SignalInfo,
+ moreMessagesToSend NULL OPTIONAL,
+ ... }
+-- In fact, the 3GPP uses SignalInfo instead, but it is used for SMS content decoding
+--Sm-RP-UI ::= OCTET STRING ( SIZE( 1 .. 200 ) )
+-- Must be locally defined as they are not exported from SM-datatypes
+SM-RP-DAold ::= CHOICE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI,
+ serviceCentreAddressDA [4] AddressString,
+ noSM-RP-DA [5] NULL}
+
+SM-RP-OAold ::= CHOICE {
+ msisdn [2] ISDN-AddressString,
+ serviceCentreAddressOA [4] AddressString,
+ noSM-RP-OA [5] NULL}
+
+-- Private extensions
+accessType-id OBJECT IDENTIFIER ::=
+ {1 3 12 2 1107 3 66 1 1}
+
+ --iso (1)
+ --identified-organization (3)
+ --ecma (12)
+ --member-company (2)
+ --siemens-units (1107)
+ --oen (3)
+ --mn (66)
+ --proprietary-extensions (1)
+ --accessType (1)
+
+accessTypeNotAllowed-id OBJECT IDENTIFIER ::=
+ {1 3 12 2 1107 3 66 1 2}
+
+ --iso (1)
+ --identified-organization (3)
+ --ecma (12)
+ --member-company (2)
+ --siemens-units (1107)
+ --oen (3)
+ --mn (66)
+ --proprietary-extensions (1)
+ --accessTypeNotAllowed (2)
+
+SendRoutingInfoArgV2 ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ cug-CheckInfo [1] CUG-CheckInfo OPTIONAL,
+-- cug-CheckInfo must be absent in version 1
+ numberOfForwarding [2] NumberOfForwarding OPTIONAL,
+ networkSignalInfo [10] ExternalSignalInfo OPTIONAL,
+ ...
+ }
+
+SendRoutingInfoResV2 ::= SEQUENCE {
+ imsi IMSI,
+ routingInfo RoutingInfo,
+ cug-CheckInfo CUG-CheckInfo OPTIONAL,
+-- cug-CheckInfo must be absent in version 1
+ ...
+ }
+
+-- Removed from SS-DataTypes.asn in Rel 9.0.0
+BeginSubscriberActivityArg ::= SEQUENCE {
+ imsi IMSI,
+ originatingEntityNumber ISDN-AddressString,
+ msisdn [PRIVATE 28] AddressString OPTIONAL,
+ ... }
+
+RoutingInfoForSM-ArgV1 ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ sm-RP-PRI [1] BOOLEAN,
+ serviceCentreAddress [2] AddressString,
+ -- WS specific change to be backwards compatible with phase 1 (See Bug 9704)
+ cug-Interlock [3] CUG-Interlock OPTIONAL,
+ teleserviceCode [5] TeleserviceCode OPTIONAL,
+ -- END Ws specific change
+ --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-deliveryNotIntended [10] SM-DeliveryNotIntended OPTIONAL,
+ --ip-sm-gwGuidanceIndicator [11] NULL OPTIONAL,
+ imsi [12] IMSI OPTIONAL --,
+ --t4-Trigger-Indicator [14] NULL OPTIONAL,
+ --singleAttemptDelivery [13] NULL OPTIONAL,
+ --correlationID [15] CorrelationID OPTIONAL
+ }
+
+-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6
+RoutingInfoForSM-ResV2::= SEQUENCE {
+ imsi IMSI,
+ locationInfoWithLMSI [0] LocationInfoWithLMSIv2,
+ mwd-Set [2] BOOLEAN OPTIONAL,
+ -- mwd-Set must be absent in version greater 1
+ ...}
+
+-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6
+LocationInfoWithLMSIv2 ::= SEQUENCE {
+ locationInfo LocationInfo,
+ lmsi LMSI OPTIONAL,
+ ...}
+
+-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6
+LocationInfo ::= CHOICE {
+ roamingNumber [0] ISDN-AddressString,
+ -- roamingNumber must not be used in version greater 1
+ msc-Number [1] ISDN-AddressString}
+
+Ki ::= OCTET STRING (SIZE (16))
+
+SendParametersArg ::= SEQUENCE {
+ subscriberId SubscriberIdentity,
+ requestParameterList RequestParameterList}
+
+RequestParameter ::= ENUMERATED {
+ requestIMSI (0),
+ requestAuthenticationSet (1),
+ requestSubscriberData (2),
+ requestKi (4)}
+
+RequestParameterList ::= SEQUENCE SIZE (1..2) OF
+ RequestParameter
+
+SentParameter ::= CHOICE {
+ imsi [0] IMSI,
+ authenticationSet [1] AuthenticationSetList,
+ subscriberData [2] SubscriberData,
+ ki [4] Ki}
+
+maxNumOfSentParameter INTEGER ::= 6
+ -- This NamedValue corresponds to the maximum number of
+ -- authentication set which may be returned by a HLR plus 1
+
+SentParameterList ::= SEQUENCE SIZE (1..maxNumOfSentParameter) OF
+ SentParameter
+
+
+sendParameters OPERATION ::= {
+ ARGUMENT
+ SendParametersArg
+ RESULT
+ SentParameterList
+ -- optional
+ -- nothing is returned, if no requested parameter is
+ -- available or exists
+ ERRORS {
+ UnexpectedDataValue,
+ UnknownSubscriber,
+ UnidentifiedSubscriber}
+ CODE local:9 }
+
+END
+
diff --git a/epan/dissectors/asn1/gsm_map/MAP-ApplicationContexts.asn b/epan/dissectors/asn1/gsm_map/MAP-ApplicationContexts.asn
new file mode 100644
index 0000000000..fac0720c9e
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-ApplicationContexts.asn
@@ -0,0 +1,204 @@
+--17.3.3 ASN.1 Module for application-context-names
+--The following ASN.1 module summarises the application-context-name assigned to MAP application-contexts.
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+
+MAP-ApplicationContexts {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ApplicationContexts (2) version16 (16)}
+
+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-v3 OBJECT IDENTIFIER ::=
+ {map-ac reset(10) version3(3)}
+
+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)}
+
+shortMsgMT-Relay-VGCS-Context-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMT-Relay-VGCS(41) 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)}
+
+groupCallInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac groupCallInfoRetrieval(45) 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)}
+
+resourceManagementContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac resourceManagement(44) version3(3)}
+
+vcsgLocationUpdateContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac vcsgLocationUpdate(46) version3(3)}
+
+vcsgLocationCancellationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac vcsgLocationCancel(47) 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)
+-- resetContext-v2 map-ac reset (10) version2 (2)
+-- 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/epan/dissectors/asn1/gsm_map/MAP-BS-Code.asn b/epan/dissectors/asn1/gsm_map/MAP-BS-Code.asn
new file mode 100644
index 0000000000..bb8cc76b3a
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-BS-Code.asn
@@ -0,0 +1,129 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.7.10 Bearer Service Codes
+
+MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version16 (16)}
+
+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/epan/dissectors/asn1/gsm_map/MAP-CH-DataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-CH-DataTypes.asn
new file mode 100644
index 0000000000..1705740d43
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-CH-DataTypes.asn
@@ -0,0 +1,479 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.7.3 Call handling data types
+
+MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version16 (16)}
+
+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,
+UU-Data,
+ReleaseResourcesArg,
+ReleaseResourcesRes,
+--- WS added exports needed by gsm_map.asn (extra asn1 file to handle older protocol versions)
+RoutingInfo,
+CUG-CheckInfo
+;
+
+IMPORTS
+ SubscriberInfo,
+ SupportedCamelPhases,
+ OfferedCamel4CSIs,
+ CUG-Interlock,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ IST-SupportIndicator,
+ IST-AlertTimerValue,
+ T-CSI,
+ NumberPortabilityStatus,
+ PagingArea
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version16 (16)}
+
+ 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) version16 (16)}
+
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ IMSI,
+ LMSI,
+ Ext-BasicServiceCode,
+ AlertingPattern,
+ NAEA-PreferredCI,
+ EMLPP-Priority,
+ PLMN-Id
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+;
+
+
+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,
+ suppressMTSS [27] SuppressMTSS OPTIONAL,
+ mtRoamingRetrySupported [28] NULL OPTIONAL,
+ callPriority [29] EMLPP-Priority OPTIONAL
+ }
+
+SuppressionOfAnnouncement ::= NULL
+
+SuppressMTSS ::= BIT STRING {
+ suppressCUG (0),
+ suppressCCBS (1) } (SIZE (2..16))
+ -- Other bits than listed above shall be discarded
+
+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,
+ releaseResourcesSupported [22] NULL OPTIONAL,
+ gsm-BearerCapability [23] ExternalSignalInfo 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,
+ mtRoamingRetrySupported [21] NULL OPTIONAL,
+ pagingArea [22] PagingArea OPTIONAL,
+ callPriority [23] EMLPP-Priority OPTIONAL,
+ mtrf-Indicator [24] NULL OPTIONAL,
+ oldMSC-Number [25] ISDN-AddressString OPTIONAL,
+ lastUsedLtePLMN-Id [26] PLMN-Id OPTIONAL
+ }
+
+ProvideRoamingNumberRes ::= SEQUENCE {
+ roamingNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ releaseResourcesSupported NULL OPTIONAL,
+ vmsc-Address ISDN-AddressString 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,
+ mtRoamingRetry [15] NULL 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 '
+
+ReleaseResourcesArg ::= SEQUENCE{
+ msrn ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ReleaseResourcesRes ::= SEQUENCE{
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-CallHandlingOperations.asn b/epan/dissectors/asn1/gsm_map/MAP-CallHandlingOperations.asn
new file mode 100644
index 0000000000..a2de091991
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-CallHandlingOperations.asn
@@ -0,0 +1,214 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+--17.6.3 Call Handling Operations
+MAP-CallHandlingOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CallHandlingOperations (7)
+ version16 (16)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ sendRoutingInfo,
+ provideRoamingNumber,
+ resumeCallHandling,
+ setReportingState,
+ statusReport,
+ remoteUserFree,
+ ist-Alert,
+ ist-Command,
+ releaseResources
+;
+
+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) version16 (16)}
+ SendRoutingInfoArg,
+ SendRoutingInfoRes,
+ ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes,
+ ResumeCallHandlingArg,
+ ResumeCallHandlingRes,
+ SetReportingStateArg,
+ SetReportingStateRes,
+ StatusReportArg,
+ StatusReportRes,
+ RemoteUserFreeArg,
+ RemoteUserFreeRes,
+ IST-AlertArg,
+ IST-AlertRes,
+ IST-CommandArg,
+ IST-CommandRes,
+ ReleaseResourcesArg,
+ ReleaseResourcesRes
+FROM MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version16 (16)}
+
+;
+
+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 }
+
+releaseResources OPERATION::= { --Timer m
+ ARGUMENT
+ ReleaseResourcesArg
+ RESULT
+ ReleaseResourcesRes
+ -- optional
+ ERRORS {
+ unexpectedDataValue |
+ systemFailure }
+ CODE local:20 }
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-CommonDataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..d7206842d1
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-CommonDataTypes.asn
@@ -0,0 +1,666 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.7.8 Common data types
+
+MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+
+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,
+ DiameterIdentity,
+ Time,
+ HLR-Id,
+
+ -- data types for numbering and identification
+ IMSI,
+ TMSI,
+ Identity,
+ SubscriberId,
+ IMEI,
+ HLR-List,
+ LMSI,
+ GlobalCellId,
+ NetworkResource,
+ AdditionalNetworkResource,
+ NAEA-PreferredCI,
+ NAEA-CIC,
+ ASCI-CallReference,
+ SubscriberIdentity,
+ PLMN-Id,
+ E-UTRAN-CGI,
+ TA-Id,
+ RAIdentity,
+ NetworkNodeDiameterAddress,
+
+ -- 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,
+-- WS added exports needed by gsm_map.asn (extra asn1 file to handle older protocol versions)
+ ProtocolId,
+ -- gprs location registration types
+ GSN-Address
+
+;
+
+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) version16 (16)}
+
+ 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) version16 (16)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+;
+
+
+-- 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
+
+DiameterIdentity ::= OCTET STRING (SIZE(9..255))
+-- content of DiameterIdentity is defined in IETF RFC 3588 [139]
+
+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.
+ -- 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
+
+GSN-Address ::= OCTET STRING (SIZE (5..17))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+Time ::= OCTET STRING (SIZE (4))
+ -- Octets are coded according to IETF RFC 3588 [139]
+
+
+-- 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/VBS-area,Group-ID are concatenated in this order if there is a
+ -- VGCS/VBS-area.
+
+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),
+ ... ,
+ ue (6),
+ mme (7)}
+ -- 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
+
+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
+
+E-UTRAN-CGI ::= OCTET STRING (SIZE (7))
+ -- Octets are coded as described in 3GPP TS 29.118.
+
+TA-Id ::= OCTET STRING (SIZE (5))
+ -- Octets are coded as described in 3GPP TS 29.118.
+
+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.
+
+NetworkNodeDiameterAddress::= SEQUENCE {
+ diameter-Name [0] DiameterIdentity,
+ diameter-Realm [1] DiameterIdentity }
+
+-- 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 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 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/epan/dissectors/asn1/gsm_map/MAP-DialogueInformation.asn b/epan/dissectors/asn1/gsm_map/MAP-DialogueInformation.asn
new file mode 100644
index 0000000000..070cb82580
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-DialogueInformation.asn
@@ -0,0 +1,131 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.4 MAP Dialogue Information
+
+MAP-DialogueInformation {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-DialogueInformation (3) version16 (16)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ map-DialogueAS,
+ MAP-DialoguePDU
+
+;
+
+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) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+
+
+;
+
+
+-- 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,
+-- WS modification: Ericsson proprietary fields
+ callingMsisdn [2] AddressString OPTIONAL,
+ callingVlrAddress [3] AddressString OPTIONAL,
+-- WS modification: Ericsson proprietary fields
+ ...,
+ 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)}
+
+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)}
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-ER-DataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-ER-DataTypes.asn
new file mode 100644
index 0000000000..f087372c97
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-ER-DataTypes.asn
@@ -0,0 +1,432 @@
+-- 3GPP TS V13.2.0 (2015-12)
+-- 17.7.7 Error data types
+
+MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version16 (16)}
+
+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,
+ATSI-NotAllowedParam,
+ATM-NotAllowedParam,
+IllegalSS-OperationParam,
+SS-NotAvailableParam,
+SS-SubscriptionViolationParam,
+InformationNotAvailableParam,
+TargetCellOutsideGCA-Param,
+OngoingGroupCallParam,
+PositionMethodFailure-Diagnostic,
+UnauthorizedLCSClient-Diagnostic
+
+;
+
+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) version16 (16)}
+
+ SignalInfo,
+ BasicServiceCode,
+ NetworkResource,
+ AdditionalNetworkResource,
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+;
+
+RoamingNotAllowedParam ::= SEQUENCE {
+ roamingNotAllowedCause RoamingNotAllowedCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalRoamingNotAllowedCause [0] AdditionalRoamingNotAllowedCause OPTIONAL }
+
+-- if the additionalRoamingNotallowedCause is received by the MSC/VLR or SGSN then the
+-- roamingNotAllowedCause shall be discarded.
+
+AdditionalRoamingNotAllowedCause ::= ENUMERATED {
+ supportedRAT-TypesNotAllowed (0),
+ ...}
+
+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,
+ anonymousCallRejection [2] NULL OPTIONAL }
+
+-- unauthorisedMessageOriginator and anonymousCallRejection shall be mutually exclusive.
+
+
+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
+ imsi [1] IMSI OPTIONAL}
+ -- when sent from HLR to IP-SM-GW, IMSI shall be present if UNRI is not set
+ -- to indicate that the absent condition is met for CS and PS but not for IMS.
+
+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,
+ failureCauseParam [1] FailureCauseParam OPTIONAL }
+
+FailureCauseParam ::= ENUMERATED {
+ limitReachedOnNumberOfConcurrentLocationRequests (0),
+ ... }
+ -- if unknown value is received in FailureCauseParam it shall be ignored
+
+
+DataMissingParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnexpectedDataParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unexpectedSubscriber [0] NULL OPTIONAL}
+-- the unexpectedSubscriber indication in the unexpectedDataValue error shall not be used
+-- for operations that allow the unidentifiedSubscriber error.
+
+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),
+ gprs-eps-SubscriptionUnknown (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),
+ mtRoamingRetry (4),
+ busySubscriber (5)}
+-- 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
+-- The AbsentSubscriberReason: mtRoamingRetry is used during MT Roaming Retry,
+-- see 3GPP TS 23.018[97].
+-- The AbsentSubscriberReason: busySubscriber is used during MT Roaming Forwarding,
+-- see 3GPP TS 23.018[97].
+
+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,
+ ...}
+
+OngoingGroupCallParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-Errors.asn b/epan/dissectors/asn1/gsm_map/MAP-Errors.asn
new file mode 100644
index 0000000000..6a2df2dade
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-Errors.asn
@@ -0,0 +1,508 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.6.6 Errors
+
+MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version16 (16)}
+
+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,
+ ongoingGroupCall,
+
+ -- location service errors
+ unauthorizedRequestingNetwork,
+ unauthorizedLCSClient,
+ positionMethodFailure,
+ unknownOrUnreachableLCSClient,
+
+ -- Mobility Management errors
+ mm-EventNotSupported
+
+
+;
+
+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) version16 (16)}
+
+ 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,
+OngoingGroupCallParam
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version16 (16)}
+;
+
+-- 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 }
+
+ongoingGroupCall ERROR ::= {
+ PARAMETER
+ OngoingGroupCallParam
+ -- optional
+ CODE local:22 }
+
+-- 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 }
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-ExtensionDataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000000..5f1860468a
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,72 @@
+-- MAP-ExtensionDataTypes.asn
+--
+-- Taken from 3GPP TS 29.002 V13.2.0 (2015-12)
+--
+-- 17.7.11 Extension data types
+--
+
+MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+
+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/epan/dissectors/asn1/gsm_map/MAP-GR-DataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-GR-DataTypes.asn
new file mode 100644
index 0000000000..a53eecc803
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-GR-DataTypes.asn
@@ -0,0 +1,197 @@
+-- Taken from 3GPP TS 29.002 V13.2.0 (2015-12)
+--
+--17.7.12 Group Call data types
+
+MAP-GR-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-GR-DataTypes (23) version16 (16)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ PrepareGroupCallArg,
+ PrepareGroupCallRes,
+ SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes,
+ ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg,
+ SendGroupCallInfoArg,
+ SendGroupCallInfoRes
+;
+
+IMPORTS
+ ISDN-AddressString,
+ IMSI,
+ TMSI,
+ EMLPP-Priority,
+ ASCI-CallReference,
+ SignalInfo,
+ GlobalCellId,
+ AccessNetworkSignalInfo
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version16 (16)}
+
+ Kc,
+ AdditionalInfo,
+ GroupId,
+Long-GroupId,
+ AdditionalSubscriptions,
+ Cksn
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+;
+
+
+PrepareGroupCallArg ::= SEQUENCE {
+ teleservice Ext-TeleserviceCode,
+ asciCallReference ASCI-CallReference,
+ codec-Info CODEC-Info,
+ cipheringAlgorithm CipheringAlgorithm,
+ groupKeyNumber-Vk-Id [0] GroupKeyNumber OPTIONAL,
+ groupKey [1] Kc OPTIONAL,
+ -- this parameter shall not be sent and shall be discarded if received
+ priority [2] EMLPP-Priority OPTIONAL,
+ uplinkFree [3] NULL OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ vstk [5] VSTK OPTIONAL,
+ vstk-rand [6] VSTK-RAND OPTIONAL,
+ talkerChannelParameter [7] NULL OPTIONAL,
+ uplinkReplyIndicator [8] NULL OPTIONAL}
+
+VSTK ::= OCTET STRING (SIZE (16))
+
+VSTK-RAND ::= OCTET STRING (SIZE (5))
+ -- The 36 bit value is carried in bit 7 of octet 1 to bit 4 of octet 5
+ -- bits 3, 2, 1, and 0 of octet 5 are padded with zeros.
+
+PrepareGroupCallRes ::= SEQUENCE {
+ groupCallNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ talkerPriority [0]TalkerPriority OPTIONAL,
+ additionalInfo [1]AdditionalInfo OPTIONAL }
+
+TalkerPriority ::= ENUMERATED {
+ normal (0),
+ privileged (1),
+ emergency (2)}
+
+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,
+ talkerPriority [6] TalkerPriority OPTIONAL,
+ additionalInfo [7] AdditionalInfo OPTIONAL,
+ emergencyModeResetCommandFlag [8] NULL OPTIONAL,
+ sm-RP-UI [9] SignalInfo OPTIONAL,
+ an-APDU [10] AccessNetworkSignalInfo OPTIONAL
+ }
+
+ProcessGroupCallSignallingArg ::= SEQUENCE {
+ uplinkRequest [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ releaseGroupCall [2] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ talkerPriority [3] TalkerPriority OPTIONAL,
+ additionalInfo [4] AdditionalInfo OPTIONAL,
+ emergencyModeResetCommandFlag [5] NULL OPTIONAL,
+ an-APDU [6] AccessNetworkSignalInfo 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.
+
+
+SendGroupCallInfoArg ::= SEQUENCE {
+ requestedInfo RequestedInfo,
+ groupId Long-GroupId,
+ teleservice Ext-TeleserviceCode,
+ cellId [0] GlobalCellId OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ tmsi [2] TMSI OPTIONAL,
+ additionalInfo [3] AdditionalInfo OPTIONAL,
+ talkerPriority [4] TalkerPriority OPTIONAL,
+ cksn [5] Cksn OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ... }
+
+RequestedInfo ::= ENUMERATED {
+ anchorMSC-AddressAndASCI-CallReference (0),
+ imsiAndAdditionalInfoAndAdditionalSubscription (1),
+ ... }
+-- exception handling:
+-- an unrecognized value shall be rejected by the receiver with a return error cause of
+-- unexpected data value
+
+SendGroupCallInfoRes ::= SEQUENCE {
+ anchorMSC-Address [0] ISDN-AddressString OPTIONAL,
+ asciCallReference [1] ASCI-CallReference OPTIONAL,
+ imsi [2] IMSI OPTIONAL,
+ additionalInfo [3] AdditionalInfo OPTIONAL,
+ additionalSubscriptions [4] AdditionalSubscriptions OPTIONAL,
+ kc [5] Kc OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ... }
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-Group-Call-Operations.asn b/epan/dissectors/asn1/gsm_map/MAP-Group-Call-Operations.asn
new file mode 100644
index 0000000000..916cb47f6f
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-Group-Call-Operations.asn
@@ -0,0 +1,97 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.6.7 Group Call operations
+
+MAP-Group-Call-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Group-Call-Operations (22)
+ version16 (16)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ prepareGroupCall,
+ sendGroupCallEndSignal,
+ forwardGroupCallSignalling,
+ processGroupCallSignalling,
+ sendGroupCallInfo
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ unexpectedDataValue,
+ noGroupCallNumberAvailable,
+ ongoingGroupCall,
+ unknownSubscriber,
+ teleserviceNotProvisioned,
+ dataMissing
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version16 (16)}
+
+ PrepareGroupCallArg,
+ PrepareGroupCallRes,
+ SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes,
+ ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg,
+ SendGroupCallInfoArg,
+ SendGroupCallInfoRes
+FROM MAP-GR-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-GR-DataTypes (23) version16 (16)}
+
+;
+
+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 }
+
+sendGroupCallInfo OPERATION ::= { --Timer m
+ ARGUMENT
+ SendGroupCallInfoArg
+ RESULT
+ SendGroupCallInfoRes
+ ERRORS {
+ systemFailure |
+ ongoingGroupCall |
+ unexpectedDataValue |
+ dataMissing |
+ teleserviceNotProvisioned |
+ unknownSubscriber}
+ CODE local:84 }
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-LCS-DataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-LCS-DataTypes.asn
new file mode 100644
index 0000000000..b21c2cf952
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-LCS-DataTypes.asn
@@ -0,0 +1,712 @@
+-- MAP-LCS-DataTypes.asn
+--
+-- Taken from 3GPP TS 29.002 V13.2.0 (2015-12)
+--
+-- 17.7.13 Location service data types
+--
+
+MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version16 (16)}
+
+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,
+VelocityEstimate,
+SupportedGADShapes,
+Add-GeographicalInformation,
+LCSRequestorID,
+LCS-ReferenceNumber,
+LCSCodeword,
+AreaEventInfo,
+ReportingPLMNList,
+PeriodicLDRInfo,
+SequenceNumber,
+LCSClientType,
+LCS-Priority
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ IMEI,
+ IMSI,
+ LMSI,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+LCSServiceTypeID,
+CellGlobalIdOrServiceAreaIdOrLAI,
+PLMN-Id,
+ GSN-Address,
+ DiameterIdentity
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+
+ ExtensionContainer,
+ SLR-ArgExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+
+ 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) version16 (16)}
+
+ APN,
+ SupportedLCS-CapabilitySets
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version16 (16)}
+
+ Additional-Number
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version16 (16)}
+;
+
+
+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 msc-number, sgsn-number or a dummy value of "0"
+ 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,
+ mme-Name [6] DiameterIdentity OPTIONAL,
+ aaa-Server-Name [8] DiameterIdentity OPTIONAL,
+ sgsn-Name [9] DiameterIdentity OPTIONAL,
+ sgsn-Realm [10] DiameterIdentity 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,
+ mo-lrShortCircuitIndicator [16] NULL OPTIONAL,
+ periodicLDRInfo [17] PeriodicLDRInfo OPTIONAL,
+ reportingPLMNList [18] ReportingPLMNList 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) ,
+ notificationVerificationOnly (5) }
+-- 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) ,
+ periodicLDR (4) } (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,
+ ...,
+ velocityRequest [5] NULL 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),
+ ...,
+ utranCellId (5) }
+
+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) for Local Area Id,
+ -- Routing Area Id and Cell Global Id
+ -- octet 6 Routing Area Code (RAC) for Routing Area Id
+ -- octets 6 and 7 Cell Identity (CI) for Cell Global Id
+ -- octets 4 until 7 Utran Cell Identity (UC-Id) for Utran Cell Id
+
+OccurrenceInfo ::= ENUMERATED {
+ oneTimeEvent (0),
+ multipleTimeEvent (1),
+ ...}
+
+IntervalTime ::= INTEGER (1..32767)
+ -- minimum interval time between area reports in seconds
+
+PeriodicLDRInfo ::= SEQUENCE {
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval,
+ ...}
+-- reportingInterval x reportingAmount shall not exceed 8639999 (99 days, 23 hours,
+-- 59 minutes and 59 seconds) for compatibility with OMA MLP and RLP
+
+ReportingAmount ::= INTEGER (1..maxReportingAmount)
+
+maxReportingAmount INTEGER ::= 8639999
+
+ReportingInterval ::= INTEGER (1..maxReportingInterval)
+-- ReportingInterval is in seconds
+
+maxReportingInterval INTEGER ::= 8639999
+
+ReportingPLMNList::= SEQUENCE {
+ plmn-ListPrioritized [0] NULL OPTIONAL,
+ plmn-List [1] PLMNList,
+ ...}
+
+PLMNList::= SEQUENCE SIZE (1..maxNumOfReportingPLMN) OF
+ ReportingPLMN
+
+maxNumOfReportingPLMN INTEGER ::= 20
+
+ReportingPLMN::= SEQUENCE {
+ plmn-Id [0] PLMN-Id,
+ ran-Technology [1] RAN-Technology OPTIONAL,
+ ran-PeriodicLocationSupport [2] NULL OPTIONAL,
+ ...}
+
+RAN-Technology ::= ENUMERATED {
+ gsm (0),
+ umts (1),
+ ...}
+
+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,
+ accuracyFulfilmentIndicator [8] AccuracyFulfilmentIndicator OPTIONAL,
+ velocityEstimate [9] VelocityEstimate OPTIONAL,
+ mo-lrShortCircuitIndicator [10] NULL OPTIONAL,
+ geranGANSSpositioningData [11] GeranGANSSpositioningData OPTIONAL,
+ utranGANSSpositioningData [12] UtranGANSSpositioningData OPTIONAL, targetServingNodeForHandover [13] ServingNodeAddress OPTIONAL,
+ utranAdditionalPositioningData [14] UtranAdditionalPositioningData OPTIONAL,
+ utranBaroPressureMeas [15] UtranBaroPressureMeas OPTIONAL,
+ utranCivicAddress [16] UtranCivicAddress 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.
+
+AccuracyFulfilmentIndicator ::= ENUMERATED {
+ requestedAccuracyFulfilled (0),
+ requestedAccuracyNotFulfilled (1),
+ ... }
+
+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
+
+VelocityEstimate ::= OCTET STRING (SIZE (4..7))
+ -- Refers to Velocity description defined in 3GPP TS 23.032.
+ -- This is composed of 4 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of velocity, only the following types in 3GPP TS 23.032 are allowed:
+ -- (a) Horizontal Velocity
+ -- (b) Horizontal with Vertical Velocity
+ -- (c) Horizontal Velocity with Uncertainty
+ -- (d) Horizontal with Vertical Velocity and Uncertainty
+ -- For types Horizontal with Vertical Velocity and Horizontal with Vertical Velocity
+ -- and Uncertainty, the direction of the Vertical Speed is also included in Octet 1
+ -- Any other value in octet 1 shall be treated as invalid
+ -- Octets 2 to 4 for case (a) Horizontal velocity:
+ -- Bearing 1 octet
+ -- Horizontal Speed 2 octets
+ -- Octets 2 to 5 for case (b) Horizontal with Vertical Velocity:
+ -- Bearing 1 octet
+ -- Horizontal Speed 2 octets
+ -- Vertical Speed 1 octet
+ -- Octets 2 to 5 for case (c) Horizontal velocity with Uncertainty:
+ -- Bearing 1 octet
+ -- Horizontal Speed 2 octets
+ -- Uncertainty Speed 1 octet
+ -- Octets 2 to 7 for case (d) Horizontal with Vertical Velocity and Uncertainty:
+ -- Bearing 1 octet
+ -- Horizontal Speed 2 octets
+ -- Vertical Speed 1 octet
+ -- Horizontal Uncertainty Speed 1 octet
+ -- Vertical Uncertainty Speed 1 octet
+
+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
+ --
+
+GeranGANSSpositioningData ::= OCTET STRING (SIZE (2..maxGeranGANSSpositioningData))
+ -- Refers to the GANSS 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.
+
+maxGeranGANSSpositioningData INTEGER ::= 10
+ --
+
+UtranGANSSpositioningData ::= OCTET STRING (SIZE (1..maxUtranGANSSpositioningData))
+ -- Refers to the Position Data defined in 3GPP TS 25.413.
+ -- This is composed of the GANSS-PositioningDataSet only, included in PositionData
+ -- as defined in 3GPP TS 25.413.
+
+maxUtranGANSSpositioningData INTEGER ::= 9
+ --
+
+UtranAdditionalPositioningData ::= OCTET STRING (SIZE (1..maxUtranAdditionalPositioningData))
+ -- Refers to the Position Data defined in 3GPP TS 25.413.
+ -- This is composed of the Additional-PositioningDataSet only, included in PositionData
+ -- as defined in 3GPP TS 25.413.
+
+maxUtranAdditionalPositioningData INTEGER ::= 8
+ --
+
+UtranBaroPressureMeas ::= INTEGER (30000..115000)
+ -- Refers to the barometric pressure measurement defined in 3GPP TS 25.413.
+ -- This is composed of the BarometricPressureMeasurement only as defined in 3GPP TS
+ -- 25.413.
+
+UtranCivicAddress ::= OCTET STRING
+ -- Refers to the civic address defined in 3GPP TS 25.413.
+ -- This is composed of the CivicAddress only as defined in 3GPP TS 25.413.
+
+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,
+ slr-ArgExtensionContainer [7] SLR-ArgExtensionContainer 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,
+ cellIdOrSai [13] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ h-gmlc-Address [14] GSN-Address OPTIONAL,
+ lcsServiceTypeID [15] LCSServiceTypeID OPTIONAL,
+ sai-Present [17] NULL OPTIONAL,
+ pseudonymIndicator [18] NULL OPTIONAL,
+ accuracyFulfilmentIndicator [19] AccuracyFulfilmentIndicator OPTIONAL,
+ velocityEstimate [20] VelocityEstimate OPTIONAL,
+ sequenceNumber [21] SequenceNumber OPTIONAL,
+ periodicLDRInfo [22] PeriodicLDRInfo OPTIONAL,
+ mo-lrShortCircuitIndicator [23] NULL OPTIONAL,
+ geranGANSSpositioningData [24] GeranGANSSpositioningData OPTIONAL,
+ utranGANSSpositioningData [25] UtranGANSSpositioningData OPTIONAL,
+ targetServingNodeForHandover [26] ServingNodeAddress OPTIONAL,
+ utranAdditionalPositioningData [27] UtranAdditionalPositioningData OPTIONAL,
+ utranBaroPressureMeas [28] UtranBaroPressureMeas OPTIONAL,
+ utranCivicAddress [29] UtranCivicAddress 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) ,
+ deferredmo-lrTTTPInitiation (4),
+ emergencyCallHandover (5) }
+ -- deferredmt-lrResponse is applicable to the delivery of a location estimate
+ -- for an LDR initiated earlier by either the network (via an MT-LR activate deferred
+ -- location) or the UE (via a deferred MO-LR TTTP initiation)
+ -- 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) ,
+ subscriberTermination (7),
+ uETermination (8),
+ networkTermination (9) }
+-- 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)
+
+SequenceNumber ::= INTEGER (1..maxReportingAmount)
+
+ServingNodeAddress ::= CHOICE {
+ msc-Number [0] ISDN-AddressString,
+ sgsn-Number [1] ISDN-AddressString,
+ mme-Number [2] DiameterIdentity }
+
+SubscriberLocationReport-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ na-ESRK [0] ISDN-AddressString OPTIONAL,
+ na-ESRD [1] ISDN-AddressString OPTIONAL,
+ h-gmlc-Address [2] GSN-Address OPTIONAL,
+ mo-lrShortCircuitIndicator [3] NULL OPTIONAL,
+ reportingPLMNList [4] ReportingPLMNList OPTIONAL,
+ lcs-ReferenceNumber [5] LCS-ReferenceNumber OPTIONAL }
+
+-- na-ESRK and na-ESRD are mutually exclusive
+--
+-- exception handling
+-- receipt of both na-ESRK and na-ESRD shall be treated the same as a return error
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-LocationServiceOperations.asn b/epan/dissectors/asn1/gsm_map/MAP-LocationServiceOperations.asn
new file mode 100644
index 0000000000..6971b8e703
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-LocationServiceOperations.asn
@@ -0,0 +1,106 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.6.8 Location service operations
+
+MAP-LocationServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LocationServiceOperations (24)
+ version16 (16)}
+
+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) version16 (16)}
+
+ 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) version16 (16)}
+;
+
+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/epan/dissectors/asn1/gsm_map/MAP-MS-DataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-MS-DataTypes.asn
new file mode 100644
index 0000000000..6635f7ddc9
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-MS-DataTypes.asn
@@ -0,0 +1,3375 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.7.1 Mobile Service data types
+
+MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version16 (16)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+-- WS modification: for Ericsson proprietary extensions
+ RequestedEquipmentInfo,
+-- End WS modification
+ -- location registration types
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ IST-SupportIndicator,
+ SupportedLCS-CapabilitySets,
+ UpdateVcsgLocationArg,
+ UpdateVcsgLocationRes,
+ CancelVcsgLocationArg,
+ CancelVcsgLocationRes,
+
+
+ -- 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,
+ Cksn,
+
+ -- equipment management types
+ CheckIMEI-Arg,
+ CheckIMEI-Res,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ LSAIdentity,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ Ext-QoS-Subscribed,
+ Ext2-QoS-Subscribed,
+ Ext3-QoS-Subscribed,
+ Ext4-QoS-Subscribed,
+ SubscriberData,
+ ODB-Data,
+ SubscriberStatus,
+ ZoneCodeList,
+ maxNumOfZoneCodes,
+ O-CSI,
+D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ SS-CSI,
+ ServiceKey,
+ DefaultCallHandling,
+ DefaultSMS-Handling,
+ DefaultGPRS-Handling,
+ 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,
+AdditionalInfo,
+
+ -- fault recovery types
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+
+-- provide subscriber info types
+GeographicalInformation,
+MS-Classmark2,
+GPRSMSClass,
+
+ -- subscriber information enquiry types
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ SubscriberInfo,
+ LocationInformation,
+ LocationInformationGPRS,
+ 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,
+ PagingArea,
+
+ -- VGCS / VBS types types
+GroupId,
+Long-GroupId,
+-- WS adittion
+AuthenticationSetList,
+AdditionalSubscriptions
+
+;
+
+IMPORTS
+ maxNumOfSS,
+ SS-SubscriptionOption,
+ SS-List,
+ SS-ForBS-Code,
+ Password,
+ OverrideCategory,
+ CliRestrictionOption
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version16 (16)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version16 (16)}
+
+ Ext-BearerServiceCode
+FROM MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version16 (16)}
+
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version16 (16)}
+
+ 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,
+ LAIFixedLength,
+ PLMN-Id,
+EMLPP-Priority,
+GSN-Address,
+DiameterIdentity,
+Time,
+E-UTRAN-CGI,
+TA-Id,
+RAIdentity,
+NetworkNodeDiameterAddress
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+
+ AbsentSubscriberDiagnosticSM
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version16 (16)}
+
+ TracePropagationList
+FROM MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version16 (16)}
+
+;
+
+-- 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,
+ pagingArea [14] PagingArea OPTIONAL,
+ skipSubscriberDataUpdate [15] NULL OPTIONAL,
+ -- The skipSubscriberDataUpdate parameter in the UpdateLocationArg and the ADD-Info
+ -- structures carry the same semantic.
+ restorationIndicator [16] NULL OPTIONAL,
+ eplmn-List [3] EPLMN-List OPTIONAL,
+ mme-DiameterAddress [4] NetworkNodeDiameterAddress 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,
+ supportedRAT-TypesIndicator [7] SupportedRAT-Types OPTIONAL,
+ longGroupID-Supported [8] NULL OPTIONAL,
+ mtRoamingForwardingSupported [9] NULL OPTIONAL,
+ msisdn-lessOperation-Supported [10] NULL OPTIONAL }
+
+SupportedRAT-Types::= BIT STRING {
+ utran (0),
+ geran (1),
+ gan (2),
+ i-hspa-evolution (3),
+ e-utran (4)} (SIZE (2..8))
+ -- exception handling: bits 5 to 7 shall be ignored if received and not understood
+
+
+
+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) ,
+ lcsCapabilitySet5 (4) } (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.
+-- Core network signalling capability set5 indicates LCS Release7 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,
+ pagingArea-Capability [0]NULL OPTIONAL }
+
+ADD-Info ::= SEQUENCE {
+ imeisv [0] IMEI,
+ skipSubscriberDataUpdate [1] NULL OPTIONAL,
+ -- The skipSubscriberDataUpdate parameter in the UpdateLocationArg and the ADD-Info
+ -- structures carry the same semantic.
+ ...}
+
+
+PagingArea ::= SEQUENCE SIZE (1..5) OF LocationArea
+
+
+LocationArea ::= CHOICE {
+ laiFixedLength [0] LAIFixedLength,
+ lac [1] LAC}
+
+
+LAC ::= OCTET STRING (SIZE (2))
+ -- Refers to Location Area Code of the Location Area Identification defined in
+ -- 3GPP TS 23.003 [17].
+ -- Location Area Code according to 3GPP TS 24.008 [35]
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Identity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ typeOfUpdate [0] TypeOfUpdate OPTIONAL,
+ mtrf-SupportedAndAuthorized [1] NULL OPTIONAL,
+ mtrf-SupportedAndNotAuthorized [2] NULL OPTIONAL,
+ newMSC-Number [3] ISDN-AddressString OPTIONAL,
+ newVLR-Number [4] ISDN-AddressString OPTIONAL,
+ new-lmsi [5] LMSI OPTIONAL,
+ reattach-Required [6] NULL OPTIONAL
+ }
+ --mtrf-SupportedAndAuthorized and mtrf-SupportedAndNotAuthorized shall not
+ -- both be present
+
+TypeOfUpdate ::= ENUMERATED {
+ sgsn-change (0),
+ mme-change (1),
+ ...}
+ -- TypeOfUpdate shall be absent if CancellationType is different from updateProcedure
+ -- and initialAttachProcedure
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...,
+ initialAttachProcedure (2)}
+ -- 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,
+ ...,
+ locationInformation [2] LocationInformation OPTIONAL,
+ locationInformationGPRS [3] LocationInformationGPRS OPTIONAL,
+ locationInformationEPS [4] LocationInformationEPS OPTIONAL }
+
+PurgeMS-Res ::= SEQUENCE {
+ freezeTMSI [0] NULL OPTIONAL,
+ freezeP-TMSI [1] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ freezeM-TMSI [2] NULL 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,
+ previous-LAI [0] LAIFixedLength OPTIONAL,
+ hopCounter [1] HopCounter OPTIONAL,
+ mtRoamingForwardingSupported [2] NULL OPTIONAL,
+ newVLR-Number [3] ISDN-AddressString OPTIONAL,
+ new-lmsi [4] LMSI OPTIONAL }
+
+HopCounter ::= INTEGER (0..3)
+
+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,
+ ...,
+ lastUsedLtePLMN-Id [4] PLMN-Id OPTIONAL,
+ mtCallPendingFlag [5] NULL 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,
+ eps-info [5] EPS-Info OPTIONAL,
+ servingNodeTypeIndicator [6] NULL OPTIONAL,
+ skipSubscriberDataUpdate [7] NULL OPTIONAL,
+ usedRAT-Type [8] Used-RAT-Type OPTIONAL,
+ gprsSubscriptionDataNotNeeded [9] NULL OPTIONAL,
+ nodeTypeIndicator [10] NULL OPTIONAL,
+ areaRestricted [11] NULL OPTIONAL,
+ ue-reachableIndicator [12] NULL OPTIONAL,
+ epsSubscriptionDataNotNeeded [13] NULL OPTIONAL,
+ ue-srvcc-Capability [14] UE-SRVCC-Capability OPTIONAL,
+ eplmn-List [15] EPLMN-List OPTIONAL,
+ mmeNumberforMTSMS [16] ISDN-AddressString OPTIONAL,
+ smsRegisterRequest [17] SMSRegisterRequest OPTIONAL,
+ sms-Only [18] NULL OPTIONAL,
+ removalofMMERegistrationforSMS [22] NULL OPTIONAL,
+ sgsn-Name [19] DiameterIdentity OPTIONAL,
+ sgsn-Realm [20] DiameterIdentity OPTIONAL,
+ lgd-supportIndicator [21] NULL OPTIONAL,
+ adjacentPLMN-List [23] AdjacentPLMN-List OPTIONAL }
+
+SMSRegisterRequest::= ENUMERATED {
+ sms-registration-required (0),
+ sms-registration-not-preferred (1),
+ no-preference (2),
+ ...}
+
+Used-RAT-Type::= ENUMERATED {
+ utran (0),
+ geran (1),
+ gan (2),
+ i-hspa-evolution (3),
+ e-utran (4),
+ ...}
+
+EPS-Info ::= CHOICE{
+ pdn-gw-update [0] PDN-GW-Update,
+ isr-Information [1] ISR-Information }
+
+PDN-GW-Update ::= SEQUENCE{
+ apn [0] APN OPTIONAL,
+ pdn-gw-Identity [1] PDN-GW-Identity OPTIONAL,
+ contextId [2] ContextId OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ... }
+-- The pdn-gw-update IE shall include the pdn-gw-Identity, and the apn or/and the contextID.
+-- The HSS shall ignore the eps-info IE if it includes a pdn-gw-update IE which does not
+-- include pdn-gw-Identity.
+-- The pdn-gw-Identity is defined as OPTIONAL for backward compatility reason with
+-- outdated earlier versions of this specification.
+
+
+ISR-Information::= BIT STRING {
+ updateLocation (0),
+ cancelSGSN (1),
+ initialAttachIndicator (2)} (SIZE (3..8))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ISR-Information data type shall be discarded by the receiver
+
+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, supportedRAT-TypesIndicator [8] SupportedRAT-Types OPTIONAL,
+ supportedFeatures [9] SupportedFeatures OPTIONAL,
+ t-adsDataRetrieval [10] NULL OPTIONAL,
+ homogeneousSupportOfIMSVoiceOverPSSessions [11] BOOLEAN OPTIONAL,
+ -- "true" indicates homogeneous support, "false" indicates homogeneous non-support
+ -- in the complete SGSN or MME area
+ cancellationTypeInitialAttach [12] NULL OPTIONAL,
+ msisdn-lessOperation-Supported [14] NULL OPTIONAL,
+ updateofHomogeneousSupportOfIMSVoiceOverPSSessions [15] NULL OPTIONAL
+ }
+ -- the supportedFeatures , t-adsDataRetrieval and
+ -- homogeneousSupportOfIMSVoiceOverPSSessions
+ -- /updateofHomogeneousSupportOfIMSVoiceOverPSSessions arealso applied to the MME/IWF
+
+SupportedFeatures::= BIT STRING {
+ odb-all-apn (0),
+ odb-HPLMN-APN (1),
+ odb-VPLMN-APN (2),
+ odb-all-og (3),
+ odb-all-international-og (4),
+ odb-all-int-og-not-to-HPLMN-country (5),
+ odb-all-interzonal-og (6),
+ odb-all-interzonal-og-not-to-HPLMN-country (7),
+ odb-all-interzonal-og-and-internat-og-not-to-HPLMN-country (8),
+ regSub (9),
+ trace (10),
+ lcs-all-PrivExcep (11),
+ lcs-universal (12),
+ lcs-CallSessionRelated (13),
+ lcs-CallSessionUnrelated (14),
+ lcs-PLMN-operator (15),
+ lcs-ServiceType (16),
+ lcs-all-MOLR-SS (17),
+ lcs-basicSelfLocation (18),
+ lcs-autonomousSelfLocation (19),
+ lcs-transferToThirdParty (20),
+ sm-mo-pp (21),
+ barring-OutgoingCalls (22),
+ baoc (23),
+ boic (24),
+ boicExHC (25),
+ localTimeZoneRetrieval (26),
+ additionalMsisdn (27),
+ smsInMME (28),
+ smsInSGSN (29),
+ ue-Reachability-Notification (30),
+ state-Location-Information-Retrieval (31),
+ partialPurge (32),
+ gddInSGSN (33),
+ sgsnCAMELCapability (34),
+ pcscf-Restoration (35),
+ dedicatedCoreNetworks (36)} (SIZE (26..40))
+ -- the definition and usage of the above features see the 3GPP TS 29.272 [144].
+
+
+UE-SRVCC-Capability::= ENUMERATED {
+ ue-srvcc-not-supported (0),
+ ue-srvcc-supported (1),
+ ...}
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ add-Capability NULL OPTIONAL,
+ sgsn-mmeSeparationSupported [0] NULL OPTIONAL,
+ mmeRegisteredforSMS [1] NULL OPTIONAL }
+
+EPLMN-List ::= SEQUENCE SIZE (1..50) OF
+ PLMN-Id
+
+AdjacentPLMN-List ::= SEQUENCE SIZE (1..50) OF
+ PLMN-Id
+
+
+-- 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,
+ alternativeChannelType [15] RadioResourceInformation OPTIONAL,
+ tracePropagationList [17] TracePropagationList OPTIONAL,
+ aoipSupportedCodecsListAnchor [18] AoIPCodecsList OPTIONAL,
+ aoipSelectedCodecTarget [19] AoIPCodec OPTIONAL,
+ uesbi-Iu [20] UESBI-Iu OPTIONAL,
+ imeisv [21] IMEI 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,
+ imeisv [22] IMEI OPTIONAL,
+ alternativeChannelType [23] RadioResourceInformation OPTIONAL,
+ tracePropagationList [25] TracePropagationList OPTIONAL,
+ aoipSupportedCodecsListAnchor [26] AoIPCodecsList OPTIONAL,
+ regionalSubscriptionData [27] ZoneCodeList OPTIONAL,
+ lclsGlobalCallReference [28] LCLS-GlobalCallReference OPTIONAL,
+ lcls-Negotiation [29] LCLS-Negotiation OPTIONAL,
+ lcls-Configuration-Preference [30] LCLS-ConfigurationPreference OPTIONAL,
+ csg-SubscriptionDataList [31] CSG-SubscriptionDataList OPTIONAL
+ }
+
+LCLS-GlobalCallReference ::= OCTET STRING (SIZE (13..15))
+ -- Octets are coded as specified in 3GPP TS 29.205 [146]
+
+
+LCLS-Negotiation::= BIT STRING {
+ permission-indicator-not-allowed-bit (0),
+ permission-indicator-spare-bit (1)} (SIZE (2..8))
+ --for definition and allowed combination of bits 0 and 1 see 3GPP TS 29.205
+ -- exception handling: bits 2 to 7 shall be ignored if received and not understood
+
+
+LCLS-ConfigurationPreference::= BIT STRING {
+ forward-data-sending-indicator (0),
+ backward-data-sending-indicator (1),
+ forward-data-reception-indicator (2),
+ backward-data-reception-indicator (3)} (SIZE (4..8))
+ -- exception handling: bits 4 to 7 shall be ignored if received and not understood
+
+
+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,
+ aoipSelectedCodecTarget [9] AoIPCodec OPTIONAL,
+ aoipAvailableCodecsListMap [10] AoIPCodecsList 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,
+ aoipSelectedCodecTarget [7] AoIPCodec OPTIONAL,
+ aoipAvailableCodecsListMap [8] AoIPCodecsList OPTIONAL }
+
+AoIPCodecsList ::= SEQUENCE {
+ codec1 [1] AoIPCodec,
+ codec2 [2] AoIPCodec OPTIONAL,
+ codec3 [3] AoIPCodec OPTIONAL,
+ codec4 [4] AoIPCodec OPTIONAL,
+ codec5 [5] AoIPCodec OPTIONAL,
+ codec6 [6] AoIPCodec OPTIONAL,
+ codec7 [7] AoIPCodec OPTIONAL,
+ codec8 [8] AoIPCodec OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...}
+ -- Codecs are sent in priority order where codec1 has highest priority
+
+AoIPCodec ::= OCTET STRING (SIZE (1..3))
+
+ -- The internal structure is defined as follows:
+ -- octet 1 Coded as Speech Codec Elements in 3GPP TS 48.008
+ -- with the exception that FI, PI, PT and TF bits shall
+ -- be set to 0
+ -- octets 2,3 Optional; in case of AMR codec types it defines
+ -- the supported codec configurations as defined in
+ -- 3GPP TS 48.008
+
+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 or Extended 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,
+ numberOfRequestedAdditional-Vectors [5] NumberOfRequestedVectors OPTIONAL,
+ additionalVectorsAreForEPS [6] NULL OPTIONAL,
+ ueUsageTypeRequestIndication [7] NULL OPTIONAL }
+
+
+NumberOfRequestedVectors ::= INTEGER (1..5)
+
+Re-synchronisationInfo ::= SEQUENCE {
+ rand RAND,
+ auts AUTS,
+ ...}
+
+SendAuthenticationInfoRes ::= [3] SEQUENCE {
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ eps-AuthenticationSetList [2] EPS-AuthenticationSetList OPTIONAL,
+ ueUsageType [3] UE-UsageType OPTIONAL }
+
+EPS-AuthenticationSetList ::= SEQUENCE SIZE (1..5) OF
+ EPC-AV
+
+UE-UsageType::= OCTET STRING (SIZE (4))
+ -- octets are coded as defined in 3GPP TS 29.272 [144]
+
+EPC-AV ::= SEQUENCE {
+ rand RAND,
+ xres XRES,
+ autn AUTN,
+ kasme KASME,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+KASME ::= OCTET STRING (SIZE (32))
+
+RequestingNodeType ::= ENUMERATED {
+ vlr (0),
+ sgsn (1),
+ ...,
+ s-cscf (2),
+ bsf (3),
+ gan-aaa-server (4),
+ wlan-aaa-server (5),
+ mme (16),
+ mme-sgsn (17)
+ }
+ -- the values 2, 3, 4 and 5 shall not be used on the MAP-D or Gr interfaces
+ -- exception handling:
+ -- received values in the range (6-15) shall be treated as "vlr"
+ -- received values greater than 17 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,
+ ics-Indicator [20] BOOLEAN OPTIONAL,
+ eps-SubscriptionData [31] EPS-SubscriptionData OPTIONAL,
+ csg-SubscriptionDataList [32] CSG-SubscriptionDataList OPTIONAL,
+ ue-ReachabilityRequestIndicator [33] NULL OPTIONAL,
+ sgsn-Number [34] ISDN-AddressString OPTIONAL,
+ mme-Name [35] DiameterIdentity OPTIONAL,
+ subscribedPeriodicRAUTAUtimer [36] SubscribedPeriodicRAUTAUtimer OPTIONAL,
+ vplmnLIPAAllowed [37] NULL OPTIONAL,
+ mdtUserConsent [38] BOOLEAN OPTIONAL,
+ subscribedPeriodicLAUtimer [39] SubscribedPeriodicLAUtimer OPTIONAL,
+ vplmn-Csg-SubscriptionDataList [40] VPLMN-CSG-SubscriptionDataList OPTIONAL,
+ additionalMSISDN [41] ISDN-AddressString OPTIONAL,
+ psAndSMS-OnlyServiceProvision [42] NULL OPTIONAL,
+ smsInSGSNAllowed [43] NULL OPTIONAL,
+ cs-to-ps-SRVCC-Allowed-Indicator [44] NULL OPTIONAL,
+ pcscf-Restoration-Request [45] NULL OPTIONAL,
+ adjacentAccessRestrictionDataList [46] AdjacentAccessRestrictionDataList OPTIONAL,
+ imsi-Group-Id-List [47] IMSI-GroupIdList OPTIONAL,
+ ueUsageType [48] UE-UsageType OPTIONAL }
+ -- If the Network Access Mode parameter is sent, it shall be present only in
+ -- the first sequence if seqmentation is used
+
+Group-Service-ID ::= BIT STRING {
+ groupSpecificNASlevelCongestionControl (0)} (SIZE (1..32))
+ -- exception handling:
+ -- bits 1 to 31 shall be ignored if received and not understood
+
+
+Local-GroupID ::= OCTET STRING (SIZE (1..10))
+ -- Refers to Local group ID defined by an operator identified by the PLMN-ID.
+ -- for details see 3GPP TS 29.272 [144]
+
+IMSI-GroupIdList ::= SEQUENCE SIZE (1..50) OF
+ IMSI-GroupId
+
+IMSI-GroupId ::= SEQUENCE {
+ group-Service-Id [0] Group-Service-ID,
+ plmnId [1] PLMN-Id,
+ local-Group-ID [2] Local-GroupID,
+ ...}
+
+SubscribedPeriodicRAUTAUtimer ::= INTEGER (0..4294967295)
+ -- This parameter carries the subscribed periodic TAU/RAU timer value in seconds as
+ -- specified in 3GPP TS 24.008 [35].
+
+SubscribedPeriodicLAUtimer ::= INTEGER (0..4294967295)
+ -- This parameter carries the subscribed periodic LAU timer value in seconds as
+ -- specified in 3GPP TS 24.008 [35].
+
+CSG-SubscriptionDataList ::= SEQUENCE SIZE (1..50) OF
+ CSG-SubscriptionData
+
+CSG-SubscriptionData ::= SEQUENCE {
+ csg-Id CSG-Id,
+ expirationDate Time OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ lipa-AllowedAPNList [0] LIPA-AllowedAPNList OPTIONAL,
+ plmn-Id [1] PLMN-Id OPTIONAL
+}
+
+VPLMN-CSG-SubscriptionDataList ::= SEQUENCE SIZE (1..50) OF
+ CSG-SubscriptionData
+
+CSG-Id ::= BIT STRING (SIZE (27))
+ -- coded according to 3GPP TS 23.003 [17].
+
+LIPA-AllowedAPNList ::= SEQUENCE SIZE (1..maxNumOfLIPAAllowedAPN) OF
+ APN
+
+maxNumOfLIPAAllowedAPN INTEGER ::= 50
+
+
+EPS-SubscriptionData ::= SEQUENCE {
+ apn-oi-Replacement [0] APN-OI-Replacement OPTIONAL,
+ -- this apn-oi-Replacement refers to the UE level apn-oi-Replacement.
+ rfsp-id [2] RFSP-ID OPTIONAL,
+ ambr [3] AMBR OPTIONAL,
+ apn-ConfigurationProfile [4] APN-ConfigurationProfile OPTIONAL,
+ stn-sr [6] ISDN-AddressString OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ mps-CSPriority [7] NULL OPTIONAL,
+ mps-EPSPriority [8] NULL OPTIONAL,
+ subscribed-vsrvcc [9] NULL OPTIONAL }
+ -- mps-CSPriority by its presence indicates that the UE is subscribed to the eMLPP in
+ -- the CS domain, referring to the 3GPP TS 29.272 [144] for details.
+ -- mps-EPSPriority by its presence indicates that the UE is subscribed to the MPS in
+ -- the EPS domain, referring to the 3GPP TS 29.272 [144] for details.
+ --
+ -- subscribed-vsrvcc by its presence indicates that the UE is subscribed to the vSRVCC in
+ -- the EPS domain, referring to the 3GPP TS 29.272 [144] for details.
+
+APN-OI-Replacement ::= OCTET STRING (SIZE (9..100))
+ -- Octets are coded as APN Operator Identifier according to TS 3GPP TS 23.003 [17]
+
+RFSP-ID ::= INTEGER (1..256)
+
+APN-ConfigurationProfile ::= SEQUENCE {
+ defaultContext ContextId,
+ completeDataListIncluded NULL OPTIONAL,
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment of APN-ConfigurationProfile.
+ epsDataList [1] EPS-DataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+EPS-DataList ::= SEQUENCE SIZE (1..maxNumOfAPN-Configurations) OF
+ APN-Configuration
+
+
+maxNumOfAPN-Configurations INTEGER ::= 50
+
+
+APN-Configuration ::= SEQUENCE {
+ contextId [0] ContextId,
+ pdn-Type [1] PDN-Type,
+ servedPartyIP-IPv4-Address [2] PDP-Address OPTIONAL,
+ apn [3] APN,
+ eps-qos-Subscribed [4] EPS-QoS-Subscribed,
+ pdn-gw-Identity [5] PDN-GW-Identity OPTIONAL,
+ pdn-gw-AllocationType [6] PDN-GW-AllocationType OPTIONAL,
+ vplmnAddressAllowed [7] NULL OPTIONAL,
+ chargingCharacteristics [8] ChargingCharacteristics OPTIONAL,
+ ambr [9] AMBR OPTIONAL,
+ specificAPNInfoList [10] SpecificAPNInfoList OPTIONAL, extensionContainer [11] ExtensionContainer OPTIONAL,
+ servedPartyIP-IPv6-Address [12] PDP-Address OPTIONAL,
+ ...,
+ apn-oi-Replacement [13] APN-OI-Replacement OPTIONAL,
+ -- this apn-oi-Replacement refers to the APN level apn-oi-Replacement.
+ sipto-Permission [14] SIPTO-Permission OPTIONAL,
+ lipa-Permission [15] LIPA-Permission OPTIONAL,
+ restoration-Priority [16] Restoration-Priority OPTIONAL,
+ sipto-local-network-Permission [17] SIPTO-Local-Network-Permission OPTIONAL,
+ wlan-offloadability [18] WLAN-Offloadability OPTIONAL
+ }
+
+PDN-Type ::= OCTET STRING (SIZE (1))
+ -- Octet is coded as follows:
+ -- Bits
+ -- 3 2 1
+ -- 0 0 1 IPv4
+ -- 0 1 0 IPv6
+ -- 0 1 1 IPv4v6
+ -- 1 0 0 IPv4_or_IPv6
+ -- Bits 8-4 shall be coded as zero.
+ -- for details see 3GPP TS 29.272 [144]
+
+EPS-QoS-Subscribed ::= SEQUENCE {
+ qos-Class-Identifier [0] QoS-Class-Identifier,
+ allocation-Retention-Priority [1] Allocation-Retention-Priority,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+AMBR ::= SEQUENCE {
+ max-RequestedBandwidth-UL [0] Bandwidth,
+ max-RequestedBandwidth-DL [1] Bandwidth,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+
+SpecificAPNInfoList ::= SEQUENCE SIZE (1..maxNumOfSpecificAPNInfos) OF
+ SpecificAPNInfo
+
+maxNumOfSpecificAPNInfos INTEGER ::= 50
+
+SpecificAPNInfo ::= SEQUENCE {
+ apn [0] APN,
+ pdn-gw-Identity [1] PDN-GW-Identity,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+Bandwidth ::= INTEGER
+ -- bits per second
+
+QoS-Class-Identifier ::= INTEGER (1..9)
+ -- values are defined in 3GPP TS 29.212
+
+
+
+Allocation-Retention-Priority ::= SEQUENCE {
+ priority-level [0] INTEGER,
+ pre-emption-capability [1] BOOLEAN OPTIONAL,
+ pre-emption-vulnerability [2] BOOLEAN OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ... }
+
+PDN-GW-Identity ::= SEQUENCE {
+ pdn-gw-ipv4-Address [0] PDP-Address OPTIONAL,
+ pdn-gw-ipv6-Address [1] PDP-Address OPTIONAL,
+ pdn-gw-name [2] FQDN OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ... }
+
+FQDN ::= OCTET STRING (SIZE (9..255))
+
+
+PDN-GW-AllocationType ::= ENUMERATED {
+ static (0),
+ dynamic (1)}
+
+
+WLAN-Offloadability ::= SEQUENCE {
+ wlan-offloadability-EUTRAN [0] WLAN-Offloadability-Indication OPTIONAL,
+ wlan-offloadability-UTRAN [1] WLAN-Offloadability-Indication OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+WLAN-Offloadability-Indication ::= ENUMERATED {
+ notAllowed (0),
+ allowed (1)}
+
+
+
+AccessRestrictionData ::= BIT STRING {
+ utranNotAllowed (0),
+ geranNotAllowed (1),
+ ganNotAllowed (2),
+ i-hspa-evolutionNotAllowed (3),
+ e-utranNotAllowed (4),
+ ho-toNon3GPP-AccessNotAllowed (5) } (SIZE (2..8))
+ -- exception handling:
+ -- The VLR shall ignore the access restriction data related to an access type not
+ -- supported by the node.
+ -- The handling of the access restriction data by the SGSN is described in subclause
+ -- 5.3.19 of TS 23.060, in subclause 7.5.3 of TS 29.060 and subclause 7.3.6 of TS 29.274.
+ -- bits 6 to 7 shall be ignored if received and not understood
+
+
+AdjacentAccessRestrictionDataList ::= SEQUENCE SIZE (1..50) OF
+ AdjacentAccessRestrictionData
+
+AdjacentAccessRestrictionData ::= SEQUENCE {
+ plmnId [0] PLMN-Id,
+ accessRestrictionData [1] AccessRestrictionData,
+ ...}
+
+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 {
+ packetAndCircuit (0),
+ onlyCircuit (1),
+ onlyPacket (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.
+ ext3-QoS-Subscribed [3] Ext3-QoS-Subscribed OPTIONAL,
+ -- ext3-QoS-Subscribed may be present only if ext2-QoS-Subscribed is present.
+ ext4-QoS-Subscribed [4] Ext4-QoS-Subscribed OPTIONAL,
+ -- ext4-QoS-Subscribed may be present only if ext3-QoS-Subscribed is present.
+ apn-oi-Replacement [5] APN-OI-Replacement OPTIONAL,
+ -- this apn-oi-Replacement refers to the APN level apn-oi-Replacement and has
+ -- higher priority than UE level apn-oi-Replacement.
+ ext-pdp-Type [6] Ext-PDP-Type OPTIONAL,
+ -- contains the value IPv4v6 defined in 3GPP TS 29.060 [105], if the PDP can be
+ -- accessed by dual-stack UEs
+ ext-pdp-Address [7] PDP-Address OPTIONAL,
+ -- contains an additional IP address in case of dual-stack static IP address assignment
+ -- for the UE.
+ -- it may contain an IPv4 or an IPv6 address/prefix, and it may be present
+ -- only if pdp-Address is present; if both are present, each parameter shall
+ -- contain a different type of address (IPv4 or IPv6).
+ ambr [10] AMBR OPTIONAL,
+ -- this ambr contains the AMBR associated to the APN included in the
+ -- PDP-Context (APN-AMBR).
+ sipto-Permission [8] SIPTO-Permission OPTIONAL,
+ lipa-Permission [9] LIPA-Permission OPTIONAL,
+ restoration-Priority [11] Restoration-Priority OPTIONAL,
+ sipto-local-network-Permission [12] SIPTO-Local-Network-Permission OPTIONAL
+ }
+
+Restoration-Priority ::= OCTET STRING (SIZE (1))
+ -- Octet 1:
+ -- Restoration Priority. This octet encodes the Restoration Priority,
+ -- as the binary value of the Restoration-Priority described in 3GPP TS 29.272 [144].
+
+SIPTO-Permission ::= ENUMERATED {
+ siptoAboveRanAllowed (0),
+ siptoAboveRanNotAllowed (1)
+ }
+
+SIPTO-Local-Network-Permission ::= ENUMERATED {
+ siptoAtLocalNetworkAllowed (0),
+ siptoAtLocalNetworkNotAllowed (1)
+ }
+
+LIPA-Permission ::= ENUMERATED {
+ lipaProhibited (0),
+ lipaOnly (1),
+ lipaConditional (2)
+ }
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment of GPRSSubscriptionData.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ apn-oi-Replacement [3] APN-OI-Replacement OPTIONAL
+ -- this apn-oi-Replacement refers to the UE level apn-oi-Replacement.
+ }
+
+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]
+ -- Only the values PPP, IPv4 and IPv6 are allowed for this parameter.
+
+Ext-PDP-Type ::= OCTET STRING (SIZE (2))
+ -- Octets are coded, similarly to PDP-Type, according to TS 3GPP TS 29.060 [105].
+ -- Only the value IPv4v6 is allowed for this parameter.
+
+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.
+
+Ext3-QoS-Subscribed ::= OCTET STRING (SIZE (1..2))
+ -- Octets 1-2 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 17-18.
+
+Ext4-QoS-Subscribed ::= OCTET STRING (SIZE (1))
+ -- Octet 1:
+ -- Evolved Allocation/Retention Priority. This octet encodes the Priority Level (PL),
+ -- the Preemption Capability (PCI) and Preemption Vulnerability (PVI) values, as
+ -- described in 3GPP TS 29.060 [105].
+
+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,
+ supportedFeatures [9] SupportedFeatures 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,
+ chargingCharacteristicsWithdraw [16] NULL OPTIONAL,
+ stn-srWithdraw [17] NULL OPTIONAL,
+ epsSubscriptionDataWithdraw [18] EPS-SubscriptionDataWithdraw OPTIONAL,
+ apn-oi-replacementWithdraw [19] NULL OPTIONAL,
+ csg-SubscriptionDeleted [20] NULL OPTIONAL,
+ subscribedPeriodicTAU-RAU-TimerWithdraw [22] NULL OPTIONAL,
+ subscribedPeriodicLAU-TimerWithdraw [23] NULL OPTIONAL,
+ subscribed-vsrvccWithdraw [21] NULL OPTIONAL,
+ vplmn-Csg-SubscriptionDeleted [24] NULL OPTIONAL,
+ additionalMSISDN-Withdraw [25] NULL OPTIONAL,
+ cs-to-ps-SRVCC-Withdraw [26] NULL OPTIONAL,
+ imsiGroupIdList-Withdraw [27] NULL 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}
+
+EPS-SubscriptionDataWithdraw ::= CHOICE {
+ allEPS-Data 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),
+ collectInformation (19)
+} (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 TDPs 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 {
+ sendingNodenumber SendingNode-Number,
+ hlr-List HLR-List OPTIONAL,
+ -- The hlr-List parameter shall only be applicable for a restart of the HSS/HLR.
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendingNode-Number ::= CHOICE {
+ hlr-Number ISDN-AddressString,
+ css-Number [1] ISDN-AddressString}
+
+RestoreDataArg ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL,
+ restorationIndicator [7] NULL 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,
+ -- groupId shall be filled with six TBCD fillers (1111)if the longGroupId is present
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalSubscriptions AdditionalSubscriptions OPTIONAL,
+ additionalInfo [0] AdditionalInfo OPTIONAL,
+ longGroupId [1] Long-GroupId OPTIONAL }
+
+ -- VoiceGroupCallData containing a longGroupId shall not be sent to VLRs that did not
+ -- indicate support of long Group IDs within the Update Location or Restore Data
+ -- request message
+
+AdditionalInfo ::= BIT STRING (SIZE (1..136))
+-- Refers to Additional Info as specified in 3GPP TS 43.068
+
+AdditionalSubscriptions ::= BIT STRING {
+ privilegedUplinkRequest (0),
+ emergencyUplinkRequest (1),
+ emergencyReset (2)} (SIZE (3..8))
+-- Other bits than listed above shall be discarded.
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ -- groupId shall be filled with six TBCD fillers (1111)if the longGroupId is present
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ longGroupId [0] Long-GroupId OPTIONAL }
+
+-- VoiceBroadcastData containing a longGroupId shall not be sent to VLRs that did not
+-- indicate support of long Group IDs within the Update Location or Restore Data
+ -- request message
+
+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
+
+Long-GroupId ::= TBCD-STRING (SIZE (4))
+ -- When Long-Group-Id is less than eight 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,
+ ...,
+ callPriority [4] EMLPP-Priority 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,
+ imsVoiceOverPS-SessionsIndication [9] IMS-VoiceOverPS-SessionsInd OPTIONAL,
+ lastUE-ActivityTime [10] Time OPTIONAL,
+ lastRAT-Type [11] Used-RAT-Type OPTIONAL,
+ eps-SubscriberState [12] PS-SubscriberState OPTIONAL,
+ locationInformationEPS [13] LocationInformationEPS OPTIONAL,
+ timeZone [14] TimeZone OPTIONAL,
+ daylightSavingTime [15] DaylightSavingTime OPTIONAL }
+
+-- If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN or
+-- MME (via an IWF), it shall discard them.
+-- If the HLR receives locationInformationGPRS, ps-SubscriberState, gprs-MS-Class or
+-- locationInformationEPS (outside the locationInformation IE) from a VLR, it shall
+-- discard them.
+-- If the HLR receives parameters which it has not requested, it shall discard them.
+
+IMS-VoiceOverPS-SessionsInd ::= ENUMERATED {
+ imsVoiceOverPS-SessionsNotSupported (0),
+ imsVoiceOverPS-SessionsSupported (1),
+ unknown (2)
+ }
+-- "unknown" shall not be used within ProvideSubscriberInfoRes
+
+TimeZone ::= OCTET STRING (SIZE (2..3))
+-- Refer to the 3GPP TS 29.272 [144] for details.
+
+DaylightSavingTime ::= ENUMERATED {
+ noAdjustment (0),
+ plusOneHourAdjustment (1),
+ plusTwoHoursAdjustment (2)
+ }
+-- Refer to the 3GPP TS 29.272 [144] for details.
+
+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,
+ locationInformationEPS-Supported [11] NULL OPTIONAL,
+ t-adsData [8] NULL OPTIONAL,
+ requestedNodes [9] RequestedNodes OPTIONAL,
+ servingNodeIndication [10] NULL OPTIONAL,
+ localTimeZoneRequest [12] NULL OPTIONAL
+ }
+
+-- currentLocation and locationInformationEPS-Supported shall be absent if
+-- locationInformation is absent
+-- t-adsData shall be absent in messages sent to the VLR
+-- requestedNodes shall be absent if requestedDomain is "cs-Domain"
+-- servingNodeIndication shall be absent if locationInformation is absent;
+-- servingNodeIndication shall be absent if current location is present;
+-- servingNodeIndication indicates by its presence that only the serving node's
+-- address (MME-Name or SGSN-Number or VLR-Number) is requested.
+
+DomainType ::= ENUMERATED {
+ cs-Domain (0),
+ ps-Domain (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to 'cs-Domain'
+
+RequestedNodes ::= BIT STRING {
+ mme (0),
+ sgsn (1)} (SIZE (1..8))
+-- Other bits than listed above shall be discarded.
+
+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,
+ locationInformationEPS [10] LocationInformationEPS OPTIONAL,
+ userCSGInformation [11] UserCSGInformation 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.
+-- if the locationinformationEPS IE is present then the cellGlobalIdOrServiceAreaIdOrLAI IE,
+-- the ageOfLocationInformation IE, the geographicalInformation IE, the geodeticInformation IE
+-- and the currentLocationRetrieved IE (outside the locationInformationEPS IE) shall be
+-- absent. As an exception, both the cellGlobalIdOrServiceAreaIdOrLAI IE including an LAI and
+-- the locationinformationEPS IE may be present in a MAP-NOTE-MM-EVENT.
+-- UserCSGInformation contains the CSG ID, Access mode, and the CSG Membership Indication in
+-- the case the Access mode is Hybrid Mode.
+-- The locationInformationEPS IE should be absent if locationInformationEPS-Supported was not
+-- received in the RequestedInfo IE.
+
+LocationInformationEPS ::= SEQUENCE {
+ e-utranCellGlobalIdentity [0] E-UTRAN-CGI OPTIONAL,
+ trackingAreaIdentity [1] TA-Id OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ geographicalInformation [3] GeographicalInformation OPTIONAL,
+ geodeticInformation [4] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [5] NULL OPTIONAL,
+ ageOfLocationInformation [6] AgeOfLocationInformation OPTIONAL,
+ ...,
+ mme-Name [7] DiameterIdentity OPTIONAL }
+-- currentLocationRetrieved shall be present if the location information
+-- was retrieved after successful 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,
+ userCSGInformation [10] UserCSGInformation 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.
+-- UserCSGInformation contains the CSG ID, Access mode, and the CSG Membership Indication in
+-- the case the Access mode is Hybrid Mode.
+
+
+UserCSGInformation ::= SEQUENCE {
+ csg-Id [0] CSG-Id,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ accessMode [2] OCTET STRING (SIZE(1)) OPTIONAL,
+ cmi [3] OCTET STRING (SIZE(1)) OPTIONAL }
+-- The encoding of the accessMode and cmi parameters are as defined in 3GPP TS 29.060 [105].
+
+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 {
+ notProvidedFromSGSNorMME [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.
+ qos3-Subscribed [21] Ext3-QoS-Subscribed OPTIONAL,
+ -- qos3-Subscribed may be present only if qos2-Subscribed is present.
+ qos3-Requested [22] Ext3-QoS-Subscribed OPTIONAL,
+ -- qos3-Requested may be present only if qos2-Requested is present.
+ qos3-Negotiated [23] Ext3-QoS-Subscribed OPTIONAL,
+ -- qos3-Negotiated may be present only if qos2-Negotiated is present.
+ qos4-Subscribed [25] Ext4-QoS-Subscribed OPTIONAL,
+ -- qos4-Subscribed may be present only if qos3-Subscribed is present.
+ qos4-Requested [26] Ext4-QoS-Subscribed OPTIONAL,
+ -- qos4-Requested may be present only if qos3-Requested is present.
+ qos4-Negotiated [27] Ext4-QoS-Subscribed OPTIONAL,
+ -- qos4-Negotiated may be present only if qos3-Negotiated is present.
+ ext-pdp-Type [28] Ext-PDP-Type OPTIONAL,
+ -- contains the value IPv4v6 defined in 3GPP TS 29.060 [105], if the PDP can be
+ -- accessed by dual-stack UEs.
+ ext-pdp-Address [29] PDP-Address OPTIONAL
+ -- contains an additional IP address in case of dual-stack static IP address assignment
+ -- for the UE.
+ -- it may contain an IPv4 or an IPv6 address/prefix, and it may be present
+ -- only if pdp-Address is present; if both are present, each parameter shall
+ -- contain a different type of address (IPv4 or IPv6).
+
+}
+
+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,
+ msisdn-BS-List [10] MSISDN-BS-List OPTIONAL,
+ csg-SubscriptionDataList [11] CSG-SubscriptionDataList OPTIONAL,
+ cw-Data [12] CallWaitingData OPTIONAL,
+ ch-Data [13] CallHoldData OPTIONAL,
+ clip-Data [14] ClipData OPTIONAL,
+ clir-Data [15] ClirData OPTIONAL,
+ ect-data [16] EctData OPTIONAL }
+
+CallWaitingData ::= SEQUENCE {
+ cwFeatureList [1] Ext-CwFeatureList,
+ notificationToCSE [2] NULL OPTIONAL,
+ ... }
+
+Ext-CwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CwFeature
+
+Ext-CwFeature ::= SEQUENCE {
+ basicService [1] Ext-BasicServiceCode,
+ ss-Status [2] Ext-SS-Status,
+ ... }
+
+ClipData ::= SEQUENCE {
+ ss-Status [1] Ext-SS-Status,
+ overrideCategory [2] OverrideCategory,
+ notificationToCSE [3] NULL OPTIONAL,
+ ... }
+
+ClirData ::= SEQUENCE {
+ ss-Status [1] Ext-SS-Status,
+ cliRestrictionOption [2] CliRestrictionOption OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ ... }
+
+CallHoldData ::= SEQUENCE {
+ ss-Status [1] Ext-SS-Status,
+ notificationToCSE [2] NULL OPTIONAL,
+ ... }
+
+EctData ::= SEQUENCE {
+ ss-Status [1] Ext-SS-Status,
+ notificationToCSE [2] NULL 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,
+ msisdn-BS-List [8] NULL OPTIONAL,
+ csg-SubscriptionDataRequested [9] NULL OPTIONAL,
+ cw-Info [10] NULL OPTIONAL,
+ clip-Info [11] NULL OPTIONAL,
+ clir-Info [12] NULL OPTIONAL,
+ hold-Info [13] NULL OPTIONAL,
+ ect-Info [14] NULL OPTIONAL }
+
+MSISDN-BS-List ::= SEQUENCE SIZE (1..maxNumOfMSISDN) OF
+ MSISDN-BS
+
+maxNumOfMSISDN INTEGER ::= 50
+
+
+MSISDN-BS ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ basicServiceList [0] BasicServiceList OPTIONAL,
+ extensionContainer [1] ExtensionContainer 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,
+ modificationRequestFor-IP-SM-GW-Data [8] ModificationRequestFor-IP-SM-GW-Data OPTIONAL,
+ activationRequestForUE-reachability [9] RequestedServingNode OPTIONAL,
+ modificationRequestFor-CSG [10] ModificationRequestFor-CSG OPTIONAL,
+ modificationRequestFor-CW-Data [11] ModificationRequestFor-CW-Info OPTIONAL,
+ modificationRequestFor-CLIP-Data [12] ModificationRequestFor-CLIP-Info OPTIONAL,
+ modificationRequestFor-CLIR-Data [13] ModificationRequestFor-CLIR-Info OPTIONAL,
+ modificationRequestFor-HOLD-Data [14] ModificationRequestFor-CH-Info OPTIONAL,
+ modificationRequestFor-ECT-Data [15] ModificationRequestFor-ECT-Info OPTIONAL }
+
+ModificationRequestFor-CW-Info ::= SEQUENCE {
+ basicService [0] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [1] Ext-SS-Status OPTIONAL,
+ modifyNotificationToCSE [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CH-Info ::= SEQUENCE {
+ ss-Status [0] Ext-SS-Status OPTIONAL,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-ECT-Info ::= SEQUENCE {
+ ss-Status [0] Ext-SS-Status OPTIONAL,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CLIR-Info ::= SEQUENCE {
+ ss-Status [0] Ext-SS-Status OPTIONAL,
+ cliRestrictionOption [1] CliRestrictionOption OPTIONAL,
+ modifyNotificationToCSE [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CLIP-Info ::= SEQUENCE {
+ ss-Status [0] Ext-SS-Status OPTIONAL,
+ overrideCategory [1] OverrideCategory OPTIONAL,
+ modifyNotificationToCSE [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+
+ModificationRequestFor-CSG ::= SEQUENCE {
+ modifyNotificationToCSE [0] ModificationInstruction OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedServingNode ::= BIT STRING {
+ mmeAndSgsn (0)} (SIZE (1..8))
+
+ServingNode ::= BIT STRING {
+ mme (0),
+ sgsn (1)} (SIZE (2..8))
+-- Other bits than listed above shall be discarded.
+
+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,
+ cw-Data [4] CallWaitingData OPTIONAL,
+ ch-Data [5] CallHoldData OPTIONAL,
+ clip-Data [6] ClipData OPTIONAL,
+ clir-Data [7] ClirData OPTIONAL,
+ ect-data [8] EctData OPTIONAL,
+ serviceCentreAddress [9] AddressString 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
+
+ModificationRequestFor-IP-SM-GW-Data ::= SEQUENCE {
+ modifyRegistrationStatus [0] ModificationInstruction OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ip-sm-gw-DiameterAddress [2] NetworkNodeDiameterAddress OPTIONAL
+ -- ip-sm-gw-DiameterAddress may be present when ModificationInstruction is "activate"
+ }
+
+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,
+ ...,
+ ue-reachable [5] ServingNode OPTIONAL,
+ csg-SubscriptionDataList [6] CSG-SubscriptionDataList OPTIONAL,
+ cw-Data [7] CallWaitingData OPTIONAL,
+ ch-Data [8] CallHoldData OPTIONAL,
+ clip-Data [9] ClipData OPTIONAL,
+ clir-Data [10] ClirData OPTIONAL,
+ ect-data [11] EctData 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,
+ ...}
+
+-- vcsg location registration types
+
+UpdateVcsgLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ msisdn [2] ISDN-AddressString OPTIONAL,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... }
+
+UpdateVcsgLocationRes ::= SEQUENCE {
+ temporaryEmptySubscriptiondataIndicator NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... }
+
+CancelVcsgLocationArg ::= SEQUENCE {
+ identity Identity,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+ }
+
+CancelVcsgLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... }
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-MobileServiceOperations.asn b/epan/dissectors/asn1/gsm_map/MAP-MobileServiceOperations.asn
new file mode 100644
index 0000000000..b3275cd788
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-MobileServiceOperations.asn
@@ -0,0 +1,542 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.6.1 Mobile Service Operations
+
+MAP-MobileServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MobileServiceOperations (5)
+ version16 (16)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration operations
+ updateLocation,
+ cancelLocation,
+ purgeMS,
+ sendIdentification,
+
+ -- gprs location registration operations
+ updateGprsLocation,
+
+ -- vcsg location registration operations
+ updateVcsgLocation,
+ cancelVcsgLocation,
+
+ -- 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) version16 (16)}
+
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ UpdateVcsgLocationArg,
+ UpdateVcsgLocationRes,
+ CancelVcsgLocationArg,
+ CancelVcsgLocationRes,
+ 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) version16 (16)}
+
+;
+
+
+-- 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 }
+
+-- vcsg location registration operations
+
+updateVcsgLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ UpdateVcsgLocationArg
+ RESULT
+ UpdateVcsgLocationRes
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:53 }
+
+cancelVcsgLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ CancelVcsgLocationArg
+ RESULT
+ CancelVcsgLocationRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:36 }
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-OM-DataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-OM-DataTypes.asn
new file mode 100644
index 0000000000..722b7bf105
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-OM-DataTypes.asn
@@ -0,0 +1,492 @@
+-- 17.7.2 Operation and maintenance data types
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+
+MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version16 (16)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ ActivateTraceModeArg,
+ ActivateTraceModeRes,
+ DeactivateTraceModeArg,
+ DeactivateTraceModeRes,
+ TracePropagationList
+;
+
+IMPORTS
+ AddressString,
+ IMSI,
+ GSN-Address,
+ GlobalCellId,
+ E-UTRAN-CGI,
+ TA-Id,
+ RAIdentity,
+ LAIFixedLength,
+ PLMN-Id
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+
+;
+
+ActivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ traceType [2] TraceType,
+ omc-Id [3] AddressString OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ traceReference2 [5] TraceReference2 OPTIONAL,
+ traceDepthList [6] TraceDepthList OPTIONAL,
+ traceNE-TypeList [7] TraceNE-TypeList OPTIONAL,
+ traceInterfaceList [8] TraceInterfaceList OPTIONAL,
+ traceEventList [9] TraceEventList OPTIONAL,
+ traceCollectionEntity [10] GSN-Address OPTIONAL,
+ mdt-Configuration [11] MDT-Configuration OPTIONAL
+ }
+
+MDT-Configuration ::= SEQUENCE {
+ jobType JobType,
+ areaScope AreaScope OPTIONAL,
+ listOfMeasurements ListOfMeasurements OPTIONAL,
+ reportingTrigger [0] ReportingTrigger OPTIONAL,
+ reportInterval ReportInterval OPTIONAL,
+ reportAmount [1] ReportAmount OPTIONAL,
+ eventThresholdRSRP EventThresholdRSRP OPTIONAL,
+ eventThresholdRSRQ [2] EventThresholdRSRQ OPTIONAL,
+ loggingInterval [3] LoggingInterval OPTIONAL,
+ loggingDuration [4] LoggingDuration OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ measurementPeriodUMTS [6] PeriodUMTS OPTIONAL,
+ measurementPeriodLTE [7] PeriodLTE OPTIONAL,
+ collectionPeriodRRM-UMTS [8] PeriodUMTS OPTIONAL,
+ collectionPeriodRRM-LTE [9] PeriodLTE OPTIONAL,
+ positioningMethod [10] PositioningMethod OPTIONAL,
+ measurementQuantity [11] MeasurementQuantity OPTIONAL,
+ eventThreshold1F [12] EventThreshold1F OPTIONAL,
+ eventThreshold1I [13] EventThreshold1I OPTIONAL,
+ mdt-Allowed-PLMN-List [14] MDT-Allowed-PLMNId-List OPTIONAL }
+
+MDT-Allowed-PLMNId-List ::= SEQUENCE SIZE (1..16) OF
+ PLMN-Id
+PeriodUMTS ::= ENUMERATED {
+ d250ms (0),
+ d500ms (1),
+ d1000ms (2),
+ d2000ms (3),
+ d3000ms (4),
+ d4000ms (5),
+ d6000ms (6),
+ d8000ms (7),
+ d12000ms (8),
+ d16000ms (9),
+ d20000ms (10),
+ d24000ms (11),
+ d28000ms (12),
+ d32000ms (13),
+ d64000ms (14)}
+
+PeriodLTE ::= ENUMERATED {
+ d1024ms (0),
+ d1280ms (1),
+ d2048ms (2),
+ d2560ms (3),
+ d5120ms (4),
+ d10240ms (5),
+ d1min (6)}
+
+PositioningMethod ::= OCTET STRING (SIZE (1))
+ -- Octet is coded as described in 3GPP TS 32.422 [132].
+
+MeasurementQuantity ::= OCTET STRING (SIZE (1))
+ -- Octet is coded as described in 3GPP TS 32.422 [132].
+
+EventThreshold1F ::= INTEGER
+ (-120..165)
+
+EventThreshold1I ::= INTEGER
+ (-120..-25)
+
+JobType ::= ENUMERATED {
+ immediate-MDT-only (0),
+ logged-MDT-only (1),
+ trace-only (2),
+ immediate-MDT-and-trace (3)}
+
+AreaScope ::= SEQUENCE {
+ cgi-List [0] CGI-List OPTIONAL,
+ e-utran-cgi-List [1] E-UTRAN-CGI-List OPTIONAL,
+ routingAreaId-List [2] RoutingAreaId-List OPTIONAL,
+ locationAreaId-List [3] LocationAreaId-List OPTIONAL,
+ trackingAreaId-List [4] TrackingAreaId-List OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ... }
+
+CGI-List ::= SEQUENCE SIZE (1..32) OF
+ GlobalCellId
+
+E-UTRAN-CGI-List ::= SEQUENCE SIZE (1..32) OF
+ E-UTRAN-CGI
+
+RoutingAreaId-List ::= SEQUENCE SIZE (1..8) OF
+ RAIdentity
+
+LocationAreaId-List ::= SEQUENCE SIZE (1..8) OF
+ LAIFixedLength
+
+TrackingAreaId-List ::= SEQUENCE SIZE (1..8) OF
+ TA-Id
+
+ListOfMeasurements ::= OCTET STRING (SIZE (4))
+ -- Octets are coded as described in 3GPP TS 32.422.
+
+ReportingTrigger ::= OCTET STRING (SIZE (1))
+ -- Octet is coded as described in 3GPP TS 32.422.
+
+ReportInterval ::= ENUMERATED {
+ umts250ms (0),
+ umts500ms (1),
+ umts1000ms (2),
+ umts2000ms (3),
+ umts3000ms (4),
+ umts4000ms (5),
+ umts6000ms (6),
+ umts8000ms (7),
+ umts12000ms (8),
+ umts16000ms (9),
+ umts20000ms (10),
+ umts24000ms (11),
+ umts28000ms (12),
+ umts32000ms (13),
+ umts64000ms (14),
+ lte120ms (15),
+ lte240ms (16),
+ lte480ms (17),
+ lte640ms (18),
+ lte1024ms (19),
+ lte2048ms (20),
+ lte5120ms (21),
+ lte10240ms (22),
+ lte1min (23),
+ lte6min (24),
+ lte12min (25),
+ lte30min (26),
+ lte60min (27)}
+
+
+ReportAmount ::= ENUMERATED {
+ d1 (0),
+ d2 (1),
+ d4 (2),
+ d8 (3),
+ d16 (4),
+ d32 (5),
+ d64 (6),
+ infinity (7)}
+
+EventThresholdRSRP ::= INTEGER
+ (0..97)
+
+EventThresholdRSRQ ::= INTEGER
+ (0..34)
+
+LoggingInterval ::= ENUMERATED {
+ d1dot28 (0),
+ d2dot56 (1),
+ d5dot12 (2),
+ d10dot24 (3),
+ d20dot48 (4),
+ d30dot72 (5),
+ d40dot96 (6),
+ d61dot44 (7)}
+
+LoggingDuration ::= ENUMERATED {
+ d600sec (0),
+ d1200sec (1),
+ d2400sec (2),
+ d3600sec (3),
+ d5400sec (4),
+ d7200sec (5)}
+
+TraceReference ::= OCTET STRING (SIZE (1..2))
+
+TraceReference2 ::= OCTET STRING (SIZE (3))
+
+TraceRecordingSessionReference ::= OCTET STRING (SIZE (2))
+
+TraceType ::= INTEGER
+ (0..255)
+ -- Trace types are fully defined in 3GPP TS 52.008. [61]
+
+TraceDepthList ::= SEQUENCE {
+ msc-s-TraceDepth [0] TraceDepth OPTIONAL,
+ mgw-TraceDepth [1] TraceDepth OPTIONAL,
+ sgsn-TraceDepth [2] TraceDepth OPTIONAL,
+ ggsn-TraceDepth [3] TraceDepth OPTIONAL,
+ rnc-TraceDepth [4] TraceDepth OPTIONAL,
+ bmsc-TraceDepth [5] TraceDepth OPTIONAL,
+ ... ,
+ mme-TraceDepth [6] TraceDepth OPTIONAL,
+ sgw-TraceDepth [7] TraceDepth OPTIONAL,
+ pgw-TraceDepth [8] TraceDepth OPTIONAL,
+ eNB-TraceDepth [9] TraceDepth OPTIONAL,
+ msc-s-TraceDepthExtension [10] TraceDepthExtension OPTIONAL,
+ mgw-TraceDepthExtension [11] TraceDepthExtension OPTIONAL,
+ sgsn-TraceDepthExtension [12] TraceDepthExtension OPTIONAL,
+ ggsn-TraceDepthExtension [13] TraceDepthExtension OPTIONAL,
+ rnc-TraceDepthExtension [14] TraceDepthExtension OPTIONAL,
+ bmsc-TraceDepthExtension [15] TraceDepthExtension OPTIONAL,
+ mme-TraceDepthExtension [16] TraceDepthExtension OPTIONAL,
+ sgw-TraceDepthExtension [17] TraceDepthExtension OPTIONAL,
+ pgw-TraceDepthExtension [18] TraceDepthExtension OPTIONAL,
+ eNB-TraceDepthExtension [19] TraceDepthExtension OPTIONAL }
+
+-- If one of the TraceDepthExtension types is sent, the corresponding TraceDepth type
+-- shall also be sent with the same enumeration value to allow the receiver not supporting
+-- the Extension to fall back to the non extended type.
+-- If one of the TraceDepthExtension types is received and supported, the corresponding
+-- TraceDepth type shall be ignored.
+
+TraceDepth ::= ENUMERATED {
+ minimum (0),
+ medium (1),
+ maximum (2),
+ ...}
+-- The value medium is applicable only for RNC. For other network elements, if value medium
+-- is received, value minimum shall be applied.
+
+TraceDepthExtension ::= ENUMERATED {
+ minimumWithoutVendorSpecificExtension (0),
+ mediumWithoutVendorSpecificExtension (1),
+ maximumWithoutVendorSpecificExtension (2),
+ ...}
+-- The value mediumWithoutVendorSpecificExtension is applicable only for RNC. For other
+-- network elements, if value mediumWithoutVendorSpecificExtension is received, value
+-- minimumWithoutVendorSpecificExtension shall be applied.
+
+TraceNE-TypeList ::= BIT STRING {
+ msc-s (0),
+ mgw (1),
+ sgsn (2),
+ ggsn (3),
+ rnc (4),
+ bm-sc (5) ,
+ mme (6),
+ sgw (7),
+ pgw (8),
+ eNB (9)} (SIZE (6..16))
+-- Other bits than listed above shall be discarded.
+
+TraceInterfaceList ::= SEQUENCE {
+ msc-s-List [0] MSC-S-InterfaceList OPTIONAL,
+ mgw-List [1] MGW-InterfaceList OPTIONAL,
+ sgsn-List [2] SGSN-InterfaceList OPTIONAL,
+ ggsn-List [3] GGSN-InterfaceList OPTIONAL,
+ rnc-List [4] RNC-InterfaceList OPTIONAL,
+ bmsc-List [5] BMSC-InterfaceList OPTIONAL,
+ ...,
+ mme-List [6] MME-InterfaceList OPTIONAL,
+ sgw-List [7] SGW-InterfaceList OPTIONAL,
+ pgw-List [8] PGW-InterfaceList OPTIONAL,
+ eNB-List [9] ENB-InterfaceList OPTIONAL}
+
+MSC-S-InterfaceList ::= BIT STRING {
+ a (0),
+ iu (1),
+ mc (2),
+ map-g (3),
+ map-b (4),
+ map-e (5),
+ map-f (6),
+ cap (7),
+ map-d (8),
+ map-c (9)} (SIZE (10..16))
+-- Other bits than listed above shall be discarded.
+
+MGW-InterfaceList ::= BIT STRING {
+ mc (0),
+ nb-up (1),
+ iu-up (2)} (SIZE (3..8))
+-- Other bits than listed above shall be discarded.
+
+SGSN-InterfaceList ::= BIT STRING {
+ gb (0),
+ iu (1),
+ gn (2),
+ map-gr (3),
+ map-gd (4),
+ map-gf (5),
+ gs (6),
+ ge (7),
+ s3 (8),
+ s4 (9),
+ s6d (10)} (SIZE (8..16))
+-- Other bits than listed above shall be discarded.
+
+GGSN-InterfaceList ::= BIT STRING {
+ gn (0),
+ gi (1),
+ gmb (2)} (SIZE (3..8))
+-- Other bits than listed above shall be discarded.
+
+RNC-InterfaceList ::= BIT STRING {
+ iu (0),
+ iur (1),
+ iub (2),
+ uu (3)} (SIZE (4..8))
+-- Other bits than listed above shall be discarded.
+
+BMSC-InterfaceList ::= BIT STRING {
+ gmb (0)} (SIZE (1..8))
+-- Other bits than listed above shall be discarded.
+
+MME-InterfaceList ::= BIT STRING {
+ s1-mme (0),
+ s3 (1),
+ s6a (2),
+ s10 (3),
+ s11 (4)} (SIZE (5..8))
+-- Other bits than listed above shall be discarded.
+
+SGW-InterfaceList ::= BIT STRING {
+ s4 (0),
+ s5 (1),
+ s8b (2),
+ s11 (3),
+ gxc (4)} (SIZE (5..8))
+-- Other bits than listed above shall be discarded.
+
+PGW-InterfaceList ::= BIT STRING {
+ s2a (0),
+ s2b (1),
+ s2c (2),
+ s5 (3),
+ s6b (4),
+ gx (5),
+ s8b (6),
+ sgi (7)} (SIZE (8..16))
+-- Other bits than listed above shall be discarded.
+
+ENB-InterfaceList ::= BIT STRING {
+ s1-mme (0),
+ x2 (1),
+ uu (2)} (SIZE (3..8))
+-- Other bits than listed above shall be discarded.
+
+TraceEventList ::= SEQUENCE {
+ msc-s-List [0] MSC-S-EventList OPTIONAL,
+ mgw-List [1] MGW-EventList OPTIONAL,
+ sgsn-List [2] SGSN-EventList OPTIONAL,
+ ggsn-List [3] GGSN-EventList OPTIONAL,
+ bmsc-List [4] BMSC-EventList OPTIONAL,
+ ...,
+ mme-List [5] MME-EventList OPTIONAL,
+ sgw-List [6] SGW-EventList OPTIONAL,
+ pgw-List [7] PGW-EventList OPTIONAL}
+
+MSC-S-EventList ::= BIT STRING {
+ mo-mtCall (0),
+ mo-mt-sms (1),
+ lu-imsiAttach-imsiDetach (2),
+ handovers (3),
+ ss (4)} (SIZE (5..16))
+-- Other bits than listed above shall be discarded.
+
+MGW-EventList ::= BIT STRING {
+ context (0)} (SIZE (1..8))
+-- Other bits than listed above shall be discarded.
+
+SGSN-EventList ::= BIT STRING {
+ pdpContext (0),
+ mo-mt-sms (1),
+ rau-gprsAttach-gprsDetach (2),
+ mbmsContext (3)} (SIZE (4..16))
+-- Other bits than listed above shall be discarded.
+
+GGSN-EventList ::= BIT STRING {
+ pdpContext (0),
+ mbmsContext (1)} (SIZE (2..8))
+-- Other bits than listed above shall be discarded.
+
+BMSC-EventList ::= BIT STRING {
+ mbmsMulticastServiceActivation (0)} (SIZE (1..8))
+-- Other bits than listed above shall be discarded.
+
+MME-EventList ::= BIT STRING {
+ ue-initiatedPDNconectivityRequest (0),
+ serviceRequestts (1),
+ initialAttachTrackingAreaUpdateDetach (2),
+ ue-initiatedPDNdisconnection (3),
+ bearerActivationModificationDeletion (4),
+ handover (5)} (SIZE (6..8))
+-- Other bits than listed above shall be discarded.
+
+SGW-EventList ::= BIT STRING {
+ pdn-connectionCreation (0),
+ pdn-connectionTermination (1),
+ bearerActivationModificationDeletion (2)} (SIZE (3..8))
+-- Other bits than listed above shall be discarded.
+
+PGW-EventList ::= BIT STRING {
+ pdn-connectionCreation (0),
+ pdn-connectionTermination (1),
+ bearerActivationModificationDeletion (2)} (SIZE (3..8))
+-- Other bits than listed above shall be discarded.
+
+TracePropagationList ::= SEQUENCE {
+ traceReference [0] TraceReference OPTIONAL,
+ traceType [1] TraceType OPTIONAL,
+ traceReference2 [2] TraceReference2 OPTIONAL,
+ traceRecordingSessionReference [3] TraceRecordingSessionReference OPTIONAL,
+ rnc-TraceDepth [4] TraceDepth OPTIONAL,
+ rnc-InterfaceList [5] RNC-InterfaceList OPTIONAL,
+ msc-s-TraceDepth [6] TraceDepth OPTIONAL,
+ msc-s-InterfaceList [7] MSC-S-InterfaceList OPTIONAL,
+ msc-s-EventList [8] MSC-S-EventList OPTIONAL,
+ mgw-TraceDepth [9] TraceDepth OPTIONAL,
+ mgw-InterfaceList [10] MGW-InterfaceList OPTIONAL,
+ mgw-EventList [11] MGW-EventList OPTIONAL,
+ ...,
+ rnc-TraceDepthExtension [12] TraceDepthExtension OPTIONAL,
+ msc-s-TraceDepthExtension [13] TraceDepthExtension OPTIONAL,
+ mgw-TraceDepthExtension [14] TraceDepthExtension OPTIONAL
+}
+-- If one of the TraceDepthExtension types is sent, the corresponding TraceDepth type
+-- shall also be sent with the same enumeration value to allow the receiver not supporting
+-- the Extension to fall back to the non extended type.
+-- If one of the TraceDepthExtension types is received and supported, the corresponding
+-- TraceDepth type shall be ignored.
+
+ActivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...,
+ traceSupportIndicator [1] NULL OPTIONAL
+ }
+
+DeactivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ traceReference2 [3] TraceReference2 OPTIONAL
+ }
+
+DeactivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-OperationAndMaintenanceOperations.asn b/epan/dissectors/asn1/gsm_map/MAP-OperationAndMaintenanceOperations.asn
new file mode 100644
index 0000000000..df97c9102a
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-OperationAndMaintenanceOperations.asn
@@ -0,0 +1,93 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+--17.6.2 Operation and Maintenance Operations
+MAP-OperationAndMaintenanceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
+ version16 (16)}
+
+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) version16 (16)}
+
+ 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) version16 (16)}
+
+ ISDN-AddressString,
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+;
+
+
+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/epan/dissectors/asn1/gsm_map/MAP-Protocol.asn b/epan/dissectors/asn1/gsm_map/MAP-Protocol.asn
new file mode 100644
index 0000000000..2d8aa11651
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-Protocol.asn
@@ -0,0 +1,176 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+--17.5 MAP operation and error codes
+MAP-Protocol {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version16 (16)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+IMPORTS
+OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+ updateLocation,
+ cancelLocation,
+ cancelVcsgLocation,
+ purgeMS,
+ sendIdentification,
+ updateGprsLocation,
+ updateVcsgLocation,
+ 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)
+ version16 (16)}
+
+ activateTraceMode,
+ deactivateTraceMode,
+ sendIMSI
+FROM MAP-OperationAndMaintenanceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
+ version16 (16)}
+
+ sendRoutingInfo,
+ provideRoamingNumber,
+ resumeCallHandling,
+ setReportingState,
+ statusReport,
+ remoteUserFree,
+ ist-Alert,
+ ist-Command,
+ releaseResources
+FROM MAP-CallHandlingOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CallHandlingOperations (7)
+ version16 (16)}
+
+ 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)
+ version16 (16)}
+
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM,
+ mt-ForwardSM-VGCS
+FROM MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version16 (16)}
+
+ prepareGroupCall,
+ processGroupCallSignalling,
+ forwardGroupCallSignalling,
+ sendGroupCallEndSignal,
+ sendGroupCallInfo
+FROM MAP-Group-Call-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Group-Call-Operations (22)
+ version16 (16)}
+
+ provideSubscriberLocation,
+ sendRoutingInfoForLCS,
+ subscriberLocationReport
+FROM MAP-LocationServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LocationServiceOperations (24)
+ version16 (16)}
+
+
+;
+Supported-MAP-Operations OPERATION ::= {updateLocation | cancelLocation | cancelVcsgLocation |
+purgeMS |
+sendIdentification | updateGprsLocation | updateVcsgLocation | 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 |
+releaseResources | mt-ForwardSM-VGCS | sendGroupCallInfo }
+
+
+
+-- 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/epan/dissectors/asn1/gsm_map/MAP-SM-DataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-SM-DataTypes.asn
new file mode 100644
index 0000000000..22bff756a1
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-SM-DataTypes.asn
@@ -0,0 +1,320 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.7.6 Short message data types
+
+MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version16 (16)}
+
+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,
+ MT-ForwardSM-VGCS-Arg,
+ MT-ForwardSM-VGCS-Res
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ SignalInfo,
+ IMSI,
+ LMSI,
+ ASCI-CallReference,
+ Time,
+ NetworkNodeDiameterAddress,
+ HLR-Id
+
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version16 (16)}
+
+ AbsentSubscriberDiagnosticSM
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+;
+
+
+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-deliveryNotIntended [10] SM-DeliveryNotIntended OPTIONAL,
+ ip-sm-gwGuidanceIndicator [11] NULL OPTIONAL,
+ imsi [12] IMSI OPTIONAL,
+ t4-Trigger-Indicator [14] NULL OPTIONAL,
+ singleAttemptDelivery [13] NULL OPTIONAL,
+ correlationID [15] CorrelationID OPTIONAL }
+
+SM-DeliveryNotIntended ::= ENUMERATED {
+ onlyIMSI-requested (0),
+ onlyMCC-MNC-requested (1),
+ ...}
+
+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,
+ ...,
+ ip-sm-gwGuidance [5] IP-SM-GW-Guidance OPTIONAL }
+
+IP-SM-GW-Guidance ::= SEQUENCE {
+ minimumDeliveryTimeValue SM-DeliveryTimerValue,
+ recommendedDeliveryTimeValue SM-DeliveryTimerValue,
+ extensionContainer 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,
+ networkNodeDiameterAddress [7] NetworkNodeDiameterAddress OPTIONAL,
+ additionalNetworkNodeDiameterAddress [8] NetworkNodeDiameterAddress OPTIONAL,
+ thirdNumber [9] Additional-Number OPTIONAL,
+ thirdNetworkNodeDiameterAddress [10] NetworkNodeDiameterAddress OPTIONAL,
+ imsNodeIndicator [11] NULL OPTIONAL
+ -- gprsNodeIndicator and imsNodeIndicator shall not both be present.
+ -- additionalNumber and thirdNumber shall not both contain the same type of number.
+ }
+
+Additional-Number ::= CHOICE {
+ msc-Number [0] ISDN-AddressString,
+ sgsn-Number [1] ISDN-AddressString}
+ -- msc-number can be the MSC number or
+ -- the SMS Router number or the MME number for MT SMS
+ -- sgsn-number can be the SGSN number or the SMS Router 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,
+ correlationID [0] CorrelationID OPTIONAL,
+ sm-DeliveryOutcome [1] SM-DeliveryOutcome 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,
+ ...,
+ smDeliveryTimer SM-DeliveryTimerValue OPTIONAL,
+ smDeliveryStartTime Time OPTIONAL,
+ smsOverIP-OnlyIndicator [0] NULL OPTIONAL,
+ correlationID [1] CorrelationID OPTIONAL,
+ maximumRetransmissionTime [2] Time OPTIONAL }
+ -- SM-DeliveryTimerValue contains the value used by the SMS-GMSC
+
+CorrelationID ::= SEQUENCE {
+ hlr-id [0] HLR-Id OPTIONAL,
+ sip-uri-A [1] SIP-URI OPTIONAL,
+ sip-uri-B [2] SIP-URI}
+
+SIP-URI ::= OCTET STRING
+-- octets are coded as defined in IETF RFC 3261
+
+MT-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ requestedRetransmissionTime [0] Time 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}
+
+SM-DeliveryTimerValue ::= INTEGER (30..600)
+
+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
+ ip-sm-gw-Indicator [6] NULL OPTIONAL,
+ -- the ip-sm-gw indicator indicates by its presence that sm-deliveryOutcome
+ -- is for delivery via IMS
+ -- If present, deliveryOutcomeIndicator shall be absent.
+ ip-sm-gw-sm-deliveryOutcome [7] SM-DeliveryOutcome OPTIONAL,
+ -- If received ip-sm-gw-sm-deliveryOutcome is for delivery via IMS
+ -- If ip-sm-gw-Indicator is set, then ip-sm-gw-sm-deliveryOutcome shall be absent
+ ip-sm-gw-absentSubscriberDiagnosticSM [8] AbsentSubscriberDiagnosticSM OPTIONAL,
+ -- If received ip-sm-gw-sm-absentSubscriberDiagnosticSM is for delivery via IMS
+ -- If ip-sm-gw-Indicator is set, then ip-sm-gw-sm-absentSubscriberDiagnosticSM
+ -- shall be absent
+ imsi [9] IMSI OPTIONAL,
+ singleAttemptDelivery [10] NULL OPTIONAL,
+ correlationID [11] CorrelationID OPTIONAL
+}
+
+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,
+ ...,
+ imsi IMSI OPTIONAL,
+ correlationID CorrelationID OPTIONAL,
+ maximumUeAvailabilityTime [0] Time OPTIONAL }
+
+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,
+ ...,
+ additionalAlertReasonIndicator [1] NULL OPTIONAL,
+ -- additionalAlertReasonIndicator is set only when the alertReason
+ -- sent to HLR is for IP-SM-GW
+ maximumUeAvailabilityTime Time OPTIONAL }
+
+ReadyForSM-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertReason ::= ENUMERATED {
+ ms-Present (0),
+ memoryAvailable (1)}
+
+MT-ForwardSM-VGCS-Arg ::= SEQUENCE {
+ asciCallReference ASCI-CallReference,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-VGCS-Res ::= SEQUENCE {
+ sm-RP-UI [0] SignalInfo OPTIONAL,
+ dispatcherList [1] DispatcherList OPTIONAL,
+ ongoingCall NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ additionalDispatcherList [3] AdditionalDispatcherList OPTIONAL }
+ -- additionalDispatcherList shall be absent if dispatcherList is absent or
+ -- contains less than 5 ISDN-AddressStrings
+
+DispatcherList ::=
+ SEQUENCE SIZE (1..maxNumOfDispatchers) OF
+ ISDN-AddressString
+
+maxNumOfDispatchers INTEGER ::= 5
+
+AdditionalDispatcherList ::=
+ SEQUENCE SIZE (1..maxNumOfAdditionalDispatchers) OF
+ ISDN-AddressString
+
+maxNumOfAdditionalDispatchers INTEGER ::= 15
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-SS-Code.asn b/epan/dissectors/asn1/gsm_map/MAP-SS-Code.asn
new file mode 100644
index 0000000000..d2f56c34b3
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-SS-Code.asn
@@ -0,0 +1,188 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.7.5 Supplementary service codes
+
+MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version16 (16)}
+
+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
+ -- this SS-Code is used only in InsertSubscriberData, DeleteSubscriberData
+ -- and InterrogateSS
+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/epan/dissectors/asn1/gsm_map/MAP-SS-DataTypes.asn b/epan/dissectors/asn1/gsm_map/MAP-SS-DataTypes.asn
new file mode 100644
index 0000000000..280db566f7
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-SS-DataTypes.asn
@@ -0,0 +1,340 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.7.4 Supplementary service data types
+
+MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version16 (16)}
+
+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) version16 (16)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version16 (16)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version16 (16)}
+;
+
+
+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/epan/dissectors/asn1/gsm_map/MAP-ShortMessageServiceOperations.asn b/epan/dissectors/asn1/gsm_map/MAP-ShortMessageServiceOperations.asn
new file mode 100644
index 0000000000..65fd8f28d7
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-ShortMessageServiceOperations.asn
@@ -0,0 +1,172 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.6.5 Short message service operations
+
+MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version16 (16)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM,
+ mt-ForwardSM-VGCS
+;
+
+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) version16 (16)}
+
+ 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,
+ MT-ForwardSM-VGCS-Arg,
+ MT-ForwardSM-VGCS-Res
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version16 (16)}
+
+;
+
+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
+ -- the timer value may be subject to negotiation between GMSC and IP-SM-GW
+ 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 }
+
+mt-ForwardSM-VGCS OPERATION ::= { --Timer ml
+ ARGUMENT
+ MT-ForwardSM-VGCS-Arg
+ RESULT
+ MT-ForwardSM-VGCS-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue }
+ CODE local:21 }
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/MAP-SupplementaryServiceOperations.asn b/epan/dissectors/asn1/gsm_map/MAP-SupplementaryServiceOperations.asn
new file mode 100644
index 0000000000..a31b0a0c14
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-SupplementaryServiceOperations.asn
@@ -0,0 +1,298 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+--17.6.4 Supplementary service operations
+
+MAP-SupplementaryServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
+ version16 (16)}
+
+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) version16 (16)}
+
+ 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) version16 (16)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version16 (16)}
+;
+
+
+-- 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/epan/dissectors/asn1/gsm_map/MAP-TS-Code.asn b/epan/dissectors/asn1/gsm_map/MAP-TS-Code.asn
new file mode 100644
index 0000000000..5d079d552a
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MAP-TS-Code.asn
@@ -0,0 +1,90 @@
+-- 3GPP TS 29.002 V13.2.0 (2015-12)
+-- 17.7.9 Teleservice Codes
+
+MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version16 (16)}
+
+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/epan/dissectors/asn1/gsm_map/Makefile.am b/epan/dissectors/asn1/gsm_map/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/gsm_map/Makefile.common b/epan/dissectors/asn1/gsm_map/Makefile.common
new file mode 100644
index 0000000000..4e5f516dc9
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/Makefile.common
@@ -0,0 +1,95 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=gsm_map
+
+PROTO_OPT =
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST = \
+ ../ros/Remote-Operations-Information-Objects.asn
+
+DATATYPES_ASN_FILES = \
+ MAP-ExtensionDataTypes.asn \
+ MAP-CommonDataTypes.asn \
+ MAP-SS-DataTypes.asn \
+ MAP-ER-DataTypes.asn \
+ MAP-SM-DataTypes.asn \
+ MAP-OM-DataTypes.asn \
+ MAP-MS-DataTypes.asn \
+ MAP-CH-DataTypes.asn \
+ MAP-LCS-DataTypes.asn \
+ MAP-GR-DataTypes.asn
+
+OPERATIONS_ASN_FILES = \
+ MAP-LocationServiceOperations.asn \
+ MAP-Group-Call-Operations.asn \
+ MAP-ShortMessageServiceOperations.asn \
+ MAP-SupplementaryServiceOperations.asn \
+ MAP-CallHandlingOperations.asn \
+ MAP-OperationAndMaintenanceOperations.asn \
+ MAP-MobileServiceOperations.asn
+
+SS_ASN_FILES = \
+ SS-DataTypes.asn \
+ SS-Operations.asn
+
+PROPRIETARY_ASN_FILES = \
+ Ericsson.asn \
+ Nokia.asn
+
+ASN_FILE_LIST = \
+ MobileDomainDefinitions.asn \
+ MAP-ApplicationContexts.asn \
+ MAP-SS-Code.asn \
+ MAP-BS-Code.asn \
+ MAP-TS-Code.asn \
+ $(DATATYPES_ASN_FILES) \
+ MAP-DialogueInformation.asn \
+ $(OPERATIONS_ASN_FILES) \
+ MAP-Errors.asn \
+ MAP-Protocol.asn \
+ GSMMAP.asn \
+ $(SS_ASN_FILES) \
+ $(PROPRIETARY_ASN_FILES)
+
+INCLUDED_ASN_FILE_LIST = \
+ SS-Errors.asn \
+ SS-Protocol.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/gsm_map/Makefile.nmake b/epan/dissectors/asn1/gsm_map/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/gsm_map/MobileDomainDefinitions.asn b/epan/dissectors/asn1/gsm_map/MobileDomainDefinitions.asn
new file mode 100644
index 0000000000..ce1947eb7f
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/MobileDomainDefinitions.asn
@@ -0,0 +1,30 @@
+-- ETSI ETR 091 ed.1 http://www.etsi.org
+
+MobileDomainDefinitions {ccitt (0) identified-organization (4) etsi (0)
+mobileDomain (0) mobileDomainDefinitions (0) version1 (1)}
+
+DEFINITIONS ::=
+BEGIN
+
+-- Mobile DomainId
+
+mobileDomainId OBJECT IDENTIFIER ::= {ccitt (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/epan/dissectors/asn1/gsm_map/Nokia.asn b/epan/dissectors/asn1/gsm_map/Nokia.asn
new file mode 100644
index 0000000000..75536232ab
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/Nokia.asn
@@ -0,0 +1,689 @@
+-- Nokia proprietary extensions
+--
+NokiaMAP-Extensions
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Category,
+ ODB-Data,
+ CUG-Interlock
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version13 (13)}
+
+ ISDN-AddressString,
+ AddressString,
+ TBCD-STRING,
+ SignalInfo,
+ BasicServiceCode,
+ IMSI,
+ IMEI,
+ SubscriberIdentity,
+ CellGlobalIdOrServiceAreaIdFixedLength,
+ LAIFixedLength,
+ Ext-SS-Status
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13)}
+
+ PrivateExtension,
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version13 (13)}
+
+ TraceReference,
+ TraceType
+FROM MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version13 (13)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SS-Code (15) version10 (10)}
+
+ SS-Status, USSD-DataCodingScheme, USSD-String, CCBS-Feature
+-- USSD-DataCodingScheme, USSD-String were introduced because of CNAP.
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SS-DataTypes (14) version10 (10)}
+
+
+;
+
+
+ExtensionSet MAP-EXTENSION ::= {
+ { &ExtensionType; IsdArgExt, &extensionId; {0 34 0} } |
+ { &ExtensionType; DsdArgExt, &extensionId; {0 34 1} } |
+ { &ExtensionType; UlResExt, &extensionId; {0 34 2} } |
+ { &ExtensionType; SS-DataExtension, &extensionId; {0 34 4} } |
+ { &ExtensionType; SriExtension, &extensionId; {0 34 5} } |
+ { &ExtensionType; ExtraSignalInfo, &extensionId; {0 34 6} } |
+ { &ExtensionType; SriResExtension, &extensionId; {0 34 7} } |
+ { &ExtensionType; CanLocArgExt, &extensionId; {0 34 10} } |
+ { &ExtensionType; ATMargExt, &extensionId; {0 34 11} } |
+ { &ExtensionType; DTMargExt, &extensionId; {0 34 12} } |
+ { &ExtensionType; NumberPorted, &extensionId; {0 34 13} } |
+ { &ExtensionType; HO-Ext, &extensionId; {0 34 15} } |
+ { &ExtensionType; ATMresExt, &extensionId; {0 34 16} } |
+ { &ExtensionType; AbsentSubscriberExt, &extensionId; {0 34 17} } |
+ { &ExtensionType; SriForSMArgExt, &extensionId; {0 34 18} } |
+ { &ExtensionType; ReportSMDelStatArgExt, &extensionId; {0 34 19} } |
+ { &ExtensionType; UdlArgExt, &extensionId; {0 34 20} } |
+ { &ExtensionType; RoamNotAllowedExt, &extensionId; {0 34 21} } |
+ { &ExtensionType; MO-ForwardSM-ArgExt, &extensionId; {0 34 22} } |
+ { &ExtensionType; ErrOlcmInfoTableExt, &extensionId; {0 34 23} } |
+ { &ExtensionType; RoutingCategoryExt, &extensionId; {0 34 25} } |
+ { &ExtensionType; AnyTimeModArgExt, &extensionId; {0 34 26} } |
+ { &ExtensionType; ExtensionType, &extensionId; {1 2 826 0 1249 58 1 0} } |
+ { &ExtensionType; AccessTypeExt, &extensionId; {1 3 12 2 1107 3 66 1 1} } |
+ { &ExtensionType; AccessSubscriptionListExt, &extensionId; {1 3 12 2 1107 3 66 1 3} } |
+ { &ExtensionType; AllowedServiceData, &extensionId; {1 3 12 2 1107 3 66 1 6} },
+...}
+ -- ExtensionSet is the set of all defined private extensions
+ -- Unsupported private extensions shall be discarded if received.
+
+
+RoutingCategory ::= OCTET STRING (SIZE (1))
+ -- value 0 means that RoutingCategory is released
+
+maxNumOfActiveSS INTEGER ::= 30
+
+ActiveSS-List ::= OCTET STRING (SIZE (1..maxNumOfActiveSS))
+
+ExtRoutingCategory ::= INTEGER (0..2147483647)
+
+IsdArgExt ::= [PRIVATE 0] SEQUENCE {
+ alsLineIndicator [0] NULL OPTIONAL,
+ routingCategory [1] RoutingCategory OPTIONAL,
+ serviceList [2] MAPserviceList OPTIONAL,
+ serv-info-list [3] ServiceListWithInfo OPTIONAL,
+ extRoutingCategory [5] ExtRoutingCategory OPTIONAL,
+ ownMSISDN [6] ISDN-AddressString OPTIONAL,
+ ...}
+ -- Note : additional routing category is removed from VLR by
+ -- sending ISD with add-RC value zero (0).
+
+DsdArgExt ::= [PRIVATE 0] SEQUENCE {
+ alsLineIndicator [0] NULL OPTIONAL,
+ serviceList [1] MAPserviceList OPTIONAL,
+ ...}
+
+UlResExt ::= [PRIVATE 0] SEQUENCE {
+ mwd-Set [0] NULL OPTIONAL,
+ ...}
+
+EmoInCategoryKey ::= TBCD-STRING (SIZE (1..3))
+
+SS-DataEmoInExt ::= [PRIVATE 1] SEQUENCE {
+ emoInCategoryKey [PRIVATE 2] EmoInCategoryKey OPTIONAL,
+ ...}
+
+InTriggerKey ::= INTEGER (1..65535)
+
+PnpIndex ::= OCTET STRING (SIZE (3))
+ -- digits 0 through 9, two digits per octet,
+ -- each digit encoded 0000 to 0001,
+ -- 5 digits, 1111 used as filler for last digit.
+
+CallRedirectionIndex ::= INTEGER (0..255)
+
+ChargingArea ::= INTEGER (1..9999)
+
+maxNumOfCA INTEGER ::= 3
+
+ChargingAreaList ::= SEQUENCE SIZE (1..maxNumOfCA) OF
+ ChargingArea
+
+RegionalChargingData ::= SEQUENCE {
+ chargingAreaList [0] ChargingAreaList OPTIONAL,
+ ...}
+
+SS-DataExtension ::= [PRIVATE 0] SEQUENCE {
+ inTriggerKey [0] InTriggerKey OPTIONAL,
+ pnpIndex [1] PnpIndex OPTIONAL,
+ callRedirectionIndex [2] CallRedirectionIndex OPTIONAL,
+ regionalChargingData [3] RegionalChargingData OPTIONAL,
+ ...}
+
+SriExtension ::= [PRIVATE 0] SEQUENCE {
+ callForwardingOverride [0] NULL OPTIONAL,
+ in-Capability [1] NULL OPTIONAL,
+ callingCategory [2] CallingCategory OPTIONAL,
+ internalServiceIndicator [3] InternalServiceIndicator OPTIONAL,
+ srbtSupportIndicator [4] NULL OPTIONAL,
+ gmscSupportIndicator [5] NULL OPTIONAL,
+ ...}
+
+CallingCategory ::= OCTET STRING (SIZE (1))
+ -- 'E9'hex used in SRI-arg
+ -- 'E8'hex used in SRI-res
+
+InternalServiceIndicator ::= OCTET STRING (SIZE (1))
+ -- bits 8765: 0000 (unused)
+ -- bit 4: intelligent alerting
+ -- bit 3: parallel alerting
+ -- bit 2: member interrogation
+ -- bit 1: sequential alerting
+ -- 1 set
+ -- 0 not set
+
+ExtraProtocolId ::= INTEGER { q763 (1)} (1..20)
+
+ExtraSignalInfo ::= [PRIVATE 1] SEQUENCE {
+ protocolId ExtraProtocolId,
+ signalInfo SignalInfo }
+
+CUG-CallInfo ::= OCTET STRING (SIZE (1..4))
+ -- xxxx xx00 - not used
+ -- xxxx xx01 - CUG call
+ -- xxxx xx10 - non CUG call
+ -- xxxx xx11 - maybe a CUG call
+
+Nokia-CUG-Data ::= SEQUENCE {
+ cug-Interlock [0] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [1] BOOLEAN OPTIONAL,
+ cug-CallInfo [2] CUG-CallInfo OPTIONAL,
+ ...}
+ -- cug-OutgoingAccess must be BOOLEAN (not NULL), because
+ -- it must be possible to transfer cug-CallInfo without
+ -- the other parameters
+
+SriResExtension ::= [PRIVATE 0] SEQUENCE {
+ inTriggerKey [0] InTriggerKey OPTIONAL,
+ vlrNumber [1] ISDN-AddressString OPTIONAL,
+ activeSs [2] ActiveSS-List OPTIONAL,
+ traceReference [3] TraceReference OPTIONAL,
+ traceType [4] TraceType OPTIONAL,
+ omc-Id [5] AddressString OPTIONAL,
+ hotBilling [6] BOOLEAN OPTIONAL,
+ cfoIsDone [7] BOOLEAN OPTIONAL,
+ cfInCug [8] BOOLEAN OPTIONAL,
+ basicService [9] BasicServiceCode OPTIONAL,
+ category [10] Category OPTIONAL,
+ routingCategory [11] RoutingCategory OPTIONAL,
+ pnpIndex [12] PnpIndex OPTIONAL,
+ nokia-CUG [13] Nokia-CUG-Data OPTIONAL,
+ noBarrings [14] NULL OPTIONAL,
+ odb-Data [15] ODB-Data OPTIONAL,
+ fraudData [16] FraudData OPTIONAL,
+ extRoutingCategory [17] ExtRoutingCategory OPTIONAL,
+ leaId [18] LeaId OPTIONAL,
+ olcmInfoTable [19] OlcmInfoTable OPTIONAL,
+ callingCategory [20] CallingCategory OPTIONAL,
+ commonMSISDN [21] ISDN-AddressString OPTIONAL,
+ rgData [22] RgData OPTIONAL,
+ olcmTraceReference [23] OlcmTraceReference OPTIONAL,
+ ...}
+
+RgData ::= SEQUENCE {
+ noAnswerTimer [0] NoAnswerTimer OPTIONAL,
+ memberList [1] MemberList OPTIONAL,
+ alertingMethod [2] AlertingMethod OPTIONAL,
+ userType [3] UserType OPTIONAL,
+ divertedToNbr [4] ISDN-AddressString OPTIONAL,
+ memberOfSuppression [5] NULL OPTIONAL,
+ ringbacktone [6] NULL OPTIONAL,
+ ...}
+
+NoAnswerTimer ::= OCTET STRING (SIZE (1))
+
+MemberList ::= SEQUENCE SIZE (1..5) OF
+ ISDN-AddressString
+
+AlertingMethod ::= OCTET STRING (SIZE (1))
+ -- '00' = sequential
+ -- '01' = parallel
+ -- '02' = sequential / parallel
+ -- '03' = intelligent
+
+UserType ::= OCTET STRING (SIZE (1))
+ -- '00' = single
+ -- '01' = multiple
+
+MAPserviceCode ::= OCTET STRING (SIZE (1))
+
+picLock MAPserviceCode ::= '00000001'B
+prefCarrierId MAPserviceCode ::= '00000010'B
+mKey MAPserviceCode ::= '00000011'B
+smsKey MAPserviceCode ::= '00000100'B
+fraud-Data MAPserviceCode ::= '00000101'B
+cell-update MAPserviceCode ::= '00000110'B
+
+maxnumOfMAPservices INTEGER ::= 256
+
+MAPserviceList ::= OCTET STRING (SIZE (0..maxnumOfMAPservices))
+
+CarrierIdCode ::= OCTET STRING (SIZE (3))
+ -- the internal structure is defined in T1.113
+
+PrefCarrierIdList ::= SEQUENCE {
+ prefCarrierIdCode1 [0] CarrierIdCode,
+ ...}
+
+ANSIIsdArgExt ::= [PRIVATE 30] SEQUENCE {
+ prefCarrierIdList [0] PrefCarrierIdList OPTIONAL,
+ ...}
+
+ANSISriResExt ::= [PRIVATE 30] SEQUENCE {
+ prefCarrierIdList [0] PrefCarrierIdList OPTIONAL,
+ ...}
+
+CanLocArgExt ::= [PRIVATE 0] SEQUENCE {
+ termination [0] OCTET STRING (SIZE (1)) OPTIONAL,
+ ...}
+
+ATMargExt ::= [PRIVATE 0] SEQUENCE {
+ traceReference [0] TraceReference OPTIONAL,
+ traceType [1] TraceType OPTIONAL,
+ leaId [2] LeaId OPTIONAL,
+ olcmInfoTable [3] OlcmInfoTable OPTIONAL,
+ olcmTraceReference [4] OlcmTraceReference OPTIONAL,
+ ... }
+
+LeaId ::= INTEGER (0..65535)
+
+OlcmInfoTable ::= SEQUENCE SIZE (1..maxNumOfLEAs) OF
+ OlcmInfo
+
+maxNumOfLEAs INTEGER ::= 7
+
+OlcmInfo ::= SEQUENCE {
+ traceReference [0] TraceReference,
+ traceType [1] TraceType,
+ leaId [2] LeaId OPTIONAL,
+ olcmTraceReference [3] OlcmTraceReference OPTIONAL,
+ ... }
+
+OlcmTraceReference ::= OCTET STRING (SIZE (1..4))
+
+ATMresExt ::= [PRIVATE 0] SEQUENCE {
+ olcmActive [0] NULL OPTIONAL,
+ ... }
+
+DTMargExt ::= [PRIVATE 0] SEQUENCE {
+ traceType [0] TraceType OPTIONAL,
+ leaId [1] LeaId OPTIONAL,
+ olcmTraceReference [2] OlcmTraceReference OPTIONAL,
+ ... }
+
+VersionInfo ::= OCTET STRING (SIZE (1))
+ -- 0000 0001 : version 1
+
+maxNumOfServicesWithInfo INTEGER ::= 20
+
+FraudInfo ::= SEQUENCE {
+ moc [0] FraudData OPTIONAL,
+ cf [1] FraudData OPTIONAL,
+ ct [2] FraudData OPTIONAL,
+ ...}
+
+FraudData ::= SEQUENCE {
+ time [0] TimeLimit OPTIONAL,
+ timeAction [1] ActionType OPTIONAL,
+ maxCount [2] FraudMaxCount OPTIONAL,
+ maxCountAction [3] ActionType OPTIONAL,
+ ...}
+
+TimeLimit ::= INTEGER (0..64800)
+
+ActionType ::= OCTET STRING (SIZE (1..10))
+ -- only 1st octet is used to transfer action type in M10
+ -- other octets are reserved for future use
+
+FraudMaxCount ::= INTEGER (0..255)
+
+ServiceWithInfo ::= SEQUENCE {
+ serviceCode [0] MAPserviceCode OPTIONAL,
+ versionInfo [1] VersionInfo DEFAULT '1'B,
+ in-key INKey OPTIONAL,
+ fraudInfo FraudInfo OPTIONAL,
+ ...}
+
+ServiceListWithInfo ::= SEQUENCE SIZE (1..maxNumOfServicesWithInfo) OF
+ ServiceWithInfo
+
+INKey ::= CHOICE {
+ mobile-IN-key [2] MKey,
+ sms-IN-key [3] SMSKey }
+
+MmTdpName ::= OCTET STRING (SIZE (1..8))
+ -- bits 876543: 000000 (unused)
+ --
+ -- bit 2: Intra-VLR-Locup-DP
+ -- 1 DP is set
+ -- 0 DP is not set
+ --
+ -- bit 1: Inter-VLR-Locup-DP
+ -- 1 DP is set
+ -- 0 DP is not set
+
+ServiceKey ::= INTEGER (0..2147483647)
+ -- 4 bytes
+
+MKeyVer ::= OCTET STRING (SIZE (1))
+ -- 0000 0001 : version 1
+
+LocupType ::= OCTET STRING (SIZE (1..8))
+ -- bits 87654: 00000 (unused)
+ --
+ -- bit 3: Normal-Locup
+ -- 1 LocupType is set (default)
+ -- 0 LocupType is not set
+ --
+ -- bit 2: Periodic-Locup
+ -- 1 LocupType is set
+ -- 0 LocupType is not set (default)
+ --
+ -- bit 1: IMSI-attach-Locup
+ -- 1 LocupType is set
+ -- 0 LocupType is not set (default)
+
+MKey::= SEQUENCE{
+ mKeyVer [0] MKeyVer DEFAULT '1'B,
+ mmScfAddress [1] ISDN-AddressString OPTIONAL,
+ mmTdpName [2] MmTdpName OPTIONAL,
+ serviceKey [3] ServiceKey OPTIONAL,
+ locupType [4] LocupType OPTIONAL,
+ ...}
+ -- if mKeyVer parameter is missing, it is interpreted as
+ -- "version 1".
+ -- mmScfAddress, mmTtdpId and serviceKey parameters must be
+ -- present on version 1.
+ --
+ -- Feature 742 : "IN Mobility Management"
+
+SmsTdpName ::= OCTET STRING (SIZE (1..8))
+ -- bits 87654: 00000 (unused)
+ --
+ -- bit 3: SR-SMS-DP
+ -- 1 DP is set
+ -- 0 DP is not set
+ --
+ -- bit 2: MO-SMS-DP
+ -- 1 DP is set
+ -- 0 DP is not set
+ --
+ -- bit 1: MT-SMS-DP
+ -- 1 DP is set
+ -- 0 DP is not set
+
+SMSKey ::= SEQUENCE{
+ mmSCPAddress [0] ISDN-AddressString OPTIONAL,
+ smsTdpName [1] SmsTdpName OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ mmsFlag [3] NULL OPTIONAL,
+ ...}
+
+NumberPorted ::= [PRIVATE 20] ENUMERATED {
+ notPorted (0),
+ ported (1),
+ ...}
+
+USSD-Extension ::= [PRIVATE 10] SEQUENCE {
+ routingCategory [0] RoutingCategory OPTIONAL,
+ cellId [1] CellGlobalIdOrServiceAreaIdFixedLength OPTIONAL,
+ sai-Present [2] NULL OPTIONAL,
+ ...}
+
+HO-Ext ::= [PRIVATE 0] SEQUENCE {
+ map-Opt [0] MapOptFields OPTIONAL,
+ codec-List [1] CodecListExt OPTIONAL,
+ selected-Codec [2] SelectedCodec OPTIONAL,
+ uma-access [3] NULL OPTIONAL,
+ uma-ip-address [4] OCTET STRING (SIZE (5..17)) OPTIONAL,
+ uma-ip-port-nb [5] IPPortNb OPTIONAL,
+ ... }
+
+MapOptFields ::= OCTET STRING (SIZE (1))
+ -- bits 87: 00 (unused)
+ -- bit 6: codec
+ -- 1 set
+ -- 0 not set
+ -- bit 5: tfo_set
+ -- 1 set
+ -- 0 not set
+ -- bit 4: tfo_not_set
+ -- 1 set
+ -- 0 not set
+ -- bit 3: emerg
+ -- 1 set
+ -- 0 not set
+ -- bit 2: usim
+ -- 1 set
+ -- 0 not set
+ -- bit 1: sim
+ -- 1 set
+ -- 0 not set
+
+CodecListExt ::= SEQUENCE (SIZE(0..maxNumOfCodec)) OF
+ CodecExt
+
+maxNumOfCodec INTEGER ::= 8
+
+CodecExt ::= OCTET STRING (SIZE(1))
+
+SelectedCodec ::= SEQUENCE {
+ codec [0] CodecExt,
+ modes [1] Modes,
+ ...}
+
+Modes ::= OCTET STRING (SIZE(9))
+
+IPPortNb ::= INTEGER (0..65535)
+
+AbsentSubscriberExt ::= [PRIVATE 0] SEQUENCE {
+ olcmInfoTable [0] OlcmInfoTable OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ ...}
+
+ErrOlcmInfoTableExt ::= [PRIVATE 0] SEQUENCE {
+ olcmInfoTable [0] OlcmInfoTable OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ ...}
+
+RoutingCategoryExt ::= [PRIVATE 0] SEQUENCE {
+ routingCategory [0] RoutingCategory OPTIONAL,
+ extRoutingCategory [1] ExtRoutingCategory OPTIONAL,
+ ... }
+
+ExtensionType ::= CHOICE {
+ isdArgType [1] IsdArgType,
+ isdResType [2] IsdResType,
+ dsdArgType [3] DsdArgType,
+ sriArgType [4] SriArgType,
+ sriResType [5] SriResType,
+ prnArgType [6] PrnArgType,
+ ulArgType [7] UlArgType }
+
+IsdArgType ::= SEQUENCE (SIZE(1..50)) OF
+ IsdArgData
+
+IsdArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ privateFeatureData PrivateFeatureData OPTIONAL,
+ ...}
+
+PrivateFeatureCode ::= OCTET STRING (SIZE (1))
+
+PrivateFeatureData ::= CHOICE {
+ oickInfo [7] OickInfo,
+ subscriptionTypeInfo [3] SubscriptionTypeInfo }
+
+OickInfo ::= SEQUENCE {
+ ss-Status Ext-SS-Status,
+ inCategoryKey INCategoryKey }
+
+INCategoryKey ::= TBCD-STRING (SIZE(1..3))
+
+SubscriptionTypeInfo ::= SEQUENCE {
+ subscriptionType SubscriptionType }
+
+SubscriptionType ::= OCTET STRING (SIZE(1))
+
+IsdResType ::= SEQUENCE (SIZE(1..50)) OF
+ IsdResData
+
+IsdResData ::= SEQUENCE {
+ supportedPrivateFeature [1] PrivateFeatureCode OPTIONAL,
+ ... }
+
+DsdArgType ::= SEQUENCE (SIZE (1..50)) OF
+ DsdArgData
+
+DsdArgData ::= SEQUENCE {
+ privateFeatureWithdraw PrivateFeatureCode }
+
+SriArgType ::= SEQUENCE (SIZE(1..50)) OF
+ SriArgData
+
+SriArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ extraNetworkInfo [2] ExtraSignalInfo OPTIONAL,
+ ... }
+
+SriResType ::= SEQUENCE (SIZE(1..50)) OF
+ SriResData
+
+SriResData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ inCategoryKey [2] INCategoryKey OPTIONAL,
+ subscriptionType [5] SubscriptionType OPTIONAL,
+ ... }
+
+PrnArgType ::= SEQUENCE (SIZE(1..50)) OF
+ PrnArgData
+
+PrnArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ ...,
+ extraNetworkInfo [2] ExtraSignalInfo OPTIONAL }
+
+
+UlArgType ::= SEQUENCE (SIZE(1..50)) OF
+ UlArgData
+
+UlArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ privateFeatureUlArgData PrivateFeatureUlArgData OPTIONAL,
+ ... }
+
+PrivateFeatureUlArgData ::= CHOICE {
+ adc [3] IMEI }
+
+SriForSMArgExt ::= [PRIVATE 0] SEQUENCE {
+ cfuSMSCounter [0] CfuSMSCounter OPTIONAL,
+ cfusmcfo [2] NULL OPTIONAL,
+ memberInterrogate [3] NULL OPTIONAL,
+ ... }
+
+ReportSMDelStatArgExt ::= [PRIVATE 0] SEQUENCE {
+ cfuSMSCounter [0] CfuSMSCounter OPTIONAL,
+ cfusmcfo [2] NULL OPTIONAL,
+ ... }
+
+CfuSMSCounter ::= OCTET STRING (SIZE (1))
+
+MO-ForwardSM-ArgExt ::= [PRIVATE 0] SEQUENCE {
+ locationAreaCode [0] LocationAreaCode OPTIONAL,
+ cellId [1] CellGlobalIdOrServiceAreaIdFixedLength OPTIONAL,
+ ... }
+
+LocationAreaCode ::= OCTET STRING(SIZE (2))
+ -- octets 1 and 2 of LocationAreaCode according to 3GPP TS 24.008
+
+UdlArgExt ::= [PRIVATE 0] SEQUENCE {
+ lai [0] LAIFixedLength OPTIONAL,
+ sendImmResp [1] NULL OPTIONAL,
+ ... }
+
+RoamNotAllowedExt ::= [PRIVATE 0] SEQUENCE {
+ rejectCause [0] OCTET STRING (SIZE (1)) OPTIONAL,
+ ... }
+
+AnyTimeModArgExt ::= [PRIVATE 0] SEQUENCE {
+ senderMSISDN [0] ISDN-AddressString OPTIONAL,
+ ... }
+
+CosInfo::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ cos-FeatureList COS-FeatureList }
+
+COS-FeatureList ::= SEQUENCE SIZE (1..maxNumberOfCOSFeatures) OF
+ COS-Feature
+
+maxNumberOfCOSFeatures INTEGER ::= 13
+ -- This reflects the number of basic service groups, and is
+ -- consistent with other features (i.e., Forwarding Features,
+ -- CallBarring Features, etc.).
+
+COS-Feature ::= SEQUENCE {
+ basicServiceCode BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status,
+ customerGroupID [5] CustomerGroupID OPTIONAL,
+ subGroupID [6] SubGroupID OPTIONAL,
+ classOfServiceID [7] ClassOfServiceID OPTIONAL }
+
+CustomerGroupID ::= BIT STRING {
+ formatIndicator (0),
+ idHighBit (8),
+ netidHighBit (16),
+ idLowBit (31) } (SIZE(32))
+ -- formatIndicator is encoded as follows:
+ -- 0 : International Format
+ -- 1 : Network Format
+ -- Bits 1-7 Unused (encoded as 0000000)
+ -- The remaining bits (3 octets) are the bit representation of the
+ -- Customer Group Identifier. All bits are significant.
+
+SubGroupID ::= BIT STRING (SIZE (16))
+
+ClassOfServiceID ::= BIT STRING {
+ formatIndicator (0),
+ idHighBit (8),
+ idLowBit (15) } (SIZE(16))
+ -- formatIndicator is encoded as follows:
+ -- 0 : International Format
+ -- 1 : Network Format
+ -- Bits 1-7 Unused (encoded as 0000000)
+ -- The remaining bits (one octet) is the bit representation of the
+ -- Class Of Service Identifier. All bits are significant.
+
+AccessTypeExt ::= SEQUENCE {
+ access Access,
+ version Version,
+ ...}
+
+Access ::= ENUMERATED {
+ gsm (1),
+ geran (2),
+ utran (3),
+ ...}
+
+Version ::= INTEGER (1..20)
+
+AccessSubscriptionListExt ::= SEQUENCE SIZE (1..10) OF
+ Access
+
+AllowedServiceData ::= BIT STRING {
+ amr-wb-allowed (0)} (SIZE(1..16))
+
+AnyTimePO-BarringArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ gsmSCF-Address [3] ISDN-AddressString,
+ gprs-Barring GprsBarring,
+ ...}
+
+AnyTimePO-BarringRes ::= SEQUENCE {
+ ...}
+
+GprsBarring ::= ENUMERATED {
+ gprsServiceBarring (0),
+ grantGPRS-Service (1),
+ ...}
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/SS-DataTypes.asn b/epan/dissectors/asn1/gsm_map/SS-DataTypes.asn
new file mode 100644
index 0000000000..4a02d004e2
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/SS-DataTypes.asn
@@ -0,0 +1,489 @@
+-- 3GPP TS 24.080 V9.1.0 (2010-03)
+-- 4.4.2 ASN.1 data types
+SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
+ ss-DataTypes (2) version10 (10)}
+
+DEFINITIONS
+
+IMPLICIT TAGS ::=
+
+BEGIN
+
+-- exports all data types defined in this module
+
+IMPORTS
+
+SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SS-Code (15) version10 (10)}
+
+-- imports MAP-SS-DataTypes
+SS-Status, USSD-DataCodingScheme, USSD-String, CCBS-Feature
+-- USSD-DataCodingScheme, USSD-String were introduced because of CNAP.
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SS-DataTypes (14) version10 (10)}
+
+--- GSN-Address, WS fix, fault in spec this is now in CommonDataTypes
+CUG-Index,
+NotificationToMSUser
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-MS-DataTypes (11) version10 (10)}
+
+maxSignalInfoLength,
+ISDN-AddressString,
+ISDN-SubaddressString,
+AlertingPattern,
+LCSClientExternalID,
+AddressString,
+LCSServiceTypeID,
+GSN-Address, -- WS fix
+AgeOfLocationInformation
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-CommonDataTypes (18) version10 (10)}
+
+LocationType,
+DeferredLocationEventType,
+LCSClientName,
+LCS-QoS,
+Horizontal-Accuracy,
+ResponseTime,
+Ext-GeographicalInformation,
+VelocityEstimate,
+SupportedGADShapes,
+Add-GeographicalInformation,
+LCSRequestorID,
+LCS-ReferenceNumber,
+LCSCodeword,
+AreaEventInfo,
+ReportingPLMNList,
+PeriodicLDRInfo,
+SequenceNumber
+
+FROM MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version10 (10)}
+
+;
+
+-- data types definition
+
+SS-UserData ::= IA5String (SIZE (1.. maxSignalInfoLength))
+
+NotifySS-Arg ::= SEQUENCE{
+ ss-Code [1] SS-Code OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ss-Notification [5] SS-Notification OPTIONAL,
+ callIsWaiting-Indicator [14] NULL OPTIONAL,
+ callOnHold-Indicator [15] CallOnHold-Indicator OPTIONAL,
+ mpty-Indicator [16] NULL OPTIONAL,
+ cug-Index [17] CUG-Index OPTIONAL,
+ clirSuppressionRejected [18] NULL OPTIONAL,
+ ... ,
+ ect-Indicator [19] ECT-Indicator OPTIONAL,
+ nameIndicator [20] NameIndicator OPTIONAL,
+ ccbs-Feature [21] CCBS-Feature OPTIONAL,
+ alertingPattern [22] AlertingPattern OPTIONAL,
+ multicall-Indicator [23] Multicall-Indicator OPTIONAL}
+
+-- The nameIndicator is defined because of CNAP.
+
+Multicall-Indicator ::= ENUMERATED {
+ nbr-SNexceeded (0),
+ nbr-Userexceeded (1)}
+
+ForwardChargeAdviceArg ::= SEQUENCE{
+ ss-Code [0] SS-Code,
+ chargingInformation [1] ChargingInformation,
+ ...}
+
+SS-Notification ::= OCTET STRING (SIZE (1))
+
+-- Bit 8 7 6 5 4 00000 (Unused)
+
+-- Bit 3 Call is forwarded indication to A-subscriber
+-- (calling subscriber)
+-- 0 No information content
+-- 1 Outgoing call has been forwarded to C
+
+-- Bit 2 Call is forwarded indication to B-subscriber
+-- (forwarding subscriber)
+-- 0 No information content
+-- 1 Incoming call has been forwarded to C
+
+-- Bit 1 Call is forwarded indication to C-subscriber
+-- (forwarded-to subscriber)
+-- 0 No information content
+-- 1 Incoming call is a forwarded call
+
+ChargingInformation ::= SEQUENCE{
+ e1 [1] E1 OPTIONAL,
+ e2 [2] E2 OPTIONAL,
+ e3 [3] E3 OPTIONAL,
+ e4 [4] E4 OPTIONAL,
+ e5 [5] E5 OPTIONAL,
+ e6 [6] E6 OPTIONAL,
+ e7 [7] E7 OPTIONAL,
+ ...}
+
+E1 ::= INTEGER (0..max10TimesUnitsPerTime)
+max10TimesUnitsPerTime INTEGER ::= 8191
+
+E2 ::= INTEGER (0..max10TimesTimeInterval)
+max10TimesTimeInterval INTEGER ::= 8191
+
+E3 ::= INTEGER (0..max100TimesScalingFactor)
+max100TimesScalingFactor INTEGER ::= 8191
+
+E4 ::= INTEGER (0..max10TimesIncrement)
+max10TimesIncrement INTEGER ::= 8191
+
+E5 ::= INTEGER (0..max10TimesIncrementPerDataInterval)
+max10TimesIncrementPerDataInterval INTEGER ::= 8191
+
+E6 ::= INTEGER (0..maxNumberOfSegmentsPerDataInterval)
+maxNumberOfSegmentsPerDataInterval INTEGER ::= 8191
+
+E7 ::= INTEGER (0..max10TimesInitialTime)
+max10TimesInitialTime INTEGER ::= 8191
+
+CallOnHold-Indicator ::= ENUMERATED {
+ callRetrieved (0),
+ callOnHold (1)}
+
+ForwardCUG-InfoArg ::= SEQUENCE {
+ cug-Index [0] CUG-Index OPTIONAL,
+ suppressPrefCUG [1] NULL OPTIONAL,
+ suppressOA [2] NULL OPTIONAL,
+ ...}
+
+ECT-Indicator ::= SEQUENCE {
+ ect-CallState [0] ECT-CallState,
+ rdn [1] RDN OPTIONAL,
+ ...}
+
+ECT-CallState ::= ENUMERATED {
+ alerting (0),
+ active (1)}
+
+ NameIndicator ::= SEQUENCE {
+ callingName [0] Name OPTIONAL,
+ ...}
+
+ Name ::= CHOICE {
+ namePresentationAllowed [0] NameSet,
+ presentationRestricted [1] NULL,
+ nameUnavailable [2] NULL,
+ namePresentationRestricted [3] NameSet}
+
+ NameSet ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ lengthInCharacters [1] INTEGER,
+ nameString [2] USSD-String,
+ ...}
+
+-- NameIndicator, Name and NameSet are defined because of CNAP.
+-- 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|
+
+RDN ::= CHOICE {
+ presentationAllowedAddress [0] RemotePartyNumber,
+ presentationRestricted [1] NULL,
+ numberNotAvailableDueToInterworking [2] NULL,
+ presentationRestrictedAddress [3] RemotePartyNumber}
+
+RemotePartyNumber ::= SEQUENCE {
+ partyNumber [0] ISDN-AddressString,
+ partyNumberSubaddress [1] ISDN-SubaddressString OPTIONAL,
+ ...}
+
+AccessRegisterCCEntryArg ::= SEQUENCE {
+ ...}
+
+CallDeflectionArg ::= SEQUENCE {
+ deflectedToNumber [0] AddressString,
+ deflectedToSubaddress [1] ISDN-SubaddressString OPTIONAL,
+ ...}
+
+UserUserServiceArg ::= SEQUENCE {
+ uUS-Service [0] UUS-Service,
+ uUS-Required [1] BOOLEAN,
+ ... }
+
+UUS-Service ::= ENUMERATED {
+ uUS1 (1),
+ uUS2 (2),
+ uUS3 (3),
+ ... }
+
+-- exception handling:
+-- In case of UUS-Service with any other value, indicated as "UUS required",
+-- but not understood by the MS, the call will be cleared.
+
+LocationNotificationArg ::= SEQUENCE {
+ notificationType [0] NotificationToMSUser,
+ locationType [1] LocationType,
+ lcsClientExternalID [2] LCSClientExternalID OPTIONAL,
+ lcsClientName [3] LCSClientName OPTIONAL,
+ ... ,
+ lcsRequestorID [4] LCSRequestorID OPTIONAL,
+ lcsCodeword [5] LCSCodeword OPTIONAL,
+ lcsServiceTypeID [6] LCSServiceTypeID OPTIONAL }
+
+-- The notificationType may only be set to notifyLocationAllowed,
+-- notifyAndVerify-LocationAllowedIfNoResponse,
+-- or notifyAndVerify-LocationNotAllowedIfNoResponse.
+-- The locationEstimateType field of the locationType may only be set to
+-- currentLocation, currentOrLastKnownLocation,
+-- notificationVerificationOnly, or activateDeferredLocation.
+-- The deferredLocationEventType field of the locationType may only be set to
+-- enteringIntoArea, and/or leavingFromArea, and/or beingInsideArea,
+-- and/or periodicLDR.
+-- For LCS location notification of MT-LR for current location, the
+-- locationEstimateType field of the locationType shall be set to currentLocation.
+-- For LCS location notification of MT-LR for current or last known location, the
+-- locationEstimateType field of the locationType shall be set to currentOrLastKnownLocation.
+-- For the LCS location notification for the LDR of MS available event,
+-- the locationEstimateType field of the locationType shall be set to currentLocation.
+-- For LCS location notification for the LDR of change of area event,
+-- the locationEstimateType field of the locationType shall be set to
+-- activateDeferredLocation, and the deferredLocationEventType shall be
+-- set to enteringIntoArea, and/or leavingFromArea, and/or beingInsideArea.
+-- For the post positioning LCS location notification, the locationEstimateType
+-- field of the locationType shall be set to notificationVerificationOnly.
+-- For LCS location notification for the LDR of periodic location event,
+-- the locationEstimateType field of the locationType shall be set to
+-- activateDeferredLocation, and the
+-- deferredLocationEventType shall be set to periodicLDR.
+
+-- exception handling:
+-- At reception of an unrecognised notificationType value the receiver shall reject the
+-- operation with a return error cause of unexpected data value.
+-- At reception of an unrecognised locationType value the receiver shall reject the
+-- operation with a return error cause of unexpected data value.
+-- At reception of an unallowed notificationType value the receiver shall either ignore the
+-- received operation or reject the operation with a return error cause of unexpected
+-- data value.
+-- At reception of an unallowed locationType value the receiver shall either ignore the
+-- received operation or reject the operation with a return error cause of unexpected
+-- data value.
+
+
+
+LocationNotificationRes ::= SEQUENCE {
+ verificationResponse [0] VerificationResponse OPTIONAL,
+ ...}
+
+VerificationResponse::= ENUMERATED {
+ permissionDenied (0),
+ permissionGranted (1),
+ ... }
+
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 0 (permissionDenied)
+
+LCS-MOLRArg ::= SEQUENCE {
+ molr-Type [0] MOLR-Type,
+ locationMethod [1] LocationMethod OPTIONAL,
+ lcs-QoS [2] LCS-QoS OPTIONAL,
+ lcsClientExternalID [3] LCSClientExternalID OPTIONAL,
+ mlc-Number [4] ISDN-AddressString OPTIONAL,
+ gpsAssistanceData [5] GPSAssistanceData OPTIONAL,
+ ...,
+ supportedGADShapes [6] SupportedGADShapes OPTIONAL,
+ lcsServiceTypeID [7] LCSServiceTypeID OPTIONAL,
+ ageOfLocationInfo [8] AgeOfLocationInformation OPTIONAL,
+ locationType [9] LocationType OPTIONAL,
+ pseudonymIndicator [10] NULL OPTIONAL,
+ h-gmlc-address [11] GSN-Address OPTIONAL,
+ locationEstimate [12] Ext-GeographicalInformation OPTIONAL,
+ velocityEstimate [13] VelocityEstimate OPTIONAL,
+ referenceNumber [14] LCS-ReferenceNumber OPTIONAL,
+ periodicLDRInfo [15] PeriodicLDRInfo OPTIONAL,
+ locationUpdateRequest [16] NULL OPTIONAL,
+ sequenceNumber [17] SequenceNumber OPTIONAL,
+ terminationCause [18] TerminationCause OPTIONAL,
+ mo-lrShortCircuit [19] NULL OPTIONAL,
+ ganssAssistanceData [20] GANSSAssistanceData OPTIONAL,
+ multiplePositioningProtocolPDUs [21] MultiplePositioningProtocolPDUs OPTIONAL }
+-- The parameter locationMethod shall be included if and only if the molr-Type is set to value
+-- deCipheringKeys or assistanceData.
+-- The parameter gpsAssistanceData shall be included if and only if the molr-Type is set to value
+-- assistanceData and locationMethod is set to value assistedGPS or assistedGPSandGANSS.
+-- The parameter ganssAssistanceData shall be included if and only if the molr-Type is set to value
+-- assistanceData and locationMethod is set to value assistedGANSS or assistedGPSandGANSS.
+-- supportedGADShapes shall not be included for deferred MO-LR initiation or deferred MO-LR or MT-LR
+-- responses
+-- multiplePositioningProtocolPDUs may only be included for E-UTRAN access.
+-- locationMethod shall not be included for E-UTRAN access.
+-- gpsAssistanceData shall not be included for E-UTRAN access.
+-- h-gmlc-address shall not be included for E-UTRAN access.
+-- locationEstimate shall not be included for E-UTRAN access.
+-- velocityEstimate shall not be included for E-UTRAN access.
+-- referenceNumber shall not be included for E-UTRAN access.
+-- periodicLDRInfo shall not be included for E-UTRAN access.
+-- locationUpdateRequest shall not be included for E-UTRAN access.
+-- sequenceNumber shall not be included for E-UTRAN access.
+-- terminationCause shall not be included for E-UTRAN access.
+-- mo-lrShortCircuit shall not be included for E-UTRAN access.
+-- ganssAssistanceData shall not be included for E-UTRAN access.
+
+
+
+MOLR-Type::= ENUMERATED {
+ locationEstimate (0),
+ assistanceData (1),
+ deCipheringKeys (2),
+ ... ,
+ deferredMo-lrTTTPInitiation (3),
+ deferredMo-lrSelfLocationInitiation (4),
+ deferredMt-lrOrmo-lrTTTPLocationEstimate (5),
+ deferredMt-lrOrmo-lrCancellation (6)}
+-- exception handling:
+-- an unrecognized value shall be rejected by the receiver with a return error cause of
+-- unexpected data value.
+-- For E-UTRAN access, only locationEstimate or assistanceData shall be included
+
+
+LocationMethod::= ENUMERATED {
+ msBasedEOTD (0),
+ msAssistedEOTD (1),
+ assistedGPS (2),
+ ...,
+ msBasedOTDOA (3),
+ assistedGANSS (4),
+ assistedGPSandGANSS (5)
+ }
+-- exception handling:
+-- When this parameter is received with value msBasedEOTD or msAssistedEOTD and the MS
+-- is camped on an UMTS Service Area then the receiver shall reject it
+-- with a return error cause of unexpected data value.
+-- When this parameter is received with value msBasedOTDOA and the MS
+-- is camped on a GSM Cell then the receiver shall reject it with a return error cause of
+-- unexpected data value.
+-- an unrecognized value shall be rejected by the receiver with a return error cause of
+-- unexpected data value.
+
+GPSAssistanceData::= OCTET STRING (SIZE (1..38))
+-- Octets 1 to 38 are coded in the same way as the octets 3 to 7+2n of Requested GPS Data IE
+-- in 3GPP TS 49.031 [14].
+
+GANSSAssistanceData::= OCTET STRING (SIZE (1..40))
+-- Octets 1 to 40 are coded in the same way as the octets 3 to 9+2n of Requested GANSS Data IE
+-- in 3GPP TS 49.031 [14] .
+
+TerminationCause ::= ENUMERATED {
+ subscriberTermination (0),
+ uETermination (1),
+ ...}
+
+MultiplePositioningProtocolPDUs ::= SEQUENCE (SIZE (1..maxNumLPPMsg)) OF PositioningProtocolPDU
+
+PositioningProtocolPDU ::= OCTET STRING
+-- PositioningProtocolPDU contains a LPP message defined in 3GPP TS 36.355 [17].
+
+maxNumLPPMsg INTEGER ::= 3
+
+
+
+LCS-MOLRRes::= SEQUENCE {
+ locationEstimate [0] Ext-GeographicalInformation OPTIONAL,
+ decipheringKeys [1] DecipheringKeys OPTIONAL,
+ ...,
+ add-LocationEstimate [2] Add-GeographicalInformation OPTIONAL,
+ velocityEstimate [3] VelocityEstimate OPTIONAL,
+ referenceNumber [4] LCS-ReferenceNumber OPTIONAL,
+ h-gmlc-address [5] GSN-Address OPTIONAL,
+ mo-lrShortCircuit [6] NULL OPTIONAL,
+ reportingPLMNList [7] ReportingPLMNList OPTIONAL
+ }
+-- Parameters locationEstimate or add-LocationEstimate (one but not both)
+-- shall be included if and only if the
+-- molr-Type in LocationRequestArg was set to value locationEstimate.
+-- Parameter add-LocationEstimate shall not be included if the supportedGADShapes
+-- parameter was not received in the LCS-MOLRArg.
+-- The locationEstimate and the add-locationEstimate parameters shall not be sent if
+-- the supportedGADShapes parameter has been received in LCS-MOLRArg
+-- and the shape encoded in locationEstimate or add-LocationEstimate is not marked
+-- as supported in supportedGADShapes. In such a case LCS-MOLRArg
+-- shall be rejected with error FacilityNotSupported with additional indication
+-- shapeOfLocationEstimateNotSupported.
+-- Parameter decipheringKeys shall be included if and only if the molr-Type
+-- in LocationRequestArg was set to value deCipheringKeys.
+-- Parameter velocityEstimate may only be included if the lcs-QoS in LCS-MOLRarg includes
+-- velocityRequest
+-- decipheringKeys shall not be included for E-UTRAN access.
+-- referenceNumber shall not be included for E-UTRAN access.
+-- h-gmlc-address shall not be included for E-UTRAN access.
+-- mo-lrShortCircuit shall not be included for E-UTRAN access.
+-- reportingPLMNList shall not be included for E-UTRAN access.
+
+
+
+DecipheringKeys::= OCTET STRING (SIZE (15))
+-- Octets in DecipheringKeys are coded in the same way as the octets 3 to 17 of Deciphering Key IE
+-- in 3GPP TS 49.031 [14]. I.e. these octets contain Current Deciphering Key, Next Deciphering Key and
+-- Ciphering Key Flag.
+LCS-AreaEventRequestArg ::= SEQUENCE {
+ referenceNumber [0] LCS-ReferenceNumber,
+ h-gmlc-address [1] GSN-Address,
+ deferredLocationEventType [3] DeferredLocationEventType,
+ areaEventInfo [4] AreaEventInfo,
+ ... }
+
+-- the msAvailableValue in the DeferredLocationEventType is not applicable for this procedure
+
+LCS-AreaEventReportArg ::= SEQUENCE {
+ referenceNumber [0] LCS-ReferenceNumber,
+ h-gmlc-address [1] GSN-Address,
+ ... }
+
+LCS-AreaEventCancellationArg ::= SEQUENCE {
+ referenceNumber [0] LCS-ReferenceNumber,
+ h-gmlc-address [1] GSN-Address,
+ ... }
+
+
+LCS-PeriodicLocationRequestArg ::= SEQUENCE {
+ referenceNumber [0] LCS-ReferenceNumber,
+ periodicLDRInfo [1] PeriodicLDRInfo,
+ lcsClientExternalID [2] LCSClientExternalID,
+ qoS [3] LCS-QoS OPTIONAL,
+ h-gmlc-address [4] GSN-Address OPTIONAL,
+ mo-lrShortCircuit [5] NULL OPTIONAL,
+ reportingPLMNList [6] ReportingPLMNList OPTIONAL,
+ ... }
+
+
+LCS-PeriodicLocationRequestRes ::= SEQUENCE {
+ mo-lrShortCircuit [0] NULL OPTIONAL,
+ ... }
+
+
+LCS-LocationUpdateArg ::= SEQUENCE {
+ referenceNumber [0] LCS-ReferenceNumber OPTIONAL,
+ add-LocationEstimate[1] Add-GeographicalInformation OPTIONAL,
+ velocityEstimate [2] VelocityEstimate OPTIONAL,
+ sequenceNumber [3] SequenceNumber OPTIONAL,
+ ... }
+-- add-LocationEstimate shall be included if and only if a location estimate was successfully
+-- transferred towards an External LCS Client or was successfully obtained for UE self location
+-- velocityEstimate may only be included if add-LocationEstimate is included
+
+LCS-LocationUpdateRes ::= SEQUENCE {
+ terminationCause [0] TerminationCause OPTIONAL,
+ ... }
+
+LCS-PeriodicLocationCancellationArg ::= SEQUENCE {
+ referenceNumber [0] LCS-ReferenceNumber,
+ h-gmlc-address [1] GSN-Address OPTIONAL,
+ ... }
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/SS-Errors.asn b/epan/dissectors/asn1/gsm_map/SS-Errors.asn
new file mode 100644
index 0000000000..ccf8422d4e
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/SS-Errors.asn
@@ -0,0 +1,45 @@
+-- 3GPP TS 24.080 V9.1.0 (2010-03)
+-- 4.3.1 Errors ASN.1 specification
+-- The following ASN.1 module provides an ASN.1 specification of errors. Errors from MAP are imported in the SS Protocol module in subclause 4.5. The module defines errors by allocating them a local value. For the involved errors the same local values as in MAP are allocated.
+
+SS-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
+ ss-Errors (1) version10 (10)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+
+ERROR FROM
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)};
+
+-- The MAP errors
+-- unknownSubscriber, bearerServiceNotProvisioned, teleserviceNotProvisioned,
+-- illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable, ss-SubscriptionViolation,
+-- ss-Incompatibility, systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported,
+-- pw-RegistrationFailure, negativePW-Check, callBarred, numberOfPW-AttemptsViolation,
+-- absentSubscriber, illegalSubscriber, illegalEquipment, ussd-Busy, unknownAlphabet,
+-- forwardingViolation, forwardingFailed
+-- are imported from MAP-Errors in SS-Protocol module.
+
+-- errors definition
+resourcesNotAvailable ERROR ::= {
+ CODE local:127 }
+maxNumberOfMPTY-ParticipantsExceeded ERROR ::= {
+ CODE local:126 }
+invalidDeflectedToNumber ERROR ::= {
+ CODE local:125 }
+specialServiceCode ERROR ::= {
+ CODE local:124 }
+deflectionToServedSubscriber ERROR ::= {
+ CODE local:123 }
+rejectedByNetwork ERROR ::= {
+ CODE local:122 }
+rejectedByUser ERROR ::= {
+ CODE local:121 }
+
+END
+
diff --git a/epan/dissectors/asn1/gsm_map/SS-Operations.asn b/epan/dissectors/asn1/gsm_map/SS-Operations.asn
new file mode 100644
index 0000000000..ac720a112e
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/SS-Operations.asn
@@ -0,0 +1,298 @@
+-- 3GPP TS 24.080 V9.1.0 (2010-03)
+-- 4.2 Operation types
+SS-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
+ ss-Operations (0) version10 (10)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS
+
+-- exports operations
+
+-- operations defined in this specification
+processUnstructuredSS-Data, notifySS, forwardChargeAdvice, forwardCUG-Info, buildMPTY, holdMPTY, retrieveMPTY, splitMPTY, explicitCT, accessRegisterCCEntry, callDeflection, userUserService,
+lcs-LocationNotification, lcs-MOLR, lcs-AreaEventRequest, lcs-AreaEventReport, lcs-AreaEventCancellation, lcs-PeriodicLocationRequest, lcs-LocationUpdate, lcs-PeriodicLocationCancellation;
+
+IMPORTS
+
+OPERATION FROM
+Remote-Operations-Information-Objects {
+ joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+-- The MAP operations:
+-- registerSS, eraseSS, activateSS, deactivateSS, interrogateSS, registerPassword,
+-- getPassword, processUnstructuredSS-Request, unstructuredSS-Request, unstructuredSS-Notify
+-- forwardCheckSS-Indication
+-- are imported from MAP-Operations in SS-Protocol module.
+
+-- imports SS-data types
+NotifySS-Arg,
+ForwardChargeAdviceArg,
+ForwardCUG-InfoArg,
+SS-UserData,
+AccessRegisterCCEntryArg,
+CallDeflectionArg,
+UserUserServiceArg,
+LocationNotificationArg,
+LocationNotificationRes,
+LCS-MOLRArg,
+LCS-MOLRRes,
+LCS-AreaEventRequestArg,
+LCS-AreaEventReportArg,
+LCS-AreaEventCancellationArg,
+LCS-PeriodicLocationRequestArg,
+LCS-PeriodicLocationRequestRes,
+LCS-LocationUpdateArg,
+LCS-LocationUpdateRes,
+LCS-PeriodicLocationCancellationArg
+
+
+FROM SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
+ ss-DataTypes (2) version10 (10)}
+
+-- imports MAP-SS-data types
+RegisterCC-EntryRes
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version10 (10)}
+
+-- imports MAP-errors
+illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable, ss-SubscriptionViolation,
+ss-Incompatibility, systemFailure, facilityNotSupported, callBarred, unexpectedDataValue, shortTermDenial, longTermDenial, dataMissing, forwardingViolation, forwardingFailed, positionMethodFailure
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-Errors (10) version10 (10)}
+
+-- imports SS-Errors
+resourcesNotAvailable, maxNumberOfMPTY-ParticipantsExceeded, deflectionToServedSubscriber, invalidDeflectedToNumber, specialServiceCode, rejectedByUser, rejectedByNetwork
+FROM SS-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
+ ss-Errors (1) version10 (10)}
+;
+
+-- operations definition
+
+processUnstructuredSS-Data OPERATION ::= { -- Timer T(PUSSD)= 15s to 30s
+ ARGUMENT SS-UserData
+ RESULT SS-UserData
+ -- optional
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue}
+ CODE local:19 }
+
+notifySS OPERATION ::= {
+ ARGUMENT NotifySS-Arg
+ CODE local:16 }
+
+forwardChargeAdvice OPERATION ::= { -- Timer T(AoC)= 1s to 40s
+ ARGUMENT ForwardChargeAdviceArg
+ RETURN RESULT TRUE
+ CODE local:125 }
+
+forwardCUG-Info OPERATION ::= {
+ ARGUMENT ForwardCUG-InfoArg
+ CODE local:120 }
+
+buildMPTY OPERATION ::= { -- Timer T(BuildMPTY)= 5s to 30s
+ RETURN RESULT TRUE
+ ERRORS {
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-NotAvailable |
+ ss-Incompatibility |
+ systemFailure |
+ resourcesNotAvailable |
+ maxNumberOfMPTY-ParticipantsExceeded}
+ CODE local:124 }
+
+holdMPTY OPERATION ::= { -- Timer T(HoldMPTY)= 5s to 30s
+ RETURN RESULT TRUE
+ ERRORS {
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ facilityNotSupported |
+ systemFailure}
+ CODE local:123 }
+
+retrieveMPTY OPERATION ::= { -- Timer T(RetrieveMPTY)= 5s to 30s
+ RETURN RESULT TRUE
+ ERRORS {
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ facilityNotSupported |
+ systemFailure}
+ CODE local:122 }
+
+splitMPTY OPERATION ::= { -- Timer T(SplitMPTY)= 5s to 30s
+ RETURN RESULT TRUE
+ ERRORS {
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ facilityNotSupported |
+ systemFailure}
+ CODE local:121 }
+
+explicitCT OPERATION ::= { -- Timer T(ECT)= 5s to 15s
+ RETURN RESULT TRUE
+ ERRORS {
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-NotAvailable |
+ ss-Incompatibility |
+ facilityNotSupported |
+ systemFailure |
+ resourcesNotAvailable |
+ callBarred}
+ CODE local:126 }
+
+accessRegisterCCEntry OPERATION ::= { -- Timer T(AccRegCCEntry)= 30s
+ ARGUMENT AccessRegisterCCEntryArg
+ RESULT RegisterCC-EntryRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ shortTermDenial |
+ longTermDenial |
+ facilityNotSupported}
+ CODE local:119 }
+
+-- the timer value is defined by T308, see also in TS 24.008 for definition of timer T308
+
+callDeflection OPERATION ::= { -- Timer T(CD)= 30s
+ ARGUMENT CallDeflectionArg
+ RETURN RESULT TRUE
+ ERRORS {
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-NotAvailable |
+ ss-Incompatibility |
+ facilityNotSupported |
+ systemFailure |
+ resourcesNotAvailable |
+ forwardingViolation |
+ callBarred |
+ deflectionToServedSubscriber |
+ invalidDeflectedToNumber |
+ specialServiceCode |
+ forwardingFailed}
+ CODE local:117 }
+
+-- the timer value is defined by T305, see also in TS 24.008 for definition of timer T305
+-- extensionContainer shall not be used with this operation
+
+userUserService OPERATION ::= { -- Timer T(UUS3)= 10s
+ ARGUMENT UserUserServiceArg
+ RETURN RESULT TRUE
+ ERRORS {
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-NotAvailable |
+ ss-Incompatibility |
+ facilityNotSupported |
+ systemFailure |
+ resourcesNotAvailable |
+ rejectedByNetwork |
+ rejectedByUser}
+ CODE local:118 }
+
+-- The timer value for UUS3 is 10s; it is applicable only if UUS3 is activated by FACILITY
+-- message. If UUS service (UUS1, UUS2 or UUS3) is activated by SETUP message, no timers are
+-- needed. In those cases Return Result or Return Error must be received within certain call
+-- control messages, see 3GPP TS 24.087.
+-- extensionContainer shall not be used with this operation.
+
+
+lcs-LocationNotification OPERATION ::= { -- Timer T(LCSN)= 10s to 20s
+ ARGUMENT LocationNotificationArg
+ RESULT LocationNotificationRes
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue}
+ CODE local:116 }
+
+
+lcs-MOLR OPERATION ::= { -- Timer T(LCSL)= 10s to 300s
+ ARGUMENT LCS-MOLRArg
+ RESULT LCS-MOLRRes
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ dataMissing |
+ facilityNotSupported |
+ ss-SubscriptionViolation |
+ positionMethodFailure}
+ CODE local:115 }
+
+
+lcs-AreaEventRequest OPERATION ::= { -- Timer T(LCSN)= 10s to 20s
+ ARGUMENT LCS-AreaEventRequestArg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ facilityNotSupported |
+ unexpectedDataValue}
+ CODE local:114 }
+
+
+lcs-AreaEventReport OPERATION ::= { -- Timer T(LCSL)= 10s to 300s
+ ARGUMENT LCS-AreaEventReportArg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ facilityNotSupported}
+ CODE local:113 }
+
+
+lcs-AreaEventCancellation OPERATION ::= { -- Timer T(LCSN)= 10s to 20s
+ ARGUMENT LCS-AreaEventCancellationArg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ facilityNotSupported |
+ unexpectedDataValue}
+ CODE local:112 }
+
+lcs-PeriodicLocationRequest OPERATION ::= { -- Timer T(LCSN)= 10s to 20s
+ ARGUMENT LCS-PeriodicLocationRequestArg
+ RESULT LCS-PeriodicLocationRequestRes
+ ERRORS {
+ systemFailure |
+ facilityNotSupported |
+ unexpectedDataValue |
+ dataMissing }
+ CODE local: 111 }
+
+lcs-LocationUpdate OPERATION ::= { -- Timer T(LCSN)= 10s to 20s
+ ARGUMENT LCS-LocationUpdateArg
+ RESULT LCS-LocationUpdateRes
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue}
+ CODE local: 110 }
+
+lcs-PeriodicLocationCancellation OPERATION ::= { -- Timer T(LCSN)= 10s to 20s
+ ARGUMENT LCS-PeriodicLocationCancellationArg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue}
+ CODE local: 109 }
+
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/SS-Protocol.asn b/epan/dissectors/asn1/gsm_map/SS-Protocol.asn
new file mode 100644
index 0000000000..60e3d7c91e
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/SS-Protocol.asn
@@ -0,0 +1,53 @@
+-- 3GPP TS 24.080 V9.1.0 (2010-03)
+-- 4.5 Operations and errors implementation
+-- For the actual implementation of supplementary services, operations and errors have to be defined by value. The following ASN.1 module, imports operation from the ASN.1 module described in subclause 4.2 and operations and errors from MAP.
+
+SS-Protocol {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Access (2) modules (3) ss-Protocol (3) version10 (10)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+
+OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+-- imports operations
+
+-- imports operation from MAP-MobileServiceOperations
+forwardCheckSS-Indication
+FROM MAP-MobileServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-MobileServiceOperations (5) version10 (10)}
+
+-- imports operations from MAP-SupplementaryServiceOperations
+registerSS, eraseSS, activateSS, deactivateSS, interrogateSS, registerPassword, getPassword,
+processUnstructuredSS-Request, unstructuredSS-Request, unstructuredSS-Notify, eraseCC-Entry
+FROM MAP-SupplementaryServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SupplementaryServiceOperations (8) version10 (10)}
+
+-- imports operations from SS-Operations
+processUnstructuredSS-Data, notifySS, forwardChargeAdvice, buildMPTY, holdMPTY, retrieveMPTY,
+splitMPTY, explicitCT, forwardCUG-Info, accessRegisterCCEntry, callDeflection, userUserService,
+lcs-LocationNotification, lcs-MOLR, lcs-AreaEventRequest, lcs-AreaEventReport, lcs-AreaEventCancellation, lcs-PeriodicLocationRequest, lcs-LocationUpdate, lcs-PeriodicLocationCancellation
+FROM SS-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
+ ss-Operations (0) version10 (10)}
+
+;
+
+Supported-SS-Operations OPERATION ::= {forwardCheckSS-Indication | registerSS | eraseSS |
+ activateSS | deactivateSS | interrogateSS | registerPassword | getPassword |
+ processUnstructuredSS-Request | unstructuredSS-Request | unstructuredSS-Notify | eraseCC-Entry |
+ processUnstructuredSS-Data | notifySS | forwardChargeAdvice | buildMPTY | holdMPTY |
+ retrieveMPTY | splitMPTY | explicitCT | forwardCUG-Info | accessRegisterCCEntry |
+ callDeflection | userUserService | lcs-LocationNotification | lcs-MOLR | lcs-AreaEventRequest | lcs-AreaEventReport | lcs-AreaEventCancellation | lcs-PeriodicLocationRequest | lcs-LocationUpdate | lcs-PeriodicLocationCancellation }
+
+
+
+END
diff --git a/epan/dissectors/asn1/gsm_map/gsm_map.cnf b/epan/dissectors/asn1/gsm_map/gsm_map.cnf
new file mode 100644
index 0000000000..e8b1cbb1bb
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/gsm_map.cnf
@@ -0,0 +1,1020 @@
+#.OPT
+-b
+#-d satcom
+#-s packet-gsm_map-tmp
+#-k
+-o gsm_map
+#.END
+
+#.MODULE
+MAP-BS-Code gsm_map
+MAP-TS-Code gsm_map
+MAP-SS-Code gsm_map
+MAP-ExtensionDataTypes gsm_map
+MAP-CommonDataTypes gsm_map
+
+MAP-SS-DataTypes gsm_map.ss
+MAP-OM-DataTypes gsm_map.om
+MAP-ER-DataTypes gsm_map.er
+MAP-SM-DataTypes gsm_map.sm
+MAP-MS-DataTypes gsm_map.ms
+MAP-LCS-DataTypes gsm_map.lcs
+MAP-GR-DataTypes gsm_map.gr
+MAP-CH-DataTypes gsm_map.ch
+
+MAP-Errors gsm_map
+MAP-LocationServiceOperations gsm_map
+MAP-Group-Call-Operations gsm_map
+MAP-ShortMessageServiceOperations gsm_map
+MAP-SupplementaryServiceOperations gsm_map
+MAP-CallHandlingOperations gsm_map
+MAP-OperationAndMaintenanceOperations gsm_map
+MAP-MobileServiceOperations gsm_map
+MAP-Protocol gsm_map
+MAP-DialogueInformation gsm_map.dialogue
+MAP-ApplicationContexts gsm_map
+SS-DataTypes gsm_ss
+SS-Operations gsm_ss
+DummyMAP gsm_old
+EricssonMAP gsm_map.ericsson
+
+Remote-Operations-Information-Objects ROS
+
+#.NO_EMIT ONLY_VALS
+CallBarredParam
+PW-RegistrationFailureCause
+SystemFailureParam
+ExtensionType
+NumberPorted/_untag
+
+#.OMIT_ASSIGNMENT
+Code
+Priority
+CommonComponentId
+SubscriberId
+GuidanceInfo
+SS-InfoList
+# Omitting SubscriberData makes CONTENT OF fail and InsertSubscriberDataArg will not get all its tags
+# Not yet used Nokia extensions
+SS-DataEmoInExt
+EmoInCategoryKey
+ANSIIsdArgExt
+ANSISriResExt
+PrefCarrierIdList
+USSD-Extension
+CosInfo
+AnyTimePO-BarringArg
+AnyTimePO-BarringRes
+CarrierIdCode
+COS-FeatureList
+GprsBarring
+COS-Feature
+CustomerGroupID
+SubGroupID
+ClassOfServiceID
+#.END
+#.PDU
+LCS-ClientID
+ISDN-AddressString
+
+#.USE_VALS_EXT
+GSMMAPOperationLocalvalue
+OperationLocalvalue
+
+#.EXPORTS
+AddressString
+Add-GeographicalInformation
+AgeOfLocationInformation
+AlertingPattern
+AreaEventInfo
+BasicServiceCode
+CallReferenceNumber
+CCBS-Feature
+CellGlobalIdOrServiceAreaIdOrLAI
+CellGlobalIdOrServiceAreaIdFixedLength
+CUG-CheckInfo
+CUG-Index
+CUG-Interlock
+CUG-Info
+CurrentPassword
+D-CSI
+DeferredLocationEventType
+DefaultGPRS-Handling
+DefaultSMS-Handling
+EraseCC-EntryArg
+EraseCC-EntryRes
+Ext-BasicServiceCode
+Ext-ForwOptions
+Ext-GeographicalInformation EXTERN WS_DLL
+Ext-NoRepCondTime
+Ext-QoS-Subscribed
+Ext2-QoS-Subscribed
+Ext3-QoS-Subscribed
+ExtensionContainer
+ExternalSignalInfo
+ForwardingOptions
+GeographicalInformation
+GetPasswordArg
+GlobalCellId EXTERN WS_DLL
+GPRSChargingID
+GPRSMSClass
+GSMMAPLocalErrorcode
+GSN-Address
+IMEI
+IMSI EXTERN WS_DLL
+InterrogateSS-Res
+ISDN-AddressString EXTERN WS_DLL
+ISDN-AddressString_PDU EXTERN WS_DLL
+ISDN-SubaddressString
+LAIFixedLength
+LCSClientExternalID
+LCS-ClientID
+LCS-ClientID_PDU
+LCSClientInternalID
+LCSClientName
+LCSClientType
+LCSRequestorID
+LCSCodeword
+LCS-Priority
+LCSServiceTypeID
+LCS-ReferenceNumber
+LCS-QoS
+LocationInformation
+LocationMethod
+LocationType
+LSAIdentity
+MS-Classmark2
+NAEA-CIC
+NetworkResource
+NewPassword
+NotificationToMSUser
+O-CSI
+O-BcsmCamelTDPCriteriaList
+OfferedCamel4Functionalities
+PositionMethodFailure-Diagnostic
+ProtectedPayload
+QoS-Subscribed
+RAIdentity
+RegisterCC-EntryRes
+RegisterSS-Arg
+SM-RP-DA
+SM-RP-OA
+SubscriberState
+SecurityHeader
+ServiceKey
+SupportedCamelPhases
+SupportedGADShapes
+SuppressionOfAnnouncement
+SS-Code
+SS-Status
+SS-Info
+SS-ForBS-Code
+TBCD-STRING
+UnauthorizedLCSClient-Diagnostic
+USSD-DataCodingScheme
+USSD-String
+USSD-Arg
+USSD-Res
+UU-Data
+VelocityEstimate
+#.END
+#.REGISTER
+MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
+
+# This table creates the value_sting to name GSM MAP operation codes and errors
+# in file packet-camel-table.c which is included in the template file
+#
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.END
+
+#.TABLE2_BODY ERROR
+ { %(&errorCode)s, "%(_ident)s" },
+#.END
+
+
+# Conformance for ROS stuff
+
+#.FN_BODY InvokeParameter
+ offset = dissect_invokeData(tree, tvb, offset, actx);
+
+#.FN_BODY ReturnResultParameter
+ offset = dissect_returnResultData(tree, tvb, offset, actx);
+
+#.FN_BODY ReturnErrorParameter
+ offset = dissect_returnErrorData(tree, tvb, offset, actx);
+
+#.FN_PARS GSMMAPOperationLocalvalue
+
+ VAL_PTR = &opcode
+
+#.FN_BODY GSMMAPOperationLocalvalue
+ const char *opcode_string;
+
+%(DEFAULT_BODY)s
+ /* Retrieve opcode string and eventually update item value */
+ opcode_string = gsm_map_opr_code(opcode, actx->created_item);
+ col_append_str(actx->pinfo->cinfo, COL_INFO, opcode_string);
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+
+#.FN_PARS GSMMAPLocalErrorcode
+
+ VAL_PTR = &errorCode
+# End ROS
+#----------------------------------------------------------------------------------------
+
+#.FN_BODY PrivateExtension/extId FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+%(DEFAULT_BODY)s
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY PrivateExtension/extType
+ proto_tree *ext_tree;
+ ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gsm_map_extension_data, NULL, "Extension Data");
+ if (actx->external.direct_ref_present){
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, ext_tree, NULL);
+ }else{
+ call_dissector(data_handle, tvb, actx->pinfo, ext_tree);
+ offset = tvb_reported_length_remaining(tvb,offset);
+ }
+
+#.FN_PARS AccessNetworkProtocolId
+
+ VAL_PTR = &AccessNetworkProtocolId
+
+#.FN_BODY AddressString VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string);
+ dissect_gsm_map_msisdn(parameter_tvb, actx->pinfo , subtree);
+
+#.FN_BODY IMSI VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ if(tvb_reported_length(parameter_tvb)==0)
+ return offset;
+
+ /* Hide the octet string default printout */
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ dissect_e212_imsi(parameter_tvb, actx->pinfo, tree, 0, tvb_reported_length(parameter_tvb), FALSE);
+
+
+#.FN_BODY TBCD-STRING VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ const char *digit_str;
+ proto_tree *subtree;
+
+ %(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ if(tvb_reported_length(parameter_tvb)==0)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_tbcd_digits);
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(parameter_tvb, 0, -1, NULL, FALSE);
+ proto_tree_add_string(subtree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, digit_str);
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY LongSignalInfo VAL_PTR = &parameter_tvb
+#
+#7.6.9.1 AN-apdu
+#This parameter includes one or two concatenated complete 3GPP TS 25.413 or 3GPP TS 48.006 [48] messages, as
+#described in 3GPP TS 23.009 and 3GPP TS 29.010. The access network protocol ID indicates that the message or
+#messages are according to either 3GPP TS 48.006 [48] or 3GPP TS 25.413. For the coding of the messages see 3GPP
+#TS 25.413, 3GPP TS 48.006 [48] and 3GPP TS 48.008 [49].
+
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+ tvbuff_t *next_tvb;
+ proto_tree *subtree;
+
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo);
+
+ switch (AccessNetworkProtocolId){
+ /* ts3G-48006 */
+ case 1:
+ octet = tvb_get_guint8(parameter_tvb,0);
+ /* Discrimination parameter */
+ proto_tree_add_item(subtree, hf_gsm_map_disc_par, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
+ /* Strip off discrimination and length */
+ proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 1,1,ENC_BIG_ENDIAN);
+ next_tvb = tvb_new_subset_remaining(parameter_tvb, 2);
+ call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree,
+ p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_gsm_map, actx->pinfo->curr_layer_num));
+ }else if(octet==1){
+ proto_tree_add_item(subtree, hf_gsm_map_dlci, parameter_tvb, 1,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 2,1,ENC_BIG_ENDIAN);
+ next_tvb = tvb_new_subset_remaining(parameter_tvb, 3);
+ call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
+ }
+ break;
+ /* ts3G-25413 */
+ case 2:
+ call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree);
+ break;
+ default:
+ break;
+
+ }
+# Set SENT/RECEIVED depending if ISDN-AddressString or AddressString is used.
+# as it's a CHOICE only one is present.
+#.FN_BODY SM-RP-OAold/serviceCentreAddressOA
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+%(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-OA/serviceCentreAddressOA
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+%(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-DAold/imsi
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+%(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-DAold/lmsi
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+%(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-DA/imsi
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+%(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-DA/lmsi
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+%(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-OAold/msisdn
+actx->pinfo->p2p_dir = P2P_DIR_RECV;
+ %(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-OA/msisdn
+actx->pinfo->p2p_dir = P2P_DIR_RECV;
+ %(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-DAold/serviceCentreAddressDA
+ actx->pinfo->p2p_dir = P2P_DIR_RECV;
+%(DEFAULT_BODY)s
+
+#.FN_BODY SM-RP-DA/serviceCentreAddressDA
+ actx->pinfo->p2p_dir = P2P_DIR_RECV;
+%(DEFAULT_BODY)s
+
+#.FN_BODY SignalInfo VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+
+ %(DEFAULT_BODY)s
+ actx->value_ptr = (void*)parameter_tvb;
+
+
+#.FN_BODY SM-DeliveryFailureCause
+ /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
+ guint8 oct;
+%(DEFAULT_BODY)s
+
+ if (!actx->value_ptr)
+ return offset;
+ /* Detailed diagnostic information contains either a SMS-SUBMIT-REPORT or a SMS-DELIVERY-REPORT */
+ oct = tvb_get_guint8((tvbuff_t*)actx->value_ptr, 0);
+ actx->pinfo->p2p_dir = ((oct & 0x03) == 0) ? P2P_DIR_RECV : P2P_DIR_SENT;
+ call_dissector_only(gsm_sms_handle, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree, NULL);
+
+#.FN_BODY ForwardSM-Arg
+
+ /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
+%(DEFAULT_BODY)s
+
+ if (!actx->value_ptr)
+ return offset;
+ if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
+ if (gsmmap_pdu_type == 1) {
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+ } else {
+ actx->pinfo->p2p_dir = P2P_DIR_RECV;
+ }
+ }
+ call_dissector_only(gsm_sms_handle, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree, NULL);
+
+#.FN_BODY MO-ForwardSM-Arg
+
+ /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
+%(DEFAULT_BODY)s
+
+ if (!actx->value_ptr)
+ return offset;
+ if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
+ actx->pinfo->p2p_dir = P2P_DIR_RECV;
+ }
+ call_dissector_only(gsm_sms_handle, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree, NULL);
+
+#.FN_BODY MO-ForwardSM-Res
+
+ /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
+%(DEFAULT_BODY)s
+
+ if (!actx->value_ptr)
+ return offset;
+ if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+ }
+ call_dissector_only(gsm_sms_handle, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree, NULL);
+
+#.FN_BODY MT-ForwardSM-Arg
+
+ /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
+%(DEFAULT_BODY)s
+
+ if (!actx->value_ptr)
+ return offset;
+ if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+ }
+ call_dissector_only(gsm_sms_handle, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree, NULL);
+
+#.FN_BODY MT-ForwardSM-Res
+
+ /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
+%(DEFAULT_BODY)s
+
+ if (!actx->value_ptr)
+ return offset;
+ if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
+ actx->pinfo->p2p_dir = P2P_DIR_RECV;
+ }
+ call_dissector_only(gsm_sms_handle, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree, NULL);
+
+#.FN_BODY MT-ForwardSM-VGCS-Arg
+
+ /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
+%(DEFAULT_BODY)s
+
+ if (!actx->value_ptr)
+ return offset;
+ if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+ }
+ call_dissector_only(gsm_sms_handle, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree, NULL);
+
+#.FN_BODY MT-ForwardSM-VGCS-Res
+
+ /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
+%(DEFAULT_BODY)s
+
+ if (!actx->value_ptr)
+ return offset;
+ if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
+ actx->pinfo->p2p_dir = P2P_DIR_RECV;
+ }
+ call_dissector_only(gsm_sms_handle, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree, NULL);
+
+#.FN_BODY SS-Status VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ octet = tvb_get_guint8(parameter_tvb,0);
+
+ proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
+ if ((octet & 0x01)== 1)
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
+
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
+
+#.FN_BODY Ext-SS-Status VAL_PTR = &parameter_tvb
+ /* Note Ext-SS-Status can have more than one byte */
+
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ octet = tvb_get_guint8(parameter_tvb,0);
+
+ proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
+ if ((octet & 0x01)== 1)
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
+
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
+
+#.END
+
+#.FN_BODY USSD-DataCodingScheme VAL_PTR = &parameter_tvb
+ /*The structure of the USSD-DataCodingScheme is defined by
+ * the Cell Broadcast Data Coding Scheme as described in
+ * TS 3GPP TS 23.038
+ * TODO: Should dissect_cbs_data_coding_scheme return encoding type? - like 7bit Alphabet
+ */
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_cbs_data_coding);
+ dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
+
+#.FN_BODY USSD-String VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ guint length;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ length = tvb_ensure_captured_length_remaining(parameter_tvb,0);
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ussd_string);
+ switch(sms_encoding){
+ case SMS_ENCODING_7BIT:
+ case SMS_ENCODING_7BIT_LANG:
+ proto_tree_add_string(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, tvb_get_string_enc(wmem_packet_scope(), parameter_tvb, 0, length, ENC_3GPP_TS_23_038_7BITS|ENC_NA));
+ break;
+ case SMS_ENCODING_8BIT:
+ /* XXX - ASCII, or some extended ASCII? */
+ proto_tree_add_string(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, tvb_get_string_enc(wmem_packet_scope(), parameter_tvb, 0, length, ENC_ASCII|ENC_NA));
+ break;
+ case SMS_ENCODING_UCS2:
+ case SMS_ENCODING_UCS2_LANG:
+ proto_tree_add_string(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, tvb_get_string_enc(wmem_packet_scope(), parameter_tvb, 0, length, ENC_UCS_2|ENC_BIG_ENDIAN));
+ break;
+ default:
+ break;
+ }
+
+#.FN_FTR ForwardingOptions
+
+ proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN);
+#.FN_FTR Ext-ForwFeature/forwardingOptions
+
+ proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN);
+
+
+#.FN_BODY PDP-Type VAL_PTR = &parameter_tvb
+ guint8 pdp_type_org;
+ tvbuff_t *parameter_tvb;
+
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
+ pdp_type_org = tvb_get_guint8(parameter_tvb,1);
+ switch (pdp_type_org){
+ case 0: /* ETSI */
+ proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
+ break;
+ case 1: /* IETF */
+ proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
+ break;
+ default:
+ break;
+ }
+
+#.FN_BODY QoS-Subscribed VAL_PTR = &parameter_tvb
+
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ de_sm_qos(parameter_tvb, tree, actx->pinfo, 0, 3, NULL,0);
+
+#.FN_BODY Ext-QoS-Subscribed VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx);
+
+#.FN_BODY GSN-Address VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
+
+ octet = tvb_get_guint8(parameter_tvb,0);
+ switch(octet){
+ case 0x04: /* IPv4 */
+ proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, 4, ENC_BIG_ENDIAN);
+ break;
+ case 0x50: /* IPv6 */
+ proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv6, parameter_tvb, 1, 16, ENC_NA);
+ break;
+ default:
+ break;
+ }
+
+#.FN_BODY RAIdentity VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
+ de_gmm_rai(parameter_tvb, subtree, actx->pinfo, 0, 3, NULL,0);
+
+#.FN_BODY LAIFixedLength VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_LAI, TRUE);
+
+#.FN_BODY RadioResourceInformation VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation);
+ be_chan_type(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length_remaining(tvb,0), NULL, 0);
+
+#.FN_BODY RANAP-ServiceHandover VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ asn1_ctx_t asn1_ctx;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
+
+#.FN_BODY IntegrityProtectionInformation VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ asn1_ctx_t asn1_ctx;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_IntegrityProtectionInformation);
+
+#.FN_BODY EncryptionInformation VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ asn1_ctx_t asn1_ctx;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_EncryptionInformation);
+
+#.FN_PARS ProtocolId VAL_PTR = &ProtocolId
+#.FN_BODY Bss-APDU
+ guint8 octet;
+ guint8 length;
+ tvbuff_t *next_tvb;
+ proto_tree *subtree;
+/*
+ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
+5.6.9.1 BSS-apdu
+This parameter includes one or two concatenated complete 08.06 messages, as described in GSM 03.09
+and GSM 09.10. The Protocol ID indicates that the message or messages are according to GSM 08.06.
+For the coding of the messages see GSM 08.06 and GSM 08.08.
+*/
+ ProtocolId = 0xffffffff;
+%(DEFAULT_BODY)s
+if (!actx->value_ptr)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
+ switch (ProtocolId){
+ case 1:
+ /* gsm-0408 */
+ /* As per comment abowe Individual IE:(s) will be found here in TLV format
+ * Unfortunatly a branch for each IE must be made to call the apropriate
+ * function
+ */
+ /* Get tag */
+ octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
+ proto_tree_add_item(subtree, hf_gsm_map_ie_tag, (tvbuff_t*)actx->value_ptr, 0,1,ENC_BIG_ENDIAN);
+ /* get length */
+ length = tvb_get_guint8((tvbuff_t*)actx->value_ptr,1);
+ proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
+ /* Branch on tag */
+ switch(octet){
+ case 4:
+ /* Dissect the data part */
+ de_bearer_cap((tvbuff_t*)actx->value_ptr, subtree, actx->pinfo, 2, length, NULL, 0);
+ /* TODO: There may be more than one IE */
+ break;
+ default:
+ proto_tree_add_expert(subtree, actx->pinfo, &ei_gsm_map_undecoded, (tvbuff_t*)actx->value_ptr, 0, length);
+ break;
+ }/* switch(octet) */
+ break;
+ case 2:
+ /* gsm-0806 */
+ octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
+ /* Discrimination parameter */
+ proto_tree_add_item(subtree, hf_gsm_map_disc_par, (tvbuff_t*)actx->value_ptr, 0,1,ENC_BIG_ENDIAN);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
+ /* Strip off discrimination and length */
+ proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
+ next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 2);
+ call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree,
+ p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_gsm_map, actx->pinfo->curr_layer_num));
+ }else if(octet==1){
+ proto_tree_add_item(subtree, hf_gsm_map_dlci, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 2,1,ENC_BIG_ENDIAN);
+ next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 3);
+ call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
+ }
+ break;
+ case 3:
+ /* gsm-BSSMAP -- Value 3 is reserved and must not be used*/
+ octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
+ next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 2);
+ call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree,
+ p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_gsm_map, actx->pinfo->curr_layer_num));
+ }
+ break;
+ /* ets-300102-1 (~Q.931 ) */
+ case 4:
+ octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
+ length = tvb_get_guint8((tvbuff_t*)actx->value_ptr,1);
+ if ( octet == 4 )
+ dissect_q931_bearer_capability_ie((tvbuff_t*)actx->value_ptr, 2, length, subtree);
+ break;
+ default:
+ break;
+ }/*switch (ProtocolId)*/
+
+#.FN_BODY ExternalSignalInfo
+/*
+-- Information about the internal structure is given in
+-- clause 7.6.9.
+7.6.9.4 External Signal Information
+This parameter contains concatenated information elements (including tag and length) which are defined by a common
+protocol version, preceded by the associated protocol ID. It is used to transport information of the indicated protocol via
+MAP interfaces
+*/
+ guint8 octet;
+ guint8 length;
+ tvbuff_t *next_tvb;
+ proto_tree *subtree;
+
+ ProtocolId = 0xffffffff;
+%(DEFAULT_BODY)s
+if (!actx->value_ptr)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
+ switch (ProtocolId){
+ case 1:
+ /* gsm-0408 */
+ /* As per comment abowe Individual IE:(s) will be found here in TLV format
+ * Unfortunatly a branch for each IE must be made to call the apropriate
+ * function
+ */
+ /* Get tag */
+ octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
+ proto_tree_add_item(subtree, hf_gsm_map_ie_tag, (tvbuff_t*)actx->value_ptr, 0,1,ENC_BIG_ENDIAN);
+ /* get length */
+ length = tvb_get_guint8((tvbuff_t*)actx->value_ptr,1);
+ proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
+ /* Branch on tag */
+ switch(octet){
+ case 4:
+ /* Dissect the data part */
+ de_bearer_cap((tvbuff_t*)actx->value_ptr, subtree, actx->pinfo, 2, length, NULL, 0);
+ /* TODO: There may be more than one IE */
+ break;
+ default:
+ proto_tree_add_expert(subtree, actx->pinfo, &ei_gsm_map_undecoded, (tvbuff_t*)actx->value_ptr, 0, length);
+ break;
+ }/* switch(octet) */
+ break;
+ case 2:
+ /* gsm-0806 */
+ octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
+ /* Discrimination parameter */
+ proto_tree_add_item(subtree, hf_gsm_map_disc_par, (tvbuff_t*)actx->value_ptr, 0,1,ENC_BIG_ENDIAN);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
+ /* Strip off discrimination and length */
+ proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
+ next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 2);
+ call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree,
+ p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_gsm_map, actx->pinfo->curr_layer_num));
+ }else if(octet==1){
+ proto_tree_add_item(subtree, hf_gsm_map_dlci, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 2,1,ENC_BIG_ENDIAN);
+ next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 3);
+ call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
+ }
+ break;
+ case 3:
+ /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
+ octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
+ next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 2);
+ call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree,
+ p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_gsm_map, actx->pinfo->curr_layer_num));
+ }
+ break;
+ /* ets-300102-1 (~Q.931 ) */
+ case 4:
+ octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
+ length = tvb_get_guint8((tvbuff_t*)actx->value_ptr,1);
+ if ( octet == 4 )
+ dissect_q931_bearer_capability_ie((tvbuff_t*)actx->value_ptr, 2, length, subtree);
+ break;
+ default:
+ break;
+ }/*switch (ProtocolId)*/
+
+#.FN_BODY GlobalCellId VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId);
+ be_cell_id_aux(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length_remaining(tvb,0), NULL, 0, 0);
+
+#.FN_BODY Ext-GeographicalInformation VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
+ dissect_geographical_description(parameter_tvb, actx->pinfo, subtree);
+
+
+# APN ::= OCTET STRING (SIZE (2..63))
+# Octets are coded according to TS 3GPP TS 23.003
+# 9.1 Structure of APN
+# :
+# The APN consists of one or more labels. Each label is coded as a one octet length field followed by that number of
+# octets coded as 8 bit ASCII characters. Following RFC 1035 [19] the labels shall consist only of the alphabetic
+# characters (A-Z and a-z), digits (0-9) and the hyphen (-). Following RFC 1123 [20], the label shall begin and end with
+# either an alphabetic character or a digit. The case of alphabetic characters is not significant. The APN is not terminated
+# by a length byte of zero.
+#.FN_BODY APN VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+ int length, name_len, tmp;
+ guint8 *apn_str = NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ length = tvb_reported_length(parameter_tvb);
+ name_len = tvb_get_guint8(parameter_tvb, 0);
+ apn_str = tvb_get_string_enc(wmem_packet_scope(), parameter_tvb, 1, length - 1, ENC_ASCII|ENC_NA);
+ if (name_len < length-1) {
+ for (;;) {
+ if (name_len >= length - 1)
+ break;
+ tmp = name_len;
+ name_len = name_len + apn_str[tmp] + 1;
+ apn_str[tmp] = '.';
+ }
+ }
+ proto_item_append_text(actx->created_item, " - %%s", apn_str);
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_apn_str);
+ proto_tree_add_string(subtree, hf_gsm_apn_str, parameter_tvb, 0, -1, apn_str);
+
+
+#.FN_BODY LocationNumber VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+ const char *digit_str;
+ guint8 na;
+ guint8 np;
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LocationNumber);
+
+ proto_tree_add_item(subtree, hf_gsm_map_locationnumber_odd_even, tvb, 0, 1, ENC_BIG_ENDIAN);
+ na = tvb_get_guint8(tvb,0) & 0x7f;
+ proto_tree_add_item(subtree, hf_gsm_map_locationnumber_nai, tvb, 0, 1, ENC_BIG_ENDIAN);
+
+ proto_tree_add_item(subtree, hf_gsm_map_locationnumber_inn, tvb, 1, 1, ENC_BIG_ENDIAN);
+ np = (tvb_get_guint8(tvb,1) & 0x70) >> 4;
+ proto_tree_add_item(subtree, hf_gsm_map_locationnumber_npi, tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_gsm_map_locationnumber_apri, tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_gsm_map_locationnumber_screening_ind, tvb, 1, 1, ENC_BIG_ENDIAN);
+
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(tvb, 2, -1, NULL, FALSE);
+
+ proto_tree_add_string(subtree, hf_gsm_map_locationnumber_digits, tvb, 2, -1, digit_str);
+
+ if ((na == 3) && (np==1))/*International Number & E164*/
+ dissect_e164_cc(tvb, subtree, 2, E164_ENC_BCD);
+
+#.FN_BODY EnhancedCheckIMEI-Arg/locationInformation VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+ guint8 rat;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ericsson_locationInformation);
+ rat = tvb_get_guint8(parameter_tvb, 0);
+ proto_tree_add_uint(subtree, hf_gsm_map_ericsson_locationInformation_rat, parameter_tvb, 0, 1, rat);
+ switch (rat) {
+ case 0:
+ /* GSM */
+ proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_ci, parameter_tvb, 3, 2, ENC_BIG_ENDIAN);
+ break;
+ case 1:
+ /* UMTS */
+ proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_sac, parameter_tvb, 3, 2, ENC_BIG_ENDIAN);
+ break;
+ default:
+ break;
+ }
+ }
+
+#----------------------------------------------------------------------------------------
+#.TYPE_ATTR
+SS-Code TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ssCode_vals)
+Teleservice TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Teleservice_vals)
+Bearerservice TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Bearerservice_vals)
+TeleserviceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Teleservice_vals)
+BearerServiceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Bearerservice_vals)
+Ext-TeleserviceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Teleservice_vals)
+Ext-BearerServiceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Bearerservice_vals)
+ChargingCharacteristics TYPE = FT_UINT16 DISPLAY = BASE_DEC BITMASK = 0x0f00 STRINGS = VALS(chargingcharacteristics_values)
+RoutingInfo TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_ch_RoutingInfo_vals)
+
+#----------------------------------------------------------------------------------------
+#.FIELD_ATTR
+RequestedInfo/imei ABBREV = imei_null
+
+#.END
diff --git a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
new file mode 100644
index 0000000000..15ca5a33f7
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
@@ -0,0 +1,3185 @@
+/* XXX see bug 1852:
+ *
+ * packet-gsm_map.c: There are 1174 display filter fields registered. Most are
+ * prefixed appropriately as "gsm_map", but many others are prefixed as
+ * "gsm_old", or even "gad", "gsm_ss", or with no prefix at all. I don't know
+ * if the ones with "gsm_old" are simply obsolete display filter fields or if
+ * they should be prefixed as "gsm_map.old." or what. Similar uncertainties
+ * for the others. Someone more knowledgeable than I am with respect to this
+ * dissector should provide a patch for it.
+ */
+
+/* packet-gsm_map-template.c
+ * Routines for GSM MobileApplication packet dissection
+ * including GSM SS.
+ * Copyright 2004 - 2010 , Anders Broman <anders.broman [AT] ericsson.com>
+ * Based on the dissector by:
+ * Felix Fei <felix.fei [AT] utstar.com>
+ * and Michael Lum <mlum [AT] telostech.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References GSM MAP:
+ * ETSI TS 129 002
+ * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7)
+ * Updated to ETSI TS 129 002 V8.4.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8)
+ * References GSM SS
+ * References: 3GPP TS 24.080
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/stat_tap_ui.h>
+#include <epan/tap.h>
+#include <epan/oids.h>
+#include <epan/expert.h>
+#include <epan/proto_data.h>
+
+#include <epan/asn1.h>
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-q931.h"
+#include "packet-gsm_map.h"
+#include "packet-gsm_a_common.h"
+#include "packet-tcap.h"
+#include "packet-e164.h"
+#include "packet-e212.h"
+#include "packet-smpp.h"
+#include "packet-gsm_sms.h"
+#include "packet-ranap.h"
+
+#define PNAME "GSM Mobile Application"
+#define PSNAME "GSM_MAP"
+#define PFNAME "gsm_map"
+
+void proto_register_gsm_map(void);
+void proto_reg_handoff_gsm_map(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_gsm_map = -1;
+static int proto_gsm_map_dialogue = -1;
+
+static int hf_gsm_map_old_Component_PDU = -1;
+static int hf_gsm_map_getPassword = -1;
+static int hf_gsm_map_currentPassword = -1;
+static int hf_gsm_map_extension = -1;
+static int hf_gsm_map_nature_of_number = -1;
+static int hf_gsm_map_number_plan = -1;
+static int hf_gsm_map_address_digits = -1;
+static int hf_gsm_map_TBCD_digits = -1;
+static int hf_gsm_map_Ss_Status_unused = -1;
+static int hf_gsm_map_Ss_Status_q_bit = -1;
+static int hf_gsm_map_Ss_Status_p_bit = -1;
+static int hf_gsm_map_Ss_Status_r_bit = -1;
+static int hf_gsm_map_Ss_Status_a_bit = -1;
+static int hf_gsm_map_notification_to_forwarding_party = -1;
+static int hf_gsm_map_redirecting_presentation = -1;
+static int hf_gsm_map_notification_to_calling_party = -1;
+static int hf_gsm_map_forwarding_reason = -1;
+static int hf_gsm_map_pdp_type_org = -1;
+static int hf_gsm_map_etsi_pdp_type_number = -1;
+static int hf_gsm_map_ietf_pdp_type_number = -1;
+static int hf_gsm_map_ext_qos_subscribed_pri = -1;
+
+static int hf_gsm_map_qos_traffic_cls = -1;
+static int hf_gsm_map_qos_del_order = -1;
+static int hf_gsm_map_qos_del_of_err_sdu = -1;
+static int hf_gsm_map_qos_ber = -1;
+static int hf_gsm_map_qos_sdu_err_rat = -1;
+static int hf_gsm_map_qos_traff_hdl_pri = -1;
+static int hf_gsm_map_qos_max_sdu = -1;
+static int hf_gsm_map_max_brate_ulink = -1;
+static int hf_gsm_map_max_brate_dlink = -1;
+static int hf_gsm_map_qos_transfer_delay = -1;
+static int hf_gsm_map_guaranteed_max_brate_ulink = -1;
+static int hf_gsm_map_guaranteed_max_brate_dlink = -1;
+static int hf_gsm_map_GSNAddress_IPv4 = -1;
+static int hf_gsm_map_GSNAddress_IPv6 = -1;
+static int hf_gsm_map_ranap_service_Handover = -1;
+static int hf_gsm_map_IntegrityProtectionInformation = -1;
+static int hf_gsm_map_EncryptionInformation = -1;
+static int hf_gsm_map_ss_SS_UserData = -1;
+static int hf_gsm_map_cbs_coding_grp = -1;
+static int hf_gsm_map_cbs_coding_grp0_lang = -1;
+static int hf_gsm_map_cbs_coding_grp1_lang = -1;
+static int hf_gsm_map_cbs_coding_grp2_lang = -1;
+static int hf_gsm_map_cbs_coding_grp3_lang = -1;
+static int hf_gsm_map_cbs_coding_grp4_7_comp = -1;
+static int hf_gsm_map_cbs_coding_grp4_7_class_ind = -1;
+static int hf_gsm_map_cbs_coding_grp4_7_char_set = -1;
+static int hf_gsm_map_cbs_coding_grp4_7_class = -1;
+static int hf_gsm_map_cbs_coding_grp15_mess_code = -1;
+static int hf_gsm_map_cbs_coding_grp15_class = -1;
+static int hf_gsm_map_tmsi = -1;
+static int hf_gsm_map_ie_tag = -1;
+static int hf_gsm_map_len = -1;
+static int hf_gsm_map_disc_par = -1;
+static int hf_gsm_map_dlci = -1;
+static int hf_gsm_apn_str = -1;
+static int hf_gsm_map_locationnumber_odd_even = -1;
+static int hf_gsm_map_locationnumber_nai = -1;
+static int hf_gsm_map_locationnumber_inn = -1;
+static int hf_gsm_map_locationnumber_npi = -1;
+static int hf_gsm_map_locationnumber_apri = -1;
+static int hf_gsm_map_locationnumber_screening_ind = -1;
+static int hf_gsm_map_locationnumber_digits = -1;
+static int hf_gsm_map_ericsson_locationInformation_rat = -1;
+static int hf_gsm_map_ericsson_locationInformation_lac = -1;
+static int hf_gsm_map_ericsson_locationInformation_ci = -1;
+static int hf_gsm_map_ericsson_locationInformation_sac = -1;
+static int hf_gsm_map_ussd_string = -1;
+
+#include "packet-gsm_map-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_gsm_map = -1;
+static gint ett_gsm_map_InvokeId = -1;
+static gint ett_gsm_map_InvokePDU = -1;
+static gint ett_gsm_map_ReturnResultPDU = -1;
+static gint ett_gsm_map_ReturnErrorPDU = -1;
+static gint ett_gsm_map_ReturnResult_result = -1;
+static gint ett_gsm_map_ReturnError_result = -1;
+static gint ett_gsm_map_GSMMAPPDU = -1;
+static gint ett_gsm_map_ext_qos_subscribed = -1;
+static gint ett_gsm_map_pdptypenumber = -1;
+static gint ett_gsm_map_RAIdentity = -1;
+static gint ett_gsm_map_LAIFixedLength = -1;
+static gint ett_gsm_map_isdn_address_string = -1;
+static gint ett_gsm_map_geo_desc = -1;
+static gint ett_gsm_map_LongSignalInfo = -1;
+static gint ett_gsm_map_RadioResourceInformation =-1;
+static gint ett_gsm_map_MSNetworkCapability =-1;
+static gint ett_gsm_map_MSRadioAccessCapability = -1;
+static gint ett_gsm_map_externalsignalinfo = -1;
+static gint ett_gsm_map_cbs_data_coding = -1;
+static gint ett_gsm_map_GlobalCellId = -1;
+static gint ett_gsm_map_GeographicalInformation = -1;
+static gint ett_gsm_map_apn_str = -1;
+static gint ett_gsm_map_LocationNumber = -1;
+static gint ett_gsm_map_ericsson_locationInformation = -1;
+static gint ett_gsm_map_extension_data = -1;
+static gint ett_gsm_map_tbcd_digits = -1;
+static gint ett_gsm_map_ussd_string = -1;
+
+#include "packet-gsm_map-ett.c"
+
+static expert_field ei_gsm_map_unknown_sequence3 = EI_INIT;
+static expert_field ei_gsm_map_unknown_sequence = EI_INIT;
+static expert_field ei_gsm_map_unknown_parameter = EI_INIT;
+static expert_field ei_gsm_map_unknown_invokeData = EI_INIT;
+static expert_field ei_gsm_map_undecoded = EI_INIT;
+
+static dissector_handle_t gsm_sms_handle; /* SMS TPDU */
+static dissector_handle_t data_handle;
+static dissector_handle_t ranap_handle;
+static dissector_handle_t dtap_handle;
+static dissector_handle_t map_handle;
+static dissector_handle_t bssap_handle;
+static dissector_table_t map_prop_arg_opcode_table; /* prorietary operation codes */
+static dissector_table_t map_prop_res_opcode_table; /* prorietary operation codes */
+static dissector_table_t map_prop_err_opcode_table; /* prorietary operation codes */
+/* Preferenc settings default */
+#define MAX_SSN 254
+static range_t *global_ssn_range;
+#define APPLICATON_CONTEXT_FROM_TRACE 0
+static gint pref_application_context_version = APPLICATON_CONTEXT_FROM_TRACE;
+static gboolean pref_ericsson_proprietary_ext = FALSE;
+
+/* Global variables */
+static guint32 opcode=0;
+static guint32 errorCode;
+static proto_tree *top_tree;
+static int application_context_version;
+static guint ProtocolId;
+static guint AccessNetworkProtocolId;
+static int gsm_map_tap = -1;
+static guint8 gsmmap_pdu_type = 0;
+static guint8 gsm_map_pdu_size = 0;
+
+#define SMS_ENCODING_NOT_SET 0
+#define SMS_ENCODING_7BIT 1
+#define SMS_ENCODING_8BIT 2
+#define SMS_ENCODING_UCS2 3
+#define SMS_ENCODING_7BIT_LANG 4
+#define SMS_ENCODING_UCS2_LANG 5
+
+static guint8 sms_encoding;
+
+/* Forward declarations */
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+const gchar* gsm_map_opr_code(guint32 val, proto_item *item);
+
+/* Value strings */
+
+const value_string gsm_map_PDP_Type_Organisation_vals[] = {
+ { 0, "ETSI" },
+ { 1, "IETF" },
+ { 0, NULL }
+};
+
+const value_string gsm_map_ietf_defined_pdp_vals[] = {
+ { 0x21, "IPv4 Address" },
+ { 0x57, "IPv6 Address" },
+ { 0, NULL }
+};
+
+const value_string gsm_map_etsi_defined_pdp_vals[] = {
+ { 1, "PPP" },
+ { 0, NULL }
+};
+
+static const value_string gsm_map_tag_vals[] = {
+ { 0x4, "Bearer Capability" },
+ { 0, NULL }
+};
+
+static const value_string gsm_map_disc_par_vals[] = {
+ { 0, "Not Transparent" },
+ { 1, "Transparent" },
+ { 0, NULL }
+};
+
+static const value_string gsm_map_ericsson_locationInformation_rat_vals[] = {
+ { 0x0, "GSM" },
+ { 0x1, "UMTS" },
+ { 0x2, "LTE" },
+ { 0xf, "No information" },
+ { 0, NULL }
+};
+
+/* ITU-T Q.763 (12/1999)
+ * 3.30 Location number
+ */
+/* b) Nature of address indicator */
+static const range_string gsm_map_na_vals[] = {
+ { 0, 0, "spare" },
+ { 1, 1, "reserved for subscriber number (national use)" },
+ { 2, 2, "reserved for unknown (national use)" },
+ { 3, 3, "national (significant) number (national use)" },
+ { 4, 4, "international number" },
+ { 5, 0x6f, "spare" },
+ { 0x70, 0x7e, "spare" },
+ { 0x70, 0x7e, "reserved for national use" },
+ { 0x7f, 0x7f, "spare" },
+ { 0, 0, NULL }
+};
+
+/* d) Numbering plan indicator */
+static const value_string gsm_map_np_vals[] = {
+ { 0, "spare" },
+ { 1, "ISDN (telephony) numbering plan (ITU-T Recommendation E.164)" },
+ { 2, "spare" },
+ { 3, "Data numbering plan (ITU-T Recommendation X.121) (national use)" },
+ { 4, "Telex numbering plan (ITU-T Recommendation F.69) (national use)" },
+ { 5, "private numbering plan" },
+ { 6, "reserved for national use" },
+ { 7, "spare" },
+ { 0, NULL }
+};
+/*
+ * e) Address presentation restricted indicator
+ */
+static const value_string gsm_map_addr_pres_rest_vals[] = {
+ { 0, "presentation allowed" },
+ { 1, "presentation restricted" },
+ { 2, "address not available (national use)" },
+ { 3, "spare" },
+ { 0, NULL }
+};
+
+/* f) Screening indicator */
+static const value_string gsm_map_screening_ind_vals[] = {
+ { 0, "reserved" },
+ { 1, "user provided, verified and passed" },
+ { 2, "reserved" },
+ { 3, "network provided" },
+ { 0, NULL }
+};
+
+/* returns value in kb/s */
+static guint
+gsm_map_calc_bitrate(guint8 value){
+
+ guint8 granularity;
+ guint returnvalue;
+
+ if (value == 0xff)
+ return 0;
+
+ granularity = value >> 6;
+ returnvalue = value & 0x7f;
+ switch (granularity){
+ case 0:
+ break;
+ case 1:
+ returnvalue = ((returnvalue - 0x40) << 3)+64;
+ break;
+ case 2:
+ returnvalue = (returnvalue << 6)+576;
+ break;
+ case 3:
+ returnvalue = (returnvalue << 6)+576;
+ break;
+ }
+ return returnvalue;
+
+}
+
+static void
+dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
+ int offset = 0;
+ proto_tree *subtree;
+ guint8 octet;
+ guint16 value;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
+ /* 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.
+ */
+ /* Allocation/Retention Priority */
+ proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
+
+ /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
+ octet = tvb_get_guint8(tvb,offset);
+ switch (octet){
+ case 0:
+ proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, octet, "Reserved");
+ break;
+ case 0x93:
+ value = 1502;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ case 0x98:
+ value = 1510;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ case 0x99:
+ value = 1532;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ default:
+ if (octet<0x97){
+ value = octet * 10;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ }else{
+ proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, octet, "0x%x not defined in TS 24.008", octet);
+ }
+ }
+ offset++;
+
+ /* Maximum bit rate for uplink, octet 8 */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_uint_format_value(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, octet, "Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+ /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_uint_format_value(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, octet, "Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+ /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
+ Coding is identical to that of Maximum bit rate for uplink.
+ */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_uint_format_value(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, octet, "Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+
+ /* Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
+ Coding is identical to that of Maximum bit rate for uplink.
+ */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_uint_format_value(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, octet, "Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+
+}
+
+#define ELLIPSOID_POINT 0
+#define ELLIPSOID_POINT_WITH_UNCERT_CIRC 1
+#define ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE 3
+#define POLYGON 5
+#define ELLIPSOID_POINT_WITH_ALT 8
+#define ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID 9
+#define ELLIPSOID_ARC 10
+/*
+4 3 2 1
+0 0 0 0 Ellipsoid Point
+0 0 0 1 Ellipsoid point with uncertainty Circle
+0 0 1 1 Ellipsoid point with uncertainty Ellipse
+0 1 0 1 Polygon
+1 0 0 0 Ellipsoid point with altitude
+1 0 0 1 Ellipsoid point with altitude and uncertainty Ellipsoid
+1 0 1 0 Ellipsoid Arc
+other values reserved for future use
+*/
+
+/* TS 23 032 Table 2a: Coding of Type of Shape */
+#if 0
+static const value_string type_of_shape_vals[] = {
+ { ELLIPSOID_POINT, "Ellipsoid Point"},
+ { ELLIPSOID_POINT_WITH_UNCERT_CIRC, "Ellipsoid point with uncertainty Circle"},
+ { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE, "Ellipsoid point with uncertainty Ellipse"},
+ { POLYGON, "Polygon"},
+ { ELLIPSOID_POINT_WITH_ALT, "Ellipsoid point with altitude"},
+ { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID, "Ellipsoid point with altitude and uncertainty Ellipsoid"},
+ { ELLIPSOID_ARC, "Ellipsoid Arc"},
+ { 0, NULL }
+};
+
+/* 3GPP TS 23.032 7.3.1 */
+static const value_string sign_of_latitude_vals[] = {
+ { 0, "North"},
+ { 1, "South"},
+ { 0, NULL }
+};
+
+static const value_string dir_of_alt_vals[] = {
+ { 0, "Altitude expresses height"},
+ { 1, "Altitude expresses depth"},
+ { 0, NULL }
+};
+#endif
+
+static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = {
+ { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" },
+ { 1, "Coding Group 1" },
+ { 2, "Coding Group 2" },
+ { 3, "Coding Group 3" },
+ { 4, "General Data Coding indication" },
+ { 5, "General Data Coding indication" },
+ { 6, "General Data Coding indication" },
+ { 7, "General Data Coding indication" },
+ { 8, "Reserved" },
+ { 9, "Message with User Data Header (UDH) structure" },
+ { 10,"Reserved" },
+ { 11,"Reserved" },
+ { 12,"Reserved" },
+ { 13,"Reserved" },
+ { 14,"Defined by the WAP Forum" },
+ { 15,"Data coding / message handling" },
+ { 0, NULL}
+};
+static value_string_ext gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_data_coding_scheme_coding_grp_vals);
+
+/* Coding group 0
+ * Bits 3..0 indicate the language:
+ */
+static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = {
+ { 0, "German"},
+ { 1, "English"},
+ { 2, "Italian"},
+ { 3, "French"},
+ { 4, "Spanish"},
+ { 5, "Dutch"},
+ { 6, "Swedish"},
+ { 7, "Danish"},
+ { 8, "Portuguese"},
+ { 9, "Finnish"},
+ { 10, "Norwegian"},
+ { 11, "Greek"},
+ { 12, "Turkish"},
+ { 13, "Hungarian"},
+ { 14, "Polish"},
+ { 15, "Language unspecified"},
+ { 0, NULL }
+};
+static value_string_ext gsm_map_cbs_coding_grp0_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp0_lang_vals);
+
+static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = {
+ { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
+ { 1, "UCS2; message preceded by language indication"},
+ { 2, "Reserved"},
+ { 3, "Reserved"},
+ { 4, "Reserved"},
+ { 5, "Reserved"},
+ { 6, "Reserved"},
+ { 7, "Reserved"},
+ { 8, "Reserved"},
+ { 9, "Reserved"},
+ { 10, "Reserved"},
+ { 11, "Reserved"},
+ { 12, "Reserved"},
+ { 13, "Reserved"},
+ { 14, "Reserved"},
+ { 15, "Reserved"},
+ { 0, NULL }
+};
+static value_string_ext gsm_map_cbs_coding_grp1_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp1_lang_vals);
+
+static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = {
+ { 0, "Czech"},
+ { 1, "Hebrew"},
+ { 2, "Arabic"},
+ { 3, "Russian"},
+ { 4, "Icelandic"},
+ { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 0, NULL }
+};
+static value_string_ext gsm_map_cbs_coding_grp2_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp2_lang_vals);
+
+static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = {
+ { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 0, NULL }
+};
+static value_string_ext gsm_map_cbs_coding_grp3_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp3_lang_vals);
+
+static const true_false_string gsm_map_cbs_coding_grp4_7_comp_vals = {
+ "The text is compressed using the compression algorithm defined in 3GPP TS 23.042",
+ "The text is uncompressed"
+};
+
+static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = {
+ "Bits 1 to 0 have a message class meaning",
+ "Bits 1 to 0 are reserved and have no message class meaning"
+};
+
+/* Bits 3 and 2 indicate the character set being used, as follows: */
+
+static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = {
+ { 0, "GSM 7 bit default alphabet"},
+ { 1, "8 bit data"},
+ { 2, "UCS2 (16 bit)"},
+ { 3, "Reserved"},
+ { 0, NULL }
+};
+
+static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = {
+ { 0, "Class 0"},
+ { 1, "Class 1 Default meaning: ME-specific"},
+ { 2, "Class 2 (U)SIM specific message"},
+ { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
+ { 0, NULL }
+};
+
+static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = {
+ { 0, "GSM 7 bit default alphabet"},
+ { 1, "8 bit data"},
+ { 0, NULL }
+};
+
+static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
+ { 0, "GSM 7 bit default alphabet"},
+ { 1, "8 bit data"},
+ { 0, NULL }
+};
+
+
+/* 3GPP TS 23.038 version 7.0.0 Release 7 */
+guint8
+dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint16 offset)
+{
+ guint8 octet;
+ guint8 coding_grp;
+ guint8 character_set;
+
+ octet = tvb_get_guint8(tvb,offset);
+ coding_grp = octet >>4;
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ sms_encoding = SMS_ENCODING_NOT_SET;
+ switch (coding_grp){
+ case 0:
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ case 1:
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if ((octet & 0x0f)== 0){
+ sms_encoding = SMS_ENCODING_7BIT_LANG;
+ }else{
+ sms_encoding = SMS_ENCODING_UCS2_LANG;
+ }
+ break;
+ case 2:
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ case 3:
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ /* Coding_grp 01xx */
+ case 4:
+ /* FALLTHRU */
+ case 5:
+ /* FALLTHRU */
+ case 6:
+ /* FALLTHRU */
+ case 7:
+ /* FALLTHRU */
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if ((octet & 0x10)== 0x10){
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
+ /* Bits 3 and 2 indicate the character set being used, */
+ character_set = (octet&0x0c)>>2;
+ switch (character_set){
+ case 0:
+ /* GSM 7 bit default alphabet */
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ case 1:
+ /* 8 bit data */
+ sms_encoding = SMS_ENCODING_8BIT;
+ break;
+ case 2:
+ /* UCS2 (16 bit) */
+ sms_encoding = SMS_ENCODING_UCS2;
+ break;
+ case 3:
+ /* Reserved */
+ sms_encoding = SMS_ENCODING_NOT_SET;
+ break;
+ default:
+ break;
+ }
+ break;
+ case 8:
+ /* Reserved coding groups */
+ break;
+ case 9:
+ /* Message with User Data Header (UDH) structure:*/
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
+ character_set = (octet&0x0c)>>2;
+ switch (character_set){
+ case 0:
+ /* GSM 7 bit default alphabet */
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ case 1:
+ /* 8 bit data */
+ sms_encoding = SMS_ENCODING_8BIT;
+ break;
+ case 2:
+ /* UCS2 (16 bit) */
+ sms_encoding = SMS_ENCODING_UCS2;
+ break;
+ case 3:
+ /* Reserved */
+ sms_encoding = SMS_ENCODING_NOT_SET;
+ break;
+ default:
+ break;
+ }
+ break;
+ case 10:
+ /* FALLTHRU */
+ case 11:
+ /* FALLTHRU */
+ case 12:
+ /* FALLTHRU */
+ case 13:
+ /* FALLTHRU */
+ /* 1010..1101 Reserved coding groups */
+ break;
+ case 14:
+ /* Defined by the WAP Forum
+ * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
+ */
+ break;
+ case 15:
+ /* Data coding / message handling */
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, offset, 1, ENC_BIG_ENDIAN);
+ character_set = (octet&0x04)>>2;
+ if (character_set == 0){
+ sms_encoding = SMS_ENCODING_7BIT;
+ }else{
+ sms_encoding = SMS_ENCODING_8BIT;
+ }
+ break;
+ default:
+ break;
+ }
+
+ return sms_encoding;
+}
+void
+dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ const char *digit_str;
+ guint8 octet;
+ guint8 na;
+ guint8 np;
+
+ proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,ENC_BIG_ENDIAN);
+
+ if(tvb_reported_length(tvb)==1)
+ return;
+
+ octet = tvb_get_guint8(tvb,0);
+ /* nature of address indicator */
+ na = (octet & 0x70)>>4;
+ /* numbering plan indicator */
+ np = octet & 0x0f;
+ switch(np){
+ case 1:
+ /* ISDN/Telephony Numbering Plan (Rec ITU-T E.164) */
+ switch(na){
+ case 1:
+ /* international number */
+ dissect_e164_msisdn(tvb, tree, 1, tvb_reported_length(tvb)-1, E164_ENC_BCD);
+ break;
+ default:
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(tvb, 1, -1, NULL, FALSE);
+ proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str);
+ break;
+ }
+ break;
+ case 6:
+ /* land mobile numbering plan (ITU-T Rec E.212) */
+ dissect_e212_imsi(tvb, pinfo, tree, 1, tvb_reported_length(tvb)-1, FALSE);
+ break;
+ default:
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(tvb, 1, -1, NULL, FALSE);
+ proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str);
+ break;
+ }
+
+}
+
+#include "packet-gsm_map-fn.c"
+
+/* Specific translation for MAP V3 */
+const value_string gsm_map_V1V2_opr_code_strings[] = {
+ { 44, "forwardSM" },
+ { 45, "sendRoutingInfoForSM" },
+ { 46, "forwardSM" },
+ { 0, NULL }
+};
+/* Generic translation for MAP operation */
+const value_string gsm_map_opr_code_strings[] = {
+#include "packet-gsm_map-table.c"
+ { 0, NULL }
+};
+
+#if 0
+static const value_string gsm_map_err_code_string_vals[] = {
+#include "packet-gsm_map-table.c"
+ { 0, NULL }
+};
+#endif
+
+static const true_false_string gsm_map_extension_value = {
+ "No Extension",
+ "Extension"
+};
+static const value_string gsm_map_nature_of_number_values[] = {
+ { 0x00, "unknown" },
+ { 0x01, "International Number" },
+ { 0x02, "National Significant Number" },
+ { 0x03, "Network Specific Number" },
+ { 0x04, "Subscriber Number" },
+ { 0x05, "Reserved" },
+ { 0x06, "Abbreviated Number" },
+ { 0x07, "Reserved for extension" },
+ { 0, NULL }
+};
+static value_string_ext gsm_map_nature_of_number_values_ext = VALUE_STRING_EXT_INIT(gsm_map_nature_of_number_values);
+
+static const value_string gsm_map_number_plan_values[] = {
+ { 0x00, "unknown" },
+ { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
+ { 0x02, "spare" },
+ { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
+ { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
+ { 0x05, "spare" },
+ { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
+ { 0x07, "spare" },
+ { 0x08, "National Numbering" },
+ { 0x09, "Private Numbering" },
+ { 0x0a, "spare" },
+ { 0x0b, "spare" },
+ { 0x0c, "spare" },
+ { 0x0d, "spare" },
+ { 0x0e, "spare" },
+ { 0x0f, "Reserved for extension" },
+ { 0, NULL }
+};
+static value_string_ext gsm_map_number_plan_values_ext = VALUE_STRING_EXT_INIT(gsm_map_number_plan_values);
+
+static const true_false_string gsm_map_Ss_Status_q_bit_values = {
+ "Quiescent",
+ "Operative"
+};
+static const true_false_string gsm_map_Ss_Status_p_values = {
+ "Provisioned",
+ "Not Provisioned"
+};
+static const true_false_string gsm_map_Ss_Status_r_values = {
+ "Registered",
+ "Not Registered"
+};
+static const true_false_string gsm_map_Ss_Status_a_values = {
+ "Active",
+ "not Active"
+};
+
+/*
+ * Translate the MAP operation code value to a text string
+ * Take into account the MAP version for ForwardSM
+ */
+const gchar* gsm_map_opr_code(guint32 val, proto_item *item) {
+ switch (val) {
+ case 44: /*mt-forwardSM*/
+ /* FALLTHRU */
+ case 46: /*mo-forwardSM*/
+ /* FALLTHRU */
+ if (application_context_version < 3) {
+ proto_item_set_text(item, "%s (%d)", val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode"), val);
+ return val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode");
+ }
+ /* Else use the default map operation translation */
+ default:
+ return val_to_str_ext_const(val, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, "Unknown GSM-MAP opcode");
+ break;
+ }
+}
+
+/* Prototype for a decoding function */
+typedef int (* dissect_function_t)( gboolean,
+ tvbuff_t *,
+ int ,
+ asn1_ctx_t *,
+ proto_tree *,
+ int);
+
+/*
+ * Dissect Multiple Choice Message
+ * This function is used to decode a message, when several encoding may be used.
+ * For exemple, in the last MAP version, the Cancel Location is defined like this:
+ * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
+ * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
+ * As ASN1 encoders (or software) still uses the old encoding, this function allows
+ * the decoding of both versions.
+ * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the
+ * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
+ * This explain why the function expects 3 parameters:
+ * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
+ * - a SEQUENCE for old style
+ * - and a single parameter, for old version or optimizations
+ *
+ * The analyze of the first ASN1 tag, indicate what kind of decoding should be used,
+ * if the decoding function is provided (so not a NULL function)
+ */
+static int dissect_mc_message(tvbuff_t *tvb,
+ int offset,
+ asn1_ctx_t *actx,
+ proto_tree *tree,
+ gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
+ gboolean implicit_seq _U_, dissect_function_t sequence, int hf_index_seq _U_,
+ gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
+{
+ guint8 octet;
+ gint8 bug_class;
+ gboolean bug_pc, bug_ind_field;
+ gint32 bug_tag;
+ guint32 bug_len;
+
+ octet = tvb_get_guint8(tvb,0);
+ if ( (octet & 0xf) == 3) {
+ /* XXX asn2wrs can not yet handle tagged assignment yes so this
+ * XXX is some conformance file magic to work around that bug
+ */
+ offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
+ offset = get_ber_length(tvb, offset, &bug_len, &bug_ind_field);
+ if (sequence3 != NULL) {
+ offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
+ } else {
+ proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_sequence3, tvb, offset, -1);
+ }
+ } else if (octet == 0x30) {
+ if (sequence != NULL) {
+ offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq);
+ } else {
+ proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_sequence, tvb, offset, -1);
+ }
+ } else {
+ if (parameter != NULL) {
+ offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
+ } else {
+ proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_parameter, tvb, offset, -1);
+ }
+ }
+ return offset;
+}
+
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ switch(opcode){
+ case 2: /*updateLocation*/
+ offset=dissect_gsm_map_ms_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 3: /*cancelLocation*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
+ FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
+ TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
+ break;
+ case 4: /*provideRoamingNumber*/
+ offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 5: /*noteSubscriberDataModified*/
+ offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 6: /*resumeCallHandling*/
+ offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 7: /*insertSubscriberData*/
+ offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /*deleteSubscriberData*/
+ offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 9: /*sendParameters*/
+ offset = dissect_gsm_old_SendParametersArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 10: /*registerSS*/
+ offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 11: /*eraseSS*/
+ offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 12: /*activateSS*/
+ offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 13: /*deactivateSS*/
+ offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 14: /*interrogateSS*/
+ offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 15: /*authenticationFailureReport*/
+ offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 16: /*SS-protocol notifySS*/
+ offset=dissect_gsm_ss_NotifySS_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 17: /*registerPassword*/
+ offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
+ break;
+ case 18: /*getPassword*/
+ offset=dissect_gsm_old_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword);
+ break;
+ case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
+ offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
+ break;
+ case 20: /*releaseResources*/
+ offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 21: /*mt-ForwardSM-VGCS*/
+ offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 22: /*sendRoutingInfo*/
+ if (application_context_version == 3){
+ offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
+ }else{
+ offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
+ }
+ break;
+ case 23: /*updateGprsLocation*/
+ offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 24: /*sendRoutingInfoForGprs*/
+ offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 25: /*failureReport*/
+ offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 26: /*noteMsPresentForGprs*/
+ offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* undefined 27 */
+ /* reserved performHandover (28) */
+ case 29: /*sendEndSignal*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
+ break;
+ /* reserved performSubsequentHandover (30) */
+ case 31: /*provideSIWFSNumber*/
+ offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 32: /*sIWFSSignallingModify*/
+ offset=dissect_gsm_old_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 33: /*processAccessSignalling*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
+ break;
+ case 34: /*forwardAccessSignalling*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
+ break;
+ /* reserved noteInternalHandover (35) */
+ case 36: /*cancelVcsgLocation*/
+ offset=dissect_gsm_map_ms_CancelVcsgLocationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 37: /*reset*/
+ offset=dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 38: /*forwardCheckSS-Indication*/
+ return offset;
+ break;
+ case 39: /*prepareGroupCall*/
+ offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 40: /*sendGroupCallEndSignal*/
+ offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 41: /*processGroupCallSignalling*/
+ offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 42: /*forwardGroupCallSignalling*/
+ offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 43: /*checkIMEI*/
+ if (pref_ericsson_proprietary_ext) {
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
+ FALSE, dissect_gsm_map_ericsson_EnhancedCheckIMEI_Arg, -1,
+ TRUE , NULL, -1); /* no [3] SEQUENCE */
+ } else {
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
+ FALSE, dissect_gsm_map_ms_CheckIMEI_Arg, -1,
+ TRUE , NULL, -1); /* no [3] SEQUENCE */
+ }
+ break;
+ case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
+ if (application_context_version == 3)
+ offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ else {
+ offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ }
+ break;
+ case 45: /*sendRoutingInfoForSM*/
+ if (application_context_version < 2) {
+ offset=dissect_gsm_old_RoutingInfoForSM_ArgV1(FALSE, tvb, offset, actx, tree, -1);
+ } else {
+ offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ }
+ break;
+ case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
+ if (application_context_version == 3)
+ offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ else {
+ offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ }
+ break;
+ case 47: /*reportSM-DeliveryStatus*/
+ offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* reserved noteSubscriberPresent (48) */
+ /* reserved alertServiceCentreWithoutResult (49)
+ * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
+ * -- alertServiceCentreWithoutResult must not be used in
+ * -- version greater 1
+ */
+ case 49:
+ offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 50: /*activateTraceMode*/
+ offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 51: /*deactivateTraceMode*/
+ offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* reserved traceSubscriberActivity (52) */
+
+ case 53: /* UpdateVcsgLocation 53 */
+ offset=dissect_gsm_map_ms_UpdateVcsgLocationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 54: /*beginSubscriberActivity*/
+ offset=dissect_gsm_old_BeginSubscriberActivityArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 55: /*sendIdentification*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
+ FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1,
+ TRUE, NULL, -1);
+ break;
+ case 56: /*sendAuthenticationInfo*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
+ TRUE, NULL, -1);
+ break;
+ case 57: /*restoreData*/
+ offset=dissect_gsm_map_ms_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 58: /*sendIMSI*/
+ offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
+ break;
+ case 59: /*processUnstructuredSS-Request*/
+ offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 60: /*unstructuredSS-Request*/
+ offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 61: /*unstructuredSS-Notify*/
+ offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 62: /*AnyTimeSubscriptionInterrogation*/
+ offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 63: /*informServiceCentre*/
+ offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 64: /*alertServiceCentre*/
+ offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 65: /*AnyTimeModification*/
+ offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 66: /*readyForSM*/
+ offset=dissect_gsm_map_sm_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 67: /*purgeMS*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
+ TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1);
+ break;
+ case 68: /*prepareHandover*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1,
+ TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1);
+ break;
+ case 69: /*prepareSubsequentHandover*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, NULL, -1,
+ TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
+ break;
+ case 70: /*provideSubscriberInfo*/
+ offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 71: /*anyTimeInterrogation*/
+ offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 72: /*ss-InvocationNotificatio*/
+ offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 73: /*setReportingState*/
+ offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 74: /*statusReport*/
+ offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 75: /*remoteUserFree*/
+ offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 76: /*registerCC-Entry*/
+ offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 77: /*eraseCC-Entry*/
+ offset=dissect_gsm_map_ss_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 78: /*secureTransportClass1*/
+ case 79: /*secureTransportClass1*/
+ case 80: /*secureTransportClass1*/
+ case 81: /*secureTransportClass1*/
+ offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* undefined 82 */
+ case 83: /*provideSubscriberLocation*/
+ offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 84: /*sendGroupCallInfo*/
+ offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 85: /*sendRoutingInfoForLCS*/
+ offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 86: /*subscriberLocationReport*/
+ offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 87: /*ist-Alert*/
+ offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 88: /*ist-Command*/
+ offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 89: /*noteMM-Event*/
+ offset=dissect_gsm_map_ms_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
+ offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 110: /*SS-protocol lcs-LocationUpdate*/
+ offset=dissect_gsm_ss_LCS_LocationUpdateArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
+ offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 112: /*SS-protocol lcs-AreaEventCancellation*/
+ offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 113: /*SS-protocol lcs-AreaEventReport*/
+ offset=dissect_gsm_ss_LCS_AreaEventReportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 114: /*SS-protocol lcs-AreaEventRequest*/
+ offset=dissect_gsm_ss_LCS_AreaEventRequestArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 115: /*SS-protocol lcs-MOLR*/
+ offset=dissect_gsm_ss_LCS_MOLRArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 116: /*SS-protocol lcs-LocationNotification*/
+ offset=dissect_gsm_ss_LocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 117: /*SS-protocol callDeflection*/
+ offset=dissect_gsm_ss_CallDeflectionArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 118: /*SS-protocol userUserService*/
+ offset=dissect_gsm_ss_UserUserServiceArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 119: /*SS-protocol accessRegisterCCEntry*/
+ offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 120: /*SS-protocol forwardCUG-Info*/
+ application_context_version = 3;
+ offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 121: /*SS-protocol splitMPTY no Argument*/
+ break;
+ case 122: /*SS-protocol retrieveMPTY no Argument*/
+ break;
+ case 123: /*SS-protocol holdMPTY no Argument*/
+ break;
+ case 124: /*SS-protocol buildMPTY no Argument*/
+ break;
+ case 125: /*SS-protocol forwardChargeAdvice*/
+ offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 126: /*SS-protocol explicitCT no Argument*/
+ break;
+ default:
+ if(!dissector_try_uint(map_prop_arg_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree)){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
+ tvb, offset, -1, "Unknown invokeData %d", opcode);
+ }
+ offset+= tvb_reported_length_remaining(tvb,offset);
+ break;
+ }
+ return offset;
+}
+
+
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ switch(opcode){
+ case 2: /*updateLocation*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1,
+ TRUE , NULL, -1);
+ break;
+ case 3: /*cancelLocation*/
+ offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 4: /*provideRoamingNumber*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_msisdn,
+ FALSE, dissect_gsm_map_ch_ProvideRoamingNumberRes, -1,
+ TRUE , NULL, -1);/*undefined*/
+ break;
+ case 5: /*noteSubscriberDataModified*/
+ offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 6: /*resumeCallHandling*/
+ offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 7: /*insertSubscriberData*/
+ offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /*deleteSubscriberData*/
+ offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 9: /*sendParameters*/
+ offset = dissect_gsm_old_SentParameterList(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 10: /*registerSS*/
+ offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 11: /*eraseSS*/
+ offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 12: /*activateSS*/
+ offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 13: /*deactivateSS*/
+ offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 14: /*interrogateSS*/
+ offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 15: /*authenticationFailureReport*/
+ offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 17: /*registerPassword*/
+ /* change hf_gsm_map_ss_Code to something with password */
+ offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
+ break;
+ case 18: /*getPassword*/
+ offset=dissect_gsm_old_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
+ break;
+ case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
+ offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
+ break;
+ case 20: /*releaseResources*/
+ offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 21: /*mt-ForwardSM-VGCS*/
+ offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 22: /*sendRoutingInfo*/
+ if (application_context_version == 3){
+ /* If the tag is missing use SendRoutingInfoRes_U */
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1,
+ TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
+ }else{
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1,
+ TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
+ }
+ break;
+ case 23: /*updateGprsLocation*/
+ offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 24: /*sendRoutingInfoForGprs*/
+ offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 25: /*failureReport*/
+ offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 26: /*noteMsPresentForGprs*/
+ offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 29: /*sendEndSignal*/
+ /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
+ * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
+ */
+ offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 31: /*provideSIWFSNumber*/
+ offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 32: /*provideSIWFSSignallingModify*/
+ offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 36: /*cancelVcsgLocation*/
+ offset=dissect_gsm_map_ms_CancelVcsgLocationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 39: /*prepareGroupCall*/
+ offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 40: /*sendGroupCallEndSignal*/
+ offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 43: /*checkIMEI*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
+ FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1,
+ TRUE, NULL, -1);
+ break;
+ case 44: /*mt-forwardSM*/
+ offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 45: /*sendRoutingInfoForSM*/
+ if (application_context_version < 3) {
+ offset=dissect_gsm_old_RoutingInfoForSM_ResV2(FALSE, tvb, offset, actx, tree, -1);
+ } else {
+ offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1);
+ }
+ break;
+ case 46: /*mo-forwardSM*/
+ offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 47: /*reportSM-DeliveryStatus*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_sm_storedMSISDN,
+ FALSE, dissect_gsm_map_sm_ReportSM_DeliveryStatusRes, -1,
+ FALSE, NULL, -1);/*undefined*/
+ break;
+ case 48: /*noteSubscriberPresent*/
+ break;
+ case 50: /*activateTraceMode*/
+ offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 51: /*deactivateTraceMode*/
+ offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 53: /* UpdateVcsgLocation 53 */
+ offset=dissect_gsm_map_ms_UpdateVcsgLocationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 55: /*sendIdentification */
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
+ TRUE, dissect_gsm_map_ms_SendIdentificationRes, -1);
+ break;
+ case 56: /*sendAuthenticationInfo*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
+ TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
+ break;
+ case 57: /*restoreData*/
+ offset=dissect_gsm_map_ms_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 58: /*sendIMSI*/
+ offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi);
+ break;
+ case 59: /*unstructuredSS-Request*/
+ offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 60: /*unstructuredSS-Request*/
+ offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 61: /*unstructuredSS-Notify*/
+ /* TRUE ? */
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData, tvb, offset, -1, "Unknown returnResultData blob");
+ break;
+ case 62: /*AnyTimeSubscriptionInterrogation*/
+ offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 64: /*alertServiceCentre*/
+ /* TRUE */
+ break;
+ case 65: /*AnyTimeModification*/
+ offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 66: /*readyForSM*/
+ offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 67: /*purgeMS*/
+ offset=dissect_gsm_map_ms_PurgeMS_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 68: /*prepareHandover*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_PrepareHO_ResOld, -1,
+ TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1);
+ break;
+ case 69: /*prepareSubsequentHandover*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, NULL, -1,
+ TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
+ break;
+ case 70: /*provideSubscriberInfo*/
+ offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 71: /*anyTimeInterrogation*/
+ offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 72: /*ss-InvocationNotificatio*/
+ offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 73: /*setReportingState*/
+ offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 74: /*statusReport*/
+ offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 75: /*remoteUserFree*/
+ offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 76: /*registerCC-Entry*/
+ offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 77: /*eraseCC-Entry*/
+ offset=dissect_gsm_map_ss_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 78: /*secureTransportClass1*/
+ case 79: /*secureTransportClass2*/
+ case 80: /*secureTransportClass3*/
+ case 81: /*secureTransportClass4*/
+ offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 83: /*provideSubscriberLocation*/
+ offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 84: /*sendGroupCallInfo*/
+ offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 85: /*sendRoutingInfoForLCS*/
+ offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 86: /*subscriberLocationReport*/
+ offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 87: /*ist-Alert*/
+ offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 88: /*ist-Command*/
+ offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 89: /*noteMM-Event*/
+ offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
+ /* No parameter */
+ break;
+ case 110: /*SS-protocol lcs-LocationUpdate*/
+ offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
+ offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 112: /*SS-protocol lcs-AreaEventCancellation*/
+ break;
+ case 113: /*SS-protocol lcs-AreaEventReport*/
+ break;
+ case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/
+ break;
+ case 115: /*SS-protocol lcs-MOLR*/
+ offset=dissect_gsm_ss_LCS_MOLRRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 116: /*SS-protocol lcs-LocationNotification*/
+ offset=dissect_gsm_ss_LocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 117: /*SS-protocol callDeflection no RESULT*/
+ break;
+ case 118: /*SS-protocol userUserService no RESULT*/
+ break;
+ case 119: /*SS-protocol accessRegisterCCEntry*/
+ offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 120: /*SS-protocol forwardCUG-Info*/
+ /* No RETURN RESULT*/
+ break;
+ case 121: /*SS-protocol splitMPTY no RESULT*/
+ break;
+ case 122: /*SS-protocol retrieveMPTY no RESULT*/
+ break;
+ case 123: /*SS-protocol holdMPTY no RESULT*/
+ break;
+ case 124: /*SS-protocol buildMPTY no RESULT*/
+ break;
+ case 125: /*SS-protocol forwardChargeAdvice no RESULT*/
+ break;
+ case 126: /*SS-protocol explicitCT no RESULT*/
+ break;
+
+ default:
+ if(!dissector_try_uint(map_prop_res_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree)){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
+ tvb, offset, -1, "Unknown returnResultData %d", opcode);
+ }
+ offset+= tvb_reported_length_remaining(tvb,offset);
+ break;
+ }
+ return offset;
+}
+
+
+
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ switch(errorCode){
+ case 1: /* UnknownSubscriberParam */
+ offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 4: /* SecureTransportErrorParam */
+ offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 5: /* UnidentifiedSubParam */
+ offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 6: /* AbsentSubscriberSM-Param */
+ offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /* RoamingNotAllowedParam */
+ offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 9: /* IllegalSubscriberParam */
+ offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 10: /* BearerServNotProvParam */
+ offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 11: /* TeleservNotProvParam */
+ offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 12: /* IllegalEquipmentParam */
+ offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 13: /* CallBarredParam */
+ offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 14: /* ForwardingViolationParam */
+ offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 15: /* CUG-RejectParam */
+ offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 16: /* IllegalSS-OperationParam */
+ offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 17: /* SS-ErrorStatus */
+ offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_ss_Status);
+ break;
+ case 18: /* SS-NotAvailableParam */
+ offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 19: /* SS-SubscriptionViolationParam */
+ offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 20: /* SS-IncompatibilityCause */
+ offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 21: /* FacilityNotSupParam */
+ offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 22: /* OngoingGroupCallParam */
+ offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 27: /* AbsentSubscriberParam */
+ offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 28: /* IncompatibleTerminalParam */
+ offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 29: /* ShortTermDenialParam */
+ offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 30: /* LongTermDenialParam */
+ offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 31: /* SubBusyForMT-SMS-Param */
+ offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 32: /* SM-DeliveryFailureCause */
+ offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 33: /* MessageWaitListFullParam */
+ offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 34: /* SystemFailureParam */
+ offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 35: /* DataMissingParam */
+ offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 36: /* UnexpectedDataParam */
+ offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 37: /* PW-RegistrationFailureCause */
+ offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 39: /* NoRoamingNbParam */
+ offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 40: /* TracingBufferFullParam */
+ offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 42: /* TargetCellOutsideGCA-Param */
+ offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 44: /* NumberChangedParam */
+ offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 45: /* BusySubscriberParam */
+ offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 46: /* NoSubscriberReplyParam */
+ offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 47: /* ForwardingFailedParam */
+ offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 48: /* OR-NotAllowedParam */
+ offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 49: /* ATI-NotAllowedParam */
+ offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 50: /* NoGroupCallNbParam */
+ offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 51: /* ResourceLimitationParam */
+ offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 52: /* UnauthorizedRequestingNetwork-Param */
+ offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 53: /* UnauthorizedLCSClient-Param */
+ offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 54: /* PositionMethodFailure-Param */
+ offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 58: /* UnknownOrUnreachableLCSClient-Param */
+ offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 59: /* MM-EventNotSupported-Param */
+ offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 60: /* ATSI-NotAllowedParam */
+ offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 61: /* ATM-NotAllowedParam */
+ offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 62: /* InformationNotAvailableParam */
+ offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ default:
+ if(!dissector_try_uint(map_prop_err_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree)){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
+ tvb, offset, -1, "Unknown returnErrorData %d", opcode);
+ }
+ offset+= tvb_reported_length_remaining(tvb,offset);
+ break;
+ }
+ return offset;
+}
+
+/* Private extension container for PLMN Data */
+static int dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_old_PlmnContainer_U, NULL, "MAP Ext. Plmn Container");
+
+ return dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_SriResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriResExtension_U, NULL, "Nokia Extension");
+ return dissect_NokiaMAP_Extensions_SriResExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_CanLocArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_CanLocArgExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_CanLocArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_ATMargExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ATMargExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_ATMargExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_DTMargExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_DTMargExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_DTMargExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_NumberPorted(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ return dissect_NokiaMAP_Extensions_NumberPorted(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_ATMresExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ATMresExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_ATMresExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_AbsentSubscriberExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ return dissect_NokiaMAP_Extensions_AbsentSubscriberExt(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_SriForSMArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriForSMArgExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_SriForSMArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_ReportSMDelStatArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_UdlArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_UdlArgExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_UdlArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_RoamNotAllowedExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_RoamNotAllowedExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_RoamNotAllowedExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_ErrOlcmInfoTableExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_RoutingCategoryExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_RoutingCategoryExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_RoutingCategoryExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_AnyTimeModArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_AnyTimeModArgExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_AnyTimeModArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_ExtensionType(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ return dissect_NokiaMAP_Extensions_ExtensionType(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_AccessTypeExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ return dissect_NokiaMAP_Extensions_AccessTypeExt(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_AccessSubscriptionListExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ return dissect_NokiaMAP_Extensions_AccessSubscriptionListExt(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_AllowedServiceData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ return dissect_NokiaMAP_Extensions_AllowedServiceData(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_SriExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriExtension_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_SriExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ExtraSignalInfo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ExtraSignalInfo_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_ExtraSignalInfo(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_SS_DataExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SS_DataExtension_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_SS_DataExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_HOExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_HO_Ext_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_HO_Ext(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_UlResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_UlResExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_UlResExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+
+static int dissect_NokiaMAP_ext_IsdArgExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_IsdArgExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_IsdArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int dissect_NokiaMAP_ext_DsdArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_DsdArgExt_U, NULL, "Nokia Extension");
+
+ return dissect_NokiaMAP_Extensions_DsdArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int
+dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree,
+ int hf_index _U_, struct tcap_private_t * p_private_tcap) {
+
+ char *version_ptr;
+
+ opcode = 0;
+ if (pref_application_context_version == APPLICATON_CONTEXT_FROM_TRACE) {
+ application_context_version = 0;
+ if (p_private_tcap != NULL){
+ if (p_private_tcap->acv==TRUE ){
+ version_ptr = strrchr((const char*)p_private_tcap->oid,'.');
+ if (version_ptr){
+ application_context_version = atoi(version_ptr+1);
+ }
+ }
+ }
+ }else{
+ application_context_version = pref_application_context_version;
+ }
+
+ gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
+ /* Get the length and add 2 */
+ gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+
+ col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str_const(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP Component"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+ offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_old_Component_PDU);
+/*
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
+*/
+
+ return offset;
+}
+
+static int
+dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ /* Used for gsm_map TAP */
+ static gsm_map_tap_rec_t tap_rec;
+ gint op_idx;
+ struct tcap_private_t * p_private_tcap = (struct tcap_private_t *)data;
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
+
+ top_tree = parent_tree;
+
+ /* create display subtree for the protocol */
+ item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_gsm_map);
+
+ dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1, p_private_tcap);
+ try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx);
+
+ if (op_idx != -1) {
+ tap_rec.invoke = (gsmmap_pdu_type == 1) ? TRUE : FALSE;
+ tap_rec.opcode = opcode;
+ tap_rec.size = gsm_map_pdu_size;
+
+ tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_gsm_map_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ /* Used for gsm_map TAP */
+ static gsm_map_tap_rec_t tap_rec;
+ gint op_idx;
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
+
+ top_tree = parent_tree;
+
+ /* create display subtree for the protocol */
+ item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_gsm_map);
+
+ /* Save the sccp_msg_info_t data (if present) because it can't be passed
+ through function calls */
+ p_add_proto_data(pinfo->pool, pinfo, proto_gsm_map, pinfo->curr_layer_num, data);
+
+ dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1, NULL);
+ try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx);
+
+ if (op_idx != -1) {
+ tap_rec.invoke = (gsmmap_pdu_type == 1) ? TRUE : FALSE;
+ tap_rec.opcode = opcode;
+ tap_rec.size = gsm_map_pdu_size;
+
+ tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+const value_string ssCode_vals[] = {
+ { 0x00, "allSS - all SS" },
+ { 0x10 ,"allLineIdentificationSS - all line identification SS" },
+ { 0x11 ,"clip - calling line identification presentation" },
+ { 0x12 ,"clir - calling line identification restriction" },
+ { 0x13 ,"colp - connected line identification presentation" },
+ { 0x14 ,"colr - connected line identification restriction" },
+ { 0x15 ,"mci - malicious call identification" },
+ { 0x18 ,"allNameIdentificationSS - all name identification SS" },
+ { 0x19 ,"cnap - calling name presentation" },
+ { 0x20 ,"allForwardingSS - all forwarding SS" },
+ { 0x21 ,"cfu - call forwarding unconditional" },
+ { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
+ { 0x29 ,"cfb - call forwarding busy" },
+ { 0x2a ,"cfnry - call forwarding on no reply" },
+ { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
+ { 0x24 ,"cd - call deflection" },
+ { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
+ { 0x31 ,"ect - explicit call transfer" },
+ { 0x32 ,"mah - mobile access hunting" },
+ { 0x40 ,"allCallCompletionSS - all Call completion SS" },
+ { 0x41 ,"cw - call waiting" },
+ { 0x42 ,"hold - call hold" },
+ { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
+ { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
+ { 0x45 ,"mc - multicall" },
+ { 0x50 ,"allMultiPartySS - all multiparty SS" },
+ { 0x51 ,"multiPTY - multiparty" },
+ { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
+ { 0x61 ,"cug - closed user group" },
+ { 0x70 ,"allChargingSS - all charging SS" },
+ { 0x71 ,"aoci - advice of charge information" },
+ { 0x72 ,"aocc - advice of charge charging" },
+ { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
+ { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
+ { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
+ { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
+ { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
+ { 0x91 ,"barringOfOutgoingCalls" },
+ { 0x92 ,"baoc - barring of all outgoing calls" },
+ { 0x93 ,"boic - barring of outgoing international calls" },
+ { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
+ { 0x99 ,"barringOfIncomingCalls" },
+ { 0x9a ,"baic - barring of all incoming calls" },
+ { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
+ { 0xf0 ,"allPLMN-specificSS" },
+ { 0xa0 ,"allCallPrioritySS - all call priority SS" },
+ { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
+ { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
+ { 0xb1 ,"universal - allow location by any LCS client" },
+ { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
+ { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
+ { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
+ { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
+ { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
+ { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
+ { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
+ { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
+
+ { 0xf1 ,"plmn-specificSS-1" },
+ { 0xf2 ,"plmn-specificSS-2" },
+ { 0xf3 ,"plmn-specificSS-3" },
+ { 0xf4 ,"plmn-specificSS-4" },
+ { 0xf5 ,"plmn-specificSS-5" },
+ { 0xf6 ,"plmn-specificSS-6" },
+ { 0xf7 ,"plmn-specificSS-7" },
+ { 0xf8 ,"plmn-specificSS-8" },
+ { 0xf9 ,"plmn-specificSS-9" },
+ { 0xfa ,"plmn-specificSS-a" },
+ { 0xfb ,"plmn-specificSS-b" },
+ { 0xfc ,"plmn-specificSS-c" },
+ { 0xfd ,"plmn-specificSS-d" },
+ { 0xfe ,"plmn-specificSS-e" },
+ { 0xff ,"plmn-specificSS-f" },
+ { 0, NULL }
+};
+
+static const value_string Teleservice_vals[] = {
+ { 0x00, "allTeleservices" },
+ { 0x10, "allSpeechTransmissionServices" },
+ { 0x11, "telephony" },
+ { 0x12, "emergencyCalls" },
+ { 0x20, "allShortMessageServices" },
+ { 0x21, "shortMessageMT-PP" },
+ { 0x22, "shortMessageMO-PP" },
+ { 0x60, "allFacsimileTransmissionServices" },
+ { 0x61, "facsimileGroup3AndAlterSpeech" },
+ { 0x62, "automaticFacsimileGroup3" },
+ { 0x63, "facsimileGroup4" },
+
+ { 0x70, "allDataTeleservices" },
+ { 0x80, "allTeleservices-ExeptSMS" },
+
+ { 0x90, "allVoiceGroupCallServices" },
+ { 0x91, "voiceGroupCall" },
+ { 0x92, "voiceBroadcastCall" },
+
+ { 0xd0, "allPLMN-specificTS" },
+ { 0xd1, "plmn-specificTS-1" },
+ { 0xd2, "plmn-specificTS-2" },
+ { 0xd3, "plmn-specificTS-3" },
+ { 0xd4, "plmn-specificTS-4" },
+ { 0xd5, "plmn-specificTS-5" },
+ { 0xd6, "plmn-specificTS-6" },
+ { 0xd7, "plmn-specificTS-7" },
+ { 0xd8, "plmn-specificTS-8" },
+ { 0xd9, "plmn-specificTS-9" },
+ { 0xda, "plmn-specificTS-A" },
+ { 0xdb, "plmn-specificTS-B" },
+ { 0xdc, "plmn-specificTS-C" },
+ { 0xdd, "plmn-specificTS-D" },
+ { 0xde, "plmn-specificTS-E" },
+ { 0xdf, "plmn-specificTS-F" },
+ { 0, NULL }
+};
+
+static const value_string Bearerservice_vals[] = {
+ { 0x00, "allBearerServices" },
+ { 0x10, "allDataCDA-Services" },
+ { 0x11, "dataCDA-300bps" },
+ { 0x12, "dataCDA-1200bps" },
+ { 0x13, "dataCDA-1200-75bps" },
+ { 0x14, "dataCDA-2400bps" },
+ { 0x15, "dataCDA-4800bps" },
+ { 0x16, "dataCDA-9600bps" },
+ { 0x17, "general-dataCDA" },
+
+ { 0x18, "allDataCDS-Services" },
+ { 0x1A, "dataCDS-1200bps" },
+ { 0x1C, "dataCDS-2400bps" },
+ { 0x1D, "dataCDS-4800bps" },
+ { 0x1E, "dataCDS-9600bps" },
+ { 0x1F, "general-dataCDS" },
+
+ { 0x20, "allPadAccessCA-Services" },
+ { 0x21, "padAccessCA-300bps" },
+ { 0x22, "padAccessCA-1200bps" },
+ { 0x23, "padAccessCA-1200-75bps" },
+ { 0x24, "padAccessCA-2400bps" },
+ { 0x25, "padAccessCA-4800bps" },
+ { 0x26, "padAccessCA-9600bps" },
+ { 0x27, "general-padAccessCA" },
+
+ { 0x28, "allDataPDS-Services" },
+ { 0x2C, "dataPDS-2400bps" },
+ { 0x2D, "dataPDS-4800bps" },
+ { 0x2E, "dataPDS-9600bps" },
+ { 0x2F, "general-dataPDS" },
+
+ { 0x30, "allAlternateSpeech-DataCDA" },
+ { 0x38, "allAlternateSpeech-DataCDS" },
+ { 0x40, "allSpeechFollowedByDataCDA" },
+ { 0x48, "allSpeechFollowedByDataCDS" },
+
+ { 0x50, "allDataCircuitAsynchronous" },
+ { 0x60, "allAsynchronousServices" },
+ { 0x58, "allDataCircuitSynchronous" },
+ { 0x68, "allSynchronousServices" },
+
+ { 0xD0, "allPLMN-specificBS" },
+ { 0xD1, "plmn-specificBS-1" },
+ { 0xD2, "plmn-specificBS-2" },
+ { 0xD3, "plmn-specificBS-3" },
+ { 0xD4, "plmn-specificBS-4" },
+ { 0xD5, "plmn-specificBS-5" },
+ { 0xD6, "plmn-specificBS-6" },
+ { 0xD7, "plmn-specificBS-7" },
+ { 0xD8, "plmn-specificBS-8" },
+ { 0xD9, "plmn-specificBS-9" },
+ { 0xDA, "plmn-specificBS-A" },
+ { 0xDB, "plmn-specificBS-B" },
+ { 0xDC, "plmn-specificBS-C" },
+ { 0xDD, "plmn-specificBS-D" },
+ { 0xDE, "plmn-specificBS-E" },
+ { 0xDF, "plmn-specificBS-F" },
+
+ { 0, NULL }
+};
+
+/* ForwardingOptions
+
+-- bit 8: notification to forwarding party
+-- 0 no notification
+-- 1 notification
+*/
+static const true_false_string notification_value = {
+ "Notification",
+ "No notification"
+};
+/*
+-- bit 7: redirecting presentation
+-- 0 no presentation
+-- 1 presentation
+*/
+static const true_false_string redirecting_presentation_value = {
+ "Presentation",
+ "No presentationn"
+};
+/*
+-- 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
+*/
+static const value_string forwarding_reason_values[] = {
+ { 0x0, "ms not reachable" },
+ { 0x1, "ms busy" },
+ { 0x2, "no reply" },
+ { 0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
+ { 0, NULL }
+};
+/*
+-- bits 21: 00 (unused)
+*/
+
+static const value_string pdp_type_org_values[] = {
+ { 0x0, "ETSI" },
+ { 0x1, "IETF" },
+ { 0xf, "Empty PDP type" },
+ { 0, NULL }
+};
+
+static const value_string etsi_pdp_type_number_values[] = {
+ { 0x0, "Reserved, used in earlier version of this protocol" },
+ { 0x1, "PPP" },
+ { 0, NULL }
+};
+
+static const value_string ietf_pdp_type_number_values[] = {
+ { 0x21, "IPv4 Address" },
+ { 0x57, "IPv6 Address" },
+ { 0, NULL }
+};
+
+/*
+ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+-- Octets are coded according to 3GPP TS 32.015.
+-- From 3GPP TS 32.015.
+--
+-- 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
+*/
+static const value_string chargingcharacteristics_values[] = {
+ { 0x1, "H (Hot billing)" },
+ { 0x2, "F (Flat rate)" },
+ { 0x4, "P (Prepaid service)" },
+ { 0x8, "N (Normal billing)" },
+ { 0, NULL }
+};
+
+/* TAP STAT INFO */
+typedef enum
+{
+ ID_COLUMN,
+ OP_CODE_COLUMN,
+ INVOKES_COLUMN,
+ NUM_BYTES_FWD_COLUMN,
+ AVG_BYTES_FWD_COLUMN,
+ RET_RES_COLUMN,
+ NUM_BYTES_REV_COLUMN,
+ AVG_BYTES_REV_COLUMN,
+ TOT_BYTES_COLUMN,
+ AVG_BYTES_COLUMN
+} gsm_a_stat_columns;
+
+static stat_tap_table_item gsm_map_stat_fields[] = {
+ {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "ID", "%d"},
+ {TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Operation Code", "%-25s"},
+ {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Invokes", "%d"},
+ {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Num Bytes", "%d"},
+ {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%d"},
+ {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Return Result", "%d"},
+ {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Num Bytes", "%d"},
+ {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%d"},
+ {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Total Bytes", "%d"},
+ {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%d"},
+};
+
+static void gsm_map_stat_init(stat_tap_table_ui* new_stat, new_stat_tap_gui_init_cb gui_callback, void* gui_data)
+{
+ int num_fields = sizeof(gsm_map_stat_fields)/sizeof(stat_tap_table_item);
+ stat_tap_table* table;
+ guint i;
+ stat_tap_table_item_type items[sizeof(gsm_map_stat_fields)/sizeof(stat_tap_table_item)];
+
+ memset(items, 0, sizeof(items));
+
+ items[ID_COLUMN].type = TABLE_ITEM_UINT;
+ items[OP_CODE_COLUMN].type = TABLE_ITEM_STRING;
+ items[INVOKES_COLUMN].type = TABLE_ITEM_UINT;
+ items[NUM_BYTES_FWD_COLUMN].type = TABLE_ITEM_UINT;
+ items[AVG_BYTES_FWD_COLUMN].type = TABLE_ITEM_FLOAT;
+ items[RET_RES_COLUMN].type = TABLE_ITEM_UINT;
+ items[NUM_BYTES_REV_COLUMN].type = TABLE_ITEM_UINT;
+ items[AVG_BYTES_REV_COLUMN].type = TABLE_ITEM_FLOAT;
+ items[TOT_BYTES_COLUMN].type = TABLE_ITEM_UINT;
+ items[AVG_BYTES_COLUMN].type = TABLE_ITEM_FLOAT;
+
+ table = new_stat_tap_init_table("GSM MAP Operation Statistics", num_fields, 0, NULL, gui_callback, gui_data);
+ new_stat_tap_add_table(new_stat, table);
+
+ /* Add a row for each value type */
+ for (i = 0; i < GSM_MAP_MAX_NUM_OPR_CODES; i++)
+ {
+ const char *ocs = try_val_to_str(i, gsm_map_opr_code_strings);
+ char *col_str;
+ if (ocs) {
+ col_str = g_strdup(ocs);
+ } else {
+ col_str = g_strdup_printf("Unknown op code %d", i);
+ }
+
+ items[ID_COLUMN].value.uint_value = i;
+ items[OP_CODE_COLUMN].value.string_value = col_str;
+ new_stat_tap_init_table_row(table, i, num_fields, items);
+ }
+}
+
+static gboolean
+gsm_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gmtr_ptr)
+{
+ new_stat_data_t* stat_data = (new_stat_data_t*)tapdata;
+ const gsm_map_tap_rec_t *gmtr = (const gsm_map_tap_rec_t *)gmtr_ptr;
+ stat_tap_table* table;
+ stat_tap_table_item_type *invoke_data, *fwd_bytes_data, *result_data, *rev_bytes_data, *avg_data;
+ guint invokes, fwd_bytes, results, rev_bytes;
+ guint i = 0;
+
+ table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, i);
+
+ invoke_data = new_stat_tap_get_field_data(table, gmtr->opcode, INVOKES_COLUMN);
+ fwd_bytes_data = new_stat_tap_get_field_data(table, gmtr->opcode, NUM_BYTES_FWD_COLUMN);
+ result_data = new_stat_tap_get_field_data(table, gmtr->opcode, RET_RES_COLUMN);
+ rev_bytes_data = new_stat_tap_get_field_data(table, gmtr->opcode, NUM_BYTES_REV_COLUMN);
+
+ if (gmtr->invoke)
+ {
+ invoke_data->value.uint_value++;
+ new_stat_tap_set_field_data(table, gmtr->opcode, INVOKES_COLUMN, invoke_data);
+
+ fwd_bytes_data->value.uint_value += gmtr->size;
+ new_stat_tap_set_field_data(table, gmtr->opcode, NUM_BYTES_FWD_COLUMN, fwd_bytes_data);
+ }
+ else
+ {
+ result_data->value.uint_value++;
+ new_stat_tap_set_field_data(table, gmtr->opcode, RET_RES_COLUMN, result_data);
+
+ rev_bytes_data->value.uint_value += gmtr->size;
+ new_stat_tap_set_field_data(table, gmtr->opcode, NUM_BYTES_REV_COLUMN, rev_bytes_data);
+ }
+
+ invokes = invoke_data->value.uint_value;
+ fwd_bytes = fwd_bytes_data->value.uint_value;
+ results = result_data->value.uint_value;
+ rev_bytes = rev_bytes_data->value.uint_value;
+
+ if (gmtr->invoke)
+ {
+ avg_data = new_stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_FWD_COLUMN);
+ avg_data->value.float_value += (float) fwd_bytes / invokes;
+ new_stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_FWD_COLUMN, avg_data);
+ }
+ else
+ {
+ avg_data = new_stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_REV_COLUMN);
+ avg_data->value.float_value += (float) rev_bytes / results;
+ new_stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_REV_COLUMN, avg_data);
+ }
+
+ avg_data = new_stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_COLUMN);
+ avg_data->value.float_value += (float) (fwd_bytes + rev_bytes) / (invokes + results);
+ new_stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_COLUMN, avg_data);
+ return TRUE;
+}
+
+static void
+gsm_map_stat_reset(stat_tap_table* table)
+{
+ guint element;
+ stat_tap_table_item_type* item_data;
+
+ for (element = 0; element < table->num_elements; element++)
+ {
+ item_data = new_stat_tap_get_field_data(table, element, INVOKES_COLUMN);
+ item_data->value.uint_value = 0;
+ new_stat_tap_set_field_data(table, element, INVOKES_COLUMN, item_data);
+ }
+}
+
+static void
+gsm_map_stat_free_table_item(stat_tap_table* table _U_, guint row _U_, guint column, stat_tap_table_item_type* field_data)
+{
+ if (column != OP_CODE_COLUMN) return;
+ g_free((char*)field_data->value.string_value);
+}
+
+/*--- proto_reg_handoff_gsm_map ---------------------------------------*/
+static void range_delete_callback(guint32 ssn)
+{
+ if (ssn) {
+ delete_itu_tcap_subdissector(ssn, map_handle);
+ }
+}
+
+static void range_add_callback(guint32 ssn)
+{
+ if (ssn) {
+ add_itu_tcap_subdissector(ssn, map_handle);
+ }
+}
+
+void proto_reg_handoff_gsm_map(void) {
+
+ static gboolean map_prefs_initialized = FALSE;
+ static range_t *ssn_range;
+
+ if (!map_prefs_initialized) {
+ map_prefs_initialized = TRUE;
+ data_handle = find_dissector("data");
+ ranap_handle = find_dissector("ranap");
+ dtap_handle = find_dissector("gsm_a_dtap");
+ gsm_sms_handle = find_dissector("gsm_sms");
+ bssap_handle = find_dissector("gsm_a_bssmap");
+
+ map_handle = find_dissector("gsm_map");
+ oid_add_from_string("itu(0) administration(2) japan(440)","0.2.440" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
+ /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
+ /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgRelayContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
+ /* Private extension container */
+ register_ber_oid_dissector("1.3.12.2.1006.53.2.1.3", dissect_gsm_mapext_PlmnContainer, proto_gsm_map,"alcatel-E10-MAP-extension-PlmnContainer" );
+ register_ber_oid_dissector("0.34.0",dissect_NokiaMAP_ext_IsdArgExtension,proto_gsm_map,"Nokia ISD Extension");
+ register_ber_oid_dissector("0.34.1",dissect_NokiaMAP_ext_DsdArgExt,proto_gsm_map,"Nokia Dsd Extension");
+ register_ber_oid_dissector("0.34.2",dissect_NokiaMAP_ext_UlResExtension,proto_gsm_map,"Nokia Location Update Extension");
+ register_ber_oid_dissector("0.34.4",dissect_NokiaMAP_ext_SS_DataExtension,proto_gsm_map,"Nokia SS Data Extension");
+ register_ber_oid_dissector("0.34.5",dissect_NokiaMAP_ext_SriExtension,proto_gsm_map,"Nokia SRI Request Extension");
+ register_ber_oid_dissector("0.34.6",dissect_NokiaMAP_ExtraSignalInfo,proto_gsm_map,"Nokia ExtraSignalInfo Extension");
+ register_ber_oid_dissector("0.34.7",dissect_NokiaMAP_ext_SriResExtension,proto_gsm_map,"Nokia SRI Response Extension");
+ register_ber_oid_dissector("0.34.10",dissect_NokiaMAP_ext_CanLocArgExt,proto_gsm_map,"Nokia Cancel Location Extension");
+ register_ber_oid_dissector("0.34.11",dissect_NokiaMAP_ext_ATMargExt,proto_gsm_map,"Nokia ATM Extension");
+ register_ber_oid_dissector("0.34.12",dissect_NokiaMAP_ext_DTMargExt,proto_gsm_map,"Nokia DTM Extension");
+ register_ber_oid_dissector("0.34.13",dissect_NokiaMAP_ext_NumberPorted,proto_gsm_map,"Nokia NumberPorted Extension");
+ register_ber_oid_dissector("0.34.15",dissect_NokiaMAP_ext_HOExtension,proto_gsm_map,"Nokia HandOver Extension");
+ register_ber_oid_dissector("0.34.16",dissect_NokiaMAP_ext_ATMresExt,proto_gsm_map,"Nokia ATMres Extension");
+ register_ber_oid_dissector("0.34.17",dissect_NokiaMAP_ext_AbsentSubscriberExt,proto_gsm_map,"Nokia AbsentSubscriber Extension");
+ register_ber_oid_dissector("0.34.18",dissect_NokiaMAP_ext_SriForSMArgExt,proto_gsm_map,"Nokia SriForSM Extension");
+ register_ber_oid_dissector("0.34.19",dissect_NokiaMAP_ext_ReportSMDelStatArgExt,proto_gsm_map,"Nokia ReportSMDelStatt Extension");
+ register_ber_oid_dissector("0.34.20",dissect_NokiaMAP_ext_UdlArgExt,proto_gsm_map,"Nokia Udl Extension");
+ register_ber_oid_dissector("0.34.21",dissect_NokiaMAP_ext_RoamNotAllowedExt,proto_gsm_map,"Nokia RoamNotAllowed Extension");
+ register_ber_oid_dissector("0.34.22",dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt,proto_gsm_map,"Nokia MO-ForwardSM Extension");
+ register_ber_oid_dissector("0.34.23",dissect_NokiaMAP_ext_ErrOlcmInfoTableExt,proto_gsm_map,"Nokia ErrOlcmInfoTable Extension");
+ register_ber_oid_dissector("0.34.25",dissect_NokiaMAP_ext_RoutingCategoryExt,proto_gsm_map,"Nokia Routing Category Extension");
+ register_ber_oid_dissector("0.34.26",dissect_NokiaMAP_ext_AnyTimeModArgExt,proto_gsm_map,"Nokia AnyTimeMod Extension");
+
+ register_ber_oid_dissector("1.2.826.0.1249.58.1.0",dissect_NokiaMAP_ext_ExtensionType,proto_gsm_map,"Nokia ExtensionType Extension");
+
+ register_ber_oid_dissector("1.3.12.2.1107.3.66.1.1",dissect_NokiaMAP_ext_AccessTypeExt,proto_gsm_map,"Nokia AccessTypeExt Extension");
+ register_ber_oid_dissector("1.3.12.2.1107.3.66.1.3",dissect_NokiaMAP_ext_AccessSubscriptionListExt,proto_gsm_map,"Nokia AccessSubscriptionListExt Extension");
+ register_ber_oid_dissector("1.3.12.2.1107.3.66.1.6",dissect_NokiaMAP_ext_AllowedServiceData,proto_gsm_map,"Nokia AllowedServiceData Extension");
+ }
+ else {
+ range_foreach(ssn_range, range_delete_callback);
+ g_free(ssn_range);
+ }
+
+ ssn_range = range_copy(global_ssn_range);
+ range_foreach(ssn_range, range_add_callback);
+
+}
+
+/*--- proto_register_gsm_map -------------------------------------------*/
+void proto_register_gsm_map(void) {
+ module_t *gsm_map_module;
+ expert_module_t* expert_gsm_map;
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_gsm_map_old_Component_PDU,
+ { "Component", "gsm_map.old.Component",
+ FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_getPassword,
+ { "getPassword", "gsm_map.getPassword",
+ FT_UINT8, BASE_DEC, VALS(gsm_old_GetPasswordArg_vals), 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_currentPassword,
+ { "currentPassword", "gsm_map.currentPassword",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_extension,
+ { "Extension", "gsm_map.extension",
+ FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
+ NULL, HFILL }},
+ { &hf_gsm_map_nature_of_number,
+ { "Nature of number", "gsm_map.nature_of_number",
+ FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_nature_of_number_values_ext, 0x70,
+ NULL, HFILL }},
+ { &hf_gsm_map_number_plan,
+ { "Number plan", "gsm_map.number_plan",
+ FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_number_plan_values_ext, 0x0f,
+ NULL, HFILL }},
+ { &hf_gsm_map_address_digits,
+ { "Address digits", "gsm_map.address.digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_TBCD_digits,
+ { "TBCD digits", "gsm_map.tbcd_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_Ss_Status_unused,
+ { "Unused", "gsm_map.unused",
+ FT_UINT8, BASE_HEX, NULL, 0xf0,
+ NULL, HFILL }},
+ { &hf_gsm_map_Ss_Status_q_bit,
+ { "Q bit", "gsm_map.ss_status_q_bit",
+ FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
+ NULL, HFILL }},
+ { &hf_gsm_map_Ss_Status_p_bit,
+ { "P bit", "gsm_map.ss_status_p_bit",
+ FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
+ NULL, HFILL }},
+ { &hf_gsm_map_Ss_Status_r_bit,
+ { "R bit", "gsm_map.ss_status_r_bit",
+ FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
+ NULL, HFILL }},
+ { &hf_gsm_map_Ss_Status_a_bit,
+ { "A bit", "gsm_map.ss_status_a_bit",
+ FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
+ NULL, HFILL }},
+ { &hf_gsm_map_notification_to_forwarding_party,
+ { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
+ FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
+ NULL, HFILL }},
+ { &hf_gsm_map_redirecting_presentation,
+ { "Redirecting presentation", "gsm_map.redirecting_presentation",
+ FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
+ NULL, HFILL }},
+ { &hf_gsm_map_notification_to_calling_party,
+ { "Notification to calling party", "gsm_map.notification_to_clling_party",
+ FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
+ NULL, HFILL }},
+ { &hf_gsm_map_forwarding_reason,
+ { "Forwarding reason", "gsm_map.forwarding_reason",
+ FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
+ NULL, HFILL }},
+ { &hf_gsm_map_pdp_type_org,
+ { "PDP Type Organization", "gsm_map.pdp_type_org",
+ FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
+ NULL, HFILL }},
+ { &hf_gsm_map_etsi_pdp_type_number,
+ { "PDP Type Number", "gsm_map.pdp_type_number",
+ FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
+ "ETSI PDP Type Number", HFILL }},
+ { &hf_gsm_map_ietf_pdp_type_number,
+ { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
+ FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
+ "IETF PDP Type Number", HFILL }},
+ { &hf_gsm_map_ext_qos_subscribed_pri,
+ { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
+ FT_UINT8, BASE_DEC, NULL, 0xff,
+ NULL, HFILL }},
+ { &hf_gsm_map_qos_traffic_cls,
+ { "Traffic class", "gsm_map.qos.traffic_cls",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0xe0,
+ NULL, HFILL }},
+ { &hf_gsm_map_qos_del_order,
+ { "Delivery order", "gsm_map.qos.del_order",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0x18,
+ NULL, HFILL }},
+ { &hf_gsm_map_qos_del_of_err_sdu,
+ { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_del_of_err_sdu_vals), 0x03,
+ NULL, HFILL }},
+ { &hf_gsm_map_qos_ber,
+ { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_ber_vals), 0xf0,
+ NULL, HFILL }},
+ { &hf_gsm_map_qos_sdu_err_rat,
+ { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_sdu_err_rat_vals), 0x0f,
+ NULL, HFILL }},
+ { &hf_gsm_map_qos_traff_hdl_pri,
+ { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traff_hdl_pri_vals), 0x03,
+ NULL, HFILL }},
+
+ { &hf_gsm_map_qos_max_sdu,
+ { "Maximum SDU size", "gsm_map.qos.max_sdu",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_gsm_map_max_brate_ulink,
+ { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Maximum bit rate for uplink", HFILL }},
+ { &hf_gsm_map_max_brate_dlink,
+ { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Maximum bit rate for downlink", HFILL }},
+ { &hf_gsm_map_qos_transfer_delay,
+ { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
+ FT_UINT8, BASE_DEC, NULL, 0xfc,
+ "Transfer delay", HFILL }},
+ { &hf_gsm_map_guaranteed_max_brate_ulink,
+ { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Guaranteed bit rate for uplink", HFILL }},
+ { &hf_gsm_map_guaranteed_max_brate_dlink,
+ { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Guaranteed bit rate for downlink", HFILL }},
+ { &hf_gsm_map_GSNAddress_IPv4,
+ { "GSN-Address IPv4", "gsm_map.gsnaddress_ipv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ "IPAddress IPv4", HFILL }},
+ { &hf_gsm_map_GSNAddress_IPv6,
+ { "GSN Address IPv6", "gsm_map.gsnaddress_ipv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ "IPAddress IPv6", HFILL }},
+ { &hf_gsm_map_ranap_service_Handover,
+ { "service-Handover", "gsm_map.ranap.service_Handover",
+ FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
+ "gsm_map.ranap.Service_Handover", HFILL }},
+ { &hf_gsm_map_IntegrityProtectionInformation,
+ { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
+ { &hf_gsm_map_EncryptionInformation,
+ { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ranap.EncryptionInformation", HFILL }},
+ { &hf_gsm_map_ss_SS_UserData,
+ { "SS-UserData", "gsm_ss.SS_UserData",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "gsm_map.ss.SS_UserData", HFILL }},
+ { &hf_gsm_map_cbs_coding_grp,
+ { "Coding Group","gsm_map.cbs.coding_grp",
+ FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext, 0xf0,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp0_lang,
+ { "Language","gsm_map.cbs.coding_grp0_lang",
+ FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp0_lang_vals_ext, 0x0f,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp1_lang,
+ { "Language","gsm_map.cbs.coding_grp1_lang",
+ FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp1_lang_vals_ext, 0x0f,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp2_lang,
+ { "Language","gsm_map.cbs.coding_grp2_lang",
+ FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp2_lang_vals_ext, 0x0f,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp3_lang,
+ { "Language","gsm_map.cbs.coding_grp3_lang",
+ FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp3_lang_vals_ext, 0x0f,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp4_7_comp,
+ { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp",
+ FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp4_7_class_ind,
+ { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind",
+ FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp4_7_char_set,
+ { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set",
+ FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp4_7_class,
+ { "Message Class","gsm_map.cbs.coding_grp4_7_class",
+ FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp15_mess_code,
+ { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code",
+ FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_cbs_coding_grp15_class,
+ { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class",
+ FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03,
+ NULL, HFILL }
+ },
+ { &hf_gsm_map_tmsi,
+ { "tmsi", "gsm_map.tmsi",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "gsm_map.TMSI", HFILL }},
+
+ { &hf_gsm_map_ie_tag,
+ { "Tag", "gsm_map.ie_tag",
+ FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0,
+ "GSM 04.08 tag", HFILL }},
+ { &hf_gsm_map_len,
+ { "Length", "gsm_map.length",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_disc_par,
+ { "Discrimination parameter", "gsm_map.disc_par",
+ FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_dlci,
+ { "DLCI", "gsm_map.dlci",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ "Data Link Connection Indicator", HFILL }},
+ { &hf_gsm_apn_str,
+ { "APN", "gsm_map.apn_str",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_locationnumber_odd_even,
+ { "Odd/Even", "gsm_map.locationnumber.odd_even",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_gsm_map_locationnumber_nai,
+ { "Nature of address indicator", "gsm_map.locationnumber.nai",
+ FT_UINT8, BASE_RANGE_STRING | BASE_DEC, RVALS(gsm_map_na_vals), 0x3f,
+ NULL, HFILL }},
+ { &hf_gsm_map_locationnumber_inn,
+ { "Internal Network Number indicator (INN)", "gsm_map.locationnumber.inn",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_gsm_map_locationnumber_npi,
+ { "Numbering plan indicator", "gsm_map.locationnumber.npi",
+ FT_UINT8, BASE_DEC, VALS(gsm_map_np_vals), 0x30,
+ NULL, HFILL }},
+ { &hf_gsm_map_locationnumber_apri,
+ { "Address presentation restricted indicator", "gsm_map.locationnumber.apri",
+ FT_UINT8, BASE_DEC, VALS(gsm_map_addr_pres_rest_vals), 0x0c,
+ NULL, HFILL }},
+ { &hf_gsm_map_locationnumber_screening_ind,
+ { "Screening indicator", "gsm_map.locationnumber.screening_ind",
+ FT_UINT8, BASE_DEC, VALS(gsm_map_screening_ind_vals), 0x03,
+ NULL, HFILL }},
+ { &hf_gsm_map_locationnumber_digits,
+ { "Address digits", "gsm_map.locationnumber.digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gsm_map_ericsson_locationInformation_rat,
+ { "RAT", "gsm_map.ericsson.locationInformation.rat",
+ FT_UINT8, BASE_DEC, VALS(gsm_map_ericsson_locationInformation_rat_vals), 0,
+ "Radio Access Technology", HFILL }},
+ { &hf_gsm_map_ericsson_locationInformation_lac,
+ { "LAC", "gsm_map.ericsson.locationInformation.lac",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0,
+ "Location Area Code", HFILL }},
+ { &hf_gsm_map_ericsson_locationInformation_ci,
+ { "CI", "gsm_map.ericsson.locationInformation.ci",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0,
+ "Cell Identity", HFILL }},
+ { &hf_gsm_map_ericsson_locationInformation_sac,
+ { "SAC", "gsm_map.ericsson.locationInformation.sac",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0,
+ "Service Area Code", HFILL }},
+ { &hf_gsm_map_ussd_string,
+ { "USSD String", "gsm_map.ussd_string",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+
+#include "packet-gsm_map-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_gsm_map,
+ &ett_gsm_map_InvokeId,
+ &ett_gsm_map_InvokePDU,
+ &ett_gsm_map_ReturnResultPDU,
+ &ett_gsm_map_ReturnErrorPDU,
+ &ett_gsm_map_ReturnResult_result,
+ &ett_gsm_map_ReturnError_result,
+ &ett_gsm_map_GSMMAPPDU,
+ &ett_gsm_map_ext_qos_subscribed,
+ &ett_gsm_map_pdptypenumber,
+ &ett_gsm_map_RAIdentity,
+ &ett_gsm_map_LAIFixedLength,
+ &ett_gsm_map_isdn_address_string,
+ &ett_gsm_map_geo_desc,
+ &ett_gsm_map_LongSignalInfo,
+ &ett_gsm_map_RadioResourceInformation,
+ &ett_gsm_map_MSNetworkCapability,
+ &ett_gsm_map_MSRadioAccessCapability,
+ &ett_gsm_map_externalsignalinfo,
+ &ett_gsm_map_cbs_data_coding,
+ &ett_gsm_map_GlobalCellId,
+ &ett_gsm_map_GeographicalInformation,
+ &ett_gsm_map_apn_str,
+ &ett_gsm_map_LocationNumber,
+ &ett_gsm_map_ericsson_locationInformation,
+ &ett_gsm_map_extension_data,
+ &ett_gsm_map_tbcd_digits,
+ &ett_gsm_map_ussd_string,
+
+#include "packet-gsm_map-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_gsm_map_unknown_sequence3, { "gsm_map.unknown.sequence3", PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence", EXPFILL }},
+ { &ei_gsm_map_unknown_sequence, { "gsm_map.unknown.sequence", PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence", EXPFILL }},
+ { &ei_gsm_map_unknown_parameter, { "gsm_map.unknown.parameter", PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter", EXPFILL }},
+ { &ei_gsm_map_unknown_invokeData, { "gsm_map.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL }},
+ { &ei_gsm_map_undecoded, { "gsm_map.undecoded", PI_UNDECODED, PI_WARN, "If you want this decoded send the packet to Wireshark-dev", EXPFILL }},
+ };
+
+ static const enum_val_t application_context_modes[] = {
+ {"Use Application Context from the trace", "Use application context from the trace", APPLICATON_CONTEXT_FROM_TRACE},
+ {"Treat as AC 1", "Treat as AC 1", 1},
+ {"Treat as AC 2", "Treat as AC 2", 2},
+ {"Treat as AC 3", "Treat as AC 3", 3},
+ {NULL, NULL, -1}
+ };
+
+ static tap_param gsm_map_stat_params[] = {
+ { PARAM_FILTER, "filter", "Filter", NULL, TRUE }
+ };
+
+ static stat_tap_table_ui gsm_map_stat_table = {
+ REGISTER_STAT_GROUP_TELEPHONY_GSM,
+ "MAP Operation",
+ "gsm_map",
+ "gsm_map,operation",
+ gsm_map_stat_init,
+ gsm_map_stat_packet,
+ gsm_map_stat_reset,
+ gsm_map_stat_free_table_item,
+ NULL,
+ sizeof(gsm_map_stat_fields)/sizeof(stat_tap_table_item), gsm_map_stat_fields,
+ sizeof(gsm_map_stat_params)/sizeof(tap_param), gsm_map_stat_params,
+ NULL
+ };
+
+ /* Register protocol */
+ proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
+ register_dissector("gsm_map_sccp", dissect_gsm_map_sccp, proto_gsm_map);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_gsm_map, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_gsm_map = expert_register_protocol(proto_gsm_map);
+ expert_register_field_array(expert_gsm_map, ei, array_length(ei));
+
+ map_prop_arg_opcode_table = register_dissector_table("gsm_map.prop.arg.opcode", "GSM_MAP Proprietary Arg Opcodes", FT_UINT8, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ map_prop_res_opcode_table = register_dissector_table("gsm_map.prop.res.opcode", "GSM_MAP Proprietary Res Opcodes", FT_UINT8, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ map_prop_err_opcode_table = register_dissector_table("gsm_map.prop.err.opcode", "GSM_MAP Proprietary Err Opcodes", FT_UINT8, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ gsm_map_tap = register_tap("gsm_map");
+
+#include "packet-gsm_map-dis-tab.c"
+ oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
+ oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
+ /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
+ *
+ * Register our configuration options, particularly our ssn:s
+ * Set default SSNs
+ */
+ range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
+
+ gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
+
+ prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
+ "TCAP Subsystem numbers used for GSM MAP",
+ &global_ssn_range, MAX_SSN);
+
+ prefs_register_enum_preference(gsm_map_module, "application.context.version",
+ "Application context version",
+ "How to treat Application context",
+ &pref_application_context_version, application_context_modes, APPLICATON_CONTEXT_FROM_TRACE);
+
+ prefs_register_bool_preference(gsm_map_module, "ericsson.proprietary.extensions",
+ "Dissect Ericsson proprietary extensions",
+ "When enabled, dissector will use the non 3GPP standard extensions from Ericsson (that can override the standard ones)",
+ &pref_ericsson_proprietary_ext);
+
+ register_stat_tap_table_ui(&gsm_map_stat_table);
+}
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h
new file mode 100644
index 0000000000..3b1386ea69
--- /dev/null
+++ b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h
@@ -0,0 +1,59 @@
+/* packet-gsm_map-template.h
+ * Routines for GSM MAP packet dissection
+ * Copyright 2004 - 2006, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_GSM_MAP_H
+#define PACKET_GSM_MAP_H
+
+#include "ws_symbol_export.h"
+
+/* Defines for the GSM MAP taps */
+#define GSM_MAP_MAX_NUM_OPR_CODES 256
+
+typedef struct _gsm_map_tap_rec_t {
+ gboolean invoke;
+ guint32 opcode;
+ guint16 size;
+} gsm_map_tap_rec_t;
+
+
+#define SMS_ENCODING_NOT_SET 0
+#define SMS_ENCODING_7BIT 1
+#define SMS_ENCODING_8BIT 2
+#define SMS_ENCODING_UCS2 3
+#define SMS_ENCODING_7BIT_LANG 4
+#define SMS_ENCODING_UCS2_LANG 5
+
+WS_DLL_PUBLIC const value_string gsm_map_opr_code_strings[];
+
+extern const value_string ssCode_vals[];
+extern const value_string gsm_map_PDP_Type_Organisation_vals[];
+extern const value_string gsm_map_ietf_defined_pdp_vals[];
+extern const value_string gsm_map_etsi_defined_pdp_vals[];
+
+guint8 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint16 offset);
+void dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree);
+
+#include "packet-gsm_map-exp.h"
+
+
+#endif /* PACKET_GSM_MAP_H */
diff --git a/epan/dissectors/asn1/h225/CMakeLists.txt b/epan/dissectors/asn1/h225/CMakeLists.txt
new file mode 100644
index 0000000000..5a15337e11
--- /dev/null
+++ b/epan/dissectors/asn1/h225/CMakeLists.txt
@@ -0,0 +1,57 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h225 )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ H323-MESSAGES.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../h235/h235-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../h245/h245-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h225/H323-MESSAGES.asn b/epan/dissectors/asn1/h225/H323-MESSAGES.asn
new file mode 100644
index 0000000000..0beb98d40c
--- /dev/null
+++ b/epan/dissectors/asn1/h225/H323-MESSAGES.asn
@@ -0,0 +1,2221 @@
+-- H323-MESSAGES.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/formal-language/itu-t/h/h225-0/2009/H323-MESSAGES.asn
+--
+
+-- Module H323-MESSAGES (H.225.0:12/2009)
+H323-MESSAGES {itu-t(0) recommendation(0) h(8) h225-0(2250) version(0)
+ 7 h323-messages(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ SIGNED{}, ENCRYPTED{}, HASHED{}, ChallengeString, TimeStamp, RandomVal,
+ Password, EncodedPwdCertToken, ClearToken, CryptoToken,
+ AuthenticationMechanism
+ FROM H235-SECURITY-MESSAGES
+ DataProtocolCapability, T38FaxProfile, QOSCapability
+ FROM MULTIMEDIA-SYSTEM-CONTROL {itu-t(0) recommendation(0) h(8) h245(245)
+ version(0) 15 multimedia-system-control(0)};
+
+H323-UserInformation ::=
+ SEQUENCE -- root for all H.225.0 call signalling messages
+ {
+ 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,
+ information Information-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 in versions prior to
+ -- H.225.0 version 4)
+ status Status-UUIE,
+ statusInquiry StatusInquiry-UUIE,
+ setupAcknowledge SetupAcknowledge-UUIE,
+ notify Notify-UUIE},
+ 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
+ h245Tunnelling BOOLEAN,
+ -- if TRUE, tunnelling of H.245 messages is enabled
+ h245Control SEQUENCE OF OCTET STRING OPTIONAL,
+ nonStandardControl SEQUENCE OF NonStandardParameter OPTIONAL,
+ callLinkage CallLinkage OPTIONAL,
+ tunnelledSignallingMessage
+ SEQUENCE {tunnelledProtocolID TunnelledProtocol, -- tunnelled signalling--
+ -- protocol ID
+ messageContent SEQUENCE OF OCTET STRING, -- sequence of entire --
+ -- message(s)
+ tunnellingRequired NULL OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...} OPTIONAL,
+ provisionalRespToH245Tunnelling NULL OPTIONAL,
+ stimulusControl StimulusControl OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+StimulusControl ::= SEQUENCE {
+ nonStandard NonStandardParameter OPTIONAL,
+ isText NULL OPTIONAL,
+ h248Message OCTET STRING 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,
+ multipleCalls BOOLEAN,
+ maintainConnection BOOLEAN,
+ alertingAddress SEQUENCE OF AliasAddress OPTIONAL,
+ presentationIndicator PresentationIndicator OPTIONAL,
+ screeningIndicator ScreeningIndicator OPTIONAL,
+ fastConnectRefused NULL OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ displayName SEQUENCE OF DisplayName 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,
+ multipleCalls BOOLEAN,
+ maintainConnection BOOLEAN,
+ fastConnectRefused NULL OPTIONAL,
+ featureSet FeatureSet 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,
+ multipleCalls BOOLEAN,
+ maintainConnection BOOLEAN,
+ language SEQUENCE OF IA5String(SIZE (1..32)) OPTIONAL, -- RFC 1766 language tag
+ connectedAddress SEQUENCE OF AliasAddress OPTIONAL,
+ presentationIndicator PresentationIndicator OPTIONAL,
+ screeningIndicator ScreeningIndicator OPTIONAL,
+ fastConnectRefused NULL OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ displayName SEQUENCE OF DisplayName OPTIONAL
+}
+
+Information-UUIE ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ ...,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL,
+ fastConnectRefused NULL OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL
+}
+
+ReleaseComplete-UUIE ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ reason ReleaseCompleteReason OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ busyAddress SEQUENCE OF AliasAddress OPTIONAL,
+ presentationIndicator PresentationIndicator OPTIONAL,
+ screeningIndicator ScreeningIndicator OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ destinationInfo EndpointType OPTIONAL,
+ displayName SEQUENCE OF DisplayName OPTIONAL
+}
+
+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, -- called party busy
+ 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
+ newConnectionNeeded NULL, -- indicates that the Setup was not
+
+ -- accepted on this connection, but that
+ -- the Setup may be accepted on
+ -- a new connection
+ nonStandardReason NonStandardParameter,
+ replaceWithConferenceInvite ConferenceIdentifier, -- call dropped due to
+
+ -- subsequent invitation
+ -- to a conference
+ -- (see 8.4.3.8/H.323)
+ genericDataReason NULL,
+ neededFeatureNotSupported NULL,
+ tunnelledSignallingRejected NULL,
+ invalidCID NULL,
+ securityError SecurityErrors,
+ hopCountExceeded NULL
+}
+
+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,
+ destExtraCRV SEQUENCE OF CallReferenceValue OPTIONAL,
+ 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,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ multipleCalls BOOLEAN,
+ maintainConnection BOOLEAN,
+ connectionParameters
+ SEQUENCE-- additional gateway parameters-- {connectionType
+ ScnConnectionType,
+ numberOfScnConnections
+ INTEGER(0..65535),
+ connectionAggregation
+ ScnConnectionAggregation,
+ ...} OPTIONAL,
+ language SEQUENCE OF IA5String(SIZE (1..32)) OPTIONAL,
+ -- RFC 1766 language tag
+ presentationIndicator PresentationIndicator OPTIONAL,
+ screeningIndicator ScreeningIndicator OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ symmetricOperationRequired NULL OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ desiredProtocols SEQUENCE OF SupportedProtocols OPTIONAL,
+ neededFeatures SEQUENCE OF FeatureDescriptor OPTIONAL,
+ desiredFeatures SEQUENCE OF FeatureDescriptor OPTIONAL,
+ supportedFeatures SEQUENCE OF FeatureDescriptor OPTIONAL,
+ parallelH245Control SEQUENCE OF OCTET STRING OPTIONAL,
+ additionalSourceAddresses SEQUENCE OF ExtendedAliasAddress OPTIONAL,
+ hopCount INTEGER(1..31) OPTIONAL,
+ displayName SEQUENCE OF DisplayName OPTIONAL
+}
+
+ScnConnectionType ::= CHOICE {
+ unknown NULL, -- should be selected when connection type is unknown
+ bChannel NULL, -- each individual connection on the SCN is 64 kbit/s.
+
+ -- Note that where SCN delivers 56 kbit/s usable data,
+ -- the actual bandwidth allocated on SCN is still
+ -- 64 kbit/s.
+ hybrid2x64 NULL, -- each connection is a 128 kbit/s hybrid call
+ hybrid384 NULL, -- each connection is an H0 (384 kbit/s) hybrid call
+ hybrid1536 NULL, -- each connection is an H11 (1536 kbit/s) hybrid call
+ hybrid1920 NULL, -- each connection is an H12 (1920 kbit/s) hybrid call
+ multirate NULL, -- bandwidth supplied by SCN using multirate.
+
+ -- In this case, the information transfer rate octet
+ -- in the bearer capability shall be set to multirate
+ -- and the rate multiplier octet shall denote the
+ -- number of B channels.
+ ...
+}
+
+ScnConnectionAggregation ::= CHOICE {
+ auto NULL, -- aggregation mechanism is unknown
+ none NULL, -- call produced using a single SCN connection
+ h221 NULL, -- use H.221 framing to aggregate the connections
+ bonded-mode1 NULL, -- use ISO/IEC 13871 bonding mode 1.
+
+ -- Use bonded-mode1 to signal a bonded call if the
+ -- precise bonding mode to be used is unknown.
+ bonded-mode2 NULL, -- use ISO/IEC 13871 bonding mode 2
+ bonded-mode3 NULL, -- use ISO/IEC 13871 bonding mode 3
+ ...
+}
+
+PresentationIndicator ::= CHOICE {
+ presentationAllowed NULL,
+ presentationRestricted NULL,
+ addressNotAvailable NULL,
+ ...
+}
+
+ScreeningIndicator ::= ENUMERATED {
+ userProvidedNotScreened(0),
+ -- number was provided by a remote user
+ -- and has not been screened by a gatekeeper
+ userProvidedVerifiedAndPassed(1),
+ -- number was provided by user
+ -- equipment (or by a remote network), and has
+ -- been screened by a gatekeeper
+ userProvidedVerifiedAndFailed(2),
+ -- number was provided by user
+ -- equipment (or by a remote network), and the
+ -- gatekeeper has determined that the
+ -- information is incorrect
+ networkProvided(3),
+ -- number was provided by a gatekeeper
+ ...
+ }
+
+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,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL,
+ multipleCalls BOOLEAN,
+ maintainConnection BOOLEAN,
+ fastConnectRefused NULL OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ destinationInfo EndpointType OPTIONAL,
+ h245SecurityMode H245Security 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
+ noH245 NULL, -- endpoint does not support H.245
+ newTokens NULL,
+ featureSetUpdate NULL,
+ forwardedElements NULL,
+ transportedInformation NULL
+}
+
+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,
+ ...,
+ multipleCalls BOOLEAN,
+ maintainConnection BOOLEAN,
+ fastConnectRefused NULL 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,
+ ...
+}
+
+Status-UUIE ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ ...
+}
+
+StatusInquiry-UUIE ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ ...
+}
+
+SetupAcknowledge-UUIE ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ ...
+}
+
+Notify-UUIE ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ ...,
+ connectedAddress SEQUENCE OF AliasAddress OPTIONAL,
+ presentationIndicator PresentationIndicator OPTIONAL,
+ screeningIndicator ScreeningIndicator OPTIONAL,
+ destinationInfo EndpointType OPTIONAL,
+ displayName SEQUENCE OF DisplayName OPTIONAL
+}
+
+-- Beginning of common message elements section
+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,
+ ...,
+ set BIT STRING(SIZE (32)) OPTIONAL,
+ -- shall not be used with mc, gatekeeper
+ -- code points for the various SET devices
+ -- are defined in the respective SET Annexes
+ supportedTunnelledProtocols SEQUENCE OF TunnelledProtocol OPTIONAL
+ -- list of supported tunnelled protocols
+}
+
+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,
+ t38FaxAnnexbOnly T38FaxAnnexbOnlyCaps,
+ sip SIPCaps
+}
+
+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,
+ ...
+}
+
+T38FaxAnnexbOnlyCaps ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix,
+ t38FaxProtocol DataProtocolCapability,
+ t38FaxProfile T38FaxProfile,
+ ...
+}
+
+SIPCaps ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix OPTIONAL,
+ ...
+}
+
+McuInfo ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ protocol SEQUENCE OF SupportedProtocols 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
+ ...,
+ enterpriseNumber OBJECT IDENTIFIER OPTIONAL
+}
+
+H221NonStandard ::= SEQUENCE {
+ t35CountryCode INTEGER(0..255),
+ t35Extension INTEGER(0..255),
+ manufacturerCode INTEGER(0..65535),
+ ...
+}
+
+TunnelledProtocol ::= SEQUENCE {
+ id
+ CHOICE {tunnelledProtocolObjectID OBJECT IDENTIFIER,
+ tunnelledProtocolAlternateID TunnelledProtocolAlternateIdentifier,
+ ...},
+ subIdentifier IA5String(SIZE (1..64)) OPTIONAL,
+ ...
+}
+
+TunnelledProtocolAlternateIdentifier ::= SEQUENCE {
+ protocolType IA5String(SIZE (1..64)),
+ protocolVariant IA5String(SIZE (1..64)) OPTIONAL,
+ ...
+}
+
+NonStandardParameter ::= SEQUENCE {
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::= CHOICE {
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ ...
+}
+
+AliasAddress ::= CHOICE {
+ dialledDigits IA5String(SIZE (1..128))(FROM ("0123456789#*,")),
+ h323-ID BMPString(SIZE (1..256)), -- Basic ISO/IEC 10646 (Unicode)
+ ...,
+ url-ID IA5String(SIZE (1..512)), -- URL style address
+ transportID TransportAddress,
+ email-ID IA5String(SIZE (1..512)), -- rfc822-compliant email address
+ partyNumber PartyNumber,
+ mobileUIM MobileUIM,
+ isupNumber IsupNumber
+}
+
+AddressPattern ::= CHOICE {
+ wildcard AliasAddress,
+ range SEQUENCE {startOfRange PartyNumber,
+ endOfRange PartyNumber},
+ ...
+}
+
+PartyNumber ::= CHOICE {
+ e164Number PublicPartyNumber,
+ -- the numbering plan is according to
+ -- ITUT Recs E.163 and E.164.
+ dataPartyNumber NumberDigits,
+ -- not used, value reserved.
+ telexPartyNumber NumberDigits,
+ -- not used, value reserved.
+ privateNumber PrivatePartyNumber,
+ -- the numbering plan is according to
+ -- ISO/IEC 11571.
+ 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#*,"))
+
+DisplayName ::= SEQUENCE {
+ language IA5String OPTIONAL, -- RFC4646 language tag
+ name BMPString(SIZE (1..80))
+}
+
+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,
+ ...
+}
+
+MobileUIM ::= CHOICE {
+ ansi-41-uim ANSI-41-UIM, -- Americas standards Wireless Networks
+ gsm-uim GSM-UIM, -- European standards Wireless Networks
+ ...
+}
+
+TBCD-STRING ::= IA5String(FROM ("0123456789#*abc"))
+
+ANSI-41-UIM ::= SEQUENCE {
+ imsi TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ min TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ mdn TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ msisdn TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ esn TBCD-STRING(SIZE (16)) OPTIONAL,
+ mscid TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ system-id
+ CHOICE {sid TBCD-STRING(SIZE (1..4)),
+ mid TBCD-STRING(SIZE (1..4)),
+ ...},
+ systemMyTypeCode OCTET STRING(SIZE (1)) OPTIONAL,
+ systemAccessType OCTET STRING(SIZE (1)) OPTIONAL,
+ qualificationInformationCode OCTET STRING(SIZE (1)) OPTIONAL,
+ sesn TBCD-STRING(SIZE (16)) OPTIONAL,
+ soc TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ ...
+ -- IMSI refers to International Mobile Station Identification
+ -- MIN refers to Mobile Identification Number
+ -- MDN refers to Mobile Directory Number
+ -- MSISDN refers to Mobile Station ISDN number
+ -- ESN Refers to Electronic Serial Number
+ -- MSCID refers to Mobile Switching Center number + Market ID or System ID
+ -- SID refers to System Identification and MID refers to Market
+ -- Identification
+ -- SystemMyTypeCode refers to vendor identification number
+ -- SystemAccessType refers to the system access type like power down
+ -- registration or call
+ -- origination or Short Message response etc.
+ -- Qualification Information Code refers to the validity
+ -- SESN Refers to SIM Electronic Serial Number for Security purposes of
+ -- User Identification
+ -- SOC refers to System Operator Code
+}
+
+GSM-UIM ::= SEQUENCE {
+ imsi TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ tmsi OCTET STRING(SIZE (1..4)) OPTIONAL,
+ msisdn TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ imei TBCD-STRING(SIZE (15..16)) OPTIONAL,
+ hplmn TBCD-STRING(SIZE (1..4)) OPTIONAL,
+ vplmn TBCD-STRING(SIZE (1..4)) OPTIONAL,
+ -- IMSI refers to International Mobile Station Identification
+ -- MSISDN refers to Mobile Station ISDN number
+ -- IMEI Refers to International Mobile Equipment Identification
+ -- VPLMN or HPLMN refers to Visiting or Home Public Land Mobile Network
+ -- number
+ ...
+}
+
+IsupNumber ::= CHOICE {
+ e164Number IsupPublicPartyNumber,
+ -- the numbering plan is according to
+ -- ITUT Recs E.163 and E.164.
+ dataPartyNumber IsupDigits, -- not used, value reserved.
+ telexPartyNumber IsupDigits, -- not used, value reserved.
+ privateNumber IsupPrivatePartyNumber,
+ -- the numbering plan is according to
+ -- ISO/IEC 11571.
+ nationalStandardPartyNumber IsupDigits, -- not used, value reserved.
+ ...
+}
+
+IsupPublicPartyNumber ::= SEQUENCE {
+ natureOfAddress NatureOfAddress,
+ address IsupDigits,
+ ...
+}
+
+IsupPrivatePartyNumber ::= SEQUENCE {
+ privateTypeOfNumber PrivateTypeOfNumber,
+ address IsupDigits,
+ ...
+}
+
+NatureOfAddress ::= CHOICE {
+ unknown NULL,
+ subscriberNumber NULL,
+ nationalNumber NULL,
+ internationalNumber NULL,
+ networkSpecificNumber NULL,
+ routingNumberNationalFormat NULL,
+ routingNumberNetworkSpecificFormat NULL,
+ routingNumberWithCalledDirectoryNumber NULL,
+ ...
+}
+
+IsupDigits ::= IA5String(SIZE (1..128))(FROM ("0123456789ABCDE"))
+
+ExtendedAliasAddress ::= SEQUENCE {
+ address AliasAddress,
+ presentationIndicator PresentationIndicator OPTIONAL,
+ screeningIndicator ScreeningIndicator OPTIONAL,
+ ...
+}
+
+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,
+ ...,
+ alternateTransportAddresses AlternateTransportAddresses OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ featureSet FeatureSet OPTIONAL
+}
+
+AlternateTransportAddresses ::= SEQUENCE {
+ annexE SEQUENCE OF TransportAddress OPTIONAL,
+ ...,
+ sctp SEQUENCE OF TransportAddress OPTIONAL
+}
+
+UseSpecifiedTransport ::= CHOICE {tcp NULL,
+ annexE NULL,
+ ...,
+ sctp NULL
+}
+
+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,
+ ...
+}
+
+SecurityErrors ::= CHOICE {
+ securityWrongSyncTime NULL, -- either time server
+
+ -- problem or network delay
+ securityReplay NULL, -- replay attack encountered
+ securityWrongGeneralID NULL, -- wrong general ID
+ securityWrongSendersID NULL, -- wrong senders ID
+ securityIntegrityFailed NULL, -- integrity check failed
+ securityWrongOID NULL, -- wrong token OIDs or crypto alg
+
+ -- OIDs
+ securityDHmismatch NULL, -- mismatch of DH parameters
+ securityCertificateExpired NULL, -- certificate has expired
+ securityCertificateDateInvalid NULL, -- certificate is not yet valid
+ securityCertificateRevoked NULL, -- certificate was found revoked
+ securityCertificateNotReadable NULL, -- decoding error
+ securityCertificateSignatureInvalid NULL, -- wrong signature in the
+
+ -- certificate
+ securityCertificateMissing NULL, -- no certificate available
+ securityCertificateIncomplete NULL, -- missing expected certificate
+
+ -- extensions
+ securityUnsupportedCertificateAlgOID NULL, -- crypto algs not understood
+ securityUnknownCA NULL, -- CA/root certificate could not
+
+ -- be found
+ ...
+}
+
+SecurityErrors2 ::= CHOICE {
+ securityWrongSyncTime NULL, -- either time server problem or network
+
+ -- delay
+ securityReplay NULL, -- replay attack encountered
+ securityWrongGeneralID NULL, -- wrong general ID
+ securityWrongSendersID NULL, -- wrong senders ID
+ securityIntegrityFailed NULL, -- integrity check failed
+ securityWrongOID NULL, -- wrong token OIDs or crypto alg OIDs
+ ...
+}
+
+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
+
+TimeToLive ::= INTEGER(1..4294967295) -- in seconds
+
+
+H248PackagesDescriptor ::= OCTET STRING -- This octet string contains ASN.1
+
+-- PER encoded H.248
+-- PackagesDescriptor
+H248SignalsDescriptor ::= OCTET STRING -- This octet string contains
+
+-- ASN.1 PER encoded H.248
+-- SignalsDescriptor.
+FeatureDescriptor ::=
+ GenericData
+
+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 PRESENT,
+ dhkey PRESENT,
+ generalID PRESENT
+
+ -- 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 CryptoToken,
+ ...
+}
+
+DataRate ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ channelRate BandWidth,
+ channelMultiplier INTEGER(1..256) OPTIONAL,
+ ...
+}
+
+CallLinkage ::= SEQUENCE {
+ globalCallId GloballyUniqueID OPTIONAL,
+ threadId GloballyUniqueID OPTIONAL,
+ ...
+}
+
+SupportedPrefix ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ prefix AliasAddress,
+ ...
+}
+
+CapacityReportingCapability ::= SEQUENCE {canReportCallCapacity BOOLEAN,
+ ...
+}
+
+CapacityReportingSpecification ::= SEQUENCE {
+ when SEQUENCE {callStart NULL OPTIONAL,
+ callEnd NULL OPTIONAL,
+ ...},
+ ...
+}
+
+CallCapacity ::= SEQUENCE {
+ maximumCallCapacity CallCapacityInfo OPTIONAL,
+ currentCallCapacity CallCapacityInfo OPTIONAL,
+ ...
+}
+
+CallCapacityInfo ::= SEQUENCE {
+ voiceGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ h310GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ h320GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ h321GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ h322GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ h323GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ h324GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ t120OnlyGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ t38FaxAnnexbOnlyGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ terminalCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ mcuCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL,
+ ...,
+ sipGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL
+}
+
+CallsAvailable ::= SEQUENCE {
+ calls INTEGER(0..4294967295),
+ group IA5String(SIZE (1..128)) OPTIONAL,
+ ...,
+ carrier CarrierInfo OPTIONAL
+}
+
+CircuitInfo ::= SEQUENCE {
+ sourceCircuitID CircuitIdentifier OPTIONAL,
+ destinationCircuitID CircuitIdentifier OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ ...
+}
+
+CircuitIdentifier ::= SEQUENCE {
+ cic CicInfo OPTIONAL,
+ group GroupID OPTIONAL,
+ ...,
+ carrier CarrierInfo OPTIONAL
+}
+
+CicInfo ::= SEQUENCE {
+ cic SEQUENCE OF OCTET STRING(SIZE (2..4)),
+ pointCode OCTET STRING(SIZE (2..5)),
+ ...
+}
+
+GroupID ::= SEQUENCE {
+ member SEQUENCE OF INTEGER(0..65535) OPTIONAL,
+ group IA5String(SIZE (1..128)),
+ ...
+}
+
+CarrierInfo ::= SEQUENCE {
+ carrierIdentificationCode OCTET STRING(SIZE (3..4)) OPTIONAL,
+ carrierName IA5String(SIZE (1..128)) OPTIONAL,
+ ...
+}
+
+ServiceControlDescriptor ::= CHOICE {
+ url IA5String(SIZE (0..512)), -- indicates a URL-
+
+ -- referenced
+ -- protocol/resource
+ signal H248SignalsDescriptor,
+ nonStandard NonStandardParameter,
+ callCreditServiceControl CallCreditServiceControl,
+ ...
+}
+
+ServiceControlSession ::= SEQUENCE {
+ sessionId INTEGER(0..255),
+ contents ServiceControlDescriptor OPTIONAL,
+ reason CHOICE {open NULL,
+ refresh NULL,
+ close NULL,
+ ...},
+ ...
+}
+
+RasUsageInfoTypes ::= SEQUENCE {
+ nonStandardUsageTypes SEQUENCE OF NonStandardParameter,
+ startTime NULL OPTIONAL,
+ endTime NULL OPTIONAL,
+ terminationCause NULL OPTIONAL,
+ ...
+}
+
+RasUsageSpecification ::= SEQUENCE {
+ when
+ SEQUENCE {start NULL OPTIONAL,
+ end NULL OPTIONAL,
+ inIrr NULL OPTIONAL,
+ ...},
+ callStartingPoint
+ SEQUENCE {alerting NULL OPTIONAL,
+ connect NULL OPTIONAL,
+ ...} OPTIONAL,
+ required RasUsageInfoTypes,
+ ...
+}
+
+RasUsageInformation ::= SEQUENCE {
+ nonStandardUsageFields SEQUENCE OF NonStandardParameter,
+ alertingTime TimeStamp OPTIONAL,
+ connectTime TimeStamp OPTIONAL,
+ endTime TimeStamp OPTIONAL,
+ ...
+}
+
+CallTerminationCause ::= CHOICE {
+ releaseCompleteReason ReleaseCompleteReason,
+ releaseCompleteCauseIE OCTET STRING(SIZE (2..32)),
+ ...
+}
+
+BandwidthDetails ::= SEQUENCE {
+ sender BOOLEAN, -- TRUE=sender, FALSE=receiver
+ multicast BOOLEAN, -- TRUE if stream is multicast
+ bandwidth BandWidth, -- Bandwidth used for stream
+ rtcpAddresses TransportChannelInfo, -- RTCP addresses for media stream
+ ...
+}
+
+CallCreditCapability ::= SEQUENCE {
+ canDisplayAmountString BOOLEAN OPTIONAL,
+ canEnforceDurationLimit BOOLEAN OPTIONAL,
+ ...
+}
+
+CallCreditServiceControl ::= SEQUENCE {
+ amountString BMPString(SIZE (1..512)) OPTIONAL, -- (Unicode)
+ billingMode CHOICE {credit NULL,
+ debit NULL,
+ ...} OPTIONAL,
+ callDurationLimit INTEGER(1..4294967295) OPTIONAL, -- in seconds
+ enforceCallDurationLimit BOOLEAN OPTIONAL,
+ callStartingPoint CHOICE {alerting NULL,
+ connect NULL,
+ ...} OPTIONAL,
+ ...
+}
+
+GenericData ::= SEQUENCE {
+ id GenericIdentifier,
+ parameters SEQUENCE (SIZE (1..512)) OF EnumeratedParameter OPTIONAL,
+ ...
+}
+
+GenericIdentifier ::= CHOICE {
+ standard INTEGER(0..16383, ...),
+ oid OBJECT IDENTIFIER,
+ nonStandard GloballyUniqueID,
+ ...
+}
+
+EnumeratedParameter ::= SEQUENCE {
+ id GenericIdentifier,
+ content Content OPTIONAL,
+ ...
+}
+
+Content ::= CHOICE {
+ raw OCTET STRING,
+ text IA5String,
+ unicode BMPString,
+ bool BOOLEAN,
+ number8 INTEGER(0..255),
+ number16 INTEGER(0..65535),
+ number32 INTEGER(0..4294967295),
+ id GenericIdentifier,
+ alias AliasAddress,
+ transport TransportAddress,
+ compound SEQUENCE (SIZE (1..512)) OF EnumeratedParameter,
+ nested SEQUENCE (SIZE (1..16)) OF GenericData,
+ ...
+}
+
+FeatureSet ::= SEQUENCE {
+ replacementFeatureSet BOOLEAN,
+ neededFeatures SEQUENCE OF FeatureDescriptor OPTIONAL,
+ desiredFeatures SEQUENCE OF FeatureDescriptor OPTIONAL,
+ supportedFeatures SEQUENCE OF FeatureDescriptor OPTIONAL,
+ ...
+}
+
+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),
+ ...,
+ multicast NULL OPTIONAL,
+ bandwidth BandWidth OPTIONAL
+}
+
+RehomingModel ::= CHOICE {gatekeeperBased NULL,
+ endpointBased NULL
+}
+
+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,
+ serviceControlIndication ServiceControlIndication,
+ serviceControlResponse ServiceControlResponse,
+ admissionConfirmSequence SEQUENCE OF AdmissionConfirm
+}
+
+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,
+ supportsAltGK NULL OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ supportsAssignedGK BOOLEAN,
+ assignedGatekeeper AlternateGK 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,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ assignedGatekeeper AlternateGK OPTIONAL,
+ rehomingModel RehomingModel 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,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+GatekeeperRejectReason ::= CHOICE {
+ resourceUnavailable NULL,
+ terminalExcluded NULL, -- permission failure, not a resource
+
+ -- failure
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL,
+ genericDataReason NULL,
+ neededFeatureNotSupported NULL,
+ securityError SecurityErrors
+}
+
+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,
+ maintainConnection BOOLEAN,
+ alternateTransportAddresses AlternateTransportAddresses OPTIONAL,
+ additiveRegistration NULL OPTIONAL,
+ terminalAliasPattern SEQUENCE OF AddressPattern OPTIONAL,
+ supportsAltGK NULL OPTIONAL,
+ usageReportingCapability RasUsageInfoTypes OPTIONAL,
+ multipleCalls BOOLEAN OPTIONAL,
+ supportedH248Packages SEQUENCE OF H248PackagesDescriptor OPTIONAL,
+ callCreditCapability CallCreditCapability OPTIONAL,
+ capacityReportingCapability CapacityReportingCapability OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ restart NULL OPTIONAL,
+ supportsACFSequences NULL OPTIONAL,
+ supportsAssignedGK BOOLEAN,
+ assignedGatekeeper AlternateGK OPTIONAL,
+ transportQOS TransportQOS OPTIONAL,
+ language SEQUENCE OF IA5String(SIZE (1..32)) OPTIONAL
+}
+
+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,
+ ...,
+ irrFrequencyInCall INTEGER(1..65535) OPTIONAL, -- in seconds; --
+ -- not present
+ -- if GK does
+ -- not want IRRs
+ totalBandwidthRestriction BandWidth OPTIONAL, -- total limit --
+ -- for all
+ -- concurrent
+ -- calls
+ alternateTransportAddresses
+ AlternateTransportAddresses OPTIONAL,
+ useSpecifiedTransport UseSpecifiedTransport OPTIONAL
+ } OPTIONAL,
+ maintainConnection BOOLEAN,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ supportsAdditiveRegistration NULL OPTIONAL,
+ terminalAliasPattern SEQUENCE OF AddressPattern OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix OPTIONAL,
+ usageSpec SEQUENCE OF RasUsageSpecification OPTIONAL,
+ featureServerAlias AliasAddress OPTIONAL,
+ capacityReportingSpec CapacityReportingSpecification OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ assignedGatekeeper AlternateGK OPTIONAL,
+ rehomingModel RehomingModel OPTIONAL,
+ transportQOS TransportQOS 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,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ assignedGatekeeper AlternateGK OPTIONAL
+}
+
+RegistrationRejectReason ::= CHOICE {
+ discoveryRequired NULL,
+ 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,
+ fullRegistrationRequired NULL, -- registration permission has
+
+ -- expired
+ additiveRegistrationNotSupported NULL,
+ invalidTerminalAliases
+ SEQUENCE {terminalAlias SEQUENCE OF AliasAddress OPTIONAL,
+ terminalAliasPattern SEQUENCE OF AddressPattern OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix OPTIONAL,
+ ...},
+ genericDataReason NULL,
+ neededFeatureNotSupported NULL,
+ securityError SecurityErrors,
+ registerWithAssignedGK 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,
+ endpointAliasPattern SEQUENCE OF AddressPattern OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix OPTIONAL,
+ alternateGatekeeper SEQUENCE OF AlternateGK OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ assignedGatekeeper AlternateGK OPTIONAL
+}
+
+UnregRequestReason ::= CHOICE {
+ reregistrationRequired NULL,
+ ttlExpired NULL,
+ securityDenial NULL,
+ undefinedReason NULL,
+ ...,
+ maintenance NULL,
+ securityError SecurityErrors2,
+ registerWithAssignedGK NULL
+}
+
+UnregistrationConfirm ::= SEQUENCE --(UCF)
+ {
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ assignedGatekeeper AlternateGK 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,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+UnregRejectReason ::= CHOICE {
+ notCurrentlyRegistered NULL,
+ callInProgress NULL,
+ undefinedReason NULL,
+ ...,
+ permissionDenied NULL, -- requesting user not allowed to
+
+ -- unregister specified user
+ securityDenial NULL,
+ securityError SecurityErrors2
+}
+
+AdmissionRequest ::= SEQUENCE --(ARQ)
+ {
+ requestSeqNum RequestSeqNum,
+ callType CallType,
+ callModel CallModel OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destCallSignalAddress TransportAddress OPTIONAL,
+ 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,
+ callLinkage CallLinkage OPTIONAL,
+ gatewayDataRate DataRate OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ desiredProtocols SEQUENCE OF SupportedProtocols OPTIONAL,
+ desiredTunnelledProtocol TunnelledProtocol OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ canMapSrcAlias 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,
+ ...,
+ qOSCapabilities SEQUENCE SIZE (1..256) OF QOSCapability
+}
+
+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,
+ language SEQUENCE OF IA5String(SIZE (1..32)) OPTIONAL,
+ alternateTransportAddresses AlternateTransportAddresses OPTIONAL,
+ useSpecifiedTransport UseSpecifiedTransport OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ usageSpec SEQUENCE OF RasUsageSpecification OPTIONAL,
+ supportedProtocols SEQUENCE OF SupportedProtocols OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ multipleCalls BOOLEAN OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ modifiedSrcInfo SEQUENCE OF AliasAddress OPTIONAL,
+ assignedGatekeeper AlternateGK OPTIONAL
+}
+
+UUIEsRequested ::= SEQUENCE {
+ setup BOOLEAN,
+ callProceeding BOOLEAN,
+ connect BOOLEAN,
+ alerting BOOLEAN,
+ information BOOLEAN,
+ releaseComplete BOOLEAN,
+ facility BOOLEAN,
+ progress BOOLEAN,
+ empty BOOLEAN,
+ ...,
+ status BOOLEAN,
+ statusInquiry BOOLEAN,
+ setupAcknowledge BOOLEAN,
+ notify 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,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ assignedGatekeeper AlternateGK OPTIONAL
+}
+
+AdmissionRejectReason ::= CHOICE {
+ calledPartyNotRegistered NULL, -- cannot translate address
+ invalidPermission NULL, -- permission has expired
+ requestDenied NULL,
+ undefinedReason NULL,
+ callerNotRegistered NULL,
+ routeCallToGatekeeper NULL,
+ invalidEndpointIdentifier NULL,
+ resourceUnavailable NULL,
+ ...,
+ securityDenial NULL,
+ qosControlNotSupported NULL,
+ incompleteAddress NULL,
+ aliasesInconsistent NULL, -- multiple aliases in request
+
+ -- identify distinct people
+ routeCallToSCN SEQUENCE OF PartyNumber,
+ exceedsCallCapacity NULL, -- destination does not have the
+
+ -- capacity for this call
+ collectDestination NULL,
+ collectPIN NULL,
+ genericDataReason NULL,
+ neededFeatureNotSupported NULL,
+ securityError SecurityErrors2,
+ securityDHmismatch NULL, -- mismatch of DH parameters
+ noRouteToDestination NULL, -- destination unreachable
+ unallocatedNumber NULL, -- destination number unassigned
+ registerWithAssignedGK 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,
+ callLinkage CallLinkage OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ usageInformation RasUsageInformation OPTIONAL,
+ bandwidthDetails SEQUENCE OF BandwidthDetails OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ transportQOS TransportQOS OPTIONAL
+}
+
+BandwidthConfirm ::= SEQUENCE --(BCF)
+ {
+ requestSeqNum RequestSeqNum,
+ bandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ transportQOS TransportQOS 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,
+ genericData SEQUENCE OF GenericData 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,
+ securityError SecurityErrors2
+}
+
+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,
+ desiredProtocols SEQUENCE OF SupportedProtocols OPTIONAL,
+ desiredTunnelledProtocol TunnelledProtocol OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ hopCount INTEGER(1..255) OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ callIdentifier CallIdentifier OPTIONAL,
+ bandWidth BandWidth OPTIONAL,
+ sourceEndpointInfo SEQUENCE OF AliasAddress OPTIONAL,
+ canMapSrcAlias BOOLEAN,
+ language SEQUENCE OF IA5String(SIZE (1..32)) 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,
+ alternateTransportAddresses AlternateTransportAddresses OPTIONAL,
+ supportedProtocols SEQUENCE OF SupportedProtocols OPTIONAL,
+ multipleCalls BOOLEAN OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ modifiedSrcInfo SEQUENCE OF AliasAddress OPTIONAL,
+ bandWidth BandWidth 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,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL
+}
+
+LocationRejectReason ::= CHOICE {
+ notRegistered NULL,
+ invalidPermission NULL, -- exclusion by administrator or feature
+ requestDenied NULL,
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL,
+ aliasesInconsistent NULL, -- multiple aliases in request
+
+ -- identify distinct people
+ routeCalltoSCN SEQUENCE OF PartyNumber,
+ resourceUnavailable NULL,
+ genericDataReason NULL,
+ neededFeatureNotSupported NULL,
+ hopCountExceeded NULL,
+ incompleteAddress NULL,
+ securityError SecurityErrors2,
+ securityDHmismatch NULL, -- mismatch of DH parameters
+ noRouteToDestination NULL, -- destination unreachable
+ unallocatedNumber NULL -- destination number unassigned
+}
+
+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,
+ callLinkage CallLinkage OPTIONAL,
+ capacity CallCapacity OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ usageInformation RasUsageInformation OPTIONAL,
+ terminationCause CallTerminationCause OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+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,
+ capacity CallCapacity OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL,
+ usageInformation RasUsageInformation OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ assignedGatekeeper AlternateGK 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,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+DisengageRejectReason ::= CHOICE {
+ notRegistered NULL, -- not registered with gatekeeper
+ requestToDropOther NULL, -- cannot request drop for others
+ ...,
+ securityDenial NULL,
+ securityError SecurityErrors2
+}
+
+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,
+ callLinkage CallLinkage OPTIONAL,
+ usageInfoRequested RasUsageInfoTypes OPTIONAL,
+ segmentedResponseSupported NULL OPTIONAL,
+ nextSegmentRequested INTEGER(0..65535) OPTIONAL,
+ capacityInfoRequested NULL OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ assignedGatekeeper AlternateGK 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,
+ callSignalling 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,
+ callLinkage CallLinkage OPTIONAL,
+ usageInformation RasUsageInformation OPTIONAL,
+ circuitInfo CircuitInfo OPTIONAL} OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ needResponse BOOLEAN,
+ capacity CallCapacity OPTIONAL,
+ irrStatus InfoRequestResponseStatus OPTIONAL,
+ unsolicited BOOLEAN,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+InfoRequestResponseStatus ::= CHOICE {
+ complete NULL,
+ incomplete NULL,
+ segment INTEGER(0..65535),
+ invalidCall NULL,
+ ...
+}
+
+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,
+ ...,
+ securityError SecurityErrors2
+}
+
+NonStandardMessage ::= SEQUENCE {
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+UnknownMessageResponse ::= SEQUENCE -- (XRS)
+ {
+ requestSeqNum RequestSeqNum,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ messageNotUnderstood OCTET STRING
+}
+
+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,
+ ...,
+ capacity CallCapacity OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+ResourcesAvailableConfirm ::= SEQUENCE --(RAC)
+ {
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...,
+ genericData SEQUENCE OF GenericData OPTIONAL
+}
+
+ServiceControlIndication ::= SEQUENCE --(SCI)
+ {
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ callSpecific
+ SEQUENCE {callIdentifier CallIdentifier,
+ conferenceID ConferenceIdentifier,
+ answeredCall BOOLEAN,
+ ...} OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ ...
+}
+
+ServiceControlResponse ::= SEQUENCE --(SCR)
+ {
+ requestSeqNum RequestSeqNum,
+ result
+ CHOICE {started NULL,
+ failed NULL,
+ stopped NULL,
+ notAvailable NULL,
+ neededFeatureNotSupported NULL,
+ ...} OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ ...
+}
+
+END -- of ASN.1
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h225/Makefile.am b/epan/dissectors/asn1/h225/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h225/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h225/Makefile.common b/epan/dissectors/asn1/h225/Makefile.common
new file mode 100644
index 0000000000..c80f70cc0b
--- /dev/null
+++ b/epan/dissectors/asn1/h225/Makefile.common
@@ -0,0 +1,54 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = h225
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ H323-MESSAGES.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS=
+
+EXTRA_CNF = \
+ $(builddir)/../h235/h235-exp.cnf \
+ $(builddir)/../h245/h245-exp.cnf
+
+$(builddir)/../h235/h235-exp.cnf:
+ (cd $(builddir)/../h235 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../h245/h245-exp.cnf:
+ (cd $(builddir)/../h245 && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/h225/Makefile.nmake b/epan/dissectors/asn1/h225/Makefile.nmake
new file mode 100644
index 0000000000..270082fb45
--- /dev/null
+++ b/epan/dissectors/asn1/h225/Makefile.nmake
@@ -0,0 +1,30 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+checkapi:
+ $(PERL) ../../tools/checkAPIs.pl -build \
+ $(PROTOCOL_NAME).cnf \
+ packet-$(PROTOCOL_NAME)-template.c \ No newline at end of file
diff --git a/epan/dissectors/asn1/h225/h225.cnf b/epan/dissectors/asn1/h225/h225.cnf
new file mode 100644
index 0000000000..7a963e92b1
--- /dev/null
+++ b/epan/dissectors/asn1/h225/h225.cnf
@@ -0,0 +1,764 @@
+# h225.cnf
+# H.225 conformation file
+# Copyright 2004 Anders Broman
+
+#.IMPORT ../h235/h235-exp.cnf
+
+
+
+
+
+
+#.IMPORT ../h245/h245-exp.cnf
+
+#----------------------------------------------------------------------------------------
+#.EXPORTS ONLY_VALS WS_DLL NO_PROT_PREFIX
+H323-UU-PDU/h323-message-body
+FacilityReason
+GatekeeperRejectReason
+UnregRequestReason
+UnregRejectReason
+BandRejectReason
+DisengageReason
+DisengageRejectReason
+InfoRequestNakReason
+AdmissionRejectReason
+LocationRejectReason
+RegistrationRejectReason
+
+#.MODULE_EXPORTS
+RasMessage EXTERN WS_DLL
+NonStandardParameter
+PublicTypeOfNumber
+PrivateTypeOfNumber
+AliasAddress NO_PROT_PREFIX
+PartyNumber
+PresentationIndicator
+ScreeningIndicator
+CallIdentifier
+ConferenceIdentifier
+CircuitIdentifier
+GenericIdentifier
+GenericData
+BandWidth
+TimeToLive
+TransportAddress
+AlternateTransportAddresses
+TransportChannelInfo
+CallReferenceValue
+GloballyUniqueID
+TunnelledProtocol
+IntegrityMechanism
+ICV
+CryptoH323Token
+TransportQOS
+FeatureSet
+CircuitInfo
+EndpointType
+SupportedProtocols
+GatekeeperIdentifier
+ServiceControlSession
+ReleaseCompleteReason EXTERN WS_DLL
+ExtendedAliasAddress_PDU
+#.END
+
+#.PDU
+H323-UserInformation
+RasMessage
+ExtendedAliasAddress
+#.END
+
+#----------------------------------------------------------------------------------------
+
+#.OMIT_ASSIGNMENT
+EncodedFastStartToken
+FastStartToken
+#.END
+
+#.VIRTUAL_ASSGN
+FastStart Setup-UUIE/fastStart
+#.SET_TYPE
+Setup-UUIE/fastStart FastStart
+CallProceeding-UUIE/fastStart FastStart
+Connect-UUIE/fastStart FastStart
+Alerting-UUIE/fastStart FastStart
+Information-UUIE/fastStart FastStart
+Facility-UUIE/fastStart FastStart
+Progress-UUIE/fastStart FastStart
+
+#.VIRTUAL_ASSGN
+H245Control H323-UU-PDU/h245Control
+ParallelH245Control Setup-UUIE/parallelH245Control
+DialedDigits AliasAddress/dialledDigits
+
+#.VIRTUAL_ASSGN
+DestinationInfo AdmissionRequest/destinationInfo
+#.SET_TYPE
+AdmissionRequest/destinationInfo DestinationInfo
+AdmissionConfirm/destinationInfo DestinationInfo
+LocationRequest/destinationInfo DestinationInfo
+LocationConfirm/destinationInfo DestinationInfo
+
+#.VIRTUAL_ASSGN
+H245TransportAddress TransportAddress
+#.SET_TYPE
+Setup-UUIE/h245Address H245TransportAddress
+CallProceeding-UUIE/h245Address H245TransportAddress
+Connect-UUIE/h245Address H245TransportAddress
+Alerting-UUIE/h245Address H245TransportAddress
+Facility-UUIE/h245Address H245TransportAddress
+Progress-UUIE/h245Address H245TransportAddress
+#.FIELD_RENAME
+H245TransportAddress/ipAddress h245IpAddress
+H245TransportAddress/ipAddress/ip h245Ip
+H245TransportAddress/ipAddress/port h245IpPort
+H245TransportAddress/ipSourceRoute h245IpSourceRoute
+H245TransportAddress/ipSourceRoute/route h245Route
+H245TransportAddress/ipSourceRoute/routing h245Routing
+H245TransportAddress/ipxAddress h245IpxAddress
+H245TransportAddress/ipxAddress/port h245IpxPort
+H245TransportAddress/ip6Address h245Ip6Address
+H245TransportAddress/ip6Address/ip h245Ip6
+
+#.VIRTUAL_ASSGN
+Language Setup-UUIE/language
+#.SET_TYPE
+Connect-UUIE/language Language
+Setup-UUIE/language Language
+RegistrationRequest/language Language
+AdmissionConfirm/language Language
+LocationRequest/language Language
+
+#----------------------------------------------------------------------------------------
+#.TYPE_RENAME
+CallCreditServiceControl/callStartingPoint CallCreditServiceControl_callStartingPoint
+TunnelledProtocol/id TunnelledProtocol_id
+ServiceControlSession/reason ServiceControlSession_reason
+RasUsageSpecification/callStartingPoint RasUsageSpecificationcallStartingPoint
+CapacityReportingSpecification/when CapacityReportingSpecification_when
+RasUsageSpecification/when RasUsageSpecification_when
+TransportAddress/ipAddress/ip IpV4
+#----------------------------------------------------------------------------------------
+#.FIELD_RENAME
+RasUsageSpecification/callStartingPoint/alerting alerting_flg
+CallCreditServiceControl/callStartingPoint/alerting alerting_flg
+UseSpecifiedTransport/annexE annexE_flg
+
+UUIEsRequested/callProceeding callProceeding_flg
+
+CicInfo/cic cic_2_4
+UUIEsRequested/connect connect_bool
+NonStandardIdentifier/object nsiOID
+NonStandardParameter/data nsp_data
+H323-UU-PDU/h323-message-body/empty empty_flg
+RasUsageInfoTypes/endTime endTime_flg
+UUIEsRequested/facility facility_bool
+CallsAvailable/group group_IA5String
+GroupID/group group_IA5String
+
+Setup-UUIE/hopCount hopCount_1_31
+UUIEsRequested/information information_bool
+TransportAddress/ip6Address/ip ipV6
+TransportAddress/ipAddress/ip ipV4
+TransportAddress/ipSourceRoute/ip src_route_ipV4
+RTPSession/multicast multicast_flg
+
+UUIEsRequested/notify notify_bool
+TransportAddress/ipxAddress/port ipx_port
+TransportAddress/ipAddress/port ipV4_port
+TransportAddress/ipSourceRoute/port ipV4_src_port
+TransportAddress/ip6Address/port ipV6_port
+UUIEsRequested/progress progress_bool
+
+Facility-UUIE/reason facilityReason
+UnregistrationRequest/reason unregRequestReason
+ReleaseComplete-UUIE/reason releaseCompleteReason
+BandwidthReject/rejectReason bandRejectReason
+UnregistrationReject/rejectReason unregRejectReason
+RegistrationReject/rejectReason registrationRejectReason
+LocationReject/rejectReason locationRejectReason
+DisengageReject/rejectReason disengageRejectReason
+GatekeeperReject/rejectReason gatekeeperRejectReason
+
+UUIEsRequested/releaseComplete releaseComplete_bool
+UseSpecifiedTransport/sctp sctp_flg
+ServiceControlSession/sessionId sessionId_0_255
+UUIEsRequested/setup setup_bool
+UUIEsRequested/setupAcknowledge setupAcknowledge_bool
+Setup-UUIE/sourceInfo setup-UUIE_sourceInfo
+
+UUIEsRequested/status status_bool
+UUIEsRequested/statusInquiry statusInquiry_bool
+RasUsageInfoTypes/terminationCause terminationCause_flg
+CapacityReportingSpecification/when capacityReportingSpecification_when
+UUIEsRequested/alerting alerting_bool
+
+LocationConfirm/callSignalAddress locationConfirm_callSignalAddress
+
+RasUsageSpecification/callStartingPoint/connect connect_flg
+CallCreditServiceControl/callStartingPoint/connect connect_flg
+
+Alerting-UUIE/destinationInfo uUIE_destinationInfo
+CallProceeding-UUIE/destinationInfo uUIE_destinationInfo
+Connect-UUIE/destinationInfo uUIE_destinationInfo
+Facility-UUIE/destinationInfo uUIE_destinationInfo
+Progress-UUIE/destinationInfo uUIE_destinationInfo
+
+TunnelledProtocol/id tunnelledProtocol_id
+SecurityCapabilities/integrity securityCapabilities_integrity
+
+GenericIdentifier/nonStandard genericIdentifier_nonStandard
+AlternateGK/rasAddress alternateGK_rasAddress
+GatekeeperRequest/rasAddress gatekeeperRequest_rasAddress
+GatekeeperConfirm/rasAddress gatekeeperConfirm_rasAddress
+LocationConfirm/rasAddress locationConfirm_rasAddress
+InfoRequestResponse/rasAddress infoRequestResponse_rasAddress
+
+
+Setup-UUIE/remoteExtensionAddress uUIE_remoteExtensionAddress
+Facility-UUIE/remoteExtensionAddress uUIE_remoteExtensionAddress
+
+VendorIdentifier/vendor vendorIdentifier_vendor
+
+RasUsageSpecification/callStartingPoint ras_callStartingPoint
+
+ReleaseCompleteReason/securityError rLC_securityError
+GatekeeperRejectReason/securityError gkRej_securityError
+RegistrationRejectReason/securityError reg_securityError
+
+CallIdentifier/guid guid
+
+ExtendedAliasAddress/address extAliasAddress
+
+IsupNumber/e164Number isupE164Number
+IsupNumber/dataPartyNumber isupDataPartyNumber
+IsupNumber/telexPartyNumber isupTelexPartyNumber
+IsupNumber/privateNumber isupPrivateNumber
+IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY H323-UU-PDU/h323-message-body VAL_PTR = &message_body_val
+ gint32 message_body_val;
+
+ contains_faststart = FALSE;
+ call_id_guid = NULL;
+%(DEFAULT_BODY)s
+ col_append_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "CS: %%s ",
+ val_to_str(message_body_val, T_h323_message_body_vals, "<unknown>"));
+
+ if (h225_pi->msg_type == H225_CS) {
+ /* Don't override msg_tag value from IRR */
+ h225_pi->msg_tag = message_body_val;
+ }
+
+ if (call_id_guid) {
+ h225_pi->guid = *call_id_guid;
+ }
+
+ if (contains_faststart == TRUE )
+ {
+ col_append_str(%(ACTX)s->pinfo->cinfo, COL_INFO, "OpenLogicalChannel " );
+ }
+
+ col_set_fence(%(ACTX)s->pinfo->cinfo,COL_INFO);
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY FastStart/_item VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb = NULL;
+ char codec_str[50];
+ codec_str[0] = '\0';
+
+%(DEFAULT_BODY)s
+ if (value_tvb && tvb_reported_length(value_tvb)) {
+ dissect_h245_FastStart_OLC(value_tvb, %(ACTX)s->pinfo, tree, codec_str);
+ }
+
+ /* Add to packet info */
+ g_snprintf(h225_pi->frame_label, 50, "%%s %%s", h225_pi->frame_label, codec_str);
+
+ contains_faststart = TRUE;
+ h225_pi->is_faststart = TRUE;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY RasMessage VAL_PTR = &rasmessage_value
+ gint32 rasmessage_value;
+
+ call_id_guid = NULL;
+%(DEFAULT_BODY)s
+ col_add_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "RAS: %%s ",
+ val_to_str(rasmessage_value, h225_RasMessage_vals, "<unknown>"));
+
+ h225_pi->msg_tag = rasmessage_value;
+ if (call_id_guid) {
+ h225_pi->guid = *call_id_guid;
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR DestinationInfo/_item
+
+ h225_pi->is_destinationInfo = TRUE;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY DialedDigits VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb = NULL;
+ guint len = 0;
+
+%(DEFAULT_BODY)s
+ if (h225_pi && h225_pi->is_destinationInfo == TRUE) {
+ if (value_tvb) {
+ len = tvb_reported_length(value_tvb);
+ /* XXX - should this be allocated as an ephemeral string? */
+ if (len > sizeof h225_pi->dialedDigits - 1)
+ len = sizeof h225_pi->dialedDigits - 1;
+ tvb_memcpy(value_tvb, (guint8*)h225_pi->dialedDigits, 0, len);
+ }
+ h225_pi->dialedDigits[len] = '\0';
+ h225_pi->is_destinationInfo = FALSE;
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY H245TransportAddress/ipAddress/ip VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb;
+
+ ipv4_address = 0;
+%(DEFAULT_BODY)s
+ if (value_tvb)
+ ipv4_address = tvb_get_ipv4(value_tvb, 0);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY H245TransportAddress/ip6Address/ip VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb;
+
+ ipv6_address = ipv6_address_zeros;
+%(DEFAULT_BODY)s
+ if (value_tvb)
+ tvb_get_ipv6(value_tvb, 0, &ipv6_address);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS H245TransportAddress/ipAddress/port VAL_PTR = &ip_port
+#----------------------------------------------------------------------------------------
+#.FN_PARS H245TransportAddress/ip6Address/port VAL_PTR = &ip_port
+#----------------------------------------------------------------------------------------
+#.FN_BODY ParallelH245Control/_item VAL_PTR = &h245_tvb
+ tvbuff_t *h245_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ next_tvb_add_handle(&h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY H245Control/_item VAL_PTR = &h245_tvb
+ tvbuff_t *h245_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ next_tvb_add_handle(&h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR H323-UU-PDU/h323-message-body/empty
+ h225_pi->cs_type = H225_EMPTY;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR Status-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_STATUS;
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR Information-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_INFORMATION;
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR Progress-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_PROGRESS;
+ if (contains_faststart == TRUE )
+ g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ else
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR SetupAcknowledge-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_SETUP_ACK;
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR Facility-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_FACILITY;
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS H323-UU-PDU/h245Tunnelling VAL_PTR = &(h225_pi->is_h245Tunneling)
+#----------------------------------------------------------------------------------------
+#.FN_HDR Setup-UUIE
+ contains_faststart = FALSE;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR Setup-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_SETUP;
+ if (contains_faststart == TRUE )
+ g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ else
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR CallProceeding-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_CALL_PROCEDING;
+ if (contains_faststart == TRUE )
+ g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ else
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR Alerting-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_ALERTING;
+ if (contains_faststart == TRUE )
+ g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ else
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR ReleaseComplete-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_RELEASE_COMPLET;
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR Connect-UUIE
+ /* Add to packet info */
+ h225_pi->cs_type = H225_CONNECT;
+ if (contains_faststart == TRUE )
+ g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ else
+ g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H245TransportAddress
+ ipv4_address=0;
+ ipv6_address = ipv6_address_zeros;
+ ip_port=0;
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR H245TransportAddress
+ /* we need this info for TAPing */
+ h225_pi->is_h245 = TRUE;
+ h225_pi->h245_address = ipv4_address;
+ h225_pi->h245_port = ip_port;
+
+ if ( !actx->pinfo->fd->flags.visited && h245_handle && ip_port!=0 ) {
+ address src_addr;
+ conversation_t *conv=NULL;
+
+ if (ipv4_address!=0) {
+ set_address(&src_addr, AT_IPv4, 4, &ipv4_address);
+ } else if (memcmp(ipv6_address.bytes, ipv6_address_zeros.bytes, sizeof(ipv6_address.bytes))!=0) {
+ set_address(&src_addr, AT_IPv6, 16, ipv6_address.bytes);
+ } else {
+ return offset;
+ }
+
+ conv=find_conversation(actx->pinfo->num, &src_addr, &src_addr, PT_TCP, ip_port, ip_port, NO_ADDR_B|NO_PORT_B);
+ if(!conv){
+ conv=conversation_new(actx->pinfo->num, &src_addr, &src_addr, PT_TCP, ip_port, ip_port, NO_ADDR2|NO_PORT2);
+ conversation_set_dissector(conv, h245_handle);
+ }
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY FacilityReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY GatekeeperRejectReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY UnregRequestReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY UnregRejectReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY BandRejectReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY DisengageReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#----------------------------------------------------------------------------------------
+#.FN_BODY DisengageRejectReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY AdmissionRejectReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY LocationRejectReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY RegistrationRejectReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY InfoRequestNakReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY ReleaseCompleteReason VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ h225_pi->reason = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY CallIdentifier/guid
+ tvbuff_t *guid_tvb = NULL;
+
+ %(ACTX)s->value_ptr = &guid_tvb;
+%(DEFAULT_BODY)s
+ if (guid_tvb)
+ tvb_get_ntohguid(guid_tvb, 0, call_id_guid = wmem_new(wmem_packet_scope(), e_guid_t));
+ %(ACTX)s->value_ptr = NULL;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS GloballyUniqueID VAL_PTR = (tvbuff_t **)%(ACTX)s->value_ptr
+#----------------------------------------------------------------------------------------
+#.FN_PARS RequestSeqNum VAL_PTR = &(h225_pi->requestSeqNum)
+#----------------------------------------------------------------------------------------
+#.FN_BODY H323-UU-PDU/h4501SupplementaryService/_item VAL_PTR = &h4501_tvb
+ tvbuff_t *h4501_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ if (h4501_tvb && tvb_reported_length(h4501_tvb)) {
+ call_dissector(h4501_handle, h4501_tvb, %(ACTX)s->pinfo, tree);
+ }
+#.END
+#----------------------------------------------------------------------------------------
+
+#--- TunnelledProtocol ------------------------------------------------------------------
+
+#.FN_HDR TunnelledProtocol
+ tpOID = "";
+#.FN_FTR TunnelledProtocol
+ tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID);
+#.FN_PARS TunnelledProtocol/id/tunnelledProtocolObjectID
+ FN_VARIANT = _str VAL_PTR = &tpOID
+#.END
+
+#.FN_HDR H323-UU-PDU/tunnelledSignallingMessage
+ tp_handle = NULL;
+#.FN_BODY H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ next_tvb_add_handle(&tp_list, next_tvb, (h225_tp_in_tree)?tree:NULL, tp_handle);
+#.END
+
+#--- NonStandardParameter ---------------------------------------------------------------
+
+#.FN_PARS
+NonStandardIdentifier/object FN_VARIANT = _str VAL_PTR = &nsiOID
+#.END
+
+#.FN_BODY NonStandardIdentifier VAL_PTR = &value
+ gint32 value;
+
+ nsiOID = "";
+ h221NonStandard = 0;
+
+%(DEFAULT_BODY)s
+ switch (value) {
+ case 0 : /* object */
+ nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID);
+ break;
+ case 1 : /* h221NonStandard */
+ nsp_handle = dissector_get_uint_handle(nsp_h221_dissector_table, h221NonStandard);
+ break;
+ default :
+ nsp_handle = NULL;
+ }
+#.END
+
+#.FN_HDR H221NonStandard
+ t35CountryCode = 0;
+ t35Extension = 0;
+ manufacturerCode = 0;
+#.FN_FTR H221NonStandard
+ h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
+ proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
+#.FN_PARS
+H221NonStandard/t35CountryCode VAL_PTR = &t35CountryCode
+H221NonStandard/t35Extension VAL_PTR = &t35Extension
+H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode
+#.END
+
+#.FN_HDR NonStandardParameter
+ nsp_handle = NULL;
+#.FN_BODY NonStandardParameter/data VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ if (next_tvb && tvb_reported_length(next_tvb)) {
+ call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, %(ACTX)s->pinfo, tree);
+ }
+#.END
+
+#=== Generic Extensible Framework =======================================================
+
+#.FN_HDR GenericData
+ void *priv_data = actx->private_data;
+ gef_ctx_t *gefx;
+
+ /* check if not inherited from FeatureDescriptor */
+ gefx = gef_ctx_get(actx->private_data);
+ if (!gefx) {
+ gefx = gef_ctx_alloc(NULL, "GenericData");
+ actx->private_data = gefx;
+ }
+#.FN_FTR
+ actx->private_data = priv_data;
+#.END
+
+#.FN_HDR EnumeratedParameter
+ gef_ctx_t *parent_gefx;
+
+ parent_gefx = gef_ctx_get(actx->private_data);
+ actx->private_data = gef_ctx_alloc(parent_gefx, NULL);
+#.FN_FTR
+ actx->private_data = parent_gefx;
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_HDR FeatureDescriptor
+ void *priv_data = actx->private_data;
+ actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor");
+#.FN_FTR
+ actx->private_data = priv_data;
+#.END
+#----------------------------------------------------------------------------------------
+
+#.FN_HDR GenericIdentifier
+ gef_ctx_t *gefx;
+ proto_item* ti;
+#.FN_FTR
+ gef_ctx_update_key(gef_ctx_get(actx->private_data));
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ dissector_try_string(gef_name_dissector_table, gefx->key, tvb_new_subset(tvb, offset>>3, 0, 0), actx->pinfo, tree, actx);
+ }
+ actx->private_data = gefx; /* subdissector could overwrite it */
+#.END
+
+#.FN_BODY GenericIdentifier/standard VAL_PTR = &value_int
+ guint32 value_int = (guint32)-1;
+ gef_ctx_t *gefx;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) gefx->id = wmem_strdup_printf(wmem_packet_scope(), "%%u", value_int);
+#.END
+
+#.FN_BODY GenericIdentifier/oid FN_VARIANT = _str VAL_PTR = &oid_str
+ const gchar *oid_str = NULL;
+ gef_ctx_t *gefx;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) gefx->id = oid_str;
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY Content/raw VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb;
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, %(ACTX)s);
+ }
+#.END
+
+#=== end of GEF =========================================================================
+
+# TBCD-STRING is additionally constrained
+# parameter stack is used for passing this constraint
+
+#.FN_HDR TBCD-STRING
+ int min_len, max_len;
+ gboolean has_extension;
+
+ get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
+#.FN_PARS TBCD-STRING
+MIN_VAL = min_len
+MAX_VAL = max_len
+EXT = has_extension
+#.END
+
+
+#.TYPE_ATTR
+H221NonStandard/t35CountryCode TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(T35CountryCode_vals)
+TransportAddress/ipAddress/ip TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+TransportAddress/ip6Address/ip TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+H245TransportAddress/ipAddress/ip TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+H245TransportAddress/ip6Address/ip TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+VendorIdentifier/productId TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+VendorIdentifier/versionId TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+H323-UserInformation/user-data/protocol-discriminator TYPE = FT_UINT32 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &q931_protocol_discriminator_vals_ext
+H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC
+NonStandardParameter/data TYPE = FT_UINT32 DISPLAY = BASE_DEC
+FastStart/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC
+ParallelH245Control/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC
+H245Control/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC
+GloballyUniqueID TYPE = FT_GUID DISPLAY = BASE_NONE
+H323-UU-PDU/h4501SupplementaryService/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC
+#.END
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.c b/epan/dissectors/asn1/h225/packet-h225-template.c
new file mode 100644
index 0000000000..1fbfe4a07a
--- /dev/null
+++ b/epan/dissectors/asn1/h225/packet-h225-template.c
@@ -0,0 +1,1184 @@
+/* packet-h225.c
+ * Routines for h225 packet dissection
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * To quote the author of the previous H323/H225/H245 dissector:
+ * "This is a complete replacement of the previous limitied dissector
+ * that Ronnie was crazy enough to write by hand. It was a lot of time
+ * to hack it by hand, but it is incomplete and buggy and it is good when
+ * it will go away."
+ * Ronnie did a great job and all the VoIP users had made good use of it!
+ * Credit to Tomas Kukosa for developing the asn2wrs compiler.
+ *
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/conversation.h>
+
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/next_tvb.h>
+#include <epan/asn1.h>
+#include <epan/t35.h>
+#include <epan/tap.h>
+#include <epan/stat_tap_ui.h>
+#include <epan/rtd_table.h>
+#include "packet-tpkt.h"
+#include "packet-per.h"
+#include "packet-h225.h"
+#include "packet-h235.h"
+#include "packet-h245.h"
+#include "packet-h323.h"
+#include "packet-q931.h"
+#include "packet-ssl.h"
+
+#define PNAME "H323-MESSAGES"
+#define PSNAME "H.225.0"
+#define PFNAME "h225"
+
+#define UDP_PORT_RAS1 1718
+#define UDP_PORT_RAS2 1719
+#define TCP_PORT_CS 1720
+#define TLS_PORT_CS 1300
+
+void proto_register_h225(void);
+static void reset_h225_packet_info(h225_packet_info *pi);
+static void h225_init_routine(void);
+static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi);
+
+/* Item of ras request list*/
+typedef struct _h225ras_call_t {
+ guint32 requestSeqNum;
+ e_guid_t guid;
+ guint32 req_num; /* frame number request seen */
+ guint32 rsp_num; /* frame number response seen */
+ nstime_t req_time; /* arrival time of request */
+ gboolean responded; /* true, if request has been responded */
+ struct _h225ras_call_t *next_call; /* pointer to next ras request with same SequenceNumber and conversation handle */
+} h225ras_call_t;
+
+
+/* Item of ras-request key list*/
+typedef struct _h225ras_call_info_key {
+ guint reqSeqNum;
+ conversation_t *conversation;
+} h225ras_call_info_key;
+
+static h225_packet_info pi_arr[5]; /* We assuming a maximum of 5 H.225 messages per packet */
+static int pi_current=0;
+static h225_packet_info *h225_pi=&pi_arr[0];
+
+/* Global Memory Chunks for lists and Global hash tables*/
+
+static GHashTable *ras_calls[7] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL};
+
+/* functions, needed using ras-request and halfcall matching*/
+static h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category);
+static h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category);
+static h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category);
+
+static dissector_handle_t data_handle;
+/* Subdissector tables */
+static dissector_table_t nsp_object_dissector_table;
+static dissector_table_t nsp_h221_dissector_table;
+static dissector_table_t tp_dissector_table;
+static dissector_table_t gef_name_dissector_table;
+static dissector_table_t gef_content_dissector_table;
+
+
+static dissector_handle_t h245_handle=NULL;
+static dissector_handle_t h245dg_handle=NULL;
+static dissector_handle_t h4501_handle=NULL;
+
+static dissector_handle_t nsp_handle;
+static dissector_handle_t tp_handle;
+
+static next_tvb_list_t h245_list;
+static next_tvb_list_t tp_list;
+
+/* Initialize the protocol and registered fields */
+static int h225_tap = -1;
+static int proto_h225 = -1;
+
+static int hf_h221Manufacturer = -1;
+static int hf_h225_ras_req_frame = -1;
+static int hf_h225_ras_rsp_frame = -1;
+static int hf_h225_ras_dup = -1;
+static int hf_h225_ras_deltatime = -1;
+static int hf_h225_debug_dissector_try_string = -1;
+
+#include "packet-h225-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_h225 = -1;
+#include "packet-h225-ett.c"
+
+/* Preferences */
+static guint h225_tls_port = TLS_PORT_CS;
+static gboolean h225_reassembly = TRUE;
+static gboolean h225_h245_in_tree = TRUE;
+static gboolean h225_tp_in_tree = TRUE;
+
+/* Global variables */
+static guint32 ipv4_address;
+static struct e_in6_addr ipv6_address;
+static struct e_in6_addr ipv6_address_zeros = {{0}};
+static guint32 ip_port;
+static gboolean contains_faststart = FALSE;
+static e_guid_t *call_id_guid;
+
+/* NonStandardParameter */
+static const char *nsiOID;
+static guint32 h221NonStandard;
+static guint32 t35CountryCode;
+static guint32 t35Extension;
+static guint32 manufacturerCode;
+
+/* TunnelledProtocol */
+static const char *tpOID;
+
+static const value_string ras_message_category[] = {
+ { 0, "Gatekeeper "},
+ { 1, "Registration "},
+ { 2, "UnRegistration"},
+ { 3, "Admission "},
+ { 4, "Bandwidth "},
+ { 5, "Disengage "},
+ { 6, "Location "},
+ { 0, NULL }
+};
+
+typedef enum _ras_type {
+ RAS_REQUEST,
+ RAS_CONFIRM,
+ RAS_REJECT,
+ RAS_OTHER
+}ras_type;
+
+typedef enum _ras_category {
+ RAS_GATEKEEPER,
+ RAS_REGISTRATION,
+ RAS_UNREGISTRATION,
+ RAS_ADMISSION,
+ RAS_BANDWIDTH,
+ RAS_DISENGAGE,
+ RAS_LOCATION,
+ RAS_OTHERS
+}ras_category;
+
+#define NUM_RAS_STATS 7
+
+static gboolean
+h225rassrt_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *phi)
+{
+ rtd_data_t* rtd_data = (rtd_data_t*)phs;
+ rtd_stat_table* rs = &rtd_data->stat_table;
+ const h225_packet_info *pi=(const h225_packet_info *)phi;
+
+ ras_type rasmsg_type = RAS_OTHER;
+ ras_category rascategory = RAS_OTHERS;
+
+ if (pi->msg_type != H225_RAS || pi->msg_tag == -1) {
+ /* No RAS Message or uninitialized msg_tag -> return */
+ return FALSE;
+ }
+
+ if (pi->msg_tag < 21) {
+ /* */
+ rascategory = (ras_category)(pi->msg_tag / 3);
+ rasmsg_type = (ras_type)(pi->msg_tag % 3);
+ }
+ else {
+ /* No SRT yet (ToDo) */
+ return FALSE;
+ }
+
+ switch(rasmsg_type) {
+
+ case RAS_REQUEST:
+ if(pi->is_duplicate){
+ rs->time_stats[rascategory].req_dup_num++;
+ }
+ else {
+ rs->time_stats[rascategory].open_req_num++;
+ }
+ break;
+
+ case RAS_CONFIRM:
+ /* no break - delay stats are identical for Confirm and Reject */
+ case RAS_REJECT:
+ if(pi->is_duplicate){
+ /* Duplicate is ignored */
+ rs->time_stats[rascategory].rsp_dup_num++;
+ }
+ else if (!pi->request_available) {
+ /* no request was seen, ignore response */
+ rs->time_stats[rascategory].disc_rsp_num++;
+ }
+ else {
+ rs->time_stats[rascategory].open_req_num--;
+ time_stat_update(&(rs->time_stats[rascategory].rtd[0]),&(pi->delta_time), pinfo);
+ }
+ break;
+
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+#include "packet-h225-fn.c"
+
+/* Forward declaration we need below */
+void proto_reg_handoff_h225(void);
+
+/*
+ * Functions needed for Ras-Hash-Table
+ */
+
+/* compare 2 keys */
+static gint h225ras_call_equal(gconstpointer k1, gconstpointer k2)
+{
+ const h225ras_call_info_key* key1 = (const h225ras_call_info_key*) k1;
+ const h225ras_call_info_key* key2 = (const h225ras_call_info_key*) k2;
+
+ return (key1->reqSeqNum == key2->reqSeqNum &&
+ key1->conversation == key2->conversation);
+}
+
+/* calculate a hash key */
+static guint h225ras_call_hash(gconstpointer k)
+{
+ const h225ras_call_info_key* key = (const h225ras_call_info_key*) k;
+
+ return key->reqSeqNum + GPOINTER_TO_UINT(key->conversation);
+}
+
+
+h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category)
+{
+ h225ras_call_t *h225ras_call = NULL;
+ h225ras_call = (h225ras_call_t *)g_hash_table_lookup(ras_calls[category], h225ras_call_key);
+
+ return h225ras_call;
+}
+
+h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category)
+{
+ h225ras_call_info_key *new_h225ras_call_key;
+ h225ras_call_t *h225ras_call = NULL;
+
+
+ /* Prepare the value data.
+ "req_num" and "rsp_num" are frame numbers;
+ frame numbers are 1-origin, so we use 0
+ to mean "we don't yet know in which frame
+ the reply for this call appears". */
+ new_h225ras_call_key = wmem_new(wmem_file_scope(), h225ras_call_info_key);
+ new_h225ras_call_key->reqSeqNum = h225ras_call_key->reqSeqNum;
+ new_h225ras_call_key->conversation = h225ras_call_key->conversation;
+ h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
+ h225ras_call->req_num = pinfo->num;
+ h225ras_call->rsp_num = 0;
+ h225ras_call->requestSeqNum = h225ras_call_key->reqSeqNum;
+ h225ras_call->responded = FALSE;
+ h225ras_call->next_call = NULL;
+ h225ras_call->req_time=pinfo->abs_ts;
+ h225ras_call->guid=*guid;
+ /* store it */
+ g_hash_table_insert(ras_calls[category], new_h225ras_call_key, h225ras_call);
+
+ return h225ras_call;
+}
+
+h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category _U_)
+{
+ h225ras_call_t *h225ras_call = NULL;
+
+ /* Prepare the value data.
+ "req_num" and "rsp_num" are frame numbers;
+ frame numbers are 1-origin, so we use 0
+ to mean "we don't yet know in which frame
+ the reply for this call appears". */
+ h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
+ h225ras_call->req_num = pinfo->num;
+ h225ras_call->rsp_num = 0;
+ h225ras_call->requestSeqNum = prev_call->requestSeqNum;
+ h225ras_call->responded = FALSE;
+ h225ras_call->next_call = NULL;
+ h225ras_call->req_time=pinfo->abs_ts;
+ h225ras_call->guid=*guid;
+
+ prev_call->next_call = h225ras_call;
+ return h225ras_call;
+}
+
+/* Init routine for hash tables and delay calculation
+ This routine will be called by Wireshark, before it
+ is (re-)dissecting a trace file from beginning.
+ We need to discard and init any state we've saved */
+
+static void
+h225_init_routine(void)
+{
+ int i;
+ /* create new hash-tables for RAS SRT */
+
+ for(i=0;i<7;i++) {
+ ras_calls[i] = g_hash_table_new(h225ras_call_hash, h225ras_call_equal);
+ }
+
+}
+
+static void
+h225_cleanup_routine(void)
+{
+ int i;
+
+ /* free hash-tables for RAS SRT */
+ for(i=0;i<7;i++) {
+ g_hash_table_destroy(ras_calls[i]);
+ }
+}
+
+static int
+dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ proto_item *it;
+ proto_tree *tr;
+ int offset = 0;
+
+ pi_current++;
+ if(pi_current==5){
+ pi_current=0;
+ }
+ h225_pi=&pi_arr[pi_current];
+
+ /* Init struct for collecting h225_packet_info */
+ reset_h225_packet_info(h225_pi);
+ h225_pi->msg_type = H225_CS;
+
+ next_tvb_init(&h245_list);
+ next_tvb_init(&tp_list);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, -1, PSNAME" CS");
+ tr=proto_item_add_subtree(it, ett_h225);
+
+ offset = dissect_H323_UserInformation_PDU(tvb, pinfo, tr, NULL);
+
+ if (h245_list.count){
+ col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
+ col_set_fence(pinfo->cinfo, COL_PROTOCOL);
+ }
+
+ next_tvb_call(&h245_list, pinfo, tree, h245dg_handle, data_handle);
+ next_tvb_call(&tp_list, pinfo, tree, NULL, data_handle);
+
+ tap_queue_packet(h225_tap, pinfo, h225_pi);
+
+ return offset;
+}
+static int
+dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_){
+ proto_item *it;
+ proto_tree *tr;
+ guint32 offset=0;
+
+ pi_current++;
+ if(pi_current==5){
+ pi_current=0;
+ }
+ h225_pi=&pi_arr[pi_current];
+
+ /* Init struct for collecting h225_packet_info */
+ reset_h225_packet_info(h225_pi);
+ h225_pi->msg_type = H225_RAS;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
+
+ it=proto_tree_add_protocol_format(tree, proto_h225, tvb, offset, -1, PSNAME" RAS");
+ tr=proto_item_add_subtree(it, ett_h225);
+
+ offset = dissect_RasMessage_PDU(tvb, pinfo, tr, NULL);
+
+ ras_call_matching(tvb, pinfo, tr, h225_pi);
+
+ tap_queue_packet(h225_tap, pinfo, h225_pi);
+
+ return offset;
+}
+
+
+/* The following values represent the size of their valuestring arrays */
+
+#define RAS_MSG_TYPES (sizeof(h225_RasMessage_vals) / sizeof(value_string))
+#define CS_MSG_TYPES (sizeof(T_h323_message_body_vals) / sizeof(value_string))
+
+#define GRJ_REASONS (sizeof(GatekeeperRejectReason_vals) / sizeof(value_string))
+#define RRJ_REASONS (sizeof(RegistrationRejectReason_vals) / sizeof(value_string))
+#define URQ_REASONS (sizeof(UnregRequestReason_vals) / sizeof(value_string))
+#define URJ_REASONS (sizeof(UnregRejectReason_vals) / sizeof(value_string))
+#define ARJ_REASONS (sizeof(AdmissionRejectReason_vals) / sizeof(value_string))
+#define BRJ_REASONS (sizeof(BandRejectReason_vals) / sizeof(value_string))
+#define DRQ_REASONS (sizeof(DisengageReason_vals) / sizeof(value_string))
+#define DRJ_REASONS (sizeof(DisengageRejectReason_vals) / sizeof(value_string))
+#define LRJ_REASONS (sizeof(LocationRejectReason_vals) / sizeof(value_string))
+#define IRQNAK_REASONS (sizeof(InfoRequestNakReason_vals) / sizeof(value_string))
+#define REL_CMP_REASONS (sizeof(h225_ReleaseCompleteReason_vals) / sizeof(value_string))
+#define FACILITY_REASONS (sizeof(FacilityReason_vals) / sizeof(value_string))
+
+/* TAP STAT INFO */
+typedef enum
+{
+ MESSAGE_TYPE_COLUMN = 0,
+ COUNT_COLUMN
+} h225_stat_columns;
+
+typedef struct _h225_table_item {
+ guint count; /* Message count */
+ guint table_idx; /* stat_table index */
+} h225_table_item_t;
+
+static stat_tap_table_item h225_stat_fields[] = {{TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Message Type or Reason", "%-25s"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Count", "%d"}};
+
+static guint ras_msg_idx[RAS_MSG_TYPES];
+static guint cs_msg_idx[CS_MSG_TYPES];
+
+static guint grj_reason_idx[GRJ_REASONS];
+static guint rrj_reason_idx[RRJ_REASONS];
+static guint urq_reason_idx[URQ_REASONS];
+static guint urj_reason_idx[URJ_REASONS];
+static guint arj_reason_idx[ARJ_REASONS];
+static guint brj_reason_idx[BRJ_REASONS];
+static guint drq_reason_idx[DRQ_REASONS];
+static guint drj_reason_idx[DRJ_REASONS];
+static guint lrj_reason_idx[LRJ_REASONS];
+static guint irqnak_reason_idx[IRQNAK_REASONS];
+static guint rel_cmp_reason_idx[REL_CMP_REASONS];
+static guint facility_reason_idx[FACILITY_REASONS];
+
+static guint other_idx;
+
+static void h225_stat_init(stat_tap_table_ui* new_stat, new_stat_tap_gui_init_cb gui_callback, void* gui_data)
+{
+ int num_fields = sizeof(h225_stat_fields)/sizeof(stat_tap_table_item);
+ stat_tap_table* table = new_stat_tap_init_table("H.225 Messages and Message Reasons", num_fields, 0, NULL, gui_callback, gui_data);
+ int row_idx = 0, msg_idx;
+ stat_tap_table_item_type items[sizeof(h225_stat_fields)/sizeof(stat_tap_table_item)];
+
+ new_stat_tap_add_table(new_stat, table);
+
+ items[MESSAGE_TYPE_COLUMN].type = TABLE_ITEM_STRING;
+ items[COUNT_COLUMN].type = TABLE_ITEM_UINT;
+ items[COUNT_COLUMN].value.uint_value = 0;
+
+ /* Add a row for each value type */
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ h225_RasMessage_vals[msg_idx].strptr
+ ? h225_RasMessage_vals[msg_idx].strptr
+ : "Unknown RAS message";
+ ras_msg_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (h225_RasMessage_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ T_h323_message_body_vals[msg_idx].strptr
+ ? T_h323_message_body_vals[msg_idx].strptr
+ : "Unknown CS message";
+ cs_msg_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (T_h323_message_body_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ GatekeeperRejectReason_vals[msg_idx].strptr
+ ? GatekeeperRejectReason_vals[msg_idx].strptr
+ : "Unknown gatekeeper reject reason";
+ grj_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (GatekeeperRejectReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ RegistrationRejectReason_vals[msg_idx].strptr
+ ? RegistrationRejectReason_vals[msg_idx].strptr
+ : "Unknown registration reject reason";
+ rrj_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (RegistrationRejectReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ UnregRequestReason_vals[msg_idx].strptr
+ ? UnregRequestReason_vals[msg_idx].strptr
+ : "Unknown unregistration request reason";
+ urq_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (UnregRequestReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ UnregRejectReason_vals[msg_idx].strptr
+ ? UnregRejectReason_vals[msg_idx].strptr
+ : "Unknown unregistration reject reason";
+ urj_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (UnregRejectReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ AdmissionRejectReason_vals[msg_idx].strptr
+ ? AdmissionRejectReason_vals[msg_idx].strptr
+ : "Unknown admission reject reason";
+ arj_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (AdmissionRejectReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ BandRejectReason_vals[msg_idx].strptr
+ ? BandRejectReason_vals[msg_idx].strptr
+ : "Unknown band reject reason";
+ brj_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (BandRejectReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ DisengageReason_vals[msg_idx].strptr
+ ? DisengageReason_vals[msg_idx].strptr
+ : "Unknown disengage reason";
+ drq_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (DisengageReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ DisengageRejectReason_vals[msg_idx].strptr
+ ? DisengageRejectReason_vals[msg_idx].strptr
+ : "Unknown disengage reject reason";
+ drj_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (DisengageRejectReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ LocationRejectReason_vals[msg_idx].strptr
+ ? LocationRejectReason_vals[msg_idx].strptr
+ : "Unknown location reject reason";
+ lrj_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (LocationRejectReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ InfoRequestNakReason_vals[msg_idx].strptr
+ ? InfoRequestNakReason_vals[msg_idx].strptr
+ : "Unknown info request nak reason";
+ irqnak_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (InfoRequestNakReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ h225_ReleaseCompleteReason_vals[msg_idx].strptr
+ ? h225_ReleaseCompleteReason_vals[msg_idx].strptr
+ : "Unknown release complete reason";
+ rel_cmp_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (h225_ReleaseCompleteReason_vals[msg_idx].strptr);
+
+ msg_idx = 0;
+ do
+ {
+ items[MESSAGE_TYPE_COLUMN].value.string_value =
+ FacilityReason_vals[msg_idx].strptr
+ ? FacilityReason_vals[msg_idx].strptr
+ : "Unknown facility reason";
+ facility_reason_idx[msg_idx] = row_idx;
+
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ row_idx++;
+ msg_idx++;
+ } while (FacilityReason_vals[msg_idx].strptr);
+
+
+ items[MESSAGE_TYPE_COLUMN].value.string_value = "Unknown H.225 message";
+ new_stat_tap_init_table_row(table, row_idx, num_fields, items);
+ other_idx = row_idx;
+}
+
+static gboolean
+h225_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *hpi_ptr)
+{
+ new_stat_data_t* stat_data = (new_stat_data_t*)tapdata;
+ const h225_packet_info *hpi = (const h225_packet_info *)hpi_ptr;
+ int tag_idx = -1;
+ int reason_idx = -1;
+
+ if(hpi->msg_tag < 0) { /* uninitialized */
+ return FALSE;
+ }
+
+ switch (hpi->msg_type) {
+
+ case H225_RAS:
+ tag_idx = ras_msg_idx[MIN(hpi->msg_tag, (int)RAS_MSG_TYPES-1)];
+
+ /* Look for reason tag */
+ if(hpi->reason < 0) { /* uninitialized */
+ break;
+ }
+
+ switch(hpi->msg_tag) {
+
+ case 2: /* GRJ */
+ reason_idx = grj_reason_idx[MIN(hpi->reason, (int)GRJ_REASONS-1)];
+ break;
+ case 5: /* RRJ */
+ reason_idx = rrj_reason_idx[MIN(hpi->reason, (int)RRJ_REASONS-1)];
+ break;
+ case 6: /* URQ */
+ reason_idx = urq_reason_idx[MIN(hpi->reason, (int)URQ_REASONS-1)];
+ break;
+ case 8: /* URJ */
+ reason_idx = urj_reason_idx[MIN(hpi->reason, (int)URJ_REASONS-1)];
+ break;
+ case 11: /* ARJ */
+ reason_idx = arj_reason_idx[MIN(hpi->reason, (int)ARJ_REASONS-1)];
+ break;
+ case 14: /* BRJ */
+ reason_idx = brj_reason_idx[MIN(hpi->reason, (int)BRJ_REASONS-1)];
+ break;
+ case 15: /* DRQ */
+ reason_idx = drq_reason_idx[MIN(hpi->reason, (int)DRQ_REASONS-1)];
+ break;
+ case 17: /* DRJ */
+ reason_idx = drj_reason_idx[MIN(hpi->reason, (int)DRJ_REASONS-1)];
+ break;
+ case 20: /* LRJ */
+ reason_idx = lrj_reason_idx[MIN(hpi->reason, (int)LRJ_REASONS-1)];
+ break;
+ case 29: /* IRQ Nak */
+ reason_idx = irqnak_reason_idx[MIN(hpi->reason, (int)IRQNAK_REASONS-1)];
+ break;
+ default:
+ /* do nothing */
+ break;
+ }
+
+ break;
+
+ case H225_CS:
+ tag_idx = cs_msg_idx[MIN(hpi->msg_tag, (int)CS_MSG_TYPES-1)];
+
+ /* Look for reason tag */
+ if(hpi->reason < 0) { /* uninitialized */
+ break;
+ }
+
+ switch(hpi->msg_tag) {
+
+ case 5: /* ReleaseComplete */
+ reason_idx = rel_cmp_reason_idx[MIN(hpi->reason, (int)REL_CMP_REASONS-1)];
+ break;
+ case 6: /* Facility */
+ reason_idx = facility_reason_idx[MIN(hpi->reason, (int)FACILITY_REASONS-1)];
+ break;
+ default:
+ /* do nothing */
+ break;
+ }
+
+ break;
+
+ case H225_OTHERS:
+ default:
+ tag_idx = other_idx;
+ }
+
+ if (tag_idx >= 0) {
+ stat_tap_table*table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, 0);
+ stat_tap_table_item_type* msg_data = new_stat_tap_get_field_data(table, tag_idx, COUNT_COLUMN);;
+ msg_data->value.uint_value++;
+ new_stat_tap_set_field_data(table, tag_idx, COUNT_COLUMN, msg_data);
+
+ if (reason_idx >= 0) {
+ msg_data = new_stat_tap_get_field_data(table, reason_idx, COUNT_COLUMN);;
+ msg_data->value.uint_value++;
+ new_stat_tap_set_field_data(table, reason_idx, COUNT_COLUMN, msg_data);
+ }
+
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void
+h225_stat_reset(stat_tap_table* table)
+{
+ guint element;
+ stat_tap_table_item_type* item_data;
+
+ for (element = 0; element < table->num_elements; element++)
+ {
+ item_data = new_stat_tap_get_field_data(table, element, COUNT_COLUMN);
+ item_data->value.uint_value = 0;
+ new_stat_tap_set_field_data(table, element, COUNT_COLUMN, item_data);
+ }
+}
+
+/*--- proto_register_h225 -------------------------------------------*/
+void proto_register_h225(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_h221Manufacturer,
+ { "H.225 Manufacturer", "h225.Manufacturer", FT_UINT32, BASE_HEX,
+ VALS(H221ManufacturerCode_vals), 0, "h225.H.221 Manufacturer", HFILL }},
+
+ { &hf_h225_ras_req_frame,
+ { "RAS Request Frame", "h225.ras.reqframe", FT_FRAMENUM, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+ { &hf_h225_ras_rsp_frame,
+ { "RAS Response Frame", "h225.ras.rspframe", FT_FRAMENUM, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+ { &hf_h225_ras_dup,
+ { "Duplicate RAS Message", "h225.ras.dup", FT_UINT32, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+
+ { &hf_h225_ras_deltatime,
+ { "RAS Service Response Time", "h225.ras.timedelta", FT_RELATIVE_TIME, BASE_NONE,
+ NULL, 0, "Timedelta between RAS-Request and RAS-Response", HFILL }},
+
+ { &hf_h225_debug_dissector_try_string,
+ { "*** DEBUG dissector_try_string", "h225.debug.dissector_try_string", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+#include "packet-h225-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_h225,
+#include "packet-h225-ettarr.c"
+ };
+
+ static tap_param h225_stat_params[] = {
+ { PARAM_FILTER, "filter", "Filter", NULL, TRUE }
+ };
+
+ static stat_tap_table_ui h225_stat_table = {
+ REGISTER_STAT_GROUP_TELEPHONY,
+ "H.225",
+ PFNAME,
+ "h225,counter",
+ h225_stat_init,
+ h225_stat_packet,
+ h225_stat_reset,
+ NULL,
+ NULL,
+ sizeof(h225_stat_fields)/sizeof(stat_tap_table_item), h225_stat_fields,
+ sizeof(h225_stat_params)/sizeof(tap_param), h225_stat_params,
+ NULL
+ };
+
+ module_t *h225_module;
+ int proto_h225_ras;
+
+ /* Register protocol */
+ proto_h225 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Create a "fake" protocol to get proper display strings for SRT dialogs */
+ proto_h225_ras = proto_register_protocol("H.225 RAS", "H.225 RAS", "h225_ras");
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h225, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ h225_module = prefs_register_protocol(proto_h225, proto_reg_handoff_h225);
+ prefs_register_uint_preference(h225_module, "tls.port",
+ "H.225 TLS Port",
+ "H.225 Server TLS Port",
+ 10, &h225_tls_port);
+ prefs_register_bool_preference(h225_module, "reassembly",
+ "Reassemble H.225 messages spanning multiple TCP segments",
+ "Whether the H.225 dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &h225_reassembly);
+ prefs_register_bool_preference(h225_module, "h245_in_tree",
+ "Display tunnelled H.245 inside H.225.0 tree",
+ "ON - display tunnelled H.245 inside H.225.0 tree, OFF - display tunnelled H.245 in root tree after H.225.0",
+ &h225_h245_in_tree);
+ prefs_register_bool_preference(h225_module, "tp_in_tree",
+ "Display tunnelled protocols inside H.225.0 tree",
+ "ON - display tunnelled protocols inside H.225.0 tree, OFF - display tunnelled protocols in root tree after H.225.0",
+ &h225_tp_in_tree);
+
+ register_dissector(PFNAME, dissect_h225_H323UserInformation, proto_h225);
+ register_dissector("h323ui",dissect_h225_H323UserInformation, proto_h225);
+ register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225);
+
+ nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter (object)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.225 NonStandardParameter (h221)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ tp_dissector_table = register_dissector_table("h225.tp", "H.225 TunnelledProtocol", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework (names)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ register_init_routine(&h225_init_routine);
+ register_cleanup_routine(&h225_cleanup_routine);
+ h225_tap = register_tap(PFNAME);
+
+ register_rtd_table(proto_h225_ras, PFNAME, NUM_RAS_STATS, 1, ras_message_category, h225rassrt_packet, NULL);
+
+ register_stat_tap_table_ui(&h225_stat_table);
+
+ oid_add_from_string("Version 1","0.0.8.2250.0.1");
+ oid_add_from_string("Version 2","0.0.8.2250.0.2");
+ oid_add_from_string("Version 3","0.0.8.2250.0.3");
+ oid_add_from_string("Version 4","0.0.8.2250.0.4");
+ oid_add_from_string("Version 5","0.0.8.2250.0.5");
+ oid_add_from_string("Version 6","0.0.8.2250.0.6");
+}
+
+
+/*--- proto_reg_handoff_h225 ---------------------------------------*/
+void
+proto_reg_handoff_h225(void)
+{
+ static gboolean h225_prefs_initialized = FALSE;
+ static dissector_handle_t h225ras_handle, q931_tpkt_handle;
+ static guint saved_h225_tls_port;
+
+ if (!h225_prefs_initialized) {
+ h225ras_handle=find_dissector("h225.ras");
+ dissector_add_uint("udp.port", UDP_PORT_RAS1, h225ras_handle);
+ dissector_add_uint("udp.port", UDP_PORT_RAS2, h225ras_handle);
+
+ h245_handle = find_dissector("h245");
+ h245dg_handle = find_dissector("h245dg");
+ h4501_handle = find_dissector("h4501");
+ data_handle = find_dissector("data");
+ h225_prefs_initialized = TRUE;
+ q931_tpkt_handle = find_dissector("q931.tpkt");
+ } else {
+ ssl_dissector_delete(saved_h225_tls_port, q931_tpkt_handle);
+ }
+
+ saved_h225_tls_port = h225_tls_port;
+ ssl_dissector_add(saved_h225_tls_port, q931_tpkt_handle);
+}
+
+
+static void reset_h225_packet_info(h225_packet_info *pi)
+{
+ if(pi == NULL) {
+ return;
+ }
+
+ pi->msg_type = H225_OTHERS;
+ pi->cs_type = H225_OTHER;
+ pi->msg_tag = -1;
+ pi->reason = -1;
+ pi->requestSeqNum = 0;
+ memset(&pi->guid,0,sizeof pi->guid);
+ pi->is_duplicate = FALSE;
+ pi->request_available = FALSE;
+ pi->is_faststart = FALSE;
+ pi->is_h245 = FALSE;
+ pi->is_h245Tunneling = FALSE;
+ pi->h245_address = 0;
+ pi->h245_port = 0;
+ pi->frame_label[0] = '\0';
+ pi->dialedDigits[0] = '\0';
+ pi->is_destinationInfo = FALSE;
+}
+
+/*
+ The following function contains the routines for RAS request/response matching.
+ A RAS response matches with a request, if both messages have the same
+ RequestSequenceNumber, belong to the same IP conversation and belong to the same
+ RAS "category" (e.g. Admission, Registration).
+
+ We use hashtables to access the lists of RAS calls (request/response pairs).
+ We have one hashtable for each RAS category. The hashkeys consist of the
+ non-unique 16-bit RequestSequenceNumber and values representing the conversation.
+
+ In big capture files, we might get different requests with identical keys.
+ These requests aren't necessarily duplicates. They might be valid new requests.
+ At the moment we just use the timedelta between the last valid and the new request
+ to decide if the new request is a duplicate or not. There might be better ways.
+ Two thresholds are defined below.
+
+ However the decision is made, another problem arises. We can't just add those
+ requests to our hashtables. Instead we create lists of RAS calls with identical keys.
+ The hashtables for RAS calls contain now pointers to the first RAS call in a list of
+ RAS calls with identical keys.
+ These lists aren't expected to contain more than 3 items and are usually single item
+ lists. So we don't need an expensive but intelligent way to access these lists
+ (e.g. hashtables). Just walk through such a list.
+*/
+
+#define THRESHOLD_REPEATED_RESPONDED_CALL 300
+#define THRESHOLD_REPEATED_NOT_RESPONDED_CALL 1800
+
+static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi)
+{
+ proto_item *hidden_item;
+ conversation_t* conversation = NULL;
+ h225ras_call_info_key h225ras_call_key;
+ h225ras_call_t *h225ras_call = NULL;
+ nstime_t delta;
+ guint msg_category;
+
+ if(pi->msg_type == H225_RAS && pi->msg_tag < 21) {
+ /* make RAS request/response matching only for tags from 0 to 20 for now */
+
+ msg_category = pi->msg_tag / 3;
+ if(pi->msg_tag % 3 == 0) { /* Request Message */
+ conversation = find_or_create_conversation(pinfo);
+
+ /* prepare the key data */
+ h225ras_call_key.reqSeqNum = pi->requestSeqNum;
+ h225ras_call_key.conversation = conversation;
+
+ /* look up the request */
+ h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
+
+ if (h225ras_call != NULL) {
+ /* We've seen requests with this reqSeqNum, with the same
+ source and destination, before - do we have
+ *this* request already? */
+ /* Walk through list of ras requests with identical keys */
+ do {
+ if (pinfo->num == h225ras_call->req_num) {
+ /* We have seen this request before -> do nothing */
+ break;
+ }
+
+ /* if end of list is reached, exit loop and decide if request is duplicate or not. */
+ if (h225ras_call->next_call == NULL) {
+ if ( (pinfo->num > h225ras_call->rsp_num && h225ras_call->rsp_num != 0
+ && pinfo->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_RESPONDED_CALL) )
+ ||(pinfo->num > h225ras_call->req_num && h225ras_call->rsp_num == 0
+ && pinfo->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_NOT_RESPONDED_CALL) ) )
+ {
+ /* if last request has been responded
+ and this request appears after last response (has bigger frame number)
+ and last request occurred more than 300 seconds ago,
+ or if last request hasn't been responded
+ and this request appears after last request (has bigger frame number)
+ and last request occurred more than 1800 seconds ago,
+ we decide that we have a new request */
+ /* Append new ras call to list */
+ h225ras_call = append_h225ras_call(h225ras_call, pinfo, &pi->guid, msg_category);
+ } else {
+ /* No, so it's a duplicate request.
+ Mark it as such. */
+ pi->is_duplicate = TRUE;
+ hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ }
+ break;
+ }
+ h225ras_call = h225ras_call->next_call;
+ } while (h225ras_call != NULL );
+ }
+ else {
+ h225ras_call = new_h225ras_call(&h225ras_call_key, pinfo, &pi->guid, msg_category);
+ }
+
+ /* add link to response frame, if available */
+ if(h225ras_call && h225ras_call->rsp_num != 0){
+ proto_item *ti =
+ proto_tree_add_uint_format(tree, hf_h225_ras_rsp_frame, tvb, 0, 0, h225ras_call->rsp_num,
+ "The response to this request is in frame %u",
+ h225ras_call->rsp_num);
+ PROTO_ITEM_SET_GENERATED(ti);
+ }
+
+ /* end of request message handling*/
+ }
+ else { /* Confirm or Reject Message */
+ conversation = find_conversation(pinfo->num, &pinfo->src,
+ &pinfo->dst, pinfo->ptype, pinfo->srcport,
+ pinfo->destport, 0);
+ if (conversation != NULL) {
+ /* look only for matching request, if
+ matching conversation is available. */
+ h225ras_call_key.reqSeqNum = pi->requestSeqNum;
+ h225ras_call_key.conversation = conversation;
+ h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
+ if(h225ras_call) {
+ /* find matching ras_call in list of ras calls with identical keys */
+ do {
+ if (pinfo->num == h225ras_call->rsp_num) {
+ /* We have seen this response before -> stop now with matching ras call */
+ break;
+ }
+
+ /* Break when list end is reached */
+ if(h225ras_call->next_call == NULL) {
+ break;
+ }
+ h225ras_call = h225ras_call->next_call;
+ } while (h225ras_call != NULL) ;
+
+ if (!h225ras_call) {
+ return;
+ }
+
+ /* if this is an ACF, ARJ or DCF, DRJ, give guid to tap and make it filterable */
+ if (msg_category == 3 || msg_category == 5) {
+ pi->guid = h225ras_call->guid;
+ hidden_item = proto_tree_add_guid(tree, hf_h225_guid, tvb, 0, GUID_LEN, &pi->guid);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ }
+
+ if (h225ras_call->rsp_num == 0) {
+ /* We have not yet seen a response to that call, so
+ this must be the first response; remember its
+ frame number. */
+ h225ras_call->rsp_num = pinfo->num;
+ }
+ else {
+ /* We have seen a response to this call - but was it
+ *this* response? */
+ if (h225ras_call->rsp_num != pinfo->num) {
+ /* No, so it's a duplicate response.
+ Mark it as such. */
+ pi->is_duplicate = TRUE;
+ hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ }
+ }
+
+ if(h225ras_call->req_num != 0){
+ proto_item *ti;
+ h225ras_call->responded = TRUE;
+ pi->request_available = TRUE;
+
+ /* Indicate the frame to which this is a reply. */
+ ti = proto_tree_add_uint_format(tree, hf_h225_ras_req_frame, tvb, 0, 0, h225ras_call->req_num,
+ "This is a response to a request in frame %u", h225ras_call->req_num);
+ PROTO_ITEM_SET_GENERATED(ti);
+
+ /* Calculate RAS Service Response Time */
+ nstime_delta(&delta, &pinfo->abs_ts, &h225ras_call->req_time);
+ pi->delta_time = delta; /* give it to tap */
+
+ /* display Ras Service Response Time and make it filterable */
+ ti = proto_tree_add_time(tree, hf_h225_ras_deltatime, tvb, 0, 0, &(pi->delta_time));
+ PROTO_ITEM_SET_GENERATED(ti);
+ }
+ }
+ }
+ }
+ }
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.h b/epan/dissectors/asn1/h225/packet-h225-template.h
new file mode 100644
index 0000000000..fa89a3ffc8
--- /dev/null
+++ b/epan/dissectors/asn1/h225/packet-h225-template.h
@@ -0,0 +1,95 @@
+/* packet-h225.h
+ * Routines for h225 packet dissection
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_H225_H
+#define PACKET_H225_H
+
+typedef enum _h225_msg_type {
+ H225_RAS,
+ H225_CS,
+ H225_OTHERS
+} h225_msg_type;
+
+typedef enum _h225_cs_type {
+ H225_SETUP,
+ H225_CALL_PROCEDING,
+ H225_CONNECT,
+ H225_ALERTING,
+ H225_INFORMATION,
+ H225_RELEASE_COMPLET,
+ H225_FACILITY,
+ H225_PROGRESS,
+ H225_EMPTY,
+ H225_STATUS,
+ H225_STATUS_INQUIRY,
+ H225_SETUP_ACK,
+ H225_NOTIFY,
+ H225_OTHER
+} h225_cs_type;
+
+typedef struct _h225_packet_info {
+ h225_msg_type msg_type; /* ras or cs message */
+ h225_cs_type cs_type; /* cs message type */
+ gint msg_tag; /* message tag*/
+ gint reason; /* reason tag, if available */
+ guint requestSeqNum; /* request sequence number of ras-message, if available */
+ e_guid_t guid; /* globally unique call id */
+ gboolean is_duplicate; /* true, if this is a repeated message */
+ gboolean request_available; /* true, if response matches to a request */
+ nstime_t delta_time; /* this is the RAS response time delay */
+ /* added for h225 conversations analysis */
+ gboolean is_faststart; /* true, if faststart field is included */
+ gboolean is_h245;
+ gboolean is_h245Tunneling;
+ guint32 h245_address;
+ guint16 h245_port;
+ gchar dialedDigits[129]; /* Dialed Digits in the LRQ and LCF used for voip analysis */
+ gboolean is_destinationInfo;
+ gchar frame_label[50]; /* the Frame label used by graph_analysis, what is a abreviation of cinfo */
+} h225_packet_info;
+
+/*
+ * the following allows TAP code access to the messages
+ * without having to duplicate it. With MSVC and a
+ * libwireshark.dll, we need a special declaration.
+ */
+
+#include <epan/asn1.h>
+#include <epan/dissectors/packet-per.h>
+
+#include "packet-h225-exp.h"
+
+#endif /* PACKET_H225_H */
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/h235/CMakeLists.txt b/epan/dissectors/asn1/h235/CMakeLists.txt
new file mode 100644
index 0000000000..1032611e94
--- /dev/null
+++ b/epan/dissectors/asn1/h235/CMakeLists.txt
@@ -0,0 +1,57 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h235 )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ H235-SECURITY-MESSAGES.asn
+ H235-SRTP.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../h225/h225-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h235/H235-SECURITY-MESSAGES.asn b/epan/dissectors/asn1/h235/H235-SECURITY-MESSAGES.asn
new file mode 100644
index 0000000000..bd88c6d072
--- /dev/null
+++ b/epan/dissectors/asn1/h235/H235-SECURITY-MESSAGES.asn
@@ -0,0 +1,354 @@
+-- H235-SECURITY-MESSAGES.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h235.0/2005/H235-SECURITY-MESSAGES.asn
+--
+
+-- Module H235-SECURITY-MESSAGES (H.235.0:09/2005)
+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 -- 32-bit 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
+ ...
+}
+
+ECpoint ::=
+ SEQUENCE -- uncompressed (x, y) affine coordinate representation of
+
+ -- an elliptic curve point
+ {
+ x BIT STRING(SIZE (0..511)) OPTIONAL,
+ y BIT STRING(SIZE (0..511)) OPTIONAL,
+ ...
+}
+
+ECKASDH ::=
+ CHOICE -- parameters for elliptic curve key agreement scheme Diffie-Hellman
+ {
+ eckasdhp
+ SEQUENCE-- parameters for elliptic curves of prime field-- {public-key
+ ECpoint, -- This field contains representation of --
+ -- the ECKAS-DHp public key value. This field contains the
+ -- initiator's ECKAS-DHp public key value (aP) when this
+ -- information element is sent from originator to receiver. This
+ -- field contains the responder's ECKAS-DHp public key value (bP)
+ -- when this information element is sent back from receiver to
+ -- originator.
+ modulus
+ BIT STRING
+ (SIZE (0..
+ 511)), -- This field contains --
+ -- representation of the ECKAS-DHp public modulus value (p).
+ base
+ ECpoint, -- This field contains representation of the --
+ -- ECKAS-DHp public base (P).
+ weierstrassA
+ BIT STRING
+ (SIZE (0..
+ 511)), -- This field contains --
+ -- representation of the ECKAS-DHp Weierstrass coefficient (a).
+ weierstrassB
+ BIT STRING
+ (SIZE (0..
+ 511))-- This field contains --
+ -- representation of the ECKAS-DHp Weierstrass coefficient (b).
+ },
+ eckasdh2
+ SEQUENCE-- parameters for elliptic curves of characteristic 2 -- {public-key
+
+ ECpoint, -- This field contains representation of --
+ -- the ECKAS-DH2 public key value.
+ -- This field contains the initiator's ECKAS-DH2 public key value
+ -- (aP) when this information element is sent from originator to
+ -- receiver. This field contains the responder's ECKAS-DH2 public
+ -- key value (bP) when this information element is sent back from
+ -- receiver to originator.
+ fieldSize
+
+ BIT STRING
+ (SIZE (0..
+ 511)), -- This field contains --
+ -- representation of the ECKAS-DH2 field size value (m).
+ base
+
+ ECpoint, -- This field contains representation of the --
+ -- ECKAS-DH2 public base (P).
+ weierstrassA
+
+ BIT STRING
+ (SIZE (0..
+ 511)), -- This field contains --
+ -- representation of the ECKAS-DH2 Weierstrass coefficient (a).
+ weierstrassB
+
+ BIT STRING
+ (SIZE (0..
+ 511))-- This field contains --
+ -- representation of the ECKAS-DH2 Weierstrass coefficient (b).
+ },
+ ...
+}
+
+ECGDSASignature ::=
+ SEQUENCE -- parameters for elliptic curve digital signature
+
+ -- algorithm
+ {
+ r BIT STRING(SIZE (0..511)), -- This field contains the
+
+ -- representation of the r component of the ECGDSA digital
+ -- signature.
+ s BIT STRING(SIZE (0..511))-- This field contains the --
+ -- representation of the s component of the ECGDSA digital
+ -- signature.
+}
+
+TypedCertificate ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ certificate OCTET STRING,
+ ...
+}
+
+AuthenticationBES ::= CHOICE {
+ default NULL, -- encrypted ClearToken
+ radius NULL, -- RADIUS-challenge/response
+ ...
+}
+
+AuthenticationMechanism ::= CHOICE {
+ dhExch NULL, -- Diffie-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.
+ ...,
+ authenticationBES AuthenticationBES, -- user authentication for BES
+ keyExch OBJECT IDENTIFIER -- key exchange profile
+}
+
+ClearToken ::= SEQUENCE -- a "token" may contain multiple value types.
+ {
+ tokenOID OBJECT IDENTIFIER,
+ timeStamp TimeStamp OPTIONAL,
+ password Password OPTIONAL,
+ dhkey DHset OPTIONAL,
+ challenge ChallengeString OPTIONAL,
+ random RandomVal OPTIONAL,
+ certificate TypedCertificate OPTIONAL,
+ generalID Identifier OPTIONAL,
+ nonStandard NonStandardParameter OPTIONAL,
+ ...,
+ eckasdhkey ECKASDH OPTIONAL, -- elliptic curve Key Agreement
+
+ -- Scheme-Diffie Hellman Analogue
+ -- (ECKAS-DH)
+ sendersID Identifier OPTIONAL,
+ h235Key H235Key OPTIONAL, -- central distributed key in V3
+ profileInfo SEQUENCE OF ProfileElement OPTIONAL -- profile-specific
+}
+
+-- An object identifier should be placed in the tokenOID field when a
+-- ClearToken is included directly in a message (as opposed to being
+-- encrypted). In all other cases, an application should use the
+-- object identifier { 0 0 } to indicate that the tokenOID value is not
+-- present.
+-- Start all the cryptographic parameterized types here...
+--
+ProfileElement ::= SEQUENCE {
+ elementID INTEGER(0..255), -- element identifier, as defined by
+
+ -- profile
+ paramS Params OPTIONAL, -- any element-specific parameters
+ element Element OPTIONAL, -- value in required form
+ ...
+}
+
+Element ::= CHOICE {
+ octets OCTET STRING,
+ integer INTEGER,
+ bits BIT STRING,
+ name BMPString,
+ flag BOOLEAN,
+ ...
+}
+
+SIGNED{ToBeSigned} ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any "runtime" parameters
+ signature BIT STRING -- could be an RSA or an ASN.1 coded ECGDSA Signature
+}(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)) -- initial value for 64-bit block ciphers
+
+
+IV16 ::= OCTET STRING(SIZE (16)) -- initial value for 128-bit block ciphers
+
+
+-- 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
+ ...,
+ iv16 IV16 OPTIONAL, -- 16-octet initialization vector
+ iv OCTET STRING OPTIONAL, -- arbitrary length initialization vector
+ clearSalt OCTET STRING OPTIONAL -- unencrypted salting key for encryption
+}
+
+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 or ClearToken "h235Key" field
+ {
+ secureChannel KeyMaterial,
+ sharedSecret ENCRYPTED{EncodedKeySyncMaterial},
+ certProtectedKey SIGNED{EncodedKeySignedMaterial},
+ ...,
+ secureSharedSecret V3KeySyncMaterial -- for H.235 V3 endpoints
+}
+
+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 unsolicited EU
+ encrptval ENCRYPTED{EncodedKeySyncMaterial}
+}
+
+EncodedKeySignedMaterial ::= TYPE-IDENTIFIER.&Type(KeySignedMaterial)
+
+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)
+
+KeySyncMaterial ::= SEQUENCE {
+ generalID Identifier,
+ keyMaterial KeyMaterial,
+ ...
+}
+
+EncodedKeySyncMaterial ::= TYPE-IDENTIFIER.&Type(KeySyncMaterial)
+
+V3KeySyncMaterial ::= SEQUENCE {
+ generalID Identifier OPTIONAL, -- peer terminal ID
+ algorithmOID OBJECT IDENTIFIER OPTIONAL, -- encryption algorithm
+ paramS Params, -- IV
+ encryptedSessionKey OCTET STRING OPTIONAL, -- encrypted session key
+ encryptedSaltingKey OCTET STRING OPTIONAL, -- encrypted media salting
+
+ -- key
+ clearSaltingKey OCTET STRING OPTIONAL, -- unencrypted media salting
+
+ -- key
+ paramSsalt Params OPTIONAL, -- IV (and clear salt) for salting
+
+ -- key encryption
+ keyDerivationOID OBJECT IDENTIFIER OPTIONAL, -- key derivation
+
+ -- method
+ ...,
+ genericKeyMaterial OCTET STRING OPTIONAL -- ASN.1-encoded key material--
+ -- form is dependent on associated media encryption tag
+}
+
+END -- End of H235-SECURITY-MESSAGES DEFINITIONS
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h235/H235-SRTP.asn b/epan/dissectors/asn1/h235/H235-SRTP.asn
new file mode 100644
index 0000000000..1783cd6eb7
--- /dev/null
+++ b/epan/dissectors/asn1/h235/H235-SRTP.asn
@@ -0,0 +1,58 @@
+-- H235-SRTP.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h235.8/2005/H235-SRTP.asn
+--
+
+-- Module H235-SRTP (H.235.8:09/2005)
+H235-SRTP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS GenericData
+ FROM H323-MESSAGES;
+
+SrtpCryptoCapability ::=
+ SEQUENCE OF SrtpCryptoInfo -- used in H.245 genericH235SecurityCapability
+
+SrtpCryptoInfo ::= SEQUENCE {
+ cryptoSuite OBJECT IDENTIFIER OPTIONAL,
+ sessionParams SrtpSessionParameters OPTIONAL,
+ allowMKI BOOLEAN OPTIONAL,
+ ...
+}
+
+SrtpKeys ::= SEQUENCE OF SrtpKeyParameters -- used in H.235 V3KeySyncMaterial
+
+SrtpKeyParameters ::= SEQUENCE {
+ masterKey OCTET STRING,
+ masterSalt OCTET STRING,
+ lifetime CHOICE {powerOfTwo INTEGER,
+ specific INTEGER,
+ ...} OPTIONAL,
+ mki SEQUENCE {length INTEGER(1..128),
+ value OCTET STRING,
+ ...} OPTIONAL,
+ ...
+}
+
+SrtpSessionParameters ::= SEQUENCE {
+ kdr INTEGER(0..24) OPTIONAL, -- power of 2
+ unencryptedSrtp BOOLEAN OPTIONAL,
+ unencryptedSrtcp BOOLEAN OPTIONAL,
+ unauthenticatedSrtp BOOLEAN OPTIONAL,
+ fecOrder FecOrder OPTIONAL,
+ windowSizeHint INTEGER(64..65535) OPTIONAL,
+ newParameter SEQUENCE OF GenericData OPTIONAL,
+ ...
+}
+
+FecOrder ::= SEQUENCE {
+ fecBeforeSrtp NULL OPTIONAL,
+ fecAfterSrtp NULL OPTIONAL,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h235/Makefile.am b/epan/dissectors/asn1/h235/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h235/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h235/Makefile.common b/epan/dissectors/asn1/h235/Makefile.common
new file mode 100644
index 0000000000..d3a1bb6908
--- /dev/null
+++ b/epan/dissectors/asn1/h235/Makefile.common
@@ -0,0 +1,50 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = h235
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ H235-SECURITY-MESSAGES.asn \
+ H235-SRTP.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF = \
+ $(builddir)/../h225/h225-exp.cnf
+
+$(builddir)/../h225/h225-exp.cnf:
+ (cd $(builddir)/../h225 && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/h235/Makefile.nmake b/epan/dissectors/asn1/h235/Makefile.nmake
new file mode 100644
index 0000000000..270082fb45
--- /dev/null
+++ b/epan/dissectors/asn1/h235/Makefile.nmake
@@ -0,0 +1,30 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+checkapi:
+ $(PERL) ../../tools/checkAPIs.pl -build \
+ $(PROTOCOL_NAME).cnf \
+ packet-$(PROTOCOL_NAME)-template.c \ No newline at end of file
diff --git a/epan/dissectors/asn1/h235/h235.cnf b/epan/dissectors/asn1/h235/h235.cnf
new file mode 100644
index 0000000000..fdf0994d35
--- /dev/null
+++ b/epan/dissectors/asn1/h235/h235.cnf
@@ -0,0 +1,85 @@
+# h235.cnf
+# H.235.x conformation file
+# 2004 Tomas Kukosa
+
+#.IMPORT ../h225/h225-exp.cnf
+
+#.EXPORTS
+
+SIGNED
+ENCRYPTED
+HASHED
+TimeStamp
+ClearToken
+CryptoToken
+AuthenticationMechanism
+
+SrtpKeys
+#.END
+
+#.PDU
+SrtpCryptoCapability
+#.END
+
+#.OMIT_ASSIGNMENT
+ECGDSASignature
+H235CertificateSignature
+
+EncodedGeneralToken
+EncodedPwdCertToken
+PwdCertToken
+EncodedKeySignedMaterial
+KeySignedMaterial
+EncodedReturnSig
+ReturnSig
+EncodedKeySyncMaterial
+KeySyncMaterial
+#.END
+
+#.FIELD_RENAME
+
+TypedCertificate/certificate certificatedata
+SIGNED/signature signaturedata
+CryptoToken/cryptoHashedToken/token hashedToken
+CryptoToken/cryptoSignedToken/token signedToken
+CryptoToken/cryptoEncryptedToken/token encryptedToken
+
+#.END
+
+#.TYPE_ATTR
+TimeStamp TYPE = FT_ABSOLUTE_TIME DISPLAY = ABSOLUTE_TIME_LOCAL
+#.END
+
+#.FIELD_ATTR
+NonStandardParameter/data TYPE = FT_UINT32 DISPLAY = BASE_DEC
+#.END
+
+#.FN_HDR SIGNED
+ proto_item *hidden_item;
+ hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+#.END
+#.FN_HDR ENCRYPTED
+ proto_item *hidden_item;
+ hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+#.END
+#.FN_HDR HASHED
+ proto_item *hidden_item;
+ hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+#.END
+
+#.FN_HDR ClearToken
+ proto_item *hidden_item;
+ hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+#.END
+
+#.FN_HDR CryptoToken
+ proto_item *hidden_item;
+ hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+#.END
+
+
diff --git a/epan/dissectors/asn1/h235/packet-h235-template.c b/epan/dissectors/asn1/h235/packet-h235-template.c
new file mode 100644
index 0000000000..c3492eb7cb
--- /dev/null
+++ b/epan/dissectors/asn1/h235/packet-h235-template.c
@@ -0,0 +1,144 @@
+/* packet-h235.c
+ * Routines for H.235 packet dissection
+ * 2004 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-h235.h"
+#include "packet-h225.h"
+
+#define PNAME "H235-SECURITY-MESSAGES"
+#define PSNAME "H.235"
+#define PFNAME "h235"
+
+#define OID_MIKEY "0.0.8.235.0.3.76"
+#define OID_MIKEY_PS "0.0.8.235.0.3.72"
+#define OID_MIKEY_DHHMAC "0.0.8.235.0.3.73"
+#define OID_MIKEY_PK_SIGN "0.0.8.235.0.3.74"
+#define OID_MIKEY_DH_SIGN "0.0.8.235.0.3.75"
+#define OID_TG "0.0.8.235.0.3.70"
+#define OID_SG "0.0.8.235.0.3.71"
+
+void proto_register_h235(void);
+void proto_reg_handoff_h235(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_h235 = -1;
+#include "packet-h235-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h235-ett.c"
+
+
+static int
+dissect_xxx_ToBeSigned(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
+ dissect_per_not_decoded_yet(tree, actx->pinfo, tvb, "ToBeSigned");
+ return offset;
+}
+
+#include "packet-h235-fn.c"
+
+
+/*--- proto_register_h235 ----------------------------------------------*/
+void proto_register_h235(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h235-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h235-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h235 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h235, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* OID names */
+ /* H.235.1, Chapter 15, Table 3 */
+ /* A */
+ oid_add_from_string("all fields in RAS/CS","0.0.8.235.0.1.1");
+ oid_add_from_string("all fields in RAS/CS","0.0.8.235.0.2.1");
+ /* T */
+ oid_add_from_string("ClearToken","0.0.8.235.0.1.5");
+ oid_add_from_string("ClearToken","0.0.8.235.0.2.5");
+ /* U */
+ oid_add_from_string("HMAC-SHA1-96","0.0.8.235.0.1.6");
+ oid_add_from_string("HMAC-SHA1-96","0.0.8.235.0.2.6");
+ /* H.235.7, Chapter 5, Table 1 */
+ oid_add_from_string("MIKEY", OID_MIKEY);
+ oid_add_from_string("MIKEY-PS", OID_MIKEY_PS);
+ oid_add_from_string("MIKEY-DHHMAC", OID_MIKEY_DHHMAC);
+ oid_add_from_string("MIKEY-PK-SIGN", OID_MIKEY_PK_SIGN);
+ oid_add_from_string("MIKEY-DH-SIGN", OID_MIKEY_DH_SIGN);
+ /* H.235.7, Chapter 8.5 */
+ oid_add_from_string("TG",OID_TG);
+ /* H.235.7, Chapter 9.5 */
+ oid_add_from_string("SG",OID_SG);
+ /* H.235.8, Chapter 4.2, Table 2 */
+ oid_add_from_string("AES_CM_128_HMAC_SHA1_80","0.0.8.235.0.4.91");
+ oid_add_from_string("AES_CM_128_HMAC_SHA1_32","0.0.8.235.0.4.92");
+ oid_add_from_string("F8_128_HMAC_SHA1_80","0.0.8.235.0.4.93");
+}
+
+
+/*--- proto_reg_handoff_h235 -------------------------------------------*/
+void proto_reg_handoff_h235(void) {
+ dissector_handle_t mikey_handle;
+
+ mikey_handle = find_dissector("mikey");
+
+ /* H.235.7, Chapter 7.1, MIKEY operation at "session level" */
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY "/nonCollapsing/0", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_PS "/nonCollapsing/0", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_DHHMAC "/nonCollapsing/0", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_PK_SIGN "/nonCollapsing/0", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_DH_SIGN "/nonCollapsing/0", mikey_handle);
+ dissector_add_string("h245.gef.content", "EncryptionSync/0", mikey_handle);
+ /* H.235.7, Chapter 7.2, MIKEY operation at "media level" */
+ dissector_add_string("h245.gef.content", "EncryptionSync/76", mikey_handle);
+ dissector_add_string("h245.gef.content", "EncryptionSync/72", mikey_handle);
+ dissector_add_string("h245.gef.content", "EncryptionSync/73", mikey_handle);
+ dissector_add_string("h245.gef.content", "EncryptionSync/74", mikey_handle);
+ dissector_add_string("h245.gef.content", "EncryptionSync/75", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY "/nonCollapsing/76", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_PS "/nonCollapsing/72", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_DHHMAC "/nonCollapsing/73", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_PK_SIGN "/nonCollapsing/74", mikey_handle);
+ dissector_add_string("h245.gef.content", "GenericCapability/" OID_MIKEY_DH_SIGN "/nonCollapsing/75", mikey_handle);
+
+ /* H.235.8, Chapter 4.1.2, SrtpCryptoCapability transport */
+ dissector_add_string("h245.gef.content", "GenericCapability/0.0.8.235.0.4.90/nonCollapsingRaw",
+ create_dissector_handle(dissect_SrtpCryptoCapability_PDU, proto_h235));
+
+}
+
diff --git a/epan/dissectors/asn1/h235/packet-h235-template.h b/epan/dissectors/asn1/h235/packet-h235-template.h
new file mode 100644
index 0000000000..4ee513cdb0
--- /dev/null
+++ b/epan/dissectors/asn1/h235/packet-h235-template.h
@@ -0,0 +1,30 @@
+/* packet-h235.h
+ * Routines for H.235 packet dissection
+ * 2004 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_H235_H
+#define PACKET_H235_H
+
+#include "packet-h235-exp.h"
+
+#endif /* PACKET_H235_H */
+
diff --git a/epan/dissectors/asn1/h245/CMakeLists.txt b/epan/dissectors/asn1/h245/CMakeLists.txt
new file mode 100644
index 0000000000..4c06010491
--- /dev/null
+++ b/epan/dissectors/asn1/h245/CMakeLists.txt
@@ -0,0 +1,55 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h245 )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ MULTIMEDIA-SYSTEM-CONTROL.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn b/epan/dissectors/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn
new file mode 100644
index 0000000000..3324b08279
--- /dev/null
+++ b/epan/dissectors/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn
@@ -0,0 +1,3410 @@
+-- MULTIMEDIA-SYSTEM-CONTROL.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/formal-language/itu-t/h/h245/2009v15/MULTIMEDIA-SYSTEM-CONTROL.asn
+--
+
+-- Module MULTIMEDIA-SYSTEM-CONTROL (H.245:12/2009)
+MULTIMEDIA-SYSTEM-CONTROL {itu-t(0) recommendation(0) h(8) h245(245)
+ version(0) 15 multimedia-system-control(0)} 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,
+ multilinkRequest MultilinkRequest,
+ logicalChannelRateRequest LogicalChannelRateRequest,
+ genericRequest GenericMessage
+}
+
+-- A ResponseMessage is the response to a RequestMessage
+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,
+ multilinkResponse MultilinkResponse,
+ logicalChannelRateAcknowledge LogicalChannelRateAcknowledge,
+ logicalChannelRateReject LogicalChannelRateReject,
+ genericResponse GenericMessage
+}
+
+-- 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,
+ newATMVCCommand NewATMVCCommand,
+ mobileMultilinkReconfigurationCommand MobileMultilinkReconfigurationCommand,
+ genericCommand GenericMessage
+}
+
+-- 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,
+ multilinkIndication MultilinkIndication,
+ logicalChannelRateRelease LogicalChannelRateRelease,
+ flowControlIndication FlowControlIndication,
+ mobileMultilinkReconfigurationIndication
+ MobileMultilinkReconfigurationIndication,
+ genericIndication GenericMessage
+}
+
+-- SequenceNumber is defined here as it is used in a number of Messages
+SequenceNumber ::= INTEGER(0..255)
+
+-- =============================================================================
+-- Generic Message definitions
+-- =============================================================================
+GenericMessage ::= SEQUENCE {
+ messageIdentifier CapabilityIdentifier,
+ subMessageIdentifier INTEGER(0..127) OPTIONAL,
+ messageContent SEQUENCE OF GenericParameter OPTIONAL,
+ ...
+}
+
+GenericInformation ::= GenericMessage
+
+-- =============================================================================
+-- 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 --
+ -- Annex A/T.35
+ t35Extension INTEGER(0..255),
+ -- assigned nationally unless
+ -- t35CountryCode is binary
+ -- 1111 1111, in which case it shall
+ -- contain the country code
+ -- according to Annex B/T.35
+ 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) 15}
+ multiplexCapability MultiplexCapability OPTIONAL,
+ capabilityTable SET SIZE (1..256) OF CapabilityTableEntry OPTIONAL,
+ capabilityDescriptors SET SIZE (1..256) OF CapabilityDescriptor OPTIONAL,
+ ...,
+ genericInformation SEQUENCE OF GenericInformation OPTIONAL
+ -- generic information associated
+ -- with the message
+}
+
+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,
+ ...,
+ genericInformation SEQUENCE OF GenericInformation OPTIONAL
+ -- generic information associated
+ -- with the message
+}
+
+TerminalCapabilitySetReject ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ cause
+ CHOICE {unspecified NULL,
+ undefinedTableEntryUsed NULL,
+ descriptorCapacityExceeded NULL,
+ tableEntryCapacityExceeded
+ CHOICE {highestEntryNumberProcessed CapabilityTableEntryNumber,
+ noneProcessed NULL},
+ ...},
+ ...,
+ genericInformation SEQUENCE OF GenericInformation OPTIONAL
+ -- generic information associated
+ -- with the message
+}
+
+TerminalCapabilitySetRelease ::= SEQUENCE {
+ ...,
+ genericInformation SEQUENCE OF GenericInformation OPTIONAL
+ -- generic information associated
+ -- with the message
+}
+
+-- =============================================================================
+-- 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,
+ genericControlCapability GenericCapability,
+ receiveMultiplexedStreamCapability MultiplexedStreamCapability,
+ transmitMultiplexedStreamCapability MultiplexedStreamCapability,
+ receiveAndTransmitMultiplexedStreamCapability MultiplexedStreamCapability,
+ receiveRTPAudioTelephonyEventCapability AudioTelephonyEventCapability,
+ receiveRTPAudioToneCapability AudioToneCapability,
+ depFecCapability DepFECCapability, -- Deprecated, do not use
+ multiplePayloadStreamCapability
+ MultiplePayloadStreamCapability,
+ fecCapability FECCapability,
+ redundancyEncodingCap RedundancyEncodingCapability,
+ oneOfCapabilities AlternativeCapabilitySet
+}
+
+H235SecurityCapability ::= SEQUENCE {
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+ mediaCapability CapabilityTableEntryNumber,
+ -- NOTE - The mediaCapability shall refer to Capability Table Entries
+ -- that do contain, directly or indirectly, one or more transmit,
+ -- receive, or receiveAndTransmit AudioCapability, VideoCapability,
+ -- DataApplicationCapability, or similar capabilities indicated by a
+ -- NonStandardParameter or GenericCapability only
+ ...
+}
+
+-- =============================================================================
+-- Capability exchange definitions: Multiplex capabilities
+-- =============================================================================
+MultiplexCapability ::= CHOICE {
+ nonStandard NonStandardParameter,
+ h222Capability H222Capability,
+ h223Capability H223Capability,
+ v76Capability V76Capability,
+ ...,
+ h2250Capability H2250Capability,
+ genericMultiplexCapability GenericCapability
+}
+
+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
+ }},
+ ...},
+ ...,
+ aal1ViaGateway
+ SEQUENCE {gatewayAddress SET SIZE (1..256) OF Q2931Address,
+ nullClockRecovery BOOLEAN,
+ srtsClockRecovery BOOLEAN,
+ adaptiveClockRecovery BOOLEAN,
+ nullErrorCorrection BOOLEAN,
+ longInterleaver BOOLEAN,
+ shortInterleaver BOOLEAN,
+ errorCorrectionOnly BOOLEAN,
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...} OPTIONAL
+}
+
+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,
+ bitRate INTEGER(1..19200) OPTIONAL, -- units of
+
+ -- 100 bit/s
+ mobileMultilinkFrameCapability
+ SEQUENCE {maximumSampleSize INTEGER(1..255), -- units octets--
+ maximumPayloadLength INTEGER(1..65025), -- units octets--
+ ...} 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
+ ...,
+ rsCodeCapability BOOLEAN OPTIONAL
+}
+
+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/s
+ bucketSize INTEGER(1..4294967295) OPTIONAL,
+ -- size in bytes
+ peakRate INTEGER(1..4294967295) OPTIONAL,
+ -- peak bandwidth bytes/s
+ minPoliced INTEGER(1..4294967295) OPTIONAL,
+ --
+ maxPktSize INTEGER(1..4294967295) OPTIONAL,
+ -- size in bytes
+ ...
+}
+
+QOSMode ::= CHOICE {guaranteedQOS NULL,
+ controlledLoad NULL,
+ ...
+}
+
+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
+ ...
+}
+
+ServicePriorityValue ::= SEQUENCE {
+ nonStandardParameter NonStandardParameter OPTIONAL,
+ ...,
+ value INTEGER(0..255)
+}
+
+ServicePriority ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ servicePrioritySignalled BOOLEAN,
+ servicePriorityValue ServicePriorityValue OPTIONAL,
+ ...,
+ serviceClass INTEGER(0..4095) OPTIONAL,
+ serviceSubclass INTEGER(0..255) OPTIONAL
+}
+
+AuthorizationParameters ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+QOSType ::= CHOICE {desired NULL,
+ required NULL,
+ ...
+}
+
+QOSClass ::= CHOICE {
+ class0 NULL,
+ class1 NULL,
+ class2 NULL,
+ class3 NULL,
+ class4 NULL,
+ class5 NULL,
+ ...
+}
+
+QOSDescriptor ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ qosType QOSType,
+ qosClass QOSClass,
+ ...
+}
+
+GenericTransportParameters ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ averageRate INTEGER(1..4294967295) OPTIONAL,
+ -- average bandwidth bytes/s
+ burst INTEGER(1..4294967295) OPTIONAL,
+ -- size in bytes
+ peakRate INTEGER(1..4294967295) OPTIONAL,
+ -- peak bandwidth bytes/s
+ maxPktSize INTEGER(1..4294967295) OPTIONAL,
+ -- size in bytes
+ ...
+}
+
+QOSCapability ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ rsvpParameters RSVPParameters OPTIONAL,
+ atmParameters ATMParameters OPTIONAL,
+ ...,
+ localQoS BOOLEAN OPTIONAL,
+ genericTransportParameters GenericTransportParameters OPTIONAL,
+ servicePriority ServicePriority OPTIONAL,
+ authorizationParameter AuthorizationParameters OPTIONAL,
+ qosDescriptor QOSDescriptor OPTIONAL,
+ dscpValue INTEGER(0..63) 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
+ ...,
+ atm-AAL5-compressed SEQUENCE {variable-delta BOOLEAN,
+ ...}
+}
+
+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,
+ -- must be Audio, Video, or Data capabilities, not derived
+ -- capabilities; redundancy order is inferred from number of
+ -- secondary encodings
+ ...
+}
+
+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
+
+ -- ITU-T Rec. H.323
+ centralizedAudio BOOLEAN,
+ distributedAudio BOOLEAN,
+ centralizedVideo BOOLEAN,
+ distributedVideo BOOLEAN,
+ centralizedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ distributedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ -- for further study in
+ -- ITU-T Rec. H.323
+ ...
+}
+
+-- =============================================================================
+-- Capability exchange definitions: Video capabilities
+-- =============================================================================
+VideoCapability ::= CHOICE {
+ nonStandard NonStandardParameter,
+ h261VideoCapability H261VideoCapability,
+ h262VideoCapability H262VideoCapability,
+ h263VideoCapability H263VideoCapability,
+ is11172VideoCapability IS11172VideoCapability,
+ ...,
+ genericVideoCapability GenericCapability,
+ extendedVideoCapability ExtendedVideoCapability
+}
+
+ExtendedVideoCapability ::= SEQUENCE {
+ videoCapability SEQUENCE OF VideoCapability,
+ videoCapabilityExtension SEQUENCE OF GenericCapability OPTIONAL,
+ ...
+}
+
+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/H.261
+ ...,
+ videoBadMBsCap BOOLEAN
+}
+
+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 16 384 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/s
+ ...,
+ videoBadMBsCap BOOLEAN
+}
+
+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 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,
+ 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,
+ ...,
+ videoBadMBsCap BOOLEAN,
+ h263Version3Options H263Version3Options
+}
+
+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,
+ ...},
+ ...,
+ enhancedReferencePicSelect
+ SEQUENCE {subPictureRemovalParameters
+ SEQUENCE {mpuHorizMBs INTEGER(1..128),
+ mpuVertMBs INTEGER(1..72),
+ mpuTotalNumber INTEGER(1..65536),
+ ...} OPTIONAL,
+ ...}
+}
+
+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,
+ ...,
+ enhancedReferencePicSelect BOOLEAN,
+ h263Version3Options H263Version3Options
+}
+
+H263Version3Options ::= SEQUENCE {
+ dataPartitionedSlices BOOLEAN,
+ fixedPointIDCT0 BOOLEAN,
+ interlacedFields BOOLEAN,
+ currentPictureHeaderRepetition BOOLEAN,
+ previousPictureHeaderRepetition BOOLEAN,
+ nextPictureHeaderRepetition BOOLEAN,
+ pictureNumber BOOLEAN,
+ spareReferencePictures BOOLEAN,
+ ...
+}
+
+IS11172VideoCapability ::= SEQUENCE {
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16 384 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/s
+ ...,
+ videoBadMBsCap BOOLEAN
+}
+
+-- =============================================================================
+-- 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,
+ genericAudioCapability GenericCapability,
+ g729Extensions G729Extensions,
+ vbd VBDCapability,
+ audioTelephonyEvent NoPTAudioTelephonyEventCapability,
+ audioTone NoPTAudioToneCapability
+}
+
+G729Extensions ::= SEQUENCE {
+ audioUnit INTEGER(1..256) OPTIONAL,
+ annexA BOOLEAN,
+ annexB BOOLEAN,
+ annexD BOOLEAN,
+ annexE BOOLEAN,
+ annexF BOOLEAN,
+ annexG BOOLEAN,
+ annexH BOOLEAN,
+ ...
+}
+
+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,
+ ...
+}
+
+VBDCapability ::= SEQUENCE {type AudioCapability, -- shall not be "vbd"
+ ...
+}
+
+-- =============================================================================
+-- 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,
+ t38fax
+ SEQUENCE {t38FaxProtocol DataProtocolCapability,
+ t38FaxProfile T38FaxProfile},
+ genericDataCapability GenericCapability},
+ maxBitRate INTEGER(0..4294967295), -- units 100 bit/s
+ ...
+}
+
+DataProtocolCapability ::= CHOICE {
+ nonStandard NonStandardParameter,
+ v14buffered NULL,
+ v42lapm NULL, -- may negotiate to V.42 bis
+ 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,
+ ...},
+ tcp NULL,
+ udp NULL
+}
+
+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,
+ ...}
+}
+
+T38FaxProfile ::= SEQUENCE {
+ fillBitRemoval BOOLEAN,
+ transcodingJBIG BOOLEAN,
+ transcodingMMR BOOLEAN,
+ ...,
+ version INTEGER(0..255),
+ -- Version 0, the default, refers to
+ -- T.38 (2005)
+ t38FaxRateManagement T38FaxRateManagement,
+ -- The default Data Rate Management is
+ -- determined by the choice of
+ -- DataProtocolCapability
+ t38FaxUdpOptions T38FaxUdpOptions OPTIONAL,
+ -- For UDP, t38UDPRedundancy is the default
+ t38FaxTcpOptions T38FaxTcpOptions OPTIONAL
+}
+
+T38FaxRateManagement ::= CHOICE {
+ localTCF NULL,
+ transferredTCF NULL,
+ ...
+}
+
+T38FaxUdpOptions ::= SEQUENCE {
+ t38FaxMaxBuffer INTEGER OPTIONAL,
+ t38FaxMaxDatagram INTEGER OPTIONAL,
+ t38FaxUdpEC
+ CHOICE {t38UDPFEC NULL,
+ t38UDPRedundancy NULL,
+ ...}
+}
+
+T38FaxTcpOptions ::= SEQUENCE {t38TCPBidirectionalMode BOOLEAN,
+ ...
+}
+
+-- =============================================================================
+-- Encryption Capability Definitions
+-- =============================================================================
+EncryptionAuthenticationAndIntegrity ::= SEQUENCE {
+ encryptionCapability EncryptionCapability OPTIONAL,
+ authenticationCapability AuthenticationCapability OPTIONAL,
+ integrityCapability IntegrityCapability OPTIONAL,
+ ...,
+ genericH235SecurityCapability GenericCapability 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,
+ ...,
+ antiSpamAlgorithm OBJECT IDENTIFIER 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
+ ...,
+ extendedAlphanumeric NULL,
+ encryptedBasicString NULL, -- encrypted Basic string in
+
+ -- encryptedAlphanumeric
+ encryptedIA5String NULL, -- encrypted IA5 string in
+
+ -- encryptedSignalType
+ encryptedGeneralString NULL, -- encrypted general string in
+
+ -- extendedAlphanumeric.encryptedalphanumeric
+ secureDTMF NULL, -- secure DTMF using encryptedSignalType
+ genericUserInputCapability GenericCapability
+}
+
+-- =============================================================================
+-- Capability Exchange Definitions: Conference
+-- =============================================================================
+ConferenceCapability ::= SEQUENCE {
+ nonStandardData
+ SEQUENCE OF NonStandardParameter OPTIONAL,
+ chairControlCapability BOOLEAN,
+ ...,
+ videoIndicateMixingCapability BOOLEAN,
+ multipointVisualizationCapability BOOLEAN OPTIONAL -- same as H.230 MVC
+}
+
+-- =============================================================================
+-- Capability Exchange Definitions: Generic Capability
+-- =============================================================================
+GenericCapability ::= SEQUENCE {
+ capabilityIdentifier CapabilityIdentifier,
+ maxBitRate INTEGER(0..4294967295) OPTIONAL,
+ -- Units 100 bit/s
+ collapsing SEQUENCE OF GenericParameter OPTIONAL,
+ nonCollapsing SEQUENCE OF GenericParameter OPTIONAL,
+ nonCollapsingRaw OCTET STRING OPTIONAL,
+ -- Typically contains ASN.1
+ -- PER encoded data describing capability
+ transport DataProtocolCapability OPTIONAL,
+ ...
+}
+
+CapabilityIdentifier ::= CHOICE {
+ standard OBJECT IDENTIFIER,
+ -- e.g., { itu-t (0) recommendation (0) h (8) 267
+ -- version (0) 2 subIdentifier (0)}
+ h221NonStandard NonStandardParameter,
+ uuid OCTET STRING(SIZE (16)),
+ domainBased IA5String(SIZE (1..64)),
+ ...
+}
+
+-- NOTE - The ranges of parameter values have been selected to ensure that the
+-- GenericParameter preamble, standard part of ParameterIdentifier and the
+-- encoding of that choice, and the preamble of ParameterValue to fit into
+-- 2 octets.
+GenericParameter ::= SEQUENCE {
+ parameterIdentifier ParameterIdentifier,
+ parameterValue ParameterValue,
+ supersedes SEQUENCE OF ParameterIdentifier OPTIONAL,
+ ...
+}
+
+ParameterIdentifier ::= CHOICE {
+ standard INTEGER(0..127), -- Assigned by
+
+ -- Capability
+ -- specifications
+ h221NonStandard NonStandardParameter, -- N.B.
+
+ -- NonStandardIdentifier
+ -- is not sufficient in
+ -- this case
+ uuid OCTET STRING(SIZE (16)), -- For non-
+
+ -- standard
+ domainBased IA5String(SIZE (1..64)),
+ ...
+}
+
+ParameterValue ::= CHOICE {
+ logical NULL, -- Only acceptable if
+
+ -- all entities
+ -- include this option
+ booleanArray INTEGER(0..255), -- array of 8 logical
+
+ -- types
+ unsignedMin INTEGER(0..65535), -- Look for min
+
+ -- common value
+ unsignedMax INTEGER(0..65535), -- Look for max
+
+ -- common value
+ unsigned32Min INTEGER(0..4294967295), -- Look for min
+
+ -- common value
+ unsigned32Max INTEGER(0..4294967295), -- Look for max
+
+ -- common value
+ octetString OCTET STRING, -- non-collapsing
+
+ -- octet string
+ genericParameter SEQUENCE OF GenericParameter,
+ ...
+}
+
+-- =============================================================================
+-- Capability Exchange Definitions: Multiplexed Stream Capability
+-- =============================================================================
+MultiplexedStreamCapability ::= SEQUENCE {
+ multiplexFormat MultiplexFormat,
+ controlOnMuxStream BOOLEAN,
+ capabilityOnMuxStream SET SIZE (1..256) OF AlternativeCapabilitySet OPTIONAL,
+ ...
+}
+
+MultiplexFormat ::= CHOICE {
+ nonStandard NonStandardParameter,
+ h222Capability H222Capability,
+ h223Capability H223Capability,
+ ...
+}
+
+-- =============================================================================
+-- Capability Exchange Definitions: AudioTelephonyEventCapability and AudioToneCapability
+--==============================================================================
+AudioTelephonyEventCapability ::= SEQUENCE {
+ dynamicRTPPayloadType INTEGER(96..127),
+ audioTelephoneEvent GeneralString, -- As per <list of values>
+
+ -- in RFC 4733
+ ...
+}
+
+AudioToneCapability ::= SEQUENCE {dynamicRTPPayloadType INTEGER(96..127),
+ ...
+}
+
+-- The following definitions are as above but without a Payload Type field.
+NoPTAudioTelephonyEventCapability ::= SEQUENCE {
+ audioTelephoneEvent GeneralString, -- As per <list of values>
+
+ -- in RFC 4733
+ ...
+}
+
+NoPTAudioToneCapability ::= SEQUENCE {...
+}
+
+-- =============================================================================
+-- Capability Exchange Definitions: MultiplePayloadStreamCapability
+-- =============================================================================
+MultiplePayloadStreamCapability ::= SEQUENCE {
+ capabilities SET SIZE (1..256) OF AlternativeCapabilitySet,
+ ...
+}
+
+-- =============================================================================
+-- Capability Exchange Definitions: FECCapability
+-- =============================================================================
+DepFECCapability ::= CHOICE -- Deprecated, do not use
+ {
+ rfc2733
+ SEQUENCE {redundancyEncoding BOOLEAN,
+ separateStream
+ SEQUENCE {separatePort BOOLEAN,
+ samePort BOOLEAN,
+ ...},
+ ...},
+ ...
+}
+
+FECCapability ::= SEQUENCE {
+ protectedCapability CapabilityTableEntryNumber,
+ fecScheme
+ -- identifies encoding scheme -- OBJECT IDENTIFIER OPTIONAL,
+ rfc2733Format
+ CHOICE {rfc2733rfc2198 -- RFC 2198 -- MaxRedundancy,
+ rfc2733sameport -- separate packet, same port -- MaxRedundancy,
+ rfc2733diffport -- separate packet and port -- MaxRedundancy
+ } OPTIONAL,
+ ...
+}
+
+MaxRedundancy ::= INTEGER(1..MAX)
+
+-- =============================================================================
+-- 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 bidirectional 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 bidirectional 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 unidirectional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL,
+ -- for Open responder to establish the stack
+ encryptionSync EncryptionSync OPTIONAL,
+ genericInformation SEQUENCE OF GenericInformation OPTIONAL
+}
+
+-- generic information associated
+-- with the message
+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,
+ multiplexedStream MultiplexedStreamParameter,
+ redundancyEncoding RedundancyEncoding,
+ multiplePayloadStream MultiplePayloadStream,
+ depFec DepFECData, -- Deprecated, do not use
+ fec FECData
+}
+
+H235Media ::= SEQUENCE {
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+ mediaType
+ CHOICE {nonStandard NonStandardParameter,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...,
+ redundancyEncoding RedundancyEncoding,
+ multiplePayloadStream MultiplePayloadStream,
+ depFec DepFECData, -- Deprecated, do not use--
+ fec FECData},
+ ...
+}
+
+MultiplexedStreamParameter ::= SEQUENCE {
+ multiplexFormat MultiplexFormat,
+ controlOnMuxStream BOOLEAN,
+ ...
+}
+
+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
+ -- units octets -- INTEGER(0..16777215)},
+ ...,
+ 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,
+ ...,
+ crc8bit NULL,
+ crc16bit NULL,
+ crc32bit NULL,
+ crcNotUsed NULL},
+ rcpcCodeRate INTEGER(8..32),
+ arqType
+ CHOICE {noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...},
+ alpduInterleaving BOOLEAN,
+ alsduSplitting BOOLEAN,
+ ...,
+ rsCodeCorrection INTEGER(0..127) OPTIONAL
+}
+
+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,
+ ...,
+ crc8bit NULL,
+ crc16bit NULL,
+ crc32bit NULL,
+ crcNotUsed NULL},
+ rcpcCodeRate INTEGER(8..32),
+ arqType
+ CHOICE {noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...},
+ alpduInterleaving BOOLEAN,
+ ...,
+ rsCodeCorrection INTEGER(0..127) OPTIONAL
+}
+
+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
+ ...,
+ -- The sequence below may be used in place of the above secondaryEncoding field
+ rtpRedundancyEncoding
+ SEQUENCE {primary RedundancyEncodingElement OPTIONAL,
+ -- Present when redundancyEncoding
+ -- is selected as the dataType
+ -- in an OpenLogicalChannel or
+ -- as part of a MultiplePayloadSteam
+ secondary SEQUENCE OF RedundancyEncodingElement OPTIONAL,
+ ...} OPTIONAL
+}
+
+RedundancyEncodingElement ::= SEQUENCE {
+ dataType DataType,
+ payloadType INTEGER(0..127) OPTIONAL,
+ ...
+}
+
+MultiplePayloadStream ::= SEQUENCE {
+ elements SEQUENCE OF MultiplePayloadStreamElement,
+ ...
+}
+
+MultiplePayloadStreamElement ::= SEQUENCE {
+ dataType DataType,
+ payloadType INTEGER(0..127) OPTIONAL,
+ ...
+}
+
+DepFECData ::= CHOICE -- Deprecated, do not use
+ {
+ rfc2733
+ SEQUENCE {mode
+ CHOICE {redundancyEncoding NULL,
+ separateStream
+ CHOICE {differentPort
+ SEQUENCE {protectedSessionID
+ INTEGER(1..255),
+ protectedPayloadType
+ INTEGER(0..127) OPTIONAL,
+ ...},
+ samePort
+ SEQUENCE {protectedPayloadType
+ INTEGER(0..127),
+ ...},
+ ...},
+ ...},
+ ...}
+}
+
+FECData ::= CHOICE {
+ rfc2733
+ SEQUENCE {protectedPayloadType INTEGER(0..127),
+ fecScheme OBJECT IDENTIFIER OPTIONAL,
+ pktMode
+ CHOICE {rfc2198coding NULL,
+ rfc2733sameport SEQUENCE {...},
+ rfc2733diffport
+ SEQUENCE {protectedChannel LogicalChannelNumber,
+ ...},
+ ...},
+ ...},
+ ...
+}
+
+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.0
+
+ -- encoded value
+ escrowentry SEQUENCE SIZE (1..256) OF EscrowData OPTIONAL,
+ ...,
+ genericParameter GenericParameter 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 unidirectional 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
+ genericInformation SEQUENCE OF GenericInformation OPTIONAL
+}
+
+-- generic information associated
+-- with the message
+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,
+ securityDenied NULL,
+ qoSControlNotSupported NULL}, -- added for callee to indicate
+
+ -- that requested QoS support cannot be
+ -- supported.
+ ...,
+ genericInformation SEQUENCE OF GenericInformation OPTIONAL
+}
+
+-- generic information associated
+-- with the message
+OpenLogicalChannelConfirm ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...,
+ genericInformation SEQUENCE OF GenericInformation OPTIONAL
+}
+
+-- generic information associated
+-- with the message
+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,
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+CloseLogicalChannel ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ source CHOICE {user NULL,
+ lcse NULL},
+ ...,
+ reason
+ CHOICE {unknown NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...,
+ networkErrorCode INTEGER(0..255)}
+} -- Indicates the error
+
+-- code received from network
+CloseLogicalChannelAck ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelClose ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...,
+ qosCapability QOSCapability OPTIONAL,
+ reason
+ CHOICE {unknown NULL,
+ normal NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...,
+ networkErrorCode INTEGER(0..255)}
+} -- Indicates the error
+
+-- code received from network
+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 -- repeats of type -- INTEGER(1..65535),
+ untilClosingFlag -- used for last element -- NULL}
+}
+
+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
+
+ModeElementType ::= CHOICE {
+ nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ encryptionMode EncryptionMode,
+ ...,
+ h235Mode H235Mode,
+ multiplexedStreamMode MultiplexedStreamParameter,
+ redundancyEncodingDTMode RedundancyEncodingDTMode,
+ multiplePayloadStreamMode MultiplePayloadStreamMode,
+ depFecMode DepFECMode, -- deprecated, do not use
+ fecMode FECMode
+}
+
+ModeElement ::= SEQUENCE {
+ type ModeElementType,
+ h223ModeParameters H223ModeParameters OPTIONAL,
+ ...,
+ v76ModeParameters V76ModeParameters OPTIONAL,
+ h2250ModeParameters H2250ModeParameters OPTIONAL,
+ genericModeParameters GenericCapability OPTIONAL,
+ multiplexedStreamModeParameters MultiplexedStreamModeParameters OPTIONAL,
+ logicalChannelNumber LogicalChannelNumber OPTIONAL
+}
+
+H235Mode ::= SEQUENCE {
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+ mediaMode
+ CHOICE {nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ ...},
+ ...
+}
+
+MultiplexedStreamModeParameters ::= SEQUENCE {
+ logicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RedundancyEncodingDTMode ::= SEQUENCE {
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ primary RedundancyEncodingDTModeElement,
+ secondary SEQUENCE OF RedundancyEncodingDTModeElement,
+ ...
+}
+
+RedundancyEncodingDTModeElement ::= SEQUENCE {
+ type
+ CHOICE {nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ encryptionMode EncryptionMode,
+ h235Mode H235Mode,
+ ...,
+ fecMode FECMode},
+ ...
+}
+
+MultiplePayloadStreamMode ::= SEQUENCE {
+ elements SEQUENCE OF MultiplePayloadStreamElementMode,
+ ...
+}
+
+MultiplePayloadStreamElementMode ::= SEQUENCE {type ModeElementType,
+ ...
+}
+
+DepFECMode ::= CHOICE -- deprecated, do not use
+ {
+ rfc2733Mode
+ SEQUENCE {mode
+ CHOICE {redundancyEncoding NULL,
+ separateStream
+ CHOICE {differentPort
+ SEQUENCE {protectedSessionID
+ INTEGER(1..255),
+ protectedPayloadType
+ INTEGER(0..127) OPTIONAL,
+ ...},
+ samePort
+ SEQUENCE {protectedType ModeElementType,
+ ...},
+ ...},
+ ...},
+ ...},
+ ...
+}
+
+FECMode ::= SEQUENCE {
+ protectedElement ModeElementType,
+ fecScheme -- identifies encoding scheme -- OBJECT IDENTIFIER OPTIONAL,
+ rfc2733Format
+ CHOICE {rfc2733rfc2198 -- RFC 2198 redundancy -- MaxRedundancy,
+ rfc2733sameport -- separate packet, same port -- MaxRedundancy,
+ rfc2733diffport -- separate packet and port -- MaxRedundancy
+ } OPTIONAL,
+ ...
+}
+
+H223ModeParameters ::= SEQUENCE {
+ adaptationLayerType
+ CHOICE {nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3
+ SEQUENCE {controlFieldOctets INTEGER(0..2),
+ sendBufferSize
+ -- units octets -- INTEGER(0..16777215)},
+ ...,
+ 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,
+ ...,
+ genericVideoMode GenericCapability
+}
+
+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 400 bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16 384 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/s
+ ...
+}
+
+H263VideoMode ::= SEQUENCE {
+ resolution
+ CHOICE {sqcif NULL,
+ qcif NULL,
+ cif NULL,
+ cif4 NULL,
+ cif16 NULL,
+ ...,
+ custom 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
+
+ -- 400 bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units
+
+ -- 16 384 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/s
+ ...
+}
+
+-- =============================================================================
+-- 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,
+ genericAudioMode GenericCapability,
+ g729Extensions G729Extensions,
+ vbd VBDMode
+}
+
+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--
+ ...},
+ ...
+}
+
+VBDMode ::= SEQUENCE {type AudioMode, -- shall not be "vbd"
+ ...
+}
+
+-- =============================================================================
+-- 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,
+ t38fax
+ SEQUENCE {t38FaxProtocol DataProtocolCapability,
+ t38FaxProfile T38FaxProfile},
+ genericDataMode GenericCapability},
+ 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 (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, -- same 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, -- similar to H.230 MVA--
+ deniedBroadcastMyLogicalChannel NULL, -- similar to H.230 MVR--
+ ...},
+ 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,
+ ...},
+ ...
+}
+
+-- =============================================================================
+-- Multilink definitions
+-- =============================================================================
+MultilinkRequest ::= CHOICE {
+ nonStandard NonStandardMessage,
+ callInformation
+ SEQUENCE {maxNumberOfAdditionalConnections INTEGER(1..65535),
+ ...},
+ addConnection
+ SEQUENCE {sequenceNumber SequenceNumber, -- Unique ID of request--
+ dialingInformation DialingInformation,
+ ...},
+ removeConnection
+ SEQUENCE {connectionIdentifier ConnectionIdentifier,
+ ...},
+ maximumHeaderInterval
+ SEQUENCE {requestType
+ CHOICE {currentIntervalInformation NULL,
+ requestedInterval INTEGER(0..65535), -- Max Header --
+ -- Interval,
+ -- milliseconds
+ ...},
+ ...},
+ ...
+}
+
+MultilinkResponse ::= CHOICE {
+ nonStandard NonStandardMessage,
+ callInformation
+ SEQUENCE {dialingInformation DialingInformation,
+ callAssociationNumber INTEGER(0..4294967295),
+ ...},
+ addConnection
+ SEQUENCE {sequenceNumber SequenceNumber, -- Equal to value in request--
+ responseCode
+ CHOICE {accepted NULL,
+ rejected
+ CHOICE {connectionsNotAvailable NULL, -- due to any technical reason--
+ userRejected NULL,
+ ...},
+ ...},
+ ...},
+ removeConnection
+ SEQUENCE {connectionIdentifier ConnectionIdentifier,
+ ...},
+ maximumHeaderInterval
+ SEQUENCE {currentInterval INTEGER(0..65535), -- Max Header --
+ -- Interval,
+ -- milliseconds
+ ...},
+ ...
+}
+
+MultilinkIndication ::= CHOICE {
+ nonStandard NonStandardMessage,
+ crcDesired SEQUENCE {...},
+ excessiveError SEQUENCE {connectionIdentifier ConnectionIdentifier,
+ ...},
+ ...
+}
+
+DialingInformation ::= CHOICE {
+ nonStandard NonStandardMessage,
+ differential SET SIZE (1..65535) OF DialingInformationNumber,
+ -- list of numbers for all additional
+ -- channels; only least significant digits
+ -- different from initial channel's number
+ infoNotAvailable INTEGER(1..65535), -- maximum No. of
+
+ -- additional channels
+ ...
+}
+
+DialingInformationNumber ::= SEQUENCE {
+ networkAddress NumericString(SIZE (0..40)),
+ subAddress IA5String(SIZE (1..40)) OPTIONAL,
+ networkType SET SIZE (1..255) OF DialingInformationNetworkType,
+ ...
+}
+
+DialingInformationNetworkType ::= CHOICE {
+ nonStandard NonStandardMessage,
+ n-isdn NULL,
+ gstn NULL,
+ ...,
+ mobile NULL
+}
+
+ConnectionIdentifier ::= SEQUENCE {
+ channelTag INTEGER(0..4294967295), -- from H.226
+ sequenceNumber INTEGER(0..4294967295), -- from H.226
+ ...
+}
+
+-- =============================================================================
+-- Logical channel bit-rate change definitions
+-- =============================================================================
+MaximumBitRate ::= INTEGER(0..4294967295) -- units of 100 bit/s
+
+
+LogicalChannelRateRequest ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ logicalChannelNumber LogicalChannelNumber,
+ maximumBitRate MaximumBitRate,
+ ...
+}
+
+LogicalChannelRateAcknowledge ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ logicalChannelNumber LogicalChannelNumber,
+ maximumBitRate MaximumBitRate,
+ ...
+}
+
+LogicalChannelRateReject ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ logicalChannelNumber LogicalChannelNumber,
+ rejectReason LogicalChannelRateRejectReason,
+ currentMaximumBitRate MaximumBitRate OPTIONAL,
+ ...
+}
+
+LogicalChannelRateRejectReason ::= CHOICE {
+ undefinedReason NULL,
+ insufficientResources NULL,
+ ...
+}
+
+LogicalChannelRateRelease ::= SEQUENCE {...
+}
+
+-- =============================================================================
+-- 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,
+ ...},
+ genericInformation SEQUENCE OF GenericInformation
+}
+
+-- generic information associated
+-- with the message
+-- =============================================================================
+-- 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
+-- =============================================================================
+EncryptionUpdateDirection ::= CHOICE {
+ masterToSlave NULL,
+ slaveToMaster NULL,
+ ...
+}
+
+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,
+ videoBadMBs
+ SEQUENCE {firstMB INTEGER(1..9216),
+ numberOfMBs INTEGER(1..9216),
+ temporalReference INTEGER(0..1023),
+ ...},
+ lostPicture SEQUENCE OF PictureReference,
+ lostPartialPicture
+ SEQUENCE {pictureReference PictureReference,
+ firstMB INTEGER(1..9216),
+ numberOfMBs INTEGER(1..9216),
+ ...},
+ recoveryReferencePicture SEQUENCE OF PictureReference,
+ encryptionUpdateCommand
+ SEQUENCE-- for ack'ed key update in H.235V3-- {encryptionSync
+
+ EncryptionSync,
+ multiplePayloadStream
+
+ MultiplePayloadStream
+ OPTIONAL,
+ ...},
+ encryptionUpdateAck
+ SEQUENCE {synchFlag INTEGER(0..255),
+ ...}},
+ ...,
+ direction EncryptionUpdateDirection OPTIONAL
+}
+
+KeyProtectionMethod ::=
+ SEQUENCE -- specify how the new
+
+ -- key is to be protected
+ {
+ secureChannel BOOLEAN,
+ sharedSecret BOOLEAN,
+ certProtectedKey BOOLEAN,
+ ...
+}
+
+EncryptionUpdateRequest ::= SEQUENCE {
+ keyProtectionMethod KeyProtectionMethod OPTIONAL,
+ ...,
+ synchFlag INTEGER(0..255) OPTIONAL
+}
+
+PictureReference ::= CHOICE {
+ pictureNumber INTEGER(0..1023),
+ longTermPictureIndex INTEGER(0..255),
+ ...
+}
+
+-- =============================================================================
+-- Command Message: H.223 Multiplex Reconfiguration
+-- =============================================================================
+H223MultiplexReconfiguration ::= CHOICE {
+ h223ModeChange
+ CHOICE {toLevel0 NULL,
+ toLevel1 NULL,
+ toLevel2 NULL,
+ toLevel2withOptionalHeader NULL,
+ ...},
+ h223AnnexADoubleFlag CHOICE {start NULL,
+ stop NULL,
+ ...},
+ ...
+}
+
+-- =============================================================================
+-- Command Message: New ATM virtual channel command
+-- =============================================================================
+NewATMVCCommand ::= 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,
+ ...},
+ ...},
+ ...
+}
+
+-- =============================================================================
+-- Command Message: Mobile Multilink Reconfiguration command
+-- =============================================================================
+MobileMultilinkReconfigurationCommand ::= SEQUENCE {
+ sampleSize INTEGER(1..255),
+ samplesPerFrame INTEGER(1..255),
+ status CHOICE {synchronized NULL,
+ reconfiguration 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
+ terminalYouAreSeeingInSubPictureNumber
+ TerminalYouAreSeeingInSubPictureNumber,
+ videoIndicateCompose VideoIndicateCompose,
+ masterMCU NULL, -- same as H.230 MIM
+ cancelMasterMCU -- same as H.230 cancel MIM -- NULL
+}
+
+TerminalYouAreSeeingInSubPictureNumber ::= SEQUENCE {
+ terminalNumber TerminalNumber,
+ subPictureNumber INTEGER(0..255),
+ ...,
+ mcuNumber McuNumber
+}
+
+VideoIndicateCompose ::= SEQUENCE {compositionNumber INTEGER(0..255),
+ ...
+}
+
+-- =============================================================================
+-- 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
+-- =============================================================================
+IV8 ::= OCTET STRING(SIZE (8))
+
+-- initial value for
+-- 64-bit block ciphers
+IV16 ::= OCTET STRING(SIZE (16))
+
+-- initial value for
+-- 128-bit block ciphers
+Params ::= SEQUENCE {
+ iv8 IV8 OPTIONAL, -- 8-octet initialization vector
+ iv16 IV16 OPTIONAL, -- 16-octet initialization vector
+ iv OCTET STRING OPTIONAL, -- arbitrary length
+
+ -- initialization vector
+ ...
+}
+
+UserInputIndication ::= CHOICE {
+ nonStandard NonStandardParameter,
+ alphanumeric GeneralString,
+ ...,
+ userInputSupportIndication
+ CHOICE {nonStandard NonStandardParameter,
+ basicString NULL, -- indicates unsecured basic string--
+ iA5String NULL, -- indicates unsecured IA5 string--
+ generalString NULL, -- indicates unsecured general string--
+ ...,
+ encryptedBasicString NULL, -- indicates encrypted Basic string--
+ encryptedIA5String NULL, -- indicates encrypted IA5 string--
+ encryptedGeneralString NULL -- indicates encrypted general string
+ },
+ signal
+ SEQUENCE {signalType
+ IA5String(SIZE (1) ^ FROM ("0123456789#*ABCD!")),
+ -- holds dummy "!" if encryptedSignalType
+ -- is being used
+ duration INTEGER(1..65535) OPTIONAL,
+ -- milliseconds
+ rtp
+ SEQUENCE {timestamp INTEGER(0..4294967295) OPTIONAL,
+ expirationTime INTEGER(0..4294967295) OPTIONAL,
+ logicalChannelNumber LogicalChannelNumber,
+ ...} OPTIONAL,
+ ...,
+ rtpPayloadIndication NULL OPTIONAL,
+ paramS Params OPTIONAL, -- any "runtime" parameters--
+ encryptedSignalType OCTET STRING(SIZE (1)) OPTIONAL,
+ -- encrypted signalType
+ algorithmOID OBJECT IDENTIFIER OPTIONAL},
+ signalUpdate
+ SEQUENCE {duration INTEGER(1..65535), -- milliseconds--
+ rtp
+ SEQUENCE {logicalChannelNumber LogicalChannelNumber,
+ ...} OPTIONAL,
+ ...},
+ extendedAlphanumeric
+ SEQUENCE {alphanumeric GeneralString, -- holds empty string if--
+ -- encryptedAlphanumeric is
+ -- being used
+ rtpPayloadIndication NULL OPTIONAL,
+ ...,
+ encryptedAlphanumeric
+ SEQUENCE {algorithmOID OBJECT IDENTIFIER,
+ paramS Params OPTIONAL, -- any "runtime" parameters--
+ encrypted OCTET STRING, -- general string encrypted--
+ ...} OPTIONAL},
+ encryptedAlphanumeric
+ SEQUENCE {algorithmOID OBJECT IDENTIFIER,
+ paramS Params OPTIONAL, -- any "runtime" parameters--
+ encrypted OCTET STRING, -- basic string encrypted--
+ ...},
+ genericInformation SEQUENCE OF GenericInformation
+}
+
+-- generic information associated
+-- with the message
+-- =============================================================================
+-- Indication Message: Flow Control
+-- =============================================================================
+FlowControlIndication ::= SEQUENCE {
+ scope
+ CHOICE {logicalChannelNumber LogicalChannelNumber,
+ resourceID INTEGER(0..65535),
+ wholeMultiplex NULL},
+ restriction
+ CHOICE {maximumBitRate INTEGER(0..16777215), -- units 100 bit/s--
+ noRestriction NULL},
+ ...
+}
+
+-- =============================================================================
+-- Indication Message: Mobile Multilink Reconfiguration indication
+-- =============================================================================
+MobileMultilinkReconfigurationIndication ::= SEQUENCE {
+ sampleSize INTEGER(1..255),
+ samplesPerFrame INTEGER(1..255),
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h245/Makefile.am b/epan/dissectors/asn1/h245/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h245/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h245/Makefile.common b/epan/dissectors/asn1/h245/Makefile.common
new file mode 100644
index 0000000000..5f8202bd9e
--- /dev/null
+++ b/epan/dissectors/asn1/h245/Makefile.common
@@ -0,0 +1,44 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = h245
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ MULTIMEDIA-SYSTEM-CONTROL.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/h245/Makefile.nmake b/epan/dissectors/asn1/h245/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/h245/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/h245/h245.cnf b/epan/dissectors/asn1/h245/h245.cnf
new file mode 100644
index 0000000000..35d642f1cf
--- /dev/null
+++ b/epan/dissectors/asn1/h245/h245.cnf
@@ -0,0 +1,1408 @@
+# H.245 conformation file
+# Copyright 2005 Anders Broman anders.broman[at]ericsson.com
+#----------------------------------------------------------------------------------------
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.MODULE_EXPORTS
+T38FaxProfile
+DataProtocolCapability NO_PROT_PREFIX
+OpenLogicalChannel
+QOSCapability
+H223Capability EXTERN WS_DLL
+H223LogicalChannelParameters
+TransportAddress
+UnicastAddress
+MulticastAddress
+Capability
+#.END
+
+#.PDU
+OpenLogicalChannel
+
+#.MAKE_ENUM
+RequestMessage TYPE_PREFIX
+ResponseMessage TYPE_PREFIX
+CommandMessage TYPE_PREFIX
+IndicationMessage TYPE_PREFIX
+
+AudioCapability TYPE_PREFIX
+#.END
+
+#----------------------------------------------------------------------------------------
+
+#.VIRTUAL_ASSGN
+G723AnnexCAudioMode G7231AnnexCCapability/g723AnnexCAudioMode G7231AnnexCMode/g723AnnexCAudioMode
+Application DataApplicationCapability/application
+Nlpid Application/nlpid DataMode/application/nlpid
+Al3 H223LogicalChannelParameters/adaptationLayerType/al3 H223ModeParameters/adaptationLayerType/al3
+ArqType H223AL1MParameters/arqType H223AL3MParameters/arqType
+Restriction FlowControlCommand/restriction FlowControlIndication/restriction
+Scope FlowControlCommand/scope FlowControlIndication/scope JitterIndication/scope
+EncryptedAlphanumeric UserInputIndication/extendedAlphanumeric/encryptedAlphanumeric UserInputIndication/encryptedAlphanumeric
+
+DepSeparateStream DepFECData/rfc2733/mode/separateStream DepFECMode/rfc2733Mode/mode/separateStream
+
+Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY MultiplexEntryDescriptor
+ /*MultiplexEntryDescriptor*/
+ h223_me = NULL;
+ h223_mc = 0;
+%(DEFAULT_BODY)s
+ if(h223_set_mc_handle)
+ (*h223_set_mc_handle)(%(ACTX)s->pinfo, h223_mc, h223_me, %(ACTX)s->pinfo->ctype, %(ACTX)s->pinfo->circuit_id);
+ /* stuff */
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS MultiplexTableEntryNumber
+ VAL_PTR = &value
+#.FN_BODY MultiplexTableEntryNumber
+ guint32 value;
+%(DEFAULT_BODY)s
+ h223_mc = value & 0xf;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY MultiplexEntryDescriptor/elementList
+ /* create a h223_mux_element to hold onto the head of the list, since
+ * h223_me will track the tail */
+ h223_mux_element dummy_me;
+ memset (&dummy_me, 0, sizeof (h223_mux_element));
+ h223_me = &dummy_me;
+%(DEFAULT_BODY)s
+ /* set h223_me to the head of the list for MEDescriptor to pick up */
+ h223_me = dummy_me.next;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR MultiplexElement
+ /*MultiplexElement*/
+ h223_mux_element* me = wmem_new(wmem_file_scope(), h223_mux_element);
+ h223_me->next = me;
+ h223_me = me;
+ h223_me->next = NULL;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS MultiplexElement/type/logicalChannelNumber
+ VAL_PTR = &value
+#.FN_BODY MultiplexElement/type/logicalChannelNumber
+ /*MultiplexElement/type/logicalChannelNumber*/
+ guint32 value;
+%(DEFAULT_BODY)s
+ h223_me->sublist = NULL;
+ h223_me->vc = value & 0xffff;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY MultiplexElement/type/subElementList
+ h223_mux_element dummy_me, *parent_me = h223_me;
+ memset (&dummy_me, 0, sizeof (h223_mux_element));
+ h223_me = &dummy_me;
+%(DEFAULT_BODY)s
+ parent_me->sublist = dummy_me.next;
+ h223_me = parent_me;
+ h223_me->vc = 0;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR MultiplexElement/repeatCount/untilClosingFlag
+ h223_me->repeat_count = 0;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS MultiplexElement/repeatCount/finite
+ VAL_PTR = &value
+#.FN_BODY MultiplexElement/repeatCount/finite
+ guint32 value;
+%(DEFAULT_BODY)s
+ h223_me->repeat_count = value & 0xffff;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY LogicalChannelNumber VAL_PTR = &value
+ guint32 value;
+%(DEFAULT_BODY)s
+ h245_lc_temp = value & 0xfff;
+#.END
+
+#=== OpenLogicalChannel =================================================================
+#.FN_BODY OpenLogicalChannel
+ gint32 temp;
+
+ upcoming_olc = (!actx->pinfo->fd->flags.visited) ? wmem_new0(wmem_file_scope(), olc_info_t) : NULL;
+
+ h223_fw_lc_num = 0;
+ h223_lc_params_temp = NULL;
+
+%(DEFAULT_BODY)s
+
+ if(h223_fw_lc_num != 0 && h223_fw_lc_params) {
+ h223_pending_olc *pending = wmem_new(wmem_file_scope(), h223_pending_olc);
+ pending->fw_channel_params = h223_fw_lc_params;
+ pending->rev_channel_params = h223_rev_lc_params;
+ temp = h223_fw_lc_num;
+ if (%(ACTX)s->pinfo->p2p_dir > -1)
+ g_hash_table_insert(h223_pending_olc_reqs[%(ACTX)s->pinfo->p2p_dir], GINT_TO_POINTER(temp), pending);
+ }
+
+ if (upcoming_olc) {
+ if (fast_start) {
+ h245_setup_channels(actx->pinfo, &upcoming_olc->rev_lc);
+ } else {
+ g_hash_table_insert(h245_pending_olc_reqs,
+ wmem_strdup(wmem_file_scope(), gen_olc_key(upcoming_olc->fwd_lc_num, &%(ACTX)s->pinfo->dst, &%(ACTX)s->pinfo->src)),
+ upcoming_olc);
+ }
+ }
+ upcoming_olc = NULL;
+
+ if (h245_pi != NULL)
+ h245_pi->msg_type = H245_OpenLogChn;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannel/forwardLogicalChannelNumber
+ if (upcoming_olc) upcoming_olc->fwd_lc_num = h245_lc_temp;
+ h223_fw_lc_num = h245_lc_temp;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY OpenLogicalChannel/forwardLogicalChannelParameters
+
+ upcoming_channel = (upcoming_olc) ? &upcoming_olc->fwd_lc : NULL;
+
+ h245_lc_dissector = NULL;
+%(DEFAULT_BODY)s
+ if(h223_lc_params_temp && h245_lc_dissector)
+ h223_lc_params_temp->subdissector = h245_lc_dissector;
+ else if(h223_lc_params_temp)
+ h223_lc_params_temp->subdissector = data_handle;
+
+ if (upcoming_channel && codec_type) {
+ g_strlcpy(upcoming_channel->data_type_str, codec_type, sizeof(upcoming_channel->data_type_str));
+ }
+ upcoming_channel = NULL;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters
+ h223_fw_lc_params = wmem_new(wmem_file_scope(), h223_lc_params);
+ h223_fw_lc_params->al_type = al_nonStandard;
+ h223_fw_lc_params->al_params = NULL;
+ h223_fw_lc_params->segmentable = 0;
+ h223_fw_lc_params->subdissector = NULL;
+ h223_lc_params_temp = h223_fw_lc_params;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY OpenLogicalChannel/reverseLogicalChannelParameters
+
+ upcoming_channel = (upcoming_olc) ? &upcoming_olc->rev_lc : NULL;
+
+%(DEFAULT_BODY)s
+
+ if (upcoming_channel && codec_type) {
+ g_strlcpy(upcoming_channel->data_type_str, codec_type, sizeof(upcoming_channel->data_type_str));
+ }
+ upcoming_channel = NULL;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters
+ h223_rev_lc_params = wmem_new(wmem_file_scope(), h223_lc_params);
+ h223_rev_lc_params->al_type = al_nonStandard;
+ h223_rev_lc_params->al_params = NULL;
+ h223_rev_lc_params->segmentable = 0;
+ h223_rev_lc_params->subdissector = NULL;
+ h223_lc_params_temp = h223_rev_lc_params;
+#.END
+#========================================================================================
+
+
+#=== OpenLogicalChannelAck ==============================================================
+#.FN_BODY OpenLogicalChannelAck
+ guint32 temp;
+ int p2p_dir;
+ h223_pending_olc *pend;
+ const gchar *olc_key;
+ olc_info_t *olc_req;
+
+ upcoming_olc = (!actx->pinfo->fd->flags.visited) ? wmem_new0(wmem_packet_scope(), olc_info_t) : NULL;
+
+ h223_fw_lc_num = 0;
+ h223_rev_lc_num = 0;
+
+%(DEFAULT_BODY)s
+
+ temp = h223_fw_lc_num;
+ p2p_dir = %(ACTX)s->pinfo->p2p_dir;
+
+ if(%(ACTX)s->pinfo->p2p_dir == P2P_DIR_SENT)
+ %(ACTX)s->pinfo->p2p_dir = P2P_DIR_RECV;
+ else
+ %(ACTX)s->pinfo->p2p_dir = P2P_DIR_SENT;
+ pend = (h223_pending_olc *)g_hash_table_lookup( h223_pending_olc_reqs[%(ACTX)s->pinfo->p2p_dir], GINT_TO_POINTER(temp) );
+ if (pend) {
+ DISSECTOR_ASSERT( ( h223_rev_lc_num && pend->rev_channel_params)
+ || (!h223_rev_lc_num && !pend->rev_channel_params) );
+ if(h223_add_lc_handle) {
+ (*h223_add_lc_handle)( %(ACTX)s->pinfo, h223_fw_lc_num, pend->fw_channel_params, %(ACTX)s->pinfo->ctype, %(ACTX)s->pinfo->circuit_id );
+ if(h223_rev_lc_num)
+ (*h223_add_lc_handle)( %(ACTX)s->pinfo, h223_rev_lc_num, pend->rev_channel_params, %(ACTX)s->pinfo->ctype, %(ACTX)s->pinfo->circuit_id );
+ }
+ } else {
+ /* we missed the OpenLogicalChannel packet */
+ }
+ %(ACTX)s->pinfo->p2p_dir = p2p_dir;
+
+ if (upcoming_olc) {
+ olc_key = gen_olc_key(upcoming_olc->fwd_lc_num, &%(ACTX)s->pinfo->src, &%(ACTX)s->pinfo->dst);
+ olc_req = (olc_info_t *)g_hash_table_lookup(h245_pending_olc_reqs, olc_key);
+ if (olc_req) {
+ update_unicast_addr(&olc_req->fwd_lc.media_addr, &upcoming_olc->fwd_lc.media_addr);
+ update_unicast_addr(&olc_req->fwd_lc.media_control_addr, &upcoming_olc->fwd_lc.media_control_addr);
+ update_unicast_addr(&olc_req->rev_lc.media_addr, &upcoming_olc->rev_lc.media_addr);
+ update_unicast_addr(&olc_req->rev_lc.media_control_addr, &upcoming_olc->rev_lc.media_control_addr);
+ h245_setup_channels(actx->pinfo, &olc_req->fwd_lc);
+ h245_setup_channels(actx->pinfo, &olc_req->rev_lc);
+ g_hash_table_remove(h245_pending_olc_reqs, olc_key);
+ } else {
+ h245_setup_channels(actx->pinfo, &upcoming_olc->fwd_lc);
+ }
+ }
+ upcoming_olc = NULL;
+
+ if (h245_pi != NULL)
+ h245_pi->msg_type = H245_OpenLogChnAck;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannelAck/forwardLogicalChannelNumber
+ if (upcoming_olc) upcoming_olc->fwd_lc_num = h245_lc_temp;
+ h223_fw_lc_num = h245_lc_temp;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY OpenLogicalChannelAck/forwardMultiplexAckParameters
+
+ upcoming_channel = (upcoming_olc) ? &upcoming_olc->fwd_lc : NULL;
+
+%(DEFAULT_BODY)s
+
+ upcoming_channel = NULL;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannelAck/reverseLogicalChannelParameters/reverseLogicalChannelNumber
+ h223_rev_lc_num = h245_lc_temp;
+#.END
+#========================================================================================
+
+#----------------------------------------------------------------------------------------
+#.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al1Framed
+ if(h223_lc_params_temp)
+ h223_lc_params_temp->al_type = al1Framed;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al1NotFramed
+ if(h223_lc_params_temp)
+ h223_lc_params_temp->al_type = al1NotFramed;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al2WithoutSequenceNumbers
+ if(h223_lc_params_temp)
+ h223_lc_params_temp->al_type = al2WithoutSequenceNumbers;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al2WithSequenceNumbers
+ if(h223_lc_params_temp)
+ h223_lc_params_temp->al_type = al2WithSequenceNumbers;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al3
+ if(h223_lc_params_temp) {
+ h223_lc_params_temp->al_type = al3;
+ h223_lc_params_temp->al_params = wmem_new(wmem_file_scope(), h223_al3_params);
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS Al3/controlFieldOctets
+ VAL_PTR = &value
+#.FN_BODY Al3/controlFieldOctets
+ guint32 value;
+%(DEFAULT_BODY)s
+ if(h223_lc_params_temp && h223_lc_params_temp->al_params)
+ ((h223_al3_params*)h223_lc_params_temp->al_params)->control_field_octets = value & 3 ;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS Al3/sendBufferSize
+ VAL_PTR = &value
+#.FN_BODY Al3/sendBufferSize
+ guint32 value;
+%(DEFAULT_BODY)s
+ if(h223_lc_params_temp && h223_lc_params_temp->al_params)
+ ((h223_al3_params*)h223_lc_params_temp->al_params)->send_buffer_size = value & 0xfffff;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al1M
+ if(h223_lc_params_temp)
+ h223_lc_params_temp->al_type = al1M;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al2M
+ if(h223_lc_params_temp)
+ h223_lc_params_temp->al_type = al2M;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al3M
+ if(h223_lc_params_temp)
+ h223_lc_params_temp->al_type = al3M;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_PARS H223LogicalChannelParameters/segmentableFlag
+ VAL_PTR = &value
+#.FN_BODY H223LogicalChannelParameters/segmentableFlag
+ gboolean value;
+%(DEFAULT_BODY)s
+ if(h223_lc_params_temp)
+ h223_lc_params_temp->segmentable = value;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR H263VideoCapability
+ h245_lc_dissector = h263_handle;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY RequestMessage VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ print_info_column(%(ACTX)s->pinfo->cinfo, &value, h245_RequestMessage_vals, h245_RequestMessage_short_vals);
+
+ if (( codec_type != NULL ) && ( value == RequestMessage_openLogicalChannel) ){
+ col_append_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "(%%s) ", codec_type );
+ }
+
+ col_set_fence(%(ACTX)s->pinfo->cinfo,COL_INFO);
+
+ /* Add to packet info */
+ if (h245_pi == NULL)
+ return offset;
+
+ if (strlen(h245_pi->frame_label) == 0)
+ {
+ g_snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(value, h245_RequestMessage_short_vals, "UKN"));
+
+ /* if it is OLC or RM*/
+ if ((codec_type != NULL) && (( value == RequestMessage_openLogicalChannel) || ( value == RequestMessage_requestMode)))
+ {
+ g_strlcat(h245_pi->frame_label, " (", 50);
+ g_strlcat(h245_pi->frame_label, codec_type, 50);
+ g_strlcat(h245_pi->frame_label, ")", 50);
+ }
+ }
+ g_strlcat(h245_pi->comment, val_to_str(value, h245_RequestMessage_vals, "<unknown>"), 50);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY ResponseMessage VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ print_info_column(%(ACTX)s->pinfo->cinfo, &value, h245_ResponseMessage_vals, h245_ResponseMessage_short_vals);
+ col_set_fence(%(ACTX)s->pinfo->cinfo,COL_INFO);
+
+ if (h245_pi != NULL){
+ /* Add to packet info */
+ if ( strlen(h245_pi->frame_label) == 0 ){
+ g_snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(value, h245_ResponseMessage_short_vals, "UKN"));
+ }
+ g_strlcat(h245_pi->comment, val_to_str(value, h245_ResponseMessage_vals, "<unknown>"), 50);
+ }
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY IndicationMessage VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ print_info_column(%(ACTX)s->pinfo->cinfo, &value, h245_IndicationMessage_vals, h245_IndicationMessage_short_vals);
+ col_set_fence(%(ACTX)s->pinfo->cinfo,COL_INFO);
+
+ /* Add to packet info */
+ if (h245_pi !=NULL){
+ if ( strlen(h245_pi->frame_label) == 0 ){
+ g_snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(value, h245_IndicationMessage_short_vals, "UKN"));
+ }
+ g_strlcat(h245_pi->comment, val_to_str(value, h245_IndicationMessage_vals, "<unknown>"), 50);
+
+ }
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY CommandMessage VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ print_info_column(%(ACTX)s->pinfo->cinfo, &value, h245_CommandMessage_vals, h245_CommandMessage_short_vals);
+ col_set_fence(%(ACTX)s->pinfo->cinfo,COL_INFO);
+
+ /* Add to packet info */
+ if (h245_pi != NULL){
+ if ( strlen(h245_pi->frame_label) == 0 ){
+ g_snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(value, h245_CommandMessage_short_vals, "UKN"));
+ }
+ g_strlcat(h245_pi->comment, val_to_str(value, h245_CommandMessage_vals, "<unknown>"), 50);
+ }
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY AudioCapability VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ codec_type = val_to_str(value, h245_AudioCapability_short_vals, "<unknown>");
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY VideoCapability VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ codec_type = val_to_str(value, h245_VideoCapability_vals, "<unknown>");
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY Application VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ codec_type = val_to_str(value, h245_Application_vals, "<unknown>");
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY AudioMode VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ codec_type = val_to_str(value, h245_AudioMode_vals, "<unknown>");
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY VideoMode VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ codec_type = val_to_str(value, h245_VideoMode_vals, "<unknown>");
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY DataMode/application VAL_PTR = &value
+ gint32 value;
+
+%(DEFAULT_BODY)s
+ codec_type = val_to_str(value, h245_DataModeApplication_vals, "<unknown>");
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR MasterSlaveDeterminationAck
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_MastSlvDetAck;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR MasterSlaveDeterminationReject
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_MastSlvDetRjc;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannelReject
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_OpenLogChnRjc;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR CloseLogicalChannel
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_CloseLogChn;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR CloseLogicalChannelAck
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_CloseLogChnAck;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannelConfirm
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_OpenLogChnCnf;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR TerminalCapabilitySetAck
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_TermCapSetAck;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR MasterSlaveDetermination
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_MastSlvDet;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR TerminalCapabilitySetReject
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_TermCapSetRjc;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR MasterSlaveDeterminationRelease
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_MastSlvDetRls;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR TerminalCapabilitySet
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_TermCapSet;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR TerminalCapabilitySetRelease
+
+if (h245_pi != NULL)
+ h245_pi->msg_type = H245_TermCapSetRls;
+#.END
+#----------------------------------------------------------------------------------------
+
+#=== Generic Extensible Framework =======================================================
+
+#.FN_HDR GenericMessage
+ void *priv_data = actx->private_data;
+ gef_ctx_t *gefx;
+
+ /* check if not inherited from GenericInformation */
+ gefx = gef_ctx_get(actx->private_data);
+ if (!gefx) {
+ gefx = gef_ctx_alloc(NULL, "GenericMessage");
+ actx->private_data = gefx;
+ }
+#.FN_FTR
+ actx->private_data = priv_data;
+#.END
+
+#.FN_BODY GenericMessage/subMessageIdentifier VAL_PTR = &subMessageIdentifer
+ guint32 subMessageIdentifer;
+ gef_ctx_t *gefx;
+
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ /* If this is a standard generic message use hf_h245_subMessageIdentifier_standard to get
+ * the value translated and make it fileterable.
+ */
+ if (strcmp("GenericMessage/0.0.8.239.2", gefx->key) == 0) {
+ hf_index = hf_h245_subMessageIdentifier_standard;
+ }
+ }
+
+%(DEFAULT_BODY)s
+ if (gefx) {
+ gefx->subid = wmem_strdup_printf(wmem_packet_scope(), "%%u", subMessageIdentifer);
+ gef_ctx_update_key(gef_ctx_get(actx->private_data));
+ }
+ if (hf_index == hf_h245_subMessageIdentifier_standard)
+ {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s", val_to_str(subMessageIdentifer, h245_h239subMessageIdentifier_vals, "<unknown>") );
+ g_snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(subMessageIdentifer, h245_h239subMessageIdentifier_vals, "<unknown>"));
+ }
+#.END
+
+#.FN_HDR GenericMessage/messageContent/_item
+ gef_ctx_t *parent_gefx;
+
+ parent_gefx = gef_ctx_get(actx->private_data);
+ actx->private_data = gef_ctx_alloc(parent_gefx, NULL);
+#.FN_FTR
+ actx->private_data = parent_gefx;
+#.END
+
+#----------------------------------------------------------------------------------------
+#.FN_HDR GenericInformation
+ void *priv_data = actx->private_data;
+ actx->private_data = gef_ctx_alloc(NULL, "GenericInformation");
+#.FN_FTR
+ actx->private_data = priv_data;
+#.END
+
+#--- GenericCapability ------------------------------------------------------------------
+#.FN_HDR GenericCapability
+ void *priv_data = actx->private_data;
+ actx->private_data = gef_ctx_alloc(NULL, "GenericCapability");
+#.FN_FTR
+ actx->private_data = priv_data;
+#.END
+
+#.FN_HDR GenericCapability/collapsing/_item
+ gef_ctx_t *parent_gefx;
+
+ parent_gefx = gef_ctx_get(actx->private_data);
+ actx->private_data = gef_ctx_alloc(parent_gefx, "collapsing");
+#.FN_FTR
+ actx->private_data = parent_gefx;
+#.END
+
+#.FN_HDR GenericCapability/nonCollapsing/_item
+ gef_ctx_t *parent_gefx;
+
+ parent_gefx = gef_ctx_get(actx->private_data);
+ actx->private_data = gef_ctx_alloc(parent_gefx, "nonCollapsing");
+#.FN_FTR
+ actx->private_data = parent_gefx;
+#.END
+
+#.FN_BODY GenericCapability/nonCollapsingRaw VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb;
+ gef_ctx_t *parent_gefx;
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+ parent_gefx = gef_ctx_get(actx->private_data);
+ actx->private_data = gef_ctx_alloc(parent_gefx, "nonCollapsingRaw");
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, %(ACTX)s);
+ }
+ actx->private_data = parent_gefx;
+#.END
+
+#--- EncryptionSync ---------------------------------------------------------------------
+#.FN_HDR EncryptionSync
+ void *priv_data = actx->private_data;
+ actx->private_data = gef_ctx_alloc(NULL, "EncryptionSync");
+#.FN_FTR
+ actx->private_data = priv_data;
+#.END
+#----------------------------------------------------------------------------------------
+
+#.FN_HDR CapabilityIdentifier
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+#.FN_FTR
+ gef_ctx_update_key(gef_ctx_get(actx->private_data));
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ dissector_try_string(gef_name_dissector_table, gefx->key, tvb_new_subset(tvb, offset>>3, 0, 0), actx->pinfo, tree, actx);
+ }
+ actx->private_data = gefx; /* subdissector could overwrite it */
+#.END
+
+#.FN_BODY CapabilityIdentifier/standard FN_VARIANT = _str VAL_PTR = &standard_oid_str
+ const gchar *standard_oid_str = NULL;
+ gef_ctx_t *gefx;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) gefx->id = standard_oid_str;
+
+ if(strcmp(standard_oid_str,"0.0.8.235.0.3.76") == 0) { /* MIKEY */
+ if (upcoming_channel)
+ upcoming_channel->srtp_flag = TRUE;
+ }
+
+ if(!h245_lc_dissector && strcmp(standard_oid_str,"0.0.8.245.1.1.1") == 0)
+ h245_lc_dissector = amr_handle;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR ParameterIdentifier
+ gef_ctx_t *gefx;
+ proto_item* ti;
+#.FN_FTR
+ gef_ctx_update_key(gef_ctx_get(actx->private_data));
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ dissector_try_string(gef_name_dissector_table, gefx->key, tvb_new_subset(tvb, offset>>3, 0, 0), actx->pinfo, tree, actx);
+ }
+ actx->private_data = gefx; /* subdissector could overwrite it */
+#.END
+
+#.FN_BODY ParameterIdentifier/standard VAL_PTR = &value_int
+ guint32 value_int = (guint32)-1;
+ gef_ctx_t *gefx;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) gefx->id = wmem_strdup_printf(wmem_packet_scope(), "%%d", value_int);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY ParameterValue/booleanArray VAL_PTR = &value
+ guint32 value;
+ guint8 *buf;
+ tvbuff_t *value_tvb;
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ buf = wmem_new(actx->pinfo->pool, guint8);
+ buf[0] = value;
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint8), sizeof(guint8));
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ add_new_data_source(%(ACTX)s->pinfo, value_tvb, "booleanArray");
+ dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, %(ACTX)s);
+ }
+#.END
+#.FN_BODY ParameterValue/unsignedMin VAL_PTR = &value
+ guint32 value;
+ guint8 *buf;
+ tvbuff_t *value_tvb;
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ buf = (guint8 *)wmem_new(actx->pinfo->pool, guint16);
+ phton16(buf, value);
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint16), sizeof(guint16));
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ add_new_data_source(%(ACTX)s->pinfo, value_tvb, "unsignedMin");
+ dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, %(ACTX)s);
+ }
+#.END
+#.FN_BODY ParameterValue/unsignedMax VAL_PTR = &value
+ guint32 value;
+ guint8 *buf;
+ tvbuff_t *value_tvb;
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ buf = (guint8 *)wmem_new(actx->pinfo->pool, guint16);
+ phton16(buf, value);
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint16), sizeof(guint16));
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ add_new_data_source(%(ACTX)s->pinfo, value_tvb, "unsignedMax");
+ dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, %(ACTX)s);
+ }
+#.END
+#.FN_BODY ParameterValue/unsigned32Min VAL_PTR = &value
+ guint32 value;
+ guint8 *buf;
+ tvbuff_t *value_tvb;
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ buf = (guint8 *)wmem_new(actx->pinfo->pool, guint32);
+ phton32(buf, value);
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint32), sizeof(guint32));
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ add_new_data_source(%(ACTX)s->pinfo, value_tvb, "unsigned32Min");
+ dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, %(ACTX)s);
+ }
+#.END
+#.FN_BODY ParameterValue/unsigned32Max VAL_PTR = &value
+ guint32 value;
+ guint8 *buf;
+ tvbuff_t *value_tvb;
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ buf = (guint8 *)wmem_new(actx->pinfo->pool, guint32);
+ phton32(buf, value);
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint32), sizeof(guint32));
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ add_new_data_source(%(ACTX)s->pinfo, value_tvb, "unsigned32Max");
+ dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, %(ACTX)s);
+ }
+#.END
+#.FN_BODY ParameterValue/octetString VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb;
+ gef_ctx_t *gefx;
+ proto_item* ti;
+
+%(DEFAULT_BODY)s
+ gefx = gef_ctx_get(actx->private_data);
+ if (gefx) {
+ ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, %(ACTX)s);
+ }
+#.END
+
+#=== end of GEF =========================================================================
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY UnicastAddress/iPAddress/network VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (upcoming_channel && upcoming_channel->upcoming_addr) {
+ tvb_memcpy(value_tvb, upcoming_channel->upcoming_addr->addr_buf, 0, 4);
+ set_address(&upcoming_channel->upcoming_addr->addr, AT_IPv4, 4, upcoming_channel->upcoming_addr->addr_buf);
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY UnicastAddress/iPAddress/tsapIdentifier VAL_PTR = &tsapIdentifier
+ guint32 tsapIdentifier;
+
+%(DEFAULT_BODY)s
+
+ if (upcoming_channel && upcoming_channel->upcoming_addr) {
+ upcoming_channel->upcoming_addr->port = tsapIdentifier;
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY UnicastAddress/iP6Address/network VAL_PTR = &value_tvb
+ tvbuff_t *value_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (upcoming_channel && upcoming_channel->upcoming_addr) {
+ tvb_memcpy(value_tvb, upcoming_channel->upcoming_addr->addr_buf, 0, 16);
+ set_address(&upcoming_channel->upcoming_addr->addr, AT_IPv6, 16, upcoming_channel->upcoming_addr->addr_buf);
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY UnicastAddress/iP6Address/tsapIdentifier VAL_PTR = &tsapIdentifier
+ guint32 tsapIdentifier;
+
+%(DEFAULT_BODY)s
+
+ if (upcoming_channel && upcoming_channel->upcoming_addr) {
+ upcoming_channel->upcoming_addr->port = tsapIdentifier;
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H2250LogicalChannelAckParameters/mediaChannel
+ if (upcoming_channel)
+ upcoming_channel->upcoming_addr = &upcoming_channel->media_addr;
+#.END
+#.FN_FTR H2250LogicalChannelAckParameters/mediaChannel
+ if (upcoming_channel)
+ upcoming_channel->upcoming_addr = NULL;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H2250LogicalChannelParameters/mediaChannel
+ if (upcoming_channel)
+ upcoming_channel->upcoming_addr = &upcoming_channel->media_addr;
+#.END
+#.FN_FTR H2250LogicalChannelParameters/mediaChannel
+ if (upcoming_channel)
+ upcoming_channel->upcoming_addr = NULL;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H2250LogicalChannelAckParameters/mediaControlChannel
+ if (upcoming_channel)
+ upcoming_channel->upcoming_addr = &upcoming_channel->media_control_addr;
+#.END
+#.FN_FTR H2250LogicalChannelAckParameters/mediaControlChannel
+ if (upcoming_channel)
+ upcoming_channel->upcoming_addr = NULL;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H2250LogicalChannelParameters/mediaControlChannel
+ if (upcoming_channel)
+ upcoming_channel->upcoming_addr = &upcoming_channel->media_control_addr;
+#.END
+#.FN_FTR H2250LogicalChannelParameters/mediaControlChannel
+ if (upcoming_channel)
+ upcoming_channel->upcoming_addr = NULL;
+#.END
+
+#--- RTPPayloadType ---------------------------------------------------------------------
+#.FN_HDR RTPPayloadType
+ rfc_number = 0;
+#.END
+
+#.FN_PARS RTPPayloadType/payloadDescriptor/rfc-number
+ VAL_PTR = &rfc_number
+#.END
+
+#.FN_BODY RTPPayloadType/payloadType VAL_PTR = &pt
+ unsigned int pt;
+
+%(DEFAULT_BODY)s
+
+ if ((rfc_number == 2198) && upcoming_channel) {
+ upcoming_channel->rfc2198 = pt;
+ }
+#.END
+
+#--- NonStandardParameter ---------------------------------------------------------------
+
+#.FN_PARS
+NonStandardIdentifier/object FN_VARIANT = _str VAL_PTR = &nsiOID
+#.END
+#.FN_BODY NonStandardIdentifier VAL_PTR = &value
+ gint32 value;
+
+ nsiOID = "";
+ h221NonStandard = 0;
+
+%(DEFAULT_BODY)s
+ switch (value) {
+ case 0 : /* object */
+ nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID);
+ break;
+ case 1 : /* h221NonStandard */
+ nsp_handle = dissector_get_uint_handle(nsp_h221_dissector_table, h221NonStandard);
+ break;
+ default :
+ nsp_handle = NULL;
+ }
+#.END
+
+#.FN_HDR NonStandardIdentifier/h221NonStandard
+ t35CountryCode = 0;
+ t35Extension = 0;
+ manufacturerCode = 0;
+#.FN_FTR NonStandardIdentifier/h221NonStandard
+ h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
+ proto_tree_add_uint(tree, hf_h245Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
+#.FN_PARS
+NonStandardIdentifier/h221NonStandard/t35CountryCode VAL_PTR = &t35CountryCode
+NonStandardIdentifier/h221NonStandard/t35Extension VAL_PTR = &t35Extension
+NonStandardIdentifier/h221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode
+#.END
+
+#.FN_HDR NonStandardParameter
+ nsp_handle = NULL;
+#.FN_BODY NonStandardParameter/data VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ if (next_tvb && tvb_reported_length(next_tvb)) {
+ call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, %(ACTX)s->pinfo, tree);
+ }
+#.END
+
+#.FN_BODY FunctionNotSupported/returnedFunction VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+ proto_item *item;
+ proto_tree *subtree;
+ h245_packet_info *saved_h245_pi;
+
+%(DEFAULT_BODY)s
+
+ if (next_tvb && tvb_reported_length(next_tvb)) {
+ saved_h245_pi = h245_pi;
+ h245_pi = NULL;
+ subtree = proto_tree_add_subtree(tree, next_tvb, 0, -1, ett_h245_returnedFunction, &item, "The returned function");
+ PROTO_ITEM_SET_GENERATED(item);
+ dissect_h245_MultimediaSystemControlMessage(next_tvb, 0, actx, subtree, hf_h245_pdu_type);
+ h245_pi = saved_h245_pi;
+ }
+
+#.FN_BODY DataType VAL_PTR = &choice_index
+gint choice_index;
+
+%(DEFAULT_BODY)s
+
+if (upcoming_channel){
+ if (choice_index==2){
+ upcoming_channel->is_video=TRUE;
+ }else{
+ upcoming_channel->is_video=FALSE;
+ }
+}
+
+#----------------------------------------------------------------------------------------
+#.TYPE_RENAME
+
+NewATMVCCommand/aal Cmd_aal
+NewATMVCCommand/aal/aal1 Cmd_aal1
+NewATMVCCommand/aal/aal5 Cmd_aal5
+NewATMVCCommand/aal/aal1/clockRecovery Cmd_clockRecovery
+NewATMVCCommand/aal/aal1/errorCorrection Cmd_errorCorrection
+NewATMVCCommand/multiplex Cmd_multiplex
+NewATMVCCommand/reverseParameters Cmd_reverseParameters
+NewATMVCCommand/reverseParameters/multiplex CmdR_multiplex
+
+NewATMVCIndication/aal Ind_aal
+NewATMVCIndication/aal/aal1 Ind_aal1
+NewATMVCIndication/aal/aal5 Ind_aal5
+NewATMVCIndication/aal/aal1/clockRecovery Ind_clockRecovery
+NewATMVCIndication/aal/aal1/errorCorrection Ind_errorCorrection
+NewATMVCIndication/multiplex Ind_multiplex
+NewATMVCIndication/reverseParameters Ind_reverseParameters
+NewATMVCIndication/reverseParameters/multiplex IndR_multiplex
+
+MultilinkRequest/callInformation CallInformationReq
+MultilinkRequest/addConnection AddConnectionReq
+MultilinkRequest/removeConnection RemoveConnectionReq
+MultilinkRequest/maximumHeaderInterval MaximumHeaderIntervalReq
+
+MultilinkResponse/callInformation CallInformationResp
+MultilinkResponse/addConnection AddConnectionResp
+MultilinkResponse/removeConnection RemoveConnectionResp
+MultilinkResponse/maximumHeaderInterval MaximumHeaderIntervalResp
+
+MasterSlaveDeterminationReject/cause MasterSlaveDeterminationRejectCause
+TerminalCapabilitySetReject/cause TerminalCapabilitySetRejectCause
+OpenLogicalChannelReject/cause OpenLogicalChannelRejectCause
+RequestChannelCloseReject/cause RequestChannelCloseRejectCause
+MultiplexEntryRejectionDescriptions/cause MultiplexEntryRejectionDescriptionsCause
+RequestMultiplexEntryRejectionDescriptions/cause RequestMultiplexEntryRejectionDescriptionsCause
+RequestModeReject/cause RequestModeRejectCause
+MaintenanceLoopReject/cause MaintenanceLoopRejectCause
+FunctionNotSupported/cause FunctionNotSupportedCause
+
+AudioMode/g7231 Mode_g7231
+
+DataMode/application DataModeApplication
+DataMode/application/t38fax T38faxApp
+
+DepFECData/rfc2733 RFC2733Data
+
+IS13818AudioMode/audioLayer IS13818AudioLayer
+IS13818AudioMode/audioSampling IS13818AudioSampling
+IS13818AudioMode/multichannelType IS13818MultichannelType
+
+H223ModeParameters/adaptationLayerType AdaptationLayerType
+
+H223AL1MParameters/headerFEC AL1HeaderFEC
+H223AL1MParameters/crcLength AL1CrcLength
+H223AL2MParameters/headerFEC AL2HeaderFEC
+H223AL3MParameters/crcLength AL3CrcLength
+
+H261VideoMode/resolution H261Resolution
+H263VideoMode/resolution H263Resolution
+
+UnicastAddress/iPAddress/network Ipv4_network
+MulticastAddress/iPAddress MIPAddress
+MulticastAddress/iP6Address MIP6Address
+
+NonStandardIdentifier/h221NonStandard H221NonStandardID
+OpenLogicalChannel/forwardLogicalChannelNumber OLC_fw_lcn
+OpenLogicalChannelAck/forwardLogicalChannelNumber OLC_ack_fw_lcn
+OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters OLC_forw_multiplexParameters
+OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters OLC_rev_multiplexParameters
+OpenLogicalChannel/reverseLogicalChannelParameters OLC_reverseLogicalChannelParameters
+OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters OLC_fw_h223_params
+OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters OLC_rev_h223_params
+OpenLogicalChannelAck/reverseLogicalChannelParameters OLC_ack_reverseLogicalChannelParameters
+CloseLogicalChannel/reason Clc_reason
+VCCapability/availableBitRates/type Avb_type
+MultiplexElement/type Me_type
+RedundancyEncodingDTModeElement/type Re_type
+MaintenanceLoopRequest/type Mlr_type
+MaintenanceLoopAck/type Mla_type
+MaintenanceLoopReject/type Mlrej_type
+MiscellaneousCommand/type Mc_type
+MiscellaneousIndication/type Mi_type
+V76LogicalChannelParameters/mode V76LCP_mode
+DepFECData/rfc2733/mode FECdata_mode
+DepFECMode/rfc2733Mode/mode FEC_mode
+IS11172AudioMode/multichannelType IS11172_multichannelType
+MultiplexElement/repeatCount/finite ME_finiteRepeatCount
+MultiplexElement/repeatCount ME_repeatCount
+DepFECCapability/rfc2733 FECC_rfc2733
+RequestModeAck/response Req_mode_ack_response
+UserInputIndication/signalUpdate/rtp Si_rtp
+UnicastAddress/iPAddress/tsapIdentifier TsapIdentifier
+H2250LogicalChannelAckParameters/mediaChannel Ack_mediaChannel
+H2250LogicalChannelAckParameters/mediaControlChannel Ack_mediaControlChannel
+CommunicationModeTableEntry/mediaChannel Cm_mediaChannel
+#----------------------------------------------------------------------------------------
+#.FIELD_RENAME
+#----------------------------------------------------------------------------------------
+
+NewATMVCCommand/aal cmd_aal
+NewATMVCCommand/aal/aal1 cmd_aal1
+NewATMVCCommand/aal/aal5 cmd_aal5
+NewATMVCCommand/aal/aal1/clockRecovery cmd_clockRecovery
+NewATMVCCommand/aal/aal1/errorCorrection cmd_errorCorrection
+NewATMVCCommand/multiplex cmd_multiplex
+NewATMVCCommand/reverseParameters cmd_reverseParameters
+NewATMVCCommand/reverseParameters/multiplex cmdr_multiplex
+
+NewATMVCIndication/aal ind_aal
+NewATMVCIndication/aal/aal1 ind_aal1
+NewATMVCIndication/aal/aal5 ind_aal5
+NewATMVCIndication/aal/aal1/clockRecovery ind_clockRecovery
+NewATMVCIndication/aal/aal1/errorCorrection ind_errorCorrection
+NewATMVCIndication/multiplex ind_multiplex
+NewATMVCIndication/reverseParameters ind_reverseParameters
+NewATMVCIndication/reverseParameters/multiplex indr_multiplex
+
+MultilinkRequest/callInformation callInformationReq
+MultilinkRequest/addConnection addConnectionReq
+MultilinkRequest/removeConnection removeConnectionReq
+MultilinkRequest/maximumHeaderInterval maximumHeaderIntervalReq
+
+MultilinkResponse/callInformation callInformationResp
+MultilinkResponse/addConnection addConnectionResp
+MultilinkResponse/removeConnection removeConnectionResp
+MultilinkResponse/maximumHeaderInterval maximumHeaderIntervalResp
+
+MultiplexElement/type/logicalChannelNumber logicalChannelNum
+ConnectionIdentifier/sequenceNumber sequenceNum
+
+RequestMessage/nonStandard nonStandardMsg
+ResponseMessage/nonStandard nonStandardMsg
+CommandMessage/nonStandard nonStandardMsg
+IndicationMessage/nonStandard nonStandardMsg
+MultilinkRequest/nonStandard nonStandardMsg
+MultilinkResponse/nonStandard nonStandardMsg
+MultilinkIndication/nonStandard nonStandardMsg
+DialingInformation/nonStandard nonStandardMsg
+DialingInformationNetworkType/nonStandard nonStandardMsg
+
+UserInputCapability/nonStandard ui_nonStandard
+H2250LogicalChannelParameters/nonStandard nonStandardParams
+H2250LogicalChannelAckParameters/nonStandard nonStandardParams
+CommunicationModeTableEntry/nonStandard nonStandardParams
+ConferenceCapability/nonStandardData nonStandardParams
+
+UnicastAddress/iPXAddress/tsapIdentifier ipx_tsapIdentifier
+
+NonStandardParameter/data nsd_data
+NonStandardIdentifier/h221NonStandard h221NonStandardID
+
+AudioMode/g711Alaw64k g711Alaw64k_mode
+AudioMode/g711Alaw56k g711Alaw56k_mode
+AudioMode/g711Ulaw64k g711Ulaw64k_mode
+AudioMode/g711Ulaw56k g711Ulaw56k_mode
+AudioMode/g722-64k g722_64k_mode
+AudioMode/g722-56k g722_56k_mode
+AudioMode/g722-48k g722_48k_mode
+AudioMode/g728 g728_mode
+AudioMode/g729 g729_mode
+AudioMode/g729AnnexA g729AnnexA_mode
+AudioMode/g7231 g7231_mode
+AudioMode/vbd vbd_mode
+
+IS11172AudioMode/audioLayer/audioLayer1 audioLayer1Mode
+IS11172AudioMode/audioLayer/audioLayer2 audioLayer2Mode
+IS11172AudioMode/audioLayer/audioLayer3 audioLayer3Mode
+IS11172AudioMode/audioSampling/audioSampling32k audioSampling32kMode
+IS11172AudioMode/audioSampling/audioSampling44k1 audioSampling44k1Mode
+IS11172AudioMode/audioSampling/audioSampling48k audioSampling48kMode
+IS11172AudioMode/multichannelType/singleChannel singleChannelMode
+
+IS13818AudioMode/audioLayer audioLayerMode
+IS13818AudioMode/audioLayer/audioLayer1 audioLayer1Mode
+IS13818AudioMode/audioLayer/audioLayer2 audioLayer2Mode
+IS13818AudioMode/audioLayer/audioLayer3 audioLayer3Mode
+IS13818AudioMode/audioSampling audioSamplingMode
+IS13818AudioMode/audioSampling/audioSampling16k audioSampling16kMode
+IS13818AudioMode/audioSampling/audioSampling22k05 audioSampling22k05Mode
+IS13818AudioMode/audioSampling/audioSampling24k audioSampling24kMode
+IS13818AudioMode/audioSampling/audioSampling32k audioSampling32kMode
+IS13818AudioMode/audioSampling/audioSampling44k1 audioSampling44k1Mode
+IS13818AudioMode/audioSampling/audioSampling48k audioSampling48kMode
+IS13818AudioMode/multichannelType/singleChannel singleChannelMode
+IS13818AudioMode/multichannelType/threeChannels2-1 threeChannels2_1Mode
+IS13818AudioMode/multichannelType/threeChannels3-0 threeChannels3_0Mode
+IS13818AudioMode/multichannelType/fourChannels2-0-2-0 fourChannels2_0_2_0Mode
+IS13818AudioMode/multichannelType/fourChannels2-2 fourChannels2_2Mode
+IS13818AudioMode/multichannelType/fourChannels3-1 fourChannels3_1Mode
+IS13818AudioMode/multichannelType/fiveChannels3-0-2-0 fiveChannels3_0_2_0Mode
+IS13818AudioMode/multichannelType/fiveChannels3-2 fiveChannels3_2Mode
+
+H262VideoMode/profileAndLevel/profileAndLevel-SPatML profileAndLevel_SPatMLMode
+H262VideoMode/profileAndLevel/profileAndLevel-MPatLL profileAndLevel_MPatLLMode
+H262VideoMode/profileAndLevel/profileAndLevel-MPatML profileAndLevel_MPatMLMode
+H262VideoMode/profileAndLevel/profileAndLevel-MPatH-14 profileAndLevel_MPatH-14Mode
+H262VideoMode/profileAndLevel/profileAndLevel-MPatHL profileAndLevel_MPatHLMode
+H262VideoMode/profileAndLevel/profileAndLevel-SNRatLL profileAndLevel_SNRatLLMode
+H262VideoMode/profileAndLevel/profileAndLevel-SNRatML profileAndLevel_SNRatMLMode
+H262VideoMode/profileAndLevel/profileAndLevel-SpatialatH-14 profileAndLevel_SpatialatH-14Mode
+H262VideoMode/profileAndLevel/profileAndLevel-HPatML profileAndLevel_HPatMLMode
+H262VideoMode/profileAndLevel/profileAndLevel-HPatH-14 profileAndLevel_HPatH-14Mode
+H262VideoMode/profileAndLevel/profileAndLevel-HPatHL profileAndLevel_HPatHLMode
+
+RedundancyEncodingMode/secondaryEncoding/audioData audioMode
+RedundancyEncodingMode/secondaryEncoding secondaryEncodingMode
+RedundancyEncodingCapability/secondaryEncoding secondaryEncodingCapability
+
+UnicastAddress/iPAddress/network ip4_network
+UnicastAddress/iP6Address/network ip6_network
+MulticastAddress/iP6Address/network mip6_network
+MulticastAddress/iPAddress mIPAddress
+MulticastAddress/iP6Address mIP6Address
+MulticastAddress/iPAddress/network mip4_network
+
+RTPPayloadType/payloadType rtpPayloadType
+RTPPayloadType/payloadDescriptor/nonStandardIdentifier nonStandard
+MediaPacketizationCapability/rtpPayloadType rtpPayloadTypes
+T84Profile/t84Restricted/cif cif_bool
+T84Profile/t84Restricted/qcif qcif_bool
+H223ModeParameters/adaptationLayerType adaptationLayer
+H261VideoMode/resolution h261_resolution
+H263VideoMode/resolution h263_resolution
+H263VideoMode/resolution/custom custom_res
+CommunicationModeTableEntry/dataType entryDataType
+VCCapability/transportStream transportStream_bool
+MultiplePayloadStreamMode/elements mpsmElements
+RedundancyEncodingDTMode/secondary secondaryDTM
+MultiplexEntrySendReject/rejectionDescriptions sendRejectionDescriptions
+
+MultiplexEntrySendAck/multiplexTableEntryNumber multiplexTableEntryNumbers
+MultiplexEntrySendRelease/multiplexTableEntryNumber multiplexTableEntryNumbers
+CapabilityIdentifier/standard standardOid
+MiscellaneousIndication/type/videoNotDecodedMBs/temporalReference temporalReference_0_255
+CloseLogicalChannel/source cLC_source
+DepFECCapability/rfc2733/separateStream separateStreamBool
+DepFECCapability/rfc2733/separateStream/samePort samePortBool
+VCCapability/aal1/srtsClockRecovery srtsClockRecovery_bool
+VCCapability/aal1ViaGateway/srtsClockRecovery srtsClockRecoveryflag
+DataMode/application/t84 t84DataProtocolCapability
+DataMode/application/t38fax t38faxDataProtocolCapability
+H2250LogicalChannelParameters/sessionID sessionID_0_255
+H223Capability/mobileOperationTransmitCapability/h223AnnexADoubleFlag h223AnnexADoubleFlagFlag
+SendTerminalCapabilitySet/genericRequest genericRequestFlag
+H2250LogicalChannelParameters/mediaPacketization/h261aVideoPacketization h261aVideoPacketizationFlag
+RemoteMCResponse/reject/functionNotSupported functionNotSupportedFlag
+NewATMVCCommand/aal/aal1/errorCorrection/longInterleaver longInterleaverFlag
+NewATMVCIndication/aal/aal1/errorCorrection/longInterleaver longInterleaverFlag
+MiscellaneousCommand/type/videoFastUpdateMB/firstGOB firstGOB_0_255
+H263VideoCapability/sqcifMPI sqcifMPI_1_32
+EnhancementOptions/sqcifMPI sqcifMPI_1_32
+NewATMVCCommand/aal/aal1/errorCorrection/shortInterleaver shortInterleaverFlag
+NewATMVCIndication/aal/aal1/errorCorrection/shortInterleaver shortInterleaverFlag
+NewATMVCCommand/multiplex/programStream programStreamFlag
+NewATMVCCommand/reverseParameters/multiplex/programStream programStreamFlag
+NewATMVCIndication/multiplex/programStream programStreamFlag
+NewATMVCIndication/reverseParameters/multiplex/programStream programStreamFlag
+H263ModeComboFlags/enhancedReferencePicSelect enhancedReferencePicSelectBool
+NewATMVCCommand/aal/aal1/errorCorrection/errorCorrectionOnly errorCorrectionOnlyFlag
+NewATMVCIndication/aal/aal1/errorCorrection/errorCorrectionOnly errorCorrectionOnlyFlag
+UserInputCapability/extendedAlphanumeric extendedAlphanumericFlag
+MultiplexElement/repeatCount/finite me_repeatCount_finite
+MiscellaneousCommand/type/videoFastUpdateMB/firstMB firstMB_1_8192
+MiscellaneousIndication/type/videoNotDecodedMBs/firstMB firstMB_1_8192
+H261VideoCapability/cifMPI cifMPI_1_4
+CustomPictureClockFrequency/cifMPI cifMPI2_1_2048
+H263VideoCapability/cif16MPI cif16MPI_1_32
+EnhancementOptions/cif16MPI cif16MPI_1_32
+H263VideoCapability/cif4MPI cif4MPI_1_32
+EnhancementOptions/cif4MPI cif4MPI_1_32
+H263Version3Options/pictureNumber pictureNumberBoolean
+MiscellaneousCommand/type/videoBadMBs/numberOfMBs numberOfMBs1_1_9216
+MiscellaneousCommand/type/lostPartialPicture/numberOfMBs numberOfMBs1_1_9216
+DataApplicationCapability/maxBitRate maxBitRate2_0_4294967295
+GenericCapability/maxBitRate maxBitRate2_0_4294967295
+H261VideoCapability/maxBitRate maxBitRate_1_19200
+IS13818AudioCapability/bitRate bitRate2_1_1130
+IS13818AudioMode/bitRate bitRate2_1_1130
+IS11172AudioCapability/bitRate bitRate_1_448
+IS11172AudioMode/bitRate bitRate_1_448
+DataMode/bitRate bitRate_0_4294967295
+H223Capability/bitRate bitRate_1_19200
+H261VideoMode/bitRate bitRate_1_19200
+H263VideoMode/bitRate bitRate_1_19200
+DialingInformationNumber/networkAddress networkAddressNum
+NewATMVCCommand/aal/aal1/clockRecovery/adaptiveClockRecovery adaptiveClockRecoveryFlag
+NewATMVCIndication/aal/aal1/clockRecovery/adaptiveClockRecovery adaptiveClockRecoveryFlag
+NewATMVCCommand/aal/aal1/clockRecovery/nullClockRecovery nullClockRecoveryflag
+NewATMVCIndication/aal/aal1/clockRecovery/nullClockRecovery nullClockRecoveryflag
+NewATMVCCommand/aal/aal1/errorCorrection/nullErrorCorrection nullErrorCorrectionFlag
+NewATMVCIndication/aal/aal1/errorCorrection/nullErrorCorrection nullErrorCorrectionFlag
+H223AL2MParameters/headerFEC aL2HeaderFEC
+H223AL1MParameters/headerFEC aL1HeaderFEC
+H223AL1MParameters/crcLength crcLength2
+H223AL3MParameters/crcLength crlength2
+SendTerminalCapabilitySet/specificRequest/multiplexCapability multiplexCapabilityBool
+DepFECCapability/rfc2733/redundancyEncoding redundancyEncodingBool
+DepFECData/rfc2733/mode/redundancyEncoding redundancyEncodingFlag
+DepFECMode/rfc2733Mode/mode/redundancyEncoding redundancyEncodingFlag
+ParameterValue/genericParameter genericParameters
+
+H261VideoCapability/qcifMPI qcifMPI_1_4
+CustomPictureClockFrequency/qcifMPI qcifMPI_1_2048
+DataMode/application datamodeapplication
+MasterSlaveDeterminationReject/cause msd_rej_cause
+
+OpenLogicalChannelReject/cause olc_rej_cause
+RequestMultiplexEntryRejectionDescriptions/cause req_mux_rej_cause
+RequestModeReject/cause req_rej_cause
+MultiplexEntryRejectionDescriptions/cause mux_rej_cause
+RequestChannelCloseReject/cause req_chan_clos_rej_cause
+TerminalCapabilitySetReject/cause tcs_rej_cause
+MaintenanceLoopReject/cause maintloop_rej_cause
+FunctionNotSupported/cause fns_cause
+Restriction/maximumBitRate res_maximumBitRate
+RedundancyEncodingDTMode/primary prmary_dtmode
+RedundancyEncoding/rtpRedundancyEncoding/primary primary
+DepFECData/rfc2733 dep_rfc2733
+DepFECMode/rfc2733Mode/mode fec_mode
+DepFECData/rfc2733/mode fec_data_mode
+FECData/rfc2733/pktMode/rfc2733sameport mode_rfc2733sameport
+FECData/rfc2733/pktMode/rfc2733diffport mode_rfc2733diffport
+V76LogicalChannelParameters/mode v76_mode
+OpenLogicalChannelAck/reverseLogicalChannelParameters/multiplexParameters olc_ack_multiplexParameters
+OpenLogicalChannel/forwardLogicalChannelNumber olc_fw_lcn
+OpenLogicalChannelAck/forwardLogicalChannelNumber olc_ack_fw_lcn
+OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters olc_forw_multiplexParameters
+OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters olc_rev_multiplexParameter
+IS11172AudioMode/multichannelType is11172multichannelType
+IS13818AudioMode/multichannelType is13818MultichannelType
+CloseLogicalChannel/reason clc_reason
+MultiplexElement/repeatCount me_repeatCount
+DepFECCapability/rfc2733 fecc_rfc2733
+RequestModeAck/response req_mode_ack_response
+UserInputIndication/signalUpdate/rtp si_rtp
+VCCapability/availableBitRates/type avb_type
+MultiplexElement/type me_type
+RedundancyEncodingDTModeElement/type re_type
+MaintenanceLoopRequest/type mlr_type
+MaintenanceLoopAck/type mla_type
+MaintenanceLoopReject/type mlrej_type
+MiscellaneousCommand/type mc_type
+MiscellaneousIndication/type mi_type
+VBDMode/type vbd_type
+VBDCapability/type vbd_cap_type
+OpenLogicalChannelAck/reverseLogicalChannelParameters olc_ack_reverseLogicalChannelParameters
+H2250LogicalChannelAckParameters/mediaChannel ack_mediaChannel
+H2250LogicalChannelAckParameters/mediaControlChannel ack_mediaControlChannel
+UnicastAddress/iP6Address/tsapIdentifier ipv6_tsapIdentifier
+UnicastAddress/iPSourceRouteAddress/tsapIdentifier iPSrcRoute_tsapIdentifier
+MulticastAddress/iPAddress/tsapIdentifier multicast_tsapIdentifier
+MulticastAddress/iP6Address/tsapIdentifier multicast_IPv6_tsapIdentifier
+CommunicationModeTableEntry/mediaChannel cm_mediaChannel
+CommunicationModeTableEntry/mediaControlChannel cm_mediaControlChannel
+Criteria/value criteriaValue
+
+OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters olc_rev_h223_params
+OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters olc_fw_h223_params
+
+H223LogicalChannelParameters/adaptationLayerType/al1Framed h223_al_type_al1Framed
+H223LogicalChannelParameters/adaptationLayerType/al1NotFramed h223_al_type_al1NotFramed
+H223LogicalChannelParameters/adaptationLayerType/al2WithoutSequenceNumbers h223_al_type_al2WithoutSequenceNumbers
+H223LogicalChannelParameters/adaptationLayerType/al2WithSequenceNumbers h223_al_type_al2WithSequenceNumbers
+H223LogicalChannelParameters/adaptationLayerType/al3 h223_al_type_al3
+Al3/sendBufferSize al3_sendBufferSize
+H223LogicalChannelParameters/adaptationLayerType/al1M h223_al_type_al1M
+H223LogicalChannelParameters/adaptationLayerType/al2M h223_al_type_al2M
+H223LogicalChannelParameters/adaptationLayerType/al3M h223_al_type_al3M
+H223LogicalChannelParameters/segmentableFlag h223_lc_segmentableFlag
+
+#----------------------------------------------------------------------------------------
+#.TYPE_ATTR
+UnicastAddress/iPAddress/network TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+UnicastAddress/iP6Address/network TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+MulticastAddress/iPAddress/network TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+MulticastAddress/iP6Address/network TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+RTPPayloadType/payloadDescriptor/rfc-number TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(h245_RFC_number_vals)
+NonStandardIdentifier/h221NonStandard/t35CountryCode TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(T35CountryCode_vals)
+VendorIdentification/productNumber TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+VendorIdentification/versionNumber TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+ParameterValue/octetString TYPE = FT_UINT32 DISPLAY = BASE_DEC
+
+#----------------------------------------------------------------------------------------
+#.FIELD_ATTR
+AlternativeCapabilitySet/_item NAME = "alternativeCapability"
+
+#----------------------------------------------------------------------------------------
+# vim:set ts=4 sts=2 sw=2:
diff --git a/epan/dissectors/asn1/h245/packet-h245-template.c b/epan/dissectors/asn1/h245/packet-h245-template.c
new file mode 100644
index 0000000000..33ed26bd3a
--- /dev/null
+++ b/epan/dissectors/asn1/h245/packet-h245-template.c
@@ -0,0 +1,630 @@
+/* packet-h245_asn1.c
+ * Routines for h245 packet dissection
+ * Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * To quote the author of the previous H245 dissector:
+ * "This is a complete replacement of the previous limitied dissector
+ * that Ronnie was crazy enough to write by hand. It was a lot of time
+ * to hack it by hand, but it is incomplete and buggy and it is good when
+ * it will go away."
+ * Ronnie did a great job and all the VoIP users had made good use of it!
+ * Credit to Tomas Kukosa for developing the asn2wrs compiler.
+ *
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/strutil.h>
+#include <epan/addr_resolv.h>
+#include <epan/prefs.h>
+#include <epan/t35.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/tap.h>
+#include <wsutil/pint.h>
+#include "packet-tpkt.h"
+#include "packet-per.h"
+#include "packet-h323.h"
+#include "packet-h245.h"
+#include "packet-rtp.h"
+#include "packet-rtcp.h"
+#include "packet-t38.h"
+
+#define PNAME "MULTIMEDIA-SYSTEM-CONTROL"
+#define PSNAME "H.245"
+#define PFNAME "h245"
+
+void proto_register_h245(void);
+void proto_reg_handoff_h245(void);
+
+static dissector_handle_t rtcp_handle=NULL;
+static dissector_table_t nsp_object_dissector_table;
+static dissector_table_t nsp_h221_dissector_table;
+static dissector_table_t gef_name_dissector_table;
+static dissector_table_t gef_content_dissector_table;
+static dissector_handle_t nsp_handle;
+static dissector_handle_t data_handle;
+static dissector_handle_t MultimediaSystemControlMessage_handle;
+static dissector_handle_t h263_handle = NULL;
+static dissector_handle_t amr_handle = NULL;
+
+static void init_h245_packet_info(h245_packet_info *pi);
+static int hf_h245_pdu_type = -1;
+static int hf_h245Manufacturer = -1;
+static int hf_h245_subMessageIdentifier_standard = -1;
+static int h245_tap = -1;
+static int h245dg_tap = -1;
+static int hf_h245_debug_dissector_try_string = -1;
+
+h245_packet_info *h245_pi=NULL;
+
+static gboolean h245_reassembly = TRUE;
+static gboolean h245_shorttypes = FALSE;
+static gboolean info_col_fmt_prepend = FALSE;
+
+#include "packet-h245-val.h"
+
+static const value_string h245_RequestMessage_short_vals[] = {
+ { RequestMessage_nonStandard , "NSM" },
+ { RequestMessage_masterSlaveDetermination , "MSD" },
+ { RequestMessage_terminalCapabilitySet , "TCS" },
+ { RequestMessage_openLogicalChannel , "OLC" },
+ { RequestMessage_closeLogicalChannel , "CLC" },
+ { RequestMessage_requestChannelClose , "RCC" },
+ { RequestMessage_multiplexEntrySend , "MES" },
+ { RequestMessage_requestMultiplexEntry , "RME" },
+ { RequestMessage_requestMode , "RM" },
+ { RequestMessage_roundTripDelayRequest , "RTDR" },
+ { RequestMessage_maintenanceLoopRequest , "MLR" },
+ { RequestMessage_communicationModeRequest , "CMR" },
+ { RequestMessage_conferenceRequest , "CR" },
+ { RequestMessage_multilinkRequest , "MR" },
+ { RequestMessage_logicalChannelRateRequest, "LCRR" },
+ { RequestMessage_genericRequest , "GR" },
+ { 0, NULL }
+};
+static const value_string h245_ResponseMessage_short_vals[] = {
+ { ResponseMessage_nonStandard , "NSM" },
+ { ResponseMessage_masterSlaveDeterminationAck , "MSDAck" },
+ { ResponseMessage_masterSlaveDeterminationReject, "MSDReject" },
+ { ResponseMessage_terminalCapabilitySetAck , "TCSAck" },
+ { ResponseMessage_terminalCapabilitySetReject , "TCSReject" },
+ { ResponseMessage_openLogicalChannelAck , "OLCAck" },
+ { ResponseMessage_openLogicalChannelReject , "OLCReject" },
+ { ResponseMessage_closeLogicalChannelAck , "CLCAck" },
+ { ResponseMessage_requestChannelCloseAck , "RCCAck" },
+ { ResponseMessage_requestChannelCloseReject , "RCCReject" },
+ { ResponseMessage_multiplexEntrySendAck , "MESAck" },
+ { ResponseMessage_multiplexEntrySendReject , "MESReject" },
+ { ResponseMessage_requestMultiplexEntryAck , "RMEAck" },
+ { ResponseMessage_requestMultiplexEntryReject , "RMEReject" },
+ { ResponseMessage_requestModeAck , "RMAck" },
+ { ResponseMessage_requestModeReject , "RMReject" },
+ { ResponseMessage_roundTripDelayResponse , "RTDResponse" },
+ { ResponseMessage_maintenanceLoopAck , "MLAck" },
+ { ResponseMessage_maintenanceLoopReject , "MLReject" },
+ { ResponseMessage_communicationModeResponse , "CMResponse" },
+ { ResponseMessage_conferenceResponse , "CResponse" },
+ { ResponseMessage_multilinkResponse , "MResponse" },
+ { ResponseMessage_logicalChannelRateAcknowledge , "LCRAck" },
+ { ResponseMessage_logicalChannelRateReject , "LCRReject" },
+ { ResponseMessage_genericResponse , "GR" },
+ { 0, NULL }
+};
+static const value_string h245_IndicationMessage_short_vals[] = {
+ { IndicationMessage_nonStandard , "NSM" },
+ { IndicationMessage_functionNotUnderstood , "FNU" },
+ { IndicationMessage_masterSlaveDeterminationRelease , "MSDRelease" },
+ { IndicationMessage_terminalCapabilitySetRelease , "TCSRelease" },
+ { IndicationMessage_openLogicalChannelConfirm , "OLCConfirm" },
+ { IndicationMessage_requestChannelCloseRelease , "RCCRelease" },
+ { IndicationMessage_multiplexEntrySendRelease , "MESRelease" },
+ { IndicationMessage_requestMultiplexEntryRelease , "RMERelease" },
+ { IndicationMessage_requestModeRelease , "RMRelease" },
+ { IndicationMessage_miscellaneousIndication , "MI" },
+ { IndicationMessage_jitterIndication , "JI" },
+ { IndicationMessage_h223SkewIndication , "H223SI" },
+ { IndicationMessage_newATMVCIndication , "NATMVCI" },
+ { IndicationMessage_userInput , "UII" },
+ { IndicationMessage_h2250MaximumSkewIndication , "H2250MSI" },
+ { IndicationMessage_mcLocationIndication , "MCLI" },
+ { IndicationMessage_conferenceIndication , "CI" },
+ { IndicationMessage_vendorIdentification , "VI" },
+ { IndicationMessage_functionNotSupported , "FNS" },
+ { IndicationMessage_multilinkIndication , "MultilinkIndication" },
+ { IndicationMessage_logicalChannelRateRelease , "LCRRelease" },
+ { IndicationMessage_flowControlIndication , "FCIndication" },
+ { IndicationMessage_mobileMultilinkReconfigurationIndication, "MMRI" },
+ { IndicationMessage_genericIndication , "GI" },
+ { 0, NULL }
+};
+static const value_string h245_CommandMessage_short_vals[] = {
+ { CommandMessage_nonStandard , "NSM" },
+ { CommandMessage_maintenanceLoopOffCommand , "MLOC" },
+ { CommandMessage_sendTerminalCapabilitySet , "STCS" },
+ { CommandMessage_encryptionCommand , "EC" },
+ { CommandMessage_flowControlCommand , "FCC" },
+ { CommandMessage_endSessionCommand , "ESC" },
+ { CommandMessage_miscellaneousCommand , "MC" },
+ { CommandMessage_communicationModeCommand , "CMC" },
+ { CommandMessage_conferenceCommand , "CC" },
+ { CommandMessage_h223MultiplexReconfiguration , "H223MR" },
+ { CommandMessage_newATMVCCommand , "NATMVCC" },
+ { CommandMessage_mobileMultilinkReconfigurationCommand, "MMRC" },
+ { CommandMessage_genericCommand , "GC" },
+ { 0, NULL }
+};
+
+static const value_string h245_AudioCapability_short_vals[] = {
+ { AudioCapability_nonStandard , "nonStd" },
+ { AudioCapability_g711Alaw64k , "g711A" },
+ { AudioCapability_g711Alaw56k , "g711A56k" },
+ { AudioCapability_g711Ulaw64k , "g711U" },
+ { AudioCapability_g711Ulaw56k , "g711U56k" },
+ { AudioCapability_g722_64k , "g722-64k" },
+ { AudioCapability_g722_56k , "g722-56k" },
+ { AudioCapability_g722_48k , "g722-48k" },
+ { AudioCapability_g7231 , "g7231" },
+ { AudioCapability_g728 , "g728" },
+ { AudioCapability_g729 , "g729" },
+ { AudioCapability_g729AnnexA , "g729A" },
+ { AudioCapability_is11172AudioCapability, "is11172" },
+ { AudioCapability_is13818AudioCapability, "is13818" },
+ { AudioCapability_g729wAnnexB , "g729B" },
+ { AudioCapability_g729AnnexAwAnnexB , "g729AB" },
+ { AudioCapability_g7231AnnexCCapability , "g7231C" },
+ { AudioCapability_gsmFullRate , "gsmFR" },
+ { AudioCapability_gsmHalfRate , "gsmHR" },
+ { AudioCapability_gsmEnhancedFullRate , "gsmEFR" },
+ { AudioCapability_genericAudioCapability, "generic" },
+ { AudioCapability_g729Extensions , "g729Ext" },
+ { AudioCapability_vbd , "vbd" },
+ { AudioCapability_audioTelephonyEvent , "audioTelEvent" },
+ { AudioCapability_audioTone , "audioTone" },
+ { 0, NULL }
+};
+
+/* To put the codec type only in COL_INFO when
+ an OLC is read */
+const char* codec_type = NULL;
+static guint32 rfc_number;
+
+typedef struct _unicast_addr_t {
+ address addr;
+ guint8 addr_buf[16];
+ guint32 port;
+} unicast_addr_t;
+
+typedef struct _channel_info_t {
+ gchar data_type_str[32];
+ unicast_addr_t *upcoming_addr;
+ unicast_addr_t media_addr;
+ unicast_addr_t media_control_addr;
+ unsigned int rfc2198;
+ gboolean srtp_flag;
+ gboolean is_video;
+} channel_info_t;
+
+typedef struct _olc_info_t {
+ guint16 fwd_lc_num;
+ channel_info_t fwd_lc;
+ channel_info_t rev_lc;
+} olc_info_t;
+
+static GHashTable* h245_pending_olc_reqs = NULL;
+static gboolean fast_start = FALSE;
+static olc_info_t *upcoming_olc = NULL;
+static channel_info_t *upcoming_channel = NULL;
+
+/* NonStandardParameter */
+static const char *nsiOID;
+static guint32 h221NonStandard;
+static guint32 t35CountryCode;
+static guint32 t35Extension;
+static guint32 manufacturerCode;
+
+static const value_string h245_RFC_number_vals[] = {
+ { 2190, "RFC 2190 - H.263 Video Streams" },
+ { 2198, "RFC 2198 - RTP Payload for Redundant Audio Data" },
+ { 2429, "RFC 2429 - 1998 Version of ITU-T Rec. H.263 Video (H.263+)" },
+ { 3016, "RFC 3016 - RTP Payload Format for MPEG-4 Audio/Visual Streams" },
+ { 3267, "RFC 3267 - Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB)" },
+ { 3984, "RFC 3984 - RTP Payload Format for H.264 Video" },
+ { 0, NULL }
+};
+
+/* Table 7/H.239 subMessageIdentifier values */
+static const value_string h245_h239subMessageIdentifier_vals[] = {
+ { 1, "flowControlReleaseRequest" },
+ { 2, "flowControlReleaseResponse" },
+ { 3, "presentationTokenRequest" },
+ { 4, "presentationTokenResponse" },
+ { 5, "presentationTokenRelease" },
+ { 6, "presentationTokenIndicateOwner" },
+ { 0, NULL }
+};
+
+
+/* h223 multiplex codes */
+static h223_set_mc_handle_t h223_set_mc_handle = NULL;
+h223_mux_element *h223_me=NULL;
+guint8 h223_mc=0;
+void h245_set_h223_set_mc_handle( h223_set_mc_handle_t handle )
+{
+ h223_set_mc_handle = handle;
+}
+
+/* h223 logical channels */
+typedef struct {
+ h223_lc_params *fw_channel_params;
+ h223_lc_params *rev_channel_params;
+} h223_pending_olc;
+
+static GHashTable* h223_pending_olc_reqs[] = { NULL, NULL };
+static dissector_handle_t h245_lc_dissector;
+static guint16 h245_lc_temp;
+static guint16 h223_fw_lc_num;
+static guint16 h223_rev_lc_num;
+static h223_lc_params *h223_lc_params_temp;
+static h223_lc_params *h223_fw_lc_params;
+static h223_lc_params *h223_rev_lc_params;
+static h223_add_lc_handle_t h223_add_lc_handle = NULL;
+
+static void h223_lc_init_dir( int dir )
+{
+ if ( h223_pending_olc_reqs[dir] )
+ g_hash_table_destroy( h223_pending_olc_reqs[dir] );
+ h223_pending_olc_reqs[dir] = g_hash_table_new( g_direct_hash, g_direct_equal );
+}
+
+static void h223_lc_init( void )
+{
+ h223_lc_init_dir( P2P_DIR_SENT );
+ h223_lc_init_dir( P2P_DIR_RECV );
+ h223_lc_params_temp = NULL;
+ h245_lc_dissector = NULL;
+ h223_fw_lc_num = 0;
+}
+
+static void h245_init(void)
+{
+ h245_pending_olc_reqs = g_hash_table_new(g_str_hash, g_str_equal);
+
+ h223_lc_init();
+}
+
+static void h245_cleanup(void)
+{
+ g_hash_table_destroy(h245_pending_olc_reqs);
+}
+
+void h245_set_h223_add_lc_handle( h223_add_lc_handle_t handle )
+{
+ h223_add_lc_handle = handle;
+}
+
+static const gchar *gen_olc_key(guint16 lc_num, address *dst_addr, address *src_addr)
+{
+ return wmem_strdup_printf(wmem_packet_scope(), "%s/%s/%u",
+ address_to_str(wmem_packet_scope(), dst_addr),
+ address_to_str(wmem_packet_scope(), src_addr),
+ lc_num);
+}
+
+static void update_unicast_addr(unicast_addr_t *req_addr, unicast_addr_t *ack_addr)
+{
+ if (ack_addr->addr.type!=AT_NONE && ack_addr->port!=0) {
+ memcpy(req_addr->addr_buf, ack_addr->addr_buf, sizeof(req_addr->addr_buf));
+ set_address(&req_addr->addr, ack_addr->addr.type, ack_addr->addr.len, req_addr->addr_buf);
+ req_addr->port = ack_addr->port;
+ }
+}
+
+static void h245_setup_channels(packet_info *pinfo, channel_info_t *upcoming_channel_lcl)
+{
+ rtp_dyn_payload_t *rtp_dyn_payload = NULL;
+ struct srtp_info *dummy_srtp_info = NULL;
+
+ if (!upcoming_channel_lcl) return;
+
+ /* T.38 */
+ if (!strcmp(upcoming_channel_lcl->data_type_str, "t38fax")) {
+ if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0) {
+ t38_add_address(pinfo, &upcoming_channel_lcl->media_addr.addr,
+ upcoming_channel_lcl->media_addr.port, 0,
+ "H245", pinfo->num);
+ }
+ return;
+ }
+
+ /* (S)RTP, (S)RTCP */
+ if (upcoming_channel_lcl->rfc2198 > 0) {
+ rtp_dyn_payload = rtp_dyn_payload_new();
+ rtp_dyn_payload_insert(rtp_dyn_payload, upcoming_channel_lcl->rfc2198, "red", 8000);
+ }
+
+ if (upcoming_channel_lcl->srtp_flag) {
+ dummy_srtp_info = wmem_new0(wmem_file_scope(), struct srtp_info);
+ }
+
+ /* DEBUG g_warning("h245_setup_channels media_addr.addr.type %u port %u",upcoming_channel_lcl->media_addr.addr.type, upcoming_channel_lcl->media_addr.port );
+ */
+ if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0) {
+ srtp_add_address(pinfo, &upcoming_channel_lcl->media_addr.addr,
+ upcoming_channel_lcl->media_addr.port, 0,
+ "H245", pinfo->num, upcoming_channel_lcl->is_video , rtp_dyn_payload, dummy_srtp_info);
+ }
+ if (upcoming_channel_lcl->media_control_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_control_addr.port!=0 && rtcp_handle) {
+ srtcp_add_address(pinfo, &upcoming_channel_lcl->media_control_addr.addr,
+ upcoming_channel_lcl->media_control_addr.port, 0,
+ "H245", pinfo->num, dummy_srtp_info);
+ }
+}
+
+/* Prints formated information column of h245 messages. Note that global variables
+ * "h245_shorttypes" and "info_col_fmt_prepend" are used to decide formating preferences */
+static void print_info_column(column_info *cinfo, const gint32 *value,
+ const value_string *msg_vals, const value_string *short_msg_vals)
+{
+ const value_string *vals;
+
+ if (h245_shorttypes == FALSE || short_msg_vals == NULL) {
+ vals = msg_vals;
+ } else {
+ vals = short_msg_vals;
+ }
+
+ if (info_col_fmt_prepend == FALSE) {
+ col_append_fstr(cinfo, COL_INFO, "%s ", val_to_str(*value, vals, "<unknown>"));
+ } else {
+ col_prepend_fstr(cinfo, COL_INFO, "%s ", val_to_str(*value, vals, "<unknown>"));
+ }
+}
+
+/* Initialize the protocol and registered fields */
+static int proto_h245 = -1;
+#include "packet-h245-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_h245 = -1;
+static int ett_h245_returnedFunction = -1;
+#include "packet-h245-ett.c"
+
+/* Forward declarations */
+static int dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static void reset_h245_pi(void *dummy _U_)
+{
+ h245_pi = NULL; /* Make sure we don't leave wmem_packet_scoped() memory lying around */
+}
+
+#include "packet-h245-fn.c"
+
+static int
+dissect_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ /*
+ * MultimediaSystemControlMessage_handle is the handle for
+ * dissect_h245_h245, so we don't want to do any h245_pi or tap stuff here.
+ */
+ dissect_tpkt_encap(tvb, pinfo, parent_tree, h245_reassembly, MultimediaSystemControlMessage_handle);
+ return tvb_captured_length(tvb);
+}
+
+
+static int
+dissect_h245_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ proto_item *it;
+ proto_tree *tr;
+ guint32 offset=0;
+ asn1_ctx_t asn1_ctx;
+
+ fast_start = FALSE;
+ /* Clean up from any previous packet dissection */
+ upcoming_olc = NULL;
+ upcoming_channel = NULL;
+ codec_type = NULL;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
+
+ it=proto_tree_add_protocol_format(parent_tree, proto_h245, tvb, 0, -1, PSNAME);
+ tr=proto_item_add_subtree(it, ett_h245);
+
+ /* assume that whilst there is more tvb data, there are more h245 commands */
+ while ( tvb_reported_length_remaining( tvb, offset>>3 )>0 ){
+ CLEANUP_PUSH(reset_h245_pi, NULL);
+ h245_pi=wmem_new(wmem_packet_scope(), h245_packet_info);
+ init_h245_packet_info(h245_pi);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_h245_MultimediaSystemControlMessage(tvb, offset, &asn1_ctx, tr, hf_h245_pdu_type);
+ tap_queue_packet(h245dg_tap, pinfo, h245_pi);
+ offset = (offset+0x07) & 0xfffffff8;
+ CLEANUP_CALL_AND_POP;
+ }
+ return tvb_captured_length(tvb);
+}
+
+void
+dissect_h245_FastStart_OLC(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, char *codec_str) {
+
+ fast_start = TRUE;
+ /* Clean up from any previous packet dissection */
+ upcoming_olc = NULL;
+ upcoming_channel = NULL;
+ codec_type = NULL;
+
+ dissect_OpenLogicalChannel_PDU(tvb, pinfo, tree, NULL);
+
+ if (h245_pi != NULL)
+ h245_pi->msg_type = H245_OpenLogChn;
+
+ if (codec_str && codec_type){
+ g_strlcpy(codec_str, codec_type, 50);
+ }
+
+}
+
+/*--- proto_register_h245 -------------------------------------------*/
+void proto_register_h245(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_h245_pdu_type,
+ { "PDU Type", "h245.pdu_type", FT_UINT32, BASE_DEC,
+ VALS(h245_MultimediaSystemControlMessage_vals), 0, "Type of H.245 PDU", HFILL }},
+ { &hf_h245Manufacturer,
+ { "H.245 Manufacturer", "h245.Manufacturer", FT_UINT32, BASE_HEX,
+ VALS(H221ManufacturerCode_vals), 0, "h245.H.221 Manufacturer", HFILL }},
+ { &hf_h245_subMessageIdentifier_standard,
+ { "subMessageIdentifier", "h245.subMessageIdentifier.standard",
+ FT_UINT32, BASE_DEC, VALS(h245_h239subMessageIdentifier_vals), 0,
+ NULL, HFILL }},
+ { &hf_h245_debug_dissector_try_string,
+ { "*** DEBUG dissector_try_string", "h245.debug.dissector_try_string", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+#include "packet-h245-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_h245,
+ &ett_h245_returnedFunction,
+#include "packet-h245-ettarr.c"
+ };
+ module_t *h245_module;
+
+ /* Register protocol */
+ proto_h245 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_init_routine(h245_init);
+ register_cleanup_routine(h245_cleanup);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h245, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* From Ronnie Sahlbergs original H245 dissector */
+
+ h245_module = prefs_register_protocol(proto_h245, NULL);
+ prefs_register_bool_preference(h245_module, "reassembly",
+ "Reassemble H.245 messages spanning multiple TCP segments",
+ "Whether the H.245 dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &h245_reassembly);
+ prefs_register_bool_preference(h245_module, "shorttypes",
+ "Show short message types",
+ "Whether the dissector should show short names or the long names from the standard",
+ &h245_shorttypes);
+ prefs_register_bool_preference(h245_module, "prepand",
+ "Show h245 info in reversed order",
+ "Whether the dissector should print items of h245 Info column in reversed order",
+ &info_col_fmt_prepend);
+ register_dissector("h245dg", dissect_h245_h245, proto_h245);
+ register_dissector("h245", dissect_h245, proto_h245);
+
+ nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ nsp_h221_dissector_table = register_dissector_table("h245.nsp.h221", "H.245 NonStandardParameter (h221)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ gef_name_dissector_table = register_dissector_table("h245.gef.name", "H.245 Generic Extensible Framework (names)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ gef_content_dissector_table = register_dissector_table("h245.gef.content", "H.245 Generic Extensible Framework", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ h245_tap = register_tap("h245");
+ h245dg_tap = register_tap("h245dg");
+
+ oid_add_from_string("h239ControlCapability","0.0.8.239.1.1");
+ oid_add_from_string("h239ExtendedVideoCapability","0.0.8.239.1.2");
+ oid_add_from_string("generic-message","0.0.8.239.2");
+ oid_add_from_string("h245 version 3","0.0.8.245.0.3");
+ oid_add_from_string("h245 version 4","0.0.8.245.0.4");
+ oid_add_from_string("h245 version 5","0.0.8.245.0.5");
+ oid_add_from_string("h245 version 6","0.0.8.245.0.6");
+ oid_add_from_string("h245 version 7","0.0.8.245.0.7");
+ oid_add_from_string("h245 version 8","0.0.8.245.0.8");
+ oid_add_from_string("h245 version 9","0.0.8.245.0.9");
+ oid_add_from_string("h245 version 10","0.0.8.245.0.10");
+ oid_add_from_string("h245 version 11","0.0.8.245.0.11");
+ oid_add_from_string("h245 version 12","0.0.8.245.0.12");
+ oid_add_from_string("h245 version 13","0.0.8.245.0.13");
+ /* This capability is defined in Annex E. */
+ oid_add_from_string("ISO/IEC 14496-2 MPEG-4 video","0.0.8.245.1.0.0");
+ /* This capability is defined in Annex H. */
+ oid_add_from_string("ISO/IEC 14496-3 MPEG-4 audio","0.0.8.245.1.1.0");
+ /* This capability is defined in Annex I. */
+ oid_add_from_string("AMR","0.0.8.245.1.1.1");
+ /* This capability is defined in Annex J. */
+ oid_add_from_string("acelp","0.0.8.245.1.1.2");
+ /* This capability is defined in Annex K. */
+ oid_add_from_string("us1","0.0.8.245.1.1.3");
+ /* This capability is defined in Annex L. */
+ oid_add_from_string("is127evrc","0.0.8.245.1.1.4");
+ /* This capability is defined in Annex M. */
+ oid_add_from_string("ISO/IEC 13818-7","0.0.8.245.1.1.5");
+ /* This capability is defined in Annex N. */
+ oid_add_from_string("rfc3389","0.0.8.245.1.1.6");
+ /* This capability is defined in Annex O. */
+ oid_add_from_string("L-16","0.0.8.245.1.1.7");
+ /* This capability is defined in Annex P. */
+ oid_add_from_string("bounded-audio-stream","0.0.8.245.1.1.8");
+ /* This capability is defined in Annex R. */
+ oid_add_from_string("AMR-NB","0.0.8.245.1.1.9");
+ /* This capability is defined in Annex R. */
+ oid_add_from_string("AMR-WB","0.0.8.245.1.1.10");
+ /* This capability is defined in Annex S. */
+ oid_add_from_string("ilbc","0.0.8.245.1.1.11");
+
+ oid_add_from_string("ISO/IEC 14496-1","0.0.8.245.1.2.0");
+ oid_add_from_string("Nx64","0.0.8.245.1.2.1");
+ oid_add_from_string("logical-channel-bit-ratemanagement","0.0.8.245.1.3.0");
+
+ oid_add_from_string("h264 generic-capabilities","0.0.8.241.0.0.1");
+ oid_add_from_string("iPpacketization_h241AnnexA(single NAL unit mode)","0.0.8.241.0.0.0.0");
+ oid_add_from_string("iPpacketization_RFC3984NonInterleaved","0.0.8.241.0.0.0.1");
+ oid_add_from_string("iPpacketization_RFC3984Interleaved","0.0.8.241.0.0.0.2");
+}
+
+
+/*--- proto_reg_handoff_h245 ---------------------------------------*/
+void proto_reg_handoff_h245(void) {
+ dissector_handle_t h245_handle;
+
+ rtcp_handle = find_dissector("rtcp");
+ data_handle = find_dissector("data");
+ h263_handle = find_dissector("h263data");
+ amr_handle = find_dissector("amr_if2_nb");
+
+
+ h245_handle = find_dissector("h245");
+ dissector_add_for_decode_as("tcp.port", h245_handle);
+ MultimediaSystemControlMessage_handle = find_dissector("h245dg");
+ dissector_add_for_decode_as("udp.port", MultimediaSystemControlMessage_handle);
+}
+
+static void init_h245_packet_info(h245_packet_info *pi)
+{
+ if(pi == NULL) {
+ return;
+ }
+
+ pi->msg_type = H245_OTHER;
+ pi->frame_label[0] = '\0';
+ g_snprintf(pi->comment, sizeof(pi->comment), "H245 ");
+}
+
diff --git a/epan/dissectors/asn1/h245/packet-h245-template.h b/epan/dissectors/asn1/h245/packet-h245-template.h
new file mode 100644
index 0000000000..e83ee44505
--- /dev/null
+++ b/epan/dissectors/asn1/h245/packet-h245-template.h
@@ -0,0 +1,131 @@
+/* packet-h245.h
+ * Routines for h245 packet dissection
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_H245_H
+#define PACKET_H245_H
+
+#include "ws_symbol_export.h"
+
+typedef enum _h245_msg_type {
+ H245_TermCapSet,
+ H245_TermCapSetAck,
+ H245_TermCapSetRjc,
+ H245_TermCapSetRls,
+ H245_OpenLogChn,
+ H245_OpenLogChnCnf,
+ H245_OpenLogChnAck,
+ H245_OpenLogChnRjc,
+ H245_CloseLogChn,
+ H245_CloseLogChnAck,
+ H245_MastSlvDet,
+ H245_MastSlvDetAck,
+ H245_MastSlvDetRjc,
+ H245_MastSlvDetRls,
+ H245_OTHER
+} h245_msg_type;
+
+typedef struct _h245_packet_info {
+ h245_msg_type msg_type; /* type of message */
+ gchar frame_label[50]; /* the Frame label used by graph_analysis, what is a abreviation of cinfo */
+ gchar comment[50]; /* the Frame Comment used by graph_analysis, what is a message desc */
+} h245_packet_info;
+
+/*
+ * h223 LC info
+ */
+
+typedef enum {
+ al_nonStandard,
+ al1Framed,
+ al1NotFramed,
+ al2WithoutSequenceNumbers,
+ al2WithSequenceNumbers,
+ al3,
+ /*...*/
+ /* al?M: unimplemented annex C adaptation layers */
+ al1M,
+ al2M,
+ al3M
+} h223_al_type;
+
+typedef struct {
+ guint8 control_field_octets;
+ guint32 send_buffer_size;
+} h223_al3_params;
+
+typedef struct {
+ h223_al_type al_type;
+ gpointer al_params;
+ gboolean segmentable;
+ dissector_handle_t subdissector;
+} h223_lc_params;
+
+typedef enum {
+ H245_nonStandardDataType,
+ H245_nullData,
+ H245_videoData,
+ H245_audioData,
+ H245_data,
+ H245_encryptionData,
+ /*...,*/
+ H245_h235Control,
+ H245_h235Media,
+ H245_multiplexedStream,
+ H245_redundancyEncoding,
+ H245_multiplePayloadStream,
+ H245_fec
+} h245_lc_data_type_enum;
+
+typedef struct {
+ h245_lc_data_type_enum data_type;
+ gpointer params;
+} h245_lc_data_type;
+
+/*
+ * h223 MUX info
+ */
+
+typedef struct _h223_mux_element h223_mux_element;
+struct _h223_mux_element {
+ h223_mux_element* sublist; /* if NULL, use vc instead */
+ guint16 vc;
+ guint16 repeat_count; /* 0 == untilClosingFlag */
+ h223_mux_element* next;
+};
+
+#include <epan/packet_info.h>
+#include <epan/dissectors/packet-per.h>
+
+typedef void (*h223_set_mc_handle_t) ( packet_info* pinfo, guint8 mc, h223_mux_element* me, circuit_type ctype, guint32 circuit_id );
+WS_DLL_PUBLIC void h245_set_h223_set_mc_handle( h223_set_mc_handle_t handle );
+
+typedef void (*h223_add_lc_handle_t) ( packet_info* pinfo, guint16 lc, h223_lc_params* params, circuit_type ctype, guint32 circuit_id );
+WS_DLL_PUBLIC void h245_set_h223_add_lc_handle( h223_add_lc_handle_t handle );
+
+#include "packet-h245-exp.h"
+void dissect_h245_FastStart_OLC(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, char *codec_str);
+
+
+#endif /* PACKET_H245_H */
+
+
diff --git a/epan/dissectors/asn1/h248/CMakeLists.txt b/epan/dissectors/asn1/h248/CMakeLists.txt
new file mode 100644
index 0000000000..c7b8ab2955
--- /dev/null
+++ b/epan/dissectors/asn1/h248/CMakeLists.txt
@@ -0,0 +1,49 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h248 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ h248v3.asn
+ h248v1support.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h248/MEGACO.asn b/epan/dissectors/asn1/h248/MEGACO.asn
new file mode 100644
index 0000000000..aab13234c9
--- /dev/null
+++ b/epan/dissectors/asn1/h248/MEGACO.asn
@@ -0,0 +1,987 @@
+-- This ASN definition is taken from
+-- http://132.151.1.19/internet-drafts/draft-ietf-megaco-h248v2-04.txt
+--
+-- and has been modified to pass through the ASN2ETH compiler
+-- (we dont support automatic tags yet so the tags had to be added by
+-- hand)
+
+MEDIA-GATEWAY-CONTROL {itu-t(0) recommendation(0) h(8) h248(248)
+modules(0) media-gateway-control(0) version2(2)}
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+ MegacoMessage ::= SEQUENCE
+ {
+ authHeader [0] IMPLICIT AuthenticationHeader OPTIONAL,
+ mess [1] IMPLICIT Message
+ }
+
+ AuthenticationHeader ::= SEQUENCE
+ {
+ secParmIndex [0] IMPLICIT SecurityParmIndex,
+ seqNum [1] IMPLICIT SequenceNum,
+ ad [2] IMPLICIT AuthData
+ }
+
+ SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+ SequenceNum ::= OCTET STRING(SIZE(4))
+
+ AuthData ::= OCTET STRING (SIZE (12..32))
+
+ Message ::= SEQUENCE
+ {
+ version [0] IMPLICIT INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 2.
+ mId [1] MId, -- Name/address of message originator
+ messageBody [2] CHOICE
+ {
+ messageError [0] IMPLICIT ErrorDescriptor,
+ transactions [1] IMPLICIT SEQUENCE OF Transaction
+ },
+ ...
+ }
+
+ MId ::= CHOICE
+ {
+ ip4Address [0] IMPLICIT IP4Address,
+ ip6Address [1] IMPLICIT IP6Address,
+ domainName [2] IMPLICIT DomainName,
+ deviceName [3] IMPLICIT PathName,
+ mtpAddress [4] IMPLICIT MtpAddress,
+ -- Addressing structure of mtpAddress:
+ -- 25 - 15 0
+ -- | PC | NI |
+ -- 24 - 14 bits 2 bits
+ -- Note: 14 bits are defined for international use.
+ -- Two national options exist where the point code is 16 or 24
+ -- bits.
+ -- To octet align the mtpAddress, the MSBs shall be encoded as 0s.
+ ...
+ }
+
+ MtpAddress ::= OCTET STRING(SIZE(2..4))
+
+ DomainName ::= SEQUENCE
+ {
+ name [0] IMPLICIT 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 [1] IMPLICIT INTEGER(0..65535) OPTIONAL
+ }
+
+ IP4Address ::= SEQUENCE
+ {
+ address [0] IMPLICIT OCTET STRING (SIZE(4)),
+ portNumber [1] IMPLICIT INTEGER(0..65535) OPTIONAL
+ }
+
+ IP6Address ::= SEQUENCE
+ {
+ address [0] IMPLICIT OCTET STRING (SIZE(16)),
+ portNumber [1] IMPLICIT INTEGER(0..65535) OPTIONAL
+ }
+
+ PathName ::= IA5String(SIZE (1..64))
+ -- See A.3
+
+ Transaction ::= CHOICE
+ {
+ transactionRequest [0] IMPLICIT TransactionRequest,
+ transactionPending [1] IMPLICIT TransactionPending,
+ transactionReply [2] IMPLICIT TransactionReply,
+ transactionResponseAck [3] IMPLICIT TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...
+ }
+
+ TransactionId ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
+
+ TransactionRequest ::= SEQUENCE
+ {
+ transactionId [0] IMPLICIT TransactionId,
+ actions [1] IMPLICIT SEQUENCE OF ActionRequest,
+ ...
+ }
+
+ TransactionPending ::= SEQUENCE
+ {
+ transactionId [0] IMPLICIT TransactionId,
+ ...
+ }
+
+ TransactionReply ::= SEQUENCE
+ {
+ transactionId [0] IMPLICIT TransactionId,
+ immAckRequired [1] IMPLICIT NULL OPTIONAL,
+ transactionResult [2] CHOICE
+ {
+ transactionError [0] IMPLICIT ErrorDescriptor,
+ actionReplies [1] IMPLICIT SEQUENCE OF ActionReply
+ },
+ ...
+ }
+
+ TransactionResponseAck ::= SEQUENCE OF TransactionAck
+ TransactionAck ::= SEQUENCE
+ {
+ firstAck [0] IMPLICIT TransactionId,
+ lastAck [1] IMPLICIT TransactionId OPTIONAL
+ }
+
+ ErrorDescriptor ::= SEQUENCE
+ {
+ errorCode [0] IMPLICIT ErrorCode,
+ errorText [1] IMPLICIT ErrorText OPTIONAL
+ }
+
+ ErrorCode ::= INTEGER(0..65535)
+ -- See clause 14 for IANA considerations with respect to 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 [0] IMPLICIT ContextID,
+ contextRequest [1] IMPLICIT ContextRequest OPTIONAL,
+ contextAttrAuditReq [2] IMPLICIT ContextAttrAuditRequest OPTIONAL,
+ commandRequests [3] IMPLICIT SEQUENCE OF CommandRequest
+ }
+
+ ActionReply ::= SEQUENCE
+ {
+ contextId [0] IMPLICIT ContextID,
+ errorDescriptor [1] IMPLICIT ErrorDescriptor OPTIONAL,
+ contextReply [2] IMPLICIT ContextRequest OPTIONAL,
+ commandReply [3] IMPLICIT SEQUENCE OF CommandReply
+ }
+
+ ContextRequest ::= SEQUENCE
+ {
+ priority [0] IMPLICIT INTEGER(0..15) OPTIONAL,
+ emergency [1] IMPLICIT BOOLEAN OPTIONAL,
+ topologyReq [2] IMPLICIT SEQUENCE OF TopologyRequest OPTIONAL,
+ ...
+ }
+
+ ContextAttrAuditRequest ::= SEQUENCE
+ {
+ topology [0] IMPLICIT NULL OPTIONAL,
+ emergency [1] IMPLICIT NULL OPTIONAL,
+ priority [2] IMPLICIT NULL OPTIONAL,
+ ...
+ }
+
+ CommandRequest ::= SEQUENCE
+ {
+ command [0] Command,
+ optional [1] IMPLICIT NULL OPTIONAL,
+ wildcardReturn [2] IMPLICIT NULL OPTIONAL,
+ ...
+ }
+
+ Command ::= CHOICE
+ {
+ addReq [0] IMPLICIT AmmRequest,
+ moveReq [1] IMPLICIT AmmRequest,
+ modReq [2] IMPLICIT AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq [3] IMPLICIT SubtractRequest,
+ auditCapRequest [4] IMPLICIT AuditRequest,
+ auditValueRequest [5] IMPLICIT AuditRequest,
+ notifyReq [6] IMPLICIT NotifyRequest,
+ serviceChangeReq [7] IMPLICIT ServiceChangeRequest,
+ ...
+ }
+
+ CommandReply ::= CHOICE
+ {
+ addReply [0] IMPLICIT AmmsReply,
+ moveReply [1] IMPLICIT AmmsReply,
+ modReply [2] IMPLICIT AmmsReply,
+ subtractReply [3] IMPLICIT AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply [4] AuditReply,
+ auditValueReply [5] AuditReply,
+ notifyReply [6] IMPLICIT NotifyReply,
+ serviceChangeReply [7] IMPLICIT ServiceChangeReply,
+ ...
+ }
+
+ TopologyRequest ::= SEQUENCE
+ {
+ terminationFrom [0] IMPLICIT TerminationID,
+ terminationTo [1] IMPLICIT TerminationID,
+ topologyDirection [2] IMPLICIT ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ },
+ ...,
+ streamID [3] IMPLICIT StreamID OPTIONAL
+ }
+
+ AmmRequest ::= SEQUENCE
+ {
+ terminationID [0] IMPLICIT TerminationIDList,
+ descriptors [1] IMPLICIT SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+ }
+
+ AmmDescriptor ::= CHOICE
+ {
+ mediaDescriptor [0] IMPLICIT MediaDescriptor,
+ modemDescriptor [1] IMPLICIT ModemDescriptor,
+ muxDescriptor [2] IMPLICIT MuxDescriptor,
+ eventsDescriptor [3] IMPLICIT EventsDescriptor,
+ eventBufferDescriptor [4] IMPLICIT EventBufferDescriptor,
+ signalsDescriptor [5] IMPLICIT SignalsDescriptor,
+ digitMapDescriptor [6] IMPLICIT DigitMapDescriptor,
+ auditDescriptor [7] IMPLICIT AuditDescriptor,
+ ...
+ }
+
+
+ AmmsReply ::= SEQUENCE
+ {
+ terminationID [0] IMPLICIT TerminationIDList,
+ terminationAudit [1] IMPLICIT TerminationAudit OPTIONAL,
+ ...
+ }
+
+ SubtractRequest ::= SEQUENCE
+ {
+ terminationID [0] IMPLICIT TerminationIDList,
+ auditDescriptor [1] IMPLICIT AuditDescriptor OPTIONAL,
+ ...
+ }
+
+ AuditRequest ::= SEQUENCE
+ {
+ terminationID [0] IMPLICIT TerminationID,
+ auditDescriptor [1] IMPLICIT AuditDescriptor,
+ ...
+ }
+
+ AuditReply ::= CHOICE
+ {
+ contextAuditResult [0] IMPLICIT TerminationIDList,
+ error [1] IMPLICIT ErrorDescriptor,
+ auditResult [2] IMPLICIT AuditResult,
+ ...
+ }
+
+ AuditResult ::= SEQUENCE
+ {
+
+ terminationID [0] IMPLICIT TerminationID,
+ terminationAuditResult [1] IMPLICIT TerminationAudit
+ }
+
+
+
+ TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+ AuditReturnParameter ::= CHOICE
+ {
+ errorDescriptor [0] IMPLICIT ErrorDescriptor,
+ mediaDescriptor [1] IMPLICIT MediaDescriptor,
+ modemDescriptor [2] IMPLICIT ModemDescriptor,
+ muxDescriptor [3] IMPLICIT MuxDescriptor,
+ eventsDescriptor [4] IMPLICIT EventsDescriptor,
+ eventBufferDescriptor [5] IMPLICIT EventBufferDescriptor,
+ signalsDescriptor [6] IMPLICIT SignalsDescriptor,
+ digitMapDescriptor [7] IMPLICIT DigitMapDescriptor,
+ observedEventsDescriptor [8] IMPLICIT ObservedEventsDescriptor,
+ statisticsDescriptor [9] IMPLICIT StatisticsDescriptor,
+ packagesDescriptor [10] IMPLICIT PackagesDescriptor,
+ emptyDescriptors [11] IMPLICIT AuditDescriptor,
+ ...
+ }
+
+ AuditDescriptor ::= SEQUENCE
+ {
+ auditToken [0] IMPLICIT BIT STRING
+ {
+ muxToken(0), modemToken(1), mediaToken(2),
+ eventsToken(3), signalsToken(4),
+ digitMapToken(5), statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8), eventBufferToken(9)
+ } OPTIONAL,
+ ...,
+ auditPropertyToken [1] IMPLICIT SEQUENCE OF IndAuditParameter OPTIONAL
+ }
+
+ IndAuditParameter ::= CHOICE
+ {
+ indaudmediaDescriptor [0] IMPLICIT IndAudMediaDescriptor,
+ indaudeventsDescriptor [1] IMPLICIT IndAudEventsDescriptor,
+ indaudeventBufferDescriptor [2] IMPLICIT IndAudEventBufferDescriptor,
+ indaudsignalsDescriptor [3] IndAudSignalsDescriptor,
+ indauddigitMapDescriptor [4] IMPLICIT IndAudDigitMapDescriptor,
+ indaudstatisticsDescriptor [5] IMPLICIT IndAudStatisticsDescriptor,
+ indaudpackagesDescriptor [6] IMPLICIT IndAudPackagesDescriptor,
+ ...
+ }
+
+ IndAudMediaDescriptor ::= SEQUENCE
+ {
+
+ termStateDescr [0] IMPLICIT IndAudTerminationStateDescriptor OPTIONAL,
+ streams [1] CHOICE
+ {
+ oneStream [0] IMPLICIT IndAudStreamParms,
+ multiStream [1] IMPLICIT SEQUENCE OF IndAudStreamDescriptor
+ } OPTIONAL,
+ ...
+ }
+
+ IndAudStreamDescriptor ::= SEQUENCE
+ {
+ streamID [0] IMPLICIT StreamID,
+ streamParms [1] IMPLICIT IndAudStreamParms
+ }
+
+ IndAudStreamParms ::= SEQUENCE
+ {
+ localControlDescriptor [0] IMPLICIT IndAudLocalControlDescriptor OPTIONAL,
+ localDescriptor [1] IMPLICIT IndAudLocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor [2] IMPLICIT IndAudLocalRemoteDescriptor OPTIONAL,
+ ...
+ }
+
+ IndAudLocalControlDescriptor ::= SEQUENCE
+ {
+ streamMode [0] IMPLICIT NULL OPTIONAL,
+ reserveValue [1] IMPLICIT NULL OPTIONAL,
+ reserveGroup [2] IMPLICIT NULL OPTIONAL,
+ propertyParms [3] IMPLICIT IndAudPropertyParms OPTIONAL,
+ ...
+ }
+
+ IndAudPropertyParm ::= SEQUENCE
+ {
+ name [0] IMPLICIT PkgdName,
+ ...
+ }
+
+ IndAudPropertyParms ::= SEQUENCE OF IndAudPropertyParm
+
+ IndAudLocalRemoteDescriptor ::= SEQUENCE
+ {
+ propGroupID [0] IMPLICIT INTEGER(0..65535) OPTIONAL,
+ propGrps [1] IMPLICIT IndAudPropertyGroup,
+ ...
+ }
+
+ IndAudPropertyGroup ::= SEQUENCE OF IndAudPropertyParm
+
+ IndAudTerminationStateDescriptor ::= SEQUENCE
+ {
+ propertyParms [0] IMPLICIT IndAudPropertyParms,
+ eventBufferControl [1] IMPLICIT NULL OPTIONAL,
+ serviceState [2] IMPLICIT NULL OPTIONAL,
+ ...
+ }
+
+ IndAudEventsDescriptor ::= SEQUENCE
+ {
+ requestID [0] IMPLICIT RequestID OPTIONAL,
+ pkgdName [1] IMPLICIT PkgdName,
+ streamID [2] IMPLICIT StreamID OPTIONAL,
+ ...
+ }
+
+ IndAudEventBufferDescriptor ::= SEQUENCE
+ {
+ eventName [0] IMPLICIT PkgdName,
+ streamID [1] IMPLICIT StreamID OPTIONAL,
+ ...
+ }
+
+ IndAudSignalsDescriptor ::=CHOICE
+ {
+ signal [0] IMPLICIT IndAudSignal,
+ seqSigList [1] IMPLICIT IndAudSeqSigList,
+ ...
+ }
+
+ IndAudSeqSigList ::= SEQUENCE
+ {
+ id [0] IMPLICIT INTEGER(0..65535),
+ signalList [1] IMPLICIT IndAudSignal OPTIONAL
+ }
+
+ IndAudSignal ::= SEQUENCE
+ {
+ signalName [0] IMPLICIT PkgdName,
+ streamID [1] IMPLICIT StreamID OPTIONAL,
+ ...
+ }
+
+ IndAudDigitMapDescriptor ::= SEQUENCE
+ {
+ digitMapName [0] IMPLICIT DigitMapName OPTIONAL
+ }
+
+ IndAudStatisticsDescriptor ::= SEQUENCE
+ {
+ statName [0] IMPLICIT PkgdName
+ }
+
+ IndAudPackagesDescriptor ::= SEQUENCE
+ {
+ packageName [0] IMPLICIT Name,
+ packageVersion [1] IMPLICIT INTEGER(0..99),
+ ...
+ }
+
+ NotifyRequest ::= SEQUENCE
+ {
+ terminationID [0] IMPLICIT TerminationIDList,
+ observedEventsDescriptor [1] IMPLICIT ObservedEventsDescriptor,
+ errorDescriptor [2] IMPLICIT ErrorDescriptor OPTIONAL,
+ ...
+ }
+
+ NotifyReply ::= SEQUENCE
+ {
+ terminationID [0] IMPLICIT TerminationIDList,
+ errorDescriptor [1] IMPLICIT ErrorDescriptor OPTIONAL,
+ ...
+ }
+
+ ObservedEventsDescriptor ::= SEQUENCE
+ {
+ requestId [0] IMPLICIT RequestID,
+ observedEventLst [1] IMPLICIT SEQUENCE OF ObservedEvent
+ }
+
+ ObservedEvent ::= SEQUENCE
+ {
+ eventName [0] IMPLICIT EventName,
+ streamID [1] IMPLICIT StreamID OPTIONAL,
+ eventParList [2] IMPLICIT EventParameters,
+ timeNotation [3] IMPLICIT TimeNotation OPTIONAL,
+ ...
+ }
+
+ EventName ::= OCTET STRING
+
+ ExtraInfo ::= CHOICE
+ {
+ relation [0] IMPLICIT Relation,
+ range [1] IMPLICIT BOOLEAN,
+ sublist [2] IMPLICIT BOOLEAN
+ }
+
+ EventParameter ::= SEQUENCE
+ {
+ eventParameterName [0] IMPLICIT EventParameterName,
+ eventParamValue [1] IMPLICIT EventParamValues,
+
+ -- For use of extraInfo see the comment related to PropertyParm
+ extraInfo [2] ExtraInfo OPTIONAL,
+ ...
+
+ }
+
+ EventParameterName ::= Name
+
+ EventParamValues ::= SEQUENCE OF EventParamValue
+
+ EventParamValue ::= OCTET STRING
+
+ EventParameters ::= SEQUENCE OF EventParameter
+
+ ServiceChangeRequest ::= SEQUENCE
+ {
+ terminationID [0] IMPLICIT TerminationIDList,
+ serviceChangeParms [1] IMPLICIT ServiceChangeParm,
+ ...
+ }
+
+ ServiceChangeReply ::= SEQUENCE
+ {
+ terminationID [0] IMPLICIT TerminationIDList,
+ serviceChangeResult [1] ServiceChangeResult,
+ ...
+ }
+
+ -- For ServiceChangeResult, no parameters are mandatory. Hence the
+ -- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ ServiceChangeResult ::= CHOICE
+ {
+ errorDescriptor [0] IMPLICIT ErrorDescriptor,
+ serviceChangeResParms [1] IMPLICIT ServiceChangeResParm
+ }
+
+ WildcardField ::= OCTET STRING(SIZE(1))
+
+ TerminationID ::= SEQUENCE
+ {
+ wildcard [0] IMPLICIT SEQUENCE OF WildcardField,
+ id [1] IMPLICIT OCTET STRING(SIZE(1..8)),
+ ...
+ }
+ -- See A.1 for explanation of wildcarding mechanism.
+ -- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
+
+ TerminationIDList ::= SEQUENCE OF TerminationID
+
+
+ MediaDescriptor ::= SEQUENCE
+ {
+ termStateDescr [0] IMPLICIT TerminationStateDescriptor OPTIONAL,
+ streams [1] CHOICE
+ {
+ oneStream [0] IMPLICIT StreamParms,
+ multiStream [1] IMPLICIT SEQUENCE OF StreamDescriptor
+ } OPTIONAL,
+ ...
+ }
+
+ StreamDescriptor ::= SEQUENCE
+ {
+ streamID [0] IMPLICIT StreamID,
+ streamParms [1] IMPLICIT StreamParms
+ }
+
+ StreamParms ::= SEQUENCE
+ {
+ localControlDescriptor [0] IMPLICIT LocalControlDescriptor OPTIONAL,
+ localDescriptor [1] IMPLICIT LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor [2] IMPLICIT LocalRemoteDescriptor OPTIONAL,
+ ...
+ }
+
+ LocalControlDescriptor ::= SEQUENCE
+ {
+ streamMode [0] IMPLICIT StreamMode OPTIONAL,
+ reserveValue [1] IMPLICIT BOOLEAN OPTIONAL,
+ reserveGroup [2] IMPLICIT BOOLEAN OPTIONAL,
+ propertyParms [3] IMPLICIT PropertyParms,
+ ...
+ }
+
+ 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
+ {
+ propertyName [0] IMPLICIT PkgdName,
+ value [1] IMPLICIT SEQUENCE OF PropertyID,
+ extraInfo [2] ExtraInfo OPTIONAL,
+ ...
+ }
+
+ PropertyParms ::= SEQUENCE OF PropertyParm
+
+ Name ::= OCTET STRING(SIZE(2))
+
+ PkgdName ::= OCTET STRING(SIZE(4))
+ -- represents Package Name (2 octets) plus Property, Event,
+ -- Signal Names or Statistics ID. (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.
+ -- To wildcard a Property, Event, Signal, or Statistics ID, use
+ -- 0xFFFF for last two octets, choose is not allowed.
+ -- Wildcarding of Package Name is permitted only if Property,
+ -- Event, Signal, or Statistics ID are
+ -- also wildcarded.
+ PropertyID ::= OCTET STRING
+
+ Relation ::= ENUMERATED
+ {
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+ ...
+ }
+
+ LocalRemoteDescriptor ::= SEQUENCE
+ {
+ propGrps [0] IMPLICIT SEQUENCE OF PropertyGroup,
+ ...
+ }
+
+ PropertyGroup ::= SEQUENCE OF PropertyParm
+
+ TerminationStateDescriptor ::= SEQUENCE
+ {
+ propertyParms [0] IMPLICIT PropertyParms,
+ eventBufferControl [1] IMPLICIT EventBufferControl OPTIONAL,
+ serviceState [2] IMPLICIT ServiceState OPTIONAL,
+ ...
+ }
+
+ EventBufferControl ::= ENUMERATED
+ {
+ off(0),
+ lockStep(1),
+ ...
+ }
+
+ ServiceState ::= ENUMERATED
+ {
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+ }
+
+ MuxDescriptor ::= SEQUENCE
+ {
+ muxType [0] IMPLICIT MuxType,
+ termList [1] IMPLICIT SEQUENCE OF TerminationID,
+ nonStandardData [2] IMPLICIT NonStandardData OPTIONAL,
+ ...
+ }
+
+ MuxType ::= ENUMERATED
+ {
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...,
+ nx64k(4)
+ }
+
+ StreamID ::= INTEGER(0..65535) -- 16-bit unsigned integer
+
+ EventsDescriptor ::= SEQUENCE
+ {
+ requestID [0] IMPLICIT RequestID OPTIONAL,
+ -- RequestID must be present if eventList
+ -- is non empty
+ eventList [1] IMPLICIT RequestedEvents,
+ ...
+ }
+
+ RequestedEvent ::= SEQUENCE
+ {
+ pkgdName [0] IMPLICIT EventName,
+ streamID [1] IMPLICIT StreamID OPTIONAL,
+ eventAction [2] IMPLICIT RequestedActions OPTIONAL,
+ evParList [3] IMPLICIT EventParameters,
+ ...
+ }
+
+ RequestedEvents ::= SEQUENCE OF RequestedEvent
+
+ RequestedActions ::= SEQUENCE
+ {
+ keepActive [0] IMPLICIT BOOLEAN OPTIONAL,
+ eventDM [1] EventDM OPTIONAL,
+ secondEvent [2] IMPLICIT SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor [3] IMPLICIT SignalsDescriptor OPTIONAL,
+ ...
+ }
+
+ EventDM ::= CHOICE
+ {
+ digitMapName [0] IMPLICIT DigitMapName,
+ digitMapValue [1] IMPLICIT DigitMapValue
+ }
+
+ SecondEventsDescriptor ::= SEQUENCE
+ {
+ requestID [0] IMPLICIT RequestID OPTIONAL,
+ eventList [1] IMPLICIT SEQUENCE OF SecondRequestedEvent,
+ ...
+ }
+
+ SecondRequestedEvent ::= SEQUENCE
+ {
+ pkgdName [0] IMPLICIT EventName,
+ streamID [1] IMPLICIT StreamID OPTIONAL,
+ eventAction [2] IMPLICIT SecondRequestedActions OPTIONAL,
+ evParList [3] IMPLICIT EventParameters,
+ ...
+ }
+
+ SecondRequestedActions ::= SEQUENCE
+ {
+ keepActive [0] IMPLICIT BOOLEAN OPTIONAL,
+ eventDM [1] EventDM OPTIONAL,
+ signalsDescriptor [2] IMPLICIT SignalsDescriptor OPTIONAL,
+ ...
+ }
+
+ EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+ EventSpec ::= SEQUENCE
+ {
+ eventName [0] IMPLICIT EventName,
+ streamID [1] IMPLICIT StreamID OPTIONAL,
+ eventParList [2] IMPLICIT EventParameters,
+ ...
+ }
+
+
+ SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+ SignalRequest ::= CHOICE
+ {
+ signal [0] IMPLICIT Signal,
+ seqSigList [1] IMPLICIT SeqSigList,
+ ...
+ }
+
+ SeqSigList ::= SEQUENCE
+ {
+ id [0] IMPLICIT INTEGER(0..65535),
+ signalList [1] IMPLICIT SEQUENCE OF Signal
+ }
+
+ Signal ::= SEQUENCE
+ {
+ signalName [0] IMPLICIT SignalName,
+ streamID [1] IMPLICIT StreamID OPTIONAL,
+ sigType [2] IMPLICIT SignalType OPTIONAL,
+ duration [3] IMPLICIT INTEGER (0..65535) OPTIONAL,
+ notifyCompletion [4] IMPLICIT NotifyCompletion OPTIONAL,
+ keepActive [5] IMPLICIT BOOLEAN OPTIONAL,
+ sigParList [6] IMPLICIT SEQUENCE OF SigParameter,
+ ...
+ }
+
+ SignalType ::= ENUMERATED
+ {
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+ }
+
+ SignalName ::= OCTET STRING
+
+ NotifyCompletion ::= BIT STRING
+ {
+ onTimeOut(0), onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2), otherReason(3)
+ }
+
+ SigParameter ::= SEQUENCE
+ {
+ sigParameterName [0] IMPLICIT SigParameterName,
+ sigParameterValue [1] IMPLICIT SigParamValues,
+ -- For use of extraInfo see the comment related to PropertyParm
+ extraInfo [2] ExtraInfo OPTIONAL,
+ ...
+ }
+
+ SigParameterName ::= Name
+
+ SigParamValues ::= SEQUENCE OF SigParamValue
+
+ SigParamValue ::= OCTET STRING
+
+ -- For an AuditCapReply with all events, the RequestID SHALL be ALL.
+ -- ALL is represented by 0xffffffff.
+
+ RequestID ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
+
+ ModemDescriptor ::= SEQUENCE
+ {
+ mtl [0] IMPLICIT SEQUENCE OF ModemType,
+ mpl [1] IMPLICIT PropertyParms,
+ nonStandardData [2] IMPLICIT 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 [0] IMPLICIT DigitMapName OPTIONAL,
+ digitMapValue [1] IMPLICIT DigitMapValue OPTIONAL
+ }
+
+ DigitMapName ::= Name
+
+ DigitMapValue ::= SEQUENCE
+ {
+ startTimer [0] IMPLICIT INTEGER(0..99) OPTIONAL,
+ shortTimer [1] IMPLICIT INTEGER(0..99) OPTIONAL,
+ longTimer [2] IMPLICIT INTEGER(0..99) OPTIONAL,
+ digitMapBody [3] IMPLICIT IA5String,
+ -- Units are seconds for start, short and long timers, and
+ -- hundreds of milliseconds for duration timer. Thus start,
+ -- short, and long range from 1 to 99 seconds and duration
+ -- from 100 ms to 9.9 s
+ -- See A.3 for explanation of digit map syntax
+ ...,
+ durationTimer [4] IMPLICIT INTEGER (0..99) OPTIONAL
+ }
+
+ ServiceChangeParm ::= SEQUENCE
+ {
+ serviceChangeMethod [0] IMPLICIT ServiceChangeMethod,
+ serviceChangeAddress [1] ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion [2] IMPLICIT INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile [3] IMPLICIT ServiceChangeProfile OPTIONAL,
+ serviceChangeReason [4] IMPLICIT Value,
+ -- A serviceChangeReason consists of a numeric reason code
+ -- and an optional text description.
+ -- The serviceChangeReason SHALL be a string consisting of
+ -- a decimal reason code, optionally followed by a single
+ -- space character and a textual description string.
+ -- This string is first BER-encoded as an IA5String.
+ -- The result of this BER-encoding is then encoded as
+ -- an ASN.1 OCTET STRING type, "double wrapping" the
+ -- value
+ -- as was done for package elements.
+ serviceChangeDelay [5] IMPLICIT INTEGER(0..4294967295) OPTIONAL,
+ -- 32-bit unsigned integer
+ serviceChangeMgcId [6] MId OPTIONAL,
+ timeStamp [7] IMPLICIT TimeNotation OPTIONAL,
+ nonStandardData [8] IMPLICIT NonStandardData OPTIONAL,
+ ...,
+ serviceChangeInfo [9] IMPLICIT AuditDescriptor OPTIONAL
+ }
+
+ ServiceChangeAddress ::= CHOICE
+ {
+ portNumber [0] IMPLICIT INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address [1] IMPLICIT IP4Address,
+ ip6Address [2] IMPLICIT IP6Address,
+ domainName [3] IMPLICIT DomainName,
+ deviceName [4] IMPLICIT PathName,
+ mtpAddress [5] IMPLICIT MtpAddress,
+ ...
+ }
+
+ ServiceChangeResParm ::= SEQUENCE
+ {
+ serviceChangeMgcId [0] MId OPTIONAL,
+ serviceChangeAddress [1] ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion [2] IMPLICIT INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile [3] IMPLICIT ServiceChangeProfile OPTIONAL,
+ timestamp [4] IMPLICIT TimeNotation OPTIONAL,
+ ...
+ }
+
+ ServiceChangeMethod ::= ENUMERATED
+ {
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+ }
+
+ ServiceChangeProfile ::= SEQUENCE
+ {
+ profileName [0] IMPLICIT IA5String(SIZE (1..67))
+
+ -- 64 characters for name, 1 for "/", 2 for version to match ABNF
+ }
+
+ PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+ PackagesItem ::= SEQUENCE
+ {
+ packageName [0] IMPLICIT Name,
+ packageVersion [1] IMPLICIT INTEGER(0..99),
+ ...
+ }
+
+ StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+ StatisticsParameter ::= SEQUENCE
+ {
+ statName [0] IMPLICIT PkgdName,
+ statValue [1] IMPLICIT Value OPTIONAL
+ }
+
+ NonStandardData ::= SEQUENCE
+ {
+ nonStandardIdentifier [0] NonStandardIdentifier,
+ data [1] IMPLICIT OCTET STRING
+ }
+
+ NonStandardIdentifier ::= CHOICE
+ {
+ object [0] IMPLICIT OBJECT IDENTIFIER,
+ h221NonStandard [1] IMPLICIT H221NonStandard,
+ experimental [2] IMPLICIT IA5String(SIZE(8)),
+ -- first two characters SHOULD be "X-" or "X+"
+ ...
+ }
+
+ H221NonStandard ::= SEQUENCE
+ { t35CountryCode1 [0] IMPLICIT INTEGER(0..255),
+ t35CountryCode2 [1] IMPLICIT INTEGER(0..255), -- country, as per T.35
+ t35Extension [2] IMPLICIT INTEGER(0..255), -- assigned nationally
+ manufacturerCode [3] IMPLICIT INTEGER(0..65535), -- assigned nationally
+ ...
+ }
+
+ TimeNotation ::= SEQUENCE
+ {
+ date [0] IMPLICIT IA5String(SIZE(8)), -- yyyymmdd format
+ time [1] IMPLICIT IA5String(SIZE(8)) -- hhmmssss format
+ -- per ISO 8601:1988
+ }
+
+ Value ::= SEQUENCE OF OCTET STRING
+
+ END
diff --git a/epan/dissectors/asn1/h248/Makefile.am b/epan/dissectors/asn1/h248/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h248/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h248/Makefile.common b/epan/dissectors/asn1/h248/Makefile.common
new file mode 100644
index 0000000000..962177603d
--- /dev/null
+++ b/epan/dissectors/asn1/h248/Makefile.common
@@ -0,0 +1,48 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=h248
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ h248v3.asn \
+ h248v1support.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ MEGACO.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/h248/Makefile.nmake b/epan/dissectors/asn1/h248/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/h248/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/h248/h248.cnf b/epan/dissectors/asn1/h248/h248.cnf
new file mode 100644
index 0000000000..ded860ef76
--- /dev/null
+++ b/epan/dissectors/asn1/h248/h248.cnf
@@ -0,0 +1,403 @@
+# h248.cnf
+# H.248 conformation file
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.PDU
+
+#.NO_EMIT
+MtpAddress
+PkgdName
+ErrorCode
+PropertyID
+SignalName
+SigParameterName
+SigParamValue
+EventName
+EventParameterName
+EventParamValue
+ContextID
+EventParamValueV1
+SigParamValueV1
+
+#.TYPE_RENAME
+IndAudMediaDescriptor/streams IndAudMediaDescriptorStreams
+ActionRequest/contextId ContextId
+ActionReply/contextId ContextId
+StatisticsParameter/statName StatName
+StatisticsParameter/statValue StatValue
+PropertyParm/propertyName PropertyName
+EventParameter/extraInfo EventPar_extraInfo
+PropertyParm/extraInfo PropParm_extraInfo
+ContextRequest/iepscallind Iepscallind_BOOL
+
+#.FIELD_RENAME
+IP4Address/address iP4Address
+IP6Address/address iP6Address
+ContextAttrAuditRequest/emergency cAAREmergency
+ContextAttrAuditRequest/priority cAARPriority
+SecondRequestedEvent/eventAction secondaryEventAction
+TerminationStateDescriptor/eventBufferControl tSEventBufferControl
+SecondEventsDescriptor/eventList secondaryEventList
+IndAudEventBufferDescriptor/eventName iAEBDEventName
+TerminationID/id terminationId
+IndAudStreamParms/localControlDescriptor iASPLocalControlDescriptor
+IndAudStreamParms/localDescriptor iASPLocalDescriptor
+LocalControlDescriptor/propertyParms lCDpropertyParms
+TerminationStateDescriptor/propertyParms tSDpropertyParms
+MediaDescriptor/streams/oneStream mediaDescriptorOneStream
+MediaDescriptor/streams/multiStream mediaDescriptorMultiStream
+MediaDescriptor/streams/multiStream/_item mediaDescriptorMultiStream_item
+DomainName/name domName
+IndAudEventsDescriptor/pkgdName iAEDPkgdName
+IndAudLocalRemoteDescriptor/propGrps iAPropertyGroup
+IndAudLocalControlDescriptor/propertyParms indAudPropertyParms
+IndAudTerminationStateDescriptor/propertyParms indAudPropertyParms
+IndAudLocalControlDescriptor/reserveGroup iALCDReserveGroup
+IndAudLocalControlDescriptor/reserveValue iALCDReserveValue
+IndAudLocalControlDescriptor/streamMode iALCDStreamMode
+IndAudStreamDescriptor/streamParms indAudStreamParms
+IndAudMediaDescriptor/termStateDescr indAudTerminationStateDescriptor
+IndAudSignal/signalName iASignalName
+IndAudSeqSigList/signalList iASignalList
+IndAudSignalsDescriptor/signal indAudSignal
+IndAudSignalsDescriptor/seqSigList indAudSeqSigList
+IndAudTerminationStateDescriptor/serviceState iATSDServiceState
+IndAudStreamParms/remoteDescriptor iASPRemoteDescriptor
+PropertyParm/value propertyParamValue
+IndAudMediaDescriptor/streams indAudMediaDescriptorStreams
+AmmRequest/terminationID terminationIDList
+AmmsReply/terminationID terminationIDList
+AmmDescriptor/statisticsDescriptor aDstatisticsDescriptor
+AuditReturnParameter/statisticsDescriptor aRPstatisticsDescriptor
+StreamParms/statisticsDescriptor sPstatisticsDescriptor
+SubtractRequest/terminationID terminationIDList
+NotifyRequest/terminationID terminationIDList
+NotifyReply/terminationID terminationIDList
+ServiceChangeRequest/terminationID terminationIDList
+ServiceChangeReply/terminationID terminationIDList
+IndAudStatisticsDescriptor/statName iAStatName
+EventParameter/extraInfo eventPar_extraInfo
+PropertyParm/extraInfo propParm_extraInfo
+ContextRequest/iepscallind iepscallind_BOOL
+TransactionRequest/transactionId transactionId
+SegmentReply/transactionId seg_rep_transactionId
+TransactionReply/transactionId trep_transactionId
+TransactionPending/transactionId tpend_transactionId
+EventParameterV1/value event_param_value
+SigParameterV1/value sig_param_value
+AuditReplyV1/auditResult audit_result
+
+
+#.FN_HDR Message
+ curr_info.msg = gcp_msg(actx->pinfo,tvb_raw_offset(tvb),keep_persistent_data);
+#.END
+
+#.FN_FTR Message
+ col_add_str(actx->pinfo->cinfo, COL_INFO, gcp_msg_to_str(curr_info.msg,keep_persistent_data));
+
+ if (keep_persistent_data)
+ gcp_analyze_msg(h248_tree, actx->pinfo, h248_tvb, curr_info.msg, &h248_arrel, &ei_h248_errored_command);
+#.END
+
+#.FN_BODY Message/version VAL_PTR = &h248_version
+ %(DEFAULT_BODY)s
+#.END
+
+#.FN_BODY TransactionRequest/transactionId
+ guint32 trx_id = 0;
+ offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
+ curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_REQUEST, keep_persistent_data);
+ error_code = 0;
+#.END
+
+#.FN_BODY TransactionPending/transactionId
+ guint32 trx_id = 0;
+ offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
+ curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_PENDING, keep_persistent_data);
+ error_code = 0;
+
+#.FN_BODY TransactionReply/transactionId
+ guint32 trx_id = 0;
+ offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
+ curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_REPLY, keep_persistent_data);
+ error_code = 0;
+
+#.FN_BODY SegmentReply/transactionId
+ guint32 trx_id = 0;
+ offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
+ curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_ACK, keep_persistent_data);
+ error_code = 0;
+
+#.FN_BODY ActionRequest/contextId
+ guint32 ctx_id = 0;
+ offset = dissect_h248_ctx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &ctx_id);
+ curr_info.ctx = gcp_ctx(curr_info.msg,curr_info.trx,ctx_id,keep_persistent_data);
+ curr_info.cmd = NULL;
+ curr_info.term = NULL;
+#.END
+
+
+#.FN_FTR ActionReply
+ if (!curr_info.cmd) {
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+ }
+#.END
+
+#.FN_HDR Command/addReq
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_ADD_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_FTR Command/addReq
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR Command/moveReq
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOVE_REQ,offset,keep_persistent_data);
+ H248_TAP();
+
+#.END
+
+#.FN_FTR Command/moveReq
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR Command/modReq
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOD_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+#.FN_FTR Command/modReq
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR Command/subtractReq
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SUB_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+#.FN_FTR Command/subtractReq
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR Command/auditCapRequest
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITCAP_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+#.FN_FTR Command/auditCapRequest
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR Command/auditValueRequest
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+#.FN_FTR Command/auditValueRequest
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR Command/notifyReq
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_NOTIFY_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+#.FN_FTR Command/notifyReq
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR ServiceChangeRequest
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SVCCHG_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+#.FN_FTR ServiceChangeRequest
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR ContextRequest/topologyReq
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_TOPOLOGY_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+#.FN_FTR ContextRequest/topologyReq
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR ActionRequest/contextAttrAuditReq
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_CTX_ATTR_AUDIT_REQ,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+#.FN_FTR ActionRequest/contextAttrAuditReq
+ curr_info.cmd = NULL;
+#.END
+
+#.FN_HDR CommandReply/addReply
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_ADD_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_HDR CommandReply/moveReply
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOVE_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_HDR CommandReply/modReply
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOD_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_HDR CommandReply/subtractReply
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SUB_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_HDR CommandReply/notifyReply
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_NOTIFY_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_HDR ServiceChangeReply
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SVCCHG_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_HDR CommandReply/auditCapReply
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITCAP_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_BODY CommandReply/auditCapReply
+/* h248v1 support */
+ if(h248_version > 1) {
+ %(DEFAULT_BODY)s
+} else {
+ /* call V1 of the dissector */
+ offset = dissect_h248_AuditReplyV1(implicit_tag, tvb, offset, actx, tree, hf_index);
+}
+#.END
+
+#.FN_HDR CommandReply/auditValueReply
+ curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REPLY,offset,keep_persistent_data);
+ H248_TAP();
+#.END
+
+#.FN_BODY CommandReply/auditValueReply
+/* h248v1 support */
+ if(h248_version > 1) {
+ %(DEFAULT_BODY)s
+} else {
+ /* call V1 of the dissector */
+ offset = dissect_h248_AuditReplyV1(implicit_tag, tvb, offset, actx, tree, hf_index);
+}
+#.END
+
+#.FN_BODY AuditReplyV1
+/* h248v1 support */
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AuditReplyV1_sequence, hf_h248_auditValueReplyV1, ett_h248_AuditReplyV1);
+#.END
+
+#.FN_BODY ErrorDescriptor/errorCode
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, &error_code);
+ expert_add_info(actx->pinfo, actx->created_item, &ei_h248_errored_command);
+
+ if (curr_info.cmd) {
+ gcp_cmd_set_error(curr_info.cmd,error_code);
+ } else if (curr_info.trx) {
+ gcp_trx_set_error(curr_info.trx,error_code);
+ }
+
+ return offset;
+#.END
+
+#.FN_HDR TerminationID
+ curr_info.term = wmem_new0(wmem_packet_scope(), gcp_term_t);
+ wild_term = GCP_WILDCARD_NONE;
+#.END
+
+#.FN_BODY WildcardField
+ tvbuff_t* new_tvb;
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
+ tree = proto_item_add_subtree(actx->created_item,ett_wildcard);
+ proto_tree_add_item(tree,hf_h248_term_wild_type,new_tvb,0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree,hf_h248_term_wild_level,new_tvb,0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree,hf_h248_term_wild_position,new_tvb,0,1,ENC_BIG_ENDIAN);
+
+ wild_term = tvb_get_guint8(new_tvb,0) & 0x80 ? GCP_WILDCARD_CHOOSE : GCP_WILDCARD_ALL;
+ /* limitation: assume only one wildcard is used */
+ wild_card = tvb_get_guint8(new_tvb,0);
+
+#.END
+
+#.FN_BODY TerminationID/id
+ tvbuff_t* new_tvb;
+ h248_term_info_t term_info;
+
+ term_info.wild_card = wild_card;
+ term_info.str = NULL;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
+
+ if (new_tvb) {
+ curr_info.term->len = tvb_reported_length(new_tvb);
+ curr_info.term->type = 0; /* unknown */
+
+ if (h248_term_handle) {
+ call_dissector_with_data(h248_term_handle, new_tvb, actx->pinfo, tree, &term_info);
+ wild_card = 0xFF;
+ }
+
+ if (curr_info.term->len) {
+ curr_info.term->buffer = (guint8 *)tvb_memdup(wmem_packet_scope(),new_tvb,0,curr_info.term->len);
+ if(term_info.str){
+ curr_info.term->str = wmem_strdup_printf(wmem_packet_scope(), "%s %s",
+ bytestring_to_str(wmem_packet_scope(),curr_info.term->buffer,curr_info.term->len, 0),
+ term_info.str);
+ }else{
+ curr_info.term->str = bytestring_to_str(wmem_packet_scope(),curr_info.term->buffer,curr_info.term->len, 0);
+ }
+ }
+
+
+ curr_info.term = gcp_cmd_add_term(curr_info.msg, curr_info.trx, curr_info.cmd, curr_info.term, wild_term, keep_persistent_data);
+
+ } else {
+ curr_info.term->len = 0;
+ curr_info.term->buffer = (guint8*)wmem_strdup(wmem_packet_scope(), "");
+ curr_info.term->str = wmem_strdup(wmem_packet_scope(), "?");
+ }
+#.END
+
+#.FN_BODY SCreasonValueOctetStr VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ %(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ dissect_h248_ServiceChangeReasonStr(FALSE, parameter_tvb, 0, actx, tree, hf_h248_serviceChangeReasonStr);
+#.END
+
+#.FN_BODY EventParameter
+/* H248 v1 support */
+ if (h248_version > 1) {
+ %(DEFAULT_BODY)s
+} else {
+ offset = dissect_h248_EventParameterV1( implicit_tag, tvb, offset, actx, tree, hf_index);
+}
+#.END
+
+#.FN_BODY SigParameter
+/* H248 v1 support */
+ if (h248_version > 1) {
+ %(DEFAULT_BODY)s
+} else {
+ offset = dissect_h248_SigParameterV1( implicit_tag, tvb, offset, actx, tree, hf_index);
+}
+#.END
+
+#.TYPE_ATTR
+IP4Address/address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+IP6Address/address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+ActionRequest/contextId TYPE = FT_UINT32 DISPLAY = BASE_HEX STRINGS = NULL
+ActionReply/contextId TYPE = FT_UINT32 DISPLAY = BASE_HEX STRINGS = NULL
+ErrorDescriptor/errorCode TYPE = FT_UINT32 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &h248_reasons_ext
diff --git a/epan/dissectors/asn1/h248/h248v1support.asn b/epan/dissectors/asn1/h248/h248v1support.asn
new file mode 100644
index 0000000000..093b3549e0
--- /dev/null
+++ b/epan/dissectors/asn1/h248/h248v1support.asn
@@ -0,0 +1,45 @@
+-- Required for support for h248v1
+--
+-- This file represents the differences between h248v1 and the h248v3, the current version
+-- This file is included in the Makefile generate_dissectors and related tasks necessary
+-- to generate epan/dissectors/packet-h248.[ch]
+
+H238V1-SUPPORT DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+ -- V1 version of AuditReply
+ AuditReplyV1 ::= SEQUENCE
+ {
+ terminationID [0] TerminationID,
+ auditResult [1] AuditResultV1
+ }
+
+ -- V1 Version of AuditResult
+ AuditResultV1 ::= CHOICE
+ {
+ contectAuditResult [0] TerminationID,
+ terminationAuditResult [1] TerminationAudit
+ }
+
+ -- V1
+ EventParameterV1 ::= SEQUENCE
+ {
+ eventParamterName [0] EventParameterName,
+ value [1] EventParamValueV1
+ }
+
+ -- V1
+
+ SigParameterV1 ::= SEQUENCE
+ {
+ sigParameterName [0] SigParameterName,
+ value [1] SigParamValueV1
+-- value [1] ValueV1
+
+ }
+
+-- ValueV1 ::= OCTET STRING
+ EventParamValueV1 ::= OCTET STRING
+ SigParamValueV1 ::= OCTET STRING
+
+END \ No newline at end of file
diff --git a/epan/dissectors/asn1/h248/h248v3.asn b/epan/dissectors/asn1/h248/h248v3.asn
new file mode 100644
index 0000000000..dd0347da19
--- /dev/null
+++ b/epan/dissectors/asn1/h248/h248v3.asn
@@ -0,0 +1,1101 @@
+MEDIA-GATEWAY-CONTROL {itu-t(0) recommendation(0) h(8) h248(248) modules(0)
+media-gateway-control(0) version3(3)}
+--
+-- Module MEDIA-GATEWAY-CONTROL (H.248.1:09/2005)
+-- See also ITU-T H.248.1 v3 (2005) Amend. 1 (05/2008)
+--
+--DEFINITIONS AUTOMATIC TAGS ::=
+--BEGIN
+-- Has been modified to pass through the ASN2ETH compiler
+-- (we dont support automatic tags yet so the tags had to be added by
+-- hand)
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+ MegacoMessage ::= SEQUENCE
+ {
+ authHeader [0] AuthenticationHeader OPTIONAL,
+ mess [1] Message
+ }
+
+ AuthenticationHeader ::= SEQUENCE
+ {
+ secParmIndex [0] SecurityParmIndex,
+ seqNum [1] SequenceNum,
+ ad [2] AuthData
+ }
+
+ SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+ SequenceNum ::= OCTET STRING(SIZE(4))
+
+ AuthData ::= OCTET STRING (SIZE (12..32))
+
+ Message ::= SEQUENCE
+ {
+ version [0] INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 3.
+ mId [1] MId, -- Name/address of message originator
+ messageBody [2] CHOICE
+ {
+ messageError [0] ErrorDescriptor,
+ transactions [1] SEQUENCE OF Transaction
+ },
+ ...
+ }
+
+ MId ::= CHOICE
+ {
+ ip4Address [0] IP4Address,
+ ip6Address [1] IP6Address,
+ domainName [2] DomainName,
+ deviceName [3] PathName,
+ mtpAddress [4] MtpAddress,
+ -- Addressing structure of mtpAddress:
+ -- 25 - 15 0
+ -- | PC | NI |
+ -- 24 - 14 bits 2 bits
+ -- NOTE - 14 bits are defined for international use.
+ -- Two national options exist where the point code is 16 or 24 bits.
+ -- To octet align the mtpAddress, the MSBs shall be encoded as 0s.
+ ...
+ }
+-- Wireshark specific
+ MtpAddress ::= OCTET STRING(SIZE(2..4))
+
+ DomainName ::= SEQUENCE
+ {
+ name [0] 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 [1] INTEGER(0..65535) OPTIONAL
+ }
+
+ IP4Address ::= SEQUENCE
+ {
+ address [0] OCTET STRING (SIZE(4)),
+ portNumber [1] INTEGER(0..65535) OPTIONAL
+ }
+
+ IP6Address ::= SEQUENCE
+ {
+ address [0] OCTET STRING (SIZE(16)),
+ portNumber [1] INTEGER(0..65535) OPTIONAL
+ }
+
+ PathName ::= IA5String(SIZE (1..64))
+ -- See A.3
+
+ Transaction ::= CHOICE
+ {
+ transactionRequest [0] TransactionRequest,
+ transactionPending [1] TransactionPending,
+ transactionReply [2] TransactionReply,
+ transactionResponseAck [3] TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...,
+ segmentReply [4] SegmentReply
+ }
+
+ TransactionId ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
+
+ TransactionRequest ::= SEQUENCE
+ {
+ transactionId [0] TransactionId,
+ actions [1] SEQUENCE OF ActionRequest,
+ ...
+ }
+
+ TransactionPending ::= SEQUENCE
+ {
+ transactionId [0] TransactionId,
+ ...
+ }
+
+ TransactionReply ::= SEQUENCE
+ {
+ transactionId [0] TransactionId,
+ immAckRequired [1] NULL OPTIONAL,
+ transactionResult [2] CHOICE
+ {
+ transactionError [0]ErrorDescriptor,
+ actionReplies [1] SEQUENCE OF ActionReply
+ },
+ ...,
+ segmentNumber [3] SegmentNumber OPTIONAL,
+ segmentationComplete [4] NULL OPTIONAL
+ }
+
+ SegmentReply ::= SEQUENCE
+ {
+ transactionId [0] TransactionId,
+ segmentNumber [1] SegmentNumber,
+ segmentationComplete [2] NULL OPTIONAL,
+ ...
+ }
+
+ SegmentNumber ::= INTEGER(0..65535)
+
+ TransactionResponseAck ::= SEQUENCE OF TransactionAck
+
+ TransactionAck ::= SEQUENCE
+ {
+ firstAck [0] TransactionId,
+ lastAck [1] TransactionId OPTIONAL
+ }
+
+ ErrorDescriptor ::= SEQUENCE
+ {
+ errorCode [0] ErrorCode,
+ errorText [1] ErrorText OPTIONAL
+ }
+
+ ErrorCode ::= INTEGER(0..65535)
+ -- See clause 14 for IANA considerations with respect to 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 [0] ContextID,
+ contextRequest [1] ContextRequest OPTIONAL,
+ contextAttrAuditReq [2] ContextAttrAuditRequest OPTIONAL,
+ commandRequests [3] SEQUENCE OF CommandRequest
+ }
+
+ ActionReply ::= SEQUENCE
+ {
+ contextId [0] ContextID,
+ errorDescriptor [1] ErrorDescriptor OPTIONAL,
+ contextReply [2] ContextRequest OPTIONAL,
+ commandReply [3] SEQUENCE OF CommandReply
+ }
+
+ -- WireShark Specific
+ ContextIDinList ::= INTEGER(0..4294967295)
+
+ ContextRequest ::= SEQUENCE
+ {
+ priority [0] INTEGER(0..15) OPTIONAL,
+ emergency [1] BOOLEAN OPTIONAL,
+ topologyReq [2] SEQUENCE OF TopologyRequest OPTIONAL,
+ ...,
+ iepscallind [3] BOOLEAN OPTIONAL,
+ contextProp [4] SEQUENCE OF PropertyParm OPTIONAL,
+
+ -- WireShark Specific
+ -- contextList [5] SEQUENCE OF ContextID OPTIONAL
+ contextList [5] SEQUENCE OF ContextIDinList OPTIONAL
+ -- Currently the way that WS tracing code's persistent data is
+ -- organized disallows to relate a request to multiple contexts
+ }
+
+-- When returning a contextList, the contextId in the ActionReply construct will
+-- return the contextId from the associated ActionRequest.
+
+ ContextAttrAuditRequest ::= SEQUENCE
+ {
+ topology [0] NULL OPTIONAL,
+ emergency [1] NULL OPTIONAL,
+ priority [2] NULL OPTIONAL,
+ ...,
+ iepscallind [3] NULL OPTIONAL,
+ contextPropAud [4] SEQUENCE OF IndAudPropertyParm OPTIONAL,
+ selectpriority [5] INTEGER(0..15) OPTIONAL,
+ -- to select given priority
+ selectemergency [6] BOOLEAN OPTIONAL,
+ -- to select if emergency set/not set (T/F)
+ selectiepscallind [7] BOOLEAN OPTIONAL,
+ -- to select if IEPS set/not set (T/F)
+ selectLogic [8] SelectLogic OPTIONAL -- default is AND
+ }
+
+ SelectLogic ::= CHOICE
+ {
+ andAUDITSelect [0] NULL, -- all filter conditions satisfied
+ orAUDITSelect [1] NULL, -- at least one filter condition satisfied
+ ...
+ }
+
+ CommandRequest ::= SEQUENCE
+ {
+ command [0] Command,
+ optional [1] NULL OPTIONAL,
+ wildcardReturn [2] NULL OPTIONAL,
+ ...
+ }
+
+ Command ::= CHOICE
+ {
+ addReq [0] AmmRequest,
+ moveReq [1] AmmRequest,
+ modReq [2] AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq [3] SubtractRequest,
+ auditCapRequest [4] AuditRequest,
+ auditValueRequest [5] AuditRequest,
+ notifyReq [6] NotifyRequest,
+ serviceChangeReq [7] ServiceChangeRequest,
+ ...
+ }
+
+ CommandReply ::= CHOICE
+ {
+ addReply [0] AmmsReply,
+ moveReply [1] AmmsReply,
+ modReply [2] AmmsReply,
+ subtractReply [3] AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply [4] AuditReply,
+ auditValueReply [5] AuditReply,
+ notifyReply [6] NotifyReply,
+ serviceChangeReply [7] ServiceChangeReply,
+ ...
+ }
+
+ TopologyRequest ::= SEQUENCE
+ {
+ terminationFrom [0] TerminationID,
+ terminationTo [1] TerminationID,
+ topologyDirection [2] ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ },
+ ...,
+ streamID [3]StreamID OPTIONAL,
+ topologyDirectionExtension [4] ENUMERATED
+ {
+ onewayexternal(0),
+ onewayboth(1),
+ ...
+ } OPTIONAL
+ }
+
+ AmmRequest ::= SEQUENCE
+ {
+ terminationID [0] TerminationIDList,
+ descriptors [1] SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+ }
+
+ AmmDescriptor ::= CHOICE
+ {
+ mediaDescriptor [0] MediaDescriptor,
+ modemDescriptor [1] ModemDescriptor,
+ muxDescriptor [2] MuxDescriptor,
+ eventsDescriptor [3] EventsDescriptor,
+ eventBufferDescriptor [4] EventBufferDescriptor,
+ signalsDescriptor [5] SignalsDescriptor,
+ digitMapDescriptor [6] DigitMapDescriptor,
+ auditDescriptor [7] AuditDescriptor,
+ ...,
+ statisticsDescriptor [8] StatisticsDescriptor
+ }
+
+ AmmsReply ::= SEQUENCE
+ {
+ terminationID [0] TerminationIDList,
+ terminationAudit [1]TerminationAudit OPTIONAL,
+ ...
+ }
+
+ SubtractRequest ::= SEQUENCE
+ {
+ terminationID [0] TerminationIDList,
+ auditDescriptor [1] AuditDescriptor OPTIONAL,
+ ...
+ }
+
+ AuditRequest ::= SEQUENCE
+ {
+ terminationID [0] TerminationID,
+ auditDescriptor [1] AuditDescriptor,
+ ...,
+ terminationIDList [3] TerminationIDList OPTIONAL
+ }
+ -- terminationID shall contain the first termination in the
+ -- list when using the terminationIDList construct in AuditRequest
+
+ AuditReply ::= CHOICE
+ {
+ contextAuditResult [0] TerminationIDList,
+ error [1] ErrorDescriptor,
+ auditResult [2] AuditResult,
+ ...,
+ auditResultTermList [3] TermListAuditResult
+ }
+
+ AuditResult ::= SEQUENCE
+ {
+ terminationID [0] TerminationID,
+ terminationAuditResult [1] TerminationAudit
+ }
+
+ TermListAuditResult ::= SEQUENCE
+ {
+ terminationIDList [0] TerminationIDList,
+ terminationAuditResult [1] TerminationAudit,
+ ...
+ }
+
+ TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+ AuditReturnParameter ::= CHOICE
+ {
+ errorDescriptor [0] ErrorDescriptor,
+ mediaDescriptor [1] MediaDescriptor,
+ modemDescriptor [2] ModemDescriptor,
+ muxDescriptor [3] MuxDescriptor,
+ eventsDescriptor [4] EventsDescriptor,
+ eventBufferDescriptor [5] EventBufferDescriptor,
+ signalsDescriptor [6] SignalsDescriptor,
+ digitMapDescriptor [7] DigitMapDescriptor,
+ observedEventsDescriptor [8] ObservedEventsDescriptor,
+ statisticsDescriptor [9] StatisticsDescriptor,
+ packagesDescriptor [10] PackagesDescriptor,
+ emptyDescriptors [11] AuditDescriptor,
+ ...
+ }
+
+ AuditDescriptor ::= SEQUENCE
+ {
+ auditToken [0] BIT STRING
+ {
+ muxToken(0),
+ modemToken(1),
+ mediaToken(2),
+ eventsToken(3),
+ signalsToken(4),
+ digitMapToken(5),
+ statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8),
+ eventBufferToken(9)
+ } OPTIONAL,
+ ...,
+ auditPropertyToken [1] SEQUENCE OF IndAuditParameter OPTIONAL
+ }
+
+ IndAuditParameter ::= CHOICE
+ {
+ indaudmediaDescriptor [0] IndAudMediaDescriptor,
+ indaudeventsDescriptor [1] IndAudEventsDescriptor,
+ indaudeventBufferDescriptor [2] IndAudEventBufferDescriptor,
+ indaudsignalsDescriptor [3] IndAudSignalsDescriptor,
+ indauddigitMapDescriptor [4] IndAudDigitMapDescriptor,
+ indaudstatisticsDescriptor [5] IndAudStatisticsDescriptor,
+ indaudpackagesDescriptor [6] IndAudPackagesDescriptor,
+ ...
+ }
+
+ IndAudMediaDescriptor ::= SEQUENCE
+ {
+ termStateDescr [0] IndAudTerminationStateDescriptor OPTIONAL,
+ streams [1] CHOICE
+ {
+ oneStream [0] IndAudStreamParms,
+ multiStream [1] SEQUENCE OF IndAudStreamDescriptor
+ } OPTIONAL,
+ ...
+ }
+
+ IndAudStreamDescriptor ::= SEQUENCE
+ {
+ streamID [0] StreamID,
+ streamParms [1] IndAudStreamParms
+ }
+
+ IndAudStreamParms ::= SEQUENCE
+ {
+ localControlDescriptor [0] IndAudLocalControlDescriptor OPTIONAL,
+ localDescriptor [1] IndAudLocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor [2] IndAudLocalRemoteDescriptor OPTIONAL,
+ ...,
+ statisticsDescriptor [3] IndAudStatisticsDescriptor OPTIONAL
+ }
+
+ IndAudLocalControlDescriptor ::= SEQUENCE
+ {
+ streamMode [0] NULL OPTIONAL,
+ reserveValue [1] NULL OPTIONAL,
+ reserveGroup [2] NULL OPTIONAL,
+ propertyParms [3] SEQUENCE OF IndAudPropertyParm OPTIONAL,
+ ...,
+ streamModeSel [4] StreamMode OPTIONAL
+ }
+ -- must not have both streamMode and streamModeSel
+ -- if both are present only streamModeSel shall be honoured
+
+ IndAudPropertyParm ::= SEQUENCE
+ {
+ name [0] PkgdName,
+ ...,
+ propertyParms [1] PropertyParm OPTIONAL
+ }
+ -- to select based on property values
+ -- AND/OR selection logic is specified at context level
+
+ IndAudLocalRemoteDescriptor ::= SEQUENCE
+ {
+ propGroupID [0] INTEGER(0..65535) OPTIONAL,
+ propGrps [1] IndAudPropertyGroup,
+ ...
+ }
+
+ IndAudPropertyGroup ::= SEQUENCE OF IndAudPropertyParm
+
+ IndAudTerminationStateDescriptor ::= SEQUENCE
+ {
+ propertyParms [0] SEQUENCE OF IndAudPropertyParm,
+ eventBufferControl [1] NULL OPTIONAL,
+ serviceState [2] NULL OPTIONAL,
+ ...,
+ serviceStateSel [3] ServiceState OPTIONAL
+ }
+ -- must not have both serviceState and serviceStateSel
+ -- if both are present only serviceStateSel shall be honoured
+
+ IndAudEventsDescriptor ::= SEQUENCE
+ {
+ requestID [0] RequestID OPTIONAL,
+ pkgdName [1] PkgdName,
+ streamID [2] StreamID OPTIONAL,
+ ...
+ }
+
+ IndAudEventBufferDescriptor ::= SEQUENCE
+ {
+ eventName [0] PkgdName,
+ streamID [1] StreamID OPTIONAL,
+ ...
+ }
+
+ IndAudSignalsDescriptor ::=CHOICE
+ {
+ signal [0] IndAudSignal,
+ seqSigList [1] IndAudSeqSigList,
+ ...
+ }
+
+ IndAudSeqSigList ::= SEQUENCE
+ {
+ id [0] INTEGER(0..65535),
+ signalList [1] IndAudSignal OPTIONAL
+ }
+
+ IndAudSignal ::= SEQUENCE
+ {
+ signalName [0] PkgdName,
+ streamID [1] StreamID OPTIONAL,
+ ...,
+ signalRequestID [2] RequestID OPTIONAL
+ }
+
+ IndAudDigitMapDescriptor ::= SEQUENCE
+ {
+ digitMapName [0] DigitMapName OPTIONAL
+ }
+
+ IndAudStatisticsDescriptor ::= SEQUENCE
+ {
+ statName [0] PkgdName
+ }
+
+ IndAudPackagesDescriptor ::= SEQUENCE
+ {
+ packageName [0] Name,
+ packageVersion [1] INTEGER(0..99),
+ ...
+ }
+
+ NotifyRequest ::= SEQUENCE
+ {
+ terminationID [0] TerminationIDList,
+ observedEventsDescriptor [1] ObservedEventsDescriptor,
+ errorDescriptor [2] ErrorDescriptor OPTIONAL,
+ ...
+ }
+
+ NotifyReply ::= SEQUENCE
+ {
+ terminationID [0] TerminationIDList,
+ errorDescriptor [1] ErrorDescriptor OPTIONAL,
+ ...
+ }
+
+ ObservedEventsDescriptor ::= SEQUENCE
+ {
+ requestId [0] RequestID,
+ observedEventLst [1] SEQUENCE OF ObservedEvent
+ }
+
+ ObservedEvent ::= SEQUENCE
+ {
+ eventName [0] EventName,
+ streamID [1] StreamID OPTIONAL,
+ eventParList [2] SEQUENCE OF EventParameter,
+ timeNotation [3] TimeNotation OPTIONAL,
+ ...
+ }
+
+-- EventName ::= PkgdName
+ EventName ::= OCTET STRING
+
+ EventParameter ::= SEQUENCE
+ {
+-- Wireshark specific
+-- eventParameterName [0] Name,
+-- value [1] Value,
+ eventParameterName [0] EventParameterName,
+ eventParamValue [1] EventParamValues,
+-- end
+ -- For use of extraInfos see the comment related to PropertyParm
+ extraInfo [2] CHOICE
+ {
+ relation [0] Relation,
+ range [1] BOOLEAN,
+ sublist [2] BOOLEAN
+ } OPTIONAL,
+ ...
+ }
+-- Wireshark specific
+ EventParameterName ::= Name
+
+ EventParamValues ::= SEQUENCE OF EventParamValue
+
+ EventParamValue ::= OCTET STRING
+-- end
+ ServiceChangeRequest ::= SEQUENCE
+ {
+ terminationID [0] TerminationIDList,
+ serviceChangeParms [1] ServiceChangeParm,
+ ...
+ }
+
+ ServiceChangeReply ::= SEQUENCE
+ {
+ terminationID [0] TerminationIDList,
+ serviceChangeResult [1] ServiceChangeResult,
+ ...
+ }
+ -- For ServiceChangeResult, no parameters are mandatory. Hence the
+ -- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ ServiceChangeResult ::= CHOICE
+ {
+ errorDescriptor [0] ErrorDescriptor,
+ serviceChangeResParms [1] ServiceChangeResParm
+ }
+
+ WildcardField ::= OCTET STRING(SIZE(1))
+
+ TerminationID ::= SEQUENCE
+ {
+ wildcard [0] SEQUENCE OF WildcardField,
+ id [1] OCTET STRING(SIZE(1..8)),
+ ...
+ }
+ -- See A.1 for explanation of wildcarding mechanism.
+ -- TerminationID 0xFFFFFFFFFFFFFFFF indicates the Root Termination.
+
+ TerminationIDList ::= SEQUENCE OF TerminationID
+
+ MediaDescriptor ::= SEQUENCE
+ {
+ termStateDescr [0] TerminationStateDescriptor OPTIONAL,
+ streams [1] CHOICE
+ {
+ oneStream [0] StreamParms,
+ multiStream [1] SEQUENCE OF StreamDescriptor
+ } OPTIONAL,
+ ...
+ }
+
+ StreamDescriptor ::= SEQUENCE
+ {
+ streamID [0] StreamID,
+ streamParms [1] StreamParms
+ }
+
+ StreamParms ::= SEQUENCE
+ {
+ localControlDescriptor [0] LocalControlDescriptor OPTIONAL,
+ localDescriptor [1] LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor [2] LocalRemoteDescriptor OPTIONAL,
+ ...,
+ statisticsDescriptor [3] StatisticsDescriptor OPTIONAL
+ }
+
+ LocalControlDescriptor ::= SEQUENCE
+ {
+ streamMode [0] StreamMode OPTIONAL,
+ reserveValue [1] BOOLEAN OPTIONAL,
+ reserveGroup [2] BOOLEAN OPTIONAL,
+ propertyParms [3] 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 [0] PkgdName,
+ propertyName [0] PkgdName,
+-- value [1] SEQUENCE OF OCTET STRING,
+ value [1] SEQUENCE OF PropertyID,
+ extraInfo [2] CHOICE
+ {
+ relation [0] Relation,
+ range [1] BOOLEAN,
+ sublist [2] BOOLEAN
+ } OPTIONAL,
+ ...
+ }
+
+ Name ::= OCTET STRING(SIZE(2))
+
+ PkgdName ::= OCTET STRING(SIZE(4))
+ -- represents Package Name (2 octets) plus property, event,
+ -- signal names or StatisticsID. (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.
+ -- To wildcard a PropertyID, EventID, SignalID, or StatisticsID, use
+ -- 0xFFFF for last two octets, CHOOSE is not allowed.
+ -- Wildcarding of Package Name is permitted only if PropertyID,
+ -- EventID, SignalID, or StatisticsID are also wildcarded.
+-- Wireshark specific
+ PropertyID ::= OCTET STRING
+
+ Relation ::= ENUMERATED
+ {
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+ ...
+ }
+
+ LocalRemoteDescriptor ::= SEQUENCE
+ {
+ propGrps [0] SEQUENCE OF PropertyGroup,
+ ...
+ }
+
+ PropertyGroup ::= SEQUENCE OF PropertyParm
+
+ TerminationStateDescriptor ::= SEQUENCE
+ {
+ propertyParms [0] SEQUENCE OF PropertyParm,
+ eventBufferControl [1] EventBufferControl OPTIONAL,
+ serviceState [2] ServiceState OPTIONAL,
+ ...
+ }
+
+ EventBufferControl ::= ENUMERATED
+ {
+ off(0),
+ lockStep(1),
+ ...
+ }
+
+ ServiceState ::= ENUMERATED
+ {
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+ }
+
+ MuxDescriptor ::= SEQUENCE
+ {
+ muxType [0] MuxType,
+ termList [1] SEQUENCE OF TerminationID,
+ nonStandardData [2] NonStandardData OPTIONAL,
+ ...
+ }
+
+ MuxType ::= ENUMERATED
+ {
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...,
+ nx64k(4)
+ }
+
+ StreamID ::= INTEGER(0..65535) -- 16-bit unsigned integer
+
+ EventsDescriptor ::= SEQUENCE
+ {
+ requestID [0] RequestID OPTIONAL,
+ -- RequestID must be present if eventList
+ -- is non empty
+ eventList [1] SEQUENCE OF RequestedEvent,
+ ...
+ }
+
+ RequestedEvent ::= SEQUENCE
+ {
+-- pkgdName [0] PkgdName,
+ eventName [0] EventName,
+ streamID [1] StreamID OPTIONAL,
+ eventAction [2] RequestedActions OPTIONAL,
+ evParList [3] SEQUENCE OF EventParameter,
+ ...
+ }
+
+ RegulatedEmbeddedDescriptor ::= SEQUENCE
+ {
+ secondEvent [0] SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor [1] SignalsDescriptor OPTIONAL,
+ ...
+ }
+
+ NotifyBehaviour ::= CHOICE
+ {
+ notifyImmediate [0] NULL,
+ notifyRegulated [1] RegulatedEmbeddedDescriptor,
+ neverNotify [2] NULL,
+ ...
+ }
+
+ RequestedActions ::= SEQUENCE
+ {
+ keepActive [0] BOOLEAN OPTIONAL,
+ eventDM [1] EventDM OPTIONAL,
+ secondEvent [2] SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor [3] SignalsDescriptor OPTIONAL,
+ ...,
+ notifyBehaviour [4] NotifyBehaviour OPTIONAL,
+ resetEventsDescriptor [5] NULL OPTIONAL
+ }
+
+ EventDM ::= CHOICE
+ {
+ digitMapName [0] DigitMapName,
+ digitMapValue [1] DigitMapValue
+ }
+
+ SecondEventsDescriptor ::= SEQUENCE
+ {
+ requestID [0] RequestID OPTIONAL,
+ eventList [1] SEQUENCE OF SecondRequestedEvent,
+ ...
+ }
+
+ SecondRequestedEvent ::= SEQUENCE
+ {
+ pkgdName [0] PkgdName,
+ streamID [1] StreamID OPTIONAL,
+ eventAction [2] SecondRequestedActions OPTIONAL,
+ evParList [3] SEQUENCE OF EventParameter,
+ ...
+ }
+
+ SecondRequestedActions ::= SEQUENCE
+ {
+ keepActive [0] BOOLEAN OPTIONAL,
+ eventDM [1] EventDM OPTIONAL,
+ signalsDescriptor [2] SignalsDescriptor OPTIONAL,
+ ...,
+ notifyBehaviour [3] NotifyBehaviour OPTIONAL,
+ resetEventsDescriptor [4] NULL OPTIONAL
+ }
+
+ EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+ EventSpec ::= SEQUENCE
+ {
+ eventName [0] EventName,
+ streamID [1] StreamID OPTIONAL,
+ eventParList [2] SEQUENCE OF EventParameter,
+ ...
+ }
+
+ SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+ SignalRequest ::=CHOICE
+ {
+ signal [0] Signal,
+ seqSigList [1] SeqSigList,
+ ...
+ }
+
+ SeqSigList ::= SEQUENCE
+ {
+ id [0] INTEGER(0..65535),
+ signalList [1] SEQUENCE OF Signal
+ }
+
+ Signal ::= SEQUENCE
+ {
+ signalName [0] SignalName,
+ streamID [1] StreamID OPTIONAL,
+ sigType [2] SignalType OPTIONAL,
+ duration [3] INTEGER (0..65535) OPTIONAL,
+ notifyCompletion [4] NotifyCompletion OPTIONAL,
+ keepActive [5] BOOLEAN OPTIONAL,
+ sigParList [6] SEQUENCE OF SigParameter,
+ ...,
+ direction [7] SignalDirection OPTIONAL,
+ requestID [8] RequestID OPTIONAL,
+ intersigDelay [9] INTEGER (0..65535) OPTIONAL
+ }
+
+ SignalType ::= ENUMERATED
+ {
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+ }
+
+ SignalDirection ::= ENUMERATED
+ {
+ internal(0),
+ external(1),
+ both(2),
+ ...
+ }
+
+-- SignalName ::= PkgdName
+ SignalName ::= OCTET STRING
+
+ NotifyCompletion ::= BIT STRING
+ {
+ onTimeOut(0), onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2), otherReason(3), onIteration(4)
+ }
+
+ SigParameter ::= SEQUENCE
+ {
+-- sigParameterName [0] Name,
+-- value [1] Value,
+ sigParameterName [0] SigParameterName,
+ value [1] SigParamValues,
+ -- For use of extraInfo see the comment related to PropertyParm
+ extraInfo [2] CHOICE
+ {
+ relation [0] Relation,
+ range [1] BOOLEAN,
+ sublist [2] BOOLEAN
+ } OPTIONAL,
+ ...
+ }
+-- Wireshark specific
+ SigParameterName ::= Name
+
+ SigParamValues ::= SEQUENCE OF SigParamValue
+
+ SigParamValue ::= OCTET STRING
+-- end
+ -- For an AuditCapReply with all events, the RequestID shall be ALL.
+ -- ALL is represented by 0xffffffff.
+ RequestID ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
+
+ ModemDescriptor ::= SEQUENCE
+ {
+ mtl [0] SEQUENCE OF ModemType,
+ mpl [1] SEQUENCE OF PropertyParm,
+ nonStandardData [2] 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 [0] DigitMapName OPTIONAL,
+ digitMapValue [1] DigitMapValue OPTIONAL
+ }
+
+ DigitMapName ::= Name
+
+ DigitMapValue ::= SEQUENCE
+ {
+ startTimer [0] INTEGER(0..99) OPTIONAL,
+ shortTimer [1] INTEGER(0..99) OPTIONAL,
+ longTimer [2] INTEGER(0..99) OPTIONAL,
+ digitMapBody [3] IA5String,
+ -- Units are seconds for start, short and long timers, and hundreds
+ -- of milliseconds for duration timer. Thus start, short, and long
+ -- range from 1 to 99 seconds and duration from 100 ms to 9.9 s
+ -- See A.3 for explanation of DigitMap syntax
+ ...,
+ durationTimer [4] INTEGER (0..99) OPTIONAL
+ }
+
+ ServiceChangeParm ::= SEQUENCE
+ {
+ serviceChangeMethod [0] ServiceChangeMethod,
+ serviceChangeAddress [1] ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion [2] INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile [3] ServiceChangeProfile OPTIONAL,
+-- serviceChangeReason [4] Value,
+ serviceChangeReason [4] SCreasonValue,
+ -- A serviceChangeReason consists of a numeric reason code
+ -- and an optional text description.
+ -- The serviceChangeReason shall be a string consisting of
+ -- a decimal reason code, optionally followed by a single
+ -- space character and a textual description string.
+ -- This string is first BER-encoded as an IA5String.
+ -- The result of this BER-encoding is then encoded as
+ -- an ASN.1 OCTET STRING type, "double wrapping" the
+ -- value as was done for package elements.
+
+ serviceChangeDelay [5] INTEGER(0..4294967295) OPTIONAL,
+ -- 32-bit unsigned integer
+ serviceChangeMgcId [6] MId OPTIONAL,
+ timeStamp [7] TimeNotation OPTIONAL,
+ nonStandardData [8] NonStandardData OPTIONAL,
+ ...,
+ serviceChangeInfo [9] AuditDescriptor OPTIONAL,
+ serviceChangeIncompleteFlag [10] NULL OPTIONAL
+ }
+
+-- Wireshark extension to decode serviceChangeReason
+ SCreasonValue ::= SEQUENCE OF SCreasonValueOctetStr
+ SCreasonValueOctetStr ::= OCTET STRING
+ ServiceChangeReasonStr ::= IA5String
+-- end
+
+ ServiceChangeAddress ::= CHOICE
+ {
+ portNumber [0] INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address [1] IP4Address,
+ ip6Address [2] IP6Address,
+ domainName [3] DomainName,
+ deviceName [4] PathName,
+ mtpAddress [5] MtpAddress,
+ ...
+ }
+
+ ServiceChangeResParm ::= SEQUENCE
+ {
+ serviceChangeMgcId [0] MId OPTIONAL,
+ serviceChangeAddress [1] ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion [2] INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile [3] ServiceChangeProfile OPTIONAL,
+ timestamp [4] TimeNotation OPTIONAL,
+ ...
+ }
+
+ ServiceChangeMethod ::= ENUMERATED
+ {
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+ }
+
+ ServiceChangeProfile ::= SEQUENCE
+ {
+ profileName [0] IA5String(SIZE (1..67))
+ -- 64 characters for name, 1 for "/", 2 for version to match ABNF
+ }
+
+ PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+ PackagesItem ::= SEQUENCE
+ {
+ packageName [0] Name,
+ packageVersion [1] INTEGER(0..99),
+ ...
+ }
+
+ StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+ StatisticsParameter ::= SEQUENCE
+ {
+ statName [0] PkgdName,
+ statValue [1] Value OPTIONAL
+ }
+ -- If statistic consists of a sub-lists there will be more than
+ -- one octetstring in statValue.
+ NonStandardData ::= SEQUENCE
+ {
+ nonStandardIdentifier [0] NonStandardIdentifier,
+ data [1] OCTET STRING
+ }
+
+ NonStandardIdentifier ::= CHOICE
+ {
+ object [0] OBJECT IDENTIFIER,
+ h221NonStandard [1] H221NonStandard,
+ experimental [2] IA5String(SIZE(8)),
+ -- first two characters should be "X-" or "X+"
+ ...
+ }
+
+ H221NonStandard ::= SEQUENCE
+ {
+ t35CountryCode1 [0] INTEGER(0..255),
+ t35CountryCode2 [1] INTEGER(0..255), -- country, as per T.35
+ t35Extension [2] INTEGER(0..255), -- assigned nationally
+ manufacturerCode [3] INTEGER(0..65535), -- assigned nationally
+ ...
+ }
+
+ TimeNotation ::= SEQUENCE
+ {
+ date [0] IA5String(SIZE(8)), -- yyyymmdd format
+ time [1] IA5String(SIZE(8)) -- hhmmssss format
+ -- per ISO 8601:2004
+ }
+
+ Value ::= SEQUENCE OF OCTET STRING
+
+END \ No newline at end of file
diff --git a/epan/dissectors/asn1/h248/packet-h248-template.c b/epan/dissectors/asn1/h248/packet-h248-template.c
new file mode 100644
index 0000000000..58e9112a13
--- /dev/null
+++ b/epan/dissectors/asn1/h248/packet-h248-template.c
@@ -0,0 +1,1690 @@
+/* packet-h248.c
+ * Routines for H.248/MEGACO packet dissection
+ *
+ * Ronnie Sahlberg 2004
+ *
+ * Luis Ontanon 2005 - Context and Transaction Tracing
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <packet.h>
+#include <epan/exceptions.h>
+#include <epan/tap.h>
+#include "packet-tpkt.h"
+#include "packet-mtp3.h"
+#include "packet-h248.h"
+
+#define PNAME "H.248 MEGACO"
+#define PSNAME "H248"
+#define PFNAME "h248"
+
+void proto_register_h248(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_h248 = -1;
+static int hf_248_magic_num = -1;
+static int hf_h248_mtpaddress_ni = -1;
+static int hf_h248_mtpaddress_pc = -1;
+static int hf_h248_pkg_name = -1;
+static int hf_248_pkg_param = -1;
+static int hf_h248_event_name = -1;
+static int hf_h248_signal_name = -1;
+static int hf_h248_signal_code = -1;
+static int hf_h248_event_code = -1;
+static int hf_h248_pkg_bcp_BNCChar_PDU = -1;
+
+
+
+static int hf_h248_context_id = -1;
+static int hf_h248_term_wild_type = -1;
+static int hf_h248_term_wild_level = -1;
+static int hf_h248_term_wild_position = -1;
+
+static int hf_h248_no_pkg = -1;
+static int hf_h248_no_sig = -1;
+static int hf_h248_no_evt = -1;
+static int hf_h248_param = -1;
+
+static int hf_h248_serviceChangeReasonStr = -1;
+static int hf_h248_transactionId64 = -1;
+static int hf_h248_context_id64 = -1;
+
+/* h248v1 support */
+static int hf_h248_auditValueReplyV1 = -1;
+
+#include "packet-h248-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_h248 = -1;
+static gint ett_mtpaddress = -1;
+static gint ett_packagename = -1;
+static gint ett_codec = -1;
+static gint ett_wildcard = -1;
+
+static gint ett_h248_no_pkg = -1;
+static gint ett_h248_no_sig = -1;
+static gint ett_h248_no_evt = -1;
+
+static int h248_tap = -1;
+
+static gcp_hf_ett_t h248_arrel = {{-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1}};
+
+#include "packet-h248-ett.c"
+
+static expert_field ei_h248_errored_command = EI_INIT;
+static expert_field ei_h248_transactionId64 = EI_INIT;
+static expert_field ei_h248_context_id64 = EI_INIT;
+static expert_field ei_h248_octet_string_expected = EI_INIT;
+
+static dissector_table_t subdissector_table;
+
+static wmem_tree_t* msgs = NULL;
+static wmem_tree_t* trxs = NULL;
+static wmem_tree_t* ctxs_by_trx = NULL;
+static wmem_tree_t* ctxs = NULL;
+
+static gboolean keep_persistent_data = FALSE;
+static guint global_udp_port = 2945;
+static guint global_tcp_port = 2945;
+static gboolean h248_desegment = TRUE;
+
+
+
+static proto_tree *h248_tree;
+static tvbuff_t* h248_tvb;
+
+static dissector_handle_t h248_handle;
+static dissector_handle_t h248_term_handle;
+static dissector_handle_t h248_tpkt_handle;
+
+/* Forward declarations */
+static int dissect_h248_ServiceChangeReasonStr(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+
+/* h248v1 support */
+static int dissect_h248_AuditReplyV1(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+
+static int dissect_h248_EventParameterV1(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+static int dissect_h248_SigParameterV1(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+static int dissect_h248_SigParamValueV1(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+
+#if 0
+static const value_string context_id_type[] = {
+ {NULL_CONTEXT,"0 (Null Context)"},
+ {CHOOSE_CONTEXT,"$ (Choose Context)"},
+ {ALL_CONTEXTS,"* (All Contexts)"},
+ {0,NULL}
+};
+#endif
+
+/* the following value_strings are used to build defalut packages.
+ To add additional detail to a package, build a register a h248_package_t structure
+ */
+
+static const value_string base_package_name_vals[] = {
+ { 0x0000, "Media stream properties H.248.1 Annex C" },
+ { 0x0001, "Generic H.248.1 Annex E" },
+ { 0x0002, "root H.248.1 Annex E" },
+ { 0x0003, "tonegen H.248.1 Annex E" },
+ { 0x0004, "tonedet H.248.1 Annex E" },
+ { 0x0005, "dg H.248.1 Annex E" },
+ { 0x0006, "dd H.248.1 Annex E" },
+ { 0x0007, "cg H.248.1 Annex E" },
+ { 0x0008, "cd H.248.1 Annex E" },
+ { 0x0009, "al H.248.1 Annex E" },
+ { 0x000a, "ct H.248.1 Annex E" },
+ { 0x000b, "nt H.248.1 Annex E" },
+ { 0x000c, "rtp H.248.1 Annex E" },
+ { 0x000d, "tdmc H.248.1 Annex E" },
+ { 0x000e, "ftmd H.248.1 Annex E" },
+ { 0x000f, "txc H.248.2" }, /* H.248.2 */
+ { 0x0010, "txp H.248.2" },
+ { 0x0011, "ctyp H.248.2" },
+ { 0x0012, "fax H.248.2" },
+ { 0x0013, "ipfax H.248.2" },
+ { 0x0014, "dis H.248.3" }, /* H.248.3 */
+ { 0x0015, "key H.248.3" },
+ { 0x0016, "kp H.248.3" },
+ { 0x0017, "labelkey H.248.3" },
+ { 0x0018, "kf H.248.3" },
+ { 0x0019, "ind H.248.3" },
+ { 0x001a, "ks H.248.3" },
+ { 0x001b, "anci H.248.3" },
+ { 0x001c, "dtd H.248.6" }, /* H.248.6 */
+ { 0x001d, "an H.248.7" }, /* H.248.7 */
+ { 0x001e, "Bearer Characteristics Q.1950 Annex A" }, /* Q.1950 Annex A */
+ { 0x001f, "Bearer Network Connection Cut Q.1950 Annex A" },
+ { 0x0020, "Reuse Idle Q.1950 Annex A" },
+ { 0x0021, "Generic Bearer Connection Q.1950 Annex A" },
+ { 0x0022, "Bearer Control Tunnelling Q.1950 Annex A" },
+ { 0x0023, "Basic Call Progress Tones Q.1950 Annex A" },
+ { 0x0024, "Expanded Call Progress Tones Q.1950 Annex A" },
+ { 0x0025, "Basic Services Tones Q.1950 Annex A" },
+ { 0x0026, "Expanded Services Tones Q.1950 Annex A" },
+ { 0x0027, "Intrusion Tones Q.1950 Annex A" },
+ { 0x0028, "Business Tones Q.1950 Annex A" },
+ { 0x0029, "Media Gateway Resource Congestion Handling H.248.10" }, /* H.248.10 */
+ { 0x002a, "H245 package H248.12" }, /* H.248.12 */
+ { 0x002b, "H323 bearer control package H.248.12" }, /* H.248.12 */
+ { 0x002c, "H324 package H.248.12" }, /* H.248.12 */
+ { 0x002d, "H245 command package H.248.12" }, /* H.248.12 */
+ { 0x002e, "H245 indication package H.248.12" }, /* H.248.12 */
+ { 0x002f, "3G User Plane" }, /* 3GPP TS 29.232 v4.1.0 */
+ { 0x0030, "3G Circuit Switched Data" },
+ { 0x0031, "3G TFO Control" },
+ { 0x0032, "3G Expanded Call Progress Tones" },
+ { 0x0033, "Advanced Audio Server (AAS Base)" }, /* H.248.9 */
+ { 0x0034, "AAS Digit Collection" }, /* H.248.9 */
+ { 0x0035, "AAS Recording" }, /* H.248.9 */
+ { 0x0036, "AAS Segment Management" }, /* H.248.9 */
+ { 0x0037, "Quality Alert Ceasing" }, /* H.248.13 */
+ { 0x0038, "Conferencing Tones Generation" }, /* H.248.27 */
+ { 0x0039, "Diagnostic Tones Generation" }, /* H.248.27 */
+ { 0x003a, "Carrier Tones Generation Package H.248.23" }, /* H.248.27 */
+ { 0x003b, "Enhanced Alerting Package H.248.23" }, /* H.248.23 */
+ { 0x003c, "Analog Display Signalling Package H.248.23" }, /* H.248.23 */
+ { 0x003d, "Multi-Frequency Tone Generation Package H.248.24" }, /* H.248.24 */
+ { 0x003e, "H.248.23Multi-Frequency Tone Detection Package H.248.24" }, /* H.248.24 */
+ { 0x003f, "Basic CAS Package H.248.25" }, /* H.248.25 */
+ { 0x0040, "Robbed Bit Signalling Package H.248.25" }, /* H.248.25 */
+ { 0x0041, "Operator Services and Emergency Services Package H.248.25" },
+ { 0x0042, "Operator Services Extension Package H.248.25" },
+ { 0x0043, "Extended Analog Line Supervision Package H.248.26" },
+ { 0x0044, "Automatic Metering Package H.248.26" },
+ { 0x0045, "Inactivity Timer Package H.248.14" },
+ { 0x0046, "3G Modification of Link Characteristics Bearer Capability" }, /* 3GPP TS 29.232 v4.4.0 */
+ { 0x0047, "Base Announcement Syntax H.248.9" },
+ { 0x0048, "Voice Variable Syntax H.248.9" },
+ { 0x0049, "Announcement Set Syntax H.248.9" },
+ { 0x004a, "Phrase Variable Syntax H.248.9" },
+ { 0x004b, "Basic NAS package" },
+ { 0x004c, "NAS incoming package" },
+ { 0x004d, "NAS outgoing package" },
+ { 0x004e, "NAS control package" },
+ { 0x004f, "NAS root package" },
+ { 0x0050, "Profile Handling Package H.248.18" },
+ { 0x0051, "Media Gateway Overload Control Package H.248.11" },
+ { 0x0052, "Extended DTMF Detection Package H.248.16" },
+ { 0x0053, "Quiet Termination Line Test" },
+ { 0x0054, "Loopback Line Test Response" }, /* H.248.17 */
+ { 0x0055, "ITU 404Hz Line Test" }, /* H.248.17 */
+ { 0x0056, "ITU 816Hz Line Test" }, /* H.248.17 */
+ { 0x0057, "ITU 1020Hz Line Test" }, /* H.248.17 */
+ { 0x0058, "ITU 2100Hz Disable Tone Line Test" }, /* H.248.17 */
+ { 0x0059, "ITU 2100Hz Disable Echo Canceller Tone Line Test" }, /* H.248.17 */
+ { 0x005a, "ITU 2804Hz Tone Line Test" }, /* H.248.17 */
+ { 0x005b, "ITU Noise Test Tone Line Test" }, /* H.248.17 */
+ { 0x005c, "ITU Digital Pseudo Random Test Line Test" }, /* H.248.17 */
+ { 0x005d, "ITU ATME No.2 Test Line Response" }, /* H.248.17 */
+ { 0x005e, "ANSI 1004Hz Test Tone Line Test" }, /* H.248.17 */
+ { 0x005f, "ANSI Test Responder Line Test" }, /* H.248.17 */
+ { 0x0060, "ANSI 2225Hz Test Progress Tone Line Test" }, /* H.248.17 */
+ { 0x0061, "ANSI Digital Test Signal Line Test" }, /* H.248.17 */
+ { 0x0062, "ANSI Inverting Loopback Line Test Response" }, /* H.248.17 */
+ { 0x0063, "Extended H.324 Packages H.248.12 Annex A" },
+ { 0x0064, "Extended H.245 Command Package H.248.12 Annex A" },
+ { 0x0065, "Extended H.245 Indication Package H.248.12 Annex A" },
+ { 0x0066, "Enhanced DTMF Detection Package H.248.16" },
+ { 0x0067, "Connection Group Identity Package Q.1950 Annex E" },
+ { 0x0068, "CTM Text Transport 3GPP TS 29.232 v5.2.0" },
+ { 0x0069, "SPNE Control Package Q.115.0" },
+ { 0x006a, "Semi-permanent Connection Package H.248.21" },
+ { 0x006b, "Shared Risk Group Package H.248.22" },
+ { 0x006c, "isuptn Annex B of ITU-T Rec. J.171" },
+ { 0x006d, "Basic CAS Addressing Package H.248.25" },
+ { 0x006e, "Floor Control Package H.248.19" },
+ { 0x006f, "Indication of Being Viewed Package H.248.19" },
+ { 0x0070, "Volume Control Package H.248.19" },
+ { 0x0071, "UNASSIGNED" },
+ { 0x0072, "Volume Detection Package H.248.19" },
+ { 0x0073, "Volume Level Mixing Package H.248.19" },
+ { 0x0074, "Mixing Volume Level Control Package H.248.19" },
+ { 0x0075, "Voice Activated Video Switch Package H.248.19" },
+ { 0x0076, "Lecture Video Mode Package H.248.19" },
+ { 0x0077, "Contributing Video Source Package H.248.19" },
+ { 0x0078, "Video Window Package H.248.19" },
+ { 0x0079, "Tiled Window Package H.248.19" },
+ { 0x007a, "Adaptive Jitter Buffer Package H.248.31" },
+ { 0x007b, "International CAS Package H.248.28" },
+ { 0x007c, "CAS Blocking Package H.248.28" },
+ { 0x007d, "International CAS Compelled Package H.248.29" },
+ { 0x007e, "International CAS Compelled with Overlap Package H.248.29" },
+ { 0x007f, "International CAS Compelled with End-to-end Package H.248.29" },
+ { 0x0080, "RTCP XR Package H.248.30" },
+ { 0x0081, "RTCP XR Burst Metrics Package H.248.30" },
+ { 0x0082, "threegcsden 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
+ { 0x0083, "threegiptra 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
+ { 0x0084, "threegflex 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
+ { 0x0085, "H.248 PCMSB" },
+ { 0x008a, "TIPHON Extended H.248/MEGACO Package" }, /* ETSI specification TS 101 3 */
+ { 0x008b, "Differentiated Services Package" }, /* Annex A of ETSI TS 102 333 */
+ { 0x008c, "Gate Management Package" }, /* Annex B of ETSI TS 102 333 */
+ { 0x008d, "Traffic Management Package" }, /* Annex C of ETSI TS 102 333 */
+ { 0x008e, "Gate Recovery Information Package" }, /* Annex D of ETSI TS 102 333 */
+ { 0x008f, "NAT Traversal Package" }, /* Annex E of ETSI TS 102 333 */
+ { 0x0090, "MPLS Package" }, /* Annex F of ETSI TS 102 333 */
+ { 0x0091, "VLAN Package" }, /* Annex G of ETSI TS 102 333 */
+ { 0x0092, "Detailed Congestion Reporting Package" }, /* H.248.32 */
+ { 0x0093, "Stimulus Analogue Lines Package" }, /* H.248.34 */
+ { 0x0094, "icascgen" }, /* H.248.29 Annex B */
+ { 0x0095, "Coin Operated Phone Control Package" }, /* H.248.35 */
+ { 0x0096, "Metering Pulse Detection Package" }, /* H.248.26 Amendment 1 */
+ { 0x0097, "Trace Package" }, /* 3GPP TS 29.232 v6.3.0 */
+ { 0x0098, "Hanging Termination Package" }, /* H.248.36 */
+ { 0x0099, "IP NAPT Traversal Package" }, /* H.248.37 */
+ { 0x009a, "Notification Behaviour Package" }, /* H.248.1v3 */
+ { 0x009b, "Base Context Package" }, /* H.248.38 */
+ { 0x009c, "Application Data Inactivity Detection Package" }, /* H.248.40 */
+ { 0x009d, "Domain Connection Package " }, /* H.248.41 */
+ { 0x009e, "Digital Circuit Multiplication Equipment Package" }, /* H.248.42 */
+ { 0x009f, "Multi-level Precedence and Pre-emption Package" }, /* H.248.44 */
+ { 0x00a0, "MGC Information Package" }, /* H.248.45 */
+ { 0x00a1, "Text Overlay Package" }, /* H.248.19 Amendment 1 */
+ { 0x00a2, "Border and Background Package" }, /* H.248.19 Amendment 1 */
+ { 0x00a3, "Segmentation Package" }, /* H.248.1v3 */
+ { 0x00a4, "ETSI notification behaviour package" }, /* ETSI ES 283 039-3 */
+ { 0x00a5, "ETSI notification rate package" }, /* ETSI ES 283 039-4 */
+ { 0x00a6, "Automatic Speech Recognition Package" }, /* H.248.9 Amendment 1 */
+ { 0x00a7, "Set extension to basic syntax for TTS enhancement Package" },/* H.248.9 Amendment 1 */
+ { 0x00a8, "Advanced audio server base package for TTS enhancement" }, /* H.248.9 Amendment 1 */
+ { 0x00a9, "Multimedia Play Package" }, /* H.248.9 Amendment 1 */
+ { 0x00aa, "Floor Status Detection Package" }, /* H.248.19 Amendment 2 */
+ { 0x00ab, "Floor Control Policy Package" }, /* H.248.19 Amendment 2 */
+ { 0x00ac, "Address Reporting Package" }, /* H.248.37 Amendment 1 */
+ { 0x00ad, "Connection Capability Control Package" }, /* H.248.46 */
+ { 0x00ae, "Statistic Conditional Reporting Package" }, /* H.248.47 Amendment 1 */
+ { 0x00af, "RTCP HR QoS Statistics Package" }, /* H.248.48 */
+ { 0x00b0, "Received RTCP XR Package" }, /* H.248.30 (01/2007) */
+ { 0x00b1, "Received RTCP XR Burst Metrics Package" }, /* H.248.30 (01/2007) */
+ { 0x00b2, "ASCI Group call package" }, /* 3GPP TS 29.232 v7.4.0 */
+ { 0x00b3, "Multimedia Recording Package" }, /* H.248.9 Amendment 1 */
+ { 0x00b4, "H.245 Transport Package" }, /* H.248.12 Amendment 2 */
+ { 0x00b5, "RTCP Handling package" }, /* H.248.57 */
+ { 0x00b6, "Gate Management - Outgoing Destination Address/Port Filtering Package" },/* H.248.43 */
+ { 0x00b7, "Gate Management - Incoming Protocol Filtering Package" }, /* H.248.43 */
+ { 0x00b8, "Gate Management - Outgoing Protocol Filtering Package" }, /* H.248.43 */
+ { 0x00b9, "Gate Management - Incoming Filtering Behaviour Package" }, /* H.248.43 */
+ { 0x00ba, "Gate Management - Outgoing Filtering Behaviour Package" }, /* H.248.43 */
+ { 0x00bb, "Session Description Protocol RFC Package" }, /* H.248.49 */
+ { 0x00bc, "Session Description Protocol Capabilities Package" }, /* H.248.49 */
+ { 0x00bd, "NAT Traversal Toolkit - STUN Base Package" }, /* H.248.50 */
+ { 0x00be, "NAT Traversal Toolkit - MG STUN Client Package" }, /* H.248.50 */
+ { 0x00bf, "NAT Traversal Toolkit - MG TURN Client Package" }, /* H.248.50 */
+ { 0x00c0, "NAT Traversal Toolkit - MGC STUN Client Package" }, /* H.248.50 */
+ { 0x00c1, "NAT Traversal Toolkit - STUN Information Package" }, /* H.248.50 */
+ { 0x00c2, "NAT Traversal Toolkit - MG Act-as STUN Server Package" }, /* H.248.50 */
+ { 0x00c3, "NAT Traversal Toolkit - Originate STUN Continuity Check Package" }, /* H.248.50 */
+ { 0x00c4, "NAT Traversal Toolkit - MGC Originated STUN Request Package" }, /* H.248.50 */
+ { 0x00c5, "NAT Traversal Toolkit - RTP NOOP Request Package" }, /* H.248.50 */
+ { 0x00c6, "Termination Connection Model Package" }, /* H.248.51 */
+ { 0x00c7, "QoS Class Package" }, /* H.248.52 */
+ { 0x00c8, "Traffic Policing Statistics Package" }, /* H.248.53 */
+ { 0x00c9, "Packet Size Package" }, /* H.248.53 */
+ { 0x00ca, "Pull Mode Package" }, /* H.248.55 */
+ { 0x00cb, "RTP Application Data Package" }, /* H.248.58 */
+ { 0x00cc, "Event Timestamp Notification Package" }, /* H.248.59 */
+ { 0x00cd, "Resource Management Rules Package" }, /* H.248.63 */
+ { 0x00ce, "Resource Management Configuration Package" }, /* H.248.63 */
+ { 0x00cf, "Abstract Resource Management Packages" }, /* H.248.63 */
+ { 0x00d0, "IP layer octets count statistics Package" }, /* H.248.61 */
+ { 0x00d1, "Content of Communication Identity Package" }, /* H.248.60 */
+ { 0x00d2, "RSVP extension package" }, /* H.248.65 */
+ { 0x00d3, "GCP Transport Mode Indication Package" }, /* H.248.67 */
+ { 0x00d4, "IP Router Package" }, /* H.248.64 */
+ { 0x00d5, "Media Resource Identification Package" }, /* H.248.66 */
+ { 0x00d6, "Range Format Support Package" }, /* H.248.66 */
+ { 0x00d7, "Media Resource Description Expiry Package" }, /* H.248.66 */
+ { 0x00d8, "Media Block Size Package" }, /* H.248.66 */
+ { 0x00d9, "RTSP Media Resource Syntax Package" }, /* H.248.66 */
+ { 0x00da, "RTSP Play Package" }, /* H.248.66 */
+ { 0x00db, "Signal Pause Package" }, /* H.248.66 */
+ { 0x00dc, "Data Delivery Speed Adjustme Package" }, /* H.248.66 */
+ { 0x00dd, "Playback Relative Scale Adjustment Package" }, /* H.248.66 */
+ { 0x00de, "RTP Information Package" }, /* H.248.66 */
+ { 0x00df, "RTP Interleaving Package" }, /* H.248.66 */
+ { 0x00e0, "IP Realm Availability Package" }, /* H.248.41 Amendment 1 */
+ { 0x00e1, "General IP Header QoS Octet Package" }, /* H.248.52 */
+ { 0x00e2, "Re-answer Package" }, /* H.248.62 */
+ { 0x00e3, "3G Interface Type package" }, /* 3GPP TS 29.232 v8.4.0 */
+ { 0x00e4, "Latch Statistics Package" }, /* H.248.37 */
+ { 0x00e5, "Floor Control Signalling Package" }, /* H.248.19 Amendment 2 */
+ { 0x00e6, "Include Participant in Mix Package" }, /* H.248.19 Amendment 2 */
+ { 0x00e7, "Speaker Reporting Package" }, /* H.248.19 Amendment 2 */
+ { 0x00e8, "IP Layer Packet Count Statistics Package" }, /* H.248.61 */
+ { 0x00e9, "Removal of Digits and Tones Package" }, /* H.248.68 */
+ { 0x00ea, "MSRP Statistics Package" }, /* H.248.69 */
+ { 0x00eb, "MSRP Connection Status Package" }, /* H.248.69 */
+ { 0x00ec, "Play Message Package" }, /* H.248.69 */
+ { 0x00ed, "Delete Stored Message Package" }, /* H.248.69 */
+ { 0x00ee, "Message Session Information Package" }, /* H.248.69 */
+ { 0x00ef, "Message Filtering Package" }, /* H.248.69 */
+ { 0x00f0, "Stored Message Information Package" }, /* H.248.69 */
+ { 0x00f1, "Record Message Package" }, /* H.248.69 */
+ { 0x00f2, "Digit Dialling Method Information Package" }, /* H.248.70 */
+ { 0x00f3, "Digit Dialling Method Information for Extended Digitmap Detection Package" }, /* H.248.70 */
+ { 0x00f4, "Digit Dialling Method Information for Enhanced Digitmap Detection Package" }, /* H.248.70 */
+ { 0x00f5, "Received RTCP Package " }, /* H.248.71 */
+ { 0x00f6, "RTP Cumulative Loss Package" }, /* H.248.71 */
+ { 0x00f7, "H.245 Transport Package for SPC use" }, /* H.248.72 */
+ { 0x00f8, "MONA Preference Package" }, /* H.248.72 */
+ { 0x00f9, "TDM Gain Control Package" }, /* H.248.73 */
+ { 0x00fa, "Media Start Package" }, /* H.248.74 */
+ { 0x00fb, "Trim Package" }, /* H.248.74 */
+ { 0x00fc, "Enhanced Recording Package" }, /* H.248.74 */
+ { 0x00fd, "Enhanced ASR Package" }, /* H.248.74 */
+ { 0x00fe, "Enhanced TTS Package" }, /* H.248.74 */
+ { 0x00ff, "Play Offset Control Package" }, /* H.248.74 */
+ { 0x0100, "Enhanced DTMF Detection Package" }, /* H.248.9 Revised 2009 */
+ { 0x0101, "IP Router NAT Package" }, /* H.248.64 */
+ { 0x0102, "Voice Enrolled Grammar Package" }, /* H.248.74 */
+ { 0x0103, "Filter Group Package" }, /* H.248.76 */
+ { 0x0104, "RTCP Source Description Package" }, /* H.248.71 */
+ { 0x0105, "Speaker Verification and Identification Package" }, /* H.248.74 */
+ { 0x0106, "Package Identifier Publishing and Application Package" }, /* H.248 */
+ { 0x0107, "Secure RTP Package " }, /* H.248.77 */
+ { 0x0108, "MGC Controlled Bearer Level ALG Package" }, /* H.248.78 */
+ { 0x0109, "Enhanced Revised Offer/Answer SDP Support Package" }, /* H.248.80 */
+ { 0x010a, "Enhanced SDP Media Capabilities Negotiation Support Package" }, /* H.248.80 */
+ { 0x8000, "Ericsson IU" },
+ { 0x8001, "Ericsson UMTS and GSM Circuit" },
+ { 0x8002, "Ericsson Tone Generator Package" },
+ { 0x8003, "Ericsson Line Test Package" },
+ { 0x8004, "Nokia Advanced TFO Package" },
+ { 0x8005, "Nokia IWF Package" },
+ { 0x8006, "Nokia Root Package" },
+ { 0x8007, "Nokia Trace Package" },
+ { 0x8008, "Ericsson V5.2 Layer" },
+ { 0x8009, "Ericsson Detailed Termination Information Package" },
+ { 0x800a, "Nokia Bearer Characteristics Package" },
+ { 0x800b, "Nokia Test Call Package" },
+ { 0x800c, "Nokia Extended Continuity Package" },
+ { 0x800d, "Nokia IPnwR Package" },
+ { 0x800e, "Ericsson Tracing Enhancements Package" },
+ { 0x800f, "Ericsson Partially Wildcarded TerminationID Package" },
+ { 0x8010, "SCTP Stream Handling Package" },
+ {0, NULL}
+};
+
+/*
+ * This table consist of PackageName + EventName and its corresponding string
+ *
+ */
+static const value_string base_event_name_vals[] = {
+ { 0x00000000, "Media stream properties H.248.1 Annex C" },
+ { 0x00010000, "g H.248.1 Annex E" },
+ { 0x00010001, "g/Cause" },
+ { 0x00010002, "g/Signal Completion" },
+ { 0x00040000, "tonedet H.248.1 Annex E" },
+ { 0x00040001, "tonedet/std(Start tone detected)" },
+ { 0x00040002, "tonedet/etd(End tone detected)" },
+ { 0x00040003, "tonedet/ltd(Long tone detected)" },
+ { 0x00060000, "dd H.248.1 Annex E" },
+ { 0x00060001, "dd/std" },
+ { 0x00060002, "dd/etd" },
+ { 0x00060003, "dd/ltd" },
+ { 0x00060004, "dd, DigitMap Completion Event" },
+ { 0x00060010, "dd/d0, DTMF character 0" },
+ { 0x00060011, "dd/d1, DTMF character 1" },
+ { 0x00060012, "dd/d2, DTMF character 2" },
+ { 0x00060013, "dd/d3, DTMF character 3" },
+ { 0x00060014, "dd/d4, DTMF character 4" },
+ { 0x00060015, "dd/d5, DTMF character 5" },
+ { 0x00060016, "dd/d6, DTMF character 6" },
+ { 0x00060017, "dd/d7, DTMF character 7" },
+ { 0x00060018, "dd/d8, DTMF character 8" },
+ { 0x00060019, "dd/d9, DTMF character 9" },
+ { 0x0006001a, "dd/a, DTMF character A" },
+ { 0x0006001b, "dd/b, DTMF character B" },
+ { 0x0006001c, "dd/c, DTMF character C" },
+ { 0x0006001d, "dd/d, DTMF character D" },
+ { 0x00060020, "dd/" "*, DTMF character *" }, /* XXX: hack so checkAPIs & etc won't see a 'start of comment' */
+ { 0x00060021, "dd/#, DTMF character #" },
+ { 0x00080030, "cd, Dial Tone" },
+ { 0x00080031, "cd, Ringing Tone" },
+ { 0x00080032, "cd, Busy Tone" },
+ { 0x00080033, "cd, Congestion Tone" },
+ { 0x00080034, "cd, Special Information Tone" },
+ { 0x00080035, "cd, (Recording) Warning Tone" },
+ { 0x00080036, "cd, Payphone Recognition Tone" },
+ { 0x00080037, "cd, Call Waiting Tone" },
+ { 0x00080038, "cd, Caller Waiting Tone" },
+ { 0x00090004, "al, onhook" },
+ { 0x00090005, "al, offhook" },
+ { 0x00090006, "al, flashhook" },
+ { 0x0009ffff, "al, *" },
+ { 0x000a0005, "ct, Completion of Continuity test" },
+ { 0x000b0005, "nt, network failure" },
+ { 0x000b0006, "nt, quality alert" },
+ { 0x000c0001, "rtp, Payload Transition" },
+ { 0x00210000, "Generic Bearer Connection Q.1950 Annex A" },
+ { 0x00210001, "GB/BNCChange" },
+ { 0x00220001, "BT/TIND (Tunnel Indication)" },
+ { 0x002a0001, "H.245/h245msg (Incoming H.245 Message)" },
+ { 0x002a0004, "H.245/h245ChC (H.245 Channel Closed)" },
+ { 0x00450000, "Inactivity Timer H.248.14" },
+ { 0x00450001, "it/ito" },
+ { 0x00450002, "it/ito" },
+ { 0x00460001, "threegmlc/mod_link_supp (Bearer Modification Support Event)" },
+ { 0x00980000, "Hanging Termination Package" },
+ { 0x00980001, "Termination Heartbeat" },
+ { 0x800a0000, "Nokia Bearer Characteristics Package" },
+ {0, NULL}
+};
+
+/*
+ * This table consist of PackageName + SignalName and its corresponding string
+ */
+static const value_string base_signal_name_vals[] = {
+ { 0x00000000, "Media stream properties H.248.1 Annex C" },
+ { 0x00010000, "g H.248.1 Annex E" },
+ { 0x00030001, "tonegen/pt(Play tone)" },
+ { 0x00050010, "dg, DTMF character 0" },
+ { 0x00050011, "dg, DTMF character 1" },
+ { 0x00050012, "dg, DTMF character 2" },
+ { 0x00050013, "dg, DTMF character 3" },
+ { 0x00050014, "dg, DTMF character 4" },
+ { 0x00050015, "dg, DTMF character 5" },
+ { 0x00050016, "dg, DTMF character 6" },
+ { 0x00050017, "dg, DTMF character 7" },
+ { 0x00050018, "dg, DTMF character 8" },
+ { 0x00050019, "dg, DTMF character 9" },
+ { 0x0005001a, "dg, DTMF character A" },
+ { 0x0005001b, "dg, DTMF character B" },
+ { 0x0005001c, "dg, DTMF character C" },
+ { 0x0005001d, "dg, DTMF character D" },
+ { 0x00050020, "dg, DTMF character *" },
+ { 0x00050021, "dg, DTMF character #" },
+ { 0x00070030, "cg, Dial Tone" },
+ { 0x00070031, "cg/rt (Ringing Tone)" },
+ { 0x00070032, "cg, Busy Tone" },
+ { 0x00070033, "cg, Congestion Tone" },
+ { 0x00070034, "cg, Special Information Tone" },
+ { 0x00070035, "cg, (Recording) Warning Tone" },
+ { 0x00070036, "cg, Payphone Recognition Tone" },
+ { 0x00070037, "cg, Call Waiting Tone" },
+ { 0x00070038, "cg, Caller Waiting Tone" },
+ { 0x00090002, "al, ring" },
+ { 0x0009ffff, "al, *" },
+ { 0x000a0003, "ct, Continuity test" },
+ { 0x000a0004, "ct, Continuity respond" },
+ { 0x00210000, "GB Generic Bearer Connection Q.1950 Annex A" },
+ { 0x00210001, "GB/EstBNC(Establish BNC)" },
+ { 0x00210002, "GB/ModBNC (Modify BNC)" },
+ { 0x00210003, "GB/RelBNC(Release BNC)" },
+ { 0x002a0001, "H.245/cs (channel state)" },
+ { 0x002a0002, "H.245/termtype (Terminal Type)" },
+ { 0x002c0001, "H.324/cmod (Communication mode)" },
+ { 0x002c0002, "H.324/muxlv (Highest Multiplexing level)" },
+ { 0x002c0003, "H.324/demux (Demultiplex)" },
+ { 0x002c0004, "H.324/h223capr (Remote H.223 capability)" },
+ { 0x002c0005, "H.324/muxtbl_in (Incoming Multiplex Table)" },
+ { 0x002c0006, "H.324/muxtbl_out (Outgoing Multiplex Table)" },
+ { 0x800a0000, "Nokia Bearer Characteristics Package" },
+ {0, NULL}
+};
+
+
+static const value_string h248_reasons[] = {
+ { 400, "Syntax error in message"},
+ { 401, "Protocol Error"},
+ { 402, "Unauthorized"},
+ { 403, "Syntax error in transaction request"},
+ { 406, "Version Not Supported"},
+ { 410, "Incorrect identifier"},
+ { 411, "The transaction refers to an unknown ContextId"},
+ { 412, "No ContextIDs available"},
+ { 413, "Number of transactions in message exceeds maximum"}, /* [H.248.8 (08/07)] */
+ { 421, "Unknown action or illegal combination of actions"},
+ { 422, "Syntax Error in Action"},
+ { 430, "Unknown TerminationID"},
+ { 431, "No TerminationID matched a wildcard"},
+ { 432, "Out of TerminationIDs or No TerminationID available"},
+ { 433, "TerminationID is already in a Context"},
+ { 434, "Max number of Terminations in a Context exceeded"},
+ { 435, "Termination ID is not in specified Context"},
+ { 440, "Unsupported or unknown Package"},
+ { 441, "Missing Remote or Local Descriptor"},
+ { 442, "Syntax Error in Command"},
+ { 443, "Unsupported or Unknown Command"},
+ { 444, "Unsupported or Unknown Descriptor"},
+ { 445, "Unsupported or Unknown Property"},
+ { 446, "Unsupported or Unknown Parameter"},
+ { 447, "Descriptor not legal in this command"},
+ { 448, "Descriptor appears twice in a command"},
+ { 449, "Unsupported or Unknown Parameter or Property Value"},
+ { 450, "No such property in this package"},
+ { 451, "No such event in this package"},
+ { 452, "No such signal in this package"},
+ { 453, "No such statistic in this package"},
+ { 454, "No such parameter value in this package"},
+ { 455, "Property illegal in this Descriptor"},
+ { 456, "Property appears twice in this Descriptor"},
+ { 457, "Missing parameter in signal or event"},
+ { 458, "Unexpected Event/Request ID"},
+ { 459, "Unsupported or Unknown Profile"},
+ { 460, "Unable to set statistic on stream"},
+ { 461, "Unsupported or Unknown Profile"}, /*[H.248.18] */
+
+ { 471, "Implied Add for Multiplex failure"},
+ { 472, "Required Information Missing"}, /*[H.248.8 (08/07)] */
+ { 473, "Conflicting Property Values"}, /*[H.248.8 (08/07)] */
+ { 474, "Invalid SDP Syntax"}, /*[H.248.49] */
+ { 475, "Unable to pause the playout of the signal"}, /*[H.248.66] */
+ { 476, "Unable to adjust the data delivery speed of the Signal"}, /*[H.248.66] */
+
+ { 477, "Unable to adjust the playback relative scale of the signal"}, /*[H.248.66] */
+
+ { 478, "Behaviour Contradicts Resource Rule"}, /*[H.248.63] */
+
+ { 500, "Internal software Failure in MG"},
+ { 501, "Not Implemented"},
+ { 502, "Not ready"},
+ { 503, "Service Unavailable"},
+ { 504, "Command Received from unauthorized entity"},
+ { 505, "Transaction Request Received before a Service Change Reply has been received"},
+ { 506, "Number of Transaction Pendings Exceeded"},
+ { 510, "Insufficient resources"},
+ { 511, "Temporarily Busy"}, /* [H.248.8 (08/07)] */
+ { 512, "Media Gateway unequipped to detect requested Event"},
+ { 513, "Media Gateway unequipped to generate requested Signals"},
+ { 514, "Media Gateway cannot send the specified announcement"},
+ { 515, "Unsupported Media Type"},
+ { 517, "Unsupported or invalid mode"},
+ { 518, "Event buffer full"},
+ { 519, "Out of space to store digit map"},
+ { 520, "Digit Map undefined in the MG"},
+ { 521, "Termination is ServiceChangeing"},
+ { 522, "Functionality Requested in Topology Triple Not Supported"},
+ { 526, "Insufficient bandwidth"},
+ { 529, "Internal hardware failure in MG"},
+ { 530, "Temporary Network failure"},
+ { 531, "Permanent Network failure"},
+ { 532, "Audited Property, Statistic, Event or Signal does not exist"},
+ { 533, "Response exceeds maximum transport PDU size"},
+ { 534, "Illegal write or read only property"},
+ { 540, "Unexpected initial hook state"},
+ { 541, "Unexpected Spare Bit State"}, /* [H.248.33] */
+ { 542, "Command is not allowed on this termination"},
+ { 543, "MGC requested event detection timestamp not supported"}, /* [H.248.8 (08/07)] */
+ { 581, "Does Not Exist"},
+ { 600, "Illegal syntax within an announcement specification"},
+ { 601, "Variable type not supported"},
+ { 602, "Variable value out of range"},
+ { 603, "Category not supported"},
+ { 604, "Selector type not supported"},
+ { 605, "Selector value not supported"},
+ { 606, "Unknown segment ID"},
+ { 607, "Mismatch between play specification and provisioned data"},
+ { 608, "Provisioning error"},
+ { 609, "Invalid offset"},
+ { 610, "No free segment IDs"},
+ { 611, "Temporary segment not found"},
+ { 612, "Segment in use"},
+ { 613, "ISP port limit overrun"},
+ { 614, "No modems available"},
+ { 615, "Calling number unacceptable"},
+ { 616, "Called number unacceptable"},
+ { 617, "Reserved for H.248.9 return code"}, /* [H.248.9] */
+ { 618, "Reserved for H.248.9 return code"}, /* [H.248.9] */
+ { 622, "Reserved for H.248.9 return code"}, /* [H.248.9] */
+ { 623, "Reserved for H.248.9 return code"}, /* [H.248.9] */
+ { 624, "Reserved for H.248.9 return code"}, /* [H.248.9] */
+ { 625, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
+ { 626, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
+ { 627, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
+ { 628, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
+ { 629, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
+ { 700, "Sieve Script Syntax Error"}, /* [H.248.69] */
+ { 701, "Unsupported Sieve Require Error"}, /* [H.248.69] */
+ { 702, "Sieve Actions Exceeded Error"}, /* [H.248.69] */
+
+ { 900, "Service Restored"},
+ { 901, "Cold Boot"},
+ { 902, "Warm Boot"},
+ { 903, "MGC Directed Change"},
+ { 904, "Termination malfunctioning"},
+ { 905, "Termination taken out of service"},
+ { 906, "Loss of lower layer connectivity (e.g. downstream sync)"},
+ { 907, "Transmission Failure"},
+ { 908, "MG Impending Failure"},
+ { 909, "MGC Impending Failure"},
+ { 910, "Media Capability Failure"},
+ { 911, "Modem Capability Failure"},
+ { 912, "Mux Capability Failure"},
+ { 913, "Signal Capability Failure"},
+ { 914, "Event Capability Failure"},
+ { 915, "State Loss"},
+ { 916, "Packages Change"},
+ { 917, "Capabilities Change"},
+ { 918, "Cancel Graceful"},
+ { 919, "Warm Failover"},
+ { 920, "Cold Failover"},
+ {0,NULL}
+};
+static value_string_ext h248_reasons_ext = VALUE_STRING_EXT_INIT(h248_reasons);
+
+static const value_string wildcard_modes[] = {
+ { 0, "Choose" },
+ { 1, "All" },
+ { 0, NULL }
+};
+
+static const value_string wildcard_levels[] = {
+ { 0, "This One Level" },
+ { 1, "This Level and those below" },
+ { 0, NULL }
+};
+
+static h248_curr_info_t curr_info = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
+static guint32 error_code;
+static guint32 h248_version = 0; /* h248v1 support */
+static gcp_wildcard_t wild_term;
+static guint8 wild_card = 0xFF; /* place to store wildcardField */
+
+extern void h248_param_ber_integer(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* u _U_, void* implicit) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_ber_integer(implicit ? *((gboolean*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
+}
+
+extern void h248_param_ber_octetstring(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* u _U_, void* implicit) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_ber_octet_string(implicit ? *((gboolean*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
+}
+
+extern void h248_param_ber_boolean(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* u _U_, void* implicit) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_ber_boolean(implicit ? *((gboolean*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
+}
+
+extern void h248_param_bytes_item(proto_tree* tree,
+ tvbuff_t* tvb,
+ packet_info* pinfo _U_,
+ int hfid,
+ h248_curr_info_t* h248_info _U_,
+ void* lenp ) {
+ int len = lenp ? *((int*)lenp) : -1;
+ proto_tree_add_item(tree,hfid,tvb,0,len,ENC_NA);
+}
+
+extern void h248_param_uint_item(proto_tree* tree,
+ tvbuff_t* tvb,
+ packet_info* pinfo _U_,
+ int hfid,
+ h248_curr_info_t* h248_info _U_,
+ void* lenp ) {
+ int len = lenp ? *((int*)lenp) : -1;
+ proto_tree_add_item(tree,hfid,tvb,0,len,ENC_BIG_ENDIAN);
+}
+
+extern void h248_param_external_dissector(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo , int hfid _U_, h248_curr_info_t* u _U_, void* dissector_hdl) {
+ call_dissector((dissector_handle_t) dissector_hdl,tvb,pinfo,tree);
+}
+
+
+static const h248_package_t no_package = { 0xffff, &hf_h248_no_pkg, &ett_h248_no_pkg, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
+static const h248_pkg_sig_t no_signal = { 0, &hf_h248_no_sig, &ett_h248_no_sig, NULL, NULL };
+static const h248_pkg_param_t no_param = { 0, &hf_h248_param, h248_param_uint_item, NULL };
+static const h248_pkg_evt_t no_event = { 0, &hf_h248_no_evt, &ett_h248_no_evt, NULL, NULL };
+
+const h248_package_t *find_package_id(guint16 pkgid);
+static GTree* packages = NULL;
+
+extern void h248_param_PkgdName(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo , int hfid _U_, h248_curr_info_t* u1 _U_, void* u2 _U_) {
+ tvbuff_t *new_tvb = NULL;
+ proto_tree *package_tree=NULL;
+ guint16 name_major, name_minor;
+ const h248_package_t* pkg = NULL;
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ offset = dissect_ber_octet_string(FALSE, &asn1_ctx, tree, tvb, offset, hfid , &new_tvb);
+
+ if (new_tvb) {
+ /* this field is always 4 bytes so just read it into two integers */
+ name_major=tvb_get_ntohs(new_tvb, 0);
+ name_minor=tvb_get_ntohs(new_tvb, 2);
+ pkg = find_package_id(name_major);
+ /* do the prettification */
+ proto_item_append_text(asn1_ctx.created_item, " %s (%04x)",
+ val_to_str(0, pkg->param_names, "Unknown Package"),
+ name_major);
+
+ if(tree){
+ proto_item* pi;
+ const gchar* strval;
+
+ package_tree = proto_item_add_subtree(asn1_ctx.created_item, ett_packagename);
+ proto_tree_add_uint_format(package_tree, hf_h248_pkg_name, tvb, offset-4, 2, name_major,
+ "%s (0x%04x)", val_to_str(0, pkg->param_names, "Unknown Package"), name_major);
+
+ pi = proto_tree_add_uint(package_tree, hf_248_pkg_param, tvb, offset-2, 2, name_minor);
+
+ if (pkg->signal_names && ( strval = try_val_to_str(name_minor, pkg->signal_names) )) {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "%s (%d)",strval,name_minor);
+ } else {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "Unknown (%d)",name_minor);
+ }
+
+ proto_item_set_text(pi,"Signal ID: %s", strval);
+ }
+
+ }
+}
+
+
+static int dissect_h248_trx_id(gboolean implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, guint32* trx_id_p) {
+ guint64 trx_id = 0;
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ guint32 len;
+ guint32 i;
+
+ if(!implicit_tag){
+ offset=dissect_ber_identifier(pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(pinfo, tree, tvb, offset, &len, NULL);
+ } else {
+ len=tvb_reported_length_remaining(tvb, offset);
+ }
+
+
+ if (len > 8 || len < 1) {
+ THROW(BoundsError);
+ } else {
+ for(i=1;i<=len;i++){
+ trx_id=(trx_id<<8)|tvb_get_guint8(tvb, offset);
+ offset++;
+ }
+ if (trx_id > 0xffffffff) {
+ proto_item* pi = proto_tree_add_uint64(tree, hf_h248_transactionId64, tvb, offset-len, len, trx_id);
+ expert_add_info(pinfo, pi, &ei_h248_transactionId64);
+
+ *trx_id_p = 0;
+
+ } else {
+ proto_tree_add_uint(tree, hf_h248_transactionId, tvb, offset-len, len, (guint32)trx_id);
+ *trx_id_p = (guint32)trx_id;
+ }
+ }
+
+ return offset;
+}
+
+static int dissect_h248_ctx_id(gboolean implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, guint32* ctx_id_p) {
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ guint32 len;
+ guint64 ctx_id = 0;
+ guint32 i;
+
+ if(!implicit_tag){
+ offset=dissect_ber_identifier(pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(pinfo, tree, tvb, offset, &len, NULL);
+ } else {
+ len=tvb_reported_length_remaining(tvb, offset);
+ }
+
+
+ if (len > 8 || len < 1) {
+ THROW(BoundsError);
+ } else {
+ for(i=1;i<=len;i++){
+ ctx_id=(ctx_id<<8)|tvb_get_guint8(tvb, offset);
+ offset++;
+ }
+
+ if (ctx_id > 0xffffffff) {
+ proto_item* pi = proto_tree_add_uint64(tree, hf_h248_context_id64, tvb, offset-len, len, ctx_id);
+ expert_add_info(pinfo, pi, &ei_h248_context_id64);
+
+ *ctx_id_p = 0xfffffffd;
+
+ } else {
+ proto_item* pi = proto_tree_add_uint(tree, hf_h248_context_id, tvb, offset-len, len, (guint32)ctx_id);
+
+ if ( ctx_id == NULL_CONTEXT ) {
+ proto_item_set_text(pi,"contextId: Null Context(0)");
+ } else if ( ctx_id == CHOOSE_CONTEXT ) {
+ proto_item_set_text(pi,"contextId: $ (Choose Context = 0xfffffffe)");
+ } else if ( ctx_id == ALL_CONTEXTS ) {
+ proto_item_set_text(pi,"contextId: * (All Contexts = 0xffffffff)");
+ }
+
+ *ctx_id_p = (guint32) ctx_id;
+ }
+ }
+
+ return offset;
+}
+
+static s_h248_package_t *s_find_package_id(guint16 pkgid) {
+ s_h248_package_t *s_pkg = NULL;
+ s_pkg = (s_h248_package_t *)g_tree_lookup(packages, GUINT_TO_POINTER((guint32)(pkgid)));
+ return s_pkg;
+}
+
+const h248_package_t *find_package_id(guint16 pkgid) {
+ s_h248_package_t *s_pkg = NULL;
+ s_pkg = s_find_package_id(pkgid); /*(packages, GUINT_TO_POINTER((guint32)(pkgid))); */
+ if (! s_pkg ) return &no_package;
+ return s_pkg->pkg;
+}
+
+static gint32 comparePkgID(gconstpointer a, gconstpointer b) {
+ return GPOINTER_TO_UINT(b) - GPOINTER_TO_UINT(a);
+}
+
+static gboolean is_pkg_default(guint16 pkgid) {
+ s_h248_package_t *s_pkg = NULL;
+ s_pkg = (s_h248_package_t *)g_tree_lookup(packages, GUINT_TO_POINTER((guint32)(pkgid)));
+ if(! s_pkg ) return TRUE;
+ return s_pkg->is_default;
+}
+
+void h248_register_package(h248_package_t* pkg, pkg_reg_action reg_action) {
+ h248_package_t *pkg_found = NULL, *pkg_high = NULL, *pkg_low = NULL;
+ s_h248_package_t *s_pkg = NULL;
+ value_string *vst;
+ gboolean pkg_default = FALSE;
+ gint j = 0, idx = 0, i = 0, k = 0;
+ if (! packages) {
+ /* no packaegs are yet registerd so create tree and add default packages to tree
+ */
+ packages = g_tree_new(comparePkgID); /* init tree if no entries */
+ while (base_package_name_vals[i].strptr != NULL) {
+ pkg_found = wmem_new0(wmem_epan_scope(), h248_package_t); /* create a h248 package structure */
+ pkg_found->id = base_package_name_vals[i].value;
+ vst = (value_string *)wmem_alloc0(wmem_epan_scope(), sizeof(value_string)*2);
+ vst[0].strptr = base_package_name_vals[i].strptr;
+ pkg_found->param_names = vst;
+ pkg_found->hfid = &hf_h248_pkg_name;
+ pkg_found->ett = &ett_packagename;
+ try_val_to_str_idx((pkg_found->id)<<16,base_event_name_vals, &j);
+ /* now look for events and signals that may be defined for package. If found, create value_strings */
+ if (j != -1) {
+ j++; idx=j;
+ while((base_event_name_vals[j].strptr!=NULL) && (((base_event_name_vals[j].value)>>16) == (pkg_found->id))) {
+ j++;
+ };
+ if (idx < j) {
+ vst = (value_string *)wmem_alloc0(wmem_epan_scope(), sizeof(value_string)*(j-idx+1));
+ for (k=0;idx<j;k++) {
+ vst[k].strptr = base_event_name_vals[idx].strptr;
+ vst[k].value = (base_event_name_vals[idx].value & 0xffff);
+ idx++;
+ };
+ pkg_found->event_names = vst;
+ }
+ }
+ /* now look at signals */
+ if (!try_val_to_str_idx((pkg_found->id)<<16, base_signal_name_vals, &j)) {
+ j++; idx=j;
+ while((base_signal_name_vals[j].strptr != NULL) && ((base_signal_name_vals[j].value>>16) == (pkg_found->id))) {
+ j++;
+ };
+ if (idx < j) {
+ vst = (value_string *)wmem_alloc0(wmem_epan_scope(), sizeof(value_string)*(j-idx+1));
+ for (k=0;idx<j;k++) {
+ vst[k].strptr = base_signal_name_vals[idx].strptr;
+ vst[k].value = (base_signal_name_vals[idx].value &0xffff);
+ idx++;
+ };
+ pkg_found->signal_names = vst;
+ }
+ };
+ s_pkg = wmem_new0(wmem_epan_scope(), s_h248_package_t);
+ s_pkg->is_default = TRUE;
+ s_pkg->pkg = pkg_found;
+ g_tree_insert(packages, GINT_TO_POINTER(pkg_found->id), (gpointer)s_pkg);
+ i++;
+ };
+ pkg_found = NULL; /* reset pointer */
+ };
+ pkg_default = is_pkg_default(pkg->id);
+ if (((reg_action==REPLACE_PKG) || (reg_action==ADD_PKG)) && pkg_default) {
+ /* add/replace in tree */
+ s_pkg = wmem_new0(wmem_epan_scope(), s_h248_package_t);
+ s_pkg->is_default = FALSE;
+ s_pkg->pkg = (h248_package_t *)pkg;
+ g_tree_replace(packages, GINT_TO_POINTER(pkg->id), (gpointer)s_pkg);
+ return;
+ };
+ if(pkg_default) reg_action = MERGE_PKG_HIGH; /* always make new package overide default */
+ s_pkg = s_find_package_id(pkg->id);
+ if (s_pkg == NULL) { /* no need to merge - package not in tree */
+ s_pkg = wmem_new0(wmem_epan_scope(), s_h248_package_t);
+ s_pkg->is_default = FALSE;
+ s_pkg->pkg = (h248_package_t *)pkg;
+ g_tree_insert(packages, GINT_TO_POINTER(pkg->id), (gpointer)s_pkg);
+ return;
+ }
+ pkg_found = s_pkg->pkg;
+ if (reg_action==MERGE_PKG_HIGH) {
+ pkg_high = (h248_package_t *)pkg;
+ pkg_low = pkg_found;
+ };
+ if (reg_action==MERGE_PKG_LOW) {
+ pkg_high = pkg_found;
+ pkg_low = (h248_package_t *)pkg;
+ };
+ if(pkg_high) {
+ /* if h248_package_t High Priority value !NULL, replace it in the found tree entry else use current entry */
+ (pkg_high->hfid ? (pkg_found->hfid=pkg_high->hfid) : (pkg_found->hfid=pkg_low->hfid));
+ (pkg_high->ett ? (pkg_found->ett=pkg_high->ett ):( pkg_found->ett=pkg_low->ett));
+ (pkg_high->param_names ? (pkg_found->param_names=pkg_high->param_names ):( pkg_found->param_names=pkg_low->param_names));
+ (pkg_high->signal_names ? (pkg_found->signal_names=pkg_high->signal_names ):( pkg_found->signal_names=pkg_low->signal_names));
+ (pkg_high->event_names ? (pkg_found->event_names=pkg_high->event_names ):( pkg_found->event_names=pkg_low->event_names));
+ (pkg_high->stats_names ? (pkg_found->stats_names=pkg_high->stats_names ):( pkg_found->stats_names=pkg_low->stats_names));
+ (pkg_high->properties ? (pkg_found->properties=pkg_high->properties ):( pkg_found->properties=pkg_low->properties));
+ (pkg_high->signals ? (pkg_found->signals=pkg_high->signals ):( pkg_found->signals=pkg_low->signals));
+ (pkg_high->events ? (pkg_found->events=pkg_high->events ):( pkg_found->events=pkg_low->events));
+ (pkg_high->statistics ? (pkg_found->statistics=pkg_high->statistics ):( pkg_found->statistics=pkg_low->statistics));
+ s_pkg->pkg = pkg_found;
+ s_pkg->is_default = FALSE;
+ }
+}
+
+
+static guint32 packageandid;
+
+static int dissect_h248_PkgdName(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ tvbuff_t *new_tvb = NULL;
+ proto_tree *package_tree=NULL;
+ guint16 name_major, name_minor;
+ const h248_package_t* pkg = NULL;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
+
+ if (new_tvb) {
+ /* this field is always 4 bytes so just read it into two integers */
+ name_major=tvb_get_ntohs(new_tvb, 0);
+ name_minor=tvb_get_ntohs(new_tvb, 2);
+ packageandid=(name_major<<16)|name_minor;
+
+ pkg = find_package_id(name_major);
+ /* do the prettification */
+ proto_item_append_text(actx->created_item, " %s (%04x)",
+ val_to_str(0, pkg->param_names, "Unknown Package"),
+ name_major);
+
+ if(tree){
+ package_tree = proto_item_add_subtree(actx->created_item, ett_packagename);
+ proto_tree_add_uint_format(package_tree, hf_h248_pkg_name, tvb, offset-4, 2, name_major,
+ "PkgName: %s (0x%04x)", val_to_str(0, pkg->param_names, "Unknown Package"), name_major);
+ }
+
+ {
+ proto_item* pi = proto_tree_add_uint(package_tree, hf_248_pkg_param, tvb, offset-2, 2, name_minor);
+ const gchar* strval;
+
+ if (pkg->param_names && ( strval = try_val_to_str(name_minor, pkg->param_names) )) {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "%s (%d)",strval,name_minor);
+ } else {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "Unknown (%d)",name_minor);
+ }
+
+ proto_item_set_text(pi,"Parameter: %s", strval);
+ }
+ } else {
+ pkg = &no_package;
+ }
+
+ curr_info.pkg = pkg;
+
+ return offset;
+}
+
+static int dissect_h248_EventName(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ tvbuff_t *new_tvb;
+ proto_tree *package_tree=NULL;
+ guint16 name_major, name_minor;
+ const h248_package_t* pkg = NULL;
+ const h248_pkg_evt_t* evt = NULL;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
+
+ if (new_tvb) {
+ /* this field is always 4 bytes so just read it into two integers */
+ name_major=tvb_get_ntohs(new_tvb, 0);
+ name_minor=tvb_get_ntohs(new_tvb, 2);
+ packageandid=(name_major<<16)|name_minor;
+
+ pkg = find_package_id(name_major);
+ /* do the prettification */
+ proto_item_append_text(actx->created_item, " %s (%04x)",
+ val_to_str(0, pkg->param_names, "Unknown Package"),
+ name_major);
+ if(tree){
+ package_tree = proto_item_add_subtree(actx->created_item, ett_packagename);
+ }
+ proto_tree_add_uint_format(package_tree, hf_h248_pkg_name, tvb, offset-4, 2, name_major,
+ "%s (0x%04x)", val_to_str(0, pkg->param_names, "Unknown Package"), name_major);
+
+ curr_info.pkg = pkg;
+
+ if (pkg->events) {
+ for (evt = pkg->events; evt->hfid; evt++) {
+ if (name_minor == evt->id) {
+ break;
+ }
+ }
+
+ if (! evt->hfid) evt = &no_event;
+ } else {
+ evt = &no_event;
+ }
+
+ curr_info.evt = evt;
+
+ {
+ proto_item* pi = proto_tree_add_uint(package_tree, hf_h248_event_code, tvb, offset-2, 2, name_minor);
+ const gchar* strval;
+
+ if (pkg->event_names && ( strval = try_val_to_str(name_minor, pkg->event_names) )) {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "%s (%d)",strval,name_minor);
+ } else {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "Unknown (%d)",name_minor);
+ }
+
+ proto_item_set_text(pi,"Event ID: %s", strval);
+ }
+
+ } else {
+ curr_info.pkg = &no_package;
+ curr_info.evt = &no_event;
+ }
+
+ return offset;
+}
+
+
+
+static int dissect_h248_SignalName(gboolean implicit_tag , tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ tvbuff_t *new_tvb;
+ proto_tree *package_tree=NULL;
+ guint16 name_major, name_minor;
+ const h248_package_t* pkg = NULL;
+ const h248_pkg_sig_t* sig;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
+
+ if (new_tvb) {
+ /* this field is always 4 bytes so just read it into two integers */
+ name_major=tvb_get_ntohs(new_tvb, 0);
+ name_minor=tvb_get_ntohs(new_tvb, 2);
+ packageandid=(name_major<<16)|name_minor;
+
+ pkg = find_package_id(name_major);
+ /* do the prettification */
+ proto_item_append_text(actx->created_item, " %s (%04x)",
+ val_to_str(0, pkg->param_names, "Unknown Package"),
+ name_major);
+ if(tree){
+ package_tree = proto_item_add_subtree(actx->created_item, ett_packagename);
+ }
+ proto_tree_add_uint_format(package_tree, hf_h248_pkg_name, tvb, offset-4, 2, name_major,
+ "%s (0x%04x)", val_to_str(0, pkg->param_names, "Unknown Package"), name_major);
+
+ if (pkg->signals) {
+ for (sig = pkg->signals; sig->hfid; sig++) {
+ if (name_minor == sig->id) {
+ break;
+ }
+ }
+
+ if (! sig->hfid) sig = &no_signal;
+
+ curr_info.pkg = pkg;
+ curr_info.sig = sig;
+ } else {
+ curr_info.pkg = &no_package;
+ curr_info.sig = &no_signal;
+ }
+
+ {
+ proto_item* pi = proto_tree_add_uint(package_tree, hf_h248_signal_code, tvb, offset-2, 2, name_minor);
+ const gchar* strval;
+
+ if (pkg->signal_names && ( strval = try_val_to_str(name_minor, pkg->signal_names) )) {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "%s (%d)",strval,name_minor);
+ } else {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "Unknown (%d)",name_minor);
+ }
+
+ proto_item_set_text(pi,"Signal ID: %s", strval);
+ }
+
+ } else {
+ curr_info.pkg = &no_package;
+ curr_info.sig = &no_signal;
+ }
+
+ return offset;
+}
+
+static int dissect_h248_PropertyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
+
+ gint8 ber_class;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+ guint16 name_minor;
+ int end_offset;
+ const h248_package_t* pkg;
+ const h248_pkg_param_t* prop;
+ tvbuff_t *next_tvb = NULL;
+
+ offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ end_offset=offset+len;
+
+ if( (ber_class!=BER_CLASS_UNI)
+ ||(tag!=BER_UNI_TAG_OCTETSTRING) ){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_h248_octet_string_expected, tvb, offset-2, 2,
+ "H.248 BER Error: OctetString expected but Class:%d PC:%d Tag:%d was unexpected", ber_class, pc, tag);
+ return end_offset;
+ }
+
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
+
+ name_minor = packageandid & 0xffff;
+
+ pkg = (curr_info.pkg) ? curr_info.pkg : &no_package;
+
+ if (pkg->properties) {
+ for (prop = pkg->properties; prop && prop->hfid; prop++) {
+ if (name_minor == prop->id) {
+ break;
+ }
+ }
+ } else {
+ prop = &no_param;
+ }
+ if (prop && prop->hfid && prop->dissector) {
+ prop->dissector(tree, next_tvb, actx->pinfo, *(prop->hfid), &curr_info, prop->data);
+ }
+
+ return end_offset;
+}
+
+
+
+static int dissect_h248_SigParameterName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
+ tvbuff_t *next_tvb;
+ guint32 param_id = 0xffffffff;
+ const h248_pkg_param_t* sigpar;
+ const gchar* strval;
+ proto_item* pi;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &next_tvb);
+ pi = actx->created_item;
+
+ switch(tvb_reported_length(next_tvb)) {
+ case 4: param_id = tvb_get_ntohl(next_tvb,0); break;
+ case 3: param_id = tvb_get_ntoh24(next_tvb,0); break;
+ case 2: param_id = tvb_get_ntohs(next_tvb,0); break;
+ case 1: param_id = tvb_get_guint8(next_tvb,0); break;
+ default: break;
+ }
+
+ curr_info.par = &no_param;
+
+ if (curr_info.sig && curr_info.sig->parameters) {
+ for(sigpar = curr_info.sig->parameters; sigpar->hfid; sigpar++) {
+ if (sigpar->id == param_id) {
+ curr_info.par = sigpar;
+ break;
+ }
+ }
+ }
+
+ if (curr_info.sig && curr_info.sig->param_names && ( strval = try_val_to_str(param_id, curr_info.sig->param_names) )) {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "%s (%d)",strval,param_id);
+ } else {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "Unknown (%d)",param_id);
+ }
+
+ proto_item_set_text(pi,"Parameter: %s", strval);
+
+ return offset;
+}
+
+static int dissect_h248_SigParamValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
+ int end_offset;
+ gint8 ber_class;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+ tvbuff_t *next_tvb = NULL;
+
+ offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ end_offset=offset+len;
+
+ if( (ber_class!=BER_CLASS_UNI)
+ ||(tag!=BER_UNI_TAG_OCTETSTRING) ){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_h248_octet_string_expected, tvb, offset-2, 2,
+ "H.248 BER Error: OctetString expected but Class:%d PC:%d Tag:%d was unexpected", ber_class, pc, tag);
+ return end_offset;
+ }
+
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
+
+ if ( curr_info.par && curr_info.par->dissector) {
+ curr_info.par->dissector(tree, next_tvb, actx->pinfo, *(curr_info.par->hfid), &curr_info, curr_info.par->data);
+ }
+
+ return end_offset;
+}
+
+static int dissect_h248_SigParamValueV1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
+ return dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+}
+
+
+static int dissect_h248_EventParameterName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
+ tvbuff_t *next_tvb;
+ guint32 param_id = 0xffffffff;
+ const h248_pkg_param_t* evtpar;
+ const gchar* strval;
+ proto_item* pi;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &next_tvb);
+ pi = actx->created_item;
+
+ if (next_tvb) {
+ switch(tvb_reported_length(next_tvb)) {
+ case 4: param_id = tvb_get_ntohl(next_tvb,0); break;
+ case 3: param_id = tvb_get_ntoh24(next_tvb,0); break;
+ case 2: param_id = tvb_get_ntohs(next_tvb,0); break;
+ case 1: param_id = tvb_get_guint8(next_tvb,0); break;
+ default: break;
+ }
+ }
+
+
+ curr_info.par = &no_param;
+
+ if (curr_info.evt && curr_info.evt->parameters) {
+ for(evtpar = curr_info.evt->parameters; evtpar->hfid; evtpar++) {
+ if (evtpar->id == param_id) {
+ curr_info.par = evtpar;
+ break;
+ }
+ }
+ } else {
+ curr_info.par = &no_param;
+ }
+
+ if (curr_info.evt && curr_info.evt->param_names && ( strval = try_val_to_str(param_id, curr_info.evt->param_names) )) {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "%s (%d)",strval,param_id);
+ } else {
+ strval = wmem_strdup_printf(wmem_packet_scope(), "Unknown (%d)",param_id);
+ }
+
+ proto_item_set_text(pi,"Parameter: %s", strval);
+
+
+ return offset;
+}
+
+static int dissect_h248_EventParamValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
+ tvbuff_t *next_tvb;
+ int end_offset;
+ gint8 ber_class;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+
+ offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ end_offset=offset+len;
+
+ if( (ber_class!=BER_CLASS_UNI)
+ ||(tag!=BER_UNI_TAG_OCTETSTRING) ){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_h248_octet_string_expected, tvb, offset-2, 2,
+ "H.248 BER Error: OctetString expected but Class:%d PC:%d Tag:%d was unexpected", ber_class, pc, tag);
+ return end_offset;
+ }
+
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
+
+ if ( curr_info.par && curr_info.par->dissector) {
+ curr_info.par->dissector(tree, next_tvb, actx->pinfo, *(curr_info.par->hfid), &curr_info, curr_info.par->data);
+ }
+
+ return end_offset;
+}
+
+static int dissect_h248_EventParamValueV1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
+ return dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &tvb);
+}
+
+
+static int dissect_h248_MtpAddress(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ tvbuff_t *new_tvb;
+ proto_tree *mtp_tree=NULL;
+ guint32 val;
+ int i, len, old_offset;
+
+ old_offset=offset;
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
+
+ if (new_tvb) {
+ /* this field is either 2 or 4 bytes so just read it into an integer */
+ val=0;
+ len=tvb_reported_length(new_tvb);
+ for(i=0;i<len;i++){
+ val= (val<<8)|tvb_get_guint8(new_tvb, i);
+ }
+
+ /* do the prettification */
+ proto_item_append_text(actx->created_item, " NI = %d, PC = %d ( %d-%d )", val&0x03,val>>2,val&0x03,val>>2);
+ if(tree){
+ mtp_tree = proto_item_add_subtree(actx->created_item, ett_mtpaddress);
+ }
+ proto_tree_add_uint(mtp_tree, hf_h248_mtpaddress_ni, tvb, old_offset, offset-old_offset, val&0x03);
+ proto_tree_add_uint(mtp_tree, hf_h248_mtpaddress_pc, tvb, old_offset, offset-old_offset, val>>2);
+ }
+
+ return offset;
+}
+
+#define H248_TAP() do { if (keep_persistent_data && curr_info.cmd) tap_queue_packet(h248_tap, actx->pinfo, curr_info.cmd); } while(0)
+
+#include "packet-h248-fn.c"
+
+static int dissect_h248_tpkt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
+ dissect_tpkt_encap(tvb, pinfo, tree, h248_desegment, h248_handle);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *h248_item;
+ asn1_ctx_t asn1_ctx;
+ h248_tree = NULL;
+ h248_tvb = NULL;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ curr_info.msg = NULL;
+ curr_info.trx = NULL;
+ curr_info.ctx = NULL;
+ curr_info.cmd = NULL;
+ curr_info.term = NULL;
+ curr_info.pkg = NULL;
+ curr_info.evt = NULL;
+ curr_info.sig = NULL;
+ curr_info.stat = NULL;
+ curr_info.par = NULL;
+
+ /* Check if it is actually a text-based H.248 encoding, which we
+ dissect with the "megaco" dissector in Wireshark. (Both
+ encodings are MEGACO (RFC 3015) and both are H.248.)
+ */
+ if(tvb_captured_length(tvb)>=6){
+ if(!tvb_strneql(tvb, 0, "MEGACO", 6)){
+ static dissector_handle_t megaco_handle=NULL;
+ if(!megaco_handle){
+ megaco_handle = find_dissector("megaco");
+ }
+ if(megaco_handle){
+ call_dissector(megaco_handle, tvb, pinfo, tree);
+ return tvb_captured_length(tvb);
+ }
+ }
+ {
+ proto_item *hidden_item = NULL;
+ guint32 magic_num = 0, offset = 0;
+ magic_num = tvb_get_ntohl(tvb, offset);
+ hidden_item = proto_tree_add_uint(tree, hf_248_magic_num, tvb, offset, 4, magic_num);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ if( dissector_try_uint(subdissector_table, magic_num, tvb, pinfo, tree) ) {
+ return tvb_captured_length(tvb);
+ }
+ }
+ }
+
+ /* Make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.248");
+
+ if (tree) {
+ h248_item = proto_tree_add_item(tree, proto_h248, tvb, 0, -1, ENC_NA);
+ h248_tree = proto_item_add_subtree(h248_item, ett_h248);
+ }
+
+ dissect_h248_MegacoMessage(FALSE, tvb, 0, &asn1_ctx, h248_tree, -1);
+
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_h248 ----------------------------------------------*/
+void proto_reg_handoff_h248(void);
+
+void proto_register_h248(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_248_magic_num,
+ { "Magic Number for Avaya H.248", "h248.magic_num",
+ FT_UINT32, BASE_HEX, NULL, 0,
+ NULL, HFILL}},
+ { &hf_h248_mtpaddress_ni,
+ { "NI", "h248.mtpaddress.ni",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_mtpaddress_pc,
+ { "PC", "h248.mtpaddress.pc",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_pkg_name,
+ { "Package", "h248.package_name",
+ FT_UINT16, BASE_HEX, NULL, 0,
+ NULL, HFILL }},
+ { &hf_248_pkg_param,
+ { "Parameter ID", "h248.package_paramid",
+ FT_UINT16, BASE_HEX, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_signal_code,
+ { "Signal ID", "h248.package_signalid",
+ FT_UINT16, BASE_HEX, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_event_code,
+ { "Event ID", "h248.package_eventid",
+ FT_UINT16, BASE_HEX, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_event_name,
+ { "Package and Event name", "h248.event_name",
+ FT_UINT32, BASE_HEX, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_signal_name,
+ { "Package and Signal name", "h248.signal_name",
+ FT_UINT32, BASE_HEX, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_pkg_bcp_BNCChar_PDU,
+ { "BNCChar", "h248.package_bcp.BNCChar",
+ FT_UINT32, BASE_DEC, VALS(gcp_term_types), 0,
+ NULL, HFILL }},
+ { &hf_h248_context_id,
+ { "contextId", "h248.contextId",
+ FT_UINT32, BASE_HEX, NULL, 0,
+ "Context ID", HFILL }},
+ { &hf_h248_term_wild_type,
+ { "Wildcard Mode", "h248.term.wildcard.mode",
+ FT_UINT8, BASE_DEC, VALS(wildcard_modes), 0x80,
+ NULL, HFILL }},
+ { &hf_h248_term_wild_level,
+ { "Wildcarding Level", "h248.term.wildcard.level",
+ FT_UINT8, BASE_DEC, VALS(wildcard_levels), 0x40,
+ NULL, HFILL }},
+ { &hf_h248_term_wild_position,
+ { "Wildcarding Position", "h248.term.wildcard.pos",
+ FT_UINT8, BASE_DEC, NULL, 0x3F,
+ NULL, HFILL }},
+
+ { &hf_h248_no_pkg,
+ { "Unknown Package", "h248.pkg.unknown",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_no_sig,
+ { "Unknown Signal", "h248.pkg.unknown.sig",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_no_evt,
+ { "Unknown Event", "h248.pkg.unknown.evt",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_param,
+ { "Parameter", "h248.pkg.unknown.param",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_serviceChangeReasonStr,
+ { "ServiceChangeReasonStr", "h248.serviceChangeReasonstr",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "h248.IA5String", HFILL }},
+ { &hf_h248_context_id64,
+ { "contextId", "h248.contextId64",
+ FT_UINT64, BASE_HEX, NULL, 0,
+ "Context ID", HFILL }},
+ { &hf_h248_transactionId64,
+ { "transactionId", "h248.transactionId",
+ FT_UINT64, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+
+/* h248v1 support */
+ { &hf_h248_auditValueReplyV1,
+ { "auditValueReplyV1", "h248.auditValueReplyV1",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+#include "packet-h248-hfarr.c"
+
+ GCP_HF_ARR_ELEMS("h248",h248_arrel)
+
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_h248,
+ &ett_mtpaddress,
+ &ett_packagename,
+ &ett_codec,
+ &ett_wildcard,
+ &ett_h248_no_pkg,
+ &ett_h248_no_sig,
+ &ett_h248_no_evt,
+ GCP_ETT_ARR_ELEMS(h248_arrel),
+
+#include "packet-h248-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_h248_errored_command, { "h248.errored_command", PI_RESPONSE_CODE, PI_WARN, "Errored Command", EXPFILL }},
+ { &ei_h248_transactionId64, { "h248.transactionId.error", PI_MALFORMED, PI_WARN, "Transaction ID invalid", EXPFILL }},
+ { &ei_h248_context_id64, { "h248.contextId.error", PI_MALFORMED, PI_WARN, "Context ID invalid", EXPFILL }},
+ { &ei_h248_octet_string_expected, { "h248.octet_string_expected", PI_PROTOCOL, PI_WARN, "H.248 BER Error: OctetString expected", EXPFILL }},
+ };
+
+ expert_module_t* expert_h248;
+ module_t *h248_module;
+
+ /* Register protocol */
+ proto_h248 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("h248", dissect_h248, proto_h248);
+ register_dissector("h248.tpkt", dissect_h248_tpkt, proto_h248);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h248, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_h248 = expert_register_protocol(proto_h248);
+ expert_register_field_array(expert_h248, ei, array_length(ei));
+
+ subdissector_table = register_dissector_table("h248.magic_num", "H248 Magic Num", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+
+ h248_module = prefs_register_protocol(proto_h248, proto_reg_handoff_h248);
+ prefs_register_bool_preference(h248_module, "ctx_info",
+ "Track Context",
+ "Maintain relationships between transactions and contexts and display an extra tree showing context data",
+ &keep_persistent_data);
+ prefs_register_uint_preference(h248_module, "udp_port",
+ "UDP port",
+ "Port to be decoded as h248",
+ 10,
+ &global_udp_port);
+ prefs_register_uint_preference(h248_module, "tcp_port",
+ "TCP port",
+ "Port to be decoded as h248",
+ 10,
+ &global_tcp_port);
+ prefs_register_bool_preference(h248_module, "desegment",
+ "Desegment H.248 over TCP",
+ "Desegment H.248 messages that span more TCP segments",
+ &h248_desegment);
+
+ msgs = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+ trxs = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+ ctxs_by_trx = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+ ctxs = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+
+ h248_tap = register_tap("h248");
+
+ gcp_init();
+}
+
+/*--- proto_reg_handoff_h248 -------------------------------------------*/
+void proto_reg_handoff_h248(void) {
+
+ static gboolean initialized = FALSE;
+ static guint32 udp_port;
+ static guint32 tcp_port;
+
+ if (!initialized) {
+ h248_handle = find_dissector("h248");
+ h248_tpkt_handle = find_dissector("h248.tpkt");
+ dissector_add_uint("mtp3.service_indicator", MTP_SI_GCP, h248_handle);
+ h248_term_handle = find_dissector("h248term");
+ initialized = TRUE;
+ } else {
+ if (udp_port != 0)
+ dissector_delete_uint("udp.port", udp_port, h248_handle);
+
+ if (tcp_port != 0)
+ dissector_delete_uint("tcp.port", tcp_port, h248_tpkt_handle);
+ }
+
+ udp_port = global_udp_port;
+ tcp_port = global_tcp_port;
+
+ if (udp_port != 0) {
+ dissector_add_uint("udp.port", udp_port, h248_handle);
+ }
+
+ if (tcp_port != 0) {
+ dissector_add_uint("tcp.port", tcp_port, h248_tpkt_handle);
+ }
+}
+
diff --git a/epan/dissectors/asn1/h248/packet-h248-template.h b/epan/dissectors/asn1/h248/packet-h248-template.h
new file mode 100644
index 0000000000..1783bf27c9
--- /dev/null
+++ b/epan/dissectors/asn1/h248/packet-h248-template.h
@@ -0,0 +1,123 @@
+/* packet-h248.h
+ * Definitions for H.248/MEGACO packet dissection
+ *
+ * Ronnie Sahlberg 2004
+ * Luis Ontanon 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_H248_H
+
+#include <epan/gcp.h>
+#include "ws_symbol_export.h"
+/*#include "packet-h248-exp.h"*/
+
+typedef struct _h248_curr_info_t h248_curr_info_t;
+
+typedef void (*h248_pkg_param_dissector_t)(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_, int hfid, h248_curr_info_t*, void*);
+
+extern void h248_param_bytes_item(proto_tree*, tvbuff_t*, packet_info* , int, h248_curr_info_t*,void* ignored);
+extern void h248_param_uint_item(proto_tree*, tvbuff_t*, packet_info* , int, h248_curr_info_t*,void* ignored);
+WS_DLL_PUBLIC void h248_param_ber_integer(proto_tree*, tvbuff_t*, packet_info* , int, h248_curr_info_t*,void* ignored);
+extern void h248_param_ber_octetstring(proto_tree*, tvbuff_t*, packet_info* , int, h248_curr_info_t*,void* ignored);
+extern void h248_param_ber_boolean(proto_tree*, tvbuff_t*, packet_info* , int, h248_curr_info_t*,void* ignored);
+extern void external_dissector(proto_tree*, tvbuff_t*, packet_info* , int, h248_curr_info_t*,void* dissector_handle);
+extern void h248_param_PkgdName(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo , int hfid _U_, h248_curr_info_t* u _U_, void* dissector_hdl);
+extern void h248_param_external_dissector(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo , int hfid _U_, h248_curr_info_t* u _U_, void* dissector_hdl);
+
+typedef enum {
+ ADD_PKG, /* add package at registration ONLY if no matching package ID */
+ REPLACE_PKG, /* replace/add package at registration */
+ MERGE_PKG_HIGH, /* merge h248_package_t at registration favor new package */
+ MERGE_PKG_LOW /* merge h248_package_t at registration favor current package */
+} pkg_reg_action;
+
+typedef struct _h248_pkg_param_t {
+ guint32 id;
+ int* hfid;
+ h248_pkg_param_dissector_t dissector;
+ void* data;
+} h248_pkg_param_t;
+
+typedef struct _h248_pkg_sig_t {
+ guint32 id;
+ int* hfid;
+ gint* ett;
+ const h248_pkg_param_t* parameters;
+ const value_string* param_names;
+} h248_pkg_sig_t;
+
+typedef struct _h248_pkg_evt_t {
+ guint32 id;
+ int* hfid;
+ gint* ett;
+ const h248_pkg_param_t* parameters;
+ const value_string* param_names;
+} h248_pkg_evt_t;
+
+typedef struct _h248_pkg_stat_t {
+ guint32 id;
+ int* hfid;
+ gint* ett;
+ const h248_pkg_param_t* parameters;
+ const value_string* param_names;
+} h248_pkg_stat_t;
+
+typedef struct _h248_package_t {
+ guint32 id; /**< Package ID */
+ int* hfid; /**< hfid that will display the package name */
+ gint* ett; /**< The ett for this item */
+ const value_string* param_names; /**< The parameter names, Value 00000 should be the package name */
+ const value_string* signal_names;
+ const value_string* event_names;
+ const value_string* stats_names;
+ const h248_pkg_param_t* properties;
+ const h248_pkg_sig_t* signals;
+ const h248_pkg_evt_t* events;
+ const h248_pkg_stat_t* statistics;
+} h248_package_t;
+
+typedef struct _save_h248_package_t {
+ h248_package_t *pkg;
+ gboolean is_default;
+} s_h248_package_t;
+
+struct _h248_curr_info_t {
+ gcp_ctx_t* ctx;
+ gcp_trx_t* trx;
+ gcp_msg_t* msg;
+ gcp_term_t* term;
+ gcp_cmd_t* cmd;
+ const h248_package_t* pkg;
+ const h248_pkg_evt_t* evt;
+ const h248_pkg_sig_t* sig;
+ const h248_pkg_stat_t* stat;
+ const h248_pkg_param_t* par;
+};
+
+typedef struct h248_term_info {
+ guint8 wild_card;
+ gchar *str;
+} h248_term_info_t;
+
+WS_DLL_PUBLIC
+void h248_register_package(h248_package_t* pkg, pkg_reg_action reg_action);
+
+#endif /* PACKET_H248_H */
diff --git a/epan/dissectors/asn1/h282/CMakeLists.txt b/epan/dissectors/asn1/h282/CMakeLists.txt
new file mode 100644
index 0000000000..3d5397a700
--- /dev/null
+++ b/epan/dissectors/asn1/h282/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h282 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ RDC-PROTOCOL.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h282/Makefile.am b/epan/dissectors/asn1/h282/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h282/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h282/Makefile.common b/epan/dissectors/asn1/h282/Makefile.common
new file mode 100644
index 0000000000..07bf786b07
--- /dev/null
+++ b/epan/dissectors/asn1/h282/Makefile.common
@@ -0,0 +1,40 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = h282
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ RDC-PROTOCOL.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/h282/Makefile.nmake b/epan/dissectors/asn1/h282/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/h282/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/h282/RDC-PROTOCOL.asn b/epan/dissectors/asn1/h282/RDC-PROTOCOL.asn
new file mode 100644
index 0000000000..c6ec2d8bc1
--- /dev/null
+++ b/epan/dissectors/asn1/h282/RDC-PROTOCOL.asn
@@ -0,0 +1,981 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h282/1999/RDC-PROTOCOL.asn
+
+-- Module RDC-PROTOCOL (H.282:02/1998)
+RDC-PROTOCOL {itu-t(0) recommendation(0) h 282 version(0) 1} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+-- Export all symbols
+-- ==========================================================================
+-- Part 1: Message Components
+-- ==========================================================================
+H221NonStandardIdentifier ::= OCTET STRING(SIZE (4..255))
+
+-- First four octets shall be country code and
+-- Manufacturer code, assigned as specified in
+-- H.221 Annex A for NS-cap and NS-comm
+Key ::= CHOICE -- Identifier of a standard or non-standard object
+ {
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandardIdentifier
+}
+
+NonStandardParameter ::= SEQUENCE {key Key,
+ data OCTET STRING
+}
+
+Handle ::= INTEGER(0..4294967295)
+
+NonStandardIdentifier ::= CHOICE {
+ object OBJECT IDENTIFIER,
+ h221nonStandard H221NonStandardIdentifier
+}
+
+TextString ::=
+ BMPString
+ (SIZE (0..255)) -- Basic Multilingual Plane of ISO/IEC 10646-1 (Unicode)
+
+
+DeviceClass ::= CHOICE {
+ camera NULL,
+ microphone NULL,
+ streamPlayerRecorder NULL,
+ slideProjector NULL,
+ lightSource NULL,
+ sourceCombiner NULL,
+ nonStandardDevice NonStandardIdentifier
+}
+
+DeviceID ::= INTEGER(0..127)
+
+StreamID ::= INTEGER(0..65535)
+
+DeviceProfile ::= SEQUENCE {
+ deviceID DeviceID,
+ audioSourceFlag BOOLEAN,
+ audioSinkFlag BOOLEAN,
+ videoSourceFlag BOOLEAN,
+ videoSinkFlag BOOLEAN,
+ remoteControlFlag BOOLEAN,
+ instanceNumber INTEGER(0..255),
+ deviceName TextString OPTIONAL,
+ ...
+}
+
+StreamProfile ::= SEQUENCE {
+ streamID StreamID,
+ videoStreamFlag BOOLEAN,
+ sourceChangeFlag BOOLEAN,
+ streamName TextString OPTIONAL,
+ ...
+}
+
+CapabilityID ::= CHOICE {
+ standard INTEGER(0..65535), -- Assigned by this specification
+ nonStandard Key
+}
+
+NonCollapsingCapabilities ::=
+ SET OF
+ SEQUENCE {capabilityID CapabilityID,
+ applicationData
+ CHOICE {deviceList SET SIZE (0..127) OF DeviceProfile,
+ streamList SET SIZE (0..127) OF StreamProfile
+ }}
+
+--
+-- Attribute parameter types
+--
+Day ::= INTEGER(1..31)
+
+Month ::= INTEGER(1..12)
+
+Year ::= INTEGER(1980..2999)
+
+Hour ::= INTEGER(0..23)
+
+Minute ::= INTEGER(0..59)
+
+DeviceText ::= OCTET STRING(SIZE (0..32))
+
+PanPosition ::= INTEGER(-18000..18000) -- 100ths of a degree
+
+
+TiltPosition ::= INTEGER(-18000..18000) -- 100ths of a degree
+
+
+ZoomPosition ::= INTEGER(-1023..1023)
+
+IrisPosition ::= INTEGER(-127..127)
+
+FocusPosition ::= INTEGER(-127..127)
+
+CameraPanSpeed ::= INTEGER(1..18000) -- 100ths of a degree/sec
+
+
+CameraTiltSpeed ::= INTEGER(1..18000) -- 100ths of a degree/sec
+
+
+BackLight ::= INTEGER(0..255)
+
+WhiteBalance ::= INTEGER(0..255)
+
+PresetNumber ::= INTEGER(1..255)
+
+StreamPlayerState ::= CHOICE {
+ playing NULL,
+ recording NULL,
+ pausedOnRecord NULL,
+ pausedOnPlay NULL,
+ rewinding NULL,
+ fastForwarding NULL,
+ searchingForwards NULL,
+ searchingBackwards NULL,
+ stopped NULL,
+ programUnavailable NULL
+}
+
+DevicePresetCapability ::= SEQUENCE {
+ maxNumber PresetNumber,
+ presetCapability
+ SET SIZE (0..255) OF
+ SEQUENCE {presetNumber PresetNumber,
+ storeModeSupported BOOLEAN,
+ presetTextLabel DeviceText} OPTIONAL
+}
+
+CameraFilterCapability ::= SEQUENCE {
+ maxNumberOfFilters INTEGER(2..255),
+ filterTextLabel
+ SET SIZE (0..255) OF
+ SEQUENCE {filterNumber INTEGER(1..255),
+ filterTextLabel DeviceText} OPTIONAL
+}
+
+CameraLensCapability ::= SEQUENCE {
+ maxNumberOfLens INTEGER(2..255),
+ accessoryTextLabel
+ SET SIZE (0..255) OF
+ SEQUENCE {lensNumber INTEGER(1..255),
+ lensTextLabel DeviceText} OPTIONAL
+}
+
+ExternalCameraLightCapability ::= SEQUENCE {
+ maxNumber INTEGER(1..10),
+ lightTextLabel
+ SET SIZE (0..10) OF
+ SEQUENCE {lightNumber INTEGER(1..10),
+ lightLabel DeviceText} OPTIONAL
+}
+
+CameraPanSpeedCapability ::= SEQUENCE {
+ maxSpeed CameraPanSpeed,
+ minSpeed CameraPanSpeed,
+ speedStepSize CameraPanSpeed
+}
+
+CameraTiltSpeedCapability ::= SEQUENCE {
+ maxSpeed CameraTiltSpeed,
+ minSpeed CameraTiltSpeed,
+ speedStepSize CameraTiltSpeed
+}
+
+MaxBacklight ::= INTEGER(1..255)
+
+MaxWhiteBalance ::= INTEGER(1..255)
+
+MinZoomPositionSetSize ::= INTEGER(1..1023)
+
+MinFocusPositionStepSize ::= INTEGER(1..127)
+
+MinIrisPositionStepSize ::= INTEGER(1..127)
+
+PanPositionCapability ::= SEQUENCE {
+ maxLeft INTEGER(-18000..0), -- Max pan left
+ maxRight INTEGER(0..18000), -- Max pan right
+ minStepSize INTEGER(1..18000)
+}
+
+TiltPositionCapability ::= SEQUENCE {
+ maxDown INTEGER(-18000..0), -- Max tilt down
+ maxUp INTEGER(0..18000), -- Max tilt up
+ minStepSize INTEGER(1..18000)
+}
+
+MinZoomMagnificationStepSize ::= INTEGER(1..1000)
+
+MaxNumberOfSlides ::= INTEGER(1..1024)
+
+MaxSlideDisplayTime ::= INTEGER(1..255) -- Max time in seconds
+
+
+MaxNumberOfPrograms ::= INTEGER(1..1023)
+
+PlayBackSpeedCapability ::= SEQUENCE {
+ multiplierFactors SET SIZE (1..64) OF INTEGER(10..1000),
+ divisorFactors SET SIZE (1..64) OF INTEGER(10..1000)
+}
+
+VideoInputsCapability ::= SEQUENCE {
+ numberOfDeviceInputs INTEGER(2..64),
+ numberOfDeviceRows INTEGER(1..64),
+ -- The Optional Device list is only included if the inputs are configurable
+ availableDevices
+ SET SIZE (2..64) OF
+ SEQUENCE {deviceClass DeviceClass,
+ deviceIdentifier DeviceID} OPTIONAL
+}
+
+AudioInputsCapability ::= SEQUENCE {
+ numberOfDeviceInputs INTEGER(2..64),
+ -- The Optional Device list is only included if the inputs are configurable
+ availableDevices
+ SET SIZE (2..64) OF
+ SEQUENCE {deviceClass DeviceClass,
+ deviceIdentifier DeviceID} OPTIONAL
+}
+
+DeviceAttribute ::= CHOICE {
+ deviceStateSupported NULL,
+ deviceDateSupported NULL,
+ deviceTimeSupported NULL,
+ devicePresetSupported DevicePresetCapability,
+ irisModeSupported NULL,
+ focusModeSupported NULL,
+ pointingModeSupported NULL,
+ cameraLensSupported CameraLensCapability,
+ cameraFilterSupported CameraFilterCapability,
+ homePositionSupported NULL,
+ externalCameraLightSupported ExternalCameraLightCapability,
+ clearCameraLensSupported NULL,
+ cameraPanSpeedSupported CameraPanSpeedCapability,
+ cameraTiltSpeedSupported CameraTiltSpeedCapability,
+ backLightModeSupported NULL,
+ backLightSettingSupported MaxBacklight,
+ whiteBalanceSettingSupported MaxWhiteBalance,
+ whiteBalanceModeSupported NULL,
+ calibrateWhiteBalanceSupported NULL,
+ focusImageSupported NULL,
+ captureImageSupported NULL,
+ panContinuousSupported NULL,
+ tiltContinuousSupported NULL,
+ zoomContinuousSupported NULL,
+ focusContinuousSupported NULL,
+ irisContinuousSupported NULL,
+ zoomPositionSupported MinZoomPositionSetSize,
+ focusPositionSupported MinFocusPositionStepSize,
+ irisPositionSupported MinIrisPositionStepSize,
+ panPositionSupported PanPositionCapability,
+ tiltPositionSupported TiltPositionCapability,
+ zoomMagnificationSupported MinZoomMagnificationStepSize,
+ panViewSupported NULL,
+ tiltViewSupported NULL,
+ selectSlideSupported MaxNumberOfSlides,
+ selectNextSlideSupported NULL,
+ slideShowModeSupported NULL,
+ playSlideShowSupported NULL,
+ setSlideDisplayTimeSupported MaxSlideDisplayTime,
+ continuousRewindSupported NULL,
+ continuousFastForwardSupported NULL,
+ searchBackwardsSupported NULL,
+ searchForwardsSupported NULL,
+ pauseSupported NULL,
+ selectProgramSupported MaxNumberOfPrograms,
+ nextProgramSupported NULL,
+ gotoNormalPlayTimePointSupported NULL,
+ readStreamPlayerStateSupported NULL,
+ readProgramDurationSupported NULL,
+ continuousPlayBackModeSupported NULL,
+ playbackSpeedSupported PlayBackSpeedCapability,
+ playSupported NULL,
+ setAudioOutputStateSupported NULL,
+ playToNormalPlayTimePointSupported NULL,
+ recordSupported NULL,
+ recordForDurationSupported NULL,
+ configurableVideoInputsSupported VideoInputsCapability,
+ videoInputsSupported VideoInputsCapability,
+ configurableAudioInputsSupported AudioInputsCapability,
+ audioInputsSupported AudioInputsCapability,
+ -- Attributes for Device Events
+ deviceLockStateChangedSupported NULL,
+ deviceAvailabilityChangedSupported NULL,
+ cameraPannedToLimitSupported NULL,
+ cameraTiltedToLimitSupported NULL,
+ cameraZoomedToLimitSupported NULL,
+ cameraFocusedToLimitSupported NULL,
+ autoSlideShowFinishedSupported NULL,
+ streamPlayerStateChangeSupported NULL,
+ streamPlayerProgramChangeSupported NULL,
+ nonStandardAttributeSupported NonStandardParameter,
+ ...
+}
+
+DeviceState ::= CHOICE {active NULL,
+ inactive NULL
+}
+
+DeviceDate ::= SEQUENCE {day Day,
+ month Month,
+ year Year
+}
+
+DeviceTime ::= SEQUENCE {hour Hour,
+ minute Minute
+}
+
+DevicePreset ::= SEQUENCE {
+ presetNumber PresetNumber,
+ mode CHOICE {store NULL,
+ activate NULL}
+}
+
+Mode ::= CHOICE {manual NULL,
+ auto NULL
+}
+
+PointingToggle ::= CHOICE {manual NULL,
+ auto NULL,
+ toggle NULL
+}
+
+SelectExternalLight ::= CHOICE {lightNumber INTEGER(1..10),
+ none NULL
+}
+
+PanContinuous ::= SEQUENCE {
+ panDirection
+ CHOICE {left NULL,
+ right NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+TiltContinuous ::= SEQUENCE {
+ tiltDirection
+ CHOICE {up NULL,
+ down NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+ZoomContinuous ::= SEQUENCE {
+ zoomDirection
+ CHOICE {telescopic NULL,
+ wide NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+FocusContinuous ::= SEQUENCE {
+ focusDirection
+ CHOICE {near NULL,
+ far NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+IrisContinuous ::= SEQUENCE {
+ irisDirection
+ CHOICE {darker NULL,
+ lighter NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+PositioningMode ::= CHOICE {relative NULL,
+ absolute NULL
+}
+
+CameraLensNumber ::= INTEGER(1..255)
+
+CameraFilterNumber ::= INTEGER(1..255)
+
+SetZoomPosition ::= SEQUENCE {
+ zoomPosition ZoomPosition,
+ positioningMode PositioningMode
+}
+
+SetFocusPosition ::= SEQUENCE {
+ focusPosition FocusPosition,
+ positioningMode PositioningMode
+}
+
+SetIrisPosition ::= SEQUENCE {
+ irisPosition IrisPosition,
+ positioningMode PositioningMode
+}
+
+SetPanPosition ::= SEQUENCE {
+ panPosition PanPosition,
+ positioningMode PositioningMode
+}
+
+SetTiltPosition ::= SEQUENCE {
+ tiltPosition TiltPosition,
+ positioningMode PositioningMode
+}
+
+ZoomMagnification ::= INTEGER(10..1000)
+
+PanView ::= INTEGER(-1000..1000)
+
+TiltView ::= INTEGER(-1000..1000)
+
+SlideNumber ::= INTEGER(0..1023)
+
+SelectDirection ::= CHOICE {next NULL,
+ previous NULL
+}
+
+AutoSlideShowControl ::= CHOICE {start NULL,
+ stop NULL,
+ pause NULL
+}
+
+AutoSlideDisplayTime ::=
+ INTEGER(1..255) -- Automatic slide display time in seconds
+
+
+ProgramNumber ::= INTEGER(1..1023)
+
+ProgramDuration ::= SEQUENCE {
+ hours INTEGER(0..24),
+ minutes INTEGER(0..59),
+ seconds INTEGER(0..59),
+ microseconds INTEGER(0..99999)
+}
+
+PlaybackSpeed ::= SEQUENCE {
+ scaleFactor INTEGER(10..1000),
+ multiplyFactor BOOLEAN -- TRUE to multiply, FALSE to divide
+}
+
+RecordForDuration ::= SEQUENCE {
+ hours INTEGER(0..24),
+ minutes INTEGER(0..59),
+ seconds INTEGER(0..59)
+}
+
+DeviceInputs ::= SEQUENCE {
+ -- When used with the configurableVideoInputs type this device list must only contain
+ -- devices that source a video stream.
+ -- When used with the configurableAudioInputs type this device list must only contain
+ -- devices that source an audio stream.
+ inputDevices
+ SET SIZE (2..64) OF
+ SEQUENCE {deviceClass DeviceClass,
+ deviceIdentifier DeviceID}
+}
+
+ControlAttribute ::= CHOICE {
+ setDeviceState DeviceState,
+ setDeviceDate DeviceDate,
+ setDeviceTime DeviceTime,
+ setDevicePreset DevicePreset,
+ setIrisMode Mode,
+ setFocusMode Mode,
+ setBackLightMode Mode,
+ setPointingMode PointingToggle,
+ selectCameraLens CameraLensNumber,
+ selectCameraFilter CameraFilterNumber,
+ gotoHomePosition NULL,
+ selectExternalLight SelectExternalLight,
+ clearCameraLens NULL,
+ setCameraPanSpeed CameraPanSpeed,
+ setCameraTiltSpeed CameraTiltSpeed,
+ setBackLight BackLight,
+ setWhiteBalance WhiteBalance,
+ setWhiteBalanceMode Mode,
+ calibrateWhiteBalance NULL,
+ focusImage NULL,
+ captureImage NULL,
+ panContinuous PanContinuous,
+ tiltContinuous TiltContinuous,
+ zoomContinuous ZoomContinuous,
+ focusContinuous FocusContinuous,
+ setZoomPosition SetZoomPosition,
+ setFocusPosition SetFocusPosition,
+ setIrisPosition SetIrisPosition,
+ setPanPosition SetPanPosition,
+ setTiltPosition SetTiltPosition,
+ setZoomMagnification ZoomMagnification,
+ setPanView PanView,
+ setTiltView TiltView,
+ selectSlide SlideNumber,
+ selectNextSlide SelectDirection,
+ playAutoSlideShow AutoSlideShowControl,
+ setAutoSlideDisplayTime AutoSlideDisplayTime,
+ continuousRewindControl BOOLEAN, -- TRUE to start, FALSE to Stop
+ continuousFastForwardControl BOOLEAN, -- TRUE to start, FALSE to Stop
+ searchBackwardsControl BOOLEAN, -- TRUE to start, FALSE to Stop
+ searchForwardsControl BOOLEAN, -- TRUE to start, FALSE to Stop
+ pause BOOLEAN, -- TRUE to pause, FALSE to release
+ selectProgram ProgramNumber,
+ nextProgramSelect SelectDirection,
+ gotoNormalPlayTimePoint ProgramDuration,
+ continuousPlayBackMode BOOLEAN, -- TRUE to set continuous mode
+ setPlaybackSpeed PlaybackSpeed,
+ play BOOLEAN, -- TRUE to pause, FALSE to release
+ setAudioOutputMute BOOLEAN, -- TRUE to mute, FALSE to unmute
+ playToNormalPlayTimePoint ProgramDuration,
+ record BOOLEAN, -- TRUE to start, FALSE to Stop
+ recordForDuration RecordForDuration,
+ configureVideoInputs DeviceInputs, -- Device list contains Video devices
+ configureAudioInputs DeviceInputs, -- Device list contains Audio Devices
+ nonStandardControl NonStandardParameter,
+ ...
+}
+
+StatusAttributeIdentifier ::= CHOICE {
+ getDeviceState NULL,
+ getDeviceDate NULL,
+ getDeviceTime NULL,
+ getdevicePreset NULL,
+ getIrisMode NULL,
+ getFocusMode NULL,
+ getBacklightMode NULL,
+ getPointingMode NULL,
+ getCameraLens NULL,
+ getCameraFilter NULL,
+ getExternalLight NULL,
+ getCameraPanSpeed NULL,
+ getCameraTiltSpeed NULL,
+ getBackLightMode NULL,
+ getBackLight NULL,
+ getWhiteBalance NULL,
+ getWhiteBalanceMode NULL,
+ getZoomPosition NULL,
+ getFocusPosition NULL,
+ getIrisPosition NULL,
+ getPanPosition NULL,
+ getTiltPosition NULL,
+ getSelectedSlide NULL,
+ getAutoSlideDisplayTime NULL,
+ getSelectedProgram NULL,
+ getStreamPlayerState NULL,
+ getCurrentProgramDuration NULL,
+ getPlaybackSpeed NULL,
+ getAudioOutputState NULL,
+ getConfigurableVideoInputs NULL,
+ getVideoInputs NULL,
+ getConfigurableAudioInputs NULL,
+ getAudioInputs NULL,
+ getNonStandardStatus NonStandardIdentifier,
+ ...
+}
+
+CurrentDeviceState ::= CHOICE {deviceState DeviceState,
+ unknown NULL
+}
+
+CurrentDeviceDate ::= SEQUENCE {
+ currentDay CHOICE {day Day,
+ unknown NULL},
+ currentMonth CHOICE {month Month,
+ unknown NULL},
+ currentYear CHOICE {year Year,
+ unknown NULL}
+}
+
+CurrentDeviceTime ::= SEQUENCE {
+ currentHour CHOICE {hour Hour,
+ unknown NULL},
+ currentMinute CHOICE {minute Minute,
+ unknown NULL}
+}
+
+CurrentDevicePreset ::= CHOICE {preset PresetNumber,
+ unknown NULL
+}
+
+CurrentMode ::= CHOICE {mode Mode,
+ unknown NULL
+}
+
+CurrentPointingMode ::= CHOICE {
+ automatic NULL,
+ manual NULL,
+ unknown NULL
+}
+
+CurrentCameraLensNumber ::= CHOICE {
+ lensNumber CameraLensNumber,
+ unknown NULL
+}
+
+CurrentCameraFilterNumber ::= CHOICE {
+ lensNumber CameraFilterNumber,
+ unknown NULL
+}
+
+CurrentExternalLight ::= CHOICE {
+ lightNumber INTEGER(1..10),
+ none NULL,
+ unknown NULL
+}
+
+CurrentCameraPanSpeed ::= CHOICE {speed CameraPanSpeed,
+ unknown NULL
+}
+
+CurrentCameraTiltSpeed ::= CHOICE {speed CameraTiltSpeed,
+ unknown NULL
+}
+
+CurrentBackLight ::= CHOICE {backLight BackLight,
+ unknown NULL
+}
+
+CurrentWhiteBalance ::= CHOICE {whiteBalance WhiteBalance,
+ unknown NULL
+}
+
+CurrentZoomPosition ::= CHOICE {zoomPosition ZoomPosition,
+ unknown NULL
+}
+
+CurrentFocusPosition ::= CHOICE {
+ focusPosition FocusPosition,
+ unknown NULL
+}
+
+CurrentIrisPosition ::= CHOICE {irisPosition IrisPosition,
+ unknown NULL
+}
+
+CurrentPanPosition ::= CHOICE {panPosition PanPosition,
+ unknown NULL
+}
+
+CurrentTiltPosition ::= CHOICE {tiltPosition TiltPosition,
+ unknown NULL
+}
+
+CurrentSlide ::= CHOICE {slide SlideNumber,
+ unknown NULL
+}
+
+CurrentAutoSlideDisplayTime ::= CHOICE {
+ time AutoSlideDisplayTime,
+ unknown NULL
+}
+
+CurrentSelectedProgram ::= CHOICE {program ProgramNumber,
+ unknown NULL
+}
+
+CurrentStreamPlayerState ::= CHOICE {state StreamPlayerState,
+ unknown NULL
+}
+
+CurrentPlaybackSpeed ::= CHOICE {speed PlaybackSpeed,
+ unknown NULL
+}
+
+CurrentAudioOutputMute ::= CHOICE {
+ mute BOOLEAN, -- TRUE if muted
+ unknown NULL
+}
+
+StatusAttribute ::= CHOICE {
+ currentdeviceState CurrentDeviceState,
+ currentDeviceDate CurrentDeviceDate,
+ currentDeviceTime CurrentDeviceTime,
+ currentDevicePreset CurrentDevicePreset,
+ currentIrisMode CurrentMode,
+ currentFocusMode CurrentMode,
+ currentBackLightMode CurrentMode,
+ currentPointingMode CurrentPointingMode,
+ currentCameraLens CurrentCameraLensNumber,
+ currentCameraFilter CurrentCameraFilterNumber,
+ currentExternalLight CurrentExternalLight,
+ currentCameraPanSpeed CurrentCameraPanSpeed,
+ currentCameraTiltSpeed CurrentCameraTiltSpeed,
+ currentBackLight CurrentBackLight,
+ currentWhiteBalance CurrentWhiteBalance,
+ currentWhiteBalanceMode CurrentMode,
+ currentZoomPosition CurrentZoomPosition,
+ currentFocusPosition CurrentFocusPosition,
+ currentIrisPosition CurrentIrisPosition,
+ currentPanPosition CurrentPanPosition,
+ currentTiltPosition CurrentTiltPosition,
+ currentSlide CurrentSlide,
+ currentAutoSlideDisplayTime CurrentAutoSlideDisplayTime,
+ currentSelectedProgram CurrentSelectedProgram,
+ currentstreamPlayerState CurrentStreamPlayerState,
+ currentProgramDuration ProgramDuration,
+ currentPlaybackSpeed CurrentPlaybackSpeed,
+ currentAudioOutputMute CurrentAudioOutputMute,
+ configurableVideoInputs DeviceInputs,
+ videoInputs DeviceInputs,
+ configurableAudioInputs DeviceInputs,
+ audioInputs DeviceInputs,
+ nonStandardStatus NonStandardParameter,
+ ...
+}
+
+DeviceEventIdentifier ::= CHOICE {
+ requestDeviceLockChanged NULL,
+ requestDeviceAvailabilityChanged NULL,
+ requestCameraPannedToLimit NULL,
+ requestCameraTiltedToLimit NULL,
+ requestCameraZoomedToLimit NULL,
+ requestCameraFocusedToLimit NULL,
+ requestAutoSlideShowFinished NULL,
+ requestStreamPlayerStateChange NULL,
+ requestStreamPlayerProgramChange NULL,
+ requestNonStandardEvent NonStandardIdentifier,
+ ...
+}
+
+CameraPannedToLimit ::= CHOICE {left NULL,
+ right NULL
+}
+
+CameraTiltedToLimit ::= CHOICE {up NULL,
+ down NULL
+}
+
+CameraZoomedToLimit ::= CHOICE {telescopic NULL,
+ wide NULL
+}
+
+CameraFocusedToLimit ::= CHOICE {near NULL,
+ far NULL
+}
+
+DeviceEvent ::= CHOICE {
+ deviceLockChanged BOOLEAN, -- TRUE if now locked FALSE if now unlocked
+ deviceAvailabilityChanged BOOLEAN, -- TRUE if available FALSE if now unavailable
+ cameraPannedToLimit CameraPannedToLimit,
+ cameraTiltedToLimit CameraTiltedToLimit,
+ cameraZoomedToLimit CameraZoomedToLimit,
+ cameraFocusedToLimit CameraFocusedToLimit,
+ autoSlideShowFinished NULL,
+ streamPlayerStateChange StreamPlayerState,
+ streamPlayerProgramChange ProgramNumber,
+ nonStandardEvent NonStandardParameter,
+ ...
+}
+
+-- ==========================================================================
+-- Part 2: PDU Messages
+-- ==========================================================================
+SourceSelectRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ streamIdentifier StreamID,
+ ...
+}
+
+SourceSelectResponse ::= SEQUENCE {
+ requestHandle Handle,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ deviceUnavailable NULL,
+ invalidStreamID NULL,
+ currentDeviceIsLocked NULL,
+ deviceIncompatible NULL,
+ ...},
+ ...
+}
+
+SourceEventsRequest ::= SEQUENCE {
+ requestHandle Handle,
+ streamIdentifier StreamID,
+ sourceEventNotify BOOLEAN, -- TRUE to request source events
+ ...
+}
+
+SourceEventsResponse ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ result
+ CHOICE {successful NULL,
+ eventsNotSupported NULL,
+ invalidStreamID NULL,
+ ...},
+ ...
+}
+
+SourceChangeEventIndication ::= SEQUENCE {
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ ...
+}
+
+DeviceAttributeRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ ...
+}
+
+DeviceAttributeResponse ::= SEQUENCE {
+ requestHandle Handle,
+ deviceAttributeList SET OF DeviceAttribute OPTIONAL,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ unknownDevice NULL,
+ ...},
+ ...
+}
+
+DeviceLockRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ lockFlag BOOLEAN, -- TRUE to lock
+ ...
+}
+
+DeviceLockResponse ::= SEQUENCE {
+ requestHandle Handle,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ unknownDevice NULL,
+ lockingNotSupported NULL,
+ deviceAlreadyLocked NULL,
+ ...},
+ ...
+}
+
+DeviceLockEnquireRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ ...
+}
+
+DeviceLockEnquireResponse ::= SEQUENCE {
+ requestHandle Handle,
+ result
+ CHOICE {lockRequired NULL,
+ lockNotRequired NULL,
+ unknownDevice NULL,
+ ...},
+ ...
+}
+
+DeviceLockTerminatedIndication ::= SEQUENCE {
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ ...
+}
+
+DeviceControlRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ controlAttributeList SET SIZE (1..8) OF ControlAttribute,
+ ...
+}
+
+DeviceStatusEnquireRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ statusAttributeIdentifierList SET SIZE (1..16) OF StatusAttributeIdentifier,
+ ...
+}
+
+DeviceStatusEnquireResponse ::= SEQUENCE {
+ requestHandle Handle,
+ statusAttributeList SET SIZE (1..16) OF StatusAttribute OPTIONAL,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ unknownDevice NULL,
+ deviceUnavailable NULL,
+ deviceAttributeError NULL,
+ ...},
+ ...
+}
+
+ConfigureDeviceEventsRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ deviceEventIdentifierList SET OF DeviceEventIdentifier,
+ ...
+}
+
+ConfigureDeviceEventsResponse ::= SEQUENCE {
+ requestHandle Handle,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ unknownDevice NULL,
+ deviceUnavailable NULL,
+ deviceAttributeError NULL,
+ ...},
+ ...
+}
+
+DeviceEventNotifyIndication ::= SEQUENCE {
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ deviceEventList SET SIZE (1..8) OF DeviceEvent,
+ ...
+}
+
+NonStandardPDU ::= SEQUENCE {nonStandardData NonStandardParameter,
+ ...
+}
+
+-- ==========================================================================
+-- Part 3: Messages sent using lower layer protocol
+-- ==========================================================================
+RDCPDU ::= CHOICE {
+ request RequestPDU,
+ response ResponsePDU,
+ indication IndicationPDU
+}
+
+RequestPDU ::= CHOICE {
+ sourceSelectRequest SourceSelectRequest,
+ sourceEventsRequest SourceEventsRequest,
+ deviceAttributeRequest DeviceAttributeRequest,
+ deviceLockRequest DeviceLockRequest,
+ deviceLockEnquireRequest DeviceLockEnquireRequest,
+ deviceControlRequest DeviceControlRequest,
+ deviceStatusEnquireRequest DeviceStatusEnquireRequest,
+ configureDeviceEventsRequest ConfigureDeviceEventsRequest,
+ nonStandardRequest NonStandardPDU,
+ ...
+}
+
+ResponsePDU ::= CHOICE {
+ sourceSelectResponse SourceSelectResponse,
+ sourceEventsResponse SourceEventsResponse,
+ deviceAttributeResponse DeviceAttributeResponse,
+ deviceLockResponse DeviceLockResponse,
+ deviceLockEnquireResponse DeviceLockEnquireResponse,
+ deviceStatusEnquireResponse DeviceStatusEnquireResponse,
+ configureDeviceEventsResponse ConfigureDeviceEventsResponse,
+ nonStandardResponse NonStandardPDU,
+ ...
+}
+
+IndicationPDU ::= CHOICE {
+ sourceChangeEventIndication SourceChangeEventIndication,
+ deviceLockTerminatedIndication DeviceLockTerminatedIndication,
+ deviceEventNotifyIndication DeviceEventNotifyIndication,
+ nonStandardIndication NonStandardPDU,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h282/h282.cnf b/epan/dissectors/asn1/h282/h282.cnf
new file mode 100644
index 0000000000..7697c4a8c4
--- /dev/null
+++ b/epan/dissectors/asn1/h282/h282.cnf
@@ -0,0 +1,50 @@
+# h282.cnf
+# H.282 conformation file
+# 2007 Tomas Kukosa
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.OMIT_ASSIGNMENT
+IrisContinuous
+#.END
+
+#.PDU
+RDCPDU
+NonCollapsingCapabilities
+#.END
+
+#.FN_PARS RequestPDU
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h282_RequestPDU_vals));
+ if (p)
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RequestPDU/%s", p);
+#.END
+
+#.FN_PARS ResponsePDU
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h282_ResponsePDU_vals));
+ if (p)
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "ResponsePDU/%s", p);
+#.END
+
+#.FN_PARS IndicationPDU
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h282_IndicationPDU_vals));
+ if (p)
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "IndicationPDU/%s", p);
+#.END
diff --git a/epan/dissectors/asn1/h282/packet-h282-template.c b/epan/dissectors/asn1/h282/packet-h282-template.c
new file mode 100644
index 0000000000..3cf52afa43
--- /dev/null
+++ b/epan/dissectors/asn1/h282/packet-h282-template.c
@@ -0,0 +1,98 @@
+/* packet-h282.c
+ * Routines for H.282 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+
+#define PNAME "H.282 Remote Device Control"
+#define PSNAME "RDC"
+#define PFNAME "rdc"
+
+void proto_register_h282(void);
+void proto_reg_handoff_h282(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_h282 = -1;
+#include "packet-h282-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_h282 = -1;
+#include "packet-h282-ett.c"
+
+/* Dissectors */
+
+/* Subdissectors */
+
+#include "packet-h282-fn.c"
+
+static int
+dissect_h282(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ proto_item *ti = NULL;
+ proto_tree *h282_tree = NULL;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
+
+ ti = proto_tree_add_item(tree, proto_h282, tvb, 0, -1, ENC_NA);
+ h282_tree = proto_item_add_subtree(ti, ett_h282);
+
+ return dissect_RDCPDU_PDU(tvb, pinfo, h282_tree, NULL);
+}
+
+/*--- proto_register_h282 ----------------------------------------------*/
+void proto_register_h282(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h282-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_h282,
+#include "packet-h282-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h282 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h282, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_dissector(PFNAME, dissect_h282, proto_h282);
+ register_dissector(PFNAME".device_list", dissect_NonCollapsingCapabilities_PDU, proto_h282);
+
+}
+
+/*--- proto_reg_handoff_h282 -------------------------------------------*/
+void proto_reg_handoff_h282(void)
+{
+
+}
+
diff --git a/epan/dissectors/asn1/h283/CMakeLists.txt b/epan/dissectors/asn1/h283/CMakeLists.txt
new file mode 100644
index 0000000000..5aad101eba
--- /dev/null
+++ b/epan/dissectors/asn1/h283/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h283 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ LCT-PROTOCOL.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h283/LCT-PROTOCOL.asn b/epan/dissectors/asn1/h283/LCT-PROTOCOL.asn
new file mode 100644
index 0000000000..b4c53edf31
--- /dev/null
+++ b/epan/dissectors/asn1/h283/LCT-PROTOCOL.asn
@@ -0,0 +1,79 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h283/1999/LCT-PROTOCOL.asn
+
+-- Module LCT-PROTOCOL (H.283:05/1999)
+LCT-PROTOCOL {itu-t recommendation h 283 version(0) 1} DEFINITIONS AUTOMATIC
+TAGS ::=
+BEGIN
+
+H221NonStandard ::= SEQUENCE {
+ t35CountryCode INTEGER(0..255), -- country, as per Recommendation T.35
+ t35Extension INTEGER(0..255), -- assigned nationally
+ manufacturerCode INTEGER(0..65535)
+} -- assigned nationally
+
+NonStandardIdentifier ::= CHOICE {
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ ...
+}
+
+NonStandardParameter ::= SEQUENCE {
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+LCTPDU ::= SEQUENCE {
+ srcAddr MTAddress,
+ dstAddr MTAddress,
+ timestamp INTEGER(0..4294967295), -- milliseconds
+ seqNumber INTEGER(0..65535),
+ pduType CHOICE {ack NULL,
+ rdcData RDCData},
+ nonStandardParameters SEQUENCE OF NonStandardParameter OPTIONAL,
+ ...
+}
+
+MTAddress ::= SEQUENCE {
+ mAddress INTEGER(0..65535),
+ tAddress INTEGER(0..65535)
+}
+
+RDCData ::= SEQUENCE {
+ reliable BOOLEAN,
+ dataType CHOICE {lctMessage LCTMessage,
+ rdcPDU OCTET STRING}, -- Common RDC PDU
+ ...
+}
+
+LCTMessage ::= CHOICE {
+ lctRequest LCTRequest,
+ lctResponse LCTResponse,
+ lctIndication LCTIndication,
+ nonStandardMessage NonStandardMessage,
+ ...
+}
+
+LCTRequest ::= CHOICE {announceReq NULL,
+ deviceListReq NULL,
+ ...
+}
+
+LCTResponse ::= CHOICE {
+ announceResp NULL,
+ deviceListResp OCTET STRING, -- Common RDC
+ ...
+}
+
+LCTIndication ::= CHOICE {deviceChange NULL,
+ ...
+}
+
+NonStandardMessage ::= SEQUENCE {
+ nonStandardParameters SEQUENCE OF NonStandardParameter OPTIONAL,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h283/Makefile.am b/epan/dissectors/asn1/h283/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h283/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h283/Makefile.common b/epan/dissectors/asn1/h283/Makefile.common
new file mode 100644
index 0000000000..dce8a40778
--- /dev/null
+++ b/epan/dissectors/asn1/h283/Makefile.common
@@ -0,0 +1,40 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = h283
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ LCT-PROTOCOL.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/h283/Makefile.nmake b/epan/dissectors/asn1/h283/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/h283/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/h283/h283.cnf b/epan/dissectors/asn1/h283/h283.cnf
new file mode 100644
index 0000000000..0f7577ccc8
--- /dev/null
+++ b/epan/dissectors/asn1/h283/h283.cnf
@@ -0,0 +1,115 @@
+# h283.cnf
+# H.283 conformation file
+# 2007 Tomas Kukosa
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.PDU
+LCTPDU
+#.END
+
+#.FN_PARS LCTPDU/pduType
+ VAL_PTR = &pdu_type
+#.FN_HDR
+ gint32 pdu_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(pdu_type, VALS(h283_T_pduType_vals));
+ if (!info_is_set && p ) {
+ col_set_str(actx->pinfo->cinfo, COL_INFO, p);
+ info_is_set = TRUE;
+ }
+#.END
+
+#.FN_PARS RDCData/dataType
+ VAL_PTR = &data_type
+#.FN_HDR
+ gint32 data_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(data_type, VALS(h283_T_dataType_vals));
+ if (!info_is_set && p ) {
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RDCData/%s", p);
+ info_is_set = TRUE;
+ }
+#.END
+
+#.FN_PARS LCTMessage
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h283_LCTMessage_vals));
+ if (!info_is_set && p ) {
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "LCTMessage/%s", p);
+ info_is_set = TRUE;
+ }
+#.END
+
+#.FN_PARS LCTRequest
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h283_LCTRequest_vals));
+ if (!info_is_set && p ) {
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "LCTRequest/%s", p);
+ info_is_set = TRUE;
+ }
+#.END
+
+#.FN_PARS LCTResponse
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h283_LCTResponse_vals));
+ if (!info_is_set && p ) {
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "LCTResponse/%s", p);
+ info_is_set = TRUE;
+ }
+#.END
+
+#.FN_PARS LCTIndication
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h283_LCTIndication_vals));
+ if (!info_is_set && p ) {
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "LCTIndication/%s", p);
+ info_is_set = TRUE;
+ }
+#.END
+
+#.FN_BODY RDCData/dataType/rdcPDU VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ if (next_tvb && tvb_reported_length(next_tvb)) {
+ call_dissector((rdc_pdu_handle)?rdc_pdu_handle:data_handle, next_tvb, %(ACTX)s->pinfo, proto_tree_get_root(tree));
+ }
+ info_is_set = TRUE;
+#.END
+
+#.FN_BODY LCTResponse/deviceListResp VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ if (next_tvb && tvb_reported_length(next_tvb)) {
+ call_dissector((rdc_device_list_handle)?rdc_device_list_handle:data_handle, next_tvb, %(ACTX)s->pinfo, tree);
+ }
+#.END
+
+#.TYPE_ATTR
+RDCData/dataType/rdcPDU TYPE = FT_UINT32 DISPLAY = BASE_DEC
+LCTResponse/deviceListResp TYPE = FT_UINT32 DISPLAY = BASE_DEC
+#.END
+
diff --git a/epan/dissectors/asn1/h283/packet-h283-template.c b/epan/dissectors/asn1/h283/packet-h283-template.c
new file mode 100644
index 0000000000..02437ff443
--- /dev/null
+++ b/epan/dissectors/asn1/h283/packet-h283-template.c
@@ -0,0 +1,109 @@
+/* packet-h283.c
+ * Routines for H.283 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+
+#define PNAME "H.283 Logical Channel Transport"
+#define PSNAME "LCT"
+#define PFNAME "lct"
+
+void proto_register_h283(void);
+void proto_reg_handoff_h283(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_h283 = -1;
+#include "packet-h283-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_h283 = -1;
+#include "packet-h283-ett.c"
+
+/* Subdissectors */
+static dissector_handle_t rdc_pdu_handle;
+static dissector_handle_t rdc_device_list_handle;
+static dissector_handle_t data_handle;
+
+static gboolean info_is_set;
+
+#include "packet-h283-fn.c"
+
+static int
+dissect_h283_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ proto_item *ti = NULL;
+ proto_tree *h283_tree = NULL;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
+
+ info_is_set = FALSE;
+
+ ti = proto_tree_add_item(tree, proto_h283, tvb, 0, -1, ENC_NA);
+ h283_tree = proto_item_add_subtree(ti, ett_h283);
+
+ return dissect_LCTPDU_PDU(tvb, pinfo, h283_tree, NULL);
+}
+
+/*--- proto_register_h283 ----------------------------------------------*/
+void proto_register_h283(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h283-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_h283,
+#include "packet-h283-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h283 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h283, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_dissector(PFNAME, dissect_h283_udp, proto_h283);
+
+}
+
+/*--- proto_reg_handoff_h283 -------------------------------------------*/
+void proto_reg_handoff_h283(void)
+{
+ dissector_handle_t h283_udp_handle;
+
+ h283_udp_handle = find_dissector(PFNAME);
+ dissector_add_for_decode_as("udp.port", h283_udp_handle);
+
+ rdc_pdu_handle = find_dissector("rdc");
+ rdc_device_list_handle = find_dissector("rdc.device_list");
+ data_handle = find_dissector("data");
+}
+
diff --git a/epan/dissectors/asn1/h323/CMakeLists.txt b/epan/dissectors/asn1/h323/CMakeLists.txt
new file mode 100644
index 0000000000..e12af18283
--- /dev/null
+++ b/epan/dissectors/asn1/h323/CMakeLists.txt
@@ -0,0 +1,53 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h323 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ RAS-PROTOCOL-TUNNEL.asn
+ ROBUSTNESS-DATA.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../h225/h225-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h323/Makefile.am b/epan/dissectors/asn1/h323/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h323/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h323/Makefile.common b/epan/dissectors/asn1/h323/Makefile.common
new file mode 100644
index 0000000000..0c15035254
--- /dev/null
+++ b/epan/dissectors/asn1/h323/Makefile.common
@@ -0,0 +1,46 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = h323
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ RAS-PROTOCOL-TUNNEL.asn \
+ ROBUSTNESS-DATA.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF = \
+ $(builddir)/../h225/h225-exp.cnf
+
+$(builddir)/../h225/h225-exp.cnf:
+ (cd $(builddir)/../h225 && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/h323/Makefile.nmake b/epan/dissectors/asn1/h323/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/h323/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/h323/RAS-PROTOCOL-TUNNEL.asn b/epan/dissectors/asn1/h323/RAS-PROTOCOL-TUNNEL.asn
new file mode 100644
index 0000000000..6b26c59b49
--- /dev/null
+++ b/epan/dissectors/asn1/h323/RAS-PROTOCOL-TUNNEL.asn
@@ -0,0 +1,25 @@
+-- RAS-PROTOCOL-TUNNEL.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h323/2006/RAS-PROTOCOL-TUNNEL.asn
+--
+
+-- Module RAS-PROTOCOL-TUNNEL (H.323:06/2006)
+RAS-PROTOCOL-TUNNEL DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS TunnelledProtocol, NonStandardParameter
+ FROM H323-MESSAGES;
+
+RasTunnelledSignallingMessage ::= SEQUENCE {
+ tunnelledProtocolID TunnelledProtocol, -- tunnelled signalling protocol ID
+ messageContent SEQUENCE OF OCTET STRING, -- sequence of entire message(s)
+ tunnellingRequired NULL OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h323/ROBUSTNESS-DATA.asn b/epan/dissectors/asn1/h323/ROBUSTNESS-DATA.asn
new file mode 100644
index 0000000000..00e76f05a5
--- /dev/null
+++ b/epan/dissectors/asn1/h323/ROBUSTNESS-DATA.asn
@@ -0,0 +1,87 @@
+-- ROBUSTNESS-DATA.asn
+--
+-- ITU-T Rec. H.323 (06/2006)
+--
+-- Annex R - Robustness methods for H.323 entities
+-- R.11 GenericData usage
+--
+
+ROBUSTNESS-DATA DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ TransportAddress, AlternateTransportAddresses,
+ GloballyUniqueID, TimeToLive
+ FROM H323-MESSAGES;
+
+RobustnessData ::= SEQUENCE {
+ versionID INTEGER(1..256),
+ robustnessData
+ CHOICE {
+ rrqData Rrq-RD,
+ rcfData Rcf-RD,
+ setupData Setup-RD,
+ connectData Connect-RD,
+ statusData Status-RD,
+ statusInquiryData StatusInquiry-RD,
+ ...
+ },
+ ...
+}
+
+BackupCallSignalAddresses ::= SEQUENCE OF
+ CHOICE {
+ tcp TransportAddress,
+ alternateTransport AlternateTransportAddresses,
+ ...
+ }
+
+GloballyUniqueIdentifier ::= GloballyUniqueID
+
+Rrq-RD ::= SEQUENCE {
+ backupCallSignalAddresses BackupCallSignalAddresses,
+ hasSharedRepository NULL OPTIONAL,
+ ...
+}
+
+Rcf-RD ::= SEQUENCE {
+ hasSharedRepository NULL OPTIONAL,
+ ...,
+ irrFrequency INTEGER(1..65535) OPTIONAL -- in seconds;
+ -- not present
+ -- if GK does not
+ -- want IRRs for
+ -- recovered calls
+}
+
+Setup-RD ::= SEQUENCE {
+ backupCallSignalAddresses BackupCallSignalAddresses,
+ hasSharedRepository NULL OPTIONAL,
+ endpointGuid GloballyUniqueIdentifier OPTIONAL,
+ ...
+}
+
+Connect-RD ::= SEQUENCE {
+ backupCallSignalAddresses BackupCallSignalAddresses,
+ hasSharedRepository NULL OPTIONAL,
+ endpointGuid GloballyUniqueIdentifier OPTIONAL,
+ ...
+}
+
+Status-RD ::= SEQUENCE {
+ h245Address TransportAddress OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL,
+ ...,
+ resetH245 NULL OPTIONAL
+}
+
+StatusInquiry-RD ::= SEQUENCE {
+ h245Address TransportAddress OPTIONAL,
+ timeToLive TimeToLive OPTIONAL,
+ includeFastStart NULL OPTIONAL,
+ ...
+}
+
+robustnessId GenericIdentifier ::= standard:1
+
+END
diff --git a/epan/dissectors/asn1/h323/h323.cnf b/epan/dissectors/asn1/h323/h323.cnf
new file mode 100644
index 0000000000..51d33734b0
--- /dev/null
+++ b/epan/dissectors/asn1/h323/h323.cnf
@@ -0,0 +1,15 @@
+# h323.cnf
+# H.323 conformation file
+# 2007 Tomas Kukosa
+
+#.IMPORT ../h225/h225-exp.cnf
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.PDU
+RasTunnelledSignallingMessage
+RobustnessData
+#.END
diff --git a/epan/dissectors/asn1/h323/packet-h323-template.c b/epan/dissectors/asn1/h323/packet-h323-template.c
new file mode 100644
index 0000000000..4068c7dc16
--- /dev/null
+++ b/epan/dissectors/asn1/h323/packet-h323-template.c
@@ -0,0 +1,137 @@
+/* packet-h323.c
+ * Routines for H.323 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-h225.h"
+#include "packet-h323.h"
+
+#define PNAME "H.323"
+#define PSNAME "H.323"
+#define PFNAME "h323"
+
+void proto_register_h323(void);
+void proto_reg_handoff_h323(void);
+
+/* Generic Extensible Framework */
+gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type) {
+ gef_ctx_t *gefx;
+
+ gefx = wmem_new0(wmem_packet_scope(), gef_ctx_t);
+ gefx->signature = GEF_CTX_SIGNATURE;
+ gefx->parent = parent;
+ gefx->type = type;
+ return gefx;
+}
+
+gboolean gef_ctx_check_signature(gef_ctx_t *gefx) {
+ return gefx && (gefx->signature == GEF_CTX_SIGNATURE);
+}
+
+gef_ctx_t* gef_ctx_get(void *ptr) {
+ gef_ctx_t *gefx = (gef_ctx_t*)ptr;
+ asn1_ctx_t *actx = (asn1_ctx_t*)ptr;
+
+ if (!asn1_ctx_check_signature(actx))
+ actx = NULL;
+
+ if (actx)
+ gefx = (gef_ctx_t *)actx->private_data;
+
+ if (!gef_ctx_check_signature(gefx))
+ gefx = NULL;
+
+ return gefx;
+}
+
+void gef_ctx_update_key(gef_ctx_t *gefx) {
+ const gchar *parent_key;
+
+ if (!gefx) return;
+ parent_key = (gefx->parent) ? gefx->parent->key : NULL;
+ gefx->key = wmem_strdup_printf(wmem_packet_scope(),
+ "%s%s" /* parent prefix */
+ "%s%s%s" /* type, id */
+ "%s%s" /* subid */,
+ (parent_key) ? parent_key : "", (parent_key) ? "/" : "",
+ (gefx->type) ? gefx->type : "", (gefx->type && (gefx->id || gefx->subid)) ? "/" : "", (gefx->id) ? gefx->id : "",
+ (gefx->subid) ? "-" : "", (gefx->subid) ? gefx->subid : ""
+ );
+}
+
+/* Initialize the protocol and registered fields */
+static int proto_h323 = -1;
+#include "packet-h323-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h323-ett.c"
+
+#include "packet-h323-fn.c"
+
+/*--- proto_register_h323 ----------------------------------------------*/
+void proto_register_h323(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h323-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h323-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h323 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h323, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_h323 -------------------------------------------*/
+void proto_reg_handoff_h323(void)
+{
+ dissector_handle_t q931_handle;
+
+ q931_handle = find_dissector("q931");
+
+ /* H.323, Annex M1, Tunnelling of signalling protocols (QSIG) in H.323 */
+ dissector_add_string("h225.tp", "1.3.12.9", q931_handle);
+
+ /* H.323, Annex M4, Tunnelling of narrow-band signalling syntax (NSS) for H.323 */
+ dissector_add_string("h225.gef.content", "GenericData/1000/1",
+ create_dissector_handle(dissect_RasTunnelledSignallingMessage_PDU, proto_h323));
+
+ /* H.323, Annex R, Robustness methods for H.323 entities */
+ dissector_add_string("h225.gef.content", "GenericData/1/1",
+ create_dissector_handle(dissect_RobustnessData_PDU, proto_h323));
+}
+
diff --git a/epan/dissectors/asn1/h323/packet-h323-template.h b/epan/dissectors/asn1/h323/packet-h323-template.h
new file mode 100644
index 0000000000..1d2750fb27
--- /dev/null
+++ b/epan/dissectors/asn1/h323/packet-h323-template.h
@@ -0,0 +1,64 @@
+/* packet-h323.h
+ * Routines for H.235 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_H323_H
+#define PACKET_H323_H
+
+/* Generic Extensible Framework */
+
+#define GEF_CTX_SIGNATURE 0x47454658 /* "GEFX" */
+
+typedef struct _gef_ctx_t {
+ guint32 signature;
+ struct _gef_ctx_t *parent;
+ /*
+ H323-MESSAGES
+ FeatureDescriptor/<id>
+ <id>
+ GenericData/<id>
+ <id>
+ MULTIMEDIA-SYSTEM-CONTROL
+ GenericInformation/<id>[-<subid>]
+ <id>
+ GenericMessage/<id>[-<subid>]
+ <id>
+ GenericCapability/<id>
+ collapsing/<id>
+ nonCollapsing/<id>
+ nonCollapsingRaw
+ EncryptionSync
+ <id>
+ */
+ const gchar *type;
+ const gchar *id;
+ const gchar *subid;
+ const gchar *key;
+} gef_ctx_t;
+
+extern gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type);
+extern gboolean gef_ctx_check_signature(gef_ctx_t *gefx);
+extern gef_ctx_t* gef_ctx_get(void *ptr);
+extern void gef_ctx_update_key(gef_ctx_t *gefx);
+
+#endif /* PACKET_H323_H */
+
diff --git a/epan/dissectors/asn1/h450-ros/CMakeLists.txt b/epan/dissectors/asn1/h450-ros/CMakeLists.txt
new file mode 100644
index 0000000000..b2e0522abd
--- /dev/null
+++ b/epan/dissectors/asn1/h450-ros/CMakeLists.txt
@@ -0,0 +1,60 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h450-ros )
+
+set( PROTO_OPT -p h450.ros )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+ ../ros/Remote-Operations-Information-Objects.asn
+)
+
+set( ASN_FILE_LIST
+ Remote-Operations-Apdus.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ ../ros/ros-inv.cnf
+ ../ros/ros-res.cnf
+ ../ros/ros-err.cnf
+ ../ros/ros-rej.cnf
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h450-ros/Makefile.am b/epan/dissectors/asn1/h450-ros/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h450-ros/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h450-ros/Makefile.common b/epan/dissectors/asn1/h450-ros/Makefile.common
new file mode 100644
index 0000000000..da38f5dab5
--- /dev/null
+++ b/epan/dissectors/asn1/h450-ros/Makefile.common
@@ -0,0 +1,52 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = h450-ros
+
+# The file needs to use h450 for the filter elements etc
+PROTO_OPT = -p h450.ros
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST = ../ros/Remote-Operations-Information-Objects.asn
+
+ASN_FILE_LIST = Remote-Operations-Apdus.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS=
+
+EXTRA_CNF = \
+ $(builddir)/../ros/ros-inv.cnf \
+ $(builddir)/../ros/ros-res.cnf \
+ $(builddir)/../ros/ros-err.cnf \
+ $(builddir)/../ros/ros-rej.cnf
+
diff --git a/epan/dissectors/asn1/h450-ros/Makefile.nmake b/epan/dissectors/asn1/h450-ros/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/h450-ros/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/h450-ros/Remote-Operations-Apdus.asn b/epan/dissectors/asn1/h450-ros/Remote-Operations-Apdus.asn
new file mode 100644
index 0000000000..b69ff2b69b
--- /dev/null
+++ b/epan/dissectors/asn1/h450-ros/Remote-Operations-Apdus.asn
@@ -0,0 +1,150 @@
+-- Remote-Operations-Apdus.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Remote-Operations-Apdus.asn
+--
+
+-- Module Remote-Operations-Apdus (H.450.1:02/1998)
+Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
+ remote-operations-apdus(11)} DEFINITIONS AUTOMATIC 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
+ InvokeId
+ (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 GeneralProblem,
+ invoke InvokeProblem,
+ returnResult ReturnResultProblem,
+ returnError ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+ unrecognizedComponent(0), mistypedComponent(1), badlyStructuredComponent(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 ::= INTEGER
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+END -- end of Remote-Operations-Apdus definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450-ros/h450-ros.cnf b/epan/dissectors/asn1/h450-ros/h450-ros.cnf
new file mode 100644
index 0000000000..a403dea6bc
--- /dev/null
+++ b/epan/dissectors/asn1/h450-ros/h450-ros.cnf
@@ -0,0 +1,108 @@
+#.EXPORTS
+
+ROS
+
+#.OMIT_ASSIGNMENT
+
+Priority
+RejectProblem
+
+#.TYPE_RENAME
+
+Invoke/argument InvokeArgument
+ReturnResult/result/result ResultArgument
+
+#.FIELD_RENAME
+
+Invoke/invokeId invokeIdConstrained
+
+Reject/problem/invoke invokeProblem
+Reject/problem/returnError returnErrorProblem
+Reject/problem/returnResult returnResultProblem
+
+ReturnResult/result/result resultArgument
+
+#--- ROS ---
+
+#.FN_HDR ROS
+ DISSECTOR_ASSERT(actx->rose_ctx);
+ rose_ctx_clean_data(actx->rose_ctx);
+#.END
+
+#--- Code ---
+
+#.FN_PARS
+Code VAL_PTR = &%(ACTX)s->rose_ctx->d.code
+Code/local VAL_PTR = &%(ACTX)s->rose_ctx->d.code_local
+Code/global FN_VARIANT = _str VAL_PTR = &%(ACTX)s->rose_ctx->d.code_global
+#.FN_FTR Code
+ actx->rose_ctx->d.code_item = actx->created_item;
+#.END
+
+#--- Problem ---
+
+#.FN_PARS
+GeneralProblem VAL_PTR = &problem_val
+InvokeProblem VAL_PTR = &problem_val
+ReturnResultProblem VAL_PTR = &problem_val
+ReturnErrorProblem VAL_PTR = &problem_val
+#.FN_FTR GeneralProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(h450_ros_GeneralProblem_vals), ""), 64);
+ problem_str[64-1] = '\0';
+#.FN_FTR InvokeProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(h450_ros_InvokeProblem_vals), ""), 64);
+ problem_str[64-1] = '\0';
+#.FN_FTR ReturnResultProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(h450_ros_ReturnResultProblem_vals), ""), 64);
+ problem_str[64-1] = '\0';
+#.FN_FTR ReturnErrorProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(h450_ros_ReturnErrorProblem_vals), ""), 64);
+ problem_str[64-1] = '\0';
+#.END
+
+#--- INVOKE ---
+
+# body is implemented manually as asn2wrs is not able to handle subtype constraint event passed through parameter
+#.FN_BODY Invoke/invokeId
+ offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
+ 0U, 65535U, %(VAL_PTR)s, TRUE);
+#.END
+
+#.FIELD_ATTR
+Invoke/argument TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_PARS Invoke/argument
+FN_VARIANT = _pdu_new
+TYPE_REF_FN = argument_cb
+#.END
+
+#.INCLUDE ../ros/ros-inv.cnf
+
+#--- RETURN RESULT ---
+
+#.FIELD_ATTR
+ReturnResult/result/result TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_PARS ReturnResult/result/result
+FN_VARIANT = _pdu_new
+TYPE_REF_FN = result_cb
+
+#.END
+
+#.INCLUDE ../ros/ros-res.cnf
+
+#--- RETURN ERROR ---
+
+#.FIELD_ATTR
+ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_PARS ReturnError/parameter
+FN_VARIANT = _pdu_new
+TYPE_REF_FN = error_cb
+#.END
+
+#.INCLUDE ../ros/ros-err.cnf
+
+#--- REJECT ---
+
+#.INCLUDE ../ros/ros-rej.cnf
diff --git a/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c b/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c
new file mode 100644
index 0000000000..3841694a49
--- /dev/null
+++ b/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c
@@ -0,0 +1,115 @@
+/* packet-h450-ros.c
+ * Routines for H.450 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include "packet-per.h"
+#include "packet-h450-ros.h"
+
+#define PNAME "H.450 Remote Operations Apdus"
+#define PSNAME "H450.ROS"
+#define PFNAME "h450.ros"
+
+void proto_register_h450_ros(void);
+void proto_reg_handoff_h450_ros(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_h450_ros = -1;
+#include "packet-h450-ros-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h450-ros-ett.c"
+
+static expert_field ei_ros_undecoded = EI_INIT;
+
+/* Preferences */
+
+/* Subdissectors */
+static dissector_handle_t data_handle = NULL;
+
+/* Global variables */
+static gint32 problem_val;
+static gchar problem_str[64];
+static tvbuff_t *arg_next_tvb, *res_next_tvb, *err_next_tvb;
+
+static int
+argument_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_) {
+ arg_next_tvb = tvb;
+ return tvb_captured_length(tvb);
+}
+
+static int
+result_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_) {
+ res_next_tvb = tvb;
+ return tvb_captured_length(tvb);
+}
+
+static int
+error_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_) {
+ err_next_tvb = tvb;
+ return tvb_captured_length(tvb);
+}
+
+#include "packet-h450-ros-fn.c"
+
+/*--- proto_register_h450_ros -----------------------------------------------*/
+void proto_register_h450_ros(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h450-ros-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h450-ros-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_ros_undecoded, { "h450.ros.undecoded", PI_UNDECODED, PI_WARN, "Undecoded", EXPFILL }},
+ };
+
+ expert_module_t* expert_h450_ros;
+
+ /* Register protocol and dissector */
+ proto_h450_ros = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ proto_set_cant_toggle(proto_h450_ros);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h450_ros, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_h450_ros = expert_register_protocol(proto_h450_ros);
+ expert_register_field_array(expert_h450_ros, ei, array_length(ei));
+}
+
+/*--- proto_reg_handoff_h450_ros --------------------------------------------*/
+void proto_reg_handoff_h450_ros(void) {
+ data_handle = find_dissector("data");
+}
+
+/*---------------------------------------------------------------------------*/
diff --git a/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.h b/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.h
new file mode 100644
index 0000000000..bd0ad2334d
--- /dev/null
+++ b/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.h
@@ -0,0 +1,30 @@
+/* packet-h450-ros.h
+ * Routines for H.450 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_H450_ROS_H
+#define PACKET_H450_ROS_H
+
+#include "packet-h450-ros-exp.h"
+
+#endif /* PACKET_H450_ROS_H */
+
diff --git a/epan/dissectors/asn1/h450/Addressing-Data-Elements.asn b/epan/dissectors/asn1/h450/Addressing-Data-Elements.asn
new file mode 100644
index 0000000000..809f89977e
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Addressing-Data-Elements.asn
@@ -0,0 +1,125 @@
+-- Addressing-Data-Elements.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Addressing-Data-Elements.asn
+--
+
+-- Module Addressing-Data-Elements (H.450.1:02/1998)
+Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ AliasAddress, PartyNumber, PresentationIndicator, ScreeningIndicator
+ FROM H323-MESSAGES; -- see H.225.0
+
+PresentedAddressScreened ::= CHOICE {
+ presentationAllowedAddress AddressScreened,
+ presentationRestricted NULL,
+ numberNotAvailableDueToInterworking NULL,
+ presentationRestrictedAddress AddressScreened,
+ ...
+}
+
+PresentedAddressUnscreened ::= CHOICE {
+ presentationAllowedAddress Address,
+ presentationRestricted NULL,
+ numberNotAvailableDueToInterworking NULL,
+ presentationRestrictedAddress Address,
+ ...
+}
+
+PresentedNumberScreened ::= CHOICE {
+ presentationAllowedAddress NumberScreened,
+ presentationRestricted NULL,
+ numberNotAvailableDueToInterworking NULL,
+ presentationRestrictedAddress NumberScreened,
+ ...
+}
+
+PresentedNumberUnscreened ::= CHOICE {
+ presentationAllowedAddress PartyNumber,
+ presentationRestricted NULL,
+ numberNotAvailableDueToInterworking NULL,
+ presentationRestrictedAddress PartyNumber,
+ ...
+}
+
+AddressScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator,
+ partySubaddress PartySubaddress OPTIONAL,
+ ...
+}
+
+NumberScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator,
+ ...
+}
+
+Address ::= SEQUENCE {
+ partyNumber PartyNumber,
+ partySubaddress PartySubaddress OPTIONAL,
+ ...
+}
+
+-- PartyNumber defined in Recommendation H.225.0
+-- PublicPartyNumber defined in Recommendation H.225.0
+-- PrivatePartyNumber defined in Recommendation H.225.0
+-- NumberDigits defined in Recommendation H.225.0
+-- PublicTypeOfNumber defined in Recommendation H.225.0
+-- PrivateTypeOfNumber defined in Recommendation H.225.0
+-- PresentationIndicator defined in Recommendation H.225.0 (v3 and beyond)
+-- ScreeningIndicator defined in Recommendation H.225.0 (v3 and beyond)
+EndpointAddress ::= SEQUENCE {
+ destinationAddress SEQUENCE OF AliasAddress,
+ -- multiple alias addresses may be used to address the same H.323 endpoint
+ remoteExtensionAddress AliasAddress OPTIONAL,
+ ...,
+ destinationAddressPresentationIndicator
+ PresentationIndicator OPTIONAL,
+ -- Note 1, 2
+ destinationAddressScreeningIndicator ScreeningIndicator OPTIONAL,
+ remoteExtensionAddressPresentationIndicator
+ PresentationIndicator OPTIONAL,
+ -- Note 1, 2
+ remoteExtensionAddressScreeningIndicator ScreeningIndicator OPTIONAL
+}
+
+-- Note 1: If this element is not available, presentation allowed shall be assumed.
+-- Note 2: If an H.450 APDU that carries this element EndpointAddress also
+-- contains an element PresentationAllowedIndicator, then the setting of the
+-- element PresentationAllowedIndicator shall take precedence in case of
+-- conflicting presentation information.
+PartySubaddress ::= CHOICE {
+ userSpecifiedSubaddress UserSpecifiedSubaddress,
+ -- not recommended.
+ nsapSubaddress NSAPSubaddress,
+ -- according to Recommendation X.213.
+ ...
+}
+
+UserSpecifiedSubaddress ::= SEQUENCE {
+ subaddressInformation SubaddressInformation,
+ oddCountIndicator BOOLEAN OPTIONAL,
+ -- used when the coding of subaddress is BCD
+ ...
+}
+
+NSAPSubaddress ::= OCTET STRING(SIZE (1..20))
+
+-- specified according to X.213. Some networks may
+-- limit the subaddress value to some other length
+-- e.g. 4 octets
+SubaddressInformation ::= OCTET STRING(SIZE (1..20))
+
+-- coded according to user requirements. Some networks
+-- may limit the subaddress value to some other length
+-- e.g. 4 octets
+PresentationAllowedIndicator ::= BOOLEAN
+
+END -- of Addressing-Data-Elements
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/CMakeLists.txt b/epan/dissectors/asn1/h450/CMakeLists.txt
new file mode 100644
index 0000000000..a3b1237542
--- /dev/null
+++ b/epan/dissectors/asn1/h450/CMakeLists.txt
@@ -0,0 +1,75 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h450 )
+
+set( PROTO_OPT _EMPTY_ )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( H450_ASN
+ H4501-Supplementary-ServiceAPDU-Structure.asn
+ Addressing-Data-Elements.asn
+ H225-generic-parameters-definition.asn
+ Manufacturer-specific-service-extension-definition.asn
+ H4501-General-Error-List.asn
+)
+
+set( H450_OP_ASN
+ Call-Transfer-Operations.asn
+ Call-Diversion-Operations.asn
+ Call-Hold-Operations.asn
+ Call-Park-Pickup-Operations.asn
+ Call-Waiting-Operations.asn
+ Message-Waiting-Indication-Operations.asn
+ Name-Operations.asn
+ Call-Completion-Operations.asn
+ Call-Offer-Operations.asn
+ Call-Intrusion-Operations.asn
+ Common-Information-Operations.asn
+)
+
+set( ASN_FILE_LIST
+ ${H450_ASN}
+ ${H450_OP_ASN}
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../h225/h225-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../h450-ros/h450-ros-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h450/Call-Completion-Operations.asn b/epan/dissectors/asn1/h450/Call-Completion-Operations.asn
new file mode 100644
index 0000000000..855934d3c8
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Completion-Operations.asn
@@ -0,0 +1,154 @@
+-- Call-Completion-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.9/2000/Call-Completion-Operations.asn
+--
+
+-- Module Call-Completion-Operations (H.450.9:11/2000)
+Call-Completion-Operations {itu-t recommendation h 450 9 version1(0)
+ call-completion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ CallIdentifier
+ FROM H323-MESSAGES -- see ITU-T H.225.0
+
+ EndpointAddress
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ MixedExtension, undefined
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)}
+ supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ BasicService
+ FROM Message-Waiting-Indication-Operations {itu-t recommendation h
+ 450 7 version1(0) message-waiting-operations(0)};
+
+H323CallCompletionOperations OPERATION ::=
+ {ccbsRequest | ccnrRequest | ccCancel | ccExecPossible | ccRingout |
+ ccSuspend | ccResume}
+
+ccbsRequest OPERATION ::= {
+ ARGUMENT CcRequestArg
+ RESULT CcRequestRes
+ ERRORS
+ {shortTermRejection | longTermRejection | undefined |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local:40
+}
+
+ccnrRequest OPERATION ::= {
+ ARGUMENT CcRequestArg
+ RESULT CcRequestRes
+ ERRORS
+ {shortTermRejection | longTermRejection | undefined |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local:27
+}
+
+ccCancel OPERATION ::= {
+ ARGUMENT CcArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:28
+}
+
+ccExecPossible OPERATION ::= {
+ ARGUMENT CcArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:29
+}
+
+ccRingout OPERATION ::= {
+ ARGUMENT CcShortArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ERRORS {remoteUserBusyAgain | failureToMatch | undefined}
+ CODE local:31
+}
+
+ccSuspend OPERATION ::= {
+ ARGUMENT CcShortArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:32
+}
+
+ccResume OPERATION ::= {
+ ARGUMENT CcArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:33
+}
+
+CcRequestArg ::= SEQUENCE {
+ numberA EndpointAddress,
+ numberB EndpointAddress,
+ ccIdentifier CallIdentifier OPTIONAL,
+ -- If present, it shall be used as the prime mechanism for associating
+ -- the unsuccessful call, the CC Request and the CC Call.
+ service BasicService,
+ can-retain-service BOOLEAN,
+ retain-sig-connection BOOLEAN OPTIONAL,
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CcRequestRes ::= SEQUENCE {
+ retain-service BOOLEAN,
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CcArg ::= CHOICE {
+ shortArg CcShortArg, -- if signalling conection is retained
+ longArg CcLongArg, -- if connection release option applies
+ ...
+}
+
+CcShortArg ::= SEQUENCE {
+ ccIdentifier CallIdentifier OPTIONAL,
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CcLongArg ::= SEQUENCE {
+ numberA EndpointAddress OPTIONAL,
+ numberB EndpointAddress OPTIONAL,
+ ccIdentifier CallIdentifier OPTIONAL,
+ service BasicService OPTIONAL,
+ -- these elements are used to identify the proper CC Request.
+ -- The ccIdentifier if present shall be the prime mechanism for this purpose.
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+shortTermRejection ERROR ::= {CODE local:1010
+}
+
+longTermRejection ERROR ::= {CODE local:1011
+}
+
+remoteUserBusyAgain ERROR ::= {CODE local:1012
+}
+
+failureToMatch ERROR ::= {CODE local:1013
+}
+
+END -- of Call-Completion-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Diversion-Operations.asn b/epan/dissectors/asn1/h450/Call-Diversion-Operations.asn
new file mode 100644
index 0000000000..9043082076
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Diversion-Operations.asn
@@ -0,0 +1,323 @@
+-- Call-Diversion-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.3/1998/Call-Diversion-Operations.asn
+--
+
+-- Module Call-Diversion-Operations (H.450.3:02/1998)
+Call-Diversion-Operations {itu-t recommendation h 450 3 version1(0)
+ call-diversion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ H225InformationElement
+ FROM H225-generic-parameters-definition {itu-t recommendation h 450
+ 1 version1(0) h225-generic-parameters(6)}
+ NonStandardParameter
+ FROM H323-MESSAGES
+ EndpointAddress, PartySubaddress, PresentationAllowedIndicator
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ userNotSubscribed, notAvailable, invalidServedUserNumber,
+ basicServiceNotProvided, resourceUnavailable,
+ supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)};
+
+H323CallDiversionOperations OPERATION ::=
+ {activateDiversionQ | deactivateDiversionQ | interrogateDiversionQ |
+ checkRestriction | callRerouting | divertingLegInformation1 |
+ divertingLegInformation2 | divertingLegInformation3 |
+ divertingLegInformation4 | cfnrDivertedLegFailed}
+
+activateDiversionQ OPERATION ::=
+ { -- sent from the activating h.323-endpoint to the served h.323-endpoint
+ ARGUMENT
+ SEQUENCE {procedure Procedure,
+ basicService BasicService,
+ divertedToAddress EndpointAddress,
+ servedUserNr EndpointAddress,
+ activatingUserNr EndpointAddress,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ ERRORS
+ {userNotSubscribed | notAvailable | invalidServedUserNumber |
+ basicServiceNotProvided | resourceUnavailable | invalidDivertedNumber |
+ specialServiceNumber | diversionToServedUserNumber |
+ temporarilyUnavailable | notAuthorized | unspecified}
+ CODE local:15
+}
+
+deactivateDiversionQ OPERATION ::=
+ { -- sent from the deactivating h.323-endpoint to the served h.323-endpoint
+ ARGUMENT
+ SEQUENCE {procedure Procedure,
+ basicService BasicService,
+ servedUserNr EndpointAddress,
+ deactivatingUserNr EndpointAddress,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ ERRORS
+ {userNotSubscribed | notAvailable | invalidServedUserNumber |
+ temporarilyUnavailable | notAuthorized | unspecified}
+ CODE local:16
+}
+
+interrogateDiversionQ OPERATION ::=
+ { -- sent from the interrogating h.323-endpoint to the served h.323-endpoint
+ ARGUMENT
+ SEQUENCE {procedure Procedure,
+ basicService BasicService DEFAULT allServices,
+ servedUserNr EndpointAddress,
+ interrogatingUserNr EndpointAddress,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT IntResultList
+ ERRORS
+ {userNotSubscribed | notAvailable | invalidServedUserNumber |
+ temporarilyUnavailable | notAuthorized | unspecified}
+ CODE local:17
+}
+
+checkRestriction OPERATION ::=
+ { -- sent from the served h.323-endpoint to the diverted-to h.323-endpoint
+ ARGUMENT
+ SEQUENCE {servedUserNr EndpointAddress,
+ basicService BasicService,
+ divertedToNr EndpointAddress,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | invalidServedUserNumber | invalidDivertedNumber |
+ specialServiceNumber | unspecified}
+ CODE local:18
+}
+
+callRerouting OPERATION ::=
+ { -- sent from the served h.323-endpoint to the rerouting h.323-endpoint
+ ARGUMENT
+ SEQUENCE {reroutingReason DiversionReason,
+ originalReroutingReason DiversionReason OPTIONAL,
+ calledAddress EndpointAddress,
+ diversionCounter INTEGER(1..15),
+ h225InfoElement H225InformationElement,
+ -- The H.225 information elements Bearer capability,
+ -- High layer compatibility, Low layer compatibility and
+ -- Progress Indicator information element may be embedded
+ -- in the h225InfoElement in accordance with H.450.1.
+ lastReroutingNr EndpointAddress,
+ subscriptionOption SubscriptionOption,
+ callingPartySubaddress PartySubaddress OPTIONAL,
+ callingNumber EndpointAddress,
+ callingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ originalCalledNr EndpointAddress OPTIONAL,
+ redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ originalCalledInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ ERRORS
+ {userNotSubscribed | notAvailable | resourceUnavailable |
+ invalidDivertedNumber | specialServiceNumber |
+ diversionToServedUserNumber | numberOfDiversionsExceeded |
+ supplementaryServiceInteractionNotAllowed | unspecified}
+ CODE local:19
+}
+
+divertingLegInformation1 OPERATION ::=
+ { -- sent from the re-routing h.323-endpoint to the originating h.323-endpoint
+ -- if the re-routing endpoint equals the originating endpoint, this operation
+
+ -- is not applicable; may also be sent from the rerouting endpoint to other
+ -- members of a conference, if subscription option allows.
+ ARGUMENT
+ SEQUENCE {diversionReason DiversionReason,
+ subscriptionOption SubscriptionOption,
+ nominatedNr EndpointAddress,
+ nominatedInfo BMPString(SIZE (1..128)) OPTIONAL,
+ redirectingNr EndpointAddress OPTIONAL,
+ redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:20
+}
+
+divertingLegInformation2 OPERATION ::=
+ { --sent from the re-routing h.323-endpoint to the diverted-to h.323-endpoint
+ ARGUMENT
+ SEQUENCE {diversionCounter INTEGER(1..15),
+ diversionReason DiversionReason,
+ originalDiversionReason DiversionReason OPTIONAL,
+ divertingNr EndpointAddress OPTIONAL,
+ originalCalledNr EndpointAddress OPTIONAL,
+ redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ originalCalledInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ -- The divertingNr element is mandatory except in the case of interworking
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:21
+}
+
+divertingLegInformation3 OPERATION ::= {
+ --sent from the diverted-to h.323-endpoint to the originating h.323-endpoint
+ ARGUMENT
+ SEQUENCE {presentationAllowedIndicator PresentationAllowedIndicator,
+ redirectionNr EndpointAddress OPTIONAL,
+ redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:22
+}
+
+divertingLegInformation4 OPERATION ::= {
+ -- If call diversion in not performed by the forwarding terminal but by a
+ -- gatekeeper, the gatekeeper may send divertingLegInformation4 apdu to the
+ -- forwarding terminal.
+ ARGUMENT
+ SEQUENCE {diversionReason DiversionReason,
+ subscriptionOption SubscriptionOption,
+ callingNr EndpointAddress,
+ callingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ nominatedNr EndpointAddress,
+ nominatedInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:100
+}
+
+cfnrDivertedLegFailed OPERATION ::=
+ { -- sent from the rerouting h.323-terminal to the served h.323-endpoint
+ ARGUMENT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:23
+}
+
+-- This indicates that the diverted-to leg has been cleared during SS-CFNR execution.
+-- Definitions of general used data types:
+DiversionReason ::= ENUMERATED {unknown(0), cfu(1), cfb(2), cfnr(3), ...
+ }
+
+-- The value unknown is only used if received from another network when interworking.
+IntResultList ::= SET SIZE (0..29) OF IntResult
+
+IntResult ::= SEQUENCE {
+ servedUserNr EndpointAddress,
+ basicService BasicService,
+ procedure Procedure,
+ divertedToAddress EndpointAddress,
+ remoteEnabled BOOLEAN DEFAULT FALSE,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+Procedure ::= ENUMERATED {cfu(0), cfb(1), cfnr(2), ...
+ }
+
+SubscriptionOption ::= ENUMERATED {
+ noNotification(0), notificationWithoutDivertedToNr(1),
+ notificationWithDivertedToNr(2), ...
+ }
+
+invalidDivertedNumber ERROR ::= {CODE local:12
+}
+
+specialServiceNumber ERROR ::= {CODE local:14
+}
+
+diversionToServedUserNumber ERROR ::= {CODE local:15
+}
+
+numberOfDiversionsExceeded ERROR ::= {CODE local:24
+}
+
+temporarilyUnavailable ERROR ::= {CODE local:1000
+}
+
+notAuthorized ERROR ::= {CODE local:1007
+}
+
+unspecified ERROR ::= {
+ PARAMETER
+ CHOICE {extension Extension{{ExtensionSet}},
+ nonStandard NonStandardParameter}
+ CODE local:1008
+}
+
+BasicService ::= ENUMERATED {
+ allServices(0),
+ -- speech (1),
+ -- unrestrictedDigitalInformation (2),
+ -- audio3.1KHz (3),
+ -- telephony (32),
+ -- teletex (33),
+ -- telefaxGroup4Class1 (34),
+ -- videotexSyntaxBased (35),
+ -- videotelephony (36),
+ ...
+ }
+
+-- For multimedia calls the value "allServices" shall be used only.
+-- The usage of the other codepoints for multimedia calls is for further study.
+ExtensionSeq ::= SEQUENCE OF Extension{{ExtensionSet}}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+-- Actual values defined by individual manufacturers
+END -- of Call-Diversion-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Hold-Operations.asn b/epan/dissectors/asn1/h450/Call-Hold-Operations.asn
new file mode 100644
index 0000000000..ed59f8a6e6
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Hold-Operations.asn
@@ -0,0 +1,131 @@
+-- Call-Hold-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.4/1999/Call-Hold-Operations.asn
+--
+
+-- Module Call-Hold-Operations (H.450.4:05/1999)
+Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ notAvailable, invalidCallState, resourceUnavailable,
+ supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ NonStandardParameter
+ FROM H323-MESSAGES; -- see H.225.0
+
+CallHoldOperations OPERATION ::=
+ {holdNotific | retrieveNotific | remoteHold | remoteRetrieve}
+
+holdNotific OPERATION ::=
+ { -- sent from holding to held H.323 endpoint to invoke near-end call hold feature
+
+ ARGUMENT HoldNotificArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:101
+}
+
+HoldNotificArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+retrieveNotific OPERATION ::=
+ { -- sent from holding to held H.323 endpoint to invoke retrieval of near-end call hold feature
+
+ ARGUMENT RetrieveNotificArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:102
+}
+
+RetrieveNotificArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+remoteHold OPERATION ::=
+ { -- sent from holding to held H.323 endpoint to invoke remote-end call hold feature
+
+ ARGUMENT RemoteHoldArg
+ OPTIONAL TRUE
+ RESULT RemoteHoldRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable
+ | -- feature not available in combination with the basic service
+ invalidCallState | --hold not possible in current call state
+ resourceUnavailable | -- maximum number of calls on hold reached
+ supplementaryServiceInteractionNotAllowed |
+
+ -- other supplementary service prohibits hold
+ undefined -- undefined reason--}
+ CODE local:103
+}
+
+RemoteHoldArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+RemoteHoldRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+remoteRetrieve OPERATION ::=
+ { -- sent from holding to held H.323 endpoint to invoke retrieval of remote-end call hold feature
+
+ ARGUMENT RemoteRetrieveArg
+ OPTIONAL TRUE
+ RESULT RemoteRetrieveRes
+ OPTIONAL TRUE
+ ERRORS
+ {invalidCallState |
+
+ -- Call to which retrieve request applies is not in state Hold_RE_Held
+ undefined -- undefined reason--}
+ CODE local:104
+}
+
+RemoteRetrieveArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+RemoteRetrieveRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+MixedExtension ::= CHOICE {
+ extension Extension{{ExtensionSet}},
+ nonStandardData NonStandardParameter
+}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+-- Actual values defined by individual manufacturers
+undefined ERROR ::= {
+ PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
+ OPTIONAL TRUE
+ CODE local:2002
+}
+
+END -- of Call-Hold-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Intrusion-Operations.asn b/epan/dissectors/asn1/h450/Call-Intrusion-Operations.asn
new file mode 100644
index 0000000000..8107615c4f
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Intrusion-Operations.asn
@@ -0,0 +1,209 @@
+-- Call-Intrusion-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.11/2001/Call-Intrusion-Operations.asn
+--
+
+-- Module Call-Intrusion-Operations (H.450.11:03/2001)
+Call-Intrusion-Operations {itu-t recommendation h 450 11 version1(0)
+ call-intrusion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ CallIdentifier
+ FROM H323-MESSAGES -- see H.225.0
+
+ MixedExtension, undefined
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ callWaiting
+ FROM Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
+ call-waiting-operations(0)}
+ cfbOverride, remoteUserAlerting
+ FROM Call-Offer-Operations {itu-t recommendation h 450 10 version1(0)
+ call-offer-operations(0)};
+
+H323CallIntrusionOperations OPERATION ::=
+ {callIntrusionRequest | callIntrusionGetCIPL | callIntrusionIsolate |
+ callIntrusionForcedRelease | callIntrusionWOBRequest |
+ callIntrusionSilentMonitor | callIntrusionNotification | cfbOverride |
+ remoteUserAlerting | callWaiting}
+
+-- callWaiting is only used for interaction with Call Transfer
+callIntrusionRequest OPERATION ::= {
+ ARGUMENT CIRequestArg
+ RESULT CIRequestRes
+ ERRORS
+ {notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
+ undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:43
+}
+
+callIntrusionGetCIPL OPERATION ::= {
+ ARGUMENT CIGetCIPLOptArg
+ OPTIONAL TRUE
+ RESULT CIGetCIPLRes
+ ALWAYS RESPONDS FALSE
+ CODE local:44
+}
+
+callIntrusionIsolate OPERATION ::= {
+ ARGUMENT CIIsOptArg
+ OPTIONAL TRUE
+ RESULT CIIsOptRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:45
+}
+
+callIntrusionForcedRelease OPERATION ::= {
+ ARGUMENT CIFrcRelArg
+ OPTIONAL TRUE
+ RESULT CIFrcRelOptRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
+ undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:46
+}
+
+callIntrusionWOBRequest OPERATION ::= {
+ ARGUMENT CIWobOptArg
+ OPTIONAL TRUE
+ RESULT CIWobOptRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:47
+}
+
+callIntrusionSilentMonitor OPERATION ::= {
+ ARGUMENT CISilentArg
+ RESULT CISilentOptRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
+ undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:116
+}
+
+callIntrusionNotification OPERATION ::= {
+ ARGUMENT CINotificationArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:117
+}
+
+CIRequestArg ::= SEQUENCE {
+ ciCapabilityLevel CICapabilityLevel,
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIRequestRes ::= SEQUENCE {
+ ciStatusInformation CIStatusInformation,
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIGetCIPLOptArg ::= SEQUENCE {
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIGetCIPLRes ::= SEQUENCE {
+ ciProtectionLevel CIProtectionLevel,
+ silentMonitoringPermitted NULL OPTIONAL,
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIIsOptArg ::= SEQUENCE {
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIIsOptRes ::= SEQUENCE {
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIFrcRelArg ::= SEQUENCE {
+ ciCapabilityLevel CICapabilityLevel,
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIFrcRelOptRes ::= SEQUENCE {
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIWobOptArg ::= SEQUENCE {
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIWobOptRes ::= SEQUENCE {
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CISilentArg ::= SEQUENCE {
+ ciCapabilityLevel CICapabilityLevel,
+ specificCall CallIdentifier OPTIONAL,
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CISilentOptRes ::= SEQUENCE {
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CINotificationArg ::= SEQUENCE {
+ ciStatusInformation CIStatusInformation,
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CICapabilityLevel ::= INTEGER {
+ intrusionLowCap(1), intrusionMediumCap(2), intrusionHighCap(3)}(1..3)
+
+CIProtectionLevel ::= INTEGER {
+ lowProtection(0), mediumProtection(1), highProtection(2), fullProtection(3)
+}(0..3)
+
+CIStatusInformation ::= CHOICE {
+ callIntrusionImpending NULL,
+ callIntruded NULL,
+ callIsolated NULL,
+ callForceReleased NULL,
+ callIntrusionComplete NULL,
+ callIntrusionEnd NULL,
+ ...
+}
+
+notBusy ERROR ::= {CODE local:1009
+} -- used when the called user is not busy
+
+temporarilyUnavailable ERROR ::= {CODE local:1000
+} -- used when conditions for invocation of SS-CI
+
+-- are momentarily not met
+notAuthorized ERROR ::= {CODE local:1007
+} -- used when a SS-CI request is rejected
+
+-- because of insufficient CICL or if silent
+-- monitoring is not permitted
+END -- of Call-Intrusion-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Offer-Operations.asn b/epan/dissectors/asn1/h450/Call-Offer-Operations.asn
new file mode 100644
index 0000000000..af3aa51697
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Offer-Operations.asn
@@ -0,0 +1,71 @@
+-- Call-Offer-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.10/2001/Call-Offer-Operations.asn
+--
+
+-- Module Call-Offer-Operations (H.450.10:03/2001)
+Call-Offer-Operations {itu-t recommendation h 450 10 version1(0)
+ call-offer-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)}
+ callWaiting
+ FROM Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
+ call-waiting-operations(0)};
+
+H323CallOfferOperations OPERATION ::=
+ {callOfferRequest | callWaiting | remoteUserAlerting | cfbOverride}
+
+callOfferRequest OPERATION ::= -- sent from calling to called endpoint
+ {
+ ARGUMENT CoReqOptArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:34
+}
+
+remoteUserAlerting OPERATION ::= -- sent from called to calling endpoint
+ {
+ ARGUMENT RUAlertOptArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:115
+}
+
+cfbOverride OPERATION ::= -- sent from calling to called endpoint
+ {
+ ARGUMENT CfbOvrOptArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:49
+}
+
+CoReqOptArg ::= SEQUENCE {
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+RUAlertOptArg ::= SEQUENCE {
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CfbOvrOptArg ::= SEQUENCE {
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+END -- of Call-Offer-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Park-Pickup-Operations.asn b/epan/dissectors/asn1/h450/Call-Park-Pickup-Operations.asn
new file mode 100644
index 0000000000..d8a0f9a566
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Park-Pickup-Operations.asn
@@ -0,0 +1,302 @@
+-- Call-Park-Pickup-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.5/1999/Call-Park-Pickup-Operations.asn
+--
+
+-- Module Call-Park-Pickup-Operations (H.450.5:05/1999)
+Call-Park-Pickup-Operations {itu-t recommendation h 450 5 version1(0)
+ call-park-pickup-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ notAvailable, invalidCallState, resourceUnavailable,
+ supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ EndpointAddress
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)}
+ NonStandardParameter, CallIdentifier
+ FROM H323-MESSAGES; -- see H.225.0
+
+CallParkPickupOperations OPERATION ::=
+ {cpRequest | cpSetup | groupIndicationOn | groupIndicationOff | pickrequ |
+ pickup | pickExe | cpNotify | cpickupNotify}
+
+cpRequest OPERATION ::=
+ { -- sent from parking endpoint to the parked endpoint to invoke SS-PARK
+ ARGUMENT CpRequestArg
+ RESULT CpRequestRes
+ ERRORS
+ {notAvailable |
+
+ -- feature not available in combination with the basic service
+ invalidCallState | -- call park not possible in current call state
+ resourceUnavailable | -- maximum number of parked calls reached
+ supplementaryServiceInteractionNotAllowed |
+
+ -- other supplementary service prohibits call park invocation
+ undefined -- undefined reason--}
+ CODE local:106
+}
+
+CpRequestArg ::= SEQUENCE {
+ parkingNumber EndpointAddress,
+ parkedNumber EndpointAddress,
+ parkedToNumber EndpointAddress,
+ parkedToPosition ParkedToPosition OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CpRequestRes ::= SEQUENCE {
+ parkedToNumber EndpointAddress,
+ parkedToPosition ParkedToPosition OPTIONAL,
+ parkCondition ParkCondition,
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+cpSetup OPERATION ::= { -- sent from parked endpoint to the parked-to endpoint
+ ARGUMENT CpSetupArg
+ RESULT CpSetupRes
+ ERRORS
+ {notAvailable |
+
+ -- feature not available in combination with the basic service
+ invalidCallState | -- call park not possible in current call state
+ resourceUnavailable | -- maximum number of parked calls reached
+ supplementaryServiceInteractionNotAllowed |
+
+ -- other supplementary service prohibits call park invocation
+ undefined -- undefined reason --}
+ CODE local:107
+}
+
+CpSetupArg ::= SEQUENCE {
+ parkingNumber EndpointAddress,
+ parkedNumber EndpointAddress,
+ parkedToNumber EndpointAddress,
+ parkedToPosition ParkedToPosition OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CpSetupRes ::= SEQUENCE {
+ parkedToNumber EndpointAddress,
+ parkedToPosition ParkedToPosition OPTIONAL,
+ parkCondition ParkCondition,
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+groupIndicationOn OPERATION ::=
+ { -- sent from the parked-to endpoint/alerting endpoint to the group members
+ ARGUMENT GroupIndicationOnArg
+ RESULT GroupIndicationOnRes
+ ERRORS {undefined -- undefined reason--}
+ CODE local:108
+}
+
+GroupIndicationOnArg ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of the call to be retrieved (parked or alerting call);
+ -- its value equals the value of the CallIdentifier as assigned for the parked/
+ -- alerting call within Setup-UUIE
+ groupMemberUserNr EndpointAddress,
+ retrieveCallType CallType,
+ partyToRetrieve EndpointAddress, -- Parked or Calling User
+ retrieveAddress EndpointAddress, -- parked-to or alerting entity address
+
+ -- (may also be a GK, see 9.2)
+ parkPosition ParkedToPosition OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+GroupIndicationOnRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+groupIndicationOff OPERATION ::=
+ { -- sent from the parked-to endpoint/alerting endpoint to the group members
+ ARGUMENT GroupIndicationOffArg
+ RESULT GroupIndicationOffRes
+ ERRORS
+ {invalidCallState | -- group indication is not on
+ undefined -- undefined reason--}
+ CODE local:109
+}
+
+GroupIndicationOffArg ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of the call that has been picked up (parked or alerting call)
+ groupMemberUserNr EndpointAddress,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+GroupIndicationOffRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+pickrequ OPERATION ::= { -- sent from the picking-up user to the parked-to/
+ -- alerting endpoint as part of the SS-PICKUP invocation
+ ARGUMENT PickrequArg
+ RESULT PickrequRes
+ ERRORS
+ {undefined | -- undefined reason
+
+ callAlreadyPickedUp -- call has already been picked up by another user --}
+ CODE local:110
+}
+
+PickrequArg ::= SEQUENCE {
+ picking-upNumber EndpointAddress,
+ callPickupId CallIdentifier OPTIONAL,
+ -- identification of the call to be picked up (parked or alerting call), if known
+ partyToRetrieve EndpointAddress OPTIONAL, -- Parked or Calling User
+ retrieveAddress EndpointAddress, -- parked-to or alerting entity address
+ parkPosition ParkedToPosition OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+PickrequRes ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of the call that is being picked up (parked or alerting call),
+ -- if not sent in pickrequ invoke, it is assigned at the parked-to/alerting
+ -- endpoint and reflects the CallIdentification of the parked/alerting call for
+ -- later association with the pickExe invoke APDU.
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+pickup OPERATION ::=
+ { -- sent from the parked-to/alerting endpoint to the parked/calling endpoint
+ -- after the picking-up user has invoked SS-PICKUP. The picking-up user may
+ -- be local (i.e. parked-to/alerting endpoint equals picking-up
+ -- endpoint) or may be remote (i.e. picking-up user is located at a
+ -- remote picking-up endpoint having sent pickrequ invoke APDU to the
+ -- parked-to/alerting endpoint).
+ ARGUMENT PickupArg
+ RESULT PickupRes
+ ERRORS
+ {undefined | -- undefined reason
+
+ callAlreadyPickedUp -- call has already been picked up by another user --}
+ CODE local:111
+}
+
+PickupArg ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of this call to be picked up (parked or alerting call);
+ -- equals the CallIdentifier value that was assigned to this call in Setup-UUIE
+ picking-upNumber EndpointAddress,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+PickupRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+pickExe OPERATION ::=
+ { -- sent from the parked/calling endpoint to the picking-up endpoint
+ ARGUMENT PickExeArg
+ RESULT PickExeRes
+ ERRORS
+ {undefined | -- undefined reason
+
+ callPickupIdInvalid
+ -- value not matching with the previous SS-PICKUP request
+ }
+ CODE local:112
+}
+
+PickExeArg ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of the parked/alerting call to be picked-up;
+ -- required at picking-up endpoint to associate the SS-PICKUP invoked with this
+ -- incoming setup message carrying the pickExe invoke APDU.
+ picking-upNumber EndpointAddress,
+ partyToRetrieve EndpointAddress, -- Parked or Calling User
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+PickExeRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+cpNotify OPERATION ::=
+ { -- sent from the parking-to to parked endpoint in case of local park.
+ ARGUMENT CpNotifyArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:113
+}
+
+CpNotifyArg ::= SEQUENCE {
+ parkingNumber EndpointAddress OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+cpickupNotify OPERATION ::=
+ { -- sent from parked-to to parked endpoint in case of SS-PICKUP from local park
+
+ ARGUMENT CpickupNotifyArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:114
+}
+
+CpickupNotifyArg ::= SEQUENCE {
+ picking-upNumber EndpointAddress OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+ParkedToPosition ::= INTEGER(0..65535)
+
+ParkCondition ::= ENUMERATED {
+ unspecified(0), parkedToUserIdle(1), parkedToUserBusy(2), parkedToGroup(3),
+ ...
+ }
+
+CallType ::= ENUMERATED {parkedCall(0), alertingCall(1), ...
+ }
+
+callPickupIdInvalid ERROR ::= {CODE local:2000
+}
+
+callAlreadyPickedUp ERROR ::= {CODE local:2001
+}
+
+undefined ERROR ::= {
+ PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
+ OPTIONAL TRUE
+ CODE local:2002
+}
+
+END -- of Call-Park-Pickup-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Transfer-Operations.asn b/epan/dissectors/asn1/h450/Call-Transfer-Operations.asn
new file mode 100644
index 0000000000..cbe7cd6730
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Transfer-Operations.asn
@@ -0,0 +1,244 @@
+-- Call-Transfer-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.2/1998/Call-Transfer-Operations.asn
+--
+
+-- Module Call-Transfer-Operations (H.450.2:02/1998)
+Call-Transfer-Operations {itu-t recommendation h 450 2 version1(0)
+ call-transfer-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ notAvailable, supplementaryServiceInteractionNotAllowed, invalidCallState
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ EndpointAddress, PartySubaddress
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ NonStandardParameter
+ FROM H323-MESSAGES -- see H.225.0
+
+ H225InformationElement
+ FROM H225-generic-parameters-definition {itu-t recommendation h 450
+ 1 version1(0) h225-generic-parameters(6)};
+
+H323CallTransferOperations OPERATION ::=
+ {callTransferIdentify | callTransferAbandon | callTransferInitiate |
+ callTransferSetup | callTransferUpdate | subaddressTransfer |
+ callTransferComplete | callTransferActive}
+
+callTransferIdentify OPERATION ::= {
+ -- sent from transferring endpoint to transferred-to endpoint
+ ARGUMENT DummyArg
+ OPTIONAL TRUE
+ RESULT CTIdentifyRes
+ ERRORS
+ {notAvailable | invalidCallState |
+ supplementaryServiceInteractionNotAllowed | unspecified}
+ CODE local:7
+}
+
+callTransferAbandon OPERATION ::= {
+ -- sent from transferring to transferred-to endpoint
+ ARGUMENT DummyArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:8
+}
+
+callTransferInitiate OPERATION ::= {
+ -- sent from transfering to transferred endpoint
+ ARGUMENT CTInitiateArg
+ RESULT DummyRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | invalidCallState | invalidReroutingNumber |
+ unrecognizedCallIdentity | establishmentFailure |
+ supplementaryServiceInteractionNotAllowed | unspecified}
+ CODE local:9
+}
+
+callTransferSetup OPERATION ::= {
+ -- sent from transferred to transferred-to endpoint
+ ARGUMENT CTSetupArg
+ RESULT DummyRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | invalidCallState | invalidReroutingNumber |
+ unrecognizedCallIdentity | unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local:10
+}
+
+callTransferUpdate OPERATION ::= {
+ -- may be sent from transferred to transferred-to endpoint (in SETUP) and
+ -- vice versa (in CONNECT)
+ ARGUMENT CTUpdateArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:13
+}
+
+subaddressTransfer OPERATION ::= {
+ -- may be sent from transferred to the transferred-to endpoint and vice versa
+ ARGUMENT SubaddressTransferArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:14
+}
+
+callTransferComplete OPERATION ::= {
+ -- sent from GK to the transferred endpoint, if GK performs call transfer
+ -- (see 10.6.1).
+ ARGUMENT CTCompleteArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:12
+}
+
+callTransferActive OPERATION ::= {
+ -- sent from gatekeeper to the transferred endpoint, in case of transfer ringing
+ -- after transferred-to endpoint has answered the call (only in case of
+ -- transfer performed by gatekeeper)
+ ARGUMENT CTActiveArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:11
+}
+
+DummyArg ::= CHOICE {
+ extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter
+}
+
+DummyRes ::= CHOICE {
+ extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter
+}
+
+CTInitiateArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ reroutingNumber EndpointAddress,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CTSetupArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ transferringNumber EndpointAddress OPTIONAL,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CTIdentifyRes ::= SEQUENCE {
+ callIdentity CallIdentity,
+ reroutingNumber EndpointAddress,
+ resultExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CTUpdateArg ::= SEQUENCE {
+ redirectionNumber EndpointAddress,
+ redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
+ basicCallInfoElements H225InformationElement OPTIONAL,
+ -- Information element
+ -- Progress indicator may be conveyed
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+SubaddressTransferArg ::= SEQUENCE {
+ redirectionSubaddress PartySubaddress,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CTCompleteArg ::= SEQUENCE {
+ endDesignation EndDesignation,
+ redirectionNumber EndpointAddress,
+ -- number of new connected user
+ basicCallInfoElements H225InformationElement OPTIONAL,
+ -- Information element Progress indicator may be conveyed
+ redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
+ callStatus CallStatus DEFAULT answered,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+EndDesignation ::= ENUMERATED {primaryEnd(0), secondaryEnd(1), ...
+ }
+
+CallStatus ::= ENUMERATED {answered(0), alerting(1), ...
+ }
+
+CTActiveArg ::= SEQUENCE {
+ connectedAddress EndpointAddress,
+ -- number of new connected user
+ basicCallInfoElements H225InformationElement OPTIONAL,
+ -- Information element Progress indicator may be conveyed
+ connectedInfo BMPString(SIZE (1..128)) OPTIONAL,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CallIdentity ::= NumericString(SIZE (0..4))
+
+-- size 0 means 'empty'
+ExtensionSeq ::= SEQUENCE OF Extension{{ExtensionSet}}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+-- Actual values defined by individual manufacturers
+unspecified ERROR ::= {
+ PARAMETER
+ CHOICE {extension Extension{{ExtensionSet}},
+ nonStandard NonStandardParameter}
+ CODE local:1008
+}
+
+invalidReroutingNumber ERROR ::= {
+ -- used when establishment of the new connection fails
+ -- because the reroutingNumber is not a valid alias address
+ CODE local:1004
+}
+
+unrecognizedCallIdentity ERROR ::= {
+ -- used when establishment of the new connection fails because it
+ -- could not be associated with a SS-CT entity at the
+ -- transferred-to endpoint
+ CODE local:1005
+}
+
+establishmentFailure ERROR ::= {
+ -- used when establishment of the new connection fails and
+ -- no other error applies
+ CODE local:1006
+}
+
+END -- of Call-Transfer-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Waiting-Operations.asn b/epan/dissectors/asn1/h450/Call-Waiting-Operations.asn
new file mode 100644
index 0000000000..fa2e1de712
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Waiting-Operations.asn
@@ -0,0 +1,45 @@
+-- Call-Waiting-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.6/1999/Call-Waiting-Operations.asn
+--
+
+-- Module Call-Waiting-Operations (H.450.6:05/1999)
+Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
+ call-waiting-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)};
+
+CallWaitingOperations OPERATION ::= {callWaiting}
+
+callWaiting OPERATION ::=
+ { -- sent from served endpoint to the calling endpoint in ALERTING message
+ ARGUMENT CallWaitingArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:105
+}
+
+CallWaitingArg ::= SEQUENCE {
+ nbOfAddWaitingCalls INTEGER(0..255) OPTIONAL,
+ -- indicates the number of waiting calls at the served user
+ -- in addition to the call to which this operation applies.
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+END -- of Call-Waiting-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Common-Information-Operations.asn b/epan/dissectors/asn1/h450/Common-Information-Operations.asn
new file mode 100644
index 0000000000..8fb8e35e21
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Common-Information-Operations.asn
@@ -0,0 +1,149 @@
+-- Common-Information-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.12/2001/Common-Information-Operations.asn
+--
+
+-- Module Common-Information-Operations (H.450.12:07/2001)
+Common-Information-Operations {itu-t recommendation h 450 12 version1(0)
+ common-information-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ MixedExtension, undefined
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)};
+
+H323CommonInformationOperations OPERATION ::= {cmnRequest | cmnInform}
+
+cmnRequest OPERATION ::= {
+ ARGUMENT DummyArg
+ OPTIONAL TRUE
+ RESULT CmnArg
+ ERRORS {undefined}
+ CODE local:84
+}
+
+cmnInform OPERATION ::= {
+ ARGUMENT CmnArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:85
+}
+
+CmnArg ::= SEQUENCE {
+ featureList FeatureList OPTIONAL,
+ featureValues FeatureValues OPTIONAL,
+ featureControl FeatureControl OPTIONAL,
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+DummyArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL
+}
+
+FeatureList ::= SEQUENCE {
+ -- indicates capabilities of the endpoint sending the FeatureList
+ ssCFreRoutingSupported NULL OPTIONAL, -- Call Forwarding rerouting
+
+ -- supported meaningful only in
+ -- forward direction during call
+ -- establishment
+ ssCTreRoutingSupported NULL OPTIONAL, -- Call Transfer rerouting
+
+ -- supported meaningful both in
+ -- forward & backward direction
+ -- during call establishment
+ ssCCBSPossible NULL OPTIONAL, -- CCBS possible meaningful only
+
+ -- in backward direction before
+ -- receipt of ALERTING/CONNECT
+ ssCCNRPossible NULL OPTIONAL, -- CCNR possible meaningful only
+
+ -- in backward direction before
+ -- receipt of CONNECT
+ ssCOSupported NULL OPTIONAL, -- Call Offer supported
+
+ -- meaningful only in backward
+ -- direction during call
+ -- establishment
+ -- Call Intrusion
+ ssCIForcedReleaseSupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ ssCIIsolationSupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ ssCIWaitOnBusySupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ ssCISilentMonitoringSupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ ssCIConferenceSupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ -- Call Hold
+ ssCHFarHoldSupported NULL OPTIONAL, -- meaningful in both
+
+ -- directions
+ -- Message Waiting Callback
+ ssMWICallbackSupported NULL OPTIONAL, -- meaningful in backward
+
+ -- direction
+ -- meaningful both in
+ -- forward & backward
+ -- direction during call
+ -- establishment
+ -- Call Park
+ ssCPCallParkSupported NULL OPTIONAL, -- meaningful in both
+
+ -- directions
+ ...
+}
+
+FeatureValues ::= SEQUENCE {
+ partyCategory PartyCategory OPTIONAL,
+ ssCIprotectionLevel SSCIProtectionLevel OPTIONAL,
+ -- Supplementary Service Call Intrusion Protection level
+ -- meaningful both in forward and backward direction; inclusion
+ -- indicates support of SS-CI as an unwanted endpoint (forward
+ -- direction) or as a Terminating Endpoint (backward direction),
+ -- as well as the applicable protection level.
+ ...
+}
+
+PartyCategory ::= ENUMERATED {unknown, extension, attendant, emergExt, ...
+ }
+
+SSCIProtectionLevel ::= INTEGER(0..3)
+
+FeatureControl ::= SEQUENCE {
+ ssCHDoNotHold NULL OPTIONAL, -- meaningful in both directions
+
+ -- Sending endpoint shall not be held
+ ssCTDoNotTransfer NULL OPTIONAL, -- meaningful in both directions
+
+ -- sending endpoint shall not be transferred
+ ssMWICallbackCall NULL OPTIONAL, -- meaningful only in SETUP
+
+ -- indicating a callback call
+ ssCISilentMonitorPermitted NULL OPTIONAL, -- unwanted endpoint
+
+ -- allows for
+ -- silent monitoring
+ -- meaningful in forward and backward direction
+ ...
+}
+
+END -- of Common-Information-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/H225-generic-parameters-definition.asn b/epan/dissectors/asn1/h450/H225-generic-parameters-definition.asn
new file mode 100644
index 0000000000..adb22cda57
--- /dev/null
+++ b/epan/dissectors/asn1/h450/H225-generic-parameters-definition.asn
@@ -0,0 +1,17 @@
+-- H225-generic-parameters-definition.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H225-generic-parameters-definition.asn
+--
+
+-- Module H225-generic-parameters-definition (H.450.1:02/1998)
+H225-generic-parameters-definition {itu-t recommendation h 450 1 version1(0)
+ h225-generic-parameters(6)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+H225InformationElement ::= OCTET STRING
+
+END -- of H225 Generic parameters definition
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/H4501-General-Error-List.asn b/epan/dissectors/asn1/h450/H4501-General-Error-List.asn
new file mode 100644
index 0000000000..2e9f9ec344
--- /dev/null
+++ b/epan/dissectors/asn1/h450/H4501-General-Error-List.asn
@@ -0,0 +1,100 @@
+-- H4501-General-Error-List.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H4501-General-Error-List.asn
+--
+
+-- Module H4501-General-Error-List (H.450.1:02/1998)
+H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+-- The following errors are based on the error definitions of Recommendation Q.950.
+userNotSubscribed ERROR ::= {CODE local:0
+}
+
+-- is an indication that the user has not subscribed to this service.
+rejectedByNetwork ERROR ::= {CODE local:1
+}
+
+-- is an indication that the requested service is rejected by the network
+-- (e.g. gatekeeper).
+rejectedByUser ERROR ::= {CODE local:2
+}
+
+-- is an indication that the requested service is provided by the
+-- network but that the remote user has rejected this service request.
+notAvailable ERROR ::= {CODE local:3
+}
+
+-- is an indication that the user has subscribed to this service but the
+-- requested service is not available combined with the basic service or
+-- the other services (e.g. operation).
+insufficientInformation ERROR ::= {CODE local:5
+}
+
+-- is an indication that the content of operation argument is
+-- incomplete, or absent entirely.
+invalidServedUserNumber ERROR ::= {CODE local:6
+}
+
+-- is an indication that the requested service cannot be performed
+-- because of the usage of an invalid served user number.
+invalidCallState ERROR ::= {CODE local:7
+}
+
+-- is an indication that no match exists between the service request and
+-- the valid H.225.0 call state, this applies also to invalid
+-- auxiliary states or an invalid combination of H.225.0 call states and
+-- auxiliary states.
+basicServiceNotProvided ERROR ::= {CODE local:8
+}
+
+-- is an indication that the service request is directed to a Basic
+-- Service which is not provided (e.g. this return error value is used
+-- in cases where a supplementary service is to be invoked with a SETUP
+-- message but indicating the wrong Basic Service).
+notIncomingCall ERROR ::= {CODE local:9
+}
+
+-- is an indication that the service request has been invoked for an
+-- outgoing call, which is not permitted for that service.
+supplementaryServiceInteractionNotAllowed ERROR ::= {CODE local:10
+}
+
+-- is an indication that the Service request is not permitted in
+-- combination with either a further requested or active supplementary
+-- service.
+resourceUnavailable ERROR ::= {CODE local:11
+}
+
+-- is an indication that the service provider has temporarily no
+-- resource available for the provision of the requested service.
+callFailure ERROR ::= {CODE local:25
+}
+
+-- is an indication that the requested supplementary service was not executable by virtue
+-- of a Basic Call Failure. The parameter is included under circumstances where the
+-- call failure was remote from the local gatekeeper interface over which the error is to
+-- be sent. For example when:
+-- a) no H.225.0 RELEASE COMPLETE message is provided locally, or
+-- b) the cause information element included in the RELEASE COMPLETE
+-- message represents only the reason for local basic call clearing.
+-- In these cases the parameter value represents the clearing cause included in the
+-- remote clearing procedure.
+proceduralError ERROR ::= {CODE local:43
+}
+
+-- is an indication that a transport message (e.g. SETUP)
+-- is received which has one or more operation APDUs which have a valid
+-- content but which are not specified as valid information content of
+-- the transport message used.
+END -- of H4501-General-Error-List
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn b/epan/dissectors/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn
new file mode 100644
index 0000000000..85904389af
--- /dev/null
+++ b/epan/dissectors/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn
@@ -0,0 +1,72 @@
+-- H4501-Supplementary-ServiceAPDU-Structure.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H4501-Supplementary-ServiceAPDU-Structure.asn
+--
+
+-- Module H4501-Supplementary-ServiceAPDU-Structure (H.450.1:02/1998)
+H4501-Supplementary-ServiceAPDU-Structure {itu-t recommendation h 450
+ 1 version1(0) h4501-facility-information-structure(2)} DEFINITIONS AUTOMATIC
+TAGS ::=
+BEGIN
+
+IMPORTS
+ AliasAddress
+ FROM H323-MESSAGES -- see H.225.0 V2
+
+ OPERATION, ROS{}, InvokeId
+ FROM Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
+ remote-operations-apdus(11)};
+
+H4501SupplementaryService ::= SEQUENCE {
+ networkFacilityExtension NetworkFacilityExtension OPTIONAL, -- see 8.1
+ interpretationApdu InterpretationApdu OPTIONAL, -- see 8.2
+ serviceApdu ServiceApdus, -- H.450.x supplementary services
+ ...
+}
+
+NetworkFacilityExtension ::= SEQUENCE {
+ sourceEntity EntityType,
+ sourceEntityAddress AddressInformation OPTIONAL,
+ destinationEntity EntityType,
+ destinationEntityAddress AddressInformation OPTIONAL,
+ ...
+}
+
+EntityType ::= CHOICE {endpoint NULL,
+ anyEntity NULL,
+ ...
+}
+
+AddressInformation ::= AliasAddress
+
+InterpretationApdu ::= CHOICE {
+ discardAnyUnrecognizedInvokePdu NULL,
+ clearCallIfAnyInvokePduNotRecognized NULL,
+ -- this value also applies to Call independent signalling connections
+ rejectAnyUnrecognizedInvokePdu NULL,
+ -- this coding is implied by the absence of an interpretation APDU.
+ ...
+}
+
+ServiceApdus ::= CHOICE {
+ rosApdus
+ SEQUENCE SIZE (1..MAX) OF
+ ROS{{InvokeIdSet}, {OperationSet}, {OperationSet}},
+ -- see 8.3; other alternatives may be defined in future versions
+ ...
+}
+
+InvokeIdSet INTEGER ::= {InvokeIDs, ...}
+
+InvokeIDs ::= INTEGER(0..65535)
+
+OperationSet OPERATION ::=
+ {...}
+
+-- actual values are defined by individual supplementary service specifications
+-- (e.g. H.450.x or manufacturer specific)
+END -- of H4501- Supplementary-ServiceAPDU-Structure
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Makefile.am b/epan/dissectors/asn1/h450/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h450/Makefile.common b/epan/dissectors/asn1/h450/Makefile.common
new file mode 100644
index 0000000000..6b2b0382ca
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Makefile.common
@@ -0,0 +1,74 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=h450
+
+# need empty -p <proto> option, default is -p $(PROTOCOL_NAME)
+PROTO_OPT =
+
+EXT_ASN_FILE_LIST =
+
+H450_ASN = \
+ H4501-Supplementary-ServiceAPDU-Structure.asn \
+ Addressing-Data-Elements.asn \
+ H225-generic-parameters-definition.asn \
+ Manufacturer-specific-service-extension-definition.asn \
+ H4501-General-Error-List.asn
+
+H450_OP_ASN = \
+ Call-Transfer-Operations.asn \
+ Call-Diversion-Operations.asn \
+ Call-Hold-Operations.asn \
+ Call-Park-Pickup-Operations.asn \
+ Call-Waiting-Operations.asn \
+ Message-Waiting-Indication-Operations.asn \
+ Name-Operations.asn \
+ Call-Completion-Operations.asn \
+ Call-Offer-Operations.asn \
+ Call-Intrusion-Operations.asn \
+ Common-Information-Operations.asn
+
+ASN_FILE_LIST = \
+ $(H450_ASN) \
+ $(H450_OP_ASN)
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS=
+
+EXTRA_CNF = \
+ $(builddir)/../h225/h225-exp.cnf \
+ $(builddir)/../h450-ros/h450-ros-exp.cnf
+
+$(builddir)/../h225/h225-exp.cnf:
+ (cd $(builddir)/../h225 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../h450-ros/h450-ros-exp.cnf:
+ (cd $(builddir)/../h450-ros && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/h450/Makefile.nmake b/epan/dissectors/asn1/h450/Makefile.nmake
new file mode 100644
index 0000000000..eb68bb17d6
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Makefile.nmake
@@ -0,0 +1,31 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+checkapi:
+ $(PERL) ../../tools/checkAPIs.pl -build \
+ $(PROTOCOL_NAME).cnf \
+ packet-$(PROTOCOL_NAME)-template.c
+
diff --git a/epan/dissectors/asn1/h450/Manufacturer-specific-service-extension-definition.asn b/epan/dissectors/asn1/h450/Manufacturer-specific-service-extension-definition.asn
new file mode 100644
index 0000000000..80a591d4df
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Manufacturer-specific-service-extension-definition.asn
@@ -0,0 +1,31 @@
+-- Manufacturer-specific-service-extension-definition.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Manufacturer-specific-service-extension-definition.asn
+--
+
+-- Module Manufacturer-specific-service-extension-definition (H.450.1:02/1998)
+Manufacturer-specific-service-extension-definition {itu-t recommendation
+ h 450 1 version1(0) msi-definition(18)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXTENSION ::= CLASS {&ArgumentType ,
+ &extensionId OBJECT IDENTIFIER
+}WITH SYNTAX {ARGUMENT &ArgumentType
+ IDENTIFIER &extensionId
+}
+
+Extension{EXTENSION:ExtensionSet} ::= SEQUENCE {
+ extensionId EXTENSION.&extensionId({ExtensionSet}),
+ extensionArgument EXTENSION.&ArgumentType({ExtensionSet}{@extensionId})
+}
+
+-- ExtensionSet is a set of objects of class EXTENSION.
+-- Actual values of ExtensionSet are defined by the individual manufacturers.
+-- Element extensionId is constrained to be the identifier of an object from that set.
+-- Element extensionArgument is constrained to be the argument type for that particular
+-- object.
+END -- of Manufacturer-specific-service-extension-definition
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Message-Waiting-Indication-Operations.asn b/epan/dissectors/asn1/h450/Message-Waiting-Indication-Operations.asn
new file mode 100644
index 0000000000..89d3d20a9d
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Message-Waiting-Indication-Operations.asn
@@ -0,0 +1,169 @@
+-- Message-Waiting-Indication-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.7/1999/Message-Waiting-Indication-Operations.asn
+--
+
+-- Module Message-Waiting-Indication-Operations (H.450.7:05/1999)
+Message-Waiting-Indication-Operations {itu-t recommendation h 450 7 version1(0)
+ message-waiting-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ userNotSubscribed, invalidServedUserNumber, basicServiceNotProvided
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ EndpointAddress
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)};
+
+H323-MWI-Operations OPERATION ::=
+ {mwiActivate | mwiDeactivate | mwiInterrogate}
+
+mwiActivate OPERATION ::= {
+ ARGUMENT MWIActivateArg
+ RESULT DummyRes
+ ERRORS
+ {userNotSubscribed | invalidServedUserNumber | basicServiceNotProvided |
+ undefined}
+ CODE local:80
+}
+
+mwiDeactivate OPERATION ::= {
+ ARGUMENT MWIDeactivateArg
+ RESULT DummyRes
+ ERRORS
+ {userNotSubscribed | invalidServedUserNumber | basicServiceNotProvided |
+ undefined}
+ CODE local:81
+}
+
+mwiInterrogate OPERATION ::= {
+ ARGUMENT MWIInterrogateArg
+ RESULT MWIInterrogateRes
+ ERRORS
+ {userNotSubscribed | invalidServedUserNumber | notActivated |
+ invalidMsgCentreId | undefined}
+ CODE local:82
+}
+
+MWIActivateArg ::= SEQUENCE {
+ servedUserNr EndpointAddress,
+ basicService BasicService,
+ msgCentreId MsgCentreId OPTIONAL,
+ nbOfMessages NbOfMessages OPTIONAL,
+ originatingNr EndpointAddress OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ priority INTEGER(0..9) OPTIONAL,
+ -- the value 0 means the highest priority and 9 the lowest
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+DummyRes ::= SEQUENCE SIZE (0..255) OF MixedExtension
+
+MWIDeactivateArg ::= SEQUENCE {
+ servedUserNr EndpointAddress,
+ basicService BasicService,
+ msgCentreId MsgCentreId OPTIONAL,
+ callbackReq BOOLEAN OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+MWIInterrogateArg ::= SEQUENCE {
+ servedUserNr EndpointAddress,
+ basicService BasicService,
+ msgCentreId MsgCentreId OPTIONAL,
+ callbackReq BOOLEAN OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+MWIInterrogateRes ::= SEQUENCE SIZE (1..64) OF MWIInterrogateResElt
+
+MWIInterrogateResElt ::= SEQUENCE {
+ basicService BasicService,
+ msgCentreId MsgCentreId OPTIONAL,
+ nbOfMessages NbOfMessages OPTIONAL,
+ originatingNr EndpointAddress OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ priority INTEGER(0..9) OPTIONAL,
+ -- the value 0 means the highest priority and 9 the lowest
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+MsgCentreId ::= CHOICE {
+ -- only partyNumber provides a callable identification
+ integer INTEGER(0..65535),
+ partyNumber EndpointAddress,
+ numericString NumericString(SIZE (1..10))
+}
+
+NbOfMessages ::= INTEGER(0..65535)
+
+TimeStamp ::= GeneralizedTime(SIZE (12..19))
+
+-- a VisibleString representation of date and time following ISO 8601
+-- containing:
+-- - the (local) date in 8 digits (YYYYMMDD),
+-- - followed by (local) time of day in 4 or 6 digits [HHMM(SS)],
+-- - optionally followed by the letter "Z" or by a local time differential
+-- from UTC time in 5 digits ("+"HHMM or "-"HHMM);
+-- Examples:
+-- 1) 19970621194530, meaning 21 June 1997, 19:45:30;
+-- 2) 19970621194530Z, meaning the same as 1);
+-- 3) 19970621194530-0500, meaning the same as 1),
+-- 5 hours retarded in relation to UTC time
+undefined ERROR ::= {
+ PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
+ OPTIONAL TRUE
+ CODE local:2002
+}
+
+invalidMsgCentreId ERROR ::=
+ { -- returned by a Message Centre endpoint when an unknown Message
+ -- Centre Identifier is specified in a mwiInterrogate invoke
+ CODE local:1018
+}
+
+BasicService ::= ENUMERATED {
+ -- MWI Services:
+ -- for compatibility among vendors, speech is recommended for voice mail
+ -- indications
+ allServices(0), speech(1), unrestrictedDigitalInformation(2), audio3100Hz(3),
+ telephony(32), teletex(33), telefaxGroup4Class1(34), videotexSyntaxBased(35),
+ videotelephony(36), telefaxGroup2-3(37), reservedNotUsed1(38),
+ reservedNotUsed2(39), reservedNotUsed3(40), reservedNotUsed4(41),
+ reservedNotUsed5(42),
+ --
+ -- MWI Service Classes:
+ email(51), video(52), fileTransfer(53), shortMessageService(54),
+ speechAndVideo(55), speechAndFax(56), speechAndEmail(57), videoAndFax(58),
+ videoAndEmail(59), faxAndEmail(60), speechVideoAndFax(61),
+ speechVideoAndEmail(62), speechFaxAndEmail(63), videoFaxAndEmail(64),
+ speechVideoFaxAndEmail(65), multimediaUnknown(66),
+ serviceUnknown(67),
+ --
+ -- Reserved for future additions:
+ futureReserve1(68), futureReserve2(69), futureReserve3(70),
+ futureReserve4(71), futureReserve5(72), futureReserve6(73),
+ futureReserve7(74), futureReserve8(75)}
+
+notActivated ERROR ::= {CODE local:31
+}
+
+END -- of Message-Waiting-Indication-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Name-Operations.asn b/epan/dissectors/asn1/h450/Name-Operations.asn
new file mode 100644
index 0000000000..efb21d1614
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Name-Operations.asn
@@ -0,0 +1,97 @@
+-- Name-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.8/2000/Name-Operations.asn
+--
+
+-- Module Name-Operations (H.450.8:02/2000)
+Name-Operations {itu-t recommendation h 450 8 version1(0) name-operations(0)}
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)};
+
+NameOperations OPERATION ::=
+ {callingName | alertingName | connectedName | busyName}
+
+callingName OPERATION ::= {
+ ARGUMENT
+ SEQUENCE {name Name,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:0
+}
+
+alertingName OPERATION ::= {
+ ARGUMENT
+ SEQUENCE {name Name,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:1
+}
+
+connectedName OPERATION ::= {
+ ARGUMENT
+ SEQUENCE {name Name,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:2
+}
+
+busyName OPERATION ::= {
+ ARGUMENT
+ SEQUENCE {name Name,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:3
+}
+
+Name ::= CHOICE {
+ namePresentationAllowed NamePresentationAllowed,
+ namePresentationRestricted NamePresentationRestricted,
+ nameNotAvailable NULL,
+ ...
+}
+
+NamePresentationAllowed ::= CHOICE {
+ simpleName SimpleName,
+ extendedName ExtendedName,
+ ...
+}
+
+NamePresentationRestricted ::= CHOICE {
+ simpleName SimpleName,
+ extendedName ExtendedName,
+ restrictedNull NULL, -- only used in case of interworking where other network
+
+ -- provides indication that the name is restricted without
+ -- the name itself
+ ...
+}
+
+SimpleName ::= OCTET STRING(SIZE (1..50))
+
+ExtendedName ::= BMPString(SIZE (1..256)) -- Basic ISO/IEC 10646-1 (Unicode)
+
+
+END -- of Name-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/h450.cnf b/epan/dissectors/asn1/h450/h450.cnf
new file mode 100644
index 0000000000..27c586b57a
--- /dev/null
+++ b/epan/dissectors/asn1/h450/h450.cnf
@@ -0,0 +1,165 @@
+# h450.cnf
+# H.450 conformation file
+# Copyright 2004 Anders Broman
+
+#.OPT
+PER
+ALIGNED
+GROUP_BY_PROT
+-o h450
+#.END
+
+#.IMPORT ../h225/h225-exp.cnf
+#.IMPORT ../h450-ros/h450-ros-exp.cnf
+
+#.MODULE
+
+H4501-Supplementary-ServiceAPDU-Structure h450
+Addressing-Data-Elements h450
+H225-generic-parameters-definition h450
+Manufacturer-specific-service-extension-definition h450
+H4501-General-Error-List h450
+
+Call-Transfer-Operations h450.2
+Call-Diversion-Operations h450.3
+Call-Hold-Operations h450.4
+Call-Park-Pickup-Operations h450.5
+Call-Waiting-Operations h450.6
+Message-Waiting-Indication-Operations h450.7
+Name-Operations h450.8
+Call-Completion-Operations h450.9
+Call-Offer-Operations h450.10
+Call-Intrusion-Operations h450.11
+Common-Information-Operations h450.12
+
+#.OMIT_ASSIGNMENT
+PresentedAddressScreened
+PresentedAddressUnscreened
+PresentedNumberScreened
+PresentedNumberUnscreened
+AddressScreened
+NumberScreened
+Address
+# implemented manually in h450-ros as asn2wrs is not able to handle subtype constraint event passed through parameter
+InvokeIDs
+#.END
+
+#.PDU
+H4501SupplementaryService
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+ERROR.&ParameterType
+
+#.FN_HDR H4501SupplementaryService
+ proto_item *hidden_item;
+
+ hidden_item = proto_tree_add_item(tree, proto_h450, tvb, offset, -1, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+#.END
+
+#.FN_HDR ServiceApdus/rosApdus/_item
+ h450_rose_ctx.apdu_depth = 1;
+ actx->rose_ctx = &h450_rose_ctx;
+#.END
+
+#.TYPE_RENAME
+ARG-activateDiversionQ/extension ActivateDiversionQArg_extension
+ARG-deactivateDiversionQ/extension DeactivateDiversionQArg_extension
+ARG-interrogateDiversionQ/extension InterrogateDiversionQ_extension
+ARG-checkRestriction/extension CheckRestrictionArg_extension
+ARG-callRerouting/extension CallReroutingArg_extension
+ARG-divertingLegInformation1/extension DivertingLegInformation1Arg_extension
+ARG-divertingLegInformation2/extension DivertingLegInformation2Arg_extension
+ARG-divertingLegInformation3/extension DivertingLegInformation3Arg_extension
+ARG-divertingLegInformation4/extension DivertingLegInformation4Arg_extension
+IntResult/extension IntResult_extension
+
+#.FIELD_RENAME
+
+#PresentedAddressScreened/presentationAllowedAddress addressScreened_presentationAllowedAddress
+#PresentedNumberScreened/presentationAllowedAddress numberScreened_presentationAllowedAddress
+#PresentedNumberUnscreened/presentationAllowedAddress numberUnscreened_presentationAllowedAddress
+#PresentedAddressUnscreened/presentationAllowedAddress addressUnscreened_presentationAllowedAddress
+
+#PresentedAddressScreened/presentationRestrictedAddress addressScreened_presentationRestrictedAddress
+#PresentedNumberScreened/presentationRestrictedAddress numberScreened_presentationRestrictedAddress
+#PresentedNumberUnscreened/presentationRestrictedAddress numberUnscreened_presentationRestrictedAddress
+#PresentedAddressUnscreened/presentationRestrictedAddress addressUnscreened_presentationRestrictedAddress
+
+CTInitiateArg/argumentExtension cTInitiateArg_argumentExtension
+CTSetupArg/argumentExtension cTSetupArg_argumentExtension
+CTUpdateArg/argumentExtension cTUpdateArg_argumentExtension
+SubaddressTransferArg/argumentExtension subaddressTransferArg_argumentExtension
+CTCompleteArg/argumentExtension cTCompleteArg_argumentExtension
+CTActiveArg/argumentExtension cTActiveArg_argumentExtension
+MixedExtension/extension mixedExtension_extension
+PAR-unspecified/extension unspecified_extension
+ARG-checkRestriction/extension checkRestrictionArg_extension
+ARG-divertingLegInformation1/extension divertingLegInformation1Arg_extension
+ARG-divertingLegInformation2/extension divertingLegInformation2Arg_extension
+CcRequestArg/extension ccRequestArg_extension
+CcRequestRes/extension ccRequestRes_extension
+CcShortArg/extension ccShortArg_extension
+CcLongArg/extension ccLongArg_extension
+CoReqOptArg/extension coReqOptArg_extension
+RUAlertOptArg/extension rUAlertOptArg_extension
+CfbOvrOptArg/extension cfbOvrOptArg_extension
+CmnArg/extension cmnArg_extension
+ARG-activateDiversionQ/extension activateDiversionQArg_extension
+ARG-interrogateDiversionQ/extension interrogateDiversionQ_extension
+ARG-callRerouting/extension callReroutingArg_extension
+ARG-divertingLegInformation4/extension divertingLegInformation4Arg_extension
+ARG-divertingLegInformation3/extension divertingLegInformation3Arg_extension
+ARG-deactivateDiversionQ/extension deactivateDiversionQArg_extension
+IntResult/extension intResult_extension
+
+MWIActivateArg/extensionArg mWIActivateArg_extensionArg
+MWIDeactivateArg/extensionArg mWIDeactivateArg_extensionArg
+MWIInterrogateArg/extensionArg mWIInterrogateArg_extensionArg
+MWIInterrogateResElt/extensionArg mWIInterrogateResElt_extensionArg
+
+HoldNotificArg/extensionArg holdNotificArg_extensionArg
+RetrieveNotificArg/extensionArg retrieveNotificArg_extensionArg
+
+RemoteHoldArg/extensionArg remoteHoldArg_extensionArg
+RemoteRetrieveArg/extensionArg remoteRetrieveArg_extensionArg
+CpRequestArg/extensionArg cpRequestArg_extensionArg
+CpSetupArg/extensionArg cpSetupArg_extensionArg
+GroupIndicationOnArg/extensionArg groupIndicationOnArg_extensionArg
+GroupIndicationOffArg/extensionArg groupIndicationOffArg_extensionArg
+PickrequArg/extensionArg pickrequArg_extensionArg
+PickupArg/extensionArg pickupArg_extensionArg
+PickExeArg/extensionArg pickExeArg_extensionArg
+CpNotifyArg/extensionArg cpNotifyArg_extensionArg
+CpickupNotifyArg/extensionArg cpickupNotifyArg_extensionArg
+CallWaitingArg/extensionArg callWaitingArg_extensionArg
+CIRequestArg/argumentExtension cIRequestArg_argumentExtension
+CIGetCIPLOptArg/argumentExtension cIGetCIPLOptArg_argumentExtension
+CIIsOptArg/argumentExtension cIIsOptArg_argumentExtension
+CIFrcRelArg/argumentExtension cIFrcRelArg_argumentExtension
+CIWobOptArg/argumentExtension cIWobOptArg_argumentExtension
+CISilentArg/argumentExtension cISilentArg_argumentExtension
+CINotificationArg/argumentExtension cINotificationArg_argumentExtension
+
+CIRequestRes/resultExtension cIRequestRes_resultExtension
+CIGetCIPLRes/resultExtension cIGetCIPLRes_resultExtension
+CIIsOptRes/resultExtension cIIsOptRes_resultExtension
+CIFrcRelOptRes/resultExtension cIFrcRelOptRes_resultExtension
+CIWobOptRes/resultExtension cIWobOptRes_resultExtension
+CISilentOptRes/resultExtension cISilentOptRes_resultExtension
+
+#.TABLE10_BODY OPERATION
+ { %(&operationCode)3s, "%(_name)s" },
+#.END
+
+#.TABLE11_BODY OPERATION
+ /* %(_name)-24s */ { %(&operationCode)3s, %(_argument_pdu)s, %(_result_pdu)s },
+#.END
+
+#.TABLE20_BODY ERROR
+ { %(&errorCode)4s, "%(_name)s" },
+#.END
+
+#.TABLE21_BODY ERROR
+ /* %(_name)-24s */ { %(&errorCode)4s, %(_parameter_pdu)s },
+#.END
diff --git a/epan/dissectors/asn1/h450/packet-h450-template.c b/epan/dissectors/asn1/h450/packet-h450-template.c
new file mode 100644
index 0000000000..ffb0de0157
--- /dev/null
+++ b/epan/dissectors/asn1/h450/packet-h450-template.c
@@ -0,0 +1,322 @@
+/* packet-h450.c
+ * Routines for h450 packet dissection
+ * Based on the previous h450 dissector by:
+ * 2003 Graeme Reid (graeme.reid@norwoodsystems.com)
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Credit to Tomas Kukosa for developing the asn2wrs compiler.
+ *
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-h225.h"
+
+#include "packet-h450-ros.h"
+
+#define PNAME "H.450 Supplementary Services"
+#define PSNAME "H.450"
+#define PFNAME "h450"
+
+void proto_register_h450(void);
+void proto_reg_handoff_h450(void);
+
+
+/* Initialize the protocol and registered fields */
+static int proto_h450 = -1;
+static int hf_h450_operation = -1;
+static int hf_h450_error = -1;
+#include "packet-h450-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h450-ett.c"
+
+static expert_field ei_h450_unsupported_arg_type = EI_INIT;
+static expert_field ei_h450_unsupported_result_type = EI_INIT;
+static expert_field ei_h450_unsupported_error_type = EI_INIT;
+
+static const value_string h450_str_operation[] = {
+#include "packet-h450-table10.c"
+ { 0, NULL}
+};
+
+static const value_string h450_str_error[] = {
+#include "packet-h450-table20.c"
+ { 0, NULL}
+};
+
+/* ROSE context */
+static rose_ctx_t h450_rose_ctx;
+
+/* Global variables */
+
+#include "packet-h450-fn.c"
+
+typedef struct _h450_op_t {
+ gint32 opcode;
+ dissector_t arg_pdu;
+ dissector_t res_pdu;
+} h450_op_t;
+
+static const h450_op_t h450_op_tab[] = {
+#include "packet-h450-table11.c"
+};
+
+typedef struct _h450_err_t {
+ gint32 errcode;
+ dissector_t err_pdu;
+} h450_err_t;
+
+static const h450_err_t h450_err_tab[] = {
+#include "packet-h450-table21.c"
+};
+
+static const h450_op_t *get_op(gint32 opcode) {
+ int i;
+
+ /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
+ for (i = array_length(h450_op_tab) - 1; i >= 0; i--)
+ if (h450_op_tab[i].opcode == opcode)
+ return &h450_op_tab[i];
+ return NULL;
+}
+
+static const h450_err_t *get_err(gint32 errcode) {
+ int i;
+
+ /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
+ for (i = array_length(h450_err_tab) - 1; i >= 0; i--)
+ if (h450_err_tab[i].errcode == errcode)
+ return &h450_err_tab[i];
+ return NULL;
+}
+
+/*--- dissect_h450_arg ------------------------------------------------------*/
+static int
+dissect_h450_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ proto_item *hidden_item;
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 opcode;
+ const h450_op_t *op_ptr;
+ const gchar *p;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 1) /* invoke */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ opcode = rctx->d.code_local;
+ op_ptr = get_op(opcode);
+ if (!op_ptr)
+ return offset;
+
+ hidden_item = proto_tree_add_uint(tree, hf_h450_operation, tvb, 0, 0, opcode);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ p = try_val_to_str(opcode, VALS(h450_str_operation));
+ if (p) {
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (op_ptr->arg_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
+ offset = op_ptr->arg_pdu(tvb, pinfo, tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_arg_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- dissect_h450_res ------------------------------------------------------*/
+static int
+dissect_h450_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ proto_item *hidden_item;
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 opcode;
+ const h450_op_t *op_ptr;
+ const gchar *p;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 2) /* returnResult */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ opcode = rctx->d.code_local;
+ op_ptr = get_op(opcode);
+ if (!op_ptr)
+ return offset;
+
+ hidden_item = proto_tree_add_uint(tree, hf_h450_operation, tvb, 0, 0, opcode);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ p = try_val_to_str(opcode, VALS(h450_str_operation));
+ if (p) {
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (op_ptr->res_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
+ offset = op_ptr->res_pdu(tvb, pinfo, tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_result_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- dissect_h450_err ------------------------------------------------------*/
+static int
+dissect_h450_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ proto_item *hidden_item;
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 errcode;
+ const h450_err_t *err_ptr;
+ const gchar *p;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 3) /* returnError */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ errcode = rctx->d.code_local;
+ err_ptr = get_err(errcode);
+ if (!err_ptr)
+ return offset;
+
+ hidden_item = proto_tree_add_uint(tree, hf_h450_error, tvb, 0, 0, errcode);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ p = try_val_to_str(errcode, VALS(h450_str_error));
+ if (p) {
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (err_ptr->err_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
+ offset = err_ptr->err_pdu(tvb, pinfo, tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_error_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- proto_register_h450 -------------------------------------------*/
+void proto_register_h450(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_h450_operation, { "Operation", "h450.operation",
+ FT_UINT8, BASE_DEC, VALS(h450_str_operation), 0x0,
+ NULL, HFILL }},
+ { &hf_h450_error, { "Error", "h450.error",
+ FT_UINT8, BASE_DEC, VALS(h450_str_error), 0x0,
+ NULL, HFILL }},
+#include "packet-h450-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h450-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_h450_unsupported_arg_type, { "h450.unsupported.arg_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ARGUMENT TYPE (H.450)", EXPFILL }},
+ { &ei_h450_unsupported_result_type, { "h450.unsupported.result_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED RESULT TYPE (H.450)", EXPFILL }},
+ { &ei_h450_unsupported_error_type, { "h450.unsupported.error_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ERROR TYPE (H.450)", EXPFILL }},
+ };
+
+ expert_module_t* expert_h450;
+
+ /* Register protocol */
+ proto_h450 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("h4501", dissect_h450_H4501SupplementaryService_PDU, proto_h450);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h450, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_h450 = expert_register_protocol(proto_h450);
+ expert_register_field_array(expert_h450, ei, array_length(ei));
+
+ rose_ctx_init(&h450_rose_ctx);
+
+ /* Register dissector tables */
+ h450_rose_ctx.arg_global_dissector_table = register_dissector_table("h450.ros.global.arg", "H.450 Operation Argument (global opcode)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ h450_rose_ctx.res_global_dissector_table = register_dissector_table("h450.ros.global.res", "H.450 Operation Result (global opcode)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ h450_rose_ctx.arg_local_dissector_table = register_dissector_table("h450.ros.local.arg", "H.450 Operation Argument (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ h450_rose_ctx.res_local_dissector_table = register_dissector_table("h450.ros.local.res", "H.450 Operation Result (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ h450_rose_ctx.err_global_dissector_table = register_dissector_table("h450.ros.global.err", "H.450 Error (global opcode)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ h450_rose_ctx.err_local_dissector_table = register_dissector_table("h450.ros.local.err", "H.450 Error (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+
+}
+
+
+/*--- proto_reg_handoff_h450 ---------------------------------------*/
+void
+proto_reg_handoff_h450(void)
+{
+ int i;
+ dissector_handle_t h450_arg_handle;
+ dissector_handle_t h450_res_handle;
+ dissector_handle_t h450_err_handle;
+
+ h450_arg_handle = create_dissector_handle(dissect_h450_arg, proto_h450);
+ h450_res_handle = create_dissector_handle(dissect_h450_res, proto_h450);
+ for (i=0; i<(int)array_length(h450_op_tab); i++) {
+ dissector_add_uint("h450.ros.local.arg", h450_op_tab[i].opcode, h450_arg_handle);
+ dissector_add_uint("h450.ros.local.res", h450_op_tab[i].opcode, h450_res_handle);
+ }
+ h450_err_handle = create_dissector_handle(dissect_h450_err, proto_h450);
+ for (i=0; i<(int)array_length(h450_err_tab); i++) {
+ dissector_add_uint("h450.ros.local.err", h450_err_tab[i].errcode, h450_err_handle);
+ }
+
+}
diff --git a/epan/dissectors/asn1/h460/CALL-PARTY-CATEGORY.asn b/epan/dissectors/asn1/h460/CALL-PARTY-CATEGORY.asn
new file mode 100644
index 0000000000..2bddb58629
--- /dev/null
+++ b/epan/dissectors/asn1/h460/CALL-PARTY-CATEGORY.asn
@@ -0,0 +1,23 @@
+-- CALL-PARTY-CATEGORY.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.10/2004/CALL-PARTY-CATEGORY.asn
+--
+
+-- Module CALL-PARTY-CATEGORY (H.460.10:03/2004)
+CALL-PARTY-CATEGORY DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+CallPartyCategoryInfo ::= SEQUENCE {
+ callPartyCategory CallPartyCategory OPTIONAL,
+ originatingLineInfo OriginatingLineInfo OPTIONAL,
+ ...
+}
+
+CallPartyCategory ::= INTEGER(0..255)
+
+OriginatingLineInfo ::= INTEGER(0..255)
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/CALL-PRIORITY.asn b/epan/dissectors/asn1/h460/CALL-PRIORITY.asn
new file mode 100644
index 0000000000..e83014591d
--- /dev/null
+++ b/epan/dissectors/asn1/h460/CALL-PRIORITY.asn
@@ -0,0 +1,55 @@
+-- CALL-PRIORITY.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.4/2007/CALL-PRIORITY.asn
+--
+
+-- Module CALL-PRIORITY (H.460.4:01/2007)
+CALL-PRIORITY {itu-t(0) recommendation(0) h(8) 460 4 version(1)} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS ClearToken, CryptoToken
+ FROM H235-SECURITY-MESSAGES;
+
+CallPriorityInfo ::= SEQUENCE -- root for Call Priority related asn.1
+ {
+ priorityValue
+ CHOICE {emergencyAuthorized NULL,
+ emergencyPublic NULL,
+ high NULL,
+ normal NULL,
+ ...},
+ priorityExtension INTEGER(0..255) OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoToken OPTIONAL,
+ rejectReason
+ CHOICE {priorityUnavailable NULL,
+ priorityUnauthorized NULL,
+ priorityValueUnknown NULL,
+ ...} OPTIONAL, -- Only used in CallPriorityConfirm
+ ...
+}
+
+CountryInternationalNetworkCallOriginationIdentification ::=
+ SEQUENCE
+ -- root for Country/International Network
+ -- of Call Origination Identification related asn.1
+ {
+ numberingPlan
+ CHOICE {x121
+ SEQUENCE {countryCode IA5String(SIZE (3))(FROM ("0123456789")),
+ ...},
+ e164
+ SEQUENCE {countryCode
+ IA5String(SIZE (3))(FROM ("0123456789")),
+ identificationCode
+ IA5String(SIZE (1..4))(FROM ("0123456789")),
+ ...},
+ ...},
+ ...
+}
+
+END -- of ASN.1
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/CIRCUIT-STATUS-MAP.asn b/epan/dissectors/asn1/h460/CIRCUIT-STATUS-MAP.asn
new file mode 100644
index 0000000000..27b037810f
--- /dev/null
+++ b/epan/dissectors/asn1/h460/CIRCUIT-STATUS-MAP.asn
@@ -0,0 +1,36 @@
+-- CIRCUIT-STATUS-MAP.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.3/2002/CIRCUIT-STATUS-MAP.asn
+--
+
+-- Module CIRCUIT-STATUS-MAP (H.460.3:11/2002)
+CIRCUIT-STATUS-MAP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS CircuitIdentifier
+ FROM H323-MESSAGES;
+
+CircuitStatus ::= SEQUENCE -- root for Circuit Status Map ASN.1
+ {
+ circuitStatusMap SEQUENCE OF CircuitStatusMap OPTIONAL,
+ ...
+}
+
+CircuitStatusMap ::= SEQUENCE {
+ statusType CircuitStatusType,
+ baseCircuitID CircuitIdentifier,
+ range INTEGER(0..4095),
+ status OCTET STRING,
+ ...
+}
+
+CircuitStatusType ::= CHOICE {
+ serviceStatus NULL, -- status: 0 = out-of-service, 1 = in-service
+ busyStatus NULL, -- status: 0 = free, 1 = in-use
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/CMakeLists.txt b/epan/dissectors/asn1/h460/CMakeLists.txt
new file mode 100644
index 0000000000..0205c4fefc
--- /dev/null
+++ b/epan/dissectors/asn1/h460/CMakeLists.txt
@@ -0,0 +1,63 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h460 )
+
+set( PROTO_OPT _EMPTY_ )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ NUMBER-PORTABILITY.asn
+ CIRCUIT-STATUS-MAP.asn
+ CALL-PRIORITY.asn
+ QOS-MONITORING-REPORT.asn
+ QOS-MONITORING-EXTENDED-VOIP-REPORT.asn
+ CALL-PARTY-CATEGORY.asn
+ MLPP.asn
+ SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn
+ SIGNALLING-TRAVERSAL.asn
+ MEDIA-TRAVERSAL.asn
+ MESSAGE-BROADCAST.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../h225/h225-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../h235/h235-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../h245/h245-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h460/MEDIA-TRAVERSAL.asn b/epan/dissectors/asn1/h460/MEDIA-TRAVERSAL.asn
new file mode 100644
index 0000000000..39648dd3cc
--- /dev/null
+++ b/epan/dissectors/asn1/h460/MEDIA-TRAVERSAL.asn
@@ -0,0 +1,30 @@
+-- MEDIA-TRAVERSAL.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.19/2005/MEDIA-TRAVERSAL.asn
+--
+
+-- Module MEDIA-TRAVERSAL (H.460.19:09/2005)
+MEDIA-TRAVERSAL {itu-t(0) recommendation(0) h(8) 460 19 version(0) 1}
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ TimeToLive
+ FROM H323-MESSAGES
+ TransportAddress
+ FROM MULTIMEDIA-SYSTEM-CONTROL;
+
+TraversalParameters ::= SEQUENCE {
+ multiplexedMediaChannel TransportAddress OPTIONAL,
+ multiplexedMediaControlChannel TransportAddress OPTIONAL,
+ multiplexID INTEGER(0..4294967295) OPTIONAL,
+ keepAliveChannel TransportAddress OPTIONAL,
+ keepAlivePayloadType INTEGER(0..127) OPTIONAL,
+ keepAliveInterval TimeToLive OPTIONAL,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/MESSAGE-BROADCAST.asn b/epan/dissectors/asn1/h460/MESSAGE-BROADCAST.asn
new file mode 100644
index 0000000000..ec2e761dc7
--- /dev/null
+++ b/epan/dissectors/asn1/h460/MESSAGE-BROADCAST.asn
@@ -0,0 +1,50 @@
+-- MESSAGE-BROADCAST.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.21/2006/MESSAGE-BROADCAST.asn
+--
+
+-- Module MESSAGE-BROADCAST (H.460.21:05/2006)
+MESSAGE-BROADCAST DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ MulticastAddress, UnicastAddress, Capability
+ FROM MULTIMEDIA-SYSTEM-CONTROL;
+
+CapabilityAdvertisement ::= SEQUENCE {
+ receiveCapabilities ReceiveCapabilities OPTIONAL,
+ transmitCapabilities SEQUENCE SIZE (1..256) OF TransmitCapabilities OPTIONAL,
+ ...
+}
+
+ReceiveCapabilities ::= SEQUENCE {
+ capabilities SEQUENCE SIZE (1..256) OF Capability,
+ maxGroups INTEGER(1..65535),
+ ...
+}
+
+GloballyUniqueID ::= OCTET STRING(SIZE (16))
+
+TransmitCapabilities ::= SEQUENCE {
+ groupIdentifer GloballyUniqueID,
+ capability Capability,
+ sourceAddress UnicastAddress,
+ ...
+}
+
+MessageBroadcastGroups ::= SEQUENCE SIZE (1..256) OF GroupAttributes
+
+GroupAttributes ::= SEQUENCE {
+ priority INTEGER(0..255), -- 0 = high, 255 = low
+ groupIdentifer GloballyUniqueID OPTIONAL,
+ capability Capability,
+ groupAddress MulticastAddress,
+ sourceAddress UnicastAddress OPTIONAL,
+ alertUser BOOLEAN,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/MLPP.asn b/epan/dissectors/asn1/h460/MLPP.asn
new file mode 100644
index 0000000000..e3b84c673d
--- /dev/null
+++ b/epan/dissectors/asn1/h460/MLPP.asn
@@ -0,0 +1,62 @@
+-- MLPP.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.14/2004/MLPP.asn
+--
+
+-- Module MLPP (H.460.14:03/2004)
+MLPP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ CallIdentifier, AliasAddress
+ FROM H323-MESSAGES; -- defined in H.225.0, Annex H
+
+MLPPInfo ::= SEQUENCE -- root for MLPP data ASN.1
+ {
+ precedence MlppPrecedence OPTIONAL,
+ mlppReason MlppReason OPTIONAL,
+ mlppNotification MlppNotification OPTIONAL,
+ alternateParty AlternateParty OPTIONAL,
+ releaseCall ReleaseCall OPTIONAL,
+ ...
+}
+
+MlppPrecedence ::= ENUMERATED {
+ flashOveride(0), flash(1), immediate(2), priority(3), routine(4), ...
+ }
+
+MlppReason ::=
+ ENUMERATED -- Indicates reasons that call is refused or released.
+ {preemptionNoReservation(8), preemptionReservation(9), callBlocked(46), ...
+ }
+
+MlppNotification ::=
+ CHOICE
+ -- Provides various notification events in Call Signalling messages
+ {
+ preemptionPending NULL,
+ preemptionInProgress NULL,
+ preemptionEnd NULL,
+ preemptionComplete NULL,
+ ...
+}
+
+AlternateParty ::= SEQUENCE {
+ altID AliasAddress,
+ altTimer INTEGER(0..255) OPTIONAL, --seconds
+ ...
+}
+
+ReleaseCall ::= SEQUENCE
+ -- Identifies other call to be preempted first
+ {
+ preemptCallID CallIdentifier,
+ releaseReason MlppReason,
+ releaseDelay INTEGER(0..255) OPTIONAL, --seconds to wait
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/Makefile.am b/epan/dissectors/asn1/h460/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h460/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h460/Makefile.common b/epan/dissectors/asn1/h460/Makefile.common
new file mode 100644
index 0000000000..357b37a4a7
--- /dev/null
+++ b/epan/dissectors/asn1/h460/Makefile.common
@@ -0,0 +1,65 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+
+PROTOCOL_NAME = h460
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ NUMBER-PORTABILITY.asn \
+ CIRCUIT-STATUS-MAP.asn \
+ CALL-PRIORITY.asn \
+ QOS-MONITORING-REPORT.asn \
+ QOS-MONITORING-EXTENDED-VOIP-REPORT.asn \
+ CALL-PARTY-CATEGORY.asn \
+ MLPP.asn \
+ SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn \
+ SIGNALLING-TRAVERSAL.asn \
+ MEDIA-TRAVERSAL.asn \
+ MESSAGE-BROADCAST.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+# need empty -p <proto> option, default is -p $(PROTOCOL_NAME)
+PROTO_OPT =
+A2W_FLAGS =
+
+EXTRA_CNF = \
+ $(builddir)/../h225/h225-exp.cnf \
+ $(builddir)/../h235/h235-exp.cnf \
+ $(builddir)/../h245/h245-exp.cnf
+
+$(builddir)/../h225/h225-exp.cnf:
+ (cd $(builddir)/../h225 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../h235/h235-exp.cnf:
+ (cd $(builddir)/../h235 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../h245/h245-exp.cnf:
+ (cd $(builddir)/../h245 && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/h460/Makefile.nmake b/epan/dissectors/asn1/h460/Makefile.nmake
new file mode 100644
index 0000000000..89e6811e7d
--- /dev/null
+++ b/epan/dissectors/asn1/h460/Makefile.nmake
@@ -0,0 +1,25 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
diff --git a/epan/dissectors/asn1/h460/NUMBER-PORTABILITY.asn b/epan/dissectors/asn1/h460/NUMBER-PORTABILITY.asn
new file mode 100644
index 0000000000..892813fb1f
--- /dev/null
+++ b/epan/dissectors/asn1/h460/NUMBER-PORTABILITY.asn
@@ -0,0 +1,62 @@
+-- NUMBER-PORTABILITY.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.2/2001/NUMBER-PORTABILITY.asn
+--
+
+-- Module NUMBER-PORTABILITY (H.460.2:07/2001)
+NUMBER-PORTABILITY DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ PublicTypeOfNumber, PrivateTypeOfNumber, AliasAddress
+ FROM H323-MESSAGES;
+
+NumberPortabilityInfo ::= CHOICE {
+ numberPortabilityRejectReason NumberPortabilityRejectReason,
+ nUMBERPORTABILITYDATA
+ SEQUENCE {addressTranslated NULL OPTIONAL,
+ portedAddress PortabilityAddress OPTIONAL,
+ routingAddress PortabilityAddress OPTIONAL,
+ regionalParams RegionalParameters OPTIONAL,
+ ...},
+ ...
+}
+
+NumberPortabilityRejectReason ::= CHOICE {
+ unspecified NULL,
+ qorPortedNumber NULL,
+ ...
+}
+
+PortabilityAddress ::= SEQUENCE {
+ aliasAddress AliasAddress,
+ typeOfAddress NumberPortabilityTypeOfNumber OPTIONAL,
+ ...
+}
+
+NumberPortabilityTypeOfNumber ::= CHOICE {
+ publicTypeOfNumber PublicTypeOfNumber,
+ privateTypeOfNumber PrivateTypeOfNumber,
+ portabilityTypeOfNumber PortabilityTypeOfNumber,
+ ...
+}
+
+PortabilityTypeOfNumber ::= CHOICE {
+ portedNumber NULL,
+ routingNumber NULL,
+ concatenatedNumber NULL,
+ ...
+}
+
+RegionalParameters ::= SEQUENCE {
+ t35CountryCode INTEGER(0..255),
+ t35Extension INTEGER(0..255),
+ variantIdentifier INTEGER(1..255) OPTIONAL,
+ regionalData OCTET STRING,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn b/epan/dissectors/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn
new file mode 100644
index 0000000000..bcbf3f8bcf
--- /dev/null
+++ b/epan/dissectors/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn
@@ -0,0 +1,70 @@
+-- QOS-MONITORING-EXTENDED-VOIP-REPORT.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.9/2002/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn
+--
+
+-- Module QOS-MONITORING-EXTENDED-VOIP-REPORT (H.460.9:11/2002)
+QOS-MONITORING-EXTENDED-VOIP-REPORT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS GenericIdentifier
+ FROM H323-MESSAGES;
+
+ExtendedRTPMetrics ::= SEQUENCE {
+ networkPacketLossRate INTEGER(0..255) OPTIONAL,
+ jitterBufferDiscardRate INTEGER(0..255) OPTIONAL,
+ burstMetrics BurstMetrics OPTIONAL,
+ rtcpRoundTripDelay INTEGER(0..65535) OPTIONAL,
+ endSystemDelay INTEGER(0..65535) OPTIONAL,
+ signalLevel INTEGER(-127..10) OPTIONAL,
+ noiseLevel INTEGER(-127..0) OPTIONAL,
+ residualEchoReturnLoss INTEGER(0..127) OPTIONAL,
+ rFactor INTEGER(0..100) OPTIONAL,
+ extRFactor INTEGER(0..100) OPTIONAL,
+ estimatedMOSLQ INTEGER(10..50) OPTIONAL,
+ estimatedMOSCQ INTEGER(10..50) OPTIONAL,
+ plcType PLCtypes OPTIONAL,
+ jitterBufferParms JitterBufferParms OPTIONAL,
+ ...
+}
+
+BurstMetrics ::= SEQUENCE {
+ gmin INTEGER(0..255) OPTIONAL,
+ burstLossDensity INTEGER(0..255) OPTIONAL,
+ gapLossDensity INTEGER(0..255) OPTIONAL,
+ burstDuration INTEGER(0..65535) OPTIONAL,
+ gapDuration INTEGER(0..65535) OPTIONAL,
+ ...
+}
+
+PLCtypes ::= CHOICE {
+ unspecified NULL,
+ disabled NULL,
+ enhanced NULL,
+ standard NULL,
+ ...
+}
+
+JitterBufferParms ::= SEQUENCE {
+ jitterBufferType JitterBufferTypes OPTIONAL,
+ jitterBufferAdaptRate INTEGER(0..15) OPTIONAL,
+ jitterBufferNominalSize INTEGER(0..65535) OPTIONAL,
+ jitterBufferMaxSize INTEGER(0..65535) OPTIONAL,
+ jitterBufferAbsoluteMax INTEGER(0..65535) OPTIONAL,
+ ...
+}
+
+JitterBufferTypes ::= CHOICE {
+ unknown NULL,
+ reserved NULL,
+ nonadaptive NULL,
+ adaptive NULL,
+ ...
+}
+
+qosMonitoringExtendedRTPMetrics GenericIdentifier ::= standard:2
+
+END -- of QOS-MONITORING-EXTENDED-VOIP-REPORT
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/QOS-MONITORING-REPORT.asn b/epan/dissectors/asn1/h460/QOS-MONITORING-REPORT.asn
new file mode 100644
index 0000000000..d5bd5023d7
--- /dev/null
+++ b/epan/dissectors/asn1/h460/QOS-MONITORING-REPORT.asn
@@ -0,0 +1,99 @@
+-- QOS-MONITORING-REPORT.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.9/2002/QOS-MONITORING-REPORT.asn
+--
+
+-- Module QOS-MONITORING-REPORT (H.460.9:11/2002)
+QOS-MONITORING-REPORT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ NonStandardParameter, TransportChannelInfo, CallIdentifier,
+ CallReferenceValue, ConferenceIdentifier, BandWidth, GenericIdentifier
+ FROM H323-MESSAGES;
+
+EstimatedEnd2EndDelay ::= INTEGER(0..4294967295)
+
+-- middle 32 bits of 64 bit NTP timestamp
+CalculatedJitter ::= INTEGER(0..4294967295)
+
+-- measured in timestamp units
+Extension ::= SEQUENCE {
+ extensionId GenericIdentifier,
+ extensionContent OCTET STRING OPTIONAL,
+ ...
+}
+
+RTCPMeasures ::= SEQUENCE {
+ rtpAddress TransportChannelInfo,
+ rtcpAddress TransportChannelInfo,
+ sessionId INTEGER(1..255),
+ nonStandardData NonStandardParameter OPTIONAL,
+ mediaSenderMeasures
+ SEQUENCE {worstEstimatedEnd2EndDelay EstimatedEnd2EndDelay OPTIONAL,
+ meanEstimatedEnd2EndDelay EstimatedEnd2EndDelay OPTIONAL,
+ ...} OPTIONAL,
+ mediaReceiverMeasures
+ SEQUENCE {cumulativeNumberOfPacketsLost INTEGER(0..4294967295) OPTIONAL,
+ packetLostRate INTEGER(0..65535) OPTIONAL,
+ worstJitter CalculatedJitter OPTIONAL,
+ estimatedThroughput BandWidth OPTIONAL, -- in 100s of bits--
+ fractionLostRate INTEGER(0..65535) OPTIONAL,
+ meanJitter CalculatedJitter OPTIONAL,
+ ...} OPTIONAL,
+ extensions SEQUENCE OF Extension OPTIONAL,
+ ...
+}
+
+PerCallQoSReport ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ callReferenceValue CallReferenceValue,
+ conferenceID ConferenceIdentifier,
+ callIdentifier CallIdentifier,
+ mediaChannelsQoS SEQUENCE OF RTCPMeasures OPTIONAL,
+ -- one element per media channel
+ extensions SEQUENCE OF Extension OPTIONAL,
+ ...
+}
+
+QosMonitoringReportData ::= CHOICE {
+ periodic PeriodicQoSMonReport, -- included in IRR messages
+ final FinalQosMonReport, -- included in DRQ/DCF message
+ interGK InterGKQosMonReport, -- included in usageIndication message
+ ...
+}
+
+PeriodicQoSMonReport ::= SEQUENCE {
+ perCallInfo SEQUENCE OF PerCallQoSReport, -- one element per call
+ extensions SEQUENCE OF Extension OPTIONAL,
+ ...
+}
+
+FinalQosMonReport ::= SEQUENCE {
+ mediaInfo SEQUENCE OF RTCPMeasures, -- one element per channel
+ nonStandardData NonStandardParameter OPTIONAL,
+ extensions SEQUENCE OF Extension OPTIONAL,
+ ...
+}
+
+InterGKQosMonReport ::= SEQUENCE {
+ mediaInfo SEQUENCE OF RTCPMeasures, -- one element per channel
+ nonStandardData NonStandardParameter OPTIONAL,
+ extensions SEQUENCE OF Extension OPTIONAL,
+ ...
+}
+
+--
+-- H.460.9 Identifiers:
+--
+qosMonitoringReportID GenericIdentifier ::=
+ standard:9
+
+qosMonitoringFinalOnly GenericIdentifier ::= standard:0
+
+qosMonitoringReportData GenericIdentifier ::= standard:1
+
+END -- of ASN.1
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn b/epan/dissectors/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn
new file mode 100644
index 0000000000..aa85572f6f
--- /dev/null
+++ b/epan/dissectors/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn
@@ -0,0 +1,56 @@
+-- SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn
+--
+
+-- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT (H.460.15:03/2004)
+SIGNALLING-CHANNEL-SUSPEND-REDIRECT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS TransportAddress
+ FROM H323-MESSAGES;
+
+SignallingChannelData ::= SEQUENCE {
+ signallingChannelData
+ CHOICE {channelSuspendRequest ChannelSuspendRequest,
+ channelSuspendResponse ChannelSuspendResponse,
+ channelSuspendConfirm ChannelSuspendConfirm,
+ channelSuspendCancel ChannelSuspendCancel,
+ channelResumeRequest ChannelResumeRequest,
+ channelResumeResponse ChannelResumeResponse,
+ ...},
+ ...
+}
+
+ChannelSuspendRequest ::= SEQUENCE {
+ channelResumeAddress SEQUENCE OF TransportAddress,
+ immediateResume BOOLEAN,
+ resetH245 NULL OPTIONAL,
+ ...
+}
+
+ChannelSuspendResponse ::= SEQUENCE {
+ okToSuspend BOOLEAN,
+ channelResumeAddress SEQUENCE OF TransportAddress,
+ ...
+}
+
+ChannelSuspendConfirm ::= SEQUENCE {...
+}
+
+ChannelSuspendCancel ::= SEQUENCE {...
+}
+
+ChannelResumeRequest ::= SEQUENCE {
+ randomNumber INTEGER(0..4294967295),
+ resetH245 NULL OPTIONAL,
+ ...
+}
+
+ChannelResumeResponse ::= SEQUENCE {...
+}
+
+END -- of ASN.1
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/SIGNALLING-TRAVERSAL.asn b/epan/dissectors/asn1/h460/SIGNALLING-TRAVERSAL.asn
new file mode 100644
index 0000000000..33fbbab51e
--- /dev/null
+++ b/epan/dissectors/asn1/h460/SIGNALLING-TRAVERSAL.asn
@@ -0,0 +1,28 @@
+-- SIGNALLING-TRAVERSAL.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.18/2005/SIGNALLING-TRAVERSAL.asn
+--
+
+-- Module SIGNALLING-TRAVERSAL (H.460.18:09/2005)
+SIGNALLING-TRAVERSAL {itu-t(0) recommendation(0) h(8) 460 18 version(0) 1}
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS CallIdentifier, TimeToLive, TransportAddress
+ FROM H323-MESSAGES;
+
+IncomingCallIndication ::= SEQUENCE {
+ callSignallingAddress TransportAddress,
+ callID CallIdentifier,
+ ...
+}
+
+LRQKeepAliveData ::= SEQUENCE {
+ lrqKeepAliveInterval TimeToLive, -- keep-alive interval (seconds)
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/h460/h460.cnf b/epan/dissectors/asn1/h460/h460.cnf
new file mode 100644
index 0000000000..2d8c8793db
--- /dev/null
+++ b/epan/dissectors/asn1/h460/h460.cnf
@@ -0,0 +1,64 @@
+# h460.cnf
+# H.460.x conformation file
+# 2007 Tomas Kukosa
+
+#.INCLUDE ../h225/h225-exp.cnf
+#.INCLUDE ../h235/h235-exp.cnf
+#.INCLUDE ../h245/h245-exp.cnf
+
+#.OPT
+PER
+ALIGNED
+GROUP_BY_PROT
+-o h460
+#.END
+
+#.OMIT_ASSIGNMENT
+MessageBroadcastGroups
+GroupAttributes
+#.END
+
+#.MODULE
+NUMBER-PORTABILITY h460.2
+CIRCUIT-STATUS-MAP h460.3
+CALL-PRIORITY h460.4
+QOS-MONITORING-REPORT h460.9
+QOS-MONITORING-EXTENDED-VOIP-REPORT h460.9
+CALL-PARTY-CATEGORY h460.10
+MLPP h460.14
+SIGNALLING-CHANNEL-SUSPEND-REDIRECT h460.15
+SIGNALLING-TRAVERSAL h460.18
+MEDIA-TRAVERSAL h460.19
+MESSAGE-BROADCAST h460.21
+#.END
+
+#.PDU
+# H.460.2
+NumberPortabilityInfo
+# H.460.3
+CircuitStatus
+# H.460.4
+CallPriorityInfo
+CountryInternationalNetworkCallOriginationIdentification
+# H.460.9
+QosMonitoringReportData
+ExtendedRTPMetrics
+# H.460.10
+CallPartyCategoryInfo
+# H.460.14
+MLPPInfo
+# H.460.15
+SignallingChannelData
+# H.460.18
+IncomingCallIndication
+LRQKeepAliveData
+# H.460.19
+TraversalParameters
+# H.460.21
+CapabilityAdvertisement
+#.END
+
+#.TF_RENAME
+CountryInternationalNetworkCallOriginationIdentification/numberingPlan/x121/countryCode x121CountryCode
+CountryInternationalNetworkCallOriginationIdentification/numberingPlan/e164/countryCode e164CountryCode
+#.END
diff --git a/epan/dissectors/asn1/h460/packet-h460-template.c b/epan/dissectors/asn1/h460/packet-h460-template.c
new file mode 100644
index 0000000000..586cec4ab1
--- /dev/null
+++ b/epan/dissectors/asn1/h460/packet-h460-template.c
@@ -0,0 +1,294 @@
+/* packet-h460.c
+ * Routines for H.460.x packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-h225.h"
+#include "packet-h235.h"
+#include "packet-h245.h"
+
+#define PNAME "H.460 Supplementary Services"
+#define PSNAME "H.460"
+#define PFNAME "h460"
+
+void proto_register_h460(void);
+void proto_reg_handoff_h460(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_h460 = -1;
+#include "packet-h460-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h460-ett.c"
+
+/* Subdissectors */
+static dissector_handle_t q931_ie_handle = NULL;
+static dissector_handle_t h225_ras_handle = NULL;
+
+#include "packet-h460-fn.c"
+
+static int
+dissect_ies(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
+ int offset = 0;
+
+ if (q931_ie_handle) {
+ call_dissector(q931_ie_handle, tvb, pinfo, tree);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+ return offset;
+}
+
+static int
+dissect_ras(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
+ int offset = 0;
+
+ if (h225_ras_handle) {
+ call_dissector(h225_ras_handle, tvb, pinfo, tree);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+ return offset;
+}
+
+typedef struct _h460_feature_t {
+ guint32 opt;
+ const gchar *id;
+ const gchar *name;
+ dissector_t content_pdu;
+ /*---*/
+ const gchar *key_gd;
+ const gchar *key_fd;
+ const gchar *key_gm;
+ const gchar *key_gi;
+ dissector_handle_t content_hnd;
+} h460_feature_t;
+
+/* Fill in the items after content_pdu */
+#define FFILL NULL, NULL, NULL, NULL, NULL
+
+/* options */
+#define GD 0x01 /* present in H.225 GenericData */
+#define FD 0x02 /* present in H.225 FeatureDescriptor */
+#define GM 0x04 /* present in H.245 GenericMessage */
+#define GI 0x08 /* present in H.245 GenericInformation */
+
+static h460_feature_t h460_feature_tab[] = {
+ /* H.460.3 */
+ { GD|FD, "2", "Number Portability", NULL, FFILL },
+ { GD|FD, "2/1", "NumberPortabilityData", dissect_h460_2_NumberPortabilityInfo_PDU, FFILL },
+ /* H.460.3 */
+ { GD|FD, "3", "Circuit Status", NULL, FFILL },
+ { GD|FD, "3/1", "Circuit Status Map", dissect_h460_3_CircuitStatus_PDU, FFILL },
+ /* H.460.4 */
+ { GD|FD, "4", "CallPriorityDesignation", NULL, FFILL },
+ { GD|FD, "4/1", "CallPriorityRequest", dissect_h460_4_CallPriorityInfo_PDU, FFILL },
+ { GD|FD, "4/2", "CallPriorityConfirm", dissect_h460_4_CallPriorityInfo_PDU, FFILL },
+ { GD|FD, "4/3", "Country/InternationalNetworkCallOriginationRequest", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU, FFILL },
+ { GD|FD, "4/4", "Country/InternationalNetworkCallOriginationConfirm", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU, FFILL },
+ /* H.460.5 */
+ { GD|FD, "5", "DuplicateIEs", NULL, FFILL },
+ { GD|FD, "5/1", "IEsString", dissect_ies, FFILL },
+ /* H.460.6 */
+ { GD|FD, "6", "Extended Fast Connect", NULL, FFILL },
+ { GD|FD, "6/1", "EFC Proposal", NULL, FFILL },
+ { GD|FD, "6/2", "EFC Close All Media Channels", NULL, FFILL },
+ { GD|FD, "6/3", "EFC Request New Proposals", NULL, FFILL },
+ { GD|FD, "6/4", "EFC Require Symmetric Operation", NULL, FFILL },
+ /* H.460.7 */
+ { GD|FD, "7", "Digit Maps", NULL, FFILL },
+ { FD, "7/1", "Digit Maps Length", NULL, FFILL },
+ { FD, "7/2", "Digit Map Length for Overlapped Sending", NULL, FFILL },
+ { FD, "7/3", "HTTP Digit Maps Download Capability", NULL, FFILL },
+ { GD , "7/1", "Start Timer", NULL, FFILL },
+ { GD , "7/2", "Short Timer", NULL, FFILL },
+ { GD , "7/3", "Long Timer", NULL, FFILL },
+ { GD , "7/4", "Digit Map String", NULL, FFILL },
+ { GD , "7/5", "ToN Associated Digit Map", NULL, FFILL },
+ { GD , "7/5/1", "Type of Number", NULL, FFILL },
+ { GD , "7/5/2", "Digit Map Strings for ToN", NULL, FFILL },
+ { GD , "7/6", "Digit Map URL", NULL, FFILL },
+ /* H.460.8 */
+ { GD|FD, "8", "Querying for Alternate Routes", NULL, FFILL },
+ { GD|FD, "8/1", "Query Count", NULL, FFILL },
+ { GD|FD, "8/2", "Call Termination Cause", NULL, FFILL },
+ /* H.460.9 */
+ { GD|FD, "9", "QoS-monitoring Reporting", NULL, FFILL },
+ { GD|FD, "9/0", "qosMonitoringFinalOnly", NULL, FFILL },
+ { GD|FD, "9/1", "qosMonitoringReportData", dissect_h460_9_QosMonitoringReportData_PDU, FFILL },
+ { GD|FD, "9/2", "qosMonitoringExtendedRTPMetrics", dissect_h460_9_ExtendedRTPMetrics_PDU, FFILL },
+ /* H.460.10 */
+ { GD|FD, "10", "Call Party Category", NULL, FFILL },
+ { GD|FD, "10/1", "Call party category info", dissect_h460_10_CallPartyCategoryInfo_PDU, FFILL },
+ /* H.460.11 */
+ { GD|FD, "11", "Delayed Call Establishment", NULL, FFILL },
+ { GD|FD, "11/1", "Delay Point Indicator", NULL, FFILL },
+ { GD|FD, "11/2", "Implicit DCE Release", NULL, FFILL },
+ { GD|FD, "11/3", "Delay Point Reached", NULL, FFILL },
+ { GD|FD, "11/4", "DCE Release", NULL, FFILL },
+ /* H.460.12 */
+ { GD|FD, "12", "Glare Control Indicator", NULL, FFILL },
+ { GD|FD, "12/1", "Glare Control Indicator Parameter", NULL, FFILL },
+ /* H.460.13 */
+ { GD|FD, "13", "Called User Release Control", NULL, FFILL },
+ { GD|FD, "13/1", "Called User Release Control", NULL, FFILL },
+ /* H.460.14 */
+ { GD|FD, "14", "Multi-Level Precedence and Preemption", NULL, FFILL },
+ { GD|FD, "14/1", "MLPP Information", dissect_h460_14_MLPPInfo_PDU, FFILL },
+ /* H.460.15 */
+ { GD|FD, "15", "Call signalling transport channel suspension and redirection", NULL, FFILL },
+ { GD|FD, "15/1", "Signalling channel suspend and redirect", dissect_h460_15_SignallingChannelData_PDU, FFILL },
+ /* H.460.16 */
+ { GD|FD, "16", "Multiple-message Release Sequence", NULL, FFILL },
+ { GD|FD, "16/1", "MMRS use required", NULL, FFILL },
+ { GD|FD, "16/2", "MMRS procedure", NULL, FFILL },
+ { GD|FD, "16/3", "MMRS additional IEs", dissect_ies, FFILL },
+ /* H.460.17 */
+ { GD|FD, "17", "RAS over H.225.0", NULL, FFILL },
+ { GD|FD, "17/1", "RAS message", dissect_ras, FFILL },
+ /* H.460.18 */
+ { GD|FD , "18", "Signalling Traversal", NULL, FFILL },
+ { GD|FD , "18/1", "IncomingCallIndication", dissect_h460_18_IncomingCallIndication_PDU, FFILL },
+ { GD|FD , "18/2", "LRQKeepAliveData", dissect_h460_18_LRQKeepAliveData_PDU, FFILL },
+ { GM, "0.0.8.460.18.0.1", "Signalling Traversal", NULL, FFILL },
+ { GM, "0.0.8.460.18.0.1-1", "connectionCorrelation", NULL, FFILL },
+ { GM, "0.0.8.460.18.0.1-1/1", "callIdentifier", NULL, FFILL },
+ { GM, "0.0.8.460.18.0.1-1/2", "answerCall", NULL, FFILL },
+ /* H.460.19 */
+ { GD|FD , "19", "mediaNATFWTraversal", NULL, FFILL },
+ { GD|FD , "19/1", "supportTransmitMultiplexedMedia", NULL, FFILL },
+ { GD|FD , "19/2", "mediaTraversalServer", NULL, FFILL },
+ { GI, "0.0.8.460.19.0.1", "mediaNATFWTraversal", NULL, FFILL },
+ { GI, "0.0.8.460.19.0.1/1", "Traversal Parameters", dissect_h460_19_TraversalParameters_PDU, FFILL },
+ /* H.460.20 */
+ { GD|FD, "20", "LocationSourceAddress", NULL, FFILL },
+ { GD|FD, "20/1", "LocationSourceAddress", dissect_h225_ExtendedAliasAddress_PDU, FFILL },
+ /* H.460.21 */
+ { GD|FD, "21", "Message Broadcast", NULL, FFILL },
+ { GD|FD, "21/1", "MessageBroadcastParameter", dissect_h460_21_CapabilityAdvertisement_PDU, FFILL },
+ /* H.460.22 */
+ { GD|FD, "22", "securityProtocolNegotiation", NULL, FFILL },
+ { GD|FD, "22/1", "tlsSecurityProtocol", NULL, FFILL },
+ { GD|FD, "22/1/1", "priority", NULL, FFILL },
+ { GD|FD, "22/1/2", "connectionAddress", NULL, FFILL },
+ { GD|FD, "22/2", "ipsecSecurityProtocol", NULL, FFILL },
+ { GD|FD, "22/2/1", "priority", NULL, FFILL },
+ { 0, NULL, NULL, NULL, FFILL },
+};
+
+static h460_feature_t *find_ftr(const gchar *key) {
+ h460_feature_t *ftr = NULL;
+ h460_feature_t *f;
+
+ for (f=h460_feature_tab; f->id; f++) {
+ if (f->key_gd && !strcmp(key, f->key_gd)) { ftr = f; break; }
+ if (f->key_fd && !strcmp(key, f->key_fd)) { ftr = f; break; }
+ if (f->key_gm && !strcmp(key, f->key_gm)) { ftr = f; break; }
+ if (f->key_gi && !strcmp(key, f->key_gi)) { ftr = f; break; }
+ }
+ return ftr;
+}
+
+/*--- dissect_h460_name -------------------------------------------*/
+static int
+dissect_h460_name(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree, void *data) {
+ int offset = 0;
+ asn1_ctx_t *actx;
+ h460_feature_t *ftr;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ actx = get_asn1_ctx(data);
+ DISSECTOR_ASSERT(actx);
+
+ if (tree) {
+ ftr = find_ftr(pinfo->match_string);
+ if (ftr) {
+ proto_item_append_text(actx->created_item, " - %s", ftr->name);
+ proto_item_append_text(proto_item_get_parent(proto_tree_get_parent(tree)), ": %s", ftr->name);
+ } else {
+ proto_item_append_text(actx->created_item, " - unknown(%s)", pinfo->match_string);
+ }
+ }
+
+ return offset;
+}
+
+/*--- proto_register_h460 ----------------------------------------------*/
+void proto_register_h460(void) {
+ h460_feature_t *ftr;
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h460-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h460-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h460 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h460, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ for (ftr=h460_feature_tab; ftr->id; ftr++) {
+ if (ftr->opt & GD) ftr->key_gd = g_strdup_printf("GenericData/%s", ftr->id);
+ if (ftr->opt & FD) ftr->key_fd = g_strdup_printf("FeatureDescriptor/%s", ftr->id);
+ if (ftr->opt & GM) ftr->key_gm = g_strdup_printf("GenericMessage/%s", ftr->id);
+ if (ftr->opt & GI) ftr->key_gi = g_strdup_printf("GenericInformation/%s", ftr->id);
+ if (ftr->content_pdu) ftr->content_hnd = create_dissector_handle(ftr->content_pdu, proto_h460);
+ }
+}
+
+/*--- proto_reg_handoff_h460 -------------------------------------------*/
+void proto_reg_handoff_h460(void)
+{
+ h460_feature_t *ftr;
+ dissector_handle_t h460_name_handle;
+
+ q931_ie_handle = find_dissector("q931.ie");
+ h225_ras_handle = find_dissector("h225.ras");
+
+ h460_name_handle = create_dissector_handle(dissect_h460_name, proto_h460);
+ for (ftr=h460_feature_tab; ftr->id; ftr++) {
+ if (ftr->key_gd) dissector_add_string("h225.gef.name", ftr->key_gd, h460_name_handle);
+ if (ftr->key_fd) dissector_add_string("h225.gef.name", ftr->key_fd, h460_name_handle);
+ if (ftr->key_gm) dissector_add_string("h245.gef.name", ftr->key_gm, h460_name_handle);
+ if (ftr->key_gi) dissector_add_string("h245.gef.name", ftr->key_gi, h460_name_handle);
+ if (ftr->content_hnd) {
+ if (ftr->key_gd) dissector_add_string("h225.gef.content", ftr->key_gd, ftr->content_hnd);
+ if (ftr->key_fd) dissector_add_string("h225.gef.content", ftr->key_fd, ftr->content_hnd);
+ if (ftr->key_gm) dissector_add_string("h245.gef.content", ftr->key_gm, ftr->content_hnd);
+ if (ftr->key_gi) dissector_add_string("h245.gef.content", ftr->key_gi, ftr->content_hnd);
+ }
+ }
+
+}
diff --git a/epan/dissectors/asn1/h501/CMakeLists.txt b/epan/dissectors/asn1/h501/CMakeLists.txt
new file mode 100644
index 0000000000..dc4e5a02eb
--- /dev/null
+++ b/epan/dissectors/asn1/h501/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME h501 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ H501-MESSAGES.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../h225/h225-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../h235/h235-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/h501/H501-MESSAGES.asn b/epan/dissectors/asn1/h501/H501-MESSAGES.asn
new file mode 100644
index 0000000000..a33dfd8bfe
--- /dev/null
+++ b/epan/dissectors/asn1/h501/H501-MESSAGES.asn
@@ -0,0 +1,656 @@
+-- H501-MESSAGES.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h501/2002/H501-MESSAGES.asn
+--
+
+-- Module H501-MESSAGES (H.501:03/2002)
+H501-MESSAGES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ AuthenticationMechanism, TimeStamp, ClearToken
+ FROM H235-SECURITY-MESSAGES
+ AliasAddress, TransportAddress, ReleaseCompleteReason, ConferenceIdentifier,
+ CallIdentifier, CryptoH323Token, CryptoToken, EndpointType,
+ GatekeeperIdentifier, GloballyUniqueID, NonStandardParameter, NumberDigits,
+ PartyNumber, SupportedProtocols, TransportQOS, VendorIdentifier,
+ IntegrityMechanism, ICV, FeatureSet, GenericData, EnumeratedParameter,
+ ServiceControlSession, CircuitInfo, CircuitIdentifier
+ FROM H323-MESSAGES;
+
+Message ::= SEQUENCE {body MessageBody,
+ common MessageCommonInfo,
+ ...
+}
+
+MessageBody ::= CHOICE {
+ serviceRequest ServiceRequest,
+ serviceConfirmation ServiceConfirmation,
+ serviceRejection ServiceRejection,
+ serviceRelease ServiceRelease,
+ descriptorRequest DescriptorRequest,
+ descriptorConfirmation DescriptorConfirmation,
+ descriptorRejection DescriptorRejection,
+ descriptorIDRequest DescriptorIDRequest,
+ descriptorIDConfirmation DescriptorIDConfirmation,
+ descriptorIDRejection DescriptorIDRejection,
+ descriptorUpdate DescriptorUpdate,
+ descriptorUpdateAck DescriptorUpdateAck,
+ accessRequest AccessRequest,
+ accessConfirmation AccessConfirmation,
+ accessRejection AccessRejection,
+ requestInProgress RequestInProgress,
+ nonStandardRequest NonStandardRequest,
+ nonStandardConfirmation NonStandardConfirmation,
+ nonStandardRejection NonStandardRejection,
+ unknownMessageResponse UnknownMessageResponse,
+ usageRequest UsageRequest,
+ usageConfirmation UsageConfirmation,
+ usageIndication UsageIndication,
+ usageIndicationConfirmation UsageIndicationConfirmation,
+ usageIndicationRejection UsageIndicationRejection,
+ usageRejection UsageRejection,
+ validationRequest ValidationRequest,
+ validationConfirmation ValidationConfirmation,
+ validationRejection ValidationRejection,
+ ...,
+ authenticationRequest AuthenticationRequest,
+ authenticationConfirmation AuthenticationConfirmation,
+ authenticationRejection AuthenticationRejection
+}
+
+MessageCommonInfo ::= SEQUENCE {
+ sequenceNumber INTEGER(0..65535),
+ annexGversion ProtocolVersion, -- set to "H.225.0 Annex G V2"
+ hopCount INTEGER(1..255),
+ replyAddress SEQUENCE OF TransportAddress OPTIONAL,
+ -- Must be present in request
+ integrityCheckValue ICV OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ ...,
+ serviceID ServiceID OPTIONAL,
+ genericData SEQUENCE OF GenericData OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ version ProtocolVersion -- current H.501 protocol version
+}
+
+ServiceID ::= GloballyUniqueID
+
+--
+-- H.501 messages
+--
+ServiceRequest ::= SEQUENCE {
+ elementIdentifier ElementIdentifier OPTIONAL,
+ domainIdentifier AliasAddress OPTIONAL,
+ securityMode SEQUENCE OF SecurityMode OPTIONAL,
+ timeToLive INTEGER(1..4294967295) OPTIONAL,
+ ...,
+ usageSpec UsageSpecification OPTIONAL
+}
+
+SecurityMode ::= SEQUENCE {
+ authentication AuthenticationMechanism OPTIONAL,
+ integrity IntegrityMechanism OPTIONAL,
+ algorithmOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ ...
+}
+
+ServiceConfirmation ::= SEQUENCE {
+ elementIdentifier ElementIdentifier,
+ domainIdentifier AliasAddress,
+ alternates AlternatePEInfo OPTIONAL,
+ securityMode SecurityMode OPTIONAL,
+ timeToLive INTEGER(1..4294967295) OPTIONAL,
+ ...,
+ usageSpec UsageSpecification OPTIONAL
+}
+
+ServiceRejection ::= SEQUENCE {
+ reason ServiceRejectionReason,
+ alternates AlternatePEInfo OPTIONAL,
+ ...
+}
+
+ServiceRejectionReason ::= CHOICE {
+ serviceUnavailable NULL,
+ serviceRedirected NULL,
+ security NULL,
+ continue NULL,
+ undefined NULL,
+ ...,
+ unknownServiceID NULL,
+ cannotSupportUsageSpec NULL, -- Cannot comply with proposed spec
+ neededFeature NULL,
+ genericDataReason NULL,
+ usageUnavailable NULL, -- Usage reporting not supported
+ unknownUsageSendTo NULL -- Usage sendTo could not be resolved
+}
+
+ServiceRelease ::= SEQUENCE {
+ reason ServiceReleaseReason,
+ alternates AlternatePEInfo OPTIONAL,
+ ...
+}
+
+ServiceReleaseReason ::= CHOICE {
+ outOfService NULL,
+ maintenance NULL,
+ terminated NULL,
+ expired NULL,
+ ...
+}
+
+DescriptorRequest ::= SEQUENCE {descriptorID SEQUENCE OF DescriptorID,
+ ...
+}
+
+DescriptorConfirmation ::= SEQUENCE {descriptor SEQUENCE OF Descriptor,
+ ...
+}
+
+DescriptorRejection ::= SEQUENCE {
+ reason DescriptorRejectionReason,
+ descriptorID DescriptorID OPTIONAL,
+ ...
+}
+
+DescriptorRejectionReason ::= CHOICE {
+ packetSizeExceeded NULL, -- use other transport type
+ illegalID NULL, -- no descriptor for provided descriptorID
+ security NULL, -- request did not meet security requirements
+ hopCountExceeded NULL,
+ noServiceRelationship NULL,
+ undefined NULL,
+ ...,
+ neededFeature NULL,
+ genericDataReason NULL,
+ unknownServiceID NULL-- The serviceID is not recognized by--
+ -- the peer element
+}
+
+DescriptorIDRequest ::= SEQUENCE {...
+}
+
+DescriptorIDConfirmation ::= SEQUENCE {
+ descriptorInfo SEQUENCE OF DescriptorInfo,
+ ...
+}
+
+DescriptorIDRejection ::= SEQUENCE {reason DescriptorIDRejectionReason,
+ ...
+}
+
+DescriptorIDRejectionReason ::= CHOICE {
+ noDescriptors NULL, -- no descriptors to report
+ security NULL, -- request did not meet security requirements
+ hopCountExceeded NULL,
+ noServiceRelationship NULL,
+ undefined NULL,
+ ...,
+ neededFeature NULL,
+ genericDataReason NULL,
+ unknownServiceID NULL-- The serviceID is not recognized by--
+ -- the peer element
+}
+
+DescriptorUpdate ::= SEQUENCE {
+ sender AliasAddress,
+ updateInfo SEQUENCE OF UpdateInformation,
+ ...
+}
+
+UpdateInformation ::= SEQUENCE {
+ descriptorInfo
+ CHOICE {descriptorID DescriptorID,
+ descriptor Descriptor,
+ ...},
+ updateType CHOICE {added NULL,
+ deleted NULL,
+ changed NULL,
+ ...},
+ ...
+}
+
+DescriptorUpdateAck ::= SEQUENCE {...
+}
+
+AccessRequest ::= SEQUENCE {
+ destinationInfo PartyInformation,
+ sourceInfo PartyInformation OPTIONAL,
+ callInfo CallInformation OPTIONAL,
+ usageSpec UsageSpecification OPTIONAL,
+ ...,
+ desiredProtocols SEQUENCE OF SupportedProtocols OPTIONAL
+}
+
+AccessConfirmation ::= SEQUENCE {
+ templates SEQUENCE OF AddressTemplate,
+ partialResponse BOOLEAN,
+ ...,
+ supportedProtocols SEQUENCE OF SupportedProtocols OPTIONAL,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL
+}
+
+AccessRejection ::= SEQUENCE {
+ reason AccessRejectionReason,
+ ...,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL
+}
+
+AccessRejectionReason ::= CHOICE {
+ noMatch NULL, -- no template matched the destinationInfo
+ packetSizeExceeded NULL, -- use other transport type
+ security NULL, -- request did not meet security requirements
+ hopCountExceeded NULL,
+ needCallInformation NULL, -- Call Information must be specified
+ noServiceRelationship NULL,
+ undefined NULL,
+ ...,
+ neededFeature NULL,
+ genericDataReason NULL,
+ destinationUnavailable NULL, -- Destination was resolved but is
+
+ -- unavailable
+ aliasesInconsistent NULL, -- Multiple aliases identify distinct
+
+ -- destinations
+ resourceUnavailable NULL, -- One or more required resources are
+
+ -- unavailable
+ incompleteAddress NULL, -- Destination cannot be distinctly
+
+ -- identified
+ unknownServiceID NULL, -- The serviceID is not recognized by
+
+ -- the peer element
+ usageUnavailable NULL, -- Usage reporting not supported
+ cannotSupportUsageSpec NULL, -- Cannot comply with proposed spec
+ unknownUsageSendTo NULL -- Usage sendTo could not be resolved
+}
+
+UsageRequest ::= SEQUENCE {
+ callInfo CallInformation,
+ usageSpec UsageSpecification,
+ ...
+}
+
+UsageConfirmation ::= SEQUENCE {...
+}
+
+UsageRejection ::= SEQUENCE {reason UsageRejectReason,
+ ...
+}
+
+UsageIndication ::= SEQUENCE {
+ callInfo CallInformation,
+ accessTokens SEQUENCE OF AccessToken OPTIONAL,
+ senderRole Role,
+ usageCallStatus UsageCallStatus,
+ srcInfo PartyInformation OPTIONAL,
+ destAddress PartyInformation,
+ startTime TimeStamp OPTIONAL,
+ endTime TimeStamp OPTIONAL,
+ terminationCause TerminationCause OPTIONAL,
+ usageFields SEQUENCE OF UsageField,
+ ...
+}
+
+UsageField ::= SEQUENCE {id OBJECT IDENTIFIER,
+ value OCTET STRING,
+ ...
+}
+
+UsageRejectReason ::= CHOICE {
+ invalidCall NULL,
+ unavailable NULL,
+ security NULL,
+ noServiceRelationship NULL,
+ undefined NULL,
+ ...,
+ neededFeature NULL,
+ genericDataReason NULL,
+ unknownServiceID NULL-- The serviceID is not recognized by--
+ -- the peer element
+}
+
+UsageIndicationConfirmation ::= SEQUENCE {...
+}
+
+UsageIndicationRejection ::= SEQUENCE {
+ reason UsageIndicationRejectionReason,
+ ...
+}
+
+UsageIndicationRejectionReason ::= CHOICE {
+ unknownCall NULL,
+ incomplete NULL,
+ security NULL,
+ noServiceRelationship NULL,
+ undefined NULL,
+ ...,
+ neededFeature NULL,
+ genericDataReason NULL,
+ unknownServiceID NULL-- The serviceID is not recognized by--
+ -- the peer element
+}
+
+ValidationRequest ::= SEQUENCE {
+ accessToken SEQUENCE OF AccessToken OPTIONAL,
+ destinationInfo PartyInformation OPTIONAL,
+ sourceInfo PartyInformation OPTIONAL,
+ callInfo CallInformation,
+ usageSpec UsageSpecification OPTIONAL,
+ ...
+}
+
+ValidationConfirmation ::= SEQUENCE {
+ destinationInfo PartyInformation OPTIONAL,
+ usageSpec UsageSpecification OPTIONAL,
+ ...
+}
+
+ValidationRejection ::= SEQUENCE {reason ValidationRejectionReason,
+ ...
+}
+
+ValidationRejectionReason ::= CHOICE {
+ tokenNotValid NULL,
+ security NULL, -- request did not meet security requirements
+ hopCountExceeded NULL,
+ missingSourceInfo NULL,
+ missingDestInfo NULL,
+ noServiceRelationship NULL,
+ undefined NULL,
+ ...,
+ neededFeature NULL,
+ genericDataReason NULL,
+ unknownServiceID NULL-- The serviceID is not recognized by--
+ -- the peer element
+}
+
+RequestInProgress ::= SEQUENCE {
+ delay INTEGER(1..65535),
+ ...,
+ serviceControl SEQUENCE OF ServiceControlSession OPTIONAL
+}
+
+NonStandardRequest ::= SEQUENCE {...
+}
+
+NonStandardConfirmation ::= SEQUENCE {...
+}
+
+NonStandardRejection ::= SEQUENCE {reason NonStandardRejectionReason,
+ ...
+}
+
+NonStandardRejectionReason ::= CHOICE {
+ notSupported NULL,
+ noServiceRelationship NULL,
+ undefined NULL,
+ ...,
+ neededFeature NULL,
+ genericDataReason NULL,
+ unknownServiceID NULL-- The serviceID is not recognized by--
+ -- the peer element
+}
+
+UnknownMessageResponse ::= SEQUENCE {
+ unknownMessage OCTET STRING,
+ reason UnknownMessageReason,
+ ...
+}
+
+UnknownMessageReason ::= CHOICE {notUnderstood NULL,
+ undefined NULL,
+ ...
+}
+
+AuthenticationRequest ::= SEQUENCE {
+ applicationMessage ApplicationMessage, -- e.g. RAS message in
+
+ -- ITU-T Rec. H.323
+ ...
+}
+
+ApplicationMessage ::= OCTET STRING
+
+AuthenticationConfirmation ::= SEQUENCE {...
+}
+
+AuthenticationRejection ::= SEQUENCE {
+ reason AuthenticationRejectionReason,
+ ...
+}
+
+AuthenticationRejectionReason ::= CHOICE {
+ security NULL,
+ hopCountExceeded NULL,
+ noServiceRelationship NULL,
+ undefined NULL,
+ neededFeature NULL,
+ genericDataReason NULL,
+ unknownServiceID NULL,
+ securityWrongSyncTime NULL, -- time server problem or network delay
+ securityReplay NULL, -- replay attack encountered
+ securityWrongGeneralID NULL, -- wrong general ID
+ securityWrongSendersID NULL, -- wrong senders ID
+ securityIntegrityFailed NULL, -- integrity check failed
+ securityWrongOID NULL, -- wrong token OIDs or crypto alg OIDs
+ ...
+}
+
+--
+-- structures common to multiple messages
+--
+AddressTemplate ::= SEQUENCE {
+ pattern SEQUENCE OF Pattern,
+ routeInfo SEQUENCE OF RouteInformation,
+ timeToLive INTEGER(1..4294967295),
+ ...,
+ supportedProtocols SEQUENCE OF SupportedProtocols OPTIONAL,
+ featureSet FeatureSet OPTIONAL
+}
+
+Pattern ::= CHOICE {
+ specific AliasAddress,
+ wildcard AliasAddress,
+ range SEQUENCE {startOfRange PartyNumber,
+ endOfRange PartyNumber},
+ ...
+}
+
+RouteInformation ::= SEQUENCE {
+ messageType
+ CHOICE {sendAccessRequest NULL,
+ sendSetup NULL,
+ nonExistent NULL,
+ ...},
+ callSpecific BOOLEAN,
+ usageSpec UsageSpecification OPTIONAL,
+ priceInfo SEQUENCE OF PriceInfoSpec OPTIONAL,
+ contacts SEQUENCE OF ContactInformation,
+ type EndpointType OPTIONAL,
+ -- must be present if messageType = sendSetup
+ ...,
+ featureSet FeatureSet OPTIONAL,
+ circuitID CircuitInfo OPTIONAL,
+ supportedCircuits SEQUENCE OF CircuitIdentifier OPTIONAL
+}
+
+ContactInformation ::= SEQUENCE {
+ transportAddress AliasAddress,
+ priority INTEGER(0..127),
+ transportQoS TransportQOS OPTIONAL,
+ security SEQUENCE OF SecurityMode OPTIONAL,
+ accessTokens SEQUENCE OF AccessToken OPTIONAL,
+ ...,
+ multipleCalls BOOLEAN OPTIONAL,
+ featureSet FeatureSet OPTIONAL,
+ circuitID CircuitInfo OPTIONAL,
+ supportedCircuits SEQUENCE OF CircuitIdentifier OPTIONAL
+}
+
+PriceInfoSpec ::= SEQUENCE {
+ currency IA5String(SIZE (3)), -- e.g. "USD"
+ currencyScale INTEGER(-127..127),
+ validFrom GlobalTimeStamp OPTIONAL,
+ validUntil GlobalTimeStamp OPTIONAL,
+ hoursFrom IA5String(SIZE (6)) OPTIONAL, -- "HHMMSS" UTC
+ hoursUntil IA5String(SIZE (6)) OPTIONAL, -- "HHMMSS" UTC
+ priceElement SEQUENCE OF PriceElement OPTIONAL,
+ priceFormula IA5String(SIZE (1..2048)) OPTIONAL,
+ ...
+}
+
+PriceElement ::= SEQUENCE {
+ amount INTEGER(0..4294967295), -- meter increment
+ quantum INTEGER(0..4294967295), -- each or part thereof
+ units
+ CHOICE {seconds NULL,
+ packets NULL,
+ bytes NULL,
+ initial NULL,
+ minimum NULL,
+ maximum NULL,
+ ...},
+ ...
+}
+
+Descriptor ::= SEQUENCE {
+ descriptorInfo DescriptorInfo,
+ templates SEQUENCE OF AddressTemplate,
+ gatekeeperID GatekeeperIdentifier OPTIONAL,
+ ...
+}
+
+DescriptorInfo ::= SEQUENCE {
+ descriptorID DescriptorID,
+ lastChanged GlobalTimeStamp,
+ ...
+}
+
+AlternatePEInfo ::= SEQUENCE {
+ alternatePE SEQUENCE OF AlternatePE,
+ alternateIsPermanent BOOLEAN,
+ ...
+}
+
+AlternatePE ::= SEQUENCE {
+ contactAddress AliasAddress,
+ priority INTEGER(1..127),
+ elementIdentifier ElementIdentifier OPTIONAL,
+ ...
+}
+
+AccessToken ::= CHOICE {
+ token ClearToken,
+ cryptoToken CryptoH323Token,
+ ...,
+ genericData GenericData
+}
+
+CallInformation ::= SEQUENCE {
+ callIdentifier CallIdentifier,
+ conferenceID ConferenceIdentifier,
+ ...,
+ circuitID CircuitInfo OPTIONAL
+}
+
+UsageCallStatus ::= CHOICE {
+ preConnect NULL, -- Call has not started
+ callInProgress NULL, -- Call is in progress
+ callEnded NULL, -- Call ended
+ ...,
+ registrationLost NULL -- Uncertain if call ended or not
+}
+
+UserInformation ::= SEQUENCE {
+ userIdentifier AliasAddress,
+ userAuthenticator SEQUENCE OF CryptoH323Token OPTIONAL,
+ ...
+}
+
+UsageSpecification ::= SEQUENCE {
+ sendTo ElementIdentifier,
+ when
+ SEQUENCE {never NULL OPTIONAL,
+ start NULL OPTIONAL,
+ end NULL OPTIONAL,
+ period INTEGER(1..65535) OPTIONAL, -- in seconds--
+ failures NULL OPTIONAL,
+ ...},
+ required SEQUENCE OF OBJECT IDENTIFIER,
+ preferred SEQUENCE OF OBJECT IDENTIFIER,
+ ...,
+ sendToPEAddress AliasAddress OPTIONAL
+}
+
+PartyInformation ::= SEQUENCE {
+ logicalAddresses SEQUENCE OF AliasAddress,
+ domainIdentifier AliasAddress OPTIONAL,
+ transportAddress AliasAddress OPTIONAL,
+ endpointType EndpointType OPTIONAL,
+ userInfo UserInformation OPTIONAL,
+ timeZone TimeZone OPTIONAL,
+ ...
+}
+
+Role ::= CHOICE {
+ originator NULL,
+ destination NULL,
+ nonStandardData NonStandardParameter,
+ ...
+}
+
+TimeZone ::= INTEGER(-43200..43200) -- number of seconds relative to UTC
+
+
+-- including DST if appropriate
+TerminationCause ::= SEQUENCE {
+ releaseCompleteReason ReleaseCompleteReason,
+ causeIE INTEGER(1..65535) OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+ProtocolVersion ::= OBJECT IDENTIFIER
+
+-- shall be set to
+-- {itu-t(0) recommendation(0) h(8) h-225-0(2250) annex(1) g(7)
+-- version(0) 2} in field annexGversion;
+-- {itu-t(0) recommendation(0) h(8) 501 version(0) 1}
+-- in field version
+DescriptorID ::=
+ GloballyUniqueID
+
+ElementIdentifier ::= BMPString(SIZE (1..128))
+
+GlobalTimeStamp ::= IA5String(SIZE (14))
+
+-- UTC, in the form YYYYMMDDHHmmSS
+-- where YYYY = year, MM = month, DD = day,
+-- HH = hour, mm = minute, SS = second
+-- (for example, 19981219120000 for noon
+-- 19 December 1998)
+--
+-- REPOSITORY FOR APPLICATION SPECIFIC DATA
+--
+-- H.225.0 Annex-G profile data
+--
+idAnnexGProfiles INTEGER ::=
+ 0
+
+idAnnexGProfileA INTEGER ::= 1
+
+--annexGProfileA EnumeratedParameter ::=
+--{
+-- id standard:idAnnexGProfileA
+--}
+END -- of H501-MESSAGES
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h501/Makefile.am b/epan/dissectors/asn1/h501/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/h501/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/h501/Makefile.common b/epan/dissectors/asn1/h501/Makefile.common
new file mode 100644
index 0000000000..2bb469357a
--- /dev/null
+++ b/epan/dissectors/asn1/h501/Makefile.common
@@ -0,0 +1,48 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = h501
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ H501-MESSAGES.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF = \
+ $(builddir)/../h225/h225-exp.cnf \
+ $(builddir)/../h235/h235-exp.cnf
+
+$(builddir)/../h225/h225-exp.cnf:
+ (cd $(builddir)/../h225 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../h235/h235-exp.cnf:
+ (cd $(builddir)/../h235 && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/h501/Makefile.nmake b/epan/dissectors/asn1/h501/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/h501/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/h501/h501.cnf b/epan/dissectors/asn1/h501/h501.cnf
new file mode 100644
index 0000000000..0664c39596
--- /dev/null
+++ b/epan/dissectors/asn1/h501/h501.cnf
@@ -0,0 +1,26 @@
+# h501.cnf
+# H.501 conformation file
+# 2007 Tomas Kukosa
+
+#.INCLUDE ../h225/h225-exp.cnf
+#.INCLUDE ../h235/h235-exp.cnf
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.PDU
+Message
+#.END
+
+#.FN_PARS MessageBody
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h501_MessageBody_vals));
+ if (p )
+ col_set_str(actx->pinfo->cinfo, COL_INFO, p);
+#.END
diff --git a/epan/dissectors/asn1/h501/packet-h501-template.c b/epan/dissectors/asn1/h501/packet-h501-template.c
new file mode 100644
index 0000000000..f4ee5e2c50
--- /dev/null
+++ b/epan/dissectors/asn1/h501/packet-h501-template.c
@@ -0,0 +1,156 @@
+/* packet-h501.c
+ * Routines for H.501 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-tpkt.h"
+#include "packet-per.h"
+#include "packet-h225.h"
+#include "packet-h235.h"
+
+#define PNAME "H.501 Mobility"
+#define PSNAME "H.501"
+#define PFNAME "h501"
+
+void proto_register_h501(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_h501 = -1;
+#include "packet-h501-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_h501 = -1;
+#include "packet-h501-ett.c"
+
+/* Dissectors */
+static dissector_handle_t h501_pdu_handle;
+
+/* Preferences */
+static guint h501_udp_port = 2099;
+static guint h501_tcp_port = 2099;
+static gboolean h501_desegment_tcp = TRUE;
+
+void proto_reg_handoff_h501(void);
+
+#include "packet-h501-fn.c"
+
+static int
+dissect_h501_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ proto_item *ti = NULL;
+ proto_tree *h501_tree = NULL;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
+
+ ti = proto_tree_add_item(tree, proto_h501, tvb, 0, -1, ENC_NA);
+ h501_tree = proto_item_add_subtree(ti, ett_h501);
+
+ return dissect_Message_PDU(tvb, pinfo, h501_tree, NULL);
+}
+
+static int
+dissect_h501_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ dissect_tpkt_encap(tvb, pinfo, tree, FALSE, h501_pdu_handle);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_h501_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ dissect_tpkt_encap(tvb, pinfo, tree, h501_desegment_tcp, h501_pdu_handle);
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_h501 ----------------------------------------------*/
+void proto_register_h501(void) {
+ module_t *h501_module;
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h501-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_h501,
+#include "packet-h501-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h501 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h501, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_dissector(PFNAME, dissect_h501_pdu, proto_h501);
+
+ h501_module = prefs_register_protocol(proto_h501, proto_reg_handoff_h501);
+ prefs_register_uint_preference(h501_module, "udp.port",
+ "UDP port",
+ "Port to be decoded as h501",
+ 10, &h501_udp_port);
+ prefs_register_uint_preference(h501_module, "tcp.port",
+ "TCP port",
+ "Port to be decoded as h501",
+ 10, &h501_tcp_port);
+ prefs_register_bool_preference(h501_module, "desegment",
+ "Desegment H.501 over TCP",
+ "Desegment H.501 messages that span more TCP segments",
+ &h501_desegment_tcp);
+
+}
+
+/*--- proto_reg_handoff_h501 -------------------------------------------*/
+void proto_reg_handoff_h501(void)
+{
+ static gboolean h501_prefs_initialized = FALSE;
+ static dissector_handle_t h501_udp_handle;
+ static dissector_handle_t h501_tcp_handle;
+ static guint saved_h501_udp_port;
+ static guint saved_h501_tcp_port;
+
+ if (!h501_prefs_initialized) {
+ h501_pdu_handle = find_dissector(PFNAME);
+ h501_udp_handle = create_dissector_handle(dissect_h501_udp, proto_h501);
+ h501_tcp_handle = create_dissector_handle(dissect_h501_tcp, proto_h501);
+ h501_prefs_initialized = TRUE;
+ } else {
+ dissector_delete_uint("udp.port", saved_h501_udp_port, h501_udp_handle);
+ dissector_delete_uint("tcp.port", saved_h501_tcp_port, h501_tcp_handle);
+ }
+
+ /* Set our port number for future use */
+ saved_h501_udp_port = h501_udp_port;
+ dissector_add_uint("udp.port", saved_h501_udp_port, h501_udp_handle);
+ saved_h501_tcp_port = h501_tcp_port;
+ dissector_add_uint("tcp.port", saved_h501_tcp_port, h501_tcp_handle);
+
+}
+
diff --git a/epan/dissectors/asn1/hnbap/CMakeLists.txt b/epan/dissectors/asn1/hnbap/CMakeLists.txt
new file mode 100644
index 0000000000..cfafad212e
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME hnbap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ HNBAP-CommonDataTypes.asn
+ HNBAP-Constants.asn
+ HNBAP-Containers.asn
+ HNBAP-IEs.asn
+ HNBAP-PDU-Contents.asn
+ HNBAP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/hnbap/HNBAP-CommonDataTypes.asn b/epan/dissectors/asn1/hnbap/HNBAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..8097a3e1f6
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/HNBAP-CommonDataTypes.asn
@@ -0,0 +1,55 @@
+-- HNBAP-CommonDataTypes.asn
+--
+-- 3GPP TS 25.469 V10.1.0 (2011-06)
+-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
+--
+-- 9.3.5 Common Definitions
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+HNBAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..65535),
+ global OBJECT IDENTIFIER
+}
+
+
+ProcedureCode ::= INTEGER (0..255)
+
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome }
+
+END
diff --git a/epan/dissectors/asn1/hnbap/HNBAP-Constants.asn b/epan/dissectors/asn1/hnbap/HNBAP-Constants.asn
new file mode 100644
index 0000000000..befb935c4b
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/HNBAP-Constants.asn
@@ -0,0 +1,92 @@
+-- HNBAP-Constants.asn
+--
+-- 3GPP TS 25.469 V10.1.0 (2011-06)
+-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
+--
+-- 9.3.6 Constant Definitions
+--
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+HNBAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM HNBAP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+id-HNBRegister ProcedureCode ::= 1
+id-HNBDe-Register ProcedureCode ::= 2
+id-UERegister ProcedureCode ::= 3
+id-UEDe-Register ProcedureCode ::= 4
+id-ErrorIndication ProcedureCode ::= 5
+id-privateMessage ProcedureCode ::= 6
+id-CSGMembershipUpdate ProcedureCode ::= 7
+id-TNLUpdate ProcedureCode ::= 9
+id-HNBConfigTransfer ProcedureCode ::= 10
+id-RelocationComplete ProcedureCode ::= 11
+
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+maxNrOfErrors INTEGER ::= 256
+maxnoofRABs INTEGER ::= 256
+maxnoofNeighbours INTEGER ::= 32
+maxnoofIurhAddresses INTEGER ::= 3
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Cause ProtocolIE-ID ::= 1
+id-CriticalityDiagnostics ProtocolIE-ID ::= 2
+id-HNB-Identity ProtocolIE-ID ::= 3
+id-Context-ID ProtocolIE-ID ::= 4
+id-UE-Identity ProtocolIE-ID ::= 5
+id-LAC ProtocolIE-ID ::= 6
+id-RAC ProtocolIE-ID ::= 7
+id-HNB-Location-Information ProtocolIE-ID ::= 8
+id-PLMNidentity ProtocolIE-ID ::= 9
+id-SAC ProtocolIE-ID ::= 10
+id-CellIdentity ProtocolIE-ID ::= 11
+id-Registration-Cause ProtocolIE-ID ::= 12
+id-UE-Capabilities ProtocolIE-ID ::= 13
+id-RNC-ID ProtocolIE-ID ::= 14
+id-CSG-ID ProtocolIE-ID ::= 15
+id-BackoffTimer ProtocolIE-ID ::= 16
+id-HNB-Internet-Information ProtocolIE-ID ::= 17
+id-HNB-Cell-Access-Mode ProtocolIE-ID ::= 18
+id-MuxPortNumber ProtocolIE-ID ::= 19
+id-Service-Area-For-Broadcast ProtocolIE-ID ::= 20
+id-CSGMembershipStatus ProtocolIE-ID ::= 21
+id-RABList ProtocolIE-ID ::= 22
+id-HNBConfigInfo ProtocolIE-ID ::= 23
+id-AccessResult ProtocolIE-ID ::= 25
+id-Update-cause ProtocolIE-ID ::= 26
+id-NeighbourInfoList ProtocolIE-ID ::= 27
+id-NeighbourInfoRequestList ProtocolIE-ID ::= 28
+id-Iurh-Signalling-TNL-Address ProtocolIE-ID ::= 29
+id-PSC ProtocolIE-ID ::= 30
+id-HNB-Cell-Identifier ProtocolIE-ID ::= 31
+
+
+END
diff --git a/epan/dissectors/asn1/hnbap/HNBAP-Containers.asn b/epan/dissectors/asn1/hnbap/HNBAP-Containers.asn
new file mode 100644
index 0000000000..f00c4d0e2d
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/HNBAP-Containers.asn
@@ -0,0 +1,157 @@
+-- HNBAP-Containers.asn
+--
+-- 3GPP TS 25.469 V10.1.0 (2011-06)
+-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
+--
+-- 9.3.7 Container Definitions
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+HNBAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID,
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM HNBAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+HNBAP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+HNBAP-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
+--
+-- **************************************************************
+
+HNBAP-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 {HNBAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {HNBAP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {HNBAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id HNBAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality HNBAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value HNBAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, HNBAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {HNBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {HNBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id HNBAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality HNBAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue HNBAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {HNBAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {HNBAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id HNBAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality HNBAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value HNBAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/epan/dissectors/asn1/hnbap/HNBAP-IEs.asn b/epan/dissectors/asn1/hnbap/HNBAP-IEs.asn
new file mode 100644
index 0000000000..3a4fa1c65c
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/HNBAP-IEs.asn
@@ -0,0 +1,518 @@
+-- HNBAP-IEs.asn
+--
+-- 3GPP TS 25.469 V10.1.0 (2011-06)
+-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
+--
+-- 9.3.4 Information Element Definitions
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+HNBAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxNrOfErrors,
+ maxnoofRABs,
+ maxnoofNeighbours,
+ maxnoofIurhAddresses,
+ id-HNB-Internet-Information,
+ id-HNB-Cell-Identifier
+
+FROM HNBAP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM HNBAP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ HNBAP-PROTOCOL-EXTENSION
+FROM HNBAP-Containers;
+
+
+--A
+Access-stratum-release-indicator ::= ENUMERATED {r99,
+ rel-4, rel-5, rel-6, rel-7, rel-8-and-beyond,
+ ...}
+
+AccessResult ::= ENUMERATED {allowed, notAllowed, ...}
+
+AltitudeAndDirection ::= SEQUENCE {
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ ...
+}
+
+--B
+BackoffTimer ::= INTEGER(0..3600)
+
+BindingID ::= OCTET STRING(SIZE(1..4,...))
+
+--C
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+CauseRadioNetwork ::= ENUMERATED {
+ overload,
+ unauthorised-Location,
+ unauthorised-HNB,
+ hNB-parameter-mismatch,
+ invalid-UE-identity,
+ uE-not-allowed-on-this-HNB,
+ uE-unauthorised,
+ connection-with-UE-lost,
+ ue-RRC-telease,
+ hNB-not-registered,
+ unspecified,
+ normal,
+ uE-relocated,
+ ue-registered-in-another-HNB,
+ ...
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseProtocol ::= ENUMERATED {
+ transfer-syntax-error,
+ abstract-syntax-error-reject,
+ abstract-syntax-error-ignore-and-notify,
+ message-not-compatible-with-receiver-state,
+ semantic-error,
+ unspecified,
+ abstract-syntax-error-falsely-constructed-message,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ processing-overload,
+ hardware-failure,
+ o-and-m-intervention,
+ unspecified,
+ ...
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+Context-ID ::= BIT STRING (SIZE(24))
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSG-ID ::= BIT STRING (SIZE (27))
+
+CSG-Capability ::= ENUMERATED {
+ csg-capable,
+ not-csg-capable,
+ ...
+ }
+
+CSGMembershipStatus ::= ENUMERATED {
+ member,
+ non-member,
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CI ::= OCTET STRING (SIZE (2))
+
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+--D
+--E
+ESN ::= BIT STRING (SIZE(32))
+--F
+--G
+GeographicalLocation ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection AltitudeAndDirection,
+ iE-Extensions ProtocolExtensionContainer { { GeographicLocation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicLocation-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinates-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+
+--H
+
+HNB-Cell-Access-Mode::= ENUMERATED {
+ closed,
+ hybrid,
+ open,
+ ...
+}
+
+HNB-Cell-Identifier ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cellIdentity CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { { HNB-Cell-Identifier-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HNB-Cell-Identifier-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HNB-RNL-Identity ::= CHOICE {
+ hNB-Identity-as-Cell-Identifier HNB-Cell-Identifier,
+ ...
+}
+
+HNBConfigInfo ::= SEQUENCE {
+ hnb-RNL-Identity HNB-RNL-Identity,
+ configurationInformation ConfigurationInformation,
+ iE-Extensions ProtocolExtensionContainer { { HNBConfigInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HNBConfigInfo-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ConfigurationInformation ::= CHOICE {
+ provided HNBConfigurationInformationProvided,
+ missing HNBConfigurationInformationMissing,
+ ...
+}
+
+HNBConfigurationInformationProvided ::= SEQUENCE {
+
+ psc PSC OPTIONAL,
+ cSG-ID CSG-ID OPTIONAL,
+ hNB-Cell-Access-Mode HNB-Cell-Access-Mode,
+ iurh-Signalling-TNL-AddressList Iurh-Signalling-TNL-AddressList,
+ iE-Extensions ProtocolExtensionContainer { { HNBConfigurationInformationProvided-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HNBConfigurationInformationProvided-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HNBConfigurationInformationMissing ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { HNBConfigurationInformationMissing-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HNBConfigurationInformationMissing-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HNB-Location-Information ::= SEQUENCE {
+ macroCoverageInfo MacroCoverageInformation OPTIONAL,
+ geographicalCoordinates GeographicalLocation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HNB-Location-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HNB-Location-Information-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+-- Extension for release-8 to support IP address for location verification --
+{ID id-HNB-Internet-Information CRITICALITY reject EXTENSION IP-Address PRESENCE optional },
+ ...
+}
+
+
+
+HNB-Identity ::= SEQUENCE {
+ hNB-Identity-Info HNB-Identity-Info,
+ iE-Extensions ProtocolExtensionContainer { { HNB-Identity-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HNB-Identity-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HNB-Identity-Info ::= OCTET STRING (SIZE (1..255))
+
+--I
+
+IMEI ::= BIT STRING (SIZE(60))
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+-- Reference: 23.003
+IMSIDS41 ::= OCTET STRING (SIZE (5..7))
+
+IMSIESN ::= SEQUENCE {
+ iMSIDS41 IMSIDS41,
+ eSN ESN
+}
+
+
+IP-Address ::=SEQUENCE {
+ ipaddress CHOICE {
+ ipv4info Ipv4Address,
+ ipv6info Ipv6Address,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { IP-Address-ExtIEs } } OPTIONAL,
+ ...
+}
+
+IP-Address-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Ipv4Address ::= OCTET STRING (SIZE (4))
+
+Ipv6Address ::= OCTET STRING (SIZE (16))
+
+Iurh-Signalling-TNL-AddressList ::= SEQUENCE (SIZE(1..maxnoofIurhAddresses)) OF IP-Address
+
+
+--J
+--K
+--L
+LAC ::= OCTET STRING(SIZE(2))
+
+LAI ::= SEQUENCE {
+ pLMNID PLMNidentity,
+ lAC LAC,
+ ...
+ }
+
+-- M
+
+MacroCoverageInformation ::= SEQUENCE {
+ cellIdentity MacroCellID,
+ iE-Extensions ProtocolExtensionContainer { { MacroCoverageInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MacroCoverageInformation-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MacroCellID ::= CHOICE {
+ uTRANCellID UTRANCellID,
+ gERANCellID CGI,
+ ...
+}
+
+MuxPortNumber ::= INTEGER (1024..65535)
+
+--N
+
+NeighbourInfoList ::= SEQUENCE (SIZE(1..maxnoofNeighbours)) OF HNBConfigInfo
+
+NeighbourInfoRequestList ::= SEQUENCE (SIZE(1..maxnoofNeighbours)) OF NeighbourInfoRequestItem
+
+NeighbourInfoRequestItem ::= SEQUENCE {
+ hnb-RNL-Identity HNB-RNL-Identity,
+ iE-Extensions ProtocolExtensionContainer { { NeighbourInfoRequestItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NeighbourInfoRequestItem-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+--O
+--P
+PLMNidentity ::= OCTET STRING (SIZE (3))
+
+PSC ::= BIT STRING (SIZE(9))
+
+PTMSI ::= BIT STRING (SIZE(32))
+
+PTMSIRAI ::= SEQUENCE {
+ pTMSI PTMSI,
+ rAI RAI,
+ ...
+ }
+
+
+--Q
+--R
+
+RAB-ID ::= BIT STRING (SIZE (8))
+
+RABList ::= SEQUENCE (SIZE(1..maxnoofRABs)) OF RABListItem
+
+RABListItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ old-transport-Info TransportInfo,
+ new-transport-Info TransportInfo,
+ cn-domain-indicator CN-DomainIndicator,
+ iE-Extensions ProtocolExtensionContainer { { RABListItem-ExtIEs } } OPTIONAL,
+...
+}
+
+RABListItem-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAC ::= OCTET STRING(SIZE(1))
+
+RAI ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ ...
+}
+
+
+Registration-Cause ::= ENUMERATED {
+ emergency-call,
+ normal,
+ ...,
+ ue-relocation
+ }
+
+RNC-ID ::= INTEGER(0..65535)
+
+--S
+
+SAC ::= OCTET STRING(SIZE(2))
+
+--T
+TMSILAI ::= SEQUENCE {
+ tMSI BIT STRING(SIZE (32)),
+ lAI LAI
+}
+
+TMSIDS41 ::= OCTET STRING (SIZE (2..17))
+
+TransportInfo ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ transportAssociation CHOICE {
+ gtp-TEI GTP-TEI,
+ bindingID BindingID,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { TransportInfo-ExtIEs } } OPTIONAL,
+...
+}
+
+TransportInfo-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportLayerAddress ::= BIT STRING(SIZE(1..160,...))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+--U
+UE-Capabilities ::= SEQUENCE {
+ access-stratum-release-indicator Access-stratum-release-indicator,
+ csg-capability CSG-Capability,
+ iE-Extensions ProtocolExtensionContainer { { UE-Capabilities-ExtIEs } } OPTIONAL,
+...
+}
+
+UE-Capabilities-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UTRANCellID ::= SEQUENCE {
+ lAC LAC,
+ rAC RAC,
+ pLMNidentity PLMNidentity,
+ uTRANcellID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {UTRANCellID-ExtIEs} } OPTIONAL
+}
+
+UTRANCellID-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+UE-Identity ::= CHOICE {
+ iMSI IMSI,
+ tMSILAI TMSILAI,
+ pTMSIRAI PTMSIRAI,
+ iMEI IMEI,
+ eSN ESN,
+ iMSIDS41 IMSIDS41,
+ iMSIESN IMSIESN,
+ tMSIDS41 TMSIDS41,
+ ...
+}
+
+Update-cause ::= ENUMERATED {
+ relocation-preparation,
+ ...
+}
+
+--V
+--W
+--X
+--Y
+--Z
+
+
+END
diff --git a/epan/dissectors/asn1/hnbap/HNBAP-PDU-Contents.asn b/epan/dissectors/asn1/hnbap/HNBAP-PDU-Contents.asn
new file mode 100644
index 0000000000..97c974328c
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/HNBAP-PDU-Contents.asn
@@ -0,0 +1,490 @@
+-- HNBAP-PDU-Contents.asn
+--
+-- 3GPP TS 25.469 V10.1.0 (2011-06)
+-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
+--
+-- 9.3.3 PDU Definitions
+--
+
+HNBAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Cause,
+ CriticalityDiagnostics,
+ CSGMembershipStatus,
+ HNB-Location-Information,
+ HNB-Identity,
+ Context-ID,
+ UE-Identity,
+ LAC,
+ RAC,
+ SAC,
+ CN-DomainIndicator,
+ IP-Address,
+ Registration-Cause,
+ UE-Capabilities,
+ PLMNidentity,
+ CellIdentity,
+ RNC-ID,
+ CSG-ID,
+ HNB-Cell-Access-Mode,
+ BackoffTimer,
+ MuxPortNumber,
+ RABList,
+ HNBConfigInfo,
+ AccessResult,
+ Update-cause,
+ NeighbourInfoList,
+ NeighbourInfoRequestList,
+ PSC
+
+
+
+FROM HNBAP-IEs
+
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-Container{},
+ ProtocolIE-Single-Container{},
+ PrivateIE-Container{},
+ HNBAP-PRIVATE-IES,
+ HNBAP-PROTOCOL-EXTENSION,
+ HNBAP-PROTOCOL-IES
+
+FROM HNBAP-Containers
+
+ id-Cause,
+ id-CriticalityDiagnostics,
+ id-CSGMembershipStatus,
+ id-HNB-Location-Information,
+ id-HNB-Identity,
+ id-Context-ID,
+ id-PLMNidentity,
+ id-UE-Identity,
+ id-LAC,
+ id-RAC,
+ id-SAC,
+ id-UE-Capabilities,
+ id-Registration-Cause,
+ id-CellIdentity,
+ id-RNC-ID,
+ id-CSG-ID,
+ id-HNB-Cell-Access-Mode,
+ id-BackoffTimer,
+ id-Service-Area-For-Broadcast,
+ id-MuxPortNumber,
+ id-RABList,
+ id-HNBConfigInfo,
+ id-AccessResult,
+ id-Update-cause,
+ id-NeighbourInfoList,
+ id-NeighbourInfoRequestList,
+ id-Iurh-Signalling-TNL-Address,
+ id-PSC
+
+
+FROM HNBAP-Constants;
+
+-- **************************************************************
+--
+-- HNB Register REQUEST
+--
+-- **************************************************************
+
+HNBRegisterRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HNBRegisterRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {HNBRegisterRequestExtensions} } OPTIONAL,
+ ...
+}
+
+HNBRegisterRequestIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-HNB-Identity CRITICALITY reject TYPE HNB-Identity PRESENCE mandatory } |
+ { ID id-HNB-Location-Information CRITICALITY reject TYPE HNB-Location-Information PRESENCE mandatory } |
+ { ID id-PLMNidentity CRITICALITY reject TYPE PLMNidentity PRESENCE mandatory } |
+ { ID id-CellIdentity CRITICALITY reject TYPE CellIdentity PRESENCE mandatory } |
+ { ID id-LAC CRITICALITY reject TYPE LAC PRESENCE mandatory } |
+ { ID id-RAC CRITICALITY reject TYPE RAC PRESENCE mandatory } |
+ { ID id-SAC CRITICALITY reject TYPE SAC PRESENCE mandatory } |
+ { ID id-CSG-ID CRITICALITY reject TYPE CSG-ID PRESENCE optional } ,
+ ...
+}
+
+HNBRegisterRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Service-Area-For-Broadcast CRITICALITY ignore EXTENSION SAC PRESENCE optional }|
+ { ID id-HNB-Cell-Access-Mode CRITICALITY reject EXTENSION HNB-Cell-Access-Mode PRESENCE optional }|
+ { ID id-PSC CRITICALITY ignore EXTENSION PSC PRESENCE optional }|
+ { ID id-Iurh-Signalling-TNL-Address CRITICALITY ignore EXTENSION IP-Address PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HNB Register Accept
+--
+-- **************************************************************
+
+HNBRegisterAccept ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HNBRegisterResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {HNBRegisterResponseExtensions} } OPTIONAL,
+ ...
+}
+
+HNBRegisterResponseIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-RNC-ID CRITICALITY reject TYPE RNC-ID PRESENCE mandatory },
+ ...
+}
+
+HNBRegisterResponseExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 9 to support CS Multiplexing --
+ { ID id-MuxPortNumber CRITICALITY ignore EXTENSION MuxPortNumber PRESENCE optional}|
+ { ID id-Iurh-Signalling-TNL-Address CRITICALITY ignore EXTENSION IP-Address PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- HNB Register REJECT
+--
+-- **************************************************************
+
+HNBRegisterReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HNBRegisterRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {HNBRegisterRejectExtensions} } OPTIONAL,
+ ...
+}
+
+HNBRegisterRejectIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-BackoffTimer CRITICALITY reject TYPE BackoffTimer PRESENCE conditional },
+ -- This IE shall be present if the Cause IE is set to "Overload".
+ ...
+}
+
+HNBRegisterRejectExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- HNB De- Register
+--
+-- **************************************************************
+
+HNBDe-Register ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HNBDe-RegisterIEs} },
+ protocolExtensions ProtocolExtensionContainer { {HNBDe-RegisterExtensions} } OPTIONAL,
+ ...
+}
+
+HNBDe-RegisterIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-BackoffTimer CRITICALITY reject TYPE BackoffTimer PRESENCE conditional },
+ -- This IE shall be present if the Cause IE is set to "Overload".
+ ...
+}
+
+HNBDe-RegisterExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE Register REQUEST
+--
+-- **************************************************************
+
+UERegisterRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UERegisterRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {UERegisterRequestExtensions} } OPTIONAL,
+ ...
+}
+
+UERegisterRequestIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-UE-Identity CRITICALITY reject TYPE UE-Identity PRESENCE mandatory } |
+ { ID id-Registration-Cause CRITICALITY ignore TYPE Registration-Cause PRESENCE mandatory } |
+ { ID id-UE-Capabilities CRITICALITY reject TYPE UE-Capabilities PRESENCE mandatory },
+ ...
+}
+
+UERegisterRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Register ACCEPT
+--
+-- **************************************************************
+
+UERegisterAccept ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UERegisterAcceptIEs} },
+ protocolExtensions ProtocolExtensionContainer { {UERegisterAcceptExtensions} } OPTIONAL,
+ ...
+}
+
+UERegisterAcceptIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-UE-Identity CRITICALITY reject TYPE UE-Identity PRESENCE mandatory } |
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory },
+ ...
+}
+
+
+UERegisterAcceptExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CSGMembershipStatus CRITICALITY reject EXTENSION CSGMembershipStatus PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Register REJECT
+--
+-- **************************************************************
+
+UERegisterReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UERegisterRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {UERegisterRejectExtensions} } OPTIONAL,
+ ...
+}
+
+UERegisterRejectIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-UE-Identity CRITICALITY reject TYPE UE-Identity PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UERegisterRejectExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE De-Register
+--
+-- **************************************************************
+
+UEDe-Register ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UEDe-RegisterIEs} },
+ protocolExtensions ProtocolExtensionContainer { {UEDe-RegisterExtensions} } OPTIONAL,
+ ...
+}
+
+UEDe-RegisterIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } ,
+ ...
+}
+
+UEDe-RegisterExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CSG Membership Update
+--
+-- **************************************************************
+
+CSGMembershipUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CSGMembershipUpdateIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CSGMembershipUpdateExtensions} } OPTIONAL,
+ ...
+}
+
+CSGMembershipUpdateIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
+ { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE mandatory },
+ ...
+}
+
+CSGMembershipUpdateExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- TNL Update Request
+--
+-- **************************************************************
+
+TNLUpdateRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TNLUpdateRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {TNLUpdateExtensions} } OPTIONAL,
+ ...
+}
+
+TNLUpdateRequestIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
+ { ID id-RABList CRITICALITY reject TYPE RABList PRESENCE mandatory } |
+ { ID id-Update-cause CRITICALITY reject TYPE Update-cause PRESENCE mandatory } ,
+ ...
+}
+
+TNLUpdateExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- TNL UPDATE RESPONSE
+--
+-- **************************************************************
+
+TNLUpdateResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { TNLUpdateResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { TNLUpdateResponseExtensions} } OPTIONAL,
+ ...
+}
+
+TNLUpdateResponseIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } ,
+ ...
+}
+
+TNLUpdateResponseExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- TNL UPDATE FAILURE
+--
+-- **************************************************************
+
+TNLUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TNLUpdateFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {TNLUpdateFailureExtensions} } OPTIONAL,
+ ...
+}
+
+TNLUpdateFailureIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+TNLUpdateFailureExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- HNB Configuration Transfer Request
+--
+-- **************************************************************
+
+HNBConfigTransferRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HNBConfigTransferRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {HNBConfigTransferRequestExtensions} } OPTIONAL,
+ ...
+}
+
+HNBConfigTransferRequestIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-NeighbourInfoRequestList CRITICALITY reject TYPE NeighbourInfoRequestList PRESENCE mandatory } ,
+ ...
+}
+
+HNBConfigTransferRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- HNB Configuration Transfer Response
+--
+-- **************************************************************
+
+HNBConfigTransferResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HNBConfigTransferResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { HNBConfigTransferResponseExtensions} } OPTIONAL,
+ ...
+}
+
+HNBConfigTransferResponseIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-NeighbourInfoList CRITICALITY reject TYPE NeighbourInfoList PRESENCE mandatory } ,
+ ...
+}
+
+HNBConfigTransferResponseExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { RelocationCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { { RelocationCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCompleteIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Context-ID CRITICALITY ignore TYPE Context-ID PRESENCE mandatory } ,
+ ...
+}
+
+
+RelocationCompleteExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs HNBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+ErrorIndicationExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs HNBAP-PRIVATE-IES ::= {
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/hnbap/HNBAP-PDU-Descriptions.asn b/epan/dissectors/asn1/hnbap/HNBAP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..514d4510b9
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/HNBAP-PDU-Descriptions.asn
@@ -0,0 +1,231 @@
+-- HNBAP-PDU-Descriptions.asn
+--
+-- 3GPP TS 25.469 V10.1.0 (2011-06)
+-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
+--
+-- 9.3.2 Elementary Procedure definitions
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+-- **************************************************************
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+HNBAP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM HNBAP-CommonDataTypes
+
+ HNBRegisterRequest,
+ HNBRegisterAccept,
+ HNBRegisterReject,
+ HNBDe-Register,
+ UERegisterRequest,
+ UERegisterAccept,
+ UERegisterReject,
+ UEDe-Register,
+ ErrorIndication,
+ PrivateMessage,
+ CSGMembershipUpdate,
+ TNLUpdateRequest,
+ TNLUpdateResponse,
+ TNLUpdateFailure,
+ HNBConfigTransferRequest,
+ HNBConfigTransferResponse,
+ RelocationComplete
+
+
+FROM HNBAP-PDU-Contents
+ id-HNBRegister,
+ id-UERegister,
+ id-UEDe-Register,
+ id-HNBDe-Register,
+ id-ErrorIndication,
+ id-privateMessage,
+ id-CSGMembershipUpdate,
+ id-TNLUpdate,
+ id-HNBConfigTransfer,
+ id-RelocationComplete
+
+FROM HNBAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+HNBAP-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 definitions
+--
+-- **************************************************************
+
+HNBAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode HNBAP-ELEMENTARY-PROCEDURE.&procedureCode ({HNBAP-ELEMENTARY-PROCEDURES}),
+ criticality HNBAP-ELEMENTARY-PROCEDURE.&criticality ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value HNBAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode HNBAP-ELEMENTARY-PROCEDURE.&procedureCode ({HNBAP-ELEMENTARY-PROCEDURES}),
+ criticality HNBAP-ELEMENTARY-PROCEDURE.&criticality ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value HNBAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode HNBAP-ELEMENTARY-PROCEDURE.&procedureCode ({HNBAP-ELEMENTARY-PROCEDURES}),
+ criticality HNBAP-ELEMENTARY-PROCEDURE.&criticality ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value HNBAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+HNBAP-ELEMENTARY-PROCEDURES HNBAP-ELEMENTARY-PROCEDURE ::= {
+ HNBAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ HNBAP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+HNBAP-ELEMENTARY-PROCEDURES-CLASS-1 HNBAP-ELEMENTARY-PROCEDURE ::= {
+ hNBRegister|
+ uERegister,
+ ...,
+ tnlUpdate |
+ hNBConfigTransfer
+}
+
+
+HNBAP-ELEMENTARY-PROCEDURES-CLASS-2 HNBAP-ELEMENTARY-PROCEDURE ::= {
+ uEDe-Register |
+ hNBDe-Register |
+ errorIndication |
+ privateMessage,
+ ...,
+ csg-membership-update|
+ relocationComplete
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+
+hNBRegister HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HNBRegisterRequest
+ SUCCESSFUL OUTCOME HNBRegisterAccept
+ UNSUCCESSFUL OUTCOME HNBRegisterReject
+ PROCEDURE CODE id-HNBRegister
+ CRITICALITY reject
+}
+
+uERegister HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UERegisterRequest
+ SUCCESSFUL OUTCOME UERegisterAccept
+ UNSUCCESSFUL OUTCOME UERegisterReject
+ PROCEDURE CODE id-UERegister
+ CRITICALITY reject
+}
+
+uEDe-Register HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEDe-Register
+ PROCEDURE CODE id-UEDe-Register
+ CRITICALITY ignore
+}
+
+hNBDe-Register HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HNBDe-Register
+ PROCEDURE CODE id-HNBDe-Register
+ CRITICALITY ignore
+}
+
+errorIndication HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+csg-membership-update HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CSGMembershipUpdate
+ PROCEDURE CODE id-CSGMembershipUpdate
+ CRITICALITY ignore
+}
+
+tnlUpdate HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TNLUpdateRequest
+ SUCCESSFUL OUTCOME TNLUpdateResponse
+ UNSUCCESSFUL OUTCOME TNLUpdateFailure
+ PROCEDURE CODE id-TNLUpdate
+ CRITICALITY reject
+}
+
+hNBConfigTransfer HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HNBConfigTransferRequest
+ SUCCESSFUL OUTCOME HNBConfigTransferResponse
+ PROCEDURE CODE id-HNBConfigTransfer
+ CRITICALITY reject
+}
+
+relocationComplete HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationComplete
+ PROCEDURE CODE id-RelocationComplete
+ CRITICALITY ignore
+}
+
+privateMessage HNBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+END
diff --git a/epan/dissectors/asn1/hnbap/Makefile.am b/epan/dissectors/asn1/hnbap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/hnbap/Makefile.common b/epan/dissectors/asn1/hnbap/Makefile.common
new file mode 100644
index 0000000000..c9ddd35276
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = hnbap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ HNBAP-CommonDataTypes.asn \
+ HNBAP-Constants.asn \
+ HNBAP-Containers.asn \
+ HNBAP-IEs.asn \
+ HNBAP-PDU-Contents.asn \
+ HNBAP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/hnbap/Makefile.nmake b/epan/dissectors/asn1/hnbap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/hnbap/hnbap.cnf b/epan/dissectors/asn1/hnbap/hnbap.cnf
new file mode 100644
index 0000000000..d37a952120
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/hnbap.cnf
@@ -0,0 +1,265 @@
+# hnbap.cnf
+# hnbap conformation file
+# Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.PDU
+HNBAP-PDU
+
+##.MAKE_DEFINES
+#ProcedureCode
+
+#.MAKE_ENUM
+ProtocolIE-ID
+ProcedureCode
+
+#.TYPE_RENAME
+ProtocolIE-Field/value ProtocolIE_Field_value
+PrivateIE-Field/value PrivateIE_Field_value
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+ProtocolIE-Field/id protocol_ie_field_id
+PrivateIE-Field/id private_ie_field_id
+GeographicalLocation/geographicalCoordinates geographical_location_geographical_coordinates
+HNB-Location-Information/geographicalCoordinates hnb_location_information_geographical_coordinates
+
+#.OMIT_ASSIGNMENT
+Presence
+ProtocolIE-ContainerList
+ProtocolIE-Single-Container
+#.END
+
+#.NO_EMIT
+AccessResult
+#.END
+
+#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(hnbap_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+#.END
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ if (strcmp(val_to_str(ProcedureCode, hnbap_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "Unknown Message");
+ } /* Known Procedures should be included below and broken out as ELEMENTARY names to avoid confusion */
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+# There is no protocol inside HNBAP so fill col info with HNBAP elementary procedure name
+#.FN_BODY HNBRegisterRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "HNB_REGISTER_REQUEST ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HNBRegisterAccept
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "HNB_REGISTER_ACCEPT ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HNBRegisterReject
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "HNB_REGISTER_REJECT ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UERegisterRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "UE_REGISTER_REQUEST ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UERegisterAccept
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "UE_REGISTER_ACCEPT ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UERegisterReject
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "UE_REGISTER_REJECT ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UEDe-Register
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "UE_DE-REGISTER ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HNBDe-Register
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "HNB_DE-REGISTER ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY ErrorIndication
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "ERROR_INDICATION ");
+ col_set_fence(actx->pinfo->cinfo, COL_INFO); /* Protect info from CriticalityDiagnostics decodes */
+%(DEFAULT_BODY)s
+
+#.FN_BODY CSGMembershipUpdate
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "CSG_MEMBERSHIP_UPDATE_MESSAGE ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY PrivateMessage
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "PRIVATE_MESSAGE ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY TNLUpdateRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "TNL_UPDATE_REQUEST_MESSAGE ");
+%(DEFAULT_BODY)s
+#.FN_BODY TNLUpdateResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "TNL_UPDATE_RESPONSE_MESSAGE ");
+%(DEFAULT_BODY)s
+#.FN_BODY TNLUpdateFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "TNL_UPDATE_FAILURE_MESSAGE ");
+%(DEFAULT_BODY)s
+#.FN_BODY HNBConfigTransferRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "HNB_CONFIG_TRANSFER_REQUEST_MESSAGE ");
+%(DEFAULT_BODY)s
+#.FN_BODY HNBConfigTransferResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "HNB_CONFIG_TRANSFER_RESPONSE_MESSAGE ");
+%(DEFAULT_BODY)s
+#.FN_BODY RelocationComplete
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "RELOCATION_COMPLETE_MESSAGE ");
+%(DEFAULT_BODY)s
+
+#.END
+
+
+#.ASSIGN_VALUE_TO_TYPE # HNBAP ASN.1 does not have constants assigned to types
+# ProcedureCode
+id-HNBRegister ProcedureCode
+id-HNBDe-Register ProcedureCode
+id-UERegister ProcedureCode
+id-UEDe-Register ProcedureCode
+id-ErrorIndication ProcedureCode
+id-privateMessage ProcedureCode
+id-CSGMembershipUpdate ProcedureCode
+id-TNLUpdate ProcedureCode
+id-HNBConfigTransfer ProcedureCode
+id-RelocationComplete ProcedureCode
+
+# ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-HNB-Identity ProtocolIE-ID
+id-Context-ID ProtocolIE-ID
+id-UE-Identity ProtocolIE-ID
+id-LAC ProtocolIE-ID
+id-RAC ProtocolIE-ID
+id-HNB-Location-Information ProtocolIE-ID
+id-PLMNidentity ProtocolIE-ID
+id-SAC ProtocolIE-ID
+id-CellIdentity ProtocolIE-ID
+id-Registration-Cause ProtocolIE-ID
+id-UE-Capabilities ProtocolIE-ID
+id-RNC-ID ProtocolIE-ID
+id-CSG-ID ProtocolIE-ID
+id-BackoffTimer ProtocolIE-ID
+id-HNB-Internet-Information ProtocolIE-ID
+id-HNB-Cell-Access-Mode ProtocolIE-ID
+id-MuxPortNumber ProtocolIE-ID
+id-Service-Area-For-Broadcast ProtocolIE-ID
+id-CSGMembershipStatus ProtocolIE-ID
+id-RABList ProtocolIE-ID
+id-HNBConfigInfo ProtocolIE-ID
+id-AccessResult ProtocolIE-ID
+id-Update-cause ProtocolIE-ID
+id-NeighbourInfoList ProtocolIE-ID
+id-NeighbourInfoRequestList ProtocolIE-ID
+id-Iurh-Signalling-TNL-Address ProtocolIE-ID
+id-PSC ProtocolIE-ID
+id-HNB-Cell-Identifier ProtocolIE-ID
+#.END
+
+
+#.REGISTER
+
+#HNBAP-PROTOCOL-IES
+Cause N hnbap.ies id-Cause
+CriticalityDiagnostics N hnbap.ies id-CriticalityDiagnostics
+HNB-Identity N hnbap.ies id-HNB-Identity
+Context-ID N hnbap.ies id-Context-ID
+UE-Identity N hnbap.ies id-UE-Identity
+LAC N hnbap.ies id-LAC
+RAC N hnbap.ies id-RAC
+HNB-Location-Information N hnbap.ies id-HNB-Location-Information
+PLMNidentity N hnbap.ies id-PLMNidentity
+SAC N hnbap.ies id-SAC
+CellIdentity N hnbap.ies id-CellIdentity
+Registration-Cause N hnbap.ies id-Registration-Cause
+UE-Capabilities N hnbap.ies id-UE-Capabilities
+RNC-ID N hnbap.ies id-RNC-ID
+CSG-ID N hnbap.ies id-CSG-ID
+BackoffTimer N hnbap.ies id-BackoffTimer
+CSGMembershipStatus N hnbap.ies id-CSGMembershipStatus
+
+RABList N hnbap.ies id-RABList
+# id-HNBConfigInfo
+# id-AccessResult
+Update-cause N hnbap.ies id-Update-cause
+NeighbourInfoList N hnbap.ies id-NeighbourInfoList
+NeighbourInfoRequestList N hnbap.ies id-NeighbourInfoRequestList
+# id-HNB-Cell-Identifier
+
+#HNBAP-PROTOCOL-EXTENSION
+IP-Address N hnbap.extension id-HNB-Internet-Information
+HNB-Cell-Access-Mode N hnbap.extension id-HNB-Cell-Access-Mode
+MuxPortNumber N hnbap.extension id-MuxPortNumber
+CSGMembershipStatus N hnbap.extension id-CSGMembershipStatus
+IP-Address N hnbap.extension id-Iurh-Signalling-TNL-Address
+PSC N hnbap.extension id-PSC
+
+#HNBAP-ELEMENTARY-PROCEDURE
+#CLASS 1
+HNBRegisterRequest N hnbap.proc.imsg id-HNBRegister
+HNBRegisterAccept N hnbap.proc.sout id-HNBRegister
+HNBRegisterReject N hnbap.proc.uout id-HNBRegister
+UERegisterRequest N hnbap.proc.imsg id-UERegister
+UERegisterAccept N hnbap.proc.sout id-UERegister
+UERegisterReject N hnbap.proc.uout id-UERegister
+
+TNLUpdateRequest N hnbap.proc.imsg id-TNLUpdate
+TNLUpdateResponse N hnbap.proc.sout id-TNLUpdate
+TNLUpdateFailure N hnbap.proc.uout id-TNLUpdate
+
+HNBConfigTransferRequest N hnbap.proc.imsg id-HNBConfigTransfer
+HNBConfigTransferResponse N hnbap.proc.sout id-HNBConfigTransfer
+
+RelocationComplete N hnbap.proc.imsg id-RelocationComplete
+
+#CLASS 2
+UEDe-Register N hnbap.proc.imsg id-UEDe-Register
+HNBDe-Register N hnbap.proc.imsg id-HNBDe-Register
+ErrorIndication N hnbap.proc.imsg id-ErrorIndication
+CSGMembershipUpdate N hnbap.proc.imsg id-CSGMembershipUpdate
+PrivateMessage N hnbap.proc.imsg id-privateMessage
+#.END
diff --git a/epan/dissectors/asn1/hnbap/packet-hnbap-template.c b/epan/dissectors/asn1/hnbap/packet-hnbap-template.c
new file mode 100644
index 0000000000..a415d906ba
--- /dev/null
+++ b/epan/dissectors/asn1/hnbap/packet-hnbap-template.c
@@ -0,0 +1,200 @@
+/* packet-hnbap-template.c
+ * Routines for UMTS Node B Application Part(HNBAP) packet dissection
+ * Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref: 3GPP TS 25.469 version 8.4.0 Release 8
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/sctpppids.h>
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+
+#include "packet-per.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "UTRAN Iuh interface HNBAP signalling"
+#define PSNAME "HNBAP"
+#define PFNAME "hnbap"
+/* Dissector will use SCTP PPID 20 or SCTP port. IANA assigned port = 29169*/
+#define SCTP_PORT_HNBAP 29169
+
+void proto_register_hnbap(void);
+
+#include "packet-hnbap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_hnbap = -1;
+
+#include "packet-hnbap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_hnbap = -1;
+
+#include "packet-hnbap-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint global_sctp_port = SCTP_PORT_HNBAP;
+
+/* Dissector tables */
+static dissector_table_t hnbap_ies_dissector_table;
+static dissector_table_t hnbap_extension_dissector_table;
+static dissector_table_t hnbap_proc_imsg_dissector_table;
+static dissector_table_t hnbap_proc_sout_dissector_table;
+static dissector_table_t hnbap_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+void proto_reg_handoff_hnbap(void);
+
+#include "packet-hnbap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(hnbap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(hnbap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+#if 0
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureCode) return 0;
+ return (dissector_try_string(hnbap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureCode) return 0;
+ return (dissector_try_string(hnbap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureCode) return 0;
+ return (dissector_try_string(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+#endif
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(hnbap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(hnbap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_hnbap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ proto_item *hnbap_item = NULL;
+ proto_tree *hnbap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "HNBAP");
+
+ /* create the hnbap protocol tree */
+ hnbap_item = proto_tree_add_item(tree, proto_hnbap, tvb, 0, -1, ENC_NA);
+ hnbap_tree = proto_item_add_subtree(hnbap_item, ett_hnbap);
+
+ return dissect_HNBAP_PDU_PDU(tvb, pinfo, hnbap_tree, data);
+}
+
+/*--- proto_register_hnbap -------------------------------------------*/
+void proto_register_hnbap(void) {
+module_t *hnbap_module;
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+
+#include "packet-hnbap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_hnbap,
+#include "packet-hnbap-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_hnbap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_hnbap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ register_dissector("hnbap", dissect_hnbap, proto_hnbap);
+
+ /* Register dissector tables */
+ hnbap_ies_dissector_table = register_dissector_table("hnbap.ies", "HNBAP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ hnbap_extension_dissector_table = register_dissector_table("hnbap.extension", "HNBAP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ hnbap_proc_imsg_dissector_table = register_dissector_table("hnbap.proc.imsg", "HNBAP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ hnbap_proc_sout_dissector_table = register_dissector_table("hnbap.proc.sout", "HNBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ hnbap_proc_uout_dissector_table = register_dissector_table("hnbap.proc.uout", "HNBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ hnbap_module = prefs_register_protocol(proto_hnbap, proto_reg_handoff_hnbap);
+ prefs_register_uint_preference(hnbap_module, "port", "HNBAP SCTP Port", "Set the port for HNBAP messages (Default of 29169)", 10, &global_sctp_port);
+}
+
+
+/*--- proto_reg_handoff_hnbap ---------------------------------------*/
+void
+proto_reg_handoff_hnbap(void)
+{
+ static gboolean initialized = FALSE;
+ static dissector_handle_t hnbap_handle;
+ static guint sctp_port;
+
+ if (!initialized) {
+ hnbap_handle = find_dissector("hnbap");
+ dissector_add_uint("sctp.ppi", HNBAP_PAYLOAD_PROTOCOL_ID, hnbap_handle);
+ initialized = TRUE;
+#include "packet-hnbap-dis-tab.c"
+
+ } else {
+ dissector_delete_uint("sctp.port", sctp_port, hnbap_handle);
+ }
+ /* Set our port number for future use */
+ sctp_port = global_sctp_port;
+ dissector_add_uint("sctp.port", sctp_port, hnbap_handle);
+}
diff --git a/epan/dissectors/asn1/idmp/CMakeLists.txt b/epan/dissectors/asn1/idmp/CMakeLists.txt
new file mode 100644
index 0000000000..f2f5472b5d
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/CMakeLists.txt
@@ -0,0 +1,58 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME idmp )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ IDMProtocolSpecification.asn
+ CommonProtocolSpecification.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -L )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/idmp/CommonProtocolSpecification.asn b/epan/dissectors/asn1/idmp/CommonProtocolSpecification.asn
new file mode 100644
index 0000000000..e636709ed0
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/CommonProtocolSpecification.asn
@@ -0,0 +1,119 @@
+-- http://www.itu.int/ITU-T/formal-language/itu-t/x/x519/2005/CommonProtocolSpecification.asn
+-- Module CommonProtocolSpecification (X.519:08/2005)
+CommonProtocolSpecification {joint-iso-itu-t ds(5) module(1)
+ commonProtocolSpecification(35) 5} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ opBindingManagement
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 5}
+ establishOperationalBinding, modifyOperationalBinding,
+ terminateOperationalBinding
+ FROM OperationalBindingManagement opBindingManagement;
+
+OPERATION ::= CLASS {
+ &ArgumentType OPTIONAL,
+ &ResultType OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [ARGUMENT &ArgumentType]
+ [RESULT &ResultType]
+ [ERRORS &Errors]
+ [CODE &operationCode]
+}
+
+ERROR ::= CLASS {&ParameterType ,
+ &errorCode Code UNIQUE OPTIONAL
+}WITH SYNTAX {PARAMETER &ParameterType
+ [CODE &errorCode]
+}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+InvokeId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+-- operation codes for DAP and DSP
+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
+
+-- operation codes for DISP
+id-opcode-requestShadowUpdate Code ::= local:1
+
+id-opcode-updateShadow Code ::= local:2
+
+id-opcode-coordinateShadowUpdate Code ::= local:3
+
+-- operation codes for DOP
+id-op-establishOperationalBinding Code ::= local:100
+
+id-op-modifyOperationalBinding Code ::= local:102
+
+id-op-terminateOperationalBinding Code ::= local:101
+
+-- error codes for DAP and DSP
+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
+
+id-errcode-dsaReferral Code ::= local:9
+
+-- error code for DISP
+id-errcode-shadowError Code ::= local:1
+
+-- error code for DOP
+id-err-operationalBindingError Code ::= local:100
+
+DOP-Invokable OPERATION ::=
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+
+DOP-Returnable OPERATION ::=
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+
+END -- CommonProtocolSpecification
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/idmp/IDMProtocolSpecification.asn b/epan/dissectors/asn1/idmp/IDMProtocolSpecification.asn
new file mode 100644
index 0000000000..9bd33eef8b
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/IDMProtocolSpecification.asn
@@ -0,0 +1,124 @@
+-- http://www.itu.int/ITU-T/formal-language/itu-t/x/x519/2005/IDMProtocolSpecification.asn
+-- Module IDMProtocolSpecification (X.519:08/2005)
+IDMProtocolSpecification {joint-iso-itu-t ds(5) module(1)
+ iDMProtocolSpecification(30) 5} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ certificateExtensions, commonProtocolSpecification, directoryAbstractService,
+ directoryIDMProtocols, enhancedSecurity
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 5}
+ -- from ITU-T Rec. X.509 | ISO/IEC 9594-8
+ GeneralName
+ FROM CertificateExtensions certificateExtensions
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ SecurityProblem, ServiceProblem, Versions
+ FROM DirectoryAbstractService directoryAbstractService
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+ InvokeId, OPERATION
+ FROM CommonProtocolSpecification commonProtocolSpecification;
+
+-- IDM-protocol information object class
+IDM-PROTOCOL ::= CLASS {
+ &bind-operation OPERATION,
+ &Operations OPERATION,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {BIND-OPERATION &bind-operation
+ OPERATIONS &Operations
+ ID &id
+}
+
+-- IDM protocol
+IDM-PDU{IDM-PROTOCOL:protocol} ::= CHOICE {
+ bind [0] IdmBind{{protocol}},
+ bindResult [1] IdmBindResult{{protocol}},
+ bindError [2] IdmBindError{{protocol}},
+ request [3] Request{{protocol.&Operations}},
+ result [4] IdmResult{{protocol.&Operations}},
+ error [5] Error{{protocol.&Operations}},
+ reject [6] IdmReject,
+ unbind [7] Unbind,
+ abort [8] Abort,
+ startTLS [9] StartTLS,
+ tLSResponse [10] TLSResponse
+}
+
+IdmBind{IDM-PROTOCOL:Protocols} ::= SEQUENCE {
+ protocolID IDM-PROTOCOL.&id({Protocols}),
+ callingAETitle [0] GeneralName OPTIONAL,
+ calledAETitle [1] GeneralName OPTIONAL,
+ argument
+ [2] IDM-PROTOCOL.&bind-operation.&ArgumentType({Protocols}{@protocolID})
+}
+
+IdmBindResult{IDM-PROTOCOL:Protocols} ::= SEQUENCE {
+ protocolID IDM-PROTOCOL.&id({Protocols}),
+ respondingAETitle [0] GeneralName OPTIONAL,
+ result
+ [1] IDM-PROTOCOL.&bind-operation.&ResultType({Protocols}{@protocolID})
+}
+
+IdmBindError{IDM-PROTOCOL:Protocols} ::= SEQUENCE {
+ protocolID IDM-PROTOCOL.&id({Protocols}),
+ errcode
+ IDM-PROTOCOL.&bind-operation.&Errors.&errorCode({Protocols}{@protocolID}),
+ respondingAETitle [0] GeneralName OPTIONAL,
+ aETitleError
+ ENUMERATED {callingAETitleNotAccepted(0), calledAETitleNotRecognized(1)}
+ OPTIONAL,
+ error
+ [1] IDM-PROTOCOL.&bind-operation.&Errors.&ParameterType
+ ({Protocols}{@protocolID, @errcode})
+}
+
+Unbind ::= NULL
+
+Request{OPERATION:Operations} ::= SEQUENCE {
+ invokeID INTEGER,
+ opcode OPERATION.&operationCode({Operations}),
+ argument OPERATION.&ArgumentType({Operations}{@opcode})
+}
+
+IdmResult{OPERATION:Operations} ::= SEQUENCE {
+ invokeID InvokeId,
+ opcode OPERATION.&operationCode({Operations}),
+ result OPERATION.&ResultType({Operations}{@opcode})
+}
+
+Error{OPERATION:Operations} ::= SEQUENCE {
+ invokeID INTEGER,
+ errcode OPERATION.&Errors.&errorCode({Operations}),
+ error OPERATION.&Errors.&ParameterType({Operations}{@errcode})
+}
+
+IdmReject ::= SEQUENCE {
+ invokeID INTEGER,
+ reason
+ ENUMERATED {mistypedPDU(0), duplicateInvokeIDRequest(1),
+ unsupportedOperationRequest(2), unknownOperationRequest(3),
+ mistypedArgumentRequest(4), resourceLimitationRequest(5),
+ unknownInvokeIDResult(6), mistypedResultRequest(7),
+ unknownInvokeIDError(8), unknownError(9),
+ mistypedParameterError(10)}
+}
+
+Abort ::= ENUMERATED {
+ mistypedPDU(0), unboundRequest(1), invalidPDU(2), resourceLimitation(3),
+ connectionFailed(4), invalidProtocol(5), reasonNotSpecified(6)}
+
+StartTLS ::= NULL
+
+TLSResponse ::= ENUMERATED {
+ success(0), operationsError(1), protocolError(2), unavailable(3)}
+
+END -- IDMProtocolSpecification
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/idmp/Makefile.am b/epan/dissectors/asn1/idmp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/idmp/Makefile.common b/epan/dissectors/asn1/idmp/Makefile.common
new file mode 100644
index 0000000000..0e9cb3c83e
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/Makefile.common
@@ -0,0 +1,55 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=idmp
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ IDMProtocolSpecification.asn \
+ CommonProtocolSpecification.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b -L
+
+EXTRA_CNF= \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/idmp/Makefile.nmake b/epan/dissectors/asn1/idmp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/idmp/idmp.cnf b/epan/dissectors/asn1/idmp/idmp.cnf
new file mode 100644
index 0000000000..eb85638e88
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/idmp.cnf
@@ -0,0 +1,78 @@
+#.IMPORT ../x509ce/x509ce-exp.cnf
+
+
+#.CLASS OPERATION
+&ArgumentType
+&argumentTypeOptional BooleanType
+&ResultType
+&resultTypeOptional BooleanType
+&Errors _FixedTypeValueSetFieldSpec
+&errorsOptional BooleanType
+&operationCode TypeReference Code
+#.END
+
+#.TF_RENAME
+IdmBind/argument bind_argument
+IdmBindError/errcode bind_errcode
+IdmBindError/error bind_error
+IdmBindResult/result bind_result
+
+#.FIELD_RENAME
+IDM-PDU/error idm_error
+IDM-PDU/result idm_result
+
+IdmResult/invokeID idm_invokeID
+
+#.FN_BODY IdmBind/argument
+ struct SESSION_DATA_STRUCTURE *session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ return call_idmp_oid_callback(tvb, offset, actx->pinfo, (ROS_OP_BIND | ROS_OP_ARGUMENT), top_tree, session);
+
+#.END
+
+#.FN_PARS OBJECT_IDENTIFIER FN_VARIANT = _str VAL_PTR = &protocolID
+
+
+#.FN_BODY IdmBindResult/result
+ struct SESSION_DATA_STRUCTURE *session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ return call_idmp_oid_callback(tvb, offset, actx->pinfo, (ROS_OP_BIND | ROS_OP_RESULT), top_tree, session);
+
+#.END
+
+#.FN_BODY IdmBindError/errcode
+
+#.END
+
+#.FN_BODY IdmBindError/error
+ struct SESSION_DATA_STRUCTURE *session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ return call_idmp_oid_callback(tvb, offset, actx->pinfo, (ROS_OP_BIND| ROS_OP_ERROR), top_tree, session);
+
+#.END
+
+#.FN_PARS Code/local VAL_PTR = &opcode
+
+#.FN_BODY Request/argument
+ struct SESSION_DATA_STRUCTURE *session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ return call_idmp_oid_callback(tvb, offset, actx->pinfo, (ROS_OP_INVOKE | ROS_OP_ARGUMENT | opcode), top_tree, session);
+
+#.END
+
+#.FN_BODY IdmResult/result
+ struct SESSION_DATA_STRUCTURE *session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ return call_idmp_oid_callback(tvb, offset, actx->pinfo, (ROS_OP_INVOKE | ROS_OP_RESULT | opcode), top_tree, session);
+
+#.END
+
+#.FN_BODY Error/errcode
+
+#.END
+
+#.FN_BODY Error/error
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/idmp/packet-idmp-template.c b/epan/dissectors/asn1/idmp/packet-idmp-template.c
new file mode 100644
index 0000000000..a57a035b4d
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/packet-idmp-template.c
@@ -0,0 +1,392 @@
+/* packet-idmp.c
+ * Routines for X.519 Internet Directly Mapped Procotol (IDMP) packet dissection
+ * Graeme Lunt 2010
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/reassemble.h>
+#include <epan/conversation.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/ipproto.h>
+#include <epan/strutil.h>
+
+#include <wsutil/str_util.h>
+
+#include "packet-tcp.h"
+
+#include "packet-ber.h"
+#include "packet-ros.h"
+#include "packet-x509ce.h"
+
+
+#define PNAME "X.519 Internet Directly Mapped Protocol"
+#define PSNAME "IDMP"
+#define PFNAME "idmp"
+
+void proto_register_idmp(void);
+void proto_reg_handoff_idm(void);
+static void prefs_register_idmp(void); /* forward declaration for use in preferences registration */
+void register_idmp_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name);
+
+static gboolean idmp_desegment = TRUE;
+static guint global_idmp_tcp_port = 1102; /* made up for now */
+static gboolean idmp_reassemble = TRUE;
+static guint tcp_port = 0;
+static dissector_handle_t idmp_handle = NULL;
+
+static proto_tree *top_tree = NULL;
+static const char *protocolID = NULL;
+static const char *saved_protocolID = NULL;
+static guint32 opcode = -1;
+
+/* Initialize the protocol and registered fields */
+int proto_idmp = -1;
+
+static int hf_idmp_version = -1;
+static int hf_idmp_final = -1;
+static int hf_idmp_length = -1;
+static int hf_idmp_PDU = -1;
+
+static reassembly_table idmp_reassembly_table;
+
+static int hf_idmp_fragments = -1;
+static int hf_idmp_fragment = -1;
+static int hf_idmp_fragment_overlap = -1;
+static int hf_idmp_fragment_overlap_conflicts = -1;
+static int hf_idmp_fragment_multiple_tails = -1;
+static int hf_idmp_fragment_too_long_fragment = -1;
+static int hf_idmp_fragment_error = -1;
+static int hf_idmp_fragment_count = -1;
+static int hf_idmp_reassembled_in = -1;
+static int hf_idmp_reassembled_length = -1;
+static int hf_idmp_segment_data = -1;
+
+static gint ett_idmp_fragment = -1;
+static gint ett_idmp_fragments = -1;
+
+static const fragment_items idmp_frag_items = {
+ /* Fragment subtrees */
+ &ett_idmp_fragment,
+ &ett_idmp_fragments,
+ /* Fragment fields */
+ &hf_idmp_fragments,
+ &hf_idmp_fragment,
+ &hf_idmp_fragment_overlap,
+ &hf_idmp_fragment_overlap_conflicts,
+ &hf_idmp_fragment_multiple_tails,
+ &hf_idmp_fragment_too_long_fragment,
+ &hf_idmp_fragment_error,
+ &hf_idmp_fragment_count,
+ /* Reassembled in field */
+ &hf_idmp_reassembled_in,
+ /* Reassembled length field */
+ &hf_idmp_reassembled_length,
+ /* Reassembled data field */
+ NULL,
+ /* Tag */
+ "IDMP fragments"
+};
+
+
+static int call_idmp_oid_callback(tvbuff_t *tvb, int offset, packet_info *pinfo, int op, proto_tree *tree, struct SESSION_DATA_STRUCTURE *session)
+{
+ if(session != NULL) {
+
+ if((!saved_protocolID) && (op == (ROS_OP_BIND | ROS_OP_RESULT))) {
+ /* save for subsequent operations - should be into session data */
+ saved_protocolID = wmem_strdup(wmem_file_scope(), protocolID);
+ }
+
+ /* mimic ROS! */
+ session->ros_op = op;
+ offset = call_ros_oid_callback(saved_protocolID ? saved_protocolID : protocolID, tvb, offset, pinfo, tree, session);
+ }
+
+ return offset;
+
+}
+
+#include "packet-idmp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_idmp = -1;
+#include "packet-idmp-ett.c"
+
+#include "packet-idmp-fn.c"
+
+void
+register_idmp_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name)
+{
+ /* just register with ROS for now */
+ register_ros_protocol_info(oid, rinfo, proto, name, FALSE);
+}
+
+
+static int dissect_idmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ int offset = 0;
+
+ proto_item *item;
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ struct SESSION_DATA_STRUCTURE session;
+ gboolean idmp_final;
+ guint32 idmp_length;
+ fragment_head *fd_head;
+ conversation_t *conv;
+ guint32 dst_ref = 0;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ conv = find_conversation (pinfo->num, &pinfo->src, &pinfo->dst,
+ pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+ if (conv) {
+ /* Found a conversation, also use index for the generated dst_ref */
+ dst_ref = conv->index;
+ }
+
+ /* save parent_tree so subdissectors can create new top nodes */
+ top_tree=parent_tree;
+
+ item = proto_tree_add_item(parent_tree, proto_idmp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_idmp);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "IDMP");
+
+ /* now check the segment fields */
+
+ proto_tree_add_item(tree, hf_idmp_version, tvb, offset, 1, ENC_BIG_ENDIAN); offset++;
+ proto_tree_add_item(tree, hf_idmp_final, tvb, offset, 1, ENC_BIG_ENDIAN);
+ idmp_final = tvb_get_guint8(tvb, offset); offset++;
+ proto_tree_add_item(tree, hf_idmp_length, tvb, offset, 4, ENC_BIG_ENDIAN);
+ idmp_length = tvb_get_ntohl(tvb, offset); offset += 4;
+
+ asn1_ctx.private_data = &session;
+
+ if(idmp_reassemble) {
+
+ pinfo->fragmented = !idmp_final;
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, " [%sIDMP fragment, %u byte%s]",
+ idmp_final ? "Final " : "" ,
+ idmp_length, plurality(idmp_length, "", "s"));
+
+ fd_head = fragment_add_seq_next(&idmp_reassembly_table, tvb, offset,
+ pinfo, dst_ref, NULL,
+ idmp_length, !idmp_final);
+
+ if(fd_head && fd_head->next) {
+ proto_tree_add_item(tree, hf_idmp_segment_data, tvb, offset, (idmp_length) ? -1 : 0, ENC_NA);
+
+ if (idmp_final) {
+ /* This is the last segment */
+ tvb = process_reassembled_data (tvb, offset, pinfo,
+ "Reassembled IDMP", fd_head, &idmp_frag_items, NULL, tree);
+ offset = 0;
+ } else if (pinfo->num != fd_head->reassembled_in) {
+ /* Add a "Reassembled in" link if not reassembled in this frame */
+ proto_tree_add_uint (tree, hf_idmp_reassembled_in,
+ tvb, 0, 0, fd_head->reassembled_in);
+ }
+ }
+
+ } else {
+ if(!idmp_final) {
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, " [IDMP fragment, %u byte%s, IDMP reassembly not enabled]",
+ idmp_length, plurality(idmp_length, "", "s"));
+
+ proto_tree_add_bytes_format_value(tree, hf_idmp_segment_data, tvb, offset, (idmp_length) ? -1 : 0,
+ NULL, "(IDMP reassembly not enabled)");
+ }
+ }
+ /* not reassembling - just dissect */
+ if(idmp_final) {
+ asn1_ctx.private_data = &session;
+ dissect_idmp_IDM_PDU(FALSE, tvb, offset, &asn1_ctx, tree, hf_idmp_PDU);
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static guint get_idmp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
+ int offset, void *data _U_)
+{
+ guint32 len;
+
+ len = tvb_get_ntohl(tvb, offset + 2);
+
+ return len + 6;
+}
+
+static int dissect_idmp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ tcp_dissect_pdus(tvb, pinfo, parent_tree, idmp_desegment, 0, get_idmp_pdu_len, dissect_idmp, data);
+ return tvb_captured_length(tvb);
+}
+
+static void idmp_reassemble_init (void)
+{
+ reassembly_table_init (&idmp_reassembly_table,
+ &addresses_reassembly_table_functions);
+}
+
+static void idmp_reassemble_cleanup(void)
+{
+ reassembly_table_destroy(&idmp_reassembly_table);
+ saved_protocolID = NULL;
+}
+
+/*--- proto_register_idmp -------------------------------------------*/
+void proto_register_idmp(void)
+{
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_idmp_version,
+ { "version", "idmp.version",
+ FT_INT8, BASE_DEC, NULL, 0,
+ "idmp.INTEGER", HFILL }},
+ { &hf_idmp_final,
+ { "final", "idmp.final",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "idmp.BOOLEAN", HFILL }},
+ { &hf_idmp_length,
+ { "length", "idmp.length",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "idmp.INTEGER", HFILL }},
+ { &hf_idmp_PDU,
+ { "IDM-PDU", "idmp.pdu",
+ FT_UINT32, BASE_DEC, VALS(idmp_IDM_PDU_vals), 0,
+ "idmp.PDU", HFILL }},
+ /* Fragment entries */
+ { &hf_idmp_fragments,
+ { "IDMP fragments", "idmp.fragments", FT_NONE, BASE_NONE,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_idmp_fragment,
+ { "IDMP fragment", "idmp.fragment", FT_FRAMENUM, BASE_NONE,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_idmp_fragment_overlap,
+ { "IDMP fragment overlap", "idmp.fragment.overlap", FT_BOOLEAN,
+ BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ { &hf_idmp_fragment_overlap_conflicts,
+ { "IDMP fragment overlapping with conflicting data",
+ "idmp.fragment.overlap.conflicts", FT_BOOLEAN, BASE_NONE,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_idmp_fragment_multiple_tails,
+ { "IDMP has multiple tail fragments",
+ "idmp.fragment.multiple_tails", FT_BOOLEAN, BASE_NONE,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_idmp_fragment_too_long_fragment,
+ { "IDMP fragment too long", "idmp.fragment.too_long_fragment",
+ FT_BOOLEAN, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ { &hf_idmp_fragment_error,
+ { "IDMP defragmentation error", "idmp.fragment.error", FT_FRAMENUM,
+ BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ { &hf_idmp_fragment_count,
+ { "IDMP fragment count", "idmp.fragment.count", FT_UINT32, BASE_DEC,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_idmp_reassembled_in,
+ { "Reassembled IDMP in frame", "idmp.reassembled.in", FT_FRAMENUM, BASE_NONE,
+ NULL, 0x00, "This IDMP packet is reassembled in this frame", HFILL } },
+ { &hf_idmp_reassembled_length,
+ { "Reassembled IDMP length", "idmp.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x00, "The total length of the reassembled payload", HFILL } },
+ { &hf_idmp_segment_data,
+ { "IDMP segment data", "idmp.segment_data", FT_BYTES, BASE_NONE,
+ NULL, 0x00, NULL, HFILL } },
+
+#include "packet-idmp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_idmp,
+ &ett_idmp_fragment,
+ &ett_idmp_fragments,
+#include "packet-idmp-ettarr.c"
+ };
+ module_t *idmp_module;
+
+ /* Register protocol */
+ proto_idmp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_idmp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_dissector("idmp", dissect_idmp_tcp, proto_idmp);
+
+ register_init_routine (&idmp_reassemble_init);
+ register_cleanup_routine (&idmp_reassemble_cleanup);
+
+ /* Register our configuration options for IDMP, particularly our port */
+
+ idmp_module = prefs_register_protocol_subtree("OSI/X.500", proto_idmp, prefs_register_idmp);
+
+ prefs_register_bool_preference(idmp_module, "desegment_idmp_messages",
+ "Reassemble IDMP messages spanning multiple TCP segments",
+ "Whether the IDMP dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &idmp_desegment);
+
+ prefs_register_bool_preference(idmp_module, "reassemble",
+ "Reassemble segmented IDMP datagrams",
+ "Whether segmented IDMP datagrams should be reassembled."
+ " To use this option, you must also enable"
+ " \"Allow subdissectors to reassemble TCP streams\""
+ " in the TCP protocol settings.", &idmp_reassemble);
+
+ prefs_register_uint_preference(idmp_module, "tcp.port", "IDMP TCP Port",
+ "Set the port for Internet Directly Mapped Protocol requests/responses",
+ 10, &global_idmp_tcp_port);
+
+}
+
+
+/*--- proto_reg_handoff_idm --- */
+void proto_reg_handoff_idm(void) {
+
+ /* remember the idm handler for change in preferences */
+ idmp_handle = find_dissector(PFNAME);
+
+}
+
+
+static void
+prefs_register_idmp(void)
+{
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if(idmp_handle)
+ dissector_delete_uint("tcp.port", tcp_port, idmp_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_idmp_tcp_port;
+
+ if((tcp_port > 0) && idmp_handle)
+ dissector_add_uint("tcp.port", global_idmp_tcp_port, idmp_handle);
+
+}
diff --git a/epan/dissectors/asn1/idmp/packet-idmp-template.h b/epan/dissectors/asn1/idmp/packet-idmp-template.h
new file mode 100644
index 0000000000..de48d9db4a
--- /dev/null
+++ b/epan/dissectors/asn1/idmp/packet-idmp-template.h
@@ -0,0 +1,32 @@
+/* packet-idmp.h
+ * Routines for X.519 Internet Directly Mapped Protocol (IDMP) packet dissection
+ * Graeme Lunt 2010
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_IDM_H
+#define PACKET_IDM_H
+
+#include <packet-ros.h>
+
+void
+register_idmp_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name);
+
+#endif /* PACKET_IDM_H */
diff --git a/epan/dissectors/asn1/ilp/CMakeLists.txt b/epan/dissectors/asn1/ilp/CMakeLists.txt
new file mode 100644
index 0000000000..93a386505f
--- /dev/null
+++ b/epan/dissectors/asn1/ilp/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ilp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ILP.asn
+ ILP-Components.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
diff --git a/epan/dissectors/asn1/ilp/ILP-Components.asn b/epan/dissectors/asn1/ilp/ILP-Components.asn
new file mode 100644
index 0000000000..4c79c46b80
--- /dev/null
+++ b/epan/dissectors/asn1/ilp/ILP-Components.asn
@@ -0,0 +1,703 @@
+-- ILP-Components.asn
+-- From OMA Internal Location Protocol Candidate Version 2.0.1 05 Dec 2012
+-- OMA-TS-ILP-V2_0_1-20121205-A
+--
+-- 13.3 COMMON ELEMENTS
+--
+
+ILP-Components DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS
+ Version, SessionID2, LocationId, PosTechnology, Position, StatusCode,
+ QoP, PosMethod, Velocity, PosPayLoad, SETCapabilities, SPCStatusCode, SPCSETKey, SPCTID, SPCSETKeylifetime, maxPosSize, UTRAN-GPSReferenceTimeResult, UTRAN-GANSSReferenceTimeResult, GNSSPosTechnology, UTRAN-GPSReferenceTimeAssistance, UTRAN-GANSSReferenceTimeAssistance, MultipleLocationIds, GANSSSignals;
+
+-- protocol version expressed as x.y.z (e.g., 5.1.0)
+Version ::= SEQUENCE {
+ maj INTEGER(0..255),
+ min INTEGER(0..255),
+ servind INTEGER(0..255)}
+
+SessionID2 ::= SEQUENCE {
+ slcSessionID SlcSessionID,
+ setSessionID SetSessionID OPTIONAL,
+ spcSessionID SpcSessionID OPTIONAL
+ -- the semantics of OPTIONAL applies to the encoding only.
+ -- The parameter itself is MANDATORY. Since the spcSessionID is allocated by the SPC,
+ -- there is no spcSessionID to be transmitted in the ILP PREQ message.
+}
+
+SetSessionID ::= SEQUENCE {
+ sessionId INTEGER(0..65535),
+ setId SETId
+}
+
+SETId ::= CHOICE {
+ msisdn OCTET STRING(SIZE (8)),
+ mdn OCTET STRING(SIZE (8)),
+ min BIT STRING(SIZE (34)), -- coded according to TIA-553
+ imsi OCTET STRING(SIZE (8)),
+ nai IA5String(SIZE (1..1000)),
+ iPAddress IPAddress,
+...}
+-- msisdn, mnd and imsi are a BCD (Binary Coded Decimal) string
+-- represent digits from 0 through 9,
+-- two digits per octet, each digit encoded 0000 to 1001 (0 to 9)
+-- bits 8765 of octet n encoding digit 2n
+-- bits 4321 of octet n encoding digit 2(n-1) +1
+-- not used digits in the string shall be filled with 1111
+
+SlcSessionID ::= SEQUENCE {
+ sessionID OCTET STRING(SIZE (4)),
+ slcId NodeAddress
+}
+
+SpcSessionID ::= SEQUENCE {
+ sessionID OCTET STRING(SIZE (4)),
+ spcId NodeAddress
+}
+
+IPAddress ::= CHOICE {
+ ipv4Address OCTET STRING(SIZE (4)),
+ ipv6Address OCTET STRING(SIZE (16))
+}
+
+NodeAddress ::= CHOICE {
+ iPAddress IPAddress,
+ fqdn FQDN,
+...}
+
+FQDN ::= VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" |".-"))(SIZE (1..255))
+
+LocationId ::= SEQUENCE {
+ cellInfo CellInfo,
+ status Status,
+...}
+
+Status ::= ENUMERATED {stale(0), current(1), unknown(2), ...}
+
+MultipleLocationIds ::= SEQUENCE SIZE (1..maxLidSize) OF LocationIdData
+
+LocationIdData ::= SEQUENCE {
+ locationId LocationId,
+ relativetimestamp RelativeTime OPTIONAL, -- if relativetimestamp is present,
+ -- then data represents historical measurement, if absent, data represents
+ -- current measurements
+ servingFlag BOOLEAN, -- if "true" measurements represent serving cell
+...}
+-- status in locationId indicates whether cellInfo is current or stale relative to timestamp
+
+RelativeTime ::= INTEGER (0..65535) -- relative time to "current" Location Id in multiples of 0.01sec
+
+maxLidSize INTEGER ::= 64
+
+
+SETCapabilities ::= SEQUENCE {
+ posTechnology PosTechnology,
+ prefMethod PrefMethod,
+ posProtocol PosProtocol,
+ supportedBearers SupportedBearers OPTIONAL,
+...}
+
+PosTechnology ::= SEQUENCE {
+ agpsSETassisted BOOLEAN,
+ agpsSETBased BOOLEAN,
+ autonomousGPS BOOLEAN,
+ aFLT BOOLEAN,
+ eCID BOOLEAN,
+ eOTD BOOLEAN,
+ oTDOA BOOLEAN,
+ gANSSPositionMethods GANSSPositionMethods OPTIONAL,
+...}
+
+GANSSPositionMethods ::= SEQUENCE (SIZE(1..16)) OF GANSSPositionMethod
+
+GANSSPositionMethod ::= SEQUENCE {
+ ganssId INTEGER(0..15), -- coding according to parameter definition in Section 12.14
+ ganssSBASid BIT STRING(SIZE(3)) OPTIONAL, --coding according to parameter definition in section 12.14
+ gANSSPositioningMethodTypes GANSSPositioningMethodTypes,
+ gANSSSignals GANSSSignals,
+...}
+
+GANSSPositioningMethodTypes ::= SEQUENCE {
+ setAssisted BOOLEAN,
+ setBased BOOLEAN,
+ autonomous BOOLEAN,
+...}
+
+-- indicates MS support for particular GANSS signals and frequencies
+-- coding according to parameter definition in Section 12.14
+GANSSSignals ::= BIT STRING {
+ signal1 (0),
+ signal2 (1),
+ signal3 (2),
+ signal4 (3),
+ signal5 (4),
+ signal6 (5),
+ signal7 (6),
+ signal8 (7)} (SIZE (1..8))
+
+
+PrefMethod ::= ENUMERATED {
+ agnssSETAssistedPreferred, agnssSETBasedPreferred, noPreference,
+...}
+-- Note: In ULP V2.0, the names of the enumerations are
+-- kept the same as in ULP V1.0. ie. Agps in the TS ULP actually shall be
+-- interpreted as agnss. This means that agpsSETassistedPreferred and
+-- agpsSETBasedPreferred in ULP V2.0 map to agnssSETAssistedPreferred and
+-- agnssSETBasedPreferred in ILP.
+
+PosProtocol ::= SEQUENCE {
+ tia801 BOOLEAN,
+ rrlp BOOLEAN,
+ rrc BOOLEAN,
+ lpp BOOLEAN,
+ posProtocolVersionRRLP PosProtocolVersion3GPP OPTIONAL,
+ posProtocolVersionRRC PosProtocolVersion3GPP OPTIONAL,
+ posProtocolVersionTIA801 PosProtocolVersion3GPP2 OPTIONAL,
+ posProtocolVersionLPP PosProtocolVersion3GPP OPTIONAL,
+ ...}
+
+PosProtocolVersion3GPP ::= SEQUENCE {
+ majorVersionField INTEGER(0..255),
+ technicalVersionField INTEGER(0..255),
+ editorialVersionField INTEGER(0..255),
+...}
+
+PosProtocolVersion3GPP2 ::= SEQUENCE (SIZE(1..8)) OF Supported3GPP2PosProtocolVersion
+
+Supported3GPP2PosProtocolVersion ::= SEQUENCE {
+ revisionNumber BIT STRING(SIZE (6)), -- the location standard revision number the SET supports coded according to 3GPP2 C.S0022
+ pointReleaseNumber INTEGER(0..255),
+ internalEditLevel INTEGER(0..255),
+...}
+
+SupportedBearers ::= SEQUENCE {
+ gsm BOOLEAN,
+ wcdma BOOLEAN,
+ lte BOOLEAN,
+ cdma BOOLEAN,
+ hprd BOOLEAN,
+ umb BOOLEAN,
+ wlan BOOLEAN,
+ wiMAX BOOLEAN,
+...}
+
+CellInfo ::= CHOICE {
+ gsmCell GsmCellInformation,
+ wcdmaCell WcdmaCellInformation, --WCDMA Cell Information/TD-SCDMA Cell Information
+ cdmaCell CdmaCellInformation,
+ hrpdCell HrpdCellInformation,
+ umbCell UmbCellInformation,
+ lteCell LteCellInformation,
+ wlanAP WlanAPInformation,
+ wimaxBS WimaxBSInformation,
+...}
+
+UTRAN-GPSReferenceTimeResult ::= SEQUENCE {
+-- For ue-GPSTimingOfCell values above 37158911999999 are not
+-- used in this version of the specification
+-- Actual value utran-GPSTimingOfCell = (ms-part * 4294967296) + ls-part
+-- used on the uplink i.e. reported by the SET to the SLP
+ set-GPSTimingOfCell SEQUENCE {
+ ms-part INTEGER (0.. 16383),
+ ls-part INTEGER (0..4294967295)},
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info},
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID}
+ },
+ sfn INTEGER (0..4095),
+ gpsReferenceTimeUncertainty INTEGER (0..127) OPTIONAL,
+...}
+
+UTRAN-GANSSReferenceTimeResult ::= SEQUENCE {
+ ganssTimeID INTEGER (0..15),
+ set-GANSSReferenceTime SET-GANSSReferenceTime,
+...}
+
+SET-GANSSReferenceTime ::= SEQUENCE {
+
+-- Actual value [ns] = (ms-Part * 4294967296 + ls-Part) * 250
+-- Actual values [ns] > 86399999999750 are reserved and are considered a
+-- protocol error
+ set-GANSSTimingOfCell SEQUENCE {
+ ms-part INTEGER (0..80),
+ ls-part INTEGER (0..4294967295)} OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info},
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID}} OPTIONAL,
+ sfn INTEGER (0..4095),
+ ganss-TODUncertainty INTEGER (0..127) OPTIONAL,
+...}
+
+GNSSPosTechnology ::= SEQUENCE {
+ gps BOOLEAN,
+ galileo BOOLEAN,
+ sbas BOOLEAN,
+ modernized-gps BOOLEAN,
+ qzss BOOLEAN,
+ glonass BOOLEAN,
+...}
+
+Position ::= SEQUENCE {
+ timestamp UTCTime, -- shall include seconds and shall use UTC time.
+ positionEstimate PositionEstimate,
+ velocity Velocity OPTIONAL,
+...}
+
+PositionEstimate ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ latitude INTEGER(0..8388607),
+ longitude INTEGER(-8388608..8388607),
+ uncertainty
+ SEQUENCE {uncertaintySemiMajor INTEGER(0..127),
+ uncertaintySemiMinor INTEGER(0..127),
+ orientationMajorAxis INTEGER(0..180)} OPTIONAL, -- angle in degree between major axis and North
+ confidence INTEGER(0..100) OPTIONAL,
+ altitudeInfo AltitudeInfo OPTIONAL,
+...} -- Coding as in [3GPP GAD]
+
+AltitudeInfo ::= SEQUENCE {
+ altitudeDirection ENUMERATED {height, depth},
+ altitude INTEGER(0..32767),
+ altUncertainty INTEGER(0..127),
+...} -- based on 3GPP TS 23.032
+
+CdmaCellInformation ::= SEQUENCE {
+ refNID INTEGER(0..65535), -- Network Id
+ refSID INTEGER(0..32767), -- System Id
+ refBASEID INTEGER(0..65535), -- Base Station Id
+ refBASELAT INTEGER(0..4194303), -- Base Station Latitude
+ reBASELONG INTEGER(0..8388607), -- Base Station Longitude
+ refREFPN INTEGER(0..511), -- Base Station PN Code
+ refWeekNumber INTEGER(0..65535), -- GPS Week Number
+ refSeconds INTEGER(0..4194303), -- GPS Seconds --
+...}
+
+GsmCellInformation ::= SEQUENCE {
+ refMCC INTEGER(0..999), -- Mobile Country Code
+ refMNC INTEGER(0..999), -- Mobile Network Code
+ refLAC INTEGER(0..65535), -- Location area code
+ refCI INTEGER(0..65535), -- Cell identity
+ nMR NMR OPTIONAL,
+ tA INTEGER(0..255) OPTIONAL, --Timing Advance
+...}
+
+WcdmaCellInformation ::= SEQUENCE {
+ refMCC INTEGER(0..999), -- Mobile Country Code
+ refMNC INTEGER(0..999), -- Mobile Network Code
+ refUC INTEGER(0..268435455), -- Cell identity
+ frequencyInfo FrequencyInfo OPTIONAL,
+ primaryScramblingCode INTEGER(0..511) OPTIONAL, -- Not applicable for TDD
+ measuredResultsList MeasuredResultsList OPTIONAL,
+ cellParametersId INTEGER(0..127) OPTIONAL, -- Not applicable for FDD
+ timingAdvance TimingAdvance OPTIONAL, -- Not applicable for FDD
+...}
+
+TimingAdvance ::= SEQUENCE {
+ tA INTEGER (0..8191),
+ tAResolution TAResolution OPTIONAL, --If missing, resolution is 0.125 chips
+ chipRate ChipRate OPTIONAL, ---If missing, chip rate is 1.28 Mchip/s
+...}
+
+TAResolution ::= ENUMERATED {res10chip(0),res05chip(1),res0125chip(2), ...} -- Corresponding to 1.0-chip, 0.5-chip and 0.125-chip resolutions, respectively
+
+ChipRate ::= ENUMERATED {tdd128(0),tdd384(1), tdd768(2), ...} --- Corresponding to 1.28-Mchips/s, 3.84-Mchips/s and 7.68-Mchips/s chip rates, respectively
+
+HrpdCellInformation ::= SEQUENCE {
+ refSECTORID BIT STRING(SIZE (128)) OPTIONAL, -- HRPD Sector Id
+ refBASELAT INTEGER(0..4194303), -- Base Station Latitude
+ reBASELONG INTEGER(0..8388607), -- Base Station Longitude
+ refWeekNumber INTEGER(0..65535), -- GPS Week Number
+ refSeconds INTEGER(0..4194303), -- GPS Seconds --
+ ...}
+
+UmbCellInformation ::= SEQUENCE {
+ refSECTORID BIT STRING(SIZE (128)), -- UMB Sector Id
+ refMCC INTEGER(0..999), -- Mobile Country Code
+ refMNC INTEGER(0..999), -- Mobile Network Code
+ refBASELAT INTEGER(0..4194303), -- Base Station Latitude
+ reBASELONG INTEGER(0..8388607), -- Base Station Longitude
+ refWeekNumber INTEGER(0..65535), -- GPS Week Number
+ refSeconds INTEGER(0..4194303), -- GPS Seconds --
+ ...}
+
+-- LTE Cell info per 3GPP TS 36.331. --
+-- If not otherwise stated info is related to serving cell --
+
+LteCellInformation ::= SEQUENCE {
+ cellGlobalIdEUTRA CellGlobalIdEUTRA,
+ physCellId PhysCellId,
+ trackingAreaCode TrackingAreaCode,
+ rsrpResult RSRP-Range OPTIONAL,
+ rsrqResult RSRQ-Range OPTIONAL,
+ tA INTEGER(0..1282) OPTIONAL, -- Currently used Timing Advance value (NTA/16 as per [3GPP 36.213])
+ measResultListEUTRA MeasResultListEUTRA OPTIONAL, -- Neighbour measurements
+ ...,
+ earfcn INTEGER(0..65535) OPTIONAL
+}
+
+-- Measured results of neighbours cells per 3GPP TS 36.331 --
+
+MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA
+
+MeasResultEUTRA ::= SEQUENCE {
+ physCellId PhysCellId,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdEUTRA,
+ trackingAreaCode TrackingAreaCode
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rsrpResult RSRP-Range OPTIONAL, -- Mapping to measured values
+ rsrqResult RSRQ-Range OPTIONAL, -- in 3GPP TS 36.133
+ ...,
+ earfcn INTEGER(0..65535) OPTIONAL
+ }
+}
+
+PhysCellId ::= INTEGER (0..503)
+
+TrackingAreaCode ::= BIT STRING (SIZE (16))
+
+CellGlobalIdEUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity CellIdentity,
+ ...
+}
+
+PLMN-Identity ::= SEQUENCE {
+ mcc MCC OPTIONAL,
+ mnc MNC
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+MCC ::= SEQUENCE (SIZE (3)) OF
+MCC-MNC-Digit
+
+MNC ::= SEQUENCE (SIZE (2..3)) OF
+ MCC-MNC-Digit
+
+MCC-MNC-Digit ::= INTEGER (0..9)
+
+RSRP-Range ::= INTEGER(0..97)
+RSRQ-Range ::= INTEGER(0..34)
+maxCellReport INTEGER ::= 8
+
+WlanAPInformation ::= SEQUENCE { -- as per 802.11v
+ apMACAddress BIT STRING(SIZE (48)), -- AP MAC Address
+ apTransmitPower INTEGER(-127..128) OPTIONAL, -- AP transmit power in dbm
+ apAntennaGain INTEGER(-127..128) OPTIONAL, -- AP antenna gain in dBi
+ apSignaltoNoise INTEGER(-127..128) OPTIONAL, -- AP S/N received at SET
+ apDeviceType ENUMERATED {wlan802-11a(0), wlan802-11b(1), wlan802-11g(2), ...} OPTIONAL,
+ apSignalStrength INTEGER(-127..128) OPTIONAL, -- AP signal strength at SET
+ apChannelFrequency INTEGER(0..256) OPTIONAL, -- AP channel/frequency of Tx/Rx
+ apRoundTripDelay RTD OPTIONAL, -- Round Trip Delay between SET and AP
+ setTransmitPower INTEGER(-127..128) OPTIONAL, -- SET transmit power in dBm
+ setAntennaGain INTEGER (-127..128) OPTIONAL, -- SET antenna gain in dBi
+ setSignaltoNoise INTEGER (-127..128) OPTIONAL, -- SET S/N received at AP
+ setSignalStrength INTEGER(-127..128) OPTIONAL, -- SET signal strength at AP
+ apReportedLocation ReportedLocation OPTIONAL, -- AP Location reported by AP
+ ...}
+
+RTD ::= SEQUENCE { -- as per 802.11v
+ rTDValue INTEGER(0..16777216), -- measured RTD value corresponding to
+ -- about 500km in units of 1/10 of nanoseconds
+ rTDUnits RTDUnits, -- units of RTD
+ rTDAccuracy INTEGER(0..255) OPTIONAL, -- RTD accuracy
+ ...}
+
+RTDUnits ::= ENUMERATED {
+ microseconds(0), hundredsofnanoseconds(1), tensofnanoseconds(2), nanoseconds(3), tenthsofnanoseconds(4), ...}
+
+ReportedLocation ::= SEQUENCE { -- as per 802.11v
+ locationEncodingDescriptor LocationEncodingDescriptor,
+ locationData LocationData, -- location data field
+ ...}
+
+LocationEncodingDescriptor ::= ENUMERATED {
+ lCI(0),aSN1(1), ...}
+
+LocationData ::= SEQUENCE {
+ locationAccuracy INTEGER(0..4294967295) OPTIONAL,
+ locationValue OCTET STRING (SIZE(1..128)),
+ ...}
+
+WimaxBSInformation ::= SEQUENCE {
+ wimaxBsID WimaxBsID, -- WiMax serving base station ID
+ wimaxRTD WimaxRTD OPTIONAL, -- Round Trip Delay measurements
+ wimaxNMRList WimaxNMRList OPTIONAL, -- Network measurements
+ ...}
+
+WimaxBsID ::= SEQUENCE {
+ bsID-MSB BIT STRING (SIZE(24)) OPTIONAL,
+ bsID-LSB BIT STRING (SIZE(24)),
+...}
+-- if only LSB is present, MSB is assumed to be identical to the current serving BS or clamped on network value
+
+WimaxRTD ::= SEQUENCE {
+ rTD INTEGER (0..65535), -- Round trip delay of serving BS in units of 10 ns
+ rTDstd INTEGER (0..1023) OPTIONAL, -- Standard deviation of round trip delay in units of 10 ns
+...}
+
+WimaxNMRList ::= SEQUENCE (SIZE (1..maxWimaxBSMeas)) OF WimaxNMR
+
+WimaxNMR ::= SEQUENCE {
+ wimaxBsID WimaxBsID, -- WiMax BS ID for the measurement
+ relDelay INTEGER (-32768..32767) OPTIONAL, -- Relative delay for this neighbouring BSs to the serving cell in units of 10 ns
+ relDelaystd INTEGER (0..1023) OPTIONAL, -- Standard deviation of Relative delay in units of 10 ns
+ rSSI INTEGER (0..255) OPTIONAL, -- RSSI in 0.25 dBm steps, starting from -103.75 dBm
+ rSSIstd INTEGER (0..63) OPTIONAL, -- Standard deviation of RSSI in Db
+ bSTxPower INTEGER (0..255) OPTIONAL, -- BS transmit power in 0.25 dBm steps, starting from -103.75 dBm
+ cINR INTEGER (0..255) OPTIONAL, -- in Db
+ cINRstd INTEGER (0..63) OPTIONAL, -- Standard deviation of CINR in Db
+ bSLocation ReportedLocation OPTIONAL, -- Reported location of the BS
+...}
+
+maxWimaxBSMeas INTEGER ::= 32
+
+
+FrequencyInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {fdd FrequencyInfoFDD,
+ tdd FrequencyInfoTDD,
+ ...},
+ ...}
+
+FrequencyInfoFDD ::= SEQUENCE {
+ uarfcn-UL UARFCN OPTIONAL,
+ uarfcn-DL UARFCN,
+ ...}
+
+FrequencyInfoTDD ::= SEQUENCE {uarfcn-Nt UARFCN,
+ ...}
+
+UARFCN ::= INTEGER(0..16383)
+
+NMR ::= SEQUENCE (SIZE (1..15)) OF NMRelement
+
+NMRelement ::= SEQUENCE {
+ aRFCN INTEGER(0..1023),
+ bSIC INTEGER(0..63),
+ rxLev INTEGER(0..63),
+...}
+
+MeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasuredResults
+
+MeasuredResults ::= SEQUENCE {
+ frequencyInfo FrequencyInfo OPTIONAL,
+ utra-CarrierRSSI UTRA-CarrierRSSI OPTIONAL,
+ cellMeasuredResultsList CellMeasuredResultsList OPTIONAL}
+
+CellMeasuredResultsList ::=
+ SEQUENCE (SIZE (1..maxCellMeas)) OF CellMeasuredResults
+
+-- SPARE: UTRA-CarrierRSSI, Max = 76
+-- Values above Max are spare
+UTRA-CarrierRSSI ::= INTEGER(0..127)
+
+CellMeasuredResults ::= SEQUENCE {
+ cellIdentity INTEGER(0..268435455) OPTIONAL,
+ modeSpecificInfo
+ CHOICE {fdd
+ SEQUENCE {primaryCPICH-Info PrimaryCPICH-Info,
+ cpich-Ec-N0 CPICH-Ec-N0 OPTIONAL,
+ cpich-RSCP CPICH-RSCP OPTIONAL,
+ pathloss Pathloss OPTIONAL},
+ tdd
+ SEQUENCE {cellParametersID CellParametersID,
+ proposedTGSN TGSN OPTIONAL,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
+ pathloss Pathloss OPTIONAL,
+ timeslotISCP-List TimeslotISCP-List OPTIONAL
+ --- NOTE: TimeSlotISCP measurement list cannot be
+ -- interpreted without the knowledge of Cell Info
+ -- as defined in [3GPP RRC].
+}}}
+
+CellParametersID ::= INTEGER(0..127)
+
+TGSN ::= INTEGER(0..14)
+
+PrimaryCCPCH-RSCP ::= INTEGER(0..127)
+
+-- SPARE: TimeslotISCP, Max = 91
+-- Values above Max are spare
+TimeslotISCP ::= INTEGER(0..127)
+
+TimeslotISCP-List ::= SEQUENCE (SIZE (1..maxTS)) OF TimeslotISCP
+
+PrimaryCPICH-Info ::= SEQUENCE {primaryScramblingCode INTEGER(0..511)}
+
+-- SPARE: CPICH-Ec-No, Max = 49
+-- Values above Max are spare
+CPICH-Ec-N0 ::= INTEGER(0..63)
+
+-- SPARE: CPICH- RSCP, data range from 0 to 91 and from 123 to 127.
+-- Values from 92 to 122 are spare
+-- the encoding of cpich-RSCP is (as per 25.331 V5.11.0)
+-- cpich-RSCP = 123 CPICH RSCP <-120 dBm
+-- cpich-RSCP = 124 -120 CPICH RSCP < -119 dBm
+-- cpich-RSCP = 125 -119 CPICH RSCP < -118 dBm
+-- cpich-RSCP = 126 -118 CPICH RSCP < -117 dBm
+-- cpich-RSCP = 127 -117 CPICH RSCP < -116 dBm
+-- cpich-RSCP = 0 -116 CPICH RSCP < -115 dBm
+-- cpich-RSCP = 1 -115 CPICH RSCP < -114 dBm
+-- ... ... ...
+-- cpich-RSCP = 89 -27 CPICH RSCP < -26 dBm
+-- cpich-RSCP = 90 -26 CPICH RSCP < -25 dBm
+-- cpich-RSCP = 91 -25 CPICH RSCP dBm
+
+CPICH-RSCP ::= INTEGER(0..127)
+
+-- SPARE: Pathloss, Max = 158
+-- Values above Max are spare
+Pathloss ::= INTEGER(46..173)
+
+maxCellMeas INTEGER ::= 32
+
+maxFreq INTEGER ::= 8
+
+maxTS INTEGER ::= 14
+
+UTRAN-GPSReferenceTimeAssistance ::= SEQUENCE {
+ utran-GPSReferenceTime UTRAN-GPSReferenceTime,
+ gpsReferenceTimeUncertainty INTEGER (0..127) OPTIONAL,
+ utranGPSDriftRate UTRANGPSDriftRate OPTIONAL}
+
+UTRAN-GPSReferenceTime ::= SEQUENCE {
+ -- For utran-GPSTimingOfCell values above 2322431999999 are not
+ -- used in this version of the specification
+ -- Actual value utran-GPSTimingOfCell = (ms-part * 4294967296) + ls-part
+ -- used on the downlink i.e. sent from the SLP to the SET
+ utran-GPSTimingOfCell SEQUENCE {
+ ms-part INTEGER (0..1023),
+ ls-part INTEGER (0..4294967295)
+ },
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info},
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID}} OPTIONAL,
+ sfn INTEGER (0..4095)
+}
+
+UTRANGPSDriftRate ::= ENUMERATED {
+ utran-GPSDrift0, utran-GPSDrift1, utran-GPSDrift2,
+ utran-GPSDrift5, utran-GPSDrift10, utran-GPSDrift15,
+ utran-GPSDrift25, utran-GPSDrift50, utran-GPSDrift-1,
+ utran-GPSDrift-2, utran-GPSDrift-5, utran-GPSDrift-10,
+ utran-GPSDrift-15, utran-GPSDrift-25, utran-GPSDrift-50
+}
+
+UTRAN-GANSSReferenceTimeAssistance ::= SEQUENCE {
+ ganssTimeID INTEGER (0..15),
+ utran-GANSSReferenceTime UTRAN-GANSSReferenceTime,
+ ganssDay INTEGER (0..8191) OPTIONAL,
+ utranGANSSDriftRate UTRANGANSSDriftRate OPTIONAL
+}
+
+UTRAN-GANSSReferenceTime ::= SEQUENCE {
+ ganssTOD INTEGER (0..86399),
+ utran-GANSSTimingOfCell INTEGER (0..3999999) OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info},
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID}} OPTIONAL,
+ sfn INTEGER (0..4095),
+ ganss-TODUncertainty INTEGER (0..127) OPTIONAL,
+...}
+
+UTRANGANSSDriftRate ::= ENUMERATED {
+ utran-GANSSDrift0, utran-GANSSDrift1, utran-GANSSDrift2,
+ utran-GANSSDrift5, utran-GANSSDrift10, utran-GANSSDrift15,
+ utran-GANSSDrift25, utran-GANSSDrift50, utran-GANSSDrift-1,
+ utran-GANSSDrift-2, utran-GANSSDrift-5, utran-GANSSDrift-10,
+ utran-GANSSDrift-15, utran-GANSSDrift-25, utran-GANSSDrift-50}
+
+StatusCode ::= ENUMERATED {
+ unspecified(0), systemFailure(1), unexpectedMessage(2), protocolError(3),
+ dataMissing(4), unexpectedDataValue(5), posMethodFailure(6),
+ posMethodMismatch(7), posProtocolMismatch(8), targetSETnotReachable(9),
+ versionNotSupported(10), resourceShortage(11), invalidSessionId(12),
+ nonProxyModeNotSupported(13), proxyModeNotSupported(14),
+ positioningNotPermitted(15), iLPTimeout(16),
+ ...}
+
+QoP ::= SEQUENCE {
+ horacc INTEGER(0..127),
+ veracc INTEGER(0..127) OPTIONAL, -- as defined in 3GPP TS 23.032 "uncertainty altitude"
+ maxLocAge INTEGER(0..65535) OPTIONAL,
+ delay INTEGER(0..7) OPTIONAL, -- as defined in 3GPP TS 44.031
+...}
+
+Velocity ::= CHOICE { -- velocity definition as per 23.032
+ horvel Horvel,
+ horandvervel Horandvervel,
+ horveluncert Horveluncert,
+ horandveruncert Horandveruncert,
+...}
+
+Horvel ::= SEQUENCE {
+ bearing BIT STRING(SIZE (9)),
+ horspeed BIT STRING(SIZE (16)),
+...}
+
+Horandvervel ::= SEQUENCE {
+ verdirect BIT STRING(SIZE (1)),
+ bearing BIT STRING(SIZE (9)),
+ horspeed BIT STRING(SIZE (16)),
+ verspeed BIT STRING(SIZE (8)),
+...}
+
+Horveluncert ::= SEQUENCE {
+ bearing BIT STRING(SIZE (9)),
+ horspeed BIT STRING(SIZE (16)),
+ uncertspeed BIT STRING(SIZE (8)),
+...}
+
+Horandveruncert ::= SEQUENCE {
+ verdirect BIT STRING(SIZE (1)),
+ bearing BIT STRING(SIZE (9)),
+ horspeed BIT STRING(SIZE (16)),
+ verspeed BIT STRING(SIZE (8)),
+ horuncertspeed BIT STRING(SIZE (8)),
+ veruncertspeed BIT STRING(SIZE (8)),
+...}
+
+PosMethod ::= ENUMERATED {
+ agpsSETassisted(0), agpsSETbased(1), agpsSETassistedpref(2),
+ agpsSETbasedpref(3), autonomousGPS(4), aFLT(5), eCID(6), eOTD(7), oTDOA(8), agnssSETassisted(9), agnssSETbased(10), agnssSETassistedpref(11), agnssSETbasedpref(12), autonomousGNSS(13),
+...}
+
+SPCSETKey ::= BIT STRING(SIZE (128))
+
+SPCTID ::= SEQUENCE {
+ rAND BIT STRING(SIZE (128)),
+ slpFQDN FQDN,
+...}
+
+SPCSETKeylifetime ::= INTEGER (1..24) -- units in hours
+
+
+PosPayLoad ::= CHOICE {
+ rrcPayload OCTET STRING(SIZE (1..8192)),
+ rrlpPayload OCTET STRING(SIZE (1..8192)),
+ multiPosPayload MultiPosPayLoad,
+...}
+
+MultiPosPayLoad ::= SEQUENCE {
+ lPPPayload SEQUENCE (SIZE (1..3)) OF OCTET STRING(SIZE (1..60000)) OPTIONAL,
+ tia801Payload SEQUENCE (SIZE (1..3)) OF OCTET STRING(SIZE (1..60000)) OPTIONAL,
+...}
+
+SPCStatusCode ::= ENUMERATED {operational(0), notOperational(1), reducedAvailability(2),
+ ...}
+
+maxPosSize INTEGER ::= 1024
+
+END
diff --git a/epan/dissectors/asn1/ilp/ILP.asn b/epan/dissectors/asn1/ilp/ILP.asn
new file mode 100644
index 0000000000..3da505edb3
--- /dev/null
+++ b/epan/dissectors/asn1/ilp/ILP.asn
@@ -0,0 +1,425 @@
+-- ILP.asn
+--
+-- Taken from OMA Internal Location Protocol
+-- http://member.openmobilealliance.org/ftp/Public_documents/LOC/Permanent_documents/OMA-TS-ILP-V2_0_1-20121205-A.zip
+--
+-- 13.1 Common Part
+--
+
+ILP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ Version, SessionID2
+ FROM ILP-Components
+ PREQ
+ FROM ILP-PREQ
+ PRES
+ FROM ILP-PRES
+ PRPT
+ FROM ILP-PRPT
+ PLREQ
+ FROM ILP-PLREQ
+ PLRES
+ FROM ILP-PLRES
+ PINIT
+ FROM ILP-PINIT
+ PAUTH
+ FROM ILP-PAUTH
+ PALIVE
+ FROM ILP-PALIVE
+ PEND
+ FROM ILP-PEND
+ PMESS
+ FROM ILP-PMESS;
+
+-- general ILP PDU layout;
+ILP-PDU ::= SEQUENCE {
+ length INTEGER(0..65535),
+ version Version,
+ sessionID2 SessionID2,
+ message IlpMessage
+}
+
+IlpMessage ::= CHOICE {
+ msPREQ PREQ,
+ msPRES PRES,
+ msPRPT PRPT,
+ msPLREQ PLREQ,
+ msPLRES PLRES,
+ msPINIT PINIT,
+ msPAUTH PAUTH,
+ msPALIVE PALIVE,
+ msPEND PEND,
+ msPMESS PMESS,
+...}
+
+END
+
+--
+-- 13.2.1 PREQ
+--
+ILP-PREQ DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PREQ;
+
+IMPORTS LocationId, Position, QoP, SPCSETKey, SPCTID, SPCSETKeylifetime, MultipleLocationIds, PosTechnology, SETCapabilities
+ FROM ILP-Components;
+
+PREQ ::= SEQUENCE {
+ sLPMode SLPMode,
+ approvedPosMethods PosTechnology OPTIONAL,
+ locationId LocationId OPTIONAL,
+ multipleLocationIds MultipleLocationIds OPTIONAL,
+ position Position OPTIONAL,
+ triggerParams TriggerParams OPTIONAL,
+ sPCSETKey SPCSETKey OPTIONAL,
+ sPCTID SPCTID OPTIONAL,
+ sPCSETKeylifetime SPCSETKeylifetime OPTIONAL,
+ qoP QoP OPTIONAL,
+ sETCapabilities SETCapabilities OPTIONAL,
+ notificationMode NotificationMode OPTIONAL,
+...}
+
+SLPMode ::= ENUMERATED {proxy(0), nonProxy(1)}
+
+TriggerParams ::= SEQUENCE {
+ triggerType TriggerType,
+ periodicTriggerParams PeriodicTriggerParams OPTIONAL,
+...}
+
+TriggerType ::= ENUMERATED {
+ periodic(0), areaEvent(1),
+...}
+
+PeriodicTriggerParams ::= SEQUENCE{
+ numberOfFixes INTEGER(1..8639999),
+ intervalBetweenFixes INTEGER(1..8639999),
+ startTime INTEGER(0..2678400) OPTIONAL,
+...}
+-- intervalBetweenFixes and startTime are in seconds.
+-- numberOfFixes * intervalBetweenFixes shall not exceed 8639999
+-- (100 days in seconds) for compatibility with OMA MLP and RLP
+-- startTime is in relative time in units of seconds measured from now
+-- a value of 0 signifies now, a value of startTime signifies startTime
+-- seconds from now
+
+NotificationMode ::= ENUMERATED {normal(0), basedOnLocation(1), ...}
+
+END
+
+
+--
+-- 13.2.2 PRES
+--
+ILP-PRES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PRES;
+
+IMPORTS Position, SPCStatusCode, PosTechnology, PosMethod, GNSSPosTechnology
+ FROM ILP-Components;
+
+PRES ::= SEQUENCE {
+ preferredPosMethod PosMethod OPTIONAL,
+ gnssPosTechnology GNSSPosTechnology OPTIONAL,
+ supportedPosMethods PosTechnology OPTIONAL,
+ position Position OPTIONAL,
+ sPCstatusCode SPCStatusCode OPTIONAL,
+...}
+
+END
+
+
+--
+-- 13.2.3 PRPT
+--
+ILP-PRPT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PRPT;
+
+IMPORTS Position, StatusCode
+ FROM ILP-Components;
+
+PRPT ::= SEQUENCE {
+ position Position,
+ fixNumber INTEGER(1.. 8639999) OPTIONAL,
+ statusCode StatusCode OPTIONAL,
+...}
+
+END
+
+
+--
+-- 13.2.4 PLREQ
+--
+ILP-PLREQ DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PLREQ;
+
+IMPORTS LocationId, MultipleLocationIds
+ FROM ILP-Components;
+
+PLREQ ::= SEQUENCE {
+ locationId LocationId,
+ multipleLocationIds MultipleLocationIds OPTIONAL,
+...}
+
+END
+
+
+--
+-- 13.2.5 PLRES
+--
+ILP-PLRES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PLRES;
+
+IMPORTS Position, StatusCode, maxPosSize
+ FROM ILP-Components;
+
+PLRES ::= SEQUENCE {
+ positionResults PositionResults,
+...}
+
+PositionResults ::= SEQUENCE SIZE (1..maxPosSize) OF PositionResult
+
+PositionResult ::= CHOICE {
+ position Position,
+ statusCode StatusCode,
+...}
+
+END
+
+
+--
+-- 13.2.6 PINIT
+--
+ILP-PINIT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PINIT;
+
+IMPORTS
+ LocationId, Position, PosMethod, MultipleLocationIds, PosPayLoad, SETCapabilities, UTRAN-GPSReferenceTimeResult, UTRAN-GANSSReferenceTimeResult, GNSSPosTechnology, GANSSSignals
+ FROM ILP-Components;
+
+PINIT ::= SEQUENCE {
+ sETCapabilities SETCapabilities,
+ locationId LocationId,
+ posMethod PosMethod OPTIONAL,
+ requestedAssistData RequestedAssistData OPTIONAL,
+ position Position OPTIONAL,
+ posPayLoad PosPayLoad OPTIONAL,
+ multipleLocationIds MultipleLocationIds OPTIONAL,
+ utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult OPTIONAL,
+ utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTimeResult OPTIONAL,
+ gnssPosTechnology GNSSPosTechnology OPTIONAL,
+...}
+
+RequestedAssistData ::= SEQUENCE {
+ almanacRequested BOOLEAN,
+ utcModelRequested BOOLEAN,
+ ionosphericModelRequested BOOLEAN,
+ dgpsCorrectionsRequested BOOLEAN,
+ referenceLocationRequested BOOLEAN, -- Note: Used also for GANSS
+ referenceTimeRequested BOOLEAN,
+ acquisitionAssistanceRequested BOOLEAN,
+ realTimeIntegrityRequested BOOLEAN,
+ navigationModelRequested BOOLEAN,
+ navigationModelData NavigationModel OPTIONAL,
+ ganssRequestedCommonAssistanceDataList GanssRequestedCommonAssistanceDataList OPTIONAL,
+ ganssRequestedGenericAssistanceDataList GanssRequestedGenericAssistanceDataList OPTIONAL,
+ extendedEphemeris ExtendedEphemeris OPTIONAL,
+ extendedEphemerisCheck ExtendedEphCheck OPTIONAL,
+...}
+
+ExtendedEphemeris ::= SEQUENCE {
+ validity INTEGER (1..256), -- Requested validity in 4 hour steps
+...}
+
+ExtendedEphCheck ::= SEQUENCE {
+ beginTime GPSTime, -- Begin time of ephemeris extension held by SET
+ endTime GPSTime, -- End time of ephemeris extension held by SET
+...}
+
+GPSTime ::= SEQUENCE {
+ gPSWeek INTEGER (0..1023),
+ gPSTOWhour INTEGER (0..167),
+...}
+
+GanssRequestedCommonAssistanceDataList ::= SEQUENCE {
+ ganssReferenceTime BOOLEAN,
+ ganssIonosphericModel BOOLEAN,
+ ganssAdditionalIonosphericModelForDataID00 BOOLEAN,
+ ganssAdditionalIonosphericModelForDataID11 BOOLEAN,
+ ganssEarthOrientationParameters BOOLEAN,
+...}
+
+GanssRequestedGenericAssistanceDataList ::= SEQUENCE(SIZE(1..maxGANSS)) OF GanssReqGenericData
+
+GanssReqGenericData ::= SEQUENCE {
+ ganssId INTEGER(0..15), -- coding according to parameter definition in Section 12.14
+ ganssSBASid BIT STRING(SIZE(3)) OPTIONAL, --coding according to parameter definition in section 12.14
+ ganssRealTimeIntegrity BOOLEAN OPTIONAL,
+ ganssDifferentialCorrection DGANSS-Sig-Id-Req OPTIONAL,
+ ganssAlmanac BOOLEAN,
+ ganssNavigationModelData GanssNavigationModelData OPTIONAL,
+ ganssTimeModels BIT STRING(SIZE(16)) OPTIONAL,
+ ganssReferenceMeasurementInfo BOOLEAN,
+ ganssDataBits GanssDataBits OPTIONAL,
+ ganssUTCModel BOOLEAN,
+ ganssAdditionalDataChoices GanssAdditionalDataChoices OPTIONAL,
+ ganssAuxiliaryInformation BOOLEAN,
+ ganssExtendedEphemeris ExtendedEphemeris OPTIONAL,
+ ganssExtendedEphemerisCheck GanssExtendedEphCheck OPTIONAL,
+...}
+
+DGANSS-Sig-Id-Req ::= BIT STRING (SIZE(8)) --- coding according to parameter definition in Section 12.15
+
+
+GanssNavigationModelData ::= SEQUENCE {
+ ganssWeek INTEGER(0..4095),
+ ganssToe INTEGER(0..167),
+ t-toeLimit INTEGER(0..10),
+ satellitesListRelatedDataList SatellitesListRelatedDataList OPTIONAL,
+...}
+
+SatellitesListRelatedDataList ::= SEQUENCE(SIZE(0..maxGANSSSat)) OF SatellitesListRelatedData
+
+SatellitesListRelatedData ::= SEQUENCE {
+ satId INTEGER(0..63),
+ iod INTEGER(0..1023),
+...}
+
+maxGANSS INTEGER ::= 16
+maxGANSSSat INTEGER ::= 32
+
+GanssDataBits ::= SEQUENCE {
+ ganssTODmin INTEGER (0..59),
+ reqDataBitAssistanceList ReqDataBitAssistanceList,
+...}
+
+ReqDataBitAssistanceList ::= SEQUENCE {
+ gnssSignals GANSSSignals,
+ ganssDataBitInterval INTEGER (0..15),
+ ganssDataBitSatList SEQUENCE (SIZE(1..maxGANSSSat)) OF INTEGER (0..63) OPTIONAL,
+...}
+
+GanssAdditionalDataChoices ::= SEQUENCE {
+ orbitModelID INTEGER(0..7) OPTIONAL,
+ clockModelID INTEGER(0..7) OPTIONAL,
+ utcModelID INTEGER(0..7) OPTIONAL,
+ almanacModelID INTEGER(0..7) OPTIONAL,
+...}
+
+GanssExtendedEphCheck ::= SEQUENCE {
+ beginTime GANSSextEphTime, -- Begin time of ephemeris extension held by SET
+ endTime GANSSextEphTime, -- End time of ephemeris extension held by SET
+...}
+
+GANSSextEphTime ::= SEQUENCE {
+ gANSSday INTEGER (0..8191),
+ gANSSTODhour INTEGER (0..23),
+...}
+
+NavigationModel ::= SEQUENCE {
+ gpsWeek INTEGER(0..1023),
+ gpsToe INTEGER(0..167),
+ nSAT INTEGER(0..31),
+ toeLimit INTEGER(0..10),
+ satInfo SatelliteInfo OPTIONAL,
+...}
+
+SatelliteInfo ::= SEQUENCE (SIZE (1..31)) OF SatelliteInfoElement
+
+SatelliteInfoElement ::= SEQUENCE {
+ satId INTEGER(0..63),
+ iODE INTEGER(0..255),
+...}
+
+END
+
+
+--
+-- 13.2.7 PAUTH
+--
+ILP-PAUTH DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PAUTH;
+
+IMPORTS SPCSETKey, SPCTID, SPCSETKeylifetime
+ FROM ILP-Components;
+
+PAUTH ::= SEQUENCE {
+ sPCSETKey SPCSETKey,
+ sPCTID SPCTID,
+ sPCSETKeylifetime SPCSETKeylifetime OPTIONAL,
+...}
+
+END
+
+
+--
+-- 13.2.8 PALIVE
+--
+ILP-PALIVE DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PALIVE;
+
+IMPORTS SPCStatusCode
+ FROM ILP-Components;
+
+PALIVE ::= SEQUENCE {
+ sPCStatusCode SPCStatusCode OPTIONAL,
+...}
+
+END
+
+
+--
+-- 13.2.9 PEND
+--
+ILP-PEND DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PEND;
+
+IMPORTS Position, StatusCode
+ FROM ILP-Components;
+
+PEND ::= SEQUENCE {
+ position Position OPTIONAL,
+ statusCode StatusCode OPTIONAL,
+...}
+
+END
+
+
+--
+-- 13.2.10 PMESS
+--
+ILP-PMESS DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS PMESS;
+
+IMPORTS Velocity, PosPayLoad, UTRAN-GPSReferenceTimeResult, UTRAN-GANSSReferenceTimeResult, UTRAN-GPSReferenceTimeAssistance, UTRAN-GANSSReferenceTimeAssistance
+ FROM ILP-Components;
+
+PMESS ::= SEQUENCE {
+ posPayLoad PosPayLoad,
+ velocity Velocity OPTIONAL,
+ utran-GPSReferenceTimeAssistance UTRAN-GPSReferenceTimeAssistance OPTIONAL,
+ utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult OPTIONAL,
+ utran-GANSSReferenceTimeAssistance UTRAN-GANSSReferenceTimeAssistance OPTIONAL,
+ utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTimeResult OPTIONAL,
+ ...}
+
+END
diff --git a/epan/dissectors/asn1/ilp/Makefile.am b/epan/dissectors/asn1/ilp/Makefile.am
new file mode 100644
index 0000000000..11932c53a4
--- /dev/null
+++ b/epan/dissectors/asn1/ilp/Makefile.am
@@ -0,0 +1,22 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
diff --git a/epan/dissectors/asn1/ilp/Makefile.common b/epan/dissectors/asn1/ilp/Makefile.common
new file mode 100644
index 0000000000..0d165c50fa
--- /dev/null
+++ b/epan/dissectors/asn1/ilp/Makefile.common
@@ -0,0 +1,40 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = ilp
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ ILP.asn \
+ ILP-Components.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
diff --git a/epan/dissectors/asn1/ilp/Makefile.nmake b/epan/dissectors/asn1/ilp/Makefile.nmake
new file mode 100644
index 0000000000..966d190619
--- /dev/null
+++ b/epan/dissectors/asn1/ilp/Makefile.nmake
@@ -0,0 +1,25 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
diff --git a/epan/dissectors/asn1/ilp/ilp.cnf b/epan/dissectors/asn1/ilp/ilp.cnf
new file mode 100644
index 0000000000..594efe44d3
--- /dev/null
+++ b/epan/dissectors/asn1/ilp/ilp.cnf
@@ -0,0 +1,102 @@
+# ilp.cnf
+# ilp conformation file
+# Copyright 2013 e.yimjia
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.PDU
+ILP-PDU
+#.END
+
+
+#.TYPE_RENAME
+FrequencyInfo/modeSpecificInfo FrequencySpecificInfo
+#.END
+
+#.FIELD_RENAME
+FrequencyInfo/modeSpecificInfo modeSpecificFrequencyInfo
+FrequencyInfo/modeSpecificInfo/fdd fdd_fr
+FrequencyInfo/modeSpecificInfo/tdd tdd_fr
+SETId/min minsi
+#.END
+
+#.FN_HDR ILP-PDU
+ proto_item *it;
+ proto_tree *ilp_tree;
+
+ it = proto_tree_add_item(tree, proto_ilp, tvb, 0, -1, ENC_NA);
+ ilp_tree = proto_item_add_subtree(it, ett_ilp);
+
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
+ col_clear(actx->pinfo->cinfo, COL_INFO);
+#.END
+
+#.FN_BODY ILP-PDU TREE=ilp_tree
+%(DEFAULT_BODY)s
+#.END
+
+#.FN_BODY IlpMessage VAL_PTR = &IlpMessage
+
+guint32 IlpMessage;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "%%s ", val_to_str(IlpMessage,ilp_IlpMessage_vals,"Unknown"));
+
+#.END
+
+#.FN_BODY PosPayLoad/rrlpPayload VAL_PTR = &rrlp_tvb
+ tvbuff_t *rrlp_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (rrlp_tvb && rrlp_handle) {
+ call_dissector(rrlp_handle, rrlp_tvb, %(ACTX)s->pinfo, tree);
+ }
+
+#.FN_BODY MultiPosPayLoad/lPPPayload/_item VAL_PTR = &lpp_tvb
+ tvbuff_t *lpp_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (lpp_tvb && lpp_handle) {
+ call_dissector(lpp_handle, lpp_tvb, %(ACTX)s->pinfo, tree);
+ }
+
+#.FN_BODY SETId/msisdn VAL_PTR=&msisdn_tvb
+ tvbuff_t *msisdn_tvb;
+%(DEFAULT_BODY)s
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+#.FN_BODY SETId/mdn VAL_PTR=&mdn_tvb
+ tvbuff_t *mdn_tvb;
+%(DEFAULT_BODY)s
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ proto_tree_add_string(subtree, hf_ilp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+#.FN_BODY SETId/imsi VAL_PTR=&imsi_tvb
+ tvbuff_t *imsi_tvb;
+%(DEFAULT_BODY)s
+ if (imsi_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, FALSE);
+ }
+
+#.TYPE_ATTR
+IPAddress/ipv4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+IPAddress/ipv6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+#.END
diff --git a/epan/dissectors/asn1/ilp/packet-ilp-template.c b/epan/dissectors/asn1/ilp/packet-ilp-template.c
new file mode 100644
index 0000000000..5c560d5503
--- /dev/null
+++ b/epan/dissectors/asn1/ilp/packet-ilp-template.c
@@ -0,0 +1,162 @@
+/* packet-ilp.c
+ * Routines for OMA Internal Location Protocol packet dissection
+ * Copyright 2006, e.yimjia <jy.m12.0@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * ref OMA-TS-ILP-V2_0_1-20121205-A
+ * http://www.openmobilealliance.org
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-tcp.h"
+#include "packet-gsm_map.h"
+#include "packet-e164.h"
+#include "packet-e212.h"
+
+#define PNAME "OMA Internal Location Protocol"
+#define PSNAME "ILP"
+#define PFNAME "ilp"
+
+void proto_register_ilp(void);
+
+static dissector_handle_t rrlp_handle;
+static dissector_handle_t lpp_handle;
+
+/* IANA Registered Ports
+ * oma-ilp 7276/tcp OMA Internal Location
+ */
+static guint gbl_ilp_port = 7276;
+
+/* Initialize the protocol and registered fields */
+static int proto_ilp = -1;
+
+
+#define ILP_HEADER_SIZE 2
+
+static gboolean ilp_desegment = TRUE;
+
+#include "packet-ilp-hf.c"
+static int hf_ilp_mobile_directory_number = -1;
+
+/* Initialize the subtree pointers */
+static gint ett_ilp = -1;
+static gint ett_ilp_setid = -1;
+#include "packet-ilp-ett.c"
+
+/* Include constants */
+#include "packet-ilp-val.h"
+
+
+#include "packet-ilp-fn.c"
+
+
+static guint
+get_ilp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
+{
+ /* PDU length = Message length */
+ return tvb_get_ntohs(tvb,offset);
+}
+
+static int
+dissect_ilp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ tcp_dissect_pdus(tvb, pinfo, tree, ilp_desegment, ILP_HEADER_SIZE,
+ get_ilp_pdu_len, dissect_ILP_PDU_PDU, data);
+ return tvb_captured_length(tvb);
+}
+
+void proto_reg_handoff_ilp(void);
+
+/*--- proto_register_ilp -------------------------------------------*/
+void proto_register_ilp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-ilp-hfarr.c"
+ { &hf_ilp_mobile_directory_number,
+ { "Mobile Directory Number", "ilp.mobile_directory_number",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ilp,
+ &ett_ilp_setid,
+#include "packet-ilp-ettarr.c"
+ };
+
+ module_t *ilp_module;
+
+
+ /* Register protocol */
+ proto_ilp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("ilp", dissect_ilp_tcp, proto_ilp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ilp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ ilp_module = prefs_register_protocol(proto_ilp,proto_reg_handoff_ilp);
+
+ prefs_register_bool_preference(ilp_module, "desegment_ilp_messages",
+ "Reassemble ILP messages spanning multiple TCP segments",
+ "Whether the ILP dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &ilp_desegment);
+
+ /* Register a configuration option for port */
+ prefs_register_uint_preference(ilp_module, "tcp.port",
+ "ILP TCP Port",
+ "Set the TCP port for ILP messages(IANA registered port is 7276)",
+ 10,
+ &gbl_ilp_port);
+
+}
+
+
+/*--- proto_reg_handoff_ilp ---------------------------------------*/
+void
+proto_reg_handoff_ilp(void)
+{
+ static gboolean initialized = FALSE;
+ static dissector_handle_t ilp_handle;
+ static guint local_ilp_port;
+
+ if (!initialized) {
+ ilp_handle = find_dissector("ilp");
+ dissector_add_string("media_type","application/oma-supl-ilp", ilp_handle);
+ rrlp_handle = find_dissector("rrlp");
+ lpp_handle = find_dissector("lpp");
+ initialized = TRUE;
+ } else {
+ dissector_delete_uint("tcp.port", local_ilp_port, ilp_handle);
+ }
+
+ local_ilp_port = gbl_ilp_port;
+ dissector_add_uint("tcp.port", gbl_ilp_port, ilp_handle);
+}
diff --git a/epan/dissectors/asn1/inap/CMakeLists.txt b/epan/dissectors/asn1/inap/CMakeLists.txt
new file mode 100644
index 0000000000..88748939db
--- /dev/null
+++ b/epan/dissectors/asn1/inap/CMakeLists.txt
@@ -0,0 +1,86 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME inap )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST_LATE
+ ../ros/Remote-Operations-Information-Objects.asn
+ ../ros/Remote-Operations-Generic-ROS-PDUs.asn
+)
+
+set( 1248_1_ASN_FILES
+ IN-operationcodes.asn
+ IN-object-identifiers.asn
+ IN-common-datatypes.asn
+)
+
+set( 1248_2_ASN_FILES
+ IN-SSF-SCF-datatypes.asn
+ IN-SSF-SCF-ops-args.asn
+)
+
+set( 1248_3_ASN_FILES
+ IN-SCF-SRF-datatypes.asn
+ IN-SCF-SRF-ops-args.asn
+)
+
+set( 1248_CLASSES_ASN
+ IN-common-classes.asn
+ IN-SSF-SCF-Classes.asn
+ IN-SCF-SRF-Classes.asn
+)
+
+set( ASN_FILE_LIST
+ ${1248_CLASSES_ASN}
+ ${1248_1_ASN_FILES}
+ ${1248_2_ASN_FILES}
+ ${1248_3_ASN_FILES}
+ IN-errorcodes.asn
+ IN-errortypes.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../dap/dap-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../dsp/dsp-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/inap/IN-SCF-SRF-Classes.asn b/epan/dissectors/asn1/inap/IN-SCF-SRF-Classes.asn
new file mode 100644
index 0000000000..407c6b6cab
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-SCF-SRF-Classes.asn
@@ -0,0 +1,92 @@
+-- Module IN-SCF-SRF-Classes (Q.1248.3:07/2001)
+IN-SCF-SRF-Classes {itu-t recommendation q 1248 modules(1)
+ in-scf-srf-classes(11) version1(0)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ id-package-emptyConnection, id-rosObject-srf, id-rosObject-ssf,
+ ros-InformationObjects, ros-UsefulDefinitions, scf-srf-Protocol,
+ scf-srf-datatypes, ssf-scf-datatypes
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, Code, OPERATION,
+ CONNECTION-PACKAGE
+ FROM Remote-Operations-Information-Objects ros-InformationObjects
+ emptyBind, emptyUnbind
+ FROM Remote-Operations-Useful-Definitions ros-UsefulDefinitions;
+
+UISCRIPT ::= CLASS {
+ &SpecificInfo OPTIONAL,
+ &Result OPTIONAL,
+ &id Code
+}
+WITH SYNTAX {
+ [WITH-SPECIFICINFO &SpecificInfo]
+ [WITH-RESULT &Result]
+ IDENTIFIED BY &id
+}
+
+-- SpecificInfo is used for ScriptRun and ScriptInformation and ScriptClose
+--Result is used for ScritEvent
+firstScript UISCRIPT ::= {IDENTIFIED BY local:1
+}
+
+-- firstScript is just an example.
+SupportedUIScripts UISCRIPT ::=
+ {firstScript, ...
+ --full set of User Interaction script
+ }
+
+-- SupportedUIScripts is the full set of User Interaction scripts.
+SCF-SRF-BOUNDS ::= CLASS {
+ &minAttributesLength INTEGER OPTIONAL,
+ &maxAttributesLength INTEGER OPTIONAL,
+ &minMailBoxIDLength INTEGER OPTIONAL,
+ &maxMailBoxIDLength INTEGER OPTIONAL,
+ &minMessageContentLength INTEGER OPTIONAL,
+ &maxMessageContentLength INTEGER OPTIONAL,
+ &minReceivedInformationLength INTEGER OPTIONAL,
+ &maxReceivedInformationLength INTEGER OPTIONAL,
+ &maxRecordingTime INTEGER OPTIONAL,
+ &numOfMessageIDs INTEGER OPTIONAL,
+ &maxRecordedMessageUnits INTEGER OPTIONAL,
+ &maxVariableParts INTEGER OPTIONAL
+}
+WITH SYNTAX {
+ [MINIMUM-FOR-ATTRIBUTES &minAttributesLength]
+ [MAXIMUM-FOR-ATTRIBUTES &maxAttributesLength]
+ [MINIMUM-FOR-MAIL-BOX-ID &minMailBoxIDLength]
+ [MAXIMUM-FOR-MAIL-BOX-ID &maxMailBoxIDLength]
+ [MINIMUM-FOR-MESSAGE-CONTENT &minMessageContentLength]
+ [MAXIMUM-FOR-MESSAGE-CONTENT &maxMessageContentLength]
+ [MINIMUM-FOR-RECEIVED-INFORMATION &minReceivedInformationLength]
+ [MAXIMUM-FOR-RECEIVED-INFORMATION &maxReceivedInformationLength]
+ [MAXIMUM-FOR-RECORDING-TIME &maxRecordingTime]
+ [NUM-OF-MESSAGE-IDS &numOfMessageIDs]
+ [MAXIMUM-FOR-RECORDED-MESSAGE-UNITS &maxRecordedMessageUnits]
+ [NUM-OF-VARIABLE-PARTS &maxVariableParts]
+}
+
+-- The following instance of the parameter bound is just an example
+networkSpecificB3 SCF-SRF-BOUNDS ::= {
+ MINIMUM-FOR-ATTRIBUTES 1 -- example value
+ MAXIMUM-FOR-ATTRIBUTES 5 -- example value
+ MINIMUM-FOR-MAIL-BOX-ID 1 -- example value
+ MAXIMUM-FOR-MAIL-BOX-ID 5 -- example value
+ MINIMUM-FOR-MESSAGE-CONTENT 1 -- example value
+ MAXIMUM-FOR-MESSAGE-CONTENT 5 -- example value
+ MINIMUM-FOR-RECEIVED-INFORMATION 1 -- example value
+ MAXIMUM-FOR-RECEIVED-INFORMATION 5 -- example value
+ MAXIMUM-FOR-RECORDING-TIME 5 -- example value
+ NUM-OF-MESSAGE-IDS 2 -- example value
+ MAXIMUM-FOR-RECORDED-MESSAGE-UNITS 5 -- example value
+ NUM-OF-VARIABLE-PARTS 5 -- example value
+
+-- must be 5 or
+-- greater.
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-SCF-SRF-datatypes.asn b/epan/dissectors/asn1/inap/IN-SCF-SRF-datatypes.asn
new file mode 100644
index 0000000000..0705e939df
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-SCF-SRF-datatypes.asn
@@ -0,0 +1,188 @@
+-- Module IN-SCF-SRF-datatypes (Q.1248.3:07/2001)
+IN-SCF-SRF-datatypes {itu-t recommendation q 1248 modules(1)
+ in-scf-srf-datatypes(10) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ tc-Messages, common-classes, common-datatypes, ssf-scf-classes,
+ scf-srf-classes, ssf-scf-datatypes, ros-InformationObjects
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ EXTENSION, SupportedExtensions, COMMON-BOUNDS
+ FROM IN-common-classes common-classes
+ Integer4
+ FROM IN-common-datatypes common-datatypes
+ Code
+ FROM Remote-Operations-Information-Objects ros-InformationObjects
+ Digits{}, DisplayInformation{}, SDSSinformation{}
+ FROM IN-SSF-SCF-datatypes ssf-scf-datatypes
+ SCF-SSF-BOUNDS
+ FROM IN-SSF-SCF-Classes ssf-scf-classes
+ SCF-SRF-BOUNDS
+ FROM IN-SCF-SRF-Classes scf-srf-classes;
+
+-- The following three definitions are local short-hand notation for convenience.
+B1 ::=
+ COMMON-BOUNDS -- defined in Q.1248.1 (Part 1 of Recommendation Q.1248)
+
+B2 ::= SCF-SSF-BOUNDS -- defined in Q.1248.2 (Part 2 of Recommendation Q.1248)
+
+B3 ::= SCF-SRF-BOUNDS -- defined in this Recommendation (Q.1248.3)
+
+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,
+ detectModem [11] 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,
+ detectModem [2] BOOLEAN
+}
+
+ElementaryMessageID ::= Integer4
+
+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.
+GapOnResource ::=
+ Code
+
+InbandInfo{B2:b2, B3:b3} ::= SEQUENCE {
+ messageID [0] MessageID{b2, b3},
+ numberOfRepetitions [1] INTEGER(1..127) OPTIONAL,
+ duration [2] INTEGER(0..32767) OPTIONAL,
+ interval [3] INTEGER(0..32767) OPTIONAL,
+ preferredLanguage [4] Language 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
+InformationToRecord{B3:b3} ::= SEQUENCE {
+ messageID [0] ElementaryMessageID OPTIONAL,
+ messageDeletionTimeOut [1] INTEGER(1..3600) OPTIONAL,
+ --Time units = hours
+ timeToRecord [3] INTEGER(0..b3.&maxRecordingTime) OPTIONAL,
+ --Time units = seconds
+ controlDigits
+ [4] SEQUENCE {endOfRecordingDigit
+ [0] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ cancelDigit
+ [1] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ replayDigit
+ [2] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ restartRecordingDigit
+ [3] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ restartAllowed [4] BOOLEAN DEFAULT FALSE,
+ replayAllowed [5] BOOLEAN DEFAULT FALSE,
+ ...},
+ ...
+}
+
+InformationToSend{B2:b2, B3:b3} ::= CHOICE {
+ inbandInfo [0] InbandInfo{b2, b3},
+ tone [1] Tone,
+ displayInformation [2] DisplayInformation{b2},
+ sDSSinformation [3] SDSSinformation{b2}
+}
+
+Language ::= PrintableString(SIZE (3)) -- ISO 639 codes only;
+
+
+MailBoxID{B3:b3} ::=
+ OCTET STRING(SIZE (b3.&minMailBoxIDLength..b3.&maxMailBoxIDLength))
+
+Media ::= ENUMERATED {voiceMail(0), faxGroup3(1), faxGroup4(2)}
+
+MessageID{B2:b2, B3:b3} ::= CHOICE {
+ elementaryMessageID [0] Integer4,
+ text
+ [1] SEQUENCE {messageContent
+ [0] IA5String
+ (SIZE (b3.&minMessageContentLength..
+ b3.&maxMessageContentLength)),
+ attributes
+ [1] OCTET STRING
+ (SIZE (b3.&minAttributesLength..
+ b3.&maxAttributesLength)) OPTIONAL,
+ ...},
+ elementaryMessageIDs
+ [29] SEQUENCE SIZE (1..b3.&numOfMessageIDs) OF Integer4,
+ variableMessage
+ [30] SEQUENCE {elementaryMessageID [0] Integer4,
+ variableParts
+ [1] SEQUENCE SIZE (1..b3.&maxVariableParts) OF
+ VariablePart{b2},
+ ...}
+}
+
+-- OPTIONAL denotes network operator specific use.
+ReceivedStatus ::= ENUMERATED {
+ messageComplete(0), messageInterrupted(1), messageTimeOut(2)}
+
+RecordedMessageID ::= Integer4
+
+SRFGapCriteria{B2:b2} ::= CHOICE {
+ iPAddressValue [1] Digits{b2},
+ gapOnResource [2] GapOnResource,
+ iPAddressAndresource
+ [3] SEQUENCE {iPAddressValue [1] Digits{b2},
+ gapOnResource [2] GapOnResource,
+ ...}
+}
+
+Tone ::= SEQUENCE {
+ toneID [0] Integer4,
+ duration [1] Integer4 OPTIONAL,
+ ...
+}
+
+-- The duration specifies the length of the tone in seconds, value 0 indicates infinite duration.
+VariablePart{B2:b2} ::= CHOICE {
+ integer [0] Integer4,
+ number [1] Digits{b2}, -- 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
+-- For a system operating when or after this Recommendation is released, the 2-digit value
+-- representing a Year shall be interpreted as follows:
+-- - If the two-digits value is 00 through 49 inclusive, it shall be interpreted as representing
+-- year 2000 through 2049.
+-- - If the two-digits value is 50 through 99 inclusive, it shall be interpreted as representing
+-- year 1950 through 1999.
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-SCF-SRF-ops-args.asn b/epan/dissectors/asn1/inap/IN-SCF-SRF-ops-args.asn
new file mode 100644
index 0000000000..43bcbd3170
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-SCF-SRF-ops-args.asn
@@ -0,0 +1,279 @@
+-- Module IN-SCF-SRF-ops-args (Q.1248.3:07/2001)
+IN-SCF-SRF-ops-args {itu-t recommendation q 1248 modules(1)
+ in-scf-srf-ops-args(12) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ ros-InformationObjects, operationcodes, common-datatypes, errortypes,
+ common-classes, scf-srf-classes, ssf-scf-classes, ssf-scf-datatypes,
+ scf-srf-datatypes
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ OPERATION
+ FROM Remote-Operations-Information-Objects ros-InformationObjects
+ opcode-playAnnouncement, opcode-promptAndCollectUserInformation,
+ opcode-promptAndReceiveMessage, opcode-scriptClose, opcode-scriptEvent,
+ opcode-scriptInformation, opcode-scriptRun,
+ opcode-specializedResourceReport, opcode-activityTest, opcode-srfCallGap
+ FROM IN-operationcodes operationcodes
+ SCF-SSF-BOUNDS
+ FROM IN-SSF-SCF-Classes ssf-scf-classes
+ CallSegmentID{}, Digits{}, GenericNumber{}, LegID, ControlType, GapIndicators
+ FROM IN-SSF-SCF-datatypes ssf-scf-datatypes
+ InformationToSend{}, CollectedInfo, MailBoxID{}, InformationToRecord{},
+ Media, ReceivedStatus, RecordedMessageID, SRFGapCriteria{}
+ FROM IN-SCF-SRF-datatypes scf-srf-datatypes
+ canceled, improperCallerResponse, missingParameter, parameterOutOfRange,
+ systemFailure, taskRefused, unavailableResource,
+ unexpectedComponentSequence, unexpectedDataValue, unexpectedParameter,
+ unknownLegID
+ FROM IN-errortypes errortypes
+ UISCRIPT, SupportedUIScripts, SCF-SRF-BOUNDS
+ FROM IN-SCF-SRF-Classes scf-srf-classes
+ Extensions{}
+ FROM IN-common-datatypes common-datatypes
+ COMMON-BOUNDS
+ FROM IN-common-classes common-classes;
+
+-- The following three definitions are local short-hand notation for convenience.
+B1 ::=
+ COMMON-BOUNDS -- defined in Q.1248.1 (Part 1 of Recommendation Q.1248)
+
+B2 ::= SCF-SSF-BOUNDS -- defined in Q.1248.2 (Part 2 of Recommendation Q.1248)
+
+B3 ::= SCF-SRF-BOUNDS -- defined in this Recommendation (Q.1248.3)
+
+-- activityTest OPERATION
+-- This operation is described in Recommendation Q.1248.2.
+-- assistRequestInstructions OPERATION
+-- This operation is described in Recommendation Q.1248.2.
+--cancel OPERATION
+-- This operation is described in Recommendation Q.1248.2.
+playAnnouncement{B1:b1, B2:b2, B3:b3} OPERATION ::= {
+ ARGUMENT PlayAnnouncementArg {b1,
+ b2,
+ b3}
+ RETURN RESULT FALSE
+ ERRORS
+ {canceled | missingParameter | parameterOutOfRange | systemFailure |
+ taskRefused | unexpectedComponentSequence | unexpectedDataValue |
+ unexpectedParameter | unavailableResource | unknownLegID}
+ LINKED {specializedResourceReport}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-playAnnouncement
+}
+
+-- Direction: SCF -> SRF, Timer: Tpa
+-- This operation is to be used after Establish Temporary Connection (assist procedure with a second SSP)
+-- or a Connect to Resource (no assist) operation. It may be used for inband interaction with an analogue user,
+-- or for interaction with an ISDN user. In the former case, the SRF is usually collocated with the SSF for
+-- standard tones (congestion tone ...) or standard announcements. In the latter case, the SRF is always
+-- collocated with the SSF in the switch. Any error is returned to the SCF. The timer associated with this
+-- operation must be of a sufficient duration to allow its linked operation to be correctly correlated.
+PlayAnnouncementArg{B1:b1, B2:b2, B3:b3} ::= SEQUENCE {
+ informationToSend [0] InformationToSend{b2, b3},
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ requestAnnouncementComplete [2] BOOLEAN DEFAULT TRUE,
+ extensions [3] Extensions{b1} OPTIONAL,
+ connectedParty
+ CHOICE {legID [4] LegID,
+ callSegmentID [5] CallSegmentID{b2}} OPTIONAL,
+ ...
+}
+
+promptAndCollectUserInformation{B1:b1, B2:b2, B3:b3} OPERATION ::= {
+ ARGUMENT PromptAndCollectUserInformationArg {b1,
+ b2,
+ b3}
+ RESULT ReceivedInformationArg {b2}
+ ERRORS
+ {canceled | improperCallerResponse | missingParameter | parameterOutOfRange
+ | systemFailure | taskRefused | unexpectedComponentSequence |
+ unavailableResource | unexpectedDataValue | unexpectedParameter}
+ CODE opcode-promptAndCollectUserInformation
+}
+
+-- Direction: SCF -> SRF, Timer: Tpc
+-- This operation is used to interact with a user to collect information.
+PromptAndCollectUserInformationArg{B1:b1, B2:b2, B3:b3} ::= SEQUENCE {
+ collectedInfo [0] CollectedInfo,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ informationToSend [2] InformationToSend{b2, b3} OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ callSegmentID [4] CallSegmentID{b2} OPTIONAL,
+ ...
+}
+
+ReceivedInformationArg{B2:b2} ::= CHOICE {
+ digitsResponse [0] Digits{b2},
+ iA5Response [1] IA5String,
+ modemdetected [2] BOOLEAN
+}
+
+promptAndReceiveMessage{B1:b1, B2:b2, B3:b3} OPERATION ::= {
+ ARGUMENT PromptAndReceiveMessageArg {b1,
+ b2,
+ b3}
+ RESULT MessageReceivedArg {b1,
+ b3}
+ ERRORS
+ {canceled | improperCallerResponse | missingParameter | parameterOutOfRange
+ | taskRefused | systemFailure | unavailableResource |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ CODE opcode-promptAndReceiveMessage
+}
+
+-- Direction: SCF ->SRF, Timer: Tprm
+-- Used to prompt a user to store a message
+PromptAndReceiveMessageArg{B1:b1, B2:b2, B3:b3} ::= SEQUENCE {
+ disconnectFromIPForbidden [0] BOOLEAN DEFAULT TRUE,
+ informationToSend [1] InformationToSend{b2, b3} OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ subscriberID [4] GenericNumber{b2} OPTIONAL,
+ mailBoxID [5] MailBoxID{b3} OPTIONAL,
+ informationToRecord [6] InformationToRecord{b3},
+ media [7] Media DEFAULT voiceMail,
+ callSegmentID [8] CallSegmentID{b2} OPTIONAL,
+ ...
+}
+
+MessageReceivedArg{B1:b1, B3:b3} ::= SEQUENCE {
+ receivedStatus [0] ReceivedStatus,
+ recordedMessageID [1] RecordedMessageID OPTIONAL,
+ recordedMessageUnits [2] INTEGER(1..b3.&maxRecordedMessageUnits) OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- reportUTSI OPERATION
+-- This operation is described in Recommendation Q.1248.2.
+-- requestReportUTSI OPERATION
+-- This operation is described in Recommendation Q.1248.2.
+-- sendSTUI OPERATION
+-- This operation is described in Recommendation Q.1248.2.
+scriptClose{B1:b1, B2:b2} OPERATION ::= {
+ ARGUMENT ScriptCloseArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {systemFailure | missingParameter | taskRefused | unavailableResource |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-scriptClose
+}
+
+-- Direction:SCF-> SRF. Timer :TCl
+-- This operation is issued by the SCF to deallocate the resources used to perform the
+-- instance of the "User Interaction" script: the context is released.
+ScriptCloseArg{B1:b1, B2:b2} ::= SEQUENCE {
+ uIScriptId UISCRIPT.&id({SupportedUIScripts}),
+ uIScriptSpecificInfo
+ [0] UISCRIPT.&SpecificInfo({SupportedUIScripts}{@uIScriptId}) OPTIONAL,
+ extensions [1] Extensions{b1} OPTIONAL,
+ callSegmentID [2] CallSegmentID{b2} OPTIONAL,
+ ...
+}
+
+scriptEvent{B1:b1, B2:b2} OPERATION ::= {
+ ARGUMENT ScriptEventArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-scriptEvent
+}
+
+-- Direction:SRF-> SCF. Timer :TRe
+-- This operation is issued by the SRF to return information to the SCF on the results of the
+-- execution of the instance of User Interaction script.
+ScriptEventArg{B1:b1, B2:b2} ::= SEQUENCE {
+ uIScriptId UISCRIPT.&id({SupportedUIScripts}),
+ uIScriptResult
+ [0] UISCRIPT.&Result({SupportedUIScripts}{@uIScriptId}) OPTIONAL,
+ extensions [1] Extensions{b1} OPTIONAL,
+ callSegmentID [2] CallSegmentID{b2} OPTIONAL,
+ lastEventIndicator [3] BOOLEAN DEFAULT FALSE,
+ ...
+}
+
+scriptInformation{B1:b1, B2:b2} OPERATION ::= {
+ ARGUMENT ScriptInformationArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {systemFailure | missingParameter | taskRefused | unavailableResource |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-scriptInformation
+}
+
+-- Direction:SCF-> SRF. Timer :Tinf
+ScriptInformationArg{B1:b1, B2:b2} ::= SEQUENCE {
+ uIScriptId UISCRIPT.&id({SupportedUIScripts}),
+ uIScriptSpecificInfo
+ [0] UISCRIPT.&SpecificInfo({SupportedUIScripts}{@uIScriptId}) OPTIONAL,
+ extensions [1] Extensions{b1} OPTIONAL,
+ callSegmentID [2] CallSegmentID{b2} OPTIONAL,
+ ...
+}
+
+scriptRun{B1:b1, B2:b2} OPERATION ::= {
+ ARGUMENT ScriptRunArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {systemFailure | missingParameter | taskRefused | unavailableResource |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-scriptRun
+}
+
+-- Direction:SCF-> SRF. Timer :Tru
+-- This operation is issued by the SCF to allocate the necessary resources to perform the
+-- instance of the "User Interaction" script and then to activate this "User Interaction" script
+-- instance. A context is partially defined for it if necessary.
+ScriptRunArg{B1:b1, B2:b2} ::= SEQUENCE {
+ uIScriptId UISCRIPT.&id({SupportedUIScripts}),
+ uIScriptSpecificInfo
+ [0] UISCRIPT.&SpecificInfo({SupportedUIScripts}{@uIScriptId}) OPTIONAL,
+ extensions [1] Extensions{b1} OPTIONAL,
+ disconnectFromIPForbidden [2] BOOLEAN DEFAULT TRUE,
+ callSegmentID [3] CallSegmentID{b2} OPTIONAL,
+ ...
+}
+
+specializedResourceReport OPERATION ::= {
+ ARGUMENT SpecializedResourceReportArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-specializedResourceReport
+}
+
+-- Direction: SRF -> SCF, Timer: Tsrr
+-- This operation is used as the response to a PlayAnnouncement operation when the announcement completed
+-- report indication is set.
+SpecializedResourceReportArg ::= NULL
+
+sRFCallGap{B1:b1, B2:b2} OPERATION ::= {
+ ARGUMENT SRFCallGapArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-srfCallGap
+}
+
+-- Direction: SRF -> SCF, Timer: Tcg
+-- This operation is used to request the SCF to reduce the rate at which specific service requests are sent to
+-- the SRF.
+SRFCallGapArg{B1:b1, B2:b2} ::= SEQUENCE {
+ sRFgapCriteria [0] SRFGapCriteria{b2},
+ gapIndicators [1] GapIndicators,
+ controlType [2] ControlType OPTIONAL,
+ ...,
+ ...,
+ extensions [30] Extensions{b1} OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-SSF-SCF-Classes.asn b/epan/dissectors/asn1/inap/IN-SSF-SCF-Classes.asn
new file mode 100644
index 0000000000..1953c194bb
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-SSF-SCF-Classes.asn
@@ -0,0 +1,296 @@
+-- Module IN-SSF-SCF-Classes (Q.1248.2:07/2001)
+IN-SSF-SCF-Classes {itu-t recommendation q 1248 modules(1)
+ in-ssf-scf-classes(7) version1(0)} DEFINITIONS ::=
+BEGIN
+
+TRIGGER ::= CLASS {&Parameter OPTIONAL,
+ &id INTEGER UNIQUE
+}WITH SYNTAX {[PARAMETER &Parameter]
+ IDENTIFIED BY &id
+}
+
+--The &id field uniquely identifies a class of triggers.
+--The &Parameter field defines the ASN.1 type for representing specific parameters
+-- (e.g. criteria, scfAddress, ...)
+--associated with this class of triggers.
+SCF-SSF-BOUNDS ::= CLASS {
+ &highLayerCompatibilityLength INTEGER OPTIONAL,
+ &minAChBillingChargingLength INTEGER OPTIONAL,
+ &maxAChBillingChargingLength INTEGER OPTIONAL,
+ &minBackwardGVNSLength INTEGER OPTIONAL,
+ &maxBackwardGVNSLength INTEGER OPTIONAL,
+ &maxBearerCapabilityLength INTEGER OPTIONAL,
+ &minCalledDirectoryNumberLength INTEGER OPTIONAL,
+ &maxCalledDirectoryNumberLength INTEGER OPTIONAL,
+ &minCalledPartyNumberLength INTEGER OPTIONAL,
+ &maxCalledPartyNumberLength INTEGER OPTIONAL,
+ &minCalledPartySubaddressLength INTEGER OPTIONAL,
+ &maxCalledPartySubaddressLength INTEGER OPTIONAL,
+ &minCallingGeodeticLocationLength INTEGER OPTIONAL,
+ &maxCallingGeodeticLocationLength INTEGER OPTIONAL,
+ &minCallingPartyNumberLength INTEGER OPTIONAL,
+ &maxCallingPartyNumberLength INTEGER OPTIONAL,
+ &minCallingPartySubaddressLength INTEGER OPTIONAL,
+ &maxCallingPartySubaddressLength INTEGER OPTIONAL,
+ &minCallResultLength INTEGER OPTIONAL,
+ &maxCallResultLength INTEGER OPTIONAL,
+ &maxCallReferenceLength INTEGER OPTIONAL,
+ &minCarrierLength INTEGER OPTIONAL,
+ &maxCarrierLength INTEGER OPTIONAL,
+ &minCauseLength INTEGER OPTIONAL,
+ &maxCauseLength INTEGER OPTIONAL,
+ &maxCNInfoLength INTEGER OPTIONAL,
+ &minDestinationIndexLength INTEGER OPTIONAL,
+ &maxDestinationIndexLength INTEGER OPTIONAL,
+ &minDigitsLength INTEGER OPTIONAL,
+ &maxDigitsLength INTEGER OPTIONAL,
+ &minDisplayInformationLength INTEGER OPTIONAL,
+ &maxDisplayInformationLength INTEGER OPTIONAL,
+ &minEventSpecificInformationChargingLength INTEGER OPTIONAL,
+ &maxEventSpecificInformationChargingLength INTEGER OPTIONAL,
+ &minEventTypeChargingLength INTEGER OPTIONAL,
+ &maxEventTypeChargingLength INTEGER OPTIONAL,
+ &minFCIBillingChargingLength INTEGER OPTIONAL,
+ &maxFCIBillingChargingLength INTEGER OPTIONAL,
+ &minForwardGVNSLength INTEGER OPTIONAL,
+ &maxForwardGVNSLength INTEGER OPTIONAL,
+ &minGenericNameLength INTEGER OPTIONAL,
+ &maxGenericNameLength INTEGER OPTIONAL,
+ &minGenericNumberLength INTEGER OPTIONAL,
+ &maxGenericNumberLength INTEGER OPTIONAL,
+ &maxInitialTimeInterval INTEGER OPTIONAL,
+ &maxINServiceCompatibilityIndLength INTEGER OPTIONAL,
+ &minIPAvailableLength INTEGER OPTIONAL,
+ &maxIPAvailableLength INTEGER OPTIONAL,
+ &minIPSSPCapabilitiesLength INTEGER OPTIONAL,
+ &maxIPSSPCapabilitiesLength INTEGER OPTIONAL,
+ &minISDNAccessRelatedInfoLength INTEGER OPTIONAL,
+ &maxISDNAccessRelatedInfoLength INTEGER OPTIONAL,
+ &minLocationNumberLength INTEGER OPTIONAL,
+ &maxLocationNumberLength INTEGER OPTIONAL,
+ &maxNbOfRoutes INTEGER OPTIONAL,
+ &minMidCallControlInfoNum INTEGER OPTIONAL,
+ &maxMidCallControlInfoNum INTEGER OPTIONAL,
+ &minOriginalCalledPartyIDLength INTEGER OPTIONAL,
+ &maxOriginalCalledPartyIDLength INTEGER OPTIONAL,
+ &minReasonLength INTEGER OPTIONAL,
+ &maxReasonLength INTEGER OPTIONAL,
+ &minRedirectingPartyIDLength INTEGER OPTIONAL,
+ &maxRedirectingPartyIDLength INTEGER OPTIONAL,
+ &minRequestedUTSINum INTEGER OPTIONAL,
+ &maxRequestedUTSINum INTEGER OPTIONAL,
+ &minRouteListLength INTEGER OPTIONAL,
+ &maxRouteListLength INTEGER OPTIONAL,
+ &minRouteingNumberLength INTEGER OPTIONAL,
+ &maxRouteingNumberLength INTEGER OPTIONAL,
+ &minScfIDLength INTEGER OPTIONAL,
+ &maxScfIDLength INTEGER OPTIONAL,
+ &minSCIBillingChargingLength INTEGER OPTIONAL,
+ &maxSCIBillingChargingLength INTEGER OPTIONAL,
+ &minSDSSinformationLength INTEGER OPTIONAL,
+ &maxSDSSinformationLength INTEGER OPTIONAL,
+ &minServiceInteractionIndicatorsLength INTEGER OPTIONAL,
+ &maxServiceInteractionIndicatorsLength INTEGER OPTIONAL,
+ &minSFBillingChargingLength INTEGER OPTIONAL,
+ &maxSFBillingChargingLength INTEGER OPTIONAL,
+ &minUSIInformationLength INTEGER OPTIONAL,
+ &maxUSIInformationLength INTEGER OPTIONAL,
+ &minUSIServiceIndicatorLength INTEGER OPTIONAL,
+ &maxUSIServiceIndicatorLength INTEGER OPTIONAL,
+ &numOfBCSMEvents INTEGER OPTIONAL,
+ &numOfBCUSMEvents INTEGER OPTIONAL,
+ &numOfChargingEvents INTEGER OPTIONAL,
+ &numOfCounters INTEGER OPTIONAL,
+ &numOfCSAs INTEGER OPTIONAL,
+ &numOfCSs INTEGER OPTIONAL,
+ &numOfGenericNumbers INTEGER OPTIONAL,
+ &numOfInfoItems INTEGER OPTIONAL,
+ &numOfInServiceCompatibilityIndLength INTEGER OPTIONAL,
+ &numOfLegs INTEGER OPTIONAL,
+ &numOfMessageIDs INTEGER OPTIONAL,
+ &maxAmount INTEGER OPTIONAL,
+ &maxInitialUnitIncrement INTEGER OPTIONAL,
+ &maxScalingFactor INTEGER OPTIONAL,
+ &maxSegmentsPerDataInterval INTEGER OPTIONAL,
+ &ub-nbCall INTEGER OPTIONAL,
+ &numOfAddresses INTEGER OPTIONAL,
+ &numOfINProfile INTEGER OPTIONAL,
+ &numOfTriggers INTEGER OPTIONAL,
+ &minAALPLength INTEGER OPTIONAL,
+ &maxAALPLength INTEGER OPTIONAL,
+ &minAdditionalATMCellRateLength INTEGER OPTIONAL,
+ &maxAdditionalATMCellRateLength INTEGER OPTIONAL,
+ &minAESACalledPartyLength INTEGER OPTIONAL,
+ &maxAESACalledPartyLength INTEGER OPTIONAL,
+ &minAESACallingPartyLength INTEGER OPTIONAL,
+ &maxAESACallingPartyLength INTEGER OPTIONAL,
+ &minATMCellRateLength INTEGER OPTIONAL,
+ &maxATMCellRateLength INTEGER OPTIONAL,
+ &minCDVTDescriptorLength INTEGER OPTIONAL,
+ &maxCDVTDescriptorLength INTEGER OPTIONAL,
+ &minConnectionIdentifierLength INTEGER OPTIONAL,
+ &maxConnectionIdentifierLength INTEGER OPTIONAL,
+ &minCumulativeTransitDelayLength INTEGER OPTIONAL,
+ &maxCumulativeTransitDelayLength INTEGER OPTIONAL,
+ &minEndToEndTDLength INTEGER OPTIONAL,
+ &maxEndToEndTDLength INTEGER OPTIONAL,
+ &minGenericIdentifierLength INTEGER OPTIONAL,
+ &maxGenericIdentifierLength INTEGER OPTIONAL,
+ &minMinAcceptableATMTrafficDescriptorLength INTEGER OPTIONAL,
+ &maxMinAcceptableATMTrafficDescriptorLength INTEGER OPTIONAL,
+ &minAlternativeATMTrafficDescriptorLength INTEGER OPTIONAL,
+ &maxAlternativeATMTrafficDescriptorLength INTEGER OPTIONAL,
+ &minQoSParameterLength INTEGER OPTIONAL,
+ &maxQoSParameterLength INTEGER OPTIONAL,
+ &minBroadbandBearerCapabilityLength INTEGER OPTIONAL,
+ &maxBroadbandBearerCapabilityLength INTEGER OPTIONAL,
+ &maxGlobalCallReferenceLength INTEGER OPTIONAL,
+ &maxAlternativeIdentities INTEGER OPTIONAL,
+ &maxAlternativeIds INTEGER OPTIONAL
+}
+WITH SYNTAX {
+ [HIGH-LAYER-COMPATIBILITY-LENGTH &highLayerCompatibilityLength]
+ [MINIMUM-FOR-ACH-BILLING-CHARGING &minAChBillingChargingLength]
+ [MAXIMUM-FOR-ACH-BILLING-CHARGING &maxAChBillingChargingLength]
+ [MINIMUM-FOR-BACKWARD-GVNS &minBackwardGVNSLength]
+ [MAXIMUM-FOR-BACKWARD-GVNS &maxBackwardGVNSLength]
+ [MAXIMUM-FOR-BEARER-CAPABILITY &maxBearerCapabilityLength]
+ [MINIMUM-FOR-CALLED-DIRECTORY-NUMBER &minCalledDirectoryNumberLength]
+ [MAXIMUM-FOR-CALLED-DIRECTORY-NUMBER &maxCalledDirectoryNumberLength]
+ [MINIMUM-FOR-CALLED-PARTY-NUMBER &minCalledPartyNumberLength]
+ [MAXIMUM-FOR-CALLED-PARTY-NUMBER &maxCalledPartyNumberLength]
+ [MINIMUM-FOR-CALLED-PARTY-SUBADDRESS &minCalledPartySubaddressLength]
+ [MAXIMUM-FOR-CALLED-PARTY-SUBADDRESS &maxCalledPartySubaddressLength]
+ [MINIMUM-FOR-CALLING-GEODETIC-LOCATION &minCallingGeodeticLocationLength]
+ [MAXIMUM-FOR-CALLING-GEODETIC-LOCATION &maxCallingGeodeticLocationLength]
+ [MINIMUM-FOR-CALLING-PARTY-NUMBER &minCallingPartyNumberLength]
+ [MAXIMUM-FOR-CALLING-PARTY-NUMBER &maxCallingPartyNumberLength]
+ [MINIMUM-FOR-CALLING-PARTY-SUBADDRESS &minCallingPartySubaddressLength]
+ [MAXIMUM-FOR-CALLING-PARTY-SUBADDRESS &maxCallingPartySubaddressLength]
+ [MINIMUM-FOR-CALL-RESULT &minCallResultLength]
+ [MAXIMUM-FOR-CALL-RESULT &maxCallResultLength]
+ [MINIMUM-FOR-CARRIER &minCarrierLength]
+ [MAXIMUM-FOR-CARRIER &maxCarrierLength]
+ [MINIMUM-FOR-CAUSE &minCauseLength]
+ [MAXIMUM-FOR-CAUSE &maxCauseLength]
+ [MINIMUM-FOR-DESTINATION &minDestinationIndexLength]
+ [MAXIMUM-FOR-DESTINATION &maxDestinationIndexLength]
+ [MINIMUM-FOR-DIGITS &minDigitsLength]
+ [MAXIMUM-FOR-DIGITS &maxDigitsLength]
+ [MINIMUM-FOR-DISPLAY &minDisplayInformationLength]
+ [MAXIMUM-FOR-DISPLAY &maxDisplayInformationLength]
+ [MINIMUM-FOR-EVENT-SPECIFIC-CHARGING
+ &minEventSpecificInformationChargingLength]
+ [MAXIMUM-FOR-EVENT-SPECIFIC-CHARGING
+ &maxEventSpecificInformationChargingLength]
+ [MINIMUM-FOR-EVENT-TYPE-CHARGING &minEventTypeChargingLength]
+ [MAXIMUM-FOR-EVENT-TYPE-CHARGING &maxEventTypeChargingLength]
+ [MINIMUM-FOR-FCI-BILLING-CHARGING &minFCIBillingChargingLength]
+ [MAXIMUM-FOR-FCI-BILLING-CHARGING &maxFCIBillingChargingLength]
+ [MINIMUM-FOR-FORWARD-GVNS &minForwardGVNSLength]
+ [MAXIMUM-FOR-FORWARD-GVNS &maxForwardGVNSLength]
+ [MINIMUM-FOR-GENERIC-NAME &minGenericNameLength]
+ [MAXIMUM-FOR-GENERIC-NAME &maxGenericNameLength]
+ [MINIMUM-FOR-GENERIC-NUMBER &minGenericNumberLength]
+ [MAXIMUM-FOR-GENERIC-NUMBER &maxGenericNumberLength]
+ [MAXIMUM-FOR-INITIAL-TIME-INTERVAL &maxInitialTimeInterval]
+ [MAXIMUM-FOR-IN-SERVICE-COMPATIBILITY &maxINServiceCompatibilityIndLength]
+ [MINIMUM-FOR-IP-AVAILABLE &minIPAvailableLength]
+ [MAXIMUM-FOR-IP-AVAILABLE &maxIPAvailableLength]
+ [MINIMUM-FOR-IP-SSP-CAPABILITIES &minIPSSPCapabilitiesLength]
+ [MAXIMUM-FOR-IP-SSP-CAPABILITIES &maxIPSSPCapabilitiesLength]
+ [MINIMUM-FOR-ISDN-ACCESS-RELATED-INFO &minISDNAccessRelatedInfoLength]
+ [MAXIMUM-FOR-ISDN-ACCESS-RELATED-INFO &maxISDNAccessRelatedInfoLength]
+ [MINIMUM-FOR-LOCATION-NUMBER &minLocationNumberLength]
+ [MAXIMUM-FOR-LOCATION-NUMBER &maxLocationNumberLength]
+ [MAXIMUM-NB-OF-ROUTES &maxNbOfRoutes]
+ [MINIMUM-FOR-MID-CALL-CONTROL-INFO &minMidCallControlInfoNum]
+ [MAXIMUM-FOR-MID-CALL-CONTROL-INFO &maxMidCallControlInfoNum]
+ [MINIMUM-FOR-ORIGINAL-CALLED-PARTY-ID &minOriginalCalledPartyIDLength]
+ [MAXIMUM-FOR-ORIGINAL-CALLED-PARTY-ID &maxOriginalCalledPartyIDLength]
+ [MINIMUM-FOR-REASON &minReasonLength]
+ [MAXIMUM-FOR-REASON &maxReasonLength]
+ [MINIMUM-FOR-REDIRECTING-ID &minRedirectingPartyIDLength]
+ [MAXIMUM-FOR-REDIRECTING-ID &maxRedirectingPartyIDLength]
+ [MINIMUM-FOR-REQUESTED-UTSI-NUM &minRequestedUTSINum]
+ [MAXIMUM-FOR-REQUESTED-UTSI-NUM &maxRequestedUTSINum]
+ [MINIMUM-FOR-ROUTE-LIST &minRouteListLength]
+ [MAXIMUM-FOR-ROUTE-LIST &maxRouteListLength]
+ [MINIMUM-FOR-ROUTING-NUMBER &minRouteingNumberLength]
+ [MAXIMUM-FOR-ROUTING-NUMBER &maxRouteingNumberLength]
+ [MINIMUM-FOR-SCF-ID &minScfIDLength]
+ [MAXIMUM-FOR-SCF-ID &maxScfIDLength]
+ [MINIMUM-FOR-SCI-BILLING-CHARGING &minSCIBillingChargingLength]
+ [MAXIMUM-FOR-SCI-BILLING-CHARGING &maxSCIBillingChargingLength]
+ [MINIMUM-FOR-SDSS-INFORMATION &minSDSSinformationLength]
+ [MAXIMUM-FOR-SDSS-INFORMATION &maxSDSSinformationLength]
+ [MINIMUM-FOR-SII &minServiceInteractionIndicatorsLength]
+ [MAXIMUM-FOR-SII &maxServiceInteractionIndicatorsLength]
+ [MINIMUM-FOR-SF-BILLING-CHARGING &minSFBillingChargingLength]
+ [MAXIMUM-FOR-SF-BILLING-CHARGING &maxSFBillingChargingLength]
+ [MINIMUM-FOR-USI-INFORMATION &minUSIInformationLength]
+ [MAXIMUM-FOR-USI-INFORMATION &maxUSIInformationLength]
+ [MINIMUM-FOR-USI-SERVICE-INDICATOR &minUSIServiceIndicatorLength]
+ [MAXIMUM-FOR-USI-SERVICE-INDICATOR &maxUSIServiceIndicatorLength]
+ [NUM-OF-BCSM-EVENT &numOfBCSMEvents]
+ [NUM-OF-BCUSM-EVENT &numOfBCUSMEvents]
+ [NUM-OF-CHARGING-EVENT &numOfChargingEvents]
+ [NUM-OF-COUNTERS &numOfCounters]
+ [NUM-OF-CSAS &numOfCSAs]
+ [NUM-OF-CSS &numOfCSs]
+ [NUM-OF-GENERIC-NUMBERS &numOfGenericNumbers]
+ [NUM-OF-INFO-ITEMS &numOfInfoItems]
+ [NUM-OF-INPROFILE &numOfINProfile]
+ [NUM-OF-SEVERALTRIGGER &numOfTriggers]
+ [NUM-OF-IN-SERVICE-COMPATIBILITY-ID &numOfInServiceCompatibilityIndLength]
+ [NUM-OF-LEGS &numOfLegs]
+ [NUM-OF-MESSAGE-IDS &numOfMessageIDs]
+ [MAXIMUM-FOR-AMOUNT &maxAmount]
+ [MAXIMUM-FOR-CALL-REFERENCE &maxCallReferenceLength]
+ [MAXIMUM-FOR-CNINFO &maxCNInfoLength]
+ [MAXIMUM-FOR-INITIAL-UNIT-INCREMENT &maxInitialUnitIncrement]
+ [MAXIMUM-FOR-SCALING-FACTOR &maxScalingFactor]
+ [MAXIMUM-FOR-SEGMENTS-PER-DATA-INTERVAL &maxSegmentsPerDataInterval]
+ [MAXIMUM-FOR-UB-NB-CALL &ub-nbCall]
+ [NUM-OF-ADDRESSES &numOfAddresses]
+ [MINIMUM-FOR-AAL-PARAMETERS &minAALPLength]
+ [MAXIMUM-FOR-AAL-PARAMETERS &maxAALPLength]
+ [MINIMUM-FOR-ADDITIONAL-ATM-CELL-RATE &minAdditionalATMCellRateLength]
+ [MAXIMUM-FOR-ADDITIONAL-ATM-CELL-RATE &maxAdditionalATMCellRateLength]
+ [MINIMUM-FOR-AESA-CALLED-PARTY &minAESACalledPartyLength]
+ [MAXIMUM-FOR-AESA-CALLED-PARTY &maxAESACalledPartyLength]
+ [MINIMUM-FOR-AESA-CALLING-PARTY &minAESACallingPartyLength]
+ [MAXIMUM-FOR-AESA-CALLING-PARTY &maxAESACallingPartyLength]
+ [MINIMUM-FOR-ATM-CELL-RATE &minATMCellRateLength]
+ [MAXIMUM-FOR-ATM-CELL-RATE &maxATMCellRateLength]
+ [MINIMUM-FOR-CDVT-DESCRIPTOR &minCDVTDescriptorLength]
+ [MAXIMUM-FOR-CDVT-DESCRIPTOR &maxCDVTDescriptorLength]
+ [MINIMUM-FOR-CONNECTION-IDENTIFIER &minConnectionIdentifierLength]
+ [MAXIMUM-FOR-CONNECTION-IDENTIFIER &maxConnectionIdentifierLength]
+ [MINIMUM-FOR-CUMULATIVE-TRANSIT-DELAY &minCumulativeTransitDelayLength]
+ [MAXIMUM-FOR-CUMULATIVE-TRANSIT-DELAY &maxCumulativeTransitDelayLength]
+ [MINIMUM-FOR-END-TO-END-TRANSIT-DELAY &minEndToEndTDLength]
+ [MAXIMUM-FOR-END-TO-END-TRANSIT-DELAY &maxEndToEndTDLength]
+ [MINIMUM-FOR-GENERIC-IDENTIFIER &minGenericIdentifierLength]
+ [MAXIMUM-FOR-GENERIC-IDENTIFIER &maxGenericIdentifierLength]
+ [MINIMUM-FOR-MIN-ACCEPTABLE-ATM-TRAFFIC-DESCRIPTOR
+ &minMinAcceptableATMTrafficDescriptorLength]
+ [MAXIMUM-FOR-MIN-ACCEPTABLE-ATM-TRAFFIC-DESCRIPTOR
+ &maxMinAcceptableATMTrafficDescriptorLength]
+ [MINIMUM-FOR-ALTERNATIVE-ATM-TRAFFIC-DESCRIPTOR
+ &minAlternativeATMTrafficDescriptorLength]
+ [MAXIMUN-FOR-ALTERNATIVE-ATM-TRAFFIC-DESCRIPTOR
+ &maxAlternativeATMTrafficDescriptorLength]
+ [MINIMUM-FOR-QOS-PARAMETER &minQoSParameterLength]
+ [MAXIMUM-FOR-QOS-PARAMETER &maxQoSParameterLength]
+ [MINIMUM-FOR-BROADBAND-BEARER-CAPABILITY &minBroadbandBearerCapabilityLength]
+ [MAXIMUM-FOR-BROADBAND-BEARER-CAPABILITY &maxBroadbandBearerCapabilityLength]
+ [MAXIMUM-GLOBAL-CALL-REFERENCE &maxGlobalCallReferenceLength]
+ [MAXIMUM-ALTERNATIVE-IDENTITIES &maxAlternativeIdentities]
+ [MAXIMUM-NB-OF-ALTERNATIVE-IDENTITIES &maxAlternativeIds]
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-SSF-SCF-datatypes.asn b/epan/dissectors/asn1/inap/IN-SSF-SCF-datatypes.asn
new file mode 100644
index 0000000000..beecf0ec4f
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-SSF-SCF-datatypes.asn
@@ -0,0 +1,1435 @@
+-- Small modifications made to the original due to as2wrs shortfalls, to be corrected.
+-- Module IN-SSF-SCF-datatypes (Q.1248.2:07/2001)
+IN-SSF-SCF-datatypes {itu-t recommendation q 1248 modules(1)
+ in-ssf-scf-datatypes(6) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ common-classes, common-datatypes, ssf-scf-classes, scf-srf-classes,
+ scf-srf-datatypes, tc-Messages
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ COMMON-BOUNDS
+ FROM IN-common-classes common-classes
+ TRIGGER, SCF-SSF-BOUNDS
+ FROM IN-SSF-SCF-Classes {itu-t recommendation q 1248 modules(1)
+ in-ssf-scf-classes(7) version1(0)}
+ SCF-SRF-BOUNDS
+ FROM IN-SCF-SRF-Classes scf-srf-classes
+ Extensions{}, Integer4
+ FROM IN-common-datatypes common-datatypes
+ InformationToSend{}
+ FROM IN-SCF-SRF-datatypes scf-srf-datatypes;
+
+-- The following three definitions are local short-hand notation for convenience.
+--B1 ::=
+-- COMMON-BOUNDS defined in Q.1248.1 (Part 1 of Recommendation Q.1248)
+
+--B2 ::= SCF-SSF-BOUNDS defined in this Recommendation (Q.1248.2)
+
+-- B3 ::= SCF-SRF-BOUNDS defined in Q.1248.3 (Part 3 of Recommendation Q.1248)
+
+AALParameters{B2:b2} ::=
+ OCTET STRING(SIZE (minAALPLength..maxAALPLength))
+
+-- Indicates the AAL Parameters Information Element. Refer to Q.2931 for encoding.
+AccessCode{B2:b2} ::=
+ LocationNumber{b2}
+
+-- 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{B2:b2} ::=
+ 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.
+-- Different set of criteria may be provided in case more than one report is expected.
+-- Its 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 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
+ActionIndicator ::= ENUMERATED {activate(1), deactivate(2), retrieve(3)
+}
+
+-- indicates the action to be performed by the ManageTriggerData operation (activate, deactivate
+-- or retrieve the status of a TDP.
+ActionOnProfile ::= ENUMERATED {activate(0), deactivate(1)}
+
+-- Indicates whether a setServiceProfile operation is used to activate or deactivate profile elements.
+ActionPerformed ::= ENUMERATED {
+ activated(1), deactivated(2), alreadyActive(3), alreadyInactive(4),
+ isActive(5), isInactive(6), tDPunknown(7)}
+
+-- indicates the result of the operation ManageTriggerData
+-- activated: response of activate TDP
+-- deactivated: response of deactivate TDP
+-- alreadyActive: response of activate TDP
+-- alreadyInactive: response of deactivate TDP
+-- isActive: response of retrieve status of TDP
+-- isInactive: response of retrieve status of TDP
+AdditionalATMCellRate{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minAdditionalATMCellRateLength..
+ maxAdditionalATMCellRateLength))
+
+-- Indicates the AdditionalATMCellRate Information Element. Refer to Q.2763 for encoding.
+AdditionalCallingPartyNumber{B2:b2} ::=
+ Digits{b2}
+
+-- Indicates the Additional Calling Party Number. Refer to Q.763 for encoding.
+AESACalledParty{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minAESACalledPartyLength..maxAESACalledPartyLength))
+
+-- Indicates the AESACalledParty Information Element. Refer to Q.2763 for encoding.
+AESACallingParty{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minAESACallingPartyLength..maxAESACallingPartyLength))
+
+-- Indicates the AESACallingParty Information Element. Refer to Q.2763 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 the trailing OCTET is used, the remaining OCTETS should be sent as NULL (zero)
+-- The receiving side ignores the leading two OCTETS.
+-- Only applies if SSF is the terminating local exchange for the subscriber.
+-- Refer to the Q.931 Signal parameter for encoding.
+AlternativeIdentities{B2:b2} ::=
+ SEQUENCE (SIZE (1..maxAlternativeIdentities)) OF AlternativeIdentity
+
+AlternativeIdentity ::= CHOICE {
+ url [0] IA5String(SIZE (1..512)) -- any RFC1738 compliant URL (e.g.; SIP URL)
+}
+
+--Email addresses shall be represented as URLs.
+AlternativeATMTrafficDescriptor{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minAlternativeATMTrafficDescriptorLength..
+ maxAlternativeATMTrafficDescriptorLength))
+
+-- Indicates the AlternativeATMTrafficDescriptor Information Element. Refer to Q.2931 for encoding.
+ApplicationTimer ::= INTEGER(0..2047)
+
+-- Used by the SCF to set a timer in the SSF. The timer is in seconds.
+AssistingSSPIPRoutingAddress{B2:b2} ::=
+ Digits{b2}
+
+-- Indicates the destination address of the SRF for the assist procedure.
+ATMCellRate{B2:b2} ::=
+ OCTET STRING(SIZE (minATMCellRateLength..maxATMCellRateLength))
+
+-- Indicates the ATMCellRate Information Element. Refer to Q.2763 for encoding.
+BackwardGVNS{B2:b2} ::=
+ OCTET STRING(SIZE (minBackwardGVNSLength..maxBackwardGVNSLength))
+
+-- Indicates the GVNS Backward information. Refer to Q.735 for encoding.
+BackwardServiceInteractionInd ::= SEQUENCE {
+ conferenceTreatmentIndicator [1] OCTET STRING(SIZE (1)) OPTIONAL,
+ -- acceptConferenceRequest 'xxxx xx01'B
+ -- rejectConferenceRequest 'xxxx xx10'B
+ -- network default is accept conference request,
+ callCompletionTreatmentIndicator [2] OCTET STRING(SIZE (1)) OPTIONAL,
+ -- acceptCallCompletionServiceRequest 'xxxx xx01'B,
+ -- rejectCallCompletionServiceRequest 'xxxx xx10'B
+ -- network default is accept call completion service request
+ holdTreatmentIndicator [3] OCTET STRING(SIZE (1)) OPTIONAL,
+ -- acceptHoldRequest 'xxxx xx01'B
+ -- rejectHoldRequest 'xxxx xx10'B
+ -- network default is accept hold request
+ ectTreatmentIndicator [4] OCTET STRING(SIZE (1)) OPTIONAL,
+ -- acceptEctRequest 'xxxx xx01'B
+ -- rejectEctRequest 'xxxx xx10'B
+ -- network default is accept ect request
+ ...
+}
+
+BasicGapCriteria{B2:b2} ::= CHOICE {
+ calledAddressValue [0] Digits{b2},
+ gapOnService [2] GapOnService,
+ gapAllInTraffic [3] NULL,
+ calledAddressAndService
+ [29] SEQUENCE {calledAddressValue [0] Digits{b2},
+ serviceKey [1] ServiceKey,
+ ...},
+ callingAddressAndService
+ [30] SEQUENCE {callingAddressValue [0] Digits{b2},
+ serviceKey [1] ServiceKey,
+ locationNumber [2] LocationNumber{b2} 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
+-- description of the CallGap operation.
+BCSMEvent{B2:b2} ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL,
+ dpSpecificCriteria [30] DpSpecificCriteria{b2} OPTIONAL
+}
+
+-- Indicates the BCSM Event information for monitoring.
+BearerCapability{B2:b2} ::= CHOICE {
+ bearerCap
+ [0] OCTET STRING(SIZE (2..maxBearerCapabilityLength)),
+ tmr [1] OCTET STRING(SIZE (1)),
+ broadbandBearerCap
+ [2] OCTET STRING
+ (SIZE (minBroadbandBearerCapabilityLength..
+ maxBroadbandBearerCapabilityLength))
+}
+
+-- Indicates the type of bearer capability connection to the user. For narrow-band 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.
+-- For broadband ISDN: Indicates the Broadband Bearer Capability. Refer to Q.2961 for encoding.
+BISDNParameters{B2:b2} ::= SEQUENCE {
+ aALParameters [0] AALParameters{b2} OPTIONAL,
+ additionalATMCellRate [1] AdditionalATMCellRate{b2} OPTIONAL,
+ aESACalledParty [2] AESACalledParty{b2} OPTIONAL,
+ aESACallingParty [3] AESACallingParty{b2} OPTIONAL,
+ alternativeATMTrafficDescriptor
+ [4] AlternativeATMTrafficDescriptor{b2} OPTIONAL,
+ aTMCellRate [5] ATMCellRate{b2} OPTIONAL,
+ cDVTDescriptor [6] CDVTDescriptor{b2} OPTIONAL,
+ cumulativeTransitDelay [7] CumulativeTransitDelay{b2} OPTIONAL,
+ endToEndTransitDelay [8] EndToEndTransitDelay{b2} OPTIONAL,
+ minAcceptableATMTrafficDescriptor
+ [9] MinAcceptableATMTrafficDescriptor{b2} OPTIONAL,
+ ...
+}
+
+-- Special construct used to gather all B-ISDN specific parameters
+BothwayThroughConnectionInd ::= ENUMERATED {
+ bothwayPathRequired(0), bothwayPathNotRequired(1)}
+
+-- Indicates whether the speech path must be established both way when user interaction takes place.
+CalledDirectoryNumber{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minCalledDirectoryNumberLength..
+ maxCalledDirectoryNumberLength))
+
+-- Indicates the Called Directory Number. Refer to Q.763 'Called Directory Number' for encoding.
+CalledPartyBusinessGroupID ::= OCTET STRING
+
+-- Indicates the business group of the called party. The value of this octet string is network
+-- operator specific.
+CalledPartyNumber{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minCalledPartyNumberLength..maxCalledPartyNumberLength))
+
+-- Indicates the Called Party Number.. Refer to Q.763 for encoding.
+CalledPartySubaddress{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minCalledPartySubaddressLength..
+ maxCalledPartySubaddressLength))
+
+-- Indicates the Called Party Subaddress. . Refer to Q.763 for encoding.
+CDVTDescriptor{B2:b2} ::=
+ OCTET STRING(SIZE (minCDVTDescriptorLength..maxCDVTDescriptorLength))
+
+-- Indicates the CDVTDescriptor Information Element. Refer to Q.2763 for encoding.
+CallingGeodeticLocation{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minCallingGeodeticLocationLength..
+ maxCallingGeodeticLocationLength))
+
+-- The coding of this parameter is based on the appropriate mapping with the ISUP parameter Calling Geodetic Location.
+-- Refer to Q.763 for encoding.
+-- This parameter indicates the geograhic coordinate of a calling party. The excessive amount of data possible
+-- within this parameter may require segmentation of the INAP operation to be-sent to the SCF.
+-- The amount of data possible to be conveyed within this parameter from
+-- the SSF -to the SCF could be limitted, for example it may be considered to only support a relevant subset of all the
+-- shape descriptions. This is to be considered in the next Capability Set.
+CallingPartyBusinessGroupID ::= OCTET STRING
+
+-- Indicates the business group of the calling party. The value of this octet string is network
+-- operator specific.
+CallingPartyNumber{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minCallingPartyNumberLength..maxCallingPartyNumberLength))
+
+-- Indicates the Calling Party Number. Refer to Q.763 for encoding.
+CallingPartySubaddress{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minCallingPartySubaddressLength..
+ maxCallingPartySubaddressLength))
+
+-- Indicates the Calling Party Subaddress. . Refer to Q.763 for encoding.
+CallingPartysCategory ::= OCTET STRING(SIZE (1))
+
+-- Indicates the type of calling party (e.g. operator, payphone, ordinary subscriber).
+-- Refer to Q.763 for encoding
+CallProcessingOperation ::= ENUMERATED {
+ aLERTing(1), sETUP(5), cONNect(7), dISConnect(69), rELease(77),
+ rELeaseCOMPlete(90), fACility(98)}
+
+CallReference{B2:b2} ::= OCTET STRING(SIZE (1..maxCallReferenceLength))
+
+-- The coding of this parameter is network specific.
+-- A possible coding is the Q.763 call reference
+-- but other encoding schemes are possible.
+-- The Call Reference value is unique within one network. When transit through a private
+-- network the uniqueness of the call reference parameter is not maintained
+CallResult{B2:b2} ::=
+ 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.
+CallSegmentID{B2:b2} ::= INTEGER(1..numOfCSs)
+
+Carrier{B2:b2} ::=
+ OCTET STRING(SIZE (minCarrierLength..maxCarrierLength))
+
+-- Contains the carrier selection field (first octet) followed by either Carrier ID information (option 1) , or the Transit
+--Network selection information (option 2), depending on the network.
+-- In both cases, the 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
+-- 00000101
+-- to Reserved
+-- 00001001
+-- 00001010 Carrier selected by input from calling party
+-- 00001011 Carrier selected by a network operator
+-- 00001100
+-- to spare
+-- 11111110
+-- 00001011 Reserved
+-- For the first option, Carrier ID has a one octet field indicating the number of digits followed by the digits encoded
+-- using BCD. Detailed coding is outside the scope of this capability set. It is of local significance and carrying
+-- it through the ISUP is outside the scope of this capability set
+-- For the second option, refer to Q.763 for the TNS encoding.
+--Note that this ASN.1 encoding of this parameter includes 2 possible encodings, referred to as option 1 and option 2.
+--The encoding that should be used is dependent on the network. It is a hard-coded decision based
+-- on the region in which the switch is located.
+Cause{B2:b2} ::= 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 Q.850.
+CCSS ::= BOOLEAN
+
+-- Used by the SSF to indicate CCSS (Call Completion on Service Set-up) if set to "True" to the SCF,
+-- i.e. that the current call is due a special procedure (CCBS or CCNR).
+CGEncountered ::= ENUMERATED {
+ noCGencountered(0), manualCGencountered(1), sCPOverload(2)}
+
+-- Indicates the type of automatic call gapping encountered, if any.
+ChargeNumber{B2:b2} ::=
+ LocationNumber{b2}
+
+-- 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{B2:b2} ::= SEQUENCE {
+ eventTypeCharging [0] EventTypeCharging{b2},
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL
+}
+
+-- This parameter indicates the charging event type and corresponding monitor mode and LedID
+CNInfo{B2:b2} ::= OCTET STRING(SIZE (1..maxCNInfoLength))
+
+-- encoding of cNInfo is similar to the NNI specific information in the APP parameter in Q.765.1
+-- first octet contains Q.765.1 CNID indicator, only bit 5 and 6 are significant. This is followed by zero to 12 octets
+-- that contains the Q.765.1 CNID parameter, i.e. the Corporate Telecommunications Network Identifier , if present.
+-- This implies that the recommended maxCNInfoLength becomes 13 octets.
+Component ::= CHOICE {
+ componentInfo [0] OCTET STRING(SIZE (1..118)),
+ -- Contains the operation value (object identifier), error value, etc. within the UNI APDU, in addition also contain
+ -- the parameter set/sequence for the operation invocation/return result ot return error/reject on UNI. See Q.932
+ -- for encoding
+ relayedComponent [1] EMBEDDED PDV
+}
+
+-- If componentInfo is chosen, then it is necessary to use this parameter in sequence with ComponentType and
+-- ComponentCorrelationID
+-- If relayedComponent is chosen, then ComponentType and ComponentCorrelationID may not be used in the
+-- sequence
+ComponentCorrelationID ::= INTEGER
+
+ComponentType ::= ENUMERATED {
+ any(0), invoke(1), rResult(2), rError(3), rReject(4)}
+
+-- Type of component in a Facility information element
+CompoundCriteria{B2:b2} ::= SEQUENCE {
+ basicGapCriteria [0] BasicGapCriteria{b2},
+ scfID [1] ScfID{b2} OPTIONAL
+}
+
+-- Allows to combine basic gap criteria with the SCF identifier.
+ConnectedNumberTreatmentInd ::= ENUMERATED {
+ noINImpact(0), presentationRestricted(1), presentCalledINNumber(2),
+ presentCalledINNumberRestricted(3)}
+
+ConnectionIdentifier{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minConnectionIdentifierLength..maxConnectionIdentifierLength))
+
+-- Indicates the ConnectionElementIdentifier Information Element. Refer to Q.2763 for encoding.
+ControlType ::= ENUMERATED {
+ sCPOverloaded(0), manuallyInitiated(1), destinationOverload(2)
+
+-- other values are outside the scope of this capability set.
+}
+
+CorrelationID{B2:b2} ::= Digits{b2}
+
+-- used by SCF for correlation with a previous operation. Refer to clause 11 for a description of the procedures
+-- associated with this parameter.
+CounterAndValue ::= SEQUENCE {
+ counterID [0] CounterID,
+ counterValue [1] Integer4
+}
+
+CounterID ::= INTEGER(0..9)
+
+-- Indicates the counters to be incremented The counterIDs can be addressed by using the last digits of the dialed number.
+CountersValue{B2:b2} ::=
+ SEQUENCE SIZE (0..numOfCounters) OF CounterAndValue
+
+CreateOrRemoveIndicator ::= ENUMERATED {create(0), remove(1)}
+
+CSAID{B2:b2} ::= INTEGER(1..numOfCSAs)
+
+-- Indicates the SSF CSA identifier
+CUG-Interlock ::= OCTET STRING(SIZE (4)) -- See Q.763 for encoding
+
+
+CUG-Index ::=
+ IA5String(SIZE (1..4))
+ (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"))
+
+CumulativeTransitDelay{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minCumulativeTransitDelayLength..
+ maxCumulativeTransitDelayLength))
+
+-- Indicates the CumulativeTransitDelay Information Element. Refer to Q.2763 for encoding.
+CutAndPaste ::= INTEGER(0..2)
+
+-- Indicates the number of leading digits to be deleted (cut) and to paste remaining dialed digits.
+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, 1998 September 30th, 12:15:01 would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 8 9
+-- 9 0
+-- 0 3
+-- 2 1
+-- 5 1
+-- 1 0
+-- For a system operating when or after this Recommendation is released, the 2 digit value
+-- representing a Year shall be interpreted as follows
+-- If the two-digits value is 00 through 49 inclusive, it shall be interpreted as representing
+-- year 2000 through 2049.
+-- If the two-digits value is 50 through 99 inclusive, it shall be interpreted as representng
+-- year 1950 through 1999.
+DefaultFaultHandling{B2:b2, B3:b3} ::= SEQUENCE {
+ action [0] ENUMERATED {resumeCallProcessing(0), releaseCall(1), ...
+ },
+ treatment [1] GapTreatment{b2, b3} OPTIONAL,
+ ...
+}
+
+-- Indicates the default SSF behaviour in case a service cannot be triggered (e.g;. due to call gapping) or
+-- no valid answer is received from the SCF.
+DestinationIndex{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minDestinationIndexLength..maxDestinationIndexLength))
+
+-- Indicates a pointer to a destination. Its content is network operator specific
+DestinationRoutingAddress{B2:b2} ::=
+ SEQUENCE SIZE (1..numOfAddresses) OF CalledPartyNumber{b2}
+
+-- Indicates the list of Called Party Numbers (primary and alternates).
+Digits{B2:b2} ::= OCTET STRING(SIZE (minDigitsLength..maxDigitsLength))
+
+-- Indicates the address signalling digits. Refer to the Q.763 Generic Number and Generic Digits parameter
+-- for encoding. The coding of the subfield's '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
+-- Additional Calling 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, iNServiceControlLow / iNServiceControlHigh for
+--MidCallInfoType,, iNServiceControlCode for MidCallInfo.
+DisplayInformation{B2:b2} ::=
+ IA5String
+ (SIZE (minDisplayInformationLength..maxDisplayInformationLength))
+
+-- Indicates the display information
+-- Delivery of DisplayInformation parameter to Private Networks cannot be guaranteed due to signalling
+-- interworking problems, solutions are outside the scope of this capability set.
+DpSpecificCommonParameters{B1:b1, B2:b2} ::= SEQUENCE {
+ serviceAddressInformation [0] ServiceAddressInformation,
+ bearerCapability [1] BearerCapability{b2} OPTIONAL,
+ calledPartyNumber [2] CalledPartyNumber{b2} OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber{b2} OPTIONAL,
+ callingPartysCategory [4] CallingPartysCategory OPTIONAL,
+ iPSSPCapabilities [5] IPSSPCapabilities{b2} OPTIONAL,
+ iPAvailable [6] IPAvailable{b2} OPTIONAL,
+ iSDNAccessRelatedInformation
+ [7] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ cGEncountered [8] CGEncountered OPTIONAL,
+ locationNumber [9] LocationNumber{b2} OPTIONAL,
+ serviceProfileIdentifier [10] ServiceProfileIdentifier OPTIONAL,
+ terminalType [11] TerminalType OPTIONAL,
+ extensions [12] Extensions{b1} OPTIONAL,
+ chargeNumber [13] ChargeNumber{b2} OPTIONAL,
+ servingAreaID [14] ServingAreaID{b2} OPTIONAL,
+ serviceInteractionIndicators
+ [15] ServiceInteractionIndicators{b2} OPTIONAL,
+ iNServiceCompatibilityIndication
+ [16] INServiceCompatibilityIndication{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [17] ServiceInteractionIndicatorsTwo OPTIONAL,
+ uSIServiceIndicator [18] USIServiceIndicator{b2} OPTIONAL,
+ uSIInformation [19] USIInformation{b2} OPTIONAL,
+ forwardGVNS [20] ForwardGVNS{b2} OPTIONAL,
+ createdCallSegmentAssociation [21] CSAID{b2} OPTIONAL,
+ ...,
+ ipRelatedInformation [22] IPRelatedInformation{b2} OPTIONAL
+}
+
+-- OPTIONAL for iPSSPCapabilities, iPAvailable, and cGEncountered denotes network operator specific use
+-- OPTIONAL for callingPartyNumber, and callingPartysCategory
+-- . bearerCapability should be appropriately coded as speech.
+DpSpecificCriteria{B2:b2} ::= CHOICE {
+ numberOfDigits [0] NumberOfDigits,
+ applicationTimer [1] ApplicationTimer,
+ midCallControlInfo [2] MidCallControlInfo{b2},
+ numberOfDigitsTwo
+ [3] SEQUENCE {requestedNumberOfDigits [0] NumberOfDigits,
+ minNumberOfDigits [1] NumberOfDigits OPTIONAL
+ }
+}
+
+-- 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
+-- The SCF may specify the number of digits to be collected by the SSF for the
+-- CollecteInfo event and hereby specify a minimum number of digits to be collected in case
+-- the exact number of digits is unknown to the SCF, but a report is desired in case of complete number
+-- is determined before the requested number of digits has been collected.
+Duration ::= INTEGER(-2..86400)
+
+-- Values are seconds. The interpetationof value 0 depends on the context where it is used..
+-- A duration of -1 indicates an infinite duration.
+-- A duration of -2 indicates a network specific duration.
+EndToEndTransitDelay{B2:b2} ::=
+ OCTET STRING(SIZE (minEndToEndTDLength..maxEndToEndTDLength))
+
+-- Indicates the MaximunEndToEndTransitDelay Information Element. Refer to Q.2763 for encoding.
+Entry ::= CHOICE {
+ agreements [0] OBJECT IDENTIFIER,
+ networkSpecific [1] Integer4
+}
+
+-- Identifies a class of service for IN service compatibility procedures.
+EventSpecificInformationBCSM{B2:b2} ::= CHOICE {
+ collectedInfoSpecificInfo
+ [0] SEQUENCE {calledPartynumber [0] CalledPartyNumber{b2},
+ ...},
+ analysedInfoSpecificInfo
+ [1] SEQUENCE {calledPartynumber [0] CalledPartyNumber{b2},
+ ...},
+ routeSelectFailureSpecificInfo
+ [2] SEQUENCE {failureCause [0] Cause{b2} OPTIONAL,
+ ...},
+ oCalledPartyBusySpecificInfo
+ [3] SEQUENCE {busyCause [0] Cause{b2} OPTIONAL,
+ ...},
+ oNoAnswerSpecificInfo
+ [4] SEQUENCE {...,
+ cause [0] Cause{b2} OPTIONAL},
+ oAnswerSpecificInfo
+ [5] SEQUENCE {backwardGVNS [0] BackwardGVNS{b2} OPTIONAL,
+ ...},
+ oMidCallSpecificInfo
+ [6] SEQUENCE {connectTime [0] Integer4 OPTIONAL,
+ oMidCallInfo [1] MidCallInfo{b2} OPTIONAL,
+ ...},
+ oDisconnectSpecificInfo
+ [7] SEQUENCE {releaseCause [0] Cause{b2} OPTIONAL,
+ connectTime [1] Integer4 OPTIONAL,
+ ...},
+ tBusySpecificInfo
+ [8] SEQUENCE {busyCause [0] Cause{b2} OPTIONAL,
+ ...},
+ tNoAnswerSpecificInfo
+ [9] SEQUENCE {...,
+ cause [0] Cause{b2} OPTIONAL},
+ tAnswerSpecificInfo
+ [10] SEQUENCE {-- no specific info defined
+ ...},
+ tMidCallSpecificInfo
+ [11] SEQUENCE {connectTime [0] Integer4 OPTIONAL,
+ tMidCallInfo [1] MidCallInfo{b2} OPTIONAL,
+ ...},
+ tDisconnectSpecificInfo
+ [12] SEQUENCE {releaseCause [0] Cause{b2} OPTIONAL,
+ connectTime [1] Integer4 OPTIONAL,
+ ...},
+ oTermSeizedSpecificInfo
+ [13] SEQUENCE {-- no specific info defined
+ ...},
+ oSuspend
+ [14] SEQUENCE {-- no specific info defined
+ ...},
+ tSuspend
+ [15] SEQUENCE {-- no specific info defined
+ ...},
+ origAttemptAuthorized
+ [16] SEQUENCE {-- no specific info defined
+ ...},
+ oReAnswer
+ [17] SEQUENCE {-- no specific info defined
+ ...},
+ tReAnswer
+ [18] SEQUENCE {-- no specific info defined
+ ...},
+ facilitySelectedAndAvailable
+ [19] SEQUENCE {-- no specific info defined
+ ...},
+ callAccepted
+ [20] SEQUENCE {-- no specific info defined
+ ...},
+ oAbandon
+ [21] SEQUENCE {abandonCause [0] Cause{b2} OPTIONAL,
+ ...},
+ tAbandon
+ [22] SEQUENCE {abandonCause [0] Cause{b2} OPTIONAL,
+ ...},
+ authorizeRouteFailure
+ [23] SEQUENCE {authoriseRouteFailureCause [0] Cause{b2} OPTIONAL,
+ ...},
+ terminationAttemptAuthorized
+ [24] SEQUENCE {-- no specific info defined
+ ...},
+ originationAttemptDenied
+ [25] SEQUENCE {originationDeniedCause [0] Cause{b2} OPTIONAL,
+ ...},
+ terminationAttemptDenied
+ [26] SEQUENCE {terminationDeniedCause [0] Cause{b2} OPTIONAL,
+ ...},
+ oModifyRequestSpecificInfo
+ [40] SEQUENCE {aTMCellRate [0] ATMCellRate{b2} OPTIONAL,
+ additionalATMCellRate
+ [1] AdditionalATMCellRate{b2} OPTIONAL,
+ ...},
+ oModifyResultSpecificInfo
+ [41] SEQUENCE {modifyResultType
+ [0] ModifyResultType DEFAULT modifyAcknowledge,
+ aTMCellRate [1] ATMCellRate{b2} OPTIONAL,
+ additionalATMCellRate
+ [2] AdditionalATMCellRate{b2} OPTIONAL,
+ ...},
+ tModifyRequestSpecificInfo
+ [42] SEQUENCE {aTMCellRate [0] ATMCellRate{b2} OPTIONAL,
+ additionalATMCellRate
+ [1] AdditionalATMCellRate{b2} OPTIONAL,
+ ...},
+ tModifyResultSpecificInfo
+ [43] SEQUENCE {modifyResultType
+ [0] ModifyResultType DEFAULT modifyAcknowledge,
+ aTMCellRate [1] ATMCellRate{b2} OPTIONAL,
+ additionalATMCellRate
+ [2] AdditionalATMCellRate{b2} OPTIONAL,
+ ...}
+}
+
+-- Indicates the call related information specific to the event.
+-- The unit for the connectTime is 100 milliseconds
+EventSpecificInformationCharging{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minEventSpecificInformationChargingLength..
+ maxEventSpecificInformationChargingLength))
+
+-- defined by network operator.
+-- Its content is network signalling/operator specific.
+-- Indicates the charging related information specific to the event.
+-- An example data EmbeddedType 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), oTermSeized(19), oSuspend(20), tSuspend(21), origAttempt(22),
+ termAttempt(23), oReAnswer(24), tReAnswer(25),
+ facilitySelectedAndAvailable(26), callAccepted(27),
+ authorizeRouteFailure(28), originationAttemptDenied(29),
+ terminationAttemptDenied(30), oModifyRequest(100), oModifyResult(101),
+ tModifyRequest(102), tModifyResult(103)}
+
+-- Indicates the name of the BCSM detection point event.
+-- Notice: Values origAttempt and termAttempt can only be used for TDPs
+-- The value range 100- 127 is reserved for bearer related events
+EventTypeCharging{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minEventTypeChargingLength..maxEventTypeChargingLength))
+
+-- This parameter indicates the charging event type. .
+-- Its content is network signalling / operator specific.
+-- An example data type definition for this parameter is given below:
+-- EventTypeCharging EmbeddedType ::= ENUMERATED {
+-- chargePulses (0),
+-- chargeMessages (1)
+-- }
+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{B2:b2} ::=
+ 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:
+-- FCIBillingChargingCharacteristicsEmbeddedType ::= 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{B2:b2} ::=
+ LocationNumber{b2}
+
+-- 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{B2:b2, B3:b3} ::= SEQUENCE {
+ sFBillingChargingCharacteristics [0] SFBillingChargingCharacteristics{b2},
+ informationToSend [1] InformationToSend{b2, b3} OPTIONAL,
+ maximumNumberOfCounters [2] MaximumNumberOfCounters{b2} OPTIONAL,
+ releaseCause [3] Cause{b2} 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.
+-- An interval of 0 indicates that all calls matching the filtering criteria will result in sending of an "InitialDP" or a DP-specific
+-- operation and no filtering will be applied (i.e. no "ServiceFilteringResponse will be sent).
+-- An interval of -1 indicates that none of the calls matching the filtering criteria will either result in sending of
+-- an "InitialDP" or a DP-specific operation or a "ServiceFilteringResponse" operation.
+-- Other values of Interval indicate duration 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{B2:b2} ::= CHOICE {
+ dialledNumber [0] Digits{b2},
+ callingLineID [1] Digits{b2},
+ serviceKey [2] ServiceKey,
+ addressAndService
+ [30] SEQUENCE {calledAddressValue [0] Digits{b2},
+ serviceKey [1] ServiceKey,
+ callingAddressValue [2] Digits{b2} OPTIONAL,
+ locationNumber [3] LocationNumber{b2} 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.
+-- duration of 0 indicates that service filtering is to be removed.
+-- duration of -1 indicates an infinite duration.
+-- duration of -2 indicates a network specific duration.
+-- other values indicate duration in seconds.
+ForwardCallIndicators ::= OCTET STRING(SIZE (2))
+
+-- Indicates the Forward Call Indicators. Refer to Q.763 for encoding
+ForwardGVNS{B2:b2} ::=
+ OCTET STRING(SIZE (minForwardGVNSLength..maxForwardGVNSLength))
+
+-- Indicates the GVNS Forward information. Refer to Q.735, S6 for encoding.
+ForwardingCondition ::= ENUMERATED {busy(0), noanswer(1), any(2)}
+
+-- Indicates the condition that must be met to complete the connect.
+ForwardServiceInteractionInd ::= SEQUENCE {
+ conferenceTreatmentIndicator [1] OCTET STRING(SIZE (1)) OPTIONAL,
+ -- acceptConferenceRequest 'xxxx xx01',B
+ -- rejectConferenceRequest 'xxxx xx10'B
+ -- network default is accept conference request.
+ callDiversionTreatmentIndicator [2] OCTET STRING(SIZE (1)) OPTIONAL,
+ -- callDiversionAllowed 'xxxx xx01'B
+ -- callDiversionNotAllowed 'xxxx xx10'B
+ -- network default is Call Diversion allowed.
+ callOfferingTreatmentIndicator [3] OCTET STRING(SIZE (1)) OPTIONAL,
+ --indicates if call offering is "allowed"," not allowed" or "no impact by IN"
+ -- the value 'no impact by IN," has only local significance in SSF as a request to SSF
+ -- not to modify the value of the call offering treatment indicator conveyed in signaling.
+ -- callOfferingNotAllowed 'xxxx xx01'B,
+ -- callOfferingAllowed 'xxxx xx10'B
+ -- callOfferingNoINImpact 'xxxx x100'B
+ --indicates if call offering is "allowed"," not allowed" or "no impact by IN".
+ -- network default is Call Offering not allowed
+ callWaitingTreatmentIndicator [5] OCTET STRING(SIZE (1)) OPTIONAL,
+ -- callWaitingAllowed 'xxxx xx01'B,
+ -- callWaitingNotAllowed 'xxxx xx10'B
+ -- network default is Call Waiting allowed
+ -- Notice Tag value 4 is otherwise reserved .
+ ...,
+ holdTreatmentIndicator [6] OCTET STRING(SIZE (1)) OPTIONAL,
+ -- acceptHoldRequest 'xxxx xx01'B
+ -- rejectHoldRequest 'xxxx xx10'B
+ -- network default is accept hold request
+ ectTreatmentIndicator [7] OCTET STRING(SIZE (1)) OPTIONAL
+ -- acceptEctRequest 'xxxx xx01'B
+ -- rejectEctRequest 'xxxx xx10'B
+ -- network default is accept ect request
+}
+
+--The forwardServiceInteractionInd parameter is applicable to IDP, CON, CWA and ICA operations.
+--This parameter can be received either in the O_BCSM or in the T_BCSM.
+GapCriteria{B2:b2} ::= CHOICE {
+ basicGapCriteria BasicGapCriteria{b2},
+ compoundCapCriteria CompoundCriteria{b2}
+}
+
+GapOnService ::= SEQUENCE {
+ serviceKey [0] ServiceKey,
+ dpCriteria [1] EventTypeBCSM OPTIONAL,
+ ...
+}
+
+GapIndicators ::= SEQUENCE {
+ duration [0] Duration,
+ gapInterval [1] Interval,
+ ...
+}
+
+-- Indicates the gapping characteristics.
+-- A duration of 0 indicates that gapping is to be removed.
+-- A duration of -1 indicates an infinite duration.
+-- A duration of -2 indicates a network specific duration.
+--= Other values indicate duration in seconds.
+-- An interval of 0 indicates that service requests meeting the gap criteria are not to be rejected , i.e.
+-- No gapping when gapInterval equals 0, and
+-- an interval of -1 indicates that all service requests meeting the gap criteria are to be rejected, i.e.
+-- gap all calls when gapInterval equals -1 .
+--= Other values indicate interval in milliseconds.
+GapTreatment{B2:b2, B3:b3} ::= CHOICE {
+ informationToSend [0] InformationToSend{b2, b3},
+ releaseCause [1] Cause{b2},
+ both
+ [2] SEQUENCE {informationToSend [0] InformationToSend{b2, b3},
+ releaseCause [1] Cause{b2},
+ ...}
+}
+
+-- The default value for Cause is the same as in ISUP.
+GenericIdentifier{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minGenericIdentifierLength..maxGenericIdentifierLength))
+
+-- Indicates the GenericIdentifier Information Element. Refer to Q.2931 for encoding.
+GenericName{B2:b2} ::=
+ OCTET STRING(SIZE (minGenericNameLength..maxGenericNameLength))
+
+-- Refer to Q.931 Display Information for encoding.
+GenericNumber{B2:b2} ::=
+ OCTET STRING(SIZE (minGenericNumberLength..maxGenericNumberLength))
+
+-- Refer to Q.763 Generic Number for encoding.
+GenericNumbers{B2:b2} ::=
+ SET SIZE (1..numOfGenericNumbers) OF GenericNumber{b2}
+
+GlobalCallReference{B2:b2} ::=
+ OCTET STRING(SIZE (1..maxGlobalCallReferenceLength))
+
+-- Global Call Reference as defined in Q.1902.3
+HighLayerCompatibility{B2:b2} ::=
+ OCTET STRING(SIZE (highLayerCompatibilityLength))
+
+-- Indicates the teleservice. For encoding, DSS1 (Q.931) is used.
+HoldCause ::= OCTET STRING
+
+-- defined by network operator.
+-- Indicates the cause for holding a call.
+-- Its content is network operator specific
+initialCallSegment INTEGER ::=
+ 1
+
+-- the initial call segment represents the call segment that was there when the CSA was created, ie. the CS where
+-- the trigger took place or the CS that was created by an InitateCallAttempt within a TC-BEGIN message,
+-- unless InitiateCallAttemt was proceeded by a CreateCallSegmanrAssociation operation.
+INprofile{B1:b1, B2:b2} ::= SEQUENCE {
+ actionOnProfile [0] ActionOnProfile,
+ tDPIdentifier [1] TDPIdentifier{b2},
+ dPName [2] EventTypeBCSM OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- Contains profile elements that can be downloaded in the SSF using the setServiceProfile operation.
+INServiceCompatibilityIndication{B2:b2} ::=
+ SEQUENCE SIZE (1..numOfInServiceCompatibilityIndLength) OF Entry
+
+-- Identifies a list of service classes triggered during the lifetime of a call
+INServiceCompatibilityResponse ::=
+ Entry
+
+-- Used to override the last entry in INServiceCompatibilityIndication
+Interval ::= INTEGER(-1..60000)
+
+-- Units are milliseconds. A -1 value denotes infinite.
+IPAvailable{B2:b2} ::=
+ OCTET STRING(SIZE (minIPAvailableLength..maxIPAvailableLength))
+
+-- defined by network operator.
+-- Indicates that the resource is available.
+-- Its content is network operator specific
+IPRelatedInformation{B2:b2} ::= SEQUENCE {
+ alternativeCalledPartyIds [0] AlternativeIdentities{b2} OPTIONAL,
+ alternativeOriginatingPartyIds [1] AlternativeIdentities{b2} OPTIONAL,
+ alternativeOriginalCalledPartyIds [2] AlternativeIdentities{b2} OPTIONAL,
+ alternativeRedirectingPartyIds [3] AlternativeIdentities{b2} OPTIONAL,
+ ...
+}
+
+-- contains information that are specific to interworking with IP-based networks
+IPRoutingAddress{B2:b2} ::=
+ CalledPartyNumber{b2}
+
+-- Indicates the routing address for the IP.
+IPSSPCapabilities{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minIPSSPCapabilitiesLength..maxIPSSPCapabilitiesLength))
+
+-- defined by network operator.
+-- Indicates the SRF resources available at the SSP.
+-- Its content is network operator specific
+ISDNAccessRelatedInformation{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minISDNAccessRelatedInfoLength..
+ maxISDNAccessRelatedInfoLength))
+
+-- 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.
+-- sendingSideID is used where legID is sent from the SCF to the SSF and
+-- receivingSideID is used where SCF receives legID from the SSF.
+LegType ::= OCTET STRING(SIZE (1))
+
+leg1 LegType ::= '01'H
+
+leg2 LegType ::= '02'H
+
+LocationNumber{B2:b2} ::=
+ OCTET STRING(SIZE (minLocationNumberLength..maxLocationNumberLength))
+
+-- Indicates the Location Number for the calling party. Refer to Q.763 (White book) for encoding.
+MaximumNumberOfCounters{B2:b2} ::= INTEGER(1..numOfCounters)
+
+MidCallControlInfo{B2:b2} ::=
+ SEQUENCE SIZE (minMidCallControlInfoNum..maxMidCallControlInfoNum) OF
+ SEQUENCE {midCallInfoType [0] MidCallInfoType{b2},
+ midCallReportType
+ [1] ENUMERATED {inMonitoringState(0), inAnyState(1)}
+ DEFAULT inMonitoringState,
+ ...}
+
+MidCallInfo{B2:b2} ::= SEQUENCE {iNServiceControlCode [0] Digits{b2},
+ ...
+}
+
+MidCallInfoType{B2:b2} ::= SEQUENCE {
+ iNServiceControlCodeLow [0] Digits{b2},
+ iNServiceControlCodeHigh [1] Digits{b2} OPTIONAL,
+ ...
+}
+
+MiscCallInfo ::= SEQUENCE {
+ messageType [0] ENUMERATED {request(0), notification(1)},
+ dpAssignment
+ [1] ENUMERATED {individualBased(0), groupBased(1), switchBased(2)}
+ OPTIONAL
+}
+
+-- Indicates detection point related information.
+-- Note: "Switch based "is used with the same meaning as the previous used term "office based"
+MinAcceptableATMTrafficDescriptor{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minMinAcceptableATMTrafficDescriptorLength..
+ maxMinAcceptableATMTrafficDescriptorLength))
+
+-- Indicates the MinimumAcceptableATMTrafficDescriptor Information Element. Refer to Q.2931 for encoding.
+ModifyResultType ::= ENUMERATED {modifyAcknowledge(0), modifyReject(1)
+}
+
+-- Indicates whether a bearer modification attempt has been successful or not
+MonitoringCriteria ::= CHOICE {
+ threshold [0] Integer4,
+ interval [1] Interval
+}
+
+-- Indicates the criteria for route monitoring
+MonitorMode ::= ENUMERATED {
+ interrupted(0), notifyAndContinue(1), transparent(2)}
+
+-- Indicates the event is relayed and/or processed by the SSF.
+MonitoringTimeOut ::= CHOICE {
+ duration [0] Duration,
+ stopTime [1] DateAndTime
+}
+
+-- Indicates when a route moniroting procedure shall be stopped.
+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{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minOriginalCalledPartyIDLength..
+ maxOriginalCalledPartyIDLength))
+
+-- Indicates the original called number. d Refer to the Q.763 Original Called Number for encoding.
+ProfileIdentifier{B2:b2} ::= CHOICE {
+ access [0] CalledPartyNumber{b2},
+ group [1] FacilityGroup
+}
+
+-- Please note that 'CalledPartyNumber' is used to address a subscriber access line.
+--The data type was reused from the existing types to avoid the definition of a new one.
+QoSParameter{B2:b2} ::=
+ OCTET STRING(SIZE (minQoSParameterLength..maxQoSParameterLength))
+
+-- Indicates the QoS. Refer to Q.2961 for encoding.
+Reason{B2:b2} ::= OCTET STRING(SIZE (minReasonLength..maxReasonLength))
+
+-- Its content is network operator specific
+RedirectingPartyID{B2:b2} ::=
+ 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.
+RedirectReason ::= OCTET STRING(SIZE (1))
+
+-- Indicates redirection reason information. Refer to the "Invoking Pivot Reason" parameter of Q.763 for encoding.
+RegistratorIdentifier ::= OCTET STRING
+
+-- Its content is network operator specific
+ReportCondition ::= ENUMERATED {statusReport(0), timerExpired(1), canceled(2)
+}
+
+-- ReportCondition specifies the cause of sending "StatusReport" operation to the SCF
+RequestedInformationList{B2:b2} ::=
+ SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformation{b2}
+
+RequestedInformationTypeList{B2:b2} ::=
+ SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformationType
+
+RequestedInformation{B2:b2} ::= SEQUENCE {
+ requestedInformationType [0] RequestedInformationType,
+ requestedInformationValue [1] RequestedInformationValue{b2},
+ ...
+}
+
+RequestedInformationType ::= ENUMERATED {
+ callAttemptElapsedTime(0), callStopTime(1), callConnectedElapsedTime(2),
+ calledAddress(3), releaseCause(30)}
+
+RequestedInformationValue{B2:b2} ::= CHOICE {
+ callAttemptElapsedTimeValue [0] INTEGER(0..255),
+ callStopTimeValue [1] DateAndTime,
+ callConnectedElapsedTimeValue [2] Integer4,
+ calledAddressValue [3] Digits{b2},
+ releaseCauseValue [30] Cause{b2}
+}
+
+-- The callAttemptElapsedTimeValue is specified in seconds.
+--The unit for the callConnectedElapsedTimeValue is 100 milliseconds
+RequestedUTSI{B2:b2} ::= SEQUENCE {
+ uSIServiceIndicator [0] USIServiceIndicator{b2},
+ uSImonitorMode [1] USIMonitorMode,
+ ...
+}
+
+RequestedUTSIList{B2:b2} ::=
+ SEQUENCE SIZE (minRequestedUTSINum..maxRequestedUTSINum) OF
+ RequestedUTSI{b2}
+
+ResourceID{B2:b2} ::= CHOICE {
+ lineID [0] Digits{b2},
+ 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 outside the scope of this capability set
+}
+
+-- ResponseCondition is used to identify the reason why ServiceFilteringResponse operation is sent.
+RouteCountersValue{B2:b2} ::=
+ SEQUENCE SIZE (1..maxNbOfRoutes) OF RouteCountersAndValue{b2}
+
+RouteCountersAndValue{B2:b2} ::= SEQUENCE {
+ route [0] Route{b2},
+ counterID [1] CounterID,
+ counterValue [2] Integer4,
+ ...
+}
+
+-- Used to assign a counter to a route for monitoring purposes.
+RouteList{B2:b2} ::= SEQUENCE SIZE (1..maxNbOfRoutes) OF Route{b2}
+
+-- Indicates a list of trunk groups or a list of route index..
+Route{B2:b2} ::=
+ OCTET STRING(SIZE (minRouteListLength..maxRouteListLength))
+
+-- Indicates a trunk group or a route index. .
+-- Its content is network operator specific
+RouteingNumber{B2:b2} ::=
+ OCTET STRING(SIZE (minRouteingNumberLength..maxRouteingNumberLength))
+
+-- Indicates the Routeing Number. Refer to Q.763 parameter Network Routeing Number for encoding.
+ScfID{B2:b2} ::= OCTET STRING(SIZE (minScfIDLength..maxScfIDLength))
+
+-- defined by network operator.
+-- Indicates the SCF identity.
+-- Used to derive the INAP address of the SCF to establish a connection between a requesting FE
+-- and the specified SCF.
+-- When ScfID is used in an operation which may cross an internetwork boundary, its encoding must
+-- be understood in both networks; this requires bilateral agreement on the encoding.
+-- Refer to 3.5/Q.713 "calling party address" parameter for encoding.
+-- It indicates the SCCP address e.g. Global Title of the SCF,.
+-- Other encoding schemes are also possible as a network specific option..
+SCIBillingChargingCharacteristics{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minSCIBillingChargingLength..maxSCIBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics.
+-- Its content is network signalling / operator specific
+-- An example datatype definition for this parameter is given below:
+-- SCIBillingChargingCharacteristicsEmbeddedType ::= 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 Q.1214 Appendix II):
+-- chargeLevel (scenario 3.2)
+-- chargePulses (scenario 3.2)
+-- chargeMessages (scenario 3.2)
+SDSSinformation{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minSDSSinformationLength..maxSDSSinformationLength))
+
+-- Its content is network operator specific
+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{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minServiceInteractionIndicatorsLength..
+ maxServiceInteractionIndicatorsLength))
+
+-- Indicators which are exchanged between SSF and SCF to resolve interactions between IN based services
+-- and network based services, respectively between different IN based services.
+-- Its content is network signalling/operator specific
+-- Note this parameter is kept in this Recommendation for backward compatibility to IN CS-1R,
+-- for this Recommendation see parameter ServiceInteractionIndicatorsTwo
+ServiceInteractionIndicatorsTwo ::= SEQUENCE {
+ forwardServiceInteractionInd [0] ForwardServiceInteractionInd OPTIONAL,
+ -- applicable to operations IDP, CON, ICA, CWA.
+ backwardServiceInteractionInd
+ [1] BackwardServiceInteractionInd OPTIONAL,
+ --applicable to operations IDP, CON, CTR, ETC, CWA.
+ bothwayThroughConnectionInd [2] BothwayThroughConnectionInd OPTIONAL,
+ -- applicable to operations CTR, ETC.
+ suspendTimer [3] SuspendTimer OPTIONAL,
+ -- applicable to operations CON, ICA CWA.
+ connectedNumberTreatmentInd [4] ConnectedNumberTreatmentInd OPTIONAL,
+ --applicable to operations CON, CTR, ETC, CWA .
+ suppressCallDiversionNotification [5] BOOLEAN OPTIONAL,
+ -- applicable to CON, ICA, CWA
+ suppressCallTransferNotification [6] BOOLEAN OPTIONAL,
+ -- applicable to CON, ICA, CWA
+ allowCdINNoPresentationInd [7] BOOLEAN OPTIONAL,
+ -- applicable to CON, ICA CWA
+ -- indicates whether the Address Presentation restricted indicator of the ISUP
+ -- "called IN number" shall be set to presentation allowed (TRUE)
+ -- or presentation restricted (FALSE). Refer to Rec. Q.1601.
+ userDialogueDurationInd [8] BOOLEAN DEFAULT TRUE,
+ -- applicable to operations CTR, ETC.
+ -- applicable when interaction with the user is required during call set-up
+ -- The interaction TRUE means the user interaction may last longer than 90 seconds.
+ -- Otherwise the indicator should be set to FALSE. Used for delaying ISUP T9 timer.
+ overrideLineRestrictions [9] BOOLEAN DEFAULT FALSE,
+ -- only applicable to operations (e.g. Connect) which lead to a transition to a PIC before
+ -- the AuthorizeCallSetup PIC.
+ -- When set to TRUE, this parameter indicates that some facility restrictions
+ -- should not be checked when the authority to place a call is verified in the
+ --Authorize_Call_Setup PIC.
+ -- Which restrictions are actually overwriden is network specific.
+ suppressVPNAPP [10] BOOLEAN DEFAULT FALSE,
+ -- applicable to CWA, CON, ICA.
+ -- indicates whether to allow or stop (suppress) the forward transmission of the VPN PSS1 capability.
+ -- When set to TRUE, the exchange, on receipt of this parameter, will not transmit for this call
+ -- any ISUP Application transport parameter with Application Context Identifier set to " PSS1 ASE (VPN) "
+ -- This indicator is populated by the SCF, where the SCF and SSF in conjunction have provided the
+ -- outgoing gateway PINX functionality as required by PSS1.
+ calledINNumberOverriding [11] BOOLEAN OPTIONAL,
+ -- applicable to CON and CWA
+ -- indicates whether the generation/override of the ISUP
+ -- "called IN number" is allowed (TRUE) or not allowed (FALSE)
+ -- If set to FALSE, the ISUP shall not generate a "called IN number" or override
+ -- an already existing "called IN number".
+ -- if absent , the default will be "generation/overriding allowed" (TRUE).
+ redirectServiceTreatmentInd
+ [12] SEQUENCE {redirectReason [0] RedirectReason OPTIONAL,
+ ...} OPTIONAL,
+ --applicable to operation CON .
+ --if absent , call redirection service is not allowed
+ --Existence of this parameter requests Pivot Routing or Redirection supplementary service to be
+ --allowed for-the new routing address specified in the Connect operation.
+ --If absent, neither Pivot Routing nor Redirection service is allowed.
+ -- The redirectReason Parameter indicates the reason for invoking Pivot Routing / Redirection service
+ -- Whether the service is actually invoked depends only on SSF conditions.
+ --In this capability set the SCF will not know all the SSF conditions.
+ -- To send that kind of conditions is out of scope of this capability set.
+ --If the service is allowed, the parameter must be sent in the ISUP-FAC message (Pivot Routing case)
+ -- or ISUP-REL message (Redirection case) as the service is invoked,
+ nonCUGCall [13] NULL OPTIONAL,
+ -- applicable to CON and CWA
+ -- This parameter when present, indicates that no parameters for CUG shall be used for the call
+ -- (i.e. the call shall be a non-CUG call). This parameter when not present, indicates
+ -- one of three things:
+ -- a) continue with modified CUG information (when one or more of either CUG Interlock Code and
+ -- Outgoing Access Indicator are present); or
+ -- b) continue with original CUG information (when neither CUG Interlock Code or Outgoing Access Indicator
+ -- are present).
+ -- c) continue with the original non-CUG call.
+ ...
+}
+
+-- ServiceInteractionIndicatorsTwo contains Indicators which are exchanged between SSF and SCF to resolve interactions
+--between IN based services and network based services, respectively between different IN based services.
+ServiceKey ::=
+ Integer4
+
+-- Information that allows the SCF to choose the appropriate service logic.
+ServiceProfileIdentifier ::= OCTET STRING
+
+-- Indicates a particular ISDN terminal. Refer to Q.932 for encoding.
+ServingAreaID{B2:b2} ::=
+ LocationNumber{b2}
+
+-- 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{B2:b2} ::=
+ OCTET STRING
+ (SIZE (minSFBillingChargingLength..maxSFBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics for filtered calls.
+-- Its content is network signalling/operator specific.
+-- Actual format and encoding is outside the scope of this capability set.
+SupportedTriggers TRIGGER ::=
+ {...}
+
+SuspendTimer ::= INTEGER(0..120)
+
+--value in seconds
+TDPIdentifier{B2:b2} ::= CHOICE {
+ oneTrigger INTEGER,
+ triggers [1] Triggers{b2}
+}
+
+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)}
+
+-- Indicates the timer to be reset.
+TimerValue ::= Integer4
+
+-- Indicates the timer value (in seconds).
+TravellingClassMark{B2:b2} ::=
+ LocationNumber{b2}
+
+-- 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.
+TriggerData ::= SEQUENCE {
+ triggerId [0] TRIGGER.&id({SupportedTriggers}),
+ triggerPar [1] TRIGGER.&Parameter({SupportedTriggers}{@triggerId}),
+ ...
+}
+
+-- Contains a trigger identifier and the relevant trigger parameters
+TriggerDataIdentifier{B1:b1, B2:b2} ::= SEQUENCE {
+ triggerID [0] EventTypeBCSM,
+ profile [1] ProfileIdentifier{b2},
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- It is outside the scope of this capability set whether all TDP types really apply
+TriggerDPType ::= ENUMERATED {tdp-r(0), tdp-n(1)}
+
+TriggerResults{B2:b2} ::= SEQUENCE SIZE (1..numOfTriggers) OF TriggerResult
+
+TriggerResult ::= SEQUENCE {
+ tDPIdentifer [0] INTEGER,
+ actionPerformed [1] ActionPerformed,
+ dPName [2] EventTypeBCSM OPTIONAL,
+ ...
+}
+
+Triggers{B2:b2} ::= SEQUENCE SIZE (1..numOfTriggers) OF Trigger
+
+Trigger ::= SEQUENCE {
+ tDPIdentifier [0] INTEGER,
+ dpName [1] EventTypeBCSM OPTIONAL,
+ ...
+}
+
+TriggerStatus ::= ENUMERATED {
+ created(0), alreadyExist(1), deleted(2), unknownTrigger(3)}
+
+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), oModifyRequest(100), tModifyRequest(101)}
+
+-- The type of trigger which caused call suspension
+-- 4-11: Reserved; 15,16: Reserved; 19-24: Reserved
+USIInformation{B2:b2} ::=
+ OCTET STRING(SIZE (minUSIInformationLength..maxUSIInformationLength))
+
+-- Its content is network signalling/operator specific
+USIMonitorMode ::= ENUMERATED {monitoringActive(0), monitoringInactive(1)
+}
+
+-- Indicates if the monitoring relationship for the specified UTSI IE should be activated or deactivated.
+USIServiceIndicator{B2:b2} ::= CHOICE {
+ global OBJECT IDENTIFIER,
+ local
+ OCTET STRING
+ (SIZE (minUSIServiceIndicatorLength..maxUSIServiceIndicatorLength))
+}
+
+-- In case of local its content is network signalling/operator specific
+VPNIndicator ::= BOOLEAN
+
+-- This parameter is set to TRUE if the originating call part supports VPN with PSS1 information flows
+-- The Definition of range of constants Follows
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-SSF-SCF-ops-args.asn b/epan/dissectors/asn1/inap/IN-SSF-SCF-ops-args.asn
new file mode 100644
index 0000000000..38d81285e0
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-SSF-SCF-ops-args.asn
@@ -0,0 +1,2358 @@
+-- Small modifications made to the original due to as2wrs shortfalls, to be corrected.
+-- Module IN-SSF-SCF-ops-args (Q.1248.2:07/2001)
+IN-SSF-SCF-ops-args {itu-t recommendation q 1248 modules(1)
+ in-ssf-scf-ops-args(8) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ common-classes, common-datatypes, errortypes, scf-srf-classes,
+ scf-srf-datatypes, ssf-scf-classes, ssf-scf-datatypes, operationcodes,
+ ros-InformationObjects
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ OPERATION
+ FROM Remote-Operations-Information-Objects ros-InformationObjects
+ COMMON-BOUNDS
+ FROM IN-common-classes common-classes
+ SCF-SSF-BOUNDS
+ FROM IN-SSF-SCF-Classes ssf-scf-classes
+ SCF-SRF-BOUNDS
+ FROM IN-SCF-SRF-Classes scf-srf-classes
+ opcode-activateServiceFiltering, opcode-activityTest,
+ opcode-analysedInformation, opcode-analyseInformation,
+ opcode-applyCharging, opcode-applyChargingReport,
+ opcode-assistRequestInstructions, opcode-authorizeTermination,
+ opcode-callFiltering, opcode-callGap, opcode-callInformationReport,
+ opcode-callInformationRequest, opcode-cancel,
+ opcode-cancelStatusReportRequest, opcode-collectedInformation,
+ opcode-collectInformation, opcode-connect, opcode-connectToResource,
+ opcode-continue, opcode-continueWithArgument,
+ opcode-createCallSegmentAssociation, opcode-createOrRemoveTriggerData,
+ opcode-disconnectForwardConnection, opcode-dFCWithArgument,
+ opcode-disconnectLeg, opcode-entityReleased,
+ opcode-establishTemporaryConnection, opcode-eventNotificationCharging,
+ opcode-eventReportBCSM, opcode-eventReportFacility,
+ opcode-facilitySelectedAndAvailable, opcode-furnishChargingInformation,
+ opcode-holdCallInNetwork, opcode-initialDP, opcode-initiateCallAttempt,
+ opcode-manageTriggerData, opcode-mergeCallSegments,
+ opcode-moveCallSegments, opcode-oAbandon, opcode-oAnswer,
+ opcode-oCalledPartyBusy, opcode-oDisconnect, opcode-oMidCall,
+ opcode-moveLeg, opcode-oNoAnswer, opcode-originationAttempt,
+ opcode-originationAttemptAuthorized, opcode-oSuspended, opcode-reconnect,
+ opcode-releaseCall, opcode-reportUTSI, opcode-requestCurrentStatusReport,
+ opcode-requestEveryStatusChangeReport,
+ opcode-requestFirstStatusMatchReport,
+ opcode-requestNotificationChargingEvent, opcode-requestReportBCSMEvent,
+ opcode-requestReportUTSI, opcode-requestReportFacilityEvent,
+ opcode-resetTimer, opcode-monitorRouteReport, opcode-monitorRouteRequest,
+ opcode-routeSelectFailure, opcode-selectFacility, opcode-selectRoute,
+ opcode-sendChargingInformation, opcode-sendFacilityInformation,
+ opcode-sendSTUI, opcode-serviceFilteringResponse, opcode-setServiceProfile,
+ opcode-splitLeg, opcode-statusReport, opcode-tAnswer, opcode-tBusy,
+ opcode-tDisconnect, opcode-termAttemptAuthorized,
+ opcode-terminationAttempt, opcode-tMidCall, opcode-tNoAnswer,
+ opcode-tSuspended
+ FROM IN-operationcodes operationcodes
+ Extensions{}, Integer4, InvokeID
+ FROM IN-common-datatypes common-datatypes
+ AccessCode{}, ActionIndicator, ActionPerformed,
+ AChBillingChargingCharacteristics{}, AdditionalCallingPartyNumber{},
+ AlertingPattern, ApplicationTimer, AssistingSSPIPRoutingAddress{},
+ BackwardGVNS{}, BCSMEvent{}, BearerCapability{}, BISDNParameters{},
+ CalledDirectoryNumber{}, CalledPartyBusinessGroupID, CalledPartyNumber{},
+ CalledPartySubaddress{}, CallingGeodeticLocation{},
+ CallingPartyBusinessGroupID, CallingPartyNumber{}, CallingPartysCategory,
+ CallingPartySubaddress{}, CallProcessingOperation, CallReference{},
+ CallResult{}, CallSegmentID{}, Carrier{}, Cause{}, CCSS, CGEncountered,
+ ChargeNumber{}, ChargingEvent{}, CNInfo{}, Component,
+ ComponentCorrelationID, ComponentType, ConnectionIdentifier{}, ControlType,
+ CorrelationID{}, CountersValue{}, CreateOrRemoveIndicator, CSAID{},
+ GenericIdentifier{}, GlobalCallReference{}, CUG-Index, CUG-Interlock,
+ CutAndPaste, DateAndTime, DefaultFaultHandling{}, DestinationIndex{},
+ DestinationRoutingAddress{}, Digits{}, DisplayInformation{},
+ DpSpecificCommonParameters{}, Duration, EventSpecificInformationBCSM{},
+ EventSpecificInformationCharging{}, EventTypeBCSM, EventTypeCharging{},
+ FacilityGroup, FacilityGroupMember, FCIBillingChargingCharacteristics{},
+ FeatureCode{}, FeatureRequestIndicator, FilteredCallTreatment{},
+ FilteringCharacteristics, FilteringCriteria{}, FilteringTimeOut,
+ ForwardCallIndicators, ForwardGVNS{}, ForwardingCondition, GapCriteria{},
+ GapIndicators, GapTreatment{}, GenericName{}, GenericNumbers{},
+ HighLayerCompatibility{}, HoldCause, initialCallSegment, INprofile{},
+ INServiceCompatibilityIndication{}, INServiceCompatibilityResponse,
+ IPAvailable{}, IPRelatedInformation{}, IPRoutingAddress{},
+ IPSSPCapabilities{}, ISDNAccessRelatedInformation{}, LegID, leg1,
+ LocationNumber{}, MiscCallInfo, MonitorMode, MonitoringCriteria,
+ MonitoringTimeOut, NumberingPlan, OriginalCalledPartyID{},
+ ProfileIdentifier{}, QoSParameter{}, Reason{}, RedirectingPartyID{},
+ RedirectionInformation, RegistratorIdentifier, ReportCondition,
+ RouteingNumber{}, RequestedInformationList{},
+ RequestedInformationTypeList{}, RequestedUTSIList{}, ResourceID{},
+ ResourceStatus, ResponseCondition, RouteCountersValue{}, RouteList{},
+ ScfID{}, SCIBillingChargingCharacteristics{}, SDSSinformation{},
+ ServiceInteractionIndicators{}, ServiceInteractionIndicatorsTwo,
+ ServiceKey, ServiceProfileIdentifier, TDPIdentifier, TerminalType,
+ TimerID, TimerValue, TravellingClassMark{}, TriggerData,
+ TriggerDataIdentifier{}, TriggerDPType, Triggers{}, TriggerStatus,
+ TriggerResults{}, TriggerType, USIInformation{}, USIServiceIndicator{},
+ VPNIndicator
+ FROM IN-SSF-SCF-datatypes ssf-scf-datatypes
+ InformationToSend{}
+ FROM IN-SCF-SRF-datatypes scf-srf-datatypes
+ cancelFailed, eTCFailed, improperCallerResponse, missingCustomerRecord,
+ missingParameter, parameterOutOfRange, requestedInfoError, systemFailure,
+ taskRefused, unavailableResource, unexpectedComponentSequence,
+ unexpectedDataValue, unexpectedParameter, unknownLegID, unknownResource
+ FROM IN-errortypes errortypes;
+
+-- The following three definitions are local short-hand notation for convenience.
+-- B1 ::=
+-- COMMON-BOUNDS defined in Part 1 of Recommendation Q.1248
+
+-- B2 ::= SCF-SSF-BOUNDS defined in this part (Part 2) of Recommendation Q.1248
+
+-- B3 ::= SCF-SRF-BOUNDS defined in Part 3 of Recommendation Q.1248
+
+-- Operations and Arguments:
+activateServiceFiltering OPERATION ::= {
+ ARGUMENT ActivateServiceFilteringArg {b1,
+ b2,
+ b3}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedParameter}
+ CODE opcode-activateServiceFiltering
+}
+
+-- Direction: SCF -> SSF, Timer: Tasf
+-- When receiving this operation, the SSF handles calls to destination in a specified manner
+-- without sending queries for every detected call. It is used for example for providing
+-- televoting or mass calling services. Simple registration functionality (counters) and
+-- announcement control may be located at the SSF. The operation initializes the specified
+-- counters in the SSF.
+ActivateServiceFilteringArg ::= SEQUENCE {
+ filteredCallTreatment [0] FilteredCallTreatment{b2, b3},
+ filteringCharacteristics [1] FilteringCharacteristics,
+ filteringTimeOut [2] FilteringTimeOut,
+ filteringCriteria [3] FilteringCriteria{b2},
+ startTime [4] DateAndTime OPTIONAL,
+ extensions [5] Extensions{b1} OPTIONAL,
+ ...
+}
+
+activityTest OPERATION ::= {
+ RETURN RESULT TRUE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-activityTest
+}
+
+-- Direction: SCF -> SSF or SSF-> SCF, Timer: Tat
+-- This operation is used to check for the continued existence of a relationship between the SCF
+-- and SSF. If the relationship is still in existence, then the SSF will respond. If no reply is
+-- received, then the SCF will assume that the SSF has failed in some way and will take the
+-- appropriate action.. As an option, this operation may be used in the reverse direction by the
+-- SSF to check for the continued existence of a relationship with the SCF.
+analysedInformation OPERATION ::= {
+ ARGUMENT AnalysedInformationArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-analysedInformation
+}
+
+-- Direction: SSF -> SCF, Timer: Tadi
+-- This operation is used to indicate availability of routing address and call type. (DP -
+-- Analysed_Info).
+AnalysedInformationArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ dialledDigits [1] CalledPartyNumber{b2} OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID{b2} OPTIONAL,
+ prefix [7] Digits{b2} OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ routeList [10] RouteList{b2} OPTIONAL,
+ travellingClassMark [11] TravellingClassMark{b2} OPTIONAL,
+ extensions [12] Extensions{b1} OPTIONAL,
+ featureCode [13] FeatureCode{b2} OPTIONAL,
+ accessCode [14] AccessCode{b2} OPTIONAL,
+ carrier [15] Carrier{b2} OPTIONAL,
+ componentType [16] ComponentType OPTIONAL,
+ component [17] Component OPTIONAL,
+ componentCorrelationID [18] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+analyseInformation OPERATION ::= {
+ ARGUMENT AnalyseInformationArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-analyseInformation
+}
+
+-- Direction: SCF -> SSF, Timer: Tai
+-- This operation is used to request the SSF to perform the originating basic call processing actions
+-- to analyse destination information that is either collected from a calling party or provided by the SCF
+-- (e.g. for number translation). This includes actions to validate the information according to an office
+-- or customized dialing plan, and if valid, to determine call termination information, to include the called
+-- party address, the type of call (e.g. intra-network or inter-network), and carrier (if inter-network).
+-- If the called party is not served by the SSF, the SSF also determines a route index based on the called
+-- party address and class of service, where the route index points to a list of outgoing trunk groups.
+AnalyseInformationArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress{b2},
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ iSDNAccessRelatedInformation
+ [2] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ originalCalledPartyID [3] OriginalCalledPartyID{b2} OPTIONAL,
+ extensions [4] Extensions{b1} OPTIONAL,
+ callingPartyNumber [5] CallingPartyNumber{b2} OPTIONAL,
+ callingPartysCategory [6] CallingPartysCategory OPTIONAL,
+ calledPartyNumber [7] CalledPartyNumber{b2} OPTIONAL,
+ chargeNumber [8] ChargeNumber{b2} OPTIONAL,
+ travellingClassMark [9] TravellingClassMark{b2} OPTIONAL,
+ carrier [10] Carrier{b2} OPTIONAL,
+ serviceInteractionIndicators
+ [11] ServiceInteractionIndicators{b2} OPTIONAL,
+ iNServiceCompatibilityResponse
+ [12] INServiceCompatibilityResponse OPTIONAL,
+ forwardGVNS [13] ForwardGVNS{b2} OPTIONAL,
+ backwardGVNS [14] BackwardGVNS{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [15] ServiceInteractionIndicatorsTwo OPTIONAL,
+ correlationID [16] CorrelationID{b2} OPTIONAL,
+ scfID [17] ScfID{b2} OPTIONAL,
+ callSegmentID [18] CallSegmentID{b2} OPTIONAL,
+ legToBeCreated [19] LegID OPTIONAL,
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values
+applyCharging OPERATION ::= {
+ ARGUMENT ApplyChargingArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | unexpectedComponentSequence | unexpectedParameter |
+ unexpectedDataValue | parameterOutOfRange | systemFailure | taskRefused |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-applyCharging
+}
+
+-- Direction: SCF -> SSF, Timer: Tac
+-- This operation is used for interacting from the SCF with the SSF charging mechanisms.
+-- The ApplyChargingReport operation provides the feedback from the SSF to the SCF.
+-- This operation is can also be used to instruct the SSF to release the call regarding some condition.
+ApplyChargingArg ::= SEQUENCE {
+ aChBillingChargingCharacteristics [0] AChBillingChargingCharacteristics{b2},
+ partyToCharge [2] LegID OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ releaseIndication [4] BOOLEAN OPTIONAL,
+ releaseCause [5] Cause{b2} OPTIONAL,
+ ...
+}
+
+-- The TAG value 1 should not be used for future extensions (used in CS-1 by regions).
+-- 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
+-- The releaseIndicator shall be present and set to TRUE if the release condition is specified in the
+-- aCHBillingCharacteristics parameter.
+applyChargingReport OPERATION ::= {
+ ARGUMENT ApplyChargingReportArg {b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | unexpectedComponentSequence | unexpectedParameter |
+ unexpectedDataValue | parameterOutOfRange | systemFailure | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-applyChargingReport
+}
+
+-- Direction: SSF -> SCF, Timer: Tacr
+-- This operation is used by the SSF to report to the SCF the occurrence of a specific charging event
+-- as requested by the SCF using the ApplyCharging operation.
+ApplyChargingReportArg ::=
+ CallResult{b2}
+
+-- Note: When the SSF sends the ApplyChargingReport operation as the last event from the Call Segment, the
+-- lastEventIndicator parameter is to indicate whether the event is last to the SCF and should be included
+-- into the CallResult parameter.
+assistRequestInstructions OPERATION ::= {
+ ARGUMENT AssistRequestInstructionsArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-assistRequestInstructions
+}
+
+-- Direction: SSF -> SCF or SRF -> SCF, Timer: Tari
+-- This operation is used when there is an assist or a hand-off procedure and may be sent by the SSF
+-- or SRF to the SCF. This operation is sent by the assisting SSF to SCF, when the initiating SSF has
+-- set up a connection to the SRF or to the assisting SSF as a result of receiving an EstablishTemporaryConnection
+-- or Connect/SelectRoute operation (in the case of hand-off) from the SCF.
+AssistRequestInstructionsArg ::= SEQUENCE {
+ correlationID [0] CorrelationID{b2},
+ iPAvailable [1] IPAvailable{b2} OPTIONAL,
+ iPSSPCapabilities [2] IPSSPCapabilities{b2} OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- OPTIONAL denotes network operator specific use. The value of the correlationID may be the
+-- Called Party Number supplied by the initiating SSF.
+authorizeTermination OPERATION ::= {
+ ARGUMENT AuthorizeTerminationArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-authorizeTermination
+}
+
+-- Direction: SCF -> SSF. Timer: Tatr
+-- This operation is used to request the SSF to resume terminating call processing action at the
+-- Authorize_Termination PIC of the call based on the information received from the SCF.
+AuthorizeTerminationArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ callingPartyNumber [1] CallingPartyNumber{b2} OPTIONAL,
+ destinationNumberRoutingAddress [2] CalledPartyNumber{b2} OPTIONAL,
+ displayInformation [3] DisplayInformation{b2} OPTIONAL,
+ iSDNAccessRelatedInformation
+ [4] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID{b2} OPTIONAL,
+ travellingClassMark [6] TravellingClassMark{b2} OPTIONAL,
+ extensions [7] Extensions{b1} OPTIONAL,
+ iNServiceCompatibilityResponse [8] INServiceCompatibilityResponse OPTIONAL,
+ forwardGVNS [9] ForwardGVNS{b2} OPTIONAL,
+ backwardGVNS [10] BackwardGVNS{b2} OPTIONAL,
+ legID [11] LegID OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [12] ServiceInteractionIndicatorsTwo OPTIONAL,
+ scfID [13] ScfID{b2} OPTIONAL,
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications are desired to basic call processing values.
+callFiltering OPERATION ::= {
+ ARGUMENT CallFilteringArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-callFiltering
+}
+
+-- Direction: SCF -> SSF, Timer: Tcf
+-- This operation is used to allow the SCF to influence basic call gapping procedures based in the CCF by sending information from the SCF to the SSF. The SSF relays the received information transparently to the CCF. This way, the SCF can influence the rate at which call attempts are allowed through. The operation thus influences the filtering of calls, as opposed to service requests as is done by the Callgap operation.
+CallFilteringArg ::= SEQUENCE {
+ destinationIndex [0] DestinationIndex{b2},
+ gapIndicators [1] GapIndicators,
+ registratorIdentifier [2] RegistratorIdentifier OPTIONAL,
+ ...,
+-- ...,
+ extensions [3] Extensions{b1} OPTIONAL
+}
+
+-- OPTIONAL denotes network operator optional.
+callGap OPERATION ::= {
+ ARGUMENT CallGapArg {b1,
+ b2,
+ b3}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-callGap
+}
+
+-- Direction: SCF -> SSF, Timer: Tcg
+-- This operation is used to request the SSF to reduce the rate at which specific service requests are sent to
+-- the SCF. Use of this operation by the SCF to gap queries and updates at the SDF is outside the scope of this capability set .
+CallGapArg ::= SEQUENCE {
+ gapCriteria [0] GapCriteria{b2},
+ gapIndicators [1] GapIndicators,
+ controlType [2] ControlType OPTIONAL,
+ gapTreatment [3] GapTreatment{b2, b3} OPTIONAL,
+ extensions [4] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- OPTIONAL denotes network operator optional. If gapTreatment is not present, the SSF will use
+-- a default treatment depending on network operator implementation.
+callInformationReport OPERATION ::= {
+ ARGUMENT CallInformationReportArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-callInformationReport
+}
+
+-- Direction: SSF -> SCF, Timer: Tcirp
+-- This operation is used to send specific call information for a single call to the SCF as requested by the SCF
+-- in a previous CallInformationRequest.
+CallInformationReportArg ::= SEQUENCE {
+ requestedInformationList [0] RequestedInformationList{b2},
+ correlationID [1] CorrelationID{b2} OPTIONAL,
+ extensions [2] Extensions{b1} OPTIONAL,
+ legID [3] LegID OPTIONAL,
+ lastEventIndicator [4] BOOLEAN DEFAULT FALSE,
+ ...
+}
+
+-- OPTIONAL denotes network operator optional.
+-- The lastEventIndicator parameter is set with 'TRUE' when the report is last in the Call Segment.
+-- In the CS-1, the lastEventIndicator should not be sent, and the meaning of DEFAULT is not applied. The SCF
+-- must decide whether the report is last without this parameter.
+callInformationRequest OPERATION ::= {
+ ARGUMENT CallInformationRequestArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | requestedInfoError |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter | unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-callInformationRequest
+}
+
+-- Direction: SCF -> SSF, Timer: Tcirq
+-- This operation is used to request the SSF to record specific information about a single call and report it to
+-- the SCF (with a CallInformationReport operation).
+CallInformationRequestArg ::= SEQUENCE {
+ requestedInformationTypeList [0] RequestedInformationTypeList{b2},
+ correlationID [1] CorrelationID{b2} OPTIONAL,
+ extensions [2] Extensions{b1} OPTIONAL,
+ legID [3] LegID OPTIONAL,
+ ...
+}
+
+-- OPTIONAL denotes network operator optional .
+cancel OPERATION ::= {
+ ARGUMENT CancelArg {b2}
+ RETURN RESULT FALSE
+ ERRORS {cancelFailed | missingParameter | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-cancel
+}
+
+-- Direction: SCF -> SSF, or SCF -> SRF, Timer: Tcan
+-- This operation cancels the correlated previous operation or all previous requests
+-- This operation can also be used to cancel all outstanding requests and enable the state machine (SSF)
+-- to go to idle. In this case the Cancel operation does not specify any specific operation to be cancelled.
+-- For the SCF-SRF operations that can be cancelled, refer to Part 3 of Q.1248
+CancelArg ::= CHOICE {
+ invokeID [0] InvokeID,
+ allRequests [1] NULL,
+ callSegmentToCancel
+ [2] SEQUENCE {invokeID [0] InvokeID,
+ callSegmentID [1] CallSegmentID{b2},
+ ...},
+ allRequestsForCallSegment [3] CallSegmentID{b2},
+ ...
+}
+
+-- The InvokeID has the same value as that which was used for the SCF-SRF operation, i.e. is used to identify
+-- the correlated previous SCF-SRF operation to be canccelled.
+cancelStatusReportRequest OPERATION ::= {
+ ARGUMENT CancelStatusReportRequestArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS {cancelFailed | missingParameter | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-cancelStatusReportRequest
+}
+
+-- Direction: SCF -> SSF, Timer: Tcsr
+-- This operation cancels the following processes: RequestFirstStatusMatchReport and
+-- RequestEveryStatusChangeReport.
+CancelStatusReportRequestArg ::= SEQUENCE {
+ resourceID [0] ResourceID{b2} OPTIONAL,
+ extensions [1] Extensions{b1} OPTIONAL,
+ ...
+}
+
+collectedInformation OPERATION ::= {
+ ARGUMENT CollectedInformationArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-collectedInformation
+}
+
+-- Direction: SSF -> SCF, Timer: Tcdi
+-- This operation is used to indicate availability of complete initial information package/dialing string from
+-- originating party. (This event may have already occurred in the case of en bloc signaling, in which case
+-- the waiting duration in this PIC is zero.) (DP - Collected_Info
+CollectedInformationArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ dialledDigits [1] CalledPartyNumber{b2} OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID{b2} OPTIONAL,
+ prefix [7] Digits{b2} OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ travellingClassMark [10] TravellingClassMark{b2} OPTIONAL,
+ extensions [11] Extensions{b1} OPTIONAL,
+ featureCode [12] FeatureCode{b2} OPTIONAL,
+ accessCode [13] AccessCode{b2} OPTIONAL,
+ carrier [14] Carrier{b2} OPTIONAL,
+ componentType [15] ComponentType OPTIONAL,
+ component [16] Component OPTIONAL,
+ componentCorrelationID [17] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+collectInformation OPERATION ::= {
+ ARGUMENT CollectInformationArg {b1,
+ b2}
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-collectInformation
+}
+
+-- Direction: SCF -> SSF, Timer: Tci
+-- This operation is used to request the SSF to perform the originating basic call processing actions to prompt
+-- a calling party for destination information, then collect destination information according to a specified
+-- numbering plan (e.g. for virtual private networks).
+CollectInformationArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ numberingPlan [1] NumberingPlan OPTIONAL,
+ originalCalledPartyID [2] OriginalCalledPartyID{b2} OPTIONAL,
+ travellingClassMark [3] TravellingClassMark{b2} OPTIONAL,
+ extensions [4] Extensions{b1} OPTIONAL,
+ callingPartyNumber [5] CallingPartyNumber{b2} OPTIONAL,
+ dialledDigits [6] CalledPartyNumber{b2} OPTIONAL,
+ serviceInteractionIndicators
+ [7] ServiceInteractionIndicators{b2} OPTIONAL,
+ iNServiceCompatibilityResponse [8] INServiceCompatibilityResponse OPTIONAL,
+ forwardGVNS [9] ForwardGVNS{b2} OPTIONAL,
+ backwardGVNS [10] BackwardGVNS{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [11] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callSegmentID [12] CallSegmentID{b2} OPTIONAL,
+ legToBeCreated [13] LegID OPTIONAL,
+ ...
+}
+
+connect OPERATION ::= {
+ ARGUMENT ConnectArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-connect
+}
+
+-- Direction: SCF -> SSF, Timer: Tcon
+-- This operation is used to request the SSF to perform the call processing actions to route or forward a call to
+-- a specified destination. To do so, the SSF may or may not use destination information from the calling party
+-- (e.g. dialed digits) and existing call setup information (e.g. route index to a list of trunk groups), depending on
+-- the information provided by the SCF.
+-- When address information is only included in the Connect operation, call processing resumes at PIC3 in
+-- the O-BCSM.
+-- When address information and routing information is included, call processing resumes at PIC4.
+ConnectArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress{b2},
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ correlationID [2] CorrelationID{b2} OPTIONAL,
+ cutAndPaste [3] CutAndPaste OPTIONAL,
+ forwardingCondition [4] ForwardingCondition OPTIONAL,
+ iSDNAccessRelatedInformation
+ [5] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID{b2} OPTIONAL,
+ routeList [7] RouteList{b2} OPTIONAL,
+ -- maximum number of routes is limited to 3
+ scfID [8] ScfID{b2} OPTIONAL,
+ travellingClassMark [9] TravellingClassMark{b2} OPTIONAL,
+ extensions [10] Extensions{b1} OPTIONAL,
+ carrier [11] Carrier{b2} OPTIONAL,
+ serviceInteractionIndicators
+ [26] ServiceInteractionIndicators{b2} OPTIONAL,
+ callingPartyNumber [27] CallingPartyNumber{b2} OPTIONAL,
+ callingPartysCategory [28] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ displayInformation [12] DisplayInformation{b2} OPTIONAL,
+ forwardCallIndicators [13] ForwardCallIndicators OPTIONAL,
+ genericNumbers [14] GenericNumbers{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [15] ServiceInteractionIndicatorsTwo OPTIONAL,
+ iNServiceCompatibilityResponse
+ [16] INServiceCompatibilityResponse OPTIONAL,
+ forwardGVNS [17] ForwardGVNS{b2} OPTIONAL,
+ backwardGVNS [18] BackwardGVNS{b2} OPTIONAL,
+ chargeNumber [19] ChargeNumber{b2} OPTIONAL,
+ callSegmentID [20] CallSegmentID{b2} OPTIONAL,
+ legToBeCreated [21] LegID OPTIONAL,
+ sDSSinformation [22] SDSSinformation{b2} OPTIONAL,
+ calledDirectoryNumber [23] CalledDirectoryNumber{b2} OPTIONAL,
+ bearerCapability [24] BearerCapability{b2} OPTIONAL,
+ calledPartySubaddress [60] CalledPartySubaddress{b2} OPTIONAL,
+ connectionIdentifier [61] ConnectionIdentifier{b2} OPTIONAL,
+ genericIdentifier [62] GenericIdentifier{b2} OPTIONAL,
+ qOSParameter [63] QoSParameter{b2} OPTIONAL,
+ bISDNParameters [64] BISDNParameters{b2} OPTIONAL,
+ ...,
+ cug-Interlock [31] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [32] NULL OPTIONAL,
+ ipRelatedInformation [33] IPRelatedInformation{b2} OPTIONAL
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values
+connectToResource OPERATION ::= {
+ ARGUMENT ConnectToResourceArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-connectToResource
+}
+
+-- Direction: SCF -> SSF, Timer: Tctr
+-- This operation is used to connect a call from the SSP to the physical entity containing the SRF.
+ConnectToResourceArg ::= SEQUENCE {
+ resourceAddress
+ CHOICE {ipRoutingAddress [0] IPRoutingAddress{b2},
+ legID [1] LegID,
+ ipAddressAndLegID
+ [2] SEQUENCE {ipRoutingAddress [0] IPRoutingAddress{b2},
+ legID [1] LegID,
+ ...},
+ none [3] NULL,
+ callSegmentID [5] CallSegmentID{b2},
+ ipAddressAndCallSegment
+ [6] SEQUENCE {ipRoutingAddress [0] IPRoutingAddress{b2},
+ callSegmentID [1] CallSegmentID{b2},
+ ...}},
+ extensions [4] Extensions{b1} OPTIONAL,
+ serviceInteractionIndicators
+ [30] ServiceInteractionIndicators{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ uSIServiceIndicator [35] USIServiceIndicator{b2} OPTIONAL,
+ uSIInformation [36] USIInformation{b2} OPTIONAL,
+ ...
+}
+
+continue OPERATION ::= {
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-continue
+}
+
+-- Direction: SCF -> SSF, Timer: Tcue
+-- This operation is used to request the SSF to proceed with call processing at the DP at which it
+-- previously suspended call processing to await SCF instructions (i.e. proceed to the next point
+-- in call in the BCSM). The SSF continues call processing without substituting new data from SCF.
+-- This operation is not valid for a single call segment CSA with more than 2 legs or a multi call segment CSA.
+continueWithArgument OPERATION ::= {
+ ARGUMENT ContinueWithArgumentArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | unexpectedComponentSequence | unexpectedParameter |
+ unexpectedDataValue | unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-continueWithArgument
+}
+
+-- Direction: SCF -> SSF, Timer: Tcwa
+-- This operation is used to request the SSF to proceed with call processing at the DP a which it previously
+-- suspended call processing to await SCF instructions.
+-- It is also used to provide additional service related information to a User (Called Party or Calling Party) whilst
+-- the call processing proceeds.
+ContinueWithArgumentArg ::= SEQUENCE {
+ legorCSID
+ CHOICE {legID [0] LegID,
+ csID [9] CallSegmentID{b2}} --DEFAULT legID:sendingSideID:leg1 --,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ genericName [2] GenericName{b2} OPTIONAL,
+ iNServiceCompatibilityResponse [3] INServiceCompatibilityResponse OPTIONAL,
+ forwardGVNS [4] ForwardGVNS{b2} OPTIONAL,
+ backwardGVNS [5] BackwardGVNS{b2} OPTIONAL,
+ extensions [6] Extensions{b1} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ sDSSinformation [8] SDSSinformation{b2} OPTIONAL,
+ connectionIdentifier [60] ConnectionIdentifier{b2} OPTIONAL,
+ ...,
+ iSDNAccessRelatedInformation
+ [19] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ originalCalledPartyID [10] OriginalCalledPartyID{b2} OPTIONAL,
+ callingPartyNumber [11] CallingPartyNumber{b2} OPTIONAL,
+ callingPartysCategory [12] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [13] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [14] RedirectionInformation OPTIONAL,
+ forwardCallIndicators [15] ForwardCallIndicators OPTIONAL,
+ genericNumbers [16] GenericNumbers{b2} OPTIONAL,
+ cug-Interlock [17] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [18] NULL OPTIONAL,
+ ipRelationInformation [20] IPRelatedInformation{b2} OPTIONAL
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values
+createCallSegmentAssociation OPERATION ::= {
+ ARGUMENT CreateCallSegmentAssociationArg {b1}
+ OPTIONAL TRUE
+ RESULT CreateCallSegmentAssociationResultArg {b1,
+ b2}
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ CODE opcode-createCallSegmentAssociation
+}
+
+-- Direction SCF -> SSF, Timer Tcsa
+-- This operation is used to create a new CSA. The new CSA will not contain any Call Segments after creation.
+-- The SSF is responsible for specifying a new CSA identifier for the created CSA which is unique within
+-- the SSF.
+CreateCallSegmentAssociationArg ::= SEQUENCE {
+ extensions [0] Extensions{b1} OPTIONAL,
+ ...
+}
+
+CreateCallSegmentAssociationResultArg ::= SEQUENCE {
+ newCallSegmentAssociation [0] CSAID{b2},
+ extensions [1] Extensions{b1} OPTIONAL,
+ ...
+}
+
+createOrRemoveTriggerData OPERATION ::= {
+ ARGUMENT CreateOrRemoveTriggerDataArg {b1,
+ b2,
+ b3}
+ RESULT CreateOrRemoveTriggerDataResultArg {b1,
+ b2}
+ ERRORS
+ {missingParameter | missingCustomerRecord | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ CODE opcode-createOrRemoveTriggerData
+}
+
+-- Direction: SCF -> SSF, Class 1, Timer: Tcrt
+-- This trigger management operation is used by the SCF outside the context of a call to create a new
+-- trigger detection point in the CCF/SSF by downloading trigger data
+-- (e.g. triggering criteria, ServiceKey, SCF address,....)
+-- or to remove an existing trigger.
+CreateOrRemoveTriggerDataArg ::= SEQUENCE {
+ createOrRemove [0] CreateOrRemoveIndicator DEFAULT create,
+ dPName [1] EventTypeBCSM OPTIONAL,
+ triggerDPType [2] TriggerDPType DEFAULT tdp-r,
+ serviceKey [3] ServiceKey OPTIONAL,
+ profile [4] ProfileIdentifier{b2} OPTIONAL,
+ triggerData [5] TriggerData OPTIONAL,
+ defaultFaultHandling [6] DefaultFaultHandling{b2, b3} OPTIONAL,
+ tDPIdentifier [7] TDPIdentifier{b2} OPTIONAL,
+ ...,
+-- ...,
+ extensions [30] Extensions{b1} OPTIONAL
+}
+
+CreateOrRemoveTriggerDataResultArg ::= SEQUENCE {
+ triggerStatus [0] TriggerStatus,
+ tDPIdentifier [1] TDPIdentifier{b2},
+ registratorIdentifier [2] RegistratorIdentifier OPTIONAL,
+ ...,
+-- ...,
+ extensions [30] Extensions{b1} OPTIONAL
+}
+
+disconnectForwardConnection OPERATION ::= {
+ RETURN RESULT FALSE
+ ERRORS {systemFailure | taskRefused | unexpectedComponentSequence}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-disconnectForwardConnection
+}
+
+-- Direction: SCF -> SSF, Timer: Tdfc
+-- This operation is used to disconnect a forward temporary connection or a connection to a resource.
+disconnectForwardConnectionWithArgument OPERATION ::= {
+ ARGUMENT DisconnectForwardConnectionWithArgumentArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-dFCWithArgument
+}
+
+-- Direction: SCF -> SSF, Timer: Tdfcwa
+-- This operation is used to disconnect a forward temporary connection or a connection to a resource.
+DisconnectForwardConnectionWithArgumentArg ::= SEQUENCE {
+ partyToDisconnect
+ CHOICE {legID [0] LegID,
+ callSegmentID [1] CallSegmentID{b2}},
+ extensions [2] Extensions{b1} OPTIONAL,
+ uSIServiceIndicator [3] USIServiceIndicator{b2} OPTIONAL,
+ uSIInformation [4] USIInformation{b2} OPTIONAL,
+ ...
+}
+
+disconnectLeg OPERATION ::= {
+ ARGUMENT DisconnectLegArg {b1,
+ b2}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ CODE opcode-disconnectLeg
+}
+
+-- Direction: SCF -> SSF. Timer: T dl
+-- This operation is issued by the SCF to release a specific leg associated with the call and retain any
+-- other legs not specified in the DisconnectLeg. Any leg may be disconnected, including the controlling
+-- leg, without completely releasing all legs.
+DisconnectLegArg ::= SEQUENCE {
+ legToBeReleased [0] LegID,
+ releaseCause [1] Cause{b2} OPTIONAL,
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...
+}
+
+entityReleased OPERATION ::= {
+ ARGUMENT EntityReleasedArg {b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-entityReleased
+}
+
+-- Direction SSF -> SCF, Timer: Ter
+-- This operation is used by SSF to inform the SCF of an error/exception
+EntityReleasedArg ::= CHOICE {
+ cSFailure
+ [0] SEQUENCE {callSegmentID [0] CallSegmentID{b2},
+ reason [1] Reason{b2} OPTIONAL,
+ cause [2] Cause{b2} OPTIONAL,
+ ...},
+ bCSMFailure
+ [1] SEQUENCE {legID [0] LegID,
+ reason [1] Reason{b2} OPTIONAL,
+ cause [2] Cause{b2} OPTIONAL,
+ ...}
+}
+
+establishTemporaryConnection OPERATION ::= {
+ ARGUMENT EstablishTemporaryConnectionArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {eTCFailed | missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-establishTemporaryConnection
+}
+
+-- Direction: SCF -> SSF, Timer: Tetc
+-- This operation is used to create a connection to a resource for a limited period of time
+-- (e.g. to play an announcement, to collect user information); it implies the use of the assist
+-- procedure.
+EstablishTemporaryConnectionArg ::= SEQUENCE {
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress{b2},
+ correlationID [1] CorrelationID{b2} OPTIONAL,
+ partyToConnect
+ CHOICE {legID [2] LegID,
+ callSegmentID [7] CallSegmentID{b2}} OPTIONAL,
+ scfID [3] ScfID{b2} OPTIONAL,
+ extensions [4] Extensions{b1} OPTIONAL,
+ carrier [5] Carrier{b2} OPTIONAL,
+ serviceInteractionIndicators
+ [30] ServiceInteractionIndicators{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [6] ServiceInteractionIndicatorsTwo OPTIONAL,
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values
+eventNotificationCharging OPERATION ::= {
+ ARGUMENT EventNotificationChargingArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-eventNotificationCharging
+}
+
+-- Direction: SSF -> SCF, Timer: Tenc
+-- This operation is used by the SSF to report to the SCF the occurence of a specific charging event
+-- type as previously requested by the SCF in a RequestNotificationChargingEvent operation.
+EventNotificationChargingArg ::= SEQUENCE {
+ eventTypeCharging [0] EventTypeCharging{b2},
+ eventSpecificInformationCharging
+ [1] EventSpecificInformationCharging{b2} OPTIONAL,
+ legID [2] LegID OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ monitorMode [30] MonitorMode DEFAULT notifyAndContinue,
+ ...
+}
+
+-- OPTIONAL denotes network operator specific use.
+eventReportBCSM OPERATION ::= {
+ ARGUMENT EventReportBCSMArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-eventReportBCSM
+}
+
+-- Direction: SSF -> SCF, Timer: Terb
+-- This operation is used to notify the SCF of a call-related event (e.g. BCSM events such as busy or
+-- no answer) previously requested by the SCF in a RequestReportBCSMEvent operation.
+EventReportBCSMArg ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ bcsmEventCorrelationID [1] CorrelationID{b2} OPTIONAL,
+ eventSpecificInformationBCSM [2] EventSpecificInformationBCSM{b2} OPTIONAL,
+ legID [3] LegID OPTIONAL,
+ miscCallInfo [4] MiscCallInfo DEFAULT {messageType request},
+ extensions [5] Extensions{b1} OPTIONAL,
+ componentType [6] ComponentType OPTIONAL,
+ component [7] Component OPTIONAL,
+ componentCorrelationID [8] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+eventReportFacility OPERATION ::= {
+ ARGUMENT EventReportFacilityArg {b1}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-eventReportFacility
+}
+
+-- SSF->SCF, Timer: Terf
+-- This operation is issued by the SSF to report the SCF the event, that was previously requested by the
+-- SCF, the CCF/SSF receives a DSS1 message which contains a FACILITY IE. Criteria for the report, like
+-- reception of the ReturnResult which is specified with ComponentType, is optionally checked
+-- before issuing this operation.
+EventReportFacilityArg ::= SEQUENCE {
+ componentType [0] ComponentType OPTIONAL,
+ component [1] Component OPTIONAL,
+ legID [2] LegID OPTIONAL,
+ componentCorrelationID [3] ComponentCorrelationID OPTIONAL,
+ extensions [4] Extensions{b1} OPTIONAL,
+ ...
+}
+
+facilitySelectedAndAvailable OPERATION ::= {
+ ARGUMENT FacilitySelectedAndAvailableArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-facilitySelectedAndAvailable
+}
+
+-- Direction: SSF -> SCF. Timer: Tfs
+-- This operation is used for indication of a call termination attempt from the terminating half BCSM. (DP -
+-- Facility_Selected_And_Available).
+FacilitySelectedAndAvailableArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress{b2} OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartyNumber [4] CallingPartyNumber{b2} OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID{b2} OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ routeList [8] RouteList{b2} OPTIONAL,
+ travellingClassMark [9] TravellingClassMark{b2} OPTIONAL,
+ extensions [10] Extensions{b1} OPTIONAL,
+ componentType [11] ComponentType OPTIONAL,
+ component [12] Component OPTIONAL,
+ componentCorrelationID [13] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+furnishChargingInformation OPERATION ::= {
+ ARGUMENT FurnishChargingInformationArg {b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-furnishChargingInformation
+}
+
+-- Direction: SCF -> SSF, Timer: Tfci
+-- This operation is used to request the SSF to generate, register a call record or to include some information
+-- in the default call record. The registered call record is intended for off line charging of the call.
+FurnishChargingInformationArg ::=
+ FCIBillingChargingCharacteristics{b2}
+
+holdCallInNetwork OPERATION ::= {
+ ARGUMENT HoldCallInNetworkArg
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-holdCallInNetwork
+}
+
+-- Direction: SCF -> SSF, Timer: Thcn
+-- This operation is used to provide the capability of queueing a call during the setup phase (e.g. to provide
+-- a call completion to busy, the call would be queued until the destination becomes free).
+HoldCallInNetworkArg ::= CHOICE {
+ holdcause [0] HoldCause,
+ empty [1] NULL
+}
+
+-- holdcause is optional and denotes network operator specific use.
+initialDP OPERATION ::= {
+ ARGUMENT InitialDPArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-initialDP
+}
+
+-- Direction: SSF -> SCF, Timer: Tidp
+-- This operation is used after a TDP to indicate request for service.
+InitialDPArg ::= SEQUENCE {
+ serviceKey [0] ServiceKey OPTIONAL,
+ dialledDigits [1] CalledPartyNumber{b2} OPTIONAL,
+ calledPartyNumber [2] CalledPartyNumber{b2} OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber{b2} OPTIONAL,
+ callingPartyBusinessGroupID [4] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartysCategory [5] CallingPartysCategory OPTIONAL,
+ callingPartySubaddress [6] CallingPartySubaddress{b2} OPTIONAL,
+ cGEncountered [7] CGEncountered OPTIONAL,
+ iPSSPCapabilities [8] IPSSPCapabilities{b2} OPTIONAL,
+ iPAvailable [9] IPAvailable{b2} OPTIONAL,
+ locationNumber [10] LocationNumber{b2} OPTIONAL,
+ miscCallInfo [11] MiscCallInfo OPTIONAL,
+ originalCalledPartyID [12] OriginalCalledPartyID{b2} OPTIONAL,
+ serviceProfileIdentifier [13] ServiceProfileIdentifier OPTIONAL,
+ terminalType [14] TerminalType OPTIONAL,
+ extensions [15] Extensions{b1} OPTIONAL,
+ triggerType [16] TriggerType OPTIONAL,
+ highLayerCompatibility [23] HighLayerCompatibility{b2} OPTIONAL,
+ serviceInteractionIndicators
+ [24] ServiceInteractionIndicators{b2} OPTIONAL,
+ additionalCallingPartyNumber
+ [25] AdditionalCallingPartyNumber{b2} OPTIONAL,
+ forwardCallIndicators [26] ForwardCallIndicators OPTIONAL,
+ bearerCapability [27] BearerCapability{b2} OPTIONAL,
+ eventTypeBCSM [28] EventTypeBCSM OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ cause [17] Cause{b2} OPTIONAL,
+ componentType [18] ComponentType OPTIONAL,
+ component [19] Component OPTIONAL,
+ componentCorrelationID [20] ComponentCorrelationID OPTIONAL,
+ iSDNAccessRelatedInformation
+ [21] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ iNServiceCompatibilityIndication
+ [22] INServiceCompatibilityIndication{b2} OPTIONAL,
+ genericNumbers [31] GenericNumbers{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [32] ServiceInteractionIndicatorsTwo OPTIONAL,
+ forwardGVNS [33] ForwardGVNS{b2} OPTIONAL,
+ createdCallSegmentAssociation [34] CSAID{b2} OPTIONAL,
+ uSIServiceIndicator [35] USIServiceIndicator{b2} OPTIONAL,
+ uSIInformation [36] USIInformation{b2} OPTIONAL,
+ carrier [37] Carrier{b2} OPTIONAL,
+ cCSS [38] CCSS OPTIONAL,
+ vPNIndicator [39] VPNIndicator OPTIONAL,
+ cNInfo [40] CNInfo{b2} OPTIONAL,
+ callReference [41] CallReference{b2} OPTIONAL,
+ routeingNumber [42] RouteingNumber{b2} OPTIONAL,
+ callingGeodeticLocation [43] CallingGeodeticLocation{b2} OPTIONAL,
+ calledPartySubaddress [60] CalledPartySubaddress{b2} OPTIONAL,
+ connectionIdentifier [61] ConnectionIdentifier{b2} OPTIONAL,
+ genericIdentifier [62] GenericIdentifier{b2} OPTIONAL,
+ qOSParameter [63] QoSParameter{b2} OPTIONAL,
+ bISDNParameters [64] BISDNParameters{b2} OPTIONAL,
+ ...,
+ globalCallReference [44] GlobalCallReference{b2} OPTIONAL,
+ cug-Index [45] CUG-Index OPTIONAL,
+ cug-Interlock [46] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [47] NULL OPTIONAL,
+ ipRelatedInformation [48] IPRelatedInformation{b2} OPTIONAL
+}
+
+-- OPTIONAL for iPSSPCapabilities, iPAvailable, cGEncountered, and miscCallInfo denotes network
+-- operator specific use.
+-- OPTIONAL for terminalType indicates that this parameter applies only at originating or terminating
+-- local exchanges if the SSF has this information.
+initiateCallAttempt OPERATION ::= {
+ ARGUMENT InitiateCallAttemptArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-initiateCallAttempt
+}
+
+-- Direction: SCF -> SSF, Timer: Tica
+-- This operation is used to request the SSF to create a new call to one call party using address
+-- information provided by the SCF.
+InitiateCallAttemptArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress{b2},
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ iSDNAccessRelatedInformation
+ [2] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ travellingClassMark [3] TravellingClassMark{b2} OPTIONAL,
+ extensions [4] Extensions{b1} OPTIONAL,
+ serviceInteractionIndicators
+ [29] ServiceInteractionIndicators{b2} OPTIONAL,
+ callingPartyNumber [30] CallingPartyNumber{b2} OPTIONAL,
+ legToBeCreated [5] LegID --DEFAULT sendingSideID:leg1--,
+ newCallSegment
+ [6] CallSegmentID{b2} DEFAULT initialCallSegment,
+ iNServiceCompatibilityResponse [7] INServiceCompatibilityResponse OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [8] ServiceInteractionIndicatorsTwo OPTIONAL,
+ carrier [9] Carrier{b2} OPTIONAL,
+ correlationID [10] CorrelationID{b2} OPTIONAL,
+ scfID [11] ScfID{b2} OPTIONAL,
+ callReference [12] CallReference{b2} OPTIONAL,
+ calledDirectoryNumber [13] CalledDirectoryNumber{b2} OPTIONAL,
+ bearerCapability [60] BearerCapability{b2} OPTIONAL,
+ calledPartySubaddress [61] CalledPartySubaddress{b2} OPTIONAL,
+ connectionIdentifier [62] ConnectionIdentifier{b2} OPTIONAL,
+ genericIdentifier [63] GenericIdentifier{b2} OPTIONAL,
+ qOSParameter [64] QoSParameter{b2} OPTIONAL,
+ bISDNParameters [65] BISDNParameters{b2} OPTIONAL,
+ ...,
+ originalCalledPartyID [14] OriginalCalledPartyID{b2} OPTIONAL,
+ callingPartysCategory [15] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [16] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [17] RedirectionInformation OPTIONAL,
+ displayInformation [18] DisplayInformation{b2} OPTIONAL,
+ forwardCallIndicators [19] ForwardCallIndicators OPTIONAL,
+ genericNumbers [20] GenericNumbers{b2} OPTIONAL,
+ forwardGVNS [21] ForwardGVNS{b2} OPTIONAL,
+ globalCallReference [23] GlobalCallReference{b2} OPTIONAL,
+ -- syntax to be confirmed
+ cug-Interlock [24] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [25] NULL OPTIONAL,
+ incomingSignallingBufferCopy [26] BOOLEAN DEFAULT FALSE,
+ ipRelatedInformation [27] IPRelatedInformation{b2} OPTIONAL
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values
+manageTriggerData OPERATION ::= {
+ ARGUMENT ManageTriggerDataArg {b1,
+ b2}
+ RESULT ManageTriggerDataResultArg {b1,
+ b2}
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ CODE opcode-manageTriggerData
+}
+
+-- Direction: SCF -> SSF, Class 1, Timer: Tmtd
+-- This trigger management operation is used outside the context of a call to activate, deactivate or retrieve
+-- the status of one or several trigger detection point linked to a subscriber profile known at the switch,
+-- e.g. related to an access line ( i.e. an individual trigger).
+ManageTriggerDataArg ::= SEQUENCE {
+ actionIndicator [0] ActionIndicator,
+ triggerDataIdentifier
+ CHOICE {profileAndDP [1] TriggerDataIdentifier{b1, b2},
+ -- one trigger
+ profile [5] ProfileIdentifier{b2}},
+ registratorIdentifier [2] RegistratorIdentifier OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ tDPIdentifier [4] TDPIdentifier{b2} OPTIONAL,
+ ...
+}
+
+ManageTriggerDataResultArg ::= CHOICE {
+ oneTriggerResult
+ SEQUENCE {actionPerformed [0] ActionPerformed,
+ extensions [1] Extensions{b1} OPTIONAL,
+ ...},
+ severalTriggerResult
+ [1] SEQUENCE {results [0] TriggerResults{b2},
+ extensions [1] Extensions{b1} OPTIONAL,
+ ...}
+}
+
+mergeCallSegments OPERATION ::= {
+ ARGUMENT MergeCallSegmentsArg {b1,
+ b2}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ CODE opcode-mergeCallSegments
+}
+
+-- Direction: SCF -> SSF. Timer: T mc
+-- This operation is issued by the SCF to merge two associated CSs , into one CS .
+MergeCallSegmentsArg ::= SEQUENCE {
+ sourceCallSegment [0] CallSegmentID{b2},
+ targetCallSegment [1] CallSegmentID{b2} DEFAULT initialCallSegment,
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...,
+ mergeSignallingPaths [3] NULL OPTIONAL
+}
+
+monitorRouteReport OPERATION ::= {
+ ARGUMENT MonitorRouteReportArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-monitorRouteReport
+}
+
+-- Direction SSF-> SCF: Timer T mrp
+-- This operation is used by the SSF to report the result of a route monitoring procedure.
+MonitorRouteReportArg ::= SEQUENCE {
+ routeCounters [0] RouteCountersValue{b2},
+ correlationID [2] CorrelationID{b2},
+ ...,
+-- ...,
+ extensions [3] Extensions{b1} OPTIONAL
+}
+
+monitorRouteRequest OPERATION ::= {
+ ARGUMENT MonitorRouteRequestArg {b1,
+ b2}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedParameter}
+ CODE opcode-monitorRouteRequest
+}
+
+-- Direction SCF -> SSF. Timer Tmrr
+-- This operationis issued by the SCF to request the SSF to monitor specified routes.
+MonitorRouteRequestArg ::= SEQUENCE {
+ routeList [0] RouteList{b2},
+ correlationID [1] CorrelationID{b2},
+ monitoringCriteria [2] MonitoringCriteria,
+ monitoringTimeout [3] MonitoringTimeOut,
+ startTime [4] DateAndTime OPTIONAL,
+ ...,
+-- ...,
+ extensions [5] Extensions{b1} OPTIONAL
+}
+
+moveCallSegments OPERATION ::= {
+ ARGUMENT MoveCallSegmentsArg {b1,
+ b2}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ CODE opcode-moveCallSegments
+}
+
+-- Direction: SCF -> SSF, Timer Tmcs
+-- This operation moves a CS from the source CSA to the the target CSA
+MoveCallSegmentsArg ::= SEQUENCE {
+ targetCallSegmentAssociation [0] CSAID{b2},
+ callSegments
+ [1] SEQUENCE SIZE (1..--b2.&--numOfCSs) OF
+ SEQUENCE {sourceCallSegment
+ [0] CallSegmentID{b2} DEFAULT initialCallSegment,
+ newCallSegment [1] CallSegmentID{b2},
+ ...},
+ legs
+ [2] SEQUENCE SIZE (1..--b2.&--numOfLegs) OF
+ SEQUENCE {sourceLeg [0] LegID,
+ newLeg [1] LegID,
+ ...},
+ extensions [3] Extensions{b1} OPTIONAL,
+ ...
+}
+
+moveLeg OPERATION ::= {
+ ARGUMENT MoveLegArg {b1,
+ b2}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ CODE opcode-moveLeg
+}
+
+-- Direction : SCF ->SSF, Timer: T ml
+-- This operation is issued by the SCF to move a leg from one CS to another with which it is associated.
+MoveLegArg ::= SEQUENCE {
+ legIDToMove [0] LegID,
+ targetCallSegment [1] CallSegmentID{b2} DEFAULT 1,
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...,
+ detachSignallingPath [3] NULL OPTIONAL, -- action on source
+ exportSignallingPath [4] NULL OPTIONAL -- action on target
+}
+
+oAbandon OPERATION ::= {
+ ARGUMENT OAbandonArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-oAbandon
+}
+
+-- Direction: SSF -> SCF. Timer: T ob
+-- This operation is issued by the SSF after detecting a valid trigger condition at the O_Abandon DP or to
+-- report an oAbandon event requested by the RequestReportBCSMEvent.
+OAbandonArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ callSegmentID [1] CallSegmentID{b2},
+ releaseCause [2] Cause{b2} OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- Use of T/EDP-R is outside
+-- the scope of this capability set.
+oAnswer OPERATION ::= {
+ ARGUMENT OAnswerArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-oAnswer
+}
+
+-- Direction: SSF -> SCF, Timer: Toa
+-- This operation is used for indication from the terminating half BCSM that the call is accepted and answered
+-- by terminating party (e.g. terminating party goes offhook, Q.931 Connect message received, IS-UP Answer
+-- message received) (DP - O_Answer).
+OAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID{b2} OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ routeList [8] RouteList{b2} OPTIONAL,
+ travellingClassMark [9] TravellingClassMark{b2} OPTIONAL,
+ extensions [10] Extensions{b1} OPTIONAL,
+ ...
+}
+
+oCalledPartyBusy OPERATION ::= {
+ ARGUMENT OCalledPartyBusyArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-oCalledPartyBusy
+}
+
+-- Direction: SSF -> SCF, Timer: Tob
+-- This operation is used for Indication from the terminating half BCSM that the terminating party is busy
+-- (DP - O_Called_Party_Busy). .
+OCalledPartyBusyArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ busyCause [1] Cause{b2} OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID{b2} OPTIONAL,
+ prefix [7] Digits{b2} OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ routeList [10] RouteList{b2} OPTIONAL,
+ travellingClassMark [11] TravellingClassMark{b2} OPTIONAL,
+ extensions [12] Extensions{b1} OPTIONAL,
+ carrier [13] Carrier{b2} OPTIONAL,
+ ...
+}
+
+oDisconnect OPERATION ::= {
+ ARGUMENT ODisconnectArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-oDisconnect
+}
+
+-- Direction: SSF -> SCF, Timer: Tod
+-- This operation is used for a disconnect indication (e.g. onhook, Q.931 Disconnect message, SS7 Release message)
+-- is received from the originating party, or received from the terminating party via the terminating half BCSM.
+-- (DP - O_Disconnect). .
+ODisconnectArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ releaseCause [5] Cause{b2} OPTIONAL,
+ routeList [6] RouteList{b2} OPTIONAL,
+ extensions [7] Extensions{b1} OPTIONAL,
+ carrier [8] Carrier{b2} OPTIONAL,
+ connectTime [9] Integer4 OPTIONAL,
+ componentType [10] ComponentType OPTIONAL,
+ component [11] Component OPTIONAL,
+ componentCorrelationID [12] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+oMidCall OPERATION ::= {
+ ARGUMENT MidCallArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-oMidCall
+}
+
+-- Direction: SSF -> SCF, Timer: Tomc
+-- This operation is used to indicate a feature request is received from the originating party
+-- (e.g. hook flash, ISDN feature activation, Q.931 HOLD or RETrieve message). (DP - O_Mid_Call).
+MidCallArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress{b2} OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [4] CallingPartySubaddress{b2} OPTIONAL,
+ featureRequestIndicator [5] FeatureRequestIndicator OPTIONAL,
+ extensions [6] Extensions{b1} OPTIONAL,
+ carrier [7] Carrier{b2} OPTIONAL,
+ componentType [8] ComponentType OPTIONAL,
+ component [9] Component OPTIONAL,
+ componentCorrelationID [10] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+oNoAnswer OPERATION ::= {
+ ARGUMENT ONoAnswerArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-oNoAnswer
+}
+
+-- Direction: SSF -> SCF, Timer: Tona
+-- This operation is used for indication from the terminating half BCSM that the terminating party does not
+-- answer within a specified time period (DP - O_No_Answer).
+ONoAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID{b2} OPTIONAL,
+ prefix [6] Digits{b2} OPTIONAL,
+ redirectingPartyID [7] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [8] RedirectionInformation OPTIONAL,
+ routeList [9] RouteList{b2} OPTIONAL,
+ travellingClassMark [10] TravellingClassMark{b2} OPTIONAL,
+ extensions [11] Extensions{b1} OPTIONAL,
+ carrier [12] Carrier{b2} OPTIONAL,
+ ...
+}
+
+originationAttempt OPERATION ::= {
+ ARGUMENT OriginationAttemptArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-originationAttempt
+}
+
+-- Direction: SSF -> SCF. Timer: Tora
+-- This operation is used for indication of a call origination attempt from the originating half BCSM.
+-- (DP - Origination_Attempt).
+OriginationAttemptArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ carrier [5] Carrier{b2} OPTIONAL,
+ travellingClassMark [6] TravellingClassMark{b2} OPTIONAL,
+ extensions [7] Extensions{b1} OPTIONAL,
+ componentType [8] ComponentType OPTIONAL,
+ component [9] Component OPTIONAL,
+ componenttCorrelationID [10] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+originationAttemptAuthorized OPERATION ::= {
+ ARGUMENT OriginationAttemptAuthorizedArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-originationAttemptAuthorized
+}
+
+-- Direction: SSF -> SCF, Timer: Toaa
+-- This operation is used to Indicate the desire to place outgoing call (e.g. offhook, Q.931 Setup message,
+-- ISUP IAM message) and authority/ability to place outgoing call verified (DP -
+-- Origination_Attempt_Authorized).
+OriginationAttemptAuthorizedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ dialledDigits [1] CalledPartyNumber{b2} OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ travellingClassMark [6] TravellingClassMark{b2} OPTIONAL,
+ extensions [7] Extensions{b1} OPTIONAL,
+ carrier [8] Carrier{b2} OPTIONAL,
+ componentType [9] ComponentType OPTIONAL,
+ component [10] Component OPTIONAL,
+ componentCorrelationID [11] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+oSuspended OPERATION ::= {
+ ARGUMENT OSuspendedArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-oSuspended
+}
+
+-- Direction: SSF -> SCF. Timer: T os
+-- This operation is issued by the SSF after detecting a valid trigger condition at the O_Suspend DP or to
+-- report an oSuspend event requested by the RequestReportBCSMEvent.
+OSuspendedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ legID [1] LegID OPTIONAL,
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...
+}
+
+reconnect OPERATION ::= {
+ ARGUMENT ReconnectArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-reconnect
+}
+
+-- Direction: SCF -> SSF. Timer: T re
+-- This operation is issued by the SCF to reestablish communication between the controlling leg and the
+-- (held) passive leg(s). .
+ReconnectArg ::= SEQUENCE {
+ notificationDuration [0] ApplicationTimer OPTIONAL,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ displayInformation [2] DisplayInformation{b2} OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ callSegmentID [4] CallSegmentID{b2} OPTIONAL,
+ ...
+}
+
+releaseCall OPERATION ::= {
+ ARGUMENT ReleaseCallArg {b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-releaseCall
+}
+
+-- Direction: SCF -> SSF, Timer: Trc
+-- This operation is used by the SCF to tear down an existing call segment at any phase of the call for all parties
+-- involved in the call segment or to tear down all existing call segments within a Call Segment Association.
+ReleaseCallArg ::= CHOICE {
+ initialCallSegment Cause{b2},
+ callSegmentToRelease
+ [1] SEQUENCE {callSegment [0] INTEGER(1..--b2.&--numOfCSs),
+ releaseCause [1] Cause{b2} OPTIONAL,
+ forcedRelease [2] BOOLEAN DEFAULT FALSE,
+ ...},
+ allCallSegments
+ [2] SEQUENCE {releaseCause [0] Cause{b2} OPTIONAL,
+ timeToRelease [1] TimerValue OPTIONAL,
+ forcedRelease [2] BOOLEAN DEFAULT FALSE,
+ ...},
+ ...
+}
+
+-- A default cause value of decimal 31 (normal unspecified) should be coded appropriately.
+-- If timeToRelease parameter is omitted, the default shall be no timed disconnect requested
+-- If forcedRelease parameter is omitted (default value "FALSE") the default shall be no forced release requested.
+reportUTSI OPERATION ::= {
+ ARGUMENT ReportUTSIArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-reportUTSI
+}
+
+-- Direction: SSF -> SCF. Timer: Tru
+-- This operation is issued by the SSF in the context of the USI feature. It is used to report the receipt
+-- of a User to Service Information (USI) to the SCF.
+ReportUTSIArg ::= SEQUENCE {
+ uSIServiceIndicator [0] USIServiceIndicator{b2},
+ legID [1] LegID --DEFAULT receivingSideID:leg1--,
+ uSIInformation [2] USIInformation{b2},
+ extensions [3] Extensions{b1} OPTIONAL,
+ ...
+}
+
+requestCurrentStatusReport OPERATION ::= {
+ ARGUMENT RequestCurrentStatusReportArg {b2}
+ RESULT RequestCurrentStatusReportResultArg {b1,
+ b2}
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownResource}
+ CODE opcode-requestCurrentStatusReport
+}
+
+-- Direction: SCF -> SSF, Timer: Trcs
+-- This operation is used to request the SSF to report immediately the busy/idle status of a physical
+-- termination resource.
+RequestCurrentStatusReportArg ::=
+ ResourceID{b2}
+
+RequestCurrentStatusReportResultArg ::= SEQUENCE {
+ resourceStatus [0] ResourceStatus,
+ resourceID [1] ResourceID{b2} OPTIONAL,
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...
+}
+
+requestEveryStatusChangeReport OPERATION ::= {
+ ARGUMENT RequestEveryStatusChangeReportArg {b1,
+ b2}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownResource}
+ CODE opcode-requestEveryStatusChangeReport
+}
+
+-- Direction: SCF -> SSF, Timer: Tres
+-- This operation is used to request the SSF to report every change of busy/idle status of a physical
+-- termination resource.
+RequestEveryStatusChangeReportArg ::= SEQUENCE {
+ resourceID [0] ResourceID{b2},
+ correlationID [1] CorrelationID{b2} OPTIONAL,
+ monitorDuration [2] Duration OPTIONAL,
+ extensions [3] Extensions{b1} 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.
+requestFirstStatusMatchReport OPERATION ::= {
+ ARGUMENT RequestFirstStatusMatchReportArg {b1,
+ b2}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownResource}
+ CODE opcode-requestFirstStatusMatchReport
+}
+
+-- Direction: SCF -> SSF, Timer: Trfs
+-- This operation is used to request the SSF to report the first change busy/idle to the specified status of
+-- a physical termination resource.
+RequestFirstStatusMatchReportArg ::= SEQUENCE {
+ resourceID [0] ResourceID{b2} OPTIONAL,
+ resourceStatus [1] ResourceStatus OPTIONAL,
+ correlationID [2] CorrelationID{b2} OPTIONAL,
+ monitorDuration [3] Duration OPTIONAL,
+ extensions [4] Extensions{b1} OPTIONAL,
+ bearerCapability [5] BearerCapability{b2} 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.
+requestNotificationChargingEvent OPERATION ::= {
+ ARGUMENT RequestNotificationChargingEventArg {b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-requestNotificationChargingEvent
+}
+
+-- Direction: SCF -> SSF, Timer: Trnc
+-- This operation is used by the SCF to instruct the SSF on how to manage the charging events
+-- - which are received from other FE's and not under control of the service logic instance.
+RequestNotificationChargingEventArg ::=
+ SEQUENCE SIZE (1..--b2.&--numOfChargingEvents) OF ChargingEvent{b2}
+
+requestReportBCSMEvent OPERATION ::= {
+ ARGUMENT RequestReportBCSMEventArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-requestReportBCSMEvent
+}
+
+-- Direction: SCF -> SSF, Timer: Trrb
+-- This operation is used to request the SSF to monitor for a call-related event (e.g. BCSM events such as
+-- busy or no answer), then send a notification back to the SCF when the event is detected.
+-- It is proposed that Event Detection Point (EDP) processing is always initiated by RequestReportBCSMEvent
+-- and the EDP may be acknowledged with either an EventReportBCSM or by a DP-specific operation.
+-- NOTE - the application context should identify whether BCSM Event Handling Package
+-- is being used, or whether DP Specific Event Handling Package is being used.
+-- For a particular IN, only one of the two alternatives identified by the respective Packages should be
+-- selected (i.e., only one approach should be selected for a given application context).
+-- Every EDP must be explicitly armed by the SCF via a RequestReportBCSMEvent operation.
+-- No implicit arming of EDPs at the SSF after reception of any operation (different from
+-- RequestReportBCSMEvent) from the SCF is allowed.
+RequestReportBCSMEventArg ::= SEQUENCE {
+ bcsmEvents
+ [0] SEQUENCE SIZE (1..--b2.&--numOfBCSMEvents) OF BCSMEvent{b2},
+ bcsmEventCorrelationID [1] CorrelationID{b2} OPTIONAL,
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- Indicates the BCSM related events for notification.
+-- For correlationID OPTIONAL denotes network operator optional.
+requestReportFacilityEvent OPERATION ::= {
+ ARGUMENT RequestReportFacilityEventArg {b1}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-requestReportFacilityEvent
+}
+
+-- SCF->SSF, Timer: Trrfe
+-- This operation is issued by the SCF to request the SSF to report the SCF the event that the CCF/SSF
+-- receives a DSS1 message which contains a FACILITY IE during a BCSM being suspended at a DP.
+RequestReportFacilityEventArg ::= SEQUENCE {
+ componentTypes
+ [0] SEQUENCE SIZE (1..3) OF ComponentType DEFAULT {any},
+ legID [1] LegID OPTIONAL,
+ componentCorrelationID [2] ComponentCorrelationID OPTIONAL,
+ monitorDuration [3] Duration,
+ extensions [4] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- componentTypes specifies the component types which should be reported to the SCF.
+-- monitorDuration specifies the monitor duration.
+requestReportUTSI OPERATION ::= {
+ ARGUMENT RequestReportUTSIArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-requestReportUTSI
+}
+
+-- Direction: SCF -> SSF. Timer: Trru
+-- This operation is issued by the SCF in the context of the USI feature to request the SSF to monitor for
+-- a User to Service Information (UTSI) information element, which are received from a user.
+RequestReportUTSIArg ::= SEQUENCE {
+ requestedUTSIList [0] RequestedUTSIList{b2},
+ extensions [1] Extensions{b1} OPTIONAL,
+ legID [2] LegID --DEFAULT sendingSideID:leg1--,
+ ...
+}
+
+resetTimer OPERATION ::= {
+ ARGUMENT ResetTimerArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-resetTimer
+}
+
+-- Direction: SCF -> SSF, Timer: Trt
+-- This operation is used to request the SSF to refresh an application timer in the SSF.
+ResetTimerArg ::= SEQUENCE {
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions [2] Extensions{b1} OPTIONAL,
+ callSegmentID [3] CallSegmentID{b2} OPTIONAL,
+ ...
+}
+
+routeSelectFailure OPERATION ::= {
+ ARGUMENT RouteSelectFailureArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ systemFailure | taskRefused | unexpectedComponentSequence |
+ unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-routeSelectFailure
+}
+
+-- Direction: SSF -> SCF, Timer: Trsf
+-- This operation is used to indicate that the SSP is unable to select a route (e.g. unable to determine a
+-- correct route, no more routes on route list) or indication from the terminating half BCSM that a call
+-- cannot be presented to the terminating party (e.g. network ongestion) (DP - Route_Select_Failure).
+RouteSelectFailureArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ dialledDigits [1] CalledPartyNumber{b2} OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress{b2} OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ failureCause [6] Cause{b2} OPTIONAL,
+ originalCalledPartyID [7] OriginalCalledPartyID{b2} OPTIONAL,
+ prefix [8] Digits{b2} OPTIONAL,
+ redirectingPartyID [9] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [10] RedirectionInformation OPTIONAL,
+ routeList [11] RouteList{b2} OPTIONAL,
+ travellingClassMark [12] TravellingClassMark{b2} OPTIONAL,
+ extensions [13] Extensions{b1} OPTIONAL,
+ carrier [14] Carrier{b2} OPTIONAL,
+ ...
+}
+
+selectFacility OPERATION ::= {
+ ARGUMENT SelectFacilityArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-selectFacility
+}
+
+-- Direction: SCF -> SSF, Timer: Tsf
+-- This operation is used to request the SSF to perform the terminating basic call processing
+-- actions to select the terminating line if it is idle, or selects an idle line from a multi-line hunt
+-- group, or selects an idle trunk from a trunk group, as appropriate. If no idle line or trunk is
+-- available, the SSF determines that the terminating facility is busy.
+SelectFacilityArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ destinationNumberRoutingAddress [1] CalledPartyNumber{b2} OPTIONAL,
+ iSDNAccessRelatedInformation
+ [2] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID{b2} OPTIONAL,
+ extensions [6] Extensions{b1} OPTIONAL,
+ displayInformation [7] DisplayInformation{b2} OPTIONAL,
+ serviceInteractionIndicators
+ [8] ServiceInteractionIndicators{b2} OPTIONAL,
+ iNServiceCompatibilityResponse [9] INServiceCompatibilityResponse OPTIONAL,
+ forwardGVNS [10] ForwardGVNS{b2} OPTIONAL,
+ backwardGVNS [11] BackwardGVNS{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [12] ServiceInteractionIndicatorsTwo OPTIONAL,
+ correlationID [13] CorrelationID{b2} OPTIONAL,
+ scfID [14] ScfID{b2} OPTIONAL,
+ callSegmentID [15] CallSegmentID{b2} OPTIONAL,
+ legToBeCreated [16] LegID OPTIONAL,
+ ...,
+ ipRelatedInformation [17] IPRelatedInformation{b2} OPTIONAL
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values.
+selectRoute OPERATION ::= {
+ ARGUMENT SelectRouteArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-selectRoute
+}
+
+-- Direction: SCF -> SSF, Timer: Tsr
+-- This operation is used to request the SSF to perform the originating basic call processing actions to
+-- determine routing information and select a route for a call, based either on call information available
+-- to the SSF, or on call information provided by the SCF (e.g. for alternate routing), to include the
+-- called party address, type of call, carrier, route index, and one or more alternate route indices.
+-- Based on the routing information, the SSF attempts to select a primary route for the call, and if the
+-- route is busy, attempts to select an alternate route. The SSF may fail to select a route for the call
+-- if all routes are busy.
+SelectRouteArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress{b2},
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ correlationID [2] CorrelationID{b2} OPTIONAL,
+ iSDNAccessRelatedInformation
+ [3] ISDNAccessRelatedInformation{b2} OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID{b2} OPTIONAL,
+ routeList [5] RouteList{b2} OPTIONAL,
+ scfID [6] ScfID{b2} OPTIONAL,
+ travellingClassMark [7] TravellingClassMark{b2} OPTIONAL,
+ extensions [8] Extensions{b1} OPTIONAL,
+ carrier [9] Carrier{b2} OPTIONAL,
+ serviceInteractionIndicators
+ [10] ServiceInteractionIndicators{b2} OPTIONAL,
+ iNServiceCompatibilityResponse
+ [11] INServiceCompatibilityResponse OPTIONAL,
+ forwardGVNS [12] ForwardGVNS{b2} OPTIONAL,
+ backwardGVNS [13] BackwardGVNS{b2} OPTIONAL,
+ serviceInteractionIndicatorsTwo
+ [14] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callSegmentID [15] CallSegmentID{b2} OPTIONAL,
+ legToBeCreated [16] LegID OPTIONAL,
+ ...,
+ ipRelatedInformation [17] IPRelatedInformation{b2} OPTIONAL
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values.
+sendChargingInformation OPERATION ::= {
+ ARGUMENT SendChargingInformationArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | unexpectedComponentSequence | unexpectedParameter |
+ parameterOutOfRange | systemFailure | taskRefused | unexpectedDataValue |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-sendChargingInformation
+}
+
+-- Direction: SCF -> SSF, Timer: Tsci
+-- This operation is used to instruct the SSF on the charging information to send by the SSF.
+-- The charging information can either be sent back by means of signalling or internal
+-- if the SSF is located in the local exchange. In the local exchange
+-- this information may be used to update the charge meter or to create a standard call record.
+SendChargingInformationArg ::= SEQUENCE {
+ sCIBillingChargingCharacteristics [0] SCIBillingChargingCharacteristics{b2},
+ partyToCharge [1] LegID,
+ extensions [2] Extensions{b1} OPTIONAL,
+ nocharge [3] BOOLEAN OPTIONAL,
+ ...
+}
+
+sendFacilityInformation OPERATION ::= {
+ ARGUMENT SendFacilityInformationArg {b1}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | unexpectedComponentSequence | unexpectedParameter |
+ unexpectedDataValue | systemFailure | taskRefused | unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-sendFacilityInformation
+}
+
+-- SCF->SSF, Timer: Tsfi
+-- This operation is issued by the SCF during a BCSM being suspended at a DP to request the CCF/SSF
+-- sending a FACILITY IE to a user with a specified DSS1 message.
+SendFacilityInformationArg ::= SEQUENCE {
+ componentType [0] ComponentType,
+ legID [1] LegID OPTIONAL,
+ componentCorrelationID [2] ComponentCorrelationID OPTIONAL,
+ component [3] Component,
+ callProcessingOperation [4] CallProcessingOperation DEFAULT fACility,
+ extensions [5] Extensions{b1} OPTIONAL,
+ ...
+}
+
+-- FACILITY information will be delivered with the specified DSS1 message. The message is specified with the
+-- callProcessingOperation
+sendSTUI OPERATION ::= {
+ ARGUMENT SendSTUIArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | unexpectedComponentSequence |
+ unexpectedParameter | unexpectedDataValue | systemFailure | taskRefused |
+ unknownLegID}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-sendSTUI
+}
+
+-- Direction: SCF -> SSF. Timer: Tss
+-- This operation is issued by the SCF in the context of the USI feature. It is used to request the SSF
+-- to send a Service to User Information (USI information) data element to the indicated user.
+SendSTUIArg ::= SEQUENCE {
+ uSIServiceIndicator [0] USIServiceIndicator{b2},
+ legID [1] LegID --DEFAULT sendingSideID:leg1--,
+ uSIInformation [2] USIInformation{b2},
+ extensions [3] Extensions{b1} OPTIONAL,
+ ...
+}
+
+serviceFilteringResponse OPERATION ::= {
+ ARGUMENT ServiceFilteringResponseArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-serviceFilteringResponse
+}
+
+-- Direction: SSF -> SCF, Timer: Tsfr
+-- This operation is used to send back to the SCF the values of counters specified in a previous
+-- ActivateServiceFiltering operation
+ServiceFilteringResponseArg ::= SEQUENCE {
+ countersValue [0] CountersValue{b2},
+ filteringCriteria [1] FilteringCriteria{b2},
+ extensions [2] Extensions{b1} OPTIONAL,
+ responseCondition [3] ResponseCondition OPTIONAL,
+ ...
+}
+
+setServiceProfile OPERATION ::= {
+ ARGUMENT SetServiceProfileArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingParameter | parameterOutOfRange | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-setServiceProfile
+}
+
+-- Direction SCF -> SSF, Timer Tsep
+--This operation is used within the context of a call to request the SSF to activate/de-activate a list of trigger for one of the parties in the call.
+SetServiceProfileArg ::= SEQUENCE {
+ iNprofiles [0] SEQUENCE SIZE (1..--b2.&--numOfINProfile) OF INprofile{b1, b2},
+ ...,
+-- ...,
+ extensions [30] Extensions{b1} OPTIONAL
+}
+
+splitLeg OPERATION ::= {
+ ARGUMENT SplitLegArg {b1,
+ b2}
+ RETURN RESULT TRUE
+ ERRORS
+ {missingParameter | unexpectedComponentSequence | unexpectedParameter |
+ unexpectedDataValue | systemFailure | taskRefused | unknownLegID}
+ CODE opcode-splitLeg
+}
+
+-- Direction: SCF -> SSF. Timer: T sl
+-- This operation is issued by the SCF to separate one joined leg from a multi-way connection
+-- or a single 2 party Call segment.
+SplitLegArg ::= SEQUENCE {
+ legToBeSplit [0] LegID,
+ newCallSegment [1] INTEGER(2..--b2.&--numOfCSs),
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...,
+ detachSignallingPath [3] NULL OPTIONAL
+}
+
+statusReport OPERATION ::= {
+ ARGUMENT StatusReportArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE opcode-statusReport
+}
+
+-- Direction: SSF -> SCF, Timer: Tsrp
+-- This operation is used as a response to RequestFirstStatusMatchReport or
+-- RequestEveryStatusChangeReport operations.
+StatusReportArg ::= SEQUENCE {
+ resourceStatus [0] ResourceStatus OPTIONAL,
+ correlationID [1] CorrelationID{b2} OPTIONAL,
+ resourceID [2] ResourceID{b2} OPTIONAL,
+ extensions [3] Extensions{b1} OPTIONAL,
+ 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.
+tAnswer OPERATION ::= {
+ ARGUMENT TAnswerArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ unexpectedComponentSequence | unexpectedParameter | unexpectedDataValue |
+ systemFailure | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-tAnswer
+}
+
+-- Direction: SSF -> SCF, Timer: Tta
+-- This operation is used to indicate that the call is accepted and answered by terminating party
+-- (e.g. terminating party goes offhook, Q.931 Connect message received, ISUP Answer message
+-- received) (DP - T_Answer).
+TAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress{b2} OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ extensions [5] Extensions{b1} OPTIONAL,
+ componentType [6] ComponentType OPTIONAL,
+ component [7] Component OPTIONAL,
+ componentCorrelationID [8] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+tBusy OPERATION ::= {
+ ARGUMENT TBusyArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ unexpectedComponentSequence | unexpectedParameter | unexpectedDataValue |
+ systemFailure | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-tBusy
+}
+
+-- Direction: SSF -> SCF, Timer: Ttb
+-- This operation is used to indicate all resources in group busy (DP- TBusy).
+TBusyArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ busyCause [1] Cause{b2} OPTIONAL,
+ calledPartyBusinessGroupID [2] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [3] CalledPartySubaddress{b2} OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID{b2} OPTIONAL,
+ redirectingPartyID [5] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [6] RedirectionInformation OPTIONAL,
+ routeList [7] RouteList{b2} OPTIONAL,
+ travellingClassMark [8] TravellingClassMark{b2} OPTIONAL,
+ extensions [9] Extensions{b1} OPTIONAL,
+ ...
+}
+
+tDisconnect OPERATION ::= {
+ ARGUMENT TDisconnectArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ unexpectedComponentSequence | unexpectedParameter | unexpectedDataValue |
+ systemFailure | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-tDisconnect
+}
+
+-- Direction: SSF -> SCF, Timer: Ttd
+-- This operation is used for a disconnect indication (e.g. onhook, Q.931 Disconnect message,
+-- SS7 Release message) is received from the terminating party, or received from the originating party
+-- via the originating half BCSM. (DP - T_Disconnect).
+TDisconnectArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress{b2} OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ releaseCause [5] Cause{b2} OPTIONAL,
+ extensions [6] Extensions{b1} OPTIONAL,
+ connectTime [7] Integer4 OPTIONAL,
+ componentType [8] ComponentType OPTIONAL,
+ component [9] Component OPTIONAL,
+ componentCorrelationID [10] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+termAttemptAuthorized OPERATION ::= {
+ ARGUMENT TermAttemptAuthorizedArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ unexpectedComponentSequence | unexpectedParameter | unexpectedDataValue |
+ systemFailure | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-termAttemptAuthorized
+}
+
+-- Direction: SSF -> SCF, Timer: Ttaa
+-- This operation is used for indication of incoming call received from originating half BCSM and authority
+-- to route call to a specified terminating resource (or group) verified. (DP - Termination_Authorized).
+TermAttemptAuthorizedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress{b2} OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID{b2} OPTIONAL,
+ redirectingPartyID [5] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [6] RedirectionInformation OPTIONAL,
+ routeList [7] RouteList{b2} OPTIONAL,
+ travellingClassMark [8] TravellingClassMark{b2} OPTIONAL,
+ extensions [9] Extensions{b1} OPTIONAL,
+ callingPartySubaddress [10] CallingPartySubaddress{b2} OPTIONAL,
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values
+terminationAttempt OPERATION ::= {
+ ARGUMENT TerminationAttemptArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ unexpectedComponentSequence | unexpectedParameter | unexpectedDataValue |
+ systemFailure | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-terminationAttempt
+}
+
+-- Direction: SSF -> SCF. Timer: Ttra
+-- This operation is used for indication of a call termination attempt from the terminating half BCSM. (DP -
+-- Termination_Attempt).
+TerminationAttemptArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress{b2} OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [4] CallingPartySubaddress{b2} OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID{b2} OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ routeList [8] RouteList{b2} OPTIONAL,
+ travellingClassMark [9] TravellingClassMark{b2} OPTIONAL,
+ extensions [10] Extensions{b1} OPTIONAL,
+ ...
+}
+
+tMidCall OPERATION ::= {
+ ARGUMENT MidCallArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ unexpectedComponentSequence | unexpectedParameter | unexpectedDataValue |
+ systemFailure | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-tMidCall
+}
+
+-- Direction: SSF -> SCF, Timer: Ttmc
+-- This operation is used to indicate that a feature request is received from the terminating party (e.g. hook
+-- flash, ISDN feature activation Q.931 HOLD or RETrieve message). (DP - T_Mid_Call).
+tNoAnswer OPERATION ::= {
+ ARGUMENT TNoAnswerArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | parameterOutOfRange |
+ unexpectedComponentSequence | unexpectedParameter | unexpectedDataValue |
+ systemFailure | taskRefused}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-tNoAnswer
+}
+
+-- Direction: SSF -> SCF, Timer: Ttna
+-- This operation is used to indicate that the terminating party does not answer within a specified duration.
+-- (DP - T_No_Answer). .
+TNoAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress{b2} OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID{b2} OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID{b2} OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ travellingClassMark [8] TravellingClassMark{b2} OPTIONAL,
+ extensions [9] Extensions{b1} OPTIONAL,
+ componentType [10] ComponentType OPTIONAL,
+ component [11] Component OPTIONAL,
+ componentCorrelationID [12] ComponentCorrelationID OPTIONAL,
+ ...
+}
+
+tSuspended OPERATION ::= {
+ ARGUMENT TSuspendedArg {b1,
+ b2}
+ RETURN RESULT FALSE
+ ERRORS
+ {missingCustomerRecord | missingParameter | systemFailure | taskRefused |
+ unexpectedComponentSequence | unexpectedDataValue | unexpectedParameter}
+ ALWAYS RESPONDS FALSE
+ CODE opcode-tSuspended
+}
+
+-- Direction: SSF -> SCF. Timer: T ts
+-- This operation is issued by the SSF after detecting a valid trigger condition at the T_Suspend DP or to
+-- report a tSuspended event requested by the RequestReportBCSMEvent.
+TSuspendedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters{b1, b2},
+ legID [1] LegID OPTIONAL,
+ extensions [2] Extensions{b1} OPTIONAL,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-common-classes.asn b/epan/dissectors/asn1/inap/IN-common-classes.asn
new file mode 100644
index 0000000000..901abbe9f7
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-common-classes.asn
@@ -0,0 +1,352 @@
+-- Module IN-common-classes (Q.1248.1:07/2001)
+IN-common-classes {itu-t recommendation q 1248 modules(1) in-common-classes(5)
+ version1(0)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ id-package-emptyConnection, id-rosObject-scf, id-rosObject-cusf,
+ id-rosObject-sdf, id-rosObject-srf, id-rosObject-ssf,
+ ros-InformationObjects, ros-UsefulDefinitions, ssf-scf-Protocol,
+ scf-cusf-Protocol, scf-scf-Protocol, scf-srf-Protocol, scf-sdf-Protocol,
+ sdf-sdf-Protocol, common-datatypes
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, Code, OPERATION,
+ CONNECTION-PACKAGE
+ FROM Remote-Operations-Information-Objects ros-InformationObjects
+ emptyBind
+ FROM Remote-Operations-Useful-Definitions ros-UsefulDefinitions
+ inAssistHandoffSsfToScf, inScfToSsfDpSpecific, inScfToSsfGeneric,
+ inScfToSsfStatusReporting, inScfToSsfServiceManagement,
+ inScfToSsfINTrafficManagement, inScfToSsfTrafficManagement,
+ inScfToSsfTriggerManagement, inSsfToScfDpSpecific, inSsfToScfGeneric,
+ inSsfToScfServiceManagement, inScfToSsfRouteMonitoring,
+ inSsfToScfRouteMonitoring
+ FROM IN-SSF-SCF-pkgs-contracts-acs ssf-scf-Protocol
+ cusfscfDPSpecificContract, scfcusfDPSpecificContract, cusfscfGenericContract,
+ scfcusfGenericContract
+ FROM IN-SCF-CUSF-Protocol scf-cusf-Protocol
+ dsspContract, scfc-scfsContract, scfs-scfcContract
+ FROM IN-SCF-SCF-pkgs-contracts-acs scf-scf-Protocol
+ srf-scf-contract
+ FROM IN-SCF-SRF-pkgs-contracts-acs scf-srf-Protocol
+ dapContract, dapExecuteContract, tfcContract
+ FROM IN-SCF-SDF-Protocol scf-sdf-Protocol
+ indspContract, shadowConsumerContract, shadowSupplierContract
+ FROM IN-SDF-SDF-Protocol sdf-sdf-Protocol
+ CriticalityType
+ FROM IN-common-datatypes common-datatypes;
+
+ssf ROS-OBJECT-CLASS ::= {
+ INITIATES
+ {inSsfToScfGeneric | inSsfToScfDpSpecific | inAssistHandoffSsfToScf |
+ inSsfToScfServiceManagement | inSsfToScfRouteMonitoring}
+ RESPONDS
+ {inScfToSsfGeneric | inScfToSsfDpSpecific | inScfToSsfINTrafficManagement |
+ inScfToSsfTrafficManagement | inScfToSsfServiceManagement |
+ inScfToSsfTriggerManagement | inScfToSsfStatusReporting |
+ inScfToSsfRouteMonitoring}
+ ID id-rosObject-ssf
+}
+
+-- The ssf class of ROS-object describes the communication capabilities of an SSF
+-- This object can act as the initiator of the following contracts
+--
+-- inSsfToScfGeneric contract expresses the form of the service in which the SSF,
+-- a ROS-object of class ssf, initiates the generic triggering approach contract.
+-- This dialogue is initiated by the SSF with the InitialDP Operation.
+-- inSsfToScfDpSpecific contract expresses the form of the service in which the SSF,
+-- a ROS-object of class ssf, initiates the DP specific approach contract.
+-- This dialogue is initiated by the SSF with the DP specific Initial Operations.
+-- inAssistHandoffSsfToScf contract expresses the form of the service in which the SSF,
+-- a ROS-object of class ssf, initiates the Assist or Hand-off contract.
+-- This dialogue is initiated by the SSF with the AssistRequestInstructions Operation.
+-- inSsfToScfServiceManagement contract expresses the form of the service in which the SSF,
+-- a ROS-object of class ssf, initiates ServiceManagement related contract for reporting
+-- service Management results. This dialogue is initiated/ended by the SSF with
+-- the ServicefilteringResponse Operation.
+-- inSsfToScfRouteMonitoring contract expresses the form of the service in which the SSF,
+-- a ROS-object of class ssf, initiates the reporting of route monitoring. This dialogue is
+-- initiated/ended by the SSF with the monitorRouteReport Operation
+-- This object can act as the responder of the following contracts
+--
+-- inScfToSsfGeneric contract expresses the form of the service in which the SSF,
+-- a ROS-object of class ssf, responds to the generic messaging approach for
+-- the SCF Initiate Call Attempt contract. This dialogue is initiated by the SCF with
+-- the InitiateCallAttempt or CreateCallSegmentAssociation, Generic case.
+-- inScfToSsfDpSpecific contract expresses the form of the service in which the SSF,
+-- a ROS-object of class ssf, responds to theDP specific messaging approach for the
+-- SCF Initiate Call Attempt contract. This dialogue is initiated by the SCF with
+-- the InitiateCallAttempt, DP Specific case.
+-- inScfToSsfINTrafficManagement contract expresses the form of service in which the SSF,
+-- a ROS object of class ssf, responds to theIN Traffic Management related contract.
+-- This dialogue is initiated by the SCF with the CallGap Operation
+-- inScfToSsfTrafficManagement contract expresses the form of service in which the SSF,
+-- a ROS object of class ssf, responds to the Traffic Management related contract.
+-- This dialogue is initiated by the SCF with the CallFiltering Operation
+-- inScfToSsfServiceManagement contract expresses the form of service in which the SSF,
+-- a ROS object of class ssf, responds to the Service Management related contract.
+-- This dialogue is initiated by the SCF with the ActivateServiceFiltering Operation
+-- inScfToSsfTriggerManagement contract expresses the form of service in which the SSF,
+-- a ROS object of class ssf, responds to the Trigger Management related contract.
+-- This dialogue is initiated by the SCF with the ManageTriggerData Operation
+-- inScfToSsfStatusReporting contract expresses the form of service in which the SSF,
+-- a ROS object of class ssf, responds to the Status Reporting related contract.
+-- This dialogue is initiated by the SCF with the StatusReporting Operations.
+-- inScfToSsfRouteMonitoring contract expresses the form of the service in which the SSF,
+-- a ROS-object of class ssf ,responds to the route monitoring request.
+-- This dialogue is initiated by the SCF with the monitorRouteRequest Operation.
+srf ROS-OBJECT-CLASS ::= {
+ INITIATES {srf-scf-contract}
+ ID id-rosObject-srf
+}
+
+-- The srf class of ROS-object describes the communication capabilities of an SRF
+-- This object can act as the initiator of the following contract
+--
+-- srf-scf-contract contract expresses the form of service in which the SRF, a ROS-object of class srf,
+-- initiates the srf related contract. This dialogue is initiated by the SRF with
+-- the AssistRequestInstruction Operation
+cusf ROS-OBJECT-CLASS ::= {
+ INITIATES {cusfscfDPSpecificContract | cusfscfGenericContract}
+ RESPONDS {scfcusfDPSpecificContract | scfcusfGenericContract}
+ ID id-rosObject-cusf
+}
+
+-- The cusf class of ROS-object describes the communication capabilities of an CUSF
+-- This object can act as the initiator of the following contracts
+--
+--cusfscfDPSpecificContract expresses the form of the service in which the CUSF,
+-- a ROS-object of class cusf, initiates the DP specific approach contract by using a DP specific operation.
+-- cusfscfGenericContract expresses the form of the service in which the CUSF,
+-- a ROS-object of class cusf, initiates the generic approach contract by using
+-- an InitialAssociationDP operation.
+--
+-- This object can act as the responder of the following contracts
+--
+--scfcusfDPSpecificContract expresses the form of the service in which the CUSF,
+-- a ROS-object of class cusf, responds the DP specific approach contract initiates by the SCF
+-- using an InitiateAssociation operation.
+-- scfcusfGenericContract expresses the form of the contract in which the CUSF,
+-- a ROS-object of class cusf, responds the generic approach contract initiates by the SCF
+-- using an InitiateAssociation operation.
+scf ROS-OBJECT-CLASS ::= {
+ INITIATES
+ {inScfToSsfGeneric | inScfToSsfDpSpecific | inScfToSsfINTrafficManagement |
+ inScfToSsfTrafficManagement | inScfToSsfServiceManagement |
+ inScfToSsfTriggerManagement | inScfToSsfStatusReporting |
+ inScfToSsfRouteMonitoring |
+ -- scf to sdf contracts
+ dapContract | dapExecuteContract |
+ -- scf to scf contracts
+ scfc-scfsContract | scfs-scfcContract | dsspContract |
+ -- tfc contract (scf to scf)
+ tfcContract |
+ -- scf to cusf contracts
+ scfcusfDPSpecificContract | scfcusfGenericContract}
+ RESPONDS
+ {inSsfToScfGeneric | inSsfToScfDpSpecific | inAssistHandoffSsfToScf |
+ inSsfToScfServiceManagement | inSsfToScfRouteMonitoring |
+ -- srf to scf contracts
+ srf-scf-contract |
+ -- tfc contract (scf to scf, sdf to scf)
+ tfcContract |
+ -- scf to scf contracts
+ scfc-scfsContract | scfs-scfcContract | dsspContract |
+ -- cusf to scf contracts
+ cusfscfDPSpecificContract | cusfscfGenericContract}
+ ID id-rosObject-scf
+}
+
+-- The scf class of ROS-object describes the communication capabilities of an SCF
+-- This object can act as the initiator of the following contracts
+--
+-- scf to ssf contracts
+-- inScfToSsfGeneric contract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf, initiates the generic messaging approach for the SCF
+-- Initiate Call Attempt contract. This dialogue is initiated by the SCF with the InitiateCallAttempt
+-- or CreateCallSegmentAssociation, Generic case.
+-- inScfToSsfDpSpecific contract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf, initiates theDP specific messaging approach for the SCF Initiate Call Attempt
+-- contract. This dialogue is initiated by the SCF with the InitiateCallAttempt, DP Specific case.
+-- inScfToSsfINTrafficManagement contract expresses the form of service in which the SCF,
+-- a ROS object of class scf, initiates the IN Traffic Management related contract. This dialogue is initiated
+-- by the SCF with the CallGap Operation
+-- inScfToSsfTrafficManagement contract expresses the form of service in which the SCF,
+-- a ROS object of class scf, initiates the Traffic Management related contract. This dialogue is initiated
+-- by the SCF with the CallFiltering Operation
+-- inScfToSsfServiceManagement contract expresses the form of service in which the SCF,
+-- a ROS object of class scf, initiates the Service Management related contract.
+-- This dialogue is initiated by the SCF with the ActivateServiceFiltering Operation
+-- inScfToSsfTriggerManagement contract expresses the form of service in which the SCF,
+-- a ROS object of class scf, initiates the Trigger Management related contract.
+-- This dialogue is initiated by the SCF with the ManageTriggerData Operation
+-- inScfToSsfStatusReporting contract expresses the form of service in which the SCF,
+-- a ROS object of class scf, initiates the Status Reporting related contract. This dialogue is initiated
+-- by the SCF with the StatusReporting Operations.
+-- inScfToSsfRouteMonitoring contract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf initiates the route monitoring request. This dialogue is initiated
+-- by the SCF with the monitorRouteRequest Operation.
+--
+-- scf to sdf
+-- dapContract contract expresses the form of service in which the SCF, a ROS object of class scf,
+-- initiates the SCF/SDF message exchange based on a DAP protocol (Search operation and Directory
+-- Modify operations).
+-- dapExecuteContract contract expresses the form of service in which the SCF, a ROS object of class scf,
+-- initiates the SCF/SDF message exchange based on a DAP protocol (Search operation and Directory
+-- Modify operations) plus the Execute operation.
+-- tfc contract (scf to scf)
+-- tfcContract contract expresses the form of service in which the SCF, a ROS object of class scf,
+-- initiates the traffic flow control mechanism.
+--
+-- scf to scf contracts
+-- scfc-scfsContract and scfs-scfcContract contracts expresse the form of service in which the controlling or
+-- supporting SCF, a ROS object of class scf, initiate the SCF/SCF message exchange.
+-- dsspContract contract expresses the form of service in which the SCF, a ROS object of class scf,
+-- initiates the chained SCF/SCF message exchange.
+--
+-- scf to cusf contracts
+--scfcusfDPSpecificContract expresses the form of the service in which the SCF, a ROS-object of class scf,
+-- initiates the DP specific approach contract by using an InitiateAssociation operation.
+-- scfcusfGenericContract expresses the form of the contract in which the SCF, a ROS-object of class scf,
+-- initiates the generic approach contract by using an InitiateAssociation operation.
+--
+-- This object can act as the responder of the following contracts
+--
+-- ssf to scf contracts
+-- inSsfToScfGeneric contract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf, responds to the generic triggering approach contract.
+-- This dialogue is initiated by the SSF with the InitialDP Operation.
+-- inSsfToScfDpSpecific contract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf, responds to the DP specific approach contract.
+-- This dialogue is initiated by the SSF with the DP specific Initial Operations.
+-- inAssistHandoffSsfToScf contract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf, responds to the Assist or Hand-off contract.
+-- This dialogue is initiated by the SSF with the AssistRequestInstructions Operation.
+-- inSsfToScfServiceManagement contract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf, responds to the ServiceManagement related contract for reporting
+-- Service Management results.
+-- This dialogue is initiated/ended by the SSF with the ServicefilteringResponse Operation.
+-- inSsfToScfRouteMonitoring contract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf ,responds to the route monitoring procedures.
+-- This dialogue is initiated/ended by the SSF with the monitorRouteReport Operation.
+--
+-- srf to scf contracts
+-- srf-scf-contract contract expresses the form of service in which the SCF, a ROS-object of class scf,
+-- responds to the srf related contract. This dialogue is initiated by the SRF with the AssistRequestInstruction
+-- tfc contract (scf to scf, sdf to scf)
+-- tfcContract contract expresses the form of service in which the SCF, a ROS object of class scf,
+-- responds to the traffic flow control contract initiated either by the SCF or the SDF.
+--
+-- scf to scf contracts
+-- scfc-scfsContract and scfs-scfcContract contracts express the form of service in which the controlling or
+-- supporting SCF, a ROS object of class scf, responds the SCF/SCF message exchange.
+-- dsspContract contract expresses the form of service in which the SCF, a ROS object of class scf,
+-- responds to the previously initiated chained SCF/SCF message exchange.
+--
+-- cusf to scf contracts
+-- cusfscfDPSpecificContract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf, responds to the DP specific approach contract.
+-- cusfscfGenericContract expresses the form of the service in which the SCF,
+-- a ROS-object of class scf, responds to the generic approach contract.
+sdf ROS-OBJECT-CLASS ::= {
+ INITIATES
+ {indspContract | shadowConsumerContract | shadowSupplierContract |
+ tfcContract}
+ RESPONDS
+ {dapContract | dapExecuteContract | indspContract | shadowConsumerContract
+ | shadowSupplierContract | tfcContract}
+ ID id-rosObject-sdf
+}
+
+-- The sdf class of ROS-Object describes the communication capabilities of an SDF
+-- This object can act as the initiator of the following contracts
+-- indspContract contract expresses the form of service in which the SDF, a ROS object of class sdf,
+-- initiates the chained SCF/SDF message exchange, based on the DSP protocol.
+-- shadowConsumerContract contract expresses the form of service in which the SDF,
+-- a ROS object of class sdf, initiates the shadowing mechanism as a shadow consumer,
+-- based on the DISP protocol.
+-- shadowSupplierContract contract expresses the form of service in which the SDF,
+-- a ROS object of class sdf, initiates the shadowing mechanism as a shadow supplier,
+-- based on the DISP protocol.
+-- tfcContract contract expresses the form of service in which the SDF, a ROS object of class sdf,
+-- initiates the traffic flow control mechanism.
+-- This object can act as the responder of the following contracts
+-- dapContract contract expresses the form of service in which the SDF, a ROS object of class sdf,
+-- responds to the previously initiated SCF/SDF message exchange.
+-- dapExecuteContract contract expresses the form of service in which the SDF, a ROS object of class sdf,
+-- responds to the previously initiated SCF/SDF message exchange.
+-- indspContract contract expresses the form of service in which the SDF, a ROS object of class sdf,
+-- responds to the previously initiated chained SCF/SDF message exchange.
+-- shadowConsumerContract contract expresses the form of service in which the SDF,
+-- a ROS object of class sdf, responds to the previously initiated shadowing mechanism.
+-- shadowSupplierContract contract expresses the form of service in which the SDF,
+-- a ROS object of class sdf, responds to the previously initiated shadowing mechanism.
+-- tfcContract contract expresses the form of service in which the SDF, a ROS object of class sdf,
+-- responds to the traffic flow control initiated by the SDF.
+-- Definition of the extension class
+EXTENSION ::= CLASS {
+ &ExtensionType ,
+ &criticality CriticalityType DEFAULT ignore,
+ &id Code
+}
+WITH SYNTAX {
+ EXTENSION-SYNTAX &ExtensionType
+ [CRITICALITY &criticality]
+ IDENTIFIED BY &id
+}
+
+-- 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 information object class:
+--
+-- SomeNetworkSpecificIndicator EXTENSION ::= {
+-- EXTENSION-SYNTAX BOOLEAN
+-- CRITICALITY abort
+-- IDENTIFIED BY local : 1
+-- }
+-- Example of transfer syntax, using the ExtensionField datatype as specified in section 4.1.
+-- 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.
+firstExtension EXTENSION ::= {
+ EXTENSION-SYNTAX NULL
+ CRITICALITY ignore
+ IDENTIFIED BY local:1
+}
+
+-- firstExtension is just an example.
+SupportedExtensions EXTENSION ::=
+ {firstExtension, ...
+ -- full set of network operator extensions --}
+
+-- SupportedExtension is the full set of the network operator extensions.
+inUnbind OPERATION ::= {RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+}
+
+emptyConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND emptyBind
+ UNBIND inUnbind
+ RESPONDER UNBIND TRUE
+ ID id-package-emptyConnection
+}
+
+EmptyReturnable OPERATION ::=
+ {...}
+
+COMMON-BOUNDS ::= CLASS {&numOfExtensions INTEGER OPTIONAL
+}WITH SYNTAX {[NUM-OF-EXTENSIONS &numOfExtensions]
+}
+
+-- The following instance of the parameter bound is just an example
+networkSpecificBoundSet COMMON-BOUNDS ::= {NUM-OF-EXTENSIONS 1
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-common-datatypes.asn b/epan/dissectors/asn1/inap/IN-common-datatypes.asn
new file mode 100644
index 0000000000..a1c2fc7d7d
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-common-datatypes.asn
@@ -0,0 +1,40 @@
+-- Module IN-common-datatypes (Q.1248.1:07/2001)
+IN-common-datatypes {itu-t recommendation q 1248 modules(1)
+ in-common-datatypes(1) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ common-classes
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ EXTENSION, COMMON-BOUNDS, SupportedExtensions
+ FROM IN-common-classes common-classes;
+
+CriticalityType ::= ENUMERATED {ignore(0), abort(1)}
+
+Extensions{COMMON-BOUNDS:b1} ::=
+ SEQUENCE SIZE (1..b1.&numOfExtensions) OF ExtensionField
+
+ExtensionField ::= SEQUENCE {
+ type EXTENSION.&id({SupportedExtensions}),
+ -- shall identify the value of an EXTENSION type
+ criticality CriticalityType DEFAULT ignore,
+ value [1] EXTENSION.&ExtensionType({SupportedExtensions}{@type})
+}
+
+--This parameter indicates an extension of an argument data type. Its content is network operator specific
+Integer4 ::= INTEGER(0..2147483647)
+
+InvokeID ::= INTEGER(-128..127)
+
+UnavailableNetworkResource ::= ENUMERATED {
+ unavailableResources(0), componentFailure(1),
+ basicCallProcessingException(2), resourceStatusFailure(3), endUserFailure(4),
+ screening(5)}
+
+-- Indicates the network resource that failed
+-- Note that in IN CS4 the screening value can only be used by the SCF.
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-errorcodes.asn b/epan/dissectors/asn1/inap/IN-errorcodes.asn
new file mode 100644
index 0000000000..cd867a0b21
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-errorcodes.asn
@@ -0,0 +1,57 @@
+-- Module IN-errorcodes (Q.1248.1:07/2001)
+IN-errorcodes {itu-t recommendation q 1248 modules(1) in-errorcodes(4)
+ version1(0)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ ros-InformationObjects
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ Code
+ FROM Remote-Operations-Information-Objects ros-InformationObjects;
+
+errcode-canceled Code ::= local:0
+
+errcode-cancelFailed Code ::= local:1
+
+errcode-eTCFailed Code ::= local:3
+
+errcode-improperCallerResponse Code ::= local:4
+
+errcode-missingCustomerRecord Code ::= local:6
+
+errcode-missingParameter Code ::= local:7
+
+errcode-parameterOutOfRange Code ::= local:8
+
+errcode-requestedInfoError Code ::= local:10
+
+errcode-systemFailure Code ::= local:11
+
+errcode-taskRefused Code ::= local:12
+
+errcode-unavailableResource Code ::= local:13
+
+errcode-unexpectedComponentSequence Code ::= local:14
+
+errcode-unexpectedDataValue Code ::= local:15
+
+errcode-unexpectedParameter Code ::= local:16
+
+errcode-unknownLegID Code ::= local:17
+
+errcode-unknownResource Code ::= local:18
+
+-- Error codes for the IN CS2 error types follow
+errcode-scfReferral Code ::= local:21
+
+errcode-scfTaskRefused Code ::= local:22
+
+errcode-chainingRefused Code ::= local:23
+-- WS:Duplicate
+--errcode-executionError Code ::= local:10
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-errortypes.asn b/epan/dissectors/asn1/inap/IN-errortypes.asn
new file mode 100644
index 0000000000..ec9cbbc258
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-errortypes.asn
@@ -0,0 +1,195 @@
+-- Module IN-errortypes (Q.1248.1:07/2001)
+IN-errortypes {itu-t recommendation q 1248 modules(1) in-errortypes(2)
+ version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ ros-InformationObjects, common-datatypes, errorcodes, sdf-sdf-Operations,
+ scf-scf-classes, ds-UsefulDefinitions, spkmGssTokens, tc-Messages
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ directoryAbstractService, distributedOperations, enhancedSecurity
+ FROM UsefulDefinitions ds-UsefulDefinitions
+ OPTIONALLY-PROTECTED{}, dirqop
+ FROM EnhancedSecurity enhancedSecurity
+ CommonResults, ServiceProblem, SecurityProblem, SecurityParameters, Versions
+ FROM DirectoryAbstractService directoryAbstractService
+ scfqop
+ FROM IN-SCF-SCF-Classes scf-scf-classes
+ AccessPointInformation
+ FROM DistributedOperations distributedOperations
+ SPKM-ERROR
+ FROM SpkmGssTokens spkmGssTokens
+ ERROR
+ FROM Remote-Operations-Information-Objects ros-InformationObjects
+ InvokeID, UnavailableNetworkResource
+ FROM IN-common-datatypes common-datatypes
+ errcode-canceled, errcode-cancelFailed, errcode-chainingRefused,
+ errcode-eTCFailed, errcode-executionError, errcode-improperCallerResponse,
+ errcode-missingCustomerRecord, errcode-missingParameter,
+ errcode-parameterOutOfRange, errcode-requestedInfoError,
+ errcode-scfTaskRefused, errcode-scfReferral, errcode-systemFailure,
+ errcode-taskRefused, errcode-unavailableResource,
+ errcode-unexpectedComponentSequence, errcode-unexpectedDataValue,
+ errcode-unexpectedParameter, errcode-unknownLegID, errcode-unknownResource
+ FROM IN-errorcodes errorcodes;
+
+-- TYPE DEFINITION FOR IN CS4 ERRORS FOLLOWS
+canceled ERROR ::= {CODE errcode-canceled
+}
+
+-- The operation has been cancelled.
+cancelFailed ERROR ::= {
+ PARAMETER
+ SEQUENCE {problem
+ [0] ENUMERATED {unknownOperation(0), tooLate(1),
+ operationNotCancellable(2)},
+ operation [1] InvokeID}
+ CODE errcode-cancelFailed
+}
+
+-- The operation failed to be cancelled.
+chainingRefused ERROR ::= {CODE errcode-chainingRefused
+}
+
+eTCFailed ERROR ::= {CODE errcode-eTCFailed
+}
+
+-- The establish temporary connection failed.
+-- WS:Duplicates error-code
+--executionError ERROR ::= {
+-- PARAMETER OPTIONALLY-PROTECTED
+-- {SET {problem [0] EXPLICIT ExecutionProblem,
+-- COMPONENTS OF CommonResults}
+-- dirqop.&dirErrors-QOP},
+-- CODE errcode-executionError
+--}
+
+-- The executionError is returned by an Execute operation in the case of the operation is not completing.
+--ExecutionProblem ::= INTEGER {missingInputValues(1), executionFailure(2)
+--}
+
+-- The executeProblem identifies the cause of the execute operation failure:
+-- missingInputValues is returned in the input-values field contains the wrong input
+-- information for the method being executed.
+-- executionFailure is returned when the method fails to complete correctly. This is caused by
+-- .the failure of one of the DAP operations contained within the method.
+improperCallerResponse ERROR ::= {CODE errcode-improperCallerResponse
+}
+
+-- The caller response was not as expected.
+missingCustomerRecord ERROR ::= {CODE errcode-missingCustomerRecord
+}
+
+-- The Service Logic Program could not be found in the SCF.
+missingParameter ERROR ::= {CODE errcode-missingParameter
+}
+
+-- An expected optional parameter was not received.
+parameterOutOfRange ERROR ::= {CODE errcode-parameterOutOfRange
+}
+
+-- The parameter was not as expected (e.g. missing or out of range).
+requestedInfoError ERROR ::= {
+ PARAMETER
+ ENUMERATED {unknownRequestedInfo(1), requestedInfoNotAvailable(2)
+ -- other values FFS
+ }
+ CODE errcode-requestedInfoError
+}
+
+-- The requested information cannot be found.
+-- WS:CODE missing comment it out
+--scfBindFailure ERROR ::= {PARAMETER FailureReason
+--}
+
+--FailureReason ::= CHOICE {
+-- systemFailure [0] UnavailableNetworkResource,
+-- scfTaskRefused [1] ScfTaskRefusedParameter,
+-- securityError
+-- [2] SET {problem [0] SecurityProblem,
+-- spkmInfo [1] SPKM-ERROR}
+--}
+
+scfTaskRefused ERROR ::= {
+ PARAMETER ScfTaskRefusedParameter
+ CODE errcode-scfTaskRefused
+}
+
+ScfTaskRefusedParameter ::=
+-- OPTIONALLY-PROTECTED
+ SEQUENCE {reason
+ ENUMERATED {generic(0), unobtainable(1), congestion(2)
+ --other values FFS
+ },
+ securityParameters [1] SecurityParameters OPTIONAL
+ }--, scfqop.&scfErrorsQOP}
+
+scfReferral ERROR ::= {
+ PARAMETER ReferralParameter
+ CODE errcode-scfReferral
+}
+
+ReferralParameter ::=
+-- OPTIONALLY-PROTECTED
+ SEQUENCE {tryhere [0] AccessPointInformation,
+ securityParameters [1] SecurityParameters OPTIONAL
+ }--, scfqop.&scfErrorsQOP}
+
+systemFailure ERROR ::= {
+ PARAMETER UnavailableNetworkResource
+ CODE errcode-systemFailure
+}
+
+-- The operation could not be completed due to e.g. a system failure at the serving physical entity, the
+-- unavailability of the required resource or due to screening.
+taskRefused ERROR ::= {
+ PARAMETER
+ ENUMERATED {generic(0), unobtainable(1), congestion(2)
+ --other values FFS
+ }
+ CODE errcode-taskRefused
+}
+
+-- An entity normally capable of the task requested cannot or chooses not to perform the task at this
+-- time. This includes error situations like congestion and unobtainable address as used in e.g. the
+-- connect operation.
+-- WS:CODE missing comment it out
+-- tfcBindError ERROR ::= {
+-- PARAMETER
+-- SET {versions [0] Versions DEFAULT {v1},
+-- error
+-- CHOICE {serviceError [1] ServiceProblem,
+-- securityError [2] SecurityProblem}}
+-- }
+
+unavailableResource ERROR ::= {CODE errcode-unavailableResource
+}
+
+-- A requested resource is not available at the serving entity.
+unexpectedComponentSequence ERROR ::= {
+ CODE errcode-unexpectedComponentSequence
+}
+
+-- An incorrect sequence of Components was received (e.g. "DisconnectForwardConnection"
+-- followed by "PlayAnnouncement").
+unexpectedDataValue ERROR ::= {CODE errcode-unexpectedDataValue
+}
+
+-- The data value was not as expected (e.g. routing number expected but billing number received)
+unexpectedParameter ERROR ::= {CODE errcode-unexpectedParameter
+}
+
+-- A parameter received was not expected.
+unknownLegID ERROR ::= {CODE errcode-unknownLegID
+}
+
+-- Leg not known to the SSF.
+unknownResource ERROR ::= {CODE errcode-unknownResource
+}
+
+-- Resource whose status is being requested is not known to the serving entity.
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-object-identifiers.asn b/epan/dissectors/asn1/inap/IN-object-identifiers.asn
new file mode 100644
index 0000000000..1481ca7787
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-object-identifiers.asn
@@ -0,0 +1,720 @@
+-- Module IN-object-identifiers (Q.1248.1:07/2001)
+IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- For Modules from TCAP, ROS,
+tc-Messages OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+tc-NotationExtensions OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 775 modules(2) notation-extension(4) version1(1)}
+
+ros-InformationObjects OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+ros-genericPDUs OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+
+ros-UsefulDefinitions OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t remote-operations(4) useful-definitions(7) version1(0)}
+
+sese-APDUs OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t genericULS(20) modules(1) seseAPDUs(6)}
+
+guls-Notation OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t genericULS(20) modules(1) notation(1)}
+
+guls-SecurityTransformations OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t genericULS(20) modules(1) gulsSecurityTransformations(3)}
+
+guls-DirectoryProtectionMappings OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t genericULS(20) modules(1) dirProtectionMappings(4)}
+
+ds-UsefulDefinitions OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+
+spkmGssTokens OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkmGssTokens(10)}
+
+-- For IN-CS1 Modules
+contexts OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 1218 modules(0) contexts(8) selectedContexts(1)
+ version(1)}
+
+-- For IN CS4 Modules
+id OBJECT IDENTIFIER ::= {itu-t recommendation q 1248}
+
+modules OBJECT IDENTIFIER ::= {id modules(1)}
+
+id-ac OBJECT IDENTIFIER ::= {id ac(3)}
+
+id-at OBJECT IDENTIFIER ::= {id at(4)}
+
+id-as OBJECT IDENTIFIER ::= {id as(5)}
+
+id-oc OBJECT IDENTIFIER ::= {id oc(6)}
+
+id-mt OBJECT IDENTIFIER ::= {id mt(7)}
+
+id-sf OBJECT IDENTIFIER ::= {id sf(11)}
+
+id-soa OBJECT IDENTIFIER ::= {id soa(21)}
+
+id-aca OBJECT IDENTIFIER ::= {id aca(24)}
+
+id-rosObject OBJECT IDENTIFIER ::= {id rosObject(25)}
+
+id-contract OBJECT IDENTIFIER ::= {id contract(26)}
+
+id-package OBJECT IDENTIFIER ::= {id package(27)}
+
+id-avc OBJECT IDENTIFIER ::= {id avc(29)}
+
+object-identifiers OBJECT IDENTIFIER ::=
+ {modules in-object-identifiers(0) version1(0)}
+
+common-datatypes OBJECT IDENTIFIER ::=
+ {modules in-common-datatypes(1) version1(0)}
+
+errortypes OBJECT IDENTIFIER ::= {modules in-errortypes(2) version1(0)}
+
+operationcodes OBJECT IDENTIFIER ::= {modules in-operationcodes(3) version1(0)}
+
+errorcodes OBJECT IDENTIFIER ::= {modules in-errorcodes(4) version1(0)}
+
+common-classes OBJECT IDENTIFIER ::= {modules in-common-classes(5) version1(0)}
+
+ssf-scf-datatypes OBJECT IDENTIFIER ::=
+ {modules in-ssf-scf-datatypes(6) version1(0)}
+
+ssf-scf-classes OBJECT IDENTIFIER ::=
+ {modules in-ssf-scf-classes(7) version1(0)}
+
+ssf-scf-Operations OBJECT IDENTIFIER ::=
+ {modules in-ssf-scf-ops-args(8) version1(0)}
+
+ssf-scf-Protocol OBJECT IDENTIFIER ::=
+ {modules in-ssf-scf-pkgs-contracts-acs(9) version1(0)}
+
+scf-srf-datatypes OBJECT IDENTIFIER ::=
+ {modules in-scf-srf-datatypes(10) version1(0)}
+
+scf-srf-classes OBJECT IDENTIFIER ::=
+ {modules in-scf-srf-classes(11) version1(0)}
+
+scf-srf-Operations OBJECT IDENTIFIER ::=
+ {modules in-scf-srf-ops-args(12) version1(0)}
+
+scf-srf-Protocol OBJECT IDENTIFIER ::=
+ {modules in-scf-srf-pkgs-contracts-acs(13) version1(0)}
+
+scf-sdf-datatypes OBJECT IDENTIFIER ::=
+ {modules in-scf-sdf-datatypes(14) version1(0)}
+
+scf-sdf-classes OBJECT IDENTIFIER ::=
+ {modules in-scf-sdf-classes(15) version1(0)}
+
+scf-sdf-Operations OBJECT IDENTIFIER ::=
+ {modules in-scf-sdf-ops-args(16) version1(0)}
+
+scf-sdf-Protocol OBJECT IDENTIFIER ::=
+ {modules in-scf-sdf-pkgs-contracts-acs(17) version1(0)}
+
+sdf-sdf-Operations OBJECT IDENTIFIER ::=
+ {modules in-sdf-sdf-ops-args(18) version1(0)}
+
+sdf-sdf-Protocol OBJECT IDENTIFIER ::=
+ {modules in-sdf-sdf-pkgs-contracts-acs(19) version1(0)}
+
+scf-scf-datatypes OBJECT IDENTIFIER ::=
+ {modules in-scf-scf-datatypes(20) version1(0)}
+
+scf-scf-classes OBJECT IDENTIFIER ::=
+ {modules in-scf-scf-classes(21) version1(0)}
+
+scf-scf-Operations OBJECT IDENTIFIER ::=
+ {modules in-scf-scf-ops-args(22) version1(0)}
+
+scf-scf-Protocol OBJECT IDENTIFIER ::=
+ {modules in-scf-scf-pkgs-contracts-acs(23) version1(0)}
+
+scf-cusf-datatypes OBJECT IDENTIFIER ::=
+ {modules in-scf-cusf-datatypes(24) version1(0)}
+
+scf-cusf-classes OBJECT IDENTIFIER ::=
+ {modules in-scf-cusf-classes(25) version1(0)}
+
+scf-cusf-Operations OBJECT IDENTIFIER ::=
+ {modules in-scf-cusf-ops-args(26) version1(0)}
+
+scf-cusf-Protocol OBJECT IDENTIFIER ::=
+ {modules in-scf-cusf-pkgs-contracts-acs(27) version1(0)}
+
+scf-sdf-Additional-Definitions OBJECT IDENTIFIER ::=
+ {modules in-scf-sdf-additional-definitions(28) version1(0)}
+
+-- Application Context
+-- SSF/SCF Application Context
+id-ac-ssf-scfGenericAC OBJECT IDENTIFIER ::=
+ {id-ac ssf-scfGenericAC(4) version1(0)}
+
+id-ac-ssf-scfDPSpecificAC OBJECT IDENTIFIER ::=
+ {id-ac ssf-scfDPSpecificAC(5) version1(0)}
+
+id-ac-ssf-scfAssistHandoffAC OBJECT IDENTIFIER ::=
+ {id-ac ssf-scfAssistHandoffAC(6) version1(0)}
+
+id-ac-ssf-scfServiceManagementAC OBJECT IDENTIFIER ::=
+ {id-ac ssf-scfServiceManagementAC(7) version1(0)}
+
+id-ac-scf-ssfGenericAC OBJECT IDENTIFIER ::=
+ {id-ac scf-ssfGenericAC(8) version1(0)}
+
+id-ac-scf-ssfDPSpecificAC OBJECT IDENTIFIER ::=
+ {id-ac scf-ssfDPSpecificAC(9) version1(0)}
+
+id-ac-scf-ssfINTrafficManagementAC OBJECT IDENTIFIER ::=
+ {id-ac scf-ssfINTrafficManagementAC(10) version1(0)}
+
+id-ac-scf-ssfServiceManagementAC OBJECT IDENTIFIER ::=
+ {id-ac scf-ssfServiceManagementAC(11) version1(0)}
+
+id-ac-scf-ssfStatusReportingAC OBJECT IDENTIFIER ::=
+ {id-ac scf-ssfStatusReportingAC(12) version1(0)}
+
+id-ac-scf-ssfTriggerManagementAC OBJECT IDENTIFIER ::=
+ {id-ac scf-ssfTriggerManagementAC(13) version1(0)}
+
+id-ac-scf-ssfRouteMonitoringAC OBJECT IDENTIFIER ::=
+ {id-ac scf-ssfRouteMonitorinAC(33) version1(0)}
+
+id-ac-ssf-scfRouteMonitoringAC OBJECT IDENTIFIER ::=
+ {id-ac ssf-scfRouteMonitorinAC(34) version1(0)}
+
+id-ac-scf-ssfTrafficManagementAC OBJECT IDENTIFIER ::=
+ {id-ac scf-ssfTrafficManagementAC(35) version1(0)}
+
+-- SRF/SCF Application Context
+id-ac-srf-scfAC OBJECT IDENTIFIER ::=
+ {id-ac srf-scfAC(14) version1(0)}
+
+--SCF-SDF - application contexts
+id-ac-indirectoryAccessAC OBJECT IDENTIFIER ::=
+ {id-ac indirectoryAccessAC(1) version1(0)}
+
+id-ac-indirectoryAccessWith3seAC OBJECT IDENTIFIER ::=
+ {id-ac indirectoryAccessWith3seAC(2) version1(0)}
+
+id-ac-inExtendedDirectoryAccessAC OBJECT IDENTIFIER ::=
+ {id-ac inExtendedDirectoryAccessAC(3) version1(0)}
+
+id-ac-inExtendedDirectoryAccessWith3seAC OBJECT IDENTIFIER ::=
+ {id-ac inExtendedDirectoryAccessWith3seAC(27) version1(0)}
+
+id-ac-trafficFlowControlAC OBJECT IDENTIFIER ::=
+ {id-ac trafficFlowControlAC(28) version1(0)}
+
+--SDF-SDF Application Contexts
+id-ac-indirectorySystemAC OBJECT IDENTIFIER ::=
+ {id-ac indirectorySystemAC(15) version1(0)}
+
+id-ac-inShadowSupplierInitiatedAC OBJECT IDENTIFIER ::=
+ {id-ac inShadowSupplierInitiatedAC(16) version1(0)}
+
+id-ac-inShadowConsumerInitiatedAC OBJECT IDENTIFIER ::=
+ {id-ac inShadowConsumerInitiatedAC(17) version1(0)}
+
+id-ac-indirectorySystemWith3seAC OBJECT IDENTIFIER ::=
+ {id-ac indirectorySystemWith3seAC(18) version1(0)}
+
+id-ac-inShadowSupplierInitiatedWith3seAC OBJECT IDENTIFIER ::=
+ {id-ac inShadowSupplierInitiatedWith3seAC(19) version1(0)}
+
+id-ac-inShadowConsumerInitiatedWith3seAC OBJECT IDENTIFIER ::=
+ {id-ac inShadowConsumerInitiatedWith3seAC(20) version1(0)}
+
+-- SCF/SCF Application Context
+id-ac-scfc-scfsOperationsAC OBJECT IDENTIFIER ::=
+ {id-ac scfc-scfsOperationsAC(21) version1(0)}
+
+id-ac-distributedSCFSystemAC OBJECT IDENTIFIER ::=
+ {id-ac distributedSCFSystemAC(22) version1(0)}
+
+id-ac-scfc-scfsOperationsWith3seAC OBJECT IDENTIFIER ::=
+ {id-ac scfc-scfsOperationsWith3seAC(23) version1(0)}
+
+id-ac-distributedSCFSystemWith3seAC OBJECT IDENTIFIER ::=
+ {id-ac distributedSCFSystemWith3seAC(24) version1(0)}
+
+id-ac-scfs-scfcOperationsAC OBJECT IDENTIFIER ::=
+ {id-ac scfs-scfcOperationsAC(31) version1(0)}
+
+id-ac-scfs-scfcOperationsWith3seAC OBJECT IDENTIFIER ::=
+ {id-ac scfs-scfcOperationsWith3seAC(32) version1(0)}
+
+-- CUSF/SCF Application Context
+id-acscfcusfDPSpecific OBJECT IDENTIFIER ::=
+ {id-ac scf-cusf-DPSpecific(25) version1(0)}
+
+id-accusfscfDPSpecific OBJECT IDENTIFIER ::=
+ {id-ac cusf-scf-DPSpecific(26) version1(0)}
+
+id-acscfcusfGeneric OBJECT IDENTIFIER ::=
+ {id-ac scf-cusf-Generic(29) version1(0)}
+
+id-accusfscfGeneric OBJECT IDENTIFIER ::=
+ {id-ac cusf-scf-Generic(30) version1(0)}
+
+-- Attributes
+-- SCF/SDF attributes
+id-at-securityFacilityId OBJECT IDENTIFIER ::=
+ {id-at securityFacilityId(1)}
+
+id-at-secretKey OBJECT IDENTIFIER ::= {id-at secretKey(2)}
+
+id-at-identifierList OBJECT IDENTIFIER ::= {id-at identifierList(3)}
+
+id-at-bindLevelIfOK OBJECT IDENTIFIER ::= {id-at bindLevelIfOK(4)}
+
+id-at-lockSession OBJECT IDENTIFIER ::= {id-at lockSession(5)}
+
+id-at-failureCounter OBJECT IDENTIFIER ::= {id-at failureCounter(6)}
+
+id-at-maxAttempts OBJECT IDENTIFIER ::= {id-at maxAttempts(7)}
+
+id-at-currentList OBJECT IDENTIFIER ::= {id-at currentList(8)}
+
+id-at-stockId OBJECT IDENTIFIER ::= {id-at stockId(9)}
+
+id-at-source OBJECT IDENTIFIER ::= {id-at source(10)}
+
+id-at-sizeOfRestocking OBJECT IDENTIFIER ::= {id-at sizeOfRestocking(11)}
+
+id-at-challengeResponse OBJECT IDENTIFIER ::= {id-at challengeResponse(12)}
+
+-- Abstract Syntaxes
+-- SSF/SCF Abstract Syntaxes
+id-as-ssf-scfGenericAS OBJECT IDENTIFIER ::=
+ {id-as ssf-scfGenericAS(4)}
+
+id-as-ssf-scfDpSpecificAS OBJECT IDENTIFIER ::= {id-as ssf-scfDpSpecificAS(5)}
+
+id-as-assistHandoff-ssf-scfAS OBJECT IDENTIFIER ::=
+ {id-as assistHandoff-ssf-scfAS(6)}
+
+id-as-scf-ssfGenericAS OBJECT IDENTIFIER ::= {id-as scf-ssfGenericAS(7)}
+
+id-as-scf-ssfDpSpecificAS OBJECT IDENTIFIER ::= {id-as scf-ssfDpSpecificAS(8)}
+
+id-as-scf-ssfINTrafficManagementAS OBJECT IDENTIFIER ::=
+ {id-as scf-ssfINTrafficManagementAS(9)}
+
+id-as-scf-ssfServiceManagementAS OBJECT IDENTIFIER ::=
+ {id-as scf-ssfServiceManagementAS(10)}
+
+id-as-ssf-scfServiceManagementAS OBJECT IDENTIFIER ::=
+ {id-as ssf-scfServiceManagementAS(11)}
+
+id-as-scf-ssfStatusReportingAS OBJECT IDENTIFIER ::=
+ {id-as scf-ssfStatusReportingAS(12)}
+
+id-as-scf-ssfTriggerManagementAS OBJECT IDENTIFIER ::=
+ {id-as scf-ssfTriggerManagementAS(13)}
+
+id-as-scf-ssfRouteMonitoringAS OBJECT IDENTIFIER ::=
+ {id-as scf-ssfRouteMonitoringAS(31)}
+
+id-as-ssf-scfRouteMonitoringAS OBJECT IDENTIFIER ::=
+ {id-as ssf-scfRouteMonitoringAS(32)}
+
+id-as-scf-ssfTrafficManagementAS OBJECT IDENTIFIER ::=
+ {id-as scf-ssfTrafficManagementAS(33)}
+
+-- SRF/SCF Abstract Syntaxes
+id-as-basic-srf-scf OBJECT IDENTIFIER ::=
+ {id-as basic-srf-scf(14)}
+
+id-as-basic-scf-srf OBJECT IDENTIFIER ::= {id-as basic-scf-srf(15)}
+
+-- SCF-SDF - abstract syntaxes
+id-as-indirectoryOperationsAS OBJECT IDENTIFIER ::=
+ {id-as indirectoryOperationsAS(1)}
+
+id-as-indirectoryBindingAS OBJECT IDENTIFIER ::=
+ {id-as indirectoryBindingAS(2)}
+
+id-as-inExtendedDirectoryOperationsAS OBJECT IDENTIFIER ::=
+ {id-as inExtendedDirectoryOperationsAS(3)}
+
+id-as-inSESEAS OBJECT IDENTIFIER ::= {id-as inSESEAS(25)}
+
+id-as-tfcOperationsAS OBJECT IDENTIFIER ::= {id-as tfcOperationsAS(26)}
+
+id-as-tfcBindingAS OBJECT IDENTIFIER ::= {id-as tfcBindingAS(27)}
+
+-- SDF-SDF - abstract syntaxes
+id-as-indirectorySystemAS OBJECT IDENTIFIER ::=
+ {id-as indirectorySystemAS(16)}
+
+id-as-indirectoryDSABindingAS OBJECT IDENTIFIER ::=
+ {id-as indirectoryDSABindingAS(17)}
+
+id-as-indirectoryShadowAS OBJECT IDENTIFIER ::= {id-as indirectoryShadowAS(18)}
+
+id-as-indsaShadowBindingAS OBJECT IDENTIFIER ::=
+ {id-as indsaShadowBindingAS(19)}
+
+-- SCF/SCF Abstract Syntaxes
+id-as-scfc-scfsOperationsAS OBJECT IDENTIFIER ::=
+ {id-as scfc-scfsOperationsAS(20)}
+
+id-as-distributedSCFSystemAS OBJECT IDENTIFIER ::=
+ {id-as distributedSCFSystemAS(21)}
+
+id-as-scf-scfBindingAS OBJECT IDENTIFIER ::= {id-as scf-scfBindingAS(22)}
+
+id-as-scfs-scfcOperationsAS OBJECT IDENTIFIER ::=
+ {id-as scfs-scfcOperationsAS(30)}
+
+-- CUSF/SCF Abstract Syntaxes
+id-asscfcusfDPSpecific OBJECT IDENTIFIER ::=
+ {id-as scf-cusf-DPSpecific(23)}
+
+id-ascusfscfDPSpecific OBJECT IDENTIFIER ::= {id-as cusf-scf-DPSpecific(24)}
+
+id-asscfcusfGeneric OBJECT IDENTIFIER ::= {id-as scf-cusf-Generic(28)}
+
+id-ascusfscfGeneric OBJECT IDENTIFIER ::= {id-as cusf-scf-Generic(29)}
+
+-- Object Class
+-- for SCF-SDF interface, Object Class
+id-oc-securityUserInfo OBJECT IDENTIFIER ::=
+ {id-oc securityUserInfo(1)}
+
+id-oc-tokensStock OBJECT IDENTIFIER ::= {id-oc tokenStock(2)}
+
+-- Methods
+-- for SCF-SDF interface, Methods
+id-mt-verifyCredentials OBJECT IDENTIFIER ::=
+ {id-mt verifyCredentials(1)}
+
+id-mt-conformCredentials OBJECT IDENTIFIER ::= {id-mt conformCredentials(2)}
+
+id-mt-provideTokens OBJECT IDENTIFIER ::= {id-mt provideTokens(3)}
+
+id-mt-fillSecurityTokens OBJECT IDENTIFIER ::= {id-mt fillSecurityTokens(4)}
+
+-- Security Facility
+-- for SCF-SDF interface, Security Facility
+id-sf-pwd OBJECT IDENTIFIER ::=
+ {id-sf pwd(1)}
+
+id-sf-challengeResponse OBJECT IDENTIFIER ::= {id-sf challengeResponse(2)}
+
+id-sf-onAirSubscription OBJECT IDENTIFIER ::= {id-sf onAirSubscription(3)}
+
+-- for SDF-SDF interface, SDF Attributes
+id-soa-methodRuleUse OBJECT IDENTIFIER ::=
+ {id-soa methodRuleUse(1)}
+
+id-aca-prescriptiveACI OBJECT IDENTIFIER ::= {id-aca prescriptiveACI(4)}
+
+id-aca-entryACI OBJECT IDENTIFIER ::= {id-aca entryACI(5)}
+
+id-aca-subentryACI OBJECT IDENTIFIER ::= {id-aca subentryACI(6)}
+
+-- for ac, as, rosObject, contract and package, the values are identical to Q1228
+-- ROS Objects
+id-rosObject-scf OBJECT IDENTIFIER ::=
+ {id-rosObject scf(1)}
+
+id-rosObject-ssf OBJECT IDENTIFIER ::= {id-rosObject ssf(2)}
+
+id-rosObject-srf OBJECT IDENTIFIER ::= {id-rosObject srf(3)}
+
+id-rosObject-sdf OBJECT IDENTIFIER ::= {id-rosObject sdf(4)}
+
+id-rosObject-cusf OBJECT IDENTIFIER ::= {id-rosObject cusf(5)}
+
+-- Contracts
+-- SSF/SCF Contracts
+id-inSsfToScfGeneric OBJECT IDENTIFIER ::=
+ {id-contract inSsfToScfGeneric(3)}
+
+id-inSsfToScfDpSpecific OBJECT IDENTIFIER ::=
+ {id-contract inSsfToScfDpSpecific(4)}
+
+id-inAssistHandoffSsfToScf OBJECT IDENTIFIER ::=
+ {id-contract inAssistHandoffSsfToScf(5)}
+
+id-inScfToSsfGeneric OBJECT IDENTIFIER ::= {id-contract inScfToSsfGeneric(6)}
+
+id-inScfToSsfDpSpecific OBJECT IDENTIFIER ::=
+ {id-contract inScfToSsfDpSpecific(7)}
+
+id-inScfToSsfINTrafficManagement OBJECT IDENTIFIER ::=
+ {id-contract inScfToSsfINTrafficManagement(8)}
+
+id-inScfToSsfServiceManagement OBJECT IDENTIFIER ::=
+ {id-contract inScfToSsfServiceManagement(9)}
+
+id-inSsfToScfServiceManagement OBJECT IDENTIFIER ::=
+ {id-contract inSsfToScfServiceManagement(10)}
+
+id-inScfToSsfStatusReporting OBJECT IDENTIFIER ::=
+ {id-contract inScfToSsfStatusReporting(11)}
+
+id-inScfToSsfTriggerManagement OBJECT IDENTIFIER ::=
+ {id-contract inScfToSsfTriggerManagement(12)}
+
+id-inScfToSsfRouteMonitoring OBJECT IDENTIFIER ::=
+ {id-contract inScfToSsfRouteMonitoring(26)}
+
+id-inSsfToScfRouteMonitoring OBJECT IDENTIFIER ::=
+ {id-contract inSsfToScfRouteMonitoring(27)}
+
+id-inScfToSsfTrafficManagement OBJECT IDENTIFIER ::=
+ {id-contract inScfToSsfTrafficManagement(28)}
+
+-- SRF/SCF Contracts
+id-contract-srf-scf OBJECT IDENTIFIER ::=
+ {id-contract srf-scf(13)}
+
+-- SCF-SDF contracts
+id-contract-dap OBJECT IDENTIFIER ::= {id-contract dap(1)}
+
+id-contract-dapExecute OBJECT IDENTIFIER ::= {id-contract dapExecute(2)}
+
+id-contract-tfc OBJECT IDENTIFIER ::= {id-contract tfc(22)}
+
+-- SDF - SDF Contracts.
+id-contract-indsp OBJECT IDENTIFIER ::=
+ {id-contract indsp(14)}
+
+id-contract-shadowConsumer OBJECT IDENTIFIER ::=
+ {id-contract shadowConsumer(15)}
+
+id-contract-shadowSupplier OBJECT IDENTIFIER ::=
+ {id-contract shadowSupplier(17)}
+
+-- SCF/SCF Contracts
+id-contract-scfc-scfs OBJECT IDENTIFIER ::=
+ {id-contract scfc-scfs(18)}
+
+id-contract-dssp OBJECT IDENTIFIER ::= {id-contract dssp(19)}
+
+id-contract-scfs-scfc OBJECT IDENTIFIER ::= {id-contract scfs-scfc(25)}
+
+-- CUSF/SCF Contracts
+id-contract-scfcusfDPSpecific OBJECT IDENTIFIER ::=
+ {id-contract scf-cusf-DPSpecific(20)}
+
+id-contract-cusfscfDPSpecific OBJECT IDENTIFIER ::=
+ {id-contract cusf-scf-DPSpecific(21)}
+
+id-contract-scfcusfGeneric OBJECT IDENTIFIER ::=
+ {id-contract scf-cusf-Generic(23)}
+
+id-contract-cusfscfGeneric OBJECT IDENTIFIER ::=
+ {id-contract cusf-scf-Generic(24)}
+
+-- Operation Packages
+id-package-emptyConnection OBJECT IDENTIFIER ::=
+ {id-package emptyConnection(60)}
+
+-- SSF/SCF Operation Packages
+id-package-scfActivation OBJECT IDENTIFIER ::=
+ {id-package scfActivation(11)}
+
+id-package-basicBCPDP OBJECT IDENTIFIER ::= {id-package basicBCPDP(12)}
+
+id-package-advancedBCPDP OBJECT IDENTIFIER ::= {id-package advancedBCPDP(14)}
+
+id-package-srf-scfActivationOfAssist OBJECT IDENTIFIER ::=
+ {id-package srf-scfActivationOfAssist(15)}
+
+id-package-assistConnectionEstablishment OBJECT IDENTIFIER ::=
+ {id-package assistConnectionEstablishment(16)}
+
+id-package-genericDisconnectResource OBJECT IDENTIFIER ::=
+ {id-package genericDisconnectResource(17)}
+
+id-package-nonAssistedConnectionEstablishment OBJECT IDENTIFIER ::=
+ {id-package nonAssistedConnectionEstablishment(18)}
+
+id-package-connect OBJECT IDENTIFIER ::= {id-package connect(19)}
+
+id-package-callHandling OBJECT IDENTIFIER ::= {id-package callHandling(20)}
+
+id-package-bcsmEventHandling OBJECT IDENTIFIER ::=
+ {id-package bcsmEventHandling(21)}
+
+id-package-dpSpecificEventHandling OBJECT IDENTIFIER ::=
+ {id-package dpSpecificEventHandling(22)}
+
+id-package-chargingEventHandling OBJECT IDENTIFIER ::=
+ {id-package chargingEventHandling(23)}
+
+id-package-ssfCallProcessing OBJECT IDENTIFIER ::=
+ {id-package ssfCallProcessing(24)}
+
+id-package-scfCallInitiation OBJECT IDENTIFIER ::=
+ {id-package scfCallInitiation(25)}
+
+id-package-timer OBJECT IDENTIFIER ::= {id-package timer(26)}
+
+id-package-billing OBJECT IDENTIFIER ::= {id-package billing(27)}
+
+id-package-charging OBJECT IDENTIFIER ::= {id-package charging(28)}
+
+id-package-iNTrafficManagement OBJECT IDENTIFIER ::=
+ {id-package iNtrafficManagement(29)}
+
+id-package-serviceManagementActivate OBJECT IDENTIFIER ::=
+ {id-package serviceManagementActivate(30)}
+
+id-package-serviceManagementResponse OBJECT IDENTIFIER ::=
+ {id-package serviceManagementResponse(31)}
+
+id-package-callReport OBJECT IDENTIFIER ::= {id-package callReport(32)}
+
+id-package-signallingControl OBJECT IDENTIFIER ::=
+ {id-package signallingControl(33)}
+
+id-package-activityTest OBJECT IDENTIFIER ::= {id-package activityTest(34)}
+
+id-package-statusReporting OBJECT IDENTIFIER ::=
+ {id-package statusReporting(35)}
+
+id-package-cancel OBJECT IDENTIFIER ::= {id-package cancel(36)}
+
+id-package-cphResponse OBJECT IDENTIFIER ::= {id-package cphResponse(37)}
+
+id-package-entityReleased OBJECT IDENTIFIER ::= {id-package entityReleased(38)}
+
+id-package-triggerManagement OBJECT IDENTIFIER ::=
+ {id-package triggerManagement(39)}
+
+id-package-uSIHandling OBJECT IDENTIFIER ::= {id-package uSIHandling(40)}
+
+id-package-facilityIEHandling OBJECT IDENTIFIER ::=
+ {id-package facilityIEHandling(41)}
+
+id-package-triggerCallManagement OBJECT IDENTIFIER ::=
+ {id-package triggerCallManagement(63)}
+
+id-package-monitorRoute OBJECT IDENTIFIER ::= {id-package monitorRoute(77)}
+
+id-package-trafficManagement OBJECT IDENTIFIER ::=
+ {id-package trafficManagement(78)}
+
+-- SRF/SCF Operation Packages
+id-package-specializedResourceControl OBJECT IDENTIFIER ::=
+ {id-package specializedResourceControl(42)}
+
+id-package-srf-scfCancel OBJECT IDENTIFIER ::= {id-package srf-scfCancel(43)}
+
+id-package-messageControl OBJECT IDENTIFIER ::= {id-package messageControl(44)}
+
+id-package-scriptControl OBJECT IDENTIFIER ::= {id-package scriptControl(45)}
+
+id-package-srfManagement OBJECT IDENTIFIER ::= {id-package srfManagement(66)}
+
+-- SCF-SDF packages
+id-package-search OBJECT IDENTIFIER ::=
+ {id-package search(2)}
+
+id-package-modify OBJECT IDENTIFIER ::= {id-package modify(3)}
+
+id-package-dapConnection OBJECT IDENTIFIER ::= {id-package dapConnection(10)}
+
+id-package-execute OBJECT IDENTIFIER ::= {id-package execute(4)}
+
+id-package-tfcOperations OBJECT IDENTIFIER ::= {id-package tfcOperations(64)}
+
+id-package-tfcConnection OBJECT IDENTIFIER ::= {id-package tfcConnection(65)}
+
+-- SDF-SDF Packages.
+id-package-dspConnection OBJECT IDENTIFIER ::=
+ {id-package dspConnection(47)}
+
+id-package-inchainedModify OBJECT IDENTIFIER ::=
+ {id-package inchainedModify(48)}
+
+id-package-inchainedSearch OBJECT IDENTIFIER ::=
+ {id-package inchainedSearch(49)}
+
+id-package-chainedExecute OBJECT IDENTIFIER ::= {id-package chainedExecute(50)}
+
+id-package-dispConnection OBJECT IDENTIFIER ::= {id-package dispConnection(51)}
+
+id-package-shadowConsumer OBJECT IDENTIFIER ::= {id-package shadowConsumer(52)}
+
+id-package-shadowSupplier OBJECT IDENTIFIER ::= {id-package shadowSupplier(53)}
+
+-- SCF/SCF Operation Packages
+id-package-scf-scfConnection OBJECT IDENTIFIER ::=
+ {id-package scf-scfConnection(46)}
+
+id-package-dsspConnection OBJECT IDENTIFIER ::= {id-package dsspConnection(74)}
+
+id-package-handlingInformation OBJECT IDENTIFIER ::=
+ {id-package handlingInformation(54)}
+
+id-package-notification OBJECT IDENTIFIER ::= {id-package notification(55)}
+
+id-package-chargingInformation OBJECT IDENTIFIER ::=
+ {id-package chargingInformation(56)}
+
+id-package-userInformation OBJECT IDENTIFIER ::=
+ {id-package userInformation(57)}
+
+id-package-networkCapability OBJECT IDENTIFIER ::=
+ {id-package networkCapability(58)}
+
+id-package-chainedSCFOperations OBJECT IDENTIFIER ::=
+ {id-package chainedSCFOperations(59)}
+
+id-package-transferStsi OBJECT IDENTIFIER ::= {id-package transferStsi(75)}
+
+id-package-initiateCall OBJECT IDENTIFIER ::= {id-package initiateCall(76)}
+
+-- CUSF/SCF Operation Packages
+id-package-cusfTDPSpecificInvocation OBJECT IDENTIFIER ::=
+ {id-package cusfTDPSpecificInvocation(61)}
+
+id-package-cusfTDPGenericInvocation OBJECT IDENTIFIER ::=
+ {id-package cusfTDPGenericInvocation(62)}
+
+id-package-cusfDPSpecificEventHandling OBJECT IDENTIFIER ::=
+ {id-package cusfDPSpecificEventHandling(67)}
+
+id-package-cusfGenericEventHandling OBJECT IDENTIFIER ::=
+ {id-package cusfGenericEventHandling(68)}
+
+id-package-cusfComponentHandling OBJECT IDENTIFIER ::=
+ {id-package cusfComponentHandling(69)}
+
+id-package-cusfSCFInitiation OBJECT IDENTIFIER ::=
+ {id-package cusfSCFInitiation(70)}
+
+id-package-cusfContinue OBJECT IDENTIFIER ::= {id-package cusfContinue(71)}
+
+id-package-cusfConnect OBJECT IDENTIFIER ::= {id-package cusfConnect(72)}
+
+id-package-cusfRelease OBJECT IDENTIFIER ::= {id-package cusfRelease(73)}
+
+-- SDF Attribute Value Contexts
+id-avc-assignment OBJECT IDENTIFIER ::=
+ {id-avc assignment(1)}
+
+id-avc-basicService OBJECT IDENTIFIER ::= {id-avc assignment(2)}
+
+id-avc-lineIdentity OBJECT IDENTIFIER ::= {id-avc assignment(3)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/IN-operationcodes.asn b/epan/dissectors/asn1/inap/IN-operationcodes.asn
new file mode 100644
index 0000000000..451f2a3e13
--- /dev/null
+++ b/epan/dissectors/asn1/inap/IN-operationcodes.asn
@@ -0,0 +1,295 @@
+-- Module IN-operationcodes (Q.1248.1:07/2001)
+IN-operationcodes {itu-t recommendation q 1248 modules(1) in-operationcodes(3)
+ version1(0)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ ros-InformationObjects
+ FROM IN-object-identifiers {itu-t recommendation q 1248 modules(1)
+ in-object-identifiers(0) version1(0)}
+ Code
+ FROM Remote-Operations-Information-Objects ros-InformationObjects;
+
+-- the operations are grouped by the identified operation packages.
+-- SCF activation Package
+opcode-initialDP Code ::=
+ local:0
+
+-- Basic BCP DP Package
+opcode-originationAttemptAuthorized Code ::= local:1
+
+opcode-collectedInformation Code ::= local:2
+
+opcode-analysedInformation Code ::= local:3
+
+opcode-routeSelectFailure Code ::= local:4
+
+opcode-oCalledPartyBusy Code ::= local:5
+
+opcode-oNoAnswer Code ::= local:6
+
+opcode-oAnswer Code ::= local:7
+
+opcode-oDisconnect Code ::= local:8
+
+opcode-termAttemptAuthorized Code ::= local:9
+
+opcode-tBusy Code ::= local:10
+
+opcode-tNoAnswer Code ::= local:11
+
+opcode-tAnswer Code ::= local:12
+
+opcode-tDisconnect Code ::= local:13
+
+opcode-facilitySelectedAndAvailable Code ::= local:80
+
+opcode-originationAttempt Code ::= local:81
+
+opcode-terminationAttempt Code ::= local:82
+
+opcode-oAbandon Code ::= local:83
+
+-- Advanced BCP DP Package
+opcode-oMidCall Code ::= local:14
+
+opcode-tMidCall Code ::= local:15
+
+opcode-oSuspended Code ::= local:84
+
+opcode-tSuspended Code ::= local:85
+
+-- SCF/SRF activation of assist Package
+opcode-assistRequestInstructions Code ::=
+ local:16
+
+-- Assist connection establishment Package
+opcode-establishTemporaryConnection Code ::=
+ local:17
+
+-- Generic disconnect resource Package
+opcode-disconnectForwardConnection Code ::=
+ local:18
+
+opcode-dFCWithArgument Code ::= local:86
+
+-- Non-assisted connection establishment Package
+-- establishment ASE;
+opcode-connectToResource Code ::=
+ local:19
+
+-- Connect Package (elementary SSF function)
+opcode-connect Code ::= local:20
+
+-- Call handling Package (elementary SSF function)
+opcode-holdCallInNetwork Code ::=
+ local:21
+
+opcode-releaseCall Code ::= local:22
+
+-- BCSM Event handling Package
+opcode-requestReportBCSMEvent Code ::= local:23
+
+opcode-eventReportBCSM Code ::= local:24
+
+-- Charging Event handling Package
+opcode-requestNotificationChargingEvent Code ::=
+ local:25
+
+opcode-eventNotificationCharging Code ::= local:26
+
+-- SSF call processing Package
+opcode-collectInformation Code ::= local:27
+
+opcode-analyseInformation Code ::= local:28
+
+opcode-selectRoute Code ::= local:29
+
+opcode-selectFacility Code ::= local:30
+
+opcode-continue Code ::= local:31
+
+opcode-authorizeTermination Code ::= local:87
+
+-- SCF call initiation Package
+opcode-initiateCallAttempt Code ::= local:32
+
+-- Timer Package
+opcode-resetTimer Code ::= local:33
+
+-- Billing Package
+opcode-furnishChargingInformation Code ::= local:34
+
+-- Charging Package
+opcode-applyCharging Code ::= local:35
+
+opcode-applyChargingReport Code ::= local:36
+
+-- Status reporting Package
+opcode-requestCurrentStatusReport Code ::= local:37
+
+opcode-requestEveryStatusChangeReport Code ::= local:38
+
+opcode-requestFirstStatusMatchReport Code ::= local:39
+
+opcode-statusReport Code ::= local:40
+
+-- IN Traffic management Package
+opcode-callGap Code ::= local:41
+
+-- Traffic management Package
+opcode-callFiltering Code ::= local:145
+
+-- Service management Package
+opcode-activateServiceFiltering Code ::= local:42
+
+opcode-serviceFilteringResponse Code ::= local:43
+
+-- Call report Package
+opcode-callInformationReport Code ::= local:44
+
+opcode-callInformationRequest Code ::= local:45
+
+-- Signalling control Package
+opcode-sendChargingInformation Code ::= local:46
+
+-- Specialized resource control Package
+opcode-playAnnouncement Code ::=
+ local:47
+
+opcode-promptAndCollectUserInformation Code ::= local:48
+
+opcode-specializedResourceReport Code ::= local:49
+
+-- Cancel Package
+opcode-cancel Code ::= local:53
+
+opcode-cancelStatusReportRequest Code ::= local:54
+
+-- Activity Test Package
+opcode-activityTest Code ::= local:55
+
+-- CPH Response Package
+opcode-continueWithArgument Code ::= local:88
+
+opcode-createCallSegmentAssociation Code ::= local:89
+
+opcode-disconnectLeg Code ::= local:90
+
+opcode-mergeCallSegments Code ::= local:91
+
+opcode-moveCallSegments Code ::= local:92
+
+opcode-moveLeg Code ::= local:93
+
+opcode-reconnect Code ::= local:94
+
+opcode-splitLeg Code ::= local:95
+
+-- Exception Inform Package
+opcode-entityReleased Code ::= local:96
+
+-- Trigger Management Package
+opcode-manageTriggerData Code ::= local:97
+
+opcode-createOrRemoveTriggerData Code ::= local:135
+
+-- Trigger Call Management Package
+opcode-setServiceProfile Code ::= local:136
+
+-- USI Handling Package
+opcode-requestReportUTSI Code ::= local:98
+
+opcode-sendSTUI Code ::= local:100
+
+opcode-reportUTSI Code ::= local:101
+
+-- Facility IE Handling Package
+opcode-sendFacilityInformation Code ::=
+ local:102
+
+opcode-requestReportFacilityEvent Code ::= local:103
+
+opcode-eventReportFacility Code ::= local:104
+
+-- Monitor Route Package
+opcode-monitorRouteRequest Code ::= local:146
+
+opcode-monitorRouteReport Code ::= local:147
+
+-- SRF/SCF interface
+opcode-promptAndReceiveMessage Code ::= local:107
+
+opcode-scriptInformation Code ::= local:108
+
+opcode-scriptEvent Code ::= local:109
+
+opcode-scriptRun Code ::= local:110
+
+opcode-scriptClose Code ::= local:111
+
+opcode-srfCallGap Code ::= local:139
+
+-- SCF/SCF interface
+opcode-establishChargingRecord Code ::= local:112
+
+opcode-handlingInformationRequest Code ::= local:113
+
+opcode-handlingInformationResult Code ::= local:114
+
+opcode-networkCapability Code ::= local:115
+
+opcode-notificationProvided Code ::= local:116
+
+opcode-confirmedNotificationProvided Code ::= local:117
+
+opcode-provideUserInformation Code ::= local:118
+
+opcode-confirmedReportChargingInformation Code ::= local:119
+
+opcode-reportChargingInformation Code ::= local:120
+
+opcode-requestNotification Code ::= local:121
+
+opcode-runUserScript Code ::= local:140
+
+opcode-transferSTSI Code ::= local:141
+
+opcode-announcementCompletionReport Code ::= local:142
+
+opcode-initiateCallRequest Code ::= local:143
+
+opcode-provideAnnouncementRequest Code ::= local:144
+
+-- SCF/SDF interface
+opcode-execute Code ::= local:10
+
+opcode-trafficFlowControl Code ::= local:138
+
+-- CUSF/SCF interface
+opcode-activationReceivedAndAuthorized Code ::= local:122
+
+opcode-initiateAssociation Code ::= local:123
+
+opcode-associationReleaseRequested Code ::= local:124
+
+opcode-componentReceived Code ::= local:125
+
+opcode-releaseAssociation Code ::= local:126
+
+opcode-requestReportBCUSMEvent Code ::= local:127
+
+opcode-sendComponent Code ::= local:130
+
+opcode-connectAssociation Code ::= local:132
+
+opcode-continueAssociation Code ::= local:133
+
+opcode-eventReportBCUSM Code ::= local:134
+
+opcode-initialAssociationDP Code ::= local:131
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/inap/Makefile.am b/epan/dissectors/asn1/inap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/inap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/inap/Makefile.common b/epan/dissectors/asn1/inap/Makefile.common
new file mode 100644
index 0000000000..f054a5ca8c
--- /dev/null
+++ b/epan/dissectors/asn1/inap/Makefile.common
@@ -0,0 +1,82 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=inap
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST_LATE = \
+ ../ros/Remote-Operations-Information-Objects.asn \
+ ../ros/Remote-Operations-Generic-ROS-PDUs.asn
+
+1248_1_ASN_FILES= \
+ IN-operationcodes.asn \
+ IN-object-identifiers.asn \
+ IN-common-datatypes.asn
+
+1248_2_ASN_FILES= \
+ IN-SSF-SCF-datatypes.asn \
+ IN-SSF-SCF-ops-args.asn
+
+1248_3_ASN_FILES= \
+ IN-SCF-SRF-datatypes.asn \
+ IN-SCF-SRF-ops-args.asn
+
+1248_CLASSES_ASN= \
+ IN-common-classes.asn \
+ IN-SSF-SCF-Classes.asn \
+ IN-SCF-SRF-Classes.asn
+
+ASN_FILE_LIST= \
+ $(1248_CLASSES_ASN) \
+ $(1248_1_ASN_FILES) \
+ $(1248_2_ASN_FILES) \
+ $(1248_3_ASN_FILES) \
+ IN-errorcodes.asn \
+ IN-errortypes.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ inap.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../dap/dap-exp.cnf \
+ $(builddir)/../dsp/dsp-exp.cnf
+
+$(builddir)/../dap/dap-exp.cnf:
+ (cd $(builddir)/../dap && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../dsp/dsp-exp.cnf:
+ (cd $(builddir)/../dsp && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/inap/Makefile.nmake b/epan/dissectors/asn1/inap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/inap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/inap/inap.asn b/epan/dissectors/asn1/inap/inap.asn
new file mode 100644
index 0000000000..86ea4b0914
--- /dev/null
+++ b/epan/dissectors/asn1/inap/inap.asn
@@ -0,0 +1,179 @@
+IN-CS-1-Operations-appendix { ccitt recommendation q 1218 modules(0) cs-1-operations-app(4) version1(0) }
+-- This module contains additional type definitions for IN CS-1 operations.
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- IMPORTED ROS stuff for Wireshark use
+-- ROS def's
+-- Module Remote-Operations-Apdus (H.450.1:02/1998)
+--Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
+-- remote-operations-apdus(11)} DEFINITIONS AUTOMATIC TAGS ::=
+--BEGIN
+
+INAP-Component ::= CHOICE {
+ invoke [1] IMPLICIT Invoke,
+ returnResultLast [2] IMPLICIT ReturnResult,
+ returnError [3] IMPLICIT ReturnError,
+ reject [4] IMPLICIT Reject,
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+ returnResultNotLast [7] IMPLICIT ReturnResult
+}
+Invoke ::= SEQUENCE {
+ invokeID InvokeIdType,
+ linkedID [0] IMPLICIT InvokeIdType OPTIONAL,
+ opCode INAP-OPERATION,
+ invokeparameter InvokeParameter OPTIONAL
+}
+
+InvokeParameter ::= ANY
+
+
+-- 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,
+ resultretres SEQUENCE {
+ opCode INAP-OPERATION,
+ returnparameter ReturnResultParameter OPTIONAL
+ } OPTIONAL
+ }
+
+ReturnResultParameter ::= ANY
+
+-- 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 INAP-ERROR,
+ parameter ReturnErrorParameter OPTIONAL }
+
+ReturnErrorParameter ::= ANY
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+Reject ::= SEQUENCE {
+ invokeIDRej 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)
+
+
+INAP-OPERATION ::= CHOICE {
+ localValue OperationLocalvalue,
+ globalValue OBJECT IDENTIFIER }
+
+LocalErrorcode ::= INAPLocalErrorcode
+OperationLocalvalue ::= INAPOperationLocalvalue
+INAPLocalErrorcode ::= INTEGER
+INAPOperationLocalvalue ::= INTEGER
+INAP-ERROR ::= CHOICE {
+ localValue LocalErrorcode,
+ globalValue OBJECT IDENTIFIER }
+
+-- 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) }
+
+-- TYPE DEFINITION FOR ADDITIONAL IN CS-1 INAP-OPERATIONS
+-- SCF-SSF operations
+-- SCF ? SSF
+-- This operation is used to release a call party connection during a call between two or more parties.
+--LegIDAlreadyAssigned ::= INAP-ERROR
+-- Indicates that a legID has already been assigned with the requested value.
+--TooLate ::= INAP-ERROR
+-- Indicates that the operation could not be performed in a timely manner.
+--UnknownLegID ::= INAP-ERROR
+-- Indicates that the legID does not exist.
+-- TYPE DEFINITION FOR ADDITIONAL IN CS-1 DATA TYPES
+-- Argument Data Types
+
+
+-- INAP-OPERATION AND INAP-ERROR CODE DEFINITION
+-- Code point values are for further study. The operations are grouped by the identified ASEs.
+-- Call party handling ASE
+addParty AddParty ::= ffs
+changeParties ChangeParties ::= ffs
+holdCallPartyConnection HoldCallPartyConnection ::= ffs
+reconnect Reconnect ::= ffs
+releaseCallPartyConnection ReleaseCallPartyConnection ::= ffs
+-- Attach ASE
+attach Attach ::= ffs
+detach Detach ::= ffs
+
+
+--Canceled ::= localValue 0
+
+CancelFailed ::= SEQUENCE {
+ problem [0] IMPLICIT ENUMERATED {
+ unknownOperation (0),
+ tooLate (1),
+ operationNotCancellable (2)},
+ operation [1] IMPLICIT INTEGER (-128..127)}
+ --::= localValue 1
+--ETCFailed ::= localValue 3
+--ImproperCallerResponse ::= localValue 4
+--MissingCustomerRecord ::= localValue 6
+--MissingParameter ::= localValue 7
+--parameterOutOfRange INAP-ERROR
+ --::= localValue 8
+RequestedInfoError ::= ENUMERATED {
+ unknownRequestedInfo (1),
+ requestedInfoNotAvailable (2)}
+ --::= localValue 10
+SystemFailure ::= ENUMERATED {
+ unavailableResources (0),
+ componentFailure (1),
+ basicCallProcessingException (2),
+ resourceStatusFailure (3),
+ endUserFailure (4)}
+
+TaskRefused ::= ENUMERATED {
+ generic (0),
+ unobtainable (1),
+ congestion (2)}
+ --::= localValue 12
+--unavailableResource INAP-ERROR
+-- ::= localValue 13
+--unexpectedComponentSequence INAP-ERROR
+-- ::= localValue 14
+--unexpectedDataValue INAP-ERROR
+-- ::= localValue 15
+--unexpectedParameter INAP-ERROR
+-- ::= localValue 16
+--unknownLegID INAP-ERROR
+-- ::= localValue 17-
+--unknownResource INAP-ERROR
+-- ::= localValue 18
+-- Dummy asign problems with CLASS
+ExtensionType ::= OCTET STRING
+END \ No newline at end of file
diff --git a/epan/dissectors/asn1/inap/inap.cnf b/epan/dissectors/asn1/inap/inap.cnf
new file mode 100644
index 0000000000..49aaba5f5b
--- /dev/null
+++ b/epan/dissectors/asn1/inap/inap.cnf
@@ -0,0 +1,323 @@
+# inap.cnf
+# inap conformation file
+
+#.IMPORT ../dap/dap-exp.cnf
+#.IMPORT ../dsp/dsp-exp.cnf
+
+#.EXPORTS
+BothwayThroughConnectionInd
+CallingPartysCategory
+CriticalityType
+Duration
+HighLayerCompatibility
+Integer4
+Interval
+LegID
+MiscCallInfo
+RedirectionInformation
+ServiceKey
+
+#.NO_EMIT ONLY_VALS
+ROS
+
+#.OMIT_ASSIGNMENT
+# Removed as they are giving 'defined but not used' warnings currently.
+Priority
+RejectProblem
+#.END
+
+#.TYPE_RENAME
+ReturnResult/result/result ResultArgument
+
+#.FIELD_RENAME
+Invoke/linkedId/present linkedIdPresent
+Reject/problem/invoke invokeProblem
+Reject/problem/returnError returnErrorProblem
+ReturnResult/result/result resultArgument
+Reject/problem/returnResult problemReturnResult
+
+#.OMIT_ASSIGNMENT Remote-Operations-Information-Objects
+Bind
+Unbind
+#.END
+
+#.PDU
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+
+# This table creates the value_sting to name Inap operation codes and errors
+# in file packet-inap-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* INAP OPERATIONS */
+const value_string inap_opr_code_strings[] = {
+#.TABLE_BODY OPERATION.&operationCode
+ { %(&operationCode)-40s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* INAP ERRORS */
+static const value_string inap_err_code_string_vals[] = {
+#.TABLE_BODY ERROR.&errorCode
+ { %(&errorCode)-40s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# This table creates the switch() to branch on Camel operation codes and errors
+# in file packet-inap-table2.c which is included in the template file
+#
+#.TABLE2_HDR
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ switch(opcode){
+#.TABLE2_BODY OPERATION.&ArgumentType
+ case %(&operationCode)s: /* %(_ident)s */
+ offset= %(_argument_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_inap_unknown_invokeData,
+ tvb, offset, -1, "Unknown invokeData %d", opcode);
+ /* todo call the asn.1 dissector */
+ break;
+ }
+ return offset;
+}
+#.END
+#.TABLE2_HDR
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
+ switch(opcode){
+#.TABLE2_BODY OPERATION.&ResultType
+ case %(&operationCode)s: /* %(_ident)s */
+ offset= %(_result_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_inap_unknown_returnResultData,
+ tvb, offset, -1, "Unknown returnResultData %d", opcode);
+ }
+ return offset;
+}
+#.END
+#.TABLE2_HDR
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
+ switch(errorCode) {
+#.TABLE2_BODY ERROR.&ParameterType
+ case %(&errorCode)s: /* %(_ident)s */
+ %(_parameter_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_inap_unknown_returnErrorData,
+ tvb, offset, -1, "Unknown returnErrorData %d", opcode);
+ }
+ return offset;
+}
+#.END
+
+# Create a table of opcode and corresponding args and res
+#.TABLE11_HDR
+typedef struct _inap_op_t {
+ gint32 opcode;
+ dissector_t arg_pdu;
+ dissector_t res_pdu;
+} inap_op_t;
+
+static const inap_op_t inap_op_tab[] = {
+#.TABLE11_BODY OPERATION.&operationCode
+ /* %(_name)-31s */ { %(&operationCode)-40s, %(_argument_pdu)-45s, %(_result_pdu)s },
+#.TABLE11_FTR
+};
+#.END
+
+#.TABLE11_HDR
+typedef struct _inap_err_t {
+ gint32 errcode;
+ dissector_t err_pdu;
+} inap_err_t;
+
+static const inap_err_t inap_err_tab[] = {
+#.TABLE11_BODY ERROR.&errorCode
+ /* %(_name)-30s */ { %(&errorCode)4s, %(_parameter_pdu)s },
+#.TABLE11_FTR
+};
+#.END
+
+# ROS stuff here XXX change when TCAP is redone.
+
+#.FN_BODY Code/local VAL_PTR = &opcode
+ %(DEFAULT_BODY)s
+ if (inap_opcode_type == INAP_OPCODE_RETURN_ERROR){
+ errorCode = opcode;
+ col_append_str(actx->pinfo->cinfo, COL_INFO,
+ val_to_str(errorCode, inap_err_code_string_vals, "Unknown INAP error (%%u)"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ }else{
+ col_append_str(actx->pinfo->cinfo, COL_INFO,
+ val_to_str(opcode, inap_opr_code_strings, "Unknown INAP (%%u)"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ }
+
+#.FN_HDR Invoke
+ inap_opcode_type=INAP_OPCODE_INVOKE;
+
+#.FN_HDR ReturnResult
+ inap_opcode_type=INAP_OPCODE_RETURN_RESULT;
+
+#.FN_HDR ReturnError
+ inap_opcode_type=INAP_OPCODE_RETURN_ERROR;
+
+#.FN_HDR Reject
+ inap_opcode_type=INAP_OPCODE_REJECT;
+
+#.FN_BODY Invoke/argument
+ offset = dissect_invokeData(tree, tvb, offset, actx);
+
+#.FN_BODY ReturnResult/result/result
+ offset = dissect_returnResultData(tree, tvb, offset, actx);
+
+#.FN_BODY ReturnError/parameter
+ offset = dissect_returnErrorData(tree, tvb, offset, actx);
+
+# END ROS
+
+
+#.FN_BODY TriggerData/triggerPar
+/* FIX ME */
+
+#.FN_BODY ScriptEventArg/uIScriptResult
+/* FIX ME */
+
+#.FN_BODY ScriptCloseArg/uIScriptSpecificInfo
+/* FIX ME */
+
+#.FN_BODY ScriptInformationArg/uIScriptSpecificInfo
+/* FIX ME */
+#.FN_BODY ScriptRunArg/uIScriptSpecificInfo
+/* FIX ME */
+
+#.FN_HDR ExtensionField
+ obj_id = NULL;
+
+#.FN_PARS Code/global FN_VARIANT = _str VAL_PTR = &obj_id
+
+#.FN_BODY ExtensionField/value
+ proto_tree *ext_tree;
+ ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_inap_extension_data, NULL, "Extension Data");
+ if (obj_id){
+ offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, ext_tree, NULL);
+ }else{
+ call_dissector(data_handle, tvb, actx->pinfo, ext_tree);
+ offset = tvb_reported_length_remaining(tvb,offset);
+ }
+
+
+
+#.FN_BODY CalledPartyNumber VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+dissect_isup_called_party_number_parameter(parameter_tvb, tree, NULL);
+
+#.FN_BODY CallingPartyNumber VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ dissect_isup_calling_party_number_parameter(parameter_tvb, tree, NULL);
+
+
+#.FN_BODY BearerCapability/bearerCap VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), tree);
+
+#.FN_BODY RedirectionInformation VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ dissect_isup_redirection_information_parameter(parameter_tvb, tree, NULL);
+
+#.FN_BODY OriginalCalledPartyID VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_isup_original_called_number_parameter(parameter_tvb, actx->pinfo, tree, NULL);
+
+#.FN_BODY RedirectingPartyID VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL);
+
+#.FN_BODY HighLayerCompatibility VAL_PTR = &parameter_tvb
+/*
+ * -- Indicates the teleservice. For encoding, DSS1 (Q.931) is used.
+ */
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_inap_HighLayerCompatibility);
+ dissect_q931_high_layer_compat_ie(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), subtree);
+
+ #.FN_BODY Cause VAL_PTR = &parameter_tvb
+ /*
+ * -- 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 Q.850.
+ */
+tvbuff_t *parameter_tvb;
+guint8 Cause_value;
+proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_inap_cause);
+
+ dissect_q931_cause_ie(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), subtree, hf_inap_cause_indicator, &Cause_value, isup_parameter_type_value);
+
+#.TYPE_ATTR
+CallingPartysCategory TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &isup_calling_partys_category_value_ext
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/inap/packet-inap-template.c b/epan/dissectors/asn1/inap/packet-inap-template.c
new file mode 100644
index 0000000000..d1fc40d8c3
--- /dev/null
+++ b/epan/dissectors/asn1/inap/packet-inap-template.c
@@ -0,0 +1,274 @@
+/* packet-inap-template.c
+ * Routines for INAP
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References: ETSI 300 374
+ * ITU Q.1218
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/expert.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-inap.h"
+#include "packet-q931.h"
+#include "packet-e164.h"
+#include "packet-isup.h"
+#include "packet-tcap.h"
+#include "packet-dap.h"
+#include "packet-dsp.h"
+
+#define PNAME "Intelligent Network Application Protocol"
+#define PSNAME "INAP"
+#define PFNAME "inap"
+
+void proto_register_inap(void);
+void proto_reg_handoff_inap(void);
+
+
+/* Initialize the protocol and registered fields */
+static int proto_inap = -1;
+
+/* include constants */
+#include "packet-inap-val.h"
+
+#include "packet-inap-hf.c"
+
+#define MAX_SSN 254
+static range_t *global_ssn_range;
+
+static dissector_handle_t inap_handle;
+static dissector_handle_t data_handle;
+
+/* Global variables */
+static guint32 opcode=0;
+static guint32 errorCode=0;
+static const char *obj_id = NULL;
+
+static int inap_opcode_type;
+#define INAP_OPCODE_INVOKE 1
+#define INAP_OPCODE_RETURN_RESULT 2
+#define INAP_OPCODE_RETURN_ERROR 3
+#define INAP_OPCODE_REJECT 4
+
+static int hf_inap_cause_indicator = -1;
+
+/* Initialize the subtree pointers */
+static gint ett_inap = -1;
+static gint ett_inapisup_parameter = -1;
+static gint ett_inap_HighLayerCompatibility = -1;
+static gint ett_inap_extension_data = -1;
+static gint ett_inap_cause = -1;
+
+#include "packet-inap-ett.c"
+
+static expert_field ei_inap_unknown_invokeData = EI_INIT;
+static expert_field ei_inap_unknown_returnResultData = EI_INIT;
+static expert_field ei_inap_unknown_returnErrorData = EI_INIT;
+
+#include "packet-inap-table.c"
+
+const value_string inap_general_problem_strings[] = {
+{0,"General Problem Unrecognized Component"},
+{1,"General Problem Mistyped Component"},
+{3,"General Problem Badly Structured Component"},
+{0, NULL}
+};
+
+/* Forvard declarations */
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+
+#include "packet-inap-fn.c"
+/*
+TC-Invokable OPERATION ::=
+ {activateServiceFiltering | activityTest | analysedInformation |
+ analyseInformation | applyCharging | applyChargingReport |
+ assistRequestInstructions | callGap | callInformationReport |
+ callInformationRequest | cancel | cancelStatusReportRequest |
+ collectedInformation | collectInformation | connect | connectToResource |
+ continue | disconnectForwardConnection | establishTemporaryConnection |
+ eventNotificationCharging | eventReportBCSM | furnishChargingInformation |
+ holdCallInNetwork | initialDP | initiateCallAttempt | oAnswer |
+ oCalledPartyBusy | oDisconnect | oMidCall | oNoAnswer |
+ originationAttemptAuthorized | releaseCall | requestCurrentStatusReport |
+ requestEveryStatusChangeReport | requestFirstStatusMatchReport |
+ requestNotificationChargingEvent | requestReportBCSMEvent | resetTimer |
+ routeSelectFailure | selectFacility | selectRoute | sendChargingInformation
+ | serviceFilteringResponse | statusReport | tAnswer | tBusy | tDisconnect |
+ termAttemptAuthorized | tMidCall | tNoAnswer | playAnnouncement |
+ promptAndCollectUserInformation}
+*/
+
+#include "packet-inap-table2.c"
+
+
+static guint8 inap_pdu_type = 0;
+static guint8 inap_pdu_size = 0;
+
+
+static int
+dissect_inap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "INAP");
+
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_inap, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_inap);
+ }
+ inap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
+ /* Get the length and add 2 */
+ inap_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+ opcode = 0;
+ dissect_inap_ROS(TRUE, tvb, offset, &asn1_ctx, tree, -1);
+
+ return inap_pdu_size;
+}
+
+/*--- proto_reg_handoff_inap ---------------------------------------*/
+static void range_delete_callback(guint32 ssn)
+{
+ if (ssn) {
+ delete_itu_tcap_subdissector(ssn, inap_handle);
+ }
+}
+
+static void range_add_callback(guint32 ssn)
+{
+ if (ssn) {
+ add_itu_tcap_subdissector(ssn, inap_handle);
+ }
+}
+
+void proto_reg_handoff_inap(void) {
+
+ static gboolean inap_prefs_initialized = FALSE;
+ static range_t *ssn_range;
+
+ if (!inap_prefs_initialized) {
+ inap_prefs_initialized = TRUE;
+ inap_handle = find_dissector("inap");
+ data_handle = find_dissector("data");
+ oid_add_from_string("Core-INAP-CS1-Codes","0.4.0.1.1.0.3.0");
+ oid_add_from_string("iso(1) identified-organization(3) icd-ecma(12) member-company(2) 1107 oen(3) inap(3) extensions(2)","1.3.12.2.1107.3.3.2");
+ oid_add_from_string("alcatel(1006)","1.3.12.2.1006.64");
+ oid_add_from_string("Siemens (1107)","1.3.12.2.1107");
+ oid_add_from_string("iso(1) member-body(2) gb(826) national(0) ericsson(1249) inDomain(51) inNetwork(1) inNetworkcapabilitySet1plus(1) ","1.2.826.0.1249.51.1.1");
+ }
+ else {
+ range_foreach(ssn_range, range_delete_callback);
+ g_free(ssn_range);
+ }
+
+ ssn_range = range_copy(global_ssn_range);
+
+ range_foreach(ssn_range, range_add_callback);
+
+}
+
+
+void proto_register_inap(void) {
+ module_t *inap_module;
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+
+ { &hf_inap_cause_indicator, /* Currently not enabled */
+ { "Cause indicator", "inap.cause_indicator",
+ FT_UINT8, BASE_DEC | BASE_EXT_STRING, &q850_cause_code_vals_ext, 0x7f,
+ NULL, HFILL } },
+
+#include "packet-inap-hfarr.c"
+ };
+
+
+
+
+
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_inap,
+ &ett_inapisup_parameter,
+ &ett_inap_HighLayerCompatibility,
+ &ett_inap_extension_data,
+ &ett_inap_cause,
+#include "packet-inap-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_inap_unknown_invokeData, { "inap.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL }},
+ { &ei_inap_unknown_returnResultData, { "inap.unknown.returnResultData", PI_MALFORMED, PI_WARN, "Unknown returnResultData", EXPFILL }},
+ { &ei_inap_unknown_returnErrorData, { "inap.unknown.returnErrorData", PI_MALFORMED, PI_WARN, "Unknown returnResultData", EXPFILL }},
+ };
+
+ expert_module_t* expert_inap;
+
+ /* Register protocol */
+ proto_inap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("inap", dissect_inap, proto_inap);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_inap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_inap = expert_register_protocol(proto_inap);
+ expert_register_field_array(expert_inap, ei, array_length(ei));
+
+ register_ber_oid_dissector("0.4.0.1.1.1.0.0", dissect_inap, proto_inap, "cs1-ssp-to-scp");
+
+ /* Set default SSNs */
+ range_convert_str(&global_ssn_range, "106,241", MAX_SSN);
+
+ inap_module = prefs_register_protocol(proto_inap, proto_reg_handoff_inap);
+
+ prefs_register_obsolete_preference(inap_module, "tcap.itu_ssn");
+
+ prefs_register_obsolete_preference(inap_module, "tcap.itu_ssn1");
+
+ prefs_register_range_preference(inap_module, "ssn", "TCAP SSNs",
+ "TCAP Subsystem numbers used for INAP",
+ &global_ssn_range, MAX_SSN);
+}
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/inap/packet-inap-template.h b/epan/dissectors/asn1/inap/packet-inap-template.h
new file mode 100644
index 0000000000..9443b368b3
--- /dev/null
+++ b/epan/dissectors/asn1/inap/packet-inap-template.h
@@ -0,0 +1,30 @@
+/* packet-inap.h
+ *
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+
+#ifndef PACKET_INAP_H
+#define PACKET_INAP_H
+
+#include "packet-inap-exp.h"
+
+#endif /* PACKET_INAP_H */
diff --git a/epan/dissectors/asn1/isdn-sup/Addressing-Data-Elements.asn b/epan/dissectors/asn1/isdn-sup/Addressing-Data-Elements.asn
new file mode 100644
index 0000000000..f2f6ad43cd
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Addressing-Data-Elements.asn
@@ -0,0 +1,140 @@
+--
+-- EN 300 196-1 Ver. 1.3.2
+--
+
+Addressing-Data-Elements {itu-t identified-organization etsi(0) 196 addressing-data-elements(6)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS PresentedAddressScreened, PresentedAddressUnscreened,
+ PresentedNumberScreened, PresentedNumberUnscreened,
+ Address, PartyNumber, PartySubaddress,
+ ScreeningIndicator, PresentationAllowedIndicator;
+
+PresentedAddressScreened ::= CHOICE {
+ presentationAllowedAddress [0] IMPLICIT AddressScreened,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedAddress [3] IMPLICIT AddressScreened }
+
+PresentedAddressUnscreened ::= CHOICE {
+ presentationAllowedAddress [0] IMPLICIT Address,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedAddress [3] IMPLICIT Address}
+
+PresentedNumberScreened ::= CHOICE {
+ presentationAllowedNumber [0] IMPLICIT NumberScreened,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedNumber [3] IMPLICIT NumberScreened}
+
+PresentedNumberUnscreened ::= CHOICE {
+ presentationAllowedNumber [0] PartyNumber,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedNumber [3] PartyNumber}
+
+AddressScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator,
+ partySubaddress PartySubaddress OPTIONAL}
+
+NumberScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator}
+
+Address ::= SEQUENCE {
+ partyNumber PartyNumber,
+ partySubaddress PartySubaddress OPTIONAL}
+
+PartyNumber ::= CHOICE {
+ unknownPartyNumber [0] IMPLICIT NumberDigits,
+ -- the numbering plan is the default numbering plan of the
+ -- network. It is recommended that this value is used.
+ publicPartyNumber [1] IMPLICIT PublicPartyNumber,
+ -- the numbering plan is according to
+ -- ITU-T Recommendation E.164.
+ nsapEncodedNumber [2] IMPLICIT NsapEncodedNumber,
+ -- ATM endsystem address encoded as an NSAP address.
+ dataPartyNumber [3] IMPLICIT NumberDigits,
+ -- not used, value reserved.
+ telexPartyNumber [4] IMPLICIT NumberDigits,
+ -- not used, value reserved.
+ privatePartyNumber [5] IMPLICIT PrivatePartyNumber,
+ nationalStandardPartyNumber [8] IMPLICIT NumberDigits}
+ -- not used, value reserved.
+
+PublicPartyNumber ::= SEQUENCE {
+ publicTypeOfNumber PublicTypeOfNumber,
+ publicNumberDigits NumberDigits}
+NsapEncodedNumber ::= OCTET STRING (SIZE(20))
+
+
+
+PrivatePartyNumber ::= SEQUENCE {
+ privateTypeOfNumber PrivateTypeOfNumber,
+ privateNumberDigits NumberDigits}
+NumberDigits ::= NumericString (SIZE(1..20))
+
+PublicTypeOfNumber ::= ENUMERATED {
+ unknown (0),
+ -- if used number digits carry prefix indicating type of
+ -- number according to national recommendations
+ internationalNumber (1),
+ nationalNumber (2),
+ networkSpecificNumber (3),
+ -- not used, value reserved
+ subscriberNumber (4),
+ abbreviatedNumber (6)}
+ -- valid only for called party number at the outgoing
+ -- access, network substitutes appropriate number.
+
+PrivateTypeOfNumber ::= ENUMERATED {
+ unknown (0),
+ level2RegionalNumber (1),
+ level1RegionalNumber (2),
+ pTNSpecificNumber (3),
+ localNumber (4),
+ abbreviatedNumber (6)}
+
+PartySubaddress ::= CHOICE {
+ userSpecifiedSubaddress UserSpecifiedSubaddress,
+ -- not recommended
+ nSAPSubaddress NSAPSubaddress}
+ -- according to ITU-T Recommendation X.213
+
+UserSpecifiedSubaddress ::= SEQUENCE {
+ subaddressInformation SubaddressInformation,
+ oddCountIndicator BOOLEAN OPTIONAL}
+ -- used when the coding of subaddress is BCD
+
+NSAPSubaddress ::= OCTET STRING (SIZE(1..20))
+ -- specified according to ITU-T Recommendation X.213. Some
+ -- networks may limit the subaddress value to some other
+ -- length, e.g. 4 octets
+
+SubaddressInformation ::= OCTET STRING (SIZE(1..20))
+ -- coded according to user requirements. Some networks may
+ -- limit the subaddress value to some other length,
+ -- e.g. 4 octets
+
+ScreeningIndicator ::= ENUMERATED {
+ userProvidedNotScreened (0),
+ -- number was provided by a remote user terminal equipment,
+ -- and has been screened by a network that is not the
+ -- local public or local private network.
+ userProvidedVerifiedAndPassed (1),
+ -- number was provided by a remote user terminal equipment
+ -- (or by a remote private network), and has been screened
+ -- by the local public or local private network.
+ userProvidedVerifiedAndFailed (2),
+ -- not used, value reserved
+ networkProvided (3)}
+ -- number was provided by local public or local
+ -- private network
+
+PresentationAllowedIndicator ::= BOOLEAN
+END -- of Addressing-Data-Elements
diff --git a/epan/dissectors/asn1/isdn-sup/Advice-of-Charge-Operations.asn b/epan/dissectors/asn1/isdn-sup/Advice-of-Charge-Operations.asn
new file mode 100644
index 0000000000..df1b7e7404
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Advice-of-Charge-Operations.asn
@@ -0,0 +1,265 @@
+--
+-- EN 300 182-1 Ver. 1.3.6
+--
+
+Advice-of-Charge-Operations {ccitt identified-organization etsi (0) 182 operations-and-errors (1)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS ChargingRequest, AOCSCurrency, AOCSSpecialArr,
+ AOCDCurrency, AOCDChargingUnit, AOCECurrency, AOCEChargingUnit,
+ NoChargingInfoAvailable, ChargingAssociation;
+
+IMPORTS OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+ notSubscribed, notAvailable, notImplemented, invalidCallState
+ FROM General-Errors
+ {ccitt identified-organization etsi (0) 196 general-errors (2)}
+ PartyNumber
+ FROM Addressing-Data-Elements
+ {itu-t(0) identified-organization(4) 196 addressing-data-elements (6)};
+
+ chargingRequest OPERATION ::= {
+ ARGUMENT ChargingRequestArg
+ RESULT ChargingRequestRes
+ ERRORS {notSubscribed | notAvailable | notImplemented |
+ invalidCallState | NoChargingInfoAvailable}
+ CODE local: 30}
+
+ChargingRequestArg ::= ChargingCase
+
+ChargingRequestRes ::= CHOICE {
+ aOCSCurrencyInfoList AOCSCurrencyInfoList,
+ aOCSSpecialArrInfo AOCSSpecialArrInfo,
+ chargingInfoFollows NULL}
+
+aOCSCurrency OPERATION ::= { -- AOC-S given in currency units
+ ARGUMENT AOCSCurrencyArg
+ RETURN RESULT FALSE
+ CODE local: 31}
+
+AOCSCurrencyArg ::= CHOICE {
+ chargeNotAvailable NULL,
+ aOCSCurrencyInfoList AOCSCurrencyInfoList }
+
+aOCSSpecialArr OPERATION ::= { -- AOC-S for special charging arrangement
+ ARGUMENT AOCSSpecialArrArg
+ RETURN RESULT FALSE
+ CODE local: 32}
+
+AOCSSpecialArrArg ::=CHOICE {
+ chargeNotAvailable NULL,
+ aOCSSpecialArrInfo AOCSSpecialArrInfo }
+
+aOCDCurrency OPERATION ::= { -- AOC-D given in currency units
+ ARGUMENT AOCDCurrencyArg
+ RETURN RESULT FALSE
+ CODE local: 33}
+
+AOCDCurrencyArg ::= CHOICE {
+ chargeNotAvailable NULL,
+ aOCDCurrencyInfo AOCDCurrencyInfo }
+
+aOCDChargingUnit OPERATION ::= { -- AOC-D given in charging units
+ ARGUMENT AOCDChargingUnitArg
+ RETURN RESULT FALSE
+ CODE local: 34}
+
+AOCDChargingUnitArg ::= CHOICE {
+ chargeNotAvailable NULL,
+ aOCDChargingUnitInfo AOCDChargingUnitInfo }
+
+aOCECurrency OPERATION ::= { -- AOC-E given in currency units
+ ARGUMENT AOCECurrencyArg
+ RETURN RESULT FALSE
+ CODE local: 35}
+
+
+AOCECurrencyArg ::=CHOICE {
+ chargeNotAvailable NULL,
+ aOCECurrencyInfo AOCECurrencyInfo }
+
+aOCEChargingUnit OPERATION::= { -- AOC-E given in charging units
+ ARGUMENT AOCEChargingUnitArg
+ RETURN RESULT FALSE
+ CODE local: 36}
+
+AOCEChargingUnitArg ::= CHOICE {
+ chargeNotAvailable NULL,
+ aOCEChargingUnitInfo AOCEChargingUnitInfo }
+
+ChargingCase ::= ENUMERATED {
+ chargingInformationAtCallSetup (0),
+ chargingDuringACall (1),
+ chargingAtTheEndOfACall (2) }
+
+AOCSCurrencyInfoList ::= SEQUENCE SIZE (1..10) OF AOCSCurrencyInfo
+
+AOCSCurrencyInfo ::= SEQUENCE {
+ chargedItem ChargedItem,
+ chargingtype CHOICE {
+ specificCurrency CHOICE {
+ durationCurrency [1] IMPLICIT DurationCurrency,
+ flatRateCurrency [2] IMPLICIT FlatRateCurrency,
+ volumeRateCurrency [3] IMPLICIT VolumeRateCurrency},
+ specialChargingCode SpecialChargingCode,
+ freeOfCharge [4] IMPLICIT NULL,
+ currencyInfoNotAvailable [5] IMPLICIT NULL} }
+
+AOCSSpecialArrInfo ::= INTEGER (1..10)
+
+ChargedItem ::= ENUMERATED {
+ basicCommunication (0),
+ callAttempt (1),
+ callSetup (2),
+ userToUserInfo (3),
+ operationOfSupplementaryServ (4) }
+
+DurationCurrency ::= SEQUENCE {
+ dCurrency [1] IMPLICIT Currency,
+ dAmount [2] IMPLICIT Amount,
+ dChargingType [3] IMPLICIT ChargingType,
+ dTime [4] IMPLICIT Time,
+ dGranularity [5] IMPLICIT Time OPTIONAL }
+
+FlatRateCurrency ::= SEQUENCE {
+ fRCurrency [1] IMPLICIT Currency,
+ fRAmount [2] IMPLICIT Amount }
+
+VolumeRateCurrency ::= SEQUENCE {
+ vRCurrency [1] IMPLICIT Currency,
+ vRAmount [2] IMPLICIT Amount,
+ vRVolumeUnit [3] IMPLICIT VolumeUnit}
+
+SpecialChargingCode ::= INTEGER (1..10)
+
+AOCDCurrencyInfo ::= CHOICE {
+ specificCurrency SEQUENCE {
+ recordedCurrency [1] IMPLICIT RecordedCurrency,
+ typeOfChargingInfo [2] IMPLICIT TypeOfChargingInfo,
+ aOCDBillingId [3] IMPLICIT AOCDBillingId OPTIONAL },
+ freeOfCharge [1] IMPLICIT NULL}
+
+
+AOCDChargingUnitInfo ::= CHOICE {
+ specificChargingUnits SEQUENCE {
+ recordedUnitsList [1] IMPLICIT RecordedUnitsList,
+ typeOfChargingInfo [2] IMPLICIT TypeOfChargingInfo,
+ aOCDBillingId [3] IMPLICIT AOCDBillingId OPTIONAL },
+ freeOfCharge [1] IMPLICIT NULL}
+
+RecordedCurrency ::= SEQUENCE {
+ rCurrency [1] IMPLICIT Currency,
+ rAmount [2] IMPLICIT Amount }
+
+RecordedUnitsList ::= SEQUENCE SIZE (1..32) OF RecordedUnits
+
+TypeOfChargingInfo ::= ENUMERATED {
+ subTotal (0),
+ total (1)}
+
+RecordedUnits ::= SEQUENCE {
+ cc CHOICE{
+ recordedNumberOfUnits NumberOfUnits,
+ notAvailable NULL},
+ recordedTypeOfUnits TypeOfUnit OPTIONAL }
+
+AOCDBillingId ::= ENUMERATED {
+ normalCharging (0),
+ reverseCharging (1),
+ creditCardCharging (2)}
+
+AOCECurrencyInfo ::= SEQUENCE {
+ cc CHOICE {
+ specificCurrency SEQUENCE {
+ recordedCurrency [1] IMPLICIT RecordedCurrency,
+ aOCEBillingId [2] IMPLICIT AOCEBillingId OPTIONAL},
+ freeOfCharge [1] IMPLICIT NULL},
+ chargingAssociation ChargingAssociation OPTIONAL}
+
+AOCEChargingUnitInfo ::= SEQUENCE {
+ cc CHOICE {
+ specificChargingUnits SEQUENCE {
+ recordedUnitsList [1] IMPLICIT RecordedUnitsList,
+ aOCEBillingId [2] IMPLICIT AOCEBillingId OPTIONAL},
+ freeOfCharge [1] IMPLICIT NULL},
+ chargingAssociation ChargingAssociation OPTIONAL}
+
+AOCEBillingId ::= ENUMERATED {
+ normalCharging (0),
+ reverseCharging (1),
+ creditCardCharging (2),
+ callForwardingUnconditional (3),
+ callForwardingBusy (4),
+ callForwardingNoReply (5),
+ callDeflection (6),
+ callTransfer (7)}
+
+Currency ::= IA5String (SIZE (1..10))
+
+Amount ::= SEQUENCE {
+ currencyAmount [1] IMPLICIT CurrencyAmount,
+ multiplier [2] IMPLICIT Multiplier }
+
+CurrencyAmount ::= INTEGER (0..16777215)
+
+Multiplier ::= ENUMERATED {
+ oneThousandth (0),
+ oneHundredth (1),
+ oneTenth (2),
+ one (3),
+ ten (4),
+ hundred (5),
+ thousand (6)}
+
+Time ::= SEQUENCE {
+ lengthOfTimeUnit [1] IMPLICIT LengthOfTimeUnit,
+ scale [2] IMPLICIT Scale }
+
+LengthOfTimeUnit ::= INTEGER (0..16777215)
+
+Scale ::= ENUMERATED {
+ oneHundredthSecond (0),
+ oneTenthSecond (1),
+ oneSecond (2),
+ tenSeconds (3),
+ oneMinute (4),
+ oneHour (5),
+ twentyFourHours (6)}
+
+VolumeUnit ::= ENUMERATED {
+ octet (0),
+ segment (1),
+ message (2) }
+
+TypeOfUnit ::= INTEGER (1..16) -- Value 1-16
+
+NumberOfUnits ::= INTEGER (0..16777215)
+
+ChargingType ::= ENUMERATED {
+ continuousCharging (0),
+ stepFunction (1) }
+
+ChargingAssociation ::= CHOICE {
+ chargeNumber [0] EXPLICIT PartyNumber,
+ chargeIdentifier ChargeIdentifier}
+
+ChargeIdentifier ::= INTEGER (-32768..32767)
+
+-- NoChargingInfoAvailable ::= ERROR
+
+-- chargingRequest ChargingRequest ::= 30
+-- aOCSCurrency AOCSCurrency ::= 31
+-- aOCSSpecialArr AOCSSpecialArr ::= 32
+-- aOCDCurrency AOCDCurrency ::= 33
+-- aOCDChargingUnit AOCDChargingUnit ::= 34
+-- aOCECurrency AOCECurrency ::= 35
+-- aOCEChargingUnit AOCEChargingUnit ::= 36
+-- noChargingInfoAvailable NoChargingInfoAvailable ::= 26
+
+noChargingInfoAvailable ERROR ::= { CODE local: 26}
+
+END
+
diff --git a/epan/dissectors/asn1/isdn-sup/Basic-Service-Elements.asn b/epan/dissectors/asn1/isdn-sup/Basic-Service-Elements.asn
new file mode 100644
index 0000000000..7f11a6cba0
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Basic-Service-Elements.asn
@@ -0,0 +1,32 @@
+--
+-- EN 300 196-1 Ver. 1.3.2
+--
+Basic-Service-Elements {itu-t identified-organization etsi(0) 196 basic-service-elements(8)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS BasicService;
+
+BasicService ::= ENUMERATED {
+ allServices (0),
+ speech (1),
+ unrestrictedDigitalInformation (2),
+ audio3k1Hz (3),
+ unrestrictedDigitalInformationWithTonesAndAnnouncements (4),
+ multirate(5),
+ telephony3k1Hz (32),
+ teletex (33),
+ telefaxGroup4Class1 (34),
+ videotexSyntaxBased (35),
+ videotelephony (36),
+ telefaxGroup2-3 (37),
+ telephony7kHz (38),
+ euroFileTransfer (39),
+ fileTransferAndAccessManagement (40),
+ videoconference (41),
+ audioGraphicConference (42)
+ }
+
+END -- of Basic-Service-Elements
diff --git a/epan/dissectors/asn1/isdn-sup/CCBS-Operations-and-Errors.asn b/epan/dissectors/asn1/isdn-sup/CCBS-Operations-and-Errors.asn
new file mode 100644
index 0000000000..66c19c7220
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/CCBS-Operations-and-Errors.asn
@@ -0,0 +1,170 @@
+--
+-- EN 300 359-1 Ver. 1.3.2
+--
+CCBS-Operations-and-Errors {ccitt identified-organization etsi(0) 359 operations-and-errors(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS CallInfoRetain, EraseCallLinkageID,
+ CCBSRequest, CCBSDeactivate, CCBSInterrogate, CCBSErase,
+ CCBSRemoteUserFree, CCBSCall, CCBSStatusRequest, CCBSBFree,
+ CCBSStopAlerting,
+ InvalidCallLinkageID, InvalidCCBSReference, LongTermDenial, ShortTermDenial,
+ CCBSIsAlreadyActivated, AlreadyAccepted, OutgoingCCBSQueueFull,
+ CallFailureReasonNotBusy, NotReadyForCall;
+
+IMPORTS OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+
+ notSubscribed, supplementaryServiceInteractionNotAllowed
+ FROM General-Errors
+ {ccitt identified-organization etsi(0) 196 general-errors(2)}
+
+ Address, PartyNumber, PartySubaddress
+ FROM Addressing-Data-Elements
+ {ccitt identified-organization etsi(0) 196 addressing-data-elements(6)}
+
+ Q931InformationElement
+ FROM Embedded-Q931-Types
+ {ccitt identified-organization etsi(0) 196 embedded-q931-types(7)};
+
+CallInfoRetain ::= OPERATION
+ ARGUMENT callLinkageID CallLinkageID
+
+EraseCallLinkageID ::= OPERATION
+ ARGUMENT callLinkageID CallLinkageID
+
+CCBSRequest ::= OPERATION
+ ARGUMENT callLinkageID CallLinkageID
+ RESULT SEQUENCE {
+ recallMode RecallMode,
+ cCBSReference CCBSReference}
+ ERRORS {notSubscribed, InvalidCallLinkageID, ShortTermDenial,
+ LongTermDenial, CCBSIsAlreadyActivated,
+ supplementaryServiceInteractionNotAllowed,
+ OutgoingCCBSQueueFull, CallFailureReasonNotBusy}
+
+CCBSInterrogate ::= OPERATION
+ ARGUMENT SEQUENCE {
+ cCBSReference CCBSReference OPTIONAL,
+ partyNumberOfA PartyNumber OPTIONAL}
+ RESULT SEQUENCE {
+ recallMode RecallMode,
+ callDetails CallDetails OPTIONAL}
+ ERRORS {InvalidCCBSReference, notSubscribed}
+
+CCBSDeactivate ::= OPERATION
+ ARGUMENT cCBSReference CCBSReference
+ RESULT
+ ERRORS {InvalidCCBSReference}
+CCBSErase ::= OPERATION
+ ARGUMENT SEQUENCE {
+ recallMode RecallMode,
+ cCBSReference CCBSReference,
+ addressOfB Address,
+ q931InfoElement Q931InformationElement,
+ eraseReason CCBSEraseReason}
+
+-- The Bearer capability, High layer compatibility (optional) and Low layer compatibility
+-- (optional) information elements shall be embedded in q931InfoElement.
+
+CCBSRemoteUserFree ::= OPERATION
+ ARGUMENT SEQUENCE {
+ recallMode RecallMode,
+ cCBSReference CCBSReference,
+ addressOfB Address,
+ q931InfoElement Q931InformationElement}
+
+-- The Bearer capability, High layer compatibility (optional) and Low layer compatibility
+-- (optional) information elements shall be embedded in q931InfoElement.
+
+CCBSBFree ::= OPERATION
+ ARGUMENT SEQUENCE {
+ recallMode RecallMode,
+ cCBSReference CCBSReference,
+ addressOfB Address,
+ q931InfoElement Q931InformationElement}
+
+-- The Bearer capability, High layer compatibility (optional) and Low layer compatibility
+-- (optional) information elements shall be embedded in q931InfoElement.
+
+CCBSCall ::= OPERATION
+ ARGUMENT cCBSReference CCBSReference
+ ERRORS {InvalidCCBSReference, AlreadyAccepted,
+ NotReadyForCall}
+
+CCBSStatusRequest ::= OPERATION
+ ARGUMENT SEQUENCE {
+ recallMode RecallMode,
+ cCBSReference CCBSReference,
+ q931InfoElement Q931InformationElement}
+ RESULT BOOLEAN -- free=TRUE, busy=FALSE
+
+-- The Bearer capability, High layer compatibility (optional) and Low layer compatibility
+-- (optional) information elements shall be embedded in q931InfoElement.
+
+CCBSStopAlerting ::= OPERATION
+ ARGUMENT cCBSReference CCBSReference
+
+CallDetails ::= SEQUENCE SIZE(1..5) OF CallInformation
+
+CallInformation ::= SEQUENCE {
+ addressOfB Address,
+ q931InfoElement Q931InformationElement,
+ cCBSReference CCBSReference,
+ subAddressOfA PartySubaddress OPTIONAL}
+
+-- The Bearer capability, High layer compatibility (optional) and Low layer compatibility
+-- (optional) information elements shall be embedded in q931InfoElement.
+
+InvalidCallLinkageID ::= ERROR
+InvalidCCBSReference ::= ERROR
+LongTermDenial ::= ERROR
+ShortTermDenial ::= ERROR
+CCBSIsAlreadyActivated ::= ERROR
+AlreadyAccepted ::= ERROR
+OutgoingCCBSQueueFull ::= ERROR
+CallFailureReasonNotBusy ::= ERROR
+NotReadyForCall ::= ERROR
+
+CallLinkageID ::= INTEGER (0..127)
+CCBSReference ::= INTEGER (0..127)
+CCBSEraseReason ::= ENUMERATED {
+ normal-unspecified (0),
+ t-CCBS2-timeout (1),
+ t-CCBS3-timeout (2),
+ basic-call-failed (3)}
+
+RecallMode ::= ENUMERATED {
+ globalRecall (0),
+ specificRecall (1)}
+
+cCBSOID OBJECT IDENTIFIER ::= {ccitt identified-organization etsi(0) 359
+ operations-and-errors(1)}
+
+callInfoRetain CallInfoRetain ::= globalValue {cCBSOID 1}
+cCBSRequest CCBSRequest ::= globalValue {cCBSOID 2}
+cCBSDeactivate CCBSDeactivate ::= globalValue {cCBSOID 3}
+cCBSInterrogate CCBSInterrogate ::= globalValue {cCBSOID 4}
+cCBSErase CCBSErase ::= globalValue {cCBSOID 5}
+cCBSRemoteUserFree CCBSRemoteUserFree ::= globalValue {cCBSOID 6}
+cCBSCall CCBSCall ::= globalValue {cCBSOID 7}
+cCBSStatusRequest CCBSStatusRequest ::= globalValue {cCBSOID 8}
+cCBSBFree CCBSBFree ::= globalValue {cCBSOID 9}
+eraseCallLinkageID EraseCallLinkageID ::= globalValue {cCBSOID 10}
+cCBSStopAlerting CCBSStopAlerting ::= globalValue {cCBSOID 11}
+invalidCallLinkageID InvalidCallLinkageID ::= globalValue {cCBSOID 20}
+invalidCCBSReference InvalidCCBSReference ::= globalValue {cCBSOID 21}
+longTermDenial LongTermDenial ::= globalValue {cCBSOID 22}
+shortTermDenial ShortTermDenial ::= globalValue {cCBSOID 23}
+cCBSIsAlreadyActivated CCBSIsAlreadyActivated ::= globalValue {cCBSOID 24}
+alreadyAccepted AlreadyAccepted ::= globalValue {cCBSOID 25}
+outgoingCCBSQueueFull OutgoingCCBSQueueFull ::= globalValue {cCBSOID 26}
+callFailureReasonNotBusy CallFailureReasonNotBusy ::= globalValue {cCBSOID 27}
+notReadyForCall NotReadyForCall ::= globalValue {cCBSOID 28}
+
+
+END -- of CCBS-Operations-and-Errors
diff --git a/epan/dissectors/asn1/isdn-sup/CCBS-private-networks-Operations-and-Errors.asn b/epan/dissectors/asn1/isdn-sup/CCBS-private-networks-Operations-and-Errors.asn
new file mode 100644
index 0000000000..61712b734e
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/CCBS-private-networks-Operations-and-Errors.asn
@@ -0,0 +1,69 @@
+--
+-- EN 300 359-1 Ver. 1.3.2
+--
+CCBS-private-networks-Operations-and-Errors {ccitt identified-organization etsi(0) 359
+ private-networks-operations-and-errors(2)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS CCBS-T-Request, CCBS-T-Call, CCBS-T-Suspend, CCBS-T-Resume,
+ CCBS-T-RemoteUserFree, CCBS-T-Available, LongTermDenial, ShortTermDenial;
+
+IMPORTS OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+
+ notSubscribed
+ FROM General-Errors
+ {ccitt identified-organization etsi(0) 196 general-errors(2)}
+
+ Address
+ FROM Addressing-Data-Elements
+ {ccitt identified-organization etsi(0) 196 addressing-data-elements(6)}
+ Q931InformationElement
+ FROM Embedded-Q931-Types
+ {ccitt identified-organization etsi(0) 196 embedded-q931-types(7)};
+
+CCBS-T-Request ::= OPERATION
+ ARGUMENT SEQUENCE {
+ destinationAddress Address,
+ q931InfoElement Q931InformationElement,
+ -- contains HLC, LLC and BC information
+ retentionSupported [1] IMPLICIT BOOLEAN
+ DEFAULT FALSE,
+ presentationAllowedIndicator [2] IMPLICIT BOOLEAN
+ OPTIONAL,
+ -- The use of this parameter is specified in
+ -- EN 300 195-1 for interaction of CCBS with CLIP
+ originatingAddress Address OPTIONAL}
+ -- The use of this parameter is specified in
+ -- EN 300 195-1 for interaction of CCBS with CLIP
+ RESULT retentionSupported BOOLEAN -- Default False
+ ERRORS {ShortTermDenial, notSubscribed, LongTermDenial}
+
+CCBS-T-Call ::= OPERATION
+CCBS-T-Suspend ::= OPERATION
+CCBS-T-Resume ::= OPERATION
+CCBS-T-RemoteUserFree ::= OPERATION
+CCBS-T-Available ::= OPERATION
+
+ShortTermDenial ::= ERROR
+LongTermDenial ::= ERROR
+
+cCBS-T-OID OBJECT IDENTIFIER ::= {ccitt identified-organization etsi(0) 359
+ private-networks-operations-and-errors(2)}
+
+cCBS-T-Request CCBS-T-Request ::= globalValue {cCBS-T-OID 1}
+cCBS-T-Call CCBS-T-Call ::= globalValue {cCBS-T-OID 2}
+cCBS-T-Suspend CCBS-T-Suspend ::= globalValue {cCBS-T-OID 3}
+cCBS-T-Resume CCBS-T-Resume ::= globalValue {cCBS-T-OID 4}
+cCBS-T-RemoteUserFree CCBS-T-RemoteUserFree ::= globalValue {cCBS-T-OID 5}
+cCBS-T-Available CCBS-T-Available ::= globalValue {cCBS-T-OID 6}
+
+longTermDenial LongTermDenial ::= globalValue {cCBS-T-OID 20}
+shortTermDenial ShortTermDenial ::= globalValue {cCBS-T-OID 21}
+
+
+END -- of CCBS-private-networks-operations-and-errors
diff --git a/epan/dissectors/asn1/isdn-sup/CMakeLists.txt b/epan/dissectors/asn1/isdn-sup/CMakeLists.txt
new file mode 100644
index 0000000000..a5210cce27
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/CMakeLists.txt
@@ -0,0 +1,62 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME isdn-sup )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ Addressing-Data-Elements.asn
+ Basic-Service-Elements.asn
+ Embedded-Q931-Types.asn
+ General-Errors.asn
+ Advice-of-Charge-Operations.asn
+ Closed-User-Group-Service-Operations.asn
+ Conference-Add-On-Operations.asn
+ Diversion-Operations.asn
+ MCID-Operations.asn
+ User-To-User-Signalling-Operations.asn
+ Freephone-Operations.asn
+ MLPP-Operations-And-Errors.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/isdn-sup/Closed-User-Group-Service-Operations.asn b/epan/dissectors/asn1/isdn-sup/Closed-User-Group-Service-Operations.asn
new file mode 100644
index 0000000000..db63f8fed9
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Closed-User-Group-Service-Operations.asn
@@ -0,0 +1,77 @@
+--
+-- EN 300 138-1 Ver. 1.3.4
+--
+Closed-User-Group-Service-Operations {ccitt identified-organization etsi (0) 138 operations-and-errors (1)}
+
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS CUGCall,
+ InvalidOrUnregisteredCUGIndex,
+ RequestedBasicServiceViolatesCUGConstraints,
+ OutgoingCallsBarredWithinCUG,
+ IncomingCallsBarredWithinCUG,
+ UserNotMemeberOfCUG,
+ InconsistencyInDesignatedFacilityAndSubscriberClass;
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+ notSubscribed,
+ basicServiceNotProvided
+ FROM General-Errors
+ {ccitt identified-organization etsi(0) 196 general-errors};
+
+
+ cUGcall OPERATION ::= {
+ -- in Facility information element. Invoked from calling user to originating
+ -- network side. Also from destination network side to called user
+ ARGUMENT CUGcallArg
+ -- in SETUP message
+ RETURN RESULT FALSE
+
+ ERRORS {
+ invalidOrUnregisteredCUGIndex |
+ requestedBasicServiceViolatesCUGConstraints |
+ outgoingCallsBarredWithinCUG |
+ incomingCallsBarredWithinCUG |
+ userNotMemberOfCUG |
+ basicServiceNotProvided |
+ inconsistencyInDesignatedFacilityAndSubscriberClass |
+ notSubscribed
+ }
+ -- in clearing message to calling user. Also to destination network side.
+ CODE local: 2}
+
+
+CUGcallArg ::= SEQUENCE{
+ oARequested OARequested DEFAULT FALSE,
+ cUGIndex CUGIndex OPTIONAL
+ }
+
+OARequested ::= [1] IMPLICIT BOOLEAN
+CUGIndex ::= [2] IMPLICIT INTEGER (0..32767)
+
+InvalidOrUnregisteredCUGIndex ::= ERROR
+invalidOrUnregisteredCUGIndex ERROR ::= { CODE local: 16}
+RequestedBasicServiceViolatesCUGConstraints ::= ERROR
+requestedBasicServiceViolatesCUGConstraints ERROR ::= { CODE local: 17}
+OutgoingCallsBarredWithinCUG ::= ERROR
+outgoingCallsBarredWithinCUG ERROR ::= { CODE local: 18}
+IncomingCallsBarredWithinCUG ::= ERROR
+incomingCallsBarredWithinCUG ERROR ::= { CODE local: 19}
+UserNotMemberOfCUG ::= ERROR
+userNotMemberOfCUG ERROR ::= { CODE local: 20}
+InconsistencyInDesignatedFacilityAndSubscriberClass ::= ERROR
+inconsistencyInDesignatedFacilityAndSubscriberClass ERROR ::= { CODE local: 21}
+
+-- cUGCall CUGCall ::= localValue 2
+
+--invalidOrUnregisteredCUGIndex InvalidOrUnregisteredCUGIndex ::= localValue 16
+--requestedBasicServiceViolatesCUGConstraints RequestedBasicServiceViolatesCUGConstraints ::= localValue 17
+--outgoingCallsBarredWithinCUG OutgoingCallsBarredWithinCUG ::= localValue 18
+--incomingCallsBarredWithinCUG IncomingCallsBarredWithinCUG ::= localValue 19
+--userNotMemberOfCUG UserNotMemberOfCUG ::= localValue 20
+--inconsistencyInDesignatedFacilityAndSubscriberClass InconsistencyInDesignatedFacilityAndSubscriberClass ::= localValue 21
+
+END -- Closed-User-Group-Service-Operations
+
diff --git a/epan/dissectors/asn1/isdn-sup/Conference-Add-On-Operations.asn b/epan/dissectors/asn1/isdn-sup/Conference-Add-On-Operations.asn
new file mode 100644
index 0000000000..6fb2c17cf8
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Conference-Add-On-Operations.asn
@@ -0,0 +1,123 @@
+--
+-- EN 300 185-1 Ver. 1.2.4
+--
+Conference-Add-On-Operations {ccitt identified-organization etsi (0) 185 operations-and-types (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+EXPORTS BeginCONF, AddCONF, SplitCONF, DropCONF,
+ IsolateCONF, ReattachCONF, PartyDISC,
+ IllConferenceId, IllPartyId,
+ NumberOfPartiesExceeded,
+ NotActive, NotAllowed, PartyId, ConferenceId, ConfSize;
+
+IMPORTS OPERATION,
+ ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+ notSubscribed, notAvailable,
+ supplementaryServiceInteractionNotAllowed,
+ resourceUnavailable, invalidCallState
+ FROM General-Errors
+ {ccitt identified-organization etsi(0) 196 general-errors (2)};
+
+beginCONF OPERATION ::= {
+ ARGUMENT BeginCONFArg -- optional
+ RESULT BeginCONFRes
+ ERRORS {notSubscribed | notAvailable |
+ resourceUnavailable |
+ invalidCallState |
+ numberOfPartiesExceeded}
+ CODE local: 40}
+
+BeginCONFArg ::= ConfSize
+
+BeginCONFRes ::= SEQUENCE {
+ conferenceId ConferenceId,
+ partyId PartyId OPTIONAL }
+
+addCONF OPERATION ::= {
+ ARGUMENT AddCONFArg
+ RESULT AddCONFRes
+ ERRORS {IllConferenceId |
+ NumberOfPartiesExceeded |
+ NotAllowed |
+ supplementaryServiceInteractionNotAllowed |
+ invalidCallState}
+ CODE local: 41}
+
+AddCONFArg ::= ConferenceId
+AddCONFRes ::= PartyId
+
+splitCONF OPERATION ::= {
+ ARGUMENT SplitCONFArg
+ RETURN RESULT FALSE
+ ERRORS {IllConferenceId | IllPartyId}
+ CODE local: 42}
+
+
+SplitCONFArg ::= SEQUENCE { conferenceId ConferenceId,
+ partyId PartyId}
+
+dropCONF OPERATION ::= {
+ ARGUMENT DropCONFArg
+ RETURN RESULT FALSE
+ ERRORS {IllPartyId, NotActive}
+ CODE local: 43}
+
+DropCONFArg ::= PartyId
+
+isolateCONF OPERATION ::= {
+ ARGUMENT IsolateCONFArg
+ RETURN RESULT FALSE
+ ERRORS {IllPartyId, NotActive}
+ CODE local: 44}
+
+IsolateCONFArg ::= PartyId
+
+reattachCONF OPERATION ::= {
+ ARGUMENT ReattachCONFArg
+ RETURN RESULT FALSE
+ ERRORS {IllPartyId, NotActive}
+ CODE local: 45}
+
+ReattachCONFArg ::= PartyId
+
+partyDISC OPERATION ::= {
+ ARGUMENT PartyDISCArg
+ RETURN RESULT FALSE
+ CODE local: 46}
+
+PartyDISCArg ::= PartyId
+
+--IllConferenceId ::= ERROR
+illConferenceId ERROR ::= { CODE local: 28}
+--IllPartyId ::= ERROR
+illPartyId ERROR ::= { CODE local: 29}
+--NumberOfPartiesExceeded ::= ERROR
+numberOfPartiesExceeded ERROR ::= { CODE local: 30}
+--NotActive ::= ERROR
+notActive ERROR ::= { CODE local: 31}
+--NotAllowed ::= ERROR
+notAllowed ERROR ::= { CODE local: 32}
+
+PartyId ::= INTEGER (0..127)
+ConferenceId ::= INTEGER (0..127)
+ConfSize ::= INTEGER (0..127)
+
+--beginCONF BeginCONF ::= 40
+--addCONF AddCONF ::= 41
+--splitCONF SplitCONF ::= 42
+--dropCONF DropCONF ::= 43
+--isolateCONF IsolateCONF ::= 44
+--reattachCONF ReattachCONF ::= 45
+--partyDISC PartyDISC ::= 46
+--illConferenceId IllConferenceId ::= 28
+--illPartyId IllPartyId ::= 29
+--numberOfPartiesExceeded NumberOfPartiesExceeded ::= 30
+--notActive NotActive ::= 31
+--notAllowed NotAllowed ::= 32
+
+END -- of Conference-Add-On-Operations
+
diff --git a/epan/dissectors/asn1/isdn-sup/Diversion-Operations.asn b/epan/dissectors/asn1/isdn-sup/Diversion-Operations.asn
new file mode 100644
index 0000000000..9db186c0ef
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Diversion-Operations.asn
@@ -0,0 +1,365 @@
+--
+-- ETSI EN 300 207-1 V3.1.1 (2001-06)
+--
+
+Diversion-Operations {etsi(0) xx(207) operations-and-errors(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS ActivationDiversion,
+ DeactivationDiversion,
+ ActivationStatusNotificationDiv,
+ DeactivationStatusNotificationDiv,
+ InterrogationDiversion,
+ InterrogateServedUserNumbers,
+ DiversionInformation,
+ CallDeflection,
+ CallRerouteing,
+ DivertingLegInformation1,
+ DivertingLegInformation2,
+ DivertingLegInformation3,
+ InvalidDivertedToNr,
+ SpecialServiceNr,
+ DiversionToServedUserNr,
+ IncomingCallAccepted,
+ NumberOfDiversionsExceeded,
+ NotActivated,
+ RequestAlreadyAccepted,
+ invalidDivertedToNr,
+ specialServiceNr,
+ diversionToServedUserNr,
+ incomingCallAccepted,
+ numberOfDiversionsExceeded,
+ notActivated,
+ requestAlreadyAccepted,
+ServedUserNr;
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+
+ notSubscribed,
+ notAvailable,
+ invalidServedUserNr,
+ basicServiceNotProvided,
+ supplementaryServiceInteractionNotAllowed,
+ resourceUnavailable
+ FROM General-Errors
+ {itu-t(0) identified-organization(4) etsi(0) 196 general-errors(2)}
+
+ PresentedAddressScreened,
+ PresentedNumberUnscreened,
+ Address,
+ PartyNumber,
+ PartySubaddress,
+ PresentationAllowedIndicator
+
+ FROM Addressing-Data-Elements
+ {itu-t(0) identified-organization(4) etsi(0) 196 addressing-data-elements(6)}
+
+ BasicService
+ FROM Basic-Service-Elements
+ {itu-t(0) identified-organization(4) etsi(0) 196 basic-service-elements(8)}
+
+ Q931InformationElement
+ FROM Embedded-Q931-Types
+ {itu-t(0) identified-organization(4) etsi(0) 196 embedded-q931-types(7)};
+
+
+ activationDiversion OPERATION ::= {
+ ARGUMENT ActivationDiversionArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ ERRORS {
+ notSubscribed,
+ notAvailable,
+ invalidServedUserNr,
+ supplementaryServiceInteractionNotAllowed,
+ basicServiceNotProvided,
+ resourceUnavailable,
+ invalidDivertedToNr,
+ specialServiceNr,
+ diversionToServedUserNr,
+ invalidNoReplyTimerValue}
+ CODE local: 7}
+
+ ActivationDiversionArg ::= SEQUENCE {
+ procedure Procedure,
+ basicService BasicService,
+ forwardedToAddress Address,
+ servedUserNr ServedUserNr,
+ noReplyTimer NoReplyTimer OPTIONAL
+ }
+
+
+
+
+-- End of ActivationDiversion operation definition
+
+ deactivationDiversion OPERATION ::= {
+ ARGUMENT DeactivationDiversionArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ ERRORS {
+ notSubscribed |
+ notAvailable |
+ invalidServedUserNr |
+ NotActivated}
+ CODE local: 8}
+
+ DeactivationDiversionArg ::= SEQUENCE {
+ procedure Procedure,
+ basicService BasicService,
+ servedUserNr ServedUserNr
+ }
+
+
+-- End of DeactivationDiversion operation definition
+
+ activationStatusNotificationDiv OPERATION ::= {
+ ARGUMENT ActivationStatusNotificationDivArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 9}
+
+ ActivationStatusNotificationDivArg ::= SEQUENCE {
+ procedure Procedure,
+ basicService BasicService,
+ forwardedToAddresss Address,
+ servedUserNr ServedUserNr}
+
+-- End of ActivationStatusNotificationDiv operation definition
+
+ deactivationStatusNotificationDiv OPERATION ::= {
+ ARGUMENT DeactivationStatusNotificationDivArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 10}
+
+ DeactivationStatusNotificationDivArg ::= SEQUENCE {
+ procedure Procedure,
+ basicService BasicService,
+ servedUserNr ServedUserNr}
+
+-- End of DeactivationStatusNotificationDiv operation definition
+
+ interrogationDiversion OPERATION ::= {
+ ARGUMENT InterrogationDiversionArg
+ RESULT InterrogationDiversionRes
+ ERRORS {
+ notSubscribed |
+ notAvailable |
+ invalidServedUserNr}
+ CODE local: 11}
+
+ InterrogationDiversionArg ::= SEQUENCE {
+ procedure Procedure,
+ basicService BasicService DEFAULT allServices,
+ servedUserNr ServedUserNr}
+
+ InterrogationDiversionRes ::= IntResultList
+
+
+-- End of InterrogationDiversion operation definition
+
+ interrogateServedUserNumbers OPERATION ::= {
+ RESULT InterrogateServedUserNumbersRes
+ ERRORS {
+ notSubscribed |
+ notAvailable}
+ CODE local: 17}
+
+ InterrogateServedUserNumbersRes ::= ServedUserNumberList
+
+-- End of InterrogateServedUserNumbers operation definition
+
+ diversionInformation OPERATION ::= {
+ ARGUMENT DiversionInformationArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 12}
+
+ DiversionInformationArg ::= SEQUENCE {
+ diversionReason DiversionReason,
+ basicService BasicService,
+ servedUserSubaddress PartySubaddress OPTIONAL,
+ callingAddress [0] PresentedAddressScreened OPTIONAL,
+ originalCalledNr [1] PresentedNumberUnscreened OPTIONAL,
+ lastDivertingNr [2] PresentedNumberUnscreened OPTIONAL,
+ lastDivertingReason [3] DiversionReason OPTIONAL,
+ userInfo Q931InformationElement OPTIONAL}
+
+-- The User-user information element, as specified in EN 300 286-1 [19] clause 7.3.3 , shall be
+--embedded in the userInfo parameter.
+
+-- End of DiversionInformation operation definition
+
+ callDeflection OPERATION ::= {
+ ARGUMENT CallDeflectionArg
+ RETURN RESULT FALSE
+ ERRORS {
+ notSubscribed |
+ notAvailable |
+ invalidDivertedToNr |
+ specialServiceNr |
+ diversionToServedUserNr |
+ incomingCallAccepted |
+ numberOfDiversionsExceeded |
+ supplementaryServiceInteractionNotAllowed |
+ requestAlreadyAccepted}
+ CODE local: 13}
+
+ CallDeflectionArg ::= SEQUENCE {
+ deflectionAddress Address,
+ presentationAllowedDivertedToUser PresentationAllowedIndicator
+ OPTIONAL}
+
+-- End of CallDeflection operation definition
+
+ callRerouteing OPERATION ::= {
+ ARGUMENT CallRerouteingArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ ERRORS {
+ notSubscribed |
+ notAvailable |
+ supplementaryServiceInteractionNotAllowed |
+ resourceUnavailable |
+ invalidDivertedToNr |
+ specialServiceNr |
+ diversionToServedUserNr |
+ numberOfDiversionsExceeded}
+ CODE local: 14}
+
+ CallRerouteingArg ::= SEQUENCE {
+ rerouteingReason DiversionReason,
+ calledAddress Address,
+ rerouteingCounter DiversionCounter,
+ q931InfoElement Q931InformationElement,
+ lastRerouteingNr [1] PresentedNumberUnscreened,
+ subscriptionOption [2] SubscriptionOption
+ DEFAULT noNotification,
+ callingPartySubaddress [3] PartySubaddress OPTIONAL}
+
+-- The User-user information element (optional), High layer compatibility information element
+-- (optional), Bearer capability information element and Low layer compatibility information
+-- element (optional) as specified in EN 300 403-1 [11] clause 4.5 shall be embedded in the
+-- q931InfoElement.
+
+
+-- End of CallRerouteing operation definition
+
+ divertingLegInformation1 OPERATION ::= {
+ ARGUMENT DivertingLegInformation1Arg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 18}
+
+ DivertingLegInformation1Arg ::= SEQUENCE {
+ diversionReason DiversionReason,
+ subscriptionOption SubscriptionOption,
+ divertedToNumber PresentedNumberUnscreened OPTIONAL}
+
+-- End of DivertingLegInformation1 operation definition
+
+
+ divertingLegInformation2 OPERATION ::= {
+ ARGUMENT DivertingLegInformation2Arg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 15}
+
+ DivertingLegInformation2Arg ::= SEQUENCE {
+ diversionCounter DiversionCounter,
+ diversionReason DiversionReason,
+ divertingNr [1] PresentedNumberUnscreened OPTIONAL,
+ originalCalledNr [2] PresentedNumberUnscreened OPTIONAL}
+
+-- End of DivertingLegInformation2 operation definition
+ divertingLegInformation3 OPERATION ::= {
+ ARGUMENT DivertingLegInformation3Arg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 19}
+
+ DivertingLegInformation3Arg ::= PresentationAllowedIndicator
+
+-- End of DivertingLegInformation3 operation definition
+
+IntResultList ::= SET SIZE (0..29) OF IntResult
+
+IntResult ::= SEQUENCE {servedUserNr ServedUserNr,
+ basicService BasicService,
+ procedure Procedure,
+ forwardedToAddress Address}
+
+ServedUserNr ::= CHOICE {individualNumber PartyNumber,
+ allNumbers NULL}
+
+DiversionCounter ::= INTEGER (1..5)
+
+SubscriptionOption ::= ENUMERATED {noNotification (0),
+ notificationWithoutDivertedToNr (1),
+ notificationWithDivertedToNr (2)}
+
+Procedure ::= ENUMERATED {cfu (0),
+ cfb (1),
+ cfnr (2)}
+
+ServedUserNumberList ::= SET SIZE (0..99) OF PartyNumber
+
+DiversionReason ::= ENUMERATED {unknown (0),
+ cfu (1),
+ cfb (2),
+ cfnr (3),
+ cdAlerting (4),
+ cdImmediate (5)}
+
+NoReplyTimer ::= INTEGER (1..180)
+
+InvalidDivertedToNr ::= ERROR
+invalidDivertedToNr ERROR ::= { CODE local: 12}
+
+SpecialServiceNr ::= ERROR
+specialServiceNr ERROR ::= { CODE local: 14}
+
+DiversionToServedUserNr ::= ERROR
+diversionToServedUserNr ERROR ::= { CODE local: 15}
+
+IncomingCallAccepted ::= ERROR
+incomingCallAccepted ERROR ::= { CODE local: 23}
+
+NumberOfDiversionsExceeded ::= ERROR
+numberOfDiversionsExceeded ERROR ::= { CODE local: 24}
+
+NotActivated ::= ERROR
+notActivated ERROR ::= { CODE local: 46}
+
+RequestAlreadyAccepted ::= ERROR
+requestAlreadyAccepted ERROR ::= { CODE local: 48}
+
+InvalidNoReplyTimerValue ::= ERROR
+--invalidNoReplyTimerValue ERROR ::= { CODE local: xx}
+
+--deactivationDiversion DeactivationDiversion ::= localValue 8
+--activationStatusNotificationDiv ActivationStatusNotificationDiv ::= localValue 9
+--deactivationStatusNotificationDiv DeactivationStatusNotificationDiv ::= localValue 10
+--interrogationDiversion InterrogationDiversion ::= localValue 11
+--interrogateServedUserNumbers InterrogateServedUserNumbers ::= localValue 17
+--diversionInformation DiversionInformation ::= localValue 12
+--callDeflection CallDeflection ::= localValue 13
+--callRerouteing CallRerouteing ::= localValue 14
+--divertingLegInformation1 DivertingLegInformation1 ::= localValue 18
+--divertingLegInformation3 DivertingLegInformation3 ::= localValue 19
+--divertingLegInformation2 DivertingLegInformation2 ::= localValue 15
+--invalidDivertedToNr InvalidDivertedToNr ::= localValue 12
+--specialServiceNr SpecialServiceNr ::= localValue 14
+--diversionToServedUserNr DiversionToServedUserNr ::= localValue 15
+--incomingCallAccepted IncomingCallAccepted ::= localValue 23
+--numberOfDiversionsExceeded NumberOfDiversionsExceeded ::= localValue 24
+--notActivated NotActivated ::= localValue 46
+--requestAlreadyAccepted RequestAlreadyAccepted ::= localValue 48
+
+END -- of Diversion-Operations
+
diff --git a/epan/dissectors/asn1/isdn-sup/Embedded-Q931-Types.asn b/epan/dissectors/asn1/isdn-sup/Embedded-Q931-Types.asn
new file mode 100644
index 0000000000..27be2df7b8
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Embedded-Q931-Types.asn
@@ -0,0 +1,11 @@
+Embedded-Q931-Types {itu-t identified-organization etsi(0) 196 embedded-q931-types(7)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS Q931InformationElement;
+
+Q931InformationElement ::= [APPLICATION 0] IMPLICIT OCTET STRING
+
+END -- of Embedded-Q931-Types
diff --git a/epan/dissectors/asn1/isdn-sup/Explicit-Call-Transfer-Operations-and-Errors.asn b/epan/dissectors/asn1/isdn-sup/Explicit-Call-Transfer-Operations-and-Errors.asn
new file mode 100644
index 0000000000..3d054539a5
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Explicit-Call-Transfer-Operations-and-Errors.asn
@@ -0,0 +1,150 @@
+--
+-- EN 300 369-1 V1.2.4 (1998-10)
+--
+Explicit-Call-Transfer-Operations-and-Errors {ccitt identified-organization etsi(0) 369
+version(2) operations-and-errors(1)}
+
+DEFINITIONS ::=
+
+
+BEGIN
+
+
+ EXPORTS
+ ectLinkIdRequest,
+ ectExecute,
+ requestSubaddress,
+ subaddressTransfer,
+ explicitEctExecute,
+ linkIdNotAssignedByNetwork,
+ ectLoopTest,
+ ectInform;
+
+
+ IMPORTS
+ OPERATION,
+ ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations (4) notation (0)}
+
+
+ notAvailable,
+ notSubscribed,
+ resourceUnavailable,
+ supplementaryServiceInteractionNotAllowed,
+ invalidCallState
+ FROM General-Errors
+ {itu-t(0) identified-organization(4) etsi (0) 196 general-errors (2)}
+
+
+ PartySubaddress,
+ PresentedNumberUnscreened
+ FROM Addressing-Data-Elements
+ {itu-t(0) identified-organization(4) etsi (0) 196 addressing-data-elements (6)};
+
+
+ ectExecute OPERATION::=
+ {
+ ERRORS {
+ notAvailable |
+ notSubscribed |
+ invalidCallState |
+ supplementaryServiceInteractionNotAllowed }
+
+ CODE local:6
+ }
+
+ ectInform OPERATION::=
+ {
+ ARGUMENT SEQUENCE {
+ en ENUMERATED {
+ alerting (0),
+ active (1) },
+ redirectionNumber PresentedNumberUnscreened OPTIONAL }
+
+ CODE global:{eCTOID ectInform-operation (5)}
+ }
+
+ ectLinkIdRequest OPERATION::=
+ {
+ RESULT EctLinkIdRequestRes
+ ERRORS {
+ resourceUnavailable }
+
+ CODE global:{eCTOID ectLinkIdRequest-operation (4)}
+ }
+
+ EctLinkIdRequestRes ::= LinkId
+
+ ectLoopTest OPERATION::=
+ {
+ ARGUMENT
+ CallTransferIdentity
+
+
+ RESULT
+ LoopResult
+
+
+ ERRORS {
+ notAvailable }
+
+ CODE global:{eCTOID ectLoopTest-operation (6)}
+ }
+
+
+ explicitEctExecute OPERATION::=
+ {
+ ARGUMENT
+ LinkId
+
+ ERRORS {
+ notAvailable |
+ notSubscribed |
+ invalidCallState |
+ supplementaryServiceInteractionNotAllowed |
+ linkIdNotAssignedByNetwork }
+
+ CODE global:{eCTOID explicitEctExecute-operation (1)}
+ }
+
+
+ requestSubaddress OPERATION::=
+ {
+ CODE global:{eCTOID requestSubAddress-operation (2)}
+ }
+
+
+ subaddressTransfer OPERATION::=
+ {
+ ARGUMENT PartySubaddress
+
+ CODE global:{eCTOID subaddressTransfer-operation (3)}
+ }
+
+ CallTransferIdentity ::= INTEGER (-128..127)
+ LinkId ::= INTEGER (-32768..32767)
+
+ LoopResult ::=
+ ENUMERATED {
+ insufficientInformation (0),
+ noLoopExists (1),
+ simultaneousTransfer (2) }
+
+
+ eCTOID OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi (0) 369
+ operation-and-errors (1)}
+
+
+ linkIdNotAssignedByNetwork ERROR ::= {CODE global:{eCTOID linkIdNotAssignedByNetwork-error (21)}}
+
+
+-- ectExecute EctExecute ::= localValue 6
+ explicitEctExecute ExplicitEctExecute ::= globalValue {eCTOID explicitEctExecute-operation(1)}
+ requestSubaddress RequestSubaddress ::= globalValue {eCTOID requestSubaddress-operation (2)}
+ subaddressTransfer SubaddressTransfer ::= globalValue {eCTOID subaddressTransfer-operation(3)}
+ ectLinkIdRequest EctLinkIdRequest ::= globalValue {eCTOID ectLinkIdRequest-operation (4)}
+ ectInform EctInform ::= globalValue {eCTOID ectInform-operation (5)}
+ ectLoopTest EctLoopTest ::= globalValue {eCTOID ectLoopTest-operation (6)}
+ linkIdNotAssignedByNetwork LinkIdNotAssignedByNetwork ::= globalValue {eCTOID linkIdNotAssignedByNetwork-error(21)}
+END --Explicit-Call-Transfer-Operations-And-Errors
diff --git a/epan/dissectors/asn1/isdn-sup/Freephone-Operations.asn b/epan/dissectors/asn1/isdn-sup/Freephone-Operations.asn
new file mode 100644
index 0000000000..989e687775
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Freephone-Operations.asn
@@ -0,0 +1,112 @@
+--
+-- EN 300 210-1 Ver. 1.2.4
+--
+Freephone-Operations {ccitt identified-organization etsi(0) 210 operations-and-errors(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS CallFPH, Monitor-T-FPH, Free-T-FPH, Call-T-FPH;
+
+IMPORTS OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations (4) notation (0)}
+
+ notAvailable, notImplemented
+ FROM General-Errors
+ {itu-t(0) identified-organization(4) etsi(0) 196 general-errors(2)}
+
+ PartyNumber
+ FROM Addressing-Data-Elements
+ {itu-t(0) identified-organization(4) etsi(0) 196 addressing-data-elements(6)}
+
+ Q931InformationElement
+ FROM Embedded-Q931-Types
+ {itu-t(0) identified-organization(4) etsi(0) 196 embedded-q931-types(7)};
+
+--CallFPH ::= OPERATION
+-- ARGUMENT calledFreephoneNr CalledFreephoneNr - - optional
+
+ callFPH OPERATION ::=
+ {
+ ARGUMENT CalledFreephoneNrArg -- optional
+
+ CODE global:{fPHOID callFPH-operation (1)}
+ }
+
+CalledFreephoneNrArg ::= CalledFreephoneNr
+
+--Monitor-T-FPH ::= OPERATION
+-- ARGUMENT SEQUENCE {
+-- q931InfoElement Q931InformationElement,
+-- servedUserDestination PartyNumber,
+-- queueIdentity QueueIdentity OPTIONAL}
+-- RESULT
+-- ERRORS { notAvailable,
+-- notImplemented}
+
+-- the Bearer capability, High layer compatibility (optional) and Low layer compatibility
+-- (optional) information elements shall be embedded in q931InfoElement.
+
+ monitor-T-FPH OPERATION ::=
+ {
+ ARGUMENT Monitor-T-FPHArg
+
+ ERRORS { notAvailable|
+ notImplemented}
+
+ CODE global:{fPHOID monitor-T-FPH-operation(2)}
+ }
+
+Monitor-T-FPHArg ::= SEQUENCE {
+ q931InfoElement Q931InformationElement,
+ servedUserDestination PartyNumber,
+ queueIdentity QueueIdentity OPTIONAL}
+
+--Free-T-FPH ::= OPERATION
+-- ARGUMENT SEQUENCE {
+-- servedUserDestination PartyNumber,
+-- fPHReference FPHReference}
+--
+ free-T-FPH OPERATION ::=
+ {
+ ARGUMENT Free-T-FPHArg
+
+ CODE global:{fPHOID free-T-FPH-operation(3)}
+ }
+
+ Free-T-FPHArg ::= SEQUENCE {
+ servedUserDestination PartyNumber,
+ fPHReference FPHReference}
+
+--Call-T-FPH ::= OPERATION
+-- ARGUMENT SEQUENCE {
+-- fPHReference FPHReference,
+-- calledFreephoneNr CalledFreephoneNr OPTIONAL}
+
+ call-T-FPH OPERATION ::=
+ {
+ ARGUMENT Call-T-FPHArg
+
+ CODE global:{fPHOID call-T-FPH-operation(4)}
+ }
+
+ Call-T-FPHArg ::= SEQUENCE {
+ fPHReference FPHReference,
+ calledFreephoneNr CalledFreephoneNr OPTIONAL}
+
+FPHReference ::= INTEGER (0..127)
+CalledFreephoneNr ::= PartyNumber
+QueueIdentity ::= INTEGER (0..127)
+
+fPHOID OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) 210
+ freephone-operations(1)}
+
+--callFPH CallFPH ::= globalValue {fPHOID callFPH-operation(1)}
+--monitor-T-FPH Monitor-T-FPH ::= globalValue {fPHOID monitor-T-FPH-operation(2)}
+--free-T-FPH Free-T-FPH ::= globalValue {fPHOID free-T-FPH-operation(3)}
+--call-T-FPH Call-T-FPH ::= globalValue {fPHOID call-T-FPH-operation(4)}
+
+END -- Freephone-Operations
+
diff --git a/epan/dissectors/asn1/isdn-sup/General-Errors.asn b/epan/dissectors/asn1/isdn-sup/General-Errors.asn
new file mode 100644
index 0000000000..fe0d05f8dc
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/General-Errors.asn
@@ -0,0 +1,65 @@
+--
+-- EN 300 196-1 Ver. 1.3.2
+--
+
+General-Errors {itu-t identified-organization etsi(0) 196 general-errors(2)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS notSubscribed, notAvailable, notImplemented, invalidServedUserNr,
+ invalidCallState, basicServiceNotProvided, notIncomingCall,
+ supplementaryServiceInteractionNotAllowed, resourceUnavailable;
+
+IMPORTS ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)};
+
+notSubscribed ERROR ::= { CODE local: 0}
+
+
+ -- The requested service or function has not been subscribed for the basic service, and
+ -- optionally the served user's ISDN number, included in the activation invoke component.
+ -- Alternatively the basic service may not have been subscribed.
+
+
+notAvailable ERROR ::= { CODE local: 3}
+
+ -- The requested supplementary service or function is not available for the basic service,
+ -- and optionally the served user's ISDN number (e.g. temporary fault).
+
+notImplemented ERROR ::= { CODE local: 4}
+
+ -- The supplementary service or function requested is not implemented for the basic
+ -- service, and optionally the served user's ISDN number (e.g. service not provided).
+
+invalidServedUserNr ERROR ::= { CODE local: 6}
+
+ -- The served user's number provided is not a valid number.
+
+invalidCallState ERROR ::= { CODE local: 7}
+
+ -- The supplementary service or function cannot be requested in the current basic call state
+ -- or auxiliary state.
+
+basicServiceNotProvided ERROR ::= { CODE local: 8}
+
+ -- The served user has not subscribed to the basic service (bearer and/or teleservice) for
+ -- which the supplementary service or function was requested.
+
+notIncomingCall ERROR ::= { CODE local: 9}
+
+ -- The supplementary service or function was not requested for an incoming call.
+
+supplementaryServiceInteractionNotAllowed ERROR ::= { CODE local: 10}
+
+ -- The performance of the requested supplementary service or function is prohibited
+ -- by another supplementary service or function.
+
+resourceUnavailable ERROR ::= { CODE local: 11}
+
+ -- The resources required to perform adequately the requested supplementary service or
+ -- function are not available.
+
+END -- of General-Errors
diff --git a/epan/dissectors/asn1/isdn-sup/MCID-Operations.asn b/epan/dissectors/asn1/isdn-sup/MCID-Operations.asn
new file mode 100644
index 0000000000..2f8da479f3
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/MCID-Operations.asn
@@ -0,0 +1,38 @@
+--
+-- EN 300 130-1 Ver. 1.2.4
+--
+
+MCID-Operations {ccitt identified-organization etsi (0) 130 operations-and-errors (1)}
+
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS MCIDRequest;
+
+
+IMPORTS
+ --OPERATION
+ --FROM Remote-Operation-Notation
+ -- {joint-iso-ccitt remote-operations(4) notation (0)}
+ notAvailable,
+ notSubscribed,
+ invalidCallState,
+ notIncomingCall,
+ supplementaryServiceInteractionNotAllowed
+ FROM General-Errors
+ {ccitt identified-organization etsi (0) 196 general errors};
+
+
+
+ mCIDRequest OPERATION ::= {
+ RETURN RESULT FALSE
+ ERRORS {
+ notAvailable |
+ invalidCallState |
+ notIncomingCall |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 3}
+
+-- mCIDRequest MCIDRequest ::= 3
+
+END -- of MCID-Operations
diff --git a/epan/dissectors/asn1/isdn-sup/MLPP-Operations-And-Errors.asn b/epan/dissectors/asn1/isdn-sup/MLPP-Operations-And-Errors.asn
new file mode 100644
index 0000000000..193232ad14
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/MLPP-Operations-And-Errors.asn
@@ -0,0 +1,135 @@
+-- MLPP-Operations-And-Errors.asn
+--
+-- Taken from ITU Recommendation Q.955.3 (03/93)
+--
+
+-- Begin MLPP-operations definitions
+MLPP-operations {ccitt recommendation q 955 mlpp (3) operations-and-errors(1)}
+DEFINITIONS ::=
+BEGIN
+EXPORTS mLPPLFBQuery, mLPPCallRequest, mLPPCallPreemption,
+ unauthorizedPrecedenceLevel;
+
+IMPORTS OPERATIONS, ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+
+ userNotSubscribed, rejectedByNetwork
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+
+ Q931InformationElement
+ FROM Embedded-Q931-Types
+ {ccitt identified-organization etsi(0) 196 embedded-q931-types(7)};
+
+-- Begin mLPPLFBquery operation
+mLPPLFBQuery OPERATION ::= {
+ ARGUMENT MLPPLFBArg
+ RESULT MLPPLFBResp
+ ERRORS {userNotSubscribed | rejectedByNetwork}
+ CODE local: 24
+}
+
+MLPPLFBArg ::= SEQUENCE {mlppParams MLPPParams, ieArg IEArg}
+
+MLPPParams ::= SEQUENCE {
+ precLevel PrecLevel, lfbIndictn LFBIndictn, mlppSvcDomn MLPPSvcDomn
+}
+
+PrecLevel ::= ENUMERATED {
+ flashOverride(0), flash(1), immediate(2), priority(3), routine(4)
+}
+-- Prec level identifies the precedence level of the MLPP call.
+
+LFBIndictn ::= ENUMERATED {
+ ifbAllowed(0), ifbNotAllowed(1), pathReserved(2)
+}
+-- LFBIndictri is coded for values. as indicated.
+
+MLPPSvcDomn ::= OCTET STRING(5)
+-- Initial two octets provide the International ID. while the
+-- following three octets provide the MLPP Domain
+-- identification.
+
+IEArg ::= Q931InformationElement
+-- Bearer capability. Calling party number. Called party
+-- number. and Channel identification information elements in
+-- the IE arg shall be as defined in Q.931.
+
+MLPPLFBResp ::= SEQUENCE {statusQuery StatusQuery, location Location}
+-- The MLPP DSS1 LFB query response contains two
+-- parameters. StatusQuery and Location.
+
+StatusQuery ::= ENUMERATED {
+ success(1),
+ -- Many cases as described in the optional MLPP LFB
+ failure(2),
+ -- Many cases as described in the MLPP procedure with LFB
+ -- option.
+ bearerCapabilityNotAuthorized(3),
+ -- bearer capability check failure. not authorized
+ bearerCapabilityNotlmplemented(4),
+ -- bearer capability check failure. not implemented
+ bearerCapabilityNotAvailable(5),
+ -- bearer capability check failure. not available
+ pathReservationDenied(6)
+ -- circuit cannot be reserved at the far end
+}
+
+Location ::= Q931InformationElement
+-- a bit string which conforms to Octect 3 of the Cause
+-- information element as defined in 0.931. except that bit 8 is
+-- marked as a spare.
+
+-- End of mLPPLFBquery operation.
+
+-- Begin mLPPCallRequest operation
+mLPPCallRequest OPERATION ::= {
+ ARGUMENT MLPPParams
+ RESULT StatusRequest
+ ERRORS {userNotSubscribed | rejectedByNetwork | unauthorizedPrecedenceLevel}
+ CODE local: 25
+}
+
+StatusRequest ::= ENUMERATED {
+ successCalledUserMLPPSubscriber(1),
+ -- Called user is an MLPP subscriber.
+ successCalledUserNotMLPPSubscriber(2),
+ -- Called user is not an MLPP subscriber.
+ failureCaseA(3),
+ -- MLPP call from the calling user is a precedence call and
+ -- cannot be completed.
+ failureCaseB(4)
+ -- MLPP call from the calling user or MLPP call between two
+ -- MLPP subscribers experiences preemption.
+}
+-- End MLPPCallRequest operation.
+
+-- Begin mLPPCallpreemption operation
+mLPPCallPreemption OPERATION ::= {
+ ARGUMENT PreemptParams
+ --RESULT
+ --ERRORS
+ CODE local: 26
+}
+
+PreemptParams ::= ENUMERATED {
+ circuitReservedForReuse(1),
+ -- Circuit of the to be preempted call is reserved for reuse
+ circuitNotReservedForReuse(2)
+ -- Circuit of the to be preempted call is not reserved for reuse
+}
+-- End mLPPCallpreemption operation
+
+unauthorizedPrecedenceLevel ERROR ::= {
+ CODE local: 44
+}
+-- An indication that the calling user has exceeded the authorized. maximum
+-- precedence level.
+
+--mLPPLFBQuery MLPPLFBQuery ::= 24
+--mLPPCallRequest MLPPCallRequest ::= 25
+--mLPPCALLPreemption MLPPCALLPreemption ::= 26
+--unauthorizedPrecedenceLevel UnauthorizedPrecedenceLevel ::= 44
+END
+-- End MLPP-operations. \ No newline at end of file
diff --git a/epan/dissectors/asn1/isdn-sup/MWI-Operations-and-Errors.asn b/epan/dissectors/asn1/isdn-sup/MWI-Operations-and-Errors.asn
new file mode 100644
index 0000000000..3cd6f13f8c
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/MWI-Operations-and-Errors.asn
@@ -0,0 +1,144 @@
+--
+-- prETS 300 745-1
+--
+MWI-Operations-and-Errors {itu-t(0) identified-organization(4) etsi(0) 745 operations-and-errors(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS MWIActivate,
+ MWIDeactivate,
+ MWIIndicate,
+ InvalidReceivingUserNr,
+ ReceivingUserNotSubscribed,
+ ControllingUserNotRegistered,
+ MaxNumOfControllingUsersReached,
+ MaxNumOfActiveInstancesReached
+;
+IMPORTS OPERATION,
+ ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+
+ notSubscribed,
+ supplementaryServiceInteractionNotAllowed,
+ resourceUnavailable,
+ invalidServedUserNr
+ FROM General-Errors
+ {itu-t(0) identified-organization(4) etsi(0) 196 general-errors(2)}
+
+ BasicService
+ From Basic-Service-Elements
+ {itu-t(0) identified-organization(4) etsi(0) 196 basic-service-elements(8)}
+
+ PartyNumber
+ FROM Addressing-Data-Element
+ {itu-t(0) identified-organization(4) etsi(0) 196 addressing-data-elements(6)}
+;
+
+ mWIActivate OPERATION::=
+ {
+ ARGUMENT SEQUENCE {
+ receivingUserNr PartyNumber,
+ basicService BasicService,
+ controllingUserNr [1] PartyNumber OPTIONAL,
+ numberOfMessages [2] MessageCounter OPTIONAL,
+ controllingUserProvidedNr [3] PartyNumber OPTIONAL,
+ time [4] GeneralizedTime OPTIONAL,
+ messageId [5] MessageID OPTIONAL,
+ mode [6] InvocationMode OPTIONAL }
+
+ ERRORS {
+ notSubscribed |
+ supplementaryServiceInteractionNotAllowed |
+ resourceUnavailable |
+ invalidReceivingUserNr |
+ invalidServedUserNr |
+ receivingUserNotSubscribed |
+ controllingUserNotRegistered |
+ indicationNotDelivered |
+ maxNumOfControllingUsersReached |
+ maxNumOfActiveInstancesReached }
+
+ CODE global:{mWIOID 1}
+ }
+-- End of MWIActivate operation definition
+
+ mWIDeactivate OPERATION::=
+ {
+ ARGUMENT SEQUENCE {
+ receivingUserNr PartyNumber,
+ basicService BasicService,
+ controllingUserNr PartyNumber OPTIONAL,
+ mode InvocationMode OPTIONAL }
+
+ ERRORS {
+ notSubscribed |
+ supplementaryServiceInteractionNotAllowed |
+ resourceUnavailable |
+ invalidReceivingUserNr |
+ invalidServedUserNr |
+ receivingUserNotSubscribed |
+ controllingUserNotRegistered |
+ indicationNotDelivered }
+
+ CODE global:{mWIOID 2}
+ }
+-- End of MWIDeactivate operation definition
+
+ mWIIndicate OPERATION::=
+ {
+ ARGUMENT SEQUENCE {
+ controllingUserNr [1] PartyNumber OPTIONAL,
+ basicService [2] BasicService OPTIONAL,
+ numberOfMessages [3] MessageCounter OPTIONAL,
+ controllingUserProvidedNr [4] PartyNumber OPTIONAL,
+ time [5] GeneralizedTime OPTIONAL,
+ messageId [6] MessageID OPTIONAL }
+
+ CODE global:{mWIOID 3}
+ }
+-- End of MWIIndicate operation definition
+
+ invalidReceivingUserNr ERROR ::= {CODE global:{mWIOID 10}}
+ receivingUserNotSubscribed ERROR ::= {CODE global:{mWIOID 11}}
+ controllingUserNotRegistered ERROR ::= {CODE global:{mWIOID 12}}
+ indicationNotDelivered ERROR ::= {CODE global:{mWIOID 13}}
+ maxNumOfControllingUsersReached ERROR ::= {CODE global:{mWIOID 14}}
+ maxNumOfActiveInstancesReached ERROR ::= {CODE global:{mWIOID 15}}
+
+MessageCounter ::= INTEGER (0..65535)
+
+GeneralizedTime ::= [UNIVERSAL 24] IMPLICIT VisibleString
+
+MessageID ::= SEQUENCE {
+ messageRef MessageRef,
+ status MessageStatus}
+
+MessageRef ::= INTEGER (0..65535)
+
+MessageStatus ::= ENUMERATED (
+ addedMessage (0),
+ removedMessage (1)}
+
+InvocationMode ::= ENUMERATED (
+ deferred (0),
+ immediate (1),
+ combined (2))
+
+mWIOID OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) 745
+ operations-and-errors(1)}
+
+mWIActivate MWIActivate ::= globalValue {mWIOID 1}
+mWIDeactivate MWIDeactivate ::= globalValue {mWIOID 2}
+mWIIndicate MWIIndicate ::= globalValue {mWIOID 3}
+
+invalidReceivingUserNr InvalidReceivingUserNr ::= globalValue {mWIOID 10}
+receivingUserNotSubscribed ReceivingUserNotSubscribed ::= globalValue {mWIOID 11}
+controllingUserNotRegistered ControllingUserNotRegistered ::= globalValue {mWIOID 12}
+indicationNotDelivered IndicationNotDelivered ::= globalValue {mWIOID 13}
+maxNumOfControllingUsersReached MaxNumOfControllingUsersReached ::= globalValue {mWIOID 14}
+maxNumOfActiveInstancesReached MaxNumOfActiveInstancesReached ::= globalValue {mWIOID 15}
+
+END -- MWI-Operations-and-Errors
diff --git a/epan/dissectors/asn1/isdn-sup/Makefile.am b/epan/dissectors/asn1/isdn-sup/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/isdn-sup/Makefile.common b/epan/dissectors/asn1/isdn-sup/Makefile.common
new file mode 100644
index 0000000000..9634daa9f9
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Makefile.common
@@ -0,0 +1,65 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = isdn-sup
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ Addressing-Data-Elements.asn \
+ Basic-Service-Elements.asn \
+ Embedded-Q931-Types.asn \
+ General-Errors.asn \
+ Advice-of-Charge-Operations.asn \
+ Closed-User-Group-Service-Operations.asn \
+ Conference-Add-On-Operations.asn \
+ Diversion-Operations.asn \
+ MCID-Operations.asn \
+ User-To-User-Signalling-Operations.asn \
+ Freephone-Operations.asn \
+ MLPP-Operations-And-Errors.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ CCBS-Operations-and-Errors.asn \
+ CCBS-private-networks-Operations-and-Errors.asn \
+ Explicit-Call-Transfer-Operations-and-Errors.asn \
+ MWI-Operations-and-Errors.asn \
+ Outgoing-Call-Barring-Operations-and-Errors.asn \
+ Set-Operations-and-Errors.asn \
+ Three-Party-Operations.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/isdn-sup/Makefile.nmake b/epan/dissectors/asn1/isdn-sup/Makefile.nmake
new file mode 100644
index 0000000000..d1c6fb064a
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Makefile.nmake
@@ -0,0 +1,30 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+checkapi:
+ $(PERL) ../../tools/checkAPIs.pl -build \
+ $(PROTOCOL_NAME).cnf \
+ packet-$(PROTOCOL_NAME)-template.c
diff --git a/epan/dissectors/asn1/isdn-sup/Outgoing-Call-Barring-Operations-and-Errors.asn b/epan/dissectors/asn1/isdn-sup/Outgoing-Call-Barring-Operations-and-Errors.asn
new file mode 100644
index 0000000000..03640686e2
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Outgoing-Call-Barring-Operations-and-Errors.asn
@@ -0,0 +1,201 @@
+--
+-- EN 301 001-1 Ver. 1.2.2
+--
+Outgoing-Call-Barring-Operations-and-Errors {itu-t(0) identified-organization(4) etsi(0) 1001
+ operations-and-errors(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS
+ ActivationOcb,
+ ActivationStatusNotificationOcb,
+ DeactivationOcb,
+ DeactivationStatusNotificationOcb,
+ InterrogationOcb,
+ DisableOcb,
+ OcbInvoked,
+ InvalidBarringProgram,
+ NoBarringProgram
+;
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+
+ PartyNumber
+ FROM Addressing-Data-Elements
+ {itu-t(0) identified-organization(4) etsi(0) 196 addressing-data-elements(6)}
+
+ BasicService
+ FROM Basic-Service-Elements
+ {itu-t(0) identified-organization(4) etsi(0) 196 basic-service-elements(8)}
+
+ notSubscribed, notAvailable, basicServiceNotProvided, invalidServedUserNr,
+ resourceUnavailable, notImplemented, supplementaryServiceInteractionNotAllowed
+ FROM General-Errors
+ {itu-t(0) identified-organization(4) etsi(0) 196 general-errors(2)}
+
+ NotActivated
+ FROM Diversion-Operations
+ {itu-t(0) identified-organization(4) etsi(0) 207 operations-and errors(1)}
+
+ Pin, invalidPin, userControlBlocked, changeOfPinRequired
+ FROM Pin-Set-Operations-and-Errors
+ {itu-t(0) identified-organization(4) etsi(0) 1002 operations-and-errors(1)}
+;
+
+ activationOcb OPERATION::=
+ {
+ ARGUMENT
+ ActivationOcbArgument
+
+ ERRORS {
+ notSubscribed |
+ notAvailable |
+ basicServiceNotProvided |
+ invalidServedUserNr |
+ invalidPin |
+ invalidBarringProgram |
+ noBarringProgram |
+ userControlBlocked |
+ supplementaryServiceInteractionNotAllowed |
+ resourceUnavailable |
+ changeOfPinRequired }
+
+ CODE global:{oCBOID 1}
+ }
+
+ deactivationOcb OPERATION::=
+ {
+ ARGUMENT
+ DeactivationOcbArgument
+
+ ERRORS {
+ notSubscribed |
+ notAvailable |
+ basicServiceNotProvided |
+ invalidServedUserNr |
+ notActivated |
+ invalidPin |
+ userControlBlocked |
+ changeOfPinRequired }
+
+ CODE global:{oCBOID 2}
+ }
+
+ interrogationOcb OPERATION::=
+ {
+ ARGUMENT
+ InterrogationOcbArgument
+
+
+ RESULT
+ IntOcbResultList
+
+
+ ERRORS {
+ notSubscribed |
+ notAvailable |
+ basicServiceNotProvided |
+ invalidServedUserNr }
+
+ CODE global:{oCBOID 5}
+ }
+
+ activationStatusNotificationOcb OPERATION::=
+ {
+ ARGUMENT
+ ActStatusNotificationOcbArg
+
+ CODE global:{oCBOID 3}
+ }
+
+ deactivationStatusNotificationOcb OPERATION::=
+ {
+ ARGUMENT
+ DeactStatusNotificationOcbArg
+
+ CODE global:{oCBOID 4}
+ }
+
+ disableOcb OPERATION::=
+ {
+ ARGUMENT
+ Pin
+
+ ERRORS {
+ notImplemented |
+ invalidPin |
+ userControlBlocked |
+ changeOfPinRequired }
+
+ CODE global:{oCBOID 6}
+ }
+
+ ocbInvoked OPERATION::=
+ {
+ CODE global:{oCBOID 7}
+ }
+
+ActivationOcbArgument ::= SEQUENCE {
+ basicService BasicService,
+ pin Pin,
+ barringProgram BarringProgram OPTIONAL,
+ servedUserNr ServedUserNr OPTIONAL}
+
+DeactivationOcbArgument ::= SEQUENCE {
+ basicService BasicService,
+ pin Pin,
+ barringProgram BarringProgram OPTIONAL,
+ servedUserNr ServedUserNr OPTIONAL}
+
+InterrogationOcbArgument ::= SEQUENCE {
+ basicService BasicService,
+ servedUserNr ServedUserNr OPTIONAL}
+
+ActStatusNotificationOcbArg ::= SEQUENCE {
+ basicService BasicService,
+ barringProgram BarringProgram,
+ servedUserNr ServedUserNr}
+
+DeactStatusNotificationOcbArg ::= SEQUENCE {
+ basicService BasicService,
+ barringProgram BarringProgram OPTIONAL,
+ servedUserNr ServedUserNr}
+
+ServedUserNr ::= CHOICE {
+ individualNumber PartyNumber,
+ allNumbers NULL}
+
+IntOcbResultList ::= SET SIZE(0..30) OF IntOcbResult
+
+IntOcbResult ::= SEQUENCE {
+ servedUserNr ServedUserNr,
+ basicService BasicService,
+ barringProgramList BarringProgramList}
+
+BarringProgram ::= INTEGER (0..255)
+BarringProgramList ::= SET SIZE(0...255) OF BarringProgram
+
+invalidBarringProgram ERROR ::={CODE global:{oCBOID 10}}
+noBarringProgram ERROR ::={CODE global:{oCBOID 11}}
+
+oCBOID OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) 1001 operations-and-errors(1)}
+
+activationOcb ActivationOcb ::= globalValue {oCBOID 1}
+deactivationOcb DeactivationOcb ::= globalValue {oCBOID 2}
+activationStatusNotificationOcb ActivationStatusNotificationOcb ::= globalValue {oCBOID 3}
+deactivationStatusNotificationOcb DeactivationStatusNotificationOcb ::= globalValue {oCBOID 4}
+interrogationOcb InterrogationOcb ::= globalValue {oCBOID 5}
+disableOcb DisableOcb ::= globalValue {oCBOID 6}
+ocbInvoked OcbInvoked ::= globalValue {oCBOID 7}
+invalidBarringProgram InvalidBarringProgram ::= globalValue {oCBOID 10}
+noBarringProgram NoBarringProgram ::= globalValue {oCBOID 11}
+
+notActivated NotActivated ::= localValue 46
+
+END -- of Outgoing-Call-Barring-Operations-and-Errors
+
diff --git a/epan/dissectors/asn1/isdn-sup/Set-Operations-and-Errors.asn b/epan/dissectors/asn1/isdn-sup/Set-Operations-and-Errors.asn
new file mode 100644
index 0000000000..47fb381e09
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Set-Operations-and-Errors.asn
@@ -0,0 +1,98 @@
+--
+-- EN 301 002-1 Ver. 1.3.1
+--
+Set-Operations-and-Errors {ITU-T identified-organization etsi(0) 1002 operations-and-errors(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS
+ ModifyPin,
+ Pin,
+ Tan,
+ InvalidPin,
+ InvalidTan,
+ PinNotProvided,
+ InvalidNewPin,
+ ChangeOfPinRequired,
+ PrimitivePin,
+ NewPinIsOldPin,
+ UserControlBlocked;
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+
+ PartyNumber
+ FROM Addressing-Data-Elements
+ {itu-t(0) identified-organization(4) etsi(0) 196 addressing-data-elements(6)}
+
+ invalidServedUserNr
+ FROM General-Errors
+ {itu-t(0) identified-organization(4) etsi(0) 196 general-errors(2)};
+
+ModifyPin ::= OPERATION
+ ARGUMENT ModifyPinArgument
+ RESULT
+ ERRORS {InvalidPin,
+ PinNotProvided,
+ InvalidNewPin,
+ invalidServedUserNr,
+ PrimitivePin,
+ NewPinIsOldPin,
+ UserControlBlocked}
+
+PossibleFraudulentPinUse ::= OPERATION
+PossibleFraudulentTanUse ::= OPERATION
+ModifyPinArgument ::= SEQUENCE {
+ oldPin Pin,
+ newPin Pin,
+ servedUserNr PartyNumber}
+
+Pin ::= IA5String (SIZE(4..12)) (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
+ |"A"|"B"|"C"|"D"|"E"|"F"|"G"|"H"|"I"|"J"
+ |"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|"S"|"T"
+ |"U"|"V"|"W"|"X"|"Y"|"Z"
+ |"a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"
+ |"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"
+ |"u"|"v"|"w"|"x"|"y"|"z"))
+
+Tan ::= IA5String (SIZE(6..12)) (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
+ |"A"|"B"|"C"|"D"|"E"|"F"|"G"|"H"|"I"|"J"
+ |"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|"S"|"T"
+ |"U"|"V"|"W"|"X"|"Y"|"Z"
+ |"a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"
+ |"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"
+ |"u"|"v"|"w"|"x"|"y"|"z"))
+
+
+invalidPin ERROR ::= {CODE global:{sETOID 10}}
+invalidTan ERROR ::= {CODE global:{sETOID 11}}
+pinNotProvided ERROR ::= {CODE global:{sETOID 17}}
+invalidNewPin ERROR ::= {CODE global:{sETOID 12}}
+userControlBlocked ERROR ::= {CODE global:{sETOID 13}}
+changeOfPinRequired ERROR ::= {CODE global:{sETOID 14}}
+primitivePin ERROR ::= {CODE global:{sETOID 15}}
+newPinIsOldPin ERROR ::= {CODE global:{sETOID 16}}
+
+
+sETOID OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) 1002 operations-and-errors(1)}
+
+modifyPin ModifyPin ::= globalValue {sETOID 1}
+possibleFraudulentPinUse PossibleFraudulentPinUse ::= globalValue {sETOID 2}
+possibleFraudulentTanUse PossibleFraudulentTanUse ::= globalValue {sETOID 3}
+
+invalidPin InvalidPin ::= globalValue {sETOID 10}
+pinNotProvided PinNotProvided ::= globalValue {sETOID 11}
+invalidNewPin InvalidNewPin ::= globalValue {sETOID 12}
+userControlBlocked UserControlBlocked ::= globalValue {sETOID 13}
+changeOfPinRequired ChangeOfPinRequired ::= globalValue {sETOID 14}
+primitivePin PrimitivePin ::= globalValue {sETOID 15}
+newPinIsOldPin NewPinIsOldPin ::= globalValue {sETOID 16}
+invalidTan InvalidTan ::= globalValue {sETOID 17}
+
+
+END -- of Set-Function-Operations-and-Errors
+
diff --git a/epan/dissectors/asn1/isdn-sup/Three-Party-Operations.asn b/epan/dissectors/asn1/isdn-sup/Three-Party-Operations.asn
new file mode 100644
index 0000000000..5704d476fe
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/Three-Party-Operations.asn
@@ -0,0 +1,53 @@
+--
+-- EN 300 188-1 V1.2.4 (1998-06)
+--
+Three-Party-Operations {ccitt identified-organization etsi (0) 188 operations-and-types (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS
+ begin3PTY,
+ end3PTY;
+
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations (4) notation (0)}
+
+
+ notSubscribed,
+ notAvailable,
+ invalidCallState,
+ resourceUnavailable,
+ supplementaryServiceInteractionNotAllowed
+ FROM General-Errors
+ {itu-t identified-organization etsi (0) 196 general-errors (2)};
+
+ begin3PTY OPERATION ::=
+ {
+ ERRORS {
+ notSubscribed |
+ notAvailable |
+ invalidCallState |
+ resourceUnavailable |
+ supplementaryServiceInteractionNotAllowed }
+ -- ETS 300 188, aug 1993 does not provide procedures for the generation
+ -- of the error 'notAvailable'
+
+ CODE local:4
+ }
+
+
+ end3PTY OPERATION ::=
+ {
+ ERRORS {
+ invalidCallState }
+
+ CODE local:5
+ }
+
+
+
+END \ No newline at end of file
diff --git a/epan/dissectors/asn1/isdn-sup/User-To-User-Signalling-Operations.asn b/epan/dissectors/asn1/isdn-sup/User-To-User-Signalling-Operations.asn
new file mode 100644
index 0000000000..05269a43a8
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/User-To-User-Signalling-Operations.asn
@@ -0,0 +1,48 @@
+--
+-- EN 300 286-1 Ver. 1.2.4
+--
+
+User-To-User-Signalling-Operations {ccitt identified-organization etsi(0) 286
+ operations-and-errors(1)}
+
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS UserUserService, RejectedByUser, RejectedByNetwork, Service, Preferred;
+
+IMPORTS OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)};
+
+ userUserService OPERATION ::=
+ {
+ ARGUMENT UserUserServiceArg
+ ERRORS {
+ rejectedByTheUser |
+ rejectedByTheNetwork }
+
+ CODE local:1
+ }
+
+UserUserServiceArg ::= SEQUENCE {
+ service [1] IMPLICIT Service,
+ preferred [2] IMPLICIT Preferred }
+
+Service ::= INTEGER {
+ service1 (1),
+ service2 (2),
+ service3 (3)}
+ (1..3)
+
+Preferred ::= BOOLEAN -- True = preferred request
+ -- False = required request
+rejectedByTheNetwork ERROR ::= {CODE local:1}
+rejectedByTheUser ERROR ::= {CODE local:2}
+
+
+--userUserService UserUserService ::= 1
+--rejectedByNetwork RejectedByNetwork ::= 1
+--rejectedByUser RejectedByUser ::= 2
+
+END -- of User-To-User-Signalling-Operations
+
diff --git a/epan/dissectors/asn1/isdn-sup/isdn-sup.cnf b/epan/dissectors/asn1/isdn-sup/isdn-sup.cnf
new file mode 100644
index 0000000000..adf1092715
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/isdn-sup.cnf
@@ -0,0 +1,81 @@
+# isdn-sup.cnf
+# isdn_sup conformation file
+# 2013 Anders Broman
+
+#.OPT
+BER
+GROUP_BY_PROT
+-o isdn-sup
+#.END
+
+#.EXPORTS EXTERN VALS_WITH_TABLE
+
+
+#.MODULE
+Diversion-Operations isdn-sup
+MCID-Operations isdn-sup
+Closed-User-Group-Service-Operations isdn-sup
+Advice-of-Charge-Operations isdn-sup
+MLPP-operations isdn-sup
+
+#.PDU
+
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+
+#.END
+
+#.NO_EMIT
+PresentedAddressUnscreened
+PresentedNumberScreened
+NumberScreened
+#.END
+
+#.TYPE_RENAME
+AOCDChargingUnitInfo/specificChargingUnits AOCDSpecificChargingUnits
+AOCDCurrencyInfo/specificCurrency AOCDSpecificCurrency
+AOCEChargingUnitInfo/cc AOCEChargingUnitCc
+AOCEChargingUnitInfo/cc/specificChargingUnits AOCECcSpecificChargingUnits
+AOCECurrencyInfo/cc AOCECurrencyCc
+AOCECurrencyInfo/cc/specificCurrency AOCECcSpecificCurrency
+AOCSCurrencyInfo/chargingtype/specificCurrency AOCSChargingTypeSpecificCurrency
+RecordedUnits/cc RecoredUnitsCc
+#.END
+
+#.FIELD_RENAME
+AOCDChargingUnitInfo/specificChargingUnits aocdspecificchargingunits
+AOCDCurrencyInfo/specificCurrency aocdspecificCurrency
+AOCEChargingUnitInfo/cc aocechargingunitcc
+AOCEChargingUnitInfo/cc/specificChargingUnits aoceccspecificchargingunits
+AOCECurrencyInfo/cc aocecurrencycc
+AOCECurrencyInfo/cc/specificCurrency aoceccspecificCurrency
+AOCSCurrencyInfo/chargingtype/specificCurrency aocschargingtypespecificCurrency
+PresentedAddressScreened/presentationAllowedAddress presentationallowedaddressscreened
+PresentedAddressScreened/presentationRestrictedAddress presentationrestrictedaddressscreened
+PresentedNumberScreened/presentationAllowedNumber presentationallowednumberscreened
+PresentedNumberScreened/presentationRestrictedNumber presentationrestrictednumberscreened
+RecordedUnits/cc recoredunitscc
+#.END
+
+#.TABLE10_BODY OPERATION.#&operationCode.local
+ { %(&operationCode)3s, "%(_name)s" },
+#.END
+
+#.TABLE11_BODY OPERATION.&operationCode.local
+ /* %(_name)-24s */ { %(&operationCode)3s, %(_argument_pdu)s, %(_result_pdu)s },
+#.END
+
+#.TABLE31_BODY OPERATION.&operationCode.global
+ /* %(_name)-24s */ { %(&operationCode)3s, %(_argument_pdu)s, %(_result_pdu)s },
+#.END
+
+#.TABLE20_BODY ERROR
+ { %(&errorCode)4s, "%(_name)s" },
+#.END
+
+#.TABLE21_BODY ERROR
+ /* %(_name)-24s */ { %(&errorCode)4s, %(_parameter_pdu)s },
+#.END
+
+#.TYPE_ATTR
+#.END
diff --git a/epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c b/epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c
new file mode 100644
index 0000000000..dc8f129551
--- /dev/null
+++ b/epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c
@@ -0,0 +1,373 @@
+/* packet-isdn-sup-template.c
+ * Routines for ETSI Integrated Services Digital Network (ISDN)
+ * supplementary services
+ * Copyright 2013, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References: ETSI 300 374
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+
+#define PNAME "ISDN supplementary services"
+#define PSNAME "ISDN_SUP"
+#define PFNAME "isdn_sup"
+
+void proto_register_isdn_sup(void);
+void proto_reg_handoff_isdn_sup(void);
+
+#include "packet-isdn-sup-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_isdn_sup = -1;
+static int hf_isdn_sup_operation = -1;
+static int hf_isdn_sup_error = -1;
+
+/* Global variables */
+
+#if 0
+/* ROSE context */
+static rose_ctx_t isdn_sup_rose_ctx;
+#endif
+
+typedef struct _isdn_sup_op_t {
+ gint32 opcode;
+ dissector_t arg_pdu;
+ dissector_t res_pdu;
+} isdn_sup_op_t;
+
+typedef struct _isdn_global_sup_op_t {
+ const char* oid;
+ dissector_t arg_pdu;
+ dissector_t res_pdu;
+} isdn_sup_global_op_t;
+
+
+typedef struct isdn_sup_err_t {
+ gint32 errcode;
+ dissector_t err_pdu;
+} isdn_sup_err_t;
+
+static const value_string isdn_sup_str_operation[] = {
+#include "packet-isdn-sup-table10.c"
+ { 0, NULL}
+};
+
+
+static const value_string isdn_sup_str_error[] = {
+#include "packet-isdn-sup-table20.c"
+ { 0, NULL}
+};
+
+static int hf_isdn_sup = -1;
+
+#include "packet-isdn-sup-hf.c"
+
+
+/* Initialize the subtree pointers */
+static gint ett_isdn_sup = -1;
+
+#include "packet-isdn-sup-ett.c"
+
+static expert_field ei_isdn_sup_unsupported_arg_type = EI_INIT;
+static expert_field ei_isdn_sup_unsupported_result_type = EI_INIT;
+static expert_field ei_isdn_sup_unsupported_error_type = EI_INIT;
+
+/* Preference settings default */
+
+/* Global variables */
+
+#include "packet-isdn-sup-fn.c"
+
+static const isdn_sup_op_t isdn_sup_op_tab[] = {
+#include "packet-isdn-sup-table11.c"
+};
+
+
+static const isdn_sup_global_op_t isdn_sup_global_op_tab[] = {
+
+#include "packet-isdn-sup-table31.c"
+};
+
+static const isdn_sup_err_t isdn_sup_err_tab[] = {
+#include "packet-isdn-sup-table21.c"
+};
+
+
+static const isdn_sup_op_t *get_op(gint32 opcode) {
+ int i;
+
+ /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
+ for (i = array_length(isdn_sup_op_tab) - 1; i >= 0; i--)
+ if (isdn_sup_op_tab[i].opcode == opcode)
+ return &isdn_sup_op_tab[i];
+ return NULL;
+}
+
+static const isdn_sup_err_t *get_err(gint32 errcode) {
+ int i;
+
+ /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
+ for (i = array_length(isdn_sup_err_tab) - 1; i >= 0; i--)
+ if (isdn_sup_err_tab[i].errcode == errcode)
+ return &isdn_sup_err_tab[i];
+ return NULL;
+}
+
+/*--- dissect_isdn_sup_arg ------------------------------------------------------*/
+static int
+dissect_isdn_sup_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 opcode = 0;
+ const gchar *p;
+ const isdn_sup_op_t *op_ptr;
+ proto_item *ti;
+ proto_tree *isdn_sup_tree;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 1) /* invoke */
+ return offset;
+ if (rctx->d.code == 0) { /* local */
+ opcode = rctx->d.code_local;
+ } else {
+ return offset;
+ }
+ op_ptr = get_op(opcode);
+ if (!op_ptr)
+ return offset;
+
+ ti = proto_tree_add_item(tree, proto_isdn_sup, tvb, offset, -1, ENC_NA);
+ isdn_sup_tree = proto_item_add_subtree(ti, ett_isdn_sup);
+
+ proto_tree_add_uint(isdn_sup_tree, hf_isdn_sup_operation, tvb, 0, 0, opcode);
+ p = try_val_to_str(opcode, VALS(isdn_sup_str_operation));
+ if (p) {
+ proto_item_append_text(ti, ": %s", p);
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (op_ptr->arg_pdu)
+ offset = op_ptr->arg_pdu(tvb, pinfo, isdn_sup_tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_isdn_sup_unsupported_error_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- dissect_isdn_sup_res -------------------------------------------------------*/
+static int
+dissect_isdn_sup_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ gint offset = 0;
+ rose_ctx_t *rctx;
+ gint32 opcode = 0;
+ const gchar *p;
+ const isdn_sup_op_t *op_ptr;
+ proto_item *ti;
+ proto_tree *isdn_sup_tree;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 2) /* returnResult */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ opcode = rctx->d.code_local;
+ op_ptr = get_op(opcode);
+ if (!op_ptr)
+ return offset;
+
+ ti = proto_tree_add_item(tree, proto_isdn_sup, tvb, offset, -1, ENC_NA);
+ isdn_sup_tree = proto_item_add_subtree(ti, ett_isdn_sup);
+
+ proto_tree_add_uint(isdn_sup_tree, hf_isdn_sup_operation, tvb, 0, 0, opcode);
+ p = try_val_to_str(opcode, VALS(isdn_sup_str_operation));
+ if (p) {
+ proto_item_append_text(ti, ": %s", p);
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (op_ptr->res_pdu)
+ offset = op_ptr->res_pdu(tvb, pinfo, isdn_sup_tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_isdn_sup_unsupported_result_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+
+/*--- dissect_isdn_sup_err ------------------------------------------------------*/
+static int
+dissect_isdn_sup_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 errcode;
+ const isdn_sup_err_t *err_ptr;
+ const gchar *p;
+ proto_item *ti;
+ proto_tree *isdn_sup_tree;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 3) /* returnError */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ errcode = rctx->d.code_local;
+ err_ptr = get_err(errcode);
+ if (!err_ptr)
+ return offset;
+
+ ti = proto_tree_add_item(tree, proto_isdn_sup, tvb, offset, -1, ENC_NA);
+ isdn_sup_tree = proto_item_add_subtree(ti, ett_isdn_sup);
+
+ proto_tree_add_uint(isdn_sup_tree, hf_isdn_sup_error, tvb, 0, 0, errcode);
+ p = try_val_to_str(errcode, VALS(isdn_sup_str_error));
+ if (p) {
+ proto_item_append_text(ti, ": %s", p);
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (err_ptr->err_pdu)
+ offset = err_ptr->err_pdu(tvb, pinfo, isdn_sup_tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_isdn_sup_unsupported_error_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+
+/*--- proto_reg_handoff_isdn_sup ---------------------------------------*/
+
+void proto_reg_handoff_isdn_sup(void) {
+ int i;
+#if 0
+ dissector_handle_t q931_handle;
+#endif
+ dissector_handle_t isdn_sup_arg_handle;
+ dissector_handle_t isdn_sup_res_handle;
+ dissector_handle_t isdn_sup_err_handle;
+
+#if 0
+ q931_handle = find_dissector("q931");
+#endif
+
+ isdn_sup_arg_handle = create_dissector_handle(dissect_isdn_sup_arg, proto_isdn_sup);
+ isdn_sup_res_handle = create_dissector_handle(dissect_isdn_sup_res, proto_isdn_sup);
+ for (i=0; i<(int)array_length(isdn_sup_op_tab); i++) {
+ dissector_add_uint("q932.ros.etsi.local.arg", isdn_sup_op_tab[i].opcode, isdn_sup_arg_handle);
+ dissector_add_uint("q932.ros.etsi.local.res", isdn_sup_op_tab[i].opcode, isdn_sup_res_handle);
+ }
+
+ for (i=0; i<(int)array_length(isdn_sup_global_op_tab); i++) {
+ if(isdn_sup_global_op_tab->arg_pdu)
+ dissector_add_string("q932.ros.global.arg", isdn_sup_global_op_tab[i].oid, create_dissector_handle(isdn_sup_global_op_tab[i].arg_pdu, proto_isdn_sup));
+ if(isdn_sup_global_op_tab->res_pdu)
+ dissector_add_string("q932.ros.global.res", isdn_sup_global_op_tab[i].oid, create_dissector_handle(isdn_sup_global_op_tab[i].res_pdu, proto_isdn_sup));
+ }
+
+ isdn_sup_err_handle = create_dissector_handle(dissect_isdn_sup_err, proto_isdn_sup);
+
+ for (i=0; i<(int)array_length(isdn_sup_err_tab); i++) {
+ dissector_add_uint("q932.ros.etsi.local.err", isdn_sup_err_tab[i].errcode, isdn_sup_err_handle);
+ }
+
+
+}
+
+void proto_register_isdn_sup(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_isdn_sup,
+ { "isdn_sup", "isdn_sup.1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_isdn_sup_operation,
+ { "Operation", "isdn_sup.operation",
+ FT_UINT8, BASE_DEC, VALS(isdn_sup_str_operation), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_isdn_sup_error,
+ { "Error", "isdn_sup.error",
+ FT_UINT8, BASE_DEC, VALS(isdn_sup_str_error), 0x0,
+ NULL, HFILL }
+ },
+
+#include "packet-isdn-sup-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_isdn_sup,
+
+#include "packet-isdn-sup-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_isdn_sup_unsupported_arg_type, { "isdn_sup.unsupported.arg_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ARGUMENT TYPE (ETSI sup)", EXPFILL }},
+ { &ei_isdn_sup_unsupported_result_type, { "isdn_sup.unsupported.result_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED RESULT TYPE (ETSI sup)", EXPFILL }},
+ { &ei_isdn_sup_unsupported_error_type, { "isdn_sup.unsupported.error_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ERROR TYPE (ETSI sup)", EXPFILL }},
+ };
+
+ expert_module_t* expert_isdn_sup;
+
+ /* Register protocol */
+ proto_isdn_sup = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_isdn_sup, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_isdn_sup = expert_register_protocol(proto_isdn_sup);
+ expert_register_field_array(expert_isdn_sup, ei, array_length(ei));
+}
diff --git a/epan/dissectors/asn1/kerberos/CMakeLists.txt b/epan/dissectors/asn1/kerberos/CMakeLists.txt
new file mode 100644
index 0000000000..0de5b69e0e
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/CMakeLists.txt
@@ -0,0 +1,54 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME kerberos )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ KerberosV5Spec2.asn
+ k5.asn
+ RFC3244.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/kerberos/KerberosV5Spec2.asn b/epan/dissectors/asn1/kerberos/KerberosV5Spec2.asn
new file mode 100644
index 0000000000..fb3f4e8b56
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/KerberosV5Spec2.asn
@@ -0,0 +1,497 @@
+--http://www.ietf.org/rfc/rfc4120.txt?number=4120
+KerberosV5Spec2 {
+ iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) kerberosV5(2) modules(4) krb5spec2(2)
+} DEFINITIONS EXPLICIT TAGS ::= BEGIN
+
+-- OID arc for KerberosV5
+--
+-- This OID may be used to identify Kerberos protocol messages
+-- encapsulated in other protocols.
+--
+-- This OID also designates the OID arc for KerberosV5-related OIDs.
+--
+-- NOTE: RFC 1510 had an incorrect value (5) for "dod" in its OID.
+-- WS construct
+Applications ::= CHOICE {
+ ticket Ticket, -- 1 --
+ authenticator Authenticator, -- 2 --
+ encTicketPart EncTicketPart, -- 3 --
+ as-req AS-REQ, -- 10 --
+ as-rep AS-REP, -- 11 --
+ tgs-req TGS-REQ, -- 12 --
+ tgs-rep TGS-REP, -- 13 --
+ ap-req AP-REQ, -- 14 --
+ ap-rep AP-REP, -- 15 --
+ krb-safe KRB-SAFE, -- 20 --
+ krb-priv KRB-PRIV, -- 21 --
+ krb-cred KRB-CRED, -- 22 --
+ encASRepPart EncASRepPart, -- 25 --
+ encTGSRepPart EncTGSRepPart, -- 26 --
+ encAPRepPart EncAPRepPart, -- 27 --
+ encKrbPrivPart ENC-KRB-PRIV-PART, -- 28 --
+ encKrbCredPart EncKrbCredPart, -- 29 --
+ krb-error KRB-ERROR -- 30 --
+ }
+-- end WS construct
+id-krb5 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) kerberosV5(2)
+}
+
+Int32 ::= INTEGER (-2147483648..2147483647)
+ -- signed values representable in 32 bits
+
+UInt32 ::= INTEGER (0..4294967295)
+ -- unsigned 32 bit values
+
+Microseconds ::= INTEGER (0..999999)
+ -- microseconds
+
+KerberosString ::= GeneralString (IA5String)
+CNameString ::= GeneralString (IA5String)
+SNameString ::= GeneralString (IA5String)
+
+Realm ::= KerberosString
+
+PrincipalName ::= SEQUENCE {
+-- name-type [0] Int32, Use the translationj from krb5.asn (Heimdahl)
+ name-type [0] NAME-TYPE,
+ name-string [1] SEQUENCE OF KerberosString
+}
+
+CName ::= SEQUENCE {
+ name-type [0] NAME-TYPE,
+ cname-string [1] SEQUENCE OF CNameString
+}
+
+SName ::= SEQUENCE {
+ name-type [0] NAME-TYPE,
+ sname-string [1] SEQUENCE OF SNameString
+}
+
+KerberosTime ::= GeneralizedTime -- with no fractional seconds
+
+HostAddress ::= SEQUENCE {
+-- addr-type [0] Int32,
+ addr-type [0] ADDR-TYPE, --use k5.asn
+ address [1] OCTET STRING
+}
+
+-- NOTE: HostAddresses is always used as an OPTIONAL field and
+-- should not be empty.
+HostAddresses -- NOTE: subtly different from rfc1510,
+ -- but has a value mapping and encodes the same
+ ::= SEQUENCE OF HostAddress
+
+-- NOTE: AuthorizationData is always used as an OPTIONAL field and
+-- should not be empty.
+AuthorizationData ::= SEQUENCE OF SEQUENCE {
+ ad-type [0] Int32,
+ ad-data [1] OCTET STRING
+}
+
+PA-DATA ::= SEQUENCE {
+ -- NOTE: first tag is [1], not [0]
+-- padata-type [1] Int32, use k5.asn
+ padata-type [1] PADATA-TYPE,
+ padata-value [2] OCTET STRING -- might be encoded AP-REQ
+}
+
+KerberosFlags ::= BIT STRING (SIZE (32..MAX))
+ -- minimum number of bits shall be sent,
+ -- but no fewer than 32
+
+EncryptedData ::= SEQUENCE {
+-- etype [0] Int32 - - EncryptionType - -, Use k5.asn
+ etype [0] ENCTYPE -- EncryptionType --,
+ kvno [1] UInt32 OPTIONAL,
+ cipher [2] OCTET STRING -- ciphertext
+}
+
+EncryptionKey ::= SEQUENCE {
+ keytype [0] Int32 -- actually encryption type --,
+ keyvalue [1] OCTET STRING
+}
+
+Checksum ::= SEQUENCE {
+-- cksumtype [0] Int32, Use k5.asn
+ cksumtype [0] CKSUMTYPE,
+ checksum [1] OCTET STRING
+}
+
+EncryptedTicketData ::= SEQUENCE {
+ etype [0] ENCTYPE, -- EncryptionType - - Use k5.asn
+ kvno [1] UInt32 OPTIONAL,
+ cipher [2] OCTET STRING -- ciphertext
+}
+
+EncryptedAuthorizationData ::= SEQUENCE {
+ etype [0] ENCTYPE, -- EncryptionType - - Use k5.asn
+ kvno [1] UInt32 OPTIONAL,
+ cipher [2] OCTET STRING -- ciphertext
+}
+
+EncryptedKDCREPData ::= SEQUENCE {
+ etype [0] ENCTYPE, -- EncryptionType - - Use k5.asn
+ kvno [1] UInt32 OPTIONAL,
+ cipher [2] OCTET STRING -- ciphertext
+}
+
+EncryptedAPREPData ::= SEQUENCE {
+ etype [0] ENCTYPE, -- EncryptionType - - Use k5.asn
+ kvno [1] UInt32 OPTIONAL,
+ cipher [2] OCTET STRING -- ciphertext
+}
+
+EncryptedKrbPrivData ::= SEQUENCE {
+ etype [0] ENCTYPE, -- EncryptionType - - Use k5.asn
+ kvno [1] UInt32 OPTIONAL,
+ cipher [2] OCTET STRING -- ciphertext
+}
+
+EncryptedKrbCredData ::= SEQUENCE {
+ etype [0] ENCTYPE, -- EncryptionType - - Use k5.asn
+ kvno [1] UInt32 OPTIONAL,
+ cipher [2] OCTET STRING -- ciphertext
+}
+
+Ticket ::= [APPLICATION 1] SEQUENCE {
+ tkt-vno [0] INTEGER (5),
+ realm [1] Realm,
+ sname [2] SName,
+ enc-part [3] EncryptedTicketData
+}
+
+-- Encrypted part of ticket
+EncTicketPart ::= [APPLICATION 3] SEQUENCE {
+ flags [0] TicketFlags,
+ key [1] EncryptionKey,
+ crealm [2] Realm,
+ cname [3] CName,
+ transited [4] TransitedEncoding,
+ authtime [5] KerberosTime,
+ starttime [6] KerberosTime OPTIONAL,
+ endtime [7] KerberosTime,
+ renew-till [8] KerberosTime OPTIONAL,
+ caddr [9] HostAddresses OPTIONAL,
+ authorization-data [10] AuthorizationData OPTIONAL
+}
+
+-- encoded Transited field
+TransitedEncoding ::= SEQUENCE {
+ tr-type [0] Int32 -- must be registered --,
+ contents [1] OCTET STRING
+}
+-- Use the k5.asn def
+-- TicketFlags ::= KerberosFlags
+ -- reserved(0),
+ -- forwardable(1),
+ -- forwarded(2),
+ -- proxiable(3),
+ -- proxy(4),
+ -- may-postdate(5),
+ -- postdated(6),
+ -- invalid(7),
+ -- renewable(8),
+ -- initial(9),
+ -- pre-authent(10),
+ -- hw-authent(11),
+-- the following are new since 1510
+ -- transited-policy-checked(12),
+ -- ok-as-delegate(13)
+
+AS-REQ ::= [APPLICATION 10] KDC-REQ
+
+TGS-REQ ::= [APPLICATION 12] KDC-REQ
+
+KDC-REQ ::= SEQUENCE {
+ -- NOTE: first tag is [1], not [0]
+ pvno [1] INTEGER (5) ,
+-- msg-type [2] INTEGER (10 - - AS - - | 12 - - TGS - -),
+-- msg-type [2] INTEGER, use k5.asn
+ msg-type [2] MESSAGE-TYPE,
+ padata [3] SEQUENCE OF PA-DATA OPTIONAL
+ -- NOTE: not empty --,
+ req-body [4] KDC-REQ-BODY
+}
+
+KDC-REQ-BODY ::= SEQUENCE {
+ kdc-options [0] KDCOptions,
+ cname [1] CName OPTIONAL
+ -- Used only in AS-REQ --,
+ realm [2] Realm
+ -- Server's realm
+ -- Also client's in AS-REQ --,
+ sname [3] SName OPTIONAL,
+ from [4] KerberosTime OPTIONAL,
+
+-- this field is not optional in the kerberos spec, however, in the packetcable spec it is optional
+-- make it optional here since normal kerberos will still decode the pdu correctly.
+ till [5] KerberosTime OPTIONAL,
+
+ rtime [6] KerberosTime OPTIONAL,
+ nonce [7] UInt32,
+-- etype [8] SEQUENCE OF Int32 - - EncryptionType Use k5.asn
+ etype [8] SEQUENCE OF ENCTYPE -- EncryptionType
+ -- in preference order --,
+ addresses [9] HostAddresses OPTIONAL,
+ enc-authorization-data [10] EncryptedAuthorizationData OPTIONAL
+ -- AuthorizationData --,
+ additional-tickets [11] SEQUENCE OF Ticket OPTIONAL
+ -- NOTE: not empty
+}
+
+-- Use th k5.asn def
+--KDCOptions ::= KerberosFlags
+ -- reserved(0),
+ -- forwardable(1),
+ -- forwarded(2),
+ -- proxiable(3),
+ -- proxy(4),
+ -- allow-postdate(5),
+ -- postdated(6),
+ -- unused7(7),
+ -- renewable(8),
+ -- unused9(9),
+ -- unused10(10),
+ -- opt-hardware-auth(11),
+ -- unused12(12),
+ -- unused13(13),
+-- 15 is reserved for canonicalize
+ -- unused15(15),
+-- 26 was unused in 1510
+ -- disable-transited-check(26),
+--
+ -- renewable-ok(27),
+ -- enc-tkt-in-skey(28),
+ -- renew(30),
+ -- validate(31)
+
+AS-REP ::= [APPLICATION 11] KDC-REP
+
+TGS-REP ::= [APPLICATION 13] KDC-REP
+
+
+KDC-REP ::= SEQUENCE {
+ pvno [0] INTEGER (5),
+-- msg-type [1] INTEGER (11 - - AS - - | 13 - - TGS - -),
+-- msg-type [1] INTEGER, use k5.asn
+ msg-type [1] MESSAGE-TYPE,
+ padata [2] SEQUENCE OF PA-DATA OPTIONAL
+ -- NOTE: not empty --,
+ crealm [3] Realm,
+ cname [4] CName,
+ ticket [5] Ticket,
+ enc-part [6] EncryptedKDCREPData
+ -- EncASRepPart or EncTGSRepPart,
+ -- as appropriate
+}
+
+EncASRepPart ::= [APPLICATION 25] EncKDCRepPart
+
+EncTGSRepPart ::= [APPLICATION 26] EncKDCRepPart
+
+EncKDCRepPart ::= SEQUENCE {
+ key [0] EncryptionKey,
+ last-req [1] LastReq,
+ nonce [2] UInt32,
+ key-expiration [3] KerberosTime OPTIONAL,
+ flags [4] TicketFlags,
+ authtime [5] KerberosTime,
+ starttime [6] KerberosTime OPTIONAL,
+ endtime [7] KerberosTime,
+ renew-till [8] KerberosTime OPTIONAL,
+ srealm [9] Realm,
+ sname [10] SName,
+ caddr [11] HostAddresses OPTIONAL,
+ encrypted-pa-data[12] METHOD-DATA OPTIONAL -- from k5.asn
+}
+
+LastReq ::= SEQUENCE OF SEQUENCE {
+-- lr-type [0] Int32, Use k5.asn
+ lr-type [0] LR-TYPE,
+ lr-value [1] KerberosTime
+}
+
+AP-REQ ::= [APPLICATION 14] SEQUENCE {
+ pvno [0] INTEGER (5),
+-- msg-type [1] INTEGER (14), use k5.asn
+ msg-type [1] MESSAGE-TYPE,
+ ap-options [2] APOptions,
+ ticket [3] Ticket,
+ authenticator [4] EncryptedAuthorizationData -- Authenticator
+}
+-- Use the krb5.asn def.
+--APOptions ::= KerberosFlags
+ -- reserved(0),
+ -- use-session-key(1),
+ -- mutual-required(2)
+
+-- Unencrypted authenticator
+Authenticator ::= [APPLICATION 2] SEQUENCE {
+ authenticator-vno [0] INTEGER (5),
+ crealm [1] Realm,
+ cname [2] CName,
+ cksum [3] Checksum OPTIONAL,
+ cusec [4] Microseconds,
+ ctime [5] KerberosTime,
+ subkey [6] EncryptionKey OPTIONAL,
+ seq-number [7] UInt32 OPTIONAL,
+ authorization-data [8] AuthorizationData OPTIONAL
+}
+
+AP-REP ::= [APPLICATION 15] SEQUENCE {
+ pvno [0] INTEGER (5),
+-- msg-type [1] INTEGER (15), Use k5.asn
+ msg-type [1] MESSAGE-TYPE,
+ enc-part [2] EncryptedAPREPData -- EncAPRepPart
+}
+
+EncAPRepPart ::= [APPLICATION 27] SEQUENCE {
+ ctime [0] KerberosTime,
+ cusec [1] Microseconds,
+ subkey [2] EncryptionKey OPTIONAL,
+ seq-number [3] UInt32 OPTIONAL
+}
+
+KRB-SAFE ::= [APPLICATION 20] SEQUENCE {
+ pvno [0] INTEGER (5),
+-- msg-type [1] INTEGER (20), use k5.asn
+ msg-type [1] MESSAGE-TYPE,
+ safe-body [2] KRB-SAFE-BODY,
+ cksum [3] Checksum
+}
+
+KRB-SAFE-BODY ::= SEQUENCE {
+ user-data [0] OCTET STRING,
+ timestamp [1] KerberosTime OPTIONAL,
+ usec [2] Microseconds OPTIONAL,
+ seq-number [3] UInt32 OPTIONAL,
+ s-address [4] HostAddress OPTIONAL, -- XXX this one is OPTIONAL in packetcable? but mandatory in kerberos
+ r-address [5] HostAddress OPTIONAL
+}
+
+KRB-PRIV ::= [APPLICATION 21] SEQUENCE {
+ pvno [0] INTEGER (5),
+-- msg-type [1] INTEGER (21), Use k5.asn
+ msg-type [1] MESSAGE-TYPE,
+ -- NOTE: there is no [2] tag
+ enc-part [3] EncryptedKrbPrivData -- EncKrbPrivPart
+}
+
+ENC-KRB-PRIV-PART ::= [APPLICATION 28] EncKrbPrivPart
+
+EncKrbPrivPart ::= SEQUENCE {
+ user-data [0] OCTET STRING,
+ timestamp [1] KerberosTime OPTIONAL,
+ usec [2] Microseconds OPTIONAL,
+ seq-number [3] UInt32 OPTIONAL,
+ s-address [4] HostAddress -- sender's addr --,
+ r-address [5] HostAddress OPTIONAL -- recip's addr
+}
+
+KRB-CRED ::= [APPLICATION 22] SEQUENCE {
+ pvno [0] INTEGER (5),
+-- msg-type [1] INTEGER (22), use k5.asn
+ msg-type [1] MESSAGE-TYPE,
+ tickets [2] SEQUENCE OF Ticket,
+ enc-part [3] EncryptedKrbCredData -- EncKrbCredPart
+}
+
+EncKrbCredPart ::= [APPLICATION 29] SEQUENCE {
+ ticket-info [0] SEQUENCE OF KrbCredInfo,
+ nonce [1] UInt32 OPTIONAL,
+ timestamp [2] KerberosTime OPTIONAL,
+ usec [3] Microseconds OPTIONAL,
+ s-address [4] HostAddress OPTIONAL,
+ r-address [5] HostAddress OPTIONAL
+}
+
+KrbCredInfo ::= SEQUENCE {
+ key [0] EncryptionKey,
+ prealm [1] Realm OPTIONAL,
+ pname [2] PrincipalName OPTIONAL,
+ flags [3] TicketFlags OPTIONAL,
+ authtime [4] KerberosTime OPTIONAL,
+ starttime [5] KerberosTime OPTIONAL,
+ endtime [6] KerberosTime OPTIONAL,
+ renew-till [7] KerberosTime OPTIONAL,
+ srealm [8] Realm OPTIONAL,
+ sname [9] SName OPTIONAL,
+ caddr [10] HostAddresses OPTIONAL
+}
+
+KRB-ERROR ::= [APPLICATION 30] SEQUENCE {
+ pvno [0] INTEGER (5),
+-- msg-type [1] INTEGER (30), use k5.asn
+ msg-type [1] MESSAGE-TYPE,
+ ctime [2] KerberosTime OPTIONAL,
+ cusec [3] Microseconds OPTIONAL,
+ stime [4] KerberosTime,
+ susec [5] Microseconds,
+-- error-code [6] Int32,
+ error-code [6] ERROR-CODE, -- Use k5.asn
+ crealm [7] Realm OPTIONAL,
+ cname [8] CName OPTIONAL,
+ realm [9] Realm -- service realm --,
+ sname [10] SName -- service name --,
+ e-text [11] KerberosString OPTIONAL,
+ e-data [12] OCTET STRING OPTIONAL,
+ e-checksum [13] Checksum OPTIONAL -- used by PacketCable
+}
+
+METHOD-DATA ::= SEQUENCE OF PA-DATA
+
+TYPED-DATA ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
+ data-type [0] Int32,
+ data-value [1] OCTET STRING OPTIONAL
+}
+
+-- preauth stuff follows
+
+PA-ENC-TIMESTAMP ::= SEQUENCE {
+ etype [0] ENCTYPE -- EncryptionType --,
+ kvno [1] UInt32 OPTIONAL,
+ cipher [2] OCTET STRING -- ciphertext
+}
+
+PA-ENC-TS-ENC ::= SEQUENCE {
+ patimestamp [0] KerberosTime -- client's time --,
+ pausec [1] Microseconds OPTIONAL
+}
+
+ETYPE-INFO-ENTRY ::= SEQUENCE {
+-- etype [0] Int32, use k5.asn
+ etype [0] ENCTYPE,
+ salt [1] OCTET STRING OPTIONAL
+}
+
+ETYPE-INFO ::= SEQUENCE OF ETYPE-INFO-ENTRY
+
+ETYPE-INFO2-ENTRY ::= SEQUENCE {
+-- etype [0] Int32, use k5.asn
+ etype [0] ENCTYPE,
+ salt [1] KerberosString OPTIONAL,
+ s2kparams [2] OCTET STRING OPTIONAL
+}
+
+ETYPE-INFO2 ::= SEQUENCE SIZE (1..MAX) OF ETYPE-INFO2-ENTRY
+
+AD-IF-RELEVANT ::= AuthorizationData
+
+AD-KDCIssued ::= SEQUENCE {
+ ad-checksum [0] Checksum,
+ i-realm [1] Realm OPTIONAL,
+ i-sname [2] SName OPTIONAL,
+ elements [3] AuthorizationData
+}
+
+AD-AND-OR ::= SEQUENCE {
+ condition-count [0] Int32,
+ elements [1] AuthorizationData
+}
+
+AD-MANDATORY-FOR-KDC ::= AuthorizationData
+
+END
diff --git a/epan/dissectors/asn1/kerberos/Makefile.am b/epan/dissectors/asn1/kerberos/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/kerberos/Makefile.common b/epan/dissectors/asn1/kerberos/Makefile.common
new file mode 100644
index 0000000000..1871c27ca4
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/Makefile.common
@@ -0,0 +1,46 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=kerberos
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ KerberosV5Spec2.asn \
+ k5.asn \
+ RFC3244.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/kerberos/Makefile.nmake b/epan/dissectors/asn1/kerberos/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/kerberos/RFC3244.asn b/epan/dissectors/asn1/kerberos/RFC3244.asn
new file mode 100644
index 0000000000..4dcd06e1ec
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/RFC3244.asn
@@ -0,0 +1,12 @@
+-- Extracted from RFC 3244
+
+RFC3244 DEFINITIONS ::=
+BEGIN
+
+ChangePasswdData ::= SEQUENCE {
+ newpasswd[0] OCTET STRING,
+ targname[1] PrincipalName OPTIONAL,
+ targrealm[2] Realm OPTIONAL
+}
+
+END
diff --git a/epan/dissectors/asn1/kerberos/k5.asn b/epan/dissectors/asn1/kerberos/k5.asn
new file mode 100644
index 0000000000..dde61ec87f
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/k5.asn
@@ -0,0 +1,775 @@
+-- Extracted from http://www.h5l.org/dist/src/heimdal-1.2.tar.gz
+-- Id: k5.asn1 22745 2008-03-24 12:07:54Z lha $
+-- Commented out stuff already in KerberosV5Spec2.asn
+KERBEROS5 DEFINITIONS ::=
+BEGIN
+
+NAME-TYPE ::= INTEGER {
+ kRB5-NT-UNKNOWN(0), -- Name type not known
+ kRB5-NT-PRINCIPAL(1), -- Just the name of the principal as in
+ kRB5-NT-SRV-INST(2), -- Service and other unique instance (krbtgt)
+ kRB5-NT-SRV-HST(3), -- Service with host name as instance
+ kRB5-NT-SRV-XHST(4), -- Service with host as remaining components
+ kRB5-NT-UID(5), -- Unique ID
+ kRB5-NT-X500-PRINCIPAL(6), -- PKINIT
+ kRB5-NT-SMTP-NAME(7), -- Name in form of SMTP email name
+ kRB5-NT-ENTERPRISE-PRINCIPAL(10), -- Windows 2000 UPN
+ kRB5-NT-ENT-PRINCIPAL-AND-ID(-130), -- Windows 2000 UPN and SID
+ kRB5-NT-MS-PRINCIPAL(-128), -- NT 4 style name
+ kRB5-NT-MS-PRINCIPAL-AND-ID(-129) -- NT style name and SID
+}
+
+-- message types
+
+MESSAGE-TYPE ::= INTEGER {
+ krb-as-req(10), -- Request for initial authentication
+ krb-as-rep(11), -- Response to KRB_AS_REQ request
+ krb-tgs-req(12), -- Request for authentication based on TGT
+ krb-tgs-rep(13), -- Response to KRB_TGS_REQ request
+ krb-ap-req(14), -- application request to server
+ krb-ap-rep(15), -- Response to KRB_AP_REQ_MUTUAL
+ krb-safe(20), -- Safe (checksummed) application message
+ krb-priv(21), -- Private (encrypted) application message
+ krb-cred(22), -- Private (encrypted) message to forward credentials
+ krb-error(30) -- Error response
+}
+
+
+-- pa-data types
+
+PADATA-TYPE ::= INTEGER {
+ kRB5-PADATA-NONE(0),
+ kRB5-PADATA-TGS-REQ(1),
+ kRB5-PADATA-AP-REQ(1),
+ kRB5-PADATA-ENC-TIMESTAMP(2),
+ kRB5-PADATA-PW-SALT(3),
+ kRB5-PADATA-ENC-UNIX-TIME(5),
+ kRB5-PADATA-SANDIA-SECUREID(6),
+ kRB5-PADATA-SESAME(7),
+ kRB5-PADATA-OSF-DCE(8),
+ kRB5-PADATA-CYBERSAFE-SECUREID(9),
+ kRB5-PADATA-AFS3-SALT(10),
+ kRB5-PADATA-ETYPE-INFO(11),
+ kRB5-PADATA-SAM-CHALLENGE(12), -- (sam/otp)
+ kRB5-PADATA-SAM-RESPONSE(13), -- (sam/otp)
+ kRB5-PADATA-PK-AS-REQ-19(14), -- (PKINIT-19)
+ kRB5-PADATA-PK-AS-REP-19(15), -- (PKINIT-19)
+ kRB5-PADATA-PK-AS-REQ-WIN(15), -- (PKINIT - old number)
+ kRB5-PADATA-PK-AS-REQ(16), -- (PKINIT-25)
+ kRB5-PADATA-PK-AS-REP(17), -- (PKINIT-25)
+ kRB5-PADATA-PA-PK-OCSP-RESPONSE(18),
+ kRB5-PADATA-ETYPE-INFO2(19),
+ kRB5-PADATA-USE-SPECIFIED-KVNO(20),
+ kRB5-PADATA-SVR-REFERRAL-INFO(20), --- old ms referral number
+ kRB5-PADATA-SAM-REDIRECT(21), -- (sam/otp)
+ kRB5-PADATA-GET-FROM-TYPED-DATA(22),
+ kRB5-PADATA-SAM-ETYPE-INFO(23),
+ kRB5-PADATA-SERVER-REFERRAL(25),
+ kRB5-PADATA-TD-KRB-PRINCIPAL(102), -- PrincipalName
+ kRB5-PADATA-PK-TD-TRUSTED-CERTIFIERS(104), -- PKINIT
+ kRB5-PADATA-PK-TD-CERTIFICATE-INDEX(105), -- PKINIT
+ kRB5-PADATA-TD-APP-DEFINED-ERROR(106), -- application specific
+ kRB5-PADATA-TD-REQ-NONCE(107), -- INTEGER
+ kRB5-PADATA-TD-REQ-SEQ(108), -- INTEGER
+ kRB5-PADATA-PA-PAC-REQUEST(128), -- jbrezak@exchange.microsoft.com
+ kRB5-PADATA-S4U2SELF(129),
+ kRB5-PADATA-PK-AS-09-BINDING(132), -- client send this to
+ -- tell KDC that is supports
+ -- the asCheckSum in the
+ -- PK-AS-REP
+ kRB5-PADATA-CLIENT-CANONICALIZED(133) --
+}
+
+AUTHDATA-TYPE ::= INTEGER {
+ kRB5-AUTHDATA-IF-RELEVANT(1),
+ kRB5-AUTHDATA-INTENDED-FOR-SERVER(2),
+ kRB5-AUTHDATA-INTENDED-FOR-APPLICATION-CLASS(3),
+ kRB5-AUTHDATA-KDC-ISSUED(4),
+ kRB5-AUTHDATA-AND-OR(5),
+ kRB5-AUTHDATA-MANDATORY-TICKET-EXTENSIONS(6),
+ kRB5-AUTHDATA-IN-TICKET-EXTENSIONS(7),
+ kRB5-AUTHDATA-MANDATORY-FOR-KDC(8),
+ kRB5-AUTHDATA-INITIAL-VERIFIED-CAS(9),
+ kRB5-AUTHDATA-OSF-DCE(64),
+ kRB5-AUTHDATA-SESAME(65),
+ kRB5-AUTHDATA-OSF-DCE-PKI-CERTID(66),
+ kRB5-AUTHDATA-WIN2K-PAC(128),
+ kRB5-AUTHDATA-GSS-API-ETYPE-NEGOTIATION(129), -- Authenticator only
+ kRB5-AUTHDATA-SIGNTICKET(-17)
+}
+
+-- checksumtypes
+
+CKSUMTYPE ::= INTEGER {
+ cKSUMTYPE-NONE(0),
+ cKSUMTYPE-CRC32(1),
+ cKSUMTYPE-RSA-MD4(2),
+ cKSUMTYPE-RSA-MD4-DES(3),
+ cKSUMTYPE-DES-MAC(4),
+ cKSUMTYPE-DES-MAC-K(5),
+ cKSUMTYPE-RSA-MD4-DES-K(6),
+ cKSUMTYPE-RSA-MD5(7),
+ cKSUMTYPE-RSA-MD5-DES(8),
+ cKSUMTYPE-RSA-MD5-DES3(9),
+ cKSUMTYPE-SHA1-OTHER(10),
+ cKSUMTYPE-HMAC-SHA1-DES3-KD(12),
+ cKSUMTYPE-HMAC-SHA1-DES3(13),
+ cKSUMTYPE-SHA1(14),
+ cKSUMTYPE-HMAC-SHA1-96-AES-128(15),
+ cKSUMTYPE-HMAC-SHA1-96-AES-256(16),
+ cKSUMTYPE-CMAC-CAMELLIA128(17),
+ cKSUMTYPE-CMAC-CAMELLIA256(18),
+ cKSUMTYPE-GSSAPI(--0x8003--32771),
+ cKSUMTYPE-HMAC-MD5(-138), -- unofficial microsoft number
+ cKSUMTYPE-HMAC-MD5-ENC(-1138) -- even more unofficial
+}
+
+--enctypes
+ENCTYPE ::= INTEGER {
+ eTYPE-NULL(0),
+ eTYPE-DES-CBC-CRC(1),
+ eTYPE-DES-CBC-MD4(2),
+ eTYPE-DES-CBC-MD5(3),
+ eTYPE-DES3-CBC-MD5(5),
+ eTYPE-OLD-DES3-CBC-SHA1(7),
+ eTYPE-SIGN-DSA-GENERATE(8),
+ eTYPE-DSA-SHA1(9),
+ eTYPE-RSA-MD5(10),
+ eTYPE-RSA-SHA1(11),
+ eTYPE-RC2-CBC(12),
+ eTYPE-RSA(13),
+ eTYPE-RSAES-OAEP(14),
+ eTYPE-DES-EDE3-CBC(15),
+ eTYPE-DES3-CBC-SHA1(16), -- with key derivation
+ eTYPE-AES128-CTS-HMAC-SHA1-96(17),
+ eTYPE-AES256-CTS-HMAC-SHA1-96(18),
+ eTYPE-ARCFOUR-HMAC-MD5(23),
+ eTYPE-ARCFOUR-HMAC-MD5-56(24),
+ eTYPE-CAMELLIA128-CTS-CMAC(25),
+ eTYPE-CAMELLIA256-CTS-CMAC(26),
+ eTYPE-ENCTYPE-PK-CROSS(48),
+-- some "old" windows types
+ eTYPE-ARCFOUR-MD4(-128),
+ eTYPE-ARCFOUR-HMAC-OLD(-133),
+ eTYPE-ARCFOUR-HMAC-OLD-EXP(-135),
+-- these are for Heimdal internal use
+-- eTYPE-DES-CBC-NONE(-0x1000),
+ eTYPE-DES-CBC-NONE( -4096),
+-- eTYPE-DES3-CBC-NONE(-0x1001),
+ eTYPE-DES3-CBC-NONE(-4097),
+-- eTYPE-DES-CFB64-NONE(-0x1002),
+ eTYPE-DES-CFB64-NONE(-4098),
+-- eTYPE-DES-PCBC-NONE(-0x1003),
+ eTYPE-DES-PCBC-NONE(-4099),
+-- eTYPE-DIGEST-MD5-NONE(-0x1004), - - private use, lukeh@padl.com
+ eTYPE-DIGEST-MD5-NONE(-4100), -- private use, lukeh@padl.com
+-- eTYPE-CRAM-MD5-NONE(-0x1005) - - private use, lukeh@padl.com
+ eTYPE-CRAM-MD5-NONE(-4101) -- private use, lukeh@padl.com
+}
+
+-- addr-types (WS extension )
+ADDR-TYPE ::= INTEGER {
+ iPv4(2),
+ cHAOS(5),
+ xEROX(6),
+ iSO(7),
+ dECNET(12),
+ aPPLETALK(16),
+ nETBIOS(20),
+ iPv6(24)
+}
+
+-- error-codes (WS extension)
+ERROR-CODE ::= INTEGER {
+--error table constants
+ eRR-NONE(0),
+ eRR-NAME-EXP(1),
+ eRR-SERVICE-EXP(2),
+ eRR-BAD-PVNO(3),
+ eRR-C-OLD-MAST-KVNO(4),
+ eRR-S-OLD-MAST-KVNO(5),
+ eRR-C-PRINCIPAL-UNKNOWN(6),
+ eRR-S-PRINCIPAL-UNKNOWN(7),
+ eRR-PRINCIPAL-NOT-UNIQUE(8),
+ eRR-NULL-KEY(9),
+ eRR-CANNOT-POSTDATE(10),
+ eRR-NEVER-VALID(11),
+ eRR-POLICY(12),
+ eRR-BADOPTION(13),
+ eRR-ETYPE-NOSUPP(14),
+ eRR-SUMTYPE-NOSUPP(15),
+ eRR-PADATA-TYPE-NOSUPP(16),
+ eRR-TRTYPE-NOSUPP(17),
+ eRR-CLIENT-REVOKED(18),
+ eRR-SERVICE-REVOKED(19),
+ eRR-TGT-REVOKED(20),
+ eRR-CLIENT-NOTYET(21),
+ eRR-SERVICE-NOTYET(22),
+ eRR-KEY-EXP(23),
+ eRR-PREAUTH-FAILED(24),
+ eRR-PREAUTH-REQUIRED(25),
+ eRR-SERVER-NOMATCH(26),
+ eRR-MUST-USE-USER2USER(27),
+ eRR-PATH-NOT-ACCEPTED(28),
+ eRR-SVC-UNAVAILABLE(29),
+ eRR-BAD-INTEGRITY(31),
+ eRR-TKT-EXPIRED(32),
+ eRR-TKT-NYV(33),
+ eRR-REPEAT(34),
+ eRR-NOT-US(35),
+ eRR-BADMATCH(36),
+ eRR-SKEW(37),
+ eRR-BADADDR(38),
+ eRR-BADVERSION(39),
+ eRR-MSG-TYPE(40),
+ eRR-MODIFIED(41),
+ eRR-BADORDER(42),
+ eRR-ILL-CR-TKT(43),
+ eRR-BADKEYVER(44),
+ eRR-NOKEY(45),
+ eRR-MUT-FAIL(46),
+ eRR-BADDIRECTION(47),
+ eRR-METHOD(48),
+ eRR-BADSEQ(49),
+ eRR-INAPP-CKSUM(50),
+ pATH-NOT-ACCEPTED(51),
+ eRR-RESPONSE-TOO-BIG(52),
+ eRR-GENERIC(60),
+ eRR-FIELD-TOOLONG(61),
+ eRROR-CLIENT-NOT-TRUSTED(62),
+ eRROR-KDC-NOT-TRUSTED(63),
+ eRROR-INVALID-SIG(64),
+ eRR-KEY-TOO-WEAK(65),
+ eRR-CERTIFICATE-MISMATCH(66),
+ eRR-NO-TGT(67),
+ eRR-WRONG-REALM(68),
+ eRR-USER-TO-USER-REQUIRED(69),
+ eRR-CANT-VERIFY-CERTIFICATE(70),
+ eRR-INVALID-CERTIFICATE(71),
+ eRR-REVOKED-CERTIFICATE(72),
+ eRR-REVOCATION-STATUS-UNKNOWN(73),
+ eRR-REVOCATION-STATUS-UNAVAILABLE(74),
+ eRR-CLIENT-NAME-MISMATCH(75),
+ eRR-KDC-NAME-MISMATCH(76)
+}
+
+-- this is sugar to make something ASN1 does not have: unsigned
+
+Krb5uint32 ::= INTEGER (0..4294967295)
+Krb5int32 ::= INTEGER (-2147483648..2147483647)
+
+--KerberosString ::= GeneralString
+
+--Realm ::= GeneralString
+--PrincipalName ::= SEQUENCE {
+-- name-type[0] NAME-TYPE,
+-- name-string[1] SEQUENCE OF GeneralString
+--}
+
+-- this is not part of RFC1510
+Principal ::= SEQUENCE {
+ name[0] PrincipalName,
+ realm[1] Realm
+}
+
+--HostAddress ::= SEQUENCE {
+-- addr-type [0] Krb5int32,
+-- address [1] OCTET STRING
+--}
+
+-- This is from RFC1510.
+--
+-- HostAddresses ::= SEQUENCE OF SEQUENCE {
+-- addr-type[0] Krb5int32,
+-- address[1] OCTET STRING
+-- }
+
+-- This seems much better.
+--HostAddresses ::= SEQUENCE OF HostAddress
+
+
+--KerberosTime ::= GeneralizedTime - - Specifying UTC time zone (Z)
+
+--AuthorizationDataElement ::= SEQUENCE {
+-- ad-type[0] Krb5int32,
+-- ad-data[1] OCTET STRING
+--}
+
+--AuthorizationData ::= SEQUENCE OF AuthorizationDataElement
+
+APOptions ::= BIT STRING {
+ reserved(0),
+ use-session-key(1),
+ mutual-required(2)
+}
+
+TicketFlags ::= BIT STRING {
+ reserved(0),
+ forwardable(1),
+ forwarded(2),
+ proxiable(3),
+ proxy(4),
+ may-postdate(5),
+ postdated(6),
+ invalid(7),
+ renewable(8),
+ initial(9),
+ pre-authent(10),
+ hw-authent(11),
+ transited-policy-checked(12),
+ ok-as-delegate(13),
+ anonymous(14)
+}
+
+KDCOptions ::= BIT STRING {
+ reserved(0),
+ forwardable(1),
+ forwarded(2),
+ proxiable(3),
+ proxy(4),
+ allow-postdate(5),
+ postdated(6),
+ unused7(7),
+ renewable(8),
+ unused9(9),
+ unused10(10),
+ opt-hardware-auth(11), -- taken from KerberosV5Spec2.asn
+ request-anonymous(14),
+ canonicalize(15),
+ constrained-delegation(16), -- ms extension
+ disable-transited-check(26),
+ renewable-ok(27),
+ enc-tkt-in-skey(28),
+ renew(30),
+ validate(31)
+}
+
+LR-TYPE ::= INTEGER {
+ lR-NONE(0), -- no information
+ lR-INITIAL-TGT(1), -- last initial TGT request
+ lR-INITIAL(2), -- last initial request
+ lR-ISSUE-USE-TGT(3), -- time of newest TGT used
+ lR-RENEWAL(4), -- time of last renewal
+ lR-REQUEST(5), -- time of last request (of any type)
+ lR-PW-EXPTIME(6), -- expiration time of password
+ lR-ACCT-EXPTIME(7) -- expiration time of account
+}
+
+--LastReq ::= SEQUENCE OF SEQUENCE {
+-- lr-type[0] LR-TYPE,
+-- lr-value[1] KerberosTime
+--}
+
+
+--EncryptedData ::= SEQUENCE {
+-- etype[0] ENCTYPE, - - EncryptionType
+-- kvno[1] Krb5int32 OPTIONAL,
+-- cipher[2] OCTET STRING - - ciphertext
+--}
+
+--EncryptionKey ::= SEQUENCE {
+-- keytype[0] Krb5int32,
+-- keyvalue[1] OCTET STRING
+--}
+
+-- encoded Transited field
+--TransitedEncoding ::= SEQUENCE {
+-- tr-type[0] Krb5int32, - - must be registered
+-- contents[1] OCTET STRING
+--}
+
+--Ticket ::= [APPLICATION 1] SEQUENCE {
+-- tkt-vno[0] Krb5int32,
+-- realm[1] Realm,
+-- sname[2] PrincipalName,
+-- enc-part[3] EncryptedData
+--}
+-- Encrypted part of ticket
+--EncTicketPart ::= [APPLICATION 3] SEQUENCE {
+-- flags[0] TicketFlags,
+-- key[1] EncryptionKey,
+-- crealm[2] Realm,
+-- cname[3] PrincipalName,
+-- transited[4] TransitedEncoding,
+-- authtime[5] KerberosTime,
+-- starttime[6] KerberosTime OPTIONAL,
+-- endtime[7] KerberosTime,
+-- renew-till[8] KerberosTime OPTIONAL,
+-- caddr[9] HostAddresses OPTIONAL,
+-- authorization-data[10] AuthorizationData OPTIONAL
+--}
+
+--Checksum ::= SEQUENCE {
+-- cksumtype[0] CKSUMTYPE,
+-- checksum[1] OCTET STRING
+--}
+
+--Authenticator ::= [APPLICATION 2] SEQUENCE {
+-- authenticator-vno[0] Krb5int32,
+-- crealm[1] Realm,
+-- cname[2] PrincipalName,
+-- cksum[3] Checksum OPTIONAL,
+-- cusec[4] Krb5int32,
+-- ctime[5] KerberosTime,
+-- subkey[6] EncryptionKey OPTIONAL,
+-- seq-number[7] Krb5uint32 OPTIONAL,
+-- authorization-data[8] AuthorizationData OPTIONAL
+--}
+
+--PA-DATA ::= SEQUENCE {
+ -- might be encoded AP-REQ
+-- padata-type[1] PADATA-TYPE,
+-- padata-value[2] OCTET STRING
+--}
+
+--ETYPE-INFO-ENTRY ::= SEQUENCE {
+-- etype[0] ENCTYPE,
+-- salt[1] OCTET STRING OPTIONAL,
+-- salttype[2] Krb5int32 OPTIONAL
+--}
+
+--ETYPE-INFO ::= SEQUENCE OF ETYPE-INFO-ENTRY
+
+--ETYPE-INFO2-ENTRY ::= SEQUENCE {
+-- etype[0] ENCTYPE,
+-- salt[1] KerberosString OPTIONAL,
+-- s2kparams[2] OCTET STRING OPTIONAL
+--}
+
+--ETYPE-INFO2 ::= SEQUENCE SIZE (1..MAX) OF ETYPE-INFO2-ENTRY
+
+-- METHOD-DATA ::= SEQUENCE OF PA-DATA
+
+--TypedData ::= SEQUENCE {
+-- data-type[0] Krb5int32,
+-- data-value[1] OCTET STRING OPTIONAL
+--}
+
+--TYPED-DATA ::= SEQUENCE SIZE (1..MAX) OF TypedData
+
+--KDC-REQ-BODY ::= SEQUENCE {
+-- kdc-options[0] KDCOptions,
+-- cname[1] PrincipalName OPTIONAL, - - Used only in AS-REQ
+-- realm[2] Realm, - - Server's realm
+ -- Also client's in AS-REQ
+-- sname[3] PrincipalName OPTIONAL,
+-- from[4] KerberosTime OPTIONAL,
+-- till[5] KerberosTime OPTIONAL,
+-- rtime[6] KerberosTime OPTIONAL,
+-- nonce[7] Krb5int32,
+-- etype[8] SEQUENCE OF ENCTYPE, - - EncryptionType,
+ -- in preference order
+-- addresses[9] HostAddresses OPTIONAL,
+-- enc-authorization-data[10] EncryptedData OPTIONAL,
+ -- Encrypted AuthorizationData encoding
+-- additional-tickets[11] SEQUENCE OF Ticket OPTIONAL
+--}
+
+--KDC-REQ ::= SEQUENCE {
+-- pvno[1] Krb5int32,
+-- msg-type[2] MESSAGE-TYPE,
+-- padata[3] METHOD-DATA OPTIONAL,
+-- req-body[4] KDC-REQ-BODY
+--}
+
+--AS-REQ ::= [APPLICATION 10] KDC-REQ
+--TGS-REQ ::= [APPLICATION 12] KDC-REQ
+
+-- padata-type ::= PA-ENC-TIMESTAMP
+-- padata-value ::= EncryptedData - PA-ENC-TS-ENC
+
+--PA-ENC-TS-ENC ::= SEQUENCE {
+-- patimestamp[0] KerberosTime, - - client's time
+-- pausec[1] Krb5int32 OPTIONAL
+--}
+
+-- draft-brezak-win2k-krb-authz-01
+PA-PAC-REQUEST ::= SEQUENCE {
+ include-pac[0] BOOLEAN -- Indicates whether a PAC
+ -- should be included or not
+}
+
+-- PacketCable provisioning server location, PKT-SP-SEC-I09-030728.pdf
+PROV-SRV-LOCATION ::= GeneralString
+
+--KDC-REP ::= SEQUENCE {
+-- pvno[0] Krb5int32,
+-- msg-type[1] MESSAGE-TYPE,
+-- padata[2] METHOD-DATA OPTIONAL,
+-- crealm[3] Realm,
+-- cname[4] PrincipalName,
+-- ticket[5] Ticket,
+-- enc-part[6] EncryptedData
+--}
+
+--AS-REP ::= [APPLICATION 11] KDC-REP
+--TGS-REP ::= [APPLICATION 13] KDC-REP
+
+--EncKDCRepPart ::= SEQUENCE {
+-- key[0] EncryptionKey,
+-- last-req[1] LastReq,
+-- nonce[2] Krb5int32,
+-- key-expiration[3] KerberosTime OPTIONAL,
+-- flags[4] TicketFlags,
+-- authtime[5] KerberosTime,
+-- starttime[6] KerberosTime OPTIONAL,
+-- endtime[7] KerberosTime,
+-- renew-till[8] KerberosTime OPTIONAL,
+-- srealm[9] Realm,
+-- sname[10] PrincipalName,
+-- caddr[11] HostAddresses OPTIONAL,
+-- encrypted-pa-data[12] METHOD-DATA OPTIONAL
+--}
+
+--EncASRepPart ::= [APPLICATION 25] EncKDCRepPart
+--EncTGSRepPart ::= [APPLICATION 26] EncKDCRepPart
+
+--AP-REQ ::= [APPLICATION 14] SEQUENCE {
+-- pvno[0] Krb5int32,
+-- msg-type[1] MESSAGE-TYPE,
+-- ap-options[2] APOptions,
+-- ticket[3] Ticket,
+-- authenticator[4] EncryptedData
+--}
+
+--AP-REP ::= [APPLICATION 15] SEQUENCE {
+-- pvno[0] Krb5int32,
+-- msg-type[1] MESSAGE-TYPE,
+-- enc-part[2] EncryptedData
+--}
+
+--EncAPRepPart ::= [APPLICATION 27] SEQUENCE {
+-- ctime[0] KerberosTime,
+-- cusec[1] Krb5int32,
+-- subkey[2] EncryptionKey OPTIONAL,
+-- seq-number[3] Krb5uint32 OPTIONAL
+--}
+
+--KRB-SAFE-BODY ::= SEQUENCE {
+-- user-data[0] OCTET STRING,
+-- timestamp[1] KerberosTime OPTIONAL,
+-- usec[2] Krb5int32 OPTIONAL,
+-- seq-number[3] Krb5uint32 OPTIONAL,
+-- s-address[4] HostAddress OPTIONAL,
+-- r-address[5] HostAddress OPTIONAL
+--}
+
+--KRB-SAFE ::= [APPLICATION 20] SEQUENCE {
+-- pvno[0] Krb5int32,
+-- msg-type[1] MESSAGE-TYPE,
+-- safe-body[2] KRB-SAFE-BODY,
+-- cksum[3] Checksum
+--}
+
+--KRB-PRIV ::= [APPLICATION 21] SEQUENCE {
+-- pvno[0] Krb5int32,
+-- msg-type[1] MESSAGE-TYPE,
+-- enc-part[3] EncryptedData
+--}
+--EncKrbPrivPart ::= [APPLICATION 28] SEQUENCE {
+-- user-data[0] OCTET STRING,
+-- timestamp[1] KerberosTime OPTIONAL,
+-- usec[2] Krb5int32 OPTIONAL,
+-- seq-number[3] Krb5uint32 OPTIONAL,
+-- s-address[4] HostAddress OPTIONAL, - - sender's addr
+-- r-address[5] HostAddress OPTIONAL - - recip's addr
+--}
+
+--KRB-CRED ::= [APPLICATION 22] SEQUENCE {
+-- pvno[0] Krb5int32,
+-- msg-type[1] MESSAGE-TYPE, - - KRB_CRED
+-- tickets[2] SEQUENCE OF Ticket,
+-- enc-part[3] EncryptedData
+--}
+
+--KrbCredInfo ::= SEQUENCE {
+-- key[0] EncryptionKey,
+-- prealm[1] Realm OPTIONAL,
+-- pname[2] PrincipalName OPTIONAL,
+-- flags[3] TicketFlags OPTIONAL,
+-- authtime[4] KerberosTime OPTIONAL,
+-- starttime[5] KerberosTime OPTIONAL,
+-- endtime[6] KerberosTime OPTIONAL,
+-- renew-till[7] KerberosTime OPTIONAL,
+-- srealm[8] Realm OPTIONAL,
+-- sname[9] PrincipalName OPTIONAL,
+-- caddr[10] HostAddresses OPTIONAL
+--}
+
+--EncKrbCredPart ::= [APPLICATION 29] SEQUENCE {
+-- ticket-info[0] SEQUENCE OF KrbCredInfo,
+-- nonce[1] Krb5int32 OPTIONAL,
+-- timestamp[2] KerberosTime OPTIONAL,
+-- usec[3] Krb5int32 OPTIONAL,
+-- s-address[4] HostAddress OPTIONAL,
+-- r-address[5] HostAddress OPTIONAL
+--}
+
+--KRB-ERROR ::= [APPLICATION 30] SEQUENCE {
+-- pvno[0] Krb5int32,
+-- msg-type[1] MESSAGE-TYPE,
+-- ctime[2] KerberosTime OPTIONAL,
+-- cusec[3] Krb5int32 OPTIONAL,
+-- stime[4] KerberosTime,
+-- susec[5] Krb5int32,
+-- error-code[6] Krb5int32,
+-- crealm[7] Realm OPTIONAL,
+-- cname[8] PrincipalName OPTIONAL,
+-- realm[9] Realm, - - Correct realm
+-- sname[10] PrincipalName, - - Correct name
+-- e-text[11] GeneralString OPTIONAL,
+-- e-data[12] OCTET STRING OPTIONAL
+--}
+
+ChangePasswdDataMS ::= SEQUENCE {
+ newpasswd[0] OCTET STRING,
+ targname[1] PrincipalName OPTIONAL,
+ targrealm[2] Realm OPTIONAL
+}
+
+EtypeList ::= SEQUENCE OF Krb5int32
+ -- the client's proposed enctype list in
+ -- decreasing preference order, favorite choice first
+
+--krb5-pvno Krb5int32 ::= 5 - - current Kerberos protocol version number
+
+-- transited encodings
+
+--DOMAIN-X500-COMPRESS Krb5int32 ::= 1
+
+-- authorization data primitives
+
+--AD-IF-RELEVANT ::= AuthorizationData
+
+--AD-KDCIssued ::= SEQUENCE {
+-- ad-checksum[0] Checksum,
+-- i-realm[1] Realm OPTIONAL,
+-- i-sname[2] PrincipalName OPTIONAL,
+-- elements[3] AuthorizationData
+--}
+
+--AD-AND-OR ::= SEQUENCE {
+-- condition-count[0] INTEGER,
+-- elements[1] AuthorizationData
+--}
+
+--AD-MANDATORY-FOR-KDC ::= AuthorizationData
+
+-- PA-SAM-RESPONSE-2/PA-SAM-RESPONSE-2
+
+PA-SAM-TYPE ::= INTEGER {
+ pA-SAM-TYPE-ENIGMA(1), -- Enigma Logic
+ pA-SAM-TYPE-DIGI-PATH(2), -- Digital Pathways
+ pA-SAM-TYPE-SKEY-K0(3), -- S/key where KDC has key 0
+ pA-SAM-TYPE-SKEY(4), -- Traditional S/Key
+ pA-SAM-TYPE-SECURID(5), -- Security Dynamics
+ pA-SAM-TYPE-CRYPTOCARD(6) -- CRYPTOCard
+}
+
+PA-SAM-REDIRECT ::= HostAddresses
+
+SAMFlags ::= BIT STRING {
+ use-sad-as-key(0),
+ send-encrypted-sad(1),
+ must-pk-encrypt-sad(2)
+}
+
+PA-SAM-CHALLENGE-2-BODY ::= SEQUENCE {
+ sam-type[0] Krb5int32,
+ sam-flags[1] SAMFlags,
+ sam-type-name[2] GeneralString OPTIONAL,
+ sam-track-id[3] GeneralString OPTIONAL,
+ sam-challenge-label[4] GeneralString OPTIONAL,
+ sam-challenge[5] GeneralString OPTIONAL,
+ sam-response-prompt[6] GeneralString OPTIONAL,
+ sam-pk-for-sad[7] EncryptionKey OPTIONAL,
+ sam-nonce[8] Krb5int32,
+ sam-etype[9] Krb5int32,
+ ...
+}
+
+PA-SAM-CHALLENGE-2 ::= SEQUENCE {
+ sam-body[0] PA-SAM-CHALLENGE-2-BODY,
+ sam-cksum[1] SEQUENCE OF Checksum, -- (1..MAX)
+ ...
+}
+
+PA-SAM-RESPONSE-2 ::= SEQUENCE {
+ sam-type[0] Krb5int32,
+ sam-flags[1] SAMFlags,
+ sam-track-id[2] GeneralString OPTIONAL,
+ sam-enc-nonce-or-sad[3] EncryptedData, -- PA-ENC-SAM-RESPONSE-ENC
+ sam-nonce[4] Krb5int32,
+ ...
+}
+
+PA-ENC-SAM-RESPONSE-ENC ::= SEQUENCE {
+ sam-nonce[0] Krb5int32,
+ sam-sad[1] GeneralString OPTIONAL,
+ ...
+}
+
+PA-S4U2Self ::= SEQUENCE {
+ name[0] PrincipalName,
+ realm[1] Realm,
+ cksum[2] Checksum,
+ auth[3] GeneralString
+}
+
+KRB5SignedPathPrincipals ::= SEQUENCE OF Principal
+
+-- never encoded on the wire, just used to checksum over
+KRB5SignedPathData ::= SEQUENCE {
+ encticket[0] EncTicketPart,
+ delegated[1] KRB5SignedPathPrincipals OPTIONAL
+}
+
+KRB5SignedPath ::= SEQUENCE {
+ -- DERcoded KRB5SignedPathData
+ -- krbtgt key (etype), KeyUsage = XXX
+ etype[0] ENCTYPE,
+ cksum[1] Checksum,
+ -- srvs delegated though
+ delegated[2] KRB5SignedPathPrincipals OPTIONAL
+}
+
+PA-ClientCanonicalizedNames ::= SEQUENCE{
+ requested-name [0] PrincipalName,
+ mapped-name [1] PrincipalName
+}
+
+PA-ClientCanonicalized ::= SEQUENCE {
+ names [0] PA-ClientCanonicalizedNames,
+ canon-checksum [1] Checksum
+}
+
+AD-LoginAlias ::= SEQUENCE { -- ad-type number TBD --
+ login-alias [0] PrincipalName,
+ checksum [1] Checksum
+}
+
+-- old ms referral
+PA-SvrReferralData ::= SEQUENCE {
+ referred-name [1] PrincipalName OPTIONAL,
+ referred-realm [0] Realm
+}
+
+PA-SERVER-REFERRAL-DATA ::= EncryptedData
+
+PA-ServerReferralData ::= SEQUENCE {
+ referred-realm [0] Realm OPTIONAL,
+ true-principal-name [1] PrincipalName OPTIONAL,
+ requested-principal-name [2] PrincipalName OPTIONAL,
+ referral-valid-until [3] KerberosTime OPTIONAL,
+ ...
+}
+-- WS put extensions found elsewere here
+-- http://msdn.microsoft.com/en-us/library/cc206948.aspx
+--
+KERB-PA-PAC-REQUEST ::= SEQUENCE {
+include-pac[0] BOOLEAN --If TRUE, and no pac present, include PAC.
+ --If FALSE, and PAC present, remove PAC
+}
+END
+
+-- etags -r '/\([A-Za-z][-A-Za-z0-9]*\).*::=/\1/' k5.asn1
diff --git a/epan/dissectors/asn1/kerberos/kerberos.cnf b/epan/dissectors/asn1/kerberos/kerberos.cnf
new file mode 100644
index 0000000000..ff73d2b44b
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/kerberos.cnf
@@ -0,0 +1,388 @@
+# kerberos.cnf
+# kerberos conformation file
+# Copyright 2008 Anders Broman
+
+#.EXPORTS
+ChangePasswdData
+
+#.FIELD_RENAME
+#EncryptedData/etype encryptedData_etype
+KDC-REQ-BODY/etype kDC-REQ-BODY_etype
+KRB-SAFE-BODY/user-data kRB-SAFE-BODY_user_data
+EncKrbPrivPart/user-data encKrbPrivPart_user_data
+EncryptedTicketData/cipher encryptedTicketData_cipher
+EncryptedAuthorizationData/cipher encryptedAuthorizationData_cipher
+EncryptedKDCREPData/cipher encryptedKDCREPData_cipher
+PA-ENC-TIMESTAMP/cipher pA-ENC-TIMESTAMP_cipher
+EncryptedAPREPData/cipher encryptedAPREPData_cipher
+EncryptedKrbPrivData/cipher encryptedKrbPrivData_cipher
+EncryptedKrbCredData/cipher encryptedKrbCredData_cipher
+KRB-CRED/_untag/enc-part kRB_CRED_enc_part
+KRB-PRIV/_untag/enc-part kRB_PRIV_enc_part
+AP-REP/_untag/enc-part aP_REP_enc_part
+KDC-REP/enc-part kDC_REP_enc_part
+Ticket/_untag/enc-part ticket_enc_part
+
+#.OMIT_ASSIGNMENT
+AD-AND-OR
+AD-KDCIssued
+AD-LoginAlias
+AD-MANDATORY-FOR-KDC
+AUTHDATA-TYPE
+ChangePasswdDataMS
+EncryptedData
+EtypeList
+KerberosFlags
+KRB5SignedPath
+KRB5SignedPathData
+KRB5SignedPathPrincipals
+Krb5int32
+Krb5uint32
+PA-ClientCanonicalized
+PA-ClientCanonicalizedNames
+PA-ENC-TS-ENC
+PA-ENC-SAM-RESPONSE-ENC
+PA-PAC-REQUEST
+PA-SAM-CHALLENGE-2
+PA-SAM-CHALLENGE-2-BODY
+PA-SAM-REDIRECT
+PA-SAM-RESPONSE-2
+PA-SAM-TYPE
+PA-SERVER-REFERRAL-DATA
+PA-ServerReferralData
+PA-SvrReferralData
+Principal
+PROV-SRV-LOCATION
+SAMFlags
+TYPED-DATA
+
+#.NO_EMIT ONLY_VALS
+Applications
+
+#.MAKE_DEFINES
+ADDR-TYPE TYPE_PREFIX
+
+#.FN_BODY MESSAGE-TYPE VAL_PTR = &msgtype
+guint32 msgtype;
+
+%(DEFAULT_BODY)s
+
+#.FN_FTR MESSAGE-TYPE
+ if (gbl_do_col_info) {
+ col_add_str(actx->pinfo->cinfo, COL_INFO,
+ val_to_str(msgtype, krb5_msg_types,
+ "Unknown msg type %#x"));
+ }
+ gbl_do_col_info=FALSE;
+
+##if 0
+ /* append the application type to the tree */
+ proto_item_append_text(tree, " %s", val_to_str(msgtype, krb5_msg_types, "Unknown:0x%x"));
+##endif
+
+#.FN_BODY ERROR-CODE VAL_PTR = &krb5_errorcode
+%(DEFAULT_BODY)s
+
+#.FN_FTR ERROR-CODE
+ if(krb5_errorcode) {
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO,
+ "KRB Error: %s",
+ val_to_str(krb5_errorcode, krb5_error_codes,
+ "Unknown error code %#x"));
+ }
+
+ return offset;
+#.END
+#.FN_BODY KRB-ERROR/_untag/e-data
+ switch(krb5_errorcode){
+ case KRB5_ET_KRB5KDC_ERR_BADOPTION:
+ case KRB5_ET_KRB5KDC_ERR_CLIENT_REVOKED:
+ case KRB5_ET_KRB5KDC_ERR_KEY_EXP:
+ case KRB5_ET_KRB5KDC_ERR_POLICY:
+ /* ms windows kdc sends e-data of this type containing a "salt"
+ * that contains the nt_status code for these error codes.
+ */
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_kerberos_e_data, dissect_kerberos_PA_DATA);
+ break;
+ case KRB5_ET_KRB5KDC_ERR_PREAUTH_REQUIRED:
+ case KRB5_ET_KRB5KDC_ERR_PREAUTH_FAILED:
+ case KRB5_ET_KRB5KDC_ERR_ETYPE_NOSUPP:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_kerberos_e_data, dissect_kerberos_SEQUENCE_OF_PA_DATA);
+
+ break;
+ default:
+ offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_kerberos_e_data, NULL);
+ }
+
+
+#.FN_BODY PADATA-TYPE VAL_PTR=&(private_data->padata_type)
+ kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
+%(DEFAULT_BODY)s
+#.FN_FTR PADATA-TYPE
+ if(tree){
+ proto_item_append_text(tree, " %s",
+ val_to_str(private_data->padata_type, krb5_preauthentication_types,
+ "Unknown:%d"));
+ }
+
+#.FN_BODY PA-DATA/padata-value
+ proto_tree *sub_tree=tree;
+ kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
+
+ if(actx->created_item){
+ sub_tree=proto_item_add_subtree(actx->created_item, ett_kerberos_PA_DATA);
+ }
+
+ switch(private_data->padata_type){
+ case KRB5_PA_TGS_REQ:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_Applications);
+ break;
+ case KRB5_PA_PK_AS_REQ:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PaPkAsReq);
+ break;
+ case KRB5_PA_PK_AS_REP:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PaPkAsRep);
+ break;
+ case KRB5_PA_PAC_REQUEST:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_KERB_PA_PAC_REQUEST);
+ break;
+ case KRB5_PA_S4U2SELF:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_S4U2Self);
+ break;
+ case KRB5_PA_PROV_SRV_LOCATION:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_krb5_PA_PROV_SRV_LOCATION);
+ break;
+ case KRB5_PA_ENC_TIMESTAMP:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_ENC_TIMESTAMP);
+ break;
+ case KRB5_PA_ENCTYPE_INFO:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_ETYPE_INFO);
+ break;
+ case KRB5_PA_ENCTYPE_INFO2:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_ETYPE_INFO2);
+ break;
+ case KRB5_PA_PW_SALT:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_krb5_PW_SALT);
+ break;
+ default:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, NULL);
+ }
+
+#.FN_BODY HostAddress/address
+ gint8 appclass;
+ gboolean pc;
+ gint32 tag;
+ guint32 len;
+ const char *address_str;
+ proto_item *it=NULL;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
+ /* read header and len for the octet string */
+ offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &appclass, &pc, &tag);
+ offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, NULL);
+
+ switch(private_data->addr_type){
+ case KERBEROS_ADDR_TYPE_IPV4:
+ it=proto_tree_add_item(tree, hf_krb_address_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
+ address_str = tvb_ip_to_str(tvb, offset);
+ break;
+ case KERBEROS_ADDR_TYPE_NETBIOS:
+ {
+ char netbios_name[(NETBIOS_NAME_LEN - 1)*4 + 1];
+ int netbios_name_type;
+ int netbios_name_len = (NETBIOS_NAME_LEN - 1)*4 + 1;
+
+ netbios_name_type = process_netbios_name(tvb_get_ptr(tvb, offset, 16), netbios_name, netbios_name_len);
+ address_str = wmem_strdup_printf(wmem_packet_scope(), "%s<%02x>", netbios_name, netbios_name_type);
+ it=proto_tree_add_string_format(tree, hf_krb_address_netbios, tvb, offset, 16, netbios_name, "NetBIOS Name: %s (%s)", address_str, netbios_name_type_descr(netbios_name_type));
+ }
+ break;
+ case KERBEROS_ADDR_TYPE_IPV6:
+ it=proto_tree_add_item(tree, hf_krb_address_ipv6, tvb, offset, INET6_ADDRLEN, ENC_NA);
+ address_str = tvb_ip6_to_str(tvb, offset);
+ break;
+ default:
+ proto_tree_add_expert(tree, actx->pinfo, &ei_kerberos_address, tvb, offset, len);
+ address_str = NULL;
+ }
+
+ /* push it up two levels in the decode pane */
+ if(it && address_str){
+ proto_item_append_text(proto_item_get_parent(it), " %s",address_str);
+ proto_item_append_text(proto_item_get_parent_nth(it, 2), " %s",address_str);
+ }
+
+ offset+=len;
+ return offset;
+
+
+#.TYPE_ATTR
+#xxx TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(xx_vals)
+
+#.FN_BODY ENCTYPE VAL_PTR=&(private_data->etype)
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+%(DEFAULT_BODY)s
+
+#.FN_BODY EncryptedTicketData/cipher
+##ifdef HAVE_KERBEROS
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_ticket_data);
+##else
+%(DEFAULT_BODY)s
+##endif
+ return offset;
+
+#.FN_BODY EncryptedAuthorizationData/cipher
+##ifdef HAVE_KERBEROS
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authenticator_data);
+##else
+%(DEFAULT_BODY)s
+##endif
+ return offset;
+
+#.FN_BODY EncryptedKDCREPData/cipher
+##ifdef HAVE_KERBEROS
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KDC_REP_data);
+##else
+%(DEFAULT_BODY)s
+##endif
+ return offset;
+
+#.FN_BODY PA-ENC-TIMESTAMP/cipher
+##ifdef HAVE_KERBEROS
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PA_ENC_TIMESTAMP);
+##else
+%(DEFAULT_BODY)s
+##endif
+ return offset;
+
+#.FN_BODY EncryptedAPREPData/cipher
+##ifdef HAVE_KERBEROS
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_AP_REP_data);
+##else
+%(DEFAULT_BODY)s
+##endif
+ return offset;
+
+#.FN_BODY EncryptedKrbPrivData/cipher
+##ifdef HAVE_KERBEROS
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PRIV_data);
+##else
+%(DEFAULT_BODY)s
+##endif
+ return offset;
+
+#.FN_BODY EncryptedKrbCredData/cipher
+##ifdef HAVE_KERBEROS
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_CRED_data);
+##else
+%(DEFAULT_BODY)s
+##endif
+ return offset;
+
+
+#.FN_BODY CKSUMTYPE VAL_PTR=&(private_data->checksum_type)
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+%(DEFAULT_BODY)s
+
+#.FN_BODY Checksum/checksum
+ tvbuff_t *next_tvb;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
+ switch(private_data->checksum_type){
+ case KRB5_CHKSUM_GSSAPI:
+ offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
+ dissect_krb5_rfc1964_checksum(actx, tree, next_tvb);
+ break;
+ default:
+ offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, NULL);
+ }
+ return offset;
+
+#.FN_BODY EncryptionKey/keytype VAL_PTR=&gbl_keytype
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &gbl_keytype);
+ private_data->key.keytype = gbl_keytype;
+
+#.FN_BODY EncryptionKey/keyvalue VAL_PTR=&out_tvb
+ tvbuff_t *out_tvb;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+
+ private_data->key.keylength = tvb_reported_length(out_tvb);
+ private_data->key.keyvalue = tvb_get_ptr(out_tvb, 0, private_data->key.keylength);
+
+#.FN_BODY EncryptionKey
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
+ %(DEFAULT_BODY)s
+
+ if (private_data->key.keytype != 0) {
+##ifdef HAVE_KERBEROS
+ add_encryption_key(actx->pinfo, private_data->key.keytype, private_data->key.keylength, private_data->key.keyvalue, "key");
+##endif
+ }
+
+#.FN_BODY AuthorizationData/_item/ad-type
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &(private_data->ad_type));
+#.TYPE_ATTR
+AuthorizationData/_item/ad-type STRINGS=VALS(krb5_ad_types)
+
+#.FN_BODY AuthorizationData/_item/ad-data
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
+ switch(private_data->ad_type){
+ case KRB5_AD_WIN2K_PAC:
+ offset=dissect_ber_octet_string_wcb(implicit_tag, actx, tree, tvb, offset, hf_index, dissect_krb5_AD_WIN2K_PAC);
+ break;
+ case KRB5_AD_IF_RELEVANT:
+ offset=dissect_ber_octet_string_wcb(implicit_tag, actx, tree, tvb, offset, hf_index, dissect_kerberos_AD_IF_RELEVANT);
+ break;
+ default:
+ offset=dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+ }
+
+#.FN_BODY ADDR-TYPE VAL_PTR=&(private_data->addr_type)
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+%(DEFAULT_BODY)s
+
+#.FN_BODY KDC-REQ-BODY
+ conversation_t *conversation;
+
+ /*
+ * UDP replies to KDC_REQs are sent from the server back to the client's
+ * source port, similar to the way TFTP works. Set up a conversation
+ * accordingly.
+ *
+ * Ref: Section 7.2.1 of
+ * http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-kerberos-clarifications-07.txt
+ */
+ if (actx->pinfo->destport == UDP_PORT_KERBEROS && actx->pinfo->ptype == PT_UDP) {
+ conversation = find_conversation(actx->pinfo->num, &actx->pinfo->src, &actx->pinfo->dst, PT_UDP,
+ actx->pinfo->srcport, 0, NO_PORT_B);
+ if (conversation == NULL) {
+ conversation = conversation_new(actx->pinfo->num, &actx->pinfo->src, &actx->pinfo->dst, PT_UDP,
+ actx->pinfo->srcport, 0, NO_PORT2);
+ conversation_set_dissector(conversation, kerberos_handle_udp);
+ }
+ }
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY KRB-SAFE-BODY/user-data
+ tvbuff_t *new_tvb;
+ offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &new_tvb);
+ if (new_tvb) {
+ call_kerberos_callbacks(actx->pinfo, tree, new_tvb, KRB_CBTAG_SAFE_USER_DATA, (kerberos_callbacks*)actx->private_data);
+ }
+
+#.FN_BODY EncKrbPrivPart/user-data
+ tvbuff_t *new_tvb;
+ offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &new_tvb);
+ if (new_tvb) {
+ call_kerberos_callbacks(actx->pinfo, tree, new_tvb, KRB_CBTAG_PRIV_USER_DATA, (kerberos_callbacks*)actx->private_data);
+ }
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
new file mode 100644
index 0000000000..631e403098
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
@@ -0,0 +1,2506 @@
+/* packet-kerberos.c
+ * Routines for Kerberos
+ * Wes Hardaker (c) 2000
+ * wjhardaker@ucdavis.edu
+ * Richard Sharpe (C) 2002, rsharpe@samba.org, modularized a bit more and
+ * added AP-REQ and AP-REP dissection
+ *
+ * Ronnie Sahlberg (C) 2004, major rewrite for new ASN.1/BER API.
+ * decryption of kerberos blobs if keytab is provided
+ *
+ * See RFC 1510, and various I-Ds and other documents showing additions,
+ * e.g. ones listed under
+ *
+ * http://www.isi.edu/people/bcn/krb-revisions/
+ *
+ * and
+ *
+ * http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-kerberos-clarifications-07.txt
+ *
+ * and
+ *
+ * http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-kerberos-referrals-05.txt
+ *
+ * Some structures from RFC2630
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+/*
+ * Some of the development of the Kerberos protocol decoder was sponsored by
+ * Cable Television Laboratories, Inc. ("CableLabs") based upon proprietary
+ * CableLabs' specifications. Your license and use of this protocol decoder
+ * does not mean that you are licensed to use the CableLabs'
+ * specifications. If you have questions about this protocol, contact
+ * jf.mule [AT] cablelabs.com or c.stuart [AT] cablelabs.com for additional
+ * information.
+ */
+
+#include "config.h"
+
+#include <stdio.h>
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/strutil.h>
+#include <epan/conversation.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+#include <wsutil/file_util.h>
+#include <wsutil/ws_diag_control.h>
+#include <wsutil/str_util.h>
+#include "packet-kerberos.h"
+#include "packet-netbios.h"
+#include "packet-tcp.h"
+#include "packet-ber.h"
+#include "packet-pkinit.h"
+#include "packet-cms.h"
+#include "packet-windows-common.h"
+
+#include "packet-dcerpc-netlogon.h"
+#include "packet-dcerpc.h"
+
+#include "packet-gssapi.h"
+#include "packet-smb-common.h"
+
+
+void proto_register_kerberos(void);
+void proto_reg_handoff_kerberos(void);
+
+#define UDP_PORT_KERBEROS 88
+#define TCP_PORT_KERBEROS 88
+
+#define ADDRESS_STR_BUFSIZ 256
+
+typedef struct kerberos_key {
+ guint32 keytype;
+ int keylength;
+ const guint8 *keyvalue;
+} kerberos_key_t;
+
+typedef struct {
+ guint32 etype;
+ guint32 padata_type;
+ guint32 enctype;
+ kerberos_key_t key;
+ guint32 ad_type;
+ guint32 addr_type;
+ guint32 checksum_type;
+} kerberos_private_data_t;
+
+static dissector_handle_t kerberos_handle_udp;
+
+/* Forward declarations */
+static int dissect_kerberos_Applications(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_ENC_TIMESTAMP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KERB_PA_PAC_REQUEST(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_S4U2Self(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_ETYPE_INFO(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_ETYPE_INFO2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_AD_IF_RELEVANT(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+
+
+/* Desegment Kerberos over TCP messages */
+static gboolean krb_desegment = TRUE;
+
+static gint proto_kerberos = -1;
+
+static gint hf_krb_rm_reserved = -1;
+static gint hf_krb_rm_reclen = -1;
+static gint hf_krb_provsrv_location = -1;
+static gint hf_krb_smb_nt_status = -1;
+static gint hf_krb_smb_unknown = -1;
+static gint hf_krb_address_ip = -1;
+static gint hf_krb_address_netbios = -1;
+static gint hf_krb_address_ipv6 = -1;
+static gint hf_krb_gssapi_len = -1;
+static gint hf_krb_gssapi_bnd = -1;
+static gint hf_krb_gssapi_dlgopt = -1;
+static gint hf_krb_gssapi_dlglen = -1;
+static gint hf_krb_gssapi_c_flag_deleg = -1;
+static gint hf_krb_gssapi_c_flag_mutual = -1;
+static gint hf_krb_gssapi_c_flag_replay = -1;
+static gint hf_krb_gssapi_c_flag_sequence = -1;
+static gint hf_krb_gssapi_c_flag_conf = -1;
+static gint hf_krb_gssapi_c_flag_integ = -1;
+static gint hf_krb_gssapi_c_flag_dce_style = -1;
+static gint hf_krb_midl_version = -1;
+static gint hf_krb_midl_hdr_len = -1;
+static gint hf_krb_midl_fill_bytes = -1;
+static gint hf_krb_midl_blob_len = -1;
+static gint hf_krb_pac_signature_type = -1;
+static gint hf_krb_pac_signature_signature = -1;
+static gint hf_krb_w2k_pac_entries = -1;
+static gint hf_krb_w2k_pac_version = -1;
+static gint hf_krb_w2k_pac_type = -1;
+static gint hf_krb_w2k_pac_size = -1;
+static gint hf_krb_w2k_pac_offset = -1;
+static gint hf_krb_pac_clientid = -1;
+static gint hf_krb_pac_namelen = -1;
+static gint hf_krb_pac_clientname = -1;
+static gint hf_krb_pac_logon_info = -1;
+static gint hf_krb_pac_credential_type = -1;
+static gint hf_krb_pac_s4u_delegation_info = -1;
+static gint hf_krb_pac_upn_dns_info = -1;
+static gint hf_krb_pac_upn_flags = -1;
+static gint hf_krb_pac_upn_dns_offset = -1;
+static gint hf_krb_pac_upn_dns_len = -1;
+static gint hf_krb_pac_upn_upn_offset = -1;
+static gint hf_krb_pac_upn_upn_len = -1;
+static gint hf_krb_pac_upn_upn_name = -1;
+static gint hf_krb_pac_upn_dns_name = -1;
+static gint hf_krb_pac_server_checksum = -1;
+static gint hf_krb_pac_privsvr_checksum = -1;
+static gint hf_krb_pac_client_info_type = -1;
+#include "packet-kerberos-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_kerberos = -1;
+static gint ett_krb_recordmark = -1;
+static gint ett_krb_pac = -1;
+static gint ett_krb_pac_drep = -1;
+static gint ett_krb_pac_midl_blob = -1;
+static gint ett_krb_pac_logon_info = -1;
+static gint ett_krb_pac_s4u_delegation_info = -1;
+static gint ett_krb_pac_upn_dns_info = -1;
+static gint ett_krb_pac_server_checksum = -1;
+static gint ett_krb_pac_privsvr_checksum = -1;
+static gint ett_krb_pac_client_info_type = -1;
+#include "packet-kerberos-ett.c"
+
+static expert_field ei_kerberos_decrypted_keytype = EI_INIT;
+static expert_field ei_kerberos_address = EI_INIT;
+static expert_field ei_krb_gssapi_dlglen = EI_INIT;
+
+static dissector_handle_t krb4_handle=NULL;
+
+/* Global variables */
+static guint32 krb5_errorcode;
+static guint32 gbl_keytype;
+static gboolean gbl_do_col_info;
+
+#include "packet-kerberos-val.h"
+
+static void
+call_kerberos_callbacks(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int tag, kerberos_callbacks *cb)
+{
+ if(!cb){
+ return;
+ }
+
+ while(cb->tag){
+ if(cb->tag==tag){
+ cb->callback(pinfo, tvb, tree);
+ return;
+ }
+ cb++;
+ }
+ return;
+}
+
+static kerberos_private_data_t*
+kerberos_get_private_data(asn1_ctx_t *actx)
+{
+ if (!actx->private_data) {
+ actx->private_data = wmem_new0(wmem_packet_scope(), kerberos_private_data_t);
+ }
+ return (kerberos_private_data_t *)(actx->private_data);
+}
+
+#ifdef HAVE_KERBEROS
+
+/* Decrypt Kerberos blobs */
+gboolean krb_decrypt = FALSE;
+
+/* keytab filename */
+static const char *keytab_filename = "";
+
+void
+read_keytab_file_from_preferences(void)
+{
+ static char *last_keytab = NULL;
+
+ if (!krb_decrypt) {
+ return;
+ }
+
+ if (keytab_filename == NULL) {
+ return;
+ }
+
+ if (last_keytab && !strcmp(last_keytab, keytab_filename)) {
+ return;
+ }
+
+ if (last_keytab != NULL) {
+ g_free(last_keytab);
+ last_keytab = NULL;
+ }
+ last_keytab = g_strdup(keytab_filename);
+
+ read_keytab_file(last_keytab);
+}
+#endif /* HAVE_KERBEROS */
+
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+#ifdef _WIN32
+/* prevent redefinition warnings in kfw-2.5\inc\win_mac.h */
+#undef HAVE_GETADDRINFO
+#undef HAVE_SYS_TYPES_H
+#endif /* _WIN32 */
+#include <krb5.h>
+enc_key_t *enc_key_list=NULL;
+
+static void
+add_encryption_key(packet_info *pinfo, int keytype, int keylength, const char *keyvalue, const char *origin)
+{
+ enc_key_t *new_key;
+
+ if(pinfo->fd->flags.visited){
+ return;
+ }
+
+ new_key=(enc_key_t *)g_malloc(sizeof(enc_key_t));
+ g_snprintf(new_key->key_origin, KRB_MAX_ORIG_LEN, "%s learnt from frame %u",origin,pinfo->num);
+ new_key->fd_num = pinfo->num;
+ new_key->next=enc_key_list;
+ enc_key_list=new_key;
+ new_key->keytype=keytype;
+ new_key->keylength=keylength;
+ /*XXX this needs to be freed later */
+ new_key->keyvalue=(char *)g_memdup(keyvalue, keylength);
+}
+#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
+
+#if defined(HAVE_MIT_KERBEROS)
+
+static krb5_context krb5_ctx;
+
+USES_APPLE_DEPRECATED_API
+void
+read_keytab_file(const char *filename)
+{
+ krb5_keytab keytab;
+ krb5_error_code ret;
+ krb5_keytab_entry key;
+ krb5_kt_cursor cursor;
+ enc_key_t *new_key;
+ static gboolean first_time=TRUE;
+
+ if (filename == NULL || filename[0] == 0) {
+ return;
+ }
+
+ if(first_time){
+ first_time=FALSE;
+ ret = krb5_init_context(&krb5_ctx);
+ if(ret && ret != KRB5_CONFIG_CANTOPEN){
+ return;
+ }
+ }
+
+ /* should use a file in the wireshark users dir */
+ ret = krb5_kt_resolve(krb5_ctx, filename, &keytab);
+ if(ret){
+ fprintf(stderr, "KERBEROS ERROR: Badly formatted keytab filename :%s\n",filename);
+
+ return;
+ }
+
+ ret = krb5_kt_start_seq_get(krb5_ctx, keytab, &cursor);
+ if(ret){
+ fprintf(stderr, "KERBEROS ERROR: Could not open or could not read from keytab file :%s\n",filename);
+ return;
+ }
+
+ do{
+ new_key=(enc_key_t *)g_malloc(sizeof(enc_key_t));
+ new_key->fd_num = -1;
+ new_key->next=enc_key_list;
+ ret = krb5_kt_next_entry(krb5_ctx, keytab, &key, &cursor);
+ if(ret==0){
+ int i;
+ char *pos;
+
+ /* generate origin string, describing where this key came from */
+ pos=new_key->key_origin;
+ pos+=MIN(KRB_MAX_ORIG_LEN,
+ g_snprintf(pos, KRB_MAX_ORIG_LEN, "keytab principal "));
+ for(i=0;i<key.principal->length;i++){
+ pos+=MIN(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin),
+ g_snprintf(pos, (gulong)(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin)), "%s%s",(i?"/":""),(key.principal->data[i]).data));
+ }
+ pos+=MIN(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin),
+ g_snprintf(pos, (gulong)(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin)), "@%s",key.principal->realm.data));
+ *pos=0;
+ new_key->keytype=key.key.enctype;
+ new_key->keylength=key.key.length;
+ new_key->keyvalue=(char *)g_memdup(key.key.contents, key.key.length);
+ enc_key_list=new_key;
+ }
+ }while(ret==0);
+
+ ret = krb5_kt_end_seq_get(krb5_ctx, keytab, &cursor);
+ if(ret){
+ krb5_kt_close(krb5_ctx, keytab);
+ }
+}
+
+
+guint8 *
+decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
+ int usage,
+ tvbuff_t *cryptotvb,
+ int keytype,
+ int *datalen)
+{
+ krb5_error_code ret;
+ enc_key_t *ek;
+ krb5_data data = {0,0,NULL};
+ krb5_keytab_entry key;
+ int length = tvb_captured_length(cryptotvb);
+ const guint8 *cryptotext = tvb_get_ptr(cryptotvb, 0, length);
+
+ /* don't do anything if we are not attempting to decrypt data */
+ if(!krb_decrypt || length < 1){
+ return NULL;
+ }
+
+ /* make sure we have all the data we need */
+ if (tvb_captured_length(cryptotvb) < tvb_reported_length(cryptotvb)) {
+ return NULL;
+ }
+
+ read_keytab_file_from_preferences();
+ data.data = (char *)g_malloc(length);
+ data.length = length;
+
+ for(ek=enc_key_list;ek;ek=ek->next){
+ krb5_enc_data input;
+
+ /* shortcircuit and bail out if enctypes are not matching */
+ if((keytype != -1) && (ek->keytype != keytype)) {
+ continue;
+ }
+
+ input.enctype = ek->keytype;
+ input.ciphertext.length = length;
+ input.ciphertext.data = (guint8 *)cryptotext;
+
+ key.key.enctype=ek->keytype;
+ key.key.length=ek->keylength;
+ key.key.contents=ek->keyvalue;
+ ret = krb5_c_decrypt(krb5_ctx, &(key.key), usage, 0, &input, &data);
+ if(ret == 0){
+ char *user_data;
+
+ expert_add_info_format(pinfo, NULL, &ei_kerberos_decrypted_keytype,
+ "Decrypted keytype %d in frame %u using %s",
+ ek->keytype, pinfo->num, ek->key_origin);
+
+ /* return a private g_malloced blob to the caller */
+ user_data=data.data;
+ if (datalen) {
+ *datalen = data.length;
+ }
+ return user_data;
+ }
+ }
+ g_free(data.data);
+
+ return NULL;
+}
+USES_APPLE_RST
+
+#elif defined(HAVE_HEIMDAL_KERBEROS)
+static krb5_context krb5_ctx;
+
+USES_APPLE_DEPRECATED_API
+void
+read_keytab_file(const char *filename)
+{
+ krb5_keytab keytab;
+ krb5_error_code ret;
+ krb5_keytab_entry key;
+ krb5_kt_cursor cursor;
+ enc_key_t *new_key;
+ static gboolean first_time=TRUE;
+
+ if (filename == NULL || filename[0] == 0) {
+ return;
+ }
+
+ if(first_time){
+ first_time=FALSE;
+ ret = krb5_init_context(&krb5_ctx);
+ if(ret){
+ return;
+ }
+ }
+
+ /* should use a file in the wireshark users dir */
+ ret = krb5_kt_resolve(krb5_ctx, filename, &keytab);
+ if(ret){
+ fprintf(stderr, "KERBEROS ERROR: Could not open keytab file :%s\n",filename);
+
+ return;
+ }
+
+ ret = krb5_kt_start_seq_get(krb5_ctx, keytab, &cursor);
+ if(ret){
+ fprintf(stderr, "KERBEROS ERROR: Could not read from keytab file :%s\n",filename);
+ return;
+ }
+
+ do{
+ new_key = (enc_key_t *)g_malloc(sizeof(enc_key_t));
+ new_key->fd_num = -1;
+ new_key->next=enc_key_list;
+ ret = krb5_kt_next_entry(krb5_ctx, keytab, &key, &cursor);
+ if(ret==0){
+ unsigned int i;
+ char *pos;
+
+ /* generate origin string, describing where this key came from */
+ pos=new_key->key_origin;
+ pos+=MIN(KRB_MAX_ORIG_LEN,
+ g_snprintf(pos, KRB_MAX_ORIG_LEN, "keytab principal "));
+ for(i=0;i<key.principal->name.name_string.len;i++){
+ pos+=MIN(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin),
+ g_snprintf(pos, KRB_MAX_ORIG_LEN-(pos-new_key->key_origin), "%s%s",(i?"/":""),key.principal->name.name_string.val[i]));
+ }
+ pos+=MIN(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin),
+ g_snprintf(pos, KRB_MAX_ORIG_LEN-(pos-new_key->key_origin), "@%s",key.principal->realm));
+ *pos=0;
+ new_key->keytype=key.keyblock.keytype;
+ new_key->keylength=(int)key.keyblock.keyvalue.length;
+ new_key->keyvalue = (guint8 *)g_memdup(key.keyblock.keyvalue.data, (guint)key.keyblock.keyvalue.length);
+ enc_key_list=new_key;
+ }
+ }while(ret==0);
+
+ ret = krb5_kt_end_seq_get(krb5_ctx, keytab, &cursor);
+ if(ret){
+ krb5_kt_close(krb5_ctx, keytab);
+ }
+
+}
+USES_APPLE_RST
+
+
+guint8 *
+decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
+ int usage,
+ tvbuff_t *cryptotvb,
+ int keytype,
+ int *datalen)
+{
+ krb5_error_code ret;
+ krb5_data data;
+ enc_key_t *ek;
+ int length = tvb_captured_length(cryptotvb);
+ const guint8 *cryptotext = tvb_get_ptr(cryptotvb, 0, length);
+
+ /* don't do anything if we are not attempting to decrypt data */
+ if(!krb_decrypt){
+ return NULL;
+ }
+
+ /* make sure we have all the data we need */
+ if (tvb_captured_length(cryptotvb) < tvb_reported_length(cryptotvb)) {
+ return NULL;
+ }
+
+ read_keytab_file_from_preferences();
+
+ for(ek=enc_key_list;ek;ek=ek->next){
+ krb5_keytab_entry key;
+ krb5_crypto crypto;
+ guint8 *cryptocopy; /* workaround for pre-0.6.1 heimdal bug */
+
+ /* shortcircuit and bail out if enctypes are not matching */
+ if((keytype != -1) && (ek->keytype != keytype)) {
+ continue;
+ }
+
+ key.keyblock.keytype=ek->keytype;
+ key.keyblock.keyvalue.length=ek->keylength;
+ key.keyblock.keyvalue.data=ek->keyvalue;
+ ret = krb5_crypto_init(krb5_ctx, &(key.keyblock), (krb5_enctype)ENCTYPE_NULL, &crypto);
+ if(ret){
+ return NULL;
+ }
+
+ /* pre-0.6.1 versions of Heimdal would sometimes change
+ the cryptotext data even when the decryption failed.
+ This would obviously not work since we iterate over the
+ keys. So just give it a copy of the crypto data instead.
+ This has been seen for RC4-HMAC blobs.
+ */
+ cryptocopy = (guint8 *)g_memdup(cryptotext, length);
+ ret = krb5_decrypt_ivec(krb5_ctx, crypto, usage,
+ cryptocopy, length,
+ &data,
+ NULL);
+ g_free(cryptocopy);
+ if((ret == 0) && (length>0)){
+ char *user_data;
+
+ expert_add_info_format(pinfo, NULL, &ei_kerberos_decrypted_keytype,
+ "Decrypted keytype %d in frame %u using %s",
+ ek->keytype, pinfo->num, ek->key_origin);
+
+ krb5_crypto_destroy(krb5_ctx, crypto);
+ /* return a private g_malloced blob to the caller */
+ user_data = (char *)g_memdup(data.data, (guint)data.length);
+ if (datalen) {
+ *datalen = (int)data.length;
+ }
+ return user_data;
+ }
+ krb5_crypto_destroy(krb5_ctx, crypto);
+ }
+ return NULL;
+}
+
+#elif defined (HAVE_LIBNETTLE)
+
+#define SERVICE_KEY_SIZE (DES3_KEY_SIZE + 2)
+#define KEYTYPE_DES3_CBC_MD5 5 /* Currently the only one supported */
+
+typedef struct _service_key_t {
+ guint16 kvno;
+ int keytype;
+ int length;
+ guint8 *contents;
+ char origin[KRB_MAX_ORIG_LEN+1];
+} service_key_t;
+GSList *service_key_list = NULL;
+
+
+static void
+add_encryption_key(packet_info *pinfo, int keytype, int keylength, const char *keyvalue, const char *origin)
+{
+ service_key_t *new_key;
+
+ if(pinfo->fd->flags.visited){
+ return;
+ }
+
+ new_key = g_malloc(sizeof(service_key_t));
+ new_key->kvno = 0;
+ new_key->keytype = keytype;
+ new_key->length = keylength;
+ new_key->contents = g_memdup(keyvalue, keylength);
+ g_snprintf(new_key->origin, KRB_MAX_ORIG_LEN, "%s learnt from frame %u", origin, pinfo->num);
+ service_key_list = g_slist_append(service_key_list, (gpointer) new_key);
+}
+
+static void
+clear_keytab(void) {
+ GSList *ske;
+ service_key_t *sk;
+
+ for(ske = service_key_list; ske != NULL; ske = g_slist_next(ske)){
+ sk = (service_key_t *) ske->data;
+ if (sk) {
+ g_free(sk->contents);
+ g_free(sk);
+ }
+ }
+ g_slist_free(service_key_list);
+ service_key_list = NULL;
+}
+
+static void
+read_keytab_file(const char *service_key_file)
+{
+ FILE *skf;
+ ws_statb64 st;
+ service_key_t *sk;
+ unsigned char buf[SERVICE_KEY_SIZE];
+ int newline_skip = 0, count = 0;
+
+ if (service_key_file != NULL && ws_stat64 (service_key_file, &st) == 0) {
+
+ /* The service key file contains raw 192-bit (24 byte) 3DES keys.
+ * There can be zero, one (\n), or two (\r\n) characters between
+ * keys. Trailing characters are ignored.
+ */
+
+ /* XXX We should support the standard keytab format instead */
+ if (st.st_size > SERVICE_KEY_SIZE) {
+ if ( (st.st_size % (SERVICE_KEY_SIZE + 1) == 0) ||
+ (st.st_size % (SERVICE_KEY_SIZE + 1) == SERVICE_KEY_SIZE) ) {
+ newline_skip = 1;
+ } else if ( (st.st_size % (SERVICE_KEY_SIZE + 2) == 0) ||
+ (st.st_size % (SERVICE_KEY_SIZE + 2) == SERVICE_KEY_SIZE) ) {
+ newline_skip = 2;
+ }
+ }
+
+ skf = ws_fopen(service_key_file, "rb");
+ if (! skf) return;
+
+ while (fread(buf, SERVICE_KEY_SIZE, 1, skf) == 1) {
+ sk = g_malloc(sizeof(service_key_t));
+ sk->kvno = buf[0] << 8 | buf[1];
+ sk->keytype = KEYTYPE_DES3_CBC_MD5;
+ sk->length = DES3_KEY_SIZE;
+ sk->contents = g_memdup(buf + 2, DES3_KEY_SIZE);
+ g_snprintf(sk->origin, KRB_MAX_ORIG_LEN, "3DES service key file, key #%d, offset %ld", count, ftell(skf));
+ service_key_list = g_slist_append(service_key_list, (gpointer) sk);
+ if (fseek(skf, newline_skip, SEEK_CUR) < 0) {
+ fprintf(stderr, "unable to seek...\n");
+ return;
+ }
+ count++;
+ }
+ fclose(skf);
+ }
+}
+
+#define CONFOUNDER_PLUS_CHECKSUM 24
+
+guint8 *
+decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
+ int _U_ usage,
+ tvbuff_t *cryptotvb,
+ int keytype,
+ int *datalen)
+{
+ tvbuff_t *encr_tvb;
+ guint8 *decrypted_data = NULL, *plaintext = NULL;
+ guint8 cls;
+ gboolean pc;
+ guint32 tag, item_len, data_len;
+ int id_offset, offset;
+ guint8 key[DES3_KEY_SIZE];
+ guint8 initial_vector[DES_BLOCK_SIZE];
+ md5_state_t md5s;
+ md5_byte_t digest[16];
+ md5_byte_t zero_fill[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ md5_byte_t confounder[8];
+ gboolean ind;
+ GSList *ske;
+ service_key_t *sk;
+ struct des3_ctx ctx;
+ int length = tvb_captured_length(cryptotvb);
+ const guint8 *cryptotext = tvb_get_ptr(cryptotvb, 0, length);
+
+
+ /* don't do anything if we are not attempting to decrypt data */
+ if(!krb_decrypt){
+ return NULL;
+ }
+
+ /* make sure we have all the data we need */
+ if (tvb_captured_length(cryptotvb) < tvb_reported_length(cryptotvb)) {
+ return NULL;
+ }
+
+ if (keytype != KEYTYPE_DES3_CBC_MD5 || service_key_list == NULL) {
+ return NULL;
+ }
+
+ decrypted_data = g_malloc(length);
+ for(ske = service_key_list; ske != NULL; ske = g_slist_next(ske)){
+ gboolean do_continue = FALSE;
+ sk = (service_key_t *) ske->data;
+
+ des_fix_parity(DES3_KEY_SIZE, key, sk->contents);
+
+ md5_init(&md5s);
+ memset(initial_vector, 0, DES_BLOCK_SIZE);
+ des3_set_key(&ctx, key);
+ cbc_decrypt(&ctx, des3_decrypt, DES_BLOCK_SIZE, initial_vector,
+ length, decrypted_data, cryptotext);
+ encr_tvb = tvb_new_real_data(decrypted_data, length, length);
+
+ tvb_memcpy(encr_tvb, confounder, 0, 8);
+
+ /* We have to pull the decrypted data length from the decrypted
+ * content. If the key doesn't match or we otherwise get garbage,
+ * an exception may get thrown while decoding the ASN.1 header.
+ * Catch it, just in case.
+ */
+ TRY {
+ id_offset = get_ber_identifier(encr_tvb, CONFOUNDER_PLUS_CHECKSUM, &cls, &pc, &tag);
+ offset = get_ber_length(encr_tvb, id_offset, &item_len, &ind);
+ }
+ CATCH_BOUNDS_ERRORS {
+ tvb_free(encr_tvb);
+ do_continue = TRUE;
+ }
+ ENDTRY;
+
+ if (do_continue) continue;
+
+ data_len = item_len + offset - CONFOUNDER_PLUS_CHECKSUM;
+ if ((int) item_len + offset > length) {
+ tvb_free(encr_tvb);
+ continue;
+ }
+
+ md5_append(&md5s, confounder, 8);
+ md5_append(&md5s, zero_fill, 16);
+ md5_append(&md5s, decrypted_data + CONFOUNDER_PLUS_CHECKSUM, data_len);
+ md5_finish(&md5s, digest);
+
+ if (tvb_memeql (encr_tvb, 8, digest, 16) == 0) {
+ plaintext = g_malloc(data_len);
+ tvb_memcpy(encr_tvb, plaintext, CONFOUNDER_PLUS_CHECKSUM, data_len);
+ tvb_free(encr_tvb);
+
+ if (datalen) {
+ *datalen = data_len;
+ }
+ g_free(decrypted_data);
+ return(plaintext);
+ }
+ tvb_free(encr_tvb);
+ }
+
+ g_free(decrypted_data);
+ return NULL;
+}
+
+#endif /* HAVE_MIT_KERBEROS / HAVE_HEIMDAL_KERBEROS / HAVE_LIBNETTLE */
+
+#define INET6_ADDRLEN 16
+
+/* TCP Record Mark */
+#define KRB_RM_RESERVED 0x80000000U
+#define KRB_RM_RECLEN 0x7fffffffU
+
+#define KRB5_MSG_TICKET 1 /* Ticket */
+#define KRB5_MSG_AUTHENTICATOR 2 /* Authenticator */
+#define KRB5_MSG_ENC_TICKET_PART 3 /* EncTicketPart */
+#define KRB5_MSG_AS_REQ 10 /* AS-REQ type */
+#define KRB5_MSG_AS_REP 11 /* AS-REP type */
+#define KRB5_MSG_TGS_REQ 12 /* TGS-REQ type */
+#define KRB5_MSG_TGS_REP 13 /* TGS-REP type */
+#define KRB5_MSG_AP_REQ 14 /* AP-REQ type */
+#define KRB5_MSG_AP_REP 15 /* AP-REP type */
+
+#define KRB5_MSG_SAFE 20 /* KRB-SAFE type */
+#define KRB5_MSG_PRIV 21 /* KRB-PRIV type */
+#define KRB5_MSG_CRED 22 /* KRB-CRED type */
+#define KRB5_MSG_ENC_AS_REP_PART 25 /* EncASRepPart */
+#define KRB5_MSG_ENC_TGS_REP_PART 26 /* EncTGSRepPart */
+#define KRB5_MSG_ENC_AP_REP_PART 27 /* EncAPRepPart */
+#define KRB5_MSG_ENC_KRB_PRIV_PART 28 /* EncKrbPrivPart */
+#define KRB5_MSG_ENC_KRB_CRED_PART 29 /* EncKrbCredPart */
+#define KRB5_MSG_ERROR 30 /* KRB-ERROR type */
+
+/* encryption type constants */
+#define KRB5_ENCTYPE_NULL 0
+#define KRB5_ENCTYPE_DES_CBC_CRC 1
+#define KRB5_ENCTYPE_DES_CBC_MD4 2
+#define KRB5_ENCTYPE_DES_CBC_MD5 3
+#define KRB5_ENCTYPE_DES_CBC_RAW 4
+#define KRB5_ENCTYPE_DES3_CBC_SHA 5
+#define KRB5_ENCTYPE_DES3_CBC_RAW 6
+#define KRB5_ENCTYPE_DES_HMAC_SHA1 8
+#define KRB5_ENCTYPE_DSA_SHA1_CMS 9
+#define KRB5_ENCTYPE_RSA_MD5_CMS 10
+#define KRB5_ENCTYPE_RSA_SHA1_CMS 11
+#define KRB5_ENCTYPE_RC2_CBC_ENV 12
+#define KRB5_ENCTYPE_RSA_ENV 13
+#define KRB5_ENCTYPE_RSA_ES_OEAP_ENV 14
+#define KRB5_ENCTYPE_DES_EDE3_CBC_ENV 15
+#define KRB5_ENCTYPE_DES3_CBC_SHA1 16
+#define KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96 17
+#define KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96 18
+#define KRB5_ENCTYPE_DES_CBC_MD5_NT 20
+#define KERB_ENCTYPE_RC4_HMAC 23
+#define KERB_ENCTYPE_RC4_HMAC_EXP 24
+#define KRB5_ENCTYPE_UNKNOWN 0x1ff
+#define KRB5_ENCTYPE_LOCAL_DES3_HMAC_SHA1 0x7007
+#define KRB5_ENCTYPE_RC4_PLAIN_EXP 0xffffff73
+#define KRB5_ENCTYPE_RC4_PLAIN 0xffffff74
+#define KRB5_ENCTYPE_RC4_PLAIN_OLD_EXP 0xffffff78
+#define KRB5_ENCTYPE_RC4_HMAC_OLD_EXP 0xffffff79
+#define KRB5_ENCTYPE_RC4_PLAIN_OLD 0xffffff7a
+#define KRB5_ENCTYPE_RC4_HMAC_OLD 0xffffff7b
+#define KRB5_ENCTYPE_DES_PLAIN 0xffffff7c
+#define KRB5_ENCTYPE_RC4_SHA 0xffffff7d
+#define KRB5_ENCTYPE_RC4_LM 0xffffff7e
+#define KRB5_ENCTYPE_RC4_PLAIN2 0xffffff7f
+#define KRB5_ENCTYPE_RC4_MD4 0xffffff80
+
+/* checksum types */
+#define KRB5_CHKSUM_NONE 0
+#define KRB5_CHKSUM_CRC32 1
+#define KRB5_CHKSUM_MD4 2
+#define KRB5_CHKSUM_KRB_DES_MAC 4
+#define KRB5_CHKSUM_KRB_DES_MAC_K 5
+#define KRB5_CHKSUM_MD5 7
+#define KRB5_CHKSUM_MD5_DES 8
+/* the following four come from packetcable */
+#define KRB5_CHKSUM_MD5_DES3 9
+#define KRB5_CHKSUM_HMAC_SHA1_DES3_KD 12
+#define KRB5_CHKSUM_HMAC_SHA1_DES3 13
+#define KRB5_CHKSUM_SHA1_UNKEYED 14
+#define KRB5_CHKSUM_HMAC_MD5 0xffffff76
+#define KRB5_CHKSUM_MD5_HMAC 0xffffff77
+#define KRB5_CHKSUM_RC4_MD5 0xffffff78
+#define KRB5_CHKSUM_MD25 0xffffff79
+#define KRB5_CHKSUM_DES_MAC_MD5 0xffffff7a
+#define KRB5_CHKSUM_DES_MAC 0xffffff7b
+#define KRB5_CHKSUM_REAL_CRC32 0xffffff7c
+#define KRB5_CHKSUM_SHA1 0xffffff7d
+#define KRB5_CHKSUM_LM 0xffffff7e
+#define KRB5_CHKSUM_GSSAPI 0x8003
+
+/*
+ * For KERB_ENCTYPE_RC4_HMAC and KERB_ENCTYPE_RC4_HMAC_EXP, see
+ *
+ * http://www.ietf.org/internet-drafts/draft-brezak-win2k-krb-rc4-hmac-04.txt
+ *
+ * unless it's expired.
+ */
+
+/* pre-authentication type constants */
+#define KRB5_PA_TGS_REQ 1
+#define KRB5_PA_ENC_TIMESTAMP 2
+#define KRB5_PA_PW_SALT 3
+#define KRB5_PA_ENC_ENCKEY 4
+#define KRB5_PA_ENC_UNIX_TIME 5
+#define KRB5_PA_ENC_SANDIA_SECURID 6
+#define KRB5_PA_SESAME 7
+#define KRB5_PA_OSF_DCE 8
+#define KRB5_PA_CYBERSAFE_SECUREID 9
+#define KRB5_PA_AFS3_SALT 10
+#define KRB5_PA_ENCTYPE_INFO 11
+#define KRB5_PA_SAM_CHALLENGE 12
+#define KRB5_PA_SAM_RESPONSE 13
+#define KRB5_PA_PK_AS_REQ 14
+#define KRB5_PA_PK_AS_REP 15
+#define KRB5_PA_DASS 16
+#define KRB5_PA_ENCTYPE_INFO2 19
+#define KRB5_PA_USE_SPECIFIED_KVNO 20
+#define KRB5_PA_SAM_REDIRECT 21
+#define KRB5_PA_GET_FROM_TYPED_DATA 22
+#define KRB5_PA_SAM_ETYPE_INFO 23
+#define KRB5_PA_ALT_PRINC 24
+#define KRB5_PA_SAM_CHALLENGE2 30
+#define KRB5_PA_SAM_RESPONSE2 31
+#define KRB5_TD_PKINIT_CMS_CERTIFICATES 101
+#define KRB5_TD_KRB_PRINCIPAL 102
+#define KRB5_TD_KRB_REALM 103
+#define KRB5_TD_TRUSTED_CERTIFIERS 104
+#define KRB5_TD_CERTIFICATE_INDEX 105
+#define KRB5_TD_APP_DEFINED_ERROR 106
+#define KRB5_TD_REQ_NONCE 107
+#define KRB5_TD_REQ_SEQ 108
+/* preauthentication types >127 (i.e. negative ones) are app specific.
+ however since Microsoft is the dominant(only?) user of types in this range
+ we also treat the type as unsigned.
+*/
+#define KRB5_PA_PAC_REQUEST 128 /* (Microsoft extension) */
+#define KRB5_PA_FOR_USER 129 /* Impersonation (Microsoft extension) See [MS-SFU]. XXX - replaced by KRB5_PA_S4U2SELF */
+#define KRB5_PA_S4U2SELF 129
+
+#define KRB5_PA_PROV_SRV_LOCATION 0xffffffff /* (gint32)0xFF) packetcable stuff */
+/* Principal name-type */
+#define KRB5_NT_UNKNOWN 0
+#define KRB5_NT_PRINCIPAL 1
+#define KRB5_NT_SRV_INST 2
+#define KRB5_NT_SRV_HST 3
+#define KRB5_NT_SRV_XHST 4
+#define KRB5_NT_UID 5
+#define KRB5_NT_X500_PRINCIPAL 6
+#define KRB5_NT_SMTP_NAME 7
+#define KRB5_NT_ENTERPRISE 10
+
+/*
+ * MS specific name types, from
+ *
+ * http://msdn.microsoft.com/library/en-us/security/security/kerb_external_name.asp
+ */
+#define KRB5_NT_MS_PRINCIPAL -128
+#define KRB5_NT_MS_PRINCIPAL_AND_SID -129
+#define KRB5_NT_ENT_PRINCIPAL_AND_SID -130
+#define KRB5_NT_PRINCIPAL_AND_SID -131
+#define KRB5_NT_SRV_INST_AND_SID -132
+
+/* error table constants */
+/* I prefixed the krb5_err.et constant names with KRB5_ET_ for these */
+#define KRB5_ET_KRB5KDC_ERR_NONE 0
+#define KRB5_ET_KRB5KDC_ERR_NAME_EXP 1
+#define KRB5_ET_KRB5KDC_ERR_SERVICE_EXP 2
+#define KRB5_ET_KRB5KDC_ERR_BAD_PVNO 3
+#define KRB5_ET_KRB5KDC_ERR_C_OLD_MAST_KVNO 4
+#define KRB5_ET_KRB5KDC_ERR_S_OLD_MAST_KVNO 5
+#define KRB5_ET_KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN 6
+#define KRB5_ET_KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN 7
+#define KRB5_ET_KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE 8
+#define KRB5_ET_KRB5KDC_ERR_NULL_KEY 9
+#define KRB5_ET_KRB5KDC_ERR_CANNOT_POSTDATE 10
+#define KRB5_ET_KRB5KDC_ERR_NEVER_VALID 11
+#define KRB5_ET_KRB5KDC_ERR_POLICY 12
+#define KRB5_ET_KRB5KDC_ERR_BADOPTION 13
+#define KRB5_ET_KRB5KDC_ERR_ETYPE_NOSUPP 14
+#define KRB5_ET_KRB5KDC_ERR_SUMTYPE_NOSUPP 15
+#define KRB5_ET_KRB5KDC_ERR_PADATA_TYPE_NOSUPP 16
+#define KRB5_ET_KRB5KDC_ERR_TRTYPE_NOSUPP 17
+#define KRB5_ET_KRB5KDC_ERR_CLIENT_REVOKED 18
+#define KRB5_ET_KRB5KDC_ERR_SERVICE_REVOKED 19
+#define KRB5_ET_KRB5KDC_ERR_TGT_REVOKED 20
+#define KRB5_ET_KRB5KDC_ERR_CLIENT_NOTYET 21
+#define KRB5_ET_KRB5KDC_ERR_SERVICE_NOTYET 22
+#define KRB5_ET_KRB5KDC_ERR_KEY_EXP 23
+#define KRB5_ET_KRB5KDC_ERR_PREAUTH_FAILED 24
+#define KRB5_ET_KRB5KDC_ERR_PREAUTH_REQUIRED 25
+#define KRB5_ET_KRB5KDC_ERR_SERVER_NOMATCH 26
+#define KRB5_ET_KRB5KDC_ERR_MUST_USE_USER2USER 27
+#define KRB5_ET_KRB5KDC_ERR_PATH_NOT_ACCEPTED 28
+#define KRB5_ET_KRB5KDC_ERR_SVC_UNAVAILABLE 29
+#define KRB5_ET_KRB5KRB_AP_ERR_BAD_INTEGRITY 31
+#define KRB5_ET_KRB5KRB_AP_ERR_TKT_EXPIRED 32
+#define KRB5_ET_KRB5KRB_AP_ERR_TKT_NYV 33
+#define KRB5_ET_KRB5KRB_AP_ERR_REPEAT 34
+#define KRB5_ET_KRB5KRB_AP_ERR_NOT_US 35
+#define KRB5_ET_KRB5KRB_AP_ERR_BADMATCH 36
+#define KRB5_ET_KRB5KRB_AP_ERR_SKEW 37
+#define KRB5_ET_KRB5KRB_AP_ERR_BADADDR 38
+#define KRB5_ET_KRB5KRB_AP_ERR_BADVERSION 39
+#define KRB5_ET_KRB5KRB_AP_ERR_MSG_TYPE 40
+#define KRB5_ET_KRB5KRB_AP_ERR_MODIFIED 41
+#define KRB5_ET_KRB5KRB_AP_ERR_BADORDER 42
+#define KRB5_ET_KRB5KRB_AP_ERR_ILL_CR_TKT 43
+#define KRB5_ET_KRB5KRB_AP_ERR_BADKEYVER 44
+#define KRB5_ET_KRB5KRB_AP_ERR_NOKEY 45
+#define KRB5_ET_KRB5KRB_AP_ERR_MUT_FAIL 46
+#define KRB5_ET_KRB5KRB_AP_ERR_BADDIRECTION 47
+#define KRB5_ET_KRB5KRB_AP_ERR_METHOD 48
+#define KRB5_ET_KRB5KRB_AP_ERR_BADSEQ 49
+#define KRB5_ET_KRB5KRB_AP_ERR_INAPP_CKSUM 50
+#define KRB5_ET_KRB5KDC_AP_PATH_NOT_ACCEPTED 51
+#define KRB5_ET_KRB5KRB_ERR_RESPONSE_TOO_BIG 52
+#define KRB5_ET_KRB5KRB_ERR_GENERIC 60
+#define KRB5_ET_KRB5KRB_ERR_FIELD_TOOLONG 61
+#define KRB5_ET_KDC_ERROR_CLIENT_NOT_TRUSTED 62
+#define KRB5_ET_KDC_ERROR_KDC_NOT_TRUSTED 63
+#define KRB5_ET_KDC_ERROR_INVALID_SIG 64
+#define KRB5_ET_KDC_ERR_KEY_TOO_WEAK 65
+#define KRB5_ET_KDC_ERR_CERTIFICATE_MISMATCH 66
+#define KRB5_ET_KRB_AP_ERR_NO_TGT 67
+#define KRB5_ET_KDC_ERR_WRONG_REALM 68
+#define KRB5_ET_KRB_AP_ERR_USER_TO_USER_REQUIRED 69
+#define KRB5_ET_KDC_ERR_CANT_VERIFY_CERTIFICATE 70
+#define KRB5_ET_KDC_ERR_INVALID_CERTIFICATE 71
+#define KRB5_ET_KDC_ERR_REVOKED_CERTIFICATE 72
+#define KRB5_ET_KDC_ERR_REVOCATION_STATUS_UNKNOWN 73
+#define KRB5_ET_KDC_ERR_REVOCATION_STATUS_UNAVAILABLE 74
+#define KRB5_ET_KDC_ERR_CLIENT_NAME_MISMATCH 75
+#define KRB5_ET_KDC_ERR_KDC_NAME_MISMATCH 76
+
+static const value_string krb5_error_codes[] = {
+ { KRB5_ET_KRB5KDC_ERR_NONE, "KRB5KDC_ERR_NONE" },
+ { KRB5_ET_KRB5KDC_ERR_NAME_EXP, "KRB5KDC_ERR_NAME_EXP" },
+ { KRB5_ET_KRB5KDC_ERR_SERVICE_EXP, "KRB5KDC_ERR_SERVICE_EXP" },
+ { KRB5_ET_KRB5KDC_ERR_BAD_PVNO, "KRB5KDC_ERR_BAD_PVNO" },
+ { KRB5_ET_KRB5KDC_ERR_C_OLD_MAST_KVNO, "KRB5KDC_ERR_C_OLD_MAST_KVNO" },
+ { KRB5_ET_KRB5KDC_ERR_S_OLD_MAST_KVNO, "KRB5KDC_ERR_S_OLD_MAST_KVNO" },
+ { KRB5_ET_KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN, "KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN" },
+ { KRB5_ET_KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN, "KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN" },
+ { KRB5_ET_KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE, "KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE" },
+ { KRB5_ET_KRB5KDC_ERR_NULL_KEY, "KRB5KDC_ERR_NULL_KEY" },
+ { KRB5_ET_KRB5KDC_ERR_CANNOT_POSTDATE, "KRB5KDC_ERR_CANNOT_POSTDATE" },
+ { KRB5_ET_KRB5KDC_ERR_NEVER_VALID, "KRB5KDC_ERR_NEVER_VALID" },
+ { KRB5_ET_KRB5KDC_ERR_POLICY, "KRB5KDC_ERR_POLICY" },
+ { KRB5_ET_KRB5KDC_ERR_BADOPTION, "KRB5KDC_ERR_BADOPTION" },
+ { KRB5_ET_KRB5KDC_ERR_ETYPE_NOSUPP, "KRB5KDC_ERR_ETYPE_NOSUPP" },
+ { KRB5_ET_KRB5KDC_ERR_SUMTYPE_NOSUPP, "KRB5KDC_ERR_SUMTYPE_NOSUPP" },
+ { KRB5_ET_KRB5KDC_ERR_PADATA_TYPE_NOSUPP, "KRB5KDC_ERR_PADATA_TYPE_NOSUPP" },
+ { KRB5_ET_KRB5KDC_ERR_TRTYPE_NOSUPP, "KRB5KDC_ERR_TRTYPE_NOSUPP" },
+ { KRB5_ET_KRB5KDC_ERR_CLIENT_REVOKED, "KRB5KDC_ERR_CLIENT_REVOKED" },
+ { KRB5_ET_KRB5KDC_ERR_SERVICE_REVOKED, "KRB5KDC_ERR_SERVICE_REVOKED" },
+ { KRB5_ET_KRB5KDC_ERR_TGT_REVOKED, "KRB5KDC_ERR_TGT_REVOKED" },
+ { KRB5_ET_KRB5KDC_ERR_CLIENT_NOTYET, "KRB5KDC_ERR_CLIENT_NOTYET" },
+ { KRB5_ET_KRB5KDC_ERR_SERVICE_NOTYET, "KRB5KDC_ERR_SERVICE_NOTYET" },
+ { KRB5_ET_KRB5KDC_ERR_KEY_EXP, "KRB5KDC_ERR_KEY_EXP" },
+ { KRB5_ET_KRB5KDC_ERR_PREAUTH_FAILED, "KRB5KDC_ERR_PREAUTH_FAILED" },
+ { KRB5_ET_KRB5KDC_ERR_PREAUTH_REQUIRED, "KRB5KDC_ERR_PREAUTH_REQUIRED" },
+ { KRB5_ET_KRB5KDC_ERR_SERVER_NOMATCH, "KRB5KDC_ERR_SERVER_NOMATCH" },
+ { KRB5_ET_KRB5KDC_ERR_MUST_USE_USER2USER, "KRB5KDC_ERR_MUST_USE_USER2USER" },
+ { KRB5_ET_KRB5KDC_ERR_PATH_NOT_ACCEPTED, "KRB5KDC_ERR_PATH_NOT_ACCEPTED" },
+ { KRB5_ET_KRB5KDC_ERR_SVC_UNAVAILABLE, "KRB5KDC_ERR_SVC_UNAVAILABLE" },
+ { KRB5_ET_KRB5KRB_AP_ERR_BAD_INTEGRITY, "KRB5KRB_AP_ERR_BAD_INTEGRITY" },
+ { KRB5_ET_KRB5KRB_AP_ERR_TKT_EXPIRED, "KRB5KRB_AP_ERR_TKT_EXPIRED" },
+ { KRB5_ET_KRB5KRB_AP_ERR_TKT_NYV, "KRB5KRB_AP_ERR_TKT_NYV" },
+ { KRB5_ET_KRB5KRB_AP_ERR_REPEAT, "KRB5KRB_AP_ERR_REPEAT" },
+ { KRB5_ET_KRB5KRB_AP_ERR_NOT_US, "KRB5KRB_AP_ERR_NOT_US" },
+ { KRB5_ET_KRB5KRB_AP_ERR_BADMATCH, "KRB5KRB_AP_ERR_BADMATCH" },
+ { KRB5_ET_KRB5KRB_AP_ERR_SKEW, "KRB5KRB_AP_ERR_SKEW" },
+ { KRB5_ET_KRB5KRB_AP_ERR_BADADDR, "KRB5KRB_AP_ERR_BADADDR" },
+ { KRB5_ET_KRB5KRB_AP_ERR_BADVERSION, "KRB5KRB_AP_ERR_BADVERSION" },
+ { KRB5_ET_KRB5KRB_AP_ERR_MSG_TYPE, "KRB5KRB_AP_ERR_MSG_TYPE" },
+ { KRB5_ET_KRB5KRB_AP_ERR_MODIFIED, "KRB5KRB_AP_ERR_MODIFIED" },
+ { KRB5_ET_KRB5KRB_AP_ERR_BADORDER, "KRB5KRB_AP_ERR_BADORDER" },
+ { KRB5_ET_KRB5KRB_AP_ERR_ILL_CR_TKT, "KRB5KRB_AP_ERR_ILL_CR_TKT" },
+ { KRB5_ET_KRB5KRB_AP_ERR_BADKEYVER, "KRB5KRB_AP_ERR_BADKEYVER" },
+ { KRB5_ET_KRB5KRB_AP_ERR_NOKEY, "KRB5KRB_AP_ERR_NOKEY" },
+ { KRB5_ET_KRB5KRB_AP_ERR_MUT_FAIL, "KRB5KRB_AP_ERR_MUT_FAIL" },
+ { KRB5_ET_KRB5KRB_AP_ERR_BADDIRECTION, "KRB5KRB_AP_ERR_BADDIRECTION" },
+ { KRB5_ET_KRB5KRB_AP_ERR_METHOD, "KRB5KRB_AP_ERR_METHOD" },
+ { KRB5_ET_KRB5KRB_AP_ERR_BADSEQ, "KRB5KRB_AP_ERR_BADSEQ" },
+ { KRB5_ET_KRB5KRB_AP_ERR_INAPP_CKSUM, "KRB5KRB_AP_ERR_INAPP_CKSUM" },
+ { KRB5_ET_KRB5KDC_AP_PATH_NOT_ACCEPTED, "KRB5KDC_AP_PATH_NOT_ACCEPTED" },
+ { KRB5_ET_KRB5KRB_ERR_RESPONSE_TOO_BIG, "KRB5KRB_ERR_RESPONSE_TOO_BIG"},
+ { KRB5_ET_KRB5KRB_ERR_GENERIC, "KRB5KRB_ERR_GENERIC" },
+ { KRB5_ET_KRB5KRB_ERR_FIELD_TOOLONG, "KRB5KRB_ERR_FIELD_TOOLONG" },
+ { KRB5_ET_KDC_ERROR_CLIENT_NOT_TRUSTED, "KDC_ERROR_CLIENT_NOT_TRUSTED" },
+ { KRB5_ET_KDC_ERROR_KDC_NOT_TRUSTED, "KDC_ERROR_KDC_NOT_TRUSTED" },
+ { KRB5_ET_KDC_ERROR_INVALID_SIG, "KDC_ERROR_INVALID_SIG" },
+ { KRB5_ET_KDC_ERR_KEY_TOO_WEAK, "KDC_ERR_KEY_TOO_WEAK" },
+ { KRB5_ET_KDC_ERR_CERTIFICATE_MISMATCH, "KDC_ERR_CERTIFICATE_MISMATCH" },
+ { KRB5_ET_KRB_AP_ERR_NO_TGT, "KRB_AP_ERR_NO_TGT" },
+ { KRB5_ET_KDC_ERR_WRONG_REALM, "KDC_ERR_WRONG_REALM" },
+ { KRB5_ET_KRB_AP_ERR_USER_TO_USER_REQUIRED, "KRB_AP_ERR_USER_TO_USER_REQUIRED" },
+ { KRB5_ET_KDC_ERR_CANT_VERIFY_CERTIFICATE, "KDC_ERR_CANT_VERIFY_CERTIFICATE" },
+ { KRB5_ET_KDC_ERR_INVALID_CERTIFICATE, "KDC_ERR_INVALID_CERTIFICATE" },
+ { KRB5_ET_KDC_ERR_REVOKED_CERTIFICATE, "KDC_ERR_REVOKED_CERTIFICATE" },
+ { KRB5_ET_KDC_ERR_REVOCATION_STATUS_UNKNOWN, "KDC_ERR_REVOCATION_STATUS_UNKNOWN" },
+ { KRB5_ET_KDC_ERR_REVOCATION_STATUS_UNAVAILABLE, "KDC_ERR_REVOCATION_STATUS_UNAVAILABLE" },
+ { KRB5_ET_KDC_ERR_CLIENT_NAME_MISMATCH, "KDC_ERR_CLIENT_NAME_MISMATCH" },
+ { KRB5_ET_KDC_ERR_KDC_NAME_MISMATCH, "KDC_ERR_KDC_NAME_MISMATCH" },
+ { 0, NULL }
+};
+
+
+#define PAC_LOGON_INFO 1
+#define PAC_CREDENTIAL_TYPE 2
+#define PAC_SERVER_CHECKSUM 6
+#define PAC_PRIVSVR_CHECKSUM 7
+#define PAC_CLIENT_INFO_TYPE 10
+#define PAC_S4U_DELEGATION_INFO 11
+#define PAC_UPN_DNS_INFO 12
+static const value_string w2k_pac_types[] = {
+ { PAC_LOGON_INFO , "Logon Info" },
+ { PAC_CREDENTIAL_TYPE , "Credential Type" },
+ { PAC_SERVER_CHECKSUM , "Server Checksum" },
+ { PAC_PRIVSVR_CHECKSUM , "Privsvr Checksum" },
+ { PAC_CLIENT_INFO_TYPE , "Client Info Type" },
+ { PAC_S4U_DELEGATION_INFO, "S4U Delegation Info" },
+ { PAC_UPN_DNS_INFO , "UPN DNS Info" },
+ { 0, NULL },
+};
+
+#if 0
+static const value_string krb5_princ_types[] = {
+ { KRB5_NT_UNKNOWN , "Unknown" },
+ { KRB5_NT_PRINCIPAL , "Principal" },
+ { KRB5_NT_SRV_INST , "Service and Instance" },
+ { KRB5_NT_SRV_HST , "Service and Host" },
+ { KRB5_NT_SRV_XHST , "Service and Host Components" },
+ { KRB5_NT_UID , "Unique ID" },
+ { KRB5_NT_X500_PRINCIPAL , "Encoded X.509 Distinguished Name" },
+ { KRB5_NT_SMTP_NAME , "SMTP Name" },
+ { KRB5_NT_ENTERPRISE , "Enterprise Name" },
+ { KRB5_NT_MS_PRINCIPAL , "NT 4.0 style name (MS specific)" },
+ { KRB5_NT_MS_PRINCIPAL_AND_SID , "NT 4.0 style name with SID (MS specific)"},
+ { KRB5_NT_ENT_PRINCIPAL_AND_SID, "UPN and SID (MS specific)"},
+ { KRB5_NT_PRINCIPAL_AND_SID , "Principal name and SID (MS specific)"},
+ { KRB5_NT_SRV_INST_AND_SID , "SPN and SID (MS specific)"},
+ { 0 , NULL },
+};
+#endif
+
+static const value_string krb5_preauthentication_types[] = {
+ { KRB5_PA_TGS_REQ , "PA-TGS-REQ" },
+ { KRB5_PA_ENC_TIMESTAMP , "PA-ENC-TIMESTAMP" },
+ { KRB5_PA_PW_SALT , "PA-PW-SALT" },
+ { KRB5_PA_ENC_ENCKEY , "PA-ENC-ENCKEY" },
+ { KRB5_PA_ENC_UNIX_TIME , "PA-ENC-UNIX-TIME" },
+ { KRB5_PA_ENC_SANDIA_SECURID , "PA-PW-SALT" },
+ { KRB5_PA_SESAME , "PA-SESAME" },
+ { KRB5_PA_OSF_DCE , "PA-OSF-DCE" },
+ { KRB5_PA_CYBERSAFE_SECUREID , "PA-CYBERSAFE-SECURID" },
+ { KRB5_PA_AFS3_SALT , "PA-AFS3-SALT" },
+ { KRB5_PA_ENCTYPE_INFO , "PA-ENCTYPE-INFO" },
+ { KRB5_PA_ENCTYPE_INFO2 , "PA-ENCTYPE-INFO2" },
+ { KRB5_PA_SAM_CHALLENGE , "PA-SAM-CHALLENGE" },
+ { KRB5_PA_SAM_RESPONSE , "PA-SAM-RESPONSE" },
+ { KRB5_PA_PK_AS_REQ , "PA-PK-AS-REQ" },
+ { KRB5_PA_PK_AS_REP , "PA-PK-AS-REP" },
+ { KRB5_PA_DASS , "PA-DASS" },
+ { KRB5_PA_USE_SPECIFIED_KVNO , "PA-USE-SPECIFIED-KVNO" },
+ { KRB5_PA_SAM_REDIRECT , "PA-SAM-REDIRECT" },
+ { KRB5_PA_GET_FROM_TYPED_DATA , "PA-GET-FROM-TYPED-DATA" },
+ { KRB5_PA_SAM_ETYPE_INFO , "PA-SAM-ETYPE-INFO" },
+ { KRB5_PA_ALT_PRINC , "PA-ALT-PRINC" },
+ { KRB5_PA_SAM_CHALLENGE2 , "PA-SAM-CHALLENGE2" },
+ { KRB5_PA_SAM_RESPONSE2 , "PA-SAM-RESPONSE2" },
+ { KRB5_TD_PKINIT_CMS_CERTIFICATES, "TD-PKINIT-CMS-CERTIFICATES" },
+ { KRB5_TD_KRB_PRINCIPAL , "TD-KRB-PRINCIPAL" },
+ { KRB5_TD_KRB_REALM , "TD-KRB-REALM" },
+ { KRB5_TD_TRUSTED_CERTIFIERS , "TD-TRUSTED-CERTIFIERS" },
+ { KRB5_TD_CERTIFICATE_INDEX , "TD-CERTIFICATE-INDEX" },
+ { KRB5_TD_APP_DEFINED_ERROR , "TD-APP-DEFINED-ERROR" },
+ { KRB5_TD_REQ_NONCE , "TD-REQ-NONCE" },
+ { KRB5_TD_REQ_SEQ , "TD-REQ-SEQ" },
+ { KRB5_PA_PAC_REQUEST , "PA-PAC-REQUEST" },
+ { KRB5_PA_FOR_USER , "PA-FOR-USER" },
+ { KRB5_PA_PROV_SRV_LOCATION , "PA-PROV-SRV-LOCATION" },
+ { 0 , NULL },
+};
+
+#if 0
+static const value_string krb5_encryption_types[] = {
+ { KRB5_ENCTYPE_NULL , "NULL" },
+ { KRB5_ENCTYPE_DES_CBC_CRC , "des-cbc-crc" },
+ { KRB5_ENCTYPE_DES_CBC_MD4 , "des-cbc-md4" },
+ { KRB5_ENCTYPE_DES_CBC_MD5 , "des-cbc-md5" },
+ { KRB5_ENCTYPE_DES_CBC_RAW , "des-cbc-raw" },
+ { KRB5_ENCTYPE_DES3_CBC_SHA , "des3-cbc-sha" },
+ { KRB5_ENCTYPE_DES3_CBC_RAW , "des3-cbc-raw" },
+ { KRB5_ENCTYPE_DES_HMAC_SHA1 , "des-hmac-sha1" },
+ { KRB5_ENCTYPE_DSA_SHA1_CMS , "dsa-sha1-cms" },
+ { KRB5_ENCTYPE_RSA_MD5_CMS , "rsa-md5-cms" },
+ { KRB5_ENCTYPE_RSA_SHA1_CMS , "rsa-sha1-cms" },
+ { KRB5_ENCTYPE_RC2_CBC_ENV , "rc2-cbc-env" },
+ { KRB5_ENCTYPE_RSA_ENV , "rsa-env" },
+ { KRB5_ENCTYPE_RSA_ES_OEAP_ENV, "rsa-es-oeap-env" },
+ { KRB5_ENCTYPE_DES_EDE3_CBC_ENV, "des-ede3-cbc-env" },
+ { KRB5_ENCTYPE_DES3_CBC_SHA1 , "des3-cbc-sha1" },
+ { KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96 , "aes128-cts-hmac-sha1-96" },
+ { KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96 , "aes256-cts-hmac-sha1-96" },
+ { KRB5_ENCTYPE_DES_CBC_MD5_NT , "des-cbc-md5-nt" },
+ { KERB_ENCTYPE_RC4_HMAC , "rc4-hmac" },
+ { KERB_ENCTYPE_RC4_HMAC_EXP , "rc4-hmac-exp" },
+ { KRB5_ENCTYPE_UNKNOWN , "unknown" },
+ { KRB5_ENCTYPE_LOCAL_DES3_HMAC_SHA1 , "local-des3-hmac-sha1" },
+ { KRB5_ENCTYPE_RC4_PLAIN_EXP , "rc4-plain-exp" },
+ { KRB5_ENCTYPE_RC4_PLAIN , "rc4-plain" },
+ { KRB5_ENCTYPE_RC4_PLAIN_OLD_EXP, "rc4-plain-old-exp" },
+ { KRB5_ENCTYPE_RC4_HMAC_OLD_EXP, "rc4-hmac-old-exp" },
+ { KRB5_ENCTYPE_RC4_PLAIN_OLD , "rc4-plain-old" },
+ { KRB5_ENCTYPE_RC4_HMAC_OLD , "rc4-hmac-old" },
+ { KRB5_ENCTYPE_DES_PLAIN , "des-plain" },
+ { KRB5_ENCTYPE_RC4_SHA , "rc4-sha" },
+ { KRB5_ENCTYPE_RC4_LM , "rc4-lm" },
+ { KRB5_ENCTYPE_RC4_PLAIN2 , "rc4-plain2" },
+ { KRB5_ENCTYPE_RC4_MD4 , "rc4-md4" },
+ { 0 , NULL },
+};
+
+static const value_string krb5_checksum_types[] = {
+ { KRB5_CHKSUM_NONE , "none" },
+ { KRB5_CHKSUM_CRC32 , "crc32" },
+ { KRB5_CHKSUM_MD4 , "md4" },
+ { KRB5_CHKSUM_KRB_DES_MAC , "krb-des-mac" },
+ { KRB5_CHKSUM_KRB_DES_MAC_K , "krb-des-mac-k" },
+ { KRB5_CHKSUM_MD5 , "md5" },
+ { KRB5_CHKSUM_MD5_DES , "md5-des" },
+ { KRB5_CHKSUM_MD5_DES3 , "md5-des3" },
+ { KRB5_CHKSUM_HMAC_SHA1_DES3_KD, "hmac-sha1-des3-kd" },
+ { KRB5_CHKSUM_HMAC_SHA1_DES3 , "hmac-sha1-des3" },
+ { KRB5_CHKSUM_SHA1_UNKEYED , "sha1 (unkeyed)" },
+ { KRB5_CHKSUM_HMAC_MD5 , "hmac-md5" },
+ { KRB5_CHKSUM_MD5_HMAC , "md5-hmac" },
+ { KRB5_CHKSUM_RC4_MD5 , "rc5-md5" },
+ { KRB5_CHKSUM_MD25 , "md25" },
+ { KRB5_CHKSUM_DES_MAC_MD5 , "des-mac-md5" },
+ { KRB5_CHKSUM_DES_MAC , "des-mac" },
+ { KRB5_CHKSUM_REAL_CRC32 , "real-crc32" },
+ { KRB5_CHKSUM_SHA1 , "sha1" },
+ { KRB5_CHKSUM_LM , "lm" },
+ { KRB5_CHKSUM_GSSAPI , "gssapi-8003" },
+ { 0 , NULL },
+};
+#endif
+
+#define KRB5_AD_IF_RELEVANT 1
+#define KRB5_AD_INTENDED_FOR_SERVER 2
+#define KRB5_AD_INTENDED_FOR_APPLICATION_CLASS 3
+#define KRB5_AD_KDC_ISSUED 4
+#define KRB5_AD_OR 5
+#define KRB5_AD_MANDATORY_TICKET_EXTENSIONS 6
+#define KRB5_AD_IN_TICKET_EXTENSIONS 7
+#define KRB5_AD_MANDATORY_FOR_KDC 8
+#define KRB5_AD_OSF_DCE 64
+#define KRB5_AD_SESAME 65
+#define KRB5_AD_OSF_DCE_PKI_CERTID 66
+#define KRB5_AD_WIN2K_PAC 128
+#define KRB5_AD_SIGNTICKET 0xffffffef
+
+static const value_string krb5_ad_types[] = {
+ { KRB5_AD_IF_RELEVANT , "AD-IF-RELEVANT" },
+ { KRB5_AD_INTENDED_FOR_SERVER , "AD-Intended-For-Server" },
+ { KRB5_AD_INTENDED_FOR_APPLICATION_CLASS , "AD-Intended-For-Application-Class" },
+ { KRB5_AD_KDC_ISSUED , "AD-KDCIssued" },
+ { KRB5_AD_OR , "AD-AND-OR" },
+ { KRB5_AD_MANDATORY_TICKET_EXTENSIONS , "AD-Mandatory-Ticket-Extensions" },
+ { KRB5_AD_IN_TICKET_EXTENSIONS , "AD-IN-Ticket-Extensions" },
+ { KRB5_AD_MANDATORY_FOR_KDC , "AD-MANDATORY-FOR-KDC" },
+ { KRB5_AD_OSF_DCE , "AD-OSF-DCE" },
+ { KRB5_AD_SESAME , "AD-SESAME" },
+ { KRB5_AD_OSF_DCE_PKI_CERTID , "AD-OSF-DCE-PKI-CertID" },
+ { KRB5_AD_WIN2K_PAC , "AD-Win2k-PAC" },
+ { KRB5_AD_SIGNTICKET , "AD-SignTicket" },
+ { 0 , NULL },
+};
+#if 0
+static const value_string krb5_transited_types[] = {
+ { 1 , "DOMAIN-X500-COMPRESS" },
+ { 0 , NULL }
+};
+#endif
+
+static const value_string krb5_msg_types[] = {
+ { KRB5_MSG_TICKET, "Ticket" },
+ { KRB5_MSG_AUTHENTICATOR, "Authenticator" },
+ { KRB5_MSG_ENC_TICKET_PART, "EncTicketPart" },
+ { KRB5_MSG_TGS_REQ, "TGS-REQ" },
+ { KRB5_MSG_TGS_REP, "TGS-REP" },
+ { KRB5_MSG_AS_REQ, "AS-REQ" },
+ { KRB5_MSG_AS_REP, "AS-REP" },
+ { KRB5_MSG_AP_REQ, "AP-REQ" },
+ { KRB5_MSG_AP_REP, "AP-REP" },
+ { KRB5_MSG_SAFE, "KRB-SAFE" },
+ { KRB5_MSG_PRIV, "KRB-PRIV" },
+ { KRB5_MSG_CRED, "KRB-CRED" },
+ { KRB5_MSG_ENC_AS_REP_PART, "EncASRepPart" },
+ { KRB5_MSG_ENC_TGS_REP_PART, "EncTGSRepPart" },
+ { KRB5_MSG_ENC_AP_REP_PART, "EncAPRepPart" },
+ { KRB5_MSG_ENC_KRB_PRIV_PART, "EncKrbPrivPart" },
+ { KRB5_MSG_ENC_KRB_CRED_PART, "EncKrbCredPart" },
+ { KRB5_MSG_ERROR, "KRB-ERROR" },
+ { 0, NULL },
+};
+
+#define KRB5_GSS_C_DELEG_FLAG 0x01
+#define KRB5_GSS_C_MUTUAL_FLAG 0x02
+#define KRB5_GSS_C_REPLAY_FLAG 0x04
+#define KRB5_GSS_C_SEQUENCE_FLAG 0x08
+#define KRB5_GSS_C_CONF_FLAG 0x10
+#define KRB5_GSS_C_INTEG_FLAG 0x20
+#define KRB5_GSS_C_DCE_STYLE 0x1000
+
+static const true_false_string tfs_gss_flags_deleg = {
+ "Delegate credentials to remote peer",
+ "Do NOT delegate"
+};
+static const true_false_string tfs_gss_flags_mutual = {
+ "Request that remote peer authenticates itself",
+ "Mutual authentication NOT required"
+};
+static const true_false_string tfs_gss_flags_replay = {
+ "Enable replay protection for signed or sealed messages",
+ "Do NOT enable replay protection"
+};
+static const true_false_string tfs_gss_flags_sequence = {
+ "Enable Out-of-sequence detection for sign or sealed messages",
+ "Do NOT enable out-of-sequence detection"
+};
+static const true_false_string tfs_gss_flags_conf = {
+ "Confidentiality (sealing) may be invoked",
+ "Do NOT use Confidentiality (sealing)"
+};
+static const true_false_string tfs_gss_flags_integ = {
+ "Integrity protection (signing) may be invoked",
+ "Do NOT use integrity protection"
+};
+
+static const true_false_string tfs_gss_flags_dce_style = {
+ "DCE-STYLE",
+ "Not using DCE-STYLE"
+};
+
+#ifdef HAVE_KERBEROS
+static int
+dissect_krb5_decrypt_ticket_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+ proto_tree *tree, int hf_index _U_)
+{
+ guint8 *plaintext;
+ int length;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ tvbuff_t *next_tvb;
+
+ next_tvb=tvb_new_subset_remaining(tvb, offset);
+ length=tvb_captured_length_remaining(tvb, offset);
+
+ /* draft-ietf-krb-wg-kerberos-clarifications-05.txt :
+ * 7.5.1
+ * All Ticket encrypted parts use usage == 2
+ */
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 2, next_tvb, private_data->etype, NULL);
+
+ if(plaintext){
+ tvbuff_t *child_tvb;
+ child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
+ tvb_set_free_cb(child_tvb, g_free);
+
+ /* Add the decrypted data to the data source list. */
+ add_new_data_source(actx->pinfo, child_tvb, "Decrypted Krb5");
+
+ offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ }
+ return offset;
+}
+
+static int
+dissect_krb5_decrypt_authenticator_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+ proto_tree *tree, int hf_index _U_)
+{
+ guint8 *plaintext;
+ int length;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ tvbuff_t *next_tvb;
+
+ next_tvb=tvb_new_subset_remaining(tvb, offset);
+ length=tvb_captured_length_remaining(tvb, offset);
+
+ /* draft-ietf-krb-wg-kerberos-clarifications-05.txt :
+ * 7.5.1
+ * Authenticators are encrypted with usage
+ * == 7 or
+ * == 11
+ */
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 7, next_tvb, private_data->etype, NULL);
+
+ if(!plaintext){
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 11, next_tvb, private_data->etype, NULL);
+ }
+
+ if(plaintext){
+ tvbuff_t *child_tvb;
+ child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
+ tvb_set_free_cb(child_tvb, g_free);
+
+ /* Add the decrypted data to the data source list. */
+ add_new_data_source(actx->pinfo, child_tvb, "Decrypted Krb5");
+
+ offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ }
+ return offset;
+}
+
+static int
+dissect_krb5_decrypt_KDC_REP_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+ proto_tree *tree, int hf_index _U_)
+{
+ guint8 *plaintext;
+ int length;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ tvbuff_t *next_tvb;
+
+ next_tvb=tvb_new_subset_remaining(tvb, offset);
+ length=tvb_captured_length_remaining(tvb, offset);
+
+ /* draft-ietf-krb-wg-kerberos-clarifications-05.txt :
+ * 7.5.1
+ * ASREP/TGSREP encryptedparts are encrypted with usage
+ * == 3 or
+ * == 8 or
+ * == 9
+ */
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 3, next_tvb, private_data->etype, NULL);
+
+ if(!plaintext){
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 8, next_tvb, private_data->etype, NULL);
+ }
+
+ if(!plaintext){
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 9, next_tvb, private_data->etype, NULL);
+ }
+
+ if(plaintext){
+ tvbuff_t *child_tvb;
+ child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
+ tvb_set_free_cb(child_tvb, g_free);
+
+ /* Add the decrypted data to the data source list. */
+ add_new_data_source(actx->pinfo, child_tvb, "Decrypted Krb5");
+
+ offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ }
+ return offset;
+}
+
+static int
+dissect_krb5_decrypt_PA_ENC_TIMESTAMP (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+ proto_tree *tree, int hf_index _U_)
+{
+ guint8 *plaintext;
+ int length;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ tvbuff_t *next_tvb;
+
+ next_tvb=tvb_new_subset_remaining(tvb, offset);
+ length=tvb_captured_length_remaining(tvb, offset);
+
+ /* draft-ietf-krb-wg-kerberos-clarifications-05.txt :
+ * 7.5.1
+ * AS-REQ PA_ENC_TIMESTAMP are encrypted with usage
+ * == 1
+ */
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 1, next_tvb, private_data->etype, NULL);
+
+ if(plaintext){
+ tvbuff_t *child_tvb;
+ child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
+ tvb_set_free_cb(child_tvb, g_free);
+
+ /* Add the decrypted data to the data source list. */
+ add_new_data_source(actx->pinfo, child_tvb, "Decrypted Krb5");
+
+ offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ }
+ return offset;
+}
+
+static int
+dissect_krb5_decrypt_AP_REP_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+ proto_tree *tree, int hf_index _U_)
+{
+ guint8 *plaintext;
+ int length;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ tvbuff_t *next_tvb;
+
+ next_tvb=tvb_new_subset_remaining(tvb, offset);
+ length=tvb_captured_length_remaining(tvb, offset);
+
+ /* draft-ietf-krb-wg-kerberos-clarifications-05.txt :
+ * 7.5.1
+ * AP-REP are encrypted with usage == 12
+ */
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 12, next_tvb, private_data->etype, NULL);
+
+ if(plaintext){
+ tvbuff_t *child_tvb;
+ child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
+ tvb_set_free_cb(child_tvb, g_free);
+
+ /* Add the decrypted data to the data source list. */
+ add_new_data_source(actx->pinfo, child_tvb, "Decrypted Krb5");
+
+ offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ }
+ return offset;
+}
+
+static int
+dissect_krb5_decrypt_PRIV_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+ proto_tree *tree, int hf_index _U_)
+{
+ guint8 *plaintext;
+ int length;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ tvbuff_t *next_tvb;
+
+ next_tvb=tvb_new_subset_remaining(tvb, offset);
+ length=tvb_captured_length_remaining(tvb, offset);
+
+ /* RFC4120 :
+ * EncKrbPrivPart encrypted with usage
+ * == 13
+ */
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 13, next_tvb, private_data->etype, NULL);
+
+ if(plaintext){
+ tvbuff_t *child_tvb;
+ child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
+ tvb_set_free_cb(child_tvb, g_free);
+
+ /* Add the decrypted data to the data source list. */
+ add_new_data_source(actx->pinfo, child_tvb, "Decrypted Krb5");
+
+ offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ }
+ return offset;
+}
+
+static int
+dissect_krb5_decrypt_CRED_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+ proto_tree *tree, int hf_index _U_)
+{
+ guint8 *plaintext;
+ int length;
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ tvbuff_t *next_tvb;
+
+ next_tvb=tvb_new_subset_remaining(tvb, offset);
+ length=tvb_captured_length_remaining(tvb, offset);
+
+ /* RFC4120 :
+ * EncKrbCredPart encrypted with usage
+ * == 14
+ */
+ plaintext=decrypt_krb5_data(tree, actx->pinfo, 14, next_tvb, private_data->etype, NULL);
+
+ if(plaintext){
+ tvbuff_t *child_tvb;
+ child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
+ tvb_set_free_cb(child_tvb, g_free);
+
+ /* Add the decrypted data to the data source list. */
+ add_new_data_source(actx->pinfo, child_tvb, "Decrypted Krb5");
+
+ offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ }
+ return offset;
+}
+#endif
+
+/* Dissect a GSSAPI checksum as per RFC1964. This is NOT ASN.1 encoded.
+ */
+static int
+dissect_krb5_rfc1964_checksum(asn1_ctx_t *actx _U_, proto_tree *tree, tvbuff_t *tvb)
+{
+ int offset=0;
+ guint32 len;
+ guint16 dlglen;
+
+ /* Length of Bnd field */
+ len=tvb_get_letohl(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_gssapi_len, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset += 4;
+
+ /* Bnd field */
+ proto_tree_add_item(tree, hf_krb_gssapi_bnd, tvb, offset, len, ENC_NA);
+ offset += len;
+
+
+ /* flags */
+ proto_tree_add_item(tree, hf_krb_gssapi_c_flag_dce_style, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_krb_gssapi_c_flag_integ, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_krb_gssapi_c_flag_conf, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_krb_gssapi_c_flag_sequence, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_krb_gssapi_c_flag_replay, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_krb_gssapi_c_flag_mutual, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_krb_gssapi_c_flag_deleg, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset += 4;
+
+ /* the next fields are optional so we have to check that we have
+ * more data in our buffers */
+ if(tvb_reported_length_remaining(tvb, offset)<2){
+ return offset;
+ }
+ /* dlgopt identifier */
+ proto_tree_add_item(tree, hf_krb_gssapi_dlgopt, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+
+ if(tvb_reported_length_remaining(tvb, offset)<2){
+ return offset;
+ }
+ /* dlglen identifier */
+ dlglen=tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_gssapi_dlglen, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+
+ if(dlglen!=tvb_reported_length_remaining(tvb, offset)){
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_krb_gssapi_dlglen, tvb, 0, 0,
+ "Error: DlgLen:%d is not the same as number of bytes remaining:%d", dlglen, tvb_captured_length_remaining(tvb, offset));
+ return offset;
+ }
+
+ /* this should now be a KRB_CRED message */
+ offset=dissect_kerberos_Applications(FALSE, tvb, offset, actx, tree, /* hf_index */ -1);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PA_PROV_SRV_LOCATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_)
+{
+ offset=dissect_ber_GeneralString(actx, tree, tvb, offset, hf_krb_provsrv_location, NULL, 0);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PW_SALT(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_)
+{
+ guint32 nt_status;
+
+ /* Microsoft stores a special 12 byte blob here
+ * guint32 NT_status
+ * guint32 unknown
+ * guint32 unknown
+ * decode everything as this blob for now until we see if anyone
+ * else ever uses it or we learn how to tell whether this
+ * is such an MS blob or not.
+ */
+ proto_tree_add_item(tree, hf_krb_smb_nt_status, tvb, offset, 4,
+ ENC_LITTLE_ENDIAN);
+ nt_status=tvb_get_letohl(tvb, offset);
+ if(nt_status) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO,
+ " NT Status: %s",
+ val_to_str(nt_status, NT_errors,
+ "Unknown error code %#x"));
+ }
+ offset += 4;
+
+ proto_tree_add_item(tree, hf_krb_smb_unknown, tvb, offset, 4,
+ ENC_LITTLE_ENDIAN);
+ offset += 4;
+
+ proto_tree_add_item(tree, hf_krb_smb_unknown, tvb, offset, 4,
+ ENC_LITTLE_ENDIAN);
+ offset += 4;
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_DREP(proto_tree *parent_tree, tvbuff_t *tvb, int offset, guint8 *drep)
+{
+ proto_tree *tree;
+ guint8 val;
+
+ tree = proto_tree_add_subtree(parent_tree, tvb, offset, 16, ett_krb_pac_drep, NULL, "DREP");
+
+ val = tvb_get_guint8(tvb, offset);
+ proto_tree_add_uint(tree, hf_dcerpc_drep_byteorder, tvb, offset, 1, val>>4);
+
+ offset++;
+
+ if (drep) {
+ *drep = val;
+ }
+
+ return offset;
+}
+
+/* This might be some sort of header that MIDL generates when creating
+ * marshalling/unmarshalling code for blobs that are not to be transported
+ * ontop of DCERPC and where the DREP fields specifying things such as
+ * endianess and similar are not available.
+ */
+static int
+dissect_krb5_PAC_NDRHEADERBLOB(proto_tree *parent_tree, tvbuff_t *tvb, int offset, guint8 *drep, asn1_ctx_t *actx _U_)
+{
+ proto_tree *tree;
+
+ tree = proto_tree_add_subtree(parent_tree, tvb, offset, 16, ett_krb_pac_midl_blob, NULL, "MES header");
+
+ /* modified DREP field that is used for stuff that is transporetd ontop
+ of non dcerpc
+ */
+ proto_tree_add_item(tree, hf_krb_midl_version, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ offset++;
+
+ offset = dissect_krb5_PAC_DREP(tree, tvb, offset, drep);
+
+
+ proto_tree_add_item(tree, hf_krb_midl_hdr_len, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+
+ proto_tree_add_item(tree, hf_krb_midl_fill_bytes, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset += 4;
+
+ /* length of blob that follows */
+ proto_tree_add_item(tree, hf_krb_midl_blob_len, tvb, offset, 8, ENC_LITTLE_ENDIAN);
+ offset += 8;
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_LOGON_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_item *item;
+ proto_tree *tree;
+ guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
+ static dcerpc_info di; /* fake dcerpc_info struct */
+ static dcerpc_call_value call_data;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_logon_info, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_logon_info);
+
+ /* skip the first 16 bytes, they are some magic created by the idl
+ * compiler the first 4 bytes might be flags?
+ */
+ offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
+
+ /* the PAC_LOGON_INFO blob */
+ /* fake whatever state the dcerpc runtime support needs */
+ di.conformant_run=0;
+ /* we need di->call_data->flags.NDR64 == 0 */
+ di.call_data=&call_data;
+ init_ndr_pointer_list(&di);
+ offset = dissect_ndr_pointer(tvb, offset, actx->pinfo, tree, &di, drep,
+ netlogon_dissect_PAC_LOGON_INFO, NDR_POINTER_UNIQUE,
+ "PAC_LOGON_INFO:", -1);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_S4U_DELEGATION_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx)
+{
+ proto_item *item;
+ proto_tree *tree;
+ guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
+ static dcerpc_info di; /* fake dcerpc_info struct */
+ static dcerpc_call_value call_data;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_s4u_delegation_info, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_s4u_delegation_info);
+
+ /* skip the first 16 bytes, they are some magic created by the idl
+ * compiler the first 4 bytes might be flags?
+ */
+ offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
+
+
+ /* the S4U_DELEGATION_INFO blob. See [MS-PAC] */
+ /* fake whatever state the dcerpc runtime support needs */
+ di.conformant_run=0;
+ /* we need di->call_data->flags.NDR64 == 0 */
+ di.call_data=&call_data;
+ init_ndr_pointer_list(&di);
+ offset = dissect_ndr_pointer(tvb, offset, actx->pinfo, tree, &di, drep,
+ netlogon_dissect_PAC_S4U_DELEGATION_INFO, NDR_POINTER_UNIQUE,
+ "PAC_S4U_DELEGATION_INFO:", -1);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_item *item;
+ proto_tree *tree;
+ guint16 dns_offset, dns_len;
+ guint16 upn_offset, upn_len;
+ const char *dn;
+ int dn_len;
+ guint16 bc;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_upn_dns_info, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_upn_dns_info);
+
+ /* upn */
+ upn_len = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_pac_upn_upn_len, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+ upn_offset = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_pac_upn_upn_offset, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+
+ /* dns */
+ dns_len = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_pac_upn_dns_len, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+ dns_offset = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_pac_upn_dns_offset, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+
+ /* flags */
+ proto_tree_add_item(tree, hf_krb_pac_upn_flags, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+
+ /* upn */
+ offset = upn_offset;
+ dn_len = upn_len;
+ bc = tvb_reported_length_remaining(tvb, offset);
+ dn = get_unicode_or_ascii_string(tvb, &offset, TRUE, &dn_len, TRUE, TRUE, &bc);
+ proto_tree_add_string(tree, hf_krb_pac_upn_upn_name, tvb, upn_offset, upn_len, dn);
+
+ /* dns */
+ offset = dns_offset;
+ dn_len = dns_len;
+ bc = tvb_reported_length_remaining(tvb, offset);
+ dn = get_unicode_or_ascii_string(tvb, &offset, TRUE, &dn_len, TRUE, TRUE, &bc);
+ proto_tree_add_string(tree, hf_krb_pac_upn_dns_name, tvb, dns_offset, dns_len, dn);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_CREDENTIAL_TYPE(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_tree_add_item(parent_tree, hf_krb_pac_credential_type, tvb, offset, -1, ENC_NA);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_SERVER_CHECKSUM(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_item *item;
+ proto_tree *tree;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_server_checksum, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_server_checksum);
+
+ /* signature type */
+ proto_tree_add_item(tree, hf_krb_pac_signature_type, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset+=4;
+
+ /* signature data */
+ proto_tree_add_item(tree, hf_krb_pac_signature_signature, tvb, offset, -1, ENC_NA);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_PRIVSVR_CHECKSUM(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_item *item;
+ proto_tree *tree;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_privsvr_checksum, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_privsvr_checksum);
+
+ /* signature type */
+ proto_tree_add_item(tree, hf_krb_pac_signature_type, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset+=4;
+
+ /* signature data */
+ proto_tree_add_item(tree, hf_krb_pac_signature_signature, tvb, offset, -1, ENC_NA);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_CLIENT_INFO_TYPE(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_item *item;
+ proto_tree *tree;
+ guint16 namelen;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_client_info_type, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_client_info_type);
+
+ /* clientid */
+ offset = dissect_nt_64bit_time(tvb, tree, offset, hf_krb_pac_clientid);
+
+ /* name length */
+ namelen=tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(tree, hf_krb_pac_namelen, tvb, offset, 2, namelen);
+ offset+=2;
+
+ /* client name */
+ proto_tree_add_item(tree, hf_krb_pac_clientname, tvb, offset, namelen, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ offset+=namelen;
+
+ return offset;
+}
+
+static int
+dissect_krb5_AD_WIN2K_PAC_struct(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx)
+{
+ guint32 pac_type;
+ guint32 pac_size;
+ guint32 pac_offset;
+ proto_item *it=NULL;
+ proto_tree *tr=NULL;
+ tvbuff_t *next_tvb;
+
+ /* type of pac data */
+ pac_type=tvb_get_letohl(tvb, offset);
+ it=proto_tree_add_uint(tree, hf_krb_w2k_pac_type, tvb, offset, 4, pac_type);
+ tr=proto_item_add_subtree(it, ett_krb_pac);
+
+ offset += 4;
+
+ /* size of pac data */
+ pac_size=tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint(tr, hf_krb_w2k_pac_size, tvb, offset, 4, pac_size);
+ offset += 4;
+
+ /* offset to pac data */
+ pac_offset=tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint(tr, hf_krb_w2k_pac_offset, tvb, offset, 4, pac_offset);
+ offset += 8;
+
+ next_tvb=tvb_new_subset(tvb, pac_offset, pac_size, pac_size);
+ switch(pac_type){
+ case PAC_LOGON_INFO:
+ dissect_krb5_PAC_LOGON_INFO(tr, next_tvb, 0, actx);
+ break;
+ case PAC_CREDENTIAL_TYPE:
+ dissect_krb5_PAC_CREDENTIAL_TYPE(tr, next_tvb, 0, actx);
+ break;
+ case PAC_SERVER_CHECKSUM:
+ dissect_krb5_PAC_SERVER_CHECKSUM(tr, next_tvb, 0, actx);
+ break;
+ case PAC_PRIVSVR_CHECKSUM:
+ dissect_krb5_PAC_PRIVSVR_CHECKSUM(tr, next_tvb, 0, actx);
+ break;
+ case PAC_CLIENT_INFO_TYPE:
+ dissect_krb5_PAC_CLIENT_INFO_TYPE(tr, next_tvb, 0, actx);
+ break;
+ case PAC_S4U_DELEGATION_INFO:
+ dissect_krb5_PAC_S4U_DELEGATION_INFO(tr, next_tvb, 0, actx);
+ break;
+ case PAC_UPN_DNS_INFO:
+ dissect_krb5_PAC_UPN_DNS_INFO(tr, next_tvb, 0, actx);
+ break;
+
+ default:
+ break;
+ }
+ return offset;
+}
+
+static int
+dissect_krb5_AD_WIN2K_PAC(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_)
+{
+ guint32 entries;
+ guint32 version;
+ guint32 i;
+
+ /* first in the PAC structure comes the number of entries */
+ entries=tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint(tree, hf_krb_w2k_pac_entries, tvb, offset, 4, entries);
+ offset += 4;
+
+ /* second comes the version */
+ version=tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint(tree, hf_krb_w2k_pac_version, tvb, offset, 4, version);
+ offset += 4;
+
+ for(i=0;i<entries;i++){
+ offset=dissect_krb5_AD_WIN2K_PAC_struct(tree, tvb, offset, actx);
+ }
+
+ return offset;
+}
+
+#include "packet-kerberos-fn.c"
+
+/* Make wrappers around exported functions for now */
+int
+dissect_krb5_Checksum(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ return dissect_kerberos_Checksum(FALSE, tvb, offset, actx, tree, hf_kerberos_cksum);
+
+}
+
+int
+dissect_krb5_ctime(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ return dissect_kerberos_KerberosTime(FALSE, tvb, offset, actx, tree, hf_kerberos_ctime);
+}
+
+
+int
+dissect_krb5_cname(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ return dissect_kerberos_PrincipalName(FALSE, tvb, offset, actx, tree, hf_kerberos_cname);
+}
+int
+dissect_krb5_realm(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ return dissect_kerberos_Realm(FALSE, tvb, offset, actx, tree, hf_kerberos_realm);
+}
+
+
+static gint
+dissect_kerberos_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ gboolean dci, gboolean do_col_protocol, gboolean have_rm,
+ kerberos_callbacks *cb)
+{
+ volatile int offset = 0;
+ proto_tree *volatile kerberos_tree = NULL;
+ proto_item *volatile item = NULL;
+ asn1_ctx_t asn1_ctx;
+
+ /* TCP record mark and length */
+ guint32 krb_rm = 0;
+ gint krb_reclen = 0;
+
+ gbl_do_col_info=dci;
+
+ if (have_rm) {
+ krb_rm = tvb_get_ntohl(tvb, offset);
+ krb_reclen = kerberos_rm_to_reclen(krb_rm);
+ /*
+ * What is a reasonable size limit?
+ */
+ if (krb_reclen > 10 * 1024 * 1024) {
+ return (-1);
+ }
+
+ if (do_col_protocol) {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "KRB5");
+ }
+
+ if (tree) {
+ item = proto_tree_add_item(tree, proto_kerberos, tvb, 0, -1, ENC_NA);
+ kerberos_tree = proto_item_add_subtree(item, ett_kerberos);
+ }
+
+ show_krb_recordmark(kerberos_tree, tvb, offset, krb_rm);
+ offset += 4;
+ } else {
+ /* Do some sanity checking here,
+ * All krb5 packets start with a TAG class that is BER_CLASS_APP
+ * and a tag value that is either of the values below:
+ * If it doesn't look like kerberos, return 0 and let someone else have
+ * a go at it.
+ */
+ gint8 tmp_class;
+ gboolean tmp_pc;
+ gint32 tmp_tag;
+
+ get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
+ if(tmp_class!=BER_CLASS_APP){
+ return 0;
+ }
+ switch(tmp_tag){
+ case KRB5_MSG_TICKET:
+ case KRB5_MSG_AUTHENTICATOR:
+ case KRB5_MSG_ENC_TICKET_PART:
+ case KRB5_MSG_AS_REQ:
+ case KRB5_MSG_AS_REP:
+ case KRB5_MSG_TGS_REQ:
+ case KRB5_MSG_TGS_REP:
+ case KRB5_MSG_AP_REQ:
+ case KRB5_MSG_AP_REP:
+ case KRB5_MSG_ENC_AS_REP_PART:
+ case KRB5_MSG_ENC_TGS_REP_PART:
+ case KRB5_MSG_ENC_AP_REP_PART:
+ case KRB5_MSG_ENC_KRB_PRIV_PART:
+ case KRB5_MSG_ENC_KRB_CRED_PART:
+ case KRB5_MSG_SAFE:
+ case KRB5_MSG_PRIV:
+ case KRB5_MSG_ERROR:
+ break;
+ default:
+ return 0;
+ }
+ if (do_col_protocol) {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "KRB5");
+ }
+ if (gbl_do_col_info) {
+ col_clear(pinfo->cinfo, COL_INFO);
+ }
+ if (tree) {
+ item = proto_tree_add_item(tree, proto_kerberos, tvb, 0, -1, ENC_NA);
+ kerberos_tree = proto_item_add_subtree(item, ett_kerberos);
+ }
+ }
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx.private_data = cb;
+
+ TRY {
+ offset=dissect_kerberos_Applications(FALSE, tvb, offset, &asn1_ctx , kerberos_tree, /* hf_index */ -1);
+ } CATCH_BOUNDS_ERRORS {
+ RETHROW;
+ } ENDTRY;
+
+ proto_item_set_len(item, offset);
+ return offset;
+}
+
+/*
+ * Display the TCP record mark.
+ */
+void
+show_krb_recordmark(proto_tree *tree, tvbuff_t *tvb, gint start, guint32 krb_rm)
+{
+ gint rec_len;
+ proto_tree *rm_tree;
+
+ if (tree == NULL)
+ return;
+
+ rec_len = kerberos_rm_to_reclen(krb_rm);
+ rm_tree = proto_tree_add_subtree_format(tree, tvb, start, 4, ett_krb_recordmark, NULL,
+ "Record Mark: %u %s", rec_len, plurality(rec_len, "byte", "bytes"));
+ proto_tree_add_boolean(rm_tree, hf_krb_rm_reserved, tvb, start, 4, krb_rm);
+ proto_tree_add_uint(rm_tree, hf_krb_rm_reclen, tvb, start, 4, krb_rm);
+}
+
+gint
+dissect_kerberos_main(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int do_col_info, kerberos_callbacks *cb)
+{
+ return (dissect_kerberos_common(tvb, pinfo, tree, do_col_info, FALSE, FALSE, cb));
+}
+
+guint32
+kerberos_output_keytype(void)
+{
+ return gbl_keytype;
+}
+
+static gint
+dissect_kerberos_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ /* Some weird kerberos implementation apparently do krb4 on the krb5 port.
+ Since all (except weirdo transarc krb4 stuff) use
+ an opcode <=16 in the first byte, use this to see if it might
+ be krb4.
+ All krb5 commands start with an APPL tag and thus is >=0x60
+ so if first byte is <=16 just blindly assume it is krb4 then
+ */
+ if(tvb_captured_length(tvb) >= 1 && tvb_get_guint8(tvb, 0)<=0x10){
+ if(krb4_handle){
+ gboolean res;
+
+ res=call_dissector_only(krb4_handle, tvb, pinfo, tree, NULL);
+ return res;
+ }else{
+ return 0;
+ }
+ }
+
+
+ return dissect_kerberos_common(tvb, pinfo, tree, TRUE, TRUE, FALSE, NULL);
+}
+
+gint
+kerberos_rm_to_reclen(guint krb_rm)
+{
+ return (krb_rm & KRB_RM_RECLEN);
+}
+
+guint
+get_krb_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
+{
+ guint krb_rm;
+ gint pdulen;
+
+ krb_rm = tvb_get_ntohl(tvb, offset);
+ pdulen = kerberos_rm_to_reclen(krb_rm);
+ return (pdulen + 4);
+}
+static void
+kerberos_prefs_apply_cb(void) {
+#ifdef HAVE_LIBNETTLE
+ clear_keytab();
+ read_keytab_file(keytab_filename);
+#endif
+}
+
+static int
+dissect_kerberos_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ pinfo->fragmented = TRUE;
+ if (dissect_kerberos_common(tvb, pinfo, tree, TRUE, TRUE, TRUE, NULL) < 0) {
+ /*
+ * The dissector failed to recognize this as a valid
+ * Kerberos message. Mark it as a continuation packet.
+ */
+ col_set_str(pinfo->cinfo, COL_INFO, "Continuation");
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_kerberos_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "KRB5");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ tcp_dissect_pdus(tvb, pinfo, tree, krb_desegment, 4, get_krb_pdu_len,
+ dissect_kerberos_tcp_pdu, data);
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_kerberos -------------------------------------------*/
+void proto_register_kerberos(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_krb_rm_reserved, {
+ "Reserved", "kerberos.rm.reserved", FT_BOOLEAN, 32,
+ TFS(&tfs_set_notset), KRB_RM_RESERVED, "Record mark reserved bit", HFILL }},
+ { &hf_krb_rm_reclen, {
+ "Record Length", "kerberos.rm.length", FT_UINT32, BASE_DEC,
+ NULL, KRB_RM_RECLEN, NULL, HFILL }},
+ { &hf_krb_provsrv_location, {
+ "PROVSRV Location", "kerberos.provsrv_location", FT_STRING, BASE_NONE,
+ NULL, 0, "PacketCable PROV SRV Location", HFILL }},
+ { &hf_krb_smb_nt_status,
+ { "NT Status", "kerberos.smb.nt_status", FT_UINT32, BASE_HEX,
+ VALS(NT_errors), 0, "NT Status code", HFILL }},
+ { &hf_krb_smb_unknown,
+ { "Unknown", "kerberos.smb.unknown", FT_UINT32, BASE_HEX,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_address_ip, {
+ "IP Address", "kerberos.addr_ip", FT_IPv4, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_address_ipv6, {
+ "IPv6 Address", "kerberos.addr_ipv6", FT_IPv6, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_address_netbios, {
+ "NetBIOS Address", "kerberos.addr_nb", FT_STRING, BASE_NONE,
+ NULL, 0, "NetBIOS Address and type", HFILL }},
+ { &hf_krb_gssapi_len, {
+ "Length", "kerberos.gssapi.len", FT_UINT32, BASE_DEC,
+ NULL, 0, "Length of GSSAPI Bnd field", HFILL }},
+ { &hf_krb_gssapi_bnd, {
+ "Bnd", "kerberos.gssapi.bdn", FT_BYTES, BASE_NONE,
+ NULL, 0, "GSSAPI Bnd field", HFILL }},
+ { &hf_krb_gssapi_c_flag_deleg, {
+ "Deleg", "kerberos.gssapi.checksum.flags.deleg", FT_BOOLEAN, 32,
+ TFS(&tfs_gss_flags_deleg), KRB5_GSS_C_DELEG_FLAG, NULL, HFILL }},
+ { &hf_krb_gssapi_c_flag_mutual, {
+ "Mutual", "kerberos.gssapi.checksum.flags.mutual", FT_BOOLEAN, 32,
+ TFS(&tfs_gss_flags_mutual), KRB5_GSS_C_MUTUAL_FLAG, NULL, HFILL }},
+ { &hf_krb_gssapi_c_flag_replay, {
+ "Replay", "kerberos.gssapi.checksum.flags.replay", FT_BOOLEAN, 32,
+ TFS(&tfs_gss_flags_replay), KRB5_GSS_C_REPLAY_FLAG, NULL, HFILL }},
+ { &hf_krb_gssapi_c_flag_sequence, {
+ "Sequence", "kerberos.gssapi.checksum.flags.sequence", FT_BOOLEAN, 32,
+ TFS(&tfs_gss_flags_sequence), KRB5_GSS_C_SEQUENCE_FLAG, NULL, HFILL }},
+ { &hf_krb_gssapi_c_flag_conf, {
+ "Conf", "kerberos.gssapi.checksum.flags.conf", FT_BOOLEAN, 32,
+ TFS(&tfs_gss_flags_conf), KRB5_GSS_C_CONF_FLAG, NULL, HFILL }},
+ { &hf_krb_gssapi_c_flag_integ, {
+ "Integ", "kerberos.gssapi.checksum.flags.integ", FT_BOOLEAN, 32,
+ TFS(&tfs_gss_flags_integ), KRB5_GSS_C_INTEG_FLAG, NULL, HFILL }},
+ { &hf_krb_gssapi_c_flag_dce_style, {
+ "DCE-style", "kerberos.gssapi.checksum.flags.dce-style", FT_BOOLEAN, 32,
+ TFS(&tfs_gss_flags_dce_style), KRB5_GSS_C_DCE_STYLE, NULL, HFILL }},
+ { &hf_krb_gssapi_dlgopt, {
+ "DlgOpt", "kerberos.gssapi.dlgopt", FT_UINT16, BASE_DEC,
+ NULL, 0, "GSSAPI DlgOpt", HFILL }},
+ { &hf_krb_gssapi_dlglen, {
+ "DlgLen", "kerberos.gssapi.dlglen", FT_UINT16, BASE_DEC,
+ NULL, 0, "GSSAPI DlgLen", HFILL }},
+ { &hf_krb_midl_blob_len, {
+ "Blob Length", "kerberos.midl_blob_len", FT_UINT64, BASE_DEC,
+ NULL, 0, "Length of NDR encoded data that follows", HFILL }},
+ { &hf_krb_midl_fill_bytes, {
+ "Fill bytes", "kerberos.midl.fill_bytes", FT_UINT32, BASE_HEX,
+ NULL, 0, "Just some fill bytes", HFILL }},
+ { &hf_krb_midl_version, {
+ "Version", "kerberos.midl.version", FT_UINT8, BASE_DEC,
+ NULL, 0, "Version of pickling", HFILL }},
+ { &hf_krb_midl_hdr_len, {
+ "HDR Length", "kerberos.midl.hdr_len", FT_UINT16, BASE_DEC,
+ NULL, 0, "Length of header", HFILL }},
+ { &hf_krb_pac_signature_type, {
+ "Type", "kerberos.pac.signature.type", FT_INT32, BASE_DEC,
+ NULL, 0, "PAC Signature Type", HFILL }},
+ { &hf_krb_pac_signature_signature, {
+ "Signature", "kerberos.pac.signature.signature", FT_BYTES, BASE_NONE,
+ NULL, 0, "A PAC signature blob", HFILL }},
+ { &hf_krb_w2k_pac_entries, {
+ "Num Entries", "kerberos.pac.entries", FT_UINT32, BASE_DEC,
+ NULL, 0, "Number of W2k PAC entries", HFILL }},
+ { &hf_krb_w2k_pac_version, {
+ "Version", "kerberos.pac.version", FT_UINT32, BASE_DEC,
+ NULL, 0, "Version of PAC structures", HFILL }},
+ { &hf_krb_w2k_pac_type, {
+ "Type", "kerberos.pac.type", FT_UINT32, BASE_DEC,
+ VALS(w2k_pac_types), 0, "Type of W2k PAC entry", HFILL }},
+ { &hf_krb_w2k_pac_size, {
+ "Size", "kerberos.pac.size", FT_UINT32, BASE_DEC,
+ NULL, 0, "Size of W2k PAC entry", HFILL }},
+ { &hf_krb_w2k_pac_offset, {
+ "Offset", "kerberos.pac.offset", FT_UINT32, BASE_DEC,
+ NULL, 0, "Offset to W2k PAC entry", HFILL }},
+ { &hf_krb_pac_clientid, {
+ "ClientID", "kerberos.pac.clientid", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL,
+ NULL, 0, "ClientID Timestamp", HFILL }},
+ { &hf_krb_pac_namelen, {
+ "Name Length", "kerberos.pac.namelen", FT_UINT16, BASE_DEC,
+ NULL, 0, "Length of client name", HFILL }},
+ { &hf_krb_pac_clientname, {
+ "Name", "kerberos.pac.name", FT_STRING, BASE_NONE,
+ NULL, 0, "Name of the Client in the PAC structure", HFILL }},
+ { &hf_krb_pac_logon_info, {
+ "PAC_LOGON_INFO", "kerberos.pac_logon_info", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_LOGON_INFO structure", HFILL }},
+ { &hf_krb_pac_credential_type, {
+ "PAC_CREDENTIAL_TYPE", "kerberos.pac_credential_type", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_CREDENTIAL_TYPE structure", HFILL }},
+ { &hf_krb_pac_server_checksum, {
+ "PAC_SERVER_CHECKSUM", "kerberos.pac_server_checksum", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_SERVER_CHECKSUM structure", HFILL }},
+ { &hf_krb_pac_privsvr_checksum, {
+ "PAC_PRIVSVR_CHECKSUM", "kerberos.pac_privsvr_checksum", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_PRIVSVR_CHECKSUM structure", HFILL }},
+ { &hf_krb_pac_client_info_type, {
+ "PAC_CLIENT_INFO_TYPE", "kerberos.pac_client_info_type", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_CLIENT_INFO_TYPE structure", HFILL }},
+ { &hf_krb_pac_s4u_delegation_info, {
+ "PAC_S4U_DELEGATION_INFO", "kerberos.pac_s4u_delegation_info", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_S4U_DELEGATION_INFO structure", HFILL }},
+ { &hf_krb_pac_upn_dns_info, {
+ "UPN_DNS_INFO", "kerberos.pac_upn_dns_info", FT_BYTES, BASE_NONE,
+ NULL, 0, "UPN_DNS_INFO structure", HFILL }},
+ { &hf_krb_pac_upn_flags, {
+ "Flags", "kerberos.pac.upn.flags", FT_UINT32, BASE_HEX,
+ NULL, 0, "UPN flags", HFILL }},
+ { &hf_krb_pac_upn_dns_offset, {
+ "DNS Offset", "kerberos.pac.upn.dns_offset", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_dns_len, {
+ "DNS Len", "kerberos.pac.upn.dns_len", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_upn_offset, {
+ "UPN Offset", "kerberos.pac.upn.upn_offset", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_upn_len, {
+ "UPN Len", "kerberos.pac.upn.upn_len", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_upn_name, {
+ "UPN Name", "kerberos.pac.upn.upn_name", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_dns_name, {
+ "DNS Name", "kerberos.pac.upn.dns_name", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+#include "packet-kerberos-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_kerberos,
+ &ett_krb_recordmark,
+ &ett_krb_pac,
+ &ett_krb_pac_drep,
+ &ett_krb_pac_midl_blob,
+ &ett_krb_pac_logon_info,
+ &ett_krb_pac_s4u_delegation_info,
+ &ett_krb_pac_upn_dns_info,
+ &ett_krb_pac_server_checksum,
+ &ett_krb_pac_privsvr_checksum,
+ &ett_krb_pac_client_info_type,
+#include "packet-kerberos-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_kerberos_decrypted_keytype, { "kerberos.decrypted_keytype", PI_SECURITY, PI_CHAT, "Decryted keytype", EXPFILL }},
+ { &ei_kerberos_address, { "kerberos.address.unknown", PI_UNDECODED, PI_WARN, "KRB Address: I don't know how to parse this type of address yet", EXPFILL }},
+ { &ei_krb_gssapi_dlglen, { "kerberos.gssapi.dlglen.error", PI_MALFORMED, PI_ERROR, "DlgLen is not the same as number of bytes remaining", EXPFILL }},
+ };
+
+ expert_module_t* expert_krb;
+ module_t *krb_module;
+
+ proto_kerberos = proto_register_protocol("Kerberos", "KRB5", "kerberos");
+ proto_register_field_array(proto_kerberos, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_krb = expert_register_protocol(proto_kerberos);
+ expert_register_field_array(expert_krb, ei, array_length(ei));
+
+ /* Register preferences */
+ krb_module = prefs_register_protocol(proto_kerberos, kerberos_prefs_apply_cb);
+ prefs_register_bool_preference(krb_module, "desegment",
+ "Reassemble Kerberos over TCP messages spanning multiple TCP segments",
+ "Whether the Kerberos dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &krb_desegment);
+#ifdef HAVE_KERBEROS
+ prefs_register_bool_preference(krb_module, "decrypt",
+ "Try to decrypt Kerberos blobs",
+ "Whether the dissector should try to decrypt "
+ "encrypted Kerberos blobs. This requires that the proper "
+ "keytab file is installed as well.", &krb_decrypt);
+
+ prefs_register_filename_preference(krb_module, "file",
+ "Kerberos keytab file",
+ "The keytab file containing all the secrets",
+ &keytab_filename);
+#endif
+
+}
+static int wrap_dissect_gss_kerb(tvbuff_t *tvb, int offset, packet_info *pinfo,
+ proto_tree *tree, dcerpc_info *di _U_,guint8 *drep _U_)
+{
+ tvbuff_t *auth_tvb;
+
+ auth_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ dissect_kerberos_main(auth_tvb, pinfo, tree, FALSE, NULL);
+
+ return tvb_captured_length_remaining(tvb, offset);
+}
+
+
+static dcerpc_auth_subdissector_fns gss_kerb_auth_connect_fns = {
+ wrap_dissect_gss_kerb, /* Bind */
+ wrap_dissect_gss_kerb, /* Bind ACK */
+ wrap_dissect_gss_kerb, /* AUTH3 */
+ NULL, /* Request verifier */
+ NULL, /* Response verifier */
+ NULL, /* Request data */
+ NULL /* Response data */
+};
+
+static dcerpc_auth_subdissector_fns gss_kerb_auth_sign_fns = {
+ wrap_dissect_gss_kerb, /* Bind */
+ wrap_dissect_gss_kerb, /* Bind ACK */
+ wrap_dissect_gss_kerb, /* AUTH3 */
+ wrap_dissect_gssapi_verf, /* Request verifier */
+ wrap_dissect_gssapi_verf, /* Response verifier */
+ NULL, /* Request data */
+ NULL /* Response data */
+};
+
+static dcerpc_auth_subdissector_fns gss_kerb_auth_seal_fns = {
+ wrap_dissect_gss_kerb, /* Bind */
+ wrap_dissect_gss_kerb, /* Bind ACK */
+ wrap_dissect_gss_kerb, /* AUTH3 */
+ wrap_dissect_gssapi_verf, /* Request verifier */
+ wrap_dissect_gssapi_verf, /* Response verifier */
+ wrap_dissect_gssapi_payload, /* Request data */
+ wrap_dissect_gssapi_payload /* Response data */
+};
+
+
+
+void
+proto_reg_handoff_kerberos(void)
+{
+ dissector_handle_t kerberos_handle_tcp;
+
+ krb4_handle = find_dissector("krb4");
+
+ kerberos_handle_udp = create_dissector_handle(dissect_kerberos_udp,
+ proto_kerberos);
+
+ kerberos_handle_tcp = create_dissector_handle(dissect_kerberos_tcp,
+ proto_kerberos);
+
+ dissector_add_uint("udp.port", UDP_PORT_KERBEROS, kerberos_handle_udp);
+ dissector_add_uint("tcp.port", TCP_PORT_KERBEROS, kerberos_handle_tcp);
+
+ register_dcerpc_auth_subdissector(DCE_C_AUTHN_LEVEL_CONNECT,
+ DCE_C_RPC_AUTHN_PROTOCOL_GSS_KERBEROS,
+ &gss_kerb_auth_connect_fns);
+
+ register_dcerpc_auth_subdissector(DCE_C_AUTHN_LEVEL_PKT_INTEGRITY,
+ DCE_C_RPC_AUTHN_PROTOCOL_GSS_KERBEROS,
+ &gss_kerb_auth_sign_fns);
+
+ register_dcerpc_auth_subdissector(DCE_C_AUTHN_LEVEL_PKT_PRIVACY,
+ DCE_C_RPC_AUTHN_PROTOCOL_GSS_KERBEROS,
+ &gss_kerb_auth_seal_fns);
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 8
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * End:
+ *
+ * vi: set shiftwidth=8 tabstop=8 noexpandtab:
+ * :indentSize=8:tabSize=8:noTabs=false:
+ */
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.h b/epan/dissectors/asn1/kerberos/packet-kerberos-template.h
new file mode 100644
index 0000000000..4ed6a6e8cc
--- /dev/null
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.h
@@ -0,0 +1,145 @@
+/* packet-kerberos.h
+ * Routines for kerberos packet dissection
+ * Copyright 2007, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __PACKET_KERBEROS_H
+#define __PACKET_KERBEROS_H
+
+#include "ws_symbol_export.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* This is a list of callback functions a caller can use to specify that
+ octet strings in kerberos to be passed back to application specific
+ dissectors, outside of kerberos.
+ This is used for dissection of application specific data for PacketCable
+ KRB_SAFE user data and eventually to pass kerberos session keys
+ to future DCERPC decryption and other uses.
+ The list is terminated by {0, NULL }
+*/
+#define KRB_CBTAG_SAFE_USER_DATA 1
+#define KRB_CBTAG_PRIV_USER_DATA 2
+typedef struct _kerberos_callbacks {
+ int tag;
+ int (*callback)(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tree);
+} kerberos_callbacks;
+
+/* Function prototypes */
+
+gint
+dissect_kerberos_main(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean do_col_info, kerberos_callbacks *cb);
+
+int
+dissect_krb5_Checksum(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+
+int
+dissect_krb5_ctime(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+
+int dissect_krb5_cname(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+int dissect_krb5_realm(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+guint32 kerberos_output_keytype(void);
+
+guint get_krb_pdu_len(packet_info *, tvbuff_t *tvb, int offset, void *data _U_);
+
+gint kerberos_rm_to_reclen(guint krb_rm);
+
+void
+show_krb_recordmark(proto_tree *tree, tvbuff_t *tvb, gint start, guint32 krb_rm);
+
+#ifdef HAVE_KERBEROS
+#define KRB_MAX_ORIG_LEN 256
+
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+typedef struct _enc_key_t {
+ struct _enc_key_t *next;
+ int keytype;
+ int keylength;
+ char *keyvalue;
+ char key_origin[KRB_MAX_ORIG_LEN+1];
+ int fd_num; /* remember where we learned a key */
+} enc_key_t;
+extern enc_key_t *enc_key_list;
+
+guint8 *
+decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
+ int usage,
+ tvbuff_t *crypototvb,
+ int keytype,
+ int *datalen);
+
+#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
+
+extern gboolean krb_decrypt;
+
+WS_DLL_PUBLIC
+void read_keytab_file(const char *);
+
+WS_DLL_PUBLIC
+void read_keytab_file_from_preferences(void);
+
+#endif /* HAVE_KERBEROS */
+
+/* encryption type constants */
+#define KRB5_ENCTYPE_NULL 0
+#define KRB5_ENCTYPE_DES_CBC_CRC 1
+#define KRB5_ENCTYPE_DES_CBC_MD4 2
+#define KRB5_ENCTYPE_DES_CBC_MD5 3
+#define KRB5_ENCTYPE_DES_CBC_RAW 4
+#define KRB5_ENCTYPE_DES3_CBC_SHA 5
+#define KRB5_ENCTYPE_DES3_CBC_RAW 6
+#define KRB5_ENCTYPE_DES_HMAC_SHA1 8
+#define KRB5_ENCTYPE_DSA_SHA1_CMS 9
+#define KRB5_ENCTYPE_RSA_MD5_CMS 10
+#define KRB5_ENCTYPE_RSA_SHA1_CMS 11
+#define KRB5_ENCTYPE_RC2_CBC_ENV 12
+#define KRB5_ENCTYPE_RSA_ENV 13
+#define KRB5_ENCTYPE_RSA_ES_OEAP_ENV 14
+#define KRB5_ENCTYPE_DES_EDE3_CBC_ENV 15
+#define KRB5_ENCTYPE_DES3_CBC_SHA1 16
+#define KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96 17
+#define KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96 18
+#define KRB5_ENCTYPE_DES_CBC_MD5_NT 20
+#define KERB_ENCTYPE_RC4_HMAC 23
+#define KERB_ENCTYPE_RC4_HMAC_EXP 24
+#define KRB5_ENCTYPE_UNKNOWN 0x1ff
+#define KRB5_ENCTYPE_LOCAL_DES3_HMAC_SHA1 0x7007
+#define KRB5_ENCTYPE_RC4_PLAIN_EXP 0xffffff73
+#define KRB5_ENCTYPE_RC4_PLAIN 0xffffff74
+#define KRB5_ENCTYPE_RC4_PLAIN_OLD_EXP 0xffffff78
+#define KRB5_ENCTYPE_RC4_HMAC_OLD_EXP 0xffffff79
+#define KRB5_ENCTYPE_RC4_PLAIN_OLD 0xffffff7a
+#define KRB5_ENCTYPE_RC4_HMAC_OLD 0xffffff7b
+#define KRB5_ENCTYPE_DES_PLAIN 0xffffff7c
+#define KRB5_ENCTYPE_RC4_SHA 0xffffff7d
+#define KRB5_ENCTYPE_RC4_LM 0xffffff7e
+#define KRB5_ENCTYPE_RC4_PLAIN2 0xffffff7f
+#define KRB5_ENCTYPE_RC4_MD4 0xffffff80
+
+#include "packet-kerberos-exp.h"
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __PACKET_KERBEROS_H */
diff --git a/epan/dissectors/asn1/lcsap/CMakeLists.txt b/epan/dissectors/asn1/lcsap/CMakeLists.txt
new file mode 100644
index 0000000000..0a18a607a1
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/CMakeLists.txt
@@ -0,0 +1,61 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME lcsap )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ LCS-AP-CommonDataTypes.asn
+ LCS-AP-Constants.asn
+ LCS-AP-Containers.asn
+ LCS-AP-IEs.asn
+ LCS-AP-PDU-Contents.asn
+ LCS-AP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn b/epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..d0a130399b
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn
@@ -0,0 +1,30 @@
+-- ETSI TS 129 171 V11.1.0 (2012-03)
+-- 7.5.6 Common Definitions
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+LCS-AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-CommonDataTypes (3)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+ProtocolIE-ID ::= INTEGER (0..65535)
+
+TriggeringMessage ::= ENUMERATED {initiating-message, successful-outcome, unsuccessful-outcome, outcome}
+
+END
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn b/epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn
new file mode 100644
index 0000000000..5b7d854499
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn
@@ -0,0 +1,84 @@
+-- ETSI TS 129 171 V11.1.0 (2012-03)
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+LCS-AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-Constants (4)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+
+id-Location-Service-Request INTEGER ::= 0
+id-Connection-Oriented-Information-Transfer INTEGER ::= 1
+id-Connectionless-Information-Transfer INTEGER ::= 2
+id-Location-Abort INTEGER ::= 3
+id-Reset INTEGER ::= 4
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+
+id-Accuracy-Fulfillment-Indicator INTEGER ::= 0
+id-APDU INTEGER ::= 1
+id-Correlation-ID INTEGER ::= 2
+id-Destination-ID INTEGER ::= 3
+id-E-UTRAN-Cell-Identifier INTEGER ::= 4
+id-Include-Velocity INTEGER ::= 5
+id-IMEI INTEGER ::= 6
+id-IMSI INTEGER ::= 7
+id-LCS-Client-Type INTEGER ::= 8
+id-LCS-Priority INTEGER ::= 9
+id-LCS-QOS INTEGER ::= 10
+id-LCS-Cause INTEGER ::= 11
+id-Location-Estimate INTEGER ::= 12
+id-Location-Type INTEGER ::= 13
+id-MultipleAPDUs INTEGER ::= 14
+id-Payload-Type INTEGER ::= 15
+id-Positioning-Data INTEGER ::= 16
+id-Return-Error-Request INTEGER ::= 17
+id-Return-Error-Cause INTEGER ::= 18
+id-Source-Identity INTEGER ::= 19
+id-UE-Positioning-Capability INTEGER ::= 20
+id-Velocity-Estimate INTEGER ::= 21
+id-LCS-Service-Type-ID INTEGER ::= 22
+
+
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+
+max-No-Of-Points INTEGER ::= 15
+max-Set INTEGER ::= 9
+max-GNSS-Set INTEGER ::= 9
+
+
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+END
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn b/epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn
new file mode 100644
index 0000000000..00d0da6daf
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn
@@ -0,0 +1,116 @@
+-- ETSI TS 129 171 V9.2.0 (2010-10)
+--
+-- 7.5.8 Container Definitions
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+LCS-AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-Containers (5)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM LCS-AP-CommonDataTypes
+
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM LCS-AP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+LCS-AP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality DEFAULT ignore,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+LCS-AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality DEFAULT ignore,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {LCS-AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {LCS-AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id LCS-AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality LCS-AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value LCS-AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, LCS-AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {LCS-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {LCS-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id LCS-AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality LCS-AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue LCS-AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+
+END
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn b/epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn
new file mode 100644
index 0000000000..25a0b23027
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn
@@ -0,0 +1,517 @@
+-- ETSI TS 129 171 V11.1.0 (2012-03)
+--
+-- 7.5.5 Information element definitions
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+
+LCS-AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-IEs (2)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ max-No-Of-Points,
+ max-Set,
+ max-GNSS-Set
+FROM LCS-AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ TriggeringMessage,
+ ProtocolIE-ID
+FROM LCS-AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ LCS-AP-PROTOCOL-EXTENSION
+FROM LCS-AP-Containers;
+
+
+-- A
+
+
+APDU ::= OCTET STRING
+
+Accuracy-Fulfillment-Indicator ::= ENUMERATED {
+ requested-accuracy-fulfilled,
+ requested-accuracy-not-fulfilled,
+ ...
+}
+
+Altitude ::= INTEGER (0..65535)
+-- The valid value for this IE is 0 to 32767.
+-- Reception of value greater than 32767 shall be mapped to the value 32767.
+
+
+Altitude-And-Direction ::= SEQUENCE {
+ direction-Of-Altitude Direction-Of-Altitude,
+ altitude Altitude,
+ ...
+}
+
+Angle ::= INTEGER (0..179)
+
+-- B
+-- WS mod
+-- Bearing ::= INTEGER (0..359)
+
+
+-- C
+
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+Confidence ::= INTEGER (0..100)
+
+Correlation-ID ::= OCTET STRING (SIZE (4))
+
+
+-- D
+
+DegreesLatitude ::= INTEGER (0..8388607) -- 23 bit field
+
+DegreesLongitude ::= INTEGER (-8388608..8388607) -- 24 bit field
+
+Direction-Of-Altitude ::= ENUMERATED {
+ height,
+ depth
+}
+
+-- E
+
+E-CGI ::= SEQUENCE {
+ pLMNidentity PLMN-ID,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { { E-CGI-ExtIEs} } OPTIONAL,
+ ...}
+
+E-CGI-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Ellipsoid-Point-With-Uncertainty-Ellipse ::= SEQUENCE {
+ geographical-Coordinates Geographical-Coordinates,
+ uncertainty-Ellipse Uncertainty-Ellipse,
+ confidence Confidence,
+ iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Uncertainty-Ellipse-ExtIEs} } OPTIONAL,
+ ...}
+
+Ellipsoid-Point-With-Uncertainty-Ellipse-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Ellipsoid-Point-With-Altitude ::= SEQUENCE {
+ geographical-Coordinates Geographical-Coordinates,
+ altitude-And-Direction Altitude-And-Direction,
+ iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Altitude-ExtIEs} } OPTIONAL,
+ ...}
+
+Ellipsoid-Point-With-Altitude-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid ::= SEQUENCE {
+ geographical-Coordinates Geographical-Coordinates,
+ altitude-And-Direction Altitude-And-Direction,
+ uncertainty-Ellipse Uncertainty-Ellipse,
+ uncertainty-Altitude Uncertainty-Altitude,
+ confidence Confidence,
+ iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid-ExtIEs} } OPTIONAL,
+ ...}
+
+Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Ellipsoid-Arc ::= SEQUENCE {
+ geographical-Coordinates Geographical-Coordinates,
+ inner-Radius Inner-Radius,
+ uncertainty-Radius Uncertainty-Code,
+ offset-Angle Angle,
+ included-Angle Angle,
+ confidence Confidence,
+ iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Arc-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ellipsoid-Arc-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ENB-ID ::= CHOICE {
+ macro-eNB-ID Macro-eNB-ID,
+ home-eNB-ID Home-eNB-ID,
+ ...
+}
+
+
+
+E-SMLC-ID ::= INTEGER (0..255)
+
+
+-- F
+-- G
+
+Geographical-Area ::= CHOICE {
+ point Point,
+ point-With-Uncertainty Point-With-Uncertainty,
+ ellipsoidPoint-With-Uncertainty-Ellipse Ellipsoid-Point-With-Uncertainty-Ellipse,
+ polygon Polygon,
+ ellipsoid-Point-With-Altitude Ellipsoid-Point-With-Altitude,
+ ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid,
+ ellipsoid-Arc Ellipsoid-Arc,
+ ...
+}
+
+Geographical-Coordinates ::= SEQUENCE {
+ latitudeSign LatitudeSign,
+ degreesLatitude DegreesLatitude,
+ degreesLongitude DegreesLongitude,
+ iE-Extensions ProtocolExtensionContainer { {Geographical-Coordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Geographical-Coordinates-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Global-eNB-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ eNB-ID ENB-ID
+}
+
+
+GNSS-Positioning-Method-And-Usage ::= OCTET STRING (SIZE (1))
+
+GNSS-Positioning-Data-Set ::= SEQUENCE (SIZE (1..max-GNSS-Set)) OF GNSS-Positioning-Method-And-Usage
+
+
+-- H
+
+Home-eNB-ID ::= BIT STRING (SIZE (28))
+
+Horizontal-Accuracy ::= INTEGER (0..127)
+
+
+
+Horizontal-Speed-And-Bearing ::= SEQUENCE {
+ bearing INTEGER (0..359),
+ horizontal-Speed INTEGER (0..2047)
+}
+
+
+Horizontal-Velocity ::= SEQUENCE {
+ horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
+ iE-Extensions ProtocolExtensionContainer { { Horizontal-Velocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Horizontal-Velocity-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Horizontal-With-Vertical-Velocity ::= SEQUENCE {
+ horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
+ vertical-Velocity Vertical-Velocity,
+ iE-Extensions ProtocolExtensionContainer { { Horizontal-With-Vertical-Velocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Horizontal-With-Vertical-Velocity-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Horizontal-Velocity-With-Uncertainty ::= SEQUENCE {
+ horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
+ uncertainty-Speed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { Horizontal-Velocity-With-Uncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Horizontal-Velocity-With-Uncertainty-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Horizontal-With-Vertical-Velocity-And-Uncertainty ::= SEQUENCE {
+ horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
+ vertical-Velocity Vertical-Velocity,
+ horizontal-Uncertainty-Speed INTEGER (0..255),
+ vertical-Uncertainty-Speed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { Horizontal-With-Vertical-Velocity-And-Uncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Horizontal-With-Vertical-Velocity-And-Uncertainty-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- I
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+
+IMEI ::= OCTET STRING (SIZE (8))
+
+
+Include-Velocity ::= ENUMERATED {
+ requested,
+ not-Requested,
+...
+}
+
+
+Inner-Radius ::= INTEGER (0..65535) -- 16 bit field
+
+
+-- J
+-- K
+-- L
+
+LatitudeSign ::= ENUMERATED {
+ north,
+ south
+}
+
+
+Location-Type ::= ENUMERATED {
+ geographic-Information,
+ assistance-Information,
+ ...
+}
+
+LCS-Cause ::= CHOICE {
+radio-Network-Layer Radio-Network-Layer-Cause,
+transport-Layer Transport-Layer-Cause,
+protocol Protocol-Cause,
+misc Misc-Cause
+}
+
+
+LCS-Client-Type ::= ENUMERATED {
+ emergency-Services,
+ value-Added-Services,
+ pLMN-Operator-Services,
+ lawful-Intercept-Services,
+ pLMN-Operator-broadcast-Services,
+ pLMN-Operator-OM,
+ pLMN-Operator-Anonymous-Statistics,
+ pLMN-Operator-Target-MS-Service-Support,
+ ...
+}
+
+
+LCS-Priority ::= OCTET STRING (SIZE (1))
+
+
+LCS-QoS ::= SEQUENCE {
+ horizontal-Accuracy Horizontal-Accuracy OPTIONAL,
+ vertical-Requested Vertical-Requested OPTIONAL,
+ vertical-Accuracy Vertical-Accuracy OPTIONAL,
+ response-Time Response-Time OPTIONAL,
+ ...
+}
+
+LCS-Service-Type-ID ::= INTEGER (0..127)
+
+
+-- M
+
+Macro-eNB-ID ::= BIT STRING (SIZE (20))
+
+Message-Identifier ::= BIT STRING (SIZE (16))
+
+Misc-Cause ::= ENUMERATED {
+ processing-Overload,
+ hardware-Failure,
+ o-And-M-Intervention,
+ unspecified,
+...
+}
+
+MultipleAPDUs ::= SEQUENCE (SIZE (1.. 3)) OF APDU
+
+
+-- N
+
+Network-Element ::= CHOICE {
+global-eNB-ID Global-eNB-ID,
+e-SMLC-ID E-SMLC-ID
+}
+
+-- O
+
+Orientation-Major-Axis ::= INTEGER (0..89)
+
+-- P
+
+Payload-Type ::= ENUMERATED {
+lPP,
+lPPa,
+...
+}
+
+PLMN-ID ::= TBCD-STRING
+
+Point ::= SEQUENCE {
+ geographical-Coordinates Geographical-Coordinates,
+ iE-Extensions ProtocolExtensionContainer { {Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Point-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Point-With-Uncertainty ::= SEQUENCE {
+ geographical-Coordinates Geographical-Coordinates,
+ uncertainty-Code Uncertainty-Code,
+ iE-Extensions ProtocolExtensionContainer { {Point-With-Uncertainty-ExtIEs} } OPTIONAL,
+ ...}
+
+Point-With-Uncertainty-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Polygon ::= SEQUENCE (SIZE (1..max-No-Of-Points)) OF Polygon-Point
+
+
+Polygon-Point ::= SEQUENCE {
+ geographical-Coordinates Geographical-Coordinates,
+ iE-Extensions ProtocolExtensionContainer { {Polygon-Point-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Polygon-Point-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Positioning-Data ::= SEQUENCE {
+ positioning-Data-Set Positioning-Data-Set OPTIONAL,
+ gNSS-Positioning-Data-Set GNSS-Positioning-Data-Set OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Positioning-Data-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Positioning-Data-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Positioning-Data-Set ::= SEQUENCE (SIZE (1..max-Set)) OF Positioning-Method-And-Usage
+
+Positioning-Method-And-Usage ::= OCTET STRING (SIZE (1))
+
+Protocol-Cause ::= 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,
+...
+}
+
+-- Q
+-- R
+
+Radio-Network-Layer-Cause ::= ENUMERATED {
+unspecified,
+...
+}
+
+Response-Time ::= ENUMERATED {
+ low-Delay(0),
+ delay-Tolerant(1),
+...
+}
+
+Return-Error-Type ::= ENUMERATED {
+yes,
+no
+}
+
+Return-Error-Cause ::= ENUMERATED {
+system-Failure,
+protocol-Error,
+destination-Unknown,
+destination-Unreachable,
+congestion,
+...
+}
+
+-- S
+-- T
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+Transport-Layer-Cause ::= ENUMERATED {
+tranport-Resource-Unavailable,
+unspecified,
+...
+}
+
+-- U
+
+Uncertainty-Altitude ::= INTEGER (0..127)
+
+Uncertainty-Code ::= INTEGER (0..127)
+
+Uncertainty-Ellipse ::= SEQUENCE {
+ uncertainty-SemiMajor Uncertainty-Code,
+ uncertainty-SemiMinor Uncertainty-Code,
+ orientation-Major-Axis Orientation-Major-Axis
+}
+
+UE-Positioning-Capability ::= SEQUENCE {
+ lPP BOOLEAN,
+ ...
+}
+
+-- V
+
+Velocity-Estimate ::= CHOICE {
+ horizontal-Velocity Horizontal-Velocity,
+ horizontal-With-Vertical-Velocity Horizontal-With-Vertical-Velocity,
+ horizontal-Velocity-With-Uncertainty Horizontal-Velocity-With-Uncertainty,
+ horizontal-With-Vertical-Velocity-And-Uncertainty Horizontal-With-Vertical-Velocity-And-Uncertainty,
+ ...
+}
+
+Vertical-Requested ::= ENUMERATED {
+ vertical-coordinate-Is-Not-Requested(0),
+ vertical-coordinate-Is-Requested(1)
+}
+
+Vertical-Accuracy ::= INTEGER (0..127)
+
+Vertical-Velocity ::= SEQUENCE {
+ vertical-Speed INTEGER (0..255),
+ vertical-Speed-Direction Vertical-Speed-Direction
+}
+
+Vertical-Speed-Direction ::= ENUMERATED {
+ upward,
+ downward
+}
+
+
+-- W
+-- X
+-- Y
+
+END
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn b/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn
new file mode 100644
index 0000000000..5168d50c66
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn
@@ -0,0 +1,257 @@
+-- ETSI TS 129 171 V11.1.0 (2012-03)
+--
+-- 7.5.4 PDU definitions
+-- **************************************************************
+--
+-- PDU definitions for LCS-AP.
+--
+-- **************************************************************
+
+LCS-AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-PDU-Contents (1)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+
+ APDU,
+ Accuracy-Fulfillment-Indicator,
+ Correlation-ID,
+ E-CGI,
+ Geographical-Area,
+ IMSI,
+ IMEI,
+ Include-Velocity,
+ LCS-Cause,
+ LCS-Client-Type,
+ LCS-Service-Type-ID,
+ LCS-Priority,
+ LCS-QoS,
+ Location-Type,
+ MultipleAPDUs,
+ Network-Element,
+ Payload-Type,
+ Positioning-Data,
+ Return-Error-Type,
+ Return-Error-Cause,
+ UE-Positioning-Capability,
+ Velocity-Estimate
+FROM LCS-AP-IEs
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ LCS-AP-PROTOCOL-EXTENSION,
+ LCS-AP-PROTOCOL-IES
+FROM LCS-AP-Containers
+
+ id-Accuracy-Fulfillment-Indicator,
+ id-APDU,
+ id-Correlation-ID,
+ id-Destination-ID,
+ id-E-UTRAN-Cell-Identifier,
+ id-Include-Velocity,
+ id-IMEI,
+ id-IMSI,
+ id-LCS-Client-Type,
+ id-LCS-Priority,
+ id-LCS-QOS,
+ id-LCS-Cause,
+ id-LCS-Service-Type-ID,
+ id-Location-Estimate,
+ id-Location-Type,
+ id-MultipleAPDUs,
+ id-Payload-Type,
+ id-Positioning-Data,
+ id-Return-Error-Request,
+ id-Return-Error-Cause,
+ id-Source-Identity,
+ id-UE-Positioning-Capability,
+ id-Velocity-Estimate
+FROM LCS-AP-Constants;
+
+
+-- **************************************************************
+--
+-- Location-Request
+--
+-- **************************************************************
+
+Location-Request ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { Location-Request-IEs} },
+ protocolExtensions ProtocolExtensionContainer { { Location-Request-Extensions} } OPTIONAL,
+ ...
+}
+
+Location-Request-IEs LCS-AP-PROTOCOL-IES ::= {
+ { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
+ { ID id-Location-Type CRITICALITY reject TYPE Location-Type PRESENCE mandatory } |
+ { ID id-E-UTRAN-Cell-Identifier CRITICALITY ignore TYPE E-CGI PRESENCE mandatory } |
+ { ID id-LCS-Client-Type CRITICALITY reject TYPE LCS-Client-Type PRESENCE optional } |
+ { ID id-LCS-Priority CRITICALITY reject TYPE LCS-Priority PRESENCE optional } |
+ { ID id-LCS-QOS CRITICALITY reject TYPE LCS-QoS PRESENCE optional } |
+ { ID id-UE-Positioning-Capability CRITICALITY reject TYPE UE-Positioning-Capability PRESENCE optional } |
+ { ID id-Include-Velocity CRITICALITY reject TYPE Include-Velocity PRESENCE optional } |
+ { ID id-IMSI CRITICALITY ignore TYPE IMSI PRESENCE optional } |
+ { ID id-IMEI CRITICALITY ignore TYPE IMEI PRESENCE optional } |
+ { ID id-MultipleAPDUs CRITICALITY reject TYPE MultipleAPDUs PRESENCE optional } ,
+ ...
+}
+
+Location-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-LCS-Service-Type-ID CRITICALITY ignore EXTENSION LCS-Service-Type-ID PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Location-Response
+--
+-- **************************************************************
+
+Location-Response ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Location-Response-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Location-Response-Extensions} } OPTIONAL,
+ ...
+}
+
+Location-Response-IEs LCS-AP-PROTOCOL-IES ::= {
+ { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
+ { ID id-Location-Estimate CRITICALITY reject TYPE Geographical-Area PRESENCE optional } |
+ { ID id-Positioning-Data CRITICALITY reject TYPE Positioning-Data PRESENCE optional } |
+ { ID id-Velocity-Estimate CRITICALITY reject TYPE Velocity-Estimate PRESENCE optional } |
+ { ID id-Accuracy-Fulfillment-Indicator CRITICALITY reject TYPE Accuracy-Fulfillment-Indicator PRESENCE optional } |
+ { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE optional } ,
+...
+}
+
+
+Location-Response-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Location-Abort
+--
+-- **************************************************************
+
+Location-Abort-Request ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Location-Abort-Request-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Location-Abort-Request-Extensions} } OPTIONAL,
+ ...
+}
+
+Location-Abort-Request-IEs LCS-AP-PROTOCOL-IES ::= {
+ { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
+ { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE mandatory } ,
+ ...
+}
+
+Location-Abort-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Connection-Oriented-Information
+--
+-- **************************************************************
+
+Connection-Oriented-Information ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Connection-Oriented-Information-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Connection-Oriented-Information-Extensions} } OPTIONAL,
+ ...
+}
+
+Connection-Oriented-Information-IEs LCS-AP-PROTOCOL-IES ::= {
+ { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE optional } |
+ { ID id-Payload-Type CRITICALITY reject TYPE Payload-Type PRESENCE optional } |
+ { ID id-APDU CRITICALITY reject TYPE APDU PRESENCE optional } ,
+ ...
+}
+
+Connection-Oriented-Information-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Connectionless-Information
+--
+-- **************************************************************
+
+Connectionless-Information ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Connectionless-Information-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Connectionless-Information-Extensions} } OPTIONAL,
+ ...
+}
+
+Connectionless-Information-IEs LCS-AP-PROTOCOL-IES ::= {
+ { ID id-Source-Identity CRITICALITY reject TYPE Network-Element PRESENCE mandatory } |
+ { ID id-Destination-ID CRITICALITY reject TYPE Network-Element PRESENCE mandatory } |
+ { ID id-APDU CRITICALITY reject TYPE APDU PRESENCE mandatory } |
+ { ID id-Return-Error-Request CRITICALITY reject TYPE Return-Error-Type PRESENCE optional } |
+ { ID id-Return-Error-Cause CRITICALITY ignore TYPE Return-Error-Cause PRESENCE optional } ,
+ ...
+}
+
+
+Connectionless-Information-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset-Request
+--
+-- **************************************************************
+
+Reset-Request ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Reset-Request-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Reset-Request-Extensions} } OPTIONAL,
+ ...
+}
+
+Reset-Request-IEs LCS-AP-PROTOCOL-IES ::= {
+ { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE mandatory } ,
+ ...
+}
+
+
+Reset-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset-Acknowledge
+--
+-- **************************************************************
+
+Reset-Acknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { Reset-Acknowledge-IEs} },
+ protocolExtensions ProtocolExtensionContainer { { Reset-Acknowledge-Extensions} } OPTIONAL,
+ ...
+}
+
+Reset-Acknowledge-IEs LCS-AP-PROTOCOL-IES ::= {
+ ...
+}
+
+Reset-Acknowledge-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+END
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn b/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..b4bb9dfdac
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn
@@ -0,0 +1,167 @@
+-- ETSI TS 129 171 V11.1.0 (2012-03)
+--
+-- 7.5.3 Elementary procedure definitions
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+LCS-AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-PDU-Descriptions (0)}
+
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM LCS-AP-CommonDataTypes
+
+ Location-Request,
+ Location-Response,
+ Location-Abort-Request,
+ Connection-Oriented-Information,
+ Connectionless-Information,
+ Reset-Request,
+ Reset-Acknowledge
+FROM LCS-AP-PDU-Contents
+
+ id-Location-Service-Request,
+ id-Connection-Oriented-Information-Transfer,
+ id-Connectionless-Information-Transfer,
+ id-Location-Abort,
+ id-Reset
+FROM LCS-AP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+LCS-AP-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
+--
+-- **************************************************************
+
+LCS-AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
+ criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value LCS-AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
+ criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value LCS-AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
+ criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value LCS-AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+LCS-AP-ELEMENTARY-PROCEDURES LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ LCS-AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ LCS-AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+LCS-AP-ELEMENTARY-PROCEDURES-CLASS-1 LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ location-Service-Request |
+ connectionless-Information-Transfer |
+ location-Abort |
+ reset ,
+ ...
+}
+
+
+
+LCS-AP-ELEMENTARY-PROCEDURES-CLASS-2 LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ connection-Oriented-Information-Transfer ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+
+location-Service-Request LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Location-Request
+ SUCCESSFUL OUTCOME Location-Response
+ UNSUCCESSFUL OUTCOME Location-Response
+ PROCEDURE CODE id-Location-Service-Request
+ CRITICALITY reject
+}
+
+connection-Oriented-Information-Transfer LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Connection-Oriented-Information
+ PROCEDURE CODE id-Connection-Oriented-Information-Transfer
+ CRITICALITY reject
+}
+
+connectionless-Information-Transfer LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Connectionless-Information
+ UNSUCCESSFUL OUTCOME Connectionless-Information
+ PROCEDURE CODE id-Connectionless-Information-Transfer
+ CRITICALITY reject
+}
+
+location-Abort LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Location-Abort-Request
+ SUCCESSFUL OUTCOME Location-Response
+ PROCEDURE CODE id-Location-Abort
+ CRITICALITY reject
+}
+
+reset LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset-Request
+ SUCCESSFUL OUTCOME Reset-Acknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+END
diff --git a/epan/dissectors/asn1/lcsap/Makefile.am b/epan/dissectors/asn1/lcsap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/lcsap/Makefile.common b/epan/dissectors/asn1/lcsap/Makefile.common
new file mode 100644
index 0000000000..cbe0507317
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/Makefile.common
@@ -0,0 +1,56 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=lcsap
+
+#DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ LCS-AP-CommonDataTypes.asn\
+ LCS-AP-Constants.asn\
+ LCS-AP-Containers.asn\
+ LCS-AP-IEs.asn\
+ LCS-AP-PDU-Contents.asn\
+ LCS-AP-PDU-Descriptions.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS=
+
+EXTRA_CNF= \
+ $(builddir)/../x509if/x509if-exp.cnf
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd ../x509if && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/lcsap/Makefile.nmake b/epan/dissectors/asn1/lcsap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/lcsap/lcsap.cnf b/epan/dissectors/asn1/lcsap/lcsap.cnf
new file mode 100644
index 0000000000..69514c3c5d
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/lcsap.cnf
@@ -0,0 +1,324 @@
+# lcsap.cnf
+# lcsap conformation file
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.EXPORTS
+Correlation-ID_PDU
+
+#.PDU
+LCS-AP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.NO_EMIT
+TBCD-STRING
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+Presence
+
+TriggeringMessage
+ProtocolIE-ContainerList
+Message-Identifier
+
+#.END
+
+
+#.TYPE_RENAME
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+
+ProtocolExtensionField/id ext_id
+
+#PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lcsap_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+#.END
+
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS Payload-Type VAL_PTR=&PayloadType
+
+# LCSAP connectionless-transfer
+# procedures, which according to 3GPP TS 29.171 LCS-AP, can only contain an LPPa
+# payload within the APDU IE of the procedure.
+
+#.FN_HDR Connectionless-Information
+
+ PayloadType = 1; /* LPPa */
+
+#.FN_BODY APDU VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (parameter_tvb) {
+ switch (PayloadType) {
+ case 0:
+ /* LPP */
+ if (lpp_handle) {
+ call_dissector(lpp_handle, parameter_tvb, %(ACTX)s->pinfo, tree);
+ }
+ break;
+ case 1:
+ /* LPPa */
+ if (lppa_handle) {
+ call_dissector(lppa_handle, parameter_tvb, %(ACTX)s->pinfo, tree);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ PayloadType = -1;
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+
+ {
+ guint8 tmp = tvb_get_guint8(tvb, 0);
+
+ if (tmp == 0)
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%sReq",
+ val_to_str(ProcedureCode, lcsap_ProcedureCode_vals, "unknown message"));
+ else if (tmp == 32)
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%sResp",
+ val_to_str(ProcedureCode, lcsap_ProcedureCode_vals, "unknown message"));
+ else
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
+ val_to_str(ProcedureCode, lcsap_ProcedureCode_vals, "unknown message"));
+ }
+
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, LCS-AP-PROTOCOL-IES : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-Container {{IEsSetParam}}
+
+
+#.END
+
+
+# Currently not used
+# FN_PARS ProtocolIE-ContainerPairList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerPairList
+# static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, 0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
+# END
+
+# following construction is not supported by asn2wrs
+# PLMN-ID ::= TBCD-STRING (SIZE (3))
+# TBCD-STRING ::= OCTET STRING
+# 3GPP TS 29.171 version 10.3.0 Release 10
+# 7.4.27 PLMN Identity
+#.FN_BODY PLMN-ID VAL_PTR = parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_tree *subtree;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+ if(tvb_reported_length(tvb)==0)
+ return offset;
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lcsap_plmnd_id);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, TRUE);
+#.END
+
+#.FN_BODY Positioning-Method-And-Usage VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ proto_tree_add_item(tree, hf_lcsap_pos_method, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_lcsap_pos_usage, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+
+
+#.FN_BODY GNSS-Positioning-Method-And-Usage VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ proto_tree_add_item(tree, hf_lcsap_gnss_pos_method, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_lcsap_gnss_id, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_lcsap_gnss_pos_usage, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+
+#
+# Code copied from packet-gsm_a_common.c
+#.FN_BODY Uncertainty-Code VAL_PTR = &uncertainty_code
+ guint32 uncertainty_code;
+
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 127U, &uncertainty_code, FALSE);
+
+ proto_item_append_text(actx->created_item, " (%.1f m)", 10 * (pow(1.1, (double)uncertainty_code) - 1));
+
+#.FN_BODY DegreesLatitude VAL_PTR = &degrees
+ gint32 degrees;
+
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 8388607U, &degrees, FALSE);
+
+ proto_item_append_text(actx->created_item, " (%.5f degrees)", (((double)degrees/8388607) * 90));
+
+#.FN_BODY DegreesLongitude VAL_PTR = &degrees
+ gint32 degrees;
+
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -8388608, 8388607U, &degrees, FALSE);
+
+ proto_item_append_text(actx->created_item, " (%.5f degrees)", (((double)degrees/16777215) * 360));
+
+#.FN_BODY IMSI VAL_PTR=&imsi_tvb
+ tvbuff_t *imsi_tvb;
+%(DEFAULT_BODY)s
+ if (imsi_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lcsap_imsi);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, tvb_reported_length(imsi_tvb), FALSE);
+ }
+
+#.FN_BODY Horizontal-Accuracy VAL_PTR=&uncertainty_code
+ guint32 uncertainty_code;
+%(DEFAULT_BODY)s
+
+#.FN_FTR Horizontal-Accuracy
+ proto_item_append_text(actx->created_item, " (%.1f m)", 10 * (pow(1.1, (double)uncertainty_code) - 1));
+
+#.FN_BODY Vertical-Accuracy VAL_PTR=&vertical_uncertainty
+ guint32 vertical_uncertainty;
+%(DEFAULT_BODY)s
+
+#.FN_FTR Vertical-Accuracy
+ proto_item_append_text(actx->created_item, " (%.1f m)", 45 * (pow(1.025, (double)vertical_uncertainty) - 1));
+
+#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(lcsap_ProtocolIE_ID_vals)
+#.ASSIGN_VALUE_TO_TYPE # LCSAP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+id-Location-Service-Request ProcedureCode
+id-Connection-Oriented-Information-Transfer ProcedureCode
+id-Connectionless-Information-Transfer ProcedureCode
+id-Location-Abort ProcedureCode
+id-Reset ProcedureCode
+
+# ProtocolIE-ID
+id-Correlation-ID ProtocolIE-ID
+id-Location-Type ProtocolIE-ID
+id-E-UTRAN-Cell-Identifier ProtocolIE-ID
+id-LCS-Client-Type ProtocolIE-ID
+id-LCS-Priority ProtocolIE-ID
+id-LCS-QOS ProtocolIE-ID
+id-UE-Positioning-Capability ProtocolIE-ID
+id-Include-Velocity ProtocolIE-ID
+id-IMSI ProtocolIE-ID
+id-IMEI ProtocolIE-ID
+id-MultipleAPDUs ProtocolIE-ID
+id-Positioning-Data ProtocolIE-ID
+id-Velocity-Estimate ProtocolIE-ID
+id-Accuracy-Fulfillment-Indicator ProtocolIE-ID
+id-LCS-Cause ProtocolIE-ID
+id-Payload-Type ProtocolIE-ID
+id-Return-Error-Cause ProtocolIE-ID
+id-APDU ProtocolIE-ID
+id-Return-Error-Request ProtocolIE-ID
+id-Location-Estimate ProtocolIE-ID
+id-Source-Identity ProtocolIE-ID
+id-Destination-ID ProtocolIE-ID
+id-LCS-Service-Type-ID ProtocolIE-ID
+
+
+#.REGISTER
+
+#LCS-AP-PROTOCOL-IES
+Accuracy-Fulfillment-Indicator N lcsap.ies id-Accuracy-Fulfillment-Indicator
+APDU N lcsap.ies id-APDU
+Correlation-ID N lcsap.ies id-Correlation-ID
+Network-Element N lcsap.ies id-Destination-ID
+E-CGI N lcsap.ies id-E-UTRAN-Cell-Identifier
+Include-Velocity N lcsap.ies id-Include-Velocity
+IMEI N lcsap.ies id-IMEI
+IMSI N lcsap.ies id-IMSI
+LCS-Client-Type N lcsap.ies id-LCS-Client-Type
+LCS-Priority N lcsap.ies id-LCS-Priority
+LCS-QoS N lcsap.ies id-LCS-QOS
+LCS-Cause N lcsap.ies id-LCS-Cause
+Geographical-Area N lcsap.ies id-Location-Estimate
+Location-Type N lcsap.ies id-Location-Type
+MultipleAPDUs N lcsap.ies id-MultipleAPDUs
+Payload-Type N lcsap.ies id-Payload-Type
+Positioning-Data N lcsap.ies id-Positioning-Data
+Return-Error-Type N lcsap.ies id-Return-Error-Request
+Return-Error-Cause N lcsap.ies id-Return-Error-Cause
+Network-Element N lcsap.ies id-Source-Identity
+UE-Positioning-Capability N lcsap.ies id-UE-Positioning-Capability
+Velocity-Estimate N lcsap.ies id-Velocity-Estimate
+
+#LCS-AP-PROTOCOL-EXTENSION
+LCS-Service-Type-ID N lcsap.extension id-LCS-Service-Type-ID
+
+
+
+
+Location-Request N lcsap.proc.imsg id-Location-Service-Request
+Location-Response N lcsap.proc.sout id-Location-Service-Request
+Location-Response N lcsap.proc.uout id-Location-Service-Request
+
+Connection-Oriented-Information N lcsap.proc.imsg id-Connection-Oriented-Information-Transfer
+
+Connectionless-Information N lcsap.proc.imsg id-Connectionless-Information-Transfer
+Connectionless-Information N lcsap.proc.uout id-Connectionless-Information-Transfer
+
+Location-Abort-Request N lcsap.proc.imsg id-Location-Abort
+Location-Response N lcsap.proc.sout id-Location-Abort
+
+Reset-Request N lcsap.proc.imsg id-Reset
+Reset-Acknowledge N lcsap.proc.sout id-Reset
+
+
+
+#.TYPE_ATTR
+BitRate TYPE = FT_UINT64 DISPLAY = BASE_DEC STRINGS = NULL
+#.END
diff --git a/epan/dissectors/asn1/lcsap/packet-lcsap-template.c b/epan/dissectors/asn1/lcsap/packet-lcsap-template.c
new file mode 100644
index 0000000000..9206c92fa0
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/packet-lcsap-template.c
@@ -0,0 +1,347 @@
+/* packet-lcsap.c
+ * Routines for LCS-AP packet dissembly.
+ *
+ * Copyright (c) 2011 by Spenser Sheng <spenser.sheng@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1999 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References:
+ * ETSI TS 129 171 V9.2.0 (2010-10)
+ */
+
+#include "config.h"
+
+#include <math.h>
+
+#include <epan/packet.h>
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+#include <epan/sctpppids.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-e212.h"
+#include "packet-sccp.h"
+#include "packet-lcsap.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "LCS Application Protocol"
+#define PSNAME "LCSAP"
+#define PFNAME "lcsap"
+
+void proto_register_lcsap(void);
+void proto_reg_handoff_lcsap(void);
+
+static dissector_handle_t lpp_handle;
+static dissector_handle_t lppa_handle;
+
+#define SCTP_PORT_LCSAP 9082
+#include "packet-lcsap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_lcsap = -1;
+
+static int hf_lcsap_pos_method = -1;
+static int hf_lcsap_pos_usage = -1;
+static int hf_lcsap_gnss_pos_method = -1;
+static int hf_lcsap_gnss_id = -1;
+static int hf_lcsap_gnss_pos_usage = -1;
+#include "packet-lcsap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_lcsap = -1;
+static int ett_lcsap_plmnd_id = -1;
+static int ett_lcsap_imsi = -1;
+
+#include "packet-lcsap-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint32 ProtocolExtensionID;
+static guint32 PayloadType = -1;
+static guint gbl_lcsapSctpPort=SCTP_PORT_LCSAP;
+
+/* Dissector tables */
+static dissector_table_t lcsap_ies_dissector_table;
+
+static dissector_table_t lcsap_extension_dissector_table;
+static dissector_table_t lcsap_proc_imsg_dissector_table;
+static dissector_table_t lcsap_proc_sout_dissector_table;
+static dissector_table_t lcsap_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+
+/* 7.4.13 Positioning Data
+ * Coding of positioning method (bits 8-4)
+ */
+static const value_string lcsap_pos_method_vals[] = {
+ { 0x00, "Cell ID" },
+ { 0x01, "Reserved" },
+ { 0x02, "E-CID" },
+ { 0x03, "Reserved" },
+ { 0x04, "OTDOA" },
+ { 0x05, "Reserved" },
+ { 0x06, "Reserved" },
+ { 0x07, "Reserved" },
+ { 0x08, "U-TDOA" },
+ { 0x09, "Reserved" },
+ { 0x0a, "Reserved" },
+ { 0x0b, "Reserved" },
+ { 0x0c, "Reserved for other location technologies" },
+ { 0x0d, "Reserved for other location technologies" },
+ { 0x0e, "Reserved for other location technologies" },
+ { 0x0f, "Reserved for other location technologies" },
+ { 0x10, "Reserved for network specific positioning methods" },
+ { 0x11, "Reserved for network specific positioning methods" },
+ { 0x12, "Reserved for network specific positioning methods" },
+ { 0x13, "Reserved for network specific positioning methods" },
+ { 0x14, "Reserved for network specific positioning methods" },
+ { 0x15, "Reserved for network specific positioning methods" },
+ { 0x16, "Reserved for network specific positioning methods" },
+ { 0x17, "Reserved for network specific positioning methods" },
+ { 0x18, "Reserved for network specific positioning methods" },
+ { 0x19, "Reserved for network specific positioning methods" },
+ { 0x1a, "Reserved for network specific positioning methods" },
+ { 0x1b, "Reserved for network specific positioning methods" },
+ { 0x1c, "RReserved for network specific positioning methods" },
+ { 0x1d, "Reserved for network specific positioning methods" },
+ { 0x1e, "Reserved for network specific positioning methods" },
+ { 0x0f, "Reserved for network specific positioning methods" },
+ { 0, NULL }
+};
+
+/* Coding of usage (bits 3-1)*/
+static const value_string lcsap_pos_usage_vals[] = {
+ { 0x00, "Attempted unsuccessfully due to failure or interruption - not used" },
+ { 0x01, "Attempted successfully: results not used to generate location - not used." },
+ { 0x02, "Attempted successfully: results used to verify but not generate location - not used." },
+ { 0x03, "Attempted successfully: results used to generate location" },
+ { 0x04, "Attempted successfully: case where UE supports multiple mobile based positioning methods and the actual method or methods used by the UE cannot be determined." },
+ { 0x05, "Reserved" },
+ { 0x06, "Reserved" },
+ { 0x07, "Reserved" },
+ { 0, NULL }
+};
+
+/* Coding of Method (Bits 8-7) */
+static const value_string lcsap_gnss_pos_method_vals[] = {
+ { 0x00, "UE-Based" },
+ { 0x01, "UE-Assisted" },
+ { 0x02, "Conventional" },
+ { 0x03, "Reserved" },
+ { 0, NULL }
+};
+
+/* Coding of GNSS ID (Bits 6-4) */
+static const value_string lcsap_gnss_id_vals[] = {
+ { 0x00, "GPS" },
+ { 0x01, "Galileo" },
+ { 0x02, "SBAS" },
+ { 0x03, "Modernized GPS" },
+ { 0x04, "QZSS" },
+ { 0x05, "GLONASS" },
+ { 0x06, "Reserved" },
+ { 0x07, "Reserved" },
+ { 0, NULL }
+};
+
+/* Coding of usage (bits 3- 1) */
+static const value_string lcsap_gnss_pos_usage_vals[] = {
+ { 0x00, "Attempted unsuccessfully due to failure or interruption" },
+ { 0x01, "Attempted successfully: results not used to generate location" },
+ { 0x02, "Attempted successfully: results used to verify but not generate location" },
+ { 0x03, "Attempted successfully: results used to generate location" },
+ { 0x04, "Attempted successfully: case where UE supports multiple mobile based positioning methods and the actual method or methods used by the UE cannot be determined." },
+ { 0x05, "Reserved" },
+ { 0x06, "Reserved" },
+ { 0x07, "Reserved" },
+ { 0, NULL }
+};
+
+
+#include "packet-lcsap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lcsap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lcsap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lcsap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lcsap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lcsap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int
+dissect_lcsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *lcsap_item = NULL;
+ proto_tree *lcsap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LCSAP");
+
+ /* create the lcsap protocol tree */
+ lcsap_item = proto_tree_add_item(tree, proto_lcsap, tvb, 0, -1, ENC_NA);
+ lcsap_tree = proto_item_add_subtree(lcsap_item, ett_lcsap);
+
+ dissect_LCS_AP_PDU_PDU(tvb, pinfo, lcsap_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_reg_handoff_lcsap ---------------------------------------*/
+void
+proto_reg_handoff_lcsap(void)
+{
+ static gboolean Initialized=FALSE;
+ static dissector_handle_t lcsap_handle;
+ static guint SctpPort;
+
+ if (!Initialized) {
+ lcsap_handle = find_dissector("lcsap");
+ lpp_handle = find_dissector("lpp");
+ lppa_handle = find_dissector("lppa");
+ dissector_add_for_decode_as("sctp.port", lcsap_handle); /* for "decode-as" */
+ dissector_add_uint("sctp.ppi", LCS_AP_PAYLOAD_PROTOCOL_ID, lcsap_handle);
+ Initialized=TRUE;
+#include "packet-lcsap-dis-tab.c"
+ } else {
+ if (SctpPort != 0) {
+ dissector_delete_uint("sctp.port", SctpPort, lcsap_handle);
+ }
+ }
+
+ SctpPort=gbl_lcsapSctpPort;
+ if (SctpPort != 0) {
+ dissector_add_uint("sctp.port", SctpPort, lcsap_handle);
+ }
+}
+
+/*--- proto_register_lcsap -------------------------------------------*/
+void proto_register_lcsap(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ /* 7.4.13 Positioning Data */
+ { &hf_lcsap_pos_method,
+ { "Positioning Method", "lcsap.pos_method",
+ FT_UINT8, BASE_DEC, VALS(lcsap_pos_method_vals), 0xf8,
+ NULL, HFILL }
+ },
+ { &hf_lcsap_pos_usage,
+ { "Positioning usage", "lcsap.pos_usage",
+ FT_UINT8, BASE_DEC, VALS(lcsap_pos_usage_vals), 0x07,
+ NULL, HFILL }
+ },
+ { &hf_lcsap_gnss_pos_method,
+ { "GNSS Positioning Method", "lcsap.gnss_pos_method",
+ FT_UINT8, BASE_DEC, VALS(lcsap_gnss_pos_method_vals), 0xc0,
+ NULL, HFILL }
+ },
+ { &hf_lcsap_gnss_id,
+ { "GNSS ID", "lcsap.gnss_id",
+ FT_UINT8, BASE_DEC, VALS(lcsap_gnss_id_vals), 0x38,
+ NULL, HFILL }
+ },
+ { &hf_lcsap_gnss_pos_usage,
+ { "GNSS Positioning usage", "lcsap.gnss_pos_usage",
+ FT_UINT8, BASE_DEC, VALS(lcsap_gnss_pos_usage_vals), 0x07,
+ NULL, HFILL }
+ },
+
+#include "packet-lcsap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_lcsap,
+ &ett_lcsap_plmnd_id,
+ &ett_lcsap_imsi,
+#include "packet-lcsap-ettarr.c"
+ };
+
+ module_t *lcsap_module;
+
+ /* Register protocol */
+ proto_lcsap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_lcsap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ register_dissector("lcsap", dissect_lcsap, proto_lcsap);
+
+ /* Register dissector tables */
+ lcsap_ies_dissector_table = register_dissector_table("lcsap.ies", "LCS-AP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+
+ lcsap_extension_dissector_table = register_dissector_table("lcsap.extension", "LCS-AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ lcsap_proc_imsg_dissector_table = register_dissector_table("lcsap.proc.imsg", "LCS-AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ lcsap_proc_sout_dissector_table = register_dissector_table("lcsap.proc.sout", "LCS-AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ lcsap_proc_uout_dissector_table = register_dissector_table("lcsap.proc.uout", "LCS-AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ /* Register configuration options for ports */
+ lcsap_module = prefs_register_protocol(proto_lcsap, proto_reg_handoff_lcsap);
+
+ prefs_register_uint_preference(lcsap_module, "sctp.port",
+ "LCSAP SCTP Port",
+ "Set the SCTP port for LCSAP messages",
+ 10,
+ &gbl_lcsapSctpPort);
+
+}
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/lcsap/packet-lcsap-template.h b/epan/dissectors/asn1/lcsap/packet-lcsap-template.h
new file mode 100644
index 0000000000..374dbc0754
--- /dev/null
+++ b/epan/dissectors/asn1/lcsap/packet-lcsap-template.h
@@ -0,0 +1,32 @@
+/* packet-lcsap.c
+ * Routines for LCS-AP packet dissembly.
+ *
+ * Copyright (c) 2011 by Spenser Sheng <spenser.sheng@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1999 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References:
+ * ETSI TS 129 171 V9.2.0 (2010-10)
+ */
+
+#ifndef PACKET_LCSAP_H
+#define PACKET_LCSAP_H
+
+#include "packet-lcsap-exp.h"
+
+#endif /* PACKET_LCSAP_H */
diff --git a/epan/dissectors/asn1/ldap/CMakeLists.txt b/epan/dissectors/asn1/ldap/CMakeLists.txt
new file mode 100644
index 0000000000..24a4992fa9
--- /dev/null
+++ b/epan/dissectors/asn1/ldap/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ldap )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ Lightweight-Directory-Access-Protocol-V3.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn b/epan/dissectors/asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn
new file mode 100644
index 0000000000..9059eea9ec
--- /dev/null
+++ b/epan/dissectors/asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn
@@ -0,0 +1,540 @@
+-- Module Lightweight-Directory-Access-Protocol-V3 (RFC 2251:12/1997)
+Lightweight-Directory-Access-Protocol-V3
+--
+-- This is based on the ASN.1 definitions in RFC 2251, with changes made
+-- as necessary for Wireshark.
+-- Copyright (C) The Internet Society (1997). This version of
+-- this ASN.1 module is part of RFC 2251;
+-- see the RFC itself for full legal notices.
+--
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+LDAPMessage ::= SEQUENCE {
+ messageID MessageID,
+ protocolOp ProtocolOp,
+ controls [0] Controls OPTIONAL
+}
+
+MessageID ::= INTEGER(0..maxInt)
+
+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
+ }
+
+
+maxInt INTEGER ::= 2147483647 -- (2^^31 - 1)
+
+LDAPString ::= OCTET STRING
+
+LDAPOID ::= OCTET STRING
+
+LDAPDN ::= LDAPString
+
+RelativeLDAPDN ::= LDAPString
+
+AttributeType ::= LDAPString
+
+AttributeDescription ::= LDAPString
+
+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), 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),
+ canceled(118), noSuchOperation(119), tooLate(120), cannotCancel(121) -- RFC 3909
+ },
+ -- 81-90 reserved for APIs
+ matchedDN LDAPDN,
+ errorMessage ErrorMessage,
+ referral [3] Referral OPTIONAL
+}
+
+Referral ::= SEQUENCE OF LDAPURL
+
+LDAPURL ::= OCTET STRING -- LDAPString - - limited to characters permitted in URLs
+
+Controls ::= SEQUENCE OF Control
+
+Control ::= SEQUENCE {
+ controlType ControlType,
+ criticality BOOLEAN DEFAULT FALSE,
+ controlValue OCTET STRING OPTIONAL
+}
+
+ControlType ::= LDAPOID
+
+BindRequest ::= [APPLICATION 0] SEQUENCE {
+ version INTEGER(1..127),
+ name LDAPDN,
+ authentication AuthenticationChoice
+}
+
+AuthenticationChoice ::= CHOICE {
+ simple [0] Simple,
+ -- 1 and 2 reserved
+ sasl [3] SaslCredentials,
+ -- 10,11 from bug 1148
+ ntlmsspNegotiate [10] IMPLICIT OCTET STRING,
+ ntlmsspAuth [11] IMPLICIT OCTET STRING
+}
+
+Simple ::= OCTET STRING
+
+SaslCredentials ::= SEQUENCE {
+ mechanism Mechanism,
+ credentials Credentials OPTIONAL
+}
+
+--4.1.2. String Types
+--
+-- The LDAPString is a notational convenience to indicate that, although
+-- strings of LDAPString type encode as OCTET STRING types, the ISO
+-- 10646 [13] character set (a superset of Unicode) is used, encoded
+-- following the UTF-8 algorithm [14]. Note that in the UTF-8 algorithm
+-- characters which are the same as ASCII (0x0000 through 0x007F) are
+-- represented as that same ASCII character in a single byte. The other
+-- byte values are used to form a variable-length encoding of an
+-- arbitrary character.
+
+-- Mechanism ::= LDAPString
+Mechanism ::= OCTET STRING
+
+Credentials ::= OCTET STRING
+
+BindResponse ::= [APPLICATION 1] SEQUENCE {
+-- COMPONENTS OF LDAPResult,
+ 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), 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),
+ canceled(118), noSuchOperation(119), tooLate(120), cannotCancel(121) -- RFC 3909
+ },
+ -- 81-90 reserved for APIs
+ matchedDN LDAPDN,
+ errorMessage ErrorMessage,
+ referral [3] Referral OPTIONAL,
+
+-- end of components
+ serverSaslCreds [7] ServerSaslCreds OPTIONAL
+}
+
+ServerSaslCreds ::= OCTET STRING
+
+ErrorMessage ::= LDAPString
+
+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
+}
+
+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
+
+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,
+ 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), 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),
+ canceled(118), noSuchOperation(119), tooLate(120), cannotCancel(121) -- RFC 3909
+ },
+ -- 81-90 reserved for APIs
+ matchedDN LDAPDN,
+ errorMessage ErrorMessage,
+ referral [3] Referral OPTIONAL,
+-- end of COMPONENTS
+ responseName [10] ResponseName OPTIONAL,
+ response [11] OCTET STRING OPTIONAL
+}
+
+IntermediateResponse ::= [APPLICATION 25] SEQUENCE {
+ responseName [0] ResponseName OPTIONAL,
+ responseValue [1] OCTET STRING OPTIONAL
+}
+
+ResponseName ::= LDAPOID
+
+-- RFC 2696 - Simple Paged Results Manipulation
+
+SearchControlValue ::= SEQUENCE {
+ size INTEGER --(0..maxInt)--,
+ -- requested page size from client
+ -- result set size estimate from server
+ cookie OCTET STRING
+}
+
+-- RFC 2891 - Server Side Sorting of Search Results
+
+SortKeyList ::= SEQUENCE OF SEQUENCE {
+ attributeType AttributeDescription,
+ orderingRule [0] MatchingRuleId OPTIONAL,
+ reverseOrder [1] BOOLEAN DEFAULT FALSE }
+
+SortResult ::= SEQUENCE {
+ sortResult ENUMERATED {
+ success (0), -- results are sorted
+ operationsError (1), -- server internal failure
+ timeLimitExceeded (3), -- timelimit reached before
+ -- sorting was completed
+ strongAuthRequired (8), -- refused to return sorted
+ -- results via insecure
+ -- protocol
+ adminLimitExceeded (11), -- too many matching entries
+ -- for the server to sort
+ noSuchAttribute (16), -- unrecognized attribute
+ -- type in sort key
+ inappropriateMatching (18), -- unrecognized or
+ -- inappropriate matching
+ -- rule in sort key
+ insufficientAccessRights (50), -- refused to return sorted
+ -- results to this client
+ busy (51), -- too busy to process
+ unwillingToPerform (53), -- unable to sort
+ other (80)
+ },
+ attributeType [0] AttributeDescription OPTIONAL }
+
+
+-- Draft RFC - but used in some implementations
+-- Normaly it's an integer but we want to generate a subitem
+DirSyncFlagsSubEntry ::= SEQUENCE {
+ value [0] INTEGER
+}
+
+DirSyncFlags ::= INTEGER
+
+DirSyncControlValue ::= SEQUENCE {
+ flags DirSyncFlags,
+ maxBytes INTEGER,
+ cookie OCTET STRING
+}
+
+-- RFC 3062
+
+--passwdModifyOID OBJECT IDENTIFIER ::= 1.3.6.1.4.1.4203.1.11.1
+
+PasswdModifyRequestValue ::= SEQUENCE {
+ userIdentity [0] OCTET STRING OPTIONAL,
+ oldPasswd [1] OCTET STRING OPTIONAL,
+ newPasswd [2] OCTET STRING OPTIONAL
+}
+
+PasswdModifyResponseValue ::= SEQUENCE {
+ genPasswd [0] OCTET STRING OPTIONAL
+}
+
+-- RFC 3909
+
+--cancelRequestOID OBJECT IDENTIFIER ::= 1.3.6.1.1.8
+
+CancelRequestValue ::= SEQUENCE {
+ cancelID MessageID
+}
+
+-- RFC 4533
+
+--syncRequestOID OBJECT IDENTIFIER ::= 1.3.6.1.4.1.4203.1.9.1.1
+
+SyncRequestValue ::= SEQUENCE {
+ mode ENUMERATED {
+ -- 0 unused
+ refreshOnly (1),
+ -- 2 reserved
+ refreshAndPersist (3)
+ },
+ cookie OCTET STRING OPTIONAL, -- SyncCookie OPTIONAL
+ reloadHint BOOLEAN DEFAULT FALSE
+}
+
+--syncStateOID OBJECT IDENTIFIER ::= 1.3.6.1.4.1.4203.1.9.1.2
+
+SyncStateValue ::= SEQUENCE {
+ state ENUMERATED {
+ present (0),
+ add (1),
+ modify (2),
+ delete (3)
+ },
+ entryUUID SyncUUID,
+ cookie OCTET STRING OPTIONAL -- SyncCookie OPTIONAL
+}
+
+--syncDoneOID OBJECT IDENTIFIER ::= 1.3.6.1.4.1.4203.1.9.1.3
+
+SyncDoneValue ::= SEQUENCE {
+ cookie OCTET STRING OPTIONAL, -- SyncCookie OPTIONAL
+ refreshDeletes BOOLEAN DEFAULT FALSE
+}
+
+--syncInfoOID OBJECT IDENTIFIER ::= 1.3.6.1.4.1.4203.1.9.1.4
+
+SyncInfoValue ::= CHOICE {
+ newcookie [0] OCTET STRING, -- SyncCookie
+ refreshDelete [1] SEQUENCE {
+ cookie OCTET STRING OPTIONAL, -- SyncCookie OPTIONAL
+ refreshDone BOOLEAN DEFAULT TRUE
+ },
+ refreshPresent [2] SEQUENCE {
+ cookie OCTET STRING OPTIONAL, -- SyncCookie OPTIONAL
+ refreshDone BOOLEAN DEFAULT TRUE
+ },
+ syncIdSet [3] SEQUENCE {
+ cookie OCTET STRING OPTIONAL, -- SyncCookie OPTIONAL
+ refreshDeletes BOOLEAN DEFAULT FALSE,
+ syncUUIDs SET OF SyncUUID
+ }
+}
+
+SyncUUID ::= OCTET STRING(SIZE(16))
+
+-- SyncCookie ::= OCTET STRING
+
+--
+
+-- Draft RFC - Password Policy for LDAP Directories
+-- https://opends.dev.java.net/public/standards/draft-behera-ldap-password-policy.txt
+
+PasswordPolicyResponseValue ::= SEQUENCE {
+ warning [0] CHOICE {
+ timeBeforeExpiration [0] INTEGER (0 .. maxInt),
+ graceAuthNsRemaining [1] INTEGER (0 .. maxInt) } OPTIONAL,
+ error [1] ENUMERATED {
+ passwordExpired (0),
+ accountLocked (1),
+ changeAfterReset (2),
+ passwordModNotAllowed (3),
+ mustSupplyOldPassword (4),
+ insufficientPasswordQuality (5),
+ passwordTooShort (6),
+ passwordTooYoung (7),
+ passwordInHistory (8) } OPTIONAL }
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/ldap/Makefile.am b/epan/dissectors/asn1/ldap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ldap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ldap/Makefile.common b/epan/dissectors/asn1/ldap/Makefile.common
new file mode 100644
index 0000000000..fbfb84f248
--- /dev/null
+++ b/epan/dissectors/asn1/ldap/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=ldap
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = Lightweight-Directory-Access-Protocol-V3.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/ldap/Makefile.nmake b/epan/dissectors/asn1/ldap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ldap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ldap/ldap.cnf b/epan/dissectors/asn1/ldap/ldap.cnf
new file mode 100644
index 0000000000..344dfaa935
--- /dev/null
+++ b/epan/dissectors/asn1/ldap/ldap.cnf
@@ -0,0 +1,811 @@
+# ldap.cnf
+# LDAP conformation file
+# Copyright 2005 Anders Broman
+
+#.OMIT_ASSIGNMENT
+DirSyncFlagsSubEntry
+PasswdModifyResponseValue
+
+#.PDU
+
+#.TYPE_RENAME
+
+BindResponse/_untag/resultCode BindResponse_resultCode
+ExtendedResponse/_untag/resultCode ExtendedResponse_resultCode
+ModifyRequest/_untag/modification ModifyRequest_modification
+
+#.FIELD_RENAME
+BindResponse/_untag/resultCode bindResponse_resultCode
+ExtendedResponse/_untag/resultCode extendedResponse_resultCode
+SearchRequest/_untag/attributes searchRequest_attributes
+SearchResultEntry/_untag/attributes searchResultEntry_attributes
+ModifyRequest/_untag/modification modifyRequest_modification
+SubstringFilter/substrings substringFilter_substrings
+BindResponse/_untag/matchedDN bindResponse_matchedDN
+IntermediateResponse/_untag/responseValue intermediateResponse_responseValue
+
+#.TYPE_ATTR
+LDAPString TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+LDAPURL TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+LDAPOID TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+Mechanism TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+AssertionValue TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+DirSyncFlags TYPE = FT_UINT32 DISPLAY = BASE_HEX STRINGS = NULL
+
+#.REGISTER
+SearchControlValue B "1.2.840.113556.1.4.319" "pagedResultsControl"
+SortKeyList B "1.2.840.113556.1.4.473" "sortKeyList"
+SortResult B "1.2.840.113556.1.4.474" "sortResult"
+DirSyncControlValue B "1.2.840.113556.1.4.841" "dirsync"
+#RFC 3062
+PasswdModifyRequestValue B "1.3.6.1.4.1.4203.1.11.1" "passwdModifyOID"
+#RFC 3909
+CancelRequestValue B "1.3.6.1.1.8" "cancelRequestOID"
+#RFC 4533
+SyncRequestValue B "1.3.6.1.4.1.4203.1.9.1.1" "syncRequestOID"
+SyncStateValue B "1.3.6.1.4.1.4203.1.9.1.2" "syncStateOID"
+SyncDoneValue B "1.3.6.1.4.1.4203.1.9.1.3" "syncDoneOID"
+SyncInfoValue B "1.3.6.1.4.1.4203.1.9.1.4" "syncInfoOID"
+# Draft RFC - Password Policy for LDAP Directories
+PasswordPolicyResponseValue B "1.3.6.1.4.1.42.2.27.8.5.1" "passwordPolicy"
+
+#.FN_FTR LDAPURL
+ PROTO_ITEM_SET_URL(actx->created_item);
+
+#.FN_HDR LDAPOID
+
+ tvbuff_t *parameter_tvb;
+ const gchar *name;
+ ldap_conv_info_t *ldap_info = (ldap_conv_info_t *)actx->private_data;
+
+#.FN_PARS LDAPOID VAL_PTR = &parameter_tvb
+
+#.FN_FTR LDAPOID
+
+ object_identifier_id = NULL;
+
+ if (!parameter_tvb)
+ return offset;
+
+ object_identifier_id = tvb_get_string_enc(wmem_packet_scope(), parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), ENC_UTF_8|ENC_NA);
+ name = oid_resolved_from_string(wmem_packet_scope(), object_identifier_id);
+
+ if(name){
+ proto_item_append_text(actx->created_item, " (%s)", name);
+
+ if((hf_index == hf_ldap_requestName) || (hf_index == hf_ldap_responseName)) {
+ ldap_do_protocolop(actx->pinfo);
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", name);
+ }
+ }
+
+ /* Has the client requested the Start TLS operation? */
+ if (ldap_info && hf_index == hf_ldap_requestName &&
+ !strcmp(object_identifier_id, "1.3.6.1.4.1.1466.20037")) {
+ /* remember we have asked to start_tls */
+ ldap_info->start_tls_pending = TRUE;
+ }
+
+#.FN_BODY MessageID VAL_PTR = &MessageID
+
+ %(DEFAULT_BODY)s
+
+ ldm_tree = tree;
+
+#.FN_PARS ProtocolOp VAL_PTR = &ProtocolOp
+
+#.FN_HDR ProtocolOp
+
+ ldap_call_response_t *lcrp;
+ ldap_conv_info_t *ldap_info = (ldap_conv_info_t *)actx->private_data;
+ do_protocolop = TRUE;
+
+#.FN_FTR ProtocolOp
+
+ if (ProtocolOp == -1) {
+ return offset;
+ }
+
+ /* ProtocolOp is the index, not the tag so convert it to the tag value */
+ ProtocolOp = ldap_ProtocolOp_vals[ProtocolOp].value;
+
+ lcrp=ldap_match_call_response(tvb, actx->pinfo, tree, MessageID, ProtocolOp, ldap_info);
+ if(lcrp){
+ tap_queue_packet(ldap_tap, actx->pinfo, lcrp);
+ }
+
+ /* XXX: the count will not work if the results span multiple TCP packets */
+
+ if(ldap_info) { /* only count once */
+ switch(ProtocolOp) {
+
+ case LDAP_RES_SEARCH_ENTRY:
+ if (!actx->pinfo->fd->flags.visited)
+ ldap_info->num_results++;
+
+ proto_item_append_text(tree, " [%d result%s]",
+ ldap_info->num_results, ldap_info->num_results == 1 ? "" : "s");
+
+ break;
+
+ case LDAP_RES_SEARCH_RESULT:
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [%d result%s]",
+ ldap_info->num_results, ldap_info->num_results == 1 ? "" : "s");
+
+ proto_item_append_text(tree, " [%d result%s]",
+ ldap_info->num_results, ldap_info->num_results == 1 ? "" : "s");
+
+ break;
+ default:
+ break;
+ }
+ }
+
+
+#.FN_BODY Simple
+ldap_conv_info_t *ldap_info;
+
+%(DEFAULT_BODY)s
+
+ ldap_info = (ldap_conv_info_t *)actx->private_data;
+ ldap_info->auth_type = LDAP_AUTH_SIMPLE;
+
+#.FN_BODY Mechanism VAL_PTR = &parameter_tvb
+
+ldap_conv_info_t *ldap_info;
+tvbuff_t *parameter_tvb;
+char *mechanism = NULL;
+%(DEFAULT_BODY)s
+ ldap_info = (ldap_conv_info_t *)actx->private_data;
+ ldap_info->auth_type = LDAP_AUTH_SASL;
+
+ if (!parameter_tvb)
+ return offset;
+
+ /*
+ * We need to remember the authentication type and mechanism for this
+ * conversation.
+ *
+ * XXX - actually, we might need to remember more than one
+ * type and mechanism, if you can unbind and rebind with a
+ * different type and/or mechanism.
+ */
+ if(!actx->pinfo->fd->flags.visited) {
+ mechanism = tvb_get_string_enc(NULL, parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), ENC_UTF_8|ENC_NA);
+ ldap_info->first_auth_frame = 0; /* not known until we see the bind reply */
+ /*
+ * If the mechanism in this request is an empty string (which is
+ * returned as a null pointer), use the saved mechanism instead.
+ * Otherwise, if the saved mechanism is an empty string (null),
+ * save this mechanism.
+ */
+ if (mechanism != NULL) {
+ g_free(ldap_info->auth_mech);
+ ldap_info->auth_mech = mechanism;
+ }
+ }
+#.FN_BODY Credentials VAL_PTR = &parameter_tvb
+
+tvbuff_t *parameter_tvb;
+ldap_conv_info_t *ldap_info;
+gint8 ber_class;
+gboolean pc;
+gint32 tag;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ ldap_info = (ldap_conv_info_t *)actx->private_data;
+ get_ber_identifier(parameter_tvb, 0, &ber_class, &pc, &tag);
+
+ /*if ((ldap_info->auth_mech != NULL) && (strcmp(ldap_info->auth_mech, "GSS-SPNEGO") == 0) && (ber_class==BER_CLASS_CON)) {*/
+ if ((ldap_info->auth_mech != NULL) && (ber_class==BER_CLASS_CON)) {
+ /*
+ * This is a GSS-API token ancapsulated within GSS-SPNEGO.
+ * We need to check the first byte to check whether the blob
+ * contains SPNEGO or GSSAPI.
+ * All SPNEGO PDUs are of class CONSTRUCTED while
+ * GSS PDUs are class APPLICATION
+ */
+ if (parameter_tvb && (tvb_reported_length(parameter_tvb) > 0))
+ call_dissector(spnego_handle, parameter_tvb, actx->pinfo, tree);
+ }
+ /*if ((ldap_info->auth_mech != NULL) && ((strcmp(ldap_info->auth_mech, "GSSAPI") == 0) || (ber_class==BER_CLASS_APP))) {*/
+ if ((ldap_info->auth_mech != NULL) && (ber_class==BER_CLASS_APP)) {
+ /*
+ * This is a raw GSS-API token.
+ */
+ if (parameter_tvb && (tvb_reported_length(parameter_tvb) > 0)) {
+ call_dissector(gssapi_handle, parameter_tvb, actx->pinfo, tree);
+ }
+ }
+ /* Restore private data */
+ actx->private_data = ldap_info;
+
+
+#.FN_BODY ServerSaslCreds VAL_PTR = &parameter_tvb
+
+tvbuff_t *parameter_tvb = NULL;
+ldap_conv_info_t *ldap_info;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ ldap_info = (ldap_conv_info_t *)actx->private_data;
+ switch (ldap_info->auth_type) {
+
+ /* For Kerberos V4, dissect it as a ticket. */
+ /* XXX - what about LDAP_AUTH_SIMPLE? */
+
+ case LDAP_AUTH_SASL:
+ /*
+ * All frames after this are assumed to use a security layer.
+ *
+ * XXX - won't work if there's another reply, with the security
+ * layer, starting in the same TCP segment that ends this
+ * reply, but as LDAP is a request/response protocol, and
+ * as the client probably can't start using authentication until
+ * it gets the bind reply and the server won't send a reply until
+ * it gets a request, that probably won't happen.
+ *
+ * XXX - that assumption is invalid; it's not clear where the
+ * hell you find out whether there's any security layer. In
+ * one capture, we have two GSS-SPNEGO negotiations, both of
+ * which select MS KRB5, and the only differences in the tokens
+ * is in the RC4-HMAC ciphertext. The various
+ * draft-ietf--cat-sasl-gssapi-NN.txt drafts seem to imply
+ * that the RFC 2222 spoo with the bitmask and maximum
+ * output message size stuff is done - but where does that
+ * stuff show up? Is it in the ciphertext, which means it's
+ * presumably encrypted?
+ *
+ * Grrr. We have to do a gross heuristic, checking whether the
+ * putative LDAP message begins with 0x00 or not, making the
+ * assumption that we won't have more than 2^24 bytes of
+ * encapsulated stuff.
+ */
+ ldap_info->first_auth_frame = actx->pinfo->num + 1;
+ if (ldap_info->auth_mech != NULL &&
+ strcmp(ldap_info->auth_mech, "GSS-SPNEGO") == 0) {
+ /* It could be the second leg of GSS-SPNEGO wrapping NTLMSSP
+ * which might not be wrapped in GSS-SPNEGO but be a raw
+ * NTLMSSP blob
+ */
+ if ( (tvb_reported_length(parameter_tvb)>=7)
+ && (!tvb_memeql(parameter_tvb, 0, "NTLMSSP", 7))){
+ call_dissector(ntlmssp_handle, parameter_tvb, actx->pinfo, tree);
+ break;
+ }
+ /*
+ * This is a GSS-API token.
+ */
+ if(parameter_tvb && (tvb_reported_length(parameter_tvb) > 0))
+ call_dissector(spnego_handle, parameter_tvb, actx->pinfo, tree);
+ } else if (ldap_info->auth_mech != NULL &&
+ strcmp(ldap_info->auth_mech, "GSSAPI") == 0) {
+ /*
+ * This is a GSS-API token.
+ */
+ if(parameter_tvb && (tvb_reported_length(parameter_tvb) > 0))
+ call_dissector(gssapi_handle, parameter_tvb, actx->pinfo, tree);
+ }
+ break;
+ }
+ actx->private_data = ldap_info;
+
+#.FN_BODY LDAPString VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+ const char *ldapstring = NULL;
+ gchar *sc = NULL; /* semi-colon pointer */
+
+ %(DEFAULT_BODY)s
+
+ if (parameter_tvb || (hf_index == hf_ldap_baseObject)) {
+
+ ldap_do_protocolop(actx->pinfo);
+
+ if(parameter_tvb)
+ ldapstring = tvb_get_string_enc(wmem_packet_scope(), parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb, 0), ENC_UTF_8|ENC_NA);
+
+ if(hf_index == hf_ldap_baseObject) {
+ /* this is search - put it on the scanline */
+ if(!ldapstring || !*ldapstring)
+ ldapstring = "<ROOT>";
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "\"%%s\" ", ldapstring);
+
+ if(ldm_tree)
+ proto_item_append_text(ldm_tree, " \"%%s\"", ldapstring);
+
+
+ if(!parameter_tvb) {
+
+ proto_item_append_text(actx->created_item, " (%%s)", ldapstring);
+ }
+
+ } else if ((hf_index == hf_ldap_errorMessage) && ldapstring && *ldapstring) { /* only show message if not success */
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "(%%s) ", ldapstring);
+
+ if(ldm_tree)
+ proto_item_append_text(ldm_tree, " (%%s)", ldapstring);
+
+ } else if ((hf_index == hf_ldap_objectName) ||
+ (hf_index == hf_ldap_name) ||
+ (hf_index == hf_ldap_entry) ||
+ (hf_index == hf_ldap_object) ||
+ (hf_index == hf_ldap_delRequest) ) {
+
+ if(!ldapstring || !*ldapstring)
+ ldapstring = "<ROOT>";
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "\"%%s\" ", ldapstring);
+
+ if(ldm_tree)
+ proto_item_append_text(ldm_tree, " \"%%s\"", ldapstring);
+ } else if (hf_index == hf_ldap_attributeDesc){
+ /* remember the attribute description */
+ attributedesc_string=ldapstring;
+ } else if (hf_index == hf_ldap_initial){
+ /* remember the substring item */
+ substring_item_init=ldapstring;
+ } else if (hf_index == hf_ldap_any){
+ /* remember the substring item */
+ substring_item_any=ldapstring;
+ } else if (hf_index == hf_ldap_final){
+ /* remember the substring item */
+ substring_item_final=ldapstring;
+ } else if (hf_index == hf_ldap_matchingRule){
+ /* remember the matching rule */
+ matching_rule_string=ldapstring;
+ } else if (hf_index == hf_ldap_present){
+ /* remember the present name */
+ Filter_string=ldapstring;
+ } else if (hf_index == hf_ldap_type) {
+ /* remember attribute type name */
+ attr_type = wmem_strdup(wmem_packet_scope(), ldapstring);
+
+ /* append it to the parent entry */
+ proto_item_append_text(tree, " %%s", attr_type);
+
+ /* remove the ";binary" component if present */
+ if((sc = strchr(attr_type, ';')) != NULL) {
+ if(!strcmp(sc, ";binary")) {
+ *sc = '\0'; /* terminate the string */
+ is_binary_attr_type = TRUE;
+ }
+ } else {
+ is_binary_attr_type = FALSE;
+ }
+
+ }
+
+ }
+
+#.FN_BODY SearchRequest/_untag/scope VAL_PTR = &scope
+
+ guint32 scope = 0xffff;
+ const gchar *valstr;
+
+ %(DEFAULT_BODY)s
+
+ ldap_do_protocolop(actx->pinfo);
+
+ valstr = val_to_str(scope, ldap_T_scope_vals, "Unknown scope(%%u)");
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s ", valstr);
+
+ if(ldm_tree)
+ proto_item_append_text(ldm_tree, " %%s", valstr);
+
+#.FN_BODY LDAPResult/resultCode VAL_PTR = &result
+
+ const gchar *valstr;
+
+ %(DEFAULT_BODY)s
+
+ ldap_do_protocolop(actx->pinfo);
+
+ valstr = val_to_str(result, ldap_T_resultCode_vals, "Unknown result(%%u)");
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s ", valstr);
+
+ if(ldm_tree)
+ proto_item_append_text(ldm_tree, " %%s", valstr);
+
+
+#.FN_BODY BindResponse/_untag/resultCode VAL_PTR = &result
+
+ const gchar *valstr;
+
+ %(DEFAULT_BODY)s
+
+ ldap_do_protocolop(actx->pinfo);
+
+ valstr = val_to_str(result, ldap_BindResponse_resultCode_vals, "Unknown result(%%u)");
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s ", valstr);
+
+ if(ldm_tree)
+ proto_item_append_text(ldm_tree, " %%s", valstr);
+
+#.FN_BODY ExtendedResponse/_untag/resultCode
+ guint32 resultCode;
+ ldap_conv_info_t *ldap_info = (ldap_conv_info_t *)actx->private_data;
+
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &resultCode);
+ /* If Start TLS request was sent and resultCode is success... */
+ if (ldap_info && ldap_info->start_tls_pending &&
+ hf_index == hf_ldap_extendedResponse_resultCode && resultCode == 0) {
+ /* The conversation will continue using SSL */
+ ssl_starttls_ack(find_dissector("ssl"), actx->pinfo, ldap_handle);
+ ldap_info->start_tls_pending = FALSE;
+ }
+
+
+#.FN_BODY AttributeValue
+
+ tvbuff_t *next_tvb = NULL;
+ gchar *string;
+ guint32 i, len;
+ int old_offset = offset;
+ gint *hf_id;
+
+ /* attr_type, should be set before calling this function */
+
+ /* extract the value of the octetstring */
+ offset = dissect_ber_octet_string(FALSE, actx, NULL, tvb, offset, hf_index, &next_tvb);
+
+ /* first check if we have a custom attribute type configured */
+ if ((hf_id = get_hf_for_header (attr_type)) != NULL)
+ proto_tree_add_item (tree, *hf_id, next_tvb, 0, tvb_reported_length_remaining(next_tvb, 0), ENC_UTF_8|ENC_NA);
+
+ /* if we have an attribute type that isn't binary see if there is a better dissector */
+ else if(!attr_type || !next_tvb || !dissector_try_string(ldap_name_dissector_table, attr_type, next_tvb, actx->pinfo, tree, NULL)) {
+ offset = old_offset;
+
+ /* do the default thing */
+ %(DEFAULT_BODY)s
+
+ len = tvb_reported_length_remaining(next_tvb, 0);
+
+ for(i = 0; i < len; i++)
+ if(!g_ascii_isprint(tvb_get_guint8(next_tvb, i)))
+ break;
+
+ if(i == len) {
+ string = tvb_get_string_enc(wmem_packet_scope(), next_tvb, 0, tvb_reported_length_remaining(next_tvb, 0), ENC_ASCII|ENC_NA);
+ proto_item_set_text(actx->created_item, "AttributeValue: %%s", string);
+ }
+ }
+
+#.FN_BODY AuthenticationChoice VAL_PTR = &branch
+ gint branch = -1;
+ gint auth = -1;
+ const gchar *valstr;
+
+ %(DEFAULT_BODY)s
+
+ ldap_do_protocolop(actx->pinfo);
+
+ if((branch > -1) && (branch < (gint)(sizeof AuthenticationChoice_choice/sizeof AuthenticationChoice_choice[0])))
+ auth = AuthenticationChoice_choice[branch].value;
+
+ valstr = val_to_str(auth, ldap_AuthenticationChoice_vals, "Unknown auth(%%u)");
+
+ /* If auth is NTLM (10 or 11) don't add to column as the NTLM dissection will do this */
+ if ((auth != 10) && (auth != 11))
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s ", valstr);
+
+ if(ldm_tree)
+ proto_item_append_text(ldm_tree, " %%s", valstr);
+
+
+#.FN_BODY UnbindRequest
+
+ implicit_tag = TRUE; /* correct problem with asn2wrs */
+
+ %(DEFAULT_BODY)s
+
+ ldap_do_protocolop(actx->pinfo);
+
+
+
+
+
+#.FN_HDR SearchRequest/_untag/filter
+ Filter_string=NULL;
+ Filter_elements = 0;
+ Filter_length = 0;
+
+#.FN_FTR SearchRequest/_untag/filter
+ Filter_string=NULL;
+ and_filter_string=NULL;
+ Filter_elements = 0;
+ Filter_length = 0;
+
+#.FN_FTR Filter/equalityMatch
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s=%s)",
+ string_or_null(attributedesc_string),
+ string_or_null(ldapvalue_string));
+
+
+#.FN_FTR Filter/greaterOrEqual
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s>=%s)",
+ string_or_null(attributedesc_string),
+ string_or_null(ldapvalue_string));
+
+
+#.FN_FTR Filter/lessOrEqual
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s<=%s)",
+ string_or_null(attributedesc_string),
+ string_or_null(ldapvalue_string));
+
+
+#.FN_FTR Filter/approxMatch
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s~=%s)",
+ string_or_null(attributedesc_string),
+ string_or_null(ldapvalue_string));
+
+#.FN_FTR Filter/and/_item
+ if(and_filter_string){
+ and_filter_string=wmem_strdup_printf(wmem_packet_scope(), "(&%s%s)",and_filter_string,Filter_string);
+ } else {
+ and_filter_string=Filter_string;
+ }
+
+#.FN_BODY Filter/and
+ proto_tree *tr=NULL;
+ proto_item *it=NULL;
+ const char *old_and_filter_string=and_filter_string;
+
+ and_filter_string=NULL;
+
+ tr=proto_tree_add_subtree(tree, tvb, offset, -1, ett_ldap_T_and, &it, "and: ");
+ tree = tr;
+
+%(DEFAULT_BODY)s
+
+ if(and_filter_string) {
+ proto_item_append_text(it, "%%s", and_filter_string);
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "%%s",and_filter_string);
+ }
+ and_filter_string=old_and_filter_string;
+
+#.FN_FTR Filter/or/_item
+ if(or_filter_string){
+ or_filter_string=wmem_strdup_printf(wmem_packet_scope(), "(|%s%s)",or_filter_string,Filter_string);
+ } else {
+ or_filter_string=Filter_string;
+ }
+
+
+#.FN_BODY Filter/or
+ proto_tree *tr;
+ proto_item *it;
+ const char *old_or_filter_string=or_filter_string;
+
+ or_filter_string=NULL;
+ tr=proto_tree_add_subtree(tree, tvb, offset, -1, ett_ldap_T_or, &it, "or: ");
+ tree = tr;
+
+%(DEFAULT_BODY)s
+ if(or_filter_string) {
+ proto_item_append_text(it, "%%s", or_filter_string);
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "%%s",or_filter_string);
+ }
+ or_filter_string=old_or_filter_string;
+
+#.FN_FTR Filter/present
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s=*)",string_or_null(Filter_string));
+
+#.FN_FTR Filter/not
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(!%s)",string_or_null(Filter_string));
+
+#.FN_BODY MatchingRuleAssertion/dnAttributes
+ gboolean val;
+
+offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, &val);
+
+
+ matching_rule_dnattr = val;
+
+
+#.FN_HDR Filter/extensibleMatch
+ attr_type=NULL;
+ matching_rule_string=NULL;
+ ldapvalue_string=NULL;
+ matching_rule_dnattr=FALSE;
+
+#.FN_FTR Filter/extensibleMatch
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s:%s%s%s=%s)",
+ (attr_type?attr_type:""),
+ (matching_rule_dnattr?"dn:":""),
+ (matching_rule_string?matching_rule_string:""),
+ (matching_rule_string?":":""),
+ string_or_null(ldapvalue_string));
+
+#.FN_FTR SubstringFilter/substrings/_item
+ if (substring_item_final) {
+ substring_value=wmem_strdup_printf(wmem_packet_scope(), "%s%s",
+ (substring_value?substring_value:"*"),
+ substring_item_final);
+ } else if (substring_item_any) {
+ substring_value=wmem_strdup_printf(wmem_packet_scope(), "%s%s*",
+ (substring_value?substring_value:"*"),
+ substring_item_any);
+ } else if (substring_item_init) {
+ substring_value=wmem_strdup_printf(wmem_packet_scope(), "%s*",
+ substring_item_init);
+ }
+
+#.FN_BODY SubstringFilter
+ proto_tree *tr;
+ proto_item *it;
+ const char *old_substring_value=substring_value;
+
+ attr_type=NULL;
+ substring_value=NULL;
+ substring_item_init=NULL;
+ substring_item_any=NULL;
+ substring_item_final=NULL;
+
+ tr=proto_tree_add_subtree(tree, tvb, offset, -1, ett_ldap_SubstringFilter, &it, "substring: ");
+ tree = tr;
+
+%(DEFAULT_BODY)s
+ Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%%s=%%s)",
+ string_or_null(attr_type),
+ string_or_null(substring_value));
+ proto_item_append_text(it, "%%s", Filter_string);
+ substring_value=old_substring_value;
+
+#.FN_BODY Filter
+ proto_tree *tr;
+ proto_item *it;
+ attributedesc_string=NULL;
+
+ if (Filter_length++ > MAX_FILTER_LEN) {
+ expert_add_info_format(actx->pinfo, tree, &ei_ldap_exceeded_filter_length, "Filter length exceeds %%u. Giving up.", MAX_FILTER_LEN);
+ THROW(ReportedBoundsError);
+ }
+
+ if (Filter_elements++ > MAX_FILTER_ELEMENTS) {
+ expert_add_info_format(actx->pinfo, tree, &ei_ldap_too_many_filter_elements, "Found more than %%u filter elements. Giving up.", MAX_FILTER_ELEMENTS);
+ THROW(ReportedBoundsError);
+ }
+
+ tr=proto_tree_add_subtree(tree, tvb, offset, -1, ett_ldap_Filter, &it, "Filter: ");
+ tree = tr;
+
+%(DEFAULT_BODY)s
+ if(Filter_string)
+ proto_item_append_text(it, "%%s", string_or_null(Filter_string));
+
+#.FN_BODY AuthenticationChoice/ntlmsspNegotiate
+ /* make sure the protocol op comes first */
+ ldap_do_protocolop(actx->pinfo);
+
+ call_dissector(ntlmssp_handle, tvb, actx->pinfo, tree);
+ offset+=tvb_reported_length_remaining(tvb, offset);
+
+#.FN_BODY AuthenticationChoice/ntlmsspAuth
+ /* make sure the protocol op comes first */
+ ldap_do_protocolop(actx->pinfo);
+
+ call_dissector(ntlmssp_handle, tvb, actx->pinfo, tree);
+ offset+=tvb_reported_length_remaining(tvb, offset);
+
+#.FN_BODY BindResponse/_untag/matchedDN
+ tvbuff_t *new_tvb=NULL;
+
+ offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_ldap_matchedDN, &new_tvb);
+
+ if( new_tvb
+ && (tvb_reported_length(new_tvb)>=7)
+ && (!tvb_memeql(new_tvb, 0, "NTLMSSP", 7))){
+
+ /* make sure the protocol op comes first */
+ ldap_do_protocolop(actx->pinfo);
+
+ call_dissector(ntlmssp_handle, new_tvb, actx->pinfo, tree);
+ }
+ return offset;
+
+#.FN_BODY Control/controlValue
+ gint8 ber_class;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+
+ if((object_identifier_id != NULL) && oid_has_dissector(object_identifier_id)) {
+ /* remove the OCTET STRING encoding */
+ offset=dissect_ber_identifier(actx->pinfo, NULL, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(actx->pinfo, NULL, tvb, offset, &len, &ind);
+
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+ offset += len;
+ } else {
+ %(DEFAULT_BODY)s
+ }
+
+
+#.FN_BODY ExtendedRequest/_untag/requestValue
+
+ if((object_identifier_id != NULL) && oid_has_dissector(object_identifier_id)) {
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+ } else {
+ %(DEFAULT_BODY)s
+ }
+
+#.FN_HDR IntermediateResponse/_untag/responseValue
+
+ const gchar *name;
+
+#.FN_BODY IntermediateResponse/_untag/responseValue
+ if(ldm_tree && object_identifier_id) {
+ proto_item_set_text(ldm_tree, "%%s %%s", "IntermediateResponse", object_identifier_id);
+ name = oid_resolved_from_string(wmem_packet_scope(), object_identifier_id);
+ if(name)
+ proto_item_append_text(ldm_tree, " (%%s)", name);
+ }
+ if((object_identifier_id != NULL) && oid_has_dissector(object_identifier_id)) {
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+ } else {
+ %(DEFAULT_BODY)s
+ }
+
+#.FN_BODY DirSyncFlags
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ guint32 len;
+ gint32 val;
+
+ int otheroffset = offset;
+ if(!implicit_tag){
+ dissect_ber_identifier(actx->pinfo, tree, tvb, otheroffset, &ber_class, &pc, &tag);
+ otheroffset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, NULL);
+ } else {
+ gint32 remaining=tvb_reported_length_remaining(tvb, offset);
+ len=remaining>0 ? remaining : 0;
+ }
+
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, -1, &val);
+
+ if (val >0) {
+ const int *flags[] = {
+ &hf_ldap_object_security_flag,
+ &hf_ldap_ancestor_first_flag,
+ &hf_ldap_public_data_only_flag,
+ &hf_ldap_incremental_value_flag,
+ NULL
+ };
+
+ proto_tree_add_bitmask_value_with_flags(tree, tvb, otheroffset+1, hf_index,
+ ett_ldap_DirSyncFlagsSubEntry, flags, val, BMT_NO_APPEND);
+ } else {
+ proto_tree_add_uint(tree, hf_index, tvb, otheroffset+len, len, 0);
+ }
+
+#.FN_BODY SearchResultReference
+
+ %(DEFAULT_BODY)s
+
+ ldap_do_protocolop(actx->pinfo);
+
+
+#.FN_BODY AbandonRequest
+
+ %(DEFAULT_BODY)s
+
+ ldap_do_protocolop(actx->pinfo);
+
+#.NO_EMIT
+AttributeType
+Attribute
+AssertionValue
diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.c b/epan/dissectors/asn1/ldap/packet-ldap-template.c
new file mode 100644
index 0000000000..a5284463e7
--- /dev/null
+++ b/epan/dissectors/asn1/ldap/packet-ldap-template.c
@@ -0,0 +1,2401 @@
+/* packet-ldap-template.c
+ * Routines for ldap packet dissection
+ *
+ * See RFC 1777 (LDtAP v2), RFC 4511 (LDAP v3), and RFC 2222 (SASL).
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+/*
+ * This is not a complete implementation. It doesn't handle the full version 3, more specifically,
+ * it handles only the commands of version 2, but any additional characteristics of the ver3 command are supported.
+ * It's also missing extensible search filters.
+ *
+ * There should probably be a lot more error checking, I simply assume that if we have a full packet, it will be a complete
+ * and correct packet.
+ *
+ * AFAIK, it will handle all messages used by the OpenLDAP 1.2.9 server and libraries which was my goal. I do plan to add
+ * the remaining commands as time permits but this is not a priority to me. Send me an email if you need it and I'll see what
+ * I can do.
+ *
+ * Doug Nazar
+ * nazard@dragoninc.on.ca
+ */
+
+/*
+ * 11/11/2002 - Fixed problem when decoding LDAP with desegmentation enabled and the
+ * ASN.1 BER Universal Class Tag: "Sequence Of" header is encapsulated across 2
+ * TCP segments.
+ *
+ * Ronald W. Henderson
+ * ronald.henderson@cognicaseusa.com
+ */
+
+/*
+ * 20-JAN-2004 - added decoding of MS-CLDAP netlogon RPC
+ * using information from the SNIA 2003 conference paper :
+ * Active Directory Domain Controller Location Service
+ * by Anthony Liguori
+ * ronnie sahlberg
+ */
+
+/*
+ * 17-DEC-2004 - added basic decoding for LDAP Controls
+ * 20-DEC-2004 - added handling for GSS-API encrypted blobs
+ *
+ * Stefan Metzmacher <metze@samba.org>
+ *
+ * 15-NOV-2005 - Changed to use the asn2wrs compiler
+ * Anders Broman <anders.broman@ericsson.com>
+ */
+
+/*
+ * 3-AUG-2008 - Extended the cldap support to include all netlogon data types.
+ * Updated cldap_netlogon_flags to include Windows 2008 flags
+ * Expanded the ntver ldap option with bit field
+ *
+ * Gary Reynolds <gazzadownunder@yahoo.co.uk>
+ */
+
+/*
+ * 09-DEC-2009 - Added support for RFC4533
+ * Content Synchronization Operation (aka syncrepl)
+ * 11-DEC-2009 - Added support for IntermediateResponse (LDAP v3 from RFC 4511)
+ * Mathieu Parent <math.parent@gmail.com>
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/conversation.h>
+#include <epan/prefs.h>
+#include <epan/tap.h>
+#include <epan/srt_table.h>
+#include <epan/oids.h>
+#include <epan/strutil.h>
+#include <epan/show_exception.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+#include <epan/uat.h>
+#include <wsutil/str_util.h>
+#include "packet-frame.h"
+#include "packet-tcp.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc.h"
+
+#include "packet-ldap.h"
+#include "packet-ntlmssp.h"
+#include "packet-ssl.h"
+#include "packet-ssl-utils.h"
+#include "packet-smb-common.h"
+#include "packet-gssapi.h"
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-dns.h"
+
+#define PNAME "Lightweight Directory Access Protocol"
+#define PSNAME "LDAP"
+#define PFNAME "ldap"
+
+void proto_register_ldap(void);
+void proto_reg_handoff_ldap(void);
+
+/* Initialize the protocol and registered fields */
+static int ldap_tap = -1;
+static int proto_ldap = -1;
+static int proto_cldap = -1;
+
+static int hf_ldap_sasl_buffer_length = -1;
+static int hf_ldap_response_in = -1;
+static int hf_ldap_response_to = -1;
+static int hf_ldap_time = -1;
+static int hf_ldap_guid = -1;
+
+static int hf_mscldap_ntver_flags = -1;
+static int hf_mscldap_ntver_flags_v1 = -1;
+static int hf_mscldap_ntver_flags_v5 = -1;
+static int hf_mscldap_ntver_flags_v5ex = -1;
+static int hf_mscldap_ntver_flags_v5ep = -1;
+static int hf_mscldap_ntver_flags_vcs = -1;
+static int hf_mscldap_ntver_flags_vnt4 = -1;
+static int hf_mscldap_ntver_flags_vpdc = -1;
+static int hf_mscldap_ntver_flags_vip = -1;
+static int hf_mscldap_ntver_flags_vl = -1;
+static int hf_mscldap_ntver_flags_vgc = -1;
+
+static int hf_mscldap_netlogon_ipaddress_family = -1;
+static int hf_mscldap_netlogon_ipaddress_port = -1;
+static int hf_mscldap_netlogon_ipaddress = -1;
+static int hf_mscldap_netlogon_ipaddress_ipv4 = -1;
+static int hf_mscldap_netlogon_opcode = -1;
+static int hf_mscldap_netlogon_flags = -1;
+static int hf_mscldap_netlogon_flags_pdc = -1;
+static int hf_mscldap_netlogon_flags_gc = -1;
+static int hf_mscldap_netlogon_flags_ldap = -1;
+static int hf_mscldap_netlogon_flags_ds = -1;
+static int hf_mscldap_netlogon_flags_kdc = -1;
+static int hf_mscldap_netlogon_flags_timeserv = -1;
+static int hf_mscldap_netlogon_flags_closest = -1;
+static int hf_mscldap_netlogon_flags_writable = -1;
+static int hf_mscldap_netlogon_flags_good_timeserv = -1;
+static int hf_mscldap_netlogon_flags_ndnc = -1;
+static int hf_mscldap_netlogon_flags_fnc = -1;
+static int hf_mscldap_netlogon_flags_dnc = -1;
+static int hf_mscldap_netlogon_flags_dns = -1;
+static int hf_mscldap_netlogon_flags_wdc = -1;
+static int hf_mscldap_netlogon_flags_rodc = -1;
+static int hf_mscldap_domain_guid = -1;
+static int hf_mscldap_forest = -1;
+static int hf_mscldap_domain = -1;
+static int hf_mscldap_hostname = -1;
+static int hf_mscldap_nb_domain = -1;
+static int hf_mscldap_nb_hostname = -1;
+static int hf_mscldap_username = -1;
+static int hf_mscldap_sitename = -1;
+static int hf_mscldap_clientsitename = -1;
+static int hf_mscldap_netlogon_lm_token = -1;
+static int hf_mscldap_netlogon_nt_token = -1;
+static int hf_ldap_sid = -1;
+static int hf_ldap_AccessMask_ADS_CREATE_CHILD = -1;
+static int hf_ldap_AccessMask_ADS_DELETE_CHILD = -1;
+static int hf_ldap_AccessMask_ADS_LIST = -1;
+static int hf_ldap_AccessMask_ADS_SELF_WRITE = -1;
+static int hf_ldap_AccessMask_ADS_READ_PROP = -1;
+static int hf_ldap_AccessMask_ADS_WRITE_PROP = -1;
+static int hf_ldap_AccessMask_ADS_DELETE_TREE = -1;
+static int hf_ldap_AccessMask_ADS_LIST_OBJECT = -1;
+static int hf_ldap_AccessMask_ADS_CONTROL_ACCESS = -1;
+static int hf_ldap_LDAPMessage_PDU = -1;
+static int hf_ldap_object_security_flag = -1;
+static int hf_ldap_ancestor_first_flag = -1;
+static int hf_ldap_public_data_only_flag = -1;
+static int hf_ldap_incremental_value_flag = -1;
+static int hf_ldap_oid = -1;
+static int hf_ldap_gssapi_encrypted_payload = -1;
+
+#include "packet-ldap-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_ldap = -1;
+static gint ett_ldap_msg = -1;
+static gint ett_ldap_sasl_blob = -1;
+static gint ett_ldap_payload = -1;
+static gint ett_mscldap_netlogon_flags = -1;
+static gint ett_mscldap_ntver_flags = -1;
+static gint ett_mscldap_ipdetails = -1;
+static gint ett_ldap_DirSyncFlagsSubEntry = -1;
+
+#include "packet-ldap-ett.c"
+
+static expert_field ei_ldap_exceeded_filter_length = EI_INIT;
+static expert_field ei_ldap_too_many_filter_elements = EI_INIT;
+
+static dissector_table_t ldap_name_dissector_table=NULL;
+static const char *object_identifier_id = NULL; /* LDAP OID */
+
+static gboolean do_protocolop = FALSE;
+static gchar *attr_type = NULL;
+static gboolean is_binary_attr_type = FALSE;
+static gboolean ldap_found_in_frame = FALSE;
+
+#define TCP_PORT_LDAP 389
+#define TCP_PORT_LDAPS 636
+#define UDP_PORT_CLDAP 389
+#define TCP_PORT_GLOBALCAT_LDAP 3268 /* Windows 2000 Global Catalog */
+
+/* desegmentation of LDAP */
+static gboolean ldap_desegment = TRUE;
+static guint global_ldap_tcp_port = TCP_PORT_LDAP;
+static guint global_ldaps_tcp_port = TCP_PORT_LDAPS;
+static guint tcp_port = 0;
+static guint ssl_port = 0;
+
+static dissector_handle_t gssapi_handle;
+static dissector_handle_t gssapi_wrap_handle;
+static dissector_handle_t ntlmssp_handle;
+static dissector_handle_t spnego_handle;
+static dissector_handle_t ssl_handle;
+static dissector_handle_t ldap_handle ;
+
+static void prefs_register_ldap(void); /* forward declaration for use in preferences registration */
+
+
+/* different types of rpc calls ontop of ms cldap */
+#define MSCLDAP_RPC_NETLOGON 1
+
+/* Message type Choice values */
+static const value_string ldap_ProtocolOp_choice_vals[] = {
+ { 0, "bindRequest" },
+ { 1, "bindResponse" },
+ { 2, "unbindRequest" },
+ { 3, "searchRequest" },
+ { 4, "searchResEntry" },
+ { 5, "searchResDone" },
+ { 6, "searchResRef" },
+ { 7, "modifyRequest" },
+ { 8, "modifyResponse" },
+ { 9, "addRequest" },
+ { 10, "addResponse" },
+ { 11, "delRequest" },
+ { 12, "delResponse" },
+ { 13, "modDNRequest" },
+ { 14, "modDNResponse" },
+ { 15, "compareRequest" },
+ { 16, "compareResponse" },
+ { 17, "abandonRequest" },
+ { 18, "extendedReq" },
+ { 19, "extendedResp" },
+ { 20, "intermediateResponse" },
+ { 0, NULL }
+};
+
+/* Procedure names (used in Service Response Time */
+const value_string ldap_procedure_names[] = {
+ { 0, "Bind" },
+ { 3, "Search" },
+ { 6, "Modify" },
+ { 8, "Add" },
+ { 10, "Delete" },
+ { 12, "Modrdn" },
+ { 14, "Compare" },
+ { 23, "Extended" },
+ { 0, NULL }
+};
+
+#define LOGON_PRIMARY_QUERY 7
+#define LOGON_PRIMARY_RESPONSE 12
+#define LOGON_SAM_LOGON_REQUEST 18
+#define LOGON_SAM_LOGON_RESPONSE 19
+#define LOGON_SAM_PAUSE_RESPONSE 20
+#define LOGON_SAM_USER_UNKNOWN 21
+#define LOGON_SAM_LOGON_RESPONSE_EX 23
+#define LOGON_SAM_PAUSE_RESPONSE_EX 24
+#define LOGON_SAM_USER_UNKNOWN_EX 25
+
+static const value_string netlogon_opcode_vals[] = {
+ { LOGON_PRIMARY_QUERY, "LOGON_PRIMARY_QUERY" },
+ { LOGON_PRIMARY_RESPONSE, "LOGON_PRIMARY_RESPONSE" },
+ { LOGON_SAM_LOGON_REQUEST, "LOGON_SAM_LOGON_REQUEST" },
+ { LOGON_SAM_LOGON_RESPONSE, "LOGON_SAM_LOGON_RESPONSE" },
+ { LOGON_SAM_PAUSE_RESPONSE, "LOGON_SAM_PAUSE_RESPONSE" },
+ { LOGON_SAM_LOGON_RESPONSE_EX, "LOGON_SAM_LOGON_RESPONSE_EX" },
+ { LOGON_SAM_PAUSE_RESPONSE_EX, "LOGON_SAM_PAUSE_RESPONSE_EX" },
+ { LOGON_SAM_USER_UNKNOWN_EX, "LOGON_SAM_USER_UNKNOWN_EX" },
+ { 0, NULL }
+};
+
+#define LDAP_NUM_PROCEDURES 24
+
+static void
+ldapstat_init(struct register_srt* srt _U_, GArray* srt_array, srt_gui_init_cb gui_callback, void* gui_data)
+{
+ srt_stat_table *ldap_srt_table;
+ guint32 i;
+
+ ldap_srt_table = init_srt_table("LDAP Commands", NULL, srt_array, LDAP_NUM_PROCEDURES, NULL, "ldap.protocolOp", gui_callback, gui_data, NULL);
+ for (i = 0; i < LDAP_NUM_PROCEDURES; i++)
+ {
+ init_srt_table_row(ldap_srt_table, i, val_to_str_const(i, ldap_procedure_names, "<unknown>"));
+ }
+}
+
+static int
+ldapstat_packet(void *pldap, packet_info *pinfo, epan_dissect_t *edt _U_, const void *psi)
+{
+ guint i = 0;
+ srt_stat_table *ldap_srt_table;
+ const ldap_call_response_t *ldap=(const ldap_call_response_t *)psi;
+ srt_data_t *data = (srt_data_t *)pldap;
+
+ /* we are only interested in reply packets */
+ if(ldap->is_request){
+ return 0;
+ }
+ /* if we havnt seen the request, just ignore it */
+ if(!ldap->req_frame){
+ return 0;
+ }
+
+ /* only use the commands we know how to handle */
+ switch(ldap->protocolOpTag){
+ case LDAP_REQ_BIND:
+ case LDAP_REQ_SEARCH:
+ case LDAP_REQ_MODIFY:
+ case LDAP_REQ_ADD:
+ case LDAP_REQ_DELETE:
+ case LDAP_REQ_MODRDN:
+ case LDAP_REQ_COMPARE:
+ case LDAP_REQ_EXTENDED:
+ break;
+ default:
+ return 0;
+ }
+
+ ldap_srt_table = g_array_index(data->srt_array, srt_stat_table*, i);
+
+ add_srt_table_data(ldap_srt_table, ldap->protocolOpTag, &ldap->req_time, pinfo);
+ return 1;
+}
+
+/*
+ * Data structure attached to a conversation, giving authentication
+ * information from a bind request.
+ * We keep a linked list of them, so that we can free up all the
+ * authentication mechanism strings.
+ */
+typedef struct ldap_conv_info_t {
+ struct ldap_conv_info_t *next;
+ guint auth_type; /* authentication type */
+ char *auth_mech; /* authentication mechanism */
+ guint32 first_auth_frame; /* first frame that would use a security layer */
+ GHashTable *unmatched;
+ GHashTable *matched;
+ gboolean is_mscldap;
+ guint32 num_results;
+ gboolean start_tls_pending;
+ guint32 start_tls_frame;
+} ldap_conv_info_t;
+static ldap_conv_info_t *ldap_info_items;
+
+static guint
+ldap_info_hash_matched(gconstpointer k)
+{
+ const ldap_call_response_t *key = (const ldap_call_response_t *)k;
+
+ return key->messageId;
+}
+
+static gint
+ldap_info_equal_matched(gconstpointer k1, gconstpointer k2)
+{
+ const ldap_call_response_t *key1 = (const ldap_call_response_t*)k1;
+ const ldap_call_response_t *key2 = (const ldap_call_response_t*)k2;
+
+ if( key1->req_frame && key2->req_frame && (key1->req_frame!=key2->req_frame) ){
+ return 0;
+ }
+ /* a response may span multiple frames
+ if( key1->rep_frame && key2->rep_frame && (key1->rep_frame!=key2->rep_frame) ){
+ return 0;
+ }
+ */
+
+ return key1->messageId==key2->messageId;
+}
+
+static guint
+ldap_info_hash_unmatched(gconstpointer k)
+{
+ const ldap_call_response_t *key = (const ldap_call_response_t*)k;
+
+ return key->messageId;
+}
+
+static gint
+ldap_info_equal_unmatched(gconstpointer k1, gconstpointer k2)
+{
+ const ldap_call_response_t *key1 = (const ldap_call_response_t*)k1;
+ const ldap_call_response_t *key2 = (const ldap_call_response_t*)k2;
+
+ return key1->messageId==key2->messageId;
+}
+
+
+ /* These are the NtVer flags
+ http://msdn.microsoft.com/en-us/library/cc201035.aspx
+ */
+
+static const true_false_string tfs_ntver_v1 = {
+ "Client requested version 1 netlogon response",
+ "Version 1 netlogon response not requested"
+};
+
+static const true_false_string tfs_ntver_v5 = {
+ "Client requested version 5 netlogon response",
+ "Version 5 netlogon response not requested"
+};
+static const true_false_string tfs_ntver_v5ex = {
+ "Client requested version 5 extended netlogon response",
+ "Version 5 extended response not requested"
+};
+static const true_false_string tfs_ntver_v5ep = {
+ "Client has requested IP address of the server",
+ "IP address of server not requested"
+};
+static const true_false_string tfs_ntver_vcs = {
+ "Client has asked for the closest site information",
+ "Closest site information not requested"
+};
+static const true_false_string tfs_ntver_vnt4 = {
+ "Client is requesting server to avoid NT4 emulation",
+ "Only full AD DS requested"
+};
+static const true_false_string tfs_ntver_vpdc = {
+ "Client has requested the Primary Domain Controller",
+ "Primary Domain Controller not requested"
+};
+static const true_false_string tfs_ntver_vip = {
+ "Client has requested IP details (obsolete)",
+ "IP details not requested (obsolete)"
+};
+static const true_false_string tfs_ntver_vl = {
+ "Client indicated that it is the local machine",
+ "Client is not the local machine"
+};static const true_false_string tfs_ntver_vgc = {
+ "Client has requested a Global Catalog server",
+ "Global Catalog not requested"
+};
+
+/* Stuff for generation/handling of fields for custom AttributeValues */
+typedef struct _attribute_type_t {
+ gchar* attribute_type;
+ gchar* attribute_desc;
+} attribute_type_t;
+
+static attribute_type_t* attribute_types = NULL;
+static guint num_attribute_types = 0;
+
+static GHashTable* attribute_types_hash = NULL;
+
+static gboolean
+attribute_types_update_cb(void *r, char **err)
+{
+ attribute_type_t *rec = (attribute_type_t *)r;
+ char c;
+
+ if (rec->attribute_type == NULL) {
+ *err = g_strdup("Attribute type can't be empty");
+ return FALSE;
+ }
+
+ g_strstrip(rec->attribute_type);
+ if (rec->attribute_type[0] == 0) {
+ *err = g_strdup("Attribute type can't be empty");
+ return FALSE;
+ }
+
+ /* Check for invalid characters (to avoid asserting out when
+ * registering the field).
+ */
+ c = proto_check_field_name(rec->attribute_type);
+ if (c) {
+ *err = g_strdup_printf("Attribute type can't contain '%c'", c);
+ return FALSE;
+ }
+
+ *err = NULL;
+ return TRUE;
+}
+
+static void *
+attribute_types_copy_cb(void* n, const void* o, size_t siz _U_)
+{
+ attribute_type_t* new_rec = (attribute_type_t*)n;
+ const attribute_type_t* old_rec = (const attribute_type_t*)o;
+
+ new_rec->attribute_type = g_strdup(old_rec->attribute_type);
+ new_rec->attribute_desc = g_strdup(old_rec->attribute_desc);
+
+ return new_rec;
+}
+
+static void
+attribute_types_free_cb(void*r)
+{
+ attribute_type_t* rec = (attribute_type_t*)r;
+
+ if (rec->attribute_type) g_free(rec->attribute_type);
+ if (rec->attribute_desc) g_free(rec->attribute_desc);
+}
+
+UAT_CSTRING_CB_DEF(attribute_types, attribute_type, attribute_type_t)
+UAT_CSTRING_CB_DEF(attribute_types, attribute_desc, attribute_type_t)
+
+/*
+ *
+ */
+static gint*
+get_hf_for_header(char* attribute_type)
+{
+ gint* hf_id = NULL;
+
+ if (attribute_types_hash) {
+ hf_id = (gint*) g_hash_table_lookup(attribute_types_hash, attribute_type);
+ } else {
+ hf_id = NULL;
+ }
+
+ return hf_id;
+}
+
+/*
+ *
+ */
+static void
+attribute_types_initialize_cb(void)
+{
+ static hf_register_info* hf;
+ gint* hf_id;
+ guint i;
+ gchar* attribute_type;
+
+ if (attribute_types_hash && hf) {
+ guint hf_size = g_hash_table_size (attribute_types_hash);
+ /* Deregister all fields */
+ for (i = 0; i < hf_size; i++) {
+ proto_deregister_field (proto_ldap, *(hf[i].p_id));
+ g_free (hf[i].p_id);
+ }
+ g_hash_table_destroy (attribute_types_hash);
+ proto_add_deregistered_data (hf);
+ attribute_types_hash = NULL;
+ }
+
+ if (num_attribute_types) {
+ attribute_types_hash = g_hash_table_new(g_str_hash, g_str_equal);
+ hf = g_new0(hf_register_info,num_attribute_types);
+
+ for (i = 0; i < num_attribute_types; i++) {
+ hf_id = g_new(gint,1);
+ *hf_id = -1;
+ attribute_type = g_strdup(attribute_types[i].attribute_type);
+
+ hf[i].p_id = hf_id;
+ hf[i].hfinfo.name = attribute_type;
+ hf[i].hfinfo.abbrev = g_strdup_printf("ldap.AttributeValue.%s", attribute_type);
+ hf[i].hfinfo.type = FT_STRING;
+ hf[i].hfinfo.display = BASE_NONE;
+ hf[i].hfinfo.strings = NULL;
+ hf[i].hfinfo.blurb = g_strdup(attribute_types[i].attribute_desc);
+ hf[i].hfinfo.same_name_prev_id = -1;
+ hf[i].hfinfo.same_name_next = NULL;
+
+ g_hash_table_insert(attribute_types_hash, attribute_type, hf_id);
+ }
+
+ proto_register_field_array(proto_ldap, hf, num_attribute_types);
+ }
+}
+
+/* MS-ADTS specification, section 7.3.1.1, NETLOGON_NT_VERSION Options Bits */
+static int dissect_mscldap_ntver_flags(proto_tree *parent_tree, tvbuff_t *tvb, int offset)
+{
+ static const int * flags[] = {
+ &hf_mscldap_ntver_flags_v1,
+ &hf_mscldap_ntver_flags_v5,
+ &hf_mscldap_ntver_flags_v5ex,
+ &hf_mscldap_ntver_flags_v5ep,
+ &hf_mscldap_ntver_flags_vcs,
+ &hf_mscldap_ntver_flags_vnt4,
+ &hf_mscldap_ntver_flags_vpdc,
+ &hf_mscldap_ntver_flags_vip,
+ &hf_mscldap_ntver_flags_vl,
+ &hf_mscldap_ntver_flags_vgc,
+ NULL
+ };
+
+ proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_mscldap_ntver_flags,
+ ett_mscldap_ntver_flags, flags, ENC_LITTLE_ENDIAN, BMT_NO_FALSE);
+ offset += 4;
+
+ return offset;
+}
+
+/* This string contains the last LDAPString that was decoded */
+static const char *attributedesc_string=NULL;
+
+/* This string contains the last AssertionValue that was decoded */
+static char *ldapvalue_string=NULL;
+
+/* if the octet string contain all printable ASCII characters, then
+ * display it as a string, othervise just display it in hex.
+ */
+static int
+dissect_ldap_AssertionValue(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index)
+{
+ gint8 ber_class;
+ gboolean pc, ind, is_ascii;
+ gint32 tag;
+ guint32 len, i;
+ const guchar *str;
+
+ if(!implicit_tag){
+ offset=get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ offset=get_ber_length(tvb, offset, &len, &ind);
+ } else {
+ len=tvb_reported_length_remaining(tvb,offset);
+ }
+
+ if(len==0){
+ return offset;
+ }
+
+
+ /*
+ * Some special/wellknown attributes in common LDAP (read AD)
+ * are neither ascii strings nor blobs of hex data.
+ * Special case these attributes and decode them more nicely.
+ *
+ * Add more special cases as required to prettify further
+ * (there can't be that many ones that are truly interesting)
+ */
+ if(attributedesc_string && !strncmp("DomainSid", attributedesc_string, 9)){
+ tvbuff_t *sid_tvb;
+ char *tmpstr;
+
+ /* this octet string contains an NT SID */
+ sid_tvb=tvb_new_subset_length(tvb, offset, len);
+ dissect_nt_sid(sid_tvb, 0, tree, "SID", &tmpstr, hf_index);
+ ldapvalue_string=tmpstr;
+
+ goto finished;
+ } else if ( (len==16) /* GUIDs are always 16 bytes */
+ && (attributedesc_string && !strncmp("DomainGuid", attributedesc_string, 10))) {
+ guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
+ e_guid_t uuid;
+
+ /* This octet string contained a GUID */
+ dissect_dcerpc_uuid_t(tvb, offset, actx->pinfo, tree, drep, hf_ldap_guid, &uuid);
+
+ ldapvalue_string=(char*)wmem_alloc(wmem_packet_scope(), 1024);
+ g_snprintf(ldapvalue_string, 1023, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ uuid.data1, uuid.data2, uuid.data3, uuid.data4[0], uuid.data4[1],
+ uuid.data4[2], uuid.data4[3], uuid.data4[4], uuid.data4[5],
+ uuid.data4[6], uuid.data4[7]);
+
+ goto finished;
+ } else if (attributedesc_string && !strncmp("NtVer", attributedesc_string, 5)){
+ guint32 flags;
+
+ len = 0;
+ /* get flag value to populate ldapvalue_string */
+ flags=tvb_get_letohl(tvb, offset);
+
+ ldapvalue_string=(char*)wmem_alloc(wmem_packet_scope(), 1024);
+ g_snprintf(ldapvalue_string, 1023, "0x%08x",flags);
+
+ /* populate bitmask subtree */
+ offset = dissect_mscldap_ntver_flags(tree, tvb, offset);
+
+ goto finished;
+
+
+ }
+
+ /*
+ * It was not one of our "wellknown" attributes so make the best
+ * we can and just try to see if it is an ascii string or if it
+ * is a binary blob.
+ *
+ * XXX - should we support reading RFC 2252-style schemas
+ * for LDAP, and using that to determine how to display
+ * attribute values and assertion values?
+ *
+ * -- I don't think there are full schemas available that describe the
+ * interesting cases i.e. AD -- ronnie
+ */
+ str=tvb_get_ptr(tvb, offset, len);
+ is_ascii=TRUE;
+ for(i=0;i<len;i++){
+ if(!g_ascii_isprint(str[i])){
+ is_ascii=FALSE;
+ break;
+ }
+ }
+
+ /* convert the string into a printable string */
+ if(is_ascii){
+ ldapvalue_string=wmem_strndup(wmem_packet_scope(), str, len);
+ } else {
+ ldapvalue_string=(char*)wmem_alloc(wmem_packet_scope(), 3*len);
+ for(i=0;i<len;i++){
+ g_snprintf(ldapvalue_string+i*3,3,"%02x",str[i]&0xff);
+ ldapvalue_string[3*i+2]=':';
+ }
+ ldapvalue_string[3*len-1]=0;
+ }
+
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ldapvalue_string);
+
+
+finished:
+ offset+=len;
+ return offset;
+}
+
+/* This string contains the last Filter item that was decoded */
+static const char *Filter_string=NULL;
+static const char *and_filter_string=NULL;
+static const char *or_filter_string=NULL;
+static const char *substring_value=NULL;
+static const char *substring_item_init=NULL;
+static const char *substring_item_any=NULL;
+static const char *substring_item_final=NULL;
+static const char *matching_rule_string=NULL;
+static gboolean matching_rule_dnattr=FALSE;
+
+#define MAX_FILTER_LEN 4096
+static gint Filter_length;
+
+#define MAX_FILTER_ELEMENTS 200
+static gint Filter_elements;
+
+/* Global variables */
+static gint MessageID =-1;
+static gint ProtocolOp = -1;
+static gint result = 0;
+static proto_item *ldm_tree = NULL; /* item to add text to */
+
+static void ldap_do_protocolop(packet_info *pinfo)
+{
+ const gchar* valstr;
+
+ if (do_protocolop) {
+
+ valstr = val_to_str(ProtocolOp, ldap_ProtocolOp_choice_vals, "Unknown (%%u)");
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s(%u) ", valstr, MessageID);
+
+ if(ldm_tree)
+ proto_item_append_text(ldm_tree, " %s(%d)", valstr, MessageID);
+
+ do_protocolop = FALSE;
+
+ }
+}
+
+static ldap_call_response_t *
+ldap_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint messageId, guint protocolOpTag, ldap_conv_info_t *ldap_info)
+{
+ ldap_call_response_t lcr, *lcrp=NULL;
+
+ /* first see if we have already matched this */
+
+ lcr.messageId=messageId;
+ switch(protocolOpTag){
+ case LDAP_REQ_BIND:
+ case LDAP_REQ_SEARCH:
+ case LDAP_REQ_MODIFY:
+ case LDAP_REQ_ADD:
+ case LDAP_REQ_DELETE:
+ case LDAP_REQ_MODRDN:
+ case LDAP_REQ_COMPARE:
+ case LDAP_REQ_EXTENDED:
+ lcr.is_request=TRUE;
+ lcr.req_frame=pinfo->num;
+ lcr.rep_frame=0;
+ break;
+ case LDAP_RES_BIND:
+ case LDAP_RES_SEARCH_ENTRY:
+ case LDAP_RES_SEARCH_REF:
+ case LDAP_RES_SEARCH_RESULT:
+ case LDAP_RES_MODIFY:
+ case LDAP_RES_ADD:
+ case LDAP_RES_DELETE:
+ case LDAP_RES_MODRDN:
+ case LDAP_RES_COMPARE:
+ case LDAP_RES_EXTENDED:
+ case LDAP_RES_INTERMEDIATE:
+ lcr.is_request=FALSE;
+ lcr.req_frame=0;
+ lcr.rep_frame=pinfo->num;
+ break;
+ default:
+ return NULL;
+ }
+ lcrp=(ldap_call_response_t *)g_hash_table_lookup(ldap_info->matched, &lcr);
+
+ if(lcrp){
+
+ lcrp->is_request=lcr.is_request;
+
+ } else {
+
+ /* we haven't found a match - try and match it up */
+
+ switch(protocolOpTag){
+ case LDAP_REQ_BIND:
+ case LDAP_REQ_SEARCH:
+ case LDAP_REQ_MODIFY:
+ case LDAP_REQ_ADD:
+ case LDAP_REQ_DELETE:
+ case LDAP_REQ_MODRDN:
+ case LDAP_REQ_COMPARE:
+ case LDAP_REQ_EXTENDED:
+
+ /* this a a request - add it to the unmatched list */
+
+ /* check that we don't already have one of those in the
+ unmatched list and if so remove it */
+
+ lcr.messageId=messageId;
+ lcrp=(ldap_call_response_t *)g_hash_table_lookup(ldap_info->unmatched, &lcr);
+ if(lcrp){
+ g_hash_table_remove(ldap_info->unmatched, lcrp);
+ }
+ /* if we can't reuse the old one, grab a new chunk */
+ if(!lcrp){
+ lcrp=wmem_new0(wmem_file_scope(), ldap_call_response_t);
+ }
+ lcrp->messageId=messageId;
+ lcrp->req_frame=pinfo->num;
+ lcrp->req_time=pinfo->abs_ts;
+ lcrp->rep_frame=0;
+ lcrp->protocolOpTag=protocolOpTag;
+ lcrp->is_request=TRUE;
+ g_hash_table_insert(ldap_info->unmatched, lcrp, lcrp);
+ return NULL;
+ break;
+ case LDAP_RES_BIND:
+ case LDAP_RES_SEARCH_ENTRY:
+ case LDAP_RES_SEARCH_REF:
+ case LDAP_RES_SEARCH_RESULT:
+ case LDAP_RES_MODIFY:
+ case LDAP_RES_ADD:
+ case LDAP_RES_DELETE:
+ case LDAP_RES_MODRDN:
+ case LDAP_RES_COMPARE:
+ case LDAP_RES_EXTENDED:
+ case LDAP_RES_INTERMEDIATE:
+
+ /* this is a result - it should be in our unmatched list */
+
+ lcr.messageId=messageId;
+ lcrp=(ldap_call_response_t *)g_hash_table_lookup(ldap_info->unmatched, &lcr);
+
+ if(lcrp){
+
+ if(!lcrp->rep_frame){
+ g_hash_table_remove(ldap_info->unmatched, lcrp);
+ lcrp->rep_frame=pinfo->num;
+ lcrp->is_request=FALSE;
+ g_hash_table_insert(ldap_info->matched, lcrp, lcrp);
+ }
+ }
+
+ break;
+ }
+
+ }
+ /* we have found a match */
+
+ if(lcrp){
+ proto_item *it;
+
+ if(lcrp->is_request){
+ it=proto_tree_add_uint(tree, hf_ldap_response_in, tvb, 0, 0, lcrp->rep_frame);
+ PROTO_ITEM_SET_GENERATED(it);
+ } else {
+ nstime_t ns;
+ it=proto_tree_add_uint(tree, hf_ldap_response_to, tvb, 0, 0, lcrp->req_frame);
+ PROTO_ITEM_SET_GENERATED(it);
+ nstime_delta(&ns, &pinfo->abs_ts, &lcrp->req_time);
+ it=proto_tree_add_time(tree, hf_ldap_time, tvb, 0, 0, &ns);
+ PROTO_ITEM_SET_GENERATED(it);
+ }
+ }
+
+ return lcrp;
+}
+
+#include "packet-ldap-fn.c"
+static int dissect_LDAPMessage_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, ldap_conv_info_t *ldap_info) {
+
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ asn1_ctx.private_data = ldap_info;
+ offset = dissect_ldap_LDAPMessage(FALSE, tvb, offset, &asn1_ctx, tree, hf_ldap_LDAPMessage_PDU);
+ return offset;
+}
+
+static void
+dissect_ldap_payload(tvbuff_t *tvb, packet_info *pinfo,
+ proto_tree *tree, ldap_conv_info_t *ldap_info,
+ gboolean is_mscldap)
+{
+ int offset = 0;
+ guint length_remaining;
+ guint msg_len = 0;
+ int messageOffset = 0;
+ guint headerLength = 0;
+ guint length = 0;
+ tvbuff_t *msg_tvb = NULL;
+ gint8 ber_class;
+ gboolean pc, ind = 0;
+ gint32 ber_tag;
+
+ attributedesc_string=NULL;
+
+
+one_more_pdu:
+
+ length_remaining = tvb_ensure_captured_length_remaining(tvb, offset);
+
+ if (length_remaining < 6) return;
+
+ /*
+ * OK, try to read the "Sequence Of" header; this gets the total
+ * length of the LDAP message.
+ */
+ messageOffset = get_ber_identifier(tvb, offset, &ber_class, &pc, &ber_tag);
+ messageOffset = get_ber_length(tvb, messageOffset, &msg_len, &ind);
+
+ /* sanity check */
+ if((msg_len<4) || (msg_len>10000000)) return;
+
+ if ( (ber_class==BER_CLASS_UNI) && (ber_tag==BER_UNI_TAG_SEQUENCE) ) {
+ /*
+ * Add the length of the "Sequence Of" header to the message
+ * length.
+ */
+ headerLength = messageOffset - offset;
+ msg_len += headerLength;
+ if (msg_len < headerLength) {
+ /*
+ * The message length was probably so large that the total length
+ * overflowed.
+ *
+ * Report this as an error.
+ */
+ show_reported_bounds_error(tvb, pinfo, tree);
+ return;
+ }
+ } else {
+ /*
+ * We couldn't parse the header; just make it the amount of data
+ * remaining in the tvbuff, so we'll give up on this segment
+ * after attempting to parse the message - there's nothing more
+ * we can do. "dissect_ldap_message()" will display the error.
+ */
+ msg_len = length_remaining;
+ }
+
+ /*
+ * Construct a tvbuff containing the amount of the payload we have
+ * available. Make its reported length the amount of data in the
+ * LDAP message.
+ *
+ * XXX - if reassembly isn't enabled. the subdissector will throw a
+ * BoundsError exception, rather than a ReportedBoundsError exception.
+ * We really want a tvbuff where the length is "length", the reported
+ * length is "plen", and the "if the snapshot length were infinite"
+ * length is the minimum of the reported length of the tvbuff handed
+ * to us and "plen", with a new type of exception thrown if the offset
+ * is within the reported length but beyond that third length, with
+ * that exception getting the "Unreassembled Packet" error.
+ */
+ length = length_remaining;
+ if (length > msg_len) length = msg_len;
+ msg_tvb = tvb_new_subset(tvb, offset, length, msg_len);
+
+ /*
+ * Now dissect the LDAP message.
+ */
+ ldap_info->is_mscldap = is_mscldap;
+ dissect_LDAPMessage_PDU(msg_tvb, pinfo, tree, ldap_info);
+
+ offset += msg_len;
+
+ /* If this was a sasl blob there might be another PDU following in the
+ * same blob
+ */
+ if(tvb_reported_length_remaining(tvb, offset)>=6){
+ tvb = tvb_new_subset_remaining(tvb, offset);
+ offset = 0;
+
+ goto one_more_pdu;
+ }
+
+}
+
+static void
+ldap_frame_end(void)
+{
+ ldap_found_in_frame = FALSE;
+ attr_type = NULL;
+ ldapvalue_string = NULL;
+/* ? */
+ attributedesc_string = NULL;
+ Filter_string = NULL;
+ and_filter_string = NULL;
+ object_identifier_id = NULL;
+ or_filter_string = NULL;
+
+ substring_item_any = NULL;
+ substring_item_final = NULL;
+ substring_item_init = NULL;
+ substring_value = NULL;
+
+ ldm_tree = NULL;
+
+ Filter_elements = 0;
+ Filter_length = 0;
+ do_protocolop = FALSE;
+ result = 0;
+
+/* seems to be ok, but reset just in case */
+ matching_rule_string = NULL;
+}
+
+static void
+ dissect_ldap_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean is_mscldap)
+{
+ int offset = 0;
+ conversation_t *conversation;
+ gboolean doing_sasl_security = FALSE;
+ guint length_remaining;
+ ldap_conv_info_t *ldap_info = NULL;
+ proto_item *ldap_item = NULL;
+ proto_tree *ldap_tree = NULL;
+
+ ldm_tree = NULL;
+
+ conversation = find_or_create_conversation(pinfo);
+
+ /*
+ * Do we already have a type and mechanism?
+ */
+ ldap_info = (ldap_conv_info_t *)conversation_get_proto_data(conversation, proto_ldap);
+ if (ldap_info == NULL) {
+ /* No. Attach that information to the conversation, and add
+ * it to the list of information structures.
+ */
+ ldap_info = g_new0(ldap_conv_info_t,1);
+ ldap_info->matched=g_hash_table_new(ldap_info_hash_matched, ldap_info_equal_matched);
+ ldap_info->unmatched=g_hash_table_new(ldap_info_hash_unmatched, ldap_info_equal_unmatched);
+
+ conversation_add_proto_data(conversation, proto_ldap, ldap_info);
+
+ ldap_info->next = ldap_info_items;
+ ldap_info_items = ldap_info;
+
+ }
+
+ switch (ldap_info->auth_type) {
+ case LDAP_AUTH_SASL:
+ /*
+ * It's SASL; are we using a security layer?
+ */
+ if (ldap_info->first_auth_frame != 0 &&
+ pinfo->num >= ldap_info->first_auth_frame) {
+ doing_sasl_security = TRUE; /* yes */
+ }
+ }
+
+ length_remaining = tvb_ensure_captured_length_remaining(tvb, offset);
+
+ /* It might still be a packet containing a SASL security layer
+ * but it's just that we never saw the BIND packet.
+ * check if it looks like it could be a SASL blob here
+ * and in that case just assume it is GSS-SPNEGO
+ */
+ if(!doing_sasl_security && (tvb_bytes_exist(tvb, offset, 5))
+ &&(tvb_get_ntohl(tvb, offset)<=(guint)(tvb_reported_length_remaining(tvb, offset)-4))
+ &&(tvb_get_guint8(tvb, offset+4)==0x60) ){
+ ldap_info->auth_type=LDAP_AUTH_SASL;
+ ldap_info->first_auth_frame=pinfo->num;
+ ldap_info->auth_mech=g_strdup("GSS-SPNEGO");
+ doing_sasl_security=TRUE;
+ }
+
+ /*
+ * This is the first PDU, set the Protocol column and clear the
+ * Info column.
+ */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, pinfo->current_proto);
+
+ if(ldap_found_in_frame) {
+ /* we have already dissected an ldap PDU in this frame - add a separator and set a fence */
+ col_append_str(pinfo->cinfo, COL_INFO, " | ");
+ col_set_fence(pinfo->cinfo, COL_INFO);
+ } else {
+ col_clear(pinfo->cinfo, COL_INFO);
+ register_frame_end_routine (pinfo, ldap_frame_end);
+ ldap_found_in_frame = TRUE;
+ }
+
+ ldap_item = proto_tree_add_item(tree, is_mscldap?proto_cldap:proto_ldap, tvb, 0, -1, ENC_NA);
+ ldap_tree = proto_item_add_subtree(ldap_item, ett_ldap);
+
+ /*
+ * Might we be doing a SASL security layer and, if so, *are* we doing
+ * one?
+ *
+ * Just because we've seen a bind reply for SASL, that doesn't mean
+ * that we're using a SASL security layer; I've seen captures in
+ * which some SASL negotiations lead to a security layer being used
+ * and other negotiations don't, and it's not obvious what's different
+ * in the two negotiations. Therefore, we assume that if the first
+ * byte is 0, it's a length for a SASL security layer (that way, we
+ * never reassemble more than 16 megabytes, protecting us from
+ * chewing up *too* much memory), and otherwise that it's an LDAP
+ * message (actually, if it's an LDAP message it should begin with 0x30,
+ * but we want to parse garbage as LDAP messages rather than really
+ * huge lengths).
+ */
+
+ if (doing_sasl_security && tvb_get_guint8(tvb, offset) == 0) {
+ proto_tree *sasl_tree;
+ tvbuff_t *sasl_tvb;
+ guint sasl_len, sasl_msg_len, length;
+ /*
+ * Yes. The frame begins with a 4-byte big-endian length.
+ * And we know we have at least 6 bytes
+ */
+
+ /*
+ * Get the SASL length, which is the length of data in the buffer
+ * following the length (i.e., it's 4 less than the total length).
+ *
+ * XXX - do we need to reassemble buffers? For now, we
+ * assume that each LDAP message is entirely contained within
+ * a buffer.
+ */
+ sasl_len = tvb_get_ntohl(tvb, offset);
+ sasl_msg_len = sasl_len + 4;
+ if (sasl_msg_len < 4) {
+ /*
+ * The message length was probably so large that the total length
+ * overflowed.
+ *
+ * Report this as an error.
+ */
+ show_reported_bounds_error(tvb, pinfo, tree);
+ return;
+ }
+
+ /*
+ * Construct a tvbuff containing the amount of the payload we have
+ * available. Make its reported length the amount of data in the PDU.
+ *
+ * XXX - if reassembly isn't enabled. the subdissector will throw a
+ * BoundsError exception, rather than a ReportedBoundsError exception.
+ * We really want a tvbuff where the length is "length", the reported
+ * length is "plen", and the "if the snapshot length were infinite"
+ * length is the minimum of the reported length of the tvbuff handed
+ * to us and "plen", with a new type of exception thrown if the offset
+ * is within the reported length but beyond that third length, with
+ * that exception getting the "Unreassembled Packet" error.
+ */
+ length = length_remaining;
+ if (length > sasl_msg_len) length = sasl_msg_len;
+ sasl_tvb = tvb_new_subset(tvb, offset, length, sasl_msg_len);
+
+ proto_tree_add_uint(ldap_tree, hf_ldap_sasl_buffer_length, sasl_tvb, 0, 4, sasl_len);
+
+ sasl_tree = proto_tree_add_subtree(ldap_tree, sasl_tvb, 0, sasl_msg_len, ett_ldap_sasl_blob, NULL, "SASL Buffer");
+
+ if (ldap_info->auth_mech != NULL &&
+ ((strcmp(ldap_info->auth_mech, "GSS-SPNEGO") == 0) ||
+ /* auth_mech may have been set from the bind */
+ (strcmp(ldap_info->auth_mech, "GSSAPI") == 0))) {
+ tvbuff_t *gssapi_tvb, *plain_tvb = NULL, *decr_tvb= NULL;
+ int ver_len;
+ int tmp_length;
+ gssapi_encrypt_info_t gssapi_encrypt;
+
+ /*
+ * This is GSS-API (using SPNEGO, but we should be done with
+ * the negotiation by now).
+ *
+ * Dissect the GSS_Wrap() token; it'll return the length of
+ * the token, from which we compute the offset in the tvbuff at
+ * which the plaintext data, i.e. the LDAP message, begins.
+ */
+ tmp_length = tvb_reported_length_remaining(sasl_tvb, 4);
+ if ((guint)tmp_length > sasl_len)
+ tmp_length = sasl_len;
+ gssapi_tvb = tvb_new_subset(sasl_tvb, 4, tmp_length, sasl_len);
+
+ /* Attempt decryption of the GSSAPI wrapped data if possible */
+ gssapi_encrypt.gssapi_data_encrypted = FALSE;
+ gssapi_encrypt.decrypt_gssapi_tvb=DECRYPT_GSSAPI_NORMAL;
+ gssapi_encrypt.gssapi_wrap_tvb=NULL;
+ gssapi_encrypt.gssapi_encrypted_tvb=NULL;
+ gssapi_encrypt.gssapi_decrypted_tvb=NULL;
+ ver_len = call_dissector_with_data(gssapi_wrap_handle, gssapi_tvb, pinfo, sasl_tree, &gssapi_encrypt);
+ /* if we could unwrap, do a tvb shuffle */
+ if(gssapi_encrypt.gssapi_decrypted_tvb){
+ decr_tvb=gssapi_encrypt.gssapi_decrypted_tvb;
+ } else if (gssapi_encrypt.gssapi_wrap_tvb) {
+ plain_tvb=gssapi_encrypt.gssapi_wrap_tvb;
+ }
+
+ /*
+ * if len is 0 it probably mean that we got a PDU that is not
+ * aligned to the start of the segment.
+ */
+ if(ver_len==0){
+ return;
+ }
+
+ /*
+ * if we don't have unwrapped data,
+ * see if the wrapping involved encryption of the
+ * data; if not, just use the plaintext data.
+ */
+ if (!decr_tvb && !plain_tvb) {
+ if(!gssapi_encrypt.gssapi_data_encrypted){
+ plain_tvb = tvb_new_subset_remaining(gssapi_tvb, ver_len);
+ }
+ }
+
+ if (decr_tvb) {
+ proto_tree *enc_tree = NULL;
+ guint decr_len = tvb_reported_length(decr_tvb);
+
+ /*
+ * The LDAP message was encrypted in the packet, and has
+ * been decrypted; dissect the decrypted LDAP message.
+ */
+ col_set_str(pinfo->cinfo, COL_INFO, "SASL GSS-API Privacy (decrypted): ");
+
+ if (sasl_tree) {
+ enc_tree = proto_tree_add_subtree_format(sasl_tree, decr_tvb, 0, -1,
+ ett_ldap_payload, NULL, "GSS-API Encrypted payload (%d byte%s)",
+ decr_len, plurality(decr_len, "", "s"));
+ }
+ dissect_ldap_payload(decr_tvb, pinfo, enc_tree, ldap_info, is_mscldap);
+ } else if (plain_tvb) {
+ proto_tree *plain_tree = NULL;
+ guint plain_len = tvb_reported_length(plain_tvb);
+
+ /*
+ * The LDAP message wasn't encrypted in the packet;
+ * dissect the plain LDAP message.
+ */
+ col_set_str(pinfo->cinfo, COL_INFO, "SASL GSS-API Integrity: ");
+
+ if (sasl_tree) {
+ plain_tree = proto_tree_add_subtree_format(sasl_tree, plain_tvb, 0, -1,
+ ett_ldap_payload, NULL, "GSS-API payload (%d byte%s)",
+ plain_len, plurality(plain_len, "", "s"));
+ }
+
+ dissect_ldap_payload(plain_tvb, pinfo, plain_tree, ldap_info, is_mscldap);
+ } else {
+ /*
+ * The LDAP message was encrypted in the packet, and was
+ * not decrypted; just show it as encrypted data.
+ */
+ col_add_fstr(pinfo->cinfo, COL_INFO, "SASL GSS-API Privacy: payload (%d byte%s)",
+ sasl_len - ver_len,
+ plurality(sasl_len - ver_len, "", "s"));
+
+ proto_tree_add_item(sasl_tree, hf_ldap_gssapi_encrypted_payload, gssapi_tvb, ver_len, -1, ENC_NA);
+ }
+ }
+ } else {
+ /* plain LDAP, so dissect the payload */
+ dissect_ldap_payload(tvb, pinfo, ldap_tree, ldap_info, is_mscldap);
+ }
+}
+
+/*
+ * prepend_dot is no longer used, but is being left in place in order to
+ * maintain ABI compatibility.
+ */
+int dissect_mscldap_string(tvbuff_t *tvb, int offset, char *str, int max_len, gboolean prepend_dot _U_)
+{
+ int compr_len;
+ const guchar *name;
+
+ /* The name data MUST start at offset 0 of the tvb */
+ compr_len = expand_dns_name(tvb, offset, max_len, 0, &name);
+ g_strlcpy(str, name, max_len);
+ return offset + compr_len;
+}
+
+
+/* These are the cldap DC flags
+ http://msdn.microsoft.com/en-us/library/cc201036.aspx
+ */
+static const true_false_string tfs_ads_pdc = {
+ "This is a PDC",
+ "This is NOT a pdc"
+};
+static const true_false_string tfs_ads_gc = {
+ "This is a GLOBAL CATALOGUE of forest",
+ "This is NOT a global catalog of forest"
+};
+static const true_false_string tfs_ads_ldap = {
+ "This is an LDAP server",
+ "This is NOT an ldap server"
+};
+static const true_false_string tfs_ads_ds = {
+ "This dc supports DS",
+ "This dc does NOT support ds"
+};
+static const true_false_string tfs_ads_kdc = {
+ "This is a KDC (kerberos)",
+ "This is NOT a kdc (kerberos)"
+};
+static const true_false_string tfs_ads_timeserv = {
+ "This dc is running TIME SERVICES (ntp)",
+ "This dc is NOT running time services (ntp)"
+};
+static const true_false_string tfs_ads_closest = {
+ "This server is in the same site as the client",
+ "This server is NOT in the same site as the client"
+};
+static const true_false_string tfs_ads_writable = {
+ "This dc is WRITABLE",
+ "This dc is NOT writable"
+};
+static const true_false_string tfs_ads_good_timeserv = {
+ "This dc has a GOOD TIME SERVICE (i.e. hardware clock)",
+ "This dc does NOT have a good time service (i.e. no hardware clock)"
+};
+static const true_false_string tfs_ads_ndnc = {
+ "Domain is NON-DOMAIN NC serviced by ldap server",
+ "Domain is NOT non-domain nc serviced by ldap server"
+};
+static const true_false_string tfs_ads_rodc = {
+ "Domain controller is a Windows 2008 RODC",
+ "Domain controller is not a Windows 2008 RODC"
+};
+static const true_false_string tfs_ads_wdc = {
+ "Domain controller is a Windows 2008 writable NC",
+ "Domain controller is not a Windows 2008 writable NC"
+};
+static const true_false_string tfs_ads_dns = {
+ "Server name is in DNS format (Windows 2008)",
+ "Server name is not in DNS format (Windows 2008)"
+};
+static const true_false_string tfs_ads_dnc = {
+ "The NC is the default NC (Windows 2008)",
+ "The NC is not the default NC (Windows 2008)"
+};
+static const true_false_string tfs_ads_fnc = {
+ "The NC is the default forest NC(Windows 2008)",
+ "The NC is not the default forest NC (Windows 2008)"
+};
+static int dissect_mscldap_netlogon_flags(proto_tree *parent_tree, tvbuff_t *tvb, int offset)
+{
+ static const int * flags[] = {
+ &hf_mscldap_netlogon_flags_fnc,
+ &hf_mscldap_netlogon_flags_dnc,
+ &hf_mscldap_netlogon_flags_dns,
+ &hf_mscldap_netlogon_flags_wdc,
+ &hf_mscldap_netlogon_flags_rodc,
+ &hf_mscldap_netlogon_flags_ndnc,
+ &hf_mscldap_netlogon_flags_good_timeserv,
+ &hf_mscldap_netlogon_flags_writable,
+ &hf_mscldap_netlogon_flags_closest,
+ &hf_mscldap_netlogon_flags_timeserv,
+ &hf_mscldap_netlogon_flags_kdc,
+ &hf_mscldap_netlogon_flags_ds,
+ &hf_mscldap_netlogon_flags_ldap,
+ &hf_mscldap_netlogon_flags_gc,
+ &hf_mscldap_netlogon_flags_pdc,
+ NULL
+ };
+
+ proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_mscldap_netlogon_flags,
+ ett_mscldap_netlogon_flags, flags, ENC_LITTLE_ENDIAN, BMT_NO_FALSE);
+ offset += 4;
+
+ return offset;
+}
+
+static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+{
+ int old_offset, offset=0;
+ char str[256];
+ guint16 itype;
+ guint16 len;
+ guint32 version;
+ const char *fn;
+ int fn_len;
+ guint16 bc;
+ proto_item *item;
+
+ ldm_tree = NULL;
+
+
+ /* Get the length of the buffer */
+ len=tvb_reported_length_remaining(tvb,offset);
+
+ /* check the len if it is to small return */
+ if (len < 10)
+ return tvb_captured_length(tvb);
+
+ /* Type */
+ proto_tree_add_item(tree, hf_mscldap_netlogon_opcode, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ itype = tvb_get_letohs(tvb, offset);
+ offset += 2;
+
+ switch(itype){
+
+ case LOGON_SAM_LOGON_RESPONSE:
+ bc = tvb_reported_length_remaining(tvb, offset);
+ /* logon server name */
+ fn = get_unicode_or_ascii_string(tvb,&offset,TRUE,&fn_len,FALSE,FALSE,&bc);
+ proto_tree_add_string(tree, hf_mscldap_nb_hostname, tvb,offset, fn_len, fn);
+ offset +=fn_len;
+
+ /* username */
+ fn = get_unicode_or_ascii_string(tvb,&offset,TRUE,&fn_len,FALSE,FALSE,&bc);
+ proto_tree_add_string(tree, hf_mscldap_username, tvb,offset, fn_len, fn);
+ offset +=fn_len;
+
+ /* domain name */
+ fn = get_unicode_or_ascii_string(tvb,&offset,TRUE,&fn_len,FALSE,FALSE,&bc);
+ proto_tree_add_string(tree, hf_mscldap_nb_domain, tvb,offset, fn_len, fn);
+ offset +=fn_len;
+
+ /* get the version number from the end of the buffer, as the
+ length is variable and the version determines what fields
+ need to be decoded */
+ version = tvb_get_letohl(tvb,len-8);
+
+ /* include the extra version 5 fields */
+ if ((version & NETLOGON_NT_VERSION_5) == NETLOGON_NT_VERSION_5){
+
+ /* domain guid */
+ proto_tree_add_item(tree, hf_mscldap_domain_guid, tvb, offset, 16, ENC_LITTLE_ENDIAN);
+ offset += 16;
+
+ /* domain guid part 2
+ there is another 16 byte guid but this is alway zero, so we will skip it */
+ offset += 16;
+
+ /* Forest */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_forest, tvb, old_offset, offset-old_offset, str);
+
+ /* Domain */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_domain, tvb, old_offset, offset-old_offset, str);
+
+ /* Hostname */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_hostname, tvb, old_offset, offset-old_offset, str);
+
+ /* DC IP Address */
+ proto_tree_add_ipv4(tree, hf_mscldap_netlogon_ipaddress, tvb, offset, 4, tvb_get_ntohl(tvb,offset));
+ offset += 4;
+
+ /* Flags */
+ offset = dissect_mscldap_netlogon_flags(tree, tvb, offset);
+
+ }
+
+ break;
+
+ case LOGON_SAM_LOGON_RESPONSE_EX:
+ /* MS-ADTS 7.3.1.9 */
+ offset += 2; /* Skip over "Sbz" field (MUST be set to 0) */
+
+ /* Flags */
+ offset = dissect_mscldap_netlogon_flags(tree, tvb, offset);
+
+ /* Domain GUID */
+ proto_tree_add_item(tree, hf_mscldap_domain_guid, tvb, offset, 16, ENC_LITTLE_ENDIAN);
+ offset += 16;
+
+ /* Forest */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_forest, tvb, old_offset, offset-old_offset, str);
+
+ /* Domain */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_domain, tvb, old_offset, offset-old_offset, str);
+
+ /* Hostname */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_hostname, tvb, old_offset, offset-old_offset, str);
+
+ /* NetBIOS Domain */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_nb_domain, tvb, old_offset, offset-old_offset, str);
+
+ /* NetBIOS Hostname */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_nb_hostname, tvb, old_offset, offset-old_offset, str);
+
+ /* User */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_username, tvb, old_offset, offset-old_offset, str);
+
+ /* Server Site */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_sitename, tvb, old_offset, offset-old_offset, str);
+
+ /* Client Site */
+ old_offset=offset;
+ offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
+ proto_tree_add_string(tree, hf_mscldap_clientsitename, tvb, old_offset, offset-old_offset, str);
+
+ /* get the version number from the end of the buffer, as the
+ length is variable and the version determines what fields
+ need to be decoded */
+ version = tvb_get_letohl(tvb,len-8);
+
+ /* include the extra fields for version 5 with IP s */
+ if ((version & NETLOGON_NT_VERSION_5EX_WITH_IP) == NETLOGON_NT_VERSION_5EX_WITH_IP){
+ /* The ip address is returned as a sockaddr_in structure
+ *
+ * This section may need to be updated if the base Windows APIs
+ * are changed to support ipv6, which currently is not the case.
+ *
+ * The desector assumes the length is based on ipv4 and
+ * ignores the length
+ */
+
+ /* skip the length of the sockaddr_in */
+
+ offset +=1;
+
+ /* add IP address and desect the sockaddr_in structure */
+
+ old_offset = offset + 4;
+ item = proto_tree_add_ipv4(tree, hf_mscldap_netlogon_ipaddress, tvb, old_offset, 4, tvb_get_ipv4(tvb,old_offset));
+
+ if (tree){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(item, ett_mscldap_ipdetails);
+
+ /* get sockaddr family */
+ proto_tree_add_item(subtree, hf_mscldap_netlogon_ipaddress_family, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset +=2;
+
+ /* get sockaddr port */
+ proto_tree_add_item(subtree, hf_mscldap_netlogon_ipaddress_port, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset +=2;
+
+ /* get IP address */
+ proto_tree_add_ipv4(subtree, hf_mscldap_netlogon_ipaddress_ipv4, tvb, offset, 4, tvb_get_ipv4(tvb,offset));
+ offset +=4;
+
+ /* skip the 8 bytes of zeros in the sockaddr structure */
+ offset += 8;
+ }
+
+ }
+
+ break;
+ }
+
+
+ /* complete the decode with the version and token details */
+
+ offset = len-8;
+
+ /* NETLOGON_NT_VERISON Options (MS-ADTS 7.3.1.1) */
+ offset = dissect_mscldap_ntver_flags(tree, tvb, offset);
+
+ /* LM Token */
+ proto_tree_add_item(tree, hf_mscldap_netlogon_lm_token, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+
+ /* NT Token */
+ proto_tree_add_item(tree, hf_mscldap_netlogon_nt_token, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+
+ return tvb_captured_length(tvb);
+}
+
+
+static guint
+get_sasl_ldap_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
+ int offset, void *data _U_)
+{
+ /* sasl encapsulated ldap is 4 bytes plus the length in size */
+ return tvb_get_ntohl(tvb, offset)+4;
+}
+
+static int
+dissect_sasl_ldap_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ dissect_ldap_pdu(tvb, pinfo, tree, FALSE);
+ return tvb_captured_length(tvb);
+}
+
+static guint
+get_normal_ldap_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
+ int offset, void *data _U_)
+{
+ guint32 len;
+ gboolean ind;
+ int data_offset;
+
+ /* normal ldap is tag+len bytes plus the length
+ * offset is where the tag is
+ * offset+1 is where length starts
+ */
+ data_offset=get_ber_length(tvb, offset+1, &len, &ind);
+ return len+data_offset-offset;
+}
+
+static int
+dissect_normal_ldap_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ dissect_ldap_pdu(tvb, pinfo, tree, FALSE);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_ldap_oid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+{
+ char *oid;
+ const char *oidname;
+
+ /* tvb here contains an ascii string that is really an oid */
+/* XXX we should convert the string oid into a real oid so we can use
+ * proto_tree_add_oid() instead.
+ */
+
+ oid=tvb_get_string_enc(wmem_packet_scope(), tvb, 0, tvb_reported_length(tvb), ENC_UTF_8|ENC_NA);
+ if(!oid){
+ return tvb_captured_length(tvb);
+ }
+
+ oidname=oid_resolved_from_string(wmem_packet_scope(), oid);
+
+ if(oidname){
+ proto_tree_add_string_format_value(tree, hf_ldap_oid, tvb, 0, tvb_reported_length(tvb), oid, "%s (%s)",oid,oidname);
+ } else {
+ proto_tree_add_string(tree, hf_ldap_oid, tvb, 0, tvb_captured_length(tvb), oid);
+ }
+ return tvb_captured_length(tvb);
+}
+
+#define LDAP_ACCESSMASK_ADS_CREATE_CHILD 0x00000001
+#define LDAP_ACCESSMASK_ADS_DELETE_CHILD 0x00000002
+#define LDAP_ACCESSMASK_ADS_LIST 0x00000004
+#define LDAP_ACCESSMASK_ADS_SELF_WRITE 0x00000008
+#define LDAP_ACCESSMASK_ADS_READ_PROP 0x00000010
+#define LDAP_ACCESSMASK_ADS_WRITE_PROP 0x00000020
+#define LDAP_ACCESSMASK_ADS_DELETE_TREE 0x00000040
+#define LDAP_ACCESSMASK_ADS_LIST_OBJECT 0x00000080
+#define LDAP_ACCESSMASK_ADS_CONTROL_ACCESS 0x00000100
+
+static void
+ldap_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32 access)
+{
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_CONTROL_ACCESS, tvb, offset, 4, access);
+
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_LIST_OBJECT, tvb, offset, 4, access);
+
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_DELETE_TREE, tvb, offset, 4, access);
+
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_WRITE_PROP, tvb, offset, 4, access);
+
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_READ_PROP, tvb, offset, 4, access);
+
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_SELF_WRITE, tvb, offset, 4, access);
+
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_LIST, tvb, offset, 4, access);
+
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_DELETE_CHILD, tvb, offset, 4, access);
+
+ proto_tree_add_boolean(tree, hf_ldap_AccessMask_ADS_CREATE_CHILD, tvb, offset, 4, access);
+}
+struct access_mask_info ldap_access_mask_info = {
+ "LDAP", /* Name of specific rights */
+ ldap_specific_rights, /* Dissection function */
+ NULL, /* Generic mapping table */
+ NULL /* Standard mapping table */
+};
+
+static int
+dissect_ldap_nt_sec_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ dissect_nt_sec_desc(tvb, 0, pinfo, tree, NULL, TRUE, tvb_reported_length(tvb), &ldap_access_mask_info);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_ldap_sid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+{
+ char *tmpstr;
+
+ /* this octet string contains an NT SID */
+ dissect_nt_sid(tvb, 0, tree, "SID", &tmpstr, hf_ldap_sid);
+ ldapvalue_string=tmpstr;
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_ldap_guid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
+ e_guid_t uuid;
+
+ /* This octet string contained a GUID */
+ dissect_dcerpc_uuid_t(tvb, 0, pinfo, tree, drep, hf_ldap_guid, &uuid);
+
+ ldapvalue_string=(char*)wmem_alloc(wmem_packet_scope(), 1024);
+ g_snprintf(ldapvalue_string, 1023, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ uuid.data1, uuid.data2, uuid.data3, uuid.data4[0], uuid.data4[1],
+ uuid.data4[2], uuid.data4[3], uuid.data4[4], uuid.data4[5],
+ uuid.data4[6], uuid.data4[7]);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_ldap_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ guint32 sasl_len;
+ guint32 ldap_len;
+ gboolean ind;
+ conversation_t *conversation;
+ ldap_conv_info_t *ldap_info = NULL;
+
+ /*
+ * Do we have a conversation for this connection?
+ */
+ conversation = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst,
+ pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+ if(conversation){
+ ldap_info = (ldap_conv_info_t *)conversation_get_proto_data(conversation, proto_ldap);
+ }
+
+ ldm_tree = NULL;
+
+ /* This is a bit tricky. We have to find out whether SASL is used
+ * so that we know how big a header we are supposed to pass
+ * to tcp_dissect_pdus()
+ * We must also cope with the case when a client connects to LDAP
+ * and performs a few unauthenticated searches of LDAP before
+ * it performs the bind on the same tcp connection.
+ */
+ /* check for a SASL header, i.e. assume it is SASL if
+ * 1, first four bytes (SASL length) is an integer
+ * with a value that must be <LDAP_SASL_MAX_BUF and >2
+ * (>2 to fight false positives, 0x00000000 is a common
+ * "random" tcp payload)
+ * (SASL ldap PDUs might be >64k in size, which is why
+ * LDAP_SASL_MAX_BUF is used - defined in packet-ldap.h)
+ *
+ * 2, we must have a conversation and the auth type must
+ * be LDAP_AUTH_SASL
+ */
+ sasl_len=tvb_get_ntohl(tvb, 0);
+
+ if( sasl_len<2 ){
+ goto this_was_not_sasl;
+ }
+
+ if( sasl_len>LDAP_SASL_MAX_BUF ){
+ goto this_was_not_sasl;
+ }
+
+ if((!ldap_info) || (ldap_info->auth_type!=LDAP_AUTH_SASL) ){
+ goto this_was_not_sasl;
+ }
+
+ tcp_dissect_pdus(tvb, pinfo, tree, ldap_desegment, 4, get_sasl_ldap_pdu_len, dissect_sasl_ldap_pdu, data);
+ return tvb_captured_length(tvb);
+
+this_was_not_sasl:
+ /* check if it is a normal BER encoded LDAP packet
+ * i.e. first byte is 0x30 followed by a length that is
+ * <64k
+ * (no ldap PDUs are ever >64kb? )
+ */
+ if(tvb_get_guint8(tvb, 0)!=0x30){
+ goto this_was_not_normal_ldap;
+ }
+
+ /* check that length makes sense */
+ get_ber_length(tvb, 1, &ldap_len, &ind);
+
+ /* don't check ind since indefinite length is never used for ldap (famous last words)*/
+ if(ldap_len<2){
+ goto this_was_not_normal_ldap;
+ }
+
+ /*
+ * The minimun size of a LDAP pdu is 7 bytes
+ *
+ * dumpasn1 -hh ldap-unbind-min.dat
+ *
+ * <30 05 02 01 09 42 00>
+ * 0 5: SEQUENCE {
+ * <02 01 09>
+ * 2 1: INTEGER 9
+ * <42 00>
+ * 5 0: [APPLICATION 2]
+ * : Error: Object has zero length.
+ * : }
+ *
+ * dumpasn1 -hh ldap-unbind-windows.dat
+ *
+ * <30 84 00 00 00 05 02 01 09 42 00>
+ * 0 5: SEQUENCE {
+ * <02 01 09>
+ * 6 1: INTEGER 9
+ * <42 00>
+ * 9 0: [APPLICATION 2]
+ * : Error: Object has zero length.
+ * : }
+ *
+ * 6 bytes would also be ok to get the full length of
+ * the pdu, but as the smallest pdu can be 7 bytes
+ * we can use 7.
+ */
+ tcp_dissect_pdus(tvb, pinfo, tree, ldap_desegment, 7, get_normal_ldap_pdu_len, dissect_normal_ldap_pdu, data);
+
+ goto end;
+
+this_was_not_normal_ldap:
+
+ /* Ok it might be a strange case of SASL still
+ * It has been seen with Exchange setup to MS AD
+ * when Exchange pretend that there is SASL but in fact data are still
+ * in clear*/
+ if ((sasl_len + 4) == (guint32)tvb_reported_length_remaining(tvb, 0))
+ tcp_dissect_pdus(tvb, pinfo, tree, ldap_desegment, 4, get_sasl_ldap_pdu_len, dissect_sasl_ldap_pdu, data);
+ end:
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_mscldap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ dissect_ldap_pdu(tvb, pinfo, tree, TRUE);
+ return tvb_captured_length(tvb);
+}
+
+
+static void
+ldap_cleanup(void)
+{
+ ldap_conv_info_t *ldap_info;
+
+ /* Free up state attached to the ldap_info structures */
+ for (ldap_info = ldap_info_items; ldap_info != NULL; ) {
+ ldap_conv_info_t *next;
+
+ g_free(ldap_info->auth_mech);
+ g_hash_table_destroy(ldap_info->matched);
+ g_hash_table_destroy(ldap_info->unmatched);
+
+ next = ldap_info->next;
+ g_free(ldap_info);
+ ldap_info = next;
+ }
+
+ ldap_info_items = NULL;
+}
+
+/*--- proto_register_ldap -------------------------------------------*/
+void proto_register_ldap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+
+ { &hf_ldap_sasl_buffer_length,
+ { "SASL Buffer Length", "ldap.sasl_buffer_length",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_ldap_response_in,
+ { "Response In", "ldap.response_in",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "The response to this LDAP request is in this frame", HFILL }},
+ { &hf_ldap_response_to,
+ { "Response To", "ldap.response_to",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "This is a response to the LDAP request in this frame", HFILL }},
+ { &hf_ldap_time,
+ { "Time", "ldap.time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "The time between the Call and the Reply", HFILL }},
+
+ { &hf_mscldap_netlogon_opcode,
+ { "Operation code", "mscldap.netlogon.opcode",
+ FT_UINT16, BASE_DEC, VALS(netlogon_opcode_vals), 0x0,
+ "LDAP ping operation code", HFILL }},
+
+ { &hf_mscldap_netlogon_ipaddress_family,
+ { "Family", "mscldap.netlogon.ipaddress.family",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_mscldap_netlogon_ipaddress_ipv4,
+ { "IPv4", "mscldap.netlogon.ipaddress.ipv4",
+ FT_IPv4, BASE_NONE, NULL, 0x0,
+ "IP Address", HFILL }},
+
+ { &hf_mscldap_netlogon_ipaddress_port,
+ { "Port", "mscldap.netlogon.ipaddress.port",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_mscldap_netlogon_ipaddress,
+ { "IP Address","mscldap.netlogon.ipaddress",
+ FT_IPv4, BASE_NONE, NULL, 0x0,
+ "Domain Controller IP Address", HFILL }},
+
+ { &hf_mscldap_netlogon_lm_token,
+ { "LM Token", "mscldap.netlogon.lm_token",
+ FT_UINT16, BASE_HEX, NULL, 0x0,
+ "MUST be set to 0xFFFF", HFILL }},
+
+ { &hf_mscldap_netlogon_nt_token,
+ { "NT Token", "mscldap.netlogon.nt_token",
+ FT_UINT16, BASE_HEX, NULL, 0x0,
+ "MUST be set to 0xFFFF", HFILL }},
+
+ { &hf_mscldap_netlogon_flags,
+ { "Flags", "mscldap.netlogon.flags",
+ FT_UINT32, BASE_HEX, NULL, 0x0,
+ "Netlogon flags describing the DC properties", HFILL }},
+
+ { &hf_mscldap_ntver_flags,
+ { "Version Flags", "mscldap.ntver.flags",
+ FT_UINT32, BASE_HEX, NULL, 0x0,
+ "NETLOGON_NT_VERSION Options Bits", HFILL }},
+
+ { &hf_mscldap_domain_guid,
+ { "Domain GUID", "mscldap.domain.guid",
+ FT_GUID, BASE_NONE, NULL, 0x0,
+ "Value of the NC's GUID attribute", HFILL }},
+
+ { &hf_mscldap_forest,
+ { "Forest", "mscldap.forest",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "DNS name of the forest", HFILL }},
+
+ { &hf_mscldap_domain,
+ { "Domain", "mscldap.domain",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "DNS name of the NC", HFILL }},
+
+ { &hf_mscldap_hostname,
+ { "Hostname", "mscldap.hostname",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "DNS name of server", HFILL }},
+
+ { &hf_mscldap_nb_domain,
+ { "NetBIOS Domain", "mscldap.nb_domain",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "NetBIOS name of the NC", HFILL }},
+
+ { &hf_mscldap_nb_hostname,
+ { "NetBIOS Hostname", "mscldap.nb_hostname",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "NetBIOS name of the server", HFILL }},
+
+ { &hf_mscldap_username,
+ { "Username", "mscldap.username",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "User specified in client's request", HFILL }},
+
+ { &hf_mscldap_sitename,
+ { "Server Site", "mscldap.sitename",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Site name of the server", HFILL }},
+
+ { &hf_mscldap_clientsitename,
+ { "Client Site", "mscldap.clientsitename",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Site name of the client", HFILL }},
+
+ { &hf_ldap_sid,
+ { "Sid", "ldap.sid",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_mscldap_ntver_flags_v1,
+ { "V1", "mscldap.ntver.searchflags.v1", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_v1), 0x00000001, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_v5,
+ { "V5", "mscldap.ntver.searchflags.v5", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_v5), 0x00000002, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_v5ex,
+ { "V5EX", "mscldap.ntver.searchflags.v5ex", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_v5ex), 0x00000004, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_v5ep,
+ { "V5EP", "mscldap.ntver.searchflags.v5ep", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_v5ep), 0x00000008, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_vcs,
+ { "VCS", "mscldap.ntver.searchflags.vcs", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_vcs), 0x00000010, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_vnt4,
+ { "VNT4", "mscldap.ntver.searchflags.vnt4", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_vnt4), 0x01000000, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_vpdc,
+ { "VPDC", "mscldap.ntver.searchflags.vpdc", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_vpdc), 0x10000000, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_vip,
+ { "VIP", "mscldap.ntver.searchflags.vip", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_vip), 0x20000000, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_vl,
+ { "VL", "mscldap.ntver.searchflags.vl", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_vl), 0x40000000, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+ { &hf_mscldap_ntver_flags_vgc,
+ { "VGC", "mscldap.ntver.searchflags.vgc", FT_BOOLEAN, 32,
+ TFS(&tfs_ntver_vgc), 0x80000000, "See section 7.3.1.1 of MS-ADTS specification", HFILL }},
+
+
+ { &hf_mscldap_netlogon_flags_pdc,
+ { "PDC", "mscldap.netlogon.flags.pdc", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_pdc), 0x00000001, "Is this DC a PDC or not?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_gc,
+ { "GC", "mscldap.netlogon.flags.gc", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_gc), 0x00000004, "Does this dc service as a GLOBAL CATALOGUE?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_ldap,
+ { "LDAP", "mscldap.netlogon.flags.ldap", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_ldap), 0x00000008, "Does this DC act as an LDAP server?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_ds,
+ { "DS", "mscldap.netlogon.flags.ds", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_ds), 0x00000010, "Does this dc provide DS services?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_kdc,
+ { "KDC", "mscldap.netlogon.flags.kdc", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_kdc), 0x00000020, "Does this dc act as a KDC?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_timeserv,
+ { "Time Serv", "mscldap.netlogon.flags.timeserv", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_timeserv), 0x00000040, "Does this dc provide time services (ntp) ?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_closest,
+ { "Closest", "mscldap.netlogon.flags.closest", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_closest), 0x00000080, "Is this the closest dc?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_writable,
+ { "Writable", "mscldap.netlogon.flags.writable", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_writable), 0x00000100, "Is this dc writable?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_good_timeserv,
+ { "Good Time Serv", "mscldap.netlogon.flags.good_timeserv", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_good_timeserv), 0x00000200, "Is this a Good Time Server? (i.e. does it have a hardware clock)", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_ndnc,
+ { "NDNC", "mscldap.netlogon.flags.ndnc", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_ndnc), 0x00000400, "Is this an NDNC dc?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_rodc,
+ { "RODC", "mscldap.netlogon.flags.rodc", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_rodc), 0x00000800, "Is this an read only dc?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_wdc,
+ { "WDC", "mscldap.netlogon.flags.writabledc.", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_wdc), 0x00001000, "Is this an writable dc (Windows 2008)?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_dns,
+ { "DNS", "mscldap.netlogon.flags.dnsname", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_dns), 0x20000000, "Does the server have a dns name (Windows 2008)?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_dnc,
+ { "DNC", "mscldap.netlogon.flags.defaultnc", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_dnc), 0x40000000, "Is this the default NC (Windows 2008)?", HFILL }},
+
+ { &hf_mscldap_netlogon_flags_fnc,
+ { "FDC", "mscldap.netlogon.flags.forestnc", FT_BOOLEAN, 32,
+ TFS(&tfs_ads_fnc), 0x80000000, "Is the the NC the default forest root(Windows 2008)?", HFILL }},
+
+ { &hf_ldap_guid,
+ { "GUID", "ldap.guid", FT_GUID, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_CREATE_CHILD,
+ { "Ads Create Child", "ldap.AccessMask.ADS_CREATE_CHILD", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_CREATE_CHILD, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_DELETE_CHILD,
+ { "Ads Delete Child", "ldap.AccessMask.ADS_DELETE_CHILD", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_DELETE_CHILD, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_LIST,
+ { "Ads List", "ldap.AccessMask.ADS_LIST", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_LIST, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_SELF_WRITE,
+ { "Ads Self Write", "ldap.AccessMask.ADS_SELF_WRITE", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_SELF_WRITE, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_READ_PROP,
+ { "Ads Read Prop", "ldap.AccessMask.ADS_READ_PROP", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_READ_PROP, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_WRITE_PROP,
+ { "Ads Write Prop", "ldap.AccessMask.ADS_WRITE_PROP", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_WRITE_PROP, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_DELETE_TREE,
+ { "Ads Delete Tree", "ldap.AccessMask.ADS_DELETE_TREE", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_DELETE_TREE, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_LIST_OBJECT,
+ { "Ads List Object", "ldap.AccessMask.ADS_LIST_OBJECT", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_LIST_OBJECT, NULL, HFILL }},
+
+ { &hf_ldap_AccessMask_ADS_CONTROL_ACCESS,
+ { "Ads Control Access", "ldap.AccessMask.ADS_CONTROL_ACCESS", FT_BOOLEAN, 32, TFS(&tfs_set_notset), LDAP_ACCESSMASK_ADS_CONTROL_ACCESS, NULL, HFILL }},
+
+ { &hf_ldap_LDAPMessage_PDU,
+ { "LDAPMessage", "ldap.LDAPMessage_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+
+ { &hf_ldap_object_security_flag,
+ { "Flag Object_Security", "ldap.object_security_flag", FT_BOOLEAN, 32, NULL, 0x00000001, NULL, HFILL }},
+
+ { &hf_ldap_ancestor_first_flag,
+ { "Flag Ancestor_First", "ldap.ancestor_first_flag", FT_BOOLEAN, 32, NULL, 0x00000800, NULL, HFILL }},
+
+ { &hf_ldap_public_data_only_flag,
+ { "Flag Public_Data_Only", "ldap.public_data_only_flag", FT_BOOLEAN, 32, NULL, 0x00002000, NULL, HFILL }},
+
+ { &hf_ldap_incremental_value_flag,
+ { "Flag Incremental_Value", "ldap.incremental_value_flag", FT_BOOLEAN, 32, NULL, 0x80000000, NULL, HFILL }},
+
+ { &hf_ldap_oid,
+ { "OID", "ldap.oid", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+ { &hf_ldap_gssapi_encrypted_payload,
+ { "GSS-API Encrypted payload", "ldap.gssapi_encrypted_payload", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+#include "packet-ldap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ldap,
+ &ett_ldap_payload,
+ &ett_ldap_sasl_blob,
+ &ett_ldap_msg,
+ &ett_mscldap_netlogon_flags,
+ &ett_mscldap_ntver_flags,
+ &ett_mscldap_ipdetails,
+ &ett_ldap_DirSyncFlagsSubEntry,
+
+#include "packet-ldap-ettarr.c"
+ };
+ /* UAT for header fields */
+ static uat_field_t custom_attribute_types_uat_fields[] = {
+ UAT_FLD_CSTRING(attribute_types, attribute_type, "Attribute type", "Attribute type"),
+ UAT_FLD_CSTRING(attribute_types, attribute_desc, "Description", "Description of the value matching type"),
+ UAT_END_FIELDS
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_ldap_exceeded_filter_length, { "ldap.exceeded_filter_length", PI_UNDECODED, PI_ERROR, "Filter length exceeds number. Giving up", EXPFILL }},
+ { &ei_ldap_too_many_filter_elements, { "ldap.too_many_filter_elements", PI_UNDECODED, PI_ERROR, "Found more than %%u filter elements. Giving up.", EXPFILL }},
+ };
+
+ expert_module_t* expert_ldap;
+ module_t *ldap_module;
+ uat_t *attributes_uat;
+
+ /* Register protocol */
+ proto_ldap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ldap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_ldap = expert_register_protocol(proto_ldap);
+ expert_register_field_array(expert_ldap, ei, array_length(ei));
+
+ register_dissector("ldap", dissect_ldap_tcp, proto_ldap);
+
+ ldap_module = prefs_register_protocol(proto_ldap, prefs_register_ldap);
+ prefs_register_bool_preference(ldap_module, "desegment_ldap_messages",
+ "Reassemble LDAP messages spanning multiple TCP segments",
+ "Whether the LDAP dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &ldap_desegment);
+
+ prefs_register_uint_preference(ldap_module, "tcp.port", "LDAP TCP Port",
+ "Set the port for LDAP operations",
+ 10, &global_ldap_tcp_port);
+
+ prefs_register_uint_preference(ldap_module, "ssl.port", "LDAPS TCP Port",
+ "Set the port for LDAP operations over SSL",
+ 10, &global_ldaps_tcp_port);
+ /* UAT */
+ attributes_uat = uat_new("Custom LDAP AttributeValue types",
+ sizeof(attribute_type_t),
+ "custom_ldap_attribute_types",
+ TRUE,
+ &attribute_types,
+ &num_attribute_types,
+ /* specifies named fields, so affects dissection
+ and the set of named fields */
+ UAT_AFFECTS_DISSECTION|UAT_AFFECTS_FIELDS,
+ NULL,
+ attribute_types_copy_cb,
+ attribute_types_update_cb,
+ attribute_types_free_cb,
+ attribute_types_initialize_cb,
+ custom_attribute_types_uat_fields);
+
+ prefs_register_uat_preference(ldap_module, "custom_ldap_attribute_types",
+ "Custom AttributeValue types",
+ "A table to define custom LDAP attribute type values for which fields can be setup and used for filtering/data extraction etc.",
+ attributes_uat);
+
+ prefs_register_obsolete_preference(ldap_module, "max_pdu");
+
+ proto_cldap = proto_register_protocol(
+ "Connectionless Lightweight Directory Access Protocol",
+ "CLDAP", "cldap");
+
+ register_cleanup_routine(ldap_cleanup);
+ ldap_tap=register_tap("ldap");
+
+ ldap_name_dissector_table = register_dissector_table("ldap.name", "LDAP Attribute Type Dissectors", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ register_srt_table(proto_ldap, NULL, 1, ldapstat_packet, ldapstat_init, NULL);
+}
+
+
+/*--- proto_reg_handoff_ldap ---------------------------------------*/
+void
+proto_reg_handoff_ldap(void)
+{
+ dissector_handle_t cldap_handle;
+ ldap_handle = find_dissector("ldap");
+
+ dissector_add_uint("tcp.port", TCP_PORT_GLOBALCAT_LDAP, ldap_handle);
+
+ cldap_handle = create_dissector_handle(dissect_mscldap, proto_cldap);
+ dissector_add_uint("udp.port", UDP_PORT_CLDAP, cldap_handle);
+
+ gssapi_handle = find_dissector("gssapi");
+ gssapi_wrap_handle = find_dissector("gssapi_verf");
+ spnego_handle = find_dissector("spnego");
+
+ ntlmssp_handle = find_dissector("ntlmssp");
+
+ ssl_handle = find_dissector("ssl");
+
+ prefs_register_ldap();
+
+/* http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dsml/dsml/ldap_controls_and_session_support.asp */
+ oid_add_from_string("LDAP_PAGED_RESULT_OID_STRING","1.2.840.113556.1.4.319");
+ oid_add_from_string("LDAP_SERVER_SHOW_DELETED_OID","1.2.840.113556.1.4.417");
+ oid_add_from_string("LDAP_SERVER_SORT_OID","1.2.840.113556.1.4.473");
+ oid_add_from_string("LDAP_CONTROL_SORT_RESP_OID","1.2.840.113556.1.4.474");
+ oid_add_from_string("LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID","1.2.840.113556.1.4.521");
+ oid_add_from_string("LDAP_SERVER_NOTIFICATION_OID","1.2.840.113556.1.4.528");
+ oid_add_from_string("LDAP_SERVER_EXTENDED_DN_OID","1.2.840.113556.1.4.529");
+ oid_add_from_string("meetingAdvertiseScope","1.2.840.113556.1.4.582");
+ oid_add_from_string("LDAP_SERVER_LAZY_COMMIT_OID","1.2.840.113556.1.4.619");
+ oid_add_from_string("mhsORAddress","1.2.840.113556.1.4.650");
+ oid_add_from_string("managedObjects","1.2.840.113556.1.4.654");
+ oid_add_from_string("LDAP_CAP_ACTIVE_DIRECTORY_OID","1.2.840.113556.1.4.800");
+ oid_add_from_string("LDAP_SERVER_SD_FLAGS_OID","1.2.840.113556.1.4.801");
+ oid_add_from_string("LDAP_OID_COMPARATOR_OR","1.2.840.113556.1.4.804");
+ oid_add_from_string("LDAP_SERVER_TREE_DELETE_OID","1.2.840.113556.1.4.805");
+ oid_add_from_string("LDAP_SERVER_DIRSYNC_OID","1.2.840.113556.1.4.841");
+ oid_add_from_string("None","1.2.840.113556.1.4.970");
+ oid_add_from_string("LDAP_SERVER_VERIFY_NAME_OID","1.2.840.113556.1.4.1338");
+ oid_add_from_string("LDAP_SERVER_DOMAIN_SCOPE_OID","1.2.840.113556.1.4.1339");
+ oid_add_from_string("LDAP_SERVER_SEARCH_OPTIONS_OID","1.2.840.113556.1.4.1340");
+ oid_add_from_string("LDAP_SERVER_PERMISSIVE_MODIFY_OID","1.2.840.113556.1.4.1413");
+ oid_add_from_string("LDAP_SERVER_ASQ_OID","1.2.840.113556.1.4.1504");
+ oid_add_from_string("LDAP_CAP_ACTIVE_DIRECTORY_V51_OID","1.2.840.113556.1.4.1670");
+ oid_add_from_string("LDAP_SERVER_FAST_BIND_OID","1.2.840.113556.1.4.1781");
+ oid_add_from_string("LDAP_CAP_ACTIVE_DIRECTORY_LDAP_INTEG_OID","1.2.840.113556.1.4.1791");
+ oid_add_from_string("msDS-ObjectReference","1.2.840.113556.1.4.1840");
+ oid_add_from_string("msDS-QuotaEffective","1.2.840.113556.1.4.1848");
+ oid_add_from_string("LDAP_CAP_ACTIVE_DIRECTORY_ADAM_OID","1.2.840.113556.1.4.1851");
+ oid_add_from_string("msDS-PortSSL","1.2.840.113556.1.4.1860");
+ oid_add_from_string("msDS-isRODC","1.2.840.113556.1.4.1960");
+ oid_add_from_string("msDS-SDReferenceDomain","1.2.840.113556.1.4.1711");
+ oid_add_from_string("msDS-AdditionalDnsHostName","1.2.840.113556.1.4.1717");
+ oid_add_from_string("None","1.3.6.1.4.1.1466.101.119.1");
+ oid_add_from_string("LDAP_START_TLS_OID","1.3.6.1.4.1.1466.20037");
+ oid_add_from_string("LDAP_CONTROL_VLVREQUEST VLV","2.16.840.1.113730.3.4.9");
+ oid_add_from_string("LDAP_CONTROL_VLVRESPONSE VLV","2.16.840.1.113730.3.4.10");
+ oid_add_from_string("LDAP_SERVER_QUOTA_CONTROL_OID","1.2.840.113556.1.4.1852");
+ oid_add_from_string("LDAP_SERVER_RANGE_OPTION_OID","1.2.840.113556.1.4.802");
+ oid_add_from_string("LDAP_SERVER_SHUTDOWN_NOTIFY_OID","1.2.840.113556.1.4.1907");
+ oid_add_from_string("LDAP_SERVER_RANGE_RETRIEVAL_NOERR_OID","1.2.840.113556.1.4.1948");
+
+ /* RFC2798 */
+ oid_add_from_string("inetOrgPerson","2.16.840.1.113730.3.2.2");
+
+ dissector_add_string("ldap.name", "netlogon", create_dissector_handle(dissect_NetLogon_PDU, proto_cldap));
+ dissector_add_string("ldap.name", "objectGUID", create_dissector_handle(dissect_ldap_guid, proto_ldap));
+ dissector_add_string("ldap.name", "supportedControl", create_dissector_handle(dissect_ldap_oid, proto_ldap));
+ dissector_add_string("ldap.name", "supportedCapabilities", create_dissector_handle(dissect_ldap_oid, proto_ldap));
+ dissector_add_string("ldap.name", "objectSid", create_dissector_handle(dissect_ldap_sid, proto_ldap));
+ dissector_add_string("ldap.name", "nTSecurityDescriptor", create_dissector_handle(dissect_ldap_nt_sec_desc, proto_ldap));
+
+#include "packet-ldap-dis-tab.c"
+
+
+}
+
+static void
+prefs_register_ldap(void)
+{
+
+ if(tcp_port != global_ldap_tcp_port) {
+ if(tcp_port)
+ dissector_delete_uint("tcp.port", tcp_port, ldap_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_ldap_tcp_port;
+
+ if(tcp_port)
+ dissector_add_uint("tcp.port", tcp_port, ldap_handle);
+
+ }
+
+ if(ssl_port != global_ldaps_tcp_port) {
+ if(ssl_port)
+ ssl_dissector_delete(ssl_port, ldap_handle);
+
+ /* Set our port number for future use */
+ ssl_port = global_ldaps_tcp_port;
+
+ if(ssl_port)
+ ssl_dissector_add(ssl_port, ldap_handle);
+ }
+
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.h b/epan/dissectors/asn1/ldap/packet-ldap-template.h
new file mode 100644
index 0000000000..ff4dc6c8f2
--- /dev/null
+++ b/epan/dissectors/asn1/ldap/packet-ldap-template.h
@@ -0,0 +1,111 @@
+/* packet-ldap.h
+ * Routines for ros packet dissection
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __PACKET_LDAP_H__
+#define __PACKET_LDAP_H__
+
+# include <epan/packet.h> /* for dissector_*_t types */
+#include "ws_symbol_export.h"
+
+/*
+ * These are all APPLICATION types; the value is the type tag.
+ */
+#define LDAP_REQ_BIND 0
+#define LDAP_REQ_UNBIND 2
+#define LDAP_REQ_SEARCH 3
+#define LDAP_REQ_MODIFY 6
+#define LDAP_REQ_ADD 8
+#define LDAP_REQ_DELETE 10
+#define LDAP_REQ_MODRDN 12
+#define LDAP_REQ_COMPARE 14
+#define LDAP_REQ_ABANDON 16
+#define LDAP_REQ_EXTENDED 23 /* LDAP V3 only */
+
+#define LDAP_RES_BIND 1
+#define LDAP_RES_SEARCH_ENTRY 4
+#define LDAP_RES_SEARCH_REF 19 /* LDAP V3 only */
+#define LDAP_RES_SEARCH_RESULT 5
+#define LDAP_RES_MODIFY 7
+#define LDAP_RES_ADD 9
+#define LDAP_RES_DELETE 11
+#define LDAP_RES_MODRDN 13
+#define LDAP_RES_COMPARE 15
+#define LDAP_RES_EXTENDED 24 /* LDAP V3 only */
+#define LDAP_RES_INTERMEDIATE 25 /* LDAP V3 only */
+
+/*
+ * These are all CONTEXT types; the value is the type tag.
+ */
+
+/* authentication type tags */
+#define LDAP_AUTH_SIMPLE 0
+#define LDAP_AUTH_KRBV4LDAP 1 /* LDAP V2 only */
+#define LDAP_AUTH_KRBV4DSA 2 /* LDAP V2 only */
+#define LDAP_AUTH_SASL 3 /* LDAP V3 only */
+
+/* filter type tags */
+#define LDAP_FILTER_AND 0
+#define LDAP_FILTER_OR 1
+#define LDAP_FILTER_NOT 2
+#define LDAP_FILTER_EQUALITY 3
+#define LDAP_FILTER_SUBSTRINGS 4
+#define LDAP_FILTER_GE 5
+#define LDAP_FILTER_LE 6
+#define LDAP_FILTER_PRESENT 7
+#define LDAP_FILTER_APPROX 8
+#define LDAP_FILTER_EXTENSIBLE 9 /* LDAP V3 only */
+
+#define LDAP_MOD_ADD 0
+#define LDAP_MOD_DELETE 1
+#define LDAP_MOD_REPLACE 2
+
+#define LDAP_SASL_MAX_BUF 1024*1024
+
+#define NETLOGON_NT_VERSION_1 1
+#define NETLOGON_NT_VERSION_5 2
+#define NETLOGON_NT_VERSION_5EX 4
+#define NETLOGON_NT_VERSION_5EX_WITH_IP 8
+#define NETLOGON_NT_VERSION_WITH_CLOSEST_SITE 16
+
+#define LOGON_SAM_LOGON_RESPONSE 19
+#define LOGON_SAM_LOGON_RESPONSE_EX 23
+
+typedef struct ldap_call_response {
+ gboolean is_request;
+ guint32 req_frame;
+ nstime_t req_time;
+ guint32 rep_frame;
+ guint messageId;
+ guint protocolOpTag;
+} ldap_call_response_t;
+
+WS_DLL_PUBLIC
+int dissect_mscldap_string(tvbuff_t *tvb, int offset, char *str, int max_len, gboolean prepend_dot _U_);
+
+WS_DLL_PUBLIC const value_string ldap_procedure_names[];
+
+/*#include "packet-ldap-exp.h" */
+
+#endif /* PACKET_LDAP_H */
+
+
diff --git a/epan/dissectors/asn1/logotypecertextn/CMakeLists.txt b/epan/dissectors/asn1/logotypecertextn/CMakeLists.txt
new file mode 100644
index 0000000000..64ab3dade5
--- /dev/null
+++ b/epan/dissectors/asn1/logotypecertextn/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME logotypecertextn )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ LogotypeCertExtn.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/logotypecertextn/LogotypeCertExtn.asn b/epan/dissectors/asn1/logotypecertextn/LogotypeCertExtn.asn
new file mode 100644
index 0000000000..babaaa20f8
--- /dev/null
+++ b/epan/dissectors/asn1/logotypecertextn/LogotypeCertExtn.asn
@@ -0,0 +1,117 @@
+-- This ASN.1 module was taken from RFC3709.
+--
+-- The copyright statement of the RFC as follows :
+--
+-- Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (2004). This document is subject
+-- to the rights, licenses and restrictions contained in BCP 78 and
+-- except as set forth therein, the authors retain all their rights.
+--
+-- This document and the information contained herein are provided on an
+-- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
+-- REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
+-- INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
+-- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+-- THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+-- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+LogotypeCertExtn
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-logotype(22) }
+
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ AlgorithmIdentifier FROM AuthenticationFramework -- RFC 3280
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-explicit(18) };
+
+
+-- Logotype Extension OID
+--
+id-pe-logotype OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-pe(1) 12 }
+
+
+-- Logotype Extension Syntax
+
+LogotypeExtn ::= SEQUENCE {
+ communityLogos [0] EXPLICIT SEQUENCE OF LogotypeInfo OPTIONAL,
+ issuerLogo [1] EXPLICIT LogotypeInfo OPTIONAL,
+ subjectLogo [2] EXPLICIT LogotypeInfo OPTIONAL,
+ otherLogos [3] EXPLICIT SEQUENCE OF OtherLogotypeInfo OPTIONAL }
+
+LogotypeInfo ::= CHOICE {
+ direct [0] LogotypeData,
+ indirect [1] LogotypeReference }
+
+LogotypeData ::= SEQUENCE {
+ image SEQUENCE OF LogotypeImage OPTIONAL,
+ audio [1] SEQUENCE OF LogotypeAudio OPTIONAL }
+
+LogotypeImage ::= SEQUENCE {
+ imageDetails LogotypeDetails,
+ imageInfo LogotypeImageInfo OPTIONAL }
+
+LogotypeAudio ::= SEQUENCE {
+ audioDetails LogotypeDetails,
+ audioInfo LogotypeAudioInfo OPTIONAL }
+
+LogotypeDetails ::= SEQUENCE {
+ mediaType IA5String, -- MIME media type name and optional
+ -- parameters
+ logotypeHash SEQUENCE SIZE (1..MAX) OF HashAlgAndValue,
+ logotypeURI SEQUENCE SIZE (1..MAX) OF IA5String }
+
+LogotypeImageInfo ::= SEQUENCE {
+ type [0] LogotypeImageType DEFAULT color,
+ fileSize INTEGER, -- In octets
+ xSize INTEGER, -- Horizontal size in pixels
+ ySize INTEGER, -- Vertical size in pixels
+ resolution LogotypeImageResolution OPTIONAL,
+ language [4] IA5String OPTIONAL } -- RFC 3066 Language Tag
+
+LogotypeImageType ::= INTEGER { grayScale(0), color(1) }
+
+LogotypeImageResolution ::= CHOICE {
+ numBits [1] INTEGER, -- Resolution in bits
+ tableSize [2] INTEGER } -- Number of colors or grey tones
+
+LogotypeAudioInfo ::= SEQUENCE {
+ fileSize INTEGER, -- In octets
+ playTime INTEGER, -- In milliseconds
+ channels INTEGER, -- 1=mono, 2=stereo, 4=quad
+ sampleRate [3] INTEGER OPTIONAL, -- Samples per second
+ language [4] IA5String OPTIONAL } -- RFC 3066 Language Tag
+
+OtherLogotypeInfo ::= SEQUENCE {
+ logotypeType OBJECT IDENTIFIER,
+ info LogotypeInfo }
+
+LogotypeReference ::= SEQUENCE {
+ refStructHash SEQUENCE SIZE (1..MAX) OF HashAlgAndValue,
+ refStructURI SEQUENCE SIZE (1..MAX) OF IA5String }
+ -- Places to get the same "LTD" file
+
+-- Note: The content of referenced "LTD" files is defined by the
+-- LogotypeData type
+
+HashAlgAndValue ::= SEQUENCE {
+ hashAlg AlgorithmIdentifier,
+ hashValue OCTET STRING }
+
+-- Other logotype type OIDs
+
+id-logo OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) 20 }
+
+
+id-logo-loyalty OBJECT IDENTIFIER ::= { id-logo 1 }
+
+id-logo-background OBJECT IDENTIFIER ::= { id-logo 2 }
+END
diff --git a/epan/dissectors/asn1/logotypecertextn/Makefile.am b/epan/dissectors/asn1/logotypecertextn/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/logotypecertextn/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/logotypecertextn/Makefile.common b/epan/dissectors/asn1/logotypecertextn/Makefile.common
new file mode 100644
index 0000000000..726cbde191
--- /dev/null
+++ b/epan/dissectors/asn1/logotypecertextn/Makefile.common
@@ -0,0 +1,47 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=logotypecertextn
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ LogotypeCertExtn.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist # for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../x509af/x509af-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/logotypecertextn/Makefile.nmake b/epan/dissectors/asn1/logotypecertextn/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/logotypecertextn/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/logotypecertextn/logotypecertextn.cnf b/epan/dissectors/asn1/logotypecertextn/logotypecertextn.cnf
new file mode 100644
index 0000000000..d3c6906be9
--- /dev/null
+++ b/epan/dissectors/asn1/logotypecertextn/logotypecertextn.cnf
@@ -0,0 +1,28 @@
+# logotypecertextn.cnf
+# LogotypeCertExtn conformation file
+
+#.IMPORT ../x509af/x509af-exp.cnf
+
+#.EXPORTS
+
+#.PDU
+
+#.REGISTER
+LogotypeExtn B "1.3.6.1.5.5.7.1.12" "id-pe-logotype"
+LogotypeExtn B "1.3.6.1.5.5.7.20.1" "id-pe-logo-loyalty"
+LogotypeExtn B "1.3.6.1.5.5.7.20.2" "id-pe-logo-background"
+
+#.FN_FTR LogotypeDetails/logotypeURI/_item
+ PROTO_ITEM_SET_URL(actx->created_item);
+
+#.FN_FTR LogotypeReference/refStructURI/_item
+ PROTO_ITEM_SET_URL(actx->created_item);
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
+
diff --git a/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c b/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c
new file mode 100644
index 0000000000..2bdc5afb91
--- /dev/null
+++ b/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c
@@ -0,0 +1,77 @@
+/* packet-logotypecertextn.c
+ * Routines for RFC3709 Logotype Certificate Extensions packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include "packet-ber.h"
+#include "packet-logotypecertextn.h"
+#include "packet-x509af.h"
+
+#define PNAME "Logotype Certificate Extensions"
+#define PSNAME "LogotypeCertExtn"
+#define PFNAME "logotypecertextn"
+
+void proto_register_logotypecertextn(void);
+void proto_reg_handoff_logotypecertextn(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_logotypecertextn = -1;
+#include "packet-logotypecertextn-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-logotypecertextn-ett.c"
+
+
+#include "packet-logotypecertextn-fn.c"
+
+
+/*--- proto_register_logotypecertextn ----------------------------------------------*/
+void proto_register_logotypecertextn(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-logotypecertextn-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-logotypecertextn-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_logotypecertextn = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_logotypecertextn, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_logotypecertextn -------------------------------------------*/
+void proto_reg_handoff_logotypecertextn(void) {
+#include "packet-logotypecertextn-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.h b/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.h
new file mode 100644
index 0000000000..02983cb11d
--- /dev/null
+++ b/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.h
@@ -0,0 +1,30 @@
+/* packet-logotypecertextn.h
+ * Routines for RFC3907 Logotype Certificate Extensions packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_LOGOTYPE_CERT_EXTN_H
+#define PACKET_LOGOTYPE_CERT_EXTN_H
+
+/*#include "packet-logotypecertextn-exp.h"*/
+
+#endif /* PACKET_LOGOTYPE_CERT_EXTN_H */
+
diff --git a/epan/dissectors/asn1/lpp/CMakeLists.txt b/epan/dissectors/asn1/lpp/CMakeLists.txt
new file mode 100644
index 0000000000..d8299430b6
--- /dev/null
+++ b/epan/dissectors/asn1/lpp/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME lpp )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ LPP.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/lpp/LPP.asn b/epan/dissectors/asn1/lpp/LPP.asn
new file mode 100644
index 0000000000..52467aec50
--- /dev/null
+++ b/epan/dissectors/asn1/lpp/LPP.asn
@@ -0,0 +1,2519 @@
+-- 3GPP TS 36.355 V13.0.0 (2015-12)
+--
+
+LPP-PDU-Definitions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lpp (7) version1 (1) lpp-PDU-Definitions (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+LPP-Message ::= SEQUENCE {
+ transactionID LPP-TransactionID OPTIONAL, -- Need ON
+ endTransaction BOOLEAN,
+ sequenceNumber SequenceNumber OPTIONAL, -- Need ON
+ acknowledgement Acknowledgement OPTIONAL, -- Need ON
+ lpp-MessageBody LPP-MessageBody OPTIONAL -- Need ON
+}
+
+SequenceNumber ::= INTEGER (0..255)
+
+Acknowledgement ::= SEQUENCE {
+ ackRequested BOOLEAN,
+ ackIndicator SequenceNumber OPTIONAL
+}
+
+
+LPP-MessageBody ::= CHOICE {
+ c1 CHOICE {
+ requestCapabilities RequestCapabilities,
+ provideCapabilities ProvideCapabilities,
+ requestAssistanceData RequestAssistanceData,
+ provideAssistanceData ProvideAssistanceData,
+ requestLocationInformation RequestLocationInformation,
+ provideLocationInformation ProvideLocationInformation,
+ abort Abort,
+ error Error,
+ spare7 NULL, spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL, spare0 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+LPP-TransactionID ::= SEQUENCE {
+ initiator Initiator,
+ transactionNumber TransactionNumber,
+ ...
+}
+
+Initiator ::= ENUMERATED {
+ locationServer,
+ targetDevice,
+ ...
+}
+
+TransactionNumber ::= INTEGER (0..255)
+
+
+RequestCapabilities ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ requestCapabilities-r9 RequestCapabilities-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RequestCapabilities-r9-IEs ::= SEQUENCE {
+ commonIEsRequestCapabilities CommonIEsRequestCapabilities OPTIONAL, -- Need ON
+ a-gnss-RequestCapabilities A-GNSS-RequestCapabilities OPTIONAL, -- Need ON
+ otdoa-RequestCapabilities OTDOA-RequestCapabilities OPTIONAL, -- Need ON
+ ecid-RequestCapabilities ECID-RequestCapabilities OPTIONAL, -- Need ON
+ epdu-RequestCapabilities EPDU-Sequence OPTIONAL, -- Need ON
+ ...,
+ [[ sensor-RequestCapabilities-r13 Sensor-RequestCapabilities-r13 OPTIONAL, -- Need ON
+ tbs-RequestCapabilities-r13 TBS-RequestCapabilities-r13 OPTIONAL, -- Need ON
+ wlan-RequestCapabilities-r13 WLAN-RequestCapabilities-r13 OPTIONAL, -- Need ON
+ bt-RequestCapabilities-r13 BT-RequestCapabilities-r13 OPTIONAL -- Need ON
+ ]]
+
+}
+
+
+ProvideCapabilities ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ provideCapabilities-r9 ProvideCapabilities-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ProvideCapabilities-r9-IEs ::= SEQUENCE {
+ commonIEsProvideCapabilities CommonIEsProvideCapabilities OPTIONAL,
+ a-gnss-ProvideCapabilities A-GNSS-ProvideCapabilities OPTIONAL,
+ otdoa-ProvideCapabilities OTDOA-ProvideCapabilities OPTIONAL,
+ ecid-ProvideCapabilities ECID-ProvideCapabilities OPTIONAL,
+ epdu-ProvideCapabilities EPDU-Sequence OPTIONAL,
+ ...,
+ [[ sensor-ProvideCapabilities-r13 Sensor-ProvideCapabilities-r13 OPTIONAL,
+ tbs-ProvideCapabilities-r13 TBS-ProvideCapabilities-r13 OPTIONAL,
+ wlan-ProvideCapabilities-r13 WLAN-ProvideCapabilities-r13 OPTIONAL,
+ bt-ProvideCapabilities-r13 BT-ProvideCapabilities-r13 OPTIONAL
+ ]]
+}
+
+
+RequestAssistanceData ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ requestAssistanceData-r9 RequestAssistanceData-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RequestAssistanceData-r9-IEs ::= SEQUENCE {
+ commonIEsRequestAssistanceData CommonIEsRequestAssistanceData OPTIONAL,
+ a-gnss-RequestAssistanceData A-GNSS-RequestAssistanceData OPTIONAL,
+ otdoa-RequestAssistanceData OTDOA-RequestAssistanceData OPTIONAL,
+ epdu-RequestAssistanceData EPDU-Sequence OPTIONAL,
+ ...
+}
+
+
+ProvideAssistanceData ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ provideAssistanceData-r9 ProvideAssistanceData-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ProvideAssistanceData-r9-IEs ::= SEQUENCE {
+ commonIEsProvideAssistanceData CommonIEsProvideAssistanceData OPTIONAL, -- Need ON
+ a-gnss-ProvideAssistanceData A-GNSS-ProvideAssistanceData OPTIONAL, -- Need ON
+ otdoa-ProvideAssistanceData OTDOA-ProvideAssistanceData OPTIONAL, -- Need ON
+ epdu-Provide-Assistance-Data EPDU-Sequence OPTIONAL, -- Need ON
+ ...
+}
+
+
+RequestLocationInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ requestLocationInformation-r9 RequestLocationInformation-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RequestLocationInformation-r9-IEs ::= SEQUENCE {
+ commonIEsRequestLocationInformation
+ CommonIEsRequestLocationInformation OPTIONAL, -- Need ON
+ a-gnss-RequestLocationInformation A-GNSS-RequestLocationInformation OPTIONAL, -- Need ON
+ otdoa-RequestLocationInformation OTDOA-RequestLocationInformation OPTIONAL, -- Need ON
+ ecid-RequestLocationInformation ECID-RequestLocationInformation OPTIONAL, -- Need ON
+ epdu-RequestLocationInformation EPDU-Sequence OPTIONAL, -- Need ON
+ ...,
+ [[
+ sensor-RequestLocationInformation-r13
+ Sensor-RequestLocationInformation-r13
+ OPTIONAL, -- Need ON
+ tbs-RequestLocationInformation-r13 TBS-RequestLocationInformation-r13 OPTIONAL, -- Need ON
+ wlan-RequestLocationInformation-r13 WLAN-RequestLocationInformation-r13 OPTIONAL, -- Need ON
+ bt-RequestLocationInformation-r13 BT-RequestLocationInformation-r13 OPTIONAL -- Need ON
+ ]]
+
+}
+
+
+ProvideLocationInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ provideLocationInformation-r9 ProvideLocationInformation-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ProvideLocationInformation-r9-IEs ::= SEQUENCE {
+ commonIEsProvideLocationInformation
+ CommonIEsProvideLocationInformation OPTIONAL,
+ a-gnss-ProvideLocationInformation A-GNSS-ProvideLocationInformation OPTIONAL,
+ otdoa-ProvideLocationInformation OTDOA-ProvideLocationInformation OPTIONAL,
+ ecid-ProvideLocationInformation ECID-ProvideLocationInformation OPTIONAL,
+ epdu-ProvideLocationInformation EPDU-Sequence OPTIONAL,
+ ...,
+ [[
+ sensor-ProvideLocationInformation-r13
+ Sensor-ProvideLocationInformation-r13
+ OPTIONAL,
+ tbs-ProvideLocationInformation-r13 TBS-ProvideLocationInformation-r13 OPTIONAL,
+ wlan-ProvideLocationInformation-r13 WLAN-ProvideLocationInformation-r13 OPTIONAL,
+ bt-ProvideLocationInformation-r13 BT-ProvideLocationInformation-r13 OPTIONAL
+ ]]
+
+}
+
+
+Abort ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ abort-r9 Abort-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+Abort-r9-IEs ::= SEQUENCE {
+ commonIEsAbort CommonIEsAbort OPTIONAL, -- Need ON
+ ...,
+ epdu-Abort EPDU-Sequence OPTIONAL -- Need ON
+}
+
+
+Error ::= CHOICE {
+ error-r9 Error-r9-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+}
+
+Error-r9-IEs ::= SEQUENCE {
+ commonIEsError CommonIEsError OPTIONAL, -- Need ON
+ ...,
+ epdu-Error EPDU-Sequence OPTIONAL -- Need ON
+}
+
+
+AccessTypes ::= SEQUENCE {
+ accessTypes BIT STRING { eutra (0),
+ utra (1),
+ gsm (2) } (SIZE (1..8)),
+ ...
+}
+
+
+ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)
+
+ARFCN-ValueEUTRA-v9a0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2)
+
+maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency
+
+maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range
+
+maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range
+
+
+ARFCN-ValueUTRA ::= INTEGER (0..16383)
+
+
+CellGlobalIdEUTRA-AndUTRA ::= SEQUENCE {
+ plmn-Identity SEQUENCE {
+ mcc SEQUENCE (SIZE (3)) OF INTEGER (0..9),
+ mnc SEQUENCE (SIZE (2..3)) OF INTEGER (0..9)
+ },
+ cellIdentity CHOICE {
+ eutra BIT STRING (SIZE (28)),
+ utra BIT STRING (SIZE (32))
+ },
+ ...
+}
+
+
+CellGlobalIdGERAN ::= SEQUENCE {
+ plmn-Identity SEQUENCE {
+ mcc SEQUENCE (SIZE (3)) OF INTEGER (0..9),
+ mnc SEQUENCE (SIZE (2..3)) OF INTEGER (0..9)
+ },
+ locationAreaCode BIT STRING (SIZE (16)),
+ cellIdentity BIT STRING (SIZE (16)),
+ ...
+}
+
+
+ECGI ::= SEQUENCE {
+ mcc SEQUENCE (SIZE (3)) OF INTEGER (0..9),
+ mnc SEQUENCE (SIZE (2..3)) OF INTEGER (0..9),
+ cellidentity BIT STRING (SIZE (28))
+}
+
+
+Ellipsoid-Point ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ degreesLatitude INTEGER (0..8388607), -- 23 bit field
+ degreesLongitude INTEGER (-8388608..8388607) -- 24 bit field
+}
+
+
+Ellipsoid-PointWithUncertaintyCircle ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ degreesLatitude INTEGER (0..8388607), -- 23 bit field
+ degreesLongitude INTEGER (-8388608..8388607), -- 24 bit field
+ uncertainty INTEGER (0..127)
+}
+
+
+EllipsoidPointWithUncertaintyEllipse ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ degreesLatitude INTEGER (0..8388607), -- 23 bit field
+ degreesLongitude INTEGER (-8388608..8388607), -- 24 bit field
+ uncertaintySemiMajor INTEGER (0..127),
+ uncertaintySemiMinor INTEGER (0..127),
+ orientationMajorAxis INTEGER (0..179),
+ confidence INTEGER (0..100)
+}
+
+
+EllipsoidPointWithAltitude ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ degreesLatitude INTEGER (0..8388607), -- 23 bit field
+ degreesLongitude INTEGER (-8388608..8388607), -- 24 bit field
+ altitudeDirection ENUMERATED {height, depth},
+ altitude INTEGER (0..32767) -- 15 bit field
+}
+
+
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ degreesLatitude INTEGER (0..8388607), -- 23 bit field
+ degreesLongitude INTEGER (-8388608..8388607), -- 24 bit field
+ altitudeDirection ENUMERATED {height, depth},
+ altitude INTEGER (0..32767), -- 15 bit field
+ uncertaintySemiMajor INTEGER (0..127),
+ uncertaintySemiMinor INTEGER (0..127),
+ orientationMajorAxis INTEGER (0..179),
+ uncertaintyAltitude INTEGER (0..127),
+ confidence INTEGER (0..100)
+}
+
+
+EllipsoidArc ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ degreesLatitude INTEGER (0..8388607), -- 23 bit field
+ degreesLongitude INTEGER (-8388608..8388607), -- 24 bit field
+ innerRadius INTEGER (0..65535), -- 16 bit field,
+ uncertaintyRadius INTEGER (0..127),
+ offsetAngle INTEGER (0..179),
+ includedAngle INTEGER (0..179),
+ confidence INTEGER (0..100)
+}
+
+
+EPDU-Sequence ::= SEQUENCE (SIZE (1..maxEPDU)) OF EPDU
+
+maxEPDU INTEGER ::= 16
+
+EPDU ::= SEQUENCE {
+ ePDU-Identifier EPDU-Identifier,
+ ePDU-Body EPDU-Body
+}
+
+EPDU-Identifier ::= SEQUENCE {
+ ePDU-ID EPDU-ID,
+ ePDU-Name EPDU-Name OPTIONAL,
+ ...
+}
+
+EPDU-ID ::= INTEGER (1..256)
+
+EPDU-Name ::= VisibleString (SIZE (1..32))
+
+EPDU-Body ::= OCTET STRING
+
+
+HorizontalVelocity ::= SEQUENCE {
+ bearing INTEGER(0..359),
+ horizontalSpeed INTEGER(0..2047)
+}
+
+
+HorizontalWithVerticalVelocity ::= SEQUENCE {
+ bearing INTEGER(0..359),
+ horizontalSpeed INTEGER(0..2047),
+ verticalDirection ENUMERATED{upward, downward},
+ verticalSpeed INTEGER(0..255)
+}
+
+
+HorizontalVelocityWithUncertainty ::= SEQUENCE {
+ bearing INTEGER(0..359),
+ horizontalSpeed INTEGER(0..2047),
+ uncertaintySpeed INTEGER(0..255)
+}
+
+
+HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
+ bearing INTEGER(0..359),
+ horizontalSpeed INTEGER(0..2047),
+ verticalDirection ENUMERATED{upward, downward},
+ verticalSpeed INTEGER(0..255),
+ horizontalUncertaintySpeed INTEGER(0..255),
+ verticalUncertaintySpeed INTEGER(0..255)
+}
+
+
+LocationCoordinateTypes ::= SEQUENCE {
+ ellipsoidPoint BOOLEAN,
+ ellipsoidPointWithUncertaintyCircle BOOLEAN,
+ ellipsoidPointWithUncertaintyEllipse BOOLEAN,
+ polygon BOOLEAN,
+ ellipsoidPointWithAltitude BOOLEAN,
+ ellipsoidPointWithAltitudeAndUncertaintyEllipsoid BOOLEAN,
+ ellipsoidArc BOOLEAN,
+ ...
+}
+
+
+Polygon ::= SEQUENCE (SIZE (3..15)) OF PolygonPoints
+
+PolygonPoints ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ degreesLatitude INTEGER (0..8388607), -- 23 bit field
+ degreesLongitude INTEGER (-8388608..8388607) -- 24 bit field
+}
+
+
+PositioningModes ::= SEQUENCE {
+ posModes BIT STRING { standalone (0),
+ ue-based (1),
+ ue-assisted (2) } (SIZE (1..8)),
+ ...
+}
+
+
+VelocityTypes ::= SEQUENCE {
+ horizontalVelocity BOOLEAN,
+ horizontalWithVerticalVelocity BOOLEAN,
+ horizontalVelocityWithUncertainty BOOLEAN,
+ horizontalWithVerticalVelocityAndUncertainty BOOLEAN,
+ ...
+}
+
+
+CommonIEsRequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+CommonIEsProvideCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+CommonIEsRequestAssistanceData ::= SEQUENCE {
+ primaryCellID ECGI OPTIONAL, -- Cond EUTRA
+ ...
+}
+
+
+CommonIEsProvideAssistanceData ::= SEQUENCE {
+ ...
+}
+
+
+CommonIEsRequestLocationInformation ::= SEQUENCE {
+ locationInformationType LocationInformationType,
+ triggeredReporting TriggeredReportingCriteria OPTIONAL, -- Cond ECID
+ periodicalReporting PeriodicalReportingCriteria OPTIONAL, -- Need ON
+ additionalInformation AdditionalInformation OPTIONAL, -- Need ON
+ qos QoS OPTIONAL, -- Need ON
+ environment Environment OPTIONAL, -- Need ON
+ locationCoordinateTypes LocationCoordinateTypes OPTIONAL, -- Need ON
+ velocityTypes VelocityTypes OPTIONAL, -- Need ON
+ ...
+}
+
+LocationInformationType ::= ENUMERATED {
+ locationEstimateRequired,
+ locationMeasurementsRequired,
+ locationEstimatePreferred,
+ locationMeasurementsPreferred,
+ ...
+}
+
+PeriodicalReportingCriteria ::= SEQUENCE {
+ reportingAmount ENUMERATED {
+ ra1, ra2, ra4, ra8, ra16, ra32,
+ ra64, ra-Infinity
+ } DEFAULT ra-Infinity,
+ reportingInterval ENUMERATED {
+ noPeriodicalReporting, ri0-25,
+ ri0-5, ri1, ri2, ri4, ri8, ri16, ri32, ri64
+ }
+}
+
+TriggeredReportingCriteria ::= SEQUENCE {
+ cellChange BOOLEAN,
+ reportingDuration ReportingDuration,
+ ...
+}
+
+ReportingDuration ::= INTEGER (0..255)
+
+AdditionalInformation ::= ENUMERATED {
+ onlyReturnInformationRequested,
+ mayReturnAditionalInformation,
+ ...
+}
+
+QoS ::= SEQUENCE {
+ horizontalAccuracy HorizontalAccuracy OPTIONAL, -- Need ON
+ verticalCoordinateRequest BOOLEAN,
+ verticalAccuracy VerticalAccuracy OPTIONAL, -- Need ON
+ responseTime ResponseTime OPTIONAL, -- Need ON
+ velocityRequest BOOLEAN,
+ ...
+}
+
+HorizontalAccuracy ::= SEQUENCE {
+ accuracy INTEGER(0..127),
+ confidence INTEGER(0..100),
+ ...
+}
+
+VerticalAccuracy ::= SEQUENCE {
+ accuracy INTEGER(0..127),
+ confidence INTEGER(0..100),
+ ...
+}
+
+ResponseTime ::= SEQUENCE {
+ time INTEGER (1..128),
+ ...,
+ [[ responseTimeEarlyFix-r12 INTEGER (1..128) OPTIONAL -- Need ON
+ ]]
+}
+
+Environment ::= ENUMERATED {
+ badArea,
+ notBadArea,
+ mixedArea,
+ ...
+}
+
+
+CommonIEsProvideLocationInformation ::= SEQUENCE {
+ locationEstimate LocationCoordinates OPTIONAL,
+ velocityEstimate Velocity OPTIONAL,
+ locationError LocationError OPTIONAL,
+ ...,
+ [[ earlyFixReport-r12 EarlyFixReport-r12 OPTIONAL
+ ]],
+ [[ locationSource-r13 LocationSource-r13 OPTIONAL,
+ locationTimestamp-r13 UTCTime OPTIONAL
+ ]]
+}
+
+LocationCoordinates ::= CHOICE {
+ ellipsoidPoint Ellipsoid-Point,
+ ellipsoidPointWithUncertaintyCircle Ellipsoid-PointWithUncertaintyCircle,
+ ellipsoidPointWithUncertaintyEllipse EllipsoidPointWithUncertaintyEllipse,
+ polygon Polygon,
+ ellipsoidPointWithAltitude EllipsoidPointWithAltitude,
+ ellipsoidPointWithAltitudeAndUncertaintyEllipsoid
+ EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
+ ellipsoidArc EllipsoidArc,
+ ...
+}
+
+Velocity ::= CHOICE {
+ horizontalVelocity HorizontalVelocity,
+ horizontalWithVerticalVelocity HorizontalWithVerticalVelocity,
+ horizontalVelocityWithUncertainty HorizontalVelocityWithUncertainty,
+ horizontalWithVerticalVelocityAndUncertainty
+ HorizontalWithVerticalVelocityAndUncertainty,
+ ...
+}
+
+LocationError ::= SEQUENCE {
+ locationfailurecause LocationFailureCause,
+ ...
+}
+
+LocationFailureCause ::= ENUMERATED {
+ undefined,
+ requestedMethodNotSupported,
+ positionMethodFailure,
+ periodicLocationMeasurementsNotAvailable,
+ ...
+}
+
+EarlyFixReport-r12 ::= ENUMERATED {
+ noMoreMessages,
+ moreMessagesOnTheWay
+}
+
+LocationSource-r13 ::= BIT STRING { a-gnss (0),
+ wlan (1),
+ bt (2),
+ tbs (3),
+ sensor (4) } (SIZE(1..16))
+
+
+CommonIEsAbort ::= SEQUENCE {
+ abortCause ENUMERATED {
+ undefined,
+ stopPeriodicReporting,
+ targetDeviceAbort,
+ networkAbort,
+ ...
+ }
+}
+
+
+CommonIEsError ::= SEQUENCE {
+ errorCause ENUMERATED {
+ undefined,
+ lppMessageHeaderError,
+ lppMessageBodyError,
+ epduError,
+ incorrectDataValue,
+ ...
+ }
+}
+
+
+OTDOA-ProvideAssistanceData ::= SEQUENCE {
+ otdoa-ReferenceCellInfo OTDOA-ReferenceCellInfo OPTIONAL, -- Need ON
+ otdoa-NeighbourCellInfo OTDOA-NeighbourCellInfoList OPTIONAL, -- Need ON
+ otdoa-Error OTDOA-Error OPTIONAL, -- Need ON
+ ...
+}
+
+
+OTDOA-ReferenceCellInfo ::= SEQUENCE {
+ physCellId INTEGER (0..503),
+ cellGlobalId ECGI OPTIONAL, -- Need ON
+ earfcnRef ARFCN-ValueEUTRA OPTIONAL, -- Cond NotSameAsServ0
+ antennaPortConfig ENUMERATED {ports1-or-2, ports4, ... }
+ OPTIONAL, -- Cond NotSameAsServ1
+ cpLength ENUMERATED { normal, extended, ... },
+ prsInfo PRS-Info OPTIONAL, -- Cond PRS
+ ...,
+ [[ earfcnRef-v9a0 ARFCN-ValueEUTRA-v9a0 OPTIONAL -- Cond NotSameAsServ2
+ ]]
+}
+
+
+PRS-Info ::= SEQUENCE {
+ prs-Bandwidth ENUMERATED { n6, n15, n25, n50, n75, n100, ... },
+ prs-ConfigurationIndex INTEGER (0..4095),
+ numDL-Frames ENUMERATED {sf-1, sf-2, sf-4, sf-6, ...},
+ ...,
+ prs-MutingInfo-r9 CHOICE {
+ po2-r9 BIT STRING (SIZE(2)),
+ po4-r9 BIT STRING (SIZE(4)),
+ po8-r9 BIT STRING (SIZE(8)),
+ po16-r9 BIT STRING (SIZE(16)),
+ ...
+ } OPTIONAL -- Need OP
+}
+
+
+OTDOA-NeighbourCellInfoList ::= SEQUENCE (SIZE (1..maxFreqLayers)) OF OTDOA-NeighbourFreqInfo
+OTDOA-NeighbourFreqInfo ::= SEQUENCE (SIZE (1..24)) OF OTDOA-NeighbourCellInfoElement
+
+OTDOA-NeighbourCellInfoElement ::= SEQUENCE {
+ physCellId INTEGER (0..503),
+ cellGlobalId ECGI OPTIONAL, -- Need ON
+ earfcn ARFCN-ValueEUTRA OPTIONAL, -- Cond NotSameAsRef0
+ cpLength ENUMERATED {normal, extended, ...}
+ OPTIONAL, -- Cond NotSameAsRef1
+ prsInfo PRS-Info OPTIONAL, -- Cond NotSameAsRef2
+ antennaPortConfig ENUMERATED {ports-1-or-2, ports-4, ...}
+ OPTIONAL, -- Cond NotsameAsRef3
+ slotNumberOffset INTEGER (0..19) OPTIONAL, -- Cond NotSameAsRef4
+ prs-SubframeOffset INTEGER (0..1279) OPTIONAL, -- Cond InterFreq
+ expectedRSTD INTEGER (0..16383),
+ expectedRSTD-Uncertainty INTEGER (0..1023),
+ ...,
+ [[ earfcn-v9a0 ARFCN-ValueEUTRA-v9a0 OPTIONAL -- Cond NotSameAsRef5
+ ]]
+}
+
+maxFreqLayers INTEGER ::= 3
+
+
+OTDOA-RequestAssistanceData ::= SEQUENCE {
+ physCellId INTEGER (0..503),
+ ...
+}
+
+
+OTDOA-ProvideLocationInformation ::= SEQUENCE {
+ otdoaSignalMeasurementInformation OTDOA-SignalMeasurementInformation OPTIONAL,
+ otdoa-Error OTDOA-Error OPTIONAL,
+ ...
+}
+
+
+OTDOA-SignalMeasurementInformation ::= SEQUENCE {
+ systemFrameNumber BIT STRING (SIZE (10)),
+ physCellIdRef INTEGER (0..503),
+ cellGlobalIdRef ECGI OPTIONAL,
+ earfcnRef ARFCN-ValueEUTRA OPTIONAL, -- Cond NotSameAsRef0
+ referenceQuality OTDOA-MeasQuality OPTIONAL,
+ neighbourMeasurementList NeighbourMeasurementList,
+ ...,
+ [[ earfcnRef-v9a0 ARFCN-ValueEUTRA-v9a0 OPTIONAL -- Cond NotSameAsRef1
+ ]]
+}
+
+NeighbourMeasurementList ::= SEQUENCE (SIZE(1..24)) OF NeighbourMeasurementElement
+
+NeighbourMeasurementElement ::= SEQUENCE {
+ physCellIdNeighbour INTEGER (0..503),
+ cellGlobalIdNeighbour ECGI OPTIONAL,
+ earfcnNeighbour ARFCN-ValueEUTRA OPTIONAL, -- Cond NotSameAsRef2
+ rstd INTEGER (0..12711),
+ rstd-Quality OTDOA-MeasQuality,
+ ...,
+ [[ earfcnNeighbour-v9a0 ARFCN-ValueEUTRA-v9a0 OPTIONAL -- Cond NotSameAsRef3
+ ]]
+}
+
+
+OTDOA-MeasQuality ::= SEQUENCE {
+ error-Resolution BIT STRING (SIZE (2)),
+ error-Value BIT STRING (SIZE (5)),
+ error-NumSamples BIT STRING (SIZE (3)) OPTIONAL,
+ ...
+}
+
+
+OTDOA-RequestLocationInformation ::= SEQUENCE {
+ assistanceAvailability BOOLEAN,
+ ...
+}
+
+
+OTDOA-ProvideCapabilities ::= SEQUENCE {
+ otdoa-Mode BIT STRING { ue-assisted (0) } (SIZE (1..8)),
+ ...,
+ supportedBandListEUTRA SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA OPTIONAL,
+ supportedBandListEUTRA-v9a0 SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9a0
+ OPTIONAL,
+ interFreqRSTDmeasurement-r10 ENUMERATED { supported } OPTIONAL,
+ additionalNeighbourCellInfoList-r10 ENUMERATED { supported } OPTIONAL
+}
+
+maxBands INTEGER ::= 64
+
+SupportedBandEUTRA ::= SEQUENCE {
+ bandEUTRA INTEGER (1..maxFBI)
+}
+
+SupportedBandEUTRA-v9a0 ::= SEQUENCE {
+ bandEUTRA-v9a0 INTEGER (maxFBI-Plus1..maxFBI2) OPTIONAL
+}
+
+maxFBI INTEGER ::= 64 -- Maximum value of frequency band indicator
+maxFBI-Plus1 INTEGER ::= 65 -- lowest value extended FBI range
+maxFBI2 INTEGER ::= 256 -- highest value extended FBI range
+
+
+OTDOA-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OTDOA-Error ::= CHOICE {
+ locationServerErrorCauses OTDOA-LocationServerErrorCauses,
+ targetDeviceErrorCauses OTDOA-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OTDOA-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ assistanceDataNotSupportedByServer,
+ assistanceDataSupportedButCurrentlyNotAvailableByServer,
+ ...
+ },
+ ...
+}
+
+
+OTDOA-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ assistance-data-missing,
+ unableToMeasureReferenceCell,
+ unableToMeasureAnyNeighbourCell,
+ attemptedButUnableToMeasureSomeNeighbourCells,
+ ...
+ },
+ ...
+}
+
+
+A-GNSS-ProvideAssistanceData ::= SEQUENCE {
+ gnss-CommonAssistData GNSS-CommonAssistData OPTIONAL, -- Need ON
+ gnss-GenericAssistData GNSS-GenericAssistData OPTIONAL, -- Need ON
+ gnss-Error A-GNSS-Error OPTIONAL, -- Need ON
+ ...
+}
+
+
+GNSS-CommonAssistData ::= SEQUENCE {
+ gnss-ReferenceTime GNSS-ReferenceTime OPTIONAL, -- Need ON
+ gnss-ReferenceLocation GNSS-ReferenceLocation OPTIONAL, -- Need ON
+ gnss-IonosphericModel GNSS-IonosphericModel OPTIONAL, -- Need ON
+ gnss-EarthOrientationParameters GNSS-EarthOrientationParameters OPTIONAL, -- Need ON
+ ...
+}
+
+
+GNSS-GenericAssistData ::= SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataElement
+
+GNSS-GenericAssistDataElement ::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ sbas-ID SBAS-ID OPTIONAL, -- Cond GNSS-ID-SBAS
+ gnss-TimeModels GNSS-TimeModelList OPTIONAL, -- Need ON
+ gnss-DifferentialCorrections GNSS-DifferentialCorrections OPTIONAL, -- Need ON
+ gnss-NavigationModel GNSS-NavigationModel OPTIONAL, -- Need ON
+ gnss-RealTimeIntegrity GNSS-RealTimeIntegrity OPTIONAL, -- Need ON
+ gnss-DataBitAssistance GNSS-DataBitAssistance OPTIONAL, -- Need ON
+ gnss-AcquisitionAssistance GNSS-AcquisitionAssistance OPTIONAL, -- Need ON
+ gnss-Almanac GNSS-Almanac OPTIONAL, -- Need ON
+ gnss-UTC-Model GNSS-UTC-Model OPTIONAL, -- Need ON
+ gnss-AuxiliaryInformation GNSS-AuxiliaryInformation OPTIONAL, -- Need ON
+ ...,
+ [[
+ bds-DifferentialCorrections-r12
+ BDS-DifferentialCorrections-r12 OPTIONAL, -- Cond GNSS-ID-BDS
+ bds-GridModel-r12 BDS-GridModelParameter-r12 OPTIONAL -- Cond GNSS-ID-BDS
+ ]]
+}
+
+
+GNSS-ReferenceTime ::= SEQUENCE {
+ gnss-SystemTime GNSS-SystemTime,
+ referenceTimeUnc INTEGER (0..127) OPTIONAL, -- Cond noFTA
+ gnss-ReferenceTimeForCells SEQUENCE (SIZE (1..16)) OF
+ GNSS-ReferenceTimeForOneCell OPTIONAL, -- Need ON
+ ...
+}
+
+GNSS-ReferenceTimeForOneCell ::= SEQUENCE {
+ networkTime NetworkTime,
+ referenceTimeUnc INTEGER (0..127),
+ bsAlign ENUMERATED {true} OPTIONAL,
+ ...
+}
+
+
+GNSS-SystemTime ::= SEQUENCE {
+ gnss-TimeID GNSS-ID,
+ gnss-DayNumber INTEGER (0..32767),
+ gnss-TimeOfDay INTEGER (0..86399),
+ gnss-TimeOfDayFrac-msec INTEGER (0..999) OPTIONAL, -- Need ON
+ notificationOfLeapSecond BIT STRING (SIZE(2)) OPTIONAL, -- Cond gnss-TimeID-glonass
+ gps-TOW-Assist GPS-TOW-Assist OPTIONAL, -- Cond gnss-TimeID-gps
+ ...
+}
+
+
+GPS-TOW-Assist ::= SEQUENCE (SIZE(1..64)) OF GPS-TOW-AssistElement
+
+GPS-TOW-AssistElement ::= SEQUENCE {
+ satelliteID INTEGER (1..64),
+ tlmWord INTEGER (0..16383),
+ antiSpoof INTEGER (0..1),
+ alert INTEGER (0..1),
+ tlmRsvdBits INTEGER (0..3),
+ ...
+}
+
+
+NetworkTime ::= SEQUENCE {
+ secondsFromFrameStructureStart INTEGER(0..12533),
+ fractionalSecondsFromFrameStructureStart INTEGER(0..3999999),
+ frameDrift INTEGER (-64..63) OPTIONAL, -- Cond GNSSsynch
+ cellID CHOICE {
+ eUTRA SEQUENCE {
+ physCellId INTEGER (0..503),
+ cellGlobalIdEUTRA CellGlobalIdEUTRA-AndUTRA OPTIONAL, -- Need ON
+ earfcn ARFCN-ValueEUTRA,
+ ...,
+ [[ earfcn-v9a0 ARFCN-ValueEUTRA-v9a0 OPTIONAL -- Cond EARFCN-max
+ ]]
+ },
+ uTRA SEQUENCE {
+ mode CHOICE {
+ fdd SEQUENCE {
+ primary-CPICH-Info INTEGER (0..511),
+ ...
+ },
+ tdd SEQUENCE {
+ cellParameters INTEGER (0..127),
+ ...
+ }
+ },
+ cellGlobalIdUTRA CellGlobalIdEUTRA-AndUTRA OPTIONAL, -- Need ON
+ uarfcn ARFCN-ValueUTRA,
+ ...
+ },
+ gSM SEQUENCE {
+ bcchCarrier INTEGER (0..1023),
+ bsic INTEGER (0..63),
+ cellGlobalIdGERAN CellGlobalIdGERAN OPTIONAL, -- Need ON
+ ...
+ },
+ ...
+ },
+ ...
+}
+
+
+GNSS-ReferenceLocation ::= SEQUENCE {
+ threeDlocation EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
+ ...
+}
+
+
+GNSS-IonosphericModel ::= SEQUENCE {
+ klobucharModel KlobucharModelParameter OPTIONAL, -- Need ON
+ neQuickModel NeQuickModelParameter OPTIONAL, -- Need ON
+ ...
+}
+
+
+KlobucharModelParameter ::= SEQUENCE {
+ dataID BIT STRING (SIZE (2)),
+ alfa0 INTEGER (-128..127),
+ alfa1 INTEGER (-128..127),
+ alfa2 INTEGER (-128..127),
+ alfa3 INTEGER (-128..127),
+ beta0 INTEGER (-128..127),
+ beta1 INTEGER (-128..127),
+ beta2 INTEGER (-128..127),
+ beta3 INTEGER (-128..127),
+ ...
+}
+
+
+NeQuickModelParameter ::= SEQUENCE {
+ ai0 INTEGER (0..2047),
+ ai1 INTEGER (-1024..1023),
+ ai2 INTEGER (-8192..8191),
+ ionoStormFlag1 INTEGER (0..1) OPTIONAL, -- Need OP
+ ionoStormFlag2 INTEGER (0..1) OPTIONAL, -- Need OP
+ ionoStormFlag3 INTEGER (0..1) OPTIONAL, -- Need OP
+ ionoStormFlag4 INTEGER (0..1) OPTIONAL, -- Need OP
+ ionoStormFlag5 INTEGER (0..1) OPTIONAL, -- Need OP
+ ...
+}
+
+
+GNSS-EarthOrientationParameters ::= SEQUENCE {
+ teop INTEGER (0..65535),
+ pmX INTEGER (-1048576..1048575),
+ pmXdot INTEGER (-16384..16383),
+ pmY INTEGER (-1048576..1048575),
+ pmYdot INTEGER (-16384..16383),
+ deltaUT1 INTEGER (-1073741824..1073741823),
+ deltaUT1dot INTEGER (-262144..262143),
+ ...
+}
+
+
+GNSS-TimeModelList ::= SEQUENCE (SIZE (1..15)) OF GNSS-TimeModelElement
+
+GNSS-TimeModelElement ::= SEQUENCE {
+ gnss-TimeModelRefTime INTEGER (0..65535),
+ tA0 INTEGER (-67108864..67108863),
+ tA1 INTEGER (-4096..4095) OPTIONAL, -- Need ON
+ tA2 INTEGER (-64..63) OPTIONAL, -- Need ON
+ gnss-TO-ID INTEGER (1..15),
+ weekNumber INTEGER (0..8191) OPTIONAL, -- Need ON
+ deltaT INTEGER (-128..127) OPTIONAL, -- Need ON
+ ...
+}
+
+
+GNSS-DifferentialCorrections ::= SEQUENCE {
+ dgnss-RefTime INTEGER (0..3599),
+ dgnss-SgnTypeList DGNSS-SgnTypeList,
+ ...
+}
+
+DGNSS-SgnTypeList ::= SEQUENCE (SIZE (1..3)) OF DGNSS-SgnTypeElement
+
+DGNSS-SgnTypeElement ::= SEQUENCE {
+ gnss-SignalID GNSS-SignalID,
+ gnss-StatusHealth INTEGER (0..7),
+ dgnss-SatList DGNSS-SatList,
+ ...
+}
+
+DGNSS-SatList ::= SEQUENCE (SIZE (1..64)) OF DGNSS-CorrectionsElement
+
+DGNSS-CorrectionsElement ::= SEQUENCE {
+ svID SV-ID,
+ iod BIT STRING (SIZE(11)),
+ udre INTEGER (0..3),
+ pseudoRangeCor INTEGER (-2047..2047),
+ rangeRateCor INTEGER (-127..127),
+ udreGrowthRate INTEGER (0..7) OPTIONAL, -- Need ON
+ udreValidityTime INTEGER (0..7) OPTIONAL, -- Need ON
+ ...
+}
+
+
+GNSS-NavigationModel ::= SEQUENCE {
+ nonBroadcastIndFlag INTEGER (0..1),
+ gnss-SatelliteList GNSS-NavModelSatelliteList,
+ ...
+}
+
+GNSS-NavModelSatelliteList ::= SEQUENCE (SIZE(1..64)) OF GNSS-NavModelSatelliteElement
+
+GNSS-NavModelSatelliteElement ::= SEQUENCE {
+ svID SV-ID,
+ svHealth BIT STRING (SIZE(8)),
+ iod BIT STRING (SIZE(11)),
+ gnss-ClockModel GNSS-ClockModel,
+ gnss-OrbitModel GNSS-OrbitModel,
+ ...,
+ [[ svHealthExt-v1240 BIT STRING (SIZE(4)) OPTIONAL -- Need ON
+ ]]
+}
+
+GNSS-ClockModel ::= CHOICE {
+ standardClockModelList StandardClockModelList, -- Model-1
+ nav-ClockModel NAV-ClockModel, -- Model-2
+ cnav-ClockModel CNAV-ClockModel, -- Model-3
+ glonass-ClockModel GLONASS-ClockModel, -- Model-4
+ sbas-ClockModel SBAS-ClockModel, -- Model-5
+ ...,
+ bds-ClockModel-r12 BDS-ClockModel-r12 -- Model-6
+}
+
+GNSS-OrbitModel ::= CHOICE {
+ keplerianSet NavModelKeplerianSet, -- Model-1
+ nav-KeplerianSet NavModelNAV-KeplerianSet, -- Model-2
+ cnav-KeplerianSet NavModelCNAV-KeplerianSet, -- Model-3
+ glonass-ECEF NavModel-GLONASS-ECEF, -- Model-4
+ sbas-ECEF NavModel-SBAS-ECEF, -- Model-5
+ ...,
+ bds-KeplerianSet-r12 NavModel-BDS-KeplerianSet-r12 -- Model-6
+}
+
+
+StandardClockModelList ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement
+
+StandardClockModelElement ::= SEQUENCE {
+ stanClockToc INTEGER (0..16383),
+ stanClockAF2 INTEGER (-32..31),
+ stanClockAF1 INTEGER (-1048576..1048575),
+ stanClockAF0 INTEGER (-1073741824..1073741823),
+ stanClockTgd INTEGER (-512..511) OPTIONAL, -- Need ON
+ sisa INTEGER (0..255),
+ stanModelID INTEGER (0..1) OPTIONAL, -- Need ON
+ ...
+}
+
+
+NAV-ClockModel ::= SEQUENCE {
+ navToc INTEGER (0..37799),
+ navaf2 INTEGER (-128..127),
+ navaf1 INTEGER (-32768..32767),
+ navaf0 INTEGER (-2097152..2097151),
+ navTgd INTEGER (-128..127),
+ ...
+}
+
+
+CNAV-ClockModel ::= SEQUENCE {
+ cnavToc INTEGER (0..2015),
+ cnavTop INTEGER (0..2015),
+ cnavURA0 INTEGER (-16..15),
+ cnavURA1 INTEGER (0..7),
+ cnavURA2 INTEGER (0..7),
+ cnavAf2 INTEGER (-512..511),
+ cnavAf1 INTEGER (-524288..524287),
+ cnavAf0 INTEGER (-33554432..33554431),
+ cnavTgd INTEGER (-4096..4095),
+ cnavISCl1cp INTEGER (-4096..4095) OPTIONAL, -- Need ON
+ cnavISCl1cd INTEGER (-4096..4095) OPTIONAL, -- Need ON
+ cnavISCl1ca INTEGER (-4096..4095) OPTIONAL, -- Need ON
+ cnavISCl2c INTEGER (-4096..4095) OPTIONAL, -- Need ON
+ cnavISCl5i5 INTEGER (-4096..4095) OPTIONAL, -- Need ON
+ cnavISCl5q5 INTEGER (-4096..4095) OPTIONAL, -- Need ON
+ ...
+}
+
+
+GLONASS-ClockModel ::= SEQUENCE {
+ gloTau INTEGER (-2097152..2097151),
+ gloGamma INTEGER (-1024..1023),
+ gloDeltaTau INTEGER (-16..15) OPTIONAL, -- Need ON
+ ...
+}
+
+
+SBAS-ClockModel ::= SEQUENCE {
+ sbasTo INTEGER (0..5399),
+ sbasAgfo INTEGER (-2048..2047),
+ sbasAgf1 INTEGER (-128..127),
+ ...
+}
+
+
+BDS-ClockModel-r12 ::= SEQUENCE {
+ bdsAODC-r12 INTEGER (0..31),
+ bdsToc-r12 INTEGER (0..131071),
+ bdsA0-r12 INTEGER (-8388608..8388607),
+ bdsA1-r12 INTEGER (-2097152..2097151),
+ bdsA2-r12 INTEGER (-1024..1023),
+ bdsTgd1-r12 INTEGER (-512..511),
+ ...
+}
+
+
+NavModelKeplerianSet ::= SEQUENCE {
+ keplerToe INTEGER (0 .. 16383),
+ keplerW INTEGER (-2147483648..2147483647),
+ keplerDeltaN INTEGER (-32768..32767),
+ keplerM0 INTEGER (-2147483648..2147483647),
+ keplerOmegaDot INTEGER (-8388608.. 8388607),
+ keplerE INTEGER (0..4294967295),
+ keplerIDot INTEGER (-8192..8191),
+ keplerAPowerHalf INTEGER (0.. 4294967295),
+ keplerI0 INTEGER (-2147483648..2147483647),
+ keplerOmega0 INTEGER (-2147483648..2147483647),
+ keplerCrs INTEGER (-32768..32767),
+ keplerCis INTEGER (-32768..32767),
+ keplerCus INTEGER (-32768..32767),
+ keplerCrc INTEGER (-32768..32767),
+ keplerCic INTEGER (-32768..32767),
+ keplerCuc INTEGER (-32768..32767),
+ ...
+}
+
+
+NavModelNAV-KeplerianSet ::= SEQUENCE {
+ navURA INTEGER (0..15),
+ navFitFlag INTEGER (0..1),
+ navToe INTEGER (0..37799),
+ navOmega INTEGER (-2147483648..2147483647),
+ navDeltaN INTEGER (-32768..32767),
+ navM0 INTEGER (-2147483648..2147483647),
+ navOmegaADot INTEGER (-8388608..8388607),
+ navE INTEGER (0..4294967295),
+ navIDot INTEGER (-8192..8191),
+ navAPowerHalf INTEGER (0..4294967295),
+ navI0 INTEGER (-2147483648..2147483647),
+ navOmegaA0 INTEGER (-2147483648..2147483647),
+ navCrs INTEGER (-32768..32767),
+ navCis INTEGER (-32768..32767),
+ navCus INTEGER (-32768..32767),
+ navCrc INTEGER (-32768..32767),
+ navCic INTEGER (-32768..32767),
+ navCuc INTEGER (-32768..32767),
+ addNAVparam SEQUENCE {
+ ephemCodeOnL2 INTEGER (0..3),
+ ephemL2Pflag INTEGER (0..1),
+ ephemSF1Rsvd SEQUENCE {
+ reserved1 INTEGER (0..8388607), -- 23-bit field
+ reserved2 INTEGER (0..16777215), -- 24-bit field
+ reserved3 INTEGER (0..16777215), -- 24-bit field
+ reserved4 INTEGER (0..65535) -- 16-bit field
+ },
+ ephemAODA INTEGER (0..31)
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+
+NavModelCNAV-KeplerianSet ::= SEQUENCE {
+ cnavTop INTEGER (0..2015),
+ cnavURAindex INTEGER (-16..15),
+ cnavDeltaA INTEGER (-33554432..33554431),
+ cnavAdot INTEGER (-16777216..16777215),
+ cnavDeltaNo INTEGER (-65536..65535),
+ cnavDeltaNoDot INTEGER (-4194304..4194303),
+ cnavMo INTEGER (-4294967296..4294967295),
+ cnavE INTEGER (0..8589934591),
+ cnavOmega INTEGER (-4294967296..4294967295),
+ cnavOMEGA0 INTEGER (-4294967296..4294967295),
+ cnavDeltaOmegaDot INTEGER (-65536..65535),
+ cnavIo INTEGER (-4294967296..4294967295),
+ cnavIoDot INTEGER (-16384..16383),
+ cnavCis INTEGER (-32768..32767),
+ cnavCic INTEGER (-32768..32767),
+ cnavCrs INTEGER (-8388608..8388607),
+ cnavCrc INTEGER (-8388608..8388607),
+ cnavCus INTEGER (-1048576..1048575),
+ cnavCuc INTEGER (-1048576..1048575),
+ ...
+}
+
+
+NavModel-GLONASS-ECEF ::= SEQUENCE {
+ gloEn INTEGER (0..31),
+ gloP1 BIT STRING (SIZE(2)),
+ gloP2 BOOLEAN,
+ gloM INTEGER (0..3),
+ gloX INTEGER (-67108864..67108863),
+ gloXdot INTEGER (-8388608..8388607),
+ gloXdotdot INTEGER (-16..15),
+ gloY INTEGER (-67108864..67108863),
+ gloYdot INTEGER (-8388608..8388607),
+ gloYdotdot INTEGER (-16..15),
+ gloZ INTEGER (-67108864..67108863),
+ gloZdot INTEGER (-8388608..8388607),
+ gloZdotdot INTEGER (-16..15),
+ ...
+}
+
+
+NavModel-SBAS-ECEF ::= SEQUENCE {
+ sbasTo INTEGER (0..5399) OPTIONAL, -- Cond ClockModel
+ sbasAccuracy BIT STRING (SIZE(4)),
+ sbasXg INTEGER (-536870912..536870911),
+ sbasYg INTEGER (-536870912..536870911),
+ sbasZg INTEGER (-16777216..16777215),
+ sbasXgDot INTEGER (-65536..65535),
+ sbasYgDot INTEGER (-65536..65535),
+ sbasZgDot INTEGER (-131072..131071),
+ sbasXgDotDot INTEGER (-512..511),
+ sbagYgDotDot INTEGER (-512..511),
+ sbasZgDotDot INTEGER (-512..511),
+ ...
+}
+
+
+NavModel-BDS-KeplerianSet-r12 ::= SEQUENCE {
+ bdsAODE-r12 INTEGER (0..31),
+ bdsURAI-r12 INTEGER (0..15),
+ bdsToe-r12 INTEGER (0..131071),
+ bdsAPowerHalf-r12 INTEGER (0..4294967295),
+ bdsE-r12 INTEGER (0..4294967295),
+ bdsW-r12 INTEGER (-2147483648..2147483647),
+ bdsDeltaN-r12 INTEGER (-32768..32767),
+ bdsM0-r12 INTEGER (-2147483648..2147483647),
+ bdsOmega0-r12 INTEGER (-2147483648..2147483647),
+ bdsOmegaDot-r12 INTEGER (-8388608..8388607),
+ bdsI0-r12 INTEGER (-2147483648..2147483647),
+ bdsIDot-r12 INTEGER (-8192..8191),
+ bdsCuc-r12 INTEGER (-131072..131071),
+ bdsCus-r12 INTEGER (-131072..131071),
+ bdsCrc-r12 INTEGER (-131072..131071),
+ bdsCrs-r12 INTEGER (-131072..131071),
+ bdsCic-r12 INTEGER (-131072..131071),
+ bdsCis-r12 INTEGER (-131072..131071),
+ ...
+}
+
+
+GNSS-RealTimeIntegrity ::= SEQUENCE {
+ gnss-BadSignalList GNSS-BadSignalList,
+ ...
+}
+
+GNSS-BadSignalList ::= SEQUENCE (SIZE(1..64)) OF BadSignalElement
+
+BadSignalElement ::= SEQUENCE {
+ badSVID SV-ID,
+ badSignalID GNSS-SignalIDs OPTIONAL, -- Need OP
+ ...
+}
+
+
+GNSS-DataBitAssistance ::= SEQUENCE {
+ gnss-TOD INTEGER (0..3599),
+ gnss-TODfrac INTEGER (0..999) OPTIONAL, -- Need ON
+ gnss-DataBitsSatList GNSS-DataBitsSatList,
+ ...
+}
+
+GNSS-DataBitsSatList ::= SEQUENCE (SIZE(1..64))OF GNSS-DataBitsSatElement
+
+GNSS-DataBitsSatElement ::= SEQUENCE {
+ svID SV-ID,
+ gnss-DataBitsSgnList GNSS-DataBitsSgnList,
+ ...
+}
+
+GNSS-DataBitsSgnList ::= SEQUENCE (SIZE(1..8)) OF GNSS-DataBitsSgnElement
+
+GNSS-DataBitsSgnElement ::= SEQUENCE {
+ gnss-SignalType GNSS-SignalID,
+ gnss-DataBits BIT STRING (SIZE (1..1024)),
+ ...
+}
+
+
+GNSS-AcquisitionAssistance ::= SEQUENCE {
+ gnss-SignalID GNSS-SignalID,
+ gnss-AcquisitionAssistList GNSS-AcquisitionAssistList,
+ ...,
+ confidence-r10 INTEGER (0..100) OPTIONAL -- Need ON
+}
+
+GNSS-AcquisitionAssistList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AcquisitionAssistElement
+
+GNSS-AcquisitionAssistElement ::= SEQUENCE {
+ svID SV-ID,
+ doppler0 INTEGER (-2048..2047),
+ doppler1 INTEGER (0..63),
+ dopplerUncertainty INTEGER (0..4),
+ codePhase INTEGER (0..1022),
+ intCodePhase INTEGER (0..127),
+ codePhaseSearchWindow INTEGER (0..31),
+ azimuth INTEGER (0..511),
+ elevation INTEGER (0..127),
+ ...,
+ codePhase1023 BOOLEAN OPTIONAL, -- Need OP
+ dopplerUncertaintyExt-r10 ENUMERATED { d60,
+ d80,
+ d100,
+ d120,
+ noInformation, ... } OPTIONAL -- Need ON
+}
+
+
+GNSS-Almanac ::= SEQUENCE {
+ weekNumber INTEGER (0..255) OPTIONAL, -- Need ON
+ toa INTEGER (0..255) OPTIONAL, -- Need ON
+ ioda INTEGER (0..3) OPTIONAL, -- Need ON
+ completeAlmanacProvided BOOLEAN,
+ gnss-AlmanacList GNSS-AlmanacList,
+ ...,
+ [[ toa-ext-v1240 INTEGER (256..1023) OPTIONAL, -- Need ON
+ ioda-ext-v1240 INTEGER (4..15) OPTIONAL -- Need ON
+ ]]
+}
+
+GNSS-AlmanacList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AlmanacElement
+
+GNSS-AlmanacElement ::= CHOICE {
+ keplerianAlmanacSet AlmanacKeplerianSet, -- Model-1
+ keplerianNAV-Almanac AlmanacNAV-KeplerianSet, -- Model-2
+ keplerianReducedAlmanac AlmanacReducedKeplerianSet, -- Model-3
+ keplerianMidiAlmanac AlmanacMidiAlmanacSet, -- Model-4
+ keplerianGLONASS AlmanacGLONASS-AlmanacSet, -- Model-5
+ ecef-SBAS-Almanac AlmanacECEF-SBAS-AlmanacSet,-- Model-6
+ ...,
+ keplerianBDS-Almanac-r12 AlmanacBDS-AlmanacSet-r12 -- Model-7
+}
+
+
+AlmanacKeplerianSet ::= SEQUENCE {
+ svID SV-ID,
+ kepAlmanacE INTEGER (0..2047),
+ kepAlmanacDeltaI INTEGER (-1024..1023),
+ kepAlmanacOmegaDot INTEGER (-1024..1023),
+ kepSV-StatusINAV BIT STRING (SIZE (4)),
+ kepSV-StatusFNAV BIT STRING (SIZE (2)) OPTIONAL, -- Need ON
+ kepAlmanacAPowerHalf INTEGER (-4096..4095),
+ kepAlmanacOmega0 INTEGER (-32768..32767),
+ kepAlmanacW INTEGER (-32768..32767),
+ kepAlmanacM0 INTEGER (-32768..32767),
+ kepAlmanacAF0 INTEGER (-32768..32767),
+ kepAlmanacAF1 INTEGER (-4096..4095),
+ ...
+}
+
+
+AlmanacNAV-KeplerianSet ::= SEQUENCE {
+ svID SV-ID,
+ navAlmE INTEGER (0..65535),
+ navAlmDeltaI INTEGER (-32768..32767),
+ navAlmOMEGADOT INTEGER (-32768..32767),
+ navAlmSVHealth INTEGER (0..255),
+ navAlmSqrtA INTEGER (0..16777215),
+ navAlmOMEGAo INTEGER (-8388608..8388607),
+ navAlmOmega INTEGER (-8388608..8388607),
+ navAlmMo INTEGER (-8388608..8388607),
+ navAlmaf0 INTEGER (-1024..1023),
+ navAlmaf1 INTEGER (-1024..1023),
+ ...
+}
+
+
+AlmanacReducedKeplerianSet ::= SEQUENCE {
+ svID SV-ID,
+ redAlmDeltaA INTEGER (-128..127),
+ redAlmOmega0 INTEGER (-64..63),
+ redAlmPhi0 INTEGER (-64..63),
+ redAlmL1Health BOOLEAN,
+ redAlmL2Health BOOLEAN,
+ redAlmL5Health BOOLEAN,
+ ...
+}
+
+
+AlmanacMidiAlmanacSet ::= SEQUENCE {
+ svID SV-ID,
+ midiAlmE INTEGER (0..2047),
+ midiAlmDeltaI INTEGER (-1024..1023),
+ midiAlmOmegaDot INTEGER (-1024..1023),
+ midiAlmSqrtA INTEGER (0..131071),
+ midiAlmOmega0 INTEGER (-32768..32767),
+ midiAlmOmega INTEGER (-32768..32767),
+ midiAlmMo INTEGER (-32768..32767),
+ midiAlmaf0 INTEGER (-1024..1023),
+ midiAlmaf1 INTEGER (-512..511),
+ midiAlmL1Health BOOLEAN,
+ midiAlmL2Health BOOLEAN,
+ midiAlmL5Health BOOLEAN,
+ ...
+}
+
+
+AlmanacGLONASS-AlmanacSet ::= SEQUENCE {
+ gloAlm-NA INTEGER (1..1461),
+ gloAlmnA INTEGER (1..24),
+ gloAlmHA INTEGER (0..31),
+ gloAlmLambdaA INTEGER (-1048576..1048575),
+ gloAlmtlambdaA INTEGER (0..2097151),
+ gloAlmDeltaIa INTEGER (-131072..131071),
+ gloAlmDeltaTA INTEGER (-2097152..2097151),
+ gloAlmDeltaTdotA INTEGER (-64..63),
+ gloAlmEpsilonA INTEGER (0..32767),
+ gloAlmOmegaA INTEGER (-32768..32767),
+ gloAlmTauA INTEGER (-512..511),
+ gloAlmCA INTEGER (0..1),
+ gloAlmMA BIT STRING (SIZE(2)) OPTIONAL, -- Need ON
+ ...
+}
+
+
+AlmanacECEF-SBAS-AlmanacSet ::= SEQUENCE {
+ sbasAlmDataID INTEGER (0..3),
+ svID SV-ID,
+ sbasAlmHealth BIT STRING (SIZE(8)),
+ sbasAlmXg INTEGER (-16384..16383),
+ sbasAlmYg INTEGER (-16384..16383),
+ sbasAlmZg INTEGER (-256..255),
+ sbasAlmXgdot INTEGER (-4..3),
+ sbasAlmYgDot INTEGER (-4..3),
+ sbasAlmZgDot INTEGER (-8..7),
+ sbasAlmTo INTEGER (0..2047),
+ ...
+}
+
+
+AlmanacBDS-AlmanacSet-r12 ::= SEQUENCE {
+ svID SV-ID,
+ bdsAlmToa-r12 INTEGER (0..255) OPTIONAL, -- Cond NotSameForAllSV
+ bdsAlmSqrtA-r12 INTEGER (0..16777215),
+ bdsAlmE-r12 INTEGER (0..131071),
+ bdsAlmW-r12 INTEGER (-8388608..8388607),
+ bdsAlmM0-r12 INTEGER (-8388608..8388607),
+ bdsAlmOmega0-r12 INTEGER (-8388608..8388607),
+ bdsAlmOmegaDot-r12 INTEGER (-65536..65535),
+ bdsAlmDeltaI-r12 INTEGER (-32768..32767),
+ bdsAlmA0-r12 INTEGER (-1024..1023),
+ bdsAlmA1-r12 INTEGER (-1024..1023),
+ bdsSvHealth-r12 BIT STRING (SIZE(9)) OPTIONAL, -- Cond SV-ID
+ ...
+}
+
+
+GNSS-UTC-Model ::= CHOICE {
+ utcModel1 UTC-ModelSet1, -- Model-1
+ utcModel2 UTC-ModelSet2, -- Model-2
+ utcModel3 UTC-ModelSet3, -- Model-3
+ utcModel4 UTC-ModelSet4, -- Model-4
+ ...,
+ utcModel5-r12 UTC-ModelSet5-r12 -- Model-5
+}
+
+
+UTC-ModelSet1 ::= SEQUENCE {
+ gnss-Utc-A1 INTEGER (-8388608..8388607),
+ gnss-Utc-A0 INTEGER (-2147483648..2147483647),
+ gnss-Utc-Tot INTEGER (0..255),
+ gnss-Utc-WNt INTEGER (0..255),
+ gnss-Utc-DeltaTls INTEGER (-128..127),
+ gnss-Utc-WNlsf INTEGER (0..255),
+ gnss-Utc-DN INTEGER (-128..127),
+ gnss-Utc-DeltaTlsf INTEGER (-128..127),
+ ...
+}
+
+
+UTC-ModelSet2 ::= SEQUENCE {
+ utcA0 INTEGER (-32768..32767),
+ utcA1 INTEGER (-4096..4095),
+ utcA2 INTEGER (-64..63),
+ utcDeltaTls INTEGER (-128..127),
+ utcTot INTEGER (0..65535),
+ utcWNot INTEGER (0..8191),
+ utcWNlsf INTEGER (0..255),
+ utcDN BIT STRING (SIZE(4)),
+ utcDeltaTlsf INTEGER (-128..127),
+ ...
+}
+
+
+UTC-ModelSet3 ::= SEQUENCE {
+ nA INTEGER (1..1461),
+ tauC INTEGER (-2147483648..2147483647),
+ b1 INTEGER (-1024..1023) OPTIONAL, -- Cond GLONASS-M
+ b2 INTEGER (-512..511) OPTIONAL, -- Cond GLONASS-M
+ kp BIT STRING (SIZE(2)) OPTIONAL, -- Cond GLONASS-M
+ ...
+}
+
+
+UTC-ModelSet4 ::= SEQUENCE {
+ utcA1wnt INTEGER (-8388608..8388607),
+ utcA0wnt INTEGER (-2147483648..2147483647),
+ utcTot INTEGER (0..255),
+ utcWNt INTEGER (0..255),
+ utcDeltaTls INTEGER (-128..127),
+ utcWNlsf INTEGER (0..255),
+ utcDN INTEGER (-128..127),
+ utcDeltaTlsf INTEGER (-128..127),
+ utcStandardID INTEGER (0..7),
+ ...
+}
+
+
+UTC-ModelSet5-r12 ::= SEQUENCE {
+ utcA0-r12 INTEGER (-2147483648..2147483647),
+ utcA1-r12 INTEGER (-8388608..8388607),
+ utcDeltaTls-r12 INTEGER (-128..127),
+ utcWNlsf-r12 INTEGER (0..255),
+ utcDN-r12 INTEGER (0..255),
+ utcDeltaTlsf-r12 INTEGER (-128..127),
+ ...
+}
+
+
+GNSS-AuxiliaryInformation ::= CHOICE {
+ gnss-ID-GPS GNSS-ID-GPS,
+ gnss-ID-GLONASS GNSS-ID-GLONASS,
+ ...
+}
+
+GNSS-ID-GPS ::= SEQUENCE (SIZE(1..64)) OF GNSS-ID-GPS-SatElement
+
+GNSS-ID-GPS-SatElement ::= SEQUENCE {
+ svID SV-ID,
+ signalsAvailable GNSS-SignalIDs,
+ ...
+}
+
+GNSS-ID-GLONASS ::= SEQUENCE (SIZE(1..64)) OF GNSS-ID-GLONASS-SatElement
+
+GNSS-ID-GLONASS-SatElement ::= SEQUENCE {
+ svID SV-ID,
+ signalsAvailable GNSS-SignalIDs,
+ channelNumber INTEGER (-7..13) OPTIONAL, -- Cond FDMA
+ ...
+}
+
+
+BDS-DifferentialCorrections-r12 ::= SEQUENCE {
+ dbds-RefTime-r12 INTEGER (0..3599),
+ bds-SgnTypeList-r12 BDS-SgnTypeList-r12,
+ ...
+}
+
+BDS-SgnTypeList-r12 ::= SEQUENCE (SIZE (1..3)) OF BDS-SgnTypeElement-r12
+
+BDS-SgnTypeElement-r12 ::= SEQUENCE {
+ gnss-SignalID GNSS-SignalID OPTIONAL, -- Need ON
+ dbds-CorrectionList-r12 DBDS-CorrectionList-r12,
+ ...
+}
+
+DBDS-CorrectionList-r12 ::= SEQUENCE (SIZE (1..64)) OF DBDS-CorrectionElement-r12
+
+DBDS-CorrectionElement-r12 ::= SEQUENCE {
+ svID SV-ID,
+ bds-UDREI-r12 INTEGER (0..15),
+ bds-RURAI-r12 INTEGER (0..15),
+ bds-ECC-DeltaT-r12 INTEGER (-4096..4095),
+ ...
+}
+
+
+BDS-GridModelParameter-r12 ::= SEQUENCE {
+ bds-RefTime-r12 INTEGER (0..3599),
+ gridIonList-r12 GridIonList-r12,
+ ...
+}
+
+GridIonList-r12 ::= SEQUENCE (SIZE (1..320)) OF GridIonElement-r12
+
+GridIonElement-r12 ::= SEQUENCE {
+ igp-ID-r12 INTEGER (1..320),
+ dt-r12 INTEGER (0..511),
+ givei-r12 INTEGER (0..15) ,
+ ...
+}
+
+
+A-GNSS-RequestAssistanceData ::= SEQUENCE {
+ gnss-CommonAssistDataReq GNSS-CommonAssistDataReq OPTIONAL, -- Cond CommonADReq
+ gnss-GenericAssistDataReq GNSS-GenericAssistDataReq OPTIONAL, -- Cond GenADReq
+ ...
+}
+
+
+GNSS-CommonAssistDataReq ::= SEQUENCE {
+ gnss-ReferenceTimeReq GNSS-ReferenceTimeReq
+ OPTIONAL, -- Cond RefTimeReq
+ gnss-ReferenceLocationReq GNSS-ReferenceLocationReq
+ OPTIONAL, -- Cond RefLocReq
+ gnss-IonosphericModelReq GNSS-IonosphericModelReq
+ OPTIONAL, -- Cond IonoModReq
+ gnss-EarthOrientationParametersReq GNSS-EarthOrientationParametersReq
+ OPTIONAL, -- Cond EOPReq
+ ...
+}
+
+
+GNSS-GenericAssistDataReq ::= SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataReqElement
+
+GNSS-GenericAssistDataReqElement ::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ sbas-ID SBAS-ID OPTIONAL, -- Cond GNSS-ID-SBAS
+ gnss-TimeModelsReq GNSS-TimeModelListReq OPTIONAL, -- Cond TimeModReq
+ gnss-DifferentialCorrectionsReq GNSS-DifferentialCorrectionsReq OPTIONAL, -- Cond DGNSS-Req
+ gnss-NavigationModelReq GNSS-NavigationModelReq OPTIONAL, -- Cond NavModReq
+ gnss-RealTimeIntegrityReq GNSS-RealTimeIntegrityReq OPTIONAL, -- Cond RTIReq
+ gnss-DataBitAssistanceReq GNSS-DataBitAssistanceReq OPTIONAL, -- Cond DataBitsReq
+ gnss-AcquisitionAssistanceReq GNSS-AcquisitionAssistanceReq OPTIONAL, -- Cond AcquAssistReq
+ gnss-AlmanacReq GNSS-AlmanacReq OPTIONAL, -- Cond AlmanacReq
+ gnss-UTCModelReq GNSS-UTC-ModelReq OPTIONAL, -- Cond UTCModReq
+ gnss-AuxiliaryInformationReq GNSS-AuxiliaryInformationReq OPTIONAL, -- Cond AuxInfoReq
+ ...,
+ [[
+ bds-DifferentialCorrectionsReq-r12
+ BDS-DifferentialCorrectionsReq-r12
+ OPTIONAL, -- Cond DBDS-Req
+ bds-GridModelReq-r12 BDS-GridModelReq-r12 OPTIONAL -- Cond BDS-GridModReq
+ ]]
+}
+
+
+GNSS-ReferenceTimeReq ::= SEQUENCE {
+ gnss-TimeReqPrefList SEQUENCE (SIZE (1..8)) OF GNSS-ID,
+ gps-TOW-assistReq BOOLEAN OPTIONAL, -- Cond gps
+ notOfLeapSecReq BOOLEAN OPTIONAL, -- Cond glonass
+ ...
+}
+
+
+GNSS-ReferenceLocationReq ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-IonosphericModelReq ::= SEQUENCE {
+ klobucharModelReq BIT STRING (SIZE(2)) OPTIONAL, -- Cond klobuchar
+ neQuickModelReq NULL OPTIONAL, -- Cond nequick
+ ...
+}
+
+
+GNSS-EarthOrientationParametersReq ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-TimeModelListReq ::= SEQUENCE (SIZE(1..15)) OF GNSS-TimeModelElementReq
+
+GNSS-TimeModelElementReq ::= SEQUENCE {
+ gnss-TO-IDsReq INTEGER (1..15),
+ deltaTreq BOOLEAN,
+ ...
+}
+
+
+GNSS-DifferentialCorrectionsReq ::= SEQUENCE {
+ dgnss-SignalsReq GNSS-SignalIDs,
+ dgnss-ValidityTimeReq BOOLEAN,
+ ...
+}
+
+
+GNSS-NavigationModelReq ::= CHOICE {
+ storedNavList StoredNavListInfo,
+ reqNavList ReqNavListInfo,
+ ...
+}
+
+
+StoredNavListInfo ::= SEQUENCE {
+ gnss-WeekOrDay INTEGER (0..4095),
+ gnss-Toe INTEGER (0..255),
+ t-toeLimit INTEGER (0..15),
+ satListRelatedDataList SatListRelatedDataList OPTIONAL,
+ ...
+}
+
+SatListRelatedDataList ::= SEQUENCE (SIZE (1..64)) OF SatListRelatedDataElement
+
+SatListRelatedDataElement ::= SEQUENCE {
+ svID SV-ID,
+ iod BIT STRING (SIZE(11)),
+ clockModelID INTEGER (1..8) OPTIONAL,
+orbitModelID INTEGER (1..8) OPTIONAL,
+ ...
+}
+
+ReqNavListInfo ::= SEQUENCE {
+ svReqList BIT STRING (SIZE (64)),
+ clockModelID-PrefList SEQUENCE (SIZE (1..8)) OF INTEGER (1..8) OPTIONAL,
+ orbitModelID-PrefList SEQUENCE (SIZE (1..8)) OF INTEGER (1..8) OPTIONAL,
+ addNavparamReq BOOLEAN OPTIONAL, -- Cond orbitModelID-2
+ ...
+}
+
+
+
+GNSS-RealTimeIntegrityReq ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-DataBitAssistanceReq ::= SEQUENCE {
+ gnss-TOD-Req INTEGER (0..3599),
+ gnss-TOD-FracReq INTEGER (0..999) OPTIONAL,
+ dataBitInterval INTEGER (0..15),
+ gnss-SignalType GNSS-SignalIDs,
+ gnss-DataBitsReq GNSS-DataBitsReqSatList OPTIONAL,
+ ...
+}
+
+GNSS-DataBitsReqSatList ::= SEQUENCE (SIZE(1..64)) OF GNSS-DataBitsReqSatElement
+
+GNSS-DataBitsReqSatElement ::= SEQUENCE {
+ svID SV-ID,
+ ...
+}
+
+
+GNSS-AcquisitionAssistanceReq ::= SEQUENCE {
+ gnss-SignalID-Req GNSS-SignalID,
+ ...
+}
+
+
+GNSS-AlmanacReq ::= SEQUENCE {
+ modelID INTEGER(1..8) OPTIONAL,
+ ...
+}
+
+
+GNSS-UTC-ModelReq ::= SEQUENCE {
+ modelID INTEGER(1..8) OPTIONAL,
+ ...
+}
+
+
+GNSS-AuxiliaryInformationReq ::= SEQUENCE {
+ ...
+}
+
+
+BDS-DifferentialCorrectionsReq-r12 ::= SEQUENCE {
+ dgnss-SignalsReq GNSS-SignalIDs,
+ ...
+}
+
+
+BDS-GridModelReq-r12 ::= SEQUENCE {
+ ...
+}
+
+
+A-GNSS-ProvideLocationInformation ::= SEQUENCE {
+ gnss-SignalMeasurementInformation GNSS-SignalMeasurementInformation OPTIONAL,
+ gnss-LocationInformation GNSS-LocationInformation OPTIONAL,
+ gnss-Error A-GNSS-Error OPTIONAL,
+ ...
+}
+
+
+GNSS-SignalMeasurementInformation ::= SEQUENCE {
+ measurementReferenceTime MeasurementReferenceTime,
+ gnss-MeasurementList GNSS-MeasurementList,
+ ...
+}
+
+
+MeasurementReferenceTime ::= SEQUENCE {
+ gnss-TOD-msec INTEGER (0..3599999),
+ gnss-TOD-frac INTEGER (0..3999) OPTIONAL,
+ gnss-TOD-unc INTEGER (0..127) OPTIONAL,
+ gnss-TimeID GNSS-ID,
+ networkTime CHOICE {
+ eUTRA SEQUENCE {
+ physCellId INTEGER (0..503),
+ cellGlobalId CellGlobalIdEUTRA-AndUTRA OPTIONAL,
+ systemFrameNumber BIT STRING (SIZE (10)),
+ ...
+ },
+ uTRA SEQUENCE {
+ mode CHOICE {
+ fdd SEQUENCE {
+ primary-CPICH-Info INTEGER (0..511),
+ ...
+ },
+ tdd SEQUENCE {
+ cellParameters INTEGER (0..127),
+ ...
+ }
+ },
+ cellGlobalId CellGlobalIdEUTRA-AndUTRA OPTIONAL,
+ referenceSystemFrameNumber
+ INTEGER (0..4095),
+ ...
+ },
+ gSM SEQUENCE {
+ bcchCarrier INTEGER (0..1023),
+ bsic INTEGER (0..63),
+ cellGlobalId CellGlobalIdGERAN OPTIONAL,
+ referenceFrame SEQUENCE {
+ referenceFN INTEGER (0..65535),
+ referenceFNMSB INTEGER (0..63) OPTIONAL,
+ ...
+ },
+ deltaGNSS-TOD INTEGER (0 .. 127) OPTIONAL,
+ ...
+ },
+ ...
+ } OPTIONAL,
+ ...
+}
+
+
+GNSS-MeasurementList ::= SEQUENCE (SIZE(1..16)) OF GNSS-MeasurementForOneGNSS
+
+GNSS-MeasurementForOneGNSS ::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ gnss-SgnMeasList GNSS-SgnMeasList,
+ ...
+}
+
+GNSS-SgnMeasList ::= SEQUENCE (SIZE(1..8)) OF GNSS-SgnMeasElement
+
+GNSS-SgnMeasElement ::= SEQUENCE {
+ gnss-SignalID GNSS-SignalID,
+ gnss-CodePhaseAmbiguity INTEGER (0..127) OPTIONAL,
+ gnss-SatMeasList GNSS-SatMeasList,
+ ...
+}
+
+GNSS-SatMeasList ::= SEQUENCE (SIZE(1..64)) OF GNSS-SatMeasElement
+
+GNSS-SatMeasElement ::= SEQUENCE {
+ svID SV-ID,
+ cNo INTEGER (0..63),
+ mpathDet ENUMERATED {notMeasured (0), low (1), medium (2), high (3), ...},
+ carrierQualityInd INTEGER (0..3) OPTIONAL,
+ codePhase INTEGER (0..2097151),
+ integerCodePhase INTEGER (0..127) OPTIONAL,
+ codePhaseRMSError INTEGER (0..63),
+ doppler INTEGER (-32768..32767) OPTIONAL,
+ adr INTEGER (0..33554431) OPTIONAL,
+ ...
+}
+
+
+GNSS-LocationInformation ::= SEQUENCE {
+ measurementReferenceTime MeasurementReferenceTime,
+ agnss-List GNSS-ID-Bitmap,
+ ...
+}
+
+
+A-GNSS-RequestLocationInformation ::= SEQUENCE {
+ gnss-PositioningInstructions GNSS-PositioningInstructions,
+ ...
+}
+
+
+GNSS-PositioningInstructions ::= SEQUENCE {
+ gnss-Methods GNSS-ID-Bitmap,
+ fineTimeAssistanceMeasReq BOOLEAN,
+ adrMeasReq BOOLEAN,
+ multiFreqMeasReq BOOLEAN,
+ assistanceAvailability BOOLEAN,
+ ...
+}
+
+
+A-GNSS-ProvideCapabilities ::= SEQUENCE {
+ gnss-SupportList GNSS-SupportList OPTIONAL,
+ assistanceDataSupportList AssistanceDataSupportList OPTIONAL,
+ locationCoordinateTypes LocationCoordinateTypes OPTIONAL,
+ velocityTypes VelocityTypes OPTIONAL,
+ ...
+}
+
+GNSS-SupportList ::= SEQUENCE (SIZE(1..16)) OF GNSS-SupportElement
+
+GNSS-SupportElement ::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ sbas-IDs SBAS-IDs OPTIONAL, -- Cond GNSS-ID-SBAS
+ agnss-Modes PositioningModes,
+ gnss-Signals GNSS-SignalIDs,
+ fta-MeasSupport SEQUENCE {
+ cellTime AccessTypes,
+ mode PositioningModes,
+ ...
+ } OPTIONAL, -- Cond fta
+ adr-Support BOOLEAN,
+ velocityMeasurementSupport BOOLEAN,
+ ...
+}
+
+AssistanceDataSupportList ::= SEQUENCE {
+ gnss-CommonAssistanceDataSupport GNSS-CommonAssistanceDataSupport,
+ gnss-GenericAssistanceDataSupport GNSS-GenericAssistanceDataSupport,
+ ...
+}
+
+
+
+GNSS-CommonAssistanceDataSupport ::= SEQUENCE {
+ gnss-ReferenceTimeSupport GNSS-ReferenceTimeSupport
+ OPTIONAL, -- Cond RefTimeSup
+ gnss-ReferenceLocationSupport GNSS-ReferenceLocationSupport
+ OPTIONAL, -- Cond RefLocSup
+ gnss-IonosphericModelSupport GNSS-IonosphericModelSupport
+ OPTIONAL, -- Cond IonoModSup
+ gnss-EarthOrientationParametersSupport GNSS-EarthOrientationParametersSupport
+ OPTIONAL, -- Cond EOPSup
+ ...
+}
+
+
+GNSS-ReferenceTimeSupport ::= SEQUENCE {
+ gnss-SystemTime GNSS-ID-Bitmap,
+ fta-Support AccessTypes OPTIONAL, -- Cond fta
+ ...
+}
+
+
+GNSS-ReferenceLocationSupport ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-IonosphericModelSupport ::= SEQUENCE {
+ ionoModel BIT STRING { klobuchar (0),
+ neQuick (1) } (SIZE (1..8)),
+ ...
+}
+
+
+GNSS-EarthOrientationParametersSupport ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-GenericAssistanceDataSupport ::=
+ SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataSupportElement
+
+GNSS-GenericAssistDataSupportElement ::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ sbas-ID SBAS-ID OPTIONAL, -- Cond GNSS-ID-SBAS
+ gnss-TimeModelsSupport GNSS-TimeModelListSupport
+ OPTIONAL, -- Cond TimeModSup
+ gnss-DifferentialCorrectionsSupport GNSS-DifferentialCorrectionsSupport
+ OPTIONAL, -- Cond DGNSS-Sup
+ gnss-NavigationModelSupport GNSS-NavigationModelSupport
+ OPTIONAL, -- Cond NavModSup
+ gnss-RealTimeIntegritySupport GNSS-RealTimeIntegritySupport
+ OPTIONAL, -- Cond RTISup
+ gnss-DataBitAssistanceSupport GNSS-DataBitAssistanceSupport
+ OPTIONAL, -- Cond DataBitsSup
+ gnss-AcquisitionAssistanceSupport GNSS-AcquisitionAssistanceSupport
+ OPTIONAL, -- Cond AcquAssistSup
+ gnss-AlmanacSupport GNSS-AlmanacSupport
+ OPTIONAL, -- Cond AlmanacSup
+ gnss-UTC-ModelSupport GNSS-UTC-ModelSupport
+ OPTIONAL, -- Cond UTCModSup
+ gnss-AuxiliaryInformationSupport GNSS-AuxiliaryInformationSupport
+ OPTIONAL, -- Cond AuxInfoSup
+ ...,
+ [[
+ bds-DifferentialCorrectionsSupport-r12
+ BDS-DifferentialCorrectionsSupport-r12
+ OPTIONAL, -- Cond DBDS-Sup
+ bds-GridModelSupport-r12 BDS-GridModelSupport-r12
+ OPTIONAL -- Cond BDS-GridModSup
+ ]]
+}
+
+
+GNSS-TimeModelListSupport ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-DifferentialCorrectionsSupport ::= SEQUENCE {
+ gnssSignalIDs GNSS-SignalIDs,
+ dgnss-ValidityTimeSup BOOLEAN,
+ ...
+}
+
+
+GNSS-NavigationModelSupport ::= SEQUENCE {
+ clockModel BIT STRING { model-1 (0),
+ model-2 (1),
+ model-3 (2),
+ model-4 (3),
+ model-5 (4),
+ model-6 (5) } (SIZE (1..8)) OPTIONAL,
+ orbitModel BIT STRING { model-1 (0),
+ model-2 (1),
+ model-3 (2),
+ model-4 (3),
+ model-5 (4),
+ model-6 (5) } (SIZE (1..8)) OPTIONAL,
+ ...
+}
+
+
+GNSS-RealTimeIntegritySupport ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-DataBitAssistanceSupport ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-AcquisitionAssistanceSupport ::= SEQUENCE {
+ ...,
+ confidenceSupport-r10 ENUMERATED { true } OPTIONAL,
+ dopplerUncertaintyExtSupport-r10 ENUMERATED { true } OPTIONAL
+}
+
+
+GNSS-AlmanacSupport ::= SEQUENCE {
+ almanacModel BIT STRING { model-1 (0),
+ model-2 (1),
+ model-3 (2),
+ model-4 (3),
+ model-5 (4),
+ model-6 (5),
+ model-7 (6) } (SIZE (1..8)) OPTIONAL,
+ ...
+}
+
+
+GNSS-UTC-ModelSupport ::= SEQUENCE {
+ utc-Model BIT STRING { model-1 (0),
+ model-2 (1),
+ model-3 (2),
+ model-4 (3),
+ model-5 (4) } (SIZE (1..8)) OPTIONAL,
+ ...
+}
+
+
+GNSS-AuxiliaryInformationSupport ::= SEQUENCE {
+ ...
+}
+
+
+BDS-DifferentialCorrectionsSupport-r12 ::= SEQUENCE {
+ gnssSignalIDs GNSS-SignalIDs,
+ ...
+}
+
+
+BDS-GridModelSupport-r12 ::= SEQUENCE {
+ ...
+}
+
+
+A-GNSS-RequestCapabilities ::= SEQUENCE {
+ gnss-SupportListReq BOOLEAN,
+ assistanceDataSupportListReq BOOLEAN,
+ locationVelocityTypesReq BOOLEAN,
+ ...
+}
+
+
+A-GNSS-Error ::= CHOICE {
+ locationServerErrorCauses GNSS-LocationServerErrorCauses,
+ targetDeviceErrorCauses GNSS-TargetDeviceErrorCauses,
+ ...
+}
+
+
+GNSS-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED {
+ undefined,
+ undeliveredAssistanceDataIsNotSupportedByServer,
+ undeliveredAssistanceDataIsSupportedButCurrentlyNotAvailableByServer, undeliveredAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailableByServer,
+ ...
+ },
+ ...
+}
+
+
+GNSS-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ thereWereNotEnoughSatellitesReceived,
+ assistanceDataMissing,
+ notAllRequestedMeasurementsPossible,
+ ...
+ },
+ fineTimeAssistanceMeasurementsNotPossible NULL OPTIONAL,
+ adrMeasurementsNotPossible NULL OPTIONAL,
+ multiFrequencyMeasurementsNotPossible NULL OPTIONAL,
+ ...
+}
+
+
+GNSS-ID ::= SEQUENCE {
+ gnss-id ENUMERATED{ gps, sbas, qzss, galileo, glonass, ..., bds },
+ ...
+}
+
+
+GNSS-ID-Bitmap ::= SEQUENCE {
+ gnss-ids BIT STRING { gps (0),
+ sbas (1),
+ qzss (2),
+ galileo (3),
+ glonass (4),
+ bds (5) } (SIZE (1..16)),
+ ...
+}
+
+
+GNSS-SignalID ::= SEQUENCE {
+ gnss-SignalID INTEGER (0 .. 7),
+ ...
+}
+
+
+GNSS-SignalIDs ::= SEQUENCE {
+ gnss-SignalIDs BIT STRING (SIZE(8)),
+ ...
+}
+
+
+SBAS-ID ::= SEQUENCE {
+ sbas-id ENUMERATED { waas, egnos, msas, gagan, ...},
+ ...
+}
+
+
+SBAS-IDs ::= SEQUENCE {
+ sbas-IDs BIT STRING { waas (0),
+ egnos (1),
+ msas (2),
+ gagan (3) } (SIZE (1..8)),
+ ...
+}
+
+
+SV-ID ::= SEQUENCE {
+ satellite-id INTEGER(0..63),
+ ...
+}
+
+
+ECID-ProvideLocationInformation ::= SEQUENCE {
+ ecid-SignalMeasurementInformation ECID-SignalMeasurementInformation OPTIONAL,
+ ecid-Error ECID-Error OPTIONAL,
+ ...
+}
+
+
+ECID-SignalMeasurementInformation ::= SEQUENCE {
+ primaryCellMeasuredResults MeasuredResultsElement OPTIONAL,
+ measuredResultsList MeasuredResultsList,
+ ...
+}
+
+MeasuredResultsList ::= SEQUENCE (SIZE(1..32)) OF MeasuredResultsElement
+
+MeasuredResultsElement ::= SEQUENCE {
+ physCellId INTEGER (0..503),
+ cellGlobalId CellGlobalIdEUTRA-AndUTRA OPTIONAL,
+ arfcnEUTRA ARFCN-ValueEUTRA,
+ systemFrameNumber
+ BIT STRING (SIZE (10)) OPTIONAL,
+ rsrp-Result INTEGER (0..97) OPTIONAL,
+ rsrq-Result INTEGER (0..34) OPTIONAL,
+ ue-RxTxTimeDiff INTEGER (0..4095) OPTIONAL,
+ ...,
+ [[ arfcnEUTRA-v9a0 ARFCN-ValueEUTRA-v9a0 OPTIONAL -- Cond EARFCN-max
+ ]]
+}
+
+
+ECID-RequestLocationInformation ::= SEQUENCE {
+ requestedMeasurements BIT STRING { rsrpReq (0),
+ rsrqReq (1),
+ ueRxTxReq (2) } (SIZE(1..8)),
+ ...
+}
+
+
+ECID-ProvideCapabilities ::= SEQUENCE {
+ ecid-MeasSupported BIT STRING { rsrpSup (0),
+ rsrqSup (1),
+ ueRxTxSup (2) } (SIZE(1..8)),
+ ...
+}
+
+
+ECID-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+ECID-Error ::= CHOICE {
+ locationServerErrorCauses ECID-LocationServerErrorCauses,
+ targetDeviceErrorCauses ECID-TargetDeviceErrorCauses,
+ ...
+}
+
+
+ECID-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ ...
+ },
+ ...
+}
+
+
+ECID-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ requestedMeasurementNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ ...
+ },
+ rsrpMeasurementNotPossible NULL OPTIONAL,
+ rsrqMeasurementNotPossible NULL OPTIONAL,
+ ueRxTxMeasurementNotPossible NULL OPTIONAL,
+ ...
+}
+
+
+TBS-ProvideLocationInformation-r13 ::= SEQUENCE {
+ tbs-MeasurementList-r13 TBS-MeasurementList-r13 OPTIONAL,
+ tbs-Error-r13 TBS-Error-r13 OPTIONAL,
+ ...
+}
+
+
+TBS-MeasurementList-r13 ::= SEQUENCE {
+ measurementReferenceTime-r13 UTCTime OPTIONAL,
+ mbs-SgnMeasList-r13 MBS-BeaconMeasList-r13 OPTIONAL, -- Cond MBS
+ ...
+}
+
+
+MBS-BeaconMeasList-r13 ::= SEQUENCE (SIZE(1..64)) OF MBS-BeaconMeasElement-r13
+
+MBS-BeaconMeasElement-r13 ::= SEQUENCE {
+ transmitterID-r13 INTEGER (0..32767),
+ codePhase-r13 INTEGER (0..2097151),
+ codePhaseRMSError-r13 INTEGER (0..63),
+ ...
+}
+
+
+TBS-RequestLocationInformation-r13 ::= SEQUENCE {
+ mbsSgnMeasListReq BOOLEAN,
+ ...
+}
+
+
+TBS-ProvideCapabilities-r13 ::= SEQUENCE {
+ tbs-Modes-r13 BIT STRING { standalone (0),
+ ue-assisted (2) } (SIZE (1..8)),
+...
+}
+
+
+TBS-RequestCapabilities-r13 ::= SEQUENCE {
+ ...
+}
+
+TBS-Error-r13 ::= CHOICE {
+ locationServerErrorCauses-r13 TBS-LocationServerErrorCauses-r13,
+ targetDeviceErrorCauses-r13 TBS-TargetDeviceErrorCauses-r13,
+ ...
+}
+
+
+TBS-LocationServerErrorCauses-r13 ::= SEQUENCE {
+ cause-r13 ENUMERATED { undefined,
+ ...
+ },
+ ...
+}
+
+
+TBS-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
+ cause-r13 ENUMERATED { undefined,
+ thereWereNotEnoughMBSBeaconsReceived,
+ ...
+ },
+ ...
+}
+
+
+Sensor-ProvideLocationInformation-r13 ::= SEQUENCE {
+ sensor-MeasurementList-r13 Sensor-MeasurementList-r13 OPTIONAL,
+ sensor-Error-r13 Sensor-Error-r13 OPTIONAL,
+ ...
+}
+
+
+Sensor-MeasurementList-r13 ::= SEQUENCE {
+ measurementReferenceTime-r13 UTCTime OPTIONAL,
+ uncompensatedBarometricPressure-r13 INTEGER (30000..115000) OPTIONAL, -- Cond Barometer
+ ...
+}
+
+
+Sensor-RequestLocationInformation-r13 ::= SEQUENCE {
+ uncompensatedBarometricPressureReq BOOLEAN,
+ ...
+}
+
+
+Sensor-ProvideCapabilities-r13 ::= SEQUENCE {
+ sensor-Modes-r13 BIT STRING { standalone (0),
+ ue-assisted (2) } (SIZE (1..8)),
+ ...
+}
+
+
+Sensor-RequestCapabilities-r13 ::= SEQUENCE {
+ ...
+}
+
+Sensor-Error-r13 ::= CHOICE {
+ targetServerErrorCauses-r13 Sensor-LocationServerErrorCauses-r13,
+ targetDeviceErrorCauses-r13 Sensor-TargetDeviceErrorCauses-r13,
+ ...
+}
+
+
+Sensor-LocationServerErrorCauses-r13 ::= SEQUENCE {
+ cause-r13 ENUMERATED { undefined,
+ ...},
+...
+}
+
+
+Sensor-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
+ cause-r13 ENUMERATED { undefined,
+ ...},
+...
+}
+
+
+WLAN-ProvideLocationInformation-r13 ::= SEQUENCE {
+ wlan-MeasurementList-r13 WLAN-MeasurementList-r13 OPTIONAL,
+ measurementReferenceTime-r13 UTCTime OPTIONAL,
+ wlan-Error-r13 WLAN-Error-r13 OPTIONAL,
+ ...
+}
+
+
+WLAN-MeasurementList-r13 ::= SEQUENCE (SIZE(1..maxWLANAPSize-r13)) OF WLAN-MeasurementElement-r13
+
+WLAN-MeasurementElement-r13 ::= SEQUENCE {
+ wlan-AP-Identifier-r13 WLAN-AP-Identifier-r13,
+ rssi-r13 INTEGER(-127..128) OPTIONAL,
+ rtt-r13 WLAN-RTT-r13 OPTIONAL,
+ apChannelFrequency INTEGER(0..256) OPTIONAL,
+ servingFlag BOOLEAN OPTIONAL,
+ ...
+}
+
+WLAN-AP-Identifier-r13 ::= SEQUENCE {
+ bssid-r13 OCTET STRING (SIZE (6)),
+ ssid-r13 OCTET STRING (SIZE (1..32)) OPTIONAL,
+ ...
+}
+
+WLAN-RTT-r13 ::= SEQUENCE {
+ rttValue-r13 INTEGER(0..16777215),
+ rttUnits-r13 ENUMERATED { microseconds,
+ hundredsofnanoseconds,
+ tensofnanoseconds,
+ nanoseconds,
+ tenthsofnanoseconds,
+ ... },
+ rttAccuracy-r13 INTEGER(0..255) OPTIONAL,
+ ...
+}
+
+maxWLANAPSize-r13 INTEGER ::= 64
+
+WLAN-RequestLocationInformation-r13 ::= SEQUENCE {
+ requestedMeasurements-r13 BIT STRING {
+ rssi (0),
+ rtt (1)} (SIZE(1..8)),
+ ...
+}
+
+
+WLAN-ProvideCapabilities-r13 ::= SEQUENCE {
+ wlan-Modes-r13 BIT STRING { standalone (0),
+ ue-assisted (2)} (SIZE (1..8)),
+ wlan-MeasSupported-r13 BIT STRING {
+ rssi-r13 (0),
+ rtt-r13 (1)} (SIZE(1..8)),
+ ...
+}
+
+
+WLAN-RequestCapabilities-r13 ::= SEQUENCE {
+ ...
+}
+
+
+WLAN-Error-r13 ::= CHOICE {
+ locationServerErrorCauses-r13 WLAN-LocationServerErrorCauses-r13,
+ targetDeviceErrorCauses-r13 WLAN-TargetDeviceErrorCauses-r13,
+ ...
+}
+
+
+WLAN-LocationServerErrorCauses-r13 ::= SEQUENCE {
+ cause-r13 ENUMERATED {undefined, ...}
+}
+
+
+WLAN-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
+ cause-r13 ENUMERATED {undefined,
+ requestedMeasurementsNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ ...
+ },
+ wlan-AP-RSSI-MeasurementNotPossible-r13 NULL OPTIONAL,
+ wlan-AP-RTT-MeasurementNotPossible-r13 NULL OPTIONAL,
+ ...
+}
+
+
+BT-ProvideLocationInformation-r13 ::= SEQUENCE {
+ bt-MeasurementList-r13 BT-MeasurementList-r13 OPTIONAL,
+ measurementReferenceTime-r13 UTCTime OPTIONAL,
+ bt-Error-r13 BT-Error-r13 OPTIONAL,
+ ...
+}
+
+
+BT-MeasurementList-r13 ::= SEQUENCE (SIZE(1.. maxBTBeaconSize-r13)) OF BT-MeasurementElement-r13
+
+
+BT-MeasurementElement-r13 ::= SEQUENCE {
+ btAddr-r13 BIT STRING (SIZE (48)),
+ rssi-r13 INTEGER(-128..127) OPTIONAL,
+ ...
+}
+
+maxBTBeaconSize-r13 INTEGER ::= 32
+
+BT-RequestLocationInformation-r13 ::= SEQUENCE {
+ requestedMeasurements-r13 BIT STRING {
+ rssi (0)} (SIZE(1..8)),
+ ...
+}
+
+
+BT-ProvideCapabilities-r13 ::= SEQUENCE {
+ bt-Modes-r13 BIT STRING { standalone (0),
+ ue-assisted (2)} (SIZE (1..8)),
+ ...
+}
+
+
+BT-RequestCapabilities-r13 ::= SEQUENCE {
+ ...
+}
+
+
+BT-Error-r13 ::= CHOICE {
+ locationServerErrorCauses-r13 BT-LocationServerErrorCauses-r13,
+ targetDeviceErrorCauses-r13 BT-TargetDeviceErrorCauses-r13,
+ ...
+}
+
+
+BT-LocationServerErrorCauses-r13 ::= SEQUENCE {
+ cause-r13 ENUMERATED {undefined, ...}
+}
+
+
+BT-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
+ cause-r13 ENUMERATED {undefined,
+ requestedMeasurementsNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ ...
+ },
+ bt-Beacon-rssiMeasurementNotPossible-r13 NULL OPTIONAL,
+...
+}
+
+
+END
diff --git a/epan/dissectors/asn1/lpp/Makefile.am b/epan/dissectors/asn1/lpp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/lpp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/lpp/Makefile.common b/epan/dissectors/asn1/lpp/Makefile.common
new file mode 100644
index 0000000000..e7dfea3481
--- /dev/null
+++ b/epan/dissectors/asn1/lpp/Makefile.common
@@ -0,0 +1,44 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = lpp
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ LPP.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/lpp/Makefile.nmake b/epan/dissectors/asn1/lpp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/lpp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/lpp/lpp.cnf b/epan/dissectors/asn1/lpp/lpp.cnf
new file mode 100644
index 0000000000..0f3cb1995d
--- /dev/null
+++ b/epan/dissectors/asn1/lpp/lpp.cnf
@@ -0,0 +1,1809 @@
+# lpp.cnf
+# lpp conformation file
+# Copyright 2011-2016 Pascal Quantin
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.EXPORTS
+Ellipsoid-Point_PDU
+EllipsoidPointWithAltitude_PDU
+HorizontalVelocity_PDU
+EllipsoidArc_PDU
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU
+Ellipsoid-PointWithUncertaintyCircle_PDU
+EllipsoidPointWithUncertaintyEllipse_PDU
+Polygon_PDU
+GNSS-ID
+GNSS-SignalID
+GNSS-SignalIDs
+GNSS-SystemTime
+SV-ID
+ECID-SignalMeasurementInformation
+CellGlobalIdGERAN
+CellGlobalIdEUTRA-AndUTRA
+OTDOA-ReferenceCellInfo
+OTDOA-NeighbourCellInfoElement
+ARFCN-ValueEUTRA
+Ellipsoid-Point
+EllipsoidPointWithAltitude
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid
+NetworkTime
+GNSS-ID-Bitmap
+ARFCN-ValueUTRA
+GNSS-ReferenceTime
+LPP-Message
+Ellipsoid-PointWithUncertaintyCircle
+EllipsoidPointWithUncertaintyEllipse
+EllipsoidArc
+Polygon
+#.END
+
+#.PDU
+LPP-Message
+Ellipsoid-Point
+EllipsoidPointWithAltitude
+HorizontalVelocity
+EllipsoidArc
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid
+Ellipsoid-PointWithUncertaintyCircle
+EllipsoidPointWithUncertaintyEllipse
+Polygon
+#.END
+
+#.MAKE_ENUM
+GNSS-ID/gnss-id TYPE_PREFIX UPPER_CASE
+
+#.FN_HDR RequestCapabilities
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Capabilities");
+
+#.FN_HDR ProvideCapabilities
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Capabilities");
+
+#.FN_HDR RequestAssistanceData
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Assistance Data");
+
+#.FN_HDR ProvideAssistanceData
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Assistance Data");
+
+#.FN_HDR RequestLocationInformation
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Location Information");
+
+#.FN_HDR ProvideLocationInformation
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Location Information");
+
+#.FN_HDR Abort
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Abort");
+
+#.FN_HDR Error
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error");
+
+#.FN_BODY EPDU-ID VAL_PTR = &lpp_epdu_id
+%(DEFAULT_BODY)s
+
+#.TYPE_ATTR
+EPDU-ID STRINGS=VALS(lpp_ePDU_ID_vals)
+
+#.FN_BODY EPDU-Body VAL_PTR=&lppe_tvb
+ tvbuff_t *lppe_tvb = NULL;
+%(DEFAULT_BODY)s
+ switch(lpp_epdu_id){
+ case 1:
+ if (lppe_tvb && lppe_handle) {
+ call_dissector(lppe_handle, lppe_tvb, actx->pinfo, tree);
+ }
+ break;
+ default:
+ break;
+ }
+ lpp_epdu_id = -1;
+
+#.FN_BODY AccessTypes/accessTypes VAL_PTR = &accessTypes_tvb LEN_PTR = &len
+ tvbuff_t *accessTypes_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(accessTypes_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_accessTypes_eutra, accessTypes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_accessTypes_utra, accessTypes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_accessTypes_gsm, accessTypes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.TYPE_ATTR
+Ellipsoid-Point/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt)
+
+#.TYPE_ATTR
+Ellipsoid-Point/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt)
+
+#.TYPE_ATTR
+Ellipsoid-PointWithUncertaintyCircle/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt)
+
+#.TYPE_ATTR
+Ellipsoid-PointWithUncertaintyCircle/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt)
+
+#.TYPE_ATTR
+Ellipsoid-PointWithUncertaintyCircle/uncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithUncertaintyEllipse/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithUncertaintyEllipse/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithUncertaintyEllipse/uncertaintySemiMajor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithUncertaintyEllipse/uncertaintySemiMinor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithUncertaintyEllipse/orientationMajorAxis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithUncertaintyEllipse/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitude/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitude/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitude/altitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_altitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/altitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_altitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/uncertaintySemiMajor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/uncertaintySemiMinor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/orientationMajorAxis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/uncertaintyAltitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertaintyAltitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
+
+#.TYPE_ATTR
+EllipsoidArc/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidArc/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt)
+
+#.TYPE_ATTR
+EllipsoidArc/innerRadius DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_radius_fmt)
+
+#.TYPE_ATTR
+EllipsoidArc/uncertaintyRadius DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
+
+#.TYPE_ATTR
+EllipsoidArc/offsetAngle DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt)
+
+#.TYPE_ATTR
+EllipsoidArc/includedAngle DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt)
+
+#.TYPE_ATTR
+EllipsoidArc/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
+
+#.FN_FTR HorizontalVelocity/bearing
+ proto_item_append_text(actx->created_item, " degrees");
+
+#.FN_FTR HorizontalVelocity/horizontalSpeed
+ proto_item_append_text(actx->created_item, " km/h");
+
+#.FN_FTR HorizontalVelocityWithUncertainty/bearing
+ proto_item_append_text(actx->created_item, " degrees");
+
+#.FN_FTR HorizontalVelocityWithUncertainty/horizontalSpeed
+ proto_item_append_text(actx->created_item, " km/h");
+
+#.FN_FTR HorizontalVelocityWithUncertainty/uncertaintySpeed
+ proto_item_append_text(actx->created_item, " km/h");
+
+#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/bearing
+ proto_item_append_text(actx->created_item, " degrees");
+
+#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/horizontalSpeed
+ proto_item_append_text(actx->created_item, " km/h");
+
+#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/verticalSpeed
+ proto_item_append_text(actx->created_item, " km/h");
+
+#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/horizontalUncertaintySpeed
+ proto_item_append_text(actx->created_item, " km/h");
+
+#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/verticalUncertaintySpeed
+ proto_item_append_text(actx->created_item, " km/h");
+
+#.TYPE_ATTR
+PolygonPoints/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt)
+
+#.TYPE_ATTR
+PolygonPoints/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt)
+
+#.FN_BODY PositioningModes/posModes VAL_PTR = &posModes_tvb LEN_PTR = &len
+ tvbuff_t *posModes_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(posModes_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_posModes_standalone, posModes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_posModes_ue_based, posModes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_posModes_ue_assisted, posModes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY PeriodicalReportingCriteria/reportingInterval VAL_PTR=&idx
+ guint32 idx;
+ const gchar *interval[10] = {"", ": 1 s", ": 2 s", ": 4 s", ": 8 s", ": 10 s",
+ ": 16 s", ": 20 s", ": 32 s", ": 64 s"};
+
+%(DEFAULT_BODY)s
+
+#.FN_FTR PeriodicalReportingCriteria/reportingInterval
+ if (idx < 10) {
+ proto_item_append_text(actx->created_item, "%s", interval[idx]);
+ }
+
+#.FN_BODY ReportingDuration VAL_PTR = &duration
+ guint32 duration;
+
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+ if (duration == 0) {
+ proto_item_append_text(actx->created_item, " (infinite)");
+ }
+
+#.TYPE_ATTR
+HorizontalAccuracy/accuracy DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
+
+#.TYPE_ATTR
+HorizontalAccuracy/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
+
+#.TYPE_ATTR
+VerticalAccuracy/accuracy DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
+
+#.TYPE_ATTR
+VerticalAccuracy/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
+
+#.FN_FTR ResponseTime/time
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR ResponseTime/eag_1/responseTimeEarlyFix-r12
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY LocationSource-r13 VAL_PTR = &locSource_tvb LEN_PTR = &len
+ tvbuff_t *locSource_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(locSource_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_a_gnss, locSource_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_wlan, locSource_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_bt, locSource_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 4) {
+ proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_tbs, locSource_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 5) {
+ proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_sensor, locSource_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.TYPE_ATTR
+OTDOA-NeighbourCellInfoElement/expectedRSTD DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_expectedRSTD_fmt)
+
+#.TYPE_ATTR
+OTDOA-NeighbourCellInfoElement/expectedRSTD-Uncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_expectedRSTD_Uncertainty_fmt)
+
+#.TYPE_ATTR
+NeighbourMeasurementElement/rstd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rstd_fmt)
+
+#.FN_BODY OTDOA-MeasQuality/error-Resolution VAL_PTR = &error_Resolution_tvb HF_INDEX=-1
+ tvbuff_t *error_Resolution_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR OTDOA-MeasQuality/error-Resolution
+ if (error_Resolution_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, error_Resolution_tvb, 0, 1, tvb_get_bits8(error_Resolution_tvb, 0, 2));
+ }
+
+#.TYPE_ATTR
+OTDOA-MeasQuality/error-Resolution TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_error_Resolution_vals)
+
+#.FN_BODY OTDOA-MeasQuality/error-Value VAL_PTR = &error_Value_tvb HF_INDEX=-1
+ tvbuff_t *error_Value_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR OTDOA-MeasQuality/error-Value
+ if (error_Value_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, error_Value_tvb, 0, 1, tvb_get_bits8(error_Value_tvb, 0, 5));
+ }
+
+#.TYPE_ATTR
+OTDOA-MeasQuality/error-Value TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_error_Value_vals_ext
+
+#.FN_BODY OTDOA-MeasQuality/error-NumSamples VAL_PTR = &error_NumSamples_tvb HF_INDEX=-1
+ tvbuff_t *error_NumSamples_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR OTDOA-MeasQuality/error-NumSamples
+ if (error_NumSamples_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, error_NumSamples_tvb, 0, 1, tvb_get_bits8(error_NumSamples_tvb, 0, 3));
+ }
+
+#.TYPE_ATTR
+OTDOA-MeasQuality/error-NumSamples TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_error_NumSamples_vals)
+
+#.FN_BODY OTDOA-ProvideCapabilities/otdoa-Mode VAL_PTR = &otdoa_Mode_tvb LEN_PTR = &len
+ tvbuff_t *otdoa_Mode_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(otdoa_Mode_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_otdoa_Mode_ue_assisted, otdoa_Mode_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.TYPE_ATTR
+GNSS-ReferenceTime/referenceTimeUnc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_referenceTimeUnc_fmt)
+
+#.TYPE_ATTR
+GNSS-ReferenceTimeForOneCell/referenceTimeUnc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_referenceTimeUnc_fmt)
+
+#.FN_BODY GNSS-SystemTime/notificationOfLeapSecond VAL_PTR = &notificationOfLeapSecond_tvb HF_INDEX=-1
+ tvbuff_t *notificationOfLeapSecond_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR GNSS-SystemTime/notificationOfLeapSecond
+ if (notificationOfLeapSecond_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, notificationOfLeapSecond_tvb, 0, 1, tvb_get_bits8(notificationOfLeapSecond_tvb, 0, 2));
+ }
+
+#.TYPE_ATTR
+GNSS-SystemTime/notificationOfLeapSecond TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_kp_vals)
+
+#.TYPE_ATTR
+NetworkTime/fractionalSecondsFromFrameStructureStart DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_fractionalSecondsFromFrameStructureStart_fmt)
+
+#.TYPE_ATTR
+NetworkTime/frameDrift DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_frameDrift_fmt)
+
+#.FN_BODY KlobucharModelParameter/dataID VAL_PTR = &dataID_tvb HF_INDEX=-1
+ tvbuff_t *dataID_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR KlobucharModelParameter/dataID
+ if (dataID_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, dataID_tvb, 0, 1, tvb_get_bits8(dataID_tvb, 0, 2));
+ }
+
+#.TYPE_ATTR
+KlobucharModelParameter/dataID TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_dataID_vals)
+
+#.TYPE_ATTR
+KlobucharModelParameter/alfa0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_alpha0_fmt)
+
+#.TYPE_ATTR
+KlobucharModelParameter/alfa1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_alpha1_fmt)
+
+#.TYPE_ATTR
+KlobucharModelParameter/alfa2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_alpha2_3_fmt)
+
+#.TYPE_ATTR
+KlobucharModelParameter/alfa3 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_alpha2_3_fmt)
+
+#.TYPE_ATTR
+KlobucharModelParameter/beta0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_beta0_fmt)
+
+#.TYPE_ATTR
+KlobucharModelParameter/beta1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_beta1_fmt)
+
+#.TYPE_ATTR
+KlobucharModelParameter/beta2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_beta2_3_fmt)
+
+#.TYPE_ATTR
+KlobucharModelParameter/beta3 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_beta2_3_fmt)
+
+#.TYPE_ATTR
+NeQuickModelParameter/ai0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_ai0_fmt)
+
+#.TYPE_ATTR
+NeQuickModelParameter/ai1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_ai1_fmt)
+
+#.TYPE_ATTR
+NeQuickModelParameter/ai2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_ai2_fmt)
+
+#.TYPE_ATTR
+GNSS-EarthOrientationParameters/teop DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_teop_fmt)
+
+#.TYPE_ATTR
+GNSS-EarthOrientationParameters/pmX DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pmX_Y_fmt)
+
+#.TYPE_ATTR
+GNSS-EarthOrientationParameters/pmXdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pmX_Ydot_fmt)
+
+#.TYPE_ATTR
+GNSS-EarthOrientationParameters/pmY DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pmX_Y_fmt)
+
+#.TYPE_ATTR
+GNSS-EarthOrientationParameters/pmYdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pmX_Ydot_fmt)
+
+#.TYPE_ATTR
+GNSS-EarthOrientationParameters/deltaUT1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_deltaUT1_fmt)
+
+#.TYPE_ATTR
+GNSS-EarthOrientationParameters/deltaUT1dot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_deltaUT1dot_fmt)
+
+#.TYPE_ATTR
+GNSS-TimeModelElement/gnss-TimeModelRefTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_TimeModelRefTime_fmt)
+
+#.TYPE_ATTR
+GNSS-TimeModelElement/tA0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA0_fmt)
+
+#.TYPE_ATTR
+GNSS-TimeModelElement/tA1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA1_fmt)
+
+#.TYPE_ATTR
+GNSS-TimeModelElement/tA2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA2_fmt)
+
+#.TYPE_ATTR
+GNSS-TimeModelElement/gnss-TO-ID STRINGS=VALS(lpp_gnss_TO_ID_vals)
+
+#.FN_FTR GNSS-TimeModelElement/deltaT
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR GNSS-DifferentialCorrections/dgnss-RefTime
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+DGNSS-SgnTypeElement/gnss-StatusHealth STRINGS=VALS(lpp_gnss_StatusHealth_vals)
+
+#.TYPE_ATTR
+DGNSS-CorrectionsElement/udre STRINGS=VALS(lpp_udre_vals)
+
+#.TYPE_ATTR
+DGNSS-CorrectionsElement/pseudoRangeCor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pseudoRangeCor_fmt)
+
+#.TYPE_ATTR
+DGNSS-CorrectionsElement/rangeRateCor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rangeRateCor_fmt)
+
+#.TYPE_ATTR
+DGNSS-CorrectionsElement/udreGrowthRate STRINGS=VALS(lpp_udreGrowthRate_vals)
+
+#.TYPE_ATTR
+DGNSS-CorrectionsElement/udreValidityTime STRINGS=VALS(lpp_udreValidityTime_vals)
+
+#.FN_BODY GNSS-NavModelSatelliteElement/eag_1/svHealthExt-v1240 VAL_PTR = &svHealthExt_tvb
+ tvbuff_t *svHealthExt_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+
+#.FN_FTR GNSS-NavModelSatelliteElement/eag_1/svHealthExt-v1240
+ if (svHealthExt_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_svHealthExt_v1240);
+ proto_tree_add_bits_item(subtree, hf_lpp_svHealthExt_v1240_e5bhs, svHealthExt_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lpp_svHealthExt_v1240_e1_bhs, svHealthExt_tvb, 2, 2, ENC_BIG_ENDIAN);
+ }
+
+#.TYPE_ATTR
+StandardClockModelElement/stanClockToc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockToc_fmt)
+
+#.TYPE_ATTR
+StandardClockModelElement/stanClockAF2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockAF2_fmt)
+
+#.TYPE_ATTR
+StandardClockModelElement/stanClockAF1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockAF1_fmt)
+
+#.TYPE_ATTR
+StandardClockModelElement/stanClockAF0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockAF0_fmt)
+
+#.TYPE_ATTR
+StandardClockModelElement/stanClockTgd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockTgd_fmt)
+
+#.TYPE_ATTR
+StandardClockModelElement/sisa DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sisa_fmt)
+
+#.TYPE_ATTR
+StandardClockModelElement/stanModelID STRINGS=VALS(lpp_stanModelID_vals)
+
+#.TYPE_ATTR
+NAV-ClockModel/navToc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navToc_fmt)
+
+#.TYPE_ATTR
+NAV-ClockModel/navaf2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navaf2_fmt)
+
+#.TYPE_ATTR
+NAV-ClockModel/navaf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navaf1_fmt)
+
+#.TYPE_ATTR
+NAV-ClockModel/navaf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navaf0_navTgd_fmt)
+
+#.TYPE_ATTR
+NAV-ClockModel/navTgd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navaf0_navTgd_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavToc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavToc_cnavTop_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavTop DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavToc_cnavTop_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavAf2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavAf2_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavAf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavAf1_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavAf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavTgd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavISCl1cp DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavISCl1cd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavISCl1ca DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavISCl2c DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavISCl5i5 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt)
+
+#.TYPE_ATTR
+CNAV-ClockModel/cnavISCl5q5 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt)
+
+#.TYPE_ATTR
+GLONASS-ClockModel/gloTau DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloTau_gloDeltaTau_fmt)
+
+#.TYPE_ATTR
+GLONASS-ClockModel/gloGamma DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloGamma_fmt)
+
+#.TYPE_ATTR
+GLONASS-ClockModel/gloDeltaTau DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloTau_gloDeltaTau_fmt)
+
+#.TYPE_ATTR
+SBAS-ClockModel/sbasTo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasTo_fmt)
+
+#.TYPE_ATTR
+SBAS-ClockModel/sbasAgfo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAgfo_fmt)
+
+#.TYPE_ATTR
+SBAS-ClockModel/sbasAgf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAgf1_fmt)
+
+#.TYPE_ATTR
+BDS-ClockModel-r12/bdsAODC-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAODC_AODE_r12_fmt)
+
+#.TYPE_ATTR
+BDS-ClockModel-r12/bdsToc-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsToc_Toe_r12_fmt)
+
+#.TYPE_ATTR
+BDS-ClockModel-r12/bdsA0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsA0_r12_fmt)
+
+#.TYPE_ATTR
+BDS-ClockModel-r12/bdsA1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsA1_r12_fmt)
+
+#.TYPE_ATTR
+BDS-ClockModel-r12/bdsA2-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsA2_r12_fmt)
+
+#.TYPE_ATTR
+BDS-ClockModel-r12/bdsTgd1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsTgd1_r12_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerToe DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerToe_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerW DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerDeltaN DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerM0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerOmegaDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerE_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerIDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerAPowerHalf DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerAPowerHalf_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerI0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerOmega0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerCrs DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCrs_Crc_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerCis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCx_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerCus DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCx_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerCrc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCrs_Crc_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerCic DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCx_fmt)
+
+#.TYPE_ATTR
+NavModelKeplerianSet/keplerCuc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCx_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navToe DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navToe_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navOmega DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navDeltaN DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navM0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navOmegaADot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navE_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navIDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navAPowerHalf DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAPowerHalf_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navI0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navOmegaA0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navCrs DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCrs_Crc_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navCis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCx_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navCus DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCx_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navCrc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCrs_Crc_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navCic DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCx_fmt)
+
+#.TYPE_ATTR
+NavModelNAV-KeplerianSet/navCuc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCx_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavTop DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavToc_cnavTop_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavDeltaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaA_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavAdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavAdot_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavDeltaNo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaNo_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavDeltaNoDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaNoDot_fmt)
+
+#.FN_BODY NavModelCNAV-KeplerianSet/cnavMo VAL_PTR=&cnavMo
+ gint64 cnavMo;
+ int curr_offset = offset;
+%(DEFAULT_BODY)s
+
+#.FN_FTR NavModelCNAV-KeplerianSet/cnavMo
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
+ cnavMo, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
+ (double)cnavMo*pow(2, -32), cnavMo);
+
+#.FN_BODY NavModelCNAV-KeplerianSet/cnavE VAL_PTR=&cnavE
+ guint64 cnavE;
+ int curr_offset = offset;
+%(DEFAULT_BODY)s
+
+#.FN_FTR NavModelCNAV-KeplerianSet/cnavE
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ actx->created_item = proto_tree_add_uint64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
+ cnavE, "%g (%"G_GINT64_MODIFIER"u)",
+ (double)cnavE*pow(2, -34), cnavE);
+
+#.FN_BODY NavModelCNAV-KeplerianSet/cnavOmega VAL_PTR=&cnavOmega
+ gint64 cnavOmega;
+ int curr_offset = offset;
+%(DEFAULT_BODY)s
+
+#.FN_FTR NavModelCNAV-KeplerianSet/cnavOmega
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
+ cnavOmega, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
+ (double)cnavOmega*pow(2, -32), cnavOmega);
+
+#.FN_BODY NavModelCNAV-KeplerianSet/cnavOMEGA0 VAL_PTR=&cnavOMEGA0
+ gint64 cnavOMEGA0;
+ int curr_offset = offset;
+%(DEFAULT_BODY)s
+
+#.FN_FTR NavModelCNAV-KeplerianSet/cnavOMEGA0
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
+ cnavOMEGA0, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
+ (double)cnavOMEGA0*pow(2, -32), cnavOMEGA0);
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavDeltaOmegaDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaOmegaDot_IoDot_fmt)
+
+#.FN_BODY NavModelCNAV-KeplerianSet/cnavIo VAL_PTR=&cnavIo
+ gint64 cnavIo;
+ int curr_offset = offset;
+%(DEFAULT_BODY)s
+
+#.FN_FTR NavModelCNAV-KeplerianSet/cnavIo
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
+ cnavIo, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
+ (double)cnavIo*pow(2, -32), cnavIo);
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavIoDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaOmegaDot_IoDot_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavCis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavCic DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavCrs DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCrs_Crc_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavCrc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCrs_Crc_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavCus DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt)
+
+#.TYPE_ATTR
+NavModelCNAV-KeplerianSet/cnavCuc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt)
+
+#.FN_FTR NavModel-GLONASS-ECEF/gloEn
+ proto_item_append_text(actx->created_item, " days");
+
+#.FN_BODY NavModel-GLONASS-ECEF/gloP1 VAL_PTR = &gloP1_tvb HF_INDEX=-1
+ tvbuff_t *gloP1_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR NavModel-GLONASS-ECEF/gloP1
+ if (gloP1_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, gloP1_tvb, 0, 1, tvb_get_bits8(gloP1_tvb, 0, 2));
+ proto_item_append_text(actx->created_item, " mn");
+ }
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloX DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloX_Y_Z_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloXdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloXdotdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloY DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloX_Y_Z_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloYdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloYdotdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloZ DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloX_Y_Z_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloZdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloZdotdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt)
+
+#.TYPE_ATTR
+NavModel-GLONASS-ECEF/gloP1 TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasTo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasTo_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasXg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXg_Yg_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasYg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXg_Yg_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasZg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasZg_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasXgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXgDot_YgDot_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasYgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXgDot_YgDot_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasZgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasZgDot_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasXgDotDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXgDotDot_YgDotDot_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasYgDotDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXgDotDot_YgDotDot_fmt)
+
+#.TYPE_ATTR
+NavModel-SBAS-ECEF/sbasZgDotDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasZgDotDot_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsAODE-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAODC_AODE_r12_fmt)
+
+#.FN_FTR NavModel-BDS-KeplerianSet-r12/bdsURAI-r12
+ proto_item_append_text(actx->created_item, " m");
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsToe-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsToc_Toe_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsAPowerHalf-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAPowerHalf_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsE-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsE_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsW-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsDeltaN-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsM0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsOmega0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsOmegaDot-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsI0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsIDot-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsCuc-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsCus-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsCrc-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCrc_Crs_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsCrs-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCrc_Crs_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsCic-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt)
+
+#.TYPE_ATTR
+NavModel-BDS-KeplerianSet-r12/bdsCis-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt)
+
+#.FN_FTR GNSS-DataBitAssistance/gnss-TOD
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR GNSS-DataBitAssistance/gnss-TODfrac
+ proto_item_append_text(actx->created_item, " ms");
+
+#.FN_FTR GNSS-AcquisitionAssistance/confidence-r10
+ proto_item_append_text(actx->created_item, " %%");
+
+#.TYPE_ATTR
+GNSS-AcquisitionAssistElement/doppler0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_doppler0_fmt)
+
+#.TYPE_ATTR
+GNSS-AcquisitionAssistElement/doppler1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_doppler1_fmt)
+
+#.TYPE_ATTR
+GNSS-AcquisitionAssistElement/dopplerUncertainty STRINGS=VALS(lpp_dopplerUncertainty_vals)
+
+#.TYPE_ATTR
+GNSS-AcquisitionAssistElement/codePhase DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhase_fmt)
+
+#.FN_FTR GNSS-AcquisitionAssistElement/intCodePhase
+ proto_item_append_text(actx->created_item, " ms");
+
+#.TYPE_ATTR
+GNSS-AcquisitionAssistElement/codePhaseSearchWindow DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_codePhaseSearchWindow_vals_ext
+
+#.TYPE_ATTR
+GNSS-AcquisitionAssistElement/azimuth DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_azimuth_elevation_fmt)
+
+#.TYPE_ATTR
+GNSS-AcquisitionAssistElement/elevation DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_azimuth_elevation_fmt)
+
+#.FN_BODY GNSS-Almanac/toa VAL_PTR = &toa
+ guint32 toa, val;
+ int len, old_offset = offset;
+ T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data);
+%(DEFAULT_BODY)s
+
+#.FN_FTR GNSS-Almanac/toa
+ len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1;
+ val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa : 4096*toa;
+ actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa, tvb, old_offset, len,
+ toa, "%u s (%u)", val, toa);
+
+#.FN_BODY GNSS-Almanac/eag_1/toa-ext-v1240 VAL_PTR = &toa_ext
+ guint32 toa_ext, val;
+ int len, old_offset = offset;
+ T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data);
+%(DEFAULT_BODY)s
+
+#.FN_FTR GNSS-Almanac/eag_1/toa-ext-v1240
+ len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1;
+ val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa_ext : 4096*toa_ext;
+ actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa_ext_v1240, tvb, old_offset, len,
+ toa_ext, "%u s (%u)", val, toa_ext);
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacE_fmt)
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacDeltaI DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacDeltaI_fmt)
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacOmegaDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacOmegaDot_fmt)
+
+#.FN_BODY AlmanacKeplerianSet/kepSV-StatusINAV VAL_PTR = &statusINAV_tvb
+ tvbuff_t *statusINAV_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+
+#.FN_FTR AlmanacKeplerianSet/kepSV-StatusINAV
+ if (statusINAV_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusINAV);
+ proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusINAV_e5bhs, statusINAV_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusINAV_e1_bhs, statusINAV_tvb, 2, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY AlmanacKeplerianSet/kepSV-StatusFNAV VAL_PTR = &statusFNAV_tvb
+ tvbuff_t *statusFNAV_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+
+#.FN_FTR AlmanacKeplerianSet/kepSV-StatusFNAV
+ if (statusFNAV_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusFNAV);
+ proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusFNAV_e5ahs, statusFNAV_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacAPowerHalf DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacAPowerHalf_fmt)
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacOmega0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt)
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacW DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt)
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacM0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt)
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacAF0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacAF0_fmt)
+
+#.TYPE_ATTR
+AlmanacKeplerianSet/kepAlmanacAF1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacAF1_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmE_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmDeltaI DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmDeltaI_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmOMEGADOT DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmOMEGADOT_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmSqrtA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmSqrtA_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmOMEGAo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmOmega DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmMo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmaf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmaf0_fmt)
+
+#.TYPE_ATTR
+AlmanacNAV-KeplerianSet/navAlmaf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmaf1_fmt)
+
+#.TYPE_ATTR
+AlmanacReducedKeplerianSet/redAlmDeltaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_redAlmDeltaA_fmt)
+
+#.TYPE_ATTR
+AlmanacReducedKeplerianSet/redAlmOmega0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_redAlmOmega0_Phi0_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmE_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmDeltaI DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmDeltaI_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmOmegaDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmOmegaDot_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmSqrtA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmSqrtA_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmOmega0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmOmega DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmMo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmaf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmaf0_fmt)
+
+#.TYPE_ATTR
+AlmanacMidiAlmanacSet/midiAlmaf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmaf1_fmt)
+
+#.FN_FTR AlmanacGLONASS-AlmanacSet/gloAlm-NA
+ proto_item_append_text(actx->created_item, " days");
+
+#.TYPE_ATTR
+AlmanacGLONASS-AlmanacSet/gloAlmLambdaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmLambdaA_DeltaIa_fmt)
+
+#.TYPE_ATTR
+AlmanacGLONASS-AlmanacSet/gloAlmtlambdaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmtlambdaA_fmt)
+
+#.TYPE_ATTR
+AlmanacGLONASS-AlmanacSet/gloAlmDeltaIa DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmLambdaA_DeltaIa_fmt)
+
+#.TYPE_ATTR
+AlmanacGLONASS-AlmanacSet/gloAlmDeltaTA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmDeltaTA_fmt)
+
+#.TYPE_ATTR
+AlmanacGLONASS-AlmanacSet/gloAlmDeltaTdotA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmDeltaTdotA_fmt)
+
+#.TYPE_ATTR
+AlmanacGLONASS-AlmanacSet/gloAlmEpsilonA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmEpsilonA_fmt)
+
+#.TYPE_ATTR
+AlmanacGLONASS-AlmanacSet/gloAlmOmegaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmOmegaA_fmt)
+
+#.TYPE_ATTR
+AlmanacGLONASS-AlmanacSet/gloAlmTauA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmTauA_fmt)
+
+#.TYPE_ATTR
+AlmanacECEF-SBAS-AlmanacSet/sbasAlmXg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmXg_Yg_fmt)
+
+#.TYPE_ATTR
+AlmanacECEF-SBAS-AlmanacSet/sbasAlmYg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmXg_Yg_fmt)
+
+#.TYPE_ATTR
+AlmanacECEF-SBAS-AlmanacSet/sbasAlmZg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmZg_fmt)
+
+#.TYPE_ATTR
+AlmanacECEF-SBAS-AlmanacSet/sbasAlmXgdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmXgdot_YgDot_fmt)
+
+#.TYPE_ATTR
+AlmanacECEF-SBAS-AlmanacSet/sbasAlmYgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmXgdot_YgDot_fmt)
+
+#.TYPE_ATTR
+AlmanacECEF-SBAS-AlmanacSet/sbasAlmZgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmZgDot_fmt)
+
+#.TYPE_ATTR
+AlmanacECEF-SBAS-AlmanacSet/sbasAlmTo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmTo_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmToa-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmToa_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmSqrtA-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmSqrtA_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmE-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmE_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmW-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmM0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmOmega0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmOmegaDot-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmOmegaDot_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmDeltaI-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmDeltaI_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmA0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmA0_r12_fmt)
+
+#.TYPE_ATTR
+AlmanacBDS-AlmanacSet-r12/bdsAlmA1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmA1_r12_fmt)
+
+#.FN_BODY AlmanacBDS-AlmanacSet-r12/bdsSvHealth-r12 VAL_PTR = &bdsSvHealth_tvb
+ tvbuff_t *bdsSvHealth_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+
+#.FN_FTR AlmanacBDS-AlmanacSet-r12/bdsSvHealth-r12
+ if (bdsSvHealth_tvb) {
+ guint16 bits;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bdsSvHealth_r12);
+ bits = tvb_get_bits16(bdsSvHealth_tvb, 0, 9,ENC_BIG_ENDIAN);
+ if (bits == 0x1ff) {
+ proto_tree_add_boolean_bits_format_value(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, 1,
+ "Satellite is in failure or permanently shut off (1)");
+ } else if (bits == 0x100) {
+ proto_tree_add_boolean_bits_format_value(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, 1,
+ "Satellite clock is unavailable (1)");
+ } else {
+ proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_b1i, bdsSvHealth_tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_b2i, bdsSvHealth_tvb, 2, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_nav, bdsSvHealth_tvb, 7, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.TYPE_ATTR
+UTC-ModelSet1/gnss-Utc-A1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A1_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet1/gnss-Utc-A0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet1/gnss-Utc-Tot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_Tot_fmt)
+
+#.FN_FTR UTC-ModelSet1/gnss-Utc-WNt
+ proto_item_append_text(actx->created_item, " weeks");
+
+#.FN_FTR UTC-ModelSet1/gnss-Utc-DeltaTls
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR UTC-ModelSet1/gnss-Utc-WNlsf
+ proto_item_append_text(actx->created_item, " weeks");
+
+#.FN_FTR UTC-ModelSet1/gnss-Utc-DN
+ proto_item_append_text(actx->created_item, " days");
+
+#.FN_FTR UTC-ModelSet1/gnss-Utc-DeltaTlsf
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+UTC-ModelSet2/utcA0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA0_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet2/utcA1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA1_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet2/utcA2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA2_fmt)
+
+#.FN_FTR UTC-ModelSet2/utcDeltaTls
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+UTC-ModelSet2/utcTot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_TimeModelRefTime_fmt)
+
+#.FN_FTR UTC-ModelSet2/utcWNot
+ proto_item_append_text(actx->created_item, " weeks");
+
+#.FN_FTR UTC-ModelSet2/utcWNlsf
+ proto_item_append_text(actx->created_item, " weeks");
+
+#.FN_FTR UTC-ModelSet2/utcDN
+ proto_item_append_text(actx->created_item, " days");
+
+#.FN_FTR UTC-ModelSet2/utcDeltaTlsf
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR UTC-ModelSet3/nA
+ proto_item_append_text(actx->created_item, " days");
+
+#.TYPE_ATTR
+UTC-ModelSet3/tauC DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tauC_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet3/b1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_b1_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet3/b2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_b2_fmt)
+
+#.FN_BODY UTC-ModelSet3/kp VAL_PTR = &kp_tvb HF_INDEX=-1
+ tvbuff_t *kp_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR UTC-ModelSet3/kp
+ if (kp_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, kp_tvb, 0, 1, tvb_get_bits8(kp_tvb, 0, 2));
+ }
+
+#.TYPE_ATTR
+UTC-ModelSet3/kp TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_kp_vals)
+
+#.TYPE_ATTR
+UTC-ModelSet4/utcA1wnt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A1_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet4/utcA0wnt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet4/utcTot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_Tot_fmt)
+
+#.FN_FTR UTC-ModelSet4/utcWNt
+ proto_item_append_text(actx->created_item, " weeks");
+
+#.FN_FTR UTC-ModelSet4/utcDeltaTls
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR UTC-ModelSet4/utcWNlsf
+ proto_item_append_text(actx->created_item, " weeks");
+
+#.FN_FTR UTC-ModelSet4/utcDN
+ proto_item_append_text(actx->created_item, " days");
+
+#.FN_FTR UTC-ModelSet4/utcDeltaTlsf
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+UTC-ModelSet4/utcStandardID TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_utcStandardID_vals)
+
+#.TYPE_ATTR
+UTC-ModelSet5-r12/utcA0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_fmt)
+
+#.TYPE_ATTR
+UTC-ModelSet5-r12/utcA1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A1_fmt)
+
+#.FN_FTR UTC-ModelSet5-r12/utcDeltaTls-r12
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR UTC-ModelSet5-r12/utcWNlsf-r12
+ proto_item_append_text(actx->created_item, " weeks");
+
+#.FN_FTR UTC-ModelSet5-r12/utcDN-r12
+ proto_item_append_text(actx->created_item, " days");
+
+#.FN_FTR UTC-ModelSet5-r12/utcDeltaTlsf-r12
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR BDS-DifferentialCorrections-r12/dbds-RefTime-r12
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+DBDS-CorrectionElement-r12/bds-UDREI-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_bds_UDREI_vals_ext
+
+#.TYPE_ATTR
+DBDS-CorrectionElement-r12/bds-RURAI-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_bds_RURAI_vals_ext
+
+#.TYPE_ATTR
+DBDS-CorrectionElement-r12/bds-ECC-DeltaT-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bds_ECC_DeltaT_r12_fmt)
+
+#.FN_FTR BDS-GridModelParameter-r12/bds-RefTime-r12
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+GridIonElement-r12/dt-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bds_GridIonElement_dt_r12_fmt)
+
+#.TYPE_ATTR
+GridIonElement-r12/givei-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_bds_givei_vals_ext
+
+#.FN_FTR StoredNavListInfo/gnss-WeekOrDay
+ proto_item_append_text(actx->created_item, " (days for glonass, weeks otherwise)");
+
+#.FN_FTR StoredNavListInfo/gnss-Toe
+ proto_item_append_text(actx->created_item, " (units of 15 mns for glonass, hours otherwise)");
+
+#.FN_FTR StoredNavListInfo/t-toeLimit
+ proto_item_append_text(actx->created_item, " (units of 30 mns for glonass, hours otherwise)");
+
+#.FN_FTR GNSS-DataBitAssistanceReq/gnss-TOD-Req
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_FTR GNSS-DataBitAssistanceReq/gnss-TOD-FracReq
+ proto_item_append_text(actx->created_item, " ms");
+
+#.TYPE_ATTR
+GNSS-DataBitAssistanceReq/dataBitInterval TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_dataBitInterval_vals_ext
+
+#.FN_FTR MeasurementReferenceTime/gnss-TOD-msec
+ proto_item_append_text(actx->created_item, " ms");
+
+#.TYPE_ATTR
+MeasurementReferenceTime/gnss-TOD-frac DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_fractionalSecondsFromFrameStructureStart_fmt)
+
+#.TYPE_ATTR
+MeasurementReferenceTime/gnss-TOD-unc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_referenceTimeUnc_fmt)
+
+#.FN_FTR MeasurementReferenceTime/networkTime/gSM/deltaGNSS-TOD
+ proto_item_append_text(actx->created_item, " ms");
+
+#.FN_FTR GNSS-SgnMeasElement/gnss-CodePhaseAmbiguity
+ proto_item_append_text(actx->created_item, " ms");
+
+#.FN_FTR GNSS-SatMeasElement/cNo
+ proto_item_append_text(actx->created_item, " dB-Hz");
+
+#.TYPE_ATTR
+GNSS-SatMeasElement/carrierQualityInd TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_carrierQualityInd_vals)
+
+#.TYPE_ATTR
+GNSS-SatMeasElement/codePhase DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_GNSS_SatMeas_codePhase_fmt)
+
+#.FN_FTR GNSS-SatMeasElement/integerCodePhase
+ proto_item_append_text(actx->created_item, " ms");
+
+#.TYPE_ATTR
+GNSS-SatMeasElement/codePhaseRMSError DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhaseRMSError_fmt)
+
+#.TYPE_ATTR
+GNSS-SatMeasElement/doppler DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_doppler_fmt)
+
+#.TYPE_ATTR
+GNSS-SatMeasElement/adr DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_adr_fmt)
+
+#.FN_BODY GNSS-IonosphericModelSupport/ionoModel VAL_PTR = &ionoModel_tvb LEN_PTR = &len
+ tvbuff_t *ionoModel_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(ionoModel_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_ionoModel_klobuchar, ionoModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_ionoModel_neQuick, ionoModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY GNSS-NavigationModelSupport/clockModel VAL_PTR = &clockModel_tvb LEN_PTR = &len
+ tvbuff_t *clockModel_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(clockModel_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_1, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_2, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_3, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 4) {
+ proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_4, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 5) {
+ proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_5, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 6) {
+ proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_6, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY GNSS-NavigationModelSupport/orbitModel VAL_PTR = &orbitModel_tvb LEN_PTR = &len
+ tvbuff_t *orbitModel_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(orbitModel_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_1, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_2, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_3, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 4) {
+ proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_4, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 5) {
+ proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_5, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 6) {
+ proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_6, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY GNSS-AlmanacSupport/almanacModel VAL_PTR = &almanacModel_tvb LEN_PTR = &len
+ tvbuff_t *almanacModel_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(almanacModel_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_1, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_2, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_3, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 4) {
+ proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_4, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 5) {
+ proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_5, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 6) {
+ proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_6, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 7) {
+ proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_7, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY GNSS-UTC-ModelSupport/utc-Model VAL_PTR = &utc_Model_tvb LEN_PTR = &len
+ tvbuff_t *utc_Model_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(utc_Model_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_1, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_2, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_3, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 4) {
+ proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_4, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 5) {
+ proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_5, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY GNSS-ID/gnss-id VAL_PTR = &gnss_id
+ guint32 gnss_id;
+%(DEFAULT_BODY)s
+ actx->private_data = GUINT_TO_POINTER(gnss_id);
+
+#.FN_BODY GNSS-ID-Bitmap/gnss-ids VAL_PTR = &gnss_ids_tvb LEN_PTR = &len
+ tvbuff_t *gnss_ids_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(gnss_ids_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_gps, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_sbas, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_qzss, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 4) {
+ proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_galileo, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 5) {
+ proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_glonass, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 6) {
+ proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_bds, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY SBAS-IDs/sbas-IDs VAL_PTR = &sbas_IDs_tvb LEN_PTR = &len
+ tvbuff_t *sbas_IDs_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(sbas_IDs_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_sbas_IDs_waas, sbas_IDs_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_sbas_IDs_egnos, sbas_IDs_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_sbas_IDs_msas, sbas_IDs_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 4) {
+ proto_tree_add_item(subtree, hf_lpp_T_sbas_IDs_gagan, sbas_IDs_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.TYPE_ATTR
+MeasuredResultsElement/rsrp-Result DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rsrp_Result_fmt)
+
+#.TYPE_ATTR
+MeasuredResultsElement/rsrq-Result DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rsrq_Result_fmt)
+
+#.TYPE_ATTR
+MeasuredResultsElement/ue-RxTxTimeDiff DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_ue_RxTxTimeDiff_fmt)
+
+#.FN_BODY ECID-RequestLocationInformation/requestedMeasurements VAL_PTR = &requestedMeasurements_tvb LEN_PTR = &len
+ tvbuff_t *requestedMeasurements_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(requestedMeasurements_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_rsrpReq, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_rsrqReq, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_ueRxTxReq, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY ECID-ProvideCapabilities/ecid-MeasSupported VAL_PTR = &ecid_MeasSupported_tvb LEN_PTR = &len
+ tvbuff_t *ecid_MeasSupported_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(ecid_MeasSupported_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_ecid_MeasSupported_rsrpSup, ecid_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_ecid_MeasSupported_rsrqSup, ecid_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_ecid_MeasSupported_ueRxTxSup, ecid_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.TYPE_ATTR
+MBS-BeaconMeasElement-r13/codePhase-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_mbs_beaconMeasElt_codePhase_fmt)
+
+#.TYPE_ATTR
+MBS-BeaconMeasElement-r13/codePhaseRMSError-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhaseRMSError_fmt)
+
+#.FN_BODY TBS-ProvideCapabilities-r13/tbs-Modes-r13 VAL_PTR = &tbs_Modes_tvb LEN_PTR = &len
+ tvbuff_t *tbs_Modes_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(tbs_Modes_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_tbs_Modes_r13_standalone, tbs_Modes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_tbs_Modes_r13_ue_assisted, tbs_Modes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_FTR Sensor-MeasurementList-r13/uncompensatedBarometricPressure-r13
+ proto_item_append_text(actx->created_item, " Pa");
+
+#.FN_BODY Sensor-ProvideCapabilities-r13/sensor-Modes-r13 VAL_PTR = &sensor_Modes_tvb LEN_PTR = &len
+ tvbuff_t *sensor_Modes_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(sensor_Modes_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_sensor_Modes_r13_standalone, sensor_Modes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_sensor_Modes_r13_ue_assisted, sensor_Modes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_FTR WLAN-MeasurementElement-r13/rssi-r13
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.TYPE_ATTR
+WLAN-AP-Identifier-r13/bssid-r13 TYPE=FT_ETHER
+
+#.TYPE_ATTR
+WLAN-AP-Identifier-r13/ssid-r13 TYPE=FT_STRING DISPLAY=STR_ASCII
+
+#.FN_BODY WLAN-AP-Identifier-r13/ssid-r13 VAL_PTR=&ssid_tvb HF_INDEX=-1
+ tvbuff_t *ssid_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA);
+
+#.FN_BODY WLAN-RequestLocationInformation-r13/requestedMeasurements-r13 VAL_PTR = &requestedMeasurements_tvb LEN_PTR = &len
+ tvbuff_t *requestedMeasurements_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(requestedMeasurements_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_r13_rssi, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_r13_rtt, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY WLAN-ProvideCapabilities-r13/wlan-Modes-r13 VAL_PTR = &wlan_Modes_tvb LEN_PTR = &len
+ tvbuff_t *wlan_Modes_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(wlan_Modes_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_wlan_Modes_r13_standalone, wlan_Modes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_wlan_Modes_r13_ue_assisted, wlan_Modes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY WLAN-ProvideCapabilities-r13/wlan-MeasSupported-r13 VAL_PTR = &wlan_MeasSupported_tvb LEN_PTR = &len
+ tvbuff_t *wlan_MeasSupported_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(wlan_MeasSupported_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_wlan_MeasSupported_r13_rssi_r13, wlan_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 2) {
+ proto_tree_add_item(subtree, hf_lpp_T_wlan_MeasSupported_r13_rtt_r13, wlan_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.TYPE_ATTR
+BT-MeasurementElement-r13/btAddr-r13 TYPE=FT_ETHER DISPLAY=BASE_NONE
+
+#.FN_BODY BT-MeasurementElement-r13/btAddr-r13 VAL_PTR=&btAddr_tvb HF_INDEX=-1
+ tvbuff_t *btAddr_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ actx->created_item = proto_tree_add_item(tree, hf_index, btAddr_tvb, 0, 6, ENC_NA);
+
+#.FN_FTR BT-MeasurementElement-r13/rssi-r13
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.FN_BODY BT-RequestLocationInformation-r13/requestedMeasurements-r13 VAL_PTR = &requestedMeasurements_tvb LEN_PTR = &len
+ tvbuff_t *requestedMeasurements_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(requestedMeasurements_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_r13_01_rssi, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
+
+#.FN_BODY BT-ProvideCapabilities-r13/bt-Modes-r13 VAL_PTR = &bt_Modes_tvb LEN_PTR = &len
+ tvbuff_t *bt_Modes_tvb = NULL;
+ int len;
+
+%(DEFAULT_BODY)s
+ if(bt_Modes_tvb){
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap);
+ if (len >= 1) {
+ proto_tree_add_item(subtree, hf_lpp_T_bt_Modes_r13_standalone, bt_Modes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ if (len >= 3) {
+ proto_tree_add_item(subtree, hf_lpp_T_bt_Modes_r13_ue_assisted, bt_Modes_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+ }
diff --git a/epan/dissectors/asn1/lpp/packet-lpp-template.c b/epan/dissectors/asn1/lpp/packet-lpp-template.c
new file mode 100644
index 0000000000..ba31d56c14
--- /dev/null
+++ b/epan/dissectors/asn1/lpp/packet-lpp-template.c
@@ -0,0 +1,1726 @@
+/* packet-lpp.c
+ * Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
+ * Copyright 2011-2016 Pascal Quantin <pascal.quantin@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref 3GPP TS 36.355 version 13.0.0 Release 13
+ * http://www.3gpp.org
+ */
+
+#include "config.h"
+
+#include "math.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+#include <epan/tfs.h>
+
+#include "packet-per.h"
+#include "packet-lpp.h"
+
+#define PNAME "LTE Positioning Protocol (LPP)"
+#define PSNAME "LPP"
+#define PFNAME "lpp"
+
+void proto_register_lpp(void);
+void proto_reg_handoff_lpp(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_lpp = -1;
+
+#include "packet-lpp-hf.c"
+static int hf_lpp_svHealthExt_v1240_e5bhs = -1;
+static int hf_lpp_svHealthExt_v1240_e1_bhs = -1;
+static int hf_lpp_kepSV_StatusINAV_e5bhs = -1;
+static int hf_lpp_kepSV_StatusINAV_e1_bhs = -1;
+static int hf_lpp_kepSV_StatusFNAV_e5ahs = -1;
+static int hf_lpp_bdsSvHealth_r12_sat_clock = -1;
+static int hf_lpp_bdsSvHealth_r12_b1i = -1;
+static int hf_lpp_bdsSvHealth_r12_b2i = -1;
+static int hf_lpp_bdsSvHealth_r12_nav = -1;
+
+static dissector_handle_t lppe_handle = NULL;
+
+static guint32 lpp_epdu_id = -1;
+
+/* Initialize the subtree pointers */
+static gint ett_lpp = -1;
+static gint ett_lpp_bitmap = -1;
+static gint ett_lpp_svHealthExt_v1240 = -1;
+static gint ett_kepSV_StatusINAV = -1;
+static gint ett_kepSV_StatusFNAV = -1;
+static gint ett_lpp_bdsSvHealth_r12 = -1;
+#include "packet-lpp-ett.c"
+
+/* Include constants */
+#include "packet-lpp-val.h"
+
+static const value_string lpp_ePDU_ID_vals[] = {
+ { 1, "OMA LPP extensions (LPPe)"},
+ { 0, NULL}
+};
+
+static void
+lpp_degreesLatitude_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)",
+ ((float)v/8388607.0)*90, v);
+}
+
+static void
+lpp_degreesLongitude_fmt(gchar *s, guint32 v)
+{
+ gint32 longitude = (gint32) v;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%d)",
+ ((float)longitude/8388608.0)*180, longitude);
+}
+
+static void
+lpp_uncertainty_fmt(gchar *s, guint32 v)
+{
+ double uncertainty = 10*(pow(1.1, (double)v)-1);
+
+ if (uncertainty < 1000) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m (%u)", uncertainty, v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f km (%u)", uncertainty/1000, v);
+ }
+}
+
+static void
+lpp_angle_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u degrees (%u)", 2*v, v);
+}
+
+static void
+lpp_confidence_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "no information (0)");
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u %%", v);
+ }
+}
+
+static void
+lpp_altitude_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u m", v);
+}
+
+static void
+lpp_uncertaintyAltitude_fmt(gchar *s, guint32 v)
+{
+ double uncertainty = 45*(pow(1.025, (double)v)-1);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m (%u)", uncertainty, v);
+}
+
+static void
+lpp_radius_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u m (%u)", 5*v, v);
+}
+
+static void
+lpp_expectedRSTD_fmt(gchar *s, guint32 v)
+{
+ gint32 rstd = 3*((gint32)v-8192);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d Ts (%u)", rstd, v);
+}
+
+static void
+lpp_expectedRSTD_Uncertainty_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u Ts (%u)", 3*v, v);
+}
+
+static void
+lpp_rstd_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSTD < -15391 Ts (0)");
+ } else if (v < 2260) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "-%u Ts <= RSTD < -%u Ts (%u)", 15391-5*(v-1), 15391-5*v, v);
+ } else if (v < 6355) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "-%u Ts <= RSTD < -%u Ts (%u)", 6356-v, 6355-v, v);
+ } else if (v == 6355) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "-1 Ts <= RSTD <= 0 Ts (6355)");
+ } else if (v < 10452) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u Ts < RSTD <= %u Ts (%u)", v-6356, v-6355, v);
+ } else if (v < 12711) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u Ts < RSTD <= %u Ts (%u)", 5*(v-1)-48159, 5*v-48159, v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "15391 Ts < RSTD (12711)");
+ }
+}
+
+static const value_string lpp_error_Resolution_vals[] = {
+ { 0, "5 meters"},
+ { 1, "10 meters"},
+ { 2, "20 meters"},
+ { 3, "30 meters"},
+ { 0, NULL}
+};
+
+static const value_string lpp_error_Value_vals[] = {
+ { 0, "0 to (R*1-1) meters"},
+ { 1, "R*1 to (R*2-1) meters"},
+ { 2, "R*2 to (R*3-1) meters"},
+ { 3, "R*3 to (R*4-1) meters"},
+ { 4, "R*4 to (R*5-1) meters"},
+ { 5, "R*5 to (R*6-1) meters"},
+ { 6, "R*6 to (R*7-1) meters"},
+ { 7, "R*7 to (R*8-1) meters"},
+ { 8, "R*8 to (R*9-1) meters"},
+ { 9, "R*9 to (R*10-1) meters"},
+ { 10, "R*10 to (R*11-1) meters"},
+ { 11, "R*11 to (R*12-1) meters"},
+ { 12, "R*12 to (R*13-1) meters"},
+ { 13, "R*13 to (R*14-1) meters"},
+ { 14, "R*14 to (R*15-1) meters"},
+ { 15, "R*15 to (R*16-1) meters"},
+ { 16, "R*16 to (R*17-1) meters"},
+ { 17, "R*17 to (R*18-1) meters"},
+ { 18, "R*18 to (R*19-1) meters"},
+ { 19, "R*19 to (R*20-1) meters"},
+ { 20, "R*20 to (R*21-1) meters"},
+ { 21, "R*21 to (R*22-1) meters"},
+ { 22, "R*22 to (R*23-1) meters"},
+ { 23, "R*23 to (R*24-1) meters"},
+ { 24, "R*24 to (R*25-1) meters"},
+ { 25, "R*25 to (R*26-1) meters"},
+ { 26, "R*26 to (R*27-1) meters"},
+ { 27, "R*27 to (R*28-1) meters"},
+ { 28, "R*28 to (R*29-1) meters"},
+ { 29, "R*29 to (R*30-1) meters"},
+ { 30, "R*30 to (R*31-1) meters"},
+ { 31, "R*31 meters or more"},
+ { 0, NULL}
+};
+static value_string_ext lpp_error_Value_vals_ext = VALUE_STRING_EXT_INIT(lpp_error_Value_vals);
+
+static const value_string lpp_error_NumSamples_vals[] = {
+ { 0, "Not the baseline metric"},
+ { 1, "5-9"},
+ { 2, "10-14"},
+ { 3, "15-24"},
+ { 4, "25-34"},
+ { 5, "35-44"},
+ { 6, "45-54"},
+ { 7, "55 or more"},
+ { 0, NULL}
+};
+
+static void
+lpp_referenceTimeUnc_fmt(gchar *s, guint32 v)
+{
+ double referenceTimeUnc = 0.5*(pow(1.14, (double)v)-1);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f us (%u)", referenceTimeUnc, v);
+}
+
+static const value_string lpp_kp_vals[] = {
+ { 0, "No UTC correction at the end of current quarter"},
+ { 1, "UTC correction by plus (+1 s) in the end of current quarter"},
+ { 3, "UTC correction by minus (-1 s) in the end of current quarter"},
+ { 0, NULL}
+};
+
+static void
+lpp_fractionalSecondsFromFrameStructureStart_fmt(gchar *s, guint32 v)
+{
+ float frac = ((float)v)/4;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f us (%u)", frac, v);
+}
+
+static void
+lpp_frameDrift_fmt(gchar *s, guint32 v)
+{
+ double drift = (double)((gint32)v)*pow(2, -30);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", drift, (gint32)v);
+}
+
+static const value_string lpp_dataID_vals[] = {
+ { 0, "Parameters are applicable worldwide"},
+ { 1, "Parameters have been generated by BDS"},
+ { 3, "Parameters have been generated by QZSS"},
+ { 0, NULL}
+};
+
+static void
+lpp_alpha0_fmt(gchar *s, guint32 v)
+{
+ double alpha = (double)((gint32)v)*pow(2, -30);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", alpha, (gint32)v);
+}
+
+static void
+lpp_alpha1_fmt(gchar *s, guint32 v)
+{
+ double alpha = (double)((gint32)v)*pow(2, -27);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/semi-circle (%d)", alpha, (gint32)v);
+}
+
+static void
+lpp_alpha2_3_fmt(gchar *s, guint32 v)
+{
+ double alpha = (double)((gint32)v)*pow(2, -24);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/semi-circle (%d)", alpha, (gint32)v);
+}
+
+static void
+lpp_beta0_fmt(gchar *s, guint32 v)
+{
+ double beta = (double)((gint32)v)*pow(2, 11);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", beta, (gint32)v);
+}
+
+static void
+lpp_beta1_fmt(gchar *s, guint32 v)
+{
+ double beta = (double)((gint32)v)*pow(2, 14);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/semi-circle (%d)", beta, (gint32)v);
+}
+
+static void
+lpp_beta2_3_fmt(gchar *s, guint32 v)
+{
+ double beta = (double)((gint32)v)*pow(2, 16);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/semi-circle (%d)", beta, (gint32)v);
+}
+
+static void
+lpp_ai0_fmt(gchar *s, guint32 v)
+{
+ double ai = (double)v*pow(2, -2);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g sfu (%u)", ai, v);
+}
+
+static void
+lpp_ai1_fmt(gchar *s, guint32 v)
+{
+ double ai = (double)v*pow(2, -8);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g sfu/degree (%u)", ai, v);
+}
+
+static void
+lpp_ai2_fmt(gchar *s, guint32 v)
+{
+ double ai = (double)v*pow(2, -15);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g sfu/degree2 (%u)", ai, v);
+}
+
+static void
+lpp_teop_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", 16*v, v);
+}
+
+static void
+lpp_pmX_Y_fmt(gchar *s, guint32 v)
+{
+ double pm = (double)((gint32)v)*pow(2, -20);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g arc-seconds (%d)", pm, (gint32)v);
+}
+
+static void
+lpp_pmX_Ydot_fmt(gchar *s, guint32 v)
+{
+ double pmDot = (double)((gint32)v)*pow(2, -21);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g arc-seconds/day (%d)", pmDot, (gint32)v);
+}
+
+static void
+lpp_deltaUT1_fmt(gchar *s, guint32 v)
+{
+ double deltaUT1 = (double)((gint32)v)*pow(2, -24);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", deltaUT1, (gint32)v);
+}
+
+static void
+lpp_deltaUT1dot_fmt(gchar *s, guint32 v)
+{
+ double deltaUT1dot = (double)((gint32)v)*pow(2, -25);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/day (%d)", deltaUT1dot, (gint32)v);
+}
+
+static void
+lpp_gnss_TimeModelRefTime_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", v*16, v);
+}
+
+static void
+lpp_tA0_fmt(gchar *s, guint32 v)
+{
+ double tA0 = (double)((gint32)v)*pow(2, -35);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", tA0, (gint32)v);
+}
+
+static void
+lpp_tA1_fmt(gchar *s, guint32 v)
+{
+ double tA1 = (double)((gint32)v)*pow(2, -51);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", tA1, (gint32)v);
+}
+
+static void
+lpp_tA2_fmt(gchar *s, guint32 v)
+{
+ double tA2 = (double)((gint32)v)*pow(2, -68);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s2 (%d)", tA2, (gint32)v);
+}
+
+static const value_string lpp_gnss_TO_ID_vals[] = {
+ { 1, "GPS"},
+ { 2, "Galileo"},
+ { 3, "QZSS"},
+ { 4, "GLONASS"},
+ { 0, NULL}
+};
+
+static const value_string lpp_gnss_StatusHealth_vals[] = {
+ { 0, "UDRE Scale Factor = 1.0"},
+ { 1, "UDRE Scale Factor = 0.75"},
+ { 2, "UDRE Scale Factor = 0.5"},
+ { 3, "UDRE Scale Factor = 0.3"},
+ { 4, "UDRE Scale Factor = 0.2"},
+ { 5, "UDRE Scale Factor = 0.1"},
+ { 6, "Reference Station Transmission Not Monitored"},
+ { 7, "Data is invalid - disregard"},
+ { 0, NULL}
+};
+
+static const value_string lpp_udre_vals[] = {
+ { 0, "UDRE <= 1.0 m"},
+ { 1, "1.0 m < UDRE <= 4.0 m"},
+ { 2, "4.0 m < UDRE <= 8.0 m"},
+ { 3, "8.0 m < UDRE"},
+ { 0, NULL}
+};
+
+static void
+lpp_pseudoRangeCor_fmt(gchar *s, guint32 v)
+{
+ double pseudoRangeCor = ((double)(gint32)v)*0.32;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m (%d)", pseudoRangeCor, (gint32)v);
+}
+
+static void
+lpp_rangeRateCor_fmt(gchar *s, guint32 v)
+{
+ double rangeRateCor = ((double)(gint32)v)*0.032;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m/s (%d)", rangeRateCor, (gint32)v);
+}
+
+static const value_string lpp_udreGrowthRate_vals[] = {
+ { 0, "1.5"},
+ { 1, "2"},
+ { 2, "4"},
+ { 3, "6"},
+ { 4, "8"},
+ { 5, "10"},
+ { 6, "12"},
+ { 7, "16"},
+ { 0, NULL}
+};
+
+static const value_string lpp_udreValidityTime_vals[] = {
+ { 0, "20 s"},
+ { 1, "40 s"},
+ { 2, "80 s"},
+ { 3, "160 s"},
+ { 4, "320 s"},
+ { 5, "640 s"},
+ { 6, "1280 s"},
+ { 7, "2560 s"},
+ { 0, NULL}
+};
+
+static const value_string lpp_signal_health_status_vals[] = {
+ { 0, "Signal OK"},
+ { 1, "Signal out of service"},
+ { 2, "Signal will be out of service"},
+ { 3, "Signal Component currently in Test"},
+ { 0, NULL}
+};
+static void
+lpp_stanClockToc_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u m/s (%u)", 60*v, v);
+}
+
+static void
+lpp_stanClockAF2_fmt(gchar *s, guint32 v)
+{
+ double stanClockAF2 = (double)((gint32)v)*pow(2, -59);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s2 (%d)", stanClockAF2, (gint32)v);
+}
+
+static void
+lpp_stanClockAF1_fmt(gchar *s, guint32 v)
+{
+ double stanClockAF1 = (double)((gint32)v)*pow(2, -46);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", stanClockAF1, (gint32)v);
+}
+
+static void
+lpp_stanClockAF0_fmt(gchar *s, guint32 v)
+{
+ double stanClockAF0 = (double)((gint32)v)*pow(2, -34);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", stanClockAF0, (gint32)v);
+}
+
+static void
+lpp_stanClockTgd_fmt(gchar *s, guint32 v)
+{
+ double stanClockTgd = (double)((gint32)v)*pow(2, -32);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", stanClockTgd, (gint32)v);
+}
+
+static void
+lpp_sisa_fmt(gchar *s, guint32 v)
+{
+ if (v < 50) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u cm (%u)", v, v);
+ } else if (v < 75) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u cm (%u)", 50+((v-50)*2), v);
+ } else if (v < 100) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u cm (%u)", 100+((v-75)*4), v);
+ } else if (v < 126) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u cm (%u)", 200+((v-100)*16), v);
+ } else if (v < 255) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "No Accuracy Prediction Available (255)");
+ }
+}
+
+static const value_string lpp_stanModelID_vals[] = {
+ { 0, "I/Nav"},
+ { 1, "F/Nav"},
+ { 0, NULL}
+};
+
+static void
+lpp_navToc_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", 16*v, v);
+}
+
+static void
+lpp_navaf2_fmt(gchar *s, guint32 v)
+{
+ double navaf2 = (double)((gint32)v)*pow(2, -55);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s2 (%d)", navaf2, (gint32)v);
+}
+
+static void
+lpp_navaf1_fmt(gchar *s, guint32 v)
+{
+ double navaf1 = (double)((gint32)v)*pow(2, -43);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", navaf1, (gint32)v);
+}
+
+static void
+lpp_navaf0_navTgd_fmt(gchar *s, guint32 v)
+{
+ double navaf0_navTgd = (double)((gint32)v)*pow(2, -31);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", navaf0_navTgd, (gint32)v);
+}
+
+static void
+lpp_cnavToc_cnavTop_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", 300*v, v);
+}
+
+static void
+lpp_cnavAf2_fmt(gchar *s, guint32 v)
+{
+ double cnavAf2 = (double)((gint32)v)*pow(2, -60);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s2 (%d)", cnavAf2, (gint32)v);
+}
+
+static void
+lpp_cnavAf1_fmt(gchar *s, guint32 v)
+{
+ double cnavAf1 = (double)((gint32)v)*pow(2, -48);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", cnavAf1, (gint32)v);
+}
+
+static void
+lpp_cnavX_fmt(gchar *s, guint32 v)
+{
+ double cnavX = (double)((gint32)v)*pow(2, -35);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", cnavX, (gint32)v);
+}
+
+static void
+lpp_gloTau_gloDeltaTau_fmt(gchar *s, guint32 v)
+{
+ double gloTau_gloDeltaTau = (double)((gint32)v)*pow(2, -30);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", gloTau_gloDeltaTau, (gint32)v);
+}
+
+static void
+lpp_gloGamma_fmt(gchar *s, guint32 v)
+{
+ double gloGamma = (double)((gint32)v)*pow(2, -40);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%d)", gloGamma, (gint32)v);
+}
+
+static void
+lpp_sbasTo_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", 16*v, v);
+}
+
+static void
+lpp_sbasAgfo_fmt(gchar *s, guint32 v)
+{
+ double sbasAgfo = (double)((gint32)v)*pow(2, -31);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", sbasAgfo, (gint32)v);
+}
+
+static void
+lpp_sbasAgf1_fmt(gchar *s, guint32 v)
+{
+ double sbasAgf1 = (double)((gint32)v)*pow(2, -40);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", sbasAgf1, (gint32)v);
+}
+
+static void
+lpp_bdsAODC_AODE_r12_fmt(gchar *s, guint32 v)
+{
+ if (v < 25) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Age of the satellite clock correction parameters is %u hours (%u)", v, v);
+ } else if (v < 31) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Age of the satellite clock correction parameters is %u days (%u)", v-23, v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Age of the satellite clock correction parameters is over 7 days (%u)", v);
+ }
+}
+
+
+static void
+lpp_bdsToc_Toe_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsToc = (double)((gint32)v)*pow(2, 3);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", bdsToc, (gint32)v);
+}
+
+static void
+lpp_bdsA0_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsA0 = (double)((gint32)v)*pow(2, -33);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", bdsA0, (gint32)v);
+}
+
+static void
+lpp_bdsA1_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsA1 = (double)((gint32)v)*pow(2, -50);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", bdsA1, (gint32)v);
+}
+
+static void
+lpp_bdsA2_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsA2 = (double)((gint32)v)*pow(2, -66);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s2 (%d)", bdsA2, (gint32)v);
+}
+
+static void
+lpp_bdsTgd1_r12_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g ns (%d)", (float)((gint32)v)*0.1, (gint32)v);
+}
+
+static void
+lpp_keplerToe_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", 60*v, v);
+}
+
+static void
+lpp_keplerW_M0_I0_Omega0_fmt(gchar *s, guint32 v)
+{
+ double keplerW_M0_I0_Omega0 = (double)((gint32)v)*pow(2, -31);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", keplerW_M0_I0_Omega0, (gint32)v);
+}
+
+static void
+lpp_keplerDeltaN_OmegaDot_IDot_fmt(gchar *s, guint32 v)
+{
+ double keplerDeltaN_OmegaDot_IDot = (double)((gint32)v)*pow(2, -43);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", keplerDeltaN_OmegaDot_IDot, (gint32)v);
+}
+
+static void
+lpp_keplerE_fmt(gchar *s, guint32 v)
+{
+ double keplerE = (double)v*pow(2, -33);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", keplerE, v);
+}
+
+static void
+lpp_keplerAPowerHalf_fmt(gchar *s, guint32 v)
+{
+ double keplerAPowerHalf = (double)v*pow(2, -19);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m1/2 (%u)", keplerAPowerHalf, v);
+}
+
+static void
+lpp_keplerCrs_Crc_fmt(gchar *s, guint32 v)
+{
+ double keplerCrs_Crc = (double)((gint32)v)*pow(2, -5);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m (%d)", keplerCrs_Crc, (gint32)v);
+}
+
+static void
+lpp_keplerCx_fmt(gchar *s, guint32 v)
+{
+ double keplerCx = (double)((gint32)v)*pow(2, -29);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g rad (%d)", keplerCx, (gint32)v);
+}
+
+static void
+lpp_navToe_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", 16*v, v);
+}
+
+static void
+lpp_navOmega_M0_I0_OmegaA0_fmt(gchar *s, guint32 v)
+{
+ double navOmega_M0_I0_OmegaA0 = (double)((gint32)v)*pow(2, -31);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navOmega_M0_I0_OmegaA0, (gint32)v);
+}
+
+static void
+lpp_navDeltaN_OmegaADot_IDot_fmt(gchar *s, guint32 v)
+{
+ double navDeltaN_OmegaADot_IDot = (double)((gint32)v)*pow(2, -43);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", navDeltaN_OmegaADot_IDot, (gint32)v);
+}
+
+static void
+lpp_navE_fmt(gchar *s, guint32 v)
+{
+ double navE = (double)v*pow(2, -33);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", navE, v);
+}
+
+static void
+lpp_navAPowerHalf_fmt(gchar *s, guint32 v)
+{
+ double navAPowerHalf = (double)v*pow(2, -19);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m1/2 (%u)", navAPowerHalf, v);
+}
+
+static void
+lpp_navCrs_Crc_fmt(gchar *s, guint32 v)
+{
+ double navCrs_Crc = (double)((gint32)v)*pow(2, -5);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m (%d)", navCrs_Crc, (gint32)v);
+}
+
+static void
+lpp_navCx_fmt(gchar *s, guint32 v)
+{
+ double navCx = (double)((gint32)v)*pow(2, -29);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g rad (%d)", navCx, (gint32)v);
+}
+
+static void
+lpp_cnavDeltaA_fmt(gchar *s, guint32 v)
+{
+ double cnavDeltaA = (double)((gint32)v)*pow(2, -9);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m (%d)", cnavDeltaA, (gint32)v);
+}
+
+static void
+lpp_cnavAdot_fmt(gchar *s, guint32 v)
+{
+ double cnavAdot = (double)((gint32)v)*pow(2, -21);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m/s (%d)", cnavAdot, (gint32)v);
+}
+
+static void
+lpp_cnavDeltaNo_fmt(gchar *s, guint32 v)
+{
+ double cnavDeltaNo = (double)((gint32)v)*pow(2, -44);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", cnavDeltaNo, (gint32)v);
+}
+
+static void
+lpp_cnavDeltaNoDot_fmt(gchar *s, guint32 v)
+{
+ double cnavDeltaNoDot = (double)((gint32)v)*pow(2, -57);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s2 (%d)", cnavDeltaNoDot, (gint32)v);
+}
+
+static void
+lpp_cnavDeltaOmegaDot_IoDot_fmt(gchar *s, guint32 v)
+{
+ double cnavDeltaOmegaDot_IoDot = (double)((gint32)v)*pow(2, -44);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", cnavDeltaOmegaDot_IoDot, (gint32)v);
+}
+
+static void
+lpp_cnavCx_fmt(gchar *s, guint32 v)
+{
+ double cnavCx = (double)((gint32)v)*pow(2, -30);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g rad (%d)", cnavCx, (gint32)v);
+}
+
+static void
+lpp_cnavCrs_Crc_fmt(gchar *s, guint32 v)
+{
+ double cnavCrs_Crc = (double)((gint32)v)*pow(2, -8);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m (%d)", cnavCrs_Crc, (gint32)v);
+}
+
+static void
+lpp_gloX_Y_Z_fmt(gchar *s, guint32 v)
+{
+ double gloX_Y_Z = (double)((gint32)v)*pow(2, -11);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g km (%d)", gloX_Y_Z, (gint32)v);
+}
+
+static void
+lpp_gloXdot_Ydot_Zdot_fmt(gchar *s, guint32 v)
+{
+ double gloXdot_Ydot_Zdot = (double)((gint32)v)*pow(2, -20);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g km/s (%d)", gloXdot_Ydot_Zdot, (gint32)v);
+}
+
+static void
+lpp_gloXdotdot_Ydotdot_Zdotdot_fmt(gchar *s, guint32 v)
+{
+ double gloXdotdot_Ydotdot_Zdotdot = (double)((gint32)v)*pow(2, -30);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g km/s2 (%d)", gloXdotdot_Ydotdot_Zdotdot, (gint32)v);
+}
+
+static void
+lpp_sbasXg_Yg_fmt(gchar *s, guint32 v)
+{
+ double sbasXg_Yg = (double)((gint32)v)*0.08;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m (%d)", sbasXg_Yg, (gint32)v);
+}
+
+static void
+lpp_sbasZg_fmt(gchar *s, guint32 v)
+{
+ double sbasZg = (double)((gint32)v)*0.4;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m (%d)", sbasZg, (gint32)v);
+}
+
+static void
+lpp_sbasXgDot_YgDot_fmt(gchar *s, guint32 v)
+{
+ double sbasXgDot_YgDot = (double)((gint32)v)*0.000625;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m/s (%d)", sbasXgDot_YgDot, (gint32)v);
+}
+
+static void
+lpp_sbasZgDot_fmt(gchar *s, guint32 v)
+{
+ double sbasZgDot = (double)((gint32)v)*0.004;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m/s (%d)", sbasZgDot, (gint32)v);
+}
+
+static void
+lpp_sbasXgDotDot_YgDotDot_fmt(gchar *s, guint32 v)
+{
+ double sbasXgDotDot_YgDotDot = (double)((gint32)v)*0.0000125;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m/s2 (%d)", sbasXgDotDot_YgDotDot, (gint32)v);
+}
+
+static void
+lpp_sbasZgDotDot_fmt(gchar *s, guint32 v)
+{
+ double sbasZgDotDot = (double)((gint32)v)*0.0000625;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m/s2 (%d)", sbasZgDotDot, (gint32)v);
+}
+
+static void
+lpp_bdsAPowerHalf_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsAPowerHalf = (double)v*pow(2, -19);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m1/2 (%u)", bdsAPowerHalf, v);
+}
+
+static void
+lpp_bdsE_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsE = (double)v*pow(2, -33);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", bdsE, v);
+}
+
+static void
+lpp_bdsW_M0_Omega0_I0_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsW_M0_Omega0_I0 = (double)((gint32)v)*pow(2, -31);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsW_M0_Omega0_I0, (gint32)v);
+}
+
+static void
+lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsDeltaN_OmegaDot_IDot = (double)((gint32)v)*pow(2, -43);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", bdsDeltaN_OmegaDot_IDot, (gint32)v);
+}
+
+static void
+lpp_bdsCuc_Cus_Cic_Cis_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsCuc_Cus_Cic_Cis = (double)((gint32)v)*pow(2, -31);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g rad (%d)", bdsCuc_Cus_Cic_Cis, (gint32)v);
+}
+
+static void
+lpp_bdsCrc_Crs_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsCrc_Crs = (double)((gint32)v)*pow(2, -6);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g rad (%d)", bdsCrc_Crs, (gint32)v);
+}
+
+static void
+lpp_doppler0_fmt(gchar *s, guint32 v)
+{
+ double doppler0 = (double)((gint32)v)*0.5;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m/s (%d)", doppler0, (gint32)v);
+}
+
+static void
+lpp_doppler1_fmt(gchar *s, guint32 v)
+{
+ double doppler1 = (double)((gint32)(v-42))/210;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m/s2 (%u)", doppler1, v);
+}
+
+static const value_string lpp_dopplerUncertainty_vals[] = {
+ { 0, "40 m/s"},
+ { 1, "20 m/s"},
+ { 2, "10 m/s"},
+ { 3, "5 m/s"},
+ { 4, "2.5 m/s"},
+ { 0, NULL}
+};
+
+static void
+lpp_codePhase_fmt(gchar *s, guint32 v)
+{
+ double codePhase = (double)v*pow(2, -10);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g ms (%u)", codePhase, v);
+}
+
+static const value_string lpp_codePhaseSearchWindow_vals[] = {
+ { 0, "No information"},
+ { 1, "0.002 ms"},
+ { 2, "0.004 ms"},
+ { 3, "0.008 ms"},
+ { 4, "0.012 ms"},
+ { 5, "0.016 ms"},
+ { 6, "0.024 ms"},
+ { 7, "0.032 ms"},
+ { 8, "0.048 ms"},
+ { 9, "0.064 ms"},
+ { 10, "0.096 ms"},
+ { 11, "0.128 ms"},
+ { 12, "0.164 ms"},
+ { 13, "0.200 ms"},
+ { 14, "0.250 ms"},
+ { 15, "0.300 ms"},
+ { 16, "0.360 ms"},
+ { 17, "0.420 ms"},
+ { 18, "0.480 ms"},
+ { 19, "0.540 ms"},
+ { 20, "0.600 ms"},
+ { 21, "0.660 ms"},
+ { 22, "0.720 ms"},
+ { 23, "0.780 ms"},
+ { 24, "0.850 ms"},
+ { 25, "1.000 ms"},
+ { 26, "1.150 ms"},
+ { 27, "1.300 ms"},
+ { 28, "1.450 ms"},
+ { 29, "1.600 ms"},
+ { 30, "1.800 ms"},
+ { 31, "2.000 ms"},
+ { 0, NULL}
+};
+static value_string_ext lpp_codePhaseSearchWindow_vals_ext = VALUE_STRING_EXT_INIT(lpp_codePhaseSearchWindow_vals);
+
+static void
+lpp_azimuth_elevation_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)", (float)v*0.703125, v);
+}
+
+static void
+lpp_kepAlmanacE_fmt(gchar *s, guint32 v)
+{
+ double kepAlmanacE = (double)v*pow(2, -16);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", kepAlmanacE, v);
+}
+
+static void
+lpp_kepAlmanacDeltaI_fmt(gchar *s, guint32 v)
+{
+ double kepAlmanacDeltaI = (double)((gint32)v)*pow(2, -14);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", kepAlmanacDeltaI, (gint32)v);
+}
+
+static void
+lpp_kepAlmanacOmegaDot_fmt(gchar *s, guint32 v)
+{
+ double kepAlmanacOmegaDot = (double)((gint32)v)*pow(2, -33);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", kepAlmanacOmegaDot, (gint32)v);
+}
+
+static void
+lpp_kepAlmanacAPowerHalf_fmt(gchar *s, guint32 v)
+{
+ double kepAlmanacAPowerHalf = (double)((gint32)v)*pow(2, -9);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m1/2 (%d)", kepAlmanacAPowerHalf, (gint32)v);
+}
+
+static void
+lpp_kepAlmanacOmega0_W_M0_fmt(gchar *s, guint32 v)
+{
+ double kepAlmanacOmega0_W_M0 = (double)((gint32)v)*pow(2, -15);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", kepAlmanacOmega0_W_M0, (gint32)v);
+}
+
+static void
+lpp_kepAlmanacAF0_fmt(gchar *s, guint32 v)
+{
+ double kepAlmanacAF0 = (double)((gint32)v)*pow(2, -19);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", kepAlmanacAF0, (gint32)v);
+}
+
+static void
+lpp_kepAlmanacAF1_fmt(gchar *s, guint32 v)
+{
+ double kepAlmanacAF1 = (double)((gint32)v)*pow(2, -38);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", kepAlmanacAF1, (gint32)v);
+}
+
+static void
+lpp_navAlmE_fmt(gchar *s, guint32 v)
+{
+ double navAlmE = (double)v*pow(2, -21);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", navAlmE, v);
+}
+
+static void
+lpp_navAlmDeltaI_fmt(gchar *s, guint32 v)
+{
+ double navAlmDeltaI = (double)((gint32)v)*pow(2, -19);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navAlmDeltaI, (gint32)v);
+}
+
+static void
+lpp_navAlmOMEGADOT_fmt(gchar *s, guint32 v)
+{
+ double navAlmOMEGADOT = (double)((gint32)v)*pow(2, -38);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", navAlmOMEGADOT, (gint32)v);
+}
+
+static void
+lpp_navAlmSqrtA_fmt(gchar *s, guint32 v)
+{
+ double navAlmSqrtA = (double)v*pow(2, -11);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m1/2 (%u)", navAlmSqrtA, v);
+}
+
+static void
+lpp_navAlmOMEGAo_Omega_Mo_fmt(gchar *s, guint32 v)
+{
+ double navAlmOMEGAo_Omega_Mo = (double)((gint32)v)*pow(2, -23);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navAlmOMEGAo_Omega_Mo, (gint32)v);
+}
+
+static void
+lpp_navAlmaf0_fmt(gchar *s, guint32 v)
+{
+ double navAlmaf0 = (double)((gint32)v)*pow(2, -20);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", navAlmaf0, (gint32)v);
+}
+
+static void
+lpp_navAlmaf1_fmt(gchar *s, guint32 v)
+{
+ double navAlmaf1 = (double)((gint32)v)*pow(2, -38);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", navAlmaf1, (gint32)v);
+}
+
+static void
+lpp_redAlmDeltaA_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d m (%d)", 512*(gint)v, (gint)v);
+}
+
+static void
+lpp_redAlmOmega0_Phi0_fmt(gchar *s, guint32 v)
+{
+ double redAlmOmega0_Phi0 = (double)((gint32)v)*pow(2, -6);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", redAlmOmega0_Phi0, (gint32)v);
+}
+
+static void
+lpp_midiAlmE_fmt(gchar *s, guint32 v)
+{
+ double midiAlmE = (double)v*pow(2, -16);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", midiAlmE, v);
+}
+
+static void
+lpp_midiAlmDeltaI_fmt(gchar *s, guint32 v)
+{
+ double midiAlmDeltaI = (double)((gint32)v)*pow(2, -14);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", midiAlmDeltaI, (gint32)v);
+}
+
+static void
+lpp_midiAlmOmegaDot_fmt(gchar *s, guint32 v)
+{
+ double midiAlmOmegaDot = (double)((gint32)v)*pow(2, -33);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", midiAlmOmegaDot, (gint32)v);
+}
+
+static void
+lpp_midiAlmSqrtA_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m1/2 (%u)", (float)v*0.0625, v);
+}
+
+static void
+lpp_midiAlmOmega0_Omega_Mo_fmt(gchar *s, guint32 v)
+{
+ double midiAlmOmega0_Omega_Mo = (double)((gint32)v)*pow(2, -15);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", midiAlmOmega0_Omega_Mo, (gint32)v);
+}
+
+static void
+lpp_midiAlmaf0_fmt(gchar *s, guint32 v)
+{
+ double midiAlmaf0 = (double)((gint32)v)*pow(2, -20);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", midiAlmaf0, (gint32)v);
+}
+
+static void
+lpp_midiAlmaf1_fmt(gchar *s, guint32 v)
+{
+ double midiAlmaf1 = (double)((gint32)v)*pow(2, -37);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", midiAlmaf1, (gint32)v);
+}
+
+static void
+lpp_gloAlmLambdaA_DeltaIa_fmt(gchar *s, guint32 v)
+{
+ double gloAlmLambdaA_DeltaIa = (double)((gint32)v)*pow(2, -20);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", gloAlmLambdaA_DeltaIa, (gint32)v);
+}
+
+static void
+lpp_gloAlmtlambdaA_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f s (%u)", (float)v*0.03125, v);
+}
+
+static void
+lpp_gloAlmDeltaTA_fmt(gchar *s, guint32 v)
+{
+ double gloAlmDeltaTA = (double)((gint32)v)*pow(2, -9);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/orbit period (%d)", gloAlmDeltaTA, (gint32)v);
+}
+
+static void
+lpp_gloAlmDeltaTdotA_fmt(gchar *s, guint32 v)
+{
+ double gloAlmDeltaTdotA = (double)((gint32)v)*pow(2, -14);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/orbit period (%d)", gloAlmDeltaTdotA, (gint32)v);
+}
+
+static void
+lpp_gloAlmEpsilonA_fmt(gchar *s, guint32 v)
+{
+ double gloAlmEpsilonA = (double)v*pow(2, -20);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", gloAlmEpsilonA, (gint32)v);
+}
+
+static void
+lpp_gloAlmOmegaA_fmt(gchar *s, guint32 v)
+{
+ double gloAlmOmegaA = (double)((gint32)v)*pow(2, -15);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", gloAlmOmegaA, (gint32)v);
+}
+
+static void
+lpp_gloAlmTauA_fmt(gchar *s, guint32 v)
+{
+ double gloAlmTauA = (double)((gint32)v)*pow(2, -18);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", gloAlmTauA, (gint32)v);
+}
+
+static void
+lpp_sbasAlmXg_Yg_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f km (%d)", (gint32)v*2.6, (gint32)v);
+}
+
+static void
+lpp_sbasAlmZg_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d km (%d)", (gint32)v*26, (gint32)v);
+}
+
+static void
+lpp_sbasAlmXgdot_YgDot_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d m/s (%d)", (gint32)v*10, (gint32)v);
+}
+
+static void
+lpp_sbasAlmZgDot_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m/s (%d)", (gint32)v*40.96, (gint32)v);
+}
+
+static void
+lpp_sbasAlmTo_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u m/s (%u)", v*64, v);
+}
+
+static void
+lpp_bdsAlmToa_r12_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", v*4096, v);
+}
+
+static void
+lpp_bdsAlmSqrtA_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsAlmSqrtA = (double)v*pow(2, -11);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m1/2 (%u)", bdsAlmSqrtA, v);
+}
+
+static void
+lpp_bdsAlmE_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsAlmE = (double)v*pow(2, -21);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m1/2 (%u)", bdsAlmE, v);
+}
+
+static void
+lpp_bdsAlmW_M0_Omega0_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsAlmW_M0_Omega0 = (double)((gint32)v)*pow(2, -23);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsAlmW_M0_Omega0, (gint32)v);
+}
+
+static void
+lpp_bdsAlmOmegaDot_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsAlmOmegaDot = (double)((gint32)v)*pow(2, -38);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", bdsAlmOmegaDot, (gint32)v);
+}
+
+static void
+lpp_bdsAlmDeltaI_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsAlmDeltaI = (double)((gint32)v)*pow(2, -19);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsAlmDeltaI, (gint32)v);
+}
+
+static void
+lpp_bdsAlmA0_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsAlmA0 = (double)((gint32)v)*pow(2, -20);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", bdsAlmA0, (gint32)v);
+}
+
+static void
+lpp_bdsAlmA1_r12_fmt(gchar *s, guint32 v)
+{
+ double bdsAlmA1 = (double)((gint32)v)*pow(2, -38);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", bdsAlmA1, (gint32)v);
+}
+
+static const true_false_string lpp_bdsSvHealth_r12_b1i_b2i_value = {
+ "OK",
+ "Weak"
+};
+
+static const true_false_string lpp_bdsSvHealth_r12_nav_value = {
+ "OK",
+ "Bad (IOD over limit)"
+};
+
+static void
+lpp_gnss_Utc_A1_fmt(gchar *s, guint32 v)
+{
+ double gnss_Utc_A1 = (double)((gint32)v)*pow(2, -50);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/s (%d)", gnss_Utc_A1, (gint32)v);
+}
+
+static void
+lpp_gnss_Utc_A0_fmt(gchar *s, guint32 v)
+{
+ double gnss_Utc_A0 = (double)((gint32)v)*pow(2, -30);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", gnss_Utc_A0, (gint32)v);
+}
+
+static void
+lpp_gnss_Utc_Tot_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u s (%u)", v*4096, v);
+}
+
+static const value_string lpp_bds_UDREI_vals[] = {
+ { 0, "1 meter"},
+ { 1, "1.5 meters"},
+ { 2, "2 meters"},
+ { 3, "3 meters"},
+ { 4, "4 meters"},
+ { 5, "5 meters"},
+ { 6, "6 meters"},
+ { 7, "8 meters"},
+ { 8, "10 meters"},
+ { 9, "15 meters"},
+ { 10, "20 meters"},
+ { 11, "50 meters"},
+ { 12, "100 meters"},
+ { 13, "150 meters"},
+ { 14, "Not monitored"},
+ { 15, "Not available"},
+ { 0, NULL}
+};
+static value_string_ext lpp_bds_UDREI_vals_ext = VALUE_STRING_EXT_INIT(lpp_bds_UDREI_vals);
+
+static const value_string lpp_bds_RURAI_vals[] = {
+ { 0, "0.75 meter"},
+ { 1, "1 meter"},
+ { 2, "1.25 meters"},
+ { 3, "1.75 meters"},
+ { 4, "2.25 meters"},
+ { 5, "3 meters"},
+ { 6, "3.75 meters"},
+ { 7, "4.5 meters"},
+ { 8, "5.25 meters"},
+ { 9, "6 meters"},
+ { 10, "7.5 meters"},
+ { 11, "15 meters"},
+ { 12, "50 meters"},
+ { 13, "150 meters"},
+ { 14, "300 meters"},
+ { 15, "> 300 meters"},
+ { 0, NULL}
+};
+static value_string_ext lpp_bds_RURAI_vals_ext = VALUE_STRING_EXT_INIT(lpp_bds_RURAI_vals);
+
+static void
+lpp_bds_ECC_DeltaT_r12_fmt(gchar *s, guint32 v)
+{
+ if ((gint32)v == -4096) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Not available (%d)", (gint32)v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m (%d)", (float)((gint32)v)*0.1, (gint32)v);
+ }
+}
+
+static void
+lpp_bds_GridIonElement_dt_r12_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m (%d)", (float)((gint32)v)*0.125, (gint32)v);
+}
+
+static const value_string lpp_bds_givei_vals[] = {
+ { 0, "0.3 meter"},
+ { 1, "0.6 meter"},
+ { 2, "0.9 meter"},
+ { 3, "1.2 meters"},
+ { 4, "1.5 meters"},
+ { 5, "1.8 meters"},
+ { 6, "2.1 meters"},
+ { 7, "2.4 meters"},
+ { 8, "2.7 meters"},
+ { 9, "3 meters"},
+ { 10, "3.6 meters"},
+ { 11, "4.5 meters"},
+ { 12, "6 meters"},
+ { 13, "9 meters"},
+ { 14, "15 meters"},
+ { 15, "45 meters"},
+ { 0, NULL}
+};
+static value_string_ext lpp_bds_givei_vals_ext = VALUE_STRING_EXT_INIT(lpp_bds_givei_vals);
+
+static void
+lpp_tauC_fmt(gchar *s, guint32 v)
+{
+ double tauC = (double)((gint32)v)*pow(2, -31);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", tauC, (gint32)v);
+}
+
+static void
+lpp_b1_fmt(gchar *s, guint32 v)
+{
+ double b1 = (double)((gint32)v)*pow(2, -10);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%d)", b1, (gint32)v);
+}
+
+static void
+lpp_b2_fmt(gchar *s, guint32 v)
+{
+ double b2 = (double)((gint32)v)*pow(2, -16);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s/msd (%d)", b2, (gint32)v);
+}
+
+static const value_string lpp_utcStandardID_vals[] = {
+ { 0, "UTC as operated by the Communications Research Laboratory (CRL), Tokyo, Japan"},
+ { 1, "UTC as operated by the National Institute of Standards and Technology (NIST)"},
+ { 2, "UTC as operated by the U. S. Naval Observatory (USNO)"},
+ { 3, "UTC as operated by the International Bureau of Weights and Measures (BIPM)"},
+ { 0, NULL}
+};
+
+static const value_string lpp_dataBitInterval_vals[] = {
+ { 0, "0.1"},
+ { 1, "0.2"},
+ { 2, "0.4"},
+ { 3, "0.8"},
+ { 4, "1.6"},
+ { 5, "3.2"},
+ { 6, "6.4"},
+ { 7, "12.8"},
+ { 8, "25.6"},
+ { 9, "51.2"},
+ { 10, "102.4"},
+ { 11, "204.8"},
+ { 12, "409.6"},
+ { 13, "819.2"},
+ { 14, "1638.4"},
+ { 15, "Not specified"},
+ { 0, NULL}
+};
+static value_string_ext lpp_dataBitInterval_vals_ext = VALUE_STRING_EXT_INIT(lpp_dataBitInterval_vals);
+
+static const value_string lpp_carrierQualityInd_vals[] = {
+ { 0, "Data direct, carrier phase not continuous"},
+ { 1, "Data inverted, carrier phase not continuous"},
+ { 2, "Data direct, carrier phase continuous"},
+ { 3, "Data inverted, carrier phase continuous"},
+ { 0, NULL}
+};
+
+static void
+lpp_GNSS_SatMeas_codePhase_fmt(gchar *s, guint32 v)
+{
+ double codePhase = (double)v*pow(2, -21);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g ms (%u)", codePhase, v);
+}
+
+static void
+lpp_codePhaseRMSError_fmt(gchar *s, guint32 v)
+{
+ guint8 mantissa = v & 0x07;
+ guint8 exponent = (v & 0x38) >> 3;
+ guint8 mantissa_1 = (v - 1) & 0x07;
+ guint8 exponent_1 = ((v - 1) & 0x38) >> 3;
+
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "P < 0.5 (0)");
+ } else if (v < 63) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f <= P < %f (%u)", 0.5*(1+mantissa_1/8)*pow(2, exponent_1),
+ 0.5*(1+mantissa/8)*pow(2, exponent), v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "112 <= P (63)");
+ }
+}
+
+static void
+lpp_doppler_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m/s (%d)", (gint32)v*0.04, (gint32)v);
+}
+
+static void
+lpp_adr_fmt(gchar *s, guint32 v)
+{
+ double adr = (double)v*pow(2, -10);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g m (%u)", adr, v);
+}
+
+static void
+lpp_rsrp_Result_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d dBm (%u)", v-140, v);
+}
+
+static void
+lpp_rsrq_Result_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5 dB (0)");
+ } else if (v < 34) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f dB <= RSRQ < %.1f dB (%u)", ((float)v/2)-20, (((float)v+1)/2)-20, v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "-3 dB <= RSRQ (34)");
+ }
+}
+
+static void
+lpp_ue_RxTxTimeDiff_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "T < 2 Ts (0)");
+ } else if (v < 2048) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u Ts <= T < %u Ts (%u)", v*2, (v+1)*2, v);
+ } else if (v < 4095) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u Ts <= T < %u Ts (%u)", (v*8)-12288, ((v+1)*8)-12288, v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "20472 Ts <= T (4095)");
+ }
+}
+
+static void
+lpp_mbs_beaconMeasElt_codePhase_fmt(gchar *s, guint32 v)
+{
+ double codePhase = (double)v*pow(2, -21);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g ms (%u)", codePhase, v);
+}
+
+#include "packet-lpp-fn.c"
+
+static int dissect_lpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
+ proto_tree *subtree;
+ proto_item *it;
+
+ it = proto_tree_add_item(tree, proto_lpp, tvb, 0, -1, ENC_NA);
+ col_append_sep_str(pinfo->cinfo, COL_PROTOCOL, "/", "LPP");
+ subtree = proto_item_add_subtree(it, ett_lpp);
+
+ return dissect_LPP_Message_PDU(tvb, pinfo, subtree, NULL);
+}
+
+/*--- proto_register_lpp -------------------------------------------*/
+void proto_register_lpp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-lpp-hfarr.c"
+ { &hf_lpp_svHealthExt_v1240_e5bhs,
+ { "E5b Signal Health Status", "lpp.svHealthExt_v1240.e5bhs",
+ FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
+ NULL, HFILL }},
+ { &hf_lpp_svHealthExt_v1240_e1_bhs,
+ { "E1-B Signal Health Status", "lpp.svHealthExt_v1240.e1_bhs",
+ FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
+ NULL, HFILL }},
+ { &hf_lpp_kepSV_StatusINAV_e5bhs,
+ { "E5b Signal Health Status", "lpp.kepSV_StatusINAV.e5bhs",
+ FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
+ NULL, HFILL }},
+ { &hf_lpp_kepSV_StatusINAV_e1_bhs,
+ { "E1-B Signal Health Status", "lpp.kepSV_StatusINAV.e1_bhs",
+ FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
+ NULL, HFILL }},
+ { &hf_lpp_kepSV_StatusFNAV_e5ahs,
+ { "E5a Signal Health Status", "lpp.kepSV_StatusFNAV.e5ahs",
+ FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
+ NULL, HFILL }},
+ { &hf_lpp_bdsSvHealth_r12_sat_clock,
+ { "Satellite Clock", "lpp.bdsSvHealth_r12.sat_clock",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_ok_error), 0,
+ NULL, HFILL }},
+ { &hf_lpp_bdsSvHealth_r12_b1i,
+ { "B1I Signal", "lpp.bdsSvHealth_r12.b1i",
+ FT_BOOLEAN, BASE_NONE, TFS(&lpp_bdsSvHealth_r12_b1i_b2i_value), 0,
+ NULL, HFILL }},
+ { &hf_lpp_bdsSvHealth_r12_b2i,
+ { "B2I Signal", "lpp.bdsSvHealth_r12.b2i",
+ FT_BOOLEAN, BASE_NONE, TFS(&lpp_bdsSvHealth_r12_b1i_b2i_value), 0,
+ NULL, HFILL }},
+ { &hf_lpp_bdsSvHealth_r12_nav,
+ { "NAV Message", "lpp.bdsSvHealth_r12.nav",
+ FT_BOOLEAN, BASE_NONE, TFS(&lpp_bdsSvHealth_r12_nav_value), 0,
+ NULL, HFILL }}
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_lpp,
+ &ett_lpp_bitmap,
+ &ett_lpp_svHealthExt_v1240,
+ &ett_kepSV_StatusINAV,
+ &ett_kepSV_StatusFNAV,
+ &ett_lpp_bdsSvHealth_r12,
+#include "packet-lpp-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_lpp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("lpp", dissect_lpp, proto_lpp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_lpp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+
+}
+
+
+/*--- proto_reg_handoff_lpp ---------------------------------------*/
+void
+proto_reg_handoff_lpp(void)
+{
+ lppe_handle = find_dissector("lppe");
+}
+
+
diff --git a/epan/dissectors/asn1/lpp/packet-lpp-template.h b/epan/dissectors/asn1/lpp/packet-lpp-template.h
new file mode 100644
index 0000000000..1928d3bfd2
--- /dev/null
+++ b/epan/dissectors/asn1/lpp/packet-lpp-template.h
@@ -0,0 +1,32 @@
+/* packet-lpp.h
+ * Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
+ * Copyright 2011-2016 Pascal Quantin <pascal.quantin@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref 3GPP TS 36.355 version 13.0.0 Release 13
+ * http://www.3gpp.org
+ */
+
+#ifndef PACKET_LPP_H
+#define PACKET_LPP_H
+
+#include "packet-lpp-exp.h"
+
+#endif /* PACKET_LPP_H */
diff --git a/epan/dissectors/asn1/lppa/CMakeLists.txt b/epan/dissectors/asn1/lppa/CMakeLists.txt
new file mode 100644
index 0000000000..bc5bb2ccfe
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME lppa )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ LPPA-Common.asn
+ LPPA-Constant.asn
+ LPPA-Container.asn
+ LPPA-ElementaryProcedure.asn
+ LPPA-InformationElement.asn
+ LPPA-PDU.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/lppa/LPPA-Common.asn b/epan/dissectors/asn1/lppa/LPPA-Common.asn
new file mode 100644
index 0000000000..393c7b27db
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/LPPA-Common.asn
@@ -0,0 +1,53 @@
+-- 3GPP TS 36.455 V11.3.0 (2013-06)
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+LPPA-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lppa (6) version1 (1) lppa-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 }
+
+LPPATransactionID ::= INTEGER (0..32767)
+
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0.. maxPrivateIEs),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
+
+END
diff --git a/epan/dissectors/asn1/lppa/LPPA-Constant.asn b/epan/dissectors/asn1/lppa/LPPA-Constant.asn
new file mode 100644
index 0000000000..e23a14b65e
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/LPPA-Constant.asn
@@ -0,0 +1,75 @@
+-- 3GPP TS 36.455 V11.3.0 (2013-06)
+--
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+LPPA-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lppa (6) version1 (1) lppa-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM LPPA-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-errorIndication ProcedureCode ::= 0
+id-privateMessage ProcedureCode ::= 1
+id-e-CIDMeasurementInitiation ProcedureCode ::= 2
+id-e-CIDMeasurementFailureIndication ProcedureCode ::= 3
+id-e-CIDMeasurementReport ProcedureCode ::= 4
+id-e-CIDMeasurementTermination ProcedureCode ::= 5
+id-oTDOAInformationExchange ProcedureCode ::= 6
+id-uTDOAInformationExchange ProcedureCode ::= 7
+id-uTDOAInformationUpdate ProcedureCode ::= 8
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfErrors INTEGER ::= 256
+maxCellineNB INTEGER ::= 256
+maxNoMeas INTEGER ::= 63
+maxCellReport INTEGER ::= 9
+maxnoOTDOAtypes INTEGER ::= 63
+maxServCell INTEGER ::= 5
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Cause ProtocolIE-ID ::= 0
+id-CriticalityDiagnostics ProtocolIE-ID ::= 1
+id-E-SMLC-UE-Measurement-ID ProtocolIE-ID ::= 2
+id-ReportCharacteristics ProtocolIE-ID ::= 3
+id-MeasurementPeriodicity ProtocolIE-ID ::= 4
+id-MeasurementQuantities ProtocolIE-ID ::= 5
+id-eNB-UE-Measurement-ID ProtocolIE-ID ::= 6
+id-E-CID-MeasurementResult ProtocolIE-ID ::= 7
+id-OTDOACells ProtocolIE-ID ::= 8
+id-OTDOA-Information-Type-Group ProtocolIE-ID ::= 9
+id-OTDOA-Information-Type-Item ProtocolIE-ID ::= 10
+id-MeasurementQuantities-Item ProtocolIE-ID ::= 11
+id-RequestedSRSTransmissionCharacteristics ProtocolIE-ID ::= 12
+id-ULConfiguration ProtocolIE-ID ::= 13
+
+
+END
diff --git a/epan/dissectors/asn1/lppa/LPPA-Container.asn b/epan/dissectors/asn1/lppa/LPPA-Container.asn
new file mode 100644
index 0000000000..2bb8c2be45
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/LPPA-Container.asn
@@ -0,0 +1,197 @@
+-- 3GPP TS 36.455 V11.3.0 (2013-06)
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+LPPA-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lppa (6) version1 (1) lppa-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+FROM LPPA-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+LPPA-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
+--
+-- **************************************************************
+
+LPPA-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
+--
+-- **************************************************************
+
+LPPA-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
+--
+-- **************************************************************
+
+LPPA-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 { LPPA-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container { LPPA-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field { LPPA-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id LPPA-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality LPPA-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value LPPA-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair { LPPA-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair { LPPA-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id LPPA-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality LPPA-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue LPPA-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality LPPA-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue LPPA-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, LPPA-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, LPPA-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer { LPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField { LPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id LPPA-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality LPPA-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue LPPA-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container { LPPA-PRIVATE-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field { LPPA-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id LPPA-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality LPPA-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value LPPA-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/epan/dissectors/asn1/lppa/LPPA-ElementaryProcedure.asn b/epan/dissectors/asn1/lppa/LPPA-ElementaryProcedure.asn
new file mode 100644
index 0000000000..6e40c6dff3
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/LPPA-ElementaryProcedure.asn
@@ -0,0 +1,217 @@
+-- 3GPP TS 36.455 V11.3.0 (2013-06)
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+LPPA-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lppa (6) version1 (1) lppa-PDU-Descriptions (0) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode,
+ LPPATransactionID
+
+FROM LPPA-CommonDataTypes
+
+
+ ErrorIndication,
+ PrivateMessage,
+ E-CIDMeasurementInitiationRequest,
+ E-CIDMeasurementInitiationResponse,
+ E-CIDMeasurementInitiationFailure,
+ E-CIDMeasurementFailureIndication,
+ E-CIDMeasurementReport,
+ E-CIDMeasurementTerminationCommand,
+ OTDOAInformationRequest,
+ OTDOAInformationResponse,
+ OTDOAInformationFailure,
+ UTDOAInformationRequest,
+ UTDOAInformationResponse,
+ UTDOAInformationFailure,
+ UTDOAInformationUpdate
+
+
+FROM LPPA-PDU-Contents
+
+ id-errorIndication,
+ id-privateMessage,
+ id-e-CIDMeasurementInitiation,
+ id-e-CIDMeasurementFailureIndication,
+ id-e-CIDMeasurementReport,
+ id-e-CIDMeasurementTermination,
+ id-oTDOAInformationExchange,
+ id-uTDOAInformationExchange,
+ id-uTDOAInformationUpdate
+
+
+FROM LPPA-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+LPPA-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
+--
+-- **************************************************************
+
+LPPA-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode LPPA-ELEMENTARY-PROCEDURE.&procedureCode ({LPPA-ELEMENTARY-PROCEDURES}),
+ criticality LPPA-ELEMENTARY-PROCEDURE.&criticality ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ lppatransactionID LPPATransactionID,
+ value LPPA-ELEMENTARY-PROCEDURE.&InitiatingMessage ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode LPPA-ELEMENTARY-PROCEDURE.&procedureCode ({LPPA-ELEMENTARY-PROCEDURES}),
+ criticality LPPA-ELEMENTARY-PROCEDURE.&criticality ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ lppatransactionID LPPATransactionID,
+ value LPPA-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode LPPA-ELEMENTARY-PROCEDURE.&procedureCode ({LPPA-ELEMENTARY-PROCEDURES}),
+ criticality LPPA-ELEMENTARY-PROCEDURE.&criticality ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ lppatransactionID LPPATransactionID,
+ value LPPA-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+LPPA-ELEMENTARY-PROCEDURES LPPA-ELEMENTARY-PROCEDURE ::= {
+ LPPA-ELEMENTARY-PROCEDURES-CLASS-1 |
+ LPPA-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+LPPA-ELEMENTARY-PROCEDURES-CLASS-1 LPPA-ELEMENTARY-PROCEDURE ::= {
+ e-CIDMeasurementInitiation |
+ oTDOAInformationExchange ,
+ ...,
+ uTDOAInformationExchange
+}
+
+LPPA-ELEMENTARY-PROCEDURES-CLASS-2 LPPA-ELEMENTARY-PROCEDURE ::= {
+ e-CIDMeasurementFailureIndication |
+ e-CIDMeasurementReport |
+ e-CIDMeasurementTermination |
+ errorIndication |
+ privateMessage ,
+ ...,
+ uTDOAInformationUpdate
+}
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+e-CIDMeasurementInitiation LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-CIDMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME E-CIDMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME E-CIDMeasurementInitiationFailure
+ PROCEDURE CODE id-e-CIDMeasurementInitiation
+ CRITICALITY reject
+}
+
+e-CIDMeasurementFailureIndication LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-CIDMeasurementFailureIndication
+ PROCEDURE CODE id-e-CIDMeasurementFailureIndication
+ CRITICALITY ignore
+}
+
+e-CIDMeasurementReport LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-CIDMeasurementReport
+ PROCEDURE CODE id-e-CIDMeasurementReport
+ CRITICALITY ignore
+}
+
+e-CIDMeasurementTermination LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-CIDMeasurementTerminationCommand
+ PROCEDURE CODE id-e-CIDMeasurementTermination
+ CRITICALITY reject
+}
+
+oTDOAInformationExchange LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OTDOAInformationRequest
+ SUCCESSFUL OUTCOME OTDOAInformationResponse
+ UNSUCCESSFUL OUTCOME OTDOAInformationFailure
+ PROCEDURE CODE id-oTDOAInformationExchange
+ CRITICALITY reject
+}
+
+uTDOAInformationExchange LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UTDOAInformationRequest
+ SUCCESSFUL OUTCOME UTDOAInformationResponse
+ UNSUCCESSFUL OUTCOME UTDOAInformationFailure
+ PROCEDURE CODE id-uTDOAInformationExchange
+ CRITICALITY reject
+}
+
+uTDOAInformationUpdate LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UTDOAInformationUpdate
+ PROCEDURE CODE id-uTDOAInformationUpdate
+ CRITICALITY ignore
+}
+
+errorIndication LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-errorIndication
+ CRITICALITY ignore
+}
+
+
+privateMessage LPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+END
diff --git a/epan/dissectors/asn1/lppa/LPPA-InformationElement.asn b/epan/dissectors/asn1/lppa/LPPA-InformationElement.asn
new file mode 100644
index 0000000000..98738e1828
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/LPPA-InformationElement.asn
@@ -0,0 +1,417 @@
+-- 3GPP TS 36.455 V11.3.0 (2013-06)
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+LPPA-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lppa (6) version1 (1) lppa-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ id-MeasurementQuantities-Item,
+ maxCellineNB,
+ maxCellReport,
+ maxNrOfErrors,
+ maxNoMeas,
+ maxnoOTDOAtypes,
+ maxServCell
+
+FROM LPPA-Constants
+
+ Criticality,
+ LPPATransactionID,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+
+FROM LPPA-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-Single-Container{},
+
+ LPPA-PROTOCOL-EXTENSION,
+ LPPA-PROTOCOL-IES
+FROM LPPA-Containers;
+
+-- A
+-- B
+
+-- C
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ 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 {
+ unspecified,
+ requested-item-not-supported,
+ requested-item-temporarily-not-available,
+ ...
+
+}
+
+CPLength ::= ENUMERATED {
+ normal,
+ extended,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ lppatransactionID LPPATransactionID OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+CriticalityDiagnostics-ExtIEs LPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-List-ExtIEs LPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- D
+-- E
+
+E-CID-MeasurementResult ::= SEQUENCE {
+ servingCell-ID ECGI,
+ servingCellTAC TAC,
+ e-UTRANAccessPointPosition E-UTRANAccessPointPosition OPTIONAL,
+ measuredResults MeasuredResults OPTIONAL,
+ ...
+}
+
+ECGI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ eUTRANcellIdentifier EUTRANCellIdentifier,
+ iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ECGI-ExtIEs LPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
+
+EARFCN ::= INTEGER (0..65535, ..., 65536..262143)
+
+E-UTRANAccessPointPosition ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ uncertaintySemi-major INTEGER (0..127),
+ uncertaintySemi-minor INTEGER (0..127),
+ orientationOfMajorAxis INTEGER (0..179),
+ uncertaintyAltitude INTEGER (0..127),
+ confidence INTEGER (0..100),
+ ...
+}
+
+-- F
+-- G
+-- H
+-- I
+-- J
+-- K
+-- L
+-- M
+
+Measurement-ID ::= INTEGER (1..15, ...)
+
+MeasurementPeriodicity ::= ENUMERATED {
+ ms120,
+ ms240,
+ ms480,
+ ms640,
+ ms1024,
+ ms2048,
+ ms5120,
+ ms10240,
+ min1,
+ min6,
+ min12,
+ min30,
+ min60,
+ ...
+}
+
+MeasurementQuantities ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF ProtocolIE-Single-Container { {MeasurementQuantities-ItemIEs} }
+
+MeasurementQuantities-ItemIEs LPPA-PROTOCOL-IES ::= {
+ { ID id-MeasurementQuantities-Item CRITICALITY reject TYPE MeasurementQuantities-Item PRESENCE mandatory}
+}
+
+MeasurementQuantities-Item ::= SEQUENCE {
+ measurementQuantitiesValue MeasurementQuantitiesValue,
+ iE-Extensions ProtocolExtensionContainer { { MeasurementQuantitiesValue-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MeasurementQuantitiesValue-ExtIEs LPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MeasurementQuantitiesValue ::= ENUMERATED {
+ cell-ID,
+ angleOfArrival,
+ timingAdvanceType1,
+ timingAdvanceType2,
+ rSRP,
+ rSRQ,
+ ...
+}
+
+MeasuredResults ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF MeasuredResultsValue
+
+
+MeasuredResultsValue ::= CHOICE {
+ valueAngleOfArrival INTEGER (0..719),
+ valueTimingAdvanceType1 INTEGER (0..7690),
+ valueTimingAdvanceType2 INTEGER (0..7690),
+ resultRSRP ResultRSRP,
+ resultRSRQ ResultRSRQ,
+ ...
+}
+
+-- N
+
+NumberOfAntennaPorts ::= ENUMERATED {
+ n1-or-n2,
+ n4,
+ ...
+}
+
+NumberOfDlFrames ::= ENUMERATED {
+ sf1,
+ sf2,
+ sf4,
+ sf6,
+ ...
+}
+
+-- O
+
+OTDOACells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE {
+ oTDOACellInfo OTDOACell-Information,
+ iE-Extensions ProtocolExtensionContainer { {OTDOACells-ExtIEs} } OPTIONAL,
+ ...
+}
+
+OTDOACells-ExtIEs LPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+OTDOACell-Information ::= SEQUENCE (SIZE (1..maxnoOTDOAtypes)) OF OTDOACell-Information-Item
+
+OTDOACell-Information-Item ::= CHOICE {
+ pCI PCI,
+ cellId ECGI,
+ tAC TAC,
+ eARFCN EARFCN,
+ pRS-Bandwidth PRS-Bandwidth,
+ pRS-ConfigurationIndex PRS-Configuration-Index,
+ cPLength CPLength,
+ numberOfDlFrames NumberOfDlFrames,
+ numberOfAntennaPorts NumberOfAntennaPorts,
+ sFNInitialisationTime SFNInitialisationTime,
+ e-UTRANAccessPointPosition E-UTRANAccessPointPosition,
+ ...,
+ pRSMutingConfiguration PRSMutingConfiguration
+}
+
+OTDOA-Information-Item ::= ENUMERATED {
+ pci,
+ cellid,
+ tac,
+ earfcn,
+ prsBandwidth,
+ prsConfigIndex,
+ cpLength,
+ noDlFrames,
+ noAntennaPorts,
+ sFNInitTime,
+ ...,
+ e-UTRANAccessPointPosition,
+ prsmutingconfiguration
+}
+
+-- P
+
+PCI ::= INTEGER (0..503, ...)
+
+PLMN-Identity ::= OCTET STRING (SIZE(3))
+
+PRS-Bandwidth ::= ENUMERATED {
+ bw6,
+ bw15,
+ bw25,
+ bw50,
+ bw75,
+ bw100,
+ ...
+}
+
+PRS-Configuration-Index ::= INTEGER (0..4095, ...)
+
+PRSMutingConfiguration ::= CHOICE {
+ two BIT STRING (SIZE (2)),
+ four BIT STRING (SIZE (4)),
+ eight BIT STRING (SIZE (8)),
+ sixteen BIT STRING (SIZE (16)),
+ ...
+}
+
+
+-- Q
+-- R
+
+ReportCharacteristics ::= ENUMERATED {
+ onDemand,
+ periodic,
+ ...
+}
+
+RequestedSRSTransmissionCharacteristics ::= SEQUENCE {
+ numberOfTransmissions INTEGER (0..500, ...),
+ bandwidth INTEGER (1..100, ...),
+ ...
+}
+
+ResultRSRP ::= SEQUENCE (SIZE (1.. maxCellReport)) OF ResultRSRP-Item
+
+ResultRSRP-Item ::= SEQUENCE {
+ pCI PCI,
+ eARFCN EARFCN,
+ eCGI ECGI OPTIONAL,
+ valueRSRP ValueRSRP,
+ iE-Extensions ProtocolExtensionContainer { { ResultRSRP-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResultRSRP-Item-ExtIEs LPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResultRSRQ ::= SEQUENCE (SIZE (1.. maxCellReport)) OF ResultRSRQ-Item
+
+ResultRSRQ-Item ::= SEQUENCE {
+ pCI PCI,
+ eARFCN EARFCN,
+ eCGI ECGI OPTIONAL,
+ valueRSRQ ValueRSRQ,
+ iE-Extensions ProtocolExtensionContainer { { ResultRSRQ-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResultRSRQ-Item-ExtIEs LPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- S
+
+SFNInitialisationTime ::= BIT STRING (SIZE (64))
+
+SRSConfigurationForAllCells ::= SEQUENCE (SIZE (1.. maxServCell)) OF SRSConfigurationForOneCell
+
+SRSConfigurationForOneCell ::= SEQUENCE {
+ pci PCI,
+ ul-earfcn EARFCN,
+ ul-bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100},
+ ul-cyclicPrefixLength CPLength,
+ srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7},
+ srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3},
+ srs-AntennaPort ENUMERATED {an1, an2, an4, ...},
+ srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3},
+ srs-cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7},
+ srs-ConfigIndex INTEGER (0..1023),
+ maxUpPts ENUMERATED {true} OPTIONAL, -- Cond ifTDD
+ transmissionComb INTEGER (0..1),
+ freqDomainPosition INTEGER (0..23),
+ groupHoppingEnabled BOOLEAN,
+ deltaSS INTEGER (0..29) OPTIONAL,
+ sfnInitialisationTime SFNInitialisationTime,
+ ...
+}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE(2))
+
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+
+
+-- U
+
+ULConfiguration ::= SEQUENCE {
+ pci PCI,
+ ul-earfcn EARFCN,
+ timingAdvanceType1 INTEGER (0..7690) OPTIONAL,
+ timingAdvanceType2 INTEGER (0..7690) OPTIONAL,
+ numberOfTransmissions INTEGER (0..500,...),
+ srsConfiguration SRSConfigurationForAllCells,
+ ...
+}
+
+-- V
+
+ValueRSRP ::= INTEGER (0..97, ...)
+
+ValueRSRQ ::= INTEGER (0..34, ...)
+
+-- W
+-- X
+-- Y
+-- Z
+
+END
diff --git a/epan/dissectors/asn1/lppa/LPPA-PDU.asn b/epan/dissectors/asn1/lppa/LPPA-PDU.asn
new file mode 100644
index 0000000000..03d27bcc0b
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/LPPA-PDU.asn
@@ -0,0 +1,359 @@
+-- 3GPP TS 36.455 V11.3.0 (2013-06)
+--
+
+-- **************************************************************
+--
+-- PDU definitions for LPPa.
+--
+-- **************************************************************
+
+LPPA-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) lppa (6) version1 (1) lppa-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+
+ Cause,
+ CriticalityDiagnostics,
+ E-CID-MeasurementResult,
+ OTDOACells,
+ OTDOA-Information-Item,
+ Measurement-ID,
+ MeasurementPeriodicity,
+ MeasurementQuantities,
+ ReportCharacteristics,
+ RequestedSRSTransmissionCharacteristics,
+ ULConfiguration
+
+FROM LPPA-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-Single-Container{},
+ LPPA-PRIVATE-IES,
+ LPPA-PROTOCOL-EXTENSION,
+ LPPA-PROTOCOL-IES,
+ LPPA-PROTOCOL-IES-PAIR
+FROM LPPA-Containers
+
+
+ maxnoOTDOAtypes,
+ id-Cause,
+ id-CriticalityDiagnostics,
+ id-E-SMLC-UE-Measurement-ID,
+ id-OTDOACells,
+ id-OTDOA-Information-Type-Group,
+ id-OTDOA-Information-Type-Item,
+ id-ReportCharacteristics,
+ id-MeasurementPeriodicity,
+ id-MeasurementQuantities,
+ id-eNB-UE-Measurement-ID,
+ id-E-CID-MeasurementResult,
+ id-RequestedSRSTransmissionCharacteristics,
+ id-ULConfiguration
+
+
+FROM LPPA-Constants;
+
+-- **************************************************************
+--
+-- E-CID MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+E-CIDMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationRequest-IEs}},
+ ...
+}
+
+E-CIDMeasurementInitiationRequest-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory}|
+ { ID id-MeasurementPeriodicity CRITICALITY reject TYPE MeasurementPeriodicity PRESENCE conditional}|
+-- The IE shall be present if the Report Characteritics IE is set to periodic --
+ { ID id-MeasurementQuantities CRITICALITY reject TYPE MeasurementQuantities PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-CID MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+E-CIDMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationResponse-IEs}},
+ ...
+}
+
+E-CIDMeasurementInitiationResponse-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-E-CID-MeasurementResult CRITICALITY ignore TYPE E-CID-MeasurementResult PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-CID MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+E-CIDMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationFailure-IEs}},
+ ...
+}
+
+
+E-CIDMeasurementInitiationFailure-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-CID MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+E-CIDMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{E-CIDMeasurementFailureIndication-IEs}},
+ ...
+}
+
+
+E-CIDMeasurementFailureIndication-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- E-CID MEASUREMENT REPORT
+--
+-- **************************************************************
+
+E-CIDMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{E-CIDMeasurementReport-IEs}},
+ ...
+}
+
+
+E-CIDMeasurementReport-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-E-CID-MeasurementResult CRITICALITY ignore TYPE E-CID-MeasurementResult PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- E-CID MEASUREMENT TERMINATION
+--
+-- **************************************************************
+
+E-CIDMeasurementTerminationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{E-CIDMeasurementTerminationCommand-IEs}},
+ ...
+}
+
+
+E-CIDMeasurementTerminationCommand-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- OTDOA INFORMATION REQUEST
+--
+-- **************************************************************
+
+OTDOAInformationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{OTDOAInformationRequest-IEs}},
+ ...
+}
+
+OTDOAInformationRequest-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-OTDOA-Information-Type-Group CRITICALITY reject TYPE OTDOA-Information-Type PRESENCE mandatory},
+ ...
+}
+
+OTDOA-Information-Type ::= SEQUENCE (SIZE(1..maxnoOTDOAtypes)) OF ProtocolIE-Single-Container { { OTDOA-Information-TypeIEs} }
+
+OTDOA-Information-TypeIEs LPPA-PROTOCOL-IES ::= {
+ { ID id-OTDOA-Information-Type-Item CRITICALITY reject TYPE OTDOA-Information-Type-Item PRESENCE mandatory},
+ ...
+}
+
+OTDOA-Information-Type-Item ::= SEQUENCE {
+ oTDOA-Information-Type-Item OTDOA-Information-Item,
+ iE-Extensions ProtocolExtensionContainer { { OTDOA-Information-Type-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+OTDOA-Information-Type-ItemExtIEs LPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- OTDOA INFORMATION RESPONSE
+--
+-- **************************************************************
+
+OTDOAInformationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{OTDOAInformationResponse-IEs}},
+ ...
+}
+
+OTDOAInformationResponse-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-OTDOACells CRITICALITY ignore TYPE OTDOACells PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- OTDOA INFORMATION FAILURE
+--
+-- **************************************************************
+
+OTDOAInformationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{OTDOAInformationFailure-IEs}},
+ ...
+}
+
+
+OTDOAInformationFailure-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UTDOA INFORMATION REQUEST
+--
+-- **************************************************************
+
+UTDOAInformationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UTDOAInformationRequest-IEs}},
+ ...
+}
+
+UTDOAInformationRequest-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-RequestedSRSTransmissionCharacteristics CRITICALITY ignore TYPE RequestedSRSTransmissionCharacteristics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UTDOA INFORMATION RESPONSE
+--
+-- **************************************************************
+
+UTDOAInformationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UTDOAInformationResponse-IEs}},
+ ...
+}
+
+UTDOAInformationResponse-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-ULConfiguration CRITICALITY reject TYPE ULConfiguration PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UTDOA INFORMATION FAILURE
+--
+-- **************************************************************
+
+UTDOAInformationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UTDOAInformationFailure-IEs}},
+ ...
+}
+
+
+UTDOAInformationFailure-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UTDOA INFORMATION UPDATE
+--
+-- **************************************************************
+
+UTDOAInformationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UTDOAInformationUpdate-IEs}},
+ ...
+}
+
+UTDOAInformationUpdate-IEs LPPA-PROTOCOL-IES ::= {
+ { ID id-ULConfiguration CRITICALITY ignore TYPE ULConfiguration PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ ...
+}
+
+ErrorIndication-IEs LPPA-PROTOCOL-IES ::= {
+
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs LPPA-PRIVATE-IES ::= {
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/lppa/Makefile.am b/epan/dissectors/asn1/lppa/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/lppa/Makefile.common b/epan/dissectors/asn1/lppa/Makefile.common
new file mode 100644
index 0000000000..63f8a729ef
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = lppa
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ LPPA-Common.asn \
+ LPPA-Constant.asn \
+ LPPA-Container.asn \
+ LPPA-ElementaryProcedure.asn \
+ LPPA-InformationElement.asn \
+ LPPA-PDU.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/lppa/Makefile.nmake b/epan/dissectors/asn1/lppa/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/lppa/lppa.cnf b/epan/dissectors/asn1/lppa/lppa.cnf
new file mode 100644
index 0000000000..bea26c30e2
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/lppa.cnf
@@ -0,0 +1,124 @@
+# lppa.cnf
+# llpa conformation file
+# Copyright 2011 Pascal Quantin
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.OMIT_ASSIGNMENT
+Presence
+ProtocolIE-ContainerList
+ProtocolIE-ContainerPairList
+ProtocolIE-ContainerPair
+ProtocolIE-FieldPair
+
+#.PDU
+LPPA-PDU
+
+#.TYPE_RENAME
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+ProtocolIE-Field/value ie_field_value
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lppa_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+#.END
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, lppa_ProcedureCode_vals,
+ "unknown message"));
+#.END
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#.FN_HDR LPPA-PDU
+
+ proto_tree_add_item(tree, proto_lppa, tvb, 0, -1, ENC_NA);
+
+ col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "LPPa");
+#.END
+
+#.TYPE_ATTR
+# ProcedureCode
+id-errorIndication ProcedureCode
+id-privateMessage ProcedureCode
+id-e-CIDMeasurementInitiation ProcedureCode
+id-e-CIDMeasurementFailureIndication ProcedureCode
+id-e-CIDMeasurementReport ProcedureCode
+id-e-CIDMeasurementTermination ProcedureCode
+id-oTDOAInformationExchange ProcedureCode
+id-uTDOAInformationExchange ProcedureCode
+id-uTDOAInformationUpdate ProcedureCode
+
+# ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-E-SMLC-UE-Measurement-ID ProtocolIE-ID
+id-ReportCharacteristics ProtocolIE-ID
+id-MeasurementPeriodicity ProtocolIE-ID
+id-MeasurementQuantities ProtocolIE-ID
+id-eNB-UE-Measurement-ID ProtocolIE-ID
+id-E-CID-MeasurementResult ProtocolIE-ID
+id-OTDOACells ProtocolIE-ID
+id-OTDOA-Information-Type-Group ProtocolIE-ID
+id-OTDOA-Information-Type-Item ProtocolIE-ID
+id-MeasurementQuantities-Item ProtocolIE-ID
+id-RequestedSRSTransmissionCharacteristics ProtocolIE-ID
+id-ULConfiguration ProtocolIE-ID
+#.REGISTER
+
+#LPPA-PROTOCOL-IES
+MeasurementQuantities-Item N lppa.ies id-MeasurementQuantities-Item
+ReportCharacteristics N lppa.ies id-ReportCharacteristics
+MeasurementPeriodicity N lppa.ies id-MeasurementPeriodicity
+MeasurementQuantities N lppa.ies id-MeasurementQuantities
+E-CID-MeasurementResult N lppa.ies id-E-CID-MeasurementResult
+OTDOA-Information-Type N lppa.ies id-OTDOA-Information-Type-Group
+OTDOA-Information-Type-Item N lppa.ies id-OTDOA-Information-Type-Item
+OTDOACells N lppa.ies id-OTDOACells
+Cause N lppa.ies id-Cause
+CriticalityDiagnostics N lppa.ies id-CriticalityDiagnostics
+Measurement-ID N lppa.ies id-E-SMLC-UE-Measurement-ID
+Measurement-ID N lppa.ies id-eNB-UE-Measurement-ID
+RequestedSRSTransmissionCharacteristics N lppa.ies id-RequestedSRSTransmissionCharacteristics
+ULConfiguration N lppa.ies id-ULConfiguration
+
+#LPPA-ELEMENTARY-PROCEDURE
+E-CIDMeasurementInitiationRequest N lppa.proc.imsg id-e-CIDMeasurementInitiation
+E-CIDMeasurementInitiationResponse N lppa.proc.sout id-e-CIDMeasurementInitiation
+E-CIDMeasurementInitiationFailure N lppa.proc.uout id-e-CIDMeasurementInitiation
+E-CIDMeasurementFailureIndication N lppa.proc.imsg id-e-CIDMeasurementFailureIndication
+E-CIDMeasurementReport N lppa.proc.imsg id-e-CIDMeasurementReport
+E-CIDMeasurementTerminationCommand N lppa.proc.imsg id-e-CIDMeasurementTermination
+OTDOAInformationRequest N lppa.proc.imsg id-oTDOAInformationExchange
+OTDOAInformationResponse N lppa.proc.sout id-oTDOAInformationExchange
+OTDOAInformationFailure N lppa.proc.uout id-oTDOAInformationExchange
+ErrorIndication N lppa.proc.imsg id-errorIndication
+PrivateMessage N lppa.proc.imsg id-privateMessage
+UTDOAInformationRequest N lppa.proc.imsg id-uTDOAInformationExchange
+UTDOAInformationResponse N lppa.proc.sout id-uTDOAInformationExchange
+UTDOAInformationFailure N lppa.proc.uout id-uTDOAInformationExchange
+UTDOAInformationUpdate N lppa.proc.imsg id-uTDOAInformationUpdate
diff --git a/epan/dissectors/asn1/lppa/packet-lppa-template.c b/epan/dissectors/asn1/lppa/packet-lppa-template.c
new file mode 100644
index 0000000000..23bce0b983
--- /dev/null
+++ b/epan/dissectors/asn1/lppa/packet-lppa-template.c
@@ -0,0 +1,125 @@
+/* packet-lppa.c
+ * Routines for 3GPP LTE Positioning Protocol A (LLPa) packet dissection
+ * Copyright 2011, Pascal Quantin <pascal.quantin@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref 3GPP TS 36.455 version 11.3.0 Release 11
+ * http://www.3gpp.org
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+
+#define PNAME "LTE Positioning Protocol A (LPPa)"
+#define PSNAME "LPPa"
+#define PFNAME "lppa"
+
+void proto_register_lppa(void);
+void proto_reg_handoff_lppa(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_lppa = -1;
+
+#include "packet-lppa-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_lppa = -1;
+#include "packet-lppa-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+
+/* Dissector tables */
+static dissector_table_t lppa_ies_dissector_table;
+static dissector_table_t lppa_proc_imsg_dissector_table;
+static dissector_table_t lppa_proc_sout_dissector_table;
+static dissector_table_t lppa_proc_uout_dissector_table;
+
+/* Include constants */
+#include "packet-lppa-val.h"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+#include "packet-lppa-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lppa_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lppa_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lppa_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(lppa_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+/*--- proto_register_lppa -------------------------------------------*/
+void proto_register_lppa(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-lppa-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_lppa,
+#include "packet-lppa-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_lppa = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("lppa", dissect_LPPA_PDU_PDU, proto_lppa);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_lppa, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector tables */
+ lppa_ies_dissector_table = register_dissector_table("lppa.ies", "LPPA-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ lppa_proc_imsg_dissector_table = register_dissector_table("lppa.proc.imsg", "LPPA-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ lppa_proc_sout_dissector_table = register_dissector_table("lppa.proc.sout", "LPPA-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ lppa_proc_uout_dissector_table = register_dissector_table("lppa.proc.uout", "LPPA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+}
+
+/*--- proto_reg_handoff_lppa ---------------------------------------*/
+void
+proto_reg_handoff_lppa(void)
+{
+#include "packet-lppa-dis-tab.c"
+}
diff --git a/epan/dissectors/asn1/lppe/CMakeLists.txt b/epan/dissectors/asn1/lppe/CMakeLists.txt
new file mode 100644
index 0000000000..a28caeb62b
--- /dev/null
+++ b/epan/dissectors/asn1/lppe/CMakeLists.txt
@@ -0,0 +1,51 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME lppe )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ LPPe.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../lpp/lpp-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/lppe/LPPe.asn b/epan/dissectors/asn1/lppe/LPPe.asn
new file mode 100644
index 0000000000..d5177832ab
--- /dev/null
+++ b/epan/dissectors/asn1/lppe/LPPe.asn
@@ -0,0 +1,4611 @@
+-- Open Mobile Alliance OMA-TS-LPPe V1_1-20140108-C
+--
+OMA-LPPE DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- asn2wrs does not seem to import integer constants (maxFreqLayers)
+--IMPORTS GNSS-ID, GNSS-SignalID, GNSS-SignalIDs, GNSS-SystemTime, SV-ID,
+--ECID-SignalMeasurementInformation, CellGlobalIdGERAN, CellGlobalIdEUTRA-AndUTRA,
+--OTDOA-ReferenceCellInfo, OTDOA-NeighbourCellInfoElement, maxFreqLayers, ARFCN-ValueEUTRA,
+--Ellipsoid-Point, EllipsoidPointWithAltitude, EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
+--NetworkTime, GNSS-ID-Bitmap, ARFCN-ValueUTRA, GNSS-ReferenceTime, LPP-Message,
+--Ellipsoid-PointWithUncertaintyCircle, EllipsoidPointWithUncertaintyEllipse, EllipsoidArc, Polygon
+--FROM LPP-PDU-Definitions;
+IMPORTS GNSS-ID, GNSS-SignalID, GNSS-SignalIDs, GNSS-SystemTime, SV-ID,
+ECID-SignalMeasurementInformation, CellGlobalIdGERAN, CellGlobalIdEUTRA-AndUTRA,
+OTDOA-ReferenceCellInfo, OTDOA-NeighbourCellInfoElement, ARFCN-ValueEUTRA,
+Ellipsoid-Point, EllipsoidPointWithAltitude, EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
+NetworkTime, GNSS-ID-Bitmap, ARFCN-ValueUTRA, GNSS-ReferenceTime, LPP-Message,
+Ellipsoid-PointWithUncertaintyCircle, EllipsoidPointWithUncertaintyEllipse, EllipsoidArc, Polygon
+FROM LPP-PDU-Definitions;
+
+
+OMA-LPPe-MessageExtension ::= SEQUENCE {
+ lppeCompatibilityLevel OMA-LPPe-LPPeCompatibilityLevel,
+ lppeVersion OMA-LPPe-LPPeVersion,
+ lppeMode OMA-LPPe-LPPeMode,
+ messageExtensionBody OMA-LPPe-MessageExtensionBody,
+ ...
+}
+
+OMA-LPPe-LPPeCompatibilityLevel ::= INTEGER (0..15)
+
+OMA-LPPe-LPPeVersion ::= SEQUENCE {
+ majorVersion INTEGER(0..255),
+ minorVersion INTEGER(0..255)
+}
+
+OMA-LPPe-LPPeMode ::= ENUMERATED {
+ normal,
+ reversed,
+ ...
+}
+
+
+OMA-LPPe-MessageExtensionBody ::= CHOICE {
+ requestCapabilities OMA-LPPe-RequestCapabilities,
+ --Shall only be used in the EPDU in LPP RequestCapabilities
+ provideCapabilities OMA-LPPe-ProvideCapabilities,
+ --Shall only be used in the EPDU in LPP ProvideCapabilities
+ requestAssistanceData OMA-LPPe-RequestAssistanceData,
+ --Shall only be used in the EPDU in LPP RequestAssistanceData
+ provideAssistanceData OMA-LPPe-ProvideAssistanceData,
+ --Shall only be used in the EPDU in LPP ProvideAssistanceData
+ requestLocationInformation OMA-LPPe-RequestLocationInformation,
+ --Shall only be used in the EPDU in LPP RequestLocationInformation
+ provideLocationInformation OMA-LPPe-ProvideLocationInformation,
+ --Shall only be used in the EPDU in LPP ProvideLocationInformation
+ error OMA-LPPe-Error, --Shall only be used in the EPDU in LPP Error
+ abort OMA-LPPe-Abort, --Shall only be used in the EPDU in LPP Abort
+ ...
+}
+
+
+OMA-LPPe-ver1-1-BroadcastContainer ::= SEQUENCE {
+ digitalSignature OMA-LPPe-ver1-1-DigitalSignature OPTIONAL,
+ messageContents OCTET STRING,
+ ...
+}
+-- the messageContents octet string contains the encoded content of data type OMA-LPPe-ver1-1-BroadcastMessage
+
+OMA-LPPe-ver1-1-BroadcastMessage ::= SEQUENCE {
+ broadcastControlIEs OMA-LPPe-ver1-1-BroadcastControlIEs,
+ cipheringIEs OMA-LPPe-ver1-1-CipheringIEs OPTIONAL,
+ broadcastMessage OCTET STRING,
+ ...
+}
+-- broadcastMessage contains an unciphered LPP-Message as defined in [LPP] or a ciphered LPP-Message
+
+OMA-LPPe-ver1-1-BroadcastControlIEs ::= SEQUENCE {
+ serverID OMA-LPPe-ver1-1-ServerID,
+ messageID OCTET STRING (SIZE (4)) OPTIONAL,
+ validity-time OMA-LPPe-ValidityPeriod OPTIONAL, --Cond DigitalSignature
+ validity-area OMA-LPPe-ValidityArea OPTIONAL,
+ broadcastADTypes OMA-LPPe-ver1-1-BroadcastADTypes OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ver1-1-CipheringIEs ::= SEQUENCE {
+ cipherSetID OMA-LPPe-ver1-1-CipherSetID,
+ d0 BIT STRING (SIZE (1..128)),
+ ...
+}
+
+OMA-LPPe-ver1-1-DigitalSignature ::= SEQUENCE {
+ authenticationSetID OMA-LPPe-ver1-1-AuthenticationSetID,
+ signature BIT STRING (SIZE (2048)),
+ ...
+}
+
+
+OMA-LPPe-RequestCapabilities ::= SEQUENCE {
+ commonIEsRequestCapabilities OMA-LPPe-CommonIEsRequestCapabilities OPTIONAL,
+ agnss-RequestCapabilities OMA-LPPe-AGNSS-RequestCapabilities OPTIONAL,
+ otdoa-RequestCapabilities OMA-LPPe-OTDOA-RequestCapabilities OPTIONAL,
+ eotd-RequestCapabilities OMA-LPPe-EOTD-RequestCapabilities OPTIONAL,
+ otdoa-utra-RequestCapabilities OMA-LPPe-OTDOA-UTRA-RequestCapabilities OPTIONAL,
+ ecid-lte-RequestCapabilities OMA-LPPe-ECID-LTE-RequestCapabilities OPTIONAL,
+ ecid-gsm-RequestCapabilities OMA-LPPe-ECID-GSM-RequestCapabilities OPTIONAL,
+ ecid-utra-RequestCapabilities OMA-LPPe-ECID-UTRA-RequestCapabilities OPTIONAL,
+ wlan-ap-RequestCapabilities OMA-LPPe-WLAN-AP-RequestCapabilities OPTIONAL,
+ ecid-wimax-RequestCapabilities OMA-LPPe-ECID-WiMax-RequestCapabilities OPTIONAL,
+ sensor-RequestCapabilities OMA-LPPe-Sensor-RequestCapabilities OPTIONAL,
+ srn-RequestCapabilities OMA-LPPe-SRN-RequestCapabilities OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ProvideCapabilities::= SEQUENCE {
+ commonIEsProvideCapabilities OMA-LPPe-CommonIEsProvideCapabilities OPTIONAL,
+ agnss-ProvideCapabilities OMA-LPPe-AGNSS-ProvideCapabilities OPTIONAL,
+ otdoa-ProvideCapabilities OMA-LPPe-OTDOA-ProvideCapabilities OPTIONAL,
+ eotd-ProvideCapabilities OMA-LPPe-EOTD-ProvideCapabilities OPTIONAL,
+ otdoa-utra-ProvideCapabilities OMA-LPPe-OTDOA-UTRA-ProvideCapabilities OPTIONAL,
+ ecid-lte-ProvideCapabilities OMA-LPPe-ECID-LTE-ProvideCapabilities OPTIONAL,
+ ecid-gsm-ProvideCapabilities OMA-LPPe-ECID-GSM-ProvideCapabilities OPTIONAL,
+ ecid-utra-ProvideCapabilities OMA-LPPe-ECID-UTRA-ProvideCapabilities OPTIONAL,
+ wlan-ap-ProvideCapabilities OMA-LPPe-WLAN-AP-ProvideCapabilities OPTIONAL,
+ ecid-wimax-ProvideCapabilities OMA-LPPe-ECID-WiMax-ProvideCapabilities OPTIONAL,
+ sensor-ProvideCapabilities OMA-LPPe-Sensor-ProvideCapabilities OPTIONAL,
+ srn-ProvideCapabilities OMA-LPPe-SRN-ProvideCapabilities OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-RequestAssistanceData ::= SEQUENCE {
+ commonIEsRequestAssistanceData OMA-LPPe-CommonIEsRequestAssistanceData OPTIONAL,
+ agnss-RequestAssistanceData OMA-LPPe-AGNSS-RequestAssistanceData OPTIONAL,
+ otdoa-RequestAssistanceData OMA-LPPe-OTDOA-RequestAssistanceData OPTIONAL,
+ eotd-RequestAssistanceData OMA-LPPe-EOTD-RequestAssistanceData OPTIONAL,
+ otdoa-utra-RequestAssistanceData OMA-LPPe-OTDOA-UTRA-RequestAssistanceData OPTIONAL,
+ ecid-lte-RequestAssistanceData OMA-LPPe-ECID-LTE-RequestAssistanceData OPTIONAL,
+ ecid-gsm-RequestAssistanceData OMA-LPPe-ECID-GSM-RequestAssistanceData OPTIONAL,
+ ecid-utra-RequestAssistanceData OMA-LPPe-ECID-UTRA-RequestAssistanceData OPTIONAL,
+ wlan-ap-RequestAssistanceData OMA-LPPe-WLAN-AP-RequestAssistanceData OPTIONAL,
+ sensor-RequestAssistanceData OMA-LPPe-Sensor-RequestAssistanceData OPTIONAL,
+ srn-RequestAssistanceData OMA-LPPe-SRN-RequestAssistanceData OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ProvideAssistanceData ::= SEQUENCE {
+ commonIEsProvideAssistanceData OMA-LPPe-CommonIEsProvideAssistanceData OPTIONAL,
+ agnss-ProvideAssistanceData OMA-LPPe-AGNSS-ProvideAssistanceData OPTIONAL,
+ otdoa-ProvideAssistanceData OMA-LPPe-OTDOA-ProvideAssistanceData OPTIONAL,
+ eotd-ProvideAssistanceData OMA-LPPe-EOTD-ProvideAssistanceData OPTIONAL,
+ otdoa-utra-ProvideAssistanceData OMA-LPPe-OTDOA-UTRA-ProvideAssistanceData OPTIONAL,
+ ecid-lte-ProvideAssistanceData OMA-LPPe-ECID-LTE-ProvideAssistanceData OPTIONAL,
+ ecid-gsm-ProvideAssistanceData OMA-LPPe-ECID-GSM-ProvideAssistanceData OPTIONAL,
+ ecid-utra-ProvideAssistanceData OMA-LPPe-ECID-UTRA-ProvideAssistanceData OPTIONAL,
+ wlan-ap-ProvideAssistanceData OMA-LPPe-WLAN-AP-ProvideAssistanceData OPTIONAL,
+ sensor-ProvideAssistanceData OMA-LPPe-Sensor-ProvideAssistanceData OPTIONAL,
+ srn-ProvideAssistanceData OMA-LPPe-SRN-ProvideAssistanceData OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-RequestLocationInformation ::= SEQUENCE {
+ commonIEsRequestLocationInformation OMA-LPPe-CommonIEsRequestLocationInformation OPTIONAL,
+ agnss-RequestLocationInformation OMA-LPPe-AGNSS-RequestLocationInformation OPTIONAL,
+ otdoa-RequestLocationInformation OMA-LPPe-OTDOA-RequestLocationInformation OPTIONAL,
+ eotd-RequestLocationInformation OMA-LPPe-EOTD-RequestLocationInformation OPTIONAL,
+ otdoa-utra-RequestLocationInformation OMA-LPPe-OTDOA-UTRA-RequestLocationInformation OPTIONAL,
+ ecid-lte-RequestLocationInformation OMA-LPPe-ECID-LTE-RequestLocationInformation OPTIONAL,
+ ecid-gsm-RequestLocationInformation OMA-LPPe-ECID-GSM-RequestLocationInformation OPTIONAL,
+ ecid-utra-RequestLocationInformation OMA-LPPe-ECID-UTRA-RequestLocationInformation OPTIONAL,
+ wlan-ap-RequestLocationInformation OMA-LPPe-WLAN-AP-RequestLocationInformation OPTIONAL,
+ ecid-wimax-RequestLocationInformation OMA-LPPe-ECID-WiMax-RequestLocationInformation OPTIONAL,
+ sensor-RequestLocationInformation OMA-LPPe-Sensor-RequestLocationInformation OPTIONAL,
+ srn-RequestLocationInformation OMA-LPPe-SRN-RequestLocationInformation OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ProvideLocationInformation ::= SEQUENCE {
+ commonIEsProvideLocationInformation OMA-LPPe-CommonIEsProvideLocationInformation OPTIONAL,
+ agnss-ProvideLocationInformation OMA-LPPe-AGNSS-ProvideLocationInformation OPTIONAL,
+ otdoa-ProvideLocationInformation OMA-LPPe-OTDOA-ProvideLocationInformation OPTIONAL,
+ eotd-ProvideLocationInformation OMA-LPPe-EOTD-ProvideLocationInformation OPTIONAL,
+ otdoa-utra-ProvideLocationInformation OMA-LPPe-OTDOA-UTRA-ProvideLocationInformation OPTIONAL,
+ ecid-lte-ProvideLocationInformation OMA-LPPe-ECID-LTE-ProvideLocationInformation OPTIONAL,
+ ecid-gsm-ProvideLocationInformation OMA-LPPe-ECID-GSM-ProvideLocationInformation OPTIONAL,
+ ecid-utra-ProvideLocationInformation OMA-LPPe-ECID-UTRA-ProvideLocationInformation OPTIONAL,
+ wlan-ap-ProvideLocationInformastion OMA-LPPe-WLAN-AP-ProvideLocationInformation OPTIONAL,
+ ecid-wimax-ProvideLocationInformastion OMA-LPPe-ECID-WiMax-ProvideLocationInformation OPTIONAL,
+ sensor-ProvideLocationInformation OMA-LPPe-Sensor-ProvideLocationInformation OPTIONAL,
+ srn-ProvideLocationInformation OMA-LPPe-SRN-ProvideLocationInformation OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-Abort ::= SEQUENCE {
+ commonIEsAbort OMA-LPPe-CommonIEsAbort OPTIONAL,
+ agnssAbort OMA-LPPe-AGNSS-Abort OPTIONAL,
+ ...
+}
+
+
+
+OMA-LPPe-Error ::= SEQUENCE {
+ commonIEsError OMA-LPPe-CommonIEsError OPTIONAL,
+ ...
+}
+
+
+
+OMA-LPPe-AssistanceContainer-DataSerialNumber ::= SEQUENCE {
+ dataSerialNumber INTEGER(0..4294967295),
+ ...
+}
+
+
+OMA-LPPe-AssistanceContainerID ::= SEQUENCE {
+ containerID INTEGER (0..65535),
+ ...
+}
+
+
+OMA-LPPe-AssistanceContainerProvideList ::= SEQUENCE (SIZE(1.. maxAssistanceContainerList)) OF
+ OMA-LPPe-AssistanceContainerProvide
+
+maxAssistanceContainerList INTEGER ::= 16
+OMA-LPPe-AssistanceContainerProvide ::= SEQUENCE {
+ dataIdentifier OMA-LPPe-VendorOrOperatorAssistanceDataIdentifier,
+ checkOrUpdateOrError ENUMERATED {
+ targetHasLatestData,
+ targetDataNotLatest,
+ targetDataNotLatestButServerCannotProvideLatestData,
+ targetHasValidData,
+ targetDataInvalidButServerCannotProvideValidData,
+ serverHasRequestedDataButUnableToProvideTemporarily,
+ serverDoesNotHaveRequestedData,
+ serverDoesNotRecognizeRequestedData,
+ undefined,
+ ... } OPTIONAL, --Cond CheckorUpdate
+ dataResult CHOICE {
+ simulationResult INTEGER(0..5000),
+ data OMA-LPPe-AssistanceContainerData,
+ ...
+ } OPTIONAL,
+ errorCode OMA-LPPe-AssistanceContainerProvideError OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AssistanceContainerData ::= SEQUENCE {
+ dataSerialNumber OMA-LPPe-AssistanceContainer-DataSerialNumber OPTIONAL,
+ data OCTET STRING,
+ validityPeriod OMA-LPPe-ValidityPeriod OPTIONAL,
+ validityArea OMA-LPPe-ValidityArea OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AssistanceContainerProvideError ::= SEQUENCE {
+ serverError ENUMERATED { assistanceContainerUnknownDataIdentifier,
+ assistanceContainerUnknownDataSerialNumber,
+ assistanceContainerDataTemporarilyUnavailable,
+ assistanceContainerDataNoLongerSupported,
+ assistanceContainerVendorOrOperatorNotSupported,
+ ...} OPTIONAL,
+ ...
+}
+
+
+
+OMA-LPPe-AssistanceContainerRequestList ::= SEQUENCE (SIZE(1..maxAssistanceContainerList)) OF
+ OMA-LPPe-AssistanceContainerRequest
+
+OMA-LPPe-AssistanceContainerRequest ::= SEQUENCE {
+ dataIdentifier OMA-LPPe-VendorOrOperatorAssistanceDataIdentifier,
+ simulatedReq BOOLEAN,
+ checkOrUpdateReq OMA-LPPe-AssistanceContainerCheckOrUpdateReq OPTIONAL,
+ validityTimeRequest OMA-LPPe-ValidityPeriod OPTIONAL,
+ proprietaryRequestParameters OCTET STRING OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AssistanceContainerCheckOrUpdateReq ::= SEQUENCE {
+ dataSerialNumber OMA-LPPe-AssistanceContainer-DataSerialNumber,
+ checkLatest ENUMERATED {returnLatestIfCurrentNotLatest,
+ returnUpdateOnlyIfCurrentInvalid,
+ ... },
+ ...
+}
+
+
+
+OMA-LPPe-CellLocalIdGERAN ::= SEQUENCE {
+ locationAreaCode BIT STRING (SIZE (16)),
+ cellIdentity BIT STRING (SIZE (16)),
+ ...
+}
+
+
+OMA-LPPe-CellNonUniqueIDGERAN ::= SEQUENCE {
+ bsic INTEGER (0..63),
+ bcch INTEGER (0..1023),
+ ...
+}
+
+
+
+OMA-LPPe-CharArray ::= VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ".-"))(SIZE (1..31))
+
+
+OMA-LPPe-CivicLocation ::= SEQUENCE {
+ countryCode OCTET STRING (SIZE (2)),
+ civicAddressElementList OMA-LPPe-CivicAddressElementList,
+ ...
+}
+
+OMA-LPPe-CivicAddressElementList ::= SEQUENCE (SIZE (1..128)) OF OMA-LPPe-CivicAddressElement
+
+OMA-LPPe-CivicAddressElement ::= SEQUENCE {
+ caType INTEGER(0..511),
+ caValue OCTET STRING (SIZE (1..256)),
+ ...
+}
+
+
+OMA-LPPe-Duration ::= SEQUENCE {
+ duration INTEGER (1..63),
+ durationLSB INTEGER (1..89) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-FixedAccessTypes ::= BIT STRING { cable (0),
+ dsl (1),
+ lan (2),
+ pstn (3),
+ other (4) } (SIZE(1..16))
+
+
+OMA-LPPe-ver1-1-GroundMorphologyModel ::= SEQUENCE {
+ altitudeModel OMA-LPPe-ver1-1-AltitudeModel OPTIONAL,
+ buildingsProfileModel OMA-LPPe-ver1-1-BuildingsHeightModel OPTIONAL,
+ ...
+ }
+
+
+
+OMA-LPPe-ver1-1-AltitudeModel ::= SEQUENCE {
+ northWestCorner Ellipsoid-Point, -- coordinates of North West corner of rectangle
+ northwestCornerAltitude INTEGER (-500..9000), -- altitude of North West corner of rectangle
+ nrows INTEGER (2..1012), -- number of rows along West-East direction
+ ncols INTEGER (2..1012), -- number of columns along North-South direction
+ spanX INTEGER (6..14),
+ spanY INTEGER (6..14),
+ deltaAltUnits INTEGER (1..128), -- units in meter
+ altitudeGrid SEQUENCE SIZE (1..10000) OF DeltaAltitudes,
+ ...
+ }
+
+
+OMA-LPPe-ver1-1-BuildingsHeightModel ::= SEQUENCE {
+ northWestCorner Ellipsoid-Point, -- coordinates of North West corner of rectangle
+ northwestCornerHeigth INTEGER (0..500), -- hight of North West corner of rectangle
+ nrows INTEGER (2..1012), -- number of rows along West-East direction
+ ncols INTEGER (2..1012), -- number of columns along North-South direction
+ spanX INTEGER (6..14),
+ spanY INTEGER (6..14),
+ deltaHeigthUnits INTEGER (1..16), -- units in meter
+ buildingsHeigthGrid SEQUENCE SIZE(1..10000) OF DeltaHeight,
+ ...
+ }
+
+
+DeltaAltitudes ::= SEQUENCE {
+ deltaAlt INTEGER (-15..16), -- in units of deltaAltUnits
+ numGridPoints INTEGER (0..255),
+ ...
+ }
+
+
+DeltaHeight ::= SEQUENCE {
+ deltaHeight INTEGER (-15..16), -- in units of deltaHeightUnits
+ numGridPoints INTEGER (0..255),
+ ...
+ }
+
+
+
+OMA-LPPe-ver1-1-CellGlobalID ::= CHOICE {
+ eUTRA CellGlobalIdEUTRA-AndUTRA,
+ uTRA CellGlobalIdEUTRA-AndUTRA,
+ gSM CellGlobalIdGERAN,
+ ...
+}
+
+
+OMA-LPPe-HighAccuracy3Dposition ::= SEQUENCE {
+ latitude INTEGER(-2147483648..2147483647),
+ longitude INTEGER(-2147483648..2147483647),
+ cep INTEGER(0..255) OPTIONAL, --Cond NoEllipse
+ uncertainty-semimajor INTEGER(0..255) OPTIONAL, --Cond NoCEP
+ uncertainty-semiminor INTEGER(0..255) OPTIONAL, --Cond NoCEP
+ offset-angle INTEGER(0..179) OPTIONAL, --Cond NoCEP
+ confidenceHorizontal INTEGER(0..99) OPTIONAL,
+ altitude INTEGER(-64000..1280000),
+ uncertainty-altitude INTEGER(0..255),
+ confidenceVertical INTEGER(0..99) OPTIONAL,
+ ...
+}
+
+
+
+OMA-LPPe-HighAccuracy3Dvelocity ::= SEQUENCE {
+ enu-origin OMA-LPPe-HighAccuracy3Dposition OPTIONAL,
+ east-component INTEGER(0..511),
+ negative-sign-east NULL OPTIONAL, --Cond West
+ north-component INTEGER(0..511),
+ negative-sign-north NULL OPTIONAL, --Cond South
+ up-component INTEGER(0..511),
+ negative-sign-up NULL OPTIONAL, --Cond Down
+ cep INTEGER(0..255) OPTIONAL, --Cond NoEllipse
+ uncertainty-semimajor INTEGER(0..255) OPTIONAL, --Cond NoCEP,
+ uncertainty-semiminor INTEGER(0..255) OPTIONAL, --Cond NoCEP,
+ offset-angle INTEGER(0..179) OPTIONAL, --Cond NoCEP,
+ confidenceHorizontal INTEGER(0..99) OPTIONAL,
+ uncertainty-up-component INTEGER(0..255),
+ confidenceUp INTEGER(0..99) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-LocationInformationContainerID ::= SEQUENCE {
+ containerID INTEGER (0..65535),
+ ...
+}
+
+
+OMA-LPPe-LocationInformationContainer ::= SEQUENCE {
+ vendorOrOperatorID OMA-LPPe-VendorOrOperatorID,
+ locationInformationContainerDataList OMA-LPPe-LocationInformationContainerDataList,
+ ...
+}
+
+OMA-LPPe-LocationInformationContainerDataList ::= SEQUENCE
+ (SIZE(1..maxLocationInformationContainerDataList)) OF OMA-LPPe-LocationInformationContainerData
+
+OMA-LPPe-LocationInformationContainerData ::= SEQUENCE {
+ containerID OMA-LPPe-LocationInformationContainerID,
+ containerData OCTET STRING,
+ ...
+}
+
+
+OMA-LPPe-LocationInformationContainerRequest ::= SEQUENCE {
+ vendorOrOperatorID OMA-LPPe-VendorOrOperatorID,
+ locationInformationContainerRequestList OMA-LPPe-LocationInformationContainerRequestList,
+ ...
+}
+
+OMA-LPPe-LocationInformationContainerRequestList ::= SEQUENCE
+ (SIZE (1.. maxLocationInformationContainerDataList)) OF
+ OMA-LPPe-LocationInformationContainerRequestItem
+
+maxLocationInformationContainerDataList INTEGER ::= 10
+
+OMA-LPPe-LocationInformationContainerRequestItem ::= SEQUENCE {
+ containerID OMA-LPPe-LocationInformationContainerID,
+ additionalInformation OCTET STRING OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-MapDataReference ::= SEQUENCE {
+ dataID OMA-LPPe-AssistanceContainerID,
+ mapReference OCTET STRING (SIZE (1..64)),
+ mapSize INTEGER (1..5000) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-Orientation ::= CHOICE {
+ eulerAngles SEQUENCE {
+ alpha INTEGER (0..359),
+ beta INTEGER (0..180),
+ gamma INTEGER (0..359),
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-ReferencePoint ::= SEQUENCE {
+ referencePointUniqueID OMA-LPPe-ReferencePointUniqueID OPTIONAL,
+ referencePointGeographicLocation CHOICE {
+ location3D EllipsoidPointWithAltitude,
+ location3DwithUncertainty EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
+ locationwithhighaccuracy OMA-LPPe-HighAccuracy3Dposition,
+ ...
+ } OPTIONAL,
+ referencePointCivicLocation OMA-LPPe-CivicLocation OPTIONAL,
+ referencePointFloorLevel INTEGER (-20..235) OPTIONAL,
+ relatedReferencePoints SEQUENCE (SIZE (1..8)) OF
+ OMA-LPPe-ReferencePointRelationship OPTIONAL,
+ mapDataInformation OMA-LPPe-MapDataInformation OPTIONAL,
+ ...
+}
+
+OMA-LPPe-MapDataInformation ::= SEQUENCE (SIZE (1..16)) OF OMA-LPPe-MapDataReferenceElement
+
+OMA-LPPe-MapDataReferenceElement ::= SEQUENCE {
+ mapDataUrl CHOICE {
+ mapDataUrl OMA-LPPe-Uri,
+ mapDataRef OMA-LPPe-MapDataReference
+ },
+ mapProvider CHOICE {
+ sameAsRefPointProvider NULL,
+ notSameAsRefPointProvider OMA-LPPe-VendorOrOperatorID,
+ ...
+ } OPTIONAL,
+ mapAssociation CHOICE {
+ referencePointUniqueID NULL,
+ otherID VisibleString (SIZE (1..64)),
+ mapOffset OMA-LPPe-RelativeLocation,
+ origin NULL,
+ ...
+ },
+ mapHorizontalOrientation INTEGER (0..359) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ReferencePointRelationship ::= SEQUENCE {
+ referencePointUniqueID OMA-LPPe-ReferencePointUniqueID,
+ relativeLocation OMA-LPPe-RelativeLocation,
+ ...
+}
+
+
+OMA-LPPe-ReferencePointUniqueID ::= SEQUENCE {
+ providerID OMA-LPPe-VendorOrOperatorID,
+ providerAssignedID OCTET STRING,
+ version INTEGER (1..64),
+ ...
+}
+
+
+OMA-LPPe-RelativeLocation ::= SEQUENCE {
+ units ENUMERATED {cm,dm, m10, ...} OPTIONAL,
+ arc-second-units ENUMERATED {as0-0003, as0-003, as0-03, as0-3, ...} OPTIONAL,
+ relativeNorth INTEGER (-524288..524287),
+ relativeEast INTEGER (-524288..524287),
+ relativeAltitude OMA-LPPe-RelativeAltitude OPTIONAL,
+ horizontalUncertainty OMA-LPPe-HorizontalUncertaintyAndConfidence OPTIONAL,
+ ...
+}
+
+OMA-LPPe-HorizontalUncertaintyAndConfidence ::= SEQUENCE {
+ uncShape CHOICE {
+ circle INTEGER (0..127),
+ ellipse SEQUENCE {
+ semimajor INTEGER (0..127),
+ semiminor INTEGER (0..127),
+ offsetAngle INTEGER (0..179)
+ },
+ ...
+ },
+ confidence INTEGER (0..99) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-RelativeAltitude ::= SEQUENCE {
+ geodeticRelativeAltitude OMA-LPPe-GeodeticRelativeAltitude OPTIONAL,
+ civicRelativeAltitude OMA-LPPe-CivicRelativeAltitude OPTIONAL,
+ ...
+}
+
+OMA-LPPe-GeodeticRelativeAltitude ::= SEQUENCE {
+ geodetic-height-depth INTEGER (-32768..32767),
+ geodetic-uncertainty-and-confidence OMA-LPPe-GeodeticUncertaintyAndConfidence OPTIONAL,
+ ...
+}
+
+OMA-LPPe-GeodeticUncertaintyAndConfidence ::= SEQUENCE {
+ uncertainty INTEGER (0..127),
+ confidence INTEGER (0..99) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-CivicRelativeAltitude ::= SEQUENCE {
+ civic-floors INTEGER (-255..256),
+ civic-uncertainty-and-confidence OMA-LPPe-CivicUncertaintyAndConfidence OPTIONAL,
+ ...
+}
+
+OMA-LPPe-CivicUncertaintyAndConfidence ::= SEQUENCE {
+ uncertainty INTEGER (0..127),
+ confidence INTEGER (0..99) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-Session-ID ::= SEQUENCE {
+ provider-ID OMA-LPPe-VendorOrOperatorID,
+ server-ID OCTET STRING (SIZE(4)),
+ session-ID OCTET STRING (SIZE(4)),
+ ...
+}
+
+
+-- asn2wrs does not handle '%' in the restricted string
+--OMA-LPPe-Uri ::= VisibleString (FROM ( "a".."z" | "A".."Z" | "0".."9" | ":" | "/" | "?" | "#" | "[" |
+--"]" | "@" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | "-" | "." | "_" | "~" |
+--"%" ))
+OMA-LPPe-Uri ::= VisibleString (FROM ( "a".."z" | "A".."Z" | "0".."9" | ":" | "/" | "?" | "#" | "[" |
+"]" | "@" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | "-" | "." | "_" | "~"))
+
+
+OMA-LPPe-ver1-1-BroadcastSystemID ::= CHOICE {
+ standardSystemID INTEGER (1..16),
+ proprietarySystemID SEQUENCE {
+ vendorOrOperator OMA-LPPe-VendorOrOperatorID,
+ proprietarySystemID INTEGER (1..16)
+ },
+ ...
+}
+
+
+OMA-LPPe-ver1-1-BroadcastADTypes ::= SEQUENCE {
+ lppLabels SEQUENCE (SIZE (1..maxLPPLabelSets)) OF OMA-LPPe-ver1-1-LabelSet,
+ lppeLabels SEQUENCE (SIZE (1..maxLPPeLabelSets)) OF OMA-LPPe-ver1-1-LabelSet,
+ ...
+}
+
+OMA-LPPe-ver1-1-LabelSet ::= SEQUENCE {
+ level1-element SEQUENCE {
+ level1-element-value INTEGER (1..maxLevel1-element),
+ level2-element SEQUENCE {
+ level2-element-value INTEGER (1..maxLevel2-element),
+ level3-element SEQUENCE {
+ level3-element-value INTEGER (1..maxLevel3-element),
+ ...
+ } OPTIONAL,
+ ...
+ } OPTIONAL,
+ ...
+ } OPTIONAL,
+ lastElements BIT STRING (SIZE (1..maxFinal-element)),
+ additionalElements ENUMERATED { none, all, ... } OPTIONAL,
+ ...
+}
+
+maxLevel1-element INTEGER ::= 32
+
+maxLevel2-element INTEGER ::= 32
+
+maxLevel3-element INTEGER ::= 32
+
+maxFinal-element INTEGER ::= 32
+
+maxLPPLabelSets INTEGER ::= 64
+
+maxLPPeLabelSets INTEGER ::= 128
+
+
+OMA-LPPe-ver1-1-AccessNetworkID ::= CHOICE {
+ gSMAccess OMA-LPPe-ver1-1-MCC-MNC,
+ wCDMAAccess OMA-LPPe-ver1-1-MCC-MNC,
+ lTEAccess OMA-LPPe-ver1-1-MCC-MNC,
+ wiMaxAccess OMA-LPPe-ver1-1-BSID,
+ wLANAccess OMA-LPPe-WLAN-AP-ID,
+ ...
+}
+
+OMA-LPPe-ver1-1-MCC-MNC ::= SEQUENCE {
+ mcc SEQUENCE (SIZE (3)) OF INTEGER (0..9),
+ mnc SEQUENCE (SIZE (2..3)) OF INTEGER (0..9),
+ ...
+}
+
+OMA-LPPe-ver1-1-BSID ::= SEQUENCE {
+ bsID-MSB BIT STRING (SIZE(24)),
+ bsID-LSB BIT STRING (SIZE(24)),
+ ...
+}
+
+
+OMA-LPPe-ver1-1-AuthenticationSetID ::= INTEGER (0..255)
+
+
+OMA-LPPe-ver1-1-AuthenticationSet ::= SEQUENCE {
+ authenticationSetID OMA-LPPe-ver1-1-AuthenticationSetID,
+ rsaPublicKey SEQUENCE {
+ modulus BIT STRING (SIZE (2048)),
+ exponent BIT STRING (SIZE (2..2048))
+ },
+ saltLength INTEGER (0..32),
+ ...
+}
+
+
+OMA-LPPe-ver1-1-CipherSetID ::= INTEGER (0..65535)
+
+
+OMA-LPPe-ver1-1-CipherSet ::= SEQUENCE {
+ cipherSetID OMA-LPPe-ver1-1-CipherSetID,
+ cipherKey BIT STRING (SIZE (128)),
+ c0 BIT STRING (SIZE (1..128)),
+ ...
+}
+
+
+OMA-LPPe-ver1-1-ServerID ::= SEQUENCE {
+ provider-ID OMA-LPPe-VendorOrOperatorID,
+ server-ID OCTET STRING (SIZE(4)),
+ ...
+}
+
+
+OMA-LPPe-ValidityArea ::= SEQUENCE {
+ regionSizeInv INTEGER (1..255),
+ areaWidth INTEGER (2..9180) OPTIONAL,
+ codedLatOfNWCorner INTEGER (0..4589),
+ codedLonOfNWCorner INTEGER (0..9179),
+ rleList OMA-LPPe-RleList OPTIONAL,
+ ...
+}
+
+OMA-LPPe-RleList ::= SEQUENCE (SIZE(1..65535)) OF INTEGER (0..255)
+
+
+OMA-LPPe-ValidityPeriod ::= SEQUENCE {
+ beginTime GNSS-SystemTime,
+ beginTimeAlt INTEGER (0..2881) OPTIONAL,
+ duration INTEGER (1..2881),
+ ...
+}
+
+
+OMA-LPPe-VendorOrOperatorAssistanceDataIdentifier ::= SEQUENCE {
+ vendorOrOperatorID OMA-LPPe-VendorOrOperatorID,
+ assistanceDataID OMA-LPPe-AssistanceContainerID,
+ ...
+}
+
+
+OMA-LPPe-VendorOrOperatorID ::= CHOICE {
+ standard-VendorOrOperatorID INTEGER(1..1024),
+ nonStandard-VendorOrOperatorID OMA-LPPe-NonStandard-VendorOrOperatorID,
+ ...
+}
+
+
+OMA-LPPe-NonStandard-VendorOrOperatorID ::= SEQUENCE {
+ encodedID INTEGER(0..65535),
+ visibleIdentification OMA-LPPe-CharArray OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-WirelessAccessTypes ::= BIT STRING { gsm (0),
+ utra (1),
+ lte (2),
+ wimax (3),
+ wifi (4),
+ other (5) } (SIZE(1..16))
+
+
+OMA-LPPe-WLAN-AP-ID ::= SEQUENCE {
+ apMacAddress BIT STRING ( SIZE (48) ),
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-Type ::= ENUMERATED {
+ ieee802-11a,
+ ieee802-11b,
+ ieee802-11g,
+ ieee802-11n,
+ ...,
+ ieee802-11ac,
+ ieee802-11ad
+}
+
+
+OMA-LPPe-WLAN-AP-Type-List ::= BIT STRING {
+ ieee802-11a (0),
+ ieee802-11b (1),
+ ieee802-11g (2),
+ ieee802-11n (3),
+ ieee802-11ac (4),
+ ieee802-11ad (5)} (SIZE (1..16))
+
+
+OMA-LPPe-WLANFemtoCoverageArea ::= SEQUENCE {
+ truncation INTEGER(-127..128) OPTIONAL,
+ areaType ENUMERATED { gaussian, binaryDistribution, ...} OPTIONAL,
+ confidence INTEGER (0..99),
+ componentList SEQUENCE (SIZE (1..16)) OF OMA-LPPe-WLANFemtoCoverageAreaElement,
+ ...
+}
+
+OMA-LPPe-WLANFemtoCoverageAreaElement ::= SEQUENCE {
+ refPointAndArea SEQUENCE {
+ referenceLocation ENUMERATED {antenna,
+ referencePoint,
+ ... },
+ referencePoint OMA-LPPe-ReferencePointUniqueID OPTIONAL,
+ locationAndArea OMA-LPPe-RelativeLocation,
+ ...
+ },
+ type ENUMERATED {indoor (0),
+ outdoor (1),
+ mixed (2),
+ ... } OPTIONAL,
+ weight INTEGER (0..100) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-CommonIEsRequestCapabilities ::= SEQUENCE {
+ iP-Address-RequestCapabilities OMA-LPPe-IP-Address-RequestCapabilities OPTIONAL,
+ assistanceContainerSupportReq OMA-LPPe-AssistanceContainerSupportReq OPTIONAL,
+ locationInformationContainerSupportReq OMA-LPPe-LocationInformationContainerSupportReq
+ OPTIONAL,
+ relativeLocationChange-RequestCapabilities OMA-LPPe-RelativeLocationChange-RequestCapabilities
+ OPTIONAL,
+ highAccuracyFormatCapabilitiesReq OMA-LPPe-HighAccuracyFormatCapabilitiesReq OPTIONAL,
+ segmentedAssistanceData-ReqCapabilities OMA-LPPe-SegmentedAssistanceData-ReqCapabilities
+ OPTIONAL,
+ referencePointCapabilitiesReq OMA-LPPe-ReferencePointCapabilitiesReq OPTIONAL,
+ scheduledLocation-RequestCapabilities OMA-LPPe-ScheduledLocation-RequestCapabilities
+ OPTIONAL,
+ accessCapabilitiesReq OMA-LPPe-AccessCapabilitiesReq OPTIONAL,
+ segmentedLocationInformation-ReqCapabilities
+ OMA-LPPe-SegmentedLocationInformation-ReqCapabilities
+ OPTIONAL,
+ ...,
+-- version 1.1 extension elements
+ ver1-1-localCellInformation-ReqCapabilities OMA-LPPe-ver1-1-localCellInformation-ReqCapabilities
+ OPTIONAL,
+ ver1-1-broadcast-ReqCapabilities OMA-LPPe-ver1-1-broadcast-ReqCapabilities OPTIONAL
+}
+
+OMA-LPPe-IP-Address-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-AssistanceContainerSupportReq ::= SEQUENCE {
+ vendorOrOperatorIDList OMA-LPPe-VendorOrOperatorIDList OPTIONAL,
+ ...
+}
+
+OMA-LPPe-LocationInformationContainerSupportReq ::= SEQUENCE {
+ vendorOrOperatorIDList OMA-LPPe-VendorOrOperatorIDList OPTIONAL,
+ ...
+}
+
+OMA-LPPe-VendorOrOperatorIDList ::= SEQUENCE (SIZE(1..maxVendorOrOperatorIDList)) OF
+ OMA-LPPe-VendorOrOperatorID
+
+maxVendorOrOperatorIDList INTEGER ::= 32
+
+OMA-LPPe-RelativeLocationChange-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-HighAccuracyFormatCapabilitiesReq ::= SEQUENCE {
+ ...
+}
+OMA-LPPe-SegmentedAssistanceData-ReqCapabilities ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-ReferencePointCapabilitiesReq ::= SEQUENCE {
+ referencePointProviderSupportListReq SEQUENCE (SIZE (1..128)) OF
+ OMA-LPPe-VendorOrOperatorID OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ScheduledLocation-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-AccessCapabilitiesReq ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-SegmentedLocationInformation-ReqCapabilities ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-ver1-1-localCellInformation-ReqCapabilities ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-ver1-1-broadcast-ReqCapabilities ::= SEQUENCE {
+ broadcastSystems SEQUENCE (SIZE (1..16)) OF OMA-LPPe-ver1-1-BroadcastSystemID
+ OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-CommonIEsProvideCapabilities ::= SEQUENCE {
+ iP-Address-Capabilities OMA-LPPe-IP-Address-Capabilities OPTIONAL,
+ assistanceContainerSupport OMA-LPPe-AssistanceContainerSupport OPTIONAL,
+ locationInformationContainerSupport OMA-LPPe-LocationInformationContainerSupport OPTIONAL,
+ relativeLocationChange-Capabilities OMA-LPPe-RelativeLocationChange-Capabilities OPTIONAL,
+ highAccuracyFormatCapabilities OMA-LPPe-HighAccuracyFormatCapabilities OPTIONAL,
+ segmentedAssistanceData-ProvideCapabs OMA-LPPe-SegmentedAssistanceData-ProvideCapabs OPTIONAL,
+ referencePointCapabilities OMA-LPPe-ReferencePointCapabilities OPTIONAL,
+ scheduledLocation-Capabilities OMA-LPPe-ScheduledLocation-Capabilities OPTIONAL,
+ accessCapabilities OMA-LPPe-AccessCapabilities OPTIONAL,
+ segmentedLocationInformation-ProvideCapabs
+ OMA-LPPe-SegmentedLocationInformation-ProvideCapabs
+ OPTIONAL,
+ ...,
+-- version 1.1 extension elements
+ ver1-1-localCellInformation-ProvideCapabilities OMA-LPPe-ver1-1-localCellInformation-ProvideCapabilities OPTIONAL,
+ ver1-1-broadcast-ProvideCapabilities OMA-LPPe-ver1-1-broadcast-ProvideCapabilities OPTIONAL
+}
+
+OMA-LPPe-IP-Address-Capabilities ::= SEQUENCE {
+ iP-Address-support BIT STRING { iPv4 (0),
+ iPv6 (1),
+ nat (2) } (SIZE(1..8)) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AssistanceContainerSupport ::= SEQUENCE (SIZE(1..maxVendorOrOperatorIDList)) OF
+ OMA-LPPe-VendorOrOperatorAssistanceContainerList
+
+
+OMA-LPPe-VendorOrOperatorAssistanceContainerList ::= SEQUENCE {
+ vendorOrOperatorID OMA-LPPe-VendorOrOperatorID,
+ assistanceContainerList OMA-LPPe-AssistanceContainerList,
+ ...
+}
+
+OMA-LPPe-AssistanceContainerList ::= SEQUENCE (SIZE(1.. maxAssistanceContainerList))OF
+ OMA-LPPe-AssistanceContainerID
+
+OMA-LPPe-LocationInformationContainerSupport ::= SEQUENCE (SIZE(1..maxVendorOrOperatorIDList)) OF
+ OMA-LPPe-VendorOrOperatorLocationInformationContainerList
+
+OMA-LPPe-VendorOrOperatorLocationInformationContainerList ::= SEQUENCE {
+ vendorOrOperatorID OMA-LPPe-VendorOrOperatorID,
+ locationInformationContainerList OMA-LPPe-LocationInformationContainerList,
+ ...
+}
+
+OMA-LPPe-LocationInformationContainerList ::= SEQUENCE (SIZE(1..maxLocationInformationContainerList))OF
+ OMA-LPPe-LocationInformationContainerID
+
+maxLocationInformationContainerList INTEGER ::= 64
+OMA-LPPe-RelativeLocationChange-Capabilities ::= SEQUENCE {
+ numberOfChanges INTEGER (1..5) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-HighAccuracyFormatCapabilities ::= BIT STRING { hAposition(0),
+ hAvelocity(1) } (SIZE(1..8))
+
+OMA-LPPe-SegmentedAssistanceData-ProvideCapabs ::= SEQUENCE {
+ maxSegments INTEGER (2..4096) OPTIONAL,
+ maxSize INTEGER (1..5000) OPTIONAL,
+ minSize INTEGER (1..5000) OPTIONAL,
+ resume NULL OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ReferencePointCapabilities ::= SEQUENCE {
+ relativeLocationReportingSupport BIT STRING { geo (0),
+ civic (1),
+ otherProviders (2) } (SIZE (1..8)),
+ referencePointProviderSupportList SEQUENCE (SIZE (1..128)) OF
+ OMA-LPPe-ReferencePointProviderSupportElement OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ReferencePointProviderSupportElement ::= SEQUENCE {
+ referencePointProvider OMA-LPPe-VendorOrOperatorID,
+ mapDataSupport SEQUENCE {
+ mapDataFormat OCTET STRING OPTIONAL,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ScheduledLocation-Capabilities ::= SEQUENCE {
+ minimumWindow INTEGER (1..1024) OPTIONAL,
+ gnssTimeReference GNSS-ID-Bitmap OPTIONAL,
+ networkTimeReference ENUMERATED {serving,
+ servingOrNonServing,
+ ... } OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AccessCapabilities ::= SEQUENCE {
+ accessTypeUnknown NULL OPTIONAL,
+ fixedAccessTypes OMA-LPPe-FixedAccessTypes OPTIONAL,
+ wirelessAccessTypes OMA-LPPe-WirelessAccessTypes OPTIONAL,
+ ...
+}
+
+OMA-LPPe-SegmentedLocationInformation-ProvideCapabs ::= SEQUENCE {
+ maxSegments INTEGER (2..4096) OPTIONAL,
+ maxSize INTEGER (1..5000) OPTIONAL,
+ minSize INTEGER (1..5000) OPTIONAL,
+ resume NULL OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ver1-1-localCellInformation-ProvideCapabilities ::= SEQUENCE {
+ localCellInformation-Support BIT STRING {gnssTiming (0),
+ networkTiming (1),
+ coverage (2),
+ coordinates (3),
+ frequencyAccuracy (4)} (SIZE (1..16)),
+ ...
+}
+
+OMA-LPPe-ver1-1-broadcast-ProvideCapabilities ::= SEQUENCE (SIZE (1..16)) OF OMA-LPPe-ver1-1-BroadcastSystem-Capabs
+
+OMA-LPPe-ver1-1-BroadcastSystem-Capabs ::= SEQUENCE {
+ broadcastSystemID OMA-LPPe-ver1-1-BroadcastSystemID,
+ broadcastADTypes OMA-LPPe-ver1-1-BroadcastADTypes OPTIONAL,
+ point2pointAD OMA-LPPe-ver1-1-point2pointAD OPTIONAL,
+ ciphering OMA-LPPe-ver1-1-Ciphering OPTIONAL,
+ authentication OMA-LPPe-ver1-1-Authentication OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ver1-1-point2pointAD ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-ver1-1-Ciphering ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-ver1-1-Authentication ::= SEQUENCE {
+ ...
+}
+
+
+
+OMA-LPPe-CommonIEsRequestAssistanceData ::= SEQUENCE {
+ approximate-location EllipsoidPointWithAltitudeAndUncertaintyEllipsoid OPTIONAL,
+ assistanceContainerRequestList OMA-LPPe-AssistanceContainerRequestList OPTIONAL,
+ requestPeriodicADwithUpdate OMA-LPPe-RequestPeriodicADwithUpdate OPTIONAL,
+ --Cond RequestPeriodicADWithUpdate
+ segmentedADpreference ENUMERATED {useBasic, useResume, ...} OPTIONAL,
+ segmentedADResume OMA-LPPe-SegmentedADResume OPTIONAL,
+ --Cond segmentedTransferResume
+ referencePointAssistanceReq OMA-LPPe-ReferencePointAssistanceReq OPTIONAL,
+ ...,
+-- version 1.1 extension elements
+ ver1-1-localCellInformationReq OMA-LPPe-ver1-1-LocalCellInformationReq OPTIONAL,
+ ver1-1-BroadcastAssistanceDataReq OMA-LPPe-ver1-1-BroadcastAssistanceDataReq OPTIONAL,
+ ver1-1-AccessNetwork OMA-LPPe-ver1-1-AccessNetworkID OPTIONAL,
+ ver1-1-groundMorphologyModelReq OMA-LPPe-ver1-1-GroundMorphologyModelReq OPTIONAL
+}
+
+OMA-LPPe-RequestPeriodicADwithUpdate ::= SEQUENCE {
+ periodicAD-session-ID OCTET STRING (SIZE(4)),
+ typeOfADRequest TypeOfADRequest,
+ ...
+}
+
+TypeOfADRequest ::= ENUMERATED {
+ initialRequest,
+ updateAndContinueIfUpdateFails,
+ updateAndAbortIfUpdateFails,
+ ...
+}
+
+OMA-LPPe-SegmentedADResume ::= SEQUENCE {
+ segmentedAD-session-ID OMA-LPPe-Session-ID,
+ next-segment-number INTEGER (1..4096)
+}
+
+OMA-LPPe-ReferencePointAssistanceReq ::= SEQUENCE {
+ referencePointReq SEQUENCE (SIZE (1..16)) OF OMA-LPPe-ReferencePointAssistanceReqElement,
+ ...
+}
+
+OMA-LPPe-ReferencePointAssistanceReqElement ::= SEQUENCE {
+ referencePointProvider OMA-LPPe-VendorOrOperatorID,
+ mapDataReq OCTET STRING OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ver1-1-GroundMorphologyModelReq ::= SEQUENCE {
+ modelsReq BIT STRING {altitude(0), buildings(1)} (SIZE (1..8)),
+ refAreaParam SEQUENCE {
+ northWestCorner Ellipsoid-Point OPTIONAL,
+ spanX INTEGER (6..14),
+ spanY INTEGER (6..14),
+ ...
+ } OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ver1-1-LocalCellInformationReq ::= SEQUENCE {
+ localCellInformationReq BIT STRING {gnssTiming (0),
+ networkTiming (1),
+ coverage (2),
+ coordinates (3),
+ frequencyAccuracy (4)} (SIZE (1..16)),
+ localCellID OMA-LPPe-ver1-1-CellGlobalID OPTIONAL, -- Cond ver1-1cellVisible
+ numberOfCells INTEGER (0..7) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ver1-1-BroadcastAssistanceDataReq ::= SEQUENCE {
+ broadcastSystem OMA-LPPe-ver1-1-BroadcastSystem OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ver1-1-BroadcastSystem ::= SEQUENCE {
+ broadcastSystemID OMA-LPPe-ver1-1-BroadcastSystemID,
+ cipherSets SEQUENCE (SIZE (1..16)) OF OMA-LPPe-ver1-1-CipherSetID OPTIONAL,
+ authenticationSets SEQUENCE (SIZE(1..4)) OF OMA-LPPe-ver1-1-AuthenticationSetID OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-CommonIEsProvideAssistanceData ::= SEQUENCE {
+ assistanceContainerList OMA-LPPe-AssistanceContainerProvideList OPTIONAL,
+ providePeriodicADwithUpdate OMA-LPPe-ProvidePeriodicADwithUpdate OPTIONAL,
+ --Cond ProvidePeriodicADWithUpdate,
+ segmentedADTransfer OMA-LPPe-SegmentedADTransfer OPTIONAL,
+ --Cond segmentedTransferWithResume
+ default-reference-point OMA-LPPe-ReferencePoint OPTIONAL,
+ ...,
+-- version 1.1 extension element
+ ver1-1-localCellInformation OMA-LPPe-ver1-1-LocalCellInformation OPTIONAL,
+ ver1-1-BroadcastAssistanceData OMA-LPPe-ver1-1-BroadcastAssistanceData OPTIONAL,
+ ver1-1-groundMorphologyModel OMA-LPPe-ver1-1-GroundMorphologyModel OPTIONAL
+}
+
+OMA-LPPe-ProvidePeriodicADwithUpdate ::= SEQUENCE {
+ periodicAD-session-ID OCTET STRING (SIZE(4)),
+ typeOfADProvide OMA-LPPe-TypeOfADProvide,
+ ...
+}
+
+OMA-LPPe-TypeOfADProvide ::= ENUMERATED {
+ responseToInitialRequest,
+ providePeriodicAD,
+ responseToTargetUpdateRequest,
+ serverUpdate,
+ ...
+}
+
+OMA-LPPe-SegmentedADTransfer ::= SEQUENCE {
+ segmentedAD-session-ID OMA-LPPe-Session-ID,
+ segment-number INTEGER (1..4096),
+ ...
+}
+
+OMA-LPPe-ver1-1-LocalCellInformation ::= SEQUENCE {
+ ver1-1-timingInformation SEQUENCE (SIZE (1..maxCellSets)) OF GNSS-ReferenceTime
+ OPTIONAL,
+ ver1-1-other-CellInformation SEQUENCE (SIZE (1..maxCells)) OF OMA-LPPe-ver1-1-CellInformation
+ OPTIONAL,
+ ...
+}
+
+maxCellSets INTEGER ::= 8
+
+maxCells INTEGER ::= 128
+
+OMA-LPPe-ver1-1-CellInformation ::= SEQUENCE {
+ cellID OMA-LPPe-ver1-1-CellGlobalID,
+ coverage CHOICE {
+ circle Ellipsoid-PointWithUncertaintyCircle,
+ ellipse EllipsoidPointWithUncertaintyEllipse,
+ arc EllipsoidArc,
+ polygon Polygon,
+ ...
+ } OPTIONAL,
+ coordinates EllipsoidPointWithAltitudeAndUncertaintyEllipsoid OPTIONAL,
+ frequencyAccuracy INTEGER (1..6) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ver1-1-BroadcastAssistanceData ::= SEQUENCE {
+ broadcastSystem OMA-LPPe-ver1-1-BroadcastSystemID,
+ accessNetworks SEQUENCE (SIZE (1..16)) OF OMA-LPPe-ver1-1-AccessNetworkID,
+ coverageArea CHOICE {
+ circle Ellipsoid-PointWithUncertaintyCircle,
+ ellipse EllipsoidPointWithUncertaintyEllipse,
+ polygon Polygon,
+ ...
+ } OPTIONAL,
+ broadcastADTypes OMA-LPPe-ver1-1-BroadcastADTypes OPTIONAL,
+ broadcastMode CHOICE {
+ unencapsulated NULL,
+ encapsulated OMA-LPPe-ver1-1-EncapsulatedMode,
+ ...
+ },
+ ...
+}
+
+OMA-LPPe-ver1-1-EncapsulatedMode ::= SEQUENCE {
+ serverID OMA-LPPe-ver1-1-ServerID,
+ cipherSets SEQUENCE (SIZE (1..16)) OF OMA-LPPe-ver1-1-CipherSet OPTIONAL,
+ authentication SEQUENCE (SIZE (1..4)) OF OMA-LPPe-ver1-1-AuthenticationSet OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-CommonIEsRequestLocationInformation ::= SEQUENCE {
+ iP-Address-Request OMA-LPPe-IP-Address-Request OPTIONAL,
+ locationInformationContainerRequest OMA-LPPe-LocationInformationContainerRequest OPTIONAL,
+ requestPeriodicLocInfoWithUpdate OMA-LPPe-RequestPeriodicLocInfoWithUpdate OPTIONAL,
+ --Cond RequestPeriodicLocInfoWithUpdate
+ relativeLocationChange-Request OMA-LPPe-RelativeLocationChange-Request OPTIONAL,
+ localPositionRequest OMA-LPPe-LocalPositionRequest OPTIONAL,
+ scheduledLocation-Request OMA-LPPe-ScheduledLocation-Request OPTIONAL,
+ accessTypeRequest OMA-LPPe-AccessTypeRequest OPTIONAL,
+ segmentedLIpreference ENUMERATED {useBasic, useResume, ...} OPTIONAL,
+ segmentedLIResume OMA-LPPe-SegmentedLIResume OPTIONAL,
+ --Cond segmentedTransferResume
+ ...
+}
+
+OMA-LPPe-IP-Address-Request ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-RequestPeriodicLocInfoWithUpdate ::= SEQUENCE {
+ session-ID OCTET STRING (SIZE(4)),
+ typeOfLocInfoRequest OMA-LPPe-TypeOfLocInfoRequest,
+ ...
+}
+
+OMA-LPPe-TypeOfLocInfoRequest ::= ENUMERATED {
+ initialRequest,
+ updateAndContinueIfUpdateFails,
+ updateAndAbortIfUpdateFails,
+ ...
+}
+
+OMA-LPPe-RelativeLocationChange-Request ::= SEQUENCE {
+ numberOfChanges INTEGER (1..5) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-LocalPositionRequest ::= SEQUENCE {
+ typeOfRequest ENUMERATED { localOptional, localMandatory, localOnly, ... },
+ referencePointReq SEQUENCE (SIZE (1..8)) OF
+ OMA-LPPe-ReferencePointUniqueID OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ScheduledLocation-Request ::= SEQUENCE {
+ gnssTime GNSS-SystemTime OPTIONAL, --Cond AtLeastOne
+ networkTime NetworkTime OPTIONAL, --Cond AtLeastOne
+ relativeTime INTEGER (1..1024) OPTIONAL, --Cond AtLeastOne
+ windowSize INTEGER (1..1024) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AccessTypeRequest ::= SEQUENCE {
+ ...
+}
+
+OMA-LPPe-SegmentedLIResume ::= SEQUENCE {
+ segmentedLI-session-ID INTEGER (1..256),
+ next-segment-number INTEGER (1..4096)}
+
+
+OMA-LPPe-CommonIEsProvideLocationInformation ::= SEQUENCE {
+ highAccuracy3Dposition OMA-LPPe-HighAccuracy3Dposition OPTIONAL,
+ --Cond HighAccuracy
+ localPosition OMA-LPPe-LocalPosition OPTIONAL,
+ highAccuracy3Dvelocity OMA-LPPe-HighAccuracy3Dvelocity OPTIONAL,
+ --Cond HighAccuracy
+ iP-Address-List OMA-LPPe-IP-Address-List OPTIONAL,
+ locationInformationContainer OMA-LPPe-LocationInformationContainer OPTIONAL,
+ providePeriodicLocInfoWithUpdate OMA-LPPe-ProvidePeriodicLocInfowithUpdate OPTIONAL,
+ --Cond ProvidePeriodicLocInfoWithUpdate
+ relativeLocationChangeList OMA-LPPe-RelativeLocationChangeList OPTIONAL,
+ scheduledLocation OMA-LPPe-ScheduledLocation OPTIONAL,
+ --Cond ScheduledLocationRequested
+ accessTypes OMA-LPPe-AccessTypes OPTIONAL,
+ segmentedLITransfer OMA-LPPe-SegmentedLITransfer OPTIONAL,
+ --Cond segmentedTransferWithResume
+ locationInformationTimeStamp OMA-LPPe-TimeStamp OPTIONAL,
+ ...,
+ locationSource OMA-LPPe-LocationSource OPTIONAL
+ --Cond LocationSource
+}
+
+OMA-LPPe-LocalPosition ::= SEQUENCE {
+ referencePoint OMA-LPPe-ReferencePointUniqueID,
+ subjectLocation OMA-LPPe-RelativeLocation OPTIONAL,
+ ...
+}
+
+OMA-LPPe-IP-Address-List ::= SEQUENCE (SIZE (1..maxIPAddress)) OF OMA-LPPe-IP-Address
+
+maxIPAddress INTEGER ::= 5
+
+OMA-LPPe-IP-Address ::= SEQUENCE {
+ local-IP-Address CHOICE {
+ iPv4 BIT STRING (SIZE(32)),
+ iPv6 BIT STRING (SIZE(128)),
+ ...
+ },
+ bearer OMA-LPPe-Bearer,
+ nat BOOLEAN OPTIONAL,
+ ...
+}
+
+OMA-LPPe-Bearer ::= ENUMERATED {
+ unknown,
+ gsm,
+ utran,
+ lte,
+ wlan,
+ wimax,
+ dsl,
+ pktcable,
+ other,
+ ...
+}
+
+OMA-LPPe-ProvidePeriodicLocInfowithUpdate ::= SEQUENCE {
+ session-ID OCTET STRING (SIZE(4)),
+ typeOfLocInfoProvide OMA-LPPe-TypeOfLocInfoProvide,
+ ...
+}
+
+OMA-LPPe-TypeOfLocInfoProvide ::= ENUMERATED {
+ responseToInitialRequest,
+ providePeriodicLocInfo,
+ responseToServerUpdateRequest,
+ targetUpdate,
+ ...
+}
+
+OMA-LPPe-RelativeLocationChangeList ::= SEQUENCE (SIZE (1..maxRelativeLocation)) OF
+ OMA-LPPe-RelativeLocationChange
+
+OMA-LPPe-RelativeLocationChange ::= SEQUENCE {
+ relativeTime INTEGER (0..65535) OPTIONAL,
+ transactionID INTEGER (0..255) OPTIONAL,
+ relativeLocation OMA-LPPe-RelativeLocation,
+ ...
+}
+
+maxRelativeLocation INTEGER ::= 5
+
+OMA-LPPe-ScheduledLocation ::= SEQUENCE {
+ disposition ENUMERATED {withinWindow,
+ outsideWindowOrNoWindow,
+ notSupportedDueToNoCapability,
+ notSupportedDueToNoTimeReference,
+ notSupportedDueToConflictWithAnotherRequest,
+ notSupportedForOtherReasons,
+ ... },
+ actualWindow SEQUENCE {
+ start INTEGER (-512..511),
+ duration INTEGER (0..2047)
+ } OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AccessTypes ::= SEQUENCE {
+ accessTypeUnknown NULL OPTIONAL,
+ fixedAccessTypes OMA-LPPe-FixedAccessTypes OPTIONAL,
+ wirelessAccessTypes OMA-LPPe-WirelessAccessTypes OPTIONAL,
+ ...
+}
+
+OMA-LPPe-SegmentedLITransfer ::= SEQUENCE {
+ segmentedLI-session-ID INTEGER (1..256),
+ segment-number INTEGER (1..4096),
+ ...
+}
+
+OMA-LPPe-TimeStamp ::= CHOICE {
+ gnssTime GNSS-SystemTime,
+ networkTime NetworkTime,
+ relativeTime INTEGER (0..1024),
+ ...
+}
+
+OMA-LPPe-LocationSource ::= SEQUENCE {
+ agnss NULL OPTIONAL,
+ otdoa NULL OPTIONAL,
+ eotd NULL OPTIONAL,
+ otdoaUTRA NULL OPTIONAL,
+ ecidLTE NULL OPTIONAL,
+ ecidGSM NULL OPTIONAL,
+ ecidUTRA NULL OPTIONAL,
+ wlanAP NULL OPTIONAL,
+ srn NULL OPTIONAL,
+ sensors NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-CommonIEsAbort ::= SEQUENCE {
+ abortCause ENUMERATED {periodicADsessionStop,
+ periodicADprocedureNotSupported,
+ periodicADprocedureNotAccepted,
+ periodicLocInfoSessionStop,
+ periodicLocInfoProcedureNotSupported,
+ periodicLocInfoProcedureNotAccepted,
+ ...
+ } OPTIONAL,
+ periodicSessionIDtoAbort OCTET STRING (SIZE(4)) OPTIONAL, --Cond periodicWithUpdate
+ ...
+}
+
+
+OMA-LPPe-CommonIEsError ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-ProvideAssistanceData ::= SEQUENCE {
+ commonAssistData OMA-LPPe-AGNSS-CommonAssistData OPTIONAL,
+ genericAssistData OMA-LPPe-AGNSS-GenericAssistData OPTIONAL,
+ error OMA-LPPe-AGNSS-Error OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-CommonAssistData::= SEQUENCE {
+ ionosphericModel OMA-LPPe-AGNSS-IonosphericModel OPTIONAL,
+ troposphereModel OMA-LPPe-AGNSS-TroposphereModel OPTIONAL,
+ altitudeAssistance OMA-LPPe-AGNSS-AltitudeAssistanceList OPTIONAL,
+ solarRadiation OMA-LPPe-AGNSS-SolarRadiation OPTIONAL,
+ ccpAssistCommonProvide OMA-LPPe-AGNSS-CCPassistCommonProvide OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-GenericAssistData ::= SEQUENCE (SIZE (1..16)) OF OMA-LPPe-AGNSS-GenericAssistDataElement
+
+OMA-LPPe-AGNSS-GenericAssistDataElement ::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ wideAreaIonoSurfacePerSVlist OMA-LPPe-AGNSS-WideAreaIonoSurfacePerSVlist OPTIONAL,
+ mechanicsForAllSVs OMA-LPPe-AGNSS-MechanicsForAllSVs OPTIONAL,
+ dcbsForAllSVs OMA-LPPe-AGNSS-DCBsForAllSVs OPTIONAL,
+ navModelDegradationModel OMA-LPPe-AGNSS-NavModelDegradationModelList OPTIONAL,
+ ccpAssistProvide OMA-LPPe-AGNSS-CCPassistGenericProvide OPTIONAL, --Cond CCP
+ navModelList OMA-LPPe-AGNSS-NavModelList OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-IonosphericModel ::= CHOICE {
+ staticModels SEQUENCE {
+ localKlobucharModelList OMA-LPPe-AGNSS-LocalKlobucharModelList OPTIONAL,
+ ionoStormIndication OMA-LPPe-AGNSS-IonoStormIndication OPTIONAL,
+ ...
+ },
+ waIono CHOICE {
+ controlParameters OMA-LPPe-AGNSS-WideAreaIonoSurfaceControlParametersProvide,
+ commonProvide OMA-LPPe-AGNSS-WideAreaIonoSurfaceCommon,
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-AGNSS-LocalKlobucharModelList ::= SEQUENCE (SIZE(1..16)) OF
+ OMA-LPPe-AGNSS-LocalKlobucharModelElement
+
+OMA-LPPe-AGNSS-LocalKlobucharModelElement ::= SEQUENCE {
+ validityArea OMA-LPPe-ValidityArea,
+ klobucharModel SEQUENCE (SIZE(1..8)) OF OMA-LPPe-AGNSS-LocalKlobucharModel,
+ ...
+}
+
+OMA-LPPe-AGNSS-LocalKlobucharModel ::= SEQUENCE {
+ validityPeriod OMA-LPPe-ValidityPeriod,
+ alfa0 INTEGER (-128..127),
+ alfa1 INTEGER (-128..127),
+ alfa2 INTEGER (-128..127),
+ alfa3 INTEGER (-128..127),
+ beta0 INTEGER (-128..127),
+ beta1 INTEGER (-128..127),
+ beta2 INTEGER (-128..127),
+ beta3 INTEGER (-128..127),
+ ...
+}
+
+
+
+OMA-LPPe-AGNSS-IonoStormIndication ::= SEQUENCE {
+ area OMA-LPPe-ValidityArea,
+ --rleList shall not be included and is replaced by the stormList below
+ stormList OMA-LPPe-AGNSS-StormList,
+ ...
+}
+
+OMA-LPPe-AGNSS-StormList ::= SEQUENCE (SIZE(1..16)) OF OMA-LPPe-AGNSS-StormElement
+
+OMA-LPPe-AGNSS-StormElement ::= SEQUENCE {
+ validityPeriod OMA-LPPe-ValidityPeriod,
+ rleListIono OMA-LPPe-AGNSS-RleListIono,
+ ...
+}
+
+OMA-LPPe-AGNSS-RleListIono ::= SEQUENCE (SIZE(1..65535)) OF OMA-LPPe-AGNSS-RleIonoElement
+
+OMA-LPPe-AGNSS-RleIonoElement ::= SEQUENCE {
+ regionCount INTEGER (0..255),
+ ionoIndex CHOICE {
+ noaaScales OMA-LPPe-AGNSS-NoaaScales,
+ ...
+ },
+ ...
+}
+
+OMA-LPPe-AGNSS-NoaaScales ::= ENUMERATED{ g1,g2, g3, g4, g5, unknown, none, ... }
+
+
+OMA-LPPe-AGNSS-WideAreaIonoSurfaceControlParametersProvide ::= SEQUENCE {
+ duration OMA-LPPe-Duration OPTIONAL, --Cond FirstOrDurModify
+ rate INTEGER(1..64) OPTIONAL, --Cond FirstOrRateModify
+ referencePosition Ellipsoid-Point OPTIONAL, --Cond FirstOrPosModify
+ validityArea OMA-LPPe-ValidityArea OPTIONAL, --Cond FirstOrAreaModify
+ ...
+}
+
+
+OMA-LPPe-AGNSS-WideAreaIonoSurfaceCommon ::= SEQUENCE {
+ validityPeriod OMA-LPPe-ValidityPeriod,
+ ...
+ }
+
+
+OMA-LPPe-AGNSS-WideAreaIonoSurfacePerSVlist ::=
+ SEQUENCE (SIZE (1..64)) OF OMA-LPPe-AGNSS-WideAreaIonoSurfacePerSVelement
+
+OMA-LPPe-AGNSS-WideAreaIonoSurfacePerSVelement ::= SEQUENCE {
+ svID SV-ID,
+ a0 INTEGER (0..8191),
+ e1 INTEGER (-4096..4095),
+ n1 INTEGER (-4096..4095),
+ e2 INTEGER (-4096..4095) OPTIONAL, --Cond SecondOrder
+ n2 INTEGER (-4096..4095) OPTIONAL, --Cond SecondOrder
+ en INTEGER (-4096..4095) OPTIONAL, --Cond SecondOrder
+ ...
+}
+
+
+OMA-LPPe-AGNSS-TroposphereModel ::= SEQUENCE {
+ troposphereDelayList OMA-LPPe-AGNSS-LocalTroposphereDelayList OPTIONAL,
+ surfaceParametersList OMA-LPPe-AGNSS-LocalSurfaceParametersList OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-LocalTroposphereDelayList ::= SEQUENCE (SIZE(1..8)) OF
+ OMA-LPPe-AGNSS-LocalTroposphereDelayAreaElement
+
+OMA-LPPe-AGNSS-LocalTroposphereDelayAreaElement ::= SEQUENCE {
+ validityArea OMA-LPPe-ValidityArea,
+ refAltitude INTEGER (-1000..8192) OPTIONAL,
+ gradientReferencePosition Ellipsoid-Point OPTIONAL,
+ delayList SEQUENCE (SIZE(1..8)) OF
+ OMA-LPPe-AGNSS-LocalTroposphereDelayTimeElement,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-LocalTroposphereDelayTimeElement ::= SEQUENCE {
+ validityPeriod OMA-LPPe-ValidityPeriod,
+ zh0 INTEGER (0..4095),
+ eh INTEGER (0..4095) OPTIONAL,
+ zw0 INTEGER (0..4095) OPTIONAL,
+ ew INTEGER (0..4095) OPTIONAL,
+ gN INTEGER (-8192..8191) OPTIONAL,
+ gE INTEGER (-8192..8191) OPTIONAL,
+ mappingFunctionParameters OMA-LPPe-AGNSS-MappingFunctionParameters,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-LocalSurfaceParametersList ::= SEQUENCE (SIZE(1..8)) OF
+ OMA-LPPe-AGNSS-LocalSurfaceParametersAreaElement
+
+OMA-LPPe-AGNSS-LocalSurfaceParametersAreaElement ::= SEQUENCE {
+ validityArea OMA-LPPe-ValidityArea,
+ refAltitude INTEGER (-1000..8192) OPTIONAL,
+ gradientReferencePosition Ellipsoid-Point OPTIONAL,
+ parameterList SEQUENCE (SIZE(1..8)) OF
+ OMA-LPPe-AGNSS-LocalSurfaceParametersTimeElement,
+ ...
+}
+
+OMA-LPPe-AGNSS-LocalSurfaceParametersTimeElement ::= SEQUENCE {
+ validityPeriod OMA-LPPe-ValidityPeriod,
+ pressure INTEGER (-1024..1023),
+ pressureRate INTEGER (-128..127),
+ gN-pressure INTEGER (-128..127) OPTIONAL,
+ gE-pressure INTEGER (-128..127) OPTIONAL,
+ temperature INTEGER (-64..63) OPTIONAL,
+ temperatureRate INTEGER (-16..16) OPTIONAL,
+ gN-temperature INTEGER (-8..7) OPTIONAL,
+ gE-temperature INTEGER (-8..7) OPTIONAL,
+ mappingFunctionParameters OMA-LPPe-AGNSS-MappingFunctionParameters,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-MappingFunctionParameters ::= SEQUENCE {
+ ah INTEGER (0..16383),
+ bh INTEGER (0..16383) OPTIONAL,
+ ch INTEGER (0..16383) OPTIONAL,
+ aw INTEGER (0..16383) OPTIONAL,
+ bw INTEGER (0..16383) OPTIONAL,
+ cw INTEGER (0..16383) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-AltitudeAssistanceList ::= SEQUENCE (SIZE(1..8)) OF
+ OMA-LPPe-AGNSS-AltitudeAssistanceAreaElement
+
+OMA-LPPe-AGNSS-AltitudeAssistanceAreaElement ::= SEQUENCE {
+ validityArea OMA-LPPe-ValidityArea,
+ gradientReferencePosition EllipsoidPointWithAltitudeAndUncertaintyEllipsoid OPTIONAL,
+ refAltitude INTEGER (-1000..8192) OPTIONAL,
+ pressureAssistanceList SEQUENCE (SIZE(1..16)) OF OMA-LPPe-AGNSS-PressureAssistanceElement,
+ ...
+}
+
+OMA-LPPe-AGNSS-PressureAssistanceElement ::= SEQUENCE{
+ validityPeriod OMA-LPPe-ValidityPeriod,
+ pressure INTEGER (-1024..1023),
+ pressureRate INTEGER (-128..127) OPTIONAL,
+ gN INTEGER (-128..127) OPTIONAL,
+ gE INTEGER (-128..127) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-SolarRadiation ::= SEQUENCE {
+ solarRadiation INTEGER(1000..2000),
+ ...
+}
+
+
+OMA-LPPe-AGNSS-MechanicsForAllSVs::= SEQUENCE (SIZE(1..64)) OF OMA-LPPe-AGNSS-MechanicsElement
+
+
+OMA-LPPe-AGNSS-MechanicsElement ::= SEQUENCE {
+ svid SV-ID,
+ mass INTEGER(1..4095) OPTIONAL,
+ effectiveReflectivityArea INTEGER(1..511) OPTIONAL,
+ pco OMA-LPPe-AGNSS-PCOelement OPTIONAL,
+ svInfo SEQUENCE {
+ svType OMA-LPPe-AGNSS-SVtype,
+ svNumber INTEGER(0..1000),
+ ...
+ } OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AGNSS-PCOelement ::= SEQUENCE{
+ xOffsetSBF INTEGER(-30000..30000),
+ yOffsetSBF INTEGER(-30000..30000),
+ zOffsetSBF INTEGER(-30000..30000),
+ ...
+}
+
+OMA-LPPe-AGNSS-SVtype ::= ENUMERATED {
+ gpsIIR, gpsIIRM, gpsIIF, gpsIII,
+ glonassM, glonassK1, glonassK2, glonassKM,
+ unknown,
+ ...}
+
+
+
+OMA-LPPe-AGNSS-DCBsForAllSVs ::= SEQUENCE (SIZE(1..64)) OF OMA-LPPe-AGNSS-DCBlistElement
+
+
+OMA-LPPe-AGNSS-DCBlistElement ::= SEQUENCE {
+ svid SV-ID,
+ reference SEQUENCE{
+ signal GNSS-SignalID,
+ pd ENUMERATED { pilot, data, notapplicable, ... },
+ ...
+ },
+ dcbList OMA-LPPe-AGNSS-DCBlist,
+ ...
+ }
+
+OMA-LPPe-AGNSS-DCBlist ::= SEQUENCE (SIZE(1..16)) OF OMA-LPPe-AGNSS-DCBelement
+
+OMA-LPPe-AGNSS-DCBelement ::= SEQUENCE {
+ signal GNSS-SignalID,
+ pd ENUMERATED{ pilot, data, notapplicable, ... },
+ dcb INTEGER (-4096..4095),
+ ...
+ }
+
+
+OMA-LPPe-AGNSS-NavModelDegradationModelList ::= SEQUENCE (SIZE(1..64)) OF
+ OMA-LPPe-AGNSS-NavModelDegradationModelElement
+
+OMA-LPPe-AGNSS-NavModelDegradationModelElement ::= SEQUENCE {
+ svid SV-ID,
+ clockDegradationModel OMA-LPPe-AGNSS-ClockModelDegradationModel,
+ orbitDegradationModel OMA-LPPe-AGNSS-OrbitModelDegradationModel,
+ ...
+}
+
+OMA-LPPe-AGNSS-ClockModelDegradationModel ::= SEQUENCE {
+ clockRMS0 INTEGER(0..31),
+ clockRMS1 INTEGER(0..7) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AGNSS-OrbitModelDegradationModel ::= SEQUENCE {
+ orbitRMS0 INTEGER(0..31),
+ orbitRMS1 INTEGER(0..7) OPTIONAL,
+ ...
+}
+
+
+
+OMA-LPPe-AGNSS-CCPassistCommonProvide ::= CHOICE {
+ ccpProvideCommonParameters OMA-LPPe-AGNSS-CCPprovideCommonParameters,
+ ccpProvideControlParameters OMA-LPPe-AGNSS-CCPprovideControlParameters,
+ ...
+}
+
+OMA-LPPe-AGNSS-CCPprovideCommonParameters ::= SEQUENCE {
+ ccpReferenceTime GNSS-SystemTime,
+ ...
+}
+
+OMA-LPPe-AGNSS-CCPprovideControlParameters ::= SEQUENCE {
+ ccpSupportArea OMA-LPPe-AGNSS-CCPsupportArea OPTIONAL,
+ ccpNeighborList OMA-LPPe-AGNSS-CCPreferenceStationList OPTIONAL,
+ duration OMA-LPPe-Duration OPTIONAL, --Cond FirstOrDurModify
+ rate INTEGER(1..64) OPTIONAL, --Cond FirstOrRateModify
+ ccpReferenceStationList OMA-LPPe-AGNSS-CCPreferenceStationList OPTIONAL, --Cond FirstOrRefModify
+ ...
+}
+
+
+OMA-LPPe-AGNSS-CCPsupportArea ::= SEQUENCE {
+ areaDescription OMA-LPPe-ValidityArea,
+ signalSupport SEQUENCE (SIZE(1..8)) OF OMA-LPPe-AGNSS-CCPsignalSupport,
+ ...
+}
+
+OMA-LPPe-AGNSS-CCPsignalSupport ::= SEQUENCE {
+ gnss GNSS-ID,
+ signals GNSS-SignalIDs,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-CCPreferenceStationList ::= SEQUENCE (SIZE(0..maxReferenceStations)) OF
+ OMA-LPPe-AGNSS-CCPreferenceStationElement
+
+OMA-LPPe-AGNSS-CCPreferenceStationElement ::= SEQUENCE {
+ referenceStationID OMA-LPPe-AGNSS-CCPreferenceStationID,
+ referenceStationLocation OMA-LPPe-HighAccuracy3Dposition,
+ antennaDescription OMA-LPPe-AGNSS-AntennaDescription OPTIONAL, --Cond IfPhysical
+ ...
+ }
+
+
+OMA-LPPe-AGNSS-CCPassistGenericProvide ::= SEQUENCE (SIZE(1..maxReferenceStations)) OF
+ OMA-LPPe-AGNSS-CCPassistGenericProvideElement
+
+OMA-LPPe-AGNSS-CCPassistGenericProvideElement::= SEQUENCE {
+ referenceStationID OMA-LPPe-AGNSS-CCPreferenceStationID,
+ ccpPerSignalList SEQUENCE (SIZE(1..8)) OF OMA-LPPe-AGNSS-CCPperSignalElement,
+ ...
+}
+
+OMA-LPPe-AGNSS-CCPperSignalElement ::= SEQUENCE {
+ signal-ID GNSS-SignalID,
+ ccpPerSVlist SEQUENCE (SIZE(1..64)) OF OMA-LPPe-AGNSS-CCPperSVelement,
+ ...
+}
+
+OMA-LPPe-AGNSS-CCPperSVelement::= SEQUENCE {
+ svID SV-ID,
+ integerCodePhase INTEGER(0..255) OPTIONAL, --Cond IfAvailable
+ codePhase INTEGER(0.. 14989622),
+ codePhaseError OMA-LPPe-AGNSS-CodePhaseError OPTIONAL, --Cond IfAvailable
+ phaseRangeDelta INTEGER(-524288.. 524287),
+ phaseRangeRMSerror INTEGER(0..127) OPTIONAL, --Cond IfAvailable
+ lockIndicator BOOLEAN,
+ ...
+}
+
+OMA-LPPe-AGNSS-CodePhaseError ::= CHOICE {
+ codePhaseRMSError INTEGER(0..63),
+ cnr INTEGER(0..255),
+ ...
+}
+
+
+OMA-LPPe-AGNSS-NavModelList ::= SEQUENCE {
+ coordinateBased OMA-LPPe-AGNSS-NavModel-CoordinateBased OPTIONAL, --Cond ModelId-1
+ ...
+}
+
+
+OMA-LPPe-AGNSS-NavModel-CoordinateBased ::= SEQUENCE {
+ fixedInterval SEQUENCE {
+ beginTime GNSS-SystemTime,
+ interval INTEGER(1..30),
+ ...
+ } OPTIONAL, --Cond FixedInterval
+ bases SEQUENCE {
+ baseForPosVel INTEGER(-100000000..100000000) OPTIONAL,
+ baseForCcRate OMA-LPPe-AGNSS-NavModel-BigNumber OPTIONAL,
+ ...
+ } OPTIONAL, --Cond DefaultsNotApplicable
+ referencedTo ENUMERATED { centerOfMass, antennaPhaseCenter, ... },
+ pointList SEQUENCE (SIZE (1..97)) OF OMA-LPPe-AGNSS-NavModel-CoordinateBasedElement,
+ ...
+}
+
+OMA-LPPe-AGNSS-NavModel-CoordinateBasedElement::= SEQUENCE {
+ time-of-record GNSS-SystemTime OPTIONAL, --Cond NoFixedInterval
+ svIdList SEQUENCE (SIZE (1..64)) OF OMA-LPPe-AGNSS-NavModel-PVTelement,
+ ...
+}
+
+OMA-LPPe-AGNSS-NavModel-PVTelement ::= SEQUENCE {
+ svID SV-ID,
+ svClockOffset OMA-LPPe-AGNSS-NavModel-BigNumber,
+ ecefPositionX OMA-LPPe-AGNSS-NavModel-BigNumber,
+ ecefPositionY OMA-LPPe-AGNSS-NavModel-BigNumber,
+ ecefPositionZ OMA-LPPe-AGNSS-NavModel-BigNumber,
+ clockPosSTD OMA-LPPe-AGNSS-NavModel-STDmatrix,
+ rateRecord SEQUENCE {
+ svClockRate OMA-LPPe-AGNSS-NavModel-BigNumber,
+ ecefVelocityX OMA-LPPe-AGNSS-NavModel-BigNumber,
+ ecefVelocityY OMA-LPPe-AGNSS-NavModel-BigNumber,
+ ecefVelocityZ OMA-LPPe-AGNSS-NavModel-BigNumber,
+ clockRateVelSTD OMA-LPPe-AGNSS-NavModel-STDmatrix,
+ ...
+ } OPTIONAL, --Cond RateAvailable
+ ...
+}
+
+OMA-LPPe-AGNSS-NavModel-BigNumber::= SEQUENCE {
+ msb INTEGER(-1000000000..1000000000),
+ lsb INTEGER(1..100) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AGNSS-NavModel-STDmatrix ::= SEQUENCE {
+ e11 INTEGER(0..1000),
+ e22 INTEGER(0..1000),
+ e33 INTEGER(0..1000),
+ e44 INTEGER(0..1000000),
+ e12 INTEGER(0..10000000) OPTIONAL, --Cond CrossTermAvailable
+ e13 INTEGER(0..10000000) OPTIONAL, --Cond CrossTermAvailable
+ e14 INTEGER(0..10000000) OPTIONAL, --Cond CrossTermAvailable
+ e23 INTEGER(0..10000000) OPTIONAL, --Cond CrossTermAvailable
+ e24 INTEGER(0..10000000) OPTIONAL, --Cond CrossTermAvailable
+ e34 INTEGER(0..10000000) OPTIONAL, --Cond CrossTermAvailable
+ ...
+}
+
+
+OMA-LPPe-AGNSS-RequestAssistanceData ::= SEQUENCE {
+ commonAssistDataReq OMA-LPPe-AGNSS-CommonAssistanceDataReq OPTIONAL,
+ genericAssistDataReq OMA-LPPe-AGNSS-GenericAssistanceDataReq OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-CommonAssistanceDataReq ::= SEQUENCE {
+ ionosphericModelReq OMA-LPPe-AGNSS-IonosphericModelReq OPTIONAL,
+ troposphereModelReq OMA-LPPe-AGNSS-TroposphereModelReq OPTIONAL,
+ altitudeAssistanceReq OMA-LPPe-AGNSS-AltitudeAssistanceReq OPTIONAL,
+ solarRadiationRequest OMA-LPPe-AGNSS-SolarRadiationReq OPTIONAL,
+ ccpRequestControlParameters OMA-LPPe-AGNSS-CCPrequestControlParameters OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-GenericAssistanceDataReq ::= SEQUENCE (SIZE (1..16)) OF
+ OMA-LPPe-AGNSS-GenericAssistDataReqElement
+
+OMA-LPPe-AGNSS-GenericAssistDataReqElement ::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ waIonoSurfaceReq OMA-LPPe-AGNSS-WaIonoSurfaceRequest OPTIONAL, --Cond WAiono
+ mechanicsReq OMA-LPPe-AGNSS-MechanicsReq OPTIONAL,
+ dcbReq OMA-LPPe-AGNSS-DCBreq OPTIONAL,
+ navModelDegradationModelReq OMA-LPPe-AGNSS-NavModelDegradationModelReq OPTIONAL,
+ ccpAssistGenericReq OMA-LPPe-AGNSS-CCPassistGenericReq OPTIONAL, --Cond CCPreq
+ navigationModelReq OMA-LPPe-AGNSS-NavigationModelReq OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-IonosphericModelReq ::= CHOICE {
+ staticModels SEQUENCE {
+ ionoreq BIT STRING {klobucharModel (0),
+ ionoStormWarning (1) } (SIZE (1..8)),
+ requestBeginTime GNSS-SystemTime OPTIONAL,
+ duration OMA-LPPe-Duration,
+ ...
+ },
+ periodicModels SEQUENCE {
+ waIonoSurface OMA-LPPe-AGNSS-WideAreaIonoSurfaceControlParametersRequest,
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-AGNSS-WideAreaIonoSurfaceControlParametersRequest ::= SEQUENCE {
+ duration OMA-LPPe-Duration OPTIONAL, --Cond FirstOrDurModify
+ rate INTEGER(1..64) OPTIONAL, --Cond FirstOrRateModify
+ ...
+}
+
+
+OMA-LPPe-AGNSS-TroposphereModelReq ::= SEQUENCE {
+ troposphereModelReq BIT STRING {delay (0),
+ surface (1) } (SIZE (1..8)),
+ supportForMultipleGridPoints BOOLEAN,
+ requestBeginTime GNSS-SystemTime OPTIONAL,
+ duration OMA-LPPe-Duration,
+ ...
+ }
+
+
+OMA-LPPe-AGNSS-AltitudeAssistanceReq ::= SEQUENCE {
+ requestBeginTime GNSS-SystemTime OPTIONAL,
+ duration OMA-LPPe-Duration OPTIONAL,
+ ...
+ }
+
+
+OMA-LPPe-AGNSS-SolarRadiationReq ::= SEQUENCE {
+ ...
+ }
+
+
+OMA-LPPe-AGNSS-WaIonoSurfaceRequest ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-NavModelDegradationModelReq ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-DCBreq ::= SEQUENCE {
+ reference SEQUENCE{
+ signal GNSS-SignalID,
+ pd ENUMERATED { pilot, data, notapplicable, ... },
+ ...
+ } OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-MechanicsReq::= SEQUENCE {
+ massRequest BOOLEAN,
+ effectiveReflectivityAreaRequest BOOLEAN,
+ pcoRequest BOOLEAN,
+ svInfoRequest BOOLEAN,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-CCPrequestControlParameters ::= SEQUENCE {
+ ccpSupportAreaRequest NULL OPTIONAL,
+ ccpNeighborListRequest NULL OPTIONAL,
+ ccpCommonRequest SEQUENCE {
+ duration OMA-LPPe-Duration OPTIONAL, --Cond FirstOrDurModify
+ rate INTEGER(1..64) OPTIONAL, --Cond FirstOrRateModify
+ refStation CHOICE {
+ posBasedReferenceStationRequest SEQUENCE {
+ requestedReferenceStationLocation OMA-LPPe-HighAccuracy3Dposition,
+ qor OMA-LPPe-AGNSS-QoR,
+ ...
+ },
+ idBasedReferenceStationRequest OMA-LPPe-AGNSS-ReferenceStationIDlist,
+ referenceStationKillList OMA-LPPe-AGNSS-ReferenceStationIDlist,
+ ...
+ } OPTIONAL, --Cond FirstOrRefModify
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-AGNSS-ReferenceStationIDlist ::= SEQUENCE (SIZE(1..maxReferenceStations)) OF
+ OMA-LPPe-AGNSS-CCPreferenceStationID
+
+OMA-LPPe-AGNSS-QoR ::= ENUMERATED {m10, km1,km10,km100, ...}
+
+
+OMA-LPPe-AGNSS-CCPassistGenericReq ::= SEQUENCE {
+ ccpAssist-SignalsReq GNSS-SignalIDs,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-NavigationModelReq ::= SEQUENCE {
+ navModelID-PrefList SEQUENCE (SIZE(1..8)) OF INTEGER(1..8) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-ProvideLocationInformation ::= SEQUENCE {
+ highAccuracyReferenceTime GNSS-SystemTime OPTIONAL, --Cond HighAccuracy
+ highAccuracyMeasurements OMA-LPPe-AGNSS-HAgnssProvide OPTIONAL,
+ ionosphereMeasurements OMA-LPPe-AGNSS-IonosphereMeasurements OPTIONAL,
+ localSurfaceMeasurements OMA-LPPe-AGNSS-LocalSurfaceMeasurements OPTIONAL,
+ error OMA-LPPe-AGNSS-Error OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-HAgnssProvide ::= CHOICE {
+ controlParameters SEQUENCE {
+ duration OMA-LPPe-Duration,
+ rate INTEGER(1..64),
+ antennaDescription OMA-LPPe-AGNSS-AntennaDescription OPTIONAL, --Cond HAantenna
+ ...
+ },
+ measurements SEQUENCE {
+ position EllipsoidPointWithAltitudeAndUncertaintyEllipsoid OPTIONAL,
+ --Cond NotForbidden
+ referenceTime GNSS-SystemTime,
+ localPressure SEQUENCE {
+ pressure INTEGER(-1024..1023),
+ pressureUncertainty INTEGER(0..127),
+ ...
+ } OPTIONAL, --Cond HApressure
+ antennaOrientation OMA-LPPe-Orientation OPTIONAL, --Cond HAantOrientation
+ signalMeasurements SEQUENCE (SIZE(1..16)) OF OMA-LPPe-AGNSS-HAgnssMeasurementElement,
+ ...
+ },
+ ...
+}
+
+OMA-LPPe-AGNSS-HAgnssMeasurementElement::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ haGNSSperSignalList SEQUENCE (SIZE(1..8)) OF OMA-LPPe-HAgnssPerSignalElement,
+ ...
+}
+
+OMA-LPPe-HAgnssPerSignalElement ::= SEQUENCE {
+ signal-ID GNSS-SignalID,
+ haGNSSperSVlist SEQUENCE (SIZE(1..64)) OF OMA-LPPe-HAgnssPerSVelement,
+ ...
+}
+
+
+OMA-LPPe-HAgnssPerSVelement ::= SEQUENCE {
+ svID SV-ID,
+ integerCodePhase INTEGER (0..255) OPTIONAL, --Cond IfAvailable
+ codePhase INTEGER (0..14989622),
+ codePhaseRMSError INTEGER (0..63),
+ multipathDetection ENUMERATED {low,
+ moderate,
+ high,
+ notMeasured,
+ ...},
+ cnr INTEGER(0..255),
+ adr INTEGER (0..536870911),
+ adrRMSerror INTEGER (0..127),
+ lockIndicator BOOLEAN,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-IonosphereMeasurements ::= SEQUENCE {
+ gnssTime GNSS-SystemTime,
+ position EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
+ tecPerSV OMA-LPPe-AGNSS-TECPerSV OPTIONAL, --Cond TecPerSV
+ tecAtZenith OMA-LPPe-AGNSS-TECAtZenith OPTIONAL, --Cond ZenithTec
+ ...
+}
+
+OMA-LPPe-AGNSS-TECPerSV ::= SEQUENCE (SIZE(1..64)) OF OMA-LPPe-AGNSS-TECPerSVElement
+
+OMA-LPPe-AGNSS-TECPerSVElement ::= SEQUENCE {
+ azimuth INTEGER(0..359),
+ elevation INTEGER(0..90),
+ tecValue INTEGER(0..511),
+ tecUncertainty INTEGER(0..63),
+ ...
+}
+
+OMA-LPPe-AGNSS-TECAtZenith ::= SEQUENCE {
+ tecValueAtZenith INTEGER(0..511),
+ tecUncertaintyAtZenith INTEGER(0..63),
+ ...
+}
+
+
+OMA-LPPe-AGNSS-LocalSurfaceMeasurements ::= SEQUENCE {
+ gnssTime GNSS-SystemTime,
+ position EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
+ pressure INTEGER(-1024..1023),
+ pressureUncertainty INTEGER(0..127),
+ temperatureMeasurement SEQUENCE {
+ temperature INTEGER(-64..63) OPTIONAL,
+ temperatureUncertainty INTEGER(0..7) OPTIONAL,
+ ...
+ } OPTIONAL, --Cond TemperatureAvailable
+ ...
+}
+
+
+OMA-LPPe-AGNSS-RequestLocationInformation ::= SEQUENCE {
+ positioningInstructions OMA-LPPe-AGNSS-PositioningInstructions OPTIONAL,
+ ionosphereMeasurementsReq BIT STRING {tecPerSV(0),
+ zenithTEC(1) }(SIZE(1..8)) OPTIONAL,
+ localSurfaceMeasurementReq OMA-LPPe-AGNSS-LocalSurfaceMeasurementReq OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-PositioningInstructions ::= SEQUENCE {
+ highAccuracyMethodRequested BOOLEAN,
+ haGNSSreq OMA-LPPe-AGNSS-HAgnssRequestControlParameters OPTIONAL, --Cond HAgnssReq
+ ...
+}
+
+
+OMA-LPPe-AGNSS-LocalSurfaceMeasurementReq ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-HAgnssRequestControlParameters ::= SEQUENCE {
+ duration OMA-LPPe-Duration OPTIONAL, --Cond FirstOrModify
+ rate INTEGER(1..63) OPTIONAL, --Cond FirstOrModify
+ antennaInformationReq ENUMERATED {antennaDescriptionOnly,
+ antennaDescriptionAndOrientation,
+ ...} OPTIONAL,
+ pressureInformationReq BOOLEAN, --Cond FirstOrModify
+ signalReqList SEQUENCE (SIZE(1..16)) OF
+ OMA-LPPe-AGNSS-HAgnssSignalReqElement OPTIONAL, --Cond First
+ ...
+}
+
+OMA-LPPe-AGNSS-HAgnssSignalReqElement ::= SEQUENCE {
+ gnssID GNSS-ID,
+ signals GNSS-SignalIDs,
+ ...
+}
+
+
+
+OMA-LPPe-AGNSS-ProvideCapabilities ::= SEQUENCE {
+ assistanceDataSupportList OMA-LPPe-AGNSS-AssistanceDataSupportList OPTIONAL,
+ environmentObservationSupportList OMA-LPPe-AGNSS-EnvironmentObservationSupportList OPTIONAL,
+ haGNSSsupport OMA-LPPe-AGNSS-HAgnssSupport OPTIONAL,
+ ...
+}
+
+OMA-LPPe-AGNSS-AssistanceDataSupportList ::= SEQUENCE {
+ commonAssistanceDataSupport OMA-LPPe-AGNSS-CommonAssistanceDataSupport,
+ genericAssistanceDataSupport OMA-LPPe-AGNSS-GenericAssistanceDataSupport,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-EnvironmentObservationSupportList ::= SEQUENCE{
+ ionosphereMeasurementSupport BIT STRING {tecPerSVsupport(0),
+ zenithTecSupport(1) } (SIZE (1..8)),
+ pressureMeasurementSupported BOOLEAN,
+ temperatureMeasurementSupported BOOLEAN,
+ ...
+}
+
+
+
+OMA-LPPe-AGNSS-CommonAssistanceDataSupport ::= SEQUENCE {
+ ionosphericModelSupport OMA-LPPe-AGNSS-IonosphericModelSupport OPTIONAL, --Cond IonoSupport
+ troposphereModelSupport OMA-LPPe-AGNSS-TroposphereModelSupport OPTIONAL, --Cond TropoSupport
+ altitudeAssistanceSupport OMA-LPPe-AGNSS-AltitudeAssistanceSupport
+ OPTIONAL, --Cond AltAssistSupport
+ solarRadiationSupport OMA-LPPe-AGNSS-SolarRadiationSupport
+ OPTIONAL, --Cond SolarRadiationSupport
+ ccpSupport OMA-LPPe-AGNSS-CCPsupport OPTIONAL, --CCPsupport
+ ...
+}
+
+
+OMA-LPPe-AGNSS-IonosphericModelSupport ::= SEQUENCE {
+ ionoModel BIT STRING { localKlobuchar (0),
+ ionoStormWarning (1),
+ wideAreaIonoSurface (2) } (SIZE (1..8)),
+ ...
+}
+
+
+OMA-LPPe-AGNSS-TroposphereModelSupport ::= SEQUENCE {
+ tropoModel BIT STRING { localTroposphereDelay (0),
+ surfaceParameters (1) } (SIZE (1..8)),
+ supportForMultipleGridPoints BOOLEAN,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-AltitudeAssistanceSupport ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-SolarRadiationSupport ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-CCPsupport ::= SEQUENCE {
+ supportAreaAssistanceSupported BOOLEAN,
+ multiReferenceStationSupported BOOLEAN,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-GenericAssistanceDataSupport ::=
+ SEQUENCE (SIZE (1..16)) OF OMA-LPPe-AGNSS-GenericAssistDataSupportElement
+
+OMA-LPPe-AGNSS-GenericAssistDataSupportElement ::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ mechnanicsSupport OMA-LPPe-AGNSS-MechanicsSupport OPTIONAL,
+ --Cond MechSupport
+ dcbSupport OMA-LPPe-AGNSS-DCBsupport OPTIONAL,
+ --Cond DCBsupport
+ navModelAccuracyModelDegradationSupport OMA-LPPe-AGNSS-NavModelAccuracyModelDegradationSupport
+ OPTIONAL, --Cond NavModDegrSupport
+ ccpAssistanceSuppport GNSS-SignalIDs OPTIONAL, --Cond CCPsupport
+ navModelSupport OMA-LPPe-AGNSS-NavModelSupport OPTIONAL, --Cond NavModSupport
+ ...
+}
+
+
+OMA-LPPe-AGNSS-MechanicsSupport ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-DCBsupport ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-NavModelAccuracyModelDegradationSupport ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-AGNSS-NavModelSupport ::= SEQUENCE {
+ navModelSupport SEQUENCE (SIZE(1..8)) OF INTEGER(1..8) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-HAgnssSupport ::= SEQUENCE {
+ modeSupport BIT STRING {ueBased (0), ueAssisted (1) } (SIZE(2)),
+ haGNSSpressureInformationSupport BOOLEAN,
+ haGNSSantennaInformationSupport BIT STRING { antennaDescriptionSupported (0),
+ antennaOrientationSupported (1)
+ } (SIZE(8)),
+
+ haGNSSperGNSSsupport SEQUENCE (SIZE(1..8)) OF OMA-LPPe-AGNSS-HAgnssPerGNSSsupport,
+ ...
+}
+
+OMA-LPPe-AGNSS-HAgnssPerGNSSsupport::= SEQUENCE {
+ gnss-ID GNSS-ID,
+ haGNSSsignalSupport GNSS-SignalIDs,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-RequestCapabilities ::= SEQUENCE {
+ assistanceDataSupportListReq NULL OPTIONAL,
+ environmentObservationSupportListReq NULL OPTIONAL,
+ haGNSSsupportReq NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-Error ::= CHOICE {
+ agnss-locationServerErrorCauses OMA-LPPe-AGNSS-LocationServerErrorCauses,
+ agnss-targetDeviceErrorCauses OMA-LPPe-AGNSS-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-LocationServerErrorCauses ::= SEQUENCE {
+ waIonoErrorCauses ENUMERATED { undefined,
+ waIonoNotSupportedByServer,
+ waIonoNotSupportedInTargetArea,
+ waIonoNotSupportedForAnyRequestedGNSS,
+ ...} OPTIONAL,
+ ccpErrorCauses ENUMERATED { undefined,
+ ccpNotSupportedByServer,
+ ccpNotSupportedInTargetArea,
+ ccpNotSupportedForAnyRequestedSignal,
+ ccpQorCannotBeMet,
+ ccpUnableToModifyControlParameters,
+ ccpMultiReferenceStationNotSupported,
+ ccpNeighborListNotSupported,
+ ccpSupportAreaAssistanceNotSupported,
+ ...} OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-TargetDeviceErrorCauses ::= SEQUENCE {
+ highAccuracyErrorCauses ENUMERATED { undefined,
+ highAccuracyMethodNotSupported,
+ ...} OPTIONAL,
+ ionosphereMeasurementErrorCauses ENUMERATED { undefined,
+ ionosphereMeasurementsNotSupported,
+ ionosphereMeasurementsNotAvailable,
+ ...} OPTIONAL,
+ environmentObservationErrorCauses ENUMERATED { undefined,
+ surfaceMeasurementsNotSupported,
+ surfaceMeasurementsNotAvailable,
+ ...} OPTIONAL,
+ haGNSSerrorCauses ENUMERATED { undefined,
+ haGNSSnotSupportedByTarget,
+ haGNSSunavailableForAllRequestedSignals,
+ haGNSSantennaInformationNotSupported,
+ haGNSSantennaInformationNotAvailable,
+ haGNSSpressureInformationNotSupported,
+ haGNSSpressureInformationNotAvailable,
+ haGNSSunableToModifyControlParameters,
+ ...} OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-CCPreferenceStationID ::= SEQUENCE {
+ stationID INTEGER(0..65535),
+ ...
+}
+
+maxReferenceStations INTEGER ::= 8
+
+
+OMA-LPPe-AGNSS-AntennaDescription ::= SEQUENCE {
+ antennaDescription CHOICE {
+ igsAntennaName OMA-LPPe-CharArray,
+ proprietaryName OMA-LPPe-CharArray,
+ ...
+ },
+ antennaSetupID INTEGER(0..255) OPTIONAL,
+ antennaSerialNumber OMA-LPPe-CharArray OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-AGNSS-Abort::= SEQUENCE {
+ targetDeviceAbortCauses SEQUENCE {
+ ccpAbort ENUMERATED { undefined,
+ ccpNotSupported,
+ ccpNotSupportedForProvidedSignals,
+ ... } OPTIONAL,
+ waIonoAbort ENUMERATED { undefined,
+ waIonoNotSupported,
+ waIonoNotSupportedForProvidedGNSSs,
+ ... } OPTIONAL,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-ProvideAssistanceData ::= SEQUENCE {
+ otdoa-ReferenceCellInfo OMA-LPPe-OTDOA-ReferenceCellInfo OPTIONAL,
+ otdoa-NeighbourCellInfo OMA-LPPe-OTDOA-NeighbourCellInfoList OPTIONAL,
+ otdoa-Error OMA-LPPe-OTDOA-Error OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-ReferenceCellInfo ::= SEQUENCE {
+ referenceCellInfo OTDOA-ReferenceCellInfo,
+ positionCalculationInfoRef OMA-LPPe-OTDOA-PositionCalculationInfoRef,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-PositionCalculationInfoRef ::= SEQUENCE {
+ systemFrameNumber BIT STRING (SIZE(10)) OPTIONAL, --Cond driftRate
+ rtdReferenceStd OMA-LPPe-OTDOA-RTDquality OPTIONAL,
+ cellLocation SEQUENCE {
+ reference-point OMA-LPPe-ReferencePoint OPTIONAL,
+ relative-location OMA-LPPe-RelativeLocation OPTIONAL,
+ ...
+ },
+ femtoCellInfo SEQUENCE {
+ location-reliability INTEGER(1..100) OPTIONAL,
+ ...
+ } OPTIONAL, --Cond femto
+
+ ...
+}
+
+
+OMA-LPPe-OTDOA-NeighbourCellInfoList ::= SEQUENCE (SIZE (1..maxFreqLayers)) OF
+ OMA-LPPe-OTDOA-NeighbourFreqCellInfoList
+
+-- Added from LPP.asn
+maxFreqLayers INTEGER ::= 3
+
+OMA-LPPe-OTDOA-NeighbourFreqCellInfoList ::= SEQUENCE {
+ neighbourCellInfoList-eNB SEQUENCE (SIZE (1..maxLTEeNBs)) OF
+ OMA-LPPe-OTDOA-NeighbourCellInfoElement-eNB OPTIONAL,
+ neighbourCellInfoList-HeNB SEQUENCE (SIZE (1..maxLTEHeNBs)) OF
+ OMA-LPPe-OTDOA-NeighbourCellInfoElement-HeNB OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-NeighbourCellInfoElement-eNB ::= SEQUENCE {
+ relative-Location OMA-LPPe-RelativeLocation,
+ otdoa-eNB-CellDataList SEQUENCE (SIZE (1..maxLTEMacroCells)) OF OMA-LPPe-OTDOA-CellData,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-NeighbourCellInfoElement-HeNB ::= SEQUENCE {
+ relative-Location OMA-LPPe-RelativeLocation,
+ location-reliability INTEGER (1..100) OPTIONAL,
+ otdoa-HeNB-CellDataList OMA-LPPe-OTDOA-CellData,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-CellData ::= SEQUENCE {
+ otdoa-NeighbourCellInfoElement OTDOA-NeighbourCellInfoElement,
+ rtdInfo SEQUENCE {
+ subframeOffset INTEGER(0..10229) OPTIONAL,
+ fineRTD INTEGER(0..99999),
+ fineRTDstd OMA-LPPe-OTDOA-RTDquality,
+ fineRTDdriftRate INTEGER(-100..100) OPTIONAL,
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-OTDOA-RTDquality ::= SEQUENCE {
+ resolution ENUMERATED { ns-5, ns-10, ns-50, ns-100, ... },
+ quality INTEGER (0..127),
+ ...
+}
+
+
+OMA-LPPe-OTDOA-RequestAssistanceData ::= SEQUENCE {
+ lteCell SEQUENCE {
+ physCellId INTEGER(0..503),
+ eARFCN ARFCN-ValueEUTRA,
+ ecgi CellGlobalIdEUTRA-AndUTRA OPTIONAL,
+ ...
+ },
+ requestedCells BIT STRING {
+ eNBs (0),
+ heNBs (1) } (SIZE (1..8)),
+ ...
+}
+
+
+OMA-LPPe-OTDOA-ProvideLocationInformation ::= SEQUENCE {
+ otdoaLocationInformation OMA-LPPe-OTDOA-LocationInformation OPTIONAL,
+ otdoaError OMA-LPPe-OTDOA-Error OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-LocationInformation ::= SEQUENCE {
+ systemFrameNumber BIT STRING (SIZE (10)),
+ physCellId INTEGER (0..503),
+ cellGlobalId CellGlobalIdEUTRA-AndUTRA OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-RequestLocationInformation ::= SEQUENCE {
+ assistanceAvailability BOOLEAN,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-ProvideCapabilities ::= SEQUENCE {
+ eNodeB-AD-sup SEQUENCE { ... } OPTIONAL,
+ home-eNodeB-AD-sup SEQUENCE { ... } OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-OTDOA-Error ::= CHOICE {
+ locationServerErrorCauses OMA-LPPe-OTDOA-LocationServerErrorCauses,
+ targetDeviceErrorCauses OMA-LPPe-OTDOA-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ locationCalculationAssistanceDataNotSupported,
+ locationCalculationAssistanceDataSupportedButCurrentlyNotAvailable,
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-OTDOA-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ there-were-not-enough-signals-received-for-ueBased-otdoa,
+ location-calculation-assistance-data-missing,
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-EOTD-ProvideAssistanceData ::= SEQUENCE {
+ referenceBTS OMA-LPPe-EOTD-ReferenceBTSForAssistance OPTIONAL, --Cond NotError
+ msrAssistDataList OMA-LPPe-EOTD-MsrAssistDataList OPTIONAL,
+ systemInfoAssistDataList OMA-LPPe-EOTD-SystemInfoAssistDataList OPTIONAL,
+ eotdError OMA-LPPe-EOTD-Error OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-EOTD-ReferenceBTSForAssistance ::= SEQUENCE {
+ bsicAndCarrier OMA-LPPe-CellNonUniqueIDGERAN,
+ timeSlotScheme OMA-LPPe-EOTD-TimeSlotScheme,
+ btsPosition CHOICE {
+ ellipsoidPoint Ellipsoid-Point,
+ ellipsoidPointWithAltitudeAndUncertaintyEllipsoid
+ EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
+ ...
+ } OPTIONAL, --Cond UE-based
+ ...
+ }
+
+
+OMA-LPPe-EOTD-MsrAssistDataList ::= SEQUENCE (SIZE (1..15)) OF OMA-LPPe-EOTD-MsrAssistBTS
+
+OMA-LPPe-EOTD-MsrAssistBTS ::= SEQUENCE {
+ bsicAndCarrier OMA-LPPe-CellNonUniqueIDGERAN,
+ multiFrameOffset OMA-LPPe-EOTD-MultiFrameOffset,
+ timeSlotScheme OMA-LPPe-EOTD-TimeSlotScheme,
+ roughRTD OMA-LPPe-EOTD-RoughRTD,
+ expectedOTD OMA-LPPe-EOTD-ExpectedOTD,
+ calcAssistanceBTS OMA-LPPe-EOTD-CalcAssistanceBTS OPTIONAL, --Cond UE-based
+ ...
+}
+
+
+OMA-LPPe-EOTD-SystemInfoAssistDataList ::= SEQUENCE (SIZE (1..32)) OF OMA-LPPe-EOTD-SystemInfoAssistBTS
+
+OMA-LPPe-EOTD-SystemInfoAssistBTS ::= CHOICE{
+ notPresent NULL,
+ present OMA-LPPe-EOTD-AssistBTSData
+}
+
+OMA-LPPe-EOTD-AssistBTSData ::= SEQUENCE {
+ bsic INTEGER(0..63),
+ multiFrameOffset OMA-LPPe-EOTD-MultiFrameOffset,
+ timeSlotScheme OMA-LPPe-EOTD-TimeSlotScheme,
+ roughRTD OMA-LPPe-EOTD-RoughRTD,
+ expectedOTD OMA-LPPe-EOTD-ExpectedOTD OPTIONAL,
+ calcAssistanceBTS OMA-LPPe-EOTD-CalcAssistanceBTS OPTIONAL, --Cond UE-based
+ ...
+}
+
+
+OMA-LPPe-EOTD-CalcAssistanceBTS ::= SEQUENCE {
+ fineRTD OMA-LPPe-EOTD-FineRTD,
+ relativePos OMA-LPPe-EOTD-relativePos,
+ ...
+}
+
+OMA-LPPe-EOTD-relativePos ::= SEQUENCE {
+ relativeNorth OMA-LPPe-EOTD-RelDistance,
+ relativeEast OMA-LPPe-EOTD-RelDistance,
+ relativeAlt OMA-LPPe-EOTD-RelativeAlt OPTIONAL,
+ ...
+}
+
+OMA-LPPe-EOTD-FineRTD ::= INTEGER(0..255)
+
+OMA-LPPe-EOTD-RelDistance ::= INTEGER(-200000..200000)
+
+OMA-LPPe-EOTD-RelativeAlt ::= INTEGER(-4000..4000)
+
+
+OMA-LPPe-EOTD-RequestAssistanceData ::= SEQUENCE {
+ eotdAssistanceReq BIT STRING { ueAssisted (0), ueBased (1) },
+ ...
+}
+
+
+OMA-LPPe-EOTD-ProvideLocationInformation ::= SEQUENCE {
+ eotdMsrElement OMA-LPPe-EOTD-MsrElement OPTIONAL,
+ eotdError OMA-LPPe-EOTD-Error OPTIONAL,
+ ...
+}
+
+
+
+OMA-LPPe-EOTD-MsrElement ::= SEQUENCE {
+ refFrameNumber INTEGER(0..42431),
+ referenceTimeSlot OMA-LPPe-EOTD-ModuloTimeSlot,
+ toaMeasurementsOfRef OMA-LPPe-EOTD-TOA-MeasurementsOfRef OPTIONAL,
+ stdResolution BIT STRING(SIZE(2)),
+ taCorrection INTEGER(0..960) OPTIONAL,
+ otd-FirstSetMsrs SEQUENCE (SIZE(1..15)) OF OMA-LPPe-EOTD-MeasurementWithID OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-EOTD-TOA-MeasurementsOfRef ::= SEQUENCE {
+ refQuality BIT STRING(SIZE(5)),
+ numOfMeasurements BIT STRING(SIZE(3)),
+ ...
+}
+
+
+
+OMA-LPPe-EOTD-MeasurementWithID ::= SEQUENCE {
+ neighborIdentity OMA-LPPe-EOTD-NeighborIdentity,
+ nborTimeSlot OMA-LPPe-EOTD-ModuloTimeSlot,
+ eotdQuality OMA-LPPe-EOTD-EOTDQuality,
+ otdValue OMA-LPPe-EOTD-OTDValue,
+ ...
+}
+
+
+OMA-LPPe-EOTD-NeighborIdentity ::= CHOICE {
+ bsicAndCarrier OMA-LPPe-CellNonUniqueIDGERAN,
+ ci OMA-LPPe-EOTD-CellID,
+ multiFrameCarrier OMA-LPPe-EOTD-MultiFrameCarrier,
+ requestIndex OMA-LPPe-EOTD-RequestIndex,
+ systemInfoIndex OMA-LPPe-EOTD-SystemInfoIndex,
+ ciAndLac OMA-LPPe-CellLocalIdGERAN,
+ ...
+}
+
+OMA-LPPe-EOTD-EOTDQuality ::= SEQUENCE {
+ nbrOfMeasurements BIT STRING(SIZE(3)),
+ stdOfEOTD BIT STRING(SIZE(5)),
+ ...
+}
+
+OMA-LPPe-EOTD-OTDValue ::= INTEGER (0..39999)
+
+OMA-LPPe-EOTD-CellID ::= INTEGER (0..65535)
+
+OMA-LPPe-EOTD-RequestIndex ::= INTEGER (1..16)
+OMA-LPPe-EOTD-SystemInfoIndex ::= INTEGER (1..32)
+
+OMA-LPPe-EOTD-MultiFrameCarrier ::= SEQUENCE {
+ bcchCarrier OMA-LPPe-EOTD-BCCHCarrier,
+ multiFrameOffset OMA-LPPe-EOTD-MultiFrameOffset,
+ ...
+}
+
+OMA-LPPe-EOTD-BCCHCarrier ::= INTEGER (0..1023)
+
+
+OMA-LPPe-EOTD-RequestLocationInformation ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-EOTD-ProvideCapabilities ::= SEQUENCE {
+ eotdSupport BIT STRING{ ueBased(0), ueAssisted(1) },
+ ...
+}
+
+
+OMA-LPPe-EOTD-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-EOTD-Error ::= CHOICE {
+ locationServerErrorCauses OMA-LPPe-EOTD-LocationServerErrorCauses,
+ targetDeviceErrorCauses OMA-LPPe-EOTD-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-EOTD-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED{ undefined,
+ assistanceDataForUEbasedEOTDnotAvailable,
+ assistanceDataForUEassistedEOTDnotAvailable,
+ ...},
+ ...
+}
+
+
+OMA-LPPe-EOTD-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED{ undefinedError,
+ notEnoughBTsforEOTD,
+ assistanceDataMissing,
+ referenceCellNotServingCell,
+ eotdMeasurementsNotSupported,
+ eotdMeasurementsNotAvailable,
+ uebasedEOTDnotSupported,
+ ...},
+ ...
+}
+
+
+OMA-LPPe-EOTD-TimeSlotScheme ::= ENUMERATED {
+ equalLength (0),
+ variousLength (1)
+}
+
+
+OMA-LPPe-EOTD-MultiFrameOffset ::= INTEGER (0..51)
+
+
+OMA-LPPe-EOTD-RoughRTD ::= INTEGER (0..1250)
+
+
+OMA-LPPe-EOTD-ExpectedOTD ::= SEQUENCE {
+ expectedOTD INTEGER(0..1250),
+ expOTDUncertainty INTEGER(0..7),
+ ...
+}
+
+
+OMA-LPPe-EOTD-ModuloTimeSlot ::= INTEGER(0..3)
+
+
+OMA-LPPe-OTDOA-UTRA-ProvideAssistanceData ::= SEQUENCE {
+ referenceCellInfo OMA-LPPe-OTDOA-UTRA-ReferenceCellInfo OPTIONAL,
+ neigborCellList OMA-LPPe-OTDOA-UTRA-NeighborCellList OPTIONAL,
+ otdoaUtraError OMA-LPPe-OTDOA-UTRA-Error OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-ReferenceCellInfo ::= SEQUENCE {
+ sfn INTEGER(0..4095) OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-info OMA-LPPe-OTDOA-UTRA-PrimaryCPICH-Info
+ },
+ tdd SEQUENCE {
+ cellAndChannelIdentity OMA-LPPe-OTDOA-UTRA-CellAndChannelIdentity
+ }
+ },
+ frequencyInfo OMA-LPPe-UTRA-FrequencyInfo OPTIONAL,
+ refPosAssist OMA-LPPe-OTDOA-UTRA-RefPosAssist OPTIONAL, --Cond UE-based
+ ipdl-parameters OMA-LPPe-OTDOA-UTRA-IPDL-Parameters OPTIONAL,
+ ...
+}
+
+
+
+OMA-LPPe-OTDOA-UTRA-RefPosAssist ::= SEQUENCE {
+ cellPosition CHOICE {
+ ellipsoidPoint Ellipsoid-Point,
+ ellipsoidPointWithAltitude EllipsoidPointWithAltitude,
+ ...
+ },
+ roundTripTime INTEGER (0..32766) OPTIONAL,
+ roundTripTimeExtension INTEGER (0..70274) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-NeighborCellList ::= SEQUENCE (SIZE (1..utra-maxCellMeas)) OF
+ OMA-LPPe-OTDOA-UTRA-NeighborCellInfo
+
+OMA-LPPe-OTDOA-UTRA-NeighborCellInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-info OMA-LPPe-OTDOA-UTRA-PrimaryCPICH-Info
+ },
+ tdd SEQUENCE {
+ cellAndChannelIdentity OMA-LPPe-OTDOA-UTRA-CellAndChannelIdentity
+ }
+ },
+ frequencyInfo OMA-LPPe-UTRA-FrequencyInfo OPTIONAL,
+ ipdl-parameters OMA-LPPe-OTDOA-UTRA-IPDL-Parameters OPTIONAL,
+ sfn-SFN-relTimeDifference OMA-LPPe-OTDOA-UTRA-SFN-SFN-RelTimeDifference1,
+ sfn-offsetValidity OMA-LPPe-OTDOA-UTRA-SFN-OffsetValidity OPTIONAL,
+ sfn-SFN-drift OMA-LPPe-OTDOA-UTRA-SFN-SFN-Drift OPTIONAL,
+ searchWindowSize OMA-LPPe-OTDOA-UTRA-SearchWindowSize,
+ positioningAssistance OMA-LPPe-OTDOA-UTRA-PositioningAssistance OPTIONAL, --Cond UEbased
+ ...
+}
+
+OMA-LPPe-OTDOA-UTRA-SFN-SFN-RelTimeDifference1 ::= SEQUENCE {
+ sfn-offset INTEGER (0..4095),
+ sfn-sfn-relTimeDifference INTEGER (0..38399)
+}
+
+OMA-LPPe-OTDOA-UTRA-PositioningAssistance ::= SEQUENCE {
+ relativeNorth INTEGER (-20000..20000),
+ relativeEast INTEGER (-20000..20000),
+ relativeAltitude INTEGER (-4000..4000) OPTIONAL,
+ fineSFN-SFN OMA-LPPe-OTDOA-UTRA-fineSFN-SFN,
+ roundTripTime INTEGER (0..32766) OPTIONAL,
+ roundTripTimeExtension INTEGER (0..70274) OPTIONAL,
+ ...
+}
+
+utra-maxCellMeas INTEGER ::= 32
+
+OMA-LPPe-OTDOA-UTRA-SFN-OffsetValidity ::= ENUMERATED { false }
+
+OMA-LPPe-OTDOA-UTRA-SFN-SFN-Drift ::= ENUMERATED {
+ sfnsfndrift0, sfnsfndrift1, sfnsfndrift2,
+ sfnsfndrift3, sfnsfndrift4, sfnsfndrift5,
+ sfnsfndrift8, sfnsfndrift10, sfnsfndrift15,
+ sfnsfndrift25, sfnsfndrift35, sfnsfndrift50,
+ sfnsfndrift65, sfnsfndrift80, sfnsfndrift100,
+ sfnsfndrift-1, sfnsfndrift-2, sfnsfndrift-3,
+ sfnsfndrift-4, sfnsfndrift-5, sfnsfndrift-8,
+ sfnsfndrift-10, sfnsfndrift-15, sfnsfndrift-25,
+ sfnsfndrift-35, sfnsfndrift-50, sfnsfndrift-65,
+ sfnsfndrift-80, sfnsfndrift-100,
+ ... }
+
+OMA-LPPe-OTDOA-UTRA-SearchWindowSize ::= ENUMERATED { c20, c40, c80, c160, c320,
+ c640, c1280, moreThan1280, ... }
+
+OMA-LPPe-OTDOA-UTRA-fineSFN-SFN ::= INTEGER (0..15)
+
+
+OMA-LPPe-OTDOA-UTRA-IPDL-Parameters ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ip-spacing OMA-LPPe-OTDOA-UTRA-IP-Spacing,
+ ip-length OMA-LPPe-OTDOA-UTRA-IP-Length,
+ ip-Offset INTEGER (0..9),
+ seed INTEGER (0..63),
+ burstModeParameters OMA-LPPe-OTDOA-UTRA-BurstModeParameters OPTIONAL
+ },
+ tdd SEQUENCE {
+ ip-spacing-tdd OMA-LPPe-OTDOA-UTRA-IP-Spacing-TDD,
+ ip-slot INTEGER (0..14),
+ ip-start INTEGER (0..4095),
+ ip-PCCPCH OMA-LPPe-OTDOA-UTRA-IP-PCCPCH OPTIONAL,
+ burstModeParameters OMA-LPPe-OTDOA-UTRA-BurstModeParameters
+ }
+ }
+}
+
+OMA-LPPe-OTDOA-UTRA-IP-Spacing ::= ENUMERATED { e5, e7, e10, e15, e20, e30, e40, e50}
+
+OMA-LPPe-OTDOA-UTRA-IP-Length ::= ENUMERATED {ipl5, ipl10}
+
+OMA-LPPe-OTDOA-UTRA-IP-Spacing-TDD ::= ENUMERATED { e30, e40, e50, e70, e100 }
+
+OMA-LPPe-OTDOA-UTRA-IP-PCCPCH ::= BOOLEAN
+
+OMA-LPPe-OTDOA-UTRA-BurstModeParameters ::= SEQUENCE {
+ burstStart INTEGER (0..15),
+ burstLength INTEGER (10..25),
+ burstFreq INTEGER (1..16)
+}
+
+
+OMA-LPPe-OTDOA-UTRA-RequestAssistanceData ::= SEQUENCE {
+ otdoaUtraAssistanceReq BIT STRING { ueAssisted (0), ueBased (1) } (SIZE(1..8)),
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-ProvideLocationInformation ::= SEQUENCE {
+ otdoaUtraMeasurement OMA-LPPe-OTDOA-UTRA-Measurement OPTIONAL,
+ otdoaUtraError OMA-LPPe-OTDOA-UTRA-Error OPTIONAL,
+ timeStampData OMA-LPPe-OTDOA-UTRA-TimeStampData OPTIONAL, --Cond UE-based
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-Measurement ::= SEQUENCE {
+ sfn INTEGER (0..4095),
+ modeSpecificInfoMeas CHOICE {
+ fdd SEQUENCE {
+ referenceCellIdentity OMA-LPPe-OTDOA-UTRA-PrimaryCPICH-Info,
+ ue-RX-TX-TimeDifferenceType2Info OMA-LPPe-OTDOA-UTRA-UE-RX-TX-TimeDifferenceType2Info,
+ ...
+ },
+ tdd SEQUENCE {
+ cellAndChannelIdentity OMA-LPPe-OTDOA-UTRA-CellAndChannelIdentity,
+ ...
+ }
+ },
+ neighborList OMA-LPPe-OTDOA-UTRA-NeighborList OPTIONAL,
+ ...
+}
+
+OMA-LPPe-OTDOA-UTRA-UE-RX-TX-TimeDifferenceType2Info ::= SEQUENCE {
+ ue-RX-TX-timeDifferenceType2 OMA-LPPe-OTDOA-UTRA-TimeDifferenceType2,
+ neighborQuality OMA-LPPe-OTDOA-UTRA-NeighborQuality
+}
+
+OMA-LPPe-OTDOA-UTRA-TimeDifferenceType2 ::= INTEGER(0..8191)
+
+OMA-LPPe-OTDOA-UTRA-NeighborList ::= SEQUENCE (SIZE (1..utra-maxCellMeas)) OF
+ OMA-LPPe-OTDOA-UTRA-Neighbor
+
+OMA-LPPe-OTDOA-UTRA-Neighbor ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ neighborIdentity OMA-LPPe-OTDOA-UTRA-PrimaryCPICH-Info OPTIONAL,
+ ue-RX-TX-timeDifferenceType2Info
+ OMA-LPPe-OTDOA-UTRA-UE-RX-TX-TimeDifferenceType2Info OPTIONAL,
+ ... },
+ tdd SEQUENCE {
+ cellAndChannelIdentity OMA-LPPe-OTDOA-UTRA-CellAndChannelIdentity OPTIONAL,
+ uarfcn ARFCN-ValueUTRA OPTIONAL,
+ ... }
+ },
+ neighborQuality OMA-LPPe-OTDOA-UTRA-NeighborQuality,
+ sfn-sfn-ObsTimeDifference2 OMA-LPPe-OTDOA-UTRA-SFN-SFN-ObsTimeDifference2,
+ ...
+}
+
+OMA-LPPe-OTDOA-UTRA-NeighborQuality ::= SEQUENCE {
+ quality OMA-LPPe-OTDOA-UTRA-Quality,
+ ...
+}
+
+OMA-LPPe-OTDOA-UTRA-SFN-SFN-ObsTimeDifference2 ::= INTEGER (0..65535)
+
+OMA-LPPe-OTDOA-UTRA-Quality ::= SEQUENCE {
+ stdResolution BIT STRING (SIZE (2)),
+ numberOfOTDOA-Measurements BIT STRING (SIZE (3)),
+ stdOfOTDOA-Measurements BIT STRING (SIZE (5)),
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-TimeStampData ::= SEQUENCE {
+ sfn INTEGER(0..4095),
+ utraCellGlobalID CellGlobalIdEUTRA-AndUTRA,
+ frequencyInfo OMA-LPPe-UTRA-FrequencyInfo OPTIONAL,
+ nonUniqueCellID CHOICE {
+ primaryScramblingCode OMA-LPPe-OTDOA-UTRA-PrimaryScramblingCode, --FDD
+ cellParametersId OMA-LPPe-OTDOA-UTRA-CellParametersID, --TDD
+ ...},
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-RequestLocationInformation ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-ProvideCapabilities ::= SEQUENCE {
+ ueBasedSupported BOOLEAN,
+ ueAssistedSupported BOOLEAN,
+ ipdlSupported BOOLEAN,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-Error ::= CHOICE {
+ locationServerErrorCauses OMA-LPPe-OTDOA-UTRA-LocationServerErrorCauses,
+ targetDeviceErrorCauses OMA-LPPe-OTDOA-UTRA-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED{ undefinedError,
+ assistanceDataForUEbasedOTDOAnotAvailable,
+ assistanceDataForUEassistedOTDOAnotAvailable,
+ ...},
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED{ undefinedError,
+ notEnoughOTDOA-cells,
+ assistanceDataMissing,
+ referenceCellNotServingCell,
+ otdoaMeasurementsNotSupported,
+ otdoaMeasurementsNotAvailable,
+ uebasedOTDOAnotSupported,
+ ...},
+ ...
+}
+
+
+OMA-LPPe-OTDOA-UTRA-PrimaryCPICH-Info ::= SEQUENCE {
+ primaryScramblingCode OMA-LPPe-OTDOA-UTRA-PrimaryScramblingCode
+}
+
+
+OMA-LPPe-OTDOA-UTRA-PrimaryScramblingCode ::= INTEGER (0..511)
+
+
+OMA-LPPe-OTDOA-UTRA-CellAndChannelIdentity ::= SEQUENCE {
+ burstType OMA-LPPe-OTDOA-UTRA-BurstType,
+ midambleShift OMA-LPPe-OTDOA-UTRA-MidambleShiftLong,
+ timeslot OMA-LPPe-OTDOA-UTRA-TimeSlotNumber,
+ cellParametersID OMA-LPPe-OTDOA-UTRA-CellParametersID,
+ ...
+}
+
+OMA-LPPe-OTDOA-UTRA-BurstType ::= ENUMERATED { type1, type2 }
+
+OMA-LPPe-OTDOA-UTRA-MidambleShiftLong ::= INTEGER (0..15)
+
+OMA-LPPe-OTDOA-UTRA-TimeSlotNumber ::= INTEGER (0..14)
+
+OMA-LPPe-OTDOA-UTRA-CellParametersID ::= INTEGER (0..127)
+
+
+OMA-LPPe-ECID-LTE-ProvideAssistanceData ::= SEQUENCE {
+ ecid-LTE-NetworkData SEQUENCE (SIZE (1..maxLTENetworks)) OF
+ OMA-LPPe-ECID-LTE-NetworkData OPTIONAL,
+ ecid-LTE-Error OMA-LPPe-ECID-LTE-Error OPTIONAL,
+ ...
+}
+
+maxLTENetworks INTEGER ::= 8
+
+
+OMA-LPPe-ECID-LTE-NetworkData ::= SEQUENCE {
+ plmn-Identity SEQUENCE {
+ mcc SEQUENCE (SIZE (3)) OF INTEGER (0..9),
+ mnc SEQUENCE (SIZE (2..3)) OF INTEGER (0..9),
+ ...
+ },
+ multiple-PLMNs BOOLEAN,
+ reference-location OMA-LPPe-ReferencePoint OPTIONAL, --Cond eNBlocations
+ ecid-lte-eNodeB-list SEQUENCE (SIZE (1..maxLTEeNBs)) OF OMA-LPPe-ECID-LTE-eNodeBData,
+ ecid-lte-HeNB-list SEQUENCE (SIZE (1..maxLTEHeNBs)) OF OMA-LPPe-ECID-LTE-HeNBData OPTIONAL,
+ ...
+}
+
+maxLTEeNBs INTEGER ::= 32
+
+maxLTEHeNBs INTEGER ::= 128
+
+
+OMA-LPPe-ECID-LTE-eNodeBData ::= SEQUENCE {
+ relative-location OMA-LPPe-RelativeLocation OPTIONAL,
+ ecid-lte-eNodeB-CellData SEQUENCE (SIZE (1..maxLTEMacroCells)) OF OMA-LPPe-ECID-LTE-CellData,
+ ...
+}
+
+maxLTEMacroCells INTEGER ::= 8
+
+
+OMA-LPPe-ECID-LTE-HeNBData ::= SEQUENCE {
+ relative-location OMA-LPPe-RelativeLocation OPTIONAL,
+ location-reliability INTEGER (1..100) OPTIONAL,
+ coverageArea OMA-LPPe-WLANFemtoCoverageArea OPTIONAL,
+ ecid-lte-HeNB-CellData OMA-LPPe-ECID-LTE-CellData,
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-CellData ::= SEQUENCE {
+ physCellId INTEGER (0..503) OPTIONAL, --Cond AtLeastOne
+ cellIdentity BIT STRING (SIZE (28)) OPTIONAL, --Cond AtLeastOne
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ rs-transmit-power INTEGER (-127..128) OPTIONAL,
+ antennaPortConfig ENUMERATED {port1, ports2, ports4, ... } OPTIONAL,
+ antenna-gain INTEGER (-127..128) OPTIONAL,
+ beam-width INTEGER (1..360) OPTIONAL,
+ transmit-direction INTEGER (0..360) OPTIONAL,
+ frequency-accuracy INTEGER (0..100),
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-RequestAssistanceData ::= SEQUENCE {
+ eNBrequestedAD BIT STRING { bslist (0),
+ bslocation (1),
+ transmit-power (2),
+ antennaPortConfig (3),
+ antenna-gain (4),
+ beam-width (5),
+ transmit-direction (6),
+ frequency-accuracy (7),
+ non-serving (8) } (SIZE(1..16)) OPTIONAL,
+ heNBrequestedAD BIT STRING { bslist (0),
+ bslocation (1),
+ locationreliability (2),
+ transmit-power (3),
+ antennaPortConfig (4),
+ frequency-accuracy (5),
+ coveragearea (6),
+ non-serving (7) } (SIZE(1..16)) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-ProvideLocationInformation ::= SEQUENCE {
+ ecid-LTE-CombinedLocationInformation SEQUENCE (SIZE (1..maxLTEECIDSize))
+ OF OMA-LPPe-ECID-LTE-LocationInformationList OPTIONAL,
+ ecid-LTE-Error OMA-LPPe-ECID-LTE-Error OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ECID-LTE-LocationInformationList ::= SEQUENCE {
+ ecid-LTE-LocationInformation OMA-LPPe-ECID-LTE-LocationInformation,
+ relativeTimeStamp INTEGER (0..65535) OPTIONAL,
+ servingFlag BOOLEAN,
+ ...
+}
+
+maxLTEECIDSize INTEGER ::= 64
+
+
+OMA-LPPe-ECID-LTE-LocationInformation ::= SEQUENCE {
+ lpp-ECID-SignalMeasurementInformation ECID-SignalMeasurementInformation,
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-RequestLocationInformation ::= SEQUENCE {
+ requestedMeasurements BIT STRING { rsrp (0),
+ rsrq (1),
+ ueRxTx (2),
+ non-serving (3),
+ historic (4) } (SIZE(1..8)),
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-ProvideCapabilities ::= SEQUENCE {
+ ecid-lte-MeasSupported BIT STRING {rsrp (0),
+ rsrq (1),
+ ueRxTx (2),
+ non-serving (3),
+ historic (4) } (SIZE(1..8)),
+ ecid-lte-eNodeB-ADSupported BIT STRING {bslist (0),
+ bslocation (1),
+ transmit-power (2),
+ antennaPortConfig (3),
+ antenna-gain (4),
+ beam-width (5),
+ transmit-direction (6),
+ frequency-accuracy (7),
+ non-serving (8) } (SIZE(1..16)),
+ ecid-utra-HeNB-ADSupported BIT STRING {bslist (0),
+ bslocation (1),
+ locationreliability (2),
+ transmit-power (3),
+ antennaPortConfig (4),
+ frequency-accuracy (5),
+ coveragearea (6),
+ non-serving (7) } (SIZE(1..16)),
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-Error ::= CHOICE {
+ locationServerErrorCauses OMA-LPPe-ECID-LTE-LocationServerErrorCauses,
+ targetDeviceErrorCauses OMA-LPPe-ECID-LTE-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ requestedADNotAvailable,
+ notAllrequestedADAvailable,
+ ...
+ },
+ eNodeBMandatoryDataUnavailable NULL OPTIONAL,
+ eNodeBLocationsUnavailable NULL OPTIONAL,
+ eNodeBcellTransmitPowerUnavailable NULL OPTIONAL,
+ eNodeBcellAntennaPortConfigUnavailable NULL OPTIONAL,
+ eNodeBcallAntennaGainUnavailable NULL OPTIONAL,
+ eNodeBcellBeamWidthUnavailable NULL OPTIONAL,
+ eNodeBcellTransmitDirectionUnavailable NULL OPTIONAL,
+ eNodeBcellFrequencyAccuracyUnavailable NULL OPTIONAL,
+ eNodeBnonservingADUnavailable NULL OPTIONAL,
+ heNBMandatoryDataUnavailable NULL OPTIONAL,
+ heNBLocationUnavailable NULL OPTIONAL,
+ heNBLocationReliabilityUnavailable NULL OPTIONAL,
+ heNBcellTransmitPowerUnavailable NULL OPTIONAL,
+ heNBcellAntennaPortConfigUnavailable NULL OPTIONAL,
+ heNBcellFrequencyAccuracyUnavailable NULL OPTIONAL,
+ heNBCoverageAreaUnavailable NULL OPTIONAL,
+ heNBnonservingADUnavailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ECID-LTE-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED {undefined,
+ requestedMeasurementsNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ ...
+ },
+ rsrpMeasurementNotPossible NULL OPTIONAL,
+ rsrqMeasurementNotPossible NULL OPTIONAL,
+ ueRxTxMeasurementNotPossible NULL OPTIONAL,
+ non-servingMeasurementsNotAvailable NULL OPTIONAL,
+ historicMeasurementsNotAvailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ECID-GSM-ProvideAssistanceData ::= SEQUENCE {
+ ecid-gsm-NetworkData SEQUENCE (SIZE (1..maxGSMNetworks))
+ OF OMA-LPPe-ECID-GSM-NetworkData OPTIONAL,
+ ecid-gsm-Error OMA-LPPe-ECID-GSM-Error OPTIONAL,
+ ...
+}
+
+maxGSMNetworks INTEGER ::= 8
+
+
+OMA-LPPe-ECID-GSM-NetworkData ::= SEQUENCE {
+ plmn-Identity SEQUENCE {
+ mcc SEQUENCE (SIZE (3)) OF INTEGER (0..9),
+ mnc SEQUENCE (SIZE (2..3)) OF INTEGER (0..9)
+ },
+ reference-location OMA-LPPe-ReferencePoint OPTIONAL, --Cond BSlocations
+ base-station-list SEQUENCE (SIZE (1..maxGSMBaseStations)) OF OMA-LPPe-ECID-GSM-BaseStationData,
+ ...
+}
+
+maxGSMBaseStations INTEGER ::= 32
+
+
+OMA-LPPe-ECID-GSM-BaseStationData ::= SEQUENCE {
+ relative-location OMA-LPPe-RelativeLocation OPTIONAL,
+ ecid-gsm-CellData SEQUENCE (SIZE (1..maxGSMCells)) OF OMA-LPPe-ECID-GSM-CellData,
+ ...
+}
+
+maxGSMCells INTEGER ::= 8
+
+
+OMA-LPPe-ECID-GSM-CellData ::= SEQUENCE {
+ cellNonUniqueIDGERAN OMA-LPPe-CellNonUniqueIDGERAN OPTIONAL, --Cond AtLeastOne
+ cellLocalIDGERAN OMA-LPPe-CellLocalIdGERAN OPTIONAL, --Cond AtLeastOne
+ transmit-power INTEGER (-127..128) OPTIONAL,
+ antenna-gain INTEGER (-127..128) OPTIONAL,
+ beam-width INTEGER (1..360) OPTIONAL,
+ transmit-direction INTEGER (0..360) OPTIONAL,
+ frequency-accuracy INTEGER (0..100) OPTIONAL,
+ ...
+}
+
+
+
+
+OMA-LPPe-ECID-GSM-RequestAssistanceData ::= SEQUENCE {
+ requestedAD BIT STRING { bslist (0),
+ bslocation (1),
+ transmit-power (2),
+ antenna-gain (3),
+ beam-width (4),
+ transmit-direction (5),
+ frequency-accuracy (6),
+ non-serving (7)
+ } (SIZE(1..16)),
+ ...
+}
+
+
+OMA-LPPe-ECID-GSM-ProvideLocationInformation ::= SEQUENCE {
+ ecid-GSM-CombinedLocationInformation SEQUENCE (SIZE (1..maxGSMECIDSize))
+ OF OMA-LPPe-ECID-GSM-LocationInformationList OPTIONAL,
+ ecid-GSM-Error OMA-LPPe-ECID-GSM-Error OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ECID-GSM-LocationInformationList ::= SEQUENCE {
+ ecid-GSM-LocationInformation OMA-LPPe-ECID-GSM-LocationInformation,
+ relativeTimeStamp INTEGER (0..65535) OPTIONAL,
+ servingFlag BOOLEAN,
+ ...
+}
+
+maxGSMECIDSize INTEGER ::= 64
+
+
+
+OMA-LPPe-ECID-GSM-LocationInformation ::= SEQUENCE {
+ cellGlobalIdGERAN CellGlobalIdGERAN,
+ rxLevel INTEGER (0..63) OPTIONAL,
+ tA INTEGER(0..255) OPTIONAL,
+ nMR-GERAN OMA-LPPe-NMR-GERAN OPTIONAL,
+ ...
+}
+
+OMA-LPPe-NMR-GERAN ::= SEQUENCE (SIZE (1..15)) OF SEQUENCE {
+ cellNonUniqueIDGERAN OMA-LPPe-CellNonUniqueIDGERAN,
+ cellLocalIDGERAN OMA-LPPe-CellLocalIdGERAN OPTIONAL,
+ rxLevel INTEGER (0..63),
+ ...
+}
+
+
+OMA-LPPe-ECID-GSM-RequestLocationInformation ::= SEQUENCE {
+ requestedMeasurements BIT STRING { rxLevel (0),
+ tA (1),
+ nMR-GERAN (2),
+ non-serving (3),
+ historic (4) } (SIZE(1..8)),
+ ...
+}
+
+
+OMA-LPPe-ECID-GSM-ProvideCapabilities ::= SEQUENCE {
+ ecid-gsm-MeasSupported BIT STRING { rxLevel (0),
+ tA (1),
+ nMR-GERAN (2),
+ non-serving (3),
+ historic (4) } (SIZE(1..8)),
+ ecid-gsm-ADSupported BIT STRING { bslist (0),
+ bslocation (1),
+ transmit-power (2),
+ antenna-gain (3),
+ beam-width (4),
+ transmit-direction (5),
+ frequency-accuracy (6),
+ non-serving (7) } (SIZE(1..16)),
+ ...
+}
+
+
+OMA-LPPe-ECID-GSM-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-ECID-GSM-Error ::= CHOICE {
+ locationServerErrorCauses OMA-LPPe-ECID-GSM-LocationServerErrorCauses,
+ targetDeviceErrorCauses OMA-LPPe-ECID-GSM-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-ECID-GSM-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ requestedADNotAvailable,
+ notAllrequestedADAvailable,
+ ...
+ },
+ mandatoryDataUnavailable NULL OPTIONAL,
+ bsLocationsUnavailable NULL OPTIONAL,
+ cellTransmitPowerUnavailable NULL OPTIONAL,
+ callAntennaGainUnavailable NULL OPTIONAL,
+ cellBeamWidthUnavailable NULL OPTIONAL,
+ cellTransmitDirectionUnavailable NULL OPTIONAL,
+ cellFrequencyAccuracyUnavailable NULL OPTIONAL,
+ nonservingADUnavailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ECID-GSM-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ requestedMeasurementsNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ ...
+ },
+ rxLevelMeasurementNotPossible NULL OPTIONAL,
+ taMeasurementNotPossible NULL OPTIONAL,
+ nMRMeasurementNotPossible NULL OPTIONAL,
+ non-servingMeasurementsNotAvailable NULL OPTIONAL,
+ historicMeasurementsNotAvailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-ProvideAssistanceData ::= SEQUENCE {
+ ecid-UTRA-NetworkData SEQUENCE (SIZE (1..maxUTRANetworks))
+ OF OMA-LPPe-ECID-UTRA-NetworkData OPTIONAL,
+ ecid-UTRA-Error OMA-LPPe-ECID-UTRA-Error OPTIONAL,
+ ...
+}
+
+maxUTRANetworks INTEGER ::= 8
+
+
+OMA-LPPe-ECID-UTRA-NetworkData ::= SEQUENCE {
+ plmn-Identity SEQUENCE {
+ mcc SEQUENCE (SIZE (3)) OF INTEGER (0..9),
+ mnc SEQUENCE (SIZE (2..3)) OF INTEGER (0..9)
+ },
+ multiple-PLMNs BOOLEAN,
+ reference-location OMA-LPPe-ReferencePoint OPTIONAL, --Cond nodeBlocations
+ ecid-utra-nodeB-list SEQUENCE (SIZE (1..maxUTRAnodeBs))
+ OF OMA-LPPe-ECID-UTRA-NodeBData OPTIONAL,
+ ecid-utra-HNB-list SEQUENCE (SIZE (1..maxUTRAHNBs)) OF OMA-LPPe-ECID-UTRA-HNBData OPTIONAL,
+ ...
+}
+
+maxUTRAnodeBs INTEGER ::= 32
+
+maxUTRAHNBs INTEGER ::= 128
+
+
+OMA-LPPe-ECID-UTRA-NodeBData ::= SEQUENCE {
+ relative-location OMA-LPPe-RelativeLocation OPTIONAL,
+ ecid-utra-nodeB-CellData SEQUENCE (SIZE (1..maxUTRAMacroCells)) OF
+ OMA-LPPe-ECID-UTRA-CellData,
+ ...
+}
+
+maxUTRAMacroCells INTEGER ::= 8
+
+
+OMA-LPPe-ECID-UTRA-HNBData ::= SEQUENCE {
+ relative-location OMA-LPPe-RelativeLocation OPTIONAL,
+ location-reliability INTEGER (1..100) OPTIONAL,
+ coverageArea OMA-LPPe-WLANFemtoCoverageArea OPTIONAL,
+ ecid-utra-HNB-CellData OMA-LPPe-ECID-UTRA-CellData,
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-CellData ::= SEQUENCE {
+ cellIdentity BIT STRING (SIZE (32)) OPTIONAL, --Cond AtLeastOne
+ modeSpecificInfo CHOICE {
+ fdd
+ SEQUENCE {
+ primaryCPICH-Scrambling-Code OMA-LPPe-OTDOA-UTRA-PrimaryScramblingCode,
+ primaryCPICH-Tx-Power INTEGER (-127..128) OPTIONAL,
+ uarfcn-dl ARFCN-ValueUTRA,
+ ...
+ },
+ tdd
+ SEQUENCE {
+ cellParametersID OMA-LPPe-OTDOA-UTRA-CellParametersID,
+ primaryCCPCH-Tx-Power INTEGER (-127..128) OPTIONAL,
+ uarfcn-nt ARFCN-ValueUTRA,
+ ...
+ }
+ } OPTIONAL, --Cond AtLeastOne
+ antenna-gain INTEGER (-127..128) OPTIONAL,
+ beam-width INTEGER (1..360) OPTIONAL,
+ transmit-direction INTEGER (0..360) OPTIONAL,
+ frequency-accuracy INTEGER (0..100) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-RequestAssistanceData ::= SEQUENCE {
+ nBrequestedAD BIT STRING { bslist (0),
+ bslocation (1),
+ transmit-power (2),
+ antenna-gain (3),
+ beam-width (4),
+ transmit-direction (5),
+ frequency-accuracy (6),
+ non-serving (7) } (SIZE(1..16)) OPTIONAL,
+ hNBrequestedAD BIT STRING { bslist (0),
+ bslocation (1),
+ locationreliability (2),
+ transmit-power (3),
+ frequency-accuracy (4),
+ coveragearea (5),
+ non-serving (6) } (SIZE(1..16)) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-ProvideLocationInformation ::= SEQUENCE {
+ ecid-UTRA-CombinedLocationInformation SEQUENCE (SIZE (1..maxECIDUTRASize))
+ OF OMA-LPPe-ECID-UTRA-LocationInformationList OPTIONAL,
+ ecid-Error OMA-LPPe-ECID-UTRA-Error OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ECID-UTRA-LocationInformationList ::= SEQUENCE {
+ ecid-utra-LocationInformation OMA-LPPe-ECID-UTRA-LocationInformation,
+ relativeTimeStamp INTEGER (0..65535) OPTIONAL,
+ servingFlag BOOLEAN,
+ ...
+}
+
+maxECIDUTRASize INTEGER ::= 64
+
+
+OMA-LPPe-ECID-UTRA-LocationInformation ::= SEQUENCE {
+ cellGlobalIdUTRA CellGlobalIdEUTRA-AndUTRA,
+ frequencyInfo OMA-LPPe-UTRA-FrequencyInfo OPTIONAL,
+ primaryScramblingCode OMA-LPPe-OTDOA-UTRA-PrimaryScramblingCode OPTIONAL, --Cond FDD
+ measuredResultsList OMA-LPPe-ECID-UTRA-MeasuredResultsList OPTIONAL,
+ cellParametersId OMA-LPPe-OTDOA-UTRA-CellParametersID OPTIONAL, --Cond TDD
+ utratimingAdvance OMA-LPPe-ECID-UTRA-UTRATimingAdvance OPTIONAL, --Cond TDD
+ ...
+}
+
+OMA-LPPe-ECID-UTRA-UTRATimingAdvance ::= SEQUENCE {
+ tA INTEGER (0..8191),
+ tAResolution OMA-LPPe-ECID-UTRA-TAResolution OPTIONAL,
+ chipRate OMA-LPPe-ECID-UTRA-ChipRate OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ECID-UTRA-TAResolution ::= ENUMERATED {
+ res1-0chip,
+ res0-5chip,
+ res0-125chip,
+ ...
+}
+
+OMA-LPPe-ECID-UTRA-ChipRate ::= ENUMERATED {
+ tdd128,
+ tdd384,
+ tdd768,
+ ...
+}
+
+
+OMA-LPPe-UTRA-FrequencyInfo ::= SEQUENCE {
+ modeSpecificInfo OMA-LPPe-UTRA-ModeSpecificInfo,
+ ...
+}
+
+OMA-LPPe-UTRA-ModeSpecificInfo ::= CHOICE {
+ fdd OMA-LPPe-UTRA-FrequencyInfoFDD,
+ tdd OMA-LPPe-UTRA-FrequencyInfoTDD,
+ ...
+}
+
+OMA-LPPe-UTRA-FrequencyInfoFDD ::= SEQUENCE {
+ uarfcn-UL ARFCN-ValueUTRA OPTIONAL,
+ uarfcn-DL ARFCN-ValueUTRA,
+ ...}
+
+OMA-LPPe-UTRA-FrequencyInfoTDD ::= SEQUENCE {
+ uarfcn-Nt ARFCN-ValueUTRA,
+ ...
+}
+
+OMA-LPPe-ECID-UTRA-MeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ OMA-LPPe-ECID-UTRA-MeasuredResults
+
+OMA-LPPe-ECID-UTRA-MeasuredResults ::= SEQUENCE {
+ frequencyInfo OMA-LPPe-UTRA-FrequencyInfo,
+ utra-CarrierRSSI OMA-LPPe-ECID-UTRA-CarrierRSSI OPTIONAL,
+ cellMeasuredResultsList OMA-LPPe-ECID-UTRA-CellMeasuredResultsList OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ECID-UTRA-CellMeasuredResultsList ::= SEQUENCE (SIZE (1..utra-maxCellMeas)) OF
+ OMA-LPPe-ECID-UTRA-CellMeasuredResults
+
+OMA-LPPe-ECID-UTRA-CarrierRSSI ::= INTEGER(0..127)
+
+OMA-LPPe-ECID-UTRA-CellMeasuredResults ::= SEQUENCE {
+ cellIdentity BIT STRING (SIZE (32)) OPTIONAL,
+ modeSpecificInfo CHOICE
+ {
+ fdd
+ SEQUENCE {
+ primaryCPICH-Info OMA-LPPe-OTDOA-UTRA-PrimaryScramblingCode,
+ cpich-Ec-N0 OMA-LPPe-ECID-UTRA-CPICH-Ec-N0 OPTIONAL,
+ cpich-RSCP OMA-LPPe-ECID-UTRA-CPICH-RSCP OPTIONAL,
+ pathloss OMA-LPPe-ECID-UTRA-Pathloss OPTIONAL,
+ ...
+ },
+ tdd
+ SEQUENCE {
+ cellParametersID OMA-LPPe-OTDOA-UTRA-CellParametersID,
+ primaryCCPCH-RSCP OMA-LPPe-ECID-UTRA-PrimaryCCPCH-RSCP OPTIONAL,
+ pathloss OMA-LPPe-ECID-UTRA-Pathloss OPTIONAL,
+ ...
+ }
+ },
+ ...
+}
+
+OMA-LPPe-ECID-UTRA-PrimaryCCPCH-RSCP ::= INTEGER(0..127)
+
+OMA-LPPe-ECID-UTRA-CPICH-Ec-N0 ::= INTEGER(0..63)
+
+OMA-LPPe-ECID-UTRA-CPICH-RSCP ::= INTEGER(0..127)
+
+OMA-LPPe-ECID-UTRA-Pathloss ::= INTEGER(46..173)
+
+maxFreq INTEGER ::= 8
+
+
+OMA-LPPe-ECID-UTRA-RequestLocationInformation ::= SEQUENCE {
+ requestedMeasurements BIT STRING { measuredResultsList (0),
+ tdd-timingAdvance (1),
+ mRL-utra-CarrierRSSI (2),
+ mRL-FDD-cpich-Ec-N0 (3),
+ mRL-FDD-cpich-RSCP (4),
+ mRL-FDD-pathloss (5),
+ mRL-TDD-primaryCCPCH-RSCP (6),
+ mRL-TDD-pathloss (7),
+ non-serving (8),
+ historic (9) } (SIZE(1..16)),
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-ProvideCapabilities ::= SEQUENCE {
+ ecid-utra-MeasSupported BIT STRING { measuredResultsList (0),
+ tdd-timingAdvance (1),
+ mRL-utra-CarrierRSSI (2),
+ mRL-FDD-cpich-Ec-N0 (3),
+ mRL-FDD-cpich-RSCP (4),
+ mRL-FDD-pathloss (5),
+ mRL-TDD-primaryCCPCH-RSCP (6),
+ mRL-TDD-pathloss (7),
+ non-serving (8),
+ historic (9) } (SIZE(1..16)),
+ ecid-utra-nodeB-ADSupported BIT STRING { bslist (0),
+ bslocation (1),
+ transmit-power (2),
+ antenna-gain (3),
+ beam-width (4),
+ transmit-direction (5),
+ frequency-accuracy (6),
+ non-serving (7) } (SIZE(1..16)),
+ ecid-utra-HNB-ADSupported BIT STRING { bslist (0),
+ bslocation (1),
+ locationreliability (2),
+ transmit-power (3),
+ frequency-accuracy (4),
+ coveragearea (5),
+ non-serving (6) } (SIZE(1..16)),
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-Error ::= CHOICE {
+ locationServerErrorCauses OMA-LPPe-ECID-UTRA-LocationServerErrorCauses,
+ targetDeviceErrorCauses OMA-LPPe-ECID-UTRA-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ requestedADNotAvailable,
+ notAllrequestedADAvailable,
+ ...
+ },
+ nodeBMandatoryDataUnavailable NULL OPTIONAL,
+ nodeBLocationUnavailable NULL OPTIONAL,
+ nodeBcellTransmitPowerUnavailable NULL OPTIONAL,
+ nodeBcallAntennaGainUnavailable NULL OPTIONAL,
+ nodeBcellBeamWidthUnavailable NULL OPTIONAL,
+ nodeBcellTransmitDirectionUnavailable NULL OPTIONAL,
+ nodeBcellFrequencyAccuracyUnavailable NULL OPTIONAL,
+ nodeBnonservingADUnavailable NULL OPTIONAL,
+ hNBMandatoryDataUnavailable NULL OPTIONAL,
+ hNBLocationUnavailable NULL OPTIONAL,
+ hNBLocationReliabilityUnavailable NULL OPTIONAL,
+ hNBcellTransmitPowerUnavailable NULL OPTIONAL,
+ hNBcellFrequencyAccuracyUnavailable NULL OPTIONAL,
+ hNBCoverageAreaUnavailable NULL OPTIONAL,
+ hNBnonservingADUnavailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-ECID-UTRA-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ requestedMeasurementsNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ ...
+ },
+ mRLMeasurementsNotPossible NULL OPTIONAL,
+ tdd-timingAdvanceMeasurementNotPossible NULL OPTIONAL,
+ mRL-utra-CarrierRSSIMeasurementNotPossible NULL OPTIONAL,
+ mRL-FDD-cpich-Ec-N0MeasurementNotPossible NULL OPTIONAL,
+ mRL-FDD-cpich-RSCPMeasurementNotPossible NULL OPTIONAL,
+ mRL-FDD-pathlossMeasurementNotPossible NULL OPTIONAL,
+ mRL-TDD-primaryCCPCH-RSCPMeasurementNotPossible NULL OPTIONAL,
+ mRL-TDD-pathlossMeasurementNotPossible NULL OPTIONAL,
+ non-servingMeasurementsNotAvailable NULL OPTIONAL,
+ historicMeasurementsNotAvailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-ProvideAssistanceData ::= SEQUENCE {
+ wlan-DataSet SEQUENCE (SIZE (1..maxWLANDataSets)) OF OMA-LPPe-WLAN-DataSet OPTIONAL,
+ wlan-AP-Error OMA-LPPe-WLAN-AP-Error OPTIONAL,
+ ...
+}
+
+maxWLANDataSets INTEGER ::= 8
+
+
+OMA-LPPe-WLAN-DataSet ::= SEQUENCE {
+ plmn-Identity SEQUENCE {
+ mcc SEQUENCE (SIZE (3)) OF INTEGER (0..9),
+ mnc SEQUENCE (SIZE (2..3)) OF INTEGER (0..9)
+ } OPTIONAL,
+ reference-point OMA-LPPe-ReferencePoint OPTIONAL, --Cond APlocations
+ supported-channels-11a Supported-Channels-11a OPTIONAL,
+ supported-channels-11bg Supported-Channels-11bg OPTIONAL,
+ wlan-ap-list SEQUENCE (SIZE (1..maxWLANAPs)) OF OMA-LPPe-WLAN-AP-Data,
+ ...
+}
+
+maxWLANAPs INTEGER ::= 128
+
+Supported-Channels-11a ::= SEQUENCE {
+ ch34 BOOLEAN,
+ ch36 BOOLEAN,
+ ch38 BOOLEAN,
+ ch40 BOOLEAN,
+ ch42 BOOLEAN,
+ ch44 BOOLEAN,
+ ch46 BOOLEAN,
+ ch48 BOOLEAN,
+ ch52 BOOLEAN,
+ ch56 BOOLEAN,
+ ch60 BOOLEAN,
+ ch64 BOOLEAN,
+ ch149 BOOLEAN,
+ ch153 BOOLEAN,
+ ch157 BOOLEAN,
+ ch161 BOOLEAN
+}
+
+Supported-Channels-11bg ::= SEQUENCE {
+ ch1 BOOLEAN,
+ ch2 BOOLEAN,
+ ch3 BOOLEAN,
+ ch4 BOOLEAN,
+ ch5 BOOLEAN,
+ ch6 BOOLEAN,
+ ch7 BOOLEAN,
+ ch8 BOOLEAN,
+ ch9 BOOLEAN,
+ ch10 BOOLEAN,
+ ch11 BOOLEAN,
+ ch12 BOOLEAN,
+ ch13 BOOLEAN,
+ ch14 BOOLEAN
+}
+
+
+OMA-LPPe-WLAN-AP-Data ::= SEQUENCE {
+ wlan-ap-id OMA-LPPe-WLAN-AP-ID,
+ relative-location OMA-LPPe-RelativeLocation OPTIONAL,
+ location-reliability INTEGER (1..100) OPTIONAL,
+ wlan-ap-Type-Data SEQUENCE (SIZE (1..maxWLANTypes)) OF OMA-LPPe-WLAN-AP-Type-Data,
+ coverageArea OMA-LPPe-WLANFemtoCoverageArea OPTIONAL, --Cond oneonly
+ ...
+}
+
+maxWLANTypes INTEGER ::= 5
+
+
+OMA-LPPe-WLAN-AP-Type-Data ::= SEQUENCE {
+ wlan-AP-Type OMA-LPPe-WLAN-AP-Type,
+ transmit-power INTEGER (-127..128) OPTIONAL,
+ antenna-gain INTEGER (-127..128) OPTIONAL,
+ coverageArea OMA-LPPe-WLANFemtoCoverageArea OPTIONAL, --Cond oneonly
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-RequestAssistanceData ::= SEQUENCE {
+ requestedAD BIT STRING { aplist (0),
+ aplocation (1),
+ locationreliability (2),
+ transmit-power (3),
+ antenna-gain (4),
+ coveragearea (5),
+ non-serving (6) } (SIZE(1..16)),
+ requestedAPTypes OMA-LPPe-WLAN-AP-Type-List,
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-ProvideLocationInformation ::= SEQUENCE {
+ wlan-AP-CombinedLocationInformation SEQUENCE (SIZE (1..maxWLANAPSize)) OF
+ OMA-LPPe-WLAN-AP-LocationInformationList OPTIONAL,
+ wlan-AP-Error OMA-LPPe-WLAN-AP-Error OPTIONAL,
+ ...
+}
+
+OMA-LPPe-WLAN-AP-LocationInformationList ::= SEQUENCE {
+ wlan-AP-LocationInformation OMA-LPPe-WLAN-AP-LocationInformation,
+ relativeTimeStamp INTEGER (0..65535) OPTIONAL,
+ servingFlag BOOLEAN,
+ ...
+}
+
+maxWLANAPSize INTEGER ::= 64
+
+
+
+OMA-LPPe-WLAN-AP-LocationInformation ::= SEQUENCE {
+ apMACAddress OMA-LPPe-WLAN-AP-ID,
+ apSSID OCTET STRING (SIZE (1..32)) OPTIONAL,
+ apSignaltoNoise INTEGER(-127..128) OPTIONAL,
+ apDeviceType OMA-LPPe-WLAN-AP-Type OPTIONAL,
+ apPHYtype OMA-LPPe-WLAN-AP-PHY-Type OPTIONAL,
+ apSignalStrength INTEGER(-127..128) OPTIONAL,
+ apChannelFrequency INTEGER(0..256) OPTIONAL,
+ apRoundTripDelay OMA-LPPe-WLAN-RTD OPTIONAL,
+ ueTransmitPower INTEGER(-127..128) OPTIONAL,
+ ueAntennaGain INTEGER (-127..128) OPTIONAL,
+ apReportedLocation OMA-LPPe-WLAN-ReportedLocation OPTIONAL,
+ ...,
+ apTransmitPower INTEGER (-127..128) OPTIONAL,
+ apAntennaGain INTEGER (-127..128) OPTIONAL,
+ ueSignaltoNoise INTEGER (-127..128) OPTIONAL,
+ ueSignalStrength INTEGER (-127..128) OPTIONAL,
+ apSignalStrengthDelta INTEGER (0..1) OPTIONAL, -- Cond APSSDelta
+ ueSignalStrengthDelta INTEGER (0..1) OPTIONAL, -- Cond UESSDelta
+ apSignaltoNoiseDelta INTEGER (0..1) OPTIONAL, -- Cond APSNDelta
+ ueSignaltoNoiseDelta INTEGER (0..1) OPTIONAL, -- Cond UESNDelta
+ operatingClass INTEGER (0..255) OPTIONAL
+}
+
+OMA-LPPe-WLAN-AP-PHY-Type ::= ENUMERATED { unknown, any, fhss, dsss, irbaseband, ofdm, hrdsss, erp,
+ ht, ihv, ... }
+
+OMA-LPPe-WLAN-RTD ::= SEQUENCE {
+ rTDValue INTEGER(0..16777215),
+ rTDUnits OMA-LPPe-WLAN-RTDUnits,
+ rTDAccuracy INTEGER(0..255) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-WLAN-RTDUnits ::= ENUMERATED {
+ microseconds,
+ hundredsofnanoseconds,
+ tensofnanoseconds,
+ nanoseconds,
+ tenthsofnanoseconds,
+ ...
+}
+
+OMA-LPPe-WLAN-ReportedLocation ::= SEQUENCE {
+
+ locationDataLCI OMA-LPPe-WLAN-LocationDataLCI OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-WLAN-LocationDataLCI ::= SEQUENCE {
+ latitudeResolution BIT STRING (SIZE (6)),
+ latitude BIT STRING (SIZE (34)),
+ longitudeResolution BIT STRING (SIZE (6)),
+ longitude BIT STRING (SIZE (34)),
+ altitudeType BIT STRING (SIZE (4)),
+ altitudeResolution BIT STRING (SIZE (6)),
+ altitude BIT STRING (SIZE (30)),
+ datum BIT STRING (SIZE (8)),
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-RequestLocationInformation ::= SEQUENCE {
+ requestedMeasurements BIT STRING {
+ apSSID (0),
+ apSN (1),
+ apDevType (2),
+ apPhyType (3),
+ apRSSI (4),
+ apChanFreq (5),
+ apRTD (6),
+ ueTP (7),
+ ueAG (8),
+ apRepLoc (9),
+ non-serving (10),
+ historic (11),
+ apTP (12),
+ apAG (13),
+ ueSN (14),
+ ueRSSI (15)} (SIZE(1..16)),
+ ... ,
+ additionalRequestedMeasurements BIT STRING {
+ oc (0)} (SIZE(1..16)) OPTIONAL
+}
+
+
+OMA-LPPe-WLAN-AP-ProvideCapabilities ::= SEQUENCE {
+ wlan-ecid-MeasSupported BIT STRING {
+ apSSID (0),
+ apSN (1),
+ apDevType (2),
+ apPhyType (3),
+ apRSSI (4),
+ apChanFreq (5),
+ apRTD (6),
+ ueTP (7),
+ ueAG (8),
+ apRepLoc (9),
+ non-serving (10),
+ historic (11),
+ apTP (12),
+ apAG (13),
+ ueSN (14),
+ ueRSSI (15)} (SIZE(1..16)),
+ wlan-types-Supported OMA-LPPe-WLAN-AP-Type-List OPTIONAL,
+ ap-Capability OMA-LPPe-WLAN-AP-Capability OPTIONAL,
+ wlan-ap-ADSupported BIT STRING {aplist (0),
+ aplocation (1),
+ locationreliability (2),
+ transmit-power (3),
+ antenna-gain (4),
+ coveragearea (5),
+ non-serving (6) } (SIZE(1..16)),
+ ...,
+ additional-wlan-ecid-MeasSupported BIT STRING {
+ oc (0)} (SIZE(1..16)) OPTIONAL
+
+}
+
+OMA-LPPe-WLAN-AP-Capability ::= SEQUENCE {
+ apMACAddress OMA-LPPe-WLAN-AP-ID,
+ apTypes OMA-LPPe-WLAN-AP-Type-List,
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-Error ::= CHOICE {
+ locationServerErrorCauses OMA-LPPe-WLAN-AP-LocationServerErrorCauses,
+ targetDeviceErrorCauses OMA-LPPe-WLAN-AP-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED {undefined,
+ requestedADNotAvailable,
+ notAllrequestedADAvailable,
+ ...
+ },
+ apMandatoryDataUnavailable NULL OPTIONAL,
+ apLocationsUnavailable NULL OPTIONAL,
+ apLocationReliabilityUnavailable NULL OPTIONAL,
+ apTransmitPowerUnavailable NULL OPTIONAL,
+ apAntennaGainUnavailable NULL OPTIONAL,
+ apCoverageAreaUnavailable NULL OPTIONAL,
+ nonservingADUnavailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-WLAN-AP-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED {undefined,
+ requestedMeasurementsNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ ...
+ },
+ apSSIDnotAvailable NULL OPTIONAL,
+ apSNMeasurementNotPossible NULL OPTIONAL,
+ apDevTypeNotAvailable NULL OPTIONAL,
+ apPhyTypeNotAvailable NULL OPTIONAL,
+ apRSSIMeasurementNotPossible NULL OPTIONAL,
+ apChanFreqNotAvailable NULL OPTIONAL,
+ apRTDMeasurementNotPossible NULL OPTIONAL,
+ ueTPNotAvailable NULL OPTIONAL,
+ ueAGNotAvailable NULL OPTIONAL,
+ apRecLocNotAvailable NULL OPTIONAL,
+ non-servingMeasurementsNotAvailable NULL OPTIONAL,
+ historicMeasurementsNotAvailable NULL OPTIONAL,
+ ...,
+ apTPNotAvailable NULL OPTIONAL,
+ apAGNotAvailable NULL OPTIONAL,
+ ueSNNotAvailable NULL OPTIONAL,
+ ueRSSINotAvailable NULL OPTIONAL,
+ ocNotAvailable NULL OPTIONAL
+}
+
+
+OMA-LPPe-ECID-WiMax-ProvideLocationInformation ::= SEQUENCE {
+ ecid-wimax-CombinedLocationInformation SEQUENCE (SIZE (1..maxWiMaxECIDSize)) OF
+ OMA-LPPe-ECID-WiMax-LocationInformationList OPTIONAL,
+ ecid-wimax-Error OMA-LPPe-ECID-WiMax-Error OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ECID-WiMax-LocationInformationList ::= SEQUENCE {
+ ecid-wimax-LocationInformation OMA-LPPe-ECID-WiMax-LocationInformation,
+ relativeTimeStamp INTEGER (0..65535) OPTIONAL,
+ servingFlag BOOLEAN,
+ ...
+}
+
+maxWiMaxECIDSize INTEGER ::= 1264
+
+
+
+OMA-LPPe-ECID-WiMax-LocationInformation ::= SEQUENCE {
+ wimaxBsID OMA-LPPe-ECID-WiMax-WimaxBsID,
+ wimaxRTD OMA-LPPe-ECID-WiMax-WimaxRTD OPTIONAL,
+ wimaxNMRList OMA-LPPe-ECID-WiMax-WimaxNMRList OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ECID-WiMax-WimaxBsID ::= SEQUENCE {
+ bsID-MSB BIT STRING (SIZE(24)) OPTIONAL,
+ bsID-LSB BIT STRING (SIZE(24)),
+ ...
+}
+
+OMA-LPPe-ECID-WiMax-WimaxRTD ::= SEQUENCE {
+ rTD INTEGER (0..65535),
+ rTDstd INTEGER (0..1023) OPTIONAL,
+ ...
+}
+
+OMA-LPPe-ECID-WiMax-WimaxNMRList ::= SEQUENCE (SIZE (1..maxWimaxBSMeas)) OF
+ OMA-LPPe-ECID-WiMax-WimaxNMR
+
+OMA-LPPe-ECID-WiMax-WimaxNMR ::= SEQUENCE {
+ wimaxBsID OMA-LPPe-ECID-WiMax-WimaxBsID,
+ relDelay INTEGER (-32768..32767) OPTIONAL,
+ relDelaystd INTEGER (0..1023) OPTIONAL,
+ rSSI INTEGER (0..255) OPTIONAL,
+ rSSIstd INTEGER (0..63) OPTIONAL,
+ bSTxPower INTEGER (0..255) OPTIONAL,
+ cINR INTEGER (0..255) OPTIONAL,
+ cINRstd INTEGER (0..63) OPTIONAL,
+ bSLocation OMA-LPPe-WLAN-ReportedLocation OPTIONAL,
+ ...
+}
+
+maxWimaxBSMeas INTEGER ::= 32
+
+
+OMA-LPPe-ECID-WiMax-RequestLocationInformation ::= SEQUENCE {
+ requestedMeasurements BIT STRING { rTD (0),
+ rTDstd (1),
+ nMR (2),
+ nMRrelDelay (3),
+ nMRrelDelaystd (4),
+ nMRrSSI (5),
+ nMRrSSIstd (6),
+ nMRbSTxPower (7),
+ nMRcINR (8),
+ nMRcINRstd (9),
+ nMRbSLocation (10),
+ non-serving (11),
+ historic (12) } (SIZE(1..16)),
+ ...
+}
+
+
+OMA-LPPe-ECID-WiMax-ProvideCapabilities ::= SEQUENCE {
+ ecid-wimax-MeasSupported BIT STRING { rTD (0),
+ rTDstd (1),
+ nMR (2),
+ nMRrelDelay (3),
+ nMRrelDelaystd (4),
+ nMRrSSI (5),
+ nMRrSSIstd (6),
+ nMRbSTxPower (7),
+ nMRcINR (8),
+ nMRcINRstd (9),
+ nMRbSLocation (10),
+ non-serving (11),
+ historic (12) } (SIZE(1..16)),
+ ...
+}
+
+
+OMA-LPPe-ECID-WiMax-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-ECID-WiMax-Error ::= CHOICE {
+ locationServerErrorCauses OMA-LPPe-ECID-WiMax-LocationServerErrorCauses,
+ targetDeviceErrorCauses OMA-LPPe-ECID-WiMax-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-ECID-WiMax-LocationServerErrorCauses ::= SEQUENCE {
+ cause ENUMERATED {undefined,
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-ECID-WiMax-TargetDeviceErrorCauses ::= SEQUENCE {
+ cause ENUMERATED { undefined,
+ requestedMeasurementsNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ ...
+ },
+ rTDMeasurementNotPossible NULL OPTIONAL,
+ rTDstdMeasurementNotPossible NULL OPTIONAL,
+ nMRMeasurementNotPossible NULL OPTIONAL,
+ nMRrelDelayMeasurementNotPossible NULL OPTIONAL,
+ nMRrelDelaystdMeasurementNotPossible NULL OPTIONAL,
+ nMRrSSIMeasurementNotPossible NULL OPTIONAL,
+ nMRrSSIstdMeasurementNotPossible NULL OPTIONAL,
+ nMRbSTxPowerMeasurementNotPossible NULL OPTIONAL,
+ nMRcINRMeasurementNotPossible NULL OPTIONAL,
+ nMRcINRstdMeasurementNotPossible NULL OPTIONAL,
+ nMRbSLocationNotAvailable NULL OPTIONAL,
+ non-servingMeasurementsNotAvailable NULL OPTIONAL,
+ historicMeasurementsNotAvailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-Sensor-ProvideAssistanceData ::= SEQUENCE {
+ ...,
+ atmosphericPressureAD OMA-LPPe-AtmosphericPressureAD OPTIONAL
+}
+
+
+OMA-LPPe-AtmosphericPressureAD ::= SEQUENCE {
+ referencePressure INTEGER (-1024..1023),
+ period SEQUENCE {
+ pressureValidityPeriod OMA-LPPe-ValidityPeriod,
+ referencePressureRate INTEGER (-128..127) OPTIONAL,
+ ...
+ } OPTIONAL,
+ area SEQUENCE {
+ pressureValidityArea OMA-LPPe-PressureValidityArea,
+ gN-pressure INTEGER (-128..127) OPTIONAL,
+ gE-pressure INTEGER (-128..127) OPTIONAL,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+OMA-LPPe-PressureValidityArea ::= SEQUENCE {
+ centerPoint Ellipsoid-Point, -- coordinates of the center of the rectangular validity area
+ validityAreaWidth INTEGER (1..128), -- units in Kilometers
+ validityAreaHeight INTEGER (1..128), -- units in Kilometers
+ ...
+}
+
+
+
+OMA-LPPe-Sensor-RequestAssistanceData ::= SEQUENCE {
+ ...,
+ pressureSensorAD OMA-LPPe-PressureSensorAD OPTIONAL
+}
+
+
+OMA-LPPe-PressureSensorAD ::= SEQUENCE {
+ ...
+}
+
+
+OMA-LPPe-Sensor-ProvideLocationInformation ::= SEQUENCE {
+ motionStateList OMA-LPPe-Sensor-MotionStateList OPTIONAL,
+ sensorError OMA-LPPe-Sensor-Error OPTIONAL,
+ ...
+}
+
+
+
+OMA-LPPe-Sensor-MotionStateList ::= SEQUENCE (SIZE(1..8)) OF OMA-LPPe-Sensor-MotionStateElement
+
+OMA-LPPe-Sensor-MotionStateElement ::= SEQUENCE {
+ primaryMotionState ENUMERATED{
+ unknown,
+ stationary,
+ pedestrian,
+ running,
+ cycling,
+ car,
+ train,
+ aeroplane,
+ boat,
+ fidgeting,
+ ...
+ },
+ confidence INTEGER(0..99),
+ secondaryMotionState BIT STRING {
+ stationary (0),
+ pedestrian (1),
+ running (2),
+ cycling (3),
+ car (4),
+ train (5),
+ aeroplane (6),
+ boat (7),
+ fidgeting (8) } (SIZE(1..16)) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-Sensor-RequestLocationInformation ::= SEQUENCE {
+ motionStateReq OMA-LPPe-Sensor-MotionStateRequest OPTIONAL, --Cond MotionSateReq
+ ...
+}
+
+
+OMA-LPPe-Sensor-MotionStateRequest ::= SEQUENCE {
+ secondaryMotionStateRequest NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-Sensor-ProvideCapabilities ::= SEQUENCE {
+ motionStateSupport NULL OPTIONAL, --Cond MotionStateSupport
+ secondarySupport NULL OPTIONAL, --Cond SecondarySupport
+ ...,
+ barometricPressureSupport NULL OPTIONAL --Cond BarometricPressureSupport
+}
+
+
+OMA-LPPe-Sensor-RequestCapabilities ::= SEQUENCE {
+ ...
+}
+
+
+
+OMA-LPPe-Sensor-Error ::= CHOICE {
+ targetError OMA-LPPe-Sensor-TargetError,
+ ...
+}
+
+OMA-LPPe-Sensor-TargetError ::= SEQUENCE {
+ motionStateError ENUMERATED { primaryMotionStateNotAvailable,
+ primaryMotionStateNotSupported,
+ ... } OPTIONAL,
+ secondaryMotionStateError ENUMERATED { secondaryMotionStateNotAvailable,
+ secondaryMotionStateNotSupported,
+ ... } OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-ProvideAssistanceData ::= SEQUENCE {
+ srnGroup CHOICE {
+ srnGroupList OMA-LPPe-SRN-SRNgroupList,
+ srnGroupUpdateResponse OMA-LPPe-SRN-SRNgroupUpdateResponse,
+ ...
+ } OPTIONAL,
+ antennaPattern OMA-LPPe-SRN-AntennaPattern OPTIONAL, --Cond AntennaPattReq
+ srnError OMA-LPPe-SRN-Error OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-SRNgroupList ::= SEQUENCE {
+ incompleteFlag BOOLEAN,
+ defaultReferencePoint OMA-LPPe-ReferencePoint OPTIONAL, --Cond IfNoRefPoint
+ groupList SEQUENCE (SIZE (1..64)) OF OMA-LPPe-SRN-SRNgroup,
+ ...
+ }
+
+OMA-LPPe-SRN-SRNgroup ::= SEQUENCE {
+ srnGroupID OMA-LPPe-SRN-SRNgroupUniqueID OPTIONAL,
+ defaultSRNtype OMA-LPPe-SRN-SRNtype OPTIONAL,
+ referencePoint OMA-LPPe-ReferencePoint OPTIONAL,
+ globalOrientation NULL OPTIONAL,
+ srnsInGroupList SEQUENCE (SIZE (1..1024)) OF OMA-LPPe-SRN-SRNinfo,
+ ...
+}
+
+OMA-LPPe-SRN-SRNinfo ::= SEQUENCE {
+ srnID OMA-LPPe-SRN-SRNid,
+ srnType OMA-LPPe-SRN-SRNtype OPTIONAL, --Cond NotDefaultType
+ relativePosition OMA-LPPe-RelativeLocation,
+ orientation OMA-LPPe-Orientation OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-SRNgroupUpdateResponse ::= SEQUENCE (SIZE (1..8)) OF
+ OMA-LPPe-SRN-SRNgroupUpdateResponseElement
+
+OMA-LPPe-SRN-SRNgroupUpdateResponseElement ::= SEQUENCE {
+ srnGroupID OMA-LPPe-SRN-SRNgroupUniqueID OPTIONAL,
+ targetDataValidity ENUMERATED{ targetDataValid,
+ targetDataInValidAndUpdatedDataWillBeProvided,
+ targetDataInValidButServerWillNotProvideNewData,
+ ...},
+ updatedSRNgroup OMA-LPPe-SRN-SRNgroup OPTIONAL, --Cond InvalidAndNewDataAvailable
+ ...
+}
+
+
+OMA-LPPe-SRN-AntennaPattern ::= SEQUENCE (SIZE (1..8)) OF OMA-LPPe-SRN-AntennaPatternElement
+
+OMA-LPPe-SRN-AntennaPatternElement::= SEQUENCE {
+ identification SEQUENCE {
+ vendorOrOperator OMA-LPPe-VendorOrOperatorID,
+ antennaPatternID INTEGER(0..65535),
+ ...
+ },
+ antennaData CHOICE {
+ antennaPattern OMA-LPPe-SRN-AntennaPatternForChannels,
+ antennaContainer OCTET STRING,
+ ...
+ },
+ ...
+}
+
+
+
+OMA-LPPe-SRN-AntennaPatternForChannels ::= SEQUENCE {
+ evenGrid SEQUENCE {
+ inAzimuth INTEGER(1..200),
+ inElevation INTEGER(1..150)
+ } OPTIONAL, --Cond EvenGrid
+ patternList SEQUENCE (SIZE (1..maxChannels)) OF OMA-LPPe-SRN-ChannelResponse,
+ ...
+}
+
+OMA-LPPe-SRN-ChannelResponse ::= SEQUENCE {
+ channelNumber INTEGER(1..maxChannels),
+ responseInElevation SEQUENCE (SIZE (7..901)) OF OMA-LPPe-SRN-ResponseInElevation,
+ ...
+}
+
+OMA-LPPe-SRN-ResponseInElevation ::= SEQUENCE {
+ elevation INTEGER(0..900) OPTIONAL, --Cond NotEven
+ responseInAzimuth SEQUENCE (SIZE (18..3601)) OF OMA-LPPe-SRN-ResponseInAzimuth,
+ ...
+}
+
+OMA-LPPe-SRN-ResponseInAzimuth::= SEQUENCE {
+ azimuth INTEGER(0..3599) OPTIONAL, --Cond NotEven
+ response OMA-LPPe-ComplexNumber,
+ ...
+ }
+
+OMA-LPPe-ComplexNumber ::= SEQUENCE {
+ amplitude INTEGER(0..1000),
+ phase INTEGER(-1800..1799)
+}
+
+maxChannels INTEGER ::= 512
+
+
+OMA-LPPe-SRN-RequestAssistanceData ::= SEQUENCE {
+ srnGroup CHOICE {
+ srnGroupRequest OMA-LPPe-SRN-SRNgroupRequest,
+ srnGroupUpdateRequest OMA-LPPe-SRN-SRNgroupUpdateRequest,
+ ...
+ } OPTIONAL,
+ antennaPatternRequest OMA-LPPe-SRN-AntennaPatternRequest OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-SRNgroupRequest ::= SEQUENCE {
+ doNotProvideList OMA-LPPe-SRN-SRNProvideList OPTIONAL,
+ doProvideList OMA-LPPe-SRN-SRNProvideList OPTIONAL,
+ ...
+}
+
+OMA-LPPe-SRN-SRNProvideList ::= SEQUENCE {
+ groupList SEQUENCE (SIZE (1..256)) OF OMA-LPPe-SRN-SRNgroupUniqueID OPTIONAL,
+ categoryList SEQUENCE (SIZE (1..16)) OF OMA-LPPe-SRN-Category OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-SRNgroupUpdateRequest ::= SEQUENCE (SIZE (1..64)) OF
+ OMA-LPPe-SRN-SRNgroupUpdateRequestElement
+
+OMA-LPPe-SRN-SRNgroupUpdateRequestElement ::= SEQUENCE {
+ srnGroupID OMA-LPPe-SRN-SRNgroupUniqueID,
+ provideIndicationOnly NULL OPTIONAL,
+ inTheGroup SEQUENCE (SIZE (1..1024)) OF OMA-LPPe-SRN-SRNid OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-AntennaPatternRequest ::= SEQUENCE (SIZE (1..8)) OF
+ OMA-LPPe-SRN-AntennaPatternRequestElement
+
+OMA-LPPe-SRN-AntennaPatternRequestElement ::= SEQUENCE {
+ antennaPatternID SEQUENCE {
+ vendorOrOperator OMA-LPPe-VendorOrOperatorID,
+ antennaPatternID INTEGER(0..65535),
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-SRN-ProvideLocationInformation ::= SEQUENCE {
+ srnMeasurementList SEQUENCE (SIZE (1..64)) OF OMA-LPPe-SRN-MeasurementElement OPTIONAL,
+ srnError OMA-LPPe-SRN-Error OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-MeasurementElement ::= SEQUENCE {
+ srnID OMA-LPPe-SRN-SRNid,
+ srnCategory OMA-LPPe-SRN-Category OPTIONAL, --Cond IfKnown
+ srnGroupID OMA-LPPe-SRN-SRNgroupUniqueID OPTIONAL, --Cond IfKnown
+ measurementList SEQUENCE (SIZE (1..64)) OF OMA-LPPe-SRN-srnMeasurementElement OPTIONAL,
+ ...
+}
+
+OMA-LPPe-SRN-srnMeasurementElement ::= SEQUENCE {
+ relativeTimeStamp INTEGER(0..1000) OPTIONAL, --Cond IfNotFirst
+ rssi INTEGER(-128..127) OPTIONAL,
+ rtd OMA-LPPe-WLAN-RTD OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-RequestLocationInformation ::= SEQUENCE {
+ requestInfo SEQUENCE (SIZE (1..16)) OF OMA-LPPe-SRN-ReqLocInfo-Category,
+ ...
+}
+
+OMA-LPPe-SRN-ReqLocInfo-Category ::= SEQUENCE {
+ category OMA-LPPe-SRN-Category,
+ multipleMeasurements ENUMERATED{ forbidden(0),
+ allowed(1),
+ requested(2), ... } OPTIONAL,
+ allowedMeasurements OMA-LPPe-SRN-MeasurementMask OPTIONAL,
+ historicMeasurementsRequested NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-ProvideCapabilities ::= SEQUENCE {
+ capabilitiesPerSRNCategory SEQUENCE (SIZE (1..16)) OF
+ OMA-LPPe-SRN-ProvideCapabilitiesElement OPTIONAL,
+ ...
+}
+
+OMA-LPPe-SRN-ProvideCapabilitiesElement::= SEQUENCE {
+ srnCategory OMA-LPPe-SRN-Category,
+ supportedMeasurements OMA-LPPe-SRN-MeasurementMask OPTIONAL,
+ supportedAssistanceData BIT STRING {
+ srnGroup (0),
+ antennaPattern (1) } (SIZE(1..16)),
+ historicMeasurementsSupported NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-RequestCapabilities ::= SEQUENCE {
+ capabilitiesRequestedFor SEQUENCE (SIZE (1..16)) OF OMA-LPPe-SRN-Category OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-Error ::= CHOICE {
+ srnLocationServerErrorCauses OMA-LPPe-SRN-LocationServerErrorCauses,
+ srnTargetDeviceErrorCauses OMA-LPPe-SRN-TargetDeviceErrorCauses,
+ ...
+}
+
+
+OMA-LPPe-SRN-LocationServerErrorCauses ::= SEQUENCE {
+ groupErrors ENUMERATED{ undefined,
+ someGroupOrCategoryOrSRNidUnknownOrUnsupported,
+ allGroupAndCategoryOrSRNidUnknownOrUnsupported,
+ noSRNgroupsNearby,
+ ...} OPTIONAL,
+ groupUpdateErrors ENUMERATED { undefined,
+ allSRNgroupIDsUnknown,
+ allSRNgroupIDsknownButSomeSRNgroupVersionsUnknown,
+ allSRNgroupIDsknownAndAllSRNgroupVersionsUnknown,
+ someSRNgroupIDsUnknown,
+ someSRNgroupVersionsUnknownAndAllSRNGroupVersionsUnknown,
+ someSRNgroupIDsAndSomeSRNgroupVersionsUnknown,
+ inTheGroupInformationDoesNotMatchWithGroupID,
+ ...} OPTIONAL,
+ srnAntennaErrors ENUMERATED { undefined,
+ someAntennaPatternIDsUnknown,
+ allAntennaPatternIDsUnknown,
+ ... } OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-TargetDeviceErrorCauses ::= SEQUENCE {
+ srnErrorsPerCategory SEQUENCE (SIZE (1..16)) OF OMA-LPPe-SRN-TargetDeviceError,
+ ...
+}
+
+OMA-LPPe-SRN-TargetDeviceError ::= SEQUENCE {
+ category OMA-LPPe-SRN-Category,
+ srnErrors ENUMERATED{ undefined,
+ requestedMeasurementsNotAvailable,
+ notAllrequestedMeasurementsPossible,
+ categoryNotSupported,
+ ...},
+ rssiNotAvailable NULL OPTIONAL,
+ rtdNotAvailable NULL OPTIONAL,
+ multipleSetsNotAvailable NULL OPTIONAL,
+ historicMeasurementsNotAvailable NULL OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-SRNgroupUniqueID ::= SEQUENCE {
+ providerID OMA-LPPe-VendorOrOperatorID,
+ providerAssignedID OCTET STRING,
+ srnDataVersion INTEGER (0..4294967295) OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-SRNtype ::= SEQUENCE {
+ srnCategory OMA-LPPe-SRN-Category,
+ srnERP INTEGER(-300..500) OPTIONAL,
+ srnAntennaInfo SEQUENCE {
+ antennaPatternID INTEGER(0..65535),
+ switchingPatternID INTEGER(0..65535) OPTIONAL,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+
+OMA-LPPe-SRN-Category ::= SEQUENCE {
+ srnTechnologyType OMA-LPPe-SRN-Technologies,
+ srnVendorInformation SEQUENCE {
+ vendor OMA-LPPe-VendorOrOperatorID,
+ vendorInfo OCTET STRING OPTIONAL,
+ ...
+ } OPTIONAL, --Cond other
+ ...
+}
+
+
+OMA-LPPe-SRN-SRNid ::= SEQUENCE {
+ srn-id CHOICE {
+ mac BIT STRING(SIZE(48)),
+ nfc SEQUENCE {
+ manufacturer BIT STRING(SIZE(8)),
+ uniqueNumber BIT STRING(SIZE(48)),
+ ...
+ },
+ mobileCode SEQUENCE {
+ registryID BIT STRING(SIZE(12)),
+ remainingPart OCTET STRING(SIZE(1..16)),
+ resolutionIdentifier OCTET STRING(SIZE(1..18)),
+ ...
+ },
+ other OCTET STRING,
+ ...
+ },
+ ...
+}
+
+
+OMA-LPPe-SRN-Technologies ::= SEQUENCE {
+ srnTechnologies ENUMERATED{ bt, btle, nfc, mobileCode, other, ... },
+ ...
+}
+
+
+OMA-LPPe-SRN-MeasurementMask ::= SEQUENCE {
+ srnMeasurements BIT STRING { rssi(0),
+ rtd (1) } (SIZE(1..16)),
+ ...
+}
+
+
+END \ No newline at end of file
diff --git a/epan/dissectors/asn1/lppe/Makefile.am b/epan/dissectors/asn1/lppe/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/lppe/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/lppe/Makefile.common b/epan/dissectors/asn1/lppe/Makefile.common
new file mode 100644
index 0000000000..07deca4c61
--- /dev/null
+++ b/epan/dissectors/asn1/lppe/Makefile.common
@@ -0,0 +1,44 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = lppe
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ LPPe.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF = \
+ $(builddir)/../lpp/lpp-exp.cnf
+
+$(builddir)/../lpp/lpp-exp.cnf:
+ (cd $(builddir)/../lpp && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/lppe/Makefile.nmake b/epan/dissectors/asn1/lppe/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/lppe/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/lppe/lppe.cnf b/epan/dissectors/asn1/lppe/lppe.cnf
new file mode 100644
index 0000000000..f279eead30
--- /dev/null
+++ b/epan/dissectors/asn1/lppe/lppe.cnf
@@ -0,0 +1,35 @@
+# lppe.cnf
+# llpe conformation file
+# Copyright 2012-2014 Pascal Quantin
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.IMPORT ../lpp/lpp-exp.cnf
+
+#.PDU
+OMA-LPPe-MessageExtension
+#.END
+
+#.OMIT_ASSIGNMENT
+OMA-LPPe-ver1-1-BroadcastContainer
+OMA-LPPe-ver1-1-BroadcastMessage
+OMA-LPPe-ver1-1-BroadcastControlIEs
+OMA-LPPe-ver1-1-CipheringIEs
+OMA-LPPe-ver1-1-DigitalSignature
+
+#.FN_HDR OMA-LPPe-MessageExtension
+
+ proto_tree_add_item(tree, proto_lppe, tvb, 0, -1, ENC_NA);
+
+ col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "LPPe");
+
+#.FN_BODY OMA-LPPe-Uri
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:/?#[]@!$&'()*+,;=-._~%%", 85,
+ NULL);
+
+#.END
+
diff --git a/epan/dissectors/asn1/lppe/packet-lppe-template.c b/epan/dissectors/asn1/lppe/packet-lppe-template.c
new file mode 100644
index 0000000000..a0d306a5aa
--- /dev/null
+++ b/epan/dissectors/asn1/lppe/packet-lppe-template.c
@@ -0,0 +1,97 @@
+/* packet-lppe.c
+ * Routines for LPP Extensions (LLPe) packet dissection
+ * Copyright 2012-2014, Pascal Quantin <pascal.quantin@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref Open Mobile Alliance OMA-TS-LPPe V1_1-20140108-C
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-lpp.h"
+
+#define PNAME "LTE Positioning Protocol Extensions (LLPe)"
+#define PSNAME "LPPe"
+#define PFNAME "lppe"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+void proto_register_lppe(void);
+void proto_reg_handoff_lppe(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_lppe = -1;
+
+#include "packet-lppe-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_lppe = -1;
+#include "packet-lppe-ett.c"
+
+/* Include constants */
+#include "packet-lppe-val.h"
+
+
+#include "packet-lppe-fn.c"
+
+
+/*--- proto_register_lpp -------------------------------------------*/
+void proto_register_lppe(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-lppe-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_lppe,
+#include "packet-lppe-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_lppe = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("lppe", dissect_OMA_LPPe_MessageExtension_PDU, proto_lppe);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_lppe, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+
+}
+
+
+/*--- proto_reg_handoff_lpp ---------------------------------------*/
+void
+proto_reg_handoff_lppe(void)
+{
+
+}
+
+
diff --git a/epan/dissectors/asn1/lte-rrc/CMakeLists.txt b/epan/dissectors/asn1/lte-rrc/CMakeLists.txt
new file mode 100644
index 0000000000..7879c75a7d
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/CMakeLists.txt
@@ -0,0 +1,56 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME lte-rrc )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ EUTRA-InterNodeDefinitions.asn
+ EUTRA-RRC-Definitions.asn
+ EUTRA-Sidelink-Preconf.asn
+ EUTRA-UE-Variables.asn
+ PC5-RRC-Definitions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -L )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn
new file mode 100644
index 0000000000..fbfb2b8fc9
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn
@@ -0,0 +1,419 @@
+-- 3GPP TS 36.331 V13.0.0 (2015-12)
+--
+EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ AntennaInfoCommon,
+ AntennaInfoDedicated-v10i0,
+ ARFCN-ValueEUTRA,
+ ARFCN-ValueEUTRA-v9e0,
+ ARFCN-ValueEUTRA-r9,
+ CellIdentity,
+ C-RNTI,
+ DL-DCCH-Message,
+ DRB-Identity,
+ DRB-ToReleaseList,
+ FreqBandIndicator-r11,
+ InDeviceCoexIndication-r11,
+ MasterInformationBlock,
+ maxBands,
+ maxFreq,
+ maxDRB,
+ maxSCell-r10,
+ maxSCell-r13,
+ maxSCell-Plus1,
+ maxServCell-r10,
+ maxServCell-Plus1,
+ maxServCell-r13,
+ MBMSInterestIndication-r11,
+ MeasConfig,
+ MeasGapConfig,
+ OtherConfig-r9,
+ PhysCellId,
+ P-Max,
+ PowerCoordinationInfo-r12,
+ SidelinkUEInformation-r12,
+ SL-CommConfig-r12,
+ SL-DiscConfig-r12,
+ RadioResourceConfigDedicated,
+ RSRP-Range,
+ RSRQ-Range,
+ RSRQ-Range-v1250,
+ RS-SINR-Range-r13,
+ SCellToAddModList-r10,
+ SCellToAddModListExt-r13,
+ SCG-ConfigPartSCG-r12,
+ SecurityAlgorithmConfig,
+ SCellIndex-r10,
+ SCellIndex-r13,
+ SCellToReleaseList-r10,
+ SCellToReleaseListExt-r13,
+ ServCellIndex-r10,
+ ServCellIndexFull-r13,
+ ShortMAC-I,
+ MeasResultSSTD-r13,
+ SystemInformationBlockType1,
+ SystemInformationBlockType1-v890-IEs,
+ SystemInformationBlockType2,
+ UEAssistanceInformation-r11,
+ UECapabilityInformation,
+ UE-CapabilityRAT-ContainerList,
+ UE-RadioPagingInfo-r12,
+ WLAN-OffloadConfig-r12
+FROM EUTRA-RRC-Definitions;
+
+
+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 HandoverPreparationInformation-v920-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v920-IEs ::= SEQUENCE {
+ ue-ConfigRelease-r9 ENUMERATED {
+ rel9, rel10, rel11, rel12, v10j0, v11e0,
+ v1280, spare1, ...} OPTIONAL, -- Cond HO2
+ nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL,
+ nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL
+}
+
+-- Late non-critical extensions:
+HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE {
+ -- Following field is only for pre REL-10 late non-critical extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE {
+ as-Config-v10j0 AS-Config-v10j0 OPTIONAL,
+ -- Following field is only for late non-critical extensions from REL-10
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non-critical extensions:
+HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE {
+ as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2
+ nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v1130-IEs ::= SEQUENCE {
+ as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2
+ nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v1250-IEs ::= SEQUENCE {
+ ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3
+ as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SCG-Config-r12 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ scg-Config-r12 SCG-Config-r12-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SCG-Config-r12-IEs ::= SEQUENCE {
+ scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SCG-ConfigInfo-r12 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SCG-ConfigInfo-r12-IEs ::= SEQUENCE {
+ radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL,
+ sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL,
+ measGapConfig-r12 MeasGapConfig OPTIONAL,
+ powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL,
+ scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL,
+ eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL,
+ scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL,
+ mbmsInterestIndication-r12 OCTET STRING (CONTAINING
+ MBMSInterestIndication-r11) OPTIONAL,
+ measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL,
+ drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL,
+ drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL,
+ sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL,
+ sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL,
+ p-Max-r12 P-Max OPTIONAL,
+ nonCriticalExtension SCG-ConfigInfo-v13x0-IEs OPTIONAL
+}
+
+SCG-ConfigInfo-v13x0-IEs ::= SEQUENCE {
+ measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL,
+ measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL,
+ sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL,
+ sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12
+
+DRB-InfoSCG-r12 ::= SEQUENCE {
+ eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ drb-Identity-r12 DRB-Identity,
+ drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup
+ ...
+}
+
+SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12
+
+SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (maxSCell-Plus1..maxSCell-r13)) OF Cell-ToAddMod-r12
+
+Cell-ToAddMod-r12 ::= SEQUENCE {
+ sCellIndex-r12 SCellIndex-r10,
+ cellIdentification-r12 SEQUENCE {
+ physCellId-r12 PhysCellId,
+ dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9
+ } OPTIONAL, -- Cond SCellAdd
+ measResultCellToAdd-r12 SEQUENCE {
+ rsrpResult-r12 RSRP-Range,
+ rsrqResult-r12 RSRQ-Range
+ } OPTIONAL, -- Cond SCellAdd2
+ ...,
+ [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL,
+ measResultCellToAdd-v13xy SEQUENCE {
+ rs-sinrResult-r13 RS-SINR-Range-r13
+ } OPTIONAL -- Cond SCellAdd2
+ ]]
+}
+
+MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12
+
+MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (maxServCell-Plus1..maxServCell-r13)) OF MeasResultServCellSCG-r12
+
+MeasResultServCellSCG-r12 ::= SEQUENCE {
+ servCellId-r12 ServCellIndex-r10,
+ measResultSCell-r12 SEQUENCE {
+ rsrpResultSCell-r12 RSRP-Range,
+ rsrqResultSCell-r12 RSRQ-Range
+ },
+ ...,
+ [[ servCellId-r13 ServCellIndexFull-r13 OPTIONAL,
+ measResultSCell-v13xy SEQUENCE {
+ rs-sinrResultSCell-r13 RS-SINR-Range-r13
+ } OPTIONAL
+ ]]
+}
+
+SCG-ConfigRestrictInfo-r12 ::= SEQUENCE {
+ maxSCH-TB-BitsDL-r12 INTEGER (1..100),
+ maxSCH-TB-BitsUL-r12 INTEGER (1..100)
+}
+
+
+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
+}
+
+
+UERadioPagingInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioPagingInformation-r12-IEs ::= SEQUENCE {
+ ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12),
+ nonCriticalExtension UERadioPagingInformation-v13xy-IEs OPTIONAL
+}
+
+UERadioPagingInformation-v13xy-IEs ::= SEQUENCE {
+ supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+
+}
+
+
+AS-Config ::= SEQUENCE {
+ sourceMeasConfig MeasConfig,
+ sourceRadioResourceConfig RadioResourceConfigDedicated,
+ sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
+ sourceUE-Identity C-RNTI,
+ sourceMasterInformationBlock MasterInformationBlock,
+ sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS
+ {..., nonCriticalExtension ABSENT}),
+ sourceSystemInformationBlockType2 SystemInformationBlockType2,
+ antennaInfoCommon AntennaInfoCommon,
+ sourceDl-CarrierFreq ARFCN-ValueEUTRA,
+ ...,
+ [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING
+ SystemInformationBlockType1-v890-IEs) OPTIONAL,
+ sourceOtherConfig-r9 OtherConfig-r9
+ -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer
+ -- syntax should support receiving an AS-Config not including this extension addition group
+ -- e.g. from a legacy source eNB
+ ]],
+ [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL
+ ]],
+ [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL
+ ]]
+}
+
+AS-Config-v9e0 ::= SEQUENCE {
+ sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
+}
+
+AS-Config-v10j0 ::= SEQUENCE {
+ antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL
+}
+
+AS-Config-v1250 ::= SEQUENCE {
+ sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL,
+ sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL,
+ sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL
+}
+
+
+AS-Context ::= SEQUENCE {
+ reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
+}
+
+AS-Context-v1130 ::= SEQUENCE {
+ idc-Indication-r11 OCTET STRING (CONTAINING
+ InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2
+ mbmsInterestIndication-r11 OCTET STRING (CONTAINING
+ MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2
+ powerPrefIndication-r11 OCTET STRING (CONTAINING
+ UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2
+ ...,
+ [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING
+ SidelinkUEInformation-r12) OPTIONAL -- Cond HO2
+ ]]
+}
+
+
+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,
+ ...,
+ [[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL
+ ]]
+}
+
+CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10
+
+CandidateCellInfo-r10 ::= SEQUENCE {
+ -- cellIdentification
+ physCellId-r10 PhysCellId,
+ dl-CarrierFreq-r10 ARFCN-ValueEUTRA,
+ -- available measurement results
+ rsrpResult-r10 RSRP-Range OPTIONAL,
+ rsrqResult-r10 RSRQ-Range OPTIONAL,
+ ...,
+ [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL
+ ]],
+ [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL
+ ]],
+ [[ rs-sinrResult-v13xy RS-SINR-Range-r13 OPTIONAL
+ ]]
+}
+
+
+maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
+ -- at handover for re-establishment preparation
+
+
+END
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn
new file mode 100644
index 0000000000..c58eb02f0f
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn
@@ -0,0 +1,8224 @@
+-- 3GPP TS 36.331 V13.0.0 (2015-12)
+--
+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 {}
+}
+
+
+MCCH-Message ::= SEQUENCE {
+ message MCCH-MessageType
+}
+
+MCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9
+ },
+ later CHOICE {
+ c2 CHOICE{
+ mbmsCountingRequest-r10 MBMSCountingRequest-r10
+ },
+ 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,
+ ueInformationRequest-r9 UEInformationRequest-r9,
+ loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10,
+ rnReconfiguration-r10 RNReconfiguration-r10,
+ 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,
+ ueInformationResponse-r9 UEInformationResponse-r9,
+ proximityIndication-r9 ProximityIndication-r9,
+ rnReconfigurationComplete-r10 RNReconfigurationComplete-r10,
+ mbmsCountingResponse-r10 MBMSCountingResponse-r10,
+ interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10
+ },
+ messageClassExtension CHOICE {
+ c2 CHOICE {
+ ueAssistanceInformation-r11 UEAssistanceInformation-r11,
+ inDeviceCoexIndication-r11 InDeviceCoexIndication-r11,
+ mbmsInterestIndication-r11 MBMSInterestIndication-r11,
+ scgFailureInformation-r12 SCGFailureInformation-r12,
+ sidelinkUEInformation-r12 SidelinkUEInformation-r12,
+ spare11 NULL, spare10 NULL,
+ spare9 NULL, spare8 NULL, spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtensionFuture-r11 SEQUENCE {}
+ }
+}
+
+
+SC-MCCH-Message ::= SEQUENCE {
+ message SC-MCCH-MessageType
+}
+
+
+SC-MCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ scptmConfiguration-r13 SCPTMConfiguration-r13
+ },
+ 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 CounterCheck-v8a0-IEs OPTIONAL
+}
+
+CounterCheck-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+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 CounterCheckResponse-v8a0-IEs OPTIONAL
+}
+
+CounterCheckResponse-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ 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 CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL
+}
+
+CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ 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 CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL
+}
+
+CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+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 DLInformationTransfer-v8a0-IEs OPTIONAL
+}
+
+DLInformationTransfer-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+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 HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL
+}
+
+HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL
+}
+
+HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE {
+ concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type
+ nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL
+}
+
+HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE {
+ dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT
+ redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+InDeviceCoexIndication-r11 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+InDeviceCoexIndication-r11-IEs ::= SEQUENCE {
+ affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL,
+ tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL
+}
+
+InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE {
+ ul-CA-AssistanceInfo-r11 SEQUENCE {
+ affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL,
+ victimSystemType-r11 VictimSystemType-r11
+ } OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11
+
+AffectedCarrierFreq-r11 ::= SEQUENCE {
+ carrierFreq-r11 MeasObjectId,
+ interferenceDirection-r11 ENUMERATED {eutra, other, both, spare}
+}
+
+AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11
+
+AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId
+
+TDM-AssistanceInfo-r11 ::= CHOICE {
+ drx-AssistanceInfo-r11 SEQUENCE {
+ drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160,
+ sf256, spare2, spare1},
+ drx-Offset-r11 INTEGER (0..255) OPTIONAL,
+ drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80,
+ sf100, spare2, spare1}
+ },
+ idc-SubframePatternList-r11 IDC-SubframePatternList-r11,
+ ...
+}
+
+IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11
+
+IDC-SubframePattern-r11 ::= CHOICE {
+ subframePatternFDD-r11 BIT STRING (SIZE (4)),
+ subframePatternTDD-r11 CHOICE {
+ subframeConfig0-r11 BIT STRING (SIZE (70)),
+ subframeConfig1-5-r11 BIT STRING (SIZE (10)),
+ subframeConfig6-r11 BIT STRING (SIZE (60))
+ },
+ ...
+}
+
+VictimSystemType-r11 ::= SEQUENCE {
+ gps-r11 ENUMERATED {true} OPTIONAL,
+ glonass-r11 ENUMERATED {true} OPTIONAL,
+ bds-r11 ENUMERATED {true} OPTIONAL,
+ galileo-r11 ENUMERATED {true} OPTIONAL,
+ wlan-r11 ENUMERATED {true} OPTIONAL,
+ bluetooth-r11 ENUMERATED {true} OPTIONAL
+}
+
+
+InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE {
+ rstd-InterFreqIndication-r10 CHOICE {
+ start SEQUENCE {
+ rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10
+ },
+ stop NULL
+ },
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10
+
+RSTD-InterFreqInfo-r10 ::= SEQUENCE {
+ carrierFreq-r10 ARFCN-ValueEUTRA,
+ measPRS-Offset-r10 INTEGER (0..39),
+ ...,
+ [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL
+ ]]
+}
+
+
+LoggedMeasurementConfiguration-r10 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+
+LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE {
+ traceReference-r10 TraceReference-r10,
+ traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
+ tce-Id-r10 OCTET STRING (SIZE (1)),
+ absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10,
+ nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE {
+ lateNonCriticalExtension-r10 OCTET STRING OPTIONAL,
+ nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE {
+ plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR
+ areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR
+ nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE {
+ targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12
+
+TargetMBSFN-Area-r12 ::= SEQUENCE {
+ mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ ...
+}
+
+
+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))
+}
+
+
+
+MBMSCountingRequest-r10 ::= SEQUENCE {
+ countingRequestList-r10 CountingRequestList-r10,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10
+
+CountingRequestInfo-r10 ::= SEQUENCE {
+ tmgi-r10 TMGI-r9,
+ ...
+}
+
+
+MBMSCountingResponse-r10 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ countingResponse-r10 MBMSCountingResponse-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MBMSCountingResponse-r10-IEs ::= SEQUENCE {
+ mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL,
+ countingResponseList-r10 CountingResponseList-r10 OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10
+
+CountingResponseInfo-r10 ::= SEQUENCE {
+ countingResponseService-r10 INTEGER (0..maxServiceCount-1),
+ ...
+}
+
+
+MBMSInterestIndication-r11 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ interestIndication-r11 MBMSInterestIndication-r11-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MBMSInterestIndication-r11-IEs ::= SEQUENCE {
+ mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL,
+ mbms-Priority-r11 ENUMERATED {true} OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MBMSInterestIndication-r13-IEs OPTIONAL
+}
+
+MBMSInterestIndication-r13-IEs ::= SEQUENCE {
+ mbms-Services-r13 MBMSServiceList-r13 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MBSFNAreaConfiguration-r9 ::= SEQUENCE {
+ commonSF-Alloc-r9 CommonSF-AllocPatternList-r9,
+ commonSF-AllocPeriod-r9 ENUMERATED {
+ rf4, rf8, rf16, rf32, rf64, rf128, rf256},
+ pmch-InfoList-r9 PMCH-InfoList-r9,
+ nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL
+}
+
+MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL
+}
+
+MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE {
+ pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig
+
+
+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 MeasurementReport-v8a0-IEs OPTIONAL
+}
+
+MeasurementReport-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MobilityFromEUTRACommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs,
+ mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs,
+ spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE {
+ cs-FallbackIndicator BOOLEAN,
+ purpose CHOICE{
+ handover Handover,
+ cellChangeOrder CellChangeOrder
+ },
+ nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE {
+ bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE {
+ cs-FallbackIndicator BOOLEAN,
+ purpose CHOICE{
+ handover Handover,
+ cellChangeOrder CellChangeOrder,
+ e-CSFB-r9 E-CSFB-r9,
+ ...
+ },
+ nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE {
+ bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+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
+}
+
+E-CSFB-r9 ::= SEQUENCE {
+ messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON
+ mobilityCDMA2000-HRPD-r9 ENUMERATED {
+ handover, redirection
+ } OPTIONAL, -- Need OP
+ messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO
+ redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir
+}
+
+
+Paging ::= SEQUENCE {
+ pagingRecordList PagingRecordList OPTIONAL, -- Need ON
+ systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON
+ etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension Paging-v890-IEs OPTIONAL
+}
+
+Paging-v890-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension Paging-v920-IEs OPTIONAL
+}
+
+Paging-v920-IEs ::= SEQUENCE {
+ cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension Paging-v1130-IEs OPTIONAL
+}
+
+Paging-v1130-IEs ::= SEQUENCE {
+ eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension Paging-v13xx-IEs OPTIONAL
+}
+
+Paging-v13xx-IEs ::= SEQUENCE {
+ redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON
+ systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+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)
+
+
+ProximityIndication-r9 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ proximityIndication-r9 ProximityIndication-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ProximityIndication-r9-IEs ::= SEQUENCE {
+ type-r9 ENUMERATED {entering, leaving},
+ carrierFreq-r9 CHOICE {
+ eutra-r9 ARFCN-ValueEUTRA,
+ utra-r9 ARFCN-ValueUTRA,
+ ...,
+ eutra2-v9e0 ARFCN-ValueEUTRA-v9e0
+ },
+ nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL
+}
+
+ProximityIndication-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RNReconfiguration-r10 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rnReconfiguration-r10 RNReconfiguration-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RNReconfiguration-r10-IEs ::= SEQUENCE {
+ rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON
+ rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RN-SystemInfo-r10 ::= SEQUENCE {
+ systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON
+ systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON
+ ...
+}
+
+
+RNReconfigurationComplete-r10 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RNReconfigurationComplete-r10-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+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 RRCConnectionReconfiguration-v890-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL
+}
+
+-- Late non-critical extensions:
+RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE {
+ -- Following field is only for pre REL-10 late non-critical extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE {
+ antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON
+ -- Following field is only for late non-critical extensions from REL-10
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non-critical extensions:
+RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE {
+ otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON
+ fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab
+ nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE {
+ sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON
+ sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE {
+ systemInfomationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE {
+ wlan-OffloadInfo-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12,
+ t350-r12 ENUMERATED {min5, min10, min20, min30, min60,
+ min120, min180, spare1} OPTIONAL -- Need OR
+ }
+ } OPTIONAL, -- Need ON
+ scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig
+ sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON
+ sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON
+ sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReconfiguration-v13xy-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v13xy-IEs ::= SEQUENCE {
+ sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON
+ sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SL-SyncTxControl-r12 ::= SEQUENCE {
+ networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP
+}
+
+PSCellToAddMod-r12 ::= SEQUENCE {
+ sCellIndex-r12 SCellIndex-r10,
+ cellIdentification-r12 SEQUENCE {
+ physCellId-r12 PhysCellId,
+ dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9
+ } OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2
+ ...,
+ [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON
+ ]],
+ [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON
+ ]]
+}
+
+PowerCoordinationInfo-r12 ::= SEQUENCE {
+ p-MeNB-r12 INTEGER (1..16),
+ p-SeNB-r12 INTEGER (1..16),
+ powerControlMode-r12 INTEGER (1..2)
+}
+
+SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10
+
+SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (maxSCell-Plus1..maxSCell-r13)) OF SCellToAddMod-r13
+
+SCellToAddMod-r10 ::= SEQUENCE {
+ sCellIndex-r10 SCellIndex-r10,
+ cellIdentification-r10 SEQUENCE {
+ physCellId-r10 PhysCellId,
+ dl-CarrierFreq-r10 ARFCN-ValueEUTRA
+ } OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2
+ ...,
+ [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max
+ ]],
+ [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON
+ ]]
+}
+
+SCellToAddMod-r13 ::= SEQUENCE {
+ sCellIndex-v13xy SCellIndex-v13xy,
+ cellIdentification-r13 SEQUENCE {
+ physCellId-r13 PhysCellId,
+ dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9
+ } OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL -- Cond SCellAdd2
+}
+
+SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10
+
+SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (maxSCell-Plus1..maxSCell-r13)) OF SCellIndex-v13xy
+
+SCG-Configuration-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ scg-ConfigPartMCG-r12 SEQUENCE {
+ scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON
+ powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON
+ ...
+ } OPTIONAL, -- Need ON
+ scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON
+ }
+}
+
+SCG-ConfigPartSCG-r12 ::= SEQUENCE {
+ radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON
+ sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON
+ pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON
+ sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON
+ mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON
+ ...,
+ [[
+ sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON
+ sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON
+ ]]
+}
+
+SecurityConfigHO ::= SEQUENCE {
+ handoverType CHOICE {
+ intraLTE SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig
+ 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 RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE {
+ rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL,
+ logMeasAvailable-r10 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE {
+ connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE {
+ logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL,
+ 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 RRCConnectionReestablishment-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentComplete-r8
+ RRCConnectionReestablishmentComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE {
+ rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE {
+ logMeasAvailable-r10 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE {
+ connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE {
+ logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentReject-r8
+ RRCConnectionReestablishmentReject-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+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 RRCConnectionReject-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReject-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL
+}
+
+RRCConnectionReject-v1020-IEs ::= SEQUENCE {
+ extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL
+}
+
+RRCConnectionReject-v1130-IEs ::= SEQUENCE {
+ deprioritisationReq-r11 SEQUENCE {
+ deprioritisationType-r11 ENUMERATED {frequency, e-utra},
+ deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30}
+ } OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+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 RRCConnectionRelease-v890-IEs OPTIONAL
+}
+
+RRCConnectionRelease-v890-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL,
+ nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL
+}
+
+-- Late non critical extensions
+RRCConnectionRelease-v9e0-IEs ::= SEQUENCE {
+ redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8
+ idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non critical extensions
+RRCConnectionRelease-v920-IEs ::= SEQUENCE {
+ cellInfoList-r9 CHOICE {
+ geran-r9 CellInfoListGERAN-r9,
+ utra-FDD-r9 CellInfoListUTRA-FDD-r9,
+ utra-TDD-r9 CellInfoListUTRA-TDD-r9,
+ ...,
+ utra-TDD-r10 CellInfoListUTRA-TDD-r10
+ } OPTIONAL, -- Cond Redirection
+ nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL
+}
+
+RRCConnectionRelease-v1020-IEs ::= SEQUENCE {
+ extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired,
+ other, cs-FallbackHighPriority-v1020, spare1}
+
+RedirectedCarrierInfo ::= CHOICE {
+ eutra ARFCN-ValueEUTRA,
+ geran CarrierFreqsGERAN,
+ utra-FDD ARFCN-ValueUTRA,
+ utra-TDD ARFCN-ValueUTRA,
+ cdma2000-HRPD CarrierFreqCDMA2000,
+ cdma2000-1xRTT CarrierFreqCDMA2000,
+ ...,
+ utra-TDD-r10 CarrierFreqListUTRA-TDD-r10
+}
+
+RedirectedCarrierInfo-v9e0 ::= SEQUENCE {
+ eutra-v9e0 ARFCN-ValueEUTRA-v9e0
+}
+
+CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA
+
+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
+ ...,
+ [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON
+ ]],
+ [[ freqPriorityListEUTRA-v13xy FreqPriorityListEUTRA-v13xy OPTIONAL, -- Need ON
+ freqPriorityListExtEUTRA-v13xy FreqPriorityListExtEUTRA-v13xy OPTIONAL -- Need ON
+ ]]
+}
+
+IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE {
+ freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0
+}
+
+FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA
+
+FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12
+
+FreqPriorityListEUTRA-v13xy ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v13xy
+
+FreqPriorityListExtEUTRA-v13xy ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v13xy
+
+FreqPriorityEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityEUTRA-v9e0 ::= SEQUENCE {
+ carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max
+}
+
+FreqPriorityEUTRA-r12 ::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ cellReselectionPriority-r12 CellReselectionPriority
+}
+
+FreqPriorityEUTRA-v13xy ::= SEQUENCE {
+ cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON
+}
+
+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
+}
+
+CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9
+
+CellInfoGERAN-r9 ::= SEQUENCE {
+ physCellId-r9 PhysCellIdGERAN,
+ carrierFreq-r9 CarrierFreqGERAN,
+ systemInformation-r9 SystemInfoListGERAN
+}
+
+CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9
+
+CellInfoUTRA-FDD-r9 ::= SEQUENCE {
+ physCellId-r9 PhysCellIdUTRA-FDD,
+ utra-BCCH-Container-r9 OCTET STRING
+}
+
+CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9
+
+CellInfoUTRA-TDD-r9 ::= SEQUENCE {
+ physCellId-r9 PhysCellIdUTRA-TDD,
+ utra-BCCH-Container-r9 OCTET STRING
+}
+
+CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10
+
+CellInfoUTRA-TDD-r10 ::= SEQUENCE {
+ physCellId-r10 PhysCellIdUTRA-TDD,
+ carrierFreq-r10 ARFCN-ValueUTRA,
+ utra-BCCH-Container-r10 OCTET STRING
+}
+
+
+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, delayTolerantAccess-v1020, mo-VoiceCall-v1280, 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 RRCConnectionSetup-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionSetup-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+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..maxPLMN-r11),
+ registeredMME RegisteredMME OPTIONAL,
+ dedicatedInfoNAS DedicatedInfoNAS,
+ nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE {
+ gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL,
+ rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL,
+ logMeasAvailable-r10 ENUMERATED {true} OPTIONAL,
+ rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE {
+ connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE {
+ mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL,
+ mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL,
+ logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RegisteredMME ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ mmegi BIT STRING (SIZE (16)),
+ mmec MMEC
+}
+
+
+SCGFailureInformation-r12 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ scgFailureInformation-r12 SCGFailureInformation-r12-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SCGFailureInformation-r12-IEs ::= SEQUENCE {
+ failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+FailureReportSCG-r12 ::= SEQUENCE {
+ failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem,
+ rlc-MaxNumRetx, scg-ChangeFailure },
+ measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL,
+ measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL,
+ ...,
+ [[
+ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL
+ ]]
+}
+
+
+SCPTMConfiguration-r13 ::= SEQUENCE {
+ sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13,
+ scptmNeighbourCellList-r13 SCPTMNeighbourCellList-r13 OPTIONAL,
+ ...
+}
+
+
+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 SecurityModeCommand-v8a0-IEs OPTIONAL
+}
+
+SecurityModeCommand-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SecurityConfigSMC ::= SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ ...
+}
+
+
+SecurityModeComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeComplete-r8 SecurityModeComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL
+}
+
+SecurityModeComplete-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SecurityModeFailure ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeFailure-r8 SecurityModeFailure-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeFailure-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL
+}
+
+SecurityModeFailure-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SidelinkUEInformation-r12 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SidelinkUEInformation-r12-IEs ::= SEQUENCE {
+ commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL,
+ discRxInterest-r12 ENUMERATED {true} OPTIONAL,
+ discTxResourceReq-r12 INTEGER (1..63) OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SidelinkUEInformation-v13x0-IEs OPTIONAL
+}
+
+SidelinkUEInformation-v13x0-IEs ::= SEQUENCE {
+ commTxResourceReq121-r13 SL-CommTxResourceReqUC-r13 OPTIONAL,
+ commTxResourceInfoReqRelay-r13 SEQUENCE {
+ commTxResourceReqRelay-r13 SL-CommTxResourceReqUC-r13,
+ ue-Type-r13 ENUMERATED {relayUE, remoteUE}
+ } OPTIONAL,
+ discTxResourceReq-v13x0 SEQUENCE {
+ carrierFreqDiscTx-r13 INTEGER (1..maxFreq),
+ discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL
+ } OPTIONAL,
+ discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL,
+ discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL,
+ discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL,
+ discSysInfoReportList-r13 SL-SysInfoReportList-r13 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SL-CommTxResourceReq-r12 ::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ destinationInfoList-r12 SL-DestinationInfoList-r12
+}
+
+SL-CommTxResourceReqUC-r13 ::= SEQUENCE {
+ carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ destinationInfoListUC-r13 SL-DestinationInfoListUC-r13
+}
+
+SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13
+
+SL-DiscTxResourceReq-r13 ::= SEQUENCE {
+ carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ discTxResourceReq-r13 INTEGER (1..63)
+}
+
+SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12
+
+SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24))
+
+SL-DestinationInfoListUC-r13 ::= SL-DestinationInfoList-r12
+
+SL-SysInfoReportList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-SysInfoReport-r13
+
+
+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,
+ ...,
+ sib12-v920 SystemInformationBlockType12-r9,
+ sib13-v920 SystemInformationBlockType13-r9,
+ sib14-v1130 SystemInformationBlockType14-r11,
+ sib15-v1130 SystemInformationBlockType15-r11,
+ sib16-v1130 SystemInformationBlockType16-r11,
+ sib17-v1250 SystemInformationBlockType17-r12,
+ sib18-v1250 SystemInformationBlockType18-r12,
+ sib19-v1250 SystemInformationBlockType19-r12,
+ sib20-v13x0 SystemInformationBlockType20-r13
+ },
+ nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL
+}
+
+SystemInformation-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+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 CSG-Identity 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 FreqBandIndicator,
+ schedulingInfoList SchedulingInfoList,
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ si-WindowLength ENUMERATED {
+ ms1, ms2, ms5, ms10, ms15, ms20,
+ ms40},
+ systemInfoValueTag INTEGER (0..31),
+ nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v890-IEs::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL,
+ nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL
+}
+
+-- Late non critical extensions
+SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE {
+ multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE {
+ freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max
+ multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max
+ nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE {
+ freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR
+ multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non critical extensions
+SystemInformationBlockType1-v920-IEs ::= SEQUENCE {
+ ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR
+ cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ
+ nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1130-IEs ::= SEQUENCE {
+ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR
+ cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ
+ nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1250-IEs ::= SEQUENCE {
+ cellAccessRelatedInfo-v1250 SEQUENCE {
+ category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP
+ },
+ cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2
+ freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI
+ nonCriticalExtension SystemInformationBlockType1-v13xy-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v13xy-IEs ::= SEQUENCE {
+ hyperSFN BIT STRING (SIZE (10)) OPTIONAL,
+ eDRXAllowed ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) 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, sibType12-v920, sibType13-v920,
+ sibType14-v1130, sibType15-v1130,
+ sibType16-v1130, sibType17-v1250, sibType18-v1250,
+ ..., sibType19-v1250, sibType20-v13xy}
+
+CellSelectionInfo-v920 ::= SEQUENCE {
+ q-QualMin-r9 Q-QualMin-r9,
+ q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP
+}
+
+CellSelectionInfo-v1130 ::= SEQUENCE {
+ q-QualMinWB-r11 Q-QualMin-r9
+}
+
+CellSelectionInfo-v1250 ::= SEQUENCE {
+ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9
+}
+
+
+UEAssistanceInformation-r11 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEAssistanceInformation-r11-IEs ::= SEQUENCE {
+ powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+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 UECapabilityEnquiry-v8a0-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v1180-IEs ::= SEQUENCE {
+ requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL,
+ nonCriticalExtension UECapabilityEnquiry-v13xy-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v13xy-IEs ::= SEQUENCE {
+ requestReducedFormat-r13 ENUMERATED {true} OPTIONAL,
+ skipFallbackCombinations-r13 ENUMERATED {true} OPTIONAL,
+ requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL,
+ requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+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 UECapabilityInformation-v8a0-IEs OPTIONAL
+}
+
+UECapabilityInformation-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL
+}
+
+UECapabilityInformation-v1250-IEs ::= SEQUENCE {
+ ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UEInformationRequest-r9 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueInformationRequest-r9 UEInformationRequest-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEInformationRequest-r9-IEs ::= SEQUENCE {
+ rach-ReportReq-r9 BOOLEAN,
+ rlf-ReportReq-r9 BOOLEAN,
+ nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL
+}
+
+UEInformationRequest-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL
+}
+
+UEInformationRequest-v1020-IEs ::= SEQUENCE {
+ logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL
+}
+
+UEInformationRequest-v1130-IEs ::= SEQUENCE {
+ connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL
+}
+
+UEInformationRequest-v1250-IEs ::= SEQUENCE {
+ mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UEInformationResponse-r9 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueInformationResponse-r9 UEInformationResponse-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEInformationResponse-r9-IEs ::= SEQUENCE {
+ rach-Report-r9 SEQUENCE {
+ numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11,
+ contentionDetected-r9 BOOLEAN
+ } OPTIONAL,
+ rlf-Report-r9 RLF-Report-r9 OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL
+}
+
+-- Late non critical extensions
+UEInformationResponse-v9e0-IEs ::= SEQUENCE {
+ rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non critical extensions
+UEInformationResponse-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL
+}
+
+UEInformationResponse-v1020-IEs ::= SEQUENCE {
+ logMeasReport-r10 LogMeasReport-r10 OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL
+}
+
+UEInformationResponse-v1130-IEs ::= SEQUENCE {
+ connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL
+}
+
+UEInformationResponse-v1250-IEs ::= SEQUENCE {
+ mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RLF-Report-r9 ::= SEQUENCE {
+ measResultLastServCell-r9 SEQUENCE {
+ rsrpResult-r9 RSRP-Range,
+ rsrqResult-r9 RSRQ-Range OPTIONAL
+ },
+ measResultNeighCells-r9 SEQUENCE {
+ measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL,
+ measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL,
+ measResultListGERAN-r9 MeasResultListGERAN OPTIONAL,
+ measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL
+ } OPTIONAL,
+ ...,
+ [[ locationInfo-r10 LocationInfo-r10 OPTIONAL,
+ failedPCellId-r10 CHOICE {
+ cellGlobalId-r10 CellGlobalIdEUTRA,
+ pci-arfcn-r10 SEQUENCE {
+ physCellId-r10 PhysCellId,
+ carrierFreq-r10 ARFCN-ValueEUTRA
+ }
+ } OPTIONAL,
+ reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL,
+ timeConnFailure-r10 INTEGER (0..1023) OPTIONAL,
+ connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL,
+ previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL
+ ]],
+ [[ failedPCellId-v1090 SEQUENCE {
+ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0
+ } OPTIONAL
+ ]],
+ [[ basicFields-r11 SEQUENCE {
+ c-RNTI-r11 C-RNTI,
+ rlf-Cause-r11 ENUMERATED {
+ t310-Expiry, randomAccessProblem,
+ rlc-MaxNumRetx, t312-Expiry-r12},
+ timeSinceFailure-r11 TimeSinceFailure-r11
+ } OPTIONAL,
+ previousUTRA-CellId-r11 SEQUENCE {
+ carrierFreq-r11 ARFCN-ValueUTRA,
+ physCellId-r11 CHOICE {
+ fdd-r11 PhysCellIdUTRA-FDD,
+ tdd-r11 PhysCellIdUTRA-TDD
+ },
+ cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL
+ } OPTIONAL,
+ selectedUTRA-CellId-r11 SEQUENCE {
+ carrierFreq-r11 ARFCN-ValueUTRA,
+ physCellId-r11 CHOICE {
+ fdd-r11 PhysCellIdUTRA-FDD,
+ tdd-r11 PhysCellIdUTRA-TDD
+ }
+ } OPTIONAL
+ ]],
+ [[ failedPCellId-v1250 SEQUENCE {
+ tac-FailedPCell-r12 TrackingAreaCode
+ } OPTIONAL,
+ measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL,
+ measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL
+ ]],
+ [[ droppedQCI-r13 ENUMERATED {qci1} OPTIONAL
+ ]]
+}
+
+RLF-Report-v9e0 ::= SEQUENCE {
+ measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0
+}
+
+MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9
+
+MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0
+
+MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250
+
+MeasResult2EUTRA-r9 ::= SEQUENCE {
+ carrierFreq-r9 ARFCN-ValueEUTRA,
+ measResultList-r9 MeasResultListEUTRA
+}
+
+MeasResult2EUTRA-v9e0 ::= SEQUENCE {
+ carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL
+}
+
+MeasResult2EUTRA-v1250 ::= SEQUENCE {
+ rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL
+}
+
+MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9
+
+MeasResult2UTRA-r9 ::= SEQUENCE {
+ carrierFreq-r9 ARFCN-ValueUTRA,
+ measResultList-r9 MeasResultListUTRA
+}
+
+MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9
+
+MeasResult2CDMA2000-r9 ::= SEQUENCE {
+ carrierFreq-r9 CarrierFreqCDMA2000,
+ measResultList-r9 MeasResultsCDMA2000
+}
+
+LogMeasReport-r10 ::= SEQUENCE {
+ absoluteTimeStamp-r10 AbsoluteTimeInfo-r10,
+ traceReference-r10 TraceReference-r10,
+ traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
+ tce-Id-r10 OCTET STRING (SIZE (1)),
+ logMeasInfoList-r10 LogMeasInfoList-r10,
+ logMeasAvailable-r10 ENUMERATED {true} OPTIONAL,
+ ...
+}
+
+LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10
+
+LogMeasInfo-r10 ::= SEQUENCE {
+ locationInfo-r10 LocationInfo-r10 OPTIONAL,
+ relativeTimeStamp-r10 INTEGER (0..7200),
+ servCellIdentity-r10 CellGlobalIdEUTRA,
+ measResultServCell-r10 SEQUENCE {
+ rsrpResult-r10 RSRP-Range,
+ rsrqResult-r10 RSRQ-Range
+ },
+ measResultNeighCells-r10 SEQUENCE {
+ measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL,
+ measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL,
+ measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL,
+ measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL
+ } OPTIONAL,
+ ...,
+ [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL
+ ]],
+ [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL,
+ measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL,
+ measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL
+ ]],
+ [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL
+ ]]
+}
+
+MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12
+
+MeasResultMBSFN-r12 ::= SEQUENCE {
+ mbsfn-Area-r12 SEQUENCE {
+ mbsfn-AreaId-r12 MBSFN-AreaId-r12,
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9
+ },
+ rsrpResultMBSFN-r12 RSRP-Range,
+ rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12,
+ signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL,
+ dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL,
+ ...
+}
+
+DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12
+
+DataBLER-MCH-Result-r12 ::= SEQUENCE {
+ mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN),
+ dataBLER-Result-r12 BLER-Result-r12
+}
+
+BLER-Result-r12 ::= SEQUENCE {
+ bler-r12 BLER-Range-r12,
+ blocksReceived-r12 SEQUENCE {
+ n-r12 BIT STRING (SIZE (3)),
+ m-r12 BIT STRING (SIZE (8))
+ }
+}
+
+BLER-Range-r12 ::= INTEGER(0..31)
+
+MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN
+
+ConnEstFailReport-r11 ::= SEQUENCE {
+ failedCellId-r11 CellGlobalIdEUTRA,
+ locationInfo-r11 LocationInfo-r10 OPTIONAL,
+ measResultFailedCell-r11 SEQUENCE {
+ rsrpResult-r11 RSRP-Range,
+ rsrqResult-r11 RSRQ-Range OPTIONAL
+ },
+ measResultNeighCells-r11 SEQUENCE {
+ measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL,
+ measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL,
+ measResultListGERAN-r11 MeasResultListGERAN OPTIONAL,
+ measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL
+ } OPTIONAL,
+ numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11,
+ contentionDetected-r11 BOOLEAN,
+ maxTxPowerReached-r11 BOOLEAN,
+ timeSinceFailure-r11 TimeSinceFailure-r11,
+ measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL,
+ ...,
+ [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL,
+ measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL
+ ]]
+}
+
+NumberOfPreamblesSent-r11::= INTEGER (1..200)
+
+TimeSinceFailure-r11 ::= INTEGER (0..172800)
+
+MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
+
+
+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 ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL
+}
+
+ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ 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 ULInformationTransfer-v8a0-IEs OPTIONAL
+}
+
+ULInformationTransfer-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ 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,
+ ...,
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL,
+ [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP
+ ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP
+ ]],
+ [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP
+ ]],
+ [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP
+ ]],
+ [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP
+ ]],
+ [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP
+ acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP
+ ]]
+}
+
+SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE {
+ multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL
+}
+
+SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE {
+ ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+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
+
+AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12
+
+AC-BarringPerPLMN-r12 ::= SEQUENCE {
+ plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11),
+ ac-BarringInfo-r12 SEQUENCE {
+ ac-BarringForEmergency-r12 BOOLEAN,
+ ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP
+ ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OP
+ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP
+ ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP
+ ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP
+}
+
+ACDC-BarringForCommon-r13 ::= SEQUENCE {
+ acdc-HPLMNonly-r13 BOOLEAN,
+ barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13
+}
+
+ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13
+
+ACDC-BarringPerPLMN-r13 ::= SEQUENCE {
+ plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11),
+ acdc-HPLMNonly-r13 BOOLEAN,
+ barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13
+}
+
+BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13
+
+BarringPerACDC-Category-r13 ::= SEQUENCE {
+ acdc-CatValue-r13 INTEGER (1..maxACDC-Cat-r13),
+ acdc-BarringConfig-r13 SEQUENCE {
+ ac-BarringFactor-r13 ENUMERATED {
+ p00, p05, p10, p15, p20, p25, p30, p40,
+ p50, p60, p70, p75, p80, p85, p90, p95},
+ ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}
+ } OPTIONAL
+}
+
+
+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
+ },
+ ...,
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL,
+ [[ s-IntraSearch-v920 SEQUENCE {
+ s-IntraSearchP-r9 ReselectionThreshold,
+ s-IntraSearchQ-r9 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Need OP
+ s-NonIntraSearch-v920 SEQUENCE {
+ s-NonIntraSearchP-r9 ReselectionThreshold,
+ s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Need OP
+ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP
+ threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP
+ ]],
+ [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ
+ ]],
+ [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ
+ ]],
+ [[ cellReselectionServingFreqInfo-v13xy CellReselectionServingFreqInfo-v13xy OPTIONAL, -- Need OP
+ redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL --Need OR
+ ]]
+}
+
+RedistributionServingInfo-r13 ::= SEQUENCE {
+ redistributionFactorServing-r13 INTEGER(0..10),
+ redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP
+ t360-r13 ENUMERATED {min4, min8, min16, min32,infinity,
+ spare3,spare2,spare1},
+ redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP
+}
+
+CellReselectionServingFreqInfo-v13xy ::= SEQUENCE {
+ cellReselectionSubPriority-r13 CellReselectionSubPriority-r13
+}
+
+-- Late non critical extensions
+SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE {
+ freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR
+ multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformationBlockType4 ::= SEQUENCE {
+ intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR
+ intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR
+ csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+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,
+ ...,
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL,
+ [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR
+ interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR
+ ]],
+ [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR
+ ]],
+ [[ interFreqCarrierFreqList-v13xy InterFreqCarrierFreqList-v13xy OPTIONAL, -- Need OR
+ interFreqCarrierFreqListExt-v13xy InterFreqCarrierFreqListExt-v13xy OPTIONAL -- Need OR
+ ]]
+}
+
+SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE {
+ interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP
+ nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL
+}
+
+SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE {
+ interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL
+}
+
+SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE {
+ interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo
+
+InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250
+
+InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12
+
+InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0
+
+InterFreqCarrierFreqList-v13xy ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v13xy
+
+InterFreqCarrierFreqListExt-v13xy ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v13xy
+
+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
+ ...,
+ [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP
+ threshX-Q-r9 SEQUENCE {
+ threshX-HighQ-r9 ReselectionThresholdQ-r9,
+ threshX-LowQ-r9 ReselectionThresholdQ-r9
+ } OPTIONAL -- Cond RSRQ
+ ]],
+ [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ
+ ]]
+}
+
+InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE {
+ multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR
+}
+
+InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE {
+ dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax
+ multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR
+}
+
+InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE {
+ freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR
+ multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR
+}
+
+InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE {
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2
+}
+
+InterFreqCarrierFreqInfo-r12 ::= SEQUENCE {
+ dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ q-RxLevMin-r12 Q-RxLevMin,
+ p-Max-r12 P-Max OPTIONAL, -- Need OP
+ t-ReselectionEUTRA-r12 T-Reselection,
+ t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP
+ threshX-High-r12 ReselectionThreshold,
+ threshX-Low-r12 ReselectionThreshold,
+ allowedMeasBandwidth-r12 AllowedMeasBandwidth,
+ presenceAntennaPort1-r12 PresenceAntennaPort1,
+ cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP
+ neighCellConfig-r12 NeighCellConfig,
+ q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0,
+ interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR
+ interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR
+ q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP
+ threshX-Q-r12 SEQUENCE {
+ threshX-HighQ-r12 ReselectionThresholdQ-r9,
+ threshX-LowQ-r12 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Cond RSRQ
+ q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ
+ multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2
+...
+}
+
+InterFreqCarrierFreqInfo-v13xy ::= SEQUENCE {
+ cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP
+ redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL --Need OP
+}
+
+InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
+
+InterFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange
+}
+
+InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+RedistributionInterFreqInfo-r13 ::= SEQUENCE {
+ redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP
+ redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP
+}
+
+RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13
+
+RedistributionNeighCell-r13 ::= SEQUENCE {
+ physCellId PhysCellId,
+ redistributionFactorCell-r13 RedistributionFactor-r13
+}
+
+RedistributionFactor-r13 ::= INTEGER(1..10)
+
+
+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
+ ...,
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL,
+ [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF
+ CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD
+ carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF
+ CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD
+ carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD
+ carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD
+ ]]
+}
+
+SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE {
+ carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD
+ nonCriticalExtension
+SEQUENCE {} OPTIONAL
+}
+
+CarrierFreqInfoUTRA-v1250 ::= SEQUENCE {
+ reducedMeasPerformance-r12 ENUMERATED {true} 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),
+ ...,
+ [[ threshX-Q-r9 SEQUENCE {
+ threshX-HighQ-r9 ReselectionThresholdQ-r9,
+ threshX-LowQ-r9 ReselectionThresholdQ-r9
+ } OPTIONAL -- Cond RSRQ
+ ]]
+}
+
+CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE {
+ multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR
+}
+
+CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF
+ CarrierFreqUTRA-FDD-Ext-r12
+
+CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueUTRA,
+ cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High-r12 ReselectionThreshold,
+ threshX-Low-r12 ReselectionThreshold,
+ q-RxLevMin-r12 INTEGER (-60..-13),
+ p-MaxUTRA-r12 INTEGER (-50..33),
+ q-QualMin-r12 INTEGER (-24..0),
+ threshX-Q-r12 SEQUENCE {
+ threshX-HighQ-r12 ReselectionThresholdQ-r9,
+ threshX-LowQ-r12 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Cond RSRQ
+ multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ...
+}
+
+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),
+ ...
+}
+
+CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF
+ CarrierFreqUTRA-TDD-r12
+
+CarrierFreqUTRA-TDD-r12 ::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueUTRA,
+ cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High-r12 ReselectionThreshold,
+ threshX-Low-r12 ReselectionThreshold,
+ q-RxLevMin-r12 INTEGER (-60..-13),
+ p-MaxUTRA-r12 INTEGER (-50..33),
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ...
+}
+
+FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86)
+
+
+SystemInformationBlockType7 ::= SEQUENCE {
+ t-ReselectionGERAN T-Reselection,
+ t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR
+ carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+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
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR
+ cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD
+ cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT
+ csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT
+ ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT
+ ]],
+ [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT
+ ]],
+ [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR
+ ]]
+}
+
+CellReselectionParametersCDMA2000 ::= SEQUENCE {
+ bandClassList BandClassListCDMA2000,
+ neighCellList NeighCellListCDMA2000,
+ t-ReselectionCDMA2000 T-Reselection,
+ t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+}
+
+CellReselectionParametersCDMA2000-r11 ::= SEQUENCE {
+ bandClassList BandClassListCDMA2000,
+ neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11,
+ t-ReselectionCDMA2000 T-Reselection,
+ t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+}
+
+CellReselectionParametersCDMA2000-v920 ::= SEQUENCE {
+ neighCellList-v920 NeighCellListCDMA2000-v920
+}
+
+NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000
+
+NeighCellCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000
+}
+
+NeighCellCDMA2000-r11 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11
+}
+
+NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000
+
+NeighCellsPerBandclassCDMA2000 ::= SEQUENCE {
+ arfcn ARFCN-ValueCDMA2000,
+ physCellIdList PhysCellIdListCDMA2000
+}
+
+NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE {
+ arfcn ARFCN-ValueCDMA2000,
+ physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000
+}
+
+NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920
+
+NeighCellCDMA2000-v920 ::= SEQUENCE {
+ neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920
+}
+
+NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920
+
+NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE {
+ physCellIdList-v920 PhysCellIdListCDMA2000-v920
+}
+
+PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000
+
+PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) 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),
+ ...
+}
+
+AC-BarringConfig1XRTT-r9 ::= SEQUENCE {
+ ac-Barring0to9-r9 INTEGER (0..63),
+ ac-Barring10-r9 INTEGER (0..7),
+ ac-Barring11-r9 INTEGER (0..7),
+ ac-Barring12-r9 INTEGER (0..7),
+ ac-Barring13-r9 INTEGER (0..7),
+ ac-Barring14-r9 INTEGER (0..7),
+ ac-Barring15-r9 INTEGER (0..7),
+ ac-BarringMsg-r9 INTEGER (0..7),
+ ac-BarringReg-r9 INTEGER (0..7),
+ ac-BarringEmg-r9 INTEGER (0..7)
+}
+
+SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11
+
+SIB8-PerPLMN-r11 ::= SEQUENCE {
+ plmn-Identity-r11 INTEGER (1..maxPLMN-r11),
+ parametersCDMA2000-r11 CHOICE {
+ explicitValue ParametersCDMA2000-r11,
+ defaultValue NULL
+ }
+}
+
+ParametersCDMA2000-r11 ::= SEQUENCE {
+ systemTimeInfo-r11 CHOICE {
+ explicitValue SystemTimeInfoCDMA2000,
+ defaultValue NULL
+ } OPTIONAL, -- Need OR
+ searchWindowSize-r11 INTEGER (0..15),
+ parametersHRPD-r11 SEQUENCE {
+ preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD,
+ cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ parameters1XRTT-r11 SEQUENCE {
+ csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP
+ csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN
+ longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC
+ cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR
+ ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN
+ csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR
+ csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN
+ } OPTIONAL, -- Need OR
+ ...
+}
+
+
+SystemInformationBlockType9 ::= SEQUENCE {
+ hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+
+SystemInformationBlockType10 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningType OCTET STRING (SIZE (2)),
+ dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+
+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
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+
+SystemInformationBlockType12-r9 ::= SEQUENCE {
+ messageIdentifier-r9 BIT STRING (SIZE (16)),
+ serialNumber-r9 BIT STRING (SIZE (16)),
+ warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment},
+ warningMessageSegmentNumber-r9 INTEGER (0..63),
+ warningMessageSegment-r9 OCTET STRING,
+ dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+
+SystemInformationBlockType13-r9 ::= SEQUENCE {
+ mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9,
+ notificationConfig-r9 MBMS-NotificationConfig-r9,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+
+SystemInformationBlockType14-r11 ::= SEQUENCE {
+ eab-Param-r11 CHOICE {
+ eab-Common-r11 EAB-Config-r11,
+ eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11
+ } OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+EAB-ConfigPLMN-r11 ::= SEQUENCE {
+ eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR
+}
+
+EAB-Config-r11 ::= SEQUENCE {
+ eab-Category-r11 ENUMERATED {a, b, c},
+ eab-BarringBitmap-r11 BIT STRING (SIZE (10))
+}
+
+
+SystemInformationBlockType15-r11 ::= SEQUENCE {
+ mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR
+ mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq
+ ]]
+}
+
+MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11
+
+MBMS-SAI-r11 ::= INTEGER (0..65535)
+
+MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11
+
+MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140
+
+MBMS-SAI-InterFreq-r11 ::= SEQUENCE {
+ dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9,
+ mbms-SAI-List-r11 MBMS-SAI-List-r11
+}
+
+MBMS-SAI-InterFreq-v1140 ::= SEQUENCE {
+ multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR
+}
+
+
+
+SystemInformationBlockType16-r11 ::= SEQUENCE {
+ timeInfo-r11 SEQUENCE {
+ timeInfoUTC-r11 INTEGER (0..549755813887),
+ dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR
+ leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR
+ localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+
+SystemInformationBlockType17-r12 ::= SEQUENCE {
+ wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF
+ WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE {
+ wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR
+ wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR
+ ...
+}
+
+WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12
+
+WLAN-Identifiers-r12 ::= SEQUENCE {
+ ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR
+ bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR
+ hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR
+ ...
+}
+
+
+SystemInformationBlockType18-r12 ::= SEQUENCE {
+ commConfig-r12 SEQUENCE {
+ commRxPool-r12 SL-CommRxPoolList-r12,
+ commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR
+ commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR
+ commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR
+ commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+
+SystemInformationBlockType19-r12 ::= SEQUENCE {
+ discConfig-r12 SEQUENCE {
+ discRxPool-r12 SL-DiscRxPoolList-r12,
+ discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR
+ discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx
+ discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ discConfig-v13x0 SEQUENCE {
+ discInterFreqList-v13x0 SL-CarrierFreqInfoList-v13x0 OPTIONAL, -- Need OR
+ gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ discConfigRelay-r13 SEQUENCE {
+ discThreshHiRelayUE-r13 RSRP-Range OPTIONAL, -- Need OR
+ discThreshLoRelayUE-r13 RSRP-Range OPTIONAL, -- Need OR
+ discHystMaxRelayUE-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf},
+ discHystMinRelayUE-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12},
+ -- Uu threshold
+ discThreshHiRemoteUE-r13 RSRP-Range OPTIONAL, -- Need OR
+ discHystMaxRemoteUE-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12},
+ -- Uu threshold
+ reselectionInfoRemoteUE-IC-r13 ReselectionInfoRelay-r13
+ } OPTIONAL, -- Need OR
+ discConfigPS-13 SEQUENCE {
+ discRxPoolPS-r13 SL-DiscRxPoolList-r12,
+ discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR
+ } OPTIONAL -- Need OR
+ ]]
+}
+
+SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12
+
+SL-CarrierFreqInfoList-v13x0 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v13x0
+
+SL-CarrierFreqInfo-r12::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP
+}
+
+ReselectionInfoRelay-r13 ::= SEQUENCE {
+ q-RxLevMin-r13 Q-RxLevMin,
+ -- Note that the mapping of invidual values may be different for PC5, but the granularity/
+ -- number of values is same as for Uu
+ filterCoefficient-r13 FilterCoefficient,
+ minHyst-r13 ENUMERATED {dB0, dB3,
+ dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR
+}
+
+CellSelectionInfoNFreq-r13 ::= SEQUENCE {
+ -- Cell selection information as in SIB1
+ q-RxLevMin-r13 Q-RxLevMin,
+ q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP
+ -- Cell re-selection information as in SIB3
+ q-Hyst-r13 ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24},
+ q-RxLevMinReselection-r13 Q-RxLevMin OPTIONAL, -- Need OP
+ t-ReselectionEUTRA-r13 T-Reselection
+}
+
+SL-CarrierFreqInfo-v13x0::= SEQUENCE {
+ discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR
+ discRxResourcesPS-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR
+ discTxResources-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL, -- Need OR
+ discTxResourcesPS-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL, -- Need OR
+ discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx
+ discTxRefCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR
+ discSyncConfig-r13 SL-SyncConfigListNFreq-r12 OPTIONAL, -- Need OR
+ cellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR
+}
+
+PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12
+
+PLMN-IdentityInfo2-r12 ::= CHOICE {
+ plmn-Index-r12 INTEGER (1..maxPLMN-r11),
+ plmnIdentity-r12 PLMN-Identity
+}
+
+SL-DiscTxResourcesInterFreq-r13 ::= CHOICE {
+ acquireSI-FromCarrier-r13 NULL,
+ discTxPoolCommon-r13 SL-DiscTxPoolList-r12,
+ requestDedicated-r13 NULL,
+ noTxOnCarrier-r13 NULL
+}
+
+
+SystemInformationBlockType20-r13 ::= SEQUENCE {
+ sc-mcch-RepetionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256},
+ sc-mcch-Offset-r13 INTEGER (0..10),
+ sc-mcch-Subframe-r13 INTEGER (0..9),
+ sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256,
+ rf512, rf1024},
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+
+AntennaInfoCommon ::= SEQUENCE {
+ antennaPortsCount ENUMERATED {an1, an2, an4, spare1}
+}
+
+AntennaInfoDedicated ::= SEQUENCE {
+ transmissionMode ENUMERATED {
+ tm1, tm2, tm3, tm4, tm5, tm6,
+ tm7, tm8-v920},
+ 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}
+ }
+}
+
+AntennaInfoDedicated-v920 ::= SEQUENCE {
+ codebookSubsetRestriction-v920 CHOICE {
+ n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm8-r9 BIT STRING (SIZE (32))
+ } OPTIONAL -- Cond TM8
+}
+
+AntennaInfoDedicated-r10 ::= SEQUENCE {
+ transmissionMode-r10 ENUMERATED {
+ tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920,
+ tm9-v1020, tm10-v1130, spare6, spare5, spare4,
+ spare3, spare2, spare1},
+ codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX
+ ue-TransmitAntennaSelection CHOICE{
+ release NULL,
+ setup ENUMERATED {closedLoop, openLoop}
+ }
+}
+
+AntennaInfoDedicated-v10i0::= SEQUENCE {
+ maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR
+}
+
+AntennaInfoDedicated-v1250 ::= SEQUENCE {
+ alternativeCodebookEnabledFor4TX-r12 BOOLEAN
+}
+
+
+AntennaInfoUL-r10 ::= SEQUENCE {
+ transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5,
+ spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR
+ fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR
+}
+
+
+CQI-ReportConfig ::= SEQUENCE {
+ cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR
+ nomPDSCH-RS-EPRE-Offset INTEGER (-1..6),
+ cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON
+}
+
+CQI-ReportConfig-v920 ::= SEQUENCE {
+ cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup
+ pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI
+}
+
+CQI-ReportConfig-r10 ::= SEQUENCE {
+ cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON
+ nomPDSCH-RS-EPRE-Offset INTEGER (-1..6),
+ cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON
+ pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell
+ csi-SubframePatternConfig-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ csi-MeasSubframeSet1-r10 MeasSubframePattern-r10,
+ csi-MeasSubframeSet2-r10 MeasSubframePattern-r10
+ }
+ } OPTIONAL -- Need ON
+}
+
+CQI-ReportConfig-v1130 ::= SEQUENCE {
+ cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130,
+ cqi-ReportBoth-r11 CQI-ReportBoth-r11
+}
+
+CQI-ReportConfig-v1250 ::= SEQUENCE {
+ csi-SubframePatternConfig-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ csi-MeasSubframeSets-r12 BIT STRING (SIZE (10))
+ }
+ } OPTIONAL, -- Need ON
+ cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON
+ cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON
+ altCQI-Table-r12 ENUMERATED {
+ allSubframes, csi-SubframeSet1,
+ csi-SubframeSet2, spare1} OPTIONAL -- Need OP
+}
+
+CQI-ReportConfig-v13xy ::= SEQUENCE {
+ cqi-ReportAperiodic-v13xy CQI-ReportAperiodic-v13xy OPTIONAL, -- Need ON
+ cqi-ReportPeriodic-v13xy CQI-ReportPeriodic-v13xy OPTIONAL -- Need ON
+}
+
+CQI-ReportConfigSCell-r10 ::= SEQUENCE {
+ cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR
+ nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6),
+ cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON
+ pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell
+}
+
+CQI-ReportConfigSCell-v13x0 ::= SEQUENCE {
+ cqi-ReportPeriodicSCell-v13x0 CQI-ReportPeriodic-v13xy
+}
+
+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
+ }
+}
+
+CQI-ReportPeriodic-r10 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184),
+ cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR
+ cqi-pmi-ConfigIndex INTEGER (0..1023),
+ cqi-FormatIndicatorPeriodic-r10 CHOICE {
+ widebandCQI-r10 SEQUENCE {
+ csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR
+ },
+ subbandCQI-r10 SEQUENCE {
+ k INTEGER (1..4),
+ periodicityFactor-r10 ENUMERATED {n2, n4}
+ }
+ },
+ ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR
+ simultaneousAckNackAndCQI BOOLEAN,
+ cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR
+ csi-ConfigIndex-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023),
+ ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+
+CQI-ReportPeriodic-v1130 ::= SEQUENCE {
+ simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR
+ cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON
+ cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON
+}
+
+CQI-ReportPeriodic-v13xy ::= SEQUENCE {
+ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need ON
+ simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR
+}
+
+
+CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11
+
+CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11
+
+CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE {
+ cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11,
+ cqi-pmi-ConfigIndex-r11 INTEGER (0..1023),
+ cqi-FormatIndicatorPeriodic-r11 CHOICE {
+ widebandCQI-r11 SEQUENCE {
+ csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR
+ },
+ subbandCQI-r11 SEQUENCE {
+ k INTEGER (1..4),
+ periodicityFactor-r11 ENUMERATED {n2, n4}
+ }
+ },
+ ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR
+ csi-ConfigIndex-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023),
+ ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON
+ ]]
+}
+
+CQI-ReportAperiodic-r10 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic,
+ aperiodicCSI-Trigger-r10 SEQUENCE {
+ trigger1-r10 BIT STRING (SIZE (8)),
+ trigger2-r10 BIT STRING (SIZE (8))
+ } OPTIONAL -- Need OR
+ }
+}
+
+CQI-ReportAperiodic-v1250 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ aperiodicCSI-Trigger-v1250 SEQUENCE {
+ trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2},
+ trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)),
+ trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8))
+ }
+ }
+}
+
+CQI-ReportAperiodic-v13xy ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-ReportModeAperiodic-r13 CQI-ReportModeAperiodic,
+ aperiodicCSI-Trigger-v13xy SEQUENCE {
+ trigger1-r13 BIT STRING (SIZE (32)),
+ trigger2-r13 BIT STRING (SIZE (32)),
+ trigger3-r13 BIT STRING (SIZE (32)),
+ trigger4-r13 BIT STRING (SIZE (32)),
+ trigger5-r13 BIT STRING (SIZE (32)),
+ trigger6-r13 BIT STRING (SIZE (32))
+ } OPTIONAL, -- Need OR
+ aperiodicCSI-Trigger2-r13 SEQUENCE {
+ trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32))
+ } OPTIONAL -- Need OR
+ }
+}
+
+CQI-ReportAperiodicProc-r11 ::= SEQUENCE {
+ cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic,
+ trigger01-r11 BOOLEAN,
+ trigger10-r11 BOOLEAN,
+ trigger11-r11 BOOLEAN
+}
+
+CQI-ReportAperiodicProc-r13 ::= SEQUENCE {
+ trigger001-r13 BOOLEAN,
+ trigger010-r13 BOOLEAN,
+ trigger011-r13 BOOLEAN,
+ trigger100-r13 BOOLEAN,
+ trigger101-r13 BOOLEAN,
+ trigger110-r13 BOOLEAN,
+ trigger111-r13 BOOLEAN}
+
+CQI-ReportModeAperiodic ::= ENUMERATED {
+ rm12, rm20, rm22, rm30, rm31,
+ rm32-v1250, rm10-v13xy, rm11-v13xx
+}
+
+CQI-ReportBoth-r11 ::= SEQUENCE {
+ csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON
+ csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON
+}
+
+CQI-ReportBoth-v1250 ::= SEQUENCE {
+ csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON
+ csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON
+}
+
+CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11
+
+CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11
+
+CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11
+
+CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11
+
+CQI-ReportBothProc-r11 ::= SEQUENCE {
+ ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR
+ pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR
+}
+
+CRI-ReportConfig-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cri-ConfigIndex-r13 ENUMERATED {n1, n2, n4, n8, n16, n32},
+ cri-ConfigIndex2-r13 ENUMERATED {n1, n2, n4, n8, n16, n32} OPTIONAL -- Need OR
+ }
+}
+
+
+CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11)
+
+
+CrossCarrierSchedulingConfig-r10 ::= SEQUENCE {
+ schedulingCellInfo-r10 CHOICE {
+ own-r10 SEQUENCE { -- No cross carrier scheduling
+ cif-Presence-r10 BOOLEAN
+ },
+ other-r10 SEQUENCE { -- Cross carrier scheduling
+ schedulingCellId-r10 ServCellIndex-r10,
+ pdsch-Start-r10 INTEGER (1..4)
+ }
+ }
+}
+
+CrossCarrierSchedulingConfig-r13 ::= SEQUENCE {
+ schedulingCellInfo-r13 CHOICE {
+ own-r13 SEQUENCE { -- No cross carrier scheduling
+ cif-Presence-r13 BOOLEAN
+ },
+ other-r13 SEQUENCE { -- Cross carrier scheduling
+ schedulingCellId-r13 ServCellIndexFull-r13,
+ pdsch-Start-r13 INTEGER (1..4),
+ cif-InSchedulingCell-r13 INTEGER (1..7)
+ }
+ }
+}
+
+
+CSI-IM-Config-r11 ::= SEQUENCE {
+ csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11,
+ resourceConfig-r11 INTEGER (0..31),
+ subframeConfig-r11 INTEGER (0..154),
+ ...
+}
+
+CSI-IM-ConfigExt-r12 ::= SEQUENCE {
+ csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250,
+ resourceConfig-r12 INTEGER (0..31),
+ subframeConfig-r12 INTEGER (0..154),
+ ...
+}
+
+
+CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11)
+CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12)
+CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12)
+
+
+CSI-Process-r11 ::= SEQUENCE {
+ csi-ProcessId-r11 CSI-ProcessId-r11,
+ csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11,
+ csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11,
+ p-C-AndCBSRList-r11 SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11,
+ cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR
+ cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR
+ cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR
+ ...,
+ [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON
+ csi-IM-ConfigIdList-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12
+ } OPTIONAL, -- Need ON
+ cqi-ReportAperiodicProc2-r12 CHOICE {
+ release NULL,
+ setup CQI-ReportAperiodicProc-r11
+ } OPTIONAL -- Need ON
+ ]],
+ [[ cqi-ReportAperiodicProc-r13 CQI-ReportAperiodicProc-r13 OPTIONAL, -- Need ON
+ cqi-ReportAperiodicProc2-r13 CHOICE {
+ release NULL,
+ setup CQI-ReportAperiodicProc-r13
+ } OPTIONAL, -- Need ON
+ eMIMO-Type-r13 CHOICE {
+ release NULL,
+ setup CHOICE {
+ nonPrecoded-r13 CSI-RS-InfoNonPrecoded-r13,
+ beamformed-r13 CSI-RS-InfoBeamformed-r13
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+P-C-AndCBSR-r11 ::= SEQUENCE {
+ p-C-r11 INTEGER (-8..15),
+ codebookSubsetRestriction-r11 BIT STRING
+}
+
+P-C-AndCBSR-r13 ::= SEQUENCE {
+ legacySet SEQUENCE {
+ p-C-r11 INTEGER (-8..15),
+ codebookSubsetRestriction1-r13 BIT STRING
+ } OPTIONAL, -- Cond BeamformedKna
+ codebookSubsetRestriction2-r13 BIT STRING OPTIONAL, -- Cond NonPreCoded
+ codebookSubsetRestriction3-r13 BIT STRING OPTIONAL -- Cond BeamformedK1a
+}
+
+P-C-AndCBSR-PerResourceConfig-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13
+
+
+CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11)
+
+
+CSI-RS-Config-r10 ::= SEQUENCE {
+ csi-RS-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8},
+ resourceConfig-r10 INTEGER (0..31),
+ subframeConfig-r10 INTEGER (0..154),
+ p-C-r10 INTEGER (-8..15)
+ }
+ } OPTIONAL, -- Need ON
+ zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON
+}
+
+CSI-RS-Config-v1250 ::= SEQUENCE {
+ zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON
+ ds-ZeroTxPowerCSI-RS-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12
+ }
+ } OPTIONAL -- Need ON
+}
+
+CSI-RS-Config-v13x0 ::= SEQUENCE {
+ eMIMO-Type-r13 CHOICE {
+ release NULL,
+ setup CHOICE {
+ nonPrecoded-r13 CSI-RS-InfoNonPrecoded-r13,
+ beamformed-r13 CSI-RS-InfoBeamformed-r13
+ }
+ } OPTIONAL -- Need ON
+}
+
+ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE {
+ release NULL,
+ setup ZeroTxPowerCSI-RS-r12
+}
+
+ZeroTxPowerCSI-RS-r12 ::= SEQUENCE {
+ zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)),
+ zeroTxPowerSubframeConfig-r12 INTEGER (0..154)
+}
+
+
+CSI-RS-ConfigNZP-r11 ::= SEQUENCE {
+ csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11,
+ antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8},
+ resourceConfig-r11 INTEGER (0..31),
+ subframeConfig-r11 INTEGER (0..154),
+ scramblingIdentity-r11 INTEGER (0..503),
+ qcl-CRS-Info-r11 SEQUENCE {
+ qcl-ScramblingIdentity-r11 INTEGER (0..503),
+ crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1},
+ mbsfn-SubframeConfigList-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeConfigList MBSFN-SubframeConfigList
+ }
+ } OPTIONAL -- Need ON
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ eMIMO-Info-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nzp-resourceConfigList-r13 SEQUENCE (SIZE (2..8)) OF ResourceConfig-r13,
+ cdmType ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+ResourceConfig-r13 ::= INTEGER (0..31)
+
+
+CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11)
+
+
+CSI-RS-ConfigZP-r11 ::= SEQUENCE {
+ csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11,
+ resourceConfigList-r11 BIT STRING (SIZE (16)),
+ subframeConfig-r11 INTEGER (0..154),
+ ...
+}
+
+
+CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11)
+
+
+CSI-RS-InfoNonPrecoded-r13 ::= SEQUENCE {
+ p-C-AndCBSRList-r13 SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 OPTIONAL, -- Need OR
+ codebookConfigN1-r13 ENUMERATED {an1, an2, an3, an4, an8},
+ codebookConfigN2-r13 ENUMERATED {an1, an2, an3, an4, an8},
+ codebookOverSamplingRateConfig-O1-r13 ENUMERATED {na,an4,an8},
+ codebookOverSamplingRateConfig-O2-r13 ENUMERATED {na,an4,an8},
+ codebookConfig-r13 ENUMERATED {an1, an2, an3, an4},
+ interferenceMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR
+}
+
+CSI-RS-InfoBeamformed-r13::= SEQUENCE {
+ csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR
+ csi-IM-ConfigIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-IM-ConfigIdInfo-r13 OPTIONAL, -- Need OR
+ p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF P-C-AndCBSR-PerResourceConfig-r13 OPTIONAL, -- Need OR
+ alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR
+}
+
+CSI-IM-ConfigIdInfo-r13 ::= SEQUENCE {
+ csi-IM-ConfigId-r13 CSI-IM-ConfigId-r11 OPTIONAL,
+ interferenceMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR
+}
+
+
+DMRS-Config-r11 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ scramblingIdentity-r11 INTEGER (0..503),
+ scramblingIdentity2-r11 INTEGER (0..503)
+ }
+}
+DMRS-Config-v13x0 ::= SEQUENCE {
+ dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+
+DRB-Identity ::= INTEGER (1..32)
+
+
+EPDCCH-Config-r11 ::= SEQUENCE{
+ config-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframePatternConfig-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframePattern-r11 MeasSubframePattern-r10
+ }
+ } OPTIONAL, -- Need ON
+ startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP
+ setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON
+ setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON
+ }
+ }
+}
+
+EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11
+
+EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11
+
+EPDCCH-SetConfig-r11 ::= SEQUENCE {
+ setConfigId-r11 EPDCCH-SetConfigId-r11,
+ transmissionType-r11 ENUMERATED {localised, distributed},
+ resourceBlockAssignment-r11 SEQUENCE{
+ numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8},
+ resourceBlockAssignment-r11 BIT STRING (SIZE(4..38))
+ },
+ dmrs-ScramblingSequenceInt-r11 INTEGER (0..503),
+ pucch-ResourceStartOffset-r11 INTEGER (0..2047),
+ re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR
+ ...,
+ [[ csi-RS-ConfigZPId2-r12 CHOICE {
+ release NULL,
+ setup CSI-RS-ConfigZPId-r11
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+EPDCCH-SetConfigId-r11 ::= INTEGER (0..1)
+
+EIMTA-MainConfig-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ eimta-RNTI-r12 C-RNTI,
+ eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80},
+ eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10))
+ }
+}
+
+EIMTA-MainConfigServCell-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5),
+ eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2,sa4,sa5},
+ mbsfn-SubframeConfigList-v1250 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeConfigList-r12 MBSFN-SubframeConfigList
+ }
+ }
+ }
+}
+
+
+LogicalChannelConfig ::= SEQUENCE {
+ ul-SpecificParameters SEQUENCE {
+ priority INTEGER (1..16),
+ prioritisedBitRate ENUMERATED {
+ kBps0, kBps8, kBps16, kBps32, kBps64, kBps128,
+ kBps256, infinity, kBps512-v1020, kBps1024-v1020,
+ kBps2048-v1020, 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
+ ...,
+ [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask
+ ]],
+ [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON
+ ]]
+}
+
+
+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 PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON
+ retxBSR-Timer RetxBSR-Timer-r12,
+ 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
+ ...,
+ [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON
+ ]],
+ [[ mac-MainConfig-v1020 SEQUENCE {
+ sCellDeactivationTimer-r10 ENUMERATED {
+ rf2, rf4, rf8, rf16, rf32, rf64, rf128,
+ spare} OPTIONAL, -- Need OP
+ extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR
+ extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR
+ } OPTIONAL -- Need ON
+ ]],
+ [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON
+ stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON
+ drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON
+ ]],
+ [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON
+ dualConnectivityPHR CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ phr-ModeOtherCG-r12 ENUMERATED {real, virtual}
+ }
+ } OPTIONAL, -- Need ON
+ logicalChannelSR-Config-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1}
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ extendedPHR2-r13 ENUMERATED {setup} OPTIONAL, -- Need ON
+ eDRX-Config-CycleStartOffset-r13 CHOICE {
+ release NULL,
+ setup
+ CHOICE {
+ sf5120 INTEGER(0..1),
+ sf10240 INTEGER(0..3)
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+MAC-MainConfigSCell-r11 ::= SEQUENCE {
+ stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP
+ ...
+}
+
+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, psf0-v1020,
+ 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
+ }
+}
+
+DRX-Config-v1130 ::= SEQUENCE {
+ drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR
+ longDRX-CycleStartOffset-v1130 CHOICE {
+ sf60-v1130 INTEGER(0..59),
+ sf70-v1130 INTEGER(0..69)
+ } OPTIONAL, --Need OR
+ shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR
+}
+
+PeriodicBSR-Timer-r12 ::= ENUMERATED {
+ sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, sf1280, sf2560,
+ infinity, spare1}
+
+RetxBSR-Timer-r12 ::= ENUMERATED {
+ sf320, sf640, sf1280, sf2560, sf5120,
+ sf10240, spare2, spare1}
+
+STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11
+
+STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11
+
+STAG-ToAddMod-r11 ::= SEQUENCE {
+ stag-Id-r11 STAG-Id-r11,
+ timeAlignmentTimerSTAG-r11 TimeAlignmentTimer,
+ ...
+}
+
+STAG-Id-r11::= INTEGER (1..maxSTAG-r11)
+
+
+PDCCH-ConfigSCell-r13 ::= SEQUENCE {
+ skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ pdcch-candidateReductions-r13 PDCCH-CandidateReductions-r13 OPTIONAL -- Need OR
+}
+
+PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100}
+
+PDCCH-CandidateReductions-r13 ::= SEQUENCE {
+ pdcch-candidateReductionAL1 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL2 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL3 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL4 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL5 PDCCH-CandidateReductionValue-r13
+}
+
+
+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
+ },
+ ...
+ }
+ },
+ ...,
+ [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN
+ ]],
+ [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2
+ ]],
+ [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON
+ t-Reordering-r12 ENUMERATED {
+ ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140,
+ ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300,
+ ms500, ms750, spare14, spare13, spare12, spare11, spare10,
+ spare9, spare8, spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1} OPTIONAL -- Cond SetupS
+ ]],
+ [[ ul-DataSplitThreshold-r13 CHOICE {
+ release NULL,
+ setup ENUMERATED {
+ b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800,
+ b25600, b51200, b102400, b204800, b409600, b819200,
+ spare1}
+ } OPTIONAL, -- Need ON
+ pdcp-SN-Size-v13xx ENUMERATED {len18bits} OPTIONAL -- Cond Rlc-AM3
+ ]]
+
+}
+
+
+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}
+}
+
+PDSCH-ConfigDedicated-v1130 ::= SEQUENCE {
+ dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON
+ qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR
+ re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON
+ re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON
+}
+
+PDSCH-ConfigDedicated-v1280 ::= SEQUENCE {
+ tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR
+}
+
+PDSCH-ConfigDedicated-v13x0 ::= SEQUENCE {
+ dmrs-ConfigPDSCH-v13x0 DMRS-Config-v13x0 OPTIONAL -- Need ON
+}
+
+RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11
+
+RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11
+
+PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE {
+ pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11,
+ optionalSetOfFields-r11 SEQUENCE {
+ crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1},
+ crs-FreqShift-r11 INTEGER (0..5),
+ mbsfn-SubframeConfigList-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeConfigList MBSFN-SubframeConfigList
+ }
+ } OPTIONAL, -- Need ON
+ pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned}
+ } OPTIONAL, -- Need OP
+ csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11,
+ qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR
+ ...
+}
+
+
+PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11)
+
+
+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, -- Cond CQI-r8
+ soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON
+ antennaInfo CHOICE {
+ explicitValue AntennaInfoDedicated,
+ defaultValue NULL
+ } OPTIONAL, -- Cond AI-r8
+ schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON
+ ...,
+ [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8
+ antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8
+ ]],
+ [[ antennaInfo-r10 CHOICE {
+ explicitValue-r10 AntennaInfoDedicated-r10,
+ defaultValue NULL
+ } OPTIONAL, -- Cond AI-r10
+ antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON
+ cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON
+ cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10
+ csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-v1020
+ SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodic-r10
+ SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated-v1020 UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON
+ ]],
+ [[ additionalSpectrumEmissionCA-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ -- DL configuration as well as configuration applicable for DL and UL
+ csi-RS-ConfigNZPToReleaseList-r11 CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToAddModList-r11 CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToReleaseList-r11 CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON
+ epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ -- UL configuration
+ cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated-v1130 UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON
+ ]],
+ [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10
+ eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON
+ eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON
+ cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated-v1250 UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON
+ csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON
+ ]],
+ [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON
+ ]],
+ [[ pdsch-ConfigDedicated-v13x0 PDSCH-ConfigDedicated-v13x0 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-v13xy OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-v13xy OPTIONAL, -- Need ON
+ cqi-ReportConfig-v13xy CQI-ReportConfig-v13xy OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-v13x0
+ SoundingRS-UL-ConfigDedicated-v13x0 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedUpPTsExt-r13
+ SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodic-v13x0
+ SoundingRS-UL-ConfigDedicatedAperiodic-v13x0 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13
+ SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON
+ cqi-ReportConfigPCell-v13x0 CQI-ReportConfig-v13xy OPTIONAL, -- Need ON
+ csi-RS-Config-v13x0 CSI-RS-Config-v13x0 OPTIONAL -- Need ON
+ ]]
+}
+
+PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE {
+ -- DL configuration as well as configuration applicable for DL and UL
+ nonUL-Configuration-r10 SEQUENCE {
+ antennaInfo-r10 AntennaInfoDedicated-r10 OPTIONAL, -- Need ON
+ crossCarrierSchedulingConfig-r10 CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON
+ csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON
+ } OPTIONAL, -- Cond SCellAdd
+ -- UL configuration
+ ul-Configuration-r10 SEQUENCE {
+ antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON
+ pusch-ConfigDedicatedSCell-r10 PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicatedSCell-r10 UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON
+ cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-r10 SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-v1020
+ SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodic-r10
+ SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON
+ } OPTIONAL, -- Cond CommonUL
+ ...,
+ [[ -- DL configuration as well as configuration applicable for DL and UL
+ csi-RS-ConfigNZPToReleaseList-r11 CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToAddModList-r11 CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToReleaseList-r11 CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON
+ epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ -- UL configuration
+ cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicatedSCell-v1130 UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON
+ ]],
+ [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON
+ eimta-MainConfigSCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON
+ cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicatedSCell-v1250 UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON
+ csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON
+ ]],
+ [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON
+ ]],
+ [[ pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated OPTIONAL, -- Need ON
+ pucch-ConfigDedicatedExt1-r13 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ pucch-ConfigDedicatedExt2-r13 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ pucch-ConfigDedicatedExt3-r13 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Cond eimta
+ pucch-ConfigDedicatedExt4-r13 PUCCH-ConfigDedicated-v13xy OPTIONAL, -- Need ON
+ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH_SCell
+ crossCarrierSchedulingConfig-r13 CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config
+ schedulingRequestConfig-r13 SchedulingRequestConfig OPTIONAL, -- Need ON
+ schedulingRequestConfigExt-r13 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUCCH-SCell-r13 TPC-PDCCH-ConfigSCell OPTIONAL, -- Cond PUCCH-SCell
+ pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated OPTIONAL, -- Cond PUSCH-SCell
+ pusch-ConfigDedicatedExt-r13 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Cond PUSCH-SCell
+ pusch-ConfigDedicatedExt2-r13 PUSCH-ConfigDedicated-v13xy OPTIONAL, -- Cond PUSCH-SCell
+ uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated OPTIONAL, -- Cond UL-Power-SCell
+ uplinkPowerControlDedicatedExt-r13 UplinkPowerControlDedicated-v1020 OPTIONAL, -- Cond UL-Power-SCell
+ pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v13xy CQI-ReportConfig-v13xy OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v13x0 PDSCH-ConfigDedicated-v13x0 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-v13x0
+ SoundingRS-UL-ConfigDedicated-v13x0 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedUpPTsExt-r13
+ SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodic-v13x0
+ SoundingRS-UL-ConfigDedicatedAperiodic-v13x0 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13
+ SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON
+ csi-RS-Config-v13x0 CSI-RS-Config-v13x0 OPTIONAL, -- Need ON
+ laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL -- Need ON
+ ]]
+}
+
+LAA-SCellConfiguration-r13 ::= SEQUENCE {
+ subframeStartPosition ENUMERATED {s0, s07},
+ laa-SCellSubframeConfig BIT STRING (SIZE(8))
+}
+
+CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11
+
+CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11
+
+CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11
+
+CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11
+
+
+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-ConfigSCell-r10 ::= SEQUENCE {
+ prach-ConfigIndex-r10 INTEGER (0..63)
+}
+
+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
+}
+
+PUCCH-ConfigDedicated-v1020 ::= SEQUENCE {
+ pucch-Format-r10 CHOICE {
+ format3-r10 SEQUENCE {
+ n3PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON
+ twoAntennaPortActivatedPUCCH-Format3-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n3PUCCH-AN-ListP1-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549)
+ }
+ } OPTIONAL -- Need ON
+ },
+ channelSelection-r10 SEQUENCE {
+ n1PUCCH-AN-CS-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10
+ }
+ } OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need OR
+ twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR
+}
+
+PUCCH-ConfigDedicated-v1130 ::= SEQUENCE {
+ n1PUCCH-AN-CS-v1130 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047)
+ }
+ } OPTIONAL, -- Need ON
+ nPUCCH-Param-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nPUCCH-Identity-r11 INTEGER (0..503),
+ n1PUCCH-AN-r11 INTEGER (0..2047)
+ }
+ } OPTIONAL -- Need ON
+}
+
+PUCCH-ConfigDedicated-v1250 ::= SEQUENCE {
+ nkaPUCCH-Param-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nkaPUCCH-AN-r12 INTEGER (0..2047)
+ }
+ }
+}
+
+PUCCH-ConfigDedicated-v13xy ::= SEQUENCE {
+ spatialBundlingPUCCH BOOLEAN,
+ spatialBundlingPUSCH BOOLEAN,
+ harq-TimingTDD BOOLEAN,
+ codebooksizeDetermination-r13 INTEGER(0..1),
+ maximumPayloadCoderate-r13 INTEGER (0..7),
+ pucch-Format-r13 CHOICE {
+ format4-r13 SEQUENCE {
+ format4-resourceConfiguration SEQUENCE (SIZE (4)) OF Format4-resource-r13,
+ format4-MultiCSI-resourceConfiguration SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR
+ },
+ format5-r13 SEQUENCE {
+ format5-resourceConfiguration SEQUENCE (SIZE (4)) OF Format5-resource-r13,
+ format5-MultiCSI-resourceConfiguration SEQUENCE (SIZE (1..2)) OF Format5-resource-r13 OPTIONAL -- Need OR
+
+ }
+ } OPTIONAL -- Need OR
+}
+
+Format4-resource-r13 ::= SEQUENCE {
+ startingPRB-format4-r13 INTEGER (0..109),
+ numberOfPRB-format4-r13 INTEGER (0..7)
+}
+
+Format5-resource-r13 ::= SEQUENCE {
+ startingPRB-format5-r13 INTEGER (0..109),
+ cdm-index-format5-r13 INTEGER (0..1)
+}
+
+
+
+N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+
+
+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-ConfigCommon-v1270 ::= SEQUENCE {
+ enable64QAM-v1270 ENUMERATED {true}
+}
+
+PUSCH-ConfigDedicated ::= SEQUENCE {
+ betaOffset-ACK-Index INTEGER (0..15),
+ betaOffset-RI-Index INTEGER (0..15),
+ betaOffset-CQI-Index INTEGER (0..15)
+}
+
+PUSCH-ConfigDedicated-v1020 ::= SEQUENCE {
+ betaOffsetMC-r10 SEQUENCE {
+ betaOffset-ACK-Index-MC-r10 INTEGER (0..15),
+ betaOffset-RI-Index-MC-r10 INTEGER (0..15),
+ betaOffset-CQI-Index-MC-r10 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+PUSCH-ConfigDedicated-v1130 ::= SEQUENCE {
+ pusch-DMRS-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nPUSCH-Identity-r11 INTEGER (0..509),
+ nDMRS-CSH-Identity-r11 INTEGER (0..509)
+ }
+ }
+}
+
+PUSCH-ConfigDedicated-v1250::= SEQUENCE {
+ uciOnPUSCH CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15),
+ betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15),
+ betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15),
+ betaOffsetMC-r12 SEQUENCE {
+ betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15),
+ betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15),
+ betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15)
+ } OPTIONAL -- Need OR
+ }
+ }
+}
+
+PUSCH-ConfigDedicated-v13xy ::= SEQUENCE {
+ betaOffset-r13 SEQUENCE {
+ betaOffset-ACK-Index-r13 INTEGER (0..15),
+ betaOffset2-ACK-Index-r13 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ betaOffsetMC-r13 SEQUENCE {
+ betaOffset-ACK-Index-MC-r13 INTEGER (0..15),
+ betaOffset2-ACK-Index-MC-r13 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ betaOffset-Subframeset2-r13 SEQUENCE {
+ betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15),
+ betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ betaOffset-Subframeset2-MC-r13 SEQUENCE {
+ betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15),
+ betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15)
+ } OPTIONAL -- Need OR
+}
+
+PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE {
+ groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+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 PowerRampingParameters,
+ ra-SupervisionInfo SEQUENCE {
+ preambleTransMax PreambleTransMax,
+ 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-ConfigCommon-v1250 ::= SEQUENCE {
+ txFailParams-r12 SEQUENCE {
+ connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4},
+ connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240,
+ s300, s420, s600, s900},
+ connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP
+ }
+}
+
+RACH-ConfigCommonSCell-r11 ::= SEQUENCE {
+ powerRampingParameters-r11 PowerRampingParameters,
+ ra-SupervisionInfo-r11 SEQUENCE {
+ preambleTransMax-r11 PreambleTransMax
+ },
+ ...
+}
+
+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}
+}
+
+PreambleTransMax ::= ENUMERATED {
+ n3, n4, n5, n6, n7, n8, n10, n20, n50,
+ n100, n200}
+
+
+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,
+ ...,
+ [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR
+ ]],
+ [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR
+ ]],
+ [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR
+ ]]
+}
+
+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,
+ ...,
+ [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON
+ ]],
+ [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3
+ ]],
+ [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR
+ ]],
+ [[ uplinkPowerControlCommon-v13xy UplinkPowerControlCommon-v13xy OPTIONAL -- Need ON
+ ]]
+}
+
+RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE {
+ basicFields-r12 RadioResourceConfigCommonSCell-r10,
+ pucch-ConfigCommon-r12 PUCCH-ConfigCommon,
+ rach-ConfigCommon-r12 RACH-ConfigCommon,
+ uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12,
+ ...,
+ [[ uplinkPowerControlCommon-v13xy UplinkPowerControlCommon-v13xy OPTIONAL -- Need ON
+ ]]
+}
+
+RadioResourceConfigCommonSCell-r10 ::= SEQUENCE {
+ -- DL configuration as well as configuration applicable for DL and UL
+ nonUL-Configuration-r10 SEQUENCE {
+ -- 1: Cell characteristics
+ dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100},
+ -- 2: Physical configuration, general
+ antennaInfoCommon-r10 AntennaInfoCommon,
+ mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR
+ -- 3: Physical configuration, control
+ phich-Config-r10 PHICH-Config,
+ -- 4: Physical configuration, physical channels
+ pdsch-ConfigCommon-r10 PDSCH-ConfigCommon,
+ tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell
+ },
+ -- UL configuration
+ ul-Configuration-r10 SEQUENCE {
+ ul-FreqInfo-r10 SEQUENCE {
+ ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP
+ ul-Bandwidth-r10 ENUMERATED {n6, n15,
+ n25, n50, n75, n100} OPTIONAL, -- Need OP
+ additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission
+ },
+ p-Max-r10 P-Max OPTIONAL, -- Need OP
+ uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10,
+ -- A special version of IE UplinkPowerControlCommon may be introduced
+ -- 3: Physical configuration, control
+ soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon,
+ ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength,
+ -- 4: Physical configuration, physical channels
+ prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11
+ pusch-ConfigCommon-r10 PUSCH-ConfigCommon
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP
+ ]],
+ [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell
+ prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL
+ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2
+ uplinkPowerControlCommonSCell-v1130
+ UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL
+ ]],
+ [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR
+ ]],
+ [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL
+ uplinkPowerControlCommonSCell-v13xx UplinkPowerControlCommonPSCell-r12 OPTIONAL -- Cond UL
+ ]]
+}
+
+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
+ ...,
+ [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON
+ ]],
+ [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON
+ ]],
+ [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON
+ ]],
+ [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON
+ ]],
+ [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Cond CRSIM
+ ]]
+}
+
+RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE {
+ -- UE specific configuration extensions applicable for an PSCell
+ physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON
+ sps-Config-r12 SPS-Config OPTIONAL, -- Need ON
+ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON
+ ...,
+ [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON
+ ]]
+}
+
+RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE {
+ drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON
+ mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON
+ rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON
+ ...
+}
+
+RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE {
+ -- UE specific configuration extensions applicable for an SCell
+ physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON
+ ...,
+ [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd
+ ]],
+ [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON
+ ]],
+ [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 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-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12
+
+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 SetupM
+ logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM
+ logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM
+ ...,
+ [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP
+ rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON
+ ]],
+ [[ rlc-Config-v13xx RLC-Config-v13xx OPTIONAL -- Need ON
+ ]]
+}
+
+DRB-ToAddModSCG-r12 ::= SEQUENCE {
+ drb-Identity-r12 DRB-Identity,
+ drb-Type-r12 CHOICE {
+ split-r12 NULL,
+ scg-r12 SEQUENCE {
+ eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S
+ }
+ } OPTIONAL, -- Cond SetupS2
+ rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS
+ rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON
+ logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS
+ logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS
+ ...
+}
+
+DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity
+
+MeasSubframePatternPCell-r10 ::= CHOICE {
+ release NULL,
+ setup MeasSubframePattern-r10
+}
+
+NeighCellsCRS-Info-r11 ::= CHOICE {
+ release NULL,
+ setup CRS-AssistanceInfoList-r11
+}
+
+CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11
+
+CRS-AssistanceInfo-r11 ::= SEQUENCE {
+ physCellId-r11 PhysCellId,
+ antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1},
+ mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList,
+ ...
+}
+
+NeighCellsCRS-Info-r13 ::= CHOICE {
+ release NULL,
+ setup CRS-AssistanceInfoList-r13
+}
+
+CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13
+
+CRS-AssistanceInfo-r13 ::= SEQUENCE {
+ physCellId-r13 PhysCellId,
+ antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1},
+ mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON
+ ...
+}
+
+NAICS-AssistanceInfo-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON
+ neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON
+ servCellp-a-r12 P-a OPTIONAL -- Need ON
+ }
+}
+
+NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId
+
+NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12
+
+NeighCellsInfo-r12 ::= SEQUENCE {
+ physCellId-r12 PhysCellId,
+ p-b-r12 INTEGER (0..3),
+ crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare},
+ mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON
+ p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a,
+ transmissionModeList-r12 BIT STRING (SIZE(8)),
+ resAllocGranularity-r12 INTEGER (1..4),
+ ...
+}
+P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3}
+
+
+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
+ },
+ ...
+}
+
+RLC-Config-v1250 ::= SEQUENCE {
+ ul-extended-RLC-LI-Field-r12 BOOLEAN,
+ dl-extended-RLC-LI-Field-r12 BOOLEAN
+}
+
+RLC-Config-v13xx ::= SEQUENCE {
+ ul-extended-RLC-AM-SN-r13 BOOLEAN,
+ dl-extended-RLC-AM-SN-r13 BOOLEAN,
+ pollPDU-v13xy PollPDU-v13xy OPTIONAL -- Need OR
+}
+
+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}
+
+PollPDU-v13xy ::= ENUMERATED {
+ p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384}
+
+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}
+
+
+RLF-TimersAndConstants-r9 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ t301-r9 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t310-r9 ENUMERATED {
+ ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n310-r9 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ t311-r9 ENUMERATED {
+ ms1000, ms3000, ms5000, ms10000, ms15000,
+ ms20000, ms30000},
+ n311-r9 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...
+ }
+}
+
+RLF-TimersAndConstantsSCG-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ t313-r12 ENUMERATED {
+ ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n313-r12 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ n314-r12 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...
+ }
+}
+
+
+RN-SubframeConfig-r10 ::= SEQUENCE {
+ subframeConfigPattern-r10 CHOICE {
+ subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)),
+ subframeConfigPatternTDD-r10 INTEGER (0..31)
+ } OPTIONAL, -- Need ON
+ rpdcch-Config-r10 SEQUENCE {
+ resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed,
+ spare4, spare3, spare2, spare1},
+ resourceBlockAssignment-r10 CHOICE {
+ type01-r10 CHOICE {
+ nrb6-r10 BIT STRING (SIZE(6)),
+ nrb15-r10 BIT STRING (SIZE(8)),
+ nrb25-r10 BIT STRING (SIZE(13)),
+ nrb50-r10 BIT STRING (SIZE(17)),
+ nrb75-r10 BIT STRING (SIZE(19)),
+ nrb100-r10 BIT STRING (SIZE(25))
+ },
+ type2-r10 CHOICE {
+ nrb6-r10 BIT STRING (SIZE(5)),
+ nrb15-r10 BIT STRING (SIZE(7)),
+ nrb25-r10 BIT STRING (SIZE(9)),
+ nrb50-r10 BIT STRING (SIZE(11)),
+ nrb75-r10 BIT STRING (SIZE(12)),
+ nrb100-r10 BIT STRING (SIZE(13))
+ },
+ ...
+ },
+ demodulationRS-r10 CHOICE {
+ interleaving-r10 ENUMERATED {crs},
+ noInterleaving-r10 ENUMERATED {crs, dmrs}
+ },
+ pdsch-Start-r10 INTEGER (1..3),
+ pucch-Config-r10 CHOICE {
+ tdd CHOICE {
+ channelSelectionMultiplexingBundling SEQUENCE {
+ n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+ },
+ fallbackForFormat3 SEQUENCE {
+ n1PUCCH-AN-P0-r10 INTEGER (0..2047),
+ n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR
+ }
+ },
+ fdd SEQUENCE {
+ n1PUCCH-AN-P0-r10 INTEGER (0..2047),
+ n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR
+ }
+ },
+ ...
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+
+SchedulingRequestConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sr-PUCCH-ResourceIndex INTEGER (0..2047),
+ sr-ConfigIndex INTEGER (0..157),
+ dsr-TransMax ENUMERATED {
+ n4, n8, n16, n32, n64, spare3, spare2, spare1}
+ }
+}
+
+SchedulingRequestConfig-v1020 ::= SEQUENCE {
+ sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR
+}
+
+
+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}
+ }
+}
+
+SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE {
+ srs-AntennaPort-r10 SRS-AntennaPort
+}
+
+SoundingRS-UL-ConfigDedicated-v13x0 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ transmissionComb-v13x0 INTEGER (2..3) OPTIONAL, -- Need OR
+ cyclicShift-v13x0 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR
+ transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-UpPtsAdd ENUMERATED {sym2, sym4},
+ srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3},
+ srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3},
+ freqDomainPosition-r13 INTEGER (0..23),
+ duration-r13 BOOLEAN,
+ srs-ConfigIndex-r13 INTEGER (0..1023),
+ transmissionComb-r13 INTEGER (0..3),
+ cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7,
+ cs8, cs9, cs10, cs11},
+ srs-AntennaPort-r13 SRS-AntennaPort,
+ transmissionCombNum-r13 ENUMERATED {n2, n4}
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigIndexAp-r10 INTEGER (0..31),
+ srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON
+ srs-ActivateAp-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10,
+ srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10,
+ ...
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedAperiodic-v13x0 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigApDCI-Format4-v13x0 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v13x0 OPTIONAL,--Need ON
+ srs-ActivateAp-v13x0 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigApDCI-Format0-v13x0 SRS-ConfigAp-v13x0 OPTIONAL, -- Need ON
+ srs-ConfigApDCI-Format1a2b2c-v13x0 SRS-ConfigAp-v13x0 OPTIONAL, -- Need ON
+ ...
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-UpPtsAdd ENUMERATED {sym2, sym4},
+ srs-ConfigIndexAp-r13 INTEGER (0..31),
+ srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON
+ srs-ActivateAp-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13,
+ srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13,
+ ...
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+SRS-ConfigAp-r10 ::= SEQUENCE {
+ srs-AntennaPortAp-r10 SRS-AntennaPort,
+ srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3},
+ freqDomainPositionAp-r10 INTEGER (0..23),
+ transmissionCombAp-r10 INTEGER (0..1),
+ cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7}
+}
+
+SRS-ConfigAp-v13x0 ::= SEQUENCE {
+ transmissionCombAp-v13x0 INTEGER (2..3) OPTIONAL, -- Need OR
+ cyclicShiftAp-v13x0 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR
+ transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR
+}
+
+SRS-ConfigAp-r13 ::= SEQUENCE {
+ srs-AntennaPortAp-r10 SRS-AntennaPort,
+ srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3},
+ freqDomainPositionAp-r10 INTEGER (0..23),
+ transmissionCombAp-r10 INTEGER (0..3),
+ cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7,
+ cs8, cs9, cs10, cs11},
+ transmissionCombNum-r13 ENUMERATED {n2, n4}
+}
+
+SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1}
+
+
+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),
+ n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList,
+ ...,
+ [[ twoAntennaPortActivated-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList
+ }
+ } OPTIONAL -- Need ON
+ ]]
+ }
+}
+
+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
+ ...,
+ [[ p0-PersistentSubframeSet2-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24),
+ p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7)
+ }
+ } OPTIONAL -- Need ON
+ ]]
+ }
+}
+
+N1PUCCH-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}
+}
+
+TDD-Config-v1130 ::= SEQUENCE {
+ specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9}
+}
+
+TDD-ConfigSL-r12 ::= SEQUENCE {
+ subframeAssignmentSL-r12 ENUMERATED {
+ none, sa0, sa1, sa2, sa3, sa4, sa5, sa6}
+}
+
+
+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-PDCCH-ConfigSCell ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ tpc-Index-PUCCH-SCell-r13 TPC-Index
+ }
+}
+
+TPC-Index ::= CHOICE {
+ indexOfFormat3 INTEGER (1..15),
+ indexOfFormat3A INTEGER (1..31)
+}
+
+
+UplinkPowerControlCommon ::= SEQUENCE {
+ p0-NominalPUSCH INTEGER (-126..24),
+ alpha Alpha-r12,
+ p0-NominalPUCCH INTEGER (-127..-96),
+ deltaFList-PUCCH DeltaFList-PUCCH,
+ deltaPreambleMsg3 INTEGER (-1..6)
+}
+
+UplinkPowerControlCommon-v1020 ::= SEQUENCE {
+ deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2,
+ deltaF3, deltaF4, deltaF5, deltaF6},
+ deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1}
+}
+
+UplinkPowerControlCommon-v13xy ::= SEQUENCE {
+ deltaF-PUCCH-Format4 ENUMERATED {deltaFX, deltaFX1, deltaFX2,deltaFX3, deltaFX4, deltaFX5, deltaFX6, deltaFX7} OPTIONAL, -- Need OR
+ deltaF-PUCCH-Format5 ENUMERATED { deltaFX, deltaFX1, deltaFX2, deltaFX3, deltaFX4, deltaFX5, deltaFX6, deltaFX7} OPTIONAL -- Need OR
+}
+
+UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE {
+-- For uplink power control the additional/ missing fields are signalled (compared to SCell)
+ deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2,
+ deltaF3, deltaF4, deltaF5, deltaF6},
+ deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1},
+ p0-NominalPUCCH-r12 INTEGER (-127..-96),
+ deltaFList-PUCCH-r12 DeltaFList-PUCCH
+}
+
+UplinkPowerControlCommonPSCell-v13xy ::= SEQUENCE {
+-- For uplink power control the additional/ missing fields are signalled (compared to SCell)
+ deltaF-PUCCH-Format4 ENUMERATED {deltaFX, deltaFX1, deltaFX2,deltaFX3, deltaFX4, deltaFX5, deltaFX6, deltaFX7} OPTIONAL, -- Need OR
+ deltaF-PUCCH-Format5 ENUMERATED { deltaFX, deltaFX1, deltaFX2,deltaFX3, deltaFX4, deltaFX5, deltaFX6, deltaFX7} OPTIONAL -- Need OR
+}
+
+UplinkPowerControlCommonSCell-r10 ::= SEQUENCE {
+ p0-NominalPUSCH-r10 INTEGER (-126..24),
+ alpha-r10 Alpha-r12
+}
+
+UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE {
+ deltaPreambleMsg3-r11 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
+}
+
+UplinkPowerControlDedicated-v1020 ::= SEQUENCE {
+ deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR
+ pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR
+}
+
+UplinkPowerControlDedicated-v1130 ::= SEQUENCE {
+ pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR
+ pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR
+ deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR
+}
+
+UplinkPowerControlDedicated-v1250 ::= SEQUENCE {
+ set2PowerControlParameter CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ tpc-SubframeSet-r12 BIT STRING (SIZE(10)),
+ p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24),
+ alpha-SubframeSet2-r12 Alpha-r12,
+ p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7)
+ }
+ }
+}
+
+UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE {
+ p0-UE-PUSCH-r10 INTEGER (-8..7),
+ deltaMCS-Enabled-r10 ENUMERATED {en0, en1},
+ accumulationEnabled-r10 BOOLEAN,
+ pSRS-Offset-r10 INTEGER (0..15),
+ pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR
+ filterCoefficient-r10 FilterCoefficient DEFAULT fc4,
+ pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell}
+}
+
+Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}
+
+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}
+}
+
+DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE {
+ deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2},
+ ...
+
+}
+
+DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE {
+ deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1}
+}
+
+NextHopChainingCount ::= INTEGER (0..7)
+
+
+SecurityAlgorithmConfig ::= SEQUENCE {
+ cipheringAlgorithm CipheringAlgorithm-r12,
+ integrityProtAlgorithm ENUMERATED {
+ eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3,
+ spare2, spare1, ...}
+}
+
+CipheringAlgorithm-r12 ::= ENUMERATED {
+ eea0, eea1, eea2, eea3-v1130, 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-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2)
+
+ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2)
+
+
+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, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0,
+ 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
+
+
+CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9
+
+
+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)
+
+
+CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8}
+
+
+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))
+}
+
+CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE {
+ powerDownReg-r9 ENUMERATED {true}
+}
+
+
+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))
+}
+
+
+CSG-Identity ::= BIT STRING (SIZE (27))
+
+
+FreqBandIndicator ::= INTEGER (1..maxFBI)
+
+FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2)
+
+FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2)
+
+
+MobilityControlInfo ::= SEQUENCE {
+ targetPhysCellId PhysCellId,
+ carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2
+ 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
+ ...,
+ [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON
+ ]],
+ [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO
+ ]]
+}
+
+MobilityControlInfoSCG-r12 ::= SEQUENCE {
+ t307-r12 ENUMERATED {
+ ms50, ms100, ms150, ms200, ms500, ms1000,
+ ms2000, spare1},
+ ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst,
+ rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP
+ cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON
+ ...
+}
+
+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
+}
+
+CarrierFreqEUTRA-v9e0 ::= SEQUENCE {
+ dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9,
+ ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 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)
+}
+
+
+MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator
+
+MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0
+
+MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10
+
+MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11
+
+MultiBandInfo-v9e0 ::= SEQUENCE {
+ freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP
+}
+
+
+NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10
+
+NS-PmaxValue-r10 ::= SEQUENCE {
+ additionalPmax-r10 P-Max OPTIONAL, -- Need OP
+ additionalSpectrumEmission AdditionalSpectrumEmission
+}
+
+
+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
+}
+
+
+PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9
+
+PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE {
+ start-r9 PhysCellIdUTRA-FDD,
+ range-r9 INTEGER (2..512) 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)
+
+
+
+PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity
+
+
+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-QualMin-r9 ::= INTEGER (-34..-3)
+
+
+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)
+
+
+ReselectionThresholdQ-r9 ::= INTEGER (0..31)
+
+
+SCellIndex-r10 ::= INTEGER (1..7)
+SCellIndex-v13xy ::= INTEGER (8..31)
+SCellIndex-r13 ::= INTEGER (1..31)
+
+
+ServCellIndex-r10 ::= INTEGER (0..7)
+ServCellIndex-v13xy ::= INTEGER (8..31)
+ServCellIndexFull-r13 ::= INTEGER (0..31)
+
+
+SpeedStateScaleFactors ::= SEQUENCE {
+ sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0},
+ sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0}
+}
+
+SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF
+ OCTET STRING (SIZE (1..23))
+
+
+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}
+
+
+CSI-RSRP-Range-r12 ::= INTEGER(0..97)
+
+
+Hysteresis ::= INTEGER (0..30)
+
+
+LocationInfo-r10 ::= SEQUENCE {
+ locationCoordinates-r10 CHOICE {
+ ellipsoid-Point-r10 OCTET STRING,
+ ellipsoidPointWithAltitude-r10 OCTET STRING,
+ ...,
+ ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING,
+ ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING,
+ ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING,
+ ellipsoidArc-r11 OCTET STRING,
+ polygon-r11 OCTET STRING
+ },
+ horizontalVelocity-r10 OCTET STRING OPTIONAL,
+ gnss-TOD-msec-r10 OCTET STRING OPTIONAL,
+ ...
+}
+
+
+MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31)
+
+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
+ ...,
+ [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON
+ ]],
+ [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ measScaleFactor-r12 CHOICE {
+ release NULL,
+ setup MeasScaleFactor-r12
+ } OPTIONAL, -- Need ON
+ measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON
+ measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON
+ measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON
+ ]]
+}
+
+MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId
+
+MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250
+
+MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId
+
+ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId
+
+
+MeasDS-Config-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ dmtc-PeriodOffset-r12 CHOICE {
+ ms40-r12 INTEGER(0..39),
+ ms80-r12 INTEGER(0..79),
+ ms160-r12 INTEGER(0..159),
+ ...
+ },
+ ds-OccasionDuration-r12 CHOICE {
+ durationFDD-r12 INTEGER(1..maxDS-Duration-r12),
+ durationTDD-r12 INTEGER(2..maxDS-Duration-r12)
+ },
+ measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON
+ measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON
+ ...
+ }
+}
+
+MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12
+
+MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12
+
+MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12)
+
+MeasCSI-RS-Config-r12 ::= SEQUENCE {
+ measCSI-RS-Id-r12 MeasCSI-RS-Id-r12,
+ physCellId-r12 INTEGER (0..503),
+ scramblingIdentity-r12 INTEGER (0..503),
+ resourceConfig-r12 INTEGER (0..31),
+ subframeOffset-r12 INTEGER (0..4),
+ csi-RS-IndividualOffset-r12 Q-OffsetRange,
+ ...
+}
+
+
+MeasGapConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ gapOffset CHOICE {
+ gp0 INTEGER (0..39),
+ gp1 INTEGER (0..79),
+ ...
+ }
+ }
+}
+
+
+MeasId ::= INTEGER (1..maxMeasId)
+
+MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12)
+
+
+MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod
+
+MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12
+
+MeasIdToAddMod ::= SEQUENCE {
+ measId MeasId,
+ measObjectId MeasObjectId,
+ reportConfigId ReportConfigId
+}
+
+MeasIdToAddModExt-r12 ::= SEQUENCE {
+ measId-v1250 MeasId-v1250,
+ measObjectId-r12 MeasObjectId,
+ reportConfigId-r12 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,
+ -- 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
+ ...,
+ [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON
+ measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON
+ ]],
+ [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ
+ ]],
+ [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON
+ altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON
+ t312-r12 CHOICE {
+ release NULL,
+ setup ENUMERATED {ms0, ms50, ms100, ms200,
+ ms300, ms400, ms500, ms1000}
+ } OPTIONAL, -- Need ON
+ reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON
+ measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON
+ ]],
+ [[
+ whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON
+ whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON
+ measRSSI-Config-r13 MeasRSSI-Config-r13 OPTIONAL -- Need ON
+ ]]
+}
+
+MeasObjectEUTRA-v9e0 ::= SEQUENCE {
+ carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
+}
+
+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
+}
+
+MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512,
+ sf640, sf1024, sf1280, spare1}
+
+MeasSubframePatternConfigNeigh-r10 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ measSubframePatternNeigh-r10 MeasSubframePattern-r10,
+ measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always
+ }
+}
+
+MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange
+
+AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12
+
+AltTTT-CellsToAddMod-r12 ::= SEQUENCE {
+ cellIndex-r12 INTEGER (1..maxCellMeas),
+ physCellIdRange-r12 PhysCellIdRange
+}
+
+WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13
+
+WhiteCellsToAddMod-r13 ::= SEQUENCE {
+ cellIndex-r13 INTEGER (1..maxCellMeas),
+ physCellIdRange-r13 PhysCellIdRange
+}
+
+MeasRSSI-Config-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640},
+ rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON
+ measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70}
+ }
+}
+
+
+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
+
+MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0
+
+MeasObjectToAddMod ::= SEQUENCE {
+ measObjectId MeasObjectId,
+ measObject CHOICE {
+ measObjectEUTRA MeasObjectEUTRA,
+ measObjectUTRA MeasObjectUTRA,
+ measObjectGERAN MeasObjectGERAN,
+ measObjectCDMA2000 MeasObjectCDMA2000,
+ ...
+ }
+}
+
+MeasObjectToAddMod-v9e0 ::= SEQUENCE {
+ measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra
+}
+
+
+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
+ ...,
+ [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON
+ ]],
+ [[ reducedMeasPerformance-r12 BOOLEAN 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
+}
+
+CSG-AllowedReportingCells-r9 ::= SEQUENCE {
+ physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR
+}
+
+MeasResults ::= SEQUENCE {
+ measId MeasId,
+ measResultPCell SEQUENCE {
+ rsrpResult RSRP-Range,
+ rsrqResult RSRQ-Range
+ },
+ measResultNeighCells CHOICE {
+ measResultListEUTRA MeasResultListEUTRA,
+ measResultListUTRA MeasResultListUTRA,
+ measResultListGERAN MeasResultListGERAN,
+ measResultsCDMA2000 MeasResultsCDMA2000,
+ ...
+ } OPTIONAL,
+ ...,
+ [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL
+ ]],
+ [[ locationInfo-r10 LocationInfo-r10 OPTIONAL,
+ measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL
+ ]],
+ [[ measId-v1250 MeasId-v1250 OPTIONAL,
+ measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL
+ ]],
+ [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL,
+ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL,
+ measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL,
+ measResultPCell-v13xy SEQUENCE {
+ rs-sinrResult-r13 RS-SINR-Range-r13
+ } OPTIONAL,
+ ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 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,
+ ...,
+ [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL
+ ]],
+ [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL,
+ measResult-v1250 RSRQ-Range-v1250 OPTIONAL
+ ]],
+ [[ rs-sinrResult-r13 RS-SINR-Range-r13 OPTIONAL
+ ]]
+ }
+}
+
+MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10
+
+MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (maxServCell-Plus1..maxServCell-r13)) OF MeasResultServFreq-r13
+
+MeasResultServFreq-r10 ::= SEQUENCE {
+ servFreqId-r10 ServCellIndex-r10,
+ measResultSCell-r10 SEQUENCE {
+ rsrpResultSCell-r10 RSRP-Range,
+ rsrqResultSCell-r10 RSRQ-Range
+ } OPTIONAL,
+ measResultBestNeighCell-r10 SEQUENCE {
+ physCellId-r10 PhysCellId,
+ rsrpResultNCell-r10 RSRP-Range,
+ rsrqResultNCell-r10 RSRQ-Range
+ } OPTIONAL,
+ ...,
+ [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL
+ ]],
+ [[ measResultSCell-v13xy SEQUENCE {
+ rs-sinrResult-r13 RS-SINR-Range-r13
+ } OPTIONAL,
+ measResultBestNeighCell-v13xy SEQUENCE {
+ rs-sinrResult-r13 RS-SINR-Range-r13
+ } OPTIONAL
+ ]]
+}
+
+MeasResultServFreq-r13 ::= SEQUENCE {
+ servFreqId-r13 ServCellIndexFull-r13,
+ measResultSCell-r13 SEQUENCE {
+ rsrpResultSCell-r13 RSRP-Range,
+ rsrqResultSCell-r13 RSRQ-Range-v13xx,
+ rs-sinrResult-r13 RS-SINR-Range-r13 OPTIONAL
+ } OPTIONAL,
+ measResultBestNeighCell-r13 SEQUENCE {
+ physCellId-r13 PhysCellId,
+ rsrpResultNCell-r10 RSRP-Range,
+ rsrqResultNCell-r13 RSRQ-Range-v13xx,
+ rs-sinrResult-r13 RS-SINR-Range-r13 OPTIONAL
+ } OPTIONAL,
+ ...
+}
+
+MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12
+
+MeasResultCSI-RS-r12 ::= SEQUENCE {
+ measCSI-RS-Id-r12 MeasCSI-RS-Id-r12,
+ csi-RSRP-Result-r12 CSI-RSRP-Range-r12,
+ ...
+}
+
+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,
+ ...,
+ [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL
+ ]],
+ [[ primaryPLMN-Suitable-r12 ENUMERATED {true} 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),
+ ...
+ }
+}
+
+MeasResultForECID-r9 ::= SEQUENCE {
+ ue-RxTxTimeDiffResult-r9 INTEGER (0..4095),
+ currentSFN-r9 BIT STRING (SIZE (10))
+}
+
+PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity
+
+AdditionalSI-Info-r9 ::= SEQUENCE {
+ csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL,
+ csg-Identity-r9 CSG-Identity OPTIONAL
+}
+MeasResultForRSSI-r13 ::= SEQUENCE {
+ rssi-Result-r13 RSSI-Range-r13,
+ channelOccupancy-r13 INTEGER (0..100)
+}
+
+UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13
+
+
+UL-PDCP-DelayResult-r13 ::= SEQUENCE {
+ qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1},
+ excessDelay-r13 INTEGER (0..31)
+}
+
+
+MeasResultSSTD-r13 ::= SEQUENCE {
+ sfn-OffsetResult-r13 INTEGER (0..1023),
+ frameBoundaryOffsetResult-r13 INTEGER (-4..5),
+ subframeBoundaryOffsetResult-r13 INTEGER (0..63)
+}
+
+
+MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2}
+
+
+QuantityConfig ::= SEQUENCE {
+ quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON
+ quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON
+ quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON
+ quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON
+ ...,
+ [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON
+ ]],
+ [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON
+ ]],
+ [[ quantityConfigEUTRA-v13xy QuantityConfigEUTRA-v13xy OPTIONAL -- Need ON
+ ]]
+}
+
+QuantityConfigEUTRA ::= SEQUENCE {
+ filterCoefficientRSRP FilterCoefficient DEFAULT fc4,
+ filterCoefficientRSRQ FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigEUTRA-v1250 ::= SEQUENCE {
+ filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR
+}
+
+QuantityConfigEUTRA-v13xy ::= SEQUENCE {
+ filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigUTRA ::= SEQUENCE {
+ measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0},
+ measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP},
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigUTRA-v1020 ::= SEQUENCE {
+ filterCoefficient2-FDD-r10 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
+ },
+ ...,
+ eventA6-r10 SEQUENCE {
+ a6-Offset-r10 INTEGER (-30..30),
+ a6-ReportOnLeave-r10 BOOLEAN
+ },
+ eventC1-r12 SEQUENCE {
+ c1-Threshold-r12 ThresholdEUTRA-v1250,
+ c1-ReportOnLeave-r12 BOOLEAN
+ },
+ eventC2-r12 SEQUENCE {
+ c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12,
+ c2-Offset-r12 INTEGER (-30..30),
+ c2-ReportOnLeave-r12 BOOLEAN
+ }
+ },
+ 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},
+ ...,
+ [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI
+ ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR
+ ]],
+ [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR
+ ]],
+ [[ alternativeTimeToTrigger-r12 CHOICE {
+ release NULL,
+ setup TimeToTrigger
+ } OPTIONAL, -- Need ON
+ useT312-r12 BOOLEAN OPTIONAL, -- Need ON
+ usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON
+ aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON
+ a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON
+ reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON
+ reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON
+ triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON
+ triggerQuantity-v13xy CHOICE {
+ release NULL,
+ setup ENUMERATED {sinr}
+ } OPTIONAL, -- Need ON
+ aN-ThresholdSINR-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ threshold1-r13 ThresholdEUTRA-v13xy OPTIONAL, -- Need ON
+ threshold2-r13 ThresholdEUTRA-v13xy OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Cond SINR
+ reportQuantity-v13xy CHOICE {
+ release NULL,
+ setup ENUMERATED {rsrpANDsinr, rsrqANDsinr, all}
+ } OPTIONAL, -- Need ON
+ useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON
+ measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL -- Need OR
+ ]]
+}
+
+RSRQ-RangeConfig-r12 ::= CHOICE {
+ release NULL,
+ setup RSRQ-Range-v1250
+}
+
+ThresholdEUTRA ::= CHOICE{
+ threshold-RSRP RSRP-Range,
+ threshold-RSRQ RSRQ-Range
+}
+
+ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12
+
+ThresholdEUTRA-v13xy ::= RS-SINR-Range-r13
+
+MeasRSSI-ReportConfig-r13 ::= SEQUENCE {
+ channelOccupancyThreshold-r13 RSSI-Range-r13
+}
+
+
+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},
+ ...,
+ [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI
+ ]],
+ [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR
+ ]],
+ [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ b2-Threshold1-v1250 CHOICE {
+ release NULL,
+ setup RSRQ-Range-v1250
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+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)
+
+RSRP-RangeSL-r12 ::= INTEGER(0..13)
+
+RSRP-RangeSL2-r12 ::= INTEGER(0..7)
+
+RSRP-RangeSL3-r12 ::= INTEGER(0..11)
+
+
+RSRQ-Range ::= INTEGER(0..34)
+
+RSRQ-Range-v1250 ::= INTEGER(-30..46)
+
+RSRQ-Range-v13xx ::= INTEGER(-30..46)
+
+
+RSRQ-Type-r12 ::= SEQUENCE {
+ allSymbols-r12 BOOLEAN,
+ wideBand-r12 BOOLEAN
+}
+
+
+RS-SINR-Range-r13 ::= INTEGER(0..127)
+
+
+RSSI-Range-r13 ::= INTEGER(0..76)
+
+
+TimeToTrigger ::= ENUMERATED {
+ ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
+ ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
+ ms5120}
+
+
+UL-DelayConfig-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ delayThreshold-r13 ENUMERATED {
+ ms30, ms40, ms50, ms60, ms70, ms80,
+ ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1},
+ delayReportInterval-r13 ENUMERATED {
+ ms1024, ms2048, ms5120, ms10240}
+ }
+}
+
+
+AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48))
+
+
+AreaConfiguration-r10 ::= CHOICE {
+ cellGlobalIdList-r10 CellGlobalIdList-r10,
+ trackingAreaCodeList-r10 TrackingAreaCodeList-r10
+}
+
+AreaConfiguration-v1130 ::= SEQUENCE {
+ trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130
+}
+
+CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA
+
+TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode
+
+TrackingAreaCodeList-v1130 ::= SEQUENCE {
+ plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity
+}
+
+
+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, ...}
+
+
+LoggingDuration-r10 ::= ENUMERATED {
+ min10, min20, min40, min60, min90, min120, spare2, spare1}
+
+
+LoggingInterval-r10 ::= ENUMERATED {
+ ms1280, ms2560, ms5120, ms10240, ms20480,
+ ms30720, ms40960, ms61440}
+
+
+MeasSubframePattern-r10 ::= CHOICE {
+ subframePatternFDD-r10 BIT STRING (SIZE (40)),
+ subframePatternTDD-r10 CHOICE {
+ subframeConfig1-5-r10 BIT STRING (SIZE (20)),
+ subframeConfig0-r10 BIT STRING (SIZE (70)),
+ subframeConfig6-r10 BIT STRING (SIZE (60)),
+ ...
+ },
+ ...
+}
+
+
+MMEC ::= BIT STRING (SIZE (8))
+
+
+NeighCellConfig ::= BIT STRING (SIZE (2))
+
+
+OtherConfig-r9 ::= SEQUENCE {
+ reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON
+ ...,
+ [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON
+ powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON
+ obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON
+ ]]
+}
+
+IDC-Config-r11 ::= SEQUENCE {
+ idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR
+ autonomousDenialParameters-r11 SEQUENCE {
+ autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15,
+ n20, n30, spare2, spare1},
+ autonomousDenialValidity-r11 ENUMERATED {
+ sf200, sf500, sf1000, sf2000,
+ spare4, spare3, spare2, spare1}
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind
+ ]]
+}
+
+ObtainLocationConfig-r11 ::= SEQUENCE {
+ obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR
+}
+
+PowerPrefIndicationConfig-r11 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE{
+ powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20,
+ s30, s60, s90, s120, s300, s600, spare3,
+ spare2, spare1}
+ }
+}
+
+ReportProximityConfig-r9 ::= SEQUENCE {
+ proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR
+ proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR
+}
+
+
+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))
+}
+
+
+TraceReference-r10 ::= SEQUENCE {
+ plmn-Identity-r10 PLMN-Identity,
+ traceId-r10 OCTET STRING (SIZE (3))
+}
+
+
+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 UE-EUTRA-Capability-v920-IEs OPTIONAL
+}
+
+-- Late non critical extensions
+UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE {
+ featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE {
+ interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE {
+ phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE {
+ rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE {
+ interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL,
+ -- Following field is only to be used for late REL-9 extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE {
+ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE {
+ rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE {
+ rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL,
+ -- Following field is only to be used for late REL-10 extensions
+ lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE {
+ rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE {
+ rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL,
+ otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL,
+ -- Following field is only to be used for late REL-11 extensions
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non critical extensions
+UE-EUTRA-Capability-v920-IEs ::= SEQUENCE {
+ phyLayerParameters-v920 PhyLayerParameters-v920,
+ interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920,
+ interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL,
+ interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL,
+ deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL,
+ csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9,
+ neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9,
+ son-Parameters-r9 SON-Parameters-r9,
+ nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v940-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs)
+ OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE {
+ ue-Category-v1020 INTEGER (6..8) OPTIONAL,
+ phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL,
+ rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL,
+ measParameters-v1020 MeasParameters-v1020 OPTIONAL,
+ featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL,
+ ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL,
+ interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE {
+ fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL,
+ rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE {
+ rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE {
+ pdcp-Parameters-v1130 PDCP-Parameters-v1130,
+ phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL,
+ rf-Parameters-v1130 RF-Parameters-v1130,
+ measParameters-v1130 MeasParameters-v1130,
+ interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130,
+ otherParameters-r11 Other-Parameters-r11,
+ fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE {
+ phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL,
+ ue-Category-v1170 INTEGER (9..10) OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE {
+ rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL,
+ mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE {
+ ue-Category-v11a0 INTEGER (11..12) OPTIONAL,
+ measParameters-v11a0 MeasParameters-v11a0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE {
+ phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL,
+ rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL,
+ rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL,
+ ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL,
+ ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL,
+ ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL,
+ wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL,
+ measParameters-v1250 MeasParameters-v1250 OPTIONAL,
+ dc-Parameters-r12 DC-Parameters-r12 OPTIONAL,
+ mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL,
+ mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL,
+ sl-Parameters-r12 SL-Parameters-r12 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE {
+ ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE {
+ rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE {
+ phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v13x0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v13x0-IEs ::= SEQUENCE {
+ dc-Parameters-v13x0 DC-Parameters-v13x0 OPTIONAL,
+ measParameters-v13xy MeasParameters-v13xy OPTIONAL,
+ mac-Parameters-v13x0 MAC-Parameters-v13x0 OPTIONAL,
+ pdcp-Parameters-v13x0 PDCP-Parameters-v13x0 OPTIONAL,
+ phyLayerParameters-v13x0 PhyLayerParameters-v13x0 OPTIONAL,
+ rf-Parameters-v13x0 RF-Parameters-v13x0 OPTIONAL,
+ rlc-Parameters-v13x0 RLC-Parameters-v13x0 OPTIONAL,
+ ue-CategoryDL-v13x0 INTEGER (17) OPTIONAL,
+ ue-CategoryUL-v13x0 INTEGER (14) OPTIONAL,
+ scptm-Parameters-v13x0 SCPTM-Parameters-v13x0 OPTIONAL,
+ sl-Parameters-r13 SL-Parameters-r13 OPTIONAL,
+ supportOfLAA-r13 ENUMERATED {supported} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE {
+ phyLayerParameters-r9 PhyLayerParameters OPTIONAL,
+ featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL,
+ featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL,
+ interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL,
+ interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL,
+ neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL,
+ ...
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE {
+ phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL,
+ featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL,
+ interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL,
+ ...,
+ [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL
+ ]]
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE {
+ phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL,
+ measParameters-v1130 MeasParameters-v1130 OPTIONAL,
+ otherParameters-r11 Other-Parameters-r11 OPTIONAL,
+ ...
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE {
+ mbms-Parameters-r11 MBMS-Parameters-r11
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE {
+ phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL,
+ measParameters-v1250 MeasParameters-v1250 OPTIONAL
+}
+
+AccessStratumRelease ::= ENUMERATED {
+ rel8, rel9, rel10, rel11, rel12, spare3,
+ spare2, spare1, ...}
+
+DC-Parameters-r12 ::= SEQUENCE {
+ drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL,
+ drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL
+}
+
+DC-Parameters-v13x0 ::= SEQUENCE {
+ pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL,
+ ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-r12 ::= SEQUENCE {
+ logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL,
+ longDRX-Command-r12 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-v13x0 ::= SEQUENCE {
+ extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL,
+ extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL
+}
+
+RLC-Parameters-r12 ::= SEQUENCE {
+ extended-RLC-LI-Field-r12 ENUMERATED {supported}
+}
+
+RLC-Parameters-v13x0 ::= SEQUENCE {
+ extendedRLC-SN-SO-Field-r13 ENUMERATED {supported}
+}
+
+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,
+ ...
+}
+
+PDCP-Parameters-v1130 ::= SEQUENCE {
+ pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL,
+ supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL
+}
+
+PDCP-Parameters-v13x0 ::= SEQUENCE {
+ pdcp-SN-Extension-18bits-r13 ENUMERATED {supported}
+}
+
+PhyLayerParameters ::= SEQUENCE {
+ ue-TxAntennaSelectionSupported BOOLEAN,
+ ue-SpecificRefSigsSupported BOOLEAN
+}
+
+PhyLayerParameters-v920 ::= SEQUENCE {
+ enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL,
+ enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v9d0 ::= SEQUENCE {
+ tm5-FDD-r9 ENUMERATED {supported} OPTIONAL,
+ tm5-TDD-r9 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v1020 ::= SEQUENCE {
+ twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL,
+ tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL,
+ pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL,
+ crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL,
+ simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL,
+ multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL,
+ nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL
+}
+
+PhyLayerParameters-v1130 ::= SEQUENCE {
+ crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL,
+ ePDCCH-r11 ENUMERATED {supported} OPTIONAL,
+ multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL,
+ ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL,
+ tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL,
+ txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL,
+ ul-CoMP-r11 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v1170 ::= SEQUENCE {
+ interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL
+}
+
+PhyLayerParameters-v1250 ::= SEQUENCE {
+ e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL,
+ enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL,
+ tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL,
+ phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL,
+ phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL,
+ pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL,
+ pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL,
+ csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL,
+ noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL,
+ discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL,
+ naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL
+}
+
+PhyLayerParameters-v1280 ::= SEQUENCE {
+ alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL
+}
+PhyLayerParameters-v13x0 ::= SEQUENCE {
+ codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL,
+ fdd-Harq-TimingTDD-r13 ENUMERATED {supported} OPTIONAL, maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL,
+ supportedBlindDecoding-r13 INTEGER(1..32) OPTIONAL,
+ pucch-Format4-r13 ENUMERATED {supported} OPTIONAL,
+ pucch-Format5-r13 ENUMERATED {supported} OPTIONAL,
+ pucch-SCell-r13 ENUMERATED {supported} OPTIONAL
+}
+
+NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10
+
+NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE {
+ nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters ::= SEQUENCE {
+ supportedBandListEUTRA SupportedBandListEUTRA
+}
+
+RF-Parameters-v9e0 ::= SEQUENCE {
+ supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL
+}
+
+RF-Parameters-v1020 ::= SEQUENCE {
+ supportedBandCombination-r10 SupportedBandCombination-r10
+}
+
+RF-Parameters-v1060 ::= SEQUENCE {
+ supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10
+}
+
+RF-Parameters-v1090 ::= SEQUENCE {
+ supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL
+}
+
+RF-Parameters-v10f0 ::= SEQUENCE {
+ modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL
+}
+
+RF-Parameters-v10i0 ::= SEQUENCE {
+ supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL
+}
+
+RF-Parameters-v10j0 ::= SEQUENCE {
+ multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters-v1130 ::= SEQUENCE {
+ supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL
+}
+
+RF-Parameters-v1180 ::= SEQUENCE {
+ freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL,
+ requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL,
+ supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL
+}
+
+RF-Parameters-v11d0 ::= SEQUENCE {
+ supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL
+}
+
+RF-Parameters-v1250 ::= SEQUENCE {
+ supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL,
+ supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL,
+ supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL,
+ freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters-v1270 ::= SEQUENCE {
+ supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL,
+ supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL
+}
+
+RF-Parameters-v13x0 ::= SEQUENCE {
+ requestedMaximumCCs-r13 ENUMERATED {supported, includedUL,
+ includedDL, includedBoth} OPTIONAL,
+ skipFallbackCombinations-r13 ENUMERATED {supported, included} OPTIONAL,
+ supportedBandCombinations-r13 SupportedBandCombinations-r13 OPTIONAL,
+ supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL
+}
+SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10
+
+SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10
+
+SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090
+
+SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0
+
+SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130
+
+SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250
+
+SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270
+
+SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11
+
+SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0
+
+SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250
+
+SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270
+
+
+
+SupportedBandCombinations-r13 ::= SEQUENCE {
+ bandCombinationList-r13 BandCombinationList-r13
+}
+
+BandCombinationList-r13 ::= SEQUENCE (SIZE (maxBandComb-r13)) OF BandCombination-r13
+
+BandCombination-r13 ::= SEQUENCE {
+ additionalFallbackSupported-r13 ENUMERATED {true} OPTIONAL,
+ bandCombinationParameters-r13 BandCombinationParametersCommon-r13
+}
+
+BandCombinationParametersCommon-r13 ::= SEQUENCE {
+ bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13,
+ supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL,
+ multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL,
+ simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL,
+ bandInfoEUTRA-r13 BandInfoEUTRA,
+ dc-Support-r13 SEQUENCE {
+ asynchronous-r13 ENUMERATED {supported} OPTIONAL,
+ supportedCellGrouping-r13 CHOICE {
+ threeEntries-r13 BIT STRING (SIZE(3)),
+ fourEntries-r13 BIT STRING (SIZE(7)),
+ fiveEntries-r13 BIT STRING (SIZE(15))
+ } OPTIONAL
+ } OPTIONAL,
+ supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL,
+ commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL
+}
+
+
+BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10
+
+BandCombinationParametersExt-r10 ::= SEQUENCE {
+ supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL
+}
+
+BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090
+
+BandCombinationParameters-v10i0::= SEQUENCE {
+bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v10i0 OPTIONAL
+}
+
+BandCombinationParameters-v1130 ::= SEQUENCE {
+ multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL,
+ simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL,
+ bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL,
+ ...
+}
+
+BandCombinationParameters-r11 ::= SEQUENCE {
+ bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-r11,
+ supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL,
+ multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL,
+ simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL,
+ bandInfoEUTRA-r11 BandInfoEUTRA,
+ ...
+}
+
+BandCombinationParameters-v1250::= SEQUENCE {
+ dc-Support-r12 SEQUENCE {
+ asynchronous-r12 ENUMERATED {supported} OPTIONAL,
+ supportedCellGrouping-r12 CHOICE {
+ threeEntries-r12 BIT STRING (SIZE(3)),
+ fourEntries-r12 BIT STRING (SIZE(7)),
+ fiveEntries-r12 BIT STRING (SIZE(15))
+ } OPTIONAL
+ } OPTIONAL,
+ supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL,
+ commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL,
+ ...
+}
+
+BandCombinationParameters-v1270 ::= SEQUENCE {
+ bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v1270 OPTIONAL
+}
+
+
+SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10))
+
+BandParameters-r10 ::= SEQUENCE {
+ bandEUTRA-r10 FreqBandIndicator,
+ bandParametersUL-r10 BandParametersUL-r10 OPTIONAL,
+ bandParametersDL-r10 BandParametersDL-r10 OPTIONAL
+}
+
+BandParameters-v1090 ::= SEQUENCE {
+ bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL,
+ ...
+}
+
+BandParameters-v10i0::= SEQUENCE {
+ bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0
+}
+
+BandParameters-v1130 ::= SEQUENCE {
+ supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4}
+}
+
+BandParameters-r11 ::= SEQUENCE {
+ bandEUTRA-r11 FreqBandIndicator-r11,
+ bandParametersUL-r11 BandParametersUL-r10 OPTIONAL,
+ bandParametersDL-r11 BandParametersDL-r10 OPTIONAL,
+ supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL
+}
+
+BandParameters-v1270 ::= SEQUENCE {
+ bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270
+}
+
+BandParameters-r13 ::= SEQUENCE {
+ bandEUTRA-r13 FreqBandIndicator-r11,
+ bandParametersUL-r13 BandParametersUL-r13 OPTIONAL,
+ bandParametersDL-r13 BandParametersDL-r13 OPTIONAL,
+ supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL
+}
+
+BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10
+
+BandParametersUL-r13 ::= SEQUENCE OF CA-MIMO-ParametersUL-r10
+
+
+CA-MIMO-ParametersUL-r10 ::= SEQUENCE {
+ ca-BandwidthClassUL-r10 CA-BandwidthClass-r10,
+ supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL
+}
+
+BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10
+
+BandParametersDL-r13 ::= SEQUENCE OF CA-MIMO-ParametersDL-r13
+
+CA-MIMO-ParametersDL-r10 ::= SEQUENCE {
+ ca-BandwidthClassDL-r10 CA-BandwidthClass-r10,
+ supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL
+}
+
+CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE {
+ fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL
+}
+
+CA-MIMO-ParametersDL-v1270 ::= SEQUENCE {
+ intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12
+}
+
+CA-MIMO-ParametersDL-r13 ::= SEQUENCE {
+ ca-BandwidthClassDL-r13 CA-BandwidthClass-r10,
+ supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL,
+ fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL,
+ intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12
+}
+
+IntraBandContiguousCC-Info-r12 ::= SEQUENCE {
+ fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL,
+ supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL,
+ supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL
+}
+
+CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...}
+
+MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers}
+
+MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers}
+
+SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA
+
+SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0
+
+SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250
+
+SupportedBandEUTRA ::= SEQUENCE {
+ bandEUTRA FreqBandIndicator,
+ halfDuplex BOOLEAN
+}
+
+SupportedBandEUTRA-v9e0 ::= SEQUENCE {
+ bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL
+}
+
+SupportedBandEUTRA-v1250 ::= SEQUENCE {
+ dl-256QAM-r12 ENUMERATED {supported} OPTIONAL,
+ ul-64QAM-r12 ENUMERATED {supported} OPTIONAL
+}
+
+MeasParameters ::= SEQUENCE {
+ bandListEUTRA BandListEUTRA
+}
+
+MeasParameters-v1020 ::= SEQUENCE {
+ bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10
+}
+
+MeasParameters-v1130 ::= SEQUENCE {
+ rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL
+}
+
+MeasParameters-v11a0 ::= SEQUENCE {
+ benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL
+}
+
+MeasParameters-v1250 ::= SEQUENCE {
+ timerT312-r12 ENUMERATED {supported} OPTIONAL,
+ alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL,
+ incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL,
+ incMonUTRA-r12 ENUMERATED {supported} OPTIONAL,
+ extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL,
+ extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL,
+ rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL,
+ crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL,
+ csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL
+}
+
+MeasParameters-v13xy ::= SEQUENCE {
+ rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL,
+ whiteCellList-r13 ENUMERATED {supported} OPTIONAL
+}
+
+BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA
+
+BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) 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
+}
+
+IRAT-ParametersUTRA-v920 ::= SEQUENCE {
+ e-RedirectionUTRA-r9 ENUMERATED {supported}
+}
+
+IRAT-ParametersUTRA-v9c0 ::= SEQUENCE {
+ voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL,
+ voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL,
+ srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL,
+ srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL,
+ srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL,
+ srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL
+}
+
+IRAT-ParametersUTRA-v9h0 ::= SEQUENCE {
+ mfbi-UTRA-r9 ENUMERATED {supported}
+}
+
+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, ...,
+ bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0,
+ bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0,
+ bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0,
+ bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0}
+
+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-ParametersUTRA-TDD-v1020 ::= SEQUENCE {
+ e-RedirectionUTRA-TDD-r10 ENUMERATED {supported}
+}
+
+IRAT-ParametersGERAN ::= SEQUENCE {
+ supportedBandListGERAN SupportedBandListGERAN,
+ interRAT-PS-HO-ToGERAN BOOLEAN
+}
+
+IRAT-ParametersGERAN-v920 ::= SEQUENCE {
+ dtm-r9 ENUMERATED {supported} OPTIONAL,
+ e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL
+}
+
+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}
+}
+
+IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE {
+ e-CSFB-1XRTT-r9 ENUMERATED {supported},
+ e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL
+}
+
+IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE {
+ e-CSFB-dual-1XRTT-r10 ENUMERATED {supported}
+}
+
+IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE {
+ cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL
+}
+
+SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+CSG-ProximityIndicationParameters-r9 ::= SEQUENCE {
+ intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL,
+ interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL,
+ utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL
+}
+
+NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE {
+ intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL,
+ interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL,
+ utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL
+}
+
+SON-Parameters-r9 ::= SEQUENCE {
+ rach-Report-r9 ENUMERATED {supported} OPTIONAL
+}
+
+UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE {
+ loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL,
+ standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL
+}
+
+UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE {
+ loggedMBSFNMeasurements-r12 ENUMERATED {supported}
+}
+
+OTDOA-PositioningCapabilities-r10 ::= SEQUENCE {
+ otdoa-UE-Assisted-r10 ENUMERATED {supported},
+ interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL
+}
+
+Other-Parameters-r11 ::= SEQUENCE {
+ inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL,
+ powerPrefInd-r11 ENUMERATED {supported} OPTIONAL,
+ ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL
+}
+
+Other-Parameters-v11d0 ::= SEQUENCE {
+ inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL
+}
+
+MBMS-Parameters-r11 ::= SEQUENCE {
+ mbms-SCell-r11 ENUMERATED {supported} OPTIONAL,
+ mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL
+}
+
+MBMS-Parameters-v1250 ::= SEQUENCE {
+ mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL
+}
+
+SCPTM-Parameters-v13x0 ::= SEQUENCE {
+ scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL
+}
+
+WLAN-IW-Parameters-r12 ::= SEQUENCE {
+ wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL,
+ wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL
+}
+
+NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12
+
+
+NAICS-Capability-Entry-r12 ::= SEQUENCE {
+ numberOfNAICS-CapableCC-r12 INTEGER(1..5),
+ numberOfAggregatedPRB-r12 ENUMERATED {
+ n50, n75, n100, n125, n150, n175,
+ n200, n225, n250, n275, n300, n350,
+ n400, n450, n500, spare},
+ ...
+}
+
+SL-Parameters-r12 ::= SEQUENCE {
+ commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL,
+ commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL,
+ discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL,
+ discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL,
+ disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL,
+ disc-SLSS-r12 ENUMERATED {supported} OPTIONAL,
+ discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL
+}
+
+SL-Parameters-r13 ::= SEQUENCE {
+ discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL
+}
+
+SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12
+
+SupportedBandInfo-r12 ::= SEQUENCE {
+ support-r12 ENUMERATED {supported} OPTIONAL
+}
+
+FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11
+
+
+UE-RadioPagingInfo-r12 ::= SEQUENCE {
+ ue-Category-v1250 INTEGER (0) OPTIONAL,
+ ...
+}
+
+
+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},
+ ...
+}
+
+
+VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12
+
+VisitedCellInfo-r12 ::= SEQUENCE {
+ visitedCellId-r12 CHOICE {
+ cellGlobalId-r12 CellGlobalIdEUTRA,
+ pci-arfcn-r12 SEQUENCE {
+ physCellId-r12 PhysCellId,
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9
+ }
+ } OPTIONAL,
+ timeSpent-r12 INTEGER (0..4095),
+ ...
+}
+
+
+WLAN-OffloadConfig-r12 ::= SEQUENCE {
+ thresholdRSRP-r12 SEQUENCE {
+ thresholdRSRP-Low-r12 RSRP-Range,
+ thresholdRSRP-High-r12 RSRP-Range
+ } OPTIONAL, -- Need OR
+ thresholdRSRQ-r12 SEQUENCE {
+ thresholdRSRQ-Low-r12 RSRQ-Range,
+ thresholdRSRQ-High-r12 RSRQ-Range
+ } OPTIONAL, -- Need OR
+ thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE {
+ thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range,
+ thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range
+ } OPTIONAL, -- Need OP
+ thresholdRSRQ-OnAllSymbols-r12 SEQUENCE {
+ thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range,
+ thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range
+ } OPTIONAL, -- Need OP
+ thresholdRSRQ-WB-r12 SEQUENCE {
+ thresholdRSRQ-WB-Low-r12 RSRQ-Range,
+ thresholdRSRQ-WB-High-r12 RSRQ-Range
+ } OPTIONAL, -- Need OP
+
+ thresholdChannelUtilization-r12 SEQUENCE {
+ thresholdChannelUtilizationLow-r12 INTEGER (0..255),
+ thresholdChannelUtilizationHigh-r12 INTEGER (0..255)
+ } OPTIONAL, -- Need OR
+ thresholdBackhaul-Bandwidth-r12 SEQUENCE {
+ thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12,
+ thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12,
+ thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12,
+ thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12
+ } OPTIONAL, -- Need OR
+ thresholdBeaconRSSI-r12 SEQUENCE {
+ thresholdBeaconRSSI-Low-r12 INTEGER (0..255),
+ thresholdBeaconRSSI-High-r12 INTEGER (0..255)
+ } OPTIONAL, -- Need OR
+ offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR
+ t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR
+ ...
+}
+
+WLAN-backhaulRate-r12 ::= ENUMERATED
+ {r0, r4, r8, r16, r32, r64, r128, r256, r512,
+ r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072,
+ r262144, r524288, r1048576, r2097152, r4194304, r8388608,
+ r16777216, r33554432, r67108864, r134217728, r268435456,
+ r536870912, r1073741824, r2147483648, r4294967296}
+
+
+MBMS-NotificationConfig-r9 ::= SEQUENCE {
+ notificationRepetitionCoeff-r9 ENUMERATED {n2, n4},
+ notificationOffset-r9 INTEGER (0..10),
+ notificationSF-Index-r9 INTEGER (1..6)
+}
+
+
+MBMSServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMSServiceListPerUE-r13)) OF MBMSServiceInfo-r13
+
+MBMSServiceInfo-r13 ::= SEQUENCE {
+ tmgi-r13 TMGI-r9
+}
+
+
+MBSFN-AreaId-r12 ::= INTEGER (0..255)
+
+
+MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9
+
+MBSFN-AreaInfo-r9 ::= SEQUENCE {
+ mbsfn-AreaId-r9 MBSFN-AreaId-r12,
+ non-MBSFNregionLength ENUMERATED {s1, s2},
+ notificationIndicator-r9 INTEGER (0..7),
+ mcch-Config-r9 SEQUENCE {
+ mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256},
+ mcch-Offset-r9 INTEGER (0..10),
+ mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024},
+ sf-AllocInfo-r9 BIT STRING (SIZE(6)),
+ signallingMCS-r9 ENUMERATED {n2, n7, n13, n19}
+ },
+ ...
+}
+
+
+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))
+ }
+}
+
+PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9
+
+PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12
+
+PMCH-Info-r9 ::= SEQUENCE {
+ pmch-Config-r9 PMCH-Config-r9,
+ mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9,
+ ...
+}
+
+PMCH-InfoExt-r12 ::= SEQUENCE {
+ pmch-Config-r12 PMCH-Config-r12,
+ mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9,
+ ...
+}
+
+MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9
+
+MBMS-SessionInfo-r9 ::= SEQUENCE {
+ tmgi-r9 TMGI-r9,
+ sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR
+ logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1),
+ ...
+}
+
+PMCH-Config-r9 ::= SEQUENCE {
+ sf-AllocEnd-r9 INTEGER (0..1535),
+ dataMCS-r9 INTEGER (0..28),
+ mch-SchedulingPeriod-r9 ENUMERATED {
+ rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024},
+ ...
+}
+
+PMCH-Config-r12 ::= SEQUENCE {
+ sf-AllocEnd-r12 INTEGER (0..1535),
+ dataMCS-r12 CHOICE {
+ normal-r12 INTEGER (0..28),
+ higerOrder-r12 INTEGER (0..27)
+ },
+ mch-SchedulingPeriod-r12 ENUMERATED {
+ rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024},
+ ...
+}
+
+TMGI-r9 ::= SEQUENCE {
+ plmn-Id-r9 CHOICE {
+ plmn-Index-r9 INTEGER (1..maxPLMN-r11),
+ explicitValue-r9 PLMN-Identity
+ },
+ serviceId-r9 OCTET STRING (SIZE (3))
+}
+
+
+
+SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13
+
+SC-MTCH-Info-r13 ::= SEQUENCE {
+ mbmsSessionInfo-r13 MBMSSessionInfo-r13,
+ g-RNTI-r13 C-RNTI,
+ sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL,
+ sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCellSCPTM-r13)) OPTIONAL,
+ ...
+}
+
+MBMSSessionInfo-r13 ::= SEQUENCE {
+ tmgi-r13 TMGI-r9,
+ sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR
+}
+
+SC-MTCH-SchedulingInfo-r13::= SEQUENCE {
+ onDurationTimerSCPTM-r13 ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200},
+ drx-InactivityTimerSCPTM-r13 ENUMERATED {
+ psf0, psf1, psf2, psf4, psf8,
+ psf10, psf20, psf40,
+ psf80, psf160, ps320,
+ psf640, psf960,
+ psf1280, psf1920, psf2560},
+ schedulingPeriodStartOffsetSCPTM-r13 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)
+ },
+ ...
+}
+
+
+SCPTMNeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCellSCPTM-r13)) OF CellIdentity
+
+
+SL-CommConfig-r12 ::= SEQUENCE {
+ commTxResources-r12 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r12 SEQUENCE {
+ sl-RNTI-r12 C-RNTI,
+ mac-MainConfig-r12 MAC-MainConfigSL-r12,
+ sc-CommTxConfig-r12 SL-CommResourcePool-r12,
+ mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP
+ },
+ ue-Selected-r12 SEQUENCE {
+ -- Pool for normal usage
+ commTxPoolNormalDedicated-r12 SEQUENCE {
+ poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON
+ poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON
+ }
+ }
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ scheduled-r13x0 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13,
+ multipleTxAllowed-r13 BOOLEAN
+ }
+ } OPTIONAL, -- Need ON
+ ue-Selected-r13x0 SEQUENCE {
+ commTxPoolNormalDedicatedExt-r13 SEQUENCE {
+ poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON
+ poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need ON
+ commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON
+ ]]}
+
+LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13
+
+SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12
+
+SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPool-v13x0)) OF SL-CommTxPoolToAddModExt-r13
+
+SL-CommTxPoolToAddMod-r12 ::= SEQUENCE {
+ poolIdentity-r12 SL-TxPoolIdentity-r12,
+ pool-r12 SL-CommResourcePool-r12
+}
+
+SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE {
+ poolIdentity-v13x0 SL-CommTxPoolIdentity-v13x0,
+ pool-r13 SL-CommResourcePool-r12
+}
+
+MAC-MainConfigSL-r12 ::= SEQUENCE {
+ periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON
+ retx-BSR-TimerSL RetxBSR-Timer-r12
+}
+
+
+SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12
+
+SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPool-v13x0)) OF SL-CommResourcePool-r12
+
+SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12
+
+SL-CommResourcePool-r12 ::= SEQUENCE {
+ sc-CP-Len-r12 SL-CP-Len-r12,
+ sc-Period-r12 SL-PeriodComm-r12,
+ sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12,
+ data-CP-Len-r12 SL-CP-Len-r12,
+ dataHoppingConfig-r12 SL-HoppingConfigComm-r12,
+ ue-SelectedResourceConfig-r12 SEQUENCE {
+ data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12,
+ trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OR
+ rxParametersNCell-r12 SEQUENCE {
+ tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP
+ syncConfigIndex-r12 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ txParameters-r12 SEQUENCE {
+ sc-TxParameters-r12 SL-TxParameters-r12,
+ dataTxParameters-r12 SL-TxParameters-r12
+ } OPTIONAL, -- Cond Tx
+ ...,
+ [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx
+ ]]
+
+}
+
+SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5))
+
+
+SL-CP-Len-r12 ::= ENUMERATED {normal, extended}
+
+
+SL-DiscConfig-r12 ::= SEQUENCE {
+ discTxResources-r12 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r12 SEQUENCE {
+ discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON
+ discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON
+ discHoppingConfig-r12 SL-HoppingConfigDisc-r12
+ OPTIONAL -- Need ON
+ },
+ ue-Selected-r12 SEQUENCE {
+ discTxPoolDedicated-r12 SEQUENCE {
+ poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON
+ poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON
+ } OPTIONAL -- Need ON
+ }
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ discTF-IndexList-v1260 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ discTF-IndexList-r12b SL-TF-IndexPairList-r12b
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ discTxResourcesPS-r13 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r13 SL-DiscTxConfigScheduled-r13,
+ ue-Selected-r13 SEQUENCE {
+ discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13
+ }
+ }
+ } OPTIONAL, -- Need ON
+ discTxInterFreqInfo-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR
+ discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR
+ discTxInfoInterFreqListExt-r13 SL-DiscTxInfoInterFreqListExt-r13 OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need ON
+ gapRequestsAllowedDedicated-r13 ENUMERATED {false, true} OPTIONAL, -- Need ON
+ discRxGapConfig-r13 CHOICE {
+ release NULL,
+ setup SL-GapConfig-r13
+ } OPTIONAL, -- Need ON
+ discTxGapConfig-r13 CHOICE {
+ release NULL,
+ setup SL-GapConfig-r13
+ } OPTIONAL, -- Need ON
+ discSysInfoReportConfig-r13 CHOICE {
+ release NULL,
+ setup SL-DiscSysInfoReportFreqList-r13
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9
+
+SL-DiscTxInfoInterFreqListExt-r13 ::= SEQUENCE {
+ discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON
+ discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL -- Need ON
+}
+
+SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE {
+ discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9,
+ discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR
+ discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR
+ discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR
+ cellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR
+}
+
+SL-DiscTxResource-r13 ::= CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r13 SEQUENCE {
+ discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON
+ discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON
+ discHoppingConfig-r13 SL-HoppingConfigDisc-r12
+ OPTIONAL -- Need ON
+ },
+ ue-Selected-r13 SEQUENCE {
+ discTxPoolDedicated-r13 SEQUENCE {
+ poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON
+ poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON
+ } OPTIONAL -- Need ON
+ }
+ }
+}
+
+SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12
+
+SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE {
+ poolIdentity-r12 SL-TxPoolIdentity-r12,
+ pool-r12 SL-DiscResourcePool-r12
+}
+
+SL-DiscTxConfigScheduled-r13 ::= SEQUENCE {
+ discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON
+ discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON
+ discHoppingConfig-r12 SL-HoppingConfigDisc-r12
+}
+
+SL-DiscTxPoolDedicated-r13 ::= SEQUENCE {
+ poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON
+ poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON
+}
+
+SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12
+
+SL-TF-IndexPair-r12 ::= SEQUENCE {
+ discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON
+ discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON
+}
+
+SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b
+
+SL-TF-IndexPair-r12b ::= SEQUENCE {
+ discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON
+ discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON
+}
+
+SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE {
+ pCell NULL,
+ sCell SCellIndex-r10
+}
+
+
+SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12
+
+SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12
+
+SL-DiscResourcePool-r12 ::= SEQUENCE {
+ cp-Len-r12 SL-CP-Len-r12,
+ discPeriod-r12 ENUMERATED {rf32, rf64, rf128,
+ rf256, rf512, rf1024, rf16-v13x0, spare},
+ numRetx-r12 INTEGER (0..3),
+ numRepetition-r12 INTEGER (1..50),
+ tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12,
+ txParameters-r12 SEQUENCE {
+ txParametersGeneral-r12 SL-TxParameters-r12,
+ ue-SelectedResourceConfig-r12 SEQUENCE {
+ poolSelection-r12 CHOICE {
+ rsrpBased-r12 SL-PoolSelectionConfig-r12,
+ random-r12 NULL
+ },
+ txProbability-r12 ENUMERATED {p25, p50, p75, p100}
+ } OPTIONAL -- Need OR
+ } OPTIONAL, -- Cond Tx
+ rxParameters-r12 SEQUENCE {
+ tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR
+ syncConfigIndex-r12 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ discPeriod-v13x0 CHOICE {
+ release NULL,
+ setup ENUMERATED {rf4, rf7, rf8, rf14, rf28,
+ spare3, spare2, spare}
+ } OPTIONAL, -- Need ON
+ -- Note: Extended values apply for PS discovery (not only for relay). E-UTRAN sets original
+ -- field to spare value to ensure legacy UEs ignore the concerned entry
+ rxParamsAddNeighFreq-r13 SEQUENCE {
+ physCellId-r13 PhysCellId
+ } OPTIONAL, -- Need ON
+ txParamsAddNeighFreq-r13 SEQUENCE {
+ physCellId-r13 PhysCellId,
+ p-Max P-Max OPTIONAL, -- Need OP
+ tdd-Config-r13 TDD-Config OPTIONAL, -- Need OR
+ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR
+ freqInfo SEQUENCE {
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP
+ ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100}
+ OPTIONAL, -- Need OP
+ additionalSpectrumEmission AdditionalSpectrumEmission
+ },
+ referenceSignalPower INTEGER (-60..50),
+ syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+SL-PoolSelectionConfig-r12 ::= SEQUENCE {
+ threshLow-r12 RSRP-RangeSL2-r12,
+ threshHigh-r12 RSRP-RangeSL2-r12
+}
+
+
+SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12
+
+SL-DiscTxPowerInfo-r12 ::= SEQUENCE {
+ discMaxTxPower-r12 P-Max,
+ ...
+}
+
+
+SL-GapConfig-r13 ::= SEQUENCE {
+ gapPatternList-r13 SL-GapPatternList-r13
+}
+
+SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13
+
+SL-GapPattern-r13 ::= SEQUENCE {
+ gapPeriod-r13 ENUMERATED {rf4, rf7, rf8, rf14, rf16, rf28, rf32,
+ rf64, rf128, rf256, rf512, rf1024, spare},
+ gapOffset-r12 SL-OffsetIndicator-r12,
+ gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240))
+}
+
+
+SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13
+
+SL-GapFreqInfo-r13 ::= SEQUENCE {
+ carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ gapPatternList-r13 SL-GapPatternList-r13
+}
+
+
+SL-HoppingConfigComm-r12 ::= SEQUENCE {
+ hoppingParameter-r12 INTEGER (0..504),
+ numSubbands-r12 ENUMERATED {ns1, ns2, ns4},
+ rb-Offset-r12 INTEGER (0..110)
+}
+
+SL-HoppingConfigDisc-r12 ::= SEQUENCE {
+ a-r12 INTEGER (1..200),
+ b-r12 INTEGER (1..10),
+ c-r12 ENUMERATED {n1, n5}
+}
+
+
+SL-OffsetIndicator-r12 ::= CHOICE {
+ small-r12 INTEGER (0..319),
+ large-r12 INTEGER (0..10239)
+}
+
+SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39)
+
+
+SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140,
+ sf160, sf240, sf280, sf320, spare6, spare5,
+ spare4, spare3, spare2, spare}
+
+
+SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13
+
+SL-Priority-r13 ::= INTEGER (1..8)
+
+
+SLSSID-r12 ::= INTEGER (0..167)
+
+
+SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12
+
+SL-SyncConfig-r12 ::= SEQUENCE {
+ syncCP-Len-r12 SL-CP-Len-r12,
+ syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12,
+ slssid-r12 SLSSID-r12,
+ txParameters-r12 SEQUENCE {
+ syncTxParameters-r12 SL-TxParameters-r12,
+ syncTxThreshIC-r12 RSRP-RangeSL-r12,
+ syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ rxParamsNCell-r12 SEQUENCE {
+ physCellId-r12 PhysCellId,
+ discSyncWindow-r12 ENUMERATED {w1, w2}
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+SL-SyncConfigListNFreq-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13
+
+SL-SyncConfigNFreq-r13 ::= SEQUENCE {
+ asyncParameters-r13 SEQUENCE {
+ syncCP-Len-r13 SL-CP-Len-r12,
+ syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12,
+ slssid-r13 SLSSID-r12
+ } OPTIONAL, -- Need OR
+ txParameters-r13 SEQUENCE {
+ syncTxParameters-r13 SL-TxParameters-r12,
+ syncTxThreshIC-r13 RSRP-RangeSL-r12,
+ syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR
+ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ rxParameters-r1s SEQUENCE {
+ discSyncWindow-r13 ENUMERATED {w1, w2}
+ } OPTIONAL, -- Need OR
+ ...
+}
+
+SL-SysInfoReport-r13 ::= SEQUENCE {
+ plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL,
+ cellIdentity-13 CellIdentity OPTIONAL,
+ carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL,
+ discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL,
+ discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL,
+ discSyncConfig-r13 SEQUENCE {
+ asyncParameters-r13 SEQUENCE {
+ syncCP-Len-r13 SL-CP-Len-r12,
+ syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12,
+ slssid-r13 SLSSID-r12
+ } OPTIONAL,
+ txParameters-r13 SEQUENCE {
+ syncTxParameters-r13 SL-TxParameters-r12,
+ syncTxThreshIC-r13 RSRP-RangeSL-r12,
+ syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL,
+ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL,
+ cellSelectionInfo-r13 SEQUENCE {
+ q-RxLevMin-r13 Q-RxLevMin,
+ q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL
+ } OPTIONAL,
+ q-Hyst-r13 ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24}
+ OPTIONAL,
+ q-RxLevMin-r13 Q-RxLevMin OPTIONAL,
+ t-ReselectionEUTRA-r13 T-Reselection OPTIONAL,
+ tdd-Config-r13 TDD-Config OPTIONAL,
+ freqInfo-r13 SEQUENCE {
+ ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL,
+ ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100}
+ OPTIONAL,
+ additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL
+ } OPTIONAL,
+ p-Max-r13 P-Max OPTIONAL,
+ referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL
+}
+
+
+SL-TF-ResourceConfig-r12 ::= SEQUENCE {
+ prb-Num-r12 INTEGER (1..100),
+ prb-Start-r12 INTEGER (0..99),
+ prb-End-r12 INTEGER (0..99),
+ offsetIndicator-r12 SL-OffsetIndicator-r12,
+ subframeBitmap-r12 SubframeBitmapSL-r12
+}
+
+SubframeBitmapSL-r12 ::= CHOICE {
+ bs4-r12 BIT STRING (SIZE (4)),
+ bs8-r12 BIT STRING (SIZE (8)),
+ bs12-r12 BIT STRING (SIZE (12)),
+ bs16-r12 BIT STRING (SIZE (16)),
+ bs30-r12 BIT STRING (SIZE (30)),
+ bs40-r12 BIT STRING (SIZE (40)),
+ bs42-r12 BIT STRING (SIZE (42))
+}
+
+
+SL-TxParameters-r12 ::= SEQUENCE {
+ alpha-r12 Alpha-r12,
+ p0-r12 P0-SL-r12
+}
+
+P0-SL-r12 ::= INTEGER (-126..31)
+
+
+SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12)
+
+SL-CommTxPoolIdentity-v13x0 ::= INTEGER (maxSL-CommTxPool-r12Plus1-r13.. maxSL-CommTxPool-r13)
+
+SL-CommTxPoolIdentity-r13 ::= INTEGER (1.. maxSL-CommTxPool-r13)
+
+
+SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12
+
+SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPool-v13x0)) OF SL-CommTxPoolIdentity-v13x0
+
+maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN)
+maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations.
+maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations.
+maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13
+maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps
+maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band
+maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per
+ -- supported band combination
+maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes
+maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity
+ -- ranges listed in SIB type 4 and 5
+maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported
+maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in-
+ -- formation can be provided as redirection assistance
+maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system
+ -- information can be provided as redirection
+ -- assistance
+maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA combinations
+maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations
+ -- (per carrier frequency)
+maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations
+ -- (per carrier frequency)
+maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier
+ -- frequency)
+maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource
+ -- configurations using non-zero Tx power
+ -- (per carrier frequency)
+maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource
+ -- configurations using zero Tx power(per carrier
+ -- frequency)
+maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI
+ -- configurations (per carrier frequency)
+maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for
+ -- which system information can be provided as
+ -- redirection assistance
+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
+maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells
+maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the
+ -- cell lists in a measurement object
+maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources
+maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list
+ -- in a measurement object
+maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers
+maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals
+ -- occasion
+maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for
+ -- a serving cell concerning discovery signals
+maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency
+maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range
+maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range
+maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets
+maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator
+maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range
+maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range
+maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies
+maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are
+ -- affected by the IDC problems
+maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an
+ -- MBMS capable UE may indicate an interest
+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
+maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups
+maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries
+ -- that can be reported by the UE in one message
+maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with
+ -- different offset
+maxMBSFN-Area INTEGER ::= 8
+maxMBSFN-Area-1 INTEGER ::= 7
+maxMBMSServiceListPerUE-r13 INTEGER ::= 16 -- Maximum number of services which the UE can
+ -- include in the MBMS interest indication
+maxMeasId INTEGER ::= 32
+maxMeasId-Plus1 INTEGER ::= 33
+maxMeasId-r12 INTEGER ::= 64
+maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands
+ -- that a cell belongs to
+maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band
+maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s)
+maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS
+ -- configuration (per carrier frequency)
+maxNeighCellSCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells
+maxObjectId INTEGER ::= 32
+maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell
+ -- in NAICS configuration
+maxPageRec INTEGER ::= 16 --
+maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges
+maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs
+maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets
+maxPMCH-PerMBSFN INTEGER ::= 15
+maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs
+maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA)
+maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations
+ -- (per carrier frequency)
+maxReportConfigId INTEGER ::= 32
+maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD
+ -- measurement
+maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities
+ -- broadcast per carrier frequency
+maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells
+maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells
+maxSCell-Plus1 INTEGER ::= 5 -- Lowest value of extended number range of SCells
+maxSC-MTCH-r13 INTEGER ::= 1024 -- Maximum number of SC-MTCHs in one cell
+maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication
+ -- Rx resource pools on neighbouring freq
+maxSL-CommRxPoolPreconf-v13x0 INTEGER ::= 12 -- Maximum number of additional preconfigured
+ -- sidelink communication Rx resource pool entries
+maxSL-CommTxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink
+ -- communication Tx resource pool
+maxSL-CommTxPool-v13x0 INTEGER ::= 4 -- Maximum number of additional sidelink
+ -- communication Tx resource pool entries
+maxSL-CommTxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink
+ -- communication Tx resource pools
+maxSL-CommTxPoolPreconf-v13x0 INTEGER ::= 7 -- Maximum number of additional preconfigured
+ -- sidelink communication Tx resource pool entries
+maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations
+maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes
+maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink
+ -- discovery Rx resource pool entries
+maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a
+ -- UESidelinkInformation for SI reporting
+maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 1 -- Maximum number of preconfigured sidelink
+ -- discovery Tx resource pool entries
+maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested
+ -- for a frequency or assigned
+maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list
+maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools
+maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations
+maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index
+ -- pairs
+maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools
+maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs
+maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells
+maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells
+maxServCell-Plus1 INTEGER ::= 6 -- Lowest value of extended number range of Serving cells
+maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included
+ -- in an MBMS counting request and response
+maxServiceCount-1 INTEGER ::= 15
+maxSessionPerPMCH INTEGER ::= 29
+maxSessionPerPMCH-1 INTEGER ::= 28
+maxSIB INTEGER ::= 32 -- Maximum number of SIBs
+maxSIB-1 INTEGER ::= 31
+maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages
+maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands
+maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns
+ -- that the UE can simultaneously recommend to the
+ -- E-UTRAN for use.
+maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies
+maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies
+maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers
+
+
+END
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn
new file mode 100644
index 0000000000..9fb62b72f3
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn
@@ -0,0 +1,130 @@
+-- 3GPP TS 36.331 V13.0.0 (2015-12)
+--
+EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ AdditionalSpectrumEmission,
+ ARFCN-ValueEUTRA-r9,
+ FilterCoefficient,
+ maxSL-TxPool-r12,
+ maxSL-CommRxPoolPreconf-v13x0,
+ maxSL-CommTxPoolPreconf-v13x0,
+ maxSL-DiscRxPoolPreconf-r13,
+ maxSL-DiscTxPoolPreconf-r13,
+ P-Max,
+ ReselectionInfoRelay-r13,
+ SL-CP-Len-r12,
+ SL-HoppingConfigComm-r12,
+ SL-OffsetIndicatorSync-r12,
+ SL-PeriodComm-r12,
+ RSRP-RangeSL3-r12,
+ SL-PriorityList-r13,
+ SL-TF-ResourceConfig-r12,
+ SL-TRPT-Subset-r12,
+ P0-SL-r12,
+ TDD-ConfigSL-r12
+FROM EUTRA-RRC-Definitions;
+
+
+SL-Preconfiguration-r12 ::= SEQUENCE {
+ preconfigGeneral-r12 SL-PreconfigGeneral-r12,
+ preconfigSync-r12 SL-PreconfigSync-r12,
+ preconfigComm-r12 SL-PreconfigCommPoolList4-r12,
+ ...,
+ [[ preconfigComm-v13x0 SEQUENCE {
+ commRxPoolListExt-r13 SL-PreconfigCommRxPoolListExt-r13,
+ commTxPoolListExt-r13 SL-PreconfigCommTxPoolListExt-r13 OPTIONAL
+ } OPTIONAL,
+ preconfigDisc-r13 SEQUENCE {
+ discRxPoolList-r13 SL-PreconfigDiscRxPoolList-r13,
+ discTxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 OPTIONAL
+ } OPTIONAL,
+ preconfigRelay-r13 SL-PreconfigRelay-r13 OPTIONAL
+ ]]
+
+}
+
+SL-PreconfigGeneral-r12 ::= SEQUENCE {
+ -- PDCP configuration
+ rohc-Profiles-r12 SEQUENCE {
+ profile0x0001-r12 BOOLEAN,
+ profile0x0002-r12 BOOLEAN,
+ profile0x0004-r12 BOOLEAN,
+ profile0x0006-r12 BOOLEAN,
+ profile0x0101-r12 BOOLEAN,
+ profile0x0102-r12 BOOLEAN,
+ profile0x0104-r12 BOOLEAN
+ },
+ -- Physical configuration
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ maxTxPower-r12 P-Max,
+ additionalSpectrumEmission-r12 AdditionalSpectrumEmission,
+ sl-bandwidth-r12 ENUMERATED {n6, n15, n25, n50, n75, n100},
+ tdd-ConfigSL-r12 TDD-ConfigSL-r12,
+ reserved-r12 BIT STRING (SIZE (19)),
+ ...
+}
+
+SL-PreconfigSync-r12 ::= SEQUENCE {
+ syncCP-Len-r12 SL-CP-Len-r12,
+ syncOffsetIndicator1-r12 SL-OffsetIndicatorSync-r12,
+ syncOffsetIndicator2-r12 SL-OffsetIndicatorSync-r12,
+ syncTxParameters-r12 P0-SL-r12,
+ syncTxThreshOoC-r12 RSRP-RangeSL3-r12,
+ filterCoefficient-r12 FilterCoefficient,
+ syncRefMinHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12},
+ syncRefDiffHyst-r12 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf},
+ ...,
+ [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12
+
+SL-PreconfigCommRxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v13x0)) OF SL-PreconfigCommPool-r12
+
+SL-PreconfigCommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v13x0)) OF SL-PreconfigCommPool-r12
+
+SL-PreconfigCommPool-r12 ::= SEQUENCE {
+-- This IE is same as SL-CommResourcePool with rxParametersNCell absent
+ sc-CP-Len-r12 SL-CP-Len-r12,
+ sc-Period-r12 SL-PeriodComm-r12,
+ sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12,
+ sc-TxParameters-r12 P0-SL-r12,
+ data-CP-Len-r12 SL-CP-Len-r12,
+ data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12,
+ dataHoppingConfig-r12 SL-HoppingConfigComm-r12,
+ dataTxParameters-r12 P0-SL-r12,
+ trpt-Subset-r12 SL-TRPT-Subset-r12,
+ ...,
+ [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- For Tx
+ ]]
+}
+
+SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13
+
+SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13
+
+SL-PreconfigDiscPool-r13 ::= SEQUENCE {
+-- This IE is same as SL-DiscResourcePool with rxParameters absent
+ cp-Len-r13 SL-CP-Len-r12,
+ discPeriod-r13 ENUMERATED {rf4, rf7, rf8, rf14, rf16, rf28, rf32, rf64,
+ rf128, rf256, rf512, rf1024, spare4, spare3,
+ spare2, spare},
+ numRetx-r13 INTEGER (0..3),
+ numRepetition-r13 INTEGER (1..50),
+ tf-ResourceConfig-r13 SL-TF-ResourceConfig-r12,
+ txParameters-r13 SEQUENCE {
+ txParametersGeneral-r13 P0-SL-r12,
+ txProbability-r13 ENUMERATED {p25, p50, p75, p100}
+ } OPTIONAL,
+ ...
+}
+
+SL-PreconfigRelay-r13 ::= SEQUENCE {
+ reselectionInfoRemoteUE-OoC-r13 ReselectionInfoRelay-r13
+}
+
+END
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn
new file mode 100644
index 0000000000..35e184bdc3
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn
@@ -0,0 +1,174 @@
+-- 3GPP TS 36.331 V13.0.0 (2015-12)
+--
+EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ AbsoluteTimeInfo-r10,
+ AreaConfiguration-r10,
+ AreaConfiguration-v1130,
+ CarrierFreqGERAN,
+ CellIdentity,
+ ConnEstFailReport-r11,
+ SpeedStateScaleFactors,
+ C-RNTI,
+ LoggingDuration-r10,
+ LoggingInterval-r10,
+ LogMeasInfo-r10,
+ MeasCSI-RS-Id-r12,
+ MeasId,
+ MeasId-v1250,
+ MeasIdToAddModList,
+ MeasIdToAddModListExt-r12,
+ MeasObjectToAddModList,
+ MeasObjectToAddModList-v9e0,
+ MeasScaleFactor-r12,
+ MobilityStateParameters,
+ NeighCellConfig,
+ PhysCellId,
+ PhysCellIdCDMA2000,
+ PhysCellIdGERAN,
+ PhysCellIdUTRA-FDD,
+ PhysCellIdUTRA-TDD,
+ PLMN-Identity,
+ PLMN-IdentityList3-r11,
+ QuantityConfig,
+ ReportConfigToAddModList,
+ RLF-Report-r9,
+ TargetMBSFN-AreaList-r12,
+ TraceReference-r10,
+ VisitedCellInfoList-r12,
+ maxCellMeas,
+ maxCSI-RS-Meas-r12,
+ maxMeasId,
+ maxMeasId-r12,
+ UL-DelayConfig-r13
+FROM EUTRA-RRC-Definitions;
+
+
+VarConnEstFailReport-r11 ::= SEQUENCE {
+ connEstFailReport-r11 ConnEstFailReport-r11,
+ plmn-Identity-r11 PLMN-Identity
+}
+
+
+VarLogMeasConfig-r10 ::= SEQUENCE {
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10
+}
+
+VarLogMeasConfig-r11 ::= SEQUENCE {
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
+ areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10
+}
+
+VarLogMeasConfig-r12 ::= SEQUENCE {
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
+ areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10,
+ targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL
+}
+
+
+VarLogMeasReport-r10 ::= SEQUENCE {
+ traceReference-r10 TraceReference-r10,
+ traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
+ tce-Id-r10 OCTET STRING (SIZE (1)),
+ plmn-Identity-r10 PLMN-Identity,
+ absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
+ logMeasInfoList-r10 LogMeasInfoList2-r10
+}
+
+VarLogMeasReport-r11 ::= SEQUENCE {
+ traceReference-r10 TraceReference-r10,
+ traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
+ tce-Id-r10 OCTET STRING (SIZE (1)),
+ plmn-IdentityList-r11 PLMN-IdentityList3-r11,
+ absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
+ logMeasInfoList-r10 LogMeasInfoList2-r10
+}
+
+LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
+
+
+VarMeasConfig ::= SEQUENCE {
+ -- Measurement identities
+ measIdList MeasIdToAddModList OPTIONAL,
+ measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL,
+ -- Measurement objects
+ measObjectList MeasObjectToAddModList OPTIONAL,
+ measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL,
+ -- Reporting configurations
+ reportConfigList ReportConfigToAddModList OPTIONAL,
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL,
+ measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL,
+ s-Measure INTEGER (-140..-44) OPTIONAL,
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL,
+ allowInterruptions-r11 BOOLEAN OPTIONAL
+}
+
+
+VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
+VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport
+
+VarMeasReport ::= SEQUENCE {
+ -- List of measurement that have been triggered
+ measId MeasId,
+ measId-v1250 MeasId-v1250 OPTIONAL,
+ cellsTriggeredList CellsTriggeredList OPTIONAL,
+ csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL,
+ numberOfReportsSent INTEGER
+}
+
+CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
+ physCellIdEUTRA PhysCellId,
+ physCellIdUTRA CHOICE {
+ fdd PhysCellIdUTRA-FDD,
+ tdd PhysCellIdUTRA-TDD
+ },
+ physCellIdGERAN SEQUENCE {
+ carrierFreq CarrierFreqGERAN,
+ physCellId PhysCellIdGERAN
+ },
+ physCellIdCDMA2000 PhysCellIdCDMA2000
+}
+
+CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12
+
+VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
+
+
+VarRLF-Report-r10 ::= SEQUENCE {
+ rlf-Report-r10 RLF-Report-r9,
+ plmn-Identity-r10 PLMN-Identity
+}
+
+VarRLF-Report-r11 ::= SEQUENCE {
+ rlf-Report-r10 RLF-Report-r9,
+ plmn-IdentityList-r11 PLMN-IdentityList3-r11
+}
+
+
+VarShortMAC-Input ::= SEQUENCE {
+ cellIdentity CellIdentity,
+ physCellId PhysCellId,
+ c-RNTI C-RNTI
+}
+
+maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries
+ -- that can be stored by the UE
+
+
+END
diff --git a/epan/dissectors/asn1/lte-rrc/Makefile.am b/epan/dissectors/asn1/lte-rrc/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/lte-rrc/Makefile.common b/epan/dissectors/asn1/lte-rrc/Makefile.common
new file mode 100644
index 0000000000..518e117a42
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/Makefile.common
@@ -0,0 +1,47 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = lte-rrc
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ EUTRA-InterNodeDefinitions.asn \
+ EUTRA-RRC-Definitions.asn \
+ EUTRA-Sidelink-Preconf.asn \
+ EUTRA-UE-Variables.asn \
+ PC5-RRC-Definitions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS = -L
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/lte-rrc/Makefile.nmake b/epan/dissectors/asn1/lte-rrc/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn
new file mode 100644
index 0000000000..83f59ad54f
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn
@@ -0,0 +1,31 @@
+-- 3GPP TS 36.331 V13.0.0 (2015-12)
+--
+PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ TDD-ConfigSL-r12
+FROM EUTRA-RRC-Definitions;
+
+
+SBCCH-SL-BCH-Message ::= SEQUENCE {
+ message SBCCH-SL-BCH-MessageType
+}
+
+SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL
+
+
+MasterInformationBlock-SL ::= SEQUENCE {
+ sl-Bandwidth-r12 ENUMERATED {
+ n6, n15, n25, n50, n75, n100},
+ tdd-ConfigSL-r12 TDD-ConfigSL-r12,
+ directFrameNumber-r12 BIT STRING (SIZE (10)),
+ directSubframeNumber-r12 INTEGER (0..9),
+ inCoverage-r12 BOOLEAN,
+ reserved-r12 BIT STRING (SIZE (19))
+}
+
+
+
+END
diff --git a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
new file mode 100644
index 0000000000..a94da54b1e
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
@@ -0,0 +1,2078 @@
+# lte-rrc.cnf
+# lte-rrc conformation file
+# Copyright 2008 Vincent Helfre, 2009-2016 Pascal Quantin
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.USE_VALS_EXT
+BandclassCDMA2000
+DRX-Config/setup/drx-InactivityTimer
+PDCP-Config/eag_3/t-Reordering-r12
+Q-OffsetRange
+RRM-Config/ue-InactiveTime
+SIB-Type
+SL-PeriodComm-r12
+SupportedBandUTRA-FDD
+T-PollRetransmit
+T-Reordering
+T-StatusProhibit
+WLAN-backhaulRate-r12
+
+#.EXPORTS
+HandoverCommand
+HandoverCommand_PDU
+HandoverPreparationInformation
+HandoverPreparationInformation_PDU
+UERadioAccessCapabilityInformation
+UERadioAccessCapabilityInformation_PDU
+UE-EUTRA-Capability
+UE-EUTRA-Capability_PDU
+#.END
+
+#.PDU
+HandoverCommand
+HandoverPreparationInformation
+UERadioAccessCapabilityInformation
+BCCH-BCH-Message @bcch.bch
+BCCH-DL-SCH-Message @bcch.dl.sch
+MCCH-Message @mcch
+PCCH-Message @pcch
+DL-CCCH-Message @dl.ccch
+DL-DCCH-Message @dl.dcch
+UL-CCCH-Message @ul.ccch
+UL-DCCH-Message @ul.dcch
+SC-MCCH-Message @sc.mcch
+UECapabilityInformation @ue_cap_info
+UE-EUTRA-Capability @ue_eutra_cap
+SBCCH-SL-BCH-Message @sbcch.sl.bch
+#.END
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+Cell-ToAddMod-r12
+CellsTriggeredList
+CQI-ReportConfigSCell-v13x0
+CSI-RS-TriggeredList-r12
+DRB-InfoListSCG-r12
+DRB-InfoSCG-r12
+LogMeasInfoList2-r10
+MeasResultServCellListSCG-r12
+MeasResultServCellListSCG-Ext-r13
+MeasResultServCellSCG-r12
+RSRP-RangeSL3-r12
+SCellToAddModListSCG-r12
+SCellToAddModListSCG-Ext-r13
+SCG-ConfigInfo-r12
+SCG-ConfigInfo-r12-IEs
+SCG-ConfigInfo-v13x0-IEs
+SCG-ConfigRestrictInfo-r12
+ServCellIndex-v13xy
+SL-CommTxPoolIdentity-r13
+SL-PreconfigCommPool-r12
+SL-PreconfigCommPoolList4-r12
+SL-PreconfigCommRxPoolListExt-r13
+SL-PreconfigCommTxPoolListExt-r13
+SL-PreconfigDiscPool-r13
+SL-PreconfigDiscRxPoolList-r13
+SL-PreconfigDiscTxPoolList-r13
+SL-PreconfigGeneral-r12
+SL-PreconfigRelay-r13
+SL-PreconfigSync-r12
+SL-Preconfiguration-r12
+UERadioPagingInformation
+UERadioPagingInformation-r12-IEs
+UERadioPagingInformation-v13xy-IEs
+UplinkPowerControlCommonPSCell-v13xy
+VarConnEstFailReport-r11
+VarLogMeasConfig-r10
+VarLogMeasConfig-r11
+VarLogMeasConfig-r12
+VarLogMeasReport-r10
+VarLogMeasReport-r11
+VarMeasConfig
+VarMeasReportList
+VarMeasReportList-r12
+VarMeasReport
+VarMobilityHistoryReport-r12
+VarRLF-Report-r10
+VarRLF-Report-r11
+VarShortMAC-Input
+
+#.NO_EMIT ONLY_VALS
+EAB-Config-r11/eab-Category-r11
+
+#.MAKE_ENUM
+RAT-Type TYPE_PREFIX
+Handover/targetRAT-Type TYPE_PREFIX
+SI-OrPSI-GERAN TYPE_PREFIX
+
+#.FN_HDR UL-DCCH-Message
+ actx->pinfo->link_dir = P2P_DIR_UL;
+
+#.FN_HDR DL-DCCH-Message
+ actx->pinfo->link_dir = P2P_DIR_DL;
+
+#.FN_BODY DedicatedInfoNAS VAL_PTR = &nas_eps_tvb
+ tvbuff_t *nas_eps_tvb=NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if ((nas_eps_tvb)&&(nas_eps_handle)) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_dedicatedInfoNAS);
+ lte_rrc_call_dissector(nas_eps_handle, nas_eps_tvb, actx->pinfo, subtree);
+ }
+
+#.FN_BODY UE-CapabilityRAT-Container
+ /* Initialise to invalid value */
+ private_data_set_rat_type(actx, 0xFF);
+%(DEFAULT_BODY)s
+
+#.FN_BODY RAT-Type VAL_PTR = &rat_type
+ guint32 rat_type;
+%(DEFAULT_BODY)s
+ private_data_set_rat_type(actx, (guint8)rat_type);
+
+#RAT-Type ::= ENUMERATED {
+# eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT,
+# spare3, spare2, spare1, ...}
+# ueCapabilityRAT-Container
+# Container for the UE capabilities of the indicated RAT. The encoding is defined in the specification of each RAT:
+# For E-UTRA: the encoding of UE capabilities is defined in IE UE-EUTRA-Capability.
+# For UTRA: the octet string contains the INTER RAT HANDOVER INFO message defined in TS 25.331 [19].
+# For GERAN CS: the octet string contains the concatenated string of the Mobile Station Classmark 2 and Mobile
+# Station Classmark 3. The first 5 octets correspond to Mobile Station Classmark 2 and the following octets correspond
+# to Mobile Station Classmark 3. The Mobile Station Classmark 2 is formatted as 'TLV' and is coded in the same way as
+# the Mobile Station Classmark 2 information element in TS 24.008 [49]. The first octet is the Mobile station classmark 2
+# IEI and its value shall be set to 33H. The second octet is the Length of mobile station classmark 2 and its value shall
+# be set to 3. The octet 3 contains the first octet of the value part of the Mobile Station Classmark 2 information element,
+# the octet 4 contains the second octet of the value part of the Mobile Station Classmark 2 information element and so
+# on. For each of these octets, the first/ leftmost/ most significant bit of the octet contains b8 of the corresponding octet
+# of the Mobile Station Classmark 2. The Mobile Station Classmark 3 is formatted as 'V' and is coded in the same way
+# as the value part in the Mobile station classmark 3 information element in TS 24.008 [49]. The sixth octet of this octet
+# string contains octet 1 of the value part of Mobile station classmark 3, the seventh of octet of this octet string contains
+# octet 2 of the value part of Mobile station classmark 3 and so on. Note.
+# For GERAN PS: the encoding of UE capabilities is formatted as 'V' and is coded in the same way as the value part in
+# the MS Radio Access Capability information element in TS 24.008 [49].
+# For CDMA2000-1XRTT: the octet string contains the A21 Mobile Subscription Information and the encoding of this is
+# defined in A.S0008 [33]. The A21 Mobile Subscription Information contains the supported CDMA2000 1xRTT band
+# class and band sub-class information.
+
+#.FN_BODY UE-CapabilityRAT-Container/ueCapabilityRAT-Container VAL_PTR = &ue_cap_tvb
+ tvbuff_t *ue_cap_tvb=NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR UE-CapabilityRAT-Container/ueCapabilityRAT-Container
+if(ue_cap_tvb){
+ guint32 length;
+ proto_item *item;
+ proto_tree *subtree, *subtree2;
+ guint8 byte;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_UE_CapabilityRAT_Container);
+ switch(private_data_get_rat_type(actx)){
+ case RAT_Type_eutra:
+ /* eutra */
+ dissect_lte_rrc_UE_EUTRA_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case RAT_Type_utra:
+ /* utra */
+ dissect_rrc_InterRATHandoverInfo_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case RAT_Type_geran_cs:
+ /* geran-cs */
+ /* Mobile Station Classmark 2 is formatted as TLV with the two first bytes set to 0x33 0x03 */
+ subtree2 = proto_tree_add_subtree(subtree, ue_cap_tvb, 0, 5,
+ ett_lte_rrc_UE_CapabilityRAT_Container, &item, "Mobile Station Classmark 2");
+ byte = tvb_get_guint8(ue_cap_tvb, 0);
+ if (byte != 0x33) {
+ expert_add_info_format(actx->pinfo, item, &ei_lte_rrc_unexpected_type_value,
+ "Unexpected type value (found 0x%02X)", byte);
+ }
+ byte = tvb_get_guint8(ue_cap_tvb, 1);
+ if (byte != 0x03) {
+ expert_add_info_format(actx->pinfo, item, &ei_lte_rrc_unexpected_length_value,
+ "Unexpected length value (found %d)", byte);
+ }
+ de_ms_cm_2(ue_cap_tvb, subtree2, actx->pinfo, 2, 3, NULL, 0);
+ /* Mobile Station Classmark 3 is formatted as V */
+ length = tvb_reported_length_remaining(ue_cap_tvb, 5);
+ subtree2 = proto_tree_add_subtree(subtree, ue_cap_tvb, 5, length,
+ ett_lte_rrc_UE_CapabilityRAT_Container, NULL, "Mobile Station Classmark 3");
+ de_ms_cm_3(ue_cap_tvb, subtree2, actx->pinfo, 5, length, NULL, 0);
+ break;
+ case RAT_Type_geran_ps:
+ /* geran-ps */
+ /* MS Radio Access Capability is formatted as V */
+ length = tvb_reported_length(ue_cap_tvb);
+ subtree2 = proto_tree_add_subtree(subtree, ue_cap_tvb, 0, length,
+ ett_lte_rrc_UE_CapabilityRAT_Container, NULL, "MS Radio Access Capability");
+ de_gmm_ms_radio_acc_cap(ue_cap_tvb, subtree2, actx->pinfo, 0, length, NULL, 0);
+ break;
+ case RAT_Type_cdma2000_1XRTT:
+ /* cdma2000-1XRTT */
+ /* dissection of "A21 Mobile Subscription Information" could be added to packet-ansi_a.c */
+ break;
+ default:
+ break;
+ }
+}
+
+#.FN_BODY UE-EUTRA-Capability/featureGroupIndicators VAL_PTR = &featureGroupIndicators_tvb
+ tvbuff_t *featureGroupIndicators_tvb=NULL;
+%(DEFAULT_BODY)s
+ if(featureGroupIndicators_tvb){
+ /* Dissect featureGroupIndicators */
+ dissect_lte_rrc_featureGroupIndicators(featureGroupIndicators_tvb, actx);
+ }
+
+#.FN_BODY UE-EUTRA-Capability-v1020-IEs/featureGroupIndRel10-r10 VAL_PTR = &featureGroupIndRel10_tvb
+ tvbuff_t *featureGroupIndRel10_tvb=NULL;
+%(DEFAULT_BODY)s
+ if(featureGroupIndRel10_tvb){
+ /* Dissect featureGroupIndRel10-r10 */
+ dissect_lte_rrc_featureGroupIndRel10(featureGroupIndRel10_tvb, actx);
+ }
+
+#.FN_BODY UE-EUTRA-Capability-v9a0-IEs/featureGroupIndRel9Add-r9 VAL_PTR = &featureGroupIndRel9Add_tvb
+ tvbuff_t *featureGroupIndRel9Add_tvb=NULL;
+%(DEFAULT_BODY)s
+ if(featureGroupIndRel9Add_tvb){
+ /* Dissect featureGroupIndRel9Add-r9 */
+ dissect_lte_rrc_featureGroupIndRel9Add(featureGroupIndRel9Add_tvb, actx);
+ }
+
+#.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-r9/featureGroupIndicators-r9 VAL_PTR = &featureGroupIndicators_tvb
+ tvbuff_t *featureGroupIndicators_tvb=NULL;
+%(DEFAULT_BODY)s
+ if(featureGroupIndicators_tvb){
+ /* Dissect featureGroupIndicators-r9 */
+ dissect_lte_rrc_featureGroupIndicators(featureGroupIndicators_tvb, actx);
+ }
+
+#.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-r9/featureGroupIndRel9Add-r9 VAL_PTR = &featureGroupIndRel9Add_tvb
+ tvbuff_t *featureGroupIndRel9Add_tvb=NULL;
+%(DEFAULT_BODY)s
+ if(featureGroupIndRel9Add_tvb){
+ /* Dissect featureGroupIndRel9Add-r9 */
+ dissect_lte_rrc_featureGroupIndRel9Add(featureGroupIndRel9Add_tvb, actx);
+ }
+
+#.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-v1060/featureGroupIndRel10-v1060 VAL_PTR = &featureGroupIndRel10_tvb
+ tvbuff_t *featureGroupIndRel10_tvb=NULL;
+%(DEFAULT_BODY)s
+ if(featureGroupIndRel10_tvb){
+ /* Dissect featureGroupIndRel10-v1060 */
+ dissect_lte_rrc_featureGroupIndRel10(featureGroupIndRel10_tvb, actx);
+ }
+
+#.FN_BODY PhyLayerParameters-v1170/interBandTDD-CA-WithDifferentConfig-r11 VAL_PTR = &inter_band_tdd_ca_tvb
+ tvbuff_t *inter_band_tdd_ca_tvb=NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (inter_band_tdd_ca_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_interBandTDD_CA_WithDifferentConfig);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1, inter_band_tdd_ca_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2, inter_band_tdd_ca_tvb, 1, 1, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY PhyLayerParameters-v1250/tdd-FDD-CA-PCellDuplex-r12 VAL_PTR = &pcellduplex_tvb
+ tvbuff_t *pcellduplex_tvb=NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (pcellduplex_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1, pcellduplex_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2, pcellduplex_tvb, 1, 1, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY PhyLayerParameters-v13x0/codebook-HARQ-ACK-r13 VAL_PTR = &codebook_tvb
+ tvbuff_t *codebook_tvb=NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (codebook_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_codebook_HARQ_ACK_r13);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_codebook_HARQ_ACK_r13_bit1, codebook_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_codebook_HARQ_ACK_r13_bit2, codebook_tvb, 1, 1, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY RF-Parameters-v10f0/modifiedMPR-Behavior-r10 VAL_PTR = &modifiedMPR_Behavior_r10_tvb
+ tvbuff_t *modifiedMPR_Behavior_r10_tvb=NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (modifiedMPR_Behavior_r10_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_modifiedMPR_Behavior_r10);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0, modifiedMPR_Behavior_r10_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1, modifiedMPR_Behavior_r10_tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2, modifiedMPR_Behavior_r10_tvb, 2, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3, modifiedMPR_Behavior_r10_tvb, 3, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4, modifiedMPR_Behavior_r10_tvb, 4, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5, modifiedMPR_Behavior_r10_tvb, 5, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6, modifiedMPR_Behavior_r10_tvb, 6, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7, modifiedMPR_Behavior_r10_tvb, 7, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8, modifiedMPR_Behavior_r10_tvb, 8, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9, modifiedMPR_Behavior_r10_tvb, 9, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10, modifiedMPR_Behavior_r10_tvb, 10, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11, modifiedMPR_Behavior_r10_tvb, 11, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12, modifiedMPR_Behavior_r10_tvb, 12, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13, modifiedMPR_Behavior_r10_tvb, 13, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14, modifiedMPR_Behavior_r10_tvb, 14, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15, modifiedMPR_Behavior_r10_tvb, 15, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16, modifiedMPR_Behavior_r10_tvb, 16, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17, modifiedMPR_Behavior_r10_tvb, 17, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18, modifiedMPR_Behavior_r10_tvb, 18, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19, modifiedMPR_Behavior_r10_tvb, 19, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20, modifiedMPR_Behavior_r10_tvb, 20, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21, modifiedMPR_Behavior_r10_tvb, 21, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22, modifiedMPR_Behavior_r10_tvb, 22, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23, modifiedMPR_Behavior_r10_tvb, 23, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24, modifiedMPR_Behavior_r10_tvb, 24, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25, modifiedMPR_Behavior_r10_tvb, 25, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26, modifiedMPR_Behavior_r10_tvb, 26, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27, modifiedMPR_Behavior_r10_tvb, 27, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28, modifiedMPR_Behavior_r10_tvb, 28, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29, modifiedMPR_Behavior_r10_tvb, 29, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30, modifiedMPR_Behavior_r10_tvb, 30, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31, modifiedMPR_Behavior_r10_tvb, 31, 1, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY Handover
+ /* Initialise to invalid value */
+ private_data_set_rat_target_type(actx, 0xFF);
+%(DEFAULT_BODY)s
+
+#.FN_BODY Handover/targetRAT-Type VAL_PTR = &target_rat_type
+ guint32 target_rat_type;
+%(DEFAULT_BODY)s
+ private_data_set_rat_target_type(actx, (guint8)target_rat_type);
+
+#.FN_BODY Handover/targetRAT-MessageContainer VAL_PTR = &target_rat_msg_cont_tvb
+ tvbuff_t *target_rat_msg_cont_tvb = NULL;
+%(DEFAULT_BODY)s
+ if(target_rat_msg_cont_tvb){
+ guint8 byte;
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_targetRAT_MessageContainer);
+ switch (private_data_get_rat_target_type(actx)){
+ case T_targetRAT_Type_utra:
+ /* utra */
+ if (rrc_irat_ho_to_utran_cmd_handle)
+ lte_rrc_call_dissector(rrc_irat_ho_to_utran_cmd_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree);
+ break;
+ case T_targetRAT_Type_geran:
+ /* geran */
+ byte = tvb_get_guint8(target_rat_msg_cont_tvb, 0);
+ if (byte == 0x06) {
+ if (gsm_a_dtap_handle) {
+ lte_rrc_call_dissector(gsm_a_dtap_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree);
+ }
+ } else {
+ if (gsm_rlcmac_dl_handle) {
+ lte_rrc_call_dissector(gsm_rlcmac_dl_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree);
+ }
+ }
+ break;
+ case T_targetRAT_Type_cdma2000_1XRTT:
+ /* cdma2000-1XRTT */
+ break;
+ case T_targetRAT_Type_cdma2000_HRPD:
+ /* cdma2000-HRPD */
+ break;
+ default:
+ break;
+ }
+ }
+
+#.FN_BODY Handover/nas-SecurityParamFromEUTRA VAL_PTR = &nas_sec_param_from_eutra_tvb
+ tvbuff_t *nas_sec_param_from_eutra_tvb = NULL;
+ guint32 length;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (nas_sec_param_from_eutra_tvb) {
+ length = tvb_reported_length(nas_sec_param_from_eutra_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_nas_SecurityParam);
+ de_emm_sec_par_from_eutra(nas_sec_param_from_eutra_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
+ }
+
+#.FN_BODY SecurityConfigHO/handoverType/interRAT/nas-SecurityParamToEUTRA VAL_PTR = &nas_sec_param_to_eutra_tvb
+ tvbuff_t *nas_sec_param_to_eutra_tvb = NULL;
+ guint32 length;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (nas_sec_param_to_eutra_tvb) {
+ length = tvb_reported_length(nas_sec_param_to_eutra_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_nas_SecurityParam);
+ de_emm_sec_par_to_eutra(nas_sec_param_to_eutra_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
+ }
+
+#.FN_BODY SI-OrPSI-GERAN/si
+ private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_si); /* SI message */
+%(DEFAULT_BODY)s
+
+#.FN_BODY SI-OrPSI-GERAN/psi
+ private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_psi); /* PSI message */
+%(DEFAULT_BODY)s
+
+#.FN_BODY CellInfoGERAN-r9/systemInformation-r9
+ private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_si); /* SI message */
+%(DEFAULT_BODY)s
+
+#.FN_BODY SystemInfoListGERAN/_item VAL_PTR = &sys_info_list_tvb
+ tvbuff_t *sys_info_list_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (sys_info_list_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_siPsiSibContainer);
+ switch (private_data_get_si_or_psi_geran(actx)) {
+ case SI_OrPSI_GERAN_si:
+ /* SI message */
+ if (gsm_a_dtap_handle) {
+ tvbuff_t *si_tvb = tvb_new_composite();
+ guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1);
+ pd[0] = 0x06;
+ tvb_composite_append(si_tvb, tvb_new_real_data(pd, 1, 1));
+ tvb_composite_append(si_tvb, sys_info_list_tvb);
+ tvb_composite_finalize(si_tvb);
+ add_new_data_source(actx->pinfo, si_tvb, "System Information");
+ lte_rrc_call_dissector(gsm_a_dtap_handle, si_tvb, actx->pinfo, subtree);
+ }
+ break;
+ case SI_OrPSI_GERAN_psi:
+ /* PSI message */
+ if (gsm_rlcmac_dl_handle) {
+ lte_rrc_call_dissector(gsm_rlcmac_dl_handle, sys_info_list_tvb, actx->pinfo, subtree);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+#.FN_BODY SystemTimeInfoCDMA2000/cdma-SystemTime/asynchronousSystemTime VAL_PTR=&async_system_time_tvb
+ tvbuff_t *async_system_time_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemTimeInfoCDMA2000/cdma-SystemTime/asynchronousSystemTime
+ if (async_system_time_tvb) {
+ guint64 bits;
+ nstime_t ts;
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo);
+ bits = tvb_get_bits64(async_system_time_tvb, 0, 49, ENC_BIG_ENDIAN);
+ ts.secs = (time_t)((bits*8)/1228800) + 315964800; /* CDMA2000 epoch is 00:00:00 (midnight) UTC on 1980-01-06 */
+ ts.nsecs = (int)(((bits%153600)*8*1000000000)/1228800);
+ proto_tree_add_time(subtree, hf_lte_rrc_cdma_time, async_system_time_tvb, 0, 7, &ts);
+ proto_tree_add_time(subtree, hf_lte_rrc_local_time, async_system_time_tvb, 0, 7,&ts);
+ }
+
+#.FN_BODY SystemTimeInfoCDMA2000/cdma-SystemTime/synchronousSystemTime VAL_PTR=&sync_system_time_tvb
+ tvbuff_t *sync_system_time_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemTimeInfoCDMA2000/cdma-SystemTime/synchronousSystemTime
+ if (sync_system_time_tvb) {
+ guint64 bits;
+ nstime_t ts;
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo);
+ bits = tvb_get_bits64(sync_system_time_tvb, 0, 39, ENC_BIG_ENDIAN);
+ ts.secs = (time_t)(bits/100) + 315964800; /* CDMA2000 epoch is 00:00:00 (midnight) UTC on 1980-01-06 */
+ ts.nsecs = (int)(bits%100)*10000000;
+ proto_tree_add_time(subtree, hf_lte_rrc_cdma_time, sync_system_time_tvb, 0, 5, &ts);
+ proto_tree_add_time(subtree, hf_lte_rrc_local_time, sync_system_time_tvb, 0, 5, &ts);
+ }
+
+#.FN_BODY CellInfoUTRA-FDD-r9/utra-BCCH-Container-r9 VAL_PTR = &utra_bcch_cont_tvb
+ tvbuff_t *utra_bcch_cont_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_siPsiSibContainer);
+ lte_rrc_call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, subtree);
+ }
+
+#.FN_BODY CellInfoUTRA-TDD-r9/utra-BCCH-Container-r9 VAL_PTR = &utra_bcch_cont_tvb
+ tvbuff_t *utra_bcch_cont_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_siPsiSibContainer);
+ lte_rrc_call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, subtree);
+ }
+
+#.FN_BODY CellInfoUTRA-TDD-r10/utra-BCCH-Container-r10 VAL_PTR = &utra_bcch_cont_tvb
+ tvbuff_t *utra_bcch_cont_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_siPsiSibContainer);
+ lte_rrc_call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, subtree);
+ }
+
+#.TYPE_ATTR
+NeighCellConfig TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_neighCellConfig_vals)
+
+#.FN_BODY NeighCellConfig VAL_PTR = &neigh_cell_config_tvb HF_INDEX=-1
+ tvbuff_t *neigh_cell_config_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR NeighCellConfig
+ if (neigh_cell_config_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, neigh_cell_config_tvb, 0, 1, tvb_get_bits8(neigh_cell_config_tvb, 0, 2));
+ }
+
+#.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoid-Point-r10 VAL_PTR = &ellipsoid_point_tvb
+ tvbuff_t *ellipsoid_point_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (ellipsoid_point_tvb) {
+ dissect_lpp_Ellipsoid_Point_PDU(ellipsoid_point_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithAltitude-r10 VAL_PTR = &ellipsoid_point_with_alt_tvb
+ tvbuff_t *ellipsoid_point_with_alt_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (ellipsoid_point_with_alt_tvb) {
+ dissect_lpp_EllipsoidPointWithAltitude_PDU(ellipsoid_point_with_alt_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithUncertaintyCircle-r11 VAL_PTR = &ellipsoid_point_with_uncert_circ_tvb
+ tvbuff_t *ellipsoid_point_with_uncert_circ_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (ellipsoid_point_with_uncert_circ_tvb) {
+ dissect_lpp_Ellipsoid_PointWithUncertaintyCircle_PDU(ellipsoid_point_with_uncert_circ_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithUncertaintyEllipse-r11 VAL_PTR = &ellipsoid_point_with_uncert_ellipse_tvb
+ tvbuff_t *ellipsoid_point_with_uncert_ellipse_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (ellipsoid_point_with_uncert_ellipse_tvb) {
+ dissect_lpp_EllipsoidPointWithUncertaintyEllipse_PDU(ellipsoid_point_with_uncert_ellipse_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 VAL_PTR = &ellipsoid_point_with_alt_uncert_ellipsoid_tvb
+ tvbuff_t *ellipsoid_point_with_alt_uncert_ellipsoid_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (ellipsoid_point_with_alt_uncert_ellipsoid_tvb) {
+ dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU(ellipsoid_point_with_alt_uncert_ellipsoid_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidArc-r11 VAL_PTR = &ellipsoid_arc_tvb
+ tvbuff_t *ellipsoid_arc_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (ellipsoid_arc_tvb) {
+ dissect_lpp_EllipsoidArc_PDU(ellipsoid_arc_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY LocationInfo-r10/locationCoordinates-r10/polygon-r11 VAL_PTR = &polygon_tvb
+ tvbuff_t *polygon_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (polygon_tvb) {
+ dissect_lpp_Polygon_PDU(polygon_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY LocationInfo-r10/horizontalVelocity-r10 VAL_PTR = &horizontal_velocity_tvb
+ tvbuff_t *horizontal_velocity_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (horizontal_velocity_tvb) {
+ dissect_lpp_HorizontalVelocity_PDU(horizontal_velocity_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY LocationInfo-r10/gnss-TOD-msec-r10 VAL_PTR = &gnss_tod_msec_tvb
+ tvbuff_t *gnss_tod_msec_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (gnss_tod_msec_tvb) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, actx->pinfo);
+ dissect_per_constrained_integer(gnss_tod_msec_tvb, 0, &asn1_ctx, tree, hf_index, 0U, 3599999U, NULL, FALSE);
+ proto_item_append_text(actx->created_item, "ms");
+ }
+
+#.FN_BODY AbsoluteTimeInfo-r10 VAL_PTR = &abs_time_info_tvb
+ tvbuff_t *abs_time_info_tvb = NULL;
+%(DEFAULT_BODY)s
+#.FN_FTR AbsoluteTimeInfo-r10
+ if (abs_time_info_tvb) {
+ const gchar *str, *hf_str;
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_absTimeInfo);
+ str = tvb_bcd_dig_to_wmem_packet_str(abs_time_info_tvb, 0, 6, NULL, FALSE);
+ hf_str = wmem_strdup_printf(wmem_packet_scope(), "%c%c-%c%c-%c%c %c%c:%c%c:%c%c", str[0], str[1],
+ str[2], str[3], str[4], str[5], str[6], str[7], str[8], str[9], str[10], str[11]);
+ proto_tree_add_string(subtree, hf_lte_rrc_absolute_time, abs_time_info_tvb, 0, 6, hf_str);
+ }
+
+#.TYPE_RENAME
+CarrierFreqUTRA-FDD-Ext-r12/multiBandInfoList-r12 FreqBandIndicator_UTRA_FDD_r12
+
+#.TYPE_ATTR
+SystemInformationBlockType9/hnb-Name TYPE=FT_STRING DISPLAY=STR_UNICODE
+
+#.FN_BODY SystemInformationBlockType9/hnb-Name VAL_PTR=&hnb_name_tvb HF_INDEX=-1
+ tvbuff_t *hnb_name_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ actx->created_item = proto_tree_add_item(tree, hf_index, hnb_name_tvb, 0, -1, ENC_UTF_8|ENC_NA);
+
+#.TYPE_ATTR
+SystemInformationBlockType10/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_messageIdentifier_vals_ext
+
+#.FN_BODY SystemInformationBlockType10/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1
+ tvbuff_t *msg_id_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType10/messageIdentifier
+ if (msg_id_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY SystemInformationBlockType10/serialNumber VAL_PTR=&serial_nb_tvb
+ tvbuff_t *serial_nb_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType10/serialNumber
+ if (serial_nb_tvb) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_serialNumber);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY SystemInformationBlockType10/warningType VAL_PTR=&warning_type_tvb
+ tvbuff_t *warning_type_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType10/warningType
+ if (warning_type_tvb) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_warningType);
+ proto_tree_add_item(subtree, hf_lte_rrc_warningType_value, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_lte_rrc_warningType_emergency_user_alert, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_lte_rrc_warningType_popup, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.TYPE_ATTR
+SystemInformationBlockType11/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_messageIdentifier_vals_ext
+
+#.FN_BODY SystemInformationBlockType11/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1
+ tvbuff_t *msg_id_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType11/messageIdentifier
+ if (msg_id_tvb) {
+ private_data_set_message_identifier(actx, tvb_get_ntohs(msg_id_tvb, 0) << 16);
+ actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY SystemInformationBlockType11/serialNumber VAL_PTR=&serial_nb_tvb
+ tvbuff_t *serial_nb_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType11/serialNumber
+ if (serial_nb_tvb) {
+ proto_tree *subtree;
+ private_data_set_message_identifier(actx,
+ private_data_get_message_identifier(actx) | tvb_get_ntohs(serial_nb_tvb, 0));
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_serialNumber);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY SystemInformationBlockType11/warningMessageSegmentType VAL_PTR=&segment_type
+ guint32 segment_type;
+%(DEFAULT_BODY)s
+ private_data_set_warning_message_segment_type(actx, (guint8)segment_type);
+
+#.FN_BODY SystemInformationBlockType11/warningMessageSegmentNumber VAL_PTR=&segment_number
+ guint32 segment_number;
+%(DEFAULT_BODY)s
+ private_data_set_warning_message_segment_number(actx, (guint8)segment_number);
+
+#.FN_BODY SystemInformationBlockType11/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb
+ tvbuff_t *data_coding_scheme_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType11/dataCodingScheme
+ if (data_coding_scheme_tvb) {
+ proto_tree *subtree;
+ guint32 dataCodingScheme;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_dataCodingScheme);
+ dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0);
+ g_hash_table_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)),
+ GUINT_TO_POINTER(dataCodingScheme));
+ }
+
+#.FN_BODY SystemInformationBlockType11/warningMessageSegment VAL_PTR=&warning_msg_seg_tvb
+ tvbuff_t *warning_msg_seg_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType11/warningMessageSegment
+ if (warning_msg_seg_tvb) {
+ proto_tree *subtree;
+ tvbuff_t *frag_tvb;
+ gpointer p_dcs;
+ fragment_head *frag_data = fragment_add_seq_check(&lte_rrc_sib11_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo,
+ private_data_get_message_identifier(actx), NULL,
+ private_data_get_warning_message_segment_number(actx),
+ tvb_reported_length(warning_msg_seg_tvb),
+ private_data_get_warning_message_segment_type(actx) ? FALSE : TRUE);
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_warningMessageSegment);
+ frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB11 warning message",
+ frag_data, &lte_rrc_sib11_frag_items, NULL, subtree);
+ p_dcs = g_hash_table_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)));
+ if (frag_tvb && p_dcs) {
+ dissect_lte_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs));
+ }
+ }
+
+#.TYPE_ATTR
+SystemInformationBlockType12-r9/messageIdentifier-r9 TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_messageIdentifier_vals_ext
+
+#.FN_BODY SystemInformationBlockType12-r9/messageIdentifier-r9 VAL_PTR=&msg_id_tvb HF_INDEX=-1
+ tvbuff_t *msg_id_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType12-r9/messageIdentifier-r9
+ if (msg_id_tvb) {
+ private_data_set_message_identifier(actx, tvb_get_ntohs(msg_id_tvb, 0) << 16);
+ actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY SystemInformationBlockType12-r9/serialNumber-r9 VAL_PTR=&serial_nb_tvb
+ tvbuff_t *serial_nb_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType12-r9/serialNumber-r9
+ if (serial_nb_tvb) {
+ proto_tree *subtree;
+ private_data_set_message_identifier(actx,
+ private_data_get_message_identifier(actx) | tvb_get_ntohs(serial_nb_tvb, 0));
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_serialNumber);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY SystemInformationBlockType12-r9/warningMessageSegmentType-r9 VAL_PTR=&segment_type
+ guint32 segment_type;
+%(DEFAULT_BODY)s
+ private_data_set_warning_message_segment_type(actx, (guint8)segment_type);
+
+#.FN_BODY SystemInformationBlockType12-r9/warningMessageSegmentNumber-r9 VAL_PTR=&segment_number
+ guint32 segment_number;
+%(DEFAULT_BODY)s
+ private_data_set_warning_message_segment_number(actx, (guint8)segment_number);
+
+#.FN_BODY SystemInformationBlockType12-r9/dataCodingScheme-r9 VAL_PTR=&data_coding_scheme_tvb
+ tvbuff_t *data_coding_scheme_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType12-r9/dataCodingScheme-r9
+ if (data_coding_scheme_tvb) {
+ proto_tree *subtree;
+ guint32 dataCodingScheme;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_dataCodingScheme);
+ dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0);
+ g_hash_table_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)),
+ GUINT_TO_POINTER(dataCodingScheme));
+ }
+
+#.FN_BODY SystemInformationBlockType12-r9/warningMessageSegment-r9 VAL_PTR=&warning_msg_seg_tvb
+ tvbuff_t *warning_msg_seg_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType12-r9/warningMessageSegment-r9
+ if (warning_msg_seg_tvb) {
+ proto_tree *subtree;
+ tvbuff_t *frag_tvb;
+ gpointer p_dcs;
+ fragment_head *frag_data = fragment_add_seq_check(&lte_rrc_sib12_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo,
+ private_data_get_message_identifier(actx), NULL,
+ private_data_get_warning_message_segment_number(actx),
+ tvb_reported_length(warning_msg_seg_tvb),
+ private_data_get_warning_message_segment_type(actx) ? FALSE : TRUE);
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_warningMessageSegment);
+ frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB12 warning message",
+ frag_data, &lte_rrc_sib12_frag_items, NULL, subtree);
+ p_dcs = g_hash_table_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)));
+ if (frag_tvb && p_dcs) {
+ dissect_lte_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs));
+ }
+ }
+
+#.TYPE_ATTR
+EAB-Config-r11/eab-Category-r11 STRINGS=VALS(lte_rrc_eab_category_vals)
+
+#.TYPE_ATTR
+SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11 TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_daylightSavingTime_vals)
+
+#.FN_BODY SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11 VAL_PTR=&daylight_saving_time_tvb HF_INDEX=-1
+ tvbuff_t *daylight_saving_time_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11
+ if (daylight_saving_time_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, daylight_saving_time_tvb, 0, 1, tvb_get_bits8(daylight_saving_time_tvb, 0, 2));
+ }
+
+#.FN_BODY SystemInformationBlockType16-r11/timeInfo-r11/leapSeconds-r11
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "s");
+
+#.TYPE_ATTR
+SystemInformationBlockType16-r11/timeInfo-r11/localTimeOffset-r11 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_localTimeOffset_fmt)
+
+#.FN_BODY SystemInformationBlockType16-r11/timeInfo-r11/timeInfoUTC-r11 VAL_PTR=&timeInfo
+ guint64 timeInfo;
+ proto_tree *subtree;
+ nstime_t ts;
+ guint32 old_offset = offset;
+%(DEFAULT_BODY)s
+
+#.FN_FTR SystemInformationBlockType16-r11/timeInfo-r11/timeInfoUTC-r11
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo);
+ ts.secs = (time_t)(timeInfo/100)-2208988800U; /* epoch is 00:00:00 (midnight) UTC on 1900-01-01 */
+ ts.nsecs = (int)(timeInfo%100)*10000000;
+ proto_tree_add_time(subtree, hf_lte_rrc_utc_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts);
+ proto_tree_add_time(subtree, hf_lte_rrc_local_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts);
+
+#.TYPE_ATTR
+WLAN-Identifiers-r12/ssid-r12 TYPE=FT_STRING DISPLAY=STR_ASCII
+
+#.FN_BODY WLAN-Identifiers-r12/ssid-r12 VAL_PTR=&ssid_tvb HF_INDEX=-1
+ tvbuff_t *ssid_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA);
+
+#.TYPE_ATTR
+WLAN-Identifiers-r12/bssid-r12 TYPE=FT_ETHER
+
+#.TYPE_ATTR
+WLAN-Identifiers-r12/hessid-r12 TYPE=FT_ETHER
+
+#.TYPE_ATTR
+CellSelectionInfoNFreq-r13/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
+
+#.FN_BODY RRCConnectionReject-r8-IEs/waitTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "s");
+
+#.FN_BODY RRCConnectionReject-v1020-IEs/extendedWaitTime-r10
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "s");
+
+#.FN_BODY RRCConnectionRelease-v1020-IEs/extendedWaitTime-r10
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "s");
+
+#.TYPE_ATTR
+SystemInformationBlockType1/cellSelectionInfo/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
+
+#.FN_BODY CellSelectionInfo-v920/q-QualMinOffset-r9
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.TYPE_ATTR
+RLF-Report-r9/eag_1/timeConnFailure-r10 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_timeConnFailure_r10_fmt)
+
+#.FN_BODY LogMeasInfo-r10/relativeTimeStamp-r10
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "s");
+
+#.FN_BODY BLER-Result-r12/blocksReceived-r12/n-r12 VAL_PTR = &n_r12_tvb HF_INDEX = -1
+ tvbuff_t *n_r12_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (n_r12_tvb) {
+ actx->created_item = proto_tree_add_uint(tree, hf_index, n_r12_tvb, 0, 1, tvb_get_bits8(n_r12_tvb, 0, 3));
+ }
+
+#.TYPE_ATTR
+BLER-Result-r12/blocksReceived-r12/n-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_n_r12_vals)
+
+#.FN_BODY BLER-Result-r12/blocksReceived-r12/m-r12 VAL_PTR = &m_r12_tvb HF_INDEX = -1
+ tvbuff_t *m_r12_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (m_r12_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, m_r12_tvb, 0, 1, ENC_BIG_ENDIAN);
+ }
+
+#.TYPE_ATTR
+BLER-Result-r12/blocksReceived-r12/m-r12 TYPE=FT_UINT8 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_m_r12_fmt)
+
+#.TYPE_ATTR
+BLER-Range-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_BLER_Range_r12_vals_ext
+
+#.FN_BODY TimeSinceFailure-r11
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "s");
+
+#.TYPE_ATTR
+CarrierFreqUTRA-FDD/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_q_RxLevMin_vals_ext
+
+#.TYPE_ATTR
+CarrierFreqUTRA-FDD-Ext-r12/q-RxLevMin-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_q_RxLevMin_vals_ext
+
+#.TYPE_ATTR
+CarrierFreqUTRA-TDD/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_q_RxLevMin_vals_ext
+
+#.TYPE_ATTR
+CarrierFreqUTRA-TDD-r12/q-RxLevMin-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_q_RxLevMin_vals_ext
+
+#.FN_BODY CarrierFreqUTRA-FDD/p-MaxUTRA
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY CarrierFreqUTRA-FDD-Ext-r12/p-MaxUTRA-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY CarrierFreqUTRA-TDD/p-MaxUTRA
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY CarrierFreqUTRA-TDD-r12/p-MaxUTRA-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY CarrierFreqUTRA-FDD/q-QualMin
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY CarrierFreqUTRA-FDD-Ext-r12/q-QualMin-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.TYPE_ATTR
+CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_geran_q_RxLevMin_vals_ext
+
+#.FN_BODY CarrierFreqsInfoGERAN/commonInfo/p-MaxGERAN
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.TYPE_ATTR
+CQI-ReportConfig/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
+
+#.TYPE_ATTR
+CQI-ReportConfig-r10/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
+
+#.TYPE_ATTR
+CQI-ReportConfigSCell-r10/nomPDSCH-RS-EPRE-Offset-r10 STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
+
+#.FN_BODY P-C-AndCBSR-r11/p-C-r11
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY P-C-AndCBSR-r13/legacySet/p-C-r11
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY CSI-RS-Config-r10/csi-RS-r10/setup/p-C-r10
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY MAC-MainConfig
+ /* Accumulate values in drx_config while dissecting DRX config.
+ Do this here rather than down in DRX-Config so that we will see
+ fields overwritten in the R11 extension */
+ drx_config_t *drx_config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ if (drx_config->configured) {
+ mac_lte_info* p_mac_lte_info;
+
+ /* Verify that config is valid */
+ drx_check_config_sane(drx_config, actx);
+
+ /* Look for UE identifier */
+ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0);
+ if (p_mac_lte_info != NULL) {
+ /* If found, configure MAC with DRX config */
+ set_mac_lte_drx_config(p_mac_lte_info->ueid, drx_config, actx->pinfo);
+ }
+
+ /* Clear out state */
+ drx_config->configured = FALSE;
+ }
+
+
+#.FN_BODY MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 VAL_PTR=&timer
+ guint32 timer;
+%(DEFAULT_BODY)s
+
+#.FN_FTR MAC-MainConfig/eag_1/sr-ProhibitTimer-r9
+ proto_item_append_text(actx->created_item, " SR period%s", (timer > 1) ? "s" : "");
+
+#.FN_BODY MAC-MainConfig/eag_2/mac-MainConfig-v1020/extendedBSR-Sizes-r10
+ mac_lte_info* p_mac_lte_info;
+
+%(DEFAULT_BODY)s
+ /* Look for UE identifier */
+ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0);
+ if (p_mac_lte_info != NULL) {
+ /* Tell MAC to use extended BSR sizes configuration */
+ set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, TRUE, actx->pinfo);
+ }
+
+#.FN_BODY PDSCH-ConfigCommon/referenceSignalPower
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY P-Max
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY SPS-ConfigUL/setup/p0-Persistent/p0-NominalPUSCH-Persistent
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY SPS-ConfigUL/setup/p0-Persistent/p0-UE-PUSCH-Persistent
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-NominalPUSCH-PersistentSubframeSet2-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-UE-PUSCH-PersistentSubframeSet2-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.TYPE_ATTR
+UplinkPowerControlCommon/deltaPreambleMsg3 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals)
+
+#.FN_BODY UplinkPowerControlCommon/p0-NominalPUSCH
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.TYPE_ATTR
+UplinkPowerControlCommonSCell-v11x0/deltaPreambleMsg3-r11 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals)
+
+#.FN_BODY UplinkPowerControlCommon/p0-NominalPUCCH
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY UplinkPowerControlCommonPSCell-r12/p0-NominalPUCCH-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY UplinkPowerControlCommonSCell-r10/p0-NominalPUSCH-r10
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY UplinkPowerControlDedicated/p0-UE-PUSCH
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY UplinkPowerControlDedicated/p0-UE-PUCCH
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-NominalPUSCH-SubframeSet2-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-UE-PUSCH-SubframeSet2-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY UplinkPowerControlDedicatedSCell-r10/p0-UE-PUSCH-r10
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY Q-QualMin-r9
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.TYPE_ATTR
+Q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_q_RxLevMin_vals_ext
+
+#.FN_BODY Q-OffsetRangeInterRAT
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.TYPE_ATTR
+ReselectionThreshold DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_ReselectionThreshold_vals_ext
+
+#.FN_BODY ReselectionThresholdQ-r9
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY T-Reselection
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "s");
+
+#.TYPE_ATTR
+Hysteresis DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_Hysteresis_vals_ext
+
+#.TYPE_ATTR
+CSI-RSRP-Range-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRP_Range_vals_ext
+
+#.TYPE_ATTR
+MBSFN-RSRQ-Range-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_MBSFN_RSRQ_Range_vals_ext
+
+#.TYPE_RENAME
+MeasConfig/s-Measure S_Measure
+
+#.TYPE_ATTR
+MeasConfig/s-Measure DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_s_Measure_vals_ext
+
+#.TYPE_ATTR
+MeasResultGERAN/measResult/rssi DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&gsm_a_rr_rxlev_vals_ext
+
+#.TYPE_ATTR
+MeasResultUTRA/measResult/utra-EcN0 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_EcN0_vals_ext
+
+#.TYPE_ATTR
+MeasResultUTRA/measResult/utra-RSCP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_RSCP_vals_ext
+
+#.TYPE_ATTR
+ReportConfigEUTRA/triggerType/event/eventId/eventA3/a3-Offset DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_a3_a6_c2_Offset_vals_ext
+
+#.TYPE_ATTR
+ReportConfigEUTRA/triggerType/event/eventId/eventA6-r10/a6-Offset-r10 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_a3_a6_c2_Offset_vals_ext
+
+#.TYPE_ATTR
+ReportConfigEUTRA/triggerType/event/eventId/eventC2-r12/c2-Offset-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_a3_a6_c2_Offset_vals_ext
+
+#.TYPE_RENAME
+ThresholdEUTRA/threshold-RSRP Threshold_RSRP_Range
+
+#.TYPE_ATTR
+ThresholdEUTRA/threshold-RSRP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_threshold_RSRP_vals_ext
+
+#.TYPE_RENAME
+ThresholdEUTRA/threshold-RSRQ Threshold_RSRQ_Range
+
+#.TYPE_ATTR
+ThresholdEUTRA/threshold-RSRQ DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_threshold_RSRQ_vals_ext
+
+#.TYPE_ATTR
+ThresholdGERAN DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_thresholdGERAN_vals_ext
+
+#.TYPE_RENAME
+ThresholdUTRA/utra-RSCP Threshold_utra_RSRP
+
+#.TYPE_ATTR
+ThresholdUTRA/utra-RSCP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_thresholdUTRA_RSCP_vals_ext
+
+#.TYPE_RENAME
+ThresholdUTRA/utra-EcN0 Threshold_utra_EcN0
+
+#.TYPE_ATTR
+ThresholdUTRA/utra-EcN0 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_thresholdUTRA_EcN0_vals_ext
+
+#.TYPE_ATTR
+RSRP-Range DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRP_Range_vals_ext
+
+#.TYPE_ATTR
+RSRP-RangeSL-r12 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_RSRP_RangeSL_vals)
+
+#.TYPE_ATTR
+RSRP-RangeSL2-r12 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_RSRP_RangeSL2_vals)
+
+#.TYPE_ATTR
+RSRP-RangeSL3-r12 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_RSRP_RangeSL3_vals)
+
+#.TYPE_ATTR
+RSRQ-Range DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRQ_Range_vals_ext
+
+#.TYPE_ATTR
+RSRQ-Range-v1250 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRQ_Range_vals_ext
+
+#.TYPE_ATTR
+RSRQ-Range-v13xx DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRQ_Range_vals_ext
+
+#.TYPE_ATTR
+RS-SINR-Range-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_RS_SINR_Range_r13_fmt)
+
+#.TYPE_ATTR
+RSSI-Range-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_RSSI_Range_r13_fmt)
+
+#.TYPE_ATTR
+MeasResultForECID-r9/ue-RxTxTimeDiffResult-r9 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_ue_RxTxTimeDiffResult_fmt)
+
+#.FN_BODY MeasResultForRSSI-r13/channelOccupancy-r13
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " percents");
+
+#.TYPE_ATTR
+UL-PDCP-DelayResult-r13/excessDelay-r13 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_excessDelay_r13_vals_ext
+
+#.TYPE_ATTR
+MeasResultSSTD-r13/subframeBoundaryOffsetResult-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_subframeBoundaryOffsetResult_r13_fmt)
+
+#.FN_BODY SoundingRS-UL-ConfigDedicated/setup/duration
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+#.TYPE_ATTR
+SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
+
+#.FN_HDR MasterInformationBlock
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock");
+
+#.FN_HDR SystemInformation
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation [ ");
+
+#.FN_BODY SystemInformation
+
+%(DEFAULT_BODY)s
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "]");
+
+#.FN_HDR SystemInformationBlockType1
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationBlockType1");
+
+#.FN_HDR SystemInformationBlockType2
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB2 ");
+
+#.FN_HDR SystemInformationBlockType3
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB3 ");
+
+#.FN_HDR SystemInformationBlockType4
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB4 ");
+
+#.FN_HDR SystemInformationBlockType5
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB5 ");
+
+#.FN_HDR SystemInformationBlockType6
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB6 ");
+
+#.FN_HDR SystemInformationBlockType7
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB7 ");
+
+#.FN_HDR SystemInformationBlockType8
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB8 ");
+
+#.FN_HDR SystemInformationBlockType9
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB9 ");
+
+#.FN_HDR SystemInformationBlockType10
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB10 ");
+
+#.FN_HDR SystemInformationBlockType11
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB11 ");
+
+#.FN_HDR SystemInformationBlockType12-r9
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB12 ");
+
+#.FN_HDR SystemInformationBlockType13-r9
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB13 ");
+
+#.FN_HDR SystemInformationBlockType14-r11
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB14 ");
+
+#.FN_HDR SystemInformationBlockType15-r11
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB15 ");
+
+#.FN_HDR SystemInformationBlockType16-r11
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB16 ");
+
+#.FN_HDR SystemInformationBlockType17-r12
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB17 ");
+
+#.FN_HDR SystemInformationBlockType18-r12
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB18 ");
+
+#.FN_HDR SystemInformationBlockType19-r12
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB19 ");
+
+#.FN_HDR SystemInformationBlockType20-r13
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB20 ");
+
+#.FN_HDR MBSFNAreaConfiguration-r9
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBSFNAreaConfiguration-r9");
+
+#.FN_HDR MBMSCountingRequest-r10
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCountingRequest-r10");
+
+#.FN_HDR Paging
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Paging");
+
+#.FN_HDR RRCConnectionReestablishment
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishment");
+
+#.FN_HDR RRCConnectionReestablishmentReject
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentReject");
+
+#.FN_HDR RRCConnectionReject
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject");
+
+#.FN_HDR RRCConnectionSetup
+ mac_lte_info* p_mac_lte_info;
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup");
+
+#.FN_HDR CSFBParametersResponseCDMA2000
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersResponseCDMA2000");
+
+#.FN_HDR DLInformationTransfer
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "DLInformationTransfer");
+
+#.FN_HDR HandoverFromEUTRAPreparationRequest
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromEUTRAPreparationRequest");
+
+#.FN_HDR MobilityFromEUTRACommand
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MobilityFromEUTRACommand");
+
+#.FN_HDR RRCConnectionReconfiguration
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfiguration");
+
+#.FN_HDR RRCConnectionRelease
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease");
+
+#.FN_HDR SecurityModeCommand
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand");
+
+#.FN_HDR UECapabilityEnquiry
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry");
+
+#.FN_HDR CounterCheck
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheck");
+
+#.FN_HDR UEInformationRequest-r9
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationRequest-r9");
+
+#.FN_HDR LoggedMeasurementConfiguration-r10
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "LoggedMeasurementConfiguration-r10");
+
+#.FN_HDR RNReconfiguration-r10
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RNReconfiguration-r10");
+
+#.FN_HDR RRCConnectionReestablishmentRequest
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentRequest");
+
+#.FN_HDR RRCConnectionRequest
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest");
+
+#.FN_HDR CSFBParametersRequestCDMA2000
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersRequestCDMA2000");
+
+#.FN_HDR MeasurementReport
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport");
+
+#.FN_HDR RRCConnectionReconfigurationComplete
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfigurationComplete");
+
+#.FN_HDR RRCConnectionReestablishmentComplete
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentComplete");
+
+#.FN_HDR RRCConnectionSetupComplete
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete");
+
+#.FN_HDR SecurityModeComplete
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete");
+
+#.FN_BODY SecurityModeFailure
+ mac_lte_info *p_mac_lte_info;
+%(DEFAULT_BODY)s
+ /* Look for UE identifier */
+ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0);
+
+ if (p_mac_lte_info != NULL) {
+ /* Inform PDCP that the UE failed to execute the securityModeCommand */
+ set_pdcp_lte_security_algorithms_failed(p_mac_lte_info->ueid);
+ }
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure");
+
+
+#.FN_HDR UECapabilityInformation
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation");
+
+#.FN_HDR ULHandoverPreparationTransfer
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "ULHandoverPreparationTransfer");
+
+#.FN_HDR ULInformationTransfer
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "ULInformationTransfer");
+
+#.FN_HDR CounterCheckResponse
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse");
+
+#.FN_HDR UEInformationResponse-r9
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationResponse-r9");
+
+#.FN_HDR ProximityIndication-r9
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "ProximityIndication-r9");
+
+#.FN_HDR RNReconfigurationComplete-r10
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RNReconfigurationComplete-r10");
+
+#.FN_HDR MBMSCountingResponse-r10
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCountingResponse-r10");
+
+#.FN_HDR InterFreqRSTDMeasurementIndication-r10
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "InterFreqRSTDMeasurementIndication-r10");
+
+#.FN_HDR UEAssistanceInformation-r11
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UEAssistanceInformation-r11");
+
+#.FN_HDR InDeviceCoexIndication-r11
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "InDeviceCoexIndication-r11");
+
+#.FN_HDR MBMSInterestIndication-r11
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSInterestIndication-r11");
+
+#.FN_HDR SCGFailureInformation-r12
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SCGFailureInformation-r12");
+
+#.FN_HDR SidelinkUEInformation-r12
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SidelinkUEInformation-r12");
+
+#.FN_HDR MasterInformationBlock-SL
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock-SL");
+
+#.FN_BODY Paging/systemInfoModification
+%(DEFAULT_BODY)s
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " (systemInfoModification)");
+ expert_add_info(actx->pinfo, actx->created_item, &ei_lte_rrc_sibs_changing);
+
+#.FN_BODY Paging/pagingRecordList
+ /* Number of items is (last 3 bits of first byte and first bit of second) + 1 */
+ guint16 number_of_records = ((tvb_get_ntohs(tvb, 0) >> 7) & 0x0f) + 1;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%u PagingRecords)", number_of_records);
+
+#.FN_BODY Paging-v13xx-IEs/systemInfoModification-eDRX-r13
+%(DEFAULT_BODY)s
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " (systemInfoModification-eDRX-r13)");
+ expert_add_info(actx->pinfo, actx->created_item, &ei_lte_rrc_sibs_changing_edrx);
+
+#.FN_BODY MasterInformationBlock/systemFrameNumber VAL_PTR=&value_tvb
+ tvbuff_t *value_tvb;
+ guint32 sfn;
+%(DEFAULT_BODY)s
+ /* Show SFN in info column */
+ sfn = tvb_get_guint8(value_tvb, 0);
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (SFN=%%u)", sfn);
+
+#.FN_BODY SystemInformationBlockType1/systemInfoValueTag VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ /* Track whether systemInfoValue has changed since last seen, indicating new SI config
+ TODO: add link back to previous config and (if known) time since previous config
+ was first seen */
+ if (!actx->pinfo->fd->flags.visited) {
+ if (system_info_value_current_set && (value != system_info_value_current)) {
+ /* Add entry to the hash table. Offset by one to distinguish 0 from lookup failure */
+ g_hash_table_insert(lte_rrc_system_info_value_changed_hash, GUINT_TO_POINTER(actx->pinfo->num),
+ GUINT_TO_POINTER(system_info_value_current+1));
+ }
+ system_info_value_current_set = TRUE;
+ system_info_value_current = value;
+ }
+ else {
+ /* Look up indication of changed info value from hash table */
+ gpointer p_previous = g_hash_table_lookup(lte_rrc_system_info_value_changed_hash, GUINT_TO_POINTER(actx->pinfo->num));
+ if (p_previous != NULL) {
+ /* Subtract one from stored result to get previous value */
+ guint32 previous = GPOINTER_TO_UINT(p_previous) - 1;
+ expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_si_info_value_changed,
+ "SI Info Value changed (now %%u, was %%u)", value, previous);
+ }
+ }
+
+#.FN_BODY Paging/etws-Indication
+%(DEFAULT_BODY)s
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " (ETWS)");
+ expert_add_info(actx->pinfo, actx->created_item, &ei_lte_rrc_earthquake_warning_sys);
+
+#.FN_BODY Paging-v920-IEs/cmas-Indication-r9
+%(DEFAULT_BODY)s
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " (CMAS)");
+ expert_add_info(actx->pinfo, actx->created_item, &ei_lte_rrc_commercial_mobile_alert_sys);
+
+#.FN_BODY RadioResourceConfigDedicated
+ private_data_set_simult_pucch_pusch_cell_type(actx, SIMULT_PUCCH_PUSCH_PCELL);
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioResourceConfigDedicatedPSCell-r12
+ private_data_set_simult_pucch_pusch_cell_type(actx, SIMULT_PUCCH_PUSCH_PSCELL);
+%(DEFAULT_BODY)s
+
+#.FN_BODY DRB-ToAddMod
+ struct mac_lte_info *p_mac_lte_info;
+ struct rlc_lte_info *p_rlc_lte_info;
+ /* Get the struct and clear it out */
+ drb_mapping_t *drb_mapping = private_data_get_drb_mapping(actx);
+ memset(drb_mapping, 0, sizeof(*drb_mapping));
+%(DEFAULT_BODY)s
+ /* Need UE identifier */
+ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0);
+ if (p_mac_lte_info) {
+ drb_mapping->ueid = p_mac_lte_info->ueid;
+ /* Tell MAC about this mapping */
+ set_mac_lte_channel_mapping(drb_mapping);
+ }
+
+ /* Also tell RLC how many PDCP sequence number bits and wether it should use extended LI */
+ p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0);
+ if (p_rlc_lte_info) {
+ if (drb_mapping->pdcp_sn_size_present) {
+ set_rlc_lte_drb_pdcp_seqnum_length(actx->pinfo,
+ p_rlc_lte_info->ueid,
+ drb_mapping->drbid,
+ drb_mapping->pdcp_sn_size);
+ }
+ if (drb_mapping->rlcMode_present) {
+ set_rlc_lte_drb_li_field(actx->pinfo,
+ p_rlc_lte_info->ueid,
+ drb_mapping->drbid,
+ drb_mapping->rlc_ul_ext_li_field,
+ drb_mapping->rlc_dl_ext_li_field);
+ }
+ }
+
+ /* Clear out the struct again */
+ memset(&drb_mapping, 0, sizeof(drb_mapping));
+
+
+#.FN_BODY DRB-Identity VAL_PTR=&value
+ guint32 value;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->drbid = (guint8)value;
+ }
+
+#.FN_BODY RLC-Config VAL_PTR=&value
+ guint32 value;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->rlcMode = (value==0) ? RLC_AM_MODE : RLC_UM_MODE;
+ mapping->rlcMode_present = TRUE;
+
+ if (mapping->rlcMode == RLC_AM_MODE) {
+ mapping->pdcp_sn_size = 12;
+ mapping->pdcp_sn_size_present = TRUE;
+ }
+ }
+
+#.FN_BODY RLC-Config-v1250/ul-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field
+ gboolean ext_li_field;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->rlc_ul_ext_li_field = ext_li_field;
+ }
+
+#.FN_BODY RLC-Config-v1250/dl-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field
+ gboolean ext_li_field;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->rlc_dl_ext_li_field = ext_li_field;
+ }
+
+#.FN_BODY RLC-Config-v13xx/ul-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn
+ gboolean ext_am_sn;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->rlc_ul_ext_am_sn = ext_am_sn;
+ }
+
+#.FN_BODY RLC-Config-v13xx/dl-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn
+ gboolean ext_am_sn;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->rlc_dl_ext_am_sn = ext_am_sn;
+ }
+
+#.FN_BODY DRB-ToAddMod/logicalChannelIdentity VAL_PTR=&value
+ guint32 value;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->lcid = (guint8)value;
+ mapping->lcid_present = TRUE;
+ }
+
+#.FN_BODY SN-FieldLength VAL_PTR=&value
+ guint32 value;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->um_sn_length = (value==0) ? 5 : 10;
+ mapping->um_sn_length_present = TRUE;
+ }
+
+#.FN_BODY LogicalChannelConfig/ul-SpecificParameters/priority VAL_PTR=&value
+ guint32 value;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->ul_priority = value;
+ mapping->ul_priority_present = TRUE;
+ }
+
+#.FN_BODY PDCP-Config/rlc-UM/pdcp-SN-Size VAL_PTR=&value
+ guint32 value;
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->pdcp_sn_size = (value==0) ? 7 : 12;
+ mapping->pdcp_sn_size_present = TRUE;
+ }
+
+#.FN_BODY PDCP-Config/eag_2/pdcp-SN-Size-v1130
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->pdcp_sn_size = 15;
+ mapping->pdcp_sn_size_present = TRUE;
+ }
+
+#.FN_BODY PDCP-Config/eag_4/pdcp-SN-Size-v13xx
+ drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
+%(DEFAULT_BODY)s
+ if (mapping != NULL) {
+ mapping->pdcp_sn_size = 18;
+ mapping->pdcp_sn_size_present = TRUE;
+ }
+
+#.FN_BODY NeighCellsInfo-r12/transmissionModeList-r12 VAL_PTR=&tm_list_tvb
+ tvbuff_t *tm_list_tvb=NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (tm_list_tvb) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_transmissionModeList_r12);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm1, tm_list_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm2, tm_list_tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm3, tm_list_tvb, 2, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm4, tm_list_tvb, 3, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm6, tm_list_tvb, 4, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm8, tm_list_tvb, 5, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm9, tm_list_tvb, 6, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm10, tm_list_tvb, 7, 1, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY PUCCH-ConfigDedicated-v1020/simultaneousPUCCH-PUSCH-r10
+ mac_lte_info* p_mac_lte_info;
+
+%(DEFAULT_BODY)s
+ /* Look for UE identifier */
+ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0);
+ if (p_mac_lte_info != NULL) {
+ /* Tell MAC to use simultaneous PUCCH/PUSCH configuration */
+ set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, private_data_get_simult_pucch_pusch_cell_type(actx), TRUE, actx->pinfo);
+ }
+
+#.TYPE_ATTR
+PUCCH-ConfigDedicated-v13xy/codebooksizeDetermination-r13 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_codebooksizeDetermination_r13_vals)
+
+#.FN_BODY RACH-ConfigCommon/preambleInfo
+%(DEFAULT_BODY)s
+ /* Initialise to invalid value */
+ private_data_set_ra_preambles(actx, 0);
+
+#.FN_BODY RACH-ConfigCommon/preambleInfo/numberOfRA-Preambles VAL_PTR=&value
+ guint value;
+%(DEFAULT_BODY)s
+ /* This is mandatory, store value */
+ private_data_set_ra_preambles(actx, value);
+
+#.FN_BODY RACH-ConfigCommon/preambleInfo/preamblesGroupAConfig/sizeOfRA-PreamblesGroupA VAL_PTR=&value
+ guint ra_value, value;
+%(DEFAULT_BODY)s
+ /* Retrived stored value for RA (both Group A & Group B) */
+ ra_value = private_data_get_ra_preambles(actx);
+ if (value > ra_value) {
+ /* Something is wrong if A has more RAPIDs than A & B combined! */
+ expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_too_many_group_a_rapids,
+ "Group A size (%%s) > Total RA size (%%s)!",
+ val_to_str_const(value, lte_rrc_T_sizeOfRA_PreamblesGroupA_vals, "Unknown"),
+ val_to_str_const(ra_value, lte_rrc_T_numberOfRA_Preambles_vals, "Unknown"));
+
+ }
+ /* Tell MAC dissector so that it can say for RAPIDs whether A, B, non-RA */
+ set_mac_lte_rapid_ranges((value+1)*4, (ra_value+1)*4);
+ /* Reset again */
+ private_data_set_ra_preambles(actx, 0);
+
+#.FN_BODY RACH-ConfigCommon-v1250/txFailParams-r12/connEstFailOffset-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dB");
+
+#.FN_BODY DRX-Config/setup/onDurationTimer VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ /* Set 'configured' state so that config can be examine once complete! */
+ config->configured = TRUE;
+ config->onDurationTimer = drx_lookup_onDurationTimer(value);
+
+#.FN_BODY DRX-Config/setup/drx-InactivityTimer VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->inactivityTimer = drx_lookup_inactivityTimer(value);
+
+#.FN_BODY DRX-Config/setup/drx-RetransmissionTimer VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->retransmissionTimer = drx_lookup_retransmissionTimer(value);
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->longCycle = drx_lookup_longCycle(value);
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf10 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf20 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf32 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf40 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf64 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf80 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf128 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf160 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf256 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf320 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf512 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf640 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf1024 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf1280 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf2048 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf2560 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config/setup/shortDRX/shortDRX-Cycle VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->shortCycleConfigured = TRUE;
+ config->shortCycle = drx_lookup_shortCycle(value);
+
+#.FN_BODY DRX-Config/setup/shortDRX/drxShortCycleTimer VAL_PTR=&timer
+ guint32 timer;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->shortCycleTimer = timer;
+
+#.FN_FTR DRX-Config/setup/shortDRX/drxShortCycleTimer
+ proto_item_append_text(actx->created_item, " shortDRX-Cycle%s", plurality(timer, "", "s"));
+
+#.FN_BODY DRX-Config-v1130/drx-RetransmissionTimer-v1130 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->retransmissionTimer = 0;
+
+#.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->longCycle = drx_lookup_longCycle_v1130(value);
+
+#.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130/sf60-v1130 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130/sf70-v1130 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ config->cycleOffset = value;
+
+#.FN_BODY DRX-Config-v1130/shortDRX-Cycle-v1130 VAL_PTR=&value
+ guint32 value;
+ drx_config_t* config = private_data_get_drx_config(actx);
+%(DEFAULT_BODY)s
+ /* Presumably config->shortCycleConfigured will be set... */
+ config->shortCycle = 4;
+
+#.FN_BODY DRX-Config/release
+ mac_lte_info* p_mac_lte_info;
+%(DEFAULT_BODY)s
+ /* Look for UE identifier */
+ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0);
+ if (p_mac_lte_info != NULL) {
+ /* If found, tell MAC to release DRX config */
+ set_mac_lte_drx_config_release(p_mac_lte_info->ueid, actx->pinfo);
+ }
+
+#.FN_BODY RRCConnectionSetup
+ /* Look for UE identifier */
+ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0);
+ if (p_mac_lte_info != NULL) {
+ /* If found, tell MAC to release DRX config coming from a previous RRC connection */
+ /* We do release the configuration here instead of RRC Connection Release message */
+ /* as the UE could have locally dropped the previous RRC Connection */
+ set_mac_lte_drx_config_release(p_mac_lte_info->ueid, actx->pinfo);
+ /* Also tell MAC to release extended BSR sizes configuration */
+ set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, FALSE, actx->pinfo);
+ /* Also tell MAC to release simutaneous PUCCH/PUSCH configuration */
+ set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, SIMULT_PUCCH_PUSCH_PCELL, FALSE, actx->pinfo);
+ set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, SIMULT_PUCCH_PUSCH_PSCELL, FALSE, actx->pinfo);
+ /* TODO: also release PDCP security config here */
+ }
+%(DEFAULT_BODY)s
+
+
+#.FN_BODY SecurityAlgorithmConfig
+ pdcp_lte_info *p_pdcp_lte_info;
+ pdcp_security_info_t *p_security_algorithms;
+%(DEFAULT_BODY)s
+ p_security_algorithms = private_data_pdcp_security_algorithms(actx);
+ p_security_algorithms->configuration_frame = actx->pinfo->num;
+ p_security_algorithms->previous_configuration_frame = 0;
+ p_security_algorithms->previous_integrity = eia0;
+ p_security_algorithms->previous_ciphering = eea0;
+
+ /* Look for UE identifier */
+ p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_pdcp_lte, 0);
+ if (p_pdcp_lte_info != NULL) {
+ /* Configure algorithms */
+ set_pdcp_lte_security_algorithms(p_pdcp_lte_info->ueid, p_security_algorithms);
+ }
+
+#.FN_BODY CipheringAlgorithm-r12 VAL_PTR=&value
+ guint32 value;
+ pdcp_security_info_t *p_security_algorithms;
+%(DEFAULT_BODY)s
+ p_security_algorithms = private_data_pdcp_security_algorithms(actx);
+ p_security_algorithms->ciphering = (enum security_ciphering_algorithm_e)value;
+
+#.FN_BODY SecurityAlgorithmConfig/integrityProtAlgorithm VAL_PTR=&value
+ guint32 value;
+ pdcp_security_info_t *p_security_algorithms;
+%(DEFAULT_BODY)s
+ p_security_algorithms = private_data_pdcp_security_algorithms(actx);
+ p_security_algorithms->integrity = (enum security_integrity_algorithm_e)value;
+
+#.FN_BODY SchedulingRequestConfig/setup/sr-ConfigIndex VAL_PTR=&value
+ guint32 value;
+ guint16 periodicity, subframe_offset;
+ proto_item *ti;
+ proto_tree *subtree;
+ gint index_offset = offset;
+%(DEFAULT_BODY)s
+ /* Break config index into its parts */
+ sr_lookup_configindex(value, &periodicity, &subframe_offset);
+ /* Show parts as generated fields */
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_sr_ConfigIndex);
+ ti = proto_tree_add_uint(subtree, hf_lte_rrc_sr_config_periodicity, tvb, index_offset>>3, 1, periodicity);
+ PROTO_ITEM_SET_GENERATED(ti);
+ ti = proto_tree_add_uint(subtree, hf_lte_rrc_sr_config_subframe_offset, tvb, index_offset>>3, 1, subframe_offset);
+ PROTO_ITEM_SET_GENERATED(ti);
+
+
+#.FN_BODY FreqBandIndicator VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ set_freq_band_indicator(value, actx);
+
+#.FN_FTR BandParameters-r10/bandEUTRA-r10
+ remove_last_freq_band_indicator(actx);
+
+#.FN_BODY InterFreqBandInfo
+ meas_capabilities_item_band_mappings_t *mappings;
+ proto_item *it;
+%(DEFAULT_BODY)s
+ mappings = private_data_meas_capabilities_item_band_mappings(actx);
+ if (mappings->number_of_interfreq_serving_read < mappings->number_of_bands_set) {
+ guint16 serving_band = mappings->band_by_item[mappings->number_of_interfreq_serving_read];
+ guint16 target_band = mappings->band_by_item[mappings->number_of_interfreq_target_read++];
+ if (mappings->number_of_interfreq_target_read == mappings->number_of_bands_set) {
+ mappings->number_of_interfreq_target_read = 0;
+ mappings->number_of_interfreq_serving_read++;
+ }
+
+ /* Add a generated item showing serving & target band for this entry */
+ it = proto_tree_add_uint(tree, hf_lte_rrc_bandEUTRA, tvb, 0, 0, serving_band);
+ proto_item_append_text(it, " -> band %%u", target_band);
+ PROTO_ITEM_SET_GENERATED(it);
+ }
+
+#.FN_BODY UE-EUTRA-Capability/measParameters
+ meas_capabilities_item_band_mappings_t *mappings;
+%(DEFAULT_BODY)s
+ /* Clear band mapping once measParameters IE has been decoded */
+ mappings = private_data_meas_capabilities_item_band_mappings(actx);
+ mappings->number_of_bands_set = 0;
+
+#.FN_BODY ReleaseCause VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [cause=%%s]",
+ val_to_str(value, lte_rrc_ReleaseCause_vals, "Unknown"));
+
+#.FN_BODY VisitedCellInfo-r12/timeSpent-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "s");
+
+#.FN_BODY WLAN-OffloadConfig-r12/thresholdChannelUtilization-r12/thresholdChannelUtilizationLow-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " (BSS load)");
+
+#.FN_BODY WLAN-OffloadConfig-r12/thresholdChannelUtilization-r12/thresholdChannelUtilizationHigh-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " (BSS load)");
+
+#.FN_BODY WLAN-backhaulRate-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " Kbps");
+
+#.FN_BODY SL-DiscResourcePool-r12/eag_1/txParamsAddNeighFreq-r13/referenceSignalPower
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.TYPE_ATTR
+SL-SysInfoReport-r13/cellSelectionInfo-r13/q-RxLevMinOffset-r13 STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
+
+#.FN_BODY SL-SysInfoReport-r13/referenceSignalPower-r13
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
+
+#.FN_BODY P0-SL-r12
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, "dBm");
diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
new file mode 100644
index 0000000000..539b78c63b
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
@@ -0,0 +1,3769 @@
+/* packet-lte-rrc-template.c
+ * Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
+ * Radio Resource Control (RRC) protocol specification
+ * (3GPP TS 36.331 V13.0.0 Release 13) packet dissection
+ * Copyright 2008, Vincent Helfre
+ * Copyright 2009-2016, Pascal Quantin
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+
+#include <epan/packet.h>
+#include <epan/to_str.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+#include <epan/reassemble.h>
+#include <epan/exceptions.h>
+#include <epan/show_exception.h>
+#include <epan/proto_data.h>
+
+#include <wsutil/str_util.h>
+
+#include "packet-per.h"
+#include "packet-rrc.h"
+#include "packet-gsm_a_common.h"
+#include "packet-lpp.h"
+#include "packet-gsm_map.h"
+#include "packet-cell_broadcast.h"
+#include "packet-mac-lte.h"
+#include "packet-rlc-lte.h"
+#include "packet-pdcp-lte.h"
+#include "packet-lte-rrc.h"
+
+#define PNAME "LTE Radio Resource Control (RRC) protocol"
+#define PSNAME "LTE RRC"
+#define PFNAME "lte_rrc"
+
+void proto_register_lte_rrc(void);
+void proto_reg_handoff_lte_rrc(void);
+
+static dissector_handle_t nas_eps_handle = NULL;
+static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
+static dissector_handle_t rrc_sys_info_cont_handle = NULL;
+static dissector_handle_t gsm_a_dtap_handle = NULL;
+static dissector_handle_t gsm_rlcmac_dl_handle = NULL;
+
+static GHashTable *lte_rrc_etws_cmas_dcs_hash = NULL;
+
+/* Keep track of where/how the System Info value has changed */
+static GHashTable *lte_rrc_system_info_value_changed_hash = NULL;
+static guint8 system_info_value_current;
+static gboolean system_info_value_current_set;
+
+
+extern int proto_mac_lte;
+extern int proto_rlc_lte;
+extern int proto_pdcp_lte;
+
+
+/* Include constants */
+#include "packet-lte-rrc-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_lte_rrc = -1;
+
+#include "packet-lte-rrc-hf.c"
+
+static int hf_lte_rrc_eutra_cap_feat_group_ind_1 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_2 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_3 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_4 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_5 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_6 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_7 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_8 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_9 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_10 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_11 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_12 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_13 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_14 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_15 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_16 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_17 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_18 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_19 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_20 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_21 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_22 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_23 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_24 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_25 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_26 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_27 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_28 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_29 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_30 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_31 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_32 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_33 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_34 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_35 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_36 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_37 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_38 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_39 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_40 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_41 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_42 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_43 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_44 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_45 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_46 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_47 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_48 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_49 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_50 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_51 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_52 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_53 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_54 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_55 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_56 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_57 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_58 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_59 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_60 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_61 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_62 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_63 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_64 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_101 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_102 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_103 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_104 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_105 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_106 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_107 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_108 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_109 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_110 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_111 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_112 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_113 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_114 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_115 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_116 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_117 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_118 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_119 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_120 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_121 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_122 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_123 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_124 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_125 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_126 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_127 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_128 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_129 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_130 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_131 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_132 = -1;
+static int hf_lte_rrc_serialNumber_gs = -1;
+static int hf_lte_rrc_serialNumber_msg_code = -1;
+static int hf_lte_rrc_serialNumber_upd_nb = -1;
+static int hf_lte_rrc_warningType_value = -1;
+static int hf_lte_rrc_warningType_emergency_user_alert = -1;
+static int hf_lte_rrc_warningType_popup = -1;
+static int hf_lte_rrc_warningMessageSegment_nb_pages = -1;
+static int hf_lte_rrc_warningMessageSegment_decoded_page = -1;
+static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1 = -1;
+static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2 = -1;
+static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1 = -1;
+static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2 = -1;
+static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit1 = -1;
+static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit2 = -1;
+static int hf_lte_rrc_sr_config_periodicity = -1;
+static int hf_lte_rrc_sr_config_subframe_offset = -1;
+static int hf_lte_rrc_cdma_time = -1;
+static int hf_lte_rrc_utc_time = -1;
+static int hf_lte_rrc_local_time = -1;
+static int hf_lte_rrc_absolute_time = -1;
+static int hf_lte_rrc_transmissionModeList_r12_tm1 = -1;
+static int hf_lte_rrc_transmissionModeList_r12_tm2 = -1;
+static int hf_lte_rrc_transmissionModeList_r12_tm3 = -1;
+static int hf_lte_rrc_transmissionModeList_r12_tm4 = -1;
+static int hf_lte_rrc_transmissionModeList_r12_tm6 = -1;
+static int hf_lte_rrc_transmissionModeList_r12_tm8 = -1;
+static int hf_lte_rrc_transmissionModeList_r12_tm9 = -1;
+static int hf_lte_rrc_transmissionModeList_r12_tm10 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30 = -1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31 = -1;
+static int hf_lte_rrc_sib11_fragments = -1;
+static int hf_lte_rrc_sib11_fragment = -1;
+static int hf_lte_rrc_sib11_fragment_overlap = -1;
+static int hf_lte_rrc_sib11_fragment_overlap_conflict = -1;
+static int hf_lte_rrc_sib11_fragment_multiple_tails = -1;
+static int hf_lte_rrc_sib11_fragment_too_long_fragment = -1;
+static int hf_lte_rrc_sib11_fragment_error = -1;
+static int hf_lte_rrc_sib11_fragment_count = -1;
+static int hf_lte_rrc_sib11_reassembled_in = -1;
+static int hf_lte_rrc_sib11_reassembled_length = -1;
+static int hf_lte_rrc_sib11_reassembled_data = -1;
+static int hf_lte_rrc_sib12_fragments = -1;
+static int hf_lte_rrc_sib12_fragment = -1;
+static int hf_lte_rrc_sib12_fragment_overlap = -1;
+static int hf_lte_rrc_sib12_fragment_overlap_conflict = -1;
+static int hf_lte_rrc_sib12_fragment_multiple_tails = -1;
+static int hf_lte_rrc_sib12_fragment_too_long_fragment = -1;
+static int hf_lte_rrc_sib12_fragment_error = -1;
+static int hf_lte_rrc_sib12_fragment_count = -1;
+static int hf_lte_rrc_sib12_reassembled_in = -1;
+static int hf_lte_rrc_sib12_reassembled_length = -1;
+static int hf_lte_rrc_sib12_reassembled_data = -1;
+
+/* Initialize the subtree pointers */
+static int ett_lte_rrc = -1;
+
+#include "packet-lte-rrc-ett.c"
+
+static gint ett_lte_rrc_featureGroupIndicators = -1;
+static gint ett_lte_rrc_featureGroupIndRel9Add = -1;
+static gint ett_lte_rrc_featureGroupIndRel10 = -1;
+static gint ett_lte_rrc_absTimeInfo = -1;
+static gint ett_lte_rrc_nas_SecurityParam = -1;
+static gint ett_lte_rrc_targetRAT_MessageContainer = -1;
+static gint ett_lte_rrc_siPsiSibContainer = -1;
+static gint ett_lte_rrc_dedicatedInfoNAS = -1;
+static gint ett_lte_rrc_timeInfo = -1;
+static gint ett_lte_rrc_serialNumber = -1;
+static gint ett_lte_rrc_warningType = -1;
+static gint ett_lte_rrc_dataCodingScheme = -1;
+static gint ett_lte_rrc_warningMessageSegment = -1;
+static gint ett_lte_rrc_interBandTDD_CA_WithDifferentConfig = -1;
+static gint ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12 = -1;
+static gint ett_lte_rrc_codebook_HARQ_ACK_r13 = -1;
+static gint ett_lte_rrc_sr_ConfigIndex = -1;
+static gint ett_lte_rrc_transmissionModeList_r12 = -1;
+static gint ett_lte_rrc_modifiedMPR_Behavior_r10 = -1;
+static gint ett_lte_rrc_sib11_fragment = -1;
+static gint ett_lte_rrc_sib11_fragments = -1;
+static gint ett_lte_rrc_sib12_fragment = -1;
+static gint ett_lte_rrc_sib12_fragments = -1;
+
+static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT;
+static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT;
+static expert_field ei_lte_rrc_sibs_changing = EI_INIT;
+static expert_field ei_lte_rrc_sibs_changing_edrx = EI_INIT;
+static expert_field ei_lte_rrc_earthquake_warning_sys = EI_INIT;
+static expert_field ei_lte_rrc_commercial_mobile_alert_sys = EI_INIT;
+static expert_field ei_lte_rrc_unexpected_type_value = EI_INIT;
+static expert_field ei_lte_rrc_unexpected_length_value = EI_INIT;
+static expert_field ei_lte_rrc_too_many_group_a_rapids = EI_INIT;
+static expert_field ei_lte_rrc_invalid_drx_config = EI_INIT;
+
+static reassembly_table lte_rrc_sib11_reassembly_table;
+static reassembly_table lte_rrc_sib12_reassembly_table;
+
+static const fragment_items lte_rrc_sib11_frag_items = {
+ &ett_lte_rrc_sib11_fragment,
+ &ett_lte_rrc_sib11_fragments,
+ &hf_lte_rrc_sib11_fragments,
+ &hf_lte_rrc_sib11_fragment,
+ &hf_lte_rrc_sib11_fragment_overlap,
+ &hf_lte_rrc_sib11_fragment_overlap_conflict,
+ &hf_lte_rrc_sib11_fragment_multiple_tails,
+ &hf_lte_rrc_sib11_fragment_too_long_fragment,
+ &hf_lte_rrc_sib11_fragment_error,
+ &hf_lte_rrc_sib11_fragment_count,
+ &hf_lte_rrc_sib11_reassembled_in,
+ &hf_lte_rrc_sib11_reassembled_length,
+ &hf_lte_rrc_sib11_reassembled_data,
+ "SIB11 warning message segments"
+};
+
+static const fragment_items lte_rrc_sib12_frag_items = {
+ &ett_lte_rrc_sib12_fragment,
+ &ett_lte_rrc_sib12_fragments,
+ &hf_lte_rrc_sib12_fragments,
+ &hf_lte_rrc_sib12_fragment,
+ &hf_lte_rrc_sib12_fragment_overlap,
+ &hf_lte_rrc_sib12_fragment_overlap_conflict,
+ &hf_lte_rrc_sib12_fragment_multiple_tails,
+ &hf_lte_rrc_sib12_fragment_too_long_fragment,
+ &hf_lte_rrc_sib12_fragment_error,
+ &hf_lte_rrc_sib12_fragment_count,
+ &hf_lte_rrc_sib12_reassembled_in,
+ &hf_lte_rrc_sib12_reassembled_length,
+ &hf_lte_rrc_sib12_reassembled_data,
+ "SIB12 warning message segments"
+};
+
+/* Forward declarations */
+static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_1_val = {
+ "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 & 2-2 - Supported",
+ "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 & 2-2 - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_2_val = {
+ "Simultaneous CQI & ACK/NACK on PUCCH (format 2a/2b); Absolute TPC command for PUSCH; Resource alloc type 1 for PDSCH; Periodic CQI/PMI/RI report on PUCCH: Mode 2-0 & 2-1 - Supported",
+ "Simultaneous CQI & ACK/NACK on PUCCH (format 2a/2b); Absolute TPC command for PUSCH; Resource alloc type 1 for PDSCH; Periodic CQI/PMI/RI report on PUCCH: Mode 2-0 & 2-1 - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_3_val = {
+ "5bit RLC UM SN; 7bit PDCP SN - Supported",
+ "5bit RLC UM SN; 7bit PDCP SN - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_4_val = {
+ "Short DRX cycle - Supported",
+ "Short DRX cycle - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_5_val = {
+ "Long DRX cycle; DRX command MAC control element - Supported",
+ "Long DRX cycle; DRX command MAC control element - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_6_val = {
+ "Prioritised bit rate - Supported",
+ "Prioritised bit rate - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_7_val = {
+ "RLC UM - Supported",
+ "RLC UM - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_8_val = {
+ "EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover - Supported",
+ "EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_9_val = {
+ "EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover - Supported",
+ "EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover - Not Supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_10_val = {
+ "EUTRA RRC_CONNECTED to GERAN (Packet_) Idle by Cell Change Order; EUTRA RRC_CONNECTED to GERAN (Packet_) Idle by Cell Change Order with NACC - Supported",
+ "EUTRA RRC_CONNECTED to GERAN (Packet_) Idle by Cell Change Order; EUTRA RRC_CONNECTED to GERAN (Packet_) Idle by Cell Change Order with NACC - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_11_val = {
+ "EUTRA RRC_CONNECTED to CDMA2000 1xRTT CS Active handover - Supported",
+ "EUTRA RRC_CONNECTED to CDMA2000 1xRTT CS Active handover - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_12_val = {
+ "EUTRA RRC_CONNECTED to CDMA2000 HRPD Active handover - Supported",
+ "EUTRA RRC_CONNECTED to CDMA2000 HRPD Active handover - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_13_val = {
+ "Inter-frequency handover (within FDD or TDD) - Supported",
+ "Inter-frequency handover (within FDD or TDD) - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_14_val = {
+ "Measurement reporting event: Event A4 - Neighbour > threshold; Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 - Supported",
+ "Measurement reporting event: Event A4 - Neighbour > threshold; Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_15_val = {
+ "Measurement reporting event: Event B1 - Neighbour > threshold - Supported",
+ "Measurement reporting event: Event B1 - Neighbour > threshold - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_16_val = {
+ "non-ANR related periodical measurement reporting - Supported",
+ "non-ANR related periodical measurement reporting - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_17_val = {
+ "ANR related intra-frequency measurement reporting events - Supported",
+ "ANR related intra-frequency measurement reporting events - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_18_val = {
+ "ANR related inter-frequency measurement reporting events - Supported",
+ "ANR related inter-frequency measurement reporting events - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_19_val = {
+ "ANR related inter-RAT measurement reporting events - Supported",
+ "ANR related inter-RAT measurement reporting events - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_20_val = {
+ "SRB1 and SRB2 for DCCH + 8x AM DRB; SRB1 and SRB2 for DCCH + 5x AM DRB + 3x UM DRB (if indicator 7 is supported) - Supported",
+ "SRB1 and SRB2 for DCCH + 8x AM DRB; SRB1 and SRB2 for DCCH + 5x AM DRB + 3x UM DRB (if indicator 7 is supported) - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_21_val = {
+ "Predefined intra- and inter-subframe frequency hopping for PUSCH with N_sb > 1; Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 - Supported",
+ "Predefined intra- and inter-subframe frequency hopping for PUSCH with N_sb > 1; Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_22_val = {
+ "UTRAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
+ "UTRAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_23_val = {
+ "GERAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
+ "GERAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_24_val = {
+ "1xRTT measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
+ "1xRTT measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_25_val = {
+ "Inter-frequency measurements and reporting in E-UTRA connected mode - Supported",
+ "Inter-frequency measurements and reporting in E-UTRA connected mode - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_26_val = {
+ "HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
+ "HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_27_val = {
+ "EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover - Supported",
+ "EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_28_val = {
+ "TTI bundling - Supported",
+ "TTI bundling - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_29_val = {
+ "Semi-Persistent Scheduling - Supported",
+ "Semi-Persistent Scheduling - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_30_val = {
+ "Handover between FDD and TDD - Supported",
+ "Handover between FDD and TDD - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_31_val = {
+ "Mechanisms defined for cells broadcasting multi band information - Supported",
+ "Mechanisms defined for cells broadcasting multi band information - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_32_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_33_val = {
+ "Inter-RAT ANR features for UTRAN FDD - Supported",
+ "Inter-RAT ANR features for UTRAN FDD - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_34_val = {
+ "Inter-RAT ANR features for GERAN - Supported",
+ "Inter-RAT ANR features for GERAN - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_35_val = {
+ "Inter-RAT ANR features for 1xRTT - Supported",
+ "Inter-RAT ANR features for 1xRTT - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_36_val = {
+ "Inter-RAT ANR features for HRPD - Supported",
+ "Inter-RAT ANR features for HRPD - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_37_val = {
+ "Inter-RAT ANR features for UTRAN TDD - Supported",
+ "Inter-RAT ANR features for UTRAN TDD - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_38_val = {
+ "EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover - Supported",
+ "EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_39_val = {
+ "UTRAN TDD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
+ "UTRAN TDD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_40_val = {
+ "EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover - Supported",
+ "EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_41_val = {
+ "Measurement reporting event: Event B1 - Neighbour > threshold for UTRAN FDD - Supported",
+ "Measurement reporting event: Event B1 - Neighbour > threshold for UTRAN FDD - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_42_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_43_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_44_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_45_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_46_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_47_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_48_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_49_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_50_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_51_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_52_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_53_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_54_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_55_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_56_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_57_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_58_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_59_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_60_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_61_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_62_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_63_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_64_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_101_val = {
+ "DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling - Supported",
+ "DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_102_val = {
+ "Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) - Supported",
+ "Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_103_val = {
+ "PDSCH TM9 when up to 4 CSI reference signal ports are configured - Supported",
+ "PDSCH TM9 when up to 4 CSI reference signal ports are configured - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_104_val = {
+ "PDSCH TM9 for TDD when 8 CSI reference signal ports are configured - Supported",
+ "PDSCH TM9 for TDD when 8 CSI reference signal ports are configured - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_105_val = {
+ "PUCCH RM2-0 when PDSCH TM9 is configured and RM2-1 when PDSCH TM9 and up to 4 CSI reference signal ports are configured - Supported",
+ "PUCCH RM2-0 when PDSCH TM9 is configured and RM2-1 when PDSCH TM9 and up to 4 CSI reference signal ports are configured - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_106_val = {
+ "PUCCH RM2-1 when PDSCH TM9 and 8 CSI reference signal ports are configured - Supported",
+ "PUCCH RM2-1 when PDSCH TM9 and 8 CSI reference signal ports are configured - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_107_val = {
+ "PUSCH RM2-0 when PDSCH TM9 is configured and RM2-2 when PDSCH TM9 and up to 4 CSI reference signal ports are configured - Supported",
+ "PUSCH RM2-0 when PDSCH TM9 is configured and RM2-2 when PDSCH TM9 and up to 4 CSI reference signal ports are configured - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_108_val = {
+ "PUSCH RM2-2 when PDSCH TM9 and 8 CSI reference signal ports are configured - Supported",
+ "PUSCH RM2-2 when PDSCH TM9 and 8 CSI reference signal ports are configured - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_109_val = {
+ "PUCCH RM1-1 submode 1 - Supported",
+ "PUCCH RM1-1 submode 1 - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_110_val = {
+ "PUCCH RM1-1 submode 2 - Supported",
+ "PUCCH RM1-1 submode 2 - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_111_val = {
+ "Measurement reporting trigger Event A6 - Supported",
+ "Measurement reporting trigger Event A6 - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_112_val = {
+ "SCell addition within the Handover to EUTRA procedure - Supported",
+ "SCell addition within the Handover to EUTRA procedure - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_113_val = {
+ "Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells - Supported",
+ "Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_114_val = {
+ "Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report - Supported",
+ "Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_115_val = {
+ "Time domain ICIC RLM/RRM / ICIC RRM / ICIC CSI measurement sf restriction for the serving cell / neighbour cells - Supported",
+ "Time domain ICIC RLM/RRM / ICIC RRM / ICIC CSI measurement sf restriction for the serving cell / neighbour cells - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_116_val = {
+ "Relative transmit phase continuity for spatial multiplexing in UL - Supported",
+ "Relative transmit phase continuity for spatial multiplexing in UL - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_117_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_118_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_119_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_120_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_121_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_122_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_123_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_124_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_125_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_126_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_127_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_128_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_129_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_130_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_131_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+static const true_false_string lte_rrc_eutra_cap_feat_group_ind_132_val = {
+ "Undefined - Supported",
+ "Undefined - Not supported"
+};
+
+static const value_string lte_rrc_q_RxLevMin_vals[] = {
+ { -70, "-140dBm"},
+ { -69, "-138dBm"},
+ { -68, "-136dBm"},
+ { -67, "-134dBm"},
+ { -66, "-132dBm"},
+ { -65, "-130dBm"},
+ { -64, "-128dBm"},
+ { -63, "-126dBm"},
+ { -62, "-124dBm"},
+ { -61, "-122dBm"},
+ { -60, "-120dBm"},
+ { -59, "-118dBm"},
+ { -58, "-116dBm"},
+ { -57, "-114dBm"},
+ { -56, "-112dBm"},
+ { -55, "-110dBm"},
+ { -54, "-108dBm"},
+ { -53, "-106dBm"},
+ { -52, "-104dBm"},
+ { -51, "-102dBm"},
+ { -50, "-100dBm"},
+ { -49, "-98dBm"},
+ { -48, "-96dBm"},
+ { -47, "-94dBm"},
+ { -46, "-92dBm"},
+ { -45, "-90dBm"},
+ { -44, "-88dBm"},
+ { -43, "-86dBm"},
+ { -42, "-84dBm"},
+ { -41, "-82dBm"},
+ { -40, "-80dBm"},
+ { -39, "-78dBm"},
+ { -38, "-76dBm"},
+ { -37, "-74dBm"},
+ { -36, "-72dBm"},
+ { -35, "-70dBm"},
+ { -34, "-68dBm"},
+ { -33, "-66dBm"},
+ { -32, "-64dBm"},
+ { -31, "-62dBm"},
+ { -30, "-60dBm"},
+ { -29, "-58dBm"},
+ { -28, "-56dBm"},
+ { -27, "-54dBm"},
+ { -26, "-52dBm"},
+ { -25, "-50dBm"},
+ { -24, "-48dBm"},
+ { -23, "-46dBm"},
+ { -22, "-44dBm"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_q_RxLevMin_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_q_RxLevMin_vals);
+
+static const value_string lte_rrc_q_RxLevMinOffset_vals[] = {
+ { 1, "2dB"},
+ { 2, "4dB"},
+ { 3, "6dB"},
+ { 4, "8dB"},
+ { 5, "10dB"},
+ { 6, "12dB"},
+ { 7, "14dB"},
+ { 8, "16dB"},
+ { 0, NULL}
+};
+
+static void
+lte_rrc_timeConnFailure_r10_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%ums (%u)", 100*v, v);
+}
+
+static const value_string lte_rrc_n_r12_vals[] = {
+ { 0, "0 <= Nr < 256"},
+ { 1, "256 <= Nr < 768"},
+ { 2, "768 <= Nr < 1792"},
+ { 3, "1792 <= Nr < 3840"},
+ { 4, "3840 <= Nr < 7936"},
+ { 5, "7936 <= Nr < 16128"},
+ { 6, "16128 <= Nr < 32512"},
+ { 7, "32512 <= Nr"},
+ { 0, NULL},
+};
+
+static void
+lte_rrc_m_r12_fmt(gchar *s, guint32 v)
+{
+ if (v == 255) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "255 <= f(Nr) (255)");
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u <= f(Nr) < %u (%u)", v, v+1, v);
+ }
+}
+
+static const value_string lte_rrc_BLER_Range_r12_vals[] = {
+ { 0, "BLER < 0.1%"},
+ { 1, "0.1% <= BLER < 0.123%"},
+ { 2, "0.123% <= BLER < 0.151%"},
+ { 3, "0.151% <= BLER < 0.186%"},
+ { 4, "0.186% <= BLER < 0.229%"},
+ { 5, "0.229% <= BLER < 0.282%"},
+ { 6, "0.282% <= BLER < 0.347%"},
+ { 7, "0.347% <= BLER < 0.426%"},
+ { 8, "0.426% <= BLER < 0.525%"},
+ { 9, "0.525% <= BLER < 0.645%"},
+ { 10, "0.645% <= BLER < 0.794%"},
+ { 11, "0.794% <= BLER < 0.976%"},
+ { 12, "0.976% <= BLER < 1.201%"},
+ { 13, "1.201% <= BLER < 1.478%"},
+ { 14, "1.478% <= BLER < 1.818%"},
+ { 15, "1.818% <= BLER < 2.236%"},
+ { 16, "2.236% <= BLER < 2.751%"},
+ { 17, "2.751% <= BLER < 3.384%"},
+ { 18, "3.384% <= BLER < 4.163%"},
+ { 19, "4.163% <= BLER < 5.121%"},
+ { 20, "5.121% <= BLER < 6.300%"},
+ { 21, "6.300% <= BLER < 7.750%"},
+ { 22, "7.750% <= BLER < 9.533%"},
+ { 23, "9.533% <= BLER < 11.728%"},
+ { 24, "11.728% <= BLER < 14.427%"},
+ { 25, "14.427% <= BLER < 17.478%"},
+ { 26, "17.478% <= BLER < 21.833%"},
+ { 27, "21.833% <= BLER < 26.858%"},
+ { 28, "26.858% <= BLER < 33.040%"},
+ { 29, "33.040% <= BLER < 40.645%"},
+ { 30, "40.645% <= BLER < 50%"},
+ { 31, "50% <= BLER"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_BLER_Range_r12_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_BLER_Range_r12_vals);
+
+static const value_string lte_rrc_utra_q_RxLevMin_vals[] = {
+ { -60, "-119dBm"},
+ { -59, "-117dBm"},
+ { -58, "-115dBm"},
+ { -57, "-113dBm"},
+ { -56, "-111dBm"},
+ { -55, "-109dBm"},
+ { -54, "-107dBm"},
+ { -53, "-105dBm"},
+ { -52, "-103dBm"},
+ { -51, "-101dBm"},
+ { -50, "-99dBm"},
+ { -49, "-97dBm"},
+ { -48, "-95dBm"},
+ { -47, "-93dBm"},
+ { -46, "-91dBm"},
+ { -45, "-89dBm"},
+ { -44, "-87dBm"},
+ { -43, "-85dBm"},
+ { -42, "-83dBm"},
+ { -41, "-81dBm"},
+ { -40, "-79dBm"},
+ { -39, "-77dBm"},
+ { -38, "-75dBm"},
+ { -37, "-73dBm"},
+ { -36, "-71dBm"},
+ { -35, "-69dBm"},
+ { -34, "-67dBm"},
+ { -33, "-65dBm"},
+ { -32, "-63dBm"},
+ { -31, "-61dBm"},
+ { -30, "-59dBm"},
+ { -29, "-57dBm"},
+ { -28, "-55dBm"},
+ { -27, "-53dBm"},
+ { -26, "-51dBm"},
+ { -25, "-49dBm"},
+ { -24, "-47dBm"},
+ { -23, "-45dBm"},
+ { -22, "-43dBm"},
+ { -21, "-41dBm"},
+ { -20, "-39dBm"},
+ { -19, "-37dBm"},
+ { -18, "-35dBm"},
+ { -17, "-33dBm"},
+ { -16, "-31dBm"},
+ { -15, "-29dBm"},
+ { -14, "-27dBm"},
+ { -13, "-25dBm"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_utra_q_RxLevMin_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_utra_q_RxLevMin_vals);
+
+static const value_string lte_rrc_geran_q_RxLevMin_vals[] = {
+ { 0 , "-115dBm"},
+ { 1 , "-113dBm"},
+ { 2 , "-111dBm"},
+ { 3 , "-109dBm"},
+ { 4 , "-107dBm"},
+ { 5 , "-105dBm"},
+ { 6 , "-103dBm"},
+ { 7 , "-101dBm"},
+ { 8 , "-99dBm"},
+ { 9 , "-97dBm"},
+ { 10, "-95dBm"},
+ { 11, "-93dBm"},
+ { 12, "-91dBm"},
+ { 13, "-89dBm"},
+ { 14, "-87dBm"},
+ { 15, "-85dBm"},
+ { 16, "-83dBm"},
+ { 17, "-81dBm"},
+ { 18, "-79dBm"},
+ { 19, "-77dBm"},
+ { 20, "-75dBm"},
+ { 21, "-73dBm"},
+ { 22, "-71dBm"},
+ { 23, "-69dBm"},
+ { 24, "-67dBm"},
+ { 25, "-65dBm"},
+ { 26, "-63dBm"},
+ { 27, "-61dBm"},
+ { 28, "-59dBm"},
+ { 29, "-57dBm"},
+ { 30, "-55dBm"},
+ { 31, "-53dBm"},
+ { 32, "-51dBm"},
+ { 33, "-49dBm"},
+ { 34, "-47dBm"},
+ { 35, "-45dBm"},
+ { 36, "-43dBm"},
+ { 37, "-41dBm"},
+ { 38, "-39dBm"},
+ { 39, "-37dBm"},
+ { 40, "-35dBm"},
+ { 41, "-33dBm"},
+ { 42, "-31dBm"},
+ { 43, "-29dBm"},
+ { 44, "-27dBm"},
+ { 45, "-25dBm"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_geran_q_RxLevMin_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_geran_q_RxLevMin_vals);
+
+static const value_string lte_rrc_nomPDSCH_RS_EPRE_Offset_vals[] = {
+ { -1, "-2dB"},
+ { 0, "0dB"},
+ { 1, "2dB"},
+ { 2, "4dB"},
+ { 3, "6dB"},
+ { 4, "8dB"},
+ { 5, "10dB"},
+ { 6, "12dB"},
+ { 0, NULL}
+};
+
+static const value_string lte_rrc_deltaPreambleMsg3_vals[] = {
+ { -1, "-2dB"},
+ { 0, "0dB"},
+ { 1, "2dB"},
+ { 2, "4dB"},
+ { 3, "6dB"},
+ { 4, "8dB"},
+ { 5, "10dB"},
+ { 6, "12dB"},
+ { 0, NULL}
+};
+
+static const value_string lte_rrc_ReselectionThreshold_vals[] = {
+ { 0 , "0dB"},
+ { 1 , "2dB"},
+ { 2 , "4dB"},
+ { 3 , "6dB"},
+ { 4 , "8dB"},
+ { 5 , "10dB"},
+ { 6 , "12dB"},
+ { 7 , "14dB"},
+ { 8 , "16dB"},
+ { 9 , "18dB"},
+ { 10, "20dB"},
+ { 11, "22dB"},
+ { 12, "24dB"},
+ { 13, "26dB"},
+ { 14, "28dB"},
+ { 15, "30dB"},
+ { 16, "32dB"},
+ { 17, "34dB"},
+ { 18, "36dB"},
+ { 19, "38dB"},
+ { 20, "40dB"},
+ { 21, "42dB"},
+ { 22, "44dB"},
+ { 23, "46dB"},
+ { 24, "48dB"},
+ { 25, "50dB"},
+ { 26, "52dB"},
+ { 27, "54dB"},
+ { 28, "56dB"},
+ { 29, "58dB"},
+ { 30, "60dB"},
+ { 31, "62dB"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_ReselectionThreshold_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_ReselectionThreshold_vals);
+
+static const value_string lte_rrc_Hysteresis_vals[] = {
+ { 0 , "0dB"},
+ { 1 , "0.5dB"},
+ { 2 , "1dB"},
+ { 3 , "1.5dB"},
+ { 4 , "2dB"},
+ { 5 , "2.5dB"},
+ { 6 , "3dB"},
+ { 7 , "3.5dB"},
+ { 8 , "4dB"},
+ { 9 , "4.5dB"},
+ { 10, "5dB"},
+ { 11, "5.5dB"},
+ { 12, "6dB"},
+ { 13, "6.5dB"},
+ { 14, "7dB"},
+ { 15, "7.5dB"},
+ { 16, "8dB"},
+ { 17, "8.5dB"},
+ { 18, "9dB"},
+ { 19, "9.5dB"},
+ { 20, "10dB"},
+ { 21, "10.5dB"},
+ { 22, "11dB"},
+ { 23, "11.5dB"},
+ { 24, "12dB"},
+ { 25, "12.5dB"},
+ { 26, "13dB"},
+ { 27, "13.5dB"},
+ { 28, "14dB"},
+ { 29, "14.5dB"},
+ { 30, "15dB"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_Hysteresis_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_Hysteresis_vals);
+
+static const value_string lte_rrc_s_Measure_vals[] = {
+ { 0, "disabled"},
+ { 1, "-139dBm"},
+ { 2, "-138dBm"},
+ { 3, "-137dBm"},
+ { 4, "-136dBm"},
+ { 5, "-135dBm"},
+ { 6, "-134dBm"},
+ { 7, "-133dBm"},
+ { 8, "-132dBm"},
+ { 9, "-131dBm"},
+ { 10, "-130dBm"},
+ { 11, "-129dBm"},
+ { 12, "-128dBm"},
+ { 13, "-127dBm"},
+ { 14, "-126dBm"},
+ { 15, "-125dBm"},
+ { 16, "-124dBm"},
+ { 17, "-123dBm"},
+ { 18, "-122dBm"},
+ { 19, "-121dBm"},
+ { 20, "-120dBm"},
+ { 21, "-119dBm"},
+ { 22, "-118dBm"},
+ { 23, "-117dBm"},
+ { 24, "-116dBm"},
+ { 25, "-115dBm"},
+ { 26, "-114dBm"},
+ { 27, "-113dBm"},
+ { 28, "-112dBm"},
+ { 29, "-111dBm"},
+ { 30, "-110dBm"},
+ { 31, "-109dBm"},
+ { 32, "-108dBm"},
+ { 33, "-107dBm"},
+ { 34, "-106dBm"},
+ { 35, "-105dBm"},
+ { 36, "-104dBm"},
+ { 37, "-103dBm"},
+ { 38, "-102dBm"},
+ { 39, "-101dBm"},
+ { 40, "-100dBm"},
+ { 41, "-99dBm"},
+ { 42, "-98dBm"},
+ { 43, "-97dBm"},
+ { 44, "-96dBm"},
+ { 45, "-95dBm"},
+ { 46, "-94dBm"},
+ { 47, "-93dBm"},
+ { 48, "-92dBm"},
+ { 49, "-91dBm"},
+ { 50, "-90dBm"},
+ { 51, "-89dBm"},
+ { 52, "-88dBm"},
+ { 53, "-87dBm"},
+ { 54, "-86dBm"},
+ { 55, "-85dBm"},
+ { 56, "-84dBm"},
+ { 57, "-83dBm"},
+ { 58, "-82dBm"},
+ { 59, "-81dBm"},
+ { 60, "-80dBm"},
+ { 61, "-79dBm"},
+ { 62, "-78dBm"},
+ { 63, "-77dBm"},
+ { 64, "-76dBm"},
+ { 65, "-75dBm"},
+ { 66, "-74dBm"},
+ { 67, "-73dBm"},
+ { 68, "-72dBm"},
+ { 69, "-71dBm"},
+ { 70, "-70dBm"},
+ { 71, "-69dBm"},
+ { 72, "-68dBm"},
+ { 73, "-67dBm"},
+ { 74, "-66dBm"},
+ { 75, "-65dBm"},
+ { 76, "-64dBm"},
+ { 77, "-63dBm"},
+ { 78, "-62dBm"},
+ { 79, "-61dBm"},
+ { 80, "-60dBm"},
+ { 81, "-59dBm"},
+ { 82, "-58dBm"},
+ { 83, "-57dBm"},
+ { 84, "-56dBm"},
+ { 85, "-55dBm"},
+ { 86, "-54dBm"},
+ { 87, "-53dBm"},
+ { 88, "-52dBm"},
+ { 89, "-51dBm"},
+ { 90, "-50dBm"},
+ { 91, "-49dBm"},
+ { 92, "-48dBm"},
+ { 93, "-47dBm"},
+ { 94, "-46dBm"},
+ { 95, "-45dBm"},
+ { 96, "-44dBm"},
+ { 97, "-43dBm"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_s_Measure_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_s_Measure_vals);
+
+static const value_string lte_rrc_utra_EcN0_vals[] = {
+ { 0 , "CPICH Ec/Io < -24dB"},
+ { 1 , "-24dB <= CPICH Ec/Io < -23.5dB"},
+ { 2 , "-23.5dB <= CPICH Ec/Io < -23dB"},
+ { 3 , "-23dB <= CPICH Ec/Io < -22.5dB"},
+ { 4 , "-22.5dB <= CPICH Ec/Io < -22dB"},
+ { 5 , "-22dB <= CPICH Ec/Io < -21.5dB"},
+ { 6 , "-21.5dB <= CPICH Ec/Io < -21dB"},
+ { 7 , "-21dB <= CPICH Ec/Io < -20.5dB"},
+ { 8 , "-20.5dB <= CPICH Ec/Io < -20dB"},
+ { 9 , "-20dB <= CPICH Ec/Io < -19.5dB"},
+ { 10, "-19.5dB <= CPICH Ec/Io < -19dB"},
+ { 11, "-19dB <= CPICH Ec/Io < -18.5dB"},
+ { 12, "-18.5dB <= CPICH Ec/Io < -18dB"},
+ { 13, "-18dB <= CPICH Ec/Io < -17.5dB"},
+ { 14, "-17.5dB <= CPICH Ec/Io < -17dB"},
+ { 15, "-17dB <= CPICH Ec/Io < -16.5dB"},
+ { 16, "-16.5dB <= CPICH Ec/Io < -16dB"},
+ { 17, "-16dB <= CPICH Ec/Io < -15.5dB"},
+ { 18, "-15.5dB <= CPICH Ec/Io < -15dB"},
+ { 19, "-15dB <= CPICH Ec/Io < -14.5dB"},
+ { 20, "-14.5dB <= CPICH Ec/Io < -14dB"},
+ { 21, "-14dB <= CPICH Ec/Io < -13.5dB"},
+ { 22, "-13.5dB <= CPICH Ec/Io < -13dB"},
+ { 23, "-13dB <= CPICH Ec/Io < -12.5dB"},
+ { 24, "-12.5dB <= CPICH Ec/Io < -12dB"},
+ { 25, "-12dB <= CPICH Ec/Io < -11.5dB"},
+ { 26, "-11.5dB <= CPICH Ec/Io < -11dB"},
+ { 27, "-11dB <= CPICH Ec/Io < -10.5dB"},
+ { 28, "-10.5dB <= CPICH Ec/Io < -10dB"},
+ { 29, "-10dB <= CPICH Ec/Io < -9.5dB"},
+ { 30, "-9.5dB <= CPICH Ec/Io < -9dB"},
+ { 31, "-9dB <= CPICH Ec/Io < -8.5dB"},
+ { 32, "-8.5dB <= CPICH Ec/Io < -8dB"},
+ { 33, "-8dB <= CPICH Ec/Io < -7.5dB"},
+ { 34, "-7.5dB <= CPICH Ec/Io < -7dB"},
+ { 35, "-7dB <= CPICH Ec/Io < -6.5dB"},
+ { 36, "-6.5dB <= CPICH Ec/Io < -6dB"},
+ { 37, "-6dB <= CPICH Ec/Io < -5.5dB"},
+ { 38, "-5.5dB <= CPICH Ec/Io < -5dB"},
+ { 39, "-5dB <= CPICH Ec/Io < -4.5dB"},
+ { 40, "-4.5dB <= CPICH Ec/Io < -4dB"},
+ { 41, "-4dB <= CPICH Ec/Io < -3.5dB"},
+ { 42, "-3.5dB <= CPICH Ec/Io < -3dB"},
+ { 43, "-3dB <= CPICH Ec/Io < -2.5dB"},
+ { 44, "-2.5dB <= CPICH Ec/Io < -2dB"},
+ { 45, "-2dB <= CPICH Ec/Io < -1.5dB"},
+ { 46, "-1.5dB <= CPICH Ec/Io < -1dB"},
+ { 47, "-1dB <= CPICH Ec/Io < -0.5dB"},
+ { 48, "-0.5dB <= CPICH Ec/Io < 0dB"},
+ { 49, "0dB <= CPICH Ec/Io"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_utra_EcN0_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_utra_EcN0_vals);
+
+static const value_string lte_rrc_utra_RSCP_vals[] = {
+ { -5, "RSCP < -120dBm"},
+ { -4, "-120dBm <= RSCP < -119dBm"},
+ { -3, "-119dBm <= RSCP < -118dBm"},
+ { -2, "-118dBm <= RSCP < -117dBm"},
+ { -1, "-117dBm <= RSCP < -116dBm"},
+ { 0, "-116dBm <= RSCP < -115dBm"},
+ { 1, "-115dBm <= RSCP < -114dBm"},
+ { 2, "-114dBm <= RSCP < -113dBm"},
+ { 3, "-113dBm <= RSCP < -112dBm"},
+ { 4, "-112dBm <= RSCP < -111dBm"},
+ { 5, "-111dBm <= RSCP < -110dBm"},
+ { 6, "-110dBm <= RSCP < -109dBm"},
+ { 7, "-109dBm <= RSCP < -108dBm"},
+ { 8, "-108dBm <= RSCP < -107dBm"},
+ { 9, "-107dBm <= RSCP < -106dBm"},
+ { 10, "-106dBm <= RSCP < -105dBm"},
+ { 11, "-105dBm <= RSCP < -104dBm"},
+ { 12, "-104dBm <= RSCP < -103dBm"},
+ { 13, "-103dBm <= RSCP < -102dBm"},
+ { 14, "-102dBm <= RSCP < -101dBm"},
+ { 15, "-101dBm <= RSCP < -100dBm"},
+ { 16, "-100dBm <= RSCP < -99dBm"},
+ { 17, "-99dBm <= RSCP < -98dBm"},
+ { 18, "-98dBm <= RSCP < -97dBm"},
+ { 19, "-97dBm <= RSCP < -96dBm"},
+ { 20, "-96dBm <= RSCP < -95dBm"},
+ { 21, "-95dBm <= RSCP < -94dBm"},
+ { 22, "-94dBm <= RSCP < -93dBm"},
+ { 23, "-93dBm <= RSCP < -92dBm"},
+ { 24, "-92dBm <= RSCP < -91dBm"},
+ { 25, "-91dBm <= RSCP < -90dBm"},
+ { 26, "-90dBm <= RSCP < -89dBm"},
+ { 27, "-89dBm <= RSCP < -88dBm"},
+ { 28, "-88dBm <= RSCP < -87dBm"},
+ { 29, "-87dBm <= RSCP < -86dBm"},
+ { 30, "-86dBm <= RSCP < -85dBm"},
+ { 31, "-85dBm <= RSCP < -84dBm"},
+ { 32, "-84dBm <= RSCP < -83dBm"},
+ { 33, "-83dBm <= RSCP < -82dBm"},
+ { 34, "-82dBm <= RSCP < -81dBm"},
+ { 35, "-81dBm <= RSCP < -80dBm"},
+ { 36, "-80dBm <= RSCP < -79dBm"},
+ { 37, "-79dBm <= RSCP < -78dBm"},
+ { 38, "-78dBm <= RSCP < -77dBm"},
+ { 39, "-77dBm <= RSCP < -76dBm"},
+ { 40, "-76dBm <= RSCP < -75dBm"},
+ { 41, "-75dBm <= RSCP < -74dBm"},
+ { 42, "-74dBm <= RSCP < -73dBm"},
+ { 43, "-73dBm <= RSCP < -72dBm"},
+ { 44, "-72dBm <= RSCP < -71dBm"},
+ { 45, "-71dBm <= RSCP < -70dBm"},
+ { 46, "-70dBm <= RSCP < -69dBm"},
+ { 47, "-69dBm <= RSCP < -68dBm"},
+ { 48, "-68dBm <= RSCP < -67dBm"},
+ { 49, "-67dBm <= RSCP < -66dBm"},
+ { 50, "-66dBm <= RSCP < -65dBm"},
+ { 51, "-65dBm <= RSCP < -64dBm"},
+ { 52, "-64dBm <= RSCP < -63dBm"},
+ { 53, "-63dBm <= RSCP < -62dBm"},
+ { 54, "-62dBm <= RSCP < -61dBm"},
+ { 55, "-61dBm <= RSCP < -60dBm"},
+ { 56, "-60dBm <= RSCP < -59dBm"},
+ { 57, "-59dBm <= RSCP < -58dBm"},
+ { 58, "-58dBm <= RSCP < -57dBm"},
+ { 59, "-57dBm <= RSCP < -56dBm"},
+ { 60, "-56dBm <= RSCP < -55dBm"},
+ { 61, "-55dBm <= RSCP < -54dBm"},
+ { 62, "-54dBm <= RSCP < -53dBm"},
+ { 63, "-53dBm <= RSCP < -52dBm"},
+ { 64, "-52dBm <= RSCP < -51dBm"},
+ { 65, "-51dBm <= RSCP < -50dBm"},
+ { 66, "-50dBm <= RSCP < -49dBm"},
+ { 67, "-49dBm <= RSCP < -48dBm"},
+ { 68, "-48dBm <= RSCP < -47dBm"},
+ { 69, "-47dBm <= RSCP < -46dBm"},
+ { 70, "-46dBm <= RSCP < -45dBm"},
+ { 71, "-45dBm <= RSCP < -44dBm"},
+ { 72, "-44dBm <= RSCP < -43dBm"},
+ { 73, "-43dBm <= RSCP < -42dBm"},
+ { 74, "-42dBm <= RSCP < -41dBm"},
+ { 75, "-41dBm <= RSCP < -40dBm"},
+ { 76, "-40dBm <= RSCP < -39dBm"},
+ { 77, "-39dBm <= RSCP < -38dBm"},
+ { 78, "-38dBm <= RSCP < -37dBm"},
+ { 79, "-37dBm <= RSCP < -36dBm"},
+ { 80, "-36dBm <= RSCP < -35dBm"},
+ { 81, "-35dBm <= RSCP < -34dBm"},
+ { 82, "-34dBm <= RSCP < -33dBm"},
+ { 83, "-33dBm <= RSCP < -32dBm"},
+ { 84, "-32dBm <= RSCP < -31dBm"},
+ { 85, "-31dBm <= RSCP < -30dBm"},
+ { 86, "-30dBm <= RSCP < -29dBm"},
+ { 87, "-29dBm <= RSCP < -28dBm"},
+ { 88, "-28dBm <= RSCP < -27dBm"},
+ { 89, "-27dBm <= RSCP < -26dBm"},
+ { 90, "-26dBm <= RSCP < -25dBm"},
+ { 91, "-25dBm <= RSCP"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_utra_RSCP_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_utra_RSCP_vals);
+
+static const value_string lte_rrc_a3_a6_c2_Offset_vals[] = {
+ { -30, "-15dB"},
+ { -29, "-14.5dB"},
+ { -28, "-14dB"},
+ { -27, "-13.5dB"},
+ { -26, "-13dB"},
+ { -25, "-12.5dB"},
+ { -24, "-12dB"},
+ { -23, "-11.5dB"},
+ { -22, "-11dB"},
+ { -21, "-10.5dB"},
+ { -20, "-10dB"},
+ { -19, "-9.5dB"},
+ { -18, "-9dB"},
+ { -17, "-8.5dB"},
+ { -16, "-8dB"},
+ { -15, "-7.5dB"},
+ { -14, "-7dB"},
+ { -13, "-6.5dB"},
+ { -12, "-6dB"},
+ { -11, "-5.5dB"},
+ { -10, "-5dB"},
+ { -9, "-4.5dB"},
+ { -8, "-4dB"},
+ { -7, "-3.5dB"},
+ { -6, "-3dB"},
+ { -5, "-2.5dB"},
+ { -4, "-2dB"},
+ { -3, "-1.5dB"},
+ { -2, "-1dB"},
+ { -1, "-0.5dB"},
+ { 0, "0dB"},
+ { 1, "0.5dB"},
+ { 2, "1dB"},
+ { 3, "1.5dB"},
+ { 4, "2dB"},
+ { 5, "2.5dB"},
+ { 6, "3dB"},
+ { 7, "3.5dB"},
+ { 8, "4dB"},
+ { 9, "4.5dB"},
+ { 10, "5dB"},
+ { 11, "5.5dB"},
+ { 12, "6dB"},
+ { 13, "6.5dB"},
+ { 14, "7dB"},
+ { 15, "7.5dB"},
+ { 16, "8dB"},
+ { 17, "8.5dB"},
+ { 18, "9dB"},
+ { 19, "9.5dB"},
+ { 20, "10dB"},
+ { 21, "10.5dB"},
+ { 22, "11dB"},
+ { 23, "11.5dB"},
+ { 24, "12dB"},
+ { 25, "12.5dB"},
+ { 26, "13dB"},
+ { 27, "13.5dB"},
+ { 28, "14dB"},
+ { 29, "14.5dB"},
+ { 30, "15dB"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_a3_a6_c2_Offset_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_a3_a6_c2_Offset_vals);
+
+static const value_string lte_rrc_threshold_RSRP_vals[] = {
+ { 0, "-140dBm"},
+ { 1, "-139dBm"},
+ { 2, "-138dBm"},
+ { 3, "-137dBm"},
+ { 4, "-136dBm"},
+ { 5, "-135dBm"},
+ { 6, "-134dBm"},
+ { 7, "-133dBm"},
+ { 8, "-132dBm"},
+ { 9, "-131dBm"},
+ { 10, "-130dBm"},
+ { 11, "-129dBm"},
+ { 12, "-128dBm"},
+ { 13, "-127dBm"},
+ { 14, "-126dBm"},
+ { 15, "-125dBm"},
+ { 16, "-124dBm"},
+ { 17, "-123dBm"},
+ { 18, "-122dBm"},
+ { 19, "-121dBm"},
+ { 20, "-120dBm"},
+ { 21, "-119dBm"},
+ { 22, "-118dBm"},
+ { 23, "-117dBm"},
+ { 24, "-116dBm"},
+ { 25, "-115dBm"},
+ { 26, "-114dBm"},
+ { 27, "-113dBm"},
+ { 28, "-112dBm"},
+ { 29, "-111dBm"},
+ { 30, "-110dBm"},
+ { 31, "-109dBm"},
+ { 32, "-108dBm"},
+ { 33, "-107dBm"},
+ { 34, "-106dBm"},
+ { 35, "-105dBm"},
+ { 36, "-104dBm"},
+ { 37, "-103dBm"},
+ { 38, "-102dBm"},
+ { 39, "-101dBm"},
+ { 40, "-100dBm"},
+ { 41, "-99dBm"},
+ { 42, "-98dBm"},
+ { 43, "-97dBm"},
+ { 44, "-96dBm"},
+ { 45, "-95dBm"},
+ { 46, "-94dBm"},
+ { 47, "-93dBm"},
+ { 48, "-92dBm"},
+ { 49, "-91dBm"},
+ { 50, "-90dBm"},
+ { 51, "-89dBm"},
+ { 52, "-88dBm"},
+ { 53, "-87dBm"},
+ { 54, "-86dBm"},
+ { 55, "-85dBm"},
+ { 56, "-84dBm"},
+ { 57, "-83dBm"},
+ { 58, "-82dBm"},
+ { 59, "-81dBm"},
+ { 60, "-80dBm"},
+ { 61, "-79dBm"},
+ { 62, "-78dBm"},
+ { 63, "-77dBm"},
+ { 64, "-76dBm"},
+ { 65, "-75dBm"},
+ { 66, "-74dBm"},
+ { 67, "-73dBm"},
+ { 68, "-72dBm"},
+ { 69, "-71dBm"},
+ { 70, "-70dBm"},
+ { 71, "-69dBm"},
+ { 72, "-68dBm"},
+ { 73, "-67dBm"},
+ { 74, "-66dBm"},
+ { 75, "-65dBm"},
+ { 76, "-64dBm"},
+ { 77, "-63dBm"},
+ { 78, "-62dBm"},
+ { 79, "-61dBm"},
+ { 80, "-60dBm"},
+ { 81, "-59dBm"},
+ { 82, "-58dBm"},
+ { 83, "-57dBm"},
+ { 84, "-56dBm"},
+ { 85, "-55dBm"},
+ { 86, "-54dBm"},
+ { 87, "-53dBm"},
+ { 88, "-52dBm"},
+ { 89, "-51dBm"},
+ { 90, "-50dBm"},
+ { 91, "-49dBm"},
+ { 92, "-48dBm"},
+ { 93, "-47dBm"},
+ { 94, "-46dBm"},
+ { 95, "-45dBm"},
+ { 96, "-44dBm"},
+ { 97, "-43dBm"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_threshold_RSRP_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_threshold_RSRP_vals);
+
+static const value_string lte_rrc_threshold_RSRQ_vals[] = {
+ { 0, "-20dB"},
+ { 1, "-19.5dB"},
+ { 2, "-19dB"},
+ { 3, "-18.5dB"},
+ { 4, "-18dB"},
+ { 5, "-17.5dB"},
+ { 6, "-17dB"},
+ { 7, "-16.5dB"},
+ { 8, "-16dB"},
+ { 9, "-15.5dB"},
+ { 10, "-15dB"},
+ { 11, "-14.5dB"},
+ { 12, "-14dB"},
+ { 13, "-13.5dB"},
+ { 14, "-13dB"},
+ { 15, "-12.5dB"},
+ { 16, "-12dB"},
+ { 17, "-11.5dB"},
+ { 18, "-11dB"},
+ { 19, "-10.5dB"},
+ { 20, "-10dB"},
+ { 21, "-9.5dB"},
+ { 22, "-9dB"},
+ { 23, "-8.5dB"},
+ { 24, "-8dB"},
+ { 25, "-7.5dB"},
+ { 26, "-7dB"},
+ { 27, "-6.5dB"},
+ { 28, "-6dB"},
+ { 29, "-5.5dB"},
+ { 30, "-5dB"},
+ { 31, "-4.5dB"},
+ { 32, "-4dB"},
+ { 33, "-3.5dB"},
+ { 34, "-3dB"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_threshold_RSRQ_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_threshold_RSRQ_vals);
+
+static const value_string lte_rrc_thresholdGERAN_vals[] = {
+ { 0 , "-110dBm"},
+ { 1 , "-109dBm"},
+ { 2 , "-108dBm"},
+ { 3 , "-107dBm"},
+ { 4 , "-106dBm"},
+ { 5 , "-105dBm"},
+ { 6 , "-104dBm"},
+ { 7 , "-103dBm"},
+ { 8 , "-102dBm"},
+ { 9 , "-101dBm"},
+ { 10, "-100dBm"},
+ { 11, "-99dBm"},
+ { 12, "-98dBm"},
+ { 13, "-97dBm"},
+ { 14, "-96dBm"},
+ { 15, "-95dBm"},
+ { 16, "-94dBm"},
+ { 17, "-93dBm"},
+ { 18, "-92dBm"},
+ { 19, "-91dBm"},
+ { 20, "-90dBm"},
+ { 21, "-89dBm"},
+ { 22, "-88dBm"},
+ { 23, "-87dBm"},
+ { 24, "-86dBm"},
+ { 25, "-85dBm"},
+ { 26, "-84dBm"},
+ { 27, "-83dBm"},
+ { 28, "-82dBm"},
+ { 29, "-81dBm"},
+ { 30, "-80dBm"},
+ { 31, "-79dBm"},
+ { 32, "-78dBm"},
+ { 33, "-77dBm"},
+ { 34, "-76dBm"},
+ { 35, "-75dBm"},
+ { 36, "-74dBm"},
+ { 37, "-73dBm"},
+ { 38, "-72dBm"},
+ { 39, "-71dBm"},
+ { 40, "-70dBm"},
+ { 41, "-69dBm"},
+ { 42, "-68dBm"},
+ { 43, "-67dBm"},
+ { 44, "-66dBm"},
+ { 45, "-65dBm"},
+ { 46, "-64dBm"},
+ { 47, "-63dBm"},
+ { 48, "-62dBm"},
+ { 49, "-61dBm"},
+ { 50, "-60dBm"},
+ { 51, "-59dBm"},
+ { 52, "-58dBm"},
+ { 53, "-57dBm"},
+ { 54, "-56dBm"},
+ { 55, "-55dBm"},
+ { 56, "-54dBm"},
+ { 57, "-53dBm"},
+ { 58, "-52dBm"},
+ { 59, "-51dBm"},
+ { 60, "-50dBm"},
+ { 61, "-49dBm"},
+ { 62, "-48dBm"},
+ { 63, "-47dBm"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_thresholdGERAN_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_thresholdGERAN_vals);
+
+static const value_string lte_rrc_thresholdUTRA_EcN0_vals[] = {
+ { 0 , "-24.5dB"},
+ { 1 , "-24dB"},
+ { 2 , "-23.5dB"},
+ { 3 , "-23dB"},
+ { 4 , "-22.5dB"},
+ { 5 , "-22dB"},
+ { 6 , "-21.5dB"},
+ { 7 , "-21dB"},
+ { 8 , "-20.5dB"},
+ { 9 , "-20dB"},
+ { 10, "-19.5dB"},
+ { 11, "-19dB"},
+ { 12, "-18.5dB"},
+ { 13, "-18dB"},
+ { 14, "-17.5dB"},
+ { 15, "-17dB"},
+ { 16, "-16.5dB"},
+ { 17, "-16dB"},
+ { 18, "-15.5dB"},
+ { 19, "-15dB"},
+ { 20, "-14.5dB"},
+ { 21, "-14dB"},
+ { 22, "-13.5dB"},
+ { 23, "-13dB"},
+ { 24, "-12.5dB"},
+ { 25, "-12dB"},
+ { 26, "-11.5dB"},
+ { 27, "-11dB"},
+ { 28, "-10.5dB"},
+ { 29, "-10dB"},
+ { 30, "-9.5dB"},
+ { 31, "-9dB"},
+ { 32, "-8.5dB"},
+ { 33, "-8dB"},
+ { 34, "-7.5dB"},
+ { 35, "-7dB"},
+ { 36, "-6.5dB"},
+ { 37, "-6dB"},
+ { 38, "-5.5dB"},
+ { 39, "-5dB"},
+ { 40, "-4.5dB"},
+ { 41, "-4dB"},
+ { 42, "-3.5dB"},
+ { 43, "-3dB"},
+ { 44, "-2.5dB"},
+ { 45, "-2dB"},
+ { 46, "-1.5dB"},
+ { 47, "-1dB"},
+ { 48, "-0.5dB"},
+ { 49, "0dB"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_thresholdUTRA_EcN0_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_thresholdUTRA_EcN0_vals);
+
+static const value_string lte_rrc_thresholdUTRA_RSCP_vals[] = {
+ { -5, "-120dBm"},
+ { -4, "-119dBm"},
+ { -3, "-118dBm"},
+ { -2, "-117dBm"},
+ { -1, "-116dBm"},
+ { 0, "-115dBm"},
+ { 1, "-114dBm"},
+ { 2, "-113dBm"},
+ { 3, "-112dBm"},
+ { 4, "-111dBm"},
+ { 5, "-110dBm"},
+ { 6, "-109dBm"},
+ { 7, "-108dBm"},
+ { 8, "-107dBm"},
+ { 9, "-106dBm"},
+ { 10, "-105dBm"},
+ { 11, "-104dBm"},
+ { 12, "-103dBm"},
+ { 13, "-102dBm"},
+ { 14, "-101dBm"},
+ { 15, "-100dBm"},
+ { 16, "-99dBm"},
+ { 17, "-98dBm"},
+ { 18, "-97dBm"},
+ { 19, "-96dBm"},
+ { 20, "-95dBm"},
+ { 21, "-94dBm"},
+ { 22, "-93dBm"},
+ { 23, "-92dBm"},
+ { 24, "-91dBm"},
+ { 25, "-90dBm"},
+ { 26, "-89dBm"},
+ { 27, "-88dBm"},
+ { 28, "-87dBm"},
+ { 29, "-86dBm"},
+ { 30, "-85dBm"},
+ { 31, "-84dBm"},
+ { 32, "-83dBm"},
+ { 33, "-82dBm"},
+ { 34, "-81dBm"},
+ { 35, "-80dBm"},
+ { 36, "-79dBm"},
+ { 37, "-78dBm"},
+ { 38, "-77dBm"},
+ { 39, "-76dBm"},
+ { 40, "-75dBm"},
+ { 41, "-74dBm"},
+ { 42, "-73dBm"},
+ { 43, "-72dBm"},
+ { 44, "-71dBm"},
+ { 45, "-70dBm"},
+ { 46, "-69dBm"},
+ { 47, "-68dBm"},
+ { 48, "-67dBm"},
+ { 49, "-66dBm"},
+ { 50, "-65dBm"},
+ { 51, "-64dBm"},
+ { 52, "-63dBm"},
+ { 53, "-62dBm"},
+ { 54, "-61dBm"},
+ { 55, "-60dBm"},
+ { 56, "-59dBm"},
+ { 57, "-58dBm"},
+ { 58, "-57dBm"},
+ { 59, "-56dBm"},
+ { 60, "-55dBm"},
+ { 61, "-54dBm"},
+ { 62, "-53dBm"},
+ { 63, "-52dBm"},
+ { 64, "-51dBm"},
+ { 65, "-50dBm"},
+ { 66, "-49dBm"},
+ { 67, "-48dBm"},
+ { 68, "-47dBm"},
+ { 69, "-46dBm"},
+ { 70, "-45dBm"},
+ { 71, "-44dBm"},
+ { 72, "-43dBm"},
+ { 73, "-42dBm"},
+ { 74, "-41dBm"},
+ { 75, "-40dBm"},
+ { 76, "-39dBm"},
+ { 77, "-38dBm"},
+ { 78, "-37dBm"},
+ { 79, "-36dBm"},
+ { 80, "-35dBm"},
+ { 81, "-34dBm"},
+ { 82, "-33dBm"},
+ { 83, "-32dBm"},
+ { 84, "-31dBm"},
+ { 85, "-30dBm"},
+ { 86, "-29dBm"},
+ { 87, "-28dBm"},
+ { 88, "-27dBm"},
+ { 89, "-26dBm"},
+ { 90, "-25dBm"},
+ { 91, "-24dBm"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_thresholdUTRA_RSCP_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_thresholdUTRA_RSCP_vals);
+
+static const value_string lte_rrc_RSRP_Range_vals[] = {
+ { 0, "RSRP < -140dBm"},
+ { 1, "-140dBm <= RSRP < -139dBm"},
+ { 2, "-139dBm <= RSRP < -138dBm"},
+ { 3, "-138dBm <= RSRP < -137dBm"},
+ { 4, "-137dBm <= RSRP < -136dBm"},
+ { 5, "-136dBm <= RSRP < -135dBm"},
+ { 6, "-135dBm <= RSRP < -134dBm"},
+ { 7, "-134dBm <= RSRP < -133dBm"},
+ { 8, "-133dBm <= RSRP < -132dBm"},
+ { 9, "-132dBm <= RSRP < -131dBm"},
+ { 10, "-131dBm <= RSRP < -130dBm"},
+ { 11, "-130dBm <= RSRP < -129dBm"},
+ { 12, "-129dBm <= RSRP < -128dBm"},
+ { 13, "-128dBm <= RSRP < -127dBm"},
+ { 14, "-127dBm <= RSRP < -126dBm"},
+ { 15, "-126dBm <= RSRP < -125dBm"},
+ { 16, "-125dBm <= RSRP < -124dBm"},
+ { 17, "-124dBm <= RSRP < -123dBm"},
+ { 18, "-123dBm <= RSRP < -122dBm"},
+ { 19, "-122dBm <= RSRP < -121dBm"},
+ { 20, "-121dBm <= RSRP < -120dBm"},
+ { 21, "-120dBm <= RSRP < -119dBm"},
+ { 22, "-119dBm <= RSRP < -118dBm"},
+ { 23, "-118dBm <= RSRP < -117dBm"},
+ { 24, "-117dBm <= RSRP < -116dBm"},
+ { 25, "-116dBm <= RSRP < -115dBm"},
+ { 26, "-115dBm <= RSRP < -114dBm"},
+ { 27, "-114dBm <= RSRP < -113dBm"},
+ { 28, "-113dBm <= RSRP < -112dBm"},
+ { 29, "-112dBm <= RSRP < -111dBm"},
+ { 30, "-111dBm <= RSRP < -110dBm"},
+ { 31, "-110dBm <= RSRP < -109dBm"},
+ { 32, "-109dBm <= RSRP < -108dBm"},
+ { 33, "-108dBm <= RSRP < -107dBm"},
+ { 34, "-107dBm <= RSRP < -106dBm"},
+ { 35, "-106dBm <= RSRP < -105dBm"},
+ { 36, "-105dBm <= RSRP < -104dBm"},
+ { 37, "-104dBm <= RSRP < -103dBm"},
+ { 38, "-103dBm <= RSRP < -102dBm"},
+ { 39, "-102dBm <= RSRP < -101dBm"},
+ { 40, "-101dBm <= RSRP < -100dBm"},
+ { 41, "-100dBm <= RSRP < -99dBm"},
+ { 42, "-99dBm <= RSRP < -98dBm"},
+ { 43, "-98dBm <= RSRP < -97dBm"},
+ { 44, "-97dBm <= RSRP < -96dBm"},
+ { 45, "-96dBm <= RSRP < -95dBm"},
+ { 46, "-95dBm <= RSRP < -94dBm"},
+ { 47, "-94dBm <= RSRP < -93dBm"},
+ { 48, "-93dBm <= RSRP < -92dBm"},
+ { 49, "-92dBm <= RSRP < -91dBm"},
+ { 50, "-91dBm <= RSRP < -90dBm"},
+ { 51, "-90dBm <= RSRP < -89dBm"},
+ { 52, "-89dBm <= RSRP < -88dBm"},
+ { 53, "-88dBm <= RSRP < -87dBm"},
+ { 54, "-87dBm <= RSRP < -86dBm"},
+ { 55, "-86dBm <= RSRP < -85dBm"},
+ { 56, "-85dBm <= RSRP < -84dBm"},
+ { 57, "-84dBm <= RSRP < -83dBm"},
+ { 58, "-83dBm <= RSRP < -82dBm"},
+ { 59, "-82dBm <= RSRP < -81dBm"},
+ { 60, "-81dBm <= RSRP < -80dBm"},
+ { 61, "-80dBm <= RSRP < -79dBm"},
+ { 62, "-79dBm <= RSRP < -78dBm"},
+ { 63, "-78dBm <= RSRP < -77dBm"},
+ { 64, "-77dBm <= RSRP < -76dBm"},
+ { 65, "-76dBm <= RSRP < -75dBm"},
+ { 66, "-75dBm <= RSRP < -74dBm"},
+ { 67, "-74dBm <= RSRP < -73dBm"},
+ { 68, "-73dBm <= RSRP < -72dBm"},
+ { 69, "-72dBm <= RSRP < -71dBm"},
+ { 70, "-71dBm <= RSRP < -70dBm"},
+ { 71, "-70dBm <= RSRP < -69dBm"},
+ { 72, "-69dBm <= RSRP < -68dBm"},
+ { 73, "-68dBm <= RSRP < -67dBm"},
+ { 74, "-67dBm <= RSRP < -66dBm"},
+ { 75, "-66dBm <= RSRP < -65dBm"},
+ { 76, "-65dBm <= RSRP < -64dBm"},
+ { 77, "-64dBm <= RSRP < -63dBm"},
+ { 78, "-63dBm <= RSRP < -62dBm"},
+ { 79, "-62dBm <= RSRP < -61dBm"},
+ { 80, "-61dBm <= RSRP < -60dBm"},
+ { 81, "-60dBm <= RSRP < -59dBm"},
+ { 82, "-59dBm <= RSRP < -58dBm"},
+ { 83, "-58dBm <= RSRP < -57dBm"},
+ { 84, "-57dBm <= RSRP < -56dBm"},
+ { 85, "-56dBm <= RSRP < -55dBm"},
+ { 86, "-55dBm <= RSRP < -54dBm"},
+ { 87, "-54dBm <= RSRP < -53dBm"},
+ { 88, "-53dBm <= RSRP < -52dBm"},
+ { 89, "-52dBm <= RSRP < -51dBm"},
+ { 90, "-51dBm <= RSRP < -50dBm"},
+ { 91, "-50dBm <= RSRP < -49dBm"},
+ { 92, "-49dBm <= RSRP < -48dBm"},
+ { 93, "-48dBm <= RSRP < -47dBm"},
+ { 94, "-47dBm <= RSRP < -46dBm"},
+ { 95, "-46dBm <= RSRP < -45dBm"},
+ { 96, "-45dBm <= RSRP < -44dBm"},
+ { 97, "-44dBm <= RSRP"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_RSRP_Range_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_RSRP_Range_vals);
+
+static const value_string lte_rrc_RSRP_RangeSL_vals[] = {
+ { 0, "-infinity"},
+ { 1, "-115dBm"},
+ { 2, "-110dBm"},
+ { 3, "-105dBm"},
+ { 4, "-100dBm"},
+ { 5, "-95dBm"},
+ { 6, "-90dBm"},
+ { 7, "-85dBm"},
+ { 8, "-80dBm"},
+ { 9, "-75dBm"},
+ { 10, "-70dBm"},
+ { 11, "-65dBm"},
+ { 12, "-60dBm"},
+ { 13, "+infinity"},
+ { 0, NULL}
+};
+
+static const value_string lte_rrc_RSRP_RangeSL2_vals[] = {
+ { 0, "-infinity"},
+ { 1, "-110dBm"},
+ { 2, "-100dBm"},
+ { 3, "-90dBm"},
+ { 4, "-80dBm"},
+ { 5, "-70dBm"},
+ { 6, "-60dBm"},
+ { 7, "+infinity"},
+ { 0, NULL}
+};
+
+#if 0
+static const value_string lte_rrc_RSRP_RangeSL3_vals[] = {
+ { 0, "-110dBm"},
+ { 1, "-105dBm"},
+ { 2, "-100dBm"},
+ { 3, "-95dBm"},
+ { 4, "-90dBm"},
+ { 5, "-85dBm"},
+ { 6, "-80dBm"},
+ { 7, "-75dBm"},
+ { 8, "-70dBm"},
+ { 9, "-65dBm"},
+ { 10, "-60dBm"},
+ { 11, "+infinity"},
+ { 0, NULL}
+};
+#endif
+
+static const value_string lte_rrc_RSRQ_Range_vals[] = {
+ {-34, "RSRQ < -36dB"},
+ {-33, "-36dB <= RSRQ < -35.5dB"},
+ {-32, "-35.5dB <= RSRQ < -35dB"},
+ {-31, "-35dB <= RSRQ < -34.5dB"},
+ {-30, "-34.5dB <= RSRQ < -34dB"},
+ {-29, "-34dB <= RSRQ < -33.5dB"},
+ {-28, "-33.5dB <= RSRQ < -33dB"},
+ {-27, "-33dB <= RSRQ < -32.5dB"},
+ {-26, "-32.5dB <= RSRQ < -32dB"},
+ {-25, "-32dB <= RSRQ < -31.5dB"},
+ {-24, "-31.5dB <= RSRQ < -31dB"},
+ {-23, "-31dB <= RSRQ < -30.5dB"},
+ {-22, "-30.5dB <= RSRQ < -30dB"},
+ {-21, "-30dB <= RSRQ < -29.5dB"},
+ {-20, "-29.5dB <= RSRQ < -29dB"},
+ {-19, "-29dB <= RSRQ < -28.5dB"},
+ {-18, "-28.5dB <= RSRQ < -28dB"},
+ {-17, "-28dB <= RSRQ < -27.5dB"},
+ {-16, "-27.5dB <= RSRQ < -27dB"},
+ {-15, "-27dB <= RSRQ < -26.5dB"},
+ {-14, "-26.5dB <= RSRQ < -26dB"},
+ {-13, "-26dB <= RSRQ < -25.5dB"},
+ {-12, "-25.5dB <= RSRQ < -25dB"},
+ {-11, "-25dB <= RSRQ < -24.5dB"},
+ {-10, "-24.5dB <= RSRQ < -24dB"},
+ { -9, "-24dB <= RSRQ < -23.5dB"},
+ { -8, "-23.5dB <= RSRQ < -23dB"},
+ { -7, "-23dB <= RSRQ < -22.5dB"},
+ { -6, "-22.5dB <= RSRQ < -22dB"},
+ { -5, "-22dB <= RSRQ < -21.5dB"},
+ { -4, "-21.5dB <= RSRQ < -21dB"},
+ { -3, "-21dB <= RSRQ < -20.5dB"},
+ { -2, "-20.5dB <= RSRQ < -20dB"},
+ { -1, "-20dB <= RSRQ < -19.5dB"},
+ { 0, "RSRQ < -19.5dB"},
+ { 1, "-19.5dB <= RSRQ < -19dB"},
+ { 2, "-19dB <= RSRQ < -18.5dB"},
+ { 3, "-18.5dB <= RSRQ < -18dB"},
+ { 4, "-18dB <= RSRQ < -17.5dB"},
+ { 5, "-17.5dB <= RSRQ < -17dB"},
+ { 6, "-17dB <= RSRQ < -16.5dB"},
+ { 7, "-16.5dB <= RSRQ < -16dB"},
+ { 8, "-16dB <= RSRQ < -15.5dB"},
+ { 9, "-15.5dB <= RSRQ < -15dB"},
+ { 10, "-15dB <= RSRQ < -14.5dB"},
+ { 11, "-14.5dB <= RSRQ < -14dB"},
+ { 12, "-14dB <= RSRQ < -13.5dB"},
+ { 13, "-13.5dB <= RSRQ < -13dB"},
+ { 14, "-13dB <= RSRQ < -12.5dB"},
+ { 15, "-12.5dB <= RSRQ < -12dB"},
+ { 16, "-12dB <= RSRQ < -11.5dB"},
+ { 17, "-11.5dB <= RSRQ < -11dB"},
+ { 18, "-11dB <= RSRQ < -10.5dB"},
+ { 19, "-10.5dB <= RSRQ < -10dB"},
+ { 20, "-10dB <= RSRQ < -9.5dB"},
+ { 21, "-9.5dB <= RSRQ < -9dB"},
+ { 22, "-9dB <= RSRQ < -8.5dB"},
+ { 23, "-8.5dB <= RSRQ < -8dB"},
+ { 24, "-8dB <= RSRQ < -7.5dB"},
+ { 25, "-7.5dB <= RSRQ < -7dB"},
+ { 26, "-7dB <= RSRQ < -6.5dB"},
+ { 27, "-6.5dB <= RSRQ < -6dB"},
+ { 28, "-6dB <= RSRQ < -5.5dB"},
+ { 29, "-5.5dB <= RSRQ < -5dB"},
+ { 30, "-5dB <= RSRQ < -4.5dB"},
+ { 31, "-4.5dB <= RSRQ < -4dB"},
+ { 32, "-4dB <= RSRQ < -3.5dB"},
+ { 33, "-3.5dB <= RSRQ < -3dB"},
+ { 34, "-3dB <= RSRQ"},
+ { 35, "-3dB <= RSRQ < -2.5dB"},
+ { 36, "-2.5dB <= RSRQ < -2dB"},
+ { 37, "-2dB <= RSRQ < -1.5dB"},
+ { 38, "-1.5dB <= RSRQ < -1dB"},
+ { 39, "-1dB <= RSRQ < -0.5dB"},
+ { 40, "-0.5dB <= RSRQ < 0dB"},
+ { 41, "0dB <= RSRQ < 0.5dB"},
+ { 42, "0.5dB <= RSRQ < 1dB"},
+ { 43, "1dB <= RSRQ < 1.5dB"},
+ { 44, "1.5dB <= RSRQ < 2dB"},
+ { 45, "2dB <= RSRQ < 2.5dB"},
+ { 46, "2.5dB <= RSRQ"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_RSRQ_Range_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_RSRQ_Range_vals);
+
+static const value_string lte_rrc_MBSFN_RSRQ_Range_vals[] = {
+ { 0, "RSRQ < -23dB"},
+ { 1, "-23dB <= RSRQ < -22.5dB"},
+ { 2, "-22.5dB <= RSRQ < -22dB"},
+ { 3, "-22dB <= RSRQ < -21.5dB"},
+ { 4, "-21.5dB <= RSRQ < -21dB"},
+ { 5, "-21dB <= RSRQ < -20.5dB"},
+ { 6, "-20.5dB <= RSRQ < -20dB"},
+ { 7, "-20dB <= RSRQ < -19.5dB"},
+ { 8, "-19.5dB <= RSRQ < -19dB"},
+ { 9, "-19dB <= RSRQ < -18.5dB"},
+ { 10, "-18.5dB <= RSRQ < -18dB"},
+ { 11, "-18dB <= RSRQ < -17.5dB"},
+ { 12, "-17.5dB <= RSRQ < -17dB"},
+ { 13, "-17dB <= RSRQ < -16.5dB"},
+ { 14, "-16.5dB <= RSRQ < -16dB"},
+ { 15, "-16dB <= RSRQ < -15.5dB"},
+ { 16, "-15.5dB <= RSRQ < -15dB"},
+ { 17, "-15dB <= RSRQ < -14.5dB"},
+ { 18, "-14.5dB <= RSRQ < -14dB"},
+ { 19, "-14dB <= RSRQ < -13.5dB"},
+ { 20, "-13.5dB <= RSRQ < -13dB"},
+ { 21, "-13dB <= RSRQ < -12.5dB"},
+ { 22, "-12.5dB <= RSRQ < -12dB"},
+ { 23, "-12dB <= RSRQ < -11.5dB"},
+ { 24, "-11.5dB <= RSRQ < -11dB"},
+ { 25, "-11dB <= RSRQ < -10.5dB"},
+ { 26, "-10.5dB <= RSRQ < -10dB"},
+ { 27, "-10dB <= RSRQ < -9.5dB"},
+ { 28, "-9.5dB <= RSRQ < -9dB"},
+ { 29, "-9dB <= RSRQ < -8.5dB"},
+ { 30, "-8.5dB <= RSRQ < -8dB"},
+ { 31, "-8dB <= RSRQ"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_MBSFN_RSRQ_Range_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_MBSFN_RSRQ_Range_vals);
+
+static void
+lte_rrc_ue_RxTxTimeDiffResult_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "T < 2Ts (0)");
+ } else if (v < 2048) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs <= T < %uTs (%u)", v*2, (v+1)*2, v);
+ } else if (v < 4095) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs <= T < %uTs (%u)", (v*8)-12288, ((v+1)*8)-12288, v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "20472Ts <= T (4095)");
+ }
+}
+
+static const true_false_string lte_rrc_duration_val = {
+ "indefinite",
+ "single"
+};
+
+static const value_string lte_rrc_eab_category_vals[] = {
+ { 0, "a - all UEs" },
+ { 1, "b - UEs not in their HPLMN/EHPLMN" },
+ { 2, "c - UEs not in the most preferred PLMN of the country where they are roaming in EF OPLMNwACT list, nor in their HPLMN/EHPLMN" },
+ { 0, NULL }
+};
+
+static const value_string lte_rrc_daylightSavingTime_vals[] = {
+ { 0, "No adjustment for Daylight Saving Time"},
+ { 1, "+1 hour adjustment for Daylight Saving Time"},
+ { 2, "+2 hours adjustment for Daylight Saving Time"},
+ { 3, "Reserved"},
+ { 0, NULL},
+};
+
+static const value_string lte_rrc_neighCellConfig_vals[] = {
+ { 0, "Not all neighbour cells have the same MBSFN subframe allocation as serving cell"},
+ { 1, "No MBSFN subframes are present in all neighbour cells"},
+ { 2, "The MBSFN subframe allocations of all neighbour cells are identical to or subsets of that in the serving cell"},
+ { 3, "Different UL/DL allocation in neighbouring cells for TDD compared to the serving cell"},
+ { 0, NULL},
+};
+
+static const value_string lte_rrc_messageIdentifier_vals[] = {
+ { 0x1100, "ETWS Identifier for earthquake warning message"},
+ { 0x1101, "ETWS Identifier for tsunami warning message"},
+ { 0x1102, "ETWS Identifier for earthquake and tsunami combined warning message"},
+ { 0x1103, "ETWS Identifier for test message"},
+ { 0x1104, "ETWS Identifier for messages related to other emergency types"},
+ { 0x1105, "ETWS Identifier for future extension"},
+ { 0x1106, "ETWS Identifier for future extension"},
+ { 0x1107, "ETWS Identifier for future extension"},
+ { 0x1112, "CMAS Identifier for CMAS Presidential Level Alerts"},
+ { 0x1113, "CMAS Identifier for CMAS Extreme Alerts with Severity of Extreme, Urgency of Immediate, and Certainty of Observed"},
+ { 0x1114, "CMAS Identifier for CMAS Extreme Alerts with Severity of Extreme, Urgency of Immediate, and Certainty of Likely"},
+ { 0x1115, "CMAS Identifier for CMAS Severe Alerts with Severity of Extreme, Urgency of Expected, and Certainty of Observed"},
+ { 0x1116, "CMAS Identifier for CMAS Severe Alerts with Severity of Extreme, Urgency of Expected, and Certainty of Likely"},
+ { 0x1117, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Immediate, and Certainty of Observed"},
+ { 0x1118, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Immediate, and Certainty of Likely"},
+ { 0x1119, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Expected, and Certainty of Observed"},
+ { 0x111a, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Expected, and Certainty of Likely"},
+ { 0x111b, "CMAS Identifier for Child Abduction Emergency (or Amber Alert)"},
+ { 0x111c, "CMAS Identifier for the Required Monthly Test"},
+ { 0x111d, "CMAS Identifier for CMAS Exercise"},
+ { 0x111e, "CMAS Identifier for operator defined use"},
+ { 0x111f, "CMAS Identifier for CMAS Presidential Level Alerts for additional languages"},
+ { 0x1120, "CMAS Identifier for CMAS Extreme Alerts with Severity of Extreme, Urgency of Immediate, and Certainty of Observed for additional languages"},
+ { 0x1121, "CMAS Identifier for CMAS Extreme Alerts with Severity of Extreme, Urgency of Immediate, and Certainty of Likely for additional languages"},
+ { 0x1122, "CMAS Identifier for CMAS Severe Alerts with Severity of Extreme, Urgency of Expected, and Certainty of Observed for additional languages"},
+ { 0x1123, "CMAS Identifier for CMAS Severe Alerts with Severity of Extreme, Urgency of Expected, and Certainty of Likely for additional languages"},
+ { 0x1124, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Immediate, and Certainty of Observed for additional languages"},
+ { 0x1125, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Immediate, and Certainty of Likely for additional languages"},
+ { 0x1126, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Expected, and Certainty of Observed for additional languages"},
+ { 0x1127, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Expected, and Certainty of Likely for additional languages"},
+ { 0x1128, "CMAS Identifier for Child Abduction Emergency (or Amber Alert) for additional languages"},
+ { 0x1129, "CMAS Identifier for the Required Monthly Test for additional languages"},
+ { 0x112a, "CMAS Identifier for CMAS Exercise for additional languages"},
+ { 0x112b, "CMAS Identifier for operator defined use for additional languages"},
+ { 0, NULL},
+};
+static value_string_ext lte_rrc_messageIdentifier_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_messageIdentifier_vals);
+
+static const value_string lte_rrc_serialNumber_gs_vals[] = {
+ { 0, "Display mode immediate, cell wide"},
+ { 1, "Display mode normal, PLMN wide"},
+ { 2, "Display mode normal, tracking area wide"},
+ { 3, "Display mode normal, cell wide"},
+ { 0, NULL},
+};
+
+static const value_string lte_rrc_warningType_vals[] = {
+ { 0, "Earthquake"},
+ { 1, "Tsunami"},
+ { 2, "Earthquake and Tsunami"},
+ { 3, "Test"},
+ { 4, "Other"},
+ { 0, NULL},
+};
+
+static const true_false_string lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1_val = {
+ "SCell DL subframes are a subset or superset of PCell by SIB1 configuration - Supported",
+ "SCell DL subframes are a subset or superset of PCell by SIB1 configuration - Not supported",
+};
+
+static const true_false_string lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2_val = {
+ "SCell DL subframes are neither superset nor subset of PCell by SIB1 configuration - Supported",
+ "SCell DL subframes are neither superset nor subset of PCell by SIB1 configuration - Not supported",
+};
+
+static const true_false_string lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1_val = {
+ "TDD PCell - Supported",
+ "TDD PCell - Not supported"
+};
+
+static const true_false_string lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2_val = {
+ "FDD PCell - Supported",
+ "FDD PCell - Not supported"
+};
+
+static const true_false_string hf_lte_rrc_codebook_HARQ_ACK_r13_bit1_val = {
+ "DAI-based codebook size determination - Supported",
+ "DAI-based codebook size determination - Not supported"
+};
+
+static const true_false_string hf_lte_rrc_codebook_HARQ_ACK_r13_bit2_val = {
+ "Number of configured CCs based codebook size determination - Supported",
+ "Number of configured CCs based codebook size determination - Not supported"
+};
+
+static const true_false_string lte_rrc_transmissionModeList_r12_val = {
+ "NeighCellsInfo applies",
+ "NeighCellsInfo does not apply"
+};
+
+static const value_string lte_rrc_codebooksizeDetermination_r13_vals[] = {
+ { 0, "HARQ codebook size is determined with downlink assignment indicator"},
+ { 1, "HARQ codebook size is determined with number of configured CCs"},
+ { 0, NULL},
+};
+
+static const value_string lte_rrc_excessDelay_r13_vals[] = {
+ { 0, "ratio < 0.079%"},
+ { 1, "0.079% < ratio < 0.100%"},
+ { 2, "0.100% < ratio < 0.126%"},
+ { 3, "0.126% < ratio < 0.158%"},
+ { 4, "0.158% < ratio < 0.199%"},
+ { 5, "0.199% < ratio < 0.251%"},
+ { 6, "0.251% < ratio < 0.316%"},
+ { 7, "0.316% < ratio < 0.398%"},
+ { 8, "0.398% < ratio < 0.501%"},
+ { 9, "0.501% < ratio < 0.631%"},
+ { 10, "0.631% < ratio < 0.794%"},
+ { 11, "0.794% < ratio < 1.000%"},
+ { 12, "1.000% < ratio < 1.259%"},
+ { 13, "1.259% < ratio < 1.585%"},
+ { 14, "1.585% < ratio < 1.995%"},
+ { 15, "1.995% < ratio < 2.511%"},
+ { 16, "2.511% < ratio < 3.161%"},
+ { 17, "3.161% < ratio < 3.980%"},
+ { 18, "3.980% < ratio < 5.011%"},
+ { 19, "5.011% < ratio < 6.309%"},
+ { 20, "6.309% < ratio < 7.943%"},
+ { 21, "7.943% < ratio < 10.00%"},
+ { 22, "10.00% < ratio < 12.589%"},
+ { 23, "12.589% < ratio < 15.849%"},
+ { 24, "15.849% < ratio < 19.953%"},
+ { 25, "19.953% < ratio < 25.119%"},
+ { 26, "25.119% < ratio < 31.623%"},
+ { 27, "31.623% < ratio < 39.811%"},
+ { 28, "39.811% < ratio < 50.119%"},
+ { 29, "50.119% < ratio < 63.096%"},
+ { 30, "63.096% < ratio < 79.433%"},
+ { 31, "79.433% < ratio < 100%"},
+ { 0, NULL}
+};
+static value_string_ext lte_rrc_excessDelay_r13_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_excessDelay_r13_vals);
+
+static void
+lte_rrc_subframeBoundaryOffsetResult_r13_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "abs(deltaZ) < 700Ts (0)");
+ } else if (v == 63) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "1320Ts < abs(deltaZ) (63)");
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs < abs(deltaZ) <= %uTs (%u)", 700+(v-1)*10, 700+v*10, v);
+ }
+}
+
+static void
+lte_rrc_RS_SINR_Range_r13_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RS-SINR < -23dB (0)");
+ } else if (v == 127) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "40dB <= RS-SINR (127)");
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RS-SINR < %.1fdB (%u)", (((float)v-1)/2)-23, ((float)v/2)-23, v);
+ }
+}
+
+static void
+lte_rrc_RSSI_Range_r13_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)");
+ } else if (v == 76) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "-25dBm <= RSSI (76)");
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSSI < %ddBm (%u)", -100+(v-1), -100+v, v);
+ }
+}
+
+static void
+lte_rrc_call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ TRY {
+ call_dissector(handle, tvb, pinfo, tree);
+ }
+ CATCH_BOUNDS_ERRORS {
+ show_exception(tvb, pinfo, tree, EXCEPT_CODE, GET_MESSAGE);
+ }
+ ENDTRY;
+}
+
+/*****************************************************************************/
+/* Packet private data */
+/* For this dissector, all access to actx->private_data should be made */
+/* through this API, which ensures that they will not overwrite each other!! */
+/*****************************************************************************/
+
+typedef struct meas_capabilities_item_band_mappings_t {
+ guint16 number_of_bands_set;
+ guint16 number_of_interfreq_serving_read;
+ guint16 number_of_interfreq_target_read;
+ guint16 band_by_item[256];
+} meas_capabilities_item_band_mappings_t;
+
+
+/**********************************************************/
+/* Struct to store all current uses of packet private data */
+typedef struct lte_rrc_private_data_t
+{
+ guint8 rat_type;
+ guint8 target_rat_type;
+ guint8 si_or_psi_geran;
+ guint8 ra_preambles;
+ guint16 message_identifier;
+ guint8 warning_message_segment_type;
+ guint8 warning_message_segment_number;
+ drb_mapping_t drb_mapping;
+ drx_config_t drx_config;
+ pdcp_security_info_t pdcp_security;
+ meas_capabilities_item_band_mappings_t meas_capabilities_item_band_mappings;
+ simult_pucch_pusch_cell_type cell_type;
+} lte_rrc_private_data_t;
+
+/* Helper function to get or create a struct that will be actx->private_data */
+static lte_rrc_private_data_t* lte_rrc_get_private_data(asn1_ctx_t *actx)
+{
+ if (actx->private_data != NULL) {
+ return (lte_rrc_private_data_t*)actx->private_data;
+ }
+ else {
+ lte_rrc_private_data_t* new_struct =
+ (lte_rrc_private_data_t*)wmem_alloc0(wmem_packet_scope(), sizeof(lte_rrc_private_data_t));
+ actx->private_data = new_struct;
+ return new_struct;
+ }
+}
+
+
+/* DRX config data */
+static drx_config_t* private_data_get_drx_config(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return &private_data->drx_config;
+}
+
+/* DRB mapping info */
+static drb_mapping_t* private_data_get_drb_mapping(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return &private_data->drb_mapping;
+}
+
+
+/* RAT type */
+static guint8 private_data_get_rat_type(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return private_data->rat_type;
+}
+
+static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->rat_type = rat_type;
+}
+
+
+/* Target RAT type */
+static guint8 private_data_get_rat_target_type(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return private_data->target_rat_type;
+}
+
+static void private_data_set_rat_target_type(asn1_ctx_t *actx, guint8 target_rat_type)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->target_rat_type = target_rat_type;
+}
+
+
+/* si_or_psi_geran */
+static guint8 private_data_get_si_or_psi_geran(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return private_data->si_or_psi_geran;
+}
+
+static void private_data_set_si_or_psi_geran(asn1_ctx_t *actx, guint8 si_or_psi_geran)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->si_or_psi_geran = si_or_psi_geran;
+}
+
+
+/* Message identifier */
+static guint16 private_data_get_message_identifier(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return private_data->message_identifier;
+}
+
+static void private_data_set_message_identifier(asn1_ctx_t *actx, guint16 message_identifier)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->message_identifier = message_identifier;
+}
+
+
+/* Warning message segment type */
+static guint16 private_data_get_warning_message_segment_type(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return private_data->warning_message_segment_type;
+}
+
+static void private_data_set_warning_message_segment_type(asn1_ctx_t *actx, guint8 segment_type)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->warning_message_segment_type = segment_type;
+}
+
+
+/* Warning message segment number */
+static guint16 private_data_get_warning_message_segment_number(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return private_data->warning_message_segment_number;
+}
+
+static void private_data_set_warning_message_segment_number(asn1_ctx_t *actx, guint8 segment_number)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->warning_message_segment_number = segment_number;
+}
+
+
+/* Number of RA-preambles */
+static guint8 private_data_get_ra_preambles(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return private_data->ra_preambles;
+}
+
+static void private_data_set_ra_preambles(asn1_ctx_t *actx, guint8 ra_preambles)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->ra_preambles = ra_preambles;
+}
+
+
+/* PDCP Security info */
+static pdcp_security_info_t* private_data_pdcp_security_algorithms(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return &private_data->pdcp_security;
+}
+
+
+/* Measurement UE capabilities item -> band mappings */
+static meas_capabilities_item_band_mappings_t* private_data_meas_capabilities_item_band_mappings(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return &private_data->meas_capabilities_item_band_mappings;
+}
+
+static void set_freq_band_indicator(guint32 value, asn1_ctx_t *actx)
+{
+ /* Store band mapping for this item in the next position */
+ meas_capabilities_item_band_mappings_t *mappings = private_data_meas_capabilities_item_band_mappings(actx);
+ if (mappings->number_of_bands_set < 256) {
+ mappings->band_by_item[mappings->number_of_bands_set++] = (guint16)value;
+ }
+}
+
+static void remove_last_freq_band_indicator(asn1_ctx_t *actx)
+{
+ meas_capabilities_item_band_mappings_t *mappings = private_data_meas_capabilities_item_band_mappings(actx);
+ if ((mappings->number_of_bands_set > 0) && (mappings->number_of_bands_set < 256)) {
+ mappings->number_of_bands_set--;
+ }
+}
+
+/* Cell type for simultaneousPUCCH-PUSCH-r10 */
+static simult_pucch_pusch_cell_type private_data_get_simult_pucch_pusch_cell_type(asn1_ctx_t *actx)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ return private_data->cell_type;
+}
+
+static void private_data_set_simult_pucch_pusch_cell_type(asn1_ctx_t *actx, simult_pucch_pusch_cell_type cell_type)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->cell_type = cell_type;
+}
+
+/*****************************************************************************/
+
+
+static void
+lte_rrc_localTimeOffset_fmt(gchar *s, guint32 v)
+{
+ gint32 time_offset = (gint32) v;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "UTC time %c %dhr %dmin (%d)",
+ (time_offset < 0) ? '-':'+', abs(time_offset) >> 2,
+ (abs(time_offset) & 0x03) * 15, time_offset);
+}
+
+static void
+dissect_lte_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dataCodingScheme)
+{
+ guint32 offset;
+ guint8 nb_of_pages, length, *str;
+ proto_item *ti;
+ tvbuff_t *cb_data_page_tvb, *cb_data_tvb;
+ int i;
+
+ nb_of_pages = tvb_get_guint8(warning_msg_seg_tvb, 0);
+ ti = proto_tree_add_uint(tree, hf_lte_rrc_warningMessageSegment_nb_pages, warning_msg_seg_tvb, 0, 1, nb_of_pages);
+ if (nb_of_pages > 15) {
+ expert_add_info_format(pinfo, ti, &ei_lte_rrc_number_pages_le15,
+ "Number of pages should be <=15 (found %u)", nb_of_pages);
+ nb_of_pages = 15;
+ }
+ for (i = 0, offset = 1; i < nb_of_pages; i++) {
+ length = tvb_get_guint8(warning_msg_seg_tvb, offset+82);
+ cb_data_page_tvb = tvb_new_subset_length(warning_msg_seg_tvb, offset, length);
+ cb_data_tvb = dissect_cbs_data(dataCodingScheme, cb_data_page_tvb, tree, pinfo, 0);
+ if (cb_data_tvb) {
+ str = tvb_get_string_enc(wmem_packet_scope(), cb_data_tvb, 0, tvb_reported_length(cb_data_tvb), ENC_UTF_8|ENC_NA);
+ proto_tree_add_string_format(tree, hf_lte_rrc_warningMessageSegment_decoded_page, warning_msg_seg_tvb, offset, 83,
+ str, "Decoded Page %u: %s", i+1, str);
+ }
+ offset += 83;
+ }
+}
+
+static void
+dissect_lte_rrc_featureGroupIndicators(tvbuff_t *featureGroupIndicators_tvb, asn1_ctx_t *actx)
+{
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_featureGroupIndicators);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_1, featureGroupIndicators_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_2, featureGroupIndicators_tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_3, featureGroupIndicators_tvb, 2, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_4, featureGroupIndicators_tvb, 3, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_5, featureGroupIndicators_tvb, 4, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_6, featureGroupIndicators_tvb, 5, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_7, featureGroupIndicators_tvb, 6, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_8, featureGroupIndicators_tvb, 7, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_9, featureGroupIndicators_tvb, 8, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_10, featureGroupIndicators_tvb, 9, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_11, featureGroupIndicators_tvb, 10, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_12, featureGroupIndicators_tvb, 11, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_13, featureGroupIndicators_tvb, 12, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_14, featureGroupIndicators_tvb, 13, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_15, featureGroupIndicators_tvb, 14, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_16, featureGroupIndicators_tvb, 15, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_17, featureGroupIndicators_tvb, 16, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_18, featureGroupIndicators_tvb, 17, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_19, featureGroupIndicators_tvb, 18, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_20, featureGroupIndicators_tvb, 19, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_21, featureGroupIndicators_tvb, 20, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_22, featureGroupIndicators_tvb, 21, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_23, featureGroupIndicators_tvb, 22, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_24, featureGroupIndicators_tvb, 23, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_25, featureGroupIndicators_tvb, 24, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_26, featureGroupIndicators_tvb, 25, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_27, featureGroupIndicators_tvb, 26, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_28, featureGroupIndicators_tvb, 27, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_29, featureGroupIndicators_tvb, 28, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_30, featureGroupIndicators_tvb, 29, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_31, featureGroupIndicators_tvb, 30, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_32, featureGroupIndicators_tvb, 31, 1, ENC_BIG_ENDIAN);
+}
+
+static void
+dissect_lte_rrc_featureGroupIndRel10(tvbuff_t *featureGroupIndRel10_tvb, asn1_ctx_t *actx)
+{
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_featureGroupIndRel10);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_101, featureGroupIndRel10_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_102, featureGroupIndRel10_tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_103, featureGroupIndRel10_tvb, 2, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_104, featureGroupIndRel10_tvb, 3, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_105, featureGroupIndRel10_tvb, 4, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_106, featureGroupIndRel10_tvb, 5, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_107, featureGroupIndRel10_tvb, 6, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_108, featureGroupIndRel10_tvb, 7, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_109, featureGroupIndRel10_tvb, 8, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_110, featureGroupIndRel10_tvb, 9, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_111, featureGroupIndRel10_tvb, 10, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_112, featureGroupIndRel10_tvb, 11, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_113, featureGroupIndRel10_tvb, 12, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_114, featureGroupIndRel10_tvb, 13, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_115, featureGroupIndRel10_tvb, 14, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_116, featureGroupIndRel10_tvb, 15, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_117, featureGroupIndRel10_tvb, 16, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_118, featureGroupIndRel10_tvb, 17, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_119, featureGroupIndRel10_tvb, 18, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_120, featureGroupIndRel10_tvb, 19, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_121, featureGroupIndRel10_tvb, 20, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_122, featureGroupIndRel10_tvb, 21, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_123, featureGroupIndRel10_tvb, 22, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_124, featureGroupIndRel10_tvb, 23, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_125, featureGroupIndRel10_tvb, 24, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_126, featureGroupIndRel10_tvb, 25, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_127, featureGroupIndRel10_tvb, 26, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_128, featureGroupIndRel10_tvb, 27, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_129, featureGroupIndRel10_tvb, 28, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_130, featureGroupIndRel10_tvb, 29, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_131, featureGroupIndRel10_tvb, 30, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_132, featureGroupIndRel10_tvb, 31, 1, ENC_BIG_ENDIAN);
+}
+
+static void
+dissect_lte_rrc_featureGroupIndRel9Add(tvbuff_t *featureGroupIndRel9Add_tvb, asn1_ctx_t *actx)
+{
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_featureGroupIndRel9Add);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_33, featureGroupIndRel9Add_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_34, featureGroupIndRel9Add_tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_35, featureGroupIndRel9Add_tvb, 2, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_36, featureGroupIndRel9Add_tvb, 3, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_37, featureGroupIndRel9Add_tvb, 4, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_38, featureGroupIndRel9Add_tvb, 5, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_39, featureGroupIndRel9Add_tvb, 6, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_40, featureGroupIndRel9Add_tvb, 7, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_41, featureGroupIndRel9Add_tvb, 8, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_42, featureGroupIndRel9Add_tvb, 9, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_43, featureGroupIndRel9Add_tvb, 10, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_44, featureGroupIndRel9Add_tvb, 11, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_45, featureGroupIndRel9Add_tvb, 12, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_46, featureGroupIndRel9Add_tvb, 13, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_47, featureGroupIndRel9Add_tvb, 14, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_48, featureGroupIndRel9Add_tvb, 15, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_49, featureGroupIndRel9Add_tvb, 16, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_50, featureGroupIndRel9Add_tvb, 17, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_51, featureGroupIndRel9Add_tvb, 18, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_52, featureGroupIndRel9Add_tvb, 19, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_53, featureGroupIndRel9Add_tvb, 20, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_54, featureGroupIndRel9Add_tvb, 21, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_55, featureGroupIndRel9Add_tvb, 22, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_56, featureGroupIndRel9Add_tvb, 23, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_57, featureGroupIndRel9Add_tvb, 24, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_58, featureGroupIndRel9Add_tvb, 25, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_59, featureGroupIndRel9Add_tvb, 26, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_60, featureGroupIndRel9Add_tvb, 27, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_61, featureGroupIndRel9Add_tvb, 28, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_62, featureGroupIndRel9Add_tvb, 29, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_63, featureGroupIndRel9Add_tvb, 30, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_64, featureGroupIndRel9Add_tvb, 31, 1, ENC_BIG_ENDIAN);
+}
+
+/* Functions to get enum values out of indices parsed */
+/* If entry not found, return last element of array */
+static guint32 drx_lookup_onDurationTimer(guint32 idx)
+{
+ static const guint32 vals[] = {1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200};
+
+ if (idx < (sizeof(vals)/sizeof(guint32))) {
+ return vals[idx];
+ }
+ return (sizeof(vals)/(sizeof(guint32)) - 1);
+}
+
+static guint32 drx_lookup_inactivityTimer(guint32 idx)
+{
+ static const guint32 vals[] = {
+ 1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200,300, 500,750,1280,1920,2560,0
+ };
+
+ if (idx < (sizeof(vals)/sizeof(guint32))) {
+ return vals[idx];
+ }
+ return (sizeof(vals)/(sizeof(guint32)) - 1);
+}
+
+static guint32 drx_lookup_retransmissionTimer(guint32 idx)
+{
+ static const guint32 vals[] = {1,2,4,6,8,16,24,33};
+
+ if (idx < (sizeof(vals)/sizeof(guint32))) {
+ return vals[idx];
+ }
+ return (sizeof(vals)/(sizeof(guint32)) - 1);
+}
+
+static guint32 drx_lookup_longCycle(guint32 idx)
+{
+ static const guint32 vals[] = {
+ 10,20,32,40,64,80,128,160,256,320,512,640,1024,1280,2048,2560
+ };
+
+ if (idx < (sizeof(vals)/sizeof(guint32))) {
+ return vals[idx];
+ }
+ return (sizeof(vals)/(sizeof(guint32)) - 1);
+}
+
+static guint32 drx_lookup_longCycle_v1130(guint32 idx)
+{
+ static const guint32 vals[] = {
+ 60,70
+ };
+
+ if (idx < (sizeof(vals)/sizeof(guint32))) {
+ return vals[idx];
+ }
+ return (sizeof(vals)/(sizeof(guint32)) - 1);
+}
+
+
+static guint32 drx_lookup_shortCycle(guint32 idx)
+{
+ static const guint32 vals[] = {
+ 2,5,8,10,16,20,32,40,64,80,128,160,256,320,512,640
+ };
+
+ if (idx < (sizeof(vals)/sizeof(guint32))) {
+ return vals[idx];
+ }
+ return (sizeof(vals)/(sizeof(guint32)) - 1);
+}
+
+static void drx_check_config_sane(drx_config_t *config, asn1_ctx_t *actx)
+{
+ /* OnDuration must be shorter than long cycle */
+ if (config->onDurationTimer >= config->longCycle) {
+ expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_invalid_drx_config,
+ "OnDurationTimer (%u) should be less than long cycle (%u)",
+ config->onDurationTimer, config->longCycle);
+ }
+
+ if (config->shortCycleConfigured) {
+ /* Short cycle must be < long, and be a multiple of it */
+ if (config->shortCycle >= config->longCycle) {
+ expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_invalid_drx_config,
+ "Short DRX cycle (%u) must be shorter than long cycle (%u)",
+ config->shortCycle, config->longCycle);
+ }
+ /* Long cycle needs to be an exact multiple of the short cycle */
+ else if (config->shortCycle && ((config->longCycle % config->shortCycle) != 0)) {
+ expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_invalid_drx_config,
+ "Short DRX cycle (%u) must divide the long cycle (%u) exactly",
+ config->shortCycle, config->longCycle);
+
+ }
+ /* OnDuration shouldn't be longer than the short cycle */
+ if (config->onDurationTimer >= config->shortCycle) {
+ expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_invalid_drx_config,
+ "OnDurationTimer (%u) should not be longer than the short cycle (%u)",
+ config->onDurationTimer, config->shortCycle);
+ }
+ /* TODO: check that (onDuration+(shortCycle*shortCycleTimer)) < longCycle ? */
+ /* TODO: check that (shortCycle*shortCycleTimer) < longCycle ? */
+ }
+}
+
+/* Break sr-configIndex down into periodicity and offset. From 36.231, 10.1 */
+static void sr_lookup_configindex(guint32 config_index, guint16 *periodicity, guint16 *offset)
+{
+ if (config_index < 5) {
+ *periodicity = 5;
+ *offset = config_index;
+ } else if (config_index < 15) {
+ *periodicity = 10;
+ *offset = config_index - 5;
+ }
+ else if (config_index < 35) {
+ *periodicity = 20;
+ *offset = config_index - 15;
+ }
+ else if (config_index < 75) {
+ *periodicity = 40;
+ *offset = config_index - 35;
+ }
+ else if (config_index < 155) {
+ *periodicity = 80;
+ *offset = config_index - 75;
+ }
+ else if (config_index < 157) {
+ *periodicity = 2;
+ *offset = config_index - 155;
+ }
+ else {
+ *periodicity = 1;
+ *offset = 0;
+ }
+}
+
+#include "packet-lte-rrc-fn.c"
+
+static int
+dissect_lte_rrc_DL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC DL_CCCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_DL_CCCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_DL_DCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC DL_DCCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_DL_DCCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+
+static int
+dissect_lte_rrc_UL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC UL_CCCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_UL_CCCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_UL_DCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC UL_DCCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_UL_DCCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_BCCH_BCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC BCCH_BCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_BCCH_BCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_BCCH_DL_SCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC DL_SCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_BCCH_DL_SCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_PCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC PCCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_PCCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_MCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC MCCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_MCCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_Handover_Preparation_Info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE_HO_Prep_Info");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ /* Don't want elements inside message updating Info column, so set now and
+ freeze during dissection of PDU */
+ col_set_str(pinfo->cinfo, COL_INFO, "HandoverPreparationInformation");
+ col_set_writable(pinfo->cinfo, FALSE);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_lte_rrc_HandoverPreparationInformation_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+
+ col_set_writable(pinfo->cinfo, TRUE);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_SBCCH_SL_BCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC SBCCH_SL_BCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_SBCCH_SL_BCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_lte_rrc_SC_MCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC SC MCCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_SC_MCCH_Message_PDU(tvb, pinfo, lte_rrc_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+static void
+lte_rrc_init_protocol(void)
+{
+ lte_rrc_etws_cmas_dcs_hash = g_hash_table_new(g_direct_hash, g_direct_equal);
+ lte_rrc_system_info_value_changed_hash = g_hash_table_new(g_direct_hash, g_direct_equal);
+ reassembly_table_init(&lte_rrc_sib11_reassembly_table,
+ &addresses_reassembly_table_functions);
+ reassembly_table_init(&lte_rrc_sib12_reassembly_table,
+ &addresses_reassembly_table_functions);
+}
+
+static void
+lte_rrc_cleanup_protocol(void)
+{
+ g_hash_table_destroy(lte_rrc_etws_cmas_dcs_hash);
+ g_hash_table_destroy(lte_rrc_system_info_value_changed_hash);
+ reassembly_table_destroy(&lte_rrc_sib11_reassembly_table);
+ reassembly_table_destroy(&lte_rrc_sib12_reassembly_table);
+}
+
+/*--- proto_register_rrc -------------------------------------------*/
+void proto_register_lte_rrc(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-lte-rrc-hfarr.c"
+
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_1,
+ { "Indicator 1", "lte-rrc.eutra_cap_feat_group_ind_1",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_1_val), 0,
+ "EUTRA Feature Group Indicator 1", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_2,
+ { "Indicator 2", "lte-rrc.eutra_cap_feat_group_ind_2",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_2_val), 0,
+ "EUTRA Feature Group Indicator 2", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_3,
+ { "Indicator 3", "lte-rrc.eutra_cap_feat_group_ind_3",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_3_val), 0,
+ "EUTRA Feature Group Indicator 3", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_4,
+ { "Indicator 4", "lte-rrc.eutra_cap_feat_group_ind_4",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_4_val), 0,
+ "EUTRA Feature Group Indicator 4", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_5,
+ { "Indicator 5", "lte-rrc.eutra_cap_feat_group_ind_5",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_5_val), 0,
+ "EUTRA Feature Group Indicator 5", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_6,
+ { "Indicator 6", "lte-rrc.eutra_cap_feat_group_ind_6",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_6_val), 0,
+ "EUTRA Feature Group Indicator 6", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_7,
+ { "Indicator 7", "lte-rrc.eutra_cap_feat_group_ind_7",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_7_val), 0,
+ "EUTRA Feature Group Indicator 7", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_8,
+ { "Indicator 8", "lte-rrc.eutra_cap_feat_group_ind_8",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_8_val), 0,
+ "EUTRA Feature Group Indicator 8", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_9,
+ { "Indicator 9", "lte-rrc.eutra_cap_feat_group_ind_9",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_9_val), 0,
+ "EUTRA Feature Group Indicator 9", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_10,
+ { "Indicator 10", "lte-rrc.eutra_cap_feat_group_ind_10",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_10_val), 0,
+ "EUTRA Feature Group Indicator 10", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_11,
+ { "Indicator 11", "lte-rrc.eutra_cap_feat_group_ind_11",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_11_val), 0,
+ "EUTRA Feature Group Indicator 11", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_12,
+ { "Indicator 12", "lte-rrc.eutra_cap_feat_group_ind_12",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_12_val), 0,
+ "EUTRA Feature Group Indicator 12", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_13,
+ { "Indicator 13", "lte-rrc.eutra_cap_feat_group_ind_13",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_13_val), 0,
+ "EUTRA Feature Group Indicator", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_14,
+ { "Indicator 14", "lte-rrc.eutra_cap_feat_group_ind_14",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_14_val), 0,
+ "EUTRA Feature Group Indicator 14", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_15,
+ { "Indicator 15", "lte-rrc.eutra_cap_feat_group_ind_15",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_15_val), 0,
+ "EUTRA Feature Group Indicator 15", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_16,
+ { "Indicator 16", "lte-rrc.eutra_cap_feat_group_ind_16",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_16_val), 0,
+ "EUTRA Feature Group Indicator 16", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_17,
+ { "Indicator 17", "lte-rrc.eutra_cap_feat_group_ind_17",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_17_val), 0,
+ "EUTRA Feature Group Indicator 17", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_18,
+ { "Indicator 18", "lte-rrc.eutra_cap_feat_group_ind_18",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_18_val), 0,
+ "EUTRA Feature Group Indicator 18", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_19,
+ { "Indicator 19", "lte-rrc.eutra_cap_feat_group_ind_19",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_19_val), 0,
+ "EUTRA Feature Group Indicator 19", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_20,
+ { "Indicator 20", "lte-rrc.eutra_cap_feat_group_ind_20",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_20_val), 0,
+ "EUTRA Feature Group Indicator 20", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_21,
+ { "Indicator 21", "lte-rrc.eutra_cap_feat_group_ind_21",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_21_val), 0,
+ "EUTRA Feature Group Indicator 21", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_22,
+ { "Indicator 22", "lte-rrc.eutra_cap_feat_group_ind_22",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_22_val), 0,
+ "EUTRA Feature Group Indicator 22", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_23,
+ { "Indicator 23", "lte-rrc.eutra_cap_feat_group_ind_23",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_23_val), 0,
+ "EUTRA Feature Group Indicator 23", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_24,
+ { "Indicator 24", "lte-rrc.eutra_cap_feat_group_ind_24",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_24_val), 0,
+ "EUTRA Feature Group Indicator 24", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_25,
+ { "Indicator 25", "lte-rrc.eutra_cap_feat_group_ind_25",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_25_val), 0,
+ "EUTRA Feature Group Indicator 25", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_26,
+ { "Indicator 26", "lte-rrc.eutra_cap_feat_group_ind_26",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_26_val), 0,
+ "EUTRA Feature Group Indicator 26", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_27,
+ { "Indicator 27", "lte-rrc.eutra_cap_feat_group_ind_27",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_27_val), 0,
+ "EUTRA Feature Group Indicator 27", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_28,
+ { "Indicator 28", "lte-rrc.eutra_cap_feat_group_ind_28",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_28_val), 0,
+ "EUTRA Feature Group Indicator 28", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_29,
+ { "Indicator 29", "lte-rrc.eutra_cap_feat_group_ind_29",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_29_val), 0,
+ "EUTRA Feature Group Indicator 29", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_30,
+ { "Indicator 30", "lte-rrc.eutra_cap_feat_group_ind_30",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_30_val), 0,
+ "EUTRA Feature Group Indicator 30", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_31,
+ { "Indicator 31", "lte-rrc.eutra_cap_feat_group_ind_31",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_31_val), 0,
+ "EUTRA Feature Group Indicator 31", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_32,
+ { "Indicator 32", "lte-rrc.eutra_cap_feat_group_ind_32",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_32_val), 0,
+ "EUTRA Feature Group Indicator 32", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_33,
+ { "Indicator 33", "lte-rrc.eutra_cap_feat_group_ind_33",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_33_val), 0,
+ "EUTRA Feature Group Indicator 33", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_34,
+ { "Indicator 34", "lte-rrc.eutra_cap_feat_group_ind_34",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_34_val), 0,
+ "EUTRA Feature Group Indicator 34", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_35,
+ { "Indicator 35", "lte-rrc.eutra_cap_feat_group_ind_35",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_35_val), 0,
+ "EUTRA Feature Group Indicator 35", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_36,
+ { "Indicator 36", "lte-rrc.eutra_cap_feat_group_ind_36",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_36_val), 0,
+ "EUTRA Feature Group Indicator 36", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_37,
+ { "Indicator 37", "lte-rrc.eutra_cap_feat_group_ind_37",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_37_val), 0,
+ "EUTRA Feature Group Indicator 37", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_38,
+ { "Indicator 38", "lte-rrc.eutra_cap_feat_group_ind_38",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_38_val), 0,
+ "EUTRA Feature Group Indicator 38", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_39,
+ { "Indicator 39", "lte-rrc.eutra_cap_feat_group_ind_39",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_39_val), 0,
+ "EUTRA Feature Group Indicator 39", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_40,
+ { "Indicator 40", "lte-rrc.eutra_cap_feat_group_ind_40",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_40_val), 0,
+ "EUTRA Feature Group Indicator 40", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_41,
+ { "Indicator 41", "lte-rrc.eutra_cap_feat_group_ind_41",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_41_val), 0,
+ "EUTRA Feature Group Indicator 41", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_42,
+ { "Indicator 42", "lte-rrc.eutra_cap_feat_group_ind_42",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_42_val), 0,
+ "EUTRA Feature Group Indicator 42", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_43,
+ { "Indicator 43", "lte-rrc.eutra_cap_feat_group_ind_43",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_43_val), 0,
+ "EUTRA Feature Group Indicator 43", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_44,
+ { "Indicator 44", "lte-rrc.eutra_cap_feat_group_ind_44",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_44_val), 0,
+ "EUTRA Feature Group Indicator 44", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_45,
+ { "Indicator 45", "lte-rrc.eutra_cap_feat_group_ind_45",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_45_val), 0,
+ "EUTRA Feature Group Indicator 45", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_46,
+ { "Indicator 46", "lte-rrc.eutra_cap_feat_group_ind_46",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_46_val), 0,
+ "EUTRA Feature Group Indicator 46", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_47,
+ { "Indicator 47", "lte-rrc.eutra_cap_feat_group_ind_47",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_47_val), 0,
+ "EUTRA Feature Group Indicator 47", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_48,
+ { "Indicator 48", "lte-rrc.eutra_cap_feat_group_ind_48",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_48_val), 0,
+ "EUTRA Feature Group Indicator 48", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_49,
+ { "Indicator 49", "lte-rrc.eutra_cap_feat_group_ind_49",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_49_val), 0,
+ "EUTRA Feature Group Indicator 49", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_50,
+ { "Indicator 50", "lte-rrc.eutra_cap_feat_group_ind_50",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_50_val), 0,
+ "EUTRA Feature Group Indicator 50", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_51,
+ { "Indicator 51", "lte-rrc.eutra_cap_feat_group_ind_51",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_51_val), 0,
+ "EUTRA Feature Group Indicator 51", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_52,
+ { "Indicator 52", "lte-rrc.eutra_cap_feat_group_ind_52",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_52_val), 0,
+ "EUTRA Feature Group Indicator 52", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_53,
+ { "Indicator 53", "lte-rrc.eutra_cap_feat_group_ind_53",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_53_val), 0,
+ "EUTRA Feature Group Indicator 53", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_54,
+ { "Indicator 54", "lte-rrc.eutra_cap_feat_group_ind_54",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_54_val), 0,
+ "EUTRA Feature Group Indicator 54", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_55,
+ { "Indicator 55", "lte-rrc.eutra_cap_feat_group_ind_55",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_55_val), 0,
+ "EUTRA Feature Group Indicator 55", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_56,
+ { "Indicator 56", "lte-rrc.eutra_cap_feat_group_ind_56",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_56_val), 0,
+ "EUTRA Feature Group Indicator 56", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_57,
+ { "Indicator 57", "lte-rrc.eutra_cap_feat_group_ind_57",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_57_val), 0,
+ "EUTRA Feature Group Indicator 57", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_58,
+ { "Indicator 58", "lte-rrc.eutra_cap_feat_group_ind_58",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_58_val), 0,
+ "EUTRA Feature Group Indicator 58", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_59,
+ { "Indicator 59", "lte-rrc.eutra_cap_feat_group_ind_59",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_59_val), 0,
+ "EUTRA Feature Group Indicator 59", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_60,
+ { "Indicator 60", "lte-rrc.eutra_cap_feat_group_ind_60",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_60_val), 0,
+ "EUTRA Feature Group Indicator 60", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_61,
+ { "Indicator 61", "lte-rrc.eutra_cap_feat_group_ind_61",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_61_val), 0,
+ "EUTRA Feature Group Indicator 61", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_62,
+ { "Indicator 62", "lte-rrc.eutra_cap_feat_group_ind_62",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_62_val), 0,
+ "EUTRA Feature Group Indicator 62", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_63,
+ { "Indicator 63", "lte-rrc.eutra_cap_feat_group_ind_63",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_63_val), 0,
+ "EUTRA Feature Group Indicator 63", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_64,
+ { "Indicator 64", "lte-rrc.eutra_cap_feat_group_ind_64",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_64_val), 0,
+ "EUTRA Feature Group Indicator 64", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_101,
+ { "Indicator 101", "lte-rrc.eutra_cap_feat_group_ind_101",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_101_val), 0,
+ "EUTRA Feature Group Indicator 101", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_102,
+ { "Indicator 102", "lte-rrc.eutra_cap_feat_group_ind_102",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_102_val), 0,
+ "EUTRA Feature Group Indicator 102", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_103,
+ { "Indicator 103", "lte-rrc.eutra_cap_feat_group_ind_103",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_103_val), 0,
+ "EUTRA Feature Group Indicator 103", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_104,
+ { "Indicator 104", "lte-rrc.eutra_cap_feat_group_ind_104",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_104_val), 0,
+ "EUTRA Feature Group Indicator 104", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_105,
+ { "Indicator 105", "lte-rrc.eutra_cap_feat_group_ind_105",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_105_val), 0,
+ "EUTRA Feature Group Indicator 105", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_106,
+ { "Indicator 106", "lte-rrc.eutra_cap_feat_group_ind_106",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_106_val), 0,
+ "EUTRA Feature Group Indicator 106", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_107,
+ { "Indicator 107", "lte-rrc.eutra_cap_feat_group_ind_107",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_107_val), 0,
+ "EUTRA Feature Group Indicator 107", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_108,
+ { "Indicator 108", "lte-rrc.eutra_cap_feat_group_ind_108",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_108_val), 0,
+ "EUTRA Feature Group Indicator 108", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_109,
+ { "Indicator 109", "lte-rrc.eutra_cap_feat_group_ind_109",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_109_val), 0,
+ "EUTRA Feature Group Indicator 109", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_110,
+ { "Indicator 110", "lte-rrc.eutra_cap_feat_group_ind_110",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_110_val), 0,
+ "EUTRA Feature Group Indicator 110", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_111,
+ { "Indicator 111", "lte-rrc.eutra_cap_feat_group_ind_111",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_111_val), 0,
+ "EUTRA Feature Group Indicator 111", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_112,
+ { "Indicator 112", "lte-rrc.eutra_cap_feat_group_ind_112",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_112_val), 0,
+ "EUTRA Feature Group Indicator 112", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_113,
+ { "Indicator 113", "lte-rrc.eutra_cap_feat_group_ind_113",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_113_val), 0,
+ "EUTRA Feature Group Indicator 113", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_114,
+ { "Indicator 114", "lte-rrc.eutra_cap_feat_group_ind_114",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_114_val), 0,
+ "EUTRA Feature Group Indicator 114", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_115,
+ { "Indicator 115", "lte-rrc.eutra_cap_feat_group_ind_115",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_115_val), 0,
+ "EUTRA Feature Group Indicator 115", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_116,
+ { "Indicator 116", "lte-rrc.eutra_cap_feat_group_ind_116",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_116_val), 0,
+ "EUTRA Feature Group Indicator 116", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_117,
+ { "Indicator 117", "lte-rrc.eutra_cap_feat_group_ind_117",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_117_val), 0,
+ "EUTRA Feature Group Indicator 117", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_118,
+ { "Indicator 118", "lte-rrc.eutra_cap_feat_group_ind_118",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_118_val), 0,
+ "EUTRA Feature Group Indicator 118", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_119,
+ { "Indicator 119", "lte-rrc.eutra_cap_feat_group_ind_119",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_119_val), 0,
+ "EUTRA Feature Group Indicator 119", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_120,
+ { "Indicator 120", "lte-rrc.eutra_cap_feat_group_ind_120",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_120_val), 0,
+ "EUTRA Feature Group Indicator 120", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_121,
+ { "Indicator 121", "lte-rrc.eutra_cap_feat_group_ind_121",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_121_val), 0,
+ "EUTRA Feature Group Indicator 121", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_122,
+ { "Indicator 122", "lte-rrc.eutra_cap_feat_group_ind_122",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_122_val), 0,
+ "EUTRA Feature Group Indicator 122", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_123,
+ { "Indicator 123", "lte-rrc.eutra_cap_feat_group_ind_123",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_123_val), 0,
+ "EUTRA Feature Group Indicator 123", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_124,
+ { "Indicator 124", "lte-rrc.eutra_cap_feat_group_ind_124",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_124_val), 0,
+ "EUTRA Feature Group Indicator 124", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_125,
+ { "Indicator 125", "lte-rrc.eutra_cap_feat_group_ind_125",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_125_val), 0,
+ "EUTRA Feature Group Indicator 125", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_126,
+ { "Indicator 126", "lte-rrc.eutra_cap_feat_group_ind_126",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_126_val), 0,
+ "EUTRA Feature Group Indicator 126", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_127,
+ { "Indicator 127", "lte-rrc.eutra_cap_feat_group_ind_127",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_127_val), 0,
+ "EUTRA Feature Group Indicator 127", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_128,
+ { "Indicator 128", "lte-rrc.eutra_cap_feat_group_ind_128",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_128_val), 0,
+ "EUTRA Feature Group Indicator 128", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_129,
+ { "Indicator 129", "lte-rrc.eutra_cap_feat_group_ind_129",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_129_val), 0,
+ "EUTRA Feature Group Indicator 129", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_130,
+ { "Indicator 130", "lte-rrc.eutra_cap_feat_group_ind_130",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_130_val), 0,
+ "EUTRA Feature Group Indicator 130", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_131,
+ { "Indicator 131", "lte-rrc.eutra_cap_feat_group_ind_131",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_131_val), 0,
+ "EUTRA Feature Group Indicator 131", HFILL }},
+ { &hf_lte_rrc_eutra_cap_feat_group_ind_132,
+ { "Indicator 132", "lte-rrc.eutra_cap_feat_group_ind_132",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_132_val), 0,
+ "EUTRA Feature Group Indicator 132", HFILL }},
+ { &hf_lte_rrc_serialNumber_gs,
+ { "Geographical Scope", "lte-rrc.serialNumber.gs",
+ FT_UINT16, BASE_DEC, VALS(lte_rrc_serialNumber_gs_vals), 0xc000,
+ NULL, HFILL }},
+ { &hf_lte_rrc_serialNumber_msg_code,
+ { "Message Code", "lte-rrc.serialNumber.msg_code",
+ FT_UINT16, BASE_DEC, NULL, 0x3ff0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_serialNumber_upd_nb,
+ { "Update Number", "lte-rrc.serialNumber.upd_nb",
+ FT_UINT16, BASE_DEC, NULL, 0x000f,
+ NULL, HFILL }},
+ { &hf_lte_rrc_warningType_value,
+ { "Warning Type Value", "lte-rrc.warningType.value",
+ FT_UINT16, BASE_DEC, VALS(lte_rrc_warningType_vals), 0xfe00,
+ NULL, HFILL }},
+ { &hf_lte_rrc_warningType_emergency_user_alert,
+ { "Emergency User Alert", "lte-rrc.warningType.emergency_user_alert",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0100,
+ NULL, HFILL }},
+ { &hf_lte_rrc_warningType_popup,
+ { "Popup", "lte-rrc.warningType.popup",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0080,
+ NULL, HFILL }},
+ { &hf_lte_rrc_warningMessageSegment_nb_pages,
+ { "Number of Pages", "lte-rrc.warningMessageSegment.nb_pages",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_warningMessageSegment_decoded_page,
+ { "Decoded Page", "lte-rrc.warningMessageSegment.decoded_page",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1,
+ { "Bit 1", "lte-rrc.interBandTDD_CA_WithDifferentConfig.bit1",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2,
+ { "Bit 2", "lte-rrc.interBandTDD_CA_WithDifferentConfig.bit2",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1,
+ { "Bit 1", "lte-rrc.tdd_FDD_CA_PCellDuplex_r12.bit1",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2,
+ { "Bit 2", "lte-rrc.tdd_FDD_CA_PCellDuplex_r12.bit2",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_codebook_HARQ_ACK_r13_bit1,
+ { "Bit 1", "lte-rrc.codebook_HARQ_ACK_r13.bit1",
+ FT_BOOLEAN, BASE_NONE, TFS(&hf_lte_rrc_codebook_HARQ_ACK_r13_bit1_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_codebook_HARQ_ACK_r13_bit2,
+ { "Bit 2", "lte-rrc.codebook_HARQ_ACK_r13.bit2",
+ FT_BOOLEAN, BASE_NONE, TFS(&hf_lte_rrc_codebook_HARQ_ACK_r13_bit2_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sr_config_periodicity,
+ { "Periodicity", "lte-rrc.sr_Periodicity",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sr_config_subframe_offset,
+ { "Subframe Offset", "lte-rrc.sr_SubframeOffset",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_cdma_time,
+ { "CDMA time", "lte-rrc.cdma_time",
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_utc_time,
+ { "UTC time", "lte-rrc.utc_time",
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_local_time,
+ { "Local time", "lte-rrc.local_time",
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_absolute_time,
+ { "Absolute time", "lte-rrc.absolute_time",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_transmissionModeList_r12_tm1,
+ { "TM1", "lte-rrc.transmissionModeList_r12.tm1",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_transmissionModeList_r12_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_transmissionModeList_r12_tm2,
+ { "TM2", "lte-rrc.transmissionModeList_r12.tm2",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_transmissionModeList_r12_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_transmissionModeList_r12_tm3,
+ { "TM3", "lte-rrc.transmissionModeList_r12.tm3",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_transmissionModeList_r12_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_transmissionModeList_r12_tm4,
+ { "TM4", "lte-rrc.transmissionModeList_r12.tm4",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_transmissionModeList_r12_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_transmissionModeList_r12_tm6,
+ { "TM6", "lte-rrc.transmissionModeList_r12.tm6",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_transmissionModeList_r12_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_transmissionModeList_r12_tm8,
+ { "TM8", "lte-rrc.transmissionModeList_r12.tm8",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_transmissionModeList_r12_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_transmissionModeList_r12_tm9,
+ { "TM9", "lte-rrc.transmissionModeList_r12.tm9",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_transmissionModeList_r12_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_transmissionModeList_r12_tm10,
+ { "TM10", "lte-rrc.transmissionModeList_r12.tm10",
+ FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_transmissionModeList_r12_val), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0,
+ { "MPR/A-MPR behavior 0", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_0",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1,
+ { "MPR/A-MPR behavior 1", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_1",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2,
+ { "MPR/A-MPR behavior 2", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_2",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3,
+ { "MPR/A-MPR behavior 3", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_3",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4,
+ { "MPR/A-MPR behavior 4", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_4",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5,
+ { "MPR/A-MPR behavior 5", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_5",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6,
+ { "MPR/A-MPR behavior 6", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_6",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7,
+ { "MPR/A-MPR behavior 7", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_7",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8,
+ { "MPR/A-MPR behavior 8", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_8",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9,
+ { "MPR/A-MPR behavior 9", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_9",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10,
+ { "MPR/A-MPR behavior 10", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_10",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11,
+ { "MPR/A-MPR behavior 11", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_11",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12,
+ { "MPR/A-MPR behavior 12", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_12",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13,
+ { "MPR/A-MPR behavior 13", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_13",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14,
+ { "MPR/A-MPR behavior 14", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_14",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15,
+ { "MPR/A-MPR behavior 15", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_15",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16,
+ { "MPR/A-MPR behavior 16", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_16",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17,
+ { "MPR/A-MPR behavior 17", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_17",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18,
+ { "MPR/A-MPR behavior 18", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_18",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19,
+ { "MPR/A-MPR behavior 19", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_19",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20,
+ { "MPR/A-MPR behavior 20", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_20",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21,
+ { "MPR/A-MPR behavior 21", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_21",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22,
+ { "MPR/A-MPR behavior 22", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_22",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23,
+ { "MPR/A-MPR behavior 23", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_23",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24,
+ { "MPR/A-MPR behavior 24", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_24",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25,
+ { "MPR/A-MPR behavior 25", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_25",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26,
+ { "MPR/A-MPR behavior 26", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_26",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27,
+ { "MPR/A-MPR behavior 27", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_27",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28,
+ { "MPR/A-MPR behavior 28", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_28",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29,
+ { "MPR/A-MPR behavior 29", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_29",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30,
+ { "MPR/A-MPR behavior 30", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_30",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31,
+ { "MPR/A-MPR behavior 31", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_31",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_fragments,
+ { "Fragments", "lte-rrc.warningMessageSegment.fragments",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_fragment,
+ { "Fragment", "lte-rrc.warningMessageSegment.fragment",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_fragment_overlap,
+ { "Fragment Overlap", "lte-rrc.warningMessageSegment.fragment_overlap",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_fragment_overlap_conflict,
+ { "Fragment Overlap Conflict", "lte-rrc.warningMessageSegment.fragment_overlap_conflict",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_fragment_multiple_tails,
+ { "Fragment Multiple Tails", "lte-rrc.warningMessageSegment.fragment_multiple_tails",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_fragment_too_long_fragment,
+ { "Too Long Fragment", "lte-rrc.warningMessageSegment.fragment_too_long_fragment",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_fragment_error,
+ { "Fragment Error", "lte-rrc.warningMessageSegment.fragment_error",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_fragment_count,
+ { "Fragment Count", "lte-rrc.warningMessageSegment.fragment_count",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_reassembled_in,
+ { "Reassembled In", "lte-rrc.warningMessageSegment.reassembled_in",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_reassembled_length,
+ { "Reassembled Length", "lte-rrc.warningMessageSegment.reassembled_length",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib11_reassembled_data,
+ { "Reassembled Data", "lte-rrc.warningMessageSegment.reassembled_data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_fragments,
+ { "Fragments", "lte-rrc.warningMessageSegment_r9.fragments",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_fragment,
+ { "Fragment", "lte-rrc.warningMessageSegment_r9.fragment",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_fragment_overlap,
+ { "Fragment Overlap", "lte-rrc.warningMessageSegment_r9.fragment_overlap",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_fragment_overlap_conflict,
+ { "Fragment Overlap Conflict", "lte-rrc.warningMessageSegment_r9.fragment_overlap_conflict",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_fragment_multiple_tails,
+ { "Fragment Multiple Tails", "lte-rrc.warningMessageSegment_r9.fragment_multiple_tails",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_fragment_too_long_fragment,
+ { "Too Long Fragment", "lte-rrc.warningMessageSegment_r9.fragment_too_long_fragment",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_fragment_error,
+ { "Fragment Error", "lte-rrc.warningMessageSegment_r9.fragment_error",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_fragment_count,
+ { "Fragment Count", "lte-rrc.warningMessageSegment_r9.fragment_count",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_reassembled_in,
+ { "Reassembled In", "lte-rrc.warningMessageSegment_r9.reassembled_in",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_reassembled_length,
+ { "Reassembled Length", "lte-rrc.warningMessageSegment_r9.reassembled_length",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_sib12_reassembled_data,
+ { "Reassembled Data", "lte-rrc.warningMessageSegment_r9.reassembled_data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }}
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_lte_rrc,
+#include "packet-lte-rrc-ettarr.c"
+
+ &ett_lte_rrc_featureGroupIndicators,
+ &ett_lte_rrc_featureGroupIndRel9Add,
+ &ett_lte_rrc_featureGroupIndRel10,
+ &ett_lte_rrc_absTimeInfo,
+ &ett_lte_rrc_nas_SecurityParam,
+ &ett_lte_rrc_targetRAT_MessageContainer,
+ &ett_lte_rrc_siPsiSibContainer,
+ &ett_lte_rrc_dedicatedInfoNAS,
+ &ett_lte_rrc_timeInfo,
+ &ett_lte_rrc_serialNumber,
+ &ett_lte_rrc_warningType,
+ &ett_lte_rrc_dataCodingScheme,
+ &ett_lte_rrc_warningMessageSegment,
+ &ett_lte_rrc_interBandTDD_CA_WithDifferentConfig,
+ &ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12,
+ &ett_lte_rrc_codebook_HARQ_ACK_r13,
+ &ett_lte_rrc_sr_ConfigIndex,
+ &ett_lte_rrc_transmissionModeList_r12,
+ &ett_lte_rrc_modifiedMPR_Behavior_r10,
+ &ett_lte_rrc_sib11_fragment,
+ &ett_lte_rrc_sib11_fragments,
+ &ett_lte_rrc_sib12_fragment,
+ &ett_lte_rrc_sib12_fragments
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_lte_rrc_number_pages_le15, { "lte_rrc.number_pages_le15", PI_MALFORMED, PI_ERROR, "Number of pages should be <=15", EXPFILL }},
+ { &ei_lte_rrc_si_info_value_changed, { "lte_rrc.si_info_value_changed", PI_SEQUENCE, PI_WARN, "SI Info Value changed", EXPFILL }},
+ { &ei_lte_rrc_sibs_changing, { "lte_rrc.sibs_changing", PI_SEQUENCE, PI_WARN, "SIBs changing in next BCCH modification period - signalled in Paging message", EXPFILL }},
+ { &ei_lte_rrc_sibs_changing_edrx, { "lte_rrc.sibs_changing_edrx", PI_SEQUENCE, PI_WARN, "SIBs changing in next BCCH modification period for UEs in eDRX mode - signalled in Paging message", EXPFILL }},
+ { &ei_lte_rrc_earthquake_warning_sys, { "lte_rrc.earthquake_warning_sys", PI_SEQUENCE, PI_WARN, "Earthquake and Tsunami Warning System Indication!", EXPFILL }},
+ { &ei_lte_rrc_commercial_mobile_alert_sys, { "lte_rrc.commercial_mobile_alert_sys", PI_SEQUENCE, PI_WARN, "Commercial Mobile Alert System Indication!", EXPFILL }},
+ { &ei_lte_rrc_unexpected_type_value, { "lte_rrc.unexpected_type_value", PI_MALFORMED, PI_ERROR, "Unexpected type value", EXPFILL }},
+ { &ei_lte_rrc_unexpected_length_value, { "lte_rrc.unexpected_length_value", PI_MALFORMED, PI_ERROR, "Unexpected type length", EXPFILL }},
+ { &ei_lte_rrc_too_many_group_a_rapids, { "lte_rrc.too_many_groupa_rapids", PI_MALFORMED, PI_ERROR, "Too many group A RAPIDs", EXPFILL }},
+ { &ei_lte_rrc_invalid_drx_config, { "lte_rrc.invalid_drx_config", PI_MALFORMED, PI_ERROR, "Invalid dedicated DRX config detected", EXPFILL }},
+ };
+
+ expert_module_t* expert_lte_rrc;
+
+ /* Register protocol */
+ proto_lte_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* These entry points will first create an lte_rrc root node */
+ register_dissector("lte_rrc.dl_ccch", dissect_lte_rrc_DL_CCCH, proto_lte_rrc);
+ register_dissector("lte_rrc.dl_dcch", dissect_lte_rrc_DL_DCCH, proto_lte_rrc);
+ register_dissector("lte_rrc.ul_ccch", dissect_lte_rrc_UL_CCCH, proto_lte_rrc);
+ register_dissector("lte_rrc.ul_dcch", dissect_lte_rrc_UL_DCCH, proto_lte_rrc);
+ register_dissector("lte_rrc.bcch_bch", dissect_lte_rrc_BCCH_BCH, proto_lte_rrc);
+ register_dissector("lte_rrc.bcch_dl_sch", dissect_lte_rrc_BCCH_DL_SCH, proto_lte_rrc);
+ register_dissector("lte_rrc.pcch", dissect_lte_rrc_PCCH, proto_lte_rrc);
+ register_dissector("lte_rrc.mcch", dissect_lte_rrc_MCCH, proto_lte_rrc);
+ register_dissector("lte_rrc.handover_prep_info", dissect_lte_rrc_Handover_Preparation_Info, proto_lte_rrc);
+ register_dissector("lte_rrc.sbcch_sl_bch", dissect_lte_rrc_SBCCH_SL_BCH, proto_lte_rrc);
+ register_dissector("lte_rrc.sc_mcch", dissect_lte_rrc_SC_MCCH, proto_lte_rrc);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_lte_rrc, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_lte_rrc = expert_register_protocol(proto_lte_rrc);
+ expert_register_field_array(expert_lte_rrc, ei, array_length(ei));
+
+ /* Register the dissectors defined in lte-rrc.conf */
+#include "packet-lte-rrc-dis-reg.c"
+
+ register_init_routine(&lte_rrc_init_protocol);
+ register_cleanup_routine(&lte_rrc_cleanup_protocol);
+}
+
+
+/*--- proto_reg_handoff_rrc ---------------------------------------*/
+void
+proto_reg_handoff_lte_rrc(void)
+{
+ static dissector_handle_t lte_rrc_dl_ccch_handle;
+
+ lte_rrc_dl_ccch_handle = find_dissector("lte_rrc.dl_ccch");
+ dissector_add_for_decode_as("udp.port", lte_rrc_dl_ccch_handle);
+ nas_eps_handle = find_dissector("nas-eps");
+ rrc_irat_ho_to_utran_cmd_handle = find_dissector("rrc.irat.ho_to_utran_cmd");
+ rrc_sys_info_cont_handle = find_dissector("rrc.sysinfo.cont");
+ gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
+ gsm_rlcmac_dl_handle = find_dissector("gsm_rlcmac_dl");
+}
+
+
diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.h b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.h
new file mode 100644
index 0000000000..76ad9df287
--- /dev/null
+++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.h
@@ -0,0 +1,28 @@
+/* packet-llc-rrc-template.h
+ * Copyright 2009, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_LTE_RRC_H
+#define PACKET_LTE_RRC_H
+
+#include "packet-lte-rrc-exp.h"
+
+#endif /* PACKET_LTE_RRC_H */
diff --git a/epan/dissectors/asn1/m3ap/CMakeLists.txt b/epan/dissectors/asn1/m3ap/CMakeLists.txt
new file mode 100644
index 0000000000..3163fc64f7
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME m3ap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ M3AP-CommonDataTypes.asn
+ M3AP-Constants.asn
+ M3AP-Containers.asn
+ M3AP-IEs.asn
+ M3AP-PDU-Contents.asn
+ M3AP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn b/epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..b8bae0d795
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn
@@ -0,0 +1,57 @@
+-- M3AP-CommonDataTypes.asn
+--
+-- 3GPP TS 36.444 V11.1.0 (2012-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+--
+-- 9.3.6 Common Definitions
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+M3AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0.. maxPrivateIEs),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
+
+END
+
diff --git a/epan/dissectors/asn1/m3ap/M3AP-Constants.asn b/epan/dissectors/asn1/m3ap/M3AP-Constants.asn
new file mode 100644
index 0000000000..29cc4b8326
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/M3AP-Constants.asn
@@ -0,0 +1,85 @@
+-- M3AP-Constants.asn
+--
+-- 3GPP TS 36.444 V11.1.0 (2012-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+--
+-- 9.3.7 Constant Definitions
+--
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+M3AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM M3AP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-mBMSsessionStart ProcedureCode ::= 0
+id-mBMSsessionStop ProcedureCode ::= 1
+id-errorIndication ProcedureCode ::= 2
+id-privateMessage ProcedureCode ::= 3
+id-Reset ProcedureCode ::= 4
+id-mBMSsessionUpdate ProcedureCode ::= 5
+id-mCEConfigurationUpdate ProcedureCode ::= 6
+id-m3Setup ProcedureCode ::= 7
+
+
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxnoofMBMSServiceAreaIdentitiesPerMCE INTEGER ::= 65536
+maxnooferrors INTEGER ::= 256
+maxNrOfIndividualM3ConnectionsToReset INTEGER ::= 256
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-MME-MBMS-M3AP-ID ProtocolIE-ID ::= 0
+id-MCE-MBMS-M3AP-ID ProtocolIE-ID ::= 1
+id-TMGI ProtocolIE-ID ::= 2
+id-MBMS-Session-ID ProtocolIE-ID ::= 3
+id-MBMS-E-RAB-QoS-Parameters ProtocolIE-ID ::= 4
+id-MBMS-Session-Duration ProtocolIE-ID ::= 5
+id-MBMS-Service-Area ProtocolIE-ID ::= 6
+id-TNL-Information ProtocolIE-ID ::= 7
+id-CriticalityDiagnostics ProtocolIE-ID ::= 8
+id-Cause ProtocolIE-ID ::= 9
+id-MBMS-Service-Area-List ProtocolIE-ID ::= 10
+id-MBMS-Service-Area-List-Item ProtocolIE-ID ::= 11
+id-TimeToWait ProtocolIE-ID ::= 12
+id-ResetType ProtocolIE-ID ::= 13
+id-MBMS-Service-associatedLogicalM3-ConnectionItem ProtocolIE-ID ::= 14
+id-MBMS-Service-associatedLogicalM3-ConnectionListResAck ProtocolIE-ID ::= 15
+id-MinimumTimeToMBMSDataTransfer ProtocolIE-ID ::= 16
+id-AllocationAndRetentionPriority ProtocolIE-ID ::= 17
+id-Global-MCE-ID ProtocolIE-ID ::= 18
+id-MCEname ProtocolIE-ID ::= 19
+id-MBMSServiceAreaList ProtocolIE-ID ::= 20
+id-Time-ofMBMS-DataTransfer ProtocolIE-ID ::= 21
+id-Time-ofMBMS-DataStop ProtocolIE-ID ::= 22
+END
+
diff --git a/epan/dissectors/asn1/m3ap/M3AP-Containers.asn b/epan/dissectors/asn1/m3ap/M3AP-Containers.asn
new file mode 100644
index 0000000000..782311087b
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/M3AP-Containers.asn
@@ -0,0 +1,203 @@
+-- M3AP-Containers.asn
+--
+-- 3GPP TS 36.444 V11.1.0 (2012-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+--
+-- 9.3.8 Container Definitions
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+M3AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+FROM M3AP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+M3AP-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
+--
+-- **************************************************************
+
+M3AP-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
+--
+-- **************************************************************
+
+M3AP-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
+--
+-- **************************************************************
+
+M3AP-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 {M3AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {M3AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {M3AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id M3AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality M3AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value M3AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {M3AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {M3AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id M3AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality M3AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue M3AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality M3AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue M3AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, M3AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, M3AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {M3AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {M3AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id M3AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality M3AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue M3AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {M3AP-PRIVATE-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {M3AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id M3AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality M3AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value M3AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
+
diff --git a/epan/dissectors/asn1/m3ap/M3AP-IEs.asn b/epan/dissectors/asn1/m3ap/M3AP-IEs.asn
new file mode 100644
index 0000000000..8dbaf02551
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/M3AP-IEs.asn
@@ -0,0 +1,296 @@
+-- M3AP-IEs.asn
+--
+-- 3GPP TS 36.444 V11.1.0 (2012-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+--
+-- 9.3.5 Information Element Definitions
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+M3AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ id-AllocationAndRetentionPriority,
+ maxnooferrors
+
+FROM M3AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM M3AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-Single-Container{},
+ M3AP-PROTOCOL-EXTENSION,
+ M3AP-PROTOCOL-IES
+FROM M3AP-Containers;
+
+-- A
+
+Absolute-Time-ofMBMS-Data ::= BIT STRING (SIZE (64))
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL
+}
+
+AllocationAndRetentionPriority-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- B
+
+BitRate ::= INTEGER (0..10000000000)
+
+-- 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,
+ ...
+}
+
+CauseNAS ::= ENUMERATED {
+ unspecified,
+ ...
+}
+
+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 {
+ unknown-or-already-allocated-MME-MBMS-M3AP-ID,
+ unknown-or-already-allocated-MCE-MBMS-M3AP-ID,
+ unknown-or-inconsistent-pair-of-MBMS-M3AP-IDs,
+ radio-resources-not-available,
+ invalid-QoS-combination,
+ interaction-with-other-procedure,
+ not-supported-QCI-value,
+ unspecified,
+ ...
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+CriticalityDiagnostics-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxnooferrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-List-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+-- E
+
+ExtendedMCE-ID ::= OCTET STRING (SIZE(1))
+
+-- F
+-- G
+
+Global-MCE-ID ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ mCE-ID MCE-ID,
+-- extendedMCE-ID ExtendedMCE-ID,
+ extendedMCE-ID ExtendedMCE-ID OPTIONAL, -- Spec discrepancy 9.2.1.10 Global MCE ID Optional
+ iE-Extensions ProtocolExtensionContainer { {GlobalMCE-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalMCE-ID-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GBR-QosInformation ::= SEQUENCE {
+ mBMS-E-RAB-MaximumBitrateDL BitRate,
+ mBMS-E-RAB-GuaranteedBitrateDL BitRate,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+-- H
+-- I
+
+IPAddress ::= OCTET STRING (SIZE(4..16, ...))
+
+-- J
+-- K
+-- L
+-- M
+
+MBMS-E-RAB-QoS-Parameters ::= SEQUENCE {
+ qCI QCI,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-E-RAB-QoS-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-E-RAB-QoS-Parameters-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 10 ARP support --
+ {ID id-AllocationAndRetentionPriority CRITICALITY ignore EXTENSION AllocationAndRetentionPriority PRESENCE mandatory},
+ ...
+}
+
+MBMS-Service-associatedLogicalM3-ConnectionItem ::= SEQUENCE {
+ mME-MBMS-M3AP-ID MME-MBMS-M3AP-ID OPTIONAL,
+ mCE-MBMS-M3AP-ID MCE-MBMS-M3AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Service-associatedLogicalM3-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+MBMS-Service-associatedLogicalM3-ConnectionItemExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSServiceArea1 ::= OCTET STRING (SIZE (2))
+
+MBMS-Service-Area ::= OCTET STRING
+
+
+MBMS-Session-Duration ::= OCTET STRING (SIZE (3))
+
+MBMS-Session-ID ::= OCTET STRING (SIZE (1))
+
+
+MCE-MBMS-M3AP-ID ::= INTEGER (0..65535)
+
+MCE-ID ::= OCTET STRING (SIZE(2))
+
+MCEname ::= PrintableString (SIZE (1..150,...))
+
+MinimumTimeToMBMSDataTransfer ::= OCTET STRING (SIZE (1))
+
+MME-MBMS-M3AP-ID ::= INTEGER (0..65535)
+
+-- N
+-- O
+-- P
+
+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)
+
+PLMN-Identity ::= OCTET STRING (SIZE(3))
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+-- S
+-- T
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+TMGI ::= SEQUENCE {
+ pLMNidentity PLMN-Identity,
+ serviceID OCTET STRING (SIZE (3)),
+ iE-Extensions ProtocolExtensionContainer { {TMGI-ExtIEs} } OPTIONAL
+}
+
+TMGI-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TNL-Information ::= SEQUENCE {
+ iPMCAddress IPAddress,
+ iPSourceAddress IPAddress,
+ gTP-DLTEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {TNL-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TNL-Information-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+
+-- U
+-- V
+-- W
+-- X
+-- Y
+-- Z
+
+END
diff --git a/epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn b/epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn
new file mode 100644
index 0000000000..4a33c9cb29
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn
@@ -0,0 +1,472 @@
+-- M3AP-PDU-Contents.asn
+--
+-- 3GPP TS 36.444 V11.1.0 (2012-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+--
+-- 9.3.4 PDU Definitions
+--
+
+-- **************************************************************
+--
+-- PDU definitions for M3AP.
+--
+-- **************************************************************
+
+M3AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-PDU-Contents (1) }
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+
+ Absolute-Time-ofMBMS-Data,
+ Cause,
+ CriticalityDiagnostics,
+ Global-MCE-ID,
+ MBMS-E-RAB-QoS-Parameters,
+ MBMS-Service-associatedLogicalM3-ConnectionItem,
+ MBMS-Service-Area,
+ MBMSServiceArea1,
+ MBMS-Session-Duration,
+ MBMS-Session-ID,
+ MCE-MBMS-M3AP-ID,
+ MCEname,
+ MinimumTimeToMBMSDataTransfer,
+ MME-MBMS-M3AP-ID,
+ TimeToWait,
+ TMGI,
+ TNL-Information
+
+FROM M3AP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-Single-Container{},
+ M3AP-PRIVATE-IES,
+ M3AP-PROTOCOL-EXTENSION,
+ M3AP-PROTOCOL-IES,
+ M3AP-PROTOCOL-IES-PAIR
+FROM M3AP-Containers
+
+ id-AllocationAndRetentionPriority,
+ id-MCE-MBMS-M3AP-ID,
+ id-MME-MBMS-M3AP-ID,
+ id-TMGI,
+ id-MBMS-Session-ID,
+ id-MBMS-E-RAB-QoS-Parameters,
+ id-MBMS-Session-Duration,
+ id-MBMS-Service-Area,
+ id-TNL-Information,
+ id-CriticalityDiagnostics,
+ id-Cause,
+ id-MBMS-Service-Area-List,
+ id-MBMS-Service-Area-List-Item,
+ id-TimeToWait,
+ id-ResetType,
+ id-MBMS-Service-associatedLogicalM3-ConnectionItem,
+ id-MBMS-Service-associatedLogicalM3-ConnectionListResAck,
+ id-MBMSServiceAreaList,
+ id-MinimumTimeToMBMSDataTransfer,
+ id-Time-ofMBMS-DataStop,
+ id-Time-ofMBMS-DataTransfer,
+ id-Global-MCE-ID,
+ id-MCEname,
+ maxnoofMBMSServiceAreaIdentitiesPerMCE,
+ maxnooferrors,
+ maxNrOfIndividualM3ConnectionsToReset
+
+FROM M3AP-Constants;
+
+-- **************************************************************
+--
+-- MBMS SESSION START REQUEST
+--
+-- **************************************************************
+
+MBMSSessionStartRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MBMSSessionStartRequest-IEs}},
+ ...
+}
+
+MBMSSessionStartRequest-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY reject TYPE MME-MBMS-M3AP-ID PRESENCE mandatory}|
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory}|
+ { ID id-MBMS-Session-ID CRITICALITY ignore TYPE MBMS-Session-ID PRESENCE optional}|
+ { ID id-MBMS-E-RAB-QoS-Parameters CRITICALITY reject TYPE MBMS-E-RAB-QoS-Parameters PRESENCE mandatory}|
+ { ID id-MBMS-Session-Duration CRITICALITY reject TYPE MBMS-Session-Duration PRESENCE mandatory}|
+ { ID id-MBMS-Service-Area CRITICALITY reject TYPE MBMS-Service-Area PRESENCE mandatory}|
+ { ID id-MinimumTimeToMBMSDataTransfer CRITICALITY reject TYPE MinimumTimeToMBMSDataTransfer PRESENCE mandatory}|
+ { ID id-TNL-Information CRITICALITY reject TYPE TNL-Information PRESENCE mandatory}|
+ { ID id-Time-ofMBMS-DataTransfer CRITICALITY ignore TYPE Absolute-Time-ofMBMS-Data PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION START RESPONSE
+--
+-- **************************************************************
+
+MBMSSessionStartResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MBMSSessionStartResponse-IEs}},
+ ...
+}
+
+MBMSSessionStartResponse-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY ignore TYPE MME-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-MCE-MBMS-M3AP-ID CRITICALITY ignore TYPE MCE-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MBMS SESSION START FAILURE
+--
+-- **************************************************************
+
+MBMSSessionStartFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MBMSSessionStartFailure-IEs}},
+ ...
+}
+
+MBMSSessionStartFailure-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY ignore TYPE MME-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MBMS SESSION STOP REQUEST
+--
+-- **************************************************************
+
+MBMSSessionStopRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MBMSSessionStopRequest-IEs}},
+ ...
+}
+
+MBMSSessionStopRequest-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY reject TYPE MME-MBMS-M3AP-ID PRESENCE mandatory}|
+ { ID id-MCE-MBMS-M3AP-ID CRITICALITY reject TYPE MCE-MBMS-M3AP-ID PRESENCE mandatory}|
+ { ID id-Time-ofMBMS-DataStop CRITICALITY ignore TYPE Absolute-Time-ofMBMS-Data PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION STOP RESPONSE
+--
+-- **************************************************************
+
+MBMSSessionStopResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MBMSSessionStopResponse-IEs}},
+ ...
+}
+
+MBMSSessionStopResponse-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY ignore TYPE MME-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-MCE-MBMS-M3AP-ID CRITICALITY ignore TYPE MCE-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION UPDATE REQUEST
+--
+-- **************************************************************
+
+MBMSSessionUpdateRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MBMSSessionUpdateRequest-IEs}},
+ ...
+}
+
+MBMSSessionUpdateRequest-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY reject TYPE MME-MBMS-M3AP-ID PRESENCE mandatory}|
+ { ID id-MCE-MBMS-M3AP-ID CRITICALITY reject TYPE MCE-MBMS-M3AP-ID PRESENCE mandatory}|
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory}|
+ { ID id-MBMS-Session-ID CRITICALITY ignore TYPE MBMS-Session-ID PRESENCE optional}|
+ { ID id-MBMS-E-RAB-QoS-Parameters CRITICALITY reject TYPE MBMS-E-RAB-QoS-Parameters PRESENCE mandatory}|
+ { ID id-MBMS-Session-Duration CRITICALITY reject TYPE MBMS-Session-Duration PRESENCE mandatory}|
+ { ID id-MBMS-Service-Area CRITICALITY ignore TYPE MBMS-Service-Area PRESENCE optional}|
+ { ID id-MinimumTimeToMBMSDataTransfer CRITICALITY reject TYPE MinimumTimeToMBMSDataTransfer PRESENCE mandatory}|
+ { ID id-TNL-Information CRITICALITY ignore TYPE TNL-Information PRESENCE optional}|
+ { ID id-Time-ofMBMS-DataTransfer CRITICALITY ignore TYPE Absolute-Time-ofMBMS-Data PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION UPDATE RESPONSE
+--
+-- **************************************************************
+
+MBMSSessionUpdateResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MBMSSessionUpdateResponse-IEs}},
+ ...
+}
+
+MBMSSessionUpdateResponse-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY ignore TYPE MME-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-MCE-MBMS-M3AP-ID CRITICALITY ignore TYPE MCE-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION UPDATE FAILURE
+--
+-- **************************************************************
+
+MBMSSessionUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MBMSSessionUpdateFailure-IEs}},
+ ...
+}
+
+MBMSSessionUpdateFailure-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY ignore TYPE MME-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-MCE-MBMS-M3AP-ID CRITICALITY ignore TYPE MCE-MBMS-M3AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ ...
+}
+
+ErrorIndication-IEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MME-MBMS-M3AP-ID CRITICALITY ignore TYPE MME-MBMS-M3AP-ID PRESENCE optional } |
+ { ID id-MCE-MBMS-M3AP-ID CRITICALITY ignore TYPE MCE-MBMS-M3AP-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ ...
+}
+
+ResetIEs M3AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ m3-Interface ResetAll,
+ partOfM3-Interface MBMS-Service-associatedLogicalM3-ConnectionListRes,
+ ...
+}
+
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+MBMS-Service-associatedLogicalM3-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualM3ConnectionsToReset)) OF ProtocolIE-Single-Container { { MBMS-Service-associatedLogicalM3-ConnectionItemRes } }
+
+MBMS-Service-associatedLogicalM3-ConnectionItemRes M3AP-PROTOCOL-IES ::= {
+ { ID id-MBMS-Service-associatedLogicalM3-ConnectionItem CRITICALITY reject TYPE MBMS-Service-associatedLogicalM3-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs M3AP-PROTOCOL-IES ::= {
+ { ID id-MBMS-Service-associatedLogicalM3-ConnectionListResAck CRITICALITY ignore TYPE MBMS-Service-associatedLogicalM3-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+MBMS-Service-associatedLogicalM3-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualM3ConnectionsToReset)) OF ProtocolIE-Single-Container { { MBMS-Service-associatedLogicalM3-ConnectionItemResAck } }
+
+MBMS-Service-associatedLogicalM3-ConnectionItemResAck M3AP-PROTOCOL-IES ::= {
+ { ID id-MBMS-Service-associatedLogicalM3-ConnectionItem CRITICALITY ignore TYPE MBMS-Service-associatedLogicalM3-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs M3AP-PRIVATE-IES ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- M3 SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- M3 Setup Request
+--
+-- **************************************************************
+
+M3SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {M3SetupRequestIEs} },
+ ...
+}
+
+M3SetupRequestIEs M3AP-PROTOCOL-IES ::= {
+ { ID id-Global-MCE-ID CRITICALITY reject TYPE Global-MCE-ID PRESENCE mandatory}|
+ { ID id-MCEname CRITICALITY ignore TYPE MCEname PRESENCE optional}|
+ { ID id-MBMSServiceAreaList CRITICALITY reject TYPE MBMSServiceAreaListItem PRESENCE mandatory},
+ ...
+}
+
+
+MBMSServiceAreaListItem ::= SEQUENCE (SIZE(1..maxnoofMBMSServiceAreaIdentitiesPerMCE)) OF MBMSServiceArea1
+
+
+-- **************************************************************
+--
+-- M3 Setup Response
+--
+-- **************************************************************
+
+M3SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {M3SetupResponseIEs} },
+ ...
+}
+
+
+M3SetupResponseIEs M3AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- M3 Setup Failure
+--
+-- **************************************************************
+
+M3SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {M3SetupFailureIEs} },
+ ...
+}
+
+M3SetupFailureIEs M3AP-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},
+ ...
+}
+
+-- **************************************************************
+--
+-- MCE CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MCE Configuration Update
+--
+-- **************************************************************
+
+MCEConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MCEConfigurationUpdateIEs} },
+ ...
+}
+
+MCEConfigurationUpdateIEs M3AP-PROTOCOL-IES ::= {
+ { ID id-Global-MCE-ID CRITICALITY reject TYPE Global-MCE-ID PRESENCE optional}|
+ { ID id-MCEname CRITICALITY ignore TYPE MCEname PRESENCE optional}|
+ { ID id-MBMSServiceAreaList CRITICALITY reject TYPE MBMSServiceAreaListItem PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MCE Configuration Update Acknowledge
+--
+-- **************************************************************
+
+MCEConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MCEConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+MCEConfigurationUpdateAcknowledgeIEs M3AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MCE Configuration Update Failure
+--
+-- **************************************************************
+
+MCEConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MCEConfigurationUpdateFailureIEs} },
+ ...
+}
+
+MCEConfigurationUpdateFailureIEs M3AP-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},
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn b/epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..ad0c9b6ea3
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn
@@ -0,0 +1,213 @@
+-- M3AP-PDU-Descriptions.asn
+--
+-- 3GPP TS 36.444 V11.1.0 (2012-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+--
+-- 9.3.3 Elementary Procedure Definitions
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+M3AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-PDU-Descriptions (0) }
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM M3AP-CommonDataTypes
+
+ MBMSSessionStartRequest,
+ MBMSSessionStartResponse,
+ MBMSSessionStartFailure,
+ MBMSSessionStopRequest,
+ MBMSSessionStopResponse,
+ MBMSSessionUpdateRequest,
+ MBMSSessionUpdateResponse,
+ MBMSSessionUpdateFailure,
+ MCEConfigurationUpdate,
+ MCEConfigurationUpdateAcknowledge,
+ MCEConfigurationUpdateFailure,
+ M3SetupRequest,
+ M3SetupResponse,
+ M3SetupFailure,
+ ErrorIndication,
+ Reset,
+ ResetAcknowledge,
+ PrivateMessage
+
+FROM M3AP-PDU-Contents
+
+ id-mBMSsessionStart,
+ id-mBMSsessionStop,
+ id-mBMSsessionUpdate,
+ id-mCEConfigurationUpdate,
+ id-m3Setup,
+ id-errorIndication,
+ id-Reset,
+ id-privateMessage
+FROM M3AP-Constants;
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+M3AP-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
+--
+-- **************************************************************
+
+M3AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode M3AP-ELEMENTARY-PROCEDURE.&procedureCode ({M3AP-ELEMENTARY-PROCEDURES}),
+ criticality M3AP-ELEMENTARY-PROCEDURE.&criticality ({M3AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value M3AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({M3AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode M3AP-ELEMENTARY-PROCEDURE.&procedureCode ({M3AP-ELEMENTARY-PROCEDURES}),
+ criticality M3AP-ELEMENTARY-PROCEDURE.&criticality ({M3AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value M3AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({M3AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode M3AP-ELEMENTARY-PROCEDURE.&procedureCode ({M3AP-ELEMENTARY-PROCEDURES}),
+ criticality M3AP-ELEMENTARY-PROCEDURE.&criticality ({M3AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value M3AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({M3AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+M3AP-ELEMENTARY-PROCEDURES M3AP-ELEMENTARY-PROCEDURE ::= {
+ M3AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ M3AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+M3AP-ELEMENTARY-PROCEDURES-CLASS-1 M3AP-ELEMENTARY-PROCEDURE ::= {
+ mBMSsessionStart |
+ mBMSsessionStop |
+ mBMSsessionUpdate |
+ reset |
+ m3Setup |
+ mCEConfigurationUpdate ,
+ ...
+}
+
+M3AP-ELEMENTARY-PROCEDURES-CLASS-2 M3AP-ELEMENTARY-PROCEDURE ::= {
+ errorIndication |
+ privateMessage ,
+ ...
+
+}
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+mBMSsessionStart M3AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionStartRequest
+ SUCCESSFUL OUTCOME MBMSSessionStartResponse
+ UNSUCCESSFUL OUTCOME MBMSSessionStartFailure
+ PROCEDURE CODE id-mBMSsessionStart
+ CRITICALITY reject
+}
+
+mBMSsessionStop M3AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionStopRequest
+ SUCCESSFUL OUTCOME MBMSSessionStopResponse
+ PROCEDURE CODE id-mBMSsessionStop
+ CRITICALITY reject
+}
+
+mBMSsessionUpdate M3AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionUpdateRequest
+ SUCCESSFUL OUTCOME MBMSSessionUpdateResponse
+ UNSUCCESSFUL OUTCOME MBMSSessionUpdateFailure
+ PROCEDURE CODE id-mBMSsessionUpdate
+ CRITICALITY reject
+}
+
+errorIndication M3AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-errorIndication
+ CRITICALITY ignore
+}
+
+reset M3AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+privateMessage M3AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+mCEConfigurationUpdate M3AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MCEConfigurationUpdate
+ SUCCESSFUL OUTCOME MCEConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME MCEConfigurationUpdateFailure
+ PROCEDURE CODE id-mCEConfigurationUpdate
+ CRITICALITY reject
+}
+
+
+m3Setup M3AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE M3SetupRequest
+ SUCCESSFUL OUTCOME M3SetupResponse
+ UNSUCCESSFUL OUTCOME M3SetupFailure
+ PROCEDURE CODE id-m3Setup
+ CRITICALITY reject
+}
+
+END
diff --git a/epan/dissectors/asn1/m3ap/Makefile.am b/epan/dissectors/asn1/m3ap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/m3ap/Makefile.common b/epan/dissectors/asn1/m3ap/Makefile.common
new file mode 100644
index 0000000000..b7a5b55674
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = m3ap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ M3AP-CommonDataTypes.asn \
+ M3AP-Constants.asn \
+ M3AP-Containers.asn \
+ M3AP-IEs.asn \
+ M3AP-PDU-Contents.asn \
+ M3AP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/m3ap/Makefile.nmake b/epan/dissectors/asn1/m3ap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/m3ap/m3ap.cnf b/epan/dissectors/asn1/m3ap/m3ap.cnf
new file mode 100644
index 0000000000..68a03d9832
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/m3ap.cnf
@@ -0,0 +1,340 @@
+# m3ap.cnf
+# m3ap conformation file
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.USE_VALS_EXT
+ProcedureCode
+ProtocolIE-ID
+
+#.EXPORTS
+
+#.PDU
+M3AP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.NO_EMIT
+# TBCD-STRING
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+ProtocolIE-FieldPair
+ProtocolIE-ContainerPair
+ProtocolIE-ContainerPairList
+ProtocolIE-ContainerList
+Presence
+
+#.TYPE_RENAME
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+
+PrivateIE-Field/id private_id
+ProtocolExtensionField/id ext_id
+
+PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &m3ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+#.END
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+# Currently not used
+# FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue
+# FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
+
+# FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
+ val_to_str_ext(ProcedureCode, &m3ap_ProcedureCode_vals_ext,
+ "unknown message"));
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+#.FN_HDR InitiatingMessage/value
+ message_type = INITIATING_MESSAGE;
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+#.FN_HDR SuccessfulOutcome/value
+ message_type = SUCCESSFUL_OUTCOME;
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+#.FN_HDR UnsuccessfulOutcome/value
+ message_type = UNSUCCESSFUL_OUTCOME;
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, M3AP-PROTOCOL-IES : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-Container {{IEsSetParam}}
+
+# FN_PARS ProtocolIE-ContainerList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerList
+# static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, (asn1_par_type)0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
+# END
+
+#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, M3AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-ContainerPair {{IEsSetParam}}
+
+# FN_PARS ProtocolIE-ContainerPairList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerPairList
+# static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, 0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
+# END
+
+# following construction is not supported by asn2wrs
+# PLMNidentity ::= TBCD-STRING (SIZE (3))
+
+#.FN_BODY PLMN-Identity VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, E212_NONE, FALSE);
+#.END
+
+#.FN_BODY IPAddress VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ gint tvb_len;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+ switch (tvb_len) {
+ case 4:
+ proto_tree_add_item(tree, hf_m3ap_IPAddress_v4, parameter_tvb, 0, tvb_len, ENC_NA);
+ break;
+ case 6:
+ proto_tree_add_item(tree, hf_m3ap_IPAddress_v6, parameter_tvb, 0, tvb_len, ENC_NA);
+ break;
+ default:
+ proto_tree_add_expert(tree, actx->pinfo, &ei_m3ap_invalid_ip_address_len, parameter_tvb, 0, tvb_len);
+ break;
+ }
+#.END
+
+#.FN_BODY Absolute-Time-ofMBMS-Data VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ const gchar *time_str;
+ gint tvb_len;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+
+ time_str = tvb_ntp_fmt_ts(parameter_tvb, 0);
+ proto_tree_add_string(tree, hf_m3ap_Absolute_Time_ofMBMS_Data_value, parameter_tvb, 0, tvb_len, time_str);
+#.END
+
+#.FN_BODY MBMS-Service-Area VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ guint16 tvb_len;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+
+ dissect_gtpv2_mbms_service_area(parameter_tvb, actx->pinfo, tree, actx->created_item, tvb_len, 0, 0, NULL);
+#.END
+
+#.FN_BODY MBMS-Session-Duration VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ guint16 tvb_len;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+
+ proto_item_append_text(actx->created_item, " ");
+ dissect_gtpv2_mbms_session_duration(parameter_tvb, actx->pinfo, tree, actx->created_item, tvb_len, 0, 0, NULL);
+#.END
+
+#.FN_BODY MinimumTimeToMBMSDataTransfer VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ guint16 tvb_len;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+ dissect_gtpv2_mbms_time_to_data_xfer(parameter_tvb, actx->pinfo, tree, actx->created_item, tvb_len, 0, 0, NULL);
+#.END
+
+#------ Pretify info column -----
+#.FN_HDR MBMSSessionStartRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Request ");
+#.FN_HDR MBMSSessionStartResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Response ");
+#.FN_HDR MBMSSessionStartFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Failure ");
+#.FN_HDR MBMSSessionStopRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Stop Request ");
+#.FN_HDR MBMSSessionStopResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Stop Response ");
+#.FN_HDR MBMSSessionUpdateRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Request ");
+#.FN_HDR MBMSSessionUpdateResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Response ");
+#.FN_HDR MBMSSessionUpdateFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Failure ");
+#.FN_HDR ErrorIndication
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"Error Indication ");
+#.FN_HDR Reset
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset ");
+#.FN_HDR ResetAcknowledge
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset Acknowledge ");
+#.FN_HDR PrivateMessage
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"Private Message ");
+#.FN_HDR MCEConfigurationUpdate
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update ");
+#.FN_HDR MCEConfigurationUpdateAcknowledge
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update Acknowledge ");
+#.FN_HDR MCEConfigurationUpdateFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update Failure ");
+#.FN_HDR M3SetupRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Request ");
+#.FN_HDR M3SetupResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Response ");
+#.FN_HDR M3SetupFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Failure ");
+
+
+#.ASSIGN_VALUE_TO_TYPE # M3AP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+id-mBMSsessionStart ProcedureCode
+id-mBMSsessionStop ProcedureCode
+id-errorIndication ProcedureCode
+id-privateMessage ProcedureCode
+id-Reset ProcedureCode
+id-mBMSsessionUpdate ProcedureCode
+id-mCEConfigurationUpdate ProcedureCode
+id-m3Setup ProcedureCode
+
+# ProtocolIE
+id-MME-MBMS-M3AP-ID ProtocolIE-ID
+id-MCE-MBMS-M3AP-ID ProtocolIE-ID
+id-TMGI ProtocolIE-ID
+id-MBMS-Session-ID ProtocolIE-ID
+id-MBMS-E-RAB-QoS-Parameters ProtocolIE-ID
+id-MBMS-Session-Duration ProtocolIE-ID
+id-MBMS-Service-Area ProtocolIE-ID
+id-TNL-Information ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-MBMS-Service-Area-List ProtocolIE-ID
+id-MBMS-Service-Area-List-Item ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-ResetType ProtocolIE-ID
+id-MBMS-Service-associatedLogicalM3-ConnectionItem ProtocolIE-ID
+id-MBMS-Service-associatedLogicalM3-ConnectionListResAck ProtocolIE-ID
+id-MinimumTimeToMBMSDataTransfer ProtocolIE-ID
+id-AllocationAndRetentionPriority ProtocolIE-ID
+id-Global-MCE-ID ProtocolIE-ID
+id-MCEname ProtocolIE-ID
+id-MBMSServiceAreaList ProtocolIE-ID
+id-Time-ofMBMS-DataTransfer ProtocolIE-ID
+id-Time-ofMBMS-DataStop ProtocolIE-ID
+
+#.REGISTER
+
+#M3AP-PROTOCOL-IES
+MME-MBMS-M3AP-ID N m3ap.ies id-MME-MBMS-M3AP-ID
+MCE-MBMS-M3AP-ID N m3ap.ies id-MCE-MBMS-M3AP-ID
+TMGI N m3ap.ies id-TMGI
+MBMS-Session-ID N m3ap.ies id-MBMS-Session-ID
+MBMS-E-RAB-QoS-Parameters N m3ap.ies id-MBMS-E-RAB-QoS-Parameters
+MBMS-Session-Duration N m3ap.ies id-MBMS-Session-Duration
+MBMS-Service-Area N m3ap.ies id-MBMS-Service-Area
+TNL-Information N m3ap.ies id-TNL-Information
+CriticalityDiagnostics N m3ap.ies id-CriticalityDiagnostics
+Cause N m3ap.ies id-Cause
+#MBMS-Service-Area-List N m3ap.ies id-MBMS-Service-Area-List
+#MBMS-Service-Area-List-Item N m3ap.ies id-MBMS-Service-Area-List-Item
+TimeToWait N m3ap.ies id-TimeToWait
+ResetType N m3ap.ies id-ResetType
+MBMS-Service-associatedLogicalM3-ConnectionItem N m3ap.ies id-MBMS-Service-associatedLogicalM3-ConnectionItem
+MBMS-Service-associatedLogicalM3-ConnectionListResAck N m3ap.ies id-MBMS-Service-associatedLogicalM3-ConnectionListResAck
+MinimumTimeToMBMSDataTransfer N m3ap.ies id-MinimumTimeToMBMSDataTransfer
+AllocationAndRetentionPriority N m3ap.ies id-AllocationAndRetentionPriority
+Global-MCE-ID N m3ap.ies id-Global-MCE-ID
+MCEname N m3ap.ies id-MCEname
+MBMSServiceAreaListItem N m3ap.ies id-MBMSServiceAreaList
+Absolute-Time-ofMBMS-Data N m3ap.ies id-Time-ofMBMS-DataTransfer
+Absolute-Time-ofMBMS-Data N m3ap.ies id-Time-ofMBMS-DataStop
+
+#M3AP-ELEMENTARY-PROCEDURE
+MBMSSessionStartRequest N m3ap.proc.imsg id-mBMSsessionStart
+MBMSSessionStartResponse N m3ap.proc.sout id-mBMSsessionStart
+MBMSSessionStartFailure N m3ap.proc.uout id-mBMSsessionStart
+
+MBMSSessionStopRequest N m3ap.proc.imsg id-mBMSsessionStop
+MBMSSessionStopResponse N m3ap.proc.sout id-mBMSsessionStop
+
+MBMSSessionUpdateRequest N m3ap.proc.imsg id-mBMSsessionUpdate
+MBMSSessionUpdateResponse N m3ap.proc.sout id-mBMSsessionUpdate
+MBMSSessionUpdateFailure N m3ap.proc.uout id-mBMSsessionUpdate
+
+ErrorIndication N m3ap.proc.imsg id-errorIndication
+
+Reset N m3ap.proc.imsg id-Reset
+ResetAcknowledge N m3ap.proc.sout id-Reset
+
+PrivateMessage N m3ap.proc.imsg id-privateMessage
+
+MCEConfigurationUpdate N m3ap.proc.imsg id-mCEConfigurationUpdate
+MCEConfigurationUpdateAcknowledge N m3ap.proc.sout id-mCEConfigurationUpdate
+MCEConfigurationUpdateFailure N m3ap.proc.uout id-mCEConfigurationUpdate
+
+M3SetupRequest N m3ap.proc.imsg id-m3Setup
+M3SetupResponse N m3ap.proc.sout id-m3Setup
+M3SetupFailure N m3ap.proc.uout id-m3Setup
+
+#.END
diff --git a/epan/dissectors/asn1/m3ap/packet-m3ap-template.c b/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
new file mode 100644
index 0000000000..98cceefbc3
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
@@ -0,0 +1,218 @@
+/* packet-m3ap.c
+ * Routines for M3 Application Protocol packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Reference: 3GPP TS 36.444 v11.0.0
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+#include <epan/sctpppids.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-e212.h"
+#include "packet-gtpv2.h"
+#include "packet-ntp.h"
+
+#define PNAME "M3 Application Protocol"
+#define PSNAME "M3AP"
+#define PFNAME "m3ap"
+
+void proto_register_m3ap(void);
+void proto_reg_handoff_m3ap(void);
+
+/* M3AP uses port 36444 as recommended by IANA. */
+#define M3AP_PORT 36444
+static dissector_handle_t m3ap_handle=NULL;
+
+#include "packet-m3ap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_m3ap = -1;
+
+static int hf_m3ap_Absolute_Time_ofMBMS_Data_value = -1;
+static int hf_m3ap_IPAddress_v4 = -1;
+static int hf_m3ap_IPAddress_v6 = -1;
+
+#include "packet-m3ap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_m3ap = -1;
+
+#include "packet-m3ap-ett.c"
+
+static expert_field ei_m3ap_invalid_ip_address_len = EI_INIT;
+
+enum{
+ INITIATING_MESSAGE,
+ SUCCESSFUL_OUTCOME,
+ UNSUCCESSFUL_OUTCOME
+};
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+/*static guint32 ProtocolExtensionID; */
+static int global_m3ap_port = M3AP_PORT;
+static guint32 message_type;
+
+/* Dissector tables */
+static dissector_table_t m3ap_ies_dissector_table;
+static dissector_table_t m3ap_extension_dissector_table;
+static dissector_table_t m3ap_proc_imsg_dissector_table;
+static dissector_table_t m3ap_proc_sout_dissector_table;
+static dissector_table_t m3ap_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+#include "packet-m3ap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(m3ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(m3ap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(m3ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(m3ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(m3ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int
+dissect_m3ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *m3ap_item = NULL;
+ proto_tree *m3ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PNAME);
+
+ /* create the m3ap protocol tree */
+ if (tree) {
+ m3ap_item = proto_tree_add_item(tree, proto_m3ap, tvb, 0, -1, ENC_NA);
+ m3ap_tree = proto_item_add_subtree(m3ap_item, ett_m3ap);
+
+ dissect_M3AP_PDU_PDU(tvb, pinfo, m3ap_tree, NULL);
+ }
+ return tvb_captured_length(tvb);
+}
+/*--- proto_register_m3ap -------------------------------------------*/
+void proto_register_m3ap(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_m3ap_Absolute_Time_ofMBMS_Data_value,
+ { "Absolute-Time-ofMBMS-Data-value", "m3ap.Absolute_Time_ofMBMS_Data_value",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_m3ap_IPAddress_v4,
+ { "IPAddress", "m3ap.IPAddress_v4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_m3ap_IPAddress_v6,
+ { "IPAddress", "m3ap.IPAddress_v6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
+
+#include "packet-m3ap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_m3ap,
+#include "packet-m3ap-ettarr.c"
+ };
+
+ expert_module_t* expert_m3ap;
+
+ static ei_register_info ei[] = {
+ { &ei_m3ap_invalid_ip_address_len, { "m3ap.invalid_ip_address_len", PI_MALFORMED, PI_ERROR, "Invalid IP address length", EXPFILL }}
+ };
+
+ /* Register protocol */
+ proto_m3ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_m3ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_m3ap = expert_register_protocol(proto_m3ap);
+ expert_register_field_array(expert_m3ap, ei, array_length(ei));
+
+ /* Register dissector tables */
+ m3ap_ies_dissector_table = register_dissector_table("m3ap.ies", "M3AP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ m3ap_extension_dissector_table = register_dissector_table("m3ap.extension", "M3AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ m3ap_proc_imsg_dissector_table = register_dissector_table("m3ap.proc.imsg", "M3AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ m3ap_proc_sout_dissector_table = register_dissector_table("m3ap.proc.sout", "M3AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ m3ap_proc_uout_dissector_table = register_dissector_table("m3ap.proc.uout", "M3AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+}
+
+
+/*--- proto_reg_handoff_m3ap ---------------------------------------*/
+void
+proto_reg_handoff_m3ap(void)
+{
+ static gboolean inited = FALSE;
+ static guint SctpPort;
+
+ if( !inited ) {
+ m3ap_handle = create_dissector_handle(dissect_m3ap, proto_m3ap);
+ dissector_add_uint("sctp.ppi", PROTO_3GPP_M3AP_PROTOCOL_ID, m3ap_handle);
+ inited = TRUE;
+#include "packet-m3ap-dis-tab.c"
+ dissector_add_uint("m3ap.extension", 17, create_dissector_handle(dissect_AllocationAndRetentionPriority_PDU, proto_m3ap));
+ }
+ else {
+ if (SctpPort != 0) {
+ dissector_delete_uint("sctp.port", SctpPort, m3ap_handle);
+ }
+ }
+
+ SctpPort = global_m3ap_port;
+ if (SctpPort != 0) {
+ dissector_add_uint("sctp.port", SctpPort, m3ap_handle);
+ }
+}
diff --git a/epan/dissectors/asn1/mms/CMakeLists.txt b/epan/dissectors/asn1/mms/CMakeLists.txt
new file mode 100644
index 0000000000..89a90ba1ac
--- /dev/null
+++ b/epan/dissectors/asn1/mms/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME mms )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../acse/acse-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/mms/Makefile.am b/epan/dissectors/asn1/mms/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/mms/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/mms/Makefile.common b/epan/dissectors/asn1/mms/Makefile.common
new file mode 100644
index 0000000000..02fc04b7f3
--- /dev/null
+++ b/epan/dissectors/asn1/mms/Makefile.common
@@ -0,0 +1,47 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=mms
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../acse/acse-exp.cnf
+
+$(builddir)/../acse/acse-exp.cnf:
+ (cd $(builddir)/../acse && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/mms/Makefile.nmake b/epan/dissectors/asn1/mms/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/mms/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/mms/mms.asn b/epan/dissectors/asn1/mms/mms.asn
new file mode 100644
index 0000000000..2f1eb66b52
--- /dev/null
+++ b/epan/dissectors/asn1/mms/mms.asn
@@ -0,0 +1,2246 @@
+-- ASN definition from
+-- http://www.sisconet.com/techinfo.htm
+-- slightly modified
+--
+--
+--Corrections made July 2, 1994
+--
+--
+-- Modified to pass asn2wrs
+
+MMS { iso standard 9506 part(2) mms-general-module-version(2) }
+
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS MMSpdu;
+
+IMPORTS
+ EXTERNALt,
+ AP-title,
+ AP-invocation-identifier,
+ AE-qualifier,
+ AE-invocation-identifier
+FROM ISO-8650-ACSE-1;
+
+
+MMSpdu ::= CHOICE
+ {
+ confirmed-RequestPDU [0] IMPLICIT Confirmed-RequestPDU,
+ confirmed-ResponsePDU [1] IMPLICIT Confirmed-ResponsePDU,
+ confirmed-ErrorPDU [2] IMPLICIT Confirmed-ErrorPDU,
+ unconfirmed-PDU [3] IMPLICIT Unconfirmed-PDU,
+ rejectPDU [4] IMPLICIT RejectPDU,
+ cancel-RequestPDU [5] IMPLICIT Cancel-RequestPDU,
+ cancel-ResponsePDU [6] IMPLICIT Cancel-ResponsePDU,
+ cancel-ErrorPDU [7] IMPLICIT Cancel-ErrorPDU,
+ initiate-RequestPDU [8] IMPLICIT Initiate-RequestPDU,
+ initiate-ResponsePDU [9] IMPLICIT Initiate-ResponsePDU,
+ initiate-ErrorPDU [10] IMPLICIT Initiate-ErrorPDU,
+ conclude-RequestPDU [11] IMPLICIT Conclude-RequestPDU,
+ conclude-ResponsePDU [12] IMPLICIT Conclude-ResponsePDU,
+ conclude-ErrorPDU [13] IMPLICIT Conclude-ErrorPDU
+ }
+
+
+Confirmed-RequestPDU ::= SEQUENCE
+ {
+ invokeID Unsigned32,
+ listOfModifier SEQUENCE OF Modifier OPTIONAL,
+ confirmedServiceRequest ConfirmedServiceRequest,
+ cs-request-detail [79] CS-Request-Detail OPTIONAL
+ }
+
+
+Unconfirmed-PDU ::= SEQUENCE
+ {
+ unconfirmedService UnconfirmedService,
+ cs-request-detail [79] CS-Request-Detail OPTIONAL
+ }
+
+
+Confirmed-ResponsePDU ::= SEQUENCE
+ {
+ invokeID Unsigned32,
+ confirmedServiceResponse ConfirmedServiceResponse,
+ cs-request-detail [79] CS-Request-Detail OPTIONAL
+ }
+
+
+Confirmed-ErrorPDU ::= SEQUENCE
+ {
+ invokeID [0] IMPLICIT Unsigned32,
+ modifierPosition [1] IMPLICIT Unsigned32 OPTIONAL,
+ serviceError [2] IMPLICIT ServiceError
+ }
+
+
+UnconfirmedService ::= CHOICE
+ {
+ informationReport [0] IMPLICIT InformationReport,
+ unsolicitedStatus [1] IMPLICIT UnsolicitedStatus,
+ eventNotification [2] IMPLICIT EventNotification
+-- XXX this one is neither in this ASN nor in the IMPORTS
+-- additionalService [3] AdditionalUnconfirmedService
+ }
+
+
+Modifier ::= CHOICE
+ {
+ attach-To-Event-Condition [0] IMPLICIT AttachToEventCondition,
+ attach-To-Semaphore [1] IMPLICIT AttachToSemaphore
+ }
+
+
+ConfirmedServiceRequest ::= CHOICE
+ {
+ status [0] IMPLICIT Status-Request,
+ getNameList [1] IMPLICIT GetNameList-Request,
+ identify [2] IMPLICIT Identify-Request,
+ rename [3] IMPLICIT Rename-Request,
+ read [4] IMPLICIT Read-Request,
+ write [5] IMPLICIT Write-Request,
+ getVariableAccessAttributes [6] GetVariableAccessAttributes-Request,
+ defineNamedVariable [7] IMPLICIT DefineNamedVariable-Request,
+ defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Request,
+ getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Request,
+ deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Request,
+ defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Request,
+ getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Request,
+ deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Request,
+ defineNamedType [14] IMPLICIT DefineNamedType-Request,
+ getNamedTypeAttributes [15] IMPLICIT GetNamedTypeAttributes-Request,
+ deleteNamedType [16] IMPLICIT DeleteNamedType-Request,
+ input [17] IMPLICIT Input-Request,
+ output [18] IMPLICIT Output-Request,
+ takeControl [19] IMPLICIT TakeControl-Request,
+ relinquishControl [20] IMPLICIT RelinquishControl-Request,
+ defineSemaphore [21] IMPLICIT DefineSemaphore-Request,
+ deleteSemaphore [22] IMPLICIT DeleteSemaphore-Request,
+ reportSemaphoreStatus [23] IMPLICIT ReportSemaphoreStatus-Request,
+ reportPoolSemaphoreStatus [24] IMPLICIT ReportPoolSemaphoreStatus-Request,
+ reportSemaphoreEntryStatus [25] IMPLICIT ReportSemaphoreEntryStatus-Request,
+ initiateDownloadSequence [26] IMPLICIT InitiateDownloadSequence-Request,
+ downloadSegment [27] IMPLICIT DownloadSegment-Request,
+ terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Request,
+ initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Request,
+ uploadSegment [30] IMPLICIT UploadSegment-Request,
+ terminateUploadSequence [31] IMPLICIT TerminateUploadSequence-Request,
+ requestDomainDownload [32] IMPLICIT RequestDomainDownload-Request,
+ requestDomainUpload [33] IMPLICIT RequestDomainUpload-Request,
+ loadDomainContent [34] IMPLICIT LoadDomainContent-Request,
+ storeDomainContent [35] IMPLICIT StoreDomainContent-Request,
+ deleteDomain [36] IMPLICIT DeleteDomain-Request,
+ getDomainAttributes [37] IMPLICIT GetDomainAttributes-Request,
+ createProgramInvocation [38] IMPLICIT CreateProgramInvocation-Request,
+ deleteProgramInvocation [39] IMPLICIT DeleteProgramInvocation-Request,
+ start [40] IMPLICIT Start-Request,
+ stop [41] IMPLICIT Stop-Request,
+ resume [42] IMPLICIT Resume-Request,
+ reset [43] IMPLICIT Reset-Request,
+ kill [44] IMPLICIT Kill-Request,
+ getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Request,
+ obtainFile [46] IMPLICIT ObtainFile-Request,
+ defineEventCondition [47] IMPLICIT DefineEventCondition-Request,
+ deleteEventCondition [48] DeleteEventCondition-Request,
+ getEventConditionAttributes [49] GetEventConditionAttributes-Request,
+ reportEventConditionStatus [50] ReportEventConditionStatus-Request,
+ alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Request,
+ triggerEvent [52] IMPLICIT TriggerEvent-Request,
+ defineEventAction [53] IMPLICIT DefineEventAction-Request,
+ deleteEventAction [54] DeleteEventAction-Request,
+ getEventActionAttributes [55] GetEventActionAttributes-Request,
+ reportEventActionStatus [56] ReportEventActionStatus-Request,
+ defineEventEnrollment [57] IMPLICIT DefineEventEnrollment-Request,
+ deleteEventEnrollment [58] DeleteEventEnrollment-Request,
+ alterEventEnrollment [59] IMPLICIT AlterEventEnrollment-Request,
+ reportEventEnrollmentStatus [60] ReportEventEnrollmentStatus-Request,
+ getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Request,
+ acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Request,
+ getAlarmSummary [63] IMPLICIT GetAlarmSummary-Request,
+ getAlarmEnrollmentSummary [64] IMPLICIT GetAlarmEnrollmentSummary-Request,
+ readJournal [65] IMPLICIT ReadJournal-Request,
+ writeJournal [66] IMPLICIT WriteJournal-Request,
+ initializeJournal [67] IMPLICIT InitializeJournal-Request,
+ reportJournalStatus [68] IMPLICIT ReportJournalStatus-Request,
+ createJournal [69] IMPLICIT CreateJournal-Request,
+ deleteJournal [70] IMPLICIT DeleteJournal-Request,
+ getCapabilityList [71] IMPLICIT GetCapabilityList-Request,
+ fileOpen [72] IMPLICIT FileOpen-Request,
+ fileRead [73] IMPLICIT FileRead-Request,
+ fileClose [74] IMPLICIT FileClose-Request,
+ fileRename [75] IMPLICIT FileRename-Request,
+ fileDelete [76] IMPLICIT FileDelete-Request,
+ fileDirectory [77] IMPLICIT FileDirectory-Request
+-- XXX this one is neither in this ASN nor in the IMPORTS
+-- additionalService [78] AdditionalService-Request
+ }
+
+CS-Request-Detail ::= CHOICE {
+-- see ISO 9506-2
+-- XXX can not handle empty choice
+-- XXX fix me later
+ foo INTEGER
+ }
+
+ConfirmedServiceResponse ::= CHOICE
+ {
+ status [0] IMPLICIT Status-Response,
+ getNameList [1] IMPLICIT GetNameList-Response,
+ identify [2] IMPLICIT Identify-Response,
+ rename [3] IMPLICIT Rename-Response,
+ read [4] IMPLICIT Read-Response,
+ write [5] IMPLICIT Write-Response,
+ getVariableAccessAttributes [6] IMPLICIT GetVariableAccessAttributes-Response,
+ defineNamedVariable [7] IMPLICIT DefineNamedVariable-Response,
+ defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Response,
+ getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Response,
+ deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Response,
+ defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Response,
+ getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Response,
+ deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Response,
+ defineNamedType [14] IMPLICIT DefineNamedType-Response,
+ getNamedTypeAttributes [15] IMPLICIT GetNamedTypeAttributes-Response,
+ deleteNamedType [16] IMPLICIT DeleteNamedType-Response,
+ input [17] IMPLICIT Input-Response,
+ output [18] IMPLICIT Output-Response,
+ takeControl [19] TakeControl-Response,
+ relinquishControl [20] IMPLICIT RelinquishControl-Response,
+ defineSemaphore [21] IMPLICIT DefineSemaphore-Response,
+ deleteSemaphore [22] IMPLICIT DeleteSemaphore-Response,
+ reportSemaphoreStatus [23] IMPLICIT ReportSemaphoreStatus-Response,
+ reportPoolSemaphoreStatus [24] IMPLICIT ReportPoolSemaphoreStatus-Response,
+ reportSemaphoreEntryStatus [25] IMPLICIT ReportSemaphoreEntryStatus-Response,
+ initiateDownloadSequence [26] IMPLICIT InitiateDownloadSequence-Response,
+ downloadSegment [27] IMPLICIT DownloadSegment-Response,
+ terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Response,
+ initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Response,
+ uploadSegment [30] IMPLICIT UploadSegment-Response,
+ terminateUploadSequence [31] IMPLICIT TerminateUploadSequence-Response,
+ requestDomainDownLoad [32] IMPLICIT RequestDomainDownload-Response,
+ requestDomainUpload [33] IMPLICIT RequestDomainUpload-Response,
+ loadDomainContent [34] IMPLICIT LoadDomainContent-Response,
+ storeDomainContent [35] IMPLICIT StoreDomainContent-Response,
+ deleteDomain [36] IMPLICIT DeleteDomain-Response,
+ getDomainAttributes [37] IMPLICIT GetDomainAttributes-Response,
+ createProgramInvocation [38] IMPLICIT CreateProgramInvocation-Response,
+ deleteProgramInvocation [39] IMPLICIT DeleteProgramInvocation-Response,
+ start [40] IMPLICIT Start-Response,
+ stop [41] IMPLICIT Stop-Response,
+ resume [42] IMPLICIT Resume-Response,
+ reset [43] IMPLICIT Reset-Response,
+ kill [44] IMPLICIT Kill-Response,
+ getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Response,
+ obtainFile [46] IMPLICIT ObtainFile-Response,
+ fileOpen [72] IMPLICIT FileOpen-Response,
+ defineEventCondition [47] IMPLICIT DefineEventCondition-Response,
+ deleteEventCondition [48] IMPLICIT DeleteEventCondition-Response,
+ getEventConditionAttributes [49] IMPLICIT GetEventConditionAttributes-Response,
+ reportEventConditionStatus [50] IMPLICIT ReportEventConditionStatus-Response,
+ alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Response,
+ triggerEvent [52] IMPLICIT TriggerEvent-Response,
+ defineEventAction [53] IMPLICIT DefineEventAction-Response,
+ deleteEventAction [54] IMPLICIT DeleteEventAction-Response,
+ getEventActionAttributes [55] IMPLICIT GetEventActionAttributes-Response,
+ reportActionStatus [56] IMPLICIT ReportEventActionStatus-Response,
+ defineEventEnrollment [57] IMPLICIT DefineEventEnrollment-Response,
+ deleteEventEnrollment [58] IMPLICIT DeleteEventEnrollment-Response,
+ alterEventEnrollment [59] IMPLICIT AlterEventEnrollment-Response,
+ reportEventEnrollmentStatus [60] IMPLICIT ReportEventEnrollmentStatus-Response,
+ getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Response,
+ acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Response,
+ getAlarmSummary [63] IMPLICIT GetAlarmSummary-Response,
+ getAlarmEnrollmentSummary [64] IMPLICIT GetAlarmEnrollmentSummary-Response,
+ readJournal [65] IMPLICIT ReadJournal-Response,
+ writeJournal [66] IMPLICIT WriteJournal-Response,
+ initializeJournal [67] IMPLICIT InitializeJournal-Response,
+ reportJournalStatus [68] IMPLICIT ReportJournalStatus-Response,
+ createJournal [69] IMPLICIT CreateJournal-Response,
+ deleteJournal [70] IMPLICIT DeleteJournal-Response,
+ getCapabilityList [71] IMPLICIT GetCapabilityList-Response,
+ fileRead [73] IMPLICIT FileRead-Response,
+ fileClose [74] IMPLICIT FileClose-Response,
+ fileRename [75] IMPLICIT FileRename-Response,
+ fileDelete [76] IMPLICIT FileDelete-Response,
+ fileDirectory [77] IMPLICIT FileDirectory-Response
+-- XXX this one is neither in this ASN nor in the IMPORTS
+-- additionalService [78] AdditionalService-Response
+ }
+
+--********************************** COMMON MMS TYPES ***********************************
+
+FileName ::= SEQUENCE OF GraphicString
+
+TimeOfDay ::= OCTET STRING -- (SIZE (4 | 6))
+
+Identifier ::= VisibleString
+
+MMSString ::= UTF8String
+
+Integer8 ::= INTEGER
+Integer16 ::= INTEGER
+Integer32 ::= INTEGER
+
+
+Unsigned8 ::= INTEGER
+Unsigned16 ::= INTEGER
+Unsigned32 ::= INTEGER
+
+
+ObjectName ::= CHOICE
+ {
+ vmd-specific [0] IMPLICIT Identifier,
+ domain-specific [1] IMPLICIT SEQUENCE
+ {
+ domainId Identifier,
+ itemId Identifier
+ },
+ aa-specific [2] IMPLICIT Identifier
+ }
+
+
+ApplicationReference ::= SEQUENCE
+ {
+ ap-title [0] AP-title OPTIONAL,
+ ap-invocation-id [1] AP-invocation-identifier OPTIONAL,
+ ae-qualifier [2] AE-qualifier OPTIONAL,
+ ae-invocation-id [3] AE-invocation-identifier OPTIONAL
+ }
+
+
+Priority ::= Unsigned8
+
+normalPriority Priority ::= 64
+
+
+
+
+
+-- ************************************ GENERAL *************************************
+
+Initiate-ErrorPDU ::= ServiceError
+
+Initiate-RequestPDU ::= SEQUENCE
+ {
+ localDetailCalling [0] IMPLICIT Integer32 OPTIONAL,
+ proposedMaxServOutstandingCalling [1] IMPLICIT Integer16,
+ proposedMaxServOutstandingCalled [2] IMPLICIT Integer16,
+ proposedDataStructureNestingLevel [3] IMPLICIT Integer8 OPTIONAL,
+ mmsInitRequestDetail [4] IMPLICIT InitRequestDetail
+ }
+
+InitRequestDetail ::= SEQUENCE
+ {
+ proposedVersionNumber [0] IMPLICIT Integer16,
+ proposedParameterCBB [1] IMPLICIT ParameterSupportOptions,
+ servicesSupportedCalling [2] IMPLICIT ServiceSupportOptions
+ }
+
+Initiate-ResponsePDU ::= SEQUENCE
+ {
+ localDetailCalled [0] IMPLICIT Integer32 OPTIONAL,
+ negociatedMaxServOutstandingCalling [1] IMPLICIT Integer16,
+ negociatedMaxServOutstandingCalled [2] IMPLICIT Integer16,
+ negociatedDataStructureNestingLevel [3] IMPLICIT Integer8 OPTIONAL,
+ mmsInitResponseDetail [4] IMPLICIT InitResponseDetail
+ }
+
+InitResponseDetail ::= SEQUENCE
+ {
+ negociatedVersionNumber [0] IMPLICIT Integer16,
+ negociatedParameterCBB [1] IMPLICIT ParameterSupportOptions,
+ servicesSupportedCalled [2] IMPLICIT ServiceSupportOptions
+ }
+
+
+ParameterSupportOptions ::= BIT STRING {
+ str1 (0),
+ str2 (1),
+ vnam (2),
+ valt (3),
+ vadr (4),
+ vsca (5),
+ tpy (6),
+ vlis (7),
+ real (8),
+ cei (10)
+ }
+
+
+ServiceSupportOptions ::= BIT STRING
+ {
+ status (0),
+ getNameList (1),
+ identify (2),
+ rename (3),
+ read (4),
+ write (5),
+ getVariableAccessAttributes (6),
+ defineNamedVariable (7),
+ defineScatteredAccess (8),
+ getScatteredAccessAttributes (9),
+ deleteVariableAccess (10),
+ defineNamedVariableList (11),
+ getNamedVariableListAttributes (12),
+ deleteNamedVariableList (13),
+ defineNamedType (14),
+ getNamedTypeAttributes (15),
+ deleteNamedType (16),
+ input (17),
+ output (18),
+ takeControl (19),
+ relinquishControl (20),
+ defineSemaphore (21),
+ deleteSemaphore (22),
+ reportSemaphoreStatus (23),
+ reportPoolSemaphoreStatus (24),
+ reportSemaphoreEntryStatus (25),
+ initiateDownloadSequence (26),
+ downloadSegment (27),
+ terminateDownloadSequence (28),
+ initiateUploadSequence (29),
+ uploadSegment (30),
+ terminateUploadSequence (31),
+ requestDomainDownload (32),
+ requestDomainUpload (33),
+ loadDomainContent (34),
+ storeDomainContent (35),
+ deleteDomain (36),
+ getDomainAttributes (37),
+ createProgramInvocation (38),
+ deleteProgramInvocation (39),
+ start (40),
+ stop (41),
+ resume (42),
+ reset (43),
+ kill (44),
+ getProgramInvocationAttributes (45),
+ obtainFile (46),
+ defineEventCondition (47),
+ deleteEventCondition (48),
+ getEventConditionAttributes (49),
+ reportEventConditionStatus (50),
+ alterEventConditionMonitoring (51),
+ triggerEvent (52),
+ defineEventAction (53),
+ deleteEventAction (54),
+ getEventActionAttributes (55),
+ reportActionStatus (56),
+ defineEventEnrollment (57),
+ deleteEventEnrollment (58),
+ alterEventEnrollment (59),
+ reportEventEnrollmentStatus (60),
+ getEventEnrollmentAttributes (61),
+ acknowledgeEventNotification (62),
+ getAlarmSummary (63),
+ getAlarmEnrollmentSummary (64),
+ readJournal (65),
+ writeJournal (66),
+ initializeJournal (67),
+ reportJournalStatus (68),
+ createJournal (69),
+ deleteJournal (70),
+ getCapabilityList (71),
+ fileOpen (72),
+ fileRead (73),
+ fileClose (74),
+ fileRename (75),
+ fileDelete (76),
+ fileDirectory (77),
+ unsolicitedStatus (78),
+ informationReport (79),
+ eventNotification (80),
+ attachToEventCondition (81),
+ attachToSemaphore (82),
+ conclude (83),
+ cancel (84)
+ }
+
+---------------------------------- CONCLUDE --------------------------------
+
+Conclude-RequestPDU ::= NULL
+
+Conclude-ResponsePDU ::= NULL
+
+Conclude-ErrorPDU ::= ServiceError
+
+---------------------------------- CANCEL --------------------------------
+
+Cancel-RequestPDU ::= Unsigned32 -- originalInvokeID
+
+Cancel-ResponsePDU ::= Unsigned32 -- originalInvokeID
+
+Cancel-ErrorPDU ::= SEQUENCE
+ {
+ originalInvokeID [0] IMPLICIT Unsigned32,
+ serviceError [1] IMPLICIT ServiceError
+ }
+
+------------------------------ Service-Error --------------------------------
+
+ServiceError ::= SEQUENCE
+ {
+ errorClass [0] CHOICE
+ {
+ vmd-state [0] IMPLICIT INTEGER
+ {
+ other (0),
+ vmd-state-conflict (1),
+ vmd-operational-problem (2),
+ domain-transfer-problem (3),
+ state-machine-id-invalid (4)
+ },
+ application-reference [1] IMPLICIT INTEGER
+ {
+ other (0),
+ aplication-unreachable (1),
+ connection-lost (2),
+ application-reference-invalid (3),
+ context-unsupported (4)
+ },
+ definition [2] IMPLICIT INTEGER
+ {
+ other (0),
+ object-undefined (1),
+ invalid-address (2),
+ type-unsupported (3),
+ type-inconsistent (4),
+ object-exists (5),
+ object-attribute-inconsistent (6)
+ },
+ resource [3] IMPLICIT INTEGER
+ {
+ other (0),
+ memory-unavailable (1),
+ processor-resource-unavailable (2),
+ mass-storage-unavailable (3),
+ capability-unavailable (4),
+ capability-unknown (5)
+ },
+ service [4] IMPLICIT INTEGER
+ {
+ other (0),
+ primitives-out-of-sequence (1),
+ object-sate-conflict (2),
+ pdu-size (3),
+ continuation-invalid (4),
+ object-constraint-conflict (5)
+ },
+ service-preempt [5] IMPLICIT INTEGER
+ {
+ other (0),
+ timeout (1),
+ deadlock (2),
+ cancel (3)
+ },
+ time-resolution [6] IMPLICIT INTEGER
+ {
+ other (0),
+ unsupportable-time-resolution (1)
+ },
+ access [7] IMPLICIT INTEGER
+ {
+ other (0),
+ object-access-unsupported (1),
+ object-non-existent (2),
+ object-access-denied (3),
+ object-invalidated (4)
+ },
+ initiate [8] IMPLICIT INTEGER
+ {
+ other (0),
+ version-incompatible (1),
+ max-segment-insufficient (2),
+ max-services-outstanding-calling-insufficient (3),
+ max-services-outstanding-called-insufficient (4),
+ service-CBB-insufficient (5),
+ parameter-CBB-insufficient (6),
+ nesting-level-insufficient (7)
+ },
+ conclude [9] IMPLICIT INTEGER
+ {
+ other (0),
+ further-communication-required (1)
+ },
+ cancel [10] IMPLICIT INTEGER
+ {
+ other (0),
+ invoke-id-unknown (1),
+ cancel-not-possible (2)
+ },
+ file [11] IMPLICIT INTEGER
+ {
+ other (0),
+ filename-ambiguous (1),
+ file-busy (2),
+ filename-syntax-error (3),
+ content-type-invalid (4),
+ position-invalid (5),
+ file-acces-denied (6),
+ file-non-existent (7),
+ duplicate-filename (8),
+ insufficient-space-in-filestore (9)
+ },
+ others [12] IMPLICIT INTEGER
+ },
+ additionalCode [1] IMPLICIT INTEGER OPTIONAL,
+ additionalDescription [2] IMPLICIT VisibleString OPTIONAL,
+ serviceSpecificInformation [3] CHOICE
+ {
+ obtainFile [0] IMPLICIT ObtainFile-Error,
+ start [1] IMPLICIT Start-Error,
+ stop [2] IMPLICIT Stop-Error,
+ resume [3] IMPLICIT Resume-Error,
+ reset [4] IMPLICIT Reset-Error,
+ deleteVariableAccess [5] IMPLICIT DeleteVariableAccess-Error,
+ deleteNamedVariableList [6] IMPLICIT DeleteNamedVariableList-Error,
+ deleteNamedType [7] IMPLICIT DeleteNamedType-Error,
+ defineEventEnrollment-Error [8] DefineEventEnrollment-Error,
+ fileRename [9] IMPLICIT FileRename-Error
+-- XXX this one is neither in this ASN nor in the IMPORTS
+-- additionalService [10] AdditionalServiceError
+ } OPTIONAL
+ }
+
+
+---------------------------------- REJECT --------------------------------
+
+RejectPDU ::= SEQUENCE
+ {
+ originalInvokeID [0] IMPLICIT Unsigned32 OPTIONAL,
+ rejectReason CHOICE
+ {
+ confirmed-requestPDU [1] IMPLICIT INTEGER
+ {
+ other (0),
+ unrecognized-service (1),
+ unrecognized-modifier (2),
+ invalid-invokeID (3),
+ invalid-argument (4),
+ invalid-modifier (5),
+ max-serv-outstanding-exceeded (6),
+ max-recursion-exceeded (8),
+ value-out-of-range (9)
+ },
+
+ confirmed-responsePDU [2] IMPLICIT INTEGER
+ {
+ other (0),
+ unrecognized-service (1),
+ invalid-invokeID (2),
+ invalid-result (3),
+ max-recursion-exceeded (5),
+ value-out-of-range (6)
+ },
+
+ confirmed-errorPDU [3] IMPLICIT INTEGER
+ {
+ other (0),
+ unrecognized-service (1),
+ invalid-invokeID (2),
+ invalid-serviceError (3),
+ value-out-of-range (4)
+ } ,
+
+ unconfirmedPDU [4] IMPLICIT INTEGER
+ {
+ other (0),
+ unrecognized-service (1),
+ invalid-argument (2),
+ max-recursion-exceeded (3),
+ value-out-of-range (4)
+ },
+
+ pdu-error [5] IMPLICIT INTEGER
+ {
+ unknown-pdu-type (0),
+ invalid-pdu (1),
+ illegal-acse-mapping (2)
+ },
+
+ cancel-requestPDU [6] IMPLICIT INTEGER
+ {
+ other (0),
+ invalid-invokeID (1)
+ },
+
+ cancel-responsePDU [7] IMPLICIT INTEGER
+ {
+ other (0),
+ invalid-invokeID (1)
+ },
+
+ cancel-errorPDU [8] IMPLICIT INTEGER
+ {
+ other (0),
+ invalid-invokeID (1),
+ invalid-serviceError (2),
+ value-out-of-range (3)
+ },
+
+ conclude-requestPDU [9] IMPLICIT INTEGER
+ {
+ other (0),
+ invalid-argument (1)
+ },
+
+ conclude-responsePDU [10] IMPLICIT INTEGER
+ {
+ other (0),
+ invalid-result (1)
+ },
+
+ conclude-errorPDU [11] IMPLICIT INTEGER
+ {
+ other (0),
+ invalid-serviceError (1),
+ value-out-of-range (2)
+ }
+ }
+ }
+
+
+-- *************************************** VMD ********************************************
+
+
+Status-Request ::= BOOLEAN
+
+Status-Response ::= SEQUENCE {
+ vmdLogicalStatus [0] IMPLICIT INTEGER {
+ state-changes-allowed (0),
+ no-state-changes-allowed (1),
+ limited-services-allowed (2),
+ support-services-allowed (3)
+ },
+ vmdPhysicalStatus [1] IMPLICIT INTEGER {
+ operational (0),
+ partially-operational (1),
+ inoperable (2),
+ needs-commissioning (3)
+ },
+ localDetail [2] IMPLICIT BIT STRING(SIZE(0..128)) OPTIONAL
+
+ }
+
+-- UNSOLICITEDSTATUS
+
+UnsolicitedStatus ::= Status-Response
+
+-- GETNAMELIST
+
+GetNameList-Request ::= SEQUENCE
+ {
+ extendedObjectClass [0] CHOICE
+ {
+ objectClass [0] IMPLICIT INTEGER
+ {
+ nammedVariable (0),
+ scatteredAccess (1),
+ namedVariableList (2),
+ namedType (3),
+ semaphore (4),
+ eventCondition (5),
+ eventAction (6),
+ eventEnrollment (7),
+ journal (8),
+ domain (9),
+ programInvocation (10),
+ operatorStation (11)
+ }
+ },
+ objectScope [1] CHOICE
+ {
+ vmdSpecific [0] IMPLICIT NULL,
+ domainSpecific [1] IMPLICIT Identifier,
+ aaSpecific [2] IMPLICIT NULL
+ },
+ continueAfter [2] IMPLICIT Identifier OPTIONAL
+ }
+
+GetNameList-Response ::= SEQUENCE
+ {
+ listOfIdentifier [0] IMPLICIT SEQUENCE OF Identifier,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+
+---------------------------------- IDENTIFY --------------------------------
+
+Identify-Request ::= NULL
+
+Identify-Response ::= SEQUENCE {
+ vendorName [0] IMPLICIT VisibleString,
+ modelName [1] IMPLICIT VisibleString,
+ revision [2] IMPLICIT VisibleString,
+ listOfAbstractSyntaxes [3] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL
+ }
+
+---------------------------------- RENAME --------------------------------
+
+Rename-Request ::= SEQUENCE
+ {
+ extendedObjectClass [0] CHOICE {
+ objectClass [0] IMPLICIT INTEGER
+ {
+ namedVariable (0),
+ scatteredAccess (1),
+ namedVariableList (2),
+ namedType (3),
+ semaphore (4),
+ eventCondition (5),
+ eventAction (6),
+ eventEnrollment (7),
+ journal (8),
+ domain (9),
+ programInvocation (10),
+ operatorStation (11)
+ }
+
+ },
+ currentName [1] ObjectName,
+ newIdentifier [2] IMPLICIT Identifier
+ }
+
+Rename-Response ::= NULL
+
+---------------------------------- GET CAPABILITY LIST --------------------------------
+
+GetCapabilityList-Request ::= SEQUENCE {
+ continueAfter VisibleString OPTIONAL
+ }
+
+GetCapabilityList-Response ::= SEQUENCE {
+ listOfCapabilities [0] IMPLICIT SEQUENCE OF VisibleString,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+
+
+
+
+-- ************************************* DOMAIN ****************************************
+
+InitiateDownloadSequence-Request ::= SEQUENCE
+ {
+ domainName [0] IMPLICIT Identifier,
+ listOfCapabilities [1] IMPLICIT SEQUENCE OF VisibleString,
+ sharable [2] IMPLICIT BOOLEAN
+ }
+
+InitiateDownloadSequence-Response ::= NULL
+
+-- DOWNLOAD SEGMENT
+
+DownloadSegment-Request ::= Identifier
+
+DownloadSegment-Response ::= SEQUENCE
+ {
+ loadData CHOICE {
+ non-coded [0] IMPLICIT OCTET STRING,
+ coded EXTERNALt
+ },
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+-- TERMINATE DOWNLOAD
+
+TerminateDownloadSequence-Request ::= SEQUENCE
+ {
+ domainName [0] IMPLICIT Identifier,
+ discard [1] IMPLICIT ServiceError OPTIONAL
+ }
+
+TerminateDownloadSequence-Response ::= NULL
+
+-- INITIATE UPLOAD
+
+InitiateUploadSequence-Request ::= Identifier -- Domain Name
+
+InitiateUploadSequence-Response ::= SEQUENCE
+ {
+ ulsmID [0] IMPLICIT Integer32,
+ listOfCapabilities [1] IMPLICIT SEQUENCE OF VisibleString
+ }
+
+-- UPLOAD SEGMENT
+
+UploadSegment-Request ::= Integer32 -- ULSM Identifier
+
+UploadSegment-Response ::= SEQUENCE
+ {
+ loadData CHOICE {
+ non-coded [0] IMPLICIT OCTET STRING,
+ coded EXTERNALt
+ },
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+-- TERMINATE UPLOAD
+
+TerminateUploadSequence-Request ::= Integer32 -- ULSM Identifer
+
+TerminateUploadSequence-Response ::= NULL
+
+-- REQUEST DOMAIN DOWNLOAD
+
+RequestDomainDownload-Request ::= SEQUENCE
+ {
+ domainName [0] IMPLICIT Identifier,
+ listOfCapabilities [1] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
+ sharable [2] IMPLICIT BOOLEAN,
+ fileName [4] IMPLICIT FileName
+ }
+RequestDomainDownload-Response ::= NULL
+
+-- REQUEST DOMAIN UPLOAD
+
+RequestDomainUpload-Request ::= SEQUENCE
+ {
+ domainName [0] IMPLICIT Identifier,
+ fileName [1] IMPLICIT FileName
+ }
+
+RequestDomainUpload-Response ::= NULL
+
+-- LOAD DOMAIN CONTENT
+
+LoadDomainContent-Request ::= SEQUENCE
+ {
+ domainName [0] IMPLICIT Identifier,
+ listOfCapabilities [1] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
+ sharable [2] IMPLICIT BOOLEAN,
+ fileName [4] IMPLICIT FileName,
+ thirdParty [5] IMPLICIT ApplicationReference OPTIONAL
+ }
+
+LoadDomainContent-Response ::= NULL
+
+-- STORE DOMAIN CONTENT
+
+StoreDomainContent-Request ::= SEQUENCE
+ {
+ domainName [0] IMPLICIT Identifier,
+ filenName [1] IMPLICIT FileName,
+ thirdParty [2] IMPLICIT ApplicationReference OPTIONAL
+ }
+
+StoreDomainContent-Response ::= NULL
+
+-- DELETE DOMAIN
+
+DeleteDomain-Request ::= Identifier -- Domain Name
+
+DeleteDomain-Response ::= NULL
+
+-- GET DOMAIN ATTRIBUTES
+
+GetDomainAttributes-Request ::= Identifier -- Domain Name
+
+GetDomainAttributes-Response ::= SEQUENCE
+ {
+ listOfCapabilities [0] IMPLICIT SEQUENCE OF VisibleString,
+ state [1] IMPLICIT DomainState,
+ mmsDeletable [2] IMPLICIT BOOLEAN,
+ sharable [3] IMPLICIT BOOLEAN,
+ listOfProgramInvocations [4] IMPLICIT SEQUENCE OF Identifier, -- PI Names
+ uploadInProgress [5] IMPLICIT Integer8
+ }
+
+
+DomainState ::= INTEGER
+ {
+ non-existent (0),
+ loading (1),
+ ready (2),
+ in-use (3),
+ complete (4),
+ incomplete (5),
+ d1 (7),
+ d2 (8),
+ d3 (9),
+ d4 (10),
+ d5 (11),
+ d6 (12),
+ d7 (13),
+ d8 (14),
+ d9 (15)
+ }
+
+-- ********************************* PROGRAM INVOCATION *********************************
+
+
+-- CREATE PROGRAM INVOCATION
+
+CreateProgramInvocation-Request ::= SEQUENCE
+ {
+ programInvocationName [0] IMPLICIT Identifier,
+ listOfDomainName [1] IMPLICIT SEQUENCE OF Identifier,
+ reusable [2] IMPLICIT BOOLEAN DEFAULT TRUE,
+ monitorType [3] IMPLICIT BOOLEAN OPTIONAL
+ -- TRUE indicates PERMANENT monitoring
+ -- FALSE indicates CURRENT monitoring
+ }
+
+CreateProgramInvocation-Response ::= NULL
+
+-- DELETE PROGRAM INVOCATION
+
+DeleteProgramInvocation-Request ::= Identifier -- Program Invocation Name
+
+DeleteProgramInvocation-Response ::= NULL
+
+-- START
+
+Start-Request ::= SEQUENCE
+ {
+ programInvocationName [0] IMPLICIT Identifier,
+ executionArgument CHOICE {
+ simpleString [1] IMPLICIT VisibleString,
+ encodedString EXTERNALt
+ } OPTIONAL
+ }
+
+Start-Response ::= NULL
+
+Start-Error ::= ProgramInvocationState
+
+-- STOP
+
+Stop-Request ::= SEQUENCE
+ {
+ programInvocationName [0] IMPLICIT Identifier
+ }
+
+Stop-Response ::= NULL
+
+Stop-Error ::= ProgramInvocationState
+
+-- RESUME
+
+Resume-Request ::= SEQUENCE
+ {
+ programInvocationName [0] IMPLICIT Identifier,
+ executionArgument CHOICE {
+ simpleString [1] IMPLICIT VisibleString,
+ encodedString EXTERNALt
+ } OPTIONAL
+ }
+
+Resume-Response ::= NULL
+
+Resume-Error ::= ProgramInvocationState
+
+-- RESET
+
+Reset-Request ::= SEQUENCE
+ {
+ programInvocationName [0] IMPLICIT Identifier
+ }
+
+Reset-Response ::= NULL
+
+Reset-Error ::= ProgramInvocationState
+
+-- KILL
+
+Kill-Request ::= SEQUENCE
+ {
+ programInvocationName [0] IMPLICIT Identifier
+ }
+
+Kill-Response ::= NULL
+
+-- GET PI ATTRIBUTES
+
+GetProgramInvocationAttributes-Request ::= Identifier -- Program Invocation Name
+
+GetProgramInvocationAttributes-Response ::= SEQUENCE
+ {
+ state [0] IMPLICIT ProgramInvocationState,
+ listOfDomainNames [1] IMPLICIT SEQUENCE OF Identifier,
+ mmsDeletable [2] IMPLICIT BOOLEAN,
+ reusable [3] IMPLICIT BOOLEAN,
+ monitor [4] IMPLICIT BOOLEAN,
+ startArgument [5] IMPLICIT VisibleString,
+ executionArgument CHOICE {
+ simpleString [1] IMPLICIT VisibleString,
+ encodedString EXTERNALt
+ } OPTIONAL
+ }
+
+
+ProgramInvocationState ::= INTEGER
+ {
+ non-existent (0),
+ unrunable (1),
+ idle (2),
+ running (3),
+ stopped (4),
+ starting (5),
+ stopping (6),
+ resuming (7),
+ resetting (8)
+ }
+ -- Companion Standard may add additional values
+
+
+-- *********************************** VARIABLES ****************************************
+
+
+TypeSpecification ::= CHOICE
+ {
+ typeName [0] ObjectName,
+ array [1] IMPLICIT SEQUENCE
+ {
+ packed [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ numberOfElements [1] IMPLICIT Unsigned32,
+ elementType [2] TypeSpecification
+ },
+ structure [2] IMPLICIT SEQUENCE
+ {
+ packed [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ components [1] IMPLICIT SEQUENCE OF SEQUENCE
+ {
+ componentName [0] IMPLICIT Identifier OPTIONAL,
+ componentType [1] TypeSpecification
+ }
+ },
+
+ -- Simple Type
+ boolean [3] IMPLICIT NULL,
+ bit-string [4] IMPLICIT Integer32,
+ integer [5] IMPLICIT Unsigned8,
+ unsigned [6] IMPLICIT Unsigned8,
+ octet-string [9] IMPLICIT Integer32,
+ visible-string [10] IMPLICIT Integer32,
+ generalized-time [11] IMPLICIT NULL,
+ binary-time [12] IMPLICIT BOOLEAN,
+ bcd [13] IMPLICIT Unsigned8,
+ objId [15] IMPLICIT NULL
+ }
+
+AlternateAccess ::= SEQUENCE OF CHOICE
+ {
+ unnamed AlternateAccessSelection,
+ named [5] IMPLICIT SEQUENCE
+ {
+ componentName [0] IMPLICIT Identifier,
+ accesst AlternateAccessSelection
+ }
+ }
+
+AlternateAccessSelection ::= CHOICE
+ {
+ selectAlternateAccess [0] IMPLICIT SEQUENCE
+ {
+ accessSelection CHOICE
+ {
+ component [0] IMPLICIT Identifier,
+ index [1] IMPLICIT Unsigned32,
+ indexRange [2] IMPLICIT SEQUENCE
+ {
+ lowIndex [0] IMPLICIT Unsigned32,
+ numberOfElements [1] IMPLICIT Unsigned32},
+ allElements [3] IMPLICIT NULL
+ },
+ alternateAccess AlternateAccess
+ },
+ selectAccess CHOICE
+ {
+ component [1] IMPLICIT Identifier,
+ index [2] IMPLICIT Unsigned32,
+ indexRange [3] IMPLICIT SEQUENCE
+ {
+ lowIndex [0] IMPLICIT Unsigned32,
+ nmberOfElements [1] IMPLICIT Unsigned32
+ },
+ allElements [4] IMPLICIT NULL
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+-- READ
+
+Read-Request ::= SEQUENCE
+ {
+ specificationWithResult [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ variableAccessSpecificatn [1] VariableAccessSpecification
+ }
+
+
+Read-Response ::= SEQUENCE
+ {
+ variableAccessSpecificatn [0] VariableAccessSpecification OPTIONAL,
+ listOfAccessResult [1] IMPLICIT SEQUENCE OF AccessResult
+ }
+
+-- WRITE
+
+
+
+Write-Request ::= SEQUENCE
+ {
+ variableAccessSpecificatn VariableAccessSpecification,
+ listOfData [0] IMPLICIT SEQUENCE OF Data
+ }
+
+Write-Response ::= SEQUENCE OF CHOICE
+ {
+ failure [0] IMPLICIT DataAccessError,
+ success [1] IMPLICIT NULL
+ }
+
+-- INFORMATION REPORT
+
+InformationReport ::= SEQUENCE
+ {
+ variableAccessSpecification VariableAccessSpecification,
+ listOfAccessResult [0] IMPLICIT SEQUENCE OF AccessResult
+ }
+
+-- GET VARIABLE ACCESS ATTRIBUTES
+
+GetVariableAccessAttributes-Request ::= CHOICE
+ {
+ name [0] ObjectName,
+ address [1] Address
+ }
+
+
+GetVariableAccessAttributes-Response ::= SEQUENCE
+ {
+ mmsDeletable [0] IMPLICIT BOOLEAN,
+ address [1] Address OPTIONAL,
+ typeSpecification [2] TypeSpecification
+ }
+-- DEFINE NAMED VARIABLE
+
+DefineNamedVariable-Request ::= SEQUENCE
+ {
+ variableName [0] ObjectName,
+ address [1] Address,
+ typeSpecification [2] TypeSpecification OPTIONAL
+ }
+
+DefineNamedVariable-Response ::= NULL
+
+-- DEFINE SCATTERED ACCESS
+
+DefineScatteredAccess-Request ::= SEQUENCE
+ {
+ scatteredAccessName [0] ObjectName,
+ scatteredAccessDescription [1] IMPLICIT ScatteredAccessDescription
+ }
+
+
+DefineScatteredAccess-Response ::= NULL
+
+-- GET SCATTERED ACCESS ATTRIBUTES
+
+GetScatteredAccessAttributes-Request ::= ObjectName -- ScatteredAccessName
+
+
+GetScatteredAccessAttributes-Response ::= SEQUENCE
+ {
+ mmsDeletable [0] IMPLICIT BOOLEAN,
+ scatteredAccessDescription [1] IMPLICIT ScatteredAccessDescription
+ }
+
+-- DELETE VARIABLE ACCESS
+
+DeleteVariableAccess-Request ::= SEQUENCE
+ {
+ scopeOfDelete [0] IMPLICIT INTEGER
+ {
+ specific (0),
+ aa-specific (1),
+ domain (2),
+ vmd (3)
+ } DEFAULT specific,
+ listOfName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
+ domainName [2] IMPLICIT Identifier OPTIONAL
+ }
+
+DeleteVariableAccess-Response ::= SEQUENCE
+ {
+ numberMatched [0] IMPLICIT Unsigned32,
+ numberDeleted [1] IMPLICIT Unsigned32
+ }
+
+
+DeleteVariableAccess-Error ::= Unsigned32 -- numberDeleted
+
+-- DEFINE NAMED VAR. LIST
+
+DefineNamedVariableList-Request ::= SEQUENCE
+ {
+ variableListName ObjectName,
+ listOfVariable [0] IMPLICIT SEQUENCE OF SEQUENCE
+ {
+ variableSpecification VariableSpecification,
+ alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL
+ }
+ }
+
+
+DefineNamedVariableList-Response ::= NULL
+
+-- GET NAMED VAR. LIST ATTRIBUTES
+
+GetNamedVariableListAttributes-Request ::= ObjectName -- VariableListName
+
+
+GetNamedVariableListAttributes-Response ::= SEQUENCE
+ {
+ mmsDeletable [0] IMPLICIT BOOLEAN,
+ listOfVariable [1] IMPLICIT SEQUENCE OF SEQUENCE
+ {
+ variableSpecification VariableSpecification,
+ alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL
+ }
+ }
+
+-- DELETE NAMED VAR. LIST
+
+DeleteNamedVariableList-Request ::= SEQUENCE
+ {
+ scopeOfDelete [0] IMPLICIT INTEGER
+ {
+ specific (0),
+ aa-specific (1),
+ domain (2),
+ vmd (3)
+ } DEFAULT specific,
+ listOfVariableListName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
+ domainName [2] IMPLICIT Identifier OPTIONAL
+ }
+
+
+DeleteNamedVariableList-Response ::= SEQUENCE
+ {
+ numberMatched [0] IMPLICIT Unsigned32,
+ numberDeleted [1] IMPLICIT Unsigned32
+ }
+
+
+DeleteNamedVariableList-Error ::= Unsigned32 -- number Deleted
+
+-- DEFINE NAMED TYPE
+
+DefineNamedType-Request ::= SEQUENCE
+ {
+ typeName ObjectName,
+ typeSpecification TypeSpecification
+ }
+
+
+DefineNamedType-Response ::= NULL
+
+
+-- GET NAMED TYPE ATTRIB.
+
+GetNamedTypeAttributes-Request ::= ObjectName -- TypeName
+
+GetNamedTypeAttributes-Response ::= SEQUENCE
+ {
+ mmsDeletable [0] IMPLICIT BOOLEAN,
+ typeSpecification TypeSpecification
+ }
+
+-- DELETE NAMED TYPE
+
+DeleteNamedType-Request ::= SEQUENCE
+ {
+ scopeOfDelete [0] IMPLICIT INTEGER
+ {
+ specific (0),
+ aa-specific (1),
+ domain (2),
+ vmd (3)
+ } DEFAULT specific,
+ listOfTypeName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
+ domainName [2] IMPLICIT Identifier OPTIONAL
+ }
+
+DeleteNamedType-Response ::= SEQUENCE
+ {
+ numberMatched [0] IMPLICIT Unsigned32,
+ numberDeleted [1] IMPLICIT Unsigned32
+ }
+
+DeleteNamedType-Error ::= Unsigned32 -- number Deleted
+
+-- SUPPORT DEFINITIONS
+
+AccessResult ::= CHOICE
+ {
+ failure [0] IMPLICIT DataAccessError,
+ success Data
+ }
+
+DataAccessError ::= INTEGER
+ {
+ object-invalidated (0),
+ hardware-fault (1),
+ temporarily-unavailable (2),
+ object-access-denied (3),
+ object-undefined (4),
+ invalid-address (5),
+ type-unsupported (6),
+ type-inconsistent (7),
+ object-attribute-inconsistent (8),
+ object-access-unsupported (9),
+ object-non-existent (10)
+ }
+
+
+
+Data ::= CHOICE
+ {
+ -- context tag 0 is reserved for AccessResult
+ array [1] IMPLICIT SEQUENCE OF Data,
+ structure [2] IMPLICIT SEQUENCE OF Data,
+ boolean [3] IMPLICIT BOOLEAN,
+ bit-string [4] IMPLICIT BIT STRING,
+ integer [5] IMPLICIT INTEGER,
+ unsigned [6] IMPLICIT INTEGER,
+ floating-point [7] IMPLICIT FloatingPoint,
+-- XXX asn2wrs and packet-ber can not handle REAL yet
+-- real [8] IMPLICIT REAL,
+ octet-string [9] IMPLICIT OCTET STRING,
+ visible-string [10] IMPLICIT VisibleString,
+ binary-time [12] IMPLICIT TimeOfDay,
+ bcd [13] IMPLICIT INTEGER,
+ booleanArray [14] IMPLICIT BIT STRING,
+ objId [15] IMPLICIT OBJECT IDENTIFIER,
+ ...,
+ mMSString [16] IMPLICIT MMSString,
+ utc-time [17] IMPLICIT UtcTime -- added by IEC61850 8.1 G3
+ }
+
+UtcTime ::= OCTET STRING -- added by IEC61850 8.1 G3
+
+FloatingPoint ::= OCTET STRING
+
+
+VariableAccessSpecification ::= CHOICE
+ {
+ listOfVariable [0] IMPLICIT SEQUENCE OF SEQUENCE
+ {
+ variableSpecification VariableSpecification,
+ alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL
+ },
+ variableListName [1] ObjectName
+ }
+
+
+ScatteredAccessDescription ::= SEQUENCE OF SEQUENCE
+ {
+ componentName [0] IMPLICIT Identifier OPTIONAL,
+ variableSpecification [1] VariableSpecification,
+ alternateAccess [2] IMPLICIT AlternateAccess OPTIONAL
+ }
+
+
+VariableSpecification ::= CHOICE
+ {
+ name [0] ObjectName,
+ address [1] Address,
+ variableDescription [2] IMPLICIT SEQUENCE
+ {
+ address Address,
+ typeSpecification TypeSpecification
+ },
+ scatteredAccessDescription [3] IMPLICIT ScatteredAccessDescription,
+ invalidated [4] IMPLICIT NULL
+ }
+
+Address ::= CHOICE
+ {
+ numericAddress [0] IMPLICIT Unsigned32,
+ symbolicAddress [1] IMPLICIT VisibleString,
+ unconstrainedAddress [2] IMPLICIT OCTET STRING
+ }
+
+
+-- ********************************* SEMAPHORES *****************************************
+
+TakeControl-Request ::= SEQUENCE
+ {
+ semaphoreName [0] ObjectName,
+ namedToken [1] IMPLICIT Identifier OPTIONAL,
+ priority [2] IMPLICIT Priority DEFAULT 64,
+ acceptableDelay [3] IMPLICIT Unsigned32 OPTIONAL,
+ controlTimeOut [4] IMPLICIT Unsigned32 OPTIONAL,
+ abortOnTimeOut [5] IMPLICIT BOOLEAN OPTIONAL,
+ relinquishIfConnectionLost [6] IMPLICIT BOOLEAN DEFAULT TRUE,
+ applicationToPreempt [7] IMPLICIT ApplicationReference OPTIONAL
+ }
+
+TakeControl-Response ::= CHOICE
+ {
+ noResult [0] IMPLICIT NULL,
+ namedToken [1] IMPLICIT Identifier
+ }
+
+-- RELINQUISH CONTROL
+
+RelinquishControl-Request ::= SEQUENCE
+ {
+ semaphoreName [0] ObjectName,
+ namedToken [1] IMPLICIT Identifier OPTIONAL
+ }
+
+RelinquishControl-Response ::= NULL
+
+-- DEFINE SEMAPHORE
+
+DefineSemaphore-Request ::= SEQUENCE
+ {
+ semaphoreName [0] ObjectName,
+ numbersOfTokens [1] IMPLICIT Unsigned16
+ }
+
+DefineSemaphore-Response ::= NULL
+
+-- DELETE SEMAPHORE
+
+DeleteSemaphore-Request ::= ObjectName -- Semaphore Name
+
+DeleteSemaphore-Response ::= NULL
+
+-- REPORT SEMAPHORE STATUS
+
+ReportSemaphoreStatus-Request ::= ObjectName -- SemaphoreName
+
+ReportSemaphoreStatus-Response ::= SEQUENCE
+ {
+ mmsDeletable [0] IMPLICIT BOOLEAN,
+ class [1] IMPLICIT INTEGER
+ {
+ token (0),
+ pool (1)
+ },
+ numberOfTokens [2] IMPLICIT Unsigned16,
+ numberOfOwnedTokens [3] IMPLICIT Unsigned16,
+ numberOfHungTokens [4] IMPLICIT Unsigned16
+ }
+
+-- REPORT POOL SEMAPHORE STATUS
+
+ReportPoolSemaphoreStatus-Request ::= SEQUENCE
+ {
+ semaphoreName [0] ObjectName,
+ nameToStartAfter [1] IMPLICIT Identifier OPTIONAL
+ }
+
+ReportPoolSemaphoreStatus-Response ::= SEQUENCE
+ {
+ listOfNamedTokens [0] IMPLICIT SEQUENCE OF CHOICE
+ {
+ freeNamedToken [0] IMPLICIT Identifier,
+ ownedNamedToken [1] IMPLICIT Identifier,
+ hungNamedToken [2] IMPLICIT Identifier
+ },
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+-- REPORT SEMAPHORE ENTRY STATUS
+
+ReportSemaphoreEntryStatus-Request ::=SEQUENCE
+ {
+ semaphoreName [0] ObjectName,
+ state [1] IMPLICIT INTEGER
+ {
+ queued (0),
+ owner (1),
+ hung (2)
+ } ,
+ entryIdToStartAfter [2] IMPLICIT OCTET STRING OPTIONAL
+ }
+
+ReportSemaphoreEntryStatus-Response ::= SEQUENCE
+ {
+ listOfSemaphoreEntry [0] IMPLICIT SEQUENCE OF SemaphoreEntry,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+
+AttachToSemaphore ::= SEQUENCE
+ {
+ semaphoreName [0] ObjectName,
+ namedToken [1] IMPLICIT Identifier OPTIONAL,
+ priority [2] IMPLICIT Priority DEFAULT 64,
+ acceptableDelay [3] IMPLICIT Unsigned32 OPTIONAL,
+ controlTimeOut [4] IMPLICIT Unsigned32 OPTIONAL,
+ abortOnTimeOut [5] IMPLICIT BOOLEAN OPTIONAL,
+ relinquishIfConnectionLost [6] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+
+SemaphoreEntry ::= SEQUENCE
+ {
+ entryId [0] IMPLICIT OCTET STRING,
+ entryClass [1] IMPLICIT INTEGER
+ {
+ simple (0),
+ modifier (1)
+ },
+ applicationReference [2] ApplicationReference,
+ namedToken [3] IMPLICIT Identifier OPTIONAL,
+ priority [4] IMPLICIT Priority DEFAULT 64,
+ remainingTimeOut [5] IMPLICIT Unsigned32 OPTIONAL,
+ abortOnTimeOut [6] IMPLICIT BOOLEAN OPTIONAL,
+ relinquishIfConnectionLost [7] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+--******************************** OPERATOR COMMUNICATION *****************************
+
+
+-- INPUT
+
+Input-Request ::= SEQUENCE
+ {
+ operatorStationName [0] IMPLICIT Identifier,
+ echo [1] IMPLICIT BOOLEAN DEFAULT TRUE,
+ listOfPromptData [2] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
+ inputTimeOut [3] IMPLICIT Unsigned32 OPTIONAL
+ }
+
+
+Input-Response ::= VisibleString -- Input String
+
+-- OUTPUT
+
+Output-Request ::= SEQUENCE
+ {
+ operatorStationName [0] IMPLICIT Identifier,
+ listOfOutputData [1] IMPLICIT SEQUENCE OF VisibleString
+ }
+
+
+Output-Response ::= NULL
+
+
+-- ************************************ EVENTS *********************************************
+
+DefineEventCondition-Request ::= SEQUENCE
+ {
+ eventConditionName [0] ObjectName,
+ class [1] IMPLICIT EC-Class,
+ prio-rity [2] IMPLICIT Priority DEFAULT 64,
+ severity [3] IMPLICIT Unsigned8 DEFAULT 64,
+ alarmSummaryReports [4] IMPLICIT BOOLEAN OPTIONAL,
+ monitoredVariable [6] VariableSpecification OPTIONAL,
+ evaluationInterval [7] IMPLICIT Unsigned32 OPTIONAL
+ }
+
+DefineEventCondition-Response ::= NULL
+
+
+DeleteEventCondition-Request ::= CHOICE
+ {
+ specific [0] IMPLICIT SEQUENCE OF ObjectName,
+ aa-specific [1] IMPLICIT NULL,
+ domain [2] IMPLICIT Identifier,
+ vmd [3] IMPLICIT NULL
+ }
+
+DeleteEventCondition-Response ::= Unsigned32 -- Candidates Not Deleted
+
+
+GetEventConditionAttributes-Request ::= ObjectName -- Event Condition Name
+
+GetEventConditionAttributes-Response ::= SEQUENCE
+ {
+ mmsDeletable [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ class [1] IMPLICIT EC-Class,
+ prio-rity [2] IMPLICIT Priority DEFAULT 64,
+ severity [3] IMPLICIT Unsigned8 DEFAULT 64,
+ alarmSummaryReports [4] IMPLICIT BOOLEAN DEFAULT FALSE,
+ monitoredVariable [6] CHOICE
+ {
+ variableReference [0] VariableSpecification,
+ undefined [1] IMPLICIT NULL
+ } OPTIONAL,
+ evaluationInterval [7] IMPLICIT Unsigned32 OPTIONAL
+ }
+
+
+ReportEventConditionStatus-Request ::= ObjectName -- EventConditionName
+
+ReportEventConditionStatus-Response ::= SEQUENCE
+ {
+ currentState [0] IMPLICIT EC-State,
+ numberOfEventEnrollments [1] IMPLICIT Unsigned32,
+ enabled [2] IMPLICIT BOOLEAN OPTIONAL,
+ timeOfLastTransitionToActive [3] EventTime OPTIONAL,
+ timeOfLastTransitionToIdle [4] EventTime OPTIONAL
+ }
+
+
+AlterEventConditionMonitoring-Request ::= SEQUENCE
+ {
+ eventConditionName [0] ObjectName,
+ enabled [1] IMPLICIT BOOLEAN OPTIONAL,
+ priority [2] IMPLICIT Priority OPTIONAL,
+ alarmSummaryReports [3] IMPLICIT BOOLEAN OPTIONAL,
+ evaluationInterval [4] IMPLICIT Unsigned32 OPTIONAL
+ }
+
+AlterEventConditionMonitoring-Response ::= NULL
+
+
+TriggerEvent-Request ::= SEQUENCE
+ {
+ eventConditionName [0] ObjectName,
+ priority [1] IMPLICIT Priority OPTIONAL
+ }
+
+TriggerEvent-Response ::= NULL
+
+
+DefineEventAction-Request ::= SEQUENCE
+ {
+ eventActionName [0] ObjectName,
+ listOfModifier [1] IMPLICIT SEQUENCE OF Modifier OPTIONAL
+-- XXX this one is neither in this ASN nor in the IMPORTS
+-- confirmed-Service-Request [2] DefineEventAction-ConfirmedServiceRequest
+
+ }
+
+
+DefineEventAction-Response ::= NULL
+
+DeleteEventAction-Request ::= CHOICE
+ {
+ specific [0] IMPLICIT SEQUENCE OF ObjectName,
+ aa-specific [1] IMPLICIT NULL,
+ domain [3] IMPLICIT Identifier,
+ vmd [4] IMPLICIT NULL
+ }
+
+DeleteEventAction-Response ::= Unsigned32 -- candidates not deleted
+
+GetEventActionAttributes-Request ::= ObjectName -- Event Action Name
+
+
+GetEventActionAttributes-Response ::= SEQUENCE
+ {
+ mmsDeletable [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ listOfModifier [1] IMPLICIT SEQUENCE OF Modifier
+-- XXX this one is neither in this ASN nor in the IMPORTS
+-- confirmed-Service-Request [2] DefineEventAction-ConfirmedServiceRequest
+ }
+
+ReportEventActionStatus-Request ::= ObjectName -- EventActionName
+
+ReportEventActionStatus-Response ::= Unsigned32 -- Number of Event Enrollments
+
+
+DefineEventEnrollment-Request ::= SEQUENCE
+ {
+ eventEnrollmentName [0] ObjectName,
+ eventConditionName [1] ObjectName,
+ eventConditionTransition [2] IMPLICIT Transitions,
+ alarmAcknowledgementRule [3] IMPLICIT AlarmAckRule,
+ eventActionName [4] ObjectName OPTIONAL,
+ clientApplication [5] ApplicationReference OPTIONAL
+ }
+
+DefineEventEnrollment-Response ::= NULL
+
+DefineEventEnrollment-Error ::= ObjectName
+
+
+DeleteEventEnrollment-Request ::= CHOICE
+ {
+ specific [0] IMPLICIT SEQUENCE OF ObjectName,
+ ec [1] ObjectName,
+ ea [2] ObjectName
+ }
+
+DeleteEventEnrollment-Response ::= Unsigned32 -- candidates not deleted
+
+
+GetEventEnrollmentAttributes-Request ::= SEQUENCE
+ {
+ scopeOfRequest [0] IMPLICIT INTEGER
+ {
+ specific (0),
+ client (1),
+ ec (2),
+ ea (3)
+ } DEFAULT client,
+ eventEnrollmentNames [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
+ clientApplication [2] ApplicationReference OPTIONAL,
+ eventConditionName [3] ObjectName OPTIONAL,
+ eventActionName [4] ObjectName OPTIONAL,
+ continueAfter [5] ObjectName OPTIONAL
+ }
+
+
+EventEnrollment ::= SEQUENCE
+ {
+ eventEnrollmentName [0] ObjectName,
+ eventConditionName [1] CHOICE
+ {
+ eventCondition [0] ObjectName,
+ undefined [1] IMPLICIT NULL
+ },
+ eventActionName [2] CHOICE
+ {
+ eventAction [0] ObjectName,
+ undefined [1] IMPLICIT NULL
+ } OPTIONAL,
+ clientApplication [3] ApplicationReference OPTIONAL,
+ mmsDeletable [4] IMPLICIT BOOLEAN DEFAULT FALSE,
+ enrollmentClass [5] IMPLICIT EE-Class,
+ duration [6] IMPLICIT EE-Duration DEFAULT current,
+ invokeID [7] IMPLICIT Unsigned32,
+ remainingAcceptableDelay [8] IMPLICIT Unsigned32 OPTIONAL
+ }
+
+
+GetEventEnrollmentAttributes-Response ::= SEQUENCE
+ {
+ listOfEventEnrollment [0] IMPLICIT SEQUENCE OF EventEnrollment,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE
+ }
+
+
+ReportEventEnrollmentStatus-Request ::= ObjectName -- Event Enrollment Name
+
+ReportEventEnrollmentStatus-Response ::= SEQUENCE
+ {
+ eventConditionTransitions [0] IMPLICIT Transitions,
+ notificationLost [1] IMPLICIT BOOLEAN DEFAULT FALSE,
+ duration [2] IMPLICIT EE-Duration,
+ alarmAcknowledgmentRule [3] IMPLICIT AlarmAckRule OPTIONAL,
+ currentState [4] IMPLICIT EE-State
+ }
+
+AlterEventEnrollment-Request ::= SEQUENCE
+ {
+ eventEnrollmentName [0] ObjectName,
+ eventConditionTransitions [1] IMPLICIT Transitions OPTIONAL,
+ alarmAcknowledgmentRule [2] IMPLICIT AlarmAckRule OPTIONAL
+ }
+
+AlterEventEnrollment-Response ::= SEQUENCE
+ {
+ currentState [0] CHOICE
+ {
+ state [0] IMPLICIT EE-State,
+ undefined [1] IMPLICIT NULL
+ },
+ transitionTime [1] EventTime
+ }
+
+
+AcknowledgeEventNotification-Request ::= SEQUENCE
+ {
+ eventEnrollmentName [0] ObjectName,
+ acknowledgedState [2] IMPLICIT EC-State,
+ timeOfAcknowledgedTransition [3] EventTime
+ }
+
+AcknowledgeEventNotification-Response ::= NULL
+
+
+GetAlarmSummary-Request ::= SEQUENCE
+ {
+ enrollmentsOnly [0] IMPLICIT BOOLEAN DEFAULT TRUE,
+ activeAlarmsOnly [1] IMPLICIT BOOLEAN DEFAULT TRUE,
+ acknowledgmentFilter [2] IMPLICIT INTEGER
+ {
+ not-acked (0),
+ acked (1),
+ all (2)
+ } DEFAULT not-acked,
+ severityFilter [3] IMPLICIT SEQUENCE
+ {
+ mostSevere [0] IMPLICIT Unsigned8,
+ leastSevere [1] IMPLICIT Unsigned8
+ } OPTIONAL,
+ continueAfter [5] ObjectName OPTIONAL
+ }
+
+GetAlarmSummary-Response ::= SEQUENCE
+ {
+ listOfAlarmSummary [0] IMPLICIT SEQUENCE OF AlarmSummary,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE
+ }
+
+
+AlarmSummary ::= SEQUENCE
+ {
+ eventConditionName [0] ObjectName,
+ severity [1] IMPLICIT Unsigned8,
+ currentState [2] IMPLICIT EC-State,
+ unacknowledgedState [3] IMPLICIT INTEGER
+ {
+ none (0),
+ active (1),
+ idle (2),
+ both (3)
+ },
+ timeOfLastTransitionToActive [5] EventTime OPTIONAL,
+ timeOfLastTransitionToIdle [6] EventTime OPTIONAL
+ }
+
+
+GetAlarmEnrollmentSummary-Request ::= SEQUENCE
+ {
+ enrollmentsOnly [0] IMPLICIT BOOLEAN DEFAULT TRUE,
+ activeAlarmsOnly [1] IMPLICIT BOOLEAN DEFAULT TRUE,
+ acknowledgmentFilter [2] IMPLICIT INTEGER
+ {
+ not-acked (0),
+ acked (1),
+ all (2)
+ } DEFAULT not-acked,
+ severityFilter [3] IMPLICIT SEQUENCE
+ {
+ mostSevere [0] IMPLICIT Unsigned8,
+ leastSevere [1] IMPLICIT Unsigned8
+ } OPTIONAL,
+ continueAfter [5] ObjectName OPTIONAL
+ }
+
+GetAlarmEnrollmentSummary-Response ::= SEQUENCE
+ {
+ listOfAlarmEnrollmentSummary [0] IMPLICIT SEQUENCE OF AlarmEnrollmentSummary,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE
+ }
+
+
+AlarmEnrollmentSummary ::= SEQUENCE
+ {
+ eventEnrollmentName [0] ObjectName,
+ clientApplication [2] ApplicationReference OPTIONAL,
+ severity [3] IMPLICIT Unsigned8,
+ currentState [4] IMPLICIT EC-State,
+ notificationLost [6] IMPLICIT BOOLEAN DEFAULT FALSE,
+ alarmAcknowledgmentRule [7] IMPLICIT AlarmAckRule OPTIONAL,
+ enrollementState [8] IMPLICIT EE-State OPTIONAL,
+ timeOfLastTransitionToActive [9] EventTime OPTIONAL,
+ timeActiveAcknowledged [10] EventTime OPTIONAL,
+ timeOfLastTransitionToIdle [11] EventTime OPTIONAL,
+ timeIdleAcknowledged [12] EventTime OPTIONAL
+ }
+
+
+EventNotification ::= SEQUENCE
+ {
+ eventEnrollmentName [0] ObjectName,
+ eventConditionName [1] CHOICE
+ {
+ eventCondition [0] ObjectName,
+ undefined [1] IMPLICIT NULL
+ },
+ severity [2] IMPLICIT Unsigned8,
+ currentState [3] IMPLICIT EC-State OPTIONAL,
+ transitionTime [4] EventTime,
+ notificationLost [6] IMPLICIT BOOLEAN DEFAULT FALSE,
+ alarmAcknowledgmentRule [7] IMPLICIT AlarmAckRule OPTIONAL,
+ actionResult [8] IMPLICIT SEQUENCE
+ {
+ eventActioName ObjectName,
+ eventActionResult CHOICE
+ {
+ success [0] ConfirmedServiceResponse,
+ failure [1] IMPLICIT ServiceError
+ }
+ } OPTIONAL
+ }
+
+
+AttachToEventCondition ::= SEQUENCE
+ {
+ eventEnrollmentName [0] ObjectName,
+ eventConditionName [1] ObjectName,
+ causingTransitions [2] IMPLICIT Transitions,
+ acceptableDelay [3] IMPLICIT Unsigned32 OPTIONAL
+ }
+
+
+EventTime ::= CHOICE
+ {
+ timeOfDayT [0] IMPLICIT TimeOfDay,
+ timeSequenceIdentifier [1] IMPLICIT Unsigned32
+ }
+
+
+EC-Class ::= INTEGER
+ {
+ network-triggered (0),
+ monitored (1)
+ }
+
+EC-State ::= INTEGER
+ {
+ disabled (0),
+ idle (1),
+ active (2)
+ }
+
+EE-State ::= INTEGER
+ {
+ disabled (0),
+ idle (1),
+ active (2),
+ activeNoAckA (3),
+ idleNoAckI (4),
+ idleNoAckA (5),
+ idleAcked (6),
+ activeAcked (7)
+ }
+
+Transitions ::= BIT STRING
+ {
+ idle-to-disabled (0),
+ active-to-disabled (1),
+ disabled-to-idle (2),
+ active-to-idle (3),
+ disabled-to-active (4),
+ idle-to-active (5),
+ any-to-deleted (6)
+ }
+
+AlarmAckRule ::= INTEGER
+ {
+ none (0),
+ simple (1),
+ ack-active (2),
+ ack-all (3)
+ }
+
+EE-Class ::= INTEGER
+ {
+ modifier (0),
+ notification (1)
+ }
+
+EE-Duration ::= INTEGER
+ {
+ current (0),
+ permanent (1)
+ }
+
+
+-- ********************************** JOURNAL *******************************************
+
+
+-- READ JOURNAL
+
+ReadJournal-Request ::= SEQUENCE
+ {
+ journalName [0] ObjectName,
+ rangeStartSpecification [1] CHOICE
+ {
+ startingTime [0] IMPLICIT TimeOfDay,
+ startingEntry [1] IMPLICIT OCTET STRING
+ } OPTIONAL,
+ rangeStopSpecification [2] CHOICE
+ {
+ endingTime [0] IMPLICIT TimeOfDay,
+ numberOfEntries [1] IMPLICIT Integer32
+ } OPTIONAL,
+ listOfVariables [4] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
+ entryToStartAfter [5] IMPLICIT SEQUENCE
+ {
+ timeSpecification [0] IMPLICIT TimeOfDay,
+ entrySpecification [1] IMPLICIT OCTET STRING
+ }
+ }
+
+ReadJournal-Response ::= SEQUENCE
+ {
+ listOfJournalEntry [0] IMPLICIT SEQUENCE OF JournalEntry,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE
+ }
+
+
+JournalEntry ::= SEQUENCE
+ {
+ entryIdentifier [0] IMPLICIT OCTET STRING,
+ originatingApplication [1] ApplicationReference,
+ entryContent [2] IMPLICIT EntryContent
+ }
+
+-- WRITE JOURNAL
+
+WriteJournal-Request ::= SEQUENCE
+ {
+ journalName [0] ObjectName,
+ listOfJournalEntry [1] IMPLICIT SEQUENCE OF EntryContent
+ }
+
+WriteJournal-Response ::= NULL
+
+-- INITIALIZE JOURNAL
+
+InitializeJournal-Request ::= SEQUENCE
+ {
+ journalName [0] ObjectName,
+ limitSpecification [1] IMPLICIT SEQUENCE
+ {
+ limitingTime [0] IMPLICIT TimeOfDay,
+ limitingEntry [1] IMPLICIT OCTET STRING OPTIONAL
+ } OPTIONAL
+ }
+
+InitializeJournal-Response ::= Unsigned32 -- entries deleted
+
+-- REPORT JOURNAL STATUS
+
+ReportJournalStatus-Request ::= ObjectName -- Journal Name
+
+ReportJournalStatus-Response ::= SEQUENCE
+ {
+ currentEntries [0] IMPLICIT Unsigned32,
+ mmsDeletable [1] IMPLICIT BOOLEAN
+ }
+
+-- CREATE JOURNAL
+
+CreateJournal-Request ::= SEQUENCE
+ {
+ journalName [0] ObjectName
+ }
+
+CreateJournal-Response ::= NULL
+
+-- DELETE JOURNAL
+
+DeleteJournal-Request ::= SEQUENCE
+ {
+ journalName [0] ObjectName
+ }
+
+DeleteJournal-Response ::= NULL
+
+
+-- SUPPORTING PRODUCTIONS
+
+EntryContent ::= SEQUENCE
+ {
+ occurenceTime [0] IMPLICIT TimeOfDay,
+ additionalDetail [1] JOU-Additional-Detail OPTIONAL,
+ -- additionalDetail shall be omitted
+ -- from abstract syntax defined in this standard
+ entryForm CHOICE
+ {
+ data [2] IMPLICIT SEQUENCE
+ {
+ event [0] IMPLICIT SEQUENCE
+ {
+ eventConditionName [0] ObjectName,
+ currentState [1] IMPLICIT EC-State
+ } OPTIONAL,
+ listOfVariables [1] IMPLICIT SEQUENCE OF SEQUENCE
+ {
+ variableTag [0] IMPLICIT VisibleString,
+ valueSpecification [1] Data
+ } OPTIONAL
+ },
+ annotation [3] IMPLICIT VisibleString
+ }
+ }
+
+
+JOU-Additional-Detail ::= NULL -- Defined by Companion Standard
+
+
+
+-- **************************************** FILES *********************************************
+
+ObtainFile-Request ::= SEQUENCE {
+ sourceFileServer [0] IMPLICIT ApplicationReference OPTIONAL,
+ sourceFile [1] IMPLICIT FileName,
+ destinationFile [2] IMPLICIT FileName
+ }
+
+ObtainFile-Response ::= NULL
+
+ObtainFile-Error ::= INTEGER {
+ source-file (0),
+ destination-file (1)
+ }
+
+
+FileOpen-Request ::= SEQUENCE {
+ fileName [0] IMPLICIT FileName,
+ initialPosition [1] IMPLICIT Unsigned32
+ }
+
+FileOpen-Response ::= SEQUENCE {
+ frsmID [0] IMPLICIT Integer32,
+ fileAttributes [1] IMPLICIT FileAttributes
+ }
+
+FileRead-Request ::= Integer32
+
+FileRead-Response ::= SEQUENCE {
+ fileData [0] IMPLICIT OCTET STRING,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
+ }
+
+FileClose-Request ::= Integer32
+
+FileClose-Response ::= NULL
+
+
+FileRename-Request ::= SEQUENCE {
+ currentFileName [0] IMPLICIT FileName,
+ newFileName [1] IMPLICIT FileName
+ }
+
+FileRename-Response ::= NULL
+
+FileRename-Error ::= INTEGER {
+ source-file (0),
+ destination-file (1)
+ }
+
+FileDelete-Request ::= FileName
+
+FileDelete-Response ::= NULL
+
+
+FileDirectory-Request ::= SEQUENCE {
+ fileSpecification [0] IMPLICIT FileName OPTIONAL,
+ continueAfter [1] IMPLICIT FileName OPTIONAL
+ }
+
+FileDirectory-Response ::= SEQUENCE {
+ listOfDirectoryEntry [0] SEQUENCE OF DirectoryEntry,
+ moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE
+ }
+
+DirectoryEntry ::= SEQUENCE {
+ filename [0] IMPLICIT FileName,
+ fileAttributes [1] IMPLICIT FileAttributes
+ }
+
+
+FileAttributes ::= SEQUENCE {
+ sizeOfFile [0] IMPLICIT Unsigned32,
+ lastModified [1] IMPLICIT GeneralizedTime OPTIONAL
+ }
+
+
+
+END
+
diff --git a/epan/dissectors/asn1/mms/mms.cnf b/epan/dissectors/asn1/mms/mms.cnf
new file mode 100644
index 0000000000..b348c6ad6b
--- /dev/null
+++ b/epan/dissectors/asn1/mms/mms.cnf
@@ -0,0 +1,134 @@
+# mms.cnf
+# mms conformation file
+
+#.MODULE_IMPORT
+ISO-8650-ACSE-1 acse
+
+#.IMPORT ../acse/acse-exp.cnf
+
+#.EXPORTS
+MMSpdu
+
+#.PDU
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.TYPE_ATTR
+TimeOfDay TYPE = FT_STRING DISPLAY = BASE_NONE
+UtcTime TYPE = FT_STRING DISPLAY = BASE_NONE
+
+#.FIELD_RENAME
+
+#.FN_BODY ApplicationReference/ap-title
+ offset=dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_mms_ap_title);
+
+#.FN_BODY ApplicationReference/ap-invocation-id
+ offset=dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ap_invocation_id);
+
+#.FN_BODY ApplicationReference/ae-qualifier
+ offset=dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_qualifier);
+
+#.FN_BODY ApplicationReference/ae-invocation-id
+ offset=dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_invocation_id);
+
+#.FN_BODY MMSpdu VAL_PTR=&branch_taken
+ gint branch_taken;
+
+%(DEFAULT_BODY)s
+
+ if( (branch_taken!=-1) && mms_MMSpdu_vals[branch_taken].strptr ){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s ", mms_MMSpdu_vals[branch_taken].strptr);
+ }
+
+
+
+#.FN_BODY TimeOfDay
+
+ guint32 len;
+ guint32 milliseconds;
+ guint16 days;
+ gchar * ptime;
+ nstime_t ts;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len == 4)
+ {
+ milliseconds = tvb_get_ntohl(tvb, offset);
+ ptime = time_msecs_to_str(wmem_packet_scope(), milliseconds);
+
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
+ return offset;
+ }
+
+ if(len == 6)
+ {
+ milliseconds = tvb_get_ntohl(tvb, offset);
+ days = tvb_get_ntohs(tvb, offset+4);
+
+ /* 5113 days between 01-01-1970 and 01-01-1984 */
+ /* 86400 seconds in one day */
+
+ ts.secs = (days + 5113) * 86400 + milliseconds / 1000;
+ ts.nsecs = (milliseconds %% 1000) * 1000000U;
+
+ ptime = abs_time_to_str(wmem_packet_scope(), &ts, ABSOLUTE_TIME_UTC, TRUE);
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
+
+ return offset;
+ }
+
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_timeofday_encoding,
+ tvb, offset, len, "BER Error: malformed TimeOfDay encoding, length must be 4 or 6 bytes");
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
+ }
+ return offset;
+
+
+#.FN_BODY UtcTime
+
+ guint32 len;
+ guint32 seconds;
+ guint32 fraction;
+ guint32 nanoseconds;
+ nstime_t ts;
+ gchar * ptime;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len != 8)
+ {
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_utctime_encoding,
+ tvb, offset, len, "BER Error: malformed IEC61850 UTCTime encoding, length must be 8 bytes");
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
+ }
+ return offset;
+ }
+
+ seconds = tvb_get_ntohl(tvb, offset);
+ fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
+ nanoseconds = (guint32)( ((guint64)fraction * G_GUINT64_CONSTANT(1000000000)) / G_GUINT64_CONSTANT(0x100000000) ) ;
+
+ ts.secs = seconds;
+ ts.nsecs = nanoseconds;
+
+ ptime = abs_time_to_str(wmem_packet_scope(), &ts, ABSOLUTE_TIME_UTC, TRUE);
+
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
+
+ return offset;
diff --git a/epan/dissectors/asn1/mms/packet-mms-template.c b/epan/dissectors/asn1/mms/packet-mms-template.c
new file mode 100644
index 0000000000..2d0341b169
--- /dev/null
+++ b/epan/dissectors/asn1/mms/packet-mms-template.c
@@ -0,0 +1,179 @@
+/* packet-mms_asn1.c
+ *
+ * Ronnie Sahlberg 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-mms.h"
+
+#define PNAME "MMS"
+#define PSNAME "MMS"
+#define PFNAME "mms"
+
+void proto_register_mms(void);
+void proto_reg_handoff_mms(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_mms = -1;
+
+#include "packet-mms-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_mms = -1;
+#include "packet-mms-ett.c"
+
+static expert_field ei_mms_mal_timeofday_encoding = EI_INIT;
+static expert_field ei_mms_mal_utctime_encoding = EI_INIT;
+static expert_field ei_mms_zero_pdu = EI_INIT;
+
+#include "packet-mms-fn.c"
+
+/*
+* Dissect MMS PDUs inside a PPDU.
+*/
+static int
+dissect_mms(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_mms, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mms);
+ }
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0){
+ old_offset=offset;
+ offset=dissect_mms_MMSpdu(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ if(offset == old_offset){
+ proto_tree_add_expert(tree, pinfo, &ei_mms_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+ return tvb_captured_length(tvb);
+}
+
+
+/*--- proto_register_mms -------------------------------------------*/
+void proto_register_mms(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-mms-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_mms,
+#include "packet-mms-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_mms_mal_timeofday_encoding, { "mms.malformed.timeofday_encoding", PI_MALFORMED, PI_WARN, "BER Error: malformed TimeOfDay encoding", EXPFILL }},
+ { &ei_mms_mal_utctime_encoding, { "mms.malformed.utctime", PI_MALFORMED, PI_WARN, "BER Error: malformed IEC61850 UTCTime encoding", EXPFILL }},
+ { &ei_mms_zero_pdu, { "mms.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte MMS PDU", EXPFILL }},
+ };
+
+ expert_module_t* expert_mms;
+
+ /* Register protocol */
+ proto_mms = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("mms", dissect_mms, proto_mms);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_mms, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_mms = expert_register_protocol(proto_mms);
+ expert_register_field_array(expert_mms, ei, array_length(ei));
+
+}
+
+
+static gboolean
+dissect_mms_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ /* must check that this really is an mms packet */
+ int offset = 0;
+ guint32 length = 0 ;
+ guint32 oct;
+ gint idx = 0 ;
+
+ gint8 tmp_class;
+ gboolean tmp_pc;
+ gint32 tmp_tag;
+
+ /* first, check do we have at least 2 bytes (pdu) */
+ if (!tvb_bytes_exist(tvb, 0, 2))
+ return FALSE; /* no */
+
+ /* can we recognize MMS PDU ? Return FALSE if not */
+ /* get MMS PDU type */
+ offset = get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
+
+ /* check MMS type */
+
+ /* Class should be constructed */
+ if (tmp_class!=BER_CLASS_CON)
+ return FALSE;
+
+ /* see if the tag is a valid MMS PDU */
+ try_val_to_str_idx(tmp_tag, mms_MMSpdu_vals, &idx);
+ if (idx == -1) {
+ return FALSE; /* no, it isn't an MMS PDU */
+ }
+
+ /* check MMS length */
+ oct = tvb_get_guint8(tvb, offset)& 0x7F;
+ if (oct==0)
+ /* MMS requires length after tag so not MMS if indefinite length*/
+ return FALSE;
+
+ offset = get_ber_length(tvb, offset, &length, NULL);
+ /* do we have enough bytes? */
+ if (!tvb_bytes_exist(tvb, offset, length))
+ return FALSE;
+
+ dissect_mms(tvb, pinfo, parent_tree, data);
+ return TRUE;
+}
+
+/*--- proto_reg_handoff_mms --- */
+void proto_reg_handoff_mms(void) {
+ register_ber_oid_dissector("1.0.9506.2.3", dissect_mms, proto_mms,"MMS");
+ register_ber_oid_dissector("1.0.9506.2.1", dissect_mms, proto_mms,"mms-abstract-syntax-version1(1)");
+ heur_dissector_add("cotp", dissect_mms_heur, "MMS over COTP", "mms_cotp", proto_mms, HEURISTIC_ENABLE);
+ heur_dissector_add("cotp_is", dissect_mms_heur, "MMS over COTP (inactive subset)", "mms_cotp_is", proto_mms, HEURISTIC_ENABLE);
+}
+
diff --git a/epan/dissectors/asn1/mms/packet-mms-template.h b/epan/dissectors/asn1/mms/packet-mms-template.h
new file mode 100644
index 0000000000..f7cae943f3
--- /dev/null
+++ b/epan/dissectors/asn1/mms/packet-mms-template.h
@@ -0,0 +1,30 @@
+/* packet-mms.h
+ * Routines for MMS packet dissection
+ * Ronnie Sahlberg 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_MMS_H
+#define PACKET_MMS_H
+
+#include "packet-mms-exp.h"
+
+#endif /* PACKET_MMS_H */
+
diff --git a/epan/dissectors/asn1/mpeg-audio/CMakeLists.txt b/epan/dissectors/asn1/mpeg-audio/CMakeLists.txt
new file mode 100644
index 0000000000..959fbb28db
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-audio/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME mpeg-audio )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/mpeg-audio/Makefile.am b/epan/dissectors/asn1/mpeg-audio/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-audio/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/mpeg-audio/Makefile.common b/epan/dissectors/asn1/mpeg-audio/Makefile.common
new file mode 100644
index 0000000000..914c23d137
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-audio/Makefile.common
@@ -0,0 +1,42 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=mpeg-audio
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS=
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/mpeg-audio/Makefile.nmake b/epan/dissectors/asn1/mpeg-audio/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-audio/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/mpeg-audio/mpeg-audio.asn b/epan/dissectors/asn1/mpeg-audio/mpeg-audio.asn
new file mode 100644
index 0000000000..3412ac4420
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-audio/mpeg-audio.asn
@@ -0,0 +1,75 @@
+-- ASN description of MPEG Audio
+-- Written by Shaun Jackman <sjackman@gmail.com>
+-- Copyright 2007 Shaun Jackman
+--
+-- This program is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU General Public License.
+
+MPEG DEFINITIONS ::= BEGIN
+
+Audio ::= SEQUENCE {
+ sync BIT STRING (SIZE (11)),
+ version ENUMERATED
+ { mpeg-2-5(0), reserved(1), mpeg-2(2), mpeg-1(3) },
+ layer ENUMERATED
+ { reserved(0), layer-3(1), layer-2(2), layer-1(3) },
+ protection ENUMERATED { crc(0), none(1) },
+ bitrate INTEGER (0..15),
+ frequency INTEGER (0..3),
+ padding BOOLEAN,
+ private BOOLEAN,
+ channel-mode ENUMERATED
+ { stereo(0), joint-stereo(1), dual-channel(2), single-channel(3) },
+ mode-extension INTEGER (0..3),
+ copyright BOOLEAN,
+ original BOOLEAN,
+ emphasis ENUMERATED
+ { none(0), em-50-15-ms(1), reserved(2), ccit-j-17(3) }
+}
+
+ID3v1 ::= SEQUENCE {
+ tag OCTET STRING (SIZE (3)),
+ title OCTET STRING (SIZE (30)),
+ artist OCTET STRING (SIZE (30)),
+ album OCTET STRING (SIZE (30)),
+ year OCTET STRING (SIZE (4)),
+ comment OCTET STRING (SIZE (28)),
+ must-be-zero INTEGER (0..255),
+ track INTEGER (0..255),
+ genre INTEGER {
+ blues(0), classic-rock(1), country(2), dance(3), disco(4),
+ funk(5), grunge(6), hip-hop(7), jazz(8), metal(9),
+ new-age(10), oldies(11), other(12), pop(13), r-and-b(14),
+ rap(15), reggae(16), rock(17), techno(18), industrial(19),
+ alternative(20), ska(21), death-metal(22), pranks(23),
+ soundtrack(24), euro-techno(25), ambient(26), trip-hop(27),
+ vocal(28), jazz-and-funk(29), fusion(30), trance(31),
+ classical(32), instrumental(33), acid(34), house(35),
+ game(36), sound-clip(37), gospel(38), noise(39),
+ alternative-rock(40), bass(41), soul(42), punk(43), space(44),
+ meditative(45), instrumental-pop(46), instrumental-rock(47),
+ ethnic(48), gothic(49), darkwave(50), techno-industrial(51),
+ electronic(52), pop-folk(53), eurodance(54), dream(55),
+ southern-rock(56), comedy(57), cult(58), gangsta(59),
+ top-40(60), christian-rap(61), pop-funk(62), jungle(63),
+ native-american(64), cabaret(65), new-wave(66),
+ psychadelic(67), rave(68), showtunes(69), trailer(70),
+ lo-fi(71), tribal(72), acid-punk(73), acid-jazz(74),
+ polka(75), retro(76), musical(77), rock-and-roll(78),
+ hard-rock(79), folk(80), folk-rock(81), national-folk(82),
+ swing(83), fast-fusion(84), bebob(85), latin(86), revival(87),
+ celtic(88), bluegrass(89), avantgarde(90), gothic-rock(91),
+ progressive-rock(92), psychedelic-rock(93),
+ symphonic-rock(94), slow-rock(95), big-band(96), chorus(97),
+ easy-listening(98), acoustic(99), humour(100), speech(101),
+ chanson(102), opera(103), chamber-music(104), sonata(105),
+ symphony(106), booty-bass(107), primus(108), porn-groove(109),
+ satire(110), slow-jam(111), club(112), tango(113), samba(114),
+ folklore(115), ballad(116), power-ballad(117),
+ rhythmic-soul(118), freestyle(119), duet(120), punk-rock(121),
+ drum-solo(122), a-cappella(123), euro-house(124),
+ dance-hall(125)
+ } (0..255)
+}
+
+END
diff --git a/epan/dissectors/asn1/mpeg-audio/mpeg-audio.cnf b/epan/dissectors/asn1/mpeg-audio/mpeg-audio.cnf
new file mode 100644
index 0000000000..f445a2fa2c
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-audio/mpeg-audio.cnf
@@ -0,0 +1,11 @@
+# mpeg-audio.cnf
+# mpeg-audio conformation file
+
+#.TYPE_ATTR
+ID3v1/tag TYPE=FT_STRING
+ID3v1/title TYPE=FT_STRING
+ID3v1/artist TYPE=FT_STRING
+ID3v1/album TYPE=FT_STRING
+ID3v1/year TYPE=FT_STRING
+ID3v1/comment TYPE=FT_STRING
+#.END
diff --git a/epan/dissectors/asn1/mpeg-audio/packet-mpeg-audio-template.c b/epan/dissectors/asn1/mpeg-audio/packet-mpeg-audio-template.c
new file mode 100644
index 0000000000..ce7cc90d35
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-audio/packet-mpeg-audio-template.c
@@ -0,0 +1,178 @@
+/* MPEG audio packet decoder.
+ * Written by Shaun Jackman <sjackman@gmail.com>.
+ * Copyright 2007 Shaun Jackman
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include <wsutil/mpeg-audio.h>
+
+#include "packet-per.h"
+
+#include "packet-mpeg-audio-hf.c"
+#include "packet-mpeg-audio-ett.c"
+#include "packet-mpeg-audio-fn.c"
+
+void proto_register_mpeg_audio(void);
+void proto_reg_handoff_mpeg_audio(void);
+
+static int proto_mpeg_audio = -1;
+
+static int hf_mpeg_audio_data = -1;
+static int hf_mpeg_audio_padbytes = -1;
+static int hf_id3v1 = -1;
+static int hf_id3v2 = -1;
+
+static gboolean
+dissect_mpeg_audio_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ guint32 h;
+ struct mpa mpa;
+ int data_size = 0;
+ asn1_ctx_t asn1_ctx;
+ int offset = 0;
+ static const char *version_names[] = { "1", "2", "2.5" };
+
+ if (!tvb_bytes_exist(tvb, 0, 4))
+ return FALSE; /* not enough data for an MPEG audio frame */
+
+ h = tvb_get_ntohl(tvb, 0);
+ MPA_UNMARSHAL(&mpa, h);
+ if (!MPA_SYNC_VALID(&mpa))
+ return FALSE;
+ if (!MPA_VERSION_VALID(&mpa))
+ return FALSE;
+ if (!MPA_LAYER_VALID(&mpa))
+ return FALSE;
+
+ col_add_fstr(pinfo->cinfo, COL_PROTOCOL,
+ "MPEG-%s", version_names[mpa_version(&mpa)]);
+ col_add_fstr(pinfo->cinfo, COL_INFO,
+ "Audio Layer %d", mpa_layer(&mpa) + 1);
+ if (MPA_BITRATE_VALID(&mpa) && MPA_FREQUENCY_VALID(&mpa)) {
+ data_size = (int)(MPA_DATA_BYTES(&mpa) - sizeof mpa);
+ col_append_fstr(pinfo->cinfo, COL_INFO,
+ ", %d kb/s, %g kHz",
+ mpa_bitrate(&mpa) / 1000,
+ mpa_frequency(&mpa) / (float)1000);
+ }
+
+ if (tree == NULL)
+ return TRUE;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_mpeg_audio_Audio(tvb, offset, &asn1_ctx,
+ tree, proto_mpeg_audio);
+ if (data_size > 0) {
+ unsigned int padding;
+
+ proto_tree_add_item(tree, hf_mpeg_audio_data, tvb,
+ offset / 8, data_size, ENC_NA);
+ offset += data_size * 8;
+ padding = mpa_padding(&mpa);
+ if (padding > 0) {
+ proto_tree_add_item(tree, hf_mpeg_audio_padbytes, tvb,
+ offset / 8, padding, ENC_NA);
+ }
+ }
+ return TRUE;
+}
+
+static void
+dissect_id3v1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ asn1_ctx_t asn1_ctx;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "ID3v1");
+ col_clear(pinfo->cinfo, COL_INFO);
+ if (tree == NULL)
+ return;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ dissect_mpeg_audio_ID3v1(tvb, 0, &asn1_ctx,
+ tree, hf_id3v1);
+}
+
+static void
+dissect_id3v2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "ID3v2");
+ col_clear(pinfo->cinfo, COL_INFO);
+ proto_tree_add_item(tree, hf_id3v2, tvb,
+ 0, -1, ENC_NA);
+}
+
+static gboolean
+dissect_mpeg_audio(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ int magic;
+
+ if (!tvb_bytes_exist(tvb, 0, 3))
+ return FALSE; /* not enough data for an ID tag or audio frame */
+ magic = tvb_get_ntoh24(tvb, 0);
+ switch (magic) {
+ case 0x544147: /* TAG */
+ dissect_id3v1(tvb, pinfo, tree);
+ return TRUE;
+ case 0x494433: /* ID3 */
+ dissect_id3v2(tvb, pinfo, tree);
+ return TRUE;
+ default:
+ return dissect_mpeg_audio_frame(tvb, pinfo, tree);
+ }
+}
+
+void
+proto_register_mpeg_audio(void)
+{
+ static hf_register_info hf[] = {
+#include "packet-mpeg-audio-hfarr.c"
+ { &hf_mpeg_audio_data,
+ { "Data", "mpeg-audio.data",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_audio_padbytes,
+ { "Padding", "mpeg-audio.padbytes",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+
+ { &hf_id3v1,
+ { "ID3v1", "mpeg-audio.id3v1",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_id3v2,
+ { "ID3v2", "mpeg-audio.id3v2",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ };
+
+ static gint *ett[] = {
+#include "packet-mpeg-audio-ettarr.c"
+ };
+
+ proto_mpeg_audio = proto_register_protocol(
+ "Moving Picture Experts Group Audio", "MPEG Audio", "mpeg-audio");
+ proto_register_field_array(proto_mpeg_audio, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+}
+
+void
+proto_reg_handoff_mpeg_audio(void)
+{
+ heur_dissector_add("mpeg", dissect_mpeg_audio, "MPEG Audio", "mpeg_audio", proto_mpeg_audio, HEURISTIC_ENABLE);
+}
diff --git a/epan/dissectors/asn1/mpeg-pes/CMakeLists.txt b/epan/dissectors/asn1/mpeg-pes/CMakeLists.txt
new file mode 100644
index 0000000000..c06c72202f
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-pes/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME mpeg-pes )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/mpeg-pes/Makefile.am b/epan/dissectors/asn1/mpeg-pes/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-pes/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/mpeg-pes/Makefile.common b/epan/dissectors/asn1/mpeg-pes/Makefile.common
new file mode 100644
index 0000000000..22e2a2231a
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-pes/Makefile.common
@@ -0,0 +1,42 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=mpeg-pes
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS=
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/mpeg-pes/Makefile.nmake b/epan/dissectors/asn1/mpeg-pes/Makefile.nmake
new file mode 100644
index 0000000000..270082fb45
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-pes/Makefile.nmake
@@ -0,0 +1,30 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+checkapi:
+ $(PERL) ../../tools/checkAPIs.pl -build \
+ $(PROTOCOL_NAME).cnf \
+ packet-$(PROTOCOL_NAME)-template.c \ No newline at end of file
diff --git a/epan/dissectors/asn1/mpeg-pes/mpeg-pes.asn b/epan/dissectors/asn1/mpeg-pes/mpeg-pes.asn
new file mode 100644
index 0000000000..caec6f2dc8
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-pes/mpeg-pes.asn
@@ -0,0 +1,117 @@
+-- ASN description of MPEG Packetized Elementary Stream (PES)
+-- Written by Shaun Jackman <sjackman@gmail.com>
+-- Copyright 2007 Shaun Jackman
+--
+-- This program is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU General Public License.
+
+MPEG DEFINITIONS ::= BEGIN
+
+PES ::= SEQUENCE {
+ prefix OCTET STRING (SIZE (3)),
+ stream INTEGER {
+ picture (0),
+ sequence-header (179),
+ sequence-header-extension (181),
+ group-of-pictures (184),
+ program-end (185),
+ pack-header (186),
+ system-header (187),
+ program-stream-map (188),
+ private-stream-1 (189),
+ padding-stream (190),
+ private-stream-2 (191),
+ audio-stream (192),
+ video-stream (224)
+ } (0..255)
+}
+
+Stream ::= SEQUENCE {
+ length INTEGER (0..65535),
+ must-be-one BOOLEAN,
+ must-be-zero BOOLEAN,
+ scrambling-control INTEGER {
+ not-scrambled (0)
+ } (0..3),
+ priority BOOLEAN,
+ data-alignment BOOLEAN,
+ copyright BOOLEAN,
+ original BOOLEAN,
+ pts-flag BOOLEAN,
+ dts-flag BOOLEAN,
+ escr-flag BOOLEAN,
+ es-rate-flag BOOLEAN,
+ dsm-trick-mode-flag BOOLEAN,
+ additional-copy-info-flag BOOLEAN,
+ crc-flag BOOLEAN,
+ extension-flag BOOLEAN,
+ header-data-length INTEGER (0..255)
+}
+
+Sequence-header ::= SEQUENCE {
+ horizontal-size BIT STRING (SIZE (12)),
+ vertical-size BIT STRING (SIZE (12)),
+ aspect-ratio INTEGER {
+ aspect-1to1 (1),
+ aspect-4to3 (2),
+ aspect-16to9 (3),
+ aspect-2-21to1 (4)
+ } (0..15),
+ frame-rate ENUMERATED {
+ reserved (0),
+ fr (23976),
+ fr (24000),
+ fr (25000),
+ fr (29970),
+ fr (30000),
+ fr (50000),
+ fr (59940),
+ fr (60000)
+ },
+ bit-rate BIT STRING (SIZE (18)),
+ must-be-one BOOLEAN,
+ vbv-buffer-size BIT STRING (SIZE (10)),
+ constrained-parameters-flag BOOLEAN,
+ load-intra-quantiser-matrix BOOLEAN,
+ load-non-intra-quantiser-matrix BOOLEAN
+}
+
+Sequence-extension ::= SEQUENCE {
+ must-be-0001 BIT STRING (SIZE (4)),
+ profile-and-level INTEGER (0..255),
+ progressive-sequence BOOLEAN,
+ chroma-format INTEGER (0..3),
+ horizontal-size-extension INTEGER (0..3),
+ vertical-size-extension INTEGER (0..3),
+ bit-rate-extension BIT STRING (SIZE (12)),
+ must-be-one BOOLEAN,
+ vbv-buffer-size-extension INTEGER (0..255),
+ low-delay BOOLEAN,
+ frame-rate-extension-n INTEGER (0..3),
+ frame-rate-extension-d INTEGER (0..3)
+}
+
+Group-of-pictures ::= SEQUENCE {
+ drop-frame-flag BOOLEAN,
+ hour INTEGER (0..32),
+ minute INTEGER (0..64),
+ must-be-one BOOLEAN,
+ second INTEGER (0..64),
+ frame INTEGER (0..64),
+ closed-gop BOOLEAN,
+ broken-gop BOOLEAN,
+ must-be-zero BIT STRING (SIZE (5))
+}
+
+Picture ::= SEQUENCE {
+ temporal-sequence-number BIT STRING (SIZE (10)),
+ frame-type INTEGER {
+ i-frame (1),
+ p-frame (2),
+ b-frame (3),
+ d-frame (4)
+ } (0..7),
+ vbv-delay BIT STRING (SIZE (16))
+}
+
+END
diff --git a/epan/dissectors/asn1/mpeg-pes/mpeg-pes.cnf b/epan/dissectors/asn1/mpeg-pes/mpeg-pes.cnf
new file mode 100644
index 0000000000..8f4e4455ab
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-pes/mpeg-pes.cnf
@@ -0,0 +1,8 @@
+# mpeg-pes.cnf
+# mpeg-pes conformation file
+
+#.TYPE_ATTR
+PES/stream TYPE=FT_UINT8 DISPLAY=BASE_HEX
+Pack/program-mux-rate TYPE=FT_UINT32 DISPLAY=BASE_DEC
+Stream/length TYPE=FT_UINT16 DISPLAY=BASE_DEC
+#.END
diff --git a/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c b/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
new file mode 100644
index 0000000000..a5f0defd2b
--- /dev/null
+++ b/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
@@ -0,0 +1,674 @@
+/* MPEG Packetized Elementary Stream (PES) packet decoder.
+ * Written by Shaun Jackman <sjackman@gmail.com>.
+ * Copyright 2007 Shaun Jackman
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <wiretap/wtap.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+
+#include "packet-mpeg-pes-hf.c"
+#include "packet-mpeg-pes-ett.c"
+#include "packet-mpeg-pes-fn.c"
+
+void proto_register_mpeg_pes(void);
+void proto_reg_handoff_mpeg_pes(void);
+
+static int proto_mpeg = -1;
+static int proto_mpeg_pes = -1;
+
+static int ett_mpeg_pes_pack_header = -1;
+static int ett_mpeg_pes_header_data = -1;
+static int ett_mpeg_pes_trick_mode = -1;
+
+static int hf_mpeg_pes_pack_header = -1;
+static int hf_mpeg_pes_scr = -1;
+static int hf_mpeg_pes_program_mux_rate = -1;
+static int hf_mpeg_pes_stuffing_length = -1;
+static int hf_mpeg_pes_stuffing = -1;
+static int hf_mpeg_pes_extension = -1;
+static int hf_mpeg_pes_header_data = -1;
+static int hf_mpeg_pes_pts = -1;
+static int hf_mpeg_pes_dts = -1;
+static int hf_mpeg_pes_escr = -1;
+static int hf_mpeg_pes_es_rate = -1;
+static int hf_mpeg_pes_dsm_trick_mode = -1;
+static int hf_mpeg_pes_dsm_trick_mode_control = -1;
+static int hf_mpeg_pes_dsm_trick_mode_field_id = -1;
+static int hf_mpeg_pes_dsm_trick_mode_intra_slice_refresh = -1;
+static int hf_mpeg_pes_dsm_trick_mode_frequency_truncation = -1;
+static int hf_mpeg_pes_dsm_trick_mode_rep_cntrl = -1;
+static int hf_mpeg_pes_copy_info = -1;
+static int hf_mpeg_pes_crc = -1;
+static int hf_mpeg_pes_extension_flags = -1;
+static int hf_mpeg_pes_private_data = -1;
+static int hf_mpeg_pes_pack_length = -1;
+static int hf_mpeg_pes_sequence = -1;
+static int hf_mpeg_pes_pstd_buffer = -1;
+static int hf_mpeg_pes_extension2 = -1;
+static int hf_mpeg_pes_padding = -1;
+static int hf_mpeg_pes_data = -1;
+
+static int hf_mpeg_video_sequence_header = -1;
+static int hf_mpeg_video_sequence_extension = -1;
+static int hf_mpeg_video_group_of_pictures = -1;
+static int hf_mpeg_video_picture = -1;
+static int hf_mpeg_video_quantization_matrix = -1;
+static int hf_mpeg_video_data = -1;
+
+enum { PES_PREFIX = 1 };
+
+enum {
+ STREAM_PICTURE = 0x00,
+ STREAM_SEQUENCE = 0xb3,
+ STREAM_SEQUENCE_EXTENSION = 0xb5,
+ STREAM_GOP = 0xb8,
+ STREAM_END = 0xb9,
+ STREAM_PACK = 0xba,
+ STREAM_SYSTEM = 0xbb,
+ STREAM_PROGRAM = 0xbc,
+ STREAM_PRIVATE1 = 0xbd,
+ STREAM_PADDING = 0xbe,
+ STREAM_PRIVATE2 = 0xbf,
+ STREAM_AUDIO = 0xc0,
+ STREAM_VIDEO = 0xe0
+};
+
+enum {
+ PTS_FLAG = 0x80,
+ DTS_FLAG = 0x40,
+ ESCR_FLAG = 0x20,
+ ES_RATE_FLAG = 0x10,
+ DSM_TRICK_MODE_FLAG = 0x08,
+ COPY_INFO_FLAG = 0x04,
+ CRC_FLAG = 0x02,
+ EXTENSION_FLAG = 0x01
+};
+
+enum {
+ PRIVATE_DATA_FLAG = 0x80,
+ PACK_LENGTH_FLAG = 0x40,
+ SEQUENCE_FLAG = 0x20,
+ PSTD_BUFFER_FLAG = 0x10,
+ MUST_BE_ONES = 0x07,
+ EXTENSION_FLAG2 = 0x01
+};
+
+enum {
+ FAST_FORWARD_CONTROL = 0x00,
+ SLOW_MOTION_CONTROL = 0x01,
+ FREEZE_FRAME_CONTROL = 0x02,
+ FAST_REVERSE_CONTROL = 0x03,
+ SLOW_REVERSE_CONTROL = 0x04
+};
+
+static const value_string mpeg_pes_TrickModeControl_vals[] = {
+ { FAST_FORWARD_CONTROL, "fast-forward" },
+ { SLOW_MOTION_CONTROL, "slow-motion" },
+ { FREEZE_FRAME_CONTROL, "freeze-frame" },
+ { FAST_REVERSE_CONTROL, "fast-reverse" },
+ { SLOW_REVERSE_CONTROL, "slow-reverse" },
+ { 5, "reserved" },
+ { 6, "reserved" },
+ { 7, "reserved" },
+ { 0, NULL }
+};
+
+static const value_string mpeg_pes_TrickModeFieldId_vals[] = {
+ { 0, "display-from-top-field-only" },
+ { 1, "display-from-bottom-field-only" },
+ { 2, "display-complete-frame" },
+ { 3, "reserved" },
+ { 0, NULL }
+};
+
+static const value_string mpeg_pes_TrickModeIntraSliceRefresh_vals[] = {
+ { 0, "macroblocks-may-not-be-missing" },
+ { 1, "macroblocks-may-be-missing" },
+ { 0, NULL }
+};
+
+static const value_string mpeg_pes_TrickModeFrequencyTruncation_vals[] = {
+ { 0, "only-DC-coefficients-are-non-zero" },
+ { 1, "only-the-first-three-coefficients-are-non-zero" },
+ { 2, "only-the-first-six-coefficients-are-non-zero" },
+ { 3, "all-coefficients-may-be-non-zero" },
+ { 0, NULL }
+};
+
+#define TSHZ 90000
+
+static guint64 decode_time_stamp(tvbuff_t *tvb, gint offset, nstime_t *nst)
+{
+ guint64 bytes = tvb_get_ntoh40(tvb, offset);
+ guint64 ts =
+ (bytes >> 33 & 0x0007) << 30 |
+ (bytes >> 17 & 0x7fff) << 15 |
+ (bytes >> 1 & 0x7fff) << 0;
+ unsigned int rem = (unsigned int)(ts % TSHZ);
+ nst->secs = (time_t)(ts / TSHZ);
+ nst->nsecs = (int)(G_GINT64_CONSTANT(1000000000) * rem / TSHZ);
+ return ts;
+}
+
+#define SCRHZ 27000000
+
+static guint64 decode_clock_reference(tvbuff_t *tvb, gint offset,
+ nstime_t *nst)
+{
+ guint64 bytes = tvb_get_ntoh48(tvb, offset);
+ guint64 ts =
+ (bytes >> 43 & 0x0007) << 30 |
+ (bytes >> 27 & 0x7fff) << 15 |
+ (bytes >> 11 & 0x7fff) << 0;
+ unsigned int ext = (unsigned int)((bytes >> 1) & 0x1ff);
+ guint64 cr = 300 * ts + ext;
+ unsigned int rem = (unsigned int)(cr % SCRHZ);
+ nst->secs = (time_t)(cr / SCRHZ);
+ nst->nsecs = (int)(G_GINT64_CONSTANT(1000000000) * rem / SCRHZ);
+ return cr;
+}
+
+static int
+dissect_mpeg_pes_header_data(tvbuff_t *tvb, packet_info *pinfo _U_,
+ proto_tree *root, unsigned int flags)
+{
+ proto_item *item = proto_tree_add_item(root, hf_mpeg_pes_header_data, tvb,
+ 0, -1, ENC_NA);
+ proto_tree *tree = proto_item_add_subtree(item, ett_mpeg_pes_header_data);
+
+ gint offset = 0;
+ if (flags & PTS_FLAG) {
+ nstime_t nst;
+ decode_time_stamp(tvb, offset, &nst);
+ proto_tree_add_time(tree, hf_mpeg_pes_pts, tvb,
+ offset, 5, &nst);
+ offset += 5;
+ }
+ if (flags & DTS_FLAG) {
+ nstime_t nst;
+ decode_time_stamp(tvb, offset, &nst);
+ proto_tree_add_time(tree, hf_mpeg_pes_dts, tvb,
+ offset, 5, &nst);
+ offset += 5;
+ }
+ if (flags & ESCR_FLAG) {
+ nstime_t nst;
+ decode_clock_reference(tvb, offset, &nst);
+ proto_tree_add_time(tree, hf_mpeg_pes_escr, tvb,
+ offset, 6, &nst);
+ offset += 6;
+ }
+ if (flags & ES_RATE_FLAG) {
+ unsigned int es_rate = (tvb_get_ntohs(tvb, offset) >> 1 & 0x3fff) * 50;
+ proto_tree_add_uint(tree, hf_mpeg_pes_es_rate, tvb,
+ offset, 3, es_rate);
+ offset += 3;
+ }
+ if (flags & DSM_TRICK_MODE_FLAG)
+ {
+ guint8 value = tvb_get_guint8(tvb, offset);
+ guint8 control;
+ proto_tree *trick_tree;
+ proto_item *trick_item;
+
+ trick_item = proto_tree_add_item(item,
+ hf_mpeg_pes_dsm_trick_mode, tvb,
+ offset, 1, ENC_NA);
+
+ trick_tree = proto_item_add_subtree(trick_item,
+ ett_mpeg_pes_trick_mode);
+
+ control = (value >> 5);
+ proto_tree_add_uint(trick_tree,
+ hf_mpeg_pes_dsm_trick_mode_control, tvb,
+ offset, 1,
+ control);
+
+ if (control == FAST_FORWARD_CONTROL
+ || control == FAST_REVERSE_CONTROL)
+ {
+ proto_tree_add_uint(trick_tree,
+ hf_mpeg_pes_dsm_trick_mode_field_id, tvb,
+ offset, 1,
+ (value & 0x18) >> 3);
+
+ proto_tree_add_uint(trick_tree,
+ hf_mpeg_pes_dsm_trick_mode_intra_slice_refresh, tvb,
+ offset, 1,
+ (value & 0x04) >> 2);
+
+ proto_tree_add_uint(trick_tree,
+ hf_mpeg_pes_dsm_trick_mode_frequency_truncation, tvb,
+ offset, 1,
+ (value & 0x03));
+ }
+ else if (control == SLOW_MOTION_CONTROL
+ || control == SLOW_REVERSE_CONTROL)
+ {
+ proto_tree_add_uint(trick_tree,
+ hf_mpeg_pes_dsm_trick_mode_rep_cntrl, tvb,
+ offset, 1,
+ (value & 0x1F));
+ }
+ else if (control == FREEZE_FRAME_CONTROL)
+ {
+ proto_tree_add_uint(trick_tree,
+ hf_mpeg_pes_dsm_trick_mode_field_id, tvb,
+ offset, 1,
+ (value & 0x18) >> 3);
+ }
+
+ offset += 1;
+ }
+ if (flags & COPY_INFO_FLAG) {
+ proto_tree_add_item(tree, hf_mpeg_pes_copy_info, tvb,
+ offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ }
+ if (flags & CRC_FLAG) {
+ proto_tree_add_item(tree, hf_mpeg_pes_crc, tvb,
+ offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ }
+
+ if (flags & EXTENSION_FLAG) {
+ int flags2 = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mpeg_pes_extension_flags, tvb,
+ offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ if (flags2 & PRIVATE_DATA_FLAG) {
+ proto_tree_add_item(tree, hf_mpeg_pes_private_data, tvb,
+ offset, 16, ENC_NA);
+ offset += 16;
+ }
+ if (flags2 & PACK_LENGTH_FLAG) {
+ proto_tree_add_item(tree, hf_mpeg_pes_pack_length, tvb,
+ offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ }
+ if (flags2 & SEQUENCE_FLAG) {
+ proto_tree_add_item(tree, hf_mpeg_pes_sequence, tvb,
+ offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ }
+ if (flags2 & PSTD_BUFFER_FLAG) {
+ unsigned int pstd = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_uint(tree, hf_mpeg_pes_pstd_buffer, tvb,
+ offset, 2, (pstd & 0x2000 ? 1024 : 128) * (pstd & 0x1ff));
+ offset += 2;
+ }
+ if (flags2 & EXTENSION_FLAG2) {
+ proto_tree_add_item(tree, hf_mpeg_pes_extension2, tvb,
+ offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ }
+ }
+ return offset;
+}
+
+static gint
+dissect_mpeg_pes_pack_header(tvbuff_t *tvb, gint offset,
+ packet_info *pinfo _U_, proto_tree *root)
+{
+ unsigned int program_mux_rate, stuffing_length;
+
+ proto_item *item = proto_tree_add_item(root, hf_mpeg_pes_pack_header, tvb,
+ offset / 8, 10, ENC_NA);
+ proto_tree *tree = proto_item_add_subtree(item, ett_mpeg_pes_pack_header);
+
+ nstime_t nst;
+ decode_clock_reference(tvb, offset / 8, &nst);
+ proto_tree_add_time(tree, hf_mpeg_pes_scr, tvb, offset / 8, 6, &nst);
+ offset += 6 * 8;
+
+ program_mux_rate = (tvb_get_ntoh24(tvb, offset / 8) >> 2) * 50;
+ proto_tree_add_uint(tree, hf_mpeg_pes_program_mux_rate, tvb, offset / 8, 3,
+ program_mux_rate);
+ offset += 3 * 8;
+
+ stuffing_length = tvb_get_guint8(tvb, offset / 8) & 0x07;
+ proto_tree_add_item(tree, hf_mpeg_pes_stuffing_length, tvb,
+ offset / 8, 1, ENC_BIG_ENDIAN);
+ offset += 1 * 8;
+
+ if (stuffing_length > 0) {
+ proto_tree_add_item(tree, hf_mpeg_pes_stuffing, tvb,
+ offset / 8, stuffing_length, ENC_NA);
+ offset += stuffing_length * 8;
+ }
+
+ return offset;
+}
+
+static int
+dissect_mpeg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
+
+static gboolean
+dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ int prefix;
+ int stream;
+ asn1_ctx_t asn1_ctx;
+ gint offset = 0;
+
+ if (!tvb_bytes_exist(tvb, 0, 3))
+ return FALSE; /* not enough bytes for a PES prefix */
+
+ prefix = tvb_get_ntoh24(tvb, 0);
+ if (prefix != PES_PREFIX)
+ return FALSE;
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MPEG PES");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ stream = tvb_get_guint8(tvb, 3);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(stream, mpeg_pes_T_stream_vals, "Unknown stream: %d"));
+
+#if 0
+ if (tree == NULL)
+ return TRUE;
+#endif
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_mpeg_pes_PES(tvb, offset, &asn1_ctx,
+ tree, proto_mpeg_pes);
+
+ if (stream == STREAM_PICTURE) {
+ int frame_type;
+
+ frame_type = tvb_get_guint8(tvb, 5) >> 3 & 0x07;
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(frame_type, mpeg_pes_T_frame_type_vals, "Unknown frame type: %d"));
+
+ offset = dissect_mpeg_pes_Picture(tvb, offset, &asn1_ctx,
+ tree, hf_mpeg_video_picture);
+ proto_tree_add_item(tree, hf_mpeg_video_data, tvb,
+ offset / 8, -1, ENC_NA);
+ } else if (stream == STREAM_SEQUENCE) {
+ tvbuff_t *es;
+
+ offset = dissect_mpeg_pes_Sequence_header(tvb, offset, &asn1_ctx,
+ tree, hf_mpeg_video_sequence_header);
+
+ proto_tree_add_item(tree, hf_mpeg_video_quantization_matrix, tvb,
+ offset / 8, 64, ENC_NA);
+ offset += 64 * 8;
+
+ es = tvb_new_subset_remaining(tvb, offset / 8);
+ dissect_mpeg_pes(es, pinfo, tree, NULL);
+ } else if (stream == STREAM_SEQUENCE_EXTENSION) {
+ tvbuff_t *es;
+
+ offset = dissect_mpeg_pes_Sequence_extension(tvb, offset, &asn1_ctx,
+ tree, hf_mpeg_video_sequence_extension);
+
+ es = tvb_new_subset_remaining(tvb, offset / 8);
+ dissect_mpeg_pes(es, pinfo, tree, NULL);
+ } else if (stream == STREAM_GOP) {
+ tvbuff_t *es;
+
+ offset = dissect_mpeg_pes_Group_of_pictures(tvb, offset, &asn1_ctx,
+ tree, hf_mpeg_video_group_of_pictures);
+
+ es = tvb_new_subset_remaining(tvb, offset / 8);
+ dissect_mpeg_pes(es, pinfo, tree, NULL);
+ } else if (stream == STREAM_PACK) {
+ if (tvb_get_guint8(tvb, offset / 8) >> 6 == 1) {
+ dissect_mpeg_pes_pack_header(tvb, offset, pinfo, tree);
+ } else {
+ proto_tree_add_item(tree, hf_mpeg_pes_data, tvb,
+ offset / 8, 8, ENC_NA);
+ }
+ } else if (stream == STREAM_SYSTEM || stream == STREAM_PRIVATE2) {
+ unsigned int data_length = tvb_get_ntohs(tvb, offset / 8);
+ proto_tree_add_item(tree, hf_mpeg_pes_length, tvb,
+ offset / 8, 2, ENC_BIG_ENDIAN);
+ offset += 2 * 8;
+
+ proto_tree_add_item(tree, hf_mpeg_pes_data, tvb,
+ offset / 8, data_length, ENC_NA);
+ } else if (stream == STREAM_PADDING) {
+ unsigned int padding_length = tvb_get_ntohs(tvb, offset / 8);
+ proto_tree_add_item(tree, hf_mpeg_pes_length, tvb,
+ offset / 8, 2, ENC_BIG_ENDIAN);
+ offset += 2 * 8;
+
+ proto_tree_add_item(tree, hf_mpeg_pes_padding, tvb,
+ offset / 8, padding_length, ENC_NA);
+ } else if (stream == STREAM_PRIVATE1
+ || stream >= STREAM_AUDIO) {
+ int length = tvb_get_ntohs(tvb, 4);
+
+ if ((tvb_get_guint8(tvb, 6) & 0xc0) == 0x80) {
+ int header_length;
+ tvbuff_t *es;
+
+ offset = dissect_mpeg_pes_Stream(tvb, offset, &asn1_ctx,
+ tree, hf_mpeg_pes_extension);
+ /* https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2229
+ * A value of 0 indicates that the PES packet length is neither specified nor
+ * bounded and is allowed only in PES packets whose payload is a video elementary
+ * stream contained in Transport Stream packets.
+ * XXX Some one with access to the spec should check this
+ */
+ if(length !=0 && stream != STREAM_VIDEO){
+ length -= 5;
+ }
+
+ header_length = tvb_get_guint8(tvb, 8);
+ if (header_length > 0) {
+ int flags = tvb_get_guint8(tvb, 7);
+ tvbuff_t *header_data = tvb_new_subset_length(tvb, offset / 8,
+ header_length);
+ dissect_mpeg_pes_header_data(header_data, pinfo, tree, flags);
+ offset += header_length * 8;
+ /* length may be zero for Video stream */
+ if(length !=0 && stream != STREAM_VIDEO){
+ length -= header_length;
+ }
+ }
+
+ /* length may be zero for Video stream */
+ if(length==0){
+ proto_tree_add_item(tree, hf_mpeg_pes_data, tvb, (offset>>3),-1, ENC_NA);
+ return TRUE;
+ }
+
+ es = tvb_new_subset(tvb, offset / 8, -1, length);
+ if (tvb_get_ntoh24(es, 0) == PES_PREFIX)
+ dissect_mpeg_pes(es, pinfo, tree, NULL);
+ else if (tvb_get_guint8(es, 0) == 0xff)
+ dissect_mpeg(es, pinfo, tree, data);
+ else
+ proto_tree_add_item(tree, hf_mpeg_pes_data, es,
+ 0, -1, ENC_NA);
+ } else {
+ unsigned int data_length = tvb_get_ntohs(tvb, offset / 8);
+ proto_tree_add_item(tree, hf_mpeg_pes_length, tvb,
+ offset / 8, 2, ENC_BIG_ENDIAN);
+ offset += 2 * 8;
+
+ proto_tree_add_item(tree, hf_mpeg_pes_data, tvb,
+ offset / 8, data_length, ENC_NA);
+ }
+ } else {
+ proto_tree_add_item(tree, hf_mpeg_pes_data, tvb,
+ offset / 8, -1, ENC_NA);
+ }
+ return TRUE;
+}
+
+static heur_dissector_list_t heur_subdissector_list;
+
+static int
+dissect_mpeg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ heur_dtbl_entry_t *hdtbl_entry;
+
+ if (!dissector_try_heuristic(heur_subdissector_list, tvb, pinfo, tree, &hdtbl_entry, NULL)) {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MPEG");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ proto_tree_add_item(tree, proto_mpeg, tvb, 0, -1, ENC_NA);
+ }
+ return tvb_captured_length(tvb);
+}
+
+void
+proto_register_mpeg_pes(void)
+{
+ static hf_register_info hf[] = {
+#include "packet-mpeg-pes-hfarr.c"
+ { &hf_mpeg_pes_pack_header,
+ { "Pack header", "mpeg-pes.pack",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_scr,
+ { "system clock reference (SCR)", "mpeg-pes.scr",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_program_mux_rate,
+ { "PES program mux rate", "mpeg-pes.program-mux-rate",
+ FT_UINT24, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_stuffing_length,
+ { "PES stuffing length", "mpeg-pes.stuffing-length",
+ FT_UINT8, BASE_DEC, NULL, 0x07, NULL, HFILL }},
+ { &hf_mpeg_pes_stuffing,
+ { "PES stuffing bytes", "mpeg-pes.stuffing",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_extension,
+ { "PES extension", "mpeg-pes.extension",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_header_data,
+ { "PES header data", "mpeg-pes.header-data",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_pts,
+ { "presentation time stamp (PTS)", "mpeg-pes.pts",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_dts,
+ { "decode time stamp (DTS)", "mpeg-pes.dts",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_escr,
+ { "elementary stream clock reference (ESCR)", "mpeg-pes.escr",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_es_rate,
+ { "elementary stream rate", "mpeg-pes.es-rate",
+ FT_UINT24, BASE_DEC, NULL, 0x7ffe, NULL, HFILL }},
+ { &hf_mpeg_pes_dsm_trick_mode,
+ { "Trick mode", "mpeg-pes.trick-mode",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_dsm_trick_mode_control,
+ { "control", "mpeg-pes.trick-mode-control",
+ FT_UINT8, BASE_HEX, VALS(mpeg_pes_TrickModeControl_vals), 0,
+ "mpeg_pes trick mode control", HFILL }},
+ { &hf_mpeg_pes_dsm_trick_mode_field_id,
+ { "field id", "mpeg-pes.trick-mode-field-id",
+ FT_UINT8, BASE_HEX, VALS(mpeg_pes_TrickModeFieldId_vals), 0,
+ "mpeg_pes trick mode field id", HFILL }},
+ { &hf_mpeg_pes_dsm_trick_mode_intra_slice_refresh,
+ { "intra slice refresh", "mpeg-pes.trick-mode-intra-slice-refresh",
+ FT_UINT8, BASE_HEX, VALS(mpeg_pes_TrickModeIntraSliceRefresh_vals), 0,
+ "mpeg_pes trick mode intra slice refresh", HFILL }},
+ { &hf_mpeg_pes_dsm_trick_mode_frequency_truncation,
+ { "frequency truncation", "mpeg-pes.trick-mode-frequency-truncation",
+ FT_UINT8, BASE_HEX, VALS(mpeg_pes_TrickModeFrequencyTruncation_vals), 0,
+ "mpeg_pes trick mode frequency truncation", HFILL }},
+ { &hf_mpeg_pes_dsm_trick_mode_rep_cntrl,
+ { "rep cntrl", "mpeg-pes.trick-mode-rep-cntrl",
+ FT_UINT8, BASE_HEX, NULL, 0, "mpeg_pes trick mode rep cntrl", HFILL }},
+ { &hf_mpeg_pes_copy_info,
+ { "copy info", "mpeg-pes.copy-info",
+ FT_UINT8, BASE_DEC, NULL, 0x7f, NULL, HFILL }},
+ { &hf_mpeg_pes_crc,
+ { "CRC", "mpeg-pes.crc",
+ FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_extension_flags,
+ { "extension flags", "mpeg-pes.extension-flags",
+ FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_private_data,
+ { "private data", "mpeg-pes.private-data",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_pack_length,
+ { "pack length", "mpeg-pes.pack-length",
+ FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_sequence,
+ { "sequence", "mpeg-pes.sequence",
+ FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_pstd_buffer,
+ { "P-STD buffer size", "mpeg-pes.pstd-buffer",
+ FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_extension2,
+ { "extension2", "mpeg-pes.extension2",
+ FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_padding,
+ { "PES padding", "mpeg-pes.padding",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_pes_data,
+ { "PES data", "mpeg-pes.data",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_video_sequence_header,
+ { "MPEG sequence header", "mpeg-video.sequence",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_video_sequence_extension,
+ { "MPEG sequence extension", "mpeg-video.sequence-ext",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_video_group_of_pictures,
+ { "MPEG group of pictures", "mpeg-video.gop",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_video_picture,
+ { "MPEG picture", "mpeg-video.picture",
+ FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_video_quantization_matrix,
+ { "MPEG quantization matrix", "mpeg-video.quant",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mpeg_video_data,
+ { "MPEG picture data", "mpeg-video.data",
+ FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ };
+
+ static gint *ett[] = {
+#include "packet-mpeg-pes-ettarr.c"
+ &ett_mpeg_pes_pack_header,
+ &ett_mpeg_pes_header_data,
+ &ett_mpeg_pes_trick_mode
+ };
+
+ proto_mpeg = proto_register_protocol(
+ "Moving Picture Experts Group", "MPEG", "mpeg");
+ register_dissector("mpeg", dissect_mpeg, proto_mpeg);
+ heur_subdissector_list = register_heur_dissector_list("mpeg");
+
+ proto_mpeg_pes = proto_register_protocol(
+ "Packetized Elementary Stream", "MPEG PES", "mpeg-pes");
+ proto_register_field_array(proto_mpeg_pes, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ register_dissector("mpeg-pes", dissect_mpeg_pes, proto_mpeg_pes);
+}
+
+void
+proto_reg_handoff_mpeg_pes(void)
+{
+ dissector_handle_t mpeg_handle = find_dissector("mpeg");
+
+ dissector_add_uint("wtap_encap", WTAP_ENCAP_MPEG, mpeg_handle);
+ heur_dissector_add("mpeg", dissect_mpeg_pes, "MPEG PES", "mpeg_pes", proto_mpeg_pes, HEURISTIC_ENABLE);
+}
diff --git a/epan/dissectors/asn1/nbap/CMakeLists.txt b/epan/dissectors/asn1/nbap/CMakeLists.txt
new file mode 100644
index 0000000000..afcd895f7e
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/CMakeLists.txt
@@ -0,0 +1,53 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME nbap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ NBAP-CommonDataTypes.asn
+ NBAP-Constants.asn
+ NBAP-Containers.asn
+ NBAP-IEs.asn
+ NBAP-PDU-Contents.asn
+ NBAP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/nbap/Makefile.am b/epan/dissectors/asn1/nbap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/nbap/Makefile.common b/epan/dissectors/asn1/nbap/Makefile.common
new file mode 100644
index 0000000000..4a658baa9c
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/Makefile.common
@@ -0,0 +1,46 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = nbap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ NBAP-CommonDataTypes.asn \
+ NBAP-Constants.asn \
+ NBAP-Containers.asn \
+ NBAP-IEs.asn \
+ NBAP-PDU-Contents.asn \
+ NBAP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/nbap/Makefile.nmake b/epan/dissectors/asn1/nbap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/nbap/NBAP-CommonDataTypes.asn b/epan/dissectors/asn1/nbap/NBAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..35a439bc04
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/NBAP-CommonDataTypes.asn
@@ -0,0 +1,64 @@
+-- Taken from 3GPP TS 25.433 V9.4.0 (2010-09)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.433/
+
+-- 9.3.5 Common Definitions
+
+-- **************************************************************
+--
+-- 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/epan/dissectors/asn1/nbap/NBAP-Constants.asn b/epan/dissectors/asn1/nbap/NBAP-Constants.asn
new file mode 100644
index 0000000000..2133bbc543
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/NBAP-Constants.asn
@@ -0,0 +1,1575 @@
+-- NBAP-Constants.asn
+--
+-- Taken from 3GPP TS 25.433 V9.4.0 (2010-09)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.433/
+---
+-- 9.3.6 Constant Definitions
+--
+
+-- **************************************************************
+--
+-- 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-mBMSNotificationUpdate ProcedureCode ::= 53
+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
+id-uEStatusUpdate ProcedureCode ::= 54
+id-secondaryULFrequencyReporting ProcedureCode ::= 55
+id-secondaryULFrequencyUpdate ProcedureCode ::= 56
+
+-- **************************************************************
+--
+-- 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
+maxNrOfDPCHsPerRL-1 INTEGER ::= 239 -- maxNrofCCTrCH*maxNrOfULTSs-1
+maxNrOfDPCHLCRs INTEGER ::= 240
+maxNrOfDPCHsLCRPerRL-1 INTEGER ::= 95 -- maxNrofCCTrCH*maxNrOfULTSLCRs-1
+maxNrOfDPCHs768 INTEGER ::= 480
+maxNrOfDPCHs768PerRL-1 INTEGER ::= 479
+maxNrOfSCCPCHs INTEGER ::= 8
+maxNrOfSCCPCHsinExt INTEGER ::= 232
+maxNrOfSCCPCHs768 INTEGER ::= 480
+maxNrOfDCHs INTEGER ::= 128
+maxNrOfDSCHs INTEGER ::= 32
+maxNrOfFACHs INTEGER ::= 8
+maxNrOfCCTrCHs INTEGER ::= 16
+maxNrOfPDSCHs INTEGER ::= 256
+maxNrOfHSPDSCHs INTEGER ::= 16
+maxNrOfHSPDSCHs768 INTEGER ::= 32
+maxNrOfPUSCHs INTEGER ::= 256
+maxNrOfPUSCHs-1 INTEGER ::= 255
+maxNrOfPDSCHSets INTEGER ::= 256
+maxNrOfPRACHLCRs INTEGER ::= 8
+maxNrOfPUSCHSets INTEGER ::= 256
+maxNrOfSCCPCHLCRs INTEGER ::= 8
+maxNrOfSCCPCHsLCRinExt INTEGER ::= 88
+maxNrOfULTSs INTEGER ::= 15
+maxNrOfULTSLCRs INTEGER ::= 6
+maxNrOfUSCHs INTEGER ::= 32
+maxNrOfSlotFormatsPRACH INTEGER ::= 8
+maxCellinNodeB INTEGER ::= 256
+maxCCPinNodeB INTEGER ::= 256
+maxCTFC INTEGER ::= 16777215
+maxLocalCellinNodeB INTEGER ::= maxCellinNodeB
+maxFPACHCell INTEGER ::= 8
+maxRACHCell INTEGER ::= maxPRACHCell
+maxPLCCHCell INTEGER ::= 16
+maxPRACHCell INTEGER ::= 16
+maxSCCPCHCell INTEGER ::= 32
+maxSCCPCHCellinExt INTEGER ::= 208 -- maxNrOfSCCPCHs + maxNrOfSCCPCHsinExt - maxSCCPCHCell
+maxSCCPCHCellinExtLCR INTEGER ::= 64 -- maxNrOfSCCPCHLCRs + maxNrOfSCCPCHsLCRinExt - maxSCCPCHCell
+maxSCCPCHCell768 INTEGER ::= 480
+maxSCPICHCell INTEGER ::= 32
+maxTTI-count INTEGER ::= 4
+maxIBSEG INTEGER ::= 16
+maxIB INTEGER ::= 64
+maxFACHCell INTEGER ::= 256 -- maxNrOfFACHs * maxSCCPCHCell
+maxRateMatching INTEGER ::= 256
+maxHS-PDSCHCodeNrComp-1 INTEGER ::= 15
+maxHS-SCCHCodeNrComp-1 INTEGER ::= 127
+maxNrOfCellSyncBursts INTEGER ::= 10
+maxNrOfReceptsPerSyncFrame INTEGER ::= 16
+maxNrOfMeasNCell INTEGER ::= 96
+maxNrOfMeasNCell-1 INTEGER ::= 95 -- maxNrOfMeasNCell - 1
+maxNrOfSF INTEGER ::= 8
+maxTGPS INTEGER ::= 6
+maxCommunicationContext INTEGER ::= 1048575
+maxNrOfLevels INTEGER ::= 256
+maxNoSat INTEGER ::= 16
+maxNoGPSItems INTEGER ::= 8
+maxNrOfHSSCCHs INTEGER ::= 32
+maxNrOfHSSICHs INTEGER ::= 4
+maxNrOfHSSICHs-1 INTEGER ::= 3
+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
+maxNrOfMACdPDUSize INTEGER ::= 32
+maxNrOfNIs INTEGER ::= 256
+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
+maxNrOfE-AGCHs INTEGER ::= 32
+maxNrOfEDCHMACdFlows INTEGER ::= 8
+maxNrOfEDCHMACdFlows-1 INTEGER ::= 7
+maxNrOfE-RGCHs-E-HICHs INTEGER ::= 32
+maxNrOfEDCH-HARQ-PO-QUANTSTEPs INTEGER ::= 6
+maxNrOfEDCHHARQProcesses2msEDCH INTEGER ::= 8
+maxNrOfEDPCCH-PO-QUANTSTEPs INTEGER ::= 8
+maxNrOfBits-MACe-PDU-non-scheduled INTEGER ::= 19982
+maxNrOfRefETFCIs INTEGER ::= 8
+maxNrOfRefETFCI-PO-QUANTSTEPs INTEGER ::= 29
+maxNrofSigSeqRGHI-1 INTEGER ::= 39
+maxNoOfLogicalChannels INTEGER ::= 16 -- only maximum 15 can be used
+maxNrOfCombEDPDCH INTEGER ::= 12
+maxE-RUCCHCell INTEGER ::= 16
+maxNrOfEAGCHCodes INTEGER ::= 4
+maxNrOfRefBetas INTEGER ::= 8
+maxNrOfE-PUCHSlots INTEGER ::= 13
+maxNrOfEAGCHs INTEGER ::= 32
+maxNrOfHS-DSCH-TBSs-HS-SCCHless INTEGER ::= 4
+maxNrOfHS-DSCH-TBSs INTEGER ::= 90
+maxNrOfEHICHCodes INTEGER ::= 4
+maxNrOfE-PUCHSlotsLCR INTEGER ::= 5
+maxNrOfEPUCHcodes INTEGER ::= 16
+maxNrOfEHICHs INTEGER ::= 32
+maxNrOfCommonMACFlows INTEGER ::= 8
+maxNrOfCommonMACFlows-1 INTEGER ::= 7
+maxNrOfPagingMACFlow INTEGER ::= 4
+maxNrOfPagingMACFlow-1 INTEGER ::= 3
+maxNrOfcommonMACQueues INTEGER ::= 8
+maxNrOfpagingMACQueues INTEGER ::= 8
+maxNrOfHS-DSCHTBSsE-PCH INTEGER ::= 2
+maxGANSSSat INTEGER ::= 64
+maxNoGANSS INTEGER ::= 8
+maxSgnType INTEGER ::= 8
+maxFrequencyinCell INTEGER ::= 12
+maxFrequencyinCell-1 INTEGER ::= 11
+maxHSDPAFrequency INTEGER ::= 8
+maxHSDPAFrequency-1 INTEGER ::= 7
+maxNrOfHSSCCHsinExt INTEGER ::= 224
+maxGANSSSatAlmanac INTEGER ::= 36
+maxGANSSClockMod INTEGER ::= 4
+maxNrOfEDCHRLs INTEGER ::= 4
+maxERNTItoRelease INTEGER ::= 256
+maxNrOfCommonEDCH INTEGER ::= 32
+maxNrOfCommonMACFlowsLCR INTEGER ::= 256
+maxNrOfCommonMACFlowsLCR-1 INTEGER ::= 255
+maxNrOfHSSCCHsLCR INTEGER ::= 256
+maxNrOfEDCHMACdFlowsLCR INTEGER ::= 256
+maxNrOfEDCHMACdFlowsLCR-1 INTEGER ::= 255
+maxNrOfEAGCHsLCR INTEGER ::= 256
+maxNrOfEHICHsLCR INTEGER ::= 256
+maxnrofERUCCHsLCR INTEGER ::= 32
+maxNrOfHSDSCH-1 INTEGER ::= 32
+maxNrOfHSDSCH INTEGER ::= 33
+maxGANSS-1 INTEGER ::= 7
+maxNoOfTBSs-Mapping-HS-DSCH-SPS INTEGER ::= 4
+maxNoOfTBSs-Mapping-HS-DSCH-SPS-1 INTEGER ::= 3
+maxNoOfHS-DSCH-TBSsLCR INTEGER ::= 64
+maxNoOfRepetition-Period-LCR INTEGER ::= 4
+maxNoOfRepetitionPeriod-SPS-LCR-1 INTEGER ::= 3
+maxNoOf-HS-SICH-SPS INTEGER ::= 4
+maxNoOf-HS-SICH-SPS-1 INTEGER ::= 3
+maxNoOfNon-HS-SCCH-Assosiated-HS-SICH INTEGER ::= 4
+maxNoOfNon-HS-SCCH-Assosiated-HS-SICH-Ext INTEGER ::= 44
+maxMBMSServiceSelect INTEGER ::= 256
+maxNrOfCellPortionsPerCellLCR INTEGER ::= 256
+maxNrOfCellPortionsPerCellLCR-1 INTEGER ::= 255
+maxNrOfEDCH-1 INTEGER ::= 32
+maxNoOfCommonH-RNTI INTEGER ::= 256
+maxNrOfCommonMACFlowsLCRExt INTEGER ::= 248
+-- maxNrOfCommonMACFlowsLCR-maxNrOfCommonMACFlows
+maxofERNTI INTEGER ::= 256
+maxNrOfDCHMeasurementOccasionPatternSequence INTEGER ::= 6
+
+-- **************************************************************
+--
+-- 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
+-- WS extension to fill the range
+id-Unknown-38 ProtocolIE-ID ::= 38
+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
+-- WS extension to fill the range
+id-Unknown-60 ProtocolIE-ID ::= 60
+id-Unknown-61 ProtocolIE-ID ::= 61
+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
+-- WS extension to fill the range
+id-Unknown-71 ProtocolIE-ID ::= 71
+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
+-- WS extension to fill the range
+id-Unknown-75 ProtocolIE-ID ::= 75
+id-DL-DPCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 77
+id-DL-DPCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 79
+-- WS extension to fill the range
+id-Unknown-80 ProtocolIE-ID ::= 80
+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-Unused-ProtocolIE-ID-87 ProtocolIE-ID ::= 87
+-- WS extension to fill the range
+id-Unknown-88 ProtocolIE-ID ::= 88
+id-Unused-ProtocolIE-ID-89 ProtocolIE-ID ::= 89
+id-Unused-ProtocolIE-ID-91 ProtocolIE-ID ::= 91
+-- WS extension to fill the range
+id-Unknown-92 ProtocolIE-ID ::= 92
+id-Unused-ProtocolIE-ID-93 ProtocolIE-ID ::= 93
+-- WS extension to fill the range
+id-Unknown-95 ProtocolIE-ID ::= 95
+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-Unused-ProtocolIE-ID-106 ProtocolIE-ID ::= 106
+id-DSCH-TDD-Information ProtocolIE-ID ::= 107
+id-Unused-ProtocolIE-ID-108 ProtocolIE-ID ::= 108
+-- WS extension to fill the range
+id-Unknown-109 ProtocolIE-ID ::= 109
+id-Unused-ProtocolIE-ID-112 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
+-- WS extension to fill the range
+id-Unknown-118 ProtocolIE-ID ::= 118
+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
+-- WS extension to fill the range
+id-Unknown-137 ProtocolIE-ID ::= 137
+id-Unknown-140 ProtocolIE-ID ::= 140
+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
+-- WS extension to fill the range
+id-Unknown-149 ProtocolIE-ID ::= 149
+id-PCCPCH-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 150
+id-PCCPCH-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 151
+-- WS extension to fill the range
+id-Unknown-152 ProtocolIE-ID ::= 152
+id-Unknown-153 ProtocolIE-ID ::= 153
+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
+-- WS extension to fill the range
+id-Unknown-159 ProtocolIE-ID ::= 159
+id-Unknown-160 ProtocolIE-ID ::= 160
+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
+-- WS extension to fill the range
+id-Unknown-171 ProtocolIE-ID ::= 171
+id-Unknown-172 ProtocolIE-ID ::= 172
+id-Unknown-173 ProtocolIE-ID ::= 173
+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
+-- WS extension to fill the range
+id-Unknown-182 ProtocolIE-ID ::= 182
+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
+-- WS extension to fill the range
+id-Unknown-191 ProtocolIE-ID ::= 191
+id-Unknown-192 ProtocolIE-ID ::= 192
+id-Unknown-193 ProtocolIE-ID ::= 193
+id-Unknown-194 ProtocolIE-ID ::= 194
+id-Unknown-195 ProtocolIE-ID ::= 195
+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
+-- WS extension to fill the range
+id-Unknown-201 ProtocolIE-ID ::= 201
+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
+-- WS extension to fill the range
+id-Unknown-239 ProtocolIE-ID ::= 239
+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
+-- WS extension to fill the range
+id-Unknown-243 ProtocolIE-ID ::= 243
+id-Unknown-244 ProtocolIE-ID ::= 244
+id-Unknown-245 ProtocolIE-ID ::= 245
+id-Unknown-246 ProtocolIE-ID ::= 246
+id-S-CCPCH-Information ProtocolIE-ID ::= 247
+-- WS extension to fill the range
+id-Unknown-248 ProtocolIE-ID ::= 248
+id-S-CPICH-Information ProtocolIE-ID ::= 249
+-- WS extension to fill the range
+id-Unknown-250 ProtocolIE-ID ::= 250
+id-SCH-Information ProtocolIE-ID ::= 251
+-- WS extension to fill the range
+id-Unknown-252 ProtocolIE-ID ::= 252
+id-S-SCH-Information ProtocolIE-ID ::= 253
+-- WS extension to fill the range
+id-Unknown-254 ProtocolIE-ID ::= 254
+id-Unknown-255 ProtocolIE-ID ::= 255
+id-Unknown-256 ProtocolIE-ID ::= 256
+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
+-- WS extension to fill the range
+id-Unknown-267 ProtocolIE-ID ::= 267
+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
+-- WS extension to fill the range
+id-Unknown-272 ProtocolIE-ID ::= 272
+id-Unknown-273 ProtocolIE-ID ::= 273
+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
+-- WS extension to fill the range
+id-Unknown-298 ProtocolIE-ID ::= 298
+id-Unknown-299 ProtocolIE-ID ::= 299
+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
+-- WS extension to fill the range
+id-Unknown-303 ProtocolIE-ID ::= 303
+id-USCH-Information-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 304
+-- WS extension to fill the range
+id-Unknown-305 ProtocolIE-ID ::= 305
+id-USCH-Information-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 306
+-- WS extension to fill the range
+id-Unknown-307 ProtocolIE-ID ::= 307
+id-Unknown-308 ProtocolIE-ID ::= 308
+id-USCH-InformationResponse ProtocolIE-ID ::= 309
+id-USCH-Information ProtocolIE-ID ::= 310
+id-USCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 141
+-- WS extension to fill the range
+id-Unknown-313 ProtocolIE-ID ::= 313
+id-Active-Pattern-Sequence-Information ProtocolIE-ID ::= 315
+id-AICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 316
+id-AdjustmentRatio ProtocolIE-ID ::= 317
+-- WS extension to fill the range
+id-Unknown-318 ProtocolIE-ID ::= 318
+id-Unknown-319 ProtocolIE-ID ::= 319
+id-Not-Used-320 ProtocolIE-ID ::= 320
+-- WS extension to fill the range
+id-Unknown-321 ProtocolIE-ID ::= 321
+id-Not-Used-322 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-Not-Used-330 ProtocolIE-ID ::= 330
+-- WS extension to fill the range
+id-Unknown-331 ProtocolIE-ID ::= 331
+id-Not-Used-332 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-Not-Used-336 ProtocolIE-ID ::= 336
+-- WS extension to fill the range
+id-Unknown-337 ProtocolIE-ID ::= 337
+id-Unknown-338 ProtocolIE-ID ::= 338
+id-Unknown-339 ProtocolIE-ID ::= 339
+id-Unknown-340 ProtocolIE-ID ::= 340
+id-Unknown-341 ProtocolIE-ID ::= 341
+id-Not-Used-342 ProtocolIE-ID ::= 342
+id-Not-Used-343 ProtocolIE-ID ::= 343
+-- WS extension to fill the range
+id-Unknown-344 ProtocolIE-ID ::= 344
+id-Unknown-345 ProtocolIE-ID ::= 345
+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
+-- WS extension to fill the range
+id-Unknown-354 ProtocolIE-ID ::= 354
+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-Unused-ProtocolIE-ID-94 ProtocolIE-ID ::= 94
+id-Unused-ProtocolIE-ID-110 ProtocolIE-ID ::= 110
+id-Unused-ProtocolIE-ID-111 ProtocolIE-ID ::= 111
+-- WS extension to fill the range
+id-Unknown-360 ProtocolIE-ID ::= 360
+id-Unknown-361 ProtocolIE-ID ::= 361
+id-FACH-ParametersList-CTCH-SetupRsp ProtocolIE-ID ::= 362
+-- WS extension to fill the range
+id-Unknown-363 ProtocolIE-ID ::= 363
+id-Unknown-364 ProtocolIE-ID ::= 364
+id-Unknown-365 ProtocolIE-ID ::= 365
+id-Unknown-366 ProtocolIE-ID ::= 366
+id-Unknown-367 ProtocolIE-ID ::= 367
+id-Unknown-368 ProtocolIE-ID ::= 368
+id-Limited-power-increase-information-Cell-SetupRqstFDD ProtocolIE-ID ::= 369
+-- WS extension to fill the range
+id-Unknown-370 ProtocolIE-ID ::= 370
+id-Unknown-371 ProtocolIE-ID ::= 371
+id-Unknown-372 ProtocolIE-ID ::= 372
+id-Unknown-373 ProtocolIE-ID ::= 373
+id-PCH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 374
+id-PCH-ParametersItem-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 375
+id-Not-Used-376 ProtocolIE-ID ::= 376
+-- WS extension to fill the range
+id-Unknown-377 ProtocolIE-ID ::= 377
+id-Unknown-378 ProtocolIE-ID ::= 378
+id-Unknown-379 ProtocolIE-ID ::= 379
+id-PICH-ParametersItem-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 380
+id-PRACHConstant ProtocolIE-ID ::= 381
+-- WS extension to fill the range
+id-Unknown-382 ProtocolIE-ID ::= 382
+id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 383
+id-PUSCHConstant ProtocolIE-ID ::= 384
+id-RACH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 385
+-- WS extension to fill the range
+id-Unknown-386 ProtocolIE-ID ::= 386
+id-Unknown-387 ProtocolIE-ID ::= 387
+id-Unknown-388 ProtocolIE-ID ::= 388
+id-Unknown-389 ProtocolIE-ID ::= 389
+id-Unknown-390 ProtocolIE-ID ::= 390
+id-Unknown-391 ProtocolIE-ID ::= 391
+id-Unknown-392 ProtocolIE-ID ::= 392
+id-Unused-ProtocolIE-ID-443 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
+-- WS extension to fill the range
+id-Unknown-404 ProtocolIE-ID ::= 404
+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
+-- WS extension to fill the range
+id-Unknown-410 ProtocolIE-ID ::= 410
+id-Unknown-411 ProtocolIE-ID ::= 411
+id-CommunicationContextInfoItem-Reset ProtocolIE-ID ::= 412
+-- WS extension to fill the range
+id-Unknown-413 ProtocolIE-ID ::= 413
+id-CommunicationControlPortInfoItem-Reset ProtocolIE-ID ::= 414
+-- WS extension to fill the range
+id-Unknown-415 ProtocolIE-ID ::= 415
+id-ResetIndicator ProtocolIE-ID ::= 416
+id-Unused-ProtocolIE-ID-417 ProtocolIE-ID ::= 417
+id-Unused-ProtocolIE-ID-418 ProtocolIE-ID ::= 418
+id-Unused-ProtocolIE-ID-419 ProtocolIE-ID ::= 419
+id-Unused-ProtocolIE-ID-142 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
+-- WS extension to fill the range
+id-Unknown-441 ProtocolIE-ID ::= 441
+id-Unknown-442 ProtocolIE-ID ::= 442
+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
+-- WS extension to fill the range
+id-Unknown-460 ProtocolIE-ID ::= 460
+id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD ProtocolIE-ID ::= 461
+-- WS extension to fill the range
+id-Unknown-462 ProtocolIE-ID ::= 462
+id-RL-InformationResponse-LCR-RL-SetupRspTDD ProtocolIE-ID ::= 463
+-- WS extension to fill the range
+id-Unknown-464 ProtocolIE-ID ::= 464
+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
+-- WS extension to fill the range
+id-Unknown-471 ProtocolIE-ID ::= 471
+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
+-- WS extension to fill the range
+id-Unknown-476 ProtocolIE-ID ::= 476
+id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 477
+-- WS extension to fill the range
+id-Unknown-478 ProtocolIE-ID ::= 478
+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
+-- WS extension to fill the range
+id-Unknown-484 ProtocolIE-ID ::= 484
+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-Unused-ProtocolIE-ID-26 ProtocolIE-ID ::= 26
+id-Unused-ProtocolIE-ID-27 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-E-AGCH-E-RGCH-E-HICH-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
+-- WS extension to fill the range
+id-Unknown-532 ProtocolIE-ID ::= 532
+id-Unknown-533 ProtocolIE-ID ::= 533
+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
+-- WS extension to fill the range
+id-Unknown-538 ProtocolIE-ID ::= 538
+id-Unknown-539 ProtocolIE-ID ::= 539
+id-Unknown-540 ProtocolIE-ID ::= 540
+id-HSPDSCH-RL-ID ProtocolIE-ID ::= 541
+id-PrimCCPCH-RSCP-DL-PC-RqstTDD ProtocolIE-ID ::= 542
+id-Unused-ProtocolIE-ID-64 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
+-- WS extension to fill the range
+id-Unknown-557 ProtocolIE-ID ::= 557
+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-DSCHProvidedBitRateValueInformation ProtocolIE-ID ::= 583
+-- WS extension to fill the range
+id-Unknown-584 ProtocolIE-ID ::= 584
+id-HS-DSCHRequiredPowerValueInformation ProtocolIE-ID ::= 585
+id-HS-DSCHRequiredPowerValue ProtocolIE-ID ::= 586
+id-TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmission 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-CellPortion-InformationItem-Cell-SetupRqstFDD ProtocolIE-ID ::= 597
+id-CellPortion-InformationList-Cell-SetupRqstFDD ProtocolIE-ID ::= 598
+id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD ProtocolIE-ID ::= 599
+id-Secondary-CPICH-Information ProtocolIE-ID ::= 600
+id-Received-total-wide-band-power-For-CellPortion ProtocolIE-ID ::= 601
+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-Received-total-wide-band-power-For-CellPortion-Value ProtocolIE-ID ::= 617
+id-Transmitted-Carrier-Power-For-CellPortion ProtocolIE-ID ::= 618
+id-Transmitted-Carrier-Power-For-CellPortion-Value ProtocolIE-ID ::= 619
+id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortion ProtocolIE-ID ::= 620
+id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue ProtocolIE-ID ::= 621
+id-UpPTSInterferenceValue ProtocolIE-ID ::= 622
+id-PrimaryCCPCH-RSCP-Delta ProtocolIE-ID ::= 623
+id-MeasurementRecoveryBehavior ProtocolIE-ID ::= 624
+id-MeasurementRecoveryReportingIndicator ProtocolIE-ID ::= 625
+id-MeasurementRecoverySupportIndicator ProtocolIE-ID ::= 626
+id-Tstd-indicator ProtocolIE-ID ::= 627
+id-multiple-RL-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 628
+id-multiple-RL-Information-RL-ReconfRqstTDD ProtocolIE-ID ::= 629
+id-DL-DPCH-Power-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 630
+id-F-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 631
+id-F-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 632
+id-Additional-S-CCPCH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 633
+id-Additional-S-CCPCH-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 634
+id-Additional-S-CCPCH-LCR-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 635
+id-Additional-S-CCPCH-LCR-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 636
+id-MICH-CFN ProtocolIE-ID ::= 637
+id-MICH-Information-AuditRsp ProtocolIE-ID ::= 638
+id-MICH-Information-ResourceStatusInd ProtocolIE-ID ::= 639
+id-MICH-Parameters-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 640
+id-MICH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 641
+id-MICH-Parameters-CTCH-SetupRqstFDD ProtocolIE-ID ::= 642
+id-MICH-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 643
+id-Modification-Period ProtocolIE-ID ::= 644
+id-NI-Information-NotifUpdateCmd ProtocolIE-ID ::= 645
+id-S-CCPCH-InformationListExt-AuditRsp ProtocolIE-ID ::= 646
+id-S-CCPCH-InformationListExt-ResourceStatusInd ProtocolIE-ID ::= 647
+id-S-CCPCH-LCR-InformationListExt-AuditRsp ProtocolIE-ID ::= 648
+id-S-CCPCH-LCR-InformationListExt-ResourceStatusInd ProtocolIE-ID ::= 649
+id-HARQ-Preamble-Mode ProtocolIE-ID ::= 650
+id-Initial-DL-DPCH-TimingAdjustment ProtocolIE-ID ::= 651
+id-Initial-DL-DPCH-TimingAdjustment-Allowed ProtocolIE-ID ::= 652
+id-DLTransmissionBranchLoadValue ProtocolIE-ID ::= 653
+id-Power-Local-Cell-Group-choice-CM-Rqst ProtocolIE-ID ::= 654
+id-Power-Local-Cell-Group-choice-CM-Rsp ProtocolIE-ID ::= 655
+id-Power-Local-Cell-Group-choice-CM-Rprt ProtocolIE-ID ::= 656
+id-SynchronisationIndicator ProtocolIE-ID ::= 657
+id-HSDPA-And-EDCH-CellPortion-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 658
+id-Unused-ProtocolIE-ID-659 ProtocolIE-ID ::= 659
+id-HS-DSCHRequiredPowerValue-For-Cell-Portion ProtocolIE-ID ::= 660
+id-HS-DSCHRequiredPowerValueInformation-For-CellPortion ProtocolIE-ID ::= 661
+id-HS-DSCHProvidedBitRateValueInformation-For-CellPortion ProtocolIE-ID ::= 662
+id-E-AGCH-And-E-RGCH-E-HICH-FDD-Scrambling-Code ProtocolIE-ID ::= 663
+id-E-AGCH-FDD-Code-Information ProtocolIE-ID ::= 664
+id-E-DCH-Capability ProtocolIE-ID ::= 665
+id-E-DCH-FDD-DL-Control-Channel-Information ProtocolIE-ID ::= 666
+id-E-DCH-FDD-Information ProtocolIE-ID ::= 667
+id-E-DCH-FDD-Information-Response ProtocolIE-ID ::= 668
+id-E-DCH-FDD-Information-to-Modify ProtocolIE-ID ::= 669
+id-E-DCH-MACdFlows-to-Add ProtocolIE-ID ::= 670
+id-E-DCH-MACdFlows-to-Delete ProtocolIE-ID ::= 671
+id-E-DCH-Resources-Information-AuditRsp ProtocolIE-ID ::= 672
+id-E-DCH-Resources-Information-ResourceStatusInd ProtocolIE-ID ::= 673
+id-E-DCH-RL-Indication ProtocolIE-ID ::= 674
+id-E-DCH-RL-Set-ID ProtocolIE-ID ::= 675
+id-E-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 676
+id-E-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 677
+id-E-RGCH-E-HICH-FDD-Code-Information ProtocolIE-ID ::= 678
+id-Serving-E-DCH-RL-ID ProtocolIE-ID ::= 679
+id-UL-DPDCH-Indicator-For-E-DCH-Operation ProtocolIE-ID ::= 680
+id-FDD-S-CCPCH-FrameOffset-CTCH-SetupRqstFDD ProtocolIE-ID ::= 681
+id-E-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 682
+id-Maximum-Target-ReceivedTotalWideBandPower ProtocolIE-ID ::= 683
+id-E-DCHProvidedBitRateValueInformation ProtocolIE-ID ::= 684
+id-HARQ-Preamble-Mode-Activation-Indicator ProtocolIE-ID ::= 685
+id-RL-Specific-E-DCH-Info ProtocolIE-ID ::= 686
+id-E-DCH-CapacityConsumptionLaw ProtocolIE-ID ::= 687
+id-multiple-DedicatedMeasurementValueList-TDD-DM-Rsp ProtocolIE-ID ::= 688
+id-multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp ProtocolIE-ID ::= 689
+id-E-DCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 690
+id-Unused-ProtocolIE-ID-691 ProtocolIE-ID ::= 691
+id-multipleRL-dl-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 692
+id-Target-NonServing-EDCH-To-Total-EDCH-Power-Ratio ProtocolIE-ID ::= 693
+id-CellPortion-InformationItem-Cell-ReconfRqstFDD ProtocolIE-ID ::= 694
+id-CellPortion-InformationList-Cell-ReconfRqstFDD ProtocolIE-ID ::= 695
+id-multiple-PUSCH-InfoList-DM-Rsp ProtocolIE-ID ::= 696
+id-multiple-PUSCH-InfoList-DM-Rprt ProtocolIE-ID ::= 697
+id-Reference-ReceivedTotalWideBandPower ProtocolIE-ID ::= 698
+id-E-DCH-Serving-Cell-Change-Info-Response ProtocolIE-ID ::= 699
+id-HS-DSCH-Serving-Cell-Change-Info ProtocolIE-ID ::= 700
+id-HS-DSCH-Serving-Cell-Change-Info-Response ProtocolIE-ID ::= 701
+id-Serving-Cell-Change-CFN ProtocolIE-ID ::= 702
+id-E-DCH-HARQ-Combining-Capability ProtocolIE-ID ::= 703
+id-E-DCH-TTI2ms-Capability ProtocolIE-ID ::= 704
+id-E-DCH-SF-Capability ProtocolIE-ID ::= 705
+id-E-DCH-FDD-Update-Information ProtocolIE-ID ::= 706
+id-F-DPCH-Capability ProtocolIE-ID ::= 707
+id-E-DCH-Non-serving-Relative-Grant-Down-CommandsValue ProtocolIE-ID ::= 708
+id-HSSICH-SIRTarget ProtocolIE-ID ::= 709
+id-multiple-HSSICHMeasurementValueList-TDD-DM-Rsp ProtocolIE-ID ::= 710
+id-PLCCH-Information-AuditRsp ProtocolIE-ID ::= 711
+id-PLCCH-Information-ResourceStatusInd ProtocolIE-ID ::= 712
+id-PLCCH-Information-RL-ReconfPrepTDDLCR ProtocolIE-ID ::= 713
+id-PLCCH-Information-UL-TimeslotLCR-Info ProtocolIE-ID ::= 714
+id-PLCCH-InformationList-AuditRsp ProtocolIE-ID ::= 715
+id-PLCCH-InformationList-ResourceStatusInd ProtocolIE-ID ::= 716
+id-PLCCH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 717
+id-S-CCPCH-768-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 718
+id-PICH-768-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 719
+id-PRACH-768-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 720
+id-S-CCPCH-768-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 721
+id-PICH-768-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 722
+id-MICH-768-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 723
+id-CommonPhysicalChannelID768-CommonTrChDeletionReq ProtocolIE-ID ::= 724
+id-S-CCPCH-768-InformationList-AuditRsp ProtocolIE-ID ::= 725
+id-S-CCPCH-768-Information-AuditRsp ProtocolIE-ID ::= 726
+id-neighbouringTDDCellMeasurementInformation768 ProtocolIE-ID ::= 727
+id-PCCPCH-768-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 728
+id-SCH-768-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 729
+id-SCH-768-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 730
+id-PCCPCH-768-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 731
+id-P-CCPCH-768-Information-AuditRsp ProtocolIE-ID ::= 732
+id-PICH-768-Information-AuditRsp ProtocolIE-ID ::= 733
+id-PRACH-768-InformationList-AuditRsp ProtocolIE-ID ::= 734
+id-SCH-768-Information-AuditRsp ProtocolIE-ID ::= 735
+id-MICH-768-Information-AuditRsp ProtocolIE-ID ::= 736
+id-PRACH-768-Information ProtocolIE-ID ::= 737
+id-S-CCPCH-768-Information-ResourceStatusInd ProtocolIE-ID ::= 738
+id-P-CCPCH-768-Information-ResourceStatusInd ProtocolIE-ID ::= 739
+id-PICH-768-Information-ResourceStatusInd ProtocolIE-ID ::= 740
+id-PRACH-768-InformationList-ResourceStatusInd ProtocolIE-ID ::= 741
+id-SCH-768-Information-ResourceStatusInd ProtocolIE-ID ::= 742
+id-MICH-768-Information-ResourceStatusInd ProtocolIE-ID ::= 743
+id-S-CCPCH-768-InformationList-ResourceStatusInd ProtocolIE-ID ::= 744
+id-UL-DPCH-768-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 745
+id-DL-DPCH-768-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 746
+id-DL-DPCH-InformationItem-768-RL-AdditionRqstTDD ProtocolIE-ID ::= 747
+id-UL-DPCH-InformationItem-768-RL-AdditionRqstTDD ProtocolIE-ID ::= 748
+id-UL-DPCH-768-InformationAddItemIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 749
+id-UL-DPCH-768-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 750
+id-UL-DPCH-768-InformationModify-AddItem ProtocolIE-ID ::= 751
+id-UL-DPCH-768-InformationModify-AddList ProtocolIE-ID ::= 752
+id-UL-Timeslot768-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 753
+id-DL-DPCH-768-InformationAddItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 754
+id-DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 755
+id-DL-DPCH-768-InformationModify-AddItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 756
+id-DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 757
+id-DL-Timeslot-768-InformationModify-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 758
+id-DPCH-ID768-DM-Rqst ProtocolIE-ID ::= 759
+id-multiple-DedicatedMeasurementValueList-768-TDD-DM-Rsp ProtocolIE-ID ::= 760
+id-DPCH-ID768-DM-Rsp ProtocolIE-ID ::= 761
+id-Rx-Timing-Deviation-Value-768 ProtocolIE-ID ::= 762
+id-DPCH-ID768-DM-Rprt ProtocolIE-ID ::= 763
+id-PDSCH-AddInformation-768-PSCH-ReconfRqst ProtocolIE-ID ::= 764
+id-PDSCH-ModifyInformation-768-PSCH-ReconfRqst ProtocolIE-ID ::= 765
+id-PUSCH-AddInformation-768-PSCH-ReconfRqst ProtocolIE-ID ::= 766
+id-PUSCH-ModifyInformation-768-PSCH-ReconfRqst ProtocolIE-ID ::= 767
+id-dL-HS-PDSCH-Timeslot-Information-768-PSCH-ReconfRqst ProtocolIE-ID ::= 768
+id-hS-SCCH-Information-768-PSCH-ReconfRqst ProtocolIE-ID ::= 769
+id-hS-SCCH-InformationModify-768-PSCH-ReconfRqst ProtocolIE-ID ::= 770
+id-hsSCCH-Specific-Information-ResponseTDD768 ProtocolIE-ID ::= 771
+id-E-DPCH-Information-RL-AdditionReqFDD ProtocolIE-ID ::= 772
+-- WS extension to fill the range
+id-Unknown-773 ProtocolIE-ID ::= 773
+id-Unknown-774 ProtocolIE-ID ::= 774
+id-PDSCH-Timeslot-Format-PSCH-ReconfRqst-LCR ProtocolIE-ID ::= 775
+-- WS extension to fill the range
+id-Unknown-776 ProtocolIE-ID ::= 776
+id-Unknown-777 ProtocolIE-ID ::= 777
+id-Unknown-778 ProtocolIE-ID ::= 778
+id-Unknown-779 ProtocolIE-ID ::= 779
+id-PUSCH-Timeslot-Format-PSCH-ReconfRqst-LCR ProtocolIE-ID ::= 780
+-- WS extension to fill the range
+id-Unknown-781 ProtocolIE-ID ::= 781
+id-E-DCH-PowerOffset-for-SchedulingInfo ProtocolIE-ID ::= 782
+id-HSDSCH-Configured-Indicator ProtocolIE-ID ::= 783
+-- WS extension to fill the range
+id-Unknown-784 ProtocolIE-ID ::= 784
+id-Unknown-785 ProtocolIE-ID ::= 785
+id-Rx-Timing-Deviation-Value-384-ext ProtocolIE-ID ::= 786
+id-RTWP-ReportingIndicator ProtocolIE-ID ::= 787
+id-RTWP-CellPortion-ReportingIndicator ProtocolIE-ID ::= 788
+id-Received-Scheduled-EDCH-Power-Share-Value ProtocolIE-ID ::= 789
+id-Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value ProtocolIE-ID ::= 790
+id-Received-Scheduled-EDCH-Power-Share ProtocolIE-ID ::= 791
+id-Received-Scheduled-EDCH-Power-Share-For-CellPortion ProtocolIE-ID ::= 792
+id-tFCI-Presence ProtocolIE-ID ::= 793
+id-HSSICH-TPC-StepSize ProtocolIE-ID ::= 794
+id-E-RUCCH-InformationList-AuditRsp ProtocolIE-ID ::= 795
+id-E-RUCCH-InformationList-ResourceStatusInd ProtocolIE-ID ::= 796
+id-E-DCH-TDD-CapacityConsumptionLaw ProtocolIE-ID ::= 797
+id-E-RUCCH-Information ProtocolIE-ID ::= 798
+id-E-DCH-Information ProtocolIE-ID ::= 799
+id-E-DCH-Information-Response ProtocolIE-ID ::= 800
+id-E-DCH-Information-Reconfig ProtocolIE-ID ::= 801
+id-E-PUCH-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 802
+id-Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 803
+id-Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 804
+id-Delete-From-E-AGCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 805
+id-E-HICH-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 806
+id-E-HICH-TimeOffset ProtocolIE-ID ::= 807
+id-Maximum-Generated-ReceivedTotalWideBandPowerInOtherCells ProtocolIE-ID ::= 808
+id-E-DCH-Serving-RL-ID ProtocolIE-ID ::= 809
+id-E-RUCCH-768-InformationList-AuditRsp ProtocolIE-ID ::= 810
+id-E-RUCCH-768-InformationList-ResourceStatusInd ProtocolIE-ID ::= 811
+id-E-RUCCH-768-Information ProtocolIE-ID ::= 812
+id-E-DCH-768-Information ProtocolIE-ID ::= 813
+id-E-DCH-768-Information-Reconfig ProtocolIE-ID ::= 814
+id-E-PUCH-Information-768-PSCH-ReconfRqst ProtocolIE-ID ::= 815
+id-Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst ProtocolIE-ID ::= 816
+id-Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst ProtocolIE-ID ::= 817
+id-E-HICH-Information-768-PSCH-ReconfRqst ProtocolIE-ID ::= 818
+id-ExtendedPropagationDelay ProtocolIE-ID ::= 819
+id-Extended-Round-Trip-Time-Value ProtocolIE-ID ::= 820
+id-AlternativeFormatReportingIndicator ProtocolIE-ID ::= 821
+id-DCH-Indicator-For-E-DCH-HSDPA-Operation ProtocolIE-ID ::= 822
+id-Reference-ReceivedTotalWideBandPowerReporting ProtocolIE-ID ::= 823
+id-Reference-ReceivedTotalWideBandPowerSupportIndicator ProtocolIE-ID ::= 824
+id-ueCapability-Info ProtocolIE-ID ::= 825
+id-MAChs-ResetIndicator ProtocolIE-ID ::= 826
+id-Fast-Reconfiguration-Mode ProtocolIE-ID ::= 827
+id-Fast-Reconfiguration-Permission ProtocolIE-ID ::= 828
+id-BroadcastReference ProtocolIE-ID ::= 829
+id-BroadcastCommonTransportBearerIndication ProtocolIE-ID ::= 830
+id-ContinuousPacketConnectivityDTX-DRX-Capability ProtocolIE-ID ::= 831
+id-ContinuousPacketConnectivityDTX-DRX-Information ProtocolIE-ID ::= 832
+id-ContinuousPacketConnectivityHS-SCCH-less-Capability ProtocolIE-ID ::= 833
+id-ContinuousPacketConnectivityHS-SCCH-less-Information ProtocolIE-ID ::= 834
+id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response ProtocolIE-ID ::= 835
+id-CPC-Information ProtocolIE-ID ::= 836
+id-MIMO-Capability ProtocolIE-ID ::= 837
+id-MIMO-PilotConfiguration ProtocolIE-ID ::= 838
+-- WS extension to fill the range
+id-Unknown-839 ProtocolIE-ID ::= 839
+id-Unknown-840 ProtocolIE-ID ::= 840
+id-MBSFN-Cell-ParameterID-Cell-SetupRqstTDD ProtocolIE-ID ::= 841
+id-MBSFN-Cell-ParameterID-Cell-ReconfRqstTDD ProtocolIE-ID ::= 842
+id-S-CCPCH-Modulation ProtocolIE-ID ::= 843
+id-HS-PDSCH-Code-Change-Grant ProtocolIE-ID ::= 844
+id-HS-PDSCH-Code-Change-Indicator ProtocolIE-ID ::= 845
+id-SYNC-UL-Partition-LCR ProtocolIE-ID ::= 846
+id-E-DCH-LCR-Information ProtocolIE-ID ::= 847
+id-E-DCH-LCR-Information-Reconfig ProtocolIE-ID ::= 848
+-- WS extension to fill the range
+id-Unknown-849 ProtocolIE-ID ::= 849
+id-Unknown-850 ProtocolIE-ID ::= 850
+id-Unknown-851 ProtocolIE-ID ::= 851
+id-E-PUCH-Information-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 852
+id-Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 853
+id-Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 854
+id-Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 855
+id-Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 856
+id-Delete-From-E-HICH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 857
+id-E-HICH-TimeOffsetLCR ProtocolIE-ID ::= 858
+-- WS extension to fill the range
+id-Unknown-859 ProtocolIE-ID ::= 859
+id-SixtyfourQAM-DL-Capability ProtocolIE-ID ::= 860
+id-SixteenQAM-UL-Capability ProtocolIE-ID ::= 861
+-- WS extension to fill the range
+id-Unknown-862 ProtocolIE-ID ::= 862
+id-Unknown-863 ProtocolIE-ID ::= 863
+id-HSDSCH-MACdPDU-SizeCapability ProtocolIE-ID ::= 864
+id-HSDSCH-MACdPDUSizeFormat ProtocolIE-ID ::= 865
+id-MaximumMACdPDU-SizeExtended ProtocolIE-ID ::= 866
+-- WS extension to fill the range
+id-Unknown-867 ProtocolIE-ID ::= 867
+id-Unknown-868 ProtocolIE-ID ::= 868
+id-Unknown-869 ProtocolIE-ID ::= 869
+id-F-DPCH-SlotFormat ProtocolIE-ID ::= 870
+id-F-DPCH-SlotFormatCapability ProtocolIE-ID ::= 871
+id-LCRTDD-uplink-Physical-Channel-Capability ProtocolIE-ID ::= 872
+id-Extended-RNC-ID ProtocolIE-ID ::= 873
+id-Max-UE-DTX-Cycle ProtocolIE-ID ::= 874
+-- WS extension to fill the range
+id-Unknown-875 ProtocolIE-ID ::= 875
+id-Secondary-CCPCH-SlotFormat-Extended ProtocolIE-ID ::= 876
+-- WS extension to fill the range
+id-Unknown-877 ProtocolIE-ID ::= 877
+id-MBSFN-Only-Mode-Indicator-Cell-SetupRqstTDD-LCR ProtocolIE-ID ::= 878
+id-MBSFN-Only-Mode-Capability ProtocolIE-ID ::= 879
+id-Time-Slot-Parameter-ID ProtocolIE-ID ::= 880
+id-Additional-failed-HS-SICH ProtocolIE-ID ::= 881
+id-Additional-missed-HS-SICH ProtocolIE-ID ::= 882
+id-Additional-total-HS-SICH ProtocolIE-ID ::= 883
+id-Additional-HS-SICH-Reception-Quality-Measurement-Value ProtocolIE-ID ::= 884
+-- WS extension to fill the range
+id-Unknown-885 ProtocolIE-ID ::= 885
+id-Unknown-886 ProtocolIE-ID ::= 886
+id-GANSS-Common-Data ProtocolIE-ID ::= 887
+id-GANSS-Information ProtocolIE-ID ::= 888
+id-GANSS-Generic-Data ProtocolIE-ID ::= 889
+id-TUTRANGANSSMeasurementThresholdInformation ProtocolIE-ID ::= 890
+id-TUTRANGANSSMeasurementValueInformation ProtocolIE-ID ::= 891
+id-ModulationPO-MBSFN ProtocolIE-ID ::= 892
+-- WS extension to fill the range
+id-Unknown-893 ProtocolIE-ID ::= 893
+id-Unknown-894 ProtocolIE-ID ::= 894
+id-Enhanced-FACH-Capability ProtocolIE-ID ::= 895
+id-Enhanced-PCH-Capability ProtocolIE-ID ::= 896
+id-HSDSCH-Common-System-InformationFDD ProtocolIE-ID ::= 897
+id-HSDSCH-Common-System-Information-ResponseFDD ProtocolIE-ID ::= 898
+id-HSDSCH-Paging-System-InformationFDD ProtocolIE-ID ::= 899
+id-HSDSCH-Paging-System-Information-ResponseFDD ProtocolIE-ID ::= 900
+id-MBMS-Capability ProtocolIE-ID ::= 901
+id-Ext-Reference-E-TFCI-PO ProtocolIE-ID ::= 902
+id-Ext-Max-Bits-MACe-PDU-non-scheduled ProtocolIE-ID ::= 903
+id-HARQ-MemoryPartitioningInfoExtForMIMO ProtocolIE-ID ::= 904
+id-MIMO-ActivationIndicator ProtocolIE-ID ::= 905
+id-MIMO-Mode-Indicator ProtocolIE-ID ::= 906
+id-MIMO-N-M-Ratio ProtocolIE-ID ::= 907
+id-IPMulticastIndication ProtocolIE-ID ::= 908
+id-IPMulticastDataBearerIndication ProtocolIE-ID ::= 909
+id-TransportBearerNotSetupIndicator ProtocolIE-ID ::= 910
+id-TransportBearerNotRequestedIndicator ProtocolIE-ID ::= 911
+id-TimeSlotConfigurationList-LCR-CTCH-SetupRqstTDD ProtocolIE-ID ::= 912
+id-Cell-Frequency-List-Information-LCR-MulFreq-AuditRsp ProtocolIE-ID ::= 913
+id-Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp ProtocolIE-ID ::= 914
+id-Cell-Frequency-List-LCR-MulFreq-Cell-SetupRqstTDD ProtocolIE-ID ::= 915
+id-UARFCN-Adjustment ProtocolIE-ID ::= 916
+id-Cell-Frequency-List-Information-LCR-MulFreq-ResourceStatusInd ProtocolIE-ID ::= 917
+id-Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd ProtocolIE-ID ::= 918
+id-UPPCHPositionLCR ProtocolIE-ID ::= 919
+id-UPPCH-LCR-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 920
+id-UPPCH-LCR-InformationList-AuditRsp ProtocolIE-ID ::= 921
+id-UPPCH-LCR-InformationItem-AuditRsp ProtocolIE-ID ::= 922
+id-UPPCH-LCR-InformationList-ResourceStatusInd ProtocolIE-ID ::= 923
+id-UPPCH-LCR-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 924
+id-multipleFreq-dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 925
+id-number-Of-Supported-Carriers ProtocolIE-ID ::= 926
+id-multipleFreq-HSPDSCH-InformationList-ResponseTDDLCR ProtocolIE-ID ::= 927
+id-Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD ProtocolIE-ID ::= 928
+id-multipleFreq-HS-DSCH-Resources-InformationList-AuditRsp ProtocolIE-ID ::= 929
+id-multipleFreq-HS-DSCH-Resources-InformationList-ResourceStatusInd ProtocolIE-ID ::= 930
+id-UARFCNSpecificCauseList ProtocolIE-ID ::= 931
+id-tSN-Length ProtocolIE-ID ::= 932
+id-MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst ProtocolIE-ID ::= 933
+id-multicarrier-number ProtocolIE-ID ::= 934
+id-Extended-HS-SCCH-ID ProtocolIE-ID ::= 935
+id-Extended-HS-SICH-ID ProtocolIE-ID ::= 936
+id-HSSICH-InfoExt-DM-Rqst ProtocolIE-ID ::= 937
+id-Delete-From-HS-SCCH-Resource-PoolExt-PSCH-ReconfRqst ProtocolIE-ID ::= 938
+id-HS-SCCH-InformationExt-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 939
+id-HS-SCCH-InformationModifyExt-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 940
+id-PowerControlGAP ProtocolIE-ID ::= 941
+id-MBSFN-SpecialTimeSlot-LCR ProtocolIE-ID ::= 942
+id-Common-MACFlows-to-DeleteFDD ProtocolIE-ID ::= 943
+id-Paging-MACFlows-to-DeleteFDD ProtocolIE-ID ::= 944
+id-E-TFCI-Boost-Information ProtocolIE-ID ::= 945
+id-SixteenQAM-UL-Operation-Indicator ProtocolIE-ID ::= 946
+id-SixtyfourQAM-UsageAllowedIndicator ProtocolIE-ID ::= 947
+id-SixtyfourQAM-DL-UsageIndicator ProtocolIE-ID ::= 948
+id-Default-Serving-Grant-in-DTX-Cycle2 ProtocolIE-ID ::= 949
+id-Maximum-Target-ReceivedTotalWideBandPower-LCR ProtocolIE-ID ::= 950
+id-E-DPDCH-PowerInterpolation ProtocolIE-ID ::= 951
+id-Extended-E-DCH-LCRTDD-PhysicalLayerCategory ProtocolIE-ID ::= 952
+id-MultipleFreq-E-DCH-Resources-InformationList-AuditRsp ProtocolIE-ID ::= 953
+id-MultipleFreq-E-DCH-Resources-InformationList-ResourceStatusInd ProtocolIE-ID ::= 954
+id-MultipleFreq-E-PUCH-Timeslot-InformationList-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 955
+id-MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst ProtocolIE-ID ::= 956
+id-Extended-E-HICH-ID-TDD ProtocolIE-ID ::= 957
+id-ContinuousPacketConnectivityHS-SCCH-less-Deactivate-Indicator ProtocolIE-ID ::= 958
+id-E-DCH-MACdPDU-SizeCapability ProtocolIE-ID ::= 959
+id-E-DCH-MACdPDUSizeFormat ProtocolIE-ID ::= 960
+id-MaximumNumber-Of-Retransmission-for-Scheduling-Info-LCRTDD ProtocolIE-ID ::= 961
+id-E-DCH-RetransmissionTimer-for-SchedulingInfo-LCRTDD ProtocolIE-ID ::= 962
+id-E-HICH-TimeOffset-Extension ProtocolIE-ID ::= 963
+id-MultipleFreq-E-HICH-TimeOffsetLCR ProtocolIE-ID ::= 964
+id-E-PUCH-PowerControlGAP ProtocolIE-ID ::= 965
+id-HSDSCH-TBSizeTableIndicator ProtocolIE-ID ::= 966
+id-E-DCH-DL-Control-Channel-Change-Information ProtocolIE-ID ::= 967
+id-E-DCH-DL-Control-Channel-Grant-Information ProtocolIE-ID ::= 968
+id-DGANSS-Corrections-Req ProtocolIE-ID ::= 969
+id-UE-with-enhanced-HS-SCCH-support-indicator ProtocolIE-ID ::= 970
+id-AdditionalTimeSlotListLCR ProtocolIE-ID ::= 971
+id-AdditionalMeasurementValueList ProtocolIE-ID ::= 972
+-- WS extension to fill the range
+id-Unknown-973 ProtocolIE-ID ::= 973
+id-Unknown-974 ProtocolIE-ID ::= 974
+id-Unknown-975 ProtocolIE-ID ::= 975
+id-Unknown-976 ProtocolIE-ID ::= 976
+id-Unknown-977 ProtocolIE-ID ::= 977
+id-E-AGCH-Table-Choice ProtocolIE-ID ::= 978
+-- WS extension to fill the range
+id-Unknown-979 ProtocolIE-ID ::= 979
+id-Unknown-980 ProtocolIE-ID ::= 980
+id-PLCCH-parameters ProtocolIE-ID ::= 981
+id-E-RUCCH-parameters ProtocolIE-ID ::= 982
+id-E-RUCCH-768-parameters ProtocolIE-ID ::= 983
+id-HS-Cause ProtocolIE-ID ::= 984
+id-E-Cause ProtocolIE-ID ::= 985
+-- WS extension to fill the range
+id-Unknown-986 ProtocolIE-ID ::= 986
+id-Common-EDCH-Capability ProtocolIE-ID ::= 987
+id-E-AI-Capability ProtocolIE-ID ::= 988
+id-Common-EDCH-System-InformationFDD ProtocolIE-ID ::= 989
+id-Common-UL-MACFlows-to-DeleteFDD ProtocolIE-ID ::= 990
+id-Common-EDCH-MACdFlows-to-DeleteFDD ProtocolIE-ID ::= 991
+id-Common-EDCH-System-Information-ResponseFDD ProtocolIE-ID ::= 992
+id-Cell-ERNTI-Status-Information ProtocolIE-ID ::= 993
+id-Enhanced-UE-DRX-Capability ProtocolIE-ID ::= 994
+id-Enhanced-UE-DRX-InformationFDD ProtocolIE-ID ::= 995
+id-TransportBearerRequestIndicator ProtocolIE-ID ::= 996
+id-SixtyfourQAM-DL-MIMO-Combined-Capability ProtocolIE-ID ::= 997
+id-E-RNTI ProtocolIE-ID ::= 998
+id-MinimumReducedE-DPDCH-GainFactor ProtocolIE-ID ::= 999
+id-GANSS-Time-ID ProtocolIE-ID ::= 1000
+id-GANSS-AddIonoModelReq ProtocolIE-ID ::= 1001
+id-GANSS-EarthOrientParaReq ProtocolIE-ID ::= 1002
+id-GANSS-AddNavigationModelsReq ProtocolIE-ID ::= 1003
+id-GANSS-AddUTCModelsReq ProtocolIE-ID ::= 1004
+id-GANSS-AuxInfoReq ProtocolIE-ID ::= 1005
+id-GANSS-SBAS-ID ProtocolIE-ID ::= 1006
+id-GANSS-ID ProtocolIE-ID ::= 1007
+id-GANSS-Additional-Ionospheric-Model ProtocolIE-ID ::= 1008
+id-GANSS-Earth-Orientation-Parameters ProtocolIE-ID ::= 1009
+id-GANSS-Additional-Time-Models ProtocolIE-ID ::= 1010
+id-GANSS-Additional-Navigation-Models ProtocolIE-ID ::= 1011
+id-GANSS-Additional-UTC-Models ProtocolIE-ID ::= 1012
+id-GANSS-Auxiliary-Information ProtocolIE-ID ::= 1013
+id-ERACH-CM-Rqst ProtocolIE-ID ::= 1014
+id-ERACH-CM-Rsp ProtocolIE-ID ::= 1015
+id-ERACH-CM-Rprt ProtocolIE-ID ::= 1016
+id-EDCH-RACH-Report-Value ProtocolIE-ID ::= 1017
+id-EDCH-RACH-Report-IncrDecrThres ProtocolIE-ID ::= 1018
+id-EDCH-RACH-Report-ThresholdInformation ProtocolIE-ID ::= 1019
+id-E-DPCCH-Power-Boosting-Capability ProtocolIE-ID ::= 1020
+id-HSDSCH-Common-System-InformationLCR ProtocolIE-ID ::= 1021
+-- WS extension to fill the range
+id-Unknown-1022 ProtocolIE-ID ::= 1022
+id-HSDSCH-Common-System-Information-ResponseLCR ProtocolIE-ID ::= 1222
+id-HSDSCH-Paging-System-InformationLCR ProtocolIE-ID ::= 1023
+id-HSDSCH-Paging-System-Information-ResponseLCR ProtocolIE-ID ::= 1024
+id-Common-MACFlows-to-DeleteLCR ProtocolIE-ID ::= 1025
+id-Paging-MACFlows-to-DeleteLCR ProtocolIE-ID ::= 1026
+id-Common-EDCH-System-InformationLCR ProtocolIE-ID ::= 1027
+id-Common-UL-MACFlows-to-DeleteLCR ProtocolIE-ID ::= 1028
+id-Common-EDCH-MACdFlows-to-DeleteLCR ProtocolIE-ID ::= 1029
+id-Common-EDCH-System-Information-ResponseLCR ProtocolIE-ID ::= 1030
+id-Enhanced-UE-DRX-CapabilityLCR ProtocolIE-ID ::= 1031
+id-Enhanced-UE-DRX-InformationLCR ProtocolIE-ID ::= 1032
+id-HSDSCH-PreconfigurationSetup ProtocolIE-ID ::= 1033
+id-HSDSCH-PreconfigurationInfo ProtocolIE-ID ::= 1034
+id-NoOfTargetCellHS-SCCH-Order ProtocolIE-ID ::= 1035
+id-EnhancedHSServingCC-Abort ProtocolIE-ID ::= 1036
+id-Additional-HS-Cell-Information-RL-Setup ProtocolIE-ID ::= 1037
+id-Additional-HS-Cell-Information-Response ProtocolIE-ID ::= 1038
+id-Additional-HS-Cell-Information-RL-Addition ProtocolIE-ID ::= 1039
+id-Additional-HS-Cell-Change-Information-Response ProtocolIE-ID ::= 1040
+id-Additional-HS-Cell-Information-RL-Reconf-Prep ProtocolIE-ID ::= 1041
+id-Additional-HS-Cell-Information-RL-Reconf-Req ProtocolIE-ID ::= 1042
+id-Additional-HS-Cell-Information-RL-Param-Upd ProtocolIE-ID ::= 1043
+id-Multi-Cell-Capability-Info ProtocolIE-ID ::= 1044
+id-IMB-Parameters ProtocolIE-ID ::= 1045
+id-MACes-Maximum-Bitrate-LCR ProtocolIE-ID ::= 1046
+id-Semi-PersistentScheduling-CapabilityLCR ProtocolIE-ID ::= 1047
+id-E-DCH-Semi-PersistentScheduling-Information-LCR ProtocolIE-ID ::= 1048
+id-HS-DSCH-Semi-PersistentScheduling-Information-LCR ProtocolIE-ID ::= 1049
+id-Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 1050
+id-Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 1051
+id-Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 1052
+id-ContinuousPacketConnectivity-DRX-CapabilityLCR ProtocolIE-ID ::= 1053
+id-ContinuousPacketConnectivity-DRX-InformationLCR ProtocolIE-ID ::= 1054
+id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR ProtocolIE-ID ::= 1055
+id-CPC-InformationLCR ProtocolIE-ID ::= 1056
+id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR ProtocolIE-ID ::= 1057
+id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR ProtocolIE-ID ::= 1058
+id-E-AGCH-UE-Inactivity-Monitor-Threshold ProtocolIE-ID ::= 1059
+-- WS extension to fill the range
+id-Unknown-1060 ProtocolIE-ID ::= 1060
+id-Unknown-1061 ProtocolIE-ID ::= 1061
+id-Unknown-1062 ProtocolIE-ID ::= 1062
+id-IdleIntervalInformation ProtocolIE-ID ::= 1063
+id-GANSS-alm-keplerianNAVAlmanac ProtocolIE-ID ::= 1064
+id-GANSS-alm-keplerianReducedAlmanac ProtocolIE-ID ::= 1065
+id-GANSS-alm-keplerianMidiAlmanac ProtocolIE-ID ::= 1066
+id-GANSS-alm-keplerianGLONASS ProtocolIE-ID ::= 1067
+id-GANSS-alm-ecefSBASAlmanac ProtocolIE-ID ::= 1068
+-- WS extension to fill the range
+id-Unknown-1069 ProtocolIE-ID ::= 1069
+id-HSSICH-ReferenceSignal-InformationLCR ProtocolIE-ID ::= 1070
+id-MIMO-ReferenceSignal-InformationListLCR ProtocolIE-ID ::= 1071
+id-MIMO-SFMode-For-HSPDSCHDualStream ProtocolIE-ID ::= 1072
+id-MIMO-SFMode-Supported-For-HSPDSCHDualStream ProtocolIE-ID ::= 1073
+id-UE-Selected-MBMS-Service-Information ProtocolIE-ID ::= 1074
+-- WS extension to fill the range
+id-Unknown-1075 ProtocolIE-ID ::= 1075
+id-Unknown-1076 ProtocolIE-ID ::= 1076
+id-MultiCarrier-HSDSCH-Physical-Layer-Category ProtocolIE-ID ::= 1077
+id-Common-E-DCH-HSDPCCH-Capability ProtocolIE-ID ::= 1078
+id-DL-RLC-PDU-Size-Format ProtocolIE-ID ::= 1079
+id-HSSICH-ReferenceSignal-InformationModifyLCR ProtocolIE-ID ::= 1080
+id-schedulingPriorityIndicator ProtocolIE-ID ::= 1081
+id-TimeSlotMeasurementValueListLCR ProtocolIE-ID ::= 1082
+-- WS extension to fill the range
+id-Unknown-1083 ProtocolIE-ID ::= 1083
+id-Unknown-1084 ProtocolIE-ID ::= 1084
+id-UE-SupportIndicatorExtension ProtocolIE-ID ::= 1085
+-- WS extension to fill the range
+id-Unknown-1086 ProtocolIE-ID ::= 1086
+id-Unknown-1087 ProtocolIE-ID ::= 1087
+id-Single-Stream-MIMO-ActivationIndicator ProtocolIE-ID ::= 1088
+id-Single-Stream-MIMO-Capability ProtocolIE-ID ::= 1089
+id-Single-Stream-MIMO-Mode-Indicator ProtocolIE-ID ::= 1090
+id-Dual-Band-Capability-Info ProtocolIE-ID ::= 1091
+id-UE-AggregateMaximumBitRate ProtocolIE-ID ::= 1092
+id-UE-AggregateMaximumBitRate-Enforcement-Indicator ProtocolIE-ID ::= 1093
+-- WS extension to fill the range
+id-Unknown-1094 ProtocolIE-ID ::= 1094
+id-Unknown-1095 ProtocolIE-ID ::= 1095
+id-Unknown-1096 ProtocolIE-ID ::= 1096
+id-Unknown-1097 ProtocolIE-ID ::= 1097
+id-Unknown-1098 ProtocolIE-ID ::= 1098
+id-Unknown-1099 ProtocolIE-ID ::= 1099
+id-Unknown-1100 ProtocolIE-ID ::= 1100
+id-MIMO-Power-Offset-For-S-CPICH-Capability ProtocolIE-ID ::= 1101
+id-MIMO-PilotConfigurationExtension ProtocolIE-ID ::= 1102
+id-TxDiversityOnDLControlChannelsByMIMOUECapability ProtocolIE-ID ::= 1103
+id-ULTimeslotISCPValue-For-CellPortion ProtocolIE-ID ::= 1104
+id-UpPTSInterferenceValue-For-CellPortion ProtocolIE-ID ::= 1105
+id-Best-Cell-Portions-ValueLCR ProtocolIE-ID ::= 1106
+id-Transmitted-Carrier-Power-For-CellPortion-ValueLCR ProtocolIE-ID ::= 1107
+id-Received-total-wide-band-power-For-CellPortion-ValueLCR ProtocolIE-ID ::= 1108
+id-UL-TimeslotISCP-For-CellPortion-Value ProtocolIE-ID ::= 1109
+id-HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR ProtocolIE-ID ::= 1110
+id-HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR ProtocolIE-ID ::= 1111
+id-E-DCHProvidedBitRateValueInformation-For-CellPortion ProtocolIE-ID ::= 1112
+id-UpPTSInterference-For-CellPortion-Value ProtocolIE-ID ::= 1113
+id-NumberOfReportedCellPortionsLCR ProtocolIE-ID ::= 1114
+id-CellPortion-CapabilityLCR ProtocolIE-ID ::= 1115
+id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue ProtocolIE-ID ::= 1116
+id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortion ProtocolIE-ID ::= 1117
+-- WS extension to fill the range
+id-Unknown-1118 ProtocolIE-ID ::= 1118
+id-ActivationInformation ProtocolIE-ID ::= 1119
+id-Additional-EDCH-Cell-Information-RL-Setup-Req ProtocolIE-ID ::= 1120
+id-Additional-EDCH-Cell-Information-Response ProtocolIE-ID ::= 1121
+id-Additional-EDCH-Cell-Information-RL-Add-Req ProtocolIE-ID ::= 1122
+id-Additional-EDCH-Cell-Information-Response-RL-Add ProtocolIE-ID ::= 1123
+id-Additional-EDCH-Cell-Information-RL-Reconf-Prep ProtocolIE-ID ::= 1124
+id-Additional-EDCH-Cell-Information-RL-Reconf-Req ProtocolIE-ID ::= 1125
+id-Additional-EDCH-Cell-Information-Bearer-Rearrangement ProtocolIE-ID ::= 1126
+id-Additional-EDCH-Cell-Information-RL-Param-Upd ProtocolIE-ID ::= 1127
+id-Additional-EDCH-Preconfiguration-Information ProtocolIE-ID ::= 1128
+id-EDCH-Indicator ProtocolIE-ID ::= 1129
+-- WS extension to fill the range
+id-Unknown-1130 ProtocolIE-ID ::= 1130
+id-HS-DSCH-SPS-Reservation-Indicator ProtocolIE-ID ::= 1131
+id-E-DCH-SPS-Reservation-Indicator ProtocolIE-ID ::= 1132
+id-MultipleFreq-HARQ-MemoryPartitioning-InformationList ProtocolIE-ID ::= 1133
+id-Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR-Ext ProtocolIE-ID ::= 1134
+id-RepetitionPeriodIndex ProtocolIE-ID ::= 1135
+id-MidambleShiftLCR ProtocolIE-ID ::= 1136
+id-MaxHSDSCH-HSSCCH-Power-per-CELLPORTION ProtocolIE-ID ::= 1137
+id-DormantModeIndicator ProtocolIE-ID ::= 1138
+id-DiversityMode ProtocolIE-ID ::= 1139
+id-TransmitDiversityIndicator ProtocolIE-ID ::= 1140
+id-NonCellSpecificTxDiversity ProtocolIE-ID ::= 1141
+id-Cell-Capability-Container ProtocolIE-ID ::= 1142
+id-E-RNTI-List-Request ProtocolIE-ID ::= 1143
+id-E-RNTI-List ProtocolIE-ID ::= 1144
+id-PowerControlGAP-For-CellFACHLCR ProtocolIE-ID ::= 1145
+-- WS extension to fill the range
+id-Unknown-1146 ProtocolIE-ID ::= 1146
+id-UL-Synchronisation-Parameters-For-FACHLCR ProtocolIE-ID ::= 1147
+id-HS-DSCH-SPS-Operation-Indicator ProtocolIE-ID ::= 1148
+id-HSDSCH-RNTI-For-FACH ProtocolIE-ID ::= 1149
+id-E-RNTI-For-FACH ProtocolIE-ID ::= 1150
+id-Out-of-Sychronization-Window ProtocolIE-ID ::= 1151
+id-Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 1152
+id-E-HICH-TimeOffset-ReconfFailureTDD ProtocolIE-ID ::= 1153
+id-HSSCCH-TPC-StepSize ProtocolIE-ID ::= 1154
+id-TS0-CapabilityLCR ProtocolIE-ID ::= 1155
+id-UE-TS0-CapabilityLCR ProtocolIE-ID ::= 1156
+id-Common-System-Information-ResponseLCR ProtocolIE-ID ::= 1157
+id-Additional-EDCH-Cell-Information-ResponseRLReconf ProtocolIE-ID ::= 1158
+id-Multicell-EDCH-InformationItemIEs ProtocolIE-ID ::= 1159
+id-Multicell-EDCH-RL-Specific-InformationItemIEs ProtocolIE-ID ::= 1160
+id-Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext ProtocolIE-ID ::= 1161
+id-Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext ProtocolIE-ID ::= 1162
+id-Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext ProtocolIE-ID ::= 1163
+id-Initial-DL-Transmission-Power ProtocolIE-ID ::= 1164
+id-Maximum-DL-Power ProtocolIE-ID ::= 1165
+id-Minimum-DL-Power ProtocolIE-ID ::= 1166
+id-DCH-MeasurementOccasion-Information ProtocolIE-ID ::= 1167
+id-AssociatedPhsicalChannelID ProtocolIE-ID ::= 1168
+id-DGNSS-ValidityPeriod ProtocolIE-ID ::= 1169
+id-PhysicalChannelID-for-CommonERNTI-RequestedIndicator ProtocolIE-ID ::= 1170
+id-PrecodingWeightSetRestriction ProtocolIE-ID ::= 1171
+id-Treset-Usage-Indicator ProtocolIE-ID ::= 1172
+id-Non-Serving-RL-Preconfig-Info ProtocolIE-ID ::= 1173
+id-Non-Serving-RL-Preconfig-Setup ProtocolIE-ID ::= 1174
+id-Non-Serving-RL-Preconfig-Removal ProtocolIE-ID ::= 1175
+id-Additional-E-DCH-Non-Serving-RL-Preconfiguration-Setup ProtocolIE-ID ::= 1176
+id-Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList ProtocolIE-ID ::= 1177
+id-Ul-common-E-DCH-MACflow-Specific-InfoListLCR-Ext ProtocolIE-ID ::= 1178
+id-CommonMACFlow-Specific-InfoList-ResponseLCR-Ext ProtocolIE-ID ::= 1179
+id-Enabling-Delay-Ext-LCR ProtocolIE-ID ::= 1180
+-- WS extension to fill the range
+id-Unallocated-1181 ProtocolIE-ID ::= 1181
+id-Unallocated-1182 ProtocolIE-ID ::= 1182
+id-Unallocated-1183 ProtocolIE-ID ::= 1183
+id-Unallocated-1184 ProtocolIE-ID ::= 1184
+id-Unallocated-1185 ProtocolIE-ID ::= 1185
+id-Unallocated-1186 ProtocolIE-ID ::= 1186
+id-Unallocated-1187 ProtocolIE-ID ::= 1187
+id-Unallocated-1188 ProtocolIE-ID ::= 1188
+id-Unallocated-1189 ProtocolIE-ID ::= 1189
+id-Unallocated-1190 ProtocolIE-ID ::= 1190
+id-Unallocated-1191 ProtocolIE-ID ::= 1191
+id-Unallocated-1192 ProtocolIE-ID ::= 1192
+id-Unallocated-1193 ProtocolIE-ID ::= 1193
+id-Unallocated-1194 ProtocolIE-ID ::= 1194
+id-Unallocated-1195 ProtocolIE-ID ::= 1195
+id-Unallocated-1196 ProtocolIE-ID ::= 1196
+id-Unallocated-1197 ProtocolIE-ID ::= 1197
+id-Unallocated-1198 ProtocolIE-ID ::= 1198
+id-Unallocated-1199 ProtocolIE-ID ::= 1199
+id-Unallocated-1200 ProtocolIE-ID ::= 1200
+id-Unallocated-1201 ProtocolIE-ID ::= 1201
+id-Unallocated-1202 ProtocolIE-ID ::= 1202
+id-Unallocated-1203 ProtocolIE-ID ::= 1203
+id-Unallocated-1204 ProtocolIE-ID ::= 1204
+id-Unallocated-1205 ProtocolIE-ID ::= 1205
+id-Unallocated-1206 ProtocolIE-ID ::= 1206
+id-Unallocated-1207 ProtocolIE-ID ::= 1207
+id-Unallocated-1208 ProtocolIE-ID ::= 1208
+id-Unallocated-1209 ProtocolIE-ID ::= 1209
+id-Unallocated-1210 ProtocolIE-ID ::= 1210
+id-Unallocated-1211 ProtocolIE-ID ::= 1211
+id-Unallocated-1212 ProtocolIE-ID ::= 1212
+id-Unallocated-1213 ProtocolIE-ID ::= 1213
+id-Unallocated-1214 ProtocolIE-ID ::= 1214
+id-Unallocated-1215 ProtocolIE-ID ::= 1215
+id-Unallocated-1216 ProtocolIE-ID ::= 1216
+id-Unallocated-1217 ProtocolIE-ID ::= 1217
+id-Unallocated-1218 ProtocolIE-ID ::= 1218
+id-Unallocated-1219 ProtocolIE-ID ::= 1219
+id-Unallocated-1220 ProtocolIE-ID ::= 1220
+id-Unallocated-1221 ProtocolIE-ID ::= 1221
+--id-HSDSCH-Common-System-Information-ResponseLCR ProtocolIE-ID ::= 1222
+END
diff --git a/epan/dissectors/asn1/nbap/NBAP-Containers.asn b/epan/dissectors/asn1/nbap/NBAP-Containers.asn
new file mode 100644
index 0000000000..5710f45eca
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/NBAP-Containers.asn
@@ -0,0 +1,205 @@
+-- NBAP-Containers.asn
+--
+-- Taken from 3GPP TS 25.433 V9.4.0 (2010-09)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.433/
+--
+-- 9.3.7 Container Definitions
+--
+
+-- **************************************************************
+--
+-- 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/epan/dissectors/asn1/nbap/NBAP-IEs.asn b/epan/dissectors/asn1/nbap/NBAP-IEs.asn
new file mode 100644
index 0000000000..d3ee5c2a46
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/NBAP-IEs.asn
@@ -0,0 +1,10050 @@
+-- NBAP-IEs.asn
+--
+-- Taken from 3GPP TS 25.433 V9.2.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.433/
+--
+-- 9.3.4 Information Elements Definitions
+--
+
+--******************************************************************************
+--
+-- 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,
+ maxHS-PDSCHCodeNrComp-1,
+ maxHS-SCCHCodeNrComp-1,
+ maxNrOfCellSyncBursts,
+ maxNrOfCombEDPDCH,
+ maxNrOfEDCH-HARQ-PO-QUANTSTEPs,
+ maxNrOfEDCHHARQProcesses2msEDCH,
+ maxNrOfBits-MACe-PDU-non-scheduled,
+ maxNrOfEDPCCH-PO-QUANTSTEPs,
+ maxNrOfRefETFCI-PO-QUANTSTEPs,
+ maxNrOfRefETFCIs,
+ maxNrOfMeasNCell,
+ maxNrOfMeasNCell-1,
+ maxNrOfReceptsPerSyncFrame,
+ maxNrOfSF,
+ maxTGPS,
+ maxNrOfUSCHs,
+ maxNrOfULTSs,
+ maxNrOfULTSLCRs,
+ maxNrOfDPCHs,
+ maxNrOfDPCHLCRs,
+ maxNrOfDPCHs768,
+ maxNrOfCodes,
+ maxNrOfDSCHs,
+ maxNrOfDLTSs,
+ maxNrOfDLTSLCRs,
+ maxNrOfDCHs,
+ maxNrOfLevels,
+ maxNoGPSItems,
+ maxNoSat,
+ maxNrOfCellPortionsPerCell,
+ maxNrOfCellPortionsPerCell-1,
+ maxNrOfHSSCCHs,
+ maxNrOfHSSCCHCodes,
+ maxNrOfMACdFlows,
+ maxNrOfMACdFlows-1,
+ maxNrOfMACdPDUIndexes,
+ maxNrOfMACdPDUIndexes-1,
+ maxNrOfMACdPDUSize,
+ maxNrOfNIs,
+ maxNrOfPriorityQueues,
+ maxNrOfPriorityQueues-1,
+ maxNrOfHARQProcesses,
+ maxNrOfSyncDLCodesLCR,
+ maxNrOfSyncFramesLCR,
+ maxNrOfContextsOnUeList,
+ maxNrOfPriorityClasses,
+ maxNrOfSatAlmanac-maxNoSat,
+ maxNrOfE-AGCHs,
+ maxNrOfEDCHMACdFlows,
+ maxNrOfEDCHMACdFlows-1,
+ maxNrOfE-RGCHs-E-HICHs,
+ maxNrofSigSeqRGHI-1,
+ maxNoOfLogicalChannels,
+ maxNrOfEAGCHs,
+ maxNrOfRefBetas,
+ maxNrOfEAGCHCodes,
+ maxNrOfHS-DSCH-TBSs,
+ maxNrOfHS-DSCH-TBSs-HS-SCCHless,
+ maxNrOfEHICHCodes,
+ maxNrOfCommonMACFlows,
+ maxNrOfCommonMACFlows-1,
+ maxNrOfPagingMACFlow,
+ maxNrOfPagingMACFlow-1,
+ maxNrOfcommonMACQueues,
+ maxNrOfpagingMACQueues,
+ maxNrOfHS-DSCHTBSsE-PCH,
+ maxGANSSSat,
+ maxNoGANSS,
+ maxSgnType,
+ maxHSDPAFrequency,
+ maxHSDPAFrequency-1,
+ maxGANSSSatAlmanac,
+ maxGANSSClockMod,
+ maxNrOfEDCHRLs,
+ maxCellinNodeB,
+ maxERNTItoRelease,
+ maxNrOfCommonEDCH,
+ maxFrequencyinCell-1,
+ maxNrOfCommonMACFlowsLCR,
+ maxNrOfCommonMACFlowsLCR-1,
+ maxNrOfHSSCCHsLCR,
+ maxNrOfEDCHMACdFlowsLCR,
+ maxNrOfEDCHMACdFlowsLCR-1,
+ maxNrOfEAGCHsLCR,
+ maxNrOfEHICHsLCR,
+ maxnrofERUCCHsLCR,
+ maxNrOfHSPDSCHs,
+ maxFrequencyinCell,
+ maxNrOfHSDSCH-1,
+ maxNrOfHSDSCH,
+ maxGANSS-1,
+ maxNoOfTBSs-Mapping-HS-DSCH-SPS,
+ maxNoOfTBSs-Mapping-HS-DSCH-SPS-1,
+ maxNoOfHS-DSCH-TBSsLCR,
+ maxNoOfRepetition-Period-LCR,
+ maxNoOfRepetitionPeriod-SPS-LCR-1,
+ maxNoOf-HS-SICH-SPS,
+ maxNoOf-HS-SICH-SPS-1,
+ maxNoOfNon-HS-SCCH-Assosiated-HS-SICH,
+ maxNoOfNon-HS-SCCH-Assosiated-HS-SICH-Ext,
+ maxMBMSServiceSelect,
+ maxNrOfCellPortionsPerCellLCR,
+ maxNrOfCellPortionsPerCellLCR-1,
+ maxNrOfEDCH-1,
+ maxNoOfCommonH-RNTI,
+ maxNrOfCommonMACFlowsLCRExt,
+ maxofERNTI,
+ maxNrOfDCHMeasurementOccasionPatternSequence,
+
+ id-BroadcastCommonTransportBearerIndication,
+ 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-Received-total-wide-band-power-For-CellPortion,
+ id-Received-total-wide-band-power-For-CellPortion-Value,
+ id-Transmitted-Carrier-Power-For-CellPortion,
+ id-Transmitted-Carrier-Power-For-CellPortion-Value,
+ id-TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmission,
+ id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortion,
+ id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue,
+ id-HS-DSCHRequiredPowerValueInformation,
+ id-HS-DSCHProvidedBitRateValueInformation,
+ id-HS-DSCHRequiredPowerValue,
+ id-HS-DSCHRequiredPowerValue-For-Cell-Portion,
+ id-HS-DSCHRequiredPowerValueInformation-For-CellPortion,
+ id-HS-DSCHProvidedBitRateValueInformation-For-CellPortion,
+ id-HSDSCH-MACdPDUSizeFormat,
+ id-HS-PDSCH-Code-Change-Grant,
+ id-HS-PDSCH-Code-Change-Indicator,
+ id-HS-DSCH-SPS-Operation-Indicator,
+ id-Best-Cell-Portions-Value,
+ id-Unidirectional-DCH-Indicator,
+ id-SAT-Info-Almanac-ExtItem,
+ id-TnlQos,
+ id-UpPTSInterferenceValue,
+ id-HARQ-Preamble-Mode,
+ id-HARQ-Preamble-Mode-Activation-Indicator,
+ id-DLTransmissionBranchLoadValue,
+ id-E-DCHProvidedBitRateValueInformation,
+ id-E-DCH-Non-serving-Relative-Grant-Down-CommandsValue,
+ id-HSSICH-SIRTarget,
+ id-PLCCH-Information-UL-TimeslotLCR-Info,
+ id-neighbouringTDDCellMeasurementInformation768,
+ id-Rx-Timing-Deviation-Value-768,
+ id-hsSCCH-Specific-Information-ResponseTDD768,
+ id-Rx-Timing-Deviation-Value-384-ext,
+ id-E-DCH-PowerOffset-for-SchedulingInfo,
+ id-Extended-Round-Trip-Time-Value,
+ id-ExtendedPropagationDelay,
+ id-HSSICH-TPC-StepSize,
+ id-RTWP-CellPortion-ReportingIndicator,
+ id-Received-Scheduled-EDCH-Power-Share-Value,
+ id-Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value,
+ id-Received-Scheduled-EDCH-Power-Share,
+ id-Received-Scheduled-EDCH-Power-Share-For-CellPortion,
+ id-ueCapability-Info,
+ id-ContinuousPacketConnectivityHS-SCCH-less-Information,
+ id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response,
+ id-MIMO-ActivationIndicator,
+ id-MIMO-Mode-Indicator,
+ id-MIMO-N-M-Ratio,
+ id-Additional-failed-HS-SICH,
+ id-Additional-missed-HS-SICH,
+ id-Additional-total-HS-SICH,
+ id-Additional-HS-SICH-Reception-Quality-Measurement-Value,
+ id-LCRTDD-uplink-Physical-Channel-Capability,
+ id-SixteenQAM-UL-Operation-Indicator,
+ id-E-AGCH-Table-Choice,
+ id-E-TFCI-Boost-Information,
+ id-E-DPDCH-PowerInterpolation,
+ id-MaximumMACdPDU-SizeExtended,
+ id-GANSS-Common-Data,
+ id-GANSS-Information,
+ id-GANSS-Generic-Data,
+ id-TUTRANGANSSMeasurementThresholdInformation,
+ id-TUTRANGANSSMeasurementValueInformation,
+ id-Extended-RNC-ID,
+ id-HARQ-MemoryPartitioningInfoExtForMIMO,
+ id-Ext-Reference-E-TFCI-PO,
+ id-Ext-Max-Bits-MACe-PDU-non-scheduled,
+ id-TransportBearerNotSetupIndicator,
+ id-TransportBearerNotRequestedIndicator,
+ id-UARFCNforNt,
+ id-number-Of-Supported-Carriers,
+ id-multipleFreq-HSPDSCH-InformationList-ResponseTDDLCR,
+ id-tSN-Length,
+ id-multicarrier-number,
+ id-Extended-HS-SICH-ID,
+ id-Default-Serving-Grant-in-DTX-Cycle2,
+ id-SixtyfourQAM-UsageAllowedIndicator,
+ id-SixtyfourQAM-DL-UsageIndicator,
+ id-IPMulticastDataBearerIndication,
+ id-Extended-E-DCH-LCRTDD-PhysicalLayerCategory,
+ id-ContinuousPacketConnectivityHS-SCCH-less-Deactivate-Indicator,
+ id-Extended-E-HICH-ID-TDD,
+ id-E-DCH-MACdPDUSizeFormat,
+ id-MaximumNumber-Of-Retransmission-for-Scheduling-Info-LCRTDD,
+ id-E-DCH-RetransmissionTimer-for-SchedulingInfo-LCRTDD,
+ id-E-PUCH-PowerControlGAP,
+ id-HSDSCH-TBSizeTableIndicator,
+ id-E-DCH-DL-Control-Channel-Change-Information,
+ id-E-DCH-DL-Control-Channel-Grant-Information,
+ id-DGANSS-Corrections-Req,
+ id-UE-with-enhanced-HS-SCCH-support-indicator,
+ id-TransportBearerRequestIndicator,
+ id-EnhancedHSServingCC-Abort,
+ id-GANSS-Time-ID,
+ id-GANSS-AddIonoModelReq,
+ id-GANSS-EarthOrientParaReq,
+ id-GANSS-AddNavigationModelsReq,
+ id-GANSS-AddUTCModelsReq,
+ id-GANSS-AuxInfoReq,
+ id-GANSS-SBAS-ID,
+ id-GANSS-ID,
+ id-GANSS-Additional-Ionospheric-Model,
+ id-GANSS-Earth-Orientation-Parameters,
+ id-GANSS-Additional-Time-Models,
+ id-GANSS-Additional-Navigation-Models,
+ id-GANSS-Additional-UTC-Models,
+ id-GANSS-Auxiliary-Information,
+ id-GANSS-alm-keplerianNAVAlmanac,
+ id-GANSS-alm-keplerianReducedAlmanac,
+ id-GANSS-alm-keplerianMidiAlmanac,
+ id-GANSS-alm-keplerianGLONASS,
+ id-GANSS-alm-ecefSBASAlmanac,
+ id-EDCH-RACH-Report-Value,
+ id-EDCH-RACH-Report-IncrDecrThres,
+ id-EDCH-RACH-Report-ThresholdInformation,
+ id-MACes-Maximum-Bitrate-LCR,
+ id-E-AGCH-UE-Inactivity-Monitor-Threshold,
+ id-MultiCarrier-HSDSCH-Physical-Layer-Category,
+ id-MIMO-ReferenceSignal-InformationListLCR,
+ id-MIMO-SFMode-For-HSPDSCHDualStream,
+ id-MIMO-SFMode-Supported-For-HSPDSCHDualStream,
+ id-DL-RLC-PDU-Size-Format,
+ id-schedulingPriorityIndicator,
+ id-UE-SupportIndicatorExtension,
+ id-UE-AggregateMaximumBitRate-Enforcement-Indicator,
+ id-Single-Stream-MIMO-ActivationIndicator,
+ id-Single-Stream-MIMO-Mode-Indicator,
+ id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortion,
+ id-ULTimeslotISCPValue-For-CellPortion,
+ id-UpPTSInterferenceValue-For-CellPortion,
+ id-Best-Cell-Portions-ValueLCR,
+ id-Transmitted-Carrier-Power-For-CellPortion-ValueLCR,
+ id-Received-total-wide-band-power-For-CellPortion-ValueLCR,
+ id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue,
+ id-UL-TimeslotISCP-For-CellPortion-Value,
+ id-HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR,
+ id-HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR,
+ id-E-DCHProvidedBitRateValueInformation-For-CellPortion,
+ id-UpPTSInterference-For-CellPortion-Value,
+ id-HS-DSCH-SPS-Reservation-Indicator,
+ id-E-DCH-SPS-Reservation-Indicator,
+ id-MultipleFreq-HARQ-MemoryPartitioning-InformationList,
+ id-DiversityMode,
+ id-TransmitDiversityIndicator,
+ id-NonCellSpecificTxDiversity,
+ id-RepetitionPeriodIndex,
+ id-MidambleShiftLCR,
+ id-MaxHSDSCH-HSSCCH-Power-per-CELLPORTION,
+ id-Additional-EDCH-Preconfiguration-Information,
+ id-EDCH-Indicator,
+ id-Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR-Ext,
+ id-E-RNTI-List-Request,
+ id-E-RNTI-List,
+ id-UL-Synchronisation-Parameters-For-FACHLCR,
+ id-UE-TS0-CapabilityLCR,
+ id-Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext,
+ id-Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext,
+ id-DGNSS-ValidityPeriod,
+ id-AssociatedPhsicalChannelID,
+ id-PhysicalChannelID-for-CommonERNTI-RequestedIndicator,
+ id-Initial-DL-Transmission-Power,
+ id-Maximum-DL-Power,
+ id-Minimum-DL-Power,
+ id-Multicell-EDCH-InformationItemIEs,
+ id-Multicell-EDCH-RL-Specific-InformationItemIEs
+
+
+
+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-PRACH-preambles-Value ::= INTEGER(0..240,...)
+-- According to mapping in [22].
+
+ActivationInformation ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF ActivationInformationItem
+
+ActivationInformationItem ::= SEQUENCE {
+ uU-ActivationState Uu-ActivationState,
+ iE-Extensions ProtocolExtensionContainer { { ActivationInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ActivationInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Setup-Info ::=SEQUENCE{
+ multicell-EDCH-Transport-Bearer-Mode Multicell-EDCH-Transport-Bearer-Mode,
+ additional-EDCH-Cell-Information-Setup Additional-EDCH-Cell-Information-Setup,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Setup-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Setup-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multicell-EDCH-Transport-Bearer-Mode ::= ENUMERATED {
+ separate-Iub-Transport-Bearer-Mode,
+ uL-Flow-Multiplexing-Mode
+}
+
+
+Additional-EDCH-Cell-Information-Setup ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-FDD-Setup-Cell-Information
+
+Additional-EDCH-FDD-Setup-Cell-Information ::=SEQUENCE{
+ additional-EDCH-UL-DPCH-Information-Setup Additional-EDCH-UL-DPCH-Information-Setup,
+ additional-EDCH-RL-Specific-Information-To-Setup Additional-EDCH-RL-Specific-Information-To-Setup-List,
+ additional-EDCH-FDD-Information Additional-EDCH-FDD-Information OPTIONAL,
+ additional-EDCH-F-DPCH-Information-Setup Additional-EDCH-F-DPCH-Information,
+ multicell-EDCH-Information Multicell-EDCH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Setup-Cell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Setup-Cell-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Setup ::=SEQUENCE{
+ ul-ScramblingCode UL-ScramblingCode,
+ ul-SIR-Target UL-SIR,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-UL-DPCH-Information-Setup-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Setup-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-F-DPCH-Information ::=SEQUENCE{
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-F-DPCH-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-F-DPCH-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Setup-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF Additional-EDCH-RL-Specific-Information-To-Setup-ItemIEs
+
+
+Additional-EDCH-RL-Specific-Information-To-Setup-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ c-ID C-ID OPTIONAL,
+ firstRLS-indicator FirstRLS-Indicator,
+ propagationDelay PropagationDelay OPTIONAL,
+ dl-CodeInformation FDD-DL-CodeInformation,
+ initialDL-transmissionPower DL-Power,
+ maximumDL-power DL-Power,
+ minimumDL-power DL-Power,
+ f-DPCH-SlotFormat F-DPCH-SlotFormat OPTIONAL,
+ e-RNTI E-RNTI OPTIONAL,
+ multicell-EDCH-RL-Specific-Information Multicell-EDCH-RL-Specific-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-RL-Specific-Information-To-Setup-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Setup-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-To-Add-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-To-Add-ItemIEs
+
+Additional-EDCH-Cell-Information-To-Add-ItemIEs ::=SEQUENCE{
+ additional-EDCH-RL-Specific-Information-To-Add-ItemIEs Additional-EDCH-RL-Specific-Information-To-Add-ItemIEs,
+ additional-EDCH-FDD-Information Additional-EDCH-FDD-Information OPTIONAL,
+ multicell-EDCH-Information Multicell-EDCH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-To-Add-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-To-Add-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Add-ItemIEs ::= SEQUENCE (SIZE (1.. maxNrOfEDCHRLs)) OF EDCH-Additional-RL-Specific-Information-To-Add-List
+
+EDCH-Additional-RL-Specific-Information-To-Add-List ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ c-ID C-ID,
+ dl-CodeInformation FDD-DL-CodeInformation,
+ initialDL-transmissionPower DL-Power OPTIONAL,
+ maximumDL-power DL-Power OPTIONAL,
+ minimumDL-power DL-Power OPTIONAL,
+ f-DPCH-SlotFormat F-DPCH-SlotFormat OPTIONAL,
+ multicell-EDCH-RL-Specific-Information Multicell-EDCH-RL-Specific-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-Additional-RL-Specific-Information-To-Add-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-Additional-RL-Specific-Information-To-Add-List-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Modify-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF Additional-EDCH-RL-Specific-Information-To-Modify-ItemIEs
+
+Additional-EDCH-RL-Specific-Information-To-Modify-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ dl-CodeInformation FDD-DL-CodeInformation OPTIONAL,
+ maximumDL-power DL-Power OPTIONAL,
+ minimumDL-power DL-Power OPTIONAL,
+ f-DPCH-SlotFormat F-DPCH-SlotFormat OPTIONAL,
+
+ multicell-EDCH-RL-Specific-Information Multicell-EDCH-RL-Specific-Information OPTIONAL, iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-RL-Specific-Information-To-Modify-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Modify-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-FDD-Information ::=SEQUENCE{
+ additional-EDCH-MAC-d-Flows-Specific-Information Additional-EDCH-MAC-d-Flows-Specific-Info-List OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ e-DCH-Maximum-Bitrate E-DCH-Maximum-Bitrate OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-Min-Set-E-TFCI E-TFCI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-MAC-d-Flows-Specific-Info-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF Additional-EDCH-MAC-d-Flows-Specific-Info
+
+Additional-EDCH-MAC-d-Flows-Specific-Info ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-MAC-d-Flows-Specific-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-MAC-d-Flows-Specific-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-FDD-Information-Response-ItemIEs
+
+Additional-EDCH-FDD-Information-Response-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-Specific-Information-Response EDCH-Additional-RL-Specific-Information-Response-List OPTIONAL,
+ additional-EDCH-MAC-d-Flow-Specific-Information-Response Additional-EDCH-MAC-d-Flow-Specific-Information-Response-List OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Information-Response-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-Additional-RL-Specific-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF EDCH-Additional-RL-Specific-Information-Response-ItemIEs
+
+EDCH-Additional-RL-Specific-Information-Response-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ dL-PowerBalancing-ActivationIndicator DL-PowerBalancing-ActivationIndicator OPTIONAL,
+ rL-Set-ID RL-Set-ID,
+ e-DCH-RL-Set-ID RL-Set-ID,
+ e-DCH-FDD-DL-Control-Channel-Information E-DCH-FDD-DL-Control-Channel-Information,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-Additional-RL-Specific-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-Additional-RL-Specific-Information-Response-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-Response-RLReconf-List::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-FDD-Information-Response-RLReconf-Items
+
+Additional-EDCH-FDD-Information-Response-RLReconf-Items::=SEQUENCE{
+ additional-EDCH-FDD-Information-Response-ItemIEs Additional-EDCH-FDD-Information-Response-ItemIEs OPTIONAL,
+ additional-Modififed-EDCH-FDD-Information-Response-ItemIEs Additional-Modififed-EDCH-FDD-Information-Response-ItemIEs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Information-Response-RLReconf-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Information-Response-RLReconf-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-Modififed-EDCH-FDD-Information-Response-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-Modified-RL-Specific-Information-Response EDCH-Additional-Modified-RL-Specific-Information-Response-List OPTIONAL,
+ additional-EDCH-MAC-d-Flow-Specific-Information-Response Additional-EDCH-MAC-d-Flow-Specific-Information-Response-List OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-Modififed-EDCH-FDD-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-Modififed-EDCH-FDD-Information-Response-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-Additional-Modified-RL-Specific-Information-Response-List ::= SEQUENCE (SIZE (1.. maxNrOfEDCHRLs)) OF EDCH-Additional-Modified-RL-Specific-Information-Response-List-Items
+
+EDCH-Additional-Modified-RL-Specific-Information-Response-List-Items ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ dL-PowerBalancing-UpdatedIndicator DL-PowerBalancing-UpdatedIndicator OPTIONAL,
+ e-DCH-FDD-DL-Control-Channel-Information E-DCH-FDD-DL-Control-Channel-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-Additional-Modified-RL-Specific-Information-Response-List-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-Additional-Modified-RL-Specific-Information-Response-List-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-MAC-d-Flow-Specific-Information-Response-List::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF Additional-EDCH-MAC-d-Flows-Specific-Info-Response
+
+Additional-EDCH-MAC-d-Flows-Specific-Info-Response ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-MAC-d-Flows-Specific-Info-Response-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-MAC-d-Flows-Specific-Info-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-Response-RL-Add-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-Response-RL-Add-ItemIEs
+
+Additional-EDCH-Cell-Information-Response-RL-Add-ItemIEs ::=SEQUENCE{
+ additional-EDCH-FDD-Information-Response Additional-EDCH-FDD-Information-Response-ItemIEs OPTIONAL,
+ additional-EDCH-Serving-Cell-Change-Information-Response E-DCH-Serving-Cell-Change-Info-Response OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-Response-RL-Add-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-Response-RL-Add-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-ConfigurationChange-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-ConfigurationChange-Info-ItemIEs
+
+Additional-EDCH-ConfigurationChange-Info-ItemIEs ::=SEQUENCE{
+ additional-EDCH-UL-DPCH-Information-Modify Additional-EDCH-UL-DPCH-Information-Modify OPTIONAL,
+ additional-EDCH-RL-Specific-Information-To-Add Additional-EDCH-RL-Specific-Information-To-Add-ItemIEs OPTIONAL,
+ additional-EDCH-RL-Specific-Information-To-Modify Additional-EDCH-RL-Specific-Information-To-Modify-List OPTIONAL,
+ additional-EDCH-FDD-Information-To-Modify Additional-EDCH-FDD-Information OPTIONAL,
+ additional-EDCH-F-DPCH-Information-Modify Additional-EDCH-F-DPCH-Information OPTIONAL,
+ multicell-EDCH-Information Multicell-EDCH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-ConfigurationChange-Info-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-ConfigurationChange-Info-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Modify ::=SEQUENCE{
+ ul-ScramblingCode UL-ScramblingCode OPTIONAL,
+ ul-SIR-Target UL-SIR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-UL-DPCH-Information-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-Removal-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-Removal-Info-ItemIEs
+
+Additional-EDCH-Cell-Information-Removal-Info-ItemIEs ::=SEQUENCE{
+ rL-on-Secondary-UL-Frequency RL-on-Secondary-UL-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-Removal-Info-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-Removal-Info-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-on-Secondary-UL-Frequency ::= ENUMERATED {
+ remove,
+ ...
+}
+
+Additional-EDCH-FDD-Update-Information ::=SEQUENCE{
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ additional-EDCH-DL-Control-Channel-Change-Information Additional-EDCH-DL-Control-Channel-Change-Information-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Update-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Additional-EDCH-DL-Control-Channel-Change-Information-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF Additional-EDCH-DL-Control-Channel-Change-Info-ItemIEs
+
+Additional-EDCH-DL-Control-Channel-Change-Info-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-DL-Control-Channel-Change-Info-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-DL-Control-Channel-Change-Info-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AdditionalMeasurementValueList::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF AdditionalMeasurementValue
+
+AdditionalMeasurementValue ::= SEQUENCE {
+ uARFCN UARFCN,
+ timeSlotMeasurementValueListLCR TimeSlotMeasurementValueListLCR,
+ iE-Extensions ProtocolExtensionContainer { {AdditionalMeasurementValueList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AdditionalMeasurementValueList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AdditionalTimeSlotListLCR::= SEQUENCE (SIZE (0..maxFrequencyinCell-1)) OF AdditionalTimeSlotLCR
+
+AdditionalTimeSlotLCR ::= SEQUENCE {
+ uARFCN UARFCN,
+ timeslot-InitiatedListLCR TimeSlot-InitiatedListLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {AdditionalTimeSlotLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AdditionalTimeSlotLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+AlternativeFormatReportingIndicator ::= ENUMERATED {
+alternativeFormatAllowed,...
+}
+
+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,...}
+
+AvailabilityStatus ::= ENUMERATED {
+ empty,
+ in-test,
+ failed,
+ power-off,
+ off-line,
+ off-duty,
+ dependency,
+ degraded,
+ not-installed,
+ log-full,
+ ...
+}
+
+-- ==========================================
+-- B
+-- ==========================================
+
+BCCH-Specific-HSDSCH-RNTI-Information::= SEQUENCE {
+ bCCH-Specific-HSDSCH-RNTI HSDSCH-RNTI,
+ hSSCCH-Power DL-Power,
+ hSPDSCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { BCCH-Specific-HSDSCH-RNTI-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+BCCH-Specific-HSDSCH-RNTI-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+BCCH-Specific-HSDSCH-RNTI-InformationLCR::= SEQUENCE {
+ bCCH-Specific-HSDSCH-RNTI HSDSCH-RNTI,
+ hSSCCH-Power DL-Power,
+ hSPDSCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { BCCH-Specific-HSDSCH-RNTI-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+BCCH-Specific-HSDSCH-RNTI-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+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 ::= {
+ ...
+}
+
+Best-Cell-Portions-ValueLCR::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF Best-Cell-Portions-ItemLCR
+
+Best-Cell-Portions-ItemLCR ::= SEQUENCE {
+ cellPortionLCRID CellPortionLCRID,
+ rSCPValue RSCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { Best-Cell-Portions-ItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Best-Cell-Portions-ItemLCR-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
+}
+
+BundlingModeIndicator ::= ENUMERATED {
+ bundling,
+ no-bundling
+}
+
+BroadcastCommonTransportBearerIndication ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ cid C-ID,
+ iE-Extensions ProtocolExtensionContainer { { BroadcastCommonTransportBearerIndication-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BroadcastCommonTransportBearerIndication-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BroadcastReference ::= BIT STRING (SIZE (24))
+
+-- ==========================================
+-- 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-cpich-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,
+ mich-not-supported,
+ f-DPCH-not-supported,
+ modification-period-not-available,
+ pLCCH-not-supported,
+ continuous-packet-connectivity-DTX-DRX-operation-not-available,
+ continuous-packet-connectivity-UE-DTX-Cycle-not-available,
+ mIMO-not-available,
+ e-DCH-MACdPDU-SizeFormat-not-available,
+ multi-Cell-operation-not-available,
+ semi-Persistent-scheduling-not-supported,
+ continuous-Packet-Connectivity-DRX-not-supported,
+ continuous-Packet-Connectivity-DRX-not-available,
+ sixtyfourQAM-DL-and-MIMO-Combined-not-available,
+ s-cpich-power-offset-not-available,
+ tx-diversity-for-mimo-on-DL-control-channels-not-available,
+ single-Stream-MIMO-not-available,
+ multi-Cell-operation-with-MIMO-not-available,
+ multi-Cell-operation-with-Single-Stream-MIMO-not-available,
+ cellSpecificTxDiversityHandlingForMultiCellOperationNotAvailable,
+ multi-Cell-EDCH-operation-not-available
+
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+
+CCTrCH-ID ::= INTEGER (0..15)
+
+Cell-Capability-Container ::= BIT STRING (SIZE (128))
+-- First bit: Cell Specific Tx Diversity Handling For Multi Cell Operation Capability
+-- Second bit: Multi Cell and MIMO Capability
+-- Third bit: Multi Cell and Single Stream MIMO Capability
+-- Fourth bit: Multi Cell E-DCH Capability
+-- Fifth bit: Separate Iub Transport Bearer Capability
+-- Sixth bit: E-DCH UL Flow Multiplexing Capability
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+Cell-ERNTI-Status-Information ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF Cell-ERNTI-Status-Information-Item
+
+Cell-ERNTI-Status-Information-Item ::= SEQUENCE {
+ c-ID C-ID,
+ vacant-ERNTI Vacant-ERNTI,
+ ...
+}
+
+Vacant-ERNTI ::= SEQUENCE (SIZE (1..maxERNTItoRelease)) OF E-RNTI
+
+
+CellParameterID ::= INTEGER (0..127,...)
+
+CellPortionID ::= INTEGER (0..maxNrOfCellPortionsPerCell-1,...)
+
+CellPortionLCRID ::= INTEGER (0..maxNrOfCellPortionsPerCellLCR-1,...)
+
+CellPortion-CapabilityLCR ::= ENUMERATED {
+ cell-portion-capable,
+ cell-portion-non-capable
+}
+
+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)
+
+ChipOffset ::= INTEGER (0..38399)
+-- Unit Chip
+
+C-ID ::= INTEGER (0..65535)
+
+Closedlooptimingadjustmentmode ::= ENUMERATED {
+ adj-1-slot,
+ adj-2-slot,
+ ...
+}
+
+CodeRate ::= INTEGER (0..63)
+
+CodeRate-short ::= INTEGER (0..10)
+
+
+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 ::= {
+ ...
+}
+
+
+Common-EDCH-Capability ::= ENUMERATED {
+ common-EDCH-capable,
+ common-EDCH-non-capable
+}
+
+Common-E-DCH-HSDPCCH-Capability ::= ENUMERATED {
+ hSDPCCH-non-capable,
+ aCK-NACK-capable,
+ aCK-NACK-CQI-capable
+}
+
+Common-EDCH-System-InformationFDD ::= SEQUENCE {
+ common-E-DCH-UL-DPCH-Information Common-E-DCH-UL-DPCH-InfoItem OPTIONAL,
+ common-E-DCH-EDPCH-Information Common-E-DCH-EDPCH-InfoItem OPTIONAL,
+ common-E-DCH-Information Common-E-DCH-InfoItem OPTIONAL,
+ common-E-DCH-HSDPCCH-Information Common-E-DCH-HSDPCCH-InfoItem OPTIONAL,
+ common-E-DCH-Preamble-Control-Information Common-E-DCH-Preamble-Control-InfoItem OPTIONAL,
+ common-E-DCH-FDPCH-Information Common-E-DCH-FDPCH-InfoItem OPTIONAL,
+ common-E-DCH-E-AGCH-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber OPTIONAL,
+ common-E-DCH-Resource-Combination-Information Common-E-DCH-Resource-Combination-InfoList OPTIONAL,
+ ul-common-E-DCH-MACflow-Specific-Information Ul-common-E-DCH-MACflow-Specific-InfoList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Common-EDCH-System-InformationFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Common-EDCH-System-InformationFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-RNTI-List-Request CRITICALITY ignore EXTENSION NULL PRESENCE optional},
+ ...
+}
+
+
+Common-E-DCH-UL-DPCH-InfoItem ::= SEQUENCE {
+
+ uL-SIR-Target UL-SIR,
+ dPC-Mode DPC-Mode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-UL-DPCH-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-UL-DPCH-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-EDPCH-InfoItem ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs,
+ ul-PunctureLimit PunctureLimit,
+ e-TFCS-Information E-TFCS-Information,
+ e-TTI E-TTI,
+ e-DPCCH-PO E-DPCCH-PO,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold OPTIONAL,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold OPTIONAL,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-EDPCH-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-EDPCH-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-InfoItem ::= SEQUENCE {
+ e-DCH-Reference-Power-Offset E-DCH-Reference-Power-Offset OPTIONAL,
+ e-DCH-PowerOffset-for-SchedulingInfo E-DCH-PowerOffset-for-SchedulingInfo OPTIONAL,
+ max-EDCH-Resource-Allocation-for-CCCH Max-EDCH-Resource-Allocation-for-CCCH,
+ max-Period-for-Collistion-Resolution Max-Period-for-Collistion-Resolution,
+ max-TB-Sizes Max-TB-Sizes OPTIONAL,
+ common-E-DCH-ImplicitRelease-Indicator BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-HSDPCCH-InfoItem ::= SEQUENCE {
+ ackNackRepetitionFactor AckNack-RepetitionFactor,
+
+ ackPowerOffset Ack-Power-Offset,
+ nackPowerOffset Nack-Power-Offset,
+
+ common-E-DCH-CQI-Info Common-E-DCH-CQI-Info OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-HSDPCCH-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-HSDPCCH-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Common-E-DCH-CQI-Info ::= SEQUENCE {
+ cqiFeedback-CycleK CQI-Feedback-Cycle,
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL,
+ -- This IE shall be present if the CQI Feedback Cycle k is greater than 0
+ cqiPowerOffset CQI-Power-Offset,
+ measurement-Power-Offset Measurement-Power-Offset,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-CQI-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-CQI-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-Preamble-Control-InfoItem ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ common-E-DCH-PreambleSignatures PreambleSignatures,
+ scramblingCodeNumber ScramblingCodeNumber,
+ preambleThreshold PreambleThreshold,
+ e-AI-Indicator E-AI-Indicator OPTIONAL,
+ common-E-DCH-AICH-Information Common-E-DCH-AICH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-Preamble-Control-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-Preamble-Control-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-AICH-Information ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aICH-TransmissionTiming AICH-TransmissionTiming,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ aICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-AICH-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-AICH-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+Common-E-DCH-FDPCH-InfoItem ::= SEQUENCE {
+ f-DPCH-SlotFormat F-DPCH-SlotFormat,
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-FDPCH-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-FDPCH-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Initial-DL-Transmission-Power CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-Maximum-DL-Power CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-Minimum-DL-Power CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+Common-E-DCH-Resource-Combination-InfoList::= SEQUENCE (SIZE (1.. maxNrOfCommonEDCH)) OF Common-E-DCH-Resource-Combination-InfoList-Item
+
+Common-E-DCH-Resource-Combination-InfoList-Item ::= SEQUENCE {
+ soffset Soffset,
+ f-DPCH-DL-Code-Number FDD-DL-ChannelisationCodeNumber,
+ ul-DPCH-ScramblingCode UL-ScramblingCode,
+ e-RGCH-E-HICH-Channelisation-Code FDD-DL-ChannelisationCodeNumber,
+ e-RGCH-Signature-Sequence E-RGCH-Signature-Sequence OPTIONAL,
+ e-HICH-Signature-Sequence E-HICH-Signature-Sequence,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-Resource-Combination-InfoList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-Resource-Combination-InfoList-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Ul-common-E-DCH-MACflow-Specific-InfoList ::= SEQUENCE (SIZE (1..maxNrOfCommonMACFlows)) OF Ul-common-E-DCH-MACflow-Specific-InfoList-Item
+
+Ul-common-E-DCH-MACflow-Specific-InfoList-Item ::= SEQUENCE {
+ ul-Common-MACFlowID Common-MACFlow-ID,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ tnlQos TnlQos OPTIONAL,
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ bundlingModeIndicator BundlingModeIndicator OPTIONAL,
+ common-E-DCH-MACdFlow-Specific-Information Common-E-DCH-MACdFlow-Specific-InfoList,
+ iE-Extensions ProtocolExtensionContainer { { Ul-common-E-DCH-MACflow-Specific-InfoList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ul-common-E-DCH-MACflow-Specific-InfoList-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-MACdFlow-Specific-InfoList::= SEQUENCE (SIZE (1.. maxNrOfEDCHMACdFlows)) OF Common-E-DCH-MACdFlow-Specific-InfoList-Item
+
+Common-E-DCH-MACdFlow-Specific-InfoList-Item ::= SEQUENCE {
+ common-e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ maximum-Number-of-Retransmissions-For-E-DCH Maximum-Number-of-Retransmissions-For-E-DCH,
+ eDCH-HARQ-PO-FDD E-DCH-HARQ-PO-FDD,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ common-E-DCHLogicalChannelInformation Common-E-DCH-LogicalChannel-InfoList,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-MACdFlow-Specific-InfoList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-MACdFlow-Specific-InfoList-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-LogicalChannel-InfoList::= SEQUENCE (SIZE (1.. maxNoOfLogicalChannels)) OF Common-E-DCH-LogicalChannel-InfoList-Item
+
+Common-E-DCH-LogicalChannel-InfoList-Item ::= SEQUENCE {
+ logicalChannelId LogicalChannelID,
+ maximumMACcPDU-SizeExtended MAC-PDU-SizeExtended,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-LogicalChannel-InfoList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-LogicalChannel-InfoList-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-schedulingPriorityIndicator CRITICALITY ignore EXTENSION SchedulingPriorityIndicator PRESENCE optional},
+ ...
+}
+
+
+Common-EDCH-System-Information-ResponseFDD ::= SEQUENCE {
+ ul-common-E-DCH-MACflow-Specific-InfoResponse Ul-common-E-DCH-MACflow-Specific-InfoResponseList,
+ serving-Grant-Value E-Serving-Grant-Value,
+ iE-Extensions ProtocolExtensionContainer { { Common-EDCH-System-Information-ResponseFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-EDCH-System-Information-ResponseFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-E-RNTI-List CRITICALITY ignore EXTENSION E-RNTI-List PRESENCE optional},
+ ...
+}
+
+E-RNTI-List ::= SEQUENCE (SIZE (1..maxofERNTI)) OF E-RNTI
+
+Ul-common-E-DCH-MACflow-Specific-InfoResponseList ::= SEQUENCE (SIZE (1..maxNrOfCommonMACFlows)) OF Ul-common-E-DCH-MACflow-Specific-InfoResponseList-Item
+
+Ul-common-E-DCH-MACflow-Specific-InfoResponseList-Item ::= SEQUENCE {
+ ul-Common-MACFlowID Common-MACFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Ul-common-E-DCH-MACflow-Specific-InfoResponseList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ul-common-E-DCH-MACflow-Specific-InfoResponseList-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-MACFlows-to-DeleteFDD ::= SEQUENCE (SIZE (1.. maxNrOfCommonMACFlows)) OF Common-MACFlows-to-DeleteFDD-Item
+
+Common-MACFlows-to-DeleteFDD-Item ::= SEQUENCE {
+ common-MACFlow-ID Common-MACFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { Common-MACFlows-to-DeleteFDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-MACFlows-to-DeleteFDD-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-MACFlow-ID ::= INTEGER (0..maxNrOfCommonMACFlows-1)
+
+CommonMACFlow-Specific-InfoList ::= SEQUENCE (SIZE (1.. maxNrOfCommonMACFlows)) OF CommonMACFlow-Specific-InfoItem
+
+CommonMACFlow-Specific-InfoItem ::= SEQUENCE {
+ common-MACFlow-Id Common-MACFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ tnl-qos TnlQos OPTIONAL,
+ common-MACFlow-PriorityQueue-Information Common-MACFlow-PriorityQueue-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CommonMACFlow-Specific-InfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CommonMACFlow-Specific-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportBearerRequestIndicator CRITICALITY ignore EXTENSION TransportBearerRequestIndicator PRESENCE optional},
+ -- This IE should not be contained if the MAC flow is setup in procedure, and it should be contained if the MAC flow is modified in procedure.
+ ...
+}
+
+
+CommonMACFlow-Specific-InfoList-Response ::= SEQUENCE (SIZE (1..maxNrOfCommonMACFlows)) OF CommonMACFlow-Specific-InfoItem-Response
+
+CommonMACFlow-Specific-InfoItem-Response ::= SEQUENCE {
+ commonMACFlow-ID Common-MACFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ hSDSCH-Initial-Capacity-Allocation HSDSCH-Initial-Capacity-Allocation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CommonMACFlow-Specific-InfoItem-Response-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonMACFlow-Specific-InfoItem-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-MACFlow-PriorityQueue-Information ::= SEQUENCE (SIZE (1..maxNrOfcommonMACQueues)) OF Common-MACFlow-PriorityQueue-Item
+
+Common-MACFlow-PriorityQueue-Item ::= SEQUENCE {
+ priority-Queue-Information-for-Enhanced-FACH Priority-Queue-Information-for-Enhanced-FACH-PCH,
+ iE-Extensions ProtocolExtensionContainer { { Common-MACFlow-PriorityQueue-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Common-MACFlow-PriorityQueue-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+CommonMeasurementAccuracy ::= CHOICE {
+ tUTRANGPSMeasurementAccuracyClass TUTRANGPSAccuracyClass,
+ ...,
+ tUTRANGANSSMeasurementAccuracyClass TUTRANGANSSAccuracyClass
+}
+
+CommonMeasurementType ::= ENUMERATED {
+ received-total-wide-band-power,
+ transmitted-carrier-power,
+ acknowledged-prach-preambles,
+ ul-timeslot-iscp,
+ notUsed-1-acknowledged-PCPCH-access-preambles,
+ notUsed-2-detected-PCPCH-access-preambles,
+ ...,
+ uTRAN-GPS-Timing-of-Cell-Frames-for-UE-Positioning,
+ sFN-SFN-Observed-Time-Difference,
+ transmittedCarrierPowerOfAllCodesNotUsedForHSTransmission,
+ hS-DSCH-Required-Power,
+ hS-DSCH-Provided-Bit-Rate,
+ received-total-wide-band-power-for-cellPortion,
+ transmitted-carrier-power-for-cellPortion,
+ transmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmission-for-cellPortion,
+ upPTS-Interference,
+ dLTransmissionBranchLoad,
+ hS-DSCH-Required-Power-for-cell-portion,
+ hS-DSCH-Provided-Bit-Rate-for-cell-portion,
+ e-DCH-Provided-Bit-Rate,
+ e-DCH-Non-serving-Relative-Grant-Down-Commands,
+ received-Scheduled-EDCH-Power-Share,
+ received-Scheduled-EDCH-Power-Share-for-cellPortion,
+ uTRAN-GANSS-timing-of-cell-frames-for-UE-Positioning,
+ eDCH-RACH-report,
+ transmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmission-for-cellPortion,
+ ul-timeslot-iscp-for-cellPortion,
+ upPTS-Interference-for-cellPortion,
+ e-DCH-Provided-Bit-Rate-for-cellPortion
+
+}
+
+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,
+ notUsed-1-acknowledged-PCPCH-access-preambles NULL,
+ notUsed-2-detected-PCPCH-access-preambles NULL,
+ ...,
+ 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-TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmission CRITICALITY ignore TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue PRESENCE mandatory }|
+ { ID id-HS-DSCHRequiredPowerValueInformation CRITICALITY ignore TYPE HS-DSCHRequiredPower PRESENCE mandatory }|
+ { ID id-HS-DSCHProvidedBitRateValueInformation CRITICALITY ignore TYPE HS-DSCHProvidedBitRate PRESENCE mandatory }|
+ { ID id-Transmitted-Carrier-Power-For-CellPortion-Value CRITICALITY ignore TYPE Transmitted-Carrier-Power-For-CellPortion-Value PRESENCE mandatory }|
+ { ID id-Received-total-wide-band-power-For-CellPortion-Value CRITICALITY ignore TYPE Received-total-wide-band-power-For-CellPortion-Value PRESENCE mandatory }|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue CRITICALITY ignore TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue PRESENCE mandatory }|
+ { ID id-UpPTSInterferenceValue CRITICALITY ignore TYPE UpPTSInterferenceValue PRESENCE mandatory }|
+ { ID id-DLTransmissionBranchLoadValue CRITICALITY ignore TYPE DLTransmissionBranchLoadValue PRESENCE mandatory }|
+ { ID id-HS-DSCHRequiredPowerValueInformation-For-CellPortion CRITICALITY ignore TYPE HS-DSCHRequiredPowerValueInformation-For-CellPortion PRESENCE mandatory }|
+ { ID id-HS-DSCHProvidedBitRateValueInformation-For-CellPortion CRITICALITY ignore TYPE HS-DSCHProvidedBitRateValueInformation-For-CellPortion PRESENCE mandatory }|
+ { ID id-E-DCHProvidedBitRateValueInformation CRITICALITY ignore TYPE E-DCHProvidedBitRate PRESENCE mandatory }|
+ { ID id-E-DCH-Non-serving-Relative-Grant-Down-CommandsValue CRITICALITY ignore TYPE E-DCH-Non-serving-Relative-Grant-Down-Commands PRESENCE mandatory }|
+ { ID id-Received-Scheduled-EDCH-Power-Share-Value CRITICALITY ignore TYPE Received-Scheduled-EDCH-Power-Share-Value PRESENCE mandatory }|
+ { ID id-Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value CRITICALITY ignore TYPE Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value PRESENCE mandatory }|
+ { ID id-TUTRANGANSSMeasurementValueInformation CRITICALITY ignore TYPE TUTRANGANSSMeasurementValueInformation PRESENCE mandatory }|
+ { ID id-EDCH-RACH-Report-Value CRITICALITY ignore TYPE EDCH-RACH-Report-Value PRESENCE mandatory }|
+ -- FDD only
+ { ID id-Transmitted-Carrier-Power-For-CellPortion-ValueLCR CRITICALITY ignore TYPE Transmitted-Carrier-Power-For-CellPortion-ValueLCR PRESENCE mandatory }|
+ { ID id-Received-total-wide-band-power-For-CellPortion-ValueLCR CRITICALITY ignore TYPE Received-total-wide-band-power-For-CellPortion-ValueLCR PRESENCE mandatory }|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue CRITICALITY ignore TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue PRESENCE mandatory }|
+ { ID id-UL-TimeslotISCP-For-CellPortion-Value CRITICALITY ignore TYPE UL-TimeslotISCP-For-CellPortion-Value PRESENCE mandatory }|
+ { ID id-HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR CRITICALITY ignore TYPE HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR PRESENCE mandatory }|
+ { ID id-HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR CRITICALITY ignore TYPE HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR PRESENCE mandatory }|
+ { ID id-E-DCHProvidedBitRateValueInformation-For-CellPortion CRITICALITY ignore TYPE E-DCHProvidedBitRateValueInformation-For-CellPortion PRESENCE mandatory }|
+ { ID id-UpPTSInterference-For-CellPortion-Value CRITICALITY ignore TYPE UpPTSInterference-For-CellPortion-Value 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)
+
+CommonPhysicalChannelID768 ::= INTEGER (0..511)
+
+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 ::= {
+ ...
+}
+
+Common-PhysicalChannel-Status-Information768 ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { Common-PhysicalChannel-Status-Information768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-PhysicalChannel-Status-Information768-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 ::= {
+ { ID id-BroadcastCommonTransportBearerIndication CRITICALITY ignore EXTENSION BroadcastCommonTransportBearerIndication PRESENCE optional }|
+ { ID id-IPMulticastDataBearerIndication CRITICALITY ignore EXTENSION IPMulticastDataBearerIndication PRESENCE optional },
+ ...
+}
+
+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
+
+ContinuousPacketConnectivityDTX-DRX-Capability ::= ENUMERATED {
+ continuous-Packet-Connectivity-DTX-DRX-capable,
+ continuous-Packet-Connectivity-DTX-DRX-non-capable
+}
+
+ContinuousPacketConnectivityDTX-DRX-Information ::= SEQUENCE {
+ uE-DTX-DRX-Offset UE-DTX-DRX-Offset,
+ enabling-Delay Enabling-Delay,
+ dTX-Information DTX-Information ,
+ dRX-Information DRX-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivityDTX-DRX-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivityDTX-DRX-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ContinuousPacketConnectivityDTX-DRX-Information-to-Modify ::= SEQUENCE {
+ uE-DTX-DRX-Offset UE-DTX-DRX-Offset OPTIONAL,
+ enabling-Delay Enabling-Delay OPTIONAL,
+ dTX-Information-to-Modify DTX-Information-to-Modify OPTIONAL,
+ dRX-Information-to-Modify DRX-Information-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivityDTX-DRX-Information-to-Modify-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivityDTX-DRX-Information-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ContinuousPacketConnectivityHS-SCCH-less-Capability ::= ENUMERATED {
+ continuous-Packet-Connectivity-HS-SCCH-less-capable,
+ continuous-Packet-Connectivity-HS-SCCH-less-capable-non-capable
+}
+
+
+ContinuousPacketConnectivityHS-SCCH-less-Information ::= SEQUENCE (SIZE (1..maxNrOfHS-DSCH-TBSs-HS-SCCHless)) OF ContinuousPacketConnectivityHS-SCCH-less-InformationItem
+
+ContinuousPacketConnectivityHS-SCCH-less-InformationItem ::= SEQUENCE {
+ transport-Block-Size-Index Transport-Block-Size-Index,
+ hSPDSCH-Second-Code-Support HSPDSCH-Second-Code-Support,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivityHS-SCCH-less-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivityHS-SCCH-less-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ContinuousPacketConnectivityHS-SCCH-less-Information-Response ::= SEQUENCE {
+ hSPDSCH-First-Code-Index HSPDSCH-First-Code-Index,
+ hSPDSCH-Second-Code-Index HSPDSCH-Second-Code-Index OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivityHS-SCCH-less-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivityHS-SCCH-less-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ControlGAP ::= INTEGER (1..255)
+
+CPC-Information ::= SEQUENCE {
+ continuousPacketConnectivityDTX-DRX-Information ContinuousPacketConnectivityDTX-DRX-Information OPTIONAL,
+ continuousPacketConnectivityDTX-DRX-Information-to-Modify ContinuousPacketConnectivityDTX-DRX-Information-to-Modify OPTIONAL,
+ continuousPacketConnectivityHS-SCCH-less-Information ContinuousPacketConnectivityHS-SCCH-less-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPC-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPC-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Deactivate-Indicator CRITICALITY reject EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Deactivate-Indicator PRESENCE optional},
+ ...
+}
+
+ContinuousPacketConnectivityHS-SCCH-less-Deactivate-Indicator ::= NULL
+
+CQI-DTX-Timer ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128, v256, v512, infinity}
+ -- Unit subframe
+
+
+CQI-Feedback-Cycle ::= ENUMERATED {v0, v2, v4, v8, v10, v20, v40, v80, v160,..., v16, v32, v64}
+
+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)
+
+
+Common-EDCH-System-InformationLCR ::= SEQUENCE {
+ ul-common-E-DCH-MACflow-Specific-InformationLCR Ul-common-E-DCH-MACflow-Specific-InfoListLCR OPTIONAL,
+ common-E-PUCH-InformationLCR Common-E-PUCH-InformationLCR OPTIONAL,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD OPTIONAL,
+ maximum-Number-of-Retransmissions-For-SchedulingInfo Maximum-Number-of-Retransmissions-For-E-DCH OPTIONAL,
+ eDCH-Retransmission-Timer-SchedulingInfo E-DCH-MACdFlow-Retransmission-Timer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Common-EDCH-System-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Common-EDCH-System-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UL-Synchronisation-Parameters-For-FACHLCR CRITICALITY reject EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }|
+{ ID id-PhysicalChannelID-for-CommonERNTI-RequestedIndicator CRITICALITY ignore EXTENSION PhysicalChannelID-for-CommonERNTI-RequestedIndicator PRESENCE optional},
+ ...
+}
+
+Common-E-PUCH-InformationLCR ::= SEQUENCE {
+ minCR CodeRate,
+ maxCR CodeRate,
+ harqInfo HARQ-Info-for-E-DCH,
+ pRXdes-base-perURAFCN PRXdes-base-perURAFCN OPTIONAL,
+ e-PUCH-TPC-StepSize TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ e-AGCH-TPC-StepSize TDD-TPC-DownlinkStepSize OPTIONAL,
+ e-PUCH-PowerControlGAP ControlGAP OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-PUCH-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Common-E-PUCH-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRXdes-base-perURAFCN ::= SEQUENCE (SIZE (1.. maxFrequencyinCell)) OF PRXdes-base-Item
+
+PRXdes-base-Item ::= SEQUENCE {
+ pRXdes-base PRXdes-base,
+ uARFCN UARFCN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PRXdes-base-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRXdes-base-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Ul-common-E-DCH-MACflow-Specific-InfoListLCR ::= SEQUENCE (SIZE (1..maxNrOfCommonMACFlows)) OF Ul-common-E-DCH-MACflow-Specific-InfoList-ItemLCR
+
+Ul-common-E-DCH-MACflow-Specific-InfoList-ItemLCR ::= SEQUENCE {
+ ul-Common-MACFlowIDLCR Common-MACFlow-ID-LCR,
+ transportBearerRequestIndicator TransportBearerRequestIndicator OPTIONAL,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ tnlQos TnlQos OPTIONAL,
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator OPTIONAL,
+ common-E-DCH-MACdFlow-Specific-InformationLCR Common-E-DCH-MACdFlow-Specific-InfoListLCR OPTIONAL,
+ uARFCN UARFCN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Ul-common-E-DCH-MACflow-Specific-InfoList-ItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ul-common-E-DCH-MACflow-Specific-InfoList-ItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-MACdFlow-Specific-InfoListLCR ::= SEQUENCE (SIZE (1.. maxNrOfEDCHMACdFlowsLCR)) OF Common-E-DCH-MACdFlow-Specific-InfoList-ItemLCR
+
+Common-E-DCH-MACdFlow-Specific-InfoList-ItemLCR ::= SEQUENCE {
+ common-e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID-LCR,
+ maximum-Number-of-Retransmissions-For-E-DCH Maximum-Number-of-Retransmissions-For-E-DCH OPTIONAL,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ common-E-DCHLogicalChannelInformation Common-E-DCH-LogicalChannel-InfoList OPTIONAL,
+ eDCH-HARQ-PO-TDD E-DCH-HARQ-PO-TDD OPTIONAL,
+ eDCH-MACdFlow-Retransmission-Timer E-DCH-MACdFlow-Retransmission-Timer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-MACdFlow-Specific-InfoList-ItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-MACdFlow-Specific-InfoList-ItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+Common-EDCH-System-Information-ResponseLCR ::= SEQUENCE {
+ ul-common-E-DCH-MACflow-Specific-InfoResponseLCR Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR OPTIONAL,
+ common-E-AGCH-ListLCR Common-E-AGCH-ListLCR OPTIONAL,
+ common-E-HICH-ListLCR Common-E-HICH-ListLCR OPTIONAL,
+ common-E-RNTI-Info-LCR Common-E-RNTI-Info-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Common-EDCH-System-Information-ResponseLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-EDCH-System-Information-ResponseLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR-Ext CRITICALITY ignore EXTENSION Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR-Ext PRESENCE optional},
+ ...
+}
+
+Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR ::= SEQUENCE (SIZE (1..maxNrOfCommonMACFlows)) OF Ul-common-E-DCH-MACflow-Specific-InfoResponseList-ItemLCR
+
+Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR-Ext ::= SEQUENCE (SIZE (1..maxNrOfCommonMACFlowsLCRExt)) OF Ul-common-E-DCH-MACflow-Specific-InfoResponseList-ItemLCR
+
+Ul-common-E-DCH-MACflow-Specific-InfoResponseList-ItemLCR ::= SEQUENCE {
+ ul-Common-MACFlowID-LCR Common-MACFlow-ID-LCR,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ uARFCN UARFCN OPTIONAL,
+ -- the IE is not used.
+ iE-Extensions ProtocolExtensionContainer { { Ul-common-E-DCH-MACflow-Specific-InfoResponseList-ItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ul-common-E-DCH-MACflow-Specific-InfoResponseList-ItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-AGCH-ListLCR ::= SEQUENCE (SIZE (1.. maxNrOfEAGCHsLCR)) OF Common-E-AGCH-ItemLCR
+
+Common-E-AGCH-ItemLCR ::= SEQUENCE {
+ e-AGCH-ID E-AGCH-Id,
+ uARFCN UARFCN OPTIONAL,
+ -- the IE is not used.
+ iE-Extensions ProtocolExtensionContainer { { Common-E-AGCH-ItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-AGCH-ItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-HICH-ListLCR ::= SEQUENCE (SIZE (1.. maxNrOfEHICHsLCR)) OF Common-E-HICH-ItemLCR
+
+Common-E-HICH-ItemLCR ::= SEQUENCE {
+ eI EI,
+ e-HICH-ID E-HICH-ID-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-HICH-ItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-HICH-ItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-RNTI-Info-LCR ::= SEQUENCE (SIZE (1.. maxnrofERUCCHsLCR)) OF Common-E-RNTI-Info-ItemLCR
+
+Common-E-RNTI-Info-ItemLCR ::= SEQUENCE {
+ starting-E-RNTI E-RNTI,
+ number-of-Group INTEGER(1..32),
+ number-of-e-E-RNTI-perGroup INTEGER(1..7),
+ iE-Extensions ProtocolExtensionContainer { { Common-E-RNTI-Info-ItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-E-RNTI-Info-ItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-AssociatedPhsicalChannelID CRITICALITY reject EXTENSION CommonPhysicalChannelID PRESENCE optional},
+ ...
+}
+
+Common-MACFlows-to-DeleteLCR ::= SEQUENCE (SIZE (1.. maxNrOfCommonMACFlowsLCR)) OF Common-MACFlows-to-DeleteLCR-Item
+
+Common-MACFlows-to-DeleteLCR-Item ::= SEQUENCE {
+ common-MACFlow-ID-LCR Common-MACFlow-ID-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Common-MACFlows-to-DeleteLCR-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-MACFlows-to-DeleteLCR-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+Common-MACFlow-ID-LCR ::= INTEGER (0..maxNrOfCommonMACFlowsLCR-1)
+
+CommonMACFlow-Specific-InfoListLCR ::= SEQUENCE (SIZE (1.. maxNrOfCommonMACFlowsLCR)) OF CommonMACFlow-Specific-InfoItemLCR
+
+CommonMACFlow-Specific-InfoItemLCR ::= SEQUENCE {
+ common-MACFlow-ID-LCR Common-MACFlow-ID-LCR,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ tnl-qos TnlQos OPTIONAL,
+ common-MACFlow-PriorityQueue-InformationLCR Common-MACFlow-PriorityQueue-Information OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator OPTIONAL,
+ uARFCN UARFCN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CommonMACFlow-Specific-InfoItemLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CommonMACFlow-Specific-InfoItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+Common-H-RNTI-InformationLCR ::= SEQUENCE (SIZE (1.. maxNoOfCommonH-RNTI)) OF Common-H-RNTI-InfoItemLCR
+
+Common-H-RNTI-InfoItemLCR ::= SEQUENCE {
+ common-H-RNTI HSDSCH-RNTI,
+ iE-Extensions ProtocolExtensionContainer { { Common-H-RNTI-InfoItemLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Common-H-RNTI-InfoItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Sync-InformationLCR ::= SEQUENCE {
+ t-SYNC T-SYNC,
+ t-PROTECT T-PROTECT,
+ n-PROTECT N-PROTECT,
+ iE-Extensions ProtocolExtensionContainer { { Sync-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Sync-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CommonMACFlow-Specific-InfoList-ResponseLCR ::= SEQUENCE (SIZE (1..maxNrOfCommonMACFlows)) OF CommonMACFlow-Specific-InfoItem-ResponseLCR
+
+CommonMACFlow-Specific-InfoItem-ResponseLCR ::= SEQUENCE {
+ common-MACFlow-ID-LCR Common-MACFlow-ID-LCR,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ hSDSCH-Initial-Capacity-Allocation HSDSCH-Initial-Capacity-Allocation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CommonMACFlow-Specific-InfoItem-ResponseLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonMACFlow-Specific-InfoItem-ResponseLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+CPC-InformationLCR ::= SEQUENCE {
+ continuousPacketConnectivity-DRX-InformationLCR ContinuousPacketConnectivity-DRX-InformationLCR OPTIONAL,
+ continuousPacketConnectivity-DRX-Information-to-Modify-LCR ContinuousPacketConnectivity-DRX-Information-to-Modify-LCR OPTIONAL,
+ hS-DSCH-Semi-PersistentScheduling-Information-LCR HS-DSCH-Semi-PersistentScheduling-Information-LCR OPTIONAL,
+ hS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR HS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR OPTIONAL,
+ hS-DSCH-SPS-Deactivate-Indicator-LCR NULL OPTIONAL,
+ e-DCH-Semi-PersistentScheduling-Information-LCR E-DCH-Semi-PersistentScheduling-Information-LCR OPTIONAL,
+ e-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR E-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR OPTIONAL,
+ e-DCH-SPS-Deactivate-Indicator-LCR NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPC-InformationLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPC-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-CapabilityLCR ::= ENUMERATED {
+ continuous-Packet-Connectivity-DRX-Capable,
+ continuous-Packet-Connectivity-DRX-Non-Capable
+}
+
+
+ContinuousPacketConnectivity-DRX-InformationLCR ::= SEQUENCE {
+ enabling-Delay Enabling-Delay,
+ hS-SCCH-DRX-Information-LCR HS-SCCH-DRX-Information-LCR,
+ e-AGCH-DRX-Information-LCR E-AGCH-DRX-Information-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivity-DRX-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-DRX-Information-LCR ::= SEQUENCE {
+ hS-SCCH-UE-DRX-Cycle-LCR UE-DRX-Cycle-LCR,
+ hS-SCCH-Inactivity-Threshold-for-UE-DRX-Cycle-LCR Inactivity-Threshold-for-UE-DRX-Cycle-LCR OPTIONAL,
+ hS-SCCH-UE-DRX-Offset-LCR UE-DRX-Offset-LCR,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-DRX-Information-LCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-DRX-Information-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-DRX-Information-LCR ::= CHOICE {
+ sameAsHS-SCCH NULL,
+ e-AGCH-DRX-Parameters E-AGCH-DRX-Parameters,
+ ...
+}
+
+E-AGCH-DRX-Parameters ::= SEQUENCE {
+ e-AGCH-UE-DRX-Cycle-LCR UE-DRX-Cycle-LCR,
+ e-AGCH-UE-Inactivity-Monitor-Threshold E-AGCH-UE-Inactivity-Monitor-Threshold OPTIONAL,
+ e-AGCH-UE-DRX-Offset-LCR UE-DRX-Offset-LCR,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-DRX-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-DRX-Parameters-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-DRX-Cycle-LCR ::= ENUMERATED {v1, v2, v4, v8, v16, v32, v64,...}
+ -- Unit subframe
+
+UE-DRX-Offset-LCR ::= INTEGER (0..63)
+ -- Unit subframe
+
+Inactivity-Threshold-for-UE-DRX-Cycle-LCR ::= ENUMERATED {v1, v2, v4, v8, v16, v32, v64,...}
+ -- Unit subframe
+
+E-AGCH-UE-Inactivity-Monitor-Threshold ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128, v256, v512, infinity,...}
+ -- Unit subframe
+
+ContinuousPacketConnectivity-DRX-Information-to-Modify-LCR ::= SEQUENCE {
+ enabling-Delay Enabling-Delay OPTIONAL,
+ dRX-Information-to-Modify-LCR DRX-Information-to-Modify-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivity-DRX-Information-to-Modify-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-Information-to-Modify-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRX-Information-to-Modify-LCR ::= CHOICE {
+ modify DRX-Information-to-Modify-Items-LCR,
+ deactivate NULL,
+ ...
+}
+
+DRX-Information-to-Modify-Items-LCR ::= SEQUENCE {
+ hS-SCCH-DRX-Information-LCR HS-SCCH-DRX-Information-LCR OPTIONAL,
+ e-AGCH-DRX-Information-LCR E-AGCH-DRX-Information-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DRX-Information-to-Modify-Items-LCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRX-Information-to-Modify-Items-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-Information-ResponseLCR ::= SEQUENCE {
+ enabling-Delay Enabling-Delay OPTIONAL,
+ hS-SCCH-DRX-Information-ResponseLCR HS-SCCH-DRX-Information-ResponseLCR OPTIONAL,
+ e-AGCH-DRX-Information-ResponseLCR E-AGCH-DRX-Information-ResponseLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivity-DRX-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-Information-ResponseLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-DRX-Information-ResponseLCR ::= SEQUENCE {
+ hS-SCCH-UE-DRX-Cycle-LCR UE-DRX-Cycle-LCR OPTIONAL,
+ hS-SCCH-Inactivity-Threshold-for-UE-DRX-Cycle-LCR Inactivity-Threshold-for-UE-DRX-Cycle-LCR OPTIONAL,
+ hS-SCCH-UE-DRX-Offset-LCR UE-DRX-Offset-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-DRX-Information-ResponseLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-DRX-Information-ResponseLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-DRX-Information-ResponseLCR ::= CHOICE {
+ sameAsHS-SCCH NULL,
+ e-AGCH-DRX-Parameters-Response E-AGCH-DRX-Parameters-Response,
+ ...
+}
+
+E-AGCH-DRX-Parameters-Response ::= SEQUENCE {
+ e-AGCH-UE-DRX-Cycle-LCR UE-DRX-Cycle-LCR OPTIONAL,
+ e-AGCH-UE-Inactivity-Monitor-Threshold E-AGCH-UE-Inactivity-Monitor-Threshold OPTIONAL,
+ e-AGCH-UE-DRX-Offset-LCR UE-DRX-Offset-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-DRX-Parameters-Response-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-DRX-Parameters-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- ==========================================
+-- 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-Indicator-For-E-DCH-HSDPA-Operation ::= ENUMERATED {
+ dch-not-present
+}
+
+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 ::= {
+ { ID id-TransportBearerNotSetupIndicator CRITICALITY ignore EXTENSION TransportBearerNotSetupIndicator PRESENCE optional }, -- FDD only
+ ...
+}
+
+DCH-MeasurementOccasion-Information ::= SEQUENCE (SIZE (1.. maxNrOfDCHMeasurementOccasionPatternSequence)) OF DchMeasurementOccasionInformation-Item
+
+DchMeasurementOccasionInformation-Item ::= SEQUENCE {
+ pattern-Sequence-Identifier Pattern-Sequence-Identifier,
+ status-Flag Status-Flag,
+ measurement-Occasion-Pattern-Sequence-parameters Measurement-Occasion-Pattern-Sequence-parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-MeasurementOccasion-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DCH-MeasurementOccasion-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Measurement-Occasion-Pattern-Sequence-parameters ::= SEQUENCE {
+ measurement-Occasion-Pattern-Sequence-parameters-k INTEGER(1..9),
+ measurement-Occasion-Pattern-Sequence-parameters-offset INTEGER(0..511),
+ measurement-Occasion-Pattern-Sequence-parameters-M-Length INTEGER(1..512),
+ measurement-Occasion-Pattern-Sequence-parameters-Timeslot-Bitmap BIT STRING (SIZE (7)),
+ iE-Extensions ProtocolExtensionContainer { { Measurement-Occasion-Pattern-Sequence-parameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Measurement-Occasion-Pattern-Sequence-parameters-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 ::= {
+ {ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional},
+ ...
+}
+
+
+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,
+ rx-timing-deviation-768,
+ rx-timing-deviation-384-extended,
+ best-Cell-PortionsLCR
+
+}
+
+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 }|
+ { ID id-Rx-Timing-Deviation-Value-768 CRITICALITY reject TYPE Rx-Timing-Deviation-Value-768 PRESENCE mandatory }|
+ { ID id-Rx-Timing-Deviation-Value-384-ext CRITICALITY reject TYPE Rx-Timing-Deviation-Value-384-ext PRESENCE mandatory }|
+ { ID id-Extended-Round-Trip-Time-Value CRITICALITY reject TYPE Extended-Round-Trip-Time-Value PRESENCE mandatory }|
+ { ID id-Best-Cell-Portions-ValueLCR CRITICALITY reject TYPE Best-Cell-Portions-ValueLCR 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 ::= {
+ { ID id-ExtendedPropagationDelay CRITICALITY reject EXTENSION ExtendedPropagationDelay PRESENCE mandatory }, --FDD Only
+ ...
+}
+
+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
+}
+
+DeltaSIR ::= INTEGER (0..30)
+-- Unit dB, Step 0.1 dB, Range 0..3 dB.
+
+DGANSSCorrections ::= SEQUENCE {
+ dGANSS-ReferenceTime INTEGER(0..119),
+ dGANSS-Information DGANSS-Information,
+ ie-Extensions ProtocolExtensionContainer { { DGANSSCorrections-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSSCorrections-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGANSS-Corrections-Req ::= SEQUENCE {
+ dGANSS-Signal-ID BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-Corrections-Req-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSS-Corrections-Req-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSS-ID CRITICALITY ignore EXTENSION GANSS-ID PRESENCE optional},
+ ...
+}
+
+DGANSS-Information ::= SEQUENCE (SIZE (1..maxSgnType)) OF DGANSS-InformationItem
+
+DGANSS-InformationItem ::= SEQUENCE {
+ gANSS-SignalId GANSS-Signal-ID OPTIONAL,
+ gANSS-StatusHealth GANSS-StatusHealth,
+-- The following IE shall be present if the Status Health IE value is not equal to "no data" or "invalid data"
+ dGANSS-SignalInformation DGANSS-SignalInformation OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-InformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSS-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGANSS-SignalInformation ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF DGANSS-SignalInformationItem
+
+DGANSS-SignalInformationItem ::= SEQUENCE {
+ satId INTEGER(0..63),
+ gANSS-iod BIT STRING (SIZE (10)),
+ udre UDRE,
+ ganss-prc INTEGER(-2047..2047),
+ ganss-rrc INTEGER(-127..127),
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-SignalInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSS-SignalInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-DGNSS-ValidityPeriod CRITICALITY ignore EXTENSION DGNSS-ValidityPeriod PRESENCE optional},
+ ...
+}
+
+DGANSSThreshold ::= SEQUENCE {
+ pRCDeviation PRCDeviation,
+ ie-Extensions ProtocolExtensionContainer { { DGANSSThreshold-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSSThreshold-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGNSS-ValidityPeriod ::= SEQUENCE {
+ udreGrowthRate UDREGrowthRate,
+ udreValidityTime UDREValidityTime,
+ iE-Extensions ProtocolExtensionContainer { { DGNSS-ValidityPeriod-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGNSS-ValidityPeriod-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ not-used-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-Timeslot768-Information ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot768-InformationItem
+
+DL-Timeslot768-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-768-Information TDD-DL-Code-768-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot768-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot768-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,...)
+
+DLTransmissionBranchLoadValue ::= INTEGER (0..101,...)
+
+Downlink-Compressed-Mode-Method ::= ENUMERATED {
+ not-Used-puncturing,
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+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 ::= {
+ { ID id-MaxHSDSCH-HSSCCH-Power-per-CELLPORTION CRITICALITY ignore EXTENSION MaxHSDSCH-HSSCCH-Power-per-CELLPORTION PRESENCE optional},
+ ...
+}
+
+MaxHSDSCH-HSSCCH-Power-per-CELLPORTION ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF MaxHSDSCH-HSSCCH-Power-per-CELLPORTION-Item
+
+MaxHSDSCH-HSSCCH-Power-per-CELLPORTION-Item::= SEQUENCE {
+ cellPortionLCRID CellPortionLCRID,
+ maxHSDSCH-HSSCCH-Power MaximumTransmissionPower,
+ iE-Extensions ProtocolExtensionContainer { { MaxHSDSCH-HSSCCH-Power-per-CELLPORTION-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MaxHSDSCH-HSSCCH-Power-per-CELLPORTION-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSPDSCHs)) OF TDD-ChannelisationCode
+
+DPC-Mode ::= ENUMERATED {
+ mode0,
+ mode1,
+ ...
+}
+
+DPCH-ID ::= INTEGER (0..239)
+
+DPCH-ID768 ::= INTEGER (0..479)
+
+DRX-Information ::= SEQUENCE {
+ uE-DRX-Cycle UE-DRX-Cycle,
+ inactivity-Threshold-for-UE-DRX-Cycle Inactivity-Threshold-for-UE-DRX-Cycle,
+ inactivity-Threshold-for-UE-Grant-Monitoring Inactivity-Threshold-for-UE-Grant-Monitoring,
+ uE-DRX-Grant-Monitoring UE-DRX-Grant-Monitoring,
+ iE-Extensions ProtocolExtensionContainer { {DRX-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRX-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRX-Information-to-Modify ::= CHOICE {
+ modify DRX-Information-to-Modify-Items,
+ deactivate NULL,
+ ...
+}
+
+DRX-Information-to-Modify-Items ::= SEQUENCE {
+ uE-DRX-Cycle UE-DRX-Cycle OPTIONAL,
+ inactivity-Threshold-for-UE-DRX-Cycle Inactivity-Threshold-for-UE-DRX-Cycle OPTIONAL,
+ inactivity-Threshold-for-UE-Grant-Monitoring Inactivity-Threshold-for-UE-Grant-Monitoring OPTIONAL,
+ uE-DRX-Grant-Monitoring UE-DRX-Grant-Monitoring OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DRX-Information-to-Modify-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRX-Information-to-Modify-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+DRX-Interruption-by-HS-DSCH ::= ENUMERATED {
+ drx-Interruption-Configured,
+ drx-Interruption-Not-Configured,
+ ...
+}
+
+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-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.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DsField ::= BIT STRING (SIZE (8))
+
+DTX-Cycle-2ms-Items ::= SEQUENCE {
+ uE-DTX-Cycle1-2ms UE-DTX-Cycle1-2ms,
+ uE-DTX-Cycle2-2ms UE-DTX-Cycle2-2ms,
+ mAC-DTX-Cycle-2ms MAC-DTX-Cycle-2ms,
+ iE-Extensions ProtocolExtensionContainer { { DTX-Cycle-2ms-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Cycle-2ms-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Cycle-2ms-to-Modify-Items ::= SEQUENCE {
+ uE-DTX-Cycle1-2ms UE-DTX-Cycle1-2ms,
+ uE-DTX-Cycle2-2ms UE-DTX-Cycle2-2ms,
+ mAC-DTX-Cycle-2ms MAC-DTX-Cycle-2ms,
+ iE-Extensions ProtocolExtensionContainer { { DTX-Cycle-2ms-to-Modify-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Cycle-2ms-to-Modify-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Cycle-10ms-Items ::= SEQUENCE {
+ uE-DTX-Cycle1-10ms UE-DTX-Cycle1-10ms,
+ uE-DTX-Cycle2-10ms UE-DTX-Cycle2-10ms,
+ mAC-DTX-Cycle-10ms MAC-DTX-Cycle-10ms,
+ iE-Extensions ProtocolExtensionContainer { { DTX-Cycle-10ms-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Cycle-10ms-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Cycle-10ms-to-Modify-Items ::= SEQUENCE {
+ uE-DTX-Cycle1-10ms UE-DTX-Cycle1-10ms,
+ uE-DTX-Cycle2-10ms UE-DTX-Cycle2-10ms,
+ mAC-DTX-Cycle-10ms MAC-DTX-Cycle-10ms,
+ iE-Extensions ProtocolExtensionContainer { { DTX-Cycle-10ms-to-Modify-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Cycle-10ms-to-Modify-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Information ::= SEQUENCE {
+ e-DCH-TTI-Length E-DCH-TTI-Length,
+ inactivity-Threshold-for-UE-DTX-Cycle2 Inactivity-Threshold-for-UE-DTX-Cycle2,
+ uE-DTX-Long-Preamble UE-DTX-Long-Preamble,
+ mAC-Inactivity-Threshold MAC-Inactivity-Threshold ,
+ cQI-DTX-Timer CQI-DTX-Timer,
+ uE-DPCCH-burst1 UE-DPCCH-burst1,
+ uE-DPCCH-burst2 UE-DPCCH-burst2,
+ iE-Extensions ProtocolExtensionContainer { {DTX-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+DTX-Information-to-Modify ::= CHOICE {
+ modify DTX-Information-to-Modify-Items,
+ deactivate NULL,
+ ...
+}
+
+DTX-Information-to-Modify-Items ::= SEQUENCE {
+ e-DCH-TTI-Length-to-Modify E-DCH-TTI-Length-to-Modify OPTIONAL,
+ inactivity-Threshold-for-UE-DTX-Cycle2 Inactivity-Threshold-for-UE-DTX-Cycle2 OPTIONAL,
+ uE-DTX-Long-Preamble UE-DTX-Long-Preamble OPTIONAL,
+ mAC-Inactivity-Threshold MAC-Inactivity-Threshold OPTIONAL,
+ cQI-DTX-Timer CQI-DTX-Timer OPTIONAL,
+ uE-DPCCH-burst1 UE-DPCCH-burst1 OPTIONAL,
+ uE-DPCCH-burst2 UE-DPCCH-burst2 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DTX-Information-to-Modify-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Information-to-Modify-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Dual-Band-Capability ::= ENUMERATED {
+ dual-Band-Capable,
+ dual-Band-non-Capable
+}
+
+Dual-Band-Capability-Info::= SEQUENCE {
+ dual-Band-Capability Dual-Band-Capability,
+ possible-Secondary-Serving-Cell-List Possible-Secondary-Serving-Cell-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Dual-Band-Capability-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Dual-Band-Capability-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+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
+-- ==========================================
+
+E-AGCH-Table-Choice ::= ENUMERATED{table16B, table16B-1, ...}
+
+E-AGCH-FDD-Code-Information ::= CHOICE {
+ replace E-AGCH-FDD-Code-List,
+ remove NULL,
+ ...
+}
+
+E-AGCH-FDD-Code-List ::= SEQUENCE (SIZE (1..maxNrOfE-AGCHs)) OF FDD-DL-ChannelisationCodeNumber
+
+E-AI-Capability ::= ENUMERATED {
+ e-AI-capable,
+ e-AI-non-capable
+}
+
+E-AI-Indicator ::= BOOLEAN
+
+
+E-DCH-Capability ::= ENUMERATED {
+ e-DCH-capable,
+ e-DCH-non-capable
+}
+
+E-DCHCapacityConsumptionLaw ::= SEQUENCE {
+ e-DCH-SF-allocation E-DCH-SF-allocation,
+ dl-Cost-1 INTEGER (0..65535) OPTIONAL,
+ dl-Cost-2 INTEGER (0..65535) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCHCapacityConsumptionLaw-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCHCapacityConsumptionLaw-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-CapacityConsumptionLaw ::= SEQUENCE {
+ ul-Cost INTEGER (0..65535),
+ dl-Cost INTEGER (0..65535) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-CapacityConsumptionLaw-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-CapacityConsumptionLaw-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-SF-allocation ::= SEQUENCE ( SIZE(1..maxNrOfCombEDPDCH) ) OF
+ SEQUENCE {
+ ul-Cost-1 INTEGER (0..65535),
+ ul-Cost-2 INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-SF-allocation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-SF-allocation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TTI2ms-Capability ::= BOOLEAN
+-- True = TTI 10ms and 2ms supported for E-DCH False = only TTI 10ms supported for E-DCH
+
+E-DCH-SF-Capability ::= ENUMERATED {
+ sf64,
+ sf32,
+ sf16,
+ sf8,
+ sf4,
+ sf4x2,
+ sf2x2,
+ sf4x2-and-sf2x2,
+ ...
+}
+
+E-DCH-HARQ-Combining-Capability ::= ENUMERATED {
+ iR-Combining-capable,
+ chase-Combining-capable,
+ iR-and-Chase-Combining-capable
+}
+
+E-DCH-DDI-Value ::= INTEGER (0..62)
+
+E-DCH-FDD-DL-Control-Channel-Information ::= SEQUENCE {
+ e-AGCH-And-E-RGCH-E-HICH-FDD-Scrambling-Code DL-ScramblingCode OPTIONAL,
+ e-AGCH-Channelisation-Code FDD-DL-ChannelisationCodeNumber OPTIONAL,
+ primary-e-RNTI E-RNTI OPTIONAL,
+ secondary-e-RNTI E-RNTI OPTIONAL,
+ e-RGCH-E-HICH-Channelisation-Code FDD-DL-ChannelisationCodeNumber OPTIONAL,
+ e-RGCH-Signature-Sequence E-RGCH-Signature-Sequence OPTIONAL,
+ e-HICH-Signature-Sequence E-HICH-Signature-Sequence OPTIONAL,
+ serving-Grant-Value E-Serving-Grant-Value OPTIONAL,
+ primary-Secondary-Grant-Selector E-Primary-Secondary-Grant-Selector OPTIONAL,
+ e-RGCH-Release-Indicator E-RGCH-Release-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-FDD-DL-Control-Channel-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-FDD-DL-Control-Channel-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Default-Serving-Grant-in-DTX-Cycle2 CRITICALITY ignore EXTENSION E-Serving-Grant-Value PRESENCE optional },
+ ...
+}
+
+E-DCH-FDD-Information ::= SEQUENCE {
+ e-DCH-MACdFlows-Information E-DCH-MACdFlows-Information,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ e-DCH-Maximum-Bitrate E-DCH-Maximum-Bitrate OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-Reference-Power-Offset E-DCH-Reference-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-FDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-FDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-PowerOffset-for-SchedulingInfo CRITICALITY ignore EXTENSION E-DCH-PowerOffset-for-SchedulingInfo PRESENCE optional}|
+ { ID id-SixteenQAM-UL-Operation-Indicator CRITICALITY reject EXTENSION SixteenQAM-UL-Operation-Indicator PRESENCE optional}|
+ { ID id-E-AGCH-Table-Choice CRITICALITY ignore EXTENSION E-AGCH-Table-Choice PRESENCE conditional},
+ -- The IE shall be present if the SixteenQAM UL Operation Indicator IE is set to "Activate"--
+ ...
+}
+
+E-DCH-FDD-Information-Response ::= SEQUENCE {
+ e-DCH-MACdFlow-Specific-InformationResp E-DCH-MACdFlow-Specific-InformationResp OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-FDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-FDD-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-FDD-Information-to-Modify ::= SEQUENCE {
+ e-DCH-MACdFlow-Specific-Info-to-Modify E-DCH-MACdFlow-Specific-InfoList-to-Modify OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ e-DCH-Maximum-Bitrate E-DCH-Maximum-Bitrate OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-Reference-Power-Offset E-DCH-Reference-Power-Offset OPTIONAL,
+ mACeReset-Indicator MACeReset-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-FDD-Information-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-FDD-Information-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-PowerOffset-for-SchedulingInfo CRITICALITY ignore EXTENSION E-DCH-PowerOffset-for-SchedulingInfo PRESENCE optional}|
+ { ID id-SixteenQAM-UL-Operation-Indicator CRITICALITY reject EXTENSION SixteenQAM-UL-Operation-Indicator PRESENCE optional}|
+ { ID id-E-DCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION E-DCH-MACdPDUSizeFormat PRESENCE optional}|
+ { ID id-E-DCH-DL-Control-Channel-Grant-Information CRITICALITY ignore EXTENSION E-DCH-DL-Control-Channel-Grant-Information PRESENCE optional}|
+ { ID id-E-AGCH-Table-Choice CRITICALITY ignore EXTENSION E-AGCH-Table-Choice PRESENCE conditional},
+ -- The IE shall be present if the SixteenQAM UL Operation Indicator IE is set to "Activate"--
+ ...
+}
+
+E-DCH-FDD-Update-Information ::= SEQUENCE {
+ e-DCH-MACdFlow-Specific-UpdateInformation E-DCH-MACdFlow-Specific-UpdateInformation OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-FDD-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-FDD-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-DL-Control-Channel-Change-Information CRITICALITY ignore EXTENSION E-DCH-DL-Control-Channel-Change-Information PRESENCE optional},
+ ...
+}
+
+
+E-DCH-MACdFlow-Specific-UpdateInformation ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-Specific-UpdateInformation-Item
+
+E-DCH-MACdFlow-Specific-UpdateInformation-Item ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ hARQ-Process-Allocation-NonSched-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-Specific-UpdateInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-Specific-UpdateInformation-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-DL-Control-Channel-Change-Information ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF E-DCH-DL-Control-Channel-Change-Information-Item
+
+E-DCH-DL-Control-Channel-Change-Information-Item ::= SEQUENCE {
+ e-DCH-RL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-DL-Control-Channel-Change-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-DL-Control-Channel-Change-Information-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-DL-Control-Channel-Grant-Information ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF E-DCH-DL-Control-Channel-Grant-Information-Item
+
+E-DCH-DL-Control-Channel-Grant-Information-Item ::= SEQUENCE {
+ e-DCH-RL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-DL-Control-Channel-Grant-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-DL-Control-Channel-Grant-Information-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-Grant-Type-Information ::= CHOICE {
+ e-DCH-Non-Scheduled-Transmission-Grant E-DCH-Non-Scheduled-Transmission-Grant-Items,
+ e-DCH-Scheduled-Transmission-Grant NULL,
+ ...
+}
+
+E-DCH-LogicalChannelInformation ::= SEQUENCE (SIZE (1..maxNoOfLogicalChannels)) OF E-DCH-LogicalChannelInformationItem
+
+E-DCH-LogicalChannelInformationItem ::= SEQUENCE {
+ logicalChannelId LogicalChannelID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ schedulingInformation SchedulingInformation,
+ mACesGuaranteedBitRate MACesGuaranteedBitRate OPTIONAL,
+ e-DCH-DDI-Value E-DCH-DDI-Value,
+ mACd-PDU-Size-List E-DCH-MACdPDU-SizeList,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LogicalChannelInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-LogicalChannelInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional}|
+ { ID id-MACes-Maximum-Bitrate-LCR CRITICALITY ignore EXTENSION MACes-Maximum-Bitrate-LCR PRESENCE optional}| --1.28Mcps TDD only
+ { ID id-UE-AggregateMaximumBitRate-Enforcement-Indicator CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate-Enforcement-Indicator PRESENCE optional},
+ ...
+}
+
+E-DCH-Maximum-Bitrate ::= INTEGER (0..5742,...,5743..11498)
+
+E-DCH-PowerOffset-for-SchedulingInfo ::= INTEGER (0.. maxNrOfEDCH-HARQ-PO-QUANTSTEPs)
+
+E-DCH-Processing-Overload-Level ::= INTEGER (0..10,...)
+
+E-DCH-Reference-Power-Offset ::= INTEGER (0.. maxNrOfEDCH-HARQ-PO-QUANTSTEPs)
+
+E-DCH-MACdPDU-SizeList ::= SEQUENCE (SIZE (1.. maxNrOfMACdPDUSize)) OF E-DCH-MACdPDU-SizeListItem
+
+E-DCH-MACdPDU-SizeListItem ::= SEQUENCE {
+ mACdPDU-Size MACdPDU-Size,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdPDU-SizeListItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdPDU-SizeListItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-MACdPDU-SizeCapability ::= ENUMERATED {
+ fixedSizeCapable,
+ flexibleSizeCapable
+}
+
+E-DCH-MACdPDUSizeFormat ::= ENUMERATED {
+ fixedMACdPDU-Size,
+ flexibleMACdPDU-Size
+}
+
+
+E-DCH-LogicalChannelToModify ::= SEQUENCE (SIZE (1..maxNoOfLogicalChannels)) OF E-DCH-LogicalChannelToModifyItem
+
+E-DCH-LogicalChannelToModifyItem ::= SEQUENCE {
+ logicalChannelId LogicalChannelID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ schedulingInformation SchedulingInformation OPTIONAL,
+ mACesGuaranteedBitRate MACesGuaranteedBitRate OPTIONAL,
+ e-DCH-DDI-Value E-DCH-DDI-Value OPTIONAL,
+ mACd-PDU-Size-List E-DCH-MACdPDU-SizeToModifyList,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LogicalChannelToModifyItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-LogicalChannelToModifyItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional}|
+ { ID id-MACes-Maximum-Bitrate-LCR CRITICALITY ignore EXTENSION MACes-Maximum-Bitrate-LCR PRESENCE optional}, --1.28Mcps TDD only
+ ...
+}
+
+E-DCH-MACdPDU-SizeToModifyList ::= SEQUENCE (SIZE (0.. maxNrOfMACdPDUSize)) OF E-DCH-MACdPDU-SizeListItem
+
+
+
+E-DCH-LogicalChannelToDelete ::= SEQUENCE (SIZE (1..maxNoOfLogicalChannels)) OF E-DCH-LogicalChannelToDeleteItem
+
+E-DCH-LogicalChannelToDeleteItem ::= SEQUENCE {
+ logicalChannelId LogicalChannelID,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LogicalChannelToDeleteItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-LogicalChannelToDeleteItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LogicalChannelID ::= INTEGER (1..15)
+
+
+E-DCH-HARQ-PO-FDD ::= INTEGER (0.. maxNrOfEDCH-HARQ-PO-QUANTSTEPs)
+
+E-DCH-MACdFlow-ID ::= INTEGER (0..maxNrOfEDCHMACdFlows-1)
+
+E-DCH-MACdFlows-Information ::= SEQUENCE {
+ e-DCH-MACdFlow-Specific-Info E-DCH-MACdFlow-Specific-InfoList,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlows-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlows-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-MACdFlow-Multiplexing-List ::= BIT STRING ( SIZE(maxNrOfEDCHMACdFlows) )
+
+E-DCH-MACdFlow-Specific-InfoList ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-Specific-InfoItem
+
+E-DCH-MACdFlow-Specific-InfoItem ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority,
+ tnlQos TnlQos OPTIONAL,
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ maximum-Number-of-Retransmissions-For-E-DCH Maximum-Number-of-Retransmissions-For-E-DCH,
+ eDCH-HARQ-PO-FDD E-DCH-HARQ-PO-FDD,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ eDCH-Grant-Type-Information E-DCH-Grant-Type-Information,
+ bundlingModeIndicator BundlingModeIndicator OPTIONAL,
+ eDCHLogicalChannelInformation E-DCH-LogicalChannelInformation,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-Specific-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-Specific-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportBearerNotRequestedIndicator CRITICALITY ignore EXTENSION TransportBearerNotRequestedIndicator PRESENCE optional },
+ ...
+}
+
+E-DCH-MACdFlow-Specific-InformationResp ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-Specific-InformationResp-Item
+
+E-DCH-MACdFlow-Specific-InformationResp-Item ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ hARQ-Process-Allocation-NonSched-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-Specific-InformationResp-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-Specific-InformationResp-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportBearerNotSetupIndicator CRITICALITY ignore EXTENSION TransportBearerNotSetupIndicator PRESENCE optional }, -- FDD only
+ ...
+}
+
+E-DCH-MACdFlow-Specific-InfoList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-Specific-InfoItem-to-Modify
+
+E-DCH-MACdFlow-Specific-InfoItem-to-Modify ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ tnlQos TnlQos OPTIONAL,
+ maximum-Number-of-Retransmissions-For-E-DCH Maximum-Number-of-Retransmissions-For-E-DCH OPTIONAL,
+ eDCH-HARQ-PO-FDD E-DCH-HARQ-PO-FDD OPTIONAL,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ eDCH-Grant-Type-Information E-DCH-Grant-Type-Information OPTIONAL,
+ bundlingModeIndicator BundlingModeIndicator OPTIONAL,
+ eDCH-LogicalChannelToAdd E-DCH-LogicalChannelInformation OPTIONAL,
+ eDCH-LogicalChannelToModify E-DCH-LogicalChannelToModify OPTIONAL,
+ eDCH-LogicalChannelToDelete E-DCH-LogicalChannelToDelete OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-MACdFlows-to-Delete ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-to-Delete-Item
+
+E-DCH-MACdFlow-to-Delete-Item ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-to-Delete-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-to-Delete-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-Non-Scheduled-Transmission-Grant-Items ::= SEQUENCE {
+ -- The following IE shall be ignored if id-Ext-Max-Bits-MACe-PDU-non-scheduled is present in E-DCH-Non-Scheduled-Transmission-Grant-Items-ExtIEs
+ maxBits-MACe-PDU-non-scheduled Max-Bits-MACe-PDU-non-scheduled,
+ hARQ-Process-Allocation-NonSched-2ms HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Non-Scheduled-Transmission-Grant-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-Non-Scheduled-Transmission-Grant-Items-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ -- The following IE shall be present if the maximum number of bits to be signalled exceeds maxNrOfBits-MACe-PDU-non-scheduled
+ { ID id-Ext-Max-Bits-MACe-PDU-non-scheduled CRITICALITY reject EXTENSION Ext-Max-Bits-MACe-PDU-non-scheduled PRESENCE optional},
+ ...
+}
+
+E-DCH-Non-serving-Relative-Grant-Down-Commands ::= INTEGER (0..100,...)
+
+E-DCHProvidedBitRateValue ::= INTEGER(0..16777215,...,16777216..256000000)
+-- Unit bit/s, Range 0..2^24-1..2^24..256,000,000, Step 1 bit
+
+Maximum-Target-ReceivedTotalWideBandPower ::= INTEGER (0..621)
+-- mapping as for RTWP measurement value, as specified in [22]
+
+Target-NonServing-EDCH-To-Total-EDCH-Power-Ratio ::= INTEGER (0..100)
+-- Unit %, Range 0..100%, Step 1%
+
+E-DCH-RL-Indication ::= ENUMERATED {
+ e-DCH,
+ non-e-DCH
+}
+
+
+E-DCH-Serving-Cell-Change-Info-Response ::= SEQUENCE {
+ e-DCH-serving-cell-choice E-DCH-serving-cell-choice,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-serving-cell-informationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-serving-cell-informationResponse-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-serving-cell-choice ::= CHOICE {
+ e-DCH-serving-cell-change-successful E-DCH-serving-cell-change-successful,
+ e-DCH-serving-cell-change-unsuccessful E-DCH-serving-cell-change-unsuccessful,
+ ...
+}
+
+E-DCH-serving-cell-change-successful ::= SEQUENCE {
+ e-DCH-RL-InformationList-Rsp E-DCH-RL-InformationList-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-serving-cell-change-successful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-RL-InformationList-Rsp ::= SEQUENCE (SIZE (0..maxNrOfRLs)) OF E-DCH-RL-InformationList-Rsp-Item
+
+E-DCH-RL-InformationList-Rsp-Item ::= SEQUENCE {
+ rl-ID RL-ID,
+ e-DCH-FDD-DL-Control-Channel-Info E-DCH-FDD-DL-Control-Channel-Information,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-RL-InformationList-Rsp-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-serving-cell-change-successful-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-RL-InformationList-Rsp-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-serving-cell-change-unsuccessful ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-serving-cell-change-unsuccessful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-serving-cell-change-unsuccessful-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- The maximum repetitions should be limited to 1 so that this information is reported only once for a cell.
+EDCH-RACH-Report-Value ::= SEQUENCE (SIZE(1.. maxNrOfCommonEDCH)) OF
+ SEQUENCE {
+ granted-EDCH-RACH-resources Granted-EDCH-RACH-Resources-Value,
+ denied-EDCH-RACH-resources Denied-EDCH-RACH-Resources-Value,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-RACH-Report-Value-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-RACH-Report-Value-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TFCI-Table-Index ::= INTEGER (0..1,...,2..7)
+
+E-DCH-TTI-Length ::= CHOICE {
+ two-ms DTX-Cycle-2ms-Items,
+ ten-ms DTX-Cycle-10ms-Items,
+ ...
+}
+
+E-DCH-TTI-Length-to-Modify ::= CHOICE {
+ two-ms DTX-Cycle-2ms-to-Modify-Items,
+ ten-ms DTX-Cycle-10ms-to-Modify-Items,
+ ...
+}
+
+
+E-DPCCH-PO ::= INTEGER (0..maxNrOfEDPCCH-PO-QUANTSTEPs)
+
+E-DPDCH-PowerInterpolation ::= BOOLEAN
+
+E-Primary-Secondary-Grant-Selector ::= ENUMERATED {
+ primary,
+ secondary
+}
+
+E-DCH-MACdFlow-ID-LCR ::= INTEGER (0..maxNrOfEDCHMACdFlowsLCR-1)
+
+E-DCH-MACdFlows-to-DeleteLCR ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlowsLCR)) OF E-DCH-MACdFlow-to-Delete-ItemLCR
+
+E-DCH-MACdFlow-to-Delete-ItemLCR ::= SEQUENCE {
+ e-DCH-MACdFlow-ID-LCR E-DCH-MACdFlow-ID-LCR,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-to-Delete-ItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-to-Delete-ItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Enhanced-UE-DRX-InformationLCR ::= SEQUENCE {
+ t321 T321,
+ hS-DSCH-DRX-Cycle-FACH HS-DSCH-DRX-Cycle-FACH,
+ hS-DSCH-RX-Burst-FACH HS-DSCH-RX-Burst-FACH,
+ iE-Extensions ProtocolExtensionContainer { { Enhanced-UE-DRX-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Enhanced-UE-DRX-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-ID-LCR ::= INTEGER(0..255)
+E-HICH-Signature-Sequence ::= INTEGER (0..maxNrofSigSeqRGHI-1)
+
+End-Of-Audit-Sequence-Indicator ::= ENUMERATED {
+ end-of-audit-sequence,
+ not-end-of-audit-sequence
+}
+
+E-Serving-Grant-Value ::= INTEGER (0..38)
+
+E-RGCH-2-IndexStepThreshold ::= INTEGER (0..37)
+
+E-RGCH-3-IndexStepThreshold ::= INTEGER (0..37)
+
+E-RGCH-E-HICH-FDD-Code-Information ::= CHOICE {
+ replace E-RGCH-E-HICH-FDD-Code-List,
+ remove NULL,
+ ...
+}
+
+E-RGCH-E-HICH-FDD-Code-List ::= SEQUENCE (SIZE (1..maxNrOfE-RGCHs-E-HICHs)) OF FDD-DL-ChannelisationCodeNumber
+
+E-RGCH-Release-Indicator ::= ENUMERATED {e-RGCHreleased}
+
+E-RGCH-Signature-Sequence ::= INTEGER (0..maxNrofSigSeqRGHI-1)
+
+E-RNTI ::= INTEGER (0..65535)
+
+E-TFCI ::= INTEGER (0..127)
+
+E-TFCI-BetaEC-Boost ::= INTEGER (0..127,...)
+
+
+E-TFCI-Boost-Information ::= SEQUENCE {
+ e-TFCI-BetaEC-Boost E-TFCI-BetaEC-Boost,
+ uL-Delta-T2TP UL-Delta-T2TP OPTIONAL,
+ -- This IE shall be present if the E-TFCI BetaEC Boost IE value is not set to 127.
+ iE-Extensions ProtocolExtensionContainer { { E-TFCI-Boost-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-TFCI-Boost-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-TFCS-Information ::= SEQUENCE {
+ e-DCH-TFCI-Table-Index E-DCH-TFCI-Table-Index,
+ e-DCH-Min-Set-E-TFCI E-TFCI OPTIONAL,
+ reference-E-TFCI-Information Reference-E-TFCI-Information,
+ iE-Extensions ProtocolExtensionContainer { {E-TFCS-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-TFCS-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-TFCI-Boost-Information CRITICALITY reject EXTENSION E-TFCI-Boost-Information PRESENCE optional}|
+ { ID id-E-DPDCH-PowerInterpolation CRITICALITY reject EXTENSION E-DPDCH-PowerInterpolation PRESENCE optional},
+ ...
+}
+
+E-TTI ::= ENUMERATED {
+ e-TTI-2ms,
+ e-TTI-10ms
+}
+
+E-DCHProvidedBitRate ::= SEQUENCE (SIZE (1..maxNrOfPriorityClasses)) OF E-DCHProvidedBitRate-Item
+
+E-DCHProvidedBitRate-Item ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ e-DCHProvidedBitRateValue E-DCHProvidedBitRateValue,
+ iE-Extensions ProtocolExtensionContainer { { E-DCHProvidedBitRate-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCHProvidedBitRate-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCHProvidedBitRateValueInformation-For-CellPortion ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF E-DCHProvidedBitRateValueInformation-For-CellPortion-Item
+
+E-DCHProvidedBitRateValueInformation-For-CellPortion-Item ::= SEQUENCE{
+ cellPortionLCRID CellPortionLCRID,
+ e-DCHProvidedBitRateValue E-DCHProvidedBitRate,
+ iE-Extensions ProtocolExtensionContainer { {E-DCHProvidedBitRateValueInformation-For-CellPortion-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCHProvidedBitRateValueInformation-For-CellPortion-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-PowerOffset ::= INTEGER (0..255,...)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+E-RGCH-PowerOffset ::= INTEGER (0..255,...)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+
+
+E-HICH-PowerOffset ::= INTEGER (0..255,...)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+E-HICH-TimeOffset ::= INTEGER (4..44)
+
+E-HICH-TimeOffsetLCR ::= INTEGER (4..15)
+
+
+E-DCH-Information ::= SEQUENCE {
+ e-PUCH-Information E-PUCH-Information,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD,
+ e-DCH-MACdFlows-Information-TDD E-DCH-MACdFlows-Information-TDD,
+ e-DCH-Non-Scheduled-Grant-Info E-DCH-Non-Scheduled-Grant-Info OPTIONAL,
+ e-DCH-TDD-Information E-DCH-TDD-Information,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-PUCH-Information ::= SEQUENCE {
+ minCR CodeRate,
+ maxCR CodeRate,
+ harqInfo HARQ-Info-for-E-DCH,
+ n-E-UCCH N-E-UCCH,
+ iE-Extensions ProtocolExtensionContainer { { E-PUCH-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-PUCH-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-TFCS-Information-TDD ::= SEQUENCE {
+ e-DCH-QPSK-RefBetaInfo E-DCH-QPSK-RefBetaInfo,
+ e-DCH-sixteenQAM-RefBetaInfo E-DCH-sixteenQAM-RefBetaInfo,
+ iE-Extensions ProtocolExtensionContainer { { E-TFCS-Information-TDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-TFCS-Information-TDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-QPSK-RefBetaInfo ::= SEQUENCE (SIZE (1..maxNrOfRefBetas)) OF E-DCH-RefBeta-Item
+
+E-DCH-sixteenQAM-RefBetaInfo ::= SEQUENCE (SIZE (1..maxNrOfRefBetas)) OF E-DCH-RefBeta-Item
+
+E-DCH-RefBeta-Item ::= SEQUENCE {
+ refCodeRate CodeRate-short,
+ refBeta RefBeta
+}
+
+E-DCH-MACdFlows-Information-TDD ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-InfoTDDItem
+
+E-DCH-MACdFlow-InfoTDDItem ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority,
+ tnlQos TnlQos OPTIONAL,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ maximum-Number-of-Retransmissions-For-E-DCH Maximum-Number-of-Retransmissions-For-E-DCH,
+ eDCH-HARQ-PO-TDD E-DCH-HARQ-PO-TDD,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ eDCH-Grant-TypeTDD E-DCH-Grant-TypeTDD,
+ eDCHLogicalChannelInformation E-DCH-LogicalChannelInformation,
+ eDCH-MACdFlow-Retransmission-Timer E-DCH-MACdFlow-Retransmission-Timer OPTIONAL,
+ -- Mandatory for LCR TDD,Not applicable for 3.84Mcps TDD and 7.68Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-InfoTDDItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-InfoTDDItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+E-DCH-MACdFlow-Retransmission-Timer ::= ENUMERATED {
+ ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, ms55, ms60, ms65,
+ ms70, ms75, ms80, ms85, ms90, ms95, ms100, ms110, ms120, ms140, ms160,
+ ms200, ms240, ms280, ms320, ms400, ms480, ms560,...
+}
+
+
+E-DCH-HARQ-PO-TDD ::= INTEGER (0..6)
+
+E-DCH-Grant-TypeTDD ::= ENUMERATED {
+ scheduled,
+ non-scheduled
+}
+E-DCH-Non-Scheduled-Grant-Info ::= SEQUENCE {
+ timeslotResource E-DCH-TimeslotResource,
+ powerResource E-DCH-PowerResource,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tddE-PUCH-Offset TddE-PUCH-Offset,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Non-Scheduled-Grant-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TimeslotResource ::= BIT STRING (SIZE (13))
+
+E-DCH-TimeslotResourceLCR ::= BIT STRING (SIZE (5))
+
+
+E-DCH-PowerResource ::= INTEGER(1..32)
+
+TddE-PUCH-Offset ::= INTEGER(0..255)
+
+E-DCH-TDD-Information ::= SEQUENCE {
+ e-DCH-TDD-Maximum-Bitrate E-DCH-TDD-Maximum-Bitrate OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-PowerOffset-for-SchedulingInfo E-DCH-PowerOffset-for-SchedulingInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-Maximum-Bitrate ::= INTEGER (0..9201,...)
+
+E-DCH-Information-Response ::= SEQUENCE {
+ e-DCH-TDD-MACdFlow-Specific-InformationResp E-DCH-TDD-MACdFlow-Specific-InformationResp OPTIONAL,
+ e-AGCH-Specific-Information-ResponseTDD E-AGCH-Specific-InformationRespListTDD OPTIONAL,
+ e-RNTI E-RNTI,
+ scheduled-E-HICH-Specific-InformationResp Scheduled-E-HICH-Specific-Information-ResponseLCRTDD OPTIONAL, -- 1.28Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Scheduled-E-HICH-Specific-Information-ResponseLCRTDD ::= SEQUENCE (SIZE (1.. maxNrOfEHICHCodes)) OF Scheduled-E-HICH-Specific-InformationItem-ResponseLCRTDD
+
+Scheduled-E-HICH-Specific-InformationItem-ResponseLCRTDD ::= SEQUENCE {
+ eI EI,
+ e-HICH-ID-TDD E-HICH-ID-TDD,
+ iE-Extensions ProtocolExtensionContainer {{ Scheduled-E-HICH-Specific-InformationItem-ResponseLCRTDD-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Scheduled-E-HICH-Specific-InformationItem-ResponseLCRTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-E-HICH-ID-TDD CRITICALITY ignore EXTENSION Extended-E-HICH-ID-TDD PRESENCE optional},
+ -- Applicable to 1.28Mcps TDD only when the E-HICH identity has a value larger than 31.
+ ...
+}
+
+EI ::= INTEGER (0..3)
+
+E-HICH-ID-TDD ::= INTEGER (0..31)
+
+E-HICH-Type ::= ENUMERATED {scheduled,non-scheduled}
+
+E-DCH-TDD-MACdFlow-Specific-InformationResp ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-TDD-MACdFlow-Specific-InformationResp-Item
+
+E-DCH-TDD-MACdFlow-Specific-InformationResp-Item ::= SEQUENCE {
+ e-DCH-MacdFlow-Id E-DCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-MACdFlow-Specific-InformationRespItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-MACdFlow-Specific-InformationRespItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-Specific-InformationRespListTDD ::= SEQUENCE (SIZE (1..maxNrOfEAGCHCodes)) OF E-AGCH-Specific-InformationResp-ItemTDD
+
+E-AGCH-Specific-InformationResp-ItemTDD ::= SEQUENCE {
+ e-AGCH-Id E-AGCH-Id,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-Specific-InformationResp-ItemTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-AGCH-Specific-InformationResp-ItemTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-Id ::= INTEGER (0..31,...,32..255)
+
+E-DCH-Information-Reconfig ::= SEQUENCE {
+ e-PUCH-Information E-PUCH-Information OPTIONAL,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Add E-DCH-MACdFlows-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Delete E-DCH-MACdFlows-to-Delete OPTIONAL,
+ e-DCH-Non-Scheduled-Grant-Info E-DCH-Non-Scheduled-Grant-Info OPTIONAL,
+ e-DCH-TDD-Information E-DCH-TDD-Information OPTIONAL,
+ e-DCH-TDD-Information-to-Modify E-DCH-TDD-Information-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-Reconfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-Reconfig-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-Information-to-Modify ::= SEQUENCE {
+ e-DCH-TDD-Information-to-Modify-List E-DCH-TDD-Information-to-Modify-List OPTIONAL,
+ mACeReset-Indicator MACeReset-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-Information-to-Modify-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-Information-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION E-DCH-MACdPDUSizeFormat PRESENCE optional},
+ ...
+}
+
+E-DCH-TDD-Information-to-Modify-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-ModifyTDDItem
+
+E-DCH-MACdFlow-ModifyTDDItem ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ tnlQos TnlQos OPTIONAL,
+ maximum-Number-of-Retransmissions-For-E-DCH Maximum-Number-of-Retransmissions-For-E-DCH OPTIONAL,
+ eDCH-HARQ-PO-TDD E-DCH-HARQ-PO-TDD OPTIONAL,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ eDCH-Grant-TypeTDD E-DCH-Grant-TypeTDD OPTIONAL,
+ e-DCH-LogicalChannelToAdd E-DCH-LogicalChannelInformation OPTIONAL,
+ e-DCH-LogicalChannelToModify E-DCH-LogicalChannelToModify OPTIONAL,
+ e-DCH-LogicalChannelToDelete E-DCH-LogicalChannelToDelete OPTIONAL,
+ eDCH-MACdFlow-Retransmission-Timer E-DCH-MACdFlow-Retransmission-Timer OPTIONAL,
+ -- LCR TDD only
+ iE-Extensions ProtocolExtensionContainer { {E-DCH-MACdFlow-ModifyTDDItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-ModifyTDDItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Maximum-Generated-ReceivedTotalWideBandPowerInOtherCells ::= INTEGER (0..621)
+-- mapping as for RTWP measurement value, as specified in [23]
+
+E-DCH-768-Information ::= SEQUENCE {
+ e-PUCH-Information E-PUCH-Information,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD,
+ e-DCH-MACdFlows-Information-TDD E-DCH-MACdFlows-Information-TDD,
+ e-DCH-Non-Scheduled-Grant-Info768 E-DCH-Non-Scheduled-Grant-Info768 OPTIONAL,
+ e-DCH-TDD-Information768 E-DCH-TDD-Information768,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-768-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-768-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-Info768 ::= SEQUENCE {
+ timeslotResource E-DCH-TimeslotResource,
+ powerResource E-DCH-PowerResource,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tddE-PUCH-Offset TddE-PUCH-Offset,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Non-Scheduled-Grant-Info768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-Info768-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-Information768 ::= SEQUENCE {
+ e-DCH-TDD-Maximum-Bitrate768 E-DCH-TDD-Maximum-Bitrate768 OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-PowerOffset-for-SchedulingInfo E-DCH-PowerOffset-for-SchedulingInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-Information768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-Information768-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-Maximum-Bitrate768 ::= INTEGER (0..17713,...)
+
+E-DCH-768-Information-Reconfig ::= SEQUENCE {
+ e-PUCH-Information E-PUCH-Information OPTIONAL,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Add E-DCH-MACdFlows-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Delete E-DCH-MACdFlows-to-Delete OPTIONAL,
+ e-DCH-Non-Scheduled-Grant-Info768 E-DCH-Non-Scheduled-Grant-Info768 OPTIONAL,
+ e-DCH-TDD-Information768 E-DCH-TDD-Information768 OPTIONAL,
+ e-DCH-TDD-Information-to-Modify E-DCH-TDD-Information-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-768-Information-Reconfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-768-Information-Reconfig-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-LCR-Information ::= SEQUENCE {
+ e-PUCH-LCR-Information E-PUCH-LCR-Information,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD,
+ e-DCH-MACdFlows-Information-TDD E-DCH-MACdFlows-Information-TDD,
+ e-DCH-Non-Scheduled-Grant-LCR-Info E-DCH-Non-Scheduled-Grant-LCR-Info OPTIONAL,
+ e-DCH-LCRTDD-Information E-DCH-LCRTDD-Information,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LCR-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-LCR-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-PUCH-LCR-Information ::= SEQUENCE {
+ minCR CodeRate,
+ maxCR CodeRate,
+ harqInfo HARQ-Info-for-E-DCH,
+ pRXdes-base PRXdes-base,
+ e-PUCH-TPC-StepSize TDD-TPC-UplinkStepSize-LCR,
+ e-AGCH-TPC-StepSize TDD-TPC-DownlinkStepSize,
+ iE-Extensions ProtocolExtensionContainer { { E-PUCH-LCR-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-PUCH-LCR-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-PUCH-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional },
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-LCR-Info ::= SEQUENCE {
+ timeslotResourceLCR E-DCH-TimeslotResourceLCR,
+ powerResource E-DCH-PowerResource,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ subframeNumber ENUMERATED {v0, v1},
+ tddE-PUCH-Offset TddE-PUCH-Offset,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ n-E-UCCHLCR N-E-UCCHLCR,
+ e-HICH-LCR-Information E-HICH-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Non-Scheduled-Grant-LCR-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-LCR-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-LCR-Information ::= SEQUENCE {
+ e-HICH-ID-TDD E-HICH-ID-TDD,
+ signatureSequenceGroupIndex SignatureSequenceGroupIndex,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-LCR-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-HICH-LCR-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-E-HICH-ID-TDD CRITICALITY ignore EXTENSION Extended-E-HICH-ID-TDD PRESENCE optional},
+ -- Applicable to 1.28Mcps TDD only when the E-HICH identity has a value larger than 31.
+ ...
+}
+
+E-DCH-LCRTDD-Information ::= SEQUENCE {
+ e-DCH-LCRTDD-PhysicalLayerCategory E-DCH-LCRTDD-PhysicalLayerCategory OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-PowerOffset-for-SchedulingInfo E-DCH-PowerOffset-for-SchedulingInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LCRTDD-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-LCRTDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-E-DCH-LCRTDD-PhysicalLayerCategory CRITICALITY reject EXTENSION Extended-E-DCH-LCRTDD-PhysicalLayerCategory PRESENCE optional }|
+ -- This IE shall be used if the E-DCH Physical Layer Category has a value larger than 5.
+ { ID id-MaximumNumber-Of-Retransmission-for-Scheduling-Info-LCRTDD CRITICALITY ignore EXTENSION Maximum-Number-of-Retransmissions-For-E-DCH PRESENCE optional }|
+ { ID id-E-DCH-RetransmissionTimer-for-SchedulingInfo-LCRTDD CRITICALITY ignore EXTENSION E-DCH-MACdFlow-Retransmission-Timer PRESENCE optional }|
+ { ID id-E-AGCH-UE-Inactivity-Monitor-Threshold CRITICALITY ignore EXTENSION E-AGCH-UE-Inactivity-Monitor-Threshold PRESENCE optional },
+ ...
+}
+
+E-DCH-LCRTDD-PhysicalLayerCategory ::= INTEGER(1..5)
+
+E-DCH-LCR-Information-Reconfig ::= SEQUENCE {
+ e-PUCH-LCR-Information E-PUCH-LCR-Information OPTIONAL,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Add E-DCH-MACdFlows-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Delete E-DCH-MACdFlows-to-Delete OPTIONAL,
+ e-DCH-Non-Scheduled-Grant-LCR-Info E-DCH-Non-Scheduled-Grant-LCR-Info OPTIONAL,
+ e-DCH-LCRTDD-Information E-DCH-LCRTDD-Information OPTIONAL,
+ e-DCH-TDD-Information-to-Modify E-DCH-TDD-Information-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LCR-Information-Reconfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-LCR-Information-Reconfig-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Enabling-Delay ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128}
+ -- Unit of radio frames
+
+DormantModeIndicator::= ENUMERATED {
+ enterDormantMode,
+ leaveDormantMode,
+...
+}
+
+Enhanced-FACH-Capability ::= ENUMERATED {
+ enhanced-FACH-capable,
+ enhanced-FACH-non-capable
+}
+
+EnhancedHSServingCC-Abort ::= ENUMERATED {abortEnhancedHSServingCC,...}
+
+Enhanced-PCH-Capability ::= ENUMERATED {
+ enhanced-PCH-capable,
+ enhanced-PCH-non-capable
+}
+
+
+Enhanced-UE-DRX-Capability ::= ENUMERATED {
+ enhanced-UE-DRX-capable,
+ enhanced-UE-DRX-non-capable
+}
+
+Enhanced-UE-DRX-InformationFDD ::= SEQUENCE {
+ t321 T321,
+ hS-DSCH-DRX-Cycle-FACH HS-DSCH-DRX-Cycle-FACH,
+ hS-DSCH-RX-Burst-FACH HS-DSCH-RX-Burst-FACH,
+ dRX-Interruption-by-HS-DSCH DRX-Interruption-by-HS-DSCH,
+ iE-Extensions ProtocolExtensionContainer { { Enhanced-UE-DRX-InformationFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Enhanced-UE-DRX-InformationFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Extended-E-DCH-LCRTDD-PhysicalLayerCategory ::= INTEGER(6,...)
+
+Ext-Max-Bits-MACe-PDU-non-scheduled ::= INTEGER(19983..22978,...)
+
+Ext-Reference-E-TFCI-PO ::= INTEGER(30..31,...)
+
+ExtendedPropagationDelay ::= INTEGER(255..1023)
+
+Extended-RNC-ID ::= INTEGER (4096..65535)
+
+Extended-Round-Trip-Time-Value ::= INTEGER(32767..103041)
+-- See also mapping in [22]
+
+Extended-HS-SCCH-ID ::= INTEGER (32..255)
+
+Extended-HS-SICH-ID ::= INTEGER (32..255)
+
+Extended-E-HICH-ID-TDD ::= INTEGER (32..255)
+
+E-DCH-Semi-PersistentScheduling-Information-LCR ::= SEQUENCE {
+ repetition-Period-List-LCR Repetition-Period-List-LCR,
+ e-DCH-SPS-Indicator E-DCH-SPS-Indicator,
+ sPS-E-DCH-releted-E-HICH-Information E-HICH-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Semi-PersistentScheduling-Information-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Semi-PersistentScheduling-Information-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-E-DCH-SPS-Reservation-Indicator CRITICALITY ignore EXTENSION SPS-Reservation-Indicator PRESENCE optional },
+ ...
+}
+
+E-DCH-SPS-Indicator ::= BIT STRING (SIZE (16))
+
+E-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR ::= SEQUENCE {
+ repetition-Period-List-LCR Repetition-Period-List-LCR OPTIONAL,
+ e-DCH-SPS-Indicator E-DCH-SPS-Indicator OPTIONAL,
+ sPS-E-DCH-releted-E-HICH-Information E-HICH-LCR-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-E-DCH-SPS-Reservation-Indicator CRITICALITY ignore EXTENSION SPS-Reservation-Indicator PRESENCE optional },
+ ...
+}
+
+E-DCH-Semi-PersistentScheduling-Information-ResponseLCR ::= SEQUENCE {
+ timeslot-Resource-Related-Information E-DCH-TimeslotResourceLCR,
+ powerResource E-DCH-PowerResource,
+ repetition-Period-List-LCR Repetition-Period-List-LCR,
+ -- the IE shall be ignored
+ repetitionLength RepetitionLength,
+ -- the IE shall be ignored
+ subframeNumber ENUMERATED {v0, v1},
+ tddE-PUCH-Offset TddE-PUCH-Offset,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ n-E-UCCHLCR N-E-UCCHLCR,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Semi-PersistentScheduling-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Semi-PersistentScheduling-Information-ResponseLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RepetitionPeriodIndex CRITICALITY reject EXTENSION RepetitionPeriodIndex PRESENCE optional },
+ -- mandaroty for 1.28Mcps TDD.
+ ...
+}
+
+-- ==========================================
+-- F
+-- ==========================================
+
+FACH-Measurement-Occasion-Cycle-Length-Coefficient ::= INTEGER(1..12)
+
+Fast-Reconfiguration-Mode ::= ENUMERATED {fast,...}
+Fast-Reconfiguration-Permission ::= ENUMERATED {allowed,...}
+
+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-FrameOffset ::= ENUMERATED {
+ v1, v2, v4, ...
+}
+
+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,
+ ...
+}
+
+F-DPCH-Capability ::= ENUMERATED {
+ f-DPCH-capable,
+ f-DPCH-non-capable
+}
+
+F-DPCH-SlotFormat ::= INTEGER (0..9)
+
+
+F-DPCH-SlotFormatCapability ::= ENUMERATED {
+ f-DPCH-slot-format-capable,
+ f-DPCH-slot-format-non-capable
+}
+
+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
+-- ==========================================
+
+
+GANSS-AddClockModels ::= CHOICE {
+ navClockModel GANSS-NAVclockModel,
+ cnavClockModel GANSS-CNAVclockModel,
+ glonassClockModel GANSS-GLONASSclockModel,
+ sbasClockModel GANSS-SBASclockModel,
+ ...
+}
+
+GANSS-AddIonoModelReq ::= BIT STRING (SIZE(2))
+
+GANSS-AddNavigationModelsReq ::= BOOLEAN
+
+GANSS-AddOrbitModels ::= CHOICE {
+ navKeplerianSet GANSS-NavModel-NAVKeplerianSet,
+ cnavKeplerianSet GANSS-NavModel-CNAVKeplerianSet,
+ glonassECEF GANSS-NavModel-GLONASSecef,
+ sbasECEF GANSS-NavModel-SBASecef,
+ ...
+ }
+
+GANSS-AddUTCModelsReq ::= BOOLEAN
+
+GANSS-Additional-Ionospheric-Model ::= SEQUENCE {
+ dataID BIT STRING (SIZE(2)),
+ alpha-beta-parameters GPS-Ionospheric-Model,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Additional-Ionospheric-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Additional-Ionospheric-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Additional-Navigation-Models ::= SEQUENCE {
+ ganss-Transmission-Time GANSS-Transmission-Time,
+ non-broadcastIndication ENUMERATED { true } OPTIONAL,
+ ganssSatInfoNavList Ganss-Sat-Info-AddNavList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Additional-Navigation-Models-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Additional-Navigation-Models-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Additional-Time-Models ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF GANSS-Time-Model
+
+GANSS-Additional-UTC-Models ::= CHOICE {
+ utcModel1 GANSS-UTCmodelSet1,
+ utcModel2 GANSS-UTCmodelSet2,
+ utcModel3 GANSS-UTCmodelSet3,
+ ...
+}
+
+GANSS-Almanac ::= SEQUENCE{
+ ganss-wk-number INTEGER(0..255),
+ gANSS-AlmanacModel GANSS-AlmanacModel,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Almanac-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Almanac-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AlmanacModel ::= CHOICE {
+ gANSS-keplerianParameters GANSS-KeplerianParametersAlm,
+ ...,
+ extension-GANSS-AlmanacModel Extension-GANSS-AlmanacModel
+}
+
+Extension-GANSS-AlmanacModel ::= ProtocolIE-Single-Container {{ Extension-GANSS-AlmanacModel-IE }}
+
+Extension-GANSS-AlmanacModel-IE NBAP-PROTOCOL-IES ::= {
+ { ID id-GANSS-alm-keplerianNAVAlmanac CRITICALITY ignore TYPE GANSS-ALM-NAVKeplerianSet PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianReducedAlmanac CRITICALITY ignore TYPE GANSS-ALM-ReducedKeplerianSet PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianMidiAlmanac CRITICALITY ignore TYPE GANSS-ALM-MidiAlmanacSet PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianGLONASS CRITICALITY ignore TYPE GANSS-ALM-GlonassAlmanacSet PRESENCE mandatory}|
+ { ID id-GANSS-alm-ecefSBASAlmanac CRITICALITY ignore TYPE GANSS-ALM-ECEFsbasAlmanacSet PRESENCE mandatory}
+}
+
+GANSS-ALM-ECEFsbasAlmanacSet ::= SEQUENCE {
+ sat-info-SBASecefList GANSS-SAT-Info-Almanac-SBASecefList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-ECEFsbasAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-ECEFsbasAlmanacSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-ALM-GlonassAlmanacSet ::= SEQUENCE {
+ sat-info-GLOkpList GANSS-SAT-Info-Almanac-GLOkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-GlonassAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-GlonassAlmanacSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-ALM-MidiAlmanacSet ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-MIDIkpList GANSS-SAT-Info-Almanac-MIDIkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-MidiAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-MidiAlmanacSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-ALM-NAVKeplerianSet ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-NAVkpList GANSS-SAT-Info-Almanac-NAVkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-NAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-NAVKeplerianSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-ALM-ReducedKeplerianSet ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-REDkpList GANSS-SAT-Info-Almanac-REDkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-ReducedKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-ReducedKeplerianSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Auxiliary-Information ::= CHOICE {
+ ganssID1 GANSS-AuxInfoGANSS-ID1, -- This choice may only be present if GANSS ID indicates Modernized GPS
+ ganssID3 GANSS-AuxInfoGANSS-ID3, -- This choice may only be present if GANSS ID indicates GLONASS
+ ...
+}
+
+GANSS-AuxInfoGANSS-ID1 ::= SEQUENCE (SIZE(1.. maxGANSSSat)) OF GANSS-AuxInfoGANSS-ID1-element
+
+GANSS-AuxInfoGANSS-ID1-element ::= SEQUENCE {
+ svID INTEGER(0..63),
+ signalsAvailable BIT STRING (SIZE(8)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-AuxInfoGANSS-ID1-element-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-AuxInfoGANSS-ID1-element-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AuxInfoGANSS-ID3 ::= SEQUENCE (SIZE(1.. maxGANSSSat)) OF GANSS-AuxInfoGANSS-ID3-element
+
+GANSS-AuxInfoGANSS-ID3-element ::= SEQUENCE {
+ svID INTEGER(0..63),
+ signalsAvailable BIT STRING (SIZE(8)),
+ channelNumber INTEGER (-7..13),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-AuxInfoGANSS-ID3-element-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-AuxInfoGANSS-ID3-element-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AuxInfoReq ::= BOOLEAN
+
+GANSS-Clock-Model ::= SEQUENCE (SIZE (1..maxGANSSClockMod)) OF GANSS-SatelliteClockModelItem
+
+GANSS-CNAVclockModel ::= SEQUENCE {
+ cnavToc BIT STRING (SIZE (11)),
+ cnavTop BIT STRING (SIZE (11)),
+ cnavURA0 BIT STRING (SIZE (5)),
+ cnavURA1 BIT STRING (SIZE (3)),
+ cnavURA2 BIT STRING (SIZE (3)),
+ cnavAf2 BIT STRING (SIZE (10)),
+ cnavAf1 BIT STRING (SIZE (20)),
+ cnavAf0 BIT STRING (SIZE (26)),
+ cnavTgd BIT STRING (SIZE (13)),
+ cnavISCl1cp BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl1cd BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl1ca BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl2c BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl5i5 BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl5q5 BIT STRING (SIZE (13)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-CNAVclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-CNAVclockModel-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Common-Data ::= SEQUENCE {
+ ganss-Ionospheric-Model GANSS-Ionospheric-Model OPTIONAL,
+ ganss-Rx-Pos GANSS-RX-Pos OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Common-Data-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Common-Data-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-Additional-Ionospheric-Model CRITICALITY ignore EXTENSION GANSS-Additional-Ionospheric-Model PRESENCE optional }|
+ { ID id-GANSS-Earth-Orientation-Parameters CRITICALITY ignore EXTENSION GANSS-Earth-Orientation-Parameters PRESENCE optional },
+ ...
+}
+
+GANSS-CommonDataInfoReq ::= SEQUENCE {
+ ionospheric-Model BOOLEAN OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-CommonDataInfoReq-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-CommonDataInfoReq-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSS-AddIonoModelReq CRITICALITY ignore EXTENSION GANSS-AddIonoModelReq PRESENCE optional} |
+ {ID id-GANSS-EarthOrientParaReq CRITICALITY ignore EXTENSION GANSS-EarthOrientParaReq PRESENCE optional} ,
+ ...
+}
+
+GANSS-Data-Bit-Assistance ::= SEQUENCE {
+ ganssTod INTEGER (0..59,...),
+ dataBitAssistancelist GANSS-DataBitAssistanceList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Data-Bit-Assistance-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-DataBitAssistanceList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSS-DataBitAssistanceItem
+
+GANSS-DataBitAssistanceItem ::= SEQUENCE {
+ satId INTEGER(0..63),
+ dataBitAssistanceSgnList GANSS-DataBitAssistanceSgnList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-DataBitAssistanceItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-DataBitAssistanceItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-DataBitAssistanceSgnList ::= SEQUENCE (SIZE (1..maxSgnType)) OF GANSS-DataBitAssistanceSgnItem
+
+
+
+GANSS-DataBitAssistanceSgnItem ::= SEQUENCE {
+ ganss-SignalId GANSS-Signal-ID,
+ ganssDataBits BIT STRING (SIZE (1..1024)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-DataBitAssistanceSgnItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-DataBitAssistanceSgnItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ReqItem ::= SEQUENCE {
+ ganssTod INTEGER (0..86399),
+ ganss-Data-Bit-Assistance-ReqList GANSS-Data-Bit-Assistance-ReqList,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-Data-Bit-Assistance-ReqItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ReqItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ReqList ::= SEQUENCE {
+ dGANSS-Signal-ID BIT STRING (SIZE (8)),
+ ganss-DataBitInterval INTEGER(0..15),
+ ganss-SatelliteInfo SEQUENCE (SIZE (1..maxGANSSSat)) OF INTEGER(0..63) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-Data-Bit-Assistance-ReqList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ReqList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-DeltaUT1 ::= SEQUENCE {
+ b1 BIT STRING (SIZE(11)),
+ b2 BIT STRING (SIZE(10)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-DeltaUT1-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-DeltaUT1-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Earth-Orientation-Parameters ::= SEQUENCE {
+ teop BIT STRING (SIZE (16)),
+ pmX BIT STRING (SIZE (21)),
+ pmXdot BIT STRING (SIZE (15)),
+ pmY BIT STRING (SIZE (21)),
+ pmYdot BIT STRING (SIZE (15)),
+ deltaUT1 BIT STRING (SIZE (31)),
+ deltaUT1dot BIT STRING (SIZE (19)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Earth-Orientation-Parameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Earth-Orientation-Parameters-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-EarthOrientParaReq ::= BOOLEAN
+
+GANSS-GenericDataInfoReqList ::= SEQUENCE (SIZE(1..maxNoGANSS)) OF GANSS-GenericDataInfoReqItem
+
+GANSS-GenericDataInfoReqItem ::= SEQUENCE {
+ ganss-Id GANSS-ID OPTIONAL,
+ ganss-Navigation-Model-And-Time-Recovery BOOLEAN OPTIONAL,
+ ganss-Time-Model-GNSS-GNSS BIT STRING (SIZE (9)) OPTIONAL,
+ ganss-UTC-Model BOOLEAN OPTIONAL,
+ ganss-Almanac BOOLEAN OPTIONAL,
+ ganss-Real-Time-Integrity BOOLEAN OPTIONAL,
+ ganss-Data-Bit-Assistance-Req GANSS-Data-Bit-Assistance-ReqItem OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-GenericDataInfoReqItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-GenericDataInfoReqItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSS-AddNavigationModelsReq CRITICALITY ignore EXTENSION GANSS-AddNavigationModelsReq PRESENCE optional} |
+ {ID id-GANSS-AddUTCModelsReq CRITICALITY ignore EXTENSION GANSS-AddUTCModelsReq PRESENCE optional} |
+ {ID id-GANSS-AuxInfoReq CRITICALITY ignore EXTENSION GANSS-AuxInfoReq PRESENCE optional} |
+-- The following IE shall be present if 'GANSS-ID' in 'GANSS-GenericDataInfoReqItem' is '0' (SBAS)
+ {ID id-GANSS-SBAS-ID CRITICALITY ignore EXTENSION GANSS-SBAS-ID PRESENCE optional} ,
+ ...
+}
+
+GANSS-Generic-Data ::= SEQUENCE (SIZE(1..maxNoGANSS)) OF GANSS-Generic-DataItem
+
+GANSS-Generic-DataItem ::= SEQUENCE {
+ ganss-Id GANSS-ID OPTIONAL,
+ dganss-Correction DGANSSCorrections OPTIONAL,
+ ganss-Navigation-Model-And-Time-Recovery GANSS-Navigation-Model-And-Time-Recovery OPTIONAL,
+ ganss-Time-Model GANSS-Time-Model OPTIONAL,
+ ganss-UTC-TIME GANSS-UTC-Model OPTIONAL,
+ ganss-Almanac GANSS-Almanac OPTIONAL,
+ ganss-Real-Time-Integrity GANSS-Real-Time-Integrity OPTIONAL,
+ ganss-Data-Bit-Assistance GANSS-Data-Bit-Assistance OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Generic-DataItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Generic-DataItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-Additional-Time-Models CRITICALITY ignore EXTENSION GANSS-Additional-Time-Models PRESENCE optional }|
+ { ID id-GANSS-Additional-Navigation-Models CRITICALITY ignore EXTENSION GANSS-Additional-Navigation-Models PRESENCE optional }|
+ { ID id-GANSS-Additional-UTC-Models CRITICALITY ignore EXTENSION GANSS-Additional-UTC-Models PRESENCE optional }|
+ { ID id-GANSS-Auxiliary-Information CRITICALITY ignore EXTENSION GANSS-Auxiliary-Information PRESENCE optional }|
+ -- The following element shall be present if 'GANSS-ID' in 'GANSS-Generic-DataItem' is '0' ('SBAS')
+ { ID id-GANSS-SBAS-ID CRITICALITY ignore EXTENSION GANSS-SBAS-ID PRESENCE optional },
+ ...
+}
+
+
+GANSS-GLONASSclockModel ::= SEQUENCE {
+ gloTau BIT STRING (SIZE (22)),
+ gloGamma BIT STRING (SIZE (11)),
+ gloDeltaTau BIT STRING (SIZE (5)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-GLONASSclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-GLONASSclockModel-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-ID ::= INTEGER(0..7,...)
+
+
+GANSS-Information ::= SEQUENCE {
+ gANSS-CommonDataInfoReq GANSS-CommonDataInfoReq OPTIONAL,
+ gANSS-GenericDataInfoReqList GANSS-GenericDataInfoReqList OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Ionospheric-Model ::= SEQUENCE {
+ alpha-zero-ionos BIT STRING (SIZE (12)),
+ alpha-one-ionos BIT STRING (SIZE (12)),
+ alpha-two-ionos BIT STRING (SIZE (12)),
+ gANSS-IonosphereRegionalStormFlags GANSS-IonosphereRegionalStormFlags OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Ionospheric-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Ionospheric-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-IonosphereRegionalStormFlags ::= SEQUENCE {
+ storm-flag-one BOOLEAN,
+ storm-flag-two BOOLEAN,
+ storm-flag-three BOOLEAN,
+ storm-flag-four BOOLEAN,
+ storm-flag-five BOOLEAN,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-IonosphereRegionalStormFlags-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-IonosphereRegionalStormFlags-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-KeplerianParametersAlm ::= SEQUENCE {
+ t-oa INTEGER(0..255),
+ iod-a INTEGER(0..3),
+ gANSS-SatelliteInformationKP GANSS-SatelliteInformationKP,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-KeplerianParametersAlm-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-KeplerianParametersAlm-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-KeplerianParametersOrb ::= SEQUENCE {
+ toe-nav BIT STRING (SIZE (14)),
+ ganss-omega-nav BIT STRING (SIZE (32)),
+ delta-n-nav BIT STRING (SIZE (16)),
+ m-zero-nav BIT STRING (SIZE (32)),
+ omegadot-nav BIT STRING (SIZE (24)),
+ ganss-e-nav BIT STRING (SIZE (32)),
+ idot-nav BIT STRING (SIZE (14)),
+ a-sqrt-nav BIT STRING (SIZE (32)),
+ i-zero-nav BIT STRING (SIZE (32)),
+ omega-zero-nav BIT STRING (SIZE (32)),
+ c-rs-nav BIT STRING (SIZE (16)),
+ c-is-nav BIT STRING (SIZE (16)),
+ c-us-nav BIT STRING (SIZE (16)),
+ c-rc-nav BIT STRING (SIZE (16)),
+ c-ic-nav BIT STRING (SIZE (16)),
+ c-uc-nav BIT STRING (SIZE (16)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-KeplerianParametersOrb-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-KeplerianParametersOrb-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-NAVclockModel ::= SEQUENCE {
+ navToc BIT STRING (SIZE (16)),
+ navaf2 BIT STRING (SIZE (8)),
+ navaf1 BIT STRING (SIZE (16)),
+ navaf0 BIT STRING (SIZE (22)),
+ navTgd BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NAVclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NAVclockModel-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Navigation-Model-And-Time-Recovery ::= SEQUENCE {
+ ganss-Transmission-Time GANSS-Transmission-Time,
+ non-broadcastIndication ENUMERATED{true} OPTIONAL,
+ ganssSatInfoNav GANSS-Sat-Info-Nav,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Navigation-Model-And-Time-Recovery-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Navigation-Model-And-Time-Recovery-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-NavModel-CNAVKeplerianSet ::= SEQUENCE {
+ cnavTop BIT STRING (SIZE (11)),
+ cnavURAindex BIT STRING (SIZE (5)),
+ cnavDeltaA BIT STRING (SIZE (26)),
+ cnavAdot BIT STRING (SIZE (25)),
+ cnavDeltaNo BIT STRING (SIZE (17)),
+ cnavDeltaNoDot BIT STRING (SIZE (23)),
+ cnavMo BIT STRING (SIZE (33)),
+ cnavE BIT STRING (SIZE (33)),
+ cnavOmega BIT STRING (SIZE (33)),
+ cnavOMEGA0 BIT STRING (SIZE (33)),
+ cnavDeltaOmegaDot BIT STRING (SIZE (17)),
+ cnavIo BIT STRING (SIZE (33)),
+ cnavIoDot BIT STRING (SIZE (15)),
+ cnavCis BIT STRING (SIZE (16)),
+ cnavCic BIT STRING (SIZE (16)),
+ cnavCrs BIT STRING (SIZE (24)),
+ cnavCrc BIT STRING (SIZE (24)),
+ cnavCus BIT STRING (SIZE (21)),
+ cnavCuc BIT STRING (SIZE (21)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NavModel-CNAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NavModel-CNAVKeplerianSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-NavModel-GLONASSecef ::= SEQUENCE {
+ gloEn BIT STRING (SIZE (5)),
+ gloP1 BIT STRING (SIZE(2)),
+ gloP2 BIT STRING (SIZE (1)),
+ gloM BIT STRING (SIZE (2)) OPTIONAL,
+ gloX BIT STRING (SIZE (27)),
+ gloXdot BIT STRING (SIZE (24)),
+ gloXdotdot BIT STRING (SIZE (5)),
+ gloY BIT STRING (SIZE (27)),
+ gloYdot BIT STRING (SIZE (24)),
+ gloYdotdot BIT STRING (SIZE (5)),
+ gloZ BIT STRING (SIZE (27)),
+ gloZdot BIT STRING (SIZE (24)),
+ gloZdotdot BIT STRING (SIZE (5)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NavModel-GLONASSecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NavModel-GLONASSecef-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-NavModel-NAVKeplerianSet ::= SEQUENCE {
+ navURA BIT STRING (SIZE (4)),
+ navFitFlag BIT STRING (SIZE (1)),
+ navToe BIT STRING (SIZE (16)),
+ navOmega BIT STRING (SIZE (32)),
+ navDeltaN BIT STRING (SIZE (16)),
+ navM0 BIT STRING (SIZE (32)),
+ navOmegaADot BIT STRING (SIZE (24)),
+ navE BIT STRING (SIZE (32)),
+ navIDot BIT STRING (SIZE (14)),
+ navAPowerHalf BIT STRING (SIZE (32)),
+ navI0 BIT STRING (SIZE (32)),
+ navOmegaA0 BIT STRING (SIZE (32)),
+ navCrs BIT STRING (SIZE (16)),
+ navCis BIT STRING (SIZE (16)),
+ navCus BIT STRING (SIZE (16)),
+ navCrc BIT STRING (SIZE (16)),
+ navCic BIT STRING (SIZE (16)),
+ navCuc BIT STRING (SIZE (16)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NavModel-NAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NavModel-NAVKeplerianSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-NavModel-SBASecef ::= SEQUENCE {
+ -- The following IE shall be present if 'GANSS-SBASclockModel' in 'GANSS-AddClockModels' is not included in 'Ganss-Sat-Info-AddNavList'
+ sbasTo BIT STRING (SIZE (13)) OPTIONAL,
+ sbasAccuracy BIT STRING (SIZE (4)),
+ sbasXg BIT STRING (SIZE (30)),
+ sbasYg BIT STRING (SIZE (30)),
+ sbasZg BIT STRING (SIZE (25)),
+ sbasXgDot BIT STRING (SIZE (17)),
+ sbasYgDot BIT STRING (SIZE (17)),
+ sbasZgDot BIT STRING (SIZE (18)),
+ sbasXgDotDot BIT STRING (SIZE (10)),
+ sbagYgDotDot BIT STRING (SIZE (10)),
+ sbasZgDotDot BIT STRING (SIZE (10)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NavModel-SBASecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NavModel-SBASecef-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Orbit-Model ::= CHOICE {
+ gANSS-keplerianParameters GANSS-KeplerianParametersOrb,
+ ...
+}
+
+GANSS-Real-Time-Integrity ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSS-RealTimeInformationItem
+
+GANSS-RealTimeInformationItem ::= SEQUENCE {
+ bad-ganss-satId INTEGER(0..63),
+ bad-ganss-signalId BIT STRING(SIZE(8)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-RealTimeInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-RealTimeInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-RX-Pos ::= SEQUENCE {
+ latitudeSign ENUMERATED{north,south},
+ degreesOfLatitude INTEGER(0..2147483647),
+ degreesOfLongitude INTEGER(-2147483648..2147483647),
+ directionOfAltitude ENUMERATED{height,depth},
+ altitude INTEGER(0..32767),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-RX-Pos-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-RX-Pos-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SatelliteClockModelItem ::= SEQUENCE {
+ t-oc BIT STRING (SIZE (14)),
+ a-i2 BIT STRING (SIZE (12)),
+ a-i1 BIT STRING (SIZE (18)),
+ a-i0 BIT STRING (SIZE (28)),
+ t-gd BIT STRING (SIZE (10)) OPTIONAL,
+ model-id INTEGER(0..1,...) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SatelliteClockModelItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SatelliteClockModelItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SatelliteInformationKP ::= SEQUENCE (SIZE (1..maxGANSSSatAlmanac)) OF GANSS-SatelliteInformationKPItem
+
+GANSS-SatelliteInformationKPItem ::= SEQUENCE {
+ satId INTEGER(0..63),
+ ganss-e-alm BIT STRING (SIZE (11)),
+ ganss-delta-I-alm BIT STRING (SIZE (11)),
+ ganss-omegadot-alm BIT STRING (SIZE (11)),
+ ganss-svhealth-alm BIT STRING (SIZE (4)),
+ ganss-delta-a-sqrt-alm BIT STRING (SIZE (17)),
+ ganss-omegazero-alm BIT STRING (SIZE (16)),
+ ganss-m-zero-alm BIT STRING (SIZE (16)),
+ ganss-omega-alm BIT STRING (SIZE (16)),
+ ganss-af-zero-alm BIT STRING (SIZE (14)),
+ ganss-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SatelliteInformationKPItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SatelliteInformationKPItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Ganss-Sat-Info-AddNavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE {
+ satId INTEGER (0..63),
+ svHealth BIT STRING (SIZE (6)),
+ iod BIT STRING (SIZE (11)),
+ ganssAddClockModels GANSS-AddClockModels,
+ ganssAddOrbitModels GANSS-AddOrbitModels,
+ ie-Extensions ProtocolExtensionContainer { { Ganss-Sat-Info-AddNavList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Ganss-Sat-Info-AddNavList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-GLOkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-GLOkp
+
+GANSS-SAT-Info-Almanac-GLOkp ::= SEQUENCE {
+ gloAlmNA BIT STRING (SIZE(11)),
+ gloAlmnA BIT STRING (SIZE(5)),
+ gloAlmHA BIT STRING (SIZE(5)),
+ gloAlmLambdaA BIT STRING (SIZE(21)),
+ gloAlmTlambdaA BIT STRING (SIZE(21)),
+ gloAlmDeltaIA BIT STRING (SIZE(18)),
+ gloAkmDeltaTA BIT STRING (SIZE(22)),
+ gloAlmDeltaTdotA BIT STRING (SIZE(7)),
+ gloAlmEpsilonA BIT STRING (SIZE(15)),
+ gloAlmOmegaA BIT STRING (SIZE(16)),
+ gloAlmTauA BIT STRING (SIZE(10)),
+ gloAlmCA BIT STRING (SIZE(1)),
+ gloAlmMA BIT STRING (SIZE(2)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-GLOkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-GLOkp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-MIDIkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-MIDIkp
+
+GANSS-SAT-Info-Almanac-MIDIkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ midiAlmE BIT STRING (SIZE (11)),
+ midiAlmDeltaI BIT STRING (SIZE (11)),
+ midiAlmOmegaDot BIT STRING (SIZE (11)),
+ midiAlmSqrtA BIT STRING (SIZE (17)),
+ midiAlmOmega0 BIT STRING (SIZE (16)),
+ midiAlmOmega BIT STRING (SIZE (16)),
+ midiAlmMo BIT STRING (SIZE (16)),
+ midiAlmaf0 BIT STRING (SIZE (11)),
+ midiAlmaf1 BIT STRING (SIZE (10)),
+ midiAlmL1Health BIT STRING (SIZE (1)),
+ midiAlmL2Health BIT STRING (SIZE (1)),
+ midiAlmL5Health BIT STRING (SIZE (1)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-MIDIkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-MIDIkp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-NAVkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-NAVkp
+
+GANSS-SAT-Info-Almanac-NAVkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ navAlmE BIT STRING (SIZE (16)),
+ navAlmDeltaI BIT STRING (SIZE (16)),
+ navAlmOMEGADOT BIT STRING (SIZE (16)),
+ navAlmSVHealth BIT STRING (SIZE (8)),
+ navAlmSqrtA BIT STRING (SIZE (24)),
+ navAlmOMEGAo BIT STRING (SIZE (24)),
+ navAlmOmega BIT STRING (SIZE (24)),
+ navAlmMo BIT STRING (SIZE (24)),
+ navAlmaf0 BIT STRING (SIZE (11)),
+ navAlmaf1 BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-NAVkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-NAVkp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-REDkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-REDkp
+
+GANSS-SAT-Info-Almanac-REDkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ redAlmDeltaA BIT STRING (SIZE (8)),
+ redAlmOmega0 BIT STRING (SIZE (7)),
+ redAlmPhi0 BIT STRING (SIZE (7)),
+ redAlmL1Health BIT STRING (SIZE (1)),
+ redAlmL2Health BIT STRING (SIZE (1)),
+ redAlmL5Health BIT STRING (SIZE (1)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-REDkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-REDkp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-SBASecefList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-SBASecef
+
+GANSS-SAT-Info-Almanac-SBASecef ::= SEQUENCE {
+ sbasAlmDataID BIT STRING (SIZE(2)),
+ svID INTEGER(0..63),
+ sbasAlmHealth BIT STRING (SIZE(8)),
+ sbasAlmXg BIT STRING (SIZE(15)),
+ sbasAlmYg BIT STRING (SIZE(15)),
+ sbasAlmZg BIT STRING (SIZE(9)),
+ sbasAlmXgdot BIT STRING (SIZE(3)),
+ sbasAlmYgDot BIT STRING (SIZE(3)),
+ sbasAlmZgDot BIT STRING (SIZE(4)),
+ sbasAlmTo BIT STRING (SIZE(11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-SBASecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-SBASecef-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-Sat-Info-Nav ::= SEQUENCE (SIZE(1..maxGANSSSat)) OF SEQUENCE {
+ satId INTEGER(0..63),
+ svHealth BIT STRING (SIZE(5)),
+ iod BIT STRING (SIZE(10)),
+ ganssClockModel GANSS-Clock-Model,
+ ganssOrbitModel GANSS-Orbit-Model,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Sat-Info-Nav-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Sat-Info-Nav-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-SBAS-ID ::= ENUMERATED {
+ waas,
+ egnos,
+ msas,
+ gagan,
+ ...
+ }
+
+GANSS-SBASclockModel ::= SEQUENCE {
+ sbasTo BIT STRING (SIZE (13)),
+ sbasAgfo BIT STRING (SIZE (12)),
+ sbasAgf1 BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SBASclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SBASclockModel-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Signal-ID ::= INTEGER(0..7,...)
+
+GANSS-StatusHealth ::= ENUMERATED {
+ udre-scale-1dot0,
+ udre-scale-0dot75,
+ udre-scale-0dot5,
+ udre-scale-0dot3,
+ udre-scale-0dot2,
+ udre-scale-0dot1,
+ no-data,
+ invalid-data
+}
+
+GANSS-Time-ID ::= INTEGER(0..7,...)
+
+GANSS-Time-Model ::= SEQUENCE {
+ ganss-time-model-Ref-Time INTEGER(0..37799),
+ ganss-t-a0 INTEGER(-2147483648.. 2147483647),
+ ganss-t-a1 INTEGER(-8388608.. 8388607) OPTIONAL,
+ ganss-t-a2 INTEGER(-64..63) OPTIONAL,
+ gnss-to-id ENUMERATED{gps,...,galileo,qzss,glonass},
+ ganss-wk-number INTEGER(0..8191) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Time-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Time-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Transmission-Time ::= SEQUENCE {
+ ganssDay INTEGER(0..8191) OPTIONAL,
+ ganssTod INTEGER(0..86399),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Transmission-Time-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Transmission-Time-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTC-Model ::= SEQUENCE {
+ a-one-utc BIT STRING (SIZE (24)),
+ a-zero-utc BIT STRING (SIZE (32)),
+ t-ot-utc BIT STRING (SIZE (8)),
+ w-n-t-utc BIT STRING (SIZE (8)),
+ delta-t-ls-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 { { GANSS-UTC-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTC-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTCmodelSet1 ::= SEQUENCE {
+ utcA0 BIT STRING (SIZE(16)),
+ utcA1 BIT STRING (SIZE(13)),
+ utcA2 BIT STRING (SIZE(7)),
+ utcDeltaTls BIT STRING (SIZE(8)),
+ utcTot BIT STRING (SIZE(16)),
+ utcWNot BIT STRING (SIZE(13)),
+ utcWNlsf BIT STRING (SIZE(8)),
+ utcDN BIT STRING (SIZE(4)),
+ utcDeltaTlsf BIT STRING (SIZE(8)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-UTCmodelSet1-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTCmodelSet1-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTCmodelSet2 ::= SEQUENCE {
+ nA BIT STRING (SIZE(11)),
+ tauC BIT STRING (SIZE(32)),
+ deltaUT1 GANSS-DeltaUT1 OPTIONAL,
+ kp BIT STRING (SIZE(2)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-UTCmodelSet2-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTCmodelSet2-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTCmodelSet3 ::= SEQUENCE {
+ utcA1wnt BIT STRING (SIZE(24)),
+ utcA0wnt BIT STRING (SIZE(32)),
+ utcTot BIT STRING (SIZE(8)),
+ utcWNt BIT STRING (SIZE(8)),
+ utcDeltaTls BIT STRING (SIZE(8)),
+ utcWNlsf BIT STRING (SIZE(8)),
+ utcDN BIT STRING (SIZE(8)),
+ utcDeltaTlsf BIT STRING (SIZE(8)),
+ utcStandardID BIT STRING (SIZE(3)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-UTCmodelSet3-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTCmodelSet3-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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-Info-for-E-DCH ::= ENUMERATED {
+ rv0,
+ rvtable
+}
+
+HARQ-MemoryPartitioning ::= CHOICE {
+ implicit HARQ-MemoryPartitioning-Implicit,
+ explicit HARQ-MemoryPartitioning-Explicit,
+ ...
+ }
+
+HARQ-MemoryPartitioning-Implicit ::= SEQUENCE {
+ number-of-Processes INTEGER (1..8,...,12|14|16),
+ 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 ::= {
+-- The following IE may only be used in FDD, in MIMO dual stream transmission mode
+ {ID id-HARQ-MemoryPartitioningInfoExtForMIMO CRITICALITY ignore EXTENSION HARQ-MemoryPartitioningInfoExtForMIMO PRESENCE optional},
+ ...
+}
+
+HARQ-MemoryPartitioningList ::= SEQUENCE (SIZE (1..maxNrOfHARQProcesses)) OF HARQ-MemoryPartitioningItem
+
+HARQ-MemoryPartitioningInfoExtForMIMO ::= SEQUENCE (SIZE (4|6|8)) 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 ::= {
+ ...
+}
+
+HARQ-Preamble-Mode ::= ENUMERATED {
+mode0,
+mode1
+}
+
+
+HARQ-Process-Allocation-2ms-EDCH ::= BIT STRING ( SIZE(maxNrOfEDCHHARQProcesses2msEDCH) )
+
+HARQ-Preamble-Mode-Activation-Indicator ::=ENUMERATED {
+ harqPreambleModeActivated
+}
+
+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,...,16777216..256000000)
+-- except for 7.68Mcps TDD Unit bit/s, Range 0..2^24-1..2^24..256,000,000, Step 1 bit
+-- 7.68Mcps TDD Unit 2bit/s, Range 0..2^24-1..2^24..256,000,000, Step 1
+
+
+HS-DSCHProvidedBitRateValueInformation-For-CellPortion ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF HS-DSCHProvidedBitRateValueInformation-For-CellPortion-Item
+
+HS-DSCHProvidedBitRateValueInformation-For-CellPortion-Item ::= SEQUENCE{
+ cellPortionID CellPortionID,
+ hS-DSCHProvidedBitRateValue HS-DSCHProvidedBitRate,
+ iE-Extensions ProtocolExtensionContainer { {HS-DSCHProvidedBitRateValueInformation-For-CellPortion-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHProvidedBitRateValueInformation-For-CellPortion-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR-Item
+
+HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR-Item ::= SEQUENCE{
+ cellPortionLCRID CellPortionLCRID,
+ hS-DSCHProvidedBitRateValue HS-DSCHProvidedBitRate,
+ iE-Extensions ProtocolExtensionContainer { {HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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%
+
+HS-DSCHRequiredPowerValueInformation-For-CellPortion ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF HS-DSCHRequiredPowerValueInformation-For-CellPortion-Item
+
+HS-DSCHRequiredPowerValueInformation-For-CellPortion-Item ::= SEQUENCE{
+ cellPortionID CellPortionID,
+ hS-DSCHRequiredPowerValue HS-DSCHRequiredPower,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHRequiredPowerValueInformation-For-CellPortion-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHRequiredPowerValueInformation-For-CellPortion-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR-Item
+
+HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR-Item ::= SEQUENCE{
+ cellPortionLCRID CellPortionLCRID,
+ hS-DSCHRequiredPowerValue HS-DSCHRequiredPower,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDPA-Associated-PICH-Information ::= CHOICE {
+ hsdpa-PICH-Shared-with-PCH HSDPA-PICH-Shared-with-PCH,
+ hsdpa-PICH-notShared-with-PCH HSDPA-PICH-notShared-with-PCH,
+ ...
+}
+
+HSDPA-PICH-Shared-with-PCH ::= SEQUENCE {
+ hsdpa-PICH-SharedPCH-ID CommonPhysicalChannelID,
+ ...
+}
+
+HSDPA-PICH-notShared-with-PCH ::= SEQUENCE {
+ hSDPA-PICH-notShared-ID CommonPhysicalChannelID,
+ fdd-DL-Channelisation-CodeNumber FDD-DL-ChannelisationCodeNumber,
+ pich-Power PICH-Power,
+ pich-Mode PICH-Mode,
+ sttd-Indicator STTD-Indicator,
+ ...
+}
+
+HSDSCH-Common-System-InformationFDD ::= SEQUENCE {
+ hsdsch-Common-Information HSDSCH-Common-Information OPTIONAL,
+ commonMACFlow-Specific-Information CommonMACFlow-Specific-InfoList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Common-System-InformationFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Common-System-InformationFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Common-System-Information-ResponseFDD ::= SEQUENCE {
+ hsSCCH-Specific-Information-ResponseFDD HSSCCH-Specific-InformationRespListFDD OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ commonMACFlow-Specific-Info-Response CommonMACFlow-Specific-InfoList-Response OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Common-System-Information-ResponseFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Common-System-Information-ResponseFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Common-Information ::= SEQUENCE {
+ cCCH-PriorityQueue-Id PriorityQueue-Id,
+ sRB1-PriorityQueue-Id PriorityQueue-Id,
+ associatedCommon-MACFlow Common-MACFlow-ID,
+ fACH-Measurement-Occasion-Cycle-Length-Coefficient FACH-Measurement-Occasion-Cycle-Length-Coefficient OPTIONAL,
+ rACH-Measurement-Result RACH-Measurement-Result,
+ bCCH-Specific-HSDSCH-RNTI-Information BCCH-Specific-HSDSCH-RNTI-Information,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Common-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-Common-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 ::= {
+ { ID id-HARQ-Preamble-Mode CRITICALITY ignore EXTENSION HARQ-Preamble-Mode PRESENCE optional}|
+ { ID id-MIMO-ActivationIndicator CRITICALITY reject EXTENSION MIMO-ActivationIndicator PRESENCE optional}|
+ { ID id-HSDSCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION HSDSCH-MACdPDUSizeFormat PRESENCE optional}|
+ { ID id-SixtyfourQAM-UsageAllowedIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-UsageAllowedIndicator PRESENCE optional}|
+ { ID id-UE-with-enhanced-HS-SCCH-support-indicator CRITICALITY ignore EXTENSION NULL PRESENCE optional}|
+ { ID id-EnhancedHSServingCC-Abort CRITICALITY reject EXTENSION EnhancedHSServingCC-Abort PRESENCE optional}|
+ { ID id-UE-SupportIndicatorExtension CRITICALITY ignore EXTENSION UE-SupportIndicatorExtension PRESENCE optional}|
+ { ID id-Single-Stream-MIMO-ActivationIndicator CRITICALITY reject EXTENSION Single-Stream-MIMO-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+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 ::= {
+ { ID id-HSSICH-SIRTarget CRITICALITY ignore EXTENSION UL-SIR PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-HSSICH-TPC-StepSize CRITICALITY ignore EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-HSDSCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION HSDSCH-MACdPDUSizeFormat PRESENCE optional}|
+ { ID id-tSN-Length CRITICALITY reject EXTENSION TSN-Length PRESENCE optional }|
+ -- Applicable for 1.28Mcps TDD when using multiple frequencies
+ { ID id-MIMO-ActivationIndicator CRITICALITY reject EXTENSION MIMO-ActivationIndicator PRESENCE optional},
+...
+}
+
+
+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 ::= {
+ { ID id-HARQ-Preamble-Mode CRITICALITY ignore EXTENSION HARQ-Preamble-Mode PRESENCE optional}|
+ { ID id-HSSICH-SIRTarget CRITICALITY ignore EXTENSION UL-SIR PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-ueCapability-Info CRITICALITY ignore EXTENSION UE-Capability-Information PRESENCE optional}|
+ { ID id-HSSICH-TPC-StepSize CRITICALITY ignore EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-HS-PDSCH-Code-Change-Grant CRITICALITY ignore EXTENSION HS-PDSCH-Code-Change-Grant PRESENCE optional}|
+ -- Applicable to FDD only
+ { ID id-MIMO-Mode-Indicator CRITICALITY reject EXTENSION MIMO-Mode-Indicator PRESENCE optional }|
+ { ID id-HSDSCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION HSDSCH-MACdPDUSizeFormat PRESENCE optional}|
+ { ID id-SixtyfourQAM-UsageAllowedIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-UsageAllowedIndicator PRESENCE optional}|
+ { ID id-EnhancedHSServingCC-Abort CRITICALITY reject EXTENSION EnhancedHSServingCC-Abort PRESENCE optional}|
+ { ID id-UE-SupportIndicatorExtension CRITICALITY ignore EXTENSION UE-SupportIndicatorExtension PRESENCE optional}|
+ { ID id-Single-Stream-MIMO-Mode-Indicator CRITICALITY reject EXTENSION Single-Stream-MIMO-Mode-Indicator PRESENCE optional },
+ -- Applicable to FDD only
+ ...
+}
+
+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 ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+HSDSCH-MACdPDUSizeFormat ::= ENUMERATED {
+ indexedMACdPDU-Size,
+ flexibleMACdPDU-Size
+}
+
+HSDSCH-MACdPDU-SizeCapability ::= ENUMERATED {
+ indexedSizeCapable,
+ flexibleSizeCapable
+}
+
+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 ::= {
+ { ID id-HARQ-Preamble-Mode CRITICALITY ignore EXTENSION HARQ-Preamble-Mode PRESENCE optional}|
+ { ID id-HSSICH-SIRTarget CRITICALITY ignore EXTENSION UL-SIR PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-ueCapability-Info CRITICALITY ignore EXTENSION UE-Capability-Information PRESENCE optional}|
+ { ID id-HSSICH-TPC-StepSize CRITICALITY ignore EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-MIMO-Mode-Indicator CRITICALITY reject EXTENSION MIMO-Mode-Indicator PRESENCE optional }|
+ { ID id-SixtyfourQAM-UsageAllowedIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-UsageAllowedIndicator PRESENCE optional}|
+ { ID id-EnhancedHSServingCC-Abort CRITICALITY reject EXTENSION EnhancedHSServingCC-Abort PRESENCE optional}|
+ { ID id-UE-SupportIndicatorExtension CRITICALITY ignore EXTENSION UE-SupportIndicatorExtension PRESENCE optional}|
+ { ID id-Single-Stream-MIMO-Mode-Indicator CRITICALITY reject EXTENSION Single-Stream-MIMO-Mode-Indicator PRESENCE optional },
+ -- Applicable to FDD only
+ ...
+}
+
+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 ::= {
+{ ID id-HARQ-Preamble-Mode-Activation-Indicator CRITICALITY ignore EXTENSION HARQ-Preamble-Mode-Activation-Indicator PRESENCE optional}|
+ { ID id-MIMO-N-M-Ratio CRITICALITY ignore EXTENSION MIMO-N-M-Ratio PRESENCE optional}|
+ { ID id-SixtyfourQAM-DL-UsageIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-DL-UsageIndicator PRESENCE optional }|
+ { ID id-HSDSCH-TBSizeTableIndicator CRITICALITY ignore EXTENSION HSDSCH-TBSizeTableIndicator PRESENCE optional },
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information ::= SEQUENCE {
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ measurement-Power-Offset Measurement-Power-Offset,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ hSDSCH-RNTI HSDSCH-RNTI,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-FDD-Secondary-Serving-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-MIMO-ActivationIndicator CRITICALITY reject EXTENSION MIMO-ActivationIndicator PRESENCE optional}|
+ {ID id-Single-Stream-MIMO-ActivationIndicator CRITICALITY reject EXTENSION Single-Stream-MIMO-ActivationIndicator PRESENCE optional}|
+ {ID id-DiversityMode CRITICALITY reject EXTENSION DiversityMode PRESENCE optional}|
+ {ID id-TransmitDiversityIndicator CRITICALITY reject EXTENSION TransmitDiversityIndicator PRESENCE optional},
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-Response ::= SEQUENCE {
+ hsSCCH-Specific-Information-ResponseFDD HSSCCH-Specific-InformationRespListFDD OPTIONAL,
+ sixtyfourQAM-DL-UsageIndicator SixtyfourQAM-DL-UsageIndicator OPTIONAL,
+ hSDSCH-TBSizeTableIndicator HSDSCH-TBSizeTableIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-FDD-Secondary-Serving-Information-Respons-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-Respons-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-MIMO-N-M-Ratio CRITICALITY ignore EXTENSION MIMO-N-M-Ratio PRESENCE optional},
+ ...
+}
+
+HS-DSCH-Secondary-Serving-Information-To-Modify ::= SEQUENCE {
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL,
+ hSSCCH-CodeChangeGrant HSSCCH-Code-Change-Grant OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Secondary-Serving-Information-To-Modify-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Secondary-Serving-Information-To-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-MIMO-Mode-Indicator CRITICALITY reject EXTENSION MIMO-Mode-Indicator PRESENCE optional }|
+ {ID id-Single-Stream-MIMO-Mode-Indicator CRITICALITY reject EXTENSION Single-Stream-MIMO-Mode-Indicator PRESENCE optional }|
+ {ID id-DiversityMode CRITICALITY reject EXTENSION DiversityMode PRESENCE optional}|
+ {ID id-TransmitDiversityIndicator CRITICALITY reject EXTENSION TransmitDiversityIndicator PRESENCE optional}|
+-- This IE shall be present if Diversity Mode IE is present and is not set to "none"
+ {ID id-NonCellSpecificTxDiversity CRITICALITY reject EXTENSION NonCellSpecificTxDiversity PRESENCE optional},
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised ::= SEQUENCE {
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-MIMO-Mode-Indicator CRITICALITY reject EXTENSION MIMO-Mode-Indicator PRESENCE optional }|
+ {ID id-Single-Stream-MIMO-Mode-Indicator CRITICALITY reject EXTENSION Single-Stream-MIMO-Mode-Indicator PRESENCE optional },
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Update-Information ::= SEQUENCE {
+ hsSCCHCodeChangeIndicator HSSCCH-CodeChangeIndicator OPTIONAL,
+ hS-PDSCH-Code-Change-Indicator HS-PDSCH-Code-Change-Indicator OPTIONAL,
+ -- This IE shall never be included. If received it shall be ignored.
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-FDD-Secondary-Serving-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-Secondary-Serving-Cell-Change-Information-Response ::= SEQUENCE {
+ hS-DSCH-Secondary-Serving-cell-choice HS-DSCH-Secondary-Serving-cell-change-choice,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Secondary-Serving-Cell-Change-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Secondary-Serving-Cell-Change-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-Secondary-Serving-cell-change-choice ::= CHOICE {
+ hS-Secondary-Serving-cell-change-successful HS-Secondary-Serving-cell-change-successful,
+ hS-Secondary-Serving-cell-change-unsuccessful HS-Secondary-Serving-cell-change-unsuccessful,
+ ...
+}
+
+HS-Secondary-Serving-cell-change-successful ::= SEQUENCE {
+ hS-DSCH-FDD-Secondary-Serving-Information-Response HS-DSCH-FDD-Secondary-Serving-Information-Response,
+ iE-Extensions ProtocolExtensionContainer { { HS-Secondary-Serving-cell-change-successful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-Secondary-Serving-cell-change-successful-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-Secondary-Serving-cell-change-unsuccessful ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { HS-Secondary-Serving-cell-change-unsuccessful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-Secondary-Serving-cell-change-unsuccessful-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+HS-DSCH-Secondary-Serving-Remove ::= NULL
+
+
+HSDSCH-Paging-System-InformationFDD ::= SEQUENCE {
+ paging-MACFlow-Specific-Information Paging-MACFlow-Specific-Information,
+ hSSCCH-Power DL-Power,
+ hSPDSCH-Power DL-Power,
+ number-of-PCCH-transmission Number-of-PCCH-transmission,
+ transport-Block-Size-List Transport-Block-Size-List,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Paging-System-InformationFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Paging-System-InformationFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Paging-System-Information-ResponseFDD ::= SEQUENCE (SIZE (1..maxNrOfPagingMACFlow)) OF HSDSCH-Paging-System-Information-ResponseList
+
+HSDSCH-Paging-System-Information-ResponseList ::= SEQUENCE {
+ pagingMACFlow-ID Paging-MACFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ hSPDSCH-Code-Index HSPDSCH-Code-Index,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Paging-System-Information-ResponseList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Paging-System-Information-ResponseList-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 or 7.68Mcps TDD
+ hsSCCH-Specific-Information-ResponseTDDLCR HSSCCH-Specific-InformationRespListTDDLCR OPTIONAL, -- Not Applicable to 3.84Mcps TDD or 7.68Mcps TDD,This HSSCCH Specific Information is for the first Frequency repetition, HSSCCH Specific Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL, -- This HARQ Memory Partitioning Information is for the first Frequency repetition, HARQ Memory Partitioning Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-hsSCCH-Specific-Information-ResponseTDD768 CRITICALITY ignore EXTENSION HSSCCH-Specific-InformationRespListTDD768 PRESENCE optional}|
+{ ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies ,This is the UARFCN for the first Frequency repetition
+{ ID id-multipleFreq-HSPDSCH-InformationList-ResponseTDDLCR CRITICALITY ignore EXTENSION MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies ,This MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR is the HS-SCCH and HARQ Memory Partitioning information for the 2nd and beyond HS-PDSCH frequencies.
+{ ID id-multicarrier-number CRITICALITY ignore EXTENSION Multicarrier-Number PRESENCE optional }|
+ -- Applicable for 1.28Mcps TDD when using multiple frequencies
+ {ID id-MIMO-SFMode-For-HSPDSCHDualStream CRITICALITY reject EXTENSION MIMO-SFMode-For-HSPDSCHDualStream PRESENCE optional}|
+ {ID id-MIMO-ReferenceSignal-InformationListLCR CRITICALITY reject EXTENSION MIMO-ReferenceSignal-InformationListLCR PRESENCE optional},
+ ...
+}
+
+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 ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+HSDSCH-TBSizeTableIndicator ::= ENUMERATED {
+ octet-aligned
+}
+
+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 ::= {
+ { ID id-MaximumMACdPDU-SizeExtended CRITICALITY ignore EXTENSION MAC-PDU-SizeExtended PRESENCE optional},
+ ...
+}
+
+HSDSCH-InitialWindowSize ::= INTEGER (1..255)
+-- Number of MAC-d PDUs.
+
+
+HSDSCH-PreconfigurationInfo ::= SEQUENCE {
+ setsOfHS-SCCH-Codes SetsOfHS-SCCH-Codes,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning,
+ e-DCH-FDD-DL-Control-Channel-Information E-DCH-FDD-DL-Control-Channel-Information OPTIONAL,
+ hARQ-Preamble-Mode-Activation-Indicator HARQ-Preamble-Mode-Activation-Indicator OPTIONAL,
+ mIMO-N-M-Ratio MIMO-N-M-Ratio OPTIONAL,
+ continuousPacketConnectivityHS-SCCH-less-Information-Response ContinuousPacketConnectivityHS-SCCH-less-Information-Response OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-PreconfigurationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-PreconfigurationInfo-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Additional-EDCH-Preconfiguration-Information CRITICALITY ignore EXTENSION Additional-EDCH-Preconfiguration-Information PRESENCE optional },
+ ...
+}
+
+Additional-EDCH-Preconfiguration-Information ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Preconfiguration-Information-ItemIEs
+
+Additional-EDCH-Preconfiguration-Information-ItemIEs ::= SEQUENCE {
+ e-DCH-FDD-DL-Control-Channel-Information E-DCH-FDD-DL-Control-Channel-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Preconfiguration-Information-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Preconfiguration-Information-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-PreconfigurationSetup ::= SEQUENCE {
+ mAChsResetScheme MAChsResetScheme,
+ hSDSCH-Physical-Layer-Category INTEGER (1..64,...),
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM,
+ secondaryServingCells SecondaryServingCells OPTIONAL,
+ numPrimaryHS-SCCH-Codes NumHS-SCCH-Codes OPTIONAL,
+ hARQ-Preamble-Mode HARQ-Preamble-Mode OPTIONAL,
+ mIMO-ActivationIndicator MIMO-ActivationIndicator OPTIONAL,
+ hSDSCH-MACdPDUSizeFormat HSDSCH-MACdPDUSizeFormat OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ uE-with-enhanced-HS-SCCH-support-indicator NULL OPTIONAL,
+ continuousPacketConnectivityHS-SCCH-less-Information ContinuousPacketConnectivityHS-SCCH-less-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCHPreconfigurationSetup-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCHPreconfigurationSetup-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-UE-SupportIndicatorExtension CRITICALITY ignore EXTENSION UE-SupportIndicatorExtension PRESENCE optional},
+ ...
+}
+
+
+HS-SCCH-PreconfiguredCodes ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HS-SCCH-PreconfiguredCodesItem
+
+HS-SCCH-PreconfiguredCodesItem ::= SEQUENCE {
+ hS-SCCH-CodeNumber HS-SCCH-CodeNumber,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-PreconfiguredCodesItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-PreconfiguredCodesItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-CodeNumber ::= INTEGER (0..127)
+
+
+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 ::= {
+ {ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional},
+ -- Applicable for 1.28Mcps TDD when using multiple frequencies. this IE indicates the frequency which is actually used by the HS-SCCH
+ ...
+}
+HSSCCH-Specific-InformationRespListTDD768 ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Specific-InformationRespItemTDD768
+
+HSSCCH-Specific-InformationRespItemTDD768 ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ hSSICH-Info768 HSSICH-Info768,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemTDD768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemTDD768-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 ::= {
+ { ID id-Extended-HS-SICH-ID CRITICALITY ignore EXTENSION Extended-HS-SICH-ID PRESENCE optional},
+ -- used if the HS-SICH identity has a value larger than 31
+ ...
+}
+
+HSSICH-Info768 ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeslot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-Info-768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-Info-768-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 ::= {
+ { ID id-Additional-failed-HS-SICH CRITICALITY reject EXTENSION HS-SICH-failed PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD only, used when there are more than 20 failed HS-SICH
+ {ID id-Additional-missed-HS-SICH CRITICALITY reject EXTENSION HS-SICH-missed PRESENCE optional}|
+ -- Mandatory for 1.28Mcps TDD only, used when there are more than 20 missed HS-SICH
+ {ID id-Additional-total-HS-SICH CRITICALITY reject EXTENSION HS-SICH-total PRESENCE optional},
+ -- Mandatory for 1.28Mcps TDD only, used when there are more than 20 total HS-SICH
+ ...
+}
+
+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
+}
+
+HS-PDSCH-Code-Change-Indicator ::= ENUMERATED {
+ hsPDSCHCodeChangeNeeded
+}
+
+HS-PDSCH-Code-Change-Grant ::= ENUMERATED {
+ changeGranted
+}
+
+HSDSCH-Configured-Indicator::= ENUMERATED {
+ configured-HS-DSCH,
+ no-configured-HS-DSCH
+}
+
+HS-DSCH-Serving-Cell-Change-Info ::= SEQUENCE {
+ hspdsch-RL-ID RL-ID,
+ hSDSCH-FDD-Information HSDSCH-FDD-Information OPTIONAL,
+ hsdsch-RNTI HSDSCH-RNTI,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Serving-Cell-Change-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Serving-Cell-Change-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Information CRITICALITY reject EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Information PRESENCE optional },
+ ...
+}
+
+HS-DSCH-Serving-Cell-Change-Info-Response::= SEQUENCE {
+ hS-DSCH-serving-cell-choice HS-DSCH-serving-cell-choice,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-serving-cell-informationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCH-serving-cell-informationResponse-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-serving-cell-choice ::= CHOICE {
+ hS-serving-cell-change-successful HS-serving-cell-change-successful,
+ hS-serving-cell-change-unsuccessful HS-serving-cell-change-unsuccessful,
+ ...
+}
+
+HS-serving-cell-change-successful ::= SEQUENCE {
+ hSDSCH-FDD-Information-Response HSDSCH-FDD-Information-Response,
+ iE-Extensions ProtocolExtensionContainer { { HS-serving-cell-change-successful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-serving-cell-change-successful-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response CRITICALITY ignore EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Information-Response PRESENCE optional },
+ ...
+}
+
+HS-serving-cell-change-unsuccessful ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { HS-serving-cell-change-unsuccessful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-serving-cell-change-unsuccessful-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HS-DSCH-DRX-Cycle-FACH ::= ENUMERATED {v4,v8,v16,v32,...}
+
+HS-DSCH-RX-Burst-FACH::= ENUMERATED {v1,v2,v4,v8,v16,...}
+
+
+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 ::= {
+ {ID id-HS-PDSCH-Code-Change-Indicator CRITICALITY ignore EXTENSION HS-PDSCH-Code-Change-Indicator PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ ...
+}
+HSPDSCH-Code-Index ::= INTEGER (1..maxHS-PDSCHCodeNrComp-1)
+-- index of first HS-PDSCH code
+
+HSPDSCH-First-Code-Index ::= INTEGER (1..maxHS-PDSCHCodeNrComp-1)
+ -- index of first HS-PDSCH code
+
+HSPDSCH-Second-Code-Index ::= INTEGER (1..maxHS-PDSCHCodeNrComp-1)
+ -- index of second HS-PDSCH code
+
+HSPDSCH-Second-Code-Support ::= BOOLEAN
+ -- true: applied, false: not applied
+
+HSDPA-Associated-PICH-InformationLCR ::= CHOICE {
+ hsdpa-PICH-Shared-with-PCH HSDPA-PICH-Shared-with-PCH,
+ hsdpa-PICH-notShared-with-PCHLCR HSDPA-PICH-notShared-with-PCHLCR,
+ ...
+}
+
+
+HSDPA-PICH-notShared-with-PCHLCR ::= SEQUENCE {
+ hSDPA-PICH-notShared-ID 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,
+ sttd-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { HSDPA-PICH-notShared-with-PCHLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDPA-PICH-notShared-with-PCHLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HSDSCH-Common-System-InformationLCR ::= SEQUENCE {
+ hsdsch-Common-InformationLCR HSDSCH-Common-InformationLCR OPTIONAL,
+ commonMACFlow-Specific-InformationLCR CommonMACFlow-Specific-InfoListLCR OPTIONAL,
+ common-H-RNTI-InformationLCR Common-H-RNTI-InformationLCR OPTIONAL,
+ sync-InformationLCR Sync-InformationLCR OPTIONAL,
+ tDD-AckNack-Power-Offset TDD-AckNack-Power-Offset OPTIONAL,
+ hSSICH-SIRTarget UL-SIR OPTIONAL,
+ hSSICH-TPC-StepSize TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Common-System-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Common-System-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Common-System-Information-ResponseLCR ::= SEQUENCE {
+ hsSCCH-Specific-Information-ResponseLCR HSSCCH-Specific-InformationRespListLCR OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+-- This HARQ Memory Partitioning Information is for the first Frequency repetition, HARQ Memory Partitioning Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-HARQ-MemoryPartitioning-InformationList.
+ commonMACFlow-Specific-Info-ResponseLCR CommonMACFlow-Specific-InfoList-ResponseLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Common-System-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Common-System-Information-ResponseLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional}|
+-- Applicable to 1.28Mcps TDD when using multiple frequencies. This is the UARFCN for the first Frequency repetition
+{ ID id-MultipleFreq-HARQ-MemoryPartitioning-InformationList CRITICALITY ignore EXTENSION MultipleFreq-HARQ-MemoryPartitioning-InformationList PRESENCE optional },
+-- Applicable to 1.28Mcps TDD when using multiple frequencies.This HARQ MemoryPartitioning Information is for the 2nd and beyond frequencies.
+ ...
+}
+
+HSDSCH-Common-InformationLCR ::= SEQUENCE {
+ cCCH-PriorityQueue-Id PriorityQueue-Id,
+ sRB1-PriorityQueue-Id PriorityQueue-Id,
+ associatedCommon-MACFlowLCR Common-MACFlow-ID-LCR,
+ fACH-Measurement-Occasion-Cycle-Length-Coefficient FACH-Measurement-Occasion-Cycle-Length-Coefficient OPTIONAL,
+ bCCH-Specific-HSDSCH-RNTI-InformationLCR BCCH-Specific-HSDSCH-RNTI-InformationLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Common-InformationLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-Common-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Paging-System-InformationLCR ::= SEQUENCE {
+ paging-MACFlow-Specific-InformationLCR Paging-MACFlow-Specific-InformationLCR,
+ hSSCCH-Power DL-Power OPTIONAL,
+ hSPDSCH-Power DL-Power OPTIONAL,
+ reception-Window-Size INTEGER(1..16) OPTIONAL,
+ n-PCH INTEGER(1..8) OPTIONAL,
+ paging-Subchannel-Size INTEGER(1..3) OPTIONAL,
+ transport-Block-Size-List Transport-Block-Size-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Paging-System-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Paging-System-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Paging-System-Information-ResponseLCR ::= SEQUENCE (SIZE (1..maxNrOfPagingMACFlow)) OF HSDSCH-Paging-System-Information-ResponseListLCR
+
+HSDSCH-Paging-System-Information-ResponseListLCR ::= SEQUENCE {
+ pagingMACFlow-ID Paging-MACFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Paging-System-Information-ResponseListLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Paging-System-Information-ResponseListLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-ID-LCR ::= INTEGER (0..255)
+
+HSSCCH-Specific-InformationRespListLCR ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHsLCR)) OF HSSCCH-Specific-InformationRespItemLCR
+
+HSSCCH-Specific-InformationRespItemLCR ::= SEQUENCE {
+ hS-SCCH-ID-LCR HS-SCCH-ID-LCR,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+HS-DSCH-Semi-PersistentScheduling-Information-LCR ::= SEQUENCE {
+ transport-Block-Size-List Transport-Block-Size-List-LCR,
+ repetition-Period-List-LCR Repetition-Period-List-LCR,
+ hS-DSCH-SPS-Reservation-Indicator SPS-Reservation-Indicator OPTIONAL,
+ hS-DSCH-SPS-Operation-Indicator HS-DSCH-SPS-Operation-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Semi-PersistentScheduling-Information-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transport-Block-Size-List-LCR ::= SEQUENCE (SIZE (1..maxNoOfTBSs-Mapping-HS-DSCH-SPS)) OF Transport-Block-Size-Item-LCR
+
+Transport-Block-Size-Item-LCR ::= SEQUENCE {
+ transport-Block-Size-maping-Index-LCR Transport-Block-Size-maping-Index-LCR,
+ transport-Block-Size-Index-LCR Transport-Block-Size-Index-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Transport-Block-Size-Item-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Transport-Block-Size-Item-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transport-Block-Size-maping-Index-LCR ::= INTEGER (0..maxNoOfTBSs-Mapping-HS-DSCH-SPS-1)
+
+Transport-Block-Size-Index-LCR ::= INTEGER (1..maxNoOfHS-DSCH-TBSsLCR)
+
+Repetition-Period-List-LCR ::= SEQUENCE (SIZE (1..maxNoOfRepetition-Period-LCR)) OF Repetition-Period-Item-LCR
+
+Repetition-Period-Item-LCR ::= SEQUENCE {
+ repetitionPeriodIndex RepetitionPeriodIndex,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Repetition-Period-Item-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Repetition-Period-Item-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RepetitionPeriodIndex ::= INTEGER (0..maxNoOfRepetitionPeriod-SPS-LCR-1)
+
+SPS-Reservation-Indicator ::= ENUMERATED {
+ reserve
+}
+
+HS-DSCH-SPS-Operation-Indicator ::= CHOICE {
+ logicalChannellevel LogicalChannellevel,
+ priorityQueuelevel PriorityQueuelevel,
+ ...
+}
+
+LogicalChannellevel ::= BIT STRING (SIZE (16))
+
+PriorityQueuelevel ::= BIT STRING (SIZE (8))
+
+HS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR ::= SEQUENCE {
+ transport-Block-Size-List Transport-Block-Size-List-LCR OPTIONAL,
+ repetition-Period-List-LCR Repetition-Period-List-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-HS-DSCH-SPS-Reservation-Indicator CRITICALITY ignore EXTENSION SPS-Reservation-Indicator PRESENCE optional }|
+{ ID id-HS-DSCH-SPS-Operation-Indicator CRITICALITY reject EXTENSION HS-DSCH-SPS-Operation-Indicator PRESENCE optional },
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR ::= SEQUENCE {
+ hS-SICH-InformationList-for-HS-DSCH-SPS HS-SICH-InformationList-for-HS-DSCH-SPS,
+ initial-HS-PDSCH-SPS-Resource Initial-HS-PDSCH-SPS-Resource OPTIONAL,
+ buffer-Size-for-HS-DSCH-SPS Process-Memory-Size OPTIONAL,
+ number-of-Processes-for-HS-DSCH-SPS Number-of-Processes-for-HS-DSCH-SPS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-InformationList-for-HS-DSCH-SPS ::= SEQUENCE (SIZE (1..maxNoOf-HS-SICH-SPS)) OF HS-SICH-InformationItem-for-HS-DSCH-SPS
+
+HS-SICH-InformationItem-for-HS-DSCH-SPS ::= SEQUENCE {
+ hS-SICH-Mapping-Index HS-SICH-Mapping-Index OPTIONAL,
+ -- the IE is madatory for 1.28Mcps TDD.
+ hS-SICH-Type HS-SICH-Type,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationItem-for-HS-DSCH-SPS-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationItem-for-HS-DSCH-SPS-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Mapping-Index ::= INTEGER (0..maxNoOf-HS-SICH-SPS-1)
+
+HS-SICH-Type ::= CHOICE {
+ hS-SCCH-Associated-HS-SICH HS-SCCH-Associated-HS-SICH,
+ non-HS-SCCH-Associated-HS-SICH Non-HS-SCCH-Associated-HS-SICH,
+ ...
+}
+
+
+HS-SCCH-Associated-HS-SICH ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ extended-HS-SICH-ID Extended-HS-SICH-ID OPTIONAL,
+...
+}
+
+
+Non-HS-SCCH-Associated-HS-SICH::= SEQUENCE {
+ non-HS-SCCH-Aassociated-HS-SICH-ID Non-HS-SCCH-Aassociated-HS-SICH-ID,
+...
+}
+
+Non-HS-SCCH-Aassociated-HS-SICH-ID ::= INTEGER (0..255)
+
+Initial-HS-PDSCH-SPS-Resource::= SEQUENCE {
+ repetitionPeriodIndex RepetitionPeriodIndex,
+ repetitionLength RepetitionLength OPTIONAL,
+ -- the IE is not used.
+ hS-PDSCH-Offset TDD-PhysicalChannelOffset,
+ timeslot-Resource-Related-Information HS-DSCH-TimeslotResourceLCR,
+ startCode TDD-ChannelisationCode,
+ endCode TDD-ChannelisationCode,
+ transport-Block-Size-Index Transport-Block-Size-Index-LCR,
+ modulationType ModulationSPS-LCR,
+ hS-SICH-Mapping-Index HS-SICH-Mapping-Index,
+ iE-Extensions ProtocolExtensionContainer { { Initial-HS-PDSCH-SPS-Resource-ExtIEs } } OPTIONAL,
+...
+}
+
+Initial-HS-PDSCH-SPS-Resource-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MidambleShiftLCR CRITICALITY reject EXTENSION MidambleShiftLCR PRESENCE optional },
+ -- mandaroty for 1.28Mcps TDD.
+ ...
+}
+
+HS-DSCH-TimeslotResourceLCR ::= BIT STRING (SIZE (5))
+
+ModulationSPS-LCR ::= ENUMERATED {
+ qPSK,
+ sixteenQAM,
+ ...
+}
+
+Number-of-Processes-for-HS-DSCH-SPS ::= INTEGER (1..16)
+
+Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst::= SEQUENCE {
+ non-HS-SCCH-Associated-HS-SICH-InformationList Non-HS-SCCH-Associated-HS-SICH-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs } } OPTIONAL,
+...
+}
+
+Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext CRITICALITY reject EXTENSION Non-HS-SCCH-Associated-HS-SICH-InformationList-Ext PRESENCE optional },
+ ...
+}
+
+Non-HS-SCCH-Associated-HS-SICH-InformationList ::= SEQUENCE (SIZE (0..maxNoOfNon-HS-SCCH-Assosiated-HS-SICH)) OF Non-HS-SCCH-Associated-HS-SICH-InformationItem
+
+Non-HS-SCCH-Associated-HS-SICH-InformationList-Ext ::= SEQUENCE (SIZE (0..maxNoOfNon-HS-SCCH-Assosiated-HS-SICH-Ext)) OF Non-HS-SCCH-Associated-HS-SICH-InformationItem
+
+Non-HS-SCCH-Associated-HS-SICH-InformationItem ::= SEQUENCE {
+ non-HS-SCCH-Aassociated-HS-SICH-ID Non-HS-SCCH-Aassociated-HS-SICH-ID,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ uARFCN UARFCN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Non-HS-SCCH-Associated-HS-SICH-InformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Non-HS-SCCH-Associated-HS-SICH-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst::= SEQUENCE {
+ modify-non-HS-SCCH-Associated-HS-SICH-InformationList Modify-Non-HS-SCCH-Associated-HS-SICH-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs } } OPTIONAL,
+...
+}
+
+Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext CRITICALITY reject EXTENSION Modify-Non-HS-SCCH-Associated-HS-SICH-InformationList-Ext PRESENCE optional },
+ ...
+}
+
+Modify-Non-HS-SCCH-Associated-HS-SICH-InformationList ::= SEQUENCE (SIZE (0..maxNoOfNon-HS-SCCH-Assosiated-HS-SICH)) OF Modify-Non-HS-SCCH-Associated-HS-SICH-InformationItem
+
+Modify-Non-HS-SCCH-Associated-HS-SICH-InformationList-Ext ::= SEQUENCE (SIZE (0.. maxNoOfNon-HS-SCCH-Assosiated-HS-SICH-Ext)) OF Modify-Non-HS-SCCH-Associated-HS-SICH-InformationItem
+
+Modify-Non-HS-SCCH-Associated-HS-SICH-InformationItem ::= SEQUENCE {
+ non-HS-SCCH-Aassociated-HS-SICH-ID Non-HS-SCCH-Aassociated-HS-SICH-ID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ uARFCN UARFCN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Modify-Non-HS-SCCH-Associated-HS-SICH-InformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Modify-Non-HS-SCCH-Associated-HS-SICH-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (0..maxNoOfNon-HS-SCCH-Assosiated-HS-SICH)) OF Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqstItem
+
+Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext ::= SEQUENCE (SIZE (0..maxNoOfNon-HS-SCCH-Assosiated-HS-SICH-Ext)) OF Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqstItem
+
+Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqstItem ::= SEQUENCE {
+non-HS-SCCH-Aassociated-HS-SICH-ID Non-HS-SCCH-Aassociated-HS-SICH-ID,
+...
+}
+
+MIMO-ReferenceSignal-InformationListLCR ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSICH-ReferenceSignal-InformationLCR
+
+HSSICH-ReferenceSignal-InformationLCR ::= SEQUENCE {
+ midambleConfigurationLCR MidambleConfigurationLCR,
+ midambleShift INTEGER (0..15),
+ timeSlotLCR TimeSlotLCR,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-ReferenceSignal-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-ReferenceSignal-InformationLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSICH-ReferenceSignal-InformationModifyLCR ::= SEQUENCE {
+ hSSICH-ReferenceSignal-InformationLCR HSSICH-ReferenceSignal-InformationLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-ReferenceSignal-InformationModifyLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-ReferenceSignal-InformationModifyLCR-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,
+ not-Used-sIB8,
+ not-Used-sIB9,
+ not-Used-sIB10,
+ sIB11,
+ sIB12,
+ sIB13,
+ sIB13dot1,
+ sIB13dot2,
+ sIB13dot3,
+ sIB13dot4,
+ sIB14,
+ sIB15,
+ sIB15dot1,
+ sIB15dot2,
+ sIB15dot3,
+ sIB16,
+ ...,
+ sIB17,
+ sIB15dot4,
+ sIB18,
+ sIB15dot5,
+ sIB5bis,
+ sIB11bis,
+ sIB15bis,
+ sIB15dot1bis,
+ sIB15dot2bis,
+ sIB15dot3bis,
+ sIB15dot6,
+ sIB15dot7,
+ sIB15dot8,
+ sIB15dot2ter,
+ sIB19
+}
+
+IMB-Parameters ::= SEQUENCE {
+ sub-Frame-Number Sub-Frame-Number,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { IMB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IMB-Parameters-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Inactivity-Threshold-for-UE-DRX-Cycle ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128, v256, v512}
+-- Unit subframe
+
+Inactivity-Threshold-for-UE-DTX-Cycle2 ::= ENUMERATED {v1, v4, v8, v16, v32, v64, v128, v256}
+-- Unit E-DCH TTI
+
+Inactivity-Threshold-for-UE-Grant-Monitoring ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128, v256}
+-- Unit E-DCH TTI
+
+
+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,
+ ...,
+ dGANSSThreshold DGANSSThreshold
+}
+
+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 ::= {
+-- The following IE shall be present if the Information Type Item IE indicates 'GANSS Information'
+ { ID id-GANSS-Information CRITICALITY ignore EXTENSION GANSS-Information PRESENCE conditional }|
+-- The following IE shall be present if the Information Type Item IE indicates 'DGANSS Corrections'
+ { ID id-DGANSS-Corrections-Req CRITICALITY ignore EXTENSION DGANSS-Corrections-Req PRESENCE conditional },
+ ...
+}
+
+Information-Type-Item ::= ENUMERATED {
+ gpsinformation,
+ dgpscorrections,
+ gpsrxpos,
+ ...,
+ gANSSInformation,
+ dGANSSCorrections,
+ gANSS-RX-Pos
+}
+
+Initial-DL-DPCH-TimingAdjustment-Allowed ::= ENUMERATED {
+ initial-DL-DPCH-TimingAdjustment-Allowed
+}
+
+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,
+ ...
+}
+
+IPMulticastIndication ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ bindingID BindingID,
+ cFNOffset INTEGER(0..255),
+ iE-Extensions ProtocolExtensionContainer { { IPMulticastIndication-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPMulticastIndication-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPMulticastDataBearerIndication ::= BOOLEAN
+-- true: IP Multicast used, false: IP Multicast not used
+
+BurstModeParams ::= SEQUENCE {
+ burstStart INTEGER(0..15),
+ burstLength INTEGER(10..25),
+ burstFreq INTEGER(1..16),
+ ...
+}
+
+IPDLTDDParameter-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLTDDParameterLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IdleIntervalInformation ::= SEQUENCE {
+ idleIntervalInfo-k INTEGER{none(0),two(2),three(3)} (0..3),
+ idleIntervalInfo-offset INTEGER(0..7),
+ ...
+}
+
+
+-- ==========================================
+-- J
+-- ==========================================
+
+-- ==========================================
+-- K
+-- ==========================================
+
+-- ==========================================
+-- L
+-- ==========================================
+
+LimitedPowerIncrease ::= ENUMERATED {
+ used,
+ not-used
+}
+
+Local-Cell-ID ::= INTEGER (0..268435455)
+
+LTGI-Presence ::= BOOLEAN
+-- True = the Long Term Grant Indicator shall be used within E-DCH grants
+
+LCRTDD-Uplink-Physical-Channel-Capability ::= SEQUENCE {
+ maxTimeslotsPerSubFrame INTEGER(1..6),
+ maxPhysChPerTimeslot ENUMERATED {one,two,...,three,four},
+ iE-Extensions ProtocolExtensionContainer { { LCRTDD-Uplink-Physical-Channel-Capability-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LCRTDD-Uplink-Physical-Channel-Capability-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- M
+-- ==========================================
+
+MAC-DTX-Cycle-2ms ::= ENUMERATED {v1, v4, v5, v8, v10, v16, v20}
+
+MAC-DTX-Cycle-10ms ::= ENUMERATED {v5, v10, v20}
+
+MAC-ehs-Reset-Timer ::= ENUMERATED {v1, v2, v3, v4,...}
+
+MACdPDU-Size ::= INTEGER (1..5000,...)
+ -- In case of E-DCH value 8 and values not multiple of 8 shall not be used
+
+MAC-PDU-SizeExtended ::= INTEGER (1..1504,...,1505)
+ -- In case of E-DCH value 1 shall not be used
+
+MAC-Inactivity-Threshold ::= ENUMERATED {v1, v2, v4, v8, v16, v32, v64, v128, v256, v512, infinity}
+ -- Unit subframe
+
+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 ::= {
+ ...
+}
+
+MACesGuaranteedBitRate ::= INTEGER (0..16777215,...,16777216..256000000)
+
+MACes-Maximum-Bitrate-LCR ::= INTEGER (0..256000000,...)
+
+MACeReset-Indicator ::= ENUMERATED {mACeReset}
+
+MAChsGuaranteedBitRate ::= INTEGER (0..16777215,...,16777216..256000000)
+
+MAChsReorderingBufferSize-for-RLC-UM ::= INTEGER (0..300,...)
+-- Unit kBytes
+
+MAC-hsWindowSize ::= ENUMERATED {v4, v6, v8, v12, v16, v24, v32,..., v64, v128}
+-- For 1.28Mcps TDD when TSN length is configured to 9bits, ENUMERATED (32, 64, 96, 128, 160, 192, 256,...)
+
+
+MAChsResetScheme ::= ENUMERATED {
+ always,
+ interNodeB-change
+}
+
+
+MaximumDL-PowerCapability ::= INTEGER(0..500)
+-- Unit dBm, Range 0dBm .. 50dBm, Step +0.1dB
+
+Max-Bits-MACe-PDU-non-scheduled ::= INTEGER(1..maxNrOfBits-MACe-PDU-non-scheduled)
+
+Max-EDCH-Resource-Allocation-for-CCCH ::= ENUMERATED {v8, v12, v16, v24, v32, v40, v80, v120,...}
+
+Max-Period-for-Collistion-Resolution ::= INTEGER(8..24,...)
+
+Max-TB-Sizes ::= SEQUENCE {
+ maximum-TB-Size-cell-edge-users INTEGER (0..5000,...),
+ maximum-TB-Size-other-users INTEGER (0..5000,...),
+ iE-Extensions ProtocolExtensionContainer { {Max-TB-Sizes-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+
+Max-TB-Sizes-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Maximum-Number-of-Retransmissions-For-E-DCH ::= INTEGER (0..15)
+
+Maximum-Target-ReceivedTotalWideBandPower-LCR ::= INTEGER (0..621)
+-- mapping as for RTWP measurement value, as specified in [23]
+
+MaximumTransmissionPower ::= INTEGER(0..500)
+-- Unit dBm, Range 0dBm .. 50dBm, Step +0.1dB
+
+
+MaxNrOfUL-DPDCHs ::= INTEGER (1..6)
+
+MaxPRACH-MidambleShifts ::= ENUMERATED {
+ shift4,
+ shift8,
+ ...,
+ shift16
+}
+
+Max-Set-E-DPDCHs ::= ENUMERATED {
+ vN256, vN128, vN64, vN32, vN16, vN8, vN4, v2xN4, v2xN2, v2xN2plus2xN4,
+ ...,
+ v2xM2plus2xM4
+ }
+-- Values related to [8]
+
+Max-UE-DTX-Cycle ::= ENUMERATED {
+ v5, v10, v20, v40, v64, v80, v128, v160,
+ ...
+ }
+
+
+MBMS-Capability ::= ENUMERATED{
+mbms-capable,
+mbms-non-capable
+}
+
+
+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
+
+MeasurementRecoveryBehavior ::= NULL
+
+MeasurementRecoveryReportingIndicator ::= NULL
+
+MeasurementRecoverySupportIndicator ::= NULL
+
+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 ::= {
+ ...
+}
+
+MICH-CFN ::= INTEGER (0..4095)
+
+MICH-Mode ::= ENUMERATED {
+ v18,
+ v36,
+ v72,
+ v144,
+ ...,
+ v16,
+ v32,
+ v64,
+ v128
+}
+
+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 ::= {
+ ...
+}
+
+MidambleShiftAndBurstType768 ::= CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2-768 MidambleConfigurationBurstType2-768,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftShort768,
+ ...
+ },
+ ...
+ },
+ type3 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ ...
+}
+
+MidambleConfigurationBurstType2-768 ::= ENUMERATED {v4, v8}
+
+MidambleShiftShort768 ::= INTEGER (0..7)
+
+MIMO-ActivationIndicator ::= NULL
+
+MIMO-Capability ::= ENUMERATED {
+ mimo-capable,
+ mimo-non-capable
+}
+
+
+MIMO-Mode-Indicator ::= ENUMERATED {
+ activate,
+ deactivate
+}
+
+MIMO-N-M-Ratio ::= ENUMERATED {v1-2, v2-3, v3-4, v4-5, v5-6, v6-7, v7-8, v8-9, v9-10, v1-1,...}
+
+MIMO-PilotConfiguration ::= CHOICE {
+ primary-and-secondary-CPICH CommonPhysicalChannelID,
+ normal-and-diversity-primary-CPICH NULL,
+ ...
+}
+
+MIMO-PilotConfigurationExtension ::= CHOICE {
+ primary-and-secondary-CPICH PrimaryAndSecondaryCPICHContainer,
+ normal-and-diversity-primary-CPICH NormalAndDiversityPrimaryCPICHContainer,
+ ...
+}
+
+
+MIMO-PowerOffsetForS-CPICHCapability ::= ENUMERATED {
+ s-CPICH-Power-Offset-Capable,
+ s-CPICH-Power-Offset-Not-Capable
+}
+
+MinimumDL-PowerCapability ::= INTEGER(0..800)
+-- Unit dBm, Range -30dBm .. 50dBm, Step +0.1dB
+
+MinimumReducedE-DPDCH-GainFactor ::= ENUMERATED {m8-15, m11-15, m15-15, m21-15, m30-15, m42-15, m60-15, m84-15,...}
+
+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
+
+Modification-Period ::= ENUMERATED { v1280, v2560, v5120, v10240,...}
+
+ModifyPriorityQueue ::= CHOICE {
+ addPriorityQueue PriorityQueue-InfoItem-to-Add,
+ modifyPriorityQueue PriorityQueue-InfoItem-to-Modify,
+ deletePriorityQueue PriorityQueue-Id,
+ ...
+}
+
+Modulation ::= ENUMERATED {
+ qPSK,
+ eightPSK,
+ -- 8PSK denotes 16QAM for S-CCPCH
+ ...
+}
+
+MinUL-ChannelisationCodeLength ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+}
+
+MultiplexingPosition ::= ENUMERATED {
+ fixed,
+ flexible
+}
+
+MAChs-ResetIndicator ::= ENUMERATED{
+ mAChs-NotReset
+}
+
+ModulationMBSFN ::= ENUMERATED {
+ qPSK,
+ sixteenQAM,
+ ...
+}
+
+MBSFN-CPICH-secondary-CCPCH-power-offset ::= INTEGER(-11..4,...)
+-- Unit dB, Step 1 dB, Range -11..4 dB.
+
+ModulationPO-MBSFN ::= CHOICE {
+ qPSK NULL,
+ sixteenQAM MBSFN-CPICH-secondary-CCPCH-power-offset,
+ ...
+}
+MBSFN-Only-Mode-Indicator ::= ENUMERATED {
+ mBSFN-Only-Mode
+}
+
+MBSFN-Only-Mode-Capability ::= ENUMERATED {
+ mBSFN-Only-Mode-capable,
+ mBSFN-Only-Mode-non-capable
+}
+
+Multicarrier-Number ::= INTEGER (1..maxHSDPAFrequency)
+
+MultipleFreq-HARQ-MemoryPartitioning-InformationList ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF MultipleFreq-HARQ-MemoryPartitioning-InformationItem
+--Includes the 2nd through the max number of frequencies information repetitions.
+
+MultipleFreq-HARQ-MemoryPartitioning-InformationItem ::= SEQUENCE {
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning,
+ uARFCN UARFCN,
+ iE-Extensions ProtocolExtensionContainer { { MultipleFreq-HARQ-MemoryPartitioning-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MultipleFreq-HARQ-MemoryPartitioning-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR ::= SEQUENCE (SIZE (1.. maxHSDPAFrequency-1)) OF MultipleFreq-HSPDSCH-InformationItem-ResponseTDDLCR
+--Includes the 2nd through the max number of frequency repetitions.
+
+MultipleFreq-HSPDSCH-InformationItem-ResponseTDDLCR ::= SEQUENCE{
+ hsSCCH-Specific-Information-ResponseTDDLCR HSSCCH-Specific-InformationRespListTDDLCR OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ uARFCN UARFCN, -- This is the UARFCN for the second and beyond Frequency repetition.
+ iE-Extensions ProtocolExtensionContainer { { MultipleFreq-HSPDSCH-InformationItem-ResponseTDDLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MultipleFreq-HSPDSCH-InformationItem-ResponseTDDLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+Multi-Cell-Capability ::= ENUMERATED {
+ multi-Cell-Capable,
+ multi-Cell-non-Capable
+}
+
+Multi-Cell-Capability-Info::= SEQUENCE {
+ multi-Cell-Capability Multi-Cell-Capability,
+ possible-Secondary-Serving-Cell-List Possible-Secondary-Serving-Cell-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Multi-Cell-Capability-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Multi-Cell-Capability-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multicell-EDCH-Information ::= ProtocolIE-Single-Container { {Multicell-EDCH-InformationItem} }
+
+Multicell-EDCH-InformationItem NBAP-PROTOCOL-IES ::= {
+ { ID id-Multicell-EDCH-InformationItemIEs CRITICALITY ignore TYPE Multicell-EDCH-InformationItemIEs PRESENCE mandatory }
+}
+
+Multicell-EDCH-InformationItemIEs ::= SEQUENCE {
+ dL-PowerBalancing-Information DL-PowerBalancing-Information OPTIONAL,
+ minimumReducedE-DPDCH-GainFactor MinimumReducedE-DPDCH-GainFactor OPTIONAL,
+ secondary-UL-Frequency-Activation-State Secondary-UL-Frequency-Activation-State OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Multicell-EDCH-InformationItemIEs-ExtIEs } } OPTIONAL,
+ ...
+
+}
+
+Multicell-EDCH-InformationItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multicell-EDCH-RL-Specific-Information ::= ProtocolIE-Single-Container { { Multicell-EDCH-RL-Specific-InformationItem} }
+
+Multicell-EDCH-RL-Specific-InformationItem NBAP-PROTOCOL-IES ::= {
+ { ID id-Multicell-EDCH-RL-Specific-InformationItemIEs CRITICALITY ignore TYPE Multicell-EDCH-RL-Specific-InformationItemIEs PRESENCE mandatory }
+}
+
+Multicell-EDCH-RL-Specific-InformationItemIEs::= SEQUENCE {
+ extendedPropagationDelay ExtendedPropagationDelay OPTIONAL,
+ primary-CPICH-Usage-for-Channel-Estimation Primary-CPICH-Usage-for-Channel-Estimation OPTIONAL,
+ secondary-CPICH-Information CommonPhysicalChannelID OPTIONAL,
+ secondary-CPICH-Information-Change Secondary-CPICH-Information-Change OPTIONAL,
+ e-AGCH-PowerOffset E-AGCH-PowerOffset OPTIONAL,
+ e-RGCH-PowerOffset E-RGCH-PowerOffset OPTIONAL,
+ e-HICH-PowerOffset E-HICH-PowerOffset OPTIONAL,
+ dLReferencePower DL-Power OPTIONAL,
+ e-DCH-DL-Control-Channel-Grant NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Multicell-EDCH-RL-Specific-InformationItemIEs-ExtIEs } } OPTIONAL,
+ ...
+
+}
+
+Multicell-EDCH-RL-Specific-InformationItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MIMO-SFMode-For-HSPDSCHDualStream ::= ENUMERATED {
+ sF1,
+ sF1SF16
+}
+
+-- ==========================================
+-- 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
+}
+
+NRepetitionsPerCyclePeriod ::= INTEGER (2..10)
+
+N-INSYNC-IND ::= INTEGER (1..256)
+
+N-OUTSYNC-IND ::= INTEGER (1..256)
+
+N-PROTECT ::= INTEGER(0..7)
+
+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
+ { ID id-neighbouringTDDCellMeasurementInformation768 CRITICALITY reject TYPE NeighbouringTDDCellMeasurementInformation768 PRESENCE mandatory }, -- Applicable to 7.68Mcps 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 ::= {
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformation768 ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformation768Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformation768Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NonCellSpecificTxDiversity ::= ENUMERATED {
+ txDiversity,
+ ...
+}
+
+NI-Information ::= SEQUENCE (SIZE (1..maxNrOfNIs)) OF Notification-Indicator
+
+Notification-Indicator ::= INTEGER (0..65535)
+
+
+NodeB-CommunicationContextID ::= INTEGER (0..1048575)
+
+NormalAndDiversityPrimaryCPICHContainer ::= SEQUENCE {
+ iE-Extensions ProtocolExtensionContainer { { NormalAndDiversityPrimaryCPICHContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NormalAndDiversityPrimaryCPICHContainer-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+NotificationIndicatorLength ::= ENUMERATED {
+ v2,
+ v4,
+ v8,
+ ...
+}
+
+
+NumberOfReportedCellPortions ::= INTEGER (1..maxNrOfCellPortionsPerCell,...)
+
+NumberOfReportedCellPortionsLCR ::= INTEGER (1..maxNrOfCellPortionsPerCellLCR,...)
+
+Number-of-PCCH-transmission ::= INTEGER (1..5)
+
+NSubCyclesPerCyclePeriod ::= INTEGER (1..16,...)
+
+N-E-UCCH ::= INTEGER (1..12)
+
+N-E-UCCHLCR ::= INTEGER (1..8)
+
+Number-Of-Supported-Carriers ::= ENUMERATED {
+ one-one-carrier,
+ one-three-carrier,
+ three-three-carrier,
+ one-six-carrier,
+ three-six-carrier,
+ six-six-carrier,
+ ...
+}
+
+NumHS-SCCH-Codes ::= INTEGER (1..maxNrOfHSSCCHCodes)
+
+NoOfTargetCellHS-SCCH-Order::= INTEGER (1..30)
+
+-- ==========================================
+-- O
+-- ==========================================
+
+Out-of-Sychronization-Window ::= ENUMERATED {
+ ms40,
+ ms80,
+ ms160,
+ ms320,
+ ms640,
+ ...
+}
+
+-- ==========================================
+-- P
+-- ==========================================
+
+PagingIndicatorLength ::= ENUMERATED {
+ v2,
+ v4,
+ v8,
+ ...
+}
+
+Paging-MACFlow-ID ::= INTEGER (0..maxNrOfPagingMACFlow-1)
+
+
+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
+
+PDSCH-ID ::= INTEGER (0..255)
+
+PDSCH-ID768 ::= INTEGER (0..511)
+
+PDSCHSet-ID ::= INTEGER (0..255)
+
+PICH-Mode ::= ENUMERATED {
+ v18,
+ v36,
+ v72,
+ v144,
+ ...
+}
+
+PICH-Power ::= INTEGER (-10..5)
+-- Unit dB, Range -10dB .. +5dB, Step +1dB
+
+Paging-MACFlows-to-DeleteFDD ::= SEQUENCE (SIZE (1.. maxNrOfPagingMACFlow)) OF Paging-MACFlows-to-DeleteFDD-Item
+
+Paging-MACFlows-to-DeleteFDD-Item ::= SEQUENCE {
+ paging-MACFlow-ID Paging-MACFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { Paging-MACFlows-to-DeleteFDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Paging-MACFlows-to-DeleteFDD-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Paging-MACFlow-Specific-Information ::= SEQUENCE (SIZE (1.. maxNrOfPagingMACFlow)) OF Paging-MAC-Flow-Specific-Information-Item
+
+Paging-MAC-Flow-Specific-Information-Item ::= SEQUENCE {
+ paging-MACFlow-Id Paging-MACFlow-ID,
+ hSDPA-associated-PICH-Info HSDPA-Associated-PICH-Information,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ tnl-qos TnlQos OPTIONAL,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ paging-MACFlow-PriorityQueue-Information Paging-MACFlow-PriorityQueue-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Paging-MAC-Flow-Specific-Information-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Paging-MAC-Flow-Specific-Information-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportBearerRequestIndicator CRITICALITY ignore EXTENSION TransportBearerRequestIndicator PRESENCE optional},
+-- This IE should not be contained if the MAC flow is setup in procedure, and it should be contained if the MAC flow is modified in procedure.
+ ...
+}
+
+Paging-MACFlow-PriorityQueue-Information ::= SEQUENCE (SIZE (1..maxNrOfpagingMACQueues)) OF Paging-MACFlow-PriorityQueue-Item
+
+Paging-MACFlow-PriorityQueue-Item ::= SEQUENCE {
+ priority-Queue-Information-for-Enhanced-PCH Priority-Queue-Information-for-Enhanced-FACH-PCH,
+ iE-Extensions ProtocolExtensionContainer { { Paging-MACFlow-PriorityQueue-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Paging-MACFlow-PriorityQueue-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Pattern-Sequence-Identifier ::= INTEGER (1.. maxNrOfDCHMeasurementOccasionPatternSequence)
+
+PhysicalChannelID-for-CommonERNTI-RequestedIndicator ::= ENUMERATED {
+ requested
+}
+
+PLCCHsequenceNumber ::= INTEGER (0..14)
+
+PLCCHinformation ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ sequenceNumber PLCCHsequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { { PLCCHinformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLCCHinformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Possible-Secondary-Serving-Cell-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Possible-Secondary-Serving-Cell
+
+Possible-Secondary-Serving-Cell ::= SEQUENCE {
+ local-Cell-ID Local-Cell-ID,
+ iE-Extensions ProtocolExtensionContainer { { Possible-Secondary-Serving-Cell-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Possible-Secondary-Serving-Cell-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerAdjustmentType ::= ENUMERATED {
+ none,
+ common,
+ individual
+}
+
+PowerOffset ::= INTEGER (0..24)
+-- PowerOffset = offset * 0.25
+-- Unit dB, Range 0dB .. +6dB, Step +0.25dB
+
+PowerOffsetForSecondaryCPICHforMIMO ::= INTEGER (-6..0)
+-- Unit dB, Range -6dB .. 0dB, Step +1dB
+
+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,
+ ...
+}
+
+PrecodingWeightSetRestriction ::= ENUMERATED {
+ preferred,
+ not-preferred
+}
+
+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
+}
+
+PrimaryAndSecondaryCPICHContainer ::= SEQUENCE {
+ power-Offset-For-Secondary-CPICH-for-MIMO PowerOffsetForSecondaryCPICHforMIMO,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryAndSecondaryCPICHContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+PrimaryAndSecondaryCPICHContainer-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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
+
+Priority-Queue-Information-for-Enhanced-FACH-PCH ::= SEQUENCE {
+ priorityQueue-Id PriorityQueue-Id,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ t1 T1,
+ mAC-ehs-Reset-Timer MAC-ehs-Reset-Timer,
+ -- shall be ignored in case of Enhanced PCH
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize,
+ maximum-MACcPDU-Size MAC-PDU-SizeExtended,
+ iE-Extensions ProtocolExtensionContainer { { Priority-Queue-Information-for-Enhanced-FACH-PCH-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Priority-Queue-Information-for-Enhanced-FACH-PCH-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 ::= {
+ { ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional}|
+ { ID id-DL-RLC-PDU-Size-Format CRITICALITY ignore EXTENSION DL-RLC-PDU-Size-Format PRESENCE optional}|
+ { ID id-UE-AggregateMaximumBitRate-Enforcement-Indicator CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate-Enforcement-Indicator PRESENCE optional},
+ ...
+}
+
+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 ::= {
+ { ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional} |
+ { ID id-DL-RLC-PDU-Size-Format CRITICALITY ignore EXTENSION DL-RLC-PDU-Size-Format PRESENCE optional},
+ ...
+}
+
+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 ::= {
+ { ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional}|
+ { ID id-DL-RLC-PDU-Size-Format CRITICALITY ignore EXTENSION DL-RLC-PDU-Size-Format PRESENCE optional},
+ ...
+}
+
+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
+
+PRXdes-base ::= INTEGER (-112..-50)
+-- Unit: dBm, step size 1
+
+
+SCH-TimeSlot ::= INTEGER (0..6)
+
+PunctureLimit ::= INTEGER (0..15)
+-- 0: 40%; 1: 44%; ... 14: 96%; 15: 100%
+-- 0 is not applicable for E-DPCH
+
+PUSCH-ID ::= INTEGER (0..255)
+
+UE-Selected-MBMS-Service-Information ::= CHOICE {
+ none NULL,
+ selected-MBMS-Service Selected-MBMS-Service,
+ ...
+}
+Selected-MBMS-Service ::= SEQUENCE {
+ selected-MBMS-Service-List Selected-MBMS-Service-List,
+ iE-Extensions ProtocolExtensionContainer { { Selected-MBMS-Service-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Selected-MBMS-Service-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Selected-MBMS-Service-List ::= SEQUENCE (SIZE (1.. maxMBMSServiceSelect)) OF Selected-MBMS-Service-Item
+
+
+Selected-MBMS-Service-Item ::= SEQUENCE {
+ selected-MBMS-Service-TimeSlot-Information-LCR Selected-MBMS-Service-TimeSlot-Information-LCR OPTIONAL,
+ mBMS-Service-TDM-Information MBMS-Service-TDM-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Selected-MBMS-Service-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Selected-MBMS-Service-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Selected-MBMS-Service-TimeSlot-Information-LCR ::= SEQUENCE (SIZE (1..7)) OF TimeSlotLCR
+
+MBMS-Service-TDM-Information ::= SEQUENCE {
+ transmission-Time-Interval ENUMERATED {v10, v20, v40, v80,...},
+ tDM-Rep INTEGER (2..9),
+ tDM-Offset INTEGER (0..8),
+ tDM-Length INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Service-TDM-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Service-TDM-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSet-ID ::= INTEGER (0..255)
+
+Paging-MACFlow-Specific-InformationLCR ::= SEQUENCE (SIZE (1.. maxNrOfPagingMACFlow)) OF Paging-MAC-Flow-Specific-Information-ItemLCR
+
+Paging-MAC-Flow-Specific-Information-ItemLCR ::= SEQUENCE {
+ paging-MACFlow-Id Paging-MACFlow-ID,
+ hSDPA-associated-PICH-InfoLCR HSDPA-Associated-PICH-InformationLCR OPTIONAL,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ tnl-qos TnlQos OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ paging-MACFlow-PriorityQueue-InformationLCR Paging-MACFlow-PriorityQueue-Information OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Paging-MAC-Flow-Specific-Information-ItemLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Paging-MAC-Flow-Specific-Information-ItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Paging-MACFlows-to-DeleteLCR ::= SEQUENCE (SIZE (1.. maxNrOfPagingMACFlow)) OF Paging-MACFlows-to-DeleteLCR-Item
+
+Paging-MACFlows-to-DeleteLCR-Item ::= SEQUENCE {
+ paging-MACFlow-ID Paging-MACFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { Paging-MACFlows-to-DeleteLCR-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Paging-MACFlows-to-DeleteLCR-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+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,...}
+
+
+
+-- ==========================================
+-- Q
+-- ==========================================
+
+QE-Selector ::= ENUMERATED {
+ selected,
+ non-selected
+}
+
+-- ==========================================
+-- R
+-- ==========================================
+
+RACH-Measurement-Result ::= ENUMERATED {
+ cpich-EcNo,
+ cpich-RSCP,
+ pathloss,
+ ...
+}
+
+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 ::= {
+ { ID id-TransportBearerNotRequestedIndicator CRITICALITY ignore EXTENSION TransportBearerNotRequestedIndicator PRESENCE optional }, -- FDD only
+ ...
+}
+
+RL-Specific-E-DCH-Info ::= SEQUENCE {
+ rL-Specific-E-DCH-Information RL-Specific-E-DCH-Information,
+ e-AGCH-PowerOffset E-AGCH-PowerOffset OPTIONAL,
+ e-RGCH-PowerOffset E-RGCH-PowerOffset OPTIONAL,
+ e-HICH-PowerOffset E-HICH-PowerOffset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Specific-E-DCH-Info-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Specific-E-DCH-Info-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RL-Specific-E-DCH-Information ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF RL-Specific-E-DCH-Information-Item
+
+RL-Specific-E-DCH-Information-Item ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportlayeraddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Specific-E-DCH-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Specific-E-DCH-Information-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Range-Correction-Rate ::= INTEGER (-127..127)
+-- scaling factor 0.032 m/s
+
+Reference-ReceivedTotalWideBandPower ::= INTEGER (0..621)
+-- mapping as for RTWP measurement value, as specified in [22]
+
+
+Reference-ReceivedTotalWideBandPowerReporting::= ENUMERATED {
+ reference-ReceivedTotalWideBandPower-Requested
+}
+
+Reference-ReceivedTotalWideBandPowerSupportIndicator::= ENUMERATED {
+ indication-of-Reference-ReceivedTotalWideBandPower-supported
+}
+
+ReferenceClockAvailability ::= ENUMERATED {
+ available,
+ notAvailable
+}
+
+ReferenceSFNoffset ::= INTEGER (0..255)
+
+Reference-E-TFCI-Information ::= SEQUENCE (SIZE (1..maxNrOfRefETFCIs)) OF Reference-E-TFCI-Information-Item
+
+Reference-E-TFCI-Information-Item ::= SEQUENCE {
+ reference-E-TFCI E-TFCI,
+ -- The following IE shall be ignored if id-Ext-Reference-E-TFCI-PO is present in Reference-E-TFCI-Information-Item-ExtIEs
+ reference-E-TFCI-PO Reference-E-TFCI-PO,
+ iE-Extensions ProtocolExtensionContainer { { Reference-E-TFCI-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Reference-E-TFCI-Information-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ -- The following IE shall be present if the ref E-TFCI power offset to be signalled exceeds maxNrOfRefETFCI-PO-QUANTSTEPs
+ { ID id-Ext-Reference-E-TFCI-PO CRITICALITY reject EXTENSION Ext-Reference-E-TFCI-PO PRESENCE optional},
+ ...
+}
+
+Reference-E-TFCI-PO ::= INTEGER (0.. maxNrOfRefETFCI-PO-QUANTSTEPs)
+
+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,
+ notUsed-1-acknowledged-PCPCH-access-preambles NULL,
+ notUsed-2-detected-PCPCH-access-preambles NULL,
+ ...,
+ extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold
+}
+
+Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThresholdIE }}
+
+Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThresholdIE NBAP-PROTOCOL-IES ::= {
+{ ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmission CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue PRESENCE mandatory}|
+{ ID id-Transmitted-Carrier-Power-For-CellPortion CRITICALITY reject TYPE Transmitted-Carrier-Power-Value PRESENCE mandatory }|
+{ ID id-Received-total-wide-band-power-For-CellPortion CRITICALITY reject TYPE Received-total-wide-band-power-Value-IncrDecrThres PRESENCE mandatory }|
+{ ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortion CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue PRESENCE mandatory }|
+{ ID id-UpPTSInterferenceValue CRITICALITY reject TYPE UpPTSInterferenceValue PRESENCE mandatory }|
+{ ID id-Received-Scheduled-EDCH-Power-Share CRITICALITY reject TYPE RSEPS-Value-IncrDecrThres PRESENCE mandatory }|
+{ ID id-Received-Scheduled-EDCH-Power-Share-For-CellPortion CRITICALITY reject TYPE RSEPS-Value-IncrDecrThres PRESENCE mandatory }|
+{ ID id-EDCH-RACH-Report-IncrDecrThres CRITICALITY reject TYPE EDCH-RACH-Report-IncrDecrThres PRESENCE mandatory }|
+ -- FDD only
+{ ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortion CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue PRESENCE mandatory }|
+{ ID id-ULTimeslotISCPValue-For-CellPortion CRITICALITY reject TYPE UL-TimeslotISCP-Value-IncrDecrThres PRESENCE mandatory }|
+{ ID id-UpPTSInterferenceValue-For-CellPortion CRITICALITY reject TYPE UpPTSInterferenceValue PRESENCE mandatory }
+}
+
+EDCH-RACH-Report-IncrDecrThres ::= SEQUENCE {
+ denied-EDCH-RACH-resources Denied-EDCH-RACH-Resources-Value,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-RACH-Report-IncrDecrThres-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-RACH-Report-IncrDecrThres-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Granted-EDCH-RACH-Resources-Value ::= INTEGER(0..240,...)
+-- According to mapping in [25].
+
+Denied-EDCH-RACH-Resources-Value ::= INTEGER(0..240,...)
+-- According to mapping in [25].
+
+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,
+ notUsed-1-acknowledged-PCPCH-access-preambles NULL,
+ notUsed-2-detected-PCPCH-access-preambles NULL,
+ ...,
+ 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}|
+ -- For 1.28Mcps TDD, used when the Measurement Threshold Value for HS-SICH Reception Quality are less than or equal to 20
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmission CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue PRESENCE mandatory}|
+ { ID id-HS-DSCHRequiredPowerValue CRITICALITY reject TYPE HS-DSCHRequiredPowerValue PRESENCE mandatory}|
+ { ID id-Transmitted-Carrier-Power-For-CellPortion CRITICALITY reject TYPE Transmitted-Carrier-Power-Value PRESENCE mandatory }|
+ { ID id-Received-total-wide-band-power-For-CellPortion CRITICALITY reject TYPE Received-total-wide-band-power-Value PRESENCE mandatory }|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortion CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue PRESENCE mandatory }|
+ { ID id-UpPTSInterferenceValue CRITICALITY reject TYPE UpPTSInterferenceValue PRESENCE mandatory }|
+ { ID id-DLTransmissionBranchLoadValue CRITICALITY reject TYPE DLTransmissionBranchLoadValue PRESENCE mandatory }|
+ { ID id-HS-DSCHRequiredPowerValue-For-Cell-Portion CRITICALITY reject TYPE HS-DSCHRequiredPowerValue PRESENCE mandatory }|
+ { ID id-E-DCH-Non-serving-Relative-Grant-Down-CommandsValue CRITICALITY reject TYPE E-DCH-Non-serving-Relative-Grant-Down-Commands PRESENCE mandatory }|
+ { ID id-Rx-Timing-Deviation-Value-768 CRITICALITY reject TYPE Rx-Timing-Deviation-Value-768 PRESENCE mandatory }|
+ { ID id-Rx-Timing-Deviation-Value-384-ext CRITICALITY reject TYPE Rx-Timing-Deviation-Value-384-ext PRESENCE mandatory }|
+ { ID id-Extended-Round-Trip-Time-Value CRITICALITY reject TYPE Extended-Round-Trip-Time-Value PRESENCE mandatory }|
+ { ID id-Received-Scheduled-EDCH-Power-Share CRITICALITY reject TYPE RSEPS-Value-IncrDecrThres PRESENCE mandatory }|
+ { ID id-Received-Scheduled-EDCH-Power-Share-For-CellPortion CRITICALITY reject TYPE RSEPS-Value-IncrDecrThres PRESENCE mandatory }|
+ { ID id-Additional-HS-SICH-Reception-Quality-Measurement-Value CRITICALITY reject TYPE HS-SICH-Reception-Quality-Measurement-Value PRESENCE mandatory}|
+ -- Applicable to 1.28Mcps TDD only, used when the Measurement Threshold Value for HS-SICH Reception Quality are more than 20, Measurement Threshold Value = 20 + IE Value
+ { ID id-TUTRANGANSSMeasurementThresholdInformation CRITICALITY reject TYPE TUTRANGANSSMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-EDCH-RACH-Report-ThresholdInformation CRITICALITY reject TYPE EDCH-RACH-Report-ThresholdInformation PRESENCE mandatory }|
+ -- FDD only
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortion CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue PRESENCE mandatory }|
+ { ID id-ULTimeslotISCPValue-For-CellPortion CRITICALITY reject TYPE UL-TimeslotISCP-Value PRESENCE mandatory }|
+ { ID id-UpPTSInterferenceValue-For-CellPortion CRITICALITY reject TYPE UpPTSInterferenceValue PRESENCE mandatory }
+}
+
+EDCH-RACH-Report-ThresholdInformation ::= SEQUENCE {
+ denied-EDCH-RACH-resources Denied-EDCH-RACH-Resources-Value,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-RACH-Report-ThresholdInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-RACH-Report-ThresholdInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ ...
+}
+
+DL-RLC-PDU-Size-Format ::= ENUMERATED {
+ fixed-RLC-PDU-Size,
+ flexible-RLC-PDU-Size,
+ ...
+}
+
+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-For-CellPortion-Value ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF Received-total-wide-band-power-For-CellPortion-Value-Item
+
+Received-total-wide-band-power-For-CellPortion-Value-Item ::= SEQUENCE{
+ cellPortionID CellPortionID,
+ received-total-wide-band-power-value Received-total-wide-band-power-Value,
+ iE-Extensions ProtocolExtensionContainer { { Received-total-wide-band-power-For-CellPortion-Value-Item-ExtIEs} } OPTIONAL,
+...
+}
+
+Received-total-wide-band-power-For-CellPortion-Value-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Received-total-wide-band-power-For-CellPortion-ValueLCR ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF Received-total-wide-band-power-For-CellPortion-ValueLCR-Item
+
+Received-total-wide-band-power-For-CellPortion-ValueLCR-Item ::= SEQUENCE{
+ cellPortionLCRID CellPortionLCRID,
+ received-total-wide-band-power-value Received-total-wide-band-power-Value,
+ iE-Extensions ProtocolExtensionContainer { { Received-total-wide-band-power-For-CellPortion-ValueLCR-Item-ExtIEs} } OPTIONAL,
+...
+}
+
+Received-total-wide-band-power-For-CellPortion-ValueLCR-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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)
+
+Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value-Item
+
+Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value-Item ::= SEQUENCE{
+ cellPortionID CellPortionID,
+ received-Scheduled-power-share-value RSEPS-Value,
+ received-total-wide-band-power-value Received-total-wide-band-power-Value OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value-Item-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Received-Scheduled-EDCH-Power-Share-Value ::= SEQUENCE{
+ received-Scheduled-power-share-value RSEPS-Value,
+ received-total-wide-band-power-value Received-total-wide-band-power-Value OPTIONAL,
+ ...
+ }
+
+RSEPS-Value-IncrDecrThres ::= INTEGER (0..151)
+
+
+RSEPS-Value ::= INTEGER (0..151)
+-- According to mapping in [22]
+
+
+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 ::= {
+ { ID id-GANSS-Common-Data CRITICALITY ignore EXTENSION GANSS-Common-Data PRESENCE optional }|
+ { ID id-GANSS-Generic-Data CRITICALITY ignore EXTENSION GANSS-Generic-Data PRESENCE optional },
+ ...
+}
+
+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]
+
+Rx-Timing-Deviation-Value-768 ::= INTEGER (0..65535)
+-- According to mapping in [23]
+
+Rx-Timing-Deviation-Value-384-ext ::= INTEGER (0..32767)
+-- According to mapping in [23]
+
+RefBeta ::= INTEGER (-15..16)
+
+RTWP-ReportingIndicator ::= ENUMERATED {
+ rTWP-reporting-required}
+
+RTWP-CellPortion-ReportingIndicator ::= ENUMERATED {
+ rTWP-CellPortion-reporting-required}
+
+
+-- ==========================================
+-- S
+-- ==========================================
+
+AdjustmentPeriod ::= INTEGER(1..256)
+-- Unit Frame
+
+E-DPCCH-Power-Boosting-Capability ::= ENUMERATED {
+ e-DPCCH-Power-Boosting-capable,
+ e-DPCCH-Power-Boosting-non-capable
+}
+
+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 ::= {
+ {ID id-DGNSS-ValidityPeriod CRITICALITY ignore EXTENSION DGNSS-ValidityPeriod PRESENCE optional},
+ ...
+}
+
+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
+
+SchedulingInformation ::= ENUMERATED {
+ included,
+ not-included
+}
+
+SecondaryServingCells ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF SecondaryServingCellsItem
+
+SecondaryServingCellsItem ::= SEQUENCE {
+ secondaryC-ID C-ID,
+ numSecondaryHS-SCCH-Codes NumHS-SCCH-Codes OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryServingCellsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondaryServingCellsItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-MIMO-ActivationIndicator CRITICALITY ignore EXTENSION MIMO-ActivationIndicator PRESENCE optional}|
+{ID id-EDCH-Indicator CRITICALITY ignore EXTENSION NULL PRESENCE optional},
+ ...
+}
+
+Secondary-UL-Frequency-Activation-State ::= ENUMERATED {
+ activated,
+ deactivated,
+ ...
+}
+
+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,...)
+
+Secondary-CCPCH-SlotFormat-Extended ::= INTEGER(18..23,...)
+
+Segment-Type ::= ENUMERATED {
+ first-segment,
+ first-segment-short,
+ subsequent-segment,
+ last-segment,
+ last-segment-short,
+ complete-SIB,
+ complete-SIB-short,
+ ...
+}
+
+Serving-E-DCH-RL-ID ::= CHOICE {
+ serving-E-DCH-RL-in-this-NodeB Serving-E-DCH-RL-in-this-NodeB,
+ serving-E-DCH-RL-not-in-this-NodeB NULL,
+ ...
+}
+
+Serving-E-DCH-RL-in-this-NodeB ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { Serving-E-DCH-RL-in-this-NodeB-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Serving-E-DCH-RL-in-this-NodeB-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SetsOfHS-SCCH-Codes ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH)) OF SetsOfHS-SCCH-CodesItem
+
+SetsOfHS-SCCH-CodesItem ::= SEQUENCE {
+ hS-SCCH-PreconfiguredCodes HS-SCCH-PreconfiguredCodes,
+ sixtyfourQAM-DL-UsageIndicator SixtyfourQAM-DL-UsageIndicator OPTIONAL,
+ hSDSCH-TBSizeTableIndicator HSDSCH-TBSizeTableIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SetsOfHS-SCCH-CodesItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SetsOfHS-SCCH-CodesItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-MIMO-N-M-Ratio CRITICALITY ignore EXTENSION MIMO-N-M-Ratio PRESENCE optional},
+ ...
+}
+
+Setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency::= CHOICE {
+ setup Additional-EDCH-Setup-Info,
+ configurationChange Additional-EDCH-Cell-Information-ConfigurationChange-List,
+ removal Additional-EDCH-Cell-Information-Removal-List,
+ ...
+}
+
+SFN ::= INTEGER (0..4095)
+
+SFNSFN-FDD ::= INTEGER (0..614399)
+
+SFNSFN-TDD ::= INTEGER (0..40961)
+
+SFNSFN-TDD768 ::= INTEGER (0..81923)
+
+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, --- 1.28Mcps and 3.84Mcps TDD only
+ ...,
+ sFNSFN-TDD768 SFNSFN-TDD768
+}
+
+Single-Stream-MIMO-ActivationIndicator ::= NULL
+
+Single-Stream-MIMO-Capability ::= ENUMERATED {
+ single-stream-mimo-capable,
+ single-stream-mimo-non-capable
+}
+
+
+Single-Stream-MIMO-Mode-Indicator ::= ENUMERATED {
+ activate,
+ deactivate
+}
+
+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}
+
+
+SixtyfourQAM-UsageAllowedIndicator ::= ENUMERATED {
+ allowed,
+ not-allowed
+}
+
+SixtyfourQAM-DL-UsageIndicator ::= ENUMERATED {
+ sixtyfourQAM-DL-used,
+ sixtyfourQAM-DL-not-used
+}
+
+SixtyfourQAM-DL-Capability ::= ENUMERATED {
+ sixtyfourQAM-DL-supported,
+ sixtyfourQAM-DL-not-supported
+}
+
+SixtyfourQAM-DL-MIMO-Combined-Capability ::= ENUMERATED {
+ sixtyfourQAM-DL-MIMO-Combined-capable,
+ sixtyfourQAM-DL-MIMO-Combined-non-capable
+}
+
+SignatureSequenceGroupIndex ::= INTEGER (0..19)
+
+
+SixteenQAM-UL-Capability ::= ENUMERATED {
+ sixteenQAM-UL-capable,
+ sixteenQAM-UL-non-capable
+}
+
+SixteenQAM-UL-Operation-Indicator ::= ENUMERATED {
+ activate,
+ deactivate
+}
+
+
+SNPL-Reporting-Type ::= ENUMERATED {
+ type1,
+ type2
+}
+
+Soffset ::= INTEGER (0..9,...)
+
+SpecialBurstScheduling ::= INTEGER (1..256) -- Number of frames between special burst transmission during DTX
+
+Start-Of-Audit-Sequence-Indicator ::= ENUMERATED {
+ start-of-audit-sequence,
+ not-start-of-audit-sequence
+}
+
+Status-Flag ::= ENUMERATED {
+ activate,
+ deactivate
+}
+
+STTD-Indicator ::= ENUMERATED {
+ active,
+ inactive,
+ ...
+}
+
+SSDT-SupportIndicator ::= ENUMERATED {
+ not-Used-sSDT-Supported,
+ sSDT-not-supported
+}
+
+Sub-Frame-Number ::= INTEGER (0..4,...)
+
+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,
+ ...
+}
+Semi-PersistentScheduling-CapabilityLCR ::= ENUMERATED {
+ semi-Persistent-scheduling-Capable,
+ semi-Persistent-scheduling-Non-Capable
+}
+
+-- ==========================================
+-- T
+-- ==========================================
+
+T1 ::= ENUMERATED {v10,v20,v30,v40,v50,v60,v70,v80,v90,v100,v120,v140,v160,v200,v300,v400,...}
+
+T321 ::= ENUMERATED {v100,v200,v400,v800,...}
+
+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
+
+T-PROTECT ::= ENUMERATED {v40,v60,v80,v100,v120,v200,v400,...}
+T-SYNC ::= ENUMERATED {v40,v80,v120,v160,v200,v300,v400,v500,...}
+
+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 or 7.68Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { { TDD-ChannelisationCodeLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-ChannelisationCodeLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TDD-ChannelisationCode768 ::= 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,
+ chCode32div1,
+ chCode32div2,
+ chCode32div3,
+ chCode32div4,
+ chCode32div5,
+ chCode32div6,
+ chCode32div7,
+ chCode32div8,
+ chCode32div9,
+ chCode32div10,
+ chCode32div11,
+ chCode32div12,
+ chCode32div13,
+ chCode32div14,
+ chCode32div15,
+ chCode32div16,
+ chCode32div17,
+ chCode32div18,
+ chCode32div19,
+ chCode32div20,
+ chCode32div21,
+ chCode32div22,
+ chCode32div23,
+ chCode32div24,
+ chCode32div25,
+ chCode32div26,
+ chCode32div27,
+ chCode32div28,
+ chCode32div29,
+ chCode32div30,
+ chCode32div31,
+ chCode32div32,
+ ...
+}
+
+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-Code-768-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs768)) OF TDD-DL-Code-768-InformationItem
+
+TDD-DL-Code-768-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DL-Code-768-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-768-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-DPCH-TimeSlotFormat-LCR ::= CHOICE {
+ qPSK QPSK-DL-DPCH-TimeSlotFormatTDD-LCR,
+ eightPSK EightPSK-DL-DPCH-TimeSlotFormatTDD-LCR,
+ -- For 1.28 Mcps TDD, if the cell is operating in MBSFN only mode, this IE denotes MBSFN S-CCPCH time slot format
+ ...
+}
+
+QPSK-DL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+EightPSK-DL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+-- For 1.28 Mcps TDD, if the cell is operating in MBSFN only mode, this IE denotes MBSFN S-CCPCH time slot format?INTEGER(0..11,...)
+
+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-Code-768-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF TDD-UL-Code-768-InformationItem
+
+TDD-UL-Code-768-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { TDD-UL-Code-768-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-768-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,
+ not-Used-splitType NULL OPTIONAL,
+ not-Used-lengthOfTFCI2 NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TFCI-SignallingMode-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI-SignallingMode-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI-SignallingMode-TFCI-SignallingOption ::= ENUMERATED {
+ normal,
+ not-Used-split
+}
+
+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,
+ ...
+}
+
+TimeSlot-InitiatedListLCR ::= SEQUENCE (SIZE (0..6)) OF TimeSlotLCR
+
+TimeSlotLCR ::= INTEGER (0..6)
+
+TimeslotLCR-Extension ::= ENUMERATED {
+ ts7,
+ ...
+}
+-- ts7 indicates the MBSFN Special Timeslot for 1.28Mcps TDD MBSFN Dedicated Carrier.
+
+TimeSlotMeasurementValueListLCR::= SEQUENCE (SIZE (1..6)) OF TimeSlotMeasurementValueLCR
+
+TimeSlotMeasurementValueLCR ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { {TimeSlotMeasurementValueListLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSlotMeasurementValueListLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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
+}
+
+SynchronisationIndicator ::= ENUMERATED {
+ timingMaintainedSynchronisation,
+ ...
+}
+
+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,
+ not-to-be-used-1 GapDuration OPTIONAL,
+ -- This IE shall never be included in the SEQUENCE. If received it shall be ignored
+ 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-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue-Item
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue-Item ::= SEQUENCE{
+ cellPortionID CellPortionID,
+ transmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue,
+ iE-Extensions ProtocolExtensionContainer { { TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue-Item
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue-Item ::= SEQUENCE{
+ cellPortionLCRID CellPortionLCRID,
+ transmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue,
+ iE-Extensions ProtocolExtensionContainer { { TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue ::= INTEGER(0..100)
+-- According to mapping in [22] and [23]
+
+Transmitted-Carrier-Power-For-CellPortion-Value ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF Transmitted-Carrier-Power-For-CellPortion-Value-Item
+
+Transmitted-Carrier-Power-For-CellPortion-Value-Item ::= SEQUENCE{
+ cellPortionID CellPortionID,
+ transmitted-Carrier-Power-Value Transmitted-Carrier-Power-Value,
+ iE-Extensions ProtocolExtensionContainer { { Transmitted-Carrier-Power-For-CellPortion-Value-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Transmitted-Carrier-Power-For-CellPortion-Value-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transmitted-Carrier-Power-For-CellPortion-ValueLCR ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF Transmitted-Carrier-Power-For-CellPortion-ValueLCR-Item
+
+Transmitted-Carrier-Power-For-CellPortion-ValueLCR-Item ::= SEQUENCE{
+ cellPortionLCRID CellPortionLCRID,
+ transmitted-Carrier-Power-Value Transmitted-Carrier-Power-Value,
+ iE-Extensions ProtocolExtensionContainer { { Transmitted-Carrier-Power-For-CellPortion-ValueLCR-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Transmitted-Carrier-Power-For-CellPortion-ValueLCR-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ not-Used-split-in-TFCI NULL,
+ -- This choice shall never be made by the CRNC and the Node B shall consider the procedure as failed if it is received.
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { TFCS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+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)
+}
+
+Transport-Block-Size-Index ::= INTEGER(1..maxNrOfHS-DSCH-TBSs)
+
+Transport-Block-Size-Index-for-Enhanced-PCH ::= INTEGER(1..32)
+-- Index of the value range 1 to 32 of the MAC-ehs transport block size as specified in appendix A of [32]
+
+Transport-Block-Size-List ::= SEQUENCE (SIZE (1..maxNrOfHS-DSCHTBSsE-PCH)) OF
+ SEQUENCE {
+ transport-Block-Size-Index-for-Enhanced-PCH Transport-Block-Size-Index-for-Enhanced-PCH,
+ iE-Extensions ProtocolExtensionContainer { { Transport-Block-Size-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Transport-Block-Size-List-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportBearerRequestIndicator ::= ENUMERATED {
+ bearerRequested,
+ bearerNotRequested,
+ ...
+}
+
+TransportBearerNotRequestedIndicator ::= ENUMERATED {
+ transport-bearer-shall-not-be-established,
+ transport-bearer-may-not-be-established
+}
+
+TransportBearerNotSetupIndicator ::= ENUMERATED {
+ transport-bearer-not-setup
+}
+
+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, ...))
+
+TS0-CapabilityLCR ::= ENUMERATED {
+ tS0-Capable,
+ tS0-Not-Capable
+}
+
+TSTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+
+TSN-Length ::= ENUMERATED {
+ tsn-6bits,
+ tsn-9bits
+}
+
+TUTRANGANSS ::= SEQUENCE {
+ mS INTEGER(0..16383),
+ lS INTEGER(0..4294967295)
+}
+
+TUTRANGANSSAccuracyClass ::= ENUMERATED {
+ ganssAccuracy-class-A,
+ ganssAccuracy-class-B,
+ ganssAccuracy-class-C,
+ ...
+}
+
+TUTRANGANSSMeasurementThresholdInformation ::= SEQUENCE {
+ tUTRANGANSSChangeLimit INTEGER(1..256) OPTIONAL,
+ predictedTUTRANGANSSDeviationLimit INTEGER(1..256) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { TUTRANGANSSMeasurementThresholdInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TUTRANGANSSMeasurementThresholdInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGANSSMeasurementValueInformation ::= SEQUENCE {
+ tUTRANGANSS TUTRANGANSS,
+ tUTRANGANSSQuality INTEGER(0..255) OPTIONAL,
+ tUTRANGANSSDriftRate INTEGER(-50..50),
+ tUTRANGANSSDriftRateQuality INTEGER(0..50) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { TUTRANGANSSMeasurementValueInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TUTRANGANSSMeasurementValueInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-Time-ID CRITICALITY ignore EXTENSION GANSS-Time-ID PRESENCE optional},
+ ...
+}
+
+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
+
+TxDiversityOnDLControlChannelsByMIMOUECapability ::= ENUMERATED {
+ dL-Control-Channel-Tx-Diversity-for-MIMO-UE-with-non-diverse-P-CPICH-Capable,
+ dL-Control-Channel-Tx-Diversity-for-MIMO-UE-with-non-diverse-P-CPICH-Not-Capable
+}
+
+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 ::= {
+ { ID id-Extended-RNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional},
+ ...
+}
+
+UDRE ::= ENUMERATED {
+ udre-minusequal-one-m,
+ udre-betweenoneandfour-m,
+ udre-betweenfourandeight-m,
+ udre-greaterequaleight-m
+}
+
+UDREGrowthRate ::= ENUMERATED {
+ growth-1-point-5,
+ growth-2,
+ growth-4,
+ growth-6,
+ growth-8,
+ growth-10,
+ growth-12,
+ growth-16 }
+
+UDREValidityTime ::= ENUMERATED {
+ val-20sec,
+ val-40sec,
+ val-80sec,
+ val-160sec,
+ val-320sec,
+ val-640sec,
+ val-1280sec,
+ val-2560sec }
+
+UE-AggregateMaximumBitRate ::= SEQUENCE {
+ uE-AggregateMaximumBitRateDownlink UE-AggregateMaximumBitRateDownlink OPTIONAL,
+ uE-AggregateMaximumBitRateUplink UE-AggregateMaximumBitRateUplink OPTIONAL,
+ ...
+}
+
+UE-AggregateMaximumBitRateDownlink ::= INTEGER (1..1000000000)
+-- Unit is bits per sec
+
+UE-AggregateMaximumBitRateUplink ::= INTEGER (1..1000000000)
+-- Unit is bits per sec
+
+UE-AggregateMaximumBitRate-Enforcement-Indicator ::= NULL
+
+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 ::= {
+ {ID id-LCRTDD-uplink-Physical-Channel-Capability CRITICALITY ignore EXTENSION LCRTDD-Uplink-Physical-Channel-Capability PRESENCE optional}|
+ {ID id-number-Of-Supported-Carriers CRITICALITY reject EXTENSION Number-Of-Supported-Carriers PRESENCE optional}|
+ {ID id-MultiCarrier-HSDSCH-Physical-Layer-Category CRITICALITY ignore EXTENSION LCRTDD-HSDSCH-Physical-Layer-Category PRESENCE optional}|
+ {ID id-MIMO-SFMode-Supported-For-HSPDSCHDualStream CRITICALITY reject EXTENSION MIMO-SFMode-For-HSPDSCHDualStream PRESENCE optional}|
+ {ID id-UE-TS0-CapabilityLCR CRITICALITY ignore EXTENSION UE-TS0-CapabilityLCR PRESENCE optional},
+ ...
+}
+
+UE-TS0-CapabilityLCR ::= ENUMERATED {
+ uE-TS0-Capable,
+ uE-TS0-Not-Capable
+}
+
+UE-SupportIndicatorExtension ::= BIT STRING (SIZE (32))
+-- First bit: Different HS-SCCH In Consecutive TTIs Support Indicator
+-- Second bit: HS-SCCH orders in HS-SCCH-less Operation Support Indicator
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+LCRTDD-HSDSCH-Physical-Layer-Category ::= INTEGER (1..64)
+
+UE-DPCCH-burst1 ::= ENUMERATED {v1, v2, v5}
+ -- Unit subframe
+
+UE-DPCCH-burst2 ::= ENUMERATED {v1, v2, v5}
+ -- Unit subframe
+
+UE-DRX-Cycle ::= ENUMERATED {v4, v5, v8, v10, v16, v20}
+ -- Unit subframe
+
+UE-DRX-Grant-Monitoring ::= BOOLEAN
+ -- true: applied, false: not applied
+
+UE-DTX-Cycle1-2ms ::= ENUMERATED {v1, v4, v5, v8, v10, v16, v20}
+ -- Unit subframe
+
+UE-DTX-Cycle1-10ms ::= ENUMERATED {v1, v5, v10, v20}
+ -- Unit subframe
+
+UE-DTX-Cycle2-2ms ::= ENUMERATED {v4, v5, v8, v10, v16, v20, v32, v40, v64, v80, v128, v160}
+ -- Unit subframe
+
+UE-DTX-Cycle2-10ms ::= ENUMERATED {v5, v10, v20, v40, v80, v160}
+ -- Unit subframe
+
+UE-DTX-DRX-Offset ::= INTEGER (0..159)
+ -- Unit subframe
+
+UE-DTX-Long-Preamble ::= ENUMERATED {v2, v4, v15}
+ -- Units of slots
+
+
+UL-CapacityCredit ::= INTEGER (0..65535)
+
+UL-Delta-T2TP ::= INTEGER (0..6,...)
+
+UL-DL-mode ::= ENUMERATED {
+ ul-only,
+ dl-only,
+ both-ul-and-dl
+}
+
+UL-DPDCH-Indicator-For-E-DCH-Operation ::= ENUMERATED {
+ ul-DPDCH-present,
+ ul-DPDCH-not-present
+}
+
+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 ::= {
+{ ID id-PLCCH-Information-UL-TimeslotLCR-Info CRITICALITY reject EXTENSION PLCCHinformation PRESENCE optional },
+ ...
+}
+
+UL-Timeslot768-Information ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot768-InformationItem
+
+UL-Timeslot768-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationList TDD-UL-Code-768-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot768-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot768-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)
+
+UPPCHPositionLCR ::= INTEGER (0..127)
+
+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 ::= {
+ ...
+}
+
+UpPTSInterference-For-CellPortion-Value ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF UpPTSInterference-For-CellPortion-Value-Item
+
+UpPTSInterference-For-CellPortion-Value-Item ::= SEQUENCE{
+ cellPortionLCRID CellPortionLCRID,
+ upPTSInterferenceValue UpPTSInterferenceValue,
+ iE-Extensions ProtocolExtensionContainer { { UpPTSInterference-For-CellPortion-Value-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UpPTSInterference-For-CellPortion-Value-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UpPTSInterferenceValue ::= INTEGER (0..127,...)
+
+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-For-CellPortion-Value ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCellLCR)) OF UL-TimeslotISCP-For-CellPortion-Value-Item
+
+UL-TimeslotISCP-For-CellPortion-Value-Item ::= SEQUENCE{
+ cellPortionLCRID CellPortionLCRID,
+ uL-TimeslotISCP-Value UL-TimeslotISCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeslotISCP-For-CellPortion-Value-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-TimeslotISCP-For-CellPortion-Value-Item-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)
+
+Uu-ActivationState ::= ENUMERATED {
+ activated,
+ de-activated,
+ ...
+}
+
+-- ==========================================
+-- V
+-- ==========================================
+
+-- ==========================================
+-- W
+-- ==========================================
+
+-- ==========================================
+-- X
+-- ==========================================
+
+-- ==========================================
+-- Y
+-- ==========================================
+
+-- ==========================================
+-- Z
+-- ==========================================
+
+END
diff --git a/epan/dissectors/asn1/nbap/NBAP-PDU-Contents.asn b/epan/dissectors/asn1/nbap/NBAP-PDU-Contents.asn
new file mode 100644
index 0000000000..b978663065
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/NBAP-PDU-Contents.asn
@@ -0,0 +1,12119 @@
+-- NBAP-PDU-Contents.asn
+--
+-- Taken from 3GPP TS 25.433 V9.2.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.433
+--
+-- 9.3.3 PDU Definitions
+--
+
+-- **************************************************************
+--
+-- 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,
+ AlternativeFormatReportingIndicator,
+ AvailabilityStatus,
+ BCCH-ModificationTime,
+ BindingID,
+ BlockingPriorityIndicator,
+ BroadcastReference,
+ SCTD-Indicator,
+ Cause,
+ CCTrCH-ID,
+ Cell-ERNTI-Status-Information,
+ CellParameterID,
+ CellPortionID,
+ CellSyncBurstCode,
+ CellSyncBurstCodeShift,
+ CellSyncBurstRepetitionPeriod,
+ CellSyncBurstSIR,
+ CellSyncBurstTiming,
+ CellSyncBurstTimingThreshold,
+ CellPortion-CapabilityLCR,
+ CFN,
+ ChipOffset,
+ C-ID,
+ Closedlooptimingadjustmentmode,
+ CommonChannelsCapacityConsumptionLaw,
+ Compressed-Mode-Deactivation-Flag,
+ Common-MACFlows-to-DeleteFDD,
+ CommonMeasurementAccuracy,
+ CommonMeasurementType,
+ CommonMeasurementValue,
+ CommonMeasurementValueInformation,
+ CommonPhysicalChannelID,
+ CommonPhysicalChannelID768,
+ Common-EDCH-Capability,
+ Common-E-DCH-HSDPCCH-Capability,
+ Common-EDCH-System-InformationFDD,
+ Common-EDCH-System-Information-ResponseFDD,
+ Common-PhysicalChannel-Status-Information,
+ Common-PhysicalChannel-Status-Information768,
+ Common-TransportChannel-Status-Information,
+ CommonTransportChannelID,
+ CommonTransportChannel-InformationResponse,
+ CommunicationControlPortID,
+ ConfigurationGenerationID,
+ ConstantValue,
+ ContinuousPacketConnectivityDTX-DRX-Capability,
+ ContinuousPacketConnectivityDTX-DRX-Information,
+ ContinuousPacketConnectivityHS-SCCH-less-Capability,
+ ContinuousPacketConnectivityHS-SCCH-less-Information,
+ ContinuousPacketConnectivityHS-SCCH-less-Information-Response,
+ ContinuousPacketConnectivity-DRX-CapabilityLCR,
+ ContinuousPacketConnectivity-DRX-InformationLCR,
+ ContinuousPacketConnectivity-DRX-Information-ResponseLCR,
+ CPC-InformationLCR,
+ CPC-Information,
+ CriticalityDiagnostics,
+ CRNC-CommunicationContextID,
+ CSBMeasurementID,
+ CSBTransmissionID,
+ DCH-FDD-Information,
+ DCH-Indicator-For-E-DCH-HSDPA-Operation,
+ 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,
+ DPCH-ID768,
+ DSCH-ID,
+ DSCH-InformationResponse,
+ DSCH-TDD-Information,
+ Dual-Band-Capability-Info,
+ DwPCH-Power,
+ E-AGCH-FDD-Code-Information,
+ E-AI-Capability,
+ E-DCH-Capability,
+ E-DCHCapacityConsumptionLaw,
+ E-DCH-TTI2ms-Capability,
+ E-DCH-SF-Capability,
+ E-DCH-HARQ-Combining-Capability,
+ E-DCH-FDD-DL-Control-Channel-Information,
+ E-DCH-FDD-Information,
+ E-DCH-FDD-Information-Response,
+ E-DCH-FDD-Information-to-Modify,
+ E-DCH-FDD-Update-Information,
+ E-DCH-MACdFlow-ID,
+ E-DCH-MACdFlows-Information,
+ E-DCH-MACdFlows-to-Delete,
+ E-DCH-MACdPDU-SizeCapability,
+ E-DCH-RL-Indication,
+ E-DCH-Serving-Cell-Change-Info-Response,
+ E-DPCCH-PO,
+ E-RGCH-E-HICH-FDD-Code-Information,
+ E-RGCH-2-IndexStepThreshold,
+ E-RGCH-3-IndexStepThreshold,
+ End-Of-Audit-Sequence-Indicator,
+ Enhanced-FACH-Capability,
+ Enhanced-PCH-Capability,
+ Enhanced-UE-DRX-Capability,
+ Enhanced-UE-DRX-InformationFDD,
+ E-TFCS-Information,
+ E-TTI,
+ ExtendedPropagationDelay,
+ Fast-Reconfiguration-Mode,
+ Fast-Reconfiguration-Permission,
+ FDD-DL-ChannelisationCodeNumber,
+ FDD-DL-CodeInformation,
+ FDD-S-CCPCH-FrameOffset,
+ FDD-S-CCPCH-Offset,
+ FDD-TPC-DownlinkStepSize,
+ F-DPCH-Capability,
+ F-DPCH-SlotFormat,
+ F-DPCH-SlotFormatCapability,
+ FirstRLS-Indicator,
+ FNReportingIndicator,
+ FPACH-Power,
+ FrameAdjustmentValue,
+ FrameHandlingPriority,
+ FrameOffset,
+ HARQ-Info-for-E-DCH,
+ HSDPA-Capability,
+ HSDSCH-Common-System-InformationFDD,
+ HSDSCH-Common-System-Information-ResponseFDD,
+ HSDSCH-Configured-Indicator,
+ HSDSCH-Paging-System-InformationFDD,
+ HSDSCH-Paging-System-Information-ResponseFDD,
+ HS-DSCH-Serving-Cell-Change-Info,
+ HS-DSCH-Serving-Cell-Change-Info-Response,
+ HSDSCH-MACdPDU-SizeCapability,
+ 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,
+ Initial-DL-DPCH-TimingAdjustment-Allowed,
+ InnerLoopDLPCStatus,
+ IPDL-FDD-Parameters,
+ IPDL-TDD-Parameters,
+ IPDL-Indicator,
+ IPDL-TDD-Parameters-LCR,
+ IPMulticastIndication,
+ LimitedPowerIncrease,
+ Local-Cell-ID,
+ MaximumDL-PowerCapability,
+ Maximum-Target-ReceivedTotalWideBandPower,
+ MaximumTransmissionPower,
+ MaxNrOfUL-DPDCHs,
+ Max-Set-E-DPDCHs,
+ MaxPRACH-MidambleShifts,
+ Max-UE-DTX-Cycle,
+ MBMS-Capability,
+ MeasurementFilterCoefficient,
+ MeasurementID,
+ MeasurementRecoveryBehavior,
+ MeasurementRecoveryReportingIndicator,
+ MeasurementRecoverySupportIndicator,
+ MICH-CFN,
+ MICH-Mode,
+ MidambleAllocationMode,
+ MidambleShiftAndBurstType,
+ MidambleShiftAndBurstType768,
+ MidambleShiftLCR,
+ MinimumDL-PowerCapability,
+ MinSpreadingFactor,
+ MIMO-Capability,
+ MIMO-PilotConfiguration,
+ MinUL-ChannelisationCodeLength,
+ Modification-Period,
+ MultiplexingPosition,
+ NCyclesPerSFNperiod,
+ NRepetitionsPerCyclePeriod,
+ N-INSYNC-IND,
+ N-OUTSYNC-IND,
+ NeighbouringCellMeasurementInformation,
+ NeighbouringFDDCellMeasurementInformation,
+ NeighbouringTDDCellMeasurementInformation,
+ NI-Information,
+ NodeB-CommunicationContextID,
+ NotificationIndicatorLength,
+ NumberOfReportedCellPortions,
+ NumberOfReportedCellPortionsLCR,
+ NSubCyclesPerCyclePeriod,
+ PagingIndicatorLength,
+ Paging-MACFlows-to-DeleteFDD,
+ PayloadCRC-PresenceIndicator,
+ PCCPCH-Power,
+ PDSCHSet-ID,
+ PDSCH-ID,
+ PDSCH-ID768,
+ PICH-Mode,
+ PICH-Power,
+ PLCCHinformation,
+ 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,
+ RACH-SlotFormat,
+ RACH-SubChannelNumbers,
+ Reference-ReceivedTotalWideBandPower,
+ Reference-ReceivedTotalWideBandPowerReporting,
+ Reference-ReceivedTotalWideBandPowerSupportIndicator,
+ Maximum-Target-ReceivedTotalWideBandPower-LCR,
+ ReferenceClockAvailability,
+ ReferenceSFNoffset,
+ RepetitionLength,
+ RepetitionPeriod,
+ ReportCharacteristics,
+ RequestedDataValue,
+ RequestedDataValueInformation,
+ ResourceOperationalState,
+ RL-Set-ID,
+ RL-ID,
+ RL-Specific-DCH-Info,
+ RL-Specific-E-DCH-Info,
+ Received-total-wide-band-power-Value,
+ AdjustmentPeriod,
+ ScaledAdjustmentRatio,
+ MaxAdjustmentStep,
+ RNC-ID,
+ ScramblingCodeNumber,
+ Secondary-CPICH-Information-Change,
+ SecondaryCCPCH-SlotFormat,
+ Segment-Type,
+ Semi-PersistentScheduling-CapabilityLCR,
+ Serving-E-DCH-RL-ID,
+ SixteenQAM-UL-Capability,
+ SixtyfourQAM-DL-Capability,
+ SixtyfourQAM-DL-MIMO-Combined-Capability,
+ SFN,
+ SFNSFNChangeLimit,
+ SFNSFNDriftRate,
+ SFNSFNDriftRateQuality,
+ SFNSFNQuality,
+ ShutdownTimer,
+ SIB-Originator,
+ SpecialBurstScheduling,
+ SignallingBearerRequestIndicator,
+ Start-Of-Audit-Sequence-Indicator,
+ STTD-Indicator,
+ SSDT-SupportIndicator,
+ E-DPCCH-Power-Boosting-Capability,
+ SyncCase,
+ SYNCDlCodeId,
+ SyncFrameNumber,
+ SynchronisationReportCharacteristics,
+ SynchronisationReportType,
+ Target-NonServing-EDCH-To-Total-EDCH-Power-Ratio,
+ T-Cell,
+ T-RLFAILURE,
+ TDD-ChannelisationCode,
+ TDD-ChannelisationCodeLCR,
+ TDD-ChannelisationCode768,
+ TDD-DL-Code-LCR-Information,
+ TDD-DPCHOffset,
+ TDD-TPC-DownlinkStepSize,
+ TDD-PhysicalChannelOffset,
+ TDD-UL-Code-LCR-Information,
+ 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-DPDCH-Indicator-For-E-DCH-Operation,
+ 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,
+ SynchronisationIndicator,
+ TDD-UL-Code-768-Information,
+ UL-Timeslot768-Information,
+ TDD-DL-Code-768-Information,
+ DL-Timeslot768-Information,
+ E-DCH-TDD-CapacityConsumptionLaw,
+ E-DCH-Information,
+ E-DCH-Information-Response,
+ E-DCH-Information-Reconfig,
+ LTGI-Presence,
+ SNPL-Reporting-Type,
+ E-AGCH-Id,
+ E-HICH-TimeOffset,
+ Maximum-Generated-ReceivedTotalWideBandPowerInOtherCells,
+ E-DCH-768-Information,
+ E-DCH-768-Information-Reconfig,
+ RTWP-ReportingIndicator,
+ RTWP-CellPortion-ReportingIndicator,
+ MAChs-ResetIndicator,
+ E-DCH-LCR-Information,
+ E-DCH-LCR-Information-Reconfig,
+ E-HICH-ID-TDD,
+ E-HICH-TimeOffsetLCR,
+ E-HICH-Type,
+ ModulationPO-MBSFN,
+ Secondary-CCPCH-SlotFormat-Extended,
+ ModulationMBSFN,
+ MBSFN-Only-Mode-Indicator,
+ MBSFN-Only-Mode-Capability,
+ UPPCHPositionLCR,
+ ControlGAP,
+ IdleIntervalInformation,
+ Extended-HS-SICH-ID,
+ Extended-HS-SCCH-ID,
+ TimeslotLCR-Extension,
+ Extended-E-HICH-ID-TDD,
+ AdditionalTimeSlotListLCR,
+ AdditionalMeasurementValueList,
+ HS-SCCH-ID-LCR,
+ Paging-MACFlows-to-DeleteLCR,
+ HSDSCH-Paging-System-InformationLCR,
+ HSDSCH-Paging-System-Information-ResponseLCR,
+ HSDSCH-Common-System-InformationLCR,
+ HSDSCH-Common-System-Information-ResponseLCR,
+ Enhanced-UE-DRX-InformationLCR,
+ E-DCH-MACdFlow-ID-LCR,
+ Common-EDCH-System-InformationLCR,
+ Common-EDCH-System-Information-ResponseLCR,
+ Common-MACFlows-to-DeleteLCR,
+ DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst,
+ E-DCH-MACdFlows-to-DeleteLCR,
+ HSDSCH-PreconfigurationSetup,
+ HSDSCH-PreconfigurationInfo,
+ NoOfTargetCellHS-SCCH-Order,
+ EnhancedHSServingCC-Abort,
+ GANSS-Time-ID,
+ HS-DSCH-FDD-Secondary-Serving-Update-Information,
+ HS-DSCH-Secondary-Serving-Remove,
+ HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised,
+ HS-DSCH-Secondary-Serving-Information-To-Modify,
+ HS-DSCH-Secondary-Serving-Cell-Change-Information-Response,
+ HS-DSCH-FDD-Secondary-Serving-Information-Response,
+ HS-DSCH-FDD-Secondary-Serving-Information,
+ Multi-Cell-Capability-Info,
+ MinimumReducedE-DPDCH-GainFactor,
+ IMB-Parameters,
+ E-RNTI,
+ E-DCH-Semi-PersistentScheduling-Information-LCR,
+ HS-DSCH-Semi-PersistentScheduling-Information-LCR,
+ Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext,
+ HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR,
+ E-DCH-Semi-PersistentScheduling-Information-ResponseLCR,
+ HSSICH-ReferenceSignal-InformationLCR,
+ UE-Selected-MBMS-Service-Information,
+ UE-AggregateMaximumBitRate,
+ HSSICH-ReferenceSignal-InformationModifyLCR,
+ TimeSlotMeasurementValueListLCR,
+ MIMO-PowerOffsetForS-CPICHCapability,
+ MIMO-PilotConfigurationExtension,
+ TxDiversityOnDLControlChannelsByMIMOUECapability,
+ Single-Stream-MIMO-Capability,
+ ActivationInformation,
+ Cell-Capability-Container,
+ DormantModeIndicator,
+ Additional-EDCH-Setup-Info,
+ Additional-EDCH-Cell-Information-Response-List,
+ Additional-EDCH-Cell-Information-To-Add-List,
+ Additional-EDCH-FDD-Update-Information,
+ TS0-CapabilityLCR,
+ Out-of-Sychronization-Window,
+ DCH-MeasurementOccasion-Information,
+ Additional-EDCH-Cell-Information-Response-RLReconf-List,
+ Setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency,
+ Additional-EDCH-Cell-Information-Response-RL-Add-List,
+ PrecodingWeightSetRestriction
+
+
+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-Additional-S-CCPCH-Parameters-CTCH-ReconfRqstTDD,
+ id-Additional-S-CCPCH-Parameters-CTCH-SetupRqstTDD,
+ id-Additional-S-CCPCH-LCR-Parameters-CTCH-ReconfRqstTDD,
+ id-Additional-S-CCPCH-LCR-Parameters-CTCH-SetupRqstTDD,
+ id-AdjustmentRatio,
+ id-AICH-Information,
+ id-AICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-AlternativeFormatReportingIndicator,
+ id-BCH-Information,
+ id-BCCH-ModificationTime,
+ id-bindingID,
+ id-BlockingPriorityIndicator,
+ id-BroadcastReference,
+ 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-CellAdjustmentInfo-SyncAdjustmntRqstTDD,
+ id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD,
+ id-Cell-ERNTI-Status-Information,
+ id-Cell-InformationItem-AuditRsp,
+ id-Cell-InformationItem-ResourceStatusInd,
+ id-Cell-InformationList-AuditRsp,
+ id-CellParameterID,
+ id-CellPortion-InformationItem-Cell-SetupRqstFDD,
+ id-CellPortion-InformationList-Cell-SetupRqstFDD,
+ id-CellPortion-InformationItem-Cell-ReconfRqstFDD,
+ id-CellPortion-InformationList-Cell-ReconfRqstFDD,
+ 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-CellPortion-CapabilityLCR,
+ id-CFN,
+ id-CFNReportingIndicator,
+ id-C-ID,
+ id-Closed-Loop-Timing-Adjustment-Mode,
+ id-Common-EDCH-Capability,
+ id-Common-E-DCH-HSDPCCH-Capability,
+ id-Common-EDCH-MACdFlows-to-DeleteFDD,
+ id-Common-EDCH-System-InformationFDD,
+ id-Common-EDCH-System-Information-ResponseFDD,
+ id-Common-MACFlows-to-DeleteFDD,
+ 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-Common-UL-MACFlows-to-DeleteFDD,
+ id-CommunicationContextInfoItem-Reset,
+ id-CommunicationControlPortID,
+ id-CommunicationControlPortInfoItem-Reset,
+ id-Compressed-Mode-Deactivation-Flag,
+ id-ConfigurationGenerationID,
+ id-ContinuousPacketConnectivityDTX-DRX-Capability,
+ id-ContinuousPacketConnectivityDTX-DRX-Information,
+ id-ContinuousPacketConnectivityHS-SCCH-less-Capability,
+ id-ContinuousPacketConnectivityHS-SCCH-less-Information,
+ id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response,
+ id-ContinuousPacketConnectivity-DRX-CapabilityLCR,
+ id-ContinuousPacketConnectivity-DRX-InformationLCR,
+ id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR,
+ id-CPC-InformationLCR,
+ id-CPC-Information,
+ 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-Indicator-For-E-DCH-HSDPA-Operation,
+ id-DCH-InformationResponse,
+ id-DCH-RearrangeList-Bearer-RearrangeInd,
+ id-DSCH-RearrangeList-Bearer-RearrangeInd,
+ id-FDD-DCHs-to-Modify,
+ id-FDD-S-CCPCH-FrameOffset-CTCH-SetupRqstFDD,
+ 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-DPCH-Power-Information-RL-ReconfPrepFDD,
+ 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-DSCHs-to-Add-TDD,
+ id-DSCH-Information-DeleteList-RL-ReconfPrepTDD,
+ id-DSCH-Information-ModifyList-RL-ReconfPrepTDD,
+ id-DSCH-InformationResponse,
+ id-DSCH-TDD-Information,
+ id-Dual-Band-Capability-Info,
+ id-E-AGCH-And-E-RGCH-E-HICH-FDD-Scrambling-Code,
+ id-E-AI-Capability,
+ id-E-AGCH-FDD-Code-Information,
+ id-E-DCH-Capability,
+ id-E-DCH-TTI2ms-Capability,
+ id-E-DCH-SF-Capability,
+ id-E-DCH-HARQ-Combining-Capability,
+ id-E-DCH-FDD-DL-Control-Channel-Information,
+ id-E-DCH-FDD-Information,
+ id-E-DCH-FDD-Information-Response,
+ id-E-DCH-FDD-Information-to-Modify,
+ id-E-DCH-FDD-Update-Information,
+ id-E-DCH-MACdFlows-to-Add,
+ id-E-DCH-MACdFlows-to-Delete,
+ id-E-DCH-RearrangeList-Bearer-RearrangeInd,
+ id-E-DCH-Resources-Information-AuditRsp,
+ id-E-DCH-Resources-Information-ResourceStatusInd,
+ id-E-DCH-RL-Indication,
+ id-E-DCH-RL-Set-ID,
+ id-E-DCH-Serving-Cell-Change-Info-Response,
+ id-E-DCH-CapacityConsumptionLaw,
+ id-E-DPCH-Information-RL-ReconfPrepFDD,
+ id-E-DPCH-Information-RL-ReconfRqstFDD,
+ id-E-DPCH-Information-RL-SetupRqstFDD,
+ id-E-DPCH-Information-RL-AdditionReqFDD,
+ id-E-RGCH-E-HICH-FDD-Code-Information,
+ id-ERACH-CM-Rqst,
+ id-ERACH-CM-Rsp,
+ id-ERACH-CM-Rprt,
+ id-End-Of-Audit-Sequence-Indicator,
+ id-Enhanced-FACH-Capability,
+ id-Enhanced-PCH-Capability,
+ id-Enhanced-UE-DRX-Capability,
+ id-Enhanced-UE-DRX-InformationFDD,
+ id-ExtendedPropagationDelay,
+ 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-Fast-Reconfiguration-Mode,
+ id-Fast-Reconfiguration-Permission,
+ id-F-DPCH-Capability,
+ id-F-DPCH-Information-RL-ReconfPrepFDD,
+ id-F-DPCH-Information-RL-SetupRqstFDD,
+ id-F-DPCH-SlotFormat,
+ id-F-DPCH-SlotFormatCapability,
+ id-HSDPA-And-EDCH-CellPortion-Information-PSCH-ReconfRqst,
+ id-HSDSCH-Configured-Indicator,
+ id-HS-DSCH-Serving-Cell-Change-Info,
+ id-HS-DSCH-Serving-Cell-Change-Info-Response,
+ 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-Initial-DL-DPCH-TimingAdjustment,
+ id-Initial-DL-DPCH-TimingAdjustment-Allowed,
+ 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-IPMulticastIndication,
+ 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-Max-UE-DTX-Cycle,
+ id-MeasurementFilterCoefficient,
+ id-MeasurementID,
+ id-MeasurementRecoveryBehavior,
+ id-MeasurementRecoveryReportingIndicator,
+ id-MeasurementRecoverySupportIndicator,
+ id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst,
+ id-MBMS-Capability,
+ id-MICH-CFN,
+ id-MICH-Information-AuditRsp,
+ id-MICH-Information-ResourceStatusInd,
+ id-MICH-Parameters-CTCH-ReconfRqstFDD,
+ id-MICH-Parameters-CTCH-ReconfRqstTDD,
+ id-MICH-Parameters-CTCH-SetupRqstFDD,
+ id-MICH-Parameters-CTCH-SetupRqstTDD,
+ id-MIMO-Capability,
+ id-MIMO-PilotConfiguration,
+ id-Modification-Period,
+ id-multipleRL-dl-DPCH-InformationList,
+ id-multipleRL-dl-DPCH-InformationModifyList,
+ id-multipleRL-dl-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-multiple-RL-Information-RL-ReconfPrepTDD,
+ id-multiple-RL-Information-RL-ReconfRqstTDD,
+ id-multipleRL-ul-DPCH-InformationList,
+ id-multipleRL-ul-DPCH-InformationModifyList,
+ id-NCyclesPerSFNperiod,
+ id-NeighbouringCellMeasurementInformation,
+ id-NI-Information-NotifUpdateCmd,
+ id-NodeB-CommunicationContextID,
+ id-NRepetitionsPerCyclePeriod,
+ id-NumberOfReportedCellPortions,
+ id-NumberOfReportedCellPortionsLCR,
+ id-Paging-MACFlows-to-DeleteFDD,
+ 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-PICH-ParametersItem-CTCH-ReconfRqstFDD,
+ id-PDSCH-Information-AddListIE-PSCH-ReconfRqst,
+ id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst,
+ id-PDSCH-RL-ID,
+ id-PDSCH-Timeslot-Format-PSCH-ReconfRqst-LCR,
+ 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-PLCCH-Information-AuditRsp,
+ id-PLCCH-Information-ResourceStatusInd,
+ id-PLCCH-Information-RL-ReconfPrepTDDLCR,
+ id-PLCCH-InformationList-AuditRsp,
+ id-PLCCH-InformationList-ResourceStatusInd,
+ id-PLCCH-Parameters-CTCH-ReconfRqstTDD,
+ id-PowerAdjustmentType,
+ id-Power-Local-Cell-Group-choice-CM-Rqst,
+ id-Power-Local-Cell-Group-choice-CM-Rsp,
+ id-Power-Local-Cell-Group-choice-CM-Rprt,
+ 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-PUSCH-Timeslot-Format-PSCH-ReconfRqst-LCR,
+ id-PUSCHConstant,
+ id-PUSCHSets-AddList-PSCH-ReconfRqst,
+ id-PUSCHSets-DeleteList-PSCH-ReconfRqst,
+ id-PUSCHSets-ModifyList-PSCH-ReconfRqst,
+ 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-RL-Specific-E-DCH-Info,
+ id-S-CCPCH-Information,
+ id-S-CCPCH-InformationListExt-AuditRsp,
+ id-S-CCPCH-InformationListExt-ResourceStatusInd,
+ id-S-CCPCH-LCR-InformationListExt-AuditRsp,
+ id-S-CCPCH-LCR-InformationListExt-ResourceStatusInd,
+ 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-Secondary-CPICH-Information,
+ 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-Semi-PersistentScheduling-CapabilityLCR,
+ id-SegmentInformationListIE-SystemInfoUpdate,
+ id-Serving-Cell-Change-CFN,
+ id-Serving-E-DCH-RL-ID,
+ id-SixteenQAM-UL-Capability,
+ id-SixtyfourQAM-DL-Capability,
+ id-SixtyfourQAM-DL-MIMO-Combined-Capability,
+ id-SFN,
+ id-SFNReportingIndicator,
+ id-ShutdownTimer,
+ id-SignallingBearerRequestIndicator,
+ id-Start-Of-Audit-Sequence-Indicator,
+ id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD,
+ id-Successful-RL-InformationRespItem-RL-SetupFailureFDD,
+ id-E-DPCCH-Power-Boosting-Capability,
+ 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-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-Tstd-indicator,
+ 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-UL-DPDCH-Indicator-For-E-DCH-Operation,
+ 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-E-AGCH-E-RGCH-E-HICH-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-Common-System-InformationFDD,
+ id-HSDSCH-Common-System-Information-ResponseFDD,
+ 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-Paging-System-InformationFDD,
+ id-HSDSCH-Paging-System-Information-ResponseFDD,
+ 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,
+ id-Maximum-Target-ReceivedTotalWideBandPower,
+ id-multiple-DedicatedMeasurementValueList-TDD-DM-Rsp,
+ id-multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp,
+ id-SynchronisationIndicator,
+ id-Reference-ReceivedTotalWideBandPower,
+ id-Reference-ReceivedTotalWideBandPowerReporting,
+ id-Reference-ReceivedTotalWideBandPowerSupportIndicator,
+ id-Maximum-Target-ReceivedTotalWideBandPower-LCR,
+ id-multiple-PUSCH-InfoList-DM-Rsp,
+ id-multiple-PUSCH-InfoList-DM-Rprt,
+ id-Target-NonServing-EDCH-To-Total-EDCH-Power-Ratio,
+ id-multiple-HSSICHMeasurementValueList-TDD-DM-Rsp,
+ id-PCCPCH-768-Information-Cell-SetupRqstTDD,
+ id-SCH-768-Information-Cell-SetupRqstTDD,
+ id-SCH-768-Information-Cell-ReconfRqstTDD,
+ id-PCCPCH-768-Information-Cell-ReconfRqstTDD,
+ id-P-CCPCH-768-Information-AuditRsp,
+ id-PICH-768-Information-AuditRsp,
+ id-PRACH-768-InformationList-AuditRsp,
+ id-SCH-768-Information-AuditRsp,
+ id-MICH-768-Information-AuditRsp,
+ id-CommonPhysicalChannelID768-CommonTrChDeletionReq,
+ id-MICH-768-Parameters-CTCH-ReconfRqstTDD,
+ id-PICH-768-Parameters-CTCH-SetupRqstTDD,
+ id-PICH-768-Parameters-CTCH-ReconfRqstTDD,
+ id-PRACH-768-Parameters-CTCH-SetupRqstTDD,
+ id-S-CCPCH-768-InformationList-AuditRsp,
+ id-S-CCPCH-768-Information-AuditRsp,
+ id-S-CCPCH-768-Parameters-CTCH-SetupRqstTDD,
+ id-S-CCPCH-768-Parameters-CTCH-ReconfRqstTDD,
+ id-S-CCPCH-768-Information-ResourceStatusInd,
+ id-P-CCPCH-768-Information-ResourceStatusInd,
+ id-PICH-768-Information-ResourceStatusInd,
+ id-PRACH-768-InformationList-ResourceStatusInd,
+ id-SCH-768-Information-ResourceStatusInd,
+ id-MICH-768-Information-ResourceStatusInd,
+ id-S-CCPCH-768-InformationList-ResourceStatusInd,
+ id-PRACH-768-Information,
+ id-UL-DPCH-768-Information-RL-SetupRqstTDD,
+ id-DL-DPCH-768-Information-RL-SetupRqstTDD,
+ id-DL-DPCH-InformationItem-768-RL-AdditionRqstTDD,
+ id-UL-DPCH-InformationItem-768-RL-AdditionRqstTDD,
+ id-UL-DPCH-768-InformationAddItemIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-768-InformationAddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-768-InformationModify-AddItem,
+ id-UL-DPCH-768-InformationModify-AddList,
+ id-UL-Timeslot768-Information-RL-ReconfPrepTDD,
+ id-DL-DPCH-768-InformationAddItem-RL-ReconfPrepTDD,
+ id-DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD,
+ id-DL-DPCH-768-InformationModify-AddItem-RL-ReconfPrepTDD,
+ id-DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD,
+ id-DL-Timeslot-768-InformationModify-ModifyList-RL-ReconfPrepTDD,
+ id-DPCH-ID768-DM-Rqst,
+ id-multiple-DedicatedMeasurementValueList-768-TDD-DM-Rsp,
+ id-DPCH-ID768-DM-Rsp,
+ id-DPCH-ID768-DM-Rprt,
+ id-PDSCH-AddInformation-768-PSCH-ReconfRqst,
+ id-PDSCH-ModifyInformation-768-PSCH-ReconfRqst,
+ id-PUSCH-AddInformation-768-PSCH-ReconfRqst,
+ id-PUSCH-ModifyInformation-768-PSCH-ReconfRqst,
+ id-dL-HS-PDSCH-Timeslot-Information-768-PSCH-ReconfRqst,
+ id-hS-SCCH-Information-768-PSCH-ReconfRqst,
+ id-hS-SCCH-InformationModify-768-PSCH-ReconfRqst,
+ id-tFCI-Presence,
+ id-E-RUCCH-InformationList-AuditRsp,
+ id-E-RUCCH-InformationList-ResourceStatusInd,
+ id-E-RUCCH-Information,
+ id-E-DCH-Information,
+ id-E-DCH-Information-Response,
+ id-E-DCH-Information-Reconfig,
+ id-E-PUCH-Information-PSCH-ReconfRqst,
+ id-Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst,
+ id-Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst,
+ id-Delete-From-E-AGCH-Resource-Pool-PSCH-ReconfRqst,
+ id-E-HICH-Information-PSCH-ReconfRqst,
+ id-E-DCH-TDD-CapacityConsumptionLaw,
+ id-E-HICH-TimeOffset,
+ id-Maximum-Generated-ReceivedTotalWideBandPowerInOtherCells,
+ id-E-DCH-Serving-RL-ID,
+ id-E-RUCCH-768-InformationList-AuditRsp,
+ id-E-RUCCH-768-InformationList-ResourceStatusInd,
+ id-E-RUCCH-768-Information,
+ id-E-DCH-768-Information,
+ id-E-DCH-768-Information-Reconfig,
+ id-E-PUCH-Information-768-PSCH-ReconfRqst,
+ id-Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst,
+ id-Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst,
+ id-E-HICH-Information-768-PSCH-ReconfRqst,
+ id-RTWP-ReportingIndicator,
+ id-RTWP-CellPortion-ReportingIndicator,
+ id-Received-Scheduled-EDCH-Power-Share-Value,
+ id-Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value,
+ id-Received-Scheduled-EDCH-Power-Share,
+ id-Received-Scheduled-EDCH-Power-Share-For-CellPortion,
+ id-ueCapability-Info,
+ id-MAChs-ResetIndicator,
+ id-SYNC-UL-Partition-LCR,
+ id-E-DCH-LCR-Information,
+ id-E-DCH-LCR-Information-Reconfig,
+ id-E-PUCH-Information-LCR-PSCH-ReconfRqst,
+ id-Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ id-Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ id-Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ id-Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ id-Delete-From-E-HICH-Resource-Pool-PSCH-ReconfRqst,
+ id-E-HICH-TimeOffsetLCR,
+ id-HSDSCH-MACdPDU-SizeCapability,
+ id-ModulationPO-MBSFN,
+ id-Secondary-CCPCH-SlotFormat-Extended,
+ id-MBSFN-Only-Mode-Indicator-Cell-SetupRqstTDD-LCR,
+ id-Time-Slot-Parameter-ID,
+ id-MBSFN-Only-Mode-Capability,
+ id-MBSFN-Cell-ParameterID-Cell-SetupRqstTDD,
+ id-MBSFN-Cell-ParameterID-Cell-ReconfRqstTDD,
+ id-S-CCPCH-Modulation,
+ id-TimeSlotConfigurationList-LCR-CTCH-SetupRqstTDD,
+ id-Cell-Frequency-List-Information-LCR-MulFreq-AuditRsp,
+ id-Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp,
+ id-Cell-Frequency-List-LCR-MulFreq-Cell-SetupRqstTDD,
+ id-UARFCN-Adjustment,
+ id-Cell-Frequency-List-Information-LCR-MulFreq-ResourceStatusInd,
+ id-Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd,
+ id-UPPCHPositionLCR,
+ id-UPPCH-LCR-Parameters-CTCH-ReconfRqstTDD,
+ id-UPPCH-LCR-InformationList-AuditRsp,
+ id-UPPCH-LCR-InformationItem-AuditRsp,
+ id-UPPCH-LCR-InformationList-ResourceStatusInd,
+ id-UPPCH-LCR-InformationItem-ResourceStatusInd,
+ id-multipleFreq-dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst,
+ id-multipleFreq-HS-DSCH-Resources-InformationList-AuditRsp,
+ id-multipleFreq-HS-DSCH-Resources-InformationList-ResourceStatusInd,
+ id-UARFCNSpecificCauseList,id-Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD,
+ id-MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst,
+ id-Extended-HS-SCCH-ID,
+ id-Extended-HS-SICH-ID,
+ id-HSSICH-InfoExt-DM-Rqst,
+ id-Delete-From-HS-SCCH-Resource-PoolExt-PSCH-ReconfRqst,
+ id-HS-SCCH-InformationExt-LCR-PSCH-ReconfRqst,
+ id-HS-SCCH-InformationModifyExt-LCR-PSCH-ReconfRqst,
+ id-PowerControlGAP,
+ id-PowerControlGAP-For-CellFACHLCR,
+ id-IdleIntervalInformation,
+ id-MBSFN-SpecialTimeSlot-LCR,
+ id-MultipleFreq-E-DCH-Resources-InformationList-AuditRsp,
+ id-MultipleFreq-E-DCH-Resources-InformationList-ResourceStatusInd,
+ id-MultipleFreq-E-PUCH-Timeslot-InformationList-LCR-PSCH-ReconfRqst,
+ id-MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst,
+ id-Extended-E-HICH-ID-TDD,
+ id-E-DCH-MACdPDU-SizeCapability,
+ id-E-HICH-TimeOffset-Extension,
+ id-MultipleFreq-E-HICH-TimeOffsetLCR,
+ id-PLCCH-parameters,
+ id-E-RUCCH-parameters,
+ id-E-RUCCH-768-parameters,
+ id-HS-Cause,
+ id-E-Cause,
+ id-AdditionalTimeSlotListLCR,
+ id-AdditionalMeasurementValueList,
+ id-HSDSCH-Paging-System-InformationLCR,
+ id-HSDSCH-Paging-System-Information-ResponseLCR,
+ id-HSDSCH-Common-System-InformationLCR,
+ id-HSDSCH-Common-System-Information-ResponseLCR,
+ id-Paging-MACFlows-to-DeleteLCR,
+ id-Enhanced-UE-DRX-CapabilityLCR,
+ id-Enhanced-UE-DRX-InformationLCR,
+ id-Common-EDCH-MACdFlows-to-DeleteLCR,
+ id-Common-EDCH-System-InformationLCR,
+ id-Common-EDCH-System-Information-ResponseLCR,
+ id-Common-MACFlows-to-DeleteLCR,
+ id-Common-UL-MACFlows-to-DeleteLCR,
+ id-HSDSCH-PreconfigurationSetup,
+ id-HSDSCH-PreconfigurationInfo,
+ id-NoOfTargetCellHS-SCCH-Order,
+ id-EnhancedHSServingCC-Abort,
+ id-GANSS-Time-ID,
+ id-Additional-HS-Cell-Information-RL-Setup,
+ id-Additional-HS-Cell-Information-Response,
+ id-Additional-HS-Cell-Information-RL-Addition,
+ id-Additional-HS-Cell-Change-Information-Response,
+ id-Additional-HS-Cell-Information-RL-Reconf-Prep,
+ id-Additional-HS-Cell-Information-RL-Reconf-Req,
+ id-Additional-HS-Cell-Information-RL-Param-Upd,
+ id-Multi-Cell-Capability-Info,
+ id-MinimumReducedE-DPDCH-GainFactor,
+ id-IMB-Parameters,
+ id-E-RNTI,
+ id-E-DCH-Semi-PersistentScheduling-Information-LCR,
+ id-HS-DSCH-Semi-PersistentScheduling-Information-LCR,
+ id-Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ id-Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ id-Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst,
+ id-Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext,
+ id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR,
+ id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR,
+ id-HSSICH-ReferenceSignal-InformationLCR,
+ id-UE-Selected-MBMS-Service-Information,
+ id-HSSICH-ReferenceSignal-InformationModifyLCR,
+ id-TimeSlotMeasurementValueListLCR,
+ id-MIMO-Power-Offset-For-S-CPICH-Capability,
+ id-MIMO-PilotConfigurationExtension,
+ id-TxDiversityOnDLControlChannelsByMIMOUECapability,
+ id-UE-AggregateMaximumBitRate,
+ id-Single-Stream-MIMO-Capability,
+ id-ActivationInformation,
+ id-Cell-Capability-Container,
+ id-DormantModeIndicator,
+ id-Additional-EDCH-Cell-Information-RL-Setup-Req,
+ id-Additional-EDCH-Cell-Information-Response,
+ id-Additional-EDCH-Cell-Information-RL-Add-Req,
+ id-Additional-EDCH-Cell-Information-Response-RL-Add,
+ id-Additional-EDCH-Cell-Information-RL-Reconf-Prep,
+ id-Additional-EDCH-Cell-Information-RL-Reconf-Req,
+ id-Additional-EDCH-Cell-Information-Bearer-Rearrangement,
+ id-Additional-EDCH-Cell-Information-RL-Param-Upd,
+ id-Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst,
+ id-E-HICH-TimeOffset-ReconfFailureTDD,
+ id-Common-System-Information-ResponseLCR,
+ id-TS0-CapabilityLCR,
+ id-HSSCCH-TPC-StepSize,
+ id-Out-of-Sychronization-Window,
+ id-DCH-MeasurementOccasion-Information,
+ id-Additional-EDCH-Cell-Information-ResponseRLReconf,
+ id-PrecodingWeightSetRestriction,
+
+ maxNrOfCCTrCHs,
+ maxNrOfCellSyncBursts,
+ maxNrOfCodes,
+ maxNrOfDCHs,
+ maxNrOfDLTSs,
+ maxNrOfDLTSLCRs,
+ maxNrOfDPCHs,
+ maxNrOfDPCHsPerRL-1,
+ maxNrOfDPCHLCRs,
+ maxNrOfDPCHsLCRPerRL-1,
+ maxNrOfDPCHs768,
+ maxNrOfDPCHs768PerRL-1,
+ maxNrOfDSCHs,
+ maxNrOfFACHs,
+ maxNrOfRLs,
+ maxNrOfRLs-1,
+ maxNrOfRLs-2,
+ maxNrOfRLSets,
+ maxNrOfPDSCHs,
+ maxNrOfPUSCHs,
+ maxNrOfPUSCHs-1,
+ maxNrOfPRACHLCRs,
+ maxNrOfPDSCHSets,
+ maxNrOfPUSCHSets,
+ maxNrOfReceptsPerSyncFrame,
+ maxNrOfSCCPCHs,
+ maxNrOfSCCPCHsinExt,
+ maxNrOfSCCPCHLCRs,
+ maxNrOfSCCPCHsLCRinExt,
+ maxNrOfSCCPCHs768,
+ maxNrOfULTSs,
+ maxNrOfULTSLCRs,
+ maxNrOfUSCHs,
+ maxFACHCell,
+ maxFPACHCell,
+ maxRACHCell,
+ maxPLCCHCell,
+ maxPRACHCell,
+ maxSCCPCHCell,
+ maxSCCPCHCell768,
+ maxSCCPCHCellinExt,
+ maxSCCPCHCellinExtLCR,
+ maxSCPICHCell,
+ maxCellinNodeB,
+ maxCCPinNodeB,
+ maxCommunicationContext,
+ maxLocalCellinNodeB,
+ maxNrOfSlotFormatsPRACH,
+ maxIB,
+ maxIBSEG,
+ maxNrOfCellPortionsPerCell,
+ maxNrOfHSSCCHs,
+ maxNrOfHSSICHs,
+ maxNrOfHSSICHs-1,
+ maxNrOfHSPDSCHs,
+ maxNrOfHSPDSCHs768,
+ maxNrOfSyncFramesLCR,
+ maxNrOfReceptionsperSyncFrameLCR,
+ maxNrOfSyncDLCodesLCR,
+ maxNrOfMACdFlows,
+ maxNrOfEDCHMACdFlows,
+ maxE-RUCCHCell,
+ maxNrOfE-PUCHSlots,
+ maxNrOfEAGCHs,
+ maxNrOfEAGCHCodes,
+ maxNrOfE-PUCHSlotsLCR,
+ maxNrOfEPUCHcodes,
+ maxNrOfEHICHs,
+ maxFrequencyinCell,
+ maxFrequencyinCell-1,
+ maxNrOfHSSCCHsinExt,
+ maxNrOfHSSCCHsLCR,
+ maxNrOfEAGCHsLCR,
+ maxNrOfEHICHsLCR,
+ maxNrOfHSDSCH-1,
+ maxNrOfEDCH-1
+
+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,
+ notUsed-pCPCHes-parameters NULL,
+ ...
+}
+
+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 or if 3.84Mcps TDD IMB is used
+ 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 ::= {
+ { ID id-MICH-Parameters-CTCH-SetupRqstFDD CRITICALITY reject EXTENSION MICH-Parameters-CTCH-SetupRqstFDD PRESENCE optional }|
+ { ID id-FDD-S-CCPCH-FrameOffset-CTCH-SetupRqstFDD CRITICALITY reject EXTENSION FDD-S-CCPCH-FrameOffset PRESENCE optional }|
+ { ID id-ModulationPO-MBSFN CRITICALITY reject EXTENSION ModulationPO-MBSFN PRESENCE optional }|
+ { ID id-Secondary-CCPCH-SlotFormat-Extended CRITICALITY reject EXTENSION Secondary-CCPCH-SlotFormat-Extended PRESENCE optional }|
+ { ID id-IMB-Parameters CRITICALITY reject EXTENSION IMB-Parameters PRESENCE optional },
+ ...
+}
+
+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 }|
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional }|
+ { ID id-BroadcastReference CRITICALITY ignore EXTENSION BroadcastReference PRESENCE optional }|
+ { ID id-IPMulticastIndication CRITICALITY ignore EXTENSION IPMulticastIndication 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 }|
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos 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 ::= {
+ ...
+}
+
+MICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ mICH-Power PICH-Power,
+ mICH-Mode MICH-Mode,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { MICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MICH-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 }|
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos 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 ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- 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,
+ ...,
+ extension-CommonPhysicalChannelType-CTCH-SetupRqstTDD Extension-CommonPhysicalChannelType-CTCH-SetupRqstTDD
+}
+
+Extension-CommonPhysicalChannelType-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ Extension-CommonPhysicalChannelType-CTCH-SetupRqstTDDIE }}
+
+Extension-CommonPhysicalChannelType-CTCH-SetupRqstTDDIE NBAP-PROTOCOL-IES ::= {
+ { ID id-PLCCH-parameters CRITICALITY ignore TYPE PLCCH-parameters PRESENCE mandatory }|
+ { ID id-E-RUCCH-parameters CRITICALITY ignore TYPE E-RUCCH-parameters PRESENCE mandatory }|
+ { ID id-E-RUCCH-768-parameters CRITICALITY ignore TYPE E-RUCCH-768-parameters PRESENCE mandatory },
+ ...
+}
+
+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 ::= {
+ { ID id-Tstd-indicator CRITICALITY reject EXTENSION TSTD-Indicator PRESENCE optional }|
+ { ID id-MICH-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION MICH-Parameters-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-Additional-S-CCPCH-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION Secondary-CCPCH-parameterExtendedList-CTCH-SetupRqstTDD PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only, used when more than maxNrOfSCCPCHs SCCPCHs are to be established.
+ { ID id-Additional-S-CCPCH-LCR-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION Secondary-CCPCH-LCR-parameterExtendedList-CTCH-SetupRqstTDD PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only, used when more than maxNrOfSCCPCHLCRs SCCPCHs are to be established.
+ { ID id-S-CCPCH-768-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION Secondary-CCPCH-768-parameterList-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-S-CCPCH-Modulation CRITICALITY reject EXTENSION ModulationMBSFN PRESENCE optional }| -- Applicable to 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD or 7.68Mcps TDD
+ { ID id-TimeSlotConfigurationList-LCR-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION TimeSlotConfigurationList-LCR-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies. This IE indicates the frequency of Secondary Frequency on which SCCPCH to be set up
+ ...
+}
+
+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 ::= {
+ { ID id-tFCI-Presence CRITICALITY notify EXTENSION TFCI-Presence PRESENCE optional},
+ ...
+}
+
+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,
+ -- For 1.28 Mcps TDD, if the cell is operating in MBSFN only mode, NodeB shall ignore the contents of this IE.
+ 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 ::= {
+ { ID id-MBSFN-SpecialTimeSlot-LCR CRITICALITY ignore EXTENSION TimeslotLCR-Extension PRESENCE optional },
+ -- Only for 1.28 Mcps TDD MBSFN only mode, this IE indicates the MBSFN Special Time Slot [19]. The IE "Time Slot LCR" shall be ignored if this IE appears
+ ...
+}
+
+Secondary-CCPCH-768-parameterList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHs768)) OF Secondary-CCPCH-768-parameterItem-CTCH-SetupRqstTDD
+
+Secondary-CCPCH-768-parameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ timeslot TimeSlot,
+ tFCI-Presence768 TFCI-Presence OPTIONAL,
+ midambleShiftandBurstType768 MidambleShiftAndBurstType768,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ s-CCPCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-parameterItem-768-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-parameterItem-768-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.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-BroadcastReference CRITICALITY ignore EXTENSION BroadcastReference PRESENCE optional }|
+ { ID id-IPMulticastIndication CRITICALITY ignore EXTENSION IPMulticastIndication PRESENCE optional },
+ ...
+}
+
+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.
+ { ID id-PICH-768-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION PICH-768-ParametersItem-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos 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 ::= {
+ { ID id-Tstd-indicator CRITICALITY reject EXTENSION TSTD-Indicator PRESENCE optional },
+ -- Applicable to 1.28 Mcps TDD only
+ ...
+}
+
+PICH-768-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ timeSlot TimeSlot,
+ midambleshiftAndBurstType78 MidambleShiftAndBurstType768,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pagingIndicatorLength PagingIndicatorLength,
+ pICH-Power PICH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PICH-768-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-768-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MICH-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ notificationIndicatorLength NotificationIndicatorLength,
+ mICH-Power PICH-Power,
+ mICH-TDDOption-Specific-Parameters MICH-TDDOption-Specific-Parameters-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { MICH-Parameters-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MICH-Parameters-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MICH-TDDOption-Specific-Parameters-CTCH-SetupRqstTDD ::= CHOICE {
+ hCR-TDD MICH-HCR-Parameters-CTCH-SetupRqstTDD,
+ lCR-TDD MICH-LCR-Parameters-CTCH-SetupRqstTDD,
+ ...,
+ cHipRate768-TDD MICH-768-Parameters-CTCH-SetupRqstTDD
+}
+
+MICH-HCR-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeSlot TimeSlot,
+ midambleshiftAndBurstType MidambleShiftAndBurstType,
+ iE-Extensions ProtocolExtensionContainer { { MICH-HCR-Parameters-CTCH-SetupRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MICH-HCR-Parameters-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MICH-LCR-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ -- For 1.28 Mcps TDD, if the cell is operating in MBSFN only mode, NodeB shall ignore the contents of this IE.
+ second-TDD-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { MICH-LCR-Parameters-CTCH-SetupRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MICH-LCR-Parameters-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MBSFN-SpecialTimeSlot-LCR CRITICALITY ignore EXTENSION TimeslotLCR-Extension PRESENCE optional },
+ -- Only for 1.28 Mcps TDD MBSFN only mode, this IE indicates the MBSFN Special Time Slot [19]. The IE "Time Slot LCR" shall be ignored if this IE appears
+ ...
+}
+
+MICH-768-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ timeSlot TimeSlot,
+ midambleshiftAndBurstType768 MidambleShiftAndBurstType768,
+ iE-Extensions ProtocolExtensionContainer { { MICH-768-Parameters-CTCH-SetupRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MICH-768-Parameters-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-LCR-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..7)) OF TimeSlotConfigurationItem-LCR-CTCH-SetupRqstTDD
+
+TimeSlotConfigurationItem-LCR-CTCH-SetupRqstTDD ::= SEQUENCE {
+ timeslotLCR TimeSlotLCR,
+ timeslotLCR-Parameter-ID CellParameterID,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-LCR-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSlotConfigurationItem-LCR-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-parameterExtendedList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHsinExt)) OF Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD
+ -- Applicable to 3.84Mcps TDD only, used when more than maxNrOfSCCPCHs SCCPCHs are to be established.
+
+Secondary-CCPCH-LCR-parameterExtendedList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHsLCRinExt)) OF Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD
+ -- Applicable to 1.28Mcps TDD only, used when more than maxNrOfSCCPCHLCRs SCCPCHs are to be established.
+
+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 or 7.68Mcps TDD
+ { ID id-PRACH-768-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION PRACH-768-ParametersItem-CTCH-SetupRqstTDD PRESENCE optional },
+ ...
+}
+
+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.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos 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 ::= {
+ { ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies. This IE indicates the frequency of secondary on which PRACH to be set up.
+ ...
+}
+
+PRACH-768-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ tFCS TFCS,
+ timeslot TimeSlot,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ maxPRACH-MidambleShifts MaxPRACH-MidambleShifts,
+ pRACH-Midamble PRACH-Midamble,
+ rACH RACH-Parameter-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-768-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-768-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 ::= {
+ { ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies. This IE indicates the frequency of Secondary Frequency on which FPACH to be set up.
+ ...
+}
+
+PLCCH-parameters ::= SEQUENCE {
+ maxPowerPLCCH DL-Power,
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ iE-Extensions ProtocolExtensionContainer { { PLCCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLCCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RUCCH-parameters ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ timeslot TimeSlot,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ maxE-RUCCH-MidambleShifts MaxPRACH-MidambleShifts,
+ e-RUCCH-Midamble PRACH-Midamble,
+ iE-Extensions ProtocolExtensionContainer { { E-RUCCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RUCCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RUCCH-768-parameters ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ timeslot TimeSlot,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ maxE-RUCCH-MidambleShifts MaxPRACH-MidambleShifts,
+ e-RUCCH-Midamble PRACH-Midamble,
+ iE-Extensions ProtocolExtensionContainer { { E-RUCCH-768-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RUCCH-768-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-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,
+ notUsed-cPCH-parameters NULL,
+ ...
+}
+
+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 ::= {
+ { ID id-MICH-Parameters-CTCH-ReconfRqstFDD CRITICALITY reject EXTENSION MICH-Parameters-CTCH-ReconfRqstFDD PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+MICH-Parameters-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ mICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MICH-Parameters-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MICH-Parameters-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 ::= {
+{ ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-MICH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION MICH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-PLCCH-Parameters-CTCH-ReconfRqstTDD CRITICALITY ignore EXTENSION PLCCH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-S-CCPCH-768-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION Secondary-CCPCH-768-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-PICH-768-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION PICH-768-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-MICH-768-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION MICH-768-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-UPPCH-LCR-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION UPPCH-LCR-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+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 ::= {
+ { ID id-Additional-S-CCPCH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION Secondary-CCPCH-parameterExtendedList-CTCH-ReconfRqstTDD PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only, used when more than maxNrOfSCCPCHs SCCPCHs are to be reconfigured.
+ { ID id-Additional-S-CCPCH-LCR-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION Secondary-CCPCH-LCR-parameterExtendedList-CTCH-ReconfRqstTDD PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only, used when more than maxNrOfSCCPCHs SCCPCHs are to be reconfigured.
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+Secondary-CCPCH-parameterExtendedList-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHsinExt)) OF Secondary-CCPCHItem-CTCH-ReconfRqstTDD
+ -- Applicable to 3.84Mcps TDD only, used when more than maxNrOfSCCPCHs SCCPCHs are to be reconfigured.
+
+Secondary-CCPCH-LCR-parameterExtendedList-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHsLCRinExt)) OF Secondary-CCPCHItem-CTCH-ReconfRqstTDD
+ -- Applicable to 1.28Mcps TDD only, used when more than maxNrOfSCCPCHs SCCPCHs are to be reconfigured.
+
+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
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+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
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+MICH-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ mICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MICH-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MICH-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLCCH-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ maxPowerPLCCH DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { PLCCH-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLCCH-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-768-Parameters-CTCH-ReconfRqstTDD::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ secondaryCCPCH768List Secondary-CCPCH-768-List-CTCH-ReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-768-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-768-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-768-List-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHs768)) OF Secondary-CCPCH-768-Item-CTCH-ReconfRqstTDD
+
+Secondary-CCPCH-768-Item-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ sCCPCH-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-768-Item-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-768-Item-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-768-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ pICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PICH-768-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-768-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MICH-768-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ mICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MICH-768-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MICH-768-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UPPCH-LCR-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ uPPCHPositionLCR UPPCHPositionLCR OPTIONAL,
+ uARFCN UARFCN OPTIONAL,
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies Corresponds to Nt [15]
+ iE-Extensions ProtocolExtensionContainer { { UPPCH-LCR-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UPPCH-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 ::= {
+ { ID id-CommonPhysicalChannelID768-CommonTrChDeletionReq CRITICALITY reject EXTENSION CommonPhysicalChannelID768 PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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,
+ notUsed-1-pCPCH-InformationList NULL OPTIONAL,
+ notUsed-2-cPCH-InformationList NULL OPTIONAL,
+ notUsed-3-aP-AICH-InformationList NULL OPTIONAL,
+ notUsed-4-cDCA-ICH-InformationList NULL 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 }|
+ -- For 1.28Mcps TDD, this HS-DSCH Resource Information is for the first Frequency repetition, HS-DSCH Resource Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-HS-DSCH-Resources-InformationList-AuditRsp.
+ { ID id-MICH-Information-AuditRsp CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information PRESENCE optional }|
+ { ID id-S-CCPCH-InformationListExt-AuditRsp CRITICALITY ignore EXTENSION S-CCPCH-InformationListExt-AuditRsp PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only, used when there are more than maxSCCPCHCell SCCPCHs in the cell.
+ { ID id-S-CCPCH-LCR-InformationListExt-AuditRsp CRITICALITY ignore EXTENSION S-CCPCH-LCR-InformationListExt-AuditRsp PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only, used when there are more than maxSCCPCHCell SCCPCHs in the cell.
+ { ID id-E-DCH-Resources-Information-AuditRsp CRITICALITY ignore EXTENSION E-DCH-Resources-Information-AuditRsp PRESENCE optional }|
+ -- For 1.28Mcps TDD, this E-DCH Resource Information is for the first Frequency repetition, E-DCH Resource Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-E-DCH-Resources-InformationList-AuditRsp.
+ { ID id-PLCCH-InformationList-AuditRsp CRITICALITY ignore EXTENSION PLCCH-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-P-CCPCH-768-Information-AuditRsp CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information768 PRESENCE optional }|
+ { ID id-S-CCPCH-768-InformationList-AuditRsp CRITICALITY ignore EXTENSION S-CCPCH-768-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-PICH-768-Information-AuditRsp CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information768 PRESENCE optional }|
+ { ID id-PRACH-768-InformationList-AuditRsp CRITICALITY ignore EXTENSION PRACH-768-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-SCH-768-Information-AuditRsp CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information768 PRESENCE optional }|
+ { ID id-MICH-768-Information-AuditRsp CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information768 PRESENCE optional }|
+ { ID id-E-RUCCH-InformationList-AuditRsp CRITICALITY ignore EXTENSION E-RUCCH-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-E-RUCCH-768-InformationList-AuditRsp CRITICALITY ignore EXTENSION E-RUCCH-768-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-Cell-Frequency-List-Information-LCR-MulFreq-AuditRsp CRITICALITY ignore EXTENSION Cell-Frequency-List-Information-LCR-MulFreq-AuditRsp PRESENCE optional }| -- Applicable to 1.28Mcps TDD when using multiple frequencies
+ { ID id-UPPCH-LCR-InformationList-AuditRsp CRITICALITY ignore EXTENSION UPPCH-LCR-InformationList-AuditRsp PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-multipleFreq-HS-DSCH-Resources-InformationList-AuditRsp CRITICALITY ignore EXTENSION MultipleFreq-HS-DSCH-Resources-InformationList-AuditRsp PRESENCE optional }|
+-- Applicable to 1.28Mcps TDD when using multiple frequencies.This HS-DSCH Resource Information is for the 2nd and beyond frequencies.
+ { ID id-MultipleFreq-E-DCH-Resources-InformationList-AuditRsp CRITICALITY ignore EXTENSION MultipleFreq-E-DCH-Resources-InformationList-AuditRsp PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies. This E-DCH Resource Information is for the 2nd and beyond frequencies.
+ ...
+}
+
+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 }
+}
+
+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 }
+}
+
+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 ::= {
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies.
+ ...
+}
+
+S-CCPCH-InformationListExt-AuditRsp ::= SEQUENCE (SIZE (1..maxSCCPCHCellinExt)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-AuditRsp }}
+
+S-CCPCH-LCR-InformationListExt-AuditRsp ::= SEQUENCE (SIZE (1..maxSCCPCHCellinExtLCR)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-AuditRsp }}
+
+E-DCH-Resources-Information-AuditRsp ::= SEQUENCE {
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ E-DCH-Resources-Information-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+E-DCH-Resources-Information-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies.
+ ...
+}
+
+PLCCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPLCCHCell)) OF ProtocolIE-Single-Container {{ PLCCH-InformationItemIE-AuditRsp }}
+
+PLCCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PLCCH-Information-AuditRsp CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CCPCH-768-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxSCCPCHCell768)) OF ProtocolIE-Single-Container {{ S-CCPCH-768-InformationItemIE-AuditRsp }}
+
+S-CCPCH-768-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CCPCH-768-Information-AuditRsp CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information768 PRESENCE mandatory }
+}
+
+PRACH-768-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ PRACH-768-InformationItemIE-AuditRsp }}
+
+PRACH-768-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-768-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information768 PRESENCE mandatory }
+}
+
+E-RUCCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxE-RUCCHCell)) OF ProtocolIE-Single-Container {{ E-RUCCH-InformationItemIE-AuditRsp }}
+
+E-RUCCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-E-RUCCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+E-RUCCH-768-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxE-RUCCHCell)) OF ProtocolIE-Single-Container {{ E-RUCCH-768-InformationItemIE-AuditRsp }}
+
+E-RUCCH-768-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-E-RUCCH-768-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information768 PRESENCE mandatory }
+}
+
+Cell-Frequency-List-Information-LCR-MulFreq-AuditRsp ::= SEQUENCE (SIZE (1..maxFrequencyinCell)) OF ProtocolIE-Single-Container {{ Cell-Frequency-List-InformationIE-LCR-MulFreq-AuditRsp }}
+
+Cell-Frequency-List-InformationIE-LCR-MulFreq-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp CRITICALITY ignore TYPE Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp PRESENCE mandatory }
+}
+
+Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp ::= SEQUENCE {
+ uARFCN UARFCN,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UPPCH-LCR-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFrequencyinCell)) OF ProtocolIE-Single-Container {{ UPPCH-LCR-InformationIE-AuditRsp }}
+
+UPPCH-LCR-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-UPPCH-LCR-InformationItem-AuditRsp CRITICALITY ignore TYPE UPPCH-LCR-InformationItem-AuditRsp PRESENCE mandatory }
+}
+
+UPPCH-LCR-InformationItem-AuditRsp ::= SEQUENCE {
+ uARFCN UARFCN OPTIONAL,
+ uPPCHPositionLCR UPPCHPositionLCR,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ UPPCH-LCR-InformationItem-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+UPPCH-LCR-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MultipleFreq-HS-DSCH-Resources-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF ProtocolIE-Single-Container {{ MultipleFreq-HS-DSCH-Resources-InformationItem-AuditRsp}}
+--Includes the 2nd through the max number of frequencies information repetitions.
+
+MultipleFreq-HS-DSCH-Resources-InformationItem-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-HSDSCH-Resources-Information-AuditRsp CRITICALITY ignore TYPE HS-DSCH-Resources-Information-AuditRsp PRESENCE mandatory }
+}
+
+MultipleFreq-E-DCH-Resources-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF ProtocolIE-Single-Container {{ MultipleFreq-E-DCH-Resources-InformationItem-AuditRsp}}
+ -- Includes the 2nd through the max number of frequencies information repetitions.
+
+MultipleFreq-E-DCH-Resources-InformationItem-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-E-DCH-Resources-Information-AuditRsp CRITICALITY ignore TYPE E-DCH-Resources-Information-AuditRsp 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 ::= {
+ ...
+}
+
+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 }|
+ { ID id-E-DCH-Capability CRITICALITY ignore EXTENSION E-DCH-Capability PRESENCE optional }|
+ { ID id-E-DCH-TTI2ms-Capability CRITICALITY ignore EXTENSION E-DCH-TTI2ms-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-SF-Capability CRITICALITY ignore EXTENSION E-DCH-SF-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-HARQ-Combining-Capability CRITICALITY ignore EXTENSION E-DCH-HARQ-Combining-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCHCapacityConsumptionLaw PRESENCE optional }|
+ { ID id-F-DPCH-Capability CRITICALITY ignore EXTENSION F-DPCH-Capability PRESENCE optional }|
+ { ID id-E-DCH-TDD-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCH-TDD-CapacityConsumptionLaw PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivityDTX-DRX-Capability CRITICALITY ignore EXTENSION ContinuousPacketConnectivityDTX-DRX-Capability PRESENCE optional }|
+ { ID id-Max-UE-DTX-Cycle CRITICALITY ignore EXTENSION Max-UE-DTX-Cycle PRESENCE conditional }|
+ -- The IE shall be present if Continuous Packet Connectivity DTX-DRX Capability IE is present and set to "Continuous Packet Connectivity DTX-DRX Capable".
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Capability CRITICALITY ignore EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Capability PRESENCE optional }|
+ { ID id-MIMO-Capability CRITICALITY ignore EXTENSION MIMO-Capability PRESENCE optional }|
+ { ID id-SixtyfourQAM-DL-Capability CRITICALITY ignore EXTENSION SixtyfourQAM-DL-Capability PRESENCE optional }|
+ { ID id-MBMS-Capability CRITICALITY ignore EXTENSION MBMS-Capability PRESENCE optional }|
+ { ID id-Enhanced-FACH-Capability CRITICALITY ignore EXTENSION Enhanced-FACH-Capability PRESENCE optional }|
+ { ID id-Enhanced-PCH-Capability CRITICALITY ignore EXTENSION Enhanced-PCH-Capability PRESENCE conditional }|
+ -- The IE shall be present if Enhanced FACH Capability IE is set to "Enhanced FACH Capable".
+ { ID id-SixteenQAM-UL-Capability CRITICALITY ignore EXTENSION SixteenQAM-UL-Capability PRESENCE optional }|
+ { ID id-HSDSCH-MACdPDU-SizeCapability CRITICALITY ignore EXTENSION HSDSCH-MACdPDU-SizeCapability PRESENCE optional }|
+ { ID id-MBSFN-Only-Mode-Capability CRITICALITY ignore EXTENSION MBSFN-Only-Mode-Capability PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormatCapability CRITICALITY ignore EXTENSION F-DPCH-SlotFormatCapability PRESENCE optional }|
+ { ID id-E-DCH-MACdPDU-SizeCapability CRITICALITY ignore EXTENSION E-DCH-MACdPDU-SizeCapability PRESENCE optional }|
+ { ID id-Common-EDCH-Capability CRITICALITY ignore EXTENSION Common-EDCH-Capability PRESENCE optional }|
+ { ID id-E-AI-Capability CRITICALITY ignore EXTENSION E-AI-Capability PRESENCE optional }|
+ -- The IE shall be present if Common E-DCH Capability IE is present and set to "Common E-DCH Capable".
+ { ID id-Enhanced-UE-DRX-Capability CRITICALITY ignore EXTENSION Enhanced-UE-DRX-Capability PRESENCE optional }|
+ { ID id-Enhanced-UE-DRX-CapabilityLCR CRITICALITY ignore EXTENSION Enhanced-UE-DRX-Capability PRESENCE optional }|
+ { ID id-E-DPCCH-Power-Boosting-Capability CRITICALITY ignore EXTENSION E-DPCCH-Power-Boosting-Capability PRESENCE optional }|
+ { ID id-SixtyfourQAM-DL-MIMO-Combined-Capability CRITICALITY ignore EXTENSION SixtyfourQAM-DL-MIMO-Combined-Capability PRESENCE optional}|
+ { ID id-Multi-Cell-Capability-Info CRITICALITY ignore EXTENSION Multi-Cell-Capability-Info PRESENCE optional }|
+ { ID id-Semi-PersistentScheduling-CapabilityLCR CRITICALITY ignore EXTENSION Semi-PersistentScheduling-CapabilityLCR PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-CapabilityLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-CapabilityLCR PRESENCE optional }|
+ { ID id-Common-E-DCH-HSDPCCH-Capability CRITICALITY ignore EXTENSION Common-E-DCH-HSDPCCH-Capability PRESENCE optional }|
+ -- The IE shall be present if Common E-DCH Capability IE is present and set to "Common E-DCH Capable".
+ { ID id-MIMO-Power-Offset-For-S-CPICH-Capability CRITICALITY ignore EXTENSION MIMO-PowerOffsetForS-CPICHCapability PRESENCE optional } |
+ { ID id-TxDiversityOnDLControlChannelsByMIMOUECapability CRITICALITY ignore EXTENSION TxDiversityOnDLControlChannelsByMIMOUECapability PRESENCE optional }|
+ { ID id-Single-Stream-MIMO-Capability CRITICALITY ignore EXTENSION Single-Stream-MIMO-Capability PRESENCE optional }|
+ { ID id-Dual-Band-Capability-Info CRITICALITY ignore EXTENSION Dual-Band-Capability-Info PRESENCE optional }|
+ { ID id-CellPortion-CapabilityLCR CRITICALITY ignore EXTENSION CellPortion-CapabilityLCR PRESENCE optional }|
+ { ID id-Cell-Capability-Container CRITICALITY ignore EXTENSION Cell-Capability-Container PRESENCE optional }|
+ { ID id-TS0-CapabilityLCR CRITICALITY ignore EXTENSION TS0-CapabilityLCR PRESENCE optional }|
+ { ID id-PrecodingWeightSetRestriction CRITICALITY ignore EXTENSION PrecodingWeightSetRestriction 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 ::= {
+ { ID id-E-DCH-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCHCapacityConsumptionLaw PRESENCE optional }|
+ { ID id-E-DCH-TDD-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCH-TDD-CapacityConsumptionLaw PRESENCE optional },
+ ...
+}
+
+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}|
+ { ID id-MeasurementRecoveryBehavior CRITICALITY ignore EXTENSION MeasurementRecoveryBehavior PRESENCE optional }|
+ { ID id-RTWP-ReportingIndicator CRITICALITY reject EXTENSION RTWP-ReportingIndicator PRESENCE optional}|
+ { ID id-RTWP-CellPortion-ReportingIndicator CRITICALITY reject EXTENSION RTWP-CellPortion-ReportingIndicator PRESENCE optional}|
+ { ID id-Reference-ReceivedTotalWideBandPowerReporting CRITICALITY ignore EXTENSION Reference-ReceivedTotalWideBandPowerReporting PRESENCE optional}|
+ { ID id-GANSS-Time-ID CRITICALITY ignore EXTENSION GANSS-Time-ID PRESENCE optional},
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rqst ::= CHOICE {
+ cell Cell-CM-Rqst,
+ rACH RACH-CM-Rqst,
+ notUsed-cPCH NULL,
+ ...,
+ extension-CommonMeasurementObjectType-CM-Rqst Extension-CommonMeasurementObjectType-CM-Rqst
+}
+
+Extension-CommonMeasurementObjectType-CM-Rqst ::= ProtocolIE-Single-Container {{ Extension-CommonMeasurementObjectType-CM-RqstIE }}
+
+Extension-CommonMeasurementObjectType-CM-RqstIE NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-choice-CM-Rqst CRITICALITY reject TYPE PowerLocalCellGroup-CM-Rqst PRESENCE mandatory }|
+ { ID id-ERACH-CM-Rqst CRITICALITY reject TYPE ERACH-CM-Rqst PRESENCE mandatory}
+ -- FDD only
+}
+
+ERACH-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { { ERACHItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+ERACHItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ timeSlot TimeSlot OPTIONAL, -- Applicable to 3.84Mcps TDD and 7.68Mcps 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 }|
+ {ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies and the requested common measurementype is the one except for "HS-DSCH Required Power" or "HS-DSCH Provided Bit Rate"
+ {ID id-UPPCHPositionLCR CRITICALITY reject EXTENSION UPPCHPositionLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ {ID id-AdditionalTimeSlotListLCR CRITICALITY ignore EXTENSION AdditionalTimeSlotListLCR PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+PowerLocalCellGroup-CM-Rqst ::= SEQUENCE {
+ powerLocalCellGroupID Local-Cell-ID,
+ iE-Extensions ProtocolExtensionContainer {{ PowerLocalCellGroup-CM-Rqst-ExtIEs }} OPTIONAL,
+ ...
+}
+
+PowerLocalCellGroup-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 }|
+ { ID id-MeasurementRecoverySupportIndicator CRITICALITY ignore EXTENSION MeasurementRecoverySupportIndicator PRESENCE optional }|
+ { ID id-Reference-ReceivedTotalWideBandPowerSupportIndicator CRITICALITY ignore EXTENSION Reference-ReceivedTotalWideBandPowerSupportIndicator PRESENCE optional }|
+ { ID id-Reference-ReceivedTotalWideBandPower CRITICALITY ignore EXTENSION Reference-ReceivedTotalWideBandPower PRESENCE optional },
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rsp ::= CHOICE {
+ cell Cell-CM-Rsp,
+ rACH RACH-CM-Rsp,
+ notUsed-cPCH NULL,
+ ...,
+ extension-CommonMeasurementObjectType-CM-Rsp Extension-CommonMeasurementObjectType-CM-Rsp
+}
+
+Extension-CommonMeasurementObjectType-CM-Rsp ::= ProtocolIE-Single-Container {{ Extension-CommonMeasurementObjectType-CM-RspIE }}
+
+Extension-CommonMeasurementObjectType-CM-RspIE NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-choice-CM-Rsp CRITICALITY ignore TYPE PowerLocalCellGroup-CM-Rsp PRESENCE mandatory }|
+ { ID id-ERACH-CM-Rsp CRITICALITY ignore TYPE ERACH-CM-Rsp PRESENCE mandatory }
+ -- FDD only
+}
+
+ERACH-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { ERACHItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+ERACHItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-AdditionalMeasurementValueList CRITICALITY ignore EXTENSION AdditionalMeasurementValueList PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ {ID id-TimeSlotMeasurementValueListLCR CRITICALITY ignore EXTENSION TimeSlotMeasurementValueListLCR PRESENCE optional },
+-- Applicable to 1.28Mcps TDD, this IE is for the measurement value from the Primary frequency
+ ...
+}
+
+RACH-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { RACHItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RACHItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerLocalCellGroup-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer {{ PowerLocalCellGroup-CM-Rsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+PowerLocalCellGroup-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 ::= {
+ { ID id-MeasurementRecoveryReportingIndicator CRITICALITY ignore EXTENSION MeasurementRecoveryReportingIndicator PRESENCE optional }|
+ { ID id-Reference-ReceivedTotalWideBandPower CRITICALITY ignore EXTENSION Reference-ReceivedTotalWideBandPower PRESENCE optional },
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rprt ::= CHOICE {
+ cell Cell-CM-Rprt,
+ rACH RACH-CM-Rprt,
+ notUsed-cPCH NULL,
+ ...,
+ extension-CommonMeasurementObjectType-CM-Rprt Extension-CommonMeasurementObjectType-CM-Rprt
+}
+
+Extension-CommonMeasurementObjectType-CM-Rprt ::= ProtocolIE-Single-Container {{ Extension-CommonMeasurementObjectType-CM-RprtIE }}
+
+Extension-CommonMeasurementObjectType-CM-RprtIE NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-choice-CM-Rprt CRITICALITY ignore TYPE PowerLocalCellGroup-CM-Rprt PRESENCE mandatory }|
+ { ID id-ERACH-CM-Rprt CRITICALITY ignore TYPE ERACH-CM-Rprt PRESENCE mandatory },
+ ...
+}
+
+ERACH-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ ERACHItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+}
+
+ERACHItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+}
+
+CellItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-C-ID CRITICALITY ignore EXTENSION C-ID PRESENCE optional}|
+ {ID id-AdditionalMeasurementValueList CRITICALITY ignore EXTENSION AdditionalMeasurementValueList PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ {ID id-TimeSlotMeasurementValueListLCR CRITICALITY ignore EXTENSION TimeSlotMeasurementValueListLCR PRESENCE optional },
+-- Applicable to 1.28Mcps TDD, this IE is for the measurement value from the Primary frequency
+ ...
+}
+
+
+RACH-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ RACHItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+}
+
+RACHItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-C-ID CRITICALITY ignore EXTENSION C-ID PRESENCE optional},
+ ...
+}
+
+PowerLocalCellGroup-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ PowerLocalCellGroup-CM-Rprt-ExtIEs}} OPTIONAL,
+ ...
+}
+
+PowerLocalCellGroup-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-CellPortion-InformationList-Cell-SetupRqstFDD CRITICALITY reject EXTENSION CellPortion-InformationList-Cell-SetupRqstFDD PRESENCE optional }|
+ { ID id-MIMO-PilotConfiguration CRITICALITY reject EXTENSION MIMO-PilotConfiguration PRESENCE optional }|
+ { ID id-MIMO-PilotConfigurationExtension CRITICALITY reject EXTENSION MIMO-PilotConfigurationExtension 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 ::= {
+ ...
+}
+
+CellPortion-InformationList-Cell-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF ProtocolIE-Single-Container{{ CellPortion-InformationItemIE-Cell-SetupRqstFDD }}
+
+CellPortion-InformationItemIE-Cell-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CellPortion-InformationItem-Cell-SetupRqstFDD CRITICALITY reject TYPE CellPortion-InformationItem-Cell-SetupRqstFDD PRESENCE mandatory }
+}
+
+CellPortion-InformationItem-Cell-SetupRqstFDD::= SEQUENCE {
+ cellPortionID CellPortionID,
+ associatedSecondaryCPICH CommonPhysicalChannelID,
+ maximumTransmissionPowerforCellPortion MaximumTransmissionPower,
+ iE-Extensions ProtocolExtensionContainer { { CellPortion-InformationItem-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellPortion-InformationItem-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 }| -- For 1.28Mcps TDD, if multiple frequencies exist within the cell indicated by C-ID, this IE indicates the frequency of Primary frequency
+ { ID id-CellParameterID CRITICALITY reject TYPE CellParameterID PRESENCE mandatory }|
+ -- For 1.28 Mcps TDD, if the cell is operating in MBSFN only mode, this IE indicate the Preamble code used in the Speial Time Slot [19]
+ { 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 and 7.68Mcps 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 or 7.68Mcps TDD
+ { ID id-TimeSlotConfigurationList-Cell-SetupRqstTDD CRITICALITY reject TYPE TimeSlotConfigurationList-Cell-SetupRqstTDD PRESENCE optional }, -- Mandatory for 3.84Mcps TDD and 7.68Mcps 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 or 7.68Mcps TDD. If multiple frequencies exist within the cell indicated by C-ID, this IE indicates the Time Slot configuration of Primary frequency.
+ { 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 or 7.68Mcps TDD, For 1.28 Mcps TDD, if the cell is operating in MBSFN only mode, PCCPCH is deployed on the MBSFN Special Time Slot [19].
+ { 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 or 7.68Mcps 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 and 7.68Mcps 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
+ { ID id-PCCPCH-768-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION PCCPCH-768-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 7.68Mcps TDD, Not Applicable to 3.84Mcps TDD or 1.28Mcps TDD
+ { ID id-SCH-768-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION SCH-768-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 7.68Mcps TDD, Not Applicable to 3.84Mcps TDD or 1.28Mcps TDD
+ { ID id-MBSFN-Only-Mode-Indicator-Cell-SetupRqstTDD-LCR CRITICALITY reject EXTENSION MBSFN-Only-Mode-Indicator PRESENCE optional }|
+ { ID id-Cell-Frequency-List-LCR-MulFreq-Cell-SetupRqstTDD CRITICALITY reject EXTENSION Cell-Frequency-List-LCR-MulFreq-Cell-SetupRqstTDD PRESENCE optional }, -- Mandatory for 1.28Mcps TDD when using multiple frequencies
+ ...
+}
+
+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 ::= {
+ { ID id-MBSFN-Cell-ParameterID-Cell-SetupRqstTDD CRITICALITY reject EXTENSION CellParameterID PRESENCE optional },-- Applicable only to for MBSFN only mode
+ ...
+}
+
+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 ::= {
+ { ID id-Time-Slot-Parameter-ID CRITICALITY reject EXTENSION CellParameterID PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+PCCPCH-768-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pCCPCH-Power PCCPCH-Power,
+ sCTD-Indicator SCTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-768-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-768-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SCH-768-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ syncCaseIndicator SyncCaseIndicator-Cell-SetupRqstTDD-PSCH,
+ sCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { SCH-768-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SCH-768-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-Frequency-List-LCR-MulFreq-Cell-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF Cell-Frequency-Item-LCR-MulFreq-Cell-SetupRqstTDD
+
+Cell-Frequency-Item-LCR-MulFreq-Cell-SetupRqstTDD ::= SEQUENCE {
+ uARFCN UARFCN,
+ -- This IE indicates the frequency of Secondary frequency
+ timeSlotConfigurationList-LCR-Cell-SetupRqstTDD TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD,
+ -- This IE indicates the Time Slot configuration of Secondary frequency
+ iE-Extensions ProtocolExtensionContainer { { Cell-Frequency-Item-LCR-MulFreq-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-Frequency-Item-LCR-MulFreq-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-CellPortion-InformationList-Cell-ReconfRqstFDD CRITICALITY reject EXTENSION CellPortion-InformationList-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-MIMO-PilotConfiguration CRITICALITY reject EXTENSION MIMO-PilotConfiguration PRESENCE optional }|
+ { ID id-MIMO-PilotConfigurationExtension CRITICALITY reject EXTENSION MIMO-PilotConfigurationExtension PRESENCE optional }|
+ { ID id-DormantModeIndicator CRITICALITY reject EXTENSION DormantModeIndicator 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 ::= {
+ ...
+}
+
+CellPortion-InformationList-Cell-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF ProtocolIE-Single-Container{{ CellPortion-InformationItemIE-Cell-ReconfRqstFDD }}
+
+CellPortion-InformationItemIE-Cell-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CellPortion-InformationItem-Cell-ReconfRqstFDD CRITICALITY reject TYPE CellPortion-InformationItem-Cell-ReconfRqstFDD PRESENCE mandatory}
+}
+
+CellPortion-InformationItem-Cell-ReconfRqstFDD::= SEQUENCE {
+ cellPortionID CellPortionID,
+ maximumTransmissionPowerforCellPortion MaximumTransmissionPower,
+ iE-Extensions ProtocolExtensionContainer { { CellPortion-InformationItem-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellPortion-InformationItem-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 }|
+ -- Not applicable to 7.68Mcps TDD only. For 1.28 Mcps TDD, if the cell is operating in MBSFN only mode, PCCPCH is deployed on the MBSFN Special Time Slot [19].
+ { 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 and 7.68Mcps 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 }| -- Applicable to 1.28Mcps TDD only, If multiple frequencies exist within the cell indicated by C-ID, this IE indicates the Time Slot reconfiguration of Primary frequency
+ { ID id-DwPCH-LCR-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION DwPCH-LCR-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-IPDLParameter-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD and 7.68Mcps 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
+ { ID id-SCH-768-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION SCH-768-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Applicable to 7.68Mcps TDD only
+ { ID id-PCCPCH-768-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION PCCPCH-768-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Applicable to 7.68Mcps TDD only
+ { ID id-UARFCN-Adjustment CRITICALITY reject EXTENSION UARFCN-Adjustment PRESENCE optional }| -- Applicable to 1.28Mcps TDD when using multiple frequencies
+ { ID id-DormantModeIndicator CRITICALITY reject EXTENSION DormantModeIndicator PRESENCE optional },
+...
+}
+
+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 ::= {
+ { ID id-MBSFN-Cell-ParameterID-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION CellParameterID PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+SCH-768-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ sCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { PSCH-768-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PSCH-768-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCCPCH-768-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID768 CommonPhysicalChannelID768,
+ pCCPCH-Power PCCPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-768-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-768-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UARFCN-Adjustment::= CHOICE {
+ cell-Frequency-Add-LCR-MulFreq-Cell-ReconfRqstTDD Cell-Frequency-Add-LCR-MulFreq-Cell-ReconfRqstTDD,
+ cell-Frequency-ModifyList-LCR-MulFreq-Cell-ReconfRqstTDD Cell-Frequency-ModifyList-LCR-MulFreq-Cell-ReconfRqstTDD,
+ cell-Frequency-Delete-LCR-MulFreq-Cell-ReconfRqstTDD Cell-Frequency-Delete-LCR-MulFreq-Cell-ReconfRqstTDD,
+ ...
+}
+
+Cell-Frequency-Add-LCR-MulFreq-Cell-ReconfRqstTDD ::= SEQUENCE {
+ uARFCN UARFCN,
+ -- This IE indicates the frequency of Secondary frequency to add
+ timeSlotConfigurationList-LCR-Cell-ReconfRqstTDD TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD,
+ -- This IE indicates the Time Slot configuration of Secondary frequency to add
+ iE-Extensions ProtocolExtensionContainer { { Cell-Frequency-Add-LCR-MulFreq-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-Frequency-Add-LCR-MulFreq-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-Frequency-ModifyList-LCR-MulFreq-Cell-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF Cell-Frequency-ModifyItem-LCR-MulFreq-Cell-ReconfRqstTDD
+
+Cell-Frequency-ModifyItem-LCR-MulFreq-Cell-ReconfRqstTDD ::= SEQUENCE {
+ uARFCN UARFCN,
+ -- This IE indicates the frequency of Secondary frequency to modify
+ timeSlotConfigurationList-LCR-Cell-ReconfRqstTDD TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD,
+ -- This IE indicates the Time Slot reconfiguration of Secondary frequency
+ iE-Extensions ProtocolExtensionContainer { { Cell-Frequency-ModifyItem-LCR-MulFreq-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-Frequency-ModifyItem-LCR-MulFreq-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-Frequency-Delete-LCR-MulFreq-Cell-ReconfRqstTDD ::= SEQUENCE {
+ uARFCN UARFCN,
+ -- This IE indicates the frequency of Secondary Frequency to delete
+ iE-Extensions ProtocolExtensionContainer { { Cell-Frequency-Delete-LCR-MulFreq-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-Frequency-Delete-LCR-MulFreq-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 }|
+ { ID id-E-DCH-Capability CRITICALITY ignore EXTENSION E-DCH-Capability PRESENCE optional }|
+ { ID id-E-DCH-TTI2ms-Capability CRITICALITY ignore EXTENSION E-DCH-TTI2ms-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-SF-Capability CRITICALITY ignore EXTENSION E-DCH-SF-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-HARQ-Combining-Capability CRITICALITY ignore EXTENSION E-DCH-HARQ-Combining-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCHCapacityConsumptionLaw PRESENCE optional }|
+ { ID id-F-DPCH-Capability CRITICALITY ignore EXTENSION F-DPCH-Capability PRESENCE optional }|
+ { ID id-E-DCH-TDD-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCH-TDD-CapacityConsumptionLaw PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivityDTX-DRX-Capability CRITICALITY ignore EXTENSION ContinuousPacketConnectivityDTX-DRX-Capability PRESENCE optional }|
+ { ID id-Max-UE-DTX-Cycle CRITICALITY ignore EXTENSION Max-UE-DTX-Cycle PRESENCE conditional }|
+ -- The IE shall be present if Continuous Packet Connectivity DTX-DRX Capability IE is present and set to "Continuous Packet Connectivity DTX-DRX Capable".
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Capability CRITICALITY ignore EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Capability PRESENCE optional }|
+ { ID id-MIMO-Capability CRITICALITY ignore EXTENSION MIMO-Capability PRESENCE optional }|
+ { ID id-SixtyfourQAM-DL-Capability CRITICALITY ignore EXTENSION SixtyfourQAM-DL-Capability PRESENCE optional }|
+ { ID id-MBMS-Capability CRITICALITY ignore EXTENSION MBMS-Capability PRESENCE optional }|
+ { ID id-Enhanced-FACH-Capability CRITICALITY ignore EXTENSION Enhanced-FACH-Capability PRESENCE optional }|
+ { ID id-Enhanced-PCH-Capability CRITICALITY ignore EXTENSION Enhanced-PCH-Capability PRESENCE conditional }|
+ -- The IE shall be present if Enhanced FACH Capability IE is set to "Enhanced FACH Capable".
+ { ID id-SixteenQAM-UL-Capability CRITICALITY ignore EXTENSION SixteenQAM-UL-Capability PRESENCE optional }|
+ { ID id-HSDSCH-MACdPDU-SizeCapability CRITICALITY ignore EXTENSION HSDSCH-MACdPDU-SizeCapability PRESENCE optional }|
+ { ID id-MBSFN-Only-Mode-Capability CRITICALITY ignore EXTENSION MBSFN-Only-Mode-Capability PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormatCapability CRITICALITY ignore EXTENSION F-DPCH-SlotFormatCapability PRESENCE optional }|
+ { ID id-E-DCH-MACdPDU-SizeCapability CRITICALITY ignore EXTENSION E-DCH-MACdPDU-SizeCapability PRESENCE optional }|
+ { ID id-Common-EDCH-Capability CRITICALITY ignore EXTENSION Common-EDCH-Capability PRESENCE optional }|
+ { ID id-E-AI-Capability CRITICALITY ignore EXTENSION E-AI-Capability PRESENCE optional }|
+ -- The IE shall be present if Common E-DCH Capability IE is present and set to "Common E-DCH Capable".
+ { ID id-Enhanced-UE-DRX-Capability CRITICALITY ignore EXTENSION Enhanced-UE-DRX-Capability PRESENCE optional }|
+ { ID id-Enhanced-UE-DRX-CapabilityLCR CRITICALITY ignore EXTENSION Enhanced-UE-DRX-Capability PRESENCE optional }|
+ { ID id-E-DPCCH-Power-Boosting-Capability CRITICALITY ignore EXTENSION E-DPCCH-Power-Boosting-Capability PRESENCE optional }|
+ { ID id-SixtyfourQAM-DL-MIMO-Combined-Capability CRITICALITY ignore EXTENSION SixtyfourQAM-DL-MIMO-Combined-Capability PRESENCE optional}|
+ { ID id-Multi-Cell-Capability-Info CRITICALITY ignore EXTENSION Multi-Cell-Capability-Info PRESENCE optional }|
+ { ID id-Semi-PersistentScheduling-CapabilityLCR CRITICALITY ignore EXTENSION Semi-PersistentScheduling-CapabilityLCR PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-CapabilityLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-CapabilityLCR PRESENCE optional }|
+ { ID id-Common-E-DCH-HSDPCCH-Capability CRITICALITY ignore EXTENSION Common-E-DCH-HSDPCCH-Capability PRESENCE optional }|
+ -- The IE shall be present if Common E-DCH Capability IE is present and set to "Common E-DCH Capable".
+ { ID id-MIMO-Power-Offset-For-S-CPICH-Capability CRITICALITY ignore EXTENSION MIMO-PowerOffsetForS-CPICHCapability PRESENCE optional } |
+ { ID id-TxDiversityOnDLControlChannelsByMIMOUECapability CRITICALITY ignore EXTENSION TxDiversityOnDLControlChannelsByMIMOUECapability PRESENCE optional }|
+ { ID id-Single-Stream-MIMO-Capability CRITICALITY ignore EXTENSION Single-Stream-MIMO-Capability PRESENCE optional }|
+ { ID id-Dual-Band-Capability-Info CRITICALITY ignore EXTENSION Dual-Band-Capability-Info PRESENCE optional }|
+ { ID id-CellPortion-CapabilityLCR CRITICALITY ignore EXTENSION CellPortion-CapabilityLCR PRESENCE optional }|
+ { ID id-Cell-Capability-Container CRITICALITY ignore EXTENSION Cell-Capability-Container PRESENCE optional }|
+ { ID id-TS0-CapabilityLCR CRITICALITY ignore EXTENSION TS0-CapabilityLCR PRESENCE optional }|
+ { ID id-PrecodingWeightSetRestriction CRITICALITY ignore EXTENSION PrecodingWeightSetRestriction 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 ::= {
+ { ID id-E-DCH-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCHCapacityConsumptionLaw PRESENCE optional }|
+ { ID id-E-DCH-TDD-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCH-TDD-CapacityConsumptionLaw PRESENCE optional },
+ ...
+}
+
+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 }|
+ { ID id-E-DCH-Capability CRITICALITY ignore EXTENSION E-DCH-Capability PRESENCE optional }|
+ { ID id-E-DCH-TTI2ms-Capability CRITICALITY ignore EXTENSION E-DCH-TTI2ms-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-SF-Capability CRITICALITY ignore EXTENSION E-DCH-SF-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-HARQ-Combining-Capability CRITICALITY ignore EXTENSION E-DCH-HARQ-Combining-Capability PRESENCE conditional }|
+ -- The IE shall be present if E-DCH Capability IE is set to "E-DCH Capable".
+ { ID id-E-DCH-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCHCapacityConsumptionLaw PRESENCE optional }|
+ { ID id-F-DPCH-Capability CRITICALITY ignore EXTENSION F-DPCH-Capability PRESENCE optional }|
+ { ID id-E-DCH-TDD-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCH-TDD-CapacityConsumptionLaw PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivityDTX-DRX-Capability CRITICALITY ignore EXTENSION ContinuousPacketConnectivityDTX-DRX-Capability PRESENCE optional }|
+ { ID id-Max-UE-DTX-Cycle CRITICALITY ignore EXTENSION Max-UE-DTX-Cycle PRESENCE conditional }|
+ -- The IE shall be present if Continuous Packet Connectivity DTX-DRX Capability IE is present and set to "Continuous Packet Connectivity DTX-DRX Capable".
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Capability CRITICALITY ignore EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Capability PRESENCE optional }|
+ { ID id-MIMO-Capability CRITICALITY ignore EXTENSION MIMO-Capability PRESENCE optional }|
+ { ID id-SixtyfourQAM-DL-Capability CRITICALITY ignore EXTENSION SixtyfourQAM-DL-Capability PRESENCE optional }|
+ { ID id-MBMS-Capability CRITICALITY ignore EXTENSION MBMS-Capability PRESENCE optional }|
+ { ID id-Enhanced-FACH-Capability CRITICALITY ignore EXTENSION Enhanced-FACH-Capability PRESENCE optional }|
+ { ID id-Enhanced-PCH-Capability CRITICALITY ignore EXTENSION Enhanced-PCH-Capability PRESENCE conditional }|
+ -- The IE shall be present if Enhanced FACH Capability IE is set to "Enhanced FACH Capable".
+ { ID id-SixteenQAM-UL-Capability CRITICALITY ignore EXTENSION SixteenQAM-UL-Capability PRESENCE optional }|
+ { ID id-HSDSCH-MACdPDU-SizeCapability CRITICALITY ignore EXTENSION HSDSCH-MACdPDU-SizeCapability PRESENCE optional }|
+ { ID id-MBSFN-Only-Mode-Capability CRITICALITY ignore EXTENSION MBSFN-Only-Mode-Capability PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormatCapability CRITICALITY ignore EXTENSION F-DPCH-SlotFormatCapability PRESENCE optional }|
+ { ID id-E-DCH-MACdPDU-SizeCapability CRITICALITY ignore EXTENSION E-DCH-MACdPDU-SizeCapability PRESENCE optional }|
+ { ID id-Common-EDCH-Capability CRITICALITY ignore EXTENSION Common-EDCH-Capability PRESENCE optional }|
+ { ID id-E-AI-Capability CRITICALITY ignore EXTENSION E-AI-Capability PRESENCE optional }|
+ -- The IE shall be present if Common E-DCH Capability IE is present and set to "Common E-DCH Capable".
+ { ID id-Enhanced-UE-DRX-Capability CRITICALITY ignore EXTENSION Enhanced-UE-DRX-Capability PRESENCE optional }|
+ { ID id-Enhanced-UE-DRX-CapabilityLCR CRITICALITY ignore EXTENSION Enhanced-UE-DRX-Capability PRESENCE optional }|
+ { ID id-E-DPCCH-Power-Boosting-Capability CRITICALITY ignore EXTENSION E-DPCCH-Power-Boosting-Capability PRESENCE optional }|
+ { ID id-SixtyfourQAM-DL-MIMO-Combined-Capability CRITICALITY ignore EXTENSION SixtyfourQAM-DL-MIMO-Combined-Capability PRESENCE optional}|
+ { ID id-Multi-Cell-Capability-Info CRITICALITY ignore EXTENSION Multi-Cell-Capability-Info PRESENCE optional }|
+ { ID id-Semi-PersistentScheduling-CapabilityLCR CRITICALITY ignore EXTENSION Semi-PersistentScheduling-CapabilityLCR PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-CapabilityLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-CapabilityLCR PRESENCE optional }|
+ { ID id-Common-E-DCH-HSDPCCH-Capability CRITICALITY ignore EXTENSION Common-E-DCH-HSDPCCH-Capability PRESENCE optional }|
+ -- The IE shall be present if Common E-DCH Capability IE is present and set to "Common E-DCH Capable".
+ { ID id-MIMO-Power-Offset-For-S-CPICH-Capability CRITICALITY ignore EXTENSION MIMO-PowerOffsetForS-CPICHCapability PRESENCE optional } |
+ { ID id-TxDiversityOnDLControlChannelsByMIMOUECapability CRITICALITY ignore EXTENSION TxDiversityOnDLControlChannelsByMIMOUECapability PRESENCE optional }|
+ { ID id-Single-Stream-MIMO-Capability CRITICALITY ignore EXTENSION Single-Stream-MIMO-Capability PRESENCE optional }|
+ { ID id-Dual-Band-Capability-Info CRITICALITY ignore EXTENSION Dual-Band-Capability-Info PRESENCE optional }|
+ { ID id-CellPortion-CapabilityLCR CRITICALITY ignore EXTENSION CellPortion-CapabilityLCR PRESENCE optional }|
+ { ID id-Cell-Capability-Container CRITICALITY ignore EXTENSION Cell-Capability-Container PRESENCE optional }|
+ { ID id-TS0-CapabilityLCR CRITICALITY ignore EXTENSION TS0-CapabilityLCR PRESENCE optional }|
+ { ID id-PrecodingWeightSetRestriction CRITICALITY ignore EXTENSION PrecodingWeightSetRestriction 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 ::= {
+ { ID id-E-DCH-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCHCapacityConsumptionLaw PRESENCE optional }|
+ { ID id-E-DCH-TDD-CapacityConsumptionLaw CRITICALITY ignore EXTENSION E-DCH-TDD-CapacityConsumptionLaw PRESENCE optional },
+ ...
+}
+
+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
+ notUsed-1-pCPCH-InformationList NULL OPTIONAL,
+ notUsed-2-cPCH-InformationList NULL OPTIONAL,
+ notUsed-3-aP-AICH-InformationList NULL OPTIONAL,
+ notUsed-4-cDCA-ICH-InformationList NULL OPTIONAL,
+ 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 }| -- For 1.28Mcps TDD, this HS-DSCH Resource Information is for the first Frequency repetition, HS-DSCH Resource Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-HS-DSCH-Resources-InformationList-ResourceStatusInd.
+ { ID id-MICH-Information-ResourceStatusInd CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information PRESENCE optional }|
+ { ID id-S-CCPCH-InformationListExt-ResourceStatusInd CRITICALITY ignore EXTENSION S-CCPCH-InformationListExt-ResourceStatusInd PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only, used when there are more than maxSCCPCHCell SCCPCHs in the message.
+ { ID id-S-CCPCH-LCR-InformationListExt-ResourceStatusInd CRITICALITY ignore EXTENSION S-CCPCH-LCR-InformationListExt-ResourceStatusInd PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only, used when there are more than maxSCCPCHCell SCCPCHs in the message.
+ { ID id-E-DCH-Resources-Information-ResourceStatusInd CRITICALITY ignore EXTENSION E-DCH-Resources-Information-ResourceStatusInd PRESENCE optional }|
+ -- For 1.28Mcps TDD, this E-DCH Resource Information is for the first Frequency repetition, E-DCH Resource Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-E-DCH-Resources-InformationList-ResourceStatusInd.
+ { ID id-PLCCH-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION PLCCH-InformationList-ResourceStatusInd
+ PRESENCE optional }|
+ { ID id-P-CCPCH-768-Information-ResourceStatusInd CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information768 PRESENCE optional }|
+ { ID id-S-CCPCH-768-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION S-CCPCH-768-InformationList-ResourceStatusInd PRESENCE optional }|
+ { ID id-PICH-768-Information-ResourceStatusInd CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information768 PRESENCE optional }|
+ { ID id-PRACH-768-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION PRACH-768-InformationList-ResourceStatusInd PRESENCE optional }|
+ { ID id-SCH-768-Information-ResourceStatusInd CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information768 PRESENCE optional }|
+ { ID id-MICH-768-Information-ResourceStatusInd CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information768 PRESENCE optional }|
+ { ID id-E-RUCCH-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION E-RUCCH-InformationList-ResourceStatusInd PRESENCE optional }|
+ { ID id-E-RUCCH-768-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION E-RUCCH-768-InformationList-ResourceStatusInd PRESENCE optional }|
+ { ID id-Cell-Frequency-List-Information-LCR-MulFreq-ResourceStatusInd CRITICALITY ignore EXTENSION Cell-Frequency-List-Information-LCR-MulFreq-ResourceStatusInd PRESENCE optional }| -- Applicable to 1.28Mcps TDD when using multiple frequencies
+ { ID id-UPPCH-LCR-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION UPPCH-LCR-InformationList-ResourceStatusInd PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-multipleFreq-HS-DSCH-Resources-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION MultipleFreq-HS-DSCH-Resources-InformationList-ResourceStatusInd PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies, This HS-DSCH Resource Information is for the 2nd and beyond frequencies.
+ { ID id-MultipleFreq-E-DCH-Resources-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION MultipleFreq-E-DCH-Resources-InformationList-ResourceStatusInd PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies. This E-DCH Resource Information is for the 2nd and beyond frequencies.
+ ...
+}
+
+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 }
+}
+
+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 ::= {
+ {ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional},
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies.
+ ...
+}
+
+S-CCPCH-InformationListExt-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCCPCHCellinExt)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-ResourceStatusInd }}
+
+S-CCPCH-LCR-InformationListExt-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCCPCHCellinExtLCR)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-ResourceStatusInd }}
+
+E-DCH-Resources-Information-ResourceStatusInd ::= SEQUENCE {
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ E-DCH-Resources-Information-ResourceStatusInd-ExtIEs }} OPTIONAL,
+ ...
+}
+
+E-DCH-Resources-Information-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional},
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies.
+ ...
+}
+
+PLCCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPLCCHCell)) OF ProtocolIE-Single-Container {{ PLCCH-InformationItemIE-ResourceStatusInd }}
+
+PLCCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PLCCH-Information-ResourceStatusInd CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CCPCH-768-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCCPCHCell768)) OF ProtocolIE-Single-Container {{ S-CCPCH-768-InformationItemIE-ResourceStatusInd }}
+
+S-CCPCH-768-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CCPCH-768-Information-ResourceStatusInd CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information768 PRESENCE mandatory }
+}
+
+PRACH-768-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ PRACH-768-InformationItemIE-ResourceStatusInd }}
+
+PRACH-768-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-768-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information768 PRESENCE mandatory }
+}
+
+E-RUCCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxE-RUCCHCell)) OF ProtocolIE-Single-Container {{ E-RUCCH-InformationItemIE-ResourceStatusInd }}
+
+E-RUCCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-E-RUCCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+E-RUCCH-768-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxE-RUCCHCell)) OF ProtocolIE-Single-Container {{ E-RUCCH-768-InformationItemIE-ResourceStatusInd }}
+
+E-RUCCH-768-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-E-RUCCH-768-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information768 PRESENCE mandatory }
+}
+
+Cell-Frequency-List-Information-LCR-MulFreq-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFrequencyinCell)) OF ProtocolIE-Single-Container {{ Cell-Frequency-List-InformationIE-LCR-MulFreq-ResourceStatusInd }}
+
+Cell-Frequency-List-InformationIE-LCR-MulFreq-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd CRITICALITY ignore TYPE Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd PRESENCE mandatory }
+}
+
+Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd ::= SEQUENCE {
+ uARFCN UARFCN,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ cause Cause OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd-ExtIEs }} OPTIONAL,
+ ...
+}
+
+Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UPPCH-LCR-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFrequencyinCell)) OF ProtocolIE-Single-Container {{ UPPCH-LCR-InformationIE-ResourceStatusInd }}
+
+UPPCH-LCR-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-UPPCH-LCR-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE UPPCH-LCR-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+UPPCH-LCR-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ uARFCN UARFCN OPTIONAL,
+ uPPCHPositionLCR UPPCHPositionLCR,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ UPPCH-LCR-InformationItem-ResourceStatusInd-ExtIEs }} OPTIONAL,
+ ...
+}
+
+UPPCH-LCR-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MultipleFreq-HS-DSCH-Resources-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF ProtocolIE-Single-Container{{ MultipleFreq-HS-DSCH-Resources-InformationItem-ResourceStatusInd }}
+--Includes the 2nd through the max number of frequencies information repetitions.
+
+MultipleFreq-HS-DSCH-Resources-InformationItem-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-HSDSCH-Resources-Information-ResourceStatusInd CRITICALITY ignore TYPE HS-DSCH-Resources-Information-ResourceStatusInd PRESENCE mandatory }
+}
+
+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 ::= {
+ ...
+}
+
+MultipleFreq-E-DCH-Resources-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF ProtocolIE-Single-Container{{ MultipleFreq-E-DCH-Resources-InformationItem-ResourceStatusInd }}
+ --Includes the 2nd through the max number of frequencies information repetitions.
+
+MultipleFreq-E-DCH-Resources-InformationItem-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-E-DCH-Resources-Information-ResourceStatusInd CRITICALITY ignore TYPE E-DCH-Resources-Information-ResourceStatusInd PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- 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 optional }|
+ { ID id-DCH-FDD-Information CRITICALITY reject TYPE DCH-FDD-Information PRESENCE mandatory }|
+ { 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-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
+ { ID id-E-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject EXTENSION E-DPCH-Information-RL-SetupRqstFDD PRESENCE optional }|
+ { ID id-E-DCH-FDD-Information CRITICALITY reject EXTENSION E-DCH-FDD-Information PRESENCE conditional }|
+ -- The IE shall be present if E-DPCH Information IE is present
+ { ID id-Serving-E-DCH-RL-ID CRITICALITY reject EXTENSION Serving-E-DCH-RL-ID PRESENCE optional }|
+ { ID id-F-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject EXTENSION F-DPCH-Information-RL-SetupRqstFDD PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment-Allowed CRITICALITY ignore EXTENSION Initial-DL-DPCH-TimingAdjustment-Allowed PRESENCE optional }|
+ { ID id-DCH-Indicator-For-E-DCH-HSDPA-Operation CRITICALITY reject EXTENSION DCH-Indicator-For-E-DCH-HSDPA-Operation PRESENCE optional }|
+ { ID id-Serving-Cell-Change-CFN CRITICALITY reject EXTENSION CFN PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivityDTX-DRX-Information CRITICALITY reject EXTENSION ContinuousPacketConnectivityDTX-DRX-Information PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Information CRITICALITY reject EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Information PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-RL-Setup CRITICALITY reject EXTENSION Additional-HS-Cell-Information-RL-Setup-List PRESENCE optional }|
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Setup-Req CRITICALITY reject EXTENSION Additional-EDCH-Setup-Info PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Setup-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Setup-ItemIEs
+
+Additional-HS-Cell-Information-RL-Setup-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ c-ID C-ID,
+ hS-DSCH-FDD-Secondary-Serving-Information HS-DSCH-FDD-Secondary-Serving-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Setup-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Setup-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ not-Used-sSDT-CellID-Length NULL OPTIONAL,
+ not-Used-s-FieldLength NULL 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 }|
+ { ID id-UL-DPDCH-Indicator-For-E-DCH-Operation CRITICALITY reject EXTENSION UL-DPDCH-Indicator-For-E-DCH-Operation 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,
+ not-Used-pDSCH-RL-ID NULL OPTIONAL,
+ not-Used-pDSCH-CodeMapping NULL OPTIONAL,
+ 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 ::= {
+ ...
+}
+
+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,
+ not-Used-sSDT-Cell-Identity NULL 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-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation 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 CRITICALITY ignore EXTENSION CommonPhysicalChannelID PRESENCE optional }|
+ { ID id-E-DCH-RL-Indication CRITICALITY reject EXTENSION E-DCH-RL-Indication PRESENCE optional }|
+ { ID id-RL-Specific-E-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-E-DCH-Info PRESENCE optional }|
+ { ID id-SynchronisationIndicator CRITICALITY ignore EXTENSION SynchronisationIndicator PRESENCE optional }|
+ { ID id-ExtendedPropagationDelay CRITICALITY ignore EXTENSION ExtendedPropagationDelay PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY reject EXTENSION F-DPCH-SlotFormat PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationSetup CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationSetup PRESENCE optional}|
+ { ID id-E-RNTI CRITICALITY ignore EXTENSION E-RNTI PRESENCE optional},
+ ...
+}
+E-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs,
+ ul-PunctureLimit PunctureLimit,
+ e-TFCS-Information E-TFCS-Information,
+ e-TTI E-TTI,
+ e-DPCCH-PO E-DPCCH-PO,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH,
+ hSDSCH-Configured-Indicator HSDSCH-Configured-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { E-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DPCH-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-RNTI CRITICALITY reject EXTENSION E-RNTI PRESENCE optional }|
+ { ID id-MinimumReducedE-DPDCH-GainFactor CRITICALITY ignore EXTENSION MinimumReducedE-DPDCH-GainFactor PRESENCE optional },
+ ...
+}
+
+F-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ powerOffsetInformation PowerOffsetInformation-F-DPCH-RL-SetupRqstFDD,
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { F-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F-DPCH-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-F-DPCH-RL-SetupRqstFDD ::= SEQUENCE {
+ pO2-ForTPC-Bits PowerOffset,
+ --This IE shall be ignored by Node B
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-F-DPCH-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-F-DPCH-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+ { ID id-E-DCH-Information CRITICALITY reject EXTENSION E-DCH-Information PRESENCE optional }|
+ { ID id-E-DCH-Serving-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-768-Information CRITICALITY reject EXTENSION E-DCH-768-Information PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information CRITICALITY reject EXTENSION E-DCH-LCR-Information PRESENCE optional }|
+ { ID id-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-ContinuousPacketConnectivity-DRX-InformationLCR CRITICALITY reject EXTENSION ContinuousPacketConnectivity-DRX-InformationLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-LCR CRITICALITY reject EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-LCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-LCR CRITICALITY reject EXTENSION E-DCH-Semi-PersistentScheduling-Information-LCR PRESENCE optional }|
+ { ID id-IdleIntervalInformation CRITICALITY ignore EXTENSION IdleIntervalInformation PRESENCE optional }|
+ { ID id-UE-Selected-MBMS-Service-Information CRITICALITY ignore EXTENSION UE-Selected-MBMS-Service-Information PRESENCE optional }|
+ { ID id-HSSCCH-TPC-StepSize CRITICALITY ignore EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional }|
+ { ID id-DCH-MeasurementOccasion-Information CRITICALITY reject EXTENSION DCH-MeasurementOccasion-Information 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 or 7.68Mcps 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 or 7.68Mcps TDD.
+ { ID id-UL-DPCH-768-Information-RL-SetupRqstTDD CRITICALITY notify EXTENSION UL-DPCH-768-Information-RL-SetupRqstTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+UL-DPCH-768-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot768-Information UL-Timeslot768-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-768-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-768-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 }|
+ { ID id-DL-DPCH-768-Information-RL-SetupRqstTDD CRITICALITY notify EXTENSION DL-DPCH-768-Information-RL-SetupRqstTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+DL-DPCH-768-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot768-Information DL-Timeslot768-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-768-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-768-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 and 7.68Mcps 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 reject EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD or 7.68Mcps TDD
+ { ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies
+ ...
+}
+
+-- **************************************************************
+--
+-- 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-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 }|
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response CRITICALITY ignore EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Information-Response PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-Response-List PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-List PRESENCE optional },
+ ...
+}
+Additional-HS-Cell-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-Response-ItemIEs
+
+Additional-HS-Cell-Information-Response-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ hS-DSCH-FDD-Secondary-Serving-Information-Response HS-DSCH-FDD-Secondary-Serving-Information-Response,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-Response-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ not-Used-dSCH-InformationResponseList NULL 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 }|
+ { ID id-E-DCH-RL-Set-ID CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-E-DCH-FDD-DL-Control-Channel-Information CRITICALITY ignore EXTENSION E-DCH-FDD-DL-Control-Channel-Information PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment CRITICALITY ignore EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo 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 ::= {
+ { ID id-E-DCH-FDD-Information-Response CRITICALITY ignore EXTENSION E-DCH-FDD-Information-Response PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 and 7.68Mcps 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 or 7.68Mcps TDD
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-Information-Response CRITICALITY ignore EXTENSION E-DCH-Information-Response PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION E-DCH-Semi-PersistentScheduling-Information-ResponseLCR 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 }|
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response CRITICALITY ignore EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Information-Response PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-Response-List PRESENCE optional}|
+ { ID id-Additional-EDCH-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-List 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,
+ not-Used-dSCH-InformationResponseList NULL OPTIONAL,
+ not-Used-tFCI2-BearerInformationResponse NULL OPTIONAL,
+ 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 }|
+ { ID id-E-DCH-RL-Set-ID CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-E-DCH-FDD-DL-Control-Channel-Information CRITICALITY ignore EXTENSION E-DCH-FDD-DL-Control-Channel-Information PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment CRITICALITY ignore EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo 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 ::= {
+ { ID id-E-DCH-FDD-Information-Response CRITICALITY ignore EXTENSION E-DCH-FDD-Information-Response PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 ::= {
+ { ID id-Initial-DL-DPCH-TimingAdjustment-Allowed CRITICALITY ignore EXTENSION Initial-DL-DPCH-TimingAdjustment-Allowed PRESENCE optional }|
+ { ID id-Serving-E-DCH-RL-ID CRITICALITY reject EXTENSION Serving-E-DCH-RL-ID PRESENCE optional }|
+ { ID id-Serving-Cell-Change-CFN CRITICALITY reject EXTENSION CFN PRESENCE optional }|
+ { ID id-HS-DSCH-Serving-Cell-Change-Info CRITICALITY reject EXTENSION HS-DSCH-Serving-Cell-Change-Info PRESENCE optional }|
+ { ID id-E-DPCH-Information-RL-AdditionReqFDD CRITICALITY reject EXTENSION E-DPCH-Information-RL-AdditionReqFDD PRESENCE optional }|
+ { ID id-E-DCH-FDD-Information CRITICALITY reject EXTENSION E-DCH-FDD-Information PRESENCE conditional }|
+ -- This IE shall be present if E-DPCH Information is present
+ { ID id-Additional-HS-Cell-Information-RL-Addition CRITICALITY reject EXTENSION Additional-HS-Cell-Information-RL-Addition-List PRESENCE optional }|
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Add-Req CRITICALITY reject EXTENSION Additional-EDCH-Cell-Information-RL-Add-Req PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Addition-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Addition-ItemIEs
+
+Additional-EDCH-Cell-Information-RL-Add-Req ::=SEQUENCE{
+ setup-Or-Addition-Of-EDCH-On-secondary-UL-Frequency Setup-Or-Addition-Of-EDCH-On-secondary-UL-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-RL-Add-Req-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Add-Req-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Setup-Or-Addition-Of-EDCH-On-secondary-UL-Frequency::= CHOICE {
+ setup Additional-EDCH-Setup-Info,
+ addition Additional-EDCH-Cell-Information-To-Add-List,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Addition-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ c-ID C-ID,
+ hS-DSCH-FDD-Secondary-Serving-Information HS-DSCH-FDD-Secondary-Serving-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Addition-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Addition-ItemIEs-ExtIEs 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,
+ not-Used-sSDT-CellIdentity NULL 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-E-DCH-RL-Indication CRITICALITY reject EXTENSION E-DCH-RL-Indication PRESENCE optional }|
+ { ID id-RL-Specific-E-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-E-DCH-Info PRESENCE optional }|
+ { ID id-SynchronisationIndicator CRITICALITY ignore EXTENSION SynchronisationIndicator PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY reject EXTENSION F-DPCH-SlotFormat PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationSetup CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationSetup PRESENCE optional },
+ ...
+}
+
+E-DPCH-Information-RL-AdditionReqFDD ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs,
+ ul-PunctureLimit PunctureLimit,
+ e-TFCS-Information E-TFCS-Information,
+ e-TTI E-TTI,
+ e-DPCCH-PO E-DPCCH-PO,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH,
+ iE-Extensions ProtocolExtensionContainer { { E-DPCH-Information-RL-AdditionReqFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DPCH-Information-RL-AdditionReqFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-Configured-Indicator CRITICALITY reject EXTENSION HSDSCH-Configured-Indicator PRESENCE mandatory }|
+ -- This shall be present for EDPCH configuration with HSDCH
+ { ID id-MinimumReducedE-DPDCH-GainFactor CRITICALITY ignore EXTENSION MinimumReducedE-DPDCH-GainFactor 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 ::= {
+ { 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-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-Information CRITICALITY reject EXTENSION E-DCH-Information PRESENCE optional }|
+ { ID id-E-DCH-Serving-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-768-Information CRITICALITY reject EXTENSION E-DCH-768-Information PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information CRITICALITY reject EXTENSION E-DCH-LCR-Information PRESENCE optional }|
+ { ID id-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-ContinuousPacketConnectivity-DRX-InformationLCR CRITICALITY reject EXTENSION ContinuousPacketConnectivity-DRX-InformationLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-LCR CRITICALITY reject EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-LCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-LCR CRITICALITY reject EXTENSION E-DCH-Semi-PersistentScheduling-Information-LCR PRESENCE optional }|
+ { ID id-IdleIntervalInformation CRITICALITY ignore EXTENSION IdleIntervalInformation PRESENCE optional }|
+ { ID id-UE-Selected-MBMS-Service-Information CRITICALITY ignore EXTENSION UE-Selected-MBMS-Service-Information PRESENCE optional }|
+ { ID id-HSSCCH-TPC-StepSize CRITICALITY ignore EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional }|
+ { ID id-DCH-MeasurementOccasion-Information CRITICALITY reject EXTENSION DCH-MeasurementOccasion-Information PRESENCE optional },
+ ...
+}
+
+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
+ { ID id-UL-DPCH-InformationItem-768-RL-AdditionRqstTDD CRITICALITY notify EXTENSION UL-DPCH-InformationItem-768-RL-AdditionRqstTDD PRESENCE optional }, -- Applicable to 7.68Mcps 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 ::= {
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+UL-DPCH-InformationItem-768-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot768-Information UL-Timeslot768-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-768-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-768-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 }|
+ { ID id-DL-DPCH-InformationItem-768-RL-AdditionRqstTDD CRITICALITY notify EXTENSION DL-DPCH-InformationItem-768-RL-AdditionRqstTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+DL-DPCH-InformationItem-768-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot768-Information DL-Timeslot768-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-768-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-768-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 and 7.68Mcps 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 reject EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD or 7.68Mcps TDD
+ { ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 ::= {
+{ ID id-HS-DSCH-Serving-Cell-Change-Info-Response CRITICALITY ignore EXTENSION HS-DSCH-Serving-Cell-Change-Info-Response PRESENCE optional }|
+{ ID id-E-DCH-Serving-Cell-Change-Info-Response CRITICALITY ignore EXTENSION E-DCH-Serving-Cell-Change-Info-Response PRESENCE optional }|
+{ ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional }|
+{ ID id-Additional-HS-Cell-Change-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Change-Information-Response-List PRESENCE optional }|
+{ ID id-Additional-EDCH-Cell-Information-Response-RL-Add CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-RL-Add-List PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Change-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Change-Information-Response-ItemIEs
+
+Additional-HS-Cell-Change-Information-Response-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ hS-DSCH-Secondary-Serving-Cell-Change-Information-Response HS-DSCH-Secondary-Serving-Cell-Change-Information-Response,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Change-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Change-Information-Response-ItemIEs-ExtIEs 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 }|
+ { ID id-E-DCH-RL-Set-ID CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-E-DCH-FDD-DL-Control-Channel-Information CRITICALITY ignore EXTENSION E-DCH-FDD-DL-Control-Channel-Information PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment CRITICALITY ignore EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo 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 ::= {
+ { ID id-E-DCH-FDD-Information-Response CRITICALITY ignore EXTENSION E-DCH-FDD-Information-Response PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ { ID id-E-DCH-FDD-Information-Response CRITICALITY ignore EXTENSION E-DCH-FDD-Information-Response PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 and 7.68Mcps 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 or 7.68Mcps TDD
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional}|
+ { ID id-E-DCH-Information-Response CRITICALITY ignore EXTENSION E-DCH-Information-Response PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION E-DCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional},
+ ...
+}
+
+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 ::= {
+{ ID id-HS-DSCH-Serving-Cell-Change-Info-Response CRITICALITY ignore EXTENSION HS-DSCH-Serving-Cell-Change-Info-Response PRESENCE optional }|
+{ ID id-E-DCH-Serving-Cell-Change-Info-Response CRITICALITY ignore EXTENSION E-DCH-Serving-Cell-Change-Info-Response PRESENCE optional }|
+{ ID id-Additional-HS-Cell-Change-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Change-Information-Response-List PRESENCE optional }|
+{ ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional }|
+{ ID id-Additional-EDCH-Cell-Information-Response-RL-Add CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-RL-Add-List PRESENCE optional },
+ ...
+}
+
+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 }|
+ { ID id-E-DCH-RL-Set-ID CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-E-DCH-FDD-DL-Control-Channel-Information CRITICALITY ignore EXTENSION E-DCH-FDD-DL-Control-Channel-Information PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment CRITICALITY ignore EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo 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 ::= {
+ { ID id-E-DCH-FDD-Information-Response CRITICALITY ignore EXTENSION E-DCH-FDD-Information-Response PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ { ID id-E-DCH-FDD-Information-Response CRITICALITY ignore EXTENSION E-DCH-FDD-Information-Response PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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-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-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 }|
+ { ID id-E-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject EXTENSION E-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional }|
+ { ID id-E-DCH-FDD-Information CRITICALITY reject EXTENSION E-DCH-FDD-Information PRESENCE optional }|
+ { ID id-E-DCH-FDD-Information-to-Modify CRITICALITY reject EXTENSION E-DCH-FDD-Information-to-Modify PRESENCE optional }|
+ { ID id-E-DCH-MACdFlows-to-Add CRITICALITY reject EXTENSION E-DCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-E-DCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION E-DCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-Serving-E-DCH-RL-ID CRITICALITY reject EXTENSION Serving-E-DCH-RL-ID PRESENCE optional }|
+ { ID id-F-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject EXTENSION F-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional }|
+ { ID id-Fast-Reconfiguration-Mode CRITICALITY ignore EXTENSION Fast-Reconfiguration-Mode PRESENCE optional }|
+ { ID id-CPC-Information CRITICALITY reject EXTENSION CPC-Information PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-RL-Reconf-Prep CRITICALITY reject EXTENSION Additional-HS-Cell-Information-RL-Reconf-Prep PRESENCE optional }|
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Reconf-Prep CRITICALITY reject EXTENSION Additional-EDCH-Cell-Information-RL-Reconf-Prep PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Reconf-Prep ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Reconf-Prep-ItemIEs
+
+Additional-HS-Cell-Information-RL-Reconf-Prep-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ c-ID C-ID OPTIONAL,
+ hS-DSCH-FDD-Secondary-Serving-Information HS-DSCH-FDD-Secondary-Serving-Information OPTIONAL,
+ hS-DSCH-Secondary-Serving-Information-To-Modify HS-DSCH-Secondary-Serving-Information-To-Modify OPTIONAL,
+ hS-HS-DSCH-Secondary-Serving-Remove HS-DSCH-Secondary-Serving-Remove OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Reconf-Prep-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Reconf-Prep-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Reconf-Prep ::=SEQUENCE{
+ setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency Setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-RL-Reconf-Prep-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Reconf-Prep-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+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,
+ not-Used-sSDT-CellIDLength NULL OPTIONAL,
+ not-Used-s-FieldLength NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPDCH-Indicator-For-E-DCH-Operation CRITICALITY reject EXTENSION UL-DPDCH-Indicator-For-E-DCH-Operation PRESENCE optional },
+ ...
+}
+
+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,
+ not-Used-pDSCH-CodeMapping NULL OPTIONAL,
+ not-Used-pDSCH-RL-ID NULL OPTIONAL,
+ limitedPowerIncrease LimitedPowerIncrease OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-Power-Information-RL-ReconfPrepFDD CRITICALITY reject EXTENSION DL-DPCH-Power-Information-RL-ReconfPrepFDD PRESENCE optional },
+ ...
+}
+
+DL-DPCH-Power-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ powerOffsetInformation PowerOffsetInformation-RL-ReconfPrepFDD,
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Power-Information-RL-ReconfPrepFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Power-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-RL-ReconfPrepFDD ::= SEQUENCE {
+ pO1-ForTFCI-Bits PowerOffset,
+ pO2-ForTPC-Bits PowerOffset,
+ pO3-ForPilotBits PowerOffset,
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-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 ::= {
+ ...
+}
+
+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,
+ not-Used-sSDT-Indication NULL OPTIONAL,
+ not-Used-sSDT-Cell-Identity NULL OPTIONAL,
+ 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-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-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 }|
+ { ID id-E-DCH-RL-Indication CRITICALITY reject EXTENSION E-DCH-RL-Indication PRESENCE optional }|
+ { ID id-RL-Specific-E-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-E-DCH-Info PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY reject EXTENSION F-DPCH-SlotFormat PRESENCE optional },
+ ...
+}
+
+E-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs OPTIONAL,
+ ul-PunctureLimit PunctureLimit OPTIONAL,
+ e-TFCS-Information E-TFCS-Information OPTIONAL,
+ e-TTI E-TTI OPTIONAL,
+ e-DPCCH-PO E-DPCCH-PO OPTIONAL,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold OPTIONAL,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold OPTIONAL,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH OPTIONAL,
+ hSDSCH-Configured-Indicator HSDSCH-Configured-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MinimumReducedE-DPDCH-GainFactor CRITICALITY ignore EXTENSION MinimumReducedE-DPDCH-GainFactor PRESENCE optional },
+ ...
+}
+
+F-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ powerOffsetInformation PowerOffsetInformation-F-DPCH-RL-ReconfPrepFDD,
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { F-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-F-DPCH-RL-ReconfPrepFDD ::= SEQUENCE {
+ pO2-ForTPC-Bits PowerOffset,
+ -- This IE shall be ignored by Node B
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-F-DPCH-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-F-DPCH-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- 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-multiple-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,
+ { ID id-E-DCH-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-Information-Reconfig PRESENCE optional }|
+ { ID id-E-DCH-Serving-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-768-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-768-Information-Reconfig PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-LCR-Information-Reconfig PRESENCE optional }|
+ { ID id-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-CPC-InformationLCR CRITICALITY reject EXTENSION CPC-InformationLCR PRESENCE optional }|
+ { ID id-IdleIntervalInformation CRITICALITY ignore EXTENSION IdleIntervalInformation PRESENCE optional }|
+ { ID id-UE-Selected-MBMS-Service-Information CRITICALITY ignore EXTENSION UE-Selected-MBMS-Service-Information PRESENCE optional }|
+ { ID id-HSSCCH-TPC-StepSize CRITICALITY ignore EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional }|
+ { ID id-DCH-MeasurementOccasion-Information CRITICALITY reject EXTENSION DCH-MeasurementOccasion-Information PRESENCE optional},
+ ...
+}
+
+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 or 7.68Mcps 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 or 7.68Mcps 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,
+ { ID id-UL-DPCH-768-InformationAddItemIE-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-DPCH-768-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only, first radio link
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+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 or 7.68Mcps TDD.
+ tDD-TPC-UplinkStepSize-LCR TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD or 7.68Mcps 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 ::= {
+ { ID id-UL-DPCH-768-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-DPCH-768-InformationAddList-RL-ReconfPrepTDD PRESENCE optional },
+ ...
+}
+
+UL-DPCH-768-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information768 UL-Timeslot768-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-768-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-768-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,
+ { ID id-UL-DPCH-768-InformationModify-AddItem CRITICALITY reject EXTENSION UL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 7.68Mcps 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
+ ...
+}
+
+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 }
+}
+
+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-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
+ { ID id-UL-Timeslot768-Information-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-Timeslot768-InformationModify-ModifyList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 7.68Mcps 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 ::= {
+ { ID id-PLCCH-Information-RL-ReconfPrepTDDLCR CRITICALITY reject EXTENSION PLCCHinformation PRESENCE optional },
+ ...
+}
+
+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-Timeslot768-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-768-InformationModify-ModifyItem-RL-ReconfPrepTDD -- Applicable to 7.68Mcps TDD only
+
+UL-Timeslot-768-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD768 UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-768-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-768-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD768 ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD768
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD768 ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD768-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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-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 ::= {
+ ...
+}
+
+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 ::= {
+ { ID id-UL-DPCH-768-InformationModify-AddList CRITICALITY reject EXTENSION UL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only
+ ...
+}
+
+UL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information768 UL-Timeslot768-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-768-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-768-InformationModify-AddItem-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 information 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 information 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 information 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-dl-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,
+ { ID id-DL-DPCH-768-InformationAddItem-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only
+ ...
+}
+
+CCTrCH-TPCAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCAddItem-RL-ReconfPrepTDD -- Applicable to 3.84Mcps TDD and 7.68Mcps 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 ::= {
+ ...
+}
+
+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 ::= {
+ { ID id-DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only
+ ...
+}
+
+DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information768 DL-Timeslot768-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-768-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-768-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,
+ { ID id-DL-DPCH-768-InformationModify-AddItem-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only first radio link
+ ...
+}
+
+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-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 }|
+ { ID id-DL-Timeslot-768-InformationModify-ModifyList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-Timeslot-768-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 ::= {
+ ...
+}
+
+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 ::= {
+ { 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-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-Timeslot-768-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-Timeslot-768-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Timeslot-768-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-768-InformationModify-ModifyList-RL-ReconfPrepTDD DL-Code-768-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-768-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-768-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-768-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs768)) OF DL-Code-768-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Code-768-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID768 DPCH-ID768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-768-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-768-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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-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 ::= {
+ ...
+}
+
+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 ::= {
+ { ID id-DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 7.68Mcps TDD only
+ ...
+}
+
+DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information768 DL-Timeslot768-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-768-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-768-InformationModify-AddItem-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.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+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 or 7.68Mcps TDD
+ { ID id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies
+ ...
+}
+
+
+-- **************************************************************
+--
+-- 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
+ { ID id-E-DCH-Information-Response CRITICALITY ignore EXTENSION E-DCH-Information-Response PRESENCE optional }|
+ { ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional }|
+ { ID id-Fast-Reconfiguration-Permission CRITICALITY ignore EXTENSION Fast-Reconfiguration-Permission PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response CRITICALITY ignore EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Information-Response PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-Response-List PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION E-DCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional}|
+ { ID id-Additional-EDCH-Cell-Information-ResponseRLReconf CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-RLReconf-List PRESENCE optional },
+ ...
+}
+
+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, -- TDD only
+ uSCH-InformationResponseList-RL-ReconfReady USCH-InformationResponseList-RL-ReconfReady OPTIONAL, -- TDD only
+ not-Used-tFCI2-BearerInformationResponse NULL OPTIONAL,
+ 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 }|
+ { ID id-E-DCH-RL-Set-ID CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-E-DCH-FDD-DL-Control-Channel-Information CRITICALITY ignore EXTENSION E-DCH-FDD-DL-Control-Channel-Information PRESENCE optional }|
+ { ID id-E-DCH-FDD-Information-Response CRITICALITY ignore EXTENSION E-DCH-FDD-Information-Response 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 ::= {
+ { ID id-Fast-Reconfiguration-Mode CRITICALITY reject EXTENSION Fast-Reconfiguration-Mode PRESENCE optional },--FDD only
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+ { ID id-E-DPCH-Information-RL-ReconfRqstFDD CRITICALITY reject EXTENSION E-DPCH-Information-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-E-DCH-FDD-Information CRITICALITY reject EXTENSION E-DCH-FDD-Information PRESENCE optional }|
+ { ID id-E-DCH-FDD-Information-to-Modify CRITICALITY reject EXTENSION E-DCH-FDD-Information-to-Modify PRESENCE optional }|
+ { ID id-E-DCH-MACdFlows-to-Add CRITICALITY reject EXTENSION E-DCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-E-DCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION E-DCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-Serving-E-DCH-RL-ID CRITICALITY reject EXTENSION Serving-E-DCH-RL-ID PRESENCE optional }|
+ { ID id-CPC-Information CRITICALITY reject EXTENSION CPC-Information PRESENCE optional }|
+ { ID id-NoOfTargetCellHS-SCCH-Order CRITICALITY ignore EXTENSION NoOfTargetCellHS-SCCH-Order PRESENCE optional}|
+ { ID id-Additional-HS-Cell-Information-RL-Reconf-Req CRITICALITY reject EXTENSION Additional-HS-Cell-Information-RL-Reconf-Req PRESENCE optional }|
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Reconf-Req CRITICALITY reject EXTENSION Additional-EDCH-Cell-Information-RL-Reconf-Req PRESENCE optional },
+...
+}
+
+Additional-HS-Cell-Information-RL-Reconf-Req ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Reconf-Req-ItemIEs
+
+Additional-HS-Cell-Information-RL-Reconf-Req-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ c-ID C-ID OPTIONAL,
+ hS-DSCH-FDD-Secondary-Serving-Information HS-DSCH-FDD-Secondary-Serving-Information OPTIONAL,
+ hS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised OPTIONAL,
+ hS-DSCH-Secondary-Serving-Remove HS-DSCH-Secondary-Serving-Remove OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Reconf-Req-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Reconf-Req-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Reconf-Req ::=SEQUENCE{
+ setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency Setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-RL-Reconf-Req-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Reconf-Req-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+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 ::= {
+ { ID id-UL-DPDCH-Indicator-For-E-DCH-Operation CRITICALITY reject EXTENSION UL-DPDCH-Indicator-For-E-DCH-Operation PRESENCE optional },
+ ...
+}
+
+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 }|
+ { ID id-E-DCH-RL-Indication CRITICALITY reject EXTENSION E-DCH-RL-Indication PRESENCE optional }|
+ { ID id-RL-Specific-E-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-E-DCH-Info PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY reject EXTENSION F-DPCH-SlotFormat PRESENCE optional },
+ ...
+}
+
+E-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs OPTIONAL,
+ ul-PunctureLimit PunctureLimit OPTIONAL,
+ e-TFCS-Information E-TFCS-Information OPTIONAL,
+ e-TTI E-TTI OPTIONAL,
+ e-DPCCH-PO E-DPCCH-PO OPTIONAL,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold OPTIONAL,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold OPTIONAL,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH OPTIONAL,
+ hSDSCH-Configured-Indicator HSDSCH-Configured-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DPCH-Information-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DPCH-Information-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MinimumReducedE-DPDCH-GainFactor CRITICALITY ignore EXTENSION MinimumReducedE-DPDCH-GainFactor 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-multiple-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 }|
+ { ID id-E-DCH-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-Information-Reconfig PRESENCE optional }|
+ { ID id-E-DCH-Serving-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-768-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-768-Information-Reconfig PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-LCR-Information-Reconfig PRESENCE optional }|
+ { ID id-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-CPC-InformationLCR CRITICALITY reject EXTENSION CPC-InformationLCR PRESENCE optional }|
+ { ID id-IdleIntervalInformation CRITICALITY ignore EXTENSION IdleIntervalInformation PRESENCE optional }|
+{ ID id-UE-Selected-MBMS-Service-Information CRITICALITY ignore EXTENSION UE-Selected-MBMS-Service-Information PRESENCE optional }|
+ { ID id-HSSCCH-TPC-StepSize CRITICALITY ignore EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional }|
+{ ID id-DCH-MeasurementOccasion-Information CRITICALITY reject EXTENSION DCH-MeasurementOccasion-Information 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
+-- This DPCH LCR Information is the for the first RL repetition, DPCH LCR information for RL repetitions 2 and on, should be defined in MultipleRL-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD.
+ { ID id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD 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-CCTrCH-InformationModifyList-RL-ReconfRqstTDD.
+ { ID id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD 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-CCTrCH-InformationModifyList-RL-ReconfRqstTDD.
+ { 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-CCTrCH-InformationModifyList-RL-ReconfRqstTDD CRITICALITY reject EXTENSION MultipleRL-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD PRESENCE optional },
+-- This CCTrCH Information is the for the 2nd and beyond RL repetitions.
+ ...
+}
+
+MultipleRL-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-DL-CCTrCH-InformationModifyListIE-RL-ReconfRqstTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-DL-CCTrCH-InformationModifyListIE-RL-ReconfRqstTDD ::= SEQUENCE {
+ dl-DPCH-LCR-InformationModifyList DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD OPTIONAL,
+ cCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD DL-Power OPTIONAL,
+ cCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD DL-Power OPTIONAL,
+ rL-ID RL-ID 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 or 7.68Mcps 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
+ { ID id-E-DCH-Information-Response CRITICALITY ignore EXTENSION E-DCH-Information-Response PRESENCE optional }|
+ { ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response CRITICALITY ignore EXTENSION ContinuousPacketConnectivityHS-SCCH-less-Information-Response PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-Response-List PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION E-DCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional}|
+ { ID id-Additional-EDCH-Cell-Information-ResponseRLReconf CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-RLReconf-List PRESENCE optional },
+ ...
+}
+
+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
+ { ID id-E-DCH-RL-Set-ID CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-E-DCH-FDD-DL-Control-Channel-Information CRITICALITY ignore EXTENSION E-DCH-FDD-DL-Control-Channel-Information PRESENCE optional }|
+ { ID id-E-DCH-FDD-Information-Response CRITICALITY ignore EXTENSION E-DCH-FDD-Information-Response PRESENCE optional },
+ ...
+}
+
+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 and 7.68Mcps 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 or 7.68Mcps 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.
+ { ID id-MeasurementRecoveryBehavior CRITICALITY ignore EXTENSION MeasurementRecoveryBehavior PRESENCE optional }|
+ { ID id-AlternativeFormatReportingIndicator CRITICALITY ignore EXTENSION AlternativeFormatReportingIndicator PRESENCE optional }|
+ { ID id-NumberOfReportedCellPortionsLCR CRITICALITY reject EXTENSION NumberOfReportedCellPortionsLCR PRESENCE conditional },
+ -- The IE shall be present if the Dedicated Measurement Type IE is set to "Best Cell Portions LCR", 1.28Mcps 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
+ { ID id-DPCH-ID768-DM-Rqst CRITICALITY reject EXTENSION DPCH-ID768 PRESENCE optional}|
+ -- 7.68Mcps TDD only
+ { ID id-HSSICH-InfoExt-DM-Rqst CRITICALITY reject EXTENSION HSSICH-InfoExt-DM-Rqst PRESENCE optional},
+ -- 1.28Mcps TDD only, used if the HS-SICH identity has a value larger than 31
+ ...
+}
+
+PUSCH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF PUSCH-ID
+
+HSSICH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfHSSICHs)) OF HS-SICH-ID
+
+HSSICH-InfoExt-DM-Rqst::= SEQUENCE (SIZE (1..maxNrOfHSSICHs)) OF Extended-HS-SICH-ID
+-- 1.28Mcps TDD only, used if the HS-SICH identity has a value larger than 31
+
+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 ::= {
+ { ID id-MeasurementRecoverySupportIndicator CRITICALITY ignore EXTENSION MeasurementRecoverySupportIndicator PRESENCE optional},
+ ...
+}
+
+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
+ -- This PUSCH Information is the for the first PUSCH repetition, PUSCH information for PUSCH repetitions 2 and on, should be defined in Multiple-PUSCH-InfoList-DM-Rsp.
+ { ID id-HSSICH-Info-DM-Rsp CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional}|
+ -- TDD only
+ { ID id-multiple-DedicatedMeasurementValueList-TDD-DM-Rsp CRITICALITY ignore EXTENSION Multiple-DedicatedMeasurementValueList-TDD-DM-Rsp PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only. This list of dedicated measurement values is used for the 2nd and beyond measurements of a RL when multiple dedicated measurement values need to be reported.
+ { ID id-multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp CRITICALITY ignore EXTENSION Multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only. This list of dedicated measurement values is used for the 2nd and beyond measurements of a RL when multiple dedicated measurement values need to be reported.
+ { ID id-multiple-PUSCH-InfoList-DM-Rsp CRITICALITY ignore EXTENSION Multiple-PUSCH-InfoList-DM-Rsp PRESENCE optional }|
+ -- TDD only, This PUSCH information is the for the 2nd and beyond PUSCH repetitions.
+ { ID id-multiple-HSSICHMeasurementValueList-TDD-DM-Rsp CRITICALITY ignore EXTENSION Multiple-HSSICHMeasurementValueList-TDD-DM-Rsp PRESENCE optional }|
+ -- TDD only. This list of HS-SICH measurement values is used for the 2nd and beyond measurements of a RL when multiple HS-SICH measurement values need to be reported.
+ { ID id-DPCH-ID768-DM-Rsp CRITICALITY reject EXTENSION DPCH-ID768 PRESENCE optional}| -- 7.68Mcps TDD only
+ { ID id-multiple-DedicatedMeasurementValueList-768-TDD-DM-Rsp CRITICALITY ignore EXTENSION Multiple-DedicatedMeasurementValueList-768-TDD-DM-Rsp PRESENCE optional }|
+ -- Applicable to 7.68Mcps TDD only. This list of dedicated measurement values is used for the 2nd and beyond measurements of a RL when multiple dedicated measurement values need to be reported.
+ {ID id-Extended-HS-SICH-ID CRITICALITY reject EXTENSION Extended-HS-SICH-ID PRESENCE optional},
+ -- 1.28Mcps TDD only, used if the HS-SICH identity has a value larger than 31
+ ...
+}
+
+PUSCH-Info-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF PUSCH-ID
+
+Multiple-PUSCH-InfoList-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfPUSCHs-1)) OF Multiple-PUSCH-InfoListIE-DM-Rsp
+-- Includes the 2nd through the max number of PUSCH information repetitions.
+
+Multiple-PUSCH-InfoListIE-DM-Rsp ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID OPTIONAL,
+ dedicatedMeasurementValue DedicatedMeasurementValue OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-PUSCH-InfoListIE-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Multiple-PUSCH-InfoListIE-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-DedicatedMeasurementValueList-TDD-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfDPCHsPerRL-1)) OF Multiple-DedicatedMeasurementValueItem-TDD-DM-Rsp
+
+Multiple-DedicatedMeasurementValueItem-TDD-DM-Rsp ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-DedicatedMeasurementValueItem-TDD-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Multiple-DedicatedMeasurementValueItem-TDD-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfDPCHsLCRPerRL-1)) OF Multiple-DedicatedMeasurementValueItem-LCR-TDD-DM-Rsp
+
+Multiple-DedicatedMeasurementValueItem-LCR-TDD-DM-Rsp ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-DedicatedMeasurementValueItem-LCR-TDD-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Multiple-DedicatedMeasurementValueItem-LCR-TDD-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-HSSICHMeasurementValueList-TDD-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfHSSICHs-1)) OF Multiple-HSSICHMeasurementValueItem-TDD-DM-Rsp
+
+Multiple-HSSICHMeasurementValueItem-TDD-DM-Rsp ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-HSSICHMeasurementValueItem-TDD-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Multiple-HSSICHMeasurementValueItem-TDD-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-HS-SICH-ID CRITICALITY ignore EXTENSION Extended-HS-SICH-ID PRESENCE optional},
+ -- 1.28Mcps TDD only, used if the HS-SICH identity has a value larger than 31
+ ...
+}
+
+Multiple-DedicatedMeasurementValueList-768-TDD-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfDPCHs768PerRL-1)) OF Multiple-DedicatedMeasurementValueItem-768-TDD-DM-Rsp
+
+Multiple-DedicatedMeasurementValueItem-768-TDD-DM-Rsp ::= SEQUENCE {
+ dPCH-ID768 DPCH-ID768,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-DedicatedMeasurementValueItem-768-TDD-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Multiple-DedicatedMeasurementValueItem-768-TDD-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 ::= {
+ { ID id-MeasurementRecoveryReportingIndicator CRITICALITY ignore EXTENSION MeasurementRecoveryReportingIndicator PRESENCE optional },
+ ...
+}
+
+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
+ -- This PUSCH Information is the for the first PUSCH repetition, PUSCH information for PUSCH repetitions 2 and on, should be defined in Multiple-PUSCH-InfoList-DM-Rprt.
+ {ID id-HSSICH-Info-DM-Rprt CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional}|
+ -- TDD only
+ { ID id-multiple-PUSCH-InfoList-DM-Rprt CRITICALITY ignore EXTENSION Multiple-PUSCH-InfoList-DM-Rprt PRESENCE optional }|
+ -- TDD only, This PUSCH information is the for the 2nd and beyond PUSCH repetitions.
+ { ID id-DPCH-ID768-DM-Rprt CRITICALITY reject EXTENSION DPCH-ID768 PRESENCE optional}|
+ -- 7.68Mcps TDD only
+ { ID id-Extended-HS-SICH-ID CRITICALITY ignore EXTENSION Extended-HS-SICH-ID PRESENCE optional},
+ -- 1.28Mcps TDD only, used if the HS-SICH identity has a value larger than 31
+ ...
+}
+
+PUSCH-Info-DM-Rprt ::= SEQUENCE (SIZE (0..maxNrOfPUSCHs)) OF PUSCH-ID
+
+Multiple-PUSCH-InfoList-DM-Rprt ::= SEQUENCE (SIZE (1.. maxNrOfPUSCHs-1)) OF Multiple-PUSCH-InfoListIE-DM-Rprt
+-- Includes the 2nd through the max number of PUSCH information repetitions.
+
+Multiple-PUSCH-InfoListIE-DM-Rprt ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID OPTIONAL,
+ dedicatedMeasurementValue DedicatedMeasurementValue OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-PUSCH-InfoListIE-DM-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Multiple-PUSCH-InfoListIE-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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-E-AGCH-E-RGCH-E-HICH-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 ::= {
+ { ID id-E-AGCH-And-E-RGCH-E-HICH-FDD-Scrambling-Code CRITICALITY reject EXTENSION DL-ScramblingCode PRESENCE optional }|
+ { ID id-E-AGCH-FDD-Code-Information CRITICALITY reject EXTENSION E-AGCH-FDD-Code-Information PRESENCE optional }|
+ { ID id-E-RGCH-E-HICH-FDD-Code-Information CRITICALITY reject EXTENSION E-RGCH-E-HICH-FDD-Code-Information PRESENCE optional }|
+ {ID id-HSDPA-And-EDCH-CellPortion-Information-PSCH-ReconfRqst CRITICALITY reject EXTENSION HSDPA-And-EDCH-CellPortion-InformationList-PSCH-ReconfRqst PRESENCE optional }|
+ {ID id-Maximum-Target-ReceivedTotalWideBandPower CRITICALITY reject EXTENSION Maximum-Target-ReceivedTotalWideBandPower PRESENCE optional }|
+ {ID id-Reference-ReceivedTotalWideBandPower CRITICALITY ignore EXTENSION Reference-ReceivedTotalWideBandPower PRESENCE optional }|
+ {ID id-Target-NonServing-EDCH-To-Total-EDCH-Power-Ratio CRITICALITY reject EXTENSION Target-NonServing-EDCH-To-Total-EDCH-Power-Ratio PRESENCE optional }|
+ { ID id-HSDSCH-Common-System-InformationFDD CRITICALITY reject EXTENSION HSDSCH-Common-System-InformationFDD PRESENCE optional }|
+ { ID id-Common-MACFlows-to-DeleteFDD CRITICALITY reject EXTENSION Common-MACFlows-to-DeleteFDD PRESENCE optional }|
+ { ID id-HSDSCH-Paging-System-InformationFDD CRITICALITY reject EXTENSION HSDSCH-Paging-System-InformationFDD PRESENCE optional }|
+ { ID id-Paging-MACFlows-to-DeleteFDD CRITICALITY reject EXTENSION Paging-MACFlows-to-DeleteFDD PRESENCE optional }|
+ { ID id-Common-EDCH-System-InformationFDD CRITICALITY reject EXTENSION Common-EDCH-System-InformationFDD PRESENCE optional }|
+ { ID id-Common-UL-MACFlows-to-DeleteFDD CRITICALITY reject EXTENSION Common-MACFlows-to-DeleteFDD PRESENCE optional }|
+ { ID id-Common-EDCH-MACdFlows-to-DeleteFDD CRITICALITY reject EXTENSION E-DCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-Enhanced-UE-DRX-InformationFDD CRITICALITY reject EXTENSION Enhanced-UE-DRX-InformationFDD PRESENCE optional },
+ ...
+}
+
+HSDPA-And-EDCH-CellPortion-InformationList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF HSDPA-And-EDCH-CellPortion-InformationItem-PSCH-ReconfRqst
+
+HSDPA-And-EDCH-CellPortion-InformationItem-PSCH-ReconfRqst::= SEQUENCE {
+ cellPortionID CellPortionID,
+ hS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst DL-ScramblingCode OPTIONAL,
+ hS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst HS-PDSCH-FDD-Code-Information OPTIONAL,
+ hS-SCCH-FDD-Code-Information-PSCH-ReconfRqst HS-SCCH-FDD-Code-Information OPTIONAL,
+ hS-PDSCH-HS-SCCH-E-AGCH-E-RGCH-E-HICH-MaxPower-PSCH-ReconfRqst MaximumTransmissionPower OPTIONAL,
+ e-AGCH-And-E-RGCH-E-HICH-FDD-Scrambling-Code DL-ScramblingCode OPTIONAL,
+ e-AGCH-FDD-Code-Information E-AGCH-FDD-Code-Information OPTIONAL,
+ e-RGCH-E-HICH-FDD-Code-Information E-RGCH-E-HICH-FDD-Code-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDPA-And-EDCH-CellPortion-InformationItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDPA-And-EDCH-CellPortion-InformationItem-PSCH-ReconfRqst-ExtIEs 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 }|
+ { ID id-E-PUCH-Information-PSCH-ReconfRqst CRITICALITY reject EXTENSION E-PUCH-Information-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Delete-From-E-AGCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Delete-From-E-AGCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-E-HICH-Information-PSCH-ReconfRqst CRITICALITY reject EXTENSION E-HICH-Information-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Maximum-Generated-ReceivedTotalWideBandPowerInOtherCells CRITICALITY reject EXTENSION Maximum-Generated-ReceivedTotalWideBandPowerInOtherCells PRESENCE optional }|-- Applicable to 3.84Mcps TDD or 7.68Mcps TDD.
+ { ID id-E-PUCH-Information-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION E-PUCH-Information-768-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-E-HICH-Information-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION E-HICH-Information-768-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-E-PUCH-Information-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION E-PUCH-Information-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Delete-From-E-HICH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Delete-From-E-HICH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-SYNC-UL-Partition-LCR CRITICALITY reject EXTENSION SYNC-UL-Partition-LCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD or 7.68Mcps TDD.
+ { ID id-Maximum-Target-ReceivedTotalWideBandPower-LCR CRITICALITY reject EXTENSION Maximum-Target-ReceivedTotalWideBandPower-LCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only.
+ { ID id-Delete-From-HS-SCCH-Resource-PoolExt-PSCH-ReconfRqst CRITICALITY reject EXTENSION Delete-From-HS-SCCH-Resource-PoolExt-PSCH-ReconfRqst PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only, used when there are more than maxNrOfHSSCCHs HS-SCCHs in the message.
+ { ID id-HSDSCH-Common-System-InformationLCR CRITICALITY reject EXTENSION HSDSCH-Common-System-InformationLCR PRESENCE optional }|
+ { ID id-Common-MACFlows-to-DeleteLCR CRITICALITY reject EXTENSION Common-MACFlows-to-DeleteLCR PRESENCE optional }|
+ { ID id-HSDSCH-Paging-System-InformationLCR CRITICALITY reject EXTENSION HSDSCH-Paging-System-InformationLCR PRESENCE optional }|
+ { ID id-Paging-MACFlows-to-DeleteLCR CRITICALITY reject EXTENSION Paging-MACFlows-to-DeleteLCR PRESENCE optional }|
+ { ID id-Common-EDCH-System-InformationLCR CRITICALITY reject EXTENSION Common-EDCH-System-InformationLCR PRESENCE optional }|
+ { ID id-Common-UL-MACFlows-to-DeleteLCR CRITICALITY reject EXTENSION Common-MACFlows-to-DeleteLCR PRESENCE optional }|
+ { ID id-Common-EDCH-MACdFlows-to-DeleteLCR CRITICALITY reject EXTENSION E-DCH-MACdFlows-to-DeleteLCR PRESENCE optional }|
+ { ID id-Enhanced-UE-DRX-InformationLCR CRITICALITY reject EXTENSION Enhanced-UE-DRX-InformationLCR PRESENCE optional }|
+ { ID id-Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PowerControlGAP-For-CellFACHLCR CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only { ID id-Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst CRITICALITY ignore EXTENSION Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext CRITICALITY reject EXTENSION Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext PRESENCE optional }|
+ { ID id-Out-of-Sychronization-Window CRITICALITY reject EXTENSION Out-of-Sychronization-Window 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 or 7.68Mcps 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 or 7.68Mcps TDD.
+ {ID id-PDSCH-AddInformation-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION PDSCH-AddInformation-768-AddItem-PSCH-ReconfRqst PRESENCE optional}, -- Mandatory for 7.68 Mcps TDD. Not Applicable to 3.84Mcps TDD or 1.28 Mcps 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 or 7.68Mcps 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 ::= {
+{ID id-Tstd-indicator CRITICALITY reject EXTENSION TSTD-Indicator PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+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 ::= {
+ {ID id-PDSCH-Timeslot-Format-PSCH-ReconfRqst-LCR CRITICALITY reject EXTENSION TDD-DL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+PDSCH-AddInformation-768-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ dL-Timeslot-InformationAddList-768-PSCH-ReconfRqst DL-Timeslot-InformationAddList-768-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-AddInformation-768-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-AddInformation-768-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationAddList-768-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationAddItem-768-PSCH-ReconfRqst
+
+DL-Timeslot-InformationAddItem-768-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-InformationAddList-768-PSCH-ReconfRqst DL-Code-InformationAddList-768-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationAddItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationAddItem-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationAddList-768-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationAddItem-768-PSCH-ReconfRqst
+
+DL-Code-InformationAddItem-768-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID768 PDSCH-ID768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationAddItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationAddItem-768-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 ::= {
+ {ID id-PDSCH-ModifyInformation-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION PDSCH-ModifyInformation-768-ModifyItem-PSCH-ReconfRqst PRESENCE optional}, -- For 7.68 Mcps TDD. Not Applicable to 3.84Mcps TDD or 1.28 Mcps TDD.
+ ...
+}
+
+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 ::= {
+ {ID id-PDSCH-Timeslot-Format-PSCH-ReconfRqst-LCR CRITICALITY reject EXTENSION TDD-DL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+
+PDSCH-ModifyInformation-768-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ dL-Timeslot-768-InformationModifyList-PSCH-ReconfRqst DL-Timeslot-768-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-ModifyInformation-768-ModifyListIE-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-ModifyInformation-768-ModifyListIE-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-768-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-768-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Timeslot-768-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-768-InformationModifyList-PSCH-ReconfRqst DL-Code-768-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-768-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-768-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-768-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-768-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Code-768-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID768 PDSCH-ID768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-768-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-768-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 or 7.68Mcps 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 or 7.68Mcps TDD
+ { ID id-PUSCH-AddInformation-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION PUSCH-AddInformation-768-AddItem-PSCH-ReconfRqst PRESENCE optional}, -- Mandatory for 7.68 Mcps TDD. Not Applicable to 3.84Mcps TDD or 1.28 Mcps 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 ::= {
+ {ID id-PUSCH-Timeslot-Format-PSCH-ReconfRqst-LCR CRITICALITY reject EXTENSION TDD-UL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+PUSCH-AddInformation-768-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ uL-Timeslot-InformationAddList-768-PSCH-ReconfRqst UL-Timeslot-InformationAddList-768-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-AddInformation-768-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCH-AddInformation-768-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationAddList-768-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfULTSs)) OF UL-Timeslot-InformationAddItem-768-PSCH-ReconfRqst
+
+UL-Timeslot-InformationAddItem-768-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationAddList-768-PSCH-ReconfRqst UL-Code-InformationAddList-768-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationAddItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationAddItem-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationAddList-768-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationAddItem-768-PSCH-ReconfRqst
+
+UL-Code-InformationAddItem-768-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationAddItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationAddItem-768-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 ::= {
+ {ID id-PUSCH-ModifyInformation-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION PUSCH-ModifyInformation-768-ModifyItem-PSCH-ReconfRqst PRESENCE optional}, -- For 7.68 Mcps TDD. Not Applicable to 3.84Mcps TDD or 1.28 Mcps TDD.
+ ...
+}
+
+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 ::= {
+ { ID id-PUSCH-Timeslot-Format-PSCH-ReconfRqst-LCR CRITICALITY reject EXTENSION TDD-UL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+PUSCH-ModifyInformation-768-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ uL-Timeslot-InformationModifyList-768-PSCH-ReconfRqst UL-Timeslot-768-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-ModifyInformation-768-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCH-ModifyInformation-768-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-768-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-768-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Timeslot-768-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-768-InformationModifyList-PSCH-ReconfRqst UL-Code-768-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-768-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-768-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-768-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-768-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Code-768-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-768-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-768-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,
+ -- This HS-PDSCH Timeslot Information is for the first Frequency repetition, HS-PDSCH Timeslot information for Frequency repetitions 2 and on, should be defined in MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst
+ iE-Extensions ProtocolExtensionContainer { { HS-PDSCH-TDD-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-PDSCH-TDD-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-dL-HS-PDSCH-Timeslot-Information-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION DL-HS-PDSCH-Timeslot-Information-768-PSCH-ReconfRqst PRESENCE optional }| -- For 7.68 Mcps TDD. Not Applicable to 3.84Mcps TDD or 1.28 Mcps TDD.
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional }|
+ -- This is the UARFCN for the first Frequency repetition. Mandatory for 1.28Mcps TDD when using multiple frequencies.
+ { ID id-multipleFreq-dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies, This Information is for the 2nd and beyond Frequency repetition
+ ...
+}
+
+
+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-768-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-HS-PDSCH-Timeslot-InformationItem-768-PSCH-ReconfRqst
+
+DL-HS-PDSCH-Timeslot-InformationItem-768-PSCH-ReconfRqst::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ dl-HS-PDSCH-Codelist-768-PSCH-ReconfRqst DL-HS-PDSCH-Codelist-768-PSCH-ReconfRqst,
+ maxHSDSCH-HSSCCH-Power MaximumTransmissionPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-HS-PDSCH-Timeslot-InformationItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-InformationItem-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Codelist-768-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSPDSCHs768)) OF TDD-ChannelisationCode768
+
+MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF ProtocolIE-Single-Container{{ MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItemIE-PSCH-ReconfRqst}}
+ -- Includes the 2nd through the max number of frequency repetitions.
+
+MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItemIE-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ { ID id-MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst CRITICALITY reject TYPE MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst PRESENCE optional }
+}
+
+MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst ::= SEQUENCE {
+ dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst OPTIONAL,
+ uARFCN UARFCN,
+ iE-Extensions ProtocolExtensionContainer { { MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 ::= {
+ { ID id-hS-SCCH-Information-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION HS-SCCH-Information-768-PSCH-ReconfRqst PRESENCE optional }|
+ -- 7.68 Mcps TDD. Not Applicable to 3.84Mcps TDD or 1.28 Mcps TDD.
+ { ID id-HS-SCCH-InformationExt-LCR-PSCH-ReconfRqst CRITICALITY ignore EXTENSION HS-SCCH-InformationExt-LCR-PSCH-ReconfRqst PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only, used when there are more than maxNrOfHSSCCHs HS-SCCHs in the message.
+ ...
+}
+
+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 ::= {
+ { ID id-Extended-HS-SCCH-ID CRITICALITY ignore EXTENSION Extended-HS-SCCH-ID PRESENCE optional}|
+ -- used if the HS-SCCH identity has a value larger than 31
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional}|
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies
+ { ID id-HSSICH-ReferenceSignal-InformationLCR CRITICALITY ignore EXTENSION HSSICH-ReferenceSignal-InformationLCR PRESENCE optional},
+ ...
+}
+
+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 ::= {
+ { ID id-Extended-HS-SICH-ID CRITICALITY ignore EXTENSION Extended-HS-SICH-ID PRESENCE optional},
+ -- used if the HS-SICH identity has a value larger than 31
+ ...
+}
+
+HS-SCCH-Information-768-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationItem-768-PSCH-ReconfRqst
+
+HS-SCCH-InformationItem-768-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ hS-SCCH-MaxPower DL-Power,
+ hS-SICH-Information-768 HS-SICH-Information-768-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationItem-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Information-768-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Information-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-Information-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-InformationExt-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfHSSCCHsinExt)) OF HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst
+
+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 ::= {
+ { ID id-hS-SCCH-InformationModify-768-PSCH-ReconfRqst CRITICALITY reject EXTENSION HS-SCCH-InformationModify-768-PSCH-ReconfRqst PRESENCE optional }|
+ -- 7.68 Mcps TDD. Not Applicable to 3.84Mcps TDD or 1.28 Mcps TDD.
+ { ID id-HS-SCCH-InformationModifyExt-LCR-PSCH-ReconfRqst CRITICALITY ignore EXTENSION HS-SCCH-InformationModifyExt-LCR-PSCH-ReconfRqst PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only, used when there are more than maxNrOfHSSCCHs HS-SCCHs in the message.
+ ...
+}
+
+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 ::= {
+ { ID id-Extended-HS-SCCH-ID CRITICALITY ignore EXTENSION Extended-HS-SCCH-ID PRESENCE optional}|
+ -- used if the HS-SCCH identity has a value larger than 31
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies
+ { ID id-HSSICH-ReferenceSignal-InformationModifyLCR CRITICALITY reject EXTENSION HSSICH-ReferenceSignal-InformationModifyLCR PRESENCE optional},
+ ...
+}
+
+HS-SCCH-InformationModifyExt-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfHSSCCHsinExt)) OF HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst
+
+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 ::= {
+ { ID id-Extended-HS-SICH-ID CRITICALITY ignore EXTENSION Extended-HS-SICH-ID PRESENCE optional },
+ -- used if the HS-SICH identity has a value larger than 31
+ ...
+}
+
+HS-SCCH-InformationModify-768-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationModifyItem-768-PSCH-ReconfRqst
+
+HS-SCCH-InformationModifyItem-768-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ hS-SCCH-MaxPower DL-Power OPTIONAL,
+ hS-SICH-Information-768 HS-SICH-InformationModify-768-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationModifyItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationModifyItem-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-InformationModify-768-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationModify-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationModify-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-InformationModify-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationModifyItem-PSCH-ReconfRqst
+
+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 ::= {
+ { ID id-Extended-HS-SCCH-ID CRITICALITY ignore EXTENSION Extended-HS-SCCH-ID PRESENCE optional },
+ -- used if the HS-SCCH identity has a value larger than 31
+ ...
+}
+
+E-PUCH-Information-PSCH-ReconfRqst ::= SEQUENCE {
+ lTGI-Presence LTGI-Presence,
+ sNPL-Reporting-Type SNPL-Reporting-Type,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ e-PUCH-Timeslot-Info E-PUCH-Timeslot-Info,
+ iE-Extensions ProtocolExtensionContainer { { E-PUCH-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-PUCH-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-PUCH-Timeslot-Info ::= SEQUENCE (SIZE (1..maxNrOfE-PUCHSlots)) OF TimeSlot
+
+Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst::= SEQUENCE {
+ e-AGCH-Information-PSCH-ReconfRqst E-AGCH-Information-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-Information-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfEAGCHs)) OF E-AGCH-InformationItem-PSCH-ReconfRqst
+
+E-AGCH-InformationItem-PSCH-ReconfRqst ::= SEQUENCE {
+ e-AGCH-ID E-AGCH-Id,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ e-AGCH-MaxPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-InformationItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-InformationItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst::= SEQUENCE {
+ e-AGCH-InformationModify-PSCH-ReconfRqst E-AGCH-InformationModify-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-InformationModify-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfEAGCHs)) OF E-AGCH-InformationModifyItem-PSCH-ReconfRqst
+
+E-AGCH-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ e-AGCH-ID E-AGCH-Id,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ e-AGCH-MaxPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Delete-From-E-AGCH-Resource-Pool-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfEAGCHs)) OF Delete-From-E-AGCH-Resource-PoolItem-PSCH-ReconfRqst
+
+Delete-From-E-AGCH-Resource-PoolItem-PSCH-ReconfRqst ::= SEQUENCE {
+ e-AGCH-ID E-AGCH-Id,
+ iE-Extensions ProtocolExtensionContainer { { Delete-From-E-AGCH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Delete-From-E-AGCH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-Information-PSCH-ReconfRqst ::= SEQUENCE {
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ e-HICH-MaxPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+E-HICH-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-PUCH-Information-768-PSCH-ReconfRqst ::= SEQUENCE {
+ lTGI-Presence LTGI-Presence,
+ sNPL-Reporting-Type SNPL-Reporting-Type,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ e-PUCH-Timeslot-Info E-PUCH-Timeslot-Info,
+ iE-Extensions ProtocolExtensionContainer { { E-PUCH-Information-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-PUCH-Information-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst::= SEQUENCE {
+ e-AGCH-Information-768-PSCH-ReconfRqst E-AGCH-Information-768-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-Information-768-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfEAGCHs)) OF E-AGCH-InformationItem-768-PSCH-ReconfRqst
+
+E-AGCH-InformationItem-768-PSCH-ReconfRqst ::= SEQUENCE {
+ e-AGCH-ID E-AGCH-Id,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ e-AGCH-MaxPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-InformationItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-InformationItem-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst::= SEQUENCE {
+ e-AGCH-InformationModify-768-PSCH-ReconfRqst E-AGCH-InformationModify-768-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-InformationModify-768-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfEAGCHs)) OF E-AGCH-InformationModifyItem-768-PSCH-ReconfRqst
+
+E-AGCH-InformationModifyItem-768-PSCH-ReconfRqst ::= SEQUENCE {
+ e-AGCH-ID E-AGCH-Id,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768 OPTIONAL,
+ e-AGCH-MaxPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-InformationModifyItem-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-InformationModifyItem-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-Information-768-PSCH-ReconfRqst ::= SEQUENCE {
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ e-HICH-MaxPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-Information-768-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+E-HICH-Information-768-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-PUCH-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ lTGI-Presence LTGI-Presence,
+ sNPL-Reporting-Type SNPL-Reporting-Type,
+ e-PUCH-Timeslot-InfoLCR E-PUCH-Timeslot-InfoLCR OPTIONAL,
+ -- This E-PUCH Timeslot Information is for the first Frequency repetition, E-PUCH timeslot information for Frequency repetitions 2 and on, should be defined in MultipleFreq-E-PUCH-Timeslot-InformationList-LCR-PSCH-ReconfRqst.
+ iE-Extensions ProtocolExtensionContainer { { E-PUCH-Information-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-PUCH-Information-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional}|
+ -- This is the UARFCN for the first Frequency repetition. Mandatory for 1.28Mcps TDD when using multiple frequencies.
+ { ID id-MultipleFreq-E-PUCH-Timeslot-InformationList-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION MultipleFreq-E-PUCH-Timeslot-InformationList-LCR-PSCH-ReconfRqst PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies.This E-PUCH Information is for the 2nd and beyond frequencies.
+ ...
+}
+
+E-PUCH-Timeslot-InfoLCR ::= SEQUENCE (SIZE (1..maxNrOfE-PUCHSlotsLCR)) OF E-PUCH-Timeslot-Item-InfoLCR
+
+E-PUCH-Timeslot-Item-InfoLCR ::= SEQUENCE {
+ timeSlot TimeSlotLCR,
+ midambleShiftAndBurstType MidambleShiftLCR,
+ e-PUCH-Codelist-LCR E-PUCH-Codelist-LCR,
+ iE-Extensions ProtocolExtensionContainer { { E-PUCH-Timeslot-Item-InfoLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-PUCH-Timeslot-Item-InfoLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-PUCH-Codelist-LCR ::= SEQUENCE (SIZE (1..maxNrOfEPUCHcodes)) OF TDD-ChannelisationCode
+
+Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ e-AGCH-Information-LCR-PSCH-ReconfRqst E-AGCH-Information-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-Information-LCR-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfEAGCHs)) OF E-AGCH-InformationItem-LCR-PSCH-ReconfRqst
+
+E-AGCH-InformationItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ e-AGCH-ID E-AGCH-Id,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode,
+ e-AGCH-MaxPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional},
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies
+ ...
+}
+
+Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst::= SEQUENCE {
+ e-AGCH-InformationModify-LCR-PSCH-ReconfRqst E-AGCH-InformationModify-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-InformationModify-LCR-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfEAGCHs)) OF E-AGCH-InformationModifyItem-LCR-PSCH-ReconfRqst
+
+E-AGCH-InformationModifyItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ e-AGCH-ID E-AGCH-Id,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ e-AGCH-MaxPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional},
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies
+ ...
+}
+
+Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ e-HICH-Information-LCR-PSCH-ReconfRqst E-HICH-Information-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfEHICHs)) OF E-HICH-InformationItem-LCR-PSCH-ReconfRqst
+
+E-HICH-InformationItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ e-HICH-ID-TDD E-HICH-ID-TDD,
+ e-HICH-Type E-HICH-Type,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ e-HICH-MaxPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-HICH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-E-HICH-ID-TDD CRITICALITY ignore EXTENSION Extended-E-HICH-ID-TDD PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD only when the E-HICH identity has a value larger than 31.
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional},
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies
+ ...
+}
+
+Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ e-HICH-InformationModify-LCR-PSCH-ReconfRqst E-HICH-InformationModify-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-InformationModify-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfEHICHs)) OF E-HICH-InformationModifyItem-LCR-PSCH-ReconfRqst
+
+E-HICH-InformationModifyItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ e-HICH-ID-TDD E-HICH-ID-TDD,
+ e-HICH-Type E-HICH-Type OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ e-HICH-MaxPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-HICH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-E-HICH-ID-TDD CRITICALITY ignore EXTENSION Extended-E-HICH-ID-TDD PRESENCE optional}|
+ --Applicable to 1.28Mcps TDD only when the E-HICH identity has a value larger than 31.
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional},
+ -- Mandatory for 1.28Mcps TDD when using multiple frequencies
+ ...
+}
+
+Delete-From-E-HICH-Resource-Pool-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfEHICHs)) OF Delete-From-E-HICH-Resource-PoolItem-PSCH-ReconfRqst
+
+Delete-From-E-HICH-Resource-PoolItem-PSCH-ReconfRqst ::= SEQUENCE {
+ e-HICH-ID-TDD E-HICH-ID-TDD,
+ iE-Extensions ProtocolExtensionContainer { { Delete-From-E-HICH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Delete-From-E-HICH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-E-HICH-ID-TDD CRITICALITY ignore EXTENSION Extended-E-HICH-ID-TDD PRESENCE optional},
+ -- Applicable to 1.28Mcps TDD only when the E-HICH identity has a value larger than 31.
+ ...
+}
+
+SYNC-UL-Partition-LCR ::= SEQUENCE {
+ eRUCCH-SYNC-UL-codes-bitmap BIT STRING (SIZE (8)),
+ iE-Extensions ProtocolExtensionContainer { { SYNC-UL-Partition-LCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNC-UL-Partition-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Delete-From-HS-SCCH-Resource-PoolExt-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfHSSCCHsinExt)) OF Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst
+
+MultipleFreq-E-PUCH-Timeslot-InformationList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF ProtocolIE-Single-Container {{ MultipleFreq-E-PUCH-Timeslot-InformationItemIE-LCR-PSCH-ReconfRqst}}
+--Includes the 2nd through the max number of frequencies information repetitions.
+
+MultipleFreq-E-PUCH-Timeslot-InformationItemIE-LCR-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ { ID id-MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst CRITICALITY ignore TYPE MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst PRESENCE optional }
+}
+
+MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst ::= SEQUENCE {
+ e-PUCH-Timeslot-InfoLCR E-PUCH-Timeslot-InfoLCR OPTIONAL,
+ uARFCN UARFCN,
+ iE-Extensions ProtocolExtensionContainer { { MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxFrequencyinCell)) OF Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst-Item
+
+Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst-Item ::= SEQUENCE {
+ uARFCN UARFCN,
+ maximum-Target-ReceivedTotalWideBandPower-LCR Maximum-Target-ReceivedTotalWideBandPower-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst-Item-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 ::= {
+ { ID id-E-HICH-TimeOffset CRITICALITY reject EXTENSION E-HICH-TimeOffset PRESENCE optional }|
+ { ID id-E-HICH-TimeOffsetLCR CRITICALITY reject EXTENSION E-HICH-TimeOffsetLCR PRESENCE optional }|
+ { ID id-HSDSCH-Common-System-Information-ResponseFDD CRITICALITY ignore EXTENSION HSDSCH-Common-System-Information-ResponseFDD PRESENCE optional }|
+ { ID id-HSDSCH-Paging-System-Information-ResponseFDD CRITICALITY ignore EXTENSION HSDSCH-Paging-System-Information-ResponseFDD PRESENCE optional }|
+ { ID id-UARFCNforNt CRITICALITY reject EXTENSION UARFCN PRESENCE optional}|
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies. This is the UARFCN for the first Frequency repetition.
+ { ID id-E-HICH-TimeOffset-Extension CRITICALITY reject EXTENSION E-HICH-TimeOffset-ExtensionLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD when using multiple frequencies. This E-HICH-TimeOffset-ExtensionLCR is the E-HICH Time Offset LCR for the 2nd and beyond frequencies.
+ { ID id-Common-EDCH-System-Information-ResponseFDD CRITICALITY ignore EXTENSION Common-EDCH-System-Information-ResponseFDD PRESENCE optional }|
+ -- FDD only
+ { ID id-HSDSCH-Common-System-Information-ResponseLCR CRITICALITY ignore EXTENSION HSDSCH-Common-System-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HSDSCH-Paging-System-Information-ResponseLCR CRITICALITY ignore EXTENSION HSDSCH-Paging-System-Information-ResponseLCR PRESENCE optional }|
+ { ID id-Common-EDCH-System-Information-ResponseLCR CRITICALITY ignore EXTENSION Common-EDCH-System-Information-ResponseLCR PRESENCE optional },
+ ...
+}
+
+E-HICH-TimeOffset-ExtensionLCR ::= SEQUENCE (SIZE (1..maxFrequencyinCell-1)) OF ProtocolIE-Single-Container{{ Multiple-E-HICH-TimeOffsetLCR }}
+
+Multiple-E-HICH-TimeOffsetLCR NBAP-PROTOCOL-IES ::= {
+ { ID id-MultipleFreq-E-HICH-TimeOffsetLCR CRITICALITY reject TYPE MultipleFreq-E-HICH-TimeOffsetLCR PRESENCE optional }
+}
+MultipleFreq-E-HICH-TimeOffsetLCR ::= SEQUENCE {
+ e-HICH-TimeOffsetLCR E-HICH-TimeOffsetLCR,
+ uARFCN UARFCN,
+ iE-Extensions ProtocolExtensionContainer { { MultipleFreq-E-HICH-TimeOffsetLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+MultipleFreq-E-HICH-TimeOffsetLCR-ExtIEs 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 ::= {
+ { ID id-E-HICH-TimeOffset-ReconfFailureTDD CRITICALITY ignore EXTENSION E-HICH-TimeOffset-ReconfFailureTDD PRESENCE optional }|
+ { ID id-Common-System-Information-ResponseLCR CRITICALITY ignore EXTENSION Common-System-Information-ResponseLCR PRESENCE optional },
+ ...
+}
+
+CauseLevel-PSCH-ReconfFailure ::= CHOICE {
+ generalCause GeneralCauseList-PSCH-ReconfFailure,
+ setSpecificCause SetSpecificCauseList-PSCH-ReconfFailureTDD,
+ ...,
+ extension-CauseLevel-PSCH-ReconfFailure Extension-CauseLevel-PSCH-ReconfFailure
+}
+
+
+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 ::= {
+ ...
+}
+
+Extension-CauseLevel-PSCH-ReconfFailure ::= ProtocolIE-Single-Container {{ Extension-CauseLevel-PSCH-ReconfFailureIE }}
+
+Extension-CauseLevel-PSCH-ReconfFailureIE NBAP-PROTOCOL-IES ::= {
+ { ID id-UARFCNSpecificCauseList CRITICALITY ignore TYPE UARFCNSpecificCauseList-PSCH-ReconfFailureTDD PRESENCE mandatory }
+}
+
+UARFCNSpecificCauseList-PSCH-ReconfFailureTDD ::= SEQUENCE (SIZE (0.. maxFrequencyinCell)) OF ProtocolIE-Single-Container {{ Unsuccessful-UARFCNItemIE-PSCH-ReconfFailureTDD }}
+
+Unsuccessful-UARFCNItemIE-PSCH-ReconfFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD CRITICALITY ignore TYPE Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD PRESENCE mandatory }
+}
+
+Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ uARFCN UARFCN,
+ -- Used for 1.28 Mcps TDD to indicate the carrier on which HSDPA or HSUPA resources configuration failure occurs.
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HS-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}|
+ -- Used to indicate the cause of HSDPA related configuration failure.
+ { ID id-E-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional},
+ -- Used to indicate the cause of E-DCH related configuration failure.
+ ...
+}
+
+E-HICH-TimeOffset-ReconfFailureTDD ::= SEQUENCE (SIZE (1..maxFrequencyinCell)) OF ProtocolIE-Single-Container{{ Multiple-E-HICH-TimeOffsetLCR }}
+
+Common-System-Information-ResponseLCR::= SEQUENCE {
+ hSDSCH-Common-System-Information-ResponseLCR HSDSCH-Common-System-Information-ResponseLCR,
+ hSDSCH-Paging-System-Information-ResponseLCR HSDSCH-Paging-System-Information-ResponseLCR OPTIONAL,
+ common-EDCH-System-Information-ResponseLCR Common-EDCH-System-Information-ResponseLCR,
+ iE-Extensions ProtocolExtensionContainer { { Common-System-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Common-System-Information-ResponseLCR-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-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
+ ...
+}
+
+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
+ ...
+}
+
+TimeslotInfo-CellSyncInitiationRqstTDD::= SEQUENCE (SIZE (1..15)) OF TimeSlot
+
+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 ::= {
+ ...
+}
+
+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-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
+ ...
+}
+
+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
+ ...
+}
+
+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 } |
+ -- TDD only.
+ { ID id-USCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE USCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+ -- TDD only.
+ { ID id-HSDSCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE HSDSCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional },
+ ...
+}
+
+BearerRearrangementIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore EXTENSION E-DCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional },
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+E-DCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1.. maxNrOfEDCHMACdFlows)) OF E-DCH-RearrangeItem-Bearer-RearrangeInd
+
+E-DCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ e-DCH-MACdFlow-ID E-DCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Additional-EDCH-Cell-Information-Bearer-Rearrangement CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Bearer-Rearrangement-List PRESENCE optional },
+ ...
+}
+
+Additional-EDCH-Cell-Information-Bearer-Rearrangement-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-Bearer-Rearrangement-ItemIEs
+
+Additional-EDCH-Cell-Information-Bearer-Rearrangement-ItemIEs ::= SEQUENCE {
+ transport-Bearer-Rearrangement-Indicator-for-Additional-EDCH-Separate-Mode Transport-Bearer-Rearrangement-Indicator-for-Additional-EDCH-Separate-Mode,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-Bearer-Rearrangement-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-Bearer-Rearrangement-ItemIEs-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transport-Bearer-Rearrangement-Indicator-for-Additional-EDCH-Separate-Mode
+ ::= ENUMERATED {
+ bearer-for-primary-carrier,
+ bearer-for-secondary-carrier,
+ bearers-for-both-primary-and-secondary-carriers,
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 ::= {
+ { ID id-E-DCH-FDD-Update-Information CRITICALITY ignore EXTENSION E-DCH-FDD-Update-Information PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-RL-Param-Upd CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-RL-Param-Upd PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Param-Upd CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-RL-Param-Upd PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Param-Upd ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Param-Upd-ItemIEs
+
+Additional-HS-Cell-Information-RL-Param-Upd-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ hS-DSCH-FDD-Secondary-Serving-Update-Information HS-DSCH-FDD-Secondary-Serving-Update-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Setup-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Setup-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+Additional-EDCH-Cell-Information-RL-Param-Upd ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-RL-Param-Upd-ItemIEs
+
+Additional-EDCH-Cell-Information-RL-Param-Upd-ItemIEs ::=SEQUENCE{
+ additional-EDCH-FDD-Update-Information Additional-EDCH-FDD-Update-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-RL-Param-Upd-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Param-Upd-ItemIEs-ExtIEs 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 ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS NOTIFICATION UPDATE COMMAND
+--
+-- **************************************************************
+
+MBMSNotificationUpdateCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MBMSNotificationUpdateCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ MBMSNotificationUpdateCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+MBMSNotificationUpdateCommand-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelID CRITICALITY ignore TYPE CommonPhysicalChannelID PRESENCE mandatory }|
+ { ID id-Modification-Period CRITICALITY ignore TYPE Modification-Period PRESENCE optional }|
+ { ID id-MICH-CFN CRITICALITY ignore TYPE MICH-CFN PRESENCE mandatory }|
+ { ID id-NI-Information-NotifUpdateCmd CRITICALITY ignore TYPE NI-Information PRESENCE mandatory },
+ ...
+}
+
+MBMSNotificationUpdateCommand-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE STATUS UPDATE COMMAND
+--
+-- **************************************************************
+
+UEStatusUpdateCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEStatusUpdateCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UEStatusUpdateCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+UEStatusUpdateCommand-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-ERNTI-Status-Information CRITICALITY ignore TYPE Cell-ERNTI-Status-Information PRESENCE mandatory },
+ ...
+}
+
+UEStatusUpdateCommand-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECONDARY UL FREQUENCY REPORT
+--
+-- **************************************************************
+
+SecondaryULFrequencyReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SecondaryULFrequencyReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SecondaryULFrequencyReport-Extensions}} OPTIONAL,
+ ...
+}
+
+SecondaryULFrequencyReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-ActivationInformation CRITICALITY ignore TYPE ActivationInformation PRESENCE mandatory },
+ ...
+}
+
+SecondaryULFrequencyReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECONDARY UL FREQUENCY UPDATE INDICATION
+--
+-- **************************************************************
+
+SecondaryULFrequencyUpdateIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SecondaryULFrequencyUpdateIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SecondaryULFrequencyUpdateIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+
+SecondaryULFrequencyUpdateIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-ActivationInformation CRITICALITY ignore TYPE ActivationInformation PRESENCE mandatory },
+ ...
+}
+
+SecondaryULFrequencyUpdateIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/nbap/NBAP-PDU-Descriptions.asn b/epan/dissectors/asn1/nbap/NBAP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..53d3c578ae
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/NBAP-PDU-Descriptions.asn
@@ -0,0 +1,970 @@
+-- NBAP-PDU-Descriptions.asn
+--
+-- Taken from 3GPP TS 25.433 V9.2.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.433/
+--
+-- 9.3.2 Elementary Procedure Definitions
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+NBAP-PDU-Descriptions {
+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,
+ MBMSNotificationUpdateCommand,
+ UEStatusUpdateCommand,
+ SecondaryULFrequencyReport,
+ SecondaryULFrequencyUpdateIndication
+
+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-mBMSNotificationUpdate,
+ 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,
+ id-uEStatusUpdate,
+ id-secondaryULFrequencyReporting,
+ id-secondaryULFrequencyUpdate
+
+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 |
+ mBMSNotificationUpdate |
+ uEStatusUpdate |
+ secondaryULFrequencyReportingFDD |
+ secondaryULFrequencyUpdateFDD
+
+}
+
+-- **************************************************************
+--
+-- 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
+}
+
+-- *** MBMSNotificationUpdate ***
+mBMSNotificationUpdate NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSNotificationUpdateCommand
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-mBMSNotificationUpdate, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** UEStatusUpdate ***
+uEStatusUpdate NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEStatusUpdateCommand
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-uEStatusUpdate, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** SecondaryULFrequencyReporting (FDD) ***
+secondaryULFrequencyReportingFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecondaryULFrequencyReport
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-secondaryULFrequencyReporting, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- ***secondaryULFrequencyUpdate (FDD)
+secondaryULFrequencyUpdateFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecondaryULFrequencyUpdateIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-secondaryULFrequencyUpdate, ddMode fdd }
+ CRITICALITY ignore
+}
+
+END
diff --git a/epan/dissectors/asn1/nbap/nbap.cnf b/epan/dissectors/asn1/nbap/nbap.cnf
new file mode 100644
index 0000000000..e5251c21b2
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/nbap.cnf
@@ -0,0 +1,3253 @@
+# nbap.cnf
+# nbap conformation file
+# Copyright 2005 - 2012 Anders Broman
+# Modified 2012 by Jacob Nordgren <jacob.nordgren@ericsson.com> and
+# Rishie Sharma <rishie.sharma@ericsson.com>
+#.OPT
+
+PER
+ALIGNED
+#.END
+
+#.PDU
+NBAP-PDU
+
+#.MAKE_DEFINES
+ProcedureCode
+
+#.MAKE_ENUM
+ProtocolIE-ID
+ProcedureID/ddMode
+
+#.USE_VALS_EXT
+ProtocolIE-ID
+CommonMeasurementType
+E-AGCH-UE-Inactivity-Monitor-Threshold
+DedicatedMeasurementType
+E-DCH-MACdFlow-Retransmission-Timer
+MeasurementFilterCoefficient
+TDD-ChannelisationCode
+TDD-ChannelisationCode768
+Process-Memory-Size
+DiscardTimer
+
+#.TYPE_RENAME
+ProcedureID/ddMode DdMode
+
+ProtocolIE-Field/value ProtocolIE_Field_value
+PrivateIE-Field/value PrivateIE_Field_value
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+Outcome/value Outcome_value
+
+MidambleShiftAndBurstType/type1 Type1
+MidambleShiftAndBurstType768/type1 Type7681
+MidambleShiftAndBurstType/type2 Type2
+MidambleShiftAndBurstType768/type2 Type7682
+MidambleShiftAndBurstType/type3 Type3
+MidambleShiftAndBurstType768/type3 Type7683
+
+MidambleShiftAndBurstType/type1/midambleAllocationMode MidambleAllocationMode1
+MidambleShiftAndBurstType/type2/midambleAllocationMode MidambleAllocationMode2
+MidambleShiftAndBurstType/type3/midambleAllocationMode MidambleAllocationMode3
+MidambleShiftAndBurstType768/type1/midambleAllocationMode MidambleAllocationMode7681
+MidambleShiftAndBurstType768/type2/midambleAllocationMode MidambleAllocationMode7682
+MidambleShiftAndBurstType768/type3/midambleAllocationMode MidambleAllocationMode7683
+
+#.FIELD_RENAME
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+Outcome/value outcome_value
+PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst/timeSlot timeSlotLCR
+E-PUCH-Timeslot-Item-InfoLCR/timeSlot timeSlotLCR
+
+CellSyncBurstTiming/initialPhase initialPhase_0_1048575
+
+
+#.OMIT_ASSIGNMENT
+Presence
+ProtocolIE-FieldPair
+ProtocolIE-ContainerList
+ProtocolIE-ContainerPair
+ProtocolIE-ContainerPairList
+#.END
+
+#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &nbap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+#.END
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, nbap_ProcedureCode_vals,
+ "unknown message"));
+#.END
+#.FN_PARS ProcedureID/ddMode VAL_PTR = &ddMode
+
+#.FN_HDR ProcedureID
+ ProcedureCode = 0xFFFF;
+ ddMode = 0xFFFF;
+ ProcedureID = NULL;
+#.END
+
+#.FN_FTR ProcedureID
+ ProcedureID = wmem_strdup_printf(wmem_packet_scope(), "%s/%s",
+ val_to_str(ProcedureCode, VALS(nbap_ProcedureCode_vals), "unknown(%u)"),
+ val_to_str(ddMode, VALS(nbap_DdMode_vals), "unknown(%u)"));
+ crcn_context_present = FALSE; /*Reset CRNC Com context present flag.*/
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#------ Pretify info column -----
+# CellSetupRequestFDD
+#.FN_HDR CellSetupRequestFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupRequest(FDD) ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# CellSetupResponse
+#.FN_HDR CellSetupResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupResponse ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# CellSetupFailure
+#.FN_HDR CellSetupFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# CellSetupRequestTDD
+
+# CellReconfigurationRequestFDD
+# CellReconfigurationResponse
+# CellReconfigurationFailure
+# CellReconfigurationRequestTDD
+# CellReconfigurationResponse
+# CellReconfigurationFailure
+# CellDeletionRequest
+# CellDeletionResponse
+# CommonTransportChannelSetupRequestFDD
+#.FN_HDR CommonTransportChannelSetupRequestFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupRequest(FDD) ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# CommonTransportChannelSetupResponse
+#.FN_HDR CommonTransportChannelSetupResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupResponse ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# CommonTransportChannelSetupFailure
+#.FN_HDR CommonTransportChannelSetupFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# CommonTransportChannelSetupRequestTDD
+# CommonTransportChannelSetupResponse
+# CommonTransportChannelSetupFailure
+# CommonTransportChannelReconfigurationRequestFDD
+# CommonTransportChannelReconfigurationResponse
+# CommonTransportChannelReconfigurationFailure
+# CommonTransportChannelReconfigurationRequestTDD
+# CommonTransportChannelReconfigurationResponse
+# CommonTransportChannelReconfigurationFailure
+# CommonTransportChannelDeletionRequest
+# CommonTransportChannelDeletionResponse
+
+# AuditRequest
+#.FN_HDR AuditRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditRequest ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# AuditResponse
+#.FN_HDR AuditResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditResponse ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# AuditFailure
+#.FN_HDR AuditFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# BlockResourceRequest
+# BlockResourceResponse
+# BlockResourceFailure
+
+# RadioLinkSetupRequestFDD
+#.FN_HDR RadioLinkSetupRequestFDD
+
+ g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
+ g_nbap_msg_info_for_fp.ddMode = ddMode;
+ g_nbap_msg_info_for_fp.is_uplink = TRUE;
+ g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */
+
+
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupRequest(FDD) ");
+ /* CRNC -> Node B */
+ actx->pinfo->link_dir=P2P_DIR_DL;
+
+# RadioLinkSetupResponseFDD
+#.FN_HDR RadioLinkSetupResponseFDD
+
+ g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
+ g_nbap_msg_info_for_fp.ddMode = ddMode;
+ g_nbap_msg_info_for_fp.is_uplink = FALSE;
+ g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */
+
+
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupResponse(FDD) ");
+ /* Node B -> CRNC */
+ actx->pinfo->link_dir=P2P_DIR_UL;
+
+# RadioLinkSetupFailureFDD
+#.FN_HDR RadioLinkSetupFailureFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupFailure(FDD) ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# RadioLinkSetupRequestTDD
+# RadioLinkSetupResponseTDD
+# RadioLinkSetupFailureTDD
+
+# SystemInformationUpdateRequest
+#.FN_HDR SystemInformationUpdateRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateRequest ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# SystemInformationUpdateResponse
+#.FN_HDR SystemInformationUpdateResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateResponse ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# SystemInformationUpdateFailure
+#.FN_HDR SystemInformationUpdateFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# ResetRequest
+# ResetResponse
+
+# CommonMeasurementInitiationRequest
+#.FN_HDR CommonMeasurementInitiationRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationRequest ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# CommonMeasurementInitiationResponse
+#.FN_HDR CommonMeasurementInitiationResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationResponse ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# CommonMeasurementInitiationFailure
+#.FN_HDR CommonMeasurementInitiationFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# RadioLinkAdditionRequestFDD
+#.FN_HDR RadioLinkAdditionRequestFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionRequest(FDD) ");
+
+# RadioLinkAdditionResponseFDD
+
+#.FN_HDR RadioLinkAdditionResponseFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionResponse(FDD) ");
+
+
+# RadioLinkAdditionFailureFDD
+
+#.FN_HDR RadioLinkAdditionFailureFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionRequest(FDD) ");
+
+
+# RadioLinkAdditionRequestTDD
+# RadioLinkAdditionResponseTDD
+# RadioLinkAdditionFailureTDD
+
+
+
+
+
+# RadioLinkDeletionRequest
+#.FN_HDR RadioLinkDeletionRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionRequest ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+
+# RadioLinkDeletionResponse
+#.FN_HDR RadioLinkDeletionResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionResponse ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# RadioLinkReconfigurationPrepareFDD
+#.FN_HDR RadioLinkReconfigurationPrepareFDD
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationPrepare(FDD) ");
+ /* CRNC -> Node B */
+ actx->pinfo->link_dir=P2P_DIR_DL;
+ g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
+ g_nbap_msg_info_for_fp.ddMode = ddMode;
+ g_nbap_msg_info_for_fp.is_uplink = TRUE;
+ g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */
+
+
+# RadioLinkReconfigurationReady
+#.FN_HDR RadioLinkReconfigurationReady
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationReady ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# RadioLinkReconfigurationFailure
+#.FN_HDR RadioLinkReconfigurationFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# RadioLinkReconfigurationPrepareTDD
+# RadioLinkReconfigurationReady
+# RadioLinkReconfigurationFailure
+
+# RadioLinkReconfigurationRequestFDD
+#.FN_HDR RadioLinkReconfigurationRequestFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationRequestFDD(FDD) ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# RadioLinkReconfigurationResponse
+#.FN_HDR RadioLinkReconfigurationResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationResponse ");
+
+
+
+# RadioLinkReconfigurationFailure
+# RadioLinkReconfigurationRequestTDD
+# RadioLinkReconfigurationResponse
+# RadioLinkReconfigurationFailure
+
+#.FN_HDR RadioLinkReconfigurationFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# DedicatedMeasurementInitiationRequest
+#.FN_HDR DedicatedMeasurementInitiationRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationRequest ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# DedicatedMeasurementInitiationResponse
+#.FN_HDR DedicatedMeasurementInitiationResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationResponse ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# DedicatedMeasurementInitiationFailure
+#.FN_HDR DedicatedMeasurementInitiationFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# PhysicalSharedChannelReconfigurationRequestFDD
+#.FN_HDR PhysicalSharedChannelReconfigurationRequestFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationRequest(FDD) ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# PhysicalSharedChannelReconfigurationResponse
+#.FN_HDR PhysicalSharedChannelReconfigurationResponse
+col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationResponse ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# PhysicalSharedChannelReconfigurationFailure
+#.FN_HDR PhysicalSharedChannelReconfigurationFailure
+col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationFailure ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# PhysicalSharedChannelReconfigurationRequestTDD
+# PhysicalSharedChannelReconfigurationResponse
+# PhysicalSharedChannelReconfigurationFailure
+# InformationExchangeInitiationRequest
+# InformationExchangeInitiationResponse
+# InformationExchangeInitiationFailure
+# CellSynchronisationInitiationRequestTDD
+# CellSynchronisationInitiationResponseTDD
+# CellSynchronisationInitiationFailureTDD
+# CellSynchronisationReconfigurationRequestTDD
+# CellSynchronisationReconfigurationResponseTDD
+# CellSynchronisationReconfigurationFailureTDD
+# CellSynchronisationAdjustmentRequestTDD
+# CellSynchronisationAdjustmentResponseTDD
+# CellSynchronisationAdjustmentFailureTDD
+
+# ResourceStatusIndication
+#.FN_HDR ResourceStatusIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"ResourceStatusIndication ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# AuditRequiredIndication
+#.FN_HDR AuditRequiredIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditRequiredIndication ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# CommonMeasurementReport
+#.FN_HDR CommonMeasurementReport
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementReport ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# CommonMeasurementTerminationRequest
+#.FN_HDR CommonMeasurementTerminationRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementTerminationRequest ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# CommonMeasurementFailureIndication
+#.FN_HDR CommonMeasurementFailureIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementFailureIndication ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# RadioLinkReconfigurationCommit
+#.FN_HDR RadioLinkReconfigurationCommit
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCommit ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# RadioLinkReconfigurationCancel
+#.FN_HDR RadioLinkReconfigurationCancel
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCancel ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# RadioLinkFailureIndication
+#.FN_HDR RadioLinkFailureIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkFailureIndication ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# RadioLinkPreemptionRequiredIndication
+#.FN_HDR RadioLinkPreemptionRequiredIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkPreemptionRequiredIndication ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# RadioLinkRestoreIndication
+#.FN_HDR RadioLinkRestoreIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkRestoreIndication ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+
+
+# DedicatedMeasurementReport
+#.FN_HDR DedicatedMeasurementReport
+col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementReport ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# DedicatedMeasurementTerminationRequest
+#.FN_HDR DedicatedMeasurementTerminationRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementTerminationRequest ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# DedicatedMeasurementFailureIndication
+#.FN_HDR DedicatedMeasurementFailureIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementFailureIndication ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# DL-PowerControlRequest
+#.FN_HDR DL-PowerControlRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"DL-PowerControlRequest ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# DL-PowerTimeslotControlRequest
+#.FN_HDR DL-PowerTimeslotControlRequest
+col_set_str(actx->pinfo->cinfo, COL_INFO,"DL-PowerTimeslotControlRequest ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# CompressedModeCommand
+#.FN_HDR CompressedModeCommand
+col_set_str(actx->pinfo->cinfo, COL_INFO,"CompressedModeCommand ");
+/* CRNC -> Node B */
+actx->pinfo->link_dir=P2P_DIR_DL;
+
+# UnblockResourceIndication
+#.FN_HDR UnblockResourceIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"UnblockResourceIndication ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+# ErrorIndication
+#.FN_HDR ErrorIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"ErrorIndication ");
+
+
+# CellSynchronisationReportTDD
+# CellSynchronisationTerminationRequestTDD
+# CellSynchronisationFailureIndicationTDD
+
+# PrivateMessage
+#.FN_HDR PrivateMessage
+col_set_str(actx->pinfo->cinfo, COL_INFO,"PrivateMessage ");
+
+# InformationReport
+# InformationExchangeTerminationRequest
+# InformationExchangeFailureIndication
+# BearerRearrangementIndication
+#.FN_HDR BearerRearrangementIndication
+col_set_str(actx->pinfo->cinfo, COL_INFO,"BearerRearrangementIndication ");
+
+
+# RadioLinkActivationCommandFDD
+# RadioLinkActivationCommandTDD
+
+# RadioLinkParameterUpdateIndicationFDD
+#.FN_HDR RadioLinkParameterUpdateIndicationFDD
+col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkParameterUpdateIndication(FDD) ");
+/* Node B -> CRNC */
+actx->pinfo->link_dir=P2P_DIR_UL;
+
+
+# RadioLinkParameterUpdateIndicationTDD
+# MBMSNotificationUpdateCommand
+# UEStatusUpdateCommand
+# SecondaryULFrequencyReport
+# SecondaryULFrequencyUpdateIndication
+
+#.FN_BODY IB-Type VAL_PTR = &ib_type
+%(DEFAULT_BODY)s
+
+#.FN_BODY Segment-Type VAL_PTR = &segment_type
+%(DEFAULT_BODY)s
+
+#.FN_BODY MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst
+
+ ib_type = 10; /* not-Used-sIB8 */
+ segment_type = 0;
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY IB-SG-DATA VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if(!parameter_tvb)
+ return offset;
+ if((segment_type == 5 /*complete-SIB */)||(segment_type == 6 /*complete-SIB-short */)){
+ subtree = proto_item_add_subtree(actx->created_item, ett_nbap_ib_sg_data);
+ }else{
+ return offset;
+ }
+
+ switch(ib_type){
+ case 0:
+ /* mIB */
+ dissect_rrc_MasterInformationBlock_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 3:
+ /* iB-Type: sIB1 (3) */
+ dissect_rrc_SysInfoType1_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 4:
+ /* iB-Type: sIB2 (4) */
+ dissect_rrc_SysInfoType2_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 5:
+ /* iB-Type: sIB3 (5) */
+ dissect_rrc_SysInfoType3_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 9:
+ /* iB-Type: sIB7 (9) */
+ dissect_rrc_SysInfoType7_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 14:
+ /* iB-Type: sIB12 (14) */
+ dissect_rrc_SysInfoType12_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ default:
+ break;
+ }
+
+#.FN_BODY TransportLayerAddress VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_item *item;
+ proto_tree *subtree, *nsap_tree;
+ gint tvb_len;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+# TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+# Assume 4 bytes used in case of IPv4
+ /* Get the length */
+ tvb_len = tvb_reported_length(parameter_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_nbap_TransportLayerAddress);
+ if (tvb_len==4){
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_nbap_transportLayerAddress_ipv4, parameter_tvb, 0, tvb_len, ENC_BIG_ENDIAN);
+ transportLayerAddress_ipv4 = tvb_get_ipv4(parameter_tvb, 0);
+ }
+ if (tvb_len==16){
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_nbap_transportLayerAddress_ipv6, parameter_tvb, 0, tvb_len, ENC_NA);
+ }
+ if (tvb_len==20){
+ item = proto_tree_add_item(subtree, hf_nbap_transportLayerAddress_nsap, parameter_tvb, 0, tvb_len, ENC_NA);
+ nsap_tree = proto_item_add_subtree(item, ett_nbap_TransportLayerAddress_nsap);
+ if(tvb_get_ntoh24(parameter_tvb,0) == 0x350001){
+ /* IPv4 */
+ transportLayerAddress_ipv4 = tvb_get_ipv4(parameter_tvb, 3);
+ }
+ dissect_nsap(parameter_tvb, 0, 20, nsap_tree);
+ }
+
+
+#.FN_BODY PayloadCRC-PresenceIndicator VAL_PTR = &payload_crc_value
+guint32 payload_crc_value;
+
+%(DEFAULT_BODY)s
+
+ if(payload_crc_value == 0){
+ g_nbap_msg_info_for_fp.dch_crc_present = TRUE;
+ }else{
+ g_nbap_msg_info_for_fp.dch_crc_present = FALSE;
+ }
+
+#.FN_BODY DCH-ID VAL_PTR = &t_dch_id
+#%(DEFAULT_BODY)s
+# if(g_num_dch_in_flow>0)
+# g_dchs_in_flow_list[g_num_dch_in_flow-1]=dch_id;
+#
+# Only get the DCH-ID in this particularcase
+#
+#.FN_BODY DCH-Specific-FDD-Item/dCH-ID
+
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 255U, &dch_id, FALSE);
+
+ if(g_num_dch_in_flow>0){
+ g_dchs_in_flow_list[g_num_dch_in_flow-1]=dch_id;
+ nbap_dch_chnl_info[dch_id].next_dch = 0;
+ if(prev_dch_id != 0){
+ nbap_dch_chnl_info[prev_dch_id].next_dch = dch_id;
+ }
+ }
+
+#.FN_BODY DCH-ModifySpecificItem-FDD/dCH-ID
+
+%(DEFAULT_BODY)s
+ dch_id = t_dch_id;
+
+#.FN_BODY CommonPhysicalChannelID VAL_PTR = &commonphysicalchannelid
+%(DEFAULT_BODY)s
+if(commonphysicalchannelid<maxNrOfDCHs)
+ nbap_dch_chnl_info[commonphysicalchannelid].next_dch = 0;
+
+#.FN_BODY CommonTransportChannelID VAL_PTR = &commontransportchannelid
+%(DEFAULT_BODY)s
+if(commontransportchannelid<maxNrOfDCHs)
+ nbap_dch_chnl_info[commontransportchannelid].next_dch = 0;
+
+#.FN_BODY E-DCH-MACdFlow-ID VAL_PTR = &e_dch_macdflow_id
+
+%(DEFAULT_BODY)s
+
+
+#.FN_BODY HSDSCH-MACdFlow-ID VAL_PTR = &hsdsch_macdflow_id
+%(DEFAULT_BODY)s
+
+DISSECTOR_ASSERT(num_items < maxNrOfMACdFlows+1);
+DISSECTOR_ASSERT(num_items > 0);
+
+hsdsch_macdflow_ids[num_items-1] = hsdsch_macdflow_id;
+
+#.FN_BODY BindingID VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+# 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.
+ BindingID_port = tvb_get_ntohs(parameter_tvb,0);
+
+ if(tvb_reported_length(parameter_tvb)==2){
+ proto_item_append_text(actx->created_item, " (%%u)",BindingID_port);
+ }
+
+#.FN_BODY RACH-ParametersItem-CTCH-SetupRqstFDD
+address dst_addr, null_addr;
+conversation_t *conversation;
+umts_fp_conversation_info_t *umts_fp_conversation_info;
+int j, num_tf;
+
+transportLayerAddress_ipv4 = 0;
+BindingID_port = 0;
+transportFormatSet_type = NBAP_CPCH;
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+ clear_address(&null_addr);
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ conversation = find_conversation(actx->pinfo->num,&dst_addr,
+ &null_addr, PT_UDP, BindingID_port,
+ 0, NO_ADDR_B|NO_PORT_B);
+
+ if (conversation == NULL) {
+ /* It's not part of any conversation - create a new one. */
+ conversation = conversation_new(actx->pinfo->num, &dst_addr,
+ &null_addr, PT_UDP,BindingID_port ,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /* Fill in the data */
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_RACH_FDD;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
+ umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
+
+ /*Save unique UE-identifier */
+ umts_fp_conversation_info->com_context_id = crcn_context_present ? com_context_id : 1;
+
+ /* DCH's in this flow */
+ umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ /* Set data for First or single channel */
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[j];
+ }
+
+ umts_fp_conversation_info->dchs_in_flow_list[0] = commonphysicalchannelid;
+ umts_fp_conversation_info->num_dch_in_flow=1;
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
+ }
+#.FN_BODY PICH-Mode VAL_PTR = &PICH_Mode
+guint32 PICH_Mode = 0;
+%(DEFAULT_BODY)s
+
+ switch(PICH_Mode){
+ case 0: /* v18 */
+ paging_indications = 18;
+ break;
+ case 1: /* v36 */
+ paging_indications = 36;
+ break;
+ case 2: /* v72 */
+ paging_indications = 72;
+ break;
+ case 3: /* v144 */
+ paging_indications = 144;
+ break;
+ }
+
+
+
+#.FN_BODY PCH-ParametersItem-CTCH-SetupRqstFDD
+
+address dst_addr, null_addr;
+conversation_t *conversation;
+
+umts_fp_conversation_info_t *umts_fp_conversation_info;
+int i, j, num_tf;
+
+transportLayerAddress_ipv4 = 0;
+BindingID_port = 0;
+
+/* There can only be one item, set num_items here to collect the TransportFormatSet data */
+num_items = 1;
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+ clear_address(&null_addr);
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ conversation = find_conversation(actx->pinfo->num,&dst_addr,
+ &null_addr, PT_UDP, BindingID_port,
+ 0, NO_ADDR_B|NO_PORT_B);
+
+ if (conversation == NULL) {
+ /* It's not part of any conversation - create a new one. */
+ conversation = conversation_new(actx->pinfo->num, &dst_addr,
+ &null_addr, PT_UDP,BindingID_port ,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /* Fill in the data */
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_PCH;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
+ umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->paging_indications = paging_indications;
+ umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
+
+ /* DCH's in this flow */
+ umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ /* Set data for First or single channel */
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commontransportchannelid].num_ul_chans;
+
+ nbap_debug("Frame %%u PCH-ParametersItem-CTCH-SetupRqstFDD Start: num_tf %%u",
+ actx->pinfo->num,
+ num_tf);
+
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[j];
+ nbap_debug(" UL tf %%u ul_chan_tf_size %%u",j, nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j]);
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commontransportchannelid].num_dl_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_num_tbs[j];
+ nbap_debug(" DL tf %%u ul_chan_tf_size %%u",j, nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j]);
+ }
+
+ /* Set data for associated DCH's if we have any */
+ i = commontransportchannelid;
+
+ nbap_debug(" commontransportchannelid %%u next ch %%u",commontransportchannelid, nbap_dch_chnl_info[i].next_dch);
+
+ umts_fp_conversation_info->dchs_in_flow_list[0] = commontransportchannelid;
+ while(nbap_dch_chnl_info[i].next_dch != 0){
+ i = nbap_dch_chnl_info[i].next_dch;
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
+ /* Traffic flows per DCH(UL) */
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].num_ul_chans = num_tf = nbap_dch_chnl_info[i].num_ul_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_tf_size[j] = nbap_dch_chnl_info[i].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_num_tbs[j] = nbap_dch_chnl_info[i].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].num_dl_chans = num_tf = nbap_dch_chnl_info[i].num_dl_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_tf_size[j] = nbap_dch_chnl_info[i].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_num_tbs[j] = nbap_dch_chnl_info[i].dl_chan_num_tbs[j];
+ }
+ }
+ umts_fp_conversation_info->num_dch_in_flow++;
+
+ nbap_debug(" num_dch_in_flow %%u", umts_fp_conversation_info->num_dch_in_flow);
+
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+
+ nbap_debug("Frame %%u PCH-ParametersItem-CTCH-SetupRqstFDD End",
+ actx->pinfo->num);
+
+ }
+
+ }
+
+
+#.FN_BODY FACH-ParametersItem-CTCH-SetupRqstFDD
+address dst_addr, null_addr;
+conversation_t *conversation;
+
+umts_fp_conversation_info_t *umts_fp_conversation_info;
+int i, j, num_tf;
+
+transportLayerAddress_ipv4 = 0;
+BindingID_port = 0;
+
+transportFormatSet_type = NBAP_CPCH;
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+ clear_address(&null_addr);
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ conversation = find_conversation(actx->pinfo->num,&dst_addr,
+ &null_addr, PT_UDP, BindingID_port,
+ 0, NO_ADDR_B|NO_PORT_B);
+
+ if (conversation == NULL) {
+ /* It's not part of any conversation - create a new one. */
+ conversation = conversation_new(actx->pinfo->num, &dst_addr,
+ &null_addr, PT_UDP,BindingID_port ,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /* Fill in the data */
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_FACH_FDD;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
+ umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
+ /*Save unique UE-identifier */
+ umts_fp_conversation_info->com_context_id = crcn_context_present ? com_context_id : 1;
+
+
+ /* DCH's in this flow */
+ umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ /* Set data for First or single channel */
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[j];
+ }
+
+ /* Set data for associated DCH's if we have any */
+ i = commonphysicalchannelid;
+ umts_fp_conversation_info->dchs_in_flow_list[0] = commonphysicalchannelid;
+ while(nbap_dch_chnl_info[i].next_dch != 0){
+ i = nbap_dch_chnl_info[i].next_dch;
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
+ /* Traffic flows per DCH(UL) */
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].num_ul_chans = num_tf = nbap_dch_chnl_info[i].num_ul_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_tf_size[j] = nbap_dch_chnl_info[i].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_num_tbs[j] = nbap_dch_chnl_info[i].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].num_dl_chans = num_tf = nbap_dch_chnl_info[i].num_dl_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_tf_size[j] = nbap_dch_chnl_info[i].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_num_tbs[j] = nbap_dch_chnl_info[i].dl_chan_num_tbs[j];
+ }
+ }
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
+
+ }
+
+#.FN_HDR DCH-Specific-FDD-InformationList
+ g_num_dch_in_flow = 0;
+ prev_dch_id = 0;
+
+#.FN_HDR DCH-Specific-FDD-Item
+ g_num_dch_in_flow++;
+
+#.FN_FTR DCH-Specific-FDD-Item
+ prev_dch_id = dch_id;
+
+#.FN_HDR DCH-Specific-FDD-Item/ul-TransportFormatSet
+ transportFormatSet_type = NBAP_DCH_UL;
+ nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
+
+#.FN_HDR DCH-Specific-FDD-Item/dl-TransportFormatSet
+ transportFormatSet_type = NBAP_DCH_DL;
+ nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
+
+#.FN_HDR DCH-ModifySpecificItem-FDD/ul-TransportFormatSet
+ transportFormatSet_type = NBAP_DCH_UL;
+ nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
+
+#.FN_HDR DCH-ModifySpecificItem-FDD/dl-TransportFormatSet
+ transportFormatSet_type = NBAP_DCH_DL;
+ nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
+
+#.FN_HDR PCH-ParametersItem-CTCH-SetupRqstFDD/transportFormatSet
+ transportFormatSet_type = NBAP_PCH;
+ nbap_dch_chnl_info[commontransportchannelid].num_dl_chans = 0;
+ nbap_dch_chnl_info[commontransportchannelid].num_ul_chans = 0;
+
+
+#.FN_HDR TransportFormatSet-DynamicPartList
+ num_items = 0;
+
+#.FN_HDR TransportFormatSet-DynamicPartList/_item
+ num_items++;
+
+
+#.FN_BODY TransportFormatSet-NrOfTransportBlocks VAL_PTR = &NrOfTransportBlocks
+guint32 NrOfTransportBlocks;
+
+%(DEFAULT_BODY)s
+
+ if(num_items>0){
+ switch(transportFormatSet_type){
+ case NBAP_DCH_UL:
+ nbap_dch_chnl_info[dch_id].num_ul_chans++;
+ nbap_dch_chnl_info[dch_id].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ break;
+ case NBAP_DCH_DL:
+ nbap_dch_chnl_info[dch_id].num_dl_chans++;
+ nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ break;
+ case NBAP_CPCH:
+ nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans++;
+ nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans++;
+ nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ break;
+ case NBAP_PCH:
+ nbap_dch_chnl_info[commontransportchannelid].num_ul_chans++;
+ nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[commontransportchannelid].num_dl_chans++;
+ nbap_dch_chnl_info[commontransportchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ break;
+ default:
+ break;
+ }
+ }
+
+#.FN_BODY TransportFormatSet-TransportBlockSize VAL_PTR = &TransportBlockSize
+guint32 TransportBlockSize;
+
+%(DEFAULT_BODY)s
+
+ if(num_items>0){
+ switch(transportFormatSet_type){
+ case NBAP_DCH_UL:
+ nbap_dch_chnl_info[dch_id].ul_chan_tf_size[num_items-1] = TransportBlockSize;
+ break;
+ case NBAP_DCH_DL:
+ nbap_dch_chnl_info[dch_id].dl_chan_tf_size[num_items-1] = TransportBlockSize;
+ break;
+ case NBAP_CPCH:
+ nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[num_items-1] = TransportBlockSize;
+ break;
+ case NBAP_PCH:
+ nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[num_items-1] = TransportBlockSize;
+ break;
+ default:
+ break;
+ }
+ }
+
+#Handle when DCHs get modified
+#.FN_BODY FDD-DCHs-to-ModifyItem
+
+%(DEFAULT_BODY)s
+ /*g_warning("I'm going to modify dch_id: %%d and t_dch_id: %%d", dch_id, t_dch_id);
+ */
+
+#.FN_BODY RL-Specific-DCH-Info-Item/dCH-id
+
+%(DEFAULT_BODY)s
+ dch_id = t_dch_id;
+
+#.FN_BODY RL-Specific-DCH-Info-Item
+address dst_addr, null_addr;
+conversation_t *conversation = NULL;
+umts_fp_conversation_info_t *umts_fp_conversation_info;
+int i, j, num_tf;
+
+transportLayerAddress_ipv4 = 0;
+BindingID_port = 0;
+dch_id = 0xFFFFFFFF;
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+
+ /*RBS might sometimes send a nonsens bind, to indicate that no DCH is present*/
+ if(BindingID_port == NBAP_IGNORE_PORT){
+ return offset;
+ }
+
+ clear_address(&null_addr);
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ conversation = find_conversation(actx->pinfo->num,&dst_addr,
+ &null_addr, PT_UDP, BindingID_port,
+ 0, NO_ADDR_B|NO_PORT_B);
+
+ if (conversation == NULL) {
+ /* It's not part of any conversation - create a new one. */
+ conversation = conversation_new(actx->pinfo->num, &dst_addr,
+ &null_addr, PT_UDP,BindingID_port ,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+
+ /* Fill in the data */
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_DCH;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
+ umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
+
+ /* DCH's in this flow */
+ umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+
+ /*Save unique UE-identifier */
+ umts_fp_conversation_info->com_context_id = com_context_id;
+
+ /*UPLINK*/
+ /* Set data for First or single channel */
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[dch_id].num_ul_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[dch_id].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[dch_id].num_dl_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[dch_id].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[j];
+ }
+
+ /* Set data for associated DCH's if we have any */
+ i = dch_id;
+ umts_fp_conversation_info->dchs_in_flow_list[0] = dch_id;
+ while(nbap_dch_chnl_info[i].next_dch != 0){
+
+
+ i = nbap_dch_chnl_info[i].next_dch;
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; /*Set transport channel id*/
+
+ /*Setting Logical Channel's for this DCH*/
+ /* Traffic flows per DCH(UL) */
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].num_ul_chans = num_tf = nbap_dch_chnl_info[i].num_ul_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_tf_size[j] = nbap_dch_chnl_info[i].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_num_tbs[j] = nbap_dch_chnl_info[i].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].num_dl_chans = num_tf = nbap_dch_chnl_info[i].num_dl_chans;
+ for (j = 0; j < num_tf; j++) {
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_tf_size[j] = nbap_dch_chnl_info[i].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_num_tbs[j] = nbap_dch_chnl_info[i].dl_chan_num_tbs[j];
+ }
+
+ }
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
+
+ nbap_debug("Frame %%u RL-Specific-DCH-Info-Item Start", actx->pinfo->num);
+ nbap_debug(" Total no of ch in flow will be: %%d", umts_fp_conversation_info->num_dch_in_flow);
+ nbap_debug("Frame %%u RL-Specific-DCH-Info-Item End", actx->pinfo->num);
+
+ }
+
+
+# FN_BODY RL-Specific-E-DCH-Info
+# %(DEFAULT_BODY)s
+
+
+#.FN_BODY RL-Specific-E-DCH-Information-Item
+address dst_addr, null_addr;
+conversation_t *conversation;
+umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
+nbap_edch_port_info_t *old_info = NULL;
+
+transportLayerAddress_ipv4 = 0;
+BindingID_port = 0;
+
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+ clear_address(&null_addr);
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ conversation = find_conversation(actx->pinfo->num,&dst_addr,
+ &null_addr, PT_UDP, BindingID_port,
+ 0, NO_ADDR_B|NO_PORT_B);
+ if (conversation) {
+ umts_fp_conversation_info = (umts_fp_conversation_info_t*)conversation_get_proto_data(conversation, proto_fp);
+ }
+
+ /* We must also check if this port is about to be overriden, if that's the case we
+ * might already have a DCH entry on this port which should be overwritten
+ */
+ if ((conversation == NULL) || (umts_fp_conversation_info && umts_fp_conversation_info->channel == CHANNEL_DCH)) {
+
+
+
+ /* It's not part of any conversation - create a new one. */
+ conversation = conversation_new(actx->pinfo->num, &dst_addr,
+ &null_addr, PT_UDP,BindingID_port ,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /* Fill in the data */
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_EDCH;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
+ umts_fp_conversation_info->crnc_port = BindingID_port;
+
+
+ umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
+
+
+ if(crcn_context_present){
+ umts_fp_conversation_info->com_context_id = com_context_id;
+ }else{
+ nbap_com_context_id_t *cur_val;
+ if((cur_val=(nbap_com_context_id_t *)g_tree_lookup(com_context_map, GINT_TO_POINTER((gint)node_b_com_context_id))) != NULL){
+ umts_fp_conversation_info->com_context_id = cur_val->crnc_context;
+ }else{
+ expert_add_info(actx->pinfo, NULL, &ei_nbap_no_set_comm_context_id);
+ }
+ }
+
+
+ /* Check if we allready have this context */
+ if( (old_info = (nbap_edch_port_info_t *)g_tree_lookup(edch_flow_port_map, GINT_TO_POINTER((gint)com_context_id))) == NULL ){
+ nbap_edch_port_info_t * nbap_edch_port_info;
+
+ nbap_edch_port_info = (nbap_edch_port_info_t *)g_malloc0(sizeof(nbap_edch_port_info_t));
+
+ /*Saving port/flow map based on context id for future reconfigurations*/
+ nbap_edch_port_info->crnc_port[e_dch_macdflow_id] = BindingID_port;
+ /*Ip address might be useful as well*/
+ nbap_edch_port_info->crnc_address = transportLayerAddress_ipv4;
+
+ nbap_debug("Frame %%u RL-Specific-E-DCH-Information-Item Start",
+ actx->pinfo->num);
+
+ nbap_debug(" g_tree_insert(edch_flow_port_map) com_context_id %%u e_dch_macdflow_id %%u IP %%s Port %%u",
+ umts_fp_conversation_info->com_context_id,
+ e_dch_macdflow_id,
+ address_to_str(wmem_packet_scope(), &dst_addr),
+ BindingID_port);
+
+ g_tree_insert(edch_flow_port_map, GINT_TO_POINTER((gint)umts_fp_conversation_info->com_context_id), nbap_edch_port_info);
+ }else{
+
+ nbap_debug(" Insert in existing edch_flow_port_map com_context_id %%u e_dch_macdflow_id %%u IP %%s Port %%u",
+ umts_fp_conversation_info->com_context_id,
+ e_dch_macdflow_id,
+ address_to_str(wmem_packet_scope(), &dst_addr),
+ BindingID_port);
+
+ /* Must be same ADDRESS */
+ old_info->crnc_port[e_dch_macdflow_id] = BindingID_port;
+ }
+
+ /* Set address for collection of DDI entries */
+ copy_address(&(nbap_edch_channel_info[e_dch_macdflow_id].crnc_address),&dst_addr);
+ nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = BindingID_port;
+
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+
+ nbap_debug("Frame %%u RL-Specific-E-DCH-Information-Item End", actx->pinfo->num);
+ }
+ }
+
+
+#.FN_BODY E-DCH-MACdFlow-Specific-InfoItem
+umts_fp_conversation_info_t *p_conv_data = NULL;
+address null_addr;
+conversation_t *p_conv;
+guint32 no_ddi_entries, i;
+
+%(DEFAULT_BODY)s
+ if (actx->pinfo->fd->flags.visited)
+ {
+ return offset;
+ }
+
+ /* Check if we have conversation info */
+ clear_address(&null_addr);
+ p_conv = find_conversation(actx->pinfo->num, &nbap_edch_channel_info[e_dch_macdflow_id].crnc_address, &null_addr,
+ PT_UDP,
+ nbap_edch_channel_info[e_dch_macdflow_id].crnc_port, 0, NO_ADDR_B);
+ if(!p_conv)
+ return offset;
+
+ p_conv_data = (umts_fp_conversation_info_t *)conversation_get_proto_data(p_conv, proto_fp);
+
+ if(!p_conv_data)
+ return offset;
+ no_ddi_entries = p_conv_data->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
+ /*g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u, no_ddi_entries %%u\n",e_dch_macdflow_id,no_ddi_entries);*/
+ for (i = 0; i < no_ddi_entries; i++) {
+ p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
+ p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
+
+ p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
+ /*g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u edch_ddi %%u edch_macd_pdu_size %%u\n",
+ e_dch_macdflow_id,
+ nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i],
+ nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]
+ );*/
+ }
+
+/* copy_address(&(nbap_edch_port_info->crnc_address[e_dch_macdflow_id]),&dst_addr);*/
+ p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+
+ /* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/
+ if( 0 == e_dch_ddi_value ){
+ p_conv_data->edch_type = 1; /* 1 means T2 */
+ }else{
+ /*Value 1-5 means T1*/
+ p_conv_data->edch_type = 0; /* 0 means T1 */
+ }
+ /* use to display e_dch_macdflow_id */
+ p_conv_data->num_dch_in_flow = 1;
+ p_conv_data->dchs_in_flow_list[0] = e_dch_macdflow_id;
+
+#Handle Modified E-DCH Flows
+#.FN_BODY E-DCH-FDD-Information-to-Modify
+
+address dst_addr, null_addr;
+conversation_t *conversation,*old_conversation = NULL;
+umts_fp_conversation_info_t *umts_fp_conversation_info _U_;
+void *conv_proto_data = NULL;
+
+transportLayerAddress_ipv4 = 0;
+BindingID_port = 0;
+
+ %(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+ /*
+ * Basically the idea here is that we create a new converation (Which is ok? maybe?)
+ * And then hijack the old conversation and let lower tree items configure that hijacked data.
+ * */
+ clear_address(&null_addr);
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ old_conversation = find_conversation(actx->pinfo->num,&dst_addr,
+ &null_addr, PT_UDP, BindingID_port,
+ 0, NO_ADDR_B|NO_PORT_B);
+
+ if(old_conversation){
+ nbap_debug("Frame %%u E-DCH-FDD-Information-to-Modify: found old conv on IP %%s Port %%u",
+ actx->pinfo->num,
+ address_to_str(wmem_packet_scope(), &dst_addr),
+ BindingID_port);
+ }else{
+ nbap_debug("Frame %%u E-DCH-FDD-Information-to-Modify: Did not find old conv on IP %%s Port %%u",
+ actx->pinfo->num,
+ address_to_str(wmem_packet_scope(), &dst_addr),
+ BindingID_port);
+ }
+
+ /* It's not part of any conversation - create a new one. */
+ conversation = conversation_new(actx->pinfo->num, &dst_addr,
+ &null_addr, PT_UDP,BindingID_port ,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /* Steal the old information */
+ if (old_conversation) {
+ conv_proto_data = conversation_get_proto_data(old_conversation, proto_fp);
+ if (conv_proto_data)
+ memcpy(umts_fp_conversation_info,conv_proto_data,sizeof(umts_fp_conversation_info_t));
+ }
+ /* Overwrite the data */
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_EDCH;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
+ umts_fp_conversation_info->crnc_port = BindingID_port;
+
+
+ umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
+
+
+ if(crcn_context_present){
+ umts_fp_conversation_info->com_context_id = com_context_id;
+ }else{
+ nbap_com_context_id_t * cur_val;
+ if((cur_val=(nbap_com_context_id_t *)g_tree_lookup(com_context_map, GINT_TO_POINTER((gint)node_b_com_context_id))) != NULL){
+ umts_fp_conversation_info->com_context_id = cur_val->crnc_context;
+ }else{
+ expert_add_info(actx->pinfo, NULL, &ei_nbap_no_set_comm_context_id);
+ }
+ }
+
+ /* Set address for collection of DDI entries */
+ copy_address(&(nbap_edch_channel_info[e_dch_macdflow_id].crnc_address),&dst_addr);
+ nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = BindingID_port;
+
+
+ /*Indicate that the frag table has to be reset*/
+ umts_fp_conversation_info->reset_frag = TRUE;
+
+
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
+
+
+#.FN_BODY E-DCH-MACdFlow-Specific-InfoItem-to-Modify
+guint32 no_ddi_entries, i;
+address null_addr;
+nbap_edch_port_info_t *old_info;
+umts_fp_conversation_info_t *p_conv_data = NULL;
+conversation_t *p_conv;
+
+num_items = 1;
+ %(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited)
+ {
+ return offset;
+ }
+
+ nbap_debug("Frame %%u E-DCH-MACdFlow-Specific-InfoItem-to-Modify",
+ actx->pinfo->num);
+
+ /****** Look up old port and ip information since this is not included in this message ******/
+ /*Find proper communication context ID*/
+ if(crcn_context_present){
+ /*umts_fp_conversation_info->com_context_id = com_context_id;*/
+ }else{
+ nbap_com_context_id_t * cur_val;
+ if((cur_val=(nbap_com_context_id_t *)g_tree_lookup(com_context_map, GINT_TO_POINTER((gint)node_b_com_context_id))) != NULL){
+ com_context_id= cur_val->crnc_context;
+ }else{
+ expert_add_info(actx->pinfo, NULL, &ei_nbap_no_find_comm_context_id);
+ }
+ }
+
+ /*This should not happen*/
+ if(( old_info = (nbap_edch_port_info_t *)g_tree_lookup(edch_flow_port_map, GINT_TO_POINTER((gint)com_context_id))) == NULL ){
+ expert_add_info(actx->pinfo, NULL, &ei_nbap_no_find_port_info);
+ return offset;
+ }
+ nbap_debug(" Found com_context_id %%u", com_context_id);
+
+ /*Set the appropriate port, cheat and use same variable.*/
+ BindingID_port = old_info->crnc_port[e_dch_macdflow_id];
+
+ nbap_debug(" Port %%u loaded from old_info->crnc_port[e_dch_macdflow_id %%u]",
+ BindingID_port,
+ e_dch_macdflow_id);
+
+ /*TODO: Fix this for ipv6 as well!*/
+ transportLayerAddress_ipv4 = old_info->crnc_address;
+
+ /*Do the configurations*/
+ /* Check if we have conversation info */
+ clear_address(&null_addr);
+ p_conv = find_conversation(actx->pinfo->num, &nbap_edch_channel_info[e_dch_macdflow_id].crnc_address, &null_addr,
+ PT_UDP,
+ nbap_edch_channel_info[e_dch_macdflow_id].crnc_port, 0, NO_ADDR_B);
+ if(!p_conv)
+ return offset;
+
+ p_conv_data = (umts_fp_conversation_info_t *)conversation_get_proto_data(p_conv, proto_fp);
+
+ if(!p_conv_data)
+ return offset;
+ no_ddi_entries = p_conv_data->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
+ /*g_print("E-DCH-MACdFlow-MODIFIED-Specific-InfoItem: e_dch_macdflow_id %%u, no_ddi_entries %%u\n",e_dch_macdflow_id,no_ddi_entries);*/
+ for (i = 0; i < no_ddi_entries; i++) {
+ p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
+ p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
+
+ p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
+ /* g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u edch_ddi %%u edch_macd_pdu_size %%u\n",
+ e_dch_macdflow_id,
+ nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i],
+ nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]
+ );*/
+ }
+
+/* copy_address(&(nbap_edch_port_info->crnc_address[e_dch_macdflow_id]),&dst_addr);*/
+ p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+
+ /* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/
+ if( 0 == e_dch_ddi_value ){
+ p_conv_data->edch_type = 1; /* 1 means T2 */
+ }else{
+ /*Value 1-5 means T1*/
+ p_conv_data->edch_type = 0; /* 0 means T1 */
+ }
+ /* use to display e_dch_macdflow_id */
+ p_conv_data->num_dch_in_flow = 1;
+ p_conv_data->dchs_in_flow_list[0] = e_dch_macdflow_id;
+
+
+
+
+#.FN_BODY E-DCH-LogicalChannelToModifyItem
+
+%(DEFAULT_BODY)s
+num_items++;
+
+#.FN_BODY E-DCH-LogicalChannelInformation
+ num_items = 0;
+
+%(DEFAULT_BODY)s
+
+nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items;
+
+#.FN_HDR E-DCH-LogicalChannelInformationItem
+ num_items++;
+
+#.FN_BODY E-DCH-DDI-Value VAL_PTR = &e_dch_ddi_value
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited)
+ {
+ return offset;
+ }
+ if(num_items>0)
+ nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[num_items-1] = e_dch_ddi_value;
+
+#.FN_BODY MACdPDU-Size VAL_PTR = &MACdPDU_Size
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited)
+ {
+ return offset;
+ }
+ if(num_items>0)
+ nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[num_items-1] = MACdPDU_Size;
+
+#.FN_BODY LogicalChannelID VAL_PTR = &logical_channel_id
+ /* Set logical channel id for this entry*/
+%(DEFAULT_BODY)s
+
+ if(num_items>0)
+ nbap_edch_channel_info[e_dch_macdflow_id].lchId[num_items-1] = logical_channel_id;
+
+#.FN_BODY RLC-Mode VAL_PTR = &rlc_mode
+ guint32 rlc_mode;
+
+%(DEFAULT_BODY)s
+ switch(rlc_mode){
+ case 0:
+ /* rLC-AM */
+ nbap_hsdsch_channel_info[hsdsch_macdflow_id].rlc_mode = FP_RLC_AM;
+ break;
+ case 1:
+ /* rLC-UM */
+ nbap_hsdsch_channel_info[hsdsch_macdflow_id].rlc_mode = FP_RLC_UM;
+ break;
+ default:
+ break;
+ }
+
+#.FN_BODY UE-Capability-Information/hSDSCH-Physical-Layer-Category VAL_PTR = &hsdsch_physical_layer_category
+ guint32 hsdsch_physical_layer_category;
+
+%(DEFAULT_BODY)s
+
+ nbap_hsdsch_channel_info[hsdsch_macdflow_id].hsdsch_physical_layer_category = hsdsch_physical_layer_category;
+
+#.FN_BODY HSDSCH-MACdFlows-Information
+
+ int protocol_ie_id;
+ guint32 i;
+ num_items = 0;
+ protocol_ie_id = ProtocolIE_ID;
+
+
+ /*Handle special cases, when the tree is weird, ie. no useful message appears in the tree, like HSDHSCH-Information-FDD */
+ switch(protocol_ie_id){
+ /*This flow must also be added*/
+ case id_HSDSCH_MACdFlows_to_Add:
+ if (!actx->pinfo->fd->flags.visited){
+ /* Set port to zero use that as an indication of whether we have data or not */
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ nbap_hsdsch_channel_info[i].crnc_port = 0;
+ nbap_hsdsch_channel_info[i].rlc_mode = FP_RLC_MODE_UNKNOWN;
+ /*XXX: Added 29 jun*/
+ nbap_hsdsch_channel_info[i].entity = entity_not_specified; /* Maybe this should default to entity = hs*/
+ }
+ }
+%(DEFAULT_BODY)s
+ add_hsdsch_bind(actx->pinfo);
+
+ break;
+ default:
+%(DEFAULT_BODY)s
+ break;
+ }
+
+
+# Reset num_items before calling the sequence
+#.FN_HDR HSDSCH-MACdFlows-to-Delete
+ num_items = 0;
+
+# Make sure num_items isn't 0 when accessing HSDSCH-MACdFlow-ID
+#
+#.FN_HDR HSDSCH-MACdFlows-to-Delete-Item
+ num_items++;
+
+#.FN_HDR PriorityQueue-InfoItem
+ num_items++;
+
+#.FN_HDR PriorityQueue-InfoItem-to-Add
+ num_items = 1;
+
+#.FN_HDR HSDSCH-MACdFlow-Specific-InformationResp-Item
+ num_items++;
+
+#.FN_BODY HSDSCH-MACdFlow-Specific-InfoItem
+
+
+ address dst_addr;
+ transportLayerAddress_ipv4 = 0;
+ BindingID_port = 0;
+ num_items++;
+%(DEFAULT_BODY)s
+
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ /* Set address for collection of HSDSCH entries */
+ copy_address(&(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_address),&dst_addr);
+ nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = BindingID_port;
+
+
+#.FN_BODY MAC-PDU-SizeExtended
+%(DEFAULT_BODY)s
+ if(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port != 0){
+ nbap_hsdsch_channel_info[hsdsch_macdflow_id].entity = ehs;
+ }
+
+
+#.FN_BODY HSDSCH-MACdPDUSizeFormat
+/*
+ * Removed 10 Aug. 2012, I'm not sure if this was right, it wrongfully
+ * set some packets as type 2 for HSDHCH modified items.
+ **/
+
+
+ /*
+ * Set the channel entity i.e the type of the hsdsch channels (if this is present entity = ehs)
+ */
+
+/*int i;*/
+
+%(DEFAULT_BODY)s
+ /*for (i = 0; i < maxNrOfMACdFlows; i++) {
+ if (nbap_hsdsch_channel_info[i].crnc_port != 0){
+ nbap_hsdsch_channel_info[i].entity = ehs;
+ }
+
+ }*/
+
+
+
+#.FN_BODY HSDSCH-FDD-Information
+/*
+ * Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data.
+ */
+ address null_addr;
+ conversation_t *conversation = NULL;
+ umts_fp_conversation_info_t *umts_fp_conversation_info;
+ guint32 i;
+
+ if (!actx->pinfo->fd->flags.visited){
+ /* Set port to zero use that as an indication of whether we have data or not */
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ nbap_hsdsch_channel_info[i].crnc_port = 0;
+ nbap_hsdsch_channel_info[i].rlc_mode = FP_RLC_MODE_UNKNOWN;
+ /*XXX: Added 29 jun*/
+ nbap_hsdsch_channel_info[i].entity = entity_not_specified; /* Maybe this should default to entity = hs*/
+ }
+ }
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited){
+ return offset;
+ }
+
+ /* Set port to zero use that as an indication of whether we have data or not */
+ clear_address(&null_addr);
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ if (nbap_hsdsch_channel_info[i].crnc_port != 0){
+ nbap_debug("Frame %%u HSDSCH-MACdFlows-Information:hsdsch_macdflow_id %%u Look for conv on IP %%s Port %%u",
+ actx->pinfo->num,
+ i,
+ address_to_str (wmem_packet_scope(), &(nbap_hsdsch_channel_info[i].crnc_address)),
+ nbap_hsdsch_channel_info[i].crnc_port);
+ conversation = find_conversation(actx->pinfo->num, &(nbap_hsdsch_channel_info[i].crnc_address), &null_addr,
+ PT_UDP,
+ nbap_hsdsch_channel_info[i].crnc_port, 0, NO_ADDR_B);
+
+
+ if (conversation == NULL) {
+ /* It's not part of any conversation - create a new one. */
+ nbap_debug("Frame %%u HSDSCH-MACdFlows-Information: Set up conv on Port %%u", actx->pinfo->num, nbap_hsdsch_channel_info[i].crnc_port);
+ conversation = conversation_new(actx->pinfo->num, &(nbap_hsdsch_channel_info[i].crnc_address),
+ &null_addr, PT_UDP, nbap_hsdsch_channel_info[i].crnc_port,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /* Fill in the HSDSCH relevant data */
+
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_HSDSCH;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
+ umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+
+ /*Added june 3, normally just the iterator variable*/
+ umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+
+ /*Added july 2012*/
+ umts_fp_conversation_info->com_context_id = com_context_id;
+
+ /* Cheat and use the DCH entries */
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+
+ /*XXX: Is this craziness, what is physical_layer? */
+ if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
+
+ if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){
+ umts_fp_conversation_info->hsdsch_entity = ehs;
+ }else{
+ umts_fp_conversation_info->hsdsch_entity = hs;
+ }
+ }else{
+ umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ }
+ umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
+ }
+ }
+ }
+
+#.FN_BODY HSDSCH-MACdFlow-Specific-InfoItem-to-Modify
+ address dst_addr;
+ transportLayerAddress_ipv4 = 0;
+ BindingID_port = 0;
+ num_items++;
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ /* Set address for collection of HSDSCH entries */
+ copy_address(&(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_address),&dst_addr);
+ nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = BindingID_port;
+
+
+#.FN_BODY HSDSCH-Information-to-Modify
+/*
+ * This is pretty much the same like if we setup a previous flow
+ */
+
+/*
+ * Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data.
+ */
+ address null_addr;
+ conversation_t *conversation = NULL;
+ umts_fp_conversation_info_t *umts_fp_conversation_info;
+ guint32 i;
+
+ if (!actx->pinfo->fd->flags.visited){
+ /* Set port to zero use that as an indication of whether we have data or not */
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ nbap_hsdsch_channel_info[i].crnc_port = 0;
+ nbap_hsdsch_channel_info[i].rlc_mode = FP_RLC_MODE_UNKNOWN;
+ /*XXX: Added 29 jun*/
+ nbap_hsdsch_channel_info[i].entity = entity_not_specified; /* Maybe this should default to entity = hs*/
+ }
+ }
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited){
+ return offset;
+ }
+
+ /* Set port to zero use that as an indication of whether we have data or not */
+ clear_address(&null_addr);
+
+ nbap_debug("Frame %%u HSDSCH-MACdFlows-Information Start",
+ actx->pinfo->num);
+
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ if (nbap_hsdsch_channel_info[i].crnc_port != 0){
+ nbap_debug(" hsdsch_macdflow_id %%u Look for conv on IP %%s Port %%u",
+ i,
+ address_to_str (wmem_packet_scope(), &(nbap_hsdsch_channel_info[i].crnc_address)),
+ nbap_hsdsch_channel_info[i].crnc_port);
+ conversation = find_conversation(actx->pinfo->num, &(nbap_hsdsch_channel_info[i].crnc_address), &null_addr,
+ PT_UDP,
+ nbap_hsdsch_channel_info[i].crnc_port, 0, NO_ADDR_B);
+
+
+ if (conversation == NULL) {
+ /* It's not part of any conversation - create a new one. */
+ nbap_debug(" Set up conv on Port %%u", nbap_hsdsch_channel_info[i].crnc_port);
+
+ conversation = conversation_new(actx->pinfo->num, &(nbap_hsdsch_channel_info[i].crnc_address),
+ &null_addr, PT_UDP, nbap_hsdsch_channel_info[i].crnc_port,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /* Fill in the HSDSCH relevant data */
+
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_HSDSCH;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
+ umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+
+ /*Added june 3, normally just the iterator variable*/
+ umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+
+ /*Added july 2012*/
+ umts_fp_conversation_info->com_context_id = com_context_id;
+
+ /* Cheat and use the DCH entries */
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+
+ /*XXX: Is this craziness, what is physical_layer? */
+ if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
+
+ if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){
+ umts_fp_conversation_info->hsdsch_entity = ehs;
+ }else{
+ umts_fp_conversation_info->hsdsch_entity = hs;
+ }
+ }else{
+ umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ }
+
+ umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
+
+ /*Indicate that the frag table has to be reset*/
+ umts_fp_conversation_info->reset_frag = TRUE;
+
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
+ }
+ }
+ nbap_debug("Frame %%u HSDSCH-MACdFlows-Information End",
+ actx->pinfo->num);
+
+ }
+
+#.FN_BODY Common-MACFlow-ID VAL_PTR = &common_macdflow_id
+
+%(DEFAULT_BODY)s
+
+
+/*hsdsch_macdflow_ids[num_items-1] = hsdsch_macdflow_id;*/
+/*THIS STUFF IST NOT DONE YET!*/
+#.FN_BODY CommonMACFlow-Specific-InfoItem
+ address dst_addr;
+ transportLayerAddress_ipv4 = 0;
+ BindingID_port = 0;
+ num_items++;
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
+ {
+ return offset;
+ }
+
+ set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
+
+ /* Set address for collection of common entries */
+ copy_address(&(nbap_common_channel_info[common_macdflow_id].crnc_address),&dst_addr);
+ nbap_common_channel_info[common_macdflow_id].crnc_port = BindingID_port;
+
+
+#.FN_BODY HSDSCH-Common-System-InformationFDD
+/*
+ * 5.1.6 High Speed Downlink Shared Channels
+ * The Data Transfer procedure is used to transfer a HS-DSCH DATA FRAME (TYPE 1, TYPE 2 [FDD and 1.28Mcps
+ * TDD - or TYPE3]) from the CRNC to a Node B. HS-DSCH DATA FRAME TYPE 2 is selected if the IE HS-DSCH
+ * MAC-d PDU Size Format in NBAP (TS 25.433 [6]) is present and set to "Flexible MAC-d PDU Size" [FDD and
+ * 1.28Mcps TDD - or if the IE HS-DSCH Common System Information is present and the UE is in Cell_FACH state. HS-
+ * DSCH DATA FRAME TYPE 3 is selected if the IE HS-DSCH Paging System Information in NBAP (TS 25.433 [6]) is
+ * present and the UE is in Cell_PCH state or URA_PCH state]. HS-DSCH DATA FRAME TYPE 1 is selected in any
+ * other case.
+ */
+umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
+address null_addr;
+conversation_t *conversation = NULL;
+
+int i;
+
+ if (!actx->pinfo->fd->flags.visited){
+ /* Set port to zero use that as an indication of whether we have data or not */
+ for (i = 0; i < maxNrOfCommonMACFlows; i++) {
+ nbap_common_channel_info[i].crnc_port = 0;
+ nbap_common_channel_info[i].rlc_mode = FP_RLC_MODE_UNKNOWN;
+
+ }
+
+ }
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited){
+ return offset;
+ }
+ /* Set port to zero use that as an indication of whether we have data or not */
+ clear_address(&null_addr);
+ for (i = 0; i < maxNrOfCommonMACFlows; i++) {
+ if (nbap_common_channel_info[i].crnc_port != 0){
+
+ conversation = find_conversation(actx->pinfo->num, &(nbap_common_channel_info[i].crnc_address), &null_addr,
+ PT_UDP,
+ nbap_common_channel_info[i].crnc_port, 0, NO_ADDR_B);
+
+ if (conversation == NULL) {
+ conversation = conversation_new(actx->pinfo->num, &(nbap_common_channel_info[i].crnc_address),
+ &null_addr, PT_UDP, nbap_common_channel_info[i].crnc_port,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+ /*Set NBAP configuration to lower layers*/
+ if(actx->pinfo->link_dir==P2P_DIR_DL){
+
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /*Select frame type = 3 according to paragraph 5.1.6 in 3GPP TS 25.435*/
+ umts_fp_conversation_info->channel = CHANNEL_HSDSCH_COMMON;
+ umts_fp_conversation_info->division = Division_FDD;
+
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_common_channel_info[i].crnc_address);
+ umts_fp_conversation_info->crnc_port = nbap_common_channel_info[i].crnc_port;
+
+ /*umts_fp_conversation_info->hsdsch_macdflow_id = i ;*/ /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+ umts_fp_conversation_info->common_macdflow_id = common_macdflow_id;
+
+ umts_fp_conversation_info->hsdsch_entity = ehs;
+
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
+
+ }
+
+
+ }
+
+ }
+#This guy should perhaps also be impletemented, hsdsch frame type 3
+#.FN_BODY HSDSCH-Paging-System-InformationFDD
+ /*
+ g_warning("HS-DSCH Type 3 NOT Implemented!");
+ */
+%(DEFAULT_BODY)s
+
+#
+#Routines for figuring out a unique UE identification number (to track flows over changing channels)
+#
+
+#.FN_BODY CRNC-CommunicationContextID VAL_PTR = &com_context_id
+%(DEFAULT_BODY)s
+crcn_context_present = TRUE;
+
+#.FN_BODY NodeB-CommunicationContextID VAL_PTR = &node_b_com_context_id
+/*Set up and map that maps Node-B ids to CRNC ids, since often you only have one of them present in nbap*/
+nbap_com_context_id_t *cur_val;
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited){
+ return offset;
+ }
+
+ /*If both are avaible we can update the map*/
+if(crcn_context_present){
+ if( (nbap_com_context_id_t *)g_tree_lookup(com_context_map, GINT_TO_POINTER((gint)node_b_com_context_id)) == NULL ){
+
+ cur_val = g_new(nbap_com_context_id_t,1);
+ cur_val->crnc_context = com_context_id;
+ cur_val->frame_num = actx->pinfo->num;
+ g_tree_insert(com_context_map, GINT_TO_POINTER((gint)node_b_com_context_id), cur_val);
+ com_context_id = -1;
+ }
+ }
+
+#.FN_BODY HSDSCH-RNTI VAL_PTR = &hrnti
+umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
+address null_addr;
+conversation_t *conversation = NULL;
+int i;
+
+%(DEFAULT_BODY)s
+
+ if (actx->pinfo->fd->flags.visited){
+ return offset;
+ }
+
+ /*Find the conversations assoicated with the HS-DSCH flows in this packet and set proper H-RNTI*/
+ clear_address(&null_addr);
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ if (nbap_hsdsch_channel_info[i].crnc_port != 0){
+ conversation = find_conversation(actx->pinfo->num, &(nbap_hsdsch_channel_info[i].crnc_address), &null_addr,
+ PT_UDP,
+ nbap_hsdsch_channel_info[i].crnc_port, 0, NO_ADDR_B);
+ if(conversation != NULL){
+ umts_fp_conversation_info = (umts_fp_conversation_info_t *)conversation_get_proto_data(conversation, proto_fp);
+ DISSECTOR_ASSERT(umts_fp_conversation_info != NULL);
+ umts_fp_conversation_info->hrnti = hrnti;
+ }
+ }
+ }
+
+#.FN_BODY RadioLinkReconfigurationCommit
+/*
+ * Here we need to signal the CFN value, down to FP so
+ * that lowert layers know when a reconfiguration becomes active
+ * */
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY CFN VAL_PTR = &cfn
+%(DEFAULT_BODY)s
+
+#.REGISTER
+
+#NBAP-PROTOCOL-IES
+TUTRANGPSMeasurementValueInformation N nbap.ies id-TUTRANGPSMeasurementValueInformation
+SFNSFNMeasurementValueInformation N nbap.ies id-SFNSFNMeasurementValueInformation
+TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue N nbap.ies id-TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmission
+HS-DSCHRequiredPower N nbap.ies id-HS-DSCHRequiredPowerValueInformation
+HS-DSCHProvidedBitRate N nbap.ies id-HS-DSCHProvidedBitRateValueInformation
+Transmitted-Carrier-Power-For-CellPortion-Value N nbap.ies id-Transmitted-Carrier-Power-For-CellPortion-Value
+Received-total-wide-band-power-For-CellPortion-Value N nbap.ies id-Received-total-wide-band-power-For-CellPortion-Value
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue N nbap.ies id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortionValue
+UpPTSInterferenceValue N nbap.ies id-UpPTSInterferenceValue
+DLTransmissionBranchLoadValue N nbap.ies id-DLTransmissionBranchLoadValue
+HS-DSCHRequiredPowerValueInformation-For-CellPortion N nbap.ies id-HS-DSCHRequiredPowerValueInformation-For-CellPortion
+HS-DSCHProvidedBitRateValueInformation-For-CellPortion N nbap.ies id-HS-DSCHProvidedBitRateValueInformation-For-CellPortion
+E-DCHProvidedBitRate N nbap.ies id-E-DCHProvidedBitRateValueInformation
+E-DCH-Non-serving-Relative-Grant-Down-Commands N nbap.ies id-E-DCH-Non-serving-Relative-Grant-Down-CommandsValue
+Received-Scheduled-EDCH-Power-Share-Value N nbap.ies id-Received-Scheduled-EDCH-Power-Share-Value
+Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value N nbap.ies id-Received-Scheduled-EDCH-Power-Share-For-CellPortion-Value
+TUTRANGANSSMeasurementValueInformation N nbap.ies id-TUTRANGANSSMeasurementValueInformation
+Rx-Timing-Deviation-Value-LCR N nbap.ies id-Rx-Timing-Deviation-Value-LCR
+Angle-Of-Arrival-Value-LCR N nbap.ies id-Angle-Of-Arrival-Value-LCR
+HS-SICH-Reception-Quality-Value N nbap.ies id-HS-SICH-Reception-Quality
+Best-Cell-Portions-Value N nbap.ies id-Best-Cell-Portions-Value
+Rx-Timing-Deviation-Value-768 N nbap.ies id-Rx-Timing-Deviation-Value-768
+Rx-Timing-Deviation-Value-384-ext N nbap.ies id-Rx-Timing-Deviation-Value-384-ext
+Extended-Round-Trip-Time-Value N nbap.ies id-Extended-Round-Trip-Time-Value
+NeighbouringTDDCellMeasurementInformationLCR N nbap.ies id-neighbouringTDDCellMeasurementInformationLCR
+NeighbouringTDDCellMeasurementInformation768 N nbap.ies id-neighbouringTDDCellMeasurementInformation768
+ReportCharacteristicsType-OnModification N nbap.ies id-ReportCharacteristicsType-OnModification
+Transmitted-Carrier-Power-Value N nbap.ies id-Transmitted-Carrier-Power-For-CellPortion
+Received-total-wide-band-power-Value-IncrDecrThres N nbap.ies id-Received-total-wide-band-power-For-CellPortion
+TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue N nbap.ies id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCH-E-RGCHOrE-HICHTransmissionCellPortion
+RSEPS-Value-IncrDecrThres N nbap.ies id-Received-Scheduled-EDCH-Power-Share
+TUTRANGPSMeasurementThresholdInformation N nbap.ies id-TUTRANGPSMeasurementThresholdInformation
+SFNSFNMeasurementThresholdInformation N nbap.ies id-SFNSFNMeasurementThresholdInformation
+HS-SICH-Reception-Quality-Measurement-Value N nbap.ies id-HS-SICH-Reception-Quality-Measurement-Value
+HS-DSCHRequiredPowerValue N nbap.ies id-HS-DSCHRequiredPowerValue
+HS-DSCHRequiredPowerValue N nbap.ies id-HS-DSCHRequiredPowerValue-For-Cell-Portion
+RSEPS-Value-IncrDecrThres N nbap.ies id-Received-Scheduled-EDCH-Power-Share-For-CellPortion
+HS-SICH-Reception-Quality-Measurement-Value N nbap.ies id-Additional-HS-SICH-Reception-Quality-Measurement-Value
+TUTRANGANSSMeasurementThresholdInformation N nbap.ies id-TUTRANGANSSMeasurementThresholdInformation
+C-ID N nbap.ies id-C-ID
+ConfigurationGenerationID N nbap.ies id-ConfigurationGenerationID
+CommonPhysicalChannelType-CTCH-SetupRqstFDD N nbap.ies id-CommonPhysicalChannelType-CTCH-SetupRqstFDD
+FACH-ParametersListIE-CTCH-SetupRqstFDD N nbap.ies id-FACH-ParametersListIE-CTCH-SetupRqstFDD
+PCH-ParametersItem-CTCH-SetupRqstFDD N nbap.ies id-PCH-ParametersItem-CTCH-SetupRqstFDD
+RACH-ParametersItem-CTCH-SetupRqstFDD N nbap.ies id-RACH-ParametersItem-CTCH-SetupRqstFDD
+CommonPhysicalChannelType-CTCH-SetupRqstTDD N nbap.ies id-CommonPhysicalChannelType-CTCH-SetupRqstTDD
+Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD N nbap.ies id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD
+Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD N nbap.ies id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD
+FACH-ParametersListIE-CTCH-SetupRqstTDD N nbap.ies id-FACH-ParametersListIE-CTCH-SetupRqstTDD
+PCH-ParametersItem-CTCH-SetupRqstTDD N nbap.ies id-PCH-ParametersItem-CTCH-SetupRqstTDD
+PICH-ParametersItem-CTCH-SetupRqstTDD N nbap.ies id-PICH-ParametersItem-CTCH-SetupRqstTDD
+PICH-LCR-Parameters-CTCH-SetupRqstTDD N nbap.ies id-PICH-LCR-Parameters-CTCH-SetupRqstTDD
+PRACH-ParametersItem-CTCH-SetupRqstTDD N nbap.ies id-PRACH-ParametersItem-CTCH-SetupRqstTDD
+PRACH-LCR-ParametersList-CTCH-SetupRqstTDD N nbap.ies id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD
+RACH-ParameterItem-CTCH-SetupRqstTDD N nbap.ies id-RACH-ParameterItem-CTCH-SetupRqstTDD
+FACH-CommonTransportChannel-InformationResponse N nbap.ies id-FACH-ParametersList-CTCH-SetupRsp
+CommonTransportChannel-InformationResponse N nbap.ies id-PCH-Parameters-CTCH-SetupRsp
+CommonTransportChannel-InformationResponse N nbap.ies id-RACH-Parameters-CTCH-SetupRsp
+CriticalityDiagnostics N nbap.ies id-CriticalityDiagnostics
+Cause N nbap.ies id-Cause
+CommonPhysicalChannelType-CTCH-ReconfRqstFDD N nbap.ies id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD
+FACH-ParametersListIE-CTCH-ReconfRqstFDD N nbap.ies id-FACH-ParametersListIE-CTCH-ReconfRqstFDD
+PCH-ParametersItem-CTCH-ReconfRqstFDD N nbap.ies id-PCH-ParametersItem-CTCH-ReconfRqstFDD
+PICH-ParametersItem-CTCH-ReconfRqstFDD N nbap.ies id-PICH-ParametersItem-CTCH-ReconfRqstFDD
+PRACH-ParametersListIE-CTCH-ReconfRqstFDD N nbap.ies id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD
+AICH-ParametersListIE-CTCH-ReconfRqstFDD N nbap.ies id-AICH-ParametersListIE-CTCH-ReconfRqstFDD
+Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD N nbap.ies id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD
+PICH-Parameters-CTCH-ReconfRqstTDD N nbap.ies id-PICH-Parameters-CTCH-ReconfRqstTDD
+FACH-ParametersList-CTCH-ReconfRqstTDD N nbap.ies id-FACH-ParametersList-CTCH-ReconfRqstTDD
+PCH-Parameters-CTCH-ReconfRqstTDD N nbap.ies id-PCH-Parameters-CTCH-ReconfRqstTDD
+Secondary-CCPCHListIE-CTCH-ReconfRqstTDD N nbap.ies id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD
+CommonPhysicalChannelID N nbap.ies id-CommonPhysicalChannelID
+BlockingPriorityIndicator N nbap.ies id-BlockingPriorityIndicator
+ShutdownTimer N nbap.ies id-ShutdownTimer
+Start-Of-Audit-Sequence-Indicator N nbap.ies id-Start-Of-Audit-Sequence-Indicator
+End-Of-Audit-Sequence-Indicator N nbap.ies id-End-Of-Audit-Sequence-Indicator
+Cell-InformationList-AuditRsp N nbap.ies id-Cell-InformationList-AuditRsp
+CCP-InformationList-AuditRsp N nbap.ies id-CCP-InformationList-AuditRsp
+Local-Cell-InformationList-AuditRsp N nbap.ies id-Local-Cell-InformationList-AuditRsp
+Local-Cell-Group-InformationList-AuditRsp N nbap.ies id-Local-Cell-Group-InformationList-AuditRsp
+Cell-InformationItem-AuditRsp N nbap.ies id-Cell-InformationItem-AuditRsp
+Common-PhysicalChannel-Status-Information N nbap.ies id-P-SCH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-S-SCH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-P-CPICH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-S-CPICH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-P-CCPCH-Information
+Common-TransportChannel-Status-Information N nbap.ies id-BCH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-S-CCPCH-Information
+Common-TransportChannel-Status-Information N nbap.ies id-PCH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-PICH-Information
+Common-TransportChannel-Status-Information N nbap.ies id-FACH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-PRACH-Information
+Common-TransportChannel-Status-Information N nbap.ies id-RACH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-AICH-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-SCH-Information
+CCP-InformationItem-AuditRsp N nbap.ies id-CCP-InformationItem-AuditRsp
+Common-PhysicalChannel-Status-Information N nbap.ies id-FPACH-LCR-Information-AuditRsp
+Common-PhysicalChannel-Status-Information768 N nbap.ies id-S-CCPCH-768-Information-AuditRsp
+Common-PhysicalChannel-Status-Information768 N nbap.ies id-PRACH-768-Information
+Local-Cell-InformationItem-AuditRsp N nbap.ies id-Local-Cell-InformationItem-AuditRsp
+Local-Cell-Group-InformationItem-AuditRsp N nbap.ies id-Local-Cell-Group-InformationItem-AuditRsp
+Power-Local-Cell-Group-InformationItem-AuditRsp N nbap.ies id-Power-Local-Cell-Group-InformationItem-AuditRsp
+Common-PhysicalChannel-Status-Information N nbap.ies id-PLCCH-Information-AuditRsp
+Common-PhysicalChannel-Status-Information N nbap.ies id-E-RUCCH-Information
+Common-PhysicalChannel-Status-Information768 N nbap.ies id-E-RUCCH-768-Information
+MeasurementID N nbap.ies id-MeasurementID
+CommonMeasurementObjectType-CM-Rqst N nbap.ies id-CommonMeasurementObjectType-CM-Rqst
+CommonMeasurementType N nbap.ies id-CommonMeasurementType
+MeasurementFilterCoefficient N nbap.ies id-MeasurementFilterCoefficient
+ReportCharacteristics N nbap.ies id-ReportCharacteristics
+FNReportingIndicator N nbap.ies id-SFNReportingIndicator
+SFN N nbap.ies id-SFN
+PowerLocalCellGroup-CM-Rqst N nbap.ies id-Power-Local-Cell-Group-choice-CM-Rqst
+CommonMeasurementObjectType-CM-Rsp N nbap.ies id-CommonMeasurementObjectType-CM-Rsp
+PowerLocalCellGroup-CM-Rsp N nbap.ies id-Power-Local-Cell-Group-choice-CM-Rsp
+CommonMeasurementObjectType-CM-Rprt N nbap.ies id-CommonMeasurementObjectType-CM-Rprt
+PowerLocalCellGroup-CM-Rprt N nbap.ies id-Power-Local-Cell-Group-choice-CM-Rprt
+Local-Cell-ID N nbap.ies id-Local-Cell-ID
+T-Cell N nbap.ies id-T-Cell
+UARFCN N nbap.ies id-UARFCNforNu
+UARFCN N nbap.ies id-UARFCNforNd
+MaximumTransmissionPower N nbap.ies id-MaximumTransmissionPower
+Closedlooptimingadjustmentmode N nbap.ies id-Closed-Loop-Timing-Adjustment-Mode
+PrimaryScramblingCode N nbap.ies id-PrimaryScramblingCode
+Synchronisation-Configuration-Cell-SetupRqst N nbap.ies id-Synchronisation-Configuration-Cell-SetupRqst
+DL-TPC-Pattern01Count N nbap.ies id-DL-TPC-Pattern01Count
+PrimarySCH-Information-Cell-SetupRqstFDD N nbap.ies id-PrimarySCH-Information-Cell-SetupRqstFDD
+SecondarySCH-Information-Cell-SetupRqstFDD N nbap.ies id-SecondarySCH-Information-Cell-SetupRqstFDD
+PrimaryCPICH-Information-Cell-SetupRqstFDD N nbap.ies id-PrimaryCPICH-Information-Cell-SetupRqstFDD
+SecondaryCPICH-InformationList-Cell-SetupRqstFDD N nbap.ies id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD
+PrimaryCCPCH-Information-Cell-SetupRqstFDD N nbap.ies id-PrimaryCCPCH-Information-Cell-SetupRqstFDD
+Limited-power-increase-information-Cell-SetupRqstFDD N nbap.ies id-Limited-power-increase-information-Cell-SetupRqstFDD
+SecondaryCPICH-InformationItem-Cell-SetupRqstFDD N nbap.ies id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD
+CellPortion-InformationItem-Cell-SetupRqstFDD N nbap.ies id-CellPortion-InformationItem-Cell-SetupRqstFDD
+UARFCN N nbap.ies id-UARFCNforNt
+CellParameterID N nbap.ies id-CellParameterID
+TransmissionDiversityApplied N nbap.ies id-TransmissionDiversityApplied
+SyncCase N nbap.ies id-SyncCase
+ConstantValue N nbap.ies id-DPCHConstant
+ConstantValue N nbap.ies id-PUSCHConstant
+ConstantValue N nbap.ies id-PRACHConstant
+TimingAdvanceApplied N nbap.ies id-TimingAdvanceApplied
+SCH-Information-Cell-SetupRqstTDD N nbap.ies id-SCH-Information-Cell-SetupRqstTDD
+PCCPCH-Information-Cell-SetupRqstTDD N nbap.ies id-PCCPCH-Information-Cell-SetupRqstTDD
+TimeSlotConfigurationList-Cell-SetupRqstTDD N nbap.ies id-TimeSlotConfigurationList-Cell-SetupRqstTDD
+SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH N nbap.ies id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH
+Synchronisation-Configuration-Cell-ReconfRqst N nbap.ies id-Synchronisation-Configuration-Cell-ReconfRqst
+PrimarySCH-Information-Cell-ReconfRqstFDD N nbap.ies id-PrimarySCH-Information-Cell-ReconfRqstFDD
+SecondarySCH-Information-Cell-ReconfRqstFDD N nbap.ies id-SecondarySCH-Information-Cell-ReconfRqstFDD
+PrimaryCPICH-Information-Cell-ReconfRqstFDD N nbap.ies id-PrimaryCPICH-Information-Cell-ReconfRqstFDD
+SecondaryCPICH-InformationList-Cell-ReconfRqstFDD N nbap.ies id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD
+PrimaryCCPCH-Information-Cell-ReconfRqstFDD N nbap.ies id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD
+SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD N nbap.ies id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD
+CellPortion-InformationItem-Cell-ReconfRqstFDD N nbap.ies id-CellPortion-InformationItem-Cell-ReconfRqstFDD
+SCH-Information-Cell-ReconfRqstTDD N nbap.ies id-SCH-Information-Cell-ReconfRqstTDD
+PCCPCH-Information-Cell-ReconfRqstTDD N nbap.ies id-PCCPCH-Information-Cell-ReconfRqstTDD
+TimeSlotConfigurationList-Cell-ReconfRqstTDD N nbap.ies id-TimeSlotConfigurationList-Cell-ReconfRqstTDD
+IndicationType-ResourceStatusInd N nbap.ies id-IndicationType-ResourceStatusInd
+Local-Cell-InformationItem-ResourceStatusInd N nbap.ies id-Local-Cell-InformationItem-ResourceStatusInd
+Local-Cell-Group-InformationItem-ResourceStatusInd N nbap.ies id-Local-Cell-Group-InformationItem-ResourceStatusInd
+Power-Local-Cell-Group-InformationItem-ResourceStatusInd N nbap.ies id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd
+Local-Cell-InformationItem2-ResourceStatusInd N nbap.ies id-Local-Cell-InformationItem2-ResourceStatusInd
+Local-Cell-Group-InformationItem2-ResourceStatusInd N nbap.ies id-Local-Cell-Group-InformationItem2-ResourceStatusInd
+Power-Local-Cell-Group-InformationItem2-ResourceStatusInd N nbap.ies id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd
+CCP-InformationItem-ResourceStatusInd N nbap.ies id-CCP-InformationItem-ResourceStatusInd
+Cell-InformationItem-ResourceStatusInd N nbap.ies id-Cell-InformationItem-ResourceStatusInd
+Common-PhysicalChannel-Status-Information N nbap.ies id-FPACH-LCR-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-DwPCH-LCR-Information
+Common-PhysicalChannel-Status-Information N nbap.ies id-PLCCH-Information-ResourceStatusInd
+Common-PhysicalChannel-Status-Information768 N nbap.ies id-S-CCPCH-768-Information-ResourceStatusInd
+BCCH-ModificationTime N nbap.ies id-BCCH-ModificationTime
+MIB-SB-SIB-InformationList-SystemInfoUpdateRqst N nbap.ies id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst
+SegmentInformationListIE-SystemInfoUpdate N nbap.ies id-SegmentInformationListIE-SystemInfoUpdate
+CRNC-CommunicationContextID N nbap.ies id-CRNC-CommunicationContextID
+UL-DPCH-Information-RL-SetupRqstFDD N nbap.ies id-UL-DPCH-Information-RL-SetupRqstFDD
+DL-DPCH-Information-RL-SetupRqstFDD N nbap.ies id-DL-DPCH-Information-RL-SetupRqstFDD
+DCH-FDD-Information N nbap.ies id-DCH-FDD-Information
+RL-InformationList-RL-SetupRqstFDD N nbap.ies id-RL-InformationList-RL-SetupRqstFDD
+Transmission-Gap-Pattern-Sequence-Information N nbap.ies id-Transmission-Gap-Pattern-Sequence-Information
+Active-Pattern-Sequence-Information N nbap.ies id-Active-Pattern-Sequence-Information
+RL-InformationItem-RL-SetupRqstFDD N nbap.ies id-RL-InformationItem-RL-SetupRqstFDD
+UL-CCTrCH-InformationList-RL-SetupRqstTDD N nbap.ies id-UL-CCTrCH-InformationList-RL-SetupRqstTDD
+DL-CCTrCH-InformationList-RL-SetupRqstTDD N nbap.ies id-DL-CCTrCH-InformationList-RL-SetupRqstTDD
+DCH-TDD-Information N nbap.ies id-DCH-TDD-Information
+DSCH-TDD-Information N nbap.ies id-DSCH-TDD-Information
+USCH-Information N nbap.ies id-USCH-Information
+RL-Information-RL-SetupRqstTDD N nbap.ies id-RL-Information-RL-SetupRqstTDD
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD N nbap.ies id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD
+UL-DPCH-InformationItem-RL-SetupRqstTDD N nbap.ies id-UL-DPCH-InformationList-RL-SetupRqstTDD
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD N nbap.ies id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD
+DL-DPCH-InformationItem-RL-SetupRqstTDD N nbap.ies id-DL-DPCH-InformationList-RL-SetupRqstTDD
+NodeB-CommunicationContextID N nbap.ies id-NodeB-CommunicationContextID
+CommunicationControlPortID N nbap.ies id-CommunicationControlPortID
+RL-InformationResponseList-RL-SetupRspFDD N nbap.ies id-RL-InformationResponseList-RL-SetupRspFDD
+RL-InformationResponseItem-RL-SetupRspFDD N nbap.ies id-RL-InformationResponseItem-RL-SetupRspFDD
+RL-InformationResponse-RL-SetupRspTDD N nbap.ies id-RL-InformationResponse-RL-SetupRspTDD
+DCH-InformationResponse N nbap.ies id-DCH-InformationResponse
+DSCH-InformationResponse N nbap.ies id-DSCH-InformationResponse
+USCH-InformationResponse N nbap.ies id-USCH-InformationResponse
+CauseLevel-RL-SetupFailureFDD N nbap.ies id-CauseLevel-RL-SetupFailureFDD
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD N nbap.ies id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD
+Successful-RL-InformationRespItem-RL-SetupFailureFDD N nbap.ies id-Successful-RL-InformationRespItem-RL-SetupFailureFDD
+CauseLevel-RL-SetupFailureTDD N nbap.ies id-CauseLevel-RL-SetupFailureTDD
+Unsuccessful-RL-InformationResp-RL-SetupFailureTDD N nbap.ies id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD
+Compressed-Mode-Deactivation-Flag N nbap.ies id-Compressed-Mode-Deactivation-Flag
+RL-InformationList-RL-AdditionRqstFDD N nbap.ies id-RL-InformationList-RL-AdditionRqstFDD
+RL-InformationItem-RL-AdditionRqstFDD N nbap.ies id-RL-InformationItem-RL-AdditionRqstFDD
+UL-CCTrCH-InformationList-RL-AdditionRqstTDD N nbap.ies id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD
+DL-CCTrCH-InformationList-RL-AdditionRqstTDD N nbap.ies id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD
+RL-Information-RL-AdditionRqstTDD N nbap.ies id-RL-Information-RL-AdditionRqstTDD
+UL-DPCH-InformationItem-RL-AdditionRqstTDD N nbap.ies id-UL-DPCH-InformationItem-RL-AdditionRqstTDD
+DL-DPCH-InformationItem-RL-AdditionRqstTDD N nbap.ies id-DL-DPCH-InformationItem-RL-AdditionRqstTDD
+RL-InformationResponseList-RL-AdditionRspFDD N nbap.ies id-RL-InformationResponseList-RL-AdditionRspFDD
+RL-InformationResponseItem-RL-AdditionRspFDD N nbap.ies id-RL-InformationResponseItem-RL-AdditionRspFDD
+RL-InformationResponse-RL-AdditionRspTDD N nbap.ies id-RL-InformationResponse-RL-AdditionRspTDD
+CauseLevel-RL-AdditionFailureFDD N nbap.ies id-CauseLevel-RL-AdditionFailureFDD
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD N nbap.ies id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD
+Successful-RL-InformationRespItem-RL-AdditionFailureFDD N nbap.ies id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD
+CauseLevel-RL-AdditionFailureTDD N nbap.ies id-CauseLevel-RL-AdditionFailureTDD
+Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD N nbap.ies id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD
+UL-DPCH-Information-RL-ReconfPrepFDD N nbap.ies id-UL-DPCH-Information-RL-ReconfPrepFDD
+DL-DPCH-Information-RL-ReconfPrepFDD N nbap.ies id-DL-DPCH-Information-RL-ReconfPrepFDD
+FDD-DCHs-to-Modify N nbap.ies id-FDD-DCHs-to-Modify
+DCH-FDD-Information N nbap.ies id-DCHs-to-Add-FDD
+DCH-DeleteList-RL-ReconfPrepFDD N nbap.ies id-DCH-DeleteList-RL-ReconfPrepFDD
+RL-InformationList-RL-ReconfPrepFDD N nbap.ies id-RL-InformationList-RL-ReconfPrepFDD
+RL-InformationItem-RL-ReconfPrepFDD N nbap.ies id-RL-InformationItem-RL-ReconfPrepFDD
+UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD
+UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD
+UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD
+TDD-DCHs-to-Modify N nbap.ies id-TDD-DCHs-to-Modify
+DCH-TDD-Information N nbap.ies id-DCHs-to-Add-TDD
+DCH-DeleteList-RL-ReconfPrepTDD N nbap.ies id-DCH-DeleteList-RL-ReconfPrepTDD
+DSCH-Information-ModifyList-RL-ReconfPrepTDD N nbap.ies id-DSCH-Information-ModifyList-RL-ReconfPrepTDD
+DSCH-TDD-Information N nbap.ies id-DSCHs-to-Add-TDD
+DSCH-Information-DeleteList-RL-ReconfPrepTDD N nbap.ies id-DSCH-Information-DeleteList-RL-ReconfPrepTDD
+USCH-Information-ModifyList-RL-ReconfPrepTDD N nbap.ies id-USCH-Information-ModifyList-RL-ReconfPrepTDD
+USCH-Information N nbap.ies id-USCH-Information-Add
+USCH-Information-DeleteList-RL-ReconfPrepTDD N nbap.ies id-USCH-Information-DeleteList-RL-ReconfPrepTDD
+RL-Information-RL-ReconfPrepTDD N nbap.ies id-RL-Information-RL-ReconfPrepTDD
+UL-DPCH-InformationAddItem-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD
+UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD
+UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD
+DL-DPCH-InformationAddItem-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD
+DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD
+DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD
+RL-InformationResponseList-RL-ReconfReady N nbap.ies id-RL-InformationResponseList-RL-ReconfReady
+RL-InformationResponseItem-RL-ReconfReady N nbap.ies id-RL-InformationResponseItem-RL-ReconfReady
+CauseLevel-RL-ReconfFailure N nbap.ies id-CauseLevel-RL-ReconfFailure
+RL-ReconfigurationFailureItem-RL-ReconfFailure N nbap.ies id-RL-ReconfigurationFailureItem-RL-ReconfFailure
+CFN N nbap.ies id-CFN
+UL-DPCH-Information-RL-ReconfRqstFDD N nbap.ies id-UL-DPCH-Information-RL-ReconfRqstFDD
+DL-DPCH-Information-RL-ReconfRqstFDD N nbap.ies id-DL-DPCH-Information-RL-ReconfRqstFDD
+DCH-DeleteList-RL-ReconfRqstFDD N nbap.ies id-DCH-DeleteList-RL-ReconfRqstFDD
+RL-InformationList-RL-ReconfRqstFDD N nbap.ies id-RL-InformationList-RL-ReconfRqstFDD
+RL-InformationItem-RL-ReconfRqstFDD N nbap.ies id-RL-InformationItem-RL-ReconfRqstFDD
+UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD N nbap.ies id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD
+UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD N nbap.ies id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD
+DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD N nbap.ies id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD
+DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD N nbap.ies id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD
+DCH-DeleteList-RL-ReconfRqstTDD N nbap.ies id-DCH-DeleteList-RL-ReconfRqstTDD
+RL-Information-RL-ReconfRqstTDD N nbap.ies id-RL-Information-RL-ReconfRqstTDD
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD N nbap.ies id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD
+UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD N nbap.ies id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD N nbap.ies id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD
+DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD N nbap.ies id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD
+RL-InformationResponseList-RL-ReconfRsp N nbap.ies id-RL-InformationResponseList-RL-ReconfRsp
+RL-InformationResponseItem-RL-ReconfRsp N nbap.ies id-RL-InformationResponseItem-RL-ReconfRsp
+RL-informationList-RL-DeletionRqst N nbap.ies id-RL-informationList-RL-DeletionRqst
+RL-informationItem-RL-DeletionRqst N nbap.ies id-RL-informationItem-RL-DeletionRqst
+PowerAdjustmentType N nbap.ies id-PowerAdjustmentType
+DL-Power N nbap.ies id-DLReferencePower
+InnerLoopDLPCStatus N nbap.ies id-InnerLoopDLPCStatus
+DL-ReferencePowerInformationList-DL-PC-Rqst N nbap.ies id-DLReferencePowerList-DL-PC-Rqst
+MaxAdjustmentStep N nbap.ies id-MaxAdjustmentStep
+AdjustmentPeriod N nbap.ies id-AdjustmentPeriod
+ScaledAdjustmentRatio N nbap.ies id-AdjustmentRatio
+DL-ReferencePowerInformationItem-DL-PC-Rqst N nbap.ies id-DL-ReferencePowerInformationItem-DL-PC-Rqst
+DL-TimeslotISCPInfo N nbap.ies id-TimeslotISCPInfo
+DedicatedMeasurementObjectType-DM-Rqst N nbap.ies id-DedicatedMeasurementObjectType-DM-Rqst
+DedicatedMeasurementType N nbap.ies id-DedicatedMeasurementType
+FNReportingIndicator N nbap.ies id-CFNReportingIndicator
+RL-InformationItem-DM-Rqst N nbap.ies id-RL-InformationItem-DM-Rqst
+DedicatedMeasurementObjectType-DM-Rsp N nbap.ies id-DedicatedMeasurementObjectType-DM-Rsp
+RL-InformationItem-DM-Rsp N nbap.ies id-RL-InformationItem-DM-Rsp
+RL-Set-InformationItem-DM-Rsp N nbap.ies id-RL-Set-InformationItem-DM-Rsp
+DedicatedMeasurementObjectType-DM-Rprt N nbap.ies id-DedicatedMeasurementObjectType-DM-Rprt
+RL-InformationItem-DM-Rprt N nbap.ies id-RL-InformationItem-DM-Rprt
+RL-Set-InformationItem-DM-Rprt N nbap.ies id-RL-Set-InformationItem-DM-Rprt
+Reporting-Object-RL-FailureInd N nbap.ies id-Reporting-Object-RL-FailureInd
+RL-InformationItem-RL-FailureInd N nbap.ies id-RL-InformationItem-RL-FailureInd
+RL-Set-InformationItem-RL-FailureInd N nbap.ies id-RL-Set-InformationItem-RL-FailureInd
+CCTrCH-InformationItem-RL-FailureInd N nbap.ies id-CCTrCH-InformationItem-RL-FailureInd
+RL-InformationList-RL-PreemptRequiredInd N nbap.ies id-RL-InformationList-RL-PreemptRequiredInd
+RL-InformationItem-RL-PreemptRequiredInd N nbap.ies id-RL-InformationItem-RL-PreemptRequiredInd
+Reporting-Object-RL-RestoreInd N nbap.ies id-Reporting-Object-RL-RestoreInd
+RL-InformationItem-RL-RestoreInd N nbap.ies id-RL-InformationItem-RL-RestoreInd
+RL-Set-InformationItem-RL-RestoreInd N nbap.ies id-RL-Set-InformationItem-RL-RestoreInd
+CCTrCH-InformationItem-RL-RestoreInd N nbap.ies id-CCTrCH-InformationItem-RL-RestoreInd
+MaximumTransmissionPower N nbap.ies id-HS-PDSCH-HS-SCCH-E-AGCH-E-RGCH-E-HICH-MaxPower-PSCH-ReconfRqst
+DL-ScramblingCode N nbap.ies id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst
+HS-PDSCH-FDD-Code-Information N nbap.ies id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst
+HS-SCCH-FDD-Code-Information N nbap.ies id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst
+PDSCHSets-AddList-PSCH-ReconfRqst N nbap.ies id-PDSCHSets-AddList-PSCH-ReconfRqst
+PDSCHSets-ModifyList-PSCH-ReconfRqst N nbap.ies id-PDSCHSets-ModifyList-PSCH-ReconfRqst
+PDSCHSets-DeleteList-PSCH-ReconfRqst N nbap.ies id-PDSCHSets-DeleteList-PSCH-ReconfRqst
+PUSCHSets-AddList-PSCH-ReconfRqst N nbap.ies id-PUSCHSets-AddList-PSCH-ReconfRqst
+PUSCHSets-ModifyList-PSCH-ReconfRqst N nbap.ies id-PUSCHSets-ModifyList-PSCH-ReconfRqst
+PUSCHSets-DeleteList-PSCH-ReconfRqst N nbap.ies id-PUSCHSets-DeleteList-PSCH-ReconfRqst
+PDSCH-Information-AddItem-PSCH-ReconfRqst N nbap.ies id-PDSCH-Information-AddListIE-PSCH-ReconfRqst
+PDSCH-Information-ModifyItem-PSCH-ReconfRqst N nbap.ies id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst
+PDSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst N nbap.ies id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst
+PUSCH-Information-AddItem-PSCH-ReconfRqst N nbap.ies id-PUSCH-Information-AddListIE-PSCH-ReconfRqst
+PUSCH-Information-ModifyItem-PSCH-ReconfRqst N nbap.ies id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst
+PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst N nbap.ies id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst
+CauseLevel-PSCH-ReconfFailure N nbap.ies id-CauseLevel-PSCH-ReconfFailure
+Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD N nbap.ies id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD
+Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD N nbap.ies id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD
+ResetIndicator N nbap.ies id-ResetIndicator
+CommunicationContextInfoItem-Reset N nbap.ies id-CommunicationContextInfoItem-Reset
+CommunicationControlPortInfoItem-Reset N nbap.ies id-CommunicationControlPortInfoItem-Reset
+InformationExchangeID N nbap.ies id-InformationExchangeID
+InformationExchangeObjectType-InfEx-Rqst N nbap.ies id-InformationExchangeObjectType-InfEx-Rqst
+InformationType N nbap.ies id-InformationType
+InformationReportCharacteristics N nbap.ies id-InformationReportCharacteristics
+InformationExchangeObjectType-InfEx-Rsp N nbap.ies id-InformationExchangeObjectType-InfEx-Rsp
+InformationExchangeObjectType-InfEx-Rprt N nbap.ies id-InformationExchangeObjectType-InfEx-Rprt
+CellSyncBurstRepetitionPeriod N nbap.ies id-cellSyncBurstRepetitionPeriod
+TimeslotInfo-CellSyncInitiationRqstTDD N nbap.ies id-timeslotInfo-CellSyncInitiationRqstTDD
+CellSyncBurstTransInit-CellSyncInitiationRqstTDD N nbap.ies id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD
+CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD N nbap.ies id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD
+TimeSlot N nbap.ies id-TimeSlot
+NCyclesPerSFNperiod N nbap.ies id-NCyclesPerSFNperiod
+NRepetitionsPerCyclePeriod N nbap.ies id-NRepetitionsPerCyclePeriod
+CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD N nbap.ies id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD
+CellSyncBurstMeasInfo-CellSyncReconfRqstTDD N nbap.ies id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD
+CellSyncBurstMeasInfoListIE-CellSyncReconfRqstTDD N nbap.ies id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD
+SynchronisationReportType N nbap.ies id-SynchronisationReportType
+SynchronisationReportCharacteristics N nbap.ies id-SynchronisationReportCharacteristics
+CellAdjustmentInfo-SyncAdjustmentRqstTDD N nbap.ies id-CellAdjustmentInfo-SyncAdjustmntRqstTDD
+CellAdjustmentInfoItem-SyncAdjustmentRqstTDD N nbap.ies id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD
+CauseLevel-SyncAdjustmntFailureTDD N nbap.ies id-CauseLevel-SyncAdjustmntFailureTDD
+Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD N nbap.ies id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD
+CSBTransmissionID N nbap.ies id-CSBTransmissionID
+CSBMeasurementID N nbap.ies id-CSBMeasurementID
+CellSyncInfo-CellSyncReprtTDD N nbap.ies id-CellSyncInfo-CellSyncReprtTDD
+SyncReportType-CellSyncReprtTDD N nbap.ies id-SyncReportType-CellSyncReprtTDD
+SignallingBearerRequestIndicator N nbap.ies id-SignallingBearerRequestIndicator
+DCH-RearrangeList-Bearer-RearrangeInd N nbap.ies id-DCH-RearrangeList-Bearer-RearrangeInd
+DSCH-RearrangeList-Bearer-RearrangeInd N nbap.ies id-DSCH-RearrangeList-Bearer-RearrangeInd
+USCH-RearrangeList-Bearer-RearrangeInd N nbap.ies id-USCH-RearrangeList-Bearer-RearrangeInd
+HSDSCH-RearrangeList-Bearer-RearrangeInd N nbap.ies id-HSDSCH-RearrangeList-Bearer-RearrangeInd
+DelayedActivationInformationList-RL-ActivationCmdFDD N nbap.ies id-DelayedActivationList-RL-ActivationCmdFDD
+DelayedActivationInformation-RL-ActivationCmdFDD N nbap.ies id-DelayedActivationInformation-RL-ActivationCmdFDD
+DelayedActivationInformationList-RL-ActivationCmdTDD N nbap.ies id-DelayedActivationList-RL-ActivationCmdTDD
+DelayedActivationInformation-RL-ActivationCmdTDD N nbap.ies id-DelayedActivationInformation-RL-ActivationCmdTDD
+HSDSCH-FDD-Update-Information N nbap.ies id-HSDSCH-FDD-Update-Information
+HSDSCH-TDD-Update-Information N nbap.ies id-HSDSCH-TDD-Update-Information
+Modification-Period N nbap.ies id-Modification-Period
+MICH-CFN N nbap.ies id-MICH-CFN
+NI-Information N nbap.ies id-NI-Information-NotifUpdateCmd
+Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp N nbap.ies id-Cell-Frequency-List-InformationItem-LCR-MulFreq-AuditRsp
+Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd N nbap.ies id-Cell-Frequency-List-InformationItem-LCR-MulFreq-ResourceStatusInd
+UPPCH-LCR-InformationItem-AuditRsp N nbap.ies id-UPPCH-LCR-InformationItem-AuditRsp
+UPPCH-LCR-InformationItem-ResourceStatusInd N nbap.ies id-UPPCH-LCR-InformationItem-ResourceStatusInd
+Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD N nbap.ies id-Unsuccessful-UARFCNItem-PSCH-ReconfFailureTDD
+UARFCNSpecificCauseList-PSCH-ReconfFailureTDD N nbap.ies id-UARFCNSpecificCauseList
+MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst N nbap.ies id-MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst
+MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst N nbap.ies id-MultipleFreq-E-PUCH-Timeslot-Information-LCRItem-PSCH-ReconfRqst
+MultipleFreq-E-HICH-TimeOffsetLCR N nbap.ies id-MultipleFreq-E-HICH-TimeOffsetLCR
+PLCCH-parameters N nbap.ies id-PLCCH-parameters
+E-RUCCH-parameters N nbap.ies id-E-RUCCH-parameters
+E-RUCCH-768-parameters N nbap.ies id-E-RUCCH-768-parameters
+Cell-ERNTI-Status-Information N nbap.ies id-Cell-ERNTI-Status-Information
+ERACH-CM-Rqst N nbap.ies id-ERACH-CM-Rqst
+ERACH-CM-Rsp N nbap.ies id-ERACH-CM-Rsp
+ERACH-CM-Rprt N nbap.ies id-ERACH-CM-Rprt
+EDCH-RACH-Report-Value N nbap.ies id-EDCH-RACH-Report-Value
+EDCH-RACH-Report-IncrDecrThres N nbap.ies id-EDCH-RACH-Report-IncrDecrThres
+EDCH-RACH-Report-ThresholdInformation N nbap.ies id-EDCH-RACH-Report-ThresholdInformation
+GANSS-ALM-NAVKeplerianSet N nbap.ies id-GANSS-alm-keplerianNAVAlmanac
+GANSS-ALM-ReducedKeplerianSet N nbap.ies id-GANSS-alm-keplerianReducedAlmanac
+GANSS-ALM-MidiAlmanacSet N nbap.ies id-GANSS-alm-keplerianMidiAlmanac
+GANSS-ALM-GlonassAlmanacSet N nbap.ies id-GANSS-alm-keplerianGLONASS
+GANSS-ALM-ECEFsbasAlmanacSet N nbap.ies id-GANSS-alm-ecefSBASAlmanac
+UL-TimeslotISCP-Value-IncrDecrThres N nbap.ies id-ULTimeslotISCPValue-For-CellPortion
+UpPTSInterferenceValue N nbap.ies id-UpPTSInterferenceValue-For-CellPortion
+Best-Cell-Portions-ValueLCR N nbap.ies id-Best-Cell-Portions-ValueLCR
+Transmitted-Carrier-Power-For-CellPortion-ValueLCR N nbap.ies id-Transmitted-Carrier-Power-For-CellPortion-ValueLCR
+Received-total-wide-band-power-For-CellPortion-ValueLCR N nbap.ies id-Received-total-wide-band-power-For-CellPortion-ValueLCR
+UL-TimeslotISCP-For-CellPortion-Value N nbap.ies id-UL-TimeslotISCP-For-CellPortion-Value
+HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR N nbap.ies id-HS-DSCHRequiredPowerValueInformation-For-CellPortionLCR
+HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR N nbap.ies id-HS-DSCHProvidedBitRateValueInformation-For-CellPortionLCR
+E-DCHProvidedBitRateValueInformation-For-CellPortion N nbap.ies id-E-DCHProvidedBitRateValueInformation-For-CellPortion
+UpPTSInterference-For-CellPortion-Value N nbap.ies id-UpPTSInterference-For-CellPortion-Value
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue N nbap.ies id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortionValue
+TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue N nbap.ies id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCH-HS-SCCH-E-AGCHOrE-HICHTransmissionCellPortion
+ActivationInformation N nbap.ies id-ActivationInformation
+
+#NBAP-PROTOCOL-EXTENSION
+BroadcastCommonTransportBearerIndication N nbap.extension id-BroadcastCommonTransportBearerIndication
+MessageStructure N nbap.extension id-MessageStructure
+TypeOfError N nbap.extension id-TypeOfError
+TnlQos N nbap.extension id-TnlQos
+Unidirectional-DCH-Indicator N nbap.extension id-Unidirectional-DCH-Indicator
+ExtendedPropagationDelay N nbap.extension id-ExtendedPropagationDelay
+DL-Power N nbap.extension id-Initial-DL-Power-TimeslotLCR-InformationItem
+DL-Power N nbap.extension id-Maximum-DL-Power-TimeslotLCR-InformationItem
+DL-Power N nbap.extension id-Minimum-DL-Power-TimeslotLCR-InformationItem
+BindingID N nbap.extension id-bindingID
+TransportLayerAddress N nbap.extension id-transportlayeraddress
+E-DCH-PowerOffset-for-SchedulingInfo N nbap.extension id-E-DCH-PowerOffset-for-SchedulingInfo
+SAT-Info-Almanac-ExtList N nbap.extension id-SAT-Info-Almanac-ExtItem
+HARQ-Preamble-Mode N nbap.extension id-HARQ-Preamble-Mode
+HSDSCH-MACdPDUSizeFormat N nbap.extension id-HSDSCH-MACdPDUSizeFormat
+UL-SIR N nbap.extension id-HSSICH-SIRTarget
+TDD-TPC-UplinkStepSize-LCR N nbap.extension id-HSSICH-TPC-StepSize
+UE-Capability-Information N nbap.extension id-ueCapability-Info
+HS-PDSCH-Code-Change-Grant N nbap.extension id-HS-PDSCH-Code-Change-Grant
+HARQ-Preamble-Mode-Activation-Indicator N nbap.extension id-HARQ-Preamble-Mode-Activation-Indicator
+HSSCCH-Specific-InformationRespListTDD768 N nbap.extension id-hsSCCH-Specific-Information-ResponseTDD768
+MAC-PDU-SizeExtended N nbap.extension id-MaximumMACdPDU-SizeExtended
+HS-SICH-failed N nbap.extension id-Additional-failed-HS-SICH
+HS-SICH-missed N nbap.extension id-Additional-missed-HS-SICH
+HS-SICH-total N nbap.extension id-Additional-total-HS-SICH
+ContinuousPacketConnectivityHS-SCCH-less-Information N nbap.extension id-ContinuousPacketConnectivityHS-SCCH-less-Information
+ContinuousPacketConnectivityHS-SCCH-less-Information-Response N nbap.extension id-ContinuousPacketConnectivityHS-SCCH-less-Information-Response
+HS-PDSCH-Code-Change-Indicator N nbap.extension id-HS-PDSCH-Code-Change-Indicator
+GANSS-Information N nbap.extension id-GANSS-Information
+GANSS-Common-Data N nbap.extension id-GANSS-Common-Data
+GANSS-Generic-Data N nbap.extension id-GANSS-Generic-Data
+SyncDLCodeIdThreInfoLCR N nbap.extension id-SyncDLCodeIdThreInfoLCR
+Extended-RNC-ID N nbap.extension id-Extended-RNC-ID
+LCRTDD-Uplink-Physical-Channel-Capability N nbap.extension id-LCRTDD-uplink-Physical-Channel-Capability
+PLCCHinformation N nbap.extension id-PLCCH-Information-UL-TimeslotLCR-Info
+MICH-Parameters-CTCH-SetupRqstFDD N nbap.extension id-MICH-Parameters-CTCH-SetupRqstFDD
+FDD-S-CCPCH-FrameOffset N nbap.extension id-FDD-S-CCPCH-FrameOffset-CTCH-SetupRqstFDD
+ModulationPO-MBSFN N nbap.extension id-ModulationPO-MBSFN
+Secondary-CCPCH-SlotFormat-Extended N nbap.extension id-Secondary-CCPCH-SlotFormat-Extended
+BroadcastReference N nbap.extension id-BroadcastReference
+TSTD-Indicator N nbap.extension id-Tstd-indicator
+MICH-Parameters-CTCH-SetupRqstTDD N nbap.extension id-MICH-Parameters-CTCH-SetupRqstTDD
+Secondary-CCPCH-parameterExtendedList-CTCH-SetupRqstTDD N nbap.extension id-Additional-S-CCPCH-Parameters-CTCH-SetupRqstTDD
+Secondary-CCPCH-LCR-parameterExtendedList-CTCH-SetupRqstTDD N nbap.extension id-Additional-S-CCPCH-LCR-Parameters-CTCH-SetupRqstTDD
+Secondary-CCPCH-768-parameterList-CTCH-SetupRqstTDD N nbap.extension id-S-CCPCH-768-Parameters-CTCH-SetupRqstTDD
+ModulationMBSFN N nbap.extension id-S-CCPCH-Modulation
+TFCI-Presence N nbap.extension id-tFCI-Presence
+DL-Power N nbap.extension id-maxFACH-Power-LCR-CTCH-SetupRqstTDD
+DL-Power N nbap.extension id-PCH-Power-LCR-CTCH-SetupRqstTDD
+PICH-768-ParametersItem-CTCH-SetupRqstTDD N nbap.extension id-PICH-768-Parameters-CTCH-SetupRqstTDD
+FPACH-LCR-Parameters-CTCH-SetupRqstTDD N nbap.extension id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD
+PRACH-768-ParametersItem-CTCH-SetupRqstTDD N nbap.extension id-PRACH-768-Parameters-CTCH-SetupRqstTDD
+MICH-Parameters-CTCH-ReconfRqstFDD N nbap.extension id-MICH-Parameters-CTCH-ReconfRqstFDD
+FPACH-LCR-Parameters-CTCH-ReconfRqstTDD N nbap.extension id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD
+MICH-Parameters-CTCH-ReconfRqstTDD N nbap.extension id-MICH-Parameters-CTCH-ReconfRqstTDD
+PLCCH-Parameters-CTCH-ReconfRqstTDD N nbap.extension id-PLCCH-Parameters-CTCH-ReconfRqstTDD
+Secondary-CCPCH-768-Parameters-CTCH-ReconfRqstTDD N nbap.extension id-S-CCPCH-768-Parameters-CTCH-ReconfRqstTDD
+PICH-768-Parameters-CTCH-ReconfRqstTDD N nbap.extension id-PICH-768-Parameters-CTCH-ReconfRqstTDD
+MICH-768-Parameters-CTCH-ReconfRqstTDD N nbap.extension id-MICH-768-Parameters-CTCH-ReconfRqstTDD
+Secondary-CCPCH-parameterExtendedList-CTCH-ReconfRqstTDD N nbap.extension id-Additional-S-CCPCH-Parameters-CTCH-ReconfRqstTDD
+Secondary-CCPCH-LCR-parameterExtendedList-CTCH-ReconfRqstTDD N nbap.extension id-Additional-S-CCPCH-LCR-Parameters-CTCH-ReconfRqstTDD
+DL-Power N nbap.extension id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD
+DL-Power N nbap.extension id-PCH-Power-LCR-CTCH-ReconfRqstTDD
+CommonPhysicalChannelID768 N nbap.extension id-CommonPhysicalChannelID768-CommonTrChDeletionReq
+Power-Local-Cell-Group-InformationList-AuditRsp N nbap.extension id-Power-Local-Cell-Group-InformationList-AuditRsp
+FPACH-LCR-InformationList-AuditRsp N nbap.extension id-FPACH-LCR-InformationList-AuditRsp
+Common-PhysicalChannel-Status-Information N nbap.extension id-DwPCH-LCR-InformationList-AuditRsp
+HS-DSCH-Resources-Information-AuditRsp N nbap.extension id-HSDSCH-Resources-Information-AuditRsp
+Common-PhysicalChannel-Status-Information N nbap.extension id-MICH-Information-AuditRsp
+S-CCPCH-InformationListExt-AuditRsp N nbap.extension id-S-CCPCH-InformationListExt-AuditRsp
+S-CCPCH-LCR-InformationListExt-AuditRsp N nbap.extension id-S-CCPCH-LCR-InformationListExt-AuditRsp
+E-DCH-Resources-Information-AuditRsp N nbap.extension id-E-DCH-Resources-Information-AuditRsp
+PLCCH-InformationList-AuditRsp N nbap.extension id-PLCCH-InformationList-AuditRsp
+Common-PhysicalChannel-Status-Information768 N nbap.extension id-P-CCPCH-768-Information-AuditRsp
+S-CCPCH-768-InformationList-AuditRsp N nbap.extension id-S-CCPCH-768-InformationList-AuditRsp
+Common-PhysicalChannel-Status-Information768 N nbap.extension id-PICH-768-Information-AuditRsp
+PRACH-768-InformationList-AuditRsp N nbap.extension id-PRACH-768-InformationList-AuditRsp
+Common-PhysicalChannel-Status-Information768 N nbap.extension id-SCH-768-Information-AuditRsp
+Common-PhysicalChannel-Status-Information768 N nbap.extension id-MICH-768-Information-AuditRsp
+E-RUCCH-InformationList-AuditRsp N nbap.extension id-E-RUCCH-InformationList-AuditRsp
+E-RUCCH-768-InformationList-AuditRsp N nbap.extension id-E-RUCCH-768-InformationList-AuditRsp
+ReferenceClockAvailability N nbap.extension id-ReferenceClockAvailability
+Local-Cell-ID N nbap.extension id-Power-Local-Cell-Group-ID
+HSDPA-Capability N nbap.extension id-HSDPA-Capability
+E-DCH-Capability N nbap.extension id-E-DCH-Capability
+E-DCH-TTI2ms-Capability N nbap.extension id-E-DCH-TTI2ms-Capability
+E-DCH-SF-Capability N nbap.extension id-E-DCH-SF-Capability
+E-DCH-HARQ-Combining-Capability N nbap.extension id-E-DCH-HARQ-Combining-Capability
+E-DCHCapacityConsumptionLaw N nbap.extension id-E-DCH-CapacityConsumptionLaw
+F-DPCH-Capability N nbap.extension id-F-DPCH-Capability
+E-DCH-TDD-CapacityConsumptionLaw N nbap.extension id-E-DCH-TDD-CapacityConsumptionLaw
+ContinuousPacketConnectivityDTX-DRX-Capability N nbap.extension id-ContinuousPacketConnectivityDTX-DRX-Capability
+Max-UE-DTX-Cycle N nbap.extension id-Max-UE-DTX-Cycle
+ContinuousPacketConnectivityHS-SCCH-less-Capability N nbap.extension id-ContinuousPacketConnectivityHS-SCCH-less-Capability
+MIMO-Capability N nbap.extension id-MIMO-Capability
+SixtyfourQAM-DL-Capability N nbap.extension id-SixtyfourQAM-DL-Capability
+MBMS-Capability N nbap.extension id-MBMS-Capability
+Enhanced-FACH-Capability N nbap.extension id-Enhanced-FACH-Capability
+Enhanced-PCH-Capability N nbap.extension id-Enhanced-PCH-Capability
+SixteenQAM-UL-Capability N nbap.extension id-SixteenQAM-UL-Capability
+HSDSCH-MACdPDU-SizeCapability N nbap.extension id-HSDSCH-MACdPDU-SizeCapability
+F-DPCH-SlotFormatCapability N nbap.extension id-F-DPCH-SlotFormatCapability
+CommonMeasurementAccuracy N nbap.extension id-CommonMeasurementAccuracy
+MeasurementRecoveryBehavior N nbap.extension id-MeasurementRecoveryBehavior
+RTWP-ReportingIndicator N nbap.extension id-RTWP-ReportingIndicator
+RTWP-CellPortion-ReportingIndicator N nbap.extension id-RTWP-CellPortion-ReportingIndicator
+Reference-ReceivedTotalWideBandPowerReporting N nbap.extension id-Reference-ReceivedTotalWideBandPowerReporting
+TimeSlotLCR N nbap.extension id-TimeSlotLCR-CM-Rqst
+NeighbouringCellMeasurementInformation N nbap.extension id-NeighbouringCellMeasurementInformation
+MeasurementRecoverySupportIndicator N nbap.extension id-MeasurementRecoverySupportIndicator
+Reference-ReceivedTotalWideBandPowerSupportIndicator N nbap.extension id-Reference-ReceivedTotalWideBandPowerSupportIndicator
+Reference-ReceivedTotalWideBandPower N nbap.extension id-Reference-ReceivedTotalWideBandPower
+MeasurementRecoveryReportingIndicator N nbap.extension id-MeasurementRecoveryReportingIndicator
+IPDLParameter-Information-Cell-SetupRqstFDD N nbap.extension id-IPDLParameter-Information-Cell-SetupRqstFDD
+CellPortion-InformationList-Cell-SetupRqstFDD N nbap.extension id-CellPortion-InformationList-Cell-SetupRqstFDD
+MIMO-PilotConfiguration N nbap.extension id-MIMO-PilotConfiguration
+TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD N nbap.extension id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD
+PCCPCH-LCR-Information-Cell-SetupRqstTDD N nbap.extension id-PCCPCH-LCR-Information-Cell-SetupRqstTDD
+DwPCH-LCR-Information-Cell-SetupRqstTDD N nbap.extension id-DwPCH-LCR-Information-Cell-SetupRqstTDD
+ReferenceSFNoffset N nbap.extension id-ReferenceSFNoffset
+IPDLParameter-Information-Cell-SetupRqstTDD N nbap.extension id-IPDLParameter-Information-Cell-SetupRqstTDD
+IPDLParameter-Information-LCR-Cell-SetupRqstTDD N nbap.extension id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD
+PCCPCH-768-Information-Cell-SetupRqstTDD N nbap.extension id-PCCPCH-768-Information-Cell-SetupRqstTDD
+SCH-768-Information-Cell-SetupRqstTDD N nbap.extension id-SCH-768-Information-Cell-SetupRqstTDD
+MBSFN-Only-Mode-Indicator N nbap.extension id-MBSFN-Only-Mode-Indicator-Cell-SetupRqstTDD-LCR
+CellParameterID N nbap.extension id-MBSFN-Cell-ParameterID-Cell-SetupRqstTDD
+CellParameterID N nbap.extension id-Time-Slot-Parameter-ID
+IPDLParameter-Information-Cell-ReconfRqstFDD N nbap.extension id-IPDLParameter-Information-Cell-ReconfRqstFDD
+CellPortion-InformationList-Cell-ReconfRqstFDD N nbap.extension id-CellPortion-InformationList-Cell-ReconfRqstFDD
+TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD N nbap.extension id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD
+DwPCH-LCR-Information-Cell-ReconfRqstTDD N nbap.extension id-DwPCH-LCR-Information-Cell-ReconfRqstTDD
+IPDLParameter-Information-Cell-ReconfRqstTDD N nbap.extension id-IPDLParameter-Information-Cell-ReconfRqstTDD
+IPDLParameter-Information-LCR-Cell-ReconfRqstTDD N nbap.extension id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD
+SCH-768-Information-Cell-ReconfRqstTDD N nbap.extension id-SCH-768-Information-Cell-ReconfRqstTDD
+PCCPCH-768-Information-Cell-ReconfRqstTDD N nbap.extension id-PCCPCH-768-Information-Cell-ReconfRqstTDD
+CellParameterID N nbap.extension id-MBSFN-Cell-ParameterID-Cell-ReconfRqstTDD
+Power-Local-Cell-Group-InformationList-ResourceStatusInd N nbap.extension id-Power-Local-Cell-Group-InformationList-ResourceStatusInd
+MBSFN-Only-Mode-Capability N nbap.extension id-MBSFN-Only-Mode-Capability
+Power-Local-Cell-Group-InformationList2-ResourceStatusInd N nbap.extension id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd
+FPACH-LCR-InformationList-ResourceStatusInd N nbap.extension id-FPACH-LCR-InformationList-ResourceStatusInd
+DwPCH-LCR-Information-ResourceStatusInd N nbap.extension id-DwPCH-LCR-Information-ResourceStatusInd
+HS-DSCH-Resources-Information-ResourceStatusInd N nbap.extension id-HSDSCH-Resources-Information-ResourceStatusInd
+Common-PhysicalChannel-Status-Information N nbap.extension id-MICH-Information-ResourceStatusInd
+S-CCPCH-InformationListExt-ResourceStatusInd N nbap.extension id-S-CCPCH-InformationListExt-ResourceStatusInd
+S-CCPCH-LCR-InformationListExt-ResourceStatusInd N nbap.extension id-S-CCPCH-LCR-InformationListExt-ResourceStatusInd
+E-DCH-Resources-Information-ResourceStatusInd N nbap.extension id-E-DCH-Resources-Information-ResourceStatusInd
+PLCCH-InformationList-ResourceStatusInd N nbap.extension id-PLCCH-InformationList-ResourceStatusInd
+Common-PhysicalChannel-Status-Information768 N nbap.extension id-P-CCPCH-768-Information-ResourceStatusInd
+S-CCPCH-768-InformationList-ResourceStatusInd N nbap.extension id-S-CCPCH-768-InformationList-ResourceStatusInd
+Common-PhysicalChannel-Status-Information768 N nbap.extension id-PICH-768-Information-ResourceStatusInd
+PRACH-768-InformationList-ResourceStatusInd N nbap.extension id-PRACH-768-InformationList-ResourceStatusInd
+Common-PhysicalChannel-Status-Information768 N nbap.extension id-SCH-768-Information-ResourceStatusInd
+Common-PhysicalChannel-Status-Information768 N nbap.extension id-MICH-768-Information-ResourceStatusInd
+E-RUCCH-InformationList-ResourceStatusInd N nbap.extension id-E-RUCCH-InformationList-ResourceStatusInd
+E-RUCCH-768-InformationList-ResourceStatusInd N nbap.extension id-E-RUCCH-768-InformationList-ResourceStatusInd
+DL-PowerBalancing-Information N nbap.extension id-DL-PowerBalancing-Information
+HSDSCH-FDD-Information N nbap.extension id-HSDSCH-FDD-Information
+HSDSCH-RNTI N nbap.extension id-HSDSCH-RNTI
+RL-ID N nbap.extension id-HSPDSCH-RL-ID
+E-DPCH-Information-RL-SetupRqstFDD N nbap.extension id-E-DPCH-Information-RL-SetupRqstFDD
+E-DCH-FDD-Information N nbap.extension id-E-DCH-FDD-Information
+Serving-E-DCH-RL-ID N nbap.extension id-Serving-E-DCH-RL-ID
+F-DPCH-Information-RL-SetupRqstFDD N nbap.extension id-F-DPCH-Information-RL-SetupRqstFDD
+Initial-DL-DPCH-TimingAdjustment-Allowed N nbap.extension id-Initial-DL-DPCH-TimingAdjustment-Allowed
+DCH-Indicator-For-E-DCH-HSDPA-Operation N nbap.extension id-DCH-Indicator-For-E-DCH-HSDPA-Operation
+CFN N nbap.extension id-Serving-Cell-Change-CFN
+ContinuousPacketConnectivityDTX-DRX-Information N nbap.extension id-ContinuousPacketConnectivityDTX-DRX-Information
+DPC-Mode N nbap.extension id-DPC-Mode
+UL-DPDCH-Indicator-For-E-DCH-Operation N nbap.extension id-UL-DPDCH-Indicator-For-E-DCH-Operation
+RL-Specific-DCH-Info N nbap.extension id-RL-Specific-DCH-Info
+DelayedActivation N nbap.extension id-DelayedActivation
+Primary-CPICH-Usage-for-Channel-Estimation N nbap.extension id-Primary-CPICH-Usage-for-Channel-Estimation
+CommonPhysicalChannelID N nbap.extension id-Secondary-CPICH-Information
+E-DCH-RL-Indication N nbap.extension id-E-DCH-RL-Indication
+RL-Specific-E-DCH-Info N nbap.extension id-RL-Specific-E-DCH-Info
+SynchronisationIndicator N nbap.extension id-SynchronisationIndicator
+F-DPCH-SlotFormat N nbap.extension id-F-DPCH-SlotFormat
+HSDSCH-TDD-Information N nbap.extension id-HSDSCH-TDD-Information
+RL-ID N nbap.extension id-PDSCH-RL-ID
+E-DCH-Information N nbap.extension id-E-DCH-Information
+RL-ID N nbap.extension id-E-DCH-Serving-RL-ID
+E-DCH-768-Information N nbap.extension id-E-DCH-768-Information
+E-DCH-LCR-Information N nbap.extension id-E-DCH-LCR-Information
+UL-DPCH-LCR-Information-RL-SetupRqstTDD N nbap.extension id-UL-DPCH-LCR-Information-RL-SetupRqstTDD
+UL-SIR N nbap.extension id-UL-SIRTarget
+TDD-TPC-UplinkStepSize-LCR N nbap.extension id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD
+UL-DPCH-768-Information-RL-SetupRqstTDD N nbap.extension id-UL-DPCH-768-Information-RL-SetupRqstTDD
+DL-DPCH-LCR-Information-RL-SetupRqstTDD N nbap.extension id-DL-DPCH-LCR-Information-RL-SetupRqstTDD
+DL-Power N nbap.extension id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD
+DL-Power N nbap.extension id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD
+DL-Power N nbap.extension id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD
+DL-DPCH-768-Information-RL-SetupRqstTDD N nbap.extension id-DL-DPCH-768-Information-RL-SetupRqstTDD
+DL-TimeslotISCPInfoLCR N nbap.extension id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD
+UL-Synchronisation-Parameters-LCR N nbap.extension id-UL-Synchronisation-Parameters-LCR
+HSDSCH-FDD-Information-Response N nbap.extension id-HSDSCH-FDD-Information-Response
+DL-PowerBalancing-ActivationIndicator N nbap.extension id-DL-PowerBalancing-ActivationIndicator
+RL-Set-ID N nbap.extension id-E-DCH-RL-Set-ID
+E-DCH-FDD-DL-Control-Channel-Information N nbap.extension id-E-DCH-FDD-DL-Control-Channel-Information
+DL-DPCH-TimingAdjustment N nbap.extension id-Initial-DL-DPCH-TimingAdjustment
+E-DCH-FDD-Information-Response N nbap.extension id-E-DCH-FDD-Information-Response
+RL-InformationResponse-LCR-RL-SetupRspTDD N nbap.extension id-RL-InformationResponse-LCR-RL-SetupRspTDD
+HSDSCH-TDD-Information-Response N nbap.extension id-HSDSCH-TDD-Information-Response
+E-DCH-Information-Response N nbap.extension id-E-DCH-Information-Response
+HS-DSCH-Serving-Cell-Change-Info N nbap.extension id-HS-DSCH-Serving-Cell-Change-Info
+E-DPCH-Information-RL-AdditionReqFDD N nbap.extension id-E-DPCH-Information-RL-AdditionReqFDD
+DL-Power N nbap.extension id-DLReferencePower
+HSDSCH-Configured-Indicator N nbap.extension id-HSDSCH-Configured-Indicator
+UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD N nbap.extension id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD
+TDD-TPC-UplinkStepSize-LCR N nbap.extension id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD
+UL-DPCH-InformationItem-768-RL-AdditionRqstTDD N nbap.extension id-UL-DPCH-InformationItem-768-RL-AdditionRqstTDD
+DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD N nbap.extension id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD
+DL-Power N nbap.extension id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD
+TDD-TPC-DownlinkStepSize N nbap.extension id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD
+DL-Power N nbap.extension id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD
+DL-Power N nbap.extension id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD
+DL-DPCH-InformationItem-768-RL-AdditionRqstTDD N nbap.extension id-DL-DPCH-InformationItem-768-RL-AdditionRqstTDD
+DL-TimeslotISCPInfoLCR N nbap.extension id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD
+HS-DSCH-Serving-Cell-Change-Info-Response N nbap.extension id-HS-DSCH-Serving-Cell-Change-Info-Response
+E-DCH-Serving-Cell-Change-Info-Response N nbap.extension id-E-DCH-Serving-Cell-Change-Info-Response
+MAChs-ResetIndicator N nbap.extension id-MAChs-ResetIndicator
+RL-InformationResponse-LCR-RL-AdditionRspTDD N nbap.extension id-RL-InformationResponse-LCR-RL-AdditionRspTDD
+SignallingBearerRequestIndicator N nbap.extension id-SignallingBearerRequestIndicator
+HSDSCH-Information-to-Modify N nbap.extension id-HSDSCH-Information-to-Modify
+HSDSCH-MACdFlows-Information N nbap.extension id-HSDSCH-MACdFlows-to-Add
+HSDSCH-MACdFlows-to-Delete N nbap.extension id-HSDSCH-MACdFlows-to-Delete
+E-DPCH-Information-RL-ReconfPrepFDD N nbap.extension id-E-DPCH-Information-RL-ReconfPrepFDD
+E-DCH-FDD-Information-to-Modify N nbap.extension id-E-DCH-FDD-Information-to-Modify
+E-DCH-MACdFlows-Information N nbap.extension id-E-DCH-MACdFlows-to-Add
+E-DCH-MACdFlows-to-Delete N nbap.extension id-E-DCH-MACdFlows-to-Delete
+F-DPCH-Information-RL-ReconfPrepFDD N nbap.extension id-F-DPCH-Information-RL-ReconfPrepFDD
+Fast-Reconfiguration-Mode N nbap.extension id-Fast-Reconfiguration-Mode
+CPC-Information N nbap.extension id-CPC-Information
+DL-DPCH-Power-Information-RL-ReconfPrepFDD N nbap.extension id-DL-DPCH-Power-Information-RL-ReconfPrepFDD
+DL-DPCH-TimingAdjustment N nbap.extension id-DL-DPCH-TimingAdjustment
+Secondary-CPICH-Information-Change N nbap.extension id-Secondary-CPICH-Information-Change
+MultipleRL-Information-RL-ReconfPrepTDD N nbap.extension id-multiple-RL-Information-RL-ReconfPrepTDD
+E-DCH-Information-Reconfig N nbap.extension id-E-DCH-Information-Reconfig
+E-DCH-768-Information-Reconfig N nbap.extension id-E-DCH-768-Information-Reconfig
+E-DCH-LCR-Information-Reconfig N nbap.extension id-E-DCH-LCR-Information-Reconfig
+UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD N nbap.extension id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD
+TDD-TPC-UplinkStepSize-LCR N nbap.extension id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD
+RL-ID N nbap.extension id-RL-ID
+MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD N nbap.extension id-multipleRL-ul-DPCH-InformationList
+UL-DPCH-768-InformationAddList-RL-ReconfPrepTDD N nbap.extension id-UL-DPCH-768-InformationAddItemIE-RL-ReconfPrepTDD
+UL-DPCH-768-InformationAddList-RL-ReconfPrepTDD N nbap.extension id-UL-DPCH-768-InformationAddListIE-RL-ReconfPrepTDD
+UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD N nbap.extension id-UL-DPCH-LCR-InformationModify-AddList
+TDD-TPC-UplinkStepSize-LCR N nbap.extension id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD
+MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD N nbap.extension id-multipleRL-ul-DPCH-InformationModifyList
+UL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD N nbap.extension id-UL-DPCH-768-InformationModify-AddItem
+UL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD N nbap.extension id-UL-DPCH-768-InformationModify-AddList
+UL-TimeslotLCR-InformationModify-ModifyList-RL-ReconfPrepTDD N nbap.extension id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD
+UL-Timeslot768-InformationModify-ModifyList-RL-ReconfPrepTDD N nbap.extension id-UL-Timeslot768-Information-RL-ReconfPrepTDD
+PLCCHinformation N nbap.extension id-PLCCH-Information-RL-ReconfPrepTDDLCR
+TDD-UL-DPCH-TimeSlotFormat-LCR N nbap.extension id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD
+DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD N nbap.extension id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD
+DL-Power N nbap.extension id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD
+TDD-TPC-DownlinkStepSize N nbap.extension id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD
+DL-Power N nbap.extension id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD
+DL-Power N nbap.extension id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD
+MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD N nbap.extension id-multipleRL-dl-DPCH-InformationList
+DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD N nbap.extension id-DL-DPCH-768-InformationAddItem-RL-ReconfPrepTDD
+DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD N nbap.extension id-DL-DPCH-768-InformationAddList-RL-ReconfPrepTDD
+DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD N nbap.extension id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD
+TDD-TPC-DownlinkStepSize N nbap.extension id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD
+DL-Power N nbap.extension id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD
+DL-Power N nbap.extension id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD
+MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD N nbap.extension id-multipleRL-dl-DPCH-InformationModifyList
+DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD N nbap.extension id-DL-DPCH-768-InformationModify-AddItem-RL-ReconfPrepTDD
+DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD N nbap.extension id-DL-DPCH-768-InformationModify-AddList-RL-ReconfPrepTDD
+DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD N nbap.extension id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD
+DL-Timeslot-768-InformationModify-ModifyList-RL-ReconfPrepTDD N nbap.extension id-DL-Timeslot-768-InformationModify-ModifyList-RL-ReconfPrepTDD
+DL-Power N nbap.extension id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD
+DL-Power N nbap.extension id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD
+TDD-DL-DPCH-TimeSlotFormat-LCR N nbap.extension id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD
+DL-Power N nbap.extension id-InitDL-Power
+DL-TimeslotISCPInfoLCR N nbap.extension id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD
+CommunicationControlPortID N nbap.extension id-TargetCommunicationControlPortID
+Fast-Reconfiguration-Permission N nbap.extension id-Fast-Reconfiguration-Permission
+DL-PowerBalancing-UpdatedIndicator N nbap.extension id-DL-PowerBalancing-UpdatedIndicator
+HSDSCH-Information-to-Modify-Unsynchronised N nbap.extension id-HSDSCH-Information-to-Modify-Unsynchronised
+E-DPCH-Information-RL-ReconfRqstFDD N nbap.extension id-E-DPCH-Information-RL-ReconfRqstFDD
+Multiple-RL-Information-RL-ReconfRqstTDD N nbap.extension id-multiple-RL-Information-RL-ReconfRqstTDD
+DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD N nbap.extension id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD
+DL-Power N nbap.extension id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD
+DL-Power N nbap.extension id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD
+MultipleRL-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD N nbap.extension id-multipleRL-dl-CCTrCH-InformationModifyList-RL-ReconfRqstTDD
+DL-TimeslotISCPInfoLCR N nbap.extension id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD
+PrimaryCCPCH-RSCP N nbap.extension id-PrimCCPCH-RSCP-DL-PC-RqstTDD
+PrimaryCCPCH-RSCP-Delta N nbap.extension id-PrimaryCCPCH-RSCP-Delta
+NumberOfReportedCellPortions N nbap.extension id-NumberOfReportedCellPortions
+AlternativeFormatReportingIndicator N nbap.extension id-AlternativeFormatReportingIndicator
+PUSCH-Info-DM-Rqst N nbap.extension id-PUSCH-Info-DM-Rqst
+HSSICH-Info-DM-Rqst N nbap.extension id-HSSICH-Info-DM-Rqst
+DPCH-ID768 N nbap.extension id-DPCH-ID768-DM-Rqst
+PUSCH-Info-DM-Rsp N nbap.extension id-PUSCH-Info-DM-Rsp
+HS-SICH-ID N nbap.extension id-HSSICH-Info-DM-Rsp
+Multiple-DedicatedMeasurementValueList-TDD-DM-Rsp N nbap.extension id-multiple-DedicatedMeasurementValueList-TDD-DM-Rsp
+Multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp N nbap.extension id-multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp
+Multiple-PUSCH-InfoList-DM-Rsp N nbap.extension id-multiple-PUSCH-InfoList-DM-Rsp
+Multiple-HSSICHMeasurementValueList-TDD-DM-Rsp N nbap.extension id-multiple-HSSICHMeasurementValueList-TDD-DM-Rsp
+DPCH-ID768 N nbap.extension id-DPCH-ID768-DM-Rsp
+Multiple-DedicatedMeasurementValueList-768-TDD-DM-Rsp N nbap.extension id-multiple-DedicatedMeasurementValueList-768-TDD-DM-Rsp
+PUSCH-Info-DM-Rprt N nbap.extension id-PUSCH-Info-DM-Rprt
+HS-SICH-ID N nbap.extension id-HSSICH-Info-DM-Rprt
+Multiple-PUSCH-InfoList-DM-Rprt N nbap.extension id-multiple-PUSCH-InfoList-DM-Rprt
+DPCH-ID768 N nbap.extension id-DPCH-ID768-DM-Rprt
+DL-ScramblingCode N nbap.extension id-E-AGCH-And-E-RGCH-E-HICH-FDD-Scrambling-Code
+E-AGCH-FDD-Code-Information N nbap.extension id-E-AGCH-FDD-Code-Information
+E-RGCH-E-HICH-FDD-Code-Information N nbap.extension id-E-RGCH-E-HICH-FDD-Code-Information
+HSDPA-And-EDCH-CellPortion-InformationList-PSCH-ReconfRqst N nbap.extension id-HSDPA-And-EDCH-CellPortion-Information-PSCH-ReconfRqst
+Maximum-Target-ReceivedTotalWideBandPower N nbap.extension id-Maximum-Target-ReceivedTotalWideBandPower
+Target-NonServing-EDCH-To-Total-EDCH-Power-Ratio N nbap.extension id-Target-NonServing-EDCH-To-Total-EDCH-Power-Ratio
+HSDSCH-Common-System-InformationFDD N nbap.extension id-HSDSCH-Common-System-InformationFDD
+HSDSCH-Paging-System-InformationFDD N nbap.extension id-HSDSCH-Paging-System-InformationFDD
+HS-PDSCH-TDD-Information-PSCH-ReconfRqst N nbap.extension id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst
+Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst N nbap.extension id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst
+Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst N nbap.extension id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst
+Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst N nbap.extension id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst
+ConfigurationGenerationID N nbap.extension id-ConfigurationGenerationID
+E-PUCH-Information-PSCH-ReconfRqst N nbap.extension id-E-PUCH-Information-PSCH-ReconfRqst
+Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst N nbap.extension id-Add-To-E-AGCH-Resource-Pool-PSCH-ReconfRqst
+Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst N nbap.extension id-Modify-E-AGCH-Resource-Pool-PSCH-ReconfRqst
+Delete-From-E-AGCH-Resource-Pool-PSCH-ReconfRqst N nbap.extension id-Delete-From-E-AGCH-Resource-Pool-PSCH-ReconfRqst
+E-HICH-Information-PSCH-ReconfRqst N nbap.extension id-E-HICH-Information-PSCH-ReconfRqst
+Maximum-Generated-ReceivedTotalWideBandPowerInOtherCells N nbap.extension id-Maximum-Generated-ReceivedTotalWideBandPowerInOtherCells
+E-PUCH-Information-768-PSCH-ReconfRqst N nbap.extension id-E-PUCH-Information-768-PSCH-ReconfRqst
+Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst N nbap.extension id-Add-To-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst
+Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst N nbap.extension id-Modify-E-AGCH-Resource-Pool-768-PSCH-ReconfRqst
+E-HICH-Information-768-PSCH-ReconfRqst N nbap.extension id-E-HICH-Information-768-PSCH-ReconfRqst
+E-PUCH-Information-LCR-PSCH-ReconfRqst N nbap.extension id-E-PUCH-Information-LCR-PSCH-ReconfRqst
+Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst N nbap.extension id-Add-To-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst
+Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst N nbap.extension id-Modify-E-AGCH-Resource-Pool-LCR-PSCH-ReconfRqst
+Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst N nbap.extension id-Add-To-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst
+Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst N nbap.extension id-Modify-E-HICH-Resource-Pool-LCR-PSCH-ReconfRqst
+Delete-From-E-HICH-Resource-Pool-PSCH-ReconfRqst N nbap.extension id-Delete-From-E-HICH-Resource-Pool-PSCH-ReconfRqst
+SYNC-UL-Partition-LCR N nbap.extension id-SYNC-UL-Partition-LCR
+PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst N nbap.extension id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst
+PDSCH-AddInformation-768-AddItem-PSCH-ReconfRqst N nbap.extension id-PDSCH-AddInformation-768-PSCH-ReconfRqst
+TDD-DL-DPCH-TimeSlotFormat-LCR N nbap.extension id-PDSCH-Timeslot-Format-PSCH-ReconfRqst-LCR
+PDSCH-ModifyInformation-768-ModifyItem-PSCH-ReconfRqst N nbap.extension id-PDSCH-ModifyInformation-768-PSCH-ReconfRqst
+PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst N nbap.extension id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst
+PUSCH-AddInformation-768-AddItem-PSCH-ReconfRqst N nbap.extension id-PUSCH-AddInformation-768-PSCH-ReconfRqst
+TDD-UL-DPCH-TimeSlotFormat-LCR N nbap.extension id-PUSCH-Timeslot-Format-PSCH-ReconfRqst-LCR
+PUSCH-ModifyInformation-768-ModifyItem-PSCH-ReconfRqst N nbap.extension id-PUSCH-ModifyInformation-768-PSCH-ReconfRqst
+DL-HS-PDSCH-Timeslot-Information-768-PSCH-ReconfRqst N nbap.extension id-dL-HS-PDSCH-Timeslot-Information-768-PSCH-ReconfRqst
+HS-SCCH-Information-768-PSCH-ReconfRqst N nbap.extension id-hS-SCCH-Information-768-PSCH-ReconfRqst
+HS-SCCH-InformationModify-768-PSCH-ReconfRqst N nbap.extension id-hS-SCCH-InformationModify-768-PSCH-ReconfRqst
+E-HICH-TimeOffset N nbap.extension id-E-HICH-TimeOffset
+E-HICH-TimeOffsetLCR N nbap.extension id-E-HICH-TimeOffsetLCR
+HSDSCH-Common-System-Information-ResponseFDD N nbap.extension id-HSDSCH-Common-System-Information-ResponseFDD
+HSDSCH-Paging-System-Information-ResponseFDD N nbap.extension id-HSDSCH-Paging-System-Information-ResponseFDD
+SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD N nbap.extension id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD
+SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD N nbap.extension id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD
+NSubCyclesPerCyclePeriod N nbap.extension id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD
+SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD N nbap.extension id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD
+SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD N nbap.extension id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD
+DwPCH-Power N nbap.extension id-DwPCH-Power
+TimingAdjustmentValueLCR N nbap.extension id-TimingAdjustmentValueLCR
+TimingAdjustmentValue N nbap.extension id-AccumulatedClockupdate-CellSyncReprtTDD
+SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD N nbap.extension id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD
+E-DCH-RearrangeList-Bearer-RearrangeInd N nbap.extension id-E-DCH-RearrangeList-Bearer-RearrangeInd
+E-DCH-FDD-Update-Information N nbap.extension id-E-DCH-FDD-Update-Information
+
+IPMulticastIndication N nbap.extension id-IPMulticastIndication
+TimeSlotConfigurationList-LCR-CTCH-SetupRqstTDD N nbap.extension id-TimeSlotConfigurationList-LCR-CTCH-SetupRqstTDD
+Cell-Frequency-List-Information-LCR-MulFreq-AuditRsp N nbap.extension id-Cell-Frequency-List-Information-LCR-MulFreq-AuditRsp
+Cell-Frequency-List-LCR-MulFreq-Cell-SetupRqstTDD N nbap.extension id-Cell-Frequency-List-LCR-MulFreq-Cell-SetupRqstTDD
+UARFCN-Adjustment N nbap.extension id-UARFCN-Adjustment
+Cell-Frequency-List-Information-LCR-MulFreq-ResourceStatusInd N nbap.extension id-Cell-Frequency-List-Information-LCR-MulFreq-ResourceStatusInd
+UPPCHPositionLCR N nbap.extension id-UPPCHPositionLCR
+UPPCH-LCR-Parameters-CTCH-ReconfRqstTDD N nbap.extension id-UPPCH-LCR-Parameters-CTCH-ReconfRqstTDD
+UPPCH-LCR-InformationList-AuditRsp N nbap.extension id-UPPCH-LCR-InformationList-AuditRsp
+UPPCH-LCR-InformationList-ResourceStatusInd N nbap.extension id-UPPCH-LCR-InformationList-ResourceStatusInd
+MultipleFreq-DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst N nbap.extension id-multipleFreq-dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst
+MultipleFreq-HS-DSCH-Resources-InformationList-AuditRsp N nbap.extension id-multipleFreq-HS-DSCH-Resources-InformationList-AuditRsp
+MultipleFreq-HS-DSCH-Resources-InformationList-ResourceStatusInd N nbap.extension id-multipleFreq-HS-DSCH-Resources-InformationList-ResourceStatusInd
+Extended-HS-SCCH-ID N nbap.extension id-Extended-HS-SCCH-ID
+Extended-HS-SICH-ID N nbap.extension id-Extended-HS-SICH-ID
+HSSICH-InfoExt-DM-Rqst N nbap.extension id-HSSICH-InfoExt-DM-Rqst
+Delete-From-HS-SCCH-Resource-PoolExt-PSCH-ReconfRqst N nbap.extension id-Delete-From-HS-SCCH-Resource-PoolExt-PSCH-ReconfRqst
+HS-SCCH-InformationExt-LCR-PSCH-ReconfRqst N nbap.extension id-HS-SCCH-InformationExt-LCR-PSCH-ReconfRqst
+HS-SCCH-InformationModifyExt-LCR-PSCH-ReconfRqst N nbap.extension id-HS-SCCH-InformationModifyExt-LCR-PSCH-ReconfRqst
+ControlGAP N nbap.extension id-PowerControlGAP
+TimeslotLCR-Extension N nbap.extension id-MBSFN-SpecialTimeSlot-LCR
+Common-MACFlows-to-DeleteFDD N nbap.extension id-Common-MACFlows-to-DeleteFDD
+Paging-MACFlows-to-DeleteFDD N nbap.extension id-Paging-MACFlows-to-DeleteFDD
+Maximum-Target-ReceivedTotalWideBandPower-LCR N nbap.extension id-Maximum-Target-ReceivedTotalWideBandPower-LCR
+E-DPDCH-PowerInterpolation N nbap.extension id-E-DPDCH-PowerInterpolation
+E-TFCI-Boost-Information N nbap.extension id-E-TFCI-Boost-Information
+Ext-Max-Bits-MACe-PDU-non-scheduled N nbap.extension id-Ext-Max-Bits-MACe-PDU-non-scheduled
+Ext-Reference-E-TFCI-PO N nbap.extension id-Ext-Reference-E-TFCI-PO
+HARQ-MemoryPartitioningInfoExtForMIMO N nbap.extension id-HARQ-MemoryPartitioningInfoExtForMIMO
+IPMulticastDataBearerIndication N nbap.extension id-IPMulticastDataBearerIndication
+MIMO-ActivationIndicator N nbap.extension id-MIMO-ActivationIndicator
+MIMO-Mode-Indicator N nbap.extension id-MIMO-Mode-Indicator
+MIMO-N-M-Ratio N nbap.extension id-MIMO-N-M-Ratio
+Multicarrier-Number N nbap.extension id-multicarrier-number
+Number-Of-Supported-Carriers N nbap.extension id-number-Of-Supported-Carriers
+MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR N nbap.extension id-multipleFreq-HSPDSCH-InformationList-ResponseTDDLCR
+SixtyfourQAM-UsageAllowedIndicator N nbap.extension id-SixtyfourQAM-UsageAllowedIndicator
+SixtyfourQAM-DL-UsageIndicator N nbap.extension id-SixtyfourQAM-DL-UsageIndicator
+SixteenQAM-UL-Operation-Indicator N nbap.extension id-SixteenQAM-UL-Operation-Indicator
+TransportBearerNotRequestedIndicator N nbap.extension id-TransportBearerNotRequestedIndicator
+TransportBearerNotSetupIndicator N nbap.extension id-TransportBearerNotSetupIndicator
+TSN-Length N nbap.extension id-tSN-Length
+Extended-E-DCH-LCRTDD-PhysicalLayerCategory N nbap.extension id-Extended-E-DCH-LCRTDD-PhysicalLayerCategory
+MultipleFreq-E-DCH-Resources-InformationList-AuditRsp N nbap.extension id-MultipleFreq-E-DCH-Resources-InformationList-AuditRsp
+MultipleFreq-E-DCH-Resources-InformationList-ResourceStatusInd N nbap.extension id-MultipleFreq-E-DCH-Resources-InformationList-ResourceStatusInd
+MultipleFreq-E-PUCH-Timeslot-InformationList-LCR-PSCH-ReconfRqst N nbap.extension id-MultipleFreq-E-PUCH-Timeslot-InformationList-LCR-PSCH-ReconfRqst
+Extended-E-HICH-ID-TDD N nbap.extension id-Extended-E-HICH-ID-TDD
+ContinuousPacketConnectivityHS-SCCH-less-Deactivate-Indicator N nbap.extension id-ContinuousPacketConnectivityHS-SCCH-less-Deactivate-Indicator
+E-DCH-MACdPDU-SizeCapability N nbap.extension id-E-DCH-MACdPDU-SizeCapability
+E-DCH-MACdPDUSizeFormat N nbap.extension id-E-DCH-MACdPDUSizeFormat
+Maximum-Number-of-Retransmissions-For-E-DCH N nbap.extension id-MaximumNumber-Of-Retransmission-for-Scheduling-Info-LCRTDD
+E-DCH-MACdFlow-Retransmission-Timer N nbap.extension id-E-DCH-RetransmissionTimer-for-SchedulingInfo-LCRTDD
+E-HICH-TimeOffset-ExtensionLCR N nbap.extension id-E-HICH-TimeOffset-Extension
+ControlGAP N nbap.extension id-E-PUCH-PowerControlGAP
+HSDSCH-TBSizeTableIndicator N nbap.extension id-HSDSCH-TBSizeTableIndicator
+E-DCH-DL-Control-Channel-Change-Information N nbap.extension id-E-DCH-DL-Control-Channel-Change-Information
+E-DCH-DL-Control-Channel-Grant-Information N nbap.extension id-E-DCH-DL-Control-Channel-Grant-Information
+DGANSS-Corrections-Req N nbap.extension id-DGANSS-Corrections-Req
+#NULL N nbap.extension id-UE-with-enhanced-HS-SCCH-support-indicator
+AdditionalTimeSlotListLCR N nbap.extension id-AdditionalTimeSlotListLCR
+AdditionalMeasurementValueList N nbap.extension id-AdditionalMeasurementValueList
+E-AGCH-Table-Choice N nbap.extension id-E-AGCH-Table-Choice
+Cause N nbap.extension id-HS-Cause
+Cause N nbap.extension id-E-Cause
+Common-EDCH-Capability N nbap.extension id-Common-EDCH-Capability
+E-AI-Capability N nbap.extension id-E-AI-Capability
+Common-EDCH-System-InformationFDD N nbap.extension id-Common-EDCH-System-InformationFDD
+Common-MACFlows-to-DeleteFDD N nbap.extension id-Common-UL-MACFlows-to-DeleteFDD
+E-DCH-MACdFlows-to-Delete N nbap.extension id-Common-EDCH-MACdFlows-to-DeleteFDD
+Common-EDCH-System-Information-ResponseFDD N nbap.extension id-Common-EDCH-System-Information-ResponseFDD
+Enhanced-UE-DRX-Capability N nbap.extension id-Enhanced-UE-DRX-Capability
+Enhanced-UE-DRX-InformationFDD N nbap.extension id-Enhanced-UE-DRX-InformationFDD
+TransportBearerRequestIndicator N nbap.extension id-TransportBearerRequestIndicator
+SixtyfourQAM-DL-MIMO-Combined-Capability N nbap.extension id-SixtyfourQAM-DL-MIMO-Combined-Capability
+E-RNTI N nbap.extension id-E-RNTI
+MinimumReducedE-DPDCH-GainFactor N nbap.extension id-MinimumReducedE-DPDCH-GainFactor
+GANSS-Time-ID N nbap.extension id-GANSS-Time-ID
+GANSS-AddIonoModelReq N nbap.extension id-GANSS-AddIonoModelReq
+GANSS-EarthOrientParaReq N nbap.extension id-GANSS-EarthOrientParaReq
+GANSS-AddNavigationModelsReq N nbap.extension id-GANSS-AddNavigationModelsReq
+GANSS-AddUTCModelsReq N nbap.extension id-GANSS-AddUTCModelsReq
+GANSS-AuxInfoReq N nbap.extension id-GANSS-AuxInfoReq
+GANSS-SBAS-ID N nbap.extension id-GANSS-SBAS-ID
+GANSS-ID N nbap.extension id-GANSS-ID
+GANSS-Additional-Ionospheric-Model N nbap.extension id-GANSS-Additional-Ionospheric-Model
+GANSS-Earth-Orientation-Parameters N nbap.extension id-GANSS-Earth-Orientation-Parameters
+GANSS-Additional-Time-Models N nbap.extension id-GANSS-Additional-Time-Models
+GANSS-Additional-Navigation-Models N nbap.extension id-GANSS-Additional-Navigation-Models
+GANSS-Additional-UTC-Models N nbap.extension id-GANSS-Additional-UTC-Models
+GANSS-Auxiliary-Information N nbap.extension id-GANSS-Auxiliary-Information
+E-DPCCH-Power-Boosting-Capability N nbap.extension id-E-DPCCH-Power-Boosting-Capability
+HSDSCH-Common-System-InformationLCR N nbap.extension id-HSDSCH-Common-System-InformationLCR
+HSDSCH-Common-System-Information-ResponseLCR N nbap.extension id-HSDSCH-Common-System-Information-ResponseLCR
+HSDSCH-Paging-System-InformationLCR N nbap.extension id-HSDSCH-Paging-System-InformationLCR
+HSDSCH-Paging-System-Information-ResponseLCR N nbap.extension id-HSDSCH-Paging-System-Information-ResponseLCR
+Common-MACFlows-to-DeleteLCR N nbap.extension id-Common-MACFlows-to-DeleteLCR
+Paging-MACFlows-to-DeleteLCR N nbap.extension id-Paging-MACFlows-to-DeleteLCR
+Common-EDCH-System-InformationLCR N nbap.extension id-Common-EDCH-System-InformationLCR
+Common-MACFlows-to-DeleteLCR N nbap.extension id-Common-UL-MACFlows-to-DeleteLCR
+E-DCH-MACdFlows-to-DeleteLCR N nbap.extension id-Common-EDCH-MACdFlows-to-DeleteLCR
+Common-EDCH-System-Information-ResponseLCR N nbap.extension id-Common-EDCH-System-Information-ResponseLCR
+Enhanced-UE-DRX-Capability N nbap.extension id-Enhanced-UE-DRX-CapabilityLCR
+Enhanced-UE-DRX-InformationLCR N nbap.extension id-Enhanced-UE-DRX-InformationLCR
+HSDSCH-PreconfigurationSetup N nbap.extension id-HSDSCH-PreconfigurationSetup
+HSDSCH-PreconfigurationInfo N nbap.extension id-HSDSCH-PreconfigurationInfo
+NoOfTargetCellHS-SCCH-Order N nbap.extension id-NoOfTargetCellHS-SCCH-Order
+EnhancedHSServingCC-Abort N nbap.extension id-EnhancedHSServingCC-Abort
+Additional-HS-Cell-Information-RL-Setup-List N nbap.extension id-Additional-HS-Cell-Information-RL-Setup
+Additional-HS-Cell-Information-Response-List N nbap.extension id-Additional-HS-Cell-Information-Response
+Additional-HS-Cell-Information-RL-Addition-List N nbap.extension id-Additional-HS-Cell-Information-RL-Addition
+Additional-HS-Cell-Change-Information-Response-List N nbap.extension id-Additional-HS-Cell-Change-Information-Response
+Additional-HS-Cell-Information-RL-Reconf-Prep N nbap.extension id-Additional-HS-Cell-Information-RL-Reconf-Prep
+Additional-HS-Cell-Information-RL-Reconf-Req N nbap.extension id-Additional-HS-Cell-Information-RL-Reconf-Req
+Additional-HS-Cell-Information-RL-Param-Upd N nbap.extension id-Additional-HS-Cell-Information-RL-Param-Upd
+Multi-Cell-Capability-Info N nbap.extension id-Multi-Cell-Capability-Info
+IMB-Parameters N nbap.extension id-IMB-Parameters
+MACes-Maximum-Bitrate-LCR N nbap.extension id-MACes-Maximum-Bitrate-LCR
+Semi-PersistentScheduling-CapabilityLCR N nbap.extension id-Semi-PersistentScheduling-CapabilityLCR
+E-DCH-Semi-PersistentScheduling-Information-LCR N nbap.extension id-E-DCH-Semi-PersistentScheduling-Information-LCR
+HS-DSCH-Semi-PersistentScheduling-Information-LCR N nbap.extension id-HS-DSCH-Semi-PersistentScheduling-Information-LCR
+Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst N nbap.extension id-Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst
+Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst N nbap.extension id-Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst
+Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst N nbap.extension id-Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst
+ContinuousPacketConnectivity-DRX-CapabilityLCR N nbap.extension id-ContinuousPacketConnectivity-DRX-CapabilityLCR
+ContinuousPacketConnectivity-DRX-InformationLCR N nbap.extension id-ContinuousPacketConnectivity-DRX-InformationLCR
+ContinuousPacketConnectivity-DRX-Information-ResponseLCR N nbap.extension id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR
+CPC-InformationLCR N nbap.extension id-CPC-InformationLCR
+HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR N nbap.extension id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR
+E-DCH-Semi-PersistentScheduling-Information-ResponseLCR N nbap.extension id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR
+E-AGCH-UE-Inactivity-Monitor-Threshold N nbap.extension id-E-AGCH-UE-Inactivity-Monitor-Threshold
+IdleIntervalInformation N nbap.extension id-IdleIntervalInformation
+HSSICH-ReferenceSignal-InformationLCR N nbap.extension id-HSSICH-ReferenceSignal-InformationLCR
+MIMO-ReferenceSignal-InformationListLCR N nbap.extension id-MIMO-ReferenceSignal-InformationListLCR
+MIMO-SFMode-For-HSPDSCHDualStream N nbap.extension id-MIMO-SFMode-For-HSPDSCHDualStream
+MIMO-SFMode-For-HSPDSCHDualStream N nbap.extension id-MIMO-SFMode-Supported-For-HSPDSCHDualStream
+UE-Selected-MBMS-Service-Information N nbap.extension id-UE-Selected-MBMS-Service-Information
+LCRTDD-HSDSCH-Physical-Layer-Category N nbap.extension id-MultiCarrier-HSDSCH-Physical-Layer-Category
+Common-E-DCH-HSDPCCH-Capability N nbap.extension id-Common-E-DCH-HSDPCCH-Capability
+DL-RLC-PDU-Size-Format N nbap.extension id-DL-RLC-PDU-Size-Format
+HSSICH-ReferenceSignal-InformationModifyLCR N nbap.extension id-HSSICH-ReferenceSignal-InformationModifyLCR
+SchedulingPriorityIndicator N nbap.extension id-schedulingPriorityIndicator
+TimeSlotMeasurementValueListLCR N nbap.extension id-TimeSlotMeasurementValueListLCR
+UE-SupportIndicatorExtension N nbap.extension id-UE-SupportIndicatorExtension
+Single-Stream-MIMO-ActivationIndicator N nbap.extension id-Single-Stream-MIMO-ActivationIndicator
+Single-Stream-MIMO-Capability N nbap.extension id-Single-Stream-MIMO-Capability
+Single-Stream-MIMO-Mode-Indicator N nbap.extension id-Single-Stream-MIMO-Mode-Indicator
+Dual-Band-Capability-Info N nbap.extension id-Dual-Band-Capability-Info
+UE-AggregateMaximumBitRate N nbap.extension id-UE-AggregateMaximumBitRate
+UE-AggregateMaximumBitRate-Enforcement-Indicator N nbap.extension id-UE-AggregateMaximumBitRate-Enforcement-Indicator
+MIMO-PowerOffsetForS-CPICHCapability N nbap.extension id-MIMO-Power-Offset-For-S-CPICH-Capability
+MIMO-PilotConfigurationExtension N nbap.extension id-MIMO-PilotConfigurationExtension
+TxDiversityOnDLControlChannelsByMIMOUECapability N nbap.extension id-TxDiversityOnDLControlChannelsByMIMOUECapability
+NumberOfReportedCellPortionsLCR N nbap.extension id-NumberOfReportedCellPortionsLCR
+CellPortion-CapabilityLCR N nbap.extension id-CellPortion-CapabilityLCR
+Additional-EDCH-Setup-Info N nbap.extension id-Additional-EDCH-Cell-Information-RL-Setup-Req
+Additional-EDCH-Cell-Information-Response-List N nbap.extension id-Additional-EDCH-Cell-Information-Response
+Additional-EDCH-Cell-Information-RL-Add-Req N nbap.extension id-Additional-EDCH-Cell-Information-RL-Add-Req
+Additional-EDCH-Cell-Information-Response-RL-Add-List N nbap.extension id-Additional-EDCH-Cell-Information-Response-RL-Add
+Additional-EDCH-Cell-Information-RL-Reconf-Prep N nbap.extension id-Additional-EDCH-Cell-Information-RL-Reconf-Prep
+Additional-EDCH-Cell-Information-RL-Reconf-Req N nbap.extension id-Additional-EDCH-Cell-Information-RL-Reconf-Req
+Additional-EDCH-Cell-Information-Bearer-Rearrangement-List N nbap.extension id-Additional-EDCH-Cell-Information-Bearer-Rearrangement
+Additional-EDCH-Cell-Information-RL-Param-Upd N nbap.extension id-Additional-EDCH-Cell-Information-RL-Param-Upd
+Additional-EDCH-Preconfiguration-Information N nbap.extension id-Additional-EDCH-Preconfiguration-Information
+NULL N nbap.extension id-EDCH-Indicator
+SPS-Reservation-Indicator N nbap.extension id-HS-DSCH-SPS-Reservation-Indicator
+SPS-Reservation-Indicator N nbap.extension id-E-DCH-SPS-Reservation-Indicator
+MultipleFreq-HARQ-MemoryPartitioning-InformationList N nbap.extension id-MultipleFreq-HARQ-MemoryPartitioning-InformationList
+Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR-Ext N nbap.extension id-Ul-common-E-DCH-MACflow-Specific-InfoResponseListLCR-Ext
+RepetitionPeriodIndex N nbap.extension id-RepetitionPeriodIndex
+MidambleShiftLCR N nbap.extension id-MidambleShiftLCR
+MaxHSDSCH-HSSCCH-Power-per-CELLPORTION N nbap.extension id-MaxHSDSCH-HSSCCH-Power-per-CELLPORTION
+DormantModeIndicator N nbap.extension id-DormantModeIndicator
+DiversityMode N nbap.extension id-DiversityMode
+TransmitDiversityIndicator N nbap.extension id-TransmitDiversityIndicator
+NonCellSpecificTxDiversity N nbap.extension id-NonCellSpecificTxDiversity
+Cell-Capability-Container N nbap.extension id-Cell-Capability-Container
+NULL N nbap.extension id-E-RNTI-List-Request
+E-RNTI-List N nbap.extension id-E-RNTI-List
+ControlGAP N nbap.extension id-PowerControlGAP-For-CellFACHLCR
+UL-Synchronisation-Parameters-LCR N nbap.extension id-UL-Synchronisation-Parameters-For-FACHLCR
+HS-DSCH-SPS-Operation-Indicator N nbap.extension id-HS-DSCH-SPS-Operation-Indicator
+Out-of-Sychronization-Window N nbap.extension id-Out-of-Sychronization-Window
+Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst N nbap.extension id-Max-RTWP-perUARFCN-Information-LCR-PSCH-ReconfRqst
+E-HICH-TimeOffset-ReconfFailureTDD N nbap.extension id-E-HICH-TimeOffset-ReconfFailureTDD
+TDD-TPC-DownlinkStepSize N nbap.extension id-HSSCCH-TPC-StepSize
+TS0-CapabilityLCR N nbap.extension id-TS0-CapabilityLCR
+UE-TS0-CapabilityLCR N nbap.extension id-UE-TS0-CapabilityLCR
+Common-System-Information-ResponseLCR N nbap.extension id-Common-System-Information-ResponseLCR
+Additional-EDCH-Cell-Information-Response-RLReconf-List N nbap.extension id-Additional-EDCH-Cell-Information-ResponseRLReconf
+Multicell-EDCH-InformationItemIEs N nbap.ies id-Multicell-EDCH-InformationItemIEs
+Multicell-EDCH-RL-Specific-InformationItemIEs N nbap.ies id-Multicell-EDCH-RL-Specific-InformationItemIEs
+Non-HS-SCCH-Associated-HS-SICH-InformationList-Ext N nbap.extension id-Add-To-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext
+Modify-Non-HS-SCCH-Associated-HS-SICH-InformationList-Ext N nbap.extension id-Modify-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext
+Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext N nbap.extension id-Delete-From-Non-HS-SCCH-Associated-HS-SICH-Resource-Pool-LCR-PSCH-ReconfRqst-Ext
+DL-Power N nbap.extension id-Initial-DL-Transmission-Power
+DL-Power N nbap.extension id-Maximum-DL-Power
+DL-Power N nbap.extension id-Minimum-DL-Power
+DCH-MeasurementOccasion-Information N nbap.extension id-DCH-MeasurementOccasion-Information
+CommonPhysicalChannelID N nbap.extension id-AssociatedPhsicalChannelID
+DGNSS-ValidityPeriod N nbap.extension id-DGNSS-ValidityPeriod
+PhysicalChannelID-for-CommonERNTI-RequestedIndicator N nbap.extension id-PhysicalChannelID-for-CommonERNTI-RequestedIndicator
+PrecodingWeightSetRestriction N nbap.extension id-PrecodingWeightSetRestriction
+
+#NBAP-ELEMENTARY-PROCEDURE
+CellSetupRequestFDD S nbap.proc.imsg "id-cellSetup/fdd"
+CellSetupResponse S nbap.proc.sout "id-cellSetup/fdd"
+CellSetupFailure S nbap.proc.uout "id-cellSetup/fdd"
+CellSetupRequestTDD S nbap.proc.imsg "id-cellSetup/tdd"
+CellSetupResponse S nbap.proc.sout "id-cellSetup/tdd"
+CellSetupFailure S nbap.proc.uout "id-cellSetup/tdd"
+CellReconfigurationRequestFDD S nbap.proc.imsg "id-cellReconfiguration/fdd"
+CellReconfigurationResponse S nbap.proc.sout "id-cellReconfiguration/fdd"
+CellReconfigurationFailure S nbap.proc.uout "id-cellReconfiguration/fdd"
+CellReconfigurationRequestTDD S nbap.proc.imsg "id-cellReconfiguration/tdd"
+CellReconfigurationResponse S nbap.proc.sout "id-cellReconfiguration/tdd"
+CellReconfigurationFailure S nbap.proc.uout "id-cellReconfiguration/tdd"
+CellDeletionRequest S nbap.proc.imsg "id-cellDeletion/common"
+CellDeletionResponse S nbap.proc.sout "id-cellDeletion/common"
+CommonTransportChannelSetupRequestFDD S nbap.proc.imsg "id-commonTransportChannelSetup/fdd"
+CommonTransportChannelSetupResponse S nbap.proc.sout "id-commonTransportChannelSetup/fdd"
+CommonTransportChannelSetupFailure S nbap.proc.uout "id-commonTransportChannelSetup/fdd"
+CommonTransportChannelSetupRequestTDD S nbap.proc.imsg "id-commonTransportChannelSetup/tdd"
+CommonTransportChannelSetupResponse S nbap.proc.sout "id-commonTransportChannelSetup/tdd"
+CommonTransportChannelSetupFailure S nbap.proc.uout "id-commonTransportChannelSetup/tdd"
+CommonTransportChannelReconfigurationRequestFDD S nbap.proc.imsg "id-commonTransportChannelReconfigure/fdd"
+CommonTransportChannelReconfigurationResponse S nbap.proc.sout "id-commonTransportChannelReconfigure/fdd"
+CommonTransportChannelReconfigurationFailure S nbap.proc.uout "id-commonTransportChannelReconfigure/fdd"
+CommonTransportChannelReconfigurationRequestTDD S nbap.proc.imsg "id-commonTransportChannelReconfigure/tdd"
+CommonTransportChannelReconfigurationResponse S nbap.proc.sout "id-commonTransportChannelReconfigure/tdd"
+CommonTransportChannelReconfigurationFailure S nbap.proc.uout "id-commonTransportChannelReconfigure/tdd"
+CommonTransportChannelDeletionRequest S nbap.proc.imsg "id-commonTransportChannelDelete/common"
+CommonTransportChannelDeletionResponse S nbap.proc.sout "id-commonTransportChannelDelete/common"
+AuditRequest S nbap.proc.imsg "id-audit/common"
+AuditResponse S nbap.proc.sout "id-audit/common"
+AuditFailure S nbap.proc.uout "id-audit/common"
+BlockResourceRequest S nbap.proc.imsg "id-blockResource/common"
+BlockResourceResponse S nbap.proc.sout "id-blockResource/common"
+BlockResourceFailure S nbap.proc.uout "id-blockResource/common"
+RadioLinkSetupRequestFDD S nbap.proc.imsg "id-radioLinkSetup/fdd"
+RadioLinkSetupResponseFDD S nbap.proc.sout "id-radioLinkSetup/fdd"
+RadioLinkSetupFailureFDD S nbap.proc.uout "id-radioLinkSetup/fdd"
+RadioLinkSetupRequestTDD S nbap.proc.imsg "id-radioLinkSetup/tdd"
+RadioLinkSetupResponseTDD S nbap.proc.sout "id-radioLinkSetup/tdd"
+RadioLinkSetupFailureTDD S nbap.proc.uout "id-radioLinkSetup/tdd"
+SystemInformationUpdateRequest S nbap.proc.imsg "id-systemInformationUpdate/common"
+SystemInformationUpdateResponse S nbap.proc.sout "id-systemInformationUpdate/common"
+SystemInformationUpdateFailure S nbap.proc.uout "id-systemInformationUpdate/common"
+ResetRequest S nbap.proc.imsg "id-reset/common"
+ResetResponse S nbap.proc.sout "id-reset/common"
+CommonMeasurementInitiationRequest S nbap.proc.imsg "id-commonMeasurementInitiation/common"
+CommonMeasurementInitiationResponse S nbap.proc.sout "id-commonMeasurementInitiation/common"
+CommonMeasurementInitiationFailure S nbap.proc.uout "id-commonMeasurementInitiation/common"
+RadioLinkAdditionRequestFDD S nbap.proc.imsg "id-radioLinkAddition/fdd"
+RadioLinkAdditionResponseFDD S nbap.proc.sout "id-radioLinkAddition/fdd"
+RadioLinkAdditionFailureFDD S nbap.proc.uout "id-radioLinkAddition/fdd"
+RadioLinkAdditionRequestTDD S nbap.proc.imsg "id-radioLinkAddition/tdd"
+RadioLinkAdditionResponseTDD S nbap.proc.sout "id-radioLinkAddition/tdd"
+RadioLinkAdditionFailureTDD S nbap.proc.uout "id-radioLinkAddition/tdd"
+RadioLinkDeletionRequest S nbap.proc.imsg "id-radioLinkDeletion/common"
+RadioLinkDeletionResponse S nbap.proc.sout "id-radioLinkDeletion/common"
+RadioLinkReconfigurationPrepareFDD S nbap.proc.imsg "id-synchronisedRadioLinkReconfigurationPreparation/fdd"
+RadioLinkReconfigurationReady S nbap.proc.sout "id-synchronisedRadioLinkReconfigurationPreparation/fdd"
+RadioLinkReconfigurationFailure S nbap.proc.uout "id-synchronisedRadioLinkReconfigurationPreparation/fdd"
+RadioLinkReconfigurationPrepareTDD S nbap.proc.imsg "id-synchronisedRadioLinkReconfigurationPreparation/tdd"
+RadioLinkReconfigurationReady S nbap.proc.sout "id-synchronisedRadioLinkReconfigurationPreparation/tdd"
+RadioLinkReconfigurationFailure S nbap.proc.uout "id-synchronisedRadioLinkReconfigurationPreparation/tdd"
+RadioLinkReconfigurationRequestFDD S nbap.proc.imsg "id-unSynchronisedRadioLinkReconfiguration/fdd"
+RadioLinkReconfigurationResponse S nbap.proc.sout "id-unSynchronisedRadioLinkReconfiguration/fdd"
+RadioLinkReconfigurationFailure S nbap.proc.uout "id-unSynchronisedRadioLinkReconfiguration/fdd"
+RadioLinkReconfigurationRequestTDD S nbap.proc.imsg "id-unSynchronisedRadioLinkReconfiguration/tdd"
+RadioLinkReconfigurationResponse S nbap.proc.sout "id-unSynchronisedRadioLinkReconfiguration/tdd"
+RadioLinkReconfigurationFailure S nbap.proc.uout "id-unSynchronisedRadioLinkReconfiguration/tdd"
+DedicatedMeasurementInitiationRequest S nbap.proc.imsg "id-dedicatedMeasurementInitiation/common"
+DedicatedMeasurementInitiationResponse S nbap.proc.sout "id-dedicatedMeasurementInitiation/common"
+DedicatedMeasurementInitiationFailure S nbap.proc.uout "id-dedicatedMeasurementInitiation/common"
+PhysicalSharedChannelReconfigurationRequestFDD S nbap.proc.imsg "id-physicalSharedChannelReconfiguration/fdd"
+PhysicalSharedChannelReconfigurationResponse S nbap.proc.sout "id-physicalSharedChannelReconfiguration/fdd"
+PhysicalSharedChannelReconfigurationFailure S nbap.proc.uout "id-physicalSharedChannelReconfiguration/fdd"
+PhysicalSharedChannelReconfigurationRequestTDD S nbap.proc.imsg "id-physicalSharedChannelReconfiguration/tdd"
+PhysicalSharedChannelReconfigurationResponse S nbap.proc.sout "id-physicalSharedChannelReconfiguration/tdd"
+PhysicalSharedChannelReconfigurationFailure S nbap.proc.uout "id-physicalSharedChannelReconfiguration/tdd"
+InformationExchangeInitiationRequest S nbap.proc.imsg "id-informationExchangeInitiation/common"
+InformationExchangeInitiationResponse S nbap.proc.sout "id-informationExchangeInitiation/common"
+InformationExchangeInitiationFailure S nbap.proc.uout "id-informationExchangeInitiation/common"
+CellSynchronisationInitiationRequestTDD S nbap.proc.imsg "id-cellSynchronisationInitiation/tdd"
+CellSynchronisationInitiationResponseTDD S nbap.proc.sout "id-cellSynchronisationInitiation/tdd"
+CellSynchronisationInitiationFailureTDD S nbap.proc.uout "id-cellSynchronisationInitiation/tdd"
+CellSynchronisationReconfigurationRequestTDD S nbap.proc.imsg "id-cellSynchronisationReconfiguration/tdd"
+CellSynchronisationReconfigurationResponseTDD S nbap.proc.sout "id-cellSynchronisationReconfiguration/tdd"
+CellSynchronisationReconfigurationFailureTDD S nbap.proc.uout "id-cellSynchronisationReconfiguration/tdd"
+CellSynchronisationAdjustmentRequestTDD S nbap.proc.imsg "id-cellSynchronisationAdjustment/tdd"
+CellSynchronisationAdjustmentResponseTDD S nbap.proc.sout "id-cellSynchronisationAdjustment/tdd"
+CellSynchronisationAdjustmentFailureTDD S nbap.proc.uout "id-cellSynchronisationAdjustment/tdd"
+ResourceStatusIndication S nbap.proc.imsg "id-resourceStatusIndication/common"
+AuditRequiredIndication S nbap.proc.imsg "id-auditRequired/common"
+CommonMeasurementReport S nbap.proc.imsg "id-commonMeasurementReport/common"
+CommonMeasurementTerminationRequest S nbap.proc.imsg "id-commonMeasurementTermination/common"
+CommonMeasurementFailureIndication S nbap.proc.imsg "id-commonMeasurementFailure/common"
+RadioLinkReconfigurationCommit S nbap.proc.imsg "id-synchronisedRadioLinkReconfigurationCommit/common"
+RadioLinkReconfigurationCancel S nbap.proc.imsg "id-synchronisedRadioLinkReconfigurationCancellation/common"
+RadioLinkFailureIndication S nbap.proc.imsg "id-radioLinkFailure/common"
+RadioLinkPreemptionRequiredIndication S nbap.proc.imsg "id-radioLinkPreemption/common"
+RadioLinkRestoreIndication S nbap.proc.imsg "id-radioLinkRestoration/common"
+DedicatedMeasurementReport S nbap.proc.imsg "id-dedicatedMeasurementReport/common"
+DedicatedMeasurementTerminationRequest S nbap.proc.imsg "id-dedicatedMeasurementTermination/common"
+DedicatedMeasurementFailureIndication S nbap.proc.imsg "id-dedicatedMeasurementFailure/common"
+DL-PowerControlRequest S nbap.proc.imsg "id-downlinkPowerControl/fdd"
+DL-PowerTimeslotControlRequest S nbap.proc.imsg "id-downlinkPowerTimeslotControl/tdd"
+CompressedModeCommand S nbap.proc.imsg "id-compressedModeCommand/fdd"
+UnblockResourceIndication S nbap.proc.imsg "id-unblockResource/common"
+ErrorIndication S nbap.proc.imsg "id-errorIndicationForDedicated/common"
+ErrorIndication S nbap.proc.imsg "id-errorIndicationForCommon/common"
+CellSynchronisationReportTDD S nbap.proc.imsg "id-cellSynchronisationReporting/tdd"
+CellSynchronisationTerminationRequestTDD S nbap.proc.imsg "id-cellSynchronisationTermination/tdd"
+CellSynchronisationFailureIndicationTDD S nbap.proc.imsg "id-cellSynchronisationFailure/tdd"
+PrivateMessage S nbap.proc.imsg "id-privateMessageForDedicated/common"
+PrivateMessage S nbap.proc.imsg "id-privateMessageForCommon/common"
+InformationReport S nbap.proc.imsg "id-informationReporting/common"
+InformationExchangeTerminationRequest S nbap.proc.imsg "id-informationExchangeTermination/common"
+InformationExchangeFailureIndication S nbap.proc.imsg "id-informationExchangeFailure/common"
+BearerRearrangementIndication S nbap.proc.imsg "id-BearerRearrangement/common"
+RadioLinkActivationCommandFDD S nbap.proc.imsg "id-radioLinkActivation/fdd"
+RadioLinkActivationCommandTDD S nbap.proc.imsg "id-radioLinkActivation/tdd"
+RadioLinkParameterUpdateIndicationFDD S nbap.proc.imsg "id-radioLinkParameterUpdate/fdd"
+RadioLinkParameterUpdateIndicationTDD S nbap.proc.imsg "id-radioLinkParameterUpdate/tdd"
+MBMSNotificationUpdateCommand S nbap.proc.imsg "id-mBMSNotificationUpdate/common"
+UEStatusUpdateCommand S nbap.proc.imsg "id-uEStatusUpdate/common"
+SecondaryULFrequencyReport S nbap.proc.imsg "id-secondaryULFrequencyReporting/fdd"
+SecondaryULFrequencyUpdateIndication S nbap.proc.imsg "id-secondaryULFrequencyUpdate/fdd"
+#.END
diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.c b/epan/dissectors/asn1/nbap/packet-nbap-template.c
new file mode 100644
index 0000000000..46ca231ea7
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/packet-nbap-template.c
@@ -0,0 +1,570 @@
+/* packet-nbap-template.c
+ * Routines for UMTS Node B Application Part(NBAP) packet dissection
+ * Copyright 2005, 2009 Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref: 3GPP TS 25.433 version 6.6.0 Release 6
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/sctpppids.h>
+#include <epan/asn1.h>
+#include <epan/conversation.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+#include <epan/uat.h>
+
+#include "packet-per.h"
+#include "packet-isup.h"
+#include "packet-umts_fp.h"
+#include "packet-umts_mac.h"
+#include "packet-rrc.h"
+#include "packet-rlc.h"
+#include "packet-nbap.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "UTRAN Iub interface NBAP signalling"
+#define PSNAME "NBAP"
+#define PFNAME "nbap"
+
+
+#define NBAP_IGNORE_PORT 255
+
+/* Debug */
+#if 0
+#define nbap_debug(...) g_warning(__VA_ARGS__)
+#else
+#define nbap_debug(...)
+#endif
+
+void proto_register_nbap(void);
+void proto_reg_handoff_nbap(void);
+
+/* Global variables */
+static dissector_handle_t fp_handle;
+static guint32 transportLayerAddress_ipv4;
+static guint16 BindingID_port;
+static guint32 com_context_id;
+static int cfn;
+
+#include "packet-nbap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_nbap = -1;
+static int hf_nbap_transportLayerAddress_ipv4 = -1;
+static int hf_nbap_transportLayerAddress_ipv6 = -1;
+static int hf_nbap_transportLayerAddress_nsap = -1;
+
+#include "packet-nbap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_nbap = -1;
+static int ett_nbap_TransportLayerAddress = -1;
+static int ett_nbap_TransportLayerAddress_nsap = -1;
+static int ett_nbap_ib_sg_data = -1;
+
+#include "packet-nbap-ett.c"
+
+static expert_field ei_nbap_no_find_comm_context_id = EI_INIT;
+static expert_field ei_nbap_no_find_port_info = EI_INIT;
+static expert_field ei_nbap_no_set_comm_context_id = EI_INIT;
+static expert_field ei_nbap_hsdsch_entity_not_specified = EI_INIT;
+
+extern int proto_fp;
+
+/*
+ * Structure to build information needed to dissect the FP flow beeing set up.
+ */
+struct _nbap_msg_info_for_fp
+{
+ guint32 ProcedureCode;
+ guint32 ddMode;
+ gboolean is_uplink;
+ gint channel; /* see definitions in packet-umts_fp.h Channel types */
+ guint8 dch_crc_present; /* 0=No, 1=Yes, 2=Unknown */
+};
+
+typedef struct
+{
+ gint num_dch_in_flow;
+ gint next_dch;
+ gint num_ul_chans;
+ gint ul_chan_tf_size[MAX_FP_CHANS];
+ gint ul_chan_num_tbs[MAX_FP_CHANS];
+ gint num_dl_chans;
+ gint dl_chan_tf_size[MAX_FP_CHANS];
+ gint dl_chan_num_tbs[MAX_FP_CHANS];
+
+}nbap_dch_channel_info_t;
+
+nbap_dch_channel_info_t nbap_dch_chnl_info[256];
+
+/* Struct to collect E-DCH data in a packet
+ * As the address data comes before the ddi entries
+ * we save the address to be able to find the conversation and update the
+ * conversation data.
+ */
+typedef struct
+{
+ address crnc_address;
+ guint16 crnc_port;
+ gint no_ddi_entries;
+ guint8 edch_ddi[MAX_EDCH_DDIS];
+ guint edch_macd_pdu_size[MAX_EDCH_DDIS];
+ guint8 edch_type; /* 1 means T2 */
+ guint8 lchId[MAX_EDCH_DDIS]; /*Logical channel ids.*/
+
+} nbap_edch_channel_info_t;
+
+nbap_edch_channel_info_t nbap_edch_channel_info[maxNrOfEDCHMACdFlows];
+
+
+typedef struct
+{
+ guint32 crnc_address;
+ guint16 crnc_port[maxNrOfEDCHMACdFlows];
+
+} nbap_edch_port_info_t;
+
+
+typedef struct
+{
+ address crnc_address;
+ guint16 crnc_port;
+ enum fp_rlc_mode rlc_mode;
+ guint32 hsdsch_physical_layer_category;
+ guint8 entity; /* "ns" means type 1 and "ehs" means type 2, type 3 == ?*/
+} nbap_hsdsch_channel_info_t;
+
+nbap_hsdsch_channel_info_t nbap_hsdsch_channel_info[maxNrOfMACdFlows];
+
+typedef struct
+{
+ address crnc_address;
+ guint16 crnc_port;
+ enum fp_rlc_mode rlc_mode;
+
+} nbap_common_channel_info_t;
+
+nbap_common_channel_info_t nbap_common_channel_info[maxNrOfMACdFlows]; /*TODO: Fix this!*/
+
+gint g_num_dch_in_flow;
+/* maxNrOfTFs INTEGER ::= 32 */
+gint g_dchs_in_flow_list[maxNrOfTFs];
+
+gint hsdsch_macdflow_ids[maxNrOfMACdFlows];
+
+gint hrnti;
+
+guint node_b_com_context_id;
+
+static GTree * edch_flow_port_map = NULL;
+
+/*Stuff for mapping NodeB-Comuncation Context ID to CRNC Communication Context ID*/
+typedef struct com_ctxt_{
+ /*guint nodeb_context;*/
+ guint crnc_context;
+ guint frame_num;
+}nbap_com_context_id_t;
+
+gboolean crcn_context_present = FALSE;
+static GTree * com_context_map;
+
+struct _nbap_msg_info_for_fp g_nbap_msg_info_for_fp;
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint32 ddMode;
+static const gchar *ProcedureID;
+static guint32 t_dch_id, dch_id, prev_dch_id, commonphysicalchannelid, e_dch_macdflow_id, hsdsch_macdflow_id=3,
+ e_dch_ddi_value,logical_channel_id,common_macdflow_id;
+static guint32 MACdPDU_Size, commontransportchannelid;
+static guint num_items;
+static gint paging_indications;
+static guint32 ib_type, segment_type;
+
+enum TransportFormatSet_type_enum
+{
+ NBAP_DCH_UL,
+ NBAP_DCH_DL,
+ NBAP_CPCH,
+ NBAP_FACH,
+ NBAP_PCH
+};
+
+enum TransportFormatSet_type_enum transportFormatSet_type;
+
+/* This table is used externally from FP, MAC and such, TODO: merge this with
+ * lch_contents[] */
+guint8 lchId_type_table[]= {
+ MAC_CONTENT_UNKNOWN, /* Shouldn't happen*/
+ MAC_CONTENT_DCCH, /* 1 to 4 SRB => DCCH*/
+ MAC_CONTENT_DCCH,
+ MAC_CONTENT_DCCH,
+ MAC_CONTENT_DCCH,
+ MAC_CONTENT_CS_DTCH, /* 5 to 7 Conv CS speech => ?*/
+ MAC_CONTENT_CS_DTCH,
+ MAC_CONTENT_CS_DTCH,
+ MAC_CONTENT_DCCH, /* 8 SRB => DCCH*/
+ MAC_CONTENT_PS_DTCH, /* 9 maps to DTCH*/
+ MAC_CONTENT_UNKNOWN, /* 10 Conv CS unknown*/
+ MAC_CONTENT_PS_DTCH, /* 11 Interactive PS => DTCH*/
+ MAC_CONTENT_PS_DTCH, /* 12 Streaming PS => DTCH*/
+ MAC_CONTENT_CS_DTCH, /* 13 Streaming CS*/
+ MAC_CONTENT_PS_DTCH, /* 14 Interactive PS => DTCH*/
+ MAC_CONTENT_CCCH /* This is CCCH? */
+};
+
+/* Mapping logicalchannel id to RLC_MODE */
+guint8 lchId_rlc_map[] = {
+ 0,
+ RLC_UM, /* Logical channel id = 1 is SRB1 which uses RLC_UM*/
+ RLC_AM,
+ RLC_AM,
+ RLC_AM,
+ RLC_TM, /*5 to 7 Conv CS Speech*/
+ RLC_TM,
+ RLC_TM, /*...*/
+ RLC_AM,
+ RLC_AM,
+ RLC_AM,
+ RLC_AM,
+ RLC_AM,
+ RLC_AM,
+ RLC_AM,
+ RLC_AM, /* This is CCCH which is UM?, probably not */
+};
+
+
+/* Preference variables */
+/* Array with preference variables for easy looping, TODO: merge this with
+ * lchId_type_table[] */
+static int lch_contents[16] = {
+ MAC_CONTENT_DCCH,
+ MAC_CONTENT_DCCH,
+ MAC_CONTENT_DCCH,
+ MAC_CONTENT_DCCH,
+ MAC_CONTENT_CS_DTCH,
+ MAC_CONTENT_CS_DTCH,
+ MAC_CONTENT_CS_DTCH,
+ MAC_CONTENT_DCCH,
+ MAC_CONTENT_PS_DTCH,
+ MAC_CONTENT_UNKNOWN,
+ MAC_CONTENT_PS_DTCH,
+ MAC_CONTENT_PS_DTCH,
+ MAC_CONTENT_CS_DTCH,
+ MAC_CONTENT_PS_DTCH,
+ MAC_CONTENT_CCCH,
+ MAC_CONTENT_DCCH
+};
+static const enum_val_t content_types[] = {
+ {"MAC_CONTENT_UNKNOWN", "MAC_CONTENT_UNKNOWN", MAC_CONTENT_UNKNOWN},
+ {"MAC_CONTENT_DCCH", "MAC_CONTENT_DCCH", MAC_CONTENT_DCCH},
+ {"MAC_CONTENT_PS_DTCH", "MAC_CONTENT_PS_DTCH", MAC_CONTENT_PS_DTCH},
+ {"MAC_CONTENT_CS_DTCH", "MAC_CONTENT_CS_DTCH", MAC_CONTENT_CS_DTCH},
+ {"MAC_CONTENT_CCCH", "MAC_CONTENT_CCCH", MAC_CONTENT_CCCH},
+ {NULL, NULL, -1}};
+typedef struct {
+ const char *name;
+ const char *title;
+ const char *description;
+} preference_strings;
+/* This is used when registering preferences, name, title, description */
+static const preference_strings ch_strings[] = {
+ {"lch1_content", "Logical Channel 1 Content", "foo"},
+ {"lch2_content", "Logical Channel 2 Content", "foo"},
+ {"lch3_content", "Logical Channel 3 Content", "foo"},
+ {"lch4_content", "Logical Channel 4 Content", "foo"},
+ {"lch5_content", "Logical Channel 5 Content", "foo"},
+ {"lch6_content", "Logical Channel 6 Content", "foo"},
+ {"lch7_content", "Logical Channel 7 Content", "foo"},
+ {"lch8_content", "Logical Channel 8 Content", "foo"},
+ {"lch9_content", "Logical Channel 9 Content", "foo"},
+ {"lch10_content", "Logical Channel 10 Content", "foo"},
+ {"lch11_content", "Logical Channel 11 Content", "foo"},
+ {"lch12_content", "Logical Channel 12 Content", "foo"},
+ {"lch13_content", "Logical Channel 13 Content", "foo"},
+ {"lch14_content", "Logical Channel 14 Content", "foo"},
+ {"lch15_content", "Logical Channel 15 Content", "foo"},
+ {"lch16_content", "Logical Channel 16 Content", "foo"}};
+
+/* Dissector tables */
+static dissector_table_t nbap_ies_dissector_table;
+static dissector_table_t nbap_extension_dissector_table;
+static dissector_table_t nbap_proc_imsg_dissector_table;
+static dissector_table_t nbap_proc_sout_dissector_table;
+static dissector_table_t nbap_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+/*Easy way to add hsdhsch binds for corner cases*/
+static void add_hsdsch_bind(packet_info * pinfo);
+
+#include "packet-nbap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(nbap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(nbap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureID) return 0;
+ return (dissector_try_string(nbap_proc_imsg_dissector_table, ProcedureID, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureID) return 0;
+ return (dissector_try_string(nbap_proc_sout_dissector_table, ProcedureID, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureID) return 0;
+ return (dissector_try_string(nbap_proc_uout_dissector_table, ProcedureID, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+static void add_hsdsch_bind(packet_info *pinfo){
+ address null_addr;
+ conversation_t *conversation = NULL;
+ umts_fp_conversation_info_t *umts_fp_conversation_info;
+ guint32 i;
+
+ if (pinfo->fd->flags.visited){
+ return;
+ }
+
+ /* Set port to zero use that as an indication of whether we have data or not */
+ clear_address(&null_addr);
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ if (nbap_hsdsch_channel_info[i].crnc_port != 0){
+ conversation = find_conversation(pinfo->num, &(nbap_hsdsch_channel_info[i].crnc_address), &null_addr,
+ PT_UDP,
+ nbap_hsdsch_channel_info[i].crnc_port, 0, NO_ADDR_B);
+
+
+ if (conversation == NULL) {
+ /* It's not part of any conversation - create a new one. */
+ conversation = conversation_new(pinfo->num, &(nbap_hsdsch_channel_info[i].crnc_address),
+ &null_addr, PT_UDP, nbap_hsdsch_channel_info[i].crnc_port,
+ 0, NO_ADDR2|NO_PORT2);
+
+ /* Set dissector */
+ conversation_set_dissector(conversation, fp_handle);
+
+ if(pinfo->link_dir==P2P_DIR_DL){
+ umts_fp_conversation_info = wmem_new0(wmem_file_scope(), umts_fp_conversation_info_t);
+ /* Fill in the HSDSCH relevant data */
+
+ umts_fp_conversation_info->iface_type = IuB_Interface;
+ umts_fp_conversation_info->division = Division_FDD;
+ umts_fp_conversation_info->channel = CHANNEL_HSDSCH;
+ umts_fp_conversation_info->dl_frame_number = 0;
+ umts_fp_conversation_info->ul_frame_number = pinfo->num;
+ copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
+ umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+
+ /*Added june 3, normally just the iterator variable*/
+ umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+
+ /* Cheat and use the DCH entries */
+ umts_fp_conversation_info->num_dch_in_flow++;
+ umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+
+ /*XXX: Is this craziness, what is physical_layer? */
+ if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
+ /*Error*/
+ expert_add_info(pinfo, NULL, &ei_nbap_hsdsch_entity_not_specified);
+ }else{
+ umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ }
+ umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
+ }
+ }
+ }
+
+}
+static gint nbap_key_cmp(gconstpointer a_ptr, gconstpointer b_ptr, gpointer ignore _U_){
+ if( GPOINTER_TO_INT(a_ptr) > GPOINTER_TO_INT(b_ptr) ){
+ return -1;
+ }
+ return GPOINTER_TO_INT(a_ptr) < GPOINTER_TO_INT(b_ptr);
+}
+/*static void nbap_free_key(gpointer key ){
+ g_free(key);
+
+ }*/
+
+static void nbap_init(void){
+ guint8 i;
+ /*Initialize*/
+ com_context_map = g_tree_new_full(nbap_key_cmp,
+ NULL, /* data pointer, optional */
+ NULL, /* function to free the memory allocated for the key used when removing the entry */
+ g_free);
+
+
+ /*Initialize structure for muxed flow indication*/
+ edch_flow_port_map = g_tree_new_full(nbap_key_cmp,
+ NULL, /* data pointer, optional */
+ NULL, /* function to free the memory allocated for the key used when removing the entry */
+ g_free);
+
+ for (i = 0; i < 15; i++) {
+ lchId_type_table[i+1] = lch_contents[i];
+ }
+}
+
+static void nbap_cleanup(void){
+ /*Cleanup*/
+ g_tree_destroy(com_context_map);
+ g_tree_destroy(edch_flow_port_map);
+}
+
+static int
+dissect_nbap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ proto_item *nbap_item = NULL;
+ proto_tree *nbap_tree = NULL;
+ int i;
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "NBAP");
+
+ /* create the nbap protocol tree */
+ nbap_item = proto_tree_add_item(tree, proto_nbap, tvb, 0, -1, ENC_NA);
+ nbap_tree = proto_item_add_subtree(nbap_item, ett_nbap);
+
+ /*Do a little cleanup just as a precaution*/
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ nbap_hsdsch_channel_info[i].entity = hs;
+ }
+
+ return dissect_NBAP_PDU_PDU(tvb, pinfo, nbap_tree, data);
+}
+
+/*--- proto_register_nbap -------------------------------------------*/
+void proto_register_nbap(void)
+{
+ module_t *nbap_module;
+ guint8 i;
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_nbap_transportLayerAddress_ipv4,
+ { "transportLayerAddress IPv4", "nbap.transportLayerAddress_ipv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nbap_transportLayerAddress_ipv6,
+ { "transportLayerAddress IPv6", "nbap.transportLayerAddress_ipv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nbap_transportLayerAddress_nsap,
+ { "transportLayerAddress NSAP", "nbap.transportLayerAddress_NSAP",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ #include "packet-nbap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_nbap,
+ &ett_nbap_TransportLayerAddress,
+ &ett_nbap_TransportLayerAddress_nsap,
+ &ett_nbap_ib_sg_data,
+ #include "packet-nbap-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_nbap_no_set_comm_context_id, { "nbap.no_set_comm_context_id", PI_MALFORMED, PI_WARN, "Couldn't not set Communication Context-ID, fragments over reconfigured channels might fail", EXPFILL }},
+ { &ei_nbap_no_find_comm_context_id, { "nbap.no_find_comm_context_id", PI_MALFORMED, PI_WARN, "Couldn't not find Communication Context-ID, unable to reconfigure this E-DCH flow.", EXPFILL }},
+ { &ei_nbap_no_find_port_info, { "nbap.no_find_port_info", PI_MALFORMED, PI_WARN, "Couldn't not find port information for reconfigured E-DCH flow, unable to reconfigure", EXPFILL }},
+ { &ei_nbap_hsdsch_entity_not_specified, { "nbap.hsdsch_entity_not_specified", PI_MALFORMED,PI_ERROR, "HSDSCH Entity not specified!", EXPFILL }},
+ };
+
+ expert_module_t* expert_nbap;
+
+ /* Register protocol */
+ proto_nbap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_nbap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_nbap = expert_register_protocol(proto_nbap);
+ expert_register_field_array(expert_nbap, ei, array_length(ei));
+
+ /* Register dissector */
+ register_dissector("nbap", dissect_nbap, proto_nbap);
+
+ nbap_module = prefs_register_protocol(proto_nbap, NULL);
+
+ /* Register preferences for mapping logical channel IDs to MAC content types. */
+ for (i = 0; i < 16; i++) {
+ prefs_register_enum_preference(nbap_module, ch_strings[i].name, ch_strings[i].title, ch_strings[i].description, &lch_contents[i], content_types, FALSE);
+ }
+
+ /* Register dissector tables */
+ nbap_ies_dissector_table = register_dissector_table("nbap.ies", "NBAP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ nbap_extension_dissector_table = register_dissector_table("nbap.extension", "NBAP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ nbap_proc_imsg_dissector_table = register_dissector_table("nbap.proc.imsg", "NBAP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ nbap_proc_sout_dissector_table = register_dissector_table("nbap.proc.sout", "NBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ nbap_proc_uout_dissector_table = register_dissector_table("nbap.proc.uout", "NBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ register_init_routine(nbap_init);
+ register_cleanup_routine(nbap_cleanup);
+}
+
+/*
+ * #define EXTRA_PPI 1
+ */
+/*--- proto_reg_handoff_nbap ---------------------------------------*/
+void
+proto_reg_handoff_nbap(void)
+{
+ dissector_handle_t nbap_handle;
+
+ nbap_handle = find_dissector("nbap");
+ fp_handle = find_dissector("fp");
+ dissector_add_uint("sctp.ppi", NBAP_PAYLOAD_PROTOCOL_ID, nbap_handle);
+#ifdef EXTRA_PPI
+ dissector_add_uint("sctp.ppi", 17, nbap_handle);
+#endif
+ dissector_add_for_decode_as("sctp.port", nbap_handle);
+
+#include "packet-nbap-dis-tab.c"
+}
+
+
diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.h b/epan/dissectors/asn1/nbap/packet-nbap-template.h
new file mode 100644
index 0000000000..705d32bd65
--- /dev/null
+++ b/epan/dissectors/asn1/nbap/packet-nbap-template.h
@@ -0,0 +1,57 @@
+/* packet-nbap-template.h
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_NBAP_H
+#define PACKET_NBAP_H
+
+#include "packet-rlc.h"
+#include "packet-umts_mac.h"
+
+/*
+ * Ericsson specific mapping for various dissector settings.
+ * Must be altered for other equipment.
+ */
+
+/*Array are indexed on logical channel id, meaning they need to be defined for 1-15*/
+/* Mapping from logical channel id to MAC content type ie. DCCH or DTCH*/
+extern guint8 lchId_type_table[];
+
+/* Mapping logicalchannel id to RLC_MODE */
+extern guint8 lchId_rlc_map[];
+
+#if 0
+static const value_string lchid_name_resolve[] = {
+ {1,"DCCH"}, /* 1 to 4 SRB => DCCH*/
+ {2,"DCCH"},
+ {3,"DCCH"},
+ {4,"DCCH"},
+ {8,"DCCH"}, /* 8 SRB => DCCH*/
+ {9,"DTCH"}, /*9 maps to DTCH*/
+ {10,"UNKNOWN"}, /*10 Conv CS unknown*/
+ {11,"DTCH"}, /*11 Interactive PS => DTCH*/
+ {12,"DTCH"}, /*12 13 Streaming PS => DTCH*/
+ {13,"DTCH"},
+ {14,"DTCH"}, /*14 Interatictive PS => DTCH*/
+ {15,"MAC_CONTENT_UNKNOWN"},
+ {0, NULL} /* This is CCCH? */
+};
+#endif
+#endif
diff --git a/epan/dissectors/asn1/novell_pkis/CMakeLists.txt b/epan/dissectors/asn1/novell_pkis/CMakeLists.txt
new file mode 100644
index 0000000000..2e46c68876
--- /dev/null
+++ b/epan/dissectors/asn1/novell_pkis/CMakeLists.txt
@@ -0,0 +1,45 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME novell_pkis )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${EXT_ASN_FILE_LIST}
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -u )
+
+ASN2WRS()
diff --git a/epan/dissectors/asn1/novell_pkis/Makefile.am b/epan/dissectors/asn1/novell_pkis/Makefile.am
new file mode 100644
index 0000000000..133eae060f
--- /dev/null
+++ b/epan/dissectors/asn1/novell_pkis/Makefile.am
@@ -0,0 +1,21 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
diff --git a/epan/dissectors/asn1/novell_pkis/Makefile.common b/epan/dissectors/asn1/novell_pkis/Makefile.common
new file mode 100644
index 0000000000..86ce4076fe
--- /dev/null
+++ b/epan/dissectors/asn1/novell_pkis/Makefile.common
@@ -0,0 +1,34 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+PROTOCOL_NAME=novell_pkis
+
+EXT_ASN_FILE_LIST =
+ASN_FILE_LIST = $(PROTOCOL_NAME).asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS = -b -u
diff --git a/epan/dissectors/asn1/novell_pkis/Makefile.nmake b/epan/dissectors/asn1/novell_pkis/Makefile.nmake
new file mode 100644
index 0000000000..4480307364
--- /dev/null
+++ b/epan/dissectors/asn1/novell_pkis/Makefile.nmake
@@ -0,0 +1,24 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
diff --git a/epan/dissectors/asn1/novell_pkis/novell_pkis.asn b/epan/dissectors/asn1/novell_pkis/novell_pkis.asn
new file mode 100644
index 0000000000..fff6c8a9ad
--- /dev/null
+++ b/epan/dissectors/asn1/novell_pkis/novell_pkis.asn
@@ -0,0 +1,283 @@
+-- from pkisv10.pdf
+-- you can find this document at https://web.archive.org/web/19990224174228/http://www.developer.novell.com/repository/attributes/certattrs_v10.htm
+
+PKIS { joint-iso-ccitt(2) country(16) us(840) organization(1) novell (113719) } DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- ASN.1 Definition of Useful Attributes
+
+-- The following are useful Novell OIDs, etc.
+novell OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) country(16) us(840) organization(1) novell (113719)}
+applications OBJECT IDENTIFIER ::= {novell applications(1) }
+pki OBJECT IDENTIFIER ::= {applications pki(9) }
+pkiAttributeType OBJECT IDENTIFIER ::= {pki at(4) }
+pkiAttributeSyntax OBJECT IDENTIFIER ::= {pki at(5) }
+pkiObjectClass OBJECT IDENTIFIER ::= {pki at(6) }
+
+-- The following unique PKI attributes are hereby defined under the novell applications pki arc:
+pa-sa OBJECT IDENTIFIER ::= { pkiAttributeType (1) }
+ -- securityAttributes
+ -- 2.16.840.113719.1.9.4.1
+
+pa-rl OBJECT IDENTIFIER ::= { pkiAttributeType (2) }
+ -- relianceLimit
+ -- 2.16.840.113719.1.9.4.2
+
+SecurityAttributes ::= SEQUENCE {
+ versionNumber OCTET STRING (SIZE (2)),
+ -- The initial value should be (01 00)
+ -- The first octet is the major version,
+ -- the second octet is the minor version number.
+ nSI BOOLEAN (TRUE),
+ -- NSI = “Nonverified Subscriber Information”
+ -- If FALSE, it means that the CA issuing
+ -- a certificate HAS verified the validity
+ -- of ALL of the values contained
+ -- within the Novell Security Attributes
+ -- using appropriate means as defined
+ -- for example in their Certificate Policy
+ -- and/or Certificate Practice Statement
+ -- If TRUE, it means that the subscriber
+ -- requesting the certificate has represented
+ -- to the CA that the extension defined
+ -- is valid and correct, but that the CA
+ -- has not independently validated the accuracy
+ -- of the attribute. Note that in no case may
+ -- the CA issue a certificate containing an
+ -- extension which it has reason to
+ -- believe is not accurate at the time of
+ -- issuance, except for test certificates
+ -- which are identified as such in the
+ -- Certificate class attribute (by setting
+ -- the certificateValid flag to FALSE.)
+ securityTM PrintableString ("Novell Security Attribute(tm)"),
+ -- Note: Since the “Novell Security
+ -- Attribute(tm)” string is trademarked, if
+ -- it is displayed visually to the user it
+ -- must be presented exactly as shown,
+ -- in English, even in non-English
+ -- implementations. A translation of the
+ -- phrase may be displayed to the user
+ -- in addition, if desired.
+ -- Vendors who license the use of the term
+ -- must agree to check for the presence of
+ -- this string in any attribute defined (by its
+ -- OID) as a Novell Security attribute
+ uriReference IA5String,
+ -- The initial value should be set to (“http://developer.novell.com/repository/attributes/certattrs_v10.htm”),
+ -- This attribute will be included in all
+ -- NICI and PKIS certificates.
+ -- Novell will maintain a copy of this
+ -- document or other suitable definition
+ -- at that location.
+ gLBExtensions GLBExtensions
+}
+
+GLBExtensions::=SEQUENCE{
+ -- These are the extensions over which the
+ -- Greatest Lower Bound is computed within NICI.
+ keyQuality [0] IMPLICIT KeyQuality,
+ cryptoProcessQuality [1] IMPLICIT CryptoProcessQuality,
+ certificateClass [2] IMPLICIT CertificateClass,
+ enterpriseId [3] IMPLICIT EnterpriseId
+}
+
+-- ASN.1 Definitions of Key Quality and Crypto Process Quality Attributes:
+KeyQuality ::= Quality
+CryptoProcessQuality ::= Quality
+
+Quality ::= SEQUENCE {
+ enforceQuality BOOLEAN,
+ -- If TRUE, the explicit attributes compusecQuality,
+ -- cryptoQuality, and keyStorageQuality, plus the
+ -- implicit attributes algorithmType and keyLength
+ -- are either enforced at all times, or a dynamic low
+ -- water mark (Greatest Lower Bound)may be maintained.
+ -- I.e., if enforceQuality is TRUE for the
+ -- keyQuality attribute, the key must never be
+ -- allowed to be transported to and/or used on any
+ -- platform that does not meet the minimum
+ -- criteria, and hence enforceQuality must be TRUE for
+ -- the cryptoProcessQuality as well
+ -- If enforceQuality is FALSE for keyQuality, but
+ -- TRUE for cryptoProcessQuality, then the
+ -- operating system has not enforced the criteria
+ -- in any technical sense, but the subscriber
+ -- is nonetheless representing that the minimum
+ -- criteria will be maintained,
+ -- e.g., by manual or procedural controls.
+ -- For PKIS and NICI versions 1.0, enforceQuality
+ -- must be set to FALSE in the keyQuality attribute.
+ compusecQuality CompusecQuality,
+ cryptoQuality CryptoQuality,
+ keyStorageQuality INTEGER (0..255) -- See definitions in Appendix C
+}
+
+CompusecQuality ::= SEQUENCE SIZE (1..1)
+ OF CompusecQualityPair
+ -- Multiple pairs of {Criteria, Rating} are allowed
+ -- In the first release, only one pair(TCSEC criteria)is provided
+
+CompusecQualityPair ::= SEQUENCE {
+ compusecCriteria INTEGER(0..255),
+ -- The default should be 1, but DEFAULT implies OPTIONAL, which
+ -- is not the intent. So the value has to be coded explicitly.
+ -- 0= Reserved (encoding error)
+ -- 1= Trusted Computer Security Evaluation Criteria (TCSEC)
+ -- 2= International Trusted Security Evaluation Criteria (ITSEC)
+ -- 3= Common Criteria
+ -- all others reserved
+ compusecRating INTEGER (0..255)
+ -- the compusecRating is in accordance with the specified
+ -- compusecCriteria for each pair in the sequence
+ -- Defined values for ratings for components and systems formally
+ -- evaluated in accordance with the Trusted Computer Security
+ -- Evaluation Criteria and the Trusted Network Interpretation
+ -- (Red Book) are provided in Appendix A.
+}
+
+CryptoQuality ::= SEQUENCE SIZE (1..1)
+ OF CryptoQualityPair
+ -- Multiple pairs of {Criteria, Rating} are allowed.
+ -- In the initial release, only one pair is provided.
+
+CryptoQualityPair ::= SEQUENCE {
+ cryptoModuleCriteria INTEGER(0..255),
+ -- The default should be 1, but DEFAULT implies OPTIONAL, which
+ -- is not the intent. So the value has to be coded explicitly.
+ -- 1 = FIPS 140-1
+ -- all others reserved
+ cryptoModuleRating INTEGER (0..255)
+ -- the cryptoModuleRating value is in accordance with
+ -- the specified cryptoModuleCriteria for each pair
+ -- FIPS 140-1 ratings definitions:
+ -- 0 = Reserved (encoding error)
+ -- 1 = unevaluated/unknown,
+ -- all others—see Appendix B
+}
+
+-- ASN.1 Definition of Certificate Class Attribute:
+
+CertificateClass ::= SEQUENCE {
+ classValue INTEGER (0..255),
+ -- Defined class values are contained in Appendix C
+ certificateValid BOOLEAN
+ -- The default should be true, but DEFAULT is OPTIONAL
+ -- which would make the GLB computation awkward.
+ -- See Section 5 and the footnote for a discussion.
+}
+
+-- ASN.1 Definition of Enterprise Identifier Attribute:
+
+EnterpriseId ::= SEQUENCE {
+ rootLabel [0] IMPLICIT SecurityLabelType1,
+ registryLabel [1] IMPLICIT SecurityLabelType1,
+ enterpriseLabel [2] IMPLICIT SEQUENCE SIZE (1..1) OF SecurityLabelType1
+}
+
+SecurityLabelType1 ::= SEQUENCE {
+ labelType1 INTEGER (0..255),
+ -- The default should be 2, but DEFAULT implies OPTIONAL, which
+ -- is not the intent. So the value has to be coded explicitly.
+ -- Note that the label type for Version 1
+ -- of Graded Authentication is 0 or 1.
+ -- Byte sizes and reserved fields are omitted,
+ -- because they are derivable from the ASN.1.
+ secrecyLevel1 INTEGER (0..255),
+ -- The default should be 0, but DEFAULT implies OPTIONAL, which
+ -- is not the intent. So the value has to be coded explicitly.
+ -- 0 = low secrecy, 255 = high secrecy
+ -- It seems highly unlikely anyone would ever
+ -- need more than 255 secrecy levels
+ integrityLevel1 INTEGER (0..255),
+ -- The default should be 0, but DEFAULT implies OPTIONAL, which
+ -- is not the intent. So the value has to be coded explicitly.
+ -- NOTE! 255 = low integrity, 0 = high integrity!
+ -- It seems highly unlikely anyone would ever
+ -- need more than 255 integrity levels
+ secrecyCategories1 BIT STRING (SIZE(96)),
+ -- The default should be FALSE, but DEFAULT implies OPTIONAL,
+ -- which is not the intent. So the value has to be coded
+ -- explicitly.
+ -- 96 secrecy categories, 0 origin indexing
+ integrityCategories1 BIT STRING (SIZE(64)),
+ -- The default should be FALSE, but DEFAULT implies OPTIONAL,
+ -- which is not the intent. So the value has to be coded
+ -- explicitly.
+ -- 64 integrity categories, 0 origin indexing
+ secrecySingletons1 Singletons,
+ integritySingletons1 Singletons
+}
+
+-- (removed the unused definition of SecurityLabelType2)
+
+Singletons ::= SEQUENCE SIZE (1..16) OF SingletonChoice
+ -- Presently up to 16 singletons or singleton ranges
+ -- can be defined within one security label. This
+ -- is completely arbitrary and can be easily changed,
+ -- but it seems reasonable. Note that no more space
+ -- is taken in the ASN.1 DER encoding than is actually
+ -- required.
+
+SingletonChoice ::= CHOICE {
+ uniqueSingleton INTEGER (0..9223372036854775807),
+ -- The implied value of the singleton being
+ -- specified in this case is TRUE.
+ -- Note that there isn’t any way to set a
+ -- singleton value to FALSE, except by using the
+ -- SingletonRange functions with identical lower
+ -- and upper bounds.
+ singletonRange SingletonRange
+}
+
+SingletonRange ::= SEQUENCE {
+ singletonLowerBound INTEGER (0..9223372036854775807),
+ -- The default should be 0, but DEFAULT implies OPTIONAL,
+ -- which is not the intent. So the value has to be coded
+ -- explicitly.
+ -- Lower bound of a range of singletons
+ -- to be set to the singletonValue specified
+
+ singletonUpperBound INTEGER (0..9223372036854775807),
+ -- The default should be 9223372036854775807,
+ -- but DEFAULT implies OPTIONAL,
+ -- which is not the intent. So the value has to be coded
+ -- explicitly.
+ -- Upper bound of a range of singletons
+ -- to be set to the singletonValue specified
+ singletonValue BOOLEAN
+ -- An entire range of singletons can be set to
+ -- either TRUE or FALSE.
+ -- Note that singletonRanges are allowed to overlap,
+ -- and in particular that a uniqueSingleton can
+ -- reset a singleton value already set by a
+ -- singletonRange, and vice versa.
+ -- The uniqueSingleton and singletonRanges are applied
+ -- consecutively, from the lower bound of SEQUENCE (1)
+ -- to the upper bound.
+}
+
+-- ASN.1 Definition of Reliance Limit Attribute:
+
+-- relianceLimits EXTENSION ::= { SYNTAX RelianceLimits IDENTIFIED BY {pa-rl) }
+-- 2.16.840.113719.1.9.4.2
+
+RelianceLimits ::= SEQUENCE {
+ perTransactionLimit MonetaryValue,
+ perCertificateLimit MonetaryValue
+}
+
+MonetaryValue ::= SEQUENCE { -- from SET and draft ANSI X9.45
+ currency Currency,
+ amount INTEGER, -- value is amount * (10 ** amtExp10), an exact representation
+ amtExp10 INTEGER
+}
+
+Currency ::= INTEGER (1..999)
+-- currency denomination from ISO 4217
+-- cf. Appendix E for the numeric currency codes and their
+-- alphabetic (display) equivalents.
+-- US Dollar (USD) is 840.
+-- Euro (EUR) is 978.
+
+END
diff --git a/epan/dissectors/asn1/novell_pkis/novell_pkis.cnf b/epan/dissectors/asn1/novell_pkis/novell_pkis.cnf
new file mode 100644
index 0000000000..b1f9231faa
--- /dev/null
+++ b/epan/dissectors/asn1/novell_pkis/novell_pkis.cnf
@@ -0,0 +1,21 @@
+# novell_pkis.cnf
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.REGISTER
+SecurityAttributes B "2.16.840.1.113719.1.9.4.1" "pa-sa"
+RelianceLimits B "2.16.840.1.113719.1.9.4.2" "pa-rl"
+
+#.PDU
+
+# PKIS-MESSAGE
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
diff --git a/epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c b/epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c
new file mode 100644
index 0000000000..6840b6b1a3
--- /dev/null
+++ b/epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c
@@ -0,0 +1,63 @@
+/* packet-novell_pkis.c
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/conversation.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-ber.h"
+
+#include "packet-novell_pkis-hf.c"
+#include "packet-novell_pkis-ett.c"
+#include "packet-novell_pkis-fn.c"
+
+void proto_register_novell_pkis (void);
+void proto_reg_handoff_novell_pkis(void);
+
+static int proto_novell_pkis = -1;
+
+void proto_reg_handoff_novell_pkis(void)
+{
+#include "packet-novell_pkis-dis-tab.c"
+}
+
+void proto_register_novell_pkis (void)
+{
+ static hf_register_info hf[] = {
+#include "packet-novell_pkis-hfarr.c"
+ };
+ static gint *ett[] = {
+#include "packet-novell_pkis-ettarr.c"
+ };
+
+ /* execute protocol initialization only once */
+ if (proto_novell_pkis != -1) return;
+
+ proto_novell_pkis = proto_register_protocol("Novell PKIS ASN.1 type", "novell_pkis", "novell_pkis");
+ proto_register_field_array (proto_novell_pkis, hf, array_length (hf));
+ proto_register_subtree_array (ett, array_length (ett));
+}
diff --git a/epan/dissectors/asn1/ns_cert_exts/CMakeLists.txt b/epan/dissectors/asn1/ns_cert_exts/CMakeLists.txt
new file mode 100644
index 0000000000..6fcd536234
--- /dev/null
+++ b/epan/dissectors/asn1/ns_cert_exts/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ns_cert_exts )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ NETSCAPE-CERT-EXTS.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ns_cert_exts/Makefile.am b/epan/dissectors/asn1/ns_cert_exts/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ns_cert_exts/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ns_cert_exts/Makefile.common b/epan/dissectors/asn1/ns_cert_exts/Makefile.common
new file mode 100644
index 0000000000..1cd669501a
--- /dev/null
+++ b/epan/dissectors/asn1/ns_cert_exts/Makefile.common
@@ -0,0 +1,40 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=ns_cert_exts
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ NETSCAPE-CERT-EXTS.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/ns_cert_exts/Makefile.nmake b/epan/dissectors/asn1/ns_cert_exts/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ns_cert_exts/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ns_cert_exts/NETSCAPE-CERT-EXTS.asn b/epan/dissectors/asn1/ns_cert_exts/NETSCAPE-CERT-EXTS.asn
new file mode 100644
index 0000000000..e3d10ede76
--- /dev/null
+++ b/epan/dissectors/asn1/ns_cert_exts/NETSCAPE-CERT-EXTS.asn
@@ -0,0 +1,33 @@
+-- NetScape Certificate Extensions
+-- based on information from http://wp.netscape.com/eng/security/cert-exts.html
+
+NS-CERT-EXTS { 2 16 840 1 113730 1 } DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+BaseUrl ::= IA5String
+
+RevocationUrl ::= IA5String
+
+CaRevocationUrl ::= IA5String
+
+CaPolicyUrl ::= IA5String
+
+Comment ::= IA5String
+
+SslServerName ::= IA5String
+
+CertRenewalUrl ::= IA5String
+
+CertType ::= BIT STRING {
+ ssl-client(0),
+ ssl-server(1),
+ smime(2),
+ object-signing(3),
+ reserved-for-future-use(4),
+ ssl-ca(5),
+ smime-ca(6),
+ object-signing-ca(7)
+}
+
+END -- of NS-CERT-EXTS
+
diff --git a/epan/dissectors/asn1/ns_cert_exts/ns_cert_exts.cnf b/epan/dissectors/asn1/ns_cert_exts/ns_cert_exts.cnf
new file mode 100644
index 0000000000..c8d8998bd9
--- /dev/null
+++ b/epan/dissectors/asn1/ns_cert_exts/ns_cert_exts.cnf
@@ -0,0 +1,26 @@
+# NS-CERT-EXT.cnf
+# NetScape Certificate Extensions conformation file
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.REGISTER
+CertType B "2.16.840.1.113730.1.1" "ns_cert_exts.cert_type"
+BaseUrl B "2.16.840.1.113730.1.2" "ns_cert_exts.base_url"
+RevocationUrl B "2.16.840.1.113730.1.3" "ns_cert_exts.revocation-url"
+CaRevocationUrl B "2.16.840.1.113730.1.4" "ns_cert_exts.ca-revocation-url"
+CertRenewalUrl B "2.16.840.1.113730.1.7" "ns_cert_exts.cert-renewal-url"
+CaPolicyUrl B "2.16.840.1.113730.1.8" "ns_cert_exts.ca-policy-url"
+SslServerName B "2.16.840.1.113730.1.12" "ns_cert_exts.ssl-server-name"
+Comment B "2.16.840.1.113730.1.13" "ns_cert_exts.comment"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/ns_cert_exts/packet-ns_cert_exts-template.c b/epan/dissectors/asn1/ns_cert_exts/packet-ns_cert_exts-template.c
new file mode 100644
index 0000000000..53ded65dfb
--- /dev/null
+++ b/epan/dissectors/asn1/ns_cert_exts/packet-ns_cert_exts-template.c
@@ -0,0 +1,74 @@
+/* packet-ns_cert_exts.c
+ * Routines for NetScape Certificate Extensions packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include "packet-ber.h"
+
+#define PNAME "NetScape Certificate Extensions"
+#define PSNAME "NS_CERT_EXTS"
+#define PFNAME "ns_cert_exts"
+
+void proto_register_ns_cert_exts(void);
+void proto_reg_handoff_ns_cert_exts(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_ns_cert_exts = -1;
+#include "packet-ns_cert_exts-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-ns_cert_exts-ett.c"
+
+#include "packet-ns_cert_exts-fn.c"
+
+
+/*--- proto_register_ns_cert_exts -------------------------------------------*/
+void proto_register_ns_cert_exts(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-ns_cert_exts-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-ns_cert_exts-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_ns_cert_exts = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ns_cert_exts, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_ns_cert_exts ---------------------------------------*/
+void proto_reg_handoff_ns_cert_exts(void) {
+#include "packet-ns_cert_exts-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/ocsp/CMakeLists.txt b/epan/dissectors/asn1/ocsp/CMakeLists.txt
new file mode 100644
index 0000000000..70b40fac44
--- /dev/null
+++ b/epan/dissectors/asn1/ocsp/CMakeLists.txt
@@ -0,0 +1,53 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ocsp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ OCSP.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ocsp/Makefile.am b/epan/dissectors/asn1/ocsp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ocsp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ocsp/Makefile.common b/epan/dissectors/asn1/ocsp/Makefile.common
new file mode 100644
index 0000000000..d1d3eaed64
--- /dev/null
+++ b/epan/dissectors/asn1/ocsp/Makefile.common
@@ -0,0 +1,51 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=ocsp
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ OCSP.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/ocsp/Makefile.nmake b/epan/dissectors/asn1/ocsp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ocsp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ocsp/OCSP.asn b/epan/dissectors/asn1/ocsp/OCSP.asn
new file mode 100644
index 0000000000..c2e17297f9
--- /dev/null
+++ b/epan/dissectors/asn1/ocsp/OCSP.asn
@@ -0,0 +1,186 @@
+-- Online Certificate Status Protocol
+-- RFC 2560
+-- This definition was taken from RFC2560 and modified to pass through
+-- asn2wrs.
+-- The original copyright from RFC2650 follows below
+--
+-- Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (1999). All Rights Reserved.
+--
+-- This document and translations of it may be copied and furnished to
+-- others, and derivative works that comment on or otherwise explain it
+-- or assist in its implementation may be prepared, copied, published
+-- and distributed, in whole or in part, without restriction of any
+-- kind, provided that the above copyright notice and this paragraph are
+-- included on all such copies and derivative works. However, this
+-- document itself may not be modified in any way, such as by removing
+-- the copyright notice or references to the Internet Society or other
+-- Internet organizations, except as needed for the purpose of
+-- developing Internet standards in which case the procedures for
+-- copyrights defined in the Internet Standards process must be
+-- followed, or as required to translate it into languages other than
+-- English.
+--
+-- The limited permissions granted above are perpetual and will not be
+-- revoked by the Internet Society or its successors or assigns.
+--
+-- This document and the information contained herein is provided on an
+-- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+-- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+-- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+-- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+-- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--
+
+OCSP DEFINITIONS EXPLICIT TAGS::=
+
+BEGIN
+
+IMPORTS
+
+ authenticationFramework
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 5}
+
+ EXTENSION
+ FROM AuthenticationFramework authenticationFramework
+
+ -- Directory Authentication Framework (X.509)
+ Certificate, AlgorithmIdentifier
+ FROM AuthenticationFramework { joint-iso-itu-t ds(5)
+ module(1) authenticationFramework(7) 3 }
+
+ CRLReason
+ FROM CertificateExtensions
+
+ -- PKIX Certificate Extensions
+ AuthorityInfoAccessSyntax
+ 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)}
+
+ Name, GeneralName, CertificateSerialNumber, Extensions, id-kp, id-ad-ocsp
+ 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)};
+
+OCSPRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
+
+Version ::= INTEGER { v1(0) }
+
+Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+OCSPResponse ::= SEQUENCE {
+ responseStatus OCSPResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+OCSPResponseStatus ::= ENUMERATED {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+}
+
+ResponseBytes ::= SEQUENCE {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+BasicOCSPResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
+
+ResponseData ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses SEQUENCE OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key
+ --(excluding the tag and length fields)
+
+SingleResponse ::= SEQUENCE {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+CertStatus ::= CHOICE {
+ good [0] IMPLICIT NULL,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+RevokedInfo ::= SEQUENCE {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+UnknownInfo ::= NULL -- this can be replaced with an enumeration
+
+ArchiveCutoff ::= GeneralizedTime
+
+AcceptableResponses ::= SEQUENCE OF OBJECT IDENTIFIER
+
+ServiceLocator ::= SEQUENCE {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax }
+
+CrlID ::= SEQUENCE {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT INTEGER OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+re-ocsp-nonce EXTENSION ::= {
+ SYNTAX ReOcspNonce
+ IDENTIFIED BY id-pkix-ocsp-nonce
+}
+
+ReOcspNonce ::= OCTET STRING
+
+
+-- Object Identifiers
+
+id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
+id-pkix-ocsp OBJECT IDENTIFIER ::= { id-ad-ocsp }
+id-pkix-ocsp-basic OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 }
+id-pkix-ocsp-nonce OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 }
+id-pkix-ocsp-crl OBJECT IDENTIFIER ::= { id-pkix-ocsp 3 }
+id-pkix-ocsp-response OBJECT IDENTIFIER ::= { id-pkix-ocsp 4 }
+id-pkix-ocsp-nocheck OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 }
+id-pkix-ocsp-archive-cutoff OBJECT IDENTIFIER ::= { id-pkix-ocsp 6 }
+id-pkix-ocsp-service-locator OBJECT IDENTIFIER ::= { id-pkix-ocsp 7 }
+
+
+END
+
diff --git a/epan/dissectors/asn1/ocsp/ocsp.cnf b/epan/dissectors/asn1/ocsp/ocsp.cnf
new file mode 100644
index 0000000000..551b4583cc
--- /dev/null
+++ b/epan/dissectors/asn1/ocsp/ocsp.cnf
@@ -0,0 +1,55 @@
+# ocsp.cnf
+# OCSP conformation file
+
+#.TYPE_ATTR
+# pkix1explicit also exports the type CertificateSerialNumber. This makes sure asn2wrs uses the locally defined version.
+CertificateSerialNumber TYPE = FT_UINT64 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+#.END
+
+#.MODULE_IMPORT
+PKIX1Implicit88 pkix1implicit
+PKIX1Explicit88 pkix1explicit
+
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.INCLUDE ../pkix1implicit/pkix1implicit_exp.cnf
+#.INCLUDE ../pkix1explicit/pkix1explicit_exp.cnf
+
+#.EXPORTS
+OCSPResponse
+
+#.PDU
+
+#.REGISTER
+BasicOCSPResponse B "1.3.6.1.5.5.7.48.1.1" "id-pkix-ocsp-basic"
+ReOcspNonce B "1.3.6.1.5.5.7.48.1.2" "id-pkix-ocsp-nonce"
+CrlID B "1.3.6.1.5.5.7.48.1.3" "id-pkix-ocsp-crl"
+AcceptableResponses B "1.3.6.1.5.5.7.48.1.4" "id-pkix-ocsp-response"
+NULL B "1.3.6.1.5.5.7.48.1.5" "id-pkix-ocsp-nocheck"
+ArchiveCutoff B "1.3.6.1.5.5.7.48.1.6" "id-pkix-ocsp-archive-cutoff"
+ServiceLocator B "1.3.6.1.5.5.7.48.1.7" "id-pkix-ocsp-service-locator"
+
+#.NO_EMIT ONLY_VALS
+Version
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.FN_BODY ResponseBytes/responseType FN_VARIANT = _str HF_INDEX = hf_ocsp_responseType_id VAL_PTR = &actx->external.direct_reference
+%(DEFAULT_BODY)s
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY ResponseBytes/response
+ gint8 appclass;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+ /* skip past the T and L */
+ offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &appclass, &pc, &tag);
+ offset = dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ if (actx->external.direct_ref_present) {
+ offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+ }
+
+#.END
diff --git a/epan/dissectors/asn1/ocsp/packet-ocsp-template.c b/epan/dissectors/asn1/ocsp/packet-ocsp-template.c
new file mode 100644
index 0000000000..17fc57ac9e
--- /dev/null
+++ b/epan/dissectors/asn1/ocsp/packet-ocsp-template.c
@@ -0,0 +1,139 @@
+/* packet-ocsp.c
+ * Routines for Online Certificate Status Protocol (RFC2560) packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <asn1.h>
+
+#include "packet-ber.h"
+#include "packet-ocsp.h"
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-pkix1implicit.h"
+#include "packet-pkix1explicit.h"
+
+#define PNAME "Online Certificate Status Protocol"
+#define PSNAME "OCSP"
+#define PFNAME "ocsp"
+
+void proto_register_ocsp(void);
+void proto_reg_handoff_ocsp(void);
+
+/* Initialize the protocol and registered fields */
+int proto_ocsp = -1;
+static int hf_ocsp_responseType_id = -1;
+#include "packet-ocsp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_ocsp = -1;
+#include "packet-ocsp-ett.c"
+
+#include "packet-ocsp-fn.c"
+
+
+static int
+dissect_ocsp_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "OCSP");
+
+ col_set_str(pinfo->cinfo, COL_INFO, "Request");
+
+
+ if(parent_tree){
+ item=proto_tree_add_item(parent_tree, proto_ocsp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_ocsp);
+ }
+
+ return dissect_ocsp_OCSPRequest(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+
+static int
+dissect_ocsp_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "OCSP");
+
+ col_set_str(pinfo->cinfo, COL_INFO, "Response");
+
+
+ if(parent_tree){
+ item=proto_tree_add_item(parent_tree, proto_ocsp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_ocsp);
+ }
+
+ return dissect_ocsp_OCSPResponse(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+/*--- proto_register_ocsp ----------------------------------------------*/
+void proto_register_ocsp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_ocsp_responseType_id,
+ { "ResponseType Id", "ocsp.responseType.id",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-ocsp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ocsp,
+#include "packet-ocsp-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_ocsp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ocsp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+/*--- proto_reg_handoff_ocsp -------------------------------------------*/
+void proto_reg_handoff_ocsp(void) {
+ dissector_handle_t ocsp_request_handle;
+ dissector_handle_t ocsp_response_handle;
+
+ ocsp_request_handle = create_dissector_handle(dissect_ocsp_request, proto_ocsp);
+ ocsp_response_handle = create_dissector_handle(dissect_ocsp_response, proto_ocsp);
+
+ dissector_add_string("media_type", "application/ocsp-request", ocsp_request_handle);
+ dissector_add_string("media_type", "application/ocsp-response", ocsp_response_handle);
+
+#include "packet-ocsp-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/ocsp/packet-ocsp-template.h b/epan/dissectors/asn1/ocsp/packet-ocsp-template.h
new file mode 100644
index 0000000000..5e75d633c3
--- /dev/null
+++ b/epan/dissectors/asn1/ocsp/packet-ocsp-template.h
@@ -0,0 +1,33 @@
+/* packet-ocsp.h
+ * Routines for Online Certificate Status Protocol (RFC2560) packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_OCSP_H
+#define PACKET_OCSP_H
+
+/*#include "packet-ocsp-exp.h"*/
+
+extern int proto_ocsp;
+int dissect_ocsp_OCSPResponse(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+
+#endif /* PACKET_OCSP_H */
+
diff --git a/epan/dissectors/asn1/p1/CMakeLists.txt b/epan/dissectors/asn1/p1/CMakeLists.txt
new file mode 100644
index 0000000000..b9d03377cc
--- /dev/null
+++ b/epan/dissectors/asn1/p1/CMakeLists.txt
@@ -0,0 +1,69 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME p1 )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ MTAAbstractService.asn
+ MTSAbstractService.asn
+ MTSAccessProtocol.asn
+ MHSProtocolObjectIdentifiers.asn
+ MTSUpperBounds.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -C )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../ros/ros-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../rtse/rtse-exp.cnf"
+)
+
+set ( EXPORT_DEPENDS
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/p1/MHSProtocolObjectIdentifiers.asn b/epan/dissectors/asn1/p1/MHSProtocolObjectIdentifiers.asn
new file mode 100644
index 0000000000..97b4ecabb8
--- /dev/null
+++ b/epan/dissectors/asn1/p1/MHSProtocolObjectIdentifiers.asn
@@ -0,0 +1,112 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x419/1999/index.html
+-- 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-mhs-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-mhs-mod 0}-- -- not definitive
+
+id-mod-mts-access-protocol ID ::= {id-mhs-mod 1} -- not definitive
+
+id-mod-ms-access-protocol ID ::= {id-mhs-mod 2} -- not definitive
+
+id-mod-mts-transfer-protocol ID ::= {id-mhs-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/epan/dissectors/asn1/p1/MTAAbstractService.asn b/epan/dissectors/asn1/p1/MTAAbstractService.asn
new file mode 100644
index 0000000000..1927dfb5d2
--- /dev/null
+++ b/epan/dissectors/asn1/p1/MTAAbstractService.asn
@@ -0,0 +1,499 @@
+-- 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, OPERATION-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)}
+ -- 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, OriginallyIntendedRecipientName
+ --==
+ 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
+PORT ::= OPERATION-PACKAGE
+
+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
+ })}
+}
+MTABindError ::=
+--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
+}
+
+-- MTS Application Protocol Data Units
+MTS-APDU ::= CHOICE {
+ message [0] Message,
+ probe [2] Probe,
+ report [1] 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 MTAOriginatorName,
+ 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 MTARecipientName,
+ 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 MTAOriginatorName,
+ 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 MTARecipientName,
+ 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] MTAActualRecipientName,
+ 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
+
+MTAOriginatorName ::= ORAddressAndOptionalDirectoryName
+
+BILATERAL ::= CLASS {&id BilateralDomain UNIQUE,
+ &Type
+}WITH SYNTAX {&Type,
+ IDENTIFIED BY &id
+}
+
+PerDomainBilateralInformation ::= SEQUENCE {
+-- COMPONENTS OF BILATERAL.&id,
+ country-name CountryName,
+ domain
+ CHOICE {administration-domain-name AdministrationDomainName,
+ private-domain
+ SEQUENCE {administration-domain-name
+ [0] AdministrationDomainName,
+ private-domain-identifier
+ [1] PrivateDomainIdentifier}},
+ bilateral-information BILATERAL.&Type
+}
+
+
+BilateralDomain ::= SEQUENCE {
+ country-name CountryName,
+ domain
+ CHOICE {administration-domain-name AdministrationDomainName,
+ private-domain
+ SEQUENCE {administration-domain-name
+ [0] AdministrationDomainName,
+ private-domain-identifier
+ [1] PrivateDomainIdentifier}}
+}
+
+MTARecipientName ::= 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
+
+MTAActualRecipientName ::= 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 ::= {
+ MTAOriginatorRequestedAlternateRecipient,
+ IDENTIFIED BY standard-extension:2
+}
+
+MTAOriginatorRequestedAlternateRecipient ::= 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/epan/dissectors/asn1/p1/MTSAbstractService.asn b/epan/dissectors/asn1/p1/MTSAbstractService.asn
new file mode 100644
index 0000000000..986e198da3
--- /dev/null
+++ b/epan/dissectors/asn1/p1/MTSAbstractService.asn
@@ -0,0 +1,2500 @@
+-- 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 {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}
+ ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}
+-- , SIGNATURE{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0}
+ -- 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}
+ CODE op-ros-bind -- WS: internal operation code
+}
+
+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)
+ CODE err-ros-bind -- WS: internal error code
+}
+
+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}},
+ Signature,
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL
+}
+
+Signature ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+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,
+ 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,
+ 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
+-- 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 ::= OBJECT IDENTIFIER -- 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)-- StandardExtension,
+ private-extension [3] OBJECT IDENTIFIER
+}
+
+StandardExtension ::= INTEGER {
+ recipient-reassignment-prohibited (1),
+ originator-requested-alternate-recipient (2),
+ dl-expansion-prohibited (3),
+ conversion-with-loss-prohibited (4),
+ latest-delivery-time (5),
+ requested-delivery-method (6),
+ physical-forwarding-prohibited (7),
+ physical-forwarding-address-request (8),
+ physical-delivery-modes (9),
+ registered-mail-type (10),
+ recipient-number-for-advice (11),
+ physical-rendition-attributes (12),
+ originator-return-address (13),
+ physical-delivery-report-request (14),
+ originator-certificate (15),
+ message-token (16),
+ content-confidentiality-algorithm-identifier (17),
+ content-integrity-check (18),
+ message-origin-authentication-check (19),
+ message-security-label (20),
+ proof-of-submission-request (21),
+ proof-of-delivery-request (22),
+ content-correlator (23),
+ probe-origin-authentication-check (24),
+ redirection-history (25),
+ dl-expansion-history (26),
+ physical-forwarding-address (27),
+ recipient-certificate (28),
+ proof-of-delivery (29),
+ originator-and-DL-expansion-history (30),
+ reporting-DL-name (31),
+ reporting-MTA-certificate (32),
+ report-origin-authentication-check (33),
+ originating-MTA-certificate (34),
+ proof-of-submission (35),
+ forwarding-request (36),
+ trace-information (37),
+ internal-trace-information (38),
+ reporting-MTA-name (39),
+ multiple-originator-certificates (40),
+ blind-copy-recipients (41),
+ dl-exempted-recipients (42),
+ body-part-encryption-token (43),
+ forwarded-content-token (44),
+ certificate-selectors (45)
+}
+
+
+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
+-- 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
+-- 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
+-- 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
+-- 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
+-- 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})-- ExtensionAttributeType,
+ extension-attribute-value
+ [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable}{@extension-attribute-type})
+}
+
+ExtensionAttributeType ::= INTEGER {
+ common-name (1),
+ teletex-common-name (2),
+ teletex-organization-name (3),
+ teletex-personal-name (4),
+ teletex-organizational-unit-names (5),
+ teletex-domain-defined-attributes (6),
+ pds-name (7),
+ physical-delivery-country-name (8),
+ postal-code (9),
+ physical-delivery-office-name (10),
+ physical-delivery-office-number (11),
+ extension-OR-address-components (12),
+ physical-delivery-personal-name (13),
+ physical-delivery-organization-name (14),
+ extension-physical-delivery-address-components (15),
+ unformatted-postal-address (16),
+ street-address (17),
+ post-office-box-address (18),
+ poste-restante-address (19),
+ unique-postal-name (20),
+ local-postal-attributes (21),
+ extended-network-address (22),
+ terminal-type (23),
+ universal-common-name (24),
+ universal-organization-name (25),
+ universal-personal-name (26),
+ universal-organizational-unit-names (27),
+ universal-domain-defined-attributes (28),
+ universal-physical-delivery-office-name (29),
+ universal-physical-delivery-office-number (30),
+ universal-extension-OR-address-components (31),
+ universal-physical-delivery-personal-name (32),
+ universal-physical-delivery-organization-name (33),
+ universal-extension-physical-delivery-address-components (34),
+ universal-unformatted-postal-address (35),
+ universal-street-address (36),
+ universal-post-office-box-address (37),
+ universal-poste-restante-address (38),
+ universal-unique-postal-name (39),
+ universal-local-postal-attributes (40)
+}
+
+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 --
+}
+
+TOKEN ::= TYPE-IDENTIFIER
+
+-- as defined in CCITT Recommendation T.62
+-- Token
+Token ::= SEQUENCE {
+ token-type-identifier [0] -- TOKEN.&id({TokensTable})-- TokenTypeIdentifier,
+ token
+ [1] --TOKEN.&Type({TokensTable}{@token-type-identifier})-- TokenTypeData
+}
+
+TokenTypeIdentifier ::= OBJECT IDENTIFIER
+TokenTypeData ::= ANY
+
+TokensTable TOKEN ::= {asymmetric-token, ...}
+
+asymmetric-token TOKEN ::= {
+ AsymmetricToken
+ IDENTIFIED BY id-tok-asymmetricToken
+}
+
+AsymmetricTokenData ::=
+-- SIGNED
+-- {--SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ name
+ CHOICE {recipient-name RecipientName,
+ mta
+ [3] MTANameAndOptionalGDI },
+ time Time,
+ signed-data [0] TokenData OPTIONAL,
+ encryption-algorithm-identifier
+ [1] AlgorithmIdentifier OPTIONAL,
+ encrypted-data
+ [2] --ENCRYPTED{TokenData}-- BIT STRING OPTIONAL} --}
+
+MTANameAndOptionalGDI ::= SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier OPTIONAL,
+ mta-name MTAName
+}
+
+AsymmetricToken ::= SEQUENCE {
+ asymmetric-token-data AsymmetricTokenData,
+ algorithm-identifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+
+TokenData ::= SEQUENCE {
+ type [0] -- TOKEN-DATA.&id({TokenDataTable})-- TokenDataType,
+ value [1] TOKEN-DATA.&Type({TokenDataTable}{@type})
+}
+
+TokenDataType ::= INTEGER {
+ bind-token-signed-data (1),
+ message-token-signed-data (2),
+ message-token-encrypted-data (3),
+ bind-token-encrypted-data(4)
+}
+
+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
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategory ::= SEQUENCE {
+ type [0] --SECURITY-CATEGORY.&id({SecurityCategoriesTable})-- SecurityCategoryIdentifier,
+ value [1] --SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})-- SecurityCategoryValue
+}
+
+SecurityCategoryIdentifier ::= OBJECT IDENTIFIER
+SecurityCategoryValue ::= ANY
+
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+END -- of MTSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/p1/MTSAccessProtocol.asn b/epan/dissectors/asn1/p1/MTSAccessProtocol.asn
new file mode 100644
index 0000000000..d4ee6b8072
--- /dev/null
+++ b/epan/dissectors/asn1/p1/MTSAccessProtocol.asn
@@ -0,0 +1,321 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x411/1999/index.html
+-- 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-- OBJECT IDENTIFIER
+ 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/epan/dissectors/asn1/p1/MTSUpperBounds.asn b/epan/dissectors/asn1/p1/MTSUpperBounds.asn
new file mode 100644
index 0000000000..4c42a1d630
--- /dev/null
+++ b/epan/dissectors/asn1/p1/MTSUpperBounds.asn
@@ -0,0 +1,150 @@
+-- Module MTSUpperBounds (X.411:06/1999)
+-- See also ITU-T X.411 (06/1999)
+-- See also the index of all ASN.1 assignments needed in this document
+
+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-string-length INTEGER ::= 2147483647 -- TODO: find the correct value
+
+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/epan/dissectors/asn1/p1/Makefile.am b/epan/dissectors/asn1/p1/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/p1/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/p1/Makefile.common b/epan/dissectors/asn1/p1/Makefile.common
new file mode 100644
index 0000000000..6923b4f53f
--- /dev/null
+++ b/epan/dissectors/asn1/p1/Makefile.common
@@ -0,0 +1,76 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=p1
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ MTAAbstractService.asn \
+ MTSAbstractService.asn \
+ MTSAccessProtocol.asn \
+ MHSProtocolObjectIdentifiers.asn \
+ MTSUpperBounds.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS = -b -C
+
+EXTRA_CNF = \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf \
+ $(builddir)/../ros/ros-exp.cnf \
+ $(builddir)/../rtse/rtse-exp.cnf
+
+EXPORT_DEPENDS = \
+ $(builddir)/../x509af/x509af-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../ros/ros-exp.cnf:
+ (cd $(builddir)/../ros && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../rtse/rtse-exp.cnf:
+ (cd $(builddir)/../rtse && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/p1/Makefile.nmake b/epan/dissectors/asn1/p1/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/p1/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/p1/p1.cnf b/epan/dissectors/asn1/p1/p1.cnf
new file mode 100644
index 0000000000..f077216af1
--- /dev/null
+++ b/epan/dissectors/asn1/p1/p1.cnf
@@ -0,0 +1,1259 @@
+# p1.cnf
+# X.411 (MTA Access and Transfer) conformance file
+
+#.TYPE_ATTR
+CountryName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(p1_CountryName_U_vals) BITMASK = 0
+Time TYPE = FT_STRING DISPLAY = BASE_NONE STRING = NULL BITMASK = 0
+
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../ros/ros-exp.cnf
+#.IMPORT ../rtse/rtse-exp.cnf
+
+#.OMIT_ASSIGNMENT
+# These gives unused code warnings
+MTAOriginatorRequestedAlternateRecipient
+
+#The following are only referenced through the SIGNATURE MACRO
+#and so have no representation on the wire.
+ProofOfDeliveryAlgorithmIdentifier
+ContentIntegrityAlgorithmIdentifier
+MessageOriginAuthenticationAlgorithmIdentifier
+ProbeOriginAuthenticationAlgorithmIdentifier
+ReportOriginAuthenticationAlgorithmIdentifier
+ProofOfSubmissionAlgorithmIdentifier
+
+BilateralDomain
+DeliveryControls
+RTSE-apdus
+MTSInvokeIds
+ID
+RTTPapdu
+RTTRapdu
+RTABapdu
+AbortReason
+#.END
+
+#.OMIT_ASSIGNMENT
+PerRecipientReportFields
+#PerRecipientReportFields/report-type
+
+#.NO_EMIT
+# These fields are only used through COMPONENTS OF,
+# and consequently generate unused code warnings
+PerMessageTransferFields
+PerProbeTransferFields
+PerReportTransferFields
+PerMessageSubmissionFields
+PerProbeSubmissionFields
+PerReportDeliveryFields
+PerRecipientDeliveryReportFields
+PerRecipientNonDeliveryReportFields
+
+InternalAdditionalActions
+AdditionalActions
+NonBasicParameters
+#.END
+
+#.EXPORTS
+EXTENSION
+Content
+ContentIdentifier
+ContentIntegrityCheck
+ContentLength
+ContentType
+Credentials
+EncodedInformationTypes
+EncodedInformationTypesConstraints
+ExtendedCertificates
+ExtendedContentType
+ExtensionField
+G3FacsimileNonBasicParameters
+ImproperlySpecifiedRecipients
+InitiatorCredentials
+MessageDeliveryIdentifier
+MessageDeliveryTime
+MessageOriginAuthenticationCheck
+MessageSecurityLabel
+MessageSecurityLabel_PDU
+MessageSubmissionEnvelope
+MessageSubmissionIdentifier
+MessageSubmissionTime
+MessageToken
+ORAddress
+ORAddressAndOrDirectoryName
+OriginatorName
+ORName
+OriginalEncodedInformationTypes
+OriginatingMTACertificate
+OtherMessageDeliveryFields
+PerMessageIndicators
+PerRecipientProbeSubmissionFields
+ProbeSubmissionEnvelope
+ProbeSubmissionIdentifier
+ProbeSubmissionTime
+ProofOfSubmission
+RequestedDeliveryMethod
+ResponderCredentials
+SecurityContext
+SecurityLabel
+SecurityProblem
+SupplementaryInformation
+TeletexNonBasicParameters
+UniversalOrBMPString
+NonDeliveryReasonCode
+NonDeliveryDiagnosticCode
+
+#.SYNTAX
+ORAddress
+ORName
+
+# Forward declaration of Classes
+# CONNECTION-PACKAGE CONTRACT from ROS
+#.CLASS CONNECTION-PACKAGE
+&bind ClassReference OPERATION
+&unbind ClassReference OPERATION
+&responderCanUnbind BooleanType
+&unbindCanFail BooleanType
+&id ObjectIdentifierType
+#.END
+
+#.CLASS APPLICATION-CONTEXT
+&associationContract ClassReference CONTRACT
+&associationRealization
+&transferRealization
+&AbstractSyntaxes ClassReference ABSTRACT-SYNTAX
+&applicationContextName ObjectIdentifierType
+#.END
+
+
+#.CLASS CONTRACT
+&connection ClassReference CONNECTION-PACKAGE
+&OperationsOf ClassReference OPERATION-PACKAGE
+&InitiatorConsumerOf ClassReference OPERATION-PACKAGE
+&InitiatorSupplierOf ClassReference OPERATION-PACKAGE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MHS-OBJECT
+&Is ClassReference MHS-OBJECT
+&Initiates ClassReference CONTRACT
+&Responds ClassReference CONTRACT
+&InitiatesAndResponds ClassReference CONTRACT
+&id ObjectIdentifierType
+#.END
+
+# Ros OPERATION
+#.CLASS ABSTRACT-OPERATION
+&ArgumentType
+&argumentTypeOptional BooleanType
+&returnResult BooleanType
+&ResultType
+&resultTypeOptional BooleanType
+&Errors ClassReference ERROR
+&Linked ClassReference OPERATION
+&synchronous BooleanType
+&alwaysReturns BooleanType
+&InvokePriority _FixedTypeValueSetFieldSpec
+&ResultPriority _FixedTypeValueSetFieldSpec
+&operationCode TypeReference Code
+#.END
+
+# ros ERROR
+#.CLASS ABSTRACT-ERROR
+&ParameterType
+&parameterTypeOptional BooleanType
+&ErrorPriority _FixedTypeValueSetFieldSpec
+&errorCode TypeReference Code
+#.END
+
+#.CLASS EXTENSION
+&id TypeReference ExtensionType
+&Type
+&absent _VariableTypeValueSetFieldSpec
+&recommended TypeReference Criticality
+#.END
+
+#.CLASS EXTENSION-ATTRIBUTE
+&id IntegerType
+&Type
+#.END
+
+#.CLASS TOKEN-DATA
+&id IntegerType
+&Type
+#.END
+
+
+#.TYPE_RENAME
+MTABindArgument/authenticated AuthenticatedArgument
+MTABindResult/authenticated AuthenticatedResult
+
+ExtensionField/value ExtensionValue
+SecurityCategory/value CategoryValue
+
+#.FIELD_RENAME
+PrivateDomainName/printable printable-private-domain-name
+PrivateDomainName/numeric numeric-private-domain-name
+PrivateDomainIdentifier/printable printable-private-domain-identifier
+PrivateDomainIdentifier/numeric numeric-private-domain-identifier
+
+TeletexPersonalName/surname teletex-surname
+PersonalName/surname printable-surname
+UniversalPersonalName/surname universal-surname
+
+TeletexPersonalName/given-name teletex-given-name
+PersonalName/given-name printable-given-name
+UniversalPersonalName/given-name universal-given-name
+
+TeletexPersonalName/initials teletex-initials
+PersonalName/initials printable-initials
+UniversalPersonalName/initials universal-initials
+
+TeletexPersonalName/generation-qualifier teletex-generation-qualifier
+PersonalName/generation-qualifier printable-generation-qualifier
+UniversalPersonalName/generation-qualifier universal-generation-qualifier
+
+BuiltInDomainDefinedAttribute/type printable-type
+UniversalDomainDefinedAttribute/type universal-type
+SecurityCategory/type category-type
+ExtensionField/type extension-type
+
+TeletexDomainDefinedAttribute/value teletex-value
+BuiltInDomainDefinedAttribute/value printable-value
+UniversalDomainDefinedAttribute/value universal-value
+SecurityCategory/value category-value
+ExtensionField/value extension-value
+
+LastTraceInformation/report-type trace-report-type
+PerRecipientReportDeliveryFields/report-type delivery-report-type
+#PerRecipientReportFields/report-type/delivery report-type-delivery
+
+PerRecipientMessageSubmissionFields/recipient-name submission-recipient-name
+PerRecipientProbeSubmissionFields/recipient-name probe-recipient-name
+
+PerRecipientReportTransferFields/actual-recipient-name mta-actual-recipient-name
+
+MessageClass/priority class-priority
+DeliveryQueue/octets delivery-queue-octets
+#PerRecipientReportFields/report-type/non-delivery non-delivery-report
+
+MTABindResult/authenticated authenticated-result
+MTABindArgument/authenticated authenticated-argument
+
+MTABindResult/authenticated/responder-name authenticated-responder-name
+MTABindArgument/authenticated/initiator-name authenticated-initiator-name
+
+RegistrationTypes/extensions type-extensions
+RegistrationTypes/extensions/_item type-extensions-item
+
+MessageSubmissionArgument/envelope message-submission-envelope
+
+OtherMessageDeliveryFields/content-type delivered-content-type
+Report/content report-content
+
+ReportDeliveryResult/extensions max-extensions
+
+OtherMessageDeliveryFields/originator-name delivered-originator-name
+
+PDSParameter/teletex-string pds-teletex-string
+
+PerDomainBilateralInformation/domain bilateral-domain
+
+Report/envelope report-envelope
+Message/envelope message-envelope
+
+PerRecipientReportTransferFields/originally-intended-recipient-name report-originally-intended-recipient-name
+
+MessageSubmissionEnvelope/originator-name mts-originator-name
+ProbeSubmissionEnvelope/originator-name mts-originator-name
+
+MessageTransferEnvelope/originator-name mta-originator-name
+ProbeTransferEnvelope/originator-name mta-originator-name
+
+MessageSubmissionEnvelope/per-recipient-fields per-recipient-message-submission-fields
+ProbeTransferEnvelope/per-recipient-fields per-recipient-probe-transfer-fields
+ProbeSubmissionEnvelope/per-recipient-fields per-recipient-probe-submission-fields
+ReportDeliveryArgument/per-recipient-fields per-recipient-report-delivery-fields
+ReportDeliveryEnvelope/per-recipient-fields per-recipient-report-delivery-fields
+
+MessageSubmissionEnvelope/per-recipient-fields/_item per-recipient-message-submission-fields-item
+ProbeTransferEnvelope/per-recipient-fields/_item per-recipient-probe-transfer-fields-item
+ProbeSubmissionEnvelope/per-recipient-fields/_item per-recipient-probe-submission-fields-item
+ReportDeliveryArgument/per-recipient-fields/_item per-recipient-report-delivery-fields-item
+ReportDeliveryEnvelope/per-recipient-fields/_item per-recipient-report-delivery-fields-item
+
+MessageTransferEnvelope/per-recipient-fields/_item per-recipient-message-fields-item
+
+MessageTransferEnvelope/per-recipient-fields per-recipient-message-fields
+ReportTransferContent/per-recipient-fields per-recipient-report-fields
+
+AsymmetricTokenData/name/mta token-mta
+AsymmetricTokenData/name/recipient-name token-recipient-name
+
+TokenData/type token-data-type
+CertificateSelectors/content-integrity-check selectors-content-integrity-check
+
+# This table creates the value_sting to name P3 operation codes and errors
+# in file packet-p3-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* P3 ABSTRACT-OPERATIONS */
+const value_string p3_opr_code_string_vals[] = {
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* P3 ERRORS */
+static const value_string p3_err_code_string_vals[] = {
+#.TABLE_BODY ERROR
+ { %(&errorCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# Create a table of opcode and corresponding args and res
+#.TABLE11_HDR
+static const ros_opr_t p3_opr_tab[] = {
+#.TABLE11_BODY OPERATION
+ /* %(_name)s */
+ { %(&operationCode)-25s, %(_argument_pdu)s, %(_result_pdu)s },
+#.TABLE11_FTR
+ { 0, (dissector_t)(-1), (dissector_t)(-1) },
+};
+#.END
+
+#.TABLE21_HDR
+static const ros_err_t p3_err_tab[] = {
+#.TABLE21_BODY ERROR
+ /* %(_name)s*/
+ { %(&errorCode)s, %(_parameter_pdu)s },
+#.TABLE21_FTR
+ { 0, (dissector_t)(-1) },
+};
+#.END
+
+#.PDU
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+#.END
+
+
+#.REGISTER
+RecipientReassignmentProhibited N p1.extension 1
+OriginatorRequestedAlternateRecipient N p1.extension 2
+DLExpansionProhibited N p1.extension 3
+ConversionWithLossProhibited N p1.extension 4
+LatestDeliveryTime N p1.extension 5
+RequestedDeliveryMethod N p1.extension 6
+PhysicalForwardingProhibited N p1.extension 7
+PhysicalForwardingAddressRequest N p1.extension 8
+PhysicalDeliveryModes N p1.extension 9
+RegisteredMailType N p1.extension 10
+RecipientNumberForAdvice N p1.extension 11
+PhysicalRenditionAttributes N p1.extension 12
+OriginatorReturnAddress N p1.extension 13
+PhysicalDeliveryReportRequest N p1.extension 14
+OriginatorCertificate N p1.extension 15
+MessageToken N p1.extension 16
+ContentConfidentialityAlgorithmIdentifier N p1.extension 17
+ContentIntegrityCheck N p1.extension 18
+MessageOriginAuthenticationCheck N p1.extension 19
+MessageSecurityLabel N p1.extension 20
+ProofOfSubmissionRequest N p1.extension 21
+ProofOfDeliveryRequest N p1.extension 22
+ContentCorrelator N p1.extension 23
+ProbeOriginAuthenticationCheck N p1.extension 24
+RedirectionHistory N p1.extension 25
+DLExpansionHistory N p1.extension 26
+PhysicalForwardingAddress N p1.extension 27
+RecipientCertificate N p1.extension 28
+ProofOfDelivery N p1.extension 29
+OriginatorAndDLExpansionHistory N p1.extension 30
+ReportingDLName N p1.extension 31
+ReportingMTACertificate N p1.extension 32
+ReportOriginAuthenticationCheck N p1.extension 33
+OriginatingMTACertificate N p1.extension 34
+ProofOfSubmission N p1.extension 35
+
+TraceInformation N p1.extension 37
+InternalTraceInformation N p1.extension 38
+ReportingMTAName N p1.extension 39
+ExtendedCertificates N p1.extension 40
+
+DLExemptedRecipients N p1.extension 42
+
+CertificateSelectors N p1.extension 45
+
+CommonName N p1.extension-attribute 1
+TeletexCommonName N p1.extension-attribute 2
+TeletexOrganizationName N p1.extension-attribute 3
+TeletexPersonalName N p1.extension-attribute 4
+TeletexOrganizationalUnitNames N p1.extension-attribute 5
+TeletexDomainDefinedAttributes N p1.extension-attribute 6
+PDSName N p1.extension-attribute 7
+PhysicalDeliveryCountryName N p1.extension-attribute 8
+PostalCode N p1.extension-attribute 9
+PhysicalDeliveryOfficeName N p1.extension-attribute 10
+PhysicalDeliveryOfficeNumber N p1.extension-attribute 11
+ExtensionORAddressComponents N p1.extension-attribute 12
+PhysicalDeliveryPersonalName N p1.extension-attribute 13
+PhysicalDeliveryOrganizationName N p1.extension-attribute 14
+ExtensionPhysicalDeliveryAddressComponents N p1.extension-attribute 15
+UnformattedPostalAddress N p1.extension-attribute 16
+StreetAddress N p1.extension-attribute 17
+PostOfficeBoxAddress N p1.extension-attribute 18
+PosteRestanteAddress N p1.extension-attribute 19
+UniquePostalName N p1.extension-attribute 20
+LocalPostalAttributes N p1.extension-attribute 21
+ExtendedNetworkAddress N p1.extension-attribute 22
+TerminalType N p1.extension-attribute 23
+UniversalCommonName N p1.extension-attribute 24
+UniversalOrganizationName N p1.extension-attribute 25
+UniversalPersonalName N p1.extension-attribute 26
+UniversalOrganizationalUnitNames N p1.extension-attribute 27
+UniversalDomainDefinedAttributes N p1.extension-attribute 28
+UniversalPhysicalDeliveryOfficeName N p1.extension-attribute 29
+UniversalPhysicalDeliveryOfficeNumber N p1.extension-attribute 30
+UniversalExtensionORAddressComponents N p1.extension-attribute 31
+UniversalPhysicalDeliveryPersonalName N p1.extension-attribute 32
+UniversalPhysicalDeliveryOrganizationName N p1.extension-attribute 33
+UniversalExtensionPhysicalDeliveryAddressComponents N p1.extension-attribute 34
+UniversalUnformattedPostalAddress N p1.extension-attribute 35
+UniversalStreetAddress N p1.extension-attribute 36
+UniversalPostOfficeBoxAddress N p1.extension-attribute 37
+UniversalPosteRestanteAddress N p1.extension-attribute 38
+UniversalUniquePostalName N p1.extension-attribute 39
+UniversalLocalPostalAttributes N p1.extension-attribute 40
+
+#ReportDeliveryArgument B "2.6.1.4.14" "id-et-report"
+
+AsymmetricToken B "2.6.3.6.0" "id-tok-asymmetricToken"
+MTANameAndOptionalGDI B "2.6.5.6.0" "id-on-mtaName"
+
+BindTokenSignedData N p1.tokendata 1
+MessageTokenSignedData N p1.tokendata 2
+# the next two are unlikely to ever be seen (unless in a bad encoding)
+MessageTokenEncryptedData N p1.tokendata 3
+BindTokenEncryptedData N p1.tokendata 4
+
+# X402 - see master list in acp133.cnf
+
+ContentLength B "2.6.5.2.0" "id-at-mhs-maximum-content-length"
+ExtendedContentType B "2.6.5.2.1" "id-at-mhs-deliverable-content-types"
+ExtendedEncodedInformationType B "2.6.5.2.2" "id-at-mhs-exclusively-acceptable-eits"
+ORName B "2.6.5.2.3" "id-at-mhs-dl-members"
+ORAddress B "2.6.5.2.6" "id-at-mhs-or-addresses"
+ExtendedContentType B "2.6.5.2.9" "id-at-mhs-supported-content-types"
+ORName B "2.6.5.2.12" "id-at-mhs-dl-archive-service"
+ORName B "2.6.5.2.15" "id-at-mhs-dl-subscription-service"
+ExtendedEncodedInformationType B "2.6.5.2.17" "id-at-mhs-acceptable-eits"
+ExtendedEncodedInformationType B "2.6.5.2.18" "id-at-mhs-unacceptable-eits"
+
+
+# ACP133 - see master list in acp133.cnf
+ORName B "2.16.840.1.101.2.1.5.47" "id-at-aLExemptedAddressProcessor"
+ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses"
+
+# MSGeneralAttributeTypes - see master list in p7.cnf
+CertificateSelectors B "2.6.4.3.80" "id-att-certificate-selectors"
+Content B "2.6.4.3.1" "id-att-content"
+ContentCorrelator B "2.6.4.3.3" "id-att-content-correlator"
+ContentIdentifier B "2.6.4.3.4" "id-att-content-identifier"
+ContentIntegrityCheck B "2.6.4.3.5" "id-att-content-inetgrity-check"
+ContentLength B "2.6.4.3.6" "id-att-content-length"
+ExtendedContentType B "2.6.4.3.8" "id-att-content-type"
+ConversionWithLossProhibited B "2.6.4.3.9" "id-att-conversion-with-loss-prohibited"
+DeferredDeliveryTime B "2.6.4.3.51" "id-att-deferred-delivery-time"
+DeliveryFlags B "2.6.4.3.13" "id-att-delivery-flags"
+ORName B "2.6.4.3.78" "id-att-dl-exempted-recipients"
+DLExpansion B "2.6.4.3.14" "id-att-dl-expansion-history"
+DLExpansionProhibited B "2.6.4.3.53" "id-att-dl-expansion-prohibited"
+InternalTraceInformationElement B "2.6.4.3.54" "id-att-internal-trace-information"
+LatestDeliveryTime B "2.6.4.3.55" "id-att-latest-delivery-time"
+MessageDeliveryEnvelope B "2.6.4.3.18" "id-att-message-delivery-envelope"
+MessageDeliveryTime B "2.6.4.3.20" "id-att-message-delivery-time"
+MTSIdentifier B "2.6.4.3.19" "id-att-message-identifier"
+MessageOriginAuthenticationCheck B "2.6.4.3.21" "id-at-message-orgin-authentication-check"
+MessageSecurityLabel B "2.6.4.3.22" "id-att-message-security-label"
+MessageSubmissionEnvelope B "2.6.4.3.59" "id-att-message-submission-envelope"
+MessageSubmissionTime B "2.6.4.3.23" "id-att-message-submission-time"
+MessageToken B "2.6.4.3.24" "id-att-message-token"
+ExtendedCertificates B "2.6.4.3.81" "id-att-multiple-originator-certificates"
+ORName B "2.6.4.3.17" "id-att-originally-intended-recipient-name"
+OriginatingMTACertificate B "2.6.4.3.62" "id-att-originating-MTA-certificate"
+OriginatorCertificate B "2.6.4.3.26" "id-att-originator-certificate"
+ORName B "2.6.4.3.27" "id-att-originator-name"
+OriginatorReportRequest B "2.6.4.3.63" "id-att-originator-report-request"
+OriginatorReturnAddress B "2.6.4.3.64" "id-att-originator-return-address"
+ORName B "2.6.4.3.28" "id-att-other-recipient-names"
+PerMessageIndicators B "2.6.4.3.65" "id-att-per-message-indicators"
+PerRecipientMessageSubmissionFields B "2.6.4.3.66" "id-att-per-recipient-message-submission-fields"
+PerRecipientProbeSubmissionFields B "2.6.4.3.67" "id-att-per-recipient-probe-submission-fields"
+PerRecipientReportDeliveryFields B "2.6.4.3.30" "id-att-per-recipient-report-delivery-fields"
+Priority B "2.6.4.3.31" "id-att-priority"
+ProbeOriginAuthenticationCheck B "2.6.4.3.68" "id-att-probe-origin-authentication-check"
+ProbeSubmissionEnvelope B "2.6.4.3.69" "id-att-probe-submission-envelope"
+ProofOfDeliveryRequest B "2.6.4.3.32" "id-att-proof-of-delivery-request"
+ProofOfSubmission B "2.6.4.3.70" "id-att-proof-of-submission"
+ExtendedCertificates B "2.6.4.3.82" "id-att-recipient-certificate"
+ORName B "2.6.4.3.71" "id-att-recipient-names"
+RecipientReassignmentProhibited B "2.6.4.3.72" "id-att-recipient-reassignment-prohibited"
+Redirection B "2.6.4.3.33" "id-at-redirection-history"
+ReportDeliveryEnvelope B "2.6.4.3.34" "id-att-report-delivery-envelope"
+ReportingDLName B "2.6.4.3.35" "id-att-reporting-DL-name"
+ReportingMTACertificate B "2.6.4.3.36" "id-att-reporting-MTA-certificate"
+ReportOriginAuthenticationCheck B "2.6.4.3.37" "id-att-report-origin-authentication-check"
+SecurityClassification B "2.6.4.3.38" "id-att-security-classification"
+SubjectSubmissionIdentifier B "2.6.4.3.40" "id-att-subject-submission-identifier"
+ORName B "2.6.4.3.41" "id-att-this-recipient-name"
+TraceInformationElement B "2.6.4.3.75" "id-att-trace-information"
+
+# IPMSMessageStoreAttributes - see master list in p22.cnf
+MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
+
+#.FN_BODY AdditionalInformation
+ proto_item *item = NULL;
+ int loffset = 0;
+ guint32 len = 0;
+
+ /* work out the length */
+ loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
+ (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
+
+ item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
+ tree = proto_item_add_subtree(item, ett_p1_additional_information);
+ proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)");
+
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+#.FN_BODY RegistrationTypes/extensions/_item
+/*XXX not implemented yet */
+
+#.FN_BODY ExtensionField/value
+ const char *name;
+
+ if(actx->external.indirect_ref_present) {
+ proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_StandardExtension_vals, "standard-extension %%d"));
+ if (dissector_try_uint(p1_extension_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
+ offset = tvb_reported_length(tvb);
+ } else {
+ proto_item *item;
+ proto_tree *next_tree;
+
+ next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_standard_extension, &item,
+ "Dissector for standard-extension %%d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
+ expert_add_info(actx->pinfo, item, &ei_p1_unknown_standard_extension);
+ }
+ } else if (actx->external.direct_ref_present) {
+ offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
+ name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference);
+ proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
+ }
+
+
+#.FN_PARS SecurityCategoryIdentifier
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY SecurityCategoryValue
+ const char *name;
+
+ if (actx->external.direct_reference) {
+ offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
+ name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference);
+ proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
+ } else {
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+ }
+
+#.FN_PARS ExtensionAttributeType
+ VAL_PTR = &actx->external.indirect_reference
+
+#.FN_BODY ExtensionAttribute/extension-attribute-value
+
+ proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_ExtensionAttributeType_vals, "extension-attribute-type %%d"));
+ if (!actx->pinfo->private_table) {
+ actx->pinfo->private_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
+ }
+ g_hash_table_insert(actx->pinfo->private_table, (gpointer)P1_ADDRESS_CTX, actx->subtree.tree_ctx);
+ if (dissector_try_uint(p1_extension_attribute_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
+ offset =tvb_reported_length(tvb);
+ } else {
+ proto_item *item;
+ proto_tree *next_tree;
+
+ next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_extension_attribute_type, &item,
+ "Dissector for extension-attribute-type %%d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
+ expert_add_info(actx->pinfo, item, &ei_p1_unknown_extension_attribute_type);
+ }
+ g_hash_table_steal(actx->pinfo->private_table, (gpointer)P1_ADDRESS_CTX);
+
+
+#.FN_BODY RefusedOperation/refused-argument/refused-extension
+/*XXX not implemented yet */
+
+#.FN_BODY CountryName
+ do_address("/C=", NULL, actx);
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY AdministrationDomainName
+ do_address("/A=", NULL, actx);
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS StandardExtension VAL_PTR = &actx->external.indirect_reference
+
+#.FN_BODY StandardExtension
+ actx->external.indirect_ref_present = TRUE;
+ actx->external.direct_ref_present = FALSE;
+ %(DEFAULT_BODY)s
+
+#.FN_BODY ExtensionType/private-extension FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+ actx->external.indirect_ref_present = FALSE;
+ actx->external.direct_reference = NULL;
+ %(DEFAULT_BODY)s
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_PARS ExtendedContentType
+ FN_VARIANT = _str VAL_PTR = &ctx->content_type_id
+
+#.FN_BODY ExtendedContentType
+ const char *name = NULL;
+ p1_address_ctx_t* ctx;
+
+ if (actx->subtree.tree_ctx == NULL)
+ actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
+
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+
+ %(DEFAULT_BODY)s
+
+ if(ctx->content_type_id) {
+ name = oid_resolved_from_string(wmem_packet_scope(), ctx->content_type_id);
+
+ if(!name) name = ctx->content_type_id;
+
+ proto_item_append_text(tree, " (%%s)", name);
+ }
+
+#.FN_PARS BuiltInContentType/_untag VAL_PTR = &ict
+
+#.FN_BODY BuiltInContentType/_untag
+ static guint32 ict = -1;
+ p1_address_ctx_t* ctx;
+
+ if (actx->subtree.tree_ctx == NULL)
+ actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
+
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+
+ %(DEFAULT_BODY)s
+
+ /* convert integer content type to oid for dispatch when the content is found */
+ switch(ict) {
+ case 2:
+ ctx->content_type_id = wmem_strdup(wmem_packet_scope(), "2.6.1.10.0");
+ break;
+ case 22:
+ ctx->content_type_id = wmem_strdup(wmem_packet_scope(), "2.6.1.10.1");
+ break;
+ default:
+ ctx->content_type_id = NULL;
+ break;
+ }
+
+#.FN_BODY Content
+ tvbuff_t *next_tvb;
+ p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+
+ /* we can do this now constructed octet strings are supported */
+ offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
+ proto_item_set_text(actx->created_item, "content (%%u bytes)", tvb_reported_length (next_tvb));
+
+ if (next_tvb) {
+ if (ctx && ctx->content_type_id) {
+ (void) call_ber_oid_callback(ctx->content_type_id, next_tvb, 0, actx->pinfo, actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->private_data);
+ } else if (ctx && ctx->report_unknown_content_type) {
+ proto_item *item;
+ proto_tree *next_tree;
+
+ item = proto_tree_add_expert(actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->pinfo, &ei_p1_unknown_built_in_content_type,
+ next_tvb, 0, tvb_reported_length_remaining(tvb, offset));
+ next_tree=proto_item_add_subtree(item, ett_p1_content_unknown);
+
+ dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
+ } else {
+ proto_item_append_text (actx->created_item, " (unknown content-type)");
+ }
+ }
+
+#.FN_PARS MTAName
+ VAL_PTR = &mtaname
+
+#.FN_BODY MTAName
+ tvbuff_t *mtaname = NULL;
+ p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+
+ %(DEFAULT_BODY)s
+
+ if (ctx && ctx->do_address) {
+ proto_item_append_text(actx->subtree.tree, " %%s", tvb_format_text(mtaname, 0, tvb_reported_length(mtaname)));
+ } else {
+ if (mtaname) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(mtaname, 0, tvb_reported_length(mtaname)));
+ }
+ }
+
+#.FN_PARS X121Address
+ VAL_PTR=&string
+
+#.FN_BODY X121Address
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/PX121=", string, actx);
+
+#.FN_PARS TerminalIdentifier
+ VAL_PTR=&string
+
+#.FN_BODY TerminalIdentifier
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/UA-ID=", string, actx);
+
+#.FN_BODY PrivateDomainName
+
+ do_address("/P=", NULL, actx);
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY PrivateDomainIdentifier
+
+ do_address("/P=", NULL, actx);
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS OrganizationName
+ VAL_PTR=&string
+
+#.FN_BODY OrganizationName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/O=", string, actx);
+
+#.FN_PARS TeletexOrganizationName
+ VAL_PTR=&string
+
+#.FN_BODY TeletexOrganizationName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/O=", string, actx);
+
+#.FN_PARS OrganizationalUnitName
+ VAL_PTR=&string
+
+#.FN_BODY OrganizationalUnitName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/OU=", string, actx);
+
+#.FN_PARS TeletexOrganizationalUnitName
+ VAL_PTR=&string
+
+#.FN_BODY TeletexOrganizationalUnitName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/OU=", string, actx);
+
+#.FN_PARS CommonName
+ VAL_PTR=&string
+
+#.FN_BODY CommonName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/CN=", string, actx);
+
+#.FN_PARS TeletexCommonName
+ VAL_PTR=&string
+
+#.FN_BODY TeletexCommonName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/CN=", string, actx);
+
+#.FN_BODY CountryName/_untag/iso-3166-alpha2-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY AdministrationDomainName/_untag/printable VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY PrivateDomainName/printable VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY PrivateDomainIdentifier/printable VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY PhysicalDeliveryCountryName/iso-3166-alpha2-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY UserAddress/x121/x121-address VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY CountryName/_untag/x121-dcc-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY AdministrationDomainName/_untag/numeric VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY PrivateDomainName/numeric VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY PrivateDomainIdentifier/numeric VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY PhysicalDeliveryCountryName/x121-dcc-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+#.FN_BODY PostalCode/numeric-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address(NULL, nstring, actx);
+
+
+#.FN_BODY TeletexDomainDefinedAttribute/type VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address_str("/DD.", tstring, actx);
+
+#.FN_BODY TeletexDomainDefinedAttribute/value VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address_str_tree("=", tstring, actx, tree);
+
+#.FN_BODY TeletexDomainDefinedAttribute
+ actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY PersonalName/surname VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/S=", pstring, actx);
+
+#.FN_BODY PersonalName/given-name VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/G=", pstring, actx);
+
+#.FN_BODY PersonalName/initials VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/I=", pstring, actx);
+
+#.FN_BODY PersonalName/generation-qualifier VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/Q=", pstring, actx);
+
+#.FN_BODY TeletexPersonalName/surname VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/S=", tstring, actx);
+
+#.FN_BODY TeletexPersonalName/given-name VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/G=", tstring, actx);
+
+#.FN_BODY TeletexPersonalName/initials VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/I=", tstring, actx);
+
+#.FN_BODY TeletexPersonalName/generation-qualifier VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address("/Q=", tstring, actx);
+
+#.FN_BODY BuiltInDomainDefinedAttribute/type VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address_str("/DD.", pstring, actx);
+
+#.FN_BODY BuiltInDomainDefinedAttribute/value VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ do_address_str_tree("=", pstring, actx, tree);
+
+#.FN_BODY BuiltInDomainDefinedAttribute
+ actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY ORAddress
+ p1_address_ctx_t* ctx;
+
+ if (actx->subtree.tree_ctx == NULL) {
+ actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
+ }
+
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+ ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
+
+ actx->subtree.tree = NULL;
+ set_do_address(actx, TRUE);
+
+ %(DEFAULT_BODY)s
+
+
+ if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
+ proto_item_append_text(actx->subtree.tree, " (%%s/)", wmem_strbuf_get_str(ctx->oraddress));
+
+ set_do_address(actx, FALSE);
+
+#.FN_BODY ORName
+ p1_address_ctx_t* ctx;
+
+ if (actx->subtree.tree_ctx == NULL) {
+ actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
+ }
+
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+ ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
+
+ actx->subtree.tree = NULL;
+ set_do_address(actx, TRUE);
+
+ %(DEFAULT_BODY)s
+
+ if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
+ proto_item_append_text(actx->subtree.tree, " (%%s/)", wmem_strbuf_get_str(ctx->oraddress));
+
+ set_do_address(actx, FALSE);
+#.FN_BODY MessageIdentifier
+ actx->subtree.tree = NULL;
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY GlobalDomainIdentifier
+ p1_address_ctx_t* ctx;
+
+ if (actx->subtree.tree_ctx == NULL) {
+ actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
+ }
+
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+ ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
+
+ actx->subtree.tree = tree;
+
+ %(DEFAULT_BODY)s
+
+ if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0)) {
+ proto_item_append_text(actx->subtree.tree, " (%%s/", wmem_strbuf_get_str(ctx->oraddress));
+
+ if (hf_index == hf_p1_subject_identifier) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s/", wmem_strbuf_get_str(ctx->oraddress));
+ }
+ }
+
+
+#.FN_PARS LocalIdentifier
+ VAL_PTR=&id
+
+#.FN_BODY LocalIdentifier
+ tvbuff_t *id = NULL;
+ p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+
+ %(DEFAULT_BODY)s
+
+ if(id) {
+ if (ctx && ctx->do_address)
+ proto_item_append_text(actx->subtree.tree, " $ %%s)", tvb_format_text(id, 0, tvb_reported_length(id)));
+
+ if (hf_index == hf_p1_subject_identifier)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %%s)", tvb_format_text(id, 0, tvb_reported_length(id)));
+ }
+
+#.FN_BODY MTSIdentifier
+
+ set_do_address(actx, TRUE);
+
+ %(DEFAULT_BODY)s
+
+ set_do_address(actx, FALSE);
+
+#.FN_BODY MTANameAndOptionalGDI
+
+ set_do_address(actx, TRUE);
+
+ %(DEFAULT_BODY)s
+
+ set_do_address(actx, FALSE);
+ proto_item_append_text(tree, ")");
+
+#.FN_BODY BuiltInStandardAttributes
+ actx->subtree.tree = tree;
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY TraceInformationElement
+
+ set_do_address(actx, TRUE);
+
+ %(DEFAULT_BODY)s
+
+ set_do_address(actx, FALSE);
+
+#.FN_BODY InternalTraceInformationElement
+
+ set_do_address(actx, TRUE);
+
+ %(DEFAULT_BODY)s
+
+ set_do_address(actx, FALSE);
+
+#.FN_BODY DomainSuppliedInformation
+
+ set_do_address(actx, FALSE);
+
+ %(DEFAULT_BODY)s
+
+ set_do_address(actx, TRUE);
+ proto_item_append_text(tree, ")");
+
+#.FN_BODY MTASuppliedInformation
+
+ set_do_address(actx, FALSE);
+
+ %(DEFAULT_BODY)s
+
+ set_do_address(actx, TRUE);
+ proto_item_append_text(tree, ")");
+
+#.FN_PARS Time
+ VAL_PTR = &arrival
+
+#.FN_BODY Time
+ tvbuff_t *arrival = NULL;
+ p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+
+ %(DEFAULT_BODY)s
+
+ if(arrival && ctx && ctx->do_address)
+ proto_item_append_text(actx->subtree.tree, " %%s", tvb_format_text(arrival, 0, tvb_reported_length(arrival)));
+
+#.FN_PARS RoutingAction
+ VAL_PTR = &action
+
+#.FN_BODY RoutingAction
+ int action = 0;
+
+ %(DEFAULT_BODY)s
+
+ proto_item_append_text(actx->subtree.tree, " %%s", val_to_str(action, p1_RoutingAction_vals, "action(%%d)"));
+
+#.FN_PARS MTABindError
+ VAL_PTR=&error
+
+#.FN_BODY MTABindError
+ int error = -1;
+ %(DEFAULT_BODY)s
+ if((error != -1))
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(error, p1_MTABindError_vals, "error(%%d)"));
+
+#.FN_PARS TokenTypeIdentifier
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY TokenTypeData
+
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
+
+#.FN_PARS Credentials
+ VAL_PTR = &credentials
+
+#.FN_BODY Credentials
+ gint credentials = -1;
+
+ %(DEFAULT_BODY)s
+
+ if( (credentials!=-1) && p1_Credentials_vals[credentials].strptr ){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_Credentials_vals[credentials].strptr);
+ }
+
+#.FN_PARS TokenDataType
+ VAL_PTR = &actx->external.indirect_reference
+
+#.FN_BODY TokenData/value
+
+ proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_TokenDataType_vals, "tokendata-type %%d"));
+ if (dissector_try_uint(p1_tokendata_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
+ offset = tvb_reported_length(tvb);
+ } else {
+ proto_item *item;
+ proto_tree *next_tree;
+
+ next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_tokendata_type, &item,
+ "Dissector for tokendata-type %%d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
+ expert_add_info(actx->pinfo, item, &ei_p1_unknown_tokendata_type);
+ }
+
+#.FN_BODY PerDomainBilateralInformation/bilateral-information
+ proto_item *item = NULL;
+ int loffset = 0;
+ guint32 len = 0;
+
+ /* work out the length */
+ loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
+ (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
+
+ /* create some structure so we can tell what this unknown ASN.1 represents */
+ item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
+ tree = proto_item_add_subtree(item, ett_p1_bilateral_information);
+
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+#.FN_PARS MTS-APDU
+ VAL_PTR = &apdu
+
+#.FN_BODY MTS-APDU
+ gint apdu = -1;
+
+ %(DEFAULT_BODY)s
+
+ if( (apdu!=-1) && p1_MTS_APDU_vals[apdu].strptr ){
+ if(apdu != 0) { /* we don't show "message" - sub-dissectors have better idea */
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_MTS_APDU_vals[apdu].strptr);
+ }
+ }
+
+#.FN_PARS ReportType
+ VAL_PTR = &report
+
+#.FN_BODY ReportType
+ gint report = -1;
+
+ %(DEFAULT_BODY)s
+
+ if( (report!=-1) && p1_ReportType_vals[report].strptr ){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_ReportType_vals[report].strptr);
+ }
+
+#.FN_BODY MessageSubmissionArgument
+ p1_initialize_content_globals(actx, tree, TRUE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals(actx, NULL, FALSE);
+
+#.FN_BODY MessageDeliveryArgument
+ p1_initialize_content_globals(actx, tree, TRUE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals(actx, NULL, FALSE);
+
+#.FN_BODY ReportDeliveryArgument
+ p1_initialize_content_globals(actx, tree, TRUE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals(actx, NULL, FALSE);
+
+#.FN_HDR MTSBindResult
+ /* TODO: there may be other entry points where this global should be initialized... */
+ actx->subtree.tree = NULL;
+#.END
+
diff --git a/epan/dissectors/asn1/p1/packet-p1-template.c b/epan/dissectors/asn1/p1/packet-p1-template.c
new file mode 100644
index 0000000000..1d1714fe75
--- /dev/null
+++ b/epan/dissectors/asn1/p1/packet-p1-template.c
@@ -0,0 +1,473 @@
+/* packet-p1.c
+ * Routines for X.411 (X.400 Message Transfer) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+#include <epan/strutil.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+#include "packet-rtse.h"
+
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-x509if.h"
+#include "packet-x509sat.h"
+
+#include "packet-p1.h"
+
+#define PNAME "X.411 Message Transfer Service"
+#define PSNAME "P1"
+#define PFNAME "p1"
+
+static guint global_p1_tcp_port = 102;
+static dissector_handle_t tpkt_handle;
+static void prefs_register_p1(void); /* forward declaration for use in preferences registration */
+
+/* Initialize the protocol and registered fields */
+static int proto_p1 = -1;
+static int proto_p3 = -1;
+
+static int hf_p1_MTS_APDU_PDU = -1;
+static int hf_p1_MTABindArgument_PDU = -1;
+static int hf_p1_MTABindResult_PDU = -1;
+static int hf_p1_MTABindError_PDU = -1;
+
+#include "packet-p1-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_p1 = -1;
+static gint ett_p3 = -1;
+static gint ett_p1_content_unknown = -1;
+static gint ett_p1_bilateral_information = -1;
+static gint ett_p1_additional_information = -1;
+static gint ett_p1_unknown_standard_extension = -1;
+static gint ett_p1_unknown_extension_attribute_type = -1;
+static gint ett_p1_unknown_tokendata_type = -1;
+#include "packet-p1-ett.c"
+
+static expert_field ei_p1_unknown_extension_attribute_type = EI_INIT;
+static expert_field ei_p1_unknown_standard_extension = EI_INIT;
+static expert_field ei_p1_unknown_built_in_content_type = EI_INIT;
+static expert_field ei_p1_unknown_tokendata_type = EI_INIT;
+static expert_field ei_p1_unsupported_pdu = EI_INIT;
+static expert_field ei_p1_zero_pdu = EI_INIT;
+
+/* Dissector tables */
+static dissector_table_t p1_extension_dissector_table;
+static dissector_table_t p1_extension_attribute_dissector_table;
+static dissector_table_t p1_tokendata_dissector_table;
+
+#include "packet-p1-table.c" /* operation and error codes */
+
+#define P1_ADDRESS_CTX "p1-address-ctx"
+typedef struct p1_address_ctx {
+ gboolean do_address;
+ const char *content_type_id;
+ gboolean report_unknown_content_type;
+ wmem_strbuf_t* oraddress;
+} p1_address_ctx_t;
+
+static void set_do_address(asn1_ctx_t* actx, gboolean do_address)
+{
+ p1_address_ctx_t* ctx;
+
+ if (actx->subtree.tree_ctx == NULL) {
+ actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
+ }
+
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+ ctx->do_address = do_address;
+}
+
+static p1_address_ctx_t *get_do_address_ctx(asn1_ctx_t* actx)
+{
+ p1_address_ctx_t* ctx = NULL;
+
+ if (actx->pinfo->private_table) {
+ /* First check if called from an extension attribute */
+ ctx = (p1_address_ctx_t *)g_hash_table_lookup(actx->pinfo->private_table, P1_ADDRESS_CTX);
+ }
+
+ if (!ctx) {
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+ }
+
+ return ctx;
+}
+
+static void do_address(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx)
+{
+ p1_address_ctx_t* ctx = get_do_address_ctx(actx);
+
+ if (ctx && ctx->do_address) {
+ if (addr) {
+ wmem_strbuf_append(ctx->oraddress, addr);
+ }
+ if (tvb_string) {
+ wmem_strbuf_append(ctx->oraddress, tvb_format_text(tvb_string, 0, tvb_captured_length(tvb_string)));
+ }
+ }
+}
+
+static void do_address_str(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx)
+{
+ wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr;
+ p1_address_ctx_t* ctx = get_do_address_ctx(actx);
+
+ do_address(addr, tvb_string, actx);
+
+ if (ctx && ctx->do_address && ddatype && tvb_string)
+ wmem_strbuf_append(ddatype, tvb_format_text(tvb_string, 0, tvb_captured_length(tvb_string)));
+}
+
+static void do_address_str_tree(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx, proto_tree* tree)
+{
+ wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr;
+ p1_address_ctx_t* ctx = get_do_address_ctx(actx);
+
+ do_address(addr, tvb_string, actx);
+
+ if (ctx && ctx->do_address && tvb_string && ddatype) {
+ if (wmem_strbuf_get_len(ddatype) > 0) {
+ proto_item_append_text (tree, " (%s=%s)", wmem_strbuf_get_str(ddatype), tvb_format_text(tvb_string, 0, tvb_captured_length(tvb_string)));
+ }
+ }
+}
+
+#include "packet-p1-fn.c"
+
+#include "packet-p1-table11.c" /* operation argument/result dissectors */
+#include "packet-p1-table21.c" /* error dissector */
+
+static const ros_info_t p3_ros_info = {
+ "P3",
+ &proto_p3,
+ &ett_p3,
+ p3_opr_code_string_vals,
+ p3_opr_tab,
+ p3_err_code_string_vals,
+ p3_err_tab
+};
+
+void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, gboolean report_unknown_cont_type)
+{
+ p1_address_ctx_t* ctx;
+
+ if (actx->subtree.tree_ctx == NULL) {
+ actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
+ }
+
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+
+ actx->subtree.top_tree = tree;
+ actx->external.direct_reference = NULL;
+ ctx->content_type_id = NULL;
+ ctx->report_unknown_content_type = report_unknown_cont_type;
+}
+
+const char* p1_get_last_oraddress (asn1_ctx_t* actx)
+{
+ p1_address_ctx_t* ctx;
+
+ if ((actx == NULL) || (actx->subtree.tree_ctx == NULL))
+ return "";
+
+ ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
+ if (wmem_strbuf_get_len(ctx->oraddress) <= 0)
+ return "";
+
+ return wmem_strbuf_get_str(ctx->oraddress);
+}
+
+/*
+ * Dissect P1 MTS APDU
+ */
+int
+dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* save parent_tree so subdissectors can create new top nodes */
+ p1_initialize_content_globals (&asn1_ctx, parent_tree, TRUE);
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, proto_p1, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_p1);
+ }
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
+ col_set_str(pinfo->cinfo, COL_INFO, "Transfer");
+
+ dissect_p1_MTS_APDU (FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MTS_APDU_PDU);
+ p1_initialize_content_globals (&asn1_ctx, NULL, FALSE);
+ return tvb_captured_length(tvb);
+}
+
+/*
+* Dissect P1 PDUs inside a PPDU.
+*/
+static int
+dissect_p1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item;
+ proto_tree *tree;
+ struct SESSION_DATA_STRUCTURE* session;
+ int (*p1_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) = NULL;
+ const char *p1_op_name;
+ int hf_p1_index = -1;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* do we have operation information from the ROS dissector? */
+ if (data == NULL)
+ return 0;
+ session = (struct SESSION_DATA_STRUCTURE*)data;
+
+ /* save parent_tree so subdissectors can create new top nodes */
+ p1_initialize_content_globals (&asn1_ctx, parent_tree, TRUE);
+
+ asn1_ctx.private_data = session;
+
+ item = proto_tree_add_item(parent_tree, proto_p1, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_p1);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ switch(session->ros_op & ROS_OP_MASK) {
+ case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
+ p1_dissector = dissect_p1_MTABindArgument;
+ p1_op_name = "Bind-Argument";
+ hf_p1_index = hf_p1_MTABindArgument_PDU;
+ break;
+ case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
+ p1_dissector = dissect_p1_MTABindResult;
+ p1_op_name = "Bind-Result";
+ hf_p1_index = hf_p1_MTABindResult_PDU;
+ break;
+ case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
+ p1_dissector = dissect_p1_MTABindError;
+ p1_op_name = "Bind-Error";
+ hf_p1_index = hf_p1_MTABindError_PDU;
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
+ p1_dissector = dissect_p1_MTS_APDU;
+ p1_op_name = "Transfer";
+ hf_p1_index = hf_p1_MTS_APDU_PDU;
+ break;
+ default:
+ proto_tree_add_expert(tree, pinfo, &ei_p1_unsupported_pdu, tvb, offset, -1);
+ return tvb_captured_length(tvb);
+ }
+
+ col_set_str(pinfo->cinfo, COL_INFO, p1_op_name);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0) {
+ old_offset=offset;
+ offset=(*p1_dissector)(FALSE, tvb, offset, &asn1_ctx , tree, hf_p1_index);
+ if (offset == old_offset) {
+ proto_tree_add_expert(tree, pinfo, &ei_p1_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+ p1_initialize_content_globals (&asn1_ctx, NULL, FALSE);
+ return tvb_captured_length(tvb);
+}
+
+
+
+
+/*--- proto_register_p1 -------------------------------------------*/
+void proto_register_p1(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ /* "Created by defining PDU in .cnf */
+ { &hf_p1_MTABindArgument_PDU,
+ { "MTABindArgument", "p1.MTABindArgument",
+ FT_UINT32, BASE_DEC, VALS(p1_MTABindArgument_vals), 0,
+ "p1.MTABindArgument", HFILL }},
+ { &hf_p1_MTABindResult_PDU,
+ { "MTABindResult", "p1.MTABindResult",
+ FT_UINT32, BASE_DEC, VALS(p1_MTABindResult_vals), 0,
+ "p1.MTABindResult", HFILL }},
+ { &hf_p1_MTABindError_PDU,
+ { "MTABindError", "p1.MTABindError",
+ FT_UINT32, BASE_DEC, VALS(p1_MTABindError_vals), 0,
+ "p1.MTABindError", HFILL }},
+ { &hf_p1_MTS_APDU_PDU,
+ { "MTS-APDU", "p1.MTS_APDU",
+ FT_UINT32, BASE_DEC, VALS(p1_MTS_APDU_vals), 0,
+ "p1.MTS_APDU", HFILL }},
+
+#include "packet-p1-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_p1,
+ &ett_p3,
+ &ett_p1_content_unknown,
+ &ett_p1_bilateral_information,
+ &ett_p1_additional_information,
+ &ett_p1_unknown_standard_extension,
+ &ett_p1_unknown_extension_attribute_type,
+ &ett_p1_unknown_tokendata_type,
+#include "packet-p1-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_p1_unknown_extension_attribute_type, { "p1.unknown.extension_attribute_type", PI_UNDECODED, PI_WARN, "Unknown extension-attribute-type", EXPFILL }},
+ { &ei_p1_unknown_standard_extension, { "p1.unknown.standard_extension", PI_UNDECODED, PI_WARN, "Unknown standard-extension", EXPFILL }},
+ { &ei_p1_unknown_built_in_content_type, { "p1.unknown.built_in_content_type", PI_UNDECODED, PI_WARN, "P1 Unknown Content (unknown built-in content-type)", EXPFILL }},
+ { &ei_p1_unknown_tokendata_type, { "p1.unknown.tokendata_type", PI_UNDECODED, PI_WARN, "Unknown tokendata-type", EXPFILL }},
+ { &ei_p1_unsupported_pdu, { "p1.unsupported_pdu", PI_UNDECODED, PI_WARN, "Unsupported P1 PDU", EXPFILL }},
+ { &ei_p1_zero_pdu, { "p1.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte P1 PDU", EXPFILL }},
+ };
+
+ expert_module_t* expert_p1;
+ module_t *p1_module;
+
+ /* Register protocol */
+ proto_p1 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("p1", dissect_p1, proto_p1);
+
+ proto_p3 = proto_register_protocol("X.411 Message Access Service", "P3", "p3");
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_p1, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_p1 = expert_register_protocol(proto_p1);
+ expert_register_field_array(expert_p1, ei, array_length(ei));
+
+ p1_extension_dissector_table = register_dissector_table("p1.extension", "P1-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ p1_extension_attribute_dissector_table = register_dissector_table("p1.extension-attribute", "P1-EXTENSION-ATTRIBUTE", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ p1_tokendata_dissector_table = register_dissector_table("p1.tokendata", "P1-TOKENDATA", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ /* Register our configuration options for P1, particularly our port */
+
+ p1_module = prefs_register_protocol_subtree("OSI/X.400", proto_p1, prefs_register_p1);
+
+ prefs_register_uint_preference(p1_module, "tcp.port", "P1 TCP Port",
+ "Set the port for P1 operations (if other"
+ " than the default of 102)",
+ 10, &global_p1_tcp_port);
+
+ register_ber_syntax_dissector("P1 Message", proto_p1, dissect_p1_mts_apdu);
+#include "packet-p1-syn-reg.c"
+}
+
+
+/*--- proto_reg_handoff_p1 --- */
+void proto_reg_handoff_p1(void) {
+ dissector_handle_t p1_handle;
+
+#include "packet-p1-dis-tab.c"
+
+ /* APPLICATION CONTEXT */
+
+ oid_add_from_string("id-ac-mts-transfer","2.6.0.1.6");
+
+ /* ABSTRACT SYNTAXES */
+
+ p1_handle = find_dissector("p1");
+ register_rtse_oid_dissector_handle("2.6.0.2.12", p1_handle, 0, "id-as-mta-rtse", TRUE);
+ register_rtse_oid_dissector_handle("2.6.0.2.7", p1_handle, 0, "id-as-mtse", FALSE);
+
+
+ register_rtse_oid_dissector_handle("applicationProtocol.1", p1_handle, 0, "mts-transfer-protocol-1984", FALSE);
+ register_rtse_oid_dissector_handle("applicationProtocol.12", p1_handle, 0, "mta-transfer-protocol", FALSE);
+
+ /* the ROS dissector will use the registered P3 ros info */
+ register_rtse_oid_dissector_handle(id_as_mts_rtse, NULL, 0, "id-as-mts-rtse", TRUE);
+ register_rtse_oid_dissector_handle(id_as_msse, NULL, 0, "id-as-msse", TRUE);
+
+ /* remember the tpkt handler for change in preferences */
+ tpkt_handle = find_dissector("tpkt");
+
+ /* APPLICATION CONTEXT */
+
+ oid_add_from_string("id-ac-mts-access-88", id_ac_mts_access_88);
+ oid_add_from_string("id-ac-mts-forced-access-88", id_ac_mts_forced_access_88);
+ oid_add_from_string("id-ac-mts-access-94", id_ac_mts_access_94);
+ oid_add_from_string("id-ac-mts-forced-access-94", id_ac_mts_forced_access_94);
+
+
+ /* Register P3 with ROS */
+
+ register_ros_protocol_info(id_as_msse, &p3_ros_info, 0, "id-as-msse", FALSE);
+
+ register_ros_protocol_info(id_as_mdse_88, &p3_ros_info, 0, "id-as-mdse-88", FALSE);
+ register_ros_protocol_info(id_as_mdse_94, &p3_ros_info, 0, "id-as-mdse-94", FALSE);
+
+ register_ros_protocol_info(id_as_mase_88, &p3_ros_info, 0, "id-as-mase-88", FALSE);
+ register_ros_protocol_info(id_as_mase_94, &p3_ros_info, 0, "id-as-mase-94", FALSE);
+
+ register_ros_protocol_info(id_as_mts, &p3_ros_info, 0, "id-as-mts", FALSE);
+ register_ros_protocol_info(id_as_mts_rtse, &p3_ros_info, 0, "id-as-mts-rtse", TRUE);
+
+}
+
+static void
+prefs_register_p1(void)
+{
+ static guint tcp_port = 0;
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if ((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_p1_tcp_port;
+
+ if ((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_add_uint("tcp.port", tcp_port, tpkt_handle);
+
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/p1/packet-p1-template.h b/epan/dissectors/asn1/p1/packet-p1-template.h
new file mode 100644
index 0000000000..b8463f8340
--- /dev/null
+++ b/epan/dissectors/asn1/p1/packet-p1-template.h
@@ -0,0 +1,37 @@
+/* packet-p3.h
+ * Routines for X.411 (X.400 Message Transfer) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_P1_H
+#define PACKET_P1_H
+
+#include "packet-p1-val.h"
+
+void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, gboolean report_unknown_cont_type);
+const char* p1_get_last_oraddress(asn1_ctx_t* actx);
+int dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data);
+#include "packet-p1-exp.h"
+
+void proto_reg_handoff_p1(void);
+void proto_register_p1(void);
+
+#endif /* PACKET_P1_H */
diff --git a/epan/dissectors/asn1/p22/CMakeLists.txt b/epan/dissectors/asn1/p22/CMakeLists.txt
new file mode 100644
index 0000000000..fe1d3e1558
--- /dev/null
+++ b/epan/dissectors/asn1/p22/CMakeLists.txt
@@ -0,0 +1,74 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME p22 )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ IPMSInformationObjects.asn
+ IPMSHeadingExtensions.asn
+ IPMSExtendedBodyPartTypes2.asn
+ IPMSFileTransferBodyPartType.asn
+ IPMSExtendedVoiceBodyPartType.asn
+ IPMSForwardedContentBodyPartType.asn
+ IPMSMessageStoreAttributes.asn
+ IPMSSecurityExtensions.asn
+ IPMSObjectIdentifiers.asn
+ IPMSUpperBounds.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -C )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../acse/acse-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../ftam/ftam-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../p7/p7-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+)
+
+set( EXPORT_DEPENDS
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/p22/IPMSExtendedBodyPartTypes2.asn b/epan/dissectors/asn1/p22/IPMSExtendedBodyPartTypes2.asn
new file mode 100644
index 0000000000..76facd1bdd
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSExtendedBodyPartTypes2.asn
@@ -0,0 +1,38 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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/epan/dissectors/asn1/p22/IPMSExtendedVoiceBodyPartType.asn b/epan/dissectors/asn1/p22/IPMSExtendedVoiceBodyPartType.asn
new file mode 100644
index 0000000000..f745b52c31
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSExtendedVoiceBodyPartType.asn
@@ -0,0 +1,40 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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/epan/dissectors/asn1/p22/IPMSFileTransferBodyPartType.asn b/epan/dissectors/asn1/p22/IPMSFileTransferBodyPartType.asn
new file mode 100644
index 0000000000..e5c0037310
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSFileTransferBodyPartType.asn
@@ -0,0 +1,262 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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 OPTIONAL,
+-- WS: asn2wrs does not handle DEFAULT, so we make the parameters OPTIONAL
+-- 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
+
+DOCUMENT-PARAMETER ::= CLASS {&Type
+}
+
+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
+
+-- WS: Moved to before used
+--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
+}
+
+COMPRESSION-ALGORITHM ::= TYPE-IDENTIFIER
+
+CompressionParameter ::= SEQUENCE {
+ compression-algorithm-id
+ [0] TYPE-IDENTIFIER.&id({CompressionAlgorithmTable}),
+ compression-algorithm-param
+ [1] TYPE-IDENTIFIER.&Type
+ ({CompressionAlgorithmTable}{@compression-algorithm-id})
+}
+
+-- WS: Moved to before where used
+--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/epan/dissectors/asn1/p22/IPMSForwardedContentBodyPartType.asn b/epan/dissectors/asn1/p22/IPMSForwardedContentBodyPartType.asn
new file mode 100644
index 0000000000..f6af7fcde1
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSForwardedContentBodyPartType.asn
@@ -0,0 +1,54 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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/epan/dissectors/asn1/p22/IPMSHeadingExtensions.asn b/epan/dissectors/asn1/p22/IPMSHeadingExtensions.asn
new file mode 100644
index 0000000000..f7f80092c0
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSHeadingExtensions.asn
@@ -0,0 +1,267 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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,
+ BodyPartNumber
+ --==
+ 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-- Languages,
+ IDENTIFIED BY id-hex-languages
+}
+
+--WS: Support dissection of extension
+Languages ::= SET OF Language
+
+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)
+
+-- WS: Import Signature definition
+Signature ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+BodyPartSignature ::= Signature
+-- 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
+
+--WS: expand SIGNED MACRO manually
+CirculationSignatureData ::=
+-- SIGNED
+-- {-- SEQUENCE {algorithm-identifier CirculationSignatureAlgorithmIdentifier,
+ this-IPM ThisIPMField,
+ timestamp CirculationTime}--}
+
+CirculationSignature ::= SEQUENCE {
+ circulation-signature-data CirculationSignatureData,
+ algorithm-identifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+CirculationSignatureAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Circulation List Indicator
+circulation-list-indicator IPMS-EXTENSION ::= {
+ VALUE NULL,
+ IDENTIFIED BY id-rex-circulation-list-indicator
+}
+
+--WS: Allow dissection.
+CirculationListIndicator ::= NULL
+
+-- 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/epan/dissectors/asn1/p22/IPMSInformationObjects.asn b/epan/dissectors/asn1/p22/IPMSInformationObjects.asn
new file mode 100644
index 0000000000..fde4914397
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSInformationObjects.asn
@@ -0,0 +1,643 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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
+IPMS-EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Type DEFAULT NULL
+}WITH SYNTAX {[VALUE &Type,]
+ IDENTIFIED BY &id
+}
+
+IPMSExtension{IPMS-EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type IPMS-EXTENSION.&id({ChosenFrom}),
+ value IPMS-EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+-- WS: Moved earlier
+--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
+
+--WS: We don't have an IMPORT for this, so we make it an ANY.
+Interchange-Data-Element ::= ANY
+
+-- 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
+
+-- WS: Manually import MACRO
+MS-EXTENSION ::= TYPE-IDENTIFIER
+
+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 BodyPartNumber}
+}
+
+BodyPartNumber ::= 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/epan/dissectors/asn1/p22/IPMSMessageStoreAttributes.asn b/epan/dissectors/asn1/p22/IPMSMessageStoreAttributes.asn
new file mode 100644
index 0000000000..0017ddad3c
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSMessageStoreAttributes.asn
@@ -0,0 +1,1175 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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, BodyPartNumber, 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}
+
+-- WS: asn2wrs does not import the macro definitions so we redeclare here
+-- 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
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+-- WS: asn2wrs cannot handle the self-reference (use before declaration)
+ &ParentMatchingRules --MATCHING-RULE.&id-- OBJECT IDENTIFIER OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator AttributeId OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- 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
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+blind-copy-recipients-att 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
+-- WS: added "-att" to prevent asn2wrs conflict
+incomplete-copy-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IncompleteCopy,
+ NUMERATION
+ single-valued, -- An equality match is specified for 1988
+
+
+ -- Application Contexts
+ ID id-hat-incomplete-copy
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+languages-att 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
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+auto-submitted-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoSubmitted,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-hat-auto-submitted
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+body-part-signatures-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSignatures,
+ NUMERATION single-valued,
+ ID id-hat-body-part-signatures
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+ipm-security-label-att 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
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+authorization-time-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AuthorizationTime,
+ EQUALITY MATCHING-RULE generalizedTimeMatch,
+ ORDERING MATCHING-RULE generalizedTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-authorization-time
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+circulation-list-recipients-att 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
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+distribution-codes-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DistributionCode,
+ EQUALITY MATCHING-RULE distributionCodeMatch,
+ NUMERATION multi-valued,
+ ID id-hat-distribution-codes
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+extended-subject-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedSubject,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-hat-extended-subject
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+information-category-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX InformationCategory,
+ EQUALITY MATCHING-RULE informationCategoryMatch,
+ NUMERATION multi-valued,
+ ID id-hat-information-category
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+manual-handling-instructions-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ManualHandlingInstruction,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ NUMERATION multi-valued,
+ ID id-hat-manual-handling-instructions
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+originators-reference-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorsReference,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ NUMERATION single-valued,
+ ID id-hat-originators-reference
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+precedence-policy-identifier-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PrecedencePolicyIdentifier,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-precedence-policy-id
+}
+
+-- Recipient extensions
+-- WS: added "-att" to prevent asn2wrs conflict
+precedence-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Precedence,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-hat-precedence
+}
+
+-- Envelope extensions
+-- WS: added "-att" to prevent asn2wrs conflict
+body-part-encryption-token-att X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartTokens,
+ NUMERATION single-valued,
+ ID id-hat-body-part-encryption-token
+}
+
+-- WS: added "-att" to prevent asn2wrs conflict
+forwarded-content-token-att 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/epan/dissectors/asn1/p22/IPMSObjectIdentifiers.asn b/epan/dissectors/asn1/p22/IPMSObjectIdentifiers.asn
new file mode 100644
index 0000000000..6464db4cfc
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSObjectIdentifiers.asn
@@ -0,0 +1,508 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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/epan/dissectors/asn1/p22/IPMSSecurityExtensions.asn b/epan/dissectors/asn1/p22/IPMSSecurityExtensions.asn
new file mode 100644
index 0000000000..f4bfb109d3
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSSecurityExtensions.asn
@@ -0,0 +1,149 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
+-- 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)}
+--WS: asn2wrs can't import a type through a intermediate module - so we import directly
+ Certificates
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- IPMS Information Objects
+ IPMS-EXTENSION, BodyPartNumber
+ --==
+ 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}-- BIT STRING,
+ 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/epan/dissectors/asn1/p22/IPMSUpperBounds.asn b/epan/dissectors/asn1/p22/IPMSUpperBounds.asn
new file mode 100644
index 0000000000..80300aaba8
--- /dev/null
+++ b/epan/dissectors/asn1/p22/IPMSUpperBounds.asn
@@ -0,0 +1,48 @@
+-- Module IPMSUpperBounds (X.420:06/1999)
+-- See also ITU-T X.420 (06/1999)
+-- See also the index of all ASN.1 assignments needed in this document
+
+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/epan/dissectors/asn1/p22/Makefile.am b/epan/dissectors/asn1/p22/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/p22/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/p22/Makefile.common b/epan/dissectors/asn1/p22/Makefile.common
new file mode 100644
index 0000000000..65631f1250
--- /dev/null
+++ b/epan/dissectors/asn1/p22/Makefile.common
@@ -0,0 +1,81 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=p22
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ IPMSInformationObjects.asn \
+ IPMSHeadingExtensions.asn \
+ IPMSExtendedBodyPartTypes2.asn \
+ IPMSFileTransferBodyPartType.asn \
+ IPMSExtendedVoiceBodyPartType.asn \
+ IPMSForwardedContentBodyPartType.asn \
+ IPMSMessageStoreAttributes.asn \
+ IPMSSecurityExtensions.asn \
+ IPMSObjectIdentifiers.asn \
+ IPMSUpperBounds.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS = -b -C
+
+EXTRA_CNF = \
+ $(builddir)/../acse/acse-exp.cnf \
+ $(builddir)/../ftam/ftam-exp.cnf \
+ $(builddir)/../p7/p7-exp.cnf \
+ $(builddir)/../p1/p1-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf
+
+EXPORT_DEPENDS = \
+ $(builddir)/../p1/p1-exp.cnf
+
+$(builddir)/../acse/acse-exp.cnf:
+ (cd $(builddir)/../acse && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../ftam/ftam-exp.cnf:
+ (cd $(builddir)/../ftam && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../p7/p7-exp.cnf:
+ (cd $(builddir)/../p7 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../p1/p1-exp.cnf:
+ (cd $(builddir)/../p1 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/p22/Makefile.nmake b/epan/dissectors/asn1/p22/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/p22/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/p22/p22.cnf b/epan/dissectors/asn1/p22/p22.cnf
new file mode 100644
index 0000000000..6374a9db77
--- /dev/null
+++ b/epan/dissectors/asn1/p22/p22.cnf
@@ -0,0 +1,281 @@
+# p22.cnf
+# X.420 (InterPersonal Messaging) conformance file
+
+#.TYPE_ATTR
+Time TYPE = FT_STRING DISPLAY = BASE_NONE STRING = NULL BITMASK = 0
+# Permitted-Actions-Attribute is exported from FTAM as DISPLAY = BASE_HEX -
+# but this causes a runtime error.
+# We override the definition here until we can identify the fix correct fix
+Permitted-Actions-Attribute TYPE = FT_BYTES DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+
+#.IMPORT ../ftam/ftam-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
+#.IMPORT ../p7/p7-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.IMPORT ../acse/acse-exp.cnf
+
+#.OMIT_ASSIGNMENT
+# These gives unused code warnings
+RN
+NRN
+ON
+ID
+#.END
+
+#.NO_EMIT
+# These fields are only used through COMPONENTS OF,
+# and consequently generate unused code warnings
+CommonFields
+#.END
+
+#.EXPORTS
+ORDescriptor
+InformationObject
+ExtensionsField
+IPM
+IPN
+MessageParameters
+NonReceiptReasonField
+DiscardReasonField
+ReceiptTimeField
+
+#.FIELD_RENAME
+
+G3FacsimileBodyPart/data g3facsimile_data
+VideotexBodyPart/data videotex_data
+ExtendedBodyPart/data extended_data
+TeletexBodyPart/data teletex_data
+IA5TextBodyPart/data ia5text_data
+MessageBodyPart/data message_data
+EncryptedBodyPart/data encrypted_data
+
+G3FacsimileBodyPart/parameters g3facsimile_parameters
+VideotexBodyPart/parameters videotex_parameters
+ExtendedBodyPart/parameters extended_parameters
+TeletexBodyPart/parameters teletex_parameters
+IA5TextBodyPart/parameters ia5text_parameters
+MessageBodyPart/parameters message_parameters
+EncryptedBodyPart/parameters encrypted_parameters
+
+TeletexParameters/non-basic-parameters teletex_non_basic_parameters
+G3FacsimileParameters/non-basic-parameters g3facsimile_non_basic_parameters
+
+CirculationSignatureData/algorithm-identifier circulation-signature-algorithm-identifier
+
+Account-Attribute/actual-values account-actual-values
+User-Identity-Attribute/actual-values identity-actual-values
+
+MessageReference/user-relative-identifier user-relative-identifier-ref
+
+BodyPartSignatureVerification/_item/body-part-signature body-part-signature-status
+BodyPart/basic/encrypted encrypted-bp
+BodyPartSynopsis/message message-synopsis
+NonMessageBodyPartSynopsis/type bp-type
+NonMessageBodyPartSynopsis/parameters bp-parameters
+
+ForwardedContentToken/_item/body-part-choice body-part-token-choice
+ForwardedContentToken/_item/body-part-choice/message-or-content-body-part forwarded-content-token
+
+#.TYPE_RENAME
+
+ForwardedContentToken/_item/body-part-choice T_body_part_token_choice
+
+#.REGISTER
+AbsenceAdvice B "2.6.1.19.0" "id-on-absence-advice"
+ChangeOfAddressAdvice B "2.6.1.19.1" "id-on-change-of-address-advice"
+IPMAssemblyInstructions B "2.6.1.17.2" "id-mst-assembly-instructions"
+
+IncompleteCopy B "2.6.1.5.0" "id-hex-incomplete-copy"
+Languages B "2.6.1.5.1" "id-hex-languages"
+AutoSubmitted B "2.6.1.5.2" "id-hex-auto-submitted"
+BodyPartSignatures B "2.6.1.5.3" "id-hex-body-part-signatures"
+IPMSecurityLabel B "2.6.1.5.4" "id-hex-ipm-security-label"
+AuthorizationTime B "2.6.1.5.5" "id-hex-authorization-time"
+CirculationList B "2.6.1.5.6" "id-hex-circulation-list-recipients"
+CirculationListIndicator B "2.6.1.20.0" "id-rex-circulation-list-indicator"
+DistributionCodes B "2.6.1.5.7" "id-hex-distribution-codes"
+ExtendedSubject B "2.6.1.5.8" "id-hex-extended-subject"
+InformationCategories B "2.6.1.5.9" "id-hex-information-categories"
+ManualHandlingInstructions B "2.6.1.5.10" "id-hex-manual-handling-instructions"
+OriginatorsReference B "2.6.1.5.11" "id-hex-originators-reference"
+PrecedencePolicyIdentifier B "2.6.1.5.12" "id-hex-precedence-policy-id"
+Precedence B "2.6.1.20.1" "id-rex-precedence"
+
+IA5TextData B "2.6.1.4.0" "id-et-ia5-text"
+IA5TextParameters B "2.6.1.11.0" "id-ep-ia5-text"
+G3FacsimileData B "2.6.1.4.2" "id-et-g3-facsimile"
+G3FacsimileParameters B "2.6.1.11.2" "id-ep-g3-facsimile"
+G4Class1BodyPart B "2.6.1.4.3" "id-et-g4-class1"
+TeletexData B "2.6.1.4.4" "id-et-teletex"
+TeletexParameters B "2.6.1.11.4" "id-ep-teletex"
+VideotexData B "2.6.1.4.5" "id-et-videotex"
+VideotexParameters B "2.6.1.11.5" "id-ep-videotex"
+EncryptedData B "2.6.1.4.6" "id-et-encrypted"
+EncryptedParameters B "2.6.1.11.6" "id-ep-encrypted"
+MessageData B "2.6.1.4.7" "id-et-message"
+MessageParameters B "2.6.1.11.7" "id-ep-message"
+MixedModeBodyPart B "2.6.1.4.8" "id-et-mixed-mode"
+BilaterallyDefinedBodyPart B "2.6.1.4.9" "id-et-bilaterally-defined"
+
+GeneralTextParameters B "2.6.1.11.11" "id-ep-general-text"
+GeneralTextData B "2.6.1.4.11" "id-et-general-text"
+FileTransferParameters B "2.6.1.11.12" "id-ep-file-transfer"
+FileTransferData B "2.6.1.4.12" "id-et-file-transfer"
+# {id-et 13} is no longer defined
+# ForwardedReportBodyPart {id-et 14} defined in p1.cnf
+MessageParameters B "2.6.1.11.15" "id-ep-notification"
+IPN B "2.6.1.4.15" "id-et-notification"
+VoiceParameters B "2.6.1.11.16" "id-ep-voice"
+VoiceData B "2.6.1.4.16" "id-et-voice"
+# P22
+ForwardedContentParameters B "2.6.1.11.17.2.6.1.10.1" "id-ep-content-p22"
+InformationObject B "2.6.1.4.17.2.6.1.10.1" "id-et-content-p22"
+#p2
+ForwardedContentParameters B "2.6.1.11.17.2.6.1.10.0" "id-ep-content-p2"
+InformationObject B "2.6.1.4.17.2.6.1.10.0" "id-et-content-p2"
+#p722
+ForwardedContentParameters B "2.6.1.11.17.1.3.26.0.4406.0.4.1" "id-ep-content-p772"
+
+
+# PKCS#7Bodypart {id-et 18} defined in cms.cnf
+
+# Message Store Attributes
+IPMEntryType B "2.6.1.6.0" "id-sat-ipm-entry-type"
+IPMSynopsis B "2.6.1.6.1" "id-sat-ipm-synopsis"
+BodyPartDescriptor B "2.6.1.6.2" "id-sat-body-parts-summary"
+#Boolean B "2.6.1.6.3" "id-sat-ipm-auto-discarded" - see x509sat.cnf
+
+Heading B "2.6.1.7.0" "id-hat-heading"
+ThisIPMField B "2.6.1.7.1" "id-hat-this-ipm"
+OriginatorField B "2.6.1.7.2" "id-hat-originator"
+RepliedToIPMField B "2.6.1.7.3" "id-hat-replied-to-IPM"
+SubjectField B "2.6.1.7.4" "id-hat-subject"
+ExpiryTimeField B "2.6.1.7.5" "id-hat-expiry-time"
+ReplyTimeField B "2.6.1.7.6" "id-hat-reply-time"
+ImportanceField B "2.6.1.7.7" "id-hat-importance"
+SensitivityField B "2.6.1.7.8" "id-hat-sensitivity"
+AutoForwardedField B "2.6.1.7.9" "id-hat-auto-forwarded"
+AuthorizingUsersSubfield B "2.6.1.7.10" "id-hat-authorizing-users"
+PrimaryRecipientsSubfield B "2.6.1.7.11" "id-hat-primary-recipients"
+CopyRecipientsSubfield B "2.6.1.7.12" "id-hat-copy-recipients"
+BlindCopyRecipientsSubfield B "2.6.1.7.13" "id-hat-blind-copy-recipients"
+ObsoletedIPMsSubfield B "2.6.1.7.14" "id-hat-obsoleted-IPMs"
+RelatedIPMsSubfield B "2.6.1.7.15" "id-hat-related-IPMs"
+ReplyRecipientsSubfield B "2.6.1.7.16" "id-hat-reply-recipients"
+IncompleteCopy B "2.6.1.7.17" "id-hat-incomplete-copy"
+Language B "2.6.1.7.18" "id-hat-languages"
+ORDescriptor B "2.6.1.7.19" "id-hat-rn-requestors"
+ORDescriptor B "2.6.1.7.20" "id-hat-nrn-requestors"
+ORDescriptor B "2.6.1.7.21" "id-hat-reply-requestors"
+AutoSubmitted B "2.6.1.7.22" "id-hat-auto-submitted"
+BodyPartSignatures B "2.6.1.7.23" "id-hat-body-part-signatures"
+IPMSecurityLabel B "2.6.1.7.24" "id-hat-ipm-security-label"
+BodyPartSecurityLabel B "2.6.1.7.25" "id-hat-body-part-security-label"
+BodyPartTokens B "2.6.1.7.26" "id-hat-body-part-encryption-token"
+AuthorizationTime B "2.6.1.7.27" "id-hat-authorization-time"
+CirculationMember B "2.6.1.7.28" "id-hat-circulation-list-recipients"
+DistributionCode B "2.6.1.7.29" "id-hat-distribution-codes"
+ExtendedSubject B "2.6.1.7.30" "id-hat-extended-subject"
+InformationCategory B "2.6.1.7.31" "id-hat-information-category"
+ManualHandlingInstruction B "2.6.1.7.32" "id-hat-manual-handling-instructions"
+OriginatorsReference B "2.6.1.7.33" "id-hat-originators-reference"
+PrecedencePolicyIdentifier B "2.6.1.7.34" "id-hat-precedence-policy-id"
+ForwardedContentToken B "2.6.1.7.35" "id-hat-forwarded-content-token"
+#MessageToken B "2.6.1.7.36" "id-hat-forwarded-token" - see p1.cnf
+Precedence B "2.6.1.7.37" "id-hat-precedence"
+BodyPartSignatureVerification B "2.6.1.7.38" "id-hat-body-part-signature-verification-status"
+
+Body B "2.6.1.8.0" "id-bat-body"
+
+# id-cat ID ::= {id-ipms 13} -- correlation attributes
+CorrelatedDeliveredIPNs B "2.6.1.13.0" "id-cat-correlated-delivered-ipns"
+CorrelatedDeliveredReplies B "2.6.1.13.1" "id-cat-correlated-delivered-replies"
+DeliveredIPNStatus B "2.6.1.13.2" "id-cat-delivered-ipn-summary"
+DeliveredReplyStatus B "2.6.1.13.3" "id-cat-delivered-replies-summary"
+#SequenceNumber B "2.6.1.13.4" "id-cat-forwarded-ipms"
+#SequenceNumber B "2.6.1.13.5" "id-cat-forwarding-ipms"
+#ORDescriptor B "2.6.1.13.6" "id-cat-ipm-recipients"
+IPMLocation B "2.6.1.13.7" "id-cat-obsoleted-ipms"
+#SequenceNumber B "2.6.1.13.8" "id-cat-obsoleting-ipms"
+#IPMLocation B "2.6.1.13.9" "id-cat-related-ipms"
+#SequenceNumber B "2.6.1.13.10" "id-cat-relating-ipms"
+#SequenceNumber B "2.6.1.13.11" "id-cat-replied-to-ipm"
+#id-cat-replying-ipms B "2.6.1.13.12" "id-cat-replying-ipms"
+#ReplyTimeField B "2.6.1.13.13" "id-cat-revised-reply-time"
+SubmittedIPNStatus B "2.6.1.13.14" "id-cat-submitted-ipn-status"
+#SequenceNumber B "2.6.1.13.15" "id-cat-submitted-ipns"
+SubmittedReplyStatus B "2.6.1.13.16" "id-cat-submitted-reply-status"
+#SequenceNumber B "2.6.1.13.17" "id-cat-subject-ipm"
+RecipientCategory B "2.6.1.13.18" "id-cat-recipient-category"
+
+# id-sec ID ::= {id-ipms 18} -- ipm security extensions
+RecipientSecurityRequest B "2.6.1.18.0" "id-sec-ipm-security-request"
+IpnSecurityResponse B "2.6.1.18.1" "id-sec-security-common-fields"
+
+#.FN_PARS IPMSExtension/type
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY IPMSExtension/type
+ const char *name = NULL;
+
+ %(DEFAULT_BODY)s
+
+ name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference);
+ proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
+
+#.FN_BODY IPMSExtension/value
+
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY IPM
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " Message");
+
+ %(DEFAULT_BODY)s
+
+
+#.FN_BODY IPN
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " Notification");
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS SubjectField
+ VAL_PTR=&subject
+
+#.FN_BODY SubjectField
+ tvbuff_t *subject=NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(subject)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", tvb_format_text(subject, 0, tvb_reported_length(subject)));
+
+#.FN_PARS CharacterSetRegistration
+ VAL_PTR=&crs
+
+#.FN_BODY CharacterSetRegistration
+ guint32 crs;
+ %(DEFAULT_BODY)s
+
+ if(actx->created_item)
+ proto_item_append_text(actx->created_item, " (%%s)", val_to_str(crs, charsetreg_vals, "unknown"));
+
+#.FN_BODY Interchange-Data-Element
+/* XXX Not implemented yet */
+
+#.FN_BODY NationallyDefinedBodyPart
+/* XXX Not implemented yet */
+
+#.FN_BODY Contents-Type-Attribute/document-type/parameter
+/* XXX: Not implemented yet */
+
+#.FN_BODY CompressionParameter/compression-algorithm-id
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
+
+#.FN_BODY CompressionParameter/compression-algorithm-param
+/* XXX: Not implemented yet */
+
+#.END
+
diff --git a/epan/dissectors/asn1/p22/packet-p22-template.c b/epan/dissectors/asn1/p22/packet-p22-template.c
new file mode 100644
index 0000000000..7c11ed9af6
--- /dev/null
+++ b/epan/dissectors/asn1/p22/packet-p22-template.c
@@ -0,0 +1,147 @@
+/* packet-p22.c
+ * Routines for X.420 (X.400 Message Transfer) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-ftam.h"
+#include "packet-p1.h"
+#include "packet-p7.h"
+
+#include "packet-p22.h"
+
+#define PNAME "X.420 Information Object"
+#define PSNAME "P22"
+#define PFNAME "p22"
+
+/* Initialize the protocol and registered fields */
+static int proto_p22 = -1;
+
+static const value_string charsetreg_vals [] = {
+ { 1, "C0: (ISO/IEC 6429)"},
+ { 6, "G0: ASCII (ISO/IEC 646)"},
+ { 77, "C1: (ISO/IEC 6429)"},
+ { 100, "Gn: Latin Alphabet No.1, Western European Supplementary Set (GR area of ISO-8859-1)"},
+ { 101, "Gn: Latin Alphabet No.2, Central EuropeanSupplementary Set (GR area of ISO-8859-2)"},
+ { 104, "C0: (ISO/IEC 4873)"},
+ { 105, "C1: (ISO/IEC 4873)"},
+ { 106, "C0: Teletex (CCITT T.61)"},
+ { 107, "C1: Teletex (CCITT T.61)"},
+ { 109, "Gn: Latin Alphabet No.3, Southern European Supplementary Set (GR area of ISO-8859-3)"},
+ { 110, "Gn: Latin Alphabet No.4, Baltic Supplementary Set (GR area of ISO-8859-4)"},
+ { 126, "Gn: Greek Supplementary Set (GR area of ISO-8859-7)"},
+ { 127, "Gn: Arabic Supplementary Set (GR area of ISO-8859-6)"},
+ { 138, "Gn: Hebrew Supplementary Set (GR area of ISO-8859-8)"},
+ { 144, "Gn: Cyrillic Supplementary Set (GR area of ISO-8859-5)"},
+ { 148, "Gn: Latin Alphabet No.5, Cyrillic Supplementary Set (GR area of ISO-8859-9)"},
+ { 154, "Gn: Supplementary Set for Latin Alphabets No.1 or No.5, and No.2"},
+ { 157, "Gn: Latin Alphabet No.6, Arabic Supplementary Set (GR area of ISO-8859-10)"},
+ { 158, "Gn: Supplementary Set for Sami (Lappish) to complement Latin Alphabet No.6 (from Annex A of ISO-8859-10)"},
+ { 166, "Gn: Thai Supplementary Set (GR area of ISO-8859-11)"},
+ { 179, "Gn: Latin Alphabet No.7, Baltic Rim Supplementary Set (GR area of ISO-8859-13)"},
+ { 182, "Gn: Welsh Variant of Latin Alphabet No.1, Supplementary Set (GR area of ISO-8859-1)"},
+ { 197, "Gn: Supplementary Set for Sami to complement Latin Alphabet No.6 (from Annex A of ISO-8859-10)"},
+ { 199, "Gn: Latin Alphabet No.8, Celtic Supplementary Set (GR area of ISO-8859-14)"},
+ { 203, "Gn: Latin Alphabet No.9, European Rim Supplementary Set (GR area of ISO-8859-15)"},
+ { 0, NULL}
+};
+
+#include "packet-p22-val.h"
+
+#include "packet-p22-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_p22 = -1;
+#include "packet-p22-ett.c"
+
+#include "packet-p22-fn.c"
+
+/*
+* Dissect P22 PDUs inside a PPDU.
+*/
+static int
+dissect_p22(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ int offset = 0;
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, proto_p22, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_p22);
+ }
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "P22");
+ col_set_str(pinfo->cinfo, COL_INFO, "InterPersonal");
+
+ dissect_p22_InformationObject(TRUE, tvb, offset, &asn1_ctx , tree, -1);
+ return tvb_captured_length(tvb);
+}
+
+
+/*--- proto_register_p22 -------------------------------------------*/
+void proto_register_p22(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-p22-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_p22,
+#include "packet-p22-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_p22 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("p22", dissect_p22, proto_p22);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_p22, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_p22 --- */
+void proto_reg_handoff_p22(void) {
+
+#include "packet-p22-dis-tab.c"
+
+ register_ber_oid_dissector("2.6.1.10.0", dissect_p22, proto_p22, "InterPersonal Message (1984)");
+ register_ber_oid_dissector("2.6.1.10.1", dissect_p22, proto_p22, "InterPersonal Message (1988)");
+
+
+}
diff --git a/epan/dissectors/asn1/p22/packet-p22-template.h b/epan/dissectors/asn1/p22/packet-p22-template.h
new file mode 100644
index 0000000000..88f8c6f471
--- /dev/null
+++ b/epan/dissectors/asn1/p22/packet-p22-template.h
@@ -0,0 +1,32 @@
+/* packet-p22.h
+ * Routines for X.420 (X.400 Message Transfer) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_P22_H
+#define PACKET_P22_H
+
+#include "packet-p22-exp.h"
+
+void proto_reg_handoff_p22(void);
+void proto_register_p22(void);
+
+#endif /* PACKET_P22_H */
diff --git a/epan/dissectors/asn1/p7/CMakeLists.txt b/epan/dissectors/asn1/p7/CMakeLists.txt
new file mode 100644
index 0000000000..71477eace5
--- /dev/null
+++ b/epan/dissectors/asn1/p7/CMakeLists.txt
@@ -0,0 +1,65 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME p7 )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ MSAbstractService.asn
+ MSGeneralAttributeTypes.asn
+ MSAccessProtocol.asn
+ MSUpperBounds.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -L -C )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../ros/ros-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../rtse/rtse-exp.cnf"
+)
+
+set( EXPORT_DEPENDS
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/p7/MSAbstractService.asn b/epan/dissectors/asn1/p7/MSAbstractService.asn
new file mode 100644
index 0000000000..5641f3c135
--- /dev/null
+++ b/epan/dissectors/asn1/p7/MSAbstractService.asn
@@ -0,0 +1,1124 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x413/1999/index.html
+-- 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,
+-- WS added imports because of expansion of COMPONENTS OF
+ MessageSubmissionIdentifier, ExtensionField, OriginatorName,
+ OriginalEncodedInformationTypes, ContentType, ProbeSubmissionIdentifier,
+ ProbeSubmissionTime
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service 1988 ports
+ OPERATION, ERROR
+FROM Remote-Operations-Information-Objects
+ 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-ua-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 {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- 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}
+ CODE op-ros-bind -- WS: internal operation code
+}
+
+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}}
+ CODE err-ros-bind -- WS: internal error code
+}
+
+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-ua-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 -,
+-- WS expanded here
+ envelope MessageSubmissionEnvelope,
+ content Content,
+
+ -- 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 - ,
+-- WS extended here
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time [0] IMPLICIT MessageSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField --{{MessageSubmissionResultExtensions}}-- DEFAULT {},
+
+ -- 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 -,
+-- WS Expanded
+ 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 {}
+ ,per-recipient-fields
+ [3] SEQUENCE --SIZE (1..ub-recipients)-- OF PerRecipientProbeSubmissionFields,
+
+
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+MSProbeSubmissionResult ::= SET {
+-- COMPONENTS OF
+-- ProbeSubmissionResult - This imported type has IMPLICIT tags -,
+ probe-submission-identifier ProbeSubmissionIdentifier,
+ probe-submission-time [0] ProbeSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField --{{ProbeResultExtensions}}-- DEFAULT {},
+
+ -- 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/epan/dissectors/asn1/p7/MSAccessProtocol.asn b/epan/dissectors/asn1/p7/MSAccessProtocol.asn
new file mode 100644
index 0000000000..309a38da5b
--- /dev/null
+++ b/epan/dissectors/asn1/p7/MSAccessProtocol.asn
@@ -0,0 +1,257 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x419/1999/index.html
+-- 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)};
+
+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 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-ub-security-error Code ::= local:26 -- Renamed to avoid duplicate in MTSAccessProtocol.asn
+
+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/epan/dissectors/asn1/p7/MSGeneralAttributeTypes.asn b/epan/dissectors/asn1/p7/MSGeneralAttributeTypes.asn
new file mode 100644
index 0000000000..960270e2a5
--- /dev/null
+++ b/epan/dissectors/asn1/p7/MSGeneralAttributeTypes.asn
@@ -0,0 +1,832 @@
+-- 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 {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3}
+ objectIdentifierMatch
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Authentication-service data-types
+ AlgorithmIdentifier
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- 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/epan/dissectors/asn1/p7/MSUpperBounds.asn b/epan/dissectors/asn1/p7/MSUpperBounds.asn
new file mode 100644
index 0000000000..bcd6e8587e
--- /dev/null
+++ b/epan/dissectors/asn1/p7/MSUpperBounds.asn
@@ -0,0 +1,79 @@
+-- Module MSUpperBounds (X.413:06/1999)
+-- See also ITU-T X.413 (06/1999)
+-- See also the index of all ASN.1 assignments needed in this document
+
+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-ua-restrictions INTEGER ::= 16 -- renamed to avoid duplicate in MTSUpperBounds
+
+END -- of MSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/p7/Makefile.am b/epan/dissectors/asn1/p7/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/p7/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/p7/Makefile.common b/epan/dissectors/asn1/p7/Makefile.common
new file mode 100644
index 0000000000..fd3cbd195b
--- /dev/null
+++ b/epan/dissectors/asn1/p7/Makefile.common
@@ -0,0 +1,64 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=p7
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ MSAbstractService.asn \
+ MSGeneralAttributeTypes.asn \
+ MSAccessProtocol.asn \
+ MSUpperBounds.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS = -b -L -C
+
+EXTRA_CNF = \
+ $(builddir)/../p1/p1-exp.cnf \
+ $(builddir)/../ros/ros-exp.cnf \
+ $(builddir)/../rtse/rtse.cnf
+
+EXPORT_DEPENDS = \
+ $(builddir)/../p1/p1-exp.cnf
+
+$(builddir)/../p1/p1-exp.cnf:
+ (cd $(builddir)/../p1 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../ros/ros-exp.cnf:
+ (cd $(builddir)/../ros && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../rtse/rtse-exp.cnf:
+ (cd $(builddir)/../rtse && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/p7/Makefile.nmake b/epan/dissectors/asn1/p7/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/p7/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/p7/p7.cnf b/epan/dissectors/asn1/p7/p7.cnf
new file mode 100644
index 0000000000..ab46e42a9d
--- /dev/null
+++ b/epan/dissectors/asn1/p7/p7.cnf
@@ -0,0 +1,408 @@
+#.IMPORT ../p1/p1-exp.cnf
+#.IMPORT ../ros/ros-exp.cnf
+#.IMPORT ../rtse/rtse-exp.cnf
+
+#.MODULE
+Reliable-Transfer-APDU rtse
+
+#.EXPORTS
+SequenceNumber
+SignatureStatus
+#.END
+
+# Forward declaration of Classes
+# CONNECTION-PACKAGE CONTRACT from ROS
+#.CLASS CONNECTION-PACKAGE
+&bind ClassReference OPERATION
+&unbind ClassReference OPERATION
+&responderCanUnbind BooleanType
+&unbindCanFail BooleanType
+&id ObjectIdentifierType
+#.END
+
+#.CLASS CONTRACT
+&connection ClassReference CONNECTION-PACKAGE
+&OperationsOf ClassReference OPERATION-PACKAGE
+&InitiatorConsumerOf ClassReference OPERATION-PACKAGE
+&InitiatorSupplierOf ClassReference OPERATION-PACKAGE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MHS-OBJECT
+&Is ClassReference MHS-OBJECT
+&Initiates ClassReference CONTRACT
+&Responds ClassReference CONTRACT
+&InitiatesAndResponds ClassReference CONTRACT
+&id ObjectIdentifierType
+#.END
+
+# Ros OPERATION
+#.CLASS ABSTRACT-OPERATION
+&ArgumentType
+&argumentTypeOptional BooleanType
+&returnResult BooleanType
+&ResultType
+&resultTypeOptional BooleanType
+&Errors ClassReference ERROR
+&Linked ClassReference OPERATION
+&synchronous BooleanType
+&alwaysReturns BooleanType
+&InvokePriority _FixedTypeValueSetFieldSpec
+&ResultPriority _FixedTypeValueSetFieldSpec
+&operationCode TypeReference Code
+#.END
+
+# ros ERROR
+#.CLASS ABSTRACT-ERROR
+&ParameterType
+&parameterTypeOptional BooleanType
+&ErrorPriority _FixedTypeValueSetFieldSpec
+&errorCode TypeReference Code
+#.END
+
+#.CLASS MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS APPLICATION-CONTEXT
+&associationContract ClassReference CONTRACT
+&associationRealization
+&transferRealization
+&AbstractSyntaxes ClassReference ABSTRACT-SYNTAX
+&applicationContextName ObjectIdentifierType
+#.END
+
+#.TYPE_RENAME
+
+PAR-fetch-restriction-error/problems FetchRestrictionProblems
+PAR-sequence-number-error/problems SequenceNumberProblems
+PAR-attribute-error/problems AttributeProblems
+PAR-auto-action-request-error/problems AutoActionRequestProblems
+PAR-delete-error/problems DeleteProblems
+
+PAR-fetch-restriction-error/problems/_item FetchRestrictionProblemItem
+PAR-sequence-number-error/problems/_item SequenceNumberProblemItem
+PAR-attribute-error/problems/_item AttributeProblemItem
+PAR-auto-action-request-error/problems/_item AutoActionRequestProblemItem
+PAR-delete-error/problems/_item DeleteProblemItem
+
+Attribute/attribute-values AttributeValues
+OrderedAttribute/attribute-values OrderedAttributeValues
+
+Attribute/attribute-values/_item AttributeItem
+OrderedAttribute/attribute-values/_item OrderedAttributeItem
+
+Summary/present/_item/value SummaryPresentItemValue
+OrderedAttribute/attribute-values/_item/value OrderedAttributeValue
+
+#.FIELD_RENAME
+
+PAR-sequence-number-error/problems/_item/problem sequence-number-problem
+PAR-register-ms-error/problem register-ms-problem
+PAR-delete-error/problems/_item/problem delete-problem
+PAR-auto-action-request-error/problems/_item/problem auto-action-request-problem
+PAR-attribute-error/problems/_item/problem attribute-problem
+
+PAR-sequence-number-error/problems sequence-number-problems
+PAR-fetch-restriction-error/problems fetch-restriction-problems
+PAR-attribute-error/problems attribute-problems
+PAR-auto-action-request-error/problems auto-action-request-problems
+PAR-delete-error/problems delete-problems
+
+PAR-fetch-restriction-error/problems/_item fetch-restriction-problem-item
+PAR-sequence-number-error/problems/_item sequence-number-problem-item
+PAR-attribute-error/problems/_item attribute-problem-item
+PAR-auto-action-request-error/problems/_item auto-action-request-problem-item
+PAR-delete-error/problems/_item delete-problem-item
+
+OrderedAttribute/attribute-values ordered-attribute-values
+OrderedAttribute/attribute-values/_item ordered-attribute-values-item
+OrderedAttribute/attribute-values/_item/position ordered-position
+
+Summary/present/_item/count summary-count
+AttributeSelection/count selection-count
+
+DeleteResult/delete-result-94/entries-deleted entries-deleted-94
+
+Register-MSArgument/change-credentials/old-credentials register-old-credentials
+
+Register-MSResult/registered-information/fetch-attribute-defaults registered-fetch-attribute-defaults
+Register-MSResult/registered-information/list-attribute-defaults registered-list-attribute-defaults
+Register-MSResult/registered-information/message-group-registrations registered-message-group-registrations
+
+TimeRange/from from-time
+NumberRange/from from-number
+
+TimeRange/to to-time
+NumberRange/to to-number
+
+Filter/item filter-item
+
+Summary/present summary-present
+
+PAR-fetch-restriction-error/problems/_item/problem fetch-restriction-problem
+PAR-range-error/problem range-problem
+EntryClassErrorParameter/problem entry-class-problem
+MessageGroupErrorParameter/problem message-group-problem
+ServiceErrorParameter/problem service-problem
+ModifyErrorParameter/problem modify-problem
+
+OrderedAttribute/attribute-values/_item/value ordered-attribute-value
+
+PAR-fetch-restriction-error/problems/_item/restriction/content-type extended-content-type
+PAR-auto-action-request-error/problems/_item/type auto-action-type
+PAR-attribute-error/problems/_item/value attr-value
+
+# This table creates the value_sting to name P7 operation codes and errors
+# in file packet-p7-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* P7 ABSTRACT-OPERATIONS */
+const value_string p7_opr_code_string_vals[] = {
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* P7 ERRORS */
+static const value_string p7_err_code_string_vals[] = {
+#.TABLE_BODY ERROR
+ { %(&errorCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# Create a table of opcode and corresponding args and res
+#.TABLE11_HDR
+static const ros_opr_t p7_opr_tab[] = {
+#.TABLE11_BODY OPERATION
+ /* %(_name)s */
+ { %(&operationCode)-25s, %(_argument_pdu)s, %(_result_pdu)s },
+#.TABLE11_FTR
+ { 0, (dissector_t)(-1), (dissector_t)(-1) },
+};
+#.END
+
+#.TABLE21_HDR
+static const ros_err_t p7_err_tab[] = {
+#.TABLE21_BODY ERROR
+ /* %(_name)s*/
+ { %(&errorCode)s, %(_parameter_pdu)s },
+#.TABLE21_FTR
+ { 0, (dissector_t)(-1) },
+};
+#.END
+
+#.PDU
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+#.END
+
+#.REGISTER
+# MSGeneralAttributeTypes
+ReportLocation B "2.6.4.3.42" "id-att-ac-correlated-report-list"
+SequenceNumber B "2.6.4.3.76" "id-att-ac-report-subject-entry"
+ReportSummary B "2.6.4.3.43" "id-att-ac-report-summary"
+PerRecipientReport B "2.6.4.3.44" "id-att-ac-uncorrelated-report-list"
+AutoActionError B "2.6.4.3.46" "id-att-auto-action-error"
+#Integer B "2.6.4.3.47" "id-att-auto-action-registration-identifier" - see XXX
+SequenceNumber B "2.6.4.3.48" "id-att-auto-action-subject-entry"
+AutoActionType B "2.6.4.3.49" "id-att-auto-action-type"
+#CertificateSelectors B "2.6.4.3.80" "id-att-certificate-selectors" - see p1.cnf
+SequenceNumber B "2.6.4.3.0" "id-att-child-sequence-numbers"
+#Content B "2.6.4.3.1" "id-att-content" - see XXX
+#AlgorithmIdentifier B "2.6.4.3.2" "id-att-content-confidentiality-algorithm-identifier" - see XXX
+#ContentCorrelator B "2.6.4.3.3" "id-att-content-correlator" - see p1.cnf
+#ContentIdentifier B "2.6.4.3.4" "id-att-content-identifier" - see p1.cnf
+#ContentIntegrityCheck B "2.6.4.3.5" "id-att-content-inetgrity-check" - see p1.cnf
+#ContentLength B "2.6.4.3.6" "id-att-content-length" - see p1.cnf
+#Boolean B "2.6.4.3.7" "id-att-content-returned" - see XXX
+#ExtendedContentType B "2.6.4.3.8" "id-att-content-type" - see p1.cnf
+#ConversionWithLossProhibited B "2.6.4.3.9" "id-att-conversion-with-loss-prohibited" - see p1.cnf
+MS-EIT B "2.6.4.3.10" "id-att-converted-EITs"
+CreationTime B "2.6.4.3.11" "id-att-creation-time"
+DeferredDeliveryCancellationTime B "2.6.4.3.50" "id-att-deferred-delivery-cancellation-time"
+#DeferredDeliveryTime B "2.6.4.3.51" "id-att-deferred-delivery-time" - see p1.cnf
+DeletionTime B "2.6.4.3.52" "id-att-deletion-time"
+MS-EIT B "2.6.4.3.12" "id-att-delivered-EITs"
+#DeliveryFlags B "2.6.4.3.13" "id-att-delivery-flags" - see p1.cnf
+#ORName B "2.6.4.3.78" "id-att-dl-exempted-recipients" - see p1.cnf
+#DLExpansion B "2.6.4.3.14" "id-att-dl-expansion-history" - see p1.cnf
+#DLExpansionProhibited B "2.6.4.3.53" "id-att-dl-expansion-prohibited" - see p1.cnf
+EntryType B "2.6.4.3.16" "id-att-entry-type"
+#InternalTraceInformationElement B "2.6.4.3.54" "id-att-internal-trace-information" - see p1.cnf
+#LatestDeliveryTime B "2.6.4.3.55" "id-att-latest-delivery-time" - see p1.cnf
+#NULL B "2.6.4.3.77" "id-att-locally-originated - see XXX
+#NULL B "2.6.4.3.56" "id-att-marked-for-deletion" - see XXX
+#MessageDeliveryEnvelope B "2.6.4.3.18" "id-att-message-delivery-envelope" - see p1.cnf
+#MessageDeliveryTime B "2.6.4.3.20" "id-att-message-delivery-time" - see p1.cnf
+MessageGroupName B "2.6.4.3.57" "id-att-message-group-name"
+#MTSIdentifier B "2.6.4.3.19" "id-att-message-identifier" - see p1.cnf
+#GeneralString B "2.6.4.3.58" "id-att-message-notes" - see XXX
+#MessageOriginAuthenticationCheck B "2.6.4.3.21" "id-at-message-orgin-authentication-check" - see p1.cnf
+#MessageSecurityLabel B "2.6.4.3.22" "id-att-message-security-label" - see p1.cnf
+#MessageSubmissionEnvelope B "2.6.4.3.59" "id-att-message-submission-envelope" - see p1.cnf
+#MessageSubmissionTime B "2.6.4.3.23" "id-att-message-submission-time"
+#MessageToken B "2.6.4.3.24" "id-att-message-token"
+#NULL B "2.6.4.3.60" "id-att-ms-originated"
+SubmissionError B "2.6.4.3.61" "id-att-ms-submission-error"
+#ExtendedCertificates B "2.6.4.3.81" "id-att-multiple-originator-certificates" - see p1.cnf
+MS-EIT B "2.6.4.3.25" "id-att-original-EITs"
+#ORName B "2.6.4.3.17" "id-att-originally-intended-recipient-name" - see p1.cnf
+#OriginatingMTACertificate B "2.6.4.3.62" "id-att-originating-MTA-certificate" - see p1.cnf
+#OriginatorCertificate B "2.6.4.3.26" "id-att-originator-certificate" - see p1.cnf
+#ORName B "2.6.4.3.27" "id-att-originator-name" - see p1.cnf
+#OriginatorReportRequest B "2.6.4.3.63" "id-att-originator-report-request" - see p1.cnf
+#OriginatorReturnAddress B "2.6.4.3.64" "id-att-originator-return-address" - see p1.cnf
+#ORName B "2.6.4.3.28" "id-att-other-recipient-names" - see p1.cnf
+SequenceNumber B "2.6.4.3.29" "id-att-parent-sequence-number"
+#PerMessageIndicators B "2.6.4.3.65" "id-att-per-message-indicators" - see p1.cnf
+#PerRecipientMessageSubmissionFields B "2.6.4.3.66" "id-att-per-recipient-message-submission-fields" - see p1.cnf
+#PerRecipientProbeSubmissionFields B "2.6.4.3.67" "id-att-per-recipient-probe-submission-fields" - see p1.cnf
+#PerRecipientReportDeliveryFields B "2.6.4.3.30" "id-att-per-recipient-report-delivery-fields" - see p1.cnf
+#Priority B "2.6.4.3.31" "id-att-priority" - see p1.cnf
+#ProbeOriginAuthenticationCheck B "2.6.4.3.68" "id-att-probe-origin-authentication-check" - see p1.cnf
+#ProbeSubmissionEnvelope B "2.6.4.3.69" "id-att-probe-submission-envelope" - see p1.cnf
+#ProofOfDeliveryRequest B "2.6.4.3.32" "id-att-proof-of-delivery-request" - see p1.cnf
+#ProofOfSubmission B "2.6.4.3.70" "id-att-proof-of-submission" - see p1.cnf
+#ExtendedCertificates B "2.6.4.3.82" "id-att-recipient-certificate" - see p1.cnf
+#ORName B "2.6.4.3.71" "id-att-recipient-names" - see p1.cnf
+#RecipientReassignmentProhibited B "2.6.4.3.72" "id-att-recipient-reassignment-prohibited" - see p1.cnf
+#Redirection B "2.6.4.3.33" "id-at-redirection-history" - see p1.cnf
+#ReportDeliveryEnvelope B "2.6.4.3.34" "id-att-report-delivery-envelope" - see p1.cnf
+#ReportingDLName B "2.6.4.3.35" "id-att-reporting-DL-name" - see p1.cnf
+#ReportingMTACertificate B "2.6.4.3.36" "id-att-reporting-MTA-certificate" - see p1.cnf
+#ReportOriginAuthenticationCheck B "2.6.4.3.37" "id-att-report-origin-authentication-check" - see p1.cnf
+RetrievalStatus B "2.6.4.3.15" "id-att-retrieval-status"
+#SecurityClassification B "2.6.4.3.38" "id-att-security-classification" - see p1.cnf
+SequenceNumber B "2.6.4.3.39" "id-att-sequence-number"
+SignatureVerificationStatus B "2.6.4.3.79" "id-att-signature-verification-status"
+StoragePeriod B "2.6.4.3.73" "id-att-storage-period"
+StorageTime B "2.6.4.3.74" "id-att-storage-time"
+#SubjectSubmissionIdentifier B "2.6.4.3.40" "id-att-subject-submission-identifier" - see p1.cnf
+#ORName B "2.6.4.3.41" "id-att-this-recipient-name" - see p1.cnf
+#TraceInformationElement B "2.6.4.3.75" "id-att-trace-information" - see p1.cnf
+
+#MSExtensions
+ChangeCredentialsAlgorithms B "2.6.4.9.5" "id-ext-protected-change-credentials-capability"
+OriginatorToken B "2.6.4.9.3" "id-ext-originator-token"
+ProtectedChangeCredentials B "2.6.4.9.4" "id-ext-protected-change-credentials"
+
+RTSE-apdus B "2.6.0.2.10""id-as-ms-rtse"
+
+#.FN_PARS AttributeType FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Attribute/attribute-values/_item
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY AttributeValueAssertion/attribute-value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY FilterItem/substrings/strings/_item/initial
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY FilterItem/substrings/strings/_item/any
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY FilterItem/substrings/strings/_item/final
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY MatchingRuleAssertion/match-value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY Summary/present/_item/value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY OrderedAttribute/attribute-values/_item/value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS AutoActionType FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY AutoActionRegistration/registration-parameter
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+
+#.FN_BODY AutoActionError/error-code
+ /* XXX: Is this really the best way to do this? */
+ offset = dissect_ros_Code(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+#.FN_BODY RegistrationTypes/extended-registrations/_item
+ /* XXX: Is this really the best way to do this? */
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
+
+#.FN_BODY RTABapdu/userdataAB
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+#.END
+
+#.FN_BODY AutoActionError/error-parameter
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY PAR-attribute-error/problems/_item/value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+
+#.FN_BODY MSBindArgument/initiator-name
+ const char *ora = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if ((ora = p1_get_last_oraddress(actx))) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (initiator=%%s)", ora);
+ }
+
+#.FN_PARS SequenceNumber VAL_PTR = &seqno
+
+#.FN_BODY NumberRange
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " (range=");
+ %(DEFAULT_BODY)s
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ")");
+
+#.FN_FTR NumberRange/from
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " from %d", seqno);
+
+#.FN_FTR NumberRange/to
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " to %d", seqno);
+
+#.FN_PARS SummarizeResult/count VAL_PTR = &count
+
+#.FN_BODY SummarizeResult/count
+ int count = 0;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (count=%%d)", count);
+
+#.FN_BODY MSMessageSubmissionArgument
+ p1_initialize_content_globals (actx, tree, TRUE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals (actx, NULL, FALSE);
+
+#.FN_BODY EntryInformation
+ p1_initialize_content_globals (actx, NULL, FALSE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals (actx, NULL, FALSE);
+
+#.FN_BODY EntryModification
+ p1_initialize_content_globals (actx, NULL, FALSE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals (actx, NULL, FALSE);
diff --git a/epan/dissectors/asn1/p7/packet-p7-template.c b/epan/dissectors/asn1/p7/packet-p7-template.c
new file mode 100644
index 0000000000..1f56222713
--- /dev/null
+++ b/epan/dissectors/asn1/p7/packet-p7-template.c
@@ -0,0 +1,156 @@
+/* packet-p7.c
+ * Routines for X.413 (P7) packet dissection
+ * Graeme Lunt 2007
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+#include "packet-rtse.h"
+#include "packet-p7.h"
+
+#include "packet-p1.h"
+#include <epan/strutil.h>
+
+#define PNAME "X.413 Message Store Service"
+#define PSNAME "P7"
+#define PFNAME "p7"
+
+void proto_register_p7(void);
+void proto_reg_handoff_p7(void);
+
+static guint global_p7_tcp_port = 102;
+static dissector_handle_t tpkt_handle;
+static int seqno = 0;
+
+static void prefs_register_p7(void); /* forward declaration for use in preferences registration */
+
+
+/* Initialize the protocol and registered fields */
+static int proto_p7 = -1;
+
+#include "packet-p7-val.h"
+
+#include "packet-p7-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_p7 = -1;
+#include "packet-p7-ett.c"
+
+#include "packet-p7-table.c" /* operation and error codes */
+
+#include "packet-p7-fn.c"
+
+#include "packet-p7-table11.c" /* operation argument/result dissectors */
+#include "packet-p7-table21.c" /* error dissector */
+
+static const ros_info_t p7_ros_info = {
+ "P7",
+ &proto_p7,
+ &ett_p7,
+ p7_opr_code_string_vals,
+ p7_opr_tab,
+ p7_err_code_string_vals,
+ p7_err_tab
+};
+
+
+/*--- proto_register_p7 -------------------------------------------*/
+void proto_register_p7(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-p7-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_p7,
+#include "packet-p7-ettarr.c"
+ };
+ module_t *p7_module;
+
+ /* Register protocol */
+ proto_p7 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_p7, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register our configuration options for P7, particularly our port */
+
+ p7_module = prefs_register_protocol_subtree("OSI/X.400", proto_p7, prefs_register_p7);
+
+ prefs_register_uint_preference(p7_module, "tcp.port", "P7 TCP Port",
+ "Set the port for P7 operations (if other"
+ " than the default of 102)",
+ 10, &global_p7_tcp_port);
+
+}
+
+
+/*--- proto_reg_handoff_p7 --- */
+void proto_reg_handoff_p7(void) {
+
+ #include "packet-p7-dis-tab.c"
+
+ /* APPLICATION CONTEXT */
+
+ oid_add_from_string("id-ac-ms-access","2.6.0.1.11");
+ oid_add_from_string("id-ac-ms-reliable-access","2.6.0.1.12");
+
+ /* ABSTRACT SYNTAXES */
+
+ /* Register P7 with ROS (with no use of RTSE) */
+ register_ros_protocol_info("2.6.0.2.9", &p7_ros_info, 0, "id-as-ms", FALSE);
+ register_ros_protocol_info("2.6.0.2.5", &p7_ros_info, 0, "id-as-mrse", FALSE);
+ register_ros_protocol_info("2.6.0.2.1", &p7_ros_info, 0, "id-as-msse", FALSE);
+
+ /* remember the tpkt handler for change in preferences */
+ tpkt_handle = find_dissector("tpkt");
+}
+
+
+static void
+prefs_register_p7(void)
+{
+ static guint tcp_port = 0;
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_p7_tcp_port;
+
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_add_uint("tcp.port", global_p7_tcp_port, tpkt_handle);
+
+}
diff --git a/epan/dissectors/asn1/p7/packet-p7-template.h b/epan/dissectors/asn1/p7/packet-p7-template.h
new file mode 100644
index 0000000000..fd745aef58
--- /dev/null
+++ b/epan/dissectors/asn1/p7/packet-p7-template.h
@@ -0,0 +1,29 @@
+/* packet-p7.h
+ * Routines for X.413 (P7) packet dissection
+ * Graeme Lunt 2007
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_P7_H
+#define PACKET_P7_H
+
+#include "packet-p7-exp.h"
+
+#endif /* PACKET_P7_H */
diff --git a/epan/dissectors/asn1/p772/CMakeLists.txt b/epan/dissectors/asn1/p772/CMakeLists.txt
new file mode 100644
index 0000000000..28ed9a93ed
--- /dev/null
+++ b/epan/dissectors/asn1/p772/CMakeLists.txt
@@ -0,0 +1,60 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME p772 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ MMSAbstractService.asn
+ MMSInformationObjects.asn
+ MMSOtherNotificationTypeExtensions.asn
+ MMSObjectIdentifiers.asn
+ MMSHeadingExtensions.asn
+ MMSUpperBounds.asn
+ MMSExtendedBodyPartTypes.asn
+ MMSPerRecipientSpecifierExtensions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -C )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../p22/p22-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/p772/MMSAbstractService.asn b/epan/dissectors/asn1/p772/MMSAbstractService.asn
new file mode 100644
index 0000000000..d5b19980fc
--- /dev/null
+++ b/epan/dissectors/asn1/p772/MMSAbstractService.asn
@@ -0,0 +1,182 @@
+MMSAbstractService {iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0) module(0) abstract-service(3)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+--Prologue
+-- Exports Everything
+IMPORTS
+ -- IPMS information objects
+ AutoForwardComment, Heading
+ --
+ FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+ modules(0) information-objects(2)}
+ -- MMS information objects
+ MM, MN, MNRN, MRN, MON, InformationObject
+ --
+ FROM MMSInformationObjects {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0) module(0) mms(1)}
+ -- MMS object identifiers
+ id-mpt-management, id-mpt-origination, id-mpt-reception
+ --
+ FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0)}
+ -- MTS abstract service
+ MessageDeliveryEnvelope, MessageSubmissionEnvelope,
+ MessageSubmissionIdentifier, MessageSubmissionTime, ORName,
+ ProbeSubmissionEnvelope, ProbeSubmissionIdentifier, ProbeSubmissionTime,
+ RecipientImproperlySpecified, ReportDeliveryEnvelope,
+ SupplementaryInformation
+ --
+ FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
+ mts-abstract-service(1)}
+ -- Abstract service definition conventions
+ ABSTRACT-ERROR, ABSTRACT-OPERATION, PORT
+ --
+ FROM AbstractServiceNotation {joint-iso-ccitt mhs-motis(6) asdc(2)
+ modules(0) notation(1)};
+
+-- Ports
+-- origination PORT ::= {
+-- CONSUMER INVOKES
+-- {OriginateProbe |
+--
+ -- Although, national implementation may
+ -- support probes within their own domain, probes are not
+ -- permitted across national boundaries
+-- OriginateMM | OriginateMRN}
+-- ID id-pt-origination}
+--
+--reception PORT ::= {
+-- CONSUMER INVOKES
+-- {ReceiveReport | ReceiveMM | ReceiveMRN | ReceiveMNRN | ReceiveMON}
+-- ID id-pt-reception}
+--
+--management PORT ::= {
+-- CONSUMER INVOKES
+-- {ChangeAutoDiscard | ChangeAutoAcknowledgment | ChangeAutoForwarding}
+-- ID id-pt-management}
+
+-- Origination abstract operations
+-- Probes are prohibited across national boundaries.
+--originate-probe ABSTRACT-OPERATION ::= {
+-- ARGUMENT OriginateProbeArgument
+-- RESULT OriginateProbeResult
+-- ERROR {SubcriptionError | RecipientImproperlySpecified}}
+
+OriginateProbeArgument ::= SET {
+ envelope [0] ProbeSubmissionEnvelope,
+ content [1] MM}
+
+OriginateProbeResult ::= SET {
+ submission-identifier [0] ProbeSubmissionIdentifier,
+ submission-time [1] ProbeSubmissionTime}
+
+--originate-mm ABSTRACT-OPERATION ::= {
+-- ARGUMENT OriginateMMArgument
+-- RESULT OriginateMMResult
+-- ERROR {SubcriptionError | RecipientImproperlySpecified}}
+
+OriginateMMArgument ::= SET {
+ envelope [0] MessageSubmissionEnvelope,
+ content [1] MM}
+
+OriginateMMResult ::= SET {
+ submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+
+--originate-mrn ABSTRACT-OPERATION ::= {
+-- ARGUMENT OriginateMRNArgument
+-- RESULT OriginateMRNResult
+-- ERROR {SubcriptionError | RecipientImproperlySpecified}}
+
+OriginateMRNArgument ::= SET {
+ envelope [0] MessageSubmissionEnvelope,
+ content [1] MRN}
+
+OriginateMRNResult ::= SET {
+ submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+
+-- Reception abstract operations
+--receive-report ABSTRACT-OPERATION ::= {
+-- ARGUMENT ReceiveReportArgument
+-- RESULT ERROR {}}
+
+ReceiveReportArgument ::= SET {
+ envelope [0] ReportDeliveryEnvelope,
+ undelivered-object [1] InformationObject OPTIONAL}
+
+--receive-mm ABSTRACT-OPERATION ::= {
+-- ARGUMENT ReceiveMMArgument
+-- RESULT ERROR {}}
+
+ReceiveMMArgument ::= SET {
+ envelope [0] MessageDeliveryEnvelope,
+ content [1] MM}
+
+--receive-mrn ABSTRACT-OPERATION ::= {
+-- ARGUMENT ReceiveMRNArgument
+-- RESULT ERROR {}}
+
+ReceiveMRNArgument ::= SET {
+ envelope [0] MessageDeliveryEnvelope,
+ content [1] MRN}
+
+--receive-mnrn ABSTRACT-OPERATION ::= {
+-- ARGUMENT ReceiveMNRNArgument
+-- RESULT ERROR {}}
+
+ReceiveMNRNArgument ::= SET {
+ envelope [0] MessageDeliveryEnvelope,
+ content [1] MNRN}
+
+--receive-mon ABSTRACT-OPERATION ::= {
+-- ARGUMENT ReceiveMONArgument
+-- RESULT ERROR {}}
+
+ReceiveMONArgument ::= SET {
+ envelope [0] MessageDeliveryEnvelope,
+ content [1] MON}
+
+-- Management abstract operations
+-- It should be noted that in cases where an implementation has dual
+-- IPM and MM functionality, the management abstract operations may be used
+-- for support of both types of messaging.
+--change-auto-discard ABSTRACT-OPERATION ::= {
+-- ARGUMENT ChangeAutoDiscardArgument
+-- RESULT ERRORS {}}
+
+ChangeAutoDiscardArgument ::= SET {
+ auto-discard-expired-MMs [0] BOOLEAN,
+ auto-discard-obsolete-MMs [1] BOOLEAN}
+
+--change-auto-acknowledgement ABSTRACT-OPERATION ::= {
+-- ARGUMENT ChangeAutoAcknowledgementArgument
+-- RESULT ERRORS {SubscriptionError}}
+
+ChangeAutoAcknowledgementArgument ::= SET {
+ auto-acknowledge-MMs [0] BOOLEAN,
+ auto-acknowledge-suppl-receipt-info [1] SupplementaryInformation}
+
+--change-auto-forwarding ABSTRACT-OPERATION ::= {
+-- ARGUMENT ChangeAutoForwardingArgument
+-- RESULT ERRORS {SubscriptionError,
+-- RecipientImproperlySpecified}}
+
+ChangeAutoForwardingArgument ::= SET {
+ autoforward-MMs [0] BOOLEAN,
+ auto-forward-recipients [1] SEQUENCE OF ORName OPTIONAL,
+ auto-forward-heading [2] Heading OPTIONAL,
+ auto-forward-comment [3] AutoForwardComment OPTIONAL}
+
+-- Abstract errors
+--subscription-error ABSTRACT-ERROR ::= {PARAMETER SubscriptionErrorParameter
+--}
+
+SubscriptionErrorParameter ::= SET {problem [0] SubscriptionProblem}
+
+SubscriptionProblem ::= ENUMERATED {
+ mms-eos-not-subcribed(0), mts-eos-not-subcribed(1)}
+
+END --of MMSAbstractService
diff --git a/epan/dissectors/asn1/p772/MMSExtendedBodyPartTypes.asn b/epan/dissectors/asn1/p772/MMSExtendedBodyPartTypes.asn
new file mode 100644
index 0000000000..312e60f2bc
--- /dev/null
+++ b/epan/dissectors/asn1/p772/MMSExtendedBodyPartTypes.asn
@@ -0,0 +1,115 @@
+MMSExtendedBodyPartTypes {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0) module(0)
+ extended-body-part-types(7)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+ -- IPMS information objects
+ EXTENDED-BODY-PART-TYPE
+ --=
+ FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+ modules(0) information-objects(2)}
+ -- MMS information objects
+ MM
+ --=
+ FROM MMSInformationObjects {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0) module(0) mms(1)}
+ -- MMS upper lower bounds
+ ub-data-size
+ --=
+ FROM MMSUpperBounds {iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0) module(0) upper-bounds(0)}
+ -- MTS Abstract Service
+ MessageDeliveryTime, OtherMessageDeliveryFields
+ --=
+ FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
+ mts-abstract-service(1)}
+ -- MMS object identifiers
+ --=
+ id-nato-mmhs-et-adatp3, id-nato-mmhs-et-adatp3-parameters,
+ id-nato-mmhs-et-acp127data, id-nato-mmhs-et-acp127data-parameters,
+ id-nato-mmhs-et-corrections, id-nato-mmhs-et-corrections-parameters,
+ id-nato-mmhs-et-forwarded-encrypted,
+ id-nato-mmhs-et-forwarded-encrypted-parameters, id-nato-mmhs-et-mm-message,
+ id-nato-mmhs-et-mm-message-parameters
+ --=
+ FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0)};
+
+-- extended adatp3 bodypart
+--adatp3-body-part EXTENDED-BODY-PART-TYPE ::= {
+-- PARAMETERS {ADatP3Parameters
+-- IDENTIFIED BY id-nato-mmhs-et-adatp3-parameters},
+-- DATA {ADatP3Data
+-- IDENTIFIED BY id-nato-mmhs-et-adatp3}}
+
+ADatP3Parameters ::= INTEGER -- DEFAULT (0)
+
+ADatP3Data ::= CHOICE {
+ lineOriented [0] IMPLICIT IA5String,
+ setOriented [1] IMPLICIT SEQUENCE OF IA5String}
+
+-- extended corrections body part
+--corrections-body-part EXTENDED-BODY-PART-TYPE ::= {
+-- PARAMETERS {CorrectionsParameters
+-- IDENTIFIED BY id-nato-mmhs-et-corrections-parameters},
+-- DATA {CorrectionsData
+-- IDENTIFIED BY id-nato-mmhs-et-corrections}}
+
+CorrectionsParameters ::= INTEGER
+
+CorrectionsData ::= IA5String
+
+-- extended forwarded encrypted body part
+--forwarded-encrypted-body-part EXTENDED-BODY-PART-TYPE ::= {
+-- PARAMETERS
+-- {ForwardedEncryptedParameters
+-- IDENTIFIED BY id-nato-mmhs-et-forwarded-encrypted-parameters},
+-- DATA
+-- {ForwardedEncryptedData
+-- IDENTIFIED BY id-nato-mmhs-et-forwarded-encrypted}}
+
+-- A forwarded-encrypted-body must contain the delivery information,
+-- containing the content type which will indicate whether the forwarded
+-- encrypted message is an MM or IPM. All security related information
+-- (i.e., token) of the original message must be forwarded.
+ForwardedEncryptedParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields}
+
+-- 2/X.411, part 9 of 26.
+ForwardedEncryptedData ::= BIT STRING
+
+-- extended MM message body part
+--mm-message-body-part EXTENDED-BODY-PART-TYPE ::= {
+-- PARAMETERS
+-- {MMMessageParameters
+-- IDENTIFIED BY id-nato-mmhs-et-mm-message-parameters},
+-- DATA {MMMessageData
+-- IDENTIFIED BY id-nato-mmhs-et-mm-message}}
+
+-- An mm-message-body-part can either carry a forwarded M1M or a forwarded
+-- IPM. In the case of a message-body-part, as defined in X.420,
+-- it can only carry an IPM.
+MMMessageParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields}
+
+MMMessageData ::= IPM
+
+-- extended acp127data body part
+--acp127data-body-part EXTENDED-BODY-PART-TYPE ::= {
+-- PARAMETERS
+-- {ACP127DataParameters
+-- IDENTIFIED BY id-nato-mmhs-et-acp127data-parameters},
+-- DATA {ACP127DataData
+-- IDENTIFIED BY id-nato-mmhs-et-acp127data}}
+
+ACP127DataParameters ::= INTEGER
+
+ACP127DataData ::= IA5String(SIZE (1..ub-data-size))
+
+END -- of MMS ExtendedBodyPartTypes
+
diff --git a/epan/dissectors/asn1/p772/MMSHeadingExtensions.asn b/epan/dissectors/asn1/p772/MMSHeadingExtensions.asn
new file mode 100644
index 0000000000..d20c142527
--- /dev/null
+++ b/epan/dissectors/asn1/p772/MMSHeadingExtensions.asn
@@ -0,0 +1,250 @@
+MMSHeadingExtensions {iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0) module(0) heading-extensions(6)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+ -- IPMS information objects
+ IPMS-EXTENSION, ORDescriptor
+ --=
+ FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+ modules(0) information-objects(2)}
+ -- MMS upper bounds
+ lb-military-sic, ub-military-number-of-sics, ub-military-sic
+ --=
+ FROM MMSUpperBounds {iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0) module(0) upper-bounds(0)}
+ -- MMS object identifiers
+ id-nato-mmhs-mm-acp127-message-identifier,
+ id-nato-mmhs-mm-address-list-indicator, id-nato-mmhs-mm-codress-message,
+ id-nato-mmhs-mm-copy-precedence, id-nato-mmhs-mm-distribution-codes,
+ id-nato-mmhs-mm-exempted-address,
+ id-nato-mmhs-mm-extended-authorisation-info,
+ id-nato-mmhs-mm-handling-instructions, id-nato-mmhs-mm-information-labels,
+ id-nato-mmhs-mm-message-instructions, id-nato-mmhs-mm-message-type,
+ id-nato-mmhs-mm-originator-reference, id-nato-mmhs-mm-originator-plad,
+ id-nato-mmhs-mm-other-recipients-indicator,
+ id-nato-mmhs-mm-pilot-forwarding-info, id-nato-mmhs-mm-primary-precedence
+ --=
+ FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0)}
+ -- MTS abstract service
+ --Message--SecurityLabel
+ --=
+ FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
+ mts-abstract-service(1)};
+
+-- exempted address
+--exempted-address IPMS-EXTENSION ::= {
+-- VALUE SEQUENCE OF ExemptedAddress
+-- IDENTIFIED BY id-nato-mmhs-mm-exempted-address}
+
+ExemptedAddressSeq ::= SEQUENCE OF ExemptedAddress
+
+ExemptedAddress ::= ORDescriptor
+
+-- extended authorisation information
+--extended-authorisation-info IPMS-EXTENSION ::= {
+-- VALUE ExtendedAuthorisationInfo
+-- IDENTIFIED BY id-nato-mmhs-mm-extended-authorisation-info}
+
+ExtendedAuthorisationInfo ::= UTCTime
+
+-- UTCTime as defined in 8.5.4 of ITU-T X.411
+-- Distribution codes
+-- will carry subject indicator codes and leave room for expansion.
+--distribution-codes IPMS-EXTENSION ::= {
+-- VALUE DistributionCodes
+-- IDENTIFIED BY id-nato-mmhs-mm-distribution-codes}
+
+DistributionCodes ::= SET {
+ sics
+ [0] SEQUENCE SIZE (1..ub-military-number-of-sics) OF Sic OPTIONAL,
+ dist-Extensions [1] SEQUENCE OF DistributionExtensionField OPTIONAL}
+
+Sic ::= PrintableString(SIZE (lb-military-sic..ub-military-sic))
+
+--DistributionExtensionField ::= INSTANCE OF TYPE-IDENTIFIER
+DistributionExtensionField ::= SEQUENCE {
+ dist-type OBJECT IDENTIFIER,
+ dist-value ANY --DEFINED BY dist-type-- }
+
+-- Handling instructions
+--handling-instructions IPMS-EXTENSION ::= {
+-- VALUE HandlingInstructions
+-- IDENTIFIED BY id-nato-mmhs-mm-handling-instructions}
+
+HandlingInstructions ::= SEQUENCE OF MilitaryString
+
+MilitaryString ::= PrintableString(SIZE (1..ub-military-string))
+
+-- Message instructions
+-- will carry operating signals
+--message-instructions IPMS-EXTENSION ::= {
+-- VALUE MessageInstructions
+-- IDENTIFIED BY id-nato-mmhs-mm-message-instructions}
+
+MessageInstructions ::= SEQUENCE OF MilitaryString
+
+-- Codress message
+-- Needed for transition or as long as codress messages need to be carried.
+--codress-message IPMS-EXTENSION ::= {
+-- VALUE CodressMessage
+-- IDENTIFIED BY id-nato-mmhs-mm-codress-message}
+
+CodressMessage ::= INTEGER
+
+-- Originator reference
+-- only used if a user designated identifier string becomes important.
+--originator-reference IPMS-EXTENSION ::= {
+-- VALUE OriginatorReference
+-- IDENTIFIED BY id-nato-mmhs-mm-originator-reference}
+
+OriginatorReference ::= MilitaryString
+
+-- we have expanded MMHSPrecedence to PrimaryPrecedence and CopyPrecedence to
+-- all rules to be written to highlight high priority messages.
+MMHSPrecedence ::= INTEGER {
+ deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
+ -- these are used by some National systems XXX need to verify
+ , ecp(16), critic(17), override(18)
+}
+
+-- Primary reference
+--primary-precedence IPMS-EXTENSION ::= {
+-- VALUE MMHSPrecedence
+-- IDENTIFIED BY id-nato-mmhs-mm-primary-precedence}
+
+PrimaryPrecedence ::= INTEGER {
+ deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
+ -- these are used by some National systems XXX need to verify
+ , ecp(16), critic(17), override(18)
+}
+
+-- Note: Values 0 to 15 are reserved for NATO defined precedence levels.
+-- Values 16 to 31 are reserved for national user.
+-- Copy precedence
+--copy-precedence IPMS-EXTENSION ::= {
+-- VALUE MMHSPrecedence
+-- IDENTIFIED BY id-nato-mmhs-mm-copy-precedence}
+
+CopyPrecedence ::= INTEGER {
+ deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
+ -- these are used by some National systems XXX need to verify
+ , ecp(16), critic(17), override(18)
+}
+
+-- Message type
+--message-type IPMS-EXTENSION ::= {
+-- VALUE MessageType
+-- IDENTIFIED BY id-nato-mmhs-mm-message-type}
+
+MessageType ::= SET {
+ type [0] TypeMessage,
+ identifier [1] MessageIdentifier OPTIONAL}
+
+TypeMessage ::= INTEGER {exercise(0), operation(1), project(2), drill(3)}
+
+-- Note: Values 0 to 127 are reserved for NATO defined Message Type
+-- identifiers. Values above 128 to 255 are not defined by NATO and may
+-- be used nationally or bilaterally.
+MessageIdentifier ::=
+ MilitaryString
+
+-- Address list indicator
+--address-list-indicator IPMS-EXTENSION ::= {
+-- VALUE SEQUENCE OF AddressListDesignator
+-- IDENTIFIED BY id-nato-mmhs-mm-address-list-indicator}
+
+AddressListDesignatorSeq ::= SEQUENCE OF AddressListDesignator
+
+AddressListDesignator ::= SET {
+ type [0] INTEGER {primaryAddressList(0), copyAddressList(1)},
+ listName [1] ORDescriptor,
+ notificationRequest [2] AddressListRequest OPTIONAL,
+ replyRequest [3] AddressListRequest OPTIONAL}
+
+AddressListRequest ::= INTEGER {action(0), info(1), both(2)}
+
+-- Other recipients indicator
+--other-recipients-indicator IPMS-EXTENSION ::= {
+-- VALUE SEQUENCE OF OtherRecipientDesignator
+-- IDENTIFIED BY id-nato-mmhs-mm-other-recipients-indicator}
+
+OtherRecipientDesignatorSeq ::= SEQUENCE OF OtherRecipientDesignator
+
+OtherRecipientDesignator ::= SET {
+ type [0] INTEGER {primary(0), copy(1)},
+ designator [1] MilitaryString}
+
+-- pilot forwarding information
+--pilot-forwarding-info IPMS-EXTENSION ::= {
+-- VALUE SEQUENCE OF PilotInformation
+-- IDENTIFIED BY id-nato-mmhs-mm-pilot-forwarding-info}
+
+PilotInformationSeq ::= SEQUENCE OF PilotInformation
+
+PilotInformation ::= SEQUENCE {
+ pilotPrecedence [0] MMHSPrecedence OPTIONAL,
+ -- Note: Values 0 to 15 are reserved for NATO defined precedence levels.
+ -- Values 16 to 31 are reserved for national use.
+ pilotRecipient [1] SEQUENCE OF ORDescriptor OPTIONAL,
+ pilotSecurity [2] --Message--SecurityLabel OPTIONAL,
+ pilotHandling [3] SEQUENCE OF MilitaryString OPTIONAL}
+
+-- Acp127 message identifier
+-- a string to store routing indicator, station serial number and julian file
+-- time seperated by spaces.
+--acp127-message-identifier IPMS-EXTENSION ::= {
+-- VALUE Acp127MessageIdentifier
+-- IDENTIFIED BY id-nato-mmhs-mm-acp127-message-identifier}
+
+Acp127MessageIdentifier ::= MilitaryString
+
+-- Originator PLAD
+--originator-plad IPMS-EXTENSION ::= {
+-- VALUE OriginatorPlad
+-- IDENTIFIED BY id-nato-mmhs-mm-originator-plad}
+
+OriginatorPlad ::= MilitaryString
+
+-- Information label
+--security-information-labels IPMS-EXTENSION ::= {
+-- VALUE SecurityInformationLabels
+-- IDENTIFIED BY id-nato-mmhs-mm-information-labels}
+
+SecurityInformationLabels ::= SEQUENCE {
+ content-security-label [0] SecurityLabel,
+ -- SecurityLabel as defined in 8.5.9 of ITU-T X.411
+ heading-security-label [1] SecurityLabel OPTIONAL,
+ body-part-security-labels [2] SEQUENCE OF BodyPartSecurityLabel OPTIONAL}
+
+BodyPartSecurityLabel ::= SET {
+ body-part-security-label [0] SecurityLabel,
+ body-part-sequence-number [1] BodyPartSequenceNumber OPTIONAL}
+
+BodyPartSequenceNumber ::= INTEGER
+
+-- Note: If all body parts of the message are labelled, each
+-- element in the body sequence above shall correspond to the
+-- same numbered element of the Body sequence, and the body
+-- part sequence number may be absent. (i.e. the first element
+-- of this field shall correspond to the first body part, etc.
+-- Otherwise the body part sequence number shall be present
+-- and shall correspond to the sequence of the body part
+-- to which the security label relates. (i.e. the value of the
+-- body part sequence number shall correspond to sequence in which
+-- the originator encoded the body parts of the message).
+-- NOTE: The security-information-labels heading extension is now
+-- deprecated. Its use is, therefore, discouraged. See STANAG 4406
+-- Annex B for instruction on the use of its replacement, the
+-- ESSSecurityLabel.
+
+PriorityLevelQualifier ::= ENUMERATED {
+ low(0),
+ high(1) }
+
+END -- of Military heading extensions used in MMS
+
diff --git a/epan/dissectors/asn1/p772/MMSInformationObjects.asn b/epan/dissectors/asn1/p772/MMSInformationObjects.asn
new file mode 100644
index 0000000000..510b551f74
--- /dev/null
+++ b/epan/dissectors/asn1/p772/MMSInformationObjects.asn
@@ -0,0 +1,62 @@
+MMSInformationObjects {iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0) module(0) mms(1)} DEFINITIONS IMPLICIT TAGS
+::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+ -- IPM Information Object
+ Body, CommonFields, Heading, NonReceiptFields, OtherNotificationTypeFields,
+ ReceiptFields, IPM, IPN
+ --=
+ FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+ modules(0) information-objects(2)}
+ -- MTS abstract service
+ ORName
+ --=
+ FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
+ mts-abstract-service(1)};
+
+-- Information Object
+--InformationObject ::= CHOICE {mm [0] MM,
+-- mn [1] MN}
+
+-- We use IPM and IPN here because asn2wrs is unable to fetch
+-- COMPONENTS OF CommonFields from IPMSInformationObjects.asn (x420).
+InformationObject ::= CHOICE {mm [0] IPM,
+ mn [1] IPN}
+
+-- MM (Military Message)
+MM ::= SEQUENCE {mmheading Heading,
+ mmbody Body}
+
+-- The mandatory support on the IPMIdentifier components is more important
+-- in MMS than in IPMS. The user component, ORName of the originating UA is
+-- mandatory. Local IPMIdentifier is made up of 2 concatenated string
+-- separated by a space both generated by the originating UA, a serial
+-- number and the filing time (the time the message generation is finished)
+-- in UTC time format. The minimum length of 15 is because both a date/time
+-- stamp in UTC format including seconds and a serial number, plus the space
+-- delimiter are mandatory. The smallest acceptable UTC date/time stamp
+-- is 13 (ddmmyyhhmmssZ).
+-- MN (Military Notification receipt/non receipt / other notification types)
+MN ::= SET {
+ COMPONENTS OF CommonFields,
+ choice
+ [0] CHOICE {mn-non-receipt-fields [0] NonReceiptFields,
+ mn-receipt-fields [1] ReceiptFields,
+ mn-other-notification-type-fields
+ [2] OtherNotificationTypeFields}}
+
+MRN ::= MN -- with MN-receipt-fields chosen
+
+MNRN ::= MN -- with MN-non-receipt-fields chosen
+
+MON ::= MN -- with MN-other-notification-type-fields chosen
+
+-- All military specific body parts are defined as extended body parts.
+-- The military specific body parts are defined in Annex A
+-- of this part of the MBS.
+END -- of MMS InformationObjects
+
diff --git a/epan/dissectors/asn1/p772/MMSObjectIdentifiers.asn b/epan/dissectors/asn1/p772/MMSObjectIdentifiers.asn
new file mode 100644
index 0000000000..c801d70166
--- /dev/null
+++ b/epan/dissectors/asn1/p772/MMSObjectIdentifiers.asn
@@ -0,0 +1,262 @@
+MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Export everything
+IMPORTS --nothing-- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Military Messaging
+id-mmhs ID ::=
+ {iso(1) identified-organization(3) nato(26) stanags(0) mmhs(4406)
+ object-identifiers(0)}
+
+-- Categories of object identifiers
+id-mod ID ::= {id-mmhs 0} -- mm module
+
+id-mm ID ::= {id-mmhs 2} -- heading extension
+
+id-hat ID ::= {id-mmhs 3} -- heading attributes for MS
+
+id-mcont ID ::= {id-mmhs 4} -- content types
+
+id-policy ID ::= {id-mmhs 5} -- NATO policy identifier
+
+id-cat ID ::= {id-mmhs 6} -- special category identifiers
+
+id-et ID ::= {id-mmhs 7} -- military defined extended body part types
+
+id-mmts ID ::= {id-mmhs 8} -- mts object identifiers
+
+id-nat ID ::= {id-mmhs 9} -- military defined notification attributes
+
+id-mot ID ::= {id-mmhs 10} -- military object types
+
+id-mpt ID ::= {id-mmhs 11} -- military port types
+
+id-ref ID ::= {id-mmhs 12} -- refinements
+
+id-informationlabel ID ::= {id-mmhs 13}
+
+-- Modules
+-- MMS information objects
+id-mod-upper-bounds ID ::= {id-mod 0}
+
+id-mod-mms ID ::= {id-mod 1}
+
+id-mod-functional-objects ID ::= {id-mod 2}
+
+id-mod-abstract-service ID ::= {id-mod 3}
+
+id-mod-heading-extension ID ::= {id-mod 6}
+
+id-mod-extended-body-part-types ID ::= {id-mod 7}
+
+id-mod-message-store-attributes ID ::= {id-mod 8}
+
+id-mod-per-recipient-specifier-extensions ID ::= {id-mod 11}
+
+id-mod-other-notification-type-extensions ID ::= {id-mod 12}
+
+-- Object types
+id-mot-mmme ID ::= {id-mot 0}
+
+id-mot-mms-user ID ::= {id-mot 1}
+
+id-mot-mms ID ::= {id-mot 2}
+
+id-mot-mms-ua ID ::= {id-mot 3}
+
+id-mot-mms-ms ID ::= {id-mot 4}
+
+id-mot-acp127au ID ::= {id-mot 5}
+
+id-mot-pdau ID ::= {id-mot 6}
+
+-- port types
+id-mpt-origination ID ::= {id-mpt 0}
+
+id-mpt-reception ID ::= {id-mpt 1}
+
+id-mpt-management ID ::= {id-mpt 2}
+
+-- Refinements
+id-ref-primary ID ::= {id-ref 0}
+
+id-ref-secondary ID ::= {id-ref 1}
+
+-- Military Defined body parts
+id-nato-mmhs-et-adatp3 ID ::= {id-et 0}
+
+id-nato-mmhs-et-corrections ID ::= {id-et 1}
+
+id-nato-mmhs-et-adatp3-parameters ID ::= {id-et 2}
+
+id-nato-mmhs-et-corrections-parameters ID ::= {id-et 3}
+
+id-nato-mmhs-et-forwarded-encrypted ID ::= {id-et 6}
+
+id-nato-mmhs-et-forwarded-encrypted-parameters ID ::= {id-et 7}
+
+id-nato-mmhs-et-mm-message ID ::= {id-et 9}
+
+id-nato-mmhs-et-mm-message-parameters ID ::= {id-et 10}
+
+id-nato-mmhs-et-mm-acp127data ID ::= {id-et 12}
+
+id-nato-mmhs-et-mm-acp127data-parameters ID ::= {id-et 13}
+
+-- Military Defined Heading Fields
+id-nato-mmhs-mm-primary-precedence ID ::=
+ {id-mm 0}
+
+id-nato-mmhs-mm-copy-precedence ID ::= {id-mm 1}
+
+id-nato-mmhs-mm-message-type ID ::= {id-mm 2}
+
+id-nato-mmhs-mm-address-list-indicator ID ::= {id-mm 3}
+
+id-nato-mmhs-mm-exempted-address ID ::= {id-mm 4}
+
+id-nato-mmhs-mm-extended-authorisation-info ID ::= {id-mm 5}
+
+id-nato-mmhs-mm-distribution-codes ID ::= {id-mm 6}
+
+id-nato-mmhs-mm-handling-instructions ID ::= {id-mm 7}
+
+id-nato-mmhs-mm-message-instructions ID ::= {id-mm 8}
+
+id-nato-mmhs-mm-codress-message ID ::= {id-mm 9}
+
+id-nato-mmhs-mm-originator-reference ID ::= {id-mm 10}
+
+id-nato-mmhs-mm-other-recipients-indicator ID ::= {id-mm 11}
+
+id-nato-mmhs-mm-pilot-forwarding-info ID ::= {id-mm 12}
+
+id-nato-mmhs-mm-acp127-message-identifier ID ::= {id-mm 13}
+
+id-nato-mmhs-mm-originator-plad ID ::= {id-mm 14}
+
+id-nato-mmhs-mm-information-labels ID ::= {id-mm 17}
+
+-- This value is deprecated.
+-- the following are per-recipient
+id-nato-mmhs-mm-acp127-notification-request ID ::=
+ {id-mm 15}
+
+-- the following are per other-notification-type
+id-nato-mmhs-mm-acp127-notification-response ID ::=
+ {id-mm 16}
+
+-- Military Defined Heading Attributes for MS
+id-nato-mmhs-hat-primary-precedence ID ::=
+ {id-hat 0}
+
+id-nato-mmhs-hat-copy-precedence ID ::= {id-hat 1}
+
+id-nato-mmhs-hat-message-type ID ::= {id-hat 2}
+
+id-nato-mmhs-hat-address-list-indicator ID ::= {id-hat 3}
+
+id-nato-mmhs-hat-exempted-address ID ::= {id-hat 4}
+
+id-nato-mmhs-hat-extended-authorisation-info ID ::= {id-hat 5}
+
+id-nato-mmhs-hat-distribution-codes ID ::= {id-hat 6}
+
+id-nato-mmhs-hat-handling-instructions ID ::= {id-hat 7}
+
+id-nato-mmhs-hat-message-instructions ID ::= {id-hat 8}
+
+id-nato-mmhs-hat-codress-message ID ::= {id-hat 9}
+
+id-nato-mmhs-hat-originator-reference ID ::= {id-hat 10}
+
+id-nato-mmhs-hat-other-recipients-indicator ID ::= {id-hat 11}
+
+id-nato-mmhs-hat-pilot-forwarding-info ID ::= {id-hat 12}
+
+id-nato-mmhs-hat-acp127-message-identifier ID ::= {id-hat 13}
+
+id-nato-mmhs-hat-originator-plad ID ::= {id-hat 14}
+
+-- the following are per-recipient
+id-nato-mmhs-hat-acp127-notification-request ID ::=
+ {id-hat 15}
+
+id-nato-mmhs-hat-sic-codes ID ::= {id-hat 16}
+
+id-nato-mmhs-hat-distribution-extensions ID ::= {id-hat 17}
+
+id-nato-mmhs-hat-body-part-information-label ID ::= {id-hat 18}
+
+-- This value is deprecated.
+id-nato-mmhs-hat-security-information-labels ID ::=
+ {id-hat 19}
+
+-- This value is deprecated.
+-- Military Defined special category identifiers
+id-nato-mmhs-cat ID ::=
+ {id-cat 0}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-atomal ID ::= {id-cat 1}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-cryptosecurity ID ::= {id-cat 2}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-specialhandlingintel ID ::=
+ {id-cat 3}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-ussiopesi ID ::= {id-cat 4}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-eyesonly ID ::= {id-cat 5}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-exclusive ID ::= {id-cat 6}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-information-label ID ::=
+ {id-cat 7}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-atomal ID ::=
+ {id-informationlabel 1}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-cryptosecurity ID ::=
+ {id-informationlabel 2}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-specialhandlingintel ID ::=
+ {id-informationlabel 3}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-ussiopesi ID ::=
+ {id-informationlabel 4}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-eyesonly ID ::=
+ {id-informationlabel 5}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-exclusive ID ::=
+ {id-informationlabel 6}
+
+-- This value is deprecated.
+-- Military Defined Notification Extension
+id-nato-mmhs-nat-acp127-notification-response ID ::=
+ {id-nat 0}
+
+-- Military Message content types (for use by MS only)
+id-mct-p772 ID ::=
+ {id-mcont 1}
+
+END -- of MMHSObjectIdentifiers
+
diff --git a/epan/dissectors/asn1/p772/MMSOtherNotificationTypeExtensions.asn b/epan/dissectors/asn1/p772/MMSOtherNotificationTypeExtensions.asn
new file mode 100644
index 0000000000..4aa53b18de
--- /dev/null
+++ b/epan/dissectors/asn1/p772/MMSOtherNotificationTypeExtensions.asn
@@ -0,0 +1,56 @@
+MMSOtherNotificationTypeExtensions {iso(1) identified-organization(3)
+ nato(26) stanags(0) mmhs(4406) object-identifiers(0) module(0)
+ other-notification-type-extensions(12)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+ -- IPMS information objects
+ IPMS-EXTENSION, ReceiptTimeField
+ --=
+ FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+ modules(0) information-objects(2)}
+ -- MMS upper bounds
+ ub-military-bigstring
+ --=
+ FROM MMSUpperBounds {iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0) module(0) upper-bounds(0)}
+ -- MMS object identifiers
+ id-nato-mmhs-mm-acp127-notification-response
+ --=
+ FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0)}
+ -- MMS heading extensions
+ AddressListDesignator
+ --=
+ FROM MMSHeadingExtensions {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0) module(0)
+ heading-extensions(6)}
+ -- MMS per recipient specifier extensions
+ Acp127NotificationType
+ --=
+ FROM MMSPerRecipientSpecifierExtensions {iso(1) identified-organization(3)
+ nato(26) stanags(0) mmhs(4406) object-identifiers(0) module(0)
+ per-recipient-specifier-extensions(11)};
+
+--ACP127 notification response
+--acp127-notification-response IPMS-EXTENSION ::= {
+-- VALUE Acp127NotificationResponse
+-- IDENTIFIED BY id-nato-mmhs-mm-acp127-notification-response}
+
+Acp127NotificationResponse ::= SET {
+ acp127-notification-type [0] Acp127NotificationType,
+ receipt-time [1] ReceiptTimeField,
+ addressListIndicator [2] AddressListIndicator OPTIONAL,
+ acp127-recipient [3] Acp127Recipient OPTIONAL,
+ acp127-supp-info [4] Acp127SuppInfo OPTIONAL}
+
+AddressListIndicator ::= SEQUENCE OF AddressListDesignator
+
+Acp127Recipient ::= PrintableString(SIZE (1..ub-military-bigstring))
+
+Acp127SuppInfo ::= PrintableString(SIZE (1..ub-military-bigstring))
+
+END -- of MMS OtherNotificationType extensions
+
diff --git a/epan/dissectors/asn1/p772/MMSPerRecipientSpecifierExtensions.asn b/epan/dissectors/asn1/p772/MMSPerRecipientSpecifierExtensions.asn
new file mode 100644
index 0000000000..b7d001a819
--- /dev/null
+++ b/epan/dissectors/asn1/p772/MMSPerRecipientSpecifierExtensions.asn
@@ -0,0 +1,34 @@
+MMSPerRecipientSpecifierExtensions {iso(1) identified-organization(3)
+ nato(26) stanags(0) mmhs(4406) object-identifiers(0) module(0)
+ per-recipient-specifier-extensions(11)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+ -- IPMS information objects
+ IPMS-EXTENSION
+ --=
+ FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+ modules(0) information-objects(2)}
+ -- MMS object identifiers
+ id-nato-mmhs-mm-acp127-notification-request
+ --=
+ FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+ stanags(0) mmhs(4406) object-identifiers(0)};
+
+-- ACP127 notification request
+-- The following definitions are made in order to support
+-- informing the originator of a message that the subject message
+-- has reached a gateway to an ACP 127 domain.
+--acp127-notification-request IPMS-EXTENSION ::= {
+-- VALUE Acp127NotificationType
+-- IDENTIFIED BY id-nato-mmhs-mm-acp127-notification-request}
+
+Acp127NotificationType ::= BIT STRING {
+ acp127-nn(0), -- negative notification
+ acp127-pn(1), -- positive notification
+ acp127-tn(2)} -- transfer notification
+
+END -- of MMS per recipient pecifier extensions
+
diff --git a/epan/dissectors/asn1/p772/MMSUpperBounds.asn b/epan/dissectors/asn1/p772/MMSUpperBounds.asn
new file mode 100644
index 0000000000..6095f926c7
--- /dev/null
+++ b/epan/dissectors/asn1/p772/MMSUpperBounds.asn
@@ -0,0 +1,25 @@
+MMSUpperBounds {iso(1) identified-organization(3) nato(26) stanags(0)
+ mmhs(4406) object-identifiers(0) module(0) upper-bounds(0)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-military-string INTEGER ::= 69
+
+ub-military-number-of-sics INTEGER ::= 8
+
+lb-military-sic INTEGER ::= 3
+
+ub-military-sic INTEGER ::= 8
+
+ub-military-bigstring INTEGER ::= 128
+
+ub-data-size INTEGER ::= 65535
+
+-- size of ACP127DATADATA
+END -- of MMSUpperBounds
+
diff --git a/epan/dissectors/asn1/p772/Makefile.am b/epan/dissectors/asn1/p772/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/p772/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/p772/Makefile.common b/epan/dissectors/asn1/p772/Makefile.common
new file mode 100644
index 0000000000..ae49d59c2e
--- /dev/null
+++ b/epan/dissectors/asn1/p772/Makefile.common
@@ -0,0 +1,59 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=p772
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ MMSAbstractService.asn \
+ MMSInformationObjects.asn \
+ MMSOtherNotificationTypeExtensions.asn \
+ MMSObjectIdentifiers.asn \
+ MMSHeadingExtensions.asn \
+ MMSUpperBounds.asn \
+ MMSExtendedBodyPartTypes.asn \
+ MMSPerRecipientSpecifierExtensions.asn
+
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b -C
+
+EXTRA_CNF= \
+ $(builddir)/../p1/p1-exp.cnf \
+ $(builddir)/../p22/p22-exp.cnf
+
+$(builddir)/../p1/p1-exp.cnf:
+ (cd $(builddir)/../p1 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../p22/p22-exp.cnf:
+ (cd $(builddir)/../p22 && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/p772/Makefile.nmake b/epan/dissectors/asn1/p772/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/p772/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/p772/p772.cnf b/epan/dissectors/asn1/p772/p772.cnf
new file mode 100644
index 0000000000..d2da78e3b6
--- /dev/null
+++ b/epan/dissectors/asn1/p772/p772.cnf
@@ -0,0 +1,117 @@
+# p772.cnf
+# p772 conformation file
+
+#.IMPORT ../p1/p1-exp.cnf
+#.IMPORT ../p22/p22-exp.cnf
+
+#.OMIT_ASSIGNMENT
+ID
+MM
+MN
+MRN
+MNRN
+MON
+OriginateProbeArgument
+OriginateProbeResult
+OriginateMMArgument
+OriginateMMResult
+OriginateMRNArgument
+OriginateMRNResult
+ReceiveReportArgument
+ReceiveMMArgument
+ReceiveMRNArgument
+ReceiveMNRNArgument
+ReceiveMONArgument
+ChangeAutoDiscardArgument
+ChangeAutoAcknowledgementArgument
+ChangeAutoForwardingArgument
+SubscriptionErrorParameter
+SubscriptionProblem
+
+#.NO_EMIT ONLY_VALS
+InformationObject
+
+#.TYPE_RENAME
+AddressListDesignator/type AddressListType
+OtherRecipientDesignator/type OtherRecipientType
+
+#.FIELD_RENAME
+AddressListDesignator/type address_list_type
+MessageType/type message_type_type
+OtherRecipientDesignator/type other_recipient_type
+
+#.PDU
+PrimaryPrecedence
+CopyPrecedence
+MessageType
+#AddressListDesignator
+#ExemptedAddress
+ExtendedAuthorisationInfo
+DistributionCodes
+HandlingInstructions
+MessageInstructions
+CodressMessage
+OriginatorReference
+#OtherRecipientDesignator
+#PilotInformation
+Acp127MessageIdentifier
+OriginatorPlad
+Acp127NotificationType
+SecurityInformationLabels
+
+#.REGISTER
+PrimaryPrecedence B "1.3.26.0.4406.0.2.0" "primary-precedence"
+CopyPrecedence B "1.3.26.0.4406.0.2.1" "copy-precedence"
+MessageType B "1.3.26.0.4406.0.2.2" "message-type"
+AddressListDesignatorSeq B "1.3.26.0.4406.0.2.3" "address-list-indicator"
+ExemptedAddressSeq B "1.3.26.0.4406.0.2.4" "exempted-address"
+ExtendedAuthorisationInfo B "1.3.26.0.4406.0.2.5" "extended-authorisation-info"
+DistributionCodes B "1.3.26.0.4406.0.2.6" "distribution-codes"
+HandlingInstructions B "1.3.26.0.4406.0.2.7" "handling-instructions"
+MessageInstructions B "1.3.26.0.4406.0.2.8" "message-instructions"
+CodressMessage B "1.3.26.0.4406.0.2.9" "codress-message"
+OriginatorReference B "1.3.26.0.4406.0.2.10" "originator-reference"
+OtherRecipientDesignatorSeq B "1.3.26.0.4406.0.2.11" "other-recipients-indicator"
+PilotInformationSeq B "1.3.26.0.4406.0.2.12" "pilot-forwarding-info"
+Acp127MessageIdentifier B "1.3.26.0.4406.0.2.13" "acp127-message-identifier"
+OriginatorPlad B "1.3.26.0.4406.0.2.14" "originator-plad"
+Acp127NotificationType B "1.3.26.0.4406.0.2.15" "acp127-notification-request"
+Acp127NotificationResponse B "1.3.26.0.4406.0.2.16" "acp127-notification-response"
+SecurityInformationLabels B "1.3.26.0.4406.0.2.17" "information-labels"
+
+PriorityLevelQualifier B "1.3.26.0.4406.0.8.0" "priority-level-qualifier"
+
+
+ADatP3Data B id_nato_mmhs_et_adatp3 "adatp3"
+ADatP3Parameters B id_nato_mmhs_et_adatp3_parameters "adatp3-parameters"
+CorrectionsData B id_nato_mmhs_et_corrections "corrections"
+CorrectionsParameters B id_nato_mmhs_et_corrections_parameters "corrections-parameters"
+ForwardedEncryptedData B id_nato_mmhs_et_forwarded_encrypted "forwarded-encrypted"
+ForwardedEncryptedParameters B id_nato_mmhs_et_forwarded_encrypted_parameters "forwarded-encrypted-parameters"
+MMMessageData B id_nato_mmhs_et_mm_message "mm-message"
+MMMessageParameters B id_nato_mmhs_et_mm_message_parameters "mm-message-parameters"
+ACP127DataData B id_nato_mmhs_et_mm_acp127data "acp127-data"
+ACP127DataParameters B id_nato_mmhs_et_mm_acp127data_parameters "acp127-data-parameters"
+
+InformationObject B "2.6.1.4.17.1.3.26.0.4406.0.4.1" "id-et-content-p772"
+
+
+#.FN_BODY DistributionExtensionField/dist-value
+/* XXX: not implemented */
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+#.FN_PARS PrimaryPrecedence
+ VAL_PTR=&precedence
+#.FN_BODY PrimaryPrecedence
+ int precedence = -1;
+ %(DEFAULT_BODY)s
+ if(precedence != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (primary=%%s)", val_to_str(precedence, p772_PrimaryPrecedence_vals, "precedence(%%d)"));
+
+#.FN_PARS CopyPrecedence
+ VAL_PTR=&precedence
+#.FN_BODY CopyPrecedence
+ int precedence = -1;
+ %(DEFAULT_BODY)s
+ if(precedence != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (copy=%%s)", val_to_str(precedence, p772_CopyPrecedence_vals, "precedence(%%d)"));
diff --git a/epan/dissectors/asn1/p772/packet-p772-template.c b/epan/dissectors/asn1/p772/packet-p772-template.c
new file mode 100644
index 0000000000..14a0276bad
--- /dev/null
+++ b/epan/dissectors/asn1/p772/packet-p772-template.c
@@ -0,0 +1,118 @@
+/* packet-p772.c
+ * Routines for STANAG 4406 (X.400 Military Message Extensions) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+
+#include "packet-x509if.h"
+
+#include "packet-p772.h"
+#include "packet-p1.h"
+#include "packet-p22.h"
+
+#define PNAME "STANAG 4406 Message"
+#define PSNAME "P772"
+#define PFNAME "p772"
+
+void proto_register_p772(void);
+void proto_reg_handoff_p772(void);
+
+
+/* Initialize the protocol and registered fields */
+static int proto_p772 = -1;
+
+#include "packet-p772-val.h"
+
+#include "packet-p772-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_p772 = -1;
+#include "packet-p772-ett.c"
+
+#include "packet-p772-fn.c"
+
+
+/*
+* Dissect STANAG 4406 PDUs inside a PPDU.
+*/
+static int
+dissect_p772(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ int offset = 0;
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, proto_p772, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_p772);
+ }
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "P772");
+ col_set_str(pinfo->cinfo, COL_INFO, "Military");
+
+ dissect_p772_InformationObject(TRUE, tvb, offset, &asn1_ctx , tree, -1);
+ return tvb_captured_length(tvb);
+}
+
+
+
+/*--- proto_register_p772 -------------------------------------------*/
+void proto_register_p772(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-p772-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_p772,
+#include "packet-p772-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_p772 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("p772", dissect_p772, proto_p772);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_p772, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_ber_syntax_dissector("STANAG 4406", proto_p772, dissect_p772);
+ register_ber_oid_syntax(".p772", NULL, "STANAG 4406");
+}
+
+
+/*--- proto_reg_handoff_p772 --- */
+void proto_reg_handoff_p772(void) {
+#include "packet-p772-dis-tab.c"
+
+ register_ber_oid_dissector("1.3.26.0.4406.0.4.1", dissect_p772, proto_p772, "STANAG 4406");
+}
diff --git a/epan/dissectors/asn1/p772/packet-p772-template.h b/epan/dissectors/asn1/p772/packet-p772-template.h
new file mode 100644
index 0000000000..f03d73cba7
--- /dev/null
+++ b/epan/dissectors/asn1/p772/packet-p772-template.h
@@ -0,0 +1,29 @@
+/* packet-p772.h
+ * Routines for STANAG 4406 (X.400 Military Message Extensions) packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_P772_H
+#define PACKET_P772_H
+
+/* #include "packet-p772-exp.h" */
+
+#endif /* PACKET_P772_H */
diff --git a/epan/dissectors/asn1/pcap/CMakeLists.txt b/epan/dissectors/asn1/pcap/CMakeLists.txt
new file mode 100644
index 0000000000..3355f219f9
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pcap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PCAP-CommonDataTypes.asn
+ PCAP-Constants.asn
+ PCAP-Containers.asn
+ PCAP-IEs.asn
+ PCAP-PDU-Contents.asn
+ PCAP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pcap/Makefile.am b/epan/dissectors/asn1/pcap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pcap/Makefile.common b/epan/dissectors/asn1/pcap/Makefile.common
new file mode 100644
index 0000000000..5265ac3ede
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = pcap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PCAP-CommonDataTypes.asn \
+ PCAP-Constants.asn \
+ PCAP-Containers.asn \
+ PCAP-IEs.asn \
+ PCAP-PDU-Contents.asn \
+ PCAP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/pcap/Makefile.nmake b/epan/dissectors/asn1/pcap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pcap/PCAP-CommonDataTypes.asn b/epan/dissectors/asn1/pcap/PCAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..d2f448e1c5
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/PCAP-CommonDataTypes.asn
@@ -0,0 +1,56 @@
+--
+-- 3GPP TS 25.453 V11.0.0 (2012-09)
+--
+--9.3.5 Common Definitions
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+PCAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) pcap(4) version1 (1) pcap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..65535),
+ global OBJECT IDENTIFIER
+}
+
+
+ProcedureCode ::= INTEGER (0..255)
+
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+TransactionID ::= CHOICE {
+ shortTID INTEGER (0..127),
+ longTID INTEGER (0..32767)
+}
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome, outcome }
+
+END
diff --git a/epan/dissectors/asn1/pcap/PCAP-Constants.asn b/epan/dissectors/asn1/pcap/PCAP-Constants.asn
new file mode 100644
index 0000000000..2f72c09009
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/PCAP-Constants.asn
@@ -0,0 +1,223 @@
+--
+-- 3GPP TS 25.453 V11.0.0 (2012-09)
+--
+-- 9.3.6 Constant Definitions
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+PCAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) pcap(4) version1 (1) pcap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM PCAP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-PositionCalculation ProcedureCode ::= 1
+id-InformationExchangeInitiation ProcedureCode ::= 2
+id-InformationReporting ProcedureCode ::= 3
+id-InformationExchangeTermination ProcedureCode ::= 4
+id-InformationExchangeFailure ProcedureCode ::= 5
+id-ErrorIndication ProcedureCode ::= 6
+id-privateMessage ProcedureCode ::= 7
+id-PositionParameterModification ProcedureCode ::= 8
+id-PositionInitiation ProcedureCode ::= 9
+id-PositionActivation ProcedureCode ::= 10
+id-Abort ProcedureCode ::= 11
+id-PositionPeriodicReport ProcedureCode ::= 12
+id-PositionPeriodicResult ProcedureCode ::= 13
+id-PositionPeriodicTermination ProcedureCode ::= 14
+
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfErrors INTEGER ::= 256
+maxSat INTEGER ::= 16
+maxSatAlmanac INTEGER ::= 32
+maxNrOfLevels INTEGER ::= 256
+maxNrOfPoints INTEGER ::= 15
+maxNrOfExpInfo INTEGER ::= 32
+maxNrOfMeasNCell INTEGER ::= 32
+maxNrOfMeasurements INTEGER ::= 16
+maxNrOfSets INTEGER ::= 3
+maxRateMatching INTEGER ::= 256
+maxNrOfTFs INTEGER ::= 32
+maxTTI-count INTEGER ::= 4
+maxTS-1 INTEGER ::= 13
+maxCCTrCH INTEGER ::= 8
+maxTF INTEGER ::= 32
+maxTFC INTEGER ::= 1024
+maxPRACH INTEGER ::= 16
+maxTrCH INTEGER ::= 32
+maxTGPS INTEGER ::= 6
+maxNoOfMeasurements INTEGER ::= 16
+maxCellMeas INTEGER ::= 32
+maxNrOfEDPCCH-PO-QUANTSTEPs INTEGER ::= 8 -- FFS
+maxNrOfRefETFCI-PO-QUANTSTEPs INTEGER ::= 8 -- FFS
+maxNrOfRefETFCIs INTEGER ::= 8
+maxSet INTEGER ::= 9
+maxGANSSSat INTEGER ::= 64
+maxSgnType INTEGER ::= 8
+maxGANSS INTEGER ::= 8
+maxGANSSSet INTEGER ::= 9
+maxGANSSSatAlmanac INTEGER ::= 36
+maxGANSSClockMod INTEGER ::= 4
+maxGANSS-1 INTEGER ::= 7
+maxNrOfIRATMeasurements INTEGER ::= 16
+maxReportedGERANCells INTEGER ::= 6
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Cause ProtocolIE-ID ::= 1
+id-CriticalityDiagnostics ProtocolIE-ID ::= 2
+id-GPS-UTRAN-TRU ProtocolIE-ID ::= 3
+id-InformationExchangeID ProtocolIE-ID ::= 4
+id-InformationExchangeObjectType-InfEx-Rprt ProtocolIE-ID ::= 5
+id-InformationExchangeObjectType-InfEx-Rqst ProtocolIE-ID ::= 6
+id-InformationExchangeObjectType-InfEx-Rsp ProtocolIE-ID ::= 7
+id-InformationReportCharacteristics ProtocolIE-ID ::= 8
+id-InformationType ProtocolIE-ID ::= 9
+id-GPS-MeasuredResultsList ProtocolIE-ID ::= 10
+id-MethodType ProtocolIE-ID ::= 11
+id-RefPosition-InfEx-Rqst ProtocolIE-ID ::= 12
+id-RefPosition-InfEx-Rsp ProtocolIE-ID ::= 13
+id-RefPosition-Inf-Rprt ProtocolIE-ID ::= 14
+id-RequestedDataValue ProtocolIE-ID ::= 15
+id-RequestedDataValueInformation ProtocolIE-ID ::= 16
+id-TransactionID ProtocolIE-ID ::= 17
+id-UE-PositionEstimate ProtocolIE-ID ::= 18
+-- WS extension
+id-Unknown-19 ProtocolIE-ID ::= 19
+id-CellId-MeasuredResultsSets ProtocolIE-ID ::= 20
+-- WS extension
+id-Unknown-21 ProtocolIE-ID ::= 21
+id-OTDOA-MeasurementGroup ProtocolIE-ID ::= 22
+id-AccuracyFulfilmentIndicator ProtocolIE-ID ::= 23
+id-HorizontalAccuracyCode ProtocolIE-ID ::= 24
+id-VerticalAccuracyCode ProtocolIE-ID ::= 25
+id-UTDOA-Group ProtocolIE-ID ::= 26
+-- WS extension
+id-Unknown-27 ProtocolIE-ID ::= 27
+id-RequestType ProtocolIE-ID ::= 28
+id-UE-PositioningCapability ProtocolIE-ID ::= 29
+id-UC-id ProtocolIE-ID ::= 30
+id-ResponseTime ProtocolIE-ID ::= 31
+id-PositioningPriority ProtocolIE-ID ::= 32
+id-ClientType ProtocolIE-ID ::= 33
+id-PositioningMethod ProtocolIE-ID ::= 34
+id-UTDOAPositioning ProtocolIE-ID ::= 35
+id-GPSPositioning ProtocolIE-ID ::= 36
+id-OTDOAAssistanceData ProtocolIE-ID ::= 37
+id-Positioning-ResponseTime ProtocolIE-ID ::= 38
+id-EnvironmentCharacterisation ProtocolIE-ID ::= 39
+id-PositionData ProtocolIE-ID ::= 40
+id-IncludeVelocity ProtocolIE-ID ::= 41
+id-VelocityEstimate ProtocolIE-ID ::= 42
+id-rxTimingDeviation768Info ProtocolIE-ID ::= 43
+id-UC-ID-InfEx-Rqst ProtocolIE-ID ::= 44
+id-UE-PositionEstimateInfo ProtocolIE-ID ::= 45
+id-UTRAN-GPSReferenceTime ProtocolIE-ID ::= 46
+id-UTRAN-GPSReferenceTimeResult ProtocolIE-ID ::= 47
+id-UTRAN-GPS-DriftRate ProtocolIE-ID ::= 48
+id-OTDOA-AddMeasuredResultsInfo ProtocolIE-ID ::= 49
+id-GPS-ReferenceLocation ProtocolIE-ID ::= 50
+id-OTDOA-MeasuredResultsSets ProtocolIE-ID ::= 51
+id-rxTimingDeviation384extInfo ProtocolIE-ID ::= 55
+id-ExtendedRoundTripTime ProtocolIE-ID ::= 56
+id-PeriodicPosCalcInfo ProtocolIE-ID ::= 57
+id-PeriodicLocationInfo ProtocolIE-ID ::= 58
+id-AmountOfReporting ProtocolIE-ID ::= 59
+id-MeasInstructionsUsed ProtocolIE-ID ::= 60
+id-RRCstateChange ProtocolIE-ID ::= 61
+id-PeriodicTerminationCause ProtocolIE-ID ::= 62
+id-MeasurementValidity ProtocolIE-ID ::= 63
+id-roundTripTimeInfoWithType1 ProtocolIE-ID ::= 64
+-- WS extension
+id-Unknown-65 ProtocolIE-ID ::= 65
+id-CellIDPositioning ProtocolIE-ID ::= 66
+id-AddMeasurementInfo ProtocolIE-ID ::= 67
+id-Extended-RNC-ID ProtocolIE-ID ::= 68
+id-GANSS-CommonAssistanceData ProtocolIE-ID ::= 69
+id-GANSS-GenericAssistanceDataList ProtocolIE-ID ::= 70
+id-GANSS-MeasuredResultsList ProtocolIE-ID ::= 71
+id-GANSS-UTRAN-TRU ProtocolIE-ID ::= 72
+id-GANSSPositioning ProtocolIE-ID ::= 73
+id-GANSS-PositioningDataSet ProtocolIE-ID ::= 74
+id-GNSS-PositioningMethod ProtocolIE-ID ::= 75
+id-NetworkAssistedGANSSSuport ProtocolIE-ID ::= 76
+id-TUTRANGANSSMeasurementValueInfo ProtocolIE-ID ::= 77
+id-AdditionalGPSAssistDataRequired ProtocolIE-ID ::= 78
+id-AdditionalGanssAssistDataRequired ProtocolIE-ID ::= 79
+id-angleOfArrivalLCR ProtocolIE-ID ::= 80
+id-extendedTimingAdvanceLCR ProtocolIE-ID ::= 81
+id-additionalMeasurementInforLCR ProtocolIE-ID ::= 82
+id-timingAdvanceLCR-R7 ProtocolIE-ID ::= 83
+id-rxTimingDeviationLCR ProtocolIE-ID ::= 84
+id-GPSReferenceTimeUncertainty ProtocolIE-ID ::= 85
+id-GANSS-AddIonoModelReq ProtocolIE-ID ::= 86
+id-GANSS-EarthOrientParaReq ProtocolIE-ID ::= 87
+id-GANSS-Additional-Ionospheric-Model ProtocolIE-ID ::= 88
+id-GANSS-Earth-Orientation-Parameters ProtocolIE-ID ::= 89
+id-GANSS-Additional-Time-Models ProtocolIE-ID ::= 90
+id-GANSS-Additional-Navigation-Models ProtocolIE-ID ::= 91
+id-GANSS-Additional-UTC-Models ProtocolIE-ID ::= 92
+id-GANSS-Auxiliary-Information ProtocolIE-ID ::= 93
+id-GANSS-SBAS-ID ProtocolIE-ID ::= 94
+id-GANSS-SBAS-IDs ProtocolIE-ID ::= 95
+id-GANSS-Signal-IDs ProtocolIE-ID ::= 96
+id-supportGANSSNonNativeADchoices ProtocolIE-ID ::= 97
+id-PositionDataUEbased ProtocolIE-ID ::= 98
+id-ganssCodePhaseAmbiguityExt ProtocolIE-ID ::= 99
+id-ganssIntegerCodePhaseExt ProtocolIE-ID ::= 100
+id-GANSScarrierPhaseRequested ProtocolIE-ID ::= 101
+id-GANSSMultiFreqMeasRequested ProtocolIE-ID ::= 102
+id-ganssReq-AddIonosphericModel ProtocolIE-ID ::= 103
+id-ganssReq-EarthOrientPara ProtocolIE-ID ::= 104
+id-ganssAddNavigationModel-req ProtocolIE-ID ::= 105
+id-ganssAddUTCModel-req ProtocolIE-ID ::= 106
+id-ganssAuxInfo-req ProtocolIE-ID ::= 107
+id-GANSS-AlmanacModelChoice ProtocolIE-ID ::= 108
+id-GANSS-alm-keplerianNAVAlmanac ProtocolIE-ID ::= 109
+id-GANSS-alm-keplerianReducedAlmanac ProtocolIE-ID ::= 110
+id-GANSS-alm-keplerianMidiAlmanac ProtocolIE-ID ::= 111
+id-GANSS-alm-keplerianGLONASS ProtocolIE-ID ::= 112
+id-GANSS-alm-ecefSBASAlmanac ProtocolIE-ID ::= 113
+id-UTRAN-GANSSReferenceTimeResult ProtocolIE-ID ::= 114
+id-GANSS-Reference-Time-Only ProtocolIE-ID ::= 115
+id-GANSS-AddADchoices ProtocolIE-ID ::= 116
+id-OTDOA-ReferenceCellInfo ProtocolIE-ID ::= 117
+id-DGNSS-ValidityPeriod ProtocolIE-ID ::= 118
+id-AzimuthAndElevationLSB ProtocolIE-ID ::= 119
+id-completeAlmanacProvided ProtocolIE-ID ::= 120
+id-GPS-Week-Cycle ProtocolIE-ID ::= 121
+id-GANSS-Day-Cycle ProtocolIE-ID ::= 122
+id-ganss-Delta-T ProtocolIE-ID ::= 123
+id-requestedCellIDGERANMeasurements ProtocolIE-ID ::= 124
+id-CellId-IRATMeasuredResultsSets ProtocolIE-ID ::= 125
+id-IMSI ProtocolIE-ID ::= 126
+id-IMEI ProtocolIE-ID ::= 127
+
+END
diff --git a/epan/dissectors/asn1/pcap/PCAP-Containers.asn b/epan/dissectors/asn1/pcap/PCAP-Containers.asn
new file mode 100644
index 0000000000..fea32ba24d
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/PCAP-Containers.asn
@@ -0,0 +1,153 @@
+--
+-- 3GPP TS 25.453 V11.0.0 (2012-09)
+--
+-- 9.3.7 Container Definitions
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+PCAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) pcap(4) version1 (1) pcap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID,
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM PCAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+PCAP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+PCAP-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
+--
+-- **************************************************************
+
+PCAP-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 {PCAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {PCAP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {PCAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id PCAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality PCAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value PCAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, PCAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {PCAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {PCAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id PCAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality PCAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue PCAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {PCAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {PCAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id PCAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality PCAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value PCAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/epan/dissectors/asn1/pcap/PCAP-IEs.asn b/epan/dissectors/asn1/pcap/PCAP-IEs.asn
new file mode 100644
index 0000000000..3e04f9dafe
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/PCAP-IEs.asn
@@ -0,0 +1,4764 @@
+--
+-- 3GPP TS 25.453 V11.0.0 (2012-09)
+--
+-- 9.3.4 Information Element Definitions
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+PCAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) pcap(4) version1 (1) pcap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxNrOfErrors,
+ maxSat,
+ maxSatAlmanac,
+ maxNrOfLevels,
+ maxNrOfMeasNCell,
+ maxNrOfMeasurements,
+ maxNrOfPoints,
+ maxNrOfExpInfo,
+ maxNrOfSets,
+ maxRateMatching,
+ maxNrOfTFs,
+ maxTTI-count,
+ maxTS-1,
+ maxCCTrCH,
+ maxTF,
+ maxTFC,
+ maxPRACH,
+ maxTrCH,
+ maxTGPS,
+ maxNoOfMeasurements,
+ maxCellMeas,
+ maxNrOfEDPCCH-PO-QUANTSTEPs,
+ maxNrOfRefETFCI-PO-QUANTSTEPs,
+ maxNrOfRefETFCIs,
+ maxSet,
+ maxGANSS,
+ maxGANSSSat,
+ maxGANSSSet,
+ maxSgnType,
+ maxGANSSSatAlmanac,
+ maxGANSSClockMod,
+ maxGANSS-1,
+ maxNrOfIRATMeasurements,
+ maxReportedGERANCells,
+
+
+ id-UTRAN-GPSReferenceTime,
+ id-UTRAN-GPSReferenceTimeResult,
+ id-GPS-UTRAN-TRU,
+ id-UTRAN-GPS-DriftRate,
+ id-OTDOA-AddMeasuredResultsInfo,
+ id-GPS-ReferenceLocation,
+ id-rxTimingDeviation768Info,
+ id-rxTimingDeviation384extInfo,
+ id-MeasurementValidity,
+ id-ExtendedRoundTripTime,
+ id-roundTripTimeInfoWithType1,
+ id-AddMeasurementInfo,
+ id-Extended-RNC-ID,
+ id-GANSS-CommonAssistanceData,
+ id-GANSS-GenericAssistanceDataList,
+ id-GANSS-PositioningDataSet,
+ id-GNSS-PositioningMethod,
+ id-NetworkAssistedGANSSSuport,
+ id-TUTRANGANSSMeasurementValueInfo,
+ id-angleOfArrivalLCR,
+ id-extendedTimingAdvanceLCR,
+ id-additionalMeasurementInforLCR,
+ id-timingAdvanceLCR-R7,
+ id-rxTimingDeviationLCR,
+ id-GPSReferenceTimeUncertainty,
+ id-GANSS-AddIonoModelReq,
+ id-GANSS-EarthOrientParaReq,
+ id-GANSS-Additional-Ionospheric-Model,
+ id-GANSS-Earth-Orientation-Parameters,
+ id-GANSS-Additional-Time-Models,
+ id-GANSS-Additional-Navigation-Models,
+ id-GANSS-Additional-UTC-Models,
+ id-GANSS-Auxiliary-Information,
+ id-GANSS-SBAS-ID,
+ id-GANSS-SBAS-IDs,
+ id-GANSS-Signal-IDs,
+ id-GANSS-alm-keplerianNAVAlmanac,
+ id-GANSS-alm-keplerianReducedAlmanac,
+ id-GANSS-alm-keplerianMidiAlmanac,
+ id-GANSS-alm-keplerianGLONASS,
+ id-GANSS-alm-ecefSBASAlmanac,
+ id-UTRAN-GANSSReferenceTimeResult,
+ id-GANSS-Reference-Time-Only,
+ id-GANSS-AddADchoices,
+ id-supportGANSSNonNativeADchoices,
+ id-PositionDataUEbased,
+ id-ganssCodePhaseAmbiguityExt,
+ id-ganssIntegerCodePhaseExt,
+ id-GANSScarrierPhaseRequested,
+ id-GANSSMultiFreqMeasRequested,
+ id-ganssReq-AddIonosphericModel,
+ id-ganssReq-EarthOrientPara,
+ id-ganssAddNavigationModel-req,
+ id-ganssAddUTCModel-req,
+ id-ganssAuxInfo-req,
+ id-GANSS-AlmanacModelChoice,
+ id-DGNSS-ValidityPeriod,
+ id-AzimuthAndElevationLSB,
+ id-completeAlmanacProvided,
+ id-GPS-Week-Cycle,
+ id-GANSS-Day-Cycle,
+ id-ganss-Delta-T,
+ id-requestedCellIDGERANMeasurements
+
+
+FROM PCAP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TransactionID,
+ TriggeringMessage
+
+FROM PCAP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-Single-Container{},
+ PCAP-PROTOCOL-EXTENSION,
+ PCAP-PROTOCOL-IES
+
+FROM PCAP-Containers;
+
+
+-- **************************************************************
+--
+-- Accuracy Fulfilment Indicator
+--
+-- **************************************************************
+
+AccuracyFulfilmentIndicator ::= ENUMERATED{
+ requested-Accuracy-Fulfilled,
+ requested-Accuracy-Not-Fulfilled,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Additional Method Type
+--
+-- **************************************************************
+
+AdditionalMethodType ::= ENUMERATED {
+ ue-assisted,
+ ue-based,
+ ue-based-preferred-but-ue-assisted-allowed,
+ ue-assisted-preferred-but-ue-based-allowed,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Almanac and Satellite Health SIB
+--
+-- **************************************************************
+
+AlmanacAndSatelliteHealthSIB ::= SEQUENCE {
+ gpsAlmanacAndSatelliteHealth GPS-AlmanacAndSatelliteHealth,
+ satMask BIT STRING (SIZE (1..32)),
+ lsbTOW BIT STRING (SIZE (8)),
+ iE-Extensions ProtocolExtensionContainer { { AlmanacAndSatelliteHealthSIB-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AlmanacAndSatelliteHealthSIB-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Cause IE
+--
+-- **************************************************************
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+CauseRadioNetwork ::= ENUMERATED {
+ invalid-reference-information,
+ information-temporarily-not-available,
+ information-provision-not-supported-for-the-object,
+ position-calculation-error-invalid-GPS-measured-results,
+ ...,
+ position-calculation-error-invalid-CellID-measured-results,
+ position-calculation-error-invalid-OTDOA-measured-results,
+ position-calculation-error-AGPS-positioning-method-not-supported,
+ position-calculation-error-CellID-positioning-method-not-supported,
+ position-calculation-error-OTDOA-positioning-method-not-supported,
+ initial-UE-position-estimate-missing,
+ position-caclulation-error-invalid-UTDOA-measured-results,
+ position-calculation-error-UTDOA-positioning-method-not-supported,
+ position-calculation-error-UTDOA-not-supported-UTRAN-cell,
+ positioning-method-not-supported,
+ loss-of-contact-with-UE,
+ sAS-unable-to-perform-UTDOA-positioning-within-response-time,
+ location-measurement-failure,
+ ue-positioning-error-Not-enough-OTDOA-cells,
+ ue-positioning-error-Not-enough-GPS-Satellites,
+ ue-positioning-error-Reference-Cell-not-serving-cell,
+ ue-positioning-error-Not-Accomplished-GPS-Timing-of-Cell-Frames,
+ ue-positioning-error-Undefined-Error,
+ position-calculation-error-invalid-Galileo-measured-results,
+ position-calculation-error-AGalileo-positioning-method-not-supported,
+ ue-positioning-error-Not-enough-Galileo-Satellites,
+ ue-positioning-error-Not-Accomplished-Galileo-Timing-of-Cell-Frames,
+ ue-positioning-error-Assistance-Data-missing,
+ position-calculation-error-invalid-GLONASS-measured-results,
+ position-calculation-error-invalid-GANSS-measured-results,
+ position-calculation-error-AGANSS-positioning-method-not-supported,
+ ue-positioning-error-Not-enough-GANSS-Satellites,
+ ue-positioning-error-Not-Accomplished-GANSS-Timing-of-Cell-Frames
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseProtocol ::= ENUMERATED {
+ transfer-syntax-error,
+ abstract-syntax-error-reject,
+ abstract-syntax-error-ignore-and-notify,
+ message-not-compatible-with-receiver-state,
+ semantic-error,
+ unspecified,
+ abstract-syntax-error-falsely-constructed-message,
+ ...
+}
+
+
+CauseMisc ::= ENUMERATED {
+ processing-overload,
+ hardware-failure,
+ o-and-m-intervention,
+ unspecified,
+ ...
+}
+
+-- **************************************************************
+--
+-- Cell Id Measured Results Sets
+--
+-- **************************************************************
+
+CellId-MeasuredResultsSets ::= SEQUENCE (SIZE (1..maxNrOfMeasurements)) OF
+ CellId-MeasuredResultsInfoList
+
+CellId-MeasuredResultsInfoList ::= SEQUENCE (SIZE (1..maxNrOfMeasNCell)) OF
+ CellId-MeasuredResultsInfo
+
+CellId-MeasuredResultsInfo ::= SEQUENCE {
+ uC-ID UC-ID,
+ uTRANAccessPointPositionAltitude UTRANAccessPointPositionAltitude,
+ ue-PositionEstimate UE-PositionEstimate OPTIONAL,
+ roundTripTimeInfo RoundTripTimeInfo OPTIONAL, -- FDD only
+ rxTimingDeviationInfo RxTimingDeviationInfo OPTIONAL, -- 3.84Mcps TDD only
+ rxTimingDeviationLCRInfo RxTimingDeviationLCRInfo OPTIONAL, -- 1.28Mcps TDD only
+ pathloss Pathloss OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellId-MeasuredResultsInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CellId-MeasuredResultsInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-rxTimingDeviation768Info CRITICALITY reject EXTENSION RxTimingDeviation768Info PRESENCE optional }| -- 7.68Mcps TDD only
+ { ID id-rxTimingDeviation384extInfo CRITICALITY reject EXTENSION RxTimingDeviation384extInfo PRESENCE optional }| -- 3.84Mcps TDD only
+ { ID id-roundTripTimeInfoWithType1 CRITICALITY ignore EXTENSION RoundTripTimeInfoWithType1 PRESENCE optional }| -- FDD only
+ { ID id-AddMeasurementInfo CRITICALITY ignore EXTENSION AddMeasurementInfo PRESENCE optional }|
+ { ID id-angleOfArrivalLCR CRITICALITY ignore EXTENSION AngleOfArrivalLCR PRESENCE optional },
+ ...
+}
+
+RoundTripTimeInfo ::= SEQUENCE {
+ ue-RxTxTimeDifferenceType2 UE-RxTxTimeDifferenceType2,
+ ue-PositioningMeasQuality UE-PositioningMeasQuality,
+ roundTripTime RoundTripTime,
+ iE-Extensions ProtocolExtensionContainer { { RoundTripTimeInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RoundTripTimeInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ExtendedRoundTripTime CRITICALITY ignore EXTENSION ExtendedRoundTripTime PRESENCE optional }, -- FDD only
+ ...
+}
+
+RoundTripTimeInfoWithType1 ::= SEQUENCE {
+ ue-RxTxTimeDifferenceType1 UE-RxTxTimeDifferenceType1,
+ roundTripTime RoundTripTime,
+ extendedRoundTripTime ExtendedRoundTripTime OPTIONAL, -- FDD only
+ iE-Extensions ProtocolExtensionContainer { { RoundTripTimeInfoWithType1-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RoundTripTimeInfoWithType1-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-RxTxTimeDifferenceType2 ::= INTEGER (0..8191)
+
+UE-RxTxTimeDifferenceType1 ::= INTEGER (768..1280)
+
+UE-PositioningMeasQuality ::= SEQUENCE {
+ stdResolution BIT STRING (SIZE (2)),
+ numberOfMeasurements BIT STRING (SIZE (3)),
+ stdOfMeasurements BIT STRING (SIZE (5)),
+ iE-Extensions ProtocolExtensionContainer { { UE-PositioningMeasQuality-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-PositioningMeasQuality-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RoundTripTime ::= INTEGER (0..32766)
+-- Actual value RoundTripTime = IE value * 0.0625 + 876
+
+ExtendedRoundTripTime ::= INTEGER (32767..103041)
+-- Actual value RoundTripTime = IE value * 0.0625 + 876
+
+UTRANAccessPointPositionAltitude ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ ga-AltitudeAndDirection GA-AltitudeAndDirection OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UTRANAccessPointPositionAltitude-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UTRANAccessPointPositionAltitude-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RxTimingDeviationInfo ::= SEQUENCE {
+ rxTimingDeviation RxTimingDeviation,
+ timingAdvance TimingAdvance,
+ iE-Extensions ProtocolExtensionContainer { { RxTimingDeviationInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RxTimingDeviationInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RxTimingDeviationLCRInfo ::= SEQUENCE {
+ rxTimingDeviationLCR RxTimingDeviationLCR,
+ timingAdvanceLCR TimingAdvanceLCR,
+ -- The content of this IE shall be ignored if the id-extendedTimingAdvanceLCR IE is present.
+ iE-Extensions ProtocolExtensionContainer { { RxTimingDeviationLCRInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RxTimingDeviationLCRInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+{ ID id-extendedTimingAdvanceLCR CRITICALITY ignore EXTENSION ExtendedTimingAdvanceLCR PRESENCE optional }, -- 1.28Mcps TDD only
+ ...
+}
+
+ExtendedTimingAdvanceLCR ::= INTEGER (2048..8191)
+
+RxTimingDeviation768Info ::= SEQUENCE {
+ rxTimingDeviation768 RxTimingDeviation768,
+ timingAdvance768 TimingAdvance768,
+ iE-Extensions ProtocolExtensionContainer { { RxTimingDeviation768Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RxTimingDeviation768Info-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RxTimingDeviation384extInfo ::= SEQUENCE {
+ rxTimingDeviation384ext RxTimingDeviation384ext,
+ timingAdvance384ext TimingAdvance384ext,
+ iE-Extensions ProtocolExtensionContainer { { RxTimingDeviation384extInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RxTimingDeviation384extInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AddMeasurementInfo ::= SEQUENCE {
+ cpich-RSCP CPICH-RSCP OPTIONAL,
+ cpich-EcNo CPICH-EcNo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AddMeasurementInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AddMeasurementInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AngleOfArrivalLCR ::= SEQUENCE {
+ aOA-LCR AOA-LCR,
+ aOA-LCR-Accuracy-Class AOA-LCR-Accuracy-Class,
+ iE-Extensions ProtocolExtensionContainer { { AngleOfArrivalLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AngleOfArrivalLCR-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RxTimingDeviation ::= INTEGER (0..8191)
+
+RxTimingDeviationLCR ::= INTEGER (0..511)
+
+RxTimingDeviation768 ::= INTEGER (0..65535)
+
+RxTimingDeviation384ext ::= INTEGER (0..32767)
+
+TimingAdvance ::= INTEGER (0..63)
+
+TimingAdvanceLCR ::= INTEGER (0..2047)
+
+TimingAdvance768 ::= INTEGER (0..511)
+
+TimingAdvance384ext ::= INTEGER (0..255)
+
+Pathloss ::= INTEGER (46..158)
+-- Unit: dB; as defined in the Cell measured results IE of TS 25.331 [4]
+
+CPICH-EcNo ::= INTEGER (0..49)
+-- According to CPICH_Ec/No in TS 25.133 [13]
+
+CPICH-RSCP ::= INTEGER (-5..91)
+-- According to CPICH_RSCP in TS 25.133 [13]
+
+AOA-LCR ::= INTEGER (0..719)-- According to mapping in TS 25.123 [14]
+
+AOA-LCR-Accuracy-Class ::= ENUMERATED {
+ a,b,c,d,e,f,g,h, ...}
+
+-- **************************************************************
+--
+-- Cell Id IRAT Measured Results Sets
+--
+-- **************************************************************
+
+CellId-IRATMeasuredResultsSets ::= SEQUENCE (SIZE (1..maxNrOfIRATMeasurements)) OF
+ CellId-IRATMeasuredResultsInfoList
+
+CellId-IRATMeasuredResultsInfoList ::= SEQUENCE {
+ gERAN-MeasuredResultsInfoList GERAN-MeasuredResultsInfoList OPTIONAL,
+ iE-Extenstions ProtocolExtensionContainer { { CellId-IRATMeasuredResultsInfoListExtIEs }} OPTIONAL,
+ ...
+}
+
+CellId-IRATMeasuredResultsInfoListExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GERAN-MeasuredResultsInfoList ::= SEQUENCE (SIZE (1..maxReportedGERANCells)) OF
+ GERAN-MeasuredResultsInfo
+
+GERAN-MeasuredResultsInfo ::= SEQUENCE {
+ gERANCellID GERANCellGlobalID OPTIONAL,
+ gERANPhysicalCellID GERANPhysicalCellID,
+ gSM-RSSI GSM-RSSI,
+ iE-Extenstions ProtocolExtensionContainer { { GERAN-MeasuredResultsInfo-ExtIEs }} OPTIONAL,
+ ...
+}
+
+GERAN-MeasuredResultsInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GERANCellGlobalID ::= SEQUENCE {
+ plmn-Identity PLMN-Identity, --As defined in TS 23.003
+ locationAreaCode BIT STRING (SIZE (16)),
+ cellIdentity BIT STRING (SIZE (16)),
+ iE-Extenstions ProtocolExtensionContainer { { GERANCellGlobalID-ExtIEs }} OPTIONAL,
+ ...
+}
+
+GERANCellGlobalID-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMN-Identity ::= OCTET STRING (SIZE (3))
+
+
+GSM-RSSI ::= INTEGER (0..63)
+
+GERANPhysicalCellID ::= SEQUENCE {
+ bsic GSM-BSIC,
+ arfcn GSM-BCCH-ARFCN
+}
+
+GSM-BSIC ::= SEQUENCE {
+ networkColourCode BIT STRING (SIZE (3)),
+ baseStationColourCode BIT STRING (SIZE (3))
+}
+
+GSM-BCCH-ARFCN ::= INTEGER (0..1023)
+
+-- **************************************************************
+--
+-- Cell-ID Positioning (Position Activation Request Message)
+--
+-- **************************************************************
+
+CellIDPositioning ::= SEQUENCE {
+ requestedCellIDMeasurements RequestedCellIDMeasurements,
+ iE-Extensions ProtocolExtensionContainer { { CellIDPositioning-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CellIDPositioning-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-requestedCellIDGERANMeasurements CRITICALITY reject EXTENSION RequestedCellIDGERANMeasurements PRESENCE optional },
+ ...
+}
+
+RequestedCellIDMeasurements ::= CHOICE {
+ fdd SEQUENCE {
+ roundTripTimeInfoWanted BOOLEAN,
+ pathlossWanted BOOLEAN,
+ roundTripTimeInfoWithType1Wanted BOOLEAN,
+ cpichRSCPWanted BOOLEAN,
+ cpicEcNoWanted BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { { RequestedCellIDMeasurementsFDD-ExtIEs } } OPTIONAL,
+ ...
+ },
+ tdd SEQUENCE {
+ rxTimingDeviationInfoWanted BOOLEAN,
+ pathlossWanted BOOLEAN,
+ rxTimingDeviationLCRInfoWanted BOOLEAN,
+ rxTimingDeviation768InfoWanted BOOLEAN,
+ rxTimingDeviation384extInfoWanted BOOLEAN,
+ angleOfArrivalLCRWanted BOOLEAN,
+ timingAdvanceLCRWanted BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { { RequestedCellIDMeasurementsTDD-ExtIEs } } OPTIONAL,
+ ...
+ },
+ ...
+}
+
+RequestedCellIDMeasurementsFDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RequestedCellIDMeasurementsTDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RequestedCellIDGERANMeasurements ::= SEQUENCE {
+ rSSIMeasurementsWanted BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { { RequestedCellIDGERANMeasurements-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RequestedCellIDGERANMeasurements-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Client Type
+--
+-- **************************************************************
+
+ClientType ::= ENUMERATED {
+ emergency-services,
+ value-added-services,
+ plmn-operator-services,
+ lawful-intercept-services,
+ plmn-operator-broadcast-services,
+ plmn-operator-oam,
+ plmn-operator-anonymous-statistics,
+ plmn-operator-target-ms-service-support,
+ ...
+}
+-- **************************************************************
+--
+-- CriticalityDiagnostics
+--
+-- **************************************************************
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ transactionID TransactionID OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber CriticalityDiagnosticsRepetition OPTIONAL,
+ messageStructure MessageStructure OPTIONAL,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnosticsRepetition ::= INTEGER (0..255)
+
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- **************************************************************
+--
+-- DGPSCorrections
+--
+-- **************************************************************
+
+
+DGPSCorrections ::= SEQUENCE {
+ gps-TOW-sec INTEGER (0..604799),
+ statusHealth DiffCorrectionStatus,
+ dgps-CorrectionSatInfoList DGPS-CorrectionSatInfoList OPTIONAL,
+ -- not included if satelliteHealth is equal to noData or invalidData
+ iE-Extensions ProtocolExtensionContainer { { DGPSCorrections-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGPSCorrections-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+DiffCorrectionStatus ::= ENUMERATED {
+ udre-1-0, udre-0-75, udre-0-5, udre-0-3,
+ udre-0-2, udre-0-1, noData, invalidData }
+
+DGPS-CorrectionSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ DGPS-CorrectionSatInfo
+
+DGPS-CorrectionSatInfo ::= SEQUENCE {
+ satID INTEGER (0..63),
+ iode INTEGER (0..255),
+ udre UDRE,
+ prc PRC,
+ rrc RRC,
+ iE-Extensions ProtocolExtensionContainer { { DGPS-CorrectionSatInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGPS-CorrectionSatInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-DGNSS-ValidityPeriod CRITICALITY ignore EXTENSION DGNSS-ValidityPeriod PRESENCE optional},
+ ...
+}
+
+DGNSS-ValidityPeriod ::= SEQUENCE {
+ udreGrowthRate UDREGrowthRate,
+ udreValidityTime UDREValidityTime,
+ iE-Extensions ProtocolExtensionContainer { { DGNSS-ValidityPeriod-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGNSS-ValidityPeriod-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UDRE ::= ENUMERATED {
+ lessThan1,
+ between1-and-4,
+ between4-and-8,
+ over8 }
+
+UDREGrowthRate ::= ENUMERATED {
+ growth-1-point-5,
+ growth-2,
+ growth-4,
+ growth-6,
+ growth-8,
+ growth-10,
+ growth-12,
+ growth-16 }
+
+UDREValidityTime ::= ENUMERATED {
+ val-20sec,
+ val-40sec,
+ val-80sec,
+ val-160sec,
+ val-320sec,
+ val-640sec,
+ val-1280sec,
+ val-2560sec }
+
+PRC ::= INTEGER (-2047..2047)
+
+RRC ::= INTEGER (-127..127)
+
+-- **************************************************************
+--
+-- IMEI, IMSI
+--
+-- **************************************************************
+
+-- IMEI
+
+IMEI ::= OCTET STRING (SIZE (3..8))
+
+-- IMSI
+
+IMSI ::= OCTET STRING (SIZE (8))
+
+
+-- **************************************************************
+--
+-- UE-PositionEstimate (i.e., Geographical Area)
+--
+-- **************************************************************
+
+-- UE-PositionEstimate is based on Geographical Area Description in 23.032
+
+UE-PositionEstimate ::= 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 PCAP-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..100),
+ iE-Extensions ProtocolExtensionContainer { { GA-EllipsoidArc-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-EllipsoidArc-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Point ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-Point-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitude ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitude-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitude-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ uncertaintyAltitude INTEGER (0..127),
+ confidence INTEGER (0..100),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ uncertaintyCode INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ ...}
+
+GA-PointWithUnCertainty-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ confidence INTEGER (0..100),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithUnCertaintyEllipse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Polygon-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Polygon-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-UncertaintyEllipse ::= SEQUENCE {
+ uncertaintySemi-major INTEGER (0..127),
+ uncertaintySemi-minor INTEGER (0..127),
+ orientationOfMajorAxis INTEGER (0..89),
+ ...
+}
+
+-- **************************************************************
+--
+-- UE-PositionEstimateInfo
+--
+-- **************************************************************
+
+UE-PositionEstimateInfo ::= SEQUENCE {
+ referenceTimeChoice ReferenceTimeChoice,
+ ue-positionEstimate UE-PositionEstimate,
+ iE-Extensions ProtocolExtensionContainer { { UE-PositionEstimateInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-PositionEstimateInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GPSReferenceTimeUncertainty CRITICALITY ignore EXTENSION GPSReferenceTimeUncertainty PRESENCE optional}|
+ {ID id-PositionDataUEbased CRITICALITY ignore EXTENSION PositionDataUEbased PRESENCE optional},
+ ...
+}
+
+ReferenceTimeChoice ::= CHOICE {
+ utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult,
+ gps-ReferenceTimeOnly INTEGER (0..604799999, ...),
+ cell-Timing Cell-Timing,
+ ... ,
+ extension-ReferenceTimeChoice Extension-ReferenceTimeChoice
+}
+
+Extension-ReferenceTimeChoice ::= ProtocolIE-Single-Container {{ Extension-ReferenceTimeChoice-IE }}
+
+Extension-ReferenceTimeChoice-IE PCAP-PROTOCOL-IES ::= {
+ { ID id-UTRAN-GANSSReferenceTimeResult CRITICALITY ignore TYPE UTRAN-GANSSReferenceTimeResult PRESENCE mandatory}|
+ { ID id-GANSS-Reference-Time-Only CRITICALITY ignore TYPE GANSS-Reference-Time-Only PRESENCE mandatory}
+
+}
+
+
+Cell-Timing ::= SEQUENCE {
+ sfn INTEGER (0..4095),
+ uC-ID UC-ID,
+ iE-Extensions ProtocolExtensionContainer { { Cell-Timing-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+Cell-Timing-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Reference-Time-Only ::= SEQUENCE {
+ ganssTODmsec INTEGER (0..3599999),
+ ganssTimeID GANSSID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-Reference-Time-Only-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Reference-Time-Only-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PositionDataUEbased ::= SEQUENCE {
+ positionData BIT STRING (SIZE(16)),
+ iE-Extensions ProtocolExtensionContainer { { PositionDataUEbased-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PositionDataUEbased-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************
+--
+-- Position Data
+--
+-- **************************************************
+
+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 PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-PositioningDataSet CRITICALITY ignore EXTENSION GANSS-PositioningDataSet PRESENCE optional },
+ ...
+}
+
+GANSS-PositioningDataSet ::= SEQUENCE(SIZE(1..maxGANSSSet)) OF GANSS-PositioningMethodAndUsage
+
+GANSS-PositioningMethodAndUsage ::= OCTET STRING (SIZE(1))
+
+PositioningDataDiscriminator ::= BIT STRING (SIZE(4))
+
+PositioningDataSet ::= SEQUENCE(SIZE(1..maxSet)) OF PositioningMethodAndUsage
+
+PositioningMethodAndUsage ::= OCTET STRING (SIZE(1))
+
+-- **************************************************************
+--
+-- GPS-AcquisitionAssistance:
+--
+-- **************************************************************
+
+
+GPS-AcquisitionAssistance ::= SEQUENCE {
+ gps-TOW-1msec INTEGER (0..604799999),
+ satelliteInformationList AcquisitionSatInfoList,
+ iE-Extensions ProtocolExtensionContainer { { GPS-AcquisitionAssistance-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-AcquisitionAssistance-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-UTRAN-GPSReferenceTime CRITICALITY ignore EXTENSION UTRAN-GPSReferenceTime PRESENCE optional} |
+ {ID id-GPSReferenceTimeUncertainty CRITICALITY ignore EXTENSION GPSReferenceTimeUncertainty PRESENCE optional} ,
+ ...
+}
+
+AcquisitionSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ AcquisitionSatInfo
+
+AcquisitionSatInfo ::= SEQUENCE {
+ satID INTEGER (0..63),
+ doppler0thOrder INTEGER (-2048..2047),
+ extraDopplerInfo ExtraDopplerInfo OPTIONAL,
+ codePhase INTEGER (0..1022),
+ integerCodePhase INTEGER (0..19),
+ gps-BitNumber INTEGER (0..3),
+ codePhaseSearchWindow CodePhaseSearchWindow,
+ azimuthAndElevation AzimuthAndElevation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AcquisitionSatInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AcquisitionSatInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExtraDopplerInfo ::= SEQUENCE {
+ doppler1stOrder INTEGER (-42..21),
+ dopplerUncertainty DopplerUncertainty,
+ iE-Extensions ProtocolExtensionContainer { { ExtraDopplerInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ExtraDopplerInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DopplerUncertainty ::= ENUMERATED {
+ hz12-5, hz25, hz50, hz100, hz200, ...}
+
+CodePhaseSearchWindow ::= ENUMERATED {
+ w1023, w1, w2, w3, w4, w6, w8,
+ w12, w16, w24, w32, w48, w64,
+ w96, w128, w192 }
+
+AzimuthAndElevation ::= SEQUENCE {
+ azimuth INTEGER (0..31),
+ elevation INTEGER (0..7),
+ iE-Extensions ProtocolExtensionContainer { { AzimuthAndElevation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AzimuthAndElevation-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-AzimuthAndElevationLSB CRITICALITY ignore EXTENSION AzimuthAndElevationLSB PRESENCE optional},
+ ...
+}
+
+AzimuthAndElevationLSB ::= SEQUENCE {
+ azimuthLSB INTEGER (0..15),
+ elevationLSB INTEGER (0..15),
+ iE-Extensions ProtocolExtensionContainer { { AzimuthAndElevationLSB-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AzimuthAndElevationLSB-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- GANSS Elements
+--
+-- **************************************************************
+
+AuxInfoGANSS-ID1 ::= SEQUENCE (SIZE(1.. maxGANSSSat)) OF AuxInfoGANSS-ID1-element
+
+AuxInfoGANSS-ID1-element ::= SEQUENCE {
+ svID INTEGER(0..63),
+ signalsAvailable BIT STRING (SIZE(8)),
+ ie-Extensions ProtocolExtensionContainer { { AuxInfoGANSS-ID1-element-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AuxInfoGANSS-ID1-element-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AuxInfoGANSS-ID3 ::= SEQUENCE (SIZE(1.. maxGANSSSat)) OF AuxInfoGANSS-ID3-element
+
+AuxInfoGANSS-ID3-element ::= SEQUENCE {
+ svID INTEGER(0..63),
+ signalsAvailable BIT STRING (SIZE(8)),
+ channelNumber INTEGER (-7..13),
+ ie-Extensions ProtocolExtensionContainer { { AuxInfoGANSS-ID3-element-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AuxInfoGANSS-ID3-element-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CNAVclockModel ::= SEQUENCE {
+ cnavToc BIT STRING (SIZE (11)),
+ cnavTop BIT STRING (SIZE (11)),
+ cnavURA0 BIT STRING (SIZE (5)),
+ cnavURA1 BIT STRING (SIZE (3)),
+ cnavURA2 BIT STRING (SIZE (3)),
+ cnavAf2 BIT STRING (SIZE (10)),
+ cnavAf1 BIT STRING (SIZE (20)),
+ cnavAf0 BIT STRING (SIZE (26)),
+ cnavTgd BIT STRING (SIZE (13)),
+ cnavISCl1cp BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl1cd BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl1ca BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl2c BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl5i5 BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl5q5 BIT STRING (SIZE (13)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { CNAVclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CNAVclockModel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DeltaUT1 ::= SEQUENCE {
+ b1 BIT STRING (SIZE(11)),
+ b2 BIT STRING (SIZE(10)),
+ ie-Extensions ProtocolExtensionContainer { { DeltaUT1-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DeltaUT1-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGANSS-Corrections ::= SEQUENCE {
+ dGANSS-ReferenceTime INTEGER(0..119),
+ dGANSS-Information DGANSS-Information,
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-Corrections-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSS-Corrections-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGANSS-Information ::= SEQUENCE (SIZE (1..maxSgnType)) OF DGANSS-InformationItem
+
+DGANSS-InformationItem ::= SEQUENCE {
+ gANSS-SignalId GANSS-SignalID OPTIONAL,
+ gANSS-StatusHealth GANSS-StatusHealth,
+ -- The following IE shall be present if the Status/Health IE value is not equal to "no data" or "invalid data"
+ dGANSS-SignalInformation DGANSS-SignalInformation OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-InformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSS-InformationItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGANSS-SignalInformation ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF DGANSS-SignalInformationItem
+
+DGANSS-SignalInformationItem ::= SEQUENCE {
+ satId INTEGER(0..63),
+ gANSS-iod BIT STRING (SIZE (10)),
+ udre UDRE,
+ ganss-prc INTEGER(-2047..2047),
+ ganss-rrc INTEGER(-127..127),
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-SignalInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSS-SignalInformationItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-DGNSS-ValidityPeriod CRITICALITY ignore EXTENSION DGNSS-ValidityPeriod PRESENCE optional},
+ ...
+}
+
+GANSS-AddClockModels ::= CHOICE {
+ navClockModel NAVclockModel,
+ cnavClockModel CNAVclockModel,
+ glonassClockModel GLONASSclockModel,
+ sbasClockModel SBASclockModel,
+ ...
+ }
+
+GANSS-AddOrbitModels ::= CHOICE {
+ navKeplerianSet NavModel-NAVKeplerianSet,
+ cnavKeplerianSet NavModel-CNAVKeplerianSet,
+ glonassECEF NavModel-GLONASSecef,
+ sbasECEF NavModel-SBASecef,
+ ...
+ }
+
+GANSS-Additional-Ionospheric-Model ::= SEQUENCE {
+ dataID BIT STRING (SIZE(2)),
+ alpha-beta-parameters GPS-Ionospheric-Model,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Additional-Ionospheric-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Additional-Ionospheric-Model-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Additional-Navigation-Models ::= SEQUENCE {
+ non-broadcastIndication ENUMERATED { true } OPTIONAL,
+ ganssSatInfoNavList Ganss-Sat-Info-AddNavList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Additional-Navigation-Models-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Additional-Navigation-Models-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Additional-Time-Models ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF GANSS-Time-Model
+
+GANSS-Additional-UTC-Models ::= CHOICE {
+ utcModel1 UTCmodelSet1,
+ utcModel2 UTCmodelSet2,
+ utcModel3 UTCmodelSet3,
+ ...
+}
+
+GANSS-ALM-ECEFsbasAlmanacSet ::= SEQUENCE {
+ sat-info-SBASecefList GANSS-SAT-Info-Almanac-SBASecefList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-ECEFsbasAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-ECEFsbasAlmanacSet-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-ALM-GlonassAlmanacSet ::= SEQUENCE {
+ sat-info-GLOkpList GANSS-SAT-Info-Almanac-GLOkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-GlonassAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-GlonassAlmanacSet-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-ALM-MidiAlmanacSet ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-MIDIkpList GANSS-SAT-Info-Almanac-MIDIkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-MidiAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-MidiAlmanacSet-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-ALM-NAVKeplerianSet ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-NAVkpList GANSS-SAT-Info-Almanac-NAVkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-NAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-NAVKeplerianSet-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-ALM-ReducedKeplerianSet ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-REDkpList GANSS-SAT-Info-Almanac-REDkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-ReducedKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-ReducedKeplerianSet-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AlmanacAndSatelliteHealth ::= SEQUENCE {
+ weekNumber INTEGER(0..255),
+ gANSS-AlmanacModel GANSS-AlmanacModel,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-AlmanacAndSatelliteHealth-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-AlmanacAndSatelliteHealth-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-completeAlmanacProvided CRITICALITY ignore EXTENSION CompleteAlmanacProvided PRESENCE optional},
+ ...
+}
+
+GANSS-AlmanacModel ::= CHOICE {
+ gANSS-keplerianParameters GANSS-KeplerianParametersAlm,
+ ...,
+ extension-GANSS-AlmanacModel Extension-GANSS-AlmanacModel
+}
+
+Extension-GANSS-AlmanacModel ::= ProtocolIE-Single-Container {{ Extension-GANSS-AlmanacModel-IE }}
+
+Extension-GANSS-AlmanacModel-IE PCAP-PROTOCOL-IES ::= {
+ { ID id-GANSS-alm-keplerianNAVAlmanac CRITICALITY ignore TYPE GANSS-ALM-NAVKeplerianSet PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianReducedAlmanac CRITICALITY ignore TYPE GANSS-ALM-ReducedKeplerianSet PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianMidiAlmanac CRITICALITY ignore TYPE GANSS-ALM-MidiAlmanacSet PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianGLONASS CRITICALITY ignore TYPE GANSS-ALM-GlonassAlmanacSet PRESENCE mandatory}|
+ { ID id-GANSS-alm-ecefSBASAlmanac CRITICALITY ignore TYPE GANSS-ALM-ECEFsbasAlmanacSet PRESENCE mandatory}
+}
+
+
+GANSS-Auxiliary-Information ::= CHOICE {
+ ganssID1 AuxInfoGANSS-ID1, -- This choice may only be present if GANSS ID indicates Modernized GPS
+ ganssID3 AuxInfoGANSS-ID3, -- This choice may only be present if GANSS ID indicates GLONASS
+ ...
+}
+
+GANSS-AzimuthAndElevation ::= SEQUENCE {
+ azimuth INTEGER(0..31),
+ -- applicable range of elevation is 0..7. Values 8-75 shall not be used.
+ elevation INTEGER(0..75),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-AzimuthAndElevation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-AzimuthAndElevation-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-AzimuthAndElevationLSB CRITICALITY ignore EXTENSION AzimuthAndElevationLSB PRESENCE optional},
+ ...
+}
+
+GANSS-Clock-Model ::= SEQUENCE (SIZE (1..maxGANSSClockMod)) OF GANSS-SatelliteClockModelItem
+
+GANSS-CommonAssistanceData ::= SEQUENCE {
+ ganss-Reference-Time GANSS-Reference-Time OPTIONAL,
+ ganss-Ionospheric-Model GANSS-Ionospheric-Model OPTIONAL,
+ ganss-Reference-Location GANSS-Reference-Location OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-CommonAssistanceData-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-CommonAssistanceData-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-Additional-Ionospheric-Model CRITICALITY ignore EXTENSION GANSS-Additional-Ionospheric-Model PRESENCE optional }|
+ { ID id-GANSS-Earth-Orientation-Parameters CRITICALITY ignore EXTENSION GANSS-Earth-Orientation-Parameters PRESENCE optional },
+ ...
+}
+
+
+GANSS-Data-Bit-Assistance ::= SEQUENCE {
+ ganssTod INTEGER (0..59,...),
+ dataBitAssistancelist GANSS-DataBitAssistanceList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Data-Bit-Assistance-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-DataBitAssistanceList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSS-DataBitAssistanceItem
+
+GANSS-DataBitAssistanceItem ::= SEQUENCE {
+ satId INTEGER(0..63),
+ dataBitAssistanceSgnList GANSS-DataBitAssistanceSgnList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-DataBitAssistanceItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-DataBitAssistanceItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-DataBitAssistanceSgnList ::= SEQUENCE (SIZE (1..maxSgnType)) OF GANSS-DataBitAssistanceSgnItem
+
+
+GANSS-DataBitAssistanceSgnItem ::= SEQUENCE {
+ ganss-SignalId GANSS-SignalID,
+ ganssDataBits BIT STRING (SIZE (1..1024)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-DataBitAssistanceSgnItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-DataBitAssistanceSgnItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Earth-Orientation-Parameters ::= SEQUENCE {
+ teop BIT STRING (SIZE (16)),
+ pmX BIT STRING (SIZE (21)),
+ pmXdot BIT STRING (SIZE (15)),
+ pmY BIT STRING (SIZE (21)),
+ pmYdot BIT STRING (SIZE (15)),
+ deltaUT1 BIT STRING (SIZE (31)),
+ deltaUT1dot BIT STRING (SIZE (19)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Earth-Orientation-Parameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Earth-Orientation-Parameters-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-ExtraDoppler ::= SEQUENCE {
+ dopplerFirstOrder INTEGER(-42..21),
+ dopplerUncertainty ENUMERATED{dH40,dH20,dH10,dH5,dH2-5},
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ExtraDoppler-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ExtraDoppler-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-GenericAssistanceDataList ::= SEQUENCE (SIZE (1..maxGANSS)) OF GANSSGenericAssistanceData
+
+GANSSGenericAssistanceData ::= SEQUENCE{
+ ganssId GANSSID OPTIONAL,
+ ganss-Real-Time-Integrity GANSS-Real-Time-Integrity OPTIONAL,
+ ganss-DataBitAssistance GANSS-Data-Bit-Assistance OPTIONAL,
+ dganss-Corrections DGANSS-Corrections OPTIONAL,
+ ganss-AlmanacAndSatelliteHealth GANSS-AlmanacAndSatelliteHealth OPTIONAL,
+ ganss-ReferenceMeasurementInfo GANSS-ReferenceMeasurementInfo OPTIONAL,
+ ganss-UTC-Model GANSS-UTC-Model OPTIONAL,
+ ganss-Time-Model GANSS-Time-Model OPTIONAL,
+ ganss-Navigation-Model GANSS-Navigation-Model OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSSGenericAssistance-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSSGenericAssistance-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-Additional-Time-Models CRITICALITY ignore EXTENSION GANSS-Additional-Time-Models PRESENCE optional }|
+ { ID id-GANSS-Additional-Navigation-Models CRITICALITY ignore EXTENSION GANSS-Additional-Navigation-Models PRESENCE optional }|
+ { ID id-GANSS-Additional-UTC-Models CRITICALITY ignore EXTENSION GANSS-Additional-UTC-Models PRESENCE optional }|
+ { ID id-GANSS-Auxiliary-Information CRITICALITY ignore EXTENSION GANSS-Auxiliary-Information PRESENCE optional }|
+ -- the following IE shall be present if 'GANSSID' in 'GANSSGenericAssistanceData' is '0' (SBAS)
+ { ID id-GANSS-SBAS-ID CRITICALITY ignore EXTENSION GANSS-SBAS-ID PRESENCE optional },
+ ...
+}
+
+GANSS-GenericMeasurementInfo ::= SEQUENCE(SIZE(1..maxGANSS)) OF SEQUENCE {
+ ganssId GANSSID OPTIONAL,
+ ganssMeasurementSignalList GANSSMeasurementSignalList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-GenericMeasurementInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-GenericMeasurementInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSSID ::= SEQUENCE {
+ ganss-ID INTEGER(0..7),
+ ie-Extensions ProtocolExtensionContainer { { GANSSID-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSSID-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSSMeasurementSignalList ::= SEQUENCE (SIZE (1..maxSgnType)) OF SEQUENCE {
+ ganssSignalId GANSS-SignalID OPTIONAL,
+ ganssCodePhaseAmbiguity INTEGER (0..31) OPTIONAL,
+ ganssMeasurementParameters GANSS-MeasurementParameters,
+ ie-Extensions ProtocolExtensionContainer { { GANSSMeasurementSignalList-ExtIEs } } OPTIONAL,
+ ...
+
+}
+
+GANSSMeasurementSignalList-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-ganssCodePhaseAmbiguityExt CRITICALITY ignore EXTENSION GanssCodePhaseAmbiguityExt PRESENCE optional},
+ ...
+}
+
+GanssCodePhaseAmbiguityExt ::= SEQUENCE {
+ ganssCodePhaseAmbiguity-ext INTEGER (32..127),
+ ie-Extensions ProtocolExtensionContainer { { GanssCodePhaseAmbiguityExt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GanssCodePhaseAmbiguityExt-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-Ionospheric-Model ::= SEQUENCE {
+ alpha-zero-ionos BIT STRING (SIZE (12)),
+ alpha-one-ionos BIT STRING (SIZE (12)),
+ alpha-two-ionos BIT STRING (SIZE (12)),
+ gANSS-IonosphereRegionalStormFlags GANSS-IonosphereRegionalStormFlags OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Ionospheric-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Ionospheric-Model-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-IonosphereRegionalStormFlags ::= SEQUENCE {
+ storm-flag-one BOOLEAN,
+ storm-flag-two BOOLEAN,
+ storm-flag-three BOOLEAN,
+ storm-flag-four BOOLEAN,
+ storm-flag-five BOOLEAN,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-IonosphereRegionalStormFlags-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-IonosphereRegionalStormFlags-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-KeplerianParametersAlm ::= SEQUENCE {
+ t-oa INTEGER(0..255),
+ iod-a INTEGER(0..3),
+ gANSS-SatelliteInformationKP GANSS-SatelliteInformationKP,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-KeplerianParametersAlm-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-KeplerianParametersAlm-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-KeplerianParametersOrb ::= SEQUENCE {
+ toe-nav BIT STRING (SIZE (14)),
+ ganss-omega-nav BIT STRING (SIZE (32)),
+ delta-n-nav BIT STRING (SIZE (16)),
+ m-zero-nav BIT STRING (SIZE (32)),
+ omegadot-nav BIT STRING (SIZE (24)),
+ ganss-e-nav BIT STRING (SIZE (32)),
+ idot-nav BIT STRING (SIZE (14)),
+ a-sqrt-nav BIT STRING (SIZE (32)),
+ i-zero-nav BIT STRING (SIZE (32)),
+ omega-zero-nav BIT STRING (SIZE (32)),
+ c-rs-nav BIT STRING (SIZE (16)),
+ c-is-nav BIT STRING (SIZE (16)),
+ c-us-nav BIT STRING (SIZE (16)),
+ c-rc-nav BIT STRING (SIZE (16)),
+ c-ic-nav BIT STRING (SIZE (16)),
+ c-uc-nav BIT STRING (SIZE (16)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-KeplerianParametersOrb-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-KeplerianParametersOrb-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-MeasurementParameters ::= SEQUENCE(SIZE(1..maxGANSSSat)) OF GANSS-MeasurementParametersItem
+
+GANSS-MeasurementParametersItem ::= SEQUENCE {
+ satId INTEGER(0..63),
+ cToNzero INTEGER(0..63),
+ multipathIndicator ENUMERATED{nM,low,medium,high},
+ carrierQualityIndication BIT STRING(SIZE(2)) OPTIONAL,
+ ganssCodePhase INTEGER(0..2097151),
+ ganssIntegerCodePhase INTEGER(0..63) OPTIONAL,
+ codePhaseRmsError INTEGER(0..63),
+ doppler INTEGER(-32768..32767),
+ adr INTEGER(0..33554431) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-MeasurementParametersItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-MeasurementParametersItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-ganssIntegerCodePhaseExt CRITICALITY ignore EXTENSION GanssIntegerCodePhaseExt PRESENCE optional},
+ ...
+}
+
+GanssIntegerCodePhaseExt ::= SEQUENCE {
+ ganssIntegerCodePhase-ext INTEGER (64..127),
+ ie-Extensions ProtocolExtensionContainer { { GanssIntegerCodePhaseExt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GanssIntegerCodePhaseExt-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-MeasuredResultsList ::= SEQUENCE (SIZE (1..maxNrOfSets)) OF GANSS-MeasuredResults
+
+GANSS-MeasuredResults ::= SEQUENCE {
+ referenceTime CHOICE {
+ utranReferenceTime UTRAN-GANSSReferenceTimeUL,
+ ganssReferenceTimeOnly GANSS-ReferenceTimeOnly,
+ ...
+ },
+ ganssGenericMeasurementInfo GANSS-GenericMeasurementInfo,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-MeasuredResults-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-MeasuredResults-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Navigation-Model ::= SEQUENCE {
+ non-broadcastIndication ENUMERATED{true} OPTIONAL,
+ ganssSatInfoNav GANSS-Sat-Info-Nav,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Navigation-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Navigation-Model-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Orbit-Model ::= CHOICE {
+ gANSS-keplerianParameters GANSS-KeplerianParametersOrb,
+ ...
+}
+
+GANSS-Real-Time-Integrity ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSS-RealTimeInformationItem
+
+GANSS-RealTimeInformationItem ::= SEQUENCE {
+ bad-ganss-satId INTEGER(0..63),
+ bad-ganss-signalId BIT STRING(SIZE(8)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-RealTimeInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-RealTimeInformationItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Reference-Location ::= SEQUENCE {
+ ue-PositionEstimate UE-PositionEstimate,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-Reference-Location-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Reference-Location-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+GANSS-ReferenceMeasurementInfo ::= SEQUENCE {
+ ganssSignalId GANSS-SignalID OPTIONAL,
+ satelliteInformation GANSS-SatelliteInformation,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ReferenceMeasurementInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ReferenceMeasurementInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Reference-Time ::= SEQUENCE {
+ ganssDay INTEGER(0..8191) OPTIONAL,
+ ganssTod INTEGER(0..86399),
+ ganssTodUncertainty INTEGER(0..127) OPTIONAL,
+ ganssTimeId GANSSID OPTIONAL,
+ utran-ganssreferenceTime UTRAN-GANSSReferenceTimeDL OPTIONAL,
+ tutran-ganss-driftRate TUTRAN-GANSS-DriftRate OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Reference-Time-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Reference-Time-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSS-Day-Cycle CRITICALITY ignore EXTENSION GANSS-Day-Cycle PRESENCE optional},
+ ...
+}
+
+GANSS-Day-Cycle ::= INTEGER(0..7)
+
+GANSS-ReferenceTimeOnly ::= SEQUENCE {
+ gANSS-tod INTEGER(0..3599999),
+ gANSS-timeId GANSSID OPTIONAL,
+ gANSS-TimeUncertainty INTEGER(0..127) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ReferenceTimeOnly-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ReferenceTimeOnly-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SatelliteClockModelItem ::= SEQUENCE {
+ t-oc BIT STRING (SIZE(14)),
+ a-i2 BIT STRING (SIZE(12)),
+ a-i1 BIT STRING (SIZE(18)),
+ a-i0 BIT STRING (SIZE(28)),
+ t-gd BIT STRING (SIZE(10)) OPTIONAL,
+ model-id INTEGER(0..3) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SatelliteClockModelItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SatelliteClockModelItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SatelliteInformation ::= SEQUENCE(SIZE(1..maxGANSSSat)) OF GANSS-SatelliteInformationItem
+
+GANSS-SatelliteInformationItem ::= SEQUENCE {
+ ganssSatId INTEGER(0..63),
+ dopplerZeroOrder INTEGER(-2048..2047),
+ extraDoppler GANSS-ExtraDoppler OPTIONAL,
+ codePhase INTEGER(0..1023),
+ integerCodePhase INTEGER(0..127),
+ codePhaseSearchWindow INTEGER(0..31),
+ azimuthAndElevation GANSS-AzimuthAndElevation OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SatelliteInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SatelliteInformationItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SatelliteInformationKP ::= SEQUENCE (SIZE (1..maxGANSSSatAlmanac)) OF GANSS-SatelliteInformationKPItem
+
+GANSS-SatelliteInformationKPItem ::= SEQUENCE {
+ satId INTEGER(0..63),
+ ganss-e-alm BIT STRING (SIZE (11)),
+ ganss-delta-I-alm BIT STRING (SIZE (11)),
+ ganss-omegadot-alm BIT STRING (SIZE (11)),
+ ganss-svhealth-alm BIT STRING (SIZE (4)),
+ ganss-delta-a-sqrt-alm BIT STRING (SIZE (17)),
+ ganss-omegazero-alm BIT STRING (SIZE (16)),
+ ganss-m-zero-alm BIT STRING (SIZE (16)),
+ ganss-omega-alm BIT STRING (SIZE (16)),
+ ganss-af-zero-alm BIT STRING (SIZE (14)),
+ ganss-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SatelliteInformationKPItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SatelliteInformationKPItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-GLOkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-GLOkp
+
+GANSS-SAT-Info-Almanac-GLOkp ::= SEQUENCE {
+ gloAlmNA BIT STRING (SIZE(11)),
+ gloAlmnA BIT STRING (SIZE(5)),
+ gloAlmHA BIT STRING (SIZE(5)),
+ gloAlmLambdaA BIT STRING (SIZE(21)),
+ gloAlmTlambdaA BIT STRING (SIZE(21)),
+ gloAlmDeltaIA BIT STRING (SIZE(18)),
+ gloAkmDeltaTA BIT STRING (SIZE(22)),
+ gloAlmDeltaTdotA BIT STRING (SIZE(7)),
+ gloAlmEpsilonA BIT STRING (SIZE(15)),
+ gloAlmOmegaA BIT STRING (SIZE(16)),
+ gloAlmTauA BIT STRING (SIZE(10)),
+ gloAlmCA BIT STRING (SIZE(1)),
+ gloAlmMA BIT STRING (SIZE(2)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-GLOkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-GLOkp-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-MIDIkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-MIDIkp
+
+GANSS-SAT-Info-Almanac-MIDIkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ midiAlmE BIT STRING (SIZE (11)),
+ midiAlmDeltaI BIT STRING (SIZE (11)),
+ midiAlmOmegaDot BIT STRING (SIZE (11)),
+ midiAlmSqrtA BIT STRING (SIZE (17)),
+ midiAlmOmega0 BIT STRING (SIZE (16)),
+ midiAlmOmega BIT STRING (SIZE (16)),
+ midiAlmMo BIT STRING (SIZE (16)),
+ midiAlmaf0 BIT STRING (SIZE (11)),
+ midiAlmaf1 BIT STRING (SIZE (10)),
+ midiAlmL1Health BIT STRING (SIZE (1)),
+ midiAlmL2Health BIT STRING (SIZE (1)),
+ midiAlmL5Health BIT STRING (SIZE (1)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-MIDIkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-MIDIkp-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-NAVkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-NAVkp
+
+GANSS-SAT-Info-Almanac-NAVkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ navAlmE BIT STRING (SIZE (16)),
+ navAlmDeltaI BIT STRING (SIZE (16)),
+ navAlmOMEGADOT BIT STRING (SIZE (16)),
+ navAlmSVHealth BIT STRING (SIZE (8)),
+ navAlmSqrtA BIT STRING (SIZE (24)),
+ navAlmOMEGAo BIT STRING (SIZE (24)),
+ navAlmOmega BIT STRING (SIZE (24)),
+ navAlmMo BIT STRING (SIZE (24)),
+ navAlmaf0 BIT STRING (SIZE (11)),
+ navAlmaf1 BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-NAVkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-NAVkp-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-REDkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-REDkp
+
+GANSS-SAT-Info-Almanac-REDkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ redAlmDeltaA BIT STRING (SIZE (8)),
+ redAlmOmega0 BIT STRING (SIZE (7)),
+ redAlmPhi0 BIT STRING (SIZE (7)),
+ redAlmL1Health BIT STRING (SIZE (1)),
+ redAlmL2Health BIT STRING (SIZE (1)),
+ redAlmL5Health BIT STRING (SIZE (1)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-REDkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-REDkp-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-SBASecefList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF GANSS-SAT-Info-Almanac-SBASecef
+
+GANSS-SAT-Info-Almanac-SBASecef ::= SEQUENCE {
+ sbasAlmDataID BIT STRING (SIZE(2)),
+ svID INTEGER(0..63),
+ sbasAlmHealth BIT STRING (SIZE(8)),
+ sbasAlmXg BIT STRING (SIZE(15)),
+ sbasAlmYg BIT STRING (SIZE(15)),
+ sbasAlmZg BIT STRING (SIZE(9)),
+ sbasAlmXgdot BIT STRING (SIZE(3)),
+ sbasAlmYgDot BIT STRING (SIZE(3)),
+ sbasAlmZgDot BIT STRING (SIZE(4)),
+ sbasAlmTo BIT STRING (SIZE(11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-SBASecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-SBASecef-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Ganss-Sat-Info-AddNavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE {
+ satId INTEGER (0..63),
+ svHealth BIT STRING (SIZE (6)),
+ iod BIT STRING (SIZE (11)),
+ ganssAddClockModels GANSS-AddClockModels,
+ ganssAddOrbitModels GANSS-AddOrbitModels,
+ ie-Extensions ProtocolExtensionContainer { { Ganss-Sat-Info-AddNavList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Ganss-Sat-Info-AddNavList-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Sat-Info-Nav ::= SEQUENCE (SIZE(1..maxGANSSSat)) OF SEQUENCE {
+ satId INTEGER(0..63),
+ svHealth BIT STRING (SIZE(5)),
+ iod BIT STRING (SIZE(10)),
+ ganssClockModel GANSS-Clock-Model,
+ ganssOrbitModel GANSS-Orbit-Model,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Sat-Info-Nav-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Sat-Info-Nav-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SignalID ::= SEQUENCE {
+ ganssSignalID INTEGER(0..3,...,4..7),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SignalID-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SignalID-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-StatusHealth ::= ENUMERATED {
+ udre-scale-1dot0,
+ udre-scale-0dot75,
+ udre-scale-0dot5,
+ udre-scale-0dot3,
+ udre-scale-Odot2,
+ udre-scale-0dot1,
+ no-data,
+ invalid-data
+}
+
+GANSS-Time-Model ::= SEQUENCE {
+ ganss-time-model-refTime INTEGER(0..37799),
+ ganss-t-a0 INTEGER(-2147483648..2147483647),
+ ganss-t-a1 INTEGER(-8388608..8388607) OPTIONAL,
+ ganss-t-a2 INTEGER(-64..63) OPTIONAL,
+ gnss-to-id ENUMERATED{gps,...,galileo,qzss,glonass},
+ ganss-wk-number INTEGER(0..8191) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Time-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Time-Model-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-ganss-Delta-T CRITICALITY ignore EXTENSION GANSS-Delta-T PRESENCE optional},
+ ...
+}
+
+GANSS-Delta-T ::= INTEGER(-128..127)
+
+GANSS-UTRAN-TimeRelationshipUncertainty ::= ENUMERATED {
+ gANSS-UTRAN-TRU-50nano,
+ gANSS-UTRAN-TRU-500nano,
+ gANSS-UTRAN-TRU-1micro,
+ gANSS-UTRAN-TRU-10micro,
+ gANSS-UTRAN-TRU-1milli,
+ gANSS-UTRAN-TRU-10milli,
+ gANSS-UTRAN-TRU-100milli,
+ gANSS-UTRAN-TRU-unreliable,
+...
+}
+
+GANSS-UTRAN-TRU ::= SEQUENCE {
+ gANSS-UTRAN-TimeRelationshipUncertainty GANSS-UTRAN-TimeRelationshipUncertainty,
+ ganssId GANSSID OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-UTRAN-TRU-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTRAN-TRU-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTC-Model ::= SEQUENCE {
+ a-one-utc BIT STRING (SIZE (24)),
+ a-zero-utc BIT STRING (SIZE (32)),
+ t-ot-utc BIT STRING (SIZE (8)),
+ w-n-t-utc BIT STRING (SIZE (8)),
+ delta-t-ls-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 { { GANSS-UTC-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTC-Model-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRAN-GANSS-DriftRate ::= ENUMERATED {
+ uTRAN-GANSSDrift0, uTRAN-GANSSDrift1, uTRAN-GANSSDrift2,
+ uTRAN-GANSSDrift5, uTRAN-GANSSDrift10, uTRAN-GANSSDrift15,
+ uTRAN-GANSSDrift25, uTRAN-GANSSDrift50, uTRAN-GANSSDrift-1,
+ uTRAN-GANSSDrift-2, uTRAN-GANSSDrift-5, uTRAN-GANSSDrift-10,
+ uTRAN-GANSSDrift-15, uTRAN-GANSSDrift-25, uTRAN-GANSSDrift-50,
+...
+}
+
+GLONASSclockModel ::= SEQUENCE {
+ gloTau BIT STRING (SIZE (22)),
+ gloGamma BIT STRING (SIZE (11)),
+ gloDeltaTau BIT STRING (SIZE (5)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GLONASSclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GLONASSclockModel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+NAVclockModel ::= SEQUENCE {
+ navToc BIT STRING (SIZE (16)),
+ navaf2 BIT STRING (SIZE (8)),
+ navaf1 BIT STRING (SIZE (16)),
+ navaf0 BIT STRING (SIZE (22)),
+ navTgd BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { NAVclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NAVclockModel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NavModel-CNAVKeplerianSet ::= SEQUENCE {
+ cnavTop BIT STRING (SIZE (11)),
+ cnavURAindex BIT STRING (SIZE (5)),
+ cnavDeltaA BIT STRING (SIZE (26)),
+ cnavAdot BIT STRING (SIZE (25)),
+ cnavDeltaNo BIT STRING (SIZE (17)),
+ cnavDeltaNoDot BIT STRING (SIZE (23)),
+ cnavMo BIT STRING (SIZE (33)),
+ cnavE BIT STRING (SIZE (33)),
+ cnavOmega BIT STRING (SIZE (33)),
+ cnavOMEGA0 BIT STRING (SIZE (33)),
+ cnavDeltaOmegaDot BIT STRING (SIZE (17)),
+ cnavIo BIT STRING (SIZE (33)),
+ cnavIoDot BIT STRING (SIZE (15)),
+ cnavCis BIT STRING (SIZE (16)),
+ cnavCic BIT STRING (SIZE (16)),
+ cnavCrs BIT STRING (SIZE (24)),
+ cnavCrc BIT STRING (SIZE (24)),
+ cnavCus BIT STRING (SIZE (21)),
+ cnavCuc BIT STRING (SIZE (21)),
+ ie-Extensions ProtocolExtensionContainer { { NavModel-CNAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NavModel-CNAVKeplerianSet-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NavModel-GLONASSecef ::= SEQUENCE {
+ gloEn BIT STRING (SIZE (5)),
+ gloP1 BIT STRING (SIZE (2)),
+ gloP2 BIT STRING (SIZE (1)),
+ gloM BIT STRING (SIZE (2)) OPTIONAL,
+ gloX BIT STRING (SIZE (27)),
+ gloXdot BIT STRING (SIZE (24)),
+ gloXdotdot BIT STRING (SIZE (5)),
+ gloY BIT STRING (SIZE (27)),
+ gloYdot BIT STRING (SIZE (24)),
+ gloYdotdot BIT STRING (SIZE (5)),
+ gloZ BIT STRING (SIZE (27)),
+ gloZdot BIT STRING (SIZE (24)),
+ gloZdotdot BIT STRING (SIZE (5)),
+ ie-Extensions ProtocolExtensionContainer { { NavModel-GLONASSecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NavModel-GLONASSecef-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NavModel-NAVKeplerianSet ::= SEQUENCE {
+ navURA BIT STRING (SIZE (4)),
+ navFitFlag BIT STRING (SIZE (1)),
+ navToe BIT STRING (SIZE (16)),
+ navOmega BIT STRING (SIZE (32)),
+ navDeltaN BIT STRING (SIZE (16)),
+ navM0 BIT STRING (SIZE (32)),
+ navOmegaADot BIT STRING (SIZE (24)),
+ navE BIT STRING (SIZE (32)),
+ navIDot BIT STRING (SIZE (14)),
+ navAPowerHalf BIT STRING (SIZE (32)),
+ navI0 BIT STRING (SIZE (32)),
+ navOmegaA0 BIT STRING (SIZE (32)),
+ navCrs BIT STRING (SIZE (16)),
+ navCis BIT STRING (SIZE (16)),
+ navCus BIT STRING (SIZE (16)),
+ navCrc BIT STRING (SIZE (16)),
+ navCic BIT STRING (SIZE (16)),
+ navCuc BIT STRING (SIZE (16)),
+ ie-Extensions ProtocolExtensionContainer { { NavModel-NAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NavModel-NAVKeplerianSet-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NavModel-SBASecef ::= SEQUENCE {
+ -- the following IE shall be present if 'SBASclockModel' in 'GANSS-AddClockModels' is not included in 'Ganss-Sat-Info-AddNavList'
+ sbasTo BIT STRING (SIZE (13)) OPTIONAL,
+ sbasAccuracy BIT STRING (SIZE (4)),
+ sbasXg BIT STRING (SIZE (30)),
+ sbasYg BIT STRING (SIZE (30)),
+ sbasZg BIT STRING (SIZE (25)),
+ sbasXgDot BIT STRING (SIZE (17)),
+ sbasYgDot BIT STRING (SIZE (17)),
+ sbasZgDot BIT STRING (SIZE (18)),
+ sbasXgDotDot BIT STRING (SIZE (10)),
+ sbagYgDotDot BIT STRING (SIZE (10)),
+ sbasZgDotDot BIT STRING (SIZE (10)),
+ ie-Extensions ProtocolExtensionContainer { { NavModel-SBASecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NavModel-SBASecef-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SBASclockModel ::= SEQUENCE {
+ sbasTo BIT STRING (SIZE (13)),
+ sbasAgfo BIT STRING (SIZE (12)),
+ sbasAgf1 BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { SBASclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SBASclockModel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UTCmodelSet1 ::= SEQUENCE {
+ utcA0 BIT STRING (SIZE(16)),
+ utcA1 BIT STRING (SIZE(13)),
+ utcA2 BIT STRING (SIZE(7)),
+ utcDeltaTls BIT STRING (SIZE(8)),
+ utcTot BIT STRING (SIZE(16)),
+ utcWNot BIT STRING (SIZE(13)),
+ utcWNlsf BIT STRING (SIZE(8)),
+ utcDN BIT STRING (SIZE(4)),
+ utcDeltaTlsf BIT STRING (SIZE(8)),
+ ie-Extensions ProtocolExtensionContainer { { UTCmodelSet1-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UTCmodelSet1-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UTCmodelSet2 ::= SEQUENCE {
+ nA BIT STRING (SIZE(11)),
+ tauC BIT STRING (SIZE(32)),
+ deltaUT1 DeltaUT1 OPTIONAL,
+ kp BIT STRING (SIZE(2)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { UTCmodelSet2-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UTCmodelSet2-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UTCmodelSet3 ::= SEQUENCE {
+ utcA1wnt BIT STRING (SIZE(24)),
+ utcA0wnt BIT STRING (SIZE(32)),
+ utcTot BIT STRING (SIZE(8)),
+ utcWNt BIT STRING (SIZE(8)),
+ utcDeltaTls BIT STRING (SIZE(8)),
+ utcWNlsf BIT STRING (SIZE(8)),
+ utcDN BIT STRING (SIZE(8)),
+ utcDeltaTlsf BIT STRING (SIZE(8)),
+ utcStandardID BIT STRING (SIZE(3)),
+ ie-Extensions ProtocolExtensionContainer { { UTCmodelSet3-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UTCmodelSet3-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UTRAN-GANSSReferenceTimeDL ::= SEQUENCE {
+ utran-GANSSTimingOfCellFrames INTEGER(0..3999999),
+ uC-ID UC-ID OPTIONAL,
+ referenceSfn INTEGER(0..4095),
+ ie-Extensions ProtocolExtensionContainer { { UTRAN-GANSSReferenceTimeDL-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UTRAN-GANSSReferenceTimeDL-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UTRAN-GANSSReferenceTimeUL ::= SEQUENCE {
+ ue-GANSSTimingOfCellFrames INTEGER(0..345599999999),
+ gANSS-TimeId GANSSID OPTIONAL,
+ gANSS-TimeUncertainty INTEGER(0..127) OPTIONAL,
+ uC-ID UC-ID,
+ referenceSfn INTEGER(0..4095),
+ ie-Extensions ProtocolExtensionContainer { { UTRAN-GANSSReferenceTimeUL-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UTRAN-GANSSReferenceTimeUL-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- GPS Almanac and Satellite Health
+--
+-- **************************************************************
+
+
+GPS-AlmanacAndSatelliteHealth ::= SEQUENCE {
+ wn-a BIT STRING (SIZE (8)),
+ almanacSatInfoList AlmanacSatInfoList,
+ svGlobalHealth BIT STRING (SIZE (364)) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GPS-AlmanacAndSatelliteHealth-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-AlmanacAndSatelliteHealth-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-completeAlmanacProvided CRITICALITY ignore EXTENSION CompleteAlmanacProvided PRESENCE optional},
+ ...
+}
+
+CompleteAlmanacProvided ::= BOOLEAN
+
+AlmanacSatInfoList ::= SEQUENCE (SIZE (1..maxSatAlmanac)) OF
+ AlmanacSatInfo
+
+AlmanacSatInfo ::= SEQUENCE {
+ dataID BIT STRING (SIZE (2)),
+ satID INTEGER (0..63),
+ e BIT STRING (SIZE (16)),
+ t-oa BIT STRING (SIZE (8)),
+ deltaI BIT STRING (SIZE (16)),
+ omegaDot BIT STRING (SIZE (16)),
+ satHealth BIT STRING (SIZE (8)),
+ a-Sqrt BIT STRING (SIZE (24)),
+ omega0 BIT STRING (SIZE (24)),
+ m0 BIT STRING (SIZE (24)),
+ omega BIT STRING (SIZE (24)),
+ af0 BIT STRING (SIZE (11)),
+ af1 BIT STRING (SIZE (11)),
+ iE-Extensions ProtocolExtensionContainer { { AlmanacSatInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AlmanacSatInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- GPS Clock And Ephemeris Parameters
+--
+-- **************************************************************
+
+GPS-ClockAndEphemerisParameters ::= SEQUENCE {
+ codeOnL2 BIT STRING (SIZE (2)),
+ uraIndex BIT STRING (SIZE (4)),
+ satHealth BIT STRING (SIZE (6)),
+ iodc BIT STRING (SIZE (10)),
+ l2Pflag BIT STRING (SIZE (1)),
+ sf1Revd SubFrame1Reserved,
+ t-GD BIT STRING (SIZE (8)),
+ t-oc BIT STRING (SIZE (16)),
+ af2 BIT STRING (SIZE (8)),
+ af1 BIT STRING (SIZE (16)),
+ af0 BIT STRING (SIZE (22)),
+ c-rs BIT STRING (SIZE (16)),
+ delta-n BIT STRING (SIZE (16)),
+ m0 BIT STRING (SIZE (32)),
+ c-uc BIT STRING (SIZE (16)),
+ e BIT STRING (SIZE (32)),
+ c-us BIT STRING (SIZE (16)),
+ a-Sqrt BIT STRING (SIZE (32)),
+ t-oe BIT STRING (SIZE (16)),
+ fitInterval BIT STRING (SIZE (1)),
+ aodo BIT STRING (SIZE (5)),
+ c-ic BIT STRING (SIZE (16)),
+ omega0 BIT STRING (SIZE (32)),
+ c-is BIT STRING (SIZE (16)),
+ i0 BIT STRING (SIZE (32)),
+ c-rc BIT STRING (SIZE (16)),
+ omega BIT STRING (SIZE (32)),
+ omegaDot BIT STRING (SIZE (24)),
+ iDot BIT STRING (SIZE (14)),
+ iE-Extensions ProtocolExtensionContainer { { GPS-ClockAndEphemerisParameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-ClockAndEphemerisParameters-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SubFrame1Reserved ::= SEQUENCE {
+ reserved1 BIT STRING (SIZE (23)),
+ reserved2 BIT STRING (SIZE (24)),
+ reserved3 BIT STRING (SIZE (24)),
+ reserved4 BIT STRING (SIZE (16))
+}
+
+
+-- **************************************************************
+--
+-- GPS Ionospheric Model
+--
+-- **************************************************************
+
+
+ GPS-Ionospheric-Model ::= SEQUENCE {
+ alfa0 BIT STRING (SIZE (8)),
+ alfa1 BIT STRING (SIZE (8)),
+ alfa2 BIT STRING (SIZE (8)),
+ alfa3 BIT STRING (SIZE (8)),
+ beta0 BIT STRING (SIZE (8)),
+ beta1 BIT STRING (SIZE (8)),
+ beta2 BIT STRING (SIZE (8)),
+ beta3 BIT STRING (SIZE (8)),
+ iE-Extensions ProtocolExtensionContainer { { GPS-Ionospheric-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-Ionospheric-Model-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- GPS Measured Results
+--
+-- **************************************************************
+
+MeasuredResultsList ::= SEQUENCE (SIZE (1..maxNrOfSets)) OF
+ GPS-MeasuredResults
+
+GPS-MeasuredResults ::= SEQUENCE {
+ gps-TOW-1msec INTEGER (0..604799999),
+ gps-MeasurementParamList GPS-MeasurementParamList,
+ iE-Extensions ProtocolExtensionContainer { { GPS-MeasuredResults-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-MeasuredResults-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-UTRAN-GPSReferenceTimeResult CRITICALITY ignore EXTENSION UTRAN-GPSReferenceTimeResult PRESENCE optional} |
+ {ID id-GPSReferenceTimeUncertainty CRITICALITY ignore EXTENSION GPSReferenceTimeUncertainty PRESENCE optional},
+ ...
+}
+
+GPS-MeasurementParamList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ GPS-MeasurementParam
+
+GPS-MeasurementParam ::= SEQUENCE {
+ satelliteID INTEGER (0..63),
+ c-N0 INTEGER (0..63),
+ doppler INTEGER (-32768..32768),
+ wholeGPS-Chips INTEGER (0..1022),
+ fractionalGPS-Chips INTEGER (0..1023),
+ multipathIndicator MultipathIndicator,
+ pseudorangeRMS-Error INTEGER (0..63),
+ iE-Extensions ProtocolExtensionContainer { { GPS-MeasurementParam-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MultipathIndicator ::= ENUMERATED {
+ nm,
+ low,
+ medium,
+ high }
+
+GPS-MeasurementParam-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- GPS Navigation Model
+--
+-- **************************************************************
+
+
+GPS-NavigationModel ::= SEQUENCE (SIZE (1..maxSat)) OF
+ NavigationModelSatInfo
+
+NavigationModelSatInfo ::= SEQUENCE {
+ satID INTEGER (0..63),
+ satelliteStatus SatelliteStatus,
+ gps-clockAndEphemerisParms GPS-ClockAndEphemerisParameters OPTIONAL,
+ -- This IE is not present if satelliteStatus is es-SN
+ iE-Extensions ProtocolExtensionContainer { { NavigationModelSatInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NavigationModelSatInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SatelliteStatus ::= ENUMERATED {
+ ns-NN,
+ es-SN,
+ es-NN,
+ rev2,
+ rev }
+
+
+
+-- **************************************************************
+--
+-- GPS Real Time Integrity
+--
+-- **************************************************************
+
+GPS-RealTimeIntegrity ::= CHOICE {
+ badSatellites BadSatList,
+ noBadSatellites NoBadSatellites,
+ ...
+}
+
+BadSatList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ INTEGER (0..63)
+
+NoBadSatellites ::= NULL
+
+-- **************************************************************
+--
+-- GPS Reference Location
+--
+-- **************************************************************
+
+GPS-ReferenceLocation ::= SEQUENCE {
+ ue-PositionEstimate UE-PositionEstimate,
+ iE-Extensions ProtocolExtensionContainer { { GPS-ReferenceLocation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-ReferenceLocation-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- GPS Reference Time
+--
+-- **************************************************************
+
+GPS-ReferenceTime ::= SEQUENCE {
+ gps-Week INTEGER (0..1023),
+ gps-TOW-1msec INTEGER (0..604799999),
+ gps-TOW-AssistList GPS-TOW-AssistList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GPS-ReferenceTime-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-ReferenceTime-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-UTRAN-GPSReferenceTime CRITICALITY ignore EXTENSION UTRAN-GPSReferenceTime PRESENCE optional}|
+ {ID id-GPS-UTRAN-TRU CRITICALITY ignore EXTENSION GPS-UTRAN-TRU PRESENCE optional}|
+ {ID id-UTRAN-GPS-DriftRate CRITICALITY ignore EXTENSION UTRAN-GPS-DriftRate PRESENCE optional}|
+ {ID id-GPSReferenceTimeUncertainty CRITICALITY ignore EXTENSION GPSReferenceTimeUncertainty PRESENCE optional}|
+ {ID id-GPS-Week-Cycle CRITICALITY ignore EXTENSION GPS-Week-Cycle PRESENCE optional},
+ ...
+}
+
+GPS-Week-Cycle ::= INTEGER(0..7)
+
+GPS-TOW-AssistList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ GPS-TOW-Assist
+
+GPS-TOW-Assist ::= SEQUENCE {
+ satID INTEGER (0..63),
+ tlm-Message BIT STRING (SIZE (14)),
+ antiSpoof BOOLEAN,
+ alert BOOLEAN,
+ tlm-Reserved BIT STRING (SIZE (2)),
+ iE-Extensions ProtocolExtensionContainer { { GPS-TOW-Assist-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-TOW-Assist-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UTRAN-GPS-DriftRate ::= ENUMERATED {
+ utran-GPSDrift0, utran-GPSDrift1, utran-GPSDrift2,
+ utran-GPSDrift5, utran-GPSDrift10, utran-GPSDrift15,
+ utran-GPSDrift25, utran-GPSDrift50, utran-GPSDrift-1,
+ utran-GPSDrift-2, utran-GPSDrift-5, utran-GPSDrift-10,
+ utran-GPSDrift-15, utran-GPSDrift-25, utran-GPSDrift-50,
+ ...}
+
+-- **************************************************************
+--
+-- GPS Reference Time Uncertainty
+--
+-- **************************************************************
+
+GPSReferenceTimeUncertainty ::= SEQUENCE {
+ gps-RefTimeUNC INTEGER(0..127),
+ iE-Extensions ProtocolExtensionContainer { { GPSReferenceTimeUncertainty-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPSReferenceTimeUncertainty-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- GPS Transmission TOW
+--
+-- **************************************************************
+
+GPS-Transmission-TOW ::= INTEGER (0..604799)
+
+
+
+-- **************************************************************
+--
+-- GPS UTC Model
+--
+-- **************************************************************
+
+GPS-UTC-Model ::= SEQUENCE {
+ a1 BIT STRING (SIZE (24)),
+ a0 BIT STRING (SIZE (32)),
+ t-ot BIT STRING (SIZE (8)),
+ delta-t-LS BIT STRING (SIZE (8)),
+ wn-t BIT STRING (SIZE (8)),
+ wn-lsf BIT STRING (SIZE (8)),
+ dn BIT STRING (SIZE (8)),
+ delta-t-LSF BIT STRING (SIZE (8)),
+ iE-Extensions ProtocolExtensionContainer { { GPS-UTCmodel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPS-UTCmodel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- GPS UTRAN Time Relationship Uncertainty
+-- nsec=nanosecond, usec=microsecond, msec=millisecond, sec=second
+--
+-- **************************************************************
+
+GPS-UTRAN-TRU ::= ENUMERATED {
+ nsec-50,
+ nsec-500,
+ usec-1,
+ usec-10,
+ msec-1,
+ msec-10,
+ msec-100,
+ unreliable,
+ ...}
+
+-- **************************************************************
+--
+-- Additional GPS Assistance Data Required
+--
+-- **************************************************************
+
+
+AdditionalGPSAssistDataRequired ::= SEQUENCE {
+ almanacRequest BOOLEAN,
+ utcModelRequest BOOLEAN,
+ ionosphericModelRequest BOOLEAN,
+ navigationModelRequest BOOLEAN,
+ dgpsCorrectionsRequest BOOLEAN,
+ referenceLocationRequest BOOLEAN,
+ referenceTimeRequest BOOLEAN,
+ aquisitionAssistanceRequest BOOLEAN,
+ realTimeIntegrityRequest BOOLEAN,
+ navModelAddDataRequest NavModelAdditionalData OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AdditionalGPSAssistDataRequired-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AdditionalGPSAssistDataRequired-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Additional GANSS Assistance Data Required
+--
+-- **************************************************************
+
+AdditionalGanssAssistDataRequired::= SEQUENCE {
+ ganssReferenceTime BOOLEAN,
+ ganssreferenceLocation BOOLEAN,
+ ganssIonosphericModel BOOLEAN,
+ ganssRequestedGenericAssistanceDataList GanssRequestedGenericAssistanceDataList,
+ iE-Extensions ProtocolExtensionContainer { { AdditionalGanssAssistDataRequired-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AdditionalGanssAssistDataRequired-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-ganssReq-AddIonosphericModel CRITICALITY ignore EXTENSION GANSSReq-AddIonosphericModel PRESENCE optional}|
+ {ID id-ganssReq-EarthOrientPara CRITICALITY ignore EXTENSION GANSSReq-EarthOrientPara PRESENCE optional},
+ ...
+}
+GANSSReq-AddIonosphericModel ::= SEQUENCE {
+ ganss-add-iono-mode-req BIT STRING (SIZE(2)),
+ iE-Extensions ProtocolExtensionContainer { { GANSSReq-AddIonosphericModel-ExtIEs } } OPTIONAL,
+ ...}
+
+GANSSReq-AddIonosphericModel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSSReq-EarthOrientPara ::= BOOLEAN
+
+GanssRequestedGenericAssistanceDataList ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GanssReqGenericData
+
+GanssReqGenericData ::= SEQUENCE {
+ ganssId GANSSID OPTIONAL,
+ ganssRealTimeIntegrity BOOLEAN OPTIONAL,
+ ganssDifferentialCorrection DGANSS-Sig-Id-Req OPTIONAL,
+ ganssAlmanac BOOLEAN OPTIONAL,
+ ganssNavigationModel BOOLEAN OPTIONAL,
+ ganssTimeModelGnssGnss BIT STRING (SIZE (9)) OPTIONAL,
+ ganssReferenceMeasurementInfo BOOLEAN OPTIONAL,
+ ganssDataBits GanssDataBits OPTIONAL,
+ ganssUTCModel BOOLEAN OPTIONAL,
+ ganssNavigationModelAdditionalData NavigationModelGANSS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GanssReqGenericData-ExtIEs } } OPTIONAL,
+ ...}
+
+GanssReqGenericData-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-ganssAddNavigationModel-req CRITICALITY ignore EXTENSION GANSS-AddNavigationModel-Req PRESENCE optional}|
+ {ID id-ganssAddUTCModel-req CRITICALITY ignore EXTENSION GANSS-AddUTCModel-Req PRESENCE optional}|
+ {ID id-ganssAuxInfo-req CRITICALITY ignore EXTENSION GANSS-AuxInfo-req PRESENCE optional}|
+ {ID id-GANSS-SBAS-ID CRITICALITY ignore EXTENSION GANSS-SBAS-ID PRESENCE optional}|
+ {ID id-GANSS-AddADchoices CRITICALITY ignore EXTENSION GANSS-AddADchoices PRESENCE optional},
+ ...
+}
+
+GANSS-AddNavigationModel-Req ::= BOOLEAN
+
+GANSS-AddUTCModel-Req ::= BOOLEAN
+
+GANSS-AuxInfo-req ::= BOOLEAN
+
+GANSS-AddADchoices ::= SEQUENCE {
+ orbitModelID INTEGER (0..7) OPTIONAL,
+ clockModelID INTEGER (0..7) OPTIONAL,
+ utcModelID INTEGER (0..7) OPTIONAL,
+ almanacModelID INTEGER (0..7) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-AddADchoices-ExtIEs } } OPTIONAL,
+ ...}
+
+GANSS-AddADchoices-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGANSS-Sig-Id-Req ::= BIT STRING (SIZE (8))
+
+GanssDataBits ::= SEQUENCE {
+ ganssTod INTEGER (0..86399),
+ dataBitAssistancelist ReqDataBitAssistanceList,
+ iE-Extensions ProtocolExtensionContainer { { GanssDataBits-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GanssDataBits-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ReqDataBitAssistanceList ::= SEQUENCE {
+ ganssSignalID BIT STRING (SIZE (8)),
+ ganssDataBitInterval INTEGER(0..15),
+ ganssSatelliteInfo SEQUENCE (SIZE (1..maxGANSSSat)) OF INTEGER(0..63) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReqDataBitAssistanceList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+
+ReqDataBitAssistanceList-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Information Exchange ID
+--
+-- **************************************************************
+
+InformationExchangeID ::= INTEGER (0..1048575)
+
+
+-- **************************************************************
+--
+-- Information Report Characteristics
+--
+-- **************************************************************
+
+InformationReportCharacteristics ::= SEQUENCE {
+ type InformationReportCharacteristicsType,
+ periodicity InformationReportPeriodicity OPTIONAL,
+ -- present if type indicates periodic
+ ...
+}
+
+InformationReportCharacteristicsType ::= ENUMERATED {
+ onDemand,
+ periodic,
+ onModification,
+ ...
+}
+
+
+InformationReportPeriodicity ::= CHOICE {
+ min INTEGER (1..60, ...),
+-- Unit min, Step 1min
+ hour INTEGER (1..24, ...),
+-- Unit hour, Step 1hour
+ ...
+}
+
+-- **************************************************************
+--
+-- Information Type
+--
+-- **************************************************************
+
+
+InformationType ::= CHOICE {
+ implicitInformation MethodType,
+ explicitInformation ExplicitInformationList,
+ ...
+}
+
+
+ExplicitInformationList ::= SEQUENCE (SIZE (1..maxNrOfExpInfo)) OF ExplicitInformation
+
+ExplicitInformation ::= CHOICE {
+ almanacAndSatelliteHealth AlmanacAndSatelliteHealth,
+ utcModel UtcModel,
+ ionosphericModel IonosphericModel,
+ navigationModel NavigationModel,
+ dgpsCorrections DgpsCorrections,
+ referenceTime ReferenceTime,
+ acquisitionAssistance AcquisitionAssistance,
+ realTimeIntegrity RealTimeIntegrity,
+ almanacAndSatelliteHealthSIB AlmanacAndSatelliteHealthSIB-InfoType,
+ ... ,
+ referenceLocation ReferenceLocation,
+ ganss-Common-DataReq GANSSCommonDataReq,
+ ganss-Generic-DataList GANSSGenericDataList
+
+}
+
+DganssCorrectionsReq ::= SEQUENCE {
+ transmissionGanssTimeIndicator TransmissionGanssTimeIndicator OPTIONAL,
+ dganss-sig-id-req DGANSS-Sig-Id-Req,
+ iE-Extensions ProtocolExtensionContainer { { DganssCorrectionsReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DganssCorrectionsReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Ganss-almanacAndSatelliteHealthReq ::= SEQUENCE {
+ transmissionGanssTimeIndicator TransmissionGanssTimeIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Ganss-almanacAndSatelliteHealthReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ganss-almanacAndSatelliteHealthReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSSCommonDataReq ::= SEQUENCE{
+ ganss-ReferenceTime ENUMERATED {requested, not-requested} OPTIONAL,
+ ganss-IonosphericModel ENUMERATED {requested, not-requested} OPTIONAL,
+ ganss-ReferenceLocation ENUMERATED {requested, not-requested} OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSSCommonDataReq-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSSCommonDataReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSS-AddIonoModelReq CRITICALITY ignore EXTENSION GANSS-AddIonoModelReq PRESENCE optional} |
+ {ID id-GANSS-EarthOrientParaReq CRITICALITY ignore EXTENSION GANSS-EarthOrientParaReq PRESENCE optional} ,
+ ...
+}
+
+GANSS-AddIonoModelReq ::= SEQUENCE {
+ dataID BIT STRING (SIZE(2)),
+ iE-Extensions ProtocolExtensionContainer { { GANSS-AddIonoModelReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GANSS-AddIonoModelReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-EarthOrientParaReq ::= SEQUENCE {
+ eopReq ENUMERATED {requested, not-requested},
+ iE-Extensions ProtocolExtensionContainer { { GANSS-EarthOrientParaReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GANSS-EarthOrientParaReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSSGenericDataList ::= SEQUENCE (SIZE(1..maxGANSS)) OF GANSSGenericDataReq
+
+GANSSGenericDataReq ::= SEQUENCE {
+ ganssID GANSSID OPTIONAL,
+ ganss-realTimeIntegrity Ganss-realTimeIntegrityReq OPTIONAL,
+ ganss-dataBitAssistance GanssDataBits OPTIONAL,
+ dganssCorrections DganssCorrectionsReq OPTIONAL,
+ ganss-almanacAndSatelliteHealth Ganss-almanacAndSatelliteHealthReq OPTIONAL,
+ ganss-referenceMeasurementInfo Ganss-referenceMeasurementInfoReq OPTIONAL,
+ ganss-utcModel Ganss-utcModelReq OPTIONAL,
+ ganss-TimeModel-Gnss-Gnss Ganss-TimeModel-Gnss-Gnss OPTIONAL,
+ navigationModel NavigationModelGANSS OPTIONAL,
+ ...,
+ ganss-AddNavModelsReq AddNavigationModelsGANSS OPTIONAL,
+ ganss-AddUtcModelsReq GANSS-AddUtcModelsReq OPTIONAL,
+ ganss-AuxInfoReq GANSS-AuxInfoReq OPTIONAL,
+ -- the following IE shall be present if GANSSID is '0' (SBAS)
+ ganss-SBAS-ID GANSS-SBAS-ID OPTIONAL
+}
+
+AddNavigationModelsGANSS ::= SEQUENCE {
+ ganssWeek INTEGER(0..4095),
+ ganssTOE INTEGER(0..167),
+ t-toe-limit INTEGER(0..10),
+ addSatRelatedDataListGANSS AddSatelliteRelatedDataListGANSS,
+ iE-Extensions ProtocolExtensionContainer { { AddNavigationModelsGANSS-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AddNavigationModelsGANSS-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AddSatelliteRelatedDataListGANSS ::= SEQUENCE (SIZE (0..maxGANSSSat)) OF AddSatelliteRelatedDataGANSS
+
+AddSatelliteRelatedDataGANSS ::= SEQUENCE {
+ satID INTEGER (0..63),
+ iod BIT STRING (SIZE(10)),
+ iE-Extensions ProtocolExtensionContainer { { AddSatelliteRelatedDataGANSS-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AddSatelliteRelatedDataGANSS-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AddUtcModelsReq ::= SEQUENCE {
+ transmissionGanssTimeIndicator TransmissionGanssTimeIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-AddUtcModelsReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GANSS-AddUtcModelsReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AuxInfoReq ::= SEQUENCE {
+ transmissionGanssTimeIndicator TransmissionGanssTimeIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-AuxInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GANSS-AuxInfoReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-SBAS-ID ::= ENUMERATED {
+ waas,
+ egnos,
+ msas,
+ gagan,
+ ...
+ }
+
+
+Ganss-utcModelReq ::= SEQUENCE {
+ transmissionGanssTimeIndicator TransmissionGanssTimeIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Ganss-utcModelReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ganss-utcModelReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Ganss-realTimeIntegrityReq ::= SEQUENCE {
+ transmissionGanssTimeIndicator TransmissionGanssTimeIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Ganss-realTimeIntegrityReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ganss-realTimeIntegrityReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Ganss-referenceMeasurementInfoReq ::= SEQUENCE {
+ transmissionGanssTimeIndicator TransmissionGanssTimeIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Ganss-referenceMeasurementInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ganss-referenceMeasurementInfoReq-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+Ganss-TimeModel-Gnss-Gnss ::= SEQUENCE{
+ ganssTimeModelGnssGnssExt BIT STRING (SIZE(9)),
+ transmissionGanssTimeIndicator TransmissionGanssTimeIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Ganss-TimeModel-Gnss-Gnss-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ganss-TimeModel-Gnss-Gnss-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionGanssTimeIndicator ::= ENUMERATED {
+ requested,
+ not-Requested
+}
+
+AlmanacAndSatelliteHealth ::= NULL
+
+UtcModel ::= SEQUENCE {
+ transmissionTOWIndicator TransmissionTOWIndicator,
+ iE-Extensions ProtocolExtensionContainer { { UtcModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UtcModel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IonosphericModel ::= SEQUENCE {
+ transmissionTOWIndicator TransmissionTOWIndicator,
+ iE-Extensions ProtocolExtensionContainer { { IonosphericModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+IonosphericModel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NavigationModel ::= SEQUENCE {
+ transmissionTOWIndicator TransmissionTOWIndicator,
+ navModelAdditionalData NavModelAdditionalData OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NavigationModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NavigationModel-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+NavModelAdditionalData ::= SEQUENCE {
+ gps-Week INTEGER (0..1023),
+ gps-TOE INTEGER (0..167),
+ t-TOE-limit INTEGER (0..10),
+ satRelatedDataList SatelliteRelatedDataList,
+ iE-Extensions ProtocolExtensionContainer { { NavModelAdditionalData-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NavModelAdditionalData-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SatelliteRelatedDataList ::= SEQUENCE (SIZE (0..maxSat)) OF SatelliteRelatedData
+
+SatelliteRelatedData ::= SEQUENCE {
+ satID INTEGER (0..63),
+ iode INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { SatelliteRelatedData-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SatelliteRelatedData-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NavigationModelGANSS ::= SEQUENCE {
+ ganssWeek INTEGER(0..4095),
+ ganssTOE INTEGER(0..167),
+ t-toe-limit INTEGER(0..10),
+ satRelatedDataListGANSS SatelliteRelatedDataListGANSS,
+ iE-Extensions ProtocolExtensionContainer { { NavigationModelGANSS-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NavigationModelGANSS-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SatelliteRelatedDataListGANSS ::= SEQUENCE (SIZE (0..maxGANSSSat)) OF SatelliteRelatedDataGANSS
+
+SatelliteRelatedDataGANSS ::= SEQUENCE {
+ satID INTEGER (0..63),
+ iod BIT STRING (SIZE(10)),
+ iE-Extensions ProtocolExtensionContainer { { SatelliteRelatedDataGANSS-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SatelliteRelatedDataGANSS-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DgpsCorrections ::= NULL
+
+ReferenceTime ::= NULL
+
+AcquisitionAssistance ::= NULL
+
+RealTimeIntegrity ::= NULL
+
+AlmanacAndSatelliteHealthSIB-InfoType ::= SEQUENCE {
+ transmissionTOWIndicator TransmissionTOWIndicator,
+ iE-Extensions ProtocolExtensionContainer { { AlmanacAndSatelliteHealthSIB-InfoType-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AlmanacAndSatelliteHealthSIB-InfoType-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReferenceLocation ::= NULL
+
+TransmissionTOWIndicator ::= ENUMERATED {
+ requested,
+ not-Requested
+}
+
+-- **************************************************************
+--
+-- Message Structure
+--
+-- **************************************************************
+
+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
+ SEQUENCE {
+ iE-ID ProtocolIE-ID,
+ repetitionNumber MessageStructureRepetition OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MessageStructureRepetition ::= INTEGER (1..256)
+
+MessageStructure-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Measurement Instructions Used
+--
+-- **************************************************************
+
+MeasInstructionsUsed ::= SEQUENCE {
+ measurementValidity MeasurementValidity,
+ iE-Extensions ProtocolExtensionContainer { { MeasInstructionsUsed-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MeasInstructionsUsed-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Measurement Validity
+--
+-- **************************************************************
+
+MeasurementValidity ::= SEQUENCE {
+ ue-State ENUMERATED { cell-DCH, all-States-Except-Cell-DCH, all-States, ... },
+ iE-Extensions ProtocolExtensionContainer { { MeasurementValidity-ExtIEs } } OPTIONAL,
+ ...
+}
+MeasurementValidity-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Method Type
+--
+-- **************************************************************
+
+MethodType ::= ENUMERATED {
+ ue-assisted,
+ ue-based
+}
+
+
+-- **************************************************************
+--
+-- OTDOA Measurement Group
+--
+-- **************************************************************
+
+OTDOA-MeasurementGroup ::= SEQUENCE {
+ otdoa-ReferenceCellInfo OTDOA-ReferenceCellInfo,
+ otdoa-NeighbourCellInfoList OTDOA-NeighbourCellInfoList,
+ otdoa-MeasuredResultsSets OTDOA-MeasuredResultsSets,
+ iE-Extensions ProtocolExtensionContainer { { OTDOA-MeasurementGroup-ExtIEs } } OPTIONAL,
+ ...
+}
+
+OTDOA-MeasurementGroup-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+OTDOA-ReferenceCellInfo ::= SEQUENCE {
+ uC-ID UC-ID,
+ uTRANAccessPointPositionAltitude UTRANAccessPointPositionAltitude,
+ tUTRANGPSMeasurementValueInfo TUTRANGPSMeasurementValueInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { OTDOA-ReferenceCellInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+OTDOA-ReferenceCellInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TUTRANGANSSMeasurementValueInfo CRITICALITY ignore EXTENSION TUTRANGANSSMeasurementValueInfo PRESENCE optional }|
+ { ID id-additionalMeasurementInforLCR CRITICALITY ignore EXTENSION AdditionalMeasurementInforLCR PRESENCE optional },
+ -- 1.28Mcps TDD only
+ ...
+}
+
+OTDOA-ReferenceCellInfoSAS-centric ::= SEQUENCE {
+ uC-ID UC-ID,
+ iE-Extensions ProtocolExtensionContainer { { OTDOA-ReferenceCellInfoSAS-centric-ExtIEs } } OPTIONAL,
+ ...
+}
+
+OTDOA-ReferenceCellInfoSAS-centric-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+OTDOA-NeighbourCellInfoList ::= SEQUENCE (SIZE (1..maxNrOfMeasNCell)) OF
+ OTDOA-NeighbourCellInfo
+
+OTDOA-NeighbourCellInfo ::= SEQUENCE {
+ uC-ID UC-ID,
+ uTRANAccessPointPositionAltitude UTRANAccessPointPositionAltitude,
+ relativeTimingDifferenceInfo RelativeTimingDifferenceInfo,
+ iE-Extensions ProtocolExtensionContainer { { OTDOA-NeighbourCellInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+OTDOA-NeighbourCellInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+OTDOA-MeasuredResultsSets ::= SEQUENCE (SIZE (1..maxNrOfMeasurements)) OF
+ OTDOA-MeasuredResultsInfoList
+
+OTDOA-MeasuredResultsInfoList ::= SEQUENCE (SIZE (1..maxNrOfMeasNCell)) OF
+ OTDOA-MeasuredResultsInfo
+
+OTDOA-MeasuredResultsInfo ::= SEQUENCE {
+ uC-ID UC-ID,
+ ue-SFNSFNTimeDifferenceType2Info UE-SFNSFNTimeDifferenceType2Info,
+ iE-Extensions ProtocolExtensionContainer { { OTDOA-MeasuredResultsInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+OTDOA-MeasuredResultsInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-OTDOA-AddMeasuredResultsInfo CRITICALITY ignore EXTENSION OTDOA-AddMeasuredResultsInfo PRESENCE optional},
+ ...
+}
+
+OTDOA-AddMeasuredResultsInfo ::= SEQUENCE {
+ primaryCPICH-Info PrimaryScramblingCode,
+ iE-Extensions ProtocolExtensionContainer { { OTDOA-AddMeasuredResultsInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+OTDOA-AddMeasuredResultsInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-SFNSFNTimeDifferenceType2Info ::= SEQUENCE {
+ ue-SFNSFNTimeDifferenceType2 INTEGER (0..40961),
+ ue-PositioningMeasQuality UE-PositioningMeasQuality,
+ measurementDelay INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { UE-SFNSFNTimeDifferenceInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-SFNSFNTimeDifferenceInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UC-ID ::= SEQUENCE {
+ rNC-ID INTEGER (0..4095),
+ c-ID INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { UC-ID-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UC-ID-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-RNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional},
+ ...
+}
+
+Extended-RNC-ID ::= INTEGER (4096..65535)
+
+
+RelativeTimingDifferenceInfo ::= CHOICE {
+ sFNSFNMeasurementValueInfo SFNSFNMeasurementValueInfo,
+ tUTRANGPSMeasurementValueInfo TUTRANGPSMeasurementValueInfo,
+ ...,
+ tUTRANGANSSMeasurementValueInfo TUTRANGANSSMeasurementValueInfo
+}
+
+SFNSFNMeasurementValueInfo ::= SEQUENCE {
+ sFNSFNValue SFNSFNValue,
+ sFNSFNQuality SFNSFNQuality OPTIONAL,
+ sFNSFNDriftRate SFNSFNDriftRate,
+ sFNSFNDriftRateQuality SFNSFNDriftRateQuality OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNMeasurementValueInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SFNSFNMeasurementValueInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNValue ::= INTEGER (0..614399)
+
+SFNSFNQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/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
+
+TUTRANGPSMeasurementValueInfo ::= SEQUENCE {
+ sFN SFN,
+ tUTRANGPS TUTRANGPS,
+ tUTRANGPSQuality TUTRANGPSQuality OPTIONAL,
+ tUTRANGPSDriftRate TUTRANGPSDriftRate,
+ tUTRANGPSDriftRateQuality TUTRANGPSDriftRateQuality OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TUTRANGPSMeasurementValueInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TUTRANGPSMeasurementValueInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFN ::= INTEGER (0..4095)
+
+TUTRANGPS ::= SEQUENCE {
+ ms-part INTEGER (0..16383),
+ ls-part INTEGER (0..4294967295)
+}
+
+TUTRANGPSQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/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
+
+TUTRANGANSSMeasurementValueInfo ::= SEQUENCE {
+ ganssID GANSSID OPTIONAL,
+ sFN SFN,
+ tUTRANGANSS TUTRANGANSS,
+ tUTRANGANSSQuality INTEGER(0..255) OPTIONAL,
+ tUTRANGANSSDriftRate INTEGER(-50..50),
+ tUTRANGANSSDriftRateQuality INTEGER(0..50) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TUTRANGANSSMeasurementValueInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TUTRANGANSSMeasurementValueInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGANSS ::= SEQUENCE {
+ ms-part INTEGER (0..16383),
+ ls-part INTEGER (0..4294967295)
+}
+
+AdditionalMeasurementInforLCR ::= SEQUENCE {
+ timingAdvanceLCR-R7 TimingAdvanceLCR-R7,
+ rxTimingDeviationLCR RxTimingDeviationLCR,
+ angleOfArrivalLCR AngleOfArrivalLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AdditionalMeasurementInforLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+AdditionalMeasurementInforLCR-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimingAdvanceLCR-R7 ::= INTEGER (0..8191)
+
+-- **************************************************************
+--
+-- Periodic Position Calculation Info
+--
+-- **************************************************************
+
+PeriodicPosCalcInfo ::= SEQUENCE {
+ referenceNumber INTEGER (0..32767, ...),
+ amountOutstandingRequests INTEGER (1..8639999, ...),
+ reportingInterval INTEGER (1..8639999, ...),
+ iE-Extensions ProtocolExtensionContainer { { PeriodicPosCalcInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PeriodicPosCalcInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Periodic Location Info
+--
+-- **************************************************************
+
+PeriodicLocationInfo ::= SEQUENCE {
+ reportingAmount INTEGER (1..8639999, ...),
+ reportingInterval INTEGER (1..8639999, ...),
+ iE-Extensions ProtocolExtensionContainer { { PeriodicLocationInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PeriodicLocationInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Periodic Termination Cause
+--
+-- **************************************************************
+
+PeriodicTerminationCause ::= ENUMERATED {
+ rrc-state-transition,
+ cancelled-by-srnc,
+ cancelled-by-sas,
+ undefined,
+ ...
+ }
+
+-- **************************************************************
+--
+-- Positioning Method
+--
+-- **************************************************************
+
+PositioningMethod ::= SEQUENCE {
+ additionalMethodType AdditionalMethodType,
+ selectedPositionMethod SelectedPositionMethod,
+ iE-Extensions ProtocolExtensionContainer { { PositioningMethod-ExtIEs } } OPTIONAL,
+ ...
+}
+
+
+
+PositioningMethod-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+-- The following IE shall be present if the Selected Position Method IE value is set to "GNSS" or "OTDOA or GNSS"
+ { ID id-GNSS-PositioningMethod CRITICALITY ignore EXTENSION GNSS-PositioningMethod PRESENCE conditional },
+ ...
+}
+
+GNSS-PositioningMethod ::= BIT STRING (SIZE(9))
+
+SelectedPositionMethod ::= ENUMERATED {
+ oTDOA,
+ gPS,
+ oTDOA-or-GPS,
+ cell-id,
+ uTDOA,
+ ...,
+ gNSS,
+ oTDOA-or-GNSS
+}
+
+-- **************************************************************
+--
+-- Positioning Priority
+--
+-- **************************************************************
+PositioningPriority ::= ENUMERATED {
+ high-priority,
+ normal-priority,
+ ...
+}
+
+-- **************************************************************
+--
+-- RRC State Change
+--
+-- **************************************************************
+
+RRCstateChange ::= SEQUENCE {
+ new-ue-State ENUMERATED { cell-DCH, cell-FACH, cell-PCH, ura-PCH, ... },
+ iE-Extensions ProtocolExtensionContainer { { RRCstateChange-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RRCstateChange-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Requested Data Value
+--
+-- **************************************************************
+
+RequestedDataValue ::= SEQUENCE {
+ gpsAlmanacAndSatelliteHealth GPS-AlmanacAndSatelliteHealth OPTIONAL,
+ gps-UTC-Model GPS-UTC-Model OPTIONAL,
+ gps-Ionospheric-Model GPS-Ionospheric-Model OPTIONAL,
+ gps-NavigationModel GPS-NavigationModel OPTIONAL,
+ dgpsCorrections DGPSCorrections OPTIONAL,
+ referenceTime GPS-ReferenceTime OPTIONAL,
+ gps-AcquisitionAssistance GPS-AcquisitionAssistance OPTIONAL,
+ gps-RealTime-Integrity GPS-RealTimeIntegrity OPTIONAL,
+ almanacAndSatelliteHealthSIB AlmanacAndSatelliteHealthSIB OPTIONAL,
+ gps-Transmission-TOW GPS-Transmission-TOW OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RequestedDataValue-ExtIEs} } OPTIONAL,
+ ...
+}
+
+--at least one of the above IEs shall be present in the requested data value
+
+RequestedDataValue-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GPS-ReferenceLocation CRITICALITY ignore EXTENSION GPS-ReferenceLocation PRESENCE optional }|
+ { ID id-GANSS-CommonAssistanceData CRITICALITY ignore EXTENSION GANSS-CommonAssistanceData PRESENCE optional }|
+ { ID id-GANSS-GenericAssistanceDataList CRITICALITY ignore EXTENSION GANSS-GenericAssistanceDataList PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Requested Data Value Information
+--
+-- **************************************************************
+
+RequestedDataValueInformation ::= CHOICE {
+ informationAvailable InformationAvailable,
+ informationNotAvailable InformationNotAvailable
+}
+
+InformationAvailable::= SEQUENCE {
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { InformationAvailable-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationAvailable-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationNotAvailable ::= NULL
+
+-- **************************************************************
+--
+-- Request Type
+--
+-- **************************************************************
+RequestType ::= SEQUENCE {
+ event RequestTypeEvent,
+ reportArea RequestTypeReportArea,
+ horizontalaccuracyCode RequestTypeAccuracyCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RequestType-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RequestTypeEvent ::= ENUMERATED {
+ stop-change-of-service-area,
+ direct,
+ change-of-service-area,
+ stop-direct,
+ ...,
+ periodic,
+ stop-periodic
+}
+
+RequestTypeReportArea ::= ENUMERATED {
+ service-area,
+ geographical-area,
+ ...
+}
+
+RequestTypeAccuracyCode ::= INTEGER (0..127)
+
+-- **************************************************************
+--
+-- Response Time
+--
+-- **************************************************************
+ResponseTime ::= ENUMERATED {
+ low-delay,
+ delay-tolerant,
+ ...
+}
+
+-- **************************************************************
+--
+-- Horizontal Accuracy Code
+--
+-- **************************************************************
+
+HorizontalAccuracyCode ::= INTEGER (0..127)
+
+-- **************************************************************
+--
+-- UE Positioning Capability
+--
+-- **************************************************************
+UE-PositioningCapability ::= SEQUENCE {
+ standAloneLocationMethodsSupported BOOLEAN,
+ ueBasedOTDOASupported BOOLEAN,
+ networkAssistedGPSSupport NetworkAssistedGPSSuport,
+ supportGPSTimingOfCellFrame BOOLEAN,
+ supportForIPDL BOOLEAN,
+ supportForRxTxTimeDiff BOOLEAN,
+ supportForUEAGPSinCellPCH BOOLEAN,
+ supportForSFNSFNTimeDiff BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { {UE-PositioningCapability-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-PositioningCapability-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-NetworkAssistedGANSSSuport CRITICALITY ignore EXTENSION NetworkAssistedGANSSSupport PRESENCE optional },
+ ...
+}
+
+NetworkAssistedGANSSSupport ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE {
+ ganssID GANSSID OPTIONAL,
+ ganssMode ENUMERATED {
+ networkBased,
+ ue-Based,
+ both,
+ none
+ },
+ ganssSignalID GANSS-SignalID OPTIONAL,
+ supportGANSSTimingOfCellFrame BOOLEAN,
+ supportGANSSCarrierPhaseMeasurement BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { { NetworkAssistedGANSSSuport-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NetworkAssistedGANSSSuport-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ -- the following IE shall be present if 'GANSSID' in 'NetworkAssistedGANSSSupport' is '0' (SBAS)
+ { ID id-GANSS-SBAS-IDs CRITICALITY ignore EXTENSION GANSS-SBAS-IDs PRESENCE optional }|
+ { ID id-GANSS-Signal-IDs CRITICALITY ignore EXTENSION GANSS-Signal-IDs PRESENCE optional }|
+ { ID id-supportGANSSNonNativeADchoices CRITICALITY ignore EXTENSION SupportGANSSNonNativeADchoices PRESENCE optional },
+ ...
+}
+
+NetworkAssistedGPSSuport ::= ENUMERATED {
+ network-based,
+ ue-based,
+ both,
+ none,
+ ...
+}
+
+GANSS-SBAS-IDs ::= SEQUENCE {
+ ganss-sbas-ids BIT STRING (SIZE(8)),
+ iE-Extensions ProtocolExtensionContainer { { GANSS-SBAS-IDs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GANSS-SBAS-IDs-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-Signal-IDs ::= SEQUENCE {
+ ganss-signal-ids BIT STRING (SIZE(8)),
+ iE-Extensions ProtocolExtensionContainer { { GANSS-Signal-IDs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GANSS-Signal-IDs-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SupportGANSSNonNativeADchoices ::= BOOLEAN
+
+-- **************************************************************
+--
+-- UTDOA Positioning (Position Activation Request Message)
+--
+-- **************************************************************
+
+UTDOAPositioning ::= SEQUENCE {
+ utdoa-BitCount UTDOA-BitCount,
+ utdoa-timeInterval UTDOA-TimeInterval,
+ iE-Extensions ProtocolExtensionContainer { { UTDOAPositioning-ExtIEs } } OPTIONAL,
+ ...
+}
+
+
+UTDOAPositioning-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UTDOA-BitCount ::= INTEGER (0..5000)
+
+UTDOA-TimeInterval ::= INTEGER (0..3000)
+
+EnvironmentCharacterisation ::= ENUMERATED { heavyMultipathandNLOSconditions,
+ noOrLightMultipathAndUsuallyLOSconditions,
+ notDefinedOrMixedEnvironment,
+ ...
+ }
+
+
+-- **************************************************************
+--
+-- GPS and GANSS Positioning (Position Activation Request Message)
+--
+-- **************************************************************
+GPSPositioning ::= SEQUENCE {
+ gpsPositioningInstructions GPSPositioningInstructions,
+ requestedDataValue RequestedDataValue OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GPSPositioning-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPSPositioning-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPSPositioningInstructions ::= SEQUENCE {
+ horizontalAccuracyCode HorizontalAccuracyCode OPTIONAL,
+ verticalAccuracyCode VerticalAccuracyCode OPTIONAL,
+ gpsTimingOfCellWanted BOOLEAN,
+ additionalAssistanceDataRequest BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { { GPSPositioningInstructions-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GPSPositioningInstructions-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-MeasurementValidity CRITICALITY ignore EXTENSION MeasurementValidity PRESENCE optional},
+ ...
+}
+
+GANSSPositioning ::= SEQUENCE {
+ ganssPositioningInstructions GANSS-PositioningInstructions,
+ requestedDataValue RequestedDataValue OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GANSSPositioning-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSSPositioning-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-PositioningInstructions ::= SEQUENCE {
+ horizontalAccuracyCode HorizontalAccuracyCode OPTIONAL,
+ verticalAccuracyCode VerticalAccuracyCode OPTIONAL,
+ ganssTimingOfCellWanted BIT STRING (SIZE (8)),
+ additionalAssistanceDataRequest BIT STRING (SIZE (8)),
+ measurementValidity MeasurementValidity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-PositioningInstructions-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-PositioningInstructions-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSScarrierPhaseRequested CRITICALITY ignore EXTENSION GANSScarrierPhaseRequested PRESENCE optional}|
+ {ID id-GANSSMultiFreqMeasRequested CRITICALITY ignore EXTENSION GANSSMultiFreqMeasRequested PRESENCE optional},
+ ...
+}
+
+GANSScarrierPhaseRequested ::= BIT STRING (SIZE (8))
+
+GANSSMultiFreqMeasRequested ::= BIT STRING (SIZE (8))
+
+
+-- **************************************************************
+--
+-- OTDOA Assistance Data
+--
+-- **************************************************************
+OTDOAAssistanceData ::= SEQUENCE {
+ uE-Positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData,
+ iE-Extensions ProtocolExtensionContainer { { OTDOAAssistanceData-ExtIEs } } OPTIONAL,
+ ...
+
+}
+OTDOAAssistanceData-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ************************************
+--
+-- UE Positioning OTDOA Assistance Data
+--
+-- ************************************
+
+UE-Positioning-OTDOA-AssistanceData ::= SEQUENCE {
+ ue-positioning-OTDOA-ReferenceCellInfo UE-Positioning-OTDOA-ReferenceCellInfo OPTIONAL,
+ ue-positioning-OTDOA-NeighbourCellList UE-Positioning-OTDOA-NeighbourCellList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-Positioning-OTDOAAssistanceData-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-Positioning-OTDOAAssistanceData-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-Positioning-OTDOA-ReferenceCellInfo ::= SEQUENCE {
+ sfn SFN OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryScramblingCode,
+ ...
+ },
+ tdd SEQUENCE{
+ cellParameterID CellParameterID,
+ --- coding is FFS
+ ...
+ },
+ ...
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ positioningMode CHOICE {
+ ueBased SEQUENCE {
+ cellPosition ReferenceCellPosition OPTIONAL,
+ -- actual value roundTripTime = (IE value * 0.0625) + 876
+ roundTripTime INTEGER (0..32766) OPTIONAL,
+ ...
+ },
+ ueAssisted SEQUENCE {
+ ...
+ },
+ ...
+ },
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-Positioning-OTDOAReferenceCellInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-Positioning-OTDOAReferenceCellInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ExtendedRoundTripTime CRITICALITY ignore EXTENSION ExtendedRoundTripTime PRESENCE optional }| -- FDD only
+ { ID id-timingAdvanceLCR-R7 CRITICALITY ignore EXTENSION TimingAdvanceLCR-R7 PRESENCE optional }| -- 1.28Mcps TDD only
+ { ID id-rxTimingDeviationLCR CRITICALITY ignore EXTENSION RxTimingDeviationLCR PRESENCE optional }| -- 1.28Mcps TDD only
+ { ID id-angleOfArrivalLCR CRITICALITY ignore EXTENSION AngleOfArrivalLCR PRESENCE optional }, -- 1.28Mcps TDD only
+ ...
+}
+
+ReferenceCellPosition ::= CHOICE {
+ ellipsoidPoint GeographicalCoordinates,
+ ellipsoidPointWithAltitude GA-PointWithAltitude,
+ ...
+}
+
+
+
+UE-Positioning-IPDL-Parameters ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ip-Spacing IP-Spacing,
+ ip-Length IP-Length,
+ ip-Offset INTEGER (0..9),
+ seed INTEGER (0..63),
+ ...
+ },
+ tdd SEQUENCE {
+ -- coding is FFS
+ ...
+ },
+ ...
+ },
+ burstModeParameters BurstModeParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-Positioning-IPDL-Parameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-Positioning-IPDL-Parameters-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IP-Spacing ::= ENUMERATED {
+ e5, e7, e10, e15, e20,
+ e30, e40, e50, ... }
+
+IP-Length ::= ENUMERATED {
+ ipl5, ipl10, ... }
+
+BurstModeParameters ::= SEQUENCE {
+ burstStart INTEGER (0..15),
+ burstLength INTEGER (10..25),
+ burstFreq INTEGER (1..16),
+ iE-Extensions ProtocolExtensionContainer { { BurstModeParameters-ExtIEs } } OPTIONAL,
+
+ ...
+}
+
+BurstModeParameters-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+UE-Positioning-OTDOA-NeighbourCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ UE-Positioning-OTDOA-NeighbourCellInfo
+
+
+UE-Positioning-OTDOA-NeighbourCellInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryScramblingCode,
+ ...
+ },
+ tdd SEQUENCE{
+ cellParameterID CellParameterID,
+ -- coding is FFS
+ ...
+ },
+ ...
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL,
+ sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1,
+ sfn-Offset-Validity SFN-Offset-Validity OPTIONAL,
+ sfn-SFN-Drift SFN-SFN-Drift OPTIONAL,
+ searchWindowSize OTDOA-SearchWindowSize,
+ positioningMode CHOICE {
+ ueBased SEQUENCE {
+ relativeNorth INTEGER (-20000..20000) OPTIONAL,
+ relativeEast INTEGER (-20000..20000) OPTIONAL,
+ relativeAltitude INTEGER (-4000..4000) OPTIONAL,
+ fineSFN-SFN FineSFNSFN OPTIONAL,
+ -- actual value roundTripTime = (IE value * 0.0625) + 876
+ roundTripTime INTEGER (0.. 32766) OPTIONAL,
+ ...
+ },
+ ueAssisted SEQUENCE {
+ ...
+ },
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { UE-Positioning-OTDOANeighbourCellInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-Positioning-OTDOANeighbourCellInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ExtendedRoundTripTime CRITICALITY ignore EXTENSION ExtendedRoundTripTime PRESENCE optional }, -- FDD only
+ ...
+}
+
+
+SFN-SFN-RelTimeDifference1 ::= SEQUENCE {
+ sfn-Offset INTEGER (0 .. 4095),
+ sfn-sfn-Reltimedifference INTEGER (0.. 38399),
+ iE-Extensions ProtocolExtensionContainer { { SFN-SFN-RelTimeDifference1-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SFN-SFN-RelTimeDifference1-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFN-Offset-Validity ::= ENUMERATED { false }
+
+OTDOA-SearchWindowSize ::= ENUMERATED {
+ c20, c40, c80, c160, c320,
+ c640, c1280, moreThan1280, ... }
+
+SFN-SFN-Drift ::= ENUMERATED {
+ sfnsfndrift0, sfnsfndrift1, sfnsfndrift2,
+ sfnsfndrift3, sfnsfndrift4, sfnsfndrift5,
+ sfnsfndrift8, sfnsfndrift10, sfnsfndrift15,
+ sfnsfndrift25, sfnsfndrift35, sfnsfndrift50,
+ sfnsfndrift65, sfnsfndrift80, sfnsfndrift100,
+ sfnsfndrift-1, sfnsfndrift-2, sfnsfndrift-3,
+ sfnsfndrift-4, sfnsfndrift-5, sfnsfndrift-8,
+ sfnsfndrift-10, sfnsfndrift-15, sfnsfndrift-25,
+ sfnsfndrift-35, sfnsfndrift-50, sfnsfndrift-65,
+ sfnsfndrift-80, sfnsfndrift-100, ...}
+
+
+FineSFNSFN ::= INTEGER (0..15)
+-- Range 0..0.9375 step size 0.0625
+
+-- **************************************************************
+--
+-- Vertical Accuracy Code
+--
+-- **************************************************************
+
+VerticalAccuracyCode ::= INTEGER (0..127)
+
+
+-- **************************************************************
+--
+-- UTDOA Group
+--
+-- **************************************************************
+
+UTDOA-Group ::= SEQUENCE {
+ uC-ID UC-ID,
+ frequencyInfo FrequencyInfo,
+ uTDOA-ChannelSettings UTDOA-RRCState,
+ iE-Extensions ProtocolExtensionContainer { { UTDOA-Group-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UTDOA-Group-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+FrequencyInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd FrequencyInfoFDD,
+ tdd FrequencyInfoTDD,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { FrequencyInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+FrequencyInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FrequencyInfoFDD ::= SEQUENCE {
+ uarfcn-UL UARFCN OPTIONAL,
+ uarfcn-DL UARFCN,
+ iE-Extensions ProtocolExtensionContainer { { FrequencyInfoFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+FrequencyInfoFDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FrequencyInfoTDD ::= SEQUENCE {
+
+ uarfcn UARFCN,
+ iE-Extensions ProtocolExtensionContainer { {FrequencyInfoTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FrequencyInfoTDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UTDOA-RRCState ::= CHOICE {
+ uTDOA-CELLDCH UTDOA-CELLDCH,
+ uTDOA-CELLFACH UTDOA-CELLFACH,
+ ...
+}
+
+-- ***********************************
+--
+-- UTDOA Cell DCH Information
+--
+-- ***********************************
+UTDOA-CELLDCH ::= SEQUENCE {
+ uL-DPCHInfo UL-DPCHInfo,
+ compressedModeAssistanceData Compressed-Mode-Assistance-Data OPTIONAL,
+ dCH-Information DCH-Information OPTIONAL,
+ e-DPCH-Information E-DPCH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UTDOA-CELLDCH-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UTDOA-CELLDCH-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCHInfo ::= CHOICE {
+ fdd SEQUENCE {
+ scramblingCodeType ScramblingCodeType,
+ scramblingCode UL-ScramblingCode,
+ tfci-Existence BOOLEAN,
+ numberOfFBI-Bits NumberOfFBI-Bits,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCHInfoFDD-ExtIEs} } OPTIONAL,
+ ...
+
+ },
+ tdd SEQUENCE {
+ cellParameterID CellParameterID,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PuncturingLimit,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ frameOffset FrameOffset,
+ specialBurstScheduling SpecialBurstScheduling,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCHInfoTDD-ExtIEs} } OPTIONAL,
+ ...
+ },
+ ...
+
+ }
+
+UL-DPCHInfoFDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCHInfoTDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Compressed-Mode-Assistance-Data ::= SEQUENCE {
+ dl-information DL-InformationFDD,
+ ul-information UL-InformationFDD,
+ iE-Extensions ProtocolExtensionContainer { { Compressed-Mode-Assistance-DataFDD-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+Compressed-Mode-Assistance-DataFDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-InformationFDD ::= SEQUENCE {
+ primaryScramblingCode PrimaryScramblingCode,
+ chipOffset ChipOffset,
+ frameOffset FrameOffset,
+ iE-Extensions ProtocolExtensionContainer { { DL-InformationFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-InformationFDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-InformationFDD ::= SEQUENCE {
+ transmissionGapPatternSequenceInfo Transmission-Gap-Pattern-Sequence-Information,
+ activePatternSequenceInfo Active-Pattern-Sequence-Information,
+ cFN CFN,
+ iE-Extensions ProtocolExtensionContainer { { UL-InformationFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UL-InformationFDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Information ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ SEQUENCE {
+ tGPSID TGPSID,
+ tGSN TGSN,
+ tGL1 GapLength,
+ tGL2 GapLength OPTIONAL,
+ tGD TGD,
+ tGPL1 GapDuration,
+ uplink-Compressed-Mode-Method Uplink-Compressed-Mode-Method,
+ iE-Extensions ProtocolExtensionContainer { {Transmission-Gap-Pattern-Sequence-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Transmission-Gap-Pattern-Sequence-Information-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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)
+
+
+Uplink-Compressed-Mode-Method ::= ENUMERATED {
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+GapDuration ::= INTEGER (1..144,...)
+-- Unit frame
+
+GapLength ::= INTEGER (1..14)
+-- Unit slot
+
+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 PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Status-List ::= SEQUENCE (SIZE (1..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 PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-Information ::= SEQUENCE {
+ tFCS TFCS,
+ trChInfo TrChInfoList,
+ iE-Extensions ProtocolExtensionContainer { { DCH-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Information-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TrChInfoList ::= SEQUENCE (SIZE(1..maxTrCH)) OF
+ UL-TrCHInfo
+
+UL-TrCHInfo ::= SEQUENCE {
+ uL-TrCHtype UL-TrCHType,
+ tfs TransportFormatSet,
+ iE-Extensions ProtocolExtensionContainer { { UL-TrCHInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-TrCHInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TrCHType ::= ENUMERATED {dch, usch, ...}
+
+
+E-DPCH-Information ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs,
+ ul-PunctureLimit PuncturingLimit,
+ e-TFCS-Information E-TFCS-Information,
+ e-TTI E-TTI,
+ e-DPCCH-PO E-DPCCH-PO OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DPCH-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DPCH-Information-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Max-Set-E-DPDCHs ::= ENUMERATED {
+ vN64, vN32, vN16, vN8, v2xN4, v2xN2, v2xN2plus2xN4,
+ ...
+ }
+-- Values related to TS 25.212 [16]
+
+E-TFCS-Information ::= SEQUENCE {
+ e-DCH-TFCS-Index E-DCH-TFCS-Index,
+ reference-E-TFCI-Information Reference-E-TFCI-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-TFCS-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-TFCS-Information-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TFCS-Index ::= INTEGER (1..4,...)
+
+
+Reference-E-TFCI-Information ::= SEQUENCE (SIZE (1..maxNrOfRefETFCIs)) OF Reference-E-TFCI-Information-Item
+
+Reference-E-TFCI-Information-Item ::= SEQUENCE {
+ reference-E-TFCI E-TFCI,
+ reference-E-TFCI-PO Reference-E-TFCI-PO,
+ iE-Extensions ProtocolExtensionContainer { { Reference-E-TFCI-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Reference-E-TFCI-Information-Item-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Reference-E-TFCI-PO ::= INTEGER (0.. maxNrOfRefETFCI-PO-QUANTSTEPs)
+ -- FFS according to mapping in TS 25.213 [17]
+
+E-TFCI ::= INTEGER (0..127)
+
+E-TTI ::= ENUMERATED {
+ e-TTI-2ms,
+ e-TTI-10ms,
+ ...
+}
+
+E-DPCCH-PO ::= INTEGER (0..maxNrOfEDPCCH-PO-QUANTSTEPs)
+
+CellParameterID ::= INTEGER (0..127,...)
+
+TFCI-Coding ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ ...
+}
+
+RepetitionLength ::= INTEGER (1..63)
+
+RepetitionPeriod ::= ENUMERATED {
+ v1,
+ v2,
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ ...
+}
+
+TDD-DPCHOffset ::= CHOICE {
+ initialOffset INTEGER (0..255),
+ noinitialOffset INTEGER (0..63)
+}
+
+UL-Timeslot-Information ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationItem
+
+maxNrOfULTSs INTEGER ::= 15
+UL-Timeslot-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence BOOLEAN,
+ uL-Code-InformationList TDD-UL-Code-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TimeSlot ::= INTEGER (0..14)
+
+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)
+
+MidambleConfigurationBurstType1And3 ::= ENUMERATED {v4, v8, v16}
+
+MidambleConfigurationBurstType2 ::= ENUMERATED {v3, v6}
+
+TDD-UL-Code-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF TDD-UL-Code-InformationItem
+
+maxNrOfDPCHs INTEGER ::= 240
+
+TDD-UL-Code-InformationItem ::= SEQUENCE {
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { TDD-UL-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-InformationItem-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ ...
+}
+
+SpecialBurstScheduling ::= INTEGER (1..256) -- Number of frames between special burst transmission during DTX
+
+-- **********************************
+--
+-- UTDOA Cell Fach Information
+--
+-- **********************************
+
+UTDOA-CELLFACH ::= SEQUENCE {
+ pRACHparameters PRACHparameters,
+ cRNTI C-RNTI,
+ uschParameters UschParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UTDOA-CELLFACH-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UTDOA-CELLFACH-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACHparameters ::= SEQUENCE (SIZE (1..maxPRACH)) OF
+ PRACH-ChannelInfo
+
+
+PRACH-ChannelInfo ::= SEQUENCE {
+ pRACH-Info PRACH-Info,
+ tFS TransportFormatSet,
+ tFCS TFCS,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-ChannelInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-ChannelInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+PRACH-Info ::= CHOICE {
+ fdd SEQUENCE {
+ availableSignatures AvailableSignatures,
+ availableSF SF-PRACH,
+ preambleScramblingCodeWordNumber PreambleScramblingCodeWordNumber,
+ puncturingLimit PuncturingLimit,
+ availableSubChannelNumbers AvailableSubChannelNumbers,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-Info-FDD-ExtIEs} } OPTIONAL,
+ ...
+ },
+ tdd SEQUENCE {
+ timeSlot TimeSlot,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ maxPRACH-MidambleShifts MaxPRACH-MidambleShifts,
+ pRACH-Midamble PRACH-Midamble,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-Info-TDD-ExtIEs} } OPTIONAL,
+ ...
+ },
+ ...
+}
+
+PRACH-Info-FDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-Info-TDD-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SF-PRACH ::= ENUMERATED {
+ sfpr32, sfpr64, sfpr128, sfpr256, ... }
+
+AvailableSignatures ::= 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))
+
+PreambleScramblingCodeWordNumber ::= INTEGER (0..15)
+
+PuncturingLimit ::= INTEGER (0..15)
+-- 0: 40%; 1: 44%; ... 14: 96%; 15: 100%
+
+
+AvailableSubChannelNumbers ::= 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))
+
+
+ScramblingCodeType ::= ENUMERATED {
+ shortSC,
+ longSC }
+
+UL-ScramblingCode ::= INTEGER (0..16777215)
+
+NumberOfFBI-Bits ::= INTEGER (0..2)
+
+TransportFormatSet ::= SEQUENCE {
+ dynamicPart TransportFormatSet-DynamicPartList,
+ semi-staticPart TransportFormatSet-Semi-staticPart,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-DynamicPartList ::= SEQUENCE (SIZE (1..maxNrOfTFs)) OF
+ SEQUENCE {
+ rlc-Size RLC-Size,
+ numberOfTbsTTIList SEQUENCE (SIZE (1..maxNrOfTFs)) OF TbsTTIInfo,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-DynamicPartList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TransportFormatSet-DynamicPartList-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TbsTTIInfo ::= SEQUENCE {
+ tTIInfo TransportFormatSet-TransmissionTimeIntervalDynamic OPTIONAL,
+ numberOfTbs TransportFormatSet-NrOfTransportBlocks,
+ iE-Extensions ProtocolExtensionContainer { { TbsTTIInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TbsTTIInfo-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLC-Size ::= INTEGER (129..5055)
+
+
+TransportFormatSet-NrOfTransportBlocks ::= INTEGER (0..512)
+
+
+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,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-Semi-staticPart-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-Semi-staticPart-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-TransmissionTimeIntervalSemiStatic ::= ENUMERATED {
+ msec-5,
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ dynamic,
+ ...
+}
+
+TransportFormatSet-ChannelCodingType ::= ENUMERATED {
+ no-codingTDD,
+ convolutional-coding,
+ turbo-coding,
+ ...
+}
+
+TransportFormatSet-CodingRate ::= ENUMERATED {
+ half,
+ third,
+ ...
+}
+
+TransportFormatSet-RateMatchingAttribute ::= INTEGER (1..maxRateMatching)
+
+TransportFormatSet-CRC-Size ::= ENUMERATED {
+ v0,
+ v8,
+ v12,
+ v16,
+ v24,
+ ...
+}
+
+
+
+TransportFormatSet-TransmissionTimeIntervalDynamic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ dynamic,
+ ...
+}
+
+TFCS ::= SEQUENCE (SIZE (1..maxTFC)) OF CTFC
+
+CTFC ::= CHOICE{
+ ctfc2Bit SEQUENCE (SIZE (1..maxTFC)) OF INTEGER (0..3),
+ ctfc4Bit SEQUENCE (SIZE (1..maxTFC)) OF INTEGER (0..15),
+ ctfc6Bit SEQUENCE (SIZE (1..maxTFC)) OF INTEGER (0..63),
+ ctfc8Bit SEQUENCE (SIZE (1..maxTFC)) OF INTEGER (0..255),
+ ctfc12Bit SEQUENCE (SIZE (1..maxTFC)) OF INTEGER (0..4095),
+ ctfc16Bit SEQUENCE (SIZE (1..maxTFC)) OF INTEGER (0..65535),
+ ctfc24Bit SEQUENCE (SIZE (1..maxTFC)) OF INTEGER (0..16777215),
+ ...
+ }
+
+
+C-RNTI ::= BIT STRING (SIZE (16))
+
+UARFCN ::= INTEGER (0..16383)
+
+
+CFN ::= INTEGER (0..255)
+
+ChipOffset ::= INTEGER (0..38399)
+-- Unit Chip
+
+FrameOffset ::= INTEGER (0..255)
+
+PrimaryScramblingCode ::= INTEGER (0..511)
+
+UschParameters ::= SEQUENCE {
+ cellParameterID CellParameterID,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PuncturingLimit,
+ repetitionPeriod RepetitionPeriod,
+ uSCH-SchedulingOffset USCH-SchedulingOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ tFCS TFCS,
+ trChInfo TrChInfoList,
+ iE-Extensions ProtocolExtensionContainer { { UschParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UschParameters-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+USCH-SchedulingOffset ::= INTEGER (0..255)
+
+MaxPRACH-MidambleShifts ::= ENUMERATED {
+ shift4,
+ shift8,
+ ...
+}
+
+PRACH-Midamble ::= ENUMERATED {
+ inverted,
+ direct,
+ ...
+}
+
+--******************************************
+--
+-- Positioning Response Time
+--
+--******************************************
+
+Positioning-ResponseTime ::= ENUMERATED { ms250, ms500, s1, s2, s3, s4, s6,
+ s8, s12, s16, s20, s24, s28, s32, s64,
+ ...
+ }
+
+--******************************************
+--
+-- Amount of Reporting
+--
+--******************************************
+
+AmountOfReporting ::= ENUMERATED { ra2, ra4, ra8, ra16, ra32,
+ ra64, ra-Infinity, ... }
+
+
+
+-- **************************************************************
+--
+-- Include Velocity
+--
+-- **************************************************************
+
+IncludeVelocity ::= ENUMERATED {
+ requested
+}
+
+
+-- **************************************************************
+--
+-- VelocityEstimate
+--
+-- **************************************************************
+
+-- VelocityEstimate is based on Description of Velocity in 23.032
+
+VelocityEstimate ::= CHOICE {
+ horizontalVelocity HorizontalVelocity,
+ horizontalWithVerticalVelocity HorizontalWithVerticalVelocity,
+ horizontalVelocityWithUncertainty HorizontalVelocityWithUncertainty,
+ horizontalWithVerticalVelocityAndUncertainty HorizontalWithVerticalVelocityAndUncertainty,
+ ...
+}
+
+HorizontalVelocity ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ iE-Extensions ProtocolExtensionContainer { { HorizontalVelocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalVelocity-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalWithVerticalVelocity ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ verticalVelocity VerticalVelocity,
+ iE-Extensions ProtocolExtensionContainer { { HorizontalWithVerticalVelocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalWithVerticalVelocity-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+HorizontalVelocityWithUncertainty ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ uncertaintySpeed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { HorizontalVelocityWithUncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalVelocityWithUncertainty-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ verticalVelocity VerticalVelocity,
+ horizontalUncertaintySpeed INTEGER (0..255),
+ verticalUncertaintySpeed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { HorizontalWithVerticalVelocityAndUncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalWithVerticalVelocityAndUncertainty-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalSpeedAndBearing ::= SEQUENCE {
+ bearing INTEGER (0..359),
+ horizontalSpeed INTEGER (0..2047)
+}
+
+VerticalVelocity ::= SEQUENCE {
+ verticalSpeed INTEGER (0..255),
+ verticalSpeedDirection VerticalSpeedDirection
+}
+
+VerticalSpeedDirection ::= ENUMERATED {
+ upward,
+ downward
+}
+
+
+
+--******************************************
+--
+-- UTRAN-GPS Reference Time
+--
+--******************************************
+
+UTRAN-GPSReferenceTime ::= SEQUENCE {
+ utran-GPSTimingOfCell INTEGER (0..2322431999999, ...),
+ uC-ID UC-ID OPTIONAL,
+ sfn INTEGER (0..4095),
+ iE-Extensions ProtocolExtensionContainer { { UTRAN-GPSReferenceTime-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UTRAN-GPSReferenceTime-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+--******************************************
+--
+-- UTRAN-GPS Reference Time Result
+--
+--******************************************
+
+UTRAN-GPSReferenceTimeResult ::= SEQUENCE {
+ ue-GPSTimingOfCell INTEGER (0..37158911999999, ...),
+ uC-ID UC-ID,
+ sfn INTEGER (0..4095),
+ iE-Extensions ProtocolExtensionContainer { { UTRAN-GPSReferenceTimeResult-ExtIEs } } OPTIONAL,
+ ...
+
+}
+
+UTRAN-GPSReferenceTimeResult-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+--******************************************
+--
+-- UTRAN-GANSS Reference Time Result
+--
+--******************************************
+
+UTRAN-GANSSReferenceTimeResult ::= SEQUENCE {
+ ue-GANSSTimingOfCell INTEGER (0..345599999999, ...),
+ ganss-Time-ID GANSSID OPTIONAL,
+ ganssTodUncertainty INTEGER(0..127) OPTIONAL,
+ uC-ID UC-ID,
+ sfn INTEGER (0..4095),
+ iE-Extensions ProtocolExtensionContainer { { UTRAN-GANSSReferenceTimeResult-ExtIEs } } OPTIONAL,
+ ...
+
+}
+
+UTRAN-GANSSReferenceTimeResult-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+END
diff --git a/epan/dissectors/asn1/pcap/PCAP-PDU-Contents.asn b/epan/dissectors/asn1/pcap/PCAP-PDU-Contents.asn
new file mode 100644
index 0000000000..a9d5b2c32b
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/PCAP-PDU-Contents.asn
@@ -0,0 +1,771 @@
+--
+-- 3GPP TS 25.453 V11.0.0 (2012-09)
+--
+--9.3.3 PDU Definitions
+-- **************************************************************
+--
+-- PDU definitions for PCAP.
+--
+-- **************************************************************
+
+PCAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) pcap(4) version1 (1) pcap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Cause,
+ CriticalityDiagnostics,
+ GPS-UTRAN-TRU,
+ InformationExchangeID,
+ InformationReportCharacteristics,
+ InformationType,
+ MeasuredResultsList,
+ RequestedDataValue,
+ RequestedDataValueInformation,
+ UE-PositionEstimate,
+ CellId-MeasuredResultsSets,
+ OTDOA-MeasurementGroup,
+ AccuracyFulfilmentIndicator,
+ HorizontalAccuracyCode,
+ VerticalAccuracyCode,
+ RequestType,
+ UE-PositioningCapability,
+ UC-ID,
+ ResponseTime,
+ PositioningPriority,
+ ClientType,
+ PositioningMethod,
+ UTDOAPositioning,
+ GPSPositioning,
+ OTDOAAssistanceData,
+ UTDOA-Group,
+ Positioning-ResponseTime,
+ EnvironmentCharacterisation,
+ PositionData,
+ IncludeVelocity,
+ VelocityEstimate,
+ UE-PositionEstimateInfo,
+ OTDOA-MeasuredResultsSets,
+ PeriodicPosCalcInfo,
+ PeriodicLocationInfo,
+ AmountOfReporting,
+ MeasInstructionsUsed,
+ RRCstateChange,
+ PeriodicTerminationCause,
+ CellIDPositioning,
+ GANSS-MeasuredResultsList,
+ GANSSPositioning,
+ GANSS-UTRAN-TRU,
+ AdditionalGPSAssistDataRequired,
+ AdditionalGanssAssistDataRequired,
+ OTDOA-ReferenceCellInfoSAS-centric,
+ CellId-IRATMeasuredResultsSets,
+ IMSI,
+ IMEI
+
+FROM PCAP-IEs
+
+ TransactionID
+
+FROM PCAP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-Container{},
+ ProtocolIE-Single-Container{},
+ PrivateIE-Container{},
+ PCAP-PRIVATE-IES,
+ PCAP-PROTOCOL-EXTENSION,
+ PCAP-PROTOCOL-IES
+
+FROM PCAP-Containers
+
+ id-Cause,
+ id-CriticalityDiagnostics,
+ id-GPS-UTRAN-TRU,
+ id-InformationExchangeID,
+ id-InformationExchangeObjectType-InfEx-Rprt,
+ id-InformationExchangeObjectType-InfEx-Rqst,
+ id-InformationExchangeObjectType-InfEx-Rsp,
+ id-InformationReportCharacteristics,
+ id-InformationType,
+ id-GPS-MeasuredResultsList,
+ id-RequestedDataValue,
+ id-RequestedDataValueInformation,
+ id-TransactionID,
+ id-UE-PositionEstimate,
+ id-CellId-MeasuredResultsSets,
+ id-OTDOA-MeasurementGroup,
+ id-AccuracyFulfilmentIndicator,
+ id-HorizontalAccuracyCode,
+ id-VerticalAccuracyCode,
+ id-RequestType,
+ id-UE-PositioningCapability,
+ id-UC-id,
+ id-ResponseTime,
+ id-PositioningPriority,
+ id-ClientType,
+ id-PositioningMethod,
+ id-UTDOAPositioning,
+ id-GPSPositioning,
+ id-OTDOAAssistanceData,
+ id-UTDOA-Group,
+ id-Positioning-ResponseTime,
+ id-EnvironmentCharacterisation,
+ id-PositionData,
+ id-IncludeVelocity,
+ id-VelocityEstimate,
+ id-UE-PositionEstimateInfo,
+ id-UC-ID-InfEx-Rqst,
+ id-OTDOA-MeasuredResultsSets,
+ id-PeriodicPosCalcInfo,
+ id-PeriodicLocationInfo,
+ id-AmountOfReporting,
+ id-MeasInstructionsUsed,
+ id-RRCstateChange,
+ id-PeriodicTerminationCause,
+ id-CellIDPositioning,
+ id-GANSS-MeasuredResultsList,
+ id-GANSSPositioning,
+ id-GANSS-UTRAN-TRU,
+ id-AdditionalGPSAssistDataRequired,
+ id-AdditionalGanssAssistDataRequired,
+ id-OTDOA-ReferenceCellInfo,
+ id-CellId-IRATMeasuredResultsSets,
+ id-IMSI,
+ id-IMEI
+
+
+FROM PCAP-Constants;
+
+-- **************************************************************
+--
+-- POSITION CALCULATION REQUEST
+--
+-- **************************************************************
+
+PositionCalculationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionCalculationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionCalculationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+PositionCalculationRequestIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-UE-PositionEstimate CRITICALITY reject TYPE UE-PositionEstimate PRESENCE optional } |
+ { ID id-GPS-MeasuredResultsList CRITICALITY reject TYPE MeasuredResultsList PRESENCE optional },
+ ...
+}
+
+PositionCalculationRequestExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CellId-MeasuredResultsSets CRITICALITY reject EXTENSION CellId-MeasuredResultsSets PRESENCE optional } |
+ { ID id-OTDOA-MeasurementGroup CRITICALITY reject EXTENSION OTDOA-MeasurementGroup PRESENCE optional } |
+ { ID id-HorizontalAccuracyCode CRITICALITY ignore EXTENSION HorizontalAccuracyCode PRESENCE optional } |
+ { ID id-VerticalAccuracyCode CRITICALITY ignore EXTENSION VerticalAccuracyCode PRESENCE optional } |
+ { ID id-UTDOA-Group CRITICALITY reject EXTENSION UTDOA-Group PRESENCE optional } |
+ { ID id-Positioning-ResponseTime CRITICALITY ignore EXTENSION Positioning-ResponseTime PRESENCE optional } |
+ { ID id-IncludeVelocity CRITICALITY ignore EXTENSION IncludeVelocity PRESENCE optional } |
+ { ID id-PeriodicPosCalcInfo CRITICALITY ignore EXTENSION PeriodicPosCalcInfo PRESENCE optional } |
+ { ID id-GANSS-MeasuredResultsList CRITICALITY reject EXTENSION GANSS-MeasuredResultsList PRESENCE optional } |
+ { ID id-CellId-IRATMeasuredResultsSets CRITICALITY ignore EXTENSION CellId-IRATMeasuredResultsSets PRESENCE optional } |
+ { ID id-IMSI CRITICALITY ignore EXTENSION IMSI PRESENCE optional } |
+ { ID id-IMEI CRITICALITY ignore EXTENSION IMEI PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- POSITION CALCULATION RESPONSE
+--
+-- **************************************************************
+
+PositionCalculationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionCalculationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionCalculationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+PositionCalculationResponseIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-UE-PositionEstimate CRITICALITY ignore TYPE UE-PositionEstimate PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PositionCalculationResponseExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-AccuracyFulfilmentIndicator CRITICALITY ignore EXTENSION AccuracyFulfilmentIndicator PRESENCE optional} |
+ { ID id-VelocityEstimate CRITICALITY ignore EXTENSION VelocityEstimate PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- POSITION CALCULATION FAILURE
+--
+-- **************************************************************
+
+PositionCalculationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionCalculationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionCalculationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+PositionCalculationFailureIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PositionCalculationFailureExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationRequest-IEs PCAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY reject TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rqst CRITICALITY reject TYPE InformationExchangeObjectType-InfEx-Rqst PRESENCE mandatory }|
+ -- This IE represents both the Information Exchange Object Type IE and the choice based on the Information Exchange Object Type
+ -- as described in the tabular message format in clause 9.1.
+ { ID id-InformationType CRITICALITY reject TYPE InformationType PRESENCE mandatory }|
+ { ID id-InformationReportCharacteristics CRITICALITY reject TYPE InformationReportCharacteristics PRESENCE mandatory }|
+ { ID id-GPS-UTRAN-TRU CRITICALITY reject TYPE GPS-UTRAN-TRU PRESENCE conditional },
+ -- This IE shall be present if the information requested in the Information Type IE contains GPS-related data
+ ...
+}
+
+InformationExchangeInitiationRequest-Extensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-UTRAN-TRU CRITICALITY reject EXTENSION GANSS-UTRAN-TRU PRESENCE conditional } |
+ -- This IE shall be present if the information requested in the Information Type IE contains GANSS-related data
+ { ID id-IMSI CRITICALITY ignore EXTENSION IMSI PRESENCE optional } |
+ { ID id-IMEI CRITICALITY ignore EXTENSION IMEI PRESENCE optional },
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rqst ::= CHOICE {
+ referencePosition RefPosition-InfEx-Rqst,
+ ... ,
+ extension-InformationExchangeObjectType-InfEx-Rqst Extension-InformationExchangeObjectType-InfEx-Rqst
+}
+
+RefPosition-InfEx-Rqst ::= SEQUENCE {
+ referencePositionEstimate UE-PositionEstimate,
+ iE-Extensions ProtocolExtensionContainer { { RefPositionItem-InfEx-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RefPositionItem-InfEx-Rqst-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Extension-InformationExchangeObjectType-InfEx-Rqst ::= ProtocolIE-Single-Container {{ Extension-InformationExchangeObjectType-InfEx-RqstIE }}
+
+Extension-InformationExchangeObjectType-InfEx-RqstIE PCAP-PROTOCOL-IES ::= {
+ { ID id-UC-ID-InfEx-Rqst CRITICALITY reject TYPE UC-ID-InfEx-Rqst PRESENCE mandatory } |
+ { ID id-CellId-MeasuredResultsSets CRITICALITY ignore TYPE CellId-MeasuredResultsSets PRESENCE mandatory }
+}
+
+UC-ID-InfEx-Rqst ::= SEQUENCE {
+ referenceUC-ID UC-ID,
+ iE-Extensions ProtocolExtensionContainer { { UCIDItem-InfEx-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UCIDItem-InfEx-Rqst-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION RESPONSE
+--
+-- **************************************************************
+
+InformationExchangeInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationResponse-IEs PCAP-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 PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rsp ::= CHOICE {
+ referencePosition RefPosition-InfEx-Rsp,
+ ...
+}
+
+RefPosition-InfEx-Rsp ::= SEQUENCE {
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { RefPositionItem-InfEx-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RefPositionItem-InfEx-Rsp-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION FAILURE
+--
+-- **************************************************************
+
+InformationExchangeInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationFailure-IEs PCAP-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 PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- POSITION INITIATION REQUEST
+--
+-- **************************************************************
+
+PositionInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionInitiationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionInitiationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+PositionInitiationRequestIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-RequestType CRITICALITY reject TYPE RequestType PRESENCE mandatory } |
+ { ID id-UE-PositioningCapability CRITICALITY reject TYPE UE-PositioningCapability PRESENCE mandatory } |
+ { ID id-UC-id CRITICALITY reject TYPE UC-ID PRESENCE mandatory } |
+ { ID id-VerticalAccuracyCode CRITICALITY ignore TYPE VerticalAccuracyCode PRESENCE optional } |
+ { ID id-ResponseTime CRITICALITY ignore TYPE ResponseTime PRESENCE optional } |
+ { ID id-PositioningPriority CRITICALITY ignore TYPE PositioningPriority PRESENCE optional } |
+ { ID id-ClientType CRITICALITY ignore TYPE ClientType PRESENCE optional },
+ ...
+}
+
+PositionInitiationRequestExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-IncludeVelocity CRITICALITY ignore EXTENSION IncludeVelocity PRESENCE optional }|
+ { ID id-PeriodicLocationInfo CRITICALITY ignore EXTENSION PeriodicLocationInfo PRESENCE optional }|
+ { ID id-IMSI CRITICALITY ignore EXTENSION IMSI PRESENCE optional }|
+ { ID id-IMEI CRITICALITY ignore EXTENSION IMEI PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- POSITION INITIATION RESPONSE
+--
+-- **************************************************************
+
+PositionInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionInitiationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionInitiationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+PositionInitiationResponseIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-UE-PositionEstimate CRITICALITY reject TYPE UE-PositionEstimate PRESENCE mandatory } |
+ { ID id-PositionData CRITICALITY ignore TYPE PositionData PRESENCE mandatory } |
+ { ID id-AccuracyFulfilmentIndicator CRITICALITY ignore TYPE AccuracyFulfilmentIndicator PRESENCE optional },
+ ...
+}
+
+PositionInitiationResponseExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-VelocityEstimate CRITICALITY ignore EXTENSION VelocityEstimate PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- POSITION INITIATION FAILURE
+--
+-- **************************************************************
+
+PositionInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionInitiationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionInitiationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+PositionInitiationFailureIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PositionInitiationFailureExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- POSITION ACTIVATION REQUEST
+--
+-- **************************************************************
+
+PositionActivationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionActivationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionActivationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+PositionActivationRequestIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-PositioningMethod CRITICALITY reject TYPE PositioningMethod PRESENCE mandatory } |
+ { ID id-Positioning-ResponseTime CRITICALITY ignore TYPE Positioning-ResponseTime PRESENCE mandatory } |
+ { ID id-PositioningPriority CRITICALITY ignore TYPE PositioningPriority PRESENCE optional } |
+ { ID id-EnvironmentCharacterisation CRITICALITY ignore TYPE EnvironmentCharacterisation PRESENCE optional } |
+ { ID id-UTDOAPositioning CRITICALITY reject TYPE UTDOAPositioning PRESENCE optional } |
+ { ID id-GPSPositioning CRITICALITY reject TYPE GPSPositioning PRESENCE optional } |
+ { ID id-OTDOAAssistanceData CRITICALITY reject TYPE OTDOAAssistanceData PRESENCE optional },
+ ...
+}
+
+PositionActivationRequestExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-IncludeVelocity CRITICALITY ignore EXTENSION IncludeVelocity PRESENCE optional } |
+ { ID id-AmountOfReporting CRITICALITY ignore EXTENSION AmountOfReporting PRESENCE optional } |
+ { ID id-CellIDPositioning CRITICALITY ignore EXTENSION CellIDPositioning PRESENCE optional }|
+ { ID id-GANSSPositioning CRITICALITY reject EXTENSION GANSSPositioning PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- POSITION ACTIVATION RESPONSE
+--
+-- **************************************************************
+
+PositionActivationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionActivationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionActivationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+PositionActivationResponseIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-UE-PositionEstimateInfo CRITICALITY ignore TYPE UE-PositionEstimateInfo PRESENCE optional } |
+ { ID id-GPS-MeasuredResultsList CRITICALITY reject TYPE MeasuredResultsList PRESENCE optional } |
+ { ID id-CellId-MeasuredResultsSets CRITICALITY reject TYPE CellId-MeasuredResultsSets PRESENCE optional } |
+ { ID id-OTDOA-MeasuredResultsSets CRITICALITY reject TYPE OTDOA-MeasuredResultsSets PRESENCE optional } |
+ { ID id-UTDOA-Group CRITICALITY reject TYPE UTDOA-Group PRESENCE optional },
+ ...
+}
+
+PositionActivationResponseExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-VelocityEstimate CRITICALITY ignore EXTENSION VelocityEstimate PRESENCE optional } |
+ { ID id-MeasInstructionsUsed CRITICALITY ignore EXTENSION MeasInstructionsUsed PRESENCE optional } |
+ { ID id-GANSS-MeasuredResultsList CRITICALITY reject EXTENSION GANSS-MeasuredResultsList PRESENCE optional } |
+ { ID id-AdditionalGPSAssistDataRequired CRITICALITY ignore EXTENSION AdditionalGPSAssistDataRequired PRESENCE optional } |
+ { ID id-AdditionalGanssAssistDataRequired CRITICALITY ignore EXTENSION AdditionalGanssAssistDataRequired PRESENCE optional } |
+ { ID id-OTDOA-ReferenceCellInfo CRITICALITY reject EXTENSION OTDOA-ReferenceCellInfoSAS-centric PRESENCE optional } |
+ { ID id-CellId-IRATMeasuredResultsSets CRITICALITY ignore EXTENSION CellId-IRATMeasuredResultsSets PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- POSITION ACTIVATION FAILURE
+--
+-- **************************************************************
+
+PositionActivationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionActivationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionActivationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+PositionActivationFailureIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PositionActivationFailureExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INFORMATION REPORT
+--
+-- **************************************************************
+
+InformationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationReport-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationReport-IEs PCAP-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 PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rprt ::= CHOICE {
+ referencePosition RefPosition-InfEx-Rprt,
+ ...
+ }
+
+RefPosition-InfEx-Rprt ::= SEQUENCE {
+ requestedDataValueInformation RequestedDataValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ RefPositionItem-InfEx-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+RefPositionItem-InfEx-Rprt-ExtIEs PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE TERMINATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeTerminationRequest-IEs PCAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory},
+ ...
+}
+
+InformationExchangeTerminationRequest-Extensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE FAILURE INDICATION
+--
+-- **************************************************************
+
+InformationExchangeFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeFailureIndication-IEs PCAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+InformationExchangeFailureIndication-Extensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+ErrorIndicationExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- POSITION PARAMETER MODIFICATION
+--
+-- **************************************************************
+
+PositionParameterModification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PositionParameterModificationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PositionParameterModificationExtensions} } OPTIONAL,
+ ...
+}
+
+PositionParameterModificationIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-UC-id CRITICALITY reject TYPE UC-ID PRESENCE optional }|
+ { ID id-UTDOA-Group CRITICALITY reject TYPE UTDOA-Group PRESENCE optional },
+ ...
+}
+
+PositionParameterModificationExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RRCstateChange CRITICALITY ignore EXTENSION RRCstateChange PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs PCAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ABORT
+--
+-- **************************************************************
+
+Abort ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {AbortIEs} },
+ protocolExtensions ProtocolExtensionContainer { {AbortExtensions} } OPTIONAL,
+ ...
+}
+
+AbortIEs PCAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+AbortExtensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- POSITION PERIODIC REPORT
+--
+-- **************************************************************
+
+PositionPeriodicReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PositionPeriodicReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PositionPeriodicReport-Extensions}} OPTIONAL,
+ ...
+}
+
+PositionPeriodicReport-IEs PCAP-PROTOCOL-IES ::= {
+ { ID id-UE-PositionEstimateInfo CRITICALITY ignore TYPE UE-PositionEstimateInfo PRESENCE optional } |
+ { ID id-VelocityEstimate CRITICALITY ignore TYPE VelocityEstimate PRESENCE optional } |
+ { ID id-GPS-MeasuredResultsList CRITICALITY ignore TYPE MeasuredResultsList PRESENCE optional } |
+ { ID id-CellId-MeasuredResultsSets CRITICALITY ignore TYPE CellId-MeasuredResultsSets PRESENCE optional } |
+ { ID id-OTDOA-MeasuredResultsSets CRITICALITY ignore TYPE OTDOA-MeasuredResultsSets PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } ,
+ ...
+}
+
+PositionPeriodicReport-Extensions PCAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-MeasuredResultsList CRITICALITY ignore EXTENSION GANSS-MeasuredResultsList PRESENCE optional } |
+ { ID id-AdditionalGPSAssistDataRequired CRITICALITY ignore EXTENSION AdditionalGPSAssistDataRequired PRESENCE optional } |
+ { ID id-AdditionalGanssAssistDataRequired CRITICALITY ignore EXTENSION AdditionalGanssAssistDataRequired PRESENCE optional } |
+ { ID id-OTDOA-ReferenceCellInfo CRITICALITY reject EXTENSION OTDOA-ReferenceCellInfoSAS-centric PRESENCE optional } |
+ { ID id-CellId-IRATMeasuredResultsSets CRITICALITY ignore EXTENSION CellId-IRATMeasuredResultsSets PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- POSITION PERIODIC RESULT
+--
+-- **************************************************************
+
+PositionPeriodicResult ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PositionPeriodicResult-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PositionPeriodicResult-Extensions}} OPTIONAL,
+ ...
+}
+
+PositionPeriodicResult-IEs PCAP-PROTOCOL-IES ::= {
+ { ID id-UE-PositionEstimate CRITICALITY ignore TYPE UE-PositionEstimate PRESENCE optional } |
+ { ID id-VelocityEstimate CRITICALITY ignore TYPE VelocityEstimate PRESENCE optional } |
+ { ID id-PositionData CRITICALITY ignore TYPE PositionData PRESENCE optional } |
+ { ID id-AccuracyFulfilmentIndicator CRITICALITY ignore TYPE AccuracyFulfilmentIndicator PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional },
+ ...
+}
+
+PositionPeriodicResult-Extensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- POSITION PERIODIC TERMINATION
+--
+-- **************************************************************
+
+PositionPeriodicTermination ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PositionPeriodicTermination-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PositionPeriodicTermination-Extensions}} OPTIONAL,
+ ...
+}
+
+PositionPeriodicTermination-IEs PCAP-PROTOCOL-IES ::= {
+ { ID id-PeriodicTerminationCause CRITICALITY ignore TYPE PeriodicTerminationCause PRESENCE optional },
+ ...
+}
+
+PositionPeriodicTermination-Extensions PCAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+END
diff --git a/epan/dissectors/asn1/pcap/PCAP-PDU-Descriptions.asn b/epan/dissectors/asn1/pcap/PCAP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..f67bdd2817
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/PCAP-PDU-Descriptions.asn
@@ -0,0 +1,281 @@
+--
+-- 3GPP TS 25.453 V11.0.0 (2012-09)
+--
+-- 9.3.2 Elementary Procedure Definitions
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+PCAP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) pcap(4) version1 (1) pcap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode,
+ TransactionID
+FROM PCAP-CommonDataTypes
+
+ PositionCalculationRequest,
+ PositionCalculationResponse,
+ PositionCalculationFailure,
+ InformationExchangeInitiationRequest,
+ InformationExchangeInitiationResponse,
+ InformationExchangeInitiationFailure,
+ InformationReport,
+ InformationExchangeTerminationRequest,
+ InformationExchangeFailureIndication,
+ ErrorIndication,
+ PrivateMessage,
+ PositionInitiationRequest,
+ PositionInitiationResponse,
+ PositionInitiationFailure,
+ PositionActivationRequest,
+ PositionActivationResponse,
+ PositionActivationFailure,
+ PositionParameterModification,
+ Abort,
+ PositionPeriodicReport,
+ PositionPeriodicResult,
+ PositionPeriodicTermination
+
+FROM PCAP-PDU-Contents
+
+ id-PositionCalculation,
+ id-InformationExchangeInitiation,
+ id-InformationReporting,
+ id-InformationExchangeTermination,
+ id-InformationExchangeFailure,
+ id-ErrorIndication,
+ id-privateMessage,
+ id-PositionInitiation,
+ id-PositionActivation,
+ id-PositionParameterModification,
+ id-Abort,
+ id-PositionPeriodicReport,
+ id-PositionPeriodicResult,
+ id-PositionPeriodicTermination
+
+FROM PCAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+PCAP-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 definitions
+--
+-- **************************************************************
+
+PCAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode PCAP-ELEMENTARY-PROCEDURE.&procedureCode ({PCAP-ELEMENTARY-PROCEDURES}),
+ criticality PCAP-ELEMENTARY-PROCEDURE.&criticality ({PCAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ transactionID TransactionID,
+ value PCAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({PCAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode PCAP-ELEMENTARY-PROCEDURE.&procedureCode ({PCAP-ELEMENTARY-PROCEDURES}),
+ criticality PCAP-ELEMENTARY-PROCEDURE.&criticality ({PCAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ transactionID TransactionID,
+ value PCAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({PCAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode PCAP-ELEMENTARY-PROCEDURE.&procedureCode ({PCAP-ELEMENTARY-PROCEDURES}),
+ criticality PCAP-ELEMENTARY-PROCEDURE.&criticality ({PCAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ transactionID TransactionID,
+ value PCAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({PCAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+Outcome ::= SEQUENCE {
+ procedureCode PCAP-ELEMENTARY-PROCEDURE.&procedureCode ({PCAP-ELEMENTARY-PROCEDURES}),
+ criticality PCAP-ELEMENTARY-PROCEDURE.&criticality ({PCAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ transactionID TransactionID,
+ value PCAP-ELEMENTARY-PROCEDURE.&Outcome ({PCAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+PCAP-ELEMENTARY-PROCEDURES PCAP-ELEMENTARY-PROCEDURE ::= {
+ PCAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ PCAP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+PCAP-ELEMENTARY-PROCEDURES-CLASS-1 PCAP-ELEMENTARY-PROCEDURE ::= {
+ positionCalculation |
+ informationExchangeInitiation,
+ ...,
+ positionInitiation |
+ positionActivation
+
+}
+
+
+PCAP-ELEMENTARY-PROCEDURES-CLASS-2 PCAP-ELEMENTARY-PROCEDURE ::= {
+ informationReporting |
+ informationExchangeTermination |
+ informationExchangeFailure |
+ errorIndication |
+ privateMessage,
+ ...,
+ positionParameterModification |
+ abort |
+ positionPeriodicReport |
+ positionPeriodicResult |
+ positionPeriodicTermination
+}
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+positionCalculation PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PositionCalculationRequest
+ SUCCESSFUL OUTCOME PositionCalculationResponse
+ UNSUCCESSFUL OUTCOME PositionCalculationFailure
+ PROCEDURE CODE id-PositionCalculation
+ CRITICALITY reject
+}
+
+
+informationExchangeInitiation PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeInitiationRequest
+ SUCCESSFUL OUTCOME InformationExchangeInitiationResponse
+ UNSUCCESSFUL OUTCOME InformationExchangeInitiationFailure
+ PROCEDURE CODE id-InformationExchangeInitiation
+ CRITICALITY reject
+}
+
+positionInitiation PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PositionInitiationRequest
+ SUCCESSFUL OUTCOME PositionInitiationResponse
+ UNSUCCESSFUL OUTCOME PositionInitiationFailure
+ PROCEDURE CODE id-PositionInitiation
+ CRITICALITY reject
+}
+
+positionActivation PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PositionActivationRequest
+ SUCCESSFUL OUTCOME PositionActivationResponse
+ UNSUCCESSFUL OUTCOME PositionActivationFailure
+ PROCEDURE CODE id-PositionActivation
+ CRITICALITY reject
+}
+
+
+informationReporting PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationReport
+ PROCEDURE CODE id-InformationReporting
+ CRITICALITY ignore
+}
+
+
+informationExchangeTermination PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeTerminationRequest
+ PROCEDURE CODE id-InformationExchangeTermination
+ CRITICALITY ignore
+}
+
+
+informationExchangeFailure PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeFailureIndication
+ PROCEDURE CODE id-InformationExchangeFailure
+ CRITICALITY ignore
+}
+
+
+errorIndication PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+privateMessage PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+positionParameterModification PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PositionParameterModification
+ PROCEDURE CODE id-PositionParameterModification
+ CRITICALITY ignore
+}
+
+
+abort PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Abort
+ PROCEDURE CODE id-Abort
+ CRITICALITY ignore
+}
+
+positionPeriodicReport PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PositionPeriodicReport
+ PROCEDURE CODE id-PositionPeriodicReport
+ CRITICALITY ignore
+}
+
+positionPeriodicResult PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PositionPeriodicResult
+ PROCEDURE CODE id-PositionPeriodicResult
+ CRITICALITY ignore
+}
+
+positionPeriodicTermination PCAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PositionPeriodicTermination
+ PROCEDURE CODE id-PositionPeriodicTermination
+ CRITICALITY ignore
+}
+
+END
diff --git a/epan/dissectors/asn1/pcap/packet-pcap-template.c b/epan/dissectors/asn1/pcap/packet-pcap-template.c
new file mode 100644
index 0000000000..f8b5bd159f
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/packet-pcap-template.c
@@ -0,0 +1,215 @@
+/* packet-pcap.c
+ * Routines for UTRAN Iupc interface Positioning Calculation Application Part (PCAP) packet dissection
+ *
+ * Copyright 2008, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Based on the RANAP dissector
+ *
+ * References: ETSI TS 125 453 V7.9.0 (2008-02)
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-sccp.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "UTRAN Iupc interface Positioning Calculation Application Part (PCAP)"
+#define PSNAME "PCAP"
+#define PFNAME "pcap"
+
+#define MAX_SSN 254
+
+void proto_register_pcap(void);
+void proto_reg_handoff_pcap(void);
+
+static range_t *global_ssn_range;
+
+static dissector_table_t sccp_ssn_table;
+
+#include "packet-pcap-val.h"
+
+static dissector_handle_t pcap_handle = NULL;
+
+/* Initialize the protocol and registered fields */
+static int proto_pcap = -1;
+
+#include "packet-pcap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_pcap = -1;
+
+#include "packet-pcap-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+/*static guint32 ProtocolExtensionID;*/
+
+/* Dissector tables */
+static dissector_table_t pcap_ies_dissector_table;
+static dissector_table_t pcap_ies_p1_dissector_table;
+static dissector_table_t pcap_ies_p2_dissector_table;
+static dissector_table_t pcap_extension_dissector_table;
+static dissector_table_t pcap_proc_imsg_dissector_table;
+static dissector_table_t pcap_proc_sout_dissector_table;
+static dissector_table_t pcap_proc_uout_dissector_table;
+static dissector_table_t pcap_proc_out_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_OutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+#include "packet-pcap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(pcap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(pcap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(pcap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(pcap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(pcap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_OutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(pcap_proc_out_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_pcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *pcap_item = NULL;
+ proto_tree *pcap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "PCAP");
+
+ /* create the pcap protocol tree */
+ pcap_item = proto_tree_add_item(tree, proto_pcap, tvb, 0, -1, ENC_NA);
+ pcap_tree = proto_item_add_subtree(pcap_item, ett_pcap);
+
+ dissect_PCAP_PDU_PDU(tvb, pinfo, pcap_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_reg_handoff_pcap ---------------------------------------*/
+void
+proto_reg_handoff_pcap(void)
+{
+ static gboolean prefs_initialized = FALSE;
+ static range_t *ssn_range;
+
+ if (! prefs_initialized) {
+ pcap_handle = find_dissector("pcap");
+ sccp_ssn_table = find_dissector_table("sccp.ssn");
+ prefs_initialized = TRUE;
+#include "packet-pcap-dis-tab.c"
+ } else {
+ dissector_delete_uint_range("sccp.ssn", ssn_range, pcap_handle);
+ g_free(ssn_range);
+ }
+ ssn_range = range_copy(global_ssn_range);
+ dissector_add_uint_range("sccp.ssn", ssn_range, pcap_handle);
+}
+
+/*--- proto_register_pcap -------------------------------------------*/
+void proto_register_pcap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+
+#include "packet-pcap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_pcap,
+#include "packet-pcap-ettarr.c"
+ };
+
+ module_t *pcap_module;
+
+ /* Register protocol */
+ proto_pcap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pcap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ pcap_module = prefs_register_protocol(proto_pcap, proto_reg_handoff_pcap);
+
+ /* Register dissector */
+ register_dissector("pcap", dissect_pcap, proto_pcap);
+
+ /* Register dissector tables */
+ pcap_ies_dissector_table = register_dissector_table("pcap.ies", "PCAP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ pcap_ies_p1_dissector_table = register_dissector_table("pcap.ies.pair.first", "PCAP-PROTOCOL-IES-PAIR FirstValue", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ pcap_ies_p2_dissector_table = register_dissector_table("pcap.ies.pair.second", "PCAP-PROTOCOL-IES-PAIR SecondValue", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ pcap_extension_dissector_table = register_dissector_table("pcap.extension", "PCAP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ pcap_proc_imsg_dissector_table = register_dissector_table("pcap.proc.imsg", "PCAP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ pcap_proc_sout_dissector_table = register_dissector_table("pcap.proc.sout", "PCAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ pcap_proc_uout_dissector_table = register_dissector_table("pcap.proc.uout", "PCAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ pcap_proc_out_dissector_table = register_dissector_table("pcap.proc.out", "PCAP-ELEMENTARY-PROCEDURE Outcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+
+ /* Preferences */
+ /* Set default SSNs */
+ range_convert_str(&global_ssn_range, "", MAX_SSN);
+
+ prefs_register_range_preference(pcap_module, "ssn", "SCCP SSNs",
+ "SCCP (and SUA) SSNs to decode as PCAP",
+ &global_ssn_range, MAX_SSN);
+}
+
+
+
+
diff --git a/epan/dissectors/asn1/pcap/pcap.cnf b/epan/dissectors/asn1/pcap/pcap.cnf
new file mode 100644
index 0000000000..9a6d0db90a
--- /dev/null
+++ b/epan/dissectors/asn1/pcap/pcap.cnf
@@ -0,0 +1,430 @@
+# pcap.cnf
+# pcap conformation file
+
+#.OPT
+PER
+ALIGNED
+-L
+#.END
+
+#.EXPORTS
+
+#.PDU
+PCAP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.USE_VALS_EXT
+ProtocolIE-ID
+CauseRadioNetwork
+TDD-ChannelisationCode
+SFN-SFN-Drift
+CodePhaseSearchWindow
+TUTRAN-GANSS-DriftRate
+UTRAN-GPS-DriftRate
+ExplicitInformation
+
+#.NO_EMIT
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+ProtocolIE-ContainerList
+Presence
+#.END
+
+
+#.TYPE_RENAME
+
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+Outcome/value Outcome_value
+
+#.FIELD_RENAME
+
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+Outcome/value outcome_value
+
+
+PrivateIE-Field/id private_id
+ProtocolExtensionField/id ext_id
+
+PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &pcap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+#.END
+
+
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, pcap_ProcedureCode_vals,
+ "unknown message"));
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#.FN_PARS Outcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_OutcomeValue
+
+#--- Parameterization is not supported in asn2wrs ---
+# Not used yet in PCAP ASN.1
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, PCAP-PROTOCOL-IES : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-Container {{IEsSetParam}}
+
+# FN_PARS ProtocolIE-ContainerList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerList
+# static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, 0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
+# END
+
+#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, PCAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-ContainerPair {{IEsSetParam}}
+
+
+
+#RAB-IE-ContainerList { PCAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+
+#ProtocolError-IE-ContainerList { PCAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+# FN_BODY ProtocolError-IE-ContainerList
+# asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
+# asn1_param_push_integer(%(ACTX)s, 1);
+# asn1_param_push_integer(%(ACTX)s, maxNrOfRABs);
+#%(DEFAULT_BODY)s
+# asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
+# END
+
+
+
+#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &pcap_ProtocolIE_ID_vals_ext
+
+#.ASSIGN_VALUE_TO_TYPE # PCAP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+
+id-PositionCalculation ProcedureCode
+id-InformationExchangeInitiation ProcedureCode
+id-InformationReporting ProcedureCode
+id-InformationExchangeTermination ProcedureCode
+id-InformationExchangeFailure ProcedureCode
+id-ErrorIndication ProcedureCode
+id-privateMessage ProcedureCode
+id-PositionParameterModification ProcedureCode
+id-PositionInitiation ProcedureCode
+id-PositionActivation ProcedureCode
+id-Abort ProcedureCode
+id-PositionPeriodicReport ProcedureCode
+id-PositionPeriodicResult ProcedureCode
+id-PositionPeriodicTermination ProcedureCode
+
+
+# ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-GPS-UTRAN-TRU ProtocolIE-ID
+id-InformationExchangeID ProtocolIE-ID
+id-InformationExchangeObjectType-InfEx-Rprt ProtocolIE-ID
+id-InformationExchangeObjectType-InfEx-Rqst ProtocolIE-ID
+id-InformationExchangeObjectType-InfEx-Rsp ProtocolIE-ID
+id-InformationReportCharacteristics ProtocolIE-ID
+id-InformationType ProtocolIE-ID
+id-GPS-MeasuredResultsList ProtocolIE-ID
+id-MethodType ProtocolIE-ID
+id-RefPosition-InfEx-Rqst ProtocolIE-ID
+id-RefPosition-InfEx-Rsp ProtocolIE-ID
+id-RefPosition-Inf-Rprt ProtocolIE-ID
+id-RequestedDataValue ProtocolIE-ID
+id-RequestedDataValueInformation ProtocolIE-ID
+id-TransactionID ProtocolIE-ID
+id-UE-PositionEstimate ProtocolIE-ID
+id-CellId-MeasuredResultsSets ProtocolIE-ID
+id-OTDOA-MeasurementGroup ProtocolIE-ID
+id-AccuracyFulfilmentIndicator ProtocolIE-ID
+id-HorizontalAccuracyCode ProtocolIE-ID
+id-VerticalAccuracyCode ProtocolIE-ID
+id-UTDOA-Group ProtocolIE-ID
+id-RequestType ProtocolIE-ID
+id-UE-PositioningCapability ProtocolIE-ID
+id-UC-id ProtocolIE-ID
+id-ResponseTime ProtocolIE-ID
+id-PositioningPriority ProtocolIE-ID
+id-ClientType ProtocolIE-ID
+id-PositioningMethod ProtocolIE-ID
+id-UTDOAPositioning ProtocolIE-ID
+id-GPSPositioning ProtocolIE-ID
+id-OTDOAAssistanceData ProtocolIE-ID
+id-Positioning-ResponseTime ProtocolIE-ID
+id-EnvironmentCharacterisation ProtocolIE-ID
+id-PositionData ProtocolIE-ID
+id-IncludeVelocity ProtocolIE-ID
+id-VelocityEstimate ProtocolIE-ID
+id-rxTimingDeviation768Info ProtocolIE-ID
+id-UC-ID-InfEx-Rqst ProtocolIE-ID
+id-UE-PositionEstimateInfo ProtocolIE-ID
+id-UTRAN-GPSReferenceTime ProtocolIE-ID
+id-UTRAN-GPSReferenceTimeResult ProtocolIE-ID
+id-UTRAN-GPS-DriftRate ProtocolIE-ID
+id-OTDOA-AddMeasuredResultsInfo ProtocolIE-ID
+id-GPS-ReferenceLocation ProtocolIE-ID
+id-OTDOA-MeasuredResultsSets ProtocolIE-ID
+id-rxTimingDeviation384extInfo ProtocolIE-ID
+id-ExtendedRoundTripTime ProtocolIE-ID
+id-PeriodicPosCalcInfo ProtocolIE-ID
+id-PeriodicLocationInfo ProtocolIE-ID
+id-AmountOfReporting ProtocolIE-ID
+id-MeasInstructionsUsed ProtocolIE-ID
+id-RRCstateChange ProtocolIE-ID
+id-PeriodicTerminationCause ProtocolIE-ID
+id-MeasurementValidity ProtocolIE-ID
+id-roundTripTimeInfoWithType1 ProtocolIE-ID
+id-CellIDPositioning ProtocolIE-ID
+id-AddMeasurementInfo ProtocolIE-ID
+id-Extended-RNC-ID ProtocolIE-ID
+id-GANSS-CommonAssistanceData ProtocolIE-ID
+id-GANSS-GenericAssistanceDataList ProtocolIE-ID
+id-GANSS-MeasuredResultsList ProtocolIE-ID
+id-GANSS-UTRAN-TRU ProtocolIE-ID
+id-GANSSPositioning ProtocolIE-ID
+id-GANSS-PositioningDataSet ProtocolIE-ID
+id-GNSS-PositioningMethod ProtocolIE-ID
+id-NetworkAssistedGANSSSuport ProtocolIE-ID
+id-TUTRANGANSSMeasurementValueInfo ProtocolIE-ID
+id-AdditionalGPSAssistDataRequired ProtocolIE-ID
+id-AdditionalGanssAssistDataRequired ProtocolIE-ID
+id-angleOfArrivalLCR ProtocolIE-ID
+id-extendedTimingAdvanceLCR ProtocolIE-ID
+id-additionalMeasurementInforLCR ProtocolIE-ID
+id-timingAdvanceLCR-R7 ProtocolIE-ID
+id-rxTimingDeviationLCR ProtocolIE-ID
+id-GPSReferenceTimeUncertainty ProtocolIE-ID
+id-GANSS-AddIonoModelReq ProtocolIE-ID
+id-GANSS-EarthOrientParaReq ProtocolIE-ID
+id-GANSS-Additional-Ionospheric-Model ProtocolIE-ID
+id-GANSS-Earth-Orientation-Parameters ProtocolIE-ID
+id-GANSS-Additional-Time-Models ProtocolIE-ID
+id-GANSS-Additional-Navigation-Models ProtocolIE-ID
+id-GANSS-Additional-UTC-Models ProtocolIE-ID
+id-GANSS-Auxiliary-Information ProtocolIE-ID
+id-GANSS-SBAS-ID ProtocolIE-ID
+id-GANSS-SBAS-IDs ProtocolIE-ID
+id-GANSS-Signal-IDs ProtocolIE-ID
+id-GANSS-alm-keplerianNAVAlmanac ProtocolIE-ID
+id-GANSS-alm-keplerianReducedAlmanac ProtocolIE-ID
+id-GANSS-alm-keplerianMidiAlmanac ProtocolIE-ID
+id-GANSS-alm-keplerianGLONASS ProtocolIE-ID
+id-GANSS-alm-ecefSBASAlmanac ProtocolIE-ID
+id-UTRAN-GANSSReferenceTimeResult ProtocolIE-ID
+id-GANSS-Reference-Time-Only ProtocolIE-ID
+id-GANSS-AddADchoices ProtocolIE-ID
+id-supportGANSSNonNativeADchoices ProtocolIE-ID
+id-PositionDataUEbased ProtocolIE-ID
+id-ganssCodePhaseAmbiguityExt ProtocolIE-ID
+id-ganssIntegerCodePhaseExt ProtocolIE-ID
+id-GANSScarrierPhaseRequested ProtocolIE-ID
+id-GANSSMultiFreqMeasRequested ProtocolIE-ID
+id-ganssReq-AddIonosphericModel ProtocolIE-ID
+id-ganssReq-EarthOrientPara ProtocolIE-ID
+id-ganssAddNavigationModel-req ProtocolIE-ID
+id-ganssAddUTCModel-req ProtocolIE-ID
+id-ganssAuxInfo-req ProtocolIE-ID
+id-OTDOA-ReferenceCellInfo ProtocolIE-ID
+id-DGNSS-ValidityPeriod ProtocolIE-ID
+id-AzimuthAndElevationLSB ProtocolIE-ID
+id-completeAlmanacProvided ProtocolIE-ID
+id-GPS-Week-Cycle ProtocolIE-ID
+id-GANSS-Day-Cycle ProtocolIE-ID
+id-ganss-Delta-T ProtocolIE-ID
+id-requestedCellIDGERANMeasurements ProtocolIE-ID
+id-CellId-IRATMeasuredResultsSets ProtocolIE-ID
+id-IMSI ProtocolIE-ID
+id-IMEI ProtocolIE-ID
+
+#.END
+
+#.REGISTER
+
+#PCAP-PROTOCOL-IES
+Cause N pcap.ies id-Cause
+CriticalityDiagnostics N pcap.ies id-CriticalityDiagnostics
+GPS-UTRAN-TRU N pcap.ies id-GPS-UTRAN-TRU
+InformationExchangeID N pcap.ies id-InformationExchangeID
+InformationExchangeObjectType-InfEx-Rprt N pcap.ies id-InformationExchangeObjectType-InfEx-Rprt
+InformationExchangeObjectType-InfEx-Rqst N pcap.ies id-InformationExchangeObjectType-InfEx-Rqst
+InformationExchangeObjectType-InfEx-Rsp N pcap.ies id-InformationExchangeObjectType-InfEx-Rsp
+InformationReportCharacteristics N pcap.ies id-InformationReportCharacteristics
+InformationType N pcap.ies id-InformationType
+MeasuredResultsList N pcap.ies id-GPS-MeasuredResultsList
+UE-PositionEstimate N pcap.ies id-UE-PositionEstimate
+CellId-MeasuredResultsSets N pcap.ies id-CellId-MeasuredResultsSets
+OTDOA-MeasurementGroup N pcap.ies id-OTDOA-MeasurementGroup
+AccuracyFulfilmentIndicator N pcap.ies id-AccuracyFulfilmentIndicator
+HorizontalAccuracyCode N pcap.ies id-HorizontalAccuracyCode
+VerticalAccuracyCode N pcap.ies id-VerticalAccuracyCode
+UTDOA-Group N pcap.ies id-UTDOA-Group
+RequestType N pcap.ies id-RequestType
+UE-PositioningCapability N pcap.ies id-UE-PositioningCapability
+UC-ID N pcap.ies id-UC-id
+ResponseTime N pcap.ies id-ResponseTime
+PositioningPriority N pcap.ies id-PositioningPriority
+ClientType N pcap.ies id-ClientType
+PositioningMethod N pcap.ies id-PositioningMethod
+UTDOAPositioning N pcap.ies id-UTDOAPositioning
+GPSPositioning N pcap.ies id-GPSPositioning
+OTDOAAssistanceData N pcap.ies id-OTDOAAssistanceData
+Positioning-ResponseTime N pcap.ies id-Positioning-ResponseTime
+EnvironmentCharacterisation N pcap.ies id-EnvironmentCharacterisation
+PositionData N pcap.ies id-PositionData
+VelocityEstimate N pcap.ies id-VelocityEstimate
+UC-ID-InfEx-Rqst N pcap.ies id-UC-ID-InfEx-Rqst
+UE-PositionEstimateInfo N pcap.ies id-UE-PositionEstimateInfo
+OTDOA-MeasuredResultsSets N pcap.ies id-OTDOA-MeasuredResultsSets
+PeriodicPosCalcInfo N pcap.ies id-PeriodicPosCalcInfo
+PeriodicTerminationCause N pcap.ies id-PeriodicTerminationCause
+
+#PCAP-PROTOCOL-EXTENSION
+CellId-MeasuredResultsSets N pcap.extension id-CellId-MeasuredResultsSets
+OTDOA-MeasurementGroup N pcap.extension id-OTDOA-MeasurementGroup
+HorizontalAccuracyCode N pcap.extension id-HorizontalAccuracyCode
+VerticalAccuracyCode N pcap.extension id-VerticalAccuracyCode
+UTDOA-Group N pcap.extension id-UTDOA-Group
+Positioning-ResponseTime N pcap.extension id-Positioning-ResponseTime
+IncludeVelocity N pcap.extension id-IncludeVelocity
+PeriodicPosCalcInfo N pcap.extension id-PeriodicPosCalcInfo
+AmountOfReporting N pcap.extension id-AmountOfReporting
+PeriodicLocationInfo N pcap.extension id-PeriodicLocationInfo
+MeasInstructionsUsed N pcap.extension id-MeasInstructionsUsed
+CellIDPositioning N pcap.extension id-CellIDPositioning
+GANSSPositioning N pcap.extension id-GANSSPositioning
+RRCstateChange N pcap.extension id-RRCstateChange
+GANSS-MeasuredResultsList N pcap.extension id-GANSS-MeasuredResultsList
+GANSS-UTRAN-TRU N pcap.extension id-GANSS-UTRAN-TRU
+AdditionalGPSAssistDataRequired N pcap.extension id-AdditionalGPSAssistDataRequired
+AdditionalGanssAssistDataRequired N pcap.extension id-AdditionalGanssAssistDataRequired
+RxTimingDeviation768Info N pcap.extension id-rxTimingDeviation768Info
+RxTimingDeviation384extInfo N pcap.extension id-rxTimingDeviation384extInfo
+RoundTripTimeInfoWithType1 N pcap.extension id-roundTripTimeInfoWithType1
+AddMeasurementInfo N pcap.extension id-AddMeasurementInfo
+AngleOfArrivalLCR N pcap.extension id-angleOfArrivalLCR
+ExtendedTimingAdvanceLCR N pcap.extension id-extendedTimingAdvanceLCR
+GANSS-PositioningDataSet N pcap.extension id-GANSS-PositioningDataSet
+GANSS-CommonAssistanceData N pcap.extension id-GANSS-CommonAssistanceData
+GANSS-GenericAssistanceDataList N pcap.extension id-GANSS-GenericAssistanceDataList
+GPS-ReferenceLocation N pcap.extension id-GPS-ReferenceLocation
+UTRAN-GPS-DriftRate N pcap.extension id-UTRAN-GPS-DriftRate
+GPSReferenceTimeUncertainty N pcap.extension id-GPSReferenceTimeUncertainty
+OTDOA-AddMeasuredResultsInfo N pcap.extension id-OTDOA-AddMeasuredResultsInfo
+Extended-RNC-ID N pcap.extension id-Extended-RNC-ID
+AdditionalMeasurementInforLCR N pcap.extension id-additionalMeasurementInforLCR
+GNSS-PositioningMethod N pcap.extension id-GNSS-PositioningMethod
+NetworkAssistedGANSSSupport N pcap.extension id-NetworkAssistedGANSSSuport
+UTRAN-GPSReferenceTime N pcap.extension id-UTRAN-GPSReferenceTime
+GANSS-AddIonoModelReq N pcap.extension id-GANSS-AddIonoModelReq
+GANSS-EarthOrientParaReq N pcap.extension id-GANSS-EarthOrientParaReq
+GANSS-Additional-Ionospheric-Model N pcap.extension id-GANSS-Additional-Ionospheric-Model
+GANSS-Earth-Orientation-Parameters N pcap.extension id-GANSS-Earth-Orientation-Parameters
+GANSS-Additional-Time-Models N pcap.extension id-GANSS-Additional-Time-Models
+GANSS-Additional-Navigation-Models N pcap.extension id-GANSS-Additional-Navigation-Models
+GANSS-Additional-UTC-Models N pcap.extension id-GANSS-Additional-UTC-Models
+GANSS-Auxiliary-Information N pcap.extension id-GANSS-Auxiliary-Information
+GANSS-SBAS-ID N pcap.extension id-GANSS-SBAS-ID
+GANSS-SBAS-IDs N pcap.extension id-GANSS-SBAS-IDs
+GANSS-Signal-IDs N pcap.extension id-GANSS-Signal-IDs
+GANSS-ALM-NAVKeplerianSet N pcap.ies id-GANSS-alm-keplerianNAVAlmanac
+GANSS-ALM-ReducedKeplerianSet N pcap.ies id-GANSS-alm-keplerianReducedAlmanac
+GANSS-ALM-MidiAlmanacSet N pcap.ies id-GANSS-alm-keplerianMidiAlmanac
+GANSS-ALM-GlonassAlmanacSet N pcap.ies id-GANSS-alm-keplerianGLONASS
+GANSS-ALM-ECEFsbasAlmanacSet N pcap.ies id-GANSS-alm-ecefSBASAlmanac
+UTRAN-GANSSReferenceTimeResult N pcap.ies id-UTRAN-GANSSReferenceTimeResult
+GANSS-Reference-Time-Only N pcap.ies id-GANSS-Reference-Time-Only
+GANSS-AddADchoices N pcap.extension id-GANSS-AddADchoices
+SupportGANSSNonNativeADchoices N pcap.extension id-supportGANSSNonNativeADchoices
+PositionDataUEbased N pcap.extension id-PositionDataUEbased
+GanssCodePhaseAmbiguityExt N pcap.extension id-ganssCodePhaseAmbiguityExt
+GanssIntegerCodePhaseExt N pcap.extension id-ganssIntegerCodePhaseExt
+GANSScarrierPhaseRequested N pcap.extension id-GANSScarrierPhaseRequested
+GANSSMultiFreqMeasRequested N pcap.extension id-GANSSMultiFreqMeasRequested
+GANSSReq-AddIonosphericModel N pcap.extension id-ganssReq-AddIonosphericModel
+GANSSReq-EarthOrientPara N pcap.extension id-ganssReq-EarthOrientPara
+GANSS-AddNavigationModel-Req N pcap.extension id-ganssAddNavigationModel-req
+GANSS-AddUTCModel-Req N pcap.extension id-ganssAddUTCModel-req
+GANSS-AuxInfo-req N pcap.extension id-ganssAuxInfo-req
+#N pcap.extension id-GANSS-AlmanacModelChoice Not used?
+OTDOA-ReferenceCellInfoSAS-centric N pcap.extension id-OTDOA-ReferenceCellInfo
+DGNSS-ValidityPeriod N pcap.extension id-DGNSS-ValidityPeriod
+AzimuthAndElevationLSB N pcap.extension id-AzimuthAndElevationLSB
+CompleteAlmanacProvided N pcap.extension id-completeAlmanacProvided
+GPS-Week-Cycle N pcap.extension id-GPS-Week-Cycle
+GANSS-Day-Cycle N pcap.extension id-GANSS-Day-Cycle
+GANSS-Delta-T N pcap.extension id-ganss-Delta-T
+RequestedCellIDGERANMeasurements N pcap.extension id-requestedCellIDGERANMeasurements
+CellId-IRATMeasuredResultsSets N pcap.extension id-CellId-IRATMeasuredResultsSets
+IMSI N pcap.extension id-IMSI
+IMEI N pcap.extension id-IMEI
+
+
+#PCAP-ELEMENTARY-PROCEDURE
+
+PositionCalculationRequest N pcap.proc.imsg id-PositionCalculation
+PositionCalculationResponse N pcap.proc.sout id-PositionCalculation
+PositionCalculationFailure N pcap.proc.uout id-PositionCalculation
+
+InformationExchangeInitiationRequest N pcap.proc.imsg id-InformationExchangeInitiation
+InformationExchangeInitiationResponse N pcap.proc.sout id-InformationExchangeInitiation
+InformationExchangeInitiationFailure N pcap.proc.uout id-InformationExchangeInitiation
+
+PositionInitiationRequest N pcap.proc.imsg id-PositionInitiation
+PositionInitiationResponse N pcap.proc.sout id-PositionInitiation
+PositionInitiationFailure N pcap.proc.uout id-PositionInitiation
+
+
+PositionActivationRequest N pcap.proc.imsg id-PositionActivation
+PositionActivationResponse N pcap.proc.sout id-PositionActivation
+PositionActivationFailure N pcap.proc.uout id-PositionActivation
+
+InformationReport N pcap.proc.imsg id-InformationReporting
+
+InformationExchangeTerminationRequest N pcap.proc.imsg id-InformationExchangeTermination
+
+InformationExchangeFailureIndication N pcap.proc.imsg id-InformationExchangeFailure
+
+ErrorIndication N pcap.proc.imsg id-ErrorIndication
+
+PrivateMessage N pcap.proc.imsg id-privateMessage
+
+PositionParameterModification N pcap.proc.imsg id-PositionParameterModification
+
+Abort N pcap.proc.imsg id-Abort
+
+PositionPeriodicReport N pcap.proc.imsg id-PositionPeriodicReport
+
+PositionPeriodicResult N pcap.proc.imsg id-PositionPeriodicResult
+
+PositionPeriodicTermination N pcap.proc.imsg id-PositionPeriodicTermination
+
+#.END
diff --git a/epan/dissectors/asn1/pkcs1/CMakeLists.txt b/epan/dissectors/asn1/pkcs1/CMakeLists.txt
new file mode 100644
index 0000000000..9aab3819e4
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs1/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkcs1 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PKIXAlgs-2009.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkcs1/Makefile.am b/epan/dissectors/asn1/pkcs1/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs1/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkcs1/Makefile.common b/epan/dissectors/asn1/pkcs1/Makefile.common
new file mode 100644
index 0000000000..d03a3bc563
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs1/Makefile.common
@@ -0,0 +1,47 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkcs1
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PKIXAlgs-2009.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../x509af/x509af-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/pkcs1/Makefile.nmake b/epan/dissectors/asn1/pkcs1/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs1/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkcs1/PKIXAlgs-2009.asn b/epan/dissectors/asn1/pkcs1/PKIXAlgs-2009.asn
new file mode 100644
index 0000000000..910a674f17
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs1/PKIXAlgs-2009.asn
@@ -0,0 +1,616 @@
+--
+-- Transcribed from RFC 5912
+--
+
+PKIXAlgs-2009 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-algorithms2008-02(56) }
+
+ DEFINITIONS EXPLICIT TAGS ::=
+ BEGIN
+ IMPORTS
+
+ PUBLIC-KEY, SIGNATURE-ALGORITHM, DIGEST-ALGORITHM, SMIME-CAPS
+ FROM AlgorithmInformation-2009
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) id-mod(0)
+ id-mod-algorithmInformation-02(58)}
+
+ mda-sha224, mda-sha256, mda-sha384, mda-sha512
+ FROM PKIX1-PSS-OAEP-Algorithms-2009
+ {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-rsa-pkalgs-02(54)}
+
+-- Additional IMPORT for Wireshark
+ AlgorithmIdentifier
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 4};
+
+
+ --
+ -- Public Key (pk-) Algorithms
+ --
+
+ PublicKeys PUBLIC-KEY ::= {
+ pk-rsa |
+ pk-dsa |
+ pk-dh |
+ pk-kea |
+ pk-rsaSSA-PSS,
+ ...,
+ pk-ec |
+ pk-ecDH |
+ pk-ecMQV
+ }
+
+ --
+ -- Signature Algorithms (sa-)
+ --
+
+ SignatureAlgs SIGNATURE-ALGORITHM ::= {
+ sa-rsaWithMD2 |
+ sa-rsaWithMD5 |
+ sa-rsaWithSHA1 |
+ sa-dsaWithSHA1 |
+ sa-ecdsaWithSHA1,
+ ..., -- Extensible
+ sa-dsaWithSHA224 |
+ sa-dsaWithSHA256 |
+ sa-ecdsaWithSHA224 |
+ sa-ecdsaWithSHA256 |
+ sa-ecdsaWithSHA384 |
+ sa-ecdsaWithSHA512,
+ ...,
+ sa-rsaSSA-PSS
+ }
+
+ --
+ -- S/MIME CAPS for algorithms in this document
+ --
+ -- For all of the algorithms laid out in this document, the
+ -- parameters field for the S/MIME capabilities is defined as
+ -- ABSENT as there are no specific values that need to be known
+ -- by the receiver for negotiation.
+
+ --
+
+ SMimeCaps SMIME-CAPS ::= {
+ sa-rsaWithMD2.&smimeCaps |
+ sa-rsaWithMD5.&smimeCaps |
+ sa-rsaWithSHA1.&smimeCaps |
+ sa-dsaWithSHA1.&smimeCaps |
+ sa-dsaWithSHA224.&smimeCaps |
+ sa-dsaWithSHA256.&smimeCaps |
+ sa-ecdsaWithSHA1.&smimeCaps |
+ sa-ecdsaWithSHA224.&smimeCaps |
+ sa-ecdsaWithSHA256.&smimeCaps |
+ sa-ecdsaWithSHA384.&smimeCaps |
+ sa-ecdsaWithSHA512.&smimeCaps,
+ ... }
+
+ -- RSA PK Algorithm, Parameters, and Keys
+
+-- pk-rsa PUBLIC-KEY ::= {
+-- IDENTIFIER rsaEncryption
+-- KEY RSAPublicKey
+-- PARAMS TYPE NULL ARE absent
+ -- Private key format not in this module --
+-- CERT-KEY-USAGE {digitalSignature, nonRepudiation,
+-- keyEncipherment, dataEncipherment, keyCertSign, cRLSign}
+-- }
+
+ rsaEncryption OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs-1(1) 1 }
+
+ RSAPublicKey ::= SEQUENCE {
+ modulus INTEGER, -- n
+ publicExponent INTEGER -- e
+ }
+
+-- Wireshark additions to ensure compatibility with the original PKCS1.asn
+
+DigestInfo ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ digest Digest
+}
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+Digest ::= OCTET STRING
+
+-- End of Wireshark additions
+
+ -- DSA PK Algorithm, Parameters, and Keys
+
+-- pk-dsa PUBLIC-KEY ::= {
+-- IDENTIFIER id-dsa
+-- KEY DSAPublicKey
+-- PARAMS TYPE DSA-Params ARE inheritable
+ -- Private key format not in this module --
+-- CERT-KEY-USAGE { digitalSignature, nonRepudiation, keyCertSign,
+-- cRLSign }
+-- }
+
+ id-dsa OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+
+ DSA-Params ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER
+ }
+
+ DSAPublicKey ::= INTEGER -- public key, y
+
+ -- Diffie-Hellman PK Algorithm, Parameters, and Keys
+
+-- pk-dh PUBLIC-KEY ::= {
+-- IDENTIFIER dhpublicnumber
+-- KEY DHPublicKey
+-- PARAMS TYPE DomainParameters ARE inheritable
+ -- Private key format not in this module --
+-- CERT-KEY-USAGE {keyAgreement, encipherOnly, decipherOnly }
+-- }
+
+ 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
+ validationParams ValidationParams OPTIONAL
+ }
+
+ ValidationParams ::= SEQUENCE {
+ seed BIT STRING,
+ pgenCounter INTEGER
+ }
+
+ DHPublicKey ::= INTEGER -- public key, y = g^x mod p
+
+ -- KEA PK Algorithm and Parameters
+
+-- pk-kea PUBLIC-KEY ::= {
+-- IDENTIFIER id-keyExchangeAlgorithm
+ -- key is not encoded --
+-- PARAMS TYPE KEA-Params-Id ARE required
+ -- Private key format not in this module --
+-- CERT-KEY-USAGE {keyAgreement, encipherOnly, decipherOnly }
+-- }
+
+ id-keyExchangeAlgorithm OBJECT IDENTIFIER ::= {
+ joint-iso-itu-t(2) country(16) us(840) organization(1)
+ gov(101) dod(2) infosec(1) algorithms(1) 22 }
+
+ KEA-Params-Id ::= OCTET STRING
+
+ -- RSASSA-PSS (RFC 4055)
+
+-- pk-rsaSSA-PSS PUBLIC-KEY ::= {
+-- IDENTIFIER id-RSASSA-PSS
+-- KEY RSAPublicKey
+-- PARAMS TYPE RSASSA-PSS-params ARE optional
+-- CERT-KEY-USAGE { nonRepudiation, digitalSignature, keyCertSign, cRLSign }
+-- }
+
+ id-mgf1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs-1(1) 8 }
+
+ id-RSASSA-PSS OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs-1(1) 10 }
+
+ HashAlgorithm ::= AlgorithmIdentifier{DIGEST-ALGORITHM,
+ {HashAlgorithms}}
+
+ HashAlgorithms DIGEST-ALGORITHM ::= {
+ { IDENTIFIER id-sha1 PARAMS TYPE NULL ARE preferredPresent },
+ ...
+ }
+
+ -- sha1Identifier AlgorithmIdentifier ::= {
+ -- algorithmId id-sha1,
+ -- parameters NULL
+ -- }
+
+ MaskGenAlgorithm ::= AlgorithmIdentifier{ALGORITHM,
+ {PKCS1MGFAlgorithms}}
+
+ -- mgf1SHA1 MaskGenAlgorithm ::= {
+ -- algorithmId id-mgf1,
+ -- parameters HashAlgorithm : sha1Identifier
+ -- }
+
+ PKCS1MGFAlgorithms ALGORITHM ::= {
+ { IDENTIFIER id-mgf1 PARAMS TYPE HashAlgorithm ARE required },
+ ...
+ }
+
+ -- AlgorithmIdentifier parameters for id-RSASSA-PSS.
+ -- Note that the tags in this Sequence are explicit.
+ -- Note: The hash algorithm in hashAlgorithm and in
+ -- maskGenAlgorithm should be the same.
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] HashAlgorithm DEFAULT sha1Identifier,
+ maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] INTEGER DEFAULT 1
+ }
+
+
+ -- Elliptic Curve (EC) Signatures: Unrestricted Algorithms
+ -- (Section 2.1.1 of RFC 5480)
+ --
+ -- EC Unrestricted Algorithm ID -- -- this is used for ECDSA
+
+-- pk-ec PUBLIC-KEY ::= {
+-- IDENTIFIER id-ecPublicKey
+-- KEY ECPoint
+-- PARAMS TYPE ECParameters ARE required
+ -- Private key format not in this module --
+-- CERT-KEY-USAGE { digitalSignature, nonRepudiation, keyAgreement,
+-- keyCertSign, cRLSign }
+-- }
+
+ ECPoint ::= OCTET STRING -- see RFC 5480 for syntax and restrictions
+
+ id-ecPublicKey OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 }
+
+ -- Elliptic Curve (EC) Signatures: Restricted Algorithms
+ -- (Section 2.1.2 of RFC 5480)
+ --
+ -- EC Diffie-Hellman Algorithm ID
+
+-- pk-ecDH PUBLIC-KEY ::= {
+-- IDENTIFIER id-ecDH
+-- KEY ECPoint
+-- PARAMS TYPE ECParameters ARE required
+ -- Private key format not in this module --
+-- CERT-KEY-USAGE { keyAgreement, encipherOnly, decipherOnly }
+-- }
+
+ id-ecDH OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) schemes(1)
+ ecdh(12) }
+
+ -- EC Menezes-Qu-Vanstone Algorithm ID
+
+-- pk-ecMQV PUBLIC-KEY ::= {
+-- IDENTIFIER id-ecMQV
+-- KEY ECPoint
+-- PARAMS TYPE ECParameters ARE required
+ -- Private key format not in this module --
+-- CERT-KEY-USAGE { keyAgreement, encipherOnly, decipherOnly }
+-- }
+
+ id-ecMQV OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) schemes(1)
+ ecmqv(13) }
+
+ -- Parameters and Keys for both Restricted and Unrestricted EC
+
+ ECParameters ::= CHOICE {
+ namedCurve --CURVE.&id({NamedCurve}) -- OBJECT IDENTIFIER
+ -- implicitCurve NULL
+ -- implicitCurve MUST NOT be used in PKIX
+ -- specifiedCurve SpecifiedCurve
+ -- specifiedCurve MUST NOT be used in PKIX
+ -- Details for specifiedCurve can be found in [X9.62]
+ -- Any future additions to this CHOICE should be coordinated
+ -- with ANSI X.9.
+ }
+ -- If you need to be able to decode ANSI X.9 parameter structures,
+ -- uncomment the implicitCurve and specifiedCurve above, and also
+ -- uncomment the following:
+ -- (WITH COMPONENTS {namedCurve PRESENT})
+
+ -- Sec 2.1.1.1 Named Curve
+
+ CURVE ::= CLASS { &id OBJECT IDENTIFIER UNIQUE }
+ WITH SYNTAX { ID &id }
+
+ NamedCurve CURVE ::= {
+ { ID secp192r1 } | { ID sect163k1 } | { ID sect163r2 } |
+ { ID secp224r1 } | { ID sect233k1 } | { ID sect233r1 } |
+ { ID secp256r1 } | { ID sect283k1 } | { ID sect283r1 } |
+ { ID secp384r1 } | { ID sect409k1 } | { ID sect409r1 } |
+ { ID secp521r1 } | { ID sect571k1 } | { ID sect571r1 },
+ ... -- Extensible
+ }
+
+ -- Note in [X9.62] the curves are referred to as 'ansiX9' as
+ -- opposed to 'sec'. For example, secp192r1 is the same curve as
+ -- ansix9p192r1.
+
+ -- Note that in [PKI-ALG] the secp192r1 curve was referred to as
+ -- prime192v1 and the secp256r1 curve was referred to as
+ -- prime256v1.
+
+ -- Note that [FIPS186-3] refers to secp192r1 as P-192,
+ -- secp224r1 as P-224, secp256r1 as P-256, secp384r1 as P-384,
+ -- and secp521r1 as P-521.
+
+ secp192r1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3)
+ prime(1) 1 }
+
+ sect163k1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 1 }
+
+ sect163r2 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 15 }
+
+ secp224r1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 33 }
+
+ sect233k1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 26 }
+
+ sect233r1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 27 }
+
+ secp256r1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3)
+ prime(1) 7 }
+
+ sect283k1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 16 }
+
+ sect283r1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 17 }
+
+ secp384r1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 34 }
+
+ sect409k1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 36 }
+
+ sect409r1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 37 }
+
+ secp521r1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 35 }
+
+ sect571k1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 38 }
+
+ sect571r1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0) 39 }
+
+ -- RSA with MD-2
+
+-- sa-rsaWithMD2 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER md2WithRSAEncryption
+-- PARAMS TYPE NULL ARE required
+-- HASHES { mda-md2 }
+-- PUBLIC-KEYS { pk-rsa }
+-- SMIME-CAPS { IDENTIFIED BY md2WithRSAEncryption }
+-- }
+
+ md2WithRSAEncryption OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs-1(1) 2 }
+
+ -- RSA with MD-5
+
+-- sa-rsaWithMD5 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER md5WithRSAEncryption
+-- PARAMS TYPE NULL ARE required
+-- HASHES { mda-md5 }
+-- PUBLIC-KEYS { pk-rsa }
+-- SMIME-CAPS { IDENTIFIED BY md5WithRSAEncryption }
+-- }
+
+ md5WithRSAEncryption OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs-1(1) 4 }
+
+ -- RSA with SHA-1
+
+-- sa-rsaWithSHA1 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER sha1WithRSAEncryption
+-- PARAMS TYPE NULL ARE required
+-- HASHES { mda-sha1 }
+-- PUBLIC-KEYS { pk-rsa }
+-- SMIME-CAPS {IDENTIFIED BY sha1WithRSAEncryption }
+-- }
+
+ sha1WithRSAEncryption OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs-1(1) 5 }
+
+ -- DSA with SHA-1
+
+-- sa-dsaWithSHA1 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER dsa-with-sha1
+-- VALUE DSA-Sig-Value
+-- PARAMS TYPE NULL ARE absent
+-- HASHES { mda-sha1 }
+-- PUBLIC-KEYS { pk-dsa }
+-- SMIME-CAPS { IDENTIFIED BY dsa-with-sha1 }
+-- }
+
+ dsa-with-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 3 }
+
+ -- DSA with SHA-224
+
+-- sa-dsaWithSHA224 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER dsa-with-sha224
+-- VALUE DSA-Sig-Value
+-- PARAMS TYPE NULL ARE absent
+-- HASHES { mda-sha224 }
+-- PUBLIC-KEYS { pk-dsa }
+-- SMIME-CAPS { IDENTIFIED BY dsa-with-sha224 }
+-- }
+
+ dsa-with-sha224 OBJECT IDENTIFIER ::= {
+ joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101)
+ csor(3) algorithms(4) id-dsa-with-sha2(3) 1 }
+
+ -- DSA with SHA-256
+
+-- sa-dsaWithSHA256 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER dsa-with-sha256
+-- VALUE DSA-Sig-Value
+-- PARAMS TYPE NULL ARE absent
+-- HASHES { mda-sha256 }
+-- PUBLIC-KEYS { pk-dsa }
+-- SMIME-CAPS { IDENTIFIED BY dsa-with-sha256 }
+-- }
+
+ dsa-with-sha256 OBJECT IDENTIFIER ::= {
+ joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101)
+ csor(3) algorithms(4) id-dsa-with-sha2(3) 2 }
+
+ -- ECDSA with SHA-1
+
+-- sa-ecdsaWithSHA1 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER ecdsa-with-SHA1
+-- VALUE ECDSA-Sig-Value
+-- PARAMS TYPE NULL ARE absent
+-- HASHES { mda-sha1 }
+-- PUBLIC-KEYS { pk-ec }
+-- SMIME-CAPS {IDENTIFIED BY ecdsa-with-SHA1 }
+-- }
+
+ ecdsa-with-SHA1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-X9-62(10045)
+ signatures(4) 1 }
+
+ -- ECDSA with SHA-224
+
+-- sa-ecdsaWithSHA224 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER ecdsa-with-SHA224
+-- VALUE ECDSA-Sig-Value
+-- PARAMS TYPE NULL ARE absent
+-- HASHES { mda-sha224 }
+-- PUBLIC-KEYS { pk-ec }
+-- SMIME-CAPS { IDENTIFIED BY ecdsa-with-SHA224 }
+-- }
+
+ ecdsa-with-SHA224 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ ecdsa-with-SHA2(3) 1 }
+
+ -- ECDSA with SHA-256
+
+-- sa-ecdsaWithSHA256 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER ecdsa-with-SHA256
+-- VALUE ECDSA-Sig-Value
+-- PARAMS TYPE NULL ARE absent
+-- HASHES { mda-sha256 }
+-- PUBLIC-KEYS { pk-ec }
+-- SMIME-CAPS { IDENTIFIED BY ecdsa-with-SHA256 }
+-- }
+
+ ecdsa-with-SHA256 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ ecdsa-with-SHA2(3) 2 }
+
+ -- ECDSA with SHA-384
+
+-- sa-ecdsaWithSHA384 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER ecdsa-with-SHA384
+-- VALUE ECDSA-Sig-Value
+-- PARAMS TYPE NULL ARE absent
+-- HASHES { mda-sha384 }
+-- PUBLIC-KEYS { pk-ec }
+-- SMIME-CAPS { IDENTIFIED BY ecdsa-with-SHA384 }
+-- }
+
+ ecdsa-with-SHA384 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ ecdsa-with-SHA2(3) 3 }
+
+ -- ECDSA with SHA-512
+
+-- sa-ecdsaWithSHA512 SIGNATURE-ALGORITHM ::= {
+-- IDENTIFIER ecdsa-with-SHA512
+-- VALUE ECDSA-Sig-Value
+-- PARAMS TYPE NULL ARE absent
+-- HASHES { mda-sha512 }
+-- PUBLIC-KEYS { pk-ec }
+-- SMIME-CAPS { IDENTIFIED BY ecdsa-with-SHA512 }
+-- }
+
+ ecdsa-with-SHA512 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ ecdsa-with-SHA2(3) 4 }
+
+ --
+ -- Signature Values
+ --
+
+ -- DSA
+
+ DSA-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER
+ }
+
+ -- ECDSA
+
+ ECDSA-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER
+ }
+
+ --
+ -- Message Digest Algorithms (mda-)
+ --
+
+ HashAlgs DIGEST-ALGORITHM ::= {
+ mda-md2 |
+ mda-md5 |
+ mda-sha1,
+ ... -- Extensible
+ }
+ -- MD-2
+
+-- mda-md2 DIGEST-ALGORITHM ::= {
+-- IDENTIFIER id-md2
+-- PARAMS TYPE NULL ARE preferredAbsent
+-- }
+
+ id-md2 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 2 }
+
+ -- MD-5
+
+-- mda-md5 DIGEST-ALGORITHM ::= {
+-- IDENTIFIER id-md5
+-- PARAMS TYPE NULL ARE preferredAbsent
+-- }
+
+ id-md5 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 5 }
+
+ -- SHA-1
+
+-- mda-sha1 DIGEST-ALGORITHM ::= {
+-- IDENTIFIER id-sha1
+-- PARAMS TYPE NULL ARE preferredAbsent
+-- }
+
+ id-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) oiw(14) secsig(3)
+ algorithm(2) 26 }
+
+ -- SHA-2 family (from RFC 3447)
+
+ id-sha256 OBJECT IDENTIFIER ::= {
+ joint-iso-itu-t(2) country(16) us(840) organization(1)
+ gov(101) csor(3) nistalgorithm(4) hashalgs(2) 1 }
+
+ END
diff --git a/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c b/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c
new file mode 100644
index 0000000000..8ea89414a3
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c
@@ -0,0 +1,122 @@
+/* packet-pkcs1.c
+ * Routines for PKCS#1/RFC2313 packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-pkcs1.h"
+#include "packet-x509af.h"
+
+#define PNAME "PKCS#1"
+#define PSNAME "PKCS-1"
+#define PFNAME "pkcs-1"
+
+void proto_register_pkcs1(void);
+void proto_reg_handoff_pkcs1(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pkcs1 = -1;
+#include "packet-pkcs1-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-pkcs1-ett.c"
+
+#include "packet-pkcs1-fn.c"
+
+/*--- proto_register_pkcs1 ----------------------------------------------*/
+void proto_register_pkcs1(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-pkcs1-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-pkcs1-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkcs1 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkcs1, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_pkcs1 -------------------------------------------*/
+void proto_reg_handoff_pkcs1(void) {
+#include "packet-pkcs1-dis-tab.c"
+
+ register_ber_oid_dissector("1.2.840.113549.2.2", dissect_ber_oid_NULL_callback, proto_pkcs1, "md2");
+ register_ber_oid_dissector("1.2.840.113549.2.4", dissect_ber_oid_NULL_callback, proto_pkcs1, "md4");
+ register_ber_oid_dissector("1.2.840.113549.2.5", dissect_ber_oid_NULL_callback, proto_pkcs1, "md5");
+
+ register_ber_oid_dissector("1.2.840.113549.1.1.1", dissect_ber_oid_NULL_callback, proto_pkcs1, "rsaEncryption");
+ register_ber_oid_dissector("1.2.840.113549.1.1.2", dissect_ber_oid_NULL_callback, proto_pkcs1, "md2WithRSAEncryption");
+ register_ber_oid_dissector("1.2.840.113549.1.1.3", dissect_ber_oid_NULL_callback, proto_pkcs1, "md4WithRSAEncryption");
+ register_ber_oid_dissector("1.2.840.113549.1.1.4", dissect_ber_oid_NULL_callback, proto_pkcs1, "md5WithRSAEncryption");
+
+
+ /* these two are not from RFC2313 but pulled in from
+ http://www.alvestrand.no/objectid/1.2.840.113549.1.1.html
+ */
+ register_ber_oid_dissector("1.2.840.113549.1.1.5", dissect_ber_oid_NULL_callback, proto_pkcs1, "sha1WithRSAEncryption");
+ register_ber_oid_dissector("1.2.840.113549.1.1.6", dissect_ber_oid_NULL_callback, proto_pkcs1, "rsaOAEPEncryptionSET");
+
+ /* these sha2 algorithms are from RFC3447 */
+ register_ber_oid_dissector("1.2.840.113549.1.1.11", dissect_ber_oid_NULL_callback, proto_pkcs1, "sha256WithRSAEncryption");
+ register_ber_oid_dissector("1.2.840.113549.1.1.12", dissect_ber_oid_NULL_callback, proto_pkcs1, "sha384WithRSAEncryption");
+ register_ber_oid_dissector("1.2.840.113549.1.1.13", dissect_ber_oid_NULL_callback, proto_pkcs1, "sha512WithRSAEncryption");
+ register_ber_oid_dissector("1.2.840.113549.1.1.14", dissect_ber_oid_NULL_callback, proto_pkcs1, "sha224WithRSAEncryption");
+
+ oid_add_from_string("secp192r1","1.2.840.10045.3.1.1");
+ oid_add_from_string("sect163k1","1.3.132.0.1");
+ oid_add_from_string("sect163r2","1.3.132.0.15");
+ oid_add_from_string("secp224r1","1.3.132.0.33");
+ oid_add_from_string("sect233k1","1.3.132.0.26");
+ oid_add_from_string("sect233r1","1.3.132.0.27");
+ oid_add_from_string("secp256r1","1.2.840.10045.3.1.7");
+ oid_add_from_string("sect283k1","1.3.132.0.16");
+ oid_add_from_string("sect283r1","1.3.132.0.17");
+ oid_add_from_string("secp384r1","1.3.132.0.34");
+ oid_add_from_string("sect409k1","1.3.132.0.36");
+ oid_add_from_string("sect409r1","1.3.132.0.37");
+ oid_add_from_string("secp521r1","1.3.132.0.35");
+ oid_add_from_string("sect571k1","1.3.132.0.38");
+ oid_add_from_string("sect571r1","1.3.132.0.39");
+
+ /* sha2 family, see RFC3447 and http://www.oid-info.com/get/2.16.840.1.101.3.4.2 */
+ oid_add_from_string("sha256", "2.16.840.1.101.3.4.2.1");
+ oid_add_from_string("sha384", "2.16.840.1.101.3.4.2.2");
+ oid_add_from_string("sha512", "2.16.840.1.101.3.4.2.3");
+ oid_add_from_string("sha224", "2.16.840.1.101.3.4.2.4");
+
+}
+
diff --git a/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.h b/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.h
new file mode 100644
index 0000000000..f47af554c1
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.h
@@ -0,0 +1,30 @@
+/* packet-pkcs1.h
+ * Routines for PKCS#1/RFC2313 packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKCS1_H
+#define PACKET_PKCS1_H
+
+#include "packet-pkcs1-exp.h"
+
+#endif /* PACKET_PKCS1_H */
+
diff --git a/epan/dissectors/asn1/pkcs1/pkcs1.cnf b/epan/dissectors/asn1/pkcs1/pkcs1.cnf
new file mode 100644
index 0000000000..ed0c7e8dd1
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs1/pkcs1.cnf
@@ -0,0 +1,39 @@
+# pkcs1.cnf
+# PKCS#1 conformation file
+
+#.IMPORT ../x509af/x509af-exp.cnf
+
+#.EXPORTS
+
+RSAPublicKey
+DigestInfo
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.REGISTER
+DSA-Params B "1.2.840.10040.4.1" "id-dsa"
+DomainParameters B "1.2.840.10046.2.1" "dhpublicnumber"
+KEA-Params-Id B "2.16.840.1.101.2.1.1.22" "id-keyExchangeAlgorithm"
+ECParameters B "1.2.840.10045.2.1" "id-ecPublicKey"
+ECParameters B "1.3.132.1.12" "id-ecDH"
+ECParameters B "1.2.840.10045.2.13" "id-ecMQV"
+RSASSA-PSS-params B "1.2.840.113549.1.1.10" "id-RSASSA-PSS"
+HashAlgorithm B "1.2.840.113549.1.1.8" "id-mgf1"
+
+#.NO_EMIT
+DSAPublicKey
+DHPublicKey
+ECPoint
+DSA-Sig-Value
+ECDSA-Sig-Value
+
+#.TYPE_ATTR
+RSAPublicKey/modulus TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/pkcs12/CMakeLists.txt b/epan/dissectors/asn1/pkcs12/CMakeLists.txt
new file mode 100644
index 0000000000..f805707a7c
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs12/CMakeLists.txt
@@ -0,0 +1,54 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkcs12 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../cms/cms-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkcs12/Makefile.am b/epan/dissectors/asn1/pkcs12/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs12/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkcs12/Makefile.common b/epan/dissectors/asn1/pkcs12/Makefile.common
new file mode 100644
index 0000000000..04226bb180
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs12/Makefile.common
@@ -0,0 +1,56 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkcs12
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+# Note the order here is important, cms needs at least x509af-exp to be generated first
+EXTRA_CNF= \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../cms/cms-exp.cnf
+
+$(builddir)/../cms/cms-exp.cnf:
+ (cd $(builddir)/../cms && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/pkcs12/Makefile.nmake b/epan/dissectors/asn1/pkcs12/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs12/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c
new file mode 100644
index 0000000000..18814039b2
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c
@@ -0,0 +1,512 @@
+/* packet-pkcs12.c
+ * Routines for PKCS#12: Personal Information Exchange packet dissection
+ * Graeme Lunt 2006
+ *
+ * See "PKCS #12 v1.1: Personal Information Exchange Syntax":
+ *
+ * http://www.emc.com/emc-plus/rsa-labs/pkcs/files/h11301-wp-pkcs-12v1-1-personal-information-exchange-syntax.pdf
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+
+#include "packet-ber.h"
+#include "packet-pkcs12.h"
+#include "packet-x509af.h"
+#include "packet-x509if.h"
+#include "packet-cms.h"
+
+#include <wsutil/wsgcrypt.h>
+
+#define PNAME "PKCS#12: Personal Information Exchange"
+#define PSNAME "PKCS12"
+#define PFNAME "pkcs12"
+
+#define PKCS12_PBE_ARCFOUR_SHA1_OID "1.2.840.113549.1.12.1.1"
+#define PKCS12_PBE_3DES_SHA1_OID "1.2.840.113549.1.12.1.3"
+#define PKCS12_PBE_RC2_40_SHA1_OID "1.2.840.113549.1.12.1.6"
+
+void proto_register_pkcs12(void);
+void proto_reg_handoff_pkcs12(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pkcs12 = -1;
+
+static int hf_pkcs12_X509Certificate_PDU = -1;
+static int hf_pkcs12_AuthenticatedSafe_PDU = -1; /* AuthenticatedSafe */
+static gint ett_decrypted_pbe = -1;
+
+static expert_field ei_pkcs12_octet_string_expected = EI_INIT;
+
+
+static const char *object_identifier_id = NULL;
+static int iteration_count = 0;
+static tvbuff_t *salt = NULL;
+static const char *password = NULL;
+static gboolean try_null_password = FALSE;
+
+static int dissect_AuthenticatedSafe_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
+static int dissect_SafeContents_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
+static int dissect_PrivateKeyInfo_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
+
+#include "packet-pkcs12-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-pkcs12-ett.c"
+
+static void append_oid(proto_tree *tree, const char *oid)
+{
+ const char *name = NULL;
+
+ name = oid_resolved_from_string(wmem_packet_scope(), oid);
+ proto_item_append_text(tree, " (%s)", name ? name : oid);
+}
+
+#ifdef HAVE_LIBGCRYPT
+
+static int
+generate_key_or_iv(unsigned int id, tvbuff_t *salt_tvb, unsigned int iter,
+ const char *pw, unsigned int req_keylen, char * keybuf)
+{
+ int rc;
+ unsigned int i, j;
+ gcry_md_hd_t md;
+ gcry_mpi_t num_b1 = NULL;
+ size_t pwlen;
+ char hash[20], buf_b[64], buf_i[128], *p;
+ char *salt_p;
+ int salt_size;
+ size_t cur_keylen;
+ size_t n;
+ gcry_error_t err;
+
+ cur_keylen = 0;
+
+ salt_size = tvb_captured_length(salt_tvb);
+ salt_p = (char *)tvb_memdup(wmem_packet_scope(), salt_tvb, 0, salt_size);
+
+ if (pw == NULL)
+ pwlen = 0;
+ else
+ pwlen = strlen(pw);
+
+ if (pwlen > 63 / 2)
+ {
+ return FALSE;
+ }
+
+ /* Store salt and password in BUF_I */
+ p = buf_i;
+ for (i = 0; i < 64; i++)
+ *p++ = salt_p[i % salt_size];
+ if (pw)
+ {
+ for (i = j = 0; i < 64; i += 2)
+ {
+ *p++ = 0;
+ *p++ = pw[j];
+ if (++j > pwlen) /* Note, that we include the trailing zero */
+ j = 0;
+ }
+ }
+ else
+ memset (p, 0, 64);
+
+ for (;;) {
+ err = gcry_md_open(&md, GCRY_MD_SHA1, 0);
+ if (gcry_err_code(err))
+ {
+ return FALSE;
+ }
+ for (i = 0; i < 64; i++)
+ {
+ unsigned char lid = id & 0xFF;
+ gcry_md_write (md, &lid, 1);
+ }
+
+ gcry_md_write(md, buf_i, pw ? 128 : 64);
+
+ gcry_md_final (md);
+ memcpy (hash, gcry_md_read (md, 0), 20);
+
+ gcry_md_close (md);
+
+ for (i = 1; i < iter; i++)
+ gcry_md_hash_buffer (GCRY_MD_SHA1, hash, hash, 20);
+
+ for (i = 0; i < 20 && cur_keylen < req_keylen; i++)
+ keybuf[cur_keylen++] = hash[i];
+
+ if (cur_keylen == req_keylen)
+ {
+ gcry_mpi_release (num_b1);
+ return TRUE; /* ready */
+ }
+
+ /* need more bytes. */
+ for (i = 0; i < 64; i++)
+ buf_b[i] = hash[i % 20];
+
+ n = 64;
+
+ rc = gcry_mpi_scan (&num_b1, GCRYMPI_FMT_USG, buf_b, n, &n);
+
+ if (rc != 0)
+ {
+ return FALSE;
+ }
+
+ gcry_mpi_add_ui (num_b1, num_b1, 1);
+
+ for (i = 0; i < 128; i += 64)
+ {
+ gcry_mpi_t num_ij;
+
+ n = 64;
+ rc = gcry_mpi_scan (&num_ij, GCRYMPI_FMT_USG, buf_i + i, n, &n);
+
+ if (rc != 0)
+ {
+ return FALSE;
+ }
+
+ gcry_mpi_add (num_ij, num_ij, num_b1);
+ gcry_mpi_clear_highbit (num_ij, 64 * 8);
+
+ n = 64;
+
+ rc = gcry_mpi_print (GCRYMPI_FMT_USG, buf_i + i, n, &n, num_ij);
+ if (rc != 0)
+ {
+ return FALSE;
+ }
+
+ gcry_mpi_release (num_ij);
+ }
+ }
+}
+
+#endif
+
+void PBE_reset_parameters(void)
+{
+ iteration_count = 0;
+ salt = NULL;
+}
+
+int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encrypted_tvb _U_, asn1_ctx_t *actx _U_, proto_item *item _U_)
+{
+#ifdef HAVE_LIBGCRYPT
+ const char *encryption_algorithm;
+ gcry_cipher_hd_t cipher;
+ gcry_error_t err;
+ int algo;
+ int mode;
+ int ivlen = 0;
+ int keylen = 0;
+ int datalen = 0;
+ char *key = NULL;
+ char *iv = NULL;
+ char *clear_data = NULL;
+ tvbuff_t *clear_tvb = NULL;
+ const gchar *oidname;
+ GString *name;
+ proto_tree *tree;
+ char byte;
+ gboolean decrypt_ok = TRUE;
+
+ if(((password == NULL) || (*password == '\0')) && (try_null_password == FALSE)) {
+ /* we are not configured to decrypt */
+ return FALSE;
+ }
+
+ encryption_algorithm = x509af_get_last_algorithm_id();
+
+ /* these are the only encryption schemes we understand for now */
+ if(!strcmp(encryption_algorithm, PKCS12_PBE_3DES_SHA1_OID)) {
+ ivlen = 8;
+ keylen = 24;
+ algo = GCRY_CIPHER_3DES;
+ mode = GCRY_CIPHER_MODE_CBC;
+ } else if(!strcmp(encryption_algorithm, PKCS12_PBE_ARCFOUR_SHA1_OID)) {
+ ivlen = 0;
+ keylen = 16;
+ algo = GCRY_CIPHER_ARCFOUR;
+ mode = GCRY_CIPHER_MODE_NONE;
+ } else if(!strcmp(encryption_algorithm, PKCS12_PBE_RC2_40_SHA1_OID)) {
+ ivlen = 8;
+ keylen = 5;
+ algo = GCRY_CIPHER_RFC2268_40;
+ mode = GCRY_CIPHER_MODE_CBC;
+ } else {
+ /* we don't know how to decrypt this */
+
+ proto_item_append_text(item, " [Unsupported encryption algorithm]");
+ return FALSE;
+ }
+
+ if((iteration_count == 0) || (salt == NULL)) {
+ proto_item_append_text(item, " [Insufficient parameters]");
+ return FALSE;
+ }
+
+ /* allocate buffers */
+ key = (char *)wmem_alloc(wmem_packet_scope(), keylen);
+
+ if(!generate_key_or_iv(1 /*LEY */, salt, iteration_count, password, keylen, key))
+ return FALSE;
+
+ if(ivlen) {
+
+ iv = (char *)wmem_alloc(wmem_packet_scope(), ivlen);
+
+ if(!generate_key_or_iv(2 /* IV */, salt, iteration_count, password, ivlen, iv))
+ return FALSE;
+ }
+
+ /* now try an internal function */
+ err = gcry_cipher_open(&cipher, algo, mode, 0);
+ if (gcry_err_code (err))
+ return FALSE;
+
+ err = gcry_cipher_setkey (cipher, key, keylen);
+ if (gcry_err_code (err)) {
+ gcry_cipher_close (cipher);
+ return FALSE;
+ }
+
+ if(ivlen) {
+ err = gcry_cipher_setiv (cipher, iv, ivlen);
+ if (gcry_err_code (err)) {
+ gcry_cipher_close (cipher);
+ return FALSE;
+ }
+ }
+
+ datalen = tvb_captured_length(encrypted_tvb);
+ clear_data = (char *)g_malloc(datalen);
+
+ err = gcry_cipher_decrypt (cipher, clear_data, datalen, (char *)tvb_memdup(wmem_packet_scope(), encrypted_tvb, 0, datalen), datalen);
+ if (gcry_err_code (err)) {
+
+ proto_item_append_text(item, " [Failed to decrypt with password preference]");
+
+ gcry_cipher_close (cipher);
+ g_free(clear_data);
+ return FALSE;
+ }
+
+ gcry_cipher_close (cipher);
+
+ /* We don't know if we have successfully decrypted the data or not so we:
+ a) check the trailing bytes
+ b) see if we start with a sequence or a set (is this too constraining?
+ */
+
+ /* first the trailing bytes */
+ byte = clear_data[datalen-1];
+ if(byte <= 0x08) {
+ int i;
+
+ for(i = (int)byte; i > 0 ; i--) {
+ if(clear_data[datalen - i] != byte) {
+ decrypt_ok = FALSE;
+ break;
+ }
+ }
+ } else {
+ /* XXX: is this a failure? */
+ }
+
+ /* we assume the result is ASN.1 - check it is a SET or SEQUENCE */
+ byte = clear_data[0];
+ if((byte != 0x30) && (byte != 0x31)) { /* do we need more here? OCTET STRING? */
+ decrypt_ok = FALSE;
+ }
+
+ if(!decrypt_ok) {
+ g_free(clear_data);
+ proto_item_append_text(item, " [Failed to decrypt with supplied password]");
+
+ return FALSE;
+ }
+
+ proto_item_append_text(item, " [Decrypted successfully]");
+
+ tree = proto_item_add_subtree(item, ett_decrypted_pbe);
+
+ /* OK - so now clear_data contains the decrypted data */
+
+ clear_tvb = tvb_new_child_real_data(encrypted_tvb,(const guint8 *)clear_data, datalen, datalen);
+ tvb_set_free_cb(clear_tvb, g_free);
+
+ name = g_string_new("");
+ oidname = oid_resolved_from_string(wmem_packet_scope(), object_identifier_id_param);
+ g_string_printf(name, "Decrypted %s", oidname ? oidname : object_identifier_id_param);
+
+ /* add it as a new source */
+ add_new_data_source(actx->pinfo, clear_tvb, name->str);
+
+ g_string_free(name, TRUE);
+
+ /* now try and decode it */
+ call_ber_oid_callback(object_identifier_id_param, clear_tvb, 0, actx->pinfo, tree, NULL);
+
+ return TRUE;
+#else
+ /* we cannot decrypt */
+ return FALSE;
+
+#endif
+}
+
+#include "packet-pkcs12-fn.c"
+
+static int strip_octet_string(tvbuff_t *tvb)
+{
+ gint8 ber_class;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+ int offset = 0;
+
+ /* PKCS#7 encodes the content as OCTET STRING, whereas CMS is just any ANY */
+ /* if we use CMS (rather than PKCS#7) - which we are - we need to strip the OCTET STRING tag */
+ /* before proceeding */
+
+ offset = get_ber_identifier(tvb, 0, &ber_class, &pc, &tag);
+ offset = get_ber_length(tvb, offset, &len, &ind);
+
+ if((ber_class == BER_CLASS_UNI) && (tag == BER_UNI_TAG_OCTETSTRING))
+ return offset;
+
+ return 0;
+
+}
+
+static int dissect_AuthenticatedSafe_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ if((offset = strip_octet_string(tvb)) > 0)
+ dissect_pkcs12_AuthenticatedSafe(FALSE, tvb, offset, &asn1_ctx, tree, hf_pkcs12_AuthenticatedSafe_PDU);
+ else
+ proto_tree_add_expert(tree, pinfo, &ei_pkcs12_octet_string_expected, tvb, 0, 1);
+ return tvb_captured_length(tvb);
+}
+
+static int dissect_SafeContents_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ offset = strip_octet_string(tvb);
+
+ dissect_pkcs12_SafeContents(FALSE, tvb, offset, &asn1_ctx, tree, hf_pkcs12_SafeContents_PDU);
+ return tvb_captured_length(tvb);
+}
+
+static int dissect_X509Certificate_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ if((offset = strip_octet_string(tvb)) > 0)
+ dissect_x509af_Certificate(FALSE, tvb, offset, &asn1_ctx, tree, hf_pkcs12_X509Certificate_PDU);
+ else
+ proto_tree_add_expert(tree, pinfo, &ei_pkcs12_octet_string_expected, tvb, 0, 1);
+
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_pkcs12 ----------------------------------------------*/
+void proto_register_pkcs12(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_pkcs12_X509Certificate_PDU,
+ { "X509Certificate", "pkcs12.X509Certificate",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "pkcs12.X509Certificate", HFILL }},
+ { &hf_pkcs12_AuthenticatedSafe_PDU,
+ { "AuthenticatedSafe", "pkcs12.AuthenticatedSafe",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+
+#include "packet-pkcs12-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_decrypted_pbe,
+#include "packet-pkcs12-ettarr.c"
+ };
+ static ei_register_info ei[] = {
+ { &ei_pkcs12_octet_string_expected, { "pkcs12.octet_string_expected", PI_PROTOCOL, PI_WARN, "BER Error: OCTET STRING expected", EXPFILL }},
+ };
+
+ module_t *pkcs12_module;
+ expert_module_t* expert_pkcs12;
+
+ /* Register protocol */
+ proto_pkcs12 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkcs12, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_pkcs12 = expert_register_protocol(proto_pkcs12);
+ expert_register_field_array(expert_pkcs12, ei, array_length(ei));
+
+ /* Register preferences */
+ pkcs12_module = prefs_register_protocol(proto_pkcs12, NULL);
+
+ prefs_register_string_preference(pkcs12_module, "password",
+ "Password to decrypt the file with",
+ "The password to used to decrypt the encrypted elements within"
+ " the PKCS#12 file", &password);
+
+ prefs_register_bool_preference(pkcs12_module, "try_null_password",
+ "Try to decrypt with a empty password",
+ "Whether to try and decrypt the encrypted data within the"
+ " PKCS#12 with a NULL password", &try_null_password);
+
+ register_ber_syntax_dissector("PKCS#12", proto_pkcs12, dissect_PFX_PDU);
+ register_ber_oid_syntax(".p12", NULL, "PKCS#12");
+ register_ber_oid_syntax(".pfx", NULL, "PKCS#12");
+}
+
+
+/*--- proto_reg_handoff_pkcs12 -------------------------------------------*/
+void proto_reg_handoff_pkcs12(void) {
+#include "packet-pkcs12-dis-tab.c"
+
+ register_ber_oid_dissector("1.2.840.113549.1.9.22.1", dissect_X509Certificate_OCTETSTRING_PDU, proto_pkcs12, "x509Certificate");
+
+}
+
diff --git a/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.h b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.h
new file mode 100644
index 0000000000..4183ca2721
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.h
@@ -0,0 +1,31 @@
+/* packet-pkcs12.h
+ * Routines for PKCS#12 Personal Information Exchange packet dissection
+ * Graeme Lunt 2006
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKCS12_H
+#define PACKET_PKCS12_H
+
+void PBE_reset_parameters(void);
+int PBE_decrypt_data(const char *object_identifier_id, tvbuff_t *encrypted_tvb, asn1_ctx_t *actx, proto_item *item);
+
+#endif /* PACKET_PKCS12_H */
+
diff --git a/epan/dissectors/asn1/pkcs12/pkcs12.asn b/epan/dissectors/asn1/pkcs12/pkcs12.asn
new file mode 100644
index 0000000000..b55e718b6e
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs12/pkcs12.asn
@@ -0,0 +1,275 @@
+PKCS-12 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs-12(12) modules(0) pkcs-12(1)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL
+-- All types and values defined in this module is exported for use in
+-- other ASN.1 modules.
+
+IMPORTS
+
+informationFramework
+ FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1)
+ usefulDefinitions(0) 3}
+
+Attribute
+ FROM InformationFramework informationFramework
+
+ContentInfo, --DigestInfo-- Digest, DigestAlgorithmIdentifier
+ FROM PKCS-7 {iso(1) member-body(2) us(840) rsadsi(113549)
+ pkcs(1) pkcs-7(7) modules(0) pkcs-7(1)}
+
+--PrivateKeyInfo, EncryptedPrivateKeyInfo
+-- FROM PKCS-8 {iso(1) member-body(2) us(840) rsadsi(113549)
+-- pkcs(1) pkcs-8(8) modules(1) pkcs-8(1)}
+--
+--pkcs-9, friendlyName, localKeyId, certTypes, crlTypes
+-- FROM PKCS-9 {iso(1) member-body(2) us(840) rsadsi(113549)
+-- pkcs(1) pkcs-9(9) modules(0) pkcs-9(1) };--
+
+-- A PKCS#8 IMPORT from below
+AlgorithmIdentifier, ALGORITHM-IDENTIFIER
+ FROM PKCS-5 {iso(1) member-body(2) us(840) rsadsi(113549)
+ pkcs(1) pkcs-5(5) modules(16) pkcs-5(1)};
+
+
+-- Object identifiers
+
+--rsadsi OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) rsadsi(113549)}
+--pkcs OBJECT IDENTIFIER ::= {rsadsi pkcs(1)}
+--pkcs-12 OBJECT IDENTIFIER ::= {pkcs 12}
+--pkcs-12PbeIds OBJECT IDENTIFIER ::= {pkcs-12 1}
+--pbeWithSHAAnd128BitRC4 OBJECT IDENTIFIER ::= {pkcs-12PbeIds 1}
+--pbeWithSHAAnd40BitRC4 OBJECT IDENTIFIER ::= {pkcs-12PbeIds 2}
+--pbeWithSHAAnd3-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3}
+--pbeWithSHAAnd2-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 4}
+--pbeWithSHAAnd128BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 5}
+--pbewithSHAAnd40BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 6}
+
+--bagtypes OBJECT IDENTIFIER ::= {pkcs-12 10 1}
+
+-- The PFX PDU
+
+PFX ::= SEQUENCE {
+ version INTEGER {v3(3)}(v3,...),
+ authSafe ContentInfo,
+ macData MacData OPTIONAL
+}
+
+MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+-- Note: The default is for historical reasons and its use is
+-- deprecated. A higher value, like 1024 is recommended.
+}
+
+-- Imported from PKCS#7
+DigestInfo ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ digest Digest
+}
+
+AuthenticatedSafe ::= SEQUENCE OF ContentInfo
+ -- Data if unencrypted
+ -- EncryptedData if password-encrypted
+ -- EnvelopedData if public key-encrypted
+
+SafeContents ::= SEQUENCE OF SafeBag
+
+SafeBag ::= SEQUENCE {
+ bagId -- BAG-TYPE.&id ({PKCS12BagSet}) -- OBJECT IDENTIFIER,
+ bagValue [0] EXPLICIT --BAG-TYPE.&Type({PKCS12BagSet}{@bagId}) -- ANY,
+ bagAttributes SET OF PKCS12Attribute OPTIONAL
+}
+
+-- Bag types
+
+--keyBag BAG-TYPE ::=
+-- {KeyBag IDENTIFIED BY {bagtypes 1}}
+--pkcs8ShroudedKeyBag BAG-TYPE ::=
+-- {PKCS8ShroudedKeyBag IDENTIFIED BY {bagtypes 2}}
+--certBag BAG-TYPE ::=
+-- {CertBag IDENTIFIED BY {bagtypes 3}}
+--crlBag BAG-TYPE ::=
+-- {CRLBag IDENTIFIED BY {bagtypes 4}}
+--secretBag BAG-TYPE ::=
+-- {SecretBag IDENTIFIED BY {bagtypes 5}}
+--safeContentsBag BAG-TYPE ::=
+-- {SafeContents IDENTIFIED BY {bagtypes 6}}
+
+--PKCS12BagSet BAG-TYPE ::= {
+-- keyBag |
+-- pkcs8ShroudedKeyBag |
+-- certBag |
+-- crlBag |
+-- secretBag |
+-- safeContentsBag,
+-- ... - - For future extensions
+--}
+
+--BAG-TYPE ::= TYPE-IDENTIFIER
+
+-- KeyBag
+
+KeyBag ::= PrivateKeyInfo
+
+-- Shrouded KeyBag
+
+PKCS8ShroudedKeyBag ::= EncryptedPrivateKeyInfo
+
+-- CertBag
+
+CertBag ::= SEQUENCE {
+ certId --BAG-TYPE.&id ({CertTypes}) -- OBJECT IDENTIFIER,
+ certValue [0] EXPLICIT --BAG-TYPE.&Type ({CertTypes}{@certId})-- ANY
+}
+
+--x509Certificate BAG-TYPE ::=
+-- {OCTET STRING IDENTIFIED BY {certTypes 1}}
+ -- DER-encoded X.509 certificate stored in OCTET STRING
+--sdsiCertificate BAG-TYPE ::=
+-- {IA5String IDENTIFIED BY {certTypes 2}}
+ -- Base64-encoded SDSI certificate stored in IA5String
+
+--CertTypes BAG-TYPE ::= {
+-- x509Certificate |
+-- sdsiCertificate,
+-- ... - - For future extensions
+--}
+
+-- CRLBag
+
+CRLBag ::= SEQUENCE {
+ crlId --BAG-TYPE.&id ({CRLTypes})-- OBJECT IDENTIFIER,
+ crlValue [0] EXPLICIT --BAG-TYPE.&Type ({CRLTypes}{@crlId})-- ANY
+}
+
+--x509CRL BAG-TYPE ::=
+-- {OCTET STRING IDENTIFIED BY {crlTypes 1}}
+ -- DER-encoded X.509 CRL stored in OCTET STRING
+
+--CRLTypes BAG-TYPE ::= {
+-- x509CRL,
+-- ... - - For future extensions
+--}
+
+-- Secret Bag
+
+SecretBag ::= SEQUENCE {
+ secretTypeId --BAG-TYPE.&id ({SecretTypes})-- OBJECT IDENTIFIER,
+ secretValue [0] EXPLICIT --BAG-TYPE.&Type ({SecretTypes}{@secretTypeId})-- ANY
+}
+
+--SecretTypes BAG-TYPE ::= {
+-- ... - - For future extensions
+--}
+
+-- Attributes
+
+PKCS12Attribute ::= SEQUENCE {
+ attrId --ATTRIBUTE.&id ({PKCS12AttrSet})-- OBJECT IDENTIFIER,
+ attrValues SET OF --ATTRIBUTE.&Type ({PKCS12AttrSet}{@attrId})-- ANY
+} -- This type is compatible with the X.500 type 'Attribute'
+
+--PKCS12AttrSet ATTRIBUTE ::= {
+-- friendlyName |
+-- localKeyId,
+-- ... - - Other attributes are allowed
+--}
+
+--END
+
+-- We import PKCS#8 here directly rather than creating another dissector
+
+--PKCS-8 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-8(8)
+-- modules(1) pkcs-8(1)}
+
+-- $Revision: 1.5 $
+
+-- This module has been checked for conformance with the ASN.1
+-- standard by the OSS ASN.1 Tools
+
+--DEFINITIONS IMPLICIT TAGS ::=
+
+--BEGIN
+
+-- EXPORTS All --
+-- All types and values defined in this module is exported for use in other
+-- ASN.1 modules.
+
+--IMPORTS
+
+--informationFramework
+-- FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1)
+-- usefulDefinitions(0) 3}
+
+--Attribute
+-- FROM InformationFramework informationFramework
+
+--AlgorithmIdentifier, ALGORITHM-IDENTIFIER
+-- FROM PKCS-5 {iso(1) member-body(2) us(840) rsadsi(113549)
+-- pkcs(1) pkcs-5(5) modules(16) pkcs-5(1)};
+
+-- Private-key information syntax
+
+PrivateKeyInfo ::= SEQUENCE {
+ version Version,
+ privateKeyAlgorithm AlgorithmIdentifier --{{PrivateKeyAlgorithms}}--,
+ privateKey PrivateKey,
+ attributes [0] Attributes OPTIONAL }
+
+Version ::= INTEGER {v1(0)} (v1,...)
+
+PrivateKey ::= OCTET STRING
+
+Attributes ::= SET OF Attribute
+
+-- Encrypted private-key information syntax
+
+EncryptedPrivateKeyInfo ::= SEQUENCE {
+ encryptionAlgorithm AlgorithmIdentifier --{{KeyEncryptionAlgorithms}}--,
+ encryptedData EncryptedData
+}
+
+EncryptedData ::= OCTET STRING
+
+--PrivateKeyAlgorithms ALGORITHM-IDENTIFIER ::= {
+-- ... - - For local profiles
+--}
+
+--KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+-- ... - - For local profiles
+--}
+
+-- From RFC 2898
+PBEParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ iterationCount INTEGER
+}
+
+
+PBKDF2Params ::= SEQUENCE {
+ salt CHOICE {
+ specified OCTET STRING,
+ otherSource AlgorithmIdentifier --{{PBKDF2-SaltSources}}--
+ },
+ iterationCount INTEGER --(1..MAX)--,
+ keyLength INTEGER (1..MAX) OPTIONAL,
+ prf AlgorithmIdentifier --{{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1-- OPTIONAL }
+
+PBES2Params ::= SEQUENCE {
+ keyDerivationFunc AlgorithmIdentifier --{{PBES2-KDFs}}--,
+ encryptionScheme AlgorithmIdentifier --{{PBES2-Encs}}-- }
+
+PBMAC1Params ::= SEQUENCE {
+ keyDerivationFunc AlgorithmIdentifier --{{PBMAC1-KDFs}}--,
+ messageAuthScheme AlgorithmIdentifier --{{PBMAC1-MACs}}-- }
+
+
+END
+
+
diff --git a/epan/dissectors/asn1/pkcs12/pkcs12.cnf b/epan/dissectors/asn1/pkcs12/pkcs12.cnf
new file mode 100644
index 0000000000..a1b576e5a8
--- /dev/null
+++ b/epan/dissectors/asn1/pkcs12/pkcs12.cnf
@@ -0,0 +1,159 @@
+# pkcs12.cnf
+# PKCS12 conformation file
+
+#.MODULE_IMPORT
+PKCS-7 cms
+PKCS-5 x509af
+
+#.IMPORT ../cms/cms-exp.cnf
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+
+#.EXPORTS
+
+#.REGISTER
+KeyBag B "1.2.840.113549.1.12.10.1.1" "keyBag"
+PKCS8ShroudedKeyBag B "1.2.840.113549.1.12.10.1.2" "pkcs8ShroudedKeyBag"
+CertBag B "1.2.840.113549.1.12.10.1.3" "certBag"
+SecretBag B "1.2.840.113549.1.12.10.1.4" "secretBag"
+CRLBag B "1.2.840.113549.1.12.10.1.5" "crlBag"
+SafeContents B "1.2.840.113549.1.12.10.1.6" "safeContentsBag"
+
+# PKCS#9 Attributes - see master list in x509sat.cnf
+PFX B "2.16.840.1.113730.3.1.216" "pkcs-9-at-PKCS12"
+EncryptedPrivateKeyInfo B "1.2.840.113549.1.9.25.2" "pkcs-9-at-encryptedPrivateKeyInfo"
+
+# Password Based Encryption
+PBEParameter B "1.2.840.113549.1.12.1.1" "pbeWithSHAAnd128BitRC4"
+PBEParameter B "1.2.840.113549.1.12.1.2" "pbeWithSHAAnd40BitRC4"
+PBEParameter B "1.2.840.113549.1.12.1.3" "pbeWithSHAAnd3-KeyTripleDES-CBC"
+PBEParameter B "1.2.840.113549.1.12.1.4" "pbeWithSHAAnd2-KeyTripleDES-CBC"
+PBEParameter B "1.2.840.113549.1.12.1.5" "pbeWithSHAAnd128BitRC2-CBC"
+PBEParameter B "1.2.840.113549.1.12.1.6" "pbeWithSHAAnd40BitRC2-CBC"
+
+PBEParameter B "1.2.840.113549.1.5.1" "pbeWithMD2AndDES-CBC"
+PBEParameter B "1.2.840.113549.1.5.3" "pbeWithMD5AndDES-CBC"
+PBEParameter B "1.2.840.113549.1.5.4" "pbeWithMD2AndRC2-CBC"
+PBEParameter B "1.2.840.113549.1.5.6" "pbeWithMD5AndRC2-CBC"
+PBEParameter B "1.2.840.113549.1.5.10" "pbeWithSHA1AndDES-CBC"
+PBEParameter B "1.2.840.113549.1.5.11" "pbeWithSHA1AndRC2-CBC"
+
+PBKDF2Params B "1.2.840.113549.1.5.12" "id-PBKDF2"
+PBES2Params B "1.2.840.113549.1.5.13" "id-PBES2"
+PBMAC1Params B "1.2.840.113549.1.5.14" "id-PBMAC1"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+PrivateKeyInfo/version privateKeyVersion
+PBKDF2Params/salt saltChoice
+
+#.PDU
+#AuthenticatedSafe
+PrivateKeyInfo
+
+#.FN_BODY PFX
+ dissector_handle_t dissector_handle;
+
+ /* we change the CMS id-data dissector to dissect as AuthenticatedSafe
+ not sure why PKCS#12 couldn't have used its own content type OID for AuthenticatedSafe */
+ dissector_handle=create_dissector_handle(dissect_AuthenticatedSafe_OCTETSTRING_PDU, proto_pkcs12);
+ dissector_change_string("ber.oid", "1.2.840.113549.1.7.1", dissector_handle);
+
+ %(DEFAULT_BODY)s
+
+ /* restore the original dissector */
+ dissector_reset_string("ber.oid", "1.2.840.113549.1.7.1");
+
+#.FN_BODY AuthenticatedSafe
+ dissector_handle_t dissector_handle;
+
+ /* we change the CMS id-data dissector to dissect as SafeContents */
+ dissector_handle=create_dissector_handle(dissect_SafeContents_OCTETSTRING_PDU, proto_pkcs12);
+ dissector_change_string("ber.oid", "1.2.840.113549.1.7.1", dissector_handle);
+
+ %(DEFAULT_BODY)s
+
+ /* restore the original dissector */
+ dissector_reset_string("ber.oid", "1.2.840.113549.1.7.1");
+
+#.FN_PARS SafeBag/bagId FN_VARIANT = _str VAL_PTR = &object_identifier_id
+#.FN_FTR SafeBag/bagId
+ append_oid(tree, object_identifier_id);
+#.END
+
+#.FN_PARS CertBag/certId FN_VARIANT = _str VAL_PTR = &object_identifier_id
+#.FN_FTR CertBag/certId
+ append_oid(tree, object_identifier_id);
+#.END
+
+#.FN_PARS CRLBag/crlId FN_VARIANT = _str VAL_PTR = &object_identifier_id
+#.FN_FTR CRLBag/crlId
+ append_oid(tree, object_identifier_id);
+#.END
+
+#.FN_PARS SecretBag/secretTypeId FN_VARIANT = _str VAL_PTR = &object_identifier_id
+#.FN_FTR SecretBag/secretTypeId
+ append_oid(tree, object_identifier_id);
+#.END
+
+#.FN_PARS PKCS12Attribute/attrId FN_VARIANT = _str VAL_PTR = &object_identifier_id
+#.FN_FTR PKCS12Attribute/attrId
+ append_oid(tree, object_identifier_id);
+#.END
+
+#.FN_BODY SafeBag/bagValue
+ if(object_identifier_id)
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY PKCS12Attribute/attrValues/_item
+ if(object_identifier_id)
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY CertBag/certValue
+ if(object_identifier_id)
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY CRLBag/crlValue
+ if(object_identifier_id)
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY SecretBag/secretValue
+ if(object_identifier_id)
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_HDR PBEParameter
+ /* initialise the encryption parameters */
+ PBE_reset_parameters();
+
+#.END
+
+#.FN_PARS OCTET_STRING VAL_PTR = (hf_index == hf_pkcs12_salt ? &salt : NULL)
+#.FN_PARS INTEGER VAL_PTR = (hf_index == hf_pkcs12_iterationCount ? &iteration_count : NULL)
+
+#.FN_PARS EncryptedData VAL_PTR = &encrypted_tvb
+
+#.FN_HDR EncryptedData
+ tvbuff_t *encrypted_tvb;
+ dissector_handle_t dissector_handle;
+
+#.END
+
+#.FN_FTR EncryptedData
+
+
+
+ dissector_handle=create_dissector_handle(dissect_PrivateKeyInfo_PDU, proto_pkcs12);
+ dissector_change_string("ber.oid", object_identifier_id, dissector_handle);
+
+ PBE_decrypt_data(object_identifier_id, encrypted_tvb, actx, actx->created_item);
+
+ /* restore the original dissector */
+ dissector_reset_string("ber.oid", object_identifier_id);
+
+#.END
+
+
+
diff --git a/epan/dissectors/asn1/pkinit/CMakeLists.txt b/epan/dissectors/asn1/pkinit/CMakeLists.txt
new file mode 100644
index 0000000000..4b9e0657e2
--- /dev/null
+++ b/epan/dissectors/asn1/pkinit/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkinit )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PKINIT.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../cms/cms-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkinit/Makefile.am b/epan/dissectors/asn1/pkinit/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkinit/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkinit/Makefile.common b/epan/dissectors/asn1/pkinit/Makefile.common
new file mode 100644
index 0000000000..aefd7def24
--- /dev/null
+++ b/epan/dissectors/asn1/pkinit/Makefile.common
@@ -0,0 +1,47 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkinit
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PKINIT.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../cms/cms-exp.cnf
+
+$(builddir)/../cms/cms-exp.cnf:
+ (cd $(builddir)/../cms && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/pkinit/Makefile.nmake b/epan/dissectors/asn1/pkinit/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkinit/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkinit/PKINIT.asn b/epan/dissectors/asn1/pkinit/PKINIT.asn
new file mode 100644
index 0000000000..2af0321a84
--- /dev/null
+++ b/epan/dissectors/asn1/pkinit/PKINIT.asn
@@ -0,0 +1,150 @@
+--NOTE: we have to accomodate BOTH existing users of early drafts, such as
+--packetcable as well as new users once the protocol is standardized.
+--
+--This asn1 file is based on draft-ietf-cat-kerberos-pk-init-20.txt
+--but has been modified to acocmodate the Wireshark asn2wrs compiler
+--and our environment
+--
+--new structures are uncommented and added on demand as they are required
+--
+--Copyright (C) The Internet Society (2004). This document is subject
+--to the rights, licenses and restrictions contained in BCP 78, and
+--except as set forth therein, the authors retain all their rights.
+--
+--
+--This document and the information contained herein are provided on an
+--"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+--OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+--ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+--INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+--INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+--WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--
+
+KerberosV5-PK-INIT-SPEC {
+ iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) kerberosV5(2) modules(4) pkinit(5) }
+DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+
+ IMPORTS
+ SubjectPublicKeyInfo, AlgorithmIdentifier, Name
+ FROM PKIX1Explicit88 { iso (1) identified-organization (3)
+ dod (6) internet (1) security (5) mechanisms (5)
+ pkix (7) id-mod (0) id-pkix1-explicit (18) }
+
+
+ ContentInfo, IssuerAndSerialNumber
+ FROM CryptographicMessageSyntax { iso(1) member-body(2)
+ us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16)
+ modules(0) cms(1) }
+
+
+ KerberosTime, Checksum, TYPED-DATA, PrincipalName, Realm, EncryptionKey
+ FROM KerberosV5Spec2 { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) kerberosV5(2) modules(4)
+ krb5spec2(2) } ;
+
+
+-- id-pkinit OBJECT IDENTIFIER ::=
+-- { iso (1) org (3) dod (6) internet (1) security (5)
+-- kerberosv5 (2) pkinit (3) }
+--
+--
+-- id-pkauthdata OBJECT IDENTIFIER ::= { id-pkinit 1 }
+-- id-pkdhkeydata OBJECT IDENTIFIER ::= { id-pkinit 2 }
+-- id-pkrkeydata OBJECT IDENTIFIER ::= { id-pkinit 3 }
+-- id-pkekuoid OBJECT IDENTIFIER ::= { id-pkinit 4 }
+-- id-pkkdcekuoid OBJECT IDENTIFIER ::= { id-pkinit 5 }
+--
+--
+-- pa-pk-as-req INTEGER ::= TBD
+-- pa-pk-as-rep INTEGER ::= TBD
+-- pa-pk-ocsp-req INTEGER ::= TBD
+-- pa-pk-ocsp-rep INTEGER ::= TBD
+--
+--
+-- ad-initial-verified-cas INTEGER ::= TBD
+--
+--
+-- td-dh-parameters INTEGER ::= TBD
+-- td-trusted-certifiers INTEGER ::= 104
+-- td-certificate-index INTEGER ::= 105
+
+
+PaPkAsReq ::= SEQUENCE {
+ signedAuthPack [0] ContentInfo,
+ trustedCertifiers [1] SEQUENCE OF TrustedCA OPTIONAL,
+ kdcCert [2] IssuerAndSerialNumber OPTIONAL,
+ ...
+}
+
+
+TrustedCA ::= CHOICE {
+ caName [0] Name,
+ issuerAndSerial [2] IssuerAndSerialNumber,
+ ...
+}
+
+
+AuthPack ::= SEQUENCE {
+ pkAuthenticator [0] PKAuthenticator,
+ clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL,
+ supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier
+ OPTIONAL,
+ ...
+}
+
+
+PKAuthenticator ::= SEQUENCE {
+ cusec [0] INTEGER,
+ ctime [1] KerberosTime,
+ nonce [2] INTEGER (0..4294967295),
+ paChecksum [3] Checksum,
+ ...
+}
+
+--
+-- TrustedCertifiers ::= SEQUENCE OF Name
+--
+--
+-- CertificateIndex ::= IssuerAndSerialNumber
+--
+--
+KRB5PrincipalName ::= SEQUENCE {
+ realm [0] Realm,
+ principalName [1] PrincipalName
+}
+--
+--
+-- InitialVerifiedCAs ::= SEQUENCE OF SEQUENCE {
+-- ca [0] Name,
+-- validated [1] BOOLEAN,
+-- ...
+-- }
+--
+
+PaPkAsRep ::= CHOICE {
+ dhSignedData [0] ContentInfo,
+ encKeyPack [1] ContentInfo,
+ ...
+}
+
+
+KDCDHKeyInfo ::= SEQUENCE {
+ subjectPublicKey [0] BIT STRING,
+ nonce [1] INTEGER,
+ dhKeyExpiration [2] KerberosTime OPTIONAL,
+ ...
+}
+
+--
+-- ReplyKeyPack ::= SEQUENCE {
+-- replyKey [0] EncryptionKey,
+-- nonce [1] INTEGER (0..4294967295),
+-- ...
+-- }
+
+END
+
diff --git a/epan/dissectors/asn1/pkinit/packet-pkinit-template.c b/epan/dissectors/asn1/pkinit/packet-pkinit-template.c
new file mode 100644
index 0000000000..42b4d95f46
--- /dev/null
+++ b/epan/dissectors/asn1/pkinit/packet-pkinit-template.c
@@ -0,0 +1,120 @@
+/* packet-pkinit.c
+ * Routines for PKINIT packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-pkinit.h"
+#include "packet-cms.h"
+#include "packet-pkix1explicit.h"
+#include "packet-kerberos.h"
+
+#define PNAME "PKINIT"
+#define PSNAME "PKInit"
+#define PFNAME "pkinit"
+
+void proto_register_pkinit(void);
+void proto_reg_handoff_pkinit(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pkinit = -1;
+#include "packet-pkinit-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-pkinit-ett.c"
+
+static int dissect_KerberosV5Spec2_KerberosTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+static int dissect_KerberosV5Spec2_Checksum(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+static int dissect_KerberosV5Spec2_Realm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+static int dissect_KerberosV5Spec2_PrincipalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+
+#include "packet-pkinit-fn.c"
+
+int
+dissect_pkinit_PA_PK_AS_REQ(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) {
+ offset = dissect_pkinit_PaPkAsReq(FALSE, tvb, offset, actx, tree, -1);
+ return offset;
+}
+
+int
+dissect_pkinit_PA_PK_AS_REP(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) {
+ offset = dissect_pkinit_PaPkAsRep(FALSE, tvb, offset, actx, tree, -1);
+ return offset;
+}
+
+static int
+dissect_KerberosV5Spec2_KerberosTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_krb5_ctime(tree, tvb, offset, actx);
+ return offset;
+}
+
+static int
+dissect_KerberosV5Spec2_Checksum(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_krb5_Checksum(tree, tvb, offset, actx);
+ return offset;
+}
+
+static int
+dissect_KerberosV5Spec2_Realm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_krb5_realm(tree, tvb, offset, actx);
+ return offset;
+}
+
+static int
+dissect_KerberosV5Spec2_PrincipalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_krb5_cname(tree, tvb, offset, actx);
+ return offset;
+}
+
+
+/*--- proto_register_pkinit ----------------------------------------------*/
+void proto_register_pkinit(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-pkinit-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-pkinit-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkinit = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkinit, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_pkinit -------------------------------------------*/
+void proto_reg_handoff_pkinit(void) {
+#include "packet-pkinit-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/pkinit/packet-pkinit-template.h b/epan/dissectors/asn1/pkinit/packet-pkinit-template.h
new file mode 100644
index 0000000000..023a57fce7
--- /dev/null
+++ b/epan/dissectors/asn1/pkinit/packet-pkinit-template.h
@@ -0,0 +1,33 @@
+/* packet-pkinit.h
+ * Routines for PKINIT packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKINIT_H
+#define PACKET_PKINIT_H
+
+int dissect_pkinit_PA_PK_AS_REQ(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+int dissect_pkinit_PA_PK_AS_REP(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+
+#include "packet-pkinit-exp.h"
+
+#endif /* PACKET_PKINIT_H */
+
diff --git a/epan/dissectors/asn1/pkinit/pkinit.cnf b/epan/dissectors/asn1/pkinit/pkinit.cnf
new file mode 100644
index 0000000000..a62ff8412f
--- /dev/null
+++ b/epan/dissectors/asn1/pkinit/pkinit.cnf
@@ -0,0 +1,28 @@
+# pkinit.cnf
+# pkinit conformation file
+
+#.MODULE_IMPORT
+PKIX1Explicit88 pkix1explicit
+
+#.INCLUDE ../pkix1explicit/pkix1explicit_exp.cnf
+#.IMPORT ../cms/cms-exp.cnf
+
+#.EXPORTS
+PaPkAsReq
+PaPkAsRep
+
+#.REGISTER
+AuthPack B "1.3.6.1.5.2.3.1" "id-pkauthdata"
+KDCDHKeyInfo B "1.3.6.1.5.2.3.2" "id-pkdhkeydata"
+KRB5PrincipalName B "1.3.6.1.5.2.2" "id-pkinit-san"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+KDCDHKeyInfo/nonce dhNonce
+PKAuthenticator/nonce paNonce
+
+#.END
+
diff --git a/epan/dissectors/asn1/pkix1explicit/CMakeLists.txt b/epan/dissectors/asn1/pkix1explicit/CMakeLists.txt
new file mode 100644
index 0000000000..1990f9be01
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/CMakeLists.txt
@@ -0,0 +1,49 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkix1explicit )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PKIX1EXPLICIT93.asn
+ IPAddrAndASCertExtn.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkix1explicit/IPAddrAndASCertExtn.asn b/epan/dissectors/asn1/pkix1explicit/IPAddrAndASCertExtn.asn
new file mode 100644
index 0000000000..fd4ae88b23
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/IPAddrAndASCertExtn.asn
@@ -0,0 +1,71 @@
+-- RFC 3779 X.509 Extensions for IP Addr and AS ID June 2004
+--
+ IPAddrAndASCertExtn { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) mod(0)
+ id-mod-ip-addr-and-as-ident(30) }
+ DEFINITIONS EXPLICIT TAGS ::=
+ BEGIN
+ -- Copyright (C) The Internet Society (2004). This --
+ -- version of this ASN.1 module is part of RFC 3779; --
+ -- see the RFC itself for full legal notices. --
+
+ -- EXPORTS ALL --
+
+ IMPORTS
+
+ -- PKIX specific OIDs and arcs --
+ id-pe FROM PKIX1Explicit88 { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-explicit(18) };
+
+ -- IP Address Delegation Extension OID --
+
+ id-pe-ipAddrBlocks OBJECT IDENTIFIER ::= { id-pe 7 }
+
+ -- IP Address Delegation Extension Syntax --
+
+ IPAddrBlocks ::= SEQUENCE OF IPAddressFamily
+
+ IPAddressFamily ::= SEQUENCE { -- AFI & opt SAFI --
+ addressFamily OCTET STRING (SIZE (2..3)),
+ ipAddressChoice IPAddressChoice }
+
+ IPAddressChoice ::= CHOICE {
+ inherit NULL, -- inherit from issuer --
+ addressesOrRanges SEQUENCE OF IPAddressOrRange }
+
+ IPAddressOrRange ::= CHOICE {
+ addressPrefix IPAddress,
+ addressRange IPAddressRange }
+
+ IPAddressRange ::= SEQUENCE {
+ min IPAddress,
+ max IPAddress }
+
+ IPAddress ::= BIT STRING
+
+ -- Autonomous System Identifier Delegation Extension OID --
+
+ id-pe-autonomousSysIds OBJECT IDENTIFIER ::= { id-pe 8 }
+
+ -- Autonomous System Identifier Delegation Extension Syntax --
+
+ ASIdentifiers ::= SEQUENCE {
+ asnum [0] ASIdentifierChoice OPTIONAL,
+ rdi [1] ASIdentifierChoice OPTIONAL }
+
+ ASIdentifierChoice ::= CHOICE {
+ inherit NULL, -- inherit from issuer --
+ asIdsOrRanges SEQUENCE OF ASIdOrRange }
+
+ ASIdOrRange ::= CHOICE {
+ id ASId,
+ range ASRange }
+
+ ASRange ::= SEQUENCE {
+ min ASId,
+ max ASId }
+
+ ASId ::= INTEGER
+
+ END
diff --git a/epan/dissectors/asn1/pkix1explicit/Makefile.am b/epan/dissectors/asn1/pkix1explicit/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkix1explicit/Makefile.common b/epan/dissectors/asn1/pkix1explicit/Makefile.common
new file mode 100644
index 0000000000..c0f52265e6
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkix1explicit
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PKIX1EXPLICIT93.asn \
+ IPAddrAndASCertExtn.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ pkix1explicit_exp.cnf \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/pkix1explicit/Makefile.nmake b/epan/dissectors/asn1/pkix1explicit/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn b/epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
new file mode 100644
index 0000000000..799e820f56
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
@@ -0,0 +1,860 @@
+-- This file is based on PKIX1Explicit93 definition in
+-- RFC2459 section b.1
+--
+--Appendix F of RFC2459
+--Appendix F. Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (1999). All Rights Reserved.
+--
+-- This document and translations of it may be copied and furnished to
+-- others, and derivative works that comment on or otherwise explain it
+-- or assist in its implementation may be prepared, copied, published
+-- and distributed, in whole or in part, without restriction of any
+-- kind, provided that the above copyright notice and this paragraph are
+-- included on all such copies and derivative works. However, this
+-- document itself may not be modified in any way, such as by removing
+-- the copyright notice or references to the Internet Society or other
+-- Internet organizations, except as needed for the purpose of
+-- developing Internet standards in which case the procedures for
+-- copyrights defined in the Internet Standards process must be
+-- followed, or as required to translate it into languages other than
+-- English.
+--
+-- The limited permissions granted above are perpetual and will not be
+-- revoked by the Internet Society or its successors or assigns.
+--
+-- This document and the information contained herein is provided on an
+-- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+-- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+-- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+-- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+-- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--
+--
+--NOTE: This ASN1 definition have been significantly modified from the original
+--version in RFC2459 in order to accomodate the featuresets available
+--in the Wireshark projects asn2wrs compiler.
+--It has also been modified and structures have been commented out that
+--are already implemented in the X509 dissectors.
+--Dissectors present already in the X509 dissectors should be implemented in
+--the template by hand as stubs that will just call the original
+--dissector functions in X509 in order not to duplicate code.
+--
+--Structures and constructs in this definition are uncommented and
+--implemented on-demand when someone needs them.
+--
+--If you export new types from this file, make sure to update the
+--pkix1explicit_exp.cnf file with the proper definitions
+
+
+
+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) }
+
+ -- This one is defined with .NO_EMIT in the conformance file
+ -- and implemented in the template as just a call to the
+ -- corresponding function in x509
+CertificateSerialNumber ::= INTEGER
+
+--Validity ::= SEQUENCE {
+-- notBefore Time,
+-- notAfter Time }
+--
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+--
+
+
+
+ -- This one is implemented in the template as just a call to the
+ -- corresponding function in x509
+--SubjectPublicKeyInfo ::= SEQUENCE{
+-- algorithm AlgorithmIdentifier,
+-- subjectPublicKey BIT STRING
+--}
+
+
+
+Extensions ::= SEQUENCE OF Extension
+
+Extension ::= SEQUENCE {
+ extnId OBJECT IDENTIFIER,
+ 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
+-- }
+--
+
+ -- This one is implemented in the template as just a call to the
+ -- corresponding function in x509
+-- 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 ::= { ...,
+-- 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,
+ g INTEGER,
+ q INTEGER,
+ j INTEGER OPTIONAL,
+ 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})}
+
+Attribute ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ values SET SIZE (1 .. MAX) OF ANY
+ -- at least one value is required -- }
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY
+}
+
+-- naming data types --
+--
+
+
+ -- This one is implemented in the template as just a call to the
+ -- corresponding function in x509
+--Name ::= CHOICE {
+-- rdnSequence RDNSequence
+--}
+
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+RelativeDistinguishedName ::= SET 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))
+-- 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
+--Make it a PrintableString will amke it look prettier
+DirectoryString ::= PrintableString
+--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,
+-- iso-3166-alpha2-code PrintableString
+--}
+--
+--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) }
+
+-- 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,
+ value TeletexString
+}
+
+-- 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/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c b/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c
new file mode 100644
index 0000000000..1d21f241b8
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c
@@ -0,0 +1,141 @@
+#define BER_UNI_TAG_TeletexString 20 /* workaround bug in asn2wrs */
+
+/* packet-pkix1explicit.c
+ * Routines for PKIX1Explitic packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+#include <epan/oids.h>
+#include <epan/afn.h>
+
+#include "packet-ber.h"
+#include "packet-pkix1explicit.h"
+#include "packet-x509af.h"
+#include "packet-x509if.h"
+#include "packet-x509ce.h"
+
+#define PNAME "PKIX1Explicit"
+#define PSNAME "PKIX1EXPLICIT"
+#define PFNAME "pkix1explicit"
+
+void proto_register_pkix1explicit(void);
+void proto_reg_handoff_pkix1explicit(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pkix1explicit = -1;
+static int hf_pkix1explicit_object_identifier_id = -1;
+static int hf_pkix1explicit_addressFamily_afn = -1;
+static int hf_pkix1explicit_addressFamily_safi = -1;
+
+static int ett_pkix1explicit_addressFamily = -1;
+
+#include "packet-pkix1explicit-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-pkix1explicit-ett.c"
+
+int
+dissect_pkix1explicit_Certificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509af_Certificate(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+int
+dissect_pkix1explicit_CertificateList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509af_CertificateList(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+int
+dissect_pkix1explicit_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509ce_GeneralName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+int
+dissect_pkix1explicit_Name(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509if_Name(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+int
+dissect_pkix1explicit_AlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+int
+dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509af_SubjectPublicKeyInfo(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+#include "packet-pkix1explicit-fn.c"
+
+
+/*--- proto_register_pkix1explicit ----------------------------------------------*/
+void proto_register_pkix1explicit(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_pkix1explicit_object_identifier_id,
+ { "Id", "pkix1explicit.id", FT_STRING, BASE_NONE, NULL, 0,
+ "Object identifier Id", HFILL }},
+
+ { &hf_pkix1explicit_addressFamily_afn,
+ { "Address family(AFN)", "pkix1explicit.addressfamily", FT_UINT16, BASE_DEC, VALS(afn_vals), 0,
+ NULL, HFILL }},
+
+ { &hf_pkix1explicit_addressFamily_safi,
+ { "Subsequent Address Family Identifiers (SAFI)", "pkix1explicit.addressfamily.safi", FT_UINT16, BASE_DEC, NULL, 0,
+ "Subsequent Address Family Identifiers (SAFI) RFC4760", HFILL }},
+#include "packet-pkix1explicit-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_pkix1explicit_addressFamily,
+#include "packet-pkix1explicit-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkix1explicit = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkix1explicit, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_pkix1explicit -------------------------------------------*/
+void proto_reg_handoff_pkix1explicit(void) {
+ oid_add_from_string("id-pkix","1.3.6.1.5.5.7");
+ oid_add_from_string("id-dsa-with-sha1","1.2.840.10040.4.3");
+#include "packet-pkix1explicit-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.h b/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.h
new file mode 100644
index 0000000000..cb6773fce4
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.h
@@ -0,0 +1,40 @@
+/* packet-pkix1explicit.h
+ * Routines for PKIX1Explicit packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKIX1EXPLICIT_H
+#define PACKET_PKIX1EXPLICIT_H
+
+int dissect_pkix1explicit_Certificate(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+int dissect_pkix1explicit_CertificateList(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+#if 0
+int dissect_pkix1explicit_CertificateSerialNumber(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+#endif
+int dissect_pkix1explicit_Name(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+int dissect_pkix1explicit_GeneralName(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+int dissect_pkix1explicit_AlgorithmIdentifier(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,proto_tree *tree, int hf_index);
+int dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+
+
+#include "packet-pkix1explicit-exp.h"
+
+#endif /* PACKET_PKIX1EXPLICIT_H */
+
diff --git a/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf b/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf
new file mode 100644
index 0000000000..25c6957b7f
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf
@@ -0,0 +1,90 @@
+# pkix1explicit.cnf
+# pkix1explicit conformation file
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+Attribute
+AttributeTypeAndValue
+CertificateSerialNumber
+DirectoryString
+Extension
+Extensions
+RelativeDistinguishedName
+RDNSequence
+TeletexDomainDefinedAttribute
+TerminalType
+Version
+Time
+UniqueIdentifier
+
+#.REGISTER
+DirectoryString B "1.3.6.1.5.5.7.2.1" "id-qt-cps"
+DomainParameters B "1.2.840.10046.2.1" "dhpublicnumber"
+IPAddrBlocks B "1.3.6.1.5.5.7.1.7" "id-pe-ipAddrBlocks"
+ASIdentifiers B "1.3.6.1.5.5.7.1.8" "id-pe-autonomousSysIds"
+
+#.PDU
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.FN_BODY DirectoryString
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+#.FN_PARS Attribute/values
+ FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_object_identifier_id
+
+#.FN_BODY Attribute/values/_item
+ if (actx->external.direct_ref_present) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+ }
+
+#.FN_PARS AttributeTypeAndValue/value
+ FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_object_identifier_id
+
+#.FN_BODY AttributeTypeAndValue/value
+ if (actx->external.direct_ref_present) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+ }
+
+#.FN_PARS Extension/extnId
+ FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Extension/extnId
+%(DEFAULT_BODY)s
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+
+#.FN_BODY Extension/extnValue
+ gint8 appclass;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+ /* skip past the T and L */
+ offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &appclass, &pc, &tag);
+ offset = dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ if (actx->external.direct_ref_present) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+ }
+
+# IPAddrAndASCertExtn
+
+#.FN_BODY IPAddressFamily/addressFamily VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_pkix1explicit_addressFamily);
+ proto_tree_add_item(subtree, hf_pkix1explicit_addressFamily_afn, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ if(tvb_reported_length(parameter_tvb)>2)
+ proto_tree_add_item(subtree, hf_pkix1explicit_addressFamily_safi, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+
+
+#.END
+
diff --git a/epan/dissectors/asn1/pkix1explicit/pkix1explicit_exp.cnf b/epan/dissectors/asn1/pkix1explicit/pkix1explicit_exp.cnf
new file mode 100644
index 0000000000..8e801fe92d
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1explicit/pkix1explicit_exp.cnf
@@ -0,0 +1,43 @@
+#.IMPORT_TAG
+AlgorithmIdentifier BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+Attribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+AttributeTypeAndValue BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+Certificate BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+CertificateList BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+CertificateSerialNumber BER_CLASS_UNI BER_UNI_TAG_INTEGER
+DirectoryString BER_CLASS_UNI BER_UNI_TAG_PrintableString
+Extension BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+Extensions BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+GeneralName BER_CLASS_CON -1/*choice*/
+Name BER_CLASS_ANY -1
+RDNSequence BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+RelativeDistinguishedName BER_CLASS_UNI BER_UNI_TAG_SET
+SubjectPublicKeyInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+TeletexDomainDefinedAttribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+TerminalType BER_CLASS_UNI BER_UNI_TAG_INTEGER
+Time BER_CLASS_ANY/*choice*/ -1/*choice*/
+UniqueIdentifier BER_CLASS_UNI BER_UNI_TAG_BITSTRING
+Version BER_CLASS_UNI BER_UNI_TAG_INTEGER
+#.END
+
+#.TYPE_ATTR
+Attribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+AttributeTypeAndValue TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+Certificate TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+CertificateList TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+CertificateSerialNumber TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+DirectoryString TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+Extension TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+Extensions TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+GeneralName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+Name TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+RDNSequence TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+RelativeDistinguishedName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+SubjectPublicKeyInfo TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+TeletexDomainDefinedAttribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+TerminalType TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+Time TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(pkix1explicit_Time_vals) BITMASK = 0
+UniqueIdentifier TYPE = FT_BYTES DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+Version TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(pkix1explicit_Version_vals) BITMASK = 0
+#.END
+
diff --git a/epan/dissectors/asn1/pkix1implicit/CMakeLists.txt b/epan/dissectors/asn1/pkix1implicit/CMakeLists.txt
new file mode 100644
index 0000000000..9ddb1af8aa
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/CMakeLists.txt
@@ -0,0 +1,53 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkix1implicit )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PKIX1IMPLICIT93.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkix1implicit/Makefile.am b/epan/dissectors/asn1/pkix1implicit/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkix1implicit/Makefile.common b/epan/dissectors/asn1/pkix1implicit/Makefile.common
new file mode 100644
index 0000000000..d11a40c770
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/Makefile.common
@@ -0,0 +1,52 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkix1implicit
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PKIX1IMPLICIT93.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf \
+ pkix1implicit_exp.cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/pkix1implicit/Makefile.nmake b/epan/dissectors/asn1/pkix1implicit/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn b/epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn
new file mode 100644
index 0000000000..23b8a402f1
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn
@@ -0,0 +1,414 @@
+-- This file is based on PKIX1Implicit93 definition in
+-- RFC2459 section b.2
+--
+--Appendix F of RFC2459
+--Appendix F. Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (1999). All Rights Reserved.
+--
+-- This document and translations of it may be copied and furnished to
+-- others, and derivative works that comment on or otherwise explain it
+-- or assist in its implementation may be prepared, copied, published
+-- and distributed, in whole or in part, without restriction of any
+-- kind, provided that the above copyright notice and this paragraph are
+-- included on all such copies and derivative works. However, this
+-- document itself may not be modified in any way, such as by removing
+-- the copyright notice or references to the Internet Society or other
+-- Internet organizations, except as needed for the purpose of
+-- developing Internet standards in which case the procedures for
+-- copyrights defined in the Internet Standards process must be
+-- followed, or as required to translate it into languages other than
+-- English.
+--
+-- The limited permissions granted above are perpetual and will not be
+-- revoked by the Internet Society or its successors or assigns.
+--
+-- This document and the information contained herein is provided on an
+-- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+-- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+-- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+-- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+-- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--
+--
+--NOTE: This ASN1 definition have been significantly modified from the original
+--version in RFC2459 in order to accomodate the featuresets available
+--in the Wireshark projects asn2wrs compiler.
+--It has also been modified and structures have been commented out that
+--are already implemented in the X509 dissectors.
+--Dissectors present already in the X509 dissectors should be implemented in
+--the template by hand as stubs that will just call the original
+--dissector functions in X509 in order not to duplicate code.
+--
+--Structures and constructs in this definition are uncommented and
+--implemented on-demand when someone needs them.
+--
+--If you export new types from this file, make sure to update the
+--pkix1implicit_exp.cnf file with the proper definitions
+
+
+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)}
+ GeneralName FROM CertificateExtensions;
+
+
+-- 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 }
+--
+Dummy ::= NULL
+--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
+--
+--Imported from X509CE
+--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 OPTIONAL,
+ partyName [1] DirectoryString }
+
+--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 {
+ ia5String IA5String,
+ visibleString VisibleString,
+ bmpString BMPString,
+ utf8String UTF8String }
+
+
+END
diff --git a/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c b/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c
new file mode 100644
index 0000000000..c184514bb8
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c
@@ -0,0 +1,91 @@
+/* packet-pkix1implicit.c
+ * Routines for PKIX1Implitic packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/asn1.h>
+#include "packet-ber.h"
+#include "packet-pkix1implicit.h"
+#include "packet-pkix1explicit.h"
+#include "packet-x509ce.h"
+
+#define PNAME "PKIX1Implitit"
+#define PSNAME "PKIX1IMPLICIT"
+#define PFNAME "pkix1implicit"
+
+void proto_register_pkix1implicit(void);
+void proto_reg_handoff_pkix1implicit(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pkix1implicit = -1;
+#include "packet-pkix1implicit-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-pkix1implicit-ett.c"
+
+
+int
+dissect_pkix1implicit_ReasonFlags(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x509ce_ReasonFlags(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+int
+dissect_pkix1implicit_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x509ce_GeneralName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+#include "packet-pkix1implicit-fn.c"
+
+
+/*--- proto_register_pkix1implicit ----------------------------------------------*/
+void proto_register_pkix1implicit(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-pkix1implicit-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-pkix1implicit-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkix1implicit = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkix1implicit, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_pkix1implicit -------------------------------------------*/
+void proto_reg_handoff_pkix1implicit(void) {
+#include "packet-pkix1implicit-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.h b/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.h
new file mode 100644
index 0000000000..f4e51a2b3c
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.h
@@ -0,0 +1,32 @@
+/* packet-pkix1implicit.h
+ * Routines for PKIX1Implicit packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKIX1IMPLICIT_H
+#define PACKET_PKIX1IMPLICIT_H
+
+int dissect_pkix1implicit_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+int dissect_pkix1implicit_ReasonFlags(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+
+#include "packet-pkix1implicit-exp.h"
+
+#endif /* PACKET_PKIX1IMPLICIT_H */
+
diff --git a/epan/dissectors/asn1/pkix1implicit/pkix1implicit.cnf b/epan/dissectors/asn1/pkix1implicit/pkix1implicit.cnf
new file mode 100644
index 0000000000..71ebc6c853
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/pkix1implicit.cnf
@@ -0,0 +1,74 @@
+# pkix1implicit.cnf
+# pkix1implicit conformation file
+
+#.MODULE_IMPORT
+PKIX1Explicit93 pkix1explicit
+
+#.INCLUDE ../pkix1explicit/pkix1explicit_exp.cnf
+#.IMPORT ../x509ce/x509ce-exp.cnf
+
+#.OMIT_ASSIGNMENT
+EDIPartyName
+#.END
+
+#.EXPORTS
+
+AuthorityInfoAccessSyntax
+KeyIdentifier
+UserNotice
+
+#.PDU
+
+#.REGISTER
+AuthorityInfoAccessSyntax B "1.3.6.1.5.5.7.1.1" "id-pe-authorityInfoAccessSyntax"
+Dummy B "1.3.6.1.5.5.7.3.1" "id-kp-serverAuth"
+Dummy B "1.3.6.1.5.5.7.3.2" "id-kp-clientAuth"
+Dummy B "1.3.6.1.5.5.7.3.3" "id-kp-codeSigning"
+Dummy B "1.3.6.1.5.5.7.3.4" "id-kp-emailProtection"
+Dummy B "1.3.6.1.5.5.7.3.5" "id-kp-ip-kp-ipsecEndSystem"
+Dummy B "1.3.6.1.5.5.7.3.6" "id-kp-ipsecTunnel"
+Dummy B "1.3.6.1.5.5.7.3.7" "id-kp-ipsecUser"
+Dummy B "1.3.6.1.5.5.7.3.8" "id-kp-timeStamping"
+Dummy B "1.3.6.1.5.5.7.3.9" "OCSPSigning"
+
+# Additional MS Enhanced Key Usage OIDs (see http://msdn2.microsoft.com/en-us/library/aa378155.aspx)
+
+Dummy B "1.3.6.1.4.1.311.10.12.1" "id-ms-any-application-policy"
+Dummy B "1.3.6.1.4.1.311.10.3.1" "id-ms-kp-ctl-usage-signing"
+Dummy B "1.3.6.1.4.1.311.10.3.2" "id-ms-kp-time-stamp-signing"
+Dummy B "1.3.6.1.4.1.311.10.3.4" "id-ms-kp-efs"
+Dummy B "1.3.6.1.4.1.311.10.3.4.1" "id-ms-efs-recovery"
+Dummy B "1.3.6.1.4.1.311.10.3.5" "id-ms-whql-crypto"
+Dummy B "1.3.6.1.4.1.311.10.3.6" "id-ms-nt5-crypto"
+Dummy B "1.3.6.1.4.1.311.10.3.7" "id-ms-oem-whql-crypto"
+Dummy B "1.3.6.1.4.1.311.10.3.8" "id-ms-embedded-nt-crypto"
+Dummy B "1.3.6.1.4.1.311.10.3.9" "id-ms-root-list-signer"
+Dummy B "1.3.6.1.4.1.311.10.3.10" "id-ms-kp-qualified-subordination"
+Dummy B "1.3.6.1.4.1.311.10.3.11" "id-ms-kp-key-recovery"
+Dummy B "1.3.6.1.4.1.311.10.3.12" "id-ms-kp-document-signing"
+Dummy B "1.3.6.1.4.1.311.10.3.13" "id-ms-kp-lifetime-signing"
+
+Dummy B "1.3.6.1.4.1.311.10.5.1" "id-ms-drm"
+
+Dummy B "1.3.6.1.4.1.311.10.6.1" "id-ms-licenses"
+Dummy B "1.3.6.1.4.1.311.10.6.2" "id-ms-license-server"
+
+Dummy B "1.3.6.1.4.1.311.20.1" "id-ms-auto-enroll-ctl-usage"
+Dummy B "1.3.6.1.4.1.311.20.2.1" "id-ms-enrollment-agent"
+Dummy B "1.3.6.1.4.1.311.20.2.2" "id-ms-kp-smartcard-logon"
+Dummy B "1.3.6.1.4.1.311.21.5" "id-ms-kp-ca-exchange"
+Dummy B "1.3.6.1.4.1.311.21.6" "id-ms-kp-key-recovery-agent"
+Dummy B "1.3.6.1.4.1.311.21.19" "id-ms-ds-email-replication"
+
+Dummy B "1.3.6.1.5.5.8.2.2" "id-ms-ipsec-kp-ike-intermediate"
+
+UserNotice B "1.3.6.1.5.5.7.2.2" "id-qt-unotice"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
+
diff --git a/epan/dissectors/asn1/pkix1implicit/pkix1implicit_exp.cnf b/epan/dissectors/asn1/pkix1implicit/pkix1implicit_exp.cnf
new file mode 100644
index 0000000000..98897dd6f9
--- /dev/null
+++ b/epan/dissectors/asn1/pkix1implicit/pkix1implicit_exp.cnf
@@ -0,0 +1,16 @@
+#.IMPORT_TAG
+AuthorityInfoAccessSyntax BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+GeneralName BER_CLASS_CON -1/*choice*/
+KeyIdentifier BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING
+ReasonFlags BER_CLASS_UNI BER_UNI_TAG_BITSTRING
+UserNotice BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+#.END
+
+#.TYPE_ATTR
+AuthorityInfoAccessSyntax TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+GeneralName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+KeyIdentifier TYPE = FT_BYTES DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+ReasonFlags TYPE = FT_BYTES DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+UserNotice TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+#.END
+
diff --git a/epan/dissectors/asn1/pkixac/CMakeLists.txt b/epan/dissectors/asn1/pkixac/CMakeLists.txt
new file mode 100644
index 0000000000..70d87940bb
--- /dev/null
+++ b/epan/dissectors/asn1/pkixac/CMakeLists.txt
@@ -0,0 +1,55 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkixac )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PKIXAttributeCertificate.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ ../pkix1explicit/pkix1explicit_exp.cnf
+ ../pkix1implicit/pkix1implicit_exp.cnf
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkixac/Makefile.am b/epan/dissectors/asn1/pkixac/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkixac/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkixac/Makefile.common b/epan/dissectors/asn1/pkixac/Makefile.common
new file mode 100644
index 0000000000..422894cc1b
--- /dev/null
+++ b/epan/dissectors/asn1/pkixac/Makefile.common
@@ -0,0 +1,53 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkixac
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PKIXAttributeCertificate.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../pkix1explicit/pkix1explicit_exp.cnf \
+ $(builddir)/../pkix1implicit/pkix1implicit_exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/pkixac/Makefile.nmake b/epan/dissectors/asn1/pkixac/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkixac/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkixac/PKIXAttributeCertificate.asn b/epan/dissectors/asn1/pkixac/PKIXAttributeCertificate.asn
new file mode 100644
index 0000000000..5a99c7ddb1
--- /dev/null
+++ b/epan/dissectors/asn1/pkixac/PKIXAttributeCertificate.asn
@@ -0,0 +1,200 @@
+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 CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 5} ;
+-- 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 OBJECT IDENTIFIER,
+ classList ClassList DEFAULT {unclassified},
+ securityCategories
+ SET OF SecurityCategory OPTIONAL
+ }
+
+ RFC3281Clearance ::= 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/epan/dissectors/asn1/pkixac/packet-pkixac-template.c b/epan/dissectors/asn1/pkixac/packet-pkixac-template.c
new file mode 100644
index 0000000000..f48b6eec15
--- /dev/null
+++ b/epan/dissectors/asn1/pkixac/packet-pkixac-template.c
@@ -0,0 +1,86 @@
+/* packet-pkixac.c
+ *
+ * Routines for PKIXAttributeCertificate (RFC3281) packet dissection.
+ *
+ * Copyright 2010, Stig Bjorlykke <stig@bjorlykke.org>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/asn1.h>
+#include "packet-ber.h"
+#include "packet-pkixac.h"
+#include "packet-pkix1explicit.h"
+#include "packet-pkix1implicit.h"
+#include "packet-x509ce.h"
+
+#define PNAME "PKIX Attribute Certificate"
+#define PSNAME "PKIXAC"
+#define PFNAME "pkixac"
+
+void proto_register_pkixac(void);
+void proto_reg_handoff_pkixac(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pkixac = -1;
+#include "packet-pkixac-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_pkixac = -1;
+#include "packet-pkixac-ett.c"
+
+static const char *object_identifier_id;
+
+#include "packet-pkixac-fn.c"
+
+/*--- proto_register_pkixac ----------------------------------------------*/
+void proto_register_pkixac(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-pkixac-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_pkixac,
+#include "packet-pkixac-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkixac = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkixac, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+#include "packet-pkixac-syn-reg.c"
+
+}
+
+
+/*--- proto_reg_handoff_pkixac -------------------------------------------*/
+void proto_reg_handoff_pkixac(void) {
+#include "packet-pkixac-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/pkixac/packet-pkixac-template.h b/epan/dissectors/asn1/pkixac/packet-pkixac-template.h
new file mode 100644
index 0000000000..a78793cdfc
--- /dev/null
+++ b/epan/dissectors/asn1/pkixac/packet-pkixac-template.h
@@ -0,0 +1,32 @@
+/* packet-pkixac.h
+ *
+ * Routines for PKIXAttributeCertificate (RFC3281) packet dissection.
+ *
+ * Copyright 2010, Stig Bjorlykke <stig@bjorlykke.org>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKIXAC_H
+#define PACKET_PKIXAC_H
+
+/*#include "packet-pkixac-exp.h"*/
+
+#endif /* PACKET_PKIXAC_H */
+
diff --git a/epan/dissectors/asn1/pkixac/pkixac.cnf b/epan/dissectors/asn1/pkixac/pkixac.cnf
new file mode 100644
index 0000000000..0ff6ed5262
--- /dev/null
+++ b/epan/dissectors/asn1/pkixac/pkixac.cnf
@@ -0,0 +1,63 @@
+# pkixac.cnf
+# An Internet Attribute Certificate (RFC3281) conformation file
+
+#.MODULE_IMPORT
+PKIX1Explicit88 pkix1explicit
+PKIX1Implicit88 pkix1implicit
+CertificateExtensions x509ce
+
+#.IMPORT ../pkix1explicit/pkix1explicit_exp.cnf
+#.IMPORT ../pkix1implicit/pkix1implicit_exp.cnf
+#.IMPORT ../x509ce/x509ce-exp.cnf
+
+#.OMIT_ASSIGNMENT
+ACClearAttrs
+AttributeCertificate
+AttributeCertificateInfo
+AttCertVersion
+Holder
+AttCertIssuer
+AttCertValidityPeriod
+V2Form
+
+#.EXPORTS
+
+#.PDU
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.SYNTAX
+Clearance
+RFC3281Clearance
+
+#.REGISTER
+AAControls B "1.3.6.1.5.5.7.1.6" "id-pe-aaControls"
+ProxyInfo B "1.3.6.1.5.5.7.1.10" "id-pe-ac-proxying"
+SvceAuthInfo B "1.3.6.1.5.5.7.10.1" "id-aca-authenticationInfo"
+SvceAuthInfo B "1.3.6.1.5.5.7.10.2" "id-aca-accessIdentity"
+IetfAttrSyntax B "1.3.6.1.5.5.7.10.3" "id-aca-chargingIdentity"
+IetfAttrSyntax B "1.3.6.1.5.5.7.10.4" "id-aca-group"
+Clearance B "2.5.1.5.55" "id-at-clearance"
+Clearance B "2.5.4.55" "id-at-clearance"
+#AttributeCertificate B "2.5.4.58" "id-at-attributeCertificate"
+RoleSyntax B "2.5.4.72" "id-at-role"
+Targets B "2.5.29.55" "id-ce-targetInformation"
+#AuthorityKeyIdentifier B "2.5.29.35" "id-ce-authorityKeyIdentifier"
+
+#.FN_BODY SecurityCategory
+ object_identifier_id = NULL;
+ %(DEFAULT_BODY)s
+
+#.FN_PARS SecurityCategory/type
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY SecurityCategory/value
+ if (object_identifier_id)
+ offset = call_ber_oid_callback (object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.END
+
diff --git a/epan/dissectors/asn1/pkixproxy/CMakeLists.txt b/epan/dissectors/asn1/pkixproxy/CMakeLists.txt
new file mode 100644
index 0000000000..c59efe405a
--- /dev/null
+++ b/epan/dissectors/asn1/pkixproxy/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkixproxy )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PKIXProxy.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkixproxy/Makefile.am b/epan/dissectors/asn1/pkixproxy/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkixproxy/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkixproxy/Makefile.common b/epan/dissectors/asn1/pkixproxy/Makefile.common
new file mode 100644
index 0000000000..9b8e8c933f
--- /dev/null
+++ b/epan/dissectors/asn1/pkixproxy/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkixproxy
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PKIXProxy.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/pkixproxy/Makefile.nmake b/epan/dissectors/asn1/pkixproxy/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkixproxy/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkixproxy/PKIXProxy.asn b/epan/dissectors/asn1/pkixproxy/PKIXProxy.asn
new file mode 100644
index 0000000000..c4f2956aaa
--- /dev/null
+++ b/epan/dissectors/asn1/pkixproxy/PKIXProxy.asn
@@ -0,0 +1,69 @@
+-- PKIXProxy
+-- This ASN.1 definition is taken from RFC3820 and modified to pass
+-- through the asn2wrs compiler.
+--
+-- The original copyright of the ASN.1 module follows below:
+--
+-- Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (2004). This document is subject
+-- to the rights, licenses and restrictions contained in BCP 78, and
+-- except as set forth therein, the authors retain all their rights.
+--
+-- This document and the information contained herein are provided on an
+-- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+-- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+-- ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+-- INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+-- INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+-- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+
+PKIXproxy88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ proxy-cert-extns(25) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+-- IMPORTS NONE --
+
+-- PKIX specific OIDs
+
+--id-pkix OBJECT IDENTIFIER ::=
+-- { iso(1) identified-organization(3)
+-- dod(6) internet(1) security(5) mechanisms(5) pkix(7) }
+
+-- private certificate extensions
+--id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+
+-- Locally defined OIDs
+
+-- The proxy certificate extension
+--id-pe-proxyCertInfo OBJECT IDENTIFIER ::= { id-pe 14 }
+
+-- Proxy certificate policy languages
+--id-ppl OBJECT IDENTIFIER ::= { id-pkix 21 }
+
+-- Proxy certificate policies languages defined in
+--id-ppl-anyLanguage OBJECT IDENTIFIER ::= { id-ppl 0 }
+--id-ppl-inheritAll OBJECT IDENTIFIER ::= { id-ppl 1 }
+--id-ppl-independent OBJECT IDENTIFIER ::= { id-ppl 2 }
+
+-- The ProxyCertInfo Extension
+ProxyCertInfoExtension ::= SEQUENCE {
+ pCPathLenConstraint ProxyCertPathLengthConstraint
+ OPTIONAL,
+ proxyPolicy ProxyPolicy }
+
+ProxyCertPathLengthConstraint ::= INTEGER
+
+ProxyPolicy ::= SEQUENCE {
+ policyLanguage OBJECT IDENTIFIER,
+ policy OCTET STRING OPTIONAL }
+
+END
+
diff --git a/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c b/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c
new file mode 100644
index 0000000000..6b3611f16d
--- /dev/null
+++ b/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c
@@ -0,0 +1,80 @@
+/* packet-pkixproxy.c
+ * Routines for RFC3820 PKIXProxy packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-pkixproxy.h"
+
+#define PNAME "PKIXProxy (RFC3820)"
+#define PSNAME "PKIXPROXY"
+#define PFNAME "pkixproxy"
+
+void proto_register_pkixproxy(void);
+void proto_reg_handoff_pkixproxy(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pkixproxy = -1;
+#include "packet-pkixproxy-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-pkixproxy-ett.c"
+
+#include "packet-pkixproxy-fn.c"
+
+
+/*--- proto_register_pkixproxy ----------------------------------------------*/
+void proto_register_pkixproxy(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-pkixproxy-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-pkixproxy-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkixproxy = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkixproxy, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_pkixproxy -------------------------------------------*/
+void proto_reg_handoff_pkixproxy(void) {
+#include "packet-pkixproxy-dis-tab.c"
+ oid_add_from_string("id-ppl-anyLanguage","1.3.6.1.5.5.7.21.0");
+ oid_add_from_string("id-ppl-inheritAll","1.3.6.1.5.5.7.21.1");
+ oid_add_from_string("id-ppl-independent","1.3.6.1.5.5.7.21.2");
+}
+
diff --git a/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.h b/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.h
new file mode 100644
index 0000000000..75e3e674db
--- /dev/null
+++ b/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.h
@@ -0,0 +1,30 @@
+/* packet-pkixproxy.h
+ * Routines for RFC3820 PKIXProxy packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKIXPROXY_H
+#define PACKET_PKIXPROXY_H
+
+/*#include "packet-pkixproxy-exp.h"*/
+
+#endif /* PACKET_PKIXPROXY_H */
+
diff --git a/epan/dissectors/asn1/pkixproxy/pkixproxy.cnf b/epan/dissectors/asn1/pkixproxy/pkixproxy.cnf
new file mode 100644
index 0000000000..a80fbce56f
--- /dev/null
+++ b/epan/dissectors/asn1/pkixproxy/pkixproxy.cnf
@@ -0,0 +1,19 @@
+# pkixproxy.cnf
+# PKIXProxy conformation file
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.PDU
+
+#.REGISTER
+ProxyCertInfoExtension B "1.3.6.1.5.5.7.1.14" "id-pe-proxyCertInfo"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
diff --git a/epan/dissectors/asn1/pkixqualified/CMakeLists.txt b/epan/dissectors/asn1/pkixqualified/CMakeLists.txt
new file mode 100644
index 0000000000..c0da0d9021
--- /dev/null
+++ b/epan/dissectors/asn1/pkixqualified/CMakeLists.txt
@@ -0,0 +1,54 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkixqualified )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PKIXqualified.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkixqualified/Makefile.am b/epan/dissectors/asn1/pkixqualified/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkixqualified/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkixqualified/Makefile.common b/epan/dissectors/asn1/pkixqualified/Makefile.common
new file mode 100644
index 0000000000..b99c4047d7
--- /dev/null
+++ b/epan/dissectors/asn1/pkixqualified/Makefile.common
@@ -0,0 +1,55 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkixqualified
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PKIXqualified.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509ce/x509ce-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/pkixqualified/Makefile.nmake b/epan/dissectors/asn1/pkixqualified/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkixqualified/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkixqualified/PKIXqualified.asn b/epan/dissectors/asn1/pkixqualified/PKIXqualified.asn
new file mode 100644
index 0000000000..50c3200b8d
--- /dev/null
+++ b/epan/dissectors/asn1/pkixqualified/PKIXqualified.asn
@@ -0,0 +1,224 @@
+-- This ASN definition is taken from (and modified to pass through asn2wrs)
+-- RFC3739
+--
+-- RFC3739 contains the followin copyright statements:
+--
+-- Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (2004). This document is subject
+-- to the rights, licenses and restrictions contained in BCP 78 and
+-- except as set forth therein, the authors retain all their rights.
+--
+-- This document and the information contained herein are provided on an
+-- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
+-- REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
+-- INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
+-- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+-- THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+-- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--
+-- Intellectual Property
+--
+-- The IETF takes no position regarding the validity or scope of any
+-- Intellectual Property Rights or other rights that might be claimed
+-- to pertain to the implementation or use of the technology
+-- described in this document or the extent to which any license
+-- under such rights might or might not be available; nor does it
+-- represent that it has made any independent effort to identify any
+-- such rights. Information on the procedures with respect to
+-- rights in RFC documents can be found in BCP 78 and BCP 79.
+--
+-- Copies of IPR disclosures made to the IETF Secretariat and any
+-- assurances of licenses to be made available, or the result of an
+-- attempt made to obtain a general license or permission for the use
+-- of such proprietary rights by implementers or users of this
+-- specification can be obtained from the IETF on-line IPR repository
+-- at http://www.ietf.org/ipr.
+--
+-- The IETF invites any interested party to bring to its attention
+-- any copyrights, patents or patent applications, or other
+-- proprietary rights that may cover technology that may be required
+-- to implement this standard. Please address the information to the
+-- IETF at ietf-ipr@ietf.org.
+--
+-- Acknowledgement
+--
+-- Funding for the RFC Editor function is currently provided by the
+-- Internet Society.
+--
+
+
+ PKIXqualified97 {iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-qualified-cert-97(35) }
+
+ DEFINITIONS EXPLICIT TAGS ::=
+
+ BEGIN
+
+ -- EXPORTS ALL --
+
+ IMPORTS
+
+ informationFramework, certificateExtensions, selectedAttributeTypes,
+ authenticationFramework, upperBounds, id-at
+ FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1)
+ usefulDefinitions(0) 3 }
+
+ ub-name
+ FROM UpperBounds upperBounds
+
+ GeneralName
+ FROM CertificateExtensions certificateExtensions
+
+ ATTRIBUTE, AttributeType
+ FROM InformationFramework informationFramework
+
+ DirectoryString
+ FROM SelectedAttributeTypes selectedAttributeTypes
+
+ AlgorithmIdentifier, Extension, EXTENSION
+ FROM AuthenticationFramework authenticationFramework
+
+ id-pkix, id-pe
+ FROM PKIX1Explicit88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-explicit(18) };
+
+ -- Locally defined OIDs
+
+ -- Arc for QC personal data attributes
+-- id-pda OBJECT IDENTIFIER ::= { id-pkix 9 }
+
+ -- Arc for QC statements
+-- id-qcs OBJECT IDENTIFIER ::= { id-pkix 11 }
+
+ -- Personal data attributes
+
+-- id-pda-dateOfBirth AttributeType ::= { id-pda 1 }
+-- id-pda-placeOfBirth AttributeType ::= { id-pda 2 }
+-- id-pda-gender AttributeType ::= { id-pda 3 }
+-- id-pda-countryOfCitizenship AttributeType ::= { id-pda 4 }
+-- id-pda-countryOfResidence AttributeType ::= { id-pda 5 }
+
+ -- Certificate extensions
+
+-- id-pe-biometricInfo OBJECT IDENTIFIER ::= { id-pe 2 }
+-- id-pe-qcStatements OBJECT IDENTIFIER ::= { id-pe 3 }
+
+ -- QC statements
+
+-- id-qcs-pkixQCSyntax-v1 OBJECT IDENTIFIER ::= { id-qcs 1 }
+-- id-qcs-pkixQCSyntax-v2 OBJECT IDENTIFIER ::= { id-qcs 2 }
+
+Generalizedtime ::= GeneralizedTime
+
+Directorystring ::= DirectoryString
+
+Printablestring ::= PrintableString
+
+ -- Personal data attributes
+--
+-- dateOfBirth ATTRIBUTE ::= {
+-- WITH SYNTAX GeneralizedTime
+-- ID id-pda-dateOfBirth }
+--
+-- placeOfBirth ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-name}
+-- ID id-pda-placeOfBirth }
+--
+-- gender ATTRIBUTE ::= {
+-- WITH SYNTAX PrintableString (SIZE(1) ^ FROM("M"|"F"|"m"|"f"))
+-- ID id-pda-gender }
+--
+-- countryOfCitizenship ATTRIBUTE ::= {
+-- WITH SYNTAX PrintableString (SIZE (2))
+-- (CONSTRAINED BY { })
+-- ID id-pda-countryOfCitizenship }
+--
+-- countryOfResidence ATTRIBUTE ::= {
+-- WITH SYNTAX PrintableString (SIZE (2))
+-- (CONSTRAINED BY { })
+-- ID id-pda-countryOfResidence }
+--
+ -- Certificate extensions
+
+ -- Biometric info extension
+--
+-- biometricInfo EXTENSION ::= {
+-- SYNTAX BiometricSyntax
+-- IDENTIFIED BY id-pe-biometricInfo }
+
+ BiometricSyntax ::= SEQUENCE OF BiometricData
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL,
+ ... }
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0), handwritten-signature(1)}
+
+
+ -- QC Statements Extension
+ -- NOTE: This extension does not allow to mix critical and
+ -- non-critical Qualified Certificate Statements. Either all
+ -- statements must be critical or all statements must be
+ -- non-critical.
+--
+-- qcStatements EXTENSION ::= {
+-- SYNTAX QCStatements
+-- IDENTIFIED BY id-pe-qcStatements }
+
+ QCStatements ::= SEQUENCE OF QCStatement
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY OPTIONAL }
+
+-- QC-STATEMENT ::= CLASS {
+-- &id OBJECT IDENTIFIER UNIQUE,
+-- &Type OPTIONAL }
+-- WITH SYNTAX {
+-- [SYNTAX &Type] IDENTIFIED BY &id }
+
+-- qcStatement-1 QC-STATEMENT ::= { SYNTAX SemanticsInformation
+-- IDENTIFIED BY id-qcs-pkixQCSyntax-v1}
+ -- This statement identifies conformance with requirements
+ -- defined in RFC 3039 (Version 1). This statement
+ -- may optionally contain additional semantics information
+ -- as specified below.
+
+-- qcStatement-2 QC-STATEMENT ::= { SYNTAX SemanticsInformation
+-- IDENTIFIED BY id-qcs-pkixQCSyntax-v2}
+ -- This statement identifies conformance with requirements
+ -- defined in this Qualified Certificate profile
+ -- (Version 2). This statement may optionally contain
+ -- additional semantics information as specified below.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities OPTIONAL
+ }
+
+ NameRegistrationAuthorities ::= SEQUENCE OF GeneralName
+
+ -- The following information object set is defined to constrain the
+ -- set of attributes applications are required to recognize as QCSs.
+-- SupportedStatements QC-STATEMENT ::= {
+-- qcStatement-1 |
+-- qcStatement-2 , ... }
+
+-- RFC 3920 added
+
+ XmppAddr ::= UTF8String
+
+ END
+
+
diff --git a/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c b/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c
new file mode 100644
index 0000000000..257bfb6778
--- /dev/null
+++ b/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c
@@ -0,0 +1,82 @@
+/* packet-pkixqualified.c
+ * Routines for RFC3739 PKIXqualified packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-pkixqualified.h"
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-x509sat.h"
+
+#define PNAME "PKIX Qualified"
+#define PSNAME "PKIXQUALIFIED"
+#define PFNAME "pkixqualified"
+
+void proto_register_pkixqualified(void);
+void proto_reg_handoff_pkixqualified(void);
+
+
+/* Initialize the protocol and registered fields */
+static int proto_pkixqualified = -1;
+#include "packet-pkixqualified-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-pkixqualified-ett.c"
+
+static const char *object_identifier_id;
+
+#include "packet-pkixqualified-fn.c"
+
+
+/*--- proto_register_pkixqualified ----------------------------------------------*/
+void proto_register_pkixqualified(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-pkixqualified-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-pkixqualified-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkixqualified = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkixqualified, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_pkixqualified -------------------------------------------*/
+void proto_reg_handoff_pkixqualified(void) {
+#include "packet-pkixqualified-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.h b/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.h
new file mode 100644
index 0000000000..e7c75cd753
--- /dev/null
+++ b/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.h
@@ -0,0 +1,30 @@
+/* packet-pkixqualified.h
+ * Routines for RFC3739 PKIXqualified packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKIXQUALIFIED_H
+#define PACKET_PKIXQUALIFIED_H
+
+/*#include "packet-pkixqualified-exp.h"*/
+
+#endif /* PACKET_PKIXQUALIFIED_H */
+
diff --git a/epan/dissectors/asn1/pkixqualified/pkixqualified.cnf b/epan/dissectors/asn1/pkixqualified/pkixqualified.cnf
new file mode 100644
index 0000000000..0e3315efc6
--- /dev/null
+++ b/epan/dissectors/asn1/pkixqualified/pkixqualified.cnf
@@ -0,0 +1,36 @@
+# PKIXqualified.cnf
+# PKIXqualified conformation file
+
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+
+#.EXPORTS
+
+#.REGISTER
+BiometricSyntax B "1.3.6.1.5.5.7.1.2" "id-pe-biometricInfo"
+QCStatements B "1.3.6.1.5.5.7.1.3" "id-pe-qcStatements"
+SemanticsInformation B "1.3.6.1.5.5.7.11.1" "id-qcs-pkixQCSyntax-v1"
+SemanticsInformation B "1.3.6.1.5.5.7.11.2" "id-qcs-pkixQCSyntax-v2"
+XmppAddr B "1.3.6.1.5.5.7.8.5" "id-on-xmppAddr"
+Generalizedtime B "1.3.6.1.5.5.7.9.1" "id-pda-dateOfBirth"
+Directorystring B "1.3.6.1.5.5.7.9.2" "id-pda-placeOfBirth"
+Printablestring B "1.3.6.1.5.5.7.9.3" "id-pda-gender"
+Printablestring B "1.3.6.1.5.5.7.9.4" "id-pda-countryOfCitizenship"
+Printablestring B "1.3.6.1.5.5.7.9.5" "id-pda-countryOfResidence"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.FN_PARS QCStatement/statementId
+ FN_VARIANT = _str HF_INDEX = hf_pkixqualified_statementId VAL_PTR = &object_identifier_id
+
+#.FN_BODY QCStatement/statementInfo
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/pkixtsp/CMakeLists.txt b/epan/dissectors/asn1/pkixtsp/CMakeLists.txt
new file mode 100644
index 0000000000..ed2299d3fa
--- /dev/null
+++ b/epan/dissectors/asn1/pkixtsp/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pkixtsp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ PKIXTSP.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../cms/cms-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pkixtsp/Makefile.am b/epan/dissectors/asn1/pkixtsp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pkixtsp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pkixtsp/Makefile.common b/epan/dissectors/asn1/pkixtsp/Makefile.common
new file mode 100644
index 0000000000..5d9b2e841e
--- /dev/null
+++ b/epan/dissectors/asn1/pkixtsp/Makefile.common
@@ -0,0 +1,47 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pkixtsp
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ PKIXTSP.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../cms/cms-exp.cnf
+
+$(builddir)/../cms/cms-exp.cnf:
+ (cd $(builddir)/../cms && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/pkixtsp/Makefile.nmake b/epan/dissectors/asn1/pkixtsp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pkixtsp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pkixtsp/PKIXTSP.asn b/epan/dissectors/asn1/pkixtsp/PKIXTSP.asn
new file mode 100644
index 0000000000..ce310a7a85
--- /dev/null
+++ b/epan/dissectors/asn1/pkixtsp/PKIXTSP.asn
@@ -0,0 +1,177 @@
+-- This ASN.1 definition defined the Time-Stamp Protocol
+-- as of RFC3161.
+-- This definition is taken from RFC3161 and modified to pass through
+-- the asn2wrs compiler.
+--
+-- Copyright statement of the original ASN.1 definition of RFC3161 as follows
+--
+--
+-- Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (2001). All Rights Reserved.
+--
+-- This document and translations of it may be copied and furnished to
+-- others, and derivative works that comment on or otherwise explain it
+-- or assist in its implementation may be prepared, copied, published
+-- and distributed, in whole or in part, without restriction of any
+-- kind, provided that the above copyright notice and this paragraph are
+-- included on all such copies and derivative works. However, this
+-- document itself may not be modified in any way, such as by removing
+-- the copyright notice or references to the Internet Society or other
+-- Internet organizations, except as needed for the purpose of
+-- developing Internet standards in which case the procedures for
+-- copyrights defined in the Internet Standards process must be
+-- followed, or as required to translate it into languages other than
+-- English.
+--
+-- The limited permissions granted above are perpetual and will not be
+-- revoked by the Internet Society or its successors or assigns.
+--
+-- This document and the information contained herein is provided on an
+-- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+-- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+-- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+-- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+-- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+PKIXTSP {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-tsp(13)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+
+ Extensions, AlgorithmIdentifier
+ 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 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)}
+
+ ContentInfo FROM CryptographicMessageSyntax {iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
+ smime(16) modules(0) cms(1)}
+
+ PKIFreeText FROM PKIXCMP {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-cmp(9)} ;
+
+ -- Locally defined OIDs --
+
+-- eContentType for a time-stamp token
+
+-- id-ct-TSTInfo OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+-- us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 4}
+
+-- 2.4.1
+
+TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL }
+
+MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+TSAPolicyId ::= OBJECT IDENTIFIER
+
+
+-- 2.4.2
+
+TimeStampResp ::= SEQUENCE {
+ status PKIStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+-- The status is based on the definition of status
+-- in section 3.2.3 of [RFC2510]
+
+PKIStatusInfo ::= SEQUENCE {
+ status PKIStatus,
+--XXX dont implement PKIXCMP yet
+-- statusString PKIFreeText OPTIONAL,
+ failInfo PKIFailureInfo OPTIONAL }
+
+PKIStatus ::= INTEGER {
+ granted (0),
+ -- when the PKIStatus contains the value zero a TimeStampToken, as
+ -- requested, is present.
+ grantedWithMods (1),
+ -- when the PKIStatus contains the value one a TimeStampToken,
+ -- with modifications, is present.
+ rejection (2),
+ waiting (3),
+ revocationWarning (4),
+ -- this message contains a warning that a revocation is
+ -- imminent
+ revocationNotification (5)
+ -- notification that a revocation has occurred
+}
+
+ -- When the TimeStampToken is not present
+ -- failInfo indicates the reason why the
+ -- time-stamp request was rejected and
+ -- may be one of the following values.
+
+PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badRequest (2),
+ -- transaction not permitted or supported
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA.
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA.
+ addInfoNotAvailable (17),
+ -- the additional information requested could not be understood
+ -- or is not available
+ systemFailure (25)
+ -- the request cannot be handled due to system failure
+}
+
+TimeStampToken ::= ContentInfo
+
+ -- contentType is id-signedData as defined in [CMS]
+ -- content is SignedData as defined in([CMS])
+ -- eContentType within SignedData is id-ct-TSTInfo
+ -- eContent within SignedData is TSTInfo
+
+TSTInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL }
+
+END
diff --git a/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c b/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c
new file mode 100644
index 0000000000..a8f44ec532
--- /dev/null
+++ b/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c
@@ -0,0 +1,134 @@
+/* packet-pkixtsp.c
+ * Routines for RFC2634 Extended Security Services packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/asn1.h>
+#include "packet-ber.h"
+#include "packet-pkixtsp.h"
+#include "packet-pkix1explicit.h"
+#include "packet-pkix1implicit.h"
+#include "packet-cms.h"
+
+#define PNAME "PKIX Time Stamp Protocol"
+#define PSNAME "PKIXTSP"
+#define PFNAME "pkixtsp"
+
+void proto_register_pkixtsp(void);
+void proto_reg_handoff_pkixtsp(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pkixtsp = -1;
+#include "packet-pkixtsp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_pkixtsp = -1;
+#include "packet-pkixtsp-ett.c"
+
+
+#include "packet-pkixtsp-fn.c"
+
+
+static int
+dissect_timestamp_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "PKIXTSP");
+
+ col_set_str(pinfo->cinfo, COL_INFO, "Reply");
+
+
+ if(parent_tree){
+ item=proto_tree_add_item(parent_tree, proto_pkixtsp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_pkixtsp);
+ }
+
+ return dissect_pkixtsp_TimeStampResp(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static int
+dissect_timestamp_query(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "PKIXTSP");
+
+ col_set_str(pinfo->cinfo, COL_INFO, "Query");
+
+
+ if(parent_tree){
+ item=proto_tree_add_item(parent_tree, proto_pkixtsp, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_pkixtsp);
+ }
+
+ return dissect_pkixtsp_TimeStampReq(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+
+/*--- proto_register_pkixtsp ----------------------------------------------*/
+void proto_register_pkixtsp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-pkixtsp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_pkixtsp,
+#include "packet-pkixtsp-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkixtsp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkixtsp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_pkixtsp -------------------------------------------*/
+void proto_reg_handoff_pkixtsp(void) {
+ dissector_handle_t timestamp_reply_handle;
+ dissector_handle_t timestamp_query_handle;
+
+ timestamp_reply_handle = create_dissector_handle(dissect_timestamp_reply, proto_pkixtsp);
+ dissector_add_string("media_type", "application/timestamp-reply", timestamp_reply_handle);
+
+ timestamp_query_handle = create_dissector_handle(dissect_timestamp_query, proto_pkixtsp);
+ dissector_add_string("media_type", "application/timestamp-query", timestamp_query_handle);
+
+#include "packet-pkixtsp-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.h b/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.h
new file mode 100644
index 0000000000..628da66c09
--- /dev/null
+++ b/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.h
@@ -0,0 +1,30 @@
+/* packet-pkixtsp.h
+ * Routines for RFC3161 Time-Stamp Protocol packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PKIXTSP_H
+#define PACKET_PKIXTSP_H
+
+/*#include "packet-pkixtsp-exp.h"*/
+
+#endif /* PACKET_PKIXTSP_H */
+
diff --git a/epan/dissectors/asn1/pkixtsp/pkixtsp.cnf b/epan/dissectors/asn1/pkixtsp/pkixtsp.cnf
new file mode 100644
index 0000000000..2687427b16
--- /dev/null
+++ b/epan/dissectors/asn1/pkixtsp/pkixtsp.cnf
@@ -0,0 +1,29 @@
+# pkixtsp.cnf
+# Time-Stamp Protocol (RFC3161) conformation file
+
+#.MODULE_IMPORT
+PKIX1Explicit88 pkix1explicit
+PKIX1Implicit88 pkix1implicit
+
+#.INCLUDE ../pkix1explicit/pkix1explicit_exp.cnf
+#.INCLUDE ../pkix1implicit/pkix1implicit_exp.cnf
+#.IMPORT ../cms/cms-exp.cnf
+
+#.EXPORTS
+
+#.PDU
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+TSTInfo/version Tst_version
+
+#.FIELD_RENAME
+PKIStatusInfo/status pki_status
+TSTInfo/version tst_version
+
+#.REGISTER
+TSTInfo B "1.2.840.113549.1.9.16.1.4" "id-ct-TSTInfo"
+
+#.END
+
diff --git a/epan/dissectors/asn1/pres/CMakeLists.txt b/epan/dissectors/asn1/pres/CMakeLists.txt
new file mode 100644
index 0000000000..31231dd921
--- /dev/null
+++ b/epan/dissectors/asn1/pres/CMakeLists.txt
@@ -0,0 +1,53 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME pres )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ISO8823-PRESENTATION.asn
+ ISO9576-PRESENTATION.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../rtse/rtse-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/pres/ISO8823-PRESENTATION.asn b/epan/dissectors/asn1/pres/ISO8823-PRESENTATION.asn
new file mode 100644
index 0000000000..99289066ea
--- /dev/null
+++ b/epan/dissectors/asn1/pres/ISO8823-PRESENTATION.asn
@@ -0,0 +1,388 @@
+-- Module ISO8823-PRESENTATION (X.226:07/1994)
+ISO8823-PRESENTATION DEFINITIONS ::=
+BEGIN
+
+--
+-- In X.410-1984 mode, the value of the SS-user data parameter of the S-CONNECT request and
+-- indication session-service primitives shall be a CP-type value.
+--
+-- In normal mode, the value of the SS-user data parameter of the S-CONNECT request and
+-- indication session-service primitives shall be a CP-type value, followed as a requestor's
+-- option by zero or more CPC-type values.
+IMPORTS
+ RTORQapdu, RTOACapdu, RTORJapdu, RTABapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t(2) reliable-transfer(3)
+ apdus(0)};
+
+CP-type ::= SET {
+ mode-selector [0] IMPLICIT Mode-selector,
+ x410-mode-parameters
+-- [1] IMPLICIT SET {COMPONENTS OF Reliable-Transfer-APDU.RTORQapdu} OPTIONAL This OPTIONAL element shall be absent for a
+ [1] IMPLICIT RTORQapdu OPTIONAL,
+-- This OPTIONAL element shall be absent for a
+ -- nested presentation connection.
+ -- Shall be used for X.410 mode only. Shall be bitwise
+ -- compatible with CCITT Recommendation X.410-1984.
+ -- This shall be the User data parameter of the CP PPDU1) --
+ normal-mode-parameters
+ [2] IMPLICIT SEQUENCE {protocol-version
+ [0] IMPLICIT Protocol-version DEFAULT {version-1},
+ calling-presentation-selector
+ [1] IMPLICIT Calling-presentation-selector
+ OPTIONAL,
+ called-presentation-selector
+ [2] IMPLICIT Called-presentation-selector OPTIONAL,
+ presentation-context-definition-list
+ [4] IMPLICIT Presentation-context-definition-list
+ OPTIONAL,
+ default-context-name
+ [6] IMPLICIT Default-context-name OPTIONAL,
+ presentation-requirements
+ [8] IMPLICIT Presentation-requirements OPTIONAL,
+ user-session-requirements
+ [9] IMPLICIT User-session-requirements OPTIONAL-- shall not be present if equal to the Revised session
+ -- requirements parameter --,
+ protocol-options
+ [11] Protocol-options DEFAULT {},
+ -- shall be absent if no options are offered
+ initiators-nominated-context
+ [12] Presentation-context-identifier OPTIONAL,
+ -- shall only be present if nominated-context is
+ -- offered in protocol-options
+ extensions
+ [14] SEQUENCE {...} OPTIONAL,
+ -- to allow for future extensions
+ user-data
+ User-data OPTIONAL} OPTIONAL
+ -- Shall be used for normal mode only.
+ -- Shall be the parameters of the CP PPDU.
+}
+
+--
+-- As an initiator's option, the presentation data values contained in a CP PPDU may be
+-- encoded more than once, using CPC-type values, to allow the transfer of the same
+-- presentation data values using a number of different transfer syntaxes.
+--
+CPC-type ::=
+ User-data
+
+-- Shall be used for normal mode only.
+-- Shall not be present if the Presentation context definition list parameter is not present
+-- in the CP PPDU. Each instance of this data type shall contain all of the presentation data
+-- values which were contained in the User data parameter of the CP PPDU.
+-- This shall be the same set of presentation data values which were contained in the CP-type.
+--
+-- The SS-user data parameter value of the S-CONNECT response
+-- and confirm session-service primitives shall be a CPA-PPDU
+-- value when the Result parameter value is "accept".
+--
+--
+CPA-PPDU ::= SET {
+ mode-selector [0] IMPLICIT Mode-selector,
+ x410-mode-parameters
+-- [1] IMPLICIT SET {COMPONENTS OF Reliable-Transfer-APDU.RTOACapdu} OPTIONAL
+-- This OPTIONAL element shall be absent for a
+ [1] IMPLICIT RTOACapdu OPTIONAL,
+-- This OPTIONAL element shall be absent for a
+ -- nested presentation connection.
+ -- Shall be used for X.410 mode only. Shall be bitwise
+ -- compatible with CCITT Recommendation X.410-1984.
+ -- This shall be the User data parameter of the CPA PPDU1) --
+ normal-mode-parameters
+ [2] IMPLICIT SEQUENCE {protocol-version
+ [0] IMPLICIT Protocol-version DEFAULT {version-1},
+ responding-presentation-selector
+ [3] IMPLICIT Responding-presentation-selector
+ OPTIONAL,
+ presentation-context-definition-result-list
+ [5] IMPLICIT Presentation-context-definition-result-list
+ OPTIONAL,
+ presentation-requirements
+ [8] IMPLICIT Presentation-requirements OPTIONAL,
+ user-session-requirements
+ [9] IMPLICIT User-session-requirements OPTIONAL,
+ -- shall not be present if equal to the Revised session
+ -- requirements parameter
+ protocol-options
+ [11] Protocol-options DEFAULT {},
+ -- shall be absent if no options are selected
+ responders-nominated-context
+ [13] Presentation-context-identifier OPTIONAL,
+ -- shall only be present if nominated-context is
+ -- selected in protocol-options
+ user-data
+ User-data OPTIONAL} OPTIONAL
+ -- Shall be used for normal mode only.
+}
+
+--
+--
+-- The SS-user data parameter value of the S-CONNECT response
+-- and confirm session-service primitives shall be a CPR-PPDU
+-- value when the Result parameter value is "reject by SS-provider"
+-- or "reject by called SS-user".
+--
+CPR-PPDU ::= CHOICE {
+-- x400-mode-parameters SET {COMPONENTS OF Reliable-Transfer-APDU.RTORJapdu}
+-- This OPTIONAL element shall be absent for a
+ x400-mode-parameters RTORJapdu,
+ -- This OPTIONAL element shall be absent for a
+ -- nested presentation connection.
+ -- Shall be used for X.410 mode only. Shall be bitwise
+ -- compatible with CCITT Recommendation X.410-1984.
+ -- This shall be the User data parameter of the CPR PPDU2) --
+ normal-mode-parameters
+ SEQUENCE {protocol-version
+ [0] IMPLICIT Protocol-version DEFAULT {version-1},
+ responding-presentation-selector
+ [3] IMPLICIT Responding-presentation-selector OPTIONAL,
+ presentation-context-definition-result-list
+ [5] IMPLICIT Presentation-context-definition-result-list
+ OPTIONAL,
+ default-context-result
+ [7] IMPLICIT Default-context-result OPTIONAL,
+ provider-reason
+ [10] IMPLICIT Provider-reason OPTIONAL,
+ user-data User-data OPTIONAL
+ }
+ -- Shall be used for normal mode only.
+}
+
+--
+--
+-- The SS-user data parameter of the S-U-ABORT request and indication
+-- service primitives shall be an Abort-type value.
+--
+Abort-type ::= CHOICE {
+ aru-ppdu ARU-PPDU-- for a P-U-ABORT -- ,
+ arp-ppdu ARP-PPDU -- for a P-P-ABORT
+}
+
+--
+ARU-PPDU ::= CHOICE {
+-- x400-mode-parameters SET {COMPONENTS OF Reliable-Transfer-APDU.RTABapdu}
+-- Shall be used for X.410 mode only. Shall be bitwise
+ x400-mode-parameters RTABapdu,
+-- Shall be used for X.410 mode only. Shall be bitwise
+ -- compatible with CCITT Recommendation X.410-1984.
+ -- This shall be the User data parameter of the ARU PPDU3. --
+ normal-mode-parameters
+ [0] IMPLICIT SEQUENCE {presentation-context-identifier-list
+ [0] IMPLICIT Presentation-context-identifier-list
+ OPTIONAL,
+ user-data
+ User-data OPTIONAL}
+ -- Shall be used for normal mode only.
+}
+
+--
+ARP-PPDU ::= SEQUENCE {
+ provider-reason [0] IMPLICIT Abort-reason OPTIONAL,
+ event-identifier [1] IMPLICIT Event-identifier OPTIONAL
+}
+
+--
+--
+-- The SS-user data parameter value of the S-TYPED-DATA request
+-- and indication service primitives shall be a Typed-data-type value.
+--
+Typed-data-type ::= CHOICE {
+ acPPDU [0] IMPLICIT AC-PPDU-- P-ALTER-CONTEXT request and indication -- ,
+ acaPPDU [1] IMPLICIT ACA-PPDU-- P-ALTER-CONTEXT response and confirm -- ,
+ ttdPPDU User-data -- P-TYPED-DATA request and indication
+}
+
+--
+AC-PPDU ::= SEQUENCE {
+ presentation-context-addition-list
+ [0] IMPLICIT Presentation-context-addition-list OPTIONAL,
+ presentation-context-deletion-list
+ [1] IMPLICIT Presentation-context-deletion-list OPTIONAL,
+ user-data User-data OPTIONAL
+}
+
+--
+ACA-PPDU ::= SEQUENCE {
+ presentation-context-addition-result-list
+ [0] IMPLICIT Presentation-context-addition-result-list OPTIONAL,
+ presentation-context-deletion-result-list
+ [1] IMPLICIT Presentation-context-deletion-result-list OPTIONAL,
+ user-data User-data OPTIONAL
+}
+
+--
+--
+-- The SS-user data parameter value of the S-RESYNCHRONIZE request and
+-- indication service primitives shall be an RS-PPDU value.
+--
+RS-PPDU ::= SEQUENCE {
+ presentation-context-identifier-list
+ [0] IMPLICIT Presentation-context-identifier-list OPTIONAL,
+ user-data User-data OPTIONAL
+}
+
+--
+-- The SS-user data parameter value of the S-RESYNCHRONIZE response and
+-- confirm service primitives shall be an RSA-PPDU value.
+--
+RSA-PPDU ::= SEQUENCE {
+ presentation-context-identifier-list
+ [0] IMPLICIT Presentation-context-identifier-list OPTIONAL,
+ user-data User-data OPTIONAL
+}
+
+--
+--
+-- The SS-user data parameter values of the S-DATA, S-CAPABILITY-DATA,
+-- S-EXPEDITED-DATA request and indication session-service primitives
+-- and S-CAPABILITY-DATA response and confirm session-service primitives
+-- shall be of type User-data.
+--
+-- The SS-user data parameter values of all other session-service
+-- primitives not described above shall be of type User-data.
+--
+--
+--
+Abort-reason ::= INTEGER {
+ reason-not-specified(0), unrecognized-ppdu(1), unexpected-ppdu(2),
+ unexpected-session-service-primitive(3), unrecognized-ppdu-parameter(4),
+ unexpected-ppdu-parameter(5), invalid-ppdu-parameter-value(6)}
+
+Abstract-syntax-name ::= OBJECT IDENTIFIER
+
+Called-presentation-selector ::= Presentation-selector
+
+Calling-presentation-selector ::= Presentation-selector
+
+Context-list ::=
+-- SEQUENCE SIZE (0..7, ..., 8..MAX) OF
+ SEQUENCE OF
+ SEQUENCE {presentation-context-identifier Presentation-context-identifier,
+ abstract-syntax-name Abstract-syntax-name,
+ transfer-syntax-name-list SEQUENCE OF Transfer-syntax-name
+ }
+
+Default-context-name ::= SEQUENCE {
+ abstract-syntax-name [0] IMPLICIT Abstract-syntax-name,
+ transfer-syntax-name [1] IMPLICIT Transfer-syntax-name
+}
+
+Default-context-result ::= Result
+
+Event-identifier ::= INTEGER {
+ cp-PPDU(0), cpa-PPDU(1), cpr-PPDU(2), aru-PPDU(3), arp-PPDU(4), ac-PPDU(5),
+ aca-PPDU(6), td-PPDU(7), ttd-PPDU(8), te-PPDU(9), tc-PPDU(10), tcc-PPDU(11),
+ rs-PPDU(12), rsa-PPDU(13), s-release-indication(14), s-release-confirm(15),
+ s-token-give-indication(16), s-token-please-indication(17),
+ s-control-give-indication(18), s-sync-minor-indication(19),
+ s-sync-minor-confirm(20), s-sync-major-indication(21),
+ s-sync-major-confirm(22), s-p-exception-report-indication(23),
+ s-u-exception-report-indication(24), s-activity-start-indication(25),
+ s-activity-resume-indication(26), s-activity-interrupt-indication(27),
+ s-activity-interrupt-confirm(28), s-activity-discard-indication(29),
+ s-activity-discard-confirm(30), s-activity-end-indication(31),
+ s-activity-end-confirm(32)}
+
+Mode-selector ::= SET {
+ mode-value [0] IMPLICIT INTEGER {x410-1984-mode(0), normal-mode(1)}
+}
+
+Presentation-context-addition-list ::= Context-list
+
+Presentation-context-addition-result-list ::= Result-list
+
+Presentation-context-definition-list ::= Context-list
+
+Presentation-context-definition-result-list ::= Result-list
+
+Presentation-context-deletion-list ::=
+-- SEQUENCE SIZE (0..7, ..., 8..MAX) OF Presentation-context-identifier
+ SEQUENCE OF Presentation-context-identifier
+
+Presentation-context-deletion-result-list ::=
+-- SEQUENCE SIZE (0..7, ..., 8..MAX) OF
+ SEQUENCE OF
+ INTEGER {acceptance(0), user-rejection(1)}
+
+--Presentation-context-identifier ::= INTEGER(1..127, ..., 128..MAX)
+Presentation-context-identifier ::= INTEGER
+
+Presentation-context-identifier-list ::=
+-- SEQUENCE SIZE (0..7, ..., 8..MAX) OF
+ SEQUENCE OF
+ SEQUENCE {presentation-context-identifier Presentation-context-identifier,
+ transfer-syntax-name Transfer-syntax-name}
+
+Presentation-requirements ::= BIT STRING {context-management(0), restoration(1)
+}
+
+--Presentation-selector ::= OCTET STRING(SIZE (1..4, ..., 5..MAX))
+Presentation-selector ::= OCTET STRING
+
+Protocol-options ::= BIT STRING {
+ nominated-context(0), short-encoding(1), packed-encoding-rules(2)}
+
+Protocol-version ::= BIT STRING {version-1(0)}
+
+Provider-reason ::= INTEGER {
+ reason-not-specified(0), temporary-congestion(1), local-limit-exceeded(2),
+ called-presentation-address-unknown(3), protocol-version-not-supported(4),
+ default-context-not-supported(5), user-data-not-readable(6),
+ no-PSAP-available(7)}
+
+Responding-presentation-selector ::= Presentation-selector
+
+Result ::= INTEGER {acceptance(0), user-rejection(1), provider-rejection(2)}
+
+Result-list ::=
+-- SEQUENCE SIZE (0..7, ..., 8..MAX) OF
+ SEQUENCE OF
+ SEQUENCE {result [0] IMPLICIT Result,
+ transfer-syntax-name [1] IMPLICIT Transfer-syntax-name OPTIONAL,
+ provider-reason
+ [2] IMPLICIT INTEGER {reason-not-specified(0),
+ abstract-syntax-not-supported(1),
+ proposed-transfer-syntaxes-not-supported(2),
+ local-limit-on-DCS-exceeded(3)} OPTIONAL
+ }
+
+Transfer-syntax-name ::= OBJECT IDENTIFIER
+
+User-data ::= CHOICE {
+ simply-encoded-data [APPLICATION 0] IMPLICIT Simply-encoded-data,
+ fully-encoded-data [APPLICATION 1] IMPLICIT Fully-encoded-data,
+ ...
+}
+
+-- Subclause 8.4 defines when each of the two alternatives shall be used.
+Simply-encoded-data ::= OCTET STRING
+
+-- See 8.4.1.
+--Fully-encoded-data ::= SEQUENCE SIZE (1, ..., 2..MAX) OF PDV-list
+Fully-encoded-data ::= SEQUENCE OF PDV-list
+
+-- contains one or more PDV-list values.
+-- See 8.4.2.
+PDV-list ::= SEQUENCE {
+ transfer-syntax-name Transfer-syntax-name OPTIONAL,
+ presentation-context-identifier Presentation-context-identifier,
+ presentation-data-values
+ CHOICE {single-ASN1-type [0] ANY,
+-- [0] ABSTRACT-SYNTAX.&Type
+-- (CONSTRAINED BY {
+
+ -- Type corresponding to presentation context identifier }),
+ octet-aligned [1] IMPLICIT OCTET STRING,
+ arbitrary [2] IMPLICIT BIT STRING}
+ -- Contains one or more presentation data values from the same
+ -- presentation context.
+ -- See 8.4.2.
+}
+
+User-session-requirements ::= BIT STRING {
+ half-duplex(0), duplex(1), expedited-data(2), minor-synchronize(3),
+ major-synchronize(4), resynchronize(5), activity-management(6),
+ negotiated-release(7), capability-data(8), exceptions(9), typed-data(10),
+ symmetric-synchronize(11), data-separation(12)}
+
+END
diff --git a/epan/dissectors/asn1/pres/ISO9576-PRESENTATION.asn b/epan/dissectors/asn1/pres/ISO9576-PRESENTATION.asn
new file mode 100644
index 0000000000..19e99dc3e3
--- /dev/null
+++ b/epan/dissectors/asn1/pres/ISO9576-PRESENTATION.asn
@@ -0,0 +1,36 @@
+-- Module ISO9576-PRESENTATION (X.236)
+ISO9576-CONNECTIONLESS-PRESENTATION DEFINITIONS ::=
+BEGIN
+
+--
+-- The value of the SS-user data parameter of the S-UNIT-DATA request and indication
+-- session-service primitives shall be a UD-type value, followed as a requestor's
+-- option by zero or more UDC-type values.
+--
+
+UD-type ::= SEQUENCE {
+ protocol-version [0] IMPLICIT Protocol-version DEFAULT {version-1},
+ calling-presentation-selector [1] IMPLICIT Calling-presentation-selector OPTIONAL,
+ called-presentation-selector [2] IMPLICIT Called-presentation-selector OPTIONAL,
+ presentation-context-definition-list [4] IMPLICIT
+ Presentation-context-definition-list OPTIONAL,
+ user-data User-data
+}
+
+-- Shall be the parameters of the UD PPDU.
+--
+-- As an initiator's option, the presentation data values contained in a UD PPDU may be
+-- encoded more than once, using UDC-type values, to allow the transfer of the same
+-- presentation data values using a number of different transfer syntaxes.
+--
+
+UDC-type ::= User-data
+-- Shall not be present if the Presentation context definition list parameter is not present
+-- in the UD PPDU. Each instance of this data type shall contain all of the presentation data
+-- values which were contained in the User data parameter of the UD PPDU.
+-- This shall be the same set of presentation data values which were contained in the UD-type.
+--
+
+-- WS: trunkated here as the rest is present in ISO8823-PRESENTATION.asn.
+
+END
diff --git a/epan/dissectors/asn1/pres/Makefile.am b/epan/dissectors/asn1/pres/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/pres/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/pres/Makefile.common b/epan/dissectors/asn1/pres/Makefile.common
new file mode 100644
index 0000000000..760da09b51
--- /dev/null
+++ b/epan/dissectors/asn1/pres/Makefile.common
@@ -0,0 +1,48 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=pres
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ ISO8823-PRESENTATION.asn \
+ ISO9576-PRESENTATION.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../rtse/rtse-exp.cnf
+
+$(builddir)/../rtse/rtse-exp.cnf:
+ (cd $(builddir)/../rtse && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/pres/Makefile.nmake b/epan/dissectors/asn1/pres/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/pres/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/pres/packet-pres-template.c b/epan/dissectors/asn1/pres/packet-pres-template.c
new file mode 100644
index 0000000000..0c1c2d823e
--- /dev/null
+++ b/epan/dissectors/asn1/pres/packet-pres-template.c
@@ -0,0 +1,460 @@
+/* packet-pres.c
+ * Routine to dissect ISO 8823 OSI Presentation Protocol packets
+ * Based on the dissector by
+ * Yuriy Sidelnikov <YSidelnikov@hotmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/prefs.h>
+#include <epan/conversation.h>
+#include <epan/expert.h>
+#include <epan/uat.h>
+
+#include <epan/asn1.h>
+#include <epan/oids.h>
+#include "packet-ber.h"
+#include "packet-ses.h"
+#include "packet-pres.h"
+#include "packet-rtse.h"
+
+
+#define PNAME "ISO 8823 OSI Presentation Protocol"
+#define PSNAME "PRES"
+#define PFNAME "pres"
+
+#define CLPNAME "ISO 9576-1 OSI Connectionless Presentation Protocol"
+#define CLPSNAME "CLPRES"
+#define CLPFNAME "clpres"
+
+void proto_register_pres(void);
+void proto_reg_handoff_pres(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_pres = -1;
+
+/* Initialize the connectionles protocol */
+static int proto_clpres = -1;
+
+/* pointers for acse dissector */
+proto_tree *global_tree = NULL;
+packet_info *global_pinfo = NULL;
+
+static const char *abstract_syntax_name_oid;
+static guint32 presentation_context_identifier;
+
+/* to keep track of presentation context identifiers and protocol-oids */
+typedef struct _pres_ctx_oid_t {
+ guint32 ctx_id;
+ char *oid;
+ guint32 idx;
+} pres_ctx_oid_t;
+static GHashTable *pres_ctx_oid_table = NULL;
+
+typedef struct _pres_user_t {
+ guint ctx_id;
+ char *oid;
+} pres_user_t;
+
+static pres_user_t *pres_users;
+static guint num_pres_users;
+
+static int hf_pres_CP_type = -1;
+static int hf_pres_CPA_PPDU = -1;
+static int hf_pres_Abort_type = -1;
+static int hf_pres_CPR_PPDU = -1;
+static int hf_pres_Typed_data_type = -1;
+
+#include "packet-pres-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_pres = -1;
+
+#include "packet-pres-ett.c"
+
+static expert_field ei_pres_dissector_not_available = EI_INIT;
+static expert_field ei_pres_wrong_spdu_type = EI_INIT;
+static expert_field ei_pres_invalid_offset = EI_INIT;
+
+UAT_DEC_CB_DEF(pres_users, ctx_id, pres_user_t)
+UAT_CSTRING_CB_DEF(pres_users, oid, pres_user_t)
+
+static guint
+pres_ctx_oid_hash(gconstpointer k)
+{
+ const pres_ctx_oid_t *pco=(const pres_ctx_oid_t *)k;
+ return pco->ctx_id;
+}
+
+static gint
+pres_ctx_oid_equal(gconstpointer k1, gconstpointer k2)
+{
+ const pres_ctx_oid_t *pco1=(const pres_ctx_oid_t *)k1;
+ const pres_ctx_oid_t *pco2=(const pres_ctx_oid_t *)k2;
+ return (pco1->ctx_id==pco2->ctx_id && pco1->idx==pco2->idx);
+}
+
+static void
+pres_init(void)
+{
+ pres_ctx_oid_table = g_hash_table_new(pres_ctx_oid_hash,
+ pres_ctx_oid_equal);
+
+}
+
+static void
+pres_cleanup(void)
+{
+ g_hash_table_destroy(pres_ctx_oid_table);
+}
+
+static void
+register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, const char *oid)
+{
+ pres_ctx_oid_t *pco, *tmppco;
+ conversation_t *conversation;
+
+ if (!oid) {
+ /* we did not get any oid name, malformed packet? */
+ return;
+ }
+
+ pco=wmem_new(wmem_file_scope(), pres_ctx_oid_t);
+ pco->ctx_id=idx;
+ pco->oid=wmem_strdup(wmem_file_scope(), oid);
+ conversation=find_conversation (pinfo->num, &pinfo->src, &pinfo->dst,
+ pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+ if (conversation) {
+ pco->idx = conversation->index;
+ } else {
+ pco->idx = 0;
+ }
+
+ /* if this ctx already exists, remove the old one first */
+ tmppco=(pres_ctx_oid_t *)g_hash_table_lookup(pres_ctx_oid_table, pco);
+ if (tmppco) {
+ g_hash_table_remove(pres_ctx_oid_table, tmppco);
+ }
+ g_hash_table_insert(pres_ctx_oid_table, pco, pco);
+}
+
+static char *
+find_oid_in_users_table(packet_info *pinfo, guint32 ctx_id)
+{
+ guint i;
+
+ for (i = 0; i < num_pres_users; i++) {
+ pres_user_t *u = &(pres_users[i]);
+
+ if (u->ctx_id == ctx_id) {
+ /* Register oid so other dissectors can find this connection */
+ register_ctx_id_and_oid(pinfo, u->ctx_id, u->oid);
+ return u->oid;
+ }
+ }
+
+ return NULL;
+}
+
+char *
+find_oid_by_pres_ctx_id(packet_info *pinfo, guint32 idx)
+{
+ pres_ctx_oid_t pco, *tmppco;
+ conversation_t *conversation;
+
+ pco.ctx_id=idx;
+ conversation=find_conversation (pinfo->num, &pinfo->src, &pinfo->dst,
+ pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
+ if (conversation) {
+ pco.idx = conversation->index;
+ } else {
+ pco.idx = 0;
+ }
+
+ tmppco=(pres_ctx_oid_t *)g_hash_table_lookup(pres_ctx_oid_table, &pco);
+ if (tmppco) {
+ return tmppco->oid;
+ }
+
+ return find_oid_in_users_table(pinfo, idx);
+}
+
+static void *
+pres_copy_cb(void *dest, const void *orig, size_t len _U_)
+{
+ pres_user_t *u = (pres_user_t *)dest;
+ const pres_user_t *o = (const pres_user_t *)orig;
+
+ u->ctx_id = o->ctx_id;
+ u->oid = g_strdup(o->oid);
+
+ return dest;
+}
+
+static void
+pres_free_cb(void *r)
+{
+ pres_user_t *u = (pres_user_t *)r;
+
+ g_free(u->oid);
+}
+
+
+#include "packet-pres-fn.c"
+
+
+/*
+ * Dissect an PPDU.
+ */
+static int
+dissect_ppdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, struct SESSION_DATA_STRUCTURE* local_session)
+{
+ proto_item *ti;
+ proto_tree *pres_tree;
+ struct SESSION_DATA_STRUCTURE* session;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* do we have spdu type from the session dissector? */
+ if (local_session == NULL) {
+ proto_tree_add_expert(tree, pinfo, &ei_pres_wrong_spdu_type, tvb, offset, -1);
+ return 0;
+ }
+
+ session = local_session;
+ if (session->spdu_type == 0) {
+ proto_tree_add_expert_format(tree, pinfo, &ei_pres_wrong_spdu_type, tvb, offset, -1,
+ "Internal error:wrong spdu type %x from session dissector.",session->spdu_type);
+ return 0;
+ }
+
+ /* set up type of PPDU */
+ col_add_str(pinfo->cinfo, COL_INFO,
+ val_to_str_ext(session->spdu_type, &ses_vals_ext, "Unknown PPDU type (0x%02x)"));
+
+ asn1_ctx.private_data = session;
+
+ ti = proto_tree_add_item(tree, proto_pres, tvb, offset, -1, ENC_NA);
+ pres_tree = proto_item_add_subtree(ti, ett_pres);
+
+ switch (session->spdu_type) {
+ case SES_CONNECTION_REQUEST:
+ offset = dissect_pres_CP_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_CP_type);
+ break;
+ case SES_CONNECTION_ACCEPT:
+ offset = dissect_pres_CPA_PPDU(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_CPA_PPDU);
+ break;
+ case SES_ABORT:
+ case SES_ABORT_ACCEPT:
+ offset = dissect_pres_Abort_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_Abort_type);
+ break;
+ case SES_DATA_TRANSFER:
+ offset = dissect_pres_CPC_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_user_data);
+ break;
+ case SES_TYPED_DATA:
+ offset = dissect_pres_Typed_data_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_Typed_data_type);
+ break;
+ case SES_RESYNCHRONIZE:
+ offset = dissect_pres_RS_PPDU(FALSE, tvb, offset, &asn1_ctx, pres_tree, -1);
+ break;
+ case SES_RESYNCHRONIZE_ACK:
+ offset = dissect_pres_RSA_PPDU(FALSE, tvb, offset, &asn1_ctx, pres_tree, -1);
+ break;
+ case SES_REFUSE:
+ offset = dissect_pres_CPR_PPDU(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_CPR_PPDU);
+ break;
+ default:
+ offset = dissect_pres_CPC_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_user_data);
+ break;
+ }
+
+ return offset;
+}
+
+static int
+dissect_pres(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ int offset = 0, old_offset;
+ struct SESSION_DATA_STRUCTURE* session;
+
+ session = ((struct SESSION_DATA_STRUCTURE*)data);
+
+ /* first, try to check length */
+ /* do we have at least 4 bytes */
+ if (!tvb_bytes_exist(tvb, 0, 4)) {
+ if (session && session->spdu_type != SES_MAJOR_SYNC_POINT) {
+ proto_tree_add_item(parent_tree, hf_pres_user_data, tvb, offset,
+ tvb_reported_length_remaining(tvb,offset), ENC_NA);
+ return 0; /* no, it isn't a presentation PDU */
+ }
+ }
+
+ /* save pointers for calling the acse dissector */
+ global_tree = parent_tree;
+ global_pinfo = pinfo;
+
+ /* if the session unit-data packet then we process it */
+ /* as a connectionless presentation protocol unit data */
+ if (session && session->spdu_type == CLSES_UNIT_DATA) {
+ proto_tree * clpres_tree = NULL;
+ proto_item *ti;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CL-PRES");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ if (parent_tree) {
+ ti = proto_tree_add_item(parent_tree, proto_clpres, tvb, offset, -1, ENC_NA);
+ clpres_tree = proto_item_add_subtree(ti, ett_pres);
+ }
+
+ /* dissect the packet */
+ dissect_UD_type_PDU(tvb, pinfo, clpres_tree, NULL);
+ return tvb_captured_length(tvb);
+ }
+
+ /* we can't make any additional checking here */
+ /* postpone it before dissector will have more information */
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "PRES");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ if (session && session->spdu_type == SES_MAJOR_SYNC_POINT) {
+ /* This is a reassembly initiated in packet-ses */
+ char *oid = find_oid_by_pres_ctx_id (pinfo, session->pres_ctx_id);
+ if (oid) {
+ call_ber_oid_callback (oid, tvb, offset, pinfo, parent_tree, session);
+ } else {
+ proto_tree_add_item(parent_tree, hf_pres_user_data, tvb, offset,
+ tvb_reported_length_remaining(tvb,offset), ENC_NA);
+ }
+ return tvb_captured_length(tvb);
+ }
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0) {
+ old_offset = offset;
+ offset = dissect_ppdu(tvb, offset, pinfo, parent_tree, session);
+ if (offset <= old_offset) {
+ proto_tree_add_expert(parent_tree, pinfo, &ei_pres_invalid_offset, tvb, offset, -1);
+ break;
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+
+/*--- proto_register_pres -------------------------------------------*/
+void proto_register_pres(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_pres_CP_type,
+ { "CP-type", "pres.cptype",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_pres_CPA_PPDU,
+ { "CPA-PPDU", "pres.cpapdu",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_pres_Abort_type,
+ { "Abort type", "pres.aborttype",
+ FT_UINT32, BASE_DEC, VALS(pres_Abort_type_vals), 0,
+ NULL, HFILL }},
+ { &hf_pres_CPR_PPDU,
+ { "CPR-PPDU", "pres.cprtype",
+ FT_UINT32, BASE_DEC, VALS(pres_CPR_PPDU_vals), 0,
+ NULL, HFILL }},
+ { &hf_pres_Typed_data_type,
+ { "Typed data type", "pres.Typed_data_type",
+ FT_UINT32, BASE_DEC, VALS(pres_Typed_data_type_vals), 0,
+ NULL, HFILL }},
+
+#include "packet-pres-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_pres,
+#include "packet-pres-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_pres_dissector_not_available, { "pres.dissector_not_available", PI_UNDECODED, PI_WARN, "Dissector is not available", EXPFILL }},
+ { &ei_pres_wrong_spdu_type, { "pres.wrong_spdu_type", PI_PROTOCOL, PI_WARN, "Internal error:can't get spdu type from session dissector", EXPFILL }},
+ { &ei_pres_invalid_offset, { "pres.invalid_offset", PI_MALFORMED, PI_ERROR, "Internal error:can't get spdu type from session dissector", EXPFILL }},
+ };
+
+ static uat_field_t users_flds[] = {
+ UAT_FLD_DEC(pres_users,ctx_id,"Context Id","Presentation Context Identifier"),
+ UAT_FLD_CSTRING(pres_users,oid,"Syntax Name OID","Abstract Syntax Name (Object Identifier)"),
+ UAT_END_FIELDS
+ };
+
+ uat_t* users_uat = uat_new("PRES Users Context List",
+ sizeof(pres_user_t),
+ "pres_context_list",
+ TRUE,
+ &pres_users,
+ &num_pres_users,
+ UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
+ "ChPresContextList",
+ pres_copy_cb,
+ NULL,
+ pres_free_cb,
+ NULL,
+ users_flds);
+
+ expert_module_t* expert_pres;
+ module_t *pres_module;
+
+ /* Register protocol */
+ proto_pres = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("pres", dissect_pres, proto_pres);
+
+ /* Register connectionless protocol (just for the description) */
+ proto_clpres = proto_register_protocol(CLPNAME, CLPSNAME, CLPFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pres, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_pres = expert_register_protocol(proto_pres);
+ expert_register_field_array(expert_pres, ei, array_length(ei));
+ register_init_routine(pres_init);
+ register_cleanup_routine(pres_cleanup);
+
+ pres_module = prefs_register_protocol(proto_pres, NULL);
+
+ prefs_register_uat_preference(pres_module, "users_table", "Users Context List",
+ "A table that enumerates user protocols to be used against"
+ " specific presentation context identifiers",
+ users_uat);
+}
+
+
+/*--- proto_reg_handoff_pres ---------------------------------------*/
+void proto_reg_handoff_pres(void) {
+
+/* register_ber_oid_dissector("0.4.0.0.1.1.1.1", dissect_pres, proto_pres,
+ "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) abstractSyntax(1) pres(1) version1(1)"); */
+
+}
diff --git a/epan/dissectors/asn1/pres/packet-pres-template.h b/epan/dissectors/asn1/pres/packet-pres-template.h
new file mode 100644
index 0000000000..78c45ff25e
--- /dev/null
+++ b/epan/dissectors/asn1/pres/packet-pres-template.h
@@ -0,0 +1,30 @@
+/* packet-pres.h
+ * Routines for pres packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_PRES_H
+#define PACKET_PRES_H
+
+/*#include "packet-pres-exp.h"*/
+
+extern char *find_oid_by_pres_ctx_id(packet_info *pinfo, guint32 idx);
+
+#endif /* PACKET_PRES_H */
diff --git a/epan/dissectors/asn1/pres/pres.cnf b/epan/dissectors/asn1/pres/pres.cnf
new file mode 100644
index 0000000000..01539e9a22
--- /dev/null
+++ b/epan/dissectors/asn1/pres/pres.cnf
@@ -0,0 +1,101 @@
+# pres.cnf
+# pres conformation file
+
+#.IMPORT ../rtse/rtse-exp.cnf
+
+#.EXPORTS
+
+#.PDU
+UD-type
+
+#.NO_EMIT
+UDC-type
+
+#.TYPE_RENAME
+CPA-PPDU/normal-mode-parameters T_CPA_PPDU_normal_mode_parameters
+CPR-PPDU/normal-mode-parameters T_CPR_PPDU_normal_mode_parameters
+ARU-PPDU/normal-mode-parameters T_ARU_PPDU_normal_mode_parameters
+
+#.FIELD_RENAME
+ARU-PPDU/normal-mode-parameters aRU_PPDU_normal_mode_parameters
+CPA-PPDU/normal-mode-parameters cPU_PPDU_normal_mode_parameters
+CPR-PPDU/normal-mode-parameters cPR_PPDU_normal_mode_parameters
+
+ARU-PPDU/x400-mode-parameters aRU_PPDU_x400_mode_parameters
+CPR-PPDU/x400-mode-parameters cPU_PPDU_x400_mode_parameters
+CPA-PPDU/x410-mode-parameters cPR_PPDU_x400_mode_parameters
+
+ARP-PPDU/provider-reason aRU_PPDU_provider-reason
+CPR-PPDU/normal-mode-parameters/provider-reason cPR_PPDU__provider-reason
+
+
+
+
+#.FN_BODY PDV-list/presentation-data-values/single-ASN1-type
+
+ tvbuff_t *next_tvb;
+ char *oid;
+
+ oid=find_oid_by_pres_ctx_id(actx->pinfo, presentation_context_identifier);
+ if(oid){
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
+ call_ber_oid_callback(oid, next_tvb, offset, actx->pinfo, global_tree, actx->private_data);
+ } else {
+ proto_tree_add_expert(tree, actx->pinfo, &ei_pres_dissector_not_available,
+ tvb, offset, -1);
+ }
+
+#.FN_BODY PDV-list/presentation-data-values/octet-aligned
+
+ tvbuff_t *next_tvb;
+ char *oid;
+
+ oid=find_oid_by_pres_ctx_id(actx->pinfo, presentation_context_identifier);
+ if(oid){
+ dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &next_tvb);
+ call_ber_oid_callback(oid, next_tvb, offset, actx->pinfo, global_tree, actx->private_data);
+ } else {
+ proto_tree_add_expert(tree, actx->pinfo, &ei_pres_dissector_not_available,
+ tvb, offset, -1);
+ %(DEFAULT_BODY)s
+ }
+
+
+#.FN_PARS Abstract-syntax-name
+ FN_VARIANT = _str VAL_PTR = &abstract_syntax_name_oid
+
+#.FN_PARS Presentation-context-identifier
+ VAL_PTR = &presentation_context_identifier
+
+#.FN_BODY Presentation-context-identifier
+ const char *name;
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ %(DEFAULT_BODY)s
+
+ if(session)
+ session->pres_ctx_id = presentation_context_identifier;
+
+ oid = find_oid_by_pres_ctx_id(actx->pinfo, presentation_context_identifier);
+
+ if(oid && (name = oid_resolved_from_string(wmem_packet_scope(), oid))) {
+ proto_item_append_text(actx->created_item, " (%%s)", name);
+ }
+
+#.FN_PARS Abort-reason
+ VAL_PTR = &reason
+
+#.FN_BODY Abort-reason
+ guint32 reason;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(reason, pres_Abort_reason_vals, "unknown: %%d"));
+
+#.FN_HDR Context-list/_item
+ abstract_syntax_name_oid=NULL;
+#.END
+#.FN_FTR Context-list/_item
+ register_ctx_id_and_oid(actx->pinfo, presentation_context_identifier, abstract_syntax_name_oid);
+#.END
diff --git a/epan/dissectors/asn1/q932-ros/CMakeLists.txt b/epan/dissectors/asn1/q932-ros/CMakeLists.txt
new file mode 100644
index 0000000000..e72611c588
--- /dev/null
+++ b/epan/dissectors/asn1/q932-ros/CMakeLists.txt
@@ -0,0 +1,55 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME q932-ros )
+
+set( PROTO_OPT -p q932.ros )
+
+set( EXT_ASN_FILE_LIST
+ ../ros/Remote-Operations-Information-Objects.asn
+)
+
+set( ASN_FILE_LIST
+ Facility-Information-Element-Components.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ ../ros/ros-inv.cnf
+ ../ros/ros-res.cnf
+ ../ros/ros-err.cnf
+ ../ros/ros-rej.cnf
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/q932-ros/Facility-Information-Element-Components.asn b/epan/dissectors/asn1/q932-ros/Facility-Information-Element-Components.asn
new file mode 100644
index 0000000000..71c1adcda2
--- /dev/null
+++ b/epan/dissectors/asn1/q932-ros/Facility-Information-Element-Components.asn
@@ -0,0 +1,163 @@
+-- Facility-Information-Element-Components.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/q/q932/1998-Amd1/Facility-Information-Element-Components.asn
+--
+
+-- Module Facility-Information-Element-Components (Q.932:05/1998)
+Facility-Information-Element-Components {itu-t recommendation q 932
+ facility-information-element-component(3)} 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} !
+ 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 {
+ unrecognizedComponent(0), mistypedComponent(1), badlyStructuredComponent(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}
+
+-- the Range of the Invoke-Id's must be restricted to -32768..32767
+Components{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ gfpROS ROS{{GFPInvokeIDSet}, {Invokable}, {Returnable}}
+}
+
+GFPInvokeIDSet ::= InvokeId(WITH COMPONENTS {
+ present (-32768..32767)
+ })
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/q932-ros/Makefile.am b/epan/dissectors/asn1/q932-ros/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/q932-ros/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/q932-ros/Makefile.common b/epan/dissectors/asn1/q932-ros/Makefile.common
new file mode 100644
index 0000000000..32dcd69451
--- /dev/null
+++ b/epan/dissectors/asn1/q932-ros/Makefile.common
@@ -0,0 +1,49 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=q932-ros
+
+PROTO_OPT = -p q932.ros
+
+EXT_ASN_FILE_LIST = \
+ ../ros/Remote-Operations-Information-Objects.asn
+
+ASN_FILE_LIST = \
+ Facility-Information-Element-Components.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF = \
+ $(builddir)/../ros/ros-inv.cnf \
+ $(builddir)/../ros/ros-res.cnf \
+ $(builddir)/../ros/ros-err.cnf \
+ $(builddir)/../ros/ros-rej.cnf
+
diff --git a/epan/dissectors/asn1/q932-ros/Makefile.nmake b/epan/dissectors/asn1/q932-ros/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/q932-ros/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c b/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c
new file mode 100644
index 0000000000..e7b905edc9
--- /dev/null
+++ b/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c
@@ -0,0 +1,111 @@
+/* packet-q932-ros.c
+ * Routines for Q.932 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+
+#define PNAME "Q.932 Operations Service Element"
+#define PSNAME "Q932.ROS"
+#define PFNAME "q932.ros"
+
+void proto_register_q932_ros(void);
+void proto_reg_handoff_q932_ros(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_q932_ros = -1;
+#include "packet-q932-ros-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-q932-ros-ett.c"
+
+static expert_field ei_ros_undecoded = EI_INIT;
+
+/* Preferences */
+
+/* Subdissectors */
+static dissector_handle_t data_handle = NULL;
+
+/* Global variables */
+static rose_ctx_t *rose_ctx_tmp;
+
+static guint32 problem_val;
+static gchar problem_str[64];
+static tvbuff_t *arg_next_tvb, *res_next_tvb, *err_next_tvb;
+
+
+#include "packet-q932-ros-fn.c"
+
+/*--- dissect_q932_ros -----------------------------------------------------*/
+static int dissect_q932_ros(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rose_ctx_tmp = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rose_ctx_tmp);
+ return dissect_ROS_PDU(tvb, pinfo, tree, NULL);
+}
+
+/*--- proto_register_q932_ros -----------------------------------------------*/
+void proto_register_q932_ros(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-q932-ros-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-q932-ros-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_ros_undecoded, { "q932.ros.undecoded", PI_UNDECODED, PI_WARN, "Undecoded", EXPFILL }},
+ };
+
+ expert_module_t* expert_q932_ros;
+
+ /* Register protocol and dissector */
+ proto_q932_ros = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ proto_set_cant_toggle(proto_q932_ros);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_q932_ros, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_q932_ros = expert_register_protocol(proto_q932_ros);
+ expert_register_field_array(expert_q932_ros, ei, array_length(ei));
+
+ register_dissector(PFNAME, dissect_q932_ros, proto_q932_ros);
+}
+
+/*--- proto_reg_handoff_q932_ros --------------------------------------------*/
+void proto_reg_handoff_q932_ros(void) {
+ data_handle = find_dissector("data");
+}
+
+/*---------------------------------------------------------------------------*/
diff --git a/epan/dissectors/asn1/q932-ros/q932-ros.cnf b/epan/dissectors/asn1/q932-ros/q932-ros.cnf
new file mode 100644
index 0000000000..bafcbe953e
--- /dev/null
+++ b/epan/dissectors/asn1/q932-ros/q932-ros.cnf
@@ -0,0 +1,120 @@
+#.PDU
+
+ROS
+
+#.OMIT_ASSIGNMENT
+
+Priority
+RejectProblem
+Components
+GFPInvokeIDSet
+
+#.TYPE_RENAME
+
+Invoke/argument InvokeArgument
+ReturnResult/result/result ResultArgument
+
+#.FIELD_RENAME
+
+Invoke/linkedId/present linkedIdPresent
+
+Reject/problem/invoke invokeProblem
+Reject/problem/returnError returnErrorProblem
+Reject/problem/returnResult returnResultProblem
+
+ReturnResult/result/result resultArgument
+
+#--- ROS ---
+
+#.FN_HDR ROS
+ /* will be moved to ROS_PDU when PDU function can be alternated from conformance file */
+ actx->rose_ctx = rose_ctx_tmp;
+ rose_ctx_clean_data(actx->rose_ctx);
+#.END
+
+#--- Code ---
+
+#.FN_PARS
+Code VAL_PTR = &%(ACTX)s->rose_ctx->d.code
+Code/local VAL_PTR = &%(ACTX)s->rose_ctx->d.code_local
+Code/global FN_VARIANT = _str VAL_PTR = &%(ACTX)s->rose_ctx->d.code_global
+#.FN_FTR Code
+ actx->rose_ctx->d.code_item = actx->created_item;
+#.END
+
+#--- Problem ---
+
+#.FN_PARS
+GeneralProblem VAL_PTR = &problem_val
+InvokeProblem VAL_PTR = &problem_val
+ReturnResultProblem VAL_PTR = &problem_val
+ReturnErrorProblem VAL_PTR = &problem_val
+#.FN_FTR GeneralProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_GeneralProblem_vals), ""), 64);
+#.FN_FTR InvokeProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_InvokeProblem_vals), ""), 64);
+#.FN_FTR ReturnResultProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_ReturnResultProblem_vals), ""), 64);
+#.FN_FTR ReturnErrorProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_ReturnErrorProblem_vals), ""), 64);
+#.END
+
+#--- INVOKE ---
+
+#.FIELD_ATTR
+Invoke/argument TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_BODY Invoke/argument
+ gint len;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+ if (len)
+ proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
+ arg_next_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ offset += tvb_reported_length_remaining(tvb, offset);
+#.END
+
+#.INCLUDE ../ros/ros-inv.cnf
+
+#--- RETURN RESULT ---
+
+#.FIELD_ATTR
+ReturnResult/result/result TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_BODY ReturnResult/result/result
+ gint len;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+ if (len)
+ proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
+ res_next_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ offset += tvb_reported_length_remaining(tvb, offset);
+
+#.END
+
+#.INCLUDE ../ros/ros-res.cnf
+
+#--- RETURN ERROR ---
+
+#.FIELD_ATTR
+ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_BODY ReturnError/parameter
+
+ gint len;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+ if (len)
+ proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
+ err_next_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ offset += tvb_reported_length_remaining(tvb, offset);
+#.END
+
+#.INCLUDE ../ros/ros-err.cnf
+
+#--- REJECT ---
+
+#.INCLUDE ../ros/ros-rej.cnf
diff --git a/epan/dissectors/asn1/q932/Addressing-Data-Elements.asn b/epan/dissectors/asn1/q932/Addressing-Data-Elements.asn
new file mode 100644
index 0000000000..f5903945fc
--- /dev/null
+++ b/epan/dissectors/asn1/q932/Addressing-Data-Elements.asn
@@ -0,0 +1,157 @@
+-- Addressing-Data-Elements.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/q/q932/1998-Amd1/Addressing-Data-Elements.asn
+--
+
+-- Module Addressing-Data-Elements (Q.932:05/1998)
+Addressing-Data-Elements {itu-t recommendation q 932
+ addressing-data-elements(7)} DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ PresentedAddressScreened, PresentedAddressUnscreened,
+ PresentedNumberScreened, PresentedNumberUnscreened, Address, PartyNumber,
+ PartySubaddress, ScreeningIndicator, PresentationAllowedIndicator;
+
+PresentedAddressScreened ::= CHOICE {
+ presentationAlIowedAddress [0] IMPLICIT AddressScreened,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueTolnterworking [2] IMPLICIT NULL,
+ presentationRestrictedAddress [3] IMPLICIT AddressScreened
+}
+
+PresentedAddressUnscreened ::= CHOICE {
+ presentationAllowedAddress [0] IMPLICIT Address,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueTolnterworking [2] IMPLICIT NULL,
+ presentationRestrictedAddress [3] IMPLICIT Address
+}
+
+PresentedNumberScreened ::= CHOICE {
+ presentationAllowedNumber [0] IMPLICIT NumberScreened,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedNumber [3] IMPLICIT NumberScreened
+}
+
+PresentedNumberUnscreened ::= CHOICE {
+ presentationAllowedNumber [0] PartyNumber,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedNumber [3] PartyNumber
+}
+
+AddressScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeninglndicator ScreeningIndicator,
+ partySubaddress PartySubaddress OPTIONAL
+}
+
+NumberScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator
+}
+
+Address ::= SEQUENCE {
+ partyNumber PartyNumber,
+ partySubaddress PartySubaddress OPTIONAL
+}
+
+PartyNumber ::= CHOICE {
+ unknownPartyNumber [0] IMPLICIT NumberDigits,
+ -- the numbering plan is the default numbering plan
+ -- of the network. It is recommended that this value
+ -- is used.
+ publicPartyNumber [1] IMPLICIT PublicPartyNumber,
+ -- the numbering plan is according to ITU-T
+ -- Recommendation E.164.
+ nsapEncodedNumber [2] IMPLICIT NsapEncodedNumber,
+ -- ATM endsystem address encoded as an NSAP address.
+ dataPartyNumber [3] IMPLICIT NumberDigits,
+ -- not used, value reserved.
+ telexPartyNumber [4] IMPLICIT NumberDigits,
+ -- not used, value reserved.
+ privatePartyNumber [5] IMPLICIT PrivatePartyNumber,
+ nationalStandardPartyNumber [8] IMPLICIT NumberDigits
+}
+
+-- not used, value reserved.
+NsapEncodedNumber ::= OCTET STRING(SIZE (20))
+
+PublicPartyNumber ::= SEQUENCE {
+ publicTypeOfNumber PublicTypeOfNumber,
+ publicNumberDigits NumberDigits
+}
+
+PrivatePartyNumber ::= SEQUENCE {
+ privateTypeOfNumber PrivateTypeOfNumber,
+ privateNumberDigits NumberDigits
+}
+
+NumberDigits ::= NumericString(SIZE (1..20))
+
+PublicTypeOfNumber ::= ENUMERATED {
+ unknown(0),
+ -- if used number digits carry prefix indicating type
+ -- of number according to national
+ -- recommendations
+ internationalNumber(1), nationalNumber(2),
+ networkSpecificNumber(3),
+ -- not used, value reserved
+ subscriberNumber(4), abbreviatedNumber(6)}
+
+-- valid only for called party number at the
+-- outgoing access, network substitutes
+-- appropriate number
+PrivateTypeOfNumber ::= ENUMERATED {
+ unknown(0), level2RegionalNumber(1), level1RegionalNumber(2),
+ pTNSpecificNumber(3), localNumber(4), abbreviatedNumber(6)}
+
+PartySubaddress ::= CHOICE {
+ userSpecifiedSubaddress UserSpecifiedSubaddress,
+ -- not recommended
+ nSAPSubaddress NSAPSubaddress
+}
+
+-- according to ITU-T Recommendation X.213
+UserSpecifiedSubaddress ::= SEQUENCE {
+ subaddressInformation SubaddressInformation,
+ oddCountIndicator BOOLEAN OPTIONAL
+}
+
+-- used when the coding of subaddress is BCD
+NSAPSubaddress ::= OCTET STRING(SIZE (1..20))
+
+-- specified according to ITU-T Recommendation X.213. Some networks
+-- may limit the subaddress value to some other
+-- length, e.g. 4 octets
+SubaddressInformation ::= OCTET STRING(SIZE (1..20))
+
+-- coded according to user requirements. Some
+-- networks may limit the subaddress value to some
+-- other length, e.g. 4 octets
+ScreeningIndicator ::= ENUMERATED {
+ userProvidedNotScreened(0),
+ -- number was provided by a remote user terminal
+ -- equipment, and has been screened by a
+ -- network that is not the local public or local
+ -- private network.
+ userProvidedVerifiedAndPassed(1),
+ -- number was provided by a remote user terminal
+ -- equipment (or by a remote private network), and
+ -- has been screened by the local public or local
+ -- private network.
+ userProvidedVerifiedAndFailed(2),
+ -- not used, value reserved
+ networkProvided(3)}
+
+-- number was provided by local
+-- public or local
+-- private network
+PresentationAllowedIndicator ::= BOOLEAN
+
+END -- of addressing data elements
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/q932/CMakeLists.txt b/epan/dissectors/asn1/q932/CMakeLists.txt
new file mode 100644
index 0000000000..f5727a7144
--- /dev/null
+++ b/epan/dissectors/asn1/q932/CMakeLists.txt
@@ -0,0 +1,55 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME q932 )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ Addressing-Data-Elements.asn
+ Network-Facility-Extension.asn
+ Network-Protocol-Profile-component.asn
+ Interpretation-component.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/q932/Interpretation-component.asn b/epan/dissectors/asn1/q932/Interpretation-component.asn
new file mode 100644
index 0000000000..ebc9676379
--- /dev/null
+++ b/epan/dissectors/asn1/q932/Interpretation-component.asn
@@ -0,0 +1,24 @@
+-- Interpretation-component.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/q/q932/1998-Amd1/Interpretation-component.asn
+--
+
+-- Module Interpretation-component (Q.932:05/1998)
+Interpretation-component {iso(1) standard(0) pss1-generic-procedures(11582)
+ interpretation-component(3)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS InterpretationComponent;
+
+InterpretationComponent ::= [11] IMPLICIT ENUMERATED {
+ discardAnyUnrecognisedInvokePdu(0), clearCallIfAnyInvokePduNotRecognised(1),
+ rejectAnyUnrecognisedInvokePdu(2)
+ -- this coding is implied by the absence of an
+ -- Interpretation Component.
+ }
+
+END -- component
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/q932/Makefile.am b/epan/dissectors/asn1/q932/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/q932/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/q932/Makefile.common b/epan/dissectors/asn1/q932/Makefile.common
new file mode 100644
index 0000000000..7e49b4c087
--- /dev/null
+++ b/epan/dissectors/asn1/q932/Makefile.common
@@ -0,0 +1,48 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = q932
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ Addressing-Data-Elements.asn \
+ Network-Facility-Extension.asn \
+ Network-Protocol-Profile-component.asn \
+ Interpretation-component.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/q932/Makefile.nmake b/epan/dissectors/asn1/q932/Makefile.nmake
new file mode 100644
index 0000000000..270082fb45
--- /dev/null
+++ b/epan/dissectors/asn1/q932/Makefile.nmake
@@ -0,0 +1,30 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+checkapi:
+ $(PERL) ../../tools/checkAPIs.pl -build \
+ $(PROTOCOL_NAME).cnf \
+ packet-$(PROTOCOL_NAME)-template.c \ No newline at end of file
diff --git a/epan/dissectors/asn1/q932/Network-Facility-Extension.asn b/epan/dissectors/asn1/q932/Network-Facility-Extension.asn
new file mode 100644
index 0000000000..eb1a007dbc
--- /dev/null
+++ b/epan/dissectors/asn1/q932/Network-Facility-Extension.asn
@@ -0,0 +1,33 @@
+-- Network-Facility-Extension.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/q/q932/1998-Amd1/Network-Facility-Extension.asn
+--
+
+-- Module Network-Facility-Extension (Q.932:05/1998)
+Network-Facility-Extension {iso(1) standard(0) pss1-generic-procedures(11582)
+ network-facility-extension(2)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS NetworkFacilityExtension;
+
+IMPORTS
+ PartyNumber
+ FROM Addressing-Data-Elements {itu-t recommendation q 932
+ addressing-data-elements(7)};
+
+NetworkFacilityExtension ::= [10] IMPLICIT SEQUENCE {
+ sourceEntity [0] IMPLICIT EntityType,
+ sourceEntityAddress [1] AddressInformation OPTIONAL,
+ destinationEntity [2] IMPLICIT EntityType,
+ destinationEntityAddress [3] AddressInformation OPTIONAL
+}
+
+EntityType ::= ENUMERATED {endPINX(0), anyTypeOfPINX(1)}
+
+AddressInformation ::= PartyNumber
+
+END -- of Network Facility Extension
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/q932/Network-Protocol-Profile-component.asn b/epan/dissectors/asn1/q932/Network-Protocol-Profile-component.asn
new file mode 100644
index 0000000000..6364214dfe
--- /dev/null
+++ b/epan/dissectors/asn1/q932/Network-Protocol-Profile-component.asn
@@ -0,0 +1,20 @@
+-- Network-Protocol-Profile-component.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/q/q932/1998-Amd1/Network-Protocol-Profile-component.asn
+--
+
+-- Module Network-Protocol-Profile-component (Q.932:05/1998)
+Network-Protocol-Profile-component {iso(1) standard(0)
+ pss1-generic-procedures(11582) network-protocol-profile-component(8)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS NetworkProtocolProfile;
+
+NetworkProtocolProfile ::= [18] IMPLICIT INTEGER {acse(19), dse(32)}(0..254)
+
+END -- of Network-Protocol-Profile-component
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/q932/packet-q932-template.c b/epan/dissectors/asn1/q932/packet-q932-template.c
new file mode 100644
index 0000000000..2386e36bfa
--- /dev/null
+++ b/epan/dissectors/asn1/q932/packet-q932-template.c
@@ -0,0 +1,398 @@
+/* packet-q932.c
+ * Routines for Q.932 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+
+#include "packet-ber.h"
+#include "packet-q932.h"
+
+#define PNAME "Q.932"
+#define PSNAME "Q932"
+#define PFNAME "q932"
+
+void proto_register_q932(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_q932 = -1;
+static int hf_q932_ie_type = -1;
+static int hf_q932_ie_len = -1;
+static int hf_q932_ie_data = -1;
+static int hf_q932_pp = -1;
+static int hf_q932_nd = -1;
+#include "packet-q932-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_q932 = -1;
+static gint ett_q932_ie = -1;
+#include "packet-q932-ett.c"
+
+static expert_field ei_q932_dse_not_supported = EI_INIT;
+static expert_field ei_q932_acse_not_supported = EI_INIT;
+static expert_field ei_q932_unknown_component = EI_INIT;
+static expert_field ei_q932_asn1_encoded = EI_INIT;
+
+
+/* Preferences */
+
+/* ROSE context */
+static rose_ctx_t q932_rose_ctx;
+
+dissector_table_t qsig_arg_local_dissector_table;
+dissector_table_t qsig_res_local_dissector_table;
+dissector_table_t qsig_err_local_dissector_table;
+
+dissector_table_t etsi_arg_local_dissector_table;
+dissector_table_t etsi_res_local_dissector_table;
+dissector_table_t etsi_err_local_dissector_table;
+
+#define FACILITY_QSIG 0
+#define FACILITY_ETSI 1
+static gint g_facility_encoding = FACILITY_QSIG;
+
+void proto_reg_handoff_q932(void);
+/* Subdissectors */
+static dissector_handle_t q932_ros_handle;
+
+#define Q932_IE_EXTENDED_FACILITY 0x0D
+#define Q932_IE_FACILITY 0x1C
+#define Q932_IE_NOTIFICATION_INDICATOR 0x27
+#define Q932_IE_INFORMATION_REQUEST 0x32
+#define Q932_IE_FEATURE_ACTIVATION 0x38
+#define Q932_IE_FEATURE_INDICATION 0x39
+#define Q932_IE_SERVICE_PROFILE_ID 0x3A
+#define Q932_IE_ENDPOINT_IDENTIFIER 0x3B
+static const value_string q932_str_ie_type[] = {
+ { Q932_IE_EXTENDED_FACILITY , "Extended facility" },
+ { Q932_IE_FACILITY , "Facility" },
+ { Q932_IE_NOTIFICATION_INDICATOR, "Notification indicator" },
+ { Q932_IE_INFORMATION_REQUEST, "Information request" },
+ { Q932_IE_FEATURE_ACTIVATION , "Feature activation" },
+ { Q932_IE_FEATURE_INDICATION , "Feature indication" },
+ { Q932_IE_SERVICE_PROFILE_ID , "Service profile identification" },
+ { Q932_IE_ENDPOINT_IDENTIFIER, "Endpoint identifier" },
+ { 0, NULL}
+};
+
+static const value_string str_pp[] = {
+ { 0x11 , "Remote Operations Protocol" },
+ { 0x12 , "CMIP Protocol" },
+ { 0x13 , "ACSE Protocol" },
+ { 0x1F , "Networking extensions" },
+ { 0, NULL}
+};
+
+static const value_string str_nd[] = {
+ { 0x00 , "User suspended" },
+ { 0x01 , "User resume" },
+ { 0x02 , "Bearer service change" },
+ { 0x04 , "Call completion delay" },
+ { 0x03 , "Discriminator for extension to ASN.1 encoded component" },
+ { 0x40 , "Discriminator for extension to ASN.1 encoded component for ISO" },
+ { 0x42 , "Conference established" },
+ { 0x43 , "Conference disconnected" },
+ { 0x44 , "Other party added" },
+ { 0x45 , "Isolated" },
+ { 0x46 , "Reattached" },
+ { 0x47 , "Other party isolated" },
+ { 0x48 , "Other party reattached" },
+ { 0x49 , "Other party split" },
+ { 0x4A , "Other party disconnected" },
+ { 0x4B , "Conference floating" },
+ { 0x4C , "Conference disconnected, pre-emption" },
+ { 0x4F , "Conference floating, served user pre-empted" },
+ { 0x60 , "Call is a waiting call" },
+ { 0x68 , "Diversion activated" },
+ { 0x69 , "call transferred, alerting" },
+ { 0x6A , "call transferred, answered" },
+ { 0x6E , "reverse charging (whole call)" },
+ { 0x6F , "reverse charging (for the rest of the call)" },
+ { 0x74 , "service profile update" },
+ { 0x79 , "Remote hold" },
+ { 0x7A , "Remote retrieval" },
+ { 0x7B , "Call is diverting" },
+ { 0, NULL}
+};
+
+#include "packet-q932-fn.c"
+
+/*--- dissect_q932_facility_ie -------------------------------------------------------*/
+static void
+dissect_q932_facility_ie(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int length) {
+ gint8 appclass;
+ gboolean pc;
+ gint32 tag;
+ guint32 len;
+ int hoffset, eoffset;
+ int ie_end;
+ tvbuff_t *next_tvb;
+
+ ie_end = offset + length;
+ proto_tree_add_item(tree, hf_q932_pp, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ while (offset < ie_end) {
+ hoffset = offset;
+ offset = get_ber_identifier(tvb, offset, &appclass, &pc, &tag);
+ offset = get_ber_length(tvb, offset, &len, NULL);
+ eoffset = offset + len;
+ next_tvb = tvb_new_subset_length(tvb, hoffset, eoffset - hoffset);
+ switch (appclass) {
+ case BER_CLASS_CON:
+ switch (tag) {
+ case 10 : /* Network Facility Extension */
+ dissect_NetworkFacilityExtension_PDU(next_tvb, pinfo, tree, NULL);
+ break;
+ case 18 : /* Network Protocol Profile */
+ dissect_NetworkProtocolProfile_PDU(next_tvb, pinfo, tree, NULL);
+ break;
+ case 11 : /* Interpretation Component */
+ dissect_InterpretationComponent_PDU(next_tvb, pinfo, tree, NULL);
+ break;
+ /* ROSE APDU */
+ case 1 : /* invoke */
+ case 2 : /* returnResult */
+ case 3 : /* returnError */
+ case 4 : /* reject */
+ q932_rose_ctx.apdu_depth = 1;
+ call_dissector_with_data(q932_ros_handle, next_tvb, pinfo, tree, &q932_rose_ctx);
+ break;
+ /* DSE APDU */
+ case 12 : /* begin */
+ case 14 : /* end */
+ case 15 : /* continue */
+ case 17 : /* abort */
+ offset = dissect_ber_identifier(pinfo, tree, tvb, hoffset, NULL, NULL, NULL);
+ offset = dissect_ber_length(pinfo, tree, tvb, offset, NULL, NULL);
+ proto_tree_add_expert(tree, pinfo, &ei_q932_dse_not_supported, tvb, offset, len);
+ break;
+ default:
+ offset = dissect_ber_identifier(pinfo, tree, tvb, hoffset, NULL, NULL, NULL);
+ offset = dissect_ber_length(pinfo, tree, tvb, offset, NULL, NULL);
+ proto_tree_add_expert(tree, pinfo, &ei_q932_unknown_component, tvb, offset, len);
+ }
+ break;
+ case BER_CLASS_APP:
+ switch (tag) {
+ /* ACSE APDU */
+ case 0 : /* aarq */
+ case 1 : /* aare */
+ case 2 : /* rlrq */
+ case 3 : /* rlre */
+ case 4 : /* abrt */
+ offset = dissect_ber_identifier(pinfo, tree, tvb, hoffset, NULL, NULL, NULL);
+ offset = dissect_ber_length(pinfo, tree, tvb, offset, NULL, NULL);
+ proto_tree_add_expert(tree, pinfo, &ei_q932_acse_not_supported, tvb, offset, len);
+ break;
+ default:
+ offset = dissect_ber_identifier(pinfo, tree, tvb, hoffset, NULL, NULL, NULL);
+ offset = dissect_ber_length(pinfo, tree, tvb, offset, NULL, NULL);
+ proto_tree_add_expert(tree, pinfo, &ei_q932_unknown_component, tvb, offset, len);
+ }
+ break;
+ default:
+ offset = dissect_ber_identifier(pinfo, tree, tvb, hoffset, NULL, NULL, NULL);
+ offset = dissect_ber_length(pinfo, tree, tvb, offset, NULL, NULL);
+ proto_tree_add_expert(tree, pinfo, &ei_q932_unknown_component, tvb, offset, len);
+ }
+ offset = eoffset;
+ }
+}
+
+/*--- dissect_q932_ni_ie -------------------------------------------------------*/
+static void
+dissect_q932_ni_ie(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int length) {
+ int remain = length;
+ guint8 octet = 0;
+ guint32 value = 0;
+ proto_item* ti;
+
+ while ((remain > 0) && !(octet & 0x80)) {
+ octet = tvb_get_guint8(tvb, offset++);
+ remain--;
+ value <<= 7;
+ value |= octet & 0x7F;
+ }
+ ti = proto_tree_add_uint(tree, hf_q932_nd, tvb, offset - (length - remain), length - remain, value);
+
+ if (remain > 0) {
+ expert_add_info(pinfo, ti, &ei_q932_asn1_encoded);
+ }
+}
+
+/*--- dissect_q932_ie -------------------------------------------------------*/
+static int
+dissect_q932_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
+ gint offset;
+ proto_item *ti;
+ proto_tree *ie_tree;
+ guint8 ie_type, ie_len;
+
+ offset = 0;
+
+ ti = proto_tree_add_item(tree, proto_q932, tvb, offset, -1, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(ti);
+
+ ie_type = tvb_get_guint8(tvb, offset);
+ ie_len = tvb_get_guint8(tvb, offset + 1);
+
+ ie_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_q932_ie, NULL,
+ val_to_str(ie_type, VALS(q932_str_ie_type), "unknown (0x%02X)"));
+
+ proto_tree_add_item(ie_tree, hf_q932_ie_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ie_tree, hf_q932_ie_len, tvb, offset + 1, 1, ENC_BIG_ENDIAN);
+ offset += 2;
+ if (tvb_reported_length_remaining(tvb, offset) <= 0)
+ return offset;
+ switch (ie_type) {
+ case Q932_IE_FACILITY :
+ dissect_q932_facility_ie(tvb, offset, pinfo, ie_tree, ie_len);
+ break;
+ case Q932_IE_NOTIFICATION_INDICATOR :
+ dissect_q932_ni_ie(tvb, offset, pinfo, ie_tree, ie_len);
+ break;
+ default:
+ if (ie_len > 0) {
+ proto_tree_add_item(ie_tree, hf_q932_ie_data, tvb, offset, ie_len, ENC_NA);
+ }
+ }
+ return tvb_captured_length(tvb);
+}
+
+/*--- dissect_q932_apdu -----------------------------------------------------*/
+static int
+dissect_q932_apdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
+ return call_dissector(q932_ros_handle, tvb, pinfo, tree);
+}
+
+/*--- proto_register_q932 ---------------------------------------------------*/
+void proto_register_q932(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_q932_ie_type, { "Type", "q932.ie.type",
+ FT_UINT8, BASE_HEX, VALS(q932_str_ie_type), 0x0,
+ "Information Element Type", HFILL }},
+ { &hf_q932_ie_len, { "Length", "q932.ie.len",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ "Information Element Length", HFILL }},
+ { &hf_q932_ie_data, { "Data", "q932.ie.data",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_q932_pp, { "Protocol profile", "q932.pp",
+ FT_UINT8, BASE_HEX, VALS(str_pp), 0x1F,
+ NULL, HFILL }},
+ { &hf_q932_nd, { "Notification description", "q932.nd",
+ FT_UINT8, BASE_HEX, VALS(str_nd), 0x0,
+ NULL, HFILL }},
+#include "packet-q932-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_q932,
+ &ett_q932_ie,
+#include "packet-q932-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_q932_dse_not_supported, { "q932.dse_not_supported", PI_UNDECODED, PI_WARN, "DSE APDU (not supported)", EXPFILL }},
+ { &ei_q932_acse_not_supported, { "q932.acse_not_supported", PI_UNDECODED, PI_WARN, "ACSE APDU (not supported)", EXPFILL }},
+ { &ei_q932_unknown_component, { "q932.unknown_component", PI_UNDECODED, PI_WARN, "Unknown Component", EXPFILL }},
+ { &ei_q932_asn1_encoded, { "q932.asn1_encoded", PI_UNDECODED, PI_WARN, "ASN.1 Encoded Data Structure(NOT IMPLEMENTED)", EXPFILL }},
+ };
+
+ module_t *q932_module;
+ expert_module_t* expert_q932;
+
+ static const enum_val_t facility_encoding[] = {
+ {"Facility as QSIG", "Dissect facility as QSIG", FACILITY_QSIG},
+ {"Facility as ETSI", "Dissect facility as ETSI", FACILITY_ETSI},
+ {NULL, NULL, -1}
+ };
+
+ /* Register protocol and dissector */
+ proto_q932 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("q932.apdu", dissect_q932_apdu, proto_q932);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_q932, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_q932 = expert_register_protocol(proto_q932);
+ expert_register_field_array(expert_q932, ei, array_length(ei));
+
+ rose_ctx_init(&q932_rose_ctx);
+
+ /* Register dissector tables */
+ q932_rose_ctx.arg_global_dissector_table = register_dissector_table("q932.ros.global.arg", "Q.932 Operation Argument (global opcode)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ q932_rose_ctx.res_global_dissector_table = register_dissector_table("q932.ros.global.res", "Q.932 Operation Result (global opcode)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ q932_rose_ctx.err_global_dissector_table = register_dissector_table("q932.ros.global.err", "Q.932 Error (global opcode)", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ qsig_arg_local_dissector_table = register_dissector_table("q932.ros.local.arg", "Q.932 Operation Argument (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ qsig_res_local_dissector_table = register_dissector_table("q932.ros.local.res", "Q.932 Operation Result (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ qsig_err_local_dissector_table = register_dissector_table("q932.ros.local.err", "Q.932 Error (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ etsi_arg_local_dissector_table = register_dissector_table("q932.ros.etsi.local.arg", "Q.932 ETSI Operation Argument (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ etsi_res_local_dissector_table = register_dissector_table("q932.ros.etsi.local.res", "Q.932 ETSI Operation Result (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ etsi_err_local_dissector_table = register_dissector_table("q932.ros.etsi.local.err", "Q.932 ETSI Error (local opcode)", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ q932_module = prefs_register_protocol(proto_q932, proto_reg_handoff_q932);
+
+ prefs_register_enum_preference(q932_module, "facility_encoding",
+ "Type of Facility encoding",
+ "Type of Facility encoding",
+ &g_facility_encoding, facility_encoding, FALSE);
+}
+
+/*--- proto_reg_handoff_q932 ------------------------------------------------*/
+void proto_reg_handoff_q932(void) {
+ dissector_handle_t q932_ie_handle;
+
+ static gboolean q931_prefs_initialized = FALSE;
+
+ if (!q931_prefs_initialized) {
+ q932_ie_handle = create_dissector_handle(dissect_q932_ie, proto_q932);
+ /* Facility */
+ dissector_add_uint("q931.ie", (0x00 << 8) | Q932_IE_FACILITY, q932_ie_handle);
+ /* Notification indicator */
+ dissector_add_uint("q931.ie", (0x00 << 8) | Q932_IE_NOTIFICATION_INDICATOR, q932_ie_handle);
+ q932_ros_handle = find_dissector("q932.ros");
+ }
+
+ if(g_facility_encoding == FACILITY_QSIG){
+ q932_rose_ctx.arg_local_dissector_table = qsig_arg_local_dissector_table;
+ q932_rose_ctx.res_local_dissector_table = qsig_res_local_dissector_table;
+ q932_rose_ctx.err_local_dissector_table = qsig_err_local_dissector_table;
+ }else{
+ q932_rose_ctx.arg_local_dissector_table = etsi_arg_local_dissector_table;
+ q932_rose_ctx.res_local_dissector_table = etsi_res_local_dissector_table;
+ q932_rose_ctx.err_local_dissector_table = etsi_err_local_dissector_table;
+ }
+
+}
+
+/*---------------------------------------------------------------------------*/
diff --git a/epan/dissectors/asn1/q932/packet-q932-template.h b/epan/dissectors/asn1/q932/packet-q932-template.h
new file mode 100644
index 0000000000..24a8b072ad
--- /dev/null
+++ b/epan/dissectors/asn1/q932/packet-q932-template.h
@@ -0,0 +1,30 @@
+/* packet-q932.h
+ * Routines for Q.932 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_Q932_H
+#define PACKET_Q932_H
+
+#include "packet-q932-exp.h"
+
+#endif /* PACKET_Q932_H */
+
diff --git a/epan/dissectors/asn1/q932/q932.cnf b/epan/dissectors/asn1/q932/q932.cnf
new file mode 100644
index 0000000000..b2dbcb4da0
--- /dev/null
+++ b/epan/dissectors/asn1/q932/q932.cnf
@@ -0,0 +1,32 @@
+# q932.cnf
+# Q.932 conformation file
+# 2007 Tomas Kukosa
+
+#.PDU
+
+InterpretationComponent
+NetworkFacilityExtension
+NetworkProtocolProfile
+
+#.EXPORTS EXTERN
+
+# Addressing-Data-Elements
+PresentedAddressScreened
+PresentedAddressUnscreened
+PresentedNumberScreened WS_DLL
+PresentedNumberUnscreened WS_DLL
+Address
+PartyNumber WS_DLL
+PartySubaddress WS_DLL
+ScreeningIndicator
+PresentationAllowedIndicator
+
+#.FIELD_RENAME
+
+# Addressing-Data-Elements
+PresentedNumberScreened/presentationAllowedNumber presentationAllowedNumberScreened
+PresentedAddressScreened/presentationRestrictedAddress presentationRestrictedAddressScreened
+PresentedNumberScreened/presentationRestrictedNumber presentationRestrictedNumberScreened
+
+#.END
+
diff --git a/epan/dissectors/asn1/qsig/CMakeLists.txt b/epan/dissectors/asn1/qsig/CMakeLists.txt
new file mode 100644
index 0000000000..bb8fd6a771
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/CMakeLists.txt
@@ -0,0 +1,81 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME qsig )
+
+set( PROTO_OPT _EMPTY_ )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ General-Error-List.asn
+ qsig-gf-ext.asn
+ qsig-gf-gp.asn
+ qsig-gf-ade.asn
+ QSIG-NA.asn
+ QSIG-CF.asn
+ QSIG-PR.asn
+ QSIG-CT.asn
+ QSIG-CC.asn
+ QSIG-CO.asn
+ QSIG-DND.asn
+ QSIG-CI.asn
+ QSIG-AOC.asn
+ QSIG-RE.asn
+ SYNC-SIG.asn
+ QSIG-CINT.asn
+ QSIG-CMN.asn
+ QSIG-CPI.asn
+ QSIG-PUMR.asn
+ QSIG-PUMCH.asn
+ QSIG-SSCT.asn
+ QSIG-WTMLR.asn
+ QSIG-WTMCH.asn
+ QSIG-WTMAU.asn
+ QSIG-SD.asn
+ QSIG-CIDL.asn
+ QSIG-SMS.asn
+ QSIG-MCR.asn
+ QSIG-MCM.asn
+ QSIG-MID.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/qsig/General-Error-List.asn b/epan/dissectors/asn1/qsig/General-Error-List.asn
new file mode 100644
index 0000000000..56266f113a
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/General-Error-List.asn
@@ -0,0 +1,84 @@
+-- Module General-Error-List (Q.950:06/2000)
+-- See also ITU-T Q.950 (06/2000)
+-- See also the index of all ASN.1 assignments needed in this document
+--
+
+General-Error-List {itu-t recommendation q 950 general-error-list(1)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ userNotSubscribed, rejectedByNetwork, rejectedByUser, notAvailable,
+ insufficientInformation, invalidServedUserNr, invalidCallState,
+ basicServiceNotProvided, notIncomingCall,
+ supplementaryServiceInteractionNotAllowed, resourceUnavailable,
+ callFailure, proceduralError;
+
+IMPORTS
+ ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+userNotSubscribed ERROR ::= {CODE local:0
+}
+
+-- is an indication that the user has not subscribed to this service.
+rejectedByNetwork ERROR ::= {CODE local:1
+}
+
+-- is an indication that the requested service is rejected by the network.
+rejectedByUser ERROR ::= {CODE local:2
+}
+
+-- is an indication that the requested service is provided by the network but that the remote user has rejected this
+-- service request.
+notAvailable ERROR ::= {CODE local:3
+}
+
+-- is an indication that the user has subscribed to this service but the requested service is not available combined
+-- with the basic service or the other services (e.g. operation).
+insufficientInformation ERROR ::= {CODE local:5
+}
+
+-- is an indication that the content of operation argument is incomplete, or absent entirely.
+invalidServedUserNr ERROR ::= {CODE local:6
+}
+
+-- is an indication that the requested service cannot be performed because of the usage of an invalid served user
+-- number.
+invalidCallState ERROR ::= {CODE local:7
+}
+
+-- is an indication that no match exists between the service request and the valid Basic, Call Control State; this
+-- applies also to invalid auxiliary states or an invalid combination of Basic call states and auxiliary states.
+basicServiceNotProvided ERROR ::= {CODE local:8
+}
+
+-- is an indication that the service request is directed to a Basic Service which is not provided (e.g. this return
+-- error value is used when a supplementary service is invoked with a SETUP message).
+notIncomingCall ERROR ::= {CODE local:9
+}
+
+-- is an indication that the service request has been invoked for an outgoing call, which is not permitted for that
+-- service.
+supplementaryServiceInteractionNotAllowed ERROR ::= {CODE local:10
+}
+
+-- is an indication that the service request is not permitted in combination with either a further requested or active
+-- supplementary service.
+resourceUnavailable ERROR ::= {CODE local:11
+}
+
+-- is an indication that the service provider has temporarily no resource available for the provision of the
+-- requested service.
+callFailure ERROR ::= {CODE local:25
+}
+
+-- is an indication that the requested supplementary service was not executable by virtue of a Basic Call Failure.
+proceduralError ERROR ::= {CODE local:43
+}
+
+-- is an indication that a transport message (e.g. SETUP, REGISTER etc.) is received which has one or more
+-- operation PDUs which have a valid content but which are not specified as valid information content of the
+-- transport message used.
+END
diff --git a/epan/dissectors/asn1/qsig/Makefile.am b/epan/dissectors/asn1/qsig/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/qsig/Makefile.common b/epan/dissectors/asn1/qsig/Makefile.common
new file mode 100644
index 0000000000..e800a15adb
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/Makefile.common
@@ -0,0 +1,74 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = qsig
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ General-Error-List.asn \
+ qsig-gf-ext.asn \
+ qsig-gf-gp.asn \
+ qsig-gf-ade.asn \
+ QSIG-NA.asn \
+ QSIG-CF.asn \
+ QSIG-PR.asn \
+ QSIG-CT.asn \
+ QSIG-CC.asn \
+ QSIG-CO.asn \
+ QSIG-DND.asn \
+ QSIG-CI.asn \
+ QSIG-AOC.asn \
+ QSIG-RE.asn \
+ SYNC-SIG.asn \
+ QSIG-CINT.asn \
+ QSIG-CMN.asn \
+ QSIG-CPI.asn \
+ QSIG-PUMR.asn \
+ QSIG-PUMCH.asn \
+ QSIG-SSCT.asn \
+ QSIG-WTMLR.asn \
+ QSIG-WTMCH.asn \
+ QSIG-WTMAU.asn \
+ QSIG-SD.asn \
+ QSIG-CIDL.asn \
+ QSIG-SMS.asn \
+ QSIG-MCR.asn \
+ QSIG-MCM.asn \
+ QSIG-MID.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+# need empty -p <proto> option, default is -p $(PROTOCOL_NAME)
+PROTO_OPT =
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/qsig/Makefile.nmake b/epan/dissectors/asn1/qsig/Makefile.nmake
new file mode 100644
index 0000000000..270082fb45
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/Makefile.nmake
@@ -0,0 +1,30 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+checkapi:
+ $(PERL) ../../tools/checkAPIs.pl -build \
+ $(PROTOCOL_NAME).cnf \
+ packet-$(PROTOCOL_NAME)-template.c \ No newline at end of file
diff --git a/epan/dissectors/asn1/qsig/QSIG-AOC.asn b/epan/dissectors/asn1/qsig/QSIG-AOC.asn
new file mode 100644
index 0000000000..15cca38ad1
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-AOC.asn
@@ -0,0 +1,305 @@
+-- QSIG-AOC.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-212, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-212.htm
+--
+
+SS-AOC-Operations-asn1-97
+{iso (1) standard (0) pss1-advice-of-charge (15050) advice-of-charge-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) } ;
+
+AOC-Operations OPERATION ::= { chargeRequest | getFinalCharge | aocFinal | aocInterim | aocRate |
+ aocComplete | aocDivChargeReq }
+
+aocRate OPERATION ::= {
+ ARGUMENT AocRateArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 63}
+
+AocRateArg ::= SEQUENCE {
+ aocRate CHOICE {
+ chargeNotAvailable NULL,
+ aocSCurrencyInfoList AOCSCurrencyInfoList
+ },
+ rateArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+aocInterim OPERATION ::= {
+ ARGUMENT AocInterimArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 62}
+
+AocInterimArg ::= SEQUENCE {
+ interimCharge CHOICE {
+ chargeNotAvailable [0] IMPLICIT NULL,
+ freeOfCharge [1] IMPLICIT NULL,
+ specificCurrency SEQUENCE {
+ recordedCurrency [1] IMPLICIT RecordedCurrency,
+ interimBillingId[2] IMPLICIT InterimBillingId OPTIONAL }
+ },
+ interimArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+aocFinal OPERATION ::= {
+ ARGUMENT AocFinalArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 61}
+
+AocFinalArg ::= SEQUENCE {
+ finalCharge CHOICE {
+ chargeNotAvailable [0] IMPLICIT NULL,
+ freeOfCharge [1] IMPLICIT NULL,
+ specificCurrency SEQUENCE {
+ recordedCurrency [1] IMPLICIT RecordedCurrency,
+ finalBillingId[2] IMPLICIT FinalBillingId OPTIONAL }
+ },
+ chargingAssociation ChargingAssociation OPTIONAL,
+ finalArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+AOCSCurrencyInfoList ::= SEQUENCE SIZE(1..10) OF AOCSCurrencyInfo
+
+AOCSCurrencyInfo ::= SEQUENCE {
+ chargedItem ChargedItem,
+ rateType CHOICE {
+ durationCurrency [1] IMPLICIT DurationCurrency,
+ flatRateCurrency [2] IMPLICIT FlatRateCurrency,
+ volumeRateCurrency [3] IMPLICIT VolumeRateCurrency,
+ specialChargingCode SpecialChargingCode,
+ freeOfCharge [4] IMPLICIT NULL,
+ currencyInfoNotAvailable [5] IMPLICIT NULL,
+ freeOfChargefromBeginning [6] IMPLICIT NULL
+ } }
+ChargedItem ::= ENUMERATED {
+ basicCommunication (0),
+ callAttempt (1),
+ callSetup (2),
+ userToUserInfo (3),
+ operationOfSupplementaryServ (4) }
+
+DurationCurrency ::= SEQUENCE {
+ dCurrency [1] IMPLICIT Currency,
+ dAmount [2] IMPLICIT Amount,
+ dChargingType [3] IMPLICIT ChargingType,
+ dTime [4] IMPLICIT Time,
+ dGranularity [5] IMPLICIT Time OPTIONAL }
+
+FlatRateCurrency ::= SEQUENCE {
+ fRCurrency [1] IMPLICIT Currency,
+ fRAmount [2] IMPLICIT Amount }
+
+VolumeRateCurrency ::= SEQUENCE {
+ vRCurrency [1] IMPLICIT Currency,
+ vRAmount [2] IMPLICIT Amount,
+ vRVolumeUnit [3] IMPLICIT VolumeUnit
+ }
+
+SpecialChargingCode ::= INTEGER (1..10)
+
+RecordedCurrency ::= SEQUENCE {
+ rCurrency [1] IMPLICIT Currency,
+ rAmount [2] IMPLICIT Amount }
+
+InterimBillingId ::= ENUMERATED {
+ normalCharging (0),
+ creditCardCharging (2) }
+
+FinalBillingId ::= ENUMERATED {
+ normalCharging (0),
+ creditCardCharging (2),
+ callForwardingUnconditional (3),
+ callForwardingBusy (4),
+ callForwardingNoReply (5),
+ callDeflection (6),
+ callTransfer (7) }
+
+Currency ::= IA5String (SIZE (0..10))
+ -- SIZE(0) shall indicate the default currency of the PISN
+ -- The representation of other currencies is outside the scope of this standard
+
+Amount ::= SEQUENCE {
+ currencyAmount [1] IMPLICIT CurrencyAmount,
+ multiplier [2] IMPLICIT Multiplier }
+
+CurrencyAmount ::= INTEGER (0..16777215)
+Multiplier ::= ENUMERATED {
+ oneThousandth (0),
+ oneHundredth (1),
+ oneTenth (2),
+ one (3),
+ ten (4),
+ hundred (5),
+ thousand (6) }
+
+Time ::= SEQUENCE {
+ lengthOfTimeUnit [1] IMPLICIT LengthOfTimeUnit,
+ scale [2] IMPLICIT Scale }
+
+LengthOfTimeUnit ::= INTEGER (0..16777215)
+
+Scale ::= ENUMERATED {
+ oneHundredthSecond (0),
+ oneTenthSecond (1),
+ oneSecond (2),
+ tenSeconds (3),
+ oneMinute (4),
+ oneHour (5),
+ twentyFourHours (6) }
+
+VolumeUnit ::= ENUMERATED {
+ octet (0),
+ segment (1),
+ message (2) }
+
+ChargingType ::= ENUMERATED {
+ continuousCharging (0),
+ stepFunction (1) }
+
+ChargingAssociation ::= CHOICE {
+ chargeNumber [0] PartyNumber,
+ chargeIdentifier ChargeIdentifier }
+
+ChargeIdentifier ::= INTEGER (-32768..32767)
+
+chargeRequest OPERATION ::= {
+ ARGUMENT ChargeRequestArg
+ RESULT ChargeRequestRes
+ ERRORS {
+ freeOfCharge |
+ supplementaryServiceInteractionNotAllowed |
+ notAvailable | unspecified }
+ CODE local: 59}
+
+getFinalCharge OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 60}
+
+ChargeRequestArg ::= SEQUENCE {
+ adviceModeCombinations SEQUENCE SIZE(0..7) OF
+ AdviceModeCombination,
+ chargeReqArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+ChargeRequestRes ::= SEQUENCE {
+ adviceModeCombination AdviceModeCombination,
+ chargeReqResExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+AdviceModeCombination ::= ENUMERATED { -- advice mode combination
+ rate (0), -- charge rate provision
+ rateInterim (1), -- charge rate and interim charge provision
+ rateFinal (2), -- charge rate and final charge provision
+ interim (3), -- interim charge provision
+ final (4), -- final charge provision
+ interimFinal (5), -- interim charge and final charge provision
+ rateInterimFinal (6)} -- charge rate, interim charge and final
+ -- charge provision
+
+DummyArg ::= CHOICE{
+ none NULL,
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
+ }
+
+
+-- The following OPERATION applies for the interaction with Call Transfer
+
+aocComplete OPERATION ::= {
+ ARGUMENT AocCompleteArg
+ RESULT AocCompleteRes
+ ERRORS {supplementaryServiceInteractionNotAllowed}
+ CODE local: 64}
+
+AocCompleteArg ::= SEQUENCE {
+ chargedUser PartyNumber,
+ chargingAssociation ChargingAssociation OPTIONAL,
+ completeArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+AocCompleteRes::= SEQUENCE {
+ chargingOption ChargingOption,
+ completeResExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
+ } OPTIONAL
+ }
+
+ChargingOption ::= ENUMERATED{
+ aocFreeOfCharge (0),
+ aocContinueCharging (1),
+ aocStopCharging (2)
+ }
+
+-- The following OPERATION applies for the interaction with Call Diversion
+
+aocDivChargeReq OPERATION::= {
+ ARGUMENT AocDivChargeReqArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 65}
+
+
+AocDivChargeReqArg ::= SEQUENCE {
+ divertingUser PartyNumber,
+ chargingAssociation ChargingAssociation OPTIONAL,
+ diversionType DiversionType,
+ aocDivChargeReqArgExt CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
+ } OPTIONAL
+ }
+
+
+DiversionType ::= ENUMERATED {
+ callForwardingUnconditional (0),
+ callForwardingBusy (1),
+ callForwardingNoReply (2),
+ callDeflection (3) }
+
+AOCExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{AOCExtSet}}
+ CODE local: 1008}
+
+freeOfCharge ERROR ::= { CODE local: 1016}
+
+END -- of SS-AOC-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-CC.asn b/epan/dissectors/asn1/qsig/QSIG-CC.asn
new file mode 100644
index 0000000000..e8df6da305
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CC.asn
@@ -0,0 +1,175 @@
+-- QSIG-CC.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-186, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-186.htm
+--
+
+SS-CC-Operations-asn1-97 { iso (1) standard (0) pss1-call-completion (13870) operations-asn1-97 (1)}
+DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+IMPORTS
+ OPERATION,
+ ERROR
+FROM Remote-Operations-Information-Objects
+{ joint-iso-itu-t remote-operations (4) informationObjects(5) version1 (0)}
+
+ EXTENSION, Extension{}
+FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso( 1) standard( 0) pss1-generic-procedures( 11582) msi-class-asn1-97( 11) }
+
+ PSS1InformationElement
+FROM PSS1-generic-parameters-definition-asn1-97
+ { iso standard pss1-generic-procedures (11582) pss1-generic-parameters-asn1-97(17)}
+
+ PartyNumber,
+ PartySubaddress,
+ PresentedNumberUnscreened
+FROM Addressing-Data-Elements-asn1-97
+ {iso standard pss1-generic-procedures (11582) addressing-data-elements-asn1-97 (20)}
+
+supplementaryServiceInteractionNotAllowed
+FROM General-Error-List
+ { ccitt (0) recommendation (0) q 950 general-error-list (1) } ;
+
+CC-Operations OPERATION ::= {ccbsRequest | ccnrRequest | ccCancel | ccExecPossible | ccPathReserve |
+ ccRingout | ccSuspend | ccResume }
+
+ ccbsRequest OPERATION ::= {
+ ARGUMENT CcRequestArg
+ RESULT CcRequestRes
+ ERRORS{
+ shortTermRejection |
+ longTermRejection |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed
+ }
+ CODE local: 40
+ }
+
+ ccnrRequest OPERATION ::= {
+ ARGUMENT CcRequestArg
+ RESULT CcRequestRes
+ ERRORS{
+ shortTermRejection |
+ longTermRejection |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed
+ }
+ CODE local: 27
+ }
+
+ ccCancel OPERATION ::= {
+ ARGUMENT CcOptionalArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 28
+ }
+
+ ccExecPossible OPERATION ::= {
+ ARGUMENT CcOptionalArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 29
+ }
+
+ ccPathReserve OPERATION ::= {
+ ARGUMENT CcExtension
+ RESULT CcExtension
+ ERRORS {
+ remoteUserBusyAgain |
+ failureToMatch |
+ failedDueToInterworking |
+ unspecified
+ }
+ CODE local: 30
+ }
+
+ ccRingout OPERATION ::= {
+ ARGUMENT CcExtension
+ RETURN RESULT FALSE
+ ERRORS{
+ remoteUserBusyAgain |
+ failureToMatch |
+ unspecified
+ }
+ ALWAYS RESPONDS FALSE
+ CODE local: 31
+ }
+
+ ccSuspend OPERATION ::= {
+ ARGUMENT CcExtension
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 32
+ }
+
+ ccResume OPERATION ::= {
+ ARGUMENT CcExtension
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 33
+ }
+
+-- TYPE DEFINITIONS FOR CC DATA TYPES FOLLOW
+CcRequestArg ::= SEQUENCE {
+ numberA PresentedNumberUnscreened,
+ numberB PartyNumber,
+ service PSS1InformationElement,
+ -- permitted information elements are:
+ -- Bearer capability; Low layer compatibility; High layer compatibility
+ subaddrA [10] PartySubaddress OPTIONAL,
+ subaddrB [11] PartySubaddress OPTIONAL,
+ can-retain-service [12] IMPLICIT BOOLEAN DEFAULT FALSE,
+ retain-sig-connection [13] IMPLICIT BOOLEAN OPTIONAL,
+ -- TRUE: signalling connection to be retained;
+ -- FALSE: signalling connection to be released;
+ -- omission: release or retain signalling connection--
+ extension CcExtension OPTIONAL
+ }
+
+CcRequestRes ::= SEQUENCE{
+ no-path-reservation [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ retain-service [1] IMPLICIT BOOLEAN DEFAULT FALSE,
+ extension CcExtension OPTIONAL
+ }
+
+CcOptionalArg ::= CHOICE{
+ fullArg [0] IMPLICIT SEQUENCE {
+ numberA PartyNumber,
+ numberB PartyNumber,
+ service PSS1InformationElement,
+ -- permitted information elements are:
+ --Bearer capability;
+ -- Low layer compatibility;
+ -- High layer compatibility.
+ subaddrA [10] PartySubaddress OPTIONAL,
+ subaddrB [11] PartySubaddress OPTIONAL,
+ extension CcExtension OPTIONAL
+ },
+ extArg CcExtension
+ }
+
+CcExtension ::= CHOICE {
+ none NULL,
+ single [14] IMPLICIT Extension{{CCExtSet}},
+ multiple [15] IMPLICIT SEQUENCE OF Extension{{CCExtSet}}
+ }
+
+CCExtSet EXTENSION ::= {...}
+
+-- DEFINITIONS FOR ERRORS FOLLOW
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{CCExtSet}}
+ CODE local: 1008
+ }
+
+shortTermRejection ERROR ::= { CODE local: 1010}
+longTermRejection ERROR ::= { CODE local: 1011}
+remoteUserBusyAgain ERROR ::= { CODE local: 1012}
+failureToMatch ERROR ::= { CODE local: 1013}
+failedDueToInterworking ERROR ::= { CODE local: 1014}
+
+
+END -- of SS-CC-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-CF.asn b/epan/dissectors/asn1/qsig/QSIG-CF.asn
new file mode 100644
index 0000000000..1c090d58a3
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CF.asn
@@ -0,0 +1,251 @@
+-- QSIG-CF.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-174, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-174.htm
+--
+
+Call-Diversion-Operations-asn1-97
+ { iso (1) standard (0) pss1-call-diversion (13873) call-diversion-operations-asn1-97 (1) }
+
+ DEFINITIONS EXPLICIT TAGS ::=
+
+ BEGIN
+
+ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t remote-operations (4) informationObjects(5) version1(0)}
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+
+ PSS1InformationElement FROM PSS1-generic-parameters-definition-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) pss1-generic-parameters-asn1-97 (17)
+}
+
+ Address, PartyNumber, PartySubaddress, PresentedNumberScreened,
+ PresentedNumberUnscreened, PresentationAllowedIndicator FROM
+ Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) addressing-data-elements-asn1-97 (20)
+}
+
+ Name FROM Name-Operations-asn1-97
+ { iso (1) standard (0) pss1-name (13868) name-operations-asn1-97 (1) }
+
+ userNotSubscribed, notAvailable, invalidServedUserNr, basicServiceNotProvided,
+ resourceUnavailable, supplementaryServiceInteractionNotAllowed FROM
+ General-Error-List
+ { ccitt recommendation q 950 general-error-list (1) };
+
+Call-Diversion-Operations OPERATION ::= {activateDiversionQ | deactivateDiversionQ | interrogateDiversionQ |
+checkRestriction | callRerouteing | divertingLegInformation1 | divertingLegInformation2 | divertingLegInformation3 |
+cfnrDivertedLegFailed}
+
+ activateDiversionQ OPERATION ::={
+ -- Sent from the Activating PINX to the Served User PINX
+ ARGUMENT SEQUENCE
+ { procedure Procedure,
+ basicService BasicService,
+ divertedToAddress Address,
+ servedUserNr PartyNumber,
+ activatingUserNr PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ RESULT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}},
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ ERRORS { userNotSubscribed | notAvailable | invalidServedUserNr |
+ basicServiceNotProvided | resourceUnavailable | invalidDivertedToNr |
+ specialServiceNr | diversionToServedUserNr | temporarilyUnavailable |
+ notAuthorized | unspecified }
+ CODE local: 15}
+
+ deactivateDiversionQ OPERATION ::={
+ -- Sent from the Deactivating PINX to the Served User PINX
+ ARGUMENT SEQUENCE
+ { procedure Procedure,
+ basicService BasicService,
+ servedUserNr PartyNumber,
+ deactivatingUserNr PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL }
+ RESULT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ ERRORS {userNotSubscribed | notAvailable| invalidServedUserNr |
+ temporarilyUnavailable | notAuthorized | unspecified }
+ CODE local: 16}
+
+ interrogateDiversionQ OPERATION ::={
+ -- Sent from the Interrogating PINX to the Served User PINX
+ ARGUMENT SEQUENCE
+ { procedure Procedure,
+ basicService BasicService DEFAULT allServices,
+ servedUserNr PartyNumber,
+ interrogatingUserNr PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ RESULT IntResultList
+ ERRORS {userNotSubscribed | notAvailable | invalidServedUserNr |
+ temporarilyUnavailable | notAuthorized | unspecified }
+ CODE local: 17}
+
+ checkRestriction OPERATION ::={
+ -- Sent from the Served User PINX to the Diverted-to PINX
+ ARGUMENT SEQUENCE
+ { servedUserNr PartyNumber,
+ basicService BasicService,
+ divertedToNr PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL }
+ RESULT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}},
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ ERRORS {notAvailable | invalidServedUserNr |
+ invalidDivertedToNr | specialServiceNr | unspecified }
+ CODE local: 18}
+
+ callRerouteing OPERATION ::={
+ -- Sent from the Served User PINX to the Rerouteing PINX
+ ARGUMENT SEQUENCE
+ { rerouteingReason DiversionReason,
+ originalRerouteingReason [0] IMPLICIT DiversionReason OPTIONAL,
+ calledAddress Address,
+ diversionCounter INTEGER (1..15),
+ pSS1InfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility, Low
+ -- layer compatibity and Progress indicator can be embedded in the
+ -- pSS1InfoElement in accordance with 6.5.3.1.5.
+
+ lastRerouteingNr [1] PresentedNumberUnscreened,
+ subscriptionOption [2] IMPLICIT SubscriptionOption,
+ callingPartySubaddress [3] PartySubaddress OPTIONAL,
+ callingNumber [4] PresentedNumberScreened,
+ callingName [5] Name OPTIONAL,
+ originalCalledNr [6] PresentedNumberUnscreened OPTIONAL,
+ redirectingName [7] Name OPTIONAL,
+ originalCalledName [8] Name OPTIONAL,
+ extension CHOICE {
+ single [9] IMPLICIT Extension{{DiversionExtensionSet}},
+ multiple[10] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ RESULT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ ERRORS {userNotSubscribed | notAvailable | resourceUnavailable |
+ invalidDivertedToNr | specialServiceNr | diversionToServedUserNr |
+ numberOfDiversionsExceeded |
+ supplementaryServiceInteractionNotAllowed | unspecified }
+ -- The error value numberOfDiversionsExceeded applies only in case of partial rerouteing.
+ CODE local: 19}
+
+ divertingLegInformation1 OPERATION ::={
+ -- Sent from the Rerouteing PINX to the Originating PINX
+ ARGUMENT SEQUENCE
+ { diversionReason DiversionReason,
+ subscriptionOption SubscriptionOption,
+ nominatedNr PartyNumber,
+ extension CHOICE {
+ single [9] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple [10] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 20}
+
+ divertingLegInformation2 OPERATION ::={
+ -- Sent from the Rerouteing PINX to the Diverted-to PINX
+ ARGUMENT SEQUENCE
+ { diversionCounter INTEGER (1..15),
+ diversionReason DiversionReason,
+ originalDiversionReason [0] IMPLICIT DiversionReason OPTIONAL,
+ divertingNr [1] PresentedNumberUnscreened OPTIONAL,
+ originalCalledNr [2] PresentedNumberUnscreened OPTIONAL,
+ redirectingName [3] Name OPTIONAL,
+ originalCalledName [4] Name OPTIONAL,
+ extension CHOICE {
+ single [5] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[6] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ -- The divertingNr element is mandatory except in the case of interworking.
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 21}
+
+ divertingLegInformation3 OPERATION ::={
+ -- Sent from the Diverted-to PINX to the Originating PINX
+ ARGUMENT SEQUENCE
+ { presentationAllowedIndicator PresentationAllowedIndicator,
+ redirectionName [0] Name OPTIONAL,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL }
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 22}
+
+ cfnrDivertedLegFailed OPERATION ::={
+ -- Sent from the Rerouteing PINX to the Served User PINX
+ -- This indicates that the diverted-to leg has been cleared during SS-CFNR execution.
+ ARGUMENT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 23}
+
+-- Definitions of general used data types:
+ DiversionReason ::= ENUMERATED { unknown (0), cfu (1), cfb (2), cfnr (3)}
+ -- The value unknown is only used if received from another network when interworking.
+
+ IntResultList ::= SET SIZE (0..29) OF IntResult
+ IntResult ::= SEQUENCE {
+ servedUserNr PartyNumber,
+ basicService BasicService,
+ procedure Procedure,
+ divertedToAddress Address,
+ remoteEnabled BOOLEAN DEFAULT FALSE,
+ extension CHOICE {
+ single [1] IMPLICIT
+ Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF
+ Extension{{DiversionExtensionSet}} }
+ OPTIONAL }
+ Procedure ::= ENUMERATED { cfu (0), cfb (1), cfnr (2) }
+ SubscriptionOption ::= ENUMERATED {
+ noNotification (0),
+ notificationWithoutDivertedToNr (1),
+ notificationWithDivertedToNr (2) }
+
+ BasicService ::= ENUMERATED {
+ allServices (0),
+ speech (1),
+ unrestrictedDigitalInformation (2),
+ audio3100Hz (3),
+ telephony (32),
+ teletex (33),
+ telefaxGroup4Class1 (34),
+ videotexSyntaxBased (35),
+ videotelephony (36) }
+
+ DiversionExtensionSet EXTENSION ::= {...}
+ invalidDivertedToNr ERROR ::= {CODE local: 12}
+ specialServiceNr ERROR ::= {CODE local: 14}
+ diversionToServedUserNr ERROR ::= {CODE local: 15}
+ numberOfDiversionsExceeded ERROR ::= {CODE local: 24}
+ temporarilyUnavailable ERROR ::= {CODE local: 1000}
+ notAuthorized ERROR ::= {CODE local: 1007}
+ unspecified ERROR ::= {PARAMETER Extension{{DiversionExtensionSet}}
+ CODE local:1008}
+
+ END -- of Call-Diversion-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-CI.asn b/epan/dissectors/asn1/qsig/QSIG-CI.asn
new file mode 100644
index 0000000000..827d207a58
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CI.asn
@@ -0,0 +1,176 @@
+-- QSIG-CI.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-203, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-203.htm
+--
+
+Call-Intrusion-Operations-asn1-97
+ {iso(1) standard(0) pss1-call-intrusion(14846) call-intrusion-operations-asn1-97 (2) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso(1) standard(0)
+ pss1-generic-procedures(11582) msi-class-asn1-97(11)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)};
+
+Call-Intrusion-Operations OPERATION ::= {pathRetain | serviceAvailable | callIntrusionRequest |
+callIntrusionGetCIPL | callIntrusionIsolate | callIntrusionForcedRelease | callIntrusionWOBRequest |
+callIntrusionCompleted | cfbOverride}
+
+pathRetain OPERATION ::= {
+ ARGUMENT PathRetainArg -- this operation may be used by other
+ -- Supplementary Services using other
+ -- values of the argument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 41}
+
+serviceAvailable OPERATION ::= {
+ ARGUMENT ServiceAvailableArg -- this operation may be used by other
+ -- Supplementary Services using other
+ -- values of the argument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 42}
+
+callIntrusionRequest OPERATION ::= {
+ ARGUMENT CIRequestArg
+ RESULT CIRequestRes
+ ERRORS {notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
+ unspecified | supplementaryServiceInteractionNotAllowed}
+ CODE local: 43}
+
+callIntrusionGetCIPL OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT CIGetCIPLRes
+ ALWAYS RESPONDS FALSE
+ CODE local: 44}
+
+callIntrusionForcedRelease OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS {notAvailable | unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 46}
+
+callIntrusionIsolate OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS {notAvailable | unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 45}
+
+callIntrusionWOBRequest OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS {notAvailable | unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 47}
+
+callIntrusionCompleted OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 48}
+
+PathRetainArg ::= CHOICE {
+ serviceList ServiceList,
+ extendedServiceList SEQUENCE {
+ serviceList ServiceList,
+ extension Extension{{CIExtSet}}
+ }
+ }
+
+ServiceAvailableArg ::= CHOICE {
+ serviceList ServiceList,
+ extendedServiceList SEQUENCE {
+ serviceList ServiceList,
+ extension Extension{{CIExtSet}}
+ }
+ }
+
+ServiceList ::= BIT STRING
+ {ci-low(4), ci-medium(5), ci-high(6)} (SIZE(1..32))
+ -- bits other than ci-low, ci-medium, ci-high are reserved
+ -- for other supplementary services
+
+DummyArg ::= CHOICE{
+ null NULL,
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}}
+
+DummyRes ::= CHOICE{
+ null NULL,
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}}
+
+CIRequestArg ::= SEQUENCE{
+ ciCapabilityLevel CICapabilityLevel,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}
+ } OPTIONAL}
+
+CIRequestRes ::= SEQUENCE{
+ ciUnwantedUserStatus CIUnwantedUserStatus,
+ resultExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}
+ } OPTIONAL}
+
+CIGetCIPLRes ::= SEQUENCE{
+ ciProtectionLevel CIProtectionLevel,
+ resultExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}
+ } OPTIONAL}
+
+CICapabilityLevel ::= ENUMERATED{
+ intrusionLowProt(1),
+ intrusionMediumProt(2),
+ intrusionHighProt(3)}
+
+CIProtectionLevel ::= ENUMERATED{
+ lowProtection(0),
+ mediumProtection(1),
+ highProtection(2),
+ fullProtection(3)}
+
+CIUnwantedUserStatus ::= ENUMERATED{
+ unwantedUserIntruded(0),
+ unwantedUserIsolated(1)}
+
+cfbOverride OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 49}
+ -- used in the interaction with Call Forwarding Busy
+
+CIExtSet EXTENSION ::= {...}
+
+notBusy ERROR ::= { CODE local: 1009}
+ -- used when an SS-CI request is received in
+ -- a Terminating PINX and the called user is not busy
+
+temporarilyUnavailable ERROR ::= { CODE local: 1000}
+ -- used when conditions for invocation of SS-CI
+ -- are momentarily not met
+
+notAuthorized ERROR ::= { CODE local: 1007}
+ --used when a SS-CI request is rejected
+ --because of insufficient CICL
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{CIExtSet}}
+ CODE local: 1008}
+
+END -- of Call-Intrusion-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-CIDL.asn b/epan/dissectors/asn1/qsig/QSIG-CIDL.asn
new file mode 100644
index 0000000000..bcf79a9d35
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CIDL.asn
@@ -0,0 +1,78 @@
+-- QSIG-CIDL.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-314, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-314.htm
+--
+
+Call-Identification-and-Call-Linkage-Operations-asn1-97
+ {iso(1) standard (0) pss1-call-identification-and-call-linkage (21889)
+ call-identification-and-call-linkage-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso standard pss1-generic-procedures (11582) msi-class-asn1-97 (11)};
+
+CallIdentification-Operations OPERATION ::= { callIdentificationAssign | callIdentificationUpdate }
+
+callIdentificationAssign OPERATION ::= {
+ ARGUMENT CallIdentificationAssignArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 105
+ }
+
+callIdentificationUpdate OPERATION ::= {
+ ARGUMENT CallIdentificationUpdateArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 106
+ }
+
+CallIdentificationAssignArg ::= SEQUENCE {
+ globalCallID [0] CallIdentificationData,
+ threadID [1] CallIdentificationData OPTIONAL,
+ legID [2] CallIdentificationData OPTIONAL,
+ extension ExtensionType OPTIONAL
+ }
+
+CallIdentificationUpdateArg ::= SEQUENCE {
+ globalCallID [0] CallIdentificationData OPTIONAL,
+ threadID [1] CallIdentificationData OPTIONAL,
+ legID [2] CallIdentificationData OPTIONAL,
+ extension ExtensionType OPTIONAL
+ }
+
+CallIdentificationData ::= SEQUENCE {
+-- this structure is according to ECMA-269, 12.2.5 (see annex D)
+ switchingSubDomainName [0] IMPLICIT SwitchingSubDomainName OPTIONAL,
+ linkageID CHOICE {
+ subDomainID [1] IMPLICIT SubDomainID,
+ globallyUniqueID [2] IMPLICIT GloballyUniqueID},
+ timeStamp [3] IMPLICIT TimeStamp OPTIONAL
+ }
+
+SwitchingSubDomainName ::= IA5String (SIZE(1..64))
+
+GloballyUniqueID ::= OCTET STRING (SIZE(1..16))
+-- the GloballyUniqueID shall be coded according to ITU-T Recommendation H.225, section 7.6 (see annex D)
+
+ExtensionType ::= CHOICE {
+ extension [3] Extension{{ExampleExtSet}},
+ sequenceOfExt [4] IMPLICIT SEQUENCE OF Extension{{ExampleExtSet}}
+ }
+
+ExampleExtSet EXTENSION ::= {...}
+
+SubDomainID ::= OCTET STRING (SIZE(1..8))
+
+TimeStamp ::= GeneralizedTime (SIZE(16..19))
+
+END -- of Call-Identification-and-Call-Linkage-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-CINT.asn b/epan/dissectors/asn1/qsig/QSIG-CINT.asn
new file mode 100644
index 0000000000..29926a1815
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CINT.asn
@@ -0,0 +1,152 @@
+-- QSIG-CINT.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-221, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-221.htm
+--
+
+Call-Interception-Operations-asn1-97 {iso (1) standard (0) pss1-cint (15054) cint-operations-asn1-97 (1) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1(0)}
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
+
+ PartyNumber, PresentedNumberUnscreened, PresentationAllowedIndicator
+ FROM Addressing-Data-Elements-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20)}
+
+ Name FROM Name-Operations-asn1-97
+ {iso (1) standard (0) pss1-name (13868) name-operations-asn1-97 (1)};
+
+Call-Interception-Operations OPERATION ::= { cintLegInformation1 | cintLegInformation2 | cintCondition |
+cintDisable | cintEnable}
+
+
+cintLegInformation1 OPERATION ::= {
+ -- Sent from the Intercepting PINX to the Originating PINX --
+ ARGUMENT CintInformation1Arg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 66}
+
+
+cintLegInformation2 OPERATION ::= {
+ -- Sent from the Intercepting PINX to the Intercepted-to PINX --
+ ARGUMENT CintInformation2Arg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 67}
+
+cintCondition OPERATION ::= {
+ -- Sent to a preceding PINX to indicate a condition for possible interception
+ ARGUMENT CintCondArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 68}
+
+cintDisable OPERATION ::= {
+ -- Sent to a Preceding PINX to disable interception delayed --
+ ARGUMENT CintExtension
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 69}
+
+cintEnable OPERATION ::= {
+ -- Sent to a Preceding PINX to reenable interception --
+ ARGUMENT CintExtension
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 70}
+
+CintInformation1Arg ::= SEQUENCE
+ {
+ interceptionCause CintCause,
+ interceptedToNumber PartyNumber,
+ extension CintExtension OPTIONAL
+ }
+
+CintInformation2Arg ::= SEQUENCE
+ {
+ interceptionCause CintCause,
+ calledNumber [1]PresentedNumberUnscreened OPTIONAL,
+ originalCalledNumber [2]PresentedNumberUnscreened OPTIONAL,
+ calledName [3]Name OPTIONAL,
+ originalCalledName [4]Name OPTIONAL,
+ extension CintExtension OPTIONAL
+ }
+
+
+CintCondArg ::= SEQUENCE
+ {
+ interceptionCause Condition,
+ originalCalledNumber [1]PresentedNumberUnscreened OPTIONAL,
+ calledName [2]Name OPTIONAL,
+ originalCalledName [3]Name OPTIONAL,
+ extension CintExtension OPTIONAL
+ }
+
+CintExtension ::= CHOICE
+ {
+ none NULL,
+ single [5] IMPLICIT Extension{{CINTExtSet}},
+ multiple [6] IMPLICIT SEQUENCE OF Extension{{CINTExtSet}}
+ }
+
+CintCause ::= INTEGER {
+ unknown (0),
+ cintBnan (1), -- timeout in waiting on busy condition
+ cintBus (2), -- busy user
+ cintCug (3), -- closed user group rejection
+ cintDnd (4), -- do not disturb activated
+ cintIbd (5), -- incoming barred destination
+ cintInn (6), -- invalid number
+ cintMob1 (7), -- mobile user location not known
+ cintMob2 (8), -- mobile user no longer registered
+ cintMob3 (9), -- mobile terminal not responding
+ cintNcmp (10), -- no compatible destination
+ cintNcong (11), -- network congestion
+ cintNre (12), -- no reply (i.e. timeout during alerting)
+ cintOos (13), -- called user out of service
+ cintRrs (14), -- route restriction (calling user not authorized for
+ -- the route)
+ cintTbnan (15), -- timeout in wait on busy condition after transfer
+ cintTnre (16), -- no reply after transfer (i.e. timeout during alerting
+ -- after transfer
+ cintTrans (17), -- upper limit of transit counter reached
+ cintUpl (18), -- upper limit of number of diversions reached
+ cintInvDiv (19), -- invalid call diversion destination
+ cintHold (20) -- timeout after call hold
+ } (0..127)
+
+
+Condition ::= INTEGER {
+ unknown (0),
+ cintBus (2), -- busy user
+ cintCug (3), -- closed user group rejection
+ cintDnd (4), -- do not disturb activated
+ cintIbd (5), -- incoming barred destination
+ cintInn (6), -- invalid number
+ cintMob1 (7), -- mobile user location not known
+ cintMob2 (8), -- mobile user no longer registered
+ cintMob3 (9), -- mobile terminal not responding
+ cintNcmp (10), -- no compatible destination
+ cintNcong (11), -- network congestion
+ cintOos (13), -- called user out of service
+ cintRrs (14), -- route restriction (calling user not authorized for
+ -- the route
+ cintTrans (17), -- upper limit of transit counter reached
+ cintUpl (18), -- upper limit of number of diversions
+ -- reached
+ cintInvDiv (19) -- invalid call diversion destination
+ } (0..127)
+
+CINTExtSet EXTENSION ::= {...}
+
+END -- of Call-Interception-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-CMN.asn b/epan/dissectors/asn1/qsig/QSIG-CMN.asn
new file mode 100644
index 0000000000..99bdb3906d
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CMN.asn
@@ -0,0 +1,143 @@
+-- QSIG-CMN.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-251, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-251.htm
+--
+
+Common-Information-Operations-asn1-97
+ {iso (1) standard (0) pss1-common-information (15772) operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1 (0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)};
+
+CMN-Operations OPERATION ::= {cmnRequest | cmnInform }
+
+cmnRequest OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT CmnArg
+ ALWAYS RESPONDS FALSE
+ CODE local: 84}
+
+cmnInform OPERATION ::= {
+ ARGUMENT CmnArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 85}
+
+CmnArg ::= SEQUENCE {
+ featureIdentifier [2] IMPLICIT FeatureIdList OPTIONAL,
+ ssDNDOprotectionLevel [3] IMPLICIT INTEGER (0..3) OPTIONAL,
+ -- Supplementary Service Do Not Disturb Override Protection level,
+ -- meaningful only in backward direction; inclusion indicates
+ -- support of SS-DNDO as well as the applicable protection level.
+ ssCIprotectionLevel [4] IMPLICIT INTEGER (0..3) OPTIONAL,
+ -- Supplementary Service Call Intrusion Protection level,
+ -- meaningful both in forward & backward direction; inclusion indicates support
+ -- of SS-CI as an Unwanted user PINX (forward direction) or as a Terminating
+ -- PINX (backward direction), as well as the applicable protection level.
+ equipmentIdentity [5] IMPLICIT EquipmentId OPTIONAL,
+ partyCategory [6] IMPLICIT PartyCategory OPTIONAL,
+ extension CHOICE {
+ single [7] IMPLICIT Extension{{CMNExtSet}},
+ multiple [8] IMPLICIT SEQUENCE OF
+ Extension{{CMNExtSet}}
+ } OPTIONAL }
+
+DummyArg ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{CMNExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{CMNExtSet}}
+ }
+
+FeatureIdList ::= BIT STRING { -- bit set to ONE means the corresponding feature
+ -- is available for this call
+ reserved (0), -- this Bit shall be reserved
+ ssCFreRoutingSupported (1), -- Call Forwarding rerouting supported
+ -- meaningful only in forward direction
+ -- during call establishment
+ ssCTreRoutingSupported (2), -- Call Transfer rerouting supported
+ -- meaningful both in forward & backward
+ -- direction during call establishment
+ ssCCBSpossible (3), -- CCBS possible
+ -- meaningful only in backward direction
+ -- before receipt of ALERTING/CONNECT
+ ssCCNRpossible (4), -- CCNR possible
+ -- meaningful only in backward direction
+ -- before receipt of CONNECT
+ ssCOsupported (5), -- Call Offer supported
+ -- meaningful only in backward direction
+ -- during call establishment
+
+ -- Call Intrusion
+ ssCIforcedRelease (6), -- meaningful only in backward direction
+ ssCIisolation (7), -- meaningful only in backward direction
+ ssCIwaitOnBusy (8), -- meaningful only in backward direction
+
+ -- Advice of Charge
+ ssAOCsupportChargeRateProvAtGatewPinx (9), -- meaningful only in
+ -- backward direction
+ ssAOCsupportInterimChargeProvAtGatewPinx (10), -- meaningful only in
+ -- backward direction
+ ssAOCsupportFinalChargeProvAtGatewPinx (11), -- meaningful only in
+ -- backward direction
+
+ anfPRsupportedAtCooperatingPinx (12), -- Path replacement
+ -- meaningful both in forward &
+ -- backward direction
+
+ -- Call Interception
+ anfCINTcanInterceptImmediate (13), -- meaningful only in
+ -- forward direction
+ anfCINTcanInterceptDelayed (14), -- meaningful only in
+ -- forward direction
+
+ anfWTMIreRoutingSupported (15), -- Incoming WTM call
+ -- meaningful only in
+ -- forward direction
+ anfPUMIreRoutingSupported (16), -- Incoming PUM call
+ -- meaningful only in
+ -- forward direction
+ ssSSCTreRoutingSupported (17) -- Single Step Call Transfer rerouting
+ -- supported
+ -- meaningful both in forward and
+ -- backward direction during call
+ -- establishment
+ } (SIZE (1..64))
+
+EquipmentId ::= SEQUENCE {
+ nodeId [1] IMPLICIT IA5String (SIZE (1..10)) OPTIONAL,
+ groupId [2] IMPLICIT IA5String (SIZE (1..10)) OPTIONAL,
+ unitId [3] IMPLICIT IA5String (SIZE (1..10)) OPTIONAL
+ }
+-- NOTE:
+-- The purpose of the Equipment Id is to indicate, to another user or to another PINX, information about a
+-- calling or called party involved in a call.
+-- Assignment of network wide unique Equipment Id values is outside the scope of this Standard.
+
+PartyCategory ::= ENUMERATED {
+ unknown (0),
+ extension (1),
+ pisnAttendant (2),
+ emergExt (3)
+ }
+
+-- NOTE:
+-- The purpose of the Party category is to indicate, to another user or to another PINX, the category of a user
+-- involved in a call. An Originating PINX may include an indication of the calling user's category in the SETUP
+-- message sent across an inter-PINX link. A Terminating PINX may include an indication of the called user's
+-- category in an ALERTING message or CONNECT message sent across an inter-PINX link. A received
+-- Party category information may be used for display at the user's terminal or for PINX internal call handling,
+-- e.g. depending on whether the calling or called party is an extension or a PISN attendant, the PINX internal
+-- call handling may invoke different options of a supplementary service related to that call.
+
+CMNExtSet EXTENSION ::= {...}
+
+
+END -- of Common-Information-Operations-asn1-97 \ No newline at end of file
diff --git a/epan/dissectors/asn1/qsig/QSIG-CO.asn b/epan/dissectors/asn1/qsig/QSIG-CO.asn
new file mode 100644
index 0000000000..8157d2bf9f
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CO.asn
@@ -0,0 +1,102 @@
+-- QSIG-CO.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-192, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-192.htm
+--
+
+Call-Offer-Operations-asn1-97
+ {iso(1) standard(0) pss1-call-offer(14843) call-offer-operations-asn1-97 (2) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso(1) standard(0)
+ pss1-generic-procedures(11582) msi-class-asn1-97 (11)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)};
+
+Call-Offer-Operations OPERATION ::= { callOfferRequest | pathRetain | serviceAvailable | cfbOverride }
+
+pathRetain OPERATION ::= {
+ ARGUMENT PathRetainArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 41}
+ -- this operation may be used by other supplementary services
+ -- using other values of argument
+
+serviceAvailable OPERATION ::= {
+ ARGUMENT ServiceAvailableArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 42}
+ -- this operation may be used by other supplementary services
+ -- using other values of argument
+
+callOfferRequest OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS {
+ notAvailable |
+ notBusy |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 34}
+
+PathRetainArg ::= CHOICE {serviceList ServiceList,
+ extendedServiceList SEQUENCE{
+ serviceList ServiceList,
+ extension Extension{{COExtSet}}
+ }
+ }
+
+ServiceAvailableArg ::= CHOICE {serviceList ServiceList,
+ extendedServiceList SEQUENCE{
+ serviceList ServiceList,
+ extension Extension{{COExtSet}}
+ }
+ }
+
+ServiceList ::= BIT STRING {callOffer(0)} (SIZE(1..32))
+ -- bits other than callOffer(0) are reserved for
+ -- other supplementary services
+
+DummyArg ::= CHOICE{
+ null NULL,
+ extension [1] IMPLICIT Extension{{COExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{COExtSet}}}
+
+DummyRes ::= CHOICE{
+ null NULL,
+ extension [1] IMPLICIT Extension{{COExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{COExtSet}}}
+
+cfbOverride OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 49}
+ -- used in the interaction with Call Forwarding Busy
+COExtSet EXTENSION ::= {...}
+
+notBusy ERROR ::= { CODE local: 1009}
+ -- used when an SS-CO request is received in
+ -- a Terminating PINX and the called user is not busy
+
+temporarilyUnavailable ERROR ::= { CODE local: 1000}
+ -- used when conditions for invocation of SS-CO
+ -- are momentarily not met
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{ COExtSet}}
+ CODE local: 1008}
+
+
+END -- of Call-Offer-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-CPI.asn b/epan/dissectors/asn1/qsig/QSIG-CPI.asn
new file mode 100644
index 0000000000..7014e01575
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CPI.asn
@@ -0,0 +1,67 @@
+-- QSIG-CPI.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-264, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-264.htm
+--
+
+Call-Interruption-Operations-asn1-97
+{iso (1) standard (0) pss1-call-interruption (15992) call-interruption-operations-asn1-97 (2) }
+
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1 (0)}
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)};
+
+ -- The following operations are defined:
+
+Call-Interruption-Operations OPERATION ::= { callInterruptionRequest | callProtectionRequest }
+
+callInterruptionRequest OPERATION ::= {
+ ARGUMENT CPIRequestArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 87}
+
+callProtectionRequest OPERATION ::= {
+ ARGUMENT CPIPRequestArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 88}
+
+ -- The following arguments are defined:
+
+CPIRequestArg ::= SEQUENCE{
+ cpiCapabilityLevel CPICapabilityLevel,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CPIPExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF
+ Extension{{CPIPExtSet}}} OPTIONAL}
+
+CPIPRequestArg ::= SEQUENCE{
+ cpiProtectionLevel CPIProtectionLevel,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CPIPExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF
+ Extension{{CPIPExtSet}}} OPTIONAL}
+
+CPICapabilityLevel ::= ENUMERATED{
+ interruptionLowPriority (1),
+ interruptionMediumPriority (2),
+ interruptionHighPriority (3)}
+
+CPIProtectionLevel ::= ENUMERATED{
+ noProtection (0),
+ lowProtection (1),
+ mediumProtection (2),
+ totalProtection (3)}
+
+CPIPExtSet EXTENSION ::= {...}
+
+END -- of Call-Interruption-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-CT.asn b/epan/dissectors/asn1/qsig/QSIG-CT.asn
new file mode 100644
index 0000000000..45fb81dc67
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-CT.asn
@@ -0,0 +1,229 @@
+-- QSIG-CT.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-178, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-178.htm
+--
+
+Call-Transfer-Operations-asn1-97
+ {iso(1) standard(0) pss1-call-transfer(13869) call-transfer-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+
+IMPORTS
+ OPERATION, ERROR FROM
+Remote-Operations-Information-Objects {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM
+Manufacturer-specific-service-extension-class-asn1-97 {iso(1) standard(0) pss1-generic-procedures (11582)
+msi-class-asn1-97(11)}
+ Name FROM
+Name-Operations-asn1-97 {iso(1) standard(0) pss1-name (13868) name-operations-asn1-97 (1)}
+ supplementaryServiceInteractionNotAllowed,
+ notAvailable,
+ invalidCallState FROM
+General-Error-List {ccitt (0) recommendation (0) q 950 general-error-list (1)}
+ PresentedAddressScreened,
+ PresentedNumberScreened,
+ PartyNumber,
+ PartySubaddress FROM
+Addressing-Data-Elements-asn1-97 {iso(1) standard(0) pss1-generic-procedures (11582)
+addressing-data-elements-asn1-97 (20)}
+ PSS1InformationElement
+FROM PSS1-generic-parameters-definition-asn1-97 { iso(1) standard (0) pss1-generic-procedures (11582)
+ pss1-generic-parameters-asn1-97 (17)};
+
+-- TYPE DEFINITIONS FOR CT OPERATIONS FOLLOW
+
+Call-Transfer-Operations OPERATION ::= {callTransferIdentify | callTransferAbandon | callTransferInitiate |
+callTransferSetup | callTransferActive | callTransferComplete | callTransferUpdate | subaddressTransfer}
+
+callTransferIdentify OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT CTIdentifyRes
+ ERRORS {
+ notAvailable |
+ invalidCallState |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 7}
+
+callTransferAbandon OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 8}
+
+callTransferInitiate OPERATION ::= {
+ ARGUMENT CTInitiateArg
+ RESULT DummyRes
+ ERRORS {
+ notAvailable |
+ invalidCallState |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ establishmentFailure |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed }
+ CODE local: 9}
+
+callTransferSetup OPERATION ::= {
+ ARGUMENT CTSetupArg
+ RESULT DummyRes
+ ERRORS{
+ notAvailable |
+ invalidCallState |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed }
+ CODE local: 10}
+
+callTransferActive OPERATION::= {
+ ARGUMENT CTActiveArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 11}
+
+callTransferComplete OPERATION ::= {
+ ARGUMENT CTCompleteArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 12}
+
+callTransferUpdate OPERATION ::= {
+ ARGUMENT CTUpdateArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 13}
+
+subaddressTransfer OPERATION ::= {
+ ARGUMENT SubaddressTransferArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 14}
+
+-- TYPE DEFINITIONS FOR CT DATA TYPES FOLLOW
+
+DummyArg ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{CTExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ }
+
+DummyRes ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{CTExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ }
+
+CTIdentifyRes ::= SEQUENCE {
+ callIdentity CallIdentity,
+ rerouteingNumber PartyNumber,
+ resultExtension CHOICE {
+ single [6] IMPLICIT Extension{{CTExtSet}},
+ multiple [7] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTInitiateArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ rerouteingNumber PartyNumber,
+ argumentExtension CHOICE {
+ single [6] IMPLICIT Extension{{CTExtSet}},
+ multiple [7] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTSetupArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ argumentExtension CHOICE {
+ single [0] IMPLICIT Extension{{CTExtSet}},
+ multiple [1] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTActiveArg ::= SEQUENCE{
+ connectedAddress PresentedAddressScreened,
+ basicCallInfoElements PSS1InformationElement OPTIONAL,
+ -- ISO/IEC 11572 information element
+ -- Progress indicator is conveyed
+ connectedName Name OPTIONAL,
+ argumentExtension CHOICE {
+ single [9] IMPLICIT Extension{{CTExtSet}},
+ multiple [10] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTCompleteArg ::= SEQUENCE {
+ endDesignation EndDesignation,
+ redirectionNumber PresentedNumberScreened,
+ basicCallInfoElements PSS1InformationElement OPTIONAL,
+ -- ISO/IEC 11572 information element
+ -- Progress indicator is conveyed
+ redirectionName Name OPTIONAL,
+ callStatus CallStatus DEFAULT answered,
+ argumentExtension CHOICE {
+ single [9] IMPLICIT Extension{{CTExtSet}},
+ multiple [10] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTUpdateArg ::= SEQUENCE {
+ redirectionNumber PresentedNumberScreened,
+ redirectionName Name OPTIONAL,
+ basicCallInfoElements PSS1InformationElement OPTIONAL,
+ -- ISO/IEC 11572 information element
+ -- Progress indicator is conveyed
+ argumentExtension CHOICE {
+ single [9] IMPLICIT Extension{{CTExtSet}},
+ multiple [10] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ }OPTIONAL }
+
+SubaddressTransferArg ::= SEQUENCE {
+ redirectionSubaddress PartySubaddress,
+ argumentExtension CHOICE {
+ single [0] IMPLICIT Extension{{CTExtSet}},
+ multiple [1] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CallStatus ::= ENUMERATED{
+ answered(0),
+ alerting(1)
+ }
+
+CallIdentity ::= NumericString (SIZE (1..4))
+
+EndDesignation ::= ENUMERATED {
+ primaryEnd(0),
+ secondaryEnd(1)
+ }
+
+CTExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= {
+ PARAMETER Extension {{CTExtSet}}
+ CODE local: 1008 }
+
+
+invalidRerouteingNumber ERROR ::= { CODE local: 1004}
+ -- used when establishment of the new
+ -- connection fails because
+ -- the rerouteingNumber is not a valid
+ -- PISN address
+
+unrecognizedCallIdentity ERROR ::= { CODE local: 1005}
+ -- used when establishment of the new
+ -- connection fails because it could not be
+ -- associated with a SS-CT entity
+ -- at the Secondary PINX
+
+establishmentFailure ERROR ::= { CODE local: 1006}
+ -- used when establishment of the new
+ -- connection fails and no other error applies
+ -- of Call-Transfer-Operations
+
+END -- of Call-Transfer-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-DND.asn b/epan/dissectors/asn1/qsig/QSIG-DND.asn
new file mode 100644
index 0000000000..bb4302078a
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-DND.asn
@@ -0,0 +1,211 @@
+-- QSIG-DND.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-194, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-194.htm
+--
+
+Do-Not-Disturb-Operations-asn1-97
+ {iso(1) standard(0) pss1-do-not-disturb(14844) do-not-disturb-operations-asn1-97 (2) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso(1) standard(0)
+ pss1-generic-procedures(11582) msi-class-asn1-97(11)}
+ basicServiceNotProvided, invalidServedUserNr, notAvailable,
+ userNotSubscribed, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard(0) pss1-generic-procedures(11582)
+ addressing-data-elements-asn1-97 (20)}
+ BasicService FROM Call-Diversion-Operations-asn1-97
+ {iso(1) standard(0) pss1-call-diversion(13873) call-diversion-operations-asn1-97 (1) }
+ ;
+
+Do-Not-Disturb-Operations OPERATION ::= {doNotDisturbActivateQ | doNotDisturbDeactivateQ |
+doNotDisturbInterrogateQ | doNotDisturbOverrideQ | doNotDisturbOvrExecuteQ | pathRetain | serviceAvailable}
+
+doNotDisturbActivateQ OPERATION ::= {
+ ARGUMENT DNDActivateArg
+ RESULT DNDActivateRes
+ ERRORS { userNotSubscribed |
+ notAvailable |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 35}
+
+doNotDisturbDeactivateQ OPERATION ::= {
+ ARGUMENT DNDDeactivateArg
+ RESULT DummyRes
+ ERRORS { userNotSubscribed |
+ notAvailable |
+ invalidServedUserNr |
+ notActivated |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 36}
+
+doNotDisturbInterrogateQ OPERATION ::= {
+ ARGUMENT DNDInterrogateArg
+ RESULT DNDInterrogateRes
+ ERRORS { userNotSubscribed |
+ notAvailable |
+ invalidServedUserNr |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 37}
+
+doNotDisturbOverrideQ OPERATION ::= {
+ ARGUMENT DNDOverrideArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 38}
+
+pathRetain OPERATION ::= {
+ ARGUMENT PathRetainArg -- this operation may be used by other
+ -- Supplementary Services using other
+ -- values of the argument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 41}
+
+serviceAvailable OPERATION ::= {
+ ARGUMENT ServiceAvailableArg -- this operation may be used by other
+ -- Supplementary Services using other
+ -- values of the argument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 42}
+
+doNotDisturbOvrExecuteQ OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS { notAvailable |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 39}
+
+DummyArg ::= CHOICE {
+ null NULL,
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ }
+
+DummyRes ::= CHOICE {
+ null NULL,
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ }
+
+DNDActivateArg ::= SEQUENCE {
+ basicService BasicService,
+ servedUserNr PartyNumber,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDActivateRes ::= SEQUENCE {
+ status SET OF SEQUENCE{
+ basicService BasicService,
+ dndProtectionLevel DNDProtectionLevel OPTIONAL
+ } OPTIONAL,
+ resultExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDDeactivateArg ::= SEQUENCE {
+ basicService BasicService,
+ servedUserNr PartyNumber,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDInterrogateArg ::= SEQUENCE {
+ servedUserNr PartyNumber,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDInterrogateRes ::= SEQUENCE {
+ status SET OF SEQUENCE {
+ basicService BasicService,
+ dndProtectionLevel DNDProtectionLevel OPTIONAL
+ } OPTIONAL,
+ resultExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDOverrideArg ::= SEQUENCE {
+ dndoCapabilityLevel DNDOCapabilityLevel,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+PathRetainArg ::= CHOICE {
+ serviceList ServiceList,
+ extendedServiceList SEQUENCE {
+ serviceList ServiceList,
+ extension Extension{{DNDExtSet}}
+ }
+ }
+
+ServiceAvailableArg ::= CHOICE {
+ serviceList ServiceList,
+ extendedServiceList SEQUENCE {
+ serviceList ServiceList,
+ extension Extension{{DNDExtSet}}
+ }
+ }
+
+DNDProtectionLevel ::= ENUMERATED {
+ lowProtection(0),
+ mediumProtection(1),
+ highProtection(2),
+ fullProtection(3)
+ }
+
+DNDOCapabilityLevel ::= ENUMERATED {
+ overrideLowProt(1),
+ overrideMediumProt(2),
+ overrideHighProt(3)
+ }
+
+ServiceList ::= BIT STRING
+ { dndo-low(1), dndo-medium(2), dndo-high(3) } (SIZE (1..32))
+ -- bits other than dndo-low, dndo-medium, or dndo-high, are reserved
+ -- for other Supplementary Services
+
+temporarilyUnavailable ERROR ::= { CODE local: 1000}
+notActivated ERROR ::= { CODE local: 43}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{DNDExtSet}}
+ CODE local: 1008}
+
+DNDExtSet EXTENSION ::= {...}
+
+END -- of Do-Not-Disturb-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-MCM.asn b/epan/dissectors/asn1/qsig/QSIG-MCM.asn
new file mode 100644
index 0000000000..680bdf35b6
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-MCM.asn
@@ -0,0 +1,399 @@
+-- QSIG-MCM.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-347, (June 2003)
+-- http://www.ecma-international.org/publications/standards/Ecma-347.htm
+--
+
+SS-MCM-Operations-asn1-97
+{iso (1) identified-organization (3) icd-ecma (12) standard (0)
+qsig-message-centre-monitoring (347)
+message-centre-monitoring-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM
+ Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations (4) informationObjects (5)
+ version1 (0)}
+
+ EXTENSION, Extension{} FROM
+ Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard pss1-generic-procedures (11582)
+ msi-class-asn1-97 (11)}
+
+ basicServiceNotProvided, userNotSubscribed, invalidServedUserNr
+ FROM General-Error-List
+ {itu-t (0) recommendation (0) q (17) 950
+ general-error-list (1)}
+
+ PresentedAddressUnscreened, PartyNumber FROM
+ Addressing-Data-Elements-asn1-97
+ {iso standard pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20)}
+ Name FROM Name-Operations-asn1-97
+ {iso standard pss1-name (13868) name-operations-asn1-97 (1)}
+ ;
+
+
+MCM-Operations OPERATION ::= {
+ mCMNewMsg |
+ mCMNoNewMsg |
+ mCMUpdate |
+ mCMUpdateReq |
+ mCMService |
+ mCMInterrogate |
+ mCMailboxFull }
+
+
+mCMNewMsg OPERATION ::= {
+ ARGUMENT MCMNewMsgArg
+ RESULT MCMDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ unspecified}
+ CODE local: 80} -- same code as for mWIActivate in SS-MWI
+
+
+mCMNoNewMsg OPERATION ::= {
+ ARGUMENT MCMNoNewMsgArg
+ RESULT MCMDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ unspecified}
+ CODE local: 81} -- same code as for mWIDeactivate in SS-MWI
+
+
+mCMUpdate OPERATION ::= {
+ ARGUMENT MCMUpdateArg
+ RESULT MCMDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ unspecified}
+ CODE local: 115}
+
+
+mCMUpdateReq OPERATION ::= {
+ ARGUMENT MCMUpdateReqArg
+ RESULT MCMUpdateReqRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ unspecified}
+ CODE local: 82}
+ -- same code as for mWIInterrogate in SS-MWI
+
+mCMService OPERATION ::= {
+ ARGUMENT MCMServiceArg
+ RESULT MCMDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ mCMModeNotProvided |
+ unspecified}
+ CODE local: 116}
+
+
+mCMInterrogate OPERATION ::= {
+ ARGUMENT MCMInterrogateArg
+ RESULT MCMInterrogateRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ mCMModeNotProvided |
+ unspecified}
+ CODE local: 117}
+
+
+mCMailboxFull OPERATION ::= {
+ ARGUMENT MCMailboxFullArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 118}
+
+
+MCMailboxFullArg ::= SEQUENCE
+ {
+ partyInfo PartyInfo,
+ mailboxFullFor MailboxFullFor,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+MailboxFullFor ::= SEQUENCE OF MailboxFullPar
+
+MailboxFullPar ::= SEQUENCE
+ {
+ messageType MessageType,
+ capacityReached INTEGER (0..100) OPTIONAL
+ -- percentage of storage capacity already used
+ }
+
+MCMServiceArg ::= SEQUENCE
+ {
+
+ partyInfo PartyInfo,
+ mCMChange MCMChange,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+MCMChange ::= CHOICE
+ {
+ activateMCM [1] IMPLICIT SEQUENCE OF MCMServiceInfo,
+ deactivateMCM [2] IMPLICIT SEQUENCE OF MessageType,
+ setToDefaultValues NULL
+ }
+
+MCMServiceInfo ::= SEQUENCE
+ {
+ messageType MessageType,
+ mCMModeNew [1] IMPLICIT MCMMode OPTIONAL,
+ mCMModeRetrieved [2] IMPLICIT MCMMode OPTIONAL
+ }
+
+MCMInterrogateArg ::= SEQUENCE
+ {
+ partyInfo PartyInfo,
+ interrogateInfo SEQUENCE OF MessageType,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+MCMInterrogateRes ::= SEQUENCE
+ {
+ interrogateResult SEQUENCE OF MCMServiceInfo,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+MCMNewMsgArg ::= SEQUENCE
+ {
+ servedUserNr PartyNumber,
+ specificMessageType MessageType,
+ msgCentreId MsgCentreId OPTIONAL,
+ nrOfMessages [3] IMPLICIT NrOfMessages OPTIONAL,
+ originatingNr [4] PartyNumber OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ priority [5] IMPLICIT INTEGER (0..9) OPTIONAL,
+ argumentExt CHOICE {
+ extension [6] IMPLICIT Extension{{MCMExtSet}},
+ multipleExtension [7] IMPLICIT SEQUENCE OF
+ Extension{{MCMExtSet}}
+ } OPTIONAL
+ }
+
+
+MCMNoNewMsgArg ::= SEQUENCE
+ {
+ servedUserNr PartyNumber,
+ specificMessageType MessageType,
+ msgCentreId MsgCentreId OPTIONAL,
+ argumentExt CHOICE {
+ extension [3] IMPLICIT Extension{{MCMExtSet}},
+ multipleExtension [4] IMPLICIT SEQUENCE OF
+ Extension{{MCMExtSet}}
+ } OPTIONAL
+ }
+
+MCMUpdateArg ::= SEQUENCE
+ {
+ partyInfo PartyInfo,
+ messageType MessageType,
+ updateInfo UpdateInfo,
+ moreInfoFollows BOOLEAN DEFAULT FALSE,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+
+MCMUpdateReqArg ::= SEQUENCE
+ {
+ servedUserNr PartyNumber,
+ specificMessageType MessageType,
+ msgCentreId MsgCentreId OPTIONAL,
+ argumentExt CHOICE {
+ extension [3] IMPLICIT Extension{{MCMExtSet}},
+ multipleExtension [4] IMPLICIT SEQUENCE OF
+ Extension{{MCMExtSet}}
+ } OPTIONAL
+ }
+
+
+MCMUpdateReqRes ::= SEQUENCE SIZE (1..10) OF MCMUpdateReqResElt
+
+
+MCMUpdateReqResElt ::= SEQUENCE
+ {
+ specificMessageType MessageType,
+ msgCentreId MsgCentreId OPTIONAL,
+ nrOfMessages [3] IMPLICIT NrOfMessages OPTIONAL,
+ originatingNr [4] PartyNumber OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ priority [5] IMPLICIT INTEGER (0..9) OPTIONAL,
+ argumentExt CHOICE {
+ extension [6] IMPLICIT Extension{{MCMExtSet}},
+ multipleExtension [7] IMPLICIT SEQUENCE OF
+ Extension{{MCMExtSet}}
+ } OPTIONAL
+ }
+
+
+MCMMode ::= INTEGER
+ {
+ compressed (0),
+ complete (1)
+ }
+
+MCMDummyRes ::= MCMExtensions
+
+
+PartyInfo ::= SEQUENCE
+ {
+ servedUserNr PartyNumber,
+ messageCentreID MsgCentreId
+ }
+
+UpdateInfo ::= CHOICE
+ {
+ newMsgInfoOnly [1] MessageInfo,
+ retrievedMsgInfoOnly [2] MessageInfo,
+ allMsgInfo AllMsgInfo
+ }
+
+
+AllMsgInfo ::= SEQUENCE
+ {
+ newMsgInfo MessageInfo,
+ retrievedMsgInfo MessageInfo
+ }
+
+
+MessageInfo ::= CHOICE
+ {
+ completeInfo [1] IMPLICIT CompleteInfo,
+ compressedInfo [2] IMPLICIT CompressedInfo,
+ noMsgsOfMsgType NULL
+ }
+
+
+CompleteInfo ::= SEQUENCE OF AddressHeader
+
+
+AddressHeader ::= SEQUENCE
+ {
+ originatorNr PartyNumber,
+ timeStamp [1] IMPLICIT TimeStamp OPTIONAL,
+ priority [2] IMPLICIT Priority OPTIONAL
+ }
+
+
+CompressedInfo ::= SEQUENCE
+ {
+ nrOfMessages NrOfMessages,
+ lastTimeStamp TimeStamp OPTIONAL,
+ highestPriority Priority OPTIONAL
+ }
+
+
+NrOfMessages ::= INTEGER (0..65535)
+
+
+Priority ::= INTEGER (0..9) -- the value 0 means the highest priority
+ -- and 9 the lowest
+
+MsgCentreId ::= CHOICE
+ {
+ integer [0] IMPLICIT INTEGER (0..65535),
+ partyNumber [1] PartyNumber,
+ numericString [2] IMPLICIT NumericString (SIZE(1..10))
+ }
+
+TimeStamp ::= GeneralizedTime (SIZE (12..19))
+ -- a VisibleString containing:
+ -- - the (local) date in 8 digits (YYYYMMDD),
+ -- - followed by (local) time of day in 4 or 6 digits (HHMM[SS]),
+ -- - optionally followed by the letter "Z" or
+ -- by a local time differential in 5 digits ("+"HHMM or "-"HHMM);
+ -- this date and time representation follows ISO 8601
+ -- Examples: 1) 19970621194530, meaning 21 June 1997, 19:45:30;
+ -- 2) 19970621194530Z, meaning the same as 1);
+ -- 3) 19970621194530-0500, meaning the same as 1),
+ -- 5 hours retarded in relation to UTC time
+
+
+MessageType ::= ENUMERATED
+ {
+ -- Note: for the following message type see also Annex D.4
+ allServices (0),
+ -- Note: for the following message types see also Annex D.1
+ -- For compatibility among vendors, speech is recommended for
+ -- voice mail indications
+ speech (1),
+ unrestrictedDigitalInformation (2),
+ audio3100Hz (3),
+ telephony (32),
+ teletex (33),
+ telefaxGroup4Class1 (34),
+ videotextSyntaxBased (35),
+ videotelephony (36),
+ telefaxGroup2-3 (37),
+ reservedNotUsed1 (38),
+ reservedNotUsed2 (39),
+ reservedNotUsed3 (40),
+ reservedNotUsed4 (41),
+ reservedNotUsed5 (42),
+ -- Note: for the following message types see also annex D.2
+ email (51),
+ video (52),
+ fileTransfer (53),
+ shortMessageService (54),
+ -- Note: for the following message types see also annex D.3
+ speechAndVideo (55),
+ speechAndFax (56),
+ speechAndEmail (57),
+ videoAndFax (58),
+ videoAndEmail (59),
+ faxAndEmail (60),
+ speechVideoAndFax (61),
+ speechVideoAndEmail (62),
+ speechFaxAndEmail (63),
+ videoFaxAndEmail (64),
+ speechVideoFaxAndEmail (65),
+ -- Note: for the following message types see also annex D.4
+ multimediaUnknown (66),
+ serviceUnknown (67),
+ futureReserve1 (68),
+ futureReserve2 (69),
+ futureReserve3 (70),
+ futureReserve4 (71),
+ futureReserve5 (72),
+ futureReserve6 (73),
+ futureReserve7 (74),
+ futureReserve8 (75)
+ }
+
+MCMExtensions ::= CHOICE
+ {
+ none NULL,
+ extension [1] IMPLICIT Extension {{MCMExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension {{ MCMExtSet }}
+ }
+
+mCMModeNotProvided ERROR ::= {
+ CODE local:1037}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{MCMExtSet}}
+ CODE local:1008}
+
+MCMExtSet EXTENSION ::= {...}
+
+
+END -- of SS-MCM-Operations-asn1-97
+
diff --git a/epan/dissectors/asn1/qsig/QSIG-MCR.asn b/epan/dissectors/asn1/qsig/QSIG-MCR.asn
new file mode 100644
index 0000000000..26944ac2c7
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-MCR.asn
@@ -0,0 +1,169 @@
+-- QSIG-MCR.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-344, (June 2003)
+-- http://www.ecma-international.org/publications/standards/Ecma-344.htm
+--
+
+SS-MCR-Operations-asn97
+{iso (1) identified-organization (3) icd-ecma (12) standard (0)
+ qsig-make-call-request (344) make-call-request-operations (0)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+OPERATION,
+ERROR
+FROM Remote-Operations-Information-Objects
+{ joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1 (0) }
+
+EXTENSION,
+Extension {}
+FROM Manufacturer-specific-service-extension-class-asn1-97
+{ iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+
+Name
+FROM Name-Operations-asn1-97
+{ iso (1) standard (0) pss1-name (13868) name-operations-asn1-97 (1) }
+
+BasicService
+FROM Call-Diversion-Operations-asn1-97
+{ iso (1) standard (0) pss1-call-diversion (13873)
+ call-diversion-operations-asn1-97 (1) }
+
+basicServiceNotProvided,
+supplementaryServiceInteractionNotAllowed,
+userNotSubscribed
+FROM General-Error-List
+{itu-t (0) recommendation (0) q (17) 950 general-error-list (1)}
+
+PresentedAddressUnscreened
+FROM Addressing-Data-Elements-asn1-97
+{ iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) }
+
+CallIdentity, establishmentFailure
+FROM Path-Replacement-Operations-asn1-97
+{iso (1) standard (0) pss1-path-replacement (13874) pr-operations-asn1-97(1)}
+;
+
+Make-Call-Request-Operations OPERATION::= {
+ mCRequest | mCAlerting | mCInform }
+
+mCRequest OPERATION ::= {
+ ARGUMENT MCRequestArg
+ RESULT MCRequestResult
+ ERRORS {userNotSubscribed|
+ basicServiceNotProvided|
+ supplementaryServiceInteractionNotAllowed|
+ invalidDestinationNumber|
+ invalidCooperationNumber|
+ mCRequestNotAllowed|
+ mCExecutionNotAllowed|
+ mCDestUserBusy|
+ mCCoopUserBusy|
+ mCCoopUserRejected|
+ establishmentFailure|
+ unspecified}
+ CODE local: 112
+ }
+
+mCInform OPERATION ::= {
+ ARGUMENT MCInformArg
+ RETURN RESULT FALSE
+ ERRORS {userNotSubscribed|
+ basicServiceNotProvided|
+ supplementaryServiceInteractionNotAllowed|
+ invalidDestinationNumber|
+ mCExecutionNotAllowed|
+ mCDestUserBusy|
+ unspecified}
+ ALWAYS RESPONDS FALSE
+ CODE local: 113
+ }
+
+mCAlerting OPERATION ::= {
+ ARGUMENT MCAlertingArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 114
+ }
+
+MCRequestArg ::= SEQUENCE
+ {
+ callType CallType,
+ retainOrigCall BOOLEAN DEFAULT TRUE,
+ destinationAddress PresentedAddressUnscreened,
+ requestingAddress [0] PresentedAddressUnscreened OPTIONAL,
+ cooperatingAddress [1] PresentedAddressUnscreened OPTIONAL,
+ correlation Correlation,
+ extensions MCRExtensions OPTIONAL,
+ ...
+ }
+
+MCRequestResult ::= SEQUENCE
+ {
+ extensions MCRExtensions OPTIONAL,
+ ...
+ }
+
+MCInformArg ::= SEQUENCE
+ {
+ requestingAddress [0] PresentedAddressUnscreened OPTIONAL,
+ cooperatingAddress [1] PresentedAddressUnscreened OPTIONAL,
+ correlation Correlation,
+ extensions MCRExtensions OPTIONAL,
+ ...
+ }
+
+MCAlertingArg ::= SEQUENCE
+ {
+ correlation Correlation,
+ extensions MCRExtensions OPTIONAL,
+ ...
+ }
+CallType ::= CHOICE
+ {
+ basicService BasicService,
+ cisc NULL
+ }
+
+Correlation ::= SEQUENCE
+ {
+ correlationData CallIdentity,
+ correlationReason CorrelationReason OPTIONAL
+ }
+CorrelationReason ::= INTEGER
+ {
+ unknown (0),
+ mCACommunication (1),
+ cTIApplication (2)
+ } (0..255)
+
+MCRExtensions ::= CHOICE
+ {
+ none NULL,
+ single [0] IMPLICIT Extension
+ { { MakeCallRequestExtension } } ,
+ multiple [1] IMPLICIT SEQUENCE OF Extension
+ { { MakeCallRequestExtension } }
+ }
+
+MakeCallRequestExtension EXTENSION::= {...}
+
+invalidDestinationNumber ERROR ::= {CODE local : 1030}
+invalidCooperationNumber ERROR ::= {CODE local : 1031}
+mCRequestNotAllowed ERROR ::= {CODE local : 1032}
+mCExecutionNotAllowed ERROR ::= {CODE local : 1033}
+mCDestUserBusy ERROR ::= {CODE local : 1034}
+mCCoopUserBusy ERROR ::= {CODE local : 1035}
+mCCoopUserRejected ERROR ::= {CODE local : 1036}
+unspecified ERROR ::= {PARAMETER Extension
+ { { MakeCallRequestExtension } }
+ CODE local : 1008
+ }
+
+END -- of SS-MCR-Operations
diff --git a/epan/dissectors/asn1/qsig/QSIG-MID.asn b/epan/dissectors/asn1/qsig/QSIG-MID.asn
new file mode 100644
index 0000000000..8e5bbe0701
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-MID.asn
@@ -0,0 +1,129 @@
+-- QSIG-MID.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-347, (June 2003)
+-- http://www.ecma-international.org/publications/standards/Ecma-347.htm
+--
+
+SS-MID-Operations-asn1-97
+{iso (1) identified-organization (3) icd-ecma (12) standard (0)
+qsig-mailbox-identification (347) mailbox-identification-operations-asn1-97 (2)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM
+ Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations (4) informationObjects (5)
+ version1 (0)}
+
+ EXTENSION, Extension{} FROM
+ Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard pss1-generic-procedures (11582) msi-class-asn1-97
+ (11)}
+
+ basicServiceNotProvided, userNotSubscribed, invalidServedUserNr
+ FROM General-Error-List
+ {itu-t (0) recommendation (0) q (17) 950 general-error-list (1)}
+
+ PresentedAddressUnscreened FROM
+ Addressing-Data-Elements-asn1-97
+ {iso standard pss1-generic-procedures (11582) addressing-data-elements-asn1-97 (20)}
+
+ Name FROM
+ Name-Operations-asn1-97
+ {iso standard pss1-name (13868) name-operations-asn1-97 (1)}
+
+ MessageType, MsgCentreId FROM
+ SS-MCM-Operations-asn1-97
+ {iso (1) identified-organization (3) icd-ecma (12) standard (0)
+ qsig-message-centre-monitoring (347)
+ message-centre-monitoring-operations-asn1-97 (1)}
+ ;
+
+
+MID-Operations OPERATION ::= {mIDMailboxAuth |
+ mIDMailboxID}
+
+mIDMailboxAuth OPERATION ::= {
+ ARGUMENT MIDMailboxAuthArg
+ RESULT MIDDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ invalidMailbox |
+ authorizationFailed |
+ unspecified}
+ CODE local:119}
+
+mIDMailboxID OPERATION ::= {
+ ARGUMENT MIDMailboxIDArg
+ RESULT MIDDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ invalidMailbox |
+ unspecified}
+ CODE local:120}
+
+
+MIDMailboxAuthArg ::= SEQUENCE
+ {
+
+ partyInfo PartyInfo,
+ servedUserName Name OPTIONAL,
+ mailBox [8]String OPTIONAL,
+ password String,
+ extensions MIDExtensions OPTIONAL,
+ ...
+ }
+
+
+MIDMailboxIDArg ::= SEQUENCE
+ {
+
+ partyInfo PartyInfo,
+ servedUserName Name OPTIONAL,
+ mailBox String,
+ extensions MIDExtensions OPTIONAL,
+ ...
+ }
+
+
+MIDDummyRes ::= MIDExtensions
+
+PartyInfo ::= SEQUENCE
+ {
+ servedUserNr PresentedAddressUnscreened,
+ messageType MessageType OPTIONAL,
+ messageCentreID MsgCentreId
+ }
+
+String ::= CHOICE
+ {
+ stringBmp BMPString,
+ stringUtf8 UTF8String
+ }
+
+
+MIDExtensions ::= CHOICE
+ {
+ none NULL,
+ extension [1] IMPLICIT Extension {{MIDExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension {{ MIDExtSet }}
+ }
+
+invalidMailbox ERROR ::= {
+ CODE local:1039}
+
+
+authorizationFailed ERROR ::= {
+ CODE local:1040}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{MIDExtSet}}
+ CODE local:1008}
+
+MIDExtSet EXTENSION ::= {...}
+
+END -- of SS-MID-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-NA.asn b/epan/dissectors/asn1/qsig/QSIG-NA.asn
new file mode 100644
index 0000000000..7b03b8b41f
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-NA.asn
@@ -0,0 +1,135 @@
+-- QSIG-NA.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-164, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-164.htm
+--
+
+Name-Operations-asn1-97
+ { iso ( 1) standard ( 0) pss1-name (13868) name-operations-asn1-97( 1) }
+
+
+DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+
+OPERATION FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso standard pss1-generic-procedures (11582) msi-class-asn1-97 ( 11) };
+
+Name-Operations OPERATION ::= { callingName | calledName | connectedName | busyName }
+
+callingName OPERATION ::= {
+ ARGUMENT NameArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 0
+ }
+
+calledName OPERATION ::= {
+ ARGUMENT NameArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 1
+ }
+
+connectedName OPERATION ::= {
+ ARGUMENT NameArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 2
+ }
+
+busyName OPERATION ::= {
+ ARGUMENT NameArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 3
+ }
+
+NameArg ::= CHOICE {
+ name Name,
+ nameSequence SEQUENCE {
+ name Name,
+ extension NameExtension OPTIONAL
+ }
+ }
+
+NameExtension ::= CHOICE {
+ single [5] IMPLICIT Extension{{NameExtensionSet}},
+ multiple [6] IMPLICIT SEQUENCE OF Extension{{NameExtensionSet}}
+ }
+
+NameExtensionSet EXTENSION ::= {...}
+
+Name ::= CHOICE
+ { namePresentationAllowed NamePresentationAllowed,
+ namePresentationRestricted NamePresentationRestricted,
+ nameNotAvailable NameNotAvailable }
+
+NamePresentationAllowed ::= CHOICE
+ { namePresentationAllowedSimple [0] IMPLICIT NameData,
+ namePresentationAllowedExtended [1] IMPLICIT NameSet }
+ -- iso8859-1 is implied in namePresentationAllowedSimple.
+
+NamePresentationRestricted ::= CHOICE
+ { namePresentationRestrictedSimple [2] IMPLICIT NameData,
+ namePresentationRestrictedExtended [3] IMPLICIT NameSet,
+ namePresentationRestrictedNull [7] IMPLICIT NULL}
+ -- iso8859-1 is implied in namePresentationRestrictedSimple.
+ -- namePresentationRestrictedNull shall only be used in the
+ -- case of interworking where the other network provides an
+ -- indication that the name is restricted without the name itself.
+
+NameNotAvailable ::= [4] IMPLICIT NULL
+
+NameData ::= OCTET STRING (SIZE (1..50))
+ -- The maximum allowed size of the name field is 50 octets.
+ -- The minimum required size of the name field is 1 octet.
+
+NameSet ::= SEQUENCE
+ { nameData NameData,
+ characterSet CharacterSet OPTIONAL }
+ -- If characterSet is not included, iso8859-1 is implied.
+
+CharacterSet ::= INTEGER
+ { unknown (0),
+ iso8859-1 (1),
+ -- The character set "iso8859-1" is specified in International
+ -- Standard ISO 8859-1
+ -- The value 2 was assigned for CCITT Rec. T.61
+ -- which has been withdrawn by ITU-T.
+ iso8859-2 (3),
+ -- The character set "iso8859-2" is specified in International
+ -- Standard ISO 8859-2
+ iso8859-3 (4),
+ --The character set "iso8859-3" is specified in International
+ -- Standard ISO 8859-3
+ iso8859-4 (5),
+ --The character set "iso8859-4" is specified in International
+ -- Standard ISO 8859-4
+ iso8859-5 (6),
+ --The character set "iso8859-5" is specified in International
+ -- Standard ISO 8859-5
+ iso8859-7 (7),
+ --The character set "iso8859-7" is specified in International
+ -- Standard ISO 8859-7
+ iso10646-BmpString (8),
+ -- The character set "iso10646-BmpString" is specified in International
+ -- Standard ISO 10646-1 and in ITU-T Rec. X.680
+ -- with this character set, each character occupies 2 octets in NameData
+ iso10646-utf-8String (9)
+ -- The character set "iso10646-utf-8String" is specified in International
+ -- Standard ISO 10646-1
+ -- UTF-8-String is defined in Annex R of ISO 10646-1
+ -- with this character set, each character occupies a variable
+ -- number of octets (1...6) in NameData
+ } (0..255)
+ -- Other character sets might be added in further editions of
+ -- this Standard
+
+END -- of Name-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-PR.asn b/epan/dissectors/asn1/qsig/QSIG-PR.asn
new file mode 100644
index 0000000000..7274ea1b49
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-PR.asn
@@ -0,0 +1,169 @@
+-- QSIG-PR.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-176, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-176.htm
+--
+
+Path-Replacement-Operations-asn1-97
+ {iso standard pss1-path-replacement (13874) pr-operations-asn1-97(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard
+ pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard(0) pss1-generic-procedures(11582)
+ addressing-data-elements-asn1-97 (20)};
+
+Path-Replacement-Operations OPERATION ::={
+pathReplacePropose | pathReplaceSetup | pathReplaceRetain | pathReplaceInvite}
+
+pathReplaceInvite OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ERRORS {
+ notAvailable |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ criteriaPermanentlyUnachievable |
+ criteriaTemporarilyUnachievable |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ establishmentFailure |
+ collision |
+ unspecified }
+ ALWAYS RESPONDS FALSE
+ CODE local: 86 }
+
+pathReplacePropose OPERATION ::= {
+ ARGUMENT PRProposeArg
+ RETURN RESULT FALSE
+ ERRORS {
+ notAvailable |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ criteriaPermanentlyUnachievable |
+ criteriaTemporarilyUnachievable |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ establishmentFailure |
+ collision |
+ unspecified }
+ ALWAYS RESPONDS FALSE
+ CODE local: 4 }
+
+pathReplaceSetup OPERATION ::= {
+ ARGUMENT PRSetupArg
+ RESULT DummyResult
+ ERRORS {
+ criteriaPermanentlyUnachievable |
+ criteriaTemporarilyUnachievable |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ temporarilyUnavailable |
+ unspecified }
+ CODE local: 5 }
+
+pathReplaceRetain OPERATION ::= {
+ ARGUMENT PRRetainArg
+ RESULT DummyResult
+ ERRORS {
+ notAvailable |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ criteriaPermanentlyUnachievable |
+ criteriaTemporarilyUnachievable |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ establishmentFailure |
+ unspecified }
+ CODE local: 6 }
+
+PRProposeArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ rerouteingNumber PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ } OPTIONAL
+ }
+
+PRSetupArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ } OPTIONAL
+ }
+
+PRRetainArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ rerouteingNumber PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ } OPTIONAL
+ }
+
+DummyResult ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ }
+
+DummyArg ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ }
+
+PRExtSet EXTENSION ::= {...}
+
+CallIdentity ::= NumericString (SIZE(1..4))
+
+temporarilyUnavailable ERROR ::= {CODE local: 1000}
+ -- used when the operation is temporarily not available and none of
+ -- the other errors applies - a later attempt could be successful
+
+collision ERROR ::= {CODE local: 1001}
+ -- used when a pathReplacePropose invoke APDU is received by a PINX
+ -- which has sent a pathReplacePropose invoke APDU
+
+criteriaPermanentlyUnachievable ERROR ::= {CODE local: 1002}
+ -- used when the special criteria requested cannot be achieved
+ -- because the necessary resources are permanently unavailable
+
+criteriaTemporarilyUnachievable ERROR ::= {CODE local: 1003}
+ -- used when the special criteria requested cannot be achieved
+ -- because the necessary resources are temporarily unavailable
+ -- a later attempt could be successful
+
+invalidRerouteingNumber ERROR ::= {CODE local: 1004}
+ -- used when the establishment of the new connection fails because the
+ -- Called party number information element is not a valid number for
+ -- routeing the new connection to
+
+unrecognizedCallIdentity ERROR ::= {CODE local: 1005}
+ -- used when establishment of the new connection fails because it could
+ -- not be associated with the old connection at the Requesting PINX
+
+establishmentFailure ERROR ::= {CODE local: 1006}
+ -- used when establishment of the new connection fails and no other error
+ -- applies
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{PRExtSet}}
+ CODE local: 1008}
+ -- used to convey a manufacturer specific error, possibly with other information
+ -- of Path-Replacement-Operations
+
+END -- of Path-Replacement-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-PUMCH.asn b/epan/dissectors/asn1/qsig/QSIG-PUMCH.asn
new file mode 100644
index 0000000000..dfe669752a
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-PUMCH.asn
@@ -0,0 +1,135 @@
+-- QSIG-PUMCH.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-284, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-284.htm
+--
+
+Private-User-Mobility-Call-Handling-Operations-asn1-97
+ { iso (1) standard (0) pss1-pum-call-handling (17878) pum-call-handling-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t remote-operations (4) informationObjects (5) version1 (0) }
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0)
+ pss1-generic-procedures (11582) msi-class-asn1-97(11) }
+ PSS1InformationElement FROM PSS1-generic-parameters-definition-asn1-97
+ { iso (1) standard (0)
+ pss1-generic-procedures (11582) pss1-generic-parameters-asn1-97 (17) }
+ Name FROM Name-Operations-asn1-97
+ { iso (1) standard (0)
+ pss1-name (13868) name-operations-asn1-97 (1) }
+ basicServiceNotProvided, invalidServedUserNr, notAvailable FROM
+ General-Error-List
+ { ccitt recommendation q 950 general-error-list (1) }
+ Address, PartyNumber, PartySubaddress, PresentedNumberScreened FROM
+ Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) };
+
+Private-User-Mobility-Call-Handling-Operations OPERATION ::= { pumiEnquiry | pumiDivert | pumiInform |
+pumoCall }
+
+-- Operations for ANF-PUMI: --
+pumiEnquiry OPERATION ::= {
+ -- Sent from the PUMI-detect PINX to the Home PINX.
+ ARGUMENT EnquiryArg
+ RESULT EnquiryRes
+ ERRORS { invalidServedUserNr | locationNotKnown |
+ notAvailable | basicServiceNotProvided | unspecified }
+ CODE local: 93}
+pumiDivert OPERATION ::= {
+ -- Sent from the PUMI-detect PINX to the Rerouteing PINX.
+ ARGUMENT DivertArg
+ RESULT DummyRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 94}
+
+pumiInform OPERATION ::= {
+ -- Sent from the Rerouteing PINX to the Visitor PINX.
+ ARGUMENT InformArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 95}
+EnquiryArg ::= SEQUENCE { pisnNumber PartyNumber,
+ -- The PISN number of the PUM user
+ qSIGInfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility,
+ -- Low layer compatibility can be embedded in the qSIGInfoElement
+ -- in accordance with clause 6.5.2.1.
+ argExtension PumiExtension OPTIONAL }
+DivertArg ::= SEQUENCE { hostingAddr PartyNumber,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ callingNumber PresentedNumberScreened,
+ pumIdentity PumIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the PUM user.
+ qSIGInfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility,
+ -- Low layer compatibility, and Progress indicator
+ -- can be embedded in the qSIGInfoElement in accordance with clause 6.5.2.1.
+ callingUserSub [ 1 ] PartySubaddress OPTIONAL,
+ callingUserName [ 2 ] Name OPTIONAL,
+ pumUserSub [ 3 ] PartySubaddress OPTIONAL,
+ argExtension PumiExtension OPTIONAL }
+InformArg ::= SEQUENCE { pumIdentity PumIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the PUM user.
+ argExtension PumiExtension OPTIONAL }
+EnquiryRes ::= CHOICE { currLocation [ 1 ] IMPLICIT CurrLocation,
+ cfuActivated [ 2 ] IMPLICIT CfuActivated }
+CurrLocation ::= SEQUENCE { hostingAddr PartyNumber,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ pumIdentity PumIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the PUM user.
+ argExtension PumiExtension OPTIONAL }
+CfuActivated ::= SEQUENCE { divToAddress Address,
+ divOptions SubscriptionOption,
+ pumName [ 1 ] Name OPTIONAL,
+ argExtension PumiExtension OPTIONAL }
+SubscriptionOption ::=ENUMERATED { noNotification (0),
+ notificationWithoutDivertedToNr (1),
+ notificationWithDivertedToNr (2) }
+
+DummyRes ::= CHOICE { null NULL,
+ extension [ 1 ] IMPLICIT Extension{{PUMCHExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{PUMCHExtSet}} }
+PumiExtension ::= CHOICE { extension [ 4 ] IMPLICIT Extension{{PUMCHExtSet}},
+ sequOfExtn [ 5 ] IMPLICIT SEQUENCE OF
+ Extension{{PUMCHExtSet}} }
+PumIdentity ::= CHOICE { pisnNumber PartyNumber,
+ alternativeId [ 10 ] IMPLICIT AlternativeId,
+ both [ 11 ] IMPLICIT SEQUENCE
+ { pisnNumber PartyNumber,
+ alternativeId AlternativeId } }
+AlternativeId ::= OCTET STRING(SIZE(1..20))
+-- Operation for ANF-PUMO --
+pumoCall OPERATION ::= {
+ ARGUMENT PumoArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 96}
+PumoArg ::= SEQUENCE { destinationNumber [0] PartyNumber OPTIONAL,
+ pumIdentity [1] PumIdentity OPTIONAL,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the PUM user.
+ sendingComplete [2] IMPLICIT NULL OPTIONAL,
+ extension CHOICE
+ {single [3] IMPLICIT Extension{{PUMCHExtSet}},
+ multiple [4] IMPLICIT SEQUENCE OF
+ Extension{{PUMCHExtSet}} }
+ OPTIONAL }
+PUMCHExtSet EXTENSION ::= {...}
+
+locationNotKnown ERROR ::= { CODE local: 1015}
+unspecified ERROR ::= { PARAMETER Extension{{PUMCHExtSet}}
+ CODE local: 1008}
+
+END -- of Private-User-Mobility-Call-Handling-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-PUMR.asn b/epan/dissectors/asn1/qsig/QSIG-PUMR.asn
new file mode 100644
index 0000000000..6134f436a1
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-PUMR.asn
@@ -0,0 +1,205 @@
+-- QSIG-PUMR.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-282, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-282.htm
+--
+
+PUM-Registration-Operations-asn1-97
+ { iso (1) standard (0) pss1-pum-registration (17876) pum-registration-operations-asn1-97 (1) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+ notAvailable, invalidServedUserNr, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ { ccitt recommendation q 950 general-error-list (1) }
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) }
+ BasicService FROM Call-Diversion-Operations-asn1-97
+ { iso (1) standard (0) pss1-call-diversion (13873)
+ call-diversion-operations-asn1-97 (1) }
+ pisnEnquiry FROM WTM-Location-Registration-Operations-asn1-97
+ { iso (1) standard (0) pss1-location-registration (15429)
+ wtmlr-operations-asn1-97 (1) };
+
+PUM-Registration-Operations OPERATION ::= { pumRegistr | pumDelReg | pumDe-reg |
+ pumInterrog | pisnEnquiry }
+
+pumRegistr OPERATION ::= {
+ -- Registration (sent from the Visitor PINX to the Home PINX or
+ -- from a Remote PINX to the Visitor PINX)
+ ARGUMENT PumRegistrArg
+ RESULT PumRegistrRes
+ ERRORS { invalidServedUserNr | notAuthorized | unspecified |
+ notAvailable | temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ pumUserNotSubscribedToThisServiceOpt |
+ pumUserFailedAuthentication | hostingAddrInvalid }
+ CODE local: 89}
+
+pumDelReg OPERATION ::= {
+ -- Delete Registration (sent from the Home PINX to the Previous Visitor PINX)
+ ARGUMENT PumDelRegArg
+ RESULT DummyRes
+ ERRORS { notAvailable | temporarilyUnavailable | unspecified |
+ supplementaryServiceInteractionNotAllowed }
+ CODE local: 90}
+pumDe-reg OPERATION ::= {
+ -- De-registration (sent from the Visitor PINX or Remote PINX to the Home PINX)
+ ARGUMENT PumDe-regArg
+ RESULT DummyRes
+ ERRORS { invalidServedUserNr | notAuthorized | unspecified |
+ supplementaryServiceInteractionNotAllowed |
+ pumUserNotSubscribedToThisServiceOpt |
+ pumUserFailedAuthentication | hostingAddrInvalid |
+ pumUserNotRegistered }
+ CODE local: 91}
+pumInterrog OPERATION ::= {
+ -- Interrogation (sent from the Visitor PINX or Remote PINX to the Home PINX and
+ -- from the Home PINX to the Visitor PINX)
+ ARGUMENT PumInterrogArg
+ RESULT PumInterrogRes
+ ERRORS { invalidServedUserNr | notAuthorized | unspecified |
+ supplementaryServiceInteractionNotAllowed |
+ pumUserFailedAuthentication | hostingAddrInvalid |
+ pumUserNotRegistered }
+ CODE local: 92}
+PumRegistrArg ::= SEQUENCE { pumUserId CHOICE { pumNumber PartyNumber,
+ -- The PISN number of the PUM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId },
+ basicService BasicService,
+ -- specific basic service or all basic services,
+ hostingAddr PartyNumber,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ activatingUserAddr [0] PartyNumber OPTIONAL,
+ -- The PISN number of the activating user,
+ -- always a Complete Number.
+ -- Mandatory if sent from a Remote PINX, else not included.
+ serviceOption ServiceOption DEFAULT inCallRegistration,
+ -- Type of registration (InCall, OutCall or AllCall)
+ sessionParams SessionParams OPTIONAL,
+ -- Duration of session, Number of outgoing calls
+ userPin CHOICE { pumUserPin [6] IMPLICIT UserPin,
+ activatingUserPin [7] IMPLICIT UserPin } OPTIONAL,
+ argExtension PumrExtension OPTIONAL }
+
+PumRegistrRes ::= SEQUENCE { pumNumber PartyNumber,
+ serviceOption ServiceOption OPTIONAL,
+ -- Type of registration (InCall, OutCall or AllCall)
+ sessionParams SessionParams OPTIONAL,
+ -- Duration of session, Number of outgoing calls
+ argExtension PumrExtension OPTIONAL }
+DummyRes ::= CHOICE { null NULL,
+ extension [ 1 ] IMPLICIT Extension{{PUMRExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{PUMRExtSet}} }
+PumDelRegArg ::= SEQUENCE { pumUserId CHOICE { pumNumber PartyNumber,
+ -- The PISN number of the PUM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId },
+ basicService BasicService,
+ -- specific basic service or all basic services,
+ hostingAddr PartyNumber,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ serviceOption ServiceOption,
+ -- Type of registration session (InCall, OutCall or AllCall)
+ argExtension PumrExtension OPTIONAL }
+PumDe-regArg ::= SEQUENCE { pumUserId CHOICE { pumNumber PartyNumber,
+ -- The PISN number of the PUM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId },
+ basicService BasicService,
+ -- specific basic service or all basic services,
+ hostingAddr [0] PartyNumber OPTIONAL,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ -- Not included if serviceOption indicates 'inCallRegistration',
+ -- optional if serviceOption indicates 'outCallRegistration'
+ -- or 'allCallRegistration'.
+ activatingUserAddr [1] PartyNumber OPTIONAL,
+ -- The PISN number of the activating user,
+ -- always a Complete Number.
+ -- Mandatory if sent from a Remote PINX, else not included.
+ serviceOption ServiceOption DEFAULT inCallRegistration,
+ -- Type of registration session (InCall, OutCall or AllCall)
+ -- If serviceOption indicates 'outCallRegistration' and
+ -- hostingAddr is omitted, the de-registration applies to
+ -- all OutCall registrations of this PUM user.
+ -- If serviceOption indicates 'allCallRegistration' and
+ -- hostingAddr is omitted, the de-registration applies to the
+ -- AllCall and all OutCall registrations of this PUM user.
+ userPin CHOICE { pumUserPin [6] IMPLICIT UserPin,
+ activatingUserPin [7] IMPLICIT UserPin } OPTIONAL,
+ argExtension PumrExtension OPTIONAL }
+
+PumInterrogArg ::= SEQUENCE { pumUserId CHOICE { pumNumber PartyNumber,
+ -- The PISN number of the PUM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId },
+ basicService BasicService,
+ -- specific basic service or all basic services,
+ hostingAddr [0] PartyNumber OPTIONAL,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ -- Omission indicates 'all hosting addresses'.
+ activatingUserAddr [1] PartyNumber OPTIONAL,
+ -- The PISN number of the activating user,
+ -- always a Complete Number.
+ serviceOption [2] ServiceOption OPTIONAL,
+ homeInfoOnly BOOLEAN DEFAULT TRUE,
+ -- True = Only Home PINX information (default)
+ -- False = Complete information
+ userPin CHOICE { pumUserPin [6] IMPLICIT UserPin,
+ activatingUserPin [7] IMPLICIT UserPin } OPTIONAL,
+ argExtension PumrExtension OPTIONAL }
+PumInterrogRes ::= SET SIZE(1..8) OF
+ SEQUENCE { basicService [0] IMPLICIT BasicService OPTIONAL,
+ -- specific basic service or all basic services,
+ -- (Home PINX information)
+ hostingAddr [1] PartyNumber OPTIONAL,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ -- (Home PINX information)
+ serviceOption [2] IMPLICIT ServiceOption OPTIONAL,
+ -- Type of registration session
+ -- (InCall, OutCall or AllCall)
+ -- (Home PINX information)
+ interrogParams SessionParams OPTIONAL,
+ -- Time left in registration session,
+ -- Number of outgoing calls left
+ -- (Visitor PINX information)
+ argExtension PumrExtension OPTIONAL }
+AlternativeId ::= OCTET STRING (SIZE(1..20))
+ServiceOption ::= ENUMERATED { inCallRegistration (0),
+ outCallRegistration (1),
+ allCallRegistration (2) }
+SessionParams ::= SEQUENCE { durationOfSession [ 1 ] IMPLICIT INTEGER OPTIONAL,
+ -- Duration of session in seconds,
+ -- default if omitted: duration of session unlimited.
+ numberOfOutgCalls [ 2 ] IMPLICIT INTEGER OPTIONAL }
+ -- Default if omitted: number of outgoing calls unlimited.
+UserPin ::= OCTET STRING (SIZE(1..20))
+
+PumrExtension ::= CHOICE {
+ extension [ 4 ] IMPLICIT Extension {{PUMRExtSet}},
+ sequOfExtn [ 5 ] IMPLICIT SEQUENCE OF
+ Extension{{PUMRExtSet}} }
+PUMRExtSet EXTENSION ::= {...}unspecified ERROR ::= { PARAMETER
+ Extension{{PUMRExtSet}}
+ CODE local: 1008}
+notAuthorized ERROR ::= { CODE local: 1007}
+temporarilyUnavailable ERROR ::= { CODE local: 1000}
+pumUserNotSubscribedToThisServiceOpt ERROR ::= { CODE local: 1019}
+pumUserFailedAuthentication ERROR ::= { CODE local: 1020}
+hostingAddrInvalid ERROR ::= { CODE local: 1021}
+pumUserNotRegistered ERROR ::= { CODE local: 1022}
+END -- of PUM-Registration-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-RE.asn b/epan/dissectors/asn1/qsig/QSIG-RE.asn
new file mode 100644
index 0000000000..64df0fd5fc
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-RE.asn
@@ -0,0 +1,62 @@
+-- QSIG-RE.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-214, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-214.htm
+--
+
+Recall-Operations-asn1-97
+ { iso (1) standard (0) pss1-recall (15052) recall-operations-asn1-97 (1) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1(0) }
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+
+ Name FROM Name-Operations-asn1-97
+ { iso (1) standard (0) pss1-name (13868) name-operations-asn1-97 (1) }
+
+ PresentedNumberScreened, PartySubaddress FROM Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) addressing-data-elements-asn1-97 (20) };
+
+Recall-Operations OPERATION ::= { recallAlerting | recallAnswered }
+
+recallAlerting OPERATION ::= {
+ -- Sent from the Served User PINX to the Primary PINX
+ ARGUMENT ReAlertingArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 57}
+
+recallAnswered OPERATION ::= {
+ -- Sent from the Served User PINX to the Primary PINX
+ ARGUMENT ReAnswerArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 58}
+
+ReAlertingArg ::= SEQUENCE {
+ alertedNumber [1] PresentedNumberScreened OPTIONAL,
+ alertedName [2] Name OPTIONAL,
+ argumentExtension CHOICE {
+ extension [6] IMPLICIT Extension{{REExtSet}},
+ multipleExtension [7] IMPLICIT SEQUENCE OF Extension{{REExtSet}}
+ } OPTIONAL }
+
+ReAnswerArg ::= SEQUENCE {
+ connectedNumber [1] PresentedNumberScreened,
+ connectedSubaddress [2] PartySubaddress OPTIONAL,
+ connectedName [3] Name OPTIONAL,
+ argumentExtension CHOICE {
+ extension [6] IMPLICIT Extension{{REExtSet}},
+ multipleExtension [7] IMPLICIT SEQUENCE OF Extension{{REExtSet}}
+ } OPTIONAL }
+REExtSet EXTENSION ::= {...}
+
+END -- of Recall-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-SD.asn b/epan/dissectors/asn1/qsig/QSIG-SD.asn
new file mode 100644
index 0000000000..3c24e795b8
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-SD.asn
@@ -0,0 +1,89 @@
+-- QSIG-SD.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-311, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-311.htm
+--
+
+SS-SD-Operations-asn1-97
+{ iso (1) standard (0) pss1-simple-dialog (21407) simple-dialog-operations-asn1-97 (1)}
+
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects (5)
+ version1 (0)}
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582)
+ msi-class-asn1-97(11)};
+
+SD-Operations OPERATION ::= { display | keypad}
+
+display OPERATION ::= {
+ ARGUMENT DisplayArg
+ RETURN RESULT FALSE
+ ERRORS {unspecified |
+ noDisplayAvailable |
+ displayTemporarilyNotAvailable |
+ notPresentable
+ }
+ ALWAYS RESPONDS FALSE
+ CODE local: 103}
+
+
+keypad OPERATION ::= {
+ ARGUMENT KeypadArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 104}
+
+
+DisplayArg ::= SEQUENCE {
+ displayString DisplayString,
+ extension SDExtension OPTIONAL
+ }
+
+
+DisplayString ::= CHOICE {
+ displayStringNormal [0] IMPLICIT BMPStringNormal,
+ displayStringExtended [1] IMPLICIT BMPStringExtended
+ }
+
+KeypadArg ::= SEQUENCE {
+ keypadString [0] IMPLICIT BMPStringNormal,
+ extension SDExtension OPTIONAL
+ }
+
+
+BMPStringNormal ::= OCTET STRING (SIZE(2..64)) -- shall be used according to
+ -- ISO/IEC 10646-1 (section 6.2)
+ -- coded as a BMP String according to
+ -- ITU-T Rec. X.690 (section 8.20.8)
+
+BMPStringExtended ::= OCTET STRING (SIZE(2..160)) -- shall be used according to ISO/IEC 10646-1
+ -- coded as a BMP String according to
+ -- ITU-T Rec. X.690
+
+
+SDExtension ::= CHOICE {
+ extension [2] IMPLICIT Extension{{SDExtSet}},
+ multipleExtension [3] IMPLICIT SEQUENCE OF Extension{{SDExtSet}}
+ }
+
+SDExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= { PARAMETER Extension{{SDExtSet}}
+ CODE local: 1008}
+
+noDisplayAvailable ERROR ::= { CODE local: 1023}
+
+displayTemporarilyNotAvailable ERROR ::= { CODE local: 1024}
+
+notPresentable ERROR ::= { CODE local: 1025}
+
+
+END -- of SS-SD-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-SMS.asn b/epan/dissectors/asn1/qsig/QSIG-SMS.asn
new file mode 100644
index 0000000000..543049493f
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-SMS.asn
@@ -0,0 +1,339 @@
+-- QSIG-SMS.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-325, (June 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-325.htm
+--
+
+Short-Message-Service-Operations-asn1-97
+{iso(1) identified-organization(3) icd-ecma(12) standard(0) qsig-short-message-service(325) short-message-service-operations-asn1-97(1)}
+
+DEFINITIONS::=
+BEGIN
+IMPORTS
+ OPERATION,
+ ERROR
+FROM Remote-Operations-Information-Objects
+{joint-iso-itu-t (2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+FROM Manufacturer-specific-service-extension-class-asn1-97
+{iso(1) standard(0) pss1-generic-procedures(11582) msi-class-asn1-97(11)}
+ Name
+FROM Name-Operations-asn1-97
+{iso(1) standard(0) pss1-name(13868) name-operations-asn1-97(1)}
+ supplementaryServiceInteractionNotAllowed
+FROM General-Error-List
+{ccitt recommendation q 950 general-error-list(1)}
+ PartyNumber
+FROM Addressing-Data-Elements-asn1-97
+{iso(1) standard(0) pss1-generic-procedures(11582) addressing-data-elements-asn1-97(20)};
+
+--TYPE DEFINITIONS FOR SMS OPERATIONS FOLLOW
+
+Sms-Operations OPERATION ::={
+
+ smsSubmit | smsDeliver | smsStatusReport | smsCommand | scAlert}
+
+smsSubmit OPERATION ::= {
+ -- sent from the Sending User PINX/ Sending User Message Centre to the Service Centre
+ ARGUMENT SmsSubmitArg
+ RESULT SmsSubmitRes
+ ERRORS {smsSubmitError |
+ unspecified}
+ CODE local:107}
+
+smsDeliver OPERATION ::= {
+ -- sent from the Service Centre to the Receiving User PINX or to the Receiving User Message Centre
+ ARGUMENT SmsDeliverArg
+ RESULT SmsDeliverRes
+ ERRORS {smsDeliverError |
+ unspecified}
+ CODE local:108}
+
+smsStatusReport OPERATION ::= {
+ -- sent from the Service Centre to the Sending User PINX or to the Sending User Message Centre
+ ARGUMENT SmsStatusReportArg
+ RESULT SmsStatusReportRes
+ ERRORS {smsStatusReportError |
+ unspecified}
+ CODE local:109}
+
+smsCommand OPERATION ::= {
+ -- sent from the Sending User PINX or the Sending User Message Centre to the Service Centre
+ ARGUMENT SmsCommandArg
+ RESULT SmsCommandRes
+ ERRORS {smsCommandError |
+ unspecified}
+ CODE local:110}
+
+scAlert OPERATION ::= {
+ -- sent from the Receiving User PINX or the Receiving User Message Centre to the Service Centre
+ ARGUMENT ScAlertArg
+ RESULT DummyRes
+ ERRORS {unspecified}
+ CODE local:111}
+
+--TYPE DEFINITIONS FOR SMS DATA TYPES FOLLOW
+
+SmsSubmitArg ::= SEQUENCE {
+ destinationAddress PartyNumber,
+ originatingAddress PartyNumber,
+ messageReference MessageReference,
+ smSubmitParameter SmSubmitParameter,
+ userData UserData,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsSubmitRes ::= SEQUENCE {
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ protocolIdentifier [3] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [4] IMPLICIT UserData OPTIONAL,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsDeliverArg ::= SEQUENCE {
+ originatingAddress PartyNumber,
+ destinationAddress PartyNumber,
+ originatingName Name OPTIONAL,
+ smDeliverParameter SmDeliverParameter,
+ userData UserData,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsDeliverRes ::= SEQUENCE {
+ smsDeliverResponseChoice SmsDeliverResChoice,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsStatusReportArg ::= SEQUENCE {
+ messageReference MessageReference,
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ dischargeTime DischargeTime,
+ recipientAddress PartyNumber,
+ recipientName [10] Name OPTIONAL,
+ destinationAddress PartyNumber,
+ status Status,
+ priority [11] IMPLICIT BOOLEAN DEFAULT FALSE,
+ moreMessagesToSend [12] IMPLICIT BOOLEAN DEFAULT FALSE,
+ statusReportQualifier [13] IMPLICIT BOOLEAN DEFAULT FALSE,
+ protocolIdentifier ProtocolIdentifier OPTIONAL,
+ userData UserData OPTIONAL,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsStatusReportRes ::= SEQUENCE {
+ smsStatusReportResponseChoice SmsStatusReportResponseChoice,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsCommandArg ::= SEQUENCE {
+ destinationAddress PartyNumber,
+ messageReference MessageReference,
+ messageNumber MessageReference,
+ protocolIdentifier ProtocolIdentifier,
+ commandType CommandType,
+ commandData CommandData OPTIONAL,
+ statusReportRequest BOOLEAN OPTIONAL,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsCommandRes ::= SEQUENCE {
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ protocolIdentifier ProtocolIdentifier OPTIONAL,
+ userData UserData OPTIONAL,
+ smsExtension SmsExtension OPTIONAL}
+
+ScAlertArg ::= SEQUENCE {
+ originatingAddress PartyNumber,
+ smsExtension SmsExtension OPTIONAL}
+
+DummyRes ::= CHOICE{
+ null NULL,
+ smsExtension SmsExtension}
+
+SmSubmitParameter ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ validityPeriod ValidityPeriod OPTIONAL,
+ statusReportRequest [11] IMPLICIT BOOLEAN DEFAULT FALSE,
+ replyPath [12] IMPLICIT BOOLEAN DEFAULT FALSE,
+ rejectDuplicates [13] IMPLICIT BOOLEAN DEFAULT FALSE}
+
+SmDeliverParameter ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ priority [11] IMPLICIT BOOLEAN DEFAULT FALSE,
+ moreMessagesToSend [12] IMPLICIT BOOLEAN DEFAULT FALSE,
+ statusReportIndication [13] IMPLICIT BOOLEAN DEFAULT FALSE,
+ replyPath [14] IMPLICIT BOOLEAN DEFAULT FALSE}
+
+SmsDeliverResChoice ::= CHOICE {
+ null NULL,
+ protocolIdentifier ProtocolIdentifier,
+ userData [0] IMPLICIT UserData,
+ resChoiceSeq [1] IMPLICIT ResChoiceSeq}
+
+ResChoiceSeq ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ userData UserData}
+
+SmsStatusReportResponseChoice ::= CHOICE {
+ null NULL,
+ protocolIdentifier ProtocolIdentifier,
+ userData [0] IMPLICIT UserData,
+ resChoiceSeq [1] IMPLICIT ResChoiceSeq}
+
+MessageReference ::= INTEGER(0..255)
+
+SmsExtension ::= CHOICE{
+ single [1]IMPLICIT Extension{{SmsExtSet}},
+ multiple [2]IMPLICIT SEQUENCE OF
+ Extension{{SmsExtSet}}
+ }
+
+SmsExtSet EXTENSION ::= {...}
+
+ProtocolIdentifier ::= INTEGER (0..127)
+ -- definition of the ProtocolIdentifier values and default value can be found in annex E section
+ -- E.1.2.1
+
+ServiceCentreTimeStamp ::= GeneralizedTime(SIZE(12..19))
+ -- this date and time representation follows ISO 8601
+
+DischargeTime ::= GeneralizedTime(SIZE(12..19))
+ -- this date and time representation follows ISO 8601
+
+ValidityPeriod ::= CHOICE{
+ validityPeriodRel [0] IMPLICIT ValidityPeriodRel,
+ validityPeriodAbs [1] IMPLICIT ValidityPeriodAbs,
+ validityPeriodEnh [2] IMPLICIT ValidityPeriodEnh}
+
+ValidityPeriodAbs ::= GeneralizedTime(SIZE(12..19))
+ -- this date and time representation follows ISO 8601
+
+ValidityPeriodRel ::= INTEGER(0..255)
+ -- the rules for the encoding of ValidityPeriodRel are shown in annex E section E.1.2.2
+
+ValidityPeriodEnh ::= SEQUENCE{
+ singleShotSM BOOLEAN DEFAULT FALSE,
+ enhancedVP EnhancedVP OPTIONAL}
+
+EnhancedVP ::= CHOICE{
+ validityPeriodRel [0] IMPLICIT ValidityPeriodRel,
+ validityPeriodSec [1] IMPLICIT INTEGER(0..255),
+ validityPeriodSemi [2] IMPLICIT ValidityPeriodSemi}
+
+ValidityPeriodSemi ::= OCTET STRING (SIZE(3))
+ -- Validity Period is relative in semi-octet representation, see ETSI TS 100 901, section 9.1.2.3
+ -- and section 9.2.3.12.3
+
+UserData ::= SEQUENCE{
+ userDataHeader [0] IMPLICIT UserDataHeader OPTIONAL,
+ class [1] IMPLICIT INTEGER (0..3) OPTIONAL,
+ compressed [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ shortMessageText ShortMessageText}
+
+ShortMessageText ::= SEQUENCE{
+ shortMessageTextType ShortMessageTextType,
+ shortMessageTextData ShortMessageTextData}
+
+ShortMessageTextType ::= INTEGER{
+ iA5Coded (0), -- ShortMessageTextData shall contain data according to
+ octetCoded (1), -- the type given in ShortMessageTextType, for further
+ uniCoded (2), -- details see annex E. 1.3.4.
+ compressedCoded (3)} (0..8)
+
+ShortMessageTextData ::= OCTET STRING (SIZE(0..140))
+
+Status ::= INTEGER (0..255)
+ -- definition of status values can be found in section E.7.6 in annex E
+
+CommandType ::= INTEGER{
+ enquiry (0),
+ cancelSRR (1),
+ deletePreviouslySubmittedSM (2),
+ enableSRRrelatingToPreviouslySubmittedSM (3)} (0..255)
+
+CommandData ::= OCTET STRING (SIZE(0..157))
+
+FailureCause ::= INTEGER (0..255)
+ -- definition for failureCause values can be found in section E.3.1 in annex E
+
+UserDataHeader ::= SEQUENCE OF UserDataHeaderChoice
+
+UserDataHeaderChoice ::= CHOICE{
+ smscControlParameterHeader [0] IMPLICIT SmscControlParameterHeader,
+ concatenated8BitSMHeader [1] IMPLICIT Concatenated8BitSMHeader,
+ concatenated16BitSMHeader [2] IMPLICIT Concatenated16BitSMHeader,
+ applicationPort8BitHeader [3] IMPLICIT ApplicationPort8BitHeader,
+ applicationPort16BitHeader [4] IMPLICIT ApplicationPort16BitHeader,
+ dataHeaderSourceIndicator [5] IMPLICIT DataHeaderSourceIndicator,
+ wirelessControlHeader [6] IMPLICIT WirelessControlHeader,
+ genericUserValue [99] IMPLICIT GenericUserValue}
+
+SmscControlParameterHeader ::= BIT STRING {
+ sRforTransactionCompleted (0),
+ sRforPermanentError (1),
+ sRforTempErrorSCnotTrying (2),
+ sRforTempErrorSCstillTrying (3),
+ cancelSRRforConcatenatedSM (6),
+ includeOrigUDHintoSR (7)} (SIZE(8))
+
+Concatenated8BitSMHeader ::= SEQUENCE{
+ concatenated8BitSMReferenceNumber INTEGER(0..255),
+ maximumNumberOf8BitSMInConcatenatedSM INTEGER(0..255),
+ sequenceNumberOf8BitSM INTEGER(0..255)}
+
+Concatenated16BitSMHeader ::= SEQUENCE{
+ concatenated16BitSMReferenceNumber INTEGER(0..65536),
+ maximumNumberOf16BitSMInConcatenatedSM INTEGER(0..255),
+ sequenceNumberOf16BitSM INTEGER(0..255)}
+
+ApplicationPort8BitHeader ::= SEQUENCE{
+ destination8BitPort INTEGER(0..255),
+ originator8BitPort INTEGER(0..255)}
+
+ApplicationPort16BitHeader ::= SEQUENCE{
+ destination16BitPort INTEGER(0..65536),
+ originator16BitPort INTEGER(0..65536)}
+
+DataHeaderSourceIndicator ::= INTEGER{
+ originalSender (1), -- valid in case of Status Report
+ originalReceiver (2), -- valid in case of Status Report
+ sMSC (3)}(0..255) -- can occur in any message or report
+
+WirelessControlHeader ::= OCTET STRING
+
+GenericUserValue ::= SEQUENCE{
+ parameterValue INTEGER(0..255),
+ genericUserData OCTET STRING}
+
+smsDeliverError ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [1] IMPLICIT UserData OPTIONAL,
+ scAddressSaved [2] IMPLICIT BOOLEAN DEFAULT FALSE}
+ CODE local:1026}
+
+smsSubmitError ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [1] IMPLICIT UserData OPTIONAL}
+ CODE local:1027}
+
+smsStatusReportError ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [1] IMPLICIT UserData OPTIONAL,
+ scAddressSaved [2] IMPLICIT BOOLEAN DEFAULT FALSE}
+ CODE local: 1028}
+
+smsCommandError ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [1] IMPLICIT UserData OPTIONAL}
+ CODE local:1029}
+
+unspecified ERROR ::= {
+ PARAMETER SmsExtension
+ CODE local: 1008}
+
+END -- of Short-Message-Service-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-SSCT.asn b/epan/dissectors/asn1/qsig/QSIG-SSCT.asn
new file mode 100644
index 0000000000..9e97a73b7e
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-SSCT.asn
@@ -0,0 +1,120 @@
+-- QSIG-SSCT.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-300, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-300.htm
+--
+
+Single-Step-Call-Transfer-Operations-asn1-97
+{ iso(1) standard (0) pss1-single-step-call-transfer (19460)
+single-step-call-transfer-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS
+ OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0) }
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+ Name FROM Name-Operations-asn1-97
+ {iso(1) standard(0) pss1-name (13868) name-operations-asn1-97 (1)}
+ supplementaryServiceInteractionNotAllowed, notAvailable, invalidCallState
+ FROM General-Error-List
+ { ccitt recommendation q 950 general-error-list (1) }
+ PresentedAddressScreened, PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20)}
+ PSS1InformationElement FROM PSS1-generic-parameters-definition-asn1-97
+ {iso(1) standard (0) pss1-generic-procedures (11582)
+ pss1-generic-parameters-asn1-97 (17)}
+ callTransferUpdate, callTransferComplete, callTransferActive, subaddressTransfer,
+ invalidRerouteingNumber, establishmentFailure FROM Call-Transfer-Operations-asn1-97
+ {iso(1) standard (0) pss1-call-transfer (13869) call-transfer-operations-asn1-97 (1)};
+
+Single-Step-Call-Transfer-Operations OPERATION ::= { ssctInitiate | ssctSetup | ssctPostDial |
+ssctDigitInfo }
+
+ssctInitiate OPERATION ::= {
+ -- sent from the Transferring PINX to the Rerouting PINX
+ ARGUMENT SSCTInitiateArg
+ RESULT DummyRes
+ ERRORS { notAvailable | invalidCallState | invalidRerouteingNumber |
+ establishmentFailure | unspecified |
+ supplementaryServiceInteractionNotAllowed }
+ CODE local: 99}
+
+ssctSetup OPERATION ::= {
+ -- sent from the Rerouting PINX to the Transferred-To PINX
+ ARGUMENT SSCTSetupArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 100}
+
+ssctPostDial OPERATION ::= {
+ -- sent from the Rerouting PINX to the Transferred PINX
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 101}
+
+ssctDigitInfo OPERATION ::= {
+ -- sent from the Transferred PINX to the Rerouting PINX
+ ARGUMENT SSCTDigitInfoArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 102}
+
+DummyArg ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}}
+
+DummyRes ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}}
+
+SSCTInitiateArg ::= SEQUENCE {
+ rerouteingNumber PartyNumber, -- Transferred-To Number
+ transferredAddress PresentedAddressScreened,
+ awaitConnect AwaitConnect,
+ transferredName [1] Name OPTIONAL,
+ transferringAddress [2] PresentedAddressScreened OPTIONAL,
+ transferringName [3] Name OPTIONAL,
+ argumentExtension CHOICE {
+ single [4] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [5] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}
+ } OPTIONAL
+ }
+
+AwaitConnect ::= BOOLEAN
+ -- FALSE = release the original call upon ALERTING received
+ -- TRUE = release the original call upon CONNECT received
+
+SSCTSetupArg ::= SEQUENCE {
+ transferringAddress [1] PresentedAddressScreened OPTIONAL,
+ transferringName [2] Name OPTIONAL,
+ argumentExtension CHOICE {
+ single [3] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [4] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}
+ } OPTIONAL
+ }
+
+SSCTDigitInfoArg ::= SEQUENCE {
+ reroutingNumber [1] PartyNumber OPTIONAL,
+ -- remaining digits of the Transferred-To Number
+ sendingComplete [2] IMPLICIT NULL OPTIONAL,
+ argumentExtension CHOICE {
+ single [3] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [4] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}
+ } OPTIONAL
+ }
+
+SSCTExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{SSCTExtSet}}
+ CODE local: 1008}
+
+END -- of SSCT Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-WTMAU.asn b/epan/dissectors/asn1/qsig/QSIG-WTMAU.asn
new file mode 100644
index 0000000000..c0dfea513a
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-WTMAU.asn
@@ -0,0 +1,154 @@
+-- QSIG-WTMAU.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-306, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-306.htm
+--
+
+WTM-Authentication-Operations-asn1-97
+ {iso standard pss1-authentication (15433) authentication-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard
+ pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
+ invalidServedUserNr FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard(0) pss1-generic-procedures(11582)
+ addressing-data-elements-asn1-97(20)};
+WTMAuth-Operations OPERATION ::= {authWtmUser | getWtatParam | wtatParamEnq | getWtanParam |
+ wtanParamEnq | transferAuthParam}
+-- The following three operations shall apply to SS-WTAT --
+authWtmUser OPERATION ::= { -- from Home PINX to Visitor PINX--
+ ARGUMENT AuthWtmArg
+ RESULT AuthWtmRes
+ ERRORS { temporarilyUnavailable | invalidServedUserNr |
+ notAuthorized | paramNotAvailable | unspecified}
+ CODE local : 72}
+getWtatParam OPERATION ::= { -- from Visitor PINX to Home PINX --
+ ARGUMENT WtatParamArg
+ RESULT WtatParamRes
+ ERRORS { invalidServedUserNr | notAuthorized |
+ paramNotAvailable | temporarilyUnavailable | unspecified}
+ CODE local : 73}
+wtatParamEnq OPERATION ::= { -- from Home PINX to Authentication Server PINX--
+ ARGUMENT WtatParamArg
+ RESULT WtatParamRes
+ ERRORS { invalidServedUserNr | paramNotAvailable | unspecified}
+ CODE local : 74}
+AuthWtmArg ::= SEQUENCE {
+ wtmUserId WtmUserId,
+ calcWtatInfo [ 1 ] IMPLICIT CalcWtatInfo OPTIONAL,
+ dummyExtension DummyExtension OPTIONAL}
+
+AuthWtmRes ::= SEQUENCE {
+ autWtmResValue ENUMERATED
+ {auth-res-correct (0),
+ auth-res-incorrect (1) },
+ dummyExtension DummyExtension OPTIONAL}
+WtatParamArg ::= SEQUENCE {
+ wtmUserId WtmUserId,
+ canCompute CanCompute OPTIONAL,
+ authChallenge AuthChallenge OPTIONAL,
+ dummyExtension DummyExtension OPTIONAL}
+ -- The presence of element canCompute indicates that the Visitor PINX is able to --
+ -- compute a challenge and the expected response from session key information --
+WtatParamRes ::= SEQUENCE {wtatParamInfo WtatParamInfo,
+ dummyExtension DummyExtension OPTIONAL}
+-- The following two operations shall apply to SS-WTAN --
+getWtanParam OPERATION ::= { -- from Visitor PINX to Home PINX --
+ ARGUMENT WtanParamArg
+ RESULT WtanParamRes
+ ERRORS { invalidServedUserNr | notAuthorized |
+ paramNotAvailable | temporarilyUnavailable | unspecified}
+ CODE local : 75}
+wtanParamEnq OPERATION ::= { -- from Home PINX to Authentication Server PINX--
+ ARGUMENT WtanParamArg
+ RESULT WtanParamRes
+ ERRORS { invalidServedUserNr | paramNotAvailable | unspecified}
+ CODE local : 76}
+WtanParamArg ::= SEQUENCE { wtmUserId WtmUserId,
+ authChallenge AuthChallenge,
+ authAlgorithm AuthAlgorithm,
+ canCompute CanCompute OPTIONAL,
+ dummyExtension DummyExtension OPTIONAL}
+ -- The presence of element canCompute indicates that the Visitor PINX is able to --
+ -- compute the response from session key information --
+WtmUserId ::= CHOICE { pisnNumber PartyNumber,
+ -- The PISN number of the WTM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId }
+AlternativeId ::= OCTET STRING(SIZE(1..20))
+WtanParamRes ::= SEQUENCE {wtanParamInfo WtanParamInfo,
+ dummyExtension DummyExtension OPTIONAL}
+
+-- The following unconfirmed operation shall apply when interaction between SS-WTAT and ANF-WTINFO --
+transferAuthParam OPERATION ::= { -- from Home PINX to Visitor PINX --
+ ARGUMENT SEQUENCE {
+ wtatParamInfo WtatParamInfo,
+ dummyExtension DummyExtension OPTIONAL}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local : 77}
+WtatParamInfo ::= SEQUENCE {authAlgorithm AuthAlgorithm,
+ wtatParamInfoChoice CHOICE {
+ authSessionKeyInfo [ 1 ] IMPLICIT AuthSessionKeyInfo,
+ calcWtatInfo [ 2 ] IMPLICIT CalcWtatInfo,
+ authKey [ 3 ] IMPLICIT AuthKey,
+ challLen [ 4 ] IMPLICIT INTEGER(1..8) } }
+AuthKey ::= OCTET STRING (SIZE(1..16)) -- Authentication key --
+WtanParamInfo ::= CHOICE {authSessionKeyInfo [ 1 ] IMPLICIT AuthSessionKeyInfo,
+ calcWtanInfo [ 2 ] IMPLICIT CalcWtanInfo}
+AuthSessionKeyInfo ::= SEQUENCE {authSessionKey AuthSessionKey,
+ calculationParam CalculationParam}
+CalcWtatInfo ::= SEQUENCE SIZE(1..5) OF CalcWtatInfoUnit
+CalcWtatInfoUnit ::= SEQUENCE {authChallenge AuthChallenge,
+ authResponse AuthResponse,
+ derivedCipherKey [1] IMPLICIT DerivedCipherKey OPTIONAL,
+ calculationParam [2] IMPLICIT CalculationParam OPTIONAL}
+ -- included if required by the authentication algorithm in use --
+CalcWtanInfo ::= SEQUENCE {authResponse AuthResponse,
+ calculationParam CalculationParam OPTIONAL}
+ -- included if required by the authentication algorithm in use --
+DummyExtension ::= CHOICE {extension [5] IMPLICIT Extension{{WTMAuthExtSet}},
+ sequOfExtn [6] IMPLICIT SEQUENCE OF
+ Extension{{WTMAuthExtSet}} }
+AUTH-ALG ::= CLASS {
+ &id DefinedIDs UNIQUE,
+ &Type OPTIONAL
+ }
+DefinedIDs ::= INTEGER { ct2 (0), dect (1), gsm (2), pci (3), pwt (4), us-gsm (5), phs (6), tetra (7) } (0..255)
+AuthAlgSet AUTH-ALG ::= {...}
+AuthAlgorithm ::= SEQUENCE {
+ authAlg AUTH-ALG.&id({AuthAlgSet}),
+ param AUTH-ALG.&Type({AuthAlgSet}{@.authAlg}) OPTIONAL
+ }
+AuthChallenge ::= OCTET STRING (SIZE(1..8)) -- Randomly generated parameter --
+
+AuthResponse ::= OCTET STRING (SIZE(1..4)) -- WTAT: Expected response value --
+ -- WTAN: Response value from network --
+AuthSessionKey ::= OCTET STRING (SIZE(1..16)) -- Authentication session key--
+CalculationParam ::= OCTET STRING (SIZE(1..8)) -- Parameter used when calculating --
+ -- the authentication session key from --
+ -- the real authentication key. It may be --
+ -- transferred to the WTM user during --
+ -- both WTAT and WTAN. --
+CanCompute ::= NULL -- indicates capability of computing --
+ -- challenge and/or response value --
+DerivedCipherKey ::= OCTET STRING (SIZE(1..8)) -- derived cipher key may be computed --
+ -- when computing challenge and --
+ -- expected response values--
+WTMAuthExtSet EXTENSION ::= {...}
+notAuthorized ERROR ::= {CODE local : 1007 }
+paramNotAvailable ERROR ::= {CODE local : 1017 }
+temporarilyUnavailable ERROR ::= {CODE local : 1000 }
+unspecified ERROR ::={
+ PARAMETER Extension{{WTMAuthExtSet}}
+ CODE local : 1008}
+END -- of WTM-Authentication-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-WTMCH.asn b/epan/dissectors/asn1/qsig/QSIG-WTMCH.asn
new file mode 100644
index 0000000000..efb8e09e8f
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-WTMCH.asn
@@ -0,0 +1,138 @@
+-- QSIG-WTMCH.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-304, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-304.htm
+--
+
+Wireless-Terminal-Call-Handling-Operations-asn1-97
+ { iso (1) standard (0) pss1-wtm-call-handling (15431) operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t remote-operations (4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0)
+ pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+ PSS1InformationElement FROM PSS1-generic-parameters-definition-asn1-97
+ { iso (1) standard (0)
+ pss1-generic-procedures (11582) pss1-generic-parameters-asn1-97 (17) }
+ Name FROM Name-Operations-asn1-97
+ { iso (1) standard (0)
+ pss1-name (13868) name-operations-asn1-97 (1) }
+ basicServiceNotProvided, invalidServedUserNr, notAvailable FROM
+ General-Error-List
+ { ccitt (0) recommendation (0) q 950 general-error-list (1) }
+ Address, PartyNumber, PartySubaddress, PresentedNumberScreened FROM
+ Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) };
+
+-- Operations for ANF-WTMI: --
+
+WTMCH-Operations OPERATION ::= {wtmiEnquiry | wtmiDivert | wtmiInform| wtmoCall}
+
+wtmiEnquiry OPERATION ::= {
+ -- Sent from the WTMI-detect PINX to the Home PINX.
+ ARGUMENT EnquiryArg
+ RESULT EnquiryRes
+ ERRORS { invalidServedUserNr | locationNotKnown |
+ notAvailable | basicServiceNotProvided | unspecified }
+ CODE local: 54}
+
+wtmiDivert OPERATION ::= {
+ -- Sent from the WTMI-detect PINX to the Rerouteing PINX.
+ ARGUMENT DivertArg
+ RESULT DummyRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 55}
+wtmiInform OPERATION ::= {
+ -- Sent from the Rerouteing PINX to the Visitor PINX.
+ ARGUMENT InformArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 56}
+
+EnquiryArg ::= SEQUENCE { pisnNumber PartyNumber,
+ -- The PISN number of the WTMI user
+ qSIGInfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility,
+ -- Low layer compatibility can be embedded in the qSIGInfoElement
+ -- in accordance with clause 6.5.2.1.
+ argExtension WtmiExtension OPTIONAL }
+DivertArg ::= SEQUENCE { visitPINX PartyNumber,
+ -- The PISN number of the Visitor PINX,
+ -- always a Complete Number.
+ callingNumber PresentedNumberScreened,
+ wtmIdentity WtmIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the WTMI user.
+ qSIGInfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility,
+ -- Low layer compatibility, and Progress indicator
+ -- can be embedded in the qSIGInfoElement in accordance with clause 6.5.2.1.
+ callingUserSub [ 1 ] PartySubaddress OPTIONAL,
+ callingName [ 2 ] Name OPTIONAL,
+ wtmUserSub [ 3 ] PartySubaddress OPTIONAL,
+ argExtension WtmiExtension OPTIONAL }
+InformArg ::= SEQUENCE { wtmIdentity WtmIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the WTMI user.
+ argExtension WtmiExtension OPTIONAL }
+EnquiryRes ::= CHOICE { currLocation [ 1 ] IMPLICIT CurrLocation,
+ cfuActivated [ 2 ] IMPLICIT CfuActivated }
+CurrLocation ::= SEQUENCE { visitPINX PartyNumber,
+ -- The PISN number of the Visitor PINX,
+ -- always a Complete Number.
+ wtmIdentity WtmIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the WTMI user
+ argExtension WtmiExtension OPTIONAL }
+
+CfuActivated ::= SEQUENCE { divToAddress Address,
+ divOptions SubscriptionOption,
+ wtmName [ 1 ] Name OPTIONAL,
+ argExtension WtmiExtension OPTIONAL }
+SubscriptionOption ::= ENUMERATED { noNotification (0),
+ notificationWithoutDivertedToNr (1),
+ notificationWithDivertedToNr (2) }
+DummyRes ::= CHOICE { null NULL,
+ extension [ 1 ] IMPLICIT Extension{{WTMCHExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{WTMCHExtSet}} }
+WtmiExtension ::= CHOICE { extension [ 4 ] IMPLICIT Extension{{WTMCHExtSet}},
+ sequOfExtn [ 5 ] IMPLICIT SEQUENCE OF
+ Extension{{WTMCHExtSet}} }
+WtmIdentity ::= CHOICE { pisnNumber PartyNumber,
+ alternativeId [ 10 ] IMPLICIT AlternativeId,
+ both [ 11 ] IMPLICIT SEQUENCE
+ { pisnNumber PartyNumber,
+ alternativeId AlternativeId } }
+AlternativeId ::= OCTET STRING(SIZE(1..20))
+
+-- Operation for ANF-WTMO --
+wtmoCall OPERATION ::= {
+ ARGUMENT WtmoArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 71}
+WtmoArg ::= SEQUENCE {
+ destinationNumber [0] PartyNumber OPTIONAL,
+ sendingComplete [1] IMPLICIT NULL OPTIONAL,
+ extension CHOICE
+ {single [2] IMPLICIT Extension{{WTMCHExtSet}},
+ multiple [3] IMPLICIT SEQUENCE OF
+ Extension{{WTMCHExtSet}}
+ } OPTIONAL
+ }
+
+WTMCHExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{WTMCHExtSet}}
+ CODE local: 1008}
+locationNotKnown ERROR ::= { CODE local: 1015}
+
+END -- of Wireless-Terminal-Call-Handling-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/QSIG-WTMLR.asn b/epan/dissectors/asn1/qsig/QSIG-WTMLR.asn
new file mode 100644
index 0000000000..509a2b5d56
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/QSIG-WTMLR.asn
@@ -0,0 +1,122 @@
+-- QSIG-WTMLT.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-302, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-302.htm
+--
+
+WTM-Location-Registration-Operations-asn1-97
+ {iso standard pss1-location-registration (15429) wtlr-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard
+ pss1-generic-procedures (11582) msi-class-asn1-97(11)}
+ notAvailable, invalidServedUserNr
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard(0) pss1-generic-procedures(11582)
+ addressing-data-elements-asn1-97(20)}
+ BasicService FROM Call-Diversion-Operations-asn1-97
+ { iso (1) standard (0) pss1-call-diversion (13873)
+ call-diversion-operations-asn1-97 (1) };
+WTMLR-Operations OPERATION ::= {locUpdate | locDelete | locDeReg | pisnEnquiry | getRRCInf | locInfoCheck}
+
+locUpdate OPERATION ::={
+ -- Sent from the Visitor PINX to the Home PINX.
+ ARGUMENT LocUpdArg
+ RESULT DummyRes
+ ERRORS { invalidServedUserNr | notAuthorized | unspecified }
+ CODE local: 50}
+
+locDelete OPERATION ::= {
+ -- Sent from the Home PINX to the previous Visitor PINX.
+ ARGUMENT LocDelArg
+ RESULT DummyRes
+ ERRORS { temporarilyUnavailable | unspecified }
+ CODE local: 51}
+locDeReg OPERATION ::= {
+ -- Sent from the Visitor PINX to the Home PINX.
+ ARGUMENT LocDeRegArg
+ RESULT DummyRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 52}
+pisnEnquiry OPERATION ::= {
+ -- Sent from the Visitor PINX to the previous Visitor PINX or a Directory PINX.
+ ARGUMENT PisnEnqArg
+ RESULT PisnEnqRes
+ ERRORS { invalidServedUserNr | unspecified}
+ CODE local: 53}
+getRRCInf OPERATION ::= {
+ -- Sent from the Visitor PINX to the Home PINX.
+ ARGUMENT GetRRCInfArg
+ RESULT GetRRCInfRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 97}
+locInfoCheck OPERATION ::= {
+ -- Sent from the Visitor PINX to the Home PINX or vice versa.
+ ARGUMENT LocInfoCheckArg
+ RESULT LocInfoCheckRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 98}
+LocUpdArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ visitPINX PartyNumber,
+ -- The pisnNumber of the Visitor PINX,
+ -- always a Complete Number.
+ argExtension LrExtension OPTIONAL }
+DummyRes ::= CHOICE { null NULL,
+ extension [ 1 ] IMPLICIT Extension{{WTMLRExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{WTMLRExtSet}} }
+LocDelArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ argExtension LrExtension OPTIONAL }
+LocDeRegArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ argExtension LrExtension OPTIONAL }
+
+PisnEnqArg ::= SEQUENCE { alternativeId AlternativeId,
+ -- Can be a temporary identifier, e.g. Network Assigned
+ -- Identity structure, or a fixed handset identifier.
+ argExtension LrExtension OPTIONAL }
+PisnEnqRes ::= SEQUENCE { wtmUserId WtmUserId,
+ resExtension LrExtension OPTIONAL }
+GetRRCInfArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ argExtension LrExtension OPTIONAL }
+GetRRCInfRes ::= SEQUENCE { alternativeId AlternativeId OPTIONAL,
+ rrClass RRClass OPTIONAL,
+ argExtension LrExtension OPTIONAL }
+LocInfoCheckArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ visitPINX PartyNumber,
+ -- The PISN number of the Visitor PINX,
+ -- always a Complete Number.
+ argExtension LrExtension OPTIONAL }
+LocInfoCheckRes ::= SEQUENCE { checkResult CheckResult,
+ argExtension LrExtension OPTIONAL }
+WtmUserId ::= CHOICE { pisnNumber PartyNumber,
+ -- The PISN number of the WTM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId }
+AlternativeId ::= OCTET STRING(SIZE(1..20))
+LrExtension ::= CHOICE { extension [ 1 ] IMPLICIT Extension{{WTMLRExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{WTMLRExtSet}} }
+RRClass ::= INTEGER (0..99)
+CheckResult ::= ENUMERATED { locInfChk-correct (0),
+ locInfChk-incorrect (1) }
+WTMLRExtSet EXTENSION ::= {...}
+notAuthorized ERROR ::= {CODE local: 1007}
+temporarilyUnavailable ERROR ::= {CODE local: 1000}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{WTMLRExtSet}}
+ CODE local: 1008}
+END -- of WTM-Location-Registration-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/SYNC-SIG.asn b/epan/dissectors/asn1/qsig/SYNC-SIG.asn
new file mode 100644
index 0000000000..d0f5f4d997
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/SYNC-SIG.asn
@@ -0,0 +1,72 @@
+-- SYNC-SIG.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-245, 2nd Edition - September 1997
+-- http://www.ecma-international.org/publications/standards/Ecma-245.htm
+--
+-- updated from macro notation to information object notation
+--
+
+Synchronization-Operations-asn1-97
+ { iso (1) standard (0) pinx-clock-synchronization (15507) synchronization-operations-asn1-97 (1) }
+
+DEFINITIONS EXPLICIT TAGS::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM
+ Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations (4) informationObjects (5)
+ version1 (0)}
+
+ EXTENSION, Extension{} FROM
+ Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard pss1-generic-procedures (11582)
+ msi-class-asn1-97 (11)} ;
+
+-- The following two operations shall apply to SYNC-SIG
+
+Synchronization-Operations OPERATION ::= { synchronizationRequest | synchronizationInfo }
+
+synchronizationRequest OPERATION ::= {
+ ARGUMENT SynchronizationReqArg
+ RESULT SynchronizationReqRes
+ ERRORS {unspecified}
+ CODE local:78
+}
+
+synchronizationInfo OPERATION ::= {
+ ARGUMENT SynchronizationInfoArg
+ CODE local:79
+}
+
+SynchronizationReqArg ::= SEQUENCE {
+ action Action,
+ argExtension ArgExtension OPTIONAL
+}
+
+SynchronizationReqRes ::= SEQUENCE {
+ action Action,
+ response BOOLEAN, -- TRUE = yes, FALSE = no
+ argExtension ArgExtension OPTIONAL
+}
+
+SynchronizationInfoArg ::= SEQUENCE {
+ stateinfo INTEGER { freerunning (0), idle (1)},
+ argExtension ArgExtension OPTIONAL
+}
+
+Action ::= INTEGER { enslavement(0), holdon (1)}
+
+ArgExtension::= CHOICE{
+ extension [1] IMPLICIT Extension{{SYNCExtSet}},
+ sequOfExtn [2] IMPLICIT SEQUENCE OF Extension{{SYNCExtSet}}
+}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{SYNCExtSet}}
+ CODE local:1008}
+
+SYNCExtSet EXTENSION ::= {...}
+
+END -- of Synchronization-Operations-asn1-97
diff --git a/epan/dissectors/asn1/qsig/packet-qsig-template.c b/epan/dissectors/asn1/qsig/packet-qsig-template.c
new file mode 100644
index 0000000000..068673f9c0
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/packet-qsig-template.c
@@ -0,0 +1,746 @@
+/* packet-qsig.c
+ * Routines for QSIG packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-qsig.h"
+
+#define PNAME "QSIG"
+#define PSNAME "QSIG"
+#define PFNAME "qsig"
+
+/* Shifted codeset values */
+#define CS0 0x000
+#define CS1 0x100
+#define CS2 0x200
+#define CS3 0x300
+#define CS4 0x400
+#define CS5 0x500
+#define CS6 0x600
+#define CS7 0x700
+
+#define QSIG_IE_TRANSIT_COUNTER 0x31
+#define QSIG_IE_PARTY_CATEGORY 0x32
+
+void proto_register_qsig(void);
+void proto_reg_handoff_qsig(void);
+
+static const value_string qsig_str_ie_type_cs4[] = {
+ { QSIG_IE_TRANSIT_COUNTER , "Transit counter" },
+ { 0, NULL}
+};
+static const value_string qsig_str_ie_type_cs5[] = {
+ { QSIG_IE_PARTY_CATEGORY , "Party category" },
+ { 0, NULL}
+};
+/* Codeset array */
+static const value_string *qsig_str_ie_type[] = {
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ qsig_str_ie_type_cs4,
+ qsig_str_ie_type_cs5,
+ NULL,
+ NULL,
+};
+
+
+static const value_string qsig_str_pc[] = {
+ { 0x00 , "unknown" },
+ { 0x01 , "extension" },
+ { 0x02 , "operator" },
+ { 0x03 , "emergency extension" },
+ { 0, NULL}
+};
+
+static const value_string qsig_str_service[] = {
+ { 13868, "QSIG-NA" },
+ { 13873, "QSIG-CF" },
+ { 13874, "QSIG-PR" },
+ { 13869, "QSIG-CT" },
+ { 13870, "QSIG-CC" },
+ { 14843, "QSIG-CO" },
+ { 14844, "QSIG-DND(O)" },
+ { 14846, "QSIG-CI" },
+ { 15050, "QSIG-AOC" },
+ { 15052, "QSIG-RE" },
+ { 15054, "QSIG-CINT" },
+ { 15506, "QSIG-MWI" },
+ { 15507, "SYNC-SIG" },
+ { 15772, "QSIG-CMN" },
+ { 15992, "QSIG-CPI(P)" },
+ { 17876, "QSIG-PUMR" },
+ { 17878, "QSIG-PUMCH" },
+ { 19460, "QSIG-SSCT" },
+ { 15429, "QSIG-WTMLR" },
+ { 15431, "QSIG-WTMCH" },
+ { 15433, "QSIG-WTMAU" },
+ { 21407, "QSIG-SD" },
+ { 21889, "QSIG-CIDL" },
+ { 325, "QSIG-SMS" },
+ { 344, "QSIG-MCR" },
+ { 3471, "QSIG-MCM" },
+ { 3472, "QSIG-MID" },
+ { 0, NULL}
+};
+
+static const value_string qsig_str_service_name[] = {
+ { 13868, "Name-Operations" },
+ { 13873, "Call-Diversion-Operations" },
+ { 13874, "Path-Replacement-Operations" },
+ { 13869, "Call-Transfer-Operations" },
+ { 13870, "SS-CC-Operations" },
+ { 14843, "Call-Offer-Operations" },
+ { 14844, "Do-Not-Disturb-Operations" },
+ { 14846, "Call-Intrusion-Operations" },
+ { 15050, "SS-AOC-Operation" },
+ { 15052, "Recall-Operation" },
+ { 15054, "Call-Interception-Operations" },
+ { 15506, "SS-MWI-Operations" },
+ { 15507, "Synchronization-Operations" },
+ { 15772, "Common-Information-Operations" },
+ { 15992, "Call-Interruption-Operation" },
+ { 17876, "PUM-Registration-Operation" },
+ { 17878, "Private-User-Mobility-Call-Handling-Operations" },
+ { 19460, "Single-Step-Call-Transfer-Operations" },
+ { 15429, "WTM-Location-Registration-Operations" },
+ { 15431, "Wireless-Terminal-Call-Handling-Operations" },
+ { 15433, "WTM-Authentication-Operations" },
+ { 21407, "SS-SD-Operations" },
+ { 21889, "Call-Identification-and-Call-Linkage-Operations" },
+ { 325, "Short-Message-Service-Operations" },
+ { 344, "SS-MCR-Operations" },
+ { 3471, "SS-MCM-Operations" },
+ { 3472, "SS-MID-Operations" },
+ { 0, NULL}
+};
+
+#define NO_SRV (-1)
+static const gint32 op2srv_tab[] = {
+ /* 0 */ 13868,
+ /* 1 */ 13868,
+ /* 2 */ 13868,
+ /* 3 */ 13868,
+ /* 4 */ 13874,
+ /* 5 */ 13874,
+ /* 6 */ 13874,
+ /* 7 */ 13869,
+ /* 8 */ 13869,
+ /* 9 */ 13869,
+ /* 10 */ 13869,
+ /* 11 */ 13869,
+ /* 12 */ 13869,
+ /* 13 */ 13869,
+ /* 14 */ 13869,
+ /* 15 */ 13873,
+ /* 16 */ 13873,
+ /* 17 */ 13873,
+ /* 18 */ 13873,
+ /* 19 */ 13873,
+ /* 20 */ 13873,
+ /* 21 */ 13873,
+ /* 22 */ 13873,
+ /* 23 */ 13873,
+ /* 24 */ NO_SRV,
+ /* 25 */ NO_SRV,
+ /* 26 */ NO_SRV,
+ /* 27 */ 13870,
+ /* 28 */ 13870,
+ /* 29 */ 13870,
+ /* 30 */ 13870,
+ /* 31 */ 13870,
+ /* 32 */ 13870,
+ /* 33 */ 13870,
+ /* 34 */ 14843,
+ /* 35 */ 14844,
+ /* 36 */ 14844,
+ /* 37 */ 14844,
+ /* 38 */ 14844,
+ /* 39 */ 14844,
+ /* 40 */ 13870,
+ /* 41 */ 90001,
+ /* 42 */ 90001,
+ /* 43 */ 14846,
+ /* 44 */ 14846,
+ /* 45 */ 14846,
+ /* 46 */ 14846,
+ /* 47 */ 14846,
+ /* 48 */ 14846,
+ /* 49 */ 90001,
+ /* 50 */ 15429,
+ /* 51 */ 15429,
+ /* 52 */ 15429,
+ /* 53 */ 15429,
+ /* 54 */ 15431,
+ /* 55 */ 15431,
+ /* 56 */ 15431,
+ /* 57 */ 15052,
+ /* 58 */ 15052,
+ /* 59 */ 15050,
+ /* 60 */ 15050,
+ /* 61 */ 15050,
+ /* 62 */ 15050,
+ /* 63 */ 15050,
+ /* 64 */ 15050,
+ /* 65 */ 15050,
+ /* 66 */ 15054,
+ /* 67 */ 15054,
+ /* 68 */ 15054,
+ /* 69 */ 15054,
+ /* 70 */ 15054,
+ /* 71 */ 15431,
+ /* 72 */ 15433,
+ /* 73 */ 15433,
+ /* 74 */ 15433,
+ /* 75 */ 15433,
+ /* 76 */ 15433,
+ /* 77 */ 15433,
+ /* 78 */ 15507,
+ /* 79 */ 15507,
+ /* 80 */ 3471,
+ /* 81 */ 3471,
+ /* 82 */ 3471,
+ /* 83 */ NO_SRV,
+ /* 84 */ 15772,
+ /* 85 */ 15772,
+ /* 86 */ 13874,
+ /* 87 */ 15992,
+ /* 88 */ 15992,
+ /* 89 */ 17876,
+ /* 90 */ 17876,
+ /* 91 */ 17876,
+ /* 92 */ 17876,
+ /* 93 */ 17878,
+ /* 94 */ 17878,
+ /* 95 */ 17878,
+ /* 96 */ 17878,
+ /* 97 */ 15429,
+ /* 98 */ 15429,
+ /* 99 */ 19460,
+ /* 100 */ 19460,
+ /* 101 */ 19460,
+ /* 102 */ 19460,
+ /* 103 */ 21407,
+ /* 104 */ 21407,
+ /* 105 */ 21889,
+ /* 106 */ 21889,
+ /* 107 */ 325,
+ /* 108 */ 325,
+ /* 109 */ 325,
+ /* 110 */ 325,
+ /* 111 */ 325,
+ /* 112 */ 344,
+ /* 113 */ 344,
+ /* 114 */ 344,
+ /* 115 */ 3471,
+ /* 116 */ 3471,
+ /* 117 */ 3471,
+ /* 118 */ 3471,
+ /* 119 */ 3472,
+ /* 120 */ 3472,
+};
+
+static const value_string qsig_str_operation[] = {
+#include "packet-qsig-table10.c"
+ { 0, NULL}
+};
+
+static const value_string qsig_str_error[] = {
+#include "packet-qsig-table20.c"
+ { 0, NULL}
+};
+
+/* Initialize the protocol and registered fields */
+static int proto_qsig = -1;
+static int hf_qsig_operation = -1;
+static int hf_qsig_service = -1;
+static int hf_qsig_error = -1;
+static int hf_qsig_ie_type = -1;
+static int hf_qsig_ie_type_cs4 = -1;
+static int hf_qsig_ie_type_cs5 = -1;
+static int hf_qsig_ie_len = -1;
+static int hf_qsig_ie_data = -1;
+static int hf_qsig_tc = -1;
+static int hf_qsig_pc = -1;
+#include "packet-qsig-hf.c"
+
+static int *hf_qsig_ie_type_arr[] = {
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ &hf_qsig_ie_type_cs4,
+ &hf_qsig_ie_type_cs5,
+ NULL,
+ NULL,
+};
+
+/* Initialize the subtree pointers */
+static gint ett_qsig = -1;
+static gint ett_qsig_ie = -1;
+static gint ett_qsig_unknown_extension = -1;
+#include "packet-qsig-ett.c"
+static gint ett_cnq_PSS1InformationElement = -1;
+
+static expert_field ei_qsig_unsupported_arg_type = EI_INIT;
+static expert_field ei_qsig_unsupported_result_type = EI_INIT;
+static expert_field ei_qsig_unsupported_error_type = EI_INIT;
+
+/* Preferences */
+
+/* Subdissectors */
+static dissector_handle_t q931_ie_handle = NULL;
+
+/* Global variables */
+static const char *extension_oid = NULL;
+static GHashTable *qsig_opcode2oid_hashtable = NULL;
+static GHashTable *qsig_oid2op_hashtable = NULL;
+
+/* Dissector tables */
+static dissector_table_t extension_dissector_table;
+
+#include "packet-qsig-fn.c"
+
+typedef struct _qsig_op_t {
+ gint32 opcode;
+ dissector_t arg_pdu;
+ dissector_t res_pdu;
+} qsig_op_t;
+
+static const qsig_op_t qsig_op_tab[] = {
+#include "packet-qsig-table11.c"
+};
+
+typedef struct _qsig_err_t {
+ gint32 errcode;
+ dissector_t err_pdu;
+} qsig_err_t;
+
+static const qsig_err_t qsig_err_tab[] = {
+#include "packet-qsig-table21.c"
+};
+
+static const qsig_op_t *get_op(gint32 opcode) {
+ int i;
+
+ /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
+ for (i = array_length(qsig_op_tab) - 1; i >= 0; i--)
+ if (qsig_op_tab[i].opcode == opcode)
+ return &qsig_op_tab[i];
+ return NULL;
+}
+
+static gint32 get_service(gint32 opcode) {
+ if ((opcode < 0) || (opcode >= (int)array_length(op2srv_tab)))
+ return NO_SRV;
+ return op2srv_tab[opcode];
+}
+
+static const qsig_err_t *get_err(gint32 errcode) {
+ int i;
+
+ /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
+ for (i = array_length(qsig_err_tab) - 1; i >= 0; i--)
+ if (qsig_err_tab[i].errcode == errcode)
+ return &qsig_err_tab[i];
+ return NULL;
+}
+
+/*--- dissect_qsig_arg ------------------------------------------------------*/
+static int
+dissect_qsig_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 opcode = 0, service;
+ const qsig_op_t *op_ptr;
+ const gchar *p;
+ proto_item *ti, *ti_tmp;
+ proto_tree *qsig_tree;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 1) /* invoke */
+ return offset;
+ if (rctx->d.code == 0) { /* local */
+ opcode = rctx->d.code_local;
+ op_ptr = get_op(opcode);
+ } else if (rctx->d.code == 1) { /* global */
+ op_ptr = (qsig_op_t *)g_hash_table_lookup(qsig_oid2op_hashtable, rctx->d.code_global);
+ if (op_ptr) opcode = op_ptr->opcode;
+ } else {
+ return offset;
+ }
+ if (!op_ptr)
+ return offset;
+ service = get_service(opcode);
+
+ ti = proto_tree_add_item(tree, proto_qsig, tvb, offset, tvb_captured_length(tvb), ENC_NA);
+ qsig_tree = proto_item_add_subtree(ti, ett_qsig);
+
+ proto_tree_add_uint(qsig_tree, hf_qsig_operation, tvb, 0, 0, opcode);
+ p = try_val_to_str(opcode, VALS(qsig_str_operation));
+ if (p) {
+ proto_item_append_text(ti, ": %s", p);
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ ti_tmp = proto_tree_add_uint(qsig_tree, hf_qsig_service, tvb, 0, 0, service);
+ p = try_val_to_str(service, VALS(qsig_str_service_name));
+ if (p) proto_item_append_text(ti_tmp, " - %s", p);
+
+ if (op_ptr->arg_pdu)
+ offset = op_ptr->arg_pdu(tvb, pinfo, qsig_tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_qsig_unsupported_error_type, tvb, offset, -1);
+ offset += tvb_captured_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- dissect_qsig_res -------------------------------------------------------*/
+static int
+dissect_qsig_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ gint offset = 0;
+ rose_ctx_t *rctx;
+ gint32 opcode, service;
+ const qsig_op_t *op_ptr;
+ const gchar *p;
+ proto_item *ti, *ti_tmp;
+ proto_tree *qsig_tree;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 2) /* returnResult */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ opcode = rctx->d.code_local;
+ op_ptr = get_op(opcode);
+ if (!op_ptr)
+ return offset;
+ service = get_service(opcode);
+
+ ti = proto_tree_add_item(tree, proto_qsig, tvb, offset, tvb_captured_length(tvb), ENC_NA);
+ qsig_tree = proto_item_add_subtree(ti, ett_qsig);
+
+ proto_tree_add_uint(qsig_tree, hf_qsig_operation, tvb, 0, 0, opcode);
+ p = try_val_to_str(opcode, VALS(qsig_str_operation));
+ if (p) {
+ proto_item_append_text(ti, ": %s", p);
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ ti_tmp = proto_tree_add_uint(qsig_tree, hf_qsig_service, tvb, 0, 0, service);
+ p = try_val_to_str(service, VALS(qsig_str_service_name));
+ if (p) proto_item_append_text(ti_tmp, " - %s", p);
+
+ if (op_ptr->res_pdu)
+ offset = op_ptr->res_pdu(tvb, pinfo, qsig_tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_qsig_unsupported_result_type, tvb, offset, -1);
+ offset += tvb_captured_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- dissect_qsig_err ------------------------------------------------------*/
+static int
+dissect_qsig_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 errcode;
+ const qsig_err_t *err_ptr;
+ const gchar *p;
+ proto_item *ti;
+ proto_tree *qsig_tree;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 3) /* returnError */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ errcode = rctx->d.code_local;
+ err_ptr = get_err(errcode);
+ if (!err_ptr)
+ return offset;
+
+ ti = proto_tree_add_item(tree, proto_qsig, tvb, offset, tvb_captured_length(tvb), ENC_NA);
+ qsig_tree = proto_item_add_subtree(ti, ett_qsig);
+
+ proto_tree_add_uint(qsig_tree, hf_qsig_error, tvb, 0, 0, errcode);
+ p = try_val_to_str(errcode, VALS(qsig_str_error));
+ if (p) {
+ proto_item_append_text(ti, ": %s", p);
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (err_ptr->err_pdu)
+ offset = err_ptr->err_pdu(tvb, pinfo, qsig_tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_qsig_unsupported_error_type, tvb, offset, -1);
+ offset += tvb_captured_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- dissect_qsig_transit_counter_ie ---------------------------------------*/
+static int
+dissect_qsig_transit_counter_ie(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int length _U_) {
+ proto_tree_add_item(tree, hf_qsig_tc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ return offset;
+}
+/*--- dissect_qsig_party_category_ie ----------------------------------------*/
+static int
+dissect_qsig_party_category_ie(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int length _U_) {
+ proto_tree_add_item(tree, hf_qsig_pc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ return offset;
+}
+
+/*--- dissect_qsig_ie -------------------------------------------------------*/
+static void
+dissect_qsig_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int codeset) {
+ gint offset;
+ proto_item *ti, *hidden_item;
+ proto_tree *ie_tree;
+ guint8 ie_type, ie_len;
+
+ offset = 0;
+
+ ti = proto_tree_add_item(tree, proto_qsig, tvb, offset, -1, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(ti);
+
+ ie_type = tvb_get_guint8(tvb, offset);
+ ie_len = tvb_get_guint8(tvb, offset + 1);
+
+ ie_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_qsig_ie, NULL,
+ val_to_str(ie_type, VALS(qsig_str_ie_type[codeset]), "unknown (0x%02X)"));
+
+ proto_tree_add_item(ie_tree, *hf_qsig_ie_type_arr[codeset], tvb, offset, 1, ENC_BIG_ENDIAN);
+ hidden_item = proto_tree_add_item(ie_tree, hf_qsig_ie_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+ PROTO_ITEM_SET_HIDDEN(hidden_item);
+ proto_tree_add_item(ie_tree, hf_qsig_ie_len, tvb, offset + 1, 1, ENC_BIG_ENDIAN);
+ offset += 2;
+ if (tvb_reported_length_remaining(tvb, offset) <= 0)
+ return;
+ switch ((codeset << 8) | ie_type) {
+ case CS4 | QSIG_IE_TRANSIT_COUNTER :
+ dissect_qsig_transit_counter_ie(tvb, offset, pinfo, ie_tree, ie_len);
+ break;
+ case CS5 | QSIG_IE_PARTY_CATEGORY :
+ dissect_qsig_party_category_ie(tvb, offset, pinfo, ie_tree, ie_len);
+ break;
+ default:
+ if (ie_len > 0) {
+ if (tree) proto_tree_add_item(ie_tree, hf_qsig_ie_data, tvb, offset, ie_len, ENC_NA);
+ }
+ }
+}
+/*--- dissect_qsig_ie_cs4 ---------------------------------------------------*/
+static int
+dissect_qsig_ie_cs4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
+ dissect_qsig_ie(tvb, pinfo, tree, 4);
+ return tvb_captured_length(tvb);
+}
+/*--- dissect_qsig_ie_cs5 ---------------------------------------------------*/
+static int
+dissect_qsig_ie_cs5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
+ dissect_qsig_ie(tvb, pinfo, tree, 5);
+ return tvb_captured_length(tvb);
+}
+
+/*--- qsig_init_tables ---------------------------------------------------------*/
+static void qsig_init_tables(void) {
+ guint i;
+ gint opcode, *key;
+ gchar *oid;
+
+ if (qsig_opcode2oid_hashtable)
+ g_hash_table_destroy(qsig_opcode2oid_hashtable);
+ qsig_opcode2oid_hashtable = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_free);
+
+ if (qsig_oid2op_hashtable)
+ g_hash_table_destroy(qsig_oid2op_hashtable);
+ qsig_oid2op_hashtable = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
+
+ /* fill-in global OIDs */
+ for (i=0; i<array_length(qsig_op_tab); i++) {
+ opcode = qsig_op_tab[i].opcode;
+ oid = g_strdup_printf("1.3.12.9.%d", opcode);
+ key = (gint *)g_malloc(sizeof(gint));
+ *key = opcode;
+ g_hash_table_insert(qsig_opcode2oid_hashtable, key, oid);
+ g_hash_table_insert(qsig_oid2op_hashtable, g_strdup(oid), (gpointer)&qsig_op_tab[i]);
+ }
+
+}
+
+/*--- proto_register_qsig ---------------------------------------------------*/
+void proto_register_qsig(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_qsig_operation, { "Operation", "qsig.operation",
+ FT_UINT8, BASE_DEC, VALS(qsig_str_operation), 0x0,
+ NULL, HFILL }},
+ { &hf_qsig_service, { "Service", "qsig.service",
+ FT_UINT8, BASE_DEC, VALS(qsig_str_service), 0x0,
+ "Supplementary Service", HFILL }},
+ { &hf_qsig_error, { "Error", "qsig.error",
+ FT_UINT8, BASE_DEC, VALS(qsig_str_error), 0x0,
+ NULL, HFILL }},
+ { &hf_qsig_ie_type, { "Type", "qsig.ie.type",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ "Information Element Type", HFILL }},
+ { &hf_qsig_ie_type_cs4, { "Type", "qsig.ie.type.cs4",
+ FT_UINT8, BASE_HEX, VALS(qsig_str_ie_type_cs4), 0x0,
+ "Information Element Type (Codeset 4)", HFILL }},
+ { &hf_qsig_ie_type_cs5, { "Type", "qsig.ie.type.cs5",
+ FT_UINT8, BASE_HEX, VALS(qsig_str_ie_type_cs5), 0x0,
+ "Information Element Type (Codeset 5)", HFILL }},
+ { &hf_qsig_ie_len, { "Length", "qsig.ie.len",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ "Information Element Length", HFILL }},
+ { &hf_qsig_ie_data, { "Data", "qsig.ie.data",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_qsig_tc, { "Transit count", "qsig.tc",
+ FT_UINT8, BASE_DEC, NULL, 0x1F,
+ NULL, HFILL }},
+ { &hf_qsig_pc, { "Party category", "qsig.pc",
+ FT_UINT8, BASE_HEX, VALS(qsig_str_pc), 0x07,
+ NULL, HFILL }},
+#include "packet-qsig-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_qsig,
+ &ett_qsig_ie,
+ &ett_qsig_unknown_extension,
+#include "packet-qsig-ettarr.c"
+ &ett_cnq_PSS1InformationElement,
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_qsig_unsupported_arg_type, { "qsig.unsupported.arg_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ARGUMENT TYPE (QSIG)", EXPFILL }},
+ { &ei_qsig_unsupported_result_type, { "qsig.unsupported.result_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED RESULT TYPE (QSIG)", EXPFILL }},
+ { &ei_qsig_unsupported_error_type, { "qsig.unsupported.error_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ERROR TYPE (QSIG)", EXPFILL }},
+ };
+
+ expert_module_t* expert_qsig;
+
+ /* Register protocol and dissector */
+ proto_qsig = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_qsig, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_qsig = expert_register_protocol(proto_qsig);
+ expert_register_field_array(expert_qsig, ei, array_length(ei));
+
+ /* Register dissector tables */
+ extension_dissector_table = register_dissector_table("qsig.ext", "QSIG Extension", FT_STRING, BASE_NONE, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+
+ qsig_init_tables();
+}
+
+
+/*--- proto_reg_handoff_qsig ------------------------------------------------*/
+void proto_reg_handoff_qsig(void) {
+ int i;
+ gint key;
+ const gchar *oid;
+ dissector_handle_t q931_handle;
+ dissector_handle_t qsig_arg_handle;
+ dissector_handle_t qsig_res_handle;
+ dissector_handle_t qsig_err_handle;
+ dissector_handle_t qsig_ie_handle;
+
+ q931_handle = find_dissector("q931");
+ q931_ie_handle = find_dissector("q931.ie");
+
+ qsig_arg_handle = create_dissector_handle(dissect_qsig_arg, proto_qsig);
+ qsig_res_handle = create_dissector_handle(dissect_qsig_res, proto_qsig);
+ for (i=0; i<(int)array_length(qsig_op_tab); i++) {
+ dissector_add_uint("q932.ros.local.arg", qsig_op_tab[i].opcode, qsig_arg_handle);
+ dissector_add_uint("q932.ros.local.res", qsig_op_tab[i].opcode, qsig_res_handle);
+ key = qsig_op_tab[i].opcode;
+ oid = (const gchar *)g_hash_table_lookup(qsig_opcode2oid_hashtable, &key);
+ if (oid) {
+ dissector_add_string("q932.ros.global.arg", oid, qsig_arg_handle);
+ dissector_add_string("q932.ros.global.res", oid, qsig_res_handle);
+ }
+ }
+ qsig_err_handle = create_dissector_handle(dissect_qsig_err, proto_qsig);
+ for (i=0; i<(int)array_length(qsig_err_tab); i++) {
+ dissector_add_uint("q932.ros.local.err", qsig_err_tab[i].errcode, qsig_err_handle);
+ }
+
+ qsig_ie_handle = create_dissector_handle(dissect_qsig_ie_cs4, proto_qsig);
+ /* QSIG-TC - Transit counter */
+ dissector_add_uint("q931.ie", CS4 | QSIG_IE_TRANSIT_COUNTER, qsig_ie_handle);
+
+ qsig_ie_handle = create_dissector_handle(dissect_qsig_ie_cs5, proto_qsig);
+ /* SSIG-BC - Party category */
+ dissector_add_uint("q931.ie", CS5 | QSIG_IE_PARTY_CATEGORY, qsig_ie_handle);
+
+ /* RFC 3204, 3.2 QSIG Media Type */
+ dissector_add_string("media_type", "application/qsig", q931_handle);
+
+}
+
+/*---------------------------------------------------------------------------*/
diff --git a/epan/dissectors/asn1/qsig/packet-qsig-template.h b/epan/dissectors/asn1/qsig/packet-qsig-template.h
new file mode 100644
index 0000000000..ae14ffba00
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/packet-qsig-template.h
@@ -0,0 +1,30 @@
+/* packet-qsig.h
+ * Routines for QSIG packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_QSIG_H
+#define PACKET_QSIG_H
+
+#include "packet-qsig-exp.h"
+
+#endif /* PACKET_QSIG_H */
+
diff --git a/epan/dissectors/asn1/qsig/qsig-gf-ade.asn b/epan/dissectors/asn1/qsig/qsig-gf-ade.asn
new file mode 100644
index 0000000000..78a3c44c34
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/qsig-gf-ade.asn
@@ -0,0 +1,132 @@
+-- QSIG-GF-ADE.asn
+--
+-- Taken from Ecma International
+-- http://www.ecma-international.org/publications/standards/Ecma-165.htm
+--
+-- B.1 Addressing information
+--
+
+Addressing-Data-Elements-asn1-97 {iso(1) standard(0)
+ pss1-generic-procedures(11582) addressing-data-elements-asn1-97(20)}
+DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+PresentedAddressScreened ::= CHOICE {
+ presentationAllowedAddressS [0] IMPLICIT AddressScreened,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedAddressS [3] IMPLICIT AddressScreened}
+
+PresentedAddressUnscreened ::= CHOICE {
+ presentationAllowedAddressU [0] IMPLICIT Address,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedAddressU [3] IMPLICIT Address}
+
+PresentedNumberScreened ::= CHOICE {
+ presentationAllowedAddressNS [0] IMPLICIT NumberScreened,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedAddressNS [3] IMPLICIT NumberScreened}
+
+PresentedNumberUnscreened ::= CHOICE {
+ presentationAllowedAddressNU [0] PartyNumber,
+ presentationRestricted [1] IMPLICIT NULL,
+ numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+ presentationRestrictedAddressNU [3] PartyNumber}
+
+AddressScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator,
+ partySubaddress PartySubaddress OPTIONAL}
+
+NumberScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator}
+
+Address ::= SEQUENCE {
+ partyNumber PartyNumber,
+ partySubaddress PartySubaddress OPTIONAL}
+
+PartyNumber ::= CHOICE {
+ unknownPartyNumber [0] IMPLICIT NumberDigits,
+ -- the numbering plan is the default numbering
+ -- plan of the network. It is recommanded that
+ -- this value is used.
+ publicPartyNumber [1] IMPLICIT PublicPartyNumber,
+ -- the numbering plan is according to
+ -- Recommendation E.163 and E.164.
+ dataPartyNumber [3] IMPLICIT NumberDigits,
+ -- not used, value reserved.
+ telexPartyNumber [4] IMPLICIT NumberDigits,
+ -- not used, value reserved.
+ privatePartyNumber [5] IMPLICIT PrivatePartyNumber,
+ nationalStandardPartyNumber [8] IMPLICIT NumberDigits}
+
+-- not used, value reserved.
+PublicPartyNumber ::= SEQUENCE {
+ publicTypeOfNumber PublicTypeOfNumber,
+ publicNumberDigits NumberDigits}
+
+PrivatePartyNumber ::= SEQUENCE {
+ privateTypeOfNumber PrivateTypeOfNumber,
+ privateNumberDigits NumberDigits}
+
+NumberDigits ::= NumericString(SIZE (1..20))
+
+PublicTypeOfNumber ::= ENUMERATED {
+ unknown(0),
+ -- if used number digits carry prefix indicating type
+ -- of number according to national recommendations.
+ internationalNumber(1), nationalNumber(2),
+ networkSpecificNumber(3),
+ -- not used, value reserved
+ subscriberNumber(4), abbreviatedNumber(6)}
+
+-- valid only for called party number at the outgoing
+-- access, network substitutes appropriate number.
+PrivateTypeOfNumber ::= ENUMERATED {
+ unknown(0), level2RegionalNumber(1), level1RegionalNumber(2),
+ pISNSpecificNumber(3), localNumber(4), abbreviatedNumber(6)}
+
+PartySubaddress ::= CHOICE {
+ userSpecifiedSubaddress UserSpecifiedSubaddress,
+ -- not recommended.
+ nSAPSubaddress NSAPSubaddress}
+
+-- according to Recommendation X.213.
+UserSpecifiedSubaddress ::= SEQUENCE {
+ subaddressInformation SubaddressInformation,
+ oddCountIndicator BOOLEAN OPTIONAL}
+
+-- used when the coding of subaddress is BCD
+NSAPSubaddress ::= OCTET STRING(SIZE (1..20))
+
+-- specified according to X.213. Some networks may
+-- limit the subaddress value to some other length
+-- e.g. 4 octets
+SubaddressInformation ::= OCTET STRING(SIZE (1..20))
+
+-- coded according to user requirements. Some networks
+-- may limit the subaddress value to some other length
+-- e.g. 4 octets
+ScreeningIndicator ::= ENUMERATED {
+ userProvidedNotScreened(0),
+ -- number was provided by a remote user terminal
+ -- equipment, and has been screened by a network that
+ -- is not the local public or the local private
+ -- network.
+ userProvidedVerifiedAndPassed(1),
+ -- number was provided by a remote user terminal
+ -- equipment (or by a remote private network), and has
+ -- been screened by the local public or the local
+ -- private network.
+ userProvidedVerifiedAndFailed(2),
+ -- not used, value reserved.
+ networkProvided(3)}
+
+-- number was provided by local public or local
+-- private network.
+PresentationAllowedIndicator ::= BOOLEAN
+
+END -- of Addressing-Data-Elements \ No newline at end of file
diff --git a/epan/dissectors/asn1/qsig/qsig-gf-ext.asn b/epan/dissectors/asn1/qsig/qsig-gf-ext.asn
new file mode 100644
index 0000000000..3cee9f59bb
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/qsig-gf-ext.asn
@@ -0,0 +1,32 @@
+-- QSIG-GF-EXT.asn
+--
+-- Taken from Ecma International
+-- http://www.ecma-international.org/publications/standards/Ecma-165.htm
+--
+-- 9.2 Manufacturer specific additions to standardised operations
+--
+
+Manufacturer-specific-service-extension-class-asn1-97 {iso(1) standard(0)
+ pss1-generic-procedures(11582) msi-class-asn1-97(11)} DEFINITIONS ::=
+BEGIN
+
+EXTENSION ::= CLASS {
+ &ArgumentType ,
+ &extensionId OBJECT IDENTIFIER
+} WITH SYNTAX {
+ ARGUMENT &ArgumentType
+ IDENTIFIER &extensionId
+}
+
+Extension{EXTENSION:ExtensionSet} ::= SEQUENCE {
+ extensionId EXTENSION.&extensionId({Extensionset}),
+ extensionArgument EXTENSION.&ArgumentType({ExtensionSet}{@extensionId})
+}
+
+Extensionset EXTENSION ::= {...}
+
+-- ExtensionSet is a set of objects of class EXTENSION. Element extensionId is constrained to be
+-- the identifier of an object from that set, and element extensionArgument is constrained to be the
+-- argument type for that particular object.
+
+END -- of Manufacturer-specific-service-extension-class-asn1-97 \ No newline at end of file
diff --git a/epan/dissectors/asn1/qsig/qsig-gf-gp.asn b/epan/dissectors/asn1/qsig/qsig-gf-gp.asn
new file mode 100644
index 0000000000..f0937122a9
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/qsig-gf-gp.asn
@@ -0,0 +1,15 @@
+-- QSIG-GF-EXT.asn
+--
+-- Taken from Ecma International
+-- http://www.ecma-international.org/publications/standards/Ecma-165.htm
+--
+-- B.3 PSS1InformationElement
+--
+
+PSS1-generic-parameters-definition-asn1-97 { iso( 1) standard( 0)
+ pss1-generic-procedures( 11582) pss1-generic-parameters-asn1-97( 17)} DEFINITIONS ::=
+BEGIN
+
+PSS1InformationElement ::= [APPLICATION 0] IMPLICIT OCTET STRING
+
+END -- of PSS1 Generic parameters definition-asn1-97 \ No newline at end of file
diff --git a/epan/dissectors/asn1/qsig/qsig.cnf b/epan/dissectors/asn1/qsig/qsig.cnf
new file mode 100644
index 0000000000..ad2a75ff7b
--- /dev/null
+++ b/epan/dissectors/asn1/qsig/qsig.cnf
@@ -0,0 +1,187 @@
+# qsig.cnf
+# QSIG conformation file
+# 2007 Tomas Kukosa
+
+#.OPT
+BER
+GROUP_BY_PROT
+-o qsig
+#.END
+
+#.EXPORTS EXTERN VALS_WITH_TABLE WS_DLL
+
+Name
+
+#.MODULE
+Addressing-Data-Elements-asn1-97 qsig
+Manufacturer-specific-service-extension-class-asn1-97 qsig
+PSS1-generic-parameters-definition-asn1-97 qsig
+
+Name-Operations-asn1-97 qsig.na
+Call-Diversion-Operations-asn1-97 qsig.cf
+Path-Replacement-Operations-asn1-97 qsig.pr
+Call-Transfer-Operations-asn1-97 qsig.ct
+SS-CC-Operations-asn1-97 qsig.cc
+Call-Offer-Operations-asn1-97 qsig.co
+Do-Not-Disturb-Operations-asn1-97 qsig.dnd
+Call-Intrusion-Operations-asn1-97 qsig.ci
+SS-AOC-Operations-asn1-97 qsig.aoc
+Recall-Operations-asn1-97 qsig.re
+Call-Interception-Operations-asn1-97 qsig.cint
+Synchronization-Operations-asn1-97 qsig.sync
+Common-Information-Operations-asn1-97 qsig.cmn
+Call-Interruption-Operations-asn1-97 qsig.cpi
+PUM-Registration-Operations-asn1-97 qsig.pumr
+Private-User-Mobility-Call-Handling-Operations-asn1-97 qsig.pumch
+Single-Step-Call-Transfer-Operations-asn1-97 qsig.ssct
+WTM-Location-Registration-Operations-asn1-97 qsig.wtmlr
+Wireless-Terminal-Call-Handling-Operations-asn1-97 qsig.wtmch
+WTM-Authentication-Operations-asn1-97 qsig.wtmau
+SS-SD-Operations-asn1-97 qsig.sd
+Call-Identification-and-Call-Linkage-Operations-asn1-97 qsig.cidl
+Short-Message-Service-Operations-asn1-97 qsig.sms
+SS-MCR-Operations-asn97 qsig.mcr
+SS-MCM-Operations-asn1-97 qsig.mcm
+SS-MID-Operations-asn1-97 qsig.mid
+
+#.PDU
+
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+ERROR.&ParameterType
+
+#.END
+
+#.TYPE_RENAME
+ARG-activateDiversionQ/extension ADExtension
+ARG-deactivateDiversionQ/extension DDExtension
+ARG-interrogateDiversionQ/extension IDExtension
+ARG-checkRestriction/extension CHRExtension
+ARG-callRerouteing/extension CRRExtension
+ARG-divertingLegInformation1/extension DLI1Extension
+ARG-divertingLegInformation2/extension DLI2Extension
+ARG-divertingLegInformation3/extension DLI3Extension
+IntResult/extension IRExtension
+PRProposeArg/extension PRPExtension
+PRSetupArg/extension PRSExtension
+PRRetainArg/extension PRRExtension
+CTInitiateArg/argumentExtension CTIargumentExtension
+CTSetupArg/argumentExtension CTSargumentExtension
+CTActiveArg/argumentExtension CTAargumentExtension
+CTCompleteArg/argumentExtension CTCargumentExtension
+CTUpdateArg/argumentExtension CTUargumentExtension
+SubaddressTransferArg/argumentExtension STargumentExtension
+DNDActivateArg/argumentExtension DNDAargumentExtension
+DNDDeactivateArg/argumentExtension DNDDargumentExtension
+DNDInterrogateArg/argumentExtension DNDIargumentExtension
+DNDOverrideArg/argumentExtension DNDOargumentExtension
+SSCTInitiateArg/argumentExtension SSCTIargumentExtension
+SSCTSetupArg/argumentExtension SSCTSargumentExtension
+SSCTDigitInfoArg/argumentExtension SSCTDargumentExtension
+PumRegistrArg/pumUserId RpumUserId
+PumDelRegArg/pumUserId XpumUserId
+PumDe-regArg/pumUserId DpumUserId
+PumInterrogArg/pumUserId IpumUserId
+MCMNewMsgArg/argumentExt MCMNewArgumentExt
+MCMNoNewMsgArg/argumentExt MCMNoNewArgumentExt
+MCMUpdateReqArg/argumentExt MCMUpdArgArgumentExt
+MCMUpdateReqResElt/argumentExt MCMUpdResArgumentExt
+#.END
+
+#.FIELD_RENAME
+NameArg/nameSequence/extension extensionNA
+ARG-activateDiversionQ/extension extensionAD
+ARG-deactivateDiversionQ/extension extensionDD
+ARG-interrogateDiversionQ/extension extensionID
+ARG-checkRestriction/extension extensionCHR
+ARG-callRerouteing/extension extensionCRR
+ARG-divertingLegInformation1/extension extensionDLI1
+ARG-divertingLegInformation2/extension extensionDLI2
+ARG-divertingLegInformation3/extension extensionDLI3
+IntResult/extension extensionIR
+PRSetupArg/extension extensionPRS
+PRProposeArg/extension extensionPRP
+PRRetainArg/extension extensionPRR
+CTInitiateArg/argumentExtension argumentExtensionCTI
+CTSetupArg/argumentExtension argumentExtensionCTS
+CTActiveArg/argumentExtension argumentExtensionCTA
+CTCompleteArg/argumentExtension argumentExtensionCTC
+CTUpdateArg/argumentExtension argumentExtensionCTU
+SubaddressTransferArg/argumentExtension argumentExtensionST
+DNDActivateArg/argumentExtension argumentExtensionDNDA
+DNDDeactivateArg/argumentExtension argumentExtensionDNDD
+DNDInterrogateArg/argumentExtension argumentExtensionDNDI
+DNDOverrideArg/argumentExtension argumentExtensionDNDO
+SSCTInitiateArg/argumentExtension argumentExtensionSSCTI
+SSCTSetupArg/argumentExtension argumentExtensionSSCTS
+SSCTDigitInfoArg/argumentExtension argumentExtensionSSCTD
+PumRegistrArg/pumUserId pumRUserId
+PumDelRegArg/pumUserId pumXUserId
+PumDe-regArg/pumUserId pumDUserId
+PumInterrogArg/pumUserId pumIUserId
+MCMNewMsgArg/argumentExt argumentExtMCMNew
+MCMNoNewMsgArg/argumentExt argumentExtMCMNoNew
+MCMUpdateReqArg/argumentExt argumentExtMCMUpdArg
+MCMUpdateReqResElt/argumentExt argumentExtMCMUpdRes
+CallIdentificationAssignArg/extension extensiont
+CallIdentificationUpdateArg/extension extensiont
+DisplayArg/extension sdextension
+KeypadArg/extension sdextension
+AddressHeader/priority ahpriority
+WtmoArg/extension wtmoaextension
+PumoArg/extension pumoaextension
+#.END
+
+
+#.TYPE_ATTR
+NameData TYPE = FT_STRING DISPLAY = BASE_NONE
+#.END
+
+#.FN_HDR Extension
+ extension_oid = NULL;
+#.FN_PARS Extension/extensionId FN_VARIANT = _str VAL_PTR = &extension_oid
+#.FN_BODY Extension/extensionArgument
+ tvbuff_t *next_tvb;
+
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
+ if (!dissector_try_string(extension_dissector_table, extension_oid, next_tvb, actx->pinfo, tree, NULL)) {
+ proto_tree *next_tree;
+
+ next_tree=proto_tree_add_subtree_format(tree, next_tvb, 0, -1, ett_qsig_unknown_extension, NULL,
+ "QSIG: Dissector for extension with OID:%%s not implemented.", extension_oid);
+
+ dissect_unknown_ber(actx->pinfo, next_tvb, offset, next_tree);
+ }
+
+ offset+=tvb_reported_length_remaining(tvb, offset);
+#.END
+
+#.FN_BODY AuthAlgorithm/param
+
+#.END
+
+#.FN_BODY PSS1InformationElement/_untag VAL_PTR = &out_tvb
+ tvbuff_t *out_tvb = NULL;
+ proto_tree *data_tree;
+
+%(DEFAULT_BODY)s
+ data_tree = proto_item_add_subtree(%(ACTX)s->created_item, ett_cnq_PSS1InformationElement);
+ if (out_tvb && (tvb_reported_length(out_tvb) > 0) && q931_ie_handle)
+ call_dissector(q931_ie_handle, out_tvb, %(ACTX)s->pinfo, data_tree);
+#.END
+
+#.TABLE10_BODY OPERATION
+ { %(&operationCode)3s, "%(_name)s" },
+#.END
+
+#.TABLE11_BODY OPERATION
+ /* %(_name)-24s */ { %(&operationCode)3s, %(_argument_pdu)s, %(_result_pdu)s },
+#.END
+
+#.TABLE20_BODY ERROR
+ { %(&errorCode)4s, "%(_name)s" },
+#.END
+
+#.TABLE21_BODY ERROR
+ /* %(_name)-24s */ { %(&errorCode)4s, %(_parameter_pdu)s },
+#.END
diff --git a/epan/dissectors/asn1/ranap/CMakeLists.txt b/epan/dissectors/asn1/ranap/CMakeLists.txt
new file mode 100644
index 0000000000..cab69e5623
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/CMakeLists.txt
@@ -0,0 +1,53 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ranap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ RANAP-CommonDataTypes.asn
+ RANAP-Constants.asn
+ RANAP-Containers.asn
+ RANAP-IEs.asn
+ RANAP-PDU-Contents.asn
+ RANAP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ranap/Makefile.am b/epan/dissectors/asn1/ranap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ranap/Makefile.common b/epan/dissectors/asn1/ranap/Makefile.common
new file mode 100644
index 0000000000..915d547aa7
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/Makefile.common
@@ -0,0 +1,46 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = ranap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ RANAP-CommonDataTypes.asn \
+ RANAP-Constants.asn \
+ RANAP-Containers.asn \
+ RANAP-IEs.asn \
+ RANAP-PDU-Contents.asn \
+ RANAP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/ranap/Makefile.nmake b/epan/dissectors/asn1/ranap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ranap/RANAP-CommonDataTypes.asn b/epan/dissectors/asn1/ranap/RANAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..30e9d3e96f
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/RANAP-CommonDataTypes.asn
@@ -0,0 +1,41 @@
+-- RANAP-CommonDataTypes.asn
+--
+-- 3GPP TS 25.413 V10.4.0 (2011-12)
+-- http://www.3gpp.org/ftp/Specs/html-info/25413.htm
+--
+-- 9.3.5 Common Definitions
+--
+
+-- **************************************************************
+--
+-- 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/epan/dissectors/asn1/ranap/RANAP-Constants.asn b/epan/dissectors/asn1/ranap/RANAP-Constants.asn
new file mode 100644
index 0000000000..1cc1fab27f
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/RANAP-Constants.asn
@@ -0,0 +1,386 @@
+-- RANAP-Constants.asn
+--
+-- 3GPP TS 25.413 V10.4.0 (2011-12)
+-- http://www.3gpp.org/ftp/Specs/html-info/25413.htm
+--
+-- 9.3.6 Constant Definitions
+--
+-- **************************************************************
+--
+-- 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-Not-Used-8 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
+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 ::= 46
+
+
+
+-- **************************************************************
+--
+-- 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
+maxNrOfCSGs INTEGER ::= 256
+maxNrOfEUTRAFreqs INTEGER ::= 8
+maxNrOfCellIds INTEGER ::= 32
+maxNrOfRAIs INTEGER ::= 8
+maxNrOfLAIs INTEGER ::= 8
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AreaIdentity INTEGER ::= 0
+id-Not-Used-1 INTEGER ::= 1
+id-Not-Used-2 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-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-Not-Used-73 INTEGER ::= 73
+id-Not-Used-74 INTEGER ::= 74
+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-Not-Used-101 INTEGER ::= 101
+id-Not-Used-102 INTEGER ::= 102
+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
+id-CSG-Id-List INTEGER ::= 229
+id-PSRABtobeReplaced INTEGER ::= 230
+id-E-UTRAN-Service-Handover INTEGER ::= 231
+id-Not-Used-232 INTEGER ::= 232
+id-UE-AggregateMaximumBitRate INTEGER ::= 233
+id-CSG-Membership-Status INTEGER ::= 234
+id-Cell-Access-Mode INTEGER ::= 235
+id-IP-Source-Address INTEGER ::= 236
+id-CSFB-Information INTEGER ::= 237
+id-PDP-TypeInformation-extension INTEGER ::= 238
+id-MSISDN INTEGER ::= 239
+id-Offload-RAB-Parameters INTEGER ::= 240
+id-LGW-TransportLayerAddress INTEGER ::= 241
+id-Correlation-ID INTEGER ::= 242
+id-IRAT-Measurement-Configuration INTEGER ::= 243
+id-MDT-Configuration INTEGER ::= 244
+id-Priority-Class-Indicator INTEGER ::= 245
+id-Not-Used-246 INTEGER ::= 246
+id-RNSAPRelocationParameters INTEGER ::= 247
+id-RABParametersList INTEGER ::= 248
+id-Management-Based-MDT-Allowed INTEGER ::= 249
+id-HigherBitratesThan16MbpsFlag INTEGER ::= 250
+id-Trace-Collection-Entity-IP-Addess INTEGER ::= 251
+id-End-Of-CSFB INTEGER ::= 252
+
+END
diff --git a/epan/dissectors/asn1/ranap/RANAP-Containers.asn b/epan/dissectors/asn1/ranap/RANAP-Containers.asn
new file mode 100644
index 0000000000..d88e0781fa
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/RANAP-Containers.asn
@@ -0,0 +1,202 @@
+-- RANAP-Containers.asn
+--
+-- 3GPP TS 25.413 V10.4.0 (2011-12)
+-- http://www.3gpp.org/ftp/Specs/html-info/25413.htm
+--
+-- 9.3.7 Container Definitions
+--
+
+-- **************************************************************
+--
+-- 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/epan/dissectors/asn1/ranap/RANAP-IEs.asn b/epan/dissectors/asn1/ranap/RANAP-IEs.asn
new file mode 100644
index 0000000000..0007063730
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/RANAP-IEs.asn
@@ -0,0 +1,2502 @@
+-- RANAP-IEs.asn
+--
+-- 3GPP TS 25.413 V10.4.0 (2011-12)
+-- http://www.3gpp.org/ftp/Specs/html-info/25413.htm
+--
+-- 9.3.4 Information Element Definitions
+--
+
+-- **************************************************************
+--
+-- 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
+ maxNrOfCSGs,
+ 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,
+ maxNrOfEUTRAFreqs,
+ maxNrOfCellIds,
+ maxNrOfRAIs,
+ maxNrOfLAIs,
+ maxNrOfVol,
+
+ 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,
+ id-PSRABtobeReplaced,
+ id-SRVCC-Information,
+ id-CSG-Id,
+ id-CSFB-Information,
+ id-IRAT-Measurement-Configuration,
+ id-Management-Based-MDT-Allowed
+
+
+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),
+ csg-subscription-expiry(84)
+} (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),
+ invalid-CSG-Id(269)
+} (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-Access-Mode::= ENUMERATED {
+ hybrid,
+ ...
+}
+
+CellBased::= SEQUENCE {
+ cellIdList CellIdList,
+ iE-Extensions ProtocolExtensionContainer { {CellBased-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBased-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdList ::= SEQUENCE (SIZE (1..maxNrOfCellIds)) OF
+ Cell-Id
+
+Cell-Id ::= INTEGER (0..268435455)
+
+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)
+
+Correlation-ID ::= OCTET STRING (SIZE (4))
+
+CSFB-Information ::= ENUMERATED {
+ csfb,
+ csfb-high-priority,
+ ...
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+CSG-Id-List ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF
+ CSG-Id
+
+CSG-Membership-Status ::= ENUMERATED {
+ member,
+ non-member,
+ ...
+}
+
+-- D
+
+DataPDUType ::= ENUMERATED {
+ pDUtype0,
+ pDUtype1,
+ ...
+ }
+
+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)),
+ ...
+}
+
+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
+
+End-Of-CSFB ::= ENUMERATED{
+ end-of-CSFB,
+ ...
+}
+
+EquipmentsToBeTraced ::= CHOICE {
+ iMEIlist IMEIList,
+ iMEISVlist IMEISVList,
+ iMEIgroup IMEIGroup,
+ iMEISVgroup IMEISVGroup,
+ ...
+}
+
+E-UTRAN-Service-Handover ::= ENUMERATED {
+ handover-to-E-UTRAN-shall-not-be-performed,
+ ...
+}
+
+Event ::= ENUMERATED {
+ stop-change-of-service-area,
+ direct,
+ change-of-servicearea,
+ ...,
+ stop-direct,
+ periodic,
+ stop-periodic
+}
+
+Event1F-Parameters ::= SEQUENCE {
+ measurementQuantity MeasurementQuantity,
+ threshold INTEGER(-120..165),
+ ...
+}
+
+Event1I-Parameters ::= SEQUENCE {
+ threshold INTEGER(-120..-25),
+ ...
+}
+
+ExtendedGuaranteedBitrate ::= INTEGER (16000001..256000000)
+-- Unit is bits per sec
+
+ExtendedMaxBitrate ::= INTEGER (16000001..256000000)
+-- Unit is bits per sec
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+-- F
+
+FrameSequenceNumber ::= INTEGER(0..15)
+
+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 TS 48.008 [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 TS 48.008 [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
+
+HigherBitratesThan16MbpsFlag ::= ENUMERATED{
+ allowed,
+ not-allowed,
+ ...
+}
+
+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
+
+ImmediateMDT ::= SEQUENCE {
+ measurementsToActivate MeasurementsToActivate,
+ m1report M1Report OPTIONAL,
+ -- Included in case of event-triggered reporting for measurement M1
+ m2report M2Report OPTIONAL,
+ -- Included in case of event-triggered reporting for measurement M2
+ ...
+}
+
+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,
+ ...
+}
+
+LocationReportingTransferInformation ::= SEQUENCE {
+ reportChangeOfSAI ReportChangeOfSAI OPTIONAL,
+ periodicReportingIndicator PeriodicReportingIndicator OPTIONAL,
+ directReportingIndicator DirectReportingIndicator OPTIONAL,
+ verticalAccuracyCode VerticalAccuracyCode OPTIONAL,
+ positioningPriorityChangeSAI PositioningPriority OPTIONAL,
+ positioningPriorityDirect PositioningPriority OPTIONAL,
+ clientTypePeriodic ClientType OPTIONAL,
+ clientTypeDirect ClientType OPTIONAL,
+ responseTime ResponseTime OPTIONAL,
+ includeVelocity IncludeVelocity OPTIONAL,
+ periodicLocationInfo PeriodicLocationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LocationReportingTransferInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+LocationReportingTransferInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportChangeOfSAI ::= ENUMERATED {
+ requested,
+ ...
+ }
+
+PeriodicReportingIndicator::= ENUMERATED {
+ periodicSAI,
+ periodicGeo,
+ ...
+ }
+
+DirectReportingIndicator::= ENUMERATED {
+ directSAI,
+ directGeo,
+ ...
+ }
+
+L3-Information ::= OCTET STRING
+
+-- M
+
+M1Report ::= CHOICE {
+ periodic MDT-Report-Parameters,
+ event1F Event1F-Parameters,
+ ...
+}
+
+M2Report ::= CHOICE {
+ periodic MDT-Report-Parameters,
+ event1I Event1I-Parameters,
+ ...
+}
+
+Management-Based-MDT-Allowed ::= ENUMERATED {
+ allowed, ... }
+
+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))
+
+MDT-Activation ::= ENUMERATED { immediateMDTonly,
+ loggedMDTonly,
+ immediateMDTandTrace,
+ ... }
+
+MDTAreaScope ::= CHOICE {
+ cellbased CellBased,
+ labased LABased,
+ rabased RABased,
+ plmn-area-based NULL,
+ ...
+}
+
+MDT-Configuration ::= SEQUENCE {
+ mdtActivation MDT-Activation,
+ mdtAreaScope MDTAreaScope,
+ mdtMode MDTMode,
+ iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MDT-Configuration-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+MDTMode ::= CHOICE {
+ immediateMDT ImmediateMDT,
+ loggedMDT LoggedMDT,
+ ...
+}
+
+MDT-Report-Parameters ::= SEQUENCE {
+ reportInterval ReportInterval,
+ reportAmount ReportAmount,
+ ...
+}
+
+MeasurementQuantity ::= ENUMERATED {
+ cpichEcNo,
+ cpichRSCP,
+ pathloss,
+ ...
+}
+
+MeasurementsToActivate::= BIT STRING (SIZE (8))
+
+MSISDN ::= OCTET STRING (SIZE (1..9))
+
+-- 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
+
+Offload-RAB-Parameters ::= SEQUENCE {
+ accessPointName Offload-RAB-Parameters-APN,
+ chargingCharacteristics Offload-RAB-Parameters-ChargingCharacteristics,
+ iE-Extensions ProtocolExtensionContainer { { Offload-RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Offload-RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Offload-RAB-Parameters-APN ::= OCTET STRING (SIZE (1..255))
+
+Offload-RAB-Parameters-ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OMC-ID ::= OCTET STRING (SIZE (3..22))
+-- Reference: GSM TS 12.20 [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,
+ ...
+}
+PDP-TypeInformation-extension ::= SEQUENCE (SIZE (1..maxNrOfPDPDirections)) OF
+ PDP-Type-extension
+
+PDP-Type-extension ::= ENUMERATED {
+ ipv4-and-ipv6,
+ ...
+}
+
+PDUType14FrameSequenceNumber ::= INTEGER(0..3)
+
+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
+
+LABased ::= SEQUENCE {
+ laiList LAI-List,
+ iE-Extensions ProtocolExtensionContainer { {LABased-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LABased-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+LAI-List ::= SEQUENCE (SIZE (1..maxNrOfLAIs)) OF
+ LAI
+
+
+
+LoggedMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LoggedMDT-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LoggingInterval ::= ENUMERATED {
+ s1d28,
+ s2d56,
+ s5d12,
+ s10d24,
+ s20d48,
+ s30d72,
+ s40d96,
+ s61d44,
+ ...
+ }
+
+LoggingDuration ::= ENUMERATED {
+ min10,
+ min20,
+ min40,
+ min60,
+ min90,
+ min120,
+...}
+
+
+
+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)
+
+Priority-Class-Indicator ::= BIT STRING (SIZE(8))
+
+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,
+ ...
+}
+
+RABased ::= SEQUENCE {
+ raiList RAI-List,
+ iE-Extensions ProtocolExtensionContainer { {RABased-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RABased-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RAI-List ::= SEQUENCE (SIZE (1..maxNrOfRAIs)) OF
+ RAI
+
+RABDataVolumeReport ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
+ SEQUENCE {
+ dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
+ dataVolumeReference DataVolumeReference OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RABDataVolumeReport-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RABDataVolumeReport-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 },
+ ...
+}
+
+RABParametersList ::= SEQUENCE (SIZE (1.. maxNrOfRABs)) OF SEQUENCE {
+ rab-Id RAB-ID,
+ cn-domain CN-DomainIndicator,
+ rabDataVolumeReport RABDataVolumeReport OPTIONAL,
+ upInformation UPInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RABParametersList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RABParametersList-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,
+ 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,
+ ...
+}
+
+ReportInterval ::= ENUMERATED {
+ ms250,
+ ms500,
+ ms1000,
+ ms2000,
+ ms3000,
+ ms4000,
+ ms6000,
+ ms12000,
+ ms16000,
+ ms20000,
+ ms24000,
+ ms32000,
+ ms64000,
+ ... }
+
+ReportAmount ::= ENUMERATED { n1, n2, n4, n8, n16, n32, n64, infinity, ... }
+
+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,
+ ... ,
+ targeteNB-ID TargetENB-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 ::= {
+ ...
+}
+
+RNSAPRelocationParameters ::= SEQUENCE {
+ rabParmetersList RABParametersList OPTIONAL,
+ locationReporting LocationReportingTransferInformation OPTIONAL,
+ traceInformation TraceInformation OPTIONAL,
+ sourceSAI SAI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RNSAPRelocationParameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RNSAPRelocationParameters-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 TS 36.413 [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}|
+-- Extension for Release 8 to transfer to the Target RNC parameters required for SRVCC operation --
+ {ID id-SRVCC-Information CRITICALITY reject EXTENSION SRVCC-Information PRESENCE optional}|
+ {ID id-PSRABtobeReplaced CRITICALITY reject EXTENSION RAB-ID PRESENCE optional}|
+-- Extension for Release 9 to transfer to the Target RNC parameters required for CSFB operation --
+ {ID id-CSFB-Information CRITICALITY ignore EXTENSION CSFB-Information PRESENCE optional}|
+-- Extension for Release 10 to indicate to the Target RNC the need of continued IRAT measurement --
+ {ID id-IRAT-Measurement-Configuration CRITICALITY ignore EXTENSION IRAT-Measurement-Configuration PRESENCE optional}|
+-- Extension for Release 10 to indicate Management Based MDT Allowed --
+ {ID id-Management-Based-MDT-Allowed CRITICALITY ignore EXTENSION Management-Based-MDT-Allowed PRESENCE optional},
+ ...
+}
+
+IRAT-Measurement-Configuration ::= SEQUENCE {
+ rSRP INTEGER (0..97) OPTIONAL,
+ rSRQ INTEGER (0..34) OPTIONAL,
+ iRATmeasurementParameters IRATmeasurementParameters,
+ iE-Extensions ProtocolExtensionContainer { {IRAT-Measurement-Configuration-ExtIEs} } OPTIONAL}
+
+IRAT-Measurement-Configuration-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IRATmeasurementParameters::= SEQUENCE {
+ measurementDuration INTEGER (1..100),
+ eUTRANFrequencies EUTRANFrequencies OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IRATmeasurementParameters-ExtIEs} } OPTIONAL}
+
+IRATmeasurementParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRANFrequencies ::= SEQUENCE (SIZE (1..maxNrOfEUTRAFreqs)) OF SEQUENCE {
+ earfcn INTEGER (0..65535),
+ measBand MeasBand OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {EUTRANFrequencies-ExtIEs} } OPTIONAL}
+
+MeasBand ::= ENUMERATED {
+ v6,
+ v15,
+ v25,
+ v50,
+ v75,
+ v100
+}
+
+EUTRANFrequencies-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ uTRANcellID TargetCellId,
+ 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 TS 36.413 [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 TargetENB-ID
+}
+
+TargetENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {TargetENB-ID-ExtIEs} } OPTIONAL,
+ selectedTAI TAI,
+ ...
+}
+
+TargetENB-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+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,
+ ...
+}
+
+TraceInformation ::= SEQUENCE {
+ traceReference TraceReference,
+ ue-identity UE-ID,
+ tracePropagationParameters TracePropagationParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TraceInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TraceInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+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-AggregateMaximumBitRate ::= SEQUENCE {
+ uE-AggregateMaximumBitRateDownlink UE-AggregateMaximumBitRateDownlink OPTIONAL,
+ uE-AggregateMaximumBitRateUplink UE-AggregateMaximumBitRateUplink OPTIONAL,
+ ...
+}
+
+UE-AggregateMaximumBitRateDownlink ::= INTEGER (1..1000000000)
+-- Unit is bits per sec
+
+UE-AggregateMaximumBitRateUplink ::= INTEGER (1..1000000000)
+-- Unit is bits per sec
+
+
+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)
+
+UPInformation ::= SEQUENCE {
+ frameSeqNoUL FrameSequenceNumber,
+ frameSeqNoDL FrameSequenceNumber,
+ pdu14FrameSeqNoUL PDUType14FrameSequenceNumber,
+ pdu14FrameSeqNoDL PDUType14FrameSequenceNumber,
+ dataPDUType DataPDUType,
+ upinitialisationFrame UPInitialisationFrame,
+ iE-Extensions ProtocolExtensionContainer { { UPInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UPInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UPInitialisationFrame ::= OCTET STRING
+
+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/epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn b/epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn
new file mode 100644
index 0000000000..2b08a9606a
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn
@@ -0,0 +1,3496 @@
+-- RANAP-PDU-Contents.asn
+--
+-- 3GPP TS 25.413 V10.4.0 (2011-12)
+-- http://www.3gpp.org/ftp/Specs/html-info/25413.htm
+--
+-- 9.3.3 PDU Definitions
+--
+
+-- **************************************************************
+--
+-- 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,
+ Cell-Access-Mode,
+ ClientType,
+ CriticalityDiagnostics,
+ ChosenEncryptionAlgorithm,
+ ChosenIntegrityProtectionAlgorithm,
+ ClassmarkInformation2,
+ ClassmarkInformation3,
+ CSG-Id,
+ CSG-Id-List,
+ CSG-Membership-Status,
+ DL-GTP-PDU-SequenceNumber,
+ DL-N-PDU-SequenceNumber,
+ DataVolumeReportingIndication,
+ DeltaRAListofIdleModeUEs,
+ DRX-CycleLengthCoefficient,
+ EncryptionInformation,
+ EncryptionKey,
+ E-UTRAN-Service-Handover,
+ ExtendedRNC-ID,
+ FrequenceLayerConvergenceFlag,
+ GERAN-BSC-Container,
+ GERAN-Classmark,
+ 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,
+ Correlation-ID,
+ MBMS-PTP-RAB-ID,
+ MBMSBearerServiceType,
+ MBMSCountingInformation,
+ MBMSCNDe-Registration,
+ MBMSHCIndicator,
+ MBMSRegistrationRequestType,
+ MBMSServiceArea,
+ MBMSSessionDuration,
+ MBMSSessionIdentity,
+ MBMSSessionRepetitionNumber,
+ MSISDN,
+ NAS-PDU,
+ NAS-SequenceNumber,
+ NAS-SynchronisationIndicator,
+ NewBSS-To-OldBSS-Information,
+ NonSearchingIndication,
+ NumberOfSteps,
+ Offload-RAB-Parameters,
+ Offload-RAB-Parameters-APN,
+ Offload-RAB-Parameters-ChargingCharacteristics,
+ OMC-ID,
+ OldBSS-ToNewBSS-Information,
+ PagingAreaID,
+ PagingCause,
+ PDP-TypeInformation,
+ PDP-TypeInformation-extension,
+ 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-AggregateMaximumBitRate,
+ 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,
+ RNSAPRelocationParameters,
+ RABParametersList,
+ MDT-Configuration,
+ Priority-Class-Indicator,
+ Management-Based-MDT-Allowed,
+ HigherBitratesThan16MbpsFlag,
+ End-Of-CSFB
+
+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-Cell-Access-Mode,
+ id-ChosenEncryptionAlgorithm,
+ id-ChosenIntegrityProtectionAlgorithm,
+ id-ClassmarkInformation2,
+ id-ClassmarkInformation3,
+ id-ClientType,
+ id-CNMBMSLinkingInformation,
+ id-CriticalityDiagnostics,
+ id-CSG-Id,
+ id-CSG-Id-List,
+ id-CSG-Membership-Status,
+ 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-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-MSISDN,
+ id-NAS-PDU,
+ id-NAS-SequenceNumber,
+ id-NewBSS-To-OldBSS-Information,
+ id-NonSearchingIndication,
+ id-NumberOfSteps,
+ id-Offload-RAB-Parameters,
+ id-OMC-ID,
+ id-OldBSS-ToNewBSS-Information,
+ id-PagingAreaID,
+ id-PagingCause,
+ id-PDP-TypeInformation,
+ id-PDP-TypeInformation-extension,
+ 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-AggregateMaximumBitRate,
+ id-UE-ID,
+ id-UESBI-Iu,
+ id-UL-GTP-PDU-SequenceNumber,
+ id-UnsuccessfulLinkingList,
+ id-VelocityEstimate,
+ id-VerticalAccuracyCode,
+ id-PeriodicLocationInfo,
+ id-BroadcastGANSSAssistanceDataDecipheringKeys,
+ id-SubscriberProfileIDforRFP,
+ id-E-UTRAN-Service-Handover,
+ id-IP-Source-Address,
+ id-LGW-TransportLayerAddress,
+ id-Correlation-ID,
+ id-MDT-Configuration,
+ id-RNSAPRelocationParameters,
+ id-RABParametersList,
+ id-Priority-Class-Indicator,
+ id-Management-Based-MDT-Allowed,
+ id-HigherBitratesThan16MbpsFlag,
+ id-Trace-Collection-Entity-IP-Addess,
+ id-End-Of-CSFB
+
+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 ::= {
+ { ID id-End-Of-CSFB CRITICALITY ignore EXTENSION End-Of-CSFB PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 } |
+-- Extension for Release 9 to communicate to the CN the CSG id of the target cell --
+ { ID id-CSG-Id CRITICALITY reject EXTENSION CSG-Id PRESENCE optional} |
+-- Extension for Release 9 to communicate to the CN the hybrid access status of the target cell --
+ { ID id-Cell-Access-Mode CRITICALITY reject EXTENSION Cell-Access-Mode 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 }|
+-- Extension for Release 8 for SRVCC operation --
+ { ID id-SRVCC-Information CRITICALITY reject EXTENSION SRVCC-Information 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}|
+-- Extension for Release 8 to enable handover restriction to E-UTRAN --
+ { ID id-E-UTRAN-Service-Handover CRITICALITY ignore EXTENSION E-UTRAN-Service-Handover PRESENCE optional}|
+-- Extension for Release 9 to enable a new value --
+ { ID id-PDP-TypeInformation-extension CRITICALITY ignore EXTENSION PDP-TypeInformation-extension PRESENCE optional}|
+-- Extension for Release 10 to enable offload at Iu-PS for UTRAN --
+ { ID id-Offload-RAB-Parameters CRITICALITY ignore EXTENSION Offload-RAB-Parameters 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}|
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional}|
+-- Extension for Release 9 to communicate to the target cell the CSG id reported by the source --
+ { ID id-CSG-Id CRITICALITY reject EXTENSION CSG-Id PRESENCE optional}|
+-- Extension for Release 9 for enabling UE prioritisation during access to hybrid cells --
+ { ID id-CSG-Membership-Status CRITICALITY ignore EXTENSION CSG-Membership-Status PRESENCE optional}|
+-- Extension for Release 10 to enable offload at Iu-PS for UTRAN --
+ { ID id-MSISDN CRITICALITY ignore EXTENSION MSISDN 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 }|
+ {ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id 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 ::= {
+-- Extension for Release 9 to enable the CN to handle potential UE NAS QoS issues related to higher bitrates --
+ { ID id-HigherBitratesThan16MbpsFlag CRITICALITY ignore EXTENSION HigherBitratesThan16MbpsFlag PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 ::= {
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore EXTENSION ChosenIntegrityProtectionAlgorithm PRESENCE optional}|
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore EXTENSION ChosenEncryptionAlgorithm PRESENCE optional}|
+-- Extension for Release 9 to enable the CN to handle potential UE NAS QoS issues related to higher bitrates --
+ { ID id-HigherBitratesThan16MbpsFlag CRITICALITY ignore EXTENSION HigherBitratesThan16MbpsFlag PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 ::= {
+ -- Extension for Release 10 to enable Offload at Iu-ps for UTRAN --
+ { ID id-Offload-RAB-Parameters CRITICALITY ignore EXTENSION Offload-RAB-Parameters PRESENCE optional},
+ ...
+}
+
+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 ::= {
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional}|
+-- Extension for Release 10 to enable Offload at Iu-ps for UTRAN --
+ { ID id-MSISDN CRITICALITY ignore EXTENSION MSISDN PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 } |
+-- Extension for Release 8 to support CSG --
+ { ID id-CSG-Id-List CRITICALITY ignore EXTENSION CSG-Id-List 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 }|
+-- Extension for Release 8 for SRVCC operation --
+ { ID id-SRVCC-Operation-Possible CRITICALITY ignore EXTENSION SRVCC-Operation-Possible PRESENCE optional }|
+-- Extension for Release 9 to allow for UE prioritisation during access to hybrid cells --
+ { ID id-CSG-Membership-Status CRITICALITY ignore EXTENSION CSG-Membership-Status PRESENCE optional }|
+-- Extension for Release 10 to indicate Management Based MDT Allowed --
+ { ID id-Management-Based-MDT-Allowed CRITICALITY ignore EXTENSION Management-Based-MDT-Allowed 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}|
+-- Extension for Release 10 to support MDT--
+ { ID id-MDT-Configuration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}|
+-- Extension for Release 10 to support MDT--
+ { ID id-Trace-Collection-Entity-IP-Addess CRITICALITY ignore EXTENSION TransportLayerAddress 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}|
+-- Extension for Release 9 to allow communication of the cell access mode --
+ { ID id-Cell-Access-Mode CRITICALITY reject EXTENSION Cell-Access-Mode PRESENCE optional}|
+-- Extension for Release 10 to support LIPA --
+ { ID id-LGW-TransportLayerAddress CRITICALITY reject EXTENSION TransportLayerAddress PRESENCE optional}|
+-- Extension for Release 9 to enable the CN to handle potential UE NAS QoS issues related to higher bitrates --
+ { ID id-HigherBitratesThan16MbpsFlag CRITICALITY ignore EXTENSION HigherBitratesThan16MbpsFlag 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}|
+-- Extension for Release 10 to support LIPA --
+ { ID id-LGW-TransportLayerAddress CRITICALITY reject EXTENSION TransportLayerAddress 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} |
+-- Extension for Release 10 to support Low Priority overload --
+ { ID id-Priority-Class-Indicator CRITICALITY ignore EXTENSION Priority-Class-Indicator 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 ::= {
+-- Extension for Release 8 to enable handover restriction to E-UTRAN --
+ { ID id-E-UTRAN-Service-Handover CRITICALITY ignore EXTENSION E-UTRAN-Service-Handover PRESENCE optional}|
+-- Extension for Release 10 to support LIPA --
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional},
+ ...
+}
+
+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}|
+-- Extension for Release Release 9 to enable a new value --
+ { ID id-PDP-TypeInformation-extension CRITICALITY ignore EXTENSION PDP-TypeInformation-extension PRESENCE optional}|
+-- Extension for Release 10 to enable Offload at Iu-ps for UTRAN --
+ { ID id-Offload-RAB-Parameters CRITICALITY ignore EXTENSION Offload-RAB-Parameters PRESENCE optional},
+ ...
+}
+
+RAB-AssignmentRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional}|
+-- Extension for Release 10 to enable Offload at Iu-ps for UTRAN --
+ { ID id-MSISDN CRITICALITY ignore EXTENSION MSISDN PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- 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} |
+-- Extension for Release 10 to enable RNSAP Relocation --
+ { ID id-RNSAPRelocationParameters CRITICALITY reject EXTENSION RNSAPRelocationParameters 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-IDPS 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 ::= {
+-- Extension for Release 8 to enable handover restriction to E-UTRAN --
+ { ID id-E-UTRAN-Service-Handover CRITICALITY ignore EXTENSION E-UTRAN-Service-Handover PRESENCE optional }|
+-- Extension for Release Release 9 to enable a new value --
+ { ID id-PDP-TypeInformation-extension CRITICALITY ignore EXTENSION PDP-TypeInformation-extension PRESENCE optional },
+ ...
+}
+
+TNLInformationEnhRelInfoReq ::=SEQUENCE{
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { { TNLInformationEnhRelInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TNLInformationEnhRelInfoReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RANAP-EnhancedRelocationInformationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore EXTENSION IntegrityProtectionInformation PRESENCE optional} |
+ { ID id-EncryptionInformation CRITICALITY ignore EXTENSION EncryptionInformation PRESENCE optional} |
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional} |
+-- Extension for Release 10 to enable RNSAP Relocation --
+ { ID id-RABParametersList CRITICALITY reject EXTENSION RABParametersList PRESENCE optional} |
+ { ID id-CSG-Id CRITICALITY reject EXTENSION CSG-Id PRESENCE optional} |
+ { ID id-CSG-Membership-Status CRITICALITY reject EXTENSION CSG-Membership-Status PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 } |
+-- Extension for Release Release 9 to enable a new value --
+ { ID id-PDP-TypeInformation-extension CRITICALITY ignore EXTENSION PDP-TypeInformation-extension PRESENCE optional },
+ ...
+}
+
+MBMSSynchronisationInformation ::= SEQUENCE {
+ mBMSHCIndicator MBMSHCIndicator,
+ iPMulticastAddress IPMulticastAddress,
+ gTPDLTEID GTP-TEI,
+ iE-Extensions ProtocolExtensionContainer { {MBMSSynchronisationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSSynchronisationInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ { ID id-IP-Source-Address CRITICALITY reject EXTENSION IPMulticastAddress PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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/epan/dissectors/asn1/ranap/RANAP-PDU-Descriptions.asn b/epan/dissectors/asn1/ranap/RANAP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..efb2e2e1e8
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/RANAP-PDU-Descriptions.asn
@@ -0,0 +1,615 @@
+-- RANAP-PDU-Descriptions.asn
+--
+-- 3GPP TS 25.413 V10.4.0 (2011-12)
+-- http://www.3gpp.org/ftp/Specs/html-info/25413.htm
+--
+-- 9.3.2 Elementary Procedure Definitions
+--
+
+-- **************************************************************
+--
+-- 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/epan/dissectors/asn1/ranap/packet-ranap-template.c b/epan/dissectors/asn1/ranap/packet-ranap-template.c
new file mode 100644
index 0000000000..1e455885fc
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/packet-ranap-template.c
@@ -0,0 +1,397 @@
+/* packet-ranap.c
+ * Routines for UMTS Node B Application Part(RANAP) packet dissection
+ * Copyright 2005 - 2010, Anders Broman <anders.broman[AT]ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * References: 3GPP TS 25.413 version 10.4.0 Release 10
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+#include <epan/proto_data.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-gsm_map.h"
+#include "packet-ranap.h"
+#include "packet-e212.h"
+#include "packet-sccp.h"
+#include "packet-gsm_a_common.h"
+#include "packet-isup.h"
+#include "packet-s1ap.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define SCCP_SSN_RANAP 142
+
+#define PNAME "Radio Access Network Application Part"
+#define PSNAME "RANAP"
+#define PFNAME "ranap"
+
+/* Highest Ranap_ProcedureCode_value, use in heuristics */
+#define RANAP_MAX_PC 45 /* id_RANAPenhancedRelocation = 45 */
+
+#include "packet-ranap-val.h"
+
+void proto_register_ranap(void);
+void proto_reg_handoff_ranap(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_ranap = -1;
+
+/* initialise sub-dissector handles */
+static dissector_handle_t rrc_s_to_trnc_handle = NULL;
+static dissector_handle_t rrc_t_to_srnc_handle = NULL;
+static dissector_handle_t rrc_ho_to_utran_cmd = NULL;
+
+static int hf_ranap_transportLayerAddress_ipv4 = -1;
+static int hf_ranap_transportLayerAddress_ipv6 = -1;
+static int hf_ranap_transportLayerAddress_nsap = -1;
+
+#include "packet-ranap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_ranap = -1;
+static int ett_ranap_TransportLayerAddress = -1;
+static int ett_ranap_TransportLayerAddress_nsap = -1;
+
+#include "packet-ranap-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint32 ProtocolExtensionID;
+static gboolean glbl_dissect_container = FALSE;
+/* Some IE:s identities uses the same value for different IE:s
+ * depending on PDU type:
+ * InitiatingMessage
+ * SuccessfulOutcome
+ * UnsuccessfulOutcome
+ * Outcome
+ * As a workarond a value is added to the IE:id in the .cnf file.
+ * Example:
+ * ResetResourceList N rnsap.ies IMSG||id-IuSigConIdList # no spaces are allowed in value as a space is delimiter
+ * PDU type is stored in a global variable and can is used in the IE decoding section.
+ */
+/*
+ * &InitiatingMessage ,
+ * &SuccessfulOutcome OPTIONAL,
+ * &UnsuccessfulOutcome OPTIONAL,
+ * &Outcome OPTIONAL,
+ *
+ * Only these two needed currently
+ */
+#define IMSG (1U<<16)
+#define SOUT (2U<<16)
+#define SPECIAL (4U<<16)
+
+int pdu_type = 0; /* 0 means wildcard */
+
+/* Initialise the Preferences */
+static gint global_ranap_sccp_ssn = SCCP_SSN_RANAP;
+
+/* Dissector tables */
+static dissector_table_t ranap_ies_dissector_table;
+static dissector_table_t ranap_ies_p1_dissector_table;
+static dissector_table_t ranap_ies_p2_dissector_table;
+static dissector_table_t ranap_extension_dissector_table;
+static dissector_table_t ranap_proc_imsg_dissector_table;
+static dissector_table_t ranap_proc_sout_dissector_table;
+static dissector_table_t ranap_proc_uout_dissector_table;
+static dissector_table_t ranap_proc_out_dissector_table;
+static dissector_table_t nas_pdu_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_OutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+static int dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+static int dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+
+
+#include "packet-ranap-fn.c"
+
+static int
+dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+
+ int ret = 0;
+ int key;
+
+ /* Special handling, same ID used for different IE's depending on signal */
+ switch(ProcedureCode){
+ case id_RelocationPreparation:
+ if((ProtocolIE_ID == id_Source_ToTarget_TransparentContainer)||(ProtocolIE_ID == id_Target_ToSource_TransparentContainer)){
+ key = SPECIAL | ProtocolIE_ID;
+ ret = (dissector_try_uint_new(ranap_ies_dissector_table, key, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ break;
+ }
+ /* Fall through */
+ default:
+ /* no special handling */
+ ret = (dissector_try_uint_new(ranap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ if (ret == 0) {
+ key = pdu_type | ProtocolIE_ID;
+ ret = (dissector_try_uint_new(ranap_ies_dissector_table, key, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ }
+ break;
+ }
+ return ret;
+}
+
+static int
+dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(ranap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(ranap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(ranap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ gboolean ret;
+
+ pdu_type = IMSG;
+ ret = dissector_try_uint_new(ranap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL);
+ pdu_type = 0;
+ return ret ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ gboolean ret;
+
+ pdu_type = SOUT;
+ ret = dissector_try_uint_new(ranap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL);
+ pdu_type = 0;
+ return ret ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(ranap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_OutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(ranap_proc_out_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_ranap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ proto_item *ranap_item = NULL;
+ proto_tree *ranap_tree = NULL;
+ sccp_msg_info_t *sccp_msg_lcl = (sccp_msg_info_t *)data;
+
+ pdu_type = 0;
+ ProtocolIE_ID = 0;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RANAP");
+
+ /* create the ranap protocol tree */
+ ranap_item = proto_tree_add_item(tree, proto_ranap, tvb, 0, -1, ENC_NA);
+ ranap_tree = proto_item_add_subtree(ranap_item, ett_ranap);
+
+ /* Save the sccp_msg_info_t data (if present) because it can't be passed
+ through function calls */
+ p_add_proto_data(pinfo->pool, pinfo, proto_ranap, pinfo->curr_layer_num, data);
+
+ dissect_RANAP_PDU_PDU(tvb, pinfo, ranap_tree, NULL);
+ if (sccp_msg_lcl) {
+
+ if (sccp_msg_lcl->data.co.assoc)
+ sccp_msg_lcl->data.co.assoc->payload = SCCP_PLOAD_RANAP;
+
+ if (! sccp_msg_lcl->data.co.label && ProcedureCode != 0xFFFFFFFF) {
+ const gchar* str = val_to_str(ProcedureCode, ranap_ProcedureCode_vals,"Unknown RANAP");
+ sccp_msg_lcl->data.co.label = wmem_strdup(wmem_file_scope(), str);
+ }
+ }
+
+ return tvb_reported_length(tvb);
+}
+
+#define RANAP_MSG_MIN_LENGTH 7
+static gboolean
+dissect_sccp_ranap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ guint8 temp;
+ guint16 word;
+ asn1_ctx_t asn1_ctx;
+ guint length;
+ int offset;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+
+ /* Is it a ranap packet?
+ *
+ * 4th octet should be the length of the rest of the message.
+ * 2nd octet is the message-type e Z[0, 28]
+ * (obviously there must be at least four octets)
+ *
+ * If both hold true we'll assume it's RANAP
+ */
+
+ #define LENGTH_OFFSET 3
+ #define MSG_TYPE_OFFSET 1
+ if (tvb_captured_length(tvb) < RANAP_MSG_MIN_LENGTH) { return FALSE; }
+ /* Read the length NOTE offset in bits */
+ offset = dissect_per_length_determinant(tvb, LENGTH_OFFSET<<3, &asn1_ctx, tree, -1, &length);
+ offset = offset>>3;
+ if (length!= (tvb_reported_length(tvb) - offset)){
+ return FALSE;
+ }
+
+ temp = tvb_get_guint8(tvb, MSG_TYPE_OFFSET);
+ if (temp > RANAP_MAX_PC) { return FALSE; }
+
+ /* Try to strengthen the heuristic further, by checking the byte following the length and the bitfield indicating extensions etc
+ * which usually is a sequence-of length
+ */
+ word = tvb_get_ntohs(tvb, offset + 1);
+ if (word > 0x1ff){
+ return FALSE;
+ }
+ dissect_ranap(tvb, pinfo, tree, data);
+
+ return TRUE;
+}
+
+/*--- proto_register_ranap -------------------------------------------*/
+void proto_register_ranap(void) {
+ module_t *ranap_module;
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_ranap_transportLayerAddress_ipv4,
+ { "transportLayerAddress IPv4", "ranap.transportLayerAddress_ipv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ranap_transportLayerAddress_ipv6,
+ { "transportLayerAddress IPv6", "ranap.transportLayerAddress_ipv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ranap_transportLayerAddress_nsap,
+ { "transportLayerAddress NSAP", "ranap.transportLayerAddress_NSAP",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+
+#include "packet-ranap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ranap,
+ &ett_ranap_TransportLayerAddress,
+ &ett_ranap_TransportLayerAddress_nsap,
+#include "packet-ranap-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_ranap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ranap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ register_dissector("ranap", dissect_ranap, proto_ranap);
+
+ /* Register dissector tables */
+ ranap_ies_dissector_table = register_dissector_table("ranap.ies", "RANAP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ ranap_ies_p1_dissector_table = register_dissector_table("ranap.ies.pair.first", "RANAP-PROTOCOL-IES-PAIR FirstValue", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ ranap_ies_p2_dissector_table = register_dissector_table("ranap.ies.pair.second", "RANAP-PROTOCOL-IES-PAIR SecondValue", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ ranap_extension_dissector_table = register_dissector_table("ranap.extension", "RANAP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ ranap_proc_imsg_dissector_table = register_dissector_table("ranap.proc.imsg", "RANAP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ ranap_proc_sout_dissector_table = register_dissector_table("ranap.proc.sout", "RANAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ ranap_proc_uout_dissector_table = register_dissector_table("ranap.proc.uout", "RANAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ ranap_proc_out_dissector_table = register_dissector_table("ranap.proc.out", "RANAP-ELEMENTARY-PROCEDURE Outcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ nas_pdu_dissector_table = register_dissector_table("ranap.nas_pdu", "RANAP NAS PDU", FT_UINT8, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ ranap_module = prefs_register_protocol(proto_ranap, proto_reg_handoff_ranap);
+ prefs_register_uint_preference(ranap_module, "sccp_ssn", "SCCP SSN for RANAP",
+ "The SCCP SubSystem Number for RANAP (default 142)", 10,
+ &global_ranap_sccp_ssn);
+ prefs_register_bool_preference(ranap_module, "dissect_rrc_container",
+ "Attempt to dissect RRC-Container",
+ "Attempt to dissect RRC message embedded in RRC-Container IE",
+ &glbl_dissect_container);
+}
+
+
+/*--- proto_reg_handoff_ranap ---------------------------------------*/
+void
+proto_reg_handoff_ranap(void)
+{
+ static gboolean initialized = FALSE;
+ static dissector_handle_t ranap_handle;
+ static gint local_ranap_sccp_ssn;
+
+ if (!initialized) {
+ ranap_handle = find_dissector("ranap");
+ rrc_s_to_trnc_handle = find_dissector("rrc.s_to_trnc_cont");
+ rrc_t_to_srnc_handle = find_dissector("rrc.t_to_srnc_cont");
+ rrc_ho_to_utran_cmd = find_dissector("rrc.irat.ho_to_utran_cmd");
+ initialized = TRUE;
+#include "packet-ranap-dis-tab.c"
+ } else {
+ dissector_delete_uint("sccp.ssn", local_ranap_sccp_ssn, ranap_handle);
+ }
+
+ dissector_add_uint("sccp.ssn", global_ranap_sccp_ssn, ranap_handle);
+ local_ranap_sccp_ssn = global_ranap_sccp_ssn;
+
+ heur_dissector_add("sccp", dissect_sccp_ranap_heur, "RANAP over SCCP", "ranap_sccp", proto_ranap, HEURISTIC_ENABLE);
+ heur_dissector_add("sua", dissect_sccp_ranap_heur, "RANAP over SUA", "ranap_sua", proto_ranap, HEURISTIC_ENABLE);
+}
+
+
diff --git a/epan/dissectors/asn1/ranap/packet-ranap-template.h b/epan/dissectors/asn1/ranap/packet-ranap-template.h
new file mode 100644
index 0000000000..26027b9046
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/packet-ranap-template.h
@@ -0,0 +1,28 @@
+/* packet-ranap-template.h
+ * Routines for GSM Supplementary Services dissection
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_RANAP_H
+#define PACKET_RANAP_H
+#include "packet-ranap-exp.h"
+
+#endif /* PACKET_RANAP_H */
diff --git a/epan/dissectors/asn1/ranap/ranap.cnf b/epan/dissectors/asn1/ranap/ranap.cnf
new file mode 100644
index 0000000000..f05d69a7e0
--- /dev/null
+++ b/epan/dissectors/asn1/ranap/ranap.cnf
@@ -0,0 +1,1046 @@
+# ranap.cnf
+# ranap conformation file
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.EXPORTS
+EncryptionInformation
+IntegrityProtectionInformation
+Service-Handover
+SourceCellID_PDU
+SourceRNC-ToTargetRNC-TransparentContainer_PDU
+TargetRNC-ToSourceRNC-TransparentContainer_PDU
+TargetRNC-ID
+TargetRNC-ID_PDU
+InterSystemInformation-TransparentContainer_PDU
+Source-ToTarget-TransparentContainer_PDU
+
+#.PDU
+RANAP-PDU
+SourceCellID
+SourceRNC-ToTargetRNC-TransparentContainer
+TargetRNC-ToSourceRNC-TransparentContainer
+TargetRNC-ID
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.USE_VALS_EXT
+ProtocolIE-ID
+CauseRadioNetwork
+ProcedureCode
+
+#.NO_EMIT
+TBCD-STRING
+#.END
+
+#.OMIT_ASSIGNMENT
+RateControlAllowed
+ProtocolError-IE-ContainerList
+Presence
+# NOTE when updating the asn1 spec check if these are used !!!!
+ForwardingIndication
+LastVisitedUTRANCell-Item
+UTRAN-CellID
+CellType
+Time-UE-StayedInCell
+SourceeNodeB-ToTargeteNodeB-TransparentContainer
+TargeteNodeB-ToSourceeNodeB-TransparentContainer
+#.TYPE_RENAME
+
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+
+SDU-ErrorRatio/exponent exponent_1_8
+
+PrivateIE-Field/id private_id
+ProtocolExtensionField/id ext_id
+
+MessageStructure/_item/repetitionNumber item_repetitionNumber
+PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+RAB-DataVolumeReportItem/dl-UnsuccessfullyTransmittedDataVolume rab-dl-UnsuccessfullyTransmittedDataVolume
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &ranap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+#.END
+
+
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+#.FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue
+#.FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
+
+#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str_ext_const(ProcedureCode, &ranap_ProcedureCode_vals_ext,
+ "unknown message"));
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#.FN_PARS Outcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_OutcomeValue
+
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-Container {{IEsSetParam}}
+
+#.FN_PARS ProtocolIE-ContainerList
+MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+#.FN_HDR ProtocolIE-ContainerList
+ static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
+ { "lowerBound", ASN1_PAR_INTEGER },
+ { "upperBound", ASN1_PAR_INTEGER },
+ { NULL, (asn1_par_type)0 }
+ };
+ asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
+#.END
+
+#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-ContainerPair {{IEsSetParam}}
+
+#.FN_PARS ProtocolIE-ContainerPairList
+MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+#.FN_HDR ProtocolIE-ContainerPairList
+ static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
+ { "lowerBound", ASN1_PAR_INTEGER },
+ { "upperBound", ASN1_PAR_INTEGER },
+ { NULL, (asn1_par_type)0 }
+ };
+ asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
+#.END
+
+#RAB-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+#.FN_BODY RAB-IE-ContainerList
+ asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
+ asn1_param_push_integer(%(ACTX)s, 1);
+ asn1_param_push_integer(%(ACTX)s, maxNrOfRABs);
+%(DEFAULT_BODY)s
+ asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
+#.END
+#RAB-IE-ContainerPairList { RANAP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfRABs, {IEsSetParam} }
+#.FN_BODY RAB-IE-ContainerPairList
+ asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerPairList");
+ asn1_param_push_integer(%(ACTX)s, 1);
+ asn1_param_push_integer(%(ACTX)s, maxNrOfRABs);
+%(DEFAULT_BODY)s
+ asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerPairList");
+#.END
+#ProtocolError-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+# Not used ?
+# FN_BODY ProtocolError-IE-ContainerList
+# asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
+# asn1_param_push_integer(%(ACTX)s, 1);
+# asn1_param_push_integer(%(ACTX)s, maxNrOfRABs);
+#%(DEFAULT_BODY)s
+# asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
+# END
+#IuSigConId-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfIuSigConIds, {IEsSetParam} }
+#.FN_BODY IuSigConId-IE-ContainerList
+ asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
+ asn1_param_push_integer(%(ACTX)s, 1);
+ asn1_param_push_integer(%(ACTX)s, maxNrOfIuSigConIds);
+%(DEFAULT_BODY)s
+ asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
+#.END
+#DirectTransfer-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfDTs, {IEsSetParam} }
+#.FN_BODY DirectTransfer-IE-ContainerList
+ asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
+ asn1_param_push_integer(%(ACTX)s, 1);
+ asn1_param_push_integer(%(ACTX)s, maxNrOfDTs);
+%(DEFAULT_BODY)s
+ asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
+#.END
+
+
+
+# following construction is not supported by asn2wrs
+# IMSI ::= TBCD-STRING (SIZE (3..8))
+# TBCD-STRING ::= OCTET STRING
+
+#.FN_BODY IMSI
+ tvbuff_t* imsi_tvb;
+ const char *digit_str;
+ sccp_msg_info_t *sccp_info;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 8, FALSE, &imsi_tvb);
+
+ if(!imsi_tvb)
+ return offset;
+ /* Hide the octet string default printout */
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ digit_str = dissect_e212_imsi(imsi_tvb, actx->pinfo, tree, 0, tvb_reported_length(imsi_tvb), FALSE);
+
+ sccp_info = (sccp_msg_info_t *)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_ranap, actx->pinfo->curr_layer_num);
+
+ if ( sccp_info
+ && sccp_info->data.co.assoc
+ && ! sccp_info->data.co.assoc->calling_party ) {
+
+ sccp_info->data.co.assoc->calling_party =
+ wmem_strdup_printf(wmem_file_scope(), "IMSI: %%s", digit_str );
+ }
+
+#.END
+
+#.FN_BODY NAS-PDU VAL_PTR = &nas_pdu_tvb
+ tvbuff_t *nas_pdu_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (nas_pdu_tvb)
+ dissector_try_uint(nas_pdu_dissector_table, 0x1, nas_pdu_tvb, %(ACTX)s->pinfo, proto_tree_get_root(tree));
+#.END
+
+#.FN_BODY RRC-Container VAL_PTR = &rrc_message_tvb
+ tvbuff_t *rrc_message_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if ((rrc_message_tvb)&&(tvb_reported_length(rrc_message_tvb)!=0)&&(glbl_dissect_container)){
+ switch(ProtocolIE_ID){
+ case id_Source_ToTarget_TransparentContainer: /* INTEGER ::= 61 */
+ /* 9.2.1.30a Source to Target Transparent Container
+ * 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]...
+ */
+ call_dissector(rrc_s_to_trnc_handle,rrc_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
+ break;
+ case id_Target_ToSource_TransparentContainer: /* INTEGER ::= 63 */
+ /* 9.2.1.30b Target to Source Transparent Container
+ * 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]...
+ */
+ call_dissector(rrc_t_to_srnc_handle,rrc_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
+ break;
+ default:
+ break;
+ }
+ }
+
+#.END
+
+#.FN_BODY OldBSS-ToNewBSS-Information VAL_PTR = &bss_info_tvb
+ tvbuff_t *bss_info_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (bss_info_tvb)
+ bssmap_old_bss_to_new_bss_info(bss_info_tvb, tree, actx->pinfo);
+#.END
+
+#.FN_BODY NewBSS-To-OldBSS-Information VAL_PTR = &bss_info_tvb
+ tvbuff_t *bss_info_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (bss_info_tvb)
+ bssmap_new_bss_to_old_bss_info(bss_info_tvb, tree, actx->pinfo);
+#.END
+
+#.FN_BODY L3-Information VAL_PTR = &l3_info_tvb
+ tvbuff_t *l3_info_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (l3_info_tvb)
+ dissector_try_uint(nas_pdu_dissector_table, 0x1, l3_info_tvb, %(ACTX)s->pinfo, proto_tree_get_root(tree));
+#.END
+
+# following construction is not supported by asn2wrs
+# PLMNidentity ::= TBCD-STRING (SIZE (3))
+# TBCD-STRING ::= OCTET STRING
+
+#.FN_BODY PLMNidentity VAL_PTR =
+ tvbuff_t *parameter_tvb=NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, E212_NONE, FALSE);
+#.END
+
+# FN_BODY MBMSSessionDuration VAL_PTR = &parameter_tvb
+# tvbuff_t *nas_pdu_tvb=NULL;
+#
+#%(DEFAULT_BODY)s
+#
+# if (parameter_tvb)
+# dissect_gtp_mbms_ses_dur(parameter_tvb, actx->pinfo, tree);
+
+# 9.2.2.1 Transport Layer Address
+# For details on the Transport Layer Address, see ref
+# 3GPP TS 25.414: "UTRAN Iu interface data transport and transport signalling".
+#
+#.FN_BODY TransportLayerAddress VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_item *item;
+ proto_tree *subtree, *nsap_tree;
+ gint tvb_len;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+# TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+# Asume 4 bytes used in case of IPv4
+ /* Get the length */
+ tvb_len = tvb_reported_length(parameter_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_ranap_TransportLayerAddress);
+ if (tvb_len==4){
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_ranap_transportLayerAddress_ipv4, parameter_tvb, 0, tvb_len, ENC_BIG_ENDIAN);
+ }
+ if (tvb_len==16){
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_ranap_transportLayerAddress_ipv6, parameter_tvb, 0, tvb_len, ENC_NA);
+ }
+ /* Length will be 25 if optional bearerId is present */
+ if ((tvb_len==20) || (tvb_len==25)) {
+ item = proto_tree_add_item(subtree, hf_ranap_transportLayerAddress_nsap, parameter_tvb, 0, 20, ENC_NA);
+ nsap_tree = proto_item_add_subtree(item, ett_ranap_TransportLayerAddress_nsap);
+ dissect_nsap(parameter_tvb, 0, tvb_len, nsap_tree);
+ }
+
+#.FN_BODY GTP-TEI VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ int saved_hf;
+
+ saved_hf = hf_index;
+ hf_index = -1;
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ proto_tree_add_item(tree, saved_hf, parameter_tvb, 0, 4, ENC_BIG_ENDIAN);
+
+#.FN_HDR SourceRNC-ToTargetRNC-TransparentContainer
+/* If SourceRNC-ToTargetRNC-TransparentContainer is called through
+ dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU
+ ProtocolIE_ID may be unset
+ */
+
+
+ ProtocolIE_ID = id_Source_ToTarget_TransparentContainer;
+
+#.FN_BODY Source-ToTarget-TransparentContainer VAL_PTR = &parameter_tvb
+# -- 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]
+# [49] 3GPP TS 36.413: "Evolved Universal Terrestrial Radio Access Network (E-UTRAN); S1
+# Application Protocol (S1AP)".
+
+dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
+
+#.FN_BODY Target-ToSource-TransparentContainer VAL_PTR = &parameter_tvb
+#-- 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]
+# [49] 3GPP TS 36.413: "Evolved Universal Terrestrial Radio Access Network (E-UTRAN); S1
+# Application Protocol (S1AP)".
+
+dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU );
+
+
+#.FN_BODY BindingID VAL_PTR=&value_tvb
+ tvbuff_t *value_tvb = NULL;
+%(DEFAULT_BODY)s
+ /* N.B. value_tvb is 4 bytes of OCTET STRING */
+ if (tvb_get_ntohs(value_tvb, 2) == 0) {
+ /* Will show first 2 bytes as an integer, as very likely to be a UDP port number */
+ guint16 port_number = tvb_get_ntohs(value_tvb, 0);
+ proto_item_append_text(actx->created_item, " (%%u)", port_number);
+ }
+
+#.FN_BODY UE-History-Information VAL_PTR=&value_tvb
+ tvbuff_t *value_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ if (value_tvb)
+ dissect_s1ap_UE_HistoryInformation_PDU(value_tvb, %(ACTX)s->pinfo, tree, NULL);
+
+#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &ranap_ProtocolIE_ID_vals_ext
+GTP-TEI TYPE = FT_UINT32 DISPLAY = BASE_HEX_DEC STRINGS = NULL
+
+#.ASSIGN_VALUE_TO_TYPE # RANAP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+id-RAB-Assignment ProcedureCode
+id-Iu-Release ProcedureCode
+id-RelocationPreparation ProcedureCode
+id-RelocationResourceAllocation ProcedureCode
+id-RelocationCancel ProcedureCode
+id-SRNS-ContextTransfer ProcedureCode
+id-SecurityModeControl ProcedureCode
+id-DataVolumeReport ProcedureCode
+id-Not-Used-8 ProcedureCode
+id-Reset ProcedureCode
+id-RAB-ReleaseRequest ProcedureCode
+id-Iu-ReleaseRequest ProcedureCode
+id-RelocationDetect ProcedureCode
+id-RelocationComplete ProcedureCode
+id-Paging ProcedureCode
+id-CommonID ProcedureCode
+id-CN-InvokeTrace ProcedureCode
+id-LocationReportingControl ProcedureCode
+id-LocationReport ProcedureCode
+id-InitialUE-Message ProcedureCode
+id-DirectTransfer ProcedureCode
+id-OverloadControl ProcedureCode
+id-ErrorIndication ProcedureCode
+id-SRNS-DataForward ProcedureCode
+id-ForwardSRNS-Context ProcedureCode
+id-privateMessage ProcedureCode
+id-CN-DeactivateTrace ProcedureCode
+id-ResetResource ProcedureCode
+id-RANAP-Relocation ProcedureCode
+id-RAB-ModifyRequest ProcedureCode
+id-LocationRelatedData ProcedureCode
+id-InformationTransfer ProcedureCode
+id-UESpecificInformation ProcedureCode
+id-UplinkInformationExchange ProcedureCode
+id-DirectInformationTransfer ProcedureCode
+id-MBMSSessionStart ProcedureCode
+id-MBMSSessionUpdate ProcedureCode
+id-MBMSSessionStop ProcedureCode
+id-MBMSUELinking ProcedureCode
+id-MBMSRegistration ProcedureCode
+id-MBMSCNDe-Registration-Procedure ProcedureCode
+id-MBMSRABEstablishmentIndication ProcedureCode
+id-MBMSRABRelease ProcedureCode
+id-enhancedRelocationComplete ProcedureCode
+id-enhancedRelocationCompleteConfirm ProcedureCode
+id-RANAPenhancedRelocation ProcedureCode
+id-SRVCCPreparation ProcedureCode
+
+# ProtocolIE-ID
+id-AreaIdentity ProtocolIE-ID
+id-Not-Used-1 ProtocolIE-ID
+id-Not-Used-2 ProtocolIE-ID
+id-CN-DomainIndicator ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-ChosenEncryptionAlgorithm ProtocolIE-ID
+id-ChosenIntegrityProtectionAlgorithm ProtocolIE-ID
+id-ClassmarkInformation2 ProtocolIE-ID
+id-ClassmarkInformation3 ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-DL-GTP-PDU-SequenceNumber ProtocolIE-ID
+id-EncryptionInformation ProtocolIE-ID
+id-IntegrityProtectionInformation ProtocolIE-ID
+id-IuTransportAssociation ProtocolIE-ID
+id-L3-Information ProtocolIE-ID
+id-LAI ProtocolIE-ID
+id-NAS-PDU ProtocolIE-ID
+id-NonSearchingIndication ProtocolIE-ID
+id-NumberOfSteps ProtocolIE-ID
+id-OMC-ID ProtocolIE-ID
+id-OldBSS-ToNewBSS-Information ProtocolIE-ID
+id-PagingAreaID ProtocolIE-ID
+id-PagingCause ProtocolIE-ID
+id-PermanentNAS-UE-ID ProtocolIE-ID
+id-RAB-ContextItem ProtocolIE-ID
+id-RAB-ContextList ProtocolIE-ID
+id-RAB-DataForwardingItem ProtocolIE-ID
+id-RAB-DataForwardingItem-SRNS-CtxReq ProtocolIE-ID
+id-RAB-DataForwardingList ProtocolIE-ID
+id-RAB-DataForwardingList-SRNS-CtxReq ProtocolIE-ID
+id-RAB-DataVolumeReportItem ProtocolIE-ID
+id-RAB-DataVolumeReportList ProtocolIE-ID
+id-RAB-DataVolumeReportRequestItem ProtocolIE-ID
+id-RAB-DataVolumeReportRequestList ProtocolIE-ID
+id-RAB-FailedItem ProtocolIE-ID
+id-RAB-FailedList ProtocolIE-ID
+id-RAB-ID ProtocolIE-ID
+id-RAB-QueuedItem ProtocolIE-ID
+id-RAB-QueuedList ProtocolIE-ID
+id-RAB-ReleaseFailedList ProtocolIE-ID
+id-RAB-ReleaseItem ProtocolIE-ID
+id-RAB-ReleaseList ProtocolIE-ID
+id-RAB-ReleasedItem ProtocolIE-ID
+id-RAB-ReleasedList ProtocolIE-ID
+id-RAB-ReleasedList-IuRelComp ProtocolIE-ID
+id-RAB-RelocationReleaseItem ProtocolIE-ID
+id-RAB-RelocationReleaseList ProtocolIE-ID
+id-RAB-SetupItem-RelocReq ProtocolIE-ID
+id-RAB-SetupItem-RelocReqAck ProtocolIE-ID
+id-RAB-SetupList-RelocReq ProtocolIE-ID
+id-RAB-SetupList-RelocReqAck ProtocolIE-ID
+id-RAB-SetupOrModifiedItem ProtocolIE-ID
+id-RAB-SetupOrModifiedList ProtocolIE-ID
+id-RAB-SetupOrModifyItem ProtocolIE-ID
+id-RAB-SetupOrModifyList ProtocolIE-ID
+id-RAC ProtocolIE-ID
+id-RelocationType ProtocolIE-ID
+id-RequestType ProtocolIE-ID
+id-SAI ProtocolIE-ID
+id-SAPI ProtocolIE-ID
+id-SourceID ProtocolIE-ID
+id-Source-ToTarget-TransparentContainer ProtocolIE-ID
+id-TargetID ProtocolIE-ID
+id-Target-ToSource-TransparentContainer ProtocolIE-ID
+id-TemporaryUE-ID ProtocolIE-ID
+id-TraceReference ProtocolIE-ID
+id-TraceType ProtocolIE-ID
+id-TransportLayerAddress ProtocolIE-ID
+id-TriggerID ProtocolIE-ID
+id-UE-ID ProtocolIE-ID
+id-UL-GTP-PDU-SequenceNumber ProtocolIE-ID
+id-RAB-FailedtoReportItem ProtocolIE-ID
+id-RAB-FailedtoReportList ProtocolIE-ID
+id-Not-Used-73 ProtocolIE-ID
+id-Not-Used-74 ProtocolIE-ID
+id-KeyStatus ProtocolIE-ID
+id-DRX-CycleLengthCoefficient ProtocolIE-ID
+id-IuSigConIdList ProtocolIE-ID
+id-IuSigConIdItem ProtocolIE-ID
+id-IuSigConId ProtocolIE-ID
+id-DirectTransferInformationItem-RANAP-RelocInf ProtocolIE-ID
+id-DirectTransferInformationList-RANAP-RelocInf ProtocolIE-ID
+id-RAB-ContextItem-RANAP-RelocInf ProtocolIE-ID
+id-RAB-ContextList-RANAP-RelocInf ProtocolIE-ID
+id-RAB-ContextFailedtoTransferItem ProtocolIE-ID
+id-RAB-ContextFailedtoTransferList ProtocolIE-ID
+id-GlobalRNC-ID ProtocolIE-ID
+id-RAB-ReleasedItem-IuRelComp ProtocolIE-ID
+id-MessageStructure ProtocolIE-ID
+id-Alt-RAB-Parameters ProtocolIE-ID
+id-Ass-RAB-Parameters ProtocolIE-ID
+id-RAB-ModifyList ProtocolIE-ID
+id-RAB-ModifyItem ProtocolIE-ID
+id-TypeOfError ProtocolIE-ID
+id-BroadcastAssistanceDataDecipheringKeys ProtocolIE-ID
+id-LocationRelatedDataRequestType ProtocolIE-ID
+id-GlobalCN-ID ProtocolIE-ID
+id-LastKnownServiceArea ProtocolIE-ID
+id-SRB-TrCH-Mapping ProtocolIE-ID
+id-InterSystemInformation-TransparentContainer ProtocolIE-ID
+id-NewBSS-To-OldBSS-Information ProtocolIE-ID
+id-Not-Used-101 ProtocolIE-ID
+id-Not-Used-102 ProtocolIE-ID
+id-SourceRNC-PDCP-context-info ProtocolIE-ID
+id-InformationTransferID ProtocolIE-ID
+id-SNA-Access-Information ProtocolIE-ID
+id-ProvidedData ProtocolIE-ID
+id-GERAN-BSC-Container ProtocolIE-ID
+id-GERAN-Classmark ProtocolIE-ID
+id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item ProtocolIE-ID
+id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse ProtocolIE-ID
+id-VerticalAccuracyCode ProtocolIE-ID
+id-ResponseTime ProtocolIE-ID
+id-PositioningPriority ProtocolIE-ID
+id-ClientType ProtocolIE-ID
+id-LocationRelatedDataRequestTypeSpecificToGERANIuMode ProtocolIE-ID
+id-SignallingIndication ProtocolIE-ID
+id-hS-DSCH-MAC-d-Flow-ID ProtocolIE-ID
+id-UESBI-Iu ProtocolIE-ID
+id-PositionData ProtocolIE-ID
+id-PositionDataSpecificToGERANIuMode ProtocolIE-ID
+id-CellLoadInformationGroup ProtocolIE-ID
+id-AccuracyFulfilmentIndicator ProtocolIE-ID
+id-InformationTransferType ProtocolIE-ID
+id-TraceRecordingSessionInformation ProtocolIE-ID
+id-TracePropagationParameters ProtocolIE-ID
+id-InterSystemInformationTransferType ProtocolIE-ID
+id-SelectedPLMN-ID ProtocolIE-ID
+id-RedirectionCompleted ProtocolIE-ID
+id-RedirectionIndication ProtocolIE-ID
+id-NAS-SequenceNumber ProtocolIE-ID
+id-RejectCauseValue ProtocolIE-ID
+id-APN ProtocolIE-ID
+id-CNMBMSLinkingInformation ProtocolIE-ID
+id-DeltaRAListofIdleModeUEs ProtocolIE-ID
+id-FrequenceLayerConvergenceFlag ProtocolIE-ID
+id-InformationExchangeID ProtocolIE-ID
+id-InformationExchangeType ProtocolIE-ID
+id-InformationRequested ProtocolIE-ID
+id-InformationRequestType ProtocolIE-ID
+id-IPMulticastAddress ProtocolIE-ID
+id-JoinedMBMSBearerServicesList ProtocolIE-ID
+id-LeftMBMSBearerServicesList ProtocolIE-ID
+id-MBMSBearerServiceType ProtocolIE-ID
+id-MBMSCNDe-Registration ProtocolIE-ID
+id-MBMSServiceArea ProtocolIE-ID
+id-MBMSSessionDuration ProtocolIE-ID
+id-MBMSSessionIdentity ProtocolIE-ID
+id-PDP-TypeInformation ProtocolIE-ID
+id-RAB-Parameters ProtocolIE-ID
+id-RAListofIdleModeUEs ProtocolIE-ID
+id-MBMSRegistrationRequestType ProtocolIE-ID
+id-SessionUpdateID ProtocolIE-ID
+id-TMGI ProtocolIE-ID
+id-TransportLayerInformation ProtocolIE-ID
+id-UnsuccessfulLinkingList ProtocolIE-ID
+id-MBMSLinkingInformation ProtocolIE-ID
+id-MBMSSessionRepetitionNumber ProtocolIE-ID
+id-AlternativeRABConfiguration ProtocolIE-ID
+id-AlternativeRABConfigurationRequest ProtocolIE-ID
+id-E-DCH-MAC-d-Flow-ID ProtocolIE-ID
+id-SourceBSS-ToTargetBSS-TransparentContainer ProtocolIE-ID
+id-TargetBSS-ToSourceBSS-TransparentContainer ProtocolIE-ID
+id-TimeToMBMSDataTransfer ProtocolIE-ID
+id-IncludeVelocity ProtocolIE-ID
+id-VelocityEstimate ProtocolIE-ID
+id-RedirectAttemptFlag ProtocolIE-ID
+id-RAT-Type ProtocolIE-ID
+id-PeriodicLocationInfo ProtocolIE-ID
+id-MBMSCountingInformation ProtocolIE-ID
+id-ExtendedRNC-ID ProtocolIE-ID
+id-170-not-to-be-used-for-IE-ids ProtocolIE-ID
+id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf ProtocolIE-ID
+id-Alt-RAB-Parameter-ExtendedMaxBitrateInf ProtocolIE-ID
+id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList ProtocolIE-ID
+id-Ass-RAB-Parameter-ExtendedMaxBitrateList ProtocolIE-ID
+id-RAB-Parameter-ExtendedGuaranteedBitrateList ProtocolIE-ID
+id-RAB-Parameter-ExtendedMaxBitrateList ProtocolIE-ID
+id-Requested-RAB-Parameter-ExtendedMaxBitrateList ProtocolIE-ID
+id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList ProtocolIE-ID
+id-LAofIdleModeUEs ProtocolIE-ID
+id-newLAListofIdleModeUEs ProtocolIE-ID
+id-LAListwithNoIdleModeUEsAnyMore ProtocolIE-ID
+id-183-not-to-be-used-for-IE-ids ProtocolIE-ID
+id-GANSS-PositioningDataSet ProtocolIE-ID
+id-RequestedGANSSAssistanceData ProtocolIE-ID
+id-BroadcastGANSSAssistanceDataDecipheringKeys ProtocolIE-ID
+id-d-RNTI-for-NoIuCSUP ProtocolIE-ID
+id-RAB-SetupList-EnhancedRelocCompleteReq ProtocolIE-ID
+id-RAB-SetupItem-EnhancedRelocCompleteReq ProtocolIE-ID
+id-RAB-SetupList-EnhancedRelocCompleteRes ProtocolIE-ID
+id-RAB-SetupItem-EnhancedRelocCompleteRes ProtocolIE-ID
+id-RAB-SetupList-EnhRelocInfoReq ProtocolIE-ID
+id-RAB-SetupItem-EnhRelocInfoReq ProtocolIE-ID
+id-RAB-SetupList-EnhRelocInfoRes ProtocolIE-ID
+id-RAB-SetupItem-EnhRelocInfoRes ProtocolIE-ID
+id-OldIuSigConId ProtocolIE-ID
+id-RAB-FailedList-EnhRelocInfoRes ProtocolIE-ID
+id-RAB-FailedItem-EnhRelocInfoRes ProtocolIE-ID
+
+id-Global-ENB-ID ProtocolIE-ID
+id-UE-History-Information ProtocolIE-ID
+id-MBMSSynchronisationInformation ProtocolIE-ID
+id-SubscriberProfileIDforRFP ProtocolIE-ID
+id-CSG-Id ProtocolIE-ID
+id-OldIuSigConIdCS ProtocolIE-ID
+id-OldIuSigConIdPS ProtocolIE-ID
+id-GlobalCN-IDCS ProtocolIE-ID
+id-GlobalCN-IDPS ProtocolIE-ID
+id-SourceExtendedRNC-ID ProtocolIE-ID
+id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes ProtocolIE-ID
+id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes ProtocolIE-ID
+id-SourceRNC-ID ProtocolIE-ID
+id-Relocation-TargetRNC-ID ProtocolIE-ID
+id-Relocation-TargetExtendedRNC-ID ProtocolIE-ID
+id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf ProtocolIE-ID
+id-Alt-RAB-Parameter-SupportedMaxBitrateInf ProtocolIE-ID
+id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList ProtocolIE-ID
+id-Ass-RAB-Parameter-SupportedMaxBitrateList ProtocolIE-ID
+id-RAB-Parameter-SupportedGuaranteedBitrateList ProtocolIE-ID
+id-RAB-Parameter-SupportedMaxBitrateList ProtocolIE-ID
+id-Requested-RAB-Parameter-SupportedMaxBitrateList ProtocolIE-ID
+id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList ProtocolIE-ID
+id-Relocation-SourceRNC-ID ProtocolIE-ID
+id-Relocation-SourceExtendedRNC-ID ProtocolIE-ID
+id-EncryptionKey ProtocolIE-ID
+id-IntegrityProtectionKey ProtocolIE-ID
+id-SRVCC-HO-Indication ProtocolIE-ID
+id-SRVCC-Information ProtocolIE-ID
+id-SRVCC-Operation-Possible ProtocolIE-ID
+id-CSG-Id-List ProtocolIE-ID
+id-PSRABtobeReplaced ProtocolIE-ID
+id-E-UTRAN-Service-Handover ProtocolIE-ID
+id-Not-Used-232 ProtocolIE-ID
+id-UE-AggregateMaximumBitRate ProtocolIE-ID
+id-CSG-Membership-Status ProtocolIE-ID
+id-Cell-Access-Mode ProtocolIE-ID
+id-IP-Source-Address ProtocolIE-ID
+id-CSFB-Information ProtocolIE-ID
+id-PDP-TypeInformation-extension ProtocolIE-ID
+id-MSISDN ProtocolIE-ID
+id-Offload-RAB-Parameters ProtocolIE-ID
+id-LGW-TransportLayerAddress ProtocolIE-ID
+id-Correlation-ID ProtocolIE-ID
+id-IRAT-Measurement-Configuration ProtocolIE-ID
+id-MDT-Configuration ProtocolIE-ID
+id-Priority-Class-Indicator ProtocolIE-ID
+# Ws Extension
+id-Not-Used-246 ProtocolIE-ID
+id-RNSAPRelocationParameters ProtocolIE-ID
+id-RABParametersList ProtocolIE-ID
+id-Management-Based-MDT-Allowed ProtocolIE-ID
+id-HigherBitratesThan16MbpsFlag ProtocolIE-ID
+id-Trace-Collection-Entity-IP-Addess ProtocolIE-ID
+id-End-Of-CSFB ProtocolIE-ID
+#.END
+
+#.REGISTER
+
+#RANAP-PROTOCOL-IES
+Cause N ranap.ies id-Cause
+RAB-DataVolumeReportList N ranap.ies id-RAB-DataVolumeReportList
+RAB-ReleasedList-IuRelComp N ranap.ies id-RAB-ReleasedList-IuRelComp
+CriticalityDiagnostics N ranap.ies id-CriticalityDiagnostics
+RAB-DataVolumeReportItem N ranap.ies id-RAB-DataVolumeReportItem
+RAB-ReleasedItem-IuRelComp N ranap.ies id-RAB-ReleasedItem-IuRelComp
+RelocationType N ranap.ies id-RelocationType
+SourceID N ranap.ies id-SourceID
+SourceRNC-ToTargetRNC-TransparentContainer N ranap.ies id-Source-ToTarget-TransparentContainer
+Source-ToTarget-TransparentContainer N ranap.ies SPECIAL|id_Source_ToTarget_TransparentContainer
+TargetID N ranap.ies id-TargetID
+TargetRNC-ToSourceRNC-TransparentContainer N ranap.ies id-Target-ToSource-TransparentContainer
+Target-ToSource-TransparentContainer N ranap.ies SPECIAL|id_Target_ToSource_TransparentContainer
+ClassmarkInformation2 N ranap.ies id-ClassmarkInformation2
+ClassmarkInformation3 N ranap.ies id-ClassmarkInformation3
+OldBSS-ToNewBSS-Information N ranap.ies id-OldBSS-ToNewBSS-Information
+L3-Information N ranap.ies id-L3-Information
+RAB-RelocationReleaseList N ranap.ies id-RAB-RelocationReleaseList
+RAB-DataForwardingList N ranap.ies id-RAB-DataForwardingList
+RAB-RelocationReleaseItem N ranap.ies id-RAB-RelocationReleaseItem
+RAB-DataForwardingItem N ranap.ies id-RAB-DataForwardingItem
+PermanentNAS-UE-ID N ranap.ies id-PermanentNAS-UE-ID
+CN-DomainIndicator N ranap.ies id-CN-DomainIndicator
+RAB-SetupList-RelocReq N ranap.ies id-RAB-SetupList-RelocReq
+IntegrityProtectionInformation N ranap.ies id-IntegrityProtectionInformation
+EncryptionInformation N ranap.ies id-EncryptionInformation
+IuSignallingConnectionIdentifier N ranap.ies id-IuSigConId
+DirectTransferInformationList-RANAP-RelocInf N ranap.ies id-DirectTransferInformationList-RANAP-RelocInf
+DirectTransferInformationItem-RANAP-RelocInf N ranap.ies id-DirectTransferInformationItem-RANAP-RelocInf
+RAB-SetupItem-RelocReq N ranap.ies id-RAB-SetupItem-RelocReq
+RAB-SetupList-RelocReqAck N ranap.ies id-RAB-SetupList-RelocReqAck
+RAB-FailedList N ranap.ies id-RAB-FailedList
+ChosenIntegrityProtectionAlgorithm N ranap.ies id-ChosenIntegrityProtectionAlgorithm
+ChosenEncryptionAlgorithm N ranap.ies id-ChosenEncryptionAlgorithm
+RAB-SetupItem-RelocReqAck N ranap.ies id-RAB-SetupItem-RelocReqAck
+RAB-FailedItem N ranap.ies id-RAB-FailedItem
+RAB-DataForwardingList-SRNS-CtxReq N ranap.ies id-RAB-DataForwardingList-SRNS-CtxReq
+RAB-DataForwardingItem-SRNS-CtxReq N ranap.ies id-RAB-DataForwardingItem-SRNS-CtxReq
+RAB-ContextList N ranap.ies id-RAB-ContextList
+RAB-ContextFailedtoTransferList N ranap.ies id-RAB-ContextFailedtoTransferList
+RAB-ContextItem N ranap.ies id-RAB-ContextItem
+RABs-ContextFailedtoTransferItem N ranap.ies id-RAB-ContextFailedtoTransferItem
+KeyStatus N ranap.ies id-KeyStatus
+RAB-DataVolumeReportRequestList N ranap.ies id-RAB-DataVolumeReportRequestList
+RAB-DataVolumeReportRequestItem N ranap.ies id-RAB-DataVolumeReportRequestItem
+RAB-FailedtoReportList N ranap.ies id-RAB-FailedtoReportList
+RABs-failed-to-reportItem N ranap.ies id-RAB-FailedtoReportItem
+GlobalRNC-ID N ranap.ies id-GlobalRNC-ID
+ResetResourceList N ranap.ies IMSG|id_IuSigConIdList
+ResetResourceItem N ranap.ies IMSG|id_IuSigConIdItem
+ResetResourceAckList N ranap.ies SOUT|id_IuSigConIdList
+ResetResourceAckItem N ranap.ies SOUT|id_IuSigConIdItem
+RAB-ReleaseList N ranap.ies id-RAB-ReleaseList
+RAB-ReleaseItem N ranap.ies id-RAB-ReleaseItem
+TemporaryUE-ID N ranap.ies id-TemporaryUE-ID
+PagingAreaID N ranap.ies id-PagingAreaID
+PagingCause N ranap.ies id-PagingCause
+NonSearchingIndication N ranap.ies id-NonSearchingIndication
+DRX-CycleLengthCoefficient N ranap.ies id-DRX-CycleLengthCoefficient
+TraceType N ranap.ies id-TraceType
+TraceReference N ranap.ies id-TraceReference
+TriggerID N ranap.ies id-TriggerID
+UE-ID N ranap.ies id-UE-ID
+OMC-ID N ranap.ies id-OMC-ID
+RequestType N ranap.ies id-RequestType
+AreaIdentity N ranap.ies id-AreaIdentity
+LAI N ranap.ies id-LAI
+RAC N ranap.ies id-RAC
+SAI N ranap.ies id-SAI
+NAS-PDU N ranap.ies id-NAS-PDU
+SAPI N ranap.ies id-SAPI
+RejectCauseValue N ranap.ies id-RejectCauseValue
+NAS-SequenceNumber N ranap.ies id-NAS-SequenceNumber
+NumberOfSteps N ranap.ies id-NumberOfSteps
+RAB-SetupOrModifyList N ranap.ies id-RAB-SetupOrModifyList
+RAB-SetupOrModifiedList N ranap.ies id-RAB-SetupOrModifiedList
+RAB-ReleasedList N ranap.ies id-RAB-ReleasedList
+RAB-QueuedList N ranap.ies id-RAB-QueuedList
+RAB-ReleaseFailedList N ranap.ies id-RAB-ReleaseFailedList
+RAB-SetupOrModifiedItem N ranap.ies id-RAB-SetupOrModifiedItem
+RAB-ReleasedItem N ranap.ies id-RAB-ReleasedItem
+RAB-QueuedItem N ranap.ies id-RAB-QueuedItem
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item N ranap.ies id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item
+RAB-ContextList-RANAP-RelocInf N ranap.ies id-RAB-ContextList-RANAP-RelocInf
+RAB-ContextItem-RANAP-RelocInf N ranap.ies id-RAB-ContextItem-RANAP-RelocInf
+RAB-ModifyList N ranap.ies id-RAB-ModifyList
+RAB-ModifyItem N ranap.ies id-RAB-ModifyItem
+LocationRelatedDataRequestType N ranap.ies id-LocationRelatedDataRequestType
+BroadcastAssistanceDataDecipheringKeys N ranap.ies id-BroadcastAssistanceDataDecipheringKeys
+InformationTransferID N ranap.ies id-InformationTransferID
+ProvidedData N ranap.ies id-ProvidedData
+GlobalCN-ID N ranap.ies id-GlobalCN-ID
+UESBI-Iu N ranap.ies id-UESBI-Iu
+InterSystemInformationTransferType N ranap.ies id-InterSystemInformationTransferType
+InformationExchangeID N ranap.ies id-InformationExchangeID
+InformationExchangeType N ranap.ies id-InformationExchangeType
+InformationTransferType N ranap.ies id-InformationTransferType
+InformationRequestType N ranap.ies id-InformationRequestType
+InformationRequested N ranap.ies id-InformationRequested
+TMGI N ranap.ies id-TMGI
+MBMSSessionIdentity N ranap.ies id-MBMSSessionIdentity
+MBMSBearerServiceType N ranap.ies id-MBMSBearerServiceType
+RAB-Parameters N ranap.ies id-RAB-Parameters
+PDP-TypeInformation N ranap.ies id-PDP-TypeInformation
+MBMSSessionDuration N ranap.ies id-MBMSSessionDuration
+MBMSServiceArea N ranap.ies id-MBMSServiceArea
+FrequenceLayerConvergenceFlag N ranap.ies id-FrequenceLayerConvergenceFlag
+RAListofIdleModeUEs N ranap.ies id-RAListofIdleModeUEs
+MBMSSessionRepetitionNumber N ranap.ies id-MBMSSessionRepetitionNumber
+TimeToMBMSDataTransfer N ranap.ies id-TimeToMBMSDataTransfer
+TransportLayerInformation N ranap.ies id-TransportLayerInformation
+SessionUpdateID N ranap.ies id-SessionUpdateID
+DeltaRAListofIdleModeUEs N ranap.ies id-DeltaRAListofIdleModeUEs
+MBMSCNDe-Registration N ranap.ies id-MBMSCNDe-Registration
+JoinedMBMSBearerService-IEs N ranap.ies id-JoinedMBMSBearerServicesList
+LeftMBMSBearerService-IEs N ranap.ies id-LeftMBMSBearerServicesList
+UnsuccessfulLinking-IEs N ranap.ies id-UnsuccessfulLinkingList
+MBMSRegistrationRequestType N ranap.ies id-MBMSRegistrationRequestType
+IPMulticastAddress N ranap.ies id-IPMulticastAddress
+APN N ranap.ies id-APN
+RAB-SetupList-EnhancedRelocCompleteReq N ranap.ies id-RAB-SetupList-EnhancedRelocCompleteReq
+RAB-SetupItem-EnhancedRelocCompleteReq N ranap.ies id-RAB-SetupItem-EnhancedRelocCompleteReq
+RAB-SetupList-EnhancedRelocCompleteRes N ranap.ies id-RAB-SetupList-EnhancedRelocCompleteRes
+RAB-SetupItem-EnhancedRelocCompleteRes N ranap.ies id-RAB-SetupItem-EnhancedRelocCompleteRes
+RAB-SetupList-EnhRelocInfoReq N ranap.ies id-RAB-SetupList-EnhRelocInfoReq
+RAB-SetupItem-EnhRelocInfoReq N ranap.ies id-RAB-SetupItem-EnhRelocInfoReq
+RAB-SetupList-EnhRelocInfoRes N ranap.ies id-RAB-SetupList-EnhRelocInfoRes
+RAB-SetupItem-EnhRelocInfoRes N ranap.ies id-RAB-SetupItem-EnhRelocInfoRes
+IuSignallingConnectionIdentifier N ranap.ies id-OldIuSigConId
+RAB-FailedList-EnhRelocInfoRes N ranap.ies id-RAB-FailedList-EnhRelocInfoRes
+RAB-FailedItem-EnhRelocInfoRes N ranap.ies id-RAB-FailedItem-EnhRelocInfoRes
+IuSignallingConnectionIdentifier N ranap.ies id-OldIuSigConIdCS
+IuSignallingConnectionIdentifier N ranap.ies id-OldIuSigConIdPS
+GlobalCN-ID N ranap.ies id-GlobalCN-IDCS
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes N ranap.ies id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes
+RAB-ToBeReleasedList-EnhancedRelocCompleteRes N ranap.ies id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes
+GlobalRNC-ID N ranap.ies id-Relocation-TargetRNC-ID
+ExtendedRNC-ID N ranap.ies id-Relocation-TargetExtendedRNC-ID
+Alt-RAB-Parameter-SupportedGuaranteedBitrateInf N ranap.ies id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf
+Alt-RAB-Parameter-SupportedMaxBitrateInf N ranap.ies id-Alt-RAB-Parameter-SupportedMaxBitrateInf
+GlobalRNC-ID N ranap.ies id-Relocation-SourceRNC-ID
+ExtendedRNC-ID N ranap.ies id-Relocation-SourceExtendedRNC-ID
+EncryptionKey N ranap.ies id-EncryptionKey
+IntegrityProtectionKey N ranap.ies id-IntegrityProtectionKey
+SRVCC-Information N ranap.ies id-SRVCC-Information
+GlobalCN-ID N ranap.ies id-GlobalCN-IDPS
+
+#RANAP-PROTOCOL-IES-PAIR
+RAB-SetupOrModifyItemFirst N ranap.ies.pair.first id-RAB-SetupOrModifyItem
+RAB-SetupOrModifyItemSecond N ranap.ies.pair.second id-RAB-SetupOrModifyItem
+
+#RANAP-PROTOCOL-EXTENSION
+RAB-Parameters N ranap.extension id-AlternativeRABConfiguration
+Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf N ranap.extension id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf
+Alt-RAB-Parameter-ExtendedMaxBitrateInf N ranap.extension id-Alt-RAB-Parameter-ExtendedMaxBitrateInf
+Ass-RAB-Parameter-ExtendedGuaranteedBitrateList N ranap.extension id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList
+Ass-RAB-Parameter-ExtendedMaxBitrateList N ranap.extension id-Ass-RAB-Parameter-ExtendedMaxBitrateList
+MessageStructure N ranap.extension id-MessageStructure
+TypeOfError N ranap.extension id-TypeOfError
+RAC N ranap.extension id-RAC
+LAListofIdleModeUEs N ranap.extension id-newLAListofIdleModeUEs
+LAListofIdleModeUEs N ranap.extension id-LAListwithNoIdleModeUEsAnyMore
+GANSS-PositioningDataSet N ranap.extension id-GANSS-PositioningDataSet
+SignallingIndication N ranap.extension id-SignallingIndication
+RAB-Parameter-ExtendedGuaranteedBitrateList N ranap.extension id-RAB-Parameter-ExtendedGuaranteedBitrateList
+RAB-Parameter-ExtendedMaxBitrateList N ranap.extension id-RAB-Parameter-ExtendedMaxBitrateList
+CN-DomainIndicator N ranap.extension id-CN-DomainIndicator
+LAListofIdleModeUEs N ranap.extension id-LAofIdleModeUEs
+AlternativeRABConfigurationRequest N ranap.extension id-AlternativeRABConfigurationRequest
+Requested-RAB-Parameter-ExtendedMaxBitrateList N ranap.extension id-Requested-RAB-Parameter-ExtendedMaxBitrateList
+Requested-RAB-Parameter-ExtendedGuaranteedBitrateList N ranap.extension id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList
+ExtendedRNC-ID N ranap.extension id-ExtendedRNC-ID
+SRB-TrCH-Mapping N ranap.extension id-SRB-TrCH-Mapping
+CellLoadInformationGroup N ranap.extension id-CellLoadInformationGroup
+TraceRecordingSessionInformation N ranap.extension id-TraceRecordingSessionInformation
+MBMSLinkingInformation N ranap.extension id-MBMSLinkingInformation
+HS-DSCH-MAC-d-Flow-ID N ranap.extension id-hS-DSCH-MAC-d-Flow-ID
+E-DCH-MAC-d-Flow-ID N ranap.extension id-E-DCH-MAC-d-Flow-ID
+GERAN-Classmark N ranap.extension id-GERAN-Classmark
+SourceBSS-ToTargetBSS-TransparentContainer N ranap.extension id-SourceBSS-ToTargetBSS-TransparentContainer
+TransportLayerAddress N ranap.extension id-TransportLayerAddress
+IuTransportAssociation N ranap.extension id-IuTransportAssociation
+InterSystemInformation-TransparentContainer N ranap.extension id-InterSystemInformation-TransparentContainer
+TargetBSS-ToSourceBSS-TransparentContainer N ranap.extension id-TargetBSS-ToSourceBSS-TransparentContainer
+Alt-RAB-Parameters N ranap.extension id-Alt-RAB-Parameters
+GERAN-BSC-Container N ranap.extension id-GERAN-BSC-Container
+GlobalCN-ID N ranap.extension id-GlobalCN-ID
+SNA-Access-Information N ranap.extension id-SNA-Access-Information
+UESBI-Iu N ranap.extension id-UESBI-Iu
+PLMNidentity N ranap.extension id-SelectedPLMN-ID
+CNMBMSLinkingInformation N ranap.extension id-CNMBMSLinkingInformation
+Ass-RAB-Parameters N ranap.extension id-Ass-RAB-Parameters
+NewBSS-To-OldBSS-Information N ranap.extension id-NewBSS-To-OldBSS-Information
+RAT-Type N ranap.extension id-RAT-Type
+TracePropagationParameters N ranap.extension id-TracePropagationParameters
+VerticalAccuracyCode N ranap.extension id-VerticalAccuracyCode
+ResponseTime N ranap.extension id-ResponseTime
+PositioningPriority N ranap.extension id-PositioningPriority
+ClientType N ranap.extension id-ClientType
+IncludeVelocity N ranap.extension id-IncludeVelocity
+PeriodicLocationInfo N ranap.extension id-PeriodicLocationInfo
+LastKnownServiceArea N ranap.extension id-LastKnownServiceArea
+PositionData N ranap.extension id-PositionData
+PositionDataSpecificToGERANIuMode N ranap.extension id-PositionDataSpecificToGERANIuMode
+AccuracyFulfilmentIndicator N ranap.extension id-AccuracyFulfilmentIndicator
+VelocityEstimate N ranap.extension id-VelocityEstimate
+PermanentNAS-UE-ID N ranap.extension id-PermanentNAS-UE-ID
+NAS-SequenceNumber N ranap.extension id-NAS-SequenceNumber
+RedirectAttemptFlag N ranap.extension id-RedirectAttemptFlag
+RedirectionIndication N ranap.extension id-RedirectionIndication
+RedirectionCompleted N ranap.extension id-RedirectionCompleted
+RRC-Container N ranap.extension id-SourceRNC-PDCP-context-info
+GERAN-Iumode-RAB-FailedList-RABAssgntResponse N ranap.extension id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse
+LocationRelatedDataRequestTypeSpecificToGERANIuMode N ranap.extension id-LocationRelatedDataRequestTypeSpecificToGERANIuMode
+RequestedGANSSAssistanceData N ranap.extension id-RequestedGANSSAssistanceData
+CriticalityDiagnostics N ranap.extension id-CriticalityDiagnostics
+MBMSCountingInformation N ranap.extension id-MBMSCountingInformation
+
+#N ranap.ies id-Global-ENB-ID
+UE-History-Information N ranap.extension id-UE-History-Information
+MBMSSynchronisationInformation N ranap.extension id-MBMSSynchronisationInformation
+SubscriberProfileIDforRFP N ranap.extension id-SubscriberProfileIDforRFP
+CSG-Id N ranap.extension id-CSG-Id
+#N ranap.extension id-SourceExtendedRNC-ID
+#N ranap.extension id-SourceRNC-ID
+SupportedRAB-ParameterBitrateList N ranap.extension id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList
+SupportedRAB-ParameterBitrateList N ranap.extension id-Ass-RAB-Parameter-SupportedMaxBitrateList
+SupportedRAB-ParameterBitrateList N ranap.extension id-RAB-Parameter-SupportedGuaranteedBitrateList
+SupportedRAB-ParameterBitrateList N ranap.extension id-RAB-Parameter-SupportedMaxBitrateList
+SupportedRAB-ParameterBitrateList N ranap.extension id-Requested-RAB-Parameter-SupportedMaxBitrateList
+SupportedRAB-ParameterBitrateList N ranap.extension id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList
+SRVCC-HO-Indication N ranap.extension id-SRVCC-HO-Indication
+SRVCC-Operation-Possible N ranap.extension id-SRVCC-Operation-Possible
+CSG-Id-List N ranap.extension id-CSG-Id-List
+RAB-ID N ranap.extension id-PSRABtobeReplaced
+E-UTRAN-Service-Handover N ranap.extension id-E-UTRAN-Service-Handover
+UE-AggregateMaximumBitRate N ranap.extension id-UE-AggregateMaximumBitRate
+CSG-Membership-Status N ranap.extension id-CSG-Membership-Status
+Cell-Access-Mode N ranap.extension id-Cell-Access-Mode
+IPMulticastAddress N ranap.extension id-IP-Source-Address
+CSFB-Information N ranap.extension id-CSFB-Information
+PDP-TypeInformation-extension N ranap.extension id-PDP-TypeInformation-extension
+
+MSISDN N ranap.extension id-MSISDN
+Offload-RAB-Parameters N ranap.extension id-Offload-RAB-Parameters
+TransportLayerAddress N ranap.extension id-LGW-TransportLayerAddress
+Correlation-ID N ranap.extension id-Correlation-ID
+IRAT-Measurement-Configuration N ranap.extension id-IRAT-Measurement-Configuration
+MDT-Configuration N ranap.extension id-MDT-Configuration
+Priority-Class-Indicator N ranap.extension id-Priority-Class-Indicator
+RNSAPRelocationParameters N ranap.extension id-RNSAPRelocationParameters
+RABParametersList N ranap.extension id-RABParametersList
+Management-Based-MDT-Allowed N ranap.extension id-Management-Based-MDT-Allowed
+HigherBitratesThan16MbpsFlag N ranap.extension id-HigherBitratesThan16MbpsFlag
+TransportLayerAddress N ranap.extension id-Trace-Collection-Entity-IP-Addess
+End-Of-CSFB N ranap.extension id-End-Of-CSFB
+
+#RANAP-ELEMENTARY-PROCEDURE
+Iu-ReleaseCommand N ranap.proc.imsg id-Iu-Release
+Iu-ReleaseComplete N ranap.proc.sout id-Iu-Release
+RelocationRequired N ranap.proc.imsg id-RelocationPreparation
+RelocationCommand N ranap.proc.sout id-RelocationPreparation
+RelocationPreparationFailure N ranap.proc.uout id-RelocationPreparation
+RelocationRequest N ranap.proc.imsg id-RelocationResourceAllocation
+RelocationRequestAcknowledge N ranap.proc.sout id-RelocationResourceAllocation
+RelocationFailure N ranap.proc.uout id-RelocationResourceAllocation
+RelocationCancel N ranap.proc.imsg id-RelocationCancel
+RelocationCancelAcknowledge N ranap.proc.sout id-RelocationCancel
+SRNS-ContextRequest N ranap.proc.imsg id-SRNS-ContextTransfer
+SRNS-ContextResponse N ranap.proc.sout id-SRNS-ContextTransfer
+SecurityModeCommand N ranap.proc.imsg id-SecurityModeControl
+SecurityModeComplete N ranap.proc.sout id-SecurityModeControl
+SecurityModeReject N ranap.proc.uout id-SecurityModeControl
+DataVolumeReportRequest N ranap.proc.imsg id-DataVolumeReport
+DataVolumeReport N ranap.proc.sout id-DataVolumeReport
+Reset N ranap.proc.imsg id-Reset
+ResetAcknowledge N ranap.proc.sout id-Reset
+RAB-ReleaseRequest N ranap.proc.imsg id-RAB-ReleaseRequest
+Iu-ReleaseRequest N ranap.proc.imsg id-Iu-ReleaseRequest
+RelocationDetect N ranap.proc.imsg id-RelocationDetect
+RelocationComplete N ranap.proc.imsg id-RelocationComplete
+Paging N ranap.proc.imsg id-Paging
+CommonID N ranap.proc.imsg id-CommonID
+CN-InvokeTrace N ranap.proc.imsg id-CN-InvokeTrace
+CN-DeactivateTrace N ranap.proc.imsg id-CN-DeactivateTrace
+LocationReportingControl N ranap.proc.imsg id-LocationReportingControl
+LocationReport N ranap.proc.imsg id-LocationReport
+InitialUE-Message N ranap.proc.imsg id-InitialUE-Message
+DirectTransfer N ranap.proc.imsg id-DirectTransfer
+Overload N ranap.proc.imsg id-OverloadControl
+ErrorIndication N ranap.proc.imsg id-ErrorIndication
+SRNS-DataForwardCommand N ranap.proc.imsg id-SRNS-DataForward
+ForwardSRNS-Context N ranap.proc.imsg id-ForwardSRNS-Context
+RAB-AssignmentRequest N ranap.proc.imsg id-RAB-Assignment
+RAB-AssignmentResponse N ranap.proc.out id-RAB-Assignment
+PrivateMessage N ranap.proc.imsg id-privateMessage
+ResetResource N ranap.proc.imsg id-ResetResource
+ResetResourceAcknowledge N ranap.proc.sout id-ResetResource
+RANAP-RelocationInformation N ranap.proc.imsg id-RANAP-Relocation
+RAB-ModifyRequest N ranap.proc.imsg id-RAB-ModifyRequest
+LocationRelatedDataRequest N ranap.proc.imsg id-LocationRelatedData
+LocationRelatedDataResponse N ranap.proc.sout id-LocationRelatedData
+LocationRelatedDataFailure N ranap.proc.uout id-LocationRelatedData
+InformationTransferIndication N ranap.proc.imsg id-InformationTransfer
+InformationTransferConfirmation N ranap.proc.sout id-InformationTransfer
+InformationTransferFailure N ranap.proc.uout id-InformationTransfer
+UESpecificInformationIndication N ranap.proc.imsg id-UESpecificInformation
+DirectInformationTransfer N ranap.proc.imsg id-DirectInformationTransfer
+UplinkInformationExchangeRequest N ranap.proc.imsg id-UplinkInformationExchange
+UplinkInformationExchangeResponse N ranap.proc.sout id-UplinkInformationExchange
+UplinkInformationExchangeFailure N ranap.proc.uout id-UplinkInformationExchange
+MBMSSessionStart N ranap.proc.imsg id-MBMSSessionStart
+MBMSSessionStartResponse N ranap.proc.sout id-MBMSSessionStart
+MBMSSessionStartFailure N ranap.proc.uout id-MBMSSessionStart
+MBMSSessionUpdate N ranap.proc.imsg id-MBMSSessionUpdate
+MBMSSessionUpdateResponse N ranap.proc.sout id-MBMSSessionUpdate
+MBMSSessionUpdateFailure N ranap.proc.uout id-MBMSSessionUpdate
+MBMSSessionStop N ranap.proc.imsg id-MBMSSessionStop
+MBMSSessionStopResponse N ranap.proc.sout id-MBMSSessionStop
+MBMSUELinkingRequest N ranap.proc.imsg id-MBMSUELinking
+MBMSUELinkingResponse N ranap.proc.out id-MBMSUELinking
+MBMSRegistrationRequest N ranap.proc.imsg id-MBMSRegistration
+MBMSRegistrationResponse N ranap.proc.sout id-MBMSRegistration
+MBMSRegistrationFailure N ranap.proc.uout id-MBMSRegistration
+MBMSCNDe-RegistrationRequest N ranap.proc.imsg id-MBMSCNDe-Registration-Procedure
+MBMSCNDe-RegistrationResponse N ranap.proc.sout id-MBMSCNDe-Registration-Procedure
+MBMSRABEstablishmentIndication N ranap.proc.imsg id-MBMSRABEstablishmentIndication
+MBMSRABReleaseRequest N ranap.proc.imsg id-MBMSRABRelease
+MBMSRABRelease N ranap.proc.sout id-MBMSRABRelease
+MBMSRABReleaseFailure N ranap.proc.uout id-MBMSRABRelease
+EnhancedRelocationCompleteRequest N ranap.proc.imsg id-enhancedRelocationComplete
+EnhancedRelocationCompleteResponse N ranap.proc.sout id-enhancedRelocationComplete
+EnhancedRelocationCompleteFailure N ranap.proc.uout id-enhancedRelocationComplete
+EnhancedRelocationCompleteConfirm N ranap.proc.imsg id-enhancedRelocationCompleteConfirm
+RANAP-EnhancedRelocationInformationRequest N ranap.proc.imsg id-RANAPenhancedRelocation
+RANAP-EnhancedRelocationInformationResponse N ranap.proc.sout id-RANAPenhancedRelocation
+
+SRVCC-CSKeysRequest N ranap.proc.imsg id-SRVCCPreparation
+SRVCC-CSKeysResponse N ranap.proc.out id-SRVCCPreparation
+
+#.END
diff --git a/epan/dissectors/asn1/rnsap/CMakeLists.txt b/epan/dissectors/asn1/rnsap/CMakeLists.txt
new file mode 100644
index 0000000000..8fbc5b3bde
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME rnsap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ RNSAP-CommonDataTypes.asn
+ RNSAP-Constants.asn
+ RNSAP-Containers.asn
+ RNSAP-IEs.asn
+ RNSAP-PDU-Contents.asn
+ RNSAP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/rnsap/Makefile.am b/epan/dissectors/asn1/rnsap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/rnsap/Makefile.common b/epan/dissectors/asn1/rnsap/Makefile.common
new file mode 100644
index 0000000000..a71a45ef91
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = rnsap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ RNSAP-CommonDataTypes.asn \
+ RNSAP-Constants.asn \
+ RNSAP-Containers.asn \
+ RNSAP-IEs.asn \
+ RNSAP-PDU-Contents.asn \
+ RNSAP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/rnsap/Makefile.nmake b/epan/dissectors/asn1/rnsap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-CommonDataTypes.asn b/epan/dissectors/asn1/rnsap/RNSAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..08fa56cc64
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/RNSAP-CommonDataTypes.asn
@@ -0,0 +1,65 @@
+-- RNSAP-CommonDataTypes.asn
+--
+-- Taken from 3GPP TS 25.423 V9.4.0 (2010-09)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.423/25423-790.zip/25423-790.DOC
+--
+-- 9.3.5 Common Definitions
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+
+RNSAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rnsap (1) version1 (1) rnsap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+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, unsuccessful-outcome, outcome }
+
+END
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-Constants.asn b/epan/dissectors/asn1/rnsap/RNSAP-Constants.asn
new file mode 100644
index 0000000000..efa5f635ae
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/RNSAP-Constants.asn
@@ -0,0 +1,1134 @@
+-- RNSAP-Constants.asn
+--
+-- Taken from 3GPP TS 25.423 V9.4.0 (2010-09)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.423/25423-790.zip/25423-790.DOC
+--
+-- 9.3.6 Constant Definitions
+--
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+RNSAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rnsap (1) version1 (1) rnsap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM RNSAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-commonTransportChannelResourcesInitialisation ProcedureCode ::= 0
+id-commonTransportChannelResourcesRelease ProcedureCode ::= 1
+id-compressedModeCommand ProcedureCode ::= 2
+id-downlinkPowerControl ProcedureCode ::= 3
+id-downlinkPowerTimeslotControl ProcedureCode ::= 4
+id-downlinkSignallingTransfer ProcedureCode ::= 5
+id-errorIndication ProcedureCode ::= 6
+id-dedicatedMeasurementFailure ProcedureCode ::= 7
+id-dedicatedMeasurementInitiation ProcedureCode ::= 8
+id-dedicatedMeasurementReporting ProcedureCode ::= 9
+id-dedicatedMeasurementTermination ProcedureCode ::= 10
+id-paging ProcedureCode ::= 11
+id-physicalChannelReconfiguration ProcedureCode ::= 12
+id-privateMessage ProcedureCode ::= 13
+id-radioLinkAddition ProcedureCode ::= 14
+id-radioLinkCongestion ProcedureCode ::= 34
+id-radioLinkDeletion ProcedureCode ::= 15
+id-radioLinkFailure ProcedureCode ::= 16
+id-radioLinkPreemption ProcedureCode ::= 17
+id-radioLinkRestoration ProcedureCode ::= 18
+id-radioLinkSetup ProcedureCode ::= 19
+id-relocationCommit ProcedureCode ::= 20
+id-synchronisedRadioLinkReconfigurationCancellation ProcedureCode ::= 21
+id-synchronisedRadioLinkReconfigurationCommit ProcedureCode ::= 22
+id-synchronisedRadioLinkReconfigurationPreparation ProcedureCode ::= 23
+id-unSynchronisedRadioLinkReconfiguration ProcedureCode ::= 24
+id-uplinkSignallingTransfer ProcedureCode ::= 25
+id-commonMeasurementFailure ProcedureCode ::= 26
+id-commonMeasurementInitiation ProcedureCode ::= 27
+id-commonMeasurementReporting ProcedureCode ::= 28
+id-commonMeasurementTermination ProcedureCode ::= 29
+id-informationExchangeFailure ProcedureCode ::= 30
+id-informationExchangeInitiation ProcedureCode ::= 31
+id-informationReporting ProcedureCode ::= 32
+id-informationExchangeTermination ProcedureCode ::= 33
+id-reset ProcedureCode ::= 35
+id-radioLinkActivation ProcedureCode ::= 36
+id-gERANuplinkSignallingTransfer ProcedureCode ::= 37
+id-radioLinkParameterUpdate ProcedureCode ::= 38
+id-uEMeasurementFailure ProcedureCode ::= 39
+id-uEMeasurementInitiation ProcedureCode ::= 40
+id-uEMeasurementReporting ProcedureCode ::= 41
+id-uEMeasurementTermination ProcedureCode ::= 42
+id-iurDeactivateTrace ProcedureCode ::= 43
+id-iurInvokeTrace ProcedureCode ::= 44
+id-mBMSAttach ProcedureCode ::= 45
+id-mBMSDetach ProcedureCode ::= 46
+--WS extension
+id-Not-used-47 ProcedureCode ::= 47
+id-directInformationTransfer ProcedureCode ::= 48
+id-enhancedRelocation ProcedureCode ::= 49
+id-enhancedRelocationCancel ProcedureCode ::= 50
+id-enhancedRelocationSignallingTransfer ProcedureCode ::= 51
+id-enhancedRelocationRelease ProcedureCode ::= 52
+id-mBSFNMCCHInformation ProcedureCode ::= 53
+id-secondaryULFrequencyReporting ProcedureCode ::= 54
+id-secondaryULFrequencyUpdate ProcedureCode ::= 55
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxCellSIB11OrSIB12 INTEGER ::= 32
+maxCellsMeas INTEGER ::= 8
+maxRateMatching INTEGER ::= 256
+maxNoOfDSCHs INTEGER ::= 10
+maxNoOfDSCHsLCR INTEGER ::= 10
+maxNoOfRB INTEGER ::= 32
+maxNoOfUSCHs INTEGER ::= 10
+maxNoOfUSCHsLCR INTEGER ::= 10
+maxNrOfTFCs INTEGER ::= 1024
+maxNrOfTFs INTEGER ::= 32
+maxNrOfCCTrCHs INTEGER ::= 16
+maxNrOfCCTrCHsLCR INTEGER ::= 16
+maxNrOfDCHs INTEGER ::= 128
+maxNrOfDL-Codes INTEGER ::= 8
+maxNrOfDPCHs INTEGER ::= 240
+maxNrOfDPCHsPerRL-1 INTEGER ::= 239 -- maxNrofCCTrCH*maxNrOfULTs-1
+maxNrOfDPCHsLCR INTEGER ::= 240
+maxNrOfDPCHsLCRPerRL-1 INTEGER ::= 95 -- maxNrofCCTrCH*maxNrOfULTsLCR-1
+maxNrOfDPCHs768 INTEGER ::= 480
+maxNrOfDPCHs768PerRL-1 INTEGER ::= 479
+maxNrOfErrors INTEGER ::= 256
+maxNrOfMACcshSDU-Length INTEGER ::= 16
+maxNrOfMBMSServices INTEGER ::= 128
+maxNrOfActiveMBMSServices INTEGER ::= 256
+maxNrOfPoints INTEGER ::= 15
+maxNrOfRLs INTEGER ::= 16
+maxNrOfRLSets INTEGER ::= maxNrOfRLs
+maxNrOfRLSets-1 INTEGER ::= 15 -- maxNrOfRLSets - 1
+maxNrOfRLs-1 INTEGER ::= 15 -- maxNrOfRLs - 1
+maxNrOfRLs-2 INTEGER ::= 14 -- maxNrOfRLs - 2
+maxNrOfUEs INTEGER ::= 4096
+maxNrOfULTs INTEGER ::= 15
+maxNrOfULTsLCR INTEGER ::= 6
+maxNrOfDLTs INTEGER ::= 15
+maxNrOfDLTsLCR INTEGER ::= 6
+maxRNCinURA-1 INTEGER ::= 15
+maxTTI-Count INTEGER ::= 4
+maxCTFC INTEGER ::= 16777215
+maxNrOfNeighbouringRNCs INTEGER ::= 10
+maxNrOfFDDNeighboursPerRNC INTEGER ::= 256
+maxNrOfGSMNeighboursPerRNC INTEGER ::= 256
+maxNrOfTDDNeighboursPerRNC INTEGER ::= 256
+maxNrOfFACHs INTEGER ::= 8
+maxNrOfLCRTDDNeighboursPerRNC INTEGER ::= 256
+maxIBSEG INTEGER ::= 16
+maxNrOfSCCPCHs INTEGER ::= 8
+maxNrOfSCCPCHs768 INTEGER ::= 16
+maxTGPS INTEGER ::= 6
+maxNrOfTS INTEGER ::= 15
+maxNrOfLevels INTEGER ::= 256
+maxNrOfTsLCR INTEGER ::= 6
+maxNoSat INTEGER ::= 16
+maxNoGPSTypes INTEGER ::= 8
+maxNrOfMeasNCell INTEGER ::= 96
+maxNrOfMeasNCell-1 INTEGER ::= 95 -- maxNrOfMeasNCell - 1
+maxResetContext INTEGER ::= 250
+maxResetContextGroup INTEGER ::= 32
+maxNrOfHARQProc INTEGER ::= 8
+maxNrOfHSSCCHCodes INTEGER ::= 4
+maxNrOfHSSICHs INTEGER ::= 4
+maxNrOfHSSICHs-1 INTEGER ::= 3
+maxNrOfMACdFlows INTEGER ::= 8
+maxNrOfMACdFlows-1 INTEGER ::= 7 -- maxNrOfMACdFlows - 1
+maxNrOfMACdPDUSize INTEGER ::= 32
+maxNrOfPDUIndexes INTEGER ::= 8
+maxNrOfPDUIndexes-1 INTEGER ::= 7 -- maxNrOfPDUIndexes - 1
+maxNrOfPrioQueues INTEGER ::= 8
+maxNrOfPrioQueues-1 INTEGER ::= 7 -- maxNrOfPrioQueues - 1
+maxNrOfSNAs INTEGER ::= 65536
+maxNrOfSatAlmanac-maxNoSat INTEGER ::= 16
+maxNrOfGERANSI INTEGER ::= 8
+maxNrOfInterfaces INTEGER ::= 16
+maxNrofSigSeqERGHICH-1 INTEGER ::= 39
+maxNrOfCells INTEGER ::= 65536
+maxNrOfAddFreq INTEGER ::= 8
+maxNrOfCellsPerFreq INTEGER ::= 65536
+maxNrOfEDCHMACdFlows-1 INTEGER ::= 7
+maxNrOfEDCH-HARQ-PO-QUANTSTEPs INTEGER ::= 6
+maxNrOfEDPCCH-PO-QUANTSTEPs INTEGER ::= 8
+maxNrOfEDCHHARQProcesses2msEDCH INTEGER ::= 8
+maxNrOfBits-MACe-PDU-non-scheduled INTEGER ::= 19982
+maxNrOfRefETFCIs INTEGER ::= 8
+maxNrOfRefETFCI-PO-QUANTSTEPs INTEGER ::= 29
+maxNrOfEDCHMACdFlows INTEGER ::= 8
+maxNoOfLogicalChannels INTEGER ::= 16 -- only maximum 15 can be used
+maxNrOfRefBetas INTEGER ::= 8
+maxNrOfEAGCHCodes INTEGER ::= 4
+maxNrOfHS-DSCHTBSs INTEGER ::= 90
+maxNrOfHS-DSCHTBSs-HS-SCCHless INTEGER ::= 4
+maxHS-PDSCHCodeNrComp-1 INTEGER ::= 15
+maxNrOfEHICHCodes INTEGER ::= 4
+maxGANSSSat INTEGER ::= 64
+maxNoGANSS INTEGER ::= 8
+maxSgnType INTEGER ::= 8
+maxNrOfBroadcastPLMNs INTEGER ::= 5
+maxHSDPAFrequency INTEGER ::= 8
+maxHSDPAFrequency-1 INTEGER ::= 7
+maxFrequencyinCell INTEGER ::= 12
+maxFrequencyinCell-1 INTEGER ::= 11
+maxGANSSSatAlmanac INTEGER ::= 36
+maxGANSSClockMod INTEGER ::= 4
+maxNrOfEDCHRLs INTEGER ::= 4
+maxEARFCN INTEGER ::= 65535
+maxNrOfEUTRANeighboursPerRNC INTEGER ::= 256
+maxNrOfMCCHMessages INTEGER ::= 5
+maxNrOfMBMSL3 INTEGER ::= 64
+maxNrOfEDCHMACdFlowsLCR INTEGER ::= 256
+maxNrOfEDCHMACdFlowsLCR-1 INTEGER ::= 255
+maxNrOfPreconfiguredNeighbours INTEGER ::= 256
+maxNrOfHSDSCH-1 INTEGER ::= 32
+maxNrOfHSDSCH INTEGER ::= 33
+maxGANSS-1 INTEGER ::= 7
+maxlengthMBMSconcatservlists INTEGER ::= 96
+maxNoOfTBSs-Mapping-HS-DSCH-SPS INTEGER ::= 4
+maxNoOfTBSs-Mapping-HS-DSCH-SPS-1 INTEGER ::= 3
+maxNoOfHS-DSCH-TBSsLCR INTEGER ::= 64
+maxNoOfRepetition-Period-LCR INTEGER ::= 4
+maxNoOfRepetitionPeriod-SPS-LCR-1 INTEGER ::= 3
+maxNoOf-HS-SICH-SPS INTEGER ::= 4
+maxNoOf-HS-SICH-SPS-1 INTEGER ::= 3
+maxNoOfNon-HS-SCCH-Assosiated-HS-SICH INTEGER ::= 4
+maxNrOfEDCH-1 INTEGER ::= 32
+maxNrOfDCHMeasurementOccasionPatternSequence INTEGER ::= 6
+
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AllowedQueuingTime ProtocolIE-ID ::= 4
+id-Allowed-Rate-Information ProtocolIE-ID ::= 42
+id-AntennaColocationIndicator ProtocolIE-ID ::= 309
+id-BindingID ProtocolIE-ID ::= 5
+id-C-ID ProtocolIE-ID ::= 6
+id-C-RNTI ProtocolIE-ID ::= 7
+id-Cell-Capacity-Class-Value ProtocolIE-ID ::= 303
+id-CFN ProtocolIE-ID ::= 8
+id-CN-CS-DomainIdentifier ProtocolIE-ID ::= 9
+id-CN-PS-DomainIdentifier ProtocolIE-ID ::= 10
+id-Cause ProtocolIE-ID ::= 11
+id-CoverageIndicator ProtocolIE-ID ::= 310
+id-CriticalityDiagnostics ProtocolIE-ID ::= 20
+id-ContextInfoItem-Reset ProtocolIE-ID ::= 211
+id-ContextGroupInfoItem-Reset ProtocolIE-ID ::= 515
+id-D-RNTI ProtocolIE-ID ::= 21
+id-D-RNTI-ReleaseIndication ProtocolIE-ID ::= 22
+id-DCHs-to-Add-FDD ProtocolIE-ID ::= 26
+id-DCHs-to-Add-TDD ProtocolIE-ID ::= 27
+id-DCH-DeleteList-RL-ReconfPrepFDD ProtocolIE-ID ::= 30
+id-DCH-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 31
+id-DCH-DeleteList-RL-ReconfRqstFDD ProtocolIE-ID ::= 32
+id-DCH-DeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 33
+id-DCH-FDD-Information ProtocolIE-ID ::= 34
+id-DCH-TDD-Information ProtocolIE-ID ::= 35
+id-FDD-DCHs-to-Modify ProtocolIE-ID ::= 39
+id-TDD-DCHs-to-Modify ProtocolIE-ID ::= 40
+id-DCH-InformationResponse ProtocolIE-ID ::= 43
+id-DCH-Rate-InformationItem-RL-CongestInd ProtocolIE-ID ::= 38
+id-DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 44
+id-DL-CCTrCH-InformationListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 45
+id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 46
+id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD ProtocolIE-ID ::= 47
+id-DL-CCTrCH-InformationListIE-PhyChReconfRqstTDD ProtocolIE-ID ::= 48
+id-DL-CCTrCH-InformationListIE-RL-AdditionRspTDD ProtocolIE-ID ::= 49
+id-DL-CCTrCH-InformationListIE-RL-SetupRspTDD ProtocolIE-ID ::= 50
+id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 51
+id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 52
+id-DL-CCTrCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 53
+id-FDD-DL-CodeInformation ProtocolIE-ID ::= 54
+id-DL-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 59
+id-DL-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 60
+id-DL-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 61
+id-DL-DPCH-InformationItem-PhyChReconfRqstTDD ProtocolIE-ID ::= 62
+id-DL-DPCH-InformationItem-RL-AdditionRspTDD ProtocolIE-ID ::= 63
+id-DL-DPCH-InformationItem-RL-SetupRspTDD ProtocolIE-ID ::= 64
+id-DL-DPCH-TimingAdjustment ProtocolIE-ID ::= 278
+id-DLReferencePower ProtocolIE-ID ::= 67
+id-DLReferencePowerList-DL-PC-Rqst ProtocolIE-ID ::= 68
+id-DL-ReferencePowerInformation-DL-PC-Rqst ProtocolIE-ID ::= 69
+id-DPC-Mode ProtocolIE-ID ::= 12
+id-DRXCycleLengthCoefficient ProtocolIE-ID ::= 70
+id-DedicatedMeasurementObjectType-DM-Fail-Ind ProtocolIE-ID ::= 470
+id-DedicatedMeasurementObjectType-DM-Fail ProtocolIE-ID ::= 471
+id-DedicatedMeasurementObjectType-DM-Rprt ProtocolIE-ID ::= 71
+id-DedicatedMeasurementObjectType-DM-Rqst ProtocolIE-ID ::= 72
+id-DedicatedMeasurementObjectType-DM-Rsp ProtocolIE-ID ::= 73
+id-DedicatedMeasurementType ProtocolIE-ID ::= 74
+id-FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD ProtocolIE-ID ::= 82
+id-FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD ProtocolIE-ID ::= 83
+id-Guaranteed-Rate-Information ProtocolIE-ID ::= 41
+id-IMSI ProtocolIE-ID ::= 84
+id-HCS-Prio ProtocolIE-ID ::= 311
+id-L3-Information ProtocolIE-ID ::= 85
+id-AdjustmentPeriod ProtocolIE-ID ::= 90
+id-MaxAdjustmentStep ProtocolIE-ID ::= 91
+id-MeasurementFilterCoefficient ProtocolIE-ID ::= 92
+id-MessageStructure ProtocolIE-ID ::= 57
+id-MeasurementID ProtocolIE-ID ::= 93
+id-Neighbouring-GSM-CellInformation ProtocolIE-ID ::= 13
+id-Neighbouring-UMTS-CellInformationItem ProtocolIE-ID ::= 95
+--WS extension
+id-Unknown-305 ProtocolIE-ID ::= 304
+id-NRT-Load-Information-Value ProtocolIE-ID ::= 305
+id-NRT-Load-Information-Value-IncrDecrThres ProtocolIE-ID ::= 306
+id-PagingArea-PagingRqst ProtocolIE-ID ::= 102
+id-FACH-FlowControlInformation ProtocolIE-ID ::= 103
+id-PartialReportingIndicator ProtocolIE-ID ::= 472
+id-Permanent-NAS-UE-Identity ProtocolIE-ID ::= 17
+id-PowerAdjustmentType ProtocolIE-ID ::= 107
+--WS extension
+id-Unknown-108 ProtocolIE-ID ::= 108
+id-RANAP-RelocationInformation ProtocolIE-ID ::= 109
+id-RL-Information-PhyChReconfRqstFDD ProtocolIE-ID ::= 110
+id-RL-Information-PhyChReconfRqstTDD ProtocolIE-ID ::= 111
+id-RL-Information-RL-AdditionRqstFDD ProtocolIE-ID ::= 112
+id-RL-Information-RL-AdditionRqstTDD ProtocolIE-ID ::= 113
+id-RL-Information-RL-DeletionRqst ProtocolIE-ID ::= 114
+id-RL-Information-RL-FailureInd ProtocolIE-ID ::= 115
+id-RL-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 116
+id-RL-Information-RL-RestoreInd ProtocolIE-ID ::= 117
+id-RL-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 118
+id-RL-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 119
+id-RL-InformationItem-RL-CongestInd ProtocolIE-ID ::= 55
+id-RL-InformationItem-DM-Rprt ProtocolIE-ID ::= 120
+id-RL-InformationItem-DM-Rqst ProtocolIE-ID ::= 121
+id-RL-InformationItem-DM-Rsp ProtocolIE-ID ::= 122
+id-RL-InformationItem-RL-PreemptRequiredInd ProtocolIE-ID ::= 2
+id-RL-InformationItem-RL-SetupRqstFDD ProtocolIE-ID ::= 123
+id-RL-InformationList-RL-CongestInd ProtocolIE-ID ::= 56
+id-RL-InformationList-RL-AdditionRqstFDD ProtocolIE-ID ::= 124
+id-RL-InformationList-RL-DeletionRqst ProtocolIE-ID ::= 125
+id-RL-InformationList-RL-PreemptRequiredInd ProtocolIE-ID ::= 1
+id-RL-InformationList-RL-ReconfPrepFDD ProtocolIE-ID ::= 126
+id-RL-InformationResponse-RL-AdditionRspTDD ProtocolIE-ID ::= 127
+id-RL-InformationResponse-RL-ReconfReadyTDD ProtocolIE-ID ::= 128
+id-RL-InformationResponse-RL-SetupRspTDD ProtocolIE-ID ::= 129
+id-RL-InformationResponseItem-RL-AdditionRspFDD ProtocolIE-ID ::= 130
+id-RL-InformationResponseItem-RL-ReconfReadyFDD ProtocolIE-ID ::= 131
+id-RL-InformationResponseItem-RL-ReconfRspFDD ProtocolIE-ID ::= 132
+id-RL-InformationResponseItem-RL-SetupRspFDD ProtocolIE-ID ::= 133
+id-RL-InformationResponseList-RL-AdditionRspFDD ProtocolIE-ID ::= 134
+id-RL-InformationResponseList-RL-ReconfReadyFDD ProtocolIE-ID ::= 135
+id-RL-InformationResponseList-RL-ReconfRspFDD ProtocolIE-ID ::= 136
+id-RL-InformationResponse-RL-ReconfRspTDD ProtocolIE-ID ::= 28
+id-RL-InformationResponseList-RL-SetupRspFDD ProtocolIE-ID ::= 137
+id-RL-ReconfigurationFailure-RL-ReconfFail ProtocolIE-ID ::= 141
+id-RL-Set-InformationItem-DM-Rprt ProtocolIE-ID ::= 143
+id-RL-Set-InformationItem-DM-Rqst ProtocolIE-ID ::= 144
+id-RL-Set-InformationItem-DM-Rsp ProtocolIE-ID ::= 145
+id-RL-Set-Information-RL-FailureInd ProtocolIE-ID ::= 146
+id-RL-Set-Information-RL-RestoreInd ProtocolIE-ID ::= 147
+id-RL-Set-Successful-InformationItem-DM-Fail ProtocolIE-ID ::= 473
+id-RL-Set-Unsuccessful-InformationItem-DM-Fail ProtocolIE-ID ::= 474
+id-RL-Set-Unsuccessful-InformationItem-DM-Fail-Ind ProtocolIE-ID ::= 475
+id-RL-Successful-InformationItem-DM-Fail ProtocolIE-ID ::= 476
+id-RL-Unsuccessful-InformationItem-DM-Fail ProtocolIE-ID ::= 477
+id-RL-Unsuccessful-InformationItem-DM-Fail-Ind ProtocolIE-ID ::= 478
+id-ReportCharacteristics ProtocolIE-ID ::= 152
+id-Reporting-Object-RL-FailureInd ProtocolIE-ID ::= 153
+id-Reporing-Object-RL-RestoreInd ProtocolIE-ID ::= 154
+id-RT-Load-Value ProtocolIE-ID ::= 307
+id-RT-Load-Value-IncrDecrThres ProtocolIE-ID ::= 308
+id-S-RNTI ProtocolIE-ID ::= 155
+id-ResetIndicator ProtocolIE-ID ::= 244
+id-RNC-ID ProtocolIE-ID ::= 245
+id-SAI ProtocolIE-ID ::= 156
+id-SRNC-ID ProtocolIE-ID ::= 157
+id-SuccessfulRL-InformationResponse-RL-AdditionFailureFDD ProtocolIE-ID ::= 159
+id-SuccessfulRL-InformationResponse-RL-SetupFailureFDD ProtocolIE-ID ::= 160
+--WS extension
+id-Unknown-161 ProtocolIE-ID ::= 161
+id-Unknown-162 ProtocolIE-ID ::= 162
+id-TransportBearerID ProtocolIE-ID ::= 163
+id-TransportBearerRequestIndicator ProtocolIE-ID ::= 164
+id-TransportLayerAddress ProtocolIE-ID ::= 165
+id-TypeOfError ProtocolIE-ID ::= 140
+id-UC-ID ProtocolIE-ID ::= 166
+id-UL-CCTrCH-AddInformation-RL-ReconfPrepTDD ProtocolIE-ID ::= 167
+id-Unknown-168 ProtocolIE-ID ::= 168
+id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 169
+id-Unknown-170 ProtocolIE-ID ::= 170
+id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD ProtocolIE-ID ::= 171
+id-UL-CCTrCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 172
+id-UL-CCTrCH-InformationListIE-PhyChReconfRqstTDD ProtocolIE-ID ::= 173
+id-UL-CCTrCH-InformationListIE-RL-AdditionRspTDD ProtocolIE-ID ::= 174
+id-UL-CCTrCH-InformationListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 175
+id-UL-CCTrCH-InformationListIE-RL-SetupRspTDD ProtocolIE-ID ::= 176
+id-UL-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 177
+id-UL-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 178
+id-UL-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 179
+id-UL-DPCH-InformationItem-PhyChReconfRqstTDD ProtocolIE-ID ::= 180
+id-UL-DPCH-InformationItem-RL-AdditionRspTDD ProtocolIE-ID ::= 181
+id-UL-DPCH-InformationItem-RL-SetupRspTDD ProtocolIE-ID ::= 182
+id-UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 183
+id-UL-SIRTarget ProtocolIE-ID ::= 184
+id-URA-Information ProtocolIE-ID ::= 185
+--WS extension
+id-Unknown-186 ProtocolIE-ID ::= 186
+id-Unknown-187 ProtocolIE-ID ::= 187
+id-UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD ProtocolIE-ID ::= 188
+id-UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD ProtocolIE-ID ::= 189
+id-UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD ProtocolIE-ID ::= 190
+--WS extension
+id-Unknown-191 ProtocolIE-ID ::= 191
+id-Unknown-192 ProtocolIE-ID ::= 192
+id-Active-Pattern-Sequence-Information ProtocolIE-ID ::= 193
+id-AdjustmentRatio ProtocolIE-ID ::= 194
+--WS extension
+id-Unknown-195 ProtocolIE-ID ::= 195
+id-Unknown-196 ProtocolIE-ID ::= 196
+id-CauseLevel-RL-AdditionFailureFDD ProtocolIE-ID ::= 197
+id-CauseLevel-RL-AdditionFailureTDD ProtocolIE-ID ::= 198
+id-CauseLevel-RL-ReconfFailure ProtocolIE-ID ::= 199
+id-CauseLevel-RL-SetupFailureFDD ProtocolIE-ID ::= 200
+id-CauseLevel-RL-SetupFailureTDD ProtocolIE-ID ::= 201
+id-DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 205
+id-DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 206
+id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 207
+id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 208
+id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 209
+id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 210
+id-DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 212
+id-DL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 213
+id-DL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 214
+id-DSCHs-to-Add-TDD ProtocolIE-ID ::= 215
+id-Unused-ProtocolIE-ID-216 ProtocolIE-ID ::= 216
+id-DSCH-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 217
+id-Unused-ProtocolIE-ID-218 ProtocolIE-ID ::= 218
+id-Unused-ProtocolIE-ID-219 ProtocolIE-ID ::= 219
+id-DSCH-InformationListIE-RL-AdditionRspTDD ProtocolIE-ID ::= 220
+id-DSCH-InformationListIEs-RL-SetupRspTDD ProtocolIE-ID ::= 221
+id-DSCH-TDD-Information ProtocolIE-ID ::= 222
+id-Unused-ProtocolIE-ID-223 ProtocolIE-ID ::= 223
+id-Unused-ProtocolIE-ID-226 ProtocolIE-ID ::= 226
+id-DSCH-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 227
+id-Unused-ProtocolIE-ID-228 ProtocolIE-ID ::= 228
+id-Unused-ProtocolIE-ID-324 ProtocolIE-ID ::= 324
+id-Unused-ProtocolIE-ID-229 ProtocolIE-ID ::= 229
+id-DSCHToBeAddedOrModifiedList-RL-ReconfReadyTDD ProtocolIE-ID ::= 230
+--WS extension
+id-Unknown-231 ProtocolIE-ID ::= 231
+id-Unused-ProtocolIE-ID-29 ProtocolIE-ID ::= 29
+id-Unused-ProtocolIE-ID-225 ProtocolIE-ID ::= 225
+id-GA-Cell ProtocolIE-ID ::= 232
+id-GA-CellAdditionalShapes ProtocolIE-ID ::= 3
+id-Unused-ProtocolIE-ID-246 ProtocolIE-ID ::= 246
+--WS extension
+id-Unknown-254 ProtocolIE-ID ::= 254
+id-Transmission-Gap-Pattern-Sequence-Information ProtocolIE-ID ::= 255
+id-UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD ProtocolIE-ID ::= 256
+id-UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD ProtocolIE-ID ::= 257
+id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 258
+id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 259
+id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 260
+id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 261
+id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 262
+id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 263
+id-UL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 264
+id-UL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 265
+id-UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD ProtocolIE-ID ::= 266
+id-USCHs-to-Add ProtocolIE-ID ::= 267
+id-USCH-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 268
+id-USCH-InformationListIE-RL-AdditionRspTDD ProtocolIE-ID ::= 269
+id-USCH-InformationListIEs-RL-SetupRspTDD ProtocolIE-ID ::= 270
+id-USCH-Information ProtocolIE-ID ::= 271
+id-USCH-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 272
+id-USCHToBeAddedOrModifiedList-RL-ReconfReadyTDD ProtocolIE-ID ::= 273
+id-DL-Physical-Channel-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 274
+id-UL-Physical-Channel-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 275
+id-ClosedLoopMode1-SupportIndicator ProtocolIE-ID ::= 276
+id-Unused-ProtocolIE-ID-277 ProtocolIE-ID ::= 277
+id-STTD-SupportIndicator ProtocolIE-ID ::= 279
+id-CFNReportingIndicator ProtocolIE-ID ::= 14
+id-CNOriginatedPage-PagingRqst ProtocolIE-ID ::= 23
+id-InnerLoopDLPCStatus ProtocolIE-ID ::= 24
+id-PropagationDelay ProtocolIE-ID ::= 25
+id-RxTimingDeviationForTA ProtocolIE-ID ::= 36
+id-timeSlot-ISCP ProtocolIE-ID ::= 37
+id-CCTrCH-InformationItem-RL-FailureInd ProtocolIE-ID ::= 15
+id-CCTrCH-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 16
+id-CommonMeasurementAccuracy ProtocolIE-ID ::= 280
+id-CommonMeasurementObjectType-CM-Rprt ProtocolIE-ID ::= 281
+id-CommonMeasurementObjectType-CM-Rqst ProtocolIE-ID ::= 282
+id-CommonMeasurementObjectType-CM-Rsp ProtocolIE-ID ::= 283
+id-CommonMeasurementType ProtocolIE-ID ::= 284
+id-CongestionCause ProtocolIE-ID ::= 18
+id-SFN ProtocolIE-ID ::= 285
+id-SFNReportingIndicator ProtocolIE-ID ::= 286
+id-InformationExchangeID ProtocolIE-ID ::= 287
+id-InformationExchangeObjectType-InfEx-Rprt ProtocolIE-ID ::= 288
+id-InformationExchangeObjectType-InfEx-Rqst ProtocolIE-ID ::= 289
+id-InformationExchangeObjectType-InfEx-Rsp ProtocolIE-ID ::= 290
+id-InformationReportCharacteristics ProtocolIE-ID ::= 291
+id-InformationType ProtocolIE-ID ::= 292
+id-neighbouring-LCR-TDD-CellInformation ProtocolIE-ID ::= 58
+id-DL-Timeslot-ISCP-LCR-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 65
+id-RL-LCR-InformationResponse-RL-SetupRspTDD ProtocolIE-ID ::= 66
+id-UL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD ProtocolIE-ID ::= 75
+id-UL-DPCH-LCR-InformationItem-RL-SetupRspTDD ProtocolIE-ID ::= 76
+id-DL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD ProtocolIE-ID ::= 77
+id-DL-DPCH-LCR-InformationItem-RL-SetupRspTDD ProtocolIE-ID ::= 78
+id-DSCH-LCR-InformationListIEs-RL-SetupRspTDD ProtocolIE-ID ::= 79
+id-USCH-LCR-InformationListIEs-RL-SetupRspTDD ProtocolIE-ID ::= 80
+id-DL-Timeslot-ISCP-LCR-Information-RL-AdditionRqstTDD ProtocolIE-ID ::= 81
+id-RL-LCR-InformationResponse-RL-AdditionRspTDD ProtocolIE-ID ::= 86
+id-UL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD ProtocolIE-ID ::= 87
+id-UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD ProtocolIE-ID ::= 88
+id-DL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD ProtocolIE-ID ::= 89
+id-DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD ProtocolIE-ID ::= 94
+id-DSCH-LCR-InformationListIEs-RL-AdditionRspTDD ProtocolIE-ID ::= 96
+id-USCH-LCR-InformationListIEs-RL-AdditionRspTDD ProtocolIE-ID ::= 97
+id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 98
+--WS extension
+id-Unknown-99 ProtocolIE-ID ::= 99
+id-UL-Timeslot-LCR-InformationModifyList-RL-ReconfReadyTDD ProtocolIE-ID ::= 100
+id-DL-DPCH-LCR-InformationAddListIE-RL-ReconfReadyTDD ProtocolIE-ID ::= 101
+id-DL-Timeslot-LCR-InformationModifyList-RL-ReconfReadyTDD ProtocolIE-ID ::= 104
+id-UL-Timeslot-LCR-InformationList-PhyChReconfRqstTDD ProtocolIE-ID ::= 105
+id-DL-Timeslot-LCR-InformationList-PhyChReconfRqstTDD ProtocolIE-ID ::= 106
+id-timeSlot-ISCP-LCR-List-DL-PC-Rqst-TDD ProtocolIE-ID ::= 138
+id-TSTD-Support-Indicator-RL-SetupRqstTDD ProtocolIE-ID ::= 139
+id-RestrictionStateIndicator ProtocolIE-ID ::= 142
+id-Load-Value ProtocolIE-ID ::= 233
+id-Load-Value-IncrDecrThres ProtocolIE-ID ::= 234
+id-OnModification ProtocolIE-ID ::= 235
+id-Received-Total-Wideband-Power-Value ProtocolIE-ID ::= 236
+id-Received-Total-Wideband-Power-Value-IncrDecrThres ProtocolIE-ID ::= 237
+id-SFNSFNMeasurementThresholdInformation ProtocolIE-ID ::= 238
+id-Transmitted-Carrier-Power-Value ProtocolIE-ID ::= 239
+id-Transmitted-Carrier-Power-Value-IncrDecrThres ProtocolIE-ID ::= 240
+id-TUTRANGPSMeasurementThresholdInformation ProtocolIE-ID ::= 241
+id-UL-Timeslot-ISCP-Value ProtocolIE-ID ::= 242
+id-UL-Timeslot-ISCP-Value-IncrDecrThres ProtocolIE-ID ::= 243
+id-Rx-Timing-Deviation-Value-LCR ProtocolIE-ID ::= 293
+--WS extension
+id-Unknown-294 ProtocolIE-ID ::= 294
+id-DPC-Mode-Change-SupportIndicator ProtocolIE-ID ::= 19
+id-Unused-ProtocolIE-ID-247 ProtocolIE-ID ::= 247
+id-Unused-ProtocolIE-ID-295 ProtocolIE-ID ::= 295
+id-PrimaryCCPCH-RSCP-RL-ReconfPrepTDD ProtocolIE-ID ::= 202
+id-DL-TimeSlot-ISCP-Info-RL-ReconfPrepTDD ProtocolIE-ID ::= 203
+id-DL-Timeslot-ISCP-LCR-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 204
+id-DSCH-RNTI ProtocolIE-ID ::= 249
+id-DL-PowerBalancing-Information ProtocolIE-ID ::= 296
+id-DL-PowerBalancing-ActivationIndicator ProtocolIE-ID ::= 297
+id-DL-PowerBalancing-UpdatedIndicator ProtocolIE-ID ::= 298
+id-DL-ReferencePowerInformation ProtocolIE-ID ::= 299
+id-Enhanced-PrimaryCPICH-EcNo ProtocolIE-ID ::= 224
+id-IPDL-TDD-ParametersLCR ProtocolIE-ID ::= 252
+id-CellCapabilityContainer-FDD ProtocolIE-ID ::= 300
+id-CellCapabilityContainer-TDD ProtocolIE-ID ::= 301
+id-CellCapabilityContainer-TDD-LCR ProtocolIE-ID ::= 302
+id-RL-Specific-DCH-Info ProtocolIE-ID ::= 317
+id-RL-ReconfigurationRequestFDD-RL-InformationList ProtocolIE-ID ::= 318
+id-RL-ReconfigurationRequestFDD-RL-Information-IEs ProtocolIE-ID ::= 319
+--WS extension
+id-Unknown-320 ProtocolIE-ID ::= 320
+id-RL-ReconfigurationRequestTDD-RL-Information ProtocolIE-ID ::= 321
+--WS extension
+id-Unknown-322 ProtocolIE-ID ::= 322
+id-CommonTransportChannelResourcesInitialisationNotRequired ProtocolIE-ID ::= 250
+id-DelayedActivation ProtocolIE-ID ::= 312
+id-DelayedActivationList-RL-ActivationCmdFDD ProtocolIE-ID ::= 313
+id-DelayedActivationInformation-RL-ActivationCmdFDD ProtocolIE-ID ::= 314
+id-DelayedActivationList-RL-ActivationCmdTDD ProtocolIE-ID ::= 315
+id-DelayedActivationInformation-RL-ActivationCmdTDD ProtocolIE-ID ::= 316
+id-neighbouringTDDCellMeasurementInformationLCR ProtocolIE-ID ::= 251
+id-UL-SIR-Target-CCTrCH-InformationItem-RL-SetupRspTDD ProtocolIE-ID ::= 150
+id-UL-SIR-Target-CCTrCH-LCR-InformationItem-RL-SetupRspTDD ProtocolIE-ID ::= 151
+id-PrimCCPCH-RSCP-DL-PC-RqstTDD ProtocolIE-ID ::= 451
+id-HSDSCH-FDD-Information ProtocolIE-ID ::= 452
+id-HSDSCH-FDD-Information-Response ProtocolIE-ID ::= 453
+--WS extension
+id-Unknown-454 ProtocolIE-ID ::= 454
+id-Unknown-455 ProtocolIE-ID ::= 455
+id-HSDSCH-FDD-Update-Information ProtocolIE-ID ::= 466
+id-HSDSCH-Information-to-Modify ProtocolIE-ID ::= 456
+id-HSDSCHMacdFlowSpecificInformationList-RL-PreemptRequiredInd ProtocolIE-ID ::= 516
+id-HSDSCHMacdFlowSpecificInformationItem-RL-PreemptRequiredInd ProtocolIE-ID ::= 517
+id-HSDSCH-RNTI ProtocolIE-ID ::= 457
+id-HSDSCH-TDD-Information ProtocolIE-ID ::= 458
+id-HSDSCH-TDD-Information-Response ProtocolIE-ID ::= 459
+--WS extension
+id-Unknown-460 ProtocolIE-ID ::= 460
+id-Unknown-461 ProtocolIE-ID ::= 461
+id-Unknown-462 ProtocolIE-ID ::= 462
+id-HSDSCH-TDD-Update-Information ProtocolIE-ID ::= 467
+id-HSPDSCH-RL-ID ProtocolIE-ID ::= 463
+id-HSDSCH-MACdFlows-to-Add ProtocolIE-ID ::= 531
+id-HSDSCH-MACdFlows-to-Delete ProtocolIE-ID ::= 532
+id-Angle-Of-Arrival-Value-LCR ProtocolIE-ID ::= 148
+--WS extension
+id-Unknown-149 ProtocolIE-ID ::= 149
+id-TrafficClass ProtocolIE-ID ::= 158
+id-Unused-ProtocolIE-ID-248 ProtocolIE-ID ::= 248
+id-Unused-ProtocolIE-ID-253 ProtocolIE-ID ::= 253
+id-PDSCH-RL-ID ProtocolIE-ID ::= 323
+id-TimeSlot-RL-SetupRspTDD ProtocolIE-ID ::= 325
+--WS extension
+id-Unknown-326 ProtocolIE-ID ::= 326
+id-Unknown-327 ProtocolIE-ID ::= 327
+id-Unknown-328 ProtocolIE-ID ::= 328
+id-Unknown-329 ProtocolIE-ID ::= 329
+id-Unknown-330 ProtocolIE-ID ::= 330
+id-Unknown-331 ProtocolIE-ID ::= 331
+id-Unknown-332 ProtocolIE-ID ::= 332
+id-Unknown-333 ProtocolIE-ID ::= 333
+id-Unknown-334 ProtocolIE-ID ::= 334
+id-Unknown-335 ProtocolIE-ID ::= 335
+id-Unknown-336 ProtocolIE-ID ::= 336
+id-Unknown-337 ProtocolIE-ID ::= 337
+id-Unknown-338 ProtocolIE-ID ::= 338
+id-Unknown-339 ProtocolIE-ID ::= 339
+id-Unknown-340 ProtocolIE-ID ::= 340
+id-Unknown-341 ProtocolIE-ID ::= 341
+id-Unknown-342 ProtocolIE-ID ::= 342
+id-Unknown-343 ProtocolIE-ID ::= 343
+id-Unknown-344 ProtocolIE-ID ::= 344
+id-Unknown-345 ProtocolIE-ID ::= 345
+id-Unknown-346 ProtocolIE-ID ::= 346
+id-Unknown-347 ProtocolIE-ID ::= 347
+id-Unknown-348 ProtocolIE-ID ::= 348
+id-Unknown-349 ProtocolIE-ID ::= 349
+id-Unknown-350 ProtocolIE-ID ::= 350
+id-Unknown-351 ProtocolIE-ID ::= 351
+id-Unknown-352 ProtocolIE-ID ::= 352
+id-Unknown-353 ProtocolIE-ID ::= 353
+id-Unknown-354 ProtocolIE-ID ::= 354
+id-Unknown-355 ProtocolIE-ID ::= 355
+id-Unknown-356 ProtocolIE-ID ::= 356
+id-Unknown-357 ProtocolIE-ID ::= 357
+id-Unknown-358 ProtocolIE-ID ::= 358
+id-Unknown-359 ProtocolIE-ID ::= 359
+id-Unknown-360 ProtocolIE-ID ::= 360
+id-Unknown-361 ProtocolIE-ID ::= 361
+id-Unknown-362 ProtocolIE-ID ::= 362
+id-Unknown-363 ProtocolIE-ID ::= 363
+id-Unknown-364 ProtocolIE-ID ::= 364
+id-Unknown-365 ProtocolIE-ID ::= 365
+id-Unknown-366 ProtocolIE-ID ::= 366
+id-Unknown-367 ProtocolIE-ID ::= 367
+id-Unknown-368 ProtocolIE-ID ::= 368
+id-Unknown-369 ProtocolIE-ID ::= 369
+id-Unknown-370 ProtocolIE-ID ::= 370
+id-Unknown-371 ProtocolIE-ID ::= 371
+id-Unknown-372 ProtocolIE-ID ::= 372
+id-Unknown-373 ProtocolIE-ID ::= 373
+id-Unknown-374 ProtocolIE-ID ::= 374
+id-Unknown-375 ProtocolIE-ID ::= 375
+id-Unknown-376 ProtocolIE-ID ::= 376
+id-Unknown-377 ProtocolIE-ID ::= 377
+id-Unknown-378 ProtocolIE-ID ::= 378
+id-Unknown-379 ProtocolIE-ID ::= 379
+id-Unknown-380 ProtocolIE-ID ::= 380
+id-Unknown-381 ProtocolIE-ID ::= 381
+id-Unknown-382 ProtocolIE-ID ::= 382
+id-Unknown-383 ProtocolIE-ID ::= 383
+id-Unknown-384 ProtocolIE-ID ::= 384
+id-Unknown-385 ProtocolIE-ID ::= 385
+id-Unknown-386 ProtocolIE-ID ::= 386
+id-Unknown-387 ProtocolIE-ID ::= 387
+id-Unknown-388 ProtocolIE-ID ::= 388
+id-Unknown-389 ProtocolIE-ID ::= 389
+id-Unknown-390 ProtocolIE-ID ::= 390
+id-Unknown-391 ProtocolIE-ID ::= 391
+id-Unknown-392 ProtocolIE-ID ::= 392
+id-Unknown-393 ProtocolIE-ID ::= 393
+id-Unknown-394 ProtocolIE-ID ::= 394
+id-Unknown-395 ProtocolIE-ID ::= 395
+id-Unknown-396 ProtocolIE-ID ::= 396
+id-Unknown-397 ProtocolIE-ID ::= 397
+id-Unknown-398 ProtocolIE-ID ::= 398
+id-Unknown-399 ProtocolIE-ID ::= 399
+id-Unknown-400 ProtocolIE-ID ::= 400
+id-Unknown-401 ProtocolIE-ID ::= 401
+id-Unknown-402 ProtocolIE-ID ::= 402
+id-Unknown-403 ProtocolIE-ID ::= 403
+id-Unknown-404 ProtocolIE-ID ::= 404
+id-Unknown-405 ProtocolIE-ID ::= 405
+id-Unknown-406 ProtocolIE-ID ::= 406
+id-Unknown-407 ProtocolIE-ID ::= 407
+id-Unknown-408 ProtocolIE-ID ::= 408
+id-Unknown-409 ProtocolIE-ID ::= 409
+id-Unknown-410 ProtocolIE-ID ::= 410
+id-Unknown-411 ProtocolIE-ID ::= 411
+id-Unknown-412 ProtocolIE-ID ::= 412
+id-Unknown-413 ProtocolIE-ID ::= 413
+id-Unknown-414 ProtocolIE-ID ::= 414
+id-Unknown-415 ProtocolIE-ID ::= 415
+id-Unknown-416 ProtocolIE-ID ::= 416
+id-Unknown-417 ProtocolIE-ID ::= 417
+id-Unknown-418 ProtocolIE-ID ::= 418
+id-Unknown-419 ProtocolIE-ID ::= 419
+id-Unknown-420 ProtocolIE-ID ::= 420
+id-Unknown-421 ProtocolIE-ID ::= 421
+id-Unknown-422 ProtocolIE-ID ::= 422
+id-Unknown-423 ProtocolIE-ID ::= 423
+id-Unknown-424 ProtocolIE-ID ::= 424
+id-Unknown-425 ProtocolIE-ID ::= 425
+id-Unknown-426 ProtocolIE-ID ::= 426
+id-Unknown-427 ProtocolIE-ID ::= 427
+id-Unknown-428 ProtocolIE-ID ::= 428
+id-Unknown-429 ProtocolIE-ID ::= 429
+id-Unknown-430 ProtocolIE-ID ::= 430
+id-Unknown-431 ProtocolIE-ID ::= 431
+id-Unknown-432 ProtocolIE-ID ::= 432
+id-Unknown-433 ProtocolIE-ID ::= 433
+id-Unknown-434 ProtocolIE-ID ::= 434
+id-Unknown-435 ProtocolIE-ID ::= 435
+id-Unknown-436 ProtocolIE-ID ::= 436
+id-Unknown-437 ProtocolIE-ID ::= 437
+id-Unknown-438 ProtocolIE-ID ::= 438
+id-Unknown-439 ProtocolIE-ID ::= 439
+id-Unknown-440 ProtocolIE-ID ::= 440
+id-Unknown-441 ProtocolIE-ID ::= 441
+id-Unknown-442 ProtocolIE-ID ::= 442
+id-Unknown-443 ProtocolIE-ID ::= 443
+id-Unknown-444 ProtocolIE-ID ::= 444
+id-Unknown-445 ProtocolIE-ID ::= 445
+id-Unknown-446 ProtocolIE-ID ::= 446
+id-Unknown-447 ProtocolIE-ID ::= 447
+id-Unknown-448 ProtocolIE-ID ::= 448
+id-Unknown-449 ProtocolIE-ID ::= 449
+id-Unknown-450 ProtocolIE-ID ::= 450
+id-GERAN-Cell-Capability ProtocolIE-ID ::= 468
+id-GERAN-Classmark ProtocolIE-ID ::= 469
+id-DSCH-InitialWindowSize ProtocolIE-ID ::= 480
+id-UL-Synchronisation-Parameters-LCR ProtocolIE-ID ::= 464
+id-SNA-Information ProtocolIE-ID ::= 479
+id-MAChs-ResetIndicator ProtocolIE-ID ::= 465
+id-TDD-DL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD ProtocolIE-ID ::= 481
+id-TDD-UL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD ProtocolIE-ID ::= 482
+id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD ProtocolIE-ID ::= 483
+id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD ProtocolIE-ID ::= 484
+id-UL-CCTrCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 485
+id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD ProtocolIE-ID ::= 486
+id-DL-CCTrCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 487
+id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD ProtocolIE-ID ::= 488
+id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD ProtocolIE-ID ::= 489
+id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 490
+id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 491
+id-UL-TimingAdvanceCtrl-LCR ProtocolIE-ID ::= 492
+id-HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD ProtocolIE-ID ::= 493
+id-HSPDSCH-Timeslot-InformationListLCR-PhyChReconfRqstTDD ProtocolIE-ID ::= 494
+id-HS-SICH-Reception-Quality ProtocolIE-ID ::= 495
+id-HS-SICH-Reception-Quality-Measurement-Value ProtocolIE-ID ::= 496
+id-HSSICH-Info-DM-Rprt ProtocolIE-ID ::= 497
+id-HSSICH-Info-DM-Rqst ProtocolIE-ID ::= 498
+id-HSSICH-Info-DM ProtocolIE-ID ::= 499
+id-CCTrCH-Maximum-DL-Power-RL-SetupRspTDD ProtocolIE-ID ::= 500
+id-CCTrCH-Minimum-DL-Power-RL-SetupRspTDD ProtocolIE-ID ::= 501
+id-CCTrCH-Maximum-DL-Power-RL-AdditionRspTDD ProtocolIE-ID ::= 502
+id-CCTrCH-Minimum-DL-Power-RL-AdditionRspTDD ProtocolIE-ID ::= 503
+id-CCTrCH-Maximum-DL-Power-RL-ReconfReadyTDD ProtocolIE-ID ::= 504
+id-CCTrCH-Minimum-DL-Power-RL-ReconfReadyTDD ProtocolIE-ID ::= 505
+id-Maximum-DL-Power-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD ProtocolIE-ID ::= 506
+id-Minimum-DL-Power-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD ProtocolIE-ID ::= 507
+id-DL-CCTrCH-InformationList-RL-ReconfRspTDD ProtocolIE-ID ::= 508
+id-DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD ProtocolIE-ID ::= 509
+id-Maximum-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 510
+id-Minimum-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 511
+id-TDD-Support-8PSK ProtocolIE-ID ::= 512
+id-TDD-maxNrDLPhysicalchannels ProtocolIE-ID ::= 513
+id-ExtendedGSMCellIndividualOffset ProtocolIE-ID ::= 514
+id-RL-ParameterUpdateIndicationFDD-RL-InformationList ProtocolIE-ID ::= 518
+id-Primary-CPICH-Usage-For-Channel-Estimation ProtocolIE-ID ::= 519
+id-Secondary-CPICH-Information ProtocolIE-ID ::= 520
+id-Secondary-CPICH-Information-Change ProtocolIE-ID ::= 521
+id-Unused-ProtocolIE-ID-522 ProtocolIE-ID ::= 522
+id-Unused-ProtocolIE-ID-523 ProtocolIE-ID ::= 523
+id-RL-ParameterUpdateIndicationFDD-RL-Information-Item ProtocolIE-ID ::= 524
+id-Phase-Reference-Update-Indicator ProtocolIE-ID ::= 525
+id-Unidirectional-DCH-Indicator ProtocolIE-ID ::= 526
+id-RL-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 527
+id-Multiple-RL-InformationResponse-RL-ReconfReadyTDD ProtocolIE-ID ::= 528
+id-RL-ReconfigurationResponseTDD-RL-Information ProtocolIE-ID ::= 529
+id-Satellite-Almanac-Information-ExtItem ProtocolIE-ID ::= 530
+id-HSDSCH-Information-to-Modify-Unsynchronised ProtocolIE-ID ::= 533
+id-TnlQos ProtocolIE-ID ::= 534
+id-RTLoadValue ProtocolIE-ID ::= 535
+id-NRTLoadInformationValue ProtocolIE-ID ::= 536
+id-CellPortionID ProtocolIE-ID ::= 537
+id-UpPTSInterferenceValue ProtocolIE-ID ::= 538
+id-PrimaryCCPCH-RSCP-Delta ProtocolIE-ID ::= 539
+id-UEMeasurementType ProtocolIE-ID ::= 540
+id-UEMeasurementTimeslotInfoHCR ProtocolIE-ID ::= 541
+id-UEMeasurementTimeslotInfoLCR ProtocolIE-ID ::= 542
+id-UEMeasurementReportCharacteristics ProtocolIE-ID ::= 543
+id-UEMeasurementParameterModAllow ProtocolIE-ID ::= 544
+id-UEMeasurementValueInformation ProtocolIE-ID ::= 545
+id-InterfacesToTraceItem ProtocolIE-ID ::= 546
+id-ListOfInterfacesToTrace ProtocolIE-ID ::= 547
+id-TraceDepth ProtocolIE-ID ::= 548
+id-TraceRecordingSessionReference ProtocolIE-ID ::= 549
+id-TraceReference ProtocolIE-ID ::= 550
+id-UEIdentity ProtocolIE-ID ::= 551
+id-NACC-Related-Data ProtocolIE-ID ::= 552
+id-GSM-Cell-InfEx-Rqst ProtocolIE-ID ::= 553
+id-MeasurementRecoveryBehavior ProtocolIE-ID ::= 554
+id-MeasurementRecoveryReportingIndicator ProtocolIE-ID ::= 555
+id-MeasurementRecoverySupportIndicator ProtocolIE-ID ::= 556
+id-DL-DPCH-Power-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 557
+id-F-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 558
+id-F-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 559
+id-MBMS-Bearer-Service-List ProtocolIE-ID ::= 560
+id-MBMS-Bearer-Service-List-InfEx-Rsp ProtocolIE-ID ::= 561
+id-Active-MBMS-Bearer-ServiceFDD ProtocolIE-ID ::= 562
+id-Active-MBMS-Bearer-ServiceTDD ProtocolIE-ID ::= 563
+id-Old-URA-ID ProtocolIE-ID ::= 564
+--WS extension
+id-Unknown-565 ProtocolIE-ID ::= 565
+id-Unknown-566 ProtocolIE-ID ::= 566
+id-Unknown-567 ProtocolIE-ID ::= 567
+id-UE-State ProtocolIE-ID ::= 568
+id-URA-ID ProtocolIE-ID ::= 569
+--WS extension
+id-Unknown-570 ProtocolIE-ID ::= 570
+id-HARQ-Preamble-Mode ProtocolIE-ID ::= 571
+id-SynchronisationIndicator ProtocolIE-ID ::= 572
+id-UL-DPDCHIndicatorEDCH ProtocolIE-ID ::= 573
+id-EDPCH-Information ProtocolIE-ID ::= 574
+id-RL-Specific-EDCH-Information ProtocolIE-ID ::= 575
+id-EDCH-RL-Indication ProtocolIE-ID ::= 576
+id-EDCH-FDD-Information ProtocolIE-ID ::= 577
+id-EDCH-RLSet-Id ProtocolIE-ID ::= 578
+id-Serving-EDCHRL-Id ProtocolIE-ID ::= 579
+id-EDCH-FDD-DL-ControlChannelInformation ProtocolIE-ID ::= 580
+id-EDCH-FDD-InformationResponse ProtocolIE-ID ::= 581
+id-EDCH-MACdFlows-To-Add ProtocolIE-ID ::= 582
+id-EDCH-FDD-Information-To-Modify ProtocolIE-ID ::= 583
+id-EDCH-MACdFlows-To-Delete ProtocolIE-ID ::= 584
+id-EDPCH-Information-RLReconfRequest-FDD ProtocolIE-ID ::= 585
+id-EDCH-MacdFlowSpecificInformationList-RL-PreemptRequiredInd ProtocolIE-ID ::= 586
+id-EDCH-MacdFlowSpecificInformationItem-RL-PreemptRequiredInd ProtocolIE-ID ::= 587
+id-EDCH-MacdFlowSpecificInformationList-RL-CongestInd ProtocolIE-ID ::= 588
+id-EDCH-MacdFlowSpecificInformationItem-RL-CongestInd ProtocolIE-ID ::= 589
+id-MBMS-Bearer-Service-Full-Address ProtocolIE-ID ::= 590
+id-Initial-DL-DPCH-TimingAdjustment ProtocolIE-ID ::= 591
+id-Initial-DL-DPCH-TimingAdjustment-Allowed ProtocolIE-ID ::= 592
+id-User-Plane-Congestion-Fields-Inclusion ProtocolIE-ID ::= 593
+id-HARQ-Preamble-Mode-Activation-Indicator ProtocolIE-ID ::= 594
+id-multiple-DedicatedMeasurementValueList-TDD-DM-Rsp ProtocolIE-ID ::= 595
+id-multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp ProtocolIE-ID ::= 596
+id-ProvidedInformation ProtocolIE-ID ::= 597
+id-Active-MBMS-Bearer-ServiceFDD-PFL ProtocolIE-ID ::= 598
+id-Active-MBMS-Bearer-ServiceTDD-PFL ProtocolIE-ID ::= 599
+id-FrequencyBandIndicator ProtocolIE-ID ::= 600
+id-Serving-cell-change-CFN ProtocolIE-ID ::= 601
+id-HS-DSCH-serving-cell-change-information ProtocolIE-ID ::= 602
+id-HS-DSCH-serving-cell-change-informationResponse ProtocolIE-ID ::= 603
+id-E-DCH-Serving-cell-change-informationResponse ProtocolIE-ID ::= 604
+id-secondary-LCR-CCPCH-Info-TDD ProtocolIE-ID ::= 605
+id-E-DCH-FDD-Update-Information ProtocolIE-ID ::= 606
+id-Inter-Frequency-Cell-List ProtocolIE-ID ::= 607
+id-Inter-Frequency-Cell-Information ProtocolIE-ID ::= 608
+id-multiple-HSSICHMeasurementValueList-TDD-DM-Rsp ProtocolIE-ID ::= 609
+id-TDD-Support-PLCCH ProtocolIE-ID ::= 610
+id-PLCCH-Information-UL-TimeslotLCR-Info ProtocolIE-ID ::= 611
+id-PLCCH-Information-PhyChReconfRqstTDD ProtocolIE-ID ::= 612
+id-TDD768-maxNrDLPhysicalchannelsTS ProtocolIE-ID ::= 613
+id-RL-InformationResponse-RL-AdditionRspTDD768 ProtocolIE-ID ::= 614
+id-UL-CCTrCH-InformationListIE-RL-AdditionRspTDD768 ProtocolIE-ID ::= 615
+id-DL-CCTrCH-InformationListIE-RL-AdditionRspTDD768 ProtocolIE-ID ::= 616
+id-UL-DPCH-InformationItem-RL-AdditionRspTDD768 ProtocolIE-ID ::= 617
+id-DL-DPCH-InformationItem-RL-AdditionRspTDD768 ProtocolIE-ID ::= 618
+id-UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD768 ProtocolIE-ID ::= 619
+id-UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768 ProtocolIE-ID ::= 620
+id-DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD768 ProtocolIE-ID ::= 621
+id-DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768 ProtocolIE-ID ::= 622
+id-secondary-CCPCH-Info-RL-ReconfReadyTDD768 ProtocolIE-ID ::= 623
+id-hSSCCH-TDD-Specific-InfoList-Response768 ProtocolIE-ID ::= 624
+id-hSPDSCH-TDD-Specific-InfoList-Response768 ProtocolIE-ID ::= 625
+id-HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD768 ProtocolIE-ID ::= 626
+id-UL-Timeslot-InformationList-PhyChReconfRqstTDD768 ProtocolIE-ID ::= 627
+id-DL-Timeslot-InformationList-PhyChReconfRqstTDD768 ProtocolIE-ID ::= 628
+id-CellCapabilityContainer-TDD768 ProtocolIE-ID ::= 629
+id-multiple-DedicatedMeasurementValueList-TDD768-DM-Rsp ProtocolIE-ID ::= 630
+id-neighbouringTDDCellMeasurementInformation768 ProtocolIE-ID ::= 631
+id-UEMeasurementTimeslotInfo768 ProtocolIE-ID ::= 632
+id-Rx-Timing-Deviation-Value-768 ProtocolIE-ID ::= 633
+id-UEMeasurementValueTransmittedPowerList768 ProtocolIE-ID ::= 634
+id-UEMeasurementValueTimeslotISCPList768 ProtocolIE-ID ::= 635
+id-RL-InformationResponse-RL-SetupRspTDD768 ProtocolIE-ID ::= 636
+id-UL-CCTrCH-InformationListIE-RL-SetupRspTDD768 ProtocolIE-ID ::= 637
+id-DL-CCTrCH-InformationListIE-RL-SetupRspTDD768 ProtocolIE-ID ::= 638
+id-UL-DPCH-InformationItem-RL-SetupRspTDD768 ProtocolIE-ID ::= 639
+id-DL-DPCH-InformationItem-RL-SetupRspTDD768 ProtocolIE-ID ::= 640
+id-TDD768-minimumSpreadingFactor-UL ProtocolIE-ID ::= 641
+id-TDD768-minimumSpreadingFactor-DL ProtocolIE-ID ::= 642
+id-TDD768-maxNrDLPhysicalchannels ProtocolIE-ID ::= 643
+id-DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD ProtocolIE-ID ::= 644
+id-DPCH-ID768-DM-Rsp ProtocolIE-ID ::= 645
+id-DPCH-ID768-DM-Rqst ProtocolIE-ID ::= 646
+id-DPCH-ID768-DM-Rprt ProtocolIE-ID ::= 647
+id-EDPCH-Information-RLAdditionReq-FDD ProtocolIE-ID ::= 648
+id-HSDSCH-Configured-Indicator ProtocolIE-ID ::= 649
+id-RxTimingDeviationForTAext ProtocolIE-ID ::= 650
+id-RxTimingDeviationForTA768 ProtocolIE-ID ::= 651
+id-Rx-Timing-Deviation-Value-ext ProtocolIE-ID ::= 652
+id-E-DCH-PowerOffset-for-SchedulingInfo ProtocolIE-ID ::= 653
+id-TrCH-SrcStatisticsDescr ProtocolIE-ID ::= 654
+id-E-DCH-Information ProtocolIE-ID ::= 655
+id-E-DCH-Serving-RL-ID ProtocolIE-ID ::= 656
+id-E-DCH-Information-Reconfig ProtocolIE-ID ::= 657
+id-E-DCH-Information-Response ProtocolIE-ID ::= 658
+id-E-DCH-768-Information ProtocolIE-ID ::= 659
+id-E-DCH-768-Information-Reconfig ProtocolIE-ID ::= 660
+id-E-DCH-768-Information-Response ProtocolIE-ID ::= 661
+id-ExtendedPropagationDelay ProtocolIE-ID ::= 662
+id-Extended-Round-Trip-Time-Value ProtocolIE-ID ::= 663
+id-AlternativeFormatReportingIndicator ProtocolIE-ID ::= 664
+id-DCH-Indicator-For-E-DCH-HSDPA-Operation ProtocolIE-ID ::= 665
+id-E-RGCH-E-HICH-ChannelisationCodeValidityIndicator ProtocolIE-ID ::= 666
+id-E-DCH-Minimum-Set-E-TFCIValidityIndicator ProtocolIE-ID ::= 667
+id-Fast-Reconfiguration-Mode ProtocolIE-ID ::= 668
+id-Fast-Reconfiguration-Permission ProtocolIE-ID ::= 669
+id-Continuous-Packet-Connectivity-DTX-DRX-Information ProtocolIE-ID ::= 670
+id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information ProtocolIE-ID ::= 671
+id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response ProtocolIE-ID ::= 672
+id-CPC-Information ProtocolIE-ID ::= 673
+--WS extension
+id-Unknown-674 ProtocolIE-ID ::= 674
+id-MIMO-InformationResponse ProtocolIE-ID ::= 675
+--WS extension
+id-Unknown-676 ProtocolIE-ID ::= 676
+id-E-DCH-LCR-Information ProtocolIE-ID ::= 677
+id-E-DCH-LCR-Information-Reconfig ProtocolIE-ID ::= 678
+id-E-DCH-LCR-Information-Response ProtocolIE-ID ::= 679
+id-HS-PDSCH-Code-Change-Grant ProtocolIE-ID ::= 680
+id-HS-PDSCH-Code-Change-Indicator ProtocolIE-ID ::= 681
+id-Extended-SRNC-ID ProtocolIE-ID ::= 682
+id-Extended-RNC-ID ProtocolIE-ID ::= 683
+id-SixtyfourQAM-DL-SupportIndicator ProtocolIE-ID ::= 684
+id-Enhanced-FACH-Support-Indicator ProtocolIE-ID ::= 685
+id-Enhanced-FACH-Information-ResponseFDD ProtocolIE-ID ::= 686
+--WS extension
+id-Unknown-687 ProtocolIE-ID ::= 687
+id-Unknown-688 ProtocolIE-ID ::= 688
+id-Unknown-689 ProtocolIE-ID ::= 689
+id-HSDSCH-MACdPDUSizeFormat ProtocolIE-ID ::= 690
+id-MaximumMACdPDU-SizeExtended ProtocolIE-ID ::= 691
+id-F-DPCH-SlotFormat ProtocolIE-ID ::= 692
+id-F-DPCH-SlotFormatSupportRequest ProtocolIE-ID ::= 693
+id-eDCH-MACdFlow-Retransmission-Timer-LCR ProtocolIE-ID ::= 694
+id-Max-UE-DTX-Cycle ProtocolIE-ID ::= 695
+--WS extension
+id-Unknown-696 ProtocolIE-ID ::= 696
+id-Unknown-697 ProtocolIE-ID ::= 697
+id-Unknown-698 ProtocolIE-ID ::= 698
+id-GANSS-Common-Data ProtocolIE-ID ::= 699
+id-GANSS-Information ProtocolIE-ID ::= 700
+id-GANSS-Generic-Data ProtocolIE-ID ::= 701
+id-TUTRANGANSSMeasurementThresholdInformation ProtocolIE-ID ::= 702
+id-TUTRANGANSSMeasurementValueInformation ProtocolIE-ID ::= 703
+--WS extension
+id-Unknown-704 ProtocolIE-ID ::= 704
+id-Ext-Reference-E-TFCI-PO ProtocolIE-ID ::= 705
+id-Ext-Max-Bits-MACe-PDU-non-scheduled ProtocolIE-ID ::= 706
+id-HARQ-MemoryPartitioningInfoExtForMIMO ProtocolIE-ID ::= 707
+id-MIMO-ActivationIndicator ProtocolIE-ID ::= 708
+id-MIMO-Mode-Indicator ProtocolIE-ID ::= 709
+id-MIMO-N-M-Ratio ProtocolIE-ID ::= 710
+id-TransportBearerNotSetupIndicator ProtocolIE-ID ::= 711
+id-TransportBearerNotRequestedIndicator ProtocolIE-ID ::= 712
+id-PowerControlGAP ProtocolIE-ID ::= 713
+id-UARFCNforNt ProtocolIE-ID ::= 714
+id-LCRTDD-uplink-Physical-Channel-Capability ProtocolIE-ID ::= 715
+id-number-Of-Supported-Carriers ProtocolIE-ID ::= 716
+id-HSSICH-SIRTarget ProtocolIE-ID ::= 717
+id-HSSICH-TPC-StepSize ProtocolIE-ID ::= 718
+id-tSN-Length ProtocolIE-ID ::= 719
+id-HS-SICH-ID-Extension ProtocolIE-ID ::= 720
+id-HSSICH-Info-DM-Rqst-Extension ProtocolIE-ID ::= 721
+id-multipleFreq-HSPDSCH-InformationList-ResponseTDDLCR ProtocolIE-ID ::= 722
+id-multicarrier-number ProtocolIE-ID ::= 723
+id-UPPCHPositionLCR ProtocolIE-ID ::= 724
+id-UpPCH-InformationList-LCRTDD ProtocolIE-ID ::= 725
+id-UpPCH-InformationItem-LCRTDD ProtocolIE-ID ::= 726
+id-Multiple-PLMN-List ProtocolIE-ID ::= 727
+id-UE-Capabilities-Info ProtocolIE-ID ::= 728
+id-FrameOffset ProtocolIE-ID ::= 729
+id-ChipOffset ProtocolIE-ID ::= 730
+id-Enhanced-PCH-Capability ProtocolIE-ID ::= 731
+id-SixteenQAM-UL-Operation-Indicator ProtocolIE-ID ::= 732
+id-E-TFCI-Boost-Information ProtocolIE-ID ::= 733
+id-SixtyfourQAM-UsageAllowedIndicator ProtocolIE-ID ::= 734
+id-SixtyfourQAM-DL-UsageIndicator ProtocolIE-ID ::= 735
+id-Default-Serving-Grant-in-DTX-Cycle2 ProtocolIE-ID ::= 736
+id-E-DPDCH-PowerInterpolation ProtocolIE-ID ::= 737
+id-Extended-E-DCH-LCRTDD-PhysicalLayerCategory ProtocolIE-ID ::= 738
+id-E-DCH-MACdPDUSizeFormat ProtocolIE-ID ::= 739
+id-Continuous-Packet-Connectivity-HS-SCCH-Less-Deactivate-Indicator ProtocolIE-ID ::= 740
+id-E-DCH-DL-Control-Channel-Change-Information ProtocolIE-ID ::= 741
+id-E-DCH-DL-Control-Channel-Grant-Information ProtocolIE-ID ::= 742
+id-MaximumNumber-Of-Retransmission-For-SchedulingInfo-LCRTDD ProtocolIE-ID ::= 743
+id-E-DCH-RetransmissionTimer-For-SchedulingInfo-LCRTDD ProtocolIE-ID ::= 744
+id-E-PUCH-PowerControlGAP ProtocolIE-ID ::= 745
+id-HSDSCH-TBSizeTableIndicator ProtocolIE-ID ::= 746
+id-UE-with-enhanced-HS-SCCH-support-indicator ProtocolIE-ID ::= 747
+id-DGANSS-Corrections-Req ProtocolIE-ID ::= 748
+id-E-AGCH-Table-Choice ProtocolIE-ID ::= 749
+id-RANAP-EnhancedRelocationInformationRequest ProtocolIE-ID ::= 750
+id-RANAP-EnhancedRelocationInformationResponse ProtocolIE-ID ::= 751
+id-Common-EDCH-MAC-d-Flow-Specific-InformationFDD ProtocolIE-ID ::= 752
+id-Common-EDCH-Support-Indicator ProtocolIE-ID ::= 753
+id-E-RNTI ProtocolIE-ID ::= 754
+id-Released-CN-Domain ProtocolIE-ID ::= 755
+id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rqst ProtocolIE-ID ::= 756
+id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rsp ProtocolIE-ID ::= 757
+id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rprt ProtocolIE-ID ::= 758
+id-MBMS-Cell-InfEx-Rqst ProtocolIE-ID ::= 759
+id-MBMS-Cell-InfEx-Rsp ProtocolIE-ID ::= 760
+id-MBMS-Cell-InfEx-Rprt ProtocolIE-ID ::= 761
+id-Counting-Information ProtocolIE-ID ::= 762
+id-Transmission-Mode-Information ProtocolIE-ID ::= 763
+id-MBMS-Neighbouring-Cell-Information ProtocolIE-ID ::= 764
+id-MBMS-RLC-Sequence-Number-Information ProtocolIE-ID ::= 765
+id-RLC-Sequence-Number ProtocolIE-ID ::= 766
+id-Neighbouring-E-UTRA-CellInformation ProtocolIE-ID ::= 767
+--WS extension
+id-Unknown-768 ProtocolIE-ID ::= 768
+id-MBSFN-Cluster-Identity ProtocolIE-ID ::= 769
+id-MCCH-Configuration-Info ProtocolIE-ID ::= 770
+id-MCCH-Message-List ProtocolIE-ID ::= 771
+id-MBSFN-Scheduling-Transmission-Time-Interval-Info-List ProtocolIE-ID ::= 772
+id-GANSS-Time-ID ProtocolIE-ID ::= 773
+id-GANSS-AddIonoModelReq ProtocolIE-ID ::= 774
+id-GANSS-EarthOrientParaReq ProtocolIE-ID ::= 775
+id-GANSS-AddNavigationModelsReq ProtocolIE-ID ::= 776
+id-GANSS-AddUTCModelsReq ProtocolIE-ID ::= 777
+id-GANSS-AuxInfoReq ProtocolIE-ID ::= 778
+id-GANSS-SBAS-ID ProtocolIE-ID ::= 779
+id-GANSS-ID ProtocolIE-ID ::= 780
+id-GANSS-Additional-Ionospheric-Model ProtocolIE-ID ::= 781
+id-GANSS-Earth-Orientation-Parameters ProtocolIE-ID ::= 782
+id-GANSS-Additional-Time-Models ProtocolIE-ID ::= 783
+id-GANSS-Additional-Navigation-Models ProtocolIE-ID ::= 784
+id-GANSS-Additional-UTC-Models ProtocolIE-ID ::= 785
+id-GANSS-Auxiliary-Information ProtocolIE-ID ::= 786
+id-MinimumReducedE-DPDCH-GainFactor ProtocolIE-ID ::= 787
+id-Enhanced-FACH-Information-ResponseLCR ProtocolIE-ID ::= 788
+id-Common-EDCH-MAC-d-Flow-Specific-InformationLCR ProtocolIE-ID ::= 789
+id-HSDSCH-PreconfigurationSetup ProtocolIE-ID ::= 790
+id-HSDSCH-PreconfigurationInfo ProtocolIE-ID ::= 791
+id-NoOfTargetCellHS-SCCH-Order ProtocolIE-ID ::= 792
+id-EnhancedHSServingCC-Abort ProtocolIE-ID ::= 793
+id-Additional-HS-Cell-Information-RL-Setup ProtocolIE-ID ::= 794
+id-Additional-HS-Cell-Information-Response ProtocolIE-ID ::= 795
+id-Additional-HS-Cell-Information-RL-Addition ProtocolIE-ID ::= 796
+id-Additional-HS-Cell-Change-Information-Response ProtocolIE-ID ::= 797
+id-Additional-HS-Cell-Information-RL-Reconf-Prep ProtocolIE-ID ::= 798
+id-Additional-HS-Cell-Information-RL-Reconf-Req ProtocolIE-ID ::= 799
+id-Additional-HS-Cell-RL-Reconf-Response ProtocolIE-ID ::= 800
+id-Additional-HS-Cell-Information-RL-Param-Upd ProtocolIE-ID ::= 801
+id-Secondary-Serving-Cell-List ProtocolIE-ID ::= 802
+id-MultiCarrier-HSDSCH-Physical-Layer-Category ProtocolIE-ID ::= 803
+id-IdleIntervalInformation ProtocolIE-ID ::= 804
+id-NeedforIdleInterval ProtocolIE-ID ::= 805
+id-IdleIntervalConfigurationIndicator ProtocolIE-ID ::= 806
+id-ContinuousPacketConnectivity-DRX-InformationLCR ProtocolIE-ID ::= 807
+id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR ProtocolIE-ID ::= 808
+id-E-AGCH-UE-Inactivity-Monitor-Threshold ProtocolIE-ID ::= 809
+id-CPC-InformationLCR ProtocolIE-ID ::= 810
+id-E-DCH-Semi-PersistentScheduling-Information-LCR ProtocolIE-ID ::= 811
+id-HS-DSCH-Semi-PersistentScheduling-Information-LCR ProtocolIE-ID ::= 812
+id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR ProtocolIE-ID ::= 813
+id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR ProtocolIE-ID ::= 814
+id-MIMO-SFMode-For-HSPDSCHDualStream ProtocolIE-ID ::= 815
+id-MIMO-SFMode-Supported-For-HSPDSCHDualStream ProtocolIE-ID ::= 816
+id-MIMO-ReferenceSignal-InformationListLCR ProtocolIE-ID ::= 817
+id-GANSS-alm-keplerianNAVAlmanac ProtocolIE-ID ::= 818
+id-GANSS-alm-keplerianReducedAlmanac ProtocolIE-ID ::= 819
+id-GANSS-alm-keplerianMidiAlmanac ProtocolIE-ID ::= 820
+id-GANSS-alm-keplerianGLONASS ProtocolIE-ID ::= 821
+id-GANSS-alm-ecefSBASAlmanac ProtocolIE-ID ::= 822
+id-DL-RLC-PDU-Size-Format ProtocolIE-ID ::= 823
+id-MACes-Maximum-Bitrate-LCR ProtocolIE-ID ::= 824
+id-Single-Stream-MIMO-ActivationIndicator ProtocolIE-ID ::= 825
+id-Single-Stream-MIMO-Mode-Indicator ProtocolIE-ID ::= 826
+id-Dual-Band-Secondary-Serving-Cell-List ProtocolIE-ID ::= 827
+id-UE-AggregateMaximumBitRate ProtocolIE-ID ::= 828
+id-power-offset-for-S-CPICH-for-MIMO ProtocolIE-ID ::= 829
+id-power-offset-for-S-CPICH-for-MIMO-Request-Indicator ProtocolIE-ID ::= 830
+id-UE-SupportIndicatorExtension ProtocolIE-ID ::= 831
+--WS extension
+id-Unknown-832 ProtocolIE-ID ::= 832
+id-Unknown-833 ProtocolIE-ID ::= 833
+id-Unknown-834 ProtocolIE-ID ::= 834
+id-ActivationInformation ProtocolIE-ID ::= 835
+id-CellPortionLCRID ProtocolIE-ID ::= 836
+id-Additional-EDCH-Cell-Information-RL-Setup-Req ProtocolIE-ID ::= 837
+id-Additional-EDCH-Cell-Information-Response ProtocolIE-ID ::= 838
+id-Additional-EDCH-Cell-Information-RL-Add-Req ProtocolIE-ID ::= 839
+id-Additional-EDCH-Cell-Information-Response-RLAdd ProtocolIE-ID ::= 840
+id-Additional-EDCH-Cell-Information-RL-Reconf-Prep ProtocolIE-ID ::= 841
+id-Additional-EDCH-Cell-Information-RL-Reconf-Req ProtocolIE-ID ::= 842
+id-Additional-EDCH-Cell-Information-RL-Param-Upd ProtocolIE-ID ::= 843
+id-Additional-EDCH-Preconfiguration-Information ProtocolIE-ID ::= 844
+id-MulticellEDCH-Information ProtocolIE-ID ::= 845
+--WS extension
+id-Unknown-846 ProtocolIE-ID ::= 846
+id-Unknown-847 ProtocolIE-ID ::= 847
+id-Unknown-848 ProtocolIE-ID ::= 848
+id-Unknown-849 ProtocolIE-ID ::= 849
+id-Unknown-850 ProtocolIE-ID ::= 850
+id-Unknown-851 ProtocolIE-ID ::= 851
+id-Unknown-852 ProtocolIE-ID ::= 852
+id-Unknown-853 ProtocolIE-ID ::= 853
+id-Additional-EDCH-Cell-Information-ResponseRLReconf ProtocolIE-ID ::= 854
+id-EDCH-Indicator ProtocolIE-ID ::= 855
+id-DiversityMode ProtocolIE-ID ::= 856
+id-TransmitDiversityIndicator ProtocolIE-ID ::= 857
+id-NonCellSpecificTxDiversity ProtocolIE-ID ::= 858
+id-CellCapabilityContainerExtension-FDD ProtocolIE-ID ::= 859
+id-HSDSCH-Physical-Layer-Category ProtocolIE-ID ::= 860
+id-E-RNTI-For-FACH ProtocolIE-ID ::= 861
+id-H-RNTI-For-FACH ProtocolIE-ID ::= 862
+id-RNTI-Allocation-Indicator ProtocolIE-ID ::= 863
+id-UE-AggregateMaximumBitRate-Enforcement-Indicator ProtocolIE-ID ::= 864
+id-DCH-MeasurementOccasion-Information ProtocolIE-ID ::= 865
+id-DCH-MeasurementType-Indicator ProtocolIE-ID ::= 866
+id-Out-of-Sychronization-Window ProtocolIE-ID ::= 867
+id-MulticellEDCH-RL-SpecificInformation ProtocolIE-ID ::= 868
+id-DGNSS-ValidityPeriod ProtocolIE-ID ::= 869
+id-TS0-HS-PDSCH-Indication-LCR ProtocolIE-ID ::= 870
+id-UE-TS0-CapabilityLCR ProtocolIE-ID ::= 871
+id-Non-Serving-RL-Preconfig-Info ProtocolIE-ID ::= 872
+id-Non-Serving-RL-Preconfig-Setup ProtocolIE-ID ::= 873
+id-Non-Serving-RL-Preconfig-Removal ProtocolIE-ID ::= 874
+id-Additional-E-DCH-Non-Serving-RL-Preconfiguration-Setup ProtocolIE-ID ::= 875
+id-Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList ProtocolIE-ID ::= 876
+id-CellListValidityIndicator ProtocolIE-ID ::= 877
+
+END
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-Containers.asn b/epan/dissectors/asn1/rnsap/RNSAP-Containers.asn
new file mode 100644
index 0000000000..ece8ff6fec
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/RNSAP-Containers.asn
@@ -0,0 +1,203 @@
+-- RNSAP-Containers.asn
+--
+-- Taken from 3GPP TS 25.423 V9.2.3 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.423/25423-790.zip/25423-790.DOC
+--
+-- 9.3.7 Container Definitions
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+RNSAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rnsap (1) version1 (1) rnsap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+FROM RNSAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RNSAP-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
+--
+-- **************************************************************
+
+RNSAP-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
+--
+-- **************************************************************
+
+RNSAP-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
+--
+-- **************************************************************
+
+RNSAP-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 {RNSAP-PROTOCOL-IES : IesSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IesSetParam}}
+
+ProtocolIE-Single-Container {RNSAP-PROTOCOL-IES : IesSetParam} ::=
+ ProtocolIE-Field {{IesSetParam}}
+
+ProtocolIE-Field {RNSAP-PROTOCOL-IES : IesSetParam} ::= SEQUENCE {
+ id RNSAP-PROTOCOL-IES.&id ({IesSetParam}),
+ criticality RNSAP-PROTOCOL-IES.&criticality ({IesSetParam}{@id}),
+ value RNSAP-PROTOCOL-IES.&Value ({IesSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {RNSAP-PROTOCOL-IES-PAIR : IesSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IesSetParam}}
+
+ProtocolIE-FieldPair {RNSAP-PROTOCOL-IES-PAIR : IesSetParam} ::= SEQUENCE {
+ id RNSAP-PROTOCOL-IES-PAIR.&id ({IesSetParam}),
+ firstCriticality RNSAP-PROTOCOL-IES-PAIR.&firstCriticality ({IesSetParam}{@id}),
+ firstValue RNSAP-PROTOCOL-IES-PAIR.&FirstValue ({IesSetParam}{@id}),
+ secondCriticality RNSAP-PROTOCOL-IES-PAIR.&secondCriticality ({IesSetParam}{@id}),
+ secondValue RNSAP-PROTOCOL-IES-PAIR.&SecondValue ({IesSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RNSAP-PROTOCOL-IES : IesSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IesSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RNSAP-PROTOCOL-IES-PAIR : IesSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IesSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RNSAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RNSAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RNSAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RNSAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RNSAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RNSAP-PRIVATE-IES : IesSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IesSetParam}}
+
+PrivateIE-Field {RNSAP-PRIVATE-IES : IesSetParam} ::= SEQUENCE {
+ id RNSAP-PRIVATE-IES.&id ({IesSetParam}),
+ criticality RNSAP-PRIVATE-IES.&criticality ({IesSetParam}{@id}),
+ value RNSAP-PRIVATE-IES.&Value ({IesSetParam}{@id})
+}
+
+END
+
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-IEs.asn b/epan/dissectors/asn1/rnsap/RNSAP-IEs.asn
new file mode 100644
index 0000000000..0d36ce8a2d
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/RNSAP-IEs.asn
@@ -0,0 +1,9803 @@
+-- RNSAP-IEs.asn
+--
+-- Taken from 3GPP TS 25.423 V9.4.0 (2010-09)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.423/25423-790.zip/25423-790.DOC
+--
+-- 9.3.4 Information Element Definitions
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+RNSAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rnsap (1) version1 (1) rnsap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxCellSIB11OrSIB12,
+ maxNrOfFACHs,
+ maxIBSEG,
+ maxCellsMeas,
+ maxNoOfDSCHs,
+ maxNoOfUSCHs,
+ maxNrOfDCHs,
+ maxNrOfDL-Codes,
+ maxNrOfDLTs,
+ maxNrOfDLTsLCR,
+ maxNrOfDPCHs,
+ maxNrOfDPCHs768,
+ maxNrOfDPCHsLCR,
+ maxNrOfEDCH-HARQ-PO-QUANTSTEPs,
+ maxNrOfEDCHHARQProcesses2msEDCH,
+ maxNrOfBits-MACe-PDU-non-scheduled,
+ maxNrOfEDPCCH-PO-QUANTSTEPs,
+ maxNrOfRefETFCI-PO-QUANTSTEPs,
+ maxNrOfRefETFCIs,
+ maxNrOfErrors,
+ maxNrOfFDDNeighboursPerRNC,
+ maxNrOfMACcshSDU-Length,
+ maxNrOfNeighbouringRNCs,
+ maxNrOfTDDNeighboursPerRNC,
+ maxNrOfLCRTDDNeighboursPerRNC,
+ maxNrOfTS,
+ maxNrOfTsLCR,
+ maxNrOfULTs,
+ maxNrOfULTsLCR,
+ maxNrOfGSMNeighboursPerRNC,
+ maxRateMatching,
+ maxNrOfPoints,
+ maxNoOfRB,
+ maxNrOfRLs,
+ maxNrOfTFCs,
+ maxNrOfTFs,
+ maxCTFC,
+ maxRNCinURA-1,
+ maxNrOfSCCPCHs,
+ maxNrOfSCCPCHs768,
+ maxTGPS,
+ maxTTI-Count,
+ maxNoGPSTypes,
+ maxNoSat,
+ maxNrOfActiveMBMSServices,
+ maxNrOfCells,
+ maxNrOfSNAs,
+ maxNrOfHARQProc,
+ maxNrOfHSSCCHCodes,
+ maxNrOfMACdFlows,
+ maxNrOfMACdFlows-1,
+ maxNrOfMACdPDUSize,
+ maxNrOfMBMSL3,
+ maxNrOfMCCHMessages,
+ maxNrOfEDCHMACdFlows,
+ maxNrOfEDCHMACdFlows-1,
+ maxNrOfEDCHMACdFlowsLCR,
+ maxNrOfEDCHMACdFlowsLCR-1,
+ maxNrOfMBMSServices,
+ maxNrOfPDUIndexes,
+ maxNrOfPDUIndexes-1,
+ maxNrOfPrioQueues,
+ maxNrOfPrioQueues-1,
+ maxNrOfSatAlmanac-maxNoSat,
+ maxNrOfGERANSI,
+ maxNrofSigSeqERGHICH-1,
+ maxNrOfUEs,
+ maxNrOfAddFreq,
+ maxNrOfCellsPerFreq,
+ maxNoOfLogicalChannels,
+ maxNrOfRefBetas,
+ maxNrOfEAGCHCodes,
+ maxNrOfHS-DSCHTBSs,
+ maxNrOfHS-DSCHTBSs-HS-SCCHless,
+ maxHS-PDSCHCodeNrComp-1,
+ maxNrOfEHICHCodes,
+ maxGANSSSat,
+ maxNoGANSS,
+ maxSgnType,
+ maxNrOfBroadcastPLMNs,
+ maxHSDPAFrequency,
+ maxHSDPAFrequency-1,
+ maxFrequencyinCell,
+ maxFrequencyinCell-1,
+ maxGANSSSatAlmanac,
+ maxGANSSClockMod,
+ maxNrOfEDCHRLs,
+ maxNrOfEUTRANeighboursPerRNC,
+ maxEARFCN,
+ maxNrOfPreconfiguredNeighbours,
+ maxNrOfHSDSCH-1,
+ maxNrOfHSDSCH,
+ maxGANSS-1,
+ maxlengthMBMSconcatservlists,
+ maxNoOfTBSs-Mapping-HS-DSCH-SPS,
+ maxNoOfTBSs-Mapping-HS-DSCH-SPS-1,
+ maxNoOfHS-DSCH-TBSsLCR,
+ maxNoOfRepetition-Period-LCR,
+ maxNoOfRepetitionPeriod-SPS-LCR-1,
+ maxNoOf-HS-SICH-SPS,
+ maxNoOf-HS-SICH-SPS-1,
+ maxNoOfNon-HS-SCCH-Assosiated-HS-SICH,
+ maxNrOfEDCH-1,
+ maxNrOfDCHMeasurementOccasionPatternSequence,
+
+
+ id-Allowed-Rate-Information,
+ id-AntennaColocationIndicator,
+ id-BindingID,
+ id-Cell-Capacity-Class-Value,
+ id-CellCapabilityContainer-FDD,
+ id-CellCapabilityContainer-TDD,
+ id-CellCapabilityContainer-TDD-LCR,
+ id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information,
+ id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response,
+ id-Counting-Information,
+ id-CoverageIndicator,
+ id-DPC-Mode-Change-SupportIndicator,
+ id-E-DCH-Minimum-Set-E-TFCIValidityIndicator,
+ id-E-RGCH-E-HICH-ChannelisationCodeValidityIndicator,
+ id-Extended-Round-Trip-Time-Value,
+ id-ExtendedPropagationDelay,
+ id-Extended-SRNC-ID,
+ id-Extended-RNC-ID,
+ id-GERAN-Cell-Capability,
+ id-GERAN-Classmark,
+ id-Guaranteed-Rate-Information,
+ id-HARQ-Preamble-Mode-Activation-Indicator,
+ id-HCS-Prio,
+ id-Inter-Frequency-Cell-Information,
+ id-Load-Value,
+ id-Load-Value-IncrDecrThres,
+ id-Neighbouring-GSM-CellInformation,
+ id-Neighbouring-UMTS-CellInformationItem,
+ id-neighbouring-LCR-TDD-CellInformation,
+ id-NRT-Load-Information-Value,
+ id-NRT-Load-Information-Value-IncrDecrThres,
+ id-OnModification,
+ id-Received-Total-Wideband-Power-Value,
+ id-Received-Total-Wideband-Power-Value-IncrDecrThres,
+ id-RT-Load-Value,
+ id-RT-Load-Value-IncrDecrThres,
+ id-SFNSFNMeasurementThresholdInformation,
+ id-SNA-Information,
+ id-TrafficClass,
+ id-Transmitted-Carrier-Power-Value,
+ id-Transmitted-Carrier-Power-Value-IncrDecrThres,
+ id-TUTRANGPSMeasurementThresholdInformation,
+ id-UL-Timeslot-ISCP-Value,
+ id-UL-Timeslot-ISCP-Value-IncrDecrThres,
+ maxNrOfLevels,
+ maxNrOfMeasNCell,
+ maxNrOfMeasNCell-1,
+ id-MessageStructure,
+ id-RestrictionStateIndicator,
+ id-Rx-Timing-Deviation-Value-LCR,
+ id-TransportLayerAddress,
+ id-Transmission-Mode-Information,
+ id-TypeOfError,
+ id-Angle-Of-Arrival-Value-LCR,
+ id-IPDL-TDD-ParametersLCR,
+ id-DSCH-InitialWindowSize,
+ id-Maximum-DL-Power-TimeslotLCR-InformationItem,
+ id-MBMS-Bearer-Service-Full-Address,
+ id-MBMS-Neighbouring-Cell-Information,
+ id-MBMS-RLC-Sequence-Number-Information,
+ id-MBSFN-Cluster-Identity,
+ id-MBSFN-Scheduling-Transmission-Time-Interval-Info-List,
+ id-MCCH-Configuration-Info,
+ id-MCCH-Message-List,
+ id-Minimum-DL-Power-TimeslotLCR-InformationItem,
+ id-HS-SICH-Reception-Quality,
+ id-HS-SICH-Reception-Quality-Measurement-Value,
+ id-HS-PDSCH-Code-Change-Grant,
+ id-HS-PDSCH-Code-Change-Indicator,
+ id-ExtendedGSMCellIndividualOffset,
+ id-Unidirectional-DCH-Indicator,
+ id-RTLoadValue,
+ id-RLC-Sequence-Number,
+ id-NRTLoadInformationValue,
+ id-Satellite-Almanac-Information-ExtItem,
+ id-TnlQos,
+ id-UpPTSInterferenceValue,
+ id-NACC-Related-Data,
+ id-HARQ-Preamble-Mode,
+ id-User-Plane-Congestion-Fields-Inclusion,
+ id-FrequencyBandIndicator,
+ id-PLCCH-Information-UL-TimeslotLCR-Info,
+ id-CellCapabilityContainer-TDD768,
+ id-hSSCCH-TDD-Specific-InfoList-Response768,
+ id-hSPDSCH-TDD-Specific-InfoList-Response768,
+ id-Rx-Timing-Deviation-Value-768,
+ id-UEMeasurementValueTransmittedPowerList768,
+ id-UEMeasurementValueTimeslotISCPList768,
+ id-E-DCH-PowerOffset-for-SchedulingInfo,
+ id-Rx-Timing-Deviation-Value-ext,
+ id-TrCH-SrcStatisticsDescr,
+ id-eDCH-MACdFlow-Retransmission-Timer-LCR,
+ id-MIMO-ActivationIndicator,
+ id-MIMO-InformationResponse,
+ id-MIMO-Mode-Indicator,
+ id-MIMO-N-M-Ratio,
+ id-SixteenQAM-UL-Operation-Indicator,
+ id-E-AGCH-Table-Choice,
+ id-E-TFCI-Boost-Information,
+ id-E-DPDCH-PowerInterpolation,
+ id-HSDSCH-MACdPDUSizeFormat,
+ id-MaximumMACdPDU-SizeExtended,
+ id-GANSS-Common-Data,
+ id-GANSS-Information,
+ id-GANSS-Generic-Data,
+ id-TUTRANGANSSMeasurementThresholdInformation,
+ id-TUTRANGANSSMeasurementValueInformation,
+ id-HARQ-MemoryPartitioningInfoExtForMIMO,
+ id-Ext-Reference-E-TFCI-PO,
+ id-Ext-Max-Bits-MACe-PDU-non-scheduled,
+ id-Multiple-PLMN-List,
+ id-TransportBearerNotSetupIndicator,
+ id-TransportBearerNotRequestedIndicator,
+ id-UARFCNforNt,
+ id-LCRTDD-uplink-Physical-Channel-Capability,
+ id-number-Of-Supported-Carriers,
+ id-HSSICH-SIRTarget,
+ id-HSSICH-TPC-StepSize,
+ id-tSN-Length,
+ id-HS-SICH-ID-Extension,
+ id-multipleFreq-HSPDSCH-InformationList-ResponseTDDLCR,
+ id-multicarrier-number,
+ id-UpPCH-InformationList-LCRTDD,
+ id-UpPCH-InformationItem-LCRTDD,
+ id-Max-UE-DTX-Cycle,
+ id-Default-Serving-Grant-in-DTX-Cycle2,
+ id-SixtyfourQAM-UsageAllowedIndicator,
+ id-SixtyfourQAM-DL-UsageIndicator,
+ id-UE-Capabilities-Info,
+ id-Extended-E-DCH-LCRTDD-PhysicalLayerCategory,
+ id-Continuous-Packet-Connectivity-HS-SCCH-Less-Deactivate-Indicator,
+ id-E-DCH-MACdPDUSizeFormat,
+ id-E-PUCH-PowerControlGAP,
+ id-MaximumNumber-Of-Retransmission-For-SchedulingInfo-LCRTDD,
+ id-E-DCH-RetransmissionTimer-For-SchedulingInfo-LCRTDD,
+ id-HSDSCH-TBSizeTableIndicator,
+ id-E-DCH-DL-Control-Channel-Change-Information,
+ id-E-DCH-DL-Control-Channel-Grant-Information,
+ id-DGANSS-Corrections-Req,
+ id-UE-with-enhanced-HS-SCCH-support-indicator,
+ id-EnhancedHSServingCC-Abort,
+ id-GANSS-Time-ID,
+ id-GANSS-AddIonoModelReq,
+ id-GANSS-EarthOrientParaReq,
+ id-GANSS-AddNavigationModelsReq,
+ id-GANSS-AddUTCModelsReq,
+ id-GANSS-AuxInfoReq,
+ id-GANSS-SBAS-ID,
+ id-GANSS-ID,
+ id-GANSS-Additional-Ionospheric-Model,
+ id-GANSS-Earth-Orientation-Parameters,
+ id-GANSS-Additional-Time-Models,
+ id-GANSS-Additional-Navigation-Models,
+ id-GANSS-Additional-UTC-Models,
+ id-GANSS-Auxiliary-Information,
+ id-GANSS-alm-keplerianNAVAlmanac,
+ id-GANSS-alm-keplerianReducedAlmanac,
+ id-GANSS-alm-keplerianMidiAlmanac,
+ id-GANSS-alm-keplerianGLONASS,
+ id-GANSS-alm-ecefSBASAlmanac,
+ id-Secondary-Serving-Cell-List,
+ id-MinimumReducedE-DPDCH-GainFactor,
+ id-E-AGCH-UE-Inactivity-Monitor-Threshold,
+ id-MACes-Maximum-Bitrate-LCR,
+ id-MultiCarrier-HSDSCH-Physical-Layer-Category,
+ id-MIMO-SFMode-For-HSPDSCHDualStream,
+ id-MIMO-SFMode-Supported-For-HSPDSCHDualStream,
+ id-MIMO-ReferenceSignal-InformationListLCR,
+ id-DL-RLC-PDU-Size-Format,
+ id-UE-SupportIndicatorExtension,
+ id-power-offset-for-S-CPICH-for-MIMO,
+ id-power-offset-for-S-CPICH-for-MIMO-Request-Indicator,
+ id-Dual-Band-Secondary-Serving-Cell-List,
+ id-Single-Stream-MIMO-ActivationIndicator,
+ id-Single-Stream-MIMO-Mode-Indicator,
+ id-Additional-EDCH-Preconfiguration-Information,
+ id-MulticellEDCH-Information,
+ id-EDCH-Indicator,
+ id-DiversityMode,
+ id-TransmitDiversityIndicator,
+ id-NonCellSpecificTxDiversity,
+ id-CellCapabilityContainerExtension-FDD,
+ id-HSDSCH-Physical-Layer-Category,
+ id-TS0-HS-PDSCH-Indication-LCR,
+ id-UE-TS0-CapabilityLCR,
+ id-DGNSS-ValidityPeriod,
+ id-UE-AggregateMaximumBitRate-Enforcement-Indicator,
+ id-Out-of-Sychronization-Window,
+ id-MulticellEDCH-RL-SpecificInformation,
+ id-Continuous-Packet-Connectivity-DTX-DRX-Information,
+ id-Additional-E-DCH-Non-Serving-RL-Preconfiguration-Setup,
+ id-Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList,
+ id-CellListValidityIndicator
+
+
+
+FROM RNSAP-Constants
+
+ Criticality,
+ ProcedureID,
+ ProtocolIE-ID,
+ TransactionID,
+ TriggeringMessage
+FROM RNSAP-CommonDataTypes
+
+ ProtocolIE-Single-Container{},
+ ProtocolExtensionContainer{},
+ RNSAP-PROTOCOL-IES,
+ RNSAP-PROTOCOL-EXTENSION
+FROM RNSAP-Containers;
+
+-- A
+
+AccessPointName ::= OCTET STRING (SIZE (1..255))
+
+AckNack-RepetitionFactor ::= INTEGER (1..4,...)
+-- Step: 1
+
+Ack-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [21] subclause 4.2.1
+
+ActivationInformation ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF ActivationInformationItem
+
+ActivationInformationItem ::= SEQUENCE {
+ uU-ActivationState Uu-ActivationState,
+ iE-Extensions ProtocolExtensionContainer { { ActivationInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ActivationInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Active-MBMS-Bearer-Service-ListFDD ::= SEQUENCE (SIZE (1..maxNrOfActiveMBMSServices)) OF MBMS-Bearer-ServiceItemFDD
+
+Active-MBMS-Bearer-Service-ListFDD-PFL ::= SEQUENCE (SIZE (1..maxNrOfActiveMBMSServices)) OF MBMS-Bearer-ServiceItemFDD-PFL
+
+Active-MBMS-Bearer-Service-ListTDD ::= SEQUENCE (SIZE (1..maxNrOfActiveMBMSServices)) OF MBMS-Bearer-ServiceItemTDD
+
+Active-MBMS-Bearer-Service-ListTDD-PFL ::= SEQUENCE (SIZE (1..maxNrOfActiveMBMSServices)) OF MBMS-Bearer-ServiceItemTDD-PFL
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-Response-RLAddList ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-Response-RLAdd-ItemIEs
+
+Additional-EDCH-Cell-Information-Response-RLAdd-ItemIEs ::=SEQUENCE{
+ additional-EDCH-FDD-Information-Response Additional-EDCH-FDD-Information-Response-ItemIEs OPTIONAL,
+ additional-EDCH-Serving-Cell-Change-Information-Response-RLAdd E-DCH-Serving-cell-change-informationResponse OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-Response-RLAdd-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-Response-RLAdd-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Setup-Info ::=SEQUENCE{
+ multicell-EDCH-Transport-Bearer-Mode Multicell-EDCH-Transport-Bearer-Mode,
+ additional-EDCH-Cell-Information-Setup Additional-EDCH-Cell-Information-Setup,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Setup-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Setup-Info-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multicell-EDCH-Transport-Bearer-Mode ::= ENUMERATED {
+ separate-Iur-Transport-Bearer-Mode,
+ uL-Flow-Multiplexing-Mode
+}
+
+Additional-EDCH-Cell-Information-Setup ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-FDD-Setup-Cell-Information
+
+Additional-EDCH-FDD-Setup-Cell-Information ::=SEQUENCE{
+ additional-EDCH-UL-DPCH-Information-Setup Additional-EDCH-UL-DPCH-Information-Setup,
+ additional-EDCH-RL-Specific-Information-To-Setup Additional-EDCH-RL-Specific-Information-To-Setup-List,
+ additional-EDCH-FDD-Information Additional-EDCH-FDD-Information OPTIONAL,
+ additional-EDCH-F-DPCH-Information-Setup Additional-EDCH-F-DPCH-Information,
+ multicellEDCH-Information MulticellEDCH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Setup-Cell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Setup-Cell-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Setup ::=SEQUENCE{
+ ul-ScramblingCode UL-ScramblingCode,
+ ul-SIR-Target UL-SIR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-UL-DPCH-Information-Setup-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Setup-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-F-DPCH-Information ::=SEQUENCE{
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ f-DPCH-SlotFormatSupportRequest F-DPCH-SlotFormatSupportRequest OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-F-DPCH-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-F-DPCH-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Setup-List ::= SEQUENCE (SIZE (1.. maxNrOfEDCHRLs)) OF Additional-EDCH-RL-Specific-Information-To-Setup-ItemIEs
+
+Additional-EDCH-RL-Specific-Information-To-Setup-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ c-ID C-ID OPTIONAL,
+ firstRLS-indicator FirstRLS-Indicator,
+ propagationDelay PropagationDelay OPTIONAL,
+ initialDL-transmissionPower DL-Power OPTIONAL,
+ primaryCPICH-EcNo PrimaryCPICH-EcNo OPTIONAL,
+ e-AGCH-PowerOffset E-AGCH-PowerOffset OPTIONAL,
+ e-RGCH-PowerOffset E-RGCH-PowerOffset OPTIONAL,
+ e-HICH-PowerOffset E-HICH-PowerOffset OPTIONAL,
+ additional-EDCH-MAC-d-Flows-Specific-Info-List Additional-EDCH-MAC-d-Flows-Specific-Info-List OPTIONAL,
+ multicellEDCH-RL-SpecificInformation MulticellEDCH-RL-SpecificInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-RL-Specific-Information-To-Setup-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Setup-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-To-Add-List ::= SEQUENCE (SIZE (1.. maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-To-Add-ItemIEs
+
+Additional-EDCH-Cell-Information-To-Add-ItemIEs::=SEQUENCE{
+ additional-EDCH-UL-DPCH-Information-Setup Additional-EDCH-UL-DPCH-Information-Addition,
+ additional-EDCH-RL-Specific-Information-To-Add-List Additional-EDCH-RL-Specific-Information-To-Add-List,
+ additional-EDCH-FDD-Information Additional-EDCH-FDD-Information OPTIONAL,
+ multicellEDCH-Information MulticellEDCH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-To-Add-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-To-Add-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Addition ::=SEQUENCE{
+ ul-SIR-Target UL-SIR,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-UL-DPCH-Information-Addition-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Addition-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Add-List ::= SEQUENCE (SIZE (1.. maxNrOfEDCHRLs)) OF Additional-EDCH-RL-Specific-Information-To-Add-ItemIEs
+
+Additional-EDCH-RL-Specific-Information-To-Add-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ c-ID C-ID,
+ primaryCPICH-EcNo PrimaryCPICH-EcNo OPTIONAL,
+ e-AGCH-PowerOffset E-AGCH-PowerOffset OPTIONAL,
+ e-RGCH-PowerOffset E-RGCH-PowerOffset OPTIONAL,
+ e-HICH-PowerOffset E-HICH-PowerOffset OPTIONAL,
+ additional-EDCH-MAC-d-Flows-Specific-Info-List Additional-EDCH-MAC-d-Flows-Specific-Info-List OPTIONAL,
+ multicellEDCH-RL-SpecificInformation MulticellEDCH-RL-SpecificInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-RL-Specific-Information-To-Add-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Add-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Modify-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF Additional-EDCH-RL-Specific-Information-To-Modify-ItemIEs
+
+Additional-EDCH-RL-Specific-Information-To-Modify-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ e-AGCH-PowerOffset E-AGCH-PowerOffset OPTIONAL,
+ e-RGCH-PowerOffset E-RGCH-PowerOffset OPTIONAL,
+ e-HICH-PowerOffset E-HICH-PowerOffset OPTIONAL,
+ additional-EDCH-MAC-d-Flows-Specific-Info-List Additional-EDCH-MAC-d-Flows-Specific-Info-List OPTIONAL,
+ multicellEDCH-RL-SpecificInformation MulticellEDCH-RL-SpecificInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-RL-Specific-Information-To-Modify-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-RL-Specific-Information-To-Modify-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-FDD-Information ::=SEQUENCE{
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ e-DCH-Maximum-Bitrate E-DCH-Maximum-Bitrate OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-Min-Set-E-TFCI E-TFCI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-MAC-d-Flows-Specific-Info-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF Additional-EDCH-MAC-d-Flows-Specific-Info
+
+Additional-EDCH-MAC-d-Flows-Specific-Info ::= SEQUENCE {
+ e-DCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-MAC-d-Flows-Specific-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-MAC-d-Flows-Specific-Info-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-MAC-d-Flow-Specific-Information-Response-List::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF Additional-EDCH-MAC-d-Flows-Specific-Info-Response
+
+Additional-EDCH-MAC-d-Flows-Specific-Info-Response ::= SEQUENCE {
+ e-DCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-MAC-d-Flows-Specific-Info-Response-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-MAC-d-Flows-Specific-Info-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-FDD-Information-Response-ItemIEs
+
+Additional-EDCH-FDD-Information-Response-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-Specific-Information-Response EDCH-Additional-RL-Specific-Information-Response-List,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Information-Response-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-Additional-RL-Specific-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF EDCH-Additional-RL-Specific-Information-Response-ItemIEs
+
+EDCH-Additional-RL-Specific-Information-Response-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ received-total-wide-band-power Received-total-wide-band-power,
+ dL-PowerBalancing-ActivationIndicator DL-PowerBalancing-ActivationIndicator OPTIONAL,
+ rL-Set-ID RL-Set-ID,
+ e-DCH-RL-Set-ID RL-Set-ID,
+ eDCH-FDD-DL-ControlChannelInformation EDCH-FDD-DL-ControlChannelInformation,
+ dl-CodeInformation FDD-DL-CodeInformation,
+
+ additional-EDCH-MAC-d-Flow-Specific-Information-Response-List Additional-EDCH-MAC-d-Flow-Specific-Information-Response-List OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL, maxUL-SIR UL-SIR,
+ minUL-SIR UL-SIR,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDL-power DL-Power,
+ minimumDL-power DL-Power,
+ primaryScramblingCode PrimaryScramblingCode OPTIONAL,
+ uL-UARFCN UARFCN OPTIONAL,
+ dL-UARFCN UARFCN OPTIONAL,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ pC-Preamble PC-Preamble,
+ primary-CPICH-Usage-For-Channel-Estimation Primary-CPICH-Usage-For-Channel-Estimation OPTIONAL,
+ secondary-CPICH-Information Secondary-CPICH-Information OPTIONAL,
+ f-DPCH-SlotFormat F-DPCH-SlotFormat OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-Additional-RL-Specific-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-Additional-RL-Specific-Information-Response-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-Response-RLReconf-List::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-FDD-Information-Response-RLReconf-Items
+
+Additional-EDCH-FDD-Information-Response-RLReconf-Items::=SEQUENCE{
+ eDCH-Additional-RL-Specific-Information-Response EDCH-Additional-RL-Specific-Information-Response-List OPTIONAL,
+ eDCH-Additional-RL-Specific-Modified-Information-Response EDCH-Additional-RL-Specific-Modified-Information-Response-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Information-Response-RLReconf-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Information-Response-RLReconf-Items-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-Additional-RL-Specific-Modified-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF EDCH-Additional-RL-Specific-Modified-Information-Response-ItemIEs
+
+EDCH-Additional-RL-Specific-Modified-Information-Response-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ dL-PowerBalancing-UpdatedIndicator DL-PowerBalancing-UpdatedIndicator OPTIONAL,
+ eDCH-FDD-DL-ControlChannelInformation EDCH-FDD-DL-ControlChannelInformation OPTIONAL,
+ additional-EDCH-MAC-d-Flow-Specific-Information-Response-List Additional-EDCH-MAC-d-Flow-Specific-Information-Response-List OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ maxUL-SIR UL-SIR OPTIONAL,
+ minUL-SIR UL-SIR OPTIONAL,
+ maximumDL-power DL-Power OPTIONAL,
+ minimumDL-power DL-Power OPTIONAL,
+ primary-CPICH-Usage-For-Channel-Estimation Primary-CPICH-Usage-For-Channel-Estimation OPTIONAL,
+ secondary-CPICH-Information-Change Secondary-CPICH-Information-Change OPTIONAL,
+ f-DPCH-SlotFormat F-DPCH-SlotFormat OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-Additional-RL-Specific-Modified-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-Additional-RL-Specific-Modified-Information-Response-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-ConfigurationChange-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-ConfigurationChange-Info-ItemIEs
+Additional-EDCH-ConfigurationChange-Info-ItemIEs ::=SEQUENCE{
+ additional-EDCH-UL-DPCH-Information-Modify Additional-EDCH-UL-DPCH-Information-Modify OPTIONAL,
+ additional-EDCH-RL-Specific-Information-To-Add Additional-EDCH-RL-Specific-Information-To-Add-List OPTIONAL,
+ additional-EDCH-RL-Specific-Information-To-Modify Additional-EDCH-RL-Specific-Information-To-Modify-List OPTIONAL,
+ additional-EDCH-FDD-Information-To-Modify Additional-EDCH-FDD-Information OPTIONAL,
+ additional-EDCH-F-DPCH-Information-Modify Additional-EDCH-F-DPCH-Information OPTIONAL,
+ multicellEDCH-Information MulticellEDCH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-ConfigurationChange-Info-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-ConfigurationChange-Info-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Modify ::=SEQUENCE{
+ ul-ScramblingCode UL-ScramblingCode OPTIONAL,
+ ul-SIR-Target UL-SIR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-UL-DPCH-Information-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-UL-DPCH-Information-Modify-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-Removal-List ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-Removal-Info-ItemIEs
+
+Additional-EDCH-Cell-Information-Removal-Info-ItemIEs ::=SEQUENCE{
+ rL-on-Secondary-UL-Frequency RL-on-Secondary-UL-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-Removal-Info-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-Removal-Info-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-on-Secondary-UL-Frequency ::= ENUMERATED {
+ remove,
+ ...
+}
+
+Additional-EDCH-FDD-Update-Information ::=SEQUENCE{
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ additional-EDCH-DL-Control-Channel-Change-Information Additional-EDCH-DL-Control-Channel-Change-Information-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Update-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Update-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Additional-EDCH-DL-Control-Channel-Change-Information-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF Additional-EDCH-DL-Control-Channel-Change-Info-ItemIEs
+
+Additional-EDCH-DL-Control-Channel-Change-Info-ItemIEs ::=SEQUENCE{
+ eDCH-Additional-RL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-DL-Control-Channel-Change-Info-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-DL-Control-Channel-Change-Info-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+AdditionalPreferredFrequency ::= SEQUENCE (SIZE (1..maxNrOfAddFreq)) OF AdditionalPreferredFrequencyItem
+
+AdditionalPreferredFrequencyItem ::= SEQUENCE {
+ dL-UARFCN UARFCN,
+ correspondingCells CorrespondingCells ,
+ iE-Extensions ProtocolExtensionContainer { { AdditionalPreferredFrequencyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+AdditionalPreferredFrequencyItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AdjustmentPeriod ::= INTEGER(1..256)
+-- Unit Frame
+
+AffectedUEInformationForMBMS ::= SEQUENCE (SIZE (1..maxNrOfUEs)) OF S-RNTI
+
+AllocationRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationRetentionPriority-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Allowed-Rate-Information ::= SEQUENCE {
+ allowed-UL-Rate Allowed-Rate OPTIONAL,
+ allowed-DL-Rate Allowed-Rate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Allowed-Rate-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Allowed-Rate-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Allowed-Rate ::= INTEGER (1..maxNrOfTFs)
+-- "1": TFI 0, "2": TFI 1, "3": TFI 2, ...
+
+AllowedQueuingTime ::= INTEGER (1..60)
+-- seconds
+
+AlphaValue ::= INTEGER (0..8)
+-- Actual value = Alpha / 8
+
+AlternativeFormatReportingIndicator ::= ENUMERATED {
+alternativeFormatAllowed,...
+}
+
+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 RNSAP-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,...}
+
+AntennaColocationIndicator ::= ENUMERATED {
+ co-located,
+ ...
+}
+
+-- B
+
+BadSatellites ::= SEQUENCE {
+ badSatelliteInformation SEQUENCE (SIZE (1..maxNoSat)) OF
+ SEQUENCE {
+ badSAT-ID SAT-ID,
+ iE-Extensions ProtocolExtensionContainer { { BadSatelliteInformation-ExtIEs} } OPTIONAL,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { BadSatellites-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BadSatelliteInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BadSatellites-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Band-Indicator ::= ENUMERATED {
+ dcs1800Band,
+ pcs1900Band,
+ ...
+}
+
+BCC ::= BIT STRING (SIZE (3))
+
+BCCH-ARFCN ::= INTEGER (0..1023)
+
+BetaCD ::= INTEGER (0..15)
+
+BindingID ::= OCTET STRING (SIZE (1..4,...))
+-- If the Binding ID includes an UDP port, the UDP port is included in octet 1 and 2.
+
+BLER ::= INTEGER (-63..0)
+-- Step 0.1 (Range -6.3..0). It is the Log10 of the BLER
+
+SCTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+BSIC ::= SEQUENCE {
+ nCC NCC,
+ bCC BCC
+}
+
+BundlingModeIndicator ::= ENUMERATED {
+ bundling,
+ no-bundling
+}
+
+BurstModeParameters ::= SEQUENCE {
+ burstStart INTEGER (0..15),
+ burstLength INTEGER (10..25),
+ burstFreq INTEGER (1..16),
+ iE-Extensions ProtocolExtensionContainer { { BurstModeParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BurstModeParameters-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- C
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ hardware-failure,
+ om-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,
+ ul-scrambling-code-already-in-use,
+ dl-radio-resources-not-available,
+ ul-radio-resources-not-available,
+ measurement-not-supported-for-the-object,
+ combining-resources-not-available,
+ combining-not-supported,
+ reconfiguration-not-allowed,
+ requested-configuration-not-supported,
+ synchronisation-failure,
+ requested-tx-diversity-mode-not-supported,
+ measurement-temporaily-not-available,
+ unspecified,
+ invalid-CM-settings,
+ reconfiguration-CFN-not-elapsed,
+ number-of-DL-codes-not-supported,
+ dedicated-transport-channel-type-not-supported,
+ dl-shared-channel-type-not-supported,
+ ul-shared-channel-type-not-supported,
+ common-transport-channel-type-not-supported,
+ ul-spreading-factor-not-supported,
+ dl-spreading-factor-not-supported,
+ cm-not-supported,
+ transaction-not-supported-by-destination-node-b,
+ rl-already-activated-or-alocated,
+ ...,
+ number-of-UL-codes-not-supported,
+ cell-reserved-for-operator-use,
+ dpc-mode-change-not-supported,
+ information-temporarily-not-available,
+ information-provision-not-supported-for-the-object,
+ power-balancing-status-not-compatible,
+ delayed-activation-not-supported,
+ rl-timing-adjustment-not-supported,
+ unknown-RNTI,
+ measurement-repetition-rate-not-compatible,
+ ue-not-capable-of-support,
+ f-dpch-not-supported,
+ e-dch-not-supported,
+ continuous-packet-connectivity-dtx-drx-operation-not-supported,
+ continuous-packet-connectivity-hs-scch-less-operation-not-supported,
+ mimo-not-supported,
+ e-dch-tti2ms-not-supported,
+ continuous-packet-connectivity-DTX-DRX-operation-not-available,
+ continuous-packet-connectivity-UE-DTX-Cycle-not-available,
+ mimo-not-available,
+ sixteenQAM-UL-not-Supported,
+ hSDSCH-MACdPDU-SizeFormatNotSupported,
+ f-dpch-slot-format-operation-not-supported,
+ e-DCH-MACdPDU-SizeFormat-not-available,
+ e-DPCCH-Power-Boosting-not-supported,
+ trelocprep-expiry,
+ directed-retry,
+ no-Iu-CS-UP-relocation,
+ reduce-load-in-serving-cell,
+ relocation-cancelled,
+ relocation-desirable-for-radio-reasons,
+ resource-optimisation-relocation,
+ time-critical-relocation,
+ traffic-load-in-the-target-cell-higher-than-in-the-source-cell,
+ sixtyfourQAM-DL-and-MIMO-Combined-not-available,
+ multi-Cell-operation-not-available,
+ multi-Cell-operation-not-supported,
+ semi-Persistent-scheduling-not-supported,
+ continuous-Packet-Connectivity-DRX-not-supported,
+ continuous-Packet-Connectivity-DRX-not-available,
+ enhanced-relocation-not-supported,
+ relocation-not-supported-due-to-PUESBINE-feature,
+ relocation-failure-in-target-RNC,
+ relocation-target-not-allowed,
+ requested-ciphering-and-or-integrity-protection-algorithms-not-supported,
+ sixtyfourQAM-DL-and-MIMO-Combined-not-supported,
+ tx-diversity-for-mimo-on-DL-control-channels-not-available,
+ single-Stream-MIMO-not-supported,
+ single-Stream-MIMO-not-available,
+ multi-Cell-operation-with-MIMO-not-supported,
+ multi-Cell-operation-with-MIMO-not-available,
+ multi-Cell-EDCH-operation-not-supported,
+ multi-Cell-EDCH-operation-not-available,
+ multi-Cell-operation-with-Single-Stream-MIMO-not-supported,
+ multi-Cell-operation-with-Single-Stream-MIMO-not-available,
+ cellSpecificTxDiversityHandlingForMultiCellOperationNotAvailable,
+ cellSpecificTxDiversityHandlingForMultiCellOperationNotSupported
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CellCapabilityContainer-FDD ::= BIT STRING (SIZE (32))
+-- First bit: Flexible Hard Split Support Indicator
+-- Second bit: Delayed Activation Support Indicator
+-- Third bit: HS-DSCH Support Indicator
+-- Fourth bit: DSCH Support Indicator
+-- Fifth bit: F-DPCH Support Indicator
+-- sixth bit: E-DCH Support Indicator
+-- Seventh bit: E-DCH TTI2ms Support Indicator
+-- Eighth bit: E-DCH 2sf2and2sf4 and all inferior SFs Support Indicator
+-- Ninth bit: E-DCH 2sf2 and all inferior SFs Support Indicator
+-- Tenth bit: E-DCH 2sf4 and all inferior SFs Support Indicator
+-- Eleventh bit: E-DCH sf4 and all inferior SFs Support Indicator
+-- Twelveth bit: E-DCH sf8 and all inferior SFs Support Indicator
+-- Thirteenth bit: E-DCH HARQ IR Combining Support Indicator
+-- Fourteenth bit: E-DCH HARQ Chase Combining Support Indicator
+-- Fifteenth bit: Continuous Packet Connectivity DTX-DRX Support Indicator
+-- Sixteenth bit: Continuous Packet Connectivity HS-SCCH less Support Indicator
+-- Seventeenth bit: MIMO Support Indicator
+-- Eighteenth bit: SixteenQAM UL Support Indicator
+-- Nineteenth bit: Flexible MAC-d PDU Size Support Indicator
+-- Twentieth bit: F-DPCH Slot Format Support Indicator
+-- Twentyfirst bit: SixtyfourQAM DL Support Indicator
+-- Twentysecond bit: Flexible E-DCH MAC-d PDU Size Support Indicator
+-- Twentythird bit: E-DPCCH Power Boosting Support Indicator
+-- Twentyfourth bit: SixtyfourQAM DL and MIMO Combined Support Indicator
+-- Twentyfifth bit: Multi Cell Support Indicator Support Indicator
+-- Twentysixth bit: MBMS Support Indicator
+-- Twentyseventh bit: DRNS Support STTD on DL ctrl ch when the RL is in MIMO P-CPICH + S-CPICH cell
+-- Twentyeighth bit: Dual Band Support Indicator
+-- Twentyninth bit: Single Stream MIMO Support Indicator
+-- Thirtieth bit: Preferred Precoding Weight Set Restriction Support Indicator
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+CellCapabilityContainerExtension-FDD ::= BIT STRING (SIZE (128))
+-- First bit: Cell Specific Tx Diversity Handling For Multi Cell Operation Support Indicator
+-- Second bit: Multi Cell and MIMO Support Indicator
+-- Third bit: Multi Cell and Single Stream MIMO Support Indicator
+-- Fourth bit: Multi Cell E-DCH Support Indicator
+-- Fifth bit: Separate Iub Transport Bearer Support Indicator
+-- Sixth bit: E-DCH UL Flow Multiplexing Support Indicator
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+
+CellCapabilityContainer-TDD ::= BIT STRING (SIZE (32))
+-- First bit: Delayed Activation Support Indicator
+-- Second bit: HS-DSCH Support Indicator
+-- Third bit: DSCH Support Indicator
+-- The fourth bit: Flexible MAC-d PDU Size Support Indicator
+-- Fifth bit: MBMS Support Indicator
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+CellCapabilityContainer-TDD-LCR ::= BIT STRING (SIZE (32))
+-- First bit: Delayed Activation Support Indicator
+-- Second bit: HS-DSCH Support Indicator
+-- Third bit: DSCH Support Indicator
+-- The fourth bit: Flexible MAC-d PDU Size Support Indicator
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+CellCapabilityContainer-TDD768 ::= BIT STRING (SIZE (32))
+-- First bit: Delayed Activation Support Indicator
+-- Second bit: HS-DSCH Support Indicator
+-- Third bit: DSCH Support Indicator
+-- The fourth bit: Flexible MAC-d PDU Size Support Indicator
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+C-ID ::= INTEGER (0..65535)
+
+CCTrCH-ID ::= INTEGER (0..15)
+
+Cell-Capacity-Class-Value ::= SEQUENCE {
+ uplinkCellCapacityClassValue INTEGER(1..100,...),
+ downlinkCellCapacityClassValue INTEGER(1..100,...)
+}
+
+
+CellIndividualOffset ::= INTEGER (-20..20)
+
+CellListValidityIndicator ::= ENUMERATED {
+ ignoreSecondaryServingCellList,
+ ignoreDualBandSecondaryServingCellList,
+ ignoreBoth
+}
+
+CellParameterID ::= INTEGER (0..127,...)
+
+CellPortionID ::= INTEGER (0..63,...)
+
+CellPortionLCRID ::= INTEGER (0..255,...)
+
+CFN ::= INTEGER (0..255)
+
+CGI ::= SEQUENCE {
+ lAI SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL,
+ ...
+ },
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ChannelCodingType ::= ENUMERATED {
+ no-codingTDD,
+ convolutional-coding,
+ turbo-coding,
+ ...
+}
+
+ChipOffset ::= INTEGER (0..38399)
+
+CI ::= OCTET STRING (SIZE (2))
+
+ClosedLoopMode1-SupportIndicator ::= ENUMERATED {
+ closedLoop-Mode1-Supported,
+ closedLoop-Mode1-not-Supported
+}
+
+
+Closedlooptimingadjustmentmode ::= ENUMERATED {
+ adj-1-slot,
+ adj-2-slot,
+ ...
+}
+
+CodingRate ::= ENUMERATED {
+ half,
+ third,
+ ...
+}
+
+CommonMeasurementAccuracy ::= CHOICE {
+ tUTRANGPSMeasurementAccuracyClass TUTRANGPSAccuracyClass,
+ ...,
+ tUTRANGANSSMeasurementAccuracyClass TUTRANGANSSAccuracyClass
+}
+
+CommonMeasurementType ::= ENUMERATED {
+ uTRAN-GPS-timing-of-cell-frames-for-UE-Positioning,
+ sFN-SFN-observerd-time-difference,
+ load,
+ transmitted-carrier-power,
+ received-total-wide-band-power,
+ uplink-timeslot-iscp,
+ ...,
+ rT-load,
+ nRT-load-Information,
+ upPTSInterference,
+ uTRAN-GANSS-timing-of-cell-frames-for-UE-Positioning
+}
+-- For measurements on the Iur-g interface, only load, RT Load and NRT Load information are requested.
+
+CommonMeasurementValue ::= CHOICE {
+ tUTRANGPSMeasurementValueInformation TUTRANGPSMeasurementValueInformation,
+ sFNSFNMeasurementValueInformation SFNSFNMeasurementValueInformation,
+ loadValue LoadValue,
+ transmittedCarrierPowerValue INTEGER(0..100),
+ receivedTotalWideBandPowerValue INTEGER(0..621),
+ uplinkTimeslotISCPValue UL-TimeslotISCP,
+ ...,
+ extension-CommonMeasurementValue Extension-CommonMeasurementValue
+}
+
+Extension-CommonMeasurementValue ::= ProtocolIE-Single-Container {{ Extension-CommonMeasurementValueIE }}
+
+Extension-CommonMeasurementValueIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-RTLoadValue CRITICALITY ignore TYPE RTLoadValue PRESENCE mandatory }|
+ { ID id-NRTLoadInformationValue CRITICALITY ignore TYPE NRTLoadInformationValue PRESENCE mandatory }|
+ { ID id-UpPTSInterferenceValue CRITICALITY reject TYPE UpPTSInterferenceValue PRESENCE mandatory }|
+ { ID id-TUTRANGANSSMeasurementValueInformation CRITICALITY reject TYPE TUTRANGANSSMeasurementValueInformation PRESENCE mandatory }
+}
+
+-- For measurements on the Iur-g interface, only load, RT Load and NRT Load values are reported.
+
+CommonMeasurementValueInformation ::= CHOICE {
+ measurementAvailable CommonMeasurementAvailable,
+ measurementnotAvailable NULL
+}
+
+CommonMeasurementAvailable::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CommonMeasurementAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonMeasurementAvailableItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CongestionCause ::= ENUMERATED {
+ uTRAN-dynamic-resources,
+ uTRAN-semistatic-resources,
+ ...
+}
+
+CommonTransportChannelResourcesInitialisationNotRequired ::= ENUMERATED {
+ not-Required
+}
+
+
+Common-EDCH-MAC-d-Flow-Specific-InformationFDD ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF Common-EDCH-MAC-d-Flow-Specific-InformationFDDItem
+
+Common-EDCH-MAC-d-Flow-Specific-InformationFDDItem ::= SEQUENCE {
+ common-EDCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ maximum-Number-of-Retransmissions-For-E-DCH MaxNr-Retransmissions-EDCH,
+ eDCH-HARQ-PO-FDD E-DCH-HARQ-PO-FDD,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ common-E-DCHLogicalChannelInformation Common-E-DCH-LogicalChannelInformation,
+ iE-Extensions ProtocolExtensionContainer { { Common-EDCH-MAC-d-Flow-Specific-InformationFDDItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-EDCH-MAC-d-Flow-Specific-InformationFDDItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Common-EDCH-MAC-d-Flow-Specific-InformationLCR ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlowsLCR)) OF Common-EDCH-MAC-d-Flow-Specific-InformationItemLCR
+
+Common-EDCH-MAC-d-Flow-Specific-InformationItemLCR ::= SEQUENCE {
+ common-EDCH-MACdFlow-ID-LCR EDCH-MACdFlow-ID-LCR,
+ maximum-Number-of-Retransmissions-For-E-DCH MaxNr-Retransmissions-EDCH,
+ eDCH-HARQ-PO-TDD E-DCH-HARQ-PO-TDD,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ common-E-DCHLogicalChannelInformation Common-E-DCH-LogicalChannelInformation,
+ iE-Extensions ProtocolExtensionContainer { { Common-EDCH-MAC-d-Flow-Specific-InformationItemLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-EDCH-MAC-d-Flow-Specific-InformationItemLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-E-DCH-LogicalChannelInformation ::= SEQUENCE (SIZE (1..maxNoOfLogicalChannels)) OF Common-E-DCH-LogicalChannelInformationItem
+
+Common-E-DCH-LogicalChannelInformationItem ::= SEQUENCE {
+ logicalChannelId LogicalChannelID,
+ maximumMACdPDU-SizeExtended MAC-PDU-SizeExtended,
+ iE-Extensions ProtocolExtensionContainer { { Common-E-DCH-LogicalChannelInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Common-E-DCH-LogicalChannelInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Common-EDCH-Support-Indicator ::= NULL
+
+Continuous-Packet-Connectivity-DTX-DRX-Information ::= SEQUENCE {
+ uE-DTX-DRX-Offset UE-DTX-DRX-Offset,
+ enabling-Delay Enabling-Delay,
+ dTX-Information DTX-Information,
+ dRX-Information DRX-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Continuous-Packet-Connectivity-DTX-DRX-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Continuous-Packet-Connectivity-DTX-DRX-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Continuous-Packet-Connectivity-DTX-DRX-Information-to-Modify ::= SEQUENCE {
+ uE-DTX-DRX-Offset UE-DTX-DRX-Offset OPTIONAL,
+ enabling-Delay Enabling-Delay OPTIONAL,
+ dTX-Information-to-Modify DTX-Information-to-Modify OPTIONAL,
+ dRX-Information-to-Modify DRX-Information-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Continuous-Packet-Connectivity-DTX-DRX-Information-to-Modify-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Continuous-Packet-Connectivity-DTX-DRX-Information-to-Modify-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Continuous-Packet-Connectivity-HS-SCCH-Less-Information ::= SEQUENCE (SIZE (1..maxNrOfHS-DSCHTBSs-HS-SCCHless)) OF Continuous-Packet-Connectivity-HS-SCCH-Less-InformationItem
+
+Continuous-Packet-Connectivity-HS-SCCH-Less-InformationItem ::= SEQUENCE {
+ transport-Block-Size-Index Transport-Block-Size-Index,
+ hSPDSCH-Second-Code-Support HSPDSCH-Second-Code-Support,
+ iE-Extensions ProtocolExtensionContainer { { Continuous-Packet-Connectivity-HS-SCCH-Less-InformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Continuous-Packet-Connectivity-HS-SCCH-Less-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response ::= SEQUENCE {
+ hSPDSCH-First-Code-Index HSPDSCH-First-Code-Index,
+ hSPDSCH-Second-Code-Index HSPDSCH-Second-Code-Index OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CorrespondingCells ::= SEQUENCE (SIZE (1..maxNrOfCellsPerFreq)) OF C-ID
+
+
+CoverageIndicator ::= ENUMERATED {
+ overlap,
+ covers,
+ containedIn,
+ ...
+}
+
+
+
+CPC-Information ::= SEQUENCE {
+ continuous-Packet-Connectivity-DTX-DRX-Information Continuous-Packet-Connectivity-DTX-DRX-Information OPTIONAL,
+ continuous-Packet-Connectivity-DTX-DRX-Information-to-Modify Continuous-Packet-Connectivity-DTX-DRX-Information-to-Modify OPTIONAL,
+ continuous-Packet-Connectivity-HS-SCCH-Less-Information Continuous-Packet-Connectivity-HS-SCCH-Less-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPC-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPC-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-Continuous-Packet-Connectivity-HS-SCCH-Less-Deactivate-Indicator CRITICALITY reject EXTENSION Continuous-Packet-Connectivity-HS-SCCH-less-Deactivate-Indicator PRESENCE optional},
+ ...
+}
+
+Continuous-Packet-Connectivity-HS-SCCH-less-Deactivate-Indicator ::= NULL
+
+Counting-Information ::= SEQUENCE ( SIZE (1..maxNrOfFDDNeighboursPerRNC,...)) OF Counting-Information-List
+
+Counting-Information-List ::= SEQUENCE {
+ c-ID C-ID,
+ counting-Result Counting-Result,
+ iE-Extensions ProtocolExtensionContainer { { Counting-Information-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Counting-Information-List-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Counting-Result ::= INTEGER (0..63)
+
+
+CRC-Size ::= ENUMERATED {
+ v0,
+ v8,
+ v12,
+ v16,
+ v24,
+ ...
+}
+
+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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional }|
+{ 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CN-CS-DomainIdentifier ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {CN-CS-DomainIdentifier-ExtIEs} } OPTIONAL
+}
+
+CN-CS-DomainIdentifier-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CN-PS-DomainIdentifier ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ lAC LAC,
+ rAC RAC,
+ iE-Extensions ProtocolExtensionContainer { {CN-PS-DomainIdentifier-ExtIEs} } OPTIONAL
+}
+
+CN-PS-DomainIdentifier-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CNDomainType ::= ENUMERATED {
+ cs-domain,
+ ps-domain,
+ i-care,
+ ...
+}
+-- See in [16]
+
+CQI-DTX-Timer ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128, v256, v512, infinity}
+ -- Unit subframe
+
+ControlGAP ::= INTEGER (1..255)
+
+CQI-Feedback-Cycle ::= ENUMERATED {v0, v2, v4, v8, v10, v20, v40, v80, v160,..., v16, v32, v64}
+
+CQI-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [21] subclause 4.2.1
+
+CQI-RepetitionFactor ::= INTEGER (1..4,...)
+-- Step: 1
+
+C-RNTI ::= INTEGER (0..65535)
+
+CodeRate ::= INTEGER (0..63)
+
+CodeRate-short ::= INTEGER (0..10)
+
+CPC-InformationLCR ::= SEQUENCE {
+ continuousPacketConnectivity-DRX-InformationLCR ContinuousPacketConnectivity-DRX-InformationLCR OPTIONAL,
+ continuousPacketConnectivity-DRX-Information-to-Modify-LCR ContinuousPacketConnectivity-DRX-Information-to-Modify-LCR OPTIONAL,
+ hS-DSCH-Semi-PersistentScheduling-Information-LCR HS-DSCH-Semi-PersistentScheduling-Information-LCR OPTIONAL,
+ hS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR HS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR OPTIONAL,
+ hS-DSCH-SPS-Deactivate-Indicator-LCR NULL OPTIONAL,
+ e-DCH-Semi-PersistentScheduling-Information-LCR E-DCH-Semi-PersistentScheduling-Information-LCR OPTIONAL,
+ e-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR E-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR OPTIONAL,
+ e-DCH-SPS-Deactivate-Indicator-LCR NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPC-InformationLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPC-InformationLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-InformationLCR ::= SEQUENCE {
+ enabling-Delay Enabling-Delay,
+ hS-SCCH-DRX-Information-LCR HS-SCCH-DRX-Information-LCR,
+ e-AGCH-DRX-Information-LCR E-AGCH-DRX-Information-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivity-DRX-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-InformationLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-DRX-Information-LCR ::= SEQUENCE {
+ hS-SCCH-UE-DRX-Cycle-LCR UE-DRX-Cycle-LCR,
+ hS-SCCH-Inactivity-Threshold-for-UE-DRX-Cycle-LCR Inactivity-Threshold-for-UE-DRX-Cycle-LCR OPTIONAL,
+ hS-SCCH-UE-DRX-Offset-LCR UE-DRX-Offset-LCR,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-DRX-Information-LCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-DRX-Information-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-DRX-Information-LCR ::= CHOICE {
+ sameAsHS-SCCH NULL,
+ e-AGCH-DRX-Parameters E-AGCH-DRX-Parameters,
+ ...
+}
+
+E-AGCH-DRX-Parameters ::= SEQUENCE {
+ e-AGCH-UE-DRX-Cycle-LCR UE-DRX-Cycle-LCR,
+ e-AGCH-UE-Inactivity-Monitor-Threshold E-AGCH-UE-Inactivity-Monitor-Threshold OPTIONAL,
+ e-AGCH-UE-DRX-Offset-LCR UE-DRX-Offset-LCR,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-DRX-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-DRX-Parameters-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-DRX-Cycle-LCR ::= ENUMERATED {v1, v2, v4, v8, v16, v32, v64,...}
+ -- Unit subframe
+
+UE-DRX-Offset-LCR ::= INTEGER (0..63)
+ -- Unit subframe
+
+Inactivity-Threshold-for-UE-DRX-Cycle-LCR ::= ENUMERATED {v1, v2, v4, v8, v16, v32, v64,...}
+ -- Unit subframe
+
+E-AGCH-UE-Inactivity-Monitor-Threshold ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128, v256, v512, infinity,...}
+ -- Unit subframe
+
+ContinuousPacketConnectivity-DRX-Information-to-Modify-LCR ::= SEQUENCE {
+ enabling-Delay Enabling-Delay OPTIONAL,
+ dRX-Information-to-Modify-LCR DRX-Information-to-Modify-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivity-DRX-Information-to-Modify-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-Information-to-Modify-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRX-Information-to-Modify-LCR ::= CHOICE {
+ modify DRX-Information-to-Modify-Items-LCR,
+ deactivate NULL,
+ ...
+}
+
+DRX-Information-to-Modify-Items-LCR ::= SEQUENCE {
+ hS-SCCH-DRX-Information-LCR HS-SCCH-DRX-Information-LCR OPTIONAL,
+ e-AGCH-DRX-Information-LCR E-AGCH-DRX-Information-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DRX-Information-to-Modify-Items-LCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRX-Information-to-Modify-Items-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-Information-ResponseLCR ::= SEQUENCE {
+ enabling-Delay Enabling-Delay OPTIONAL,
+ hS-SCCH-DRX-Information-ResponseLCR HS-SCCH-DRX-Information-ResponseLCR OPTIONAL,
+ e-AGCH-DRX-Information-ResponseLCR E-AGCH-DRX-Information-ResponseLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ContinuousPacketConnectivity-DRX-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ContinuousPacketConnectivity-DRX-Information-ResponseLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-DRX-Information-ResponseLCR ::= SEQUENCE {
+ hS-SCCH-UE-DRX-Cycle-LCR UE-DRX-Cycle-LCR OPTIONAL,
+ hS-SCCH-Inactivity-Threshold-for-UE-DRX-Cycle-LCR Inactivity-Threshold-for-UE-DRX-Cycle-LCR OPTIONAL,
+ hS-SCCH-UE-DRX-Offset-LCR UE-DRX-Offset-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-DRX-Information-ResponseLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-DRX-Information-ResponseLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-DRX-Information-ResponseLCR ::= CHOICE {
+ sameAsHS-SCCH NULL,
+ e-AGCH-DRX-Parameters-Response E-AGCH-DRX-Parameters-Response,
+ ...
+}
+
+E-AGCH-DRX-Parameters-Response ::= SEQUENCE {
+ e-AGCH-UE-DRX-Cycle-LCR UE-DRX-Cycle-LCR OPTIONAL,
+ e-AGCH-UE-Inactivity-Monitor-Threshold E-AGCH-UE-Inactivity-Monitor-Threshold OPTIONAL,
+ e-AGCH-UE-DRX-Offset-LCR UE-DRX-Offset-LCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-DRX-Parameters-Response-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-AGCH-DRX-Parameters-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- D
+
+DATA-ID ::= INTEGER (0..3)
+
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+DCH-MeasurementOccasion-Information ::= SEQUENCE (SIZE (1.. maxNrOfDCHMeasurementOccasionPatternSequence)) OF DchMeasurementOccasionInformation-Item
+
+DchMeasurementOccasionInformation-Item ::= SEQUENCE {
+ pattern-Sequence-Identifier Pattern-Sequence-Identifier,
+ status-Flag Status-Flag,
+ measurement-Occasion-Pattern-Sequence-parameters Measurement-Occasion-Pattern-Sequence-parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-MeasurementOccasion-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DCH-MeasurementOccasion-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Measurement-Occasion-Pattern-Sequence-parameters ::= SEQUENCE {
+ measurement-Occasion-Pattern-Sequence-parameters-k INTEGER(1..9),
+ measurement-Occasion-Pattern-Sequence-parameters-offset INTEGER(0..511),
+ measurement-Occasion-Pattern-Sequence-parameters-M-Length INTEGER(1..512),
+ measurement-Occasion-Pattern-Sequence-parameters-Timeslot-Bitmap BIT STRING (SIZE (7)),
+ iE-Extensions ProtocolExtensionContainer { { Measurement-Occasion-Pattern-Sequence-parameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Measurement-Occasion-Pattern-Sequence-parameters-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-MeasurementType-Indicator ::= BIT STRING (SIZE (5))
+
+
+DCH-Specific-FDD-InformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-Specific-FDD-Item
+
+DCH-Specific-FDD-Item ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ trCH-SrcStatisticsDescr TrCH-SrcStatisticsDescr,
+ ul-transportFormatSet TransportFormatSet,
+ dl-transportFormatSet TransportFormatSet,
+ ul-BLER BLER,
+ dl-BLER BLER,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ qE-Selector QE-Selector,
+ dRACControl DRACControl,
+ iE-Extensions ProtocolExtensionContainer { {DCH-FDD-SpecificItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-FDD-SpecificItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Guaranteed-Rate-Information CRITICALITY ignore EXTENSION Guaranteed-Rate-Information PRESENCE optional }|
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass PRESENCE mandatory}|
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional },
+ ...
+}
+
+DCH-Indicator-For-E-DCH-HSDPA-Operation ::= ENUMERATED {
+ dch-not-present
+}
+
+DCH-ID ::= INTEGER (0..255)
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Allowed-Rate-Information CRITICALITY ignore EXTENSION Allowed-Rate-Information PRESENCE optional }|
+ { ID id-TransportBearerNotSetupIndicator CRITICALITY ignore EXTENSION TransportBearerNotSetupIndicator PRESENCE optional }, -- FDD only
+ ...
+}
+
+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 RNSAP-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, -- UL CCTrCH in which the DCH is mapped
+ dl-cCTrCH-ID CCTrCH-ID, -- DL CCTrCH in which the DCH is mapped
+ trCH-SrcStatisticsDescr TrCH-SrcStatisticsDescr,
+ ul-transportFormatSet TransportFormatSet,
+ dl-transportFormatSet TransportFormatSet,
+ ul-BLER BLER,
+ dl-BLER BLER,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ qE-Selector QE-Selector OPTIONAL,
+ -- This IE shall be present if DCH is part of set of Co-ordinated DCHs
+ iE-Extensions ProtocolExtensionContainer { {DCH-Specific-TDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Specific-TDD-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Guaranteed-Rate-Information CRITICALITY ignore EXTENSION Guaranteed-Rate-Information PRESENCE optional }|
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass PRESENCE mandatory}|
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional },
+ ...
+}
+
+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,
+ rx-timing-deviation-768,
+ rx-timing-deviation-ext
+
+}
+
+DedicatedMeasurementValue ::= CHOICE {
+ sIR-Value SIR-Value,
+ sIR-ErrorValue SIR-Error-Value,
+ transmittedCodePowerValue Transmitted-Code-Power-Value,
+ rSCP RSCP-Value, -- TDD only
+ rxTimingDeviationValue Rx-Timing-Deviation-Value, -- 3.84Mcps TDD only
+ roundTripTime Round-Trip-Time-Value, -- FDD only
+ ...,
+ extension-DedicatedMeasurementValue Extension-DedicatedMeasurementValue
+}
+
+Extension-DedicatedMeasurementValue ::= ProtocolIE-Single-Container {{ Extension-DedicatedMeasurementValueIE }}
+
+Extension-DedicatedMeasurementValueIE RNSAP-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-Rx-Timing-Deviation-Value-768 CRITICALITY reject TYPE Rx-Timing-Deviation-Value-768 PRESENCE mandatory }|
+ { ID id-Rx-Timing-Deviation-Value-ext CRITICALITY reject TYPE Rx-Timing-Deviation-Value-ext PRESENCE mandatory }|
+ { ID id-Extended-Round-Trip-Time-Value CRITICALITY reject TYPE Extended-Round-Trip-Time-Value PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementValueInformation ::= CHOICE {
+ measurementAvailable DedicatedMeasurementAvailable,
+ measurementnotAvailable DedicatedMeasurementnotAvailable
+}
+
+DedicatedMeasurementAvailable::= SEQUENCE {
+ dedicatedmeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { DedicatedMeasurementAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementAvailableItem-ExtIEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ExtendedPropagationDelay CRITICALITY ignore EXTENSION ExtendedPropagationDelay PRESENCE optional },
+ ...
+}
+
+Deactivate-Info ::= SEQUENCE {
+ deactivation-type Execution-Type,
+ iE-Extensions ProtocolExtensionContainer { { Deactivate-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Deactivate-Info-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Execution-Type ::= CHOICE {
+ synchronised CFN,
+ unsynchronised NULL
+}
+
+DeltaSIR ::= INTEGER (0..30)
+-- Step 0.1 dB, Range 0..3 dB.
+
+DGANSSCorrections ::= SEQUENCE {
+ dGANSS-ReferenceTime INTEGER(0..119),
+ dGANSS-Information SEQUENCE (SIZE (1..maxSgnType)) OF SEQUENCE {
+ gANSS-SignalId GANSS-Signal-ID OPTIONAL,
+ gANSS-StatusHealth GANSS-StatusHealth,
+-- The following IE shall be present if the StatusHealth IE value is not equal to "no data" or "invalid data"
+ dGANSS-SignalInformation SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE {
+ satId INTEGER(0..63),
+ gANSS-iod BIT STRING (SIZE (10)),
+ udre UDRE,
+ ganss-prc INTEGER(-2047..2047),
+ ganss-rrc INTEGER(-127..127),
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-SignalInformationItem-ExtIEs } } OPTIONAL,
+ ...
+ } OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-InformationItem-ExtIEs } } OPTIONAL,
+ ...
+ },
+ ie-Extensions ProtocolExtensionContainer { { DGANSSCorrections-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSSCorrections-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGANSS-Corrections-Req ::= SEQUENCE {
+ dGANSS-Signal-ID BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { DGANSS-Corrections-Req-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGANSS-Corrections-Req-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSS-ID CRITICALITY ignore EXTENSION GANSS-ID PRESENCE optional},
+ ...
+}
+
+DGANSS-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGANSS-SignalInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-DGNSS-ValidityPeriod CRITICALITY ignore EXTENSION DGNSS-ValidityPeriod PRESENCE optional},
+ ...
+}
+
+DGANSSThreshold ::= SEQUENCE {
+ pRCDeviation PRCDeviation,
+ ...
+}
+
+DGNSS-ValidityPeriod ::= SEQUENCE {
+ udreGrowthRate UDREGrowthRate,
+ udreValidityTime UDREValidityTime,
+ iE-Extensions ProtocolExtensionContainer { { DGNSS-ValidityPeriod-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DGNSS-ValidityPeriod-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGPSCorrections ::= SEQUENCE {
+ gPSTOW GPSTOW,
+ gPS-Status-Health GPS-Status-Health,
+ satellite-DGPSCorrections-Information SEQUENCE (SIZE (1..maxNoSat)) OF
+ SEQUENCE {
+ sAT-ID SAT-ID,
+ iode-dgps BIT STRING (SIZE (8)),
+ uDRE UDRE,
+ pRC PRC,
+ range-Correction-Rate Range-Correction-Rate,
+ iE-Extensions ProtocolExtensionContainer { { Satellite-DGPSCorrections-Information-ExtIEs} } OPTIONAL,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { DGPSCorrections-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Satellite-DGPSCorrections-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-DGNSS-ValidityPeriod CRITICALITY ignore EXTENSION DGNSS-ValidityPeriod PRESENCE optional},
+ ...
+}
+
+DGPSCorrections-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGPSThreshold ::= SEQUENCE {
+ pRCDeviation PRCDeviation,
+ iE-Extensions ProtocolExtensionContainer { { DGPSThreshold-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DGPSThreshold-ExtIEs RNSAP-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,
+ closedLoopMode1,
+ not-used-closedLoopMode2,
+ ...
+}
+
+DL-DPCH-SlotFormat ::= INTEGER (0..16,...)
+
+DL-DPCH-TimingAdjustment ::= ENUMERATED {
+ timing-advance,
+ timing-delay
+}
+
+DL-Power ::= INTEGER (-350..150)
+-- Value = DL-Power / 10
+-- Unit dB, Range -35dB .. +15dB, Step 0.1dB
+
+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-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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-PowerBalancing-ActivationIndicator ::= ENUMERATED {
+ dL-PowerBalancing-Activated
+}
+
+DL-PowerBalancing-UpdatedIndicator ::= ENUMERATED {
+ dL-PowerBalancing-Updated
+}
+
+DL-ReferencePowerInformation ::= SEQUENCE {
+ common-DL-ReferencePowerInformation DL-Power OPTIONAL,
+ individual-DL-ReferencePowerInformation DL-ReferencePowerInformationList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-ReferencePowerInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-ReferencePowerInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+D-RNTI ::= INTEGER (0..1048575)
+
+D-RNTI-ReleaseIndication ::= ENUMERATED {
+ release-D-RNTI,
+ not-release-D-RNTI
+}
+
+DL-ScramblingCode ::= INTEGER (0..15)
+
+DL-FrameType ::= ENUMERATED {
+ typeA,
+ typeB,
+ ...
+}
+
+DL-Timeslot-Information ::= SEQUENCE ( SIZE (1..maxNrOfTS)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeslotLCR-Information ::= SEQUENCE (SIZE (1.. maxNrOfDLTsLCR)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ { 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-Timeslot-Information768 ::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF DL-Timeslot-InformationItem768
+
+DL-Timeslot-InformationItem768 ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-Information768 TDD-DL-Code-Information768,
+ iE-Extensions ProtocolExtensionContainer { {DL-Timeslot-InformationItem768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationItem768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeSlot-ISCP-Info ::= SEQUENCE (SIZE (1..maxNrOfDLTs)) OF DL-TimeSlot-ISCP-InfoItem
+
+DL-TimeSlot-ISCP-InfoItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { { DL-TimeSlot-ISCP-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-TimeSlot-ISCP-InfoItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeSlot-ISCP-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDLTsLCR)) OF DL-TimeSlot-ISCP-LCR-InfoItem
+
+DL-TimeSlot-ISCP-LCR-InfoItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { { DL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeslotISCP ::= INTEGER (0..91)
+-- According to mapping in [24]
+
+Downlink-Compressed-Mode-Method ::= ENUMERATED {
+ not-Used-puncturing,
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+DPC-Mode ::= ENUMERATED {
+ mode0,
+ mode1,
+ ...
+}
+
+DPC-Mode-Change-SupportIndicator ::= ENUMERATED {
+dPC-ModeChangeSupported
+}
+
+DPCH-ID ::= INTEGER (0..239)
+
+DPCH-ID768 ::= INTEGER (0..479)
+
+DPCHConstantValue ::= INTEGER (-10..10)
+-- Unit dB, Step 1dB
+
+DRACControl ::= ENUMERATED {
+ not-Used-requested,
+ not-requested
+}
+
+DRXCycleLengthCoefficient ::= INTEGER (3..9)
+-- See in [16]
+
+
+DRX-Information ::= SEQUENCE {
+ uE-DRX-Cycle UE-DRX-Cycle,
+ inactivity-Threshold-for-UE-DRX-Cycle Inactivity-Threshold-for-UE-DRX-Cycle,
+ inactivity-Threshold-for-UE-Grant-Monitoring Inactivity-Threshold-for-UE-Grant-Monitoring,
+ uE-DRX-Grant-Monitoring UE-DRX-Grant-Monitoring,
+ iE-Extensions ProtocolExtensionContainer { {DRX-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRX-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRX-Information-to-Modify ::= CHOICE {
+ modify DRX-Information-to-Modify-Items,
+ deactivate NULL,
+ ...
+}
+
+
+DRX-Information-to-Modify-Items ::= SEQUENCE {
+ uE-DRX-Cycle UE-DRX-Cycle OPTIONAL,
+ inactivity-Threshold-for-UE-DRX-Cycle Inactivity-Threshold-for-UE-DRX-Cycle OPTIONAL,
+ inactivity-Threshold-for-UE-Grant-Monitoring Inactivity-Threshold-for-UE-Grant-Monitoring OPTIONAL,
+ uE-DRX-Grant-Monitoring UE-DRX-Grant-Monitoring OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DRX-Information-to-Modify-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRX-Information-to-Modify-Items-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-RNTI ::= INTEGER (0..65535)
+
+DSCH-FlowControlInformation ::= SEQUENCE (SIZE(1..16)) OF DSCH-FlowControlItem
+
+DSCH-FlowControlItem ::= SEQUENCE {
+ dSCH-SchedulingPriority SchedulingPriorityIndicator,
+ mAC-c-sh-SDU-Lengths MAC-c-sh-SDU-LengthList,
+ iE-Extensions ProtocolExtensionContainer { {DSCH-FlowControlItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-FlowControlItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DSCH-InitialWindowSize CRITICALITY ignore EXTENSION DSCH-InitialWindowSize PRESENCE optional },
+ ...
+}
+
+DSCH-ID ::= INTEGER (0..255)
+
+DSCH-InitialWindowSize ::= INTEGER (1..255)
+-- Number of MAC-c/sh SDUs.
+-- 255 = Unlimited number of MAC-c/sh SDUs
+
+DSCH-TDD-Information ::= SEQUENCE (SIZE (1..maxNoOfDSCHs)) OF DSCH-TDD-InformationItem
+
+DSCH-TDD-InformationItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ dl-ccTrCHID CCTrCH-ID, -- DL CCTrCH in which the DSCH is mapped
+ trChSourceStatisticsDescriptor TrCH-SrcStatisticsDescr,
+ transportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ bLER BLER,
+ iE-Extensions ProtocolExtensionContainer { {DSCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-TDD-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass PRESENCE mandatory}|
+ { 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 },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+DsField ::= BIT STRING (SIZE (8))
+
+
+DTX-Cycle-2ms-Items ::= SEQUENCE {
+ uE-DTX-Cycle1-2ms UE-DTX-Cycle1-2ms,
+ uE-DTX-Cycle2-2ms UE-DTX-Cycle2-2ms,
+ mAC-DTX-Cycle-2ms MAC-DTX-Cycle-2ms,
+ iE-Extensions ProtocolExtensionContainer { { DTX-Cycle-2ms-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Cycle-2ms-Items-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Cycle-2ms-to-Modify-Items ::= SEQUENCE {
+ uE-DTX-Cycle1-2ms UE-DTX-Cycle1-2ms OPTIONAL,
+ uE-DTX-Cycle2-2ms UE-DTX-Cycle2-2ms OPTIONAL,
+ mAC-DTX-Cycle-2ms MAC-DTX-Cycle-2ms OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DTX-Cycle-2ms-to-Modify-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Cycle-2ms-to-Modify-Items-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Cycle-10ms-Items ::= SEQUENCE {
+ uE-DTX-Cycle1-10ms UE-DTX-Cycle1-10ms,
+ uE-DTX-Cycle2-10ms UE-DTX-Cycle2-10ms,
+ mAC-DTX-Cycle-10ms MAC-DTX-Cycle-10ms,
+ iE-Extensions ProtocolExtensionContainer { { DTX-Cycle-10ms-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Cycle-10ms-Items-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Cycle-10ms-to-Modify-Items ::= SEQUENCE {
+ uE-DTX-Cycle1-10ms UE-DTX-Cycle1-10ms OPTIONAL,
+ uE-DTX-Cycle2-10ms UE-DTX-Cycle2-10ms OPTIONAL,
+ mAC-DTX-Cycle-10ms MAC-DTX-Cycle-10ms OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DTX-Cycle-10ms-to-Modify-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Cycle-10ms-to-Modify-Items-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Information ::= SEQUENCE {
+ e-DCH-TTI-Length E-DCH-TTI-Length,
+ inactivity-Threshold-for-UE-DTX-Cycle2 Inactivity-Threshold-for-UE-DTX-Cycle2,
+ uE-DTX-Long-Preamble UE-DTX-Long-Preamble,
+ mAC-Inactivity-Threshold MAC-Inactivity-Threshold ,
+ cQI-DTX-Timer CQI-DTX-Timer,
+ uE-DPCCH-burst1 UE-DPCCH-burst1,
+ uE-DPCCH-burst2 UE-DPCCH-burst2,
+ iE-Extensions ProtocolExtensionContainer { {DTX-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DTX-Information-to-Modify ::= CHOICE {
+ modify DTX-Information-to-Modify-Items,
+ deactivate NULL,
+ ...
+}
+
+
+DTX-Information-to-Modify-Items ::= SEQUENCE {
+ e-DCH-TTI-Length-to-Modify E-DCH-TTI-Length-to-Modify OPTIONAL,
+ inactivity-Threshold-for-UE-DTX-Cycle2 Inactivity-Threshold-for-UE-DTX-Cycle2 OPTIONAL,
+ uE-DTX-Long-Preamble UE-DTX-Long-Preamble OPTIONAL,
+ mAC-Inactivity-Threshold MAC-Inactivity-Threshold OPTIONAL,
+ cQI-DTX-Timer CQI-DTX-Timer OPTIONAL,
+ uE-DPCCH-burst1 UE-DPCCH-burst1 OPTIONAL,
+ uE-DPCCH-burst2 UE-DPCCH-burst2 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DTX-Information-to-Modify-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DTX-Information-to-Modify-Items-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- E
+
+
+EARFCN ::= INTEGER (0..maxEARFCN)
+
+EARFCN-Information ::= CHOICE {
+ fDD EARFCN-FDD,
+ tDD EARFCN,
+ ...
+}
+
+EARFCN-FDD ::= SEQUENCE {
+ uL-EARFCN EARFCN,
+ dL-EARFCN EARFCN
+}
+
+E-AGCH-Table-Choice ::= ENUMERATED{table16B, table16B-1, ...}
+
+ECGI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ e-UTRAN-Cell-ID BIT STRING (SIZE (28)),
+ iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ECGI-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-DDI-Value ::= INTEGER (0..62)
+
+EDCH-FDD-DL-ControlChannelInformation ::= SEQUENCE {
+ eAGCH-ERGCH-EHICH-FDD-ScramblingCode DL-ScramblingCode OPTIONAL,
+ eAGCH-ChannelisationCode FDD-DL-ChannelisationCodeNumber OPTIONAL,
+ primary-e-RNTI E-RNTI OPTIONAL,
+ secondary-e-RNTI E-RNTI OPTIONAL,
+ eRGCH-EHICH-ChannelisationCode FDD-DL-ChannelisationCodeNumber,
+ eRGCH-SignatureSequence ERGCH-SignatureSequence OPTIONAL,
+ eHICH-SignatureSequence EHICH-SignatureSequence OPTIONAL,
+ serving-Grant-Value E-Serving-Grant-Value OPTIONAL,
+ primary-Secondary-Grant-Selector E-Primary-Secondary-Grant-Selector OPTIONAL,
+ e-RGCH-Release-Indicator E-RGCH-Release-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-FDD-DL-ControlChannelInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-FDD-DL-ControlChannelInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-RGCH-E-HICH-ChannelisationCodeValidityIndicator CRITICALITY ignore EXTENSION E-RGCH-E-HICH-ChannelisationCodeValidityIndicator PRESENCE optional }|
+ { ID id-Default-Serving-Grant-in-DTX-Cycle2 CRITICALITY ignore EXTENSION E-Serving-Grant-Value PRESENCE optional },
+ ...
+}
+E-RGCH-E-HICH-ChannelisationCodeValidityIndicator ::= ENUMERATED {
+ e-RGCH-E-HICH-Channelisation-Code-response-not-valid
+}
+
+EDCH-FDD-Information ::= SEQUENCE {
+ eDCH-MACdFlows-Information EDCH-MACdFlows-Information,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ e-DCH-Maximum-Bitrate E-DCH-Maximum-Bitrate OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-Reference-Power-Offset E-DCH-Reference-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-FDD-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-FDD-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-PowerOffset-for-SchedulingInfo CRITICALITY ignore EXTENSION E-DCH-PowerOffset-for-SchedulingInfo PRESENCE optional}|
+ { ID id-SixteenQAM-UL-Operation-Indicator CRITICALITY reject EXTENSION SixteenQAM-UL-Operation-Indicator PRESENCE optional}|
+ { ID id-E-AGCH-Table-Choice CRITICALITY ignore EXTENSION E-AGCH-Table-Choice PRESENCE conditional},
+ -- The IE shall be present if the SixteenQAM UL Operation Indicator IE is set to "Activate"--
+ ...
+}
+
+EDCH-FDD-InformationResponse ::= SEQUENCE {
+ eDCH-MACdFlow-Specific-InformationResponse EDCH-MACdFlow-Specific-InformationResponse,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-FDD-InformationResponse-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-FDD-InformationResponse-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EDCH-MACdFlow-Specific-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF EDCH-MACdFlow-Specific-InformationResponseItem
+
+EDCH-MACdFlow-Specific-InformationResponseItem ::= SEQUENCE {
+ eDCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ hARQ-Process-Allocation-NonSched-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {EDCH-MACdFlow-Specific-InformationResponseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-MACdFlow-Specific-InformationResponseItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportBearerNotSetupIndicator CRITICALITY ignore EXTENSION TransportBearerNotSetupIndicator PRESENCE optional }, -- FDD only
+ ...
+}
+
+EDCH-FDD-Information-To-Modify ::= SEQUENCE {
+ eDCH-MACdFlow-Specific-Information EDCH-MACdFlow-Specific-InfoToModifyList,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ e-DCH-Maximum-Bitrate E-DCH-Maximum-Bitrate OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-Reference-Power-Offset E-DCH-Reference-Power-Offset OPTIONAL,
+ mACeReset-Indicator MACeReset-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-FDD-Information-To-Modify-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-FDD-Information-To-Modify-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-E-DCH-PowerOffset-for-SchedulingInfo CRITICALITY ignore EXTENSION E-DCH-PowerOffset-for-SchedulingInfo PRESENCE optional}|
+{ ID id-SixteenQAM-UL-Operation-Indicator CRITICALITY reject EXTENSION SixteenQAM-UL-Operation-Indicator PRESENCE optional}|
+{ ID id-E-DCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION E-DCH-MACdPDUSizeFormat PRESENCE optional}|
+{ ID id-E-DCH-DL-Control-Channel-Grant-Information CRITICALITY ignore EXTENSION E-DCH-DL-Control-Channel-Grant-Information PRESENCE optional}|
+{ ID id-E-AGCH-Table-Choice CRITICALITY ignore EXTENSION E-AGCH-Table-Choice PRESENCE conditional},
+-- The IE shall be present if the SixteenQAM UL Operation Indicator IE is set to "Activate"--
+...
+}
+E-DCH-FDD-Update-Information ::= SEQUENCE {
+ e-DCH-MACdFlow-Specific-UpdateInformation E-DCH-MACdFlow-Specific-UpdateInformation OPTIONAL,
+ hARQ-Process-Allocation-Scheduled-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-FDD-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-FDD-Update-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-DL-Control-Channel-Change-Information CRITICALITY ignore EXTENSION E-DCH-DL-Control-Channel-Change-Information PRESENCE optional},
+ ...
+}
+
+
+E-DCH-MACdFlow-Specific-UpdateInformation ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-Specific-UpdateInformation-Item
+
+E-DCH-MACdFlow-Specific-UpdateInformation-Item ::= SEQUENCE {
+ e-DCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ hARQ-Process-Allocation-NonSched-2ms-EDCH HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-Specific-UpdateInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-Specific-UpdateInformation-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-DL-Control-Channel-Change-Information ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF E-DCH-DL-Control-Channel-Change-Information-Item
+
+E-DCH-DL-Control-Channel-Change-Information-Item ::= SEQUENCE {
+ e-DCH-RL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-DL-Control-Channel-Change-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-DL-Control-Channel-Change-Information-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-DL-Control-Channel-Grant-Information ::= SEQUENCE (SIZE (1..maxNrOfEDCHRLs)) OF E-DCH-DL-Control-Channel-Grant-Information-Item
+
+E-DCH-DL-Control-Channel-Grant-Information-Item ::= SEQUENCE {
+ e-DCH-RL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-DL-Control-Channel-Grant-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-DL-Control-Channel-Grant-Information-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+E-DCH-Grant-Type-Information ::= CHOICE {
+ e-DCH-Non-Scheduled-Transmission-Grant E-DCH-Non-Scheduled-Transmission-Grant-Items,
+ e-DCH-Scheduled-Transmission-Grant NULL,
+ ...
+}
+
+E-DCH-HARQ-PO-FDD ::= INTEGER (0.. maxNrOfEDCH-HARQ-PO-QUANTSTEPs)
+
+
+E-DCH-LogicalChannelInformation ::= SEQUENCE (SIZE (1..maxNoOfLogicalChannels)) OF E-DCH-LogicalChannelInformationItem
+
+E-DCH-LogicalChannelInformationItem ::= SEQUENCE {
+ logicalChannelId LogicalChannelID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ schedulingInformation SchedulingInformation,
+ mACes-GuaranteedBitRate MACes-Guaranteed-Bitrate OPTIONAL,
+ eDCH-DDI-Value EDCH-DDI-Value,
+ mACd-PDU-Size-List E-DCH-MACdPDU-SizeList,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LogicalChannelInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-LogicalChannelInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional}|
+ { ID id-MACes-Maximum-Bitrate-LCR CRITICALITY ignore EXTENSION MACes-Maximum-Bitrate-LCR PRESENCE optional}| --1.28Mcps TDD only
+ { ID id-UE-AggregateMaximumBitRate-Enforcement-Indicator CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate-Enforcement-Indicator PRESENCE optional},
+ ...
+}
+
+E-DCH-Maximum-Bitrate ::= INTEGER (0..5742,...,5743..11498)
+
+E-DCH-PowerOffset-for-SchedulingInfo ::= INTEGER (0.. maxNrOfEDCH-HARQ-PO-QUANTSTEPs)
+
+E-DCH-Processing-Overload-Level ::= INTEGER (0..10,...)
+
+E-DCH-Reference-Power-Offset ::= INTEGER (0.. maxNrOfEDCH-HARQ-PO-QUANTSTEPs)
+
+E-DCH-MACdPDU-SizeList ::= SEQUENCE (SIZE (1..maxNrOfMACdPDUSize)) OF E-DCH-MACdPDU-SizeListItem
+
+E-DCH-MACdPDU-SizeListItem ::= SEQUENCE {
+ mACdPDU-Size MACdPDU-Size,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdPDU-SizeListItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdPDU-SizeListItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-MACdPDUSizeFormat ::= ENUMERATED {
+ fixedMACdPDU-Size,
+ flexibleMACdPDU-Size
+}
+
+
+
+E-DCH-LogicalChannelToModify ::= SEQUENCE (SIZE (1..maxNoOfLogicalChannels)) OF E-DCH-LogicalChannelToModifyItem
+
+E-DCH-LogicalChannelToModifyItem ::= SEQUENCE {
+ logicalChannelId LogicalChannelID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ schedulingInformation SchedulingInformation OPTIONAL,
+ mACes-GuaranteedBitRate MACes-Guaranteed-Bitrate OPTIONAL,
+ eDCH-DDI-Value EDCH-DDI-Value OPTIONAL,
+ mACd-PDU-Size-List E-DCH-MACdPDU-SizeToModifyList,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LogicalChannelToModifyItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-LogicalChannelToModifyItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional}|
+ { ID id-MACes-Maximum-Bitrate-LCR CRITICALITY ignore EXTENSION MACes-Maximum-Bitrate-LCR PRESENCE optional},--1.28Mcps TDD only
+ ...
+}
+
+E-DCH-MACdPDU-SizeToModifyList ::= SEQUENCE (SIZE (0..maxNrOfMACdPDUSize)) OF E-DCH-MACdPDU-SizeListItem
+
+
+
+E-DCH-LogicalChannelToDelete ::= SEQUENCE (SIZE (1..maxNoOfLogicalChannels)) OF E-DCH-LogicalChannelToDeleteItem
+
+E-DCH-LogicalChannelToDeleteItem ::= SEQUENCE {
+ logicalChannelId LogicalChannelID,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LogicalChannelToDeleteItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-LogicalChannelToDeleteItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LogicalChannelID ::= INTEGER (1..15)
+
+
+
+EDCH-MACdFlow-ID ::= INTEGER (0..maxNrOfEDCHMACdFlows-1)
+EDCH-MACdFlow-ID-LCR ::= INTEGER (0..maxNrOfEDCHMACdFlowsLCR-1)
+
+EDCH-MACdFlows-Information ::= SEQUENCE {
+ eDCH-MACdFlow-Specific-Information EDCH-MACdFlow-Specific-InfoList,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-MACdFlow-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-Multiplexing-List ::= BIT STRING ( SIZE(maxNrOfEDCHMACdFlows) )
+
+EDCH-MACdFlow-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-MACdFlow-Specific-InfoList ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF EDCH-MACdFlow-Specific-InfoItem
+
+EDCH-MACdFlow-Specific-InfoItem ::= SEQUENCE {
+ eDCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ tnlQoS TnlQos OPTIONAL,
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ maxNr-Retransmissions-EDCH MaxNr-Retransmissions-EDCH,
+ trafficClass TrafficClass,
+ eDCH-HARQ-PO-FDD E-DCH-HARQ-PO-FDD,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ eDCH-Grant-Type-Information E-DCH-Grant-Type-Information OPTIONAL,
+ bundlingModeIndicator BundlingModeIndicator OPTIONAL,
+ eDCHLogicalChannelInformation E-DCH-LogicalChannelInformation,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-MACdFlow-Specific-InfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-MACdFlow-Specific-InfoItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TrCH-SrcStatisticsDescr CRITICALITY ignore EXTENSION TrCH-SrcStatisticsDescr PRESENCE optional },
+ ...
+}
+
+EDCH-MACdFlow-Specific-InfoToModifyList ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF EDCH-MACdFlow-Specific-InfoToModifyItem
+
+EDCH-MACdFlow-Specific-InfoToModifyItem ::= SEQUENCE {
+ eDCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ tnlQoS TnlQos OPTIONAL,
+ maxNr-Retransmissions-EDCH MaxNr-Retransmissions-EDCH OPTIONAL,
+ trafficClass TrafficClass OPTIONAL,
+ eDCH-HARQ-PO-FDD E-DCH-HARQ-PO-FDD OPTIONAL,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ eDCH-Grant-Type-Information E-DCH-Grant-Type-Information OPTIONAL,
+ bundlingModeIndicator BundlingModeIndicator OPTIONAL,
+ eDCH-LogicalChannelToAdd E-DCH-LogicalChannelInformation OPTIONAL,
+ eDCH-LogicalChannelToModify E-DCH-LogicalChannelToModify OPTIONAL,
+ eDCH-LogicalChannelToDelete E-DCH-LogicalChannelToDelete OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-MACdFlow-Specific-InfoToModifyItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-MACdFlow-Specific-InfoToModifyItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-MACdFlows-To-Delete ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF EDCH-MACdFlows-To-Delete-Item
+
+EDCH-MACdFlows-To-Delete-Item ::= SEQUENCE {
+ eDCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-MACdFlows-To-Delete-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDCH-MACdFlows-To-Delete-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-RL-Indication ::= ENUMERATED {
+ eDCH,
+ non-EDCH
+}
+
+E-DCH-Non-Scheduled-Transmission-Grant-Items ::= SEQUENCE {
+ -- The following IE shall be ignored if id-Ext-Max-Bits-MACe-PDU-non-scheduled is present in E-DCH-Non-Scheduled-Transmission-Grant-Items-ExtIEs
+ maxBits-MACe-PDU-non-scheduled Max-Bits-MACe-PDU-non-scheduled,
+ hARQ-Process-Allocation-NonSched-2ms HARQ-Process-Allocation-2ms-EDCH OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Non-Scheduled-Transmission-Grant-Items-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-Non-Scheduled-Transmission-Grant-Items-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ -- The following IE shall be present if the maximum number of bits to be signalled exceeds maxNrOfBits-MACe-PDU-non-scheduled
+ { ID id-Ext-Max-Bits-MACe-PDU-non-scheduled CRITICALITY reject EXTENSION Ext-Max-Bits-MACe-PDU-non-scheduled PRESENCE optional},
+ ...
+}
+
+E-DCH-TFCI-Table-Index ::= INTEGER (0..1,...,2..7)
+
+E-DCH-Serving-cell-change-informationResponse ::= SEQUENCE {
+ e-DCH-serving-cell-outcome-choice E-DCH-serving-cell-change-choice,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-serving-cell-change-informationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-serving-cell-change-informationResponse-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-serving-cell-change-choice ::= CHOICE {
+ e-DCH-serving-cell-change-successful E-DCH-serving-cell-change-successful,
+ e-DCH-serving-cell-change-unsuccessful E-DCH-serving-cell-change-unsuccessful,
+ ...
+}
+
+E-DCH-serving-cell-change-successful ::= SEQUENCE {
+ e-DCH-RL-InformationList-Rsp E-DCH-RL-InformationList-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-serving-cell-change-successful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-serving-cell-change-successful-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-RL-InformationList-Rsp ::= SEQUENCE (SIZE (0..maxNrOfRLs)) OF E-DCH-RL-InformationList-Rsp-Item
+
+E-DCH-RL-InformationList-Rsp-Item ::= SEQUENCE {
+ e-DCH-reconfigured-RL-Id RL-ID,
+ e-DCH-FDD-DL-Control-Channel-Info EDCH-FDD-DL-ControlChannelInformation,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-RL-InformationList-Rsp-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-RL-InformationList-Rsp-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+E-DCH-serving-cell-change-unsuccessful ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-serving-cell-change-unsuccessful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-serving-cell-change-unsuccessful-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TTI-Length ::= CHOICE {
+ two-ms DTX-Cycle-2ms-Items,
+ ten-ms DTX-Cycle-10ms-Items,
+ ...
+}
+
+E-DCH-TTI-Length-to-Modify ::= CHOICE {
+ two-ms DTX-Cycle-2ms-to-Modify-Items,
+ ten-ms DTX-Cycle-10ms-to-Modify-Items,
+ ...
+}
+
+EDPCH-Information-FDD ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs,
+ punctureLimit PunctureLimit,
+ e-TFCS-Information E-TFCS-Information,
+ e-TTI E-TTI,
+ e-DPCCH-PO E-DPCCH-PO,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH,
+ hSDSCH-Configured-Indicator HSDSCH-Configured-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { EDPCH-Information-FDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDPCH-Information-FDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MinimumReducedE-DPDCH-GainFactor CRITICALITY ignore EXTENSION MinimumReducedE-DPDCH-GainFactor PRESENCE optional },
+ ...
+}
+
+EDPCH-Information-RLReconfPrepare-FDD ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ e-TFCS-Information E-TFCS-Information OPTIONAL,
+ e-TTI E-TTI OPTIONAL,
+ e-DPCCH-PO E-DPCCH-PO OPTIONAL,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold OPTIONAL,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold OPTIONAL,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH OPTIONAL,
+ hSDSCH-Configured-Indicator HSDSCH-Configured-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDPCH-Information-RLReconfPrepare-FDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDPCH-Information-RLReconfPrepare-FDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MinimumReducedE-DPDCH-GainFactor CRITICALITY ignore EXTENSION MinimumReducedE-DPDCH-GainFactor PRESENCE optional },
+ ...
+}
+
+EDPCH-Information-RLReconfRequest-FDD ::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ e-TFCS-Information E-TFCS-Information OPTIONAL,
+ e-TTI E-TTI OPTIONAL,
+ e-DPCCH-PO E-DPCCH-PO OPTIONAL,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold OPTIONAL,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold OPTIONAL,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH OPTIONAL,
+ hSDSCH-Configured-Indicator HSDSCH-Configured-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EDPCH-Information-RLReconfRequest-FDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EDPCH-Information-RLReconfRequest-FDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MinimumReducedE-DPDCH-GainFactor CRITICALITY ignore EXTENSION MinimumReducedE-DPDCH-GainFactor PRESENCE optional },
+ ...
+}
+
+E-DPCCH-PO ::= INTEGER (0..maxNrOfEDPCCH-PO-QUANTSTEPs)
+
+E-DPDCH-PowerInterpolation ::= BOOLEAN
+
+E-Primary-Secondary-Grant-Selector ::= ENUMERATED {
+ primary,
+ secondary
+}
+
+EHICH-SignatureSequence ::= INTEGER (0..maxNrofSigSeqERGHICH-1)
+
+
+E-RGCH-Release-Indicator ::= ENUMERATED {e-RGCHreleased}
+
+ERGCH-SignatureSequence ::= INTEGER (0..maxNrofSigSeqERGHICH-1)
+
+E-Serving-Grant-Value ::= INTEGER (0..38)
+
+E-RGCH-2-IndexStepThreshold ::= INTEGER (0..37)
+
+E-RGCH-3-IndexStepThreshold ::= INTEGER (0..37)
+
+
+EDCH-Serving-RL ::= CHOICE {
+ e-DCH-Serving-RL-in-this-DRNS EDCH-Serving-RL-in-this-DRNS,
+ e-DCH-Serving-RL-not-in-this-DRNS NULL,
+ ...
+}
+
+EDCH-Serving-RL-in-this-DRNS ::= SEQUENCE {
+ e-DCH-Serving-RL-Id RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-Serving-RL-in-this-DRNS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-Serving-RL-in-this-DRNS-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Enhanced-FACH-Information-ResponseFDD ::= SEQUENCE {
+ common-HS-DSCH-RNTI-priorityQueueInfo-EnhancedFACH PriorityQueue-InfoList-EnhancedFACH-PCH,
+ dedicated-HS-DSCH-RNTI-priorityQueueInfo-EnhancedFACH PriorityQueue-InfoList-EnhancedFACH-PCH,
+ priorityQueueInfo-EnhancedPCH PriorityQueue-InfoList-EnhancedFACH-PCH OPTIONAL,
+ hSDSCH-Initial-Capacity-Allocation HSDSCH-Initial-Capacity-Allocation,
+ hSDSCH-RNTI HSDSCH-RNTI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Enhanced-FACH-Information-ResponseFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Enhanced-FACH-Information-ResponseFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Enhanced-FACH-Information-ResponseLCR ::= SEQUENCE {
+ common-HS-DSCH-RNTI-priorityQueueInfo-EnhancedFACH PriorityQueue-InfoList-EnhancedFACH-PCH,
+ dedicated-HS-DSCH-RNTI-priorityQueueInfo-EnhancedFACH PriorityQueue-InfoList-EnhancedFACH-PCH,
+ priorityQueueInfo-EnhancedPCH PriorityQueue-InfoList-EnhancedFACH-PCH OPTIONAL,
+ hSDSCH-Initial-Capacity-Allocation HSDSCH-Initial-Capacity-Allocation,
+ hSDSCH-RNTI HSDSCH-RNTI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Enhanced-FACH-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Enhanced-FACH-Information-ResponseLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Enhanced-FACH-Support-Indicator ::= NULL
+
+EnhancedHSServingCC-Abort ::= ENUMERATED {abortEnhancedHSServingCC,...}
+
+
+Enhanced-PCH-Capability ::= ENUMERATED {
+ enhanced-pch-capable,
+ enhanced-pch-not-capable
+}
+
+
+E-RNTI ::= INTEGER (0..65535)
+
+E-TFCI ::= INTEGER (0..127)
+
+E-TFCI-BetaEC-Boost ::= INTEGER (0..127,...)
+
+
+E-TFCI-Boost-Information ::= SEQUENCE {
+ e-TFCI-BetaEC-Boost E-TFCI-BetaEC-Boost,
+ uL-Delta-T2TP UL-Delta-T2TP OPTIONAL,
+ -- This IE shall be present if the E-TFCI BetaEC Boost IE value is not set to 127.
+ iE-Extensions ProtocolExtensionContainer { { E-TFCI-Boost-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-TFCI-Boost-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-TFCS-Information ::= SEQUENCE {
+ e-DCH-TFCI-Table-Index E-DCH-TFCI-Table-Index,
+ e-DCH-Min-Set-E-TFCI E-TFCI,
+ reference-E-TFCI-Information Reference-E-TFCI-Information,
+ iE-Extensions ProtocolExtensionContainer { {E-TFCS-Information-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+E-TFCS-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-Minimum-Set-E-TFCIValidityIndicator CRITICALITY reject EXTENSION E-DCH-Minimum-Set-E-TFCIValidityIndicator PRESENCE optional }|
+ { ID id-E-TFCI-Boost-Information CRITICALITY reject EXTENSION E-TFCI-Boost-Information PRESENCE optional }|
+ { ID id-E-DPDCH-PowerInterpolation CRITICALITY reject EXTENSION E-DPDCH-PowerInterpolation PRESENCE optional },
+ ...
+}
+
+E-DCH-Minimum-Set-E-TFCIValidityIndicator ::= ENUMERATED {
+ e-DCH-Minimum-Set-E-TFCI-response-not-valid
+}
+
+E-TTI ::= ENUMERATED {
+ tti10,
+ tti2
+-- 10ms TTI, 2ms TTI
+}
+
+E-AGCH-PowerOffset ::= INTEGER (0..255,...)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+E-RGCH-PowerOffset ::= INTEGER (0..255,...)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+E-HICH-PowerOffset ::= INTEGER (0..255,...)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+Enhanced-PrimaryCPICH-EcNo ::= INTEGER (0..49)
+
+EventA ::= SEQUENCE {
+ measurementTreshold MeasurementThreshold,
+ measurementHysteresisTime MeasurementHysteresisTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {EventA-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EventA-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EventB ::= SEQUENCE {
+ measurementTreshold MeasurementThreshold,
+ measurementHysteresisTime MeasurementHysteresisTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {EventB-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EventB-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EventC ::= SEQUENCE {
+ measurementIncreaseDecreaseThreshold MeasurementIncreaseDecreaseThreshold,
+ measurementChangeTime MeasurementChangeTime,
+ iE-Extensions ProtocolExtensionContainer { {EventC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EventC-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EventD ::= SEQUENCE {
+ measurementIncreaseDecreaseThreshold MeasurementIncreaseDecreaseThreshold,
+ measurementChangeTime MeasurementChangeTime,
+ iE-Extensions ProtocolExtensionContainer { {EventD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EventD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EventE ::= SEQUENCE {
+ measurementThreshold1 MeasurementThreshold,
+ measurementThreshold2 MeasurementThreshold OPTIONAL,
+ measurementHysteresisTime MeasurementHysteresisTime OPTIONAL,
+ reportPeriodicity ReportPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {EventE-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EventE-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EventF ::= SEQUENCE {
+ measurementThreshold1 MeasurementThreshold,
+ measurementThreshold2 MeasurementThreshold OPTIONAL,
+ measurementHysteresisTime MeasurementHysteresisTime OPTIONAL,
+ reportPeriodicity ReportPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {EventF-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EventF-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExtendedGSMCellIndividualOffset ::= INTEGER (-50..-11|11..50)
+
+E-DCH-Information ::= SEQUENCE {
+ e-PUCH-Information E-PUCH-Information,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD,
+ e-DCH-MACdFlows-Information-TDD E-DCH-MACdFlows-Information-TDD,
+ e-DCH-TDD-Information E-DCH-TDD-Information,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-PUCH-Information ::= SEQUENCE {
+ minCR CodeRate,
+ maxCR CodeRate,
+ harqInfo HARQ-Info-for-E-DCH,
+ n-E-UCCH N-E-UCCH,
+ iE-Extensions ProtocolExtensionContainer { { E-PUCH-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-PUCH-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-TFCS-Information-TDD ::= SEQUENCE {
+ e-DCH-QPSK-RefBetaInfo E-DCH-QPSK-RefBetaInfo,
+ e-DCH-sixteenQAM-RefBetaInfo E-DCH-sixteenQAM-RefBetaInfo,
+ iE-Extensions ProtocolExtensionContainer { { E-TFCS-Information-TDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-TFCS-Information-TDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-QPSK-RefBetaInfo ::= SEQUENCE (SIZE (1..maxNrOfRefBetas)) OF E-DCH-RefBeta-Item
+
+E-DCH-sixteenQAM-RefBetaInfo ::= SEQUENCE (SIZE (1..maxNrOfRefBetas)) OF E-DCH-RefBeta-Item
+
+E-DCH-RefBeta-Item ::= SEQUENCE {
+ refCodeRate CodeRate-short,
+ refBeta RefBeta
+}
+
+E-DCH-MACdFlows-Information-TDD ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-InfoTDDItem
+
+E-DCH-MACdFlow-InfoTDDItem ::= SEQUENCE {
+ e-DCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority,
+ tnlQos TnlQos OPTIONAL,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ maximum-Number-of-Retransmissions-For-E-DCH MaxNr-Retransmissions-EDCH,
+ eDCH-HARQ-PO-TDD E-DCH-HARQ-PO-TDD,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ eDCH-Grant-TypeTDD E-DCH-Grant-TypeTDD,
+ eDCHLogicalChannelInformation E-DCH-LogicalChannelInformation,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-MACdFlow-InfoTDDItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-InfoTDDItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-eDCH-MACdFlow-Retransmission-Timer-LCR CRITICALITY ignore EXTENSION E-DCH-MACdFlow-Retransmission-Timer-LCR PRESENCE optional }|
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass PRESENCE mandatory},
+ ...
+}
+
+
+E-DCH-MACdFlow-Retransmission-Timer-LCR ::= ENUMERATED {
+ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90,
+ms95, ms100, ms110, ms120, ms140, ms160, ms200, ms240, ms280, ms320, ms400, ms480, ms560,...
+}
+
+E-DCH-HARQ-PO-TDD ::= INTEGER (0..6)
+
+E-DCH-Grant-TypeTDD ::= ENUMERATED {
+ scheduled,
+ non-scheduled
+}
+
+E-DCH-TimeslotResource ::= BIT STRING (SIZE (13))
+
+E-DCH-PowerResource ::= INTEGER(1..32)
+
+TddE-PUCH-Offset ::= INTEGER(0..255)
+
+E-DCH-TDD-Information ::= SEQUENCE {
+ e-DCH-TDD-Maximum-Bitrate E-DCH-TDD-Maximum-Bitrate OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-PowerOffset-for-SchedulingInfo E-DCH-PowerOffset-for-SchedulingInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-Maximum-Bitrate ::= INTEGER (0..9201,...)
+
+E-DCH-Information-Reconfig ::= SEQUENCE {
+ e-PUCH-Information E-PUCH-Information OPTIONAL,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Add E-DCH-MACdFlows-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Delete EDCH-MACdFlows-To-Delete OPTIONAL,
+ e-DCH-Non-Scheduled-Grant-Info E-DCH-Non-Scheduled-Grant-Info OPTIONAL,
+ e-DCH-TDD-Information E-DCH-TDD-Information OPTIONAL,
+ e-DCH-TDD-Information-to-Modify E-DCH-TDD-Information-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-Reconfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-Reconfig-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-Information-to-Modify ::= SEQUENCE {
+ e-DCH-TDD-Information-to-Modify-List E-DCH-TDD-Information-to-Modify-List OPTIONAL,
+ mACeReset-Indicator MACeReset-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-Information-to-Modify-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-Information-to-Modify-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION E-DCH-MACdPDUSizeFormat PRESENCE optional},
+ ...
+}
+E-DCH-TDD-Information-to-Modify-List ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-MACdFlow-ModifyTDDItem
+
+E-DCH-MACdFlow-ModifyTDDItem ::= SEQUENCE {
+ e-DCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ tnlQos TnlQos OPTIONAL,
+ maximum-Number-of-Retransmissions-For-E-DCH MaxNr-Retransmissions-EDCH OPTIONAL,
+ eDCH-HARQ-PO-TDD E-DCH-HARQ-PO-TDD OPTIONAL,
+ eDCH-MACdFlow-Multiplexing-List E-DCH-MACdFlow-Multiplexing-List OPTIONAL,
+ eDCH-Grant-TypeTDD E-DCH-Grant-TypeTDD OPTIONAL,
+ e-DCH-LogicalChannelToAdd E-DCH-LogicalChannelInformation OPTIONAL,
+ e-DCH-LogicalChannelToModify E-DCH-LogicalChannelToModify OPTIONAL,
+ e-DCH-LogicalChannelToDelete E-DCH-LogicalChannelToDelete OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-DCH-MACdFlow-ModifyTDDItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-MACdFlow-ModifyTDDItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-eDCH-MACdFlow-Retransmission-Timer-LCR CRITICALITY ignore EXTENSION E-DCH-MACdFlow-Retransmission-Timer-LCR PRESENCE optional }|
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass PRESENCE optional},
+ ...
+}
+
+E-DCH-Information-Response ::= SEQUENCE {
+ e-DCH-TDD-MACdFlow-Specific-InformationResp E-DCH-TDD-MACdFlow-Specific-InformationResp OPTIONAL,
+ e-AGCH-Specific-Information-ResponseTDD E-AGCH-Specific-InformationRespListTDD OPTIONAL,
+ e-HICH-Information-Response E-HICH-InformationResp OPTIONAL,
+ e-DCH-Non-Scheduled-Grant-Info E-DCH-Non-Scheduled-Grant-Info OPTIONAL,
+ e-RNTI E-RNTI,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-MACdFlow-Specific-InformationResp ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF E-DCH-TDD-MACdFlow-Specific-InformationResp-Item
+
+E-DCH-TDD-MACdFlow-Specific-InformationResp-Item ::= SEQUENCE {
+ e-DCH-MacdFlow-Id EDCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-MACdFlow-Specific-InformationRespItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-MACdFlow-Specific-InformationRespItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-Specific-InformationRespListTDD ::= SEQUENCE (SIZE (1..maxNrOfEAGCHCodes)) OF E-AGCH-Specific-InformationResp-ItemTDD
+
+E-AGCH-Specific-InformationResp-ItemTDD ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-Specific-InformationResp-ItemTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-AGCH-Specific-InformationResp-ItemTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-InformationResp::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ e-HICH-TimeOffset E-HICH-TimeOffset,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-InformationResp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-HICH-InformationResp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-TimeOffset ::= INTEGER (4..44)
+
+E-DCH-Non-Scheduled-Grant-Info ::= SEQUENCE {
+ timeslotResource E-DCH-TimeslotResource,
+ powerResource E-DCH-PowerResource,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tddE-PUCH-Offset TddE-PUCH-Offset,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Non-Scheduled-Grant-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-Info-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+E-DCH-768-Information ::= SEQUENCE {
+ e-PUCH-Information E-PUCH-Information,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD,
+ e-DCH-MACdFlows-Information-TDD E-DCH-MACdFlows-Information-TDD,
+ e-DCH-TDD-Information768 E-DCH-TDD-Information768,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-768-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-768-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-Information768 ::= SEQUENCE {
+ e-DCH-TDD-Maximum-Bitrate768 E-DCH-TDD-Maximum-Bitrate768 OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-PowerOffset-for-SchedulingInfo E-DCH-PowerOffset-for-SchedulingInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-TDD-Information768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-TDD-Information768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-TDD-Maximum-Bitrate768 ::= INTEGER (0..17713,...)
+
+E-DCH-768-Information-Reconfig ::= SEQUENCE {
+ e-PUCH-Information E-PUCH-Information OPTIONAL,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Add E-DCH-MACdFlows-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Delete EDCH-MACdFlows-To-Delete OPTIONAL,
+ e-DCH-Non-Scheduled-Grant-Info768 E-DCH-Non-Scheduled-Grant-Info768 OPTIONAL,
+ e-DCH-TDD-Information768 E-DCH-TDD-Information768 OPTIONAL,
+ e-DCH-TDD-Information-to-Modify E-DCH-TDD-Information-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-768-Information-Reconfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-768-Information-Reconfig-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+E-DCH-768-Information-Response ::= SEQUENCE {
+ e-DCH-TDD-MACdFlow-Specific-InformationResp E-DCH-TDD-MACdFlow-Specific-InformationResp OPTIONAL,
+ e-AGCH-Specific-Information-Response768TDD E-AGCH-Specific-InformationRespList768TDD OPTIONAL,
+ e-HICH-Information-Response768 E-HICH-InformationResp768 OPTIONAL,
+ e-DCH-Non-Scheduled-Grant-Info768 E-DCH-Non-Scheduled-Grant-Info768 OPTIONAL,
+ e-RNTI E-RNTI,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-768-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-768-Information-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-Specific-InformationRespList768TDD ::= SEQUENCE (SIZE (1..maxNrOfEAGCHCodes)) OF E-AGCH-Specific-InformationResp-Item768TDD
+
+E-AGCH-Specific-InformationResp-Item768TDD ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-Specific-InformationResp-Item768TDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-AGCH-Specific-InformationResp-Item768TDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-InformationResp768::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ e-HICH-TimeOffset E-HICH-TimeOffset,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-InformationResp768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-HICH-InformationResp768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-Info768 ::= SEQUENCE {
+ timeslotResource E-DCH-TimeslotResource,
+ powerResource E-DCH-PowerResource,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tddE-PUCH-Offset TddE-PUCH-Offset,
+ tdd-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Non-Scheduled-Grant-Info768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-Info768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-LCR-Information ::= SEQUENCE {
+ e-PUCH-LCR-Information E-PUCH-LCR-Information,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD,
+ e-DCH-MACdFlows-Information-TDD E-DCH-MACdFlows-Information-TDD,
+ e-DCH-LCR-TDD-Information E-DCH-LCR-TDD-Information,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-LCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-PUCH-LCR-Information ::= SEQUENCE {
+ minCR CodeRate,
+ maxCR CodeRate,
+ harqInfo HARQ-Info-for-E-DCH,
+ pRxdesBase E-PUCH-PRXdesBase,
+ e-PUCH-TPC-Step-Size TDD-TPC-UplinkStepSize-LCR,
+ n-E-UCCH-LCR N-E-UCCH-LCR,
+ iE-Extensions ProtocolExtensionContainer { { E-PUCH-Information-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-PUCH-Information-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-PUCH-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional },
+ ...
+}
+
+E-PUCH-PRXdesBase ::= INTEGER(-112..-50)
+--SETP=1
+
+E-DCH-LCR-TDD-Information ::= SEQUENCE {
+ e-DCH-Physical-Layer-Category-LCR E-DCH-Physical-Layer-Category-LCR OPTIONAL,
+ e-DCH-Processing-Overload-Level E-DCH-Processing-Overload-Level OPTIONAL,
+ e-DCH-PowerOffset-for-SchedulingInfo E-DCH-PowerOffset-for-SchedulingInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-LCR-TDD-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-LCR-TDD-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-E-DCH-LCRTDD-PhysicalLayerCategory CRITICALITY reject EXTENSION Extended-E-DCH-LCRTDD-PhysicalLayerCategory PRESENCE optional }|
+ -- This IE shall be used if the E-DCH Physical Layer Category has a value larger than 5.
+ { ID id-MaximumNumber-Of-Retransmission-For-SchedulingInfo-LCRTDD CRITICALITY ignore EXTENSION MaxNr-Retransmissions-EDCH PRESENCE optional }|
+ { ID id-E-DCH-RetransmissionTimer-For-SchedulingInfo-LCRTDD CRITICALITY ignore EXTENSION E-DCH-MACdFlow-Retransmission-Timer-LCR PRESENCE optional }|
+ { ID id-E-AGCH-UE-Inactivity-Monitor-Threshold CRITICALITY ignore EXTENSION E-AGCH-UE-Inactivity-Monitor-Threshold PRESENCE optional },
+ ...
+}
+
+E-DCH-Physical-Layer-Category-LCR ::= INTEGER (1..5)
+
+Extended-E-DCH-LCRTDD-PhysicalLayerCategory ::= INTEGER (6,...)
+
+E-DCH-LCR-Information-Reconfig ::= SEQUENCE {
+ e-PUCH-LCR-Information E-PUCH-LCR-Information OPTIONAL,
+ e-TFCS-Information-TDD E-TFCS-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Add E-DCH-MACdFlows-Information-TDD OPTIONAL,
+ e-DCH-MACdFlows-to-Delete EDCH-MACdFlows-To-Delete OPTIONAL,
+ e-DCH-LCR-TDD-Information E-DCH-LCR-TDD-Information OPTIONAL,
+ e-DCH-TDD-Information-to-Modify E-DCH-TDD-Information-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-Reconfig-LCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-Reconfig-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-LCR-Information-Response ::= SEQUENCE {
+ e-DCH-TDD-MACdFlow-Specific-InformationResp E-DCH-TDD-MACdFlow-Specific-InformationResp OPTIONAL,
+ e-AGCH-Specific-Information-Response-LCR-TDD E-AGCH-Specific-InformationRespList-LCR-TDD OPTIONAL,
+ e-HICH-Specific-Information-Response-LCR E-HICH-Specific-InformationResp-LCR OPTIONAL,
+ e-DCH-Non-Scheduled-Grant-Info-LCR E-DCH-Non-Scheduled-Grant-Info-LCR OPTIONAL,
+ e-RNTI E-RNTI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Information-Response-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Information-Response-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-AGCH-Specific-InformationRespList-LCR-TDD ::= SEQUENCE (SIZE (1..maxNrOfEAGCHCodes)) OF E-AGCH-Specific-InformationResp-Item-LCR-TDD
+
+E-AGCH-Specific-InformationResp-Item-LCR-TDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { E-AGCH-Specific-InformationResp-ItemTDD-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-AGCH-Specific-InformationResp-ItemTDD-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-Specific-InformationResp-LCR::= SEQUENCE {
+ e-HICH-Scheduled-InformationResp-LCR E-HICH-Scheduled-InformationRespList-LCR-TDD OPTIONAL,
+ e-HICH-non-Scheduled-InformationResp-LCR E-HICH-InformationResp-LCR OPTIONAL,
+ e-HICH-TimeOffset-lcr E-HICH-TimeOffset-LCR,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-Specific-InformationResp-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-HICH-Specific-InformationResp-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+E-HICH-Scheduled-InformationRespList-LCR-TDD ::= SEQUENCE (SIZE (1..maxNrOfEHICHCodes)) OF E-HICH-Scheduled-InformationResp-Item-LCR-TDD
+
+E-HICH-Scheduled-InformationResp-Item-LCR-TDD ::= SEQUENCE {
+e-HICH-EI E-HICH-EI,
+e-HICH-Scheduled-InformationResp-LCR E-HICH-InformationResp-LCR,
+iE-Extensions ProtocolExtensionContainer { { E-HICH-Scheduled-InformationResp-LCR-ExtIEs } } OPTIONAL,
+...
+}
+
+E-HICH-Scheduled-InformationResp-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+E-HICH-EI ::= INTEGER (0..3)
+
+E-HICH-InformationResp-LCR::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ signatureSequenceGroupIndex SignatureSequenceGroupIndex,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-InformationResp-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+
+E-HICH-InformationResp-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+E-HICH-TimeOffset-LCR ::= INTEGER (4..15)
+
+E-DCH-SubframeNumber-LCR ::= ENUMERATED{s0,s1}
+
+E-DCH-TimeslotResource-LCR ::= BIT STRING (SIZE (5))
+
+E-DCH-Non-Scheduled-Grant-Info-LCR ::= SEQUENCE {
+ timeslotResource-LCR E-DCH-TimeslotResource-LCR,
+ powerResource E-DCH-PowerResource,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ subframenumber E-DCH-SubframeNumber-LCR,
+ tddE-PUCH-Offset TddE-PUCH-Offset,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Non-Scheduled-Grant-Info-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Non-Scheduled-Grant-Info-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Enabling-Delay ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128}
+-- Unit radio frame
+
+
+Ext-Reference-E-TFCI-PO ::= INTEGER(30..31,...)
+
+ExtendedPropagationDelay ::= INTEGER(255..1023)
+
+Extended-RNC-ID ::= INTEGER (4096..65535)
+
+Extended-Round-Trip-Time-Value ::= INTEGER(32767..103041)
+-- See also mapping in [23]
+
+Ext-Max-Bits-MACe-PDU-non-scheduled ::= INTEGER(19983..22978,...)
+
+E-DCH-Semi-PersistentScheduling-Information-LCR ::= SEQUENCE {
+ repetition-Period-List-LCR Repetition-Period-List-LCR,
+ e-DCH-SPS-Indicator E-DCH-SPS-Indicator,
+ e-DCH-SPS-Reservation-Indicator SPS-Reservation-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Semi-PersistentScheduling-Information-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Semi-PersistentScheduling-Information-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-SPS-Indicator ::= BIT STRING (SIZE (16))
+
+E-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR ::= SEQUENCE {
+ repetition-Period-List-LCR Repetition-Period-List-LCR OPTIONAL,
+ e-DCH-SPS-Indicator E-DCH-SPS-Indicator OPTIONAL,
+ e-DCH-SPS-Reservation-Indicator SPS-Reservation-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Semi-PersistentScheduling-Information-to-Modify-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-Semi-PersistentScheduling-Information-ResponseLCR ::= SEQUENCE {
+ initial-E-DCH-SPS-resource Initial-E-DCH-SPS-resource OPTIONAL,
+ e-DCH-SPS-HICH-Information E-DCH-SPS-HICH-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-Semi-PersistentScheduling-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-Semi-PersistentScheduling-Information-ResponseLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Initial-E-DCH-SPS-resource ::= SEQUENCE {
+ timeslot-Resource-Related-Information E-DCH-TimeslotResource-LCR,
+ powerResource E-DCH-PowerResource,
+ repetitionPeriodIndex RepetitionPeriodIndex,
+ repetitionLength RepetitionLength,
+ subframeNumber ENUMERATED {v0, v1},
+ tddE-PUCH-Offset TddE-PUCH-Offset,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ n-E-UCCHLCR N-E-UCCH-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Initial-E-DCH-SPS-resource-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Initial-E-DCH-SPS-resource-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-DCH-SPS-HICH-Information ::= SEQUENCE {
+ e-HICH-Configuration E-HICH-Configuration,
+ signatureSequenceGroupIndex SignatureSequenceGroupIndex,
+ iE-Extensions ProtocolExtensionContainer { { E-DCH-SPS-HICH-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-DCH-SPS-HICH-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-HICH-Configuration ::= CHOICE {
+ same-As-Scheduled-E-HICH Same-As-Scheduled-E-HICH,
+ explicit E-HICH-InformationResp-ExplicitConfiguration-LCR,
+ ...
+}
+
+Same-As-Scheduled-E-HICH ::= SEQUENCE {
+ e-HICH-EI E-HICH-EI,
+ ...
+}
+
+E-HICH-InformationResp-ExplicitConfiguration-LCR ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { E-HICH-InformationResp-ExplicitConfiguration-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+E-HICH-InformationResp-ExplicitConfiguration-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- F
+
+FACH-FlowControlInformation ::= SEQUENCE (SIZE (1..16)) OF FACH-FlowControlInformationItem
+
+FACH-FlowControlInformationItem ::= SEQUENCE {
+ fACH-SchedulingPriority SchedulingPriorityIndicator,
+ mAC-c-sh-SDU-Lengths MAC-c-sh-SDU-LengthList,
+ fACH-InitialWindowSize FACH-InitialWindowSize,
+ iE-Extensions ProtocolExtensionContainer { {FACH-FlowControlInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-FlowControlInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-InitialWindowSize ::= INTEGER { unlimited(255) } (0..255)
+-- Number of frames MAC-c-sh SDUs.
+-- 255 = Unlimited number of FACH data frames
+
+FACH-InformationList ::= SEQUENCE (SIZE(0.. maxNrOfFACHs)) OF FACH-InformationItem
+
+FACH-InformationItem ::= SEQUENCE {
+ transportFormatSet TransportFormatSet,
+ iE-Extensions ProtocolExtensionContainer { { FACH-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Fast-Reconfiguration-Mode ::= ENUMERATED {fast,...}
+Fast-Reconfiguration-Permission ::= ENUMERATED {allowed,...}
+
+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 FDD-DCHs-to-ModifySpecificInformationList,
+ iE-Extensions ProtocolExtensionContainer { {FDD-DCHs-to-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DCHs-to-ModifyItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+FDD-DCHs-to-ModifySpecificInformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF FDD-DCHs-to-ModifySpecificItem
+
+FDD-DCHs-to-ModifySpecificItem ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-TransportformatSet TransportFormatSet OPTIONAL,
+ dl-TransportformatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ not-Used-dRACControl NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {FDD-DCHs-to-ModifySpecificItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DCHs-to-ModifySpecificItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Guaranteed-Rate-Information CRITICALITY ignore EXTENSION Guaranteed-Rate-Information PRESENCE optional }|
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass PRESENCE optional }|
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional},
+ ...
+}
+
+FDD-DL-ChannelisationCodeNumber ::= INTEGER (0..511)
+-- According to the mapping in [27]. The maximum value is equal to the DL spreading factor -1--
+
+FDD-DL-CodeInformation ::= SEQUENCE (SIZE (1..maxNrOfDL-Codes)) OF FDD-DL-CodeInformationItem
+
+FDD-DL-CodeInformationItem ::= SEQUENCE {
+ dl-ScramblingCode DL-ScramblingCode,
+ fDD-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ transmission-Gap-Pattern-Sequence-ScramblingCode-Information Transmission-Gap-Pattern-Sequence-ScramblingCode-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {FDD-DL-CodeInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DL-CodeInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FDD-TPC-DownlinkStepSize ::= ENUMERATED {
+ step-size0-5,
+ step-size1,
+ step-size1-5,
+ step-size2,
+ ...
+}
+
+SchedulingPriorityIndicator ::= INTEGER { lowest(0), highest(15) } (0..15)
+
+F-DPCH-SlotFormat ::= INTEGER (0..9)
+
+F-DPCH-SlotFormatSupportRequest ::= NULL
+
+FirstRLS-Indicator ::= ENUMERATED {
+ first-RLS,
+ not-first-RLS
+}
+
+FNReportingIndicator ::= ENUMERATED {
+ fN-reporting-required,
+ fN-reporting-not-required
+}
+
+FPACH-Information ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ tDD-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ wT INTEGER (1..4),
+ ...
+ }
+
+FrameHandlingPriority ::= INTEGER { lowest(0), highest(15) } (0..15)
+
+FrameOffset ::= INTEGER (0..255)
+-- Frames
+
+FrequencyBandIndicator ::= ENUMERATED {
+ bandI,
+ bandII,
+ bandIII,
+ bandIV,
+ bandV,
+ bandVI,
+ bandVII,
+ bandVIII,
+ bandIX,
+ bandX,
+ bandXI,
+ bandXII,
+ bandXIII,
+ bandXIV,
+ bandXV,
+ bandXVI,
+ bandXVII,
+ bandXVIII,
+ bandXIX,
+ bandXX,
+ bandXXI,
+ bandXXII,
+ ...
+}
+
+
+-- G
+
+GapLength ::= INTEGER (1..14)
+-- Unit Slot
+
+GapDuration ::= INTEGER (1..144,...)
+-- Unit Frame
+
+GA-Cell ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ cell-GAIgeographicalCoordinate GeographicalCoordinate,
+ iE-Extensions ProtocolExtensionContainer { {GA-Cell-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Cell-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-CellAdditionalShapes ::= CHOICE {
+ pointWithUncertainty GA-PointWithUnCertainty,
+ pointWithUncertaintyEllipse GA-PointWithUnCertaintyEllipse,
+ pointWithAltitude GA-PointWithAltitude,
+ pointWithAltitudeAndUncertaintyEllipsoid GA-PointWithAltitudeAndUncertaintyEllipsoid,
+ ellipsoidArc GA-EllipsoidArc,
+ ...
+ }
+
+GA-AltitudeAndDirection ::= SEQUENCE {
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ ...
+}
+
+GA-EllipsoidArc ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinate,
+ 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AddClockModels ::= CHOICE {
+ navClockModel GANSS-NAVclockModel,
+ cnavClockModel GANSS-CNAVclockModel,
+ glonassClockModel GANSS-GLONASSclockModel,
+ sbasClockModel GANSS-SBASclockModel,
+ ...
+}
+
+GANSS-AddIonoModelReq ::= BIT STRING (SIZE(2))
+
+GANSS-AddNavigationModelsReq ::= BOOLEAN
+
+GANSS-AddOrbitModels ::= CHOICE {
+ navKeplerianSet GANSS-NavModel-NAVKeplerianSet,
+ cnavKeplerianSet GANSS-NavModel-CNAVKeplerianSet,
+ glonassECEF GANSS-NavModel-GLONASSecef,
+ sbasECEF GANSS-NavModel-SBASecef,
+ ...
+ }
+
+GANSS-AddUTCModelsReq ::= BOOLEAN
+
+GANSS-Additional-Ionospheric-Model ::= SEQUENCE {
+ dataID BIT STRING (SIZE(2)),
+ alpha-beta-parameters GPS-Ionospheric-Model,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Additional-Ionospheric-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Additional-Ionospheric-Model-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Additional-Navigation-Models ::= SEQUENCE {
+ ganss-Transmission-Time GANSS-Transmission-Time,
+ non-broadcastIndication ENUMERATED { true } OPTIONAL,
+ ganssSatInfoNavList Ganss-Sat-Info-AddNavList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Additional-Navigation-Models-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Additional-Navigation-Models-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Additional-Time-Models ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF GANSS-Time-Model
+
+GANSS-Additional-UTC-Models ::= CHOICE {
+ utcModel1 GANSS-UTCmodelSet1,
+ utcModel2 GANSS-UTCmodelSet2,
+ utcModel3 GANSS-UTCmodelSet3,
+ ...
+}
+
+GANSS-Almanac ::= SEQUENCE{
+ ganss-wk-number INTEGER(0..255),
+ gANSS-AlmanacModel CHOICE {
+ gANSS-keplerianParameters SEQUENCE {
+ t-oa INTEGER(0..255),
+ iod-a INTEGER(0..3),
+ gANSS-SatelliteInformationKP GANSS-SatelliteInformationKP,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-KeplerianParametersAlm-ExtIEs } } OPTIONAL,
+ ...
+ },
+ ...,
+ extension-GANSS-AlmanacModel Extension-GANSS-AlmanacModel
+ },
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Almanac-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-KeplerianParametersAlm-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Extension-GANSS-AlmanacModel ::= ProtocolIE-Single-Container {{ Extension-GANSS-AlmanacModel-IE }}
+
+Extension-GANSS-AlmanacModel-IE RNSAP-PROTOCOL-IES ::= {
+ { ID id-GANSS-alm-keplerianNAVAlmanac CRITICALITY ignore TYPE GANSS-alm-keplerianNAVAlmanac PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianReducedAlmanac CRITICALITY ignore TYPE GANSS-alm-keplerianReducedAlmanac PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianMidiAlmanac CRITICALITY ignore TYPE GANSS-alm-keplerianMidiAlmanac PRESENCE mandatory}|
+ { ID id-GANSS-alm-keplerianGLONASS CRITICALITY ignore TYPE GANSS-alm-keplerianGLONASS PRESENCE mandatory}|
+ { ID id-GANSS-alm-ecefSBASAlmanac CRITICALITY ignore TYPE GANSS-alm-ecefSBASAlmanac PRESENCE mandatory}
+
+}
+
+GANSS-alm-keplerianNAVAlmanac ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-NAVkpList GANSS-SAT-Info-Almanac-NAVkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-NAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-NAVKeplerianSet-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-alm-keplerianReducedAlmanac ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-REDkpList GANSS-SAT-Info-Almanac-REDkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-ReducedKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+
+GANSS-ALM-ReducedKeplerianSet-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-alm-keplerianMidiAlmanac ::= SEQUENCE {
+ t-oa INTEGER (0..255),
+ sat-info-MIDIkpList GANSS-SAT-Info-Almanac-MIDIkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-MidiAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-MidiAlmanacSet-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-alm-keplerianGLONASS ::= SEQUENCE {
+ sat-info-GLOkpList GANSS-SAT-Info-Almanac-GLOkpList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-GlonassAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-GlonassAlmanacSet-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-alm-ecefSBASAlmanac ::= SEQUENCE {
+ sat-info-SBASecefList GANSS-SAT-Info-Almanac-SBASecefList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ALM-ECEFsbasAlmanacSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ALM-ECEFsbasAlmanacSet-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Almanac-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Auxiliary-Information ::= CHOICE {
+ ganssID1 GANSS-AuxInfoGANSS-ID1, -- This choice may only be present if GANSS ID indicates Modernized GPS
+ ganssID3 GANSS-AuxInfoGANSS-ID3, -- This choice may only be present if GANSS ID indicates GLONASS
+ ...
+}
+
+GANSS-AuxInfoGANSS-ID1 ::= SEQUENCE (SIZE(1.. maxGANSSSat)) OF SEQUENCE {
+ svID INTEGER(0..63),
+ signalsAvailable BIT STRING (SIZE(8)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-AuxInfoGANSS-ID1-element-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-AuxInfoGANSS-ID1-element-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AuxInfoGANSS-ID3 ::= SEQUENCE (SIZE(1.. maxGANSSSat)) OF SEQUENCE {
+ svID INTEGER(0..63),
+ signalsAvailable BIT STRING (SIZE(8)),
+ channelNumber INTEGER (-7..13),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-AuxInfoGANSS-ID3-element-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-AuxInfoGANSS-ID3-element-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-AuxInfoReq ::= BOOLEAN
+
+GANSS-Clock-Model ::= SEQUENCE (SIZE (1..maxGANSSClockMod)) OF SEQUENCE {
+ t-oc BIT STRING (SIZE (14)),
+ a-i2 BIT STRING (SIZE (12)),
+ a-i1 BIT STRING (SIZE (18)),
+ a-i0 BIT STRING (SIZE (28)),
+ t-gd BIT STRING (SIZE (10)) OPTIONAL,
+ model-id INTEGER(0..1,...) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-ClockModelItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-ClockModelItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-CNAVclockModel ::= SEQUENCE {
+ cnavToc BIT STRING (SIZE (11)),
+ cnavTop BIT STRING (SIZE (11)),
+ cnavURA0 BIT STRING (SIZE (5)),
+ cnavURA1 BIT STRING (SIZE (3)),
+ cnavURA2 BIT STRING (SIZE (3)),
+ cnavAf2 BIT STRING (SIZE (10)),
+ cnavAf1 BIT STRING (SIZE (20)),
+ cnavAf0 BIT STRING (SIZE (26)),
+ cnavTgd BIT STRING (SIZE (13)),
+ cnavISCl1cp BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl1cd BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl1ca BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl2c BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl5i5 BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl5q5 BIT STRING (SIZE (13)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-CNAVclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-CNAVclockModel-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Common-Data ::= SEQUENCE {
+ ganss-Ionospheric-Model GANSS-Ionospheric-Model OPTIONAL,
+ ganss-Rx-Pos GANSS-RX-Pos OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Common-Data-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Common-Data-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-Additional-Ionospheric-Model CRITICALITY ignore EXTENSION GANSS-Additional-Ionospheric-Model PRESENCE optional }|
+ { ID id-GANSS-Earth-Orientation-Parameters CRITICALITY ignore EXTENSION GANSS-Earth-Orientation-Parameters PRESENCE optional },
+ ...
+}
+
+GANSS-CommonDataInfoReq ::= SEQUENCE {
+ ionospheric-Model BOOLEAN OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-CommonDataInfoReq-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-CommonDataInfoReq-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSS-AddIonoModelReq CRITICALITY ignore EXTENSION GANSS-AddIonoModelReq PRESENCE optional} |
+ {ID id-GANSS-EarthOrientParaReq CRITICALITY ignore EXTENSION GANSS-EarthOrientParaReq PRESENCE optional} ,
+ ...
+}
+
+GANSS-Data-Bit-Assistance ::= SEQUENCE {
+ ganssTod INTEGER (0..59,...),
+ dataBitAssistancelist GANSS-DataBitAssistanceList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Data-Bit-Assistance-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-DataBitAssistanceList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSS-DataBitAssistanceItem
+
+GANSS-DataBitAssistanceItem ::= SEQUENCE {
+ satId INTEGER(0..63),
+ dataBitAssistanceSgnList GANSS-DataBitAssistanceSgnList,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-DataBitAssistanceItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-DataBitAssistanceItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-DataBitAssistanceSgnList ::= SEQUENCE (SIZE (1..maxSgnType)) OF GANSS-DataBitAssistanceSgnItem
+
+GANSS-DataBitAssistanceSgnItem ::= SEQUENCE {
+ ganss-SignalId GANSS-Signal-ID,
+ ganssDataBits BIT STRING (SIZE (1..1024)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-DataBitAssistanceSgnItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-DataBitAssistanceSgnItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ReqItem ::= SEQUENCE {
+ ganssTod INTEGER (0..86399),
+ ganss-Data-Bit-Assistance-ReqList GANSS-Data-Bit-Assistance-ReqList,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-Data-Bit-Assistance-ReqItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ReqItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ReqList ::= SEQUENCE {
+ dGANSS-Signal-ID BIT STRING (SIZE (8)),
+ ganss-DataBitInterval INTEGER(0..15),
+ ganss-SatelliteInfo SEQUENCE (SIZE (1..maxGANSSSat)) OF INTEGER(0..63) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GANSS-Data-Bit-Assistance-ReqList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Data-Bit-Assistance-ReqList-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-DeltaUT1 ::= SEQUENCE {
+ b1 BIT STRING (SIZE(11)),
+ b2 BIT STRING (SIZE(10)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-DeltaUT1-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-DeltaUT1-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Earth-Orientation-Parameters ::= SEQUENCE {
+ teop BIT STRING (SIZE (16)),
+ pmX BIT STRING (SIZE (21)),
+ pmXdot BIT STRING (SIZE (15)),
+ pmY BIT STRING (SIZE (21)),
+ pmYdot BIT STRING (SIZE (15)),
+ deltaUT1 BIT STRING (SIZE (31)),
+ deltaUT1dot BIT STRING (SIZE (19)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Earth-Orientation-Parameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Earth-Orientation-Parameters-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-EarthOrientParaReq ::= BOOLEAN
+
+GANSS-GenericDataInfoReqList ::= SEQUENCE (SIZE(1..maxNoGANSS)) OF GANSS-GenericDataInfoReqItem
+
+GANSS-GenericDataInfoReqItem ::= SEQUENCE {
+ ganss-Id GANSS-ID OPTIONAL,
+ ganss-Navigation-Model-And-Time-Recovery BOOLEAN OPTIONAL,
+ ganss-Time-Model-GNSS-GNSS BIT STRING (SIZE (9)) OPTIONAL,
+ ganss-UTC-Model BOOLEAN OPTIONAL,
+ ganss-Almanac BOOLEAN OPTIONAL,
+ ganss-Real-Time-Integrity BOOLEAN OPTIONAL,
+ ganss-Data-Bit-Assistance-Req GANSS-Data-Bit-Assistance-ReqItem OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-GenericDataInfoReqItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-GenericDataInfoReqItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-GANSS-AddNavigationModelsReq CRITICALITY ignore EXTENSION GANSS-AddNavigationModelsReq PRESENCE optional} |
+ {ID id-GANSS-AddUTCModelsReq CRITICALITY ignore EXTENSION GANSS-AddUTCModelsReq PRESENCE optional} |
+ {ID id-GANSS-AuxInfoReq CRITICALITY ignore EXTENSION GANSS-AuxInfoReq PRESENCE optional} |
+ -- The following IE shall be present if 'GANSS-ID' in 'GANSS-GenericDataInfoReqItem' is '0' (SBAS)
+ {ID id-GANSS-SBAS-ID CRITICALITY ignore EXTENSION GANSS-SBAS-ID PRESENCE optional} ,
+ ...
+}
+
+
+GANSS-Generic-Data ::= SEQUENCE (SIZE(1..maxNoGANSS)) OF GANSS-Generic-DataItem
+
+GANSS-Generic-DataItem ::= SEQUENCE {
+ ganss-Id GANSS-ID OPTIONAL,
+ dganss-Correction DGANSSCorrections OPTIONAL,
+ ganss-Navigation-Model-And-Time-Recovery GANSS-Navigation-Model-And-Time-Recovery OPTIONAL,
+ ganss-Time-Model GANSS-Time-Model OPTIONAL,
+ ganss-UTC-TIME GANSS-UTC-Model OPTIONAL,
+ ganss-Almanac GANSS-Almanac OPTIONAL,
+ ganss-Real-Time-Integrity GANSS-Real-Time-Integrity OPTIONAL,
+ ganss-Data-Bit-Assistance GANSS-Data-Bit-Assistance OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Generic-DataItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Generic-DataItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-Additional-Time-Models CRITICALITY ignore EXTENSION GANSS-Additional-Time-Models PRESENCE optional }|
+ { ID id-GANSS-Additional-Navigation-Models CRITICALITY ignore EXTENSION GANSS-Additional-Navigation-Models PRESENCE optional }|
+ { ID id-GANSS-Additional-UTC-Models CRITICALITY ignore EXTENSION GANSS-Additional-UTC-Models PRESENCE optional }|
+ { ID id-GANSS-Auxiliary-Information CRITICALITY ignore EXTENSION GANSS-Auxiliary-Information PRESENCE optional }|
+ -- The following element shall be present if 'GANSS-ID' in 'GANSS-Generic-DataItem' is '0' ('SBAS')
+ { ID id-GANSS-SBAS-ID CRITICALITY ignore EXTENSION GANSS-SBAS-ID PRESENCE optional },
+ ...
+}
+
+GANSS-GLONASSclockModel ::= SEQUENCE {
+ gloTau BIT STRING (SIZE (22)),
+ gloGamma BIT STRING (SIZE (11)),
+ gloDeltaTau BIT STRING (SIZE (5)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-GLONASSclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-GLONASSclockModel-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-ID ::= INTEGER(0..7,...)
+
+GANSS-Information ::= SEQUENCE {
+ gANSS-CommonDataInfoReq GANSS-CommonDataInfoReq OPTIONAL,
+ gANSS-GenericDataInfoReqList GANSS-GenericDataInfoReqList OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Ionospheric-Model ::= SEQUENCE {
+ alpha-zero-ionos BIT STRING (SIZE (12)),
+ alpha-one-ionos BIT STRING (SIZE (12)),
+ alpha-two-ionos BIT STRING (SIZE (12)),
+ gANSS-IonosphereRegionalStormFlags GANSS-IonosphereRegionalStormFlags OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Ionospheric-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Ionospheric-Model-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-IonosphereRegionalStormFlags ::= SEQUENCE {
+ storm-flag-one BOOLEAN,
+ storm-flag-two BOOLEAN,
+ storm-flag-three BOOLEAN,
+ storm-flag-four BOOLEAN,
+ storm-flag-five BOOLEAN,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-IonosphereRegionalStormFlags-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-IonosphereRegionalStormFlags-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-NAVclockModel ::= SEQUENCE {
+ navToc BIT STRING (SIZE (16)),
+ navaf2 BIT STRING (SIZE (8)),
+ navaf1 BIT STRING (SIZE (16)),
+ navaf0 BIT STRING (SIZE (22)),
+ navTgd BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NAVclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NAVclockModel-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Navigation-Model-And-Time-Recovery ::= SEQUENCE {
+ ganss-Transmission-Time GANSS-Transmission-Time,
+ non-broadcastIndication ENUMERATED{true} OPTIONAL,
+ ganssSatInfoNav GANSS-Sat-Info-Nav,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Navigation-Model-And-Time-Recovery-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Navigation-Model-And-Time-Recovery-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-NavModel-CNAVKeplerianSet ::= SEQUENCE {
+ cnavTop BIT STRING (SIZE (11)),
+ cnavURAindex BIT STRING (SIZE (5)),
+ cnavDeltaA BIT STRING (SIZE (26)),
+ cnavAdot BIT STRING (SIZE (25)),
+ cnavDeltaNo BIT STRING (SIZE (17)),
+ cnavDeltaNoDot BIT STRING (SIZE (23)),
+ cnavMo BIT STRING (SIZE (33)),
+ cnavE BIT STRING (SIZE (33)),
+ cnavOmega BIT STRING (SIZE (33)),
+ cnavOMEGA0 BIT STRING (SIZE (33)),
+ cnavDeltaOmegaDot BIT STRING (SIZE (17)),
+ cnavIo BIT STRING (SIZE (33)),
+ cnavIoDot BIT STRING (SIZE (15)),
+ cnavCis BIT STRING (SIZE (16)),
+ cnavCic BIT STRING (SIZE (16)),
+ cnavCrs BIT STRING (SIZE (24)),
+ cnavCrc BIT STRING (SIZE (24)),
+ cnavCus BIT STRING (SIZE (21)),
+ cnavCuc BIT STRING (SIZE (21)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NavModel-CNAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NavModel-CNAVKeplerianSet-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-NavModel-GLONASSecef ::= SEQUENCE {
+ gloEn BIT STRING (SIZE (5)),
+ gloP1 BIT STRING (SIZE(2)),
+ gloP2 BIT STRING (SIZE (1)),
+ gloM BIT STRING (SIZE (2)) OPTIONAL,
+ gloX BIT STRING (SIZE (27)),
+ gloXdot BIT STRING (SIZE (24)),
+ gloXdotdot BIT STRING (SIZE (5)),
+ gloY BIT STRING (SIZE (27)),
+ gloYdot BIT STRING (SIZE (24)),
+ gloYdotdot BIT STRING (SIZE (5)),
+ gloZ BIT STRING (SIZE (27)),
+ gloZdot BIT STRING (SIZE (24)),
+ gloZdotdot BIT STRING (SIZE (5)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NavModel-GLONASSecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NavModel-GLONASSecef-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-NavModel-NAVKeplerianSet ::= SEQUENCE {
+ navURA BIT STRING (SIZE (4)),
+ navFitFlag BIT STRING (SIZE (1)),
+ navToe BIT STRING (SIZE (16)),
+ navOmega BIT STRING (SIZE (32)),
+ navDeltaN BIT STRING (SIZE (16)),
+ navM0 BIT STRING (SIZE (32)),
+ navOmegaADot BIT STRING (SIZE (24)),
+ navE BIT STRING (SIZE (32)),
+ navIDot BIT STRING (SIZE (14)),
+ navAPowerHalf BIT STRING (SIZE (32)),
+ navI0 BIT STRING (SIZE (32)),
+ navOmegaA0 BIT STRING (SIZE (32)),
+ navCrs BIT STRING (SIZE (16)),
+ navCis BIT STRING (SIZE (16)),
+ navCus BIT STRING (SIZE (16)),
+ navCrc BIT STRING (SIZE (16)),
+ navCic BIT STRING (SIZE (16)),
+ navCuc BIT STRING (SIZE (16)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NavModel-NAVKeplerianSet-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-NavModel-NAVKeplerianSet-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-NavModel-SBASecef ::= SEQUENCE {
+ -- the following IE shall be present if 'GANSS-SBASclockModel' in 'GANSS-AddClockModels' is not included in 'Ganss-Sat-Info-AddNavList'
+ sbasTo BIT STRING (SIZE (13)) OPTIONAL,
+ sbasAccuracy BIT STRING (SIZE (4)),
+ sbasXg BIT STRING (SIZE (30)),
+ sbasYg BIT STRING (SIZE (30)),
+ sbasZg BIT STRING (SIZE (25)),
+ sbasXgDot BIT STRING (SIZE (17)),
+ sbasYgDot BIT STRING (SIZE (17)),
+ sbasZgDot BIT STRING (SIZE (18)),
+ sbasXgDotDot BIT STRING (SIZE (10)),
+ sbagYgDotDot BIT STRING (SIZE (10)),
+ sbasZgDotDot BIT STRING (SIZE (10)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-NavModel-SBASecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+
+GANSS-NavModel-SBASecef-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Orbit-Model ::= CHOICE {
+ gANSS-keplerianParameters SEQUENCE {
+ toe-nav BIT STRING (SIZE (14)),
+ ganss-omega-nav BIT STRING (SIZE (32)),
+ delta-n-nav BIT STRING (SIZE (16)),
+ m-zero-nav BIT STRING (SIZE (32)),
+ omegadot-nav BIT STRING (SIZE (24)),
+ ganss-e-nav BIT STRING (SIZE (32)),
+ idot-nav BIT STRING (SIZE (14)),
+ a-sqrt-nav BIT STRING (SIZE (32)),
+ i-zero-nav BIT STRING (SIZE (32)),
+ omega-zero-nav BIT STRING (SIZE (32)),
+ c-rs-nav BIT STRING (SIZE (16)),
+ c-is-nav BIT STRING (SIZE (16)),
+ c-us-nav BIT STRING (SIZE (16)),
+ c-rc-nav BIT STRING (SIZE (16)),
+ c-ic-nav BIT STRING (SIZE (16)),
+ c-uc-nav BIT STRING (SIZE (16)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-KeplerianParametersOrb-ExtIEs } } OPTIONAL,
+ ...
+ },
+ ...
+}
+
+GANSS-KeplerianParametersOrb-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Real-Time-Integrity ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE {
+ bad-ganss-satId INTEGER(0..63),
+ bad-ganss-signalId BIT STRING(SIZE(8)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-RealTimeInformationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-RealTimeInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-RX-Pos ::= SEQUENCE {
+ latitudeSign ENUMERATED{north,south},
+ degreesOfLatitude INTEGER(0..2147483647),
+ degreesOfLongitude INTEGER(-2147483648..2147483647),
+ directionOfAltitude ENUMERATED{height,depth},
+ altitude INTEGER(0..32767),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-RX-Pos-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-RX-Pos-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SatelliteInformationKP ::= SEQUENCE (SIZE (1..maxGANSSSatAlmanac)) OF SEQUENCE {
+ satId INTEGER(0..63),
+ ganss-e-alm BIT STRING (SIZE (11)),
+ ganss-delta-I-alm BIT STRING (SIZE (11)),
+ ganss-omegadot-alm BIT STRING (SIZE (11)),
+ ganss-svhealth-alm BIT STRING (SIZE (4)),
+ ganss-delta-a-sqrt-alm BIT STRING (SIZE (17)),
+ ganss-omegazero-alm BIT STRING (SIZE (16)),
+ ganss-m-zero-alm BIT STRING (SIZE (16)),
+ ganss-omega-alm BIT STRING (SIZE (16)),
+ ganss-af-zero-alm BIT STRING (SIZE (14)),
+ ganss-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SatelliteInformationKPItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SatelliteInformationKPItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Ganss-Sat-Info-AddNavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE {
+ satId INTEGER (0..63),
+ svHealth BIT STRING (SIZE (6)),
+ iod BIT STRING (SIZE (11)),
+ ganssAddClockModels GANSS-AddClockModels,
+ ganssAddOrbitModels GANSS-AddOrbitModels,
+ ie-Extensions ProtocolExtensionContainer { { Ganss-Sat-Info-AddNavList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Ganss-Sat-Info-AddNavList-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-GLOkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF SEQUENCE {
+ gloAlmNA BIT STRING (SIZE(11)),
+ gloAlmnA BIT STRING (SIZE(5)),
+ gloAlmHA BIT STRING (SIZE(5)),
+ gloAlmLambdaA BIT STRING (SIZE(21)),
+ gloAlmTlambdaA BIT STRING (SIZE(21)),
+ gloAlmDeltaIA BIT STRING (SIZE(18)),
+ gloAkmDeltaTA BIT STRING (SIZE(22)),
+ gloAlmDeltaTdotA BIT STRING (SIZE(7)),
+ gloAlmEpsilonA BIT STRING (SIZE(15)),
+ gloAlmOmegaA BIT STRING (SIZE(16)),
+ gloAlmTauA BIT STRING (SIZE(10)),
+ gloAlmCA BIT STRING (SIZE(1)),
+ gloAlmMA BIT STRING (SIZE(2)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-GLOkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-GLOkp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-MIDIkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF SEQUENCE {
+ svID INTEGER(0..63),
+ midiAlmE BIT STRING (SIZE (11)),
+ midiAlmDeltaI BIT STRING (SIZE (11)),
+ midiAlmOmegaDot BIT STRING (SIZE (11)),
+ midiAlmSqrtA BIT STRING (SIZE (17)),
+ midiAlmOmega0 BIT STRING (SIZE (16)),
+ midiAlmOmega BIT STRING (SIZE (16)),
+ midiAlmMo BIT STRING (SIZE (16)),
+ midiAlmaf0 BIT STRING (SIZE (11)),
+ midiAlmaf1 BIT STRING (SIZE (10)),
+ midiAlmL1Health BIT STRING (SIZE (1)),
+ midiAlmL2Health BIT STRING (SIZE (1)),
+ midiAlmL5Health BIT STRING (SIZE (1)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-MIDIkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-MIDIkp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-NAVkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF SEQUENCE {
+ svID INTEGER(0..63),
+ navAlmE BIT STRING (SIZE (16)),
+ navAlmDeltaI BIT STRING (SIZE (16)),
+ navAlmOMEGADOT BIT STRING (SIZE (16)),
+ navAlmSVHealth BIT STRING (SIZE (8)),
+ navAlmSqrtA BIT STRING (SIZE (24)),
+ navAlmOMEGAo BIT STRING (SIZE (24)),
+ navAlmOmega BIT STRING (SIZE (24)),
+ navAlmMo BIT STRING (SIZE (24)),
+ navAlmaf0 BIT STRING (SIZE (11)),
+ navAlmaf1 BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-NAVkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-NAVkp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-REDkpList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF SEQUENCE {
+ svID INTEGER(0..63),
+ redAlmDeltaA BIT STRING (SIZE (8)),
+ redAlmOmega0 BIT STRING (SIZE (7)),
+ redAlmPhi0 BIT STRING (SIZE (7)),
+ redAlmL1Health BIT STRING (SIZE (1)),
+ redAlmL2Health BIT STRING (SIZE (1)),
+ redAlmL5Health BIT STRING (SIZE (1)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-REDkp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-REDkp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SAT-Info-Almanac-SBASecefList ::= SEQUENCE (SIZE (1.. maxGANSSSatAlmanac)) OF SEQUENCE {
+ sbasAlmDataID BIT STRING (SIZE(2)),
+ svID INTEGER(0..63),
+ sbasAlmHealth BIT STRING (SIZE(8)),
+ sbasAlmXg BIT STRING (SIZE(15)),
+ sbasAlmYg BIT STRING (SIZE(15)),
+ sbasAlmZg BIT STRING (SIZE(9)),
+ sbasAlmXgdot BIT STRING (SIZE(3)),
+ sbasAlmYgDot BIT STRING (SIZE(3)),
+ sbasAlmZgDot BIT STRING (SIZE(4)),
+ sbasAlmTo BIT STRING (SIZE(11)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-SBASecef-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SAT-Info-Almanac-SBASecef-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GANSS-Sat-Info-Nav ::= SEQUENCE (SIZE(1..maxGANSSSat)) OF SEQUENCE {
+ satId INTEGER(0..63),
+ svHealth BIT STRING (SIZE(5)),
+ iod BIT STRING (SIZE(10)),
+ ganssClockModel GANSS-Clock-Model,
+ ganssOrbitModel GANSS-Orbit-Model,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Sat-Info-Nav-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Sat-Info-Nav-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-SBAS-ID ::= ENUMERATED {
+ waas,
+ egnos,
+ msas,
+ gagan,
+ ...
+ }
+
+GANSS-SBASclockModel ::= SEQUENCE {
+ sbasTo BIT STRING (SIZE (13)),
+ sbasAgfo BIT STRING (SIZE (12)),
+ sbasAgf1 BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-SBASclockModel-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-SBASclockModel-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Signal-ID ::= INTEGER(0..7,...)
+
+GANSS-StatusHealth ::= ENUMERATED {
+ udre-scale-1dot0,
+ udre-scale-0dot75,
+ udre-scale-0dot5,
+ udre-scale-0dot3,
+ udre-scale-0dot2,
+ udre-scale-0dot1,
+ no-data,
+ invalid-data
+}
+
+GANSS-Time-ID ::= INTEGER(0..7,...)
+
+GANSS-Time-Model ::= SEQUENCE {
+ ganss-time-model-Ref-Time INTEGER(0..37799),
+ ganss-t-a0 INTEGER(-2147483648..2147483647),
+ ganss-t-a1 INTEGER(-8388608..8388607) OPTIONAL,
+ ganss-t-a2 INTEGER(-64..63) OPTIONAL,
+ gnss-to-id ENUMERATED{gps,...,galileo,qzss,glonass},
+ ganss-wk-number INTEGER(0..8191) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Time-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Time-Model-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-Transmission-Time ::= SEQUENCE {
+ ganssDay INTEGER(0..8191) OPTIONAL,
+ ganssTod INTEGER(0..86399),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-Transmission-Time-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-Transmission-Time-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTC-Model ::= SEQUENCE {
+ a-one-utc BIT STRING (SIZE (24)),
+ a-zero-utc BIT STRING (SIZE (32)),
+ t-ot-utc BIT STRING (SIZE (8)),
+ w-n-t-utc BIT STRING (SIZE (8)),
+ delta-t-ls-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 { { GANSS-UTC-Model-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTC-Model-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTCmodelSet1 ::= SEQUENCE {
+ utcA0 BIT STRING (SIZE(16)),
+ utcA1 BIT STRING (SIZE(13)),
+ utcA2 BIT STRING (SIZE(7)),
+ utcDeltaTls BIT STRING (SIZE(8)),
+ utcTot BIT STRING (SIZE(16)),
+ utcWNot BIT STRING (SIZE(13)),
+ utcWNlsf BIT STRING (SIZE(8)),
+ utcDN BIT STRING (SIZE(4)),
+ utcDeltaTlsf BIT STRING (SIZE(8)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-UTCmodelSet1-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTCmodelSet1-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTCmodelSet2 ::= SEQUENCE {
+ nA BIT STRING (SIZE(11)),
+ tauC BIT STRING (SIZE(32)),
+ deltaUT1 GANSS-DeltaUT1 OPTIONAL,
+ kp BIT STRING (SIZE(2)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GANSS-UTCmodelSet2-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTCmodelSet2-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GANSS-UTCmodelSet3 ::= SEQUENCE {
+ utcA1wnt BIT STRING (SIZE(24)),
+ utcA0wnt BIT STRING (SIZE(32)),
+ utcTot BIT STRING (SIZE(8)),
+ utcWNt BIT STRING (SIZE(8)),
+ utcDeltaTls BIT STRING (SIZE(8)),
+ utcWNlsf BIT STRING (SIZE(8)),
+ utcDN BIT STRING (SIZE(8)),
+ utcDeltaTlsf BIT STRING (SIZE(8)),
+ utcStandardID BIT STRING (SIZE(3)),
+ ie-Extensions ProtocolExtensionContainer { { GANSS-UTCmodelSet3-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GANSS-UTCmodelSet3-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitude ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinate,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitude-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitude-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinate,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ uncertaintyAltitude INTEGER (0..127),
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinate,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithUnCertaintyEllipse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse-ExtIEs RNSAP-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.
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinate,
+ uncertaintyCode INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithUnCertainty-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-AccessPointPosition ::= SEQUENCE {
+ geographicalCoordinate GeographicalCoordinate,
+ iE-Extensions ProtocolExtensionContainer { {GA-AccessPoint-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-AccessPoint-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GeographicalCoordinate ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinate-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GERAN-Cell-Capability ::= BIT STRING (SIZE (16))
+-- First bit: A/Gb mode --
+-- Second bit: Iu mode --
+-- Note: undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver. -
+
+GERAN-Classmark ::= OCTET STRING
+ -- GERAN Classmark as defined in (38) --
+
+GERAN-SI-Type ::= CHOICE {
+ sI GERAN-SystemInfo,
+ pSI GERAN-SystemInfo,
+ ...
+}
+
+GERAN-SystemInfo ::= SEQUENCE (SIZE (1..maxNrOfGERANSI)) OF
+ SEQUENCE {
+ gERAN-SI-block OCTET STRING (SIZE (1..23)),
+ iE-Extensions ProtocolExtensionContainer { { GERAN-SystemInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GERAN-SystemInfo-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GenericTrafficCategory ::= BIT STRING (SIZE (8))
+
+GPS-Almanac ::= SEQUENCE {
+ wna-alm BIT STRING (SIZE (8)),
+ satellite-Almanac-Information SEQUENCE (SIZE (1..maxNoSat)) OF
+ 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 { { Satellite-Almanac-Information-ExtIEs} } OPTIONAL,
+ ...
+ },
+ -- This GPS-Almanac-Information is for the 1st 16 satellites
+ sVGlobalHealth-alm BIT STRING (SIZE (364)) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GPS-Almanac-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Satellite-Almanac-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-Almanac-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Satellite-Almanac-Information-ExtItem CRITICALITY ignore EXTENSION Satellite-Almanac-Information-ExtItem PRESENCE optional},
+ ...
+}
+
+Satellite-Almanac-Information-ExtItem ::= SEQUENCE (SIZE (1..maxNrOfSatAlmanac-maxNoSat)) OF
+ 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 { { Satellite-Almanac-Information-ExtItemIEs} } OPTIONAL,
+ ...
+ }
+-- Includes the GPS-Almanac-Information for the 17th through 32nd satellites.
+
+Satellite-Almanac-Information-ExtItemIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPSInformation ::= SEQUENCE (SIZE (1..maxNoGPSTypes)) OF
+ SEQUENCE {
+ gPSInformationItem ENUMERATED {
+ gPS-NavigationModel-and-TimeRecovery,
+ gPS-Ionospheric-Model,
+ gPS-UTC-Model,
+ gPS-Almanac,
+ gPS-RealTime-Integrity,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { GPSInformation-ExtIEs} } OPTIONAL,
+ ...
+ }
+-- This IE shall be present if the Information Type IE indicates 'GPS Information'
+
+GPSInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-NavigationModel-and-TimeRecovery ::= SEQUENCE (SIZE (1..maxNoSat)) OF
+ SEQUENCE {
+ tx-tow-nav INTEGER (0..1048575),
+ sAT-ID 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-NavigationModel-and-TimeRecoveryItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GPS-NavigationModel-and-TimeRecoveryItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-RealTime-Integrity ::= CHOICE {
+ badSatellites BadSatellites,
+ noBadSatellite NULL
+}
+
+GPS-RX-POS ::= SEQUENCE {
+ geographicalCoordinate GeographicalCoordinate,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ iE-Extensions ProtocolExtensionContainer { { GPS-RX-POS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-RX-POS-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-Status-Health ::= ENUMERATED {
+ udre-1-0,
+ udre-0-75,
+ udre-0-5,
+ udre-0-3,
+ udre-0-1,
+ 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Guaranteed-Rate-Information ::= SEQUENCE {
+ guaranteed-UL-Rate Guaranteed-Rate OPTIONAL,
+ guaranteed-DL-Rate Guaranteed-Rate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Guaranteed-Rate-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Guaranteed-Rate-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Guaranteed-Rate ::= INTEGER (1..maxNrOfTFs)
+-- "1": TFI 0, "2": TFI 1, "3": TFI 2, ...
+
+-- H
+
+HARQ-Info-for-E-DCH ::= ENUMERATED {
+ rv0,
+ rvtable
+}
+
+HARQ-MemoryPartitioning ::= CHOICE {
+ implicit HARQ-MemoryPartitioning-Implicit,
+ explicit HARQ-MemoryPartitioning-Explicit,
+ ...
+ }
+
+HARQ-MemoryPartitioning-Implicit ::= SEQUENCE {
+ number-of-Processes INTEGER (1..8,...,12|14|16),
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioning-Implicit-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioning-Implicit-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HARQ-MemoryPartitioning-Explicit ::= SEQUENCE {
+ hARQ-MemoryPartitioningList HARQ-MemoryPartitioningList,
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioning-Explicit-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioning-Explicit-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-HARQ-MemoryPartitioningInfoExtForMIMO CRITICALITY ignore EXTENSION HARQ-MemoryPartitioningInfoExtForMIMO PRESENCE optional},
+ ...
+}
+
+HARQ-MemoryPartitioningList ::= SEQUENCE (SIZE (1..maxNrOfHARQProc)) OF HARQ-MemoryPartitioningItem
+
+HARQ-MemoryPartitioningInfoExtForMIMO ::= SEQUENCE (SIZE (4|6|8)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HARQ-Preamble-Mode ::= ENUMERATED {
+mode0,
+mode1
+}
+
+HARQ-Process-Allocation-2ms-EDCH ::= BIT STRING ( SIZE(maxNrOfEDCHHARQProcesses2msEDCH) )
+
+HARQ-Preamble-Mode-Activation-Indicator ::=ENUMERATED {
+ harqPreambleModeSupported
+}
+
+HCS-Prio ::= INTEGER (0..7)
+-- 0 = lowest priority, ...7 = highest priority
+
+HSDSCH-Configured-Indicator ::= ENUMERATED {
+ configured-HS-DSCH,
+ no-configured-HS-DSCH
+}
+
+HSDSCH-FDD-Information ::= SEQUENCE {
+ hSDSCH-MACdFlows-Information HSDSCH-MACdFlows-Information,
+ uE-Capabilities-Info UE-Capabilities-Info,
+ 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 IE is set to a value greater than 0.
+ ackNackRepetitionFactor AckNack-RepetitionFactor,
+ cqiPowerOffset CQI-Power-Offset,
+ ackPowerOffset Ack-Power-Offset,
+ nackPowerOffset Nack-Power-Offset,
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-HARQ-Preamble-Mode CRITICALITY ignore EXTENSION HARQ-Preamble-Mode PRESENCE optional}|
+{ ID id-MIMO-ActivationIndicator CRITICALITY reject EXTENSION MIMO-ActivationIndicator PRESENCE optional}|
+{ ID id-HSDSCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION HSDSCH-MACdPDUSizeFormat PRESENCE optional}|
+{ ID id-SixtyfourQAM-UsageAllowedIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-UsageAllowedIndicator PRESENCE optional}|
+{ ID id-UE-with-enhanced-HS-SCCH-support-indicator CRITICALITY ignore EXTENSION NULL PRESENCE optional}|
+{ ID id-EnhancedHSServingCC-Abort CRITICALITY reject EXTENSION EnhancedHSServingCC-Abort PRESENCE optional}|
+{ ID id-UE-SupportIndicatorExtension CRITICALITY ignore EXTENSION UE-SupportIndicatorExtension PRESENCE optional}|
+{ ID id-power-offset-for-S-CPICH-for-MIMO-Request-Indicator CRITICALITY ignore EXTENSION PowerOffsetForSecondaryCPICHforMIMORequestIndicator PRESENCE optional}|
+{ ID id-Single-Stream-MIMO-ActivationIndicator CRITICALITY reject EXTENSION Single-Stream-MIMO-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+HSDSCH-FDD-Information-Response ::= SEQUENCE {
+ hSDSCH-MACdFlow-Specific-InfoList-Response HSDSCH-MACdFlow-Specific-InfoList-Response OPTIONAL,
+ hSSCCH-Specific-InfoList-Response HSSCCH-FDD-Specific-InfoList-Response OPTIONAL,
+ hSPDSCH-and-HSSCCH-ScramblingCode DL-ScramblingCode OPTIONAL,
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Information-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-User-Plane-Congestion-Fields-Inclusion CRITICALITY ignore EXTENSION User-Plane-Congestion-Fields-Inclusion PRESENCE optional}|
+{ ID id-HARQ-Preamble-Mode-Activation-Indicator CRITICALITY ignore EXTENSION HARQ-Preamble-Mode-Activation-Indicator PRESENCE optional}|
+{ ID id-MIMO-InformationResponse CRITICALITY ignore EXTENSION MIMO-InformationResponse PRESENCE optional}|
+{ ID id-SixtyfourQAM-DL-UsageIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-DL-UsageIndicator PRESENCE optional}|
+{ ID id-HSDSCH-TBSizeTableIndicator CRITICALITY ignore EXTENSION HSDSCH-TBSizeTableIndicator PRESENCE optional}|
+{ ID id-power-offset-for-S-CPICH-for-MIMO CRITICALITY ignore EXTENSION PowerOffsetForSecondaryCPICHforMIMO PRESENCE optional},
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information ::= SEQUENCE {
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-FDD-Secondary-Serving-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ID id-MIMO-ActivationIndicator CRITICALITY reject EXTENSION MIMO-ActivationIndicator PRESENCE optional}|
+{ID id-Single-Stream-MIMO-ActivationIndicator CRITICALITY reject EXTENSION Single-Stream-MIMO-ActivationIndicator PRESENCE optional}|
+{ID id-DiversityMode CRITICALITY reject EXTENSION DiversityMode PRESENCE optional}|
+{ID id-TransmitDiversityIndicator CRITICALITY reject EXTENSION TransmitDiversityIndicator PRESENCE optional},
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-Response ::= SEQUENCE {
+ hSSCCH-Specific-InfoList-Response HSSCCH-FDD-Specific-InfoList-Response OPTIONAL,
+ hSPDSCH-and-HSSCCH-ScramblingCode DL-ScramblingCode OPTIONAL,
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL,
+ sixtyfourQAM-DL-UsageIndicator SixtyfourQAM-DL-UsageIndicator OPTIONAL,
+ hSDSCH-TBSizeTableIndicator HSDSCH-TBSizeTableIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-FDD-Secondary-Serving-Information-Respons-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-Respons-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ID id-MIMO-InformationResponse CRITICALITY ignore EXTENSION MIMO-InformationResponse PRESENCE optional},
+ ...
+}
+
+HS-DSCH-Secondary-Serving-Information-To-Modify ::= SEQUENCE {
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ hSSCCH-CodeChangeGrant HSSCCH-Code-Change-Grant OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Secondary-Serving-Information-To-Modify-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Secondary-Serving-Information-To-Modify-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ID id-MIMO-Mode-Indicator CRITICALITY reject EXTENSION MIMO-Mode-Indicator PRESENCE optional}|
+{ID id-Single-Stream-MIMO-Mode-Indicator CRITICALITY reject EXTENSION Single-Stream-MIMO-Mode-Indicator PRESENCE optional}|
+{ID id-DiversityMode CRITICALITY reject EXTENSION DiversityMode PRESENCE optional}|
+{ID id-TransmitDiversityIndicator CRITICALITY reject EXTENSION TransmitDiversityIndicator PRESENCE optional}|
+-- This IE shall be present if Diversity Mode IE is present and is not set to "none"
+{ID id-NonCellSpecificTxDiversity CRITICALITY reject EXTENSION NonCellSpecificTxDiversity PRESENCE optional},
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised ::= SEQUENCE {
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ID id-MIMO-Mode-Indicator CRITICALITY reject EXTENSION MIMO-Mode-Indicator PRESENCE optional}|
+{ID id-Single-Stream-MIMO-Mode-Indicator CRITICALITY reject EXTENSION Single-Stream-MIMO-Mode-Indicator PRESENCE optional},
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Update-Information ::= SEQUENCE {
+ hsSCCHCodeChangeIndicator HSSCCH-CodeChangeIndicator OPTIONAL,
+ hS-PDSCH-Code-Change-Indicator HS-PDSCH-Code-Change-Indicator OPTIONAL,
+ -- This IE shall never be included. If received it shall be ignored.
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-FDD-Secondary-Serving-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-FDD-Secondary-Serving-Update-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-Secondary-Serving-Cell-Change-Information-Response ::= SEQUENCE {
+ hS-DSCH-Secondary-Serving-cell-choice HS-DSCH-Secondary-Serving-cell-change-choice,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Secondary-Serving-Cell-Change-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Secondary-Serving-Cell-Change-Information-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-Secondary-Serving-cell-change-choice ::= CHOICE {
+ hS-Secondary-Serving-cell-change-successful HS-Secondary-Serving-cell-change-successful,
+ hS-Secondary-Serving-cell-change-unsuccessful HS-Secondary-Serving-cell-change-unsuccessful,
+ ...
+}
+
+HS-Secondary-Serving-cell-change-successful ::= SEQUENCE {
+ hS-DSCH-FDD-Secondary-Serving-Information-Response HS-DSCH-FDD-Secondary-Serving-Information-Response,
+ hSDSCH-RNTI HSDSCH-RNTI,
+ iE-Extensions ProtocolExtensionContainer { { HS-Secondary-Serving-cell-change-successful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-Secondary-Serving-cell-change-successful-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-Secondary-Serving-cell-change-unsuccessful ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { HS-Secondary-Serving-cell-change-unsuccessful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-Secondary-Serving-cell-change-unsuccessful-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+HS-DSCH-Secondary-Serving-Remove ::= NULL
+
+
+HSDSCH-Information-to-Modify ::= SEQUENCE {
+ hSDSCH-MACdFlow-Specific-InfoList-to-Modify HSDSCH-MACdFlow-Specific-InfoList-to-Modify OPTIONAL,
+ priorityQueue-Info-to-Modify 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
+ hSSCCH-CodeChangeGrant 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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-HARQ-Preamble-Mode CRITICALITY ignore EXTENSION HARQ-Preamble-Mode PRESENCE optional}|
+{ ID id-HS-PDSCH-Code-Change-Grant CRITICALITY ignore EXTENSION HS-PDSCH-Code-Change-Grant PRESENCE optional}|
+ -- Applicable to FDD only
+{ ID id-MIMO-Mode-Indicator CRITICALITY reject EXTENSION MIMO-Mode-Indicator PRESENCE optional}|
+{ ID id-HSDSCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION HSDSCH-MACdPDUSizeFormat PRESENCE optional}|
+{ ID id-SixtyfourQAM-UsageAllowedIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-UsageAllowedIndicator PRESENCE optional}|
+{ ID id-UE-Capabilities-Info CRITICALITY ignore EXTENSION UE-Capabilities-Info PRESENCE optional}|
+{ ID id-EnhancedHSServingCC-Abort CRITICALITY reject EXTENSION EnhancedHSServingCC-Abort PRESENCE optional}|
+{ ID id-UE-SupportIndicatorExtension CRITICALITY ignore EXTENSION UE-SupportIndicatorExtension PRESENCE optional}|
+{ ID id-power-offset-for-S-CPICH-for-MIMO-Request-Indicator CRITICALITY ignore EXTENSION PowerOffsetForSecondaryCPICHforMIMORequestIndicator PRESENCE optional}|
+{ ID id-Single-Stream-MIMO-Mode-Indicator CRITICALITY reject EXTENSION Single-Stream-MIMO-Mode-Indicator PRESENCE optional},
+ ...
+}
+
+HSDSCH-Information-to-Modify-Unsynchronised ::= SEQUENCE {
+ hSDSCH-MACdFlow-Specific-InfoList-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, -- Only for FDD
+ 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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-HARQ-Preamble-Mode CRITICALITY ignore EXTENSION HARQ-Preamble-Mode PRESENCE optional}|
+{ ID id-MIMO-Mode-Indicator CRITICALITY reject EXTENSION MIMO-Mode-Indicator PRESENCE optional}|
+{ ID id-SixtyfourQAM-UsageAllowedIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-UsageAllowedIndicator PRESENCE optional}|
+{ ID id-EnhancedHSServingCC-Abort CRITICALITY reject EXTENSION EnhancedHSServingCC-Abort PRESENCE optional}|
+{ ID id-UE-SupportIndicatorExtension CRITICALITY ignore EXTENSION UE-SupportIndicatorExtension PRESENCE optional}|
+{ ID id-power-offset-for-S-CPICH-for-MIMO-Request-Indicator CRITICALITY ignore EXTENSION PowerOffsetForSecondaryCPICHforMIMORequestIndicator PRESENCE optional}|
+{ ID id-Single-Stream-MIMO-Mode-Indicator CRITICALITY reject EXTENSION Single-Stream-MIMO-Mode-Indicator PRESENCE optional},
+ ...
+}
+
+HSDSCH-MACdFlow-ID ::= INTEGER (0..maxNrOfMACdFlows-1)
+
+HSDSCH-MACdFlow-Specific-InfoList ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InfoItem
+
+HSDSCH-MACdPDUSizeFormat ::= ENUMERATED {
+ indexedMACdPDU-Size,
+ flexibleMACdPDU-Size
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem ::= SEQUENCE {
+ hSDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority,
+ trafficClass TrafficClass,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional }|
+ {ID id-TrCH-SrcStatisticsDescr CRITICALITY ignore EXTENSION TrCH-SrcStatisticsDescr PRESENCE optional },
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoList-Response ::= SEQUENCE (SIZE (0..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InfoItem-Response
+
+HSDSCH-MACdFlow-Specific-InfoItem-Response ::= SEQUENCE {
+ hSDSCH-MACdFlow-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-InfoItem-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-Response-ExtIEs RNSAP-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,
+ trafficClass TrafficClass OPTIONAL,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Initial-Capacity-Allocation::= SEQUENCE (SIZE (1..maxNrOfPrioQueues)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-MaximumMACdPDU-SizeExtended CRITICALITY ignore EXTENSION MAC-PDU-SizeExtended PRESENCE optional},
+ ...
+}
+
+HSDSCH-InitialWindowSize ::= INTEGER (1..255)
+-- Number of MAC-d PDUs.
+
+
+
+HSDSCH-PreconfigurationInfo ::= SEQUENCE {
+ setsOfHS-SCCH-Codes SetsOfHS-SCCH-Codes,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning,
+ eDCH-FDD-DL-ControlChannelInformation EDCH-FDD-DL-ControlChannelInformation OPTIONAL,
+ hARQ-Preamble-Mode-Activation-Indicator HARQ-Preamble-Mode-Activation-Indicator OPTIONAL,
+ mIMO-N-M-Ratio MIMO-InformationResponse OPTIONAL,
+ continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-PreconfigurationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-PreconfigurationInfo-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-power-offset-for-S-CPICH-for-MIMO CRITICALITY ignore EXTENSION PowerOffsetForSecondaryCPICHforMIMO PRESENCE optional}|
+{ ID id-Additional-EDCH-Preconfiguration-Information CRITICALITY ignore EXTENSION Additional-EDCH-Preconfiguration-Information PRESENCE optional },
+ ...
+}
+
+Additional-EDCH-Preconfiguration-Information ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Preconfiguration-Information-ItemIEs
+
+Additional-EDCH-Preconfiguration-Information-ItemIEs ::= SEQUENCE {
+ eDCH-FDD-DL-ControlChannelInformation EDCH-FDD-DL-ControlChannelInformation,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Preconfiguration-Information-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Preconfiguration-Information-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HSDSCH-PreconfigurationSetup ::= SEQUENCE {
+ mAChsResetScheme MAChsResetScheme,
+ hSDSCH-Physical-Layer-Category INTEGER (1..64,...),
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM,
+ secondaryServingCells SecondaryServingCells OPTIONAL,
+ numPrimaryHS-SCCH-Codes NumHS-SCCH-Codes OPTIONAL,
+ hARQ-Preamble-Mode HARQ-Preamble-Mode OPTIONAL,
+ mIMO-ActivationIndicator MIMO-ActivationIndicator OPTIONAL,
+ hSDSCH-MACdPDUSizeFormat HSDSCH-MACdPDUSizeFormat OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ uE-with-enhanced-HS-SCCH-support-indicator NULL OPTIONAL,
+ continuous-Packet-Connectivity-HS-SCCH-Less-Information Continuous-Packet-Connectivity-HS-SCCH-Less-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCHPreconfigurationSetup-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCHPreconfigurationSetup-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UE-SupportIndicatorExtension CRITICALITY ignore EXTENSION UE-SupportIndicatorExtension PRESENCE optional}|
+{ ID id-power-offset-for-S-CPICH-for-MIMO-Request-Indicator CRITICALITY ignore EXTENSION PowerOffsetForSecondaryCPICHforMIMORequestIndicator PRESENCE optional},
+ ...
+}
+
+
+HS-SCCH-PreconfiguredCodes ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HS-SCCH-PreconfiguredCodesItem
+
+HS-SCCH-PreconfiguredCodesItem ::= SEQUENCE {
+ hS-SCCH-CodeNumber HS-SCCH-CodeNumber,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-PreconfiguredCodesItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-PreconfiguredCodesItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-CodeNumber ::= INTEGER (0..127)
+
+
+HSDSCH-RNTI ::= INTEGER (0..65535)
+
+
+HS-DSCH-serving-cell-change-information ::= SEQUENCE {
+ hS-PDSCH-RLID RL-ID,
+ hSDSCH-FDD-Information HSDSCH-FDD-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-serving-cell-change-information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCH-serving-cell-change-information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information CRITICALITY reject EXTENSION Continuous-Packet-Connectivity-HS-SCCH-Less-Information PRESENCE optional}|
+{ ID id-Continuous-Packet-Connectivity-DTX-DRX-Information CRITICALITY reject EXTENSION Continuous-Packet-Connectivity-DTX-DRX-Information PRESENCE optional},
+ ...
+}
+
+
+HS-DSCH-serving-cell-change-informationResponse ::= SEQUENCE {
+ hS-DSCH-serving-cell-choice HS-DSCH-serving-cell-change-choice,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-serving-cell-change-informationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCH-serving-cell-change-informationResponse-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-serving-cell-change-choice ::= CHOICE {
+ hS-serving-cell-change-successful HS-serving-cell-change-successful,
+ hS-serving-cell-change-unsuccessful HS-serving-cell-change-unsuccessful,
+ ...
+}
+
+HSDSCH-TBSizeTableIndicator ::= ENUMERATED {
+ octet-aligned
+}
+
+HS-serving-cell-change-successful ::= SEQUENCE {
+ hSDSCH-FDD-Information-Response HSDSCH-FDD-Information-Response,
+ hSDSCH-RNTI HSDSCH-RNTI,
+ iE-Extensions ProtocolExtensionContainer { { HS-serving-cell-change-successful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-serving-cell-change-successful-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response CRITICALITY ignore EXTENSION Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response PRESENCE optional},
+ ...
+}
+
+HS-serving-cell-change-unsuccessful ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { HS-serving-cell-change-unsuccessful-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-serving-cell-change-unsuccessful-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSPDSCH-First-Code-Index ::= INTEGER (1..maxHS-PDSCHCodeNrComp-1)
+ -- index of first HS-PDSCH code
+
+HSPDSCH-Second-Code-Index ::= INTEGER (1..maxHS-PDSCHCodeNrComp-1)
+ -- index of second HS-PDSCH code
+
+HSPDSCH-Second-Code-Support ::= BOOLEAN
+ -- true: applied, false: not applied
+
+
+HSDSCH-TDD-Information ::= SEQUENCE {
+ hSDSCH-MACdFlows-Information HSDSCH-MACdFlows-Information,
+ uE-Capabilities-Info UE-Capabilities-Info,
+ 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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-HSDSCH-MACdPDUSizeFormat CRITICALITY reject EXTENSION HSDSCH-MACdPDUSizeFormat PRESENCE optional}|
+{ ID id-HSSICH-SIRTarget CRITICALITY ignore EXTENSION UL-SIR PRESENCE optional}|
+-- Applicable to 1.28Mcps TDD only
+{ ID id-HSSICH-TPC-StepSize CRITICALITY ignore EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional}|
+-- Mandatory for 1.28Mcps TDD only
+{ ID id-tSN-Length CRITICALITY reject EXTENSION TSN-Length PRESENCE optional }|
+-- Applicable for 1.28Mcps TDD when using multiple frequencies
+{ ID id-MIMO-ActivationIndicator CRITICALITY reject EXTENSION MIMO-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+HSDSCH-TDD-Information-Response ::= SEQUENCE {
+ hSDSCH-MACdFlow-Specific-InfoList-Response HSDSCH-MACdFlow-Specific-InfoList-Response OPTIONAL,
+ hSSCCH-TDD-Specific-InfoList-Response HSSCCH-TDD-Specific-InfoList-Response OPTIONAL,
+ -- Not Applicable to 1.28Mcps TDD
+ hSSCCH-TDD-Specific-InfoList-Response-LCR HSSCCH-TDD-Specific-InfoList-Response-LCR OPTIONAL,
+ -- Not Applicable to 3.84Mcps TDD or 7.68Mcps TDD. This HSSCCH Specific Information is for the first Frequency repetition, HSSCCH Specific Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR
+ hSPDSCH-TDD-Specific-InfoList-Response HSPDSCH-TDD-Specific-InfoList-Response OPTIONAL,
+ hSPDSCH-TDD-Specific-InfoList-Response-LCR HSPDSCH-TDD-Specific-InfoList-Response-LCR OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ -- For 1.28Mcps TDD, this HARQ Memory Partitioning Information is for the first Frequency repetition, HARQ Memory Partitioning Information for Frequency repetitions 2 and on, should be defined in MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Information-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-User-Plane-Congestion-Fields-Inclusion CRITICALITY ignore EXTENSION User-Plane-Congestion-Fields-Inclusion PRESENCE optional}|
+{ ID id-hSSCCH-TDD-Specific-InfoList-Response768 CRITICALITY ignore EXTENSION HSSCCH-TDD-Specific-InfoList-Response768 PRESENCE optional}|
+{ ID id-hSPDSCH-TDD-Specific-InfoList-Response768 CRITICALITY ignore EXTENSION HSPDSCH-TDD-Specific-InfoList-Response768 PRESENCE optional}|
+{ ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional}|
+-- Applicable to 1.28Mcps TDD when using multiple frequencies ,This is the UARFCN for the first Frequency repetition
+{ ID id-multipleFreq-HSPDSCH-InformationList-ResponseTDDLCR CRITICALITY ignore EXTENSION MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR PRESENCE optional }|
+-- Applicable to 1.28Mcps TDD when using multiple frequencies ,This MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR is the HS-SCCH and HARQ Memory Partitioning information for the 2nd and beyond HS-PDSCH frequencies
+{ ID id-multicarrier-number CRITICALITY ignore EXTENSION Multicarrier-Number PRESENCE optional }|
+-- Applicable for 1.28Mcps TDD when using multiple frequencies
+{ID id-MIMO-SFMode-For-HSPDSCHDualStream CRITICALITY reject EXTENSION MIMO-SFMode-For-HSPDSCHDualStream PRESENCE optional}|
+{ID id-MIMO-ReferenceSignal-InformationListLCR CRITICALITY reject EXTENSION MIMO-ReferenceSignal-InformationListLCR PRESENCE optional}|
+{ ID id-TS0-HS-PDSCH-Indication-LCR CRITICALITY ignore EXTENSION TS0-HS-PDSCH-Indication-LCR PRESENCE optional }|
+{ ID id-Out-of-Sychronization-Window CRITICALITY reject EXTENSION Out-of-Sychronization-Window PRESENCE optional},
+ ...
+}
+
+Multicarrier-Number ::= INTEGER (1..maxHSDPAFrequency)
+
+HSPDSCH-TDD-Specific-InfoList-Response ::= SEQUENCE (SIZE (0..maxNrOfDLTs)) OF HSPDSCH-TDD-Specific-InfoItem-Response
+
+HSPDSCH-TDD-Specific-InfoItem-Response ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ iE-Extensions ProtocolExtensionContainer { { HSPDSCH-TDD-Specific-InfoItem-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSPDSCH-TDD-Specific-InfoItem-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSPDSCH-TDD-Specific-InfoList-Response-LCR ::= SEQUENCE (SIZE (1.. maxNrOfDLTsLCR)) OF HSPDSCH-TDD-Specific-InfoItem-Response-LCR
+
+HSPDSCH-TDD-Specific-InfoItem-Response-LCR ::= SEQUENCE {
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ iE-Extensions ProtocolExtensionContainer { { HSPDSCH-TDD-Specific-InfoItem-Response-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSPDSCH-TDD-Specific-InfoItem-Response-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSPDSCH-TDD-Specific-InfoList-Response768 ::= SEQUENCE (SIZE (0..maxNrOfDLTs)) OF HSPDSCH-TDD-Specific-InfoItem-Response768
+
+HSPDSCH-TDD-Specific-InfoItem-Response768 ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ iE-Extensions ProtocolExtensionContainer { { HSPDSCH-TDD-Specific-InfoItem-Response-768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSPDSCH-TDD-Specific-InfoItem-Response-768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-FDD-Specific-InfoList-Response ::= SEQUENCE (SIZE (0..maxNrOfHSSCCHCodes)) OF HSSCCH-FDD-Specific-InfoItem-Response
+
+HSSCCH-FDD-Specific-InfoItem-Response ::= SEQUENCE {
+ code-Number INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-FDD-Specific-InfoItem-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-FDD-Specific-InfoItem-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-PowerOffset ::= INTEGER (0..255)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+HSSCCH-TDD-Specific-InfoList-Response ::= SEQUENCE (SIZE (0..maxNrOfHSSCCHCodes)) OF HSSCCH-TDD-Specific-InfoItem-Response
+
+HSSCCH-TDD-Specific-InfoItem-Response ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ hSSICH-Info HSSICH-Info,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-TDD-Specific-InfoItem-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-TDD-Specific-InfoItem-Response-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-TDD-Specific-InfoList-Response-LCR ::= SEQUENCE (SIZE (0..maxNrOfHSSCCHCodes)) OF HSSCCH-TDD-Specific-InfoItem-Response-LCR
+
+HSSCCH-TDD-Specific-InfoItem-Response-LCR ::= SEQUENCE {
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode,
+ hSSICH-InfoLCR HSSICH-InfoLCR,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-TDD-Specific-InfoItem-Response-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-TDD-Specific-InfoItem-Response-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-TDD-Specific-InfoList-Response768 ::= SEQUENCE (SIZE (0..maxNrOfHSSCCHCodes)) OF HSSCCH-TDD-Specific-InfoItem-Response768
+
+HSSCCH-TDD-Specific-InfoItem-Response768 ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ hSSICH-Info768 HSSICH-Info768,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-TDD-Specific-InfoItem-Response768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-TDD-Specific-InfoItem-Response768-ExtIEs RNSAP-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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HS-SICH-ID-Extension CRITICALITY ignore EXTENSION HS-SICH-ID-Extension PRESENCE optional},
+ -- Applicable for 1.28Mcps TDD only when the HS-SICH ID IE is more than 31
+ ...
+}
+
+HSSICH-Info768 ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeslot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-Info-768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-Info-768-ExtIEs RNSAP-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 RNSAP-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]
+
+HS-SICH-ID ::= INTEGER (0..31)
+
+HS-SICH-ID-Extension ::= INTEGER (32..255,...)
+
+HSSCCH-CodeChangeIndicator ::= ENUMERATED {
+ hsSCCHCodeChangeNeeded
+}
+
+HSSCCH-Code-Change-Grant ::= ENUMERATED {
+ changeGranted
+}
+
+HS-PDSCH-Code-Change-Indicator ::= ENUMERATED {
+ hsPDSCHCodeChangeNeeded
+}
+
+HS-PDSCH-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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ID id-HS-PDSCH-Code-Change-Indicator CRITICALITY ignore EXTENSION HS-PDSCH-Code-Change-Indicator PRESENCE optional },
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MIMO-ReferenceSignal-InformationListLCR ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSICH-ReferenceSignal-InformationLCR
+
+HSSICH-ReferenceSignal-InformationLCR ::= SEQUENCE {
+ midambleConfigurationLCR MidambleConfigurationLCR,
+ midambleShift INTEGER (0..15),
+ timeSlotLCR TimeSlotLCR,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-ReferenceSignal-InformationLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-ReferenceSignal-InformationLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-LCR ::= SEQUENCE {
+ transport-Block-Size-List Transport-Block-Size-List-LCR,
+ repetition-Period-List-LCR Repetition-Period-List-LCR,
+ hS-DSCH-SPS-Reservation-Indicator SPS-Reservation-Indicator OPTIONAL,
+ hS-DSCH-SPS-Operation-Indicator HS-DSCH-SPS-Operation-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Semi-PersistentScheduling-Information-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Physical-Layer-Category ::= INTEGER (1..64)
+
+Transport-Block-Size-List-LCR ::= SEQUENCE (SIZE (1..maxNoOfTBSs-Mapping-HS-DSCH-SPS)) OF Transport-Block-Size-Item-LCR
+
+Transport-Block-Size-Item-LCR ::= SEQUENCE {
+ transport-Block-Size-maping-Index-LCR Transport-Block-Size-maping-Index-LCR,
+ transport-Block-Size-Index-LCR Transport-Block-Size-Index-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Transport-Block-Size-Item-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Transport-Block-Size-Item-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transport-Block-Size-maping-Index-LCR ::= INTEGER (0..maxNoOfTBSs-Mapping-HS-DSCH-SPS-1)
+
+Transport-Block-Size-Index-LCR ::= INTEGER (1..maxNoOfHS-DSCH-TBSsLCR)
+
+TS0-HS-PDSCH-Indication-LCR ::= NULL
+
+Repetition-Period-List-LCR ::= SEQUENCE (SIZE (1..maxNoOfRepetition-Period-LCR)) OF Repetition-Period-Item-LCR
+
+Repetition-Period-Item-LCR ::= SEQUENCE {
+ repetitionPeriodIndex RepetitionPeriodIndex,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Repetition-Period-Item-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Repetition-Period-Item-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RepetitionPeriodIndex ::= INTEGER (0..maxNoOfRepetitionPeriod-SPS-LCR-1)
+
+SPS-Reservation-Indicator ::= ENUMERATED {
+ reserve
+}
+
+HS-DSCH-SPS-Operation-Indicator ::= CHOICE {
+ logicalChannellevel LogicalChannellevel,
+ priorityQueuelevel PriorityQueuelevel,
+ ...
+}
+
+LogicalChannellevel ::= BIT STRING (SIZE (16))
+
+PriorityQueuelevel ::= BIT STRING (SIZE (8))
+
+HS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR ::= SEQUENCE {
+ transport-Block-Size-List Transport-Block-Size-List-LCR OPTIONAL,
+ repetition-Period-List-LCR Repetition-Period-List-LCR OPTIONAL,
+ hS-DSCH-SPS-Reservation-Indicator SPS-Reservation-Indicator OPTIONAL,
+ hS-DSCH-SPS-Operation-Indicator HS-DSCH-SPS-Operation-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-to-Modify-LCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR ::= SEQUENCE {
+ hS-SICH-InformationList-for-HS-DSCH-SPS HS-SICH-InformationList-for-HS-DSCH-SPS,
+ initial-HS-PDSCH-SPS-Resource Initial-HS-PDSCH-SPS-Resource OPTIONAL,
+ buffer-Size-for-HS-DSCH-SPS Process-Memory-Size OPTIONAL,
+ number-of-Processes-for-HS-DSCH-SPS Number-of-Processes-for-HS-DSCH-SPS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HS-SICH-InformationList-for-HS-DSCH-SPS ::= SEQUENCE (SIZE (1..maxNoOf-HS-SICH-SPS)) OF HS-SICH-InformationItem-for-HS-DSCH-SPS
+
+HS-SICH-InformationItem-for-HS-DSCH-SPS ::= SEQUENCE {
+ hS-SICH-Mapping-Index HS-SICH-Mapping-Index OPTIONAL,
+ hS-SICH-Type HS-SICH-Type,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationItem-for-HS-DSCH-SPS-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationItem-for-HS-DSCH-SPS-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Mapping-Index ::= INTEGER (0..maxNoOf-HS-SICH-SPS-1)
+
+HS-SICH-Type ::= CHOICE {
+ hS-SCCH-Associated-HS-SICH HS-SCCH-Associated-HS-SICH,
+ non-HS-SCCH-Associated-HS-SICH Non-HS-SCCH-Associated-HS-SICH,
+ ...
+}
+
+HS-SCCH-Associated-HS-SICH ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ extended-HS-SICH-ID HS-SICH-ID-Extension OPTIONAL,
+...
+}
+
+
+Non-HS-SCCH-Associated-HS-SICH::= SEQUENCE {
+ non-HS-SCCH-Aassociated-HS-SICH-ID Non-HS-SCCH-Aassociated-HS-SICH-ID,
+...
+}
+
+Non-HS-SCCH-Aassociated-HS-SICH-ID ::= INTEGER (0..255)
+
+Initial-HS-PDSCH-SPS-Resource::= SEQUENCE {
+ repetitionPeriodIndex RepetitionPeriodIndex,
+ repetitionLength RepetitionLength OPTIONAL,
+ hS-PDSCH-Offset TDD-PhysicalChannelOffset,
+ hS-PDSCH-Midamble-Configuation MidambleShiftLCR,
+ timeslot-Resource-Related-Information HS-DSCH-TimeslotResourceLCR,
+ startCode TDD-ChannelisationCode,
+ endCode TDD-ChannelisationCode,
+ transport-Block-Size-Index Transport-Block-Size-Index-LCR,
+ modulationType ModulationSPS-LCR,
+ hS-SICH-Mapping-Index HS-SICH-Mapping-Index,
+ iE-Extensions ProtocolExtensionContainer { { Initial-HS-PDSCH-SPS-Resource-ExtIEs } } OPTIONAL,
+...
+}
+
+Initial-HS-PDSCH-SPS-Resource-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCH-TimeslotResourceLCR ::= BIT STRING (SIZE (5))
+
+ModulationSPS-LCR ::= ENUMERATED {
+ qPSK,
+ sixteenQAM,
+ ...
+}
+
+Number-of-Processes-for-HS-DSCH-SPS ::= INTEGER (1..16)
+
+-- I
+
+IMEI ::= OCTET STRING (SIZE(8))
+
+IMEISV ::= OCTET STRING (SIZE(8))
+
+IMSI ::= OCTET STRING (SIZE(3..8))
+
+Inactivity-Threshold-for-UE-DTX-Cycle2 ::= ENUMERATED {v1, v4, v8, v16, v32, v64, v128, v256}
+-- Unit E-DCH TTI
+
+Inactivity-Threshold-for-UE-DRX-Cycle ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128, v256, v512}
+-- Unit subframe
+
+Inactivity-Threshold-for-UE-Grant-Monitoring ::= ENUMERATED {v0, v1, v2, v4, v8, v16, v32, v64, v128, v256}
+-- Unit E-DCH TTI
+
+
+
+InformationAvailable::= SEQUENCE {
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { InformationAvailable-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationAvailable-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeID ::= INTEGER (0..1048575)
+
+InformationNotAvailable ::= NULL
+
+InformationReportCharacteristics ::= CHOICE {
+ onDemand NULL,
+ periodic PeriodicInformation,
+ onModification OnModificationInformation,
+ ...
+}
+
+InformationReportPeriodicity ::= CHOICE {
+ min INTEGER (1..60,...),
+-- Unit min, Step 1min
+ hour INTEGER (1..24,...),
+-- Unit hour, Step 1hour
+ ...
+}
+
+InformationThreshold ::= CHOICE {
+ dGPSThreshold DGPSThreshold,
+ ...,
+ dGANSSThreshold DGANSSThreshold
+}
+
+
+InformationType ::= SEQUENCE {
+ informationTypeItem ENUMERATED {
+ gA-AccessPointPositionwithAltitude,
+ gA-AccessPointPosition,
+ iPDLParameters,
+ gPSInformation,
+ dGPSCorrections,
+ gPS-RX-POS,
+ sFNSFN-GA-AccessPointPosition,
+ ...,
+ cell-Capacity-Class,
+ nACC-Related-Data,
+ mBMSBearerServiceFullAddress,
+ interFrequencyCellInformation,
+ gANSSInformation,
+ dGANSSCorrections,
+ gANSS-RX-Pos,
+ mBMS-Counting-Information,
+ mBMS-Transmission-Mode,
+ mBMS-Neighbouring-Cell-Information,
+ mBMS-RLC-Sequence-Number
+ },
+ gPSInformation GPSInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { InformationType-ExtIEs} } OPTIONAL,
+ ...
+}
+
+-- The GPS Information IE shall be present if the Information Exchange Type IE indicates 'GPS Information'
+-- For information exchange on the Iur-g interface, only the Cell Capacity Class is used.
+
+InformationType-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+-- The following IE shall be present if the Information Type Item IE indicates 'GANSS Information'
+ { ID id-GANSS-Information CRITICALITY ignore EXTENSION GANSS-Information PRESENCE conditional }|
+-- The following IE shall be present if the Information Type Item IE indicates 'DGANSS Corrections'
+ { ID id-DGANSS-Corrections-Req CRITICALITY ignore EXTENSION DGANSS-Corrections-Req PRESENCE conditional }|
+-- The following IE shall be present if the Information Type Item IE indicates 'MBMS RLC Sequence Number'
+ { ID id-MBMS-RLC-Sequence-Number-Information CRITICALITY ignore EXTENSION MBMS-RLC-Sequence-Number-Information PRESENCE conditional },
+ ...
+}
+
+Initial-DL-DPCH-TimingAdjustment-Allowed ::= ENUMERATED {
+ initial-DL-DPCH-TimingAdjustment-Allowed
+}
+
+InnerLoopDLPCStatus ::= ENUMERATED {active, inactive}
+
+IPDLParameters ::= CHOICE {
+ iPDL-FDD-Parameters IPDL-FDD-Parameters,
+ iPDL-TDD-Parameters IPDL-TDD-Parameters, --3.84Mcps TDD and 7.68Mcps TDD only
+ ...,
+ extension-IPDLParameters Extension-IPDLParameters
+}
+
+Extension-IPDLParameters ::= ProtocolIE-Single-Container {{ Extension-IPDLParametersIE }}
+
+Extension-IPDLParametersIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-IPDL-TDD-ParametersLCR CRITICALITY reject TYPE IPDL-TDD-ParametersLCR PRESENCE mandatory },
+ ...
+}
+
+Inter-Frequency-Cell-List ::= SEQUENCE (SIZE (0..maxCellsMeas)) OF Inter-Frequency-Cell
+
+Inter-Frequency-Cell ::= SEQUENCE {
+ dL-UARFCN UARFCN,
+ uL-UARFCN UARFCN OPTIONAL,
+ primaryScramblingCode PrimaryScramblingCode,
+ iE-Extensions ProtocolExtensionContainer { {Inter-Frequency-Cell-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Inter-Frequency-Cell-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Inter-Frequency-Cell-Information ::= SEQUENCE {
+ inter-Frequency-Cell-Information-SIB11 Inter-Frequency-Cell-Information-SIB11,
+ inter-Frequency-Cell-Information-SIB12 Inter-Frequency-Cell-Information-SIB12,
+ iE-Extensions ProtocolExtensionContainer { {Inter-Frequency-Cell-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Inter-Frequency-Cell-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Inter-Frequency-Cell-Information-SIB11 ::= SEQUENCE (SIZE (0..2)) OF Inter-Frequency-Cells-Information-SIB11-Per-Indication
+
+Inter-Frequency-Cell-Information-SIB12 ::= SEQUENCE (SIZE (0..2)) OF Inter-Frequency-Cells-Information-SIB12-Per-Indication
+
+Inter-Frequency-Cells-Information-SIB11-Per-Indication ::= SEQUENCE {
+ inter-Frequency-Cell-Indication-SIB11 Inter-Frequency-Cell-Indication,
+ inter-Frequency-Cell-List-SIB11 Inter-Frequency-Cell-SIB11-or-SIB12-List,
+ iE-Extensions ProtocolExtensionContainer { { Inter-Frequency-Cells-Information-SIB11-Per-Indication-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Inter-Frequency-Cells-Information-SIB11-Per-Indication-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Inter-Frequency-Cells-Information-SIB12-Per-Indication ::= SEQUENCE {
+ inter-Frequency-Cell-Indication-SIB12 Inter-Frequency-Cell-Indication,
+ inter-Frequency-Cell-List-SIB12 Inter-Frequency-Cell-SIB11-or-SIB12-List,
+ iE-Extensions ProtocolExtensionContainer { { Inter-Frequency-Cells-Information-SIB12-Per-Indication-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Inter-Frequency-Cells-Information-SIB12-Per-Indication-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Inter-Frequency-Cell-Indication ::= INTEGER (0..1)
+Inter-Frequency-Cell-SIB11-or-SIB12-List ::= SEQUENCE (SIZE (0..maxCellSIB11OrSIB12)) OF Inter-Frequency-Cell-SIB11-or-SIB12
+
+Inter-Frequency-Cell-SIB11-or-SIB12 ::= SEQUENCE {
+ interFrequencyCellID InterFrequencyCellID,
+ dL-UARFCN UARFCN,
+ uL-UARFCN UARFCN OPTIONAL,
+ primaryScramblingCode PrimaryScramblingCode,
+ iE-Extensions ProtocolExtensionContainer { {Inter-Frequency-Cell-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterFrequencyCellID ::= INTEGER (0..31)
+
+
+IPDL-FDD-Parameters ::= SEQUENCE {
+ iPSpacingFDD IPSpacingFDD,
+ iPLength IPLength,
+ iPOffset IPOffset,
+ seed Seed,
+ burstModeParameters BurstModeParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDL-FDD-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDL-FDD-Parameters-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDL-TDD-Parameters ::= SEQUENCE {
+ iPSpacingTDD IPSpacingTDD,
+ iPStart IPStart,
+ iPSlot IPSlot,
+ iP-P-CCPCH IP-P-CCPCH,
+ burstModeParameters BurstModeParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDL-TDD-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+-- The BurstModeParameters IE shall be included if the Idle Periods are arranged in Burst Mode.
+
+IPDL-TDD-Parameters-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDL-TDD-ParametersLCR ::= SEQUENCE {
+ iPSpacingTDD IPSpacingTDD,
+ iPStart IPStart,
+ iPSub IPSub,
+ burstModeParameters BurstModeParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDL-TDD-ParametersLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+-- The BurstModeParameters IE shall be included if the Idle Periods are arranged in Burst Mode.
+
+IPDL-TDD-ParametersLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPLength ::= ENUMERATED {
+ ipl5,
+ ipl10,
+ ...
+}
+
+IPMulticastAddress ::= OCTET STRING (SIZE (4..16))
+
+IPOffset ::= INTEGER (0..9)
+
+IP-P-CCPCH ::= ENUMERATED {
+ switchOff-1-Frame,
+ switchOff-2-Frames
+}
+
+IPSlot ::= INTEGER (0..14)
+
+IPSpacingFDD ::= ENUMERATED {
+ ipsF5,
+ ipsF7,
+ ipsF10,
+ ipsF15,
+ ipsF20,
+ ipsF30,
+ ipsF40,
+ ipsF50,
+ ...
+}
+
+IPSpacingTDD ::= ENUMERATED {
+ ipsT30,
+ ipsT40,
+ ipsT50,
+ ipsT70,
+ ipsT100,
+ ...
+}
+
+IPStart ::= INTEGER (0..4095)
+
+IPSub ::= ENUMERATED {
+ first,
+ second,
+ both
+}
+
+IdleIntervalInformation ::= SEQUENCE {
+ idleIntervalInfo-k INTEGER(2..3),
+ idleIntervalInfo-offset INTEGER(0..7),
+ ...
+}
+
+-- J
+-- K
+-- L
+
+LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H))
+
+LimitedPowerIncrease ::= ENUMERATED {
+ used,
+ not-used
+}
+
+List-Of-PLMNs ::= SEQUENCE (SIZE (1..maxNrOfBroadcastPLMNs)) OF PLMN-Identity
+
+L3-Information ::= BIT STRING
+
+Load-Value-IncrDecrThres ::= INTEGER(0..100)
+
+Load-Value ::= INTEGER(0..100)
+
+LoadValue ::= SEQUENCE {
+ uplinkLoadValue INTEGER(0..100),
+ downlinkLoadValue INTEGER(0..100)
+}
+
+LCRTDD-Uplink-Physical-Channel-Capability ::= SEQUENCE {
+ maxTimeslotsPerSubFrame INTEGER(1..6),
+ maxPhysChPerTimeslot ENUMERATED{ts1, ts2, ts3, ts4,...},
+ iE-Extensions ProtocolExtensionContainer { { LCRTDD-Uplink-Physical-Channel-Capability-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LCRTDD-Uplink-Physical-Channel-Capability-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- M
+
+MaxNrOfUL-DPCHs ::= INTEGER (1..6)
+
+MAC-c-sh-SDU-Length ::= INTEGER (1..5000)
+
+MAC-c-sh-SDU-LengthList ::= SEQUENCE(SIZE(1..maxNrOfMACcshSDU-Length)) OF MAC-c-sh-SDU-Length
+
+MAC-DTX-Cycle-2ms ::= ENUMERATED {v1, v4, v5, v8, v10, v16, v20}
+
+MAC-DTX-Cycle-10ms ::= ENUMERATED {v5, v10, v20}
+
+MAC-ehs-Reset-Timer ::= ENUMERATED {v1, v2, v3, v4,...}
+
+MAC-Inactivity-Threshold ::= ENUMERATED {v1, v2, v4, v8, v16, v32, v64, v128, v256, v512, infinity}
+ -- Unit subframe
+
+MACdPDU-Size ::= INTEGER (1..5000,...)
+ -- In case of E-DCH value 8 and values not multiple of 8 shall not be used
+
+MAC-PDU-SizeExtended ::= INTEGER (1..1504,...,1505)
+ -- In case of E-DCH value 1 shall not be used
+
+MACdPDU-Size-IndexList ::= SEQUENCE (SIZE (1..maxNrOfPDUIndexes)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MACdPDU-Size-IndexList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfPDUIndexes)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MACes-Guaranteed-Bitrate ::= INTEGER (0..16777215,...,16777216..256000000)
+
+MACes-Maximum-Bitrate-LCR ::= INTEGER (0..256000000,...)
+
+MACeReset-Indicator ::= ENUMERATED {mACeReset}
+
+MAChsGuaranteedBitRate ::= INTEGER (0..16777215,...,16777216..256000000)
+
+MAChsReorderingBufferSize-for-RLC-UM ::= INTEGER (0..300,...)
+-- Unit kBytes
+
+MAC-hsWindowSize ::= ENUMERATED {v4, v6, v8, v12, v16, v24, v32,... , v64, v128}
+
+MAChsResetScheme ::= ENUMERATED {
+ always,
+ interNodeB-change
+}
+
+MaximumAllowedULTxPower ::= INTEGER (-50..33)
+
+Max-Bits-MACe-PDU-non-scheduled ::= INTEGER(1..maxNrOfBits-MACe-PDU-non-scheduled)
+
+MaxNrDLPhysicalchannels ::= INTEGER (1..224)
+-- 1.28Mcps TDD 97 - 224 are unused
+
+MaxNrDLPhysicalchannels768 ::= INTEGER (1..448)
+
+MaxNrDLPhysicalchannelsTS ::= INTEGER (1..16)
+
+MaxNrDLPhysicalchannelsTS768 ::= INTEGER (1..32)
+
+MaxNr-Retransmissions-EDCH ::= INTEGER (0..15)
+
+MaxNrTimeslots ::= INTEGER (1..14)
+-- 1.28Mcps values 7-14 are unused
+
+
+MaxNrULPhysicalchannels ::= INTEGER (1..2)
+
+Max-Set-E-DPDCHs ::= ENUMERATED {
+ vN256, vN128, vN64, vN32, vN16, vN8, vN4, v2xN4, v2xN2, v2xN2plus2xN4,
+ ...,
+ v2xM2plus2xM4
+ }
+-- Values releated to [9]
+
+
+Max-UE-DTX-Cycle ::= ENUMERATED {
+ v5, v10, v20, v40, v64, v80, v128, v160,
+ ...
+ }
+
+MBMS-Bearer-Service-Full-Address ::= SEQUENCE {
+ accessPointName AccessPointName,
+ iPMulticastAddress IPMulticastAddress,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-Service-Full-Address-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-Service-Full-Address-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Bearer-Service-List ::= SEQUENCE (SIZE (1..maxNrOfMBMSServices)) OF TMGI
+
+MBMS-Bearer-ServiceItemFDD ::=SEQUENCE{
+ tmgi TMGI,
+ transmissionMode TransmissionMode,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-ServiceItemFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+MBMS-Bearer-ServiceItemFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Bearer-ServiceItemFDD-PFL ::=SEQUENCE{
+ tmgi TMGI,
+ transmissionMode TransmissionMode OPTIONAL,
+ preferredFrequencyLayer UARFCN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-ServiceItemFDD-PFL-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-ServiceItemFDD-PFL-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Bearer-ServiceItemTDD ::=SEQUENCE{
+ tmgi TMGI,
+ transmissionMode TransmissionMode,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-ServiceItemTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-ServiceItemTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Bearer-ServiceItemTDD-PFL ::=SEQUENCE{
+ tmgi TMGI,
+ transmissionMode TransmissionMode OPTIONAL,
+ preferredFrequencyLayer UARFCN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-ServiceItemTDD-PFL-ExtIEs} } OPTIONAL,
+ ...
+}
+MBMS-Bearer-ServiceItemTDD-PFL-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSChannelTypeInfo ::= SEQUENCE {
+ tMGI TMGI,
+ pTM-Cell-List PTMCellList OPTIONAL,
+ pTP-Cell-List PTPCellList OPTIONAL,
+ not-Provided-Cell-List NotProvidedCellList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBMSChannelTypeInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSChannelTypeInfo-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSChannelTypeCellList ::= SEQUENCE {
+ c-ID C-ID,
+ affectedUEInformationForMBMS AffectedUEInformationForMBMS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBMSChannelTypeCellList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSChannelTypeCellList-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSPreferredFreqLayerInfo ::= SEQUENCE {
+ tMGI TMGI,
+ preferredFrequencyLayerInfo PreferredFrequencyLayerInfo,
+ iE-Extensions ProtocolExtensionContainer { { MBMSPreferredFreqLayerInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+MBMSPreferredFreqLayerInfo-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Neighbouring-Cell-Information ::= SEQUENCE {
+ mBMS-ConcatenatedServiceList MBMS-ConcatenatedServiceList,
+ l3-Information-1 L3-Information OPTIONAL,
+-- This IE contains MBMS COMMON P-T-M RB INFORMATION defined in [16]
+ l3-Information-2 L3-Information OPTIONAL,
+-- This IE contains MBMS CURRENT CELL P-T-M RB INFORMATION defined in [16]
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Neighbouring-Cell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Neighbouring-Cell-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+MBMS-ConcatenatedServiceList ::= SEQUENCE (SIZE (1..maxlengthMBMSconcatservlists)) OF TMGI
+
+
+MBMS-RLC-Sequence-Number-Information ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMS-RLC-Sequence-Number-Information-List
+
+MBMS-RLC-Sequence-Number-Information-List ::= SEQUENCE {
+ c-ID C-ID,
+ mBMS-Bearer-Service-List-RLC MBMS-Bearer-Service-List-RLC,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-RLC-Sequence-Number-Information-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-RLC-Sequence-Number-Information-List-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Bearer-Service-List-RLC::= SEQUENCE (SIZE (1..maxNrOfMBMSServices)) OF MBMS-Bearer-Service-List-RLCinfo
+
+MBMS-Bearer-Service-List-RLCinfo ::= SEQUENCE {
+ tmgi TMGI,
+ time-Stamp Time-Stamp,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-Service-List-RLCinfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-Service-List-RLCinfo-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBSFN-Cluster-Identity ::= INTEGER (0..65535)
+
+MCCH-Message-List ::= SEQUENCE (SIZE (1.. maxNrOfMCCHMessages)) OF L3-Information
+
+MCCH-Configuration-Info ::= SEQUENCE {
+ secondaryCCPCHSystemInformationMBMS Secondary-CCPCH-System-Information-MBMS,
+ ie-Extensions ProtocolExtensionContainer { {MCCH-Configuration-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MCCH-Configuration-Info-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-System-Information-MBMS ::= BIT STRING
+
+MBSFN-Scheduling-Transmission-Time-Interval-Info-List ::= SEQUENCE (SIZE (1.. maxNrOfMBMSL3)) OF MBSFN-Scheduling-Transmission-Time-Interval-Item
+
+MBSFN-Scheduling-Transmission-Time-Interval-Item ::= SEQUENCE {
+ tMGI TMGI,
+ mbsfnSchedulingTransmissionTimeInterval MbsfnSchedulingTransmissionTimeInterval,
+ ie-Extensions ProtocolExtensionContainer { { MBSFN-Scheduling-Transmission-Time-Interval-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MBSFN-Scheduling-Transmission-Time-Interval-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+MbsfnSchedulingTransmissionTimeInterval ::= ENUMERATED {tti4, tti8, tti16, tti32, tti64, tti128, tti256}
+
+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
+
+MinimumSpreadingFactor ::= INTEGER (1..16)
+
+MinimumSpreadingFactor768 ::= INTEGER (1..32)
+
+MultipleURAsIndicator ::= ENUMERATED {
+ multiple-URAs-exist,
+ single-URA-exists
+}
+
+MaxAdjustmentStep ::= INTEGER(1..10)
+-- Unit Slot
+
+MeasurementChangeTime ::= INTEGER (1..6000,...)
+-- The MeasurementChangeTime gives the MeasurementChangeTime
+-- in number of 10 ms periods.
+-- E.g. Value 6000 means 60000ms(1min)
+-- Unit is ms, Step is 10 ms
+
+
+MeasurementHysteresisTime ::= INTEGER (1..6000,...)
+-- The MeasurementHysteresisTime gives the
+-- MeasurementHysteresisTime in number of 10 ms periods.
+-- E.g. Value 6000 means 60000ms(1min)
+-- Unit is ms, Step is 10ms
+
+MeasurementIncreaseDecreaseThreshold ::= CHOICE {
+ 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,
+ ...,
+ extension-MeasurementIncreaseDecreaseThreshold Extension-MeasurementIncreaseDecreaseThreshold
+}
+
+Extension-MeasurementIncreaseDecreaseThreshold ::= ProtocolIE-Single-Container {{ Extension-MeasurementIncreaseDecreaseThresholdIE }}
+
+Extension-MeasurementIncreaseDecreaseThresholdIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-Load-Value-IncrDecrThres CRITICALITY reject TYPE Load-Value-IncrDecrThres PRESENCE mandatory }|
+ { ID id-Transmitted-Carrier-Power-Value-IncrDecrThres CRITICALITY reject TYPE Transmitted-Carrier-Power-Value-IncrDecrThres PRESENCE mandatory }|
+ { ID id-Received-Total-Wideband-Power-Value-IncrDecrThres CRITICALITY reject TYPE Received-Total-Wideband-Power-Value-IncrDecrThres PRESENCE mandatory }|
+ { ID id-UL-Timeslot-ISCP-Value-IncrDecrThres CRITICALITY reject TYPE UL-Timeslot-ISCP-Value-IncrDecrThres PRESENCE mandatory }|
+ { ID id-RT-Load-Value-IncrDecrThres CRITICALITY reject TYPE RT-Load-Value-IncrDecrThres PRESENCE mandatory }|
+ { ID id-NRT-Load-Information-Value-IncrDecrThres CRITICALITY reject TYPE NRT-Load-Information-Value-IncrDecrThres PRESENCE mandatory }|
+ { ID id-UpPTSInterferenceValue CRITICALITY reject TYPE UpPTSInterferenceValue PRESENCE mandatory }
+}
+
+MeasurementRecoveryBehavior ::= NULL
+
+MeasurementRecoveryReportingIndicator ::= NULL
+
+MeasurementRecoverySupportIndicator ::= NULL
+
+MeasurementThreshold ::= CHOICE {
+ 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,
+ ...,
+ extension-MeasurementThreshold Extension-MeasurementThreshold
+}
+
+Extension-MeasurementThreshold ::= ProtocolIE-Single-Container {{ Extension-MeasurementThresholdIE }}
+
+Extension-MeasurementThresholdIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-TUTRANGPSMeasurementThresholdInformation CRITICALITY reject TYPE TUTRANGPSMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-SFNSFNMeasurementThresholdInformation CRITICALITY reject TYPE SFNSFNMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-Load-Value CRITICALITY reject TYPE Load-Value PRESENCE mandatory }|
+ { ID id-Transmitted-Carrier-Power-Value CRITICALITY reject TYPE Transmitted-Carrier-Power-Value PRESENCE mandatory }|
+ { ID id-Received-Total-Wideband-Power-Value CRITICALITY reject TYPE Received-Total-Wideband-Power-Value PRESENCE mandatory }|
+ { ID id-UL-Timeslot-ISCP-Value CRITICALITY reject TYPE UL-Timeslot-ISCP-Value PRESENCE mandatory }|
+ { ID id-RT-Load-Value CRITICALITY reject TYPE RT-Load-Value PRESENCE mandatory }|
+ { ID id-NRT-Load-Information-Value CRITICALITY reject TYPE NRT-Load-Information-Value 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-UpPTSInterferenceValue CRITICALITY reject TYPE UpPTSInterferenceValue PRESENCE mandatory }|
+ { ID id-Rx-Timing-Deviation-Value-768 CRITICALITY reject TYPE Rx-Timing-Deviation-Value-768 PRESENCE mandatory}|
+ { ID id-Rx-Timing-Deviation-Value-ext CRITICALITY reject TYPE Rx-Timing-Deviation-Value-ext PRESENCE mandatory}|
+ { ID id-Extended-Round-Trip-Time-Value CRITICALITY reject TYPE Extended-Round-Trip-Time-Value PRESENCE mandatory }|
+ { ID id-TUTRANGANSSMeasurementThresholdInformation CRITICALITY reject TYPE TUTRANGANSSMeasurementThresholdInformation PRESENCE mandatory }
+}
+
+MidambleConfigurationBurstType1And3 ::= ENUMERATED {v4, v8, v16}
+
+MidambleConfigurationBurstType2 ::= ENUMERATED {v3, v6}
+
+MidambleConfigurationLCR ::= ENUMERATED {v2, v4, v6, v8, v10, v12, v14, v16, ...}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MidambleShiftAndBurstType768 ::= CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2-768 MidambleConfigurationBurstType2-768,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftShort768,
+ ...
+ },
+ ...
+ },
+ type3 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ ...
+}
+
+MidambleConfigurationBurstType2-768 ::= ENUMERATED {v4, v8}
+
+MidambleShiftShort768 ::= INTEGER (0..7)
+
+MIMO-ActivationIndicator ::= NULL
+
+MIMO-InformationResponse ::= SEQUENCE {
+ mIMO-PilotConfiguration MIMO-PilotConfiguration,
+ mIMO-N-M-Ratio MIMO-N-M-Ratio,
+ iE-Extensions ProtocolExtensionContainer { { MIMO-InformationResponse-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MIMO-InformationResponse-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MIMO-Mode-Indicator ::= ENUMERATED {
+ activate,
+ deactivate
+}
+
+MIMO-N-M-Ratio ::= ENUMERATED {v1-2, v2-3, v3-4, v4-5, v5-6, v6-7, v7-8, v8-9, v9-10, v1-1,...}
+
+MIMO-PilotConfiguration ::= CHOICE {
+ primary-and-secondary-CPICH MIMO-S-CPICH-Channelisation-Code,
+ normal-and-diversity-primary-CPICH NULL,
+ ...
+}
+
+MIMO-S-CPICH-Channelisation-Code ::= INTEGER (0..255)
+
+MinUL-ChannelisationCodeLength ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256
+}
+
+MinimumReducedE-DPDCH-GainFactor ::= ENUMERATED {m8-15, m11-15, m15-15, m21-15, m30-15, m42-15, m60-15, m84-15,...}
+
+
+ModifyPriorityQueue ::= CHOICE {
+ addPriorityQueue PriorityQueue-InfoItem-to-Add,
+ modifyPriorityQueue PriorityQueue-InfoItem-to-Modify,
+ deletePriorityQueue PriorityQueue-Id,
+ ...
+}
+
+Modulation ::= ENUMERATED {
+ qPSK,
+ eightPSK,
+ ...
+}
+
+MulticellEDCH-Information ::= ProtocolIE-Single-Container { {MulticellEDCH-InformationItem} }
+
+MulticellEDCH-InformationItem RNSAP-PROTOCOL-IES ::= {
+ { ID id-MulticellEDCH-Information CRITICALITY ignore TYPE MulticellEDCH-InformationItemIEs PRESENCE mandatory }
+}
+
+MulticellEDCH-InformationItemIEs::= SEQUENCE {
+ dL-PowerBalancing-Information DL-PowerBalancing-Information OPTIONAL,
+ minimumReducedE-DPDCH-GainFactor MinimumReducedE-DPDCH-GainFactor OPTIONAL,
+ secondary-UL-Frequency-Activation-State Secondary-UL-Frequency-Activation-State OPTIONAL,
+ f-DPCH-SlotFormat F-DPCH-SlotFormat OPTIONAL,
+ common-DL-ReferencePowerInformation DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MulticellEDCH-InformationItemIEs-ExtIEs } } OPTIONAL,
+ ...
+
+}
+
+MulticellEDCH-InformationItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MulticellEDCH-RL-SpecificInformation ::= ProtocolIE-Single-Container { {MulticellEDCH-RL-SpecificInformationItem} }
+
+MulticellEDCH-RL-SpecificInformationItem RNSAP-PROTOCOL-IES ::= {
+ { ID id-MulticellEDCH-RL-SpecificInformation CRITICALITY ignore TYPE MulticellEDCH-RL-SpecificInformationItemIEs PRESENCE mandatory }
+}
+
+MulticellEDCH-RL-SpecificInformationItemIEs::= SEQUENCE {
+ extendedPropagationDelay ExtendedPropagationDelay OPTIONAL,
+ enhanced-PrimaryCPICH-EcNo Enhanced-PrimaryCPICH-EcNo OPTIONAL,
+ dl-Reference-Power DL-Power OPTIONAL,
+ phase-Reference-Update-Indicator Phase-Reference-Update-Indicator OPTIONAL,
+ additional-e-DCH-DL-Control-Channel-Grant NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MulticellEDCH-RL-SpecificInformationItemIEs-ExtIEs } } OPTIONAL,
+ ...
+
+}
+
+MulticellEDCH-RL-SpecificInformationItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-PLMN-List ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ list-Of-PLMNs List-Of-PLMNs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-PLMN-List-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+Multiple-PLMN-List-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MultiplexingPosition ::= ENUMERATED {
+ fixed,
+ flexible
+}
+
+MAChs-ResetIndicator ::= ENUMERATED{
+ mAChs-NotReset
+}
+
+MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR ::= SEQUENCE (SIZE (1.. maxHSDPAFrequency-1)) OF MultipleFreq-HSPDSCH-InformationItem-ResponseTDDLCR
+--Includes the 2nd through the max number of frequency repetitions
+
+MultipleFreq-HSPDSCH-InformationItem-ResponseTDDLCR ::= SEQUENCE{
+ hSSCCH-TDD-Specific-InfoList-Response-LCR HSSCCH-TDD-Specific-InfoList-Response-LCR OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ uARFCN UARFCN,
+ -- This is the UARFCN for the second and beyond Frequency repetition.
+ iE-Extensions ProtocolExtensionContainer { { MultipleFreq-HSPDSCH-InformationItem-ResponseTDDLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MultipleFreq-HSPDSCH-InformationItem-ResponseTDDLCR-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+MIMO-SFMode-For-HSPDSCHDualStream ::= ENUMERATED {
+ sF1,
+ sF1SF16
+}
+
+-- N
+
+NACC-Related-Data ::= SEQUENCE {
+ gERAN-SI-Type GERAN-SI-Type,
+ iE-Extensions ProtocolExtensionContainer { {NACC-Related-Data-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+NACC-Related-Data-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Nack-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [21] subclause 4.2.1
+
+NCC ::= BIT STRING (SIZE (3))
+
+Neighbouring-UMTS-CellInformation ::= SEQUENCE (SIZE (1..maxNrOfNeighbouringRNCs)) OF ProtocolIE-Single-Container {{ Neighbouring-UMTS-CellInformationItemIE }}
+
+Neighbouring-UMTS-CellInformationItemIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-Neighbouring-UMTS-CellInformationItem CRITICALITY ignore TYPE Neighbouring-UMTS-CellInformationItem PRESENCE mandatory }
+}
+
+Neighbouring-UMTS-CellInformationItem ::= SEQUENCE {
+ rNC-ID RNC-ID,
+ cN-PS-DomainIdentifier CN-PS-DomainIdentifier OPTIONAL,
+ cN-CS-DomainIdentifier CN-CS-DomainIdentifier OPTIONAL,
+ neighbouring-FDD-CellInformation Neighbouring-FDD-CellInformation OPTIONAL,
+ neighbouring-TDD-CellInformation Neighbouring-TDD-CellInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Neighbouring-UMTS-CellInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Neighbouring-UMTS-CellInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-neighbouring-LCR-TDD-CellInformation CRITICALITY ignore EXTENSION Neighbouring-LCR-TDD-CellInformation PRESENCE optional }|
+ { ID id-Extended-RNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional },
+ ...
+}
+
+Neighbouring-FDD-CellInformation ::= SEQUENCE ( SIZE (1..maxNrOfFDDNeighboursPerRNC,...)) OF Neighbouring-FDD-CellInformationItem
+
+Neighbouring-FDD-CellInformationItem ::= SEQUENCE {
+ c-ID C-ID,
+ uARFCNforNu UARFCN,
+ uARFCNforNd UARFCN,
+ frameOffset FrameOffset OPTIONAL,
+ primaryScramblingCode PrimaryScramblingCode,
+ primaryCPICH-Power PrimaryCPICH-Power OPTIONAL,
+ cellIndividualOffset CellIndividualOffset OPTIONAL,
+ txDiversityIndicator TxDiversityIndicator,
+ sTTD-SupportIndicator STTD-SupportIndicator OPTIONAL,
+ closedLoopMode1-SupportIndicator ClosedLoopMode1-SupportIndicator OPTIONAL,
+ not-used-closedLoopMode2-SupportIndicator NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Neighbouring-FDD-CellInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Neighbouring-FDD-CellInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RestrictionStateIndicator CRITICALITY ignore EXTENSION RestrictionStateIndicator PRESENCE optional }|
+ { ID id-DPC-Mode-Change-SupportIndicator CRITICALITY ignore EXTENSION DPC-Mode-Change-SupportIndicator PRESENCE optional }|
+ { ID id-CoverageIndicator CRITICALITY ignore EXTENSION CoverageIndicator PRESENCE optional }|
+ { ID id-AntennaColocationIndicator CRITICALITY ignore EXTENSION AntennaColocationIndicator PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-CellCapabilityContainer-FDD CRITICALITY ignore EXTENSION CellCapabilityContainer-FDD PRESENCE optional }|
+ { ID id-SNA-Information CRITICALITY ignore EXTENSION SNA-Information PRESENCE optional }|
+ { ID id-FrequencyBandIndicator CRITICALITY ignore EXTENSION FrequencyBandIndicator PRESENCE optional }|
+ { ID id-Max-UE-DTX-Cycle CRITICALITY ignore EXTENSION Max-UE-DTX-Cycle PRESENCE conditional }|
+ -- This IE shall be present if the the fifteenth bit Continuous Packet Connectivity DTX-DRX Support Indicator in the Cell Capability Container FDD IE is set to the value "1".
+ { ID id-Multiple-PLMN-List CRITICALITY ignore EXTENSION Multiple-PLMN-List PRESENCE optional }|
+ { ID id-Secondary-Serving-Cell-List CRITICALITY ignore EXTENSION Secondary-Serving-Cell-List PRESENCE optional }|
+ { ID id-Dual-Band-Secondary-Serving-Cell-List CRITICALITY ignore EXTENSION Secondary-Serving-Cell-List PRESENCE optional }|
+-- This IE shall be present if the twenty-eighth bit Dual Band Support Indicator in the Cell Capability Container FDD IE is set to the value "1".
+ { ID id-CellCapabilityContainerExtension-FDD CRITICALITY ignore EXTENSION CellCapabilityContainerExtension-FDD PRESENCE optional }|
+ { ID id-CellListValidityIndicator CRITICALITY ignore EXTENSION CellListValidityIndicator PRESENCE optional },
+ ...
+}
+
+NeighbouringFDDCellMeasurementInformation ::= SEQUENCE {
+ uC-ID UC-ID,
+ uARFCN UARFCN,
+ primaryScramblingCode PrimaryScramblingCode,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringFDDCellMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringFDDCellMeasurementInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Neighbouring-GSM-CellInformation ::= ProtocolIE-Single-Container {{ Neighbouring-GSM-CellInformationIE }}
+
+Neighbouring-GSM-CellInformationIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-Neighbouring-GSM-CellInformation CRITICALITY ignore TYPE Neighbouring-GSM-CellInformationIEs PRESENCE mandatory }
+}
+
+Neighbouring-GSM-CellInformationIEs ::= SEQUENCE ( SIZE (1..maxNrOfGSMNeighboursPerRNC,...)) OF Neighbouring-GSM-CellInformationItem
+
+Neighbouring-GSM-CellInformationItem ::= SEQUENCE {
+ cGI CGI,
+ cellIndividualOffset CellIndividualOffset OPTIONAL,
+ bSIC BSIC,
+ band-Indicator Band-Indicator,
+ bCCH-ARFCN BCCH-ARFCN,
+ iE-Extensions ProtocolExtensionContainer { { Neighbouring-GSM-CellInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Neighbouring-GSM-CellInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CoverageIndicator CRITICALITY ignore EXTENSION CoverageIndicator PRESENCE optional } |
+ { ID id-AntennaColocationIndicator CRITICALITY ignore EXTENSION AntennaColocationIndicator PRESENCE optional } |
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional } |
+ { ID id-SNA-Information CRITICALITY ignore EXTENSION SNA-Information PRESENCE optional } |
+ { ID id-GERAN-Cell-Capability CRITICALITY ignore EXTENSION GERAN-Cell-Capability PRESENCE optional } |
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional } |
+ { ID id-ExtendedGSMCellIndividualOffset CRITICALITY ignore EXTENSION ExtendedGSMCellIndividualOffset PRESENCE optional },
+ ...
+}
+
+Neighbouring-TDD-CellInformation ::= SEQUENCE ( SIZE (1..maxNrOfTDDNeighboursPerRNC,...)) OF Neighbouring-TDD-CellInformationItem
+
+Neighbouring-TDD-CellInformationItem ::= SEQUENCE {
+ c-ID C-ID,
+ uARFCNforNt UARFCN,
+ frameOffset FrameOffset OPTIONAL,
+ cellParameterID CellParameterID,
+ syncCase SyncCase,
+ timeSlot TimeSlot OPTIONAL
+ -- This IE shall be present if Sync Case = Case1 -- ,
+ sCH-TimeSlot SCH-TimeSlot OPTIONAL
+ -- This IE shall be present if Sync Case = Case2 -- ,
+ sCTD-Indicator SCTD-Indicator,
+ cellIndividualOffset CellIndividualOffset OPTIONAL,
+ dPCHConstantValue DPCHConstantValue OPTIONAL,
+ pCCPCH-Power PCCPCH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Neighbouring-TDD-CellInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Neighbouring-TDD-CellInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RestrictionStateIndicator CRITICALITY ignore EXTENSION RestrictionStateIndicator PRESENCE optional }|
+ { ID id-CoverageIndicator CRITICALITY ignore EXTENSION CoverageIndicator PRESENCE optional }|
+ { ID id-AntennaColocationIndicator CRITICALITY ignore EXTENSION AntennaColocationIndicator PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-CellCapabilityContainer-TDD CRITICALITY ignore EXTENSION CellCapabilityContainer-TDD PRESENCE optional }|
+ { ID id-SNA-Information CRITICALITY ignore EXTENSION SNA-Information PRESENCE optional }|
+ { ID id-CellCapabilityContainer-TDD768 CRITICALITY ignore EXTENSION CellCapabilityContainer-TDD768 PRESENCE optional }|
+ { ID id-Multiple-PLMN-List CRITICALITY ignore EXTENSION Multiple-PLMN-List PRESENCE optional },
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformation ::= SEQUENCE {
+ uC-ID UC-ID,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationItem-ExtIEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformation768 ::= SEQUENCE {
+ uC-ID UC-ID,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformationItem768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationItem768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Neighbouring-LCR-TDD-CellInformation ::= SEQUENCE (SIZE (1.. maxNrOfLCRTDDNeighboursPerRNC,...)) OF Neighbouring-LCR-TDD-CellInformationItem
+
+Neighbouring-LCR-TDD-CellInformationItem ::= SEQUENCE {
+ c-ID C-ID,
+ uARFCNforNt UARFCN,
+ frameOffset FrameOffset OPTIONAL,
+ cellParameterID CellParameterID,
+ sCTD-Indicator SCTD-Indicator,
+ cellIndividualOffset CellIndividualOffset OPTIONAL,
+ dPCHConstantValue DPCHConstantValue OPTIONAL,
+ pCCPCH-Power PCCPCH-Power OPTIONAL,
+ restrictionStateIndicator RestrictionStateIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Neighbouring-LCR-TDD-CellInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Neighbouring-LCR-TDD-CellInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CoverageIndicator CRITICALITY ignore EXTENSION CoverageIndicator PRESENCE optional }|
+ { ID id-AntennaColocationIndicator CRITICALITY ignore EXTENSION AntennaColocationIndicator PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-CellCapabilityContainer-TDD-LCR CRITICALITY ignore EXTENSION CellCapabilityContainer-TDD-LCR PRESENCE optional }|
+ { ID id-SNA-Information CRITICALITY ignore EXTENSION SNA-Information PRESENCE optional }|
+ { ID id-Multiple-PLMN-List CRITICALITY ignore EXTENSION Multiple-PLMN-List PRESENCE optional },
+ ...
+}
+
+
+Neighbouring-E-UTRA-CellInformation ::= SEQUENCE ( SIZE (1..maxNrOfEUTRANeighboursPerRNC,...)) OF Neighbouring-E-UTRA-CellInformationItem
+
+Neighbouring-E-UTRA-CellInformationItem ::= SEQUENCE {
+ eCGI ECGI,
+ eARFCN-Information EARFCN-Information,
+ iE-Extensions ProtocolExtensionContainer { { Neighbouring-E-UTRA-CellInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Neighbouring-E-UTRA-CellInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NonCellSpecificTxDiversity ::= ENUMERATED {
+ txDiversity,
+ ...
+}
+
+NotProvidedCellList ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMSChannelTypeCellList
+
+NrOfDLchannelisationcodes ::= INTEGER (1..8)
+
+NrOfTransportBlocks ::= INTEGER (0..512)
+
+NRT-Load-Information-Value-IncrDecrThres ::= INTEGER(0..3)
+
+NRT-Load-Information-Value ::= INTEGER(0..3)
+
+NRTLoadInformationValue ::= SEQUENCE {
+ uplinkNRTLoadInformationValue INTEGER(0..3),
+ downlinkNRTLoadInformationValue INTEGER(0..3)
+}
+
+N-E-UCCH ::= INTEGER (1..12)
+
+N-E-UCCH-LCR ::= INTEGER (1..8)
+
+Number-Of-Supported-Carriers ::= ENUMERATED {
+ one-one-carrier,
+ one-three-carrier,
+ three-three-carrier,
+ one-six-carrier,
+ three-six-carrier,
+ six-six-carrier,
+ ...
+}
+
+NumHS-SCCH-Codes ::= INTEGER (1..maxNrOfHSSCCHCodes)
+
+NoOfTargetCellHS-SCCH-Order::= INTEGER (1..30)
+
+Non-Serving-RL-Preconfig-Setup ::= SEQUENCE {
+ new-non-serving-RL-selection New-non-serving-RL-setup-selection,
+ iE-Extensions ProtocolExtensionContainer { {Non-Serving-RL-Preconfig-Setup-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-Serving-RL-Preconfig-Setup-ExtIEs RNSAP-PROTOCOL-EXTENSION::= {
+ {ID id-Additional-E-DCH-Non-Serving-RL-Preconfiguration-Setup CRITICALITY ignore EXTENSION Additional-E-DCH-Non-Serving-RL-Preconfiguration-Setup PRESENCE optional },
+...
+}
+
+Additional-E-DCH-Non-Serving-RL-Preconfiguration-Setup ::= NULL
+
+New-non-serving-RL-setup-selection ::= CHOICE {
+ new-Serving-RL-in-DRNS NULL,
+ new-Serving-RL-Not-in-DRNS NULL,
+ new-Serving-RL-in-or-Not-in-DRNS NULL,
+ ...
+}
+
+
+Non-Serving-RL-Preconfig-Info ::= SEQUENCE {
+ new-non-serving-RL-E-DCH-FDD-DL-ControlChannelInformation-A EDCH-FDD-DL-ControlChannelInformation OPTIONAL,
+ new-non-serving-RL-E-DCH-FDD-DL-ControlChannelInformation-B EDCH-FDD-DL-ControlChannelInformation OPTIONAL,
+ new-non-serving-RL-E-DCH-FDD-DL-ControlChannelInformation-C EDCH-FDD-DL-ControlChannelInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Non-Serving-RL-Preconfig-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-Serving-RL-Preconfig-Info-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList CRITICALITY ignore EXTENSION Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList PRESENCE optional},
+...
+}
+
+Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList ::= SEQUENCE(SIZE(1.. maxNrOfEDCH-1)) OF SEQUENCE {
+ new-non-serving-RL-E-DCH-FDD-DL-Control-Channel-Information-A EDCH-FDD-DL-ControlChannelInformation OPTIONAL,
+ new-non-serving-RL-E-DCH-FDD-DL-Control-Channel-Information-B EDCH-FDD-DL-ControlChannelInformation OPTIONAL,
+ new-non-serving-RL-E-DCH-FDD-DL-Control-Channel-Information-C EDCH-FDD-DL-ControlChannelInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+NeedforIdleInterval ::= ENUMERATED {
+ true,
+ false
+}
+
+
+-- O
+
+OnModification ::= SEQUENCE {
+ measurementThreshold MeasurementThreshold,
+ iE-Extensions ProtocolExtensionContainer { {OnModification-ExtIEs} } OPTIONAL,
+ ...
+}
+
+OnModification-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+OnModificationInformation ::= SEQUENCE {
+ informationThreshold InformationThreshold OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {OnModificationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+OnModificationInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Out-of-Sychronization-Window ::= ENUMERATED {
+ms40,
+ms80,
+ms160,
+ms320,
+ms640,
+...
+}
+
+-- P
+
+PagingCause ::= ENUMERATED {
+ terminating-conversational-call,
+ terminating-streaming-call,
+ terminating-interactive-call,
+ terminating-background-call,
+ terminating-low-priority-signalling,
+ ...,
+ terminating-high-priority-signalling,
+ terminating-cause-unknown
+}
+-- See in [16]
+
+PagingRecordType ::= ENUMERATED {
+ imsi-gsm-map,
+ tmsi-gsm-map,
+ p-tmsi-gsm-map,
+ imsi-ds-41,
+ tmsi-ds-41,
+ ...
+}
+-- See in [16]
+
+PartialReportingIndicator ::= ENUMERATED {
+ partial-reporting-allowed
+}
+
+Pattern-Sequence-Identifier ::= INTEGER (1.. maxNrOfDCHMeasurementOccasionPatternSequence)
+
+PayloadCRC-PresenceIndicator ::= ENUMERATED {
+ crc-included,
+ crc-not-included
+}
+
+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.1dBm
+
+PCH-InformationList ::= SEQUENCE (SIZE(0..1)) OF PCH-InformationItem
+
+PCH-InformationItem ::= SEQUENCE {
+ transportFormatSet TransportFormatSet,
+ iE-Extensions ProtocolExtensionContainer { { PCH-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PC-Preamble ::= INTEGER(0..7,...)
+
+Periodic ::= SEQUENCE {
+ reportPeriodicity ReportPeriodicity,
+ iE-Extensions ProtocolExtensionContainer { {Periodic-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Periodic-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PeriodicInformation ::= SEQUENCE {
+ informationReportPeriodicity InformationReportPeriodicity,
+ iE-Extensions ProtocolExtensionContainer { {PeriodicInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PeriodicInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Permanent-NAS-UE-Identity ::= CHOICE {
+ imsi IMSI,
+ ...
+}
+
+Phase-Reference-Update-Indicator ::= ENUMERATED {
+ phase-reference-needs-to-be-changed
+}
+
+PLCCHsequenceNumber ::= INTEGER (0..14)
+
+PLMN-Identity ::= OCTET STRING (SIZE(3))
+
+PowerAdjustmentType ::= ENUMERATED {
+ none,
+ common,
+ individual
+}
+
+PowerOffset ::= INTEGER (0..24)
+
+PowerOffsetForSecondaryCPICHforMIMO ::= INTEGER (-6..0)
+-- Unit dB, Range -10dB .. 5dB, Step +1dB
+
+PowerOffsetForSecondaryCPICHforMIMORequestIndicator ::= NULL
+
+PRC ::= INTEGER (-2047..2047)
+--pseudo range correction; scaling factor 0.32 meters
+
+PRCDeviation ::= ENUMERATED {
+ prcd1,
+ prcd2,
+ prcd5,
+ prcd10,
+ ...
+}
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+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
+
+PreferredFrequencyLayerInfo ::= SEQUENCE {
+ defaultPreferredFrequency UARFCN,
+ additionalPreferredFrequency AdditionalPreferredFrequency OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PreferredFrequencyLayerInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+PreferredFrequencyLayerInfo-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PrimaryCPICH-Power ::= INTEGER (-100..500)
+-- step 0.1 (Range -10.0..50.0) Unit is dBm
+
+PrimaryCPICH-EcNo ::= INTEGER (-30..30)
+
+Primary-CPICH-Usage-For-Channel-Estimation ::= ENUMERATED {
+primary-CPICH-may-be-used,
+primary-CPICH-shall-not-be-used
+}
+
+PrimaryCCPCH-RSCP ::= INTEGER (0..91)
+-- Mapping of Non Negative values according to maping in [24]
+
+PrimaryCCPCH-RSCP-Delta ::= INTEGER (-5..-1,...)
+-- Mapping of Negative values according to maping in [24]
+
+PrimaryScramblingCode ::= INTEGER (0..511)
+
+PriorityLevel ::= INTEGER (0..15)
+-- 0 = spare, 1 = highest priority, ...14 = lowest priority and 15 = no priority
+
+PriorityQueue-Id ::= INTEGER (0..maxNrOfPrioQueues-1)
+
+PriorityQueue-InfoList ::= SEQUENCE (SIZE (1..maxNrOfPrioQueues)) OF PriorityQueue-InfoItem
+
+PriorityQueue-InfoItem ::= SEQUENCE {
+ priorityQueue-Id 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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional}|
+{ ID id-DL-RLC-PDU-Size-Format CRITICALITY ignore EXTENSION DL-RLC-PDU-Size-Format PRESENCE optional}|
+{ ID id-UE-AggregateMaximumBitRate-Enforcement-Indicator CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate-Enforcement-Indicator PRESENCE optional},
+ ...
+}
+
+PriorityQueue-InfoList-EnhancedFACH-PCH ::= SEQUENCE (SIZE (1..maxNrOfPrioQueues)) OF PriorityQueue-InfoItem-EnhancedFACH-PCH
+
+PriorityQueue-InfoItem-EnhancedFACH-PCH ::= SEQUENCE {
+ priorityQueue-Id PriorityQueue-Id,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ t1 T1,
+ mAC-ehs-Reset-Timer MAC-ehs-Reset-Timer,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize,
+ maximum-MACdPDU-Size MAC-PDU-SizeExtended,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-EnhancedFACH-PCH-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-EnhancedFACH-PCH-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfPrioQueues)) OF ModifyPriorityQueue
+
+PriorityQueue-InfoItem-to-Add ::= SEQUENCE {
+ priorityQueue-Id 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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional}|
+{ ID id-DL-RLC-PDU-Size-Format CRITICALITY ignore EXTENSION DL-RLC-PDU-Size-Format PRESENCE optional},
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify ::= SEQUENCE {
+ priorityQueue-Id 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 RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-MaximumMACdPDU-SizeExtended CRITICALITY reject EXTENSION MAC-PDU-SizeExtended PRESENCE optional} |
+{ ID id-DL-RLC-PDU-Size-Format CRITICALITY ignore EXTENSION DL-RLC-PDU-Size-Format PRESENCE optional},
+ ...
+}
+
+PriorityQueue-InfoList-to-Modify-Unsynchronised ::= SEQUENCE (SIZE (0..maxNrOfPrioQueues)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PropagationDelay ::= INTEGER (0..255)
+
+ProvidedInformation ::= SEQUENCE {
+ mBMSChannelTypeInfo MBMSChannelTypeInfo OPTIONAL,
+ mBMSPreferredFreqLayerInfo MBMSPreferredFreqLayerInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ProvideInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+ProvideInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UpPCH-InformationList-LCRTDD CRITICALITY ignore EXTENSION UpPCH-InformationList-LCRTDD PRESENCE optional},
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+
+UpPCH-InformationList-LCRTDD ::= SEQUENCE (SIZE (0.. maxFrequencyinCell)) OF ProtocolIE-Single-Container {{ UpPCH-InformationItemIE-LCRTDD }}
+
+UpPCH-InformationItemIE-LCRTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UpPCH-InformationItem-LCRTDD CRITICALITY ignore TYPE UpPCH-InformationItem-LCRTDD PRESENCE mandatory},
+ ...
+}
+
+UpPCH-InformationItem-LCRTDD ::= SEQUENCE {
+ uARFCNforNt UARFCN OPTIONAL,
+ uPPCHPositionLCR UPPCHPositionLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UpPCH-InformationItem-LCRTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UpPCH-InformationItem-LCRTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PunctureLimit ::= INTEGER (0..15)
+-- 0: 40%; 1: 44%; ... 14: 96%; 15: 100
+-- 0 is not applicable for E-DPCH
+
+
+PTMCellList ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMSChannelTypeCellList
+
+PTPCellList ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMSChannelTypeCellList
+
+
+-- Q
+
+QE-Selector ::= ENUMERATED {
+ selected,
+ non-selected
+}
+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,...}
+
+-- R
+
+RAC ::= OCTET STRING (SIZE(1))
+
+RANAP-EnhancedRelocationInformationRequest ::= BIT STRING
+
+RANAP-EnhancedRelocationInformationResponse ::= BIT STRING
+
+RANAP-RelocationInformation ::= BIT STRING
+
+Range-Correction-Rate ::= INTEGER (-127..127)
+-- scaling factor 0.032 m/s
+
+RateMatchingAttribute ::= INTEGER (1..maxRateMatching)
+
+RB-Identity ::= INTEGER (0..31)
+
+RB-Info ::= SEQUENCE (SIZE(1..maxNoOfRB)) OF RB-Identity
+
+Received-Total-Wideband-Power-Value ::= Received-total-wide-band-power
+
+Received-Total-Wideband-Power-Value-IncrDecrThres ::= INTEGER(0..620)
+-- Unit dB Step 0.1dB
+-- e.g. value 100 means 10dB
+
+Reference-E-TFCI-Information ::= SEQUENCE (SIZE (1..maxNrOfRefETFCIs)) OF Reference-E-TFCI-Information-Item
+
+Reference-E-TFCI-Information-Item ::= SEQUENCE {
+ reference-E-TFCI E-TFCI,
+ -- The following IE shall be ignored if id-Ext-Reference-E-TFCI-PO is present in Reference-E-TFCI-Information-Item-ExtIEs
+ reference-E-TFCI-PO Reference-E-TFCI-PO,
+ iE-Extensions ProtocolExtensionContainer { { Reference-E-TFCI-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Reference-E-TFCI-Information-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ -- The following IE shall be present if the ref E-TFCI power offset to be signalled exceeds maxNrOfRefETFCI-PO-QUANTSTEPs
+ { ID id-Ext-Reference-E-TFCI-PO CRITICALITY reject EXTENSION Ext-Reference-E-TFCI-PO PRESENCE optional},
+ ...
+}
+
+Reference-E-TFCI-PO ::= INTEGER (0.. maxNrOfRefETFCI-PO-QUANTSTEPs)
+
+RefTFCNumber ::= INTEGER (0..15)
+
+Released-CN-Domain ::= CHOICE {
+ pSDomain NULL,
+ cSDomain NULL,
+ pS-CSDomain NULL,
+ ...
+}
+
+
+RepetitionLength ::= INTEGER (1..63)
+
+RepetitionPeriod ::= ENUMERATED {
+ v1,
+ v2,
+ v4,
+ v8,
+ v16,
+ v32,
+ v64
+}
+
+RepetitionNumber0 ::= INTEGER (0..255)
+
+RepetitionNumber1 ::= INTEGER (1..256)
+
+ReportCharacteristics ::= CHOICE {
+ onDemand NULL,
+ periodic Periodic,
+ eventA EventA,
+ eventB EventB,
+ eventC EventC,
+ eventD EventD,
+ eventE EventE,
+ eventF EventF,
+ ...,
+ extension-ReportCharacteristics Extension-ReportCharacteristics
+}
+
+Extension-ReportCharacteristics ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsIE }}
+
+Extension-ReportCharacteristicsIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-OnModification CRITICALITY reject TYPE OnModification PRESENCE mandatory }
+}
+
+ReportPeriodicity ::= CHOICE {
+ ten-msec INTEGER (1..6000,...),
+-- The Report Periodicity gives the reporting periodicity in number of 10 ms periods.
+-- E.g. value 6000 means 60000ms (i.e. 1min)
+-- Unit ms, Step 10ms
+ min INTEGER (1..60,...),
+-- Unit min, Step 1min
+ ...
+}
+
+RequestedDataValue ::= SEQUENCE {
+ gA-AccessPointPositionwithAltitude GA-AccessPointPositionwithOptionalAltitude OPTIONAL,
+ iPDLParameters IPDLParameters OPTIONAL,
+ dGPSCorrections DGPSCorrections OPTIONAL,
+ gPS-NavigationModel-and-TimeRecovery GPS-NavigationModel-and-TimeRecovery OPTIONAL,
+ gPS-Ionospheric-Model GPS-Ionospheric-Model OPTIONAL,
+ gPS-UTC-Model GPS-UTC-Model OPTIONAL,
+ gPS-Almanac GPS-Almanac OPTIONAL,
+ gPS-RealTime-Integrity GPS-RealTime-Integrity OPTIONAL,
+ gPS-RX-POS GPS-RX-POS OPTIONAL,
+ sFNSFN-GA-AccessPointPosition GA-AccessPointPositionwithOptionalAltitude OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RequestedDataValue-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RequestedDataValue-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Cell-Capacity-Class-Value CRITICALITY ignore EXTENSION Cell-Capacity-Class-Value PRESENCE optional }|
+ { ID id-NACC-Related-Data CRITICALITY ignore EXTENSION NACC-Related-Data PRESENCE optional }|
+ { ID id-MBMS-Bearer-Service-Full-Address CRITICALITY ignore EXTENSION MBMS-Bearer-Service-Full-Address PRESENCE optional }|
+ { ID id-Inter-Frequency-Cell-Information CRITICALITY ignore EXTENSION Inter-Frequency-Cell-Information PRESENCE optional }|
+ { ID id-GANSS-Common-Data CRITICALITY ignore EXTENSION GANSS-Common-Data PRESENCE optional }|
+ { ID id-GANSS-Generic-Data CRITICALITY ignore EXTENSION GANSS-Generic-Data PRESENCE optional }|
+ { ID id-Counting-Information CRITICALITY ignore EXTENSION Counting-Information PRESENCE optional }|
+ { ID id-Transmission-Mode-Information CRITICALITY ignore EXTENSION Transmission-Mode-Information PRESENCE optional }|
+ { ID id-MBMS-Neighbouring-Cell-Information CRITICALITY ignore EXTENSION MBMS-Neighbouring-Cell-Information PRESENCE optional }|
+ { ID id-RLC-Sequence-Number CRITICALITY ignore EXTENSION RLC-Sequence-Number PRESENCE optional },
+ ...
+}
+
+RequestedDataValueInformation ::= CHOICE {
+ informationAvailable InformationAvailable,
+ informationNotAvailable InformationNotAvailable
+}
+
+RestrictionStateIndicator ::= ENUMERATED {
+ cellNotResevedForOperatorUse,
+ cellResevedForOperatorUse,
+ ...
+}
+
+RL-ID ::= INTEGER (0..31)
+
+RL-Set-ID ::= INTEGER (0..31)
+
+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,
+ -- Shall be ignored if bearer establishment with ALCAP.
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ -- Shall be ignored if bearer establishment with ALCAP.
+ iE-Extensions ProtocolExtensionContainer { { RL-Specific-DCH-Info-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Specific-DCH-Info-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportBearerNotRequestedIndicator CRITICALITY ignore EXTENSION TransportBearerNotRequestedIndicator PRESENCE optional }, -- FDD only
+ ...
+}
+
+RL-Specific-EDCH-Information ::= SEQUENCE {
+ rL-Specific-EDCH-Info RL-Specific-EDCH-Info,
+ e-AGCH-PowerOffset E-AGCH-PowerOffset OPTIONAL,
+ e-RGCH-PowerOffset E-RGCH-PowerOffset OPTIONAL,
+ e-HICH-PowerOffset E-HICH-PowerOffset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Specific-EDCH-Information-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RL-Specific-EDCH-Information-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RL-Specific-EDCH-Info ::= SEQUENCE (SIZE (1..maxNrOfEDCHMACdFlows)) OF RL-Specific-EDCH-InfoItem
+
+RL-Specific-EDCH-InfoItem ::= SEQUENCE {
+ eDCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ -- Shall be ignored if bearer establishment with ALCAP.
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ -- Shall be ignored if bearer establishment with ALCAP.
+ iE-Extensions ProtocolExtensionContainer { { RL-Specific-EDCH-Info-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Specific-EDCH-Info-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportBearerNotRequestedIndicator CRITICALITY ignore EXTENSION TransportBearerNotRequestedIndicator PRESENCE optional }, -- FDD only
+ ...
+}
+
+RLC-Mode ::= ENUMERATED {
+ rLC-AM,
+ rLC-UM,
+ ...
+}
+DL-RLC-PDU-Size-Format ::= ENUMERATED {
+ fixed-RLC-PDU-Size,
+ flexible-RLC-PDU-Size,
+ ...
+}
+
+RLC-Sequence-Number ::= INTEGER (0..127)
+
+RNC-ID ::= INTEGER (0..4095)
+
+RNTI-Allocation-Indicator ::= ENUMERATED {
+ true
+}
+
+Round-Trip-Time-IncrDecrThres ::= INTEGER(0..32766)
+
+Round-Trip-Time-Value ::= INTEGER(0..32767)
+-- According to mapping in [23]
+
+RSCP-Value ::= INTEGER (0..127)
+-- According to mapping in [24]
+
+RSCP-Value-IncrDecrThres ::= INTEGER (0..126)
+
+Received-total-wide-band-power ::= INTEGER (0..621)
+-- According to mapping in [23]
+
+RT-Load-Value-IncrDecrThres ::= INTEGER(0..100)
+
+RT-Load-Value ::= INTEGER(0..100)
+
+RTLoadValue ::= SEQUENCE {
+ uplinkRTLoadValue INTEGER(0..100),
+ downlinkRTLoadValue INTEGER(0..100)
+}
+
+RxTimingDeviationForTA ::= INTEGER (0..127)
+-- As specified in [5], ch. 6.2.7.6
+-- For 1.28Mcps TDD this IE must be set to 0.
+
+RxTimingDeviationForTAext ::= INTEGER (0..511)
+-- As specified in [5] [3.84 Mcps TDD only]
+
+RxTimingDeviationForTA768 ::= INTEGER (0.. 1023)
+-- As specified in [5]
+
+Rx-Timing-Deviation-Value ::= INTEGER (0..8191)
+--According to mapping in [24][3.84Mcps TDD only]
+
+Rx-Timing-Deviation-Value-ext ::= INTEGER (0..32767)
+--According to mapping in [24][3.84Mcps TDD only]
+
+Rx-Timing-Deviation-Value-LCR ::= INTEGER (0..511)
+--According to mapping in [24][1.28Mcps TDD only]
+
+Rx-Timing-Deviation-Value-768 ::= INTEGER (0..65535)
+--According to mapping in [24][7.68Mcps TDD only]
+
+RefBeta ::= INTEGER (-15..16)
+
+-- S
+
+SAC ::= OCTET STRING (SIZE (2))
+
+SAI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ lAC LAC,
+ sAC SAC,
+ iE-Extensions ProtocolExtensionContainer { {SAI-ExtIEs} } OPTIONAL
+}
+
+SAI-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAT-ID ::= INTEGER (0..63)
+
+SCH-TimeSlot ::= INTEGER (0..6)
+
+ScaledAdjustmentRatio ::= INTEGER(0..100)
+-- AdjustmentRatio = ScaledAdjustmentRatio / 100
+
+SchedulingInformation ::= ENUMERATED {
+ included,
+ not-included
+}
+
+
+SecondaryServingCells ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF SecondaryServingCellsItem
+
+SecondaryServingCellsItem ::= SEQUENCE {
+ secondaryC-ID C-ID,
+ numSecondaryHS-SCCH-Codes NumHS-SCCH-Codes OPTIONAL,
+ sixtyfourQAM-UsageAllowedIndicator SixtyfourQAM-UsageAllowedIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryServingCellsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondaryServingCellsItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ID id-MIMO-ActivationIndicator CRITICALITY ignore EXTENSION MIMO-ActivationIndicator PRESENCE optional}|
+{ID id-EDCH-Indicator CRITICALITY ignore EXTENSION NULL PRESENCE optional},
+ ...
+}
+
+
+Secondary-CCPCH-Info-TDD::= SEQUENCE {
+ dl-TFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ secondary-CCPCH-TDD-InformationList Secondary-CCPCH-TDD-InformationList,
+ fACH-InformationList FACH-InformationList,
+ pCH-InformationList PCH-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-Info-TDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-Info-TDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CPICH-Information ::= SEQUENCE {
+dl-ScramblingCode DL-ScramblingCode,
+fDD-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+iE-Extensions ProtocolExtensionContainer { { Secondary-CPICH-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CPICH-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CPICH-Information-Change ::= CHOICE {
+new-secondary-CPICH Secondary-CPICH-Information,
+secondary-CPICH-shall-not-be-used NULL,
+...
+}
+
+Secondary-LCR-CCPCH-Info-TDD::= SEQUENCE {
+ dl-TFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ secondary-LCR-CCPCH-TDD-InformationList Secondary-LCR-CCPCH-TDD-InformationList,
+ fACH-InformationList FACH-InformationList,
+ pCH-InformationList PCH-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-LCR-CCPCH-Info-TDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-LCR-CCPCH-Info-TDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-Info-TDD768::= SEQUENCE {
+ dl-TFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ secondary-CCPCH-TDD-InformationList768 Secondary-CCPCH-TDD-InformationList768,
+ fACH-InformationList FACH-InformationList,
+ pCH-InformationList PCH-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-Info-TDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-Info-TDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-TDD-InformationList ::= SEQUENCE (SIZE(0.. maxNrOfSCCPCHs)) OF Secondary-CCPCH-TDD-InformationItem
+
+Secondary-CCPCH-TDD-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ secondary-CCPCH-TDD-Code-Information Secondary-CCPCH-TDD-Code-Information,
+ tDD-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionLength RepetitionLength,
+ repetitionPeriod RepetitionPeriod,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-TDD-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-LCR-CCPCH-TDD-InformationList ::= SEQUENCE (SIZE(0.. maxNrOfSCCPCHs)) OF Secondary-LCR-CCPCH-TDD-InformationItem
+
+Secondary-LCR-CCPCH-TDD-InformationItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ secondary-LCR-CCPCH-TDD-Code-Information Secondary-LCR-CCPCH-TDD-Code-Information,
+ tDD-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionLength RepetitionLength,
+ repetitionPeriod RepetitionPeriod,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-LCR-CCPCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-LCR-CCPCH-TDD-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-TDD-InformationList768 ::= SEQUENCE (SIZE(0.. maxNrOfSCCPCHs768)) OF Secondary-CCPCH-TDD-InformationItem768
+
+Secondary-CCPCH-TDD-InformationItem768 ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tFCI-Presence TFCI-Presence,
+ secondary-CCPCH-TDD-Code-Information768 Secondary-CCPCH-TDD-Code-Information768,
+ tDD-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionLength RepetitionLength,
+ repetitionPeriod RepetitionPeriod,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-TDD-InformationItem768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-TDD-InformationItem768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-TDD-Code-Information ::= SEQUENCE ( SIZE (1..maxNrOfSCCPCHs)) OF Secondary-CCPCH-TDD-Code-InformationItem
+
+Secondary-CCPCH-TDD-Code-InformationItem ::= SEQUENCE {
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { {Secondary-CCPCH-TDD-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-TDD-Code-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-LCR-CCPCH-TDD-Code-Information ::= SEQUENCE ( SIZE (1..maxNrOfSCCPCHs)) OF Secondary-LCR-CCPCH-TDD-Code-InformationItem
+
+Secondary-LCR-CCPCH-TDD-Code-InformationItem ::= SEQUENCE {
+ tDD-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ s-CCPCH-TimeSlotFormat-LCR TDD-DL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { {Secondary-LCR-CCPCH-TDD-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-LCR-CCPCH-TDD-Code-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-TDD-Code-Information768 ::= SEQUENCE ( SIZE (1..maxNrOfSCCPCHs768)) OF Secondary-CCPCH-TDD-Code-InformationItem768
+
+Secondary-CCPCH-TDD-Code-InformationItem768 ::= SEQUENCE {
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { {Secondary-CCPCH-TDD-Code-InformationItem768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-TDD-Code-InformationItem768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Secondary-Serving-Cell-List ::= SEQUENCE {
+ possible-Secondary-Serving-Cell-List Possible-Secondary-Serving-Cell-List,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-Serving-Cell-List-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Secondary-Serving-Cell-List-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+Possible-Secondary-Serving-Cell-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Possible-Secondary-Serving-Cell
+
+Possible-Secondary-Serving-Cell ::= SEQUENCE {
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { { Possible-Secondary-Serving-Cell-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Possible-Secondary-Serving-Cell-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondInterleavingMode ::= ENUMERATED {
+ frame-related,
+ timeslot-related,
+ ...
+}
+
+Secondary-UL-Frequency-Activation-State ::= ENUMERATED {
+ activated,
+ deactivated,
+ ...
+}
+
+Seed ::= INTEGER (0..63)
+
+Service-ID ::= OCTET STRING (SIZE (3))
+
+SetsOfHS-SCCH-Codes ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH)) OF SetsOfHS-SCCH-CodesItem
+
+SetsOfHS-SCCH-CodesItem ::= SEQUENCE {
+ hS-SCCH-PreconfiguredCodes HS-SCCH-PreconfiguredCodes,
+ hSDSCH-RNTI HSDSCH-RNTI,
+ hSPDSCH-and-HSSCCH-ScramblingCode DL-ScramblingCode,
+ sixtyfourQAM-DL-SupportIndicator SixtyfourQAM-DL-SupportIndicator OPTIONAL,
+ sixtyfourQAM-DL-UsageIndicator SixtyfourQAM-DL-UsageIndicator OPTIONAL,
+ hSDSCH-TBSizeTableIndicator HSDSCH-TBSizeTableIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SetsOfHS-SCCH-CodesItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SetsOfHS-SCCH-CodesItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ID id-MIMO-InformationResponse CRITICALITY ignore EXTENSION MIMO-InformationResponse PRESENCE optional},
+ ...
+}
+
+Setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency::= CHOICE {
+ setup Additional-EDCH-Setup-Info,
+ configurationChange Additional-EDCH-Cell-Information-ConfigurationChange-List,
+ removal Additional-EDCH-Cell-Information-Removal-List,
+ ...
+}
+
+SFN ::= INTEGER (0..4095)
+
+SFNSFN-FDD ::= INTEGER(0..614399)
+
+SFNSFN-TDD ::= INTEGER(0..40961)
+
+SFNSFN-TDD768 ::= INTEGER(0..81923)
+
+GA-AccessPointPositionwithOptionalAltitude ::= SEQUENCE {
+ geographicalCoordinate GeographicalCoordinate,
+ altitudeAndDirection GA-AltitudeAndDirection OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GA-AccessPointPositionwithOptionalAltitude-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-AccessPointPositionwithOptionalAltitude-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UnsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/16 chip
+
+SFNSFNTimeStampInformation ::= CHOICE {
+ sFNSFNTimeStamp-FDD SFN,
+ sFNSFNTimeStamp-TDD SFNSFNTimeStamp-TDD,
+ ...
+}
+
+SFNSFNTimeStamp-TDD::= SEQUENCE {
+ sFN SFN,
+ timeSlot TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNTimeStamp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SFNSFNTimeStamp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNValue ::= CHOICE {
+ sFNSFN-FDD SFNSFN-FDD,
+ sFNSFN-TDD SFNSFN-TDD, -- LCR & HCR TDD
+ ...,
+ sFNSFN-TDD768 SFNSFN-TDD768
+}
+
+SID ::= INTEGER (0..maxNrOfPDUIndexes-1)
+
+Single-Stream-MIMO-ActivationIndicator ::= NULL
+
+Single-Stream-MIMO-Mode-Indicator ::= ENUMERATED {
+ activate,
+ deactivate
+}
+
+
+SIR-Error-Value ::= INTEGER (0..125)
+
+SIR-Error-Value-IncrDecrThres ::= INTEGER (0..124)
+
+SIR-Value ::= INTEGER (0..63)
+-- According to mapping in [11]/[14]
+
+SIR-Value-IncrDecrThres ::= INTEGER (0..62)
+
+
+SixteenQAM-UL-Operation-Indicator ::= ENUMERATED {
+ activate,
+ deactivate
+}
+
+SixtyfourQAM-UsageAllowedIndicator ::= ENUMERATED {
+ allowed,
+ not-allowed
+}
+
+SixtyfourQAM-DL-SupportIndicator ::= ENUMERATED {
+ sixtyfourQAM-DL-supported,
+ sixtyfourQAM-DL-not-supported
+}
+
+SixtyfourQAM-DL-UsageIndicator ::= ENUMERATED {
+ sixtyfourQAM-DL-used,
+ sixtyfourQAM-DL-not-used
+}
+
+SignatureSequenceGroupIndex ::= INTEGER (0..19)
+
+SNA-Information ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ listOfSNAs ListOfSNAs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SNA-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNA-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ListOfSNAs ::= SEQUENCE (SIZE (1.. maxNrOfSNAs)) OF SNACode
+
+SNACode ::= INTEGER (0..65535)
+
+SpecialBurstScheduling ::= INTEGER (1..256)
+
+S-RNTI ::= INTEGER (0..1048575)
+-- From 0 to 2^20-1
+
+S-RNTI-Group ::= SEQUENCE {
+ sRNTI S-RNTI,
+ sRNTI-BitMaskIndex ENUMERATED {
+ b1,
+ b2,
+ b3,
+ b4,
+ b5,
+ b6,
+ b7,
+ b8,
+ b9,
+ b10,
+ b11,
+ b12,
+ b13,
+ b14,
+ b15,
+ b16,
+ b17,
+ b18,
+ b19,...
+}
+}
+
+SRB-Delay ::= INTEGER(0..7,...)
+
+
+
+SSDT-SupportIndicator ::= ENUMERATED {
+ not-Used-sSDT-supported,
+ sSDT-not-supported
+}
+
+Status-Flag ::= ENUMERATED {
+ activate,
+ deactivate
+}
+
+STTD-SupportIndicator ::= ENUMERATED {
+ sTTD-Supported,
+ sTTD-not-Supported
+}
+
+Support-8PSK ::= ENUMERATED {
+ v8PSK-Supported
+}
+
+Support-PLCCH ::= ENUMERATED {
+ vPLCCH-Supported
+}
+
+SyncCase ::= INTEGER (1..2,...)
+
+SynchronisationConfiguration ::= SEQUENCE {
+ n-INSYNC-IND INTEGER (1..256),
+ n-OUTSYNC-IND INTEGER (1..256),
+ t-RLFAILURE INTEGER (0..255),
+-- Unit seconds, Range 0s .. 25.5s, Step 0.1s
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationConfiguration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SynchronisationConfiguration-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNC-UL-ProcParameters ::= SEQUENCE {
+ maxSYNC-UL-transmissions ENUMERATED {v1, v2, v4, v8, ...},
+ powerRampStep INTEGER (0..3, ...),
+ ...
+ }
+
+-- T
+
+T1 ::= ENUMERATED {v10,v20,v30,v40,v50,v60,v70,v80,v90,v100,v120,v140,v160,v200,v300,v400,...}
+
+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-ChannelisationCode768 ::= 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,
+ chCode32div1,
+ chCode32div2,
+ chCode32div3,
+ chCode32div4,
+ chCode32div5,
+ chCode32div6,
+ chCode32div7,
+ chCode32div8,
+ chCode32div9,
+ chCode32div10,
+ chCode32div11,
+ chCode32div12,
+ chCode32div13,
+ chCode32div14,
+ chCode32div15,
+ chCode32div16,
+ chCode32div17,
+ chCode32div18,
+ chCode32div19,
+ chCode32div20,
+ chCode32div21,
+ chCode32div22,
+ chCode32div23,
+ chCode32div24,
+ chCode32div25,
+ chCode32div26,
+ chCode32div27,
+ chCode32div28,
+ chCode32div29,
+ chCode32div30,
+ chCode32div31,
+ chCode32div32,
+ ...
+}
+
+TDD-ChannelisationCodeLCR ::= SEQUENCE {
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ modulation Modulation, -- Modulation options for 1.28Mcps TDD in contrast to 3.84Mcps TDD or 7.68Mcps TDD
+ ...
+}
+
+TDD-DCHs-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF TDD-DCHs-to-ModifyItem
+
+TDD-DCHs-to-ModifyItem ::= SEQUENCE {
+ ul-FP-Mode UL-FP-Mode OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ dCH-SpecificInformationList TDD-DCHs-to-ModifySpecificInformationList,
+ iE-Extensions ProtocolExtensionContainer { {TDD-DCHs-to-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DCHs-to-ModifyItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+TDD-DCHs-to-ModifySpecificInformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF TDD-DCHs-to-ModifySpecificItem
+
+TDD-DCHs-to-ModifySpecificItem ::= 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 { {TDD-DCHs-to-ModifySpecificItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DCHs-to-ModifySpecificItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Guaranteed-Rate-Information CRITICALITY ignore EXTENSION Guaranteed-Rate-Information PRESENCE optional }|
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass PRESENCE optional},
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHsLCR)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-Information768 ::= SEQUENCE ( SIZE (1..maxNrOfDPCHs768)) OF TDD-DL-Code-InformationItem768
+
+TDD-DL-Code-InformationItem768 ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { {TDD-DL-Code-InformationItem768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-InformationItem768-ExtIEs RNSAP-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,
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHsLCR)) 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-Information768 ::= SEQUENCE ( SIZE (1..maxNrOfDPCHs768)) OF TDD-UL-Code-InformationItem768
+
+TDD-UL-Code-InformationItem768 ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768,
+ iE-Extensions ProtocolExtensionContainer { {TDD-UL-Code-InformationItem768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-InformationItem768-ExtIEs RNSAP-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 ::= ENUMERATED {
+ normal,
+ not-Used-split
+}
+-- The value "Not Used" shall not be used by the SRNC. The procedure shall be rejected by the DRNC if the value "Not Used" is received.
+
+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)
+
+TimeSlotLCR ::= INTEGER (0..6)
+
+Time-Stamp ::= INTEGER (0..9999)
+-- Unit: 10ms
+
+
+
+TimingAdvanceApplied ::= ENUMERATED {
+ yes,
+ no
+}
+
+SynchronisationIndicator ::= ENUMERATED {
+ timingMaintainedSynchronisation,
+ ...
+}
+
+TMGI ::= SEQUENCE {
+ plmn-id PLMN-Identity,
+ service-id Service-ID,
+ iE-Extensions ProtocolExtensionContainer { { TMGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TMGI-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TnlQos ::= CHOICE {
+ dsField DsField,
+ genericTrafficCategory GenericTrafficCategory,
+ ...
+}
+
+ToAWE ::= INTEGER (0..2559)
+
+ToAWS ::= INTEGER (0..1279)
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ ...
+}
+
+TraceRecordingSessionReference ::= INTEGER (0..65535)
+
+TraceReference ::= OCTET STRING (SIZE (2..3))
+
+TrafficClass ::= ENUMERATED {
+ conversational,
+ streaming,
+ interactive,
+ background,
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Information ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ SEQUENCE {
+ tGPSID TGPSID,
+ tGSN TGSN,
+ tGL1 GapLength,
+ tGL2 GapLength OPTIONAL,
+ tGD TGD,
+ tGPL1 GapDuration,
+ not-to-be-used-1 GapDuration OPTIONAL,
+ -- This IE shall never be included in the SEQUENCE. If received it shall be ignored
+ uL-DL-mode UL-DL-mode,
+ downlink-Compressed-Mode-Method Downlink-Compressed-Mode-Method OPTIONAL,
+ -- This IE shall be present if the value of the UL/DL mode IE is "DL only" or "UL/DL"
+ uplink-Compressed-Mode-Method Uplink-Compressed-Mode-Method OPTIONAL,
+ -- This IE shall be present if the value of the UL/DL mode IE is "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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-ScramblingCode-Information ::= ENUMERATED{
+code-change,
+nocode-change
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionMode ::=ENUMERATED {
+ p-t-p,
+ p-t-m,
+ not-provided,
+ ...
+}
+
+Transmission-Mode-Information::= SEQUENCE ( SIZE (1..maxNrOfFDDNeighboursPerRNC,...)) OF Transmission-Mode-Information-List
+
+Transmission-Mode-Information-List ::= SEQUENCE {
+ c-ID C-ID,
+ transmissionMode TransmissionMode,
+ iE-Extensions ProtocolExtensionContainer { { Transmission-Mode-Information-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Transmission-Mode-Information-List-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionTimeIntervalDynamic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ ...
+}
+
+TransmissionTimeIntervalSemiStatic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ dynamic,
+ ...
+}
+
+TransmitDiversityIndicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+Transmitted-Carrier-Power-Value ::= INTEGER(0..100)
+-- according to mapping in [23] and [24]
+
+Transmitted-Carrier-Power-Value-IncrDecrThres ::= INTEGER(0..100)
+-- according to mapping in [23] and [24]
+
+Transport-Block-Size-Index ::= INTEGER(1..maxNrOfHS-DSCHTBSs)
+
+TUTRANGANSS ::= SEQUENCE {
+ mS INTEGER(0..16383),
+ lS INTEGER(0..4294967295)
+}
+
+TUTRANGANSSAccuracyClass ::= ENUMERATED {
+ ganssAccuracy-class-A,
+ ganssAccuracy-class-B,
+ ganssAccuracy-class-C,
+ ...
+}
+
+TUTRANGANSSMeasurementThresholdInformation ::= SEQUENCE {
+ tUTRANGANSSChangeLimit INTEGER(1..256) OPTIONAL,
+ predictedTUTRANGANSSDeviationLimit INTEGER(1..256) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { TUTRANGANSSMeasurementThresholdInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TUTRANGANSSMeasurementThresholdInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGANSSMeasurementValueInformation ::= SEQUENCE {
+ tUTRANGANSS TUTRANGANSS,
+ tUTRANGANSSQuality INTEGER(0..255) OPTIONAL,
+ tUTRANGANSSDriftRate INTEGER(-50..50),
+ tUTRANGANSSDriftRateQuality INTEGER(0..50) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { TUTRANGANSSMeasurementValueInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TUTRANGANSSMeasurementValueInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-Time-ID CRITICALITY ignore EXTENSION GANSS-Time-ID PRESENCE optional},
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGPSMeasurementValueInformation ::= SEQUENCE {
+ tUTRANGPS TUTRANGPS,
+ tUTRANGPSQuality TUTRANGPSQuality OPTIONAL,
+ tUTRANGPSDriftRate TUTRANGPSDriftRate,
+ tUTRANGPSDriftRateQuality TUTRANGPSDriftRateQuality OPTIONAL,
+ iEe-Extensions ProtocolExtensionContainer { { TUTRANGPSMeasurementValueInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TUTRANGPSMeasurementValueInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGPSQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/16 chip
+
+TransportBearerID ::= INTEGER (0..4095)
+
+TransportBearerRequestIndicator ::= ENUMERATED {
+ bearer-requested,
+ bearer-not-requested,
+ ...
+}
+
+TransportBearerNotRequestedIndicator ::= ENUMERATED {
+ transport-bearer-shall-not-be-established,
+ transport-bearer-may-not-be-established
+}
+
+TransportBearerNotSetupIndicator ::= ENUMERATED {
+ transport-bearer-not-setup
+}
+
+TransportBlockSize ::= INTEGER (0..5000)
+-- Unit is bits
+
+TransportFormatCombination-Beta ::= CHOICE {
+ signalledGainFactors SEQUENCE {
+ betaC BetaCD,
+ betaD BetaCD,
+ refTFCNumber RefTFCNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SignalledGainFactors-ExtIEs} } OPTIONAL,
+ ...
+ },
+ refTFCNumber RefTFCNumber,
+ ...
+}
+
+SignalledGainFactors-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS ::= SEQUENCE {
+ tFCSvalues CHOICE {
+ no-Split-in-TFCI TFCS-TFCSList,
+ not-Used-split-in-TFCI NULL,
+ -- This choice shall never be made by the SRNC and the DRNC shall consider the procedure as failed if it is received.
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { TFCS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-ExtIEs RNSAP-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 [FDD - or PRACH channel in FDD]
+ iE-Extensions ProtocolExtensionContainer { { TFCS-TFCSList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-TFCSList-ExtIEs RNSAP-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)
+}
+
+TransportFormatSet ::= SEQUENCE {
+ dynamicParts TransportFormatSet-DynamicPartList,
+ semi-staticPart TransportFormatSet-Semi-staticPart,
+ iE-Extensions ProtocolExtensionContainer { {TransportFormatSet-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-DynamicPartList ::= SEQUENCE (SIZE (1..maxNrOfTFs)) OF
+ SEQUENCE {
+ nrOfTransportBlocks NrOfTransportBlocks,
+ transportBlockSize TransportBlockSize OPTIONAL
+ -- This IE shall be present if nrOfTransportBlocks is greater than 0 --,
+ mode TransportFormatSet-ModeDP,
+ iE-Extensions ProtocolExtensionContainer { {TransportFormatSet-DynamicPartList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TransportFormatSet-DynamicPartList-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-ModeDP ::= CHOICE {
+ tdd TDD-TransportFormatSet-ModeDP,
+ notApplicable NULL,
+ ...
+}
+
+TDD-TransportFormatSet-ModeDP ::= SEQUENCE {
+ transmissionTimeIntervalInformation TransmissionTimeIntervalInformation OPTIONAL,
+ -- This IE shall be present if the "Transmission Time Interval" of the "Semi-static Transport Format Information" is "dynamic". Otherwise it is absent.
+ iE-Extensions ProtocolExtensionContainer { {TDD-TransportFormatSet-ModeDP-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TDD-TransportFormatSet-ModeDP-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionTimeIntervalInformation ::= SEQUENCE (SIZE (1..maxTTI-Count)) OF
+ SEQUENCE {
+ transmissionTimeInterval TransmissionTimeIntervalDynamic,
+ iE-Extensions ProtocolExtensionContainer { {TransmissionTimeIntervalInformation-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TransmissionTimeIntervalInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transmitted-Code-Power-Value ::= INTEGER (0..127)
+-- According to mapping in [11]/[14]
+
+Transmitted-Code-Power-Value-IncrDecrThres ::= INTEGER (0..112,...)
+
+TransportFormatManagement ::= ENUMERATED {
+ cell-based,
+ ue-based,
+ ...
+}
+
+TransportFormatSet-Semi-staticPart ::= SEQUENCE {
+ transmissionTime TransmissionTimeIntervalSemiStatic,
+ channelCoding ChannelCodingType,
+ codingRate CodingRate OPTIONAL
+ -- This IE shall be present if channelCoding is 'convolutional' or 'turbo' --,
+ rateMatcingAttribute RateMatchingAttribute,
+ cRC-Size CRC-Size,
+ mode TransportFormatSet-ModeSSP,
+ iE-Extensions ProtocolExtensionContainer { {TransportFormatSet-Semi-staticPart-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-Semi-staticPart-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-ModeSSP ::= CHOICE {
+ tdd SecondInterleavingMode,
+ notApplicable NULL,
+ ...
+}
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TrCH-SrcStatisticsDescr ::= ENUMERATED {
+ speech,
+ rRC,
+ unknown,
+ ...
+}
+
+TSN-Length ::= ENUMERATED {
+ tsn-6bits,
+ tsn-9bits
+}
+
+TSTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+TSTD-Support-Indicator ::= ENUMERATED {
+ tSTD-supported,
+ tSTD-not-supported
+}
+
+TxDiversityIndicator ::= ENUMERATED {
+ true,
+ false
+}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+UARFCN ::= INTEGER (0..16383,...)
+-- Corresponds to: 0.0Hz..3276.6Mhz. See [7], [43]
+
+UDRE ::= ENUMERATED {
+ lessThan1,
+ between1-and-4,
+ between4-and-8,
+ over8,
+ ...
+}
+
+UDREGrowthRate ::= ENUMERATED {
+ growth-1-point-5,
+ growth-2,
+ growth-4,
+ growth-6,
+ growth-8,
+ growth-10,
+ growth-12,
+ growth-16 }
+
+UDREValidityTime ::= ENUMERATED {
+ val-20sec,
+ val-40sec,
+ val-80sec,
+ val-160sec,
+ val-320sec,
+ val-640sec,
+ val-1280sec,
+ val-2560sec }
+
+UE-AggregateMaximumBitRate ::= SEQUENCE {
+ uE-AggregateMaximumBitRateDownlink UE-AggregateMaximumBitRateDownlink OPTIONAL,
+ uE-AggregateMaximumBitRateUplink UE-AggregateMaximumBitRateUplink OPTIONAL,
+ ...
+}
+
+UE-AggregateMaximumBitRateDownlink ::= INTEGER (1..1000000000)
+-- Unit is bits per sec
+
+UE-AggregateMaximumBitRateUplink ::= INTEGER (1..1000000000)
+-- Unit is bits per sec
+
+UE-AggregateMaximumBitRate-Enforcement-Indicator ::= NULL
+
+UE-Capabilities-Info ::= SEQUENCE {
+ hSDSCH-Physical-Layer-Category INTEGER (1..64,...),
+ iE-Extensions ProtocolExtensionContainer { { UE-Capabilities-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-Capabilities-Info-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-LCRTDD-uplink-Physical-Channel-Capability CRITICALITY ignore EXTENSION LCRTDD-Uplink-Physical-Channel-Capability PRESENCE optional}|
+ {ID id-number-Of-Supported-Carriers CRITICALITY reject EXTENSION Number-Of-Supported-Carriers PRESENCE optional}|
+ {ID id-MIMO-SFMode-Supported-For-HSPDSCHDualStream CRITICALITY ignore EXTENSION MIMO-SFMode-For-HSPDSCHDualStream PRESENCE optional}|
+ {ID id-MultiCarrier-HSDSCH-Physical-Layer-Category CRITICALITY ignore EXTENSION LCRTDD-HSDSCH-Physical-Layer-Category PRESENCE optional}|
+ {ID id-UE-TS0-CapabilityLCR CRITICALITY ignore EXTENSION UE-TS0-CapabilityLCR PRESENCE optional},
+ ...
+}
+
+UE-TS0-CapabilityLCR ::= ENUMERATED {
+ tS0-Capable,
+ tS0-Not-Capable
+}
+
+LCRTDD-HSDSCH-Physical-Layer-Category ::= INTEGER (1..64)
+
+UE-DPCCH-burst1 ::= ENUMERATED {v1, v2, v5}
+ -- Unit subframe
+
+UE-DPCCH-burst2 ::= ENUMERATED {v1, v2, v5}
+ -- Unit subframe
+
+UE-DRX-Cycle ::= ENUMERATED {v4, v5, v8, v10, v16, v20}
+ -- Unit subframe
+
+UE-DRX-Grant-Monitoring ::= BOOLEAN
+ -- true: applied, false: not applied
+
+UE-DTX-Cycle1-2ms ::= ENUMERATED {v1, v4, v5, v8, v10, v16, v20}
+ -- Unit subframe
+
+UE-DTX-Cycle1-10ms ::= ENUMERATED {v1, v5, v10, v20}
+ -- Unit subframe
+
+UE-DTX-Cycle2-2ms ::= ENUMERATED {v4, v5, v8, v10, v16, v20, v32, v40, v64, v80, v128, v160}
+ -- Unit subframe
+
+UE-DTX-Cycle2-10ms ::= ENUMERATED {v5, v10, v20, v40, v80, v160}
+ -- Unit subframe
+
+UE-DTX-DRX-Offset ::= INTEGER (0..159)
+ -- Unit subframe
+
+UE-DTX-Long-Preamble ::= ENUMERATED {v2, v4, v15}
+ -- Units of slots
+
+
+
+UEIdentity ::= CHOICE {
+ imsi IMSI,
+ imei IMEI,
+ imeisv IMEISV,
+ ...
+}
+
+UEMeasurementHysteresisTime ::= INTEGER (0..15)
+ -- Unit dB
+ -- Range 0..7.5 dB
+ -- Step 0.5 dB
+
+UEMeasurementParameterModAllow ::= ENUMERATED {
+ parameterModificationAllowed,
+ ...
+}
+
+UEMeasurementReportCharacteristics ::= CHOICE {
+ periodic UEMeasurementReportCharacteristicsPeriodic,
+ event1h UEMeasurementReportCharacteristicsEvent1h,
+ event1i UEMeasurementReportCharacteristicsEvent1i,
+ event6a UEMeasurementReportCharacteristicsEvent6a,
+ event6b UEMeasurementReportCharacteristicsEvent6b,
+ event6c UEMeasurementReportCharacteristicsEvent6c,
+ event6d UEMeasurementReportCharacteristicsEvent6d,
+ ...,
+ extension-ReportCharacteristics UEMeasurementReportCharacteristics-Extension
+}
+
+UEMeasurementReportCharacteristicsEvent1h ::= SEQUENCE {
+ uEMeasurementTreshold UEMeasurementThreshold,
+ uEMeasurementTimeToTrigger UEMeasurementTimeToTrigger,
+ uEMeasurementHysteresisTime UEMeasurementHysteresisTime,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementReportCharacteristicsEvent1h-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent1h-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent1i ::= SEQUENCE {
+ uEMeasurementTreshold UEMeasurementThreshold,
+ uEMeasurementTimeToTrigger UEMeasurementTimeToTrigger,
+ uEMeasurementHysteresisTime UEMeasurementHysteresisTime,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementReportCharacteristicsEvent1i-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent1i-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent6a ::= SEQUENCE {
+ uEMeasurementTreshold UEMeasurementThreshold,
+ uEMeasurementTimeToTrigger UEMeasurementTimeToTrigger,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementReportCharacteristicsEvent6a-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent6a-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent6b ::= SEQUENCE {
+ uEMeasurementTreshold UEMeasurementThreshold,
+ uEMeasurementTimeToTrigger UEMeasurementTimeToTrigger,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementReportCharacteristicsEvent6b-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent6b-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent6c ::= SEQUENCE {
+ uEMeasurementTimeToTrigger UEMeasurementTimeToTrigger,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementReportCharacteristicsEvent6c-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent6c-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent6d ::= SEQUENCE {
+ uEMeasurementTimeToTrigger UEMeasurementTimeToTrigger,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementReportCharacteristicsEvent6d-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementReportCharacteristicsEvent6d-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementReportCharacteristicsPeriodic ::= SEQUENCE {
+ amountofReporting UEMeasurementReportCharacteristicsPeriodicAmountofReporting,
+ reportingInterval UEMeasurementReportCharacteristicsPeriodicReportingInterval,
+ iE-Extensions ProtocolExtensionContainer { {UEMeasurementReportCharacteristicsPeriodic-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementReportCharacteristicsPeriodicAmountofReporting::= ENUMERATED {
+ r1,
+ r2,
+ r4,
+ r8,
+ r16,
+ r32,
+ r64,
+ rInfinity
+}
+
+UEMeasurementReportCharacteristicsPeriodicReportingInterval::= ENUMERATED {
+ r250,
+ r500,
+ r1000,
+ r2000,
+ r3000,
+ r4000,
+ r6000,
+ r8000,
+ r12000,
+ r16000,
+ r20000,
+ r24000,
+ r28000,
+ r32000,
+ r64000
+}
+
+UEMeasurementReportCharacteristicsPeriodic-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementReportCharacteristics-Extension ::= ProtocolIE-Single-Container {{ UEMeasurementReportCharacteristics-ExtensionIE }}
+
+UEMeasurementReportCharacteristics-ExtensionIE RNSAP-PROTOCOL-IES ::= {
+ ...
+}
+
+UEMeasurementThreshold ::= CHOICE {
+ timeslotISCP UEMeasurementThresholdDLTimeslotISCP,
+ uETransmitPower UEMeasurementThresholdUETransmitPower,
+ ...,
+ extension-UEMeasurementThreshold UEMeasurementThreshold-Extension
+}
+
+UEMeasurementThresholdDLTimeslotISCP ::= INTEGER(-115..-25)
+
+UEMeasurementThresholdUETransmitPower ::= INTEGER(-50..33)
+
+UEMeasurementThreshold-Extension ::= ProtocolIE-Single-Container {{ UEMeasurementThreshold-ExtensionIE }}
+
+UEMeasurementThreshold-ExtensionIE RNSAP-PROTOCOL-IES ::= {
+ ...
+}
+
+UEMeasurementTimeslotInfoHCR::= SEQUENCE (SIZE (1..maxNrOfTS)) OF UEMeasurementTimeslotInfoHCR-IEs
+
+UEMeasurementTimeslotInfoHCR-IEs ::= SEQUENCE {
+ timeSlot TimeSlot,
+ burstType UEMeasurementTimeslotInfoHCRBurstType,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementTimeslotInfoHCR-IEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementTimeslotInfoHCRBurstType ::= ENUMERATED {
+ type1,
+ type2,
+ type3,
+ ...
+}
+
+UEMeasurementTimeslotInfoHCR-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementTimeslotInfoLCR::= SEQUENCE (SIZE (1..maxNrOfTsLCR)) OF UEMeasurementTimeslotInfoLCR-IEs
+
+UEMeasurementTimeslotInfoLCR-IEs ::= SEQUENCE {
+ timeSlot TimeSlotLCR,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementTimeslotInfoLCR-IEs-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+UEMeasurementTimeslotInfoLCR-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementTimeslotInfo768::= SEQUENCE (SIZE (1..maxNrOfTS)) OF UEMeasurementTimeslotInfo768-IEs
+
+UEMeasurementTimeslotInfo768-IEs ::= SEQUENCE {
+ timeSlot TimeSlot,
+ burstType UEMeasurementTimeslotInfo768BurstType,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementTimeslotInfo768-IEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementTimeslotInfo768BurstType ::= ENUMERATED {
+ type1,
+ type2,
+ type3,
+ ...
+}
+
+UEMeasurementTimeslotInfo768-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementTimeToTrigger ::= ENUMERATED {
+ r0,
+ r10,
+ r20,
+ r40,
+ r60,
+ r80,
+ r100,
+ r120,
+ r160,
+ r200,
+ r240,
+ r320,
+ r640,
+ r1280,
+ r2560,
+ r5000
+}
+
+UEMeasurementType ::= ENUMERATED {
+ primary-CCPCH-RSCP,
+ dL-Timeslot-ISCP,
+ uE-Transmitted-power,
+ ...
+}
+
+UEMeasurementValue ::= CHOICE {
+ uE-Transmitted-Power UE-MeasurementValue-UE-Transmitted-Power,
+ primary-CCPCH-RSCP UE-MeasurementValue-Primary-CCPCH-RSCP,
+ dL-Timeslot-ISCP UE-MeasurementValue-DL-Timeslot-ISCP,
+ ...,
+ extension-UEMeasurementValue UEMeasurementValue-Extension
+}
+
+UE-MeasurementValue-UE-Transmitted-Power ::= SEQUENCE {
+ uEMeasurementTransmittedPowerListHCR UEMeasurementValueTransmittedPowerListHCR OPTIONAL,
+-- Mandatory for 3.84Mcps TDD, Not applicable for 1.28Mcps TDD or 7.68Mcps TDD
+ uEMeasurementTransmittedPowerListLCR UEMeasurementValueTransmittedPowerListLCR OPTIONAL,
+-- Mandatory for 1.28Mcps TDD, Not applicable for 3.84Mcps TDD or 7.68Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { { UE-MeasurementValue-UE-Transmitted-Power-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-MeasurementValue-UE-Transmitted-Power-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UEMeasurementValueTransmittedPowerList768 CRITICALITY ignore EXTENSION UEMeasurementValueTransmittedPowerList768 PRESENCE optional },
+ ...
+}
+
+UEMeasurementValueTransmittedPowerListHCR ::= SEQUENCE (SIZE (1..maxNrOfTS)) OF UEMeasurementValueTransmittedPowerListHCR-IEs
+
+UEMeasurementValueTransmittedPowerListHCR-IEs ::= SEQUENCE {
+ timeSlot TimeSlot,
+ uETransmitPower INTEGER(0..104),
+ -- mapping according to [24],values 0..20 not used
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementValueTransmittedPowerListHCR-IEs-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+UEMeasurementValueTransmittedPowerListHCR-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+UEMeasurementValueTransmittedPowerListLCR ::= SEQUENCE (SIZE (1..maxNrOfTsLCR)) OF UEMeasurementValueTransmittedPowerListLCR-IEs
+
+UEMeasurementValueTransmittedPowerListLCR-IEs ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ uETransmitPower INTEGER(0..104),
+ -- mapping according to [24],values 0..20 not used
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementValueTransmittedPowerListLCR-IEs-ExtIEs} } OPTIONAL,
+ ...
+
+}
+UEMeasurementValueTransmittedPowerListLCR-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementValueTransmittedPowerList768 ::= SEQUENCE (SIZE (1..maxNrOfTS)) OF UEMeasurementValueTransmittedPowerList768-IEs
+
+UEMeasurementValueTransmittedPowerList768-IEs ::= SEQUENCE {
+ timeSlot TimeSlot,
+ uETransmitPower INTEGER(0..104),
+ -- mapping according to [24],values 0..20 not used
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementValueTransmittedPowerList768-IEs-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+UEMeasurementValueTransmittedPowerList768-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-MeasurementValue-Primary-CCPCH-RSCP::= SEQUENCE {
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
+ primaryCCPCH-RSCP-Delta PrimaryCCPCH-RSCP-Delta OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-MeasurementValue-Primary-CCPCH-RSCP-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-MeasurementValue-Primary-CCPCH-RSCP-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-MeasurementValue-DL-Timeslot-ISCP ::= SEQUENCE {
+ uEMeasurementTimeslotISCPListHCR UEMeasurementValueTimeslotISCPListHCR OPTIONAL,
+-- Mandatory for 3.84Mcps TDD, Not applicable for 1.28Mcps TDD or 7.68Mcps TDD
+ uEMeasurementTimeslotISCPListLCR UEMeasurementValueTimeslotISCPListLCR OPTIONAL,
+-- Mandatory for 1.28Mcps TDD, Not applicable for 3.84Mcps TDD or 7.68Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { { UE-MeasurementValue-DL-Timeslot-ISCP-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-MeasurementValue-DL-Timeslot-ISCP-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UEMeasurementValueTimeslotISCPList768 CRITICALITY ignore EXTENSION UEMeasurementValueTimeslotISCPList768 PRESENCE optional },
+ ...
+}
+
+UEMeasurementValueTimeslotISCPListHCR ::= SEQUENCE (SIZE (1..maxNrOfTS)) OF UEMeasurementValueTimeslotISCPListHCR-IEs
+
+UEMeasurementValueTimeslotISCPListHCR-IEs ::= SEQUENCE {
+ timeSlot TimeSlot,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementValueTimeslotISCPListHCR-IEs-ExtIEs} } OPTIONAL,
+ ...
+
+}
+UEMeasurementValueTimeslotISCPListHCR-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+UEMeasurementValueTimeslotISCPListLCR ::= SEQUENCE (SIZE (1..maxNrOfTsLCR)) OF UEMeasurementValueTimeslotISCPListLCR-IEs
+
+UEMeasurementValueTimeslotISCPListLCR-IEs ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementValueTimeslotISCPListLCR-IEs-ExtIEs} } OPTIONAL,
+ ...
+
+}
+UEMeasurementValueTimeslotISCPListLCR-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementValueTimeslotISCPList768 ::= SEQUENCE (SIZE (1..maxNrOfTS)) OF UEMeasurementValueTimeslotISCPList768-IEs
+
+UEMeasurementValueTimeslotISCPList768-IEs ::= SEQUENCE {
+ timeSlot TimeSlot,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { { UEMeasurementValueTimeslotISCPList768-IEs-ExtIEs} } OPTIONAL,
+ ...
+
+}
+UEMeasurementValueTimeslotISCPList768-IEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementValue-Extension ::= ProtocolIE-Single-Container {{ UEMeasurementValue-ExtensionIE }}
+
+UEMeasurementValue-ExtensionIE RNSAP-PROTOCOL-IES ::= {
+ ...
+}
+
+UEMeasurementValueInformation ::= CHOICE {
+ measurementAvailable UEMeasurementValueInformationAvailable,
+ measurementnotAvailable UEMeasurementValueInformationnotAvailable
+}
+
+UEMeasurementValueInformationAvailable::= SEQUENCE {
+ uEmeasurementValue UEMeasurementValue,
+ ie-Extensions ProtocolExtensionContainer { { UEMeasurementValueInformationAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEMeasurementValueInformationAvailableItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEMeasurementValueInformationnotAvailable ::= NULL
+
+UE-SupportIndicatorExtension ::= BIT STRING (SIZE (32))
+-- First bit: Different HS-SCCH In Consecutive TTIs Support Indicator
+-- Second bit: HS-SCCH orders in HS-SCCH-less Operation Support Indicator
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+UE-State ::= CHOICE {
+ cell-fach-pch Cell-Fach-Pch-State,
+ ura-pch Ura-Pch-State,
+ ...
+}
+
+
+
+Cell-Fach-Pch-State ::= SEQUENCE {
+ d-RNTI D-RNTI,
+ iE-Extensions ProtocolExtensionContainer { { Cell-Fach-Pch-State-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-Fach-Pch-State-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Ura-Pch-State ::= SEQUENCE {
+ srnc-id RNC-ID,
+ ura-id URA-ID,
+ iE-Extensions ProtocolExtensionContainer { { Ura-Pch-State-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ura-Pch-State-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-SRNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional },
+ ...
+}
+
+UL-Delta-T2TP ::= INTEGER (0..6,...)
+
+UL-DL-mode ::= ENUMERATED {
+ ul-only,
+ dl-only,
+ both-ul-and-dl
+}
+
+UL-DPDCHIndicatorEDCH ::= ENUMERATED {
+ uL-DPDCH-present,
+ uL-DPDCH-not-present}
+
+UL-Timeslot-Information::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF UL-Timeslot-InformationItem
+
+UL-Timeslot-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-Information TDD-UL-Code-Information,
+ iE-Extensions ProtocolExtensionContainer { {UL-Timeslot-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotLCR-Information ::= SEQUENCE (SIZE (1..maxNrOfULTsLCR)) OF UL-TimeslotLCR-InformationItem
+
+UL-TimeslotLCR-InformationItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-LCR-InformationList TDD-UL-Code-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeslotLCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-TimeslotLCR-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PLCCH-Information-UL-TimeslotLCR-Info CRITICALITY ignore EXTENSION PLCCHinformation PRESENCE optional },
+ ...
+}
+PLCCHinformation ::= SEQUENCE {
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ sequenceNumber PLCCHsequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { { PLCCHinformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLCCHinformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-Information768::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF UL-Timeslot-InformationItem768
+
+UL-Timeslot-InformationItem768 ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-Information768 TDD-UL-Code-Information768,
+ iE-Extensions ProtocolExtensionContainer { {UL-Timeslot-InformationItem768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationItem768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeSlot-ISCP-Info ::= SEQUENCE (SIZE (1..maxNrOfULTs)) OF UL-TimeSlot-ISCP-InfoItem
+
+UL-TimeSlot-ISCP-InfoItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ uL-TimeslotISCP UL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeSlot-ISCP-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-TimeSlot-ISCP-InfoItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeSlot-ISCP-LCR-Info ::= SEQUENCE (SIZE (1..maxNrOfULTsLCR)) OF UL-TimeSlot-ISCP-LCR-InfoItem
+
+UL-TimeSlot-ISCP-LCR-InfoItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ iSCP UL-Timeslot-ISCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-ISCP-Value ::= UL-TimeslotISCP
+
+UL-Timeslot-ISCP-Value-IncrDecrThres ::= INTEGER(0..126)
+-- Unit dB. Step 0.5dB
+-- e.g. Value 100 means 50dB
+
+UL-TimingAdvanceCtrl-LCR ::= SEQUENCE {
+ sync-UL-codes-bitmap BIT STRING (SIZE(8)),
+ fPACH-info FPACH-Information,
+ prxUpPCHdes INTEGER (-120 .. -58, ...),
+ syncUL-procParameter SYNC-UL-ProcParameters,
+ mMax INTEGER (1..32),
+ ...
+ }
+
+Uplink-Compressed-Mode-Method ::= ENUMERATED {
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+UL-SIR ::= INTEGER (-82..173)
+-- The UL-SIR gives the UL-SIR in number of 0.1 dB steps.
+-- E.g. Value 173 means 17.3 dB
+-- Unit dB. Step 0.1 dB.
+
+UC-ID ::= SEQUENCE {
+ rNC-ID RNC-ID,
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { {UC-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UC-ID-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-RNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional},
+ ...
+}
+
+UL-DPCCH-SlotFormat ::= INTEGER (0..5,...)
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-ScramblingCodeLength ::= ENUMERATED {
+ short,
+ long
+}
+
+UL-ScramblingCodeNumber ::= INTEGER (0..16777215)
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Synchronisation-StepSize ::= INTEGER (1..8)
+
+UL-Synchronisation-Frequency ::= INTEGER (1..8)
+
+UL-TimeslotISCP ::= INTEGER (0..127)
+-- According to mapping in [14]
+
+UPPCHPositionLCR ::= INTEGER (0..127)
+
+UpPTSInterferenceValue ::= INTEGER (0..127,...)
+
+Unidirectional-DCH-Indicator ::= ENUMERATED {
+ downlink-DCH-only,
+ uplink-DCH-only
+}
+
+URA-ID ::= INTEGER (0..65535)
+
+URA-Information ::= SEQUENCE {
+ uRA-ID URA-ID,
+ multipleURAsIndicator MultipleURAsIndicator,
+ rNCsWithCellsInTheAccessedURA-List RNCsWithCellsInTheAccessedURA-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {URA-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+URA-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-RNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional },
+ ...
+}
+
+RNCsWithCellsInTheAccessedURA-List ::= SEQUENCE (SIZE (1..maxRNCinURA-1)) OF RNCsWithCellsInTheAccessedURA-Item
+
+RNCsWithCellsInTheAccessedURA-Item ::= SEQUENCE {
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {RNCsWithCellsInTheAccessedURA-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RNCsWithCellsInTheAccessedURA-Item-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-ID ::= INTEGER (0..255)
+
+USCH-Information ::= SEQUENCE (SIZE (1..maxNoOfUSCHs)) OF USCH-InformationItem
+
+USCH-InformationItem ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ ul-CCTrCH-ID CCTrCH-ID,
+ trChSourceStatisticsDescriptor TrCH-SrcStatisticsDescr,
+ transportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ rb-Info RB-Info,
+ iE-Extensions ProtocolExtensionContainer { {USCH-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-InformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass PRESENCE mandatory }|
+ { 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 },
+ ...
+}
+
+User-Plane-Congestion-Fields-Inclusion ::= ENUMERATED { shall-be-included }
+
+Uu-ActivationState ::= ENUMERATED {
+ activated,
+ de-activated,
+ ...
+}
+
+
+-- V
+-- W
+-- X
+-- Y
+-- Z
+
+END
+
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn b/epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn
new file mode 100644
index 0000000000..3c3a5069c4
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn
@@ -0,0 +1,8233 @@
+-- RNSAP-PDU-Contents.asn
+--
+-- Taken from 3GPP TS 25.423 V9.4.0 (2010-09)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.423/25423-790.zip/25423-790.DOC
+--
+-- 9.3.3 PDU Definitions
+--
+
+-- **************************************************************
+--
+-- PDU definitions for RNSAP.
+--
+-- **************************************************************
+
+RNSAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rnsap (1) version1 (1) rnsap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Active-Pattern-Sequence-Information,
+ Active-MBMS-Bearer-Service-ListFDD,
+ Active-MBMS-Bearer-Service-ListFDD-PFL,
+ Active-MBMS-Bearer-Service-ListTDD,
+ Active-MBMS-Bearer-Service-ListTDD-PFL,
+ AllocationRetentionPriority,
+ AllowedQueuingTime,
+ Allowed-Rate-Information,
+ AlphaValue,
+ AlternativeFormatReportingIndicator,
+ AntennaColocationIndicator,
+ BLER,
+ SCTD-Indicator,
+ BindingID,
+ C-ID,
+ C-RNTI,
+ CCTrCH-ID,
+ CFN,
+ CGI,
+ ClosedLoopMode1-SupportIndicator,
+ Closedlooptimingadjustmentmode,
+ CN-CS-DomainIdentifier,
+ CN-PS-DomainIdentifier,
+ CNDomainType,
+ Cause,
+ CellCapabilityContainer-FDD,
+ CellCapabilityContainerExtension-FDD,
+ CellCapabilityContainer-TDD,
+ CellCapabilityContainer-TDD-LCR,
+ CellCapabilityContainer-TDD768,
+ CellParameterID,
+ CellPortionID,
+ ChipOffset,
+ CommonMeasurementAccuracy,
+ CommonMeasurementType,
+ CommonMeasurementValue,
+ CommonMeasurementValueInformation,
+ CommonTransportChannelResourcesInitialisationNotRequired,
+ Common-EDCH-MAC-d-Flow-Specific-InformationFDD,
+ Common-EDCH-Support-Indicator,
+ CongestionCause,
+ Continuous-Packet-Connectivity-DTX-DRX-Information,
+ Continuous-Packet-Connectivity-HS-SCCH-Less-Information,
+ Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response,
+ CPC-Information,
+ CoverageIndicator,
+ CriticalityDiagnostics,
+ CellPortionLCRID,
+ D-RNTI,
+ D-RNTI-ReleaseIndication,
+ DCH-FDD-Information,
+ DCH-ID,
+ DCH-Indicator-For-E-DCH-HSDPA-Operation,
+ DPCH-ID768,
+ DCH-InformationResponse,
+ DCH-TDD-Information,
+ DL-DPCH-SlotFormat,
+ DL-TimeslotISCP,
+ DL-Power,
+ DL-PowerBalancing-Information,
+ DL-PowerBalancing-ActivationIndicator,
+ DL-PowerBalancing-UpdatedIndicator,
+ DL-ReferencePowerInformation,
+ DL-ScramblingCode,
+ DL-Timeslot-Information,
+ DL-Timeslot-Information768,
+ DL-TimeslotLCR-Information,
+ DL-TimeSlot-ISCP-Info,
+ DL-TimeSlot-ISCP-LCR-Information,
+ DPC-Mode,
+ DPC-Mode-Change-SupportIndicator,
+ DPCH-ID,
+ DL-DPCH-TimingAdjustment,
+ DRXCycleLengthCoefficient,
+ DedicatedMeasurementType,
+ DedicatedMeasurementValue,
+ DedicatedMeasurementValueInformation,
+ DelayedActivation,
+ DelayedActivationUpdate,
+ DiversityControlField,
+ DiversityMode,
+ DSCH-FlowControlInformation,
+ DSCH-FlowControlItem,
+ DSCH-TDD-Information,
+ DSCH-ID,
+ DSCH-RNTI,
+ EDCH-FDD-Information,
+ EDCH-FDD-InformationResponse,
+ EDCH-FDD-Information-To-Modify,
+ EDCH-FDD-DL-ControlChannelInformation,
+ EDCH-DDI-Value,
+ EDCH-MACdFlow-ID,
+ EDCH-MACdFlow-Specific-InfoList,
+ EDCH-MACdFlows-To-Delete,
+ EDCH-MACdFlows-Information,
+ EDCH-RL-Indication,
+ EDCH-Serving-RL,
+ E-DCH-Serving-cell-change-informationResponse,
+ EDPCH-Information-FDD,
+ EDPCH-Information-RLReconfPrepare-FDD,
+ EDPCH-Information-RLReconfRequest-FDD,
+ E-DCH-FDD-Update-Information,
+ E-DPCCH-PO,
+ E-RGCH-2-IndexStepThreshold,
+ E-RGCH-3-IndexStepThreshold,
+ E-RNTI,
+ E-TFCS-Information,
+ E-TTI,
+ Enhanced-FACH-Support-Indicator,
+ Enhanced-FACH-Information-ResponseFDD,
+ Enhanced-PCH-Capability,
+ ExtendedPropagationDelay,
+ Extended-RNC-ID,
+ SchedulingPriorityIndicator,
+ Enhanced-PrimaryCPICH-EcNo,
+ F-DPCH-SlotFormat,
+ F-DPCH-SlotFormatSupportRequest,
+ FACH-FlowControlInformation,
+ Fast-Reconfiguration-Mode,
+ Fast-Reconfiguration-Permission,
+ FDD-DCHs-to-Modify,
+ FDD-DL-ChannelisationCodeNumber,
+ FDD-DL-CodeInformation,
+ FDD-TPC-DownlinkStepSize,
+ FirstRLS-Indicator,
+ FNReportingIndicator,
+ FrameHandlingPriority,
+ FrameOffset,
+ GA-AccessPointPosition,
+ GA-Cell,
+ GA-CellAdditionalShapes,
+ HARQ-Info-for-E-DCH,
+ HCS-Prio,
+ HSDSCH-Configured-Indicator,
+ HSDSCH-FDD-Information,
+ HSDSCH-FDD-Information-Response,
+ HSDSCH-FDD-Update-Information,
+ HSDSCH-TDD-Update-Information,
+ HSDSCH-Information-to-Modify,
+ HSDSCH-Information-to-Modify-Unsynchronised,
+ HSDSCH-MACdFlow-ID,
+ HSDSCH-MACdFlows-Information,
+ HSDSCH-MACdFlows-to-Delete,
+ HSDSCH-Physical-Layer-Category,
+ HSDSCH-RNTI,
+ HS-DSCH-serving-cell-change-information,
+ HS-DSCH-serving-cell-change-informationResponse,
+ HSDSCH-TDD-Information,
+ HSDSCH-TDD-Information-Response,
+ HS-SICH-ID,
+ IMSI,
+ InformationExchangeID,
+ InformationReportCharacteristics,
+ InformationType,
+ Initial-DL-DPCH-TimingAdjustment-Allowed,
+ InnerLoopDLPCStatus,
+ Inter-Frequency-Cell-List,
+ L3-Information,
+ LimitedPowerIncrease,
+ MaximumAllowedULTxPower,
+ MaxNrDLPhysicalchannels,
+ MaxNrDLPhysicalchannelsTS,
+ MaxNrDLPhysicalchannels768,
+ MaxNrDLPhysicalchannelsTS768,
+ MaxNrOfUL-DPCHs,
+ MaxNrTimeslots,
+ MaxNrULPhysicalchannels,
+ MACes-Guaranteed-Bitrate,
+ MaxNr-Retransmissions-EDCH,
+ Max-Set-E-DPDCHs,
+ Max-UE-DTX-Cycle,
+ MeasurementFilterCoefficient,
+ MeasurementID,
+ MeasurementRecoveryBehavior,
+ MeasurementRecoveryReportingIndicator,
+ MeasurementRecoverySupportIndicator,
+ MBMS-Bearer-Service-List,
+ MBSFN-Cluster-Identity,
+ MCCH-Configuration-Info,
+ MCCH-Message-List,
+ MBSFN-Scheduling-Transmission-Time-Interval-Info-List,
+ MidambleAllocationMode,
+ MidambleShiftAndBurstType,
+ MidambleShiftAndBurstType768,
+ MidambleShiftLCR,
+ MinimumSpreadingFactor,
+ MinimumSpreadingFactor768,
+ MinUL-ChannelisationCodeLength,
+ Multiple-PLMN-List,
+ MultiplexingPosition,
+ NeighbouringFDDCellMeasurementInformation,
+ NeighbouringTDDCellMeasurementInformation,
+ NeighbouringTDDCellMeasurementInformation768,
+ Neighbouring-GSM-CellInformation,
+ Neighbouring-UMTS-CellInformation,
+ NeighbouringTDDCellMeasurementInformationLCR,
+ Neighbouring-E-UTRA-CellInformation,
+ NrOfDLchannelisationcodes,
+ PagingCause,
+ PagingRecordType,
+ PartialReportingIndicator,
+ PayloadCRC-PresenceIndicator,
+ PCCPCH-Power,
+ PC-Preamble,
+ Permanent-NAS-UE-Identity,
+ Phase-Reference-Update-Indicator,
+ PowerAdjustmentType,
+ PowerOffset,
+ PrimaryCCPCH-RSCP,
+ PrimaryCPICH-EcNo,
+ PrimaryCPICH-Power,
+ Primary-CPICH-Usage-For-Channel-Estimation,
+ PrimaryScramblingCode,
+ PropagationDelay,
+ ProvidedInformation,
+ PunctureLimit,
+ QE-Selector,
+ RANAP-EnhancedRelocationInformationRequest,
+ RANAP-EnhancedRelocationInformationResponse,
+ RANAP-RelocationInformation,
+ RB-Info,
+ Released-CN-Domain,
+ RL-ID,
+ RL-Set-ID,
+ RL-Specific-EDCH-Information,
+ RNC-ID,
+ RepetitionLength,
+ RepetitionPeriod,
+ ReportCharacteristics,
+ Received-total-wide-band-power,
+ RequestedDataValue,
+ RequestedDataValueInformation,
+ RL-Specific-DCH-Info,
+ RxTimingDeviationForTA,
+ RxTimingDeviationForTA768,
+ S-RNTI,
+ S-RNTI-Group,
+ SCH-TimeSlot,
+ SAI,
+ SFN,
+ Secondary-CCPCH-Info-TDD,
+ Secondary-CCPCH-Info-TDD768,
+ Secondary-CCPCH-System-Information-MBMS,
+ Secondary-CPICH-Information,
+ Secondary-CPICH-Information-Change,
+ Secondary-LCR-CCPCH-Info-TDD,
+ Secondary-Serving-Cell-List,
+ SNA-Information,
+ SpecialBurstScheduling,
+ SSDT-SupportIndicator,
+ STTD-SupportIndicator,
+ AdjustmentPeriod,
+ ScaledAdjustmentRatio,
+ MaxAdjustmentStep,
+ SRB-Delay,
+ Support-8PSK,
+ SyncCase,
+ SynchronisationConfiguration,
+ SixtyfourQAM-DL-SupportIndicator,
+ TDD-ChannelisationCode,
+ TDD-ChannelisationCode768,
+ TDD-DCHs-to-Modify,
+ TDD-DL-Code-Information,
+ TDD-DPCHOffset,
+ TDD-PhysicalChannelOffset,
+ TDD-TPC-DownlinkStepSize,
+ TDD-ChannelisationCodeLCR,
+ TDD-DL-Code-LCR-Information,
+ TDD-DL-Code-Information768,
+ TDD-UL-Code-Information,
+ TDD-UL-Code-LCR-Information,
+ TDD-UL-Code-Information768,
+ TFCI-Coding,
+ TFCI-Presence,
+ TFCI-SignallingMode,
+ TimeSlot,
+ TimeSlotLCR,
+ TimingAdvanceApplied,
+ TMGI,
+ TnlQos,
+ ToAWE,
+ ToAWS,
+ TraceDepth,
+ TraceRecordingSessionReference,
+ TraceReference,
+ TrafficClass,
+ TransmitDiversityIndicator,
+ TransportBearerID,
+ TransportBearerRequestIndicator,
+ TFCS,
+ Transmission-Gap-Pattern-Sequence-Information,
+ TransportFormatManagement,
+ TransportFormatSet,
+ TransportLayerAddress,
+ TrCH-SrcStatisticsDescr,
+ TSTD-Indicator,
+ TSTD-Support-Indicator,
+ UARFCN,
+ UC-ID,
+ UE-AggregateMaximumBitRate,
+ UEIdentity,
+ UEMeasurementType,
+ UEMeasurementTimeslotInfoHCR,
+ UEMeasurementTimeslotInfoLCR,
+ UEMeasurementTimeslotInfo768,
+ UEMeasurementReportCharacteristics,
+ UEMeasurementParameterModAllow,
+ UEMeasurementValueInformation,
+ UE-State,
+ UL-DPCCH-SlotFormat,
+ UL-DPDCHIndicatorEDCH,
+ UL-SIR,
+ UL-FP-Mode,
+ UL-PhysCH-SF-Variation,
+ UL-ScramblingCode,
+ UL-Timeslot-Information,
+ UL-Timeslot-Information768,
+ UL-TimeslotLCR-Information,
+ UL-TimeSlot-ISCP-Info,
+ UL-TimeSlot-ISCP-LCR-Info,
+ URA-ID,
+ URA-Information,
+ USCH-ID,
+ USCH-Information,
+ UL-Synchronisation-Parameters-LCR,
+ TDD-DL-DPCH-TimeSlotFormat-LCR,
+ TDD-UL-DPCH-TimeSlotFormat-LCR,
+ MAChs-ResetIndicator,
+ UL-TimingAdvanceCtrl-LCR,
+ TDD-TPC-UplinkStepSize-LCR,
+ PrimaryCCPCH-RSCP-Delta,
+ SynchronisationIndicator,
+ Support-PLCCH,
+ PLCCHinformation,
+ RxTimingDeviationForTAext,
+ E-DCH-Information,
+ E-DCH-Information-Reconfig,
+ E-DCH-Information-Response,
+ E-DCH-768-Information,
+ E-DCH-768-Information-Reconfig,
+ E-DCH-768-Information-Response,
+ E-DCH-LCR-Information,
+ E-DCH-LCR-Information-Reconfig,
+ E-DCH-LCR-Information-Response,
+ ControlGAP,
+ IdleIntervalInformation,
+ NeedforIdleInterval,
+ HS-SICH-ID-Extension,
+ TSN-Length,
+ UPPCHPositionLCR,
+ Common-EDCH-MAC-d-Flow-Specific-InformationLCR,
+ Enhanced-FACH-Information-ResponseLCR,
+ HSDSCH-PreconfigurationSetup,
+ HSDSCH-PreconfigurationInfo,
+ NoOfTargetCellHS-SCCH-Order,
+ EnhancedHSServingCC-Abort,
+ GANSS-Time-ID,
+ HS-DSCH-FDD-Secondary-Serving-Update-Information,
+ HS-DSCH-Secondary-Serving-Remove,
+ HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised,
+ HS-DSCH-Secondary-Serving-Information-To-Modify,
+ HS-DSCH-Secondary-Serving-Cell-Change-Information-Response,
+ HS-DSCH-FDD-Secondary-Serving-Information-Response,
+ HS-DSCH-FDD-Secondary-Serving-Information,
+ MinimumReducedE-DPDCH-GainFactor,
+ ContinuousPacketConnectivity-DRX-InformationLCR,
+ ContinuousPacketConnectivity-DRX-Information-ResponseLCR,
+ CPC-InformationLCR,
+ E-DCH-Semi-PersistentScheduling-Information-LCR,
+ HS-DSCH-Semi-PersistentScheduling-Information-LCR,
+ HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR,
+ E-DCH-Semi-PersistentScheduling-Information-ResponseLCR,
+ RNTI-Allocation-Indicator,
+ ActivationInformation,
+ Additional-EDCH-Setup-Info,
+ Additional-EDCH-Cell-Information-Response-List,
+ Additional-EDCH-FDD-Update-Information,
+ Additional-EDCH-Cell-Information-To-Add-List,
+ Additional-EDCH-Cell-Information-Response-RLReconf-List,
+ DCH-MeasurementOccasion-Information,
+ DCH-MeasurementType-Indicator,
+ Setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency,
+ Additional-EDCH-Cell-Information-Response-RLAddList,
+ Non-Serving-RL-Preconfig-Setup,
+ Non-Serving-RL-Preconfig-Info
+
+
+
+
+FROM RNSAP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-Container{},
+ ProtocolIE-Single-Container{},
+ RNSAP-PRIVATE-IES,
+ RNSAP-PROTOCOL-EXTENSION,
+ RNSAP-PROTOCOL-IES,
+ RNSAP-PROTOCOL-IES-PAIR
+FROM RNSAP-Containers
+
+ maxCellsMeas,
+ maxNoOfDSCHs,
+ maxNoOfUSCHs,
+ maxNrOfCCTrCHs,
+ maxNrOfDCHs,
+ maxNrOfTS,
+ maxNrOfDPCHs,
+ maxNrOfDPCHs768,
+ maxNrOfDPCHsPerRL-1,
+ maxNrOfDPCHs768PerRL-1,
+ maxNrOfInterfaces,
+ maxNrOfRLs,
+ maxNrOfRLSets,
+ maxNrOfRLSets-1,
+ maxNrOfRLs-1,
+ maxNrOfRLs-2,
+ maxNrOfULTs,
+ maxNrOfDLTs,
+ maxResetContext,
+ maxResetContextGroup,
+ maxNoOfDSCHsLCR,
+ maxNoOfUSCHsLCR,
+ maxNrOfCCTrCHsLCR,
+ maxNrOfTsLCR,
+ maxNrOfDLTsLCR,
+ maxNrOfULTsLCR,
+ maxNrOfDPCHsLCR,
+ maxNrOfDPCHsLCRPerRL-1,
+ maxNrOfLCRTDDNeighboursPerRNC,
+ maxNrOfMeasNCell,
+ maxNrOfMACdFlows,
+ maxNrOfMACdPDUSize,
+ maxNrOfMCCHMessages,
+ maxNrOfMBMSL3,
+ maxNrOfEDCHMACdFlows,
+ maxNrOfHSSICHs,
+ maxNrOfHSSICHs-1,
+ maxNrOfActiveMBMSServices,
+ maxNrOfMBMSServices,
+ maxNrofSigSeqERGHICH-1,
+ maxNrOfCells,
+ maxNrOfHSDSCH-1,
+ maxNrOfEDCH-1,
+
+ id-Active-MBMS-Bearer-ServiceFDD,
+ id-Active-MBMS-Bearer-ServiceFDD-PFL,
+ id-Active-MBMS-Bearer-ServiceTDD,
+ id-Active-MBMS-Bearer-ServiceTDD-PFL,
+ id-Active-Pattern-Sequence-Information,
+ id-AdjustmentRatio,
+ id-AllowedQueuingTime,
+ id-AlternativeFormatReportingIndicator,
+ id-AntennaColocationIndicator,
+ id-BindingID,
+ id-C-ID,
+ id-C-RNTI,
+ id-CFN,
+ id-CFNReportingIndicator,
+ id-CN-CS-DomainIdentifier,
+ id-CN-PS-DomainIdentifier,
+ id-Cause,
+ id-CauseLevel-RL-AdditionFailureFDD,
+ id-CauseLevel-RL-AdditionFailureTDD,
+ id-CauseLevel-RL-ReconfFailure,
+ id-CauseLevel-RL-SetupFailureFDD,
+ id-CauseLevel-RL-SetupFailureTDD,
+ id-CCTrCH-InformationItem-RL-FailureInd,
+ id-CCTrCH-InformationItem-RL-RestoreInd,
+ id-CellCapabilityContainer-FDD,
+ id-CellCapabilityContainerExtension-FDD,
+ id-CellCapabilityContainer-TDD,
+ id-CellCapabilityContainer-TDD-LCR,
+ id-CellPortionID,
+ id-ChipOffset,
+ id-ClosedLoopMode1-SupportIndicator,
+ id-CNOriginatedPage-PagingRqst,
+ id-CommonMeasurementAccuracy,
+ id-CommonMeasurementObjectType-CM-Rprt,
+ id-CommonMeasurementObjectType-CM-Rqst,
+ id-CommonMeasurementObjectType-CM-Rsp,
+ id-CommonMeasurementType,
+ id-CommonTransportChannelResourcesInitialisationNotRequired,
+ id-Common-EDCH-MAC-d-Flow-Specific-InformationFDD,
+ id-Common-EDCH-Support-Indicator,
+ id-CongestionCause,
+ id-Continuous-Packet-Connectivity-DTX-DRX-Information,
+ id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information,
+ id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response,
+ id-CPC-Information,
+ id-CoverageIndicator,
+ id-CriticalityDiagnostics,
+ id-CellPortionLCRID,
+ id-D-RNTI,
+ id-D-RNTI-ReleaseIndication,
+ id-DCHs-to-Add-FDD,
+ id-DCHs-to-Add-TDD,
+ 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-Indicator-For-E-DCH-HSDPA-Operation,
+ id-FDD-DCHs-to-Modify,
+ id-TDD-DCHs-to-Modify,
+ id-DCH-InformationResponse,
+ id-DCH-Rate-InformationItem-RL-CongestInd,
+ id-DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationListIE-RL-ReconfReadyTDD,
+ id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD,
+ id-DL-CCTrCH-InformationListIE-PhyChReconfRqstTDD,
+ id-DL-CCTrCH-InformationListIE-RL-AdditionRspTDD,
+ id-DL-CCTrCH-InformationListIE-RL-SetupRspTDD,
+ id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationList-RL-SetupRqstTDD,
+ id-FDD-DL-CodeInformation,
+ id-DL-DPCH-Information-RL-ReconfPrepFDD,
+ id-DL-DPCH-Information-RL-SetupRqstFDD,
+ id-DL-DPCH-Information-RL-ReconfRqstFDD,
+ id-DL-DPCH-InformationItem-PhyChReconfRqstTDD,
+ id-DL-DPCH-InformationItem-RL-AdditionRspTDD,
+ id-DL-DPCH-InformationItem-RL-SetupRspTDD,
+ id-DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD,
+ id-DL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD,
+ id-DL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD,
+ id-DL-DPCH-TimingAdjustment,
+ id-DL-DPCH-Power-Information-RL-ReconfPrepFDD,
+ id-DL-Physical-Channel-Information-RL-SetupRqstTDD,
+ id-DL-PowerBalancing-Information,
+ id-DL-PowerBalancing-ActivationIndicator,
+ id-DL-PowerBalancing-UpdatedIndicator,
+ id-DL-ReferencePowerInformation,
+ id-DLReferencePower,
+ id-DLReferencePowerList-DL-PC-Rqst,
+ id-DL-ReferencePowerInformation-DL-PC-Rqst,
+ id-DRXCycleLengthCoefficient,
+ id-DedicatedMeasurementObjectType-DM-Fail,
+ id-DedicatedMeasurementObjectType-DM-Fail-Ind,
+ 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-DPC-Mode,
+ id-DPC-Mode-Change-SupportIndicator,
+ id-DSCHs-to-Add-TDD,
+ id-DSCH-DeleteList-RL-ReconfPrepTDD,
+ id-DSCH-InformationListIE-RL-AdditionRspTDD,
+ id-DSCH-InformationListIEs-RL-SetupRspTDD,
+ id-DSCH-TDD-Information,
+ id-DSCH-ModifyList-RL-ReconfPrepTDD,
+ id-DSCH-RNTI,
+ id-DSCHToBeAddedOrModifiedList-RL-ReconfReadyTDD,
+ id-Dual-Band-Secondary-Serving-Cell-List,
+ id-EDPCH-Information,
+ id-EDCH-RL-Indication,
+ id-EDCH-FDD-Information,
+ id-Serving-EDCHRL-Id,
+ id-EDCH-FDD-DL-ControlChannelInformation,
+ id-EDCH-FDD-InformationResponse,
+ id-E-DCH-FDD-Update-Information,
+ id-EDCH-MACdFlows-To-Add,
+ id-EDCH-FDD-Information-To-Modify,
+ id-EDCH-MACdFlows-To-Delete,
+ id-EDPCH-Information-RLReconfRequest-FDD,
+ id-EDPCH-Information-RLAdditionReq-FDD,
+ id-EDCH-MacdFlowSpecificInformationList-RL-PreemptRequiredInd,
+ id-EDCH-MacdFlowSpecificInformationItem-RL-PreemptRequiredInd,
+ id-EDCH-MacdFlowSpecificInformationList-RL-CongestInd,
+ id-EDCH-MacdFlowSpecificInformationItem-RL-CongestInd,
+ id-Enhanced-FACH-Support-Indicator,
+ id-Enhanced-FACH-Information-ResponseFDD,
+ id-Enhanced-PCH-Capability,
+ id-ExtendedPropagationDelay,
+ id-Extended-SRNC-ID,
+ id-Extended-RNC-ID,
+ id-Serving-cell-change-CFN,
+ id-E-DCH-Serving-cell-change-informationResponse,
+ id-E-RNTI-For-FACH,
+ id-H-RNTI-For-FACH,
+ id-RNTI-Allocation-Indicator,
+ id-Enhanced-PrimaryCPICH-EcNo,
+ id-E-RNTI,
+ id-F-DPCH-SlotFormat,
+ id-F-DPCH-SlotFormatSupportRequest,
+ id-FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD,
+ id-FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD,
+ id-Fast-Reconfiguration-Mode,
+ id-Fast-Reconfiguration-Permission,
+ id-FrameOffset,
+ id-F-DPCH-Information-RL-ReconfPrepFDD,
+ id-F-DPCH-Information-RL-SetupRqstFDD,
+ id-GA-Cell,
+ id-GA-CellAdditionalShapes,
+ id-GSM-Cell-InfEx-Rqst,
+ id-HCS-Prio,
+ id-HSDSCH-Configured-Indicator,
+ id-HSDSCH-FDD-Information,
+ id-HSDSCH-FDD-Information-Response,
+ id-HSDSCH-FDD-Update-Information,
+ id-HSDSCH-TDD-Update-Information,
+ id-HSDSCH-Information-to-Modify,
+ id-HSDSCH-Information-to-Modify-Unsynchronised,
+ id-HSDSCH-MACdFlows-to-Add,
+ id-HSDSCH-MACdFlows-to-Delete,
+ id-HSDSCHMacdFlowSpecificInformationList-RL-PreemptRequiredInd,
+ id-HSDSCHMacdFlowSpecificInformationItem-RL-PreemptRequiredInd,
+ id-HSDSCH-Physical-Layer-Category,
+ id-HSDSCH-RNTI,
+ id-HS-DSCH-serving-cell-change-information,
+ id-HS-DSCH-serving-cell-change-informationResponse,
+ id-HSDSCH-TDD-Information,
+ id-HSDSCH-TDD-Information-Response,
+ id-HSPDSCH-RL-ID,
+ id-HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD,
+ id-HSPDSCH-Timeslot-InformationListLCR-PhyChReconfRqstTDD,
+ id-HSSICH-Info-DM-Rprt,
+ id-HSSICH-Info-DM-Rqst,
+ id-HSSICH-Info-DM,
+ id-IMSI,
+ id-InformationExchangeID,
+ id-InformationExchangeObjectType-InfEx-Rprt,
+ id-InformationExchangeObjectType-InfEx-Rqst,
+ id-InformationExchangeObjectType-InfEx-Rsp,
+ id-InformationReportCharacteristics,
+ id-InformationType,
+ id-Initial-DL-DPCH-TimingAdjustment,
+ id-Initial-DL-DPCH-TimingAdjustment-Allowed,
+ id-InnerLoopDLPCStatus,
+ id-InterfacesToTraceItem,
+ id-Inter-Frequency-Cell-List,
+ id-L3-Information,
+ id-AdjustmentPeriod,
+ id-ListOfInterfacesToTrace,
+ id-MaxAdjustmentStep,
+ id-Max-UE-DTX-Cycle,
+ id-MBMS-Bearer-Service-List,
+ id-MBMS-Bearer-Service-List-InfEx-Rsp,
+ id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rqst,
+ id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rsp,
+ id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rprt,
+ id-MBMS-Cell-InfEx-Rqst,
+ id-MBMS-Cell-InfEx-Rsp,
+ id-MBMS-Cell-InfEx-Rprt,
+ id-MBSFN-Cluster-Identity,
+ id-MBSFN-Scheduling-Transmission-Time-Interval-Info-List,
+ id-MCCH-Configuration-Info,
+ id-MCCH-Message-List,
+ id-MeasurementFilterCoefficient,
+ id-MeasurementID,
+ id-MeasurementRecoveryBehavior,
+ id-MeasurementRecoveryReportingIndicator,
+ id-MeasurementRecoverySupportIndicator,
+ id-Multiple-PLMN-List,
+ id-Multiple-RL-InformationResponse-RL-ReconfReadyTDD,
+ id-NACC-Related-Data,
+ id-Neighbouring-E-UTRA-CellInformation,
+ id-Old-URA-ID,
+ id-PagingArea-PagingRqst,
+ id-PartialReportingIndicator,
+ id-PDSCH-RL-ID,
+ id-Permanent-NAS-UE-Identity,
+ id-Phase-Reference-Update-Indicator,
+ id-FACH-FlowControlInformation,
+ id-PLCCH-Information-PhyChReconfRqstTDD,
+ id-PowerAdjustmentType,
+ id-PrimCCPCH-RSCP-DL-PC-RqstTDD,
+ id-Primary-CPICH-Usage-For-Channel-Estimation,
+ id-PropagationDelay,
+ id-ProvidedInformation,
+ id-RANAP-EnhancedRelocationInformationRequest,
+ id-RANAP-EnhancedRelocationInformationResponse,
+ id-RANAP-RelocationInformation,
+ id-ResetIndicator,
+ id-Released-CN-Domain,
+ id-EDCH-RLSet-Id,
+ id-RL-Information-PhyChReconfRqstFDD,
+ id-RL-Information-PhyChReconfRqstTDD,
+ id-RL-Information-RL-AdditionRqstFDD,
+ id-RL-Information-RL-AdditionRqstTDD,
+ id-RL-Information-RL-DeletionRqst,
+ id-RL-Information-RL-FailureInd,
+ id-RL-Information-RL-ReconfPrepFDD,
+ id-RL-Information-RL-ReconfPrepTDD,
+ id-RL-Information-RL-RestoreInd,
+ id-RL-Information-RL-SetupRqstFDD,
+ id-RL-Information-RL-SetupRqstTDD,
+ id-RL-InformationItem-RL-CongestInd,
+ id-RL-InformationItem-DM-Rprt,
+ id-RL-InformationItem-DM-Rqst,
+ id-RL-InformationItem-DM-Rsp,
+ id-RL-InformationItem-RL-PreemptRequiredInd,
+ id-RL-InformationItem-RL-SetupRqstFDD,
+ id-RL-InformationList-RL-CongestInd,
+ id-RL-InformationList-RL-AdditionRqstFDD,
+ id-RL-InformationList-RL-DeletionRqst,
+ id-RL-InformationList-RL-PreemptRequiredInd,
+ id-RL-InformationList-RL-ReconfPrepFDD,
+ id-RL-InformationResponse-RL-AdditionRspTDD,
+ id-RL-InformationResponse-RL-ReconfReadyTDD,
+ id-RL-InformationResponse-RL-ReconfRspTDD,
+ id-RL-InformationResponse-RL-SetupRspTDD,
+ id-RL-InformationResponseItem-RL-AdditionRspFDD,
+ id-RL-InformationResponseItem-RL-ReconfReadyFDD,
+ id-RL-InformationResponseItem-RL-ReconfRspFDD,
+ id-RL-InformationResponseItem-RL-SetupRspFDD,
+ id-RL-InformationResponseList-RL-AdditionRspFDD,
+ id-RL-InformationResponseList-RL-ReconfReadyFDD,
+ id-RL-InformationResponseList-RL-ReconfRspFDD,
+ id-RL-InformationResponseList-RL-SetupRspFDD,
+ id-RL-ParameterUpdateIndicationFDD-RL-Information-Item,
+ id-RL-ParameterUpdateIndicationFDD-RL-InformationList,
+ id-RL-ReconfigurationFailure-RL-ReconfFail,
+ id-RL-ReconfigurationRequestFDD-RL-InformationList,
+ id-RL-ReconfigurationRequestFDD-RL-Information-IEs,
+ id-RL-ReconfigurationRequestTDD-RL-Information,
+ id-RL-ReconfigurationResponseTDD-RL-Information,
+ id-RL-Specific-DCH-Info,
+ id-RL-Specific-EDCH-Information,
+ id-RL-Set-InformationItem-DM-Rprt,
+ id-RL-Set-InformationItem-DM-Rqst,
+ id-RL-Set-InformationItem-DM-Rsp,
+ id-RL-Set-Information-RL-FailureInd,
+ id-RL-Set-Information-RL-RestoreInd,
+ id-RL-Set-Successful-InformationItem-DM-Fail,
+ id-RL-Set-Unsuccessful-InformationItem-DM-Fail,
+ id-RL-Set-Unsuccessful-InformationItem-DM-Fail-Ind,
+ id-RL-Successful-InformationItem-DM-Fail,
+ id-RL-Unsuccessful-InformationItem-DM-Fail,
+ id-RL-Unsuccessful-InformationItem-DM-Fail-Ind,
+ id-ReportCharacteristics,
+ id-Reporting-Object-RL-FailureInd,
+ id-Reporing-Object-RL-RestoreInd,
+ id-RNC-ID,
+ id-RxTimingDeviationForTA,
+ id-S-RNTI,
+ id-SAI,
+ id-Secondary-CPICH-Information,
+ id-Secondary-CPICH-Information-Change,
+ id-Secondary-Serving-Cell-List,
+ id-Dual-Band-Secondary-Serving-Cell-List,
+ id-SixtyfourQAM-DL-SupportIndicator,
+ id-SFN,
+ id-SFNReportingIndicator,
+ id-SNA-Information,
+ id-SRNC-ID,
+ id-STTD-SupportIndicator,
+ id-SuccessfulRL-InformationResponse-RL-AdditionFailureFDD,
+ id-SuccessfulRL-InformationResponse-RL-SetupFailureFDD,
+ id-TDD-maxNrDLPhysicalchannels,
+ id-TDD-Support-8PSK,
+ id-TDD-Support-PLCCH,
+ id-timeSlot-ISCP,
+ id-TimeSlot-RL-SetupRspTDD,
+ id-TnlQos,
+ id-TraceDepth,
+ id-TraceRecordingSessionReference,
+ id-TraceReference,
+ id-TransportBearerID,
+ id-TransportBearerRequestIndicator,
+ id-TransportLayerAddress,
+ id-UC-ID,
+ id-ContextInfoItem-Reset,
+ id-ContextGroupInfoItem-Reset,
+ id-Transmission-Gap-Pattern-Sequence-Information,
+ id-UE-AggregateMaximumBitRate,
+ id-UEIdentity,
+ id-UEMeasurementType,
+ id-UEMeasurementTimeslotInfoHCR,
+ id-UEMeasurementTimeslotInfoLCR,
+ id-UEMeasurementReportCharacteristics,
+ id-UEMeasurementParameterModAllow,
+ id-UEMeasurementValueInformation,
+ id-UE-State,
+ id-UE-with-enhanced-HS-SCCH-support-indicator,
+ id-UL-CCTrCH-AddInformation-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationList-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationListIE-PhyChReconfRqstTDD,
+ id-UL-CCTrCH-InformationListIE-RL-AdditionRspTDD,
+ id-UL-CCTrCH-InformationListIE-RL-ReconfReadyTDD,
+ id-UL-CCTrCH-InformationListIE-RL-SetupRspTDD,
+ id-UL-DPCH-Information-RL-ReconfPrepFDD,
+ id-UL-DPCH-Information-RL-ReconfRqstFDD,
+ id-UL-DPCH-Information-RL-SetupRqstFDD,
+ id-UL-DPDCHIndicatorEDCH,
+ id-UL-DPCH-InformationItem-PhyChReconfRqstTDD,
+ id-UL-DPCH-InformationItem-RL-AdditionRspTDD,
+ id-UL-DPCH-InformationItem-RL-SetupRspTDD,
+ id-UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD,
+ id-UL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD,
+ id-UL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD,
+ id-UL-Physical-Channel-Information-RL-SetupRqstTDD,
+ id-UL-SIRTarget,
+ id-URA-ID,
+ id-URA-Information,
+ id-UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD,
+ id-UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD,
+ id-UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD,
+ id-UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD,
+ id-USCHs-to-Add,
+ id-USCH-DeleteList-RL-ReconfPrepTDD,
+ id-USCH-InformationListIE-RL-AdditionRspTDD,
+ id-USCH-InformationListIEs-RL-SetupRspTDD,
+ id-USCH-Information,
+ id-USCH-ModifyList-RL-ReconfPrepTDD,
+ id-USCHToBeAddedOrModifiedList-RL-ReconfReadyTDD,
+ id-DL-Timeslot-ISCP-LCR-Information-RL-SetupRqstTDD,
+ id-RL-LCR-InformationResponse-RL-SetupRspTDD,
+ id-UL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD,
+ id-UL-DPCH-LCR-InformationItem-RL-SetupRspTDD,
+ id-DL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD,
+ id-DL-DPCH-LCR-InformationItem-RL-SetupRspTDD,
+ id-DSCH-LCR-InformationListIEs-RL-SetupRspTDD,
+ id-USCH-LCR-InformationListIEs-RL-SetupRspTDD,
+ id-DL-Timeslot-ISCP-LCR-Information-RL-AdditionRqstTDD,
+ id-RL-LCR-InformationResponse-RL-AdditionRspTDD,
+ id-UL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD,
+ id-UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD,
+ id-DL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD,
+ id-DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD,
+ id-DSCH-LCR-InformationListIEs-RL-AdditionRspTDD,
+ id-USCH-LCR-InformationListIEs-RL-AdditionRspTDD,
+ id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfReadyTDD,
+ id-UL-Timeslot-LCR-InformationModifyList-RL-ReconfReadyTDD,
+ id-DL-DPCH-LCR-InformationAddListIE-RL-ReconfReadyTDD,
+ id-DL-Timeslot-LCR-InformationModifyList-RL-ReconfReadyTDD,
+ id-UL-Timeslot-LCR-InformationList-PhyChReconfRqstTDD,
+ id-DL-Timeslot-LCR-InformationList-PhyChReconfRqstTDD,
+ id-timeSlot-ISCP-LCR-List-DL-PC-Rqst-TDD,
+ id-TSTD-Support-Indicator-RL-SetupRqstTDD,
+ id-PrimaryCCPCH-RSCP-RL-ReconfPrepTDD,
+ id-DL-TimeSlot-ISCP-Info-RL-ReconfPrepTDD,
+ id-DL-Timeslot-ISCP-LCR-Information-RL-ReconfPrepTDD,
+ id-neighbouringTDDCellMeasurementInformationLCR,
+ id-UL-SIR-Target-CCTrCH-InformationItem-RL-SetupRspTDD,
+ id-UL-SIR-Target-CCTrCH-LCR-InformationItem-RL-SetupRspTDD,
+ id-TrafficClass,
+ id-UL-Synchronisation-Parameters-LCR,
+ id-TDD-DL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD,
+ id-TDD-UL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD,
+ id-MAChs-ResetIndicator,
+ id-UL-TimingAdvanceCtrl-LCR,
+ id-CCTrCH-Maximum-DL-Power-RL-SetupRspTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-SetupRspTDD,
+ id-CCTrCH-Maximum-DL-Power-RL-AdditionRspTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-AdditionRspTDD,
+ id-CCTrCH-Maximum-DL-Power-RL-ReconfReadyTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-ReconfReadyTDD,
+ id-Maximum-DL-Power-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD,
+ id-Minimum-DL-Power-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD,
+ id-DL-CCTrCH-InformationList-RL-ReconfRspTDD,
+ id-DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD,
+ id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD,
+ id-UL-CCTrCH-InformationItem-RL-AdditionRqstTDD,
+ id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD,
+ id-DL-CCTrCH-InformationItem-RL-AdditionRqstTDD,
+ id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD,
+ id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD,
+ id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD,
+ id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD,
+ id-PrimaryCCPCH-RSCP-Delta,
+ id-multiple-DedicatedMeasurementValueList-TDD-DM-Rsp,
+ id-multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp,
+ id-SynchronisationIndicator,
+ id-secondary-LCR-CCPCH-Info-TDD,
+ id-multiple-HSSICHMeasurementValueList-TDD-DM-Rsp,
+ id-CellCapabilityContainer-TDD768,
+ id-neighbouringTDDCellMeasurementInformation768,
+ id-RL-InformationResponse-RL-SetupRspTDD768,
+ id-UL-CCTrCH-InformationListIE-RL-SetupRspTDD768,
+ id-DL-CCTrCH-InformationListIE-RL-SetupRspTDD768,
+ id-UL-DPCH-InformationItem-RL-SetupRspTDD768,
+ id-DL-DPCH-InformationItem-RL-SetupRspTDD768,
+ id-TDD768-minimumSpreadingFactor-UL,
+ id-TDD768-minimumSpreadingFactor-DL,
+ id-TDD768-maxNrDLPhysicalchannels,
+ id-TDD768-maxNrDLPhysicalchannelsTS,
+ id-RL-InformationResponse-RL-AdditionRspTDD768,
+ id-UL-CCTrCH-InformationListIE-RL-AdditionRspTDD768,
+ id-DL-CCTrCH-InformationListIE-RL-AdditionRspTDD768,
+ id-UL-DPCH-InformationItem-RL-AdditionRspTDD768,
+ id-DL-DPCH-InformationItem-RL-AdditionRspTDD768,
+ id-UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD768,
+ id-UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768,
+ id-DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD768,
+ id-DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768,
+ id-secondary-CCPCH-Info-RL-ReconfReadyTDD768,
+ id-HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD768,
+ id-UL-Timeslot-InformationList-PhyChReconfRqstTDD768,
+ id-DL-Timeslot-InformationList-PhyChReconfRqstTDD768,
+ id-multiple-DedicatedMeasurementValueList-TDD768-DM-Rsp,
+ id-UEMeasurementTimeslotInfo768,
+ id-DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD,
+ id-DPCH-ID768-DM-Rsp,
+ id-DPCH-ID768-DM-Rqst,
+ id-DPCH-ID768-DM-Rprt,
+ id-RxTimingDeviationForTAext,
+ id-RxTimingDeviationForTA768,
+ id-E-DCH-Information,
+ id-E-DCH-Information-Reconfig,
+ id-E-DCH-Serving-RL-ID,
+ id-E-DCH-Information-Response,
+ id-E-DCH-768-Information,
+ id-E-DCH-768-Information-Reconfig,
+ id-E-DCH-768-Information-Response,
+ id-E-DCH-LCR-Information,
+ id-E-DCH-LCR-Information-Reconfig,
+ id-E-DCH-LCR-Information-Response,
+ id-PowerControlGAP,
+ id-IdleIntervalInformation,
+ id-NeedforIdleInterval,
+ id-IdleIntervalConfigurationIndicator,
+ id-UARFCNforNt,
+ id-HS-SICH-ID-Extension,
+ id-HSSICH-Info-DM-Rqst-Extension,
+ id-UPPCHPositionLCR,
+ id-Common-EDCH-MAC-d-Flow-Specific-InformationLCR,
+ id-Enhanced-FACH-Information-ResponseLCR,
+ id-HSDSCH-PreconfigurationSetup,
+ id-HSDSCH-PreconfigurationInfo,
+ id-NoOfTargetCellHS-SCCH-Order,
+ id-EnhancedHSServingCC-Abort,
+ id-GANSS-Time-ID,
+ id-Additional-HS-Cell-Information-RL-Setup,
+ id-Additional-HS-Cell-Information-Response,
+ id-Additional-HS-Cell-Information-RL-Addition,
+ id-Additional-HS-Cell-Change-Information-Response,
+ id-Additional-HS-Cell-Information-RL-Reconf-Prep,
+ id-Additional-HS-Cell-Information-RL-Reconf-Req,
+ id-Additional-HS-Cell-RL-Reconf-Response,
+ id-Additional-HS-Cell-Information-RL-Param-Upd,
+ id-MinimumReducedE-DPDCH-GainFactor,
+ id-ContinuousPacketConnectivity-DRX-InformationLCR,
+ id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR,
+ id-CPC-InformationLCR,
+ id-E-DCH-Semi-PersistentScheduling-Information-LCR,
+ id-HS-DSCH-Semi-PersistentScheduling-Information-LCR,
+ id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR,
+ id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR,
+ id-ActivationInformation,
+ id-Additional-EDCH-Cell-Information-RL-Setup-Req,
+ id-Additional-EDCH-Cell-Information-Response,
+ id-Additional-EDCH-Cell-Information-RL-Add-Req,
+ id-Additional-EDCH-Cell-Information-Response-RLAdd,
+ id-Additional-EDCH-Cell-Information-RL-Reconf-Prep,
+ id-Additional-EDCH-Cell-Information-RL-Reconf-Req,
+ id-Additional-EDCH-Cell-Information-RL-Param-Upd,
+ id-Additional-EDCH-Cell-Information-ResponseRLReconf,
+ id-DCH-MeasurementOccasion-Information,
+ id-DCH-MeasurementType-Indicator,
+ id-Non-Serving-RL-Preconfig-Info,
+ id-Non-Serving-RL-Preconfig-Setup,
+ id-Non-Serving-RL-Preconfig-Removal
+
+
+
+
+FROM RNSAP-Constants;
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupRequestFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-SRNC-ID CRITICALITY reject TYPE RNC-ID PRESENCE mandatory} |
+ { ID id-S-RNTI CRITICALITY reject TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-D-RNTI CRITICALITY reject TYPE D-RNTI PRESENCE optional } |
+ { ID id-AllowedQueuingTime CRITICALITY reject TYPE AllowedQueuingTime PRESENCE optional } |
+ { 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 optional } |
+ { ID id-DCH-FDD-Information CRITICALITY reject TYPE DCH-FDD-Information PRESENCE mandatory } |
+ { ID id-RL-Information-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 },
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ ul-ScramblingCode UL-ScramblingCode,
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ maxNrOfUL-DPCHs MaxNrOfUL-DPCHs OPTIONAL
+ -- This IE shall be present if minUL-ChannelisationCodeLength equals to 4 -- ,
+ ul-PunctureLimit PunctureLimit,
+ ul-TFCS TFCS,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat,
+ ul-SIRTarget UL-SIR OPTIONAL,
+ diversityMode DiversityMode,
+ not-Used-sSDT-CellIdLength NULL OPTIONAL,
+ not-Used-s-FieldLength NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DPC-Mode CRITICALITY reject EXTENSION DPC-Mode PRESENCE optional }|
+ { ID id-UL-DPDCHIndicatorEDCH CRITICALITY reject EXTENSION UL-DPDCHIndicatorEDCH PRESENCE optional },
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ tFCS TFCS,
+ dl-DPCH-SlotFormat DL-DPCH-SlotFormat,
+ nrOfDLchannelisationcodes NrOfDLchannelisationcodes,
+ tFCI-SignallingMode TFCI-SignallingMode,
+ tFCI-Presence TFCI-Presence OPTIONAL
+ -- This IE shall be present if DL DPCH Slot Format IE is equal to any of the values from 12 to 16 --,
+ multiplexingPosition MultiplexingPosition,
+ powerOffsetInformation PowerOffsetInformation-RL-SetupRqstFDD,
+ fdd-dl-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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationItemIEs-RL-SetupRqstFDD} }
+
+RL-InformationItemIEs-RL-SetupRqstFDD RNSAP-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-InformationList-RL-SetupRqstFDD --,
+ dl-InitialTX-Power DL-Power OPTIONAL,
+ primaryCPICH-EcNo PrimaryCPICH-EcNo OPTIONAL,
+ not-Used-sSDT-CellID NULL OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ -- This IE shall be present unless Diversity Mode IE in UL DPCH Information group is "none"
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationItem-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-SetupRqstFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Enhanced-PrimaryCPICH-EcNo CRITICALITY ignore EXTENSION Enhanced-PrimaryCPICH-EcNo 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-CellPortionID CRITICALITY ignore EXTENSION CellPortionID PRESENCE optional }|
+ { ID id-RL-Specific-EDCH-Information CRITICALITY reject EXTENSION RL-Specific-EDCH-Information PRESENCE optional }|
+ { ID id-EDCH-RL-Indication CRITICALITY reject EXTENSION EDCH-RL-Indication PRESENCE optional }|
+ { ID id-ExtendedPropagationDelay CRITICALITY ignore EXTENSION ExtendedPropagationDelay PRESENCE optional }|
+ { ID id-SynchronisationIndicator CRITICALITY reject EXTENSION SynchronisationIndicator PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationSetup CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationSetup PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Setup CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Setup PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupRequestFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Permanent-NAS-UE-Identity CRITICALITY ignore EXTENSION Permanent-NAS-UE-Identity 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-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE conditional }|
+ -- This IE shall be present if HS-DSCH Information IE is present.
+ { ID id-MBMS-Bearer-Service-List CRITICALITY notify EXTENSION MBMS-Bearer-Service-List PRESENCE optional }|
+ { ID id-EDPCH-Information CRITICALITY reject EXTENSION EDPCH-Information-FDD PRESENCE optional }|
+ { ID id-EDCH-FDD-Information CRITICALITY reject EXTENSION EDCH-FDD-Information PRESENCE conditional }|
+ -- This IE is present if E-DPCH Information IE is present.
+ { ID id-Serving-EDCHRL-Id CRITICALITY reject EXTENSION EDCH-Serving-RL PRESENCE optional }|
+ -- This IE is present if E-DCHInformation IE is present.
+ { ID id-F-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject EXTENSION F-DPCH-Information-RL-SetupRqstFDD PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment-Allowed CRITICALITY ignore EXTENSION Initial-DL-DPCH-TimingAdjustment-Allowed PRESENCE optional }|
+ { ID id-DCH-Indicator-For-E-DCH-HSDPA-Operation CRITICALITY reject EXTENSION DCH-Indicator-For-E-DCH-HSDPA-Operation PRESENCE optional }|
+ { ID id-Serving-cell-change-CFN CRITICALITY reject EXTENSION CFN PRESENCE optional }|
+ { ID id-Continuous-Packet-Connectivity-DTX-DRX-Information CRITICALITY reject EXTENSION Continuous-Packet-Connectivity-DTX-DRX-Information PRESENCE optional }|
+ { ID id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information CRITICALITY reject EXTENSION Continuous-Packet-Connectivity-HS-SCCH-Less-Information PRESENCE optional }|
+ { ID id-Extended-SRNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-RL-Setup CRITICALITY reject EXTENSION Additional-HS-Cell-Information-RL-Setup-List PRESENCE optional }|
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Setup-Req CRITICALITY reject EXTENSION Additional-EDCH-Setup-Info PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Setup-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Setup-ItemIEs
+
+
+
+Additional-HS-Cell-Information-RL-Setup-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ c-ID C-ID,
+ hS-DSCH-FDD-Secondary-Serving-Information HS-DSCH-FDD-Secondary-Serving-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Setup-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Setup-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ powerOffsetInformation PowerOffsetInformation-F-DPCH-RL-SetupRqstFDD,
+ fdd-dl-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { F-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F-DPCH-Information-RL-SetupRqstFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-F-DPCH-SlotFormatSupportRequest CRITICALITY reject EXTENSION F-DPCH-SlotFormatSupportRequest PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional},
+ ...
+}
+
+PowerOffsetInformation-F-DPCH-RL-SetupRqstFDD ::= SEQUENCE {
+ po2-ForTPC-Bits PowerOffset,
+ --This IE shall be ignored by DRNS
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-F-DPCH-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-F-DPCH-RL-SetupRqstFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupRequestTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-SRNC-ID CRITICALITY reject TYPE RNC-ID PRESENCE mandatory } |
+ { ID id-S-RNTI CRITICALITY reject TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-D-RNTI CRITICALITY reject TYPE D-RNTI PRESENCE optional } |
+ { ID id-UL-Physical-Channel-Information-RL-SetupRqstTDD CRITICALITY reject TYPE UL-Physical-Channel-Information-RL-SetupRqstTDD PRESENCE mandatory } |
+ { ID id-DL-Physical-Channel-Information-RL-SetupRqstTDD CRITICALITY reject TYPE DL-Physical-Channel-Information-RL-SetupRqstTDD PRESENCE mandatory } |
+ { ID id-AllowedQueuingTime CRITICALITY reject TYPE AllowedQueuingTime PRESENCE optional } |
+ { 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 },
+ ...
+}
+
+UL-Physical-Channel-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ maxNrTimeslots-UL MaxNrTimeslots,
+ minimumSpreadingFactor-UL MinimumSpreadingFactor,
+ maxNrULPhysicalchannels MaxNrULPhysicalchannels,
+ iE-Extensions ProtocolExtensionContainer { {UL-Physical-Channel-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Physical-Channel-InformationItem-RL-SetupRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TDD-Support-8PSK CRITICALITY ignore EXTENSION Support-8PSK PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-TDD768-minimumSpreadingFactor-UL CRITICALITY ignore EXTENSION MinimumSpreadingFactor768 PRESENCE optional },
+ ...
+}
+
+DL-Physical-Channel-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ maxNrTimeslots-DL MaxNrTimeslots,
+ minimumSpreadingFactor-DL MinimumSpreadingFactor,
+ maxNrDLPhysicalchannels MaxNrDLPhysicalchannels,
+ iE-Extensions ProtocolExtensionContainer { {DL-Physical-Channel-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Physical-Channel-InformationItem-RL-SetupRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TDD-maxNrDLPhysicalchannels CRITICALITY ignore EXTENSION MaxNrDLPhysicalchannelsTS PRESENCE optional }|
+ { ID id-TDD-Support-8PSK CRITICALITY ignore EXTENSION Support-8PSK PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-TDD-Support-PLCCH CRITICALITY ignore EXTENSION Support-PLCCH PRESENCE optional }|
+ { ID id-TDD768-minimumSpreadingFactor-DL CRITICALITY ignore EXTENSION MinimumSpreadingFactor768 PRESENCE optional }|
+ { ID id-TDD768-maxNrDLPhysicalchannels CRITICALITY ignore EXTENSION MaxNrDLPhysicalchannels768 PRESENCE optional }|
+ { ID id-TDD768-maxNrDLPhysicalchannelsTS CRITICALITY ignore EXTENSION MaxNrDLPhysicalchannelsTS768 PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {UL-CCTrCH-InformationItemIEs-RL-SetupRqstTDD} }
+
+UL-CCTrCH-InformationItemIEs-RL-SetupRqstTDD RNSAP-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,
+ ul-TFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ ul-PunctureLimit PunctureLimit,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { 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 or 7.68Mcps TDD
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {DL-CCTrCH-InformationItemIEs-RL-SetupRqstTDD} }
+
+DL-CCTrCH-InformationItemIEs-RL-SetupRqstTDD RNSAP-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,
+ dl-TFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ dl-PunctureLimit PunctureLimit,
+ tdd-TPC-DownlinkStepSize TDD-TPC-DownlinkStepSize,
+ cCTrCH-TPCList CCTrCH-TPCList-RL-SetupRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ specialBurstScheduling SpecialBurstScheduling,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
+ dL-TimeSlot-ISCP DL-TimeSlot-ISCP-Info OPTIONAL,
+ --for 3.84Mcps TDD and 7.68Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-SetupRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-Timeslot-ISCP-LCR-Information-RL-SetupRqstTDD CRITICALITY reject EXTENSION DL-TimeSlot-ISCP-LCR-Information PRESENCE optional }|
+ { ID id-TSTD-Support-Indicator-RL-SetupRqstTDD CRITICALITY ignore EXTENSION TSTD-Support-Indicator PRESENCE optional }|
+ --for 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 reject EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD or 7.68Mcps TDD
+ { ID id-PrimaryCCPCH-RSCP-Delta CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP-Delta PRESENCE optional }|
+ { ID id-IdleIntervalConfigurationIndicator CRITICALITY ignore EXTENSION NULL PRESENCE optional }|
+ { ID id-CellPortionLCRID CRITICALITY ignore EXTENSION CellPortionLCRID PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupRequestTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Permanent-NAS-UE-Identity CRITICALITY ignore EXTENSION Permanent-NAS-UE-Identity PRESENCE optional }|
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE conditional }|
+ -- This IE shall be present if HS-DSCH Information IE is present.
+ { ID id-PDSCH-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+ { ID id-MBMS-Bearer-Service-List CRITICALITY notify EXTENSION MBMS-Bearer-Service-List PRESENCE optional}|
+ { ID id-E-DCH-Information CRITICALITY reject EXTENSION E-DCH-Information PRESENCE optional }|
+ { ID id-E-DCH-Serving-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-768-Information CRITICALITY reject EXTENSION E-DCH-768-Information PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information CRITICALITY reject EXTENSION E-DCH-LCR-Information PRESENCE optional }|
+ { ID id-Extended-SRNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-InformationLCR CRITICALITY reject EXTENSION ContinuousPacketConnectivity-DRX-InformationLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-LCR CRITICALITY reject EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-LCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-LCR CRITICALITY reject EXTENSION E-DCH-Semi-PersistentScheduling-Information-LCR PRESENCE optional }|
+ { ID id-RNTI-Allocation-Indicator CRITICALITY ignore EXTENSION RNTI-Allocation-Indicator PRESENCE optional }|
+ { ID id-DCH-MeasurementType-Indicator CRITICALITY reject EXTENSION DCH-MeasurementType-Indicator PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkSetupResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupResponseFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional } |
+ { ID id-CN-PS-DomainIdentifier CRITICALITY ignore TYPE CN-PS-DomainIdentifier PRESENCE optional } |
+ { ID id-CN-CS-DomainIdentifier CRITICALITY ignore TYPE CN-CS-DomainIdentifier PRESENCE optional } |
+ { ID id-RL-InformationResponseList-RL-SetupRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-SetupRspFDD PRESENCE mandatory } |
+ { ID id-UL-SIRTarget CRITICALITY ignore TYPE UL-SIR PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RL-InformationResponseList-RL-SetupRspFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationResponseItemIEs-RL-SetupRspFDD} }
+
+RL-InformationResponseItemIEs-RL-SetupRspFDD RNSAP-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,
+ uRA-Information URA-Information OPTIONAL,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ received-total-wide-band-power Received-total-wide-band-power,
+ not-Used-secondary-CCPCH-Info NULL OPTIONAL,
+ dl-CodeInformation FDD-DL-CodeInformation,
+ diversityIndication DiversityIndication-RL-SetupRspFDD,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ maxUL-SIR UL-SIR,
+ minUL-SIR UL-SIR,
+ closedlooptimingadjustmentmode Closedlooptimingadjustmentmode OPTIONAL,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ primaryScramblingCode PrimaryScramblingCode OPTIONAL,
+ uL-UARFCN UARFCN OPTIONAL,
+ dL-UARFCN UARFCN OPTIONAL,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ not-Used-dSCHInformationResponse NULL OPTIONAL,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ pC-Preamble PC-Preamble,
+ sRB-Delay SRB-Delay,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponseItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-SetupRspFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio 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 CRITICALITY ignore EXTENSION Secondary-CPICH-Information PRESENCE optional }|
+ { ID id-Active-MBMS-Bearer-ServiceFDD-PFL CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListFDD-PFL PRESENCE optional }|
+ { ID id-EDCH-RLSet-Id CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-EDCH-FDD-DL-ControlChannelInformation CRITICALITY ignore EXTENSION EDCH-FDD-DL-ControlChannelInformation PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment CRITICALITY ignore EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional }|
+ { ID id-FrameOffset CRITICALITY ignore EXTENSION FrameOffset PRESENCE optional }|
+ { ID id-ChipOffset CRITICALITY ignore EXTENSION ChipOffset PRESENCE optional }|
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Info CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Info 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 { { CombiningItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-SetupRspFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore EXTENSION DCH-InformationResponse PRESENCE optional }|
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional },
+ ...
+}
+
+NonCombiningOrFirstRL-RL-SetupRspFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningOrFirstRLItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningOrFirstRLItem-RL-SetupRspFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional},
+ ...
+}
+
+RadioLinkSetupResponseFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ { ID id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response CRITICALITY ignore EXTENSION Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response PRESENCE optional }|
+ { ID id-SixtyfourQAM-DL-SupportIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-DL-SupportIndicator PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-Response-List PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-List PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-Response-ItemIEs
+
+
+
+Additional-HS-Cell-Information-Response-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ hSDSCH-RNTI HSDSCH-RNTI,
+ hS-DSCH-FDD-Secondary-Serving-Information-Response HS-DSCH-FDD-Secondary-Serving-Information-Response,
+ sixtyfourQAM-DL-SupportIndicator SixtyfourQAM-DL-SupportIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-Response-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkSetupResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupResponseTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional } |
+ { ID id-CN-PS-DomainIdentifier CRITICALITY ignore TYPE CN-PS-DomainIdentifier PRESENCE optional } |
+ { ID id-CN-CS-DomainIdentifier CRITICALITY ignore TYPE CN-CS-DomainIdentifier PRESENCE optional } |
+ { ID id-RL-InformationResponse-RL-SetupRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-SetupRspTDD PRESENCE optional } |
+ --Mandatory for 3.84Mcps TDD only
+ { ID id-UL-SIRTarget CRITICALITY ignore TYPE UL-SIR PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RL-InformationResponse-RL-SetupRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uRA-Information URA-Information OPTIONAL,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ ul-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ maxUL-SIR UL-SIR,
+ minUL-SIR UL-SIR,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ uARFCNforNt UARFCN OPTIONAL,
+ cellParameterID CellParameterID OPTIONAL,
+ syncCase SyncCase OPTIONAL,
+ sCH-TimeSlot SCH-TimeSlot OPTIONAL,
+ -- This IE shall be present if Sync Case IE is equal to "Case2". --
+ sCTD-Indicator SCTD-Indicator OPTIONAL,
+ pCCPCH-Power PCCPCH-Power,
+ timingAdvanceApplied TimingAdvanceApplied,
+ alphaValue AlphaValue,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ synchronisationConfiguration SynchronisationConfiguration,
+ secondary-CCPCH-Info-TDD Secondary-CCPCH-Info-TDD OPTIONAL,
+ ul-CCTrCHInformation UL-CCTrCHInformationList-RL-SetupRspTDD OPTIONAL,
+ dl-CCTrCHInformation DL-CCTrCHInformationList-RL-SetupRspTDD OPTIONAL,
+ dCH-InformationResponse DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dsch-InformationResponse DSCH-InformationResponse-RL-SetupRspTDD OPTIONAL,
+ usch-InformationResponse USCH-InformationResponse-RL-SetupRspTDD OPTIONAL,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponse-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-TimeSlot-RL-SetupRspTDD CRITICALITY ignore EXTENSION TimeSlot PRESENCE conditional }|
+ -- This IE shall be present if Sync Case IE is Case1. --
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional },
+ ...
+}
+
+UL-CCTrCHInformationList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{UL-CCTrCHInformationListIEs-RL-SetupRspTDD}}
+
+UL-CCTrCHInformationListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationListIE-RL-SetupRspTDD CRITICALITY ignore TYPE UL-CCTrCHInformationListIE-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+UL-CCTrCHInformationListIE-RL-SetupRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCHInformationItem-RL-SetupRspTDD
+
+UL-CCTrCHInformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ ul-DPCH-Information UL-DPCH-InformationList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCHInformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCHInformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-UL-SIR-Target-CCTrCH-InformationItem-RL-SetupRspTDD CRITICALITY ignore EXTENSION UL-SIR PRESENCE optional},
+ ...
+}
+
+UL-DPCH-InformationList-RL-SetupRspTDD ::= ProtocolIE-Single-Container { {UL-DPCH-InformationListIEs-RL-SetupRspTDD} }
+
+UL-DPCH-InformationListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationItem-RL-SetupRspTDD CRITICALITY ignore TYPE UL-DPCH-InformationItem-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+
+UL-DPCH-InformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCHInformationList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{DL-CCTrCHInformationListIEs-RL-SetupRspTDD}}
+
+DL-CCTrCHInformationListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationListIE-RL-SetupRspTDD CRITICALITY ignore TYPE DL-CCTrCHInformationListIE-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+DL-CCTrCHInformationListIE-RL-SetupRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCHInformationItem-RL-SetupRspTDD
+
+DL-CCTrCHInformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-Information DL-DPCH-InformationList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCHInformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCHInformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CCTrCH-Maximum-DL-Power-RL-SetupRspTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }| -- this is a DCH type CCTrCH power
+ { ID id-CCTrCH-Minimum-DL-Power-RL-SetupRspTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }, -- this is a DCH type CCTrCH power
+ ...
+}
+
+DL-DPCH-InformationList-RL-SetupRspTDD ::= ProtocolIE-Single-Container { {DL-DPCH-InformationListIEs-RL-SetupRspTDD} }
+
+DL-DPCH-InformationListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationItem-RL-SetupRspTDD CRITICALITY ignore TYPE DL-DPCH-InformationItem-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{DCH-InformationResponseListIEs-RL-SetupRspTDD}}
+
+DCH-InformationResponseListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+DSCH-InformationResponse-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{DSCH-InformationList-RL-SetupRspTDD}}
+
+DSCH-InformationList-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationListIEs-RL-SetupRspTDD CRITICALITY ignore TYPE DSCH-InformationListIEs-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+DSCH-InformationListIEs-RL-SetupRspTDD ::= SEQUENCE (SIZE(0..maxNoOfDSCHs)) OF DSCHInformationItem-RL-SetupRspTDD
+
+DSCHInformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ dsch-ID DSCH-ID,
+ dSCH-FlowControlInformation DSCH-FlowControlInformation,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ transportFormatManagement TransportFormatManagement,
+ iE-Extensions ProtocolExtensionContainer { {DSCHInformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCHInformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-InformationResponse-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{USCH-InformationList-RL-SetupRspTDD}}
+
+USCH-InformationList-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationListIEs-RL-SetupRspTDD CRITICALITY ignore TYPE USCH-InformationListIEs-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+USCH-InformationListIEs-RL-SetupRspTDD ::= SEQUENCE (SIZE(0..maxNoOfUSCHs)) OF USCHInformationItem-RL-SetupRspTDD
+
+USCHInformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ usch-ID USCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ transportFormatManagement TransportFormatManagement,
+ iE-Extensions ProtocolExtensionContainer { {USCHInformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCHInformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkSetupResponseTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-LCR-InformationResponse-RL-SetupRspTDD CRITICALITY ignore EXTENSION RL-LCR-InformationResponse-RL-SetupRspTDD PRESENCE optional}|
+ --Mandatory for 1.28Mcps TDD only
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional }|
+ { ID id-DSCH-RNTI CRITICALITY ignore EXTENSION DSCH-RNTI PRESENCE optional }|
+ { ID id-Active-MBMS-Bearer-ServiceTDD-PFL CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListTDD-PFL PRESENCE optional }|
+ { ID id-RL-InformationResponse-RL-SetupRspTDD768 CRITICALITY ignore EXTENSION RL-InformationResponse-RL-SetupRspTDD768 PRESENCE optional }|
+ { ID id-E-DCH-Information-Response CRITICALITY ignore EXTENSION E-DCH-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-768-Information-Response CRITICALITY ignore EXTENSION E-DCH-768-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information-Response CRITICALITY ignore EXTENSION E-DCH-LCR-Information-Response PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION E-DCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional}|
+ { ID id-E-RNTI-For-FACH CRITICALITY ignore EXTENSION E-RNTI PRESENCE optional }|
+ { ID id-H-RNTI-For-FACH CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-DCH-MeasurementOccasion-Information CRITICALITY reject EXTENSION DCH-MeasurementOccasion-Information PRESENCE optional},
+ ...
+}
+
+RL-LCR-InformationResponse-RL-SetupRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uRA-Information URA-Information,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ ul-TimeSlot-ISCP-LCR-Info UL-TimeSlot-ISCP-LCR-Info,
+ maxUL-SIR UL-SIR,
+ minUL-SIR UL-SIR,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ uARFCNforNt UARFCN OPTIONAL,
+ cellParameterID CellParameterID OPTIONAL,
+ sCTD-Indicator SCTD-Indicator OPTIONAL,
+ pCCPCH-Power PCCPCH-Power,
+ alphaValue AlphaValue,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ synchronisationConfiguration SynchronisationConfiguration,
+ secondary-LCR-CCPCH-Info-TDD Secondary-LCR-CCPCH-Info-TDD OPTIONAL,
+ ul-LCR-CCTrCHInformation UL-LCR-CCTrCHInformationList-RL-SetupRspTDD OPTIONAL,
+ dl-LCR-CCTrCHInformation DL-LCR-CCTrCHInformationList-RL-SetupRspTDD OPTIONAL,
+ dCH-InformationResponse DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dsch-LCR-InformationResponse DSCH-LCR-InformationResponse-RL-SetupRspTDD OPTIONAL,
+ usch-LCR-InformationResponse USCH-LCR-InformationResponse-RL-SetupRspTDD OPTIONAL,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-LCR-InformationResponseList-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-LCR-InformationResponseList-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-UL-TimingAdvanceCtrl-LCR CRITICALITY ignore EXTENSION UL-TimingAdvanceCtrl-LCR PRESENCE optional }|
+ --Mandatory for 1.28Mcps TDD only
+ { ID id-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-SixtyfourQAM-DL-SupportIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-DL-SupportIndicator PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional }|
+ { ID id-IdleIntervalInformation CRITICALITY ignore EXTENSION IdleIntervalInformation PRESENCE optional },
+ ...
+}
+
+UL-LCR-CCTrCHInformationList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{UL-LCR-CCTrCHInformationListIEs-RL-SetupRspTDD}}
+
+UL-LCR-CCTrCHInformationListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD CRITICALITY ignore TYPE UL-LCR-CCTrCHInformationListIE-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+UL-LCR-CCTrCHInformationListIE-RL-SetupRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHsLCR)) OF UL-LCR-CCTrCHInformationItem-RL-SetupRspTDD
+
+UL-LCR-CCTrCHInformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ ul-DPCH-LCR-Information UL-DPCH-LCR-InformationList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-LCR-CCTrCHInformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-LCR-CCTrCHInformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-UL-SIR-Target-CCTrCH-LCR-InformationItem-RL-SetupRspTDD CRITICALITY ignore EXTENSION UL-SIR PRESENCE optional},
+ ...
+}
+
+UL-DPCH-LCR-InformationList-RL-SetupRspTDD ::= ProtocolIE-Single-Container { {UL-DPCH-LCR-InformationListIEs-RL-SetupRspTDD} }
+
+UL-DPCH-LCR-InformationListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-LCR-InformationItem-RL-SetupRspTDD CRITICALITY ignore TYPE UL-DPCH-LCR-InformationItem-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+UL-DPCH-LCR-InformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Information UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+DL-LCR-CCTrCHInformationList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{DL-LCR-CCTrCHInformationListIEs-RL-SetupRspTDD}}
+
+DL-LCR-CCTrCHInformationListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD CRITICALITY ignore TYPE DL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+DL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHsLCR)) OF DL-CCTrCH-LCR-InformationItem-RL-SetupRspTDD
+
+DL-CCTrCH-LCR-InformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-LCR-Information DL-DPCH-LCR-InformationList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-InformationList-RL-SetupRspTDD ::= ProtocolIE-Single-Container { {DL-DPCH-LCR-InformationListIEs-RL-SetupRspTDD} }
+
+DL-DPCH-LCR-InformationListIEs-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-LCR-InformationItem-RL-SetupRspTDD CRITICALITY ignore TYPE DL-DPCH-LCR-InformationItem-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+DL-DPCH-LCR-InformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-LCR-Information DL-TimeslotLCR-Information,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-LCR-InformationResponse-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{DSCH-LCR-InformationList-RL-SetupRspTDD}}
+
+DSCH-LCR-InformationList-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-LCR-InformationListIEs-RL-SetupRspTDD CRITICALITY ignore TYPE DSCH-LCR-InformationListIEs-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+DSCH-LCR-InformationListIEs-RL-SetupRspTDD ::= SEQUENCE (SIZE(0..maxNoOfDSCHsLCR)) OF DSCH-LCR-InformationItem-RL-SetupRspTDD
+
+DSCH-LCR-InformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ dsch-ID DSCH-ID,
+ dSCH-FlowControlInformation DSCH-FlowControlInformation,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ transportFormatManagement TransportFormatManagement,
+ iE-Extensions ProtocolExtensionContainer { {DSCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-LCR-InformationResponse-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{USCH-LCR-InformationList-RL-SetupRspTDD}}
+
+USCH-LCR-InformationList-RL-SetupRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-USCH-LCR-InformationListIEs-RL-SetupRspTDD CRITICALITY ignore TYPE USCH-LCR-InformationListIEs-RL-SetupRspTDD PRESENCE mandatory }
+}
+
+USCH-LCR-InformationListIEs-RL-SetupRspTDD ::= SEQUENCE (SIZE(0..maxNoOfUSCHsLCR)) OF USCH-LCR-InformationItem-RL-SetupRspTDD
+
+USCH-LCR-InformationItem-RL-SetupRspTDD ::= SEQUENCE {
+ usch-ID USCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ transportFormatManagement TransportFormatManagement,
+ iE-Extensions ProtocolExtensionContainer { {USCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-LCR-InformationItem-RL-SetupRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationResponse-RL-SetupRspTDD768 ::= SEQUENCE {
+ rL-ID RL-ID,
+ uRA-Information URA-Information OPTIONAL,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ ul-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ maxUL-SIR UL-SIR,
+ minUL-SIR UL-SIR,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ uARFCNforNt UARFCN OPTIONAL,
+ cellParameterID CellParameterID OPTIONAL,
+ syncCase SyncCase OPTIONAL,
+ sCH-TimeSlot SCH-TimeSlot OPTIONAL,
+ -- This IE shall be present if Sync Case IE is equal to "Case2". --
+ sCTD-Indicator SCTD-Indicator OPTIONAL,
+ pCCPCH-Power PCCPCH-Power,
+ timingAdvanceApplied TimingAdvanceApplied,
+ alphaValue AlphaValue,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ synchronisationConfiguration SynchronisationConfiguration,
+ secondary-CCPCH-Info-TDD768 Secondary-CCPCH-Info-TDD768 OPTIONAL,
+ ul-CCTrCHInformation768 UL-CCTrCHInformationList-RL-SetupRspTDD768 OPTIONAL,
+ dl-CCTrCHInformation768 DL-CCTrCHInformationList-RL-SetupRspTDD768 OPTIONAL,
+ dCH-InformationResponse DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dsch-InformationResponse DSCH-InformationResponse-RL-SetupRspTDD OPTIONAL,
+ usch-InformationResponse USCH-InformationResponse-RL-SetupRspTDD OPTIONAL,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ gA-CellAdditionalShapes GA-CellAdditionalShapes OPTIONAL,
+ hCS-Prio HCS-Prio OPTIONAL,
+ timeSlot-RL-SetupRspTDD TimeSlot OPTIONAL,
+ -- This IE shall be present if Sync Case IE is Case1. --
+
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponse-RL-SetupRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-SetupRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional },
+ ...
+}
+
+UL-CCTrCHInformationList-RL-SetupRspTDD768 ::= ProtocolIE-Single-Container {{UL-CCTrCHInformationListIEs-RL-SetupRspTDD768}}
+
+UL-CCTrCHInformationListIEs-RL-SetupRspTDD768 RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationListIE-RL-SetupRspTDD768 CRITICALITY ignore TYPE UL-CCTrCHInformationListIE-RL-SetupRspTDD768 PRESENCE mandatory }
+}
+
+UL-CCTrCHInformationListIE-RL-SetupRspTDD768 ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCHInformationItem-RL-SetupRspTDD768
+
+UL-CCTrCHInformationItem-RL-SetupRspTDD768 ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ ul-DPCH-Information768 UL-DPCH-InformationList-RL-SetupRspTDD768 OPTIONAL,
+ uL-SIR-Target-CCTrCH-InformationItem-RL-SetupRspTDD768 UL-SIR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCHInformationItem-RL-SetupRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCHInformationItem-RL-SetupRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationList-RL-SetupRspTDD768 ::= ProtocolIE-Single-Container { {UL-DPCH-InformationListIEs-RL-SetupRspTDD768} }
+
+UL-DPCH-InformationListIEs-RL-SetupRspTDD768 RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationItem-RL-SetupRspTDD768 CRITICALITY ignore TYPE UL-DPCH-InformationItem-RL-SetupRspTDD768 PRESENCE mandatory }
+}
+
+UL-DPCH-InformationItem-RL-SetupRspTDD768 ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information768 UL-Timeslot-Information768,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationItem-RL-SetupRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-SetupRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCHInformationList-RL-SetupRspTDD768 ::= ProtocolIE-Single-Container {{DL-CCTrCHInformationListIEs-RL-SetupRspTDD768}}
+
+DL-CCTrCHInformationListIEs-RL-SetupRspTDD768 RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationListIE-RL-SetupRspTDD768 CRITICALITY ignore TYPE DL-CCTrCHInformationListIE-RL-SetupRspTDD768 PRESENCE mandatory }
+}
+
+DL-CCTrCHInformationListIE-RL-SetupRspTDD768 ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCHInformationItem-RL-SetupRspTDD768
+
+DL-CCTrCHInformationItem-RL-SetupRspTDD768 ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-Information768 DL-DPCH-InformationList-RL-SetupRspTDD768 OPTIONAL,
+ cCTrCH-Maximum-DL-Power DL-Power OPTIONAL, -- this is a DCH type CCTrCH power
+ cCTrCH-Minimum-DL-Power DL-Power OPTIONAL, -- this is a DCH type CCTrCH power
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCHInformationItem-RL-SetupRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCHInformationItem-RL-SetupRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationList-RL-SetupRspTDD768 ::= ProtocolIE-Single-Container { {DL-DPCH-InformationListIEs-RL-SetupRspTDD768} }
+
+DL-DPCH-InformationListIEs-RL-SetupRspTDD768 RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationItem-RL-SetupRspTDD768 CRITICALITY ignore TYPE DL-DPCH-InformationItem-RL-SetupRspTDD768 PRESENCE mandatory }
+}
+
+DL-DPCH-InformationItem-RL-SetupRspTDD768 ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information768 DL-Timeslot-Information768,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationItem-RL-SetupRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-SetupRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP FAILURE FDD
+--
+-- **************************************************************
+
+RadioLinkSetupFailureFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupFailureFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupFailureFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupFailureFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional } |
+ { ID id-CN-PS-DomainIdentifier CRITICALITY ignore TYPE CN-PS-DomainIdentifier PRESENCE optional } |
+ { ID id-CN-CS-DomainIdentifier CRITICALITY ignore TYPE CN-CS-DomainIdentifier PRESENCE optional } |
+ { ID id-CauseLevel-RL-SetupFailureFDD CRITICALITY ignore TYPE CauseLevel-RL-SetupFailureFDD PRESENCE mandatory }|
+ { ID id-UL-SIRTarget CRITICALITY ignore TYPE UL-SIR PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-SetupFailureFDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespList-RL-SetupFailureFDD UnsuccessfulRL-InformationResponseList-RL-SetupFailureFDD,
+ successful-RL-InformationRespList-RL-SetupFailureFDD SuccessfulRL-InformationResponseList-RL-SetupFailureFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-SetupFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ { ID id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response CRITICALITY ignore EXTENSION Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response PRESENCE optional }|
+ { ID id-SixtyfourQAM-DL-SupportIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-DL-SupportIndicator PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-Response-List PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-List PRESENCE optional},
+ ...
+}
+
+UnsuccessfulRL-InformationResponseList-RL-SetupFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD-IEs} }
+
+UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD CRITICALITY ignore TYPE UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD PRESENCE mandatory }
+}
+
+UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Max-UE-DTX-Cycle CRITICALITY ignore EXTENSION Max-UE-DTX-Cycle PRESENCE conditional },
+ -- This IE shall be present if the Cause IE is set to "Continuous Packet Connectivity UE DTX Cycle not Available".
+ ...
+}
+
+SuccessfulRL-InformationResponseList-RL-SetupFailureFDD ::= SEQUENCE (SIZE (0..maxNrOfRLs-1)) OF ProtocolIE-Single-Container { {SuccessfulRL-InformationResponse-RL-SetupFailureFDD-IEs} }
+
+SuccessfulRL-InformationResponse-RL-SetupFailureFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-SuccessfulRL-InformationResponse-RL-SetupFailureFDD CRITICALITY ignore TYPE SuccessfulRL-InformationResponse-RL-SetupFailureFDD PRESENCE mandatory }
+}
+
+SuccessfulRL-InformationResponse-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ uRA-Information URA-Information OPTIONAL,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ received-total-wide-band-power Received-total-wide-band-power,
+ not-Used-secondary-CCPCH-Info NULL OPTIONAL,
+ dl-CodeInformation FDD-DL-CodeInformation,
+ diversityIndication DiversityIndication-RL-SetupFailureFDD,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ maxUL-SIR UL-SIR,
+ minUL-SIR UL-SIR,
+ closedlooptimingadjustmentmode Closedlooptimingadjustmentmode OPTIONAL,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ primaryScramblingCode PrimaryScramblingCode OPTIONAL,
+ uL-UARFCN UARFCN OPTIONAL,
+ dL-UARFCN UARFCN OPTIONAL,
+ not-Used-dSCH-InformationResponse-RL-SetupFailureFDD NULL OPTIONAL,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ pC-Preamble PC-Preamble,
+ sRB-Delay SRB-Delay,
+ iE-Extensions ProtocolExtensionContainer { {SuccessfulRL-InformationResponse-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SuccessfulRL-InformationResponse-RL-SetupFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio 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 CRITICALITY ignore EXTENSION Secondary-CPICH-Information PRESENCE optional }|
+ { ID id-Active-MBMS-Bearer-ServiceFDD-PFL CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListFDD-PFL PRESENCE optional }|
+ { ID id-EDCH-RLSet-Id CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-EDCH-FDD-DL-ControlChannelInformation CRITICALITY ignore EXTENSION EDCH-FDD-DL-ControlChannelInformation PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment CRITICALITY ignore EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Info CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Info 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore EXTENSION DCH-InformationResponse PRESENCE optional }|
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional },
+ ...
+}
+
+NonCombiningOrFirstRL-RL-SetupFailureFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningOrFirstRLItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningOrFirstRLItem-RL-SetupFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupFailureFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP FAILURE TDD
+--
+-- **************************************************************
+
+RadioLinkSetupFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupFailureTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-RL-SetupFailureTDD CRITICALITY ignore TYPE CauseLevel-RL-SetupFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SixtyfourQAM-DL-SupportIndicator CRITICALITY ignore EXTENSION SixtyfourQAM-DL-SupportIndicator PRESENCE optional },
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD ::= ProtocolIE-Single-Container { {Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureTDD} }
+
+Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD CRITICALITY ignore TYPE UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD PRESENCE mandatory }
+}
+
+UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkSetupFailureTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionRequestFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-SIRTarget CRITICALITY reject TYPE UL-SIR PRESENCE mandatory } |
+ { ID id-RL-InformationList-RL-AdditionRqstFDD CRITICALITY notify TYPE RL-InformationList-RL-AdditionRqstFDD PRESENCE mandatory }|
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY reject TYPE Active-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RL-InformationList-RL-AdditionRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container { {RL-Information-RL-AdditionRqstFDD-IEs} }
+
+RL-Information-RL-AdditionRqstFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Information-RL-AdditionRqstFDD CRITICALITY notify TYPE RL-Information-RL-AdditionRqstFDD PRESENCE mandatory }
+}
+
+RL-Information-RL-AdditionRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ chipOffset ChipOffset,
+ diversityControlField DiversityControlField,
+ primaryCPICH-EcNo PrimaryCPICH-EcNo OPTIONAL,
+ not-Used-sSDT-CellID NULL OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-RL-AdditionRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-AdditionRqstFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional}|
+ { ID id-Enhanced-PrimaryCPICH-EcNo CRITICALITY ignore EXTENSION Enhanced-PrimaryCPICH-EcNo 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-RL-Specific-EDCH-Information CRITICALITY reject EXTENSION RL-Specific-EDCH-Information PRESENCE optional }|
+ { ID id-EDCH-RL-Indication CRITICALITY reject EXTENSION EDCH-RL-Indication PRESENCE optional }|
+ { ID id-SynchronisationIndicator CRITICALITY ignore EXTENSION SynchronisationIndicator PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationSetup CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationSetup PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Setup CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Setup PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionRequestFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DPC-Mode CRITICALITY reject EXTENSION DPC-Mode PRESENCE optional }|
+ { ID id-Permanent-NAS-UE-Identity CRITICALITY ignore EXTENSION Permanent-NAS-UE-Identity PRESENCE optional }|
+ { ID id-Serving-EDCHRL-Id CRITICALITY reject EXTENSION EDCH-Serving-RL PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment-Allowed CRITICALITY ignore EXTENSION Initial-DL-DPCH-TimingAdjustment-Allowed PRESENCE optional }|
+ { ID id-HS-DSCH-serving-cell-change-information CRITICALITY reject EXTENSION HS-DSCH-serving-cell-change-information PRESENCE optional }|
+ { ID id-Serving-cell-change-CFN CRITICALITY reject EXTENSION CFN PRESENCE optional }|
+ { ID id-EDPCH-Information CRITICALITY reject EXTENSION EDPCH-Information-RLAdditionReq-FDD PRESENCE optional }|
+ { ID id-EDCH-FDD-Information CRITICALITY reject EXTENSION EDCH-FDD-Information PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-RL-Addition CRITICALITY reject EXTENSION Additional-HS-Cell-Information-RL-Addition-List PRESENCE optional }|
+ -- This IE shall be present if E-DPCH Information is present
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Add-Req CRITICALITY reject EXTENSION Additional-EDCH-Cell-Information-RL-Add-Req PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Addition-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Addition-ItemIEs
+
+
+
+Additional-HS-Cell-Information-RL-Addition-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ c-ID C-ID,
+ hS-DSCH-FDD-Secondary-Serving-Information HS-DSCH-FDD-Secondary-Serving-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Addition-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Addition-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Add-Req ::=SEQUENCE{
+ setup-Or-Addition-Of-EDCH-On-secondary-UL-Frequency Setup-Or-Addition-Of-EDCH-On-secondary-UL-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-RL-Add-Req-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Add-Req-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Setup-Or-Addition-Of-EDCH-On-secondary-UL-Frequency::= CHOICE {
+ setup Additional-EDCH-Setup-Info,
+ addition Additional-EDCH-Cell-Information-To-Add-List,
+ ...
+}
+
+EDPCH-Information-RLAdditionReq-FDD::= SEQUENCE {
+ maxSet-E-DPDCHs Max-Set-E-DPDCHs,
+ ul-PunctureLimit PunctureLimit,
+ e-TFCS-Information E-TFCS-Information,
+ e-TTI E-TTI,
+ e-DPCCH-PO E-DPCCH-PO,
+ e-RGCH-2-IndexStepThreshold E-RGCH-2-IndexStepThreshold,
+ e-RGCH-3-IndexStepThreshold E-RGCH-3-IndexStepThreshold,
+ hARQ-Info-for-E-DCH HARQ-Info-for-E-DCH,
+ iE-Extensions ProtocolExtensionContainer { { EDPCH-Information-RLAdditionReq-FDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDPCH-Information-RLAdditionReq-FDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-HSDSCH-Configured-Indicator CRITICALITY reject EXTENSION HSDSCH-Configured-Indicator PRESENCE mandatory}|
+-- This shall be present for EDPCH configuration with HSDCH
+{ ID id-MinimumReducedE-DPDCH-GainFactor CRITICALITY ignore EXTENSION MinimumReducedE-DPDCH-GainFactor PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionRequestTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Information-RL-AdditionRqstTDD CRITICALITY reject TYPE RL-Information-RL-AdditionRqstTDD PRESENCE mandatory },
+ ...
+}
+
+RL-Information-RL-AdditionRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ diversityControlField DiversityControlField,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
+ dL-TimeSlot-ISCP-Info DL-TimeSlot-ISCP-Info OPTIONAL,
+ --for 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-AdditionRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-Timeslot-ISCP-LCR-Information-RL-AdditionRqstTDD CRITICALITY reject EXTENSION DL-TimeSlot-ISCP-LCR-Information PRESENCE optional }|
+ --for 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 reject EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD or 7.68Mcps TDD
+ { ID id-PrimaryCCPCH-RSCP-Delta CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP-Delta PRESENCE optional }|
+ { ID id-IdleIntervalConfigurationIndicator CRITICALITY ignore EXTENSION NULL PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionRequestTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Permanent-NAS-UE-Identity CRITICALITY ignore EXTENSION Permanent-NAS-UE-Identity PRESENCE optional }|
+ { ID id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD CRITICALITY notify EXTENSION UL-CCTrCH-InformationList-RL-AdditionRqstTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD CRITICALITY notify EXTENSION DL-CCTrCH-InformationList-RL-AdditionRqstTDD PRESENCE optional }|
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-Information CRITICALITY reject EXTENSION E-DCH-Information PRESENCE optional }|
+ { ID id-E-DCH-Serving-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-768-Information CRITICALITY reject EXTENSION E-DCH-768-Information PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information CRITICALITY reject EXTENSION E-DCH-LCR-Information PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-InformationLCR CRITICALITY reject EXTENSION ContinuousPacketConnectivity-DRX-InformationLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-LCR CRITICALITY reject EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-LCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-LCR CRITICALITY reject EXTENSION E-DCH-Semi-PersistentScheduling-Information-LCR PRESENCE optional }|
+ { ID id-DCH-MeasurementType-Indicator CRITICALITY reject EXTENSION DCH-MeasurementType-Indicator PRESENCE optional},
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-AdditionRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {UL-CCTrCH-InformationItemIEs-RL-AdditionRqstTDD} }
+
+UL-CCTrCH-InformationItemIEs-RL-AdditionRqstTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationItem-RL-AdditionRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationItem-RL-AdditionRqstTDD PRESENCE optional},
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ uplinkStepSizeLCR TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ -- Applicable to 1.28Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-AdditionRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {DL-CCTrCH-InformationItemIEs-RL-AdditionRqstTDD} }
+
+DL-CCTrCH-InformationItemIEs-RL-AdditionRqstTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationItem-RL-AdditionRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationItem-RL-AdditionRqstTDD PRESENCE optional},
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ downlinkStepSize TDD-TPC-DownlinkStepSize OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionResponseFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseList-RL-AdditionRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-AdditionRspFDD PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RL-InformationResponseList-RL-AdditionRspFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container { {RL-InformationResponseItemIEs-RL-AdditionRspFDD} }
+
+RL-InformationResponseItemIEs-RL-AdditionRspFDD RNSAP-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,
+ uRA-Information URA-Information OPTIONAL,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ received-total-wide-band-power Received-total-wide-band-power,
+ not-Used-secondary-CCPCH-Info NULL OPTIONAL,
+ dl-CodeInformation DL-CodeInformationList-RL-AdditionRspFDD,
+ diversityIndication DiversityIndication-RL-AdditionRspFDD,
+
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ minUL-SIR UL-SIR,
+ maxUL-SIR UL-SIR,
+ closedlooptimingadjustmentmode Closedlooptimingadjustmentmode OPTIONAL,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ pC-Preamble PC-Preamble,
+ sRB-Delay SRB-Delay,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponseItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-AdditionRspFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-Active-MBMS-Bearer-ServiceFDD-PFL CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListFDD-PFL PRESENCE optional }|
+ { ID id-EDCH-RLSet-Id CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-EDCH-FDD-DL-ControlChannelInformation CRITICALITY ignore EXTENSION EDCH-FDD-DL-ControlChannelInformation PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment CRITICALITY ignore EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional }|
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Info CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Info PRESENCE optional },
+ ...
+}
+
+DL-CodeInformationList-RL-AdditionRspFDD ::= ProtocolIE-Single-Container {{ DL-CodeInformationListIEs-RL-AdditionRspFDD }}
+
+DL-CodeInformationListIEs-RL-AdditionRspFDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-FDD-DL-CodeInformation CRITICALITY ignore TYPE FDD-DL-CodeInformation PRESENCE mandatory }
+}
+
+DiversityIndication-RL-AdditionRspFDD ::= CHOICE {
+ combining Combining-RL-AdditionRspFDD,
+ nonCombining NonCombining-RL-AdditionRspFDD
+}
+
+Combining-RL-AdditionRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionRspFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore EXTENSION DCH-InformationResponse PRESENCE optional }|
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional },
+ ...
+}
+
+NonCombining-RL-AdditionRspFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningItem-RL-AdditionRspFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionResponseFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HS-DSCH-serving-cell-change-informationResponse CRITICALITY ignore EXTENSION HS-DSCH-serving-cell-change-informationResponse PRESENCE optional}|
+ { ID id-E-DCH-Serving-cell-change-informationResponse CRITICALITY ignore EXTENSION E-DCH-Serving-cell-change-informationResponse PRESENCE optional}|
+ { ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional}|
+ { ID id-Additional-HS-Cell-Change-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Change-Information-Response-List PRESENCE optional}|
+ { ID id-Additional-EDCH-Cell-Information-Response-RLAdd CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-RLAddList PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Change-Information-Response-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Change-Information-Response-ItemIEs
+
+
+
+Additional-HS-Cell-Change-Information-Response-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ hSDSCH-RNTI HSDSCH-RNTI,
+ hS-DSCH-Secondary-Serving-Cell-Change-Information-Response HS-DSCH-Secondary-Serving-Cell-Change-Information-Response,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Change-Information-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Change-Information-Response-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionResponseTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponse-RL-AdditionRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-AdditionRspTDD PRESENCE optional } |
+ --Mandatory for 3.84Mcps TDD only
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uRA-Information URA-Information OPTIONAL,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ ul-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ minUL-SIR UL-SIR,
+ maxUL-SIR UL-SIR,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ pCCPCH-Power PCCPCH-Power,
+ timingAdvanceApplied TimingAdvanceApplied,
+ alphaValue AlphaValue,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ synchronisationConfiguration SynchronisationConfiguration,
+ secondary-CCPCH-Info-TDD Secondary-CCPCH-Info-TDD OPTIONAL,
+ ul-CCTrCHInformation UL-CCTrCHInformationList-RL-AdditionRspTDD OPTIONAL,
+ dl-CCTrCHInformation DL-CCTrCHInformationList-RL-AdditionRspTDD OPTIONAL,
+ dCH-Information DCH-Information-RL-AdditionRspTDD OPTIONAL,
+ dSCH-InformationResponse DSCH-InformationResponse-RL-AdditionRspTDD OPTIONAL,
+ uSCH-InformationResponse USCH-InformationResponse-RL-AdditionRspTDD OPTIONAL,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponse-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional },
+ ...
+}
+
+UL-CCTrCHInformationList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{UL-CCTrCHInformationListIEs-RL-AdditionRspTDD}}
+
+UL-CCTrCHInformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationListIE-RL-AdditionRspTDD CRITICALITY ignore TYPE UL-CCTrCHInformationListIE-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+UL-CCTrCHInformationListIE-RL-AdditionRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCHInformationItem-RL-AdditionRspTDD
+
+UL-CCTrCHInformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ ul-DPCH-Information UL-DPCH-InformationList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCHInformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCHInformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container { {UL-DPCH-InformationListIEs-RL-AdditionRspTDD} }
+
+UL-DPCH-InformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationItem-RL-AdditionRspTDD CRITICALITY ignore TYPE UL-DPCH-InformationItem-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCHInformationList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{DL-CCTrCHInformationListIEs-RL-AdditionRspTDD}}
+
+DL-CCTrCHInformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationListIE-RL-AdditionRspTDD CRITICALITY ignore TYPE DL-CCTrCHInformationListIE-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+DL-CCTrCHInformationListIE-RL-AdditionRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCHInformationItem-RL-AdditionRspTDD
+
+DL-CCTrCHInformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-Information DL-DPCH-InformationList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCHInformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCHInformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CCTrCH-Maximum-DL-Power-RL-AdditionRspTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }| -- this is a DCH type CCTrCH power
+ { ID id-CCTrCH-Minimum-DL-Power-RL-AdditionRspTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }, -- this is a DCH type CCTrCH power
+ ...
+}
+
+DL-DPCH-InformationList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container { {DL-DPCH-InformationListIEs-RL-AdditionRspTDD} }
+
+DL-DPCH-InformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationItem-RL-AdditionRspTDD CRITICALITY ignore TYPE DL-DPCH-InformationItem-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DiversityIndication-RL-AdditionRspTDD ::= CHOICE {
+ combining Combining-RL-AdditionRspTDD,
+ nonCombining NonCombining-RL-AdditionRspTDD
+}
+
+Combining-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore EXTENSION DCH-InformationResponse PRESENCE optional },
+ ...
+}
+
+NonCombining-RL-AdditionRspTDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationResponse-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{DSCH-InformationListIEs-RL-AdditionRspTDD}}
+
+DSCH-InformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationListIE-RL-AdditionRspTDD CRITICALITY ignore TYPE DSCH-InformationListIE-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+DSCH-InformationListIE-RL-AdditionRspTDD ::= SEQUENCE (SIZE(0..maxNoOfDSCHs)) OF DSCHInformationItem-RL-AdditionRspTDD
+
+DSCHInformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ dsch-ID DSCH-ID,
+ transportFormatManagement TransportFormatManagement,
+ dSCH-FlowControlInformation DSCH-FlowControlInformation,
+ diversityIndication DiversityIndication-RL-AdditionRspTDD2 OPTIONAL,
+ -- diversityIndication present, if CHOICE = nonCombining
+ iE-Extensions ProtocolExtensionContainer { {DSCHInformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCHInformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DiversityIndication-RL-AdditionRspTDD2 ::= SEQUENCE {
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DiversityIndication-RL-AdditionRspTDD2-ExtIEs} } OPTIONAL,
+ ...
+}
+DiversityIndication-RL-AdditionRspTDD2-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-InformationResponse-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{USCH-InformationListIEs-RL-AdditionRspTDD}}
+
+USCH-InformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationListIE-RL-AdditionRspTDD CRITICALITY ignore TYPE USCH-InformationListIE-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+USCH-InformationListIE-RL-AdditionRspTDD ::= SEQUENCE (SIZE(0..maxNoOfUSCHs)) OF USCHInformationItem-RL-AdditionRspTDD
+
+USCHInformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ transportFormatManagement TransportFormatManagement,
+ diversityIndication DiversityIndication-RL-AdditionRspTDD2 OPTIONAL,
+ -- diversityIndication present, if CHOICE = nonCombining
+ iE-Extensions ProtocolExtensionContainer { {USCHInformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCHInformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkAdditionResponseTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-LCR-InformationResponse-RL-AdditionRspTDD CRITICALITY ignore EXTENSION RL-LCR-InformationResponse-RL-AdditionRspTDD PRESENCE optional }|
+ --Mandatory for 1.28Mcps TDD only
+ { ID id-Active-MBMS-Bearer-ServiceTDD-PFL CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListTDD-PFL PRESENCE optional}|
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional }|
+ { ID id-DSCH-RNTI CRITICALITY ignore EXTENSION DSCH-RNTI PRESENCE optional }|
+ { ID id-RL-InformationResponse-RL-AdditionRspTDD768 CRITICALITY ignore EXTENSION RL-InformationResponse-RL-AdditionRspTDD768 PRESENCE optional}|
+ { ID id-E-DCH-Information-Response CRITICALITY ignore EXTENSION E-DCH-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-768-Information-Response CRITICALITY ignore EXTENSION E-DCH-768-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information-Response CRITICALITY ignore EXTENSION E-DCH-LCR-Information-Response PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional }|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION E-DCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional}|
+ { ID id-DCH-MeasurementOccasion-Information CRITICALITY reject EXTENSION DCH-MeasurementOccasion-Information PRESENCE optional},
+ ...
+}
+
+RL-LCR-InformationResponse-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uRA-Information URA-Information,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ ul-TimeSlot-ISCP-LCR-Info UL-TimeSlot-ISCP-LCR-Info,
+ maxUL-SIR UL-SIR,
+ minUL-SIR UL-SIR,
+ pCCPCH-Power PCCPCH-Power,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ alphaValue AlphaValue,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ synchronisationConfiguration SynchronisationConfiguration,
+ secondary-LCR-CCPCH-Info-TDD Secondary-LCR-CCPCH-Info-TDD OPTIONAL,
+ ul-CCTrCH-LCR-Information UL-CCTrCH-LCR-InformationList-RL-AdditionRspTDD OPTIONAL,
+ dl-CCTrCH-LCR-Information DL-CCTrCH-LCR-InformationList-RL-AdditionRspTDD OPTIONAL,
+ dCH-InformationResponse DCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ dsch-LCR-InformationResponse DSCH-LCR-InformationResponse-RL-AdditionRspTDD OPTIONAL,
+ usch-LCR-InformationResponse USCH-LCR-InformationResponse-RL-AdditionRspTDD OPTIONAL,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-LCR-InformationResponseList-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-LCR-InformationResponseList-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-UL-TimingAdvanceCtrl-LCR CRITICALITY ignore EXTENSION UL-TimingAdvanceCtrl-LCR PRESENCE optional }|
+ --Mandatory for 1.28Mcps TDD only
+ { ID id-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional }|
+ { ID id-IdleIntervalInformation CRITICALITY ignore EXTENSION IdleIntervalInformation PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-LCR-InformationList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{UL-CCTrCH-LCR-InformationListIEs-RL-AdditionRspTDD }}
+
+UL-CCTrCH-LCR-InformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD CRITICALITY ignore TYPE UL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+UL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHsLCR)) OF UL-CCTrCH-LCR-InformationItem-RL-AdditionRspTDD
+
+UL-CCTrCH-LCR-InformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ ul-DPCH-LCR-Information UL-DPCH-LCR-InformationList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-InformationList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container { {UL-DPCH-LCR-InformationListIEs-RL-AdditionRspTDD} }
+
+UL-DPCH-LCR-InformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD CRITICALITY ignore TYPE UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Information UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-LCR-InformationList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{DL-CCTrCH-LCR-InformationListIEs-RL-AdditionRspTDD}}
+
+DL-CCTrCH-LCR-InformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD CRITICALITY ignore TYPE DL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+DL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHsLCR)) OF DL-CCTrCH-LCR-InformationItem-RL-AdditionRspTDD
+
+DL-CCTrCH-LCR-InformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-LCR-Information DL-DPCH-LCR-InformationList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-InformationList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container { {DL-DPCH-LCR-InformationListIEs-RL-AdditionRspTDD} }
+
+DL-DPCH-LCR-InformationListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD CRITICALITY ignore TYPE DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-TimeslotLCR-Information DL-TimeslotLCR-Information,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-InformationResponseList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{DCH-InformationResponseListIEs-RL-AdditionRspTDD}}
+
+DCH-InformationResponseListIEs-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+DSCH-LCR-InformationResponse-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{DSCH-LCR-InformationList-RL-AdditionRspTDD}}
+
+DSCH-LCR-InformationList-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-LCR-InformationListIEs-RL-AdditionRspTDD CRITICALITY ignore TYPE DSCH-LCR-InformationListIEs-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+DSCH-LCR-InformationListIEs-RL-AdditionRspTDD ::= SEQUENCE (SIZE(0..maxNoOfDSCHsLCR)) OF DSCH-LCR-InformationItem-RL-AdditionRspTDD
+
+DSCH-LCR-InformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ dsch-ID DSCH-ID,
+ dSCH-FlowControlInformation DSCH-FlowControlInformation,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ transportFormatManagement TransportFormatManagement,
+ iE-Extensions ProtocolExtensionContainer { {DSCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-LCR-InformationResponse-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{USCH-LCR-InformationList-RL-AdditionRspTDD}}
+
+USCH-LCR-InformationList-RL-AdditionRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-USCH-LCR-InformationListIEs-RL-AdditionRspTDD CRITICALITY ignore TYPE USCH-LCR-InformationListIEs-RL-AdditionRspTDD PRESENCE mandatory }
+}
+
+USCH-LCR-InformationListIEs-RL-AdditionRspTDD ::= SEQUENCE (SIZE(0..maxNoOfUSCHsLCR)) OF USCH-LCR-InformationItem-RL-AdditionRspTDD
+
+USCH-LCR-InformationItem-RL-AdditionRspTDD ::= SEQUENCE {
+ usch-ID USCH-ID,
+ transportFormatManagement TransportFormatManagement,
+ diversityIndication DiversityIndication-RL-AdditionRspTDD2 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {USCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-LCR-InformationItem-RL-AdditionRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD768 ::= SEQUENCE {
+ rL-ID RL-ID,
+ uRA-Information URA-Information OPTIONAL,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ ul-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ minUL-SIR UL-SIR,
+ maxUL-SIR UL-SIR,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ pCCPCH-Power PCCPCH-Power,
+ timingAdvanceApplied TimingAdvanceApplied,
+ alphaValue AlphaValue,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ synchronisationConfiguration SynchronisationConfiguration,
+ secondary-CCPCH-Info-TDD768 Secondary-CCPCH-Info-TDD768 OPTIONAL,
+ ul-CCTrCHInformation768 UL-CCTrCHInformationList-RL-AdditionRspTDD768 OPTIONAL,
+ dl-CCTrCHInformation768 DL-CCTrCHInformationList-RL-AdditionRspTDD768 OPTIONAL,
+ dCH-Information DCH-Information-RL-AdditionRspTDD OPTIONAL,
+ dSCH-InformationResponse DSCH-InformationResponse-RL-AdditionRspTDD OPTIONAL,
+ uSCH-InformationResponse USCH-InformationResponse-RL-AdditionRspTDD OPTIONAL,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ gA-CellAdditionalShapes GA-CellAdditionalShapes OPTIONAL,
+ hCS-Prio HCS-Prio OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponse-RL-AdditionRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional },
+ ...
+}
+
+UL-CCTrCHInformationList-RL-AdditionRspTDD768 ::= ProtocolIE-Single-Container {{UL-CCTrCHInformationListIEs-RL-AdditionRspTDD768}}
+
+UL-CCTrCHInformationListIEs-RL-AdditionRspTDD768 RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationListIE-RL-AdditionRspTDD768 CRITICALITY ignore TYPE UL-CCTrCHInformationListIE-RL-AdditionRspTDD768 PRESENCE mandatory }
+}
+
+UL-CCTrCHInformationListIE-RL-AdditionRspTDD768 ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCHInformationItem-RL-AdditionRspTDD768
+
+UL-CCTrCHInformationItem-RL-AdditionRspTDD768 ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ ul-DPCH-Information768 UL-DPCH-InformationList-RL-AdditionRspTDD768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCHInformationItem-RL-AdditionRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCHInformationItem-RL-AdditionRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationList-RL-AdditionRspTDD768 ::= ProtocolIE-Single-Container { {UL-DPCH-InformationListIEs-RL-AdditionRspTDD768} }
+
+UL-DPCH-InformationListIEs-RL-AdditionRspTDD768 RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationItem-RL-AdditionRspTDD CRITICALITY ignore TYPE UL-DPCH-InformationItem-RL-AdditionRspTDD768 PRESENCE mandatory }
+}
+
+UL-DPCH-InformationItem-RL-AdditionRspTDD768 ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information768 UL-Timeslot-Information768,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationItem-RL-AdditionRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-AdditionRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCHInformationList-RL-AdditionRspTDD768 ::= ProtocolIE-Single-Container {{DL-CCTrCHInformationListIEs-RL-AdditionRspTDD768}}
+
+DL-CCTrCHInformationListIEs-RL-AdditionRspTDD768 RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationListIE-RL-AdditionRspTDD768 CRITICALITY ignore TYPE DL-CCTrCHInformationListIE-RL-AdditionRspTDD768 PRESENCE mandatory }
+}
+
+DL-CCTrCHInformationListIE-RL-AdditionRspTDD768 ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCHInformationItem-RL-AdditionRspTDD768
+
+DL-CCTrCHInformationItem-RL-AdditionRspTDD768 ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-Information768 DL-DPCH-InformationList-RL-AdditionRspTDD768 OPTIONAL,
+ cCTrCH-Maximum-DL-Power DL-Power OPTIONAL,-- this is a DCH type CCTrCH power
+ cCTrCH-Minimum-DL-Power DL-Power OPTIONAL, -- this is a DCH type CCTrCH power
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCHInformationItem-RL-AdditionRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCHInformationItem-RL-AdditionRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationList-RL-AdditionRspTDD768 ::= ProtocolIE-Single-Container { {DL-DPCH-InformationListIEs-RL-AdditionRspTDD768} }
+
+DL-DPCH-InformationListIEs-RL-AdditionRspTDD768 RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationItem-RL-AdditionRspTDD768 CRITICALITY ignore TYPE DL-DPCH-InformationItem-RL-AdditionRspTDD768 PRESENCE mandatory }
+}
+
+DL-DPCH-InformationItem-RL-AdditionRspTDD768 ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information768 DL-Timeslot-Information768,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationItem-RL-AdditionRspTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-AdditionRspTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION FAILURE FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionFailureFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionFailureFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionFailureFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionFailureFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-RL-AdditionFailureFDD CRITICALITY ignore TYPE CauseLevel-RL-AdditionFailureFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-AdditionFailureFDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD UnsuccessfulRL-InformationResponseList-RL-AdditionFailureFDD,
+ successful-RL-InformationRespList-RL-AdditionFailureFDD SuccessfulRL-InformationResponseList-RL-AdditionFailureFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-AdditionFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UnsuccessfulRL-InformationResponseList-RL-AdditionFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container { {UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD-IEs} }
+
+UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD CRITICALITY ignore TYPE UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD PRESENCE mandatory }
+}
+
+UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SuccessfulRL-InformationResponseList-RL-AdditionFailureFDD ::= SEQUENCE (SIZE (0..maxNrOfRLs-2)) OF ProtocolIE-Single-Container { {SuccessfulRL-InformationResponse-RL-AdditionFailureFDD-IEs} }
+
+SuccessfulRL-InformationResponse-RL-AdditionFailureFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-SuccessfulRL-InformationResponse-RL-AdditionFailureFDD CRITICALITY ignore TYPE SuccessfulRL-InformationResponse-RL-AdditionFailureFDD PRESENCE mandatory }
+}
+
+SuccessfulRL-InformationResponse-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ uRA-Information URA-Information OPTIONAL,
+ sAI SAI,
+ gA-Cell GA-Cell OPTIONAL,
+ gA-AccessPointPosition GA-AccessPointPosition OPTIONAL,
+ received-total-wide-band-power Received-total-wide-band-power,
+ not-Used-secondary-CCPCH-Info NULL OPTIONAL,
+ dl-CodeInformation DL-CodeInformationList-RL-AdditionFailureFDD,
+ diversityIndication DiversityIndication-RL-AdditionFailureFDD,
+ -- This IE represents both the Diversity Indication IE and the choice based on the diversity indication as described in
+ -- the tabular message format in subclause 9.1.
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ minUL-SIR UL-SIR,
+ maxUL-SIR UL-SIR,
+ closedlooptimingadjustmentmode Closedlooptimingadjustmentmode OPTIONAL,
+ maximumAllowedULTxPower MaximumAllowedULTxPower,
+ maximumDLTxPower DL-Power,
+ minimumDLTxPower DL-Power,
+ neighbouring-UMTS-CellInformation Neighbouring-UMTS-CellInformation OPTIONAL,
+ neighbouring-GSM-CellInformation Neighbouring-GSM-CellInformation OPTIONAL,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ pC-Preamble PC-Preamble,
+ sRB-Delay SRB-Delay,
+ iE-Extensions ProtocolExtensionContainer { {SuccessfulRL-InformationResponse-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SuccessfulRL-InformationResponse-RL-AdditionFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional }|
+ { ID id-HCS-Prio CRITICALITY ignore EXTENSION HCS-Prio PRESENCE optional }|
+ { ID id-Active-MBMS-Bearer-ServiceFDD-PFL CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListFDD-PFL PRESENCE optional }|
+ { ID id-EDCH-RLSet-Id CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-EDCH-FDD-DL-ControlChannelInformation CRITICALITY ignore EXTENSION EDCH-FDD-DL-ControlChannelInformation PRESENCE optional }|
+ { ID id-Initial-DL-DPCH-TimingAdjustment CRITICALITY ignore EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-Neighbouring-E-UTRA-CellInformation CRITICALITY ignore EXTENSION Neighbouring-E-UTRA-CellInformation PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Info CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Info PRESENCE optional },
+ ...
+}
+
+DL-CodeInformationList-RL-AdditionFailureFDD ::= ProtocolIE-Single-Container {{ DL-CodeInformationListIEs-RL-AdditionFailureFDD }}
+
+DL-CodeInformationListIEs-RL-AdditionFailureFDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-FDD-DL-CodeInformation CRITICALITY ignore TYPE FDD-DL-CodeInformation PRESENCE mandatory }
+}
+
+DiversityIndication-RL-AdditionFailureFDD ::= CHOICE {
+ combining Combining-RL-AdditionFailureFDD,
+ nonCombining NonCombining-RL-AdditionFailureFDD
+}
+
+Combining-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore EXTENSION DCH-InformationResponse PRESENCE optional }|
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional },
+ ...
+}
+
+NonCombining-RL-AdditionFailureFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningItem-RL-AdditionFailureFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionFailureFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HS-DSCH-serving-cell-change-informationResponse CRITICALITY ignore EXTENSION HS-DSCH-serving-cell-change-informationResponse PRESENCE optional}|
+ { ID id-E-DCH-Serving-cell-change-informationResponse CRITICALITY ignore EXTENSION E-DCH-Serving-cell-change-informationResponse PRESENCE optional}|
+ { ID id-Additional-HS-Cell-Change-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Change-Information-Response-List PRESENCE optional}|
+ { ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional}|
+ { ID id-Additional-EDCH-Cell-Information-Response-RLAdd CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-RLAddList PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION FAILURE TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionFailureTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-RL-AdditionFailureTDD CRITICALITY ignore TYPE CauseLevel-RL-AdditionFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD ::= ProtocolIE-Single-Container { {Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureTDD} }
+
+Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD CRITICALITY ignore TYPE UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD PRESENCE mandatory}
+}
+
+UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkAdditionFailureTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK DELETION REQUEST
+--
+-- **************************************************************
+
+RadioLinkDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkDeletionRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationList-RL-DeletionRqst CRITICALITY notify TYPE RL-InformationList-RL-DeletionRqst PRESENCE mandatory },
+ ...
+}
+
+RL-InformationList-RL-DeletionRqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Information-RL-DeletionRqst-IEs} }
+
+RL-Information-RL-DeletionRqst-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Information-RL-DeletionRqst CRITICALITY notify TYPE RL-Information-RL-DeletionRqst PRESENCE mandatory }
+}
+
+RL-Information-RL-DeletionRqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-RL-DeletionRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-DeletionRqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkDeletionRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK DELETION RESPONSE
+--
+-- **************************************************************
+
+RadioLinkDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkDeletionResponse-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkDeletionResponse-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION PREPARE FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationPrepareFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationPrepareFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationPrepareFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationPrepareFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-AllowedQueuingTime CRITICALITY reject TYPE AllowedQueuingTime PRESENCE optional } |
+ { 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-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 },
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ ul-ScramblingCode UL-ScramblingCode OPTIONAL,
+ ul-SIRTarget UL-SIR OPTIONAL,
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength OPTIONAL,
+ maxNrOfUL-DPDCHs MaxNrOfUL-DPCHs OPTIONAL
+ -- This IE shall be present if minUL-ChannelisationCodeLength equals to 4 --,
+ ul-PunctureLimit PunctureLimit OPTIONAL,
+ tFCS TFCS OPTIONAL,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat OPTIONAL,
+ diversityMode DiversityMode OPTIONAL,
+ not-Used-sSDT-CellIDLength NULL OPTIONAL,
+ not-Used-s-FieldLength NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPDCHIndicatorEDCH CRITICALITY reject EXTENSION UL-DPDCHIndicatorEDCH PRESENCE optional },
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ tFCS TFCS OPTIONAL,
+ dl-DPCH-SlotFormat DL-DPCH-SlotFormat OPTIONAL,
+ nrOfDLchannelisationcodes NrOfDLchannelisationcodes OPTIONAL,
+ tFCI-SignallingMode TFCI-SignallingMode OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL
+ -- This IE shall be present if DL DPCH Slot Format IE is from 12 to 16 --,
+ multiplexingPosition MultiplexingPosition OPTIONAL,
+ limitedPowerIncrease LimitedPowerIncrease OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-Power-Information-RL-ReconfPrepFDD CRITICALITY reject EXTENSION DL-DPCH-Power-Information-RL-ReconfPrepFDD PRESENCE optional },
+ ...
+}
+
+DL-DPCH-Power-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ powerOffsetInformation PowerOffsetInformation-RL-ReconfPrepFDD,
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Power-Information-RL-ReconfPrepFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Power-Information-RL-ReconfPrepFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-RL-ReconfPrepFDD ::= SEQUENCE {
+ pO1-ForTFCI-Bits PowerOffset,
+ pO2-ForTPC-Bits PowerOffset,
+ pO3-ForPilotBits PowerOffset,
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-RL-ReconfPrepFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (0..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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (0..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Information-RL-ReconfPrepFDD-IEs} }
+
+RL-Information-RL-ReconfPrepFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Information-RL-ReconfPrepFDD CRITICALITY reject TYPE RL-Information-RL-ReconfPrepFDD PRESENCE mandatory }
+}
+
+RL-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ not-Used-sSDT-Indication NULL OPTIONAL,
+ not-Used-sSDT-CellIdentity NULL OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ -- This IE shall be present if Diversity Mode IE is present in UL DPCH Information IE and is not equal to "none"
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-ReconfPrepFDD-ExtIEs RNSAP-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-DL-DPCH-TimingAdjustment CRITICALITY reject EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-Phase-Reference-Update-Indicator CRITICALITY ignore EXTENSION Phase-Reference-Update-Indicator PRESENCE optional }|
+ { ID id-RL-Specific-EDCH-Information CRITICALITY reject EXTENSION RL-Specific-EDCH-Information PRESENCE optional }|
+ { ID id-EDCH-RL-Indication CRITICALITY reject EXTENSION EDCH-RL-Indication PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationSetup CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationSetup PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Setup CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Setup PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Removal CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Setup PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationPrepareFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { 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-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional}|
+ { ID id-EDPCH-Information CRITICALITY reject EXTENSION EDPCH-Information-RLReconfPrepare-FDD PRESENCE optional}|
+ { ID id-EDCH-FDD-Information CRITICALITY reject EXTENSION EDCH-FDD-Information PRESENCE optional}|
+ { ID id-EDCH-FDD-Information-To-Modify CRITICALITY reject EXTENSION EDCH-FDD-Information-To-Modify PRESENCE optional}|
+ { ID id-EDCH-MACdFlows-To-Add CRITICALITY reject EXTENSION EDCH-MACdFlows-Information PRESENCE optional}|
+ { ID id-EDCH-MACdFlows-To-Delete CRITICALITY reject EXTENSION EDCH-MACdFlows-To-Delete PRESENCE optional}|
+ { ID id-Serving-EDCHRL-Id CRITICALITY reject EXTENSION EDCH-Serving-RL PRESENCE optional }|
+ { ID id-F-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject EXTENSION F-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional}|
+ { ID id-Fast-Reconfiguration-Mode CRITICALITY ignore EXTENSION Fast-Reconfiguration-Mode PRESENCE optional }|
+ { ID id-CPC-Information CRITICALITY reject EXTENSION CPC-Information PRESENCE optional}|
+ { ID id-Additional-HS-Cell-Information-RL-Reconf-Prep CRITICALITY reject EXTENSION Additional-HS-Cell-Information-RL-Reconf-Prep PRESENCE optional}|
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Reconf-Prep CRITICALITY reject EXTENSION Additional-EDCH-Cell-Information-RL-Reconf-Prep PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Reconf-Prep ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Reconf-Prep-ItemIEs
+
+Additional-HS-Cell-Information-RL-Reconf-Prep-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ c-ID C-ID OPTIONAL,
+ hS-DSCH-FDD-Secondary-Serving-Information HS-DSCH-FDD-Secondary-Serving-Information OPTIONAL,
+ hS-DSCH-Secondary-Serving-Information-To-Modify HS-DSCH-Secondary-Serving-Information-To-Modify OPTIONAL,
+ hS-HS-DSCH-Secondary-Serving-Remove HS-DSCH-Secondary-Serving-Remove OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Reconf-Prep-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Reconf-Prep-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Reconf-Prep ::=SEQUENCE{
+ setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency Setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-RL-Reconf-Prep-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Reconf-Prep-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ powerOffsetInformation PowerOffsetInformation-F-DPCH-RL-ReconfPrepFDD,
+ fdd-dl-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { F-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F-DPCH-Information-RL-ReconfPrepFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-F-DPCH-SlotFormatSupportRequest CRITICALITY reject EXTENSION F-DPCH-SlotFormatSupportRequest PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional},
+ ...
+}
+
+PowerOffsetInformation-F-DPCH-RL-ReconfPrepFDD ::= SEQUENCE {
+ po2-ForTPC-Bits PowerOffset,
+ --This IE shall be ignored by DRNS
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-F-DPCH-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-F-DPCH-RL-ReconfPrepFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION PREPARE TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationPrepareTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationPrepareTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationPrepareTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationPrepareTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-AllowedQueuingTime CRITICALITY reject TYPE AllowedQueuingTime PRESENCE optional } |
+ { ID id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD CRITICALITY notify TYPE UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional } |
+ { ID id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD CRITICALITY notify TYPE UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional } |
+ { ID id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD CRITICALITY notify TYPE UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD CRITICALITY notify TYPE DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD CRITICALITY notify TYPE DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD CRITICALITY notify 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-ModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE DSCH-ModifyList-RL-ReconfPrepTDD PRESENCE optional } |
+ { ID id-DSCHs-to-Add-TDD CRITICALITY reject TYPE DSCH-TDD-Information PRESENCE optional } |
+ { ID id-DSCH-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DSCH-DeleteList-RL-ReconfPrepTDD PRESENCE optional } |
+ { ID id-USCH-ModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE USCH-ModifyList-RL-ReconfPrepTDD PRESENCE optional } |
+ { ID id-USCHs-to-Add CRITICALITY reject TYPE USCH-Information PRESENCE optional } |
+ { ID id-USCH-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE USCH-DeleteList-RL-ReconfPrepTDD PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {UL-CCTrCH-AddInformation-RL-ReconfPrepTDD-IEs} }
+
+UL-CCTrCH-AddInformation-RL-ReconfPrepTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-AddInformation-RL-ReconfPrepTDD CRITICALITY notify TYPE UL-CCTrCH-AddInformation-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-CCTrCH-AddInformation-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-AddInformation-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-AddInformation-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional}|
+ -- This IE shall be mandatory for 1.28Mcps TDD, not applicable for 3.84Mcps TDD or 7.68Mcps TDD.
+{ ID id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, not applicable to 3.84Mcps TDD or 7.68Mcps TDD
+ ...
+}
+
+UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD-IEs} }
+
+UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD CRITICALITY notify TYPE UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ tFCI-Coding TFCI-Coding OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional}|
+ -- This IE shall be applicable for 1.28Mcps TDD only.
+{ ID id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD-IEs} }
+
+UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD CRITICALITY notify TYPE UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {DL-CCTrCH-AddInformation-RL-ReconfPrepTDD-IEs} }
+
+DL-CCTrCH-AddInformation-RL-ReconfPrepTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD CRITICALITY notify TYPE DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+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,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional },
+ ...
+}
+
+CCTrCH-TPCAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCAddItem-RL-ReconfPrepTDD
+
+CCTrCH-TPCAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCAddItem-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {DL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD-IEs} }
+
+DL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD CRITICALITY notify TYPE DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+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,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional},
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {DL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD-IEs} }
+
+DL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD CRITICALITY notify TYPE DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE(0..maxNoOfDSCHs)) OF DSCH-ModifyItem-RL-ReconfPrepTDD
+
+DSCH-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ dl-ccTrCHID CCTrCH-ID OPTIONAL,
+ trChSourceStatisticsDescriptor TrCH-SrcStatisticsDescr OPTIONAL,
+ transportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ bLER BLER OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { {DSCH-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-ModifyItem-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass 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.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+DSCH-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE(0..maxNoOfDSCHs)) OF DSCH-DeleteItem-RL-ReconfPrepTDD
+
+DSCH-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { {DSCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE(0..maxNoOfUSCHs)) OF USCH-ModifyItem-RL-ReconfPrepTDD
+
+USCH-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ ul-ccTrCHID CCTrCH-ID OPTIONAL,
+ trChSourceStatisticsDescriptor TrCH-SrcStatisticsDescr OPTIONAL,
+ transportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ bLER BLER OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ rb-Info RB-Info OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {USCH-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-ModifyItem-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TrafficClass CRITICALITY ignore EXTENSION TrafficClass 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.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+USCH-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE(0..maxNoOfUSCHs)) OF USCH-DeleteItem-RL-ReconfPrepTDD
+
+USCH-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ iE-Extensions ProtocolExtensionContainer { {USCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkReconfigurationPrepareTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PrimaryCCPCH-RSCP-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP PRESENCE optional }|
+ { ID id-DL-TimeSlot-ISCP-Info-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-TimeSlot-ISCP-Info PRESENCE optional }|
+ { ID id-DL-Timeslot-ISCP-LCR-Information-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-TimeSlot-ISCP-LCR-Information 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-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional}|
+ { ID id-PDSCH-RL-ID CRITICALITY ignore EXTENSION RL-ID 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 or 7.68Mcps TDD
+ { ID id-RL-Information-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION RL-Information-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-PrimaryCCPCH-RSCP-Delta CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP-Delta PRESENCE optional }|
+ { ID id-E-DCH-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-Information-Reconfig PRESENCE optional }|
+ { ID id-E-DCH-Serving-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-768-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-768-Information-Reconfig PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-LCR-Information-Reconfig PRESENCE optional }|
+ { ID id-NeedforIdleInterval CRITICALITY ignore EXTENSION NeedforIdleInterval PRESENCE optional }|
+ { ID id-CPC-InformationLCR CRITICALITY reject EXTENSION CPC-InformationLCR PRESENCE optional }|
+ { ID id-RNTI-Allocation-Indicator CRITICALITY ignore EXTENSION RNTI-Allocation-Indicator PRESENCE optional }|
+ { ID id-DCH-MeasurementType-Indicator CRITICALITY reject EXTENSION DCH-MeasurementType-Indicator PRESENCE optional},
+ ...
+}
+
+
+RL-Information-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF RL-InformationIE-RL-ReconfPrepTDD
+
+RL-InformationIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Specific-DCH-Info RL-Specific-DCH-Info OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationIE-RL-ReconfPrepTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION READY FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationReadyFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationReadyFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationReadyFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationReadyFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseList-RL-ReconfReadyFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-ReconfReadyFDD PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RL-InformationResponseList-RL-ReconfReadyFDD ::= SEQUENCE (SIZE (0..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationResponse-RL-ReconfReadyFDD-IEs} }
+
+RL-InformationResponse-RL-ReconfReadyFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-ReconfReadyFDD CRITICALITY ignore TYPE RL-InformationResponseItem-RL-ReconfReadyFDD PRESENCE mandatory }
+}
+
+RL-InformationResponseItem-RL-ReconfReadyFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ max-UL-SIR UL-SIR OPTIONAL,
+ min-UL-SIR UL-SIR OPTIONAL,
+ maximumDLTxPower DL-Power OPTIONAL,
+ minimumDLTxPower DL-Power OPTIONAL,
+ not-Used-secondary-CCPCH-Info NULL OPTIONAL,
+ dl-CodeInformationList DL-CodeInformationList-RL-ReconfReadyFDD OPTIONAL,
+ dCHInformationResponse DCH-InformationResponseList-RL-ReconfReadyFDD OPTIONAL,
+ not-Used-dSCHsToBeAddedOrModified NULL OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponseItem-RL-ReconfReadyFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-ReconfReadyFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-UpdatedIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-UpdatedIndicator 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 }|
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional }|
+ { ID id-EDCH-RLSet-Id CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-EDCH-FDD-DL-ControlChannelInformation CRITICALITY ignore EXTENSION EDCH-FDD-DL-ControlChannelInformation PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Info CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Info PRESENCE optional },
+...
+}
+
+DL-CodeInformationList-RL-ReconfReadyFDD ::= ProtocolIE-Single-Container {{ DL-CodeInformationListIEs-RL-ReconfReadyFDD }}
+
+DL-CodeInformationListIEs-RL-ReconfReadyFDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-FDD-DL-CodeInformation CRITICALITY ignore TYPE FDD-DL-CodeInformation PRESENCE mandatory }
+}
+
+DCH-InformationResponseList-RL-ReconfReadyFDD ::= ProtocolIE-Single-Container { {DCH-InformationResponseListIEs-RL-ReconfReadyFDD} }
+
+DCH-InformationResponseListIEs-RL-ReconfReadyFDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+RadioLinkReconfigurationReadyFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ { ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional }|
+ { ID id-Fast-Reconfiguration-Permission CRITICALITY ignore EXTENSION Fast-Reconfiguration-Permission PRESENCE optional }|
+ { ID id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response CRITICALITY ignore EXTENSION Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response PRESENCE optional }|
+ { ID id-Additional-HS-Cell-RL-Reconf-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-RL-Reconf-Response PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-ResponseRLReconf CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-RLReconf-List PRESENCE optional },
+ ...
+}
+
+
+Additional-HS-Cell-RL-Reconf-Response ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-RL-Reconf-Response-ItemIEs
+
+Additional-HS-Cell-RL-Reconf-Response-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ hSDSCH-RNTI HSDSCH-RNTI,
+ hS-DSCH-FDD-Secondary-Serving-Information-Response HS-DSCH-FDD-Secondary-Serving-Information-Response,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-RL-Reconf-Response-ItemIEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-RL-Reconf-Response-ItemIEs-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION READY TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationReadyTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationReadyTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationReadyTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationReadyTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponse-RL-ReconfReadyTDD
+ CRITICALITY ignore TYPE RL-InformationResponse-RL-ReconfReadyTDD PRESENCE optional } |
+ --This RL-InformationResponse-RL-ReconfReadyTDD is for the first RL repetition in the list.
+ --Repetitions 2 and on are defined in Multiple-RL-InformationResponse-RL-ReconfReadyTDD.
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RL-InformationResponse-RL-ReconfReadyTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ max-UL-SIR UL-SIR OPTIONAL,
+ min-UL-SIR UL-SIR OPTIONAL,
+ maximumDLTxPower DL-Power OPTIONAL,
+ minimumDLTxPower DL-Power OPTIONAL,
+ secondary-CCPCH-Info-TDD Secondary-CCPCH-Info-TDD OPTIONAL,
+ ul-CCTrCH-Information UL-CCTrCH-InformationList-RL-ReconfReadyTDD OPTIONAL,
+ dl-CCTrCH-Information DL-CCTrCH-InformationList-RL-ReconfReadyTDD OPTIONAL,
+ dCHInformationResponse DCH-InformationResponseList-RL-ReconfReadyTDD OPTIONAL,
+ dSCHsToBeAddedOrModified DSCHToBeAddedOrModified-RL-ReconfReadyTDD OPTIONAL,
+ uSCHsToBeAddedOrModified USCHToBeAddedOrModified-RL-ReconfReadyTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponse-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-TimingAdvanceCtrl-LCR CRITICALITY ignore EXTENSION UL-TimingAdvanceCtrl-LCR PRESENCE optional }|
+ --For 1.28Mcps TDD only
+ { ID id-secondary-LCR-CCPCH-Info-TDD CRITICALITY ignore EXTENSION Secondary-LCR-CCPCH-Info-TDD PRESENCE optional }|
+ --For 1.28Mcps TDD only
+ { ID id-secondary-CCPCH-Info-RL-ReconfReadyTDD768 CRITICALITY ignore EXTENSION Secondary-CCPCH-Info-TDD768 PRESENCE optional }|
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container {{UL-CCTrCHInformationListIEs-RL-ReconfReadyTDD}}
+
+UL-CCTrCHInformationListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationListIE-RL-ReconfReadyTDD CRITICALITY ignore TYPE UL-CCTrCHInformationListIE-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+UL-CCTrCHInformationListIE-RL-ReconfReadyTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationItem-RL-ReconfReadyTDD
+
+UL-CCTrCH-InformationItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ ul-DPCH-AddInformation UL-DPCH-InformationAddList-RL-ReconfReadyTDD OPTIONAL,
+ --For 3.84Mcps TDD only
+ ul-DPCH-ModifyInformation UL-DPCH-InformationModifyList-RL-ReconfReadyTDD OPTIONAL,
+ ul-DPCH-DeleteInformation UL-DPCH-InformationDeleteList-RL-ReconfReadyTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-InformationItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION UL-DPCH-LCR-InformationAddList-RL-ReconfReadyTDD PRESENCE optional }|
+ --For 1.28Mcps TDD only
+ { ID id-UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD768 CRITICALITY ignore EXTENSION UL-DPCH-InformationAddList-RL-ReconfReadyTDD768 PRESENCE optional },
+ --For 7.68Mcps TDD only
+ ...
+}
+
+UL-DPCH-LCR-InformationAddList-RL-ReconfReadyTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Info UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-LCR-InformationAddItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationAddItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationAddList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container {{UL-DPCH-InformationAddListIEs-RL-ReconfReadyTDD}}
+
+UL-DPCH-InformationAddListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD CRITICALITY ignore TYPE UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD PRESENCE optional }
+}
+
+UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ rxTimingDeviationForTA RxTimingDeviationForTA OPTIONAL,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationAddItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationAddItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RxTimingDeviationForTAext CRITICALITY ignore EXTENSION RxTimingDeviationForTAext PRESENCE optional },
+ ...
+}
+
+UL-DPCH-InformationAddList-RL-ReconfReadyTDD768 ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ rxTimingDeviationForTA768 RxTimingDeviationForTA768 OPTIONAL,
+ uL-Timeslot-Information768 UL-Timeslot-Information768,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationAddItem-RL-ReconfReadyTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationAddItem-RL-ReconfReadyTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationModifyList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container {{UL-DPCH-InformationModifyListIEs-RL-ReconfReadyTDD}}
+
+UL-DPCH-InformationModifyListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD CRITICALITY ignore TYPE UL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tDD-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ uL-Timeslot-InformationModifyList-RL-ReconfReadyTDD UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD OPTIONAL,
+ --For 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-Timeslot-LCR-InformationModifyList-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION UL-TimeslotLCR-InformationModifyList-RL-ReconfReadyTDD PRESENCE optional }|
+ --For 1.28Mcps TDD only
+ { ID id-UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768 CRITICALITY ignore EXTENSION UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768 PRESENCE optional },
+ --For 7.68Mcps TDD only
+...
+}
+
+UL-TimeslotLCR-InformationModifyList-RL-ReconfReadyTDD::= SEQUENCE ( SIZE (1..maxNrOfTsLCR)) OF UL-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD
+
+UL-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ tDD-uL-Code-LCR-Information TDD-UL-Code-LCR-InformationModifyList-RL-ReconfReadyTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-LCR-InformationModifyList-RL-ReconfReadyTDD::= SEQUENCE ( SIZE (1..maxNrOfDPCHsLCR)) OF TDD-UL-Code-LCR-InformationModifyItem-RL-ReconfReadyTDD
+
+TDD-UL-Code-LCR-InformationModifyItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tDD-ChannelisationCodeLCR TDD-ChannelisationCodeLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TDD-UL-Code-LCR-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-LCR-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-TDD-UL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD CRITICALITY reject EXTENSION TDD-UL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+UL-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF UL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD
+
+UL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-Information TDD-UL-Code-InformationModifyList-RL-ReconfReadyTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-InformationModifyList-RL-ReconfReadyTDD::= SEQUENCE ( SIZE (1..maxNrOfDPCHs)) OF TDD-UL-Code-InformationModifyItem-RL-ReconfReadyTDD
+
+TDD-UL-Code-InformationModifyItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TDD-UL-Code-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF UL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD768
+
+UL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD768 ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-Information768 TDD-UL-Code-InformationModifyList-RL-ReconfReadyTDD768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-InformationModifyList-RL-ReconfReadyTDD768::= SEQUENCE ( SIZE (1..maxNrOfDPCHs768)) OF TDD-UL-Code-InformationModifyItem-RL-ReconfReadyTDD768
+
+TDD-UL-Code-InformationModifyItem-RL-ReconfReadyTDD768 ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TDD-UL-Code-InformationModifyItem-RL-ReconfReadyTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-InformationModifyItem-RL-ReconfReadyTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UL-DPCH-InformationDeleteList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container {{UL-DPCH-InformationDeleteListIEs-RL-ReconfReadyTDD}}
+
+UL-DPCH-InformationDeleteListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD CRITICALITY ignore TYPE UL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD ::= SEQUENCE (SIZE (0..maxNrOfDPCHs)) OF UL-DPCH-InformationDeleteItem-RL-ReconfReadyTDD
+
+UL-DPCH-InformationDeleteItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationDeleteList-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationDeleteList-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container {{DL-CCTrCHInformationListIEs-RL-ReconfReadyTDD}}
+
+DL-CCTrCHInformationListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationListIE-RL-ReconfReadyTDD CRITICALITY ignore TYPE DL-CCTrCHInformationListIE-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+DL-CCTrCHInformationListIE-RL-ReconfReadyTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationItem-RL-ReconfReadyTDD
+
+DL-CCTrCH-InformationItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-AddInformation DL-DPCH-InformationAddList-RL-ReconfReadyTDD OPTIONAL,
+ --For 3.84Mcps TDD only
+ dl-DPCH-ModifyInformation DL-DPCH-InformationModifyList-RL-ReconfReadyTDD OPTIONAL,
+ dl-DPCH-DeleteInformation DL-DPCH-InformationDeleteList-RL-ReconfReadyTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-InformationItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationAddListIE-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION DL-DPCH-LCR-InformationAddList-RL-ReconfReadyTDD PRESENCE optional}|
+ --For 1.28Mcps TDD only
+ { ID id-CCTrCH-Maximum-DL-Power-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD and 7.68Mcps TDD only, this is a DCH type CCTrCH power
+ { ID id-CCTrCH-Minimum-DL-Power-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD and 7.68Mcps TDD only, this is a DCH type CCTrCH power
+ { ID id-DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD768 CRITICALITY ignore EXTENSION DL-DPCH-InformationAddList-RL-ReconfReadyTDD768 PRESENCE optional}|
+ --For 7.68Mcps TDD only
+ { ID id-DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD PRESENCE optional},
+ ...
+}
+
+DL-DPCH-LCR-InformationAddList-RL-ReconfReadyTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-TimeslotLCR-Info DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-LCR-InformationAddItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationAddItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationAddList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container {{DL-DPCH-InformationAddListIEs-RL-ReconfReadyTDD}}
+
+DL-DPCH-InformationAddListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD CRITICALITY ignore TYPE DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationAddItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationAddItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationAddList-RL-ReconfReadyTDD768 ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tDD-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information768 DL-Timeslot-Information768,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationAddItem-RL-ReconfReadyTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationAddItem-RL-ReconfReadyTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationModifyList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container {{DL-DPCH-InformationModifyListIEs-RL-ReconfReadyTDD}}
+
+DL-DPCH-InformationModifyListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD CRITICALITY ignore TYPE DL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tDD-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ dL-Timeslot-InformationModifyList-RL-ReconfReadyTDD DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD OPTIONAL,
+ --For 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-Timeslot-LCR-InformationModifyList-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION DL-TimeslotLCR-InformationModifyList-RL-ReconfReadyTDD PRESENCE optional }|
+ --For 1.28Mcps TDD only
+ { ID id-DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768 CRITICALITY ignore EXTENSION DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768 PRESENCE optional },
+ --For 7.68Mcps TDD only
+ ...
+}
+
+DL-TimeslotLCR-InformationModifyList-RL-ReconfReadyTDD::= SEQUENCE ( SIZE (1..maxNrOfTsLCR)) OF DL-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD
+
+DL-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ tDD-dL-Code-LCR-Information TDD-DL-Code-LCR-InformationModifyList-RL-ReconfReadyTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-LCR-InformationModifyList-RL-ReconfReadyTDD::= SEQUENCE ( SIZE (1..maxNrOfDPCHsLCR)) OF TDD-DL-Code-LCR-InformationModifyItem-RL-ReconfReadyTDD
+
+TDD-DL-Code-LCR-InformationModifyItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tDD-ChannelisationCodeLCR TDD-ChannelisationCodeLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TDD-DL-Code-LCR-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-LCR-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TDD-DL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD CRITICALITY reject EXTENSION TDD-DL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+DL-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Maximum-DL-Power-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-Minimum-DL-Power-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF DL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD
+
+DL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-Information TDD-DL-Code-InformationModifyList-RL-ReconfReadyTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-InformationModifyList-RL-ReconfReadyTDD::= SEQUENCE ( SIZE (1..maxNrOfDPCHs)) OF TDD-DL-Code-InformationModifyItem-RL-ReconfReadyTDD
+
+TDD-DL-Code-InformationModifyItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TDD-DL-Code-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-InformationModifyItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TDD-DL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD CRITICALITY reject EXTENSION TDD-DL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ -- This IE shall not be used
+ ...
+}
+
+DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF DL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD768
+
+DL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD768 ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-Information768 TDD-DL-Code-InformationModifyList-RL-ReconfReadyTDD768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationModifyItem-RL-ReconfReadyTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-InformationModifyList-RL-ReconfReadyTDD768::= SEQUENCE ( SIZE (1..maxNrOfDPCHs768)) OF TDD-DL-Code-InformationModifyItem-RL-ReconfReadyTDD768
+
+TDD-DL-Code-InformationModifyItem-RL-ReconfReadyTDD768 ::= SEQUENCE {
+ dPCH-ID768 DPCH-ID768,
+ tDD-ChannelisationCode768 TDD-ChannelisationCode768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TDD-DL-Code-InformationModifyItem-RL-ReconfReadyTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-InformationModifyItem-RL-ReconfReadyTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationDeleteList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container {{DL-DPCH-InformationDeleteListIEs-RL-ReconfReadyTDD}}
+
+DL-DPCH-InformationDeleteListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD CRITICALITY ignore TYPE DL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD ::= SEQUENCE (SIZE (0..maxNrOfDPCHs)) OF DL-DPCH-InformationDeleteItem-RL-ReconfReadyTDD
+
+DL-DPCH-InformationDeleteItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationDeleteList-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationDeleteList-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD ::= SEQUENCE (SIZE (0..maxNrOfDPCHs768)) OF DL-DPCH-InformationDeleteItem768-RL-ReconfReadyTDD
+
+DL-DPCH-InformationDeleteItem768-RL-ReconfReadyTDD ::= SEQUENCE {
+ dPCH-ID768 DPCH-ID768,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container { {DCH-InformationResponseListIEs-RL-ReconfReadyTDD} }
+
+DCH-InformationResponseListIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+DSCHToBeAddedOrModified-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container { {DSCHToBeAddedOrModifiedIEs-RL-ReconfReadyTDD} }
+
+DSCHToBeAddedOrModifiedIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DSCHToBeAddedOrModifiedList-RL-ReconfReadyTDD CRITICALITY ignore TYPE DSCHToBeAddedOrModifiedList-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+DSCHToBeAddedOrModifiedList-RL-ReconfReadyTDD ::= SEQUENCE (SIZE (0..maxNoOfDSCHs)) OF DSCHToBeAddedOrModifiedItem-RL-ReconfReadyTDD
+
+DSCHToBeAddedOrModifiedItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ dsch-ID DSCH-ID,
+ transportFormatManagement TransportFormatManagement,
+ dSCH-FlowControlInformation DSCH-FlowControlInformation,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DSCHToBeAddedOrModifiedItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCHToBeAddedOrModifiedItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCHToBeAddedOrModified-RL-ReconfReadyTDD ::= ProtocolIE-Single-Container { {USCHToBeAddedOrModifiedIEs-RL-ReconfReadyTDD} }USCHToBeAddedOrModifiedIEs-RL-ReconfReadyTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-USCHToBeAddedOrModifiedList-RL-ReconfReadyTDD CRITICALITY ignore TYPE USCHToBeAddedOrModifiedList-RL-ReconfReadyTDD PRESENCE mandatory }
+}
+
+USCHToBeAddedOrModifiedList-RL-ReconfReadyTDD ::= SEQUENCE (SIZE (0..maxNoOfUSCHs)) OF USCHToBeAddedOrModifiedItem-RL-ReconfReadyTDD
+
+USCHToBeAddedOrModifiedItem-RL-ReconfReadyTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ transportFormatManagement TransportFormatManagement,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {USCHToBeAddedOrModifiedItem-RL-ReconfReadyTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCHToBeAddedOrModifiedItem-RL-ReconfReadyTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkReconfigurationReadyTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-DSCH-RNTI CRITICALITY ignore EXTENSION DSCH-RNTI PRESENCE optional }|
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional }|
+ { ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional }|
+ { ID id-Multiple-RL-InformationResponse-RL-ReconfReadyTDD CRITICALITY ignore EXTENSION Multiple-RL-InformationResponse-RL-ReconfReadyTDD PRESENCE optional}|
+-- This is for RL repetitions 2 and on in RL list.
+ { ID id-E-DCH-Information-Response CRITICALITY ignore EXTENSION E-DCH-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-768-Information-Response CRITICALITY ignore EXTENSION E-DCH-768-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information-Response CRITICALITY ignore EXTENSION E-DCH-LCR-Information-Response PRESENCE optional }|
+ { ID id-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-IdleIntervalInformation CRITICALITY ignore EXTENSION IdleIntervalInformation PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional}|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION E-DCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional}|
+ { ID id-E-RNTI-For-FACH CRITICALITY ignore EXTENSION E-RNTI PRESENCE optional }|
+ { ID id-H-RNTI-For-FACH CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-DCH-MeasurementOccasion-Information CRITICALITY reject EXTENSION DCH-MeasurementOccasion-Information PRESENCE optional },
+ ...
+}
+
+Multiple-RL-InformationResponse-RL-ReconfReadyTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF RL-InformationResponse-RL-ReconfReadyTDD
+
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION COMMIT
+--
+-- **************************************************************
+
+RadioLinkReconfigurationCommit ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationCommit-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationCommit-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationCommit-IEs RNSAP-PROTOCOL-IES ::= {
+ { 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Fast-Reconfiguration-Mode CRITICALITY reject EXTENSION Fast-Reconfiguration-Mode PRESENCE optional },--FDD only
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+RadioLinkReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationFailure-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-RL-ReconfFailure CRITICALITY ignore TYPE CauseLevel-RL-ReconfFailure PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+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 RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-ReconfigurationFailureList-RL-ReconfFailure ::= SEQUENCE (SIZE (0..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-ReconfigurationFailure-RL-ReconfFailure-IEs} }
+
+RL-ReconfigurationFailure-RL-ReconfFailure-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-ReconfigurationFailure-RL-ReconfFail CRITICALITY ignore TYPE RL-ReconfigurationFailure-RL-ReconfFail PRESENCE mandatory }
+}
+
+RL-ReconfigurationFailure-RL-ReconfFail ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RL-ReconfigurationFailure-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-ReconfigurationFailure-RL-ReconfFailure-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Max-UE-DTX-Cycle CRITICALITY ignore EXTENSION Max-UE-DTX-Cycle PRESENCE conditional },
+ -- This IE shall be present if the Cause IE is set to "Continuous Packet Connectivity UE DTX Cycle not Available".
+ ...
+}
+
+RadioLinkReconfigurationFailure-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION CANCEL
+--
+-- **************************************************************
+
+RadioLinkReconfigurationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationCancel-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationCancel-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationCancel-IEs RNSAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RadioLinkReconfigurationCancel-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationRequestFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-AllowedQueuingTime CRITICALITY reject TYPE AllowedQueuingTime PRESENCE optional } |
+ { 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-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ tFCS TFCS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPDCHIndicatorEDCH CRITICALITY reject EXTENSION UL-DPDCHIndicatorEDCH PRESENCE optional },
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ 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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfRqstFDD ::= SEQUENCE (SIZE (0..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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkReconfigurationRequestFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-ReconfigurationRequestFDD-RL-InformationList CRITICALITY ignore EXTENSION RL-ReconfigurationRequestFDD-RL-InformationList PRESENCE optional}|
+ { ID id-DL-ReferencePowerInformation CRITICALITY ignore EXTENSION DL-ReferencePowerInformation 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-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional}|
+ { ID id-EDPCH-Information-RLReconfRequest-FDD CRITICALITY reject EXTENSION EDPCH-Information-RLReconfRequest-FDD PRESENCE optional}|
+ { ID id-EDCH-FDD-Information CRITICALITY reject EXTENSION EDCH-FDD-Information PRESENCE optional}|
+ { ID id-EDCH-FDD-Information-To-Modify CRITICALITY reject EXTENSION EDCH-FDD-Information-To-Modify PRESENCE optional}|
+ { ID id-EDCH-MACdFlows-To-Add CRITICALITY reject EXTENSION EDCH-MACdFlows-Information PRESENCE optional}|
+ { ID id-EDCH-MACdFlows-To-Delete CRITICALITY reject EXTENSION EDCH-MACdFlows-To-Delete PRESENCE optional}|
+ { ID id-Serving-EDCHRL-Id CRITICALITY reject EXTENSION EDCH-Serving-RL PRESENCE optional}|
+ { ID id-CPC-Information CRITICALITY reject EXTENSION CPC-Information PRESENCE optional}|
+ { ID id-NoOfTargetCellHS-SCCH-Order CRITICALITY ignore EXTENSION NoOfTargetCellHS-SCCH-Order PRESENCE optional}|
+ { ID id-Additional-HS-Cell-Information-RL-Reconf-Req CRITICALITY reject EXTENSION Additional-HS-Cell-Information-RL-Reconf-Req PRESENCE optional}|
+ { ID id-UE-AggregateMaximumBitRate CRITICALITY ignore EXTENSION UE-AggregateMaximumBitRate PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Reconf-Req CRITICALITY reject EXTENSION Additional-EDCH-Cell-Information-RL-Reconf-Req PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Reconf-Req ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Reconf-Req-ItemIEs
+
+Additional-HS-Cell-Information-RL-Reconf-Req-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ c-ID C-ID OPTIONAL,
+ hS-DSCH-FDD-Secondary-Serving-Information HS-DSCH-FDD-Secondary-Serving-Information OPTIONAL,
+ hS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised HS-DSCH-FDD-Secondary-Serving-Information-To-Modify-Unsynchronised OPTIONAL,
+ hS-DSCH-Secondary-Serving-Remove HS-DSCH-Secondary-Serving-Remove OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Reconf-Req-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Reconf-Req-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Reconf-Req ::=SEQUENCE{
+ setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency Setup-Or-ConfigurationChange-Or-Removal-Of-EDCH-On-secondary-UL-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-Cell-Information-RL-Reconf-Req-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Reconf-Req-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-ReconfigurationRequestFDD-RL-InformationList ::= SEQUENCE (SIZE (0..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ {RL-ReconfigurationRequestFDD-RL-Information-ListItem} }
+
+RL-ReconfigurationRequestFDD-RL-Information-ListItem RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-ReconfigurationRequestFDD-RL-Information-IEs CRITICALITY ignore TYPE RL-ReconfigurationRequestFDD-RL-Information-IEs PRESENCE optional }
+}
+
+RL-ReconfigurationRequestFDD-RL-Information-IEs ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Specific-DCH-Info RL-Specific-DCH-Info OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-ReconfigurationRequestFDD-RL-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-ReconfigurationRequestFDD-RL-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-Specific-EDCH-Information CRITICALITY reject EXTENSION RL-Specific-EDCH-Information PRESENCE optional }|
+ { ID id-EDCH-RL-Indication CRITICALITY reject EXTENSION EDCH-RL-Indication PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationSetup CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationSetup PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Setup CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Setup PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Removal CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Setup PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationRequestTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-AllowedQueuingTime CRITICALITY reject TYPE AllowedQueuingTime PRESENCE optional } |
+ { 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 },
+ ...
+}
+
+UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD-IEs} }
+
+UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD-IEs RNSAP-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,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs RNSAP-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 (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD-IEs} }
+
+UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD-IEs} }
+
+DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD-IEs RNSAP-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,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (0..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container { {DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD-IEs} }
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE(0..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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkReconfigurationRequestTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+{ ID id-RL-ReconfigurationRequestTDD-RL-Information CRITICALITY ignore EXTENSION Multiple-RL-ReconfigurationRequestTDD-RL-Information PRESENCE optional}|
+ { 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-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional}|
+ { ID id-E-DCH-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-Information-Reconfig PRESENCE optional }|
+ { ID id-E-DCH-Serving-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-E-DCH-768-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-768-Information-Reconfig PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information-Reconfig CRITICALITY reject EXTENSION E-DCH-LCR-Information-Reconfig PRESENCE optional }|
+ { ID id-CPC-InformationLCR CRITICALITY reject EXTENSION CPC-InformationLCR PRESENCE optional }|
+ { ID id-RNTI-Allocation-Indicator CRITICALITY ignore EXTENSION RNTI-Allocation-Indicator PRESENCE optional }|
+ { ID id-DCH-MeasurementType-Indicator CRITICALITY reject EXTENSION DCH-MeasurementType-Indicator PRESENCE optional},
+ ...
+}
+
+Multiple-RL-ReconfigurationRequestTDD-RL-Information ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF RL-ReconfigurationRequestTDD-RL-Information
+
+RL-ReconfigurationRequestTDD-RL-Information ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Specific-DCH-Info RL-Specific-DCH-Info OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-ReconfigurationRequestTDD-RL-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-ReconfigurationRequestTDD-RL-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { 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 or 7.68Mcps TDD
+ { ID id-NeedforIdleInterval CRITICALITY ignore EXTENSION NeedforIdleInterval PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationResponseFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseList-RL-ReconfRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-ReconfRspFDD PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RL-InformationResponseList-RL-ReconfRspFDD ::= SEQUENCE (SIZE (0..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationResponse-RL-ReconfRspFDD-IEs} }
+
+RL-InformationResponse-RL-ReconfRspFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-ReconfRspFDD CRITICALITY ignore TYPE RL-InformationResponseItem-RL-ReconfRspFDD PRESENCE mandatory }
+}
+
+RL-InformationResponseItem-RL-ReconfRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ max-UL-SIR UL-SIR OPTIONAL,
+ min-UL-SIR UL-SIR OPTIONAL,
+ maximumDLTxPower DL-Power OPTIONAL,
+ minimumDLTxPower DL-Power OPTIONAL,
+ not-Used-secondary-CCPCH-Info NULL OPTIONAL,
+ dCHsInformationResponseList DCH-InformationResponseList-RL-ReconfRspFDD OPTIONAL,
+ dL-CodeInformationList-RL-ReconfResp DL-CodeInformationList-RL-ReconfRspFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponseItem-RL-ReconfRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-ReconfRspFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-UpdatedIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-UpdatedIndicator PRESENCE optional }|
+ { ID id-EDCH-FDD-InformationResponse CRITICALITY ignore EXTENSION EDCH-FDD-InformationResponse PRESENCE optional }|
+ { ID id-EDCH-RLSet-Id CRITICALITY ignore EXTENSION RL-Set-ID PRESENCE optional }|
+ { ID id-EDCH-FDD-DL-ControlChannelInformation CRITICALITY ignore EXTENSION EDCH-FDD-DL-ControlChannelInformation PRESENCE optional }|
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional }|
+ { ID id-HSDSCH-PreconfigurationInfo CRITICALITY ignore EXTENSION HSDSCH-PreconfigurationInfo PRESENCE optional }|
+ { ID id-Non-Serving-RL-Preconfig-Info CRITICALITY ignore EXTENSION Non-Serving-RL-Preconfig-Info PRESENCE optional },
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfRspFDD ::= ProtocolIE-Single-Container { {DCH-InformationResponseListIEs-RL-ReconfRspFDD} }
+
+DCH-InformationResponseListIEs-RL-ReconfRspFDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+DL-CodeInformationList-RL-ReconfRspFDD ::= ProtocolIE-Single-Container {{ DL-CodeInformationListIEs-RL-ReconfRspFDD }}
+
+DL-CodeInformationListIEs-RL-ReconfRspFDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-FDD-DL-CodeInformation CRITICALITY ignore TYPE FDD-DL-CodeInformation PRESENCE optional }
+}
+
+RadioLinkReconfigurationResponseFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ { ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional }|
+ { ID id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response CRITICALITY ignore EXTENSION Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-Response CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-Response-List PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-ResponseRLReconf CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-Response-RLReconf-List PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationResponseTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponse-RL-ReconfRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-ReconfRspTDD PRESENCE optional } |
+ --This RL-InformationResponse-RL-ReconfRspTDD is for the first RL repetition in the list.
+ --Repetitions 2 and on are defined in Multiple-RL-InformationResponse-RL-ReconfRspTDD.
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RL-InformationResponse-RL-ReconfRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ max-UL-SIR UL-SIR OPTIONAL,
+ min-UL-SIR UL-SIR OPTIONAL,
+ maximumDLTxPower DL-Power OPTIONAL,
+ minimumDLTxPower DL-Power OPTIONAL,
+ dCHsInformationResponseList DCH-InformationResponseList-RL-ReconfRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationResponse-RL-ReconfRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-ReconfRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-CCTrCH-InformationList-RL-ReconfRspTDD CRITICALITY ignore EXTENSION DL-CCTrCH-InformationList-RL-ReconfRspTDD PRESENCE optional }|
+ { ID id-UL-TimingAdvanceCtrl-LCR CRITICALITY ignore EXTENSION UL-TimingAdvanceCtrl-LCR PRESENCE optional },
+ --For 1.28Mcps TDD only
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-ReconfRspTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationItem-RL-ReconfRspTDD
+
+DL-CCTrCH-InformationItem-RL-ReconfRspTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-ModifyInformation-LCR DL-DPCH-InformationModifyList-LCR-RL-ReconfRspTDD OPTIONAL,
+ --For 1.28Mcps TDD only
+ cCTrCH-Maximum-DL-Power DL-Power OPTIONAL,
+ --For 3.84Mcps TDD and 7.68Mcps TDD only, this is a DCH type CCTrCH power
+ cCTrCH-Minimum-DL-Power DL-Power OPTIONAL,
+ --For 3.84Mcps TDD and 7.68Mcps TDD only, this is a DCH type CCTrCH power
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationItem-RL-ReconfRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-ReconfRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationModifyList-LCR-RL-ReconfRspTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModifyListIEs-LCR-RL-ReconfRspTDD }}
+
+DL-DPCH-InformationModifyListIEs-LCR-RL-ReconfRspTDD RNSAP-PROTOCOL-IES ::= {
+ {ID id-DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD CRITICALITY ignore TYPE DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD PRESENCE optional },
+ ...
+}
+
+DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD ::= SEQUENCE {
+ dL-Timeslot-LCR-InformationModifyList-RL-ReconfRqstTDD DL-Timeslot-LCR-InformationModifyList-RL-ReconfRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModifyList-RL-ReconfRspTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTsLCR)) OF DL-Timeslot-LCR-InformationModifyItem-RL-ReconfRspTDD
+
+DL-Timeslot-LCR-InformationModifyItem-RL-ReconfRspTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ maxPowerLCR DL-Power OPTIONAL,
+ minPowerLCR DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModifyItem-RL-ReconfRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModifyItem-RL-ReconfRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfRspTDD ::= ProtocolIE-Single-Container { {DCH-InformationResponseListIEs-RL-ReconfRspTDD} }
+
+DCH-InformationResponseListIEs-RL-ReconfRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE optional }
+}
+
+RadioLinkReconfigurationResponseTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional }|
+ { ID id-MAChs-ResetIndicator CRITICALITY ignore EXTENSION MAChs-ResetIndicator PRESENCE optional }|
+ { ID id-RL-ReconfigurationResponseTDD-RL-Information CRITICALITY ignore EXTENSION Multiple-RL-InformationResponse-RL-ReconfRspTDD PRESENCE optional}|
+ { ID id-E-DCH-Information-Response CRITICALITY ignore EXTENSION E-DCH-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-768-Information-Response CRITICALITY ignore EXTENSION E-DCH-768-Information-Response PRESENCE optional }|
+ { ID id-E-DCH-LCR-Information-Response CRITICALITY ignore EXTENSION E-DCH-LCR-Information-Response PRESENCE optional }|
+ { ID id-PowerControlGAP CRITICALITY ignore EXTENSION ControlGAP PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-IdleIntervalInformation CRITICALITY ignore EXTENSION IdleIntervalInformation PRESENCE optional }|
+ { ID id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR CRITICALITY ignore EXTENSION ContinuousPacketConnectivity-DRX-Information-ResponseLCR PRESENCE optional }|
+ { ID id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional}|
+ { ID id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR CRITICALITY ignore EXTENSION E-DCH-Semi-PersistentScheduling-Information-ResponseLCR PRESENCE optional}|
+ { ID id-E-RNTI-For-FACH CRITICALITY ignore EXTENSION E-RNTI PRESENCE optional }|
+ { ID id-H-RNTI-For-FACH CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-DCH-MeasurementOccasion-Information CRITICALITY reject EXTENSION DCH-MeasurementOccasion-Information PRESENCE optional },
+ ...
+}
+
+Multiple-RL-InformationResponse-RL-ReconfRspTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF RL-InformationResponse-RL-ReconfRspTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+-- **************************************************************
+--
+-- RADIO LINK FAILURE INDICATION
+--
+-- **************************************************************
+
+RadioLinkFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkFailureIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Reporting-Object-RL-FailureInd CRITICALITY ignore TYPE Reporting-Object-RL-FailureInd PRESENCE mandatory },
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Information-RL-FailureInd-IEs} }
+
+RL-Information-RL-FailureInd-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Information-RL-FailureInd CRITICALITY ignore TYPE RL-Information-RL-FailureInd PRESENCE mandatory }
+}
+
+RL-Information-RL-FailureInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-RL-FailureInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-FailureInd-ExtIEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container { {RL-Set-Information-RL-FailureInd-IEs} }
+
+RL-Set-Information-RL-FailureInd-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-Information-RL-FailureInd CRITICALITY ignore TYPE RL-Set-Information-RL-FailureInd PRESENCE mandatory }
+}
+
+RL-Set-Information-RL-FailureInd ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RL-Set-Information-RL-FailureInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-Information-RL-FailureInd-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkFailureIndication-Extensions RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ CCTrCH-InformationItemIE-RL-FailureInd}}
+
+CCTrCH-InformationItemIE-RL-FailureInd RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PREEMPTION REQUIRED INDICATION
+--
+-- **************************************************************
+
+RadioLinkPreemptionRequiredIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkPreemptionRequiredIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkPreemptionRequiredIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkPreemptionRequiredIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationList-RL-PreemptRequiredInd CRITICALITY ignore TYPE RL-InformationList-RL-PreemptRequiredInd PRESENCE optional },
+ ...
+}
+
+RL-InformationList-RL-PreemptRequiredInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationItemIEs-RL-PreemptRequiredInd} }
+
+RL-InformationItemIEs-RL-PreemptRequiredInd RNSAP-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-Information-RL-PreemptRequiredInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-PreemptRequiredInd-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-EDCH-MacdFlowSpecificInformationList-RL-PreemptRequiredInd CRITICALITY ignore EXTENSION EDCH-MacdFlowSpecificInformationList-RL-PreemptRequiredInd PRESENCE optional },
+ ...
+}
+
+RadioLinkPreemptionRequiredIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCHMacdFlowSpecificInformationList-RL-PreemptRequiredInd CRITICALITY ignore EXTENSION HSDSCHMacdFlowSpecificInformationList-RL-PreemptRequiredInd PRESENCE optional },
+ ...
+}
+
+HSDSCHMacdFlowSpecificInformationList-RL-PreemptRequiredInd ::= SEQUENCE (SIZE (1.. maxNrOfMACdFlows)) OF ProtocolIE-Single-Container { {HSDSCHMacdFlowSpecificInformationItemIEs-RL-PreemptRequiredInd} }
+
+HSDSCHMacdFlowSpecificInformationItemIEs-RL-PreemptRequiredInd RNSAP-PROTOCOL-IES ::= {
+ { ID id-HSDSCHMacdFlowSpecificInformationItem-RL-PreemptRequiredInd CRITICALITY ignore TYPE HSDSCHMacdFlowSpecificInformationItem-RL-PreemptRequiredInd PRESENCE mandatory }
+}
+
+HSDSCHMacdFlowSpecificInformationItem-RL-PreemptRequiredInd ::= SEQUENCE {
+ hSDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCHMacdFlowSpecificInformation-RL-PreemptRequiredInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCHMacdFlowSpecificInformation-RL-PreemptRequiredInd-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-MacdFlowSpecificInformationList-RL-PreemptRequiredInd ::= SEQUENCE (SIZE (1.. maxNrOfEDCHMACdFlows)) OF ProtocolIE-Single-Container { {EDCH-MacdFlowSpecificInformationItemIEs-RL-PreemptRequiredInd} }
+
+EDCH-MacdFlowSpecificInformationItemIEs-RL-PreemptRequiredInd RNSAP-PROTOCOL-IES ::= {
+ { ID id-EDCH-MacdFlowSpecificInformationItem-RL-PreemptRequiredInd CRITICALITY ignore TYPE EDCH-MacdFlowSpecificInformationItem-RL-PreemptRequiredInd PRESENCE mandatory }
+}
+
+EDCH-MacdFlowSpecificInformationItem-RL-PreemptRequiredInd ::= SEQUENCE {
+ eDCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-MacdFlowSpecificInformation-RL-PreemptRequiredInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-MacdFlowSpecificInformation-RL-PreemptRequiredInd-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK RESTORE INDICATION
+--
+-- **************************************************************
+
+RadioLinkRestoreIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkRestoreIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkRestoreIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkRestoreIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Reporing-Object-RL-RestoreInd CRITICALITY ignore TYPE Reporting-Object-RL-RestoreInd PRESENCE mandatory },
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Information-RL-RestoreInd-IEs} }
+
+RL-Information-RL-RestoreInd-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Information-RL-RestoreInd CRITICALITY ignore TYPE RL-Information-RL-RestoreInd PRESENCE mandatory }
+}
+
+RL-Information-RL-RestoreInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-RL-RestoreInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-RestoreInd-ExtIEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container { {RL-Set-Information-RL-RestoreInd-IEs} }
+
+RL-Set-Information-RL-RestoreInd-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-Information-RL-RestoreInd CRITICALITY ignore TYPE RL-Set-Information-RL-RestoreInd PRESENCE mandatory }
+}
+
+RL-Set-Information-RL-RestoreInd ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ iE-Extensions ProtocolExtensionContainer { {RL-Set-Information-RL-RestoreInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-Information-RL-RestoreInd-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkRestoreIndication-Extensions RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ CCTrCH-InformationItemIE-RL-RestoreInd}}
+
+CCTrCH-InformationItemIE-RL-RestoreInd RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK POWER CONTROL REQUEST
+--
+-- **************************************************************
+
+DL-PowerControlRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DL-PowerControlRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DL-PowerControlRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DL-PowerControlRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { 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 Power Adjustment Type IE equals 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 Power Adjustment Type IE equals to 'Individual'
+ { ID id-MaxAdjustmentStep CRITICALITY ignore TYPE MaxAdjustmentStep PRESENCE conditional } |
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ { ID id-AdjustmentPeriod CRITICALITY ignore TYPE AdjustmentPeriod PRESENCE conditional }|
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ { ID id-AdjustmentRatio CRITICALITY ignore TYPE ScaledAdjustmentRatio PRESENCE conditional },
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ ...
+}
+
+DL-ReferencePowerInformationList-DL-PC-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {DL-ReferencePowerInformation-DL-PC-Rqst-IEs} }
+
+DL-ReferencePowerInformation-DL-PC-Rqst-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-ReferencePowerInformation-DL-PC-Rqst CRITICALITY ignore TYPE DL-ReferencePowerInformation-DL-PC-Rqst PRESENCE mandatory }
+}
+
+DL-ReferencePowerInformation-DL-PC-Rqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-Reference-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { {DL-ReferencePowerInformation-DL-PC-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-ReferencePowerInformation-DL-PC-Rqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-PowerControlRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK POWER TIMESLOT CONTROL REQUEST TDD
+--
+-- **************************************************************
+
+DL-PowerTimeslotControlRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DL-PowerTimeslotControlRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DL-PowerTimeslotControlRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DL-PowerTimeslotControlRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-timeSlot-ISCP CRITICALITY ignore TYPE DL-TimeSlot-ISCP-Info PRESENCE optional},
+ --Mandatory for 3.84Mcps TDD and 7.68 Mcps TDD only
+ ...
+}
+
+DL-PowerTimeslotControlRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-timeSlot-ISCP-LCR-List-DL-PC-Rqst-TDD CRITICALITY ignore EXTENSION DL-TimeSlot-ISCP-LCR-Information PRESENCE optional}|
+ --Mandatory for 1.28Mcps TDD only
+ { 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 },
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL CHANNEL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+PhysicalChannelReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalChannelReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalChannelReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalChannelReconfigurationRequestFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Information-PhyChReconfRqstFDD CRITICALITY reject TYPE RL-Information-PhyChReconfRqstFDD PRESENCE mandatory },
+ ...
+}
+
+RL-Information-PhyChReconfRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-CodeInformation DL-CodeInformationList-PhyChReconfRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-PhyChReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-PhyChReconfRqstFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-F-DPCH-SlotFormat CRITICALITY ignore EXTENSION F-DPCH-SlotFormat PRESENCE optional},
+ ...
+}
+
+DL-CodeInformationList-PhyChReconfRqstFDD ::= ProtocolIE-Single-Container { {DL-CodeInformationListIEs-PhyChReconfRqstFDD} }
+
+DL-CodeInformationListIEs-PhyChReconfRqstFDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-FDD-DL-CodeInformation CRITICALITY notify TYPE FDD-DL-CodeInformation PRESENCE mandatory }
+}
+
+PhysicalChannelReconfigurationRequestFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL CHANNEL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+PhysicalChannelReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalChannelReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalChannelReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalChannelReconfigurationRequestTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Information-PhyChReconfRqstTDD CRITICALITY reject TYPE RL-Information-PhyChReconfRqstTDD PRESENCE mandatory },
+ ...
+}
+
+RL-Information-PhyChReconfRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ ul-CCTrCH-Information UL-CCTrCH-InformationList-PhyChReconfRqstTDD OPTIONAL,
+ dl-CCTrCH-Information DL-CCTrCH-InformationList-PhyChReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD CRITICALITY reject EXTENSION HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD PRESENCE optional } |
+ --For 3.84Mcps TDD only
+ { ID id-HSPDSCH-Timeslot-InformationListLCR-PhyChReconfRqstTDD CRITICALITY reject EXTENSION HSPDSCH-Timeslot-InformationListLCR-PhyChReconfRqstTDD PRESENCE optional }|
+ --For 1.28Mcps TDD only
+ { ID id-HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD768 CRITICALITY reject EXTENSION HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD768 PRESENCE optional }|
+ --For 7.68Mcps TDD only
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-CCTrCH-InformationList-PhyChReconfRqstTDD ::= ProtocolIE-Single-Container { {UL-CCTrCH-InformationListIEs-PhyChReconfRqstTDD} }
+
+UL-CCTrCH-InformationListIEs-PhyChReconfRqstTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationListIE-PhyChReconfRqstTDD CRITICALITY reject TYPE UL-CCTrCH-InformationListIE-PhyChReconfRqstTDD PRESENCE mandatory }
+}
+
+UL-CCTrCH-InformationListIE-PhyChReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationItem-PhyChReconfRqstTDD
+
+UL-CCTrCH-InformationItem-PhyChReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ ul-DPCH-Information UL-DPCH-InformationList-PhyChReconfRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { {UL-CCTrCH-InformationItem-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationList-PhyChReconfRqstTDD ::= ProtocolIE-Single-Container {{UL-DPCH-InformationListIEs-PhyChReconfRqstTDD}}
+
+UL-DPCH-InformationListIEs-PhyChReconfRqstTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationItem-PhyChReconfRqstTDD CRITICALITY notify TYPE UL-DPCH-InformationItem-PhyChReconfRqstTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationItem-PhyChReconfRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tDD-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ uL-Timeslot-InformationList-PhyChReconfRqstTDD UL-Timeslot-InformationList-PhyChReconfRqstTDD OPTIONAL,
+ --For 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { {UL-DPCH-InformationItem-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-Timeslot-LCR-InformationList-PhyChReconfRqstTDD CRITICALITY reject EXTENSION UL-TimeslotLCR-InformationList-PhyChReconfRqstTDD PRESENCE optional }|
+ --For 1.28Mcps TDD only
+ { ID id-UL-Timeslot-InformationList-PhyChReconfRqstTDD768 CRITICALITY reject EXTENSION UL-Timeslot-InformationList-PhyChReconfRqstTDD768 PRESENCE optional },
+ --For 7.68Mcps TDD only
+ ...
+}
+
+UL-TimeslotLCR-InformationList-PhyChReconfRqstTDD::= SEQUENCE ( SIZE (1..maxNrOfTsLCR)) OF UL-TimeslotLCR-InformationItem-PhyChReconfRqstTDD
+
+UL-TimeslotLCR-InformationItem-PhyChReconfRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-LCR-Information TDD-UL-Code-LCR-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-TimeslotLCR-InformationItem-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-TimeslotLCR-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PLCCH-Information-PhyChReconfRqstTDD CRITICALITY reject EXTENSION PLCCHinformation PRESENCE optional },
+ ...
+}
+
+UL-Timeslot-InformationList-PhyChReconfRqstTDD::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF UL-Timeslot-InformationItem-PhyChReconfRqstTDD
+
+UL-Timeslot-InformationItem-PhyChReconfRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-Information TDD-UL-Code-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-Timeslot-InformationItem-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationList-PhyChReconfRqstTDD768::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF UL-Timeslot-InformationItem-PhyChReconfRqstTDD768
+
+UL-Timeslot-InformationItem-PhyChReconfRqstTDD768 ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-Information768 TDD-UL-Code-Information768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UL-Timeslot-InformationItem-PhyChReconfRqstTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationItem-PhyChReconfRqstTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-PhyChReconfRqstTDD ::= ProtocolIE-Single-Container { {DL-CCTrCH-InformationListIEs-PhyChReconfRqstTDD} }
+
+DL-CCTrCH-InformationListIEs-PhyChReconfRqstTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationListIE-PhyChReconfRqstTDD CRITICALITY reject TYPE DL-CCTrCH-InformationListIE-PhyChReconfRqstTDD PRESENCE mandatory }
+}
+
+DL-CCTrCH-InformationListIE-PhyChReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationItem-PhyChReconfRqstTDD
+
+DL-CCTrCH-InformationItem-PhyChReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dl-DPCH-Information DL-DPCH-InformationList-PhyChReconfRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { {DL-CCTrCH-InformationItem-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationList-PhyChReconfRqstTDD ::= ProtocolIE-Single-Container {{DL-DPCH-InformationListIEs-PhyChReconfRqstTDD}}
+
+DL-DPCH-InformationListIEs-PhyChReconfRqstTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationItem-PhyChReconfRqstTDD CRITICALITY notify TYPE DL-DPCH-InformationItem-PhyChReconfRqstTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationItem-PhyChReconfRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tDD-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ dL-Timeslot-InformationList-PhyChReconfRqstTDD DL-Timeslot-InformationList-PhyChReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-DPCH-InformationItem-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-Timeslot-LCR-InformationList-PhyChReconfRqstTDD CRITICALITY reject EXTENSION DL-TimeslotLCR-InformationList-PhyChReconfRqstTDD PRESENCE optional }|
+ --For 1.28Mcps TDD only
+ { ID id-DL-Timeslot-InformationList-PhyChReconfRqstTDD768 CRITICALITY reject EXTENSION DL-Timeslot-InformationList-PhyChReconfRqstTDD768 PRESENCE optional },
+ --For 7.68Mcps TDD only
+ ...
+}
+
+DL-TimeslotLCR-InformationList-PhyChReconfRqstTDD::= SEQUENCE ( SIZE (1..maxNrOfTsLCR)) OF DL-TimeslotLCR-InformationItem-PhyChReconfRqstTDD
+
+DL-TimeslotLCR-InformationItem-PhyChReconfRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-LCR-Information TDD-DL-Code-LCR-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-TimeslotLCR-InformationItem-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-TimeslotLCR-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationList-PhyChReconfRqstTDD::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF DL-Timeslot-InformationItem-PhyChReconfRqstTDD
+
+DL-Timeslot-InformationItem-PhyChReconfRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-Information TDD-DL-Code-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-Timeslot-InformationItem-PhyChReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationList-PhyChReconfRqstTDD768::= SEQUENCE ( SIZE (1..maxNrOfTS)) OF DL-Timeslot-InformationItem-PhyChReconfRqstTDD768
+
+DL-Timeslot-InformationItem-PhyChReconfRqstTDD768 ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768 OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-Information768 TDD-DL-Code-Information768 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DL-Timeslot-InformationItem-PhyChReconfRqstTDD768-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationItem-PhyChReconfRqstTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTs)) OF HSPDSCH-Timeslot-InformationItem-PhyChReconfRqstTDD
+
+HSPDSCH-Timeslot-InformationItem-PhyChReconfRqstTDD::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ iE-Extensions ProtocolExtensionContainer { { HSPDSCH-Timeslot-InformationItem-PhyChReconfRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSPDSCH-Timeslot-InformationItem-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSPDSCH-Timeslot-InformationListLCR-PhyChReconfRqstTDD::= SEQUENCE (SIZE (1..maxNrOfDLTsLCR)) OF HSPDSCH-Timeslot-InformationItemLCR-PhyChReconfRqstTDD
+
+HSPDSCH-Timeslot-InformationItemLCR-PhyChReconfRqstTDD::= SEQUENCE {
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ iE-Extensions ProtocolExtensionContainer { { HSPDSCH-Timeslot-InformationItemLCR-PhyChReconfRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSPDSCH-Timeslot-InformationItemLCR-PhyChReconfRqstTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD768 ::= SEQUENCE (SIZE (1..maxNrOfDLTs)) OF HSPDSCH-Timeslot-InformationItem-PhyChReconfRqstTDD768
+
+HSPDSCH-Timeslot-InformationItem-PhyChReconfRqstTDD768::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType768 MidambleShiftAndBurstType768,
+ iE-Extensions ProtocolExtensionContainer { { HSPDSCH-Timeslot-InformationItem-PhyChReconfRqstTDD768-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSPDSCH-Timeslot-InformationItem-PhyChReconfRqstTDD768-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PhysicalChannelReconfigurationRequestTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL CHANNEL RECONFIGURATION COMMAND
+--
+-- **************************************************************
+
+PhysicalChannelReconfigurationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalChannelReconfigurationCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalChannelReconfigurationCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalChannelReconfigurationCommand-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-CFN CRITICALITY ignore TYPE CFN PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PhysicalChannelReconfigurationCommand-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL CHANNEL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+PhysicalChannelReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalChannelReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalChannelReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalChannelReconfigurationFailure-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PhysicalChannelReconfigurationFailure-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK CONGESTION INDICATION
+--
+-- **************************************************************
+
+RadioLinkCongestionIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkCongestionIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkCongestionIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkCongestionIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-CongestionCause CRITICALITY ignore TYPE CongestionCause PRESENCE optional }|
+ { ID id-RL-InformationList-RL-CongestInd CRITICALITY ignore TYPE RL-InformationList-RL-CongestInd PRESENCE mandatory },
+ ...
+}
+
+RL-InformationList-RL-CongestInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationItemIEs-RL-CongestInd} }
+
+RL-InformationItemIEs-RL-CongestInd RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-CongestInd CRITICALITY ignore TYPE RL-InformationItem-RL-CongestInd PRESENCE mandatory }
+}
+
+RL-InformationItem-RL-CongestInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ dCH-Rate-Information DCH-Rate-Information-RL-CongestInd,
+ iE-Extensions ProtocolExtensionContainer { {RL-Information-RL-CongestInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Rate-Information-RL-CongestInd ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF ProtocolIE-Single-Container { {DCH-Rate-InformationItemIEs-RL-CongestInd} }
+
+DCH-Rate-InformationItemIEs-RL-CongestInd RNSAP-PROTOCOL-IES ::= {
+ { ID id-DCH-Rate-InformationItem-RL-CongestInd CRITICALITY ignore TYPE DCH-Rate-InformationItem-RL-CongestInd PRESENCE mandatory }
+}
+
+DCH-Rate-InformationItem-RL-CongestInd ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ allowed-Rate-Information Allowed-Rate-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DCH-Rate-InformationItem-RL-CongestInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Rate-InformationItem-RL-CongestInd-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Information-RL-CongestInd-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-EDCH-MacdFlowSpecificInformationList-RL-CongestInd CRITICALITY ignore EXTENSION EDCH-MacdFlowSpecificInformationList-RL-CongestInd PRESENCE optional }|
+ { ID id-DCH-Indicator-For-E-DCH-HSDPA-Operation CRITICALITY ignore EXTENSION DCH-Indicator-For-E-DCH-HSDPA-Operation PRESENCE optional },
+ ...
+}
+
+RadioLinkCongestionIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EDCH-MacdFlowSpecificInformationList-RL-CongestInd ::= SEQUENCE (SIZE (1.. maxNrOfEDCHMACdFlows)) OF ProtocolIE-Single-Container { {EDCH-MacdFlowSpecificInformationItemIEs-RL-CongestInd} }
+
+EDCH-MacdFlowSpecificInformationItemIEs-RL-CongestInd RNSAP-PROTOCOL-IES ::= {
+ { ID id-EDCH-MacdFlowSpecificInformationItem-RL-CongestInd CRITICALITY ignore TYPE EDCH-MacdFlowSpecificInformationItem-RL-CongestInd PRESENCE mandatory }
+}
+
+EDCH-MacdFlowSpecificInformationItem-RL-CongestInd ::= SEQUENCE {
+ eDCH-MACdFlow-ID EDCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { EDCH-MacdFlowSpecificInformation-RL-CongestInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EDCH-MacdFlowSpecificInformation-RL-CongestInd-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK SIGNALLING TRANSFER INDICATION FDD
+--
+-- **************************************************************
+
+UplinkSignallingTransferIndicationFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkSignallingTransferIndicationFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UplinkSignallingTransferIndicationFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+UplinkSignallingTransferIndicationFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UC-ID CRITICALITY ignore TYPE UC-ID PRESENCE mandatory } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-GA-Cell CRITICALITY ignore TYPE GA-Cell PRESENCE optional } |
+ { ID id-C-RNTI CRITICALITY ignore TYPE C-RNTI PRESENCE mandatory } |
+ { ID id-S-RNTI CRITICALITY ignore TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional } |
+ { ID id-PropagationDelay CRITICALITY ignore TYPE PropagationDelay PRESENCE mandatory } |
+ { ID id-STTD-SupportIndicator CRITICALITY ignore TYPE STTD-SupportIndicator PRESENCE mandatory } |
+ { ID id-ClosedLoopMode1-SupportIndicator CRITICALITY ignore TYPE ClosedLoopMode1-SupportIndicator PRESENCE mandatory } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE mandatory } |
+ { ID id-CN-PS-DomainIdentifier CRITICALITY ignore TYPE CN-PS-DomainIdentifier PRESENCE optional } |
+ { ID id-CN-CS-DomainIdentifier CRITICALITY ignore TYPE CN-CS-DomainIdentifier PRESENCE optional } |
+ { ID id-URA-Information CRITICALITY ignore TYPE URA-Information PRESENCE optional },
+ ...
+}
+
+UplinkSignallingTransferIndicationFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-DPC-Mode-Change-SupportIndicator CRITICALITY ignore EXTENSION DPC-Mode-Change-SupportIndicator PRESENCE optional }|
+ { ID id-CommonTransportChannelResourcesInitialisationNotRequired CRITICALITY ignore EXTENSION CommonTransportChannelResourcesInitialisationNotRequired PRESENCE optional }|
+ { ID id-CellCapabilityContainer-FDD CRITICALITY ignore EXTENSION CellCapabilityContainer-FDD PRESENCE optional }|
+ { ID id-SNA-Information CRITICALITY ignore EXTENSION SNA-Information PRESENCE optional }|
+ { ID id-CellPortionID CRITICALITY ignore EXTENSION CellPortionID PRESENCE optional }|
+ { ID id-Active-MBMS-Bearer-ServiceFDD CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListFDD PRESENCE optional}|
+ { ID id-Inter-Frequency-Cell-List CRITICALITY ignore EXTENSION Inter-Frequency-Cell-List PRESENCE optional }|
+ { ID id-ExtendedPropagationDelay CRITICALITY ignore EXTENSION ExtendedPropagationDelay PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-Multiple-PLMN-List CRITICALITY ignore EXTENSION Multiple-PLMN-List PRESENCE optional }|
+ { ID id-E-RNTI CRITICALITY ignore EXTENSION E-RNTI PRESENCE optional }|
+ { ID id-Max-UE-DTX-Cycle CRITICALITY ignore EXTENSION Max-UE-DTX-Cycle PRESENCE conditional }|
+ -- This IE shall be present if the Continuous Packet Connectivity DTX-DRX Support Indicator IE in Cell Capability Container FDD IE is set to 1.
+ { ID id-CellCapabilityContainerExtension-FDD CRITICALITY ignore EXTENSION CellCapabilityContainerExtension-FDD PRESENCE optional }|
+ { ID id-Secondary-Serving-Cell-List CRITICALITY ignore EXTENSION Secondary-Serving-Cell-List PRESENCE optional }|
+ { ID id-Dual-Band-Secondary-Serving-Cell-List CRITICALITY ignore EXTENSION Secondary-Serving-Cell-List PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK SIGNALLING TRANSFER INDICATION TDD
+--
+-- **************************************************************
+
+UplinkSignallingTransferIndicationTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkSignallingTransferIndicationTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UplinkSignallingTransferIndicationTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+UplinkSignallingTransferIndicationTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UC-ID CRITICALITY ignore TYPE UC-ID PRESENCE mandatory } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-GA-Cell CRITICALITY ignore TYPE GA-Cell PRESENCE optional } |
+ { ID id-C-RNTI CRITICALITY ignore TYPE C-RNTI PRESENCE mandatory } |
+ { ID id-S-RNTI CRITICALITY ignore TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional } |
+ { ID id-RxTimingDeviationForTA CRITICALITY ignore TYPE RxTimingDeviationForTA PRESENCE mandatory } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE mandatory } |
+ { ID id-CN-PS-DomainIdentifier CRITICALITY ignore TYPE CN-PS-DomainIdentifier PRESENCE optional } |
+ { ID id-CN-CS-DomainIdentifier CRITICALITY ignore TYPE CN-CS-DomainIdentifier PRESENCE optional } |
+ { ID id-URA-Information CRITICALITY ignore TYPE URA-Information PRESENCE optional },
+ ...
+}
+
+UplinkSignallingTransferIndicationTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GA-CellAdditionalShapes CRITICALITY ignore EXTENSION GA-CellAdditionalShapes PRESENCE optional }|
+ { ID id-CommonTransportChannelResourcesInitialisationNotRequired CRITICALITY ignore EXTENSION CommonTransportChannelResourcesInitialisationNotRequired PRESENCE optional }|
+ { ID id-CellCapabilityContainer-TDD CRITICALITY ignore EXTENSION CellCapabilityContainer-TDD PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only
+ { ID id-CellCapabilityContainer-TDD-LCR CRITICALITY ignore EXTENSION CellCapabilityContainer-TDD-LCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-SNA-Information CRITICALITY ignore EXTENSION SNA-Information PRESENCE optional }|
+ { ID id-Active-MBMS-Bearer-ServiceTDD CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListTDD PRESENCE optional }|
+ { ID id-CellCapabilityContainer-TDD768 CRITICALITY ignore EXTENSION CellCapabilityContainer-TDD768 PRESENCE optional }|
+ -- Applicable to 7.68Mcps TDD only
+ { ID id-RxTimingDeviationForTA768 CRITICALITY ignore EXTENSION RxTimingDeviationForTA768 PRESENCE optional }|
+ { ID id-RxTimingDeviationForTAext CRITICALITY ignore EXTENSION RxTimingDeviationForTAext PRESENCE optional }|
+ { ID id-Multiple-PLMN-List CRITICALITY ignore EXTENSION Multiple-PLMN-List PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY ignore EXTENSION HSDSCH-RNTI PRESENCE optional }|
+ { ID id-E-RNTI CRITICALITY ignore EXTENSION E-RNTI PRESENCE optional }|
+ { ID id-CellPortionLCRID CRITICALITY ignore EXTENSION CellPortionLCRID PRESENCE optional },
+ ...
+
+}
+
+-- **************************************************************
+--
+-- DOWNLINK SIGNALLING TRANSFER REQUEST
+--
+-- **************************************************************
+
+DownlinkSignallingTransferRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkSignallingTransferRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DownlinkSignallingTransferRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DownlinkSignallingTransferRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory } |
+ -- May be a GERAN cell identifier
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE mandatory } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE mandatory } |
+ { ID id-D-RNTI-ReleaseIndication CRITICALITY ignore TYPE D-RNTI-ReleaseIndication PRESENCE mandatory },
+ ...
+}
+
+DownlinkSignallingTransferRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-URA-ID CRITICALITY ignore EXTENSION URA-ID PRESENCE optional}|
+ { ID id-MBMS-Bearer-Service-List CRITICALITY ignore EXTENSION MBMS-Bearer-Service-List PRESENCE optional}|
+ { ID id-Old-URA-ID CRITICALITY ignore EXTENSION URA-ID PRESENCE optional}|
+ { ID id-SRNC-ID CRITICALITY ignore EXTENSION RNC-ID PRESENCE conditional}|
+ -- This IE shall be present if the URA-ID IE or Old URA-ID IE is present.
+ { ID id-Extended-SRNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional}|
+ { ID id-Enhanced-PCH-Capability CRITICALITY ignore EXTENSION Enhanced-PCH-Capability PRESENCE optional},
+ -- FDD and 1.28Mcps TDD only
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RELOCATION COMMIT
+--
+-- **************************************************************
+
+RelocationCommit ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RelocationCommit-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RelocationCommit-Extensions}} OPTIONAL,
+ ...
+}
+
+RelocationCommit-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional } |
+ { ID id-RANAP-RelocationInformation CRITICALITY ignore TYPE RANAP-RelocationInformation PRESENCE optional },
+ ...
+}
+
+RelocationCommit-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING REQUEST
+--
+-- **************************************************************
+
+PagingRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PagingRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PagingRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+PagingRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-PagingArea-PagingRqst CRITICALITY ignore TYPE PagingArea-PagingRqst PRESENCE mandatory } |
+ { ID id-SRNC-ID CRITICALITY ignore TYPE RNC-ID PRESENCE mandatory } | -- May be a BSC-Id.
+ { ID id-S-RNTI CRITICALITY ignore TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-IMSI CRITICALITY ignore TYPE IMSI PRESENCE mandatory } |
+ { ID id-DRXCycleLengthCoefficient CRITICALITY ignore TYPE DRXCycleLengthCoefficient PRESENCE mandatory }|
+ { ID id-CNOriginatedPage-PagingRqst CRITICALITY ignore TYPE CNOriginatedPage-PagingRqst PRESENCE optional },
+ ...
+}
+
+PagingArea-PagingRqst ::= CHOICE {
+ uRA URA-PagingRqst, -- May be a GRA-ID.
+ cell Cell-PagingRqst, -- UTRAN only
+ ...
+}
+
+URA-PagingRqst ::= SEQUENCE {
+ uRA-ID URA-ID,
+ iE-Extensions ProtocolExtensionContainer { { URAItem-PagingRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+URAItem-PagingRqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-PagingRqst ::= SEQUENCE {
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-PagingRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-PagingRqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CNOriginatedPage-PagingRqst::= SEQUENCE {
+ pagingCause PagingCause,
+ cNDomainType CNDomainType,
+ pagingRecordType PagingRecordType,
+ iE-Extensions ProtocolExtensionContainer { { CNOriginatedPage-PagingRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CNOriginatedPage-PagingRqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PagingRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-SRNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional}|
+ { ID id-Enhanced-PCH-Capability CRITICALITY ignore EXTENSION Enhanced-PCH-Capability PRESENCE optional},
+ -- FDD and 1.28Mcps TDD only
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { 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 },
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rqst ::= CHOICE {
+ rL RL-DM-Rqst,
+ rLS RL-Set-DM-Rqst,
+ allRL All-RL-DM-Rqst,
+ allRLS All-RL-Set-DM-Rqst,
+ ...
+}
+
+RL-DM-Rqst ::= SEQUENCE {
+ rL-InformationList-DM-Rqst RL-InformationList-DM-Rqst,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RLItem-DM-Rqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Information-DM-Rqst-IEs} }
+
+RL-Information-DM-Rqst-IEs RNSAP-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,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationItem-DM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSSICH-Info-DM-Rqst CRITICALITY reject EXTENSION HSSICH-Info-DM-Rqst PRESENCE optional}|
+ -- TDD only
+ { ID id-DPCH-ID768-DM-Rqst CRITICALITY reject EXTENSION DPCH-ID768 PRESENCE optional}|
+ { ID id-HSSICH-Info-DM-Rqst-Extension CRITICALITY reject EXTENSION HSSICH-Info-DM-Rqst-Extension PRESENCE optional},
+ -- Applicable for 1.28Mcps TDD only when the HS-SICH ID IE is more than 31
+ ...
+}
+
+HSSICH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfHSSICHs)) OF HS-SICH-ID
+
+HSSICH-Info-DM-Rqst-Extension ::= SEQUENCE (SIZE (1..maxNrOfHSSICHs)) OF HS-SICH-ID-Extension
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container { {RL-Set-Information-DM-Rqst-IEs} }
+
+RL-Set-Information-DM-Rqst-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-DM-Rqst CRITICALITY reject TYPE RL-Set-InformationItem-DM-Rqst PRESENCE mandatory }
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+All-RL-DM-Rqst ::= NULL
+
+All-RL-Set-DM-Rqst ::= NULL
+
+DedicatedMeasurementInitiationRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PartialReportingIndicator CRITICALITY ignore EXTENSION PartialReportingIndicator PRESENCE optional }|
+ { ID id-MeasurementRecoveryBehavior CRITICALITY ignore EXTENSION MeasurementRecoveryBehavior PRESENCE optional }|
+ { ID id-AlternativeFormatReportingIndicator CRITICALITY ignore EXTENSION AlternativeFormatReportingIndicator PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationResponse-IEs RNSAP-PROTOCOL-IES ::= {
+ { 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 },
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rsp ::= CHOICE {
+ rLs RL-DM-Rsp,
+ rLS RL-Set-DM-Rsp,
+ allRL RL-DM-Rsp,
+ allRLS RL-Set-DM-Rsp,
+ ...
+}
+
+RL-DM-Rsp ::= SEQUENCE {
+ rL-InformationList-DM-Rsp RL-InformationList-DM-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Information-DM-Rsp-IEs} }
+
+RL-Information-DM-Rsp-IEs RNSAP-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,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationItem-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-HSSICH-Info-DM CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional}|
+ -- TDD only
+ { ID id-multiple-DedicatedMeasurementValueList-TDD-DM-Rsp CRITICALITY ignore EXTENSION Multiple-DedicatedMeasurementValueList-TDD-DM-Rsp PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only. This list of dedicated measurement values is used for the 2nd and beyond measurements of a RL when multiple dedicated measurement values need to be reported.
+ { ID id-multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp CRITICALITY ignore EXTENSION Multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only. This list of dedicated measurement values is used for the 2nd and beyond measurements of a RL when multiple dedicated measurement values need to be reported.
+ { ID id-multiple-HSSICHMeasurementValueList-TDD-DM-Rsp CRITICALITY ignore EXTENSION Multiple-HSSICHMeasurementValueList-TDD-DM-Rsp PRESENCE optional }|
+ -- TDD only. This list of HS-SICH measurement values is used for the 2nd and beyond measurements of a RL when multiple HS-SICH measurement values need to be reported.
+ { ID id-multiple-DedicatedMeasurementValueList-TDD768-DM-Rsp CRITICALITY ignore EXTENSION Multiple-DedicatedMeasurementValueList-TDD768-DM-Rsp PRESENCE optional }|
+ -- Applicable to 7.68Mcps TDD only. This list of dedicated measurement values is used for the 2nd and beyond measurements of a RL when multiple dedicated measurement values need to be reported.
+ { ID id-DPCH-ID768-DM-Rsp CRITICALITY ignore EXTENSION DPCH-ID768 PRESENCE optional}|
+ { ID id-HS-SICH-ID-Extension CRITICALITY ignore EXTENSION HS-SICH-ID-Extension PRESENCE optional},
+ -- Applicable for 1.28Mcps TDD only when the HS-SICH ID IE is more than 31
+ ...
+}
+
+RL-Set-InformationList-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container { {RL-Set-Information-DM-Rsp-IEs} }
+
+RL-Set-Information-DM-Rsp-IEs RNSAP-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-Rspns-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rspns-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementInitiationResponse-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MeasurementRecoverySupportIndicator CRITICALITY ignore EXTENSION MeasurementRecoverySupportIndicator PRESENCE optional
+ },
+ ...
+}
+
+Multiple-DedicatedMeasurementValueList-TDD-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfDPCHsPerRL-1)) OF Multiple-DedicatedMeasurementValueItem-TDD-DM-Rsp
+
+Multiple-DedicatedMeasurementValueItem-TDD-DM-Rsp ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-DedicatedMeasurementValueItem-TDD-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+Multiple-DedicatedMeasurementValueItem-TDD-DM-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfDPCHsLCRPerRL-1)) OF Multiple-DedicatedMeasurementValueItem-LCR-TDD-DM-Rsp
+
+Multiple-DedicatedMeasurementValueItem-LCR-TDD-DM-Rsp ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-DedicatedMeasurementValueItem-LCR-TDD-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Multiple-DedicatedMeasurementValueItem-LCR-TDD-DM-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-HSSICHMeasurementValueList-TDD-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfHSSICHs-1)) OF Multiple-HSSICHMeasurementValueItem-TDD-DM-Rsp
+
+Multiple-HSSICHMeasurementValueItem-TDD-DM-Rsp ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-HSSICHMeasurementValueItem-TDD-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+Multiple-HSSICHMeasurementValueItem-TDD-DM-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HS-SICH-ID-Extension CRITICALITY ignore EXTENSION HS-SICH-ID-Extension PRESENCE optional},
+ -- Applicable for 1.28Mcps TDD only when the HS-SICH ID IE is more than 31
+ ...
+}
+
+Multiple-DedicatedMeasurementValueList-TDD768-DM-Rsp ::= SEQUENCE (SIZE (1.. maxNrOfDPCHs768PerRL-1)) OF Multiple-DedicatedMeasurementValueItem-TDD768-DM-Rsp
+
+Multiple-DedicatedMeasurementValueItem-TDD768-DM-Rsp ::= SEQUENCE {
+ dPCH-ID768 DPCH-ID768,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { Multiple-DedicatedMeasurementValueItem-TDD768-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+Multiple-DedicatedMeasurementValueItem-TDD768-DM-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationFailure-IEs RNSAP-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 },
+ ...
+}
+
+DedicatedMeasurementInitiationFailure-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DedicatedMeasurementObjectType-DM-Fail CRITICALITY ignore EXTENSION DedicatedMeasurementObjectType-DM-Fail PRESENCE optional },
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Fail ::= CHOICE {
+ rL RL-DM-Fail,
+ rLS RL-Set-DM-Fail,
+ allRL RL-DM-Fail,
+ allRLS RL-Set-DM-Fail,
+ ...
+}
+
+RL-DM-Fail ::= SEQUENCE {
+ rL-unsuccessful-InformationRespList-DM-Fail RL-Unsuccessful-InformationRespList-DM-Fail,
+ rL-successful-InformationRespList-DM-Fail RL-Successful-InformationRespList-DM-Fail OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Fail-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Fail-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-DM-Fail ::= SEQUENCE {
+ rL-Set-unsuccessful-InformationRespList-DM-Fail RL-Set-Unsuccessful-InformationRespList-DM-Fail,
+ rL-Set-successful-InformationRespList-DM-Fail RL-Set-Successful-InformationRespList-DM-Fail OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Fail-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Fail-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Unsuccessful-InformationRespList-DM-Fail ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Unsuccessful-InformationResp-DM-Fail-IEs} }
+
+RL-Unsuccessful-InformationResp-DM-Fail-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Unsuccessful-InformationItem-DM-Fail CRITICALITY ignore TYPE RL-Unsuccessful-InformationItem-DM-Fail PRESENCE mandatory }
+}
+
+RL-Unsuccessful-InformationItem-DM-Fail ::= SEQUENCE {
+ rL-ID RL-ID,
+ individualcause Cause OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-Unsuccessful-InformationItem-DM-Fail-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Unsuccessful-InformationItem-DM-Fail-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Successful-InformationRespList-DM-Fail ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container { {RL-Successful-InformationResp-DM-Fail-IEs} }
+
+RL-Successful-InformationResp-DM-Fail-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Successful-InformationItem-DM-Fail CRITICALITY ignore TYPE RL-Successful-InformationItem-DM-Fail PRESENCE mandatory }
+}
+
+RL-Successful-InformationItem-DM-Fail ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-Successful-InformationItem-DM-Fail-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Successful-InformationItem-DM-Fail-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-HSSICH-Info-DM CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional}|
+ -- TDD only
+ { ID id-HS-SICH-ID-Extension CRITICALITY ignore EXTENSION HS-SICH-ID-Extension PRESENCE optional},
+ -- Applicable for 1.28Mcps TDD only when the HS-SICH ID IE is more than 31
+ ...
+}
+
+RL-Set-Unsuccessful-InformationRespList-DM-Fail ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container { {RL-Set-Unsuccessful-InformationResp-DM-Fail-IEs} }
+
+RL-Set-Unsuccessful-InformationResp-DM-Fail-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-Unsuccessful-InformationItem-DM-Fail CRITICALITY ignore TYPE RL-Set-Unsuccessful-InformationItem-DM-Fail PRESENCE mandatory }
+}
+
+RL-Set-Unsuccessful-InformationItem-DM-Fail ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ individualcause Cause OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-Set-Unsuccessful-InformationItem-DM-Failns-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-Unsuccessful-InformationItem-DM-Failns-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-Successful-InformationRespList-DM-Fail ::= SEQUENCE (SIZE (1..maxNrOfRLSets-1)) OF ProtocolIE-Single-Container { {RL-Set-Successful-InformationResp-DM-Fail-IEs} }
+
+RL-Set-Successful-InformationResp-DM-Fail-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-Successful-InformationItem-DM-Fail CRITICALITY ignore TYPE RL-Set-Successful-InformationItem-DM-Fail PRESENCE mandatory }
+}
+
+RL-Set-Successful-InformationItem-DM-Fail ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-Set-Successful-InformationItem-DM-Failns-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-Successful-InformationItem-DM-Failns-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT REPORT
+--
+-- **************************************************************
+
+DedicatedMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementReport-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rprt CRITICALITY ignore TYPE DedicatedMeasurementObjectType-DM-Rprt PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rprt ::= CHOICE {
+ rLs RL-DM-Rprt,
+ rLS RL-Set-DM-Rprt,
+ allRL RL-DM-Rprt,
+ allRLS RL-Set-DM-Rprt,
+ ...
+}
+
+RL-DM-Rprt ::= SEQUENCE {
+ rL-InformationList-DM-Rprt RL-InformationList-DM-Rprt,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rprt-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rprt ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Information-DM-Rprt-IEs} }
+
+RL-Information-DM-Rprt-IEs RNSAP-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,
+ dedicatedMeasurementValueInformation DedicatedMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationItem-DM-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rprt-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ {ID id-HSSICH-Info-DM-Rprt CRITICALITY ignore EXTENSION HS-SICH-ID PRESENCE optional}|
+ -- TDD only
+ { ID id-DPCH-ID768-DM-Rprt CRITICALITY ignore EXTENSION DPCH-ID768 PRESENCE optional}|
+ { ID id-HS-SICH-ID-Extension CRITICALITY ignore EXTENSION HS-SICH-ID-Extension PRESENCE optional},
+ -- Applicable for 1.28Mcps TDD only when the HS-SICH ID IE is more than 31
+ ...
+}
+
+RL-Set-InformationList-DM-Rprt ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container { {RL-Set-Information-DM-Rprt-IEs} }
+
+RL-Set-Information-DM-Rprt-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementReport-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MeasurementRecoveryReportingIndicator CRITICALITY ignore EXTENSION MeasurementRecoveryReportingIndicator PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+DedicatedMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementTerminationRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementTerminationRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+DedicatedMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementFailureIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementFailureIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DedicatedMeasurementObjectType-DM-Fail-Ind CRITICALITY ignore EXTENSION DedicatedMeasurementObjectType-DM-Fail-Ind PRESENCE optional },
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Fail-Ind ::= CHOICE {
+ rL RL-DM-Fail-Ind,
+ rLS RL-Set-DM-Fail-Ind,
+ allRL RL-DM-Fail-Ind,
+ allRLS RL-Set-DM-Fail-Ind,
+ ...
+}
+
+RL-DM-Fail-Ind ::= SEQUENCE {
+ rL-unsuccessful-InformationRespList-DM-Fail-Ind RL-Unsuccessful-InformationRespList-DM-Fail-Ind,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Fail-Ind-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Fail-Ind-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-DM-Fail-Ind ::= SEQUENCE {
+ rL-Set-unsuccessful-InformationRespList-DM-Fail-Ind RL-Set-Unsuccessful-InformationRespList-DM-Fail-Ind,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Fail-Ind-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Fail-Ind-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Unsuccessful-InformationRespList-DM-Fail-Ind ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-Unsuccessful-InformationResp-DM-Fail-Ind-IEs} }
+
+RL-Unsuccessful-InformationResp-DM-Fail-Ind-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Unsuccessful-InformationItem-DM-Fail-Ind CRITICALITY ignore TYPE RL-Unsuccessful-InformationItem-DM-Fail-Ind PRESENCE mandatory }
+}
+
+RL-Unsuccessful-InformationItem-DM-Fail-Ind ::= SEQUENCE {
+ rL-ID RL-ID,
+ individualcause Cause OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-Unsuccessful-InformationItem-DM-Fail-Ind-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Unsuccessful-InformationItem-DM-Fail-Ind-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-Unsuccessful-InformationRespList-DM-Fail-Ind ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container { {RL-Set-Unsuccessful-InformationResp-DM-Fail-Ind-IEs} }
+
+RL-Set-Unsuccessful-InformationResp-DM-Fail-Ind-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-Unsuccessful-InformationItem-DM-Fail-Ind CRITICALITY ignore TYPE RL-Set-Unsuccessful-InformationItem-DM-Fail-Ind PRESENCE mandatory }
+}
+
+RL-Set-Unsuccessful-InformationItem-DM-Fail-Ind ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ individualcause Cause OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RL-Set-Unsuccessful-InformationItem-DM-Fail-Indns-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-Unsuccessful-InformationItem-DM-Fail-Indns-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RESOURCES RELEASE REQUEST
+--
+-- **************************************************************
+
+CommonTransportChannelResourcesReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelResourcesReleaseRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelResourcesReleaseRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelResourcesReleaseRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE mandatory },
+ ...
+}
+
+CommonTransportChannelResourcesReleaseRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RESOURCES REQUEST
+--
+-- **************************************************************
+
+CommonTransportChannelResourcesRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelResourcesRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelResourcesRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelResourcesRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-D-RNTI CRITICALITY reject TYPE D-RNTI PRESENCE mandatory } |
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE optional } |
+ { ID id-TransportBearerRequestIndicator CRITICALITY reject TYPE TransportBearerRequestIndicator PRESENCE mandatory } |
+ { ID id-TransportBearerID CRITICALITY reject TYPE TransportBearerID PRESENCE mandatory },
+ ...
+}
+
+CommonTransportChannelResourcesRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Permanent-NAS-UE-Identity CRITICALITY ignore EXTENSION Permanent-NAS-UE-Identity 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.
+ { ID id-MBMS-Bearer-Service-List CRITICALITY notify EXTENSION MBMS-Bearer-Service-List PRESENCE optional }|
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional }|
+ { ID id-Enhanced-FACH-Support-Indicator CRITICALITY ignore EXTENSION Enhanced-FACH-Support-Indicator PRESENCE optional }|
+ -- FDD and 1.28Mcps TDD only
+ { ID id-Common-EDCH-Support-Indicator CRITICALITY ignore EXTENSION Common-EDCH-Support-Indicator PRESENCE optional }|
+ -- FDD only
+ { ID id-HSDSCH-Physical-Layer-Category CRITICALITY ignore EXTENSION HSDSCH-Physical-Layer-Category PRESENCE optional }|
+ { ID id-UE-with-enhanced-HS-SCCH-support-indicator CRITICALITY ignore EXTENSION NULL PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RESOURCES RESPONSE FDD
+--
+-- **************************************************************
+
+CommonTransportChannelResourcesResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelResourcesResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelResourcesResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelResourcesResponseFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-S-RNTI CRITICALITY ignore TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-C-RNTI CRITICALITY ignore TYPE C-RNTI PRESENCE optional } |
+ { ID id-FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD CRITICALITY ignore TYPE FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD PRESENCE mandatory } |
+ { ID id-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional } |
+ { ID id-BindingID CRITICALITY ignore TYPE BindingID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD ::= SEQUENCE {
+ fACH-FlowControlInformation FACH-FlowControlInformation-CTCH-ResourceRspFDD,
+-- If the Enhanced FACH Information Response IE is included in the message, the FACH Flow Control Information IE shall be ignored.
+ iE-Extensions ProtocolExtensionContainer { {FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-FlowControlInformation-CTCH-ResourceRspFDD ::= ProtocolIE-Single-Container {{ FACH-FlowControlInformationIEs-CTCH-ResourceRspFDD }}
+
+FACH-FlowControlInformationIEs-CTCH-ResourceRspFDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-FACH-FlowControlInformation CRITICALITY ignore TYPE FACH-FlowControlInformation PRESENCE mandatory }
+}
+
+CommonTransportChannelResourcesResponseFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-C-ID CRITICALITY ignore EXTENSION C-ID PRESENCE mandatory }|
+ { ID id-Active-MBMS-Bearer-ServiceFDD CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListFDD PRESENCE optional}|
+ { ID id-Enhanced-FACH-Information-ResponseFDD CRITICALITY ignore EXTENSION Enhanced-FACH-Information-ResponseFDD PRESENCE optional}|
+ { ID id-Common-EDCH-MAC-d-Flow-Specific-InformationFDD CRITICALITY ignore EXTENSION Common-EDCH-MAC-d-Flow-Specific-InformationFDD PRESENCE optional}|
+ { ID id-E-RNTI CRITICALITY ignore EXTENSION E-RNTI PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RESOURCES RESPONSE TDD
+--
+-- **************************************************************
+
+CommonTransportChannelResourcesResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelResourcesResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelResourcesResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelResourcesResponseTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-S-RNTI CRITICALITY ignore TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-C-RNTI CRITICALITY ignore TYPE C-RNTI PRESENCE optional } |
+ { ID id-FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD CRITICALITY ignore TYPE FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD PRESENCE mandatory } |
+ { ID id-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional } |
+ { ID id-BindingID CRITICALITY ignore TYPE BindingID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD ::= SEQUENCE {
+ fACH-FlowControlInformation FACH-FlowControlInformation-CTCH-ResourceRspTDD,
+ iE-Extensions ProtocolExtensionContainer { {FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-FlowControlInformation-CTCH-ResourceRspTDD ::= ProtocolIE-Single-Container {{ FACH-FlowControlInformationIEs-CTCH-ResourceRspTDD }}
+
+FACH-FlowControlInformationIEs-CTCH-ResourceRspTDD RNSAP-PROTOCOL-IES ::= {
+ { ID id-FACH-FlowControlInformation CRITICALITY ignore TYPE FACH-FlowControlInformation PRESENCE mandatory }
+}
+
+CommonTransportChannelResourcesResponseTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-C-ID CRITICALITY ignore EXTENSION C-ID PRESENCE mandatory }|
+ { ID id-Active-MBMS-Bearer-ServiceTDD CRITICALITY ignore EXTENSION Active-MBMS-Bearer-Service-ListTDD PRESENCE optional}|
+ { ID id-Enhanced-FACH-Information-ResponseLCR CRITICALITY ignore EXTENSION Enhanced-FACH-Information-ResponseLCR PRESENCE optional}|
+ { ID id-Common-EDCH-MAC-d-Flow-Specific-InformationLCR CRITICALITY ignore EXTENSION Common-EDCH-MAC-d-Flow-Specific-InformationLCR PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RESOURCES FAILURE
+--
+-- **************************************************************
+
+CommonTransportChannelResourcesFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelResourcesFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelResourcesFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelResourcesFailure-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-S-RNTI CRITICALITY ignore TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelResourcesFailure-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMPRESSED MODE COMMAND
+--
+-- **************************************************************
+
+CompressedModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CompressedModeCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CompressedModeCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+CompressedModeCommand-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY ignore TYPE Active-Pattern-Sequence-Information PRESENCE mandatory },
+ ...
+}
+
+CompressedModeCommand-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ErrorIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+ErrorIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+ErrorIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-S-RNTI CRITICALITY ignore EXTENSION S-RNTI PRESENCE optional } |
+ { ID id-D-RNTI CRITICALITY ignore EXTENSION D-RNTI PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+CommonMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationRequest-IEs RNSAP-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 }|
+ -- UTRAN only
+ { 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 }|
+ -- UTRAN only
+ { ID id-CommonMeasurementAccuracy CRITICALITY reject TYPE CommonMeasurementAccuracy PRESENCE optional },
+ -- UTRAN only
+ ...
+}
+
+CommonMeasurementInitiationRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MeasurementRecoveryBehavior CRITICALITY ignore EXTENSION MeasurementRecoveryBehavior PRESENCE optional
+ }|
+ -- UTRAN only
+ { ID id-GANSS-Time-ID CRITICALITY ignore EXTENSION GANSS-Time-ID PRESENCE optional},
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rqst ::= CHOICE {
+ cell Cell-CM-Rqst,
+ ...
+}
+
+Cell-CM-Rqst ::= SEQUENCE {
+ uC-ID UC-ID,
+ -- May be a GERAN cell identifier
+ timeSlot TimeSlot OPTIONAL, --3.84Mcps TDD and 7.68Mcps TDD only
+ timeSlotLCR TimeSlotLCR OPTIONAL, --1.28Mcps TDD only
+ neighbouringCellMeasurementInformation NeighbouringCellMeasurementInfo OPTIONAL,
+ -- UTRAN only
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringCellMeasurementInfo ::= SEQUENCE (SIZE (1..maxNrOfMeasNCell)) OF
+ CHOICE {
+ neighbouringFDDCellMeasurementInformation NeighbouringFDDCellMeasurementInformation,
+ neighbouringTDDCellMeasurementInformation NeighbouringTDDCellMeasurementInformation,
+ ...,
+ extension-neighbouringCellMeasurementInformation Extension-neighbouringCellMeasurementInformation,
+ extension-neighbouringCellMeasurementInformation768 Extension-neighbouringCellMeasurementInformation768
+ }
+
+Extension-neighbouringCellMeasurementInformation ::= ProtocolIE-Single-Container {{ Extension-neighbouringCellMeasurementInformationIE }}
+
+Extension-neighbouringCellMeasurementInformationIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-neighbouringTDDCellMeasurementInformationLCR CRITICALITY reject TYPE NeighbouringTDDCellMeasurementInformationLCR PRESENCE mandatory },
+ ...
+}
+
+
+Extension-neighbouringCellMeasurementInformation768 ::= ProtocolIE-Single-Container {{ Extension-neighbouringCellMeasurementInformation768IE }}
+
+Extension-neighbouringCellMeasurementInformation768IE RNSAP-PROTOCOL-IES ::= {
+ { ID id-neighbouringTDDCellMeasurementInformation768 CRITICALITY reject TYPE NeighbouringTDDCellMeasurementInformation768 PRESENCE mandatory },
+ ...
+}
+
+CellItem-CM-Rqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UARFCNforNt CRITICALITY ignore EXTENSION UARFCN PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-UPPCHPositionLCR CRITICALITY reject EXTENSION UPPCHPositionLCR PRESENCE optional},
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+CommonMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationResponse-IEs RNSAP-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 }|
+ -- UTRAN only
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-CommonMeasurementAccuracy CRITICALITY reject TYPE CommonMeasurementAccuracy PRESENCE optional },
+ -- UTRAN only
+ ...
+}
+
+CommonMeasurementInitiationResponse-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MeasurementRecoverySupportIndicator CRITICALITY ignore EXTENSION MeasurementRecoverySupportIndicator PRESENCE optional
+ },
+ -- UTRAN only
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rsp ::= CHOICE {
+ cell Cell-CM-Rsp,
+ ...
+ }
+
+Cell-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellItem-CM-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+CommonMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationFailure-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT REPORT
+--
+-- **************************************************************
+
+CommonMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementReport-IEs RNSAP-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 },
+ -- UTRAN only
+ ...
+}
+
+CommonMeasurementReport-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MeasurementRecoveryReportingIndicator CRITICALITY ignore EXTENSION MeasurementRecoveryReportingIndicator PRESENCE optional },
+ -- UTRAN only
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rprt ::= CHOICE {
+ cell Cell-CM-Rprt,
+ ...
+ }
+
+Cell-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+CellItem-CM-Rprt-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+CommonMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementTerminationRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory},
+ ...
+}
+
+CommonMeasurementTerminationRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+CommonMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementFailureIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+CommonMeasurementFailureIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationRequest-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rqst ::= CHOICE {
+ cell Cell-InfEx-Rqst,
+ ...,
+ extension-InformationExchangeObjectType-InfEx-Rqst Extension-InformationExchangeObjectType-InfEx-Rqst
+
+}
+
+Cell-InfEx-Rqst ::= SEQUENCE {
+ c-ID C-ID, --May be a GERAN cell identifier
+ iE-Extensions ProtocolExtensionContainer { { CellItem-InfEx-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-InfEx-Rqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Extension-InformationExchangeObjectType-InfEx-Rqst ::= ProtocolIE-Single-Container {{ Extension-InformationExchangeObjectType-InfEx-RqstIE }}
+
+Extension-InformationExchangeObjectType-InfEx-RqstIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-GSM-Cell-InfEx-Rqst CRITICALITY reject TYPE GSM-Cell-InfEx-Rqst PRESENCE mandatory }|
+ { ID id-MBMS-Bearer-Service-List CRITICALITY reject TYPE MBMS-Bearer-Service-List PRESENCE mandatory}|
+ { ID id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rqst CRITICALITY reject TYPE MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rqst PRESENCE mandatory}|
+ { ID id-MBMS-Cell-InfEx-Rqst CRITICALITY reject TYPE MBMS-Cell-InfEx-Rqst PRESENCE mandatory}
+
+}
+
+GSM-Cell-InfEx-Rqst ::= SEQUENCE {
+ cGI CGI,
+ iE-Extensions ProtocolExtensionContainer { { GSMCellItem-InfEx-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GSMCellItem-InfEx-Rqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rqst ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rqst
+
+MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ mBMS-Bearer-Service-List-InfEx-Rqst MBMS-Bearer-Service-List-InfEx-Rqst,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rqst-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Bearer-Service-List-InfEx-Rqst ::= SEQUENCE (SIZE (1..maxNrOfMBMSServices)) OF TMGI
+
+MBMS-Cell-InfEx-Rqst ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF C-ID
+
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION RESPONSE
+--
+-- **************************************************************
+
+InformationExchangeInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationResponse-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rsp ::= CHOICE {
+ cell Cell-InfEx-Rsp,
+ ...,
+ extension-InformationExchangeObjectType-InfEx-Rsp Extension-InformationExchangeObjectType-InfEx-Rsp
+}
+
+Cell-InfEx-Rsp ::= SEQUENCE {
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-InfEx-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-InfEx-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Extension-InformationExchangeObjectType-InfEx-Rsp ::= ProtocolIE-Single-Container {{ Extension-InformationExchangeObjectType-InfEx-RspIE }}
+
+Extension-InformationExchangeObjectType-InfEx-RspIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-MBMS-Bearer-Service-List-InfEx-Rsp CRITICALITY ignore TYPE MBMS-Bearer-Service-List-InfEx-Rsp PRESENCE mandatory}|
+ { ID id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rsp CRITICALITY ignore TYPE MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rsp PRESENCE mandatory}|
+ { ID id-MBMS-Cell-InfEx-Rsp CRITICALITY ignore TYPE MBMS-Cell-InfEx-Rsp PRESENCE mandatory}
+
+}
+
+MBMS-Bearer-Service-List-InfEx-Rsp ::= SEQUENCE (SIZE (1..maxNrOfMBMSServices)) OF MBMS-Bearer-ServiceItemIEs-InfEx-Rsp
+
+
+
+MBMS-Bearer-ServiceItemIEs-InfEx-Rsp ::=SEQUENCE{
+ tmgi TMGI,
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-ServiceItem-InfEx-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-ServiceItem-InfEx-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rsp ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rsp
+
+MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rsp ::= SEQUENCE {
+ c-ID C-ID,
+ mBMS-Bearer-Service-List-InfEx-Rsp MBMS-Bearer-Service-List-InfEx-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Cell-InfEx-Rsp ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMS-Cell-Item-InfEx-Rsp
+
+MBMS-Cell-Item-InfEx-Rsp ::= SEQUENCE {
+ c-ID C-ID,
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Cell-Item-InfEx-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Cell-Item-InfEx-Rsp-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION FAILURE
+--
+-- **************************************************************
+
+InformationExchangeInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationFailure-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION REPORT
+--
+-- **************************************************************
+
+InformationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationReport-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationReport-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rprt ::= CHOICE {
+ cell Cell-InfEx-Rprt,
+ ...,
+ extension-InformationExchangeObjectType-InfEx-Rprt Extension-InformationExchangeObjectType-InfEx-Rprt
+
+ }
+
+Extension-InformationExchangeObjectType-InfEx-Rprt ::= ProtocolIE-Single-Container {{ Extension-InformationExchangeObjectType-InfEx-RprtIE }}
+
+Extension-InformationExchangeObjectType-InfEx-RprtIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rprt CRITICALITY ignore TYPE MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rprt PRESENCE mandatory}|
+ { ID id-MBMS-Cell-InfEx-Rprt CRITICALITY ignore TYPE MBMS-Cell-InfEx-Rprt PRESENCE mandatory}
+
+}
+
+
+Cell-InfEx-Rprt ::= SEQUENCE {
+ requestedDataValueInformation RequestedDataValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-InfEx-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+CellItem-InfEx-Rprt-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rprt ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rprt
+
+MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rprt ::= SEQUENCE {
+ c-ID C-ID,
+ mBMS-Bearer-Service-List-InfEx-Rprt MBMS-Bearer-Service-List-InfEx-Rprt,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-Service-in-MBMS-Cell-Item-InfEx-Rprt-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Bearer-Service-List-InfEx-Rprt ::= SEQUENCE (SIZE (1..maxNrOfMBMSServices)) OF MBMS-Bearer-Service-List-Item-InfEx-Rprt
+
+MBMS-Bearer-Service-List-Item-InfEx-Rprt ::= SEQUENCE {
+ tmgi TMGI,
+ requestedDataValueInformation RequestedDataValueInformation,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Bearer-Service-List-Item-InfEx-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Bearer-Service-List-Item-InfEx-Rprt-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMS-Cell-InfEx-Rprt ::= SEQUENCE (SIZE (1..maxNrOfCells)) OF MBMS-Cell-Item-InfEx-Rprt
+
+MBMS-Cell-Item-InfEx-Rprt ::= SEQUENCE {
+ c-ID C-ID,
+ requestedDataValueInformation RequestedDataValueInformation,
+ iE-Extensions ProtocolExtensionContainer { { MBMS-Cell-Item-InfEx-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMS-Cell-Item-InfEx-Rprt-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE TERMINATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeTerminationRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory},
+ ...
+}
+
+InformationExchangeTerminationRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE FAILURE INDICATION
+--
+-- **************************************************************
+
+InformationExchangeFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeFailureIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+InformationExchangeFailureIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET REQUEST
+--
+-- **************************************************************
+
+ResetRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResetRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+ResetRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RNC-ID CRITICALITY reject TYPE RNC-ID PRESENCE mandatory} |
+ { ID id-ResetIndicator CRITICALITY reject TYPE ResetIndicator PRESENCE mandatory},
+ ...
+}
+
+ResetRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-RNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional},
+ ...
+}
+
+ResetIndicator ::= CHOICE {
+ context ContextList-Reset,
+ all-contexts NULL,
+ ...,
+ contextGroup ContextGroupList-Reset
+}
+
+ContextList-Reset ::= SEQUENCE {
+ contextInfoList-Reset ContextInfoList-Reset,
+ iE-Extensions ProtocolExtensionContainer { {ContextItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ContextItem-Reset-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ContextInfoList-Reset ::= SEQUENCE (SIZE (1.. maxResetContext)) OF ProtocolIE-Single-Container {{ ContextInfoItemIE-Reset }}
+
+ContextInfoItemIE-Reset RNSAP-PROTOCOL-IES ::= {
+ {ID id-ContextInfoItem-Reset CRITICALITY reject TYPE ContextInfoItem-Reset PRESENCE mandatory}
+}
+
+ContextInfoItem-Reset ::= SEQUENCE {
+ contextType-Reset ContextType-Reset,
+ iE-Extensions ProtocolExtensionContainer { { ContextInfoItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ContextInfoItem-Reset-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ContextType-Reset ::= CHOICE {
+ sRNTI S-RNTI,
+ dRNTI D-RNTI,
+ ...
+}
+
+ContextGroupList-Reset ::= SEQUENCE {
+ contextGroupInfoList-Reset ContextGroupInfoList-Reset,
+ iE-Extensions ProtocolExtensionContainer { {ContextGroupItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ContextGroupItem-Reset-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ContextGroupInfoList-Reset ::= SEQUENCE (SIZE (1.. maxResetContextGroup)) OF ProtocolIE-Single-Container {{ ContextGroupInfoItemIE-Reset }}
+
+ContextGroupInfoItemIE-Reset RNSAP-PROTOCOL-IES ::= {
+ {ID id-ContextGroupInfoItem-Reset CRITICALITY reject TYPE ContextGroupInfoItem-Reset PRESENCE mandatory}
+}
+
+ContextGroupInfoItem-Reset ::= SEQUENCE {
+ s-RNTI-Group S-RNTI-Group,
+ iE-Extensions ProtocolExtensionContainer { { ContextGroupInfoItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ContextGroupInfoItem-Reset-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET RESPONSE
+--
+-- **************************************************************
+
+ResetResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResetResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+ResetResponse-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RNC-ID CRITICALITY ignore TYPE RNC-ID PRESENCE mandatory} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+ResetResponse-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-RNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ACTIVATION COMMAND FDD
+--
+-- **************************************************************
+
+RadioLinkActivationCommandFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkActivationCommandFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkActivationCommandFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkActivationCommandFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-DelayedActivationList-RL-ActivationCmdFDD CRITICALITY ignore TYPE DelayedActivationInformationList-RL-ActivationCmdFDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkActivationCommandFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DelayedActivationInformationList-RL-ActivationCmdFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ { DelayedActivationInformation-RL-ActivationCmdFDD-IEs} }
+
+DelayedActivationInformation-RL-ActivationCmdFDD-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ACTIVATION COMMAND TDD
+--
+-- **************************************************************
+
+RadioLinkActivationCommandTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkActivationCommandTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkActivationCommandTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkActivationCommandTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-DelayedActivationList-RL-ActivationCmdTDD CRITICALITY ignore TYPE DelayedActivationInformationList-RL-ActivationCmdTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkActivationCommandTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DelayedActivationInformationList-RL-ActivationCmdTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ { DelayedActivationInformation-RL-ActivationCmdTDD-IEs} }
+
+DelayedActivationInformation-RL-ActivationCmdTDD-IEs RNSAP-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 RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- GERAN UPLINK SIGNALLING TRANSFER INDICATION
+--
+-- **************************************************************
+
+GERANUplinkSignallingTransferIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{GERANUplinkSignallingTransferIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{GERANUplinkSignallingTransferIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+GERANUplinkSignallingTransferIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-UC-ID CRITICALITY ignore TYPE UC-ID PRESENCE mandatory } |
+ -- UC-Id may be GERAN cell identifier.
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-S-RNTI CRITICALITY ignore TYPE S-RNTI PRESENCE mandatory } |
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE mandatory } |
+ { ID id-CN-PS-DomainIdentifier CRITICALITY ignore TYPE CN-PS-DomainIdentifier PRESENCE optional } |
+ { ID id-CN-CS-DomainIdentifier CRITICALITY ignore TYPE CN-CS-DomainIdentifier PRESENCE optional } |
+ { ID id-URA-Information CRITICALITY ignore TYPE URA-Information PRESENCE optional },
+ -- URA information may be GRA information
+ ...
+}
+
+GERANUplinkSignallingTransferIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PARAMETER UPDATE INDICATION FDD
+--
+-- **************************************************************
+
+RadioLinkParameterUpdateIndicationFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkParameterUpdateIndicationFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkParameterUpdateIndicationFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkParameterUpdateIndicationFDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-HSDSCH-FDD-Update-Information CRITICALITY ignore TYPE HSDSCH-FDD-Update-Information PRESENCE optional}|
+ { ID id-RL-ParameterUpdateIndicationFDD-RL-InformationList CRITICALITY ignore TYPE RL-ParameterUpdateIndicationFDD-RL-InformationList PRESENCE optional },
+ ...
+}
+
+RL-ParameterUpdateIndicationFDD-RL-InformationList ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { { RL-ParameterUpdateIndicationFDD-RL-InformationList-IEs} }
+
+RL-ParameterUpdateIndicationFDD-RL-InformationList-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RL-ParameterUpdateIndicationFDD-RL-Information-Item CRITICALITY ignore TYPE RL-ParameterUpdateIndicationFDD-RL-Information-Item PRESENCE mandatory }
+}
+
+RL-ParameterUpdateIndicationFDD-RL-Information-Item::= SEQUENCE {
+ rL-ID RL-ID,
+ phase-Reference-Update-Indicator Phase-Reference-Update-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-ParameterUpdateIndicationFDD-RL-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-ParameterUpdateIndicationFDD-RL-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RadioLinkParameterUpdateIndicationFDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-E-DCH-FDD-Update-Information CRITICALITY ignore EXTENSION E-DCH-FDD-Update-Information PRESENCE optional }|
+ { ID id-Additional-HS-Cell-Information-RL-Param-Upd CRITICALITY ignore EXTENSION Additional-HS-Cell-Information-RL-Param-Upd PRESENCE optional }|
+ { ID id-Additional-EDCH-Cell-Information-RL-Param-Upd CRITICALITY ignore EXTENSION Additional-EDCH-Cell-Information-RL-Param-Upd PRESENCE optional },
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Param-Upd ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Additional-HS-Cell-Information-RL-Param-Upd-ItemIEs
+
+
+
+Additional-HS-Cell-Information-RL-Param-Upd-ItemIEs ::=SEQUENCE{
+ hSPDSCH-RL-ID RL-ID,
+ hS-DSCH-FDD-Secondary-Serving-Update-Information HS-DSCH-FDD-Secondary-Serving-Update-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-HS-Cell-Information-RL-Setup-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-HS-Cell-Information-RL-Setup-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Additional-EDCH-Cell-Information-RL-Param-Upd ::= SEQUENCE (SIZE (1..maxNrOfEDCH-1)) OF Additional-EDCH-Cell-Information-RL-Param-Upd-ItemIEs
+
+Additional-EDCH-Cell-Information-RL-Param-Upd-ItemIEs ::=SEQUENCE{
+ additional-EDCH-FDD-Update-Information Additional-EDCH-FDD-Update-Information,
+ iE-Extensions ProtocolExtensionContainer { { Additional-EDCH-FDD-Update-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-EDCH-FDD-Update-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PARAMETER UPDATE INDICATION TDD
+--
+-- **************************************************************
+
+RadioLinkParameterUpdateIndicationTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkParameterUpdateIndicationTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkParameterUpdateIndicationTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkParameterUpdateIndicationTDD-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-HSDSCH-TDD-Update-Information CRITICALITY ignore TYPE HSDSCH-TDD-Update-Information PRESENCE optional},
+ ...
+}
+
+RadioLinkParameterUpdateIndicationTDD-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+UEMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UEMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+UEMeasurementInitiationRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-AllowedQueuingTime CRITICALITY reject TYPE AllowedQueuingTime PRESENCE optional } |
+ { ID id-MeasurementID CRITICALITY reject TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-UEMeasurementType CRITICALITY reject TYPE UEMeasurementType PRESENCE mandatory } |
+ { ID id-UEMeasurementTimeslotInfoHCR CRITICALITY reject TYPE UEMeasurementTimeslotInfoHCR PRESENCE optional } |
+ { ID id-UEMeasurementTimeslotInfoLCR CRITICALITY reject TYPE UEMeasurementTimeslotInfoLCR PRESENCE optional } |
+ { ID id-MeasurementFilterCoefficient CRITICALITY reject TYPE MeasurementFilterCoefficient PRESENCE optional } |
+ { ID id-UEMeasurementReportCharacteristics CRITICALITY reject TYPE UEMeasurementReportCharacteristics PRESENCE mandatory } |
+ { ID id-UEMeasurementParameterModAllow CRITICALITY reject TYPE UEMeasurementParameterModAllow PRESENCE mandatory },
+ ...
+}
+
+UEMeasurementInitiationRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UEMeasurementTimeslotInfo768 CRITICALITY reject EXTENSION UEMeasurementTimeslotInfo768 PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+UEMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UEMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+UEMeasurementInitiationResponse-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-MeasurementFilterCoefficient CRITICALITY reject TYPE MeasurementFilterCoefficient PRESENCE optional } |
+ { ID id-UEMeasurementReportCharacteristics CRITICALITY reject TYPE UEMeasurementReportCharacteristics PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UEMeasurementInitiationResponse-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+UEMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UEMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+UEMeasurementInitiationFailure-IEs RNSAP-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 },
+ ...
+}
+
+UEMeasurementInitiationFailure-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE MEASUREMENT REPORT
+--
+-- **************************************************************
+
+UEMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UEMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+UEMeasurementReport-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-UEMeasurementValueInformation CRITICALITY ignore TYPE UEMeasurementValueInformation PRESENCE mandatory },
+ ...
+}
+
+UEMeasurementReport-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+UEMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UEMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+UEMeasurementTerminationRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory },
+ ...
+}
+
+UEMeasurementTerminationRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+UEMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UEMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+UEMeasurementFailureIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+UEMeasurementFailureIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- IUR INVOKE TRACE
+--
+-- **************************************************************
+
+IurInvokeTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{IurInvokeTrace-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{IurInvokeTrace-Extensions}} OPTIONAL,
+ ...
+}
+
+IurInvokeTrace-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional }|
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory }|
+ { ID id-UEIdentity CRITICALITY ignore TYPE UEIdentity PRESENCE mandatory }|
+ { ID id-TraceRecordingSessionReference CRITICALITY ignore TYPE TraceRecordingSessionReference PRESENCE mandatory }|
+ { ID id-ListOfInterfacesToTrace CRITICALITY ignore TYPE ListOfInterfacesToTrace PRESENCE optional }|
+ { ID id-TraceDepth CRITICALITY ignore TYPE TraceDepth PRESENCE mandatory },
+ ...
+}
+
+ListOfInterfacesToTrace ::= SEQUENCE (SIZE (1..maxNrOfInterfaces)) OF ProtocolIE-Single-Container {{ InterfacesToBeTracedItemIE }}
+
+InterfacesToBeTracedItemIE RNSAP-PROTOCOL-IES ::= {
+ { ID id-InterfacesToTraceItem CRITICALITY ignore TYPE InterfacesToTraceItem PRESENCE mandatory }
+}
+
+InterfacesToTraceItem ::= SEQUENCE {
+ interface ENUMERATED {iub,iur,...},
+ iE-Extensions ProtocolExtensionContainer { {InterfacesToTraceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterfacesToTraceItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+IurInvokeTrace-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- IUR DEACTIVATE TRACE
+--
+-- **************************************************************
+
+IurDeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{IurDeactivateTrace-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{IurDeactivateTrace-Extensions}} OPTIONAL,
+ ...
+}
+
+IurDeactivateTrace-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-D-RNTI CRITICALITY ignore TYPE D-RNTI PRESENCE optional }|
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory },
+ ...
+}
+
+IurDeactivateTrace-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS ATTACH COMMAND
+--
+-- **************************************************************
+
+MBMSAttachCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MBMSAttachCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{MBMSAttachCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+MBMSAttachCommand-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MBMS-Bearer-Service-List CRITICALITY ignore TYPE MBMS-Bearer-Service-List PRESENCE mandatory} |
+ { ID id-UE-State CRITICALITY ignore TYPE UE-State PRESENCE optional},
+ ...
+}
+
+MBMSAttachCommand-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS DETACH COMMAND
+--
+-- **************************************************************
+
+MBMSDetachCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MBMSDetachCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{MBMSDetachCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+MBMSDetachCommand-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MBMS-Bearer-Service-List CRITICALITY ignore TYPE MBMS-Bearer-Service-List PRESENCE mandatory} |
+ { ID id-UE-State CRITICALITY ignore TYPE UE-State PRESENCE optional},
+ ...
+}
+
+MBMSDetachCommand-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT INFORMATION TRANSFER
+--
+-- **************************************************************
+
+DirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DirectInformationTransfer-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DirectInformationTransfer-Extensions}} OPTIONAL,
+ ...
+}
+
+DirectInformationTransfer-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RNC-ID CRITICALITY ignore TYPE RNC-ID PRESENCE mandatory} |
+ { ID id-ProvidedInformation CRITICALITY ignore TYPE ProvidedInformation PRESENCE mandatory} ,
+ ...
+}
+
+DirectInformationTransfer-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Extended-RNC-ID CRITICALITY reject EXTENSION Extended-RNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION REQUEST
+--
+-- **************************************************************
+
+EnhancedRelocationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{EnhancedRelocationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{EnhancedRelocationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+EnhancedRelocationRequest-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory } |
+ { ID id-Permanent-NAS-UE-Identity CRITICALITY reject TYPE Permanent-NAS-UE-Identity PRESENCE mandatory } |
+ { ID id-SRNC-ID CRITICALITY reject TYPE RNC-ID PRESENCE optional }|
+ -- This IE shall be present if the Relocation type IE is set to "UE involved in relocation of SRNS" --
+ { ID id-Extended-SRNC-ID CRITICALITY reject TYPE Extended-RNC-ID PRESENCE optional }|
+ { ID id-S-RNTI CRITICALITY reject TYPE S-RNTI PRESENCE mandatory }|
+ { ID id-RANAP-EnhancedRelocationInformationRequest CRITICALITY reject TYPE RANAP-EnhancedRelocationInformationRequest PRESENCE mandatory },
+ ...
+}
+
+EnhancedRelocationRequest-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION RESPONSE
+--
+-- **************************************************************
+
+EnhancedRelocationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{EnhancedRelocationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{EnhancedRelocationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+EnhancedRelocationResponse-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-RANAP-EnhancedRelocationInformationResponse CRITICALITY ignore TYPE RANAP-EnhancedRelocationInformationResponse PRESENCE mandatory },
+ ...
+}
+
+EnhancedRelocationResponse-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION FAILURE
+--
+-- **************************************************************
+
+EnhancedRelocationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{EnhancedRelocationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{EnhancedRelocationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+EnhancedRelocationFailure-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+EnhancedRelocationFailure-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION CANCEL
+--
+-- **************************************************************
+
+EnhancedRelocationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{EnhancedRelocationCancel-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{EnhancedRelocationCancel-Extensions}} OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCancel-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+EnhancedRelocationCancel-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION SIGNALLING TRANSFER
+--
+-- **************************************************************
+
+EnhancedRelocationSignallingTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{EnhancedRelocationSignallingTransfer-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{EnhancedRelocationSignallingTransfer-Extensions}} OPTIONAL,
+ ...
+}
+
+EnhancedRelocationSignallingTransfer-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE mandatory },
+ ...
+}
+
+EnhancedRelocationSignallingTransfer-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION RELEASE
+--
+-- **************************************************************
+
+EnhancedRelocationRelease ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{EnhancedRelocationRelease-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{EnhancedRelocationRelease-Extensions}} OPTIONAL,
+ ...
+}
+
+EnhancedRelocationRelease-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-Released-CN-Domain CRITICALITY ignore TYPE Released-CN-Domain PRESENCE mandatory },
+ ...
+}
+
+EnhancedRelocationRelease-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBSFN MCCH INFORMATION
+--
+-- **************************************************************
+
+MBSFNMCCHInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MBSFNMCCHInformation-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{MBSFNMCCHInformation-Extensions}} OPTIONAL,
+ ...
+}
+
+MBSFNMCCHInformation-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-MBSFN-Cluster-Identity CRITICALITY ignore TYPE MBSFN-Cluster-Identity PRESENCE mandatory} |
+ { ID id-MCCH-Message-List CRITICALITY reject TYPE MCCH-Message-List PRESENCE mandatory} |
+ { ID id-CFN CRITICALITY reject TYPE CFN PRESENCE mandatory}|
+ { ID id-MCCH-Configuration-Info CRITICALITY ignore TYPE MCCH-Configuration-Info PRESENCE optional}|
+ { ID id-MBSFN-Scheduling-Transmission-Time-Interval-Info-List CRITICALITY ignore TYPE MBSFN-Scheduling-Transmission-Time-Interval-Info-List PRESENCE optional},
+ ...
+}
+
+MBSFNMCCHInformation-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECONDARY UL FREQUENCY REPORT
+--
+-- **************************************************************
+
+SecondaryULFrequencyReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SecondaryULFrequencyReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SecondaryULFrequencyReport-Extensions}} OPTIONAL,
+ ...
+}
+
+SecondaryULFrequencyReport-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-ActivationInformation CRITICALITY ignore TYPE ActivationInformation PRESENCE mandatory },
+ ...
+}
+
+SecondaryULFrequencyReport-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECONDARY UL FREQUENCY UPDATE INDICATION
+--
+-- **************************************************************
+
+SecondaryULFrequencyUpdateIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SecondaryULFrequencyUpdateIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SecondaryULFrequencyUpdateIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+
+SecondaryULFrequencyUpdateIndication-IEs RNSAP-PROTOCOL-IES ::= {
+ { ID id-ActivationInformation CRITICALITY ignore TYPE ActivationInformation PRESENCE mandatory },
+ ...
+}
+
+SecondaryULFrequencyUpdateIndication-Extensions RNSAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs RNSAP-PRIVATE-IES ::= {
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-PDU-Descriptions.asn b/epan/dissectors/asn1/rnsap/RNSAP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..56ce3b92dc
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/RNSAP-PDU-Descriptions.asn
@@ -0,0 +1,771 @@
+-- RNSAP-PDU-Descriptions.asn
+--
+-- Taken from 3GPP TS 25.423 V9.4.0 (2010-09)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.423/25423-790.zip/25423-790.DOC
+--
+-- 9.3.2 Elementary Procedure Definitions
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+RNSAP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rnsap (1) version1 (1) rnsap-PDU-Descriptions (0) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureID,
+ TransactionID
+FROM RNSAP-CommonDataTypes
+
+ CommonMeasurementFailureIndication,
+ CommonMeasurementInitiationFailure,
+ CommonMeasurementInitiationRequest,
+ CommonMeasurementInitiationResponse,
+ CommonMeasurementReport,
+ CommonMeasurementTerminationRequest,
+ CommonTransportChannelResourcesFailure,
+ CommonTransportChannelResourcesRequest,
+ CommonTransportChannelResourcesReleaseRequest,
+ CommonTransportChannelResourcesResponseFDD,
+ CommonTransportChannelResourcesResponseTDD,
+ CompressedModeCommand,
+ DedicatedMeasurementFailureIndication,
+ DedicatedMeasurementInitiationFailure,
+ DedicatedMeasurementInitiationRequest,
+ DedicatedMeasurementInitiationResponse,
+ DedicatedMeasurementReport,
+ DedicatedMeasurementTerminationRequest,
+ DirectInformationTransfer,
+ DL-PowerControlRequest,
+ DL-PowerTimeslotControlRequest,
+ DownlinkSignallingTransferRequest,
+ ErrorIndication,
+ EnhancedRelocationCancel,
+ EnhancedRelocationFailure,
+ EnhancedRelocationRequest,
+ EnhancedRelocationResponse,
+ EnhancedRelocationSignallingTransfer,
+ EnhancedRelocationRelease,
+ InformationExchangeFailureIndication,
+ InformationExchangeInitiationFailure,
+ InformationExchangeInitiationRequest,
+ InformationExchangeInitiationResponse,
+ InformationExchangeTerminationRequest,
+ InformationReport,
+ IurDeactivateTrace,
+ IurInvokeTrace,
+ MBMSAttachCommand,
+ MBMSDetachCommand,
+ MBSFNMCCHInformation,
+ PagingRequest,
+ PhysicalChannelReconfigurationCommand,
+ PhysicalChannelReconfigurationFailure,
+ PhysicalChannelReconfigurationRequestFDD,
+ PhysicalChannelReconfigurationRequestTDD,
+ PrivateMessage,
+ RadioLinkActivationCommandFDD,
+ RadioLinkActivationCommandTDD,
+ RadioLinkAdditionFailureFDD,
+ RadioLinkAdditionFailureTDD,
+ RadioLinkAdditionRequestFDD,
+ RadioLinkAdditionRequestTDD,
+ RadioLinkAdditionResponseFDD,
+ RadioLinkAdditionResponseTDD,
+ RadioLinkCongestionIndication,
+ RadioLinkDeletionRequest,
+ RadioLinkDeletionResponse,
+ RadioLinkFailureIndication,
+ RadioLinkParameterUpdateIndicationFDD,
+ RadioLinkParameterUpdateIndicationTDD,
+ RadioLinkPreemptionRequiredIndication,
+ RadioLinkReconfigurationCancel,
+ RadioLinkReconfigurationCommit,
+ RadioLinkReconfigurationFailure,
+ RadioLinkReconfigurationPrepareFDD,
+ RadioLinkReconfigurationPrepareTDD,
+ RadioLinkReconfigurationReadyFDD,
+ RadioLinkReconfigurationReadyTDD,
+ RadioLinkReconfigurationRequestFDD,
+ RadioLinkReconfigurationRequestTDD,
+ RadioLinkReconfigurationResponseFDD,
+ RadioLinkReconfigurationResponseTDD,
+ RadioLinkRestoreIndication,
+ RadioLinkSetupFailureFDD,
+ RadioLinkSetupFailureTDD,
+ RadioLinkSetupRequestFDD,
+ RadioLinkSetupRequestTDD,
+ RadioLinkSetupResponseFDD,
+ RadioLinkSetupResponseTDD,
+ RelocationCommit,
+ ResetRequest,
+ ResetResponse,
+ UEMeasurementFailureIndication,
+ UEMeasurementInitiationFailure,
+ UEMeasurementInitiationRequest,
+ UEMeasurementInitiationResponse,
+ UEMeasurementReport,
+ UEMeasurementTerminationRequest,
+ SecondaryULFrequencyReport,
+ SecondaryULFrequencyUpdateIndication,
+ UplinkSignallingTransferIndicationFDD,
+ UplinkSignallingTransferIndicationTDD,
+ GERANUplinkSignallingTransferIndication
+FROM RNSAP-PDU-Contents
+
+ id-commonMeasurementFailure,
+ id-commonMeasurementInitiation,
+ id-commonMeasurementReporting,
+ id-commonMeasurementTermination,
+ id-commonTransportChannelResourcesInitialisation,
+ id-commonTransportChannelResourcesRelease,
+ id-compressedModeCommand,
+ id-downlinkPowerControl,
+ id-downlinkSignallingTransfer,
+ id-downlinkPowerTimeslotControl,
+ id-enhancedRelocation,
+ id-enhancedRelocationCancel,
+ id-enhancedRelocationSignallingTransfer,
+ id-enhancedRelocationRelease,
+ id-errorIndication,
+ id-informationExchangeFailure,
+ id-informationExchangeInitiation,
+ id-informationReporting,
+ id-informationExchangeTermination,
+ id-iurDeactivateTrace,
+ id-iurInvokeTrace,
+ id-dedicatedMeasurementFailure,
+ id-dedicatedMeasurementInitiation,
+ id-dedicatedMeasurementReporting,
+ id-dedicatedMeasurementTermination,
+ id-directInformationTransfer,
+ id-mBMSAttach,
+ id-mBMSDetach,
+ id-mBSFNMCCHInformation,
+ id-paging,
+ id-physicalChannelReconfiguration,
+ id-privateMessage,
+ id-radioLinkActivation,
+ id-radioLinkAddition,
+ id-radioLinkCongestion,
+ id-radioLinkDeletion,
+ id-radioLinkFailure,
+ id-radioLinkParameterUpdate,
+ id-radioLinkPreemption,
+ id-radioLinkRestoration,
+ id-radioLinkSetup,
+ id-relocationCommit,
+ id-reset,
+ id-synchronisedRadioLinkReconfigurationCancellation,
+ id-synchronisedRadioLinkReconfigurationCommit,
+ id-synchronisedRadioLinkReconfigurationPreparation,
+ id-uEMeasurementFailure,
+ id-uEMeasurementInitiation,
+ id-uEMeasurementReporting,
+ id-uEMeasurementTermination,
+ id-secondaryULFrequencyReporting,
+ id-secondaryULFrequencyUpdate,
+ id-unSynchronisedRadioLinkReconfiguration,
+ id-uplinkSignallingTransfer,
+ id-gERANuplinkSignallingTransfer
+FROM RNSAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RNSAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureID ProcedureID UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE ID &procedureID
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+RNSAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureID RNSAP-ELEMENTARY-PROCEDURE.&procedureID ({RNSAP-ELEMENTARY-PROCEDURES}),
+ criticality RNSAP-ELEMENTARY-PROCEDURE.&criticality ({RNSAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value RNSAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RNSAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureID RNSAP-ELEMENTARY-PROCEDURE.&procedureID ({RNSAP-ELEMENTARY-PROCEDURES}),
+ criticality RNSAP-ELEMENTARY-PROCEDURE.&criticality ({RNSAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value RNSAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RNSAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureID RNSAP-ELEMENTARY-PROCEDURE.&procedureID ({RNSAP-ELEMENTARY-PROCEDURES}),
+ criticality RNSAP-ELEMENTARY-PROCEDURE.&criticality ({RNSAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value RNSAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RNSAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+Outcome ::= SEQUENCE {
+ procedureID RNSAP-ELEMENTARY-PROCEDURE.&procedureID ({RNSAP-ELEMENTARY-PROCEDURES}),
+ criticality RNSAP-ELEMENTARY-PROCEDURE.&criticality ({RNSAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value RNSAP-ELEMENTARY-PROCEDURE.&Outcome ({RNSAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RNSAP-ELEMENTARY-PROCEDURES RNSAP-ELEMENTARY-PROCEDURE ::= {
+ RNSAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RNSAP-ELEMENTARY-PROCEDURES-CLASS-2 |
+ RNSAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
+ ...
+}
+
+RNSAP-ELEMENTARY-PROCEDURES-CLASS-1 RNSAP-ELEMENTARY-PROCEDURE ::= {
+ radioLinkSetupFDD |
+ radioLinkSetupTDD |
+ radioLinkAdditionFDD |
+ radioLinkAdditionTDD |
+ radioLinkDeletion |
+ synchronisedRadioLinkReconfigurationPreparationFDD |
+ synchronisedRadioLinkReconfigurationPreparationTDD |
+ unSynchronisedRadioLinkReconfigurationFDD |
+ unSynchronisedRadioLinkReconfigurationTDD |
+ physicalChannelReconfigurationFDD |
+ physicalChannelReconfigurationTDD |
+ dedicatedMeasurementInitiation |
+ commonTransportChannelResourcesInitialisationFDD |
+ commonTransportChannelResourcesInitialisationTDD ,
+ ...,
+ commonMeasurementInitiation |
+ informationExchangeInitiation |
+ reset |
+ uEMeasurementInitiation |
+ enhancedRelocation
+}
+
+RNSAP-ELEMENTARY-PROCEDURES-CLASS-2 RNSAP-ELEMENTARY-PROCEDURE ::= {
+ uplinkSignallingTransferFDD |
+ uplinkSignallingTransferTDD |
+ downlinkSignallingTransfer |
+ relocationCommit |
+ paging |
+ synchronisedRadioLinkReconfigurationCommit |
+ synchronisedRadioLinkReconfigurationCancellation |
+ radioLinkFailure |
+ radioLinkPreemption |
+ radioLinkRestoration |
+ dedicatedMeasurementReporting |
+ dedicatedMeasurementTermination |
+ dedicatedMeasurementFailure |
+ downlinkPowerControlFDD |
+ downlinkPowerTimeslotControl |
+ compressedModeCommandFDD |
+ commonTransportChannelResourcesRelease |
+ errorIndication |
+ privateMessage ,
+ ...,
+ radioLinkCongestion |
+ commonMeasurementFailure |
+ commonMeasurementReporting |
+ commonMeasurementTermination |
+ informationExchangeFailure |
+ informationExchangeTermination |
+ informationReporting |
+ radioLinkActivationFDD |
+ radioLinkActivationTDD |
+ gERANuplinkSignallingTransfer |
+ radioLinkParameterUpdateFDD |
+ radioLinkParameterUpdateTDD |
+ uEMeasurementReporting |
+ uEMeasurementTermination |
+ uEMeasurementFailure |
+ iurInvokeTrace |
+ iurDeactivateTrace |
+ mBMSAttach |
+ mBMSDetach |
+ directInformationTransfer |
+ enhancedRelocationCancel |
+ enhancedRelocationSignallingTransfer |
+ enhancedRelocationRelease |
+ mBSFNMCCHInformation |
+ secondaryULFrequencyReportingFDD |
+ secondaryULFrequencyUpdateFDD
+
+
+
+
+}
+
+RNSAP-ELEMENTARY-PROCEDURES-CLASS-3 RNSAP-ELEMENTARY-PROCEDURE ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+radioLinkSetupFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkSetupRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkSetupResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkSetupFailureFDD
+ PROCEDURE ID { procedureCode id-radioLinkSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+radioLinkSetupTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkSetupRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkSetupResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkSetupFailureTDD
+ PROCEDURE ID { procedureCode id-radioLinkSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+radioLinkAdditionFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkAdditionRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkAdditionResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkAdditionFailureFDD
+ PROCEDURE ID { procedureCode id-radioLinkAddition , ddMode fdd }
+ CRITICALITY reject
+}
+
+radioLinkAdditionTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkAdditionRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkAdditionResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkAdditionFailureTDD
+ PROCEDURE ID { procedureCode id-radioLinkAddition , ddMode tdd }
+ CRITICALITY reject
+}
+
+radioLinkDeletion RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkDeletionRequest
+ SUCCESSFUL OUTCOME RadioLinkDeletionResponse
+ PROCEDURE ID { procedureCode id-radioLinkDeletion, ddMode common }
+ CRITICALITY reject
+}
+
+synchronisedRadioLinkReconfigurationPreparationFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationPrepareFDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationReadyFDD
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationPreparation, ddMode fdd }
+ CRITICALITY reject
+}
+
+synchronisedRadioLinkReconfigurationPreparationTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationPrepareTDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationReadyTDD
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationPreparation, ddMode tdd }
+ CRITICALITY reject
+}
+
+unSynchronisedRadioLinkReconfigurationFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ PROCEDURE ID { procedureCode id-unSynchronisedRadioLinkReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+unSynchronisedRadioLinkReconfigurationTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ PROCEDURE ID { procedureCode id-unSynchronisedRadioLinkReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+physicalChannelReconfigurationFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PhysicalChannelReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME PhysicalChannelReconfigurationCommand
+ UNSUCCESSFUL OUTCOME PhysicalChannelReconfigurationFailure
+ PROCEDURE ID { procedureCode id-physicalChannelReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+physicalChannelReconfigurationTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PhysicalChannelReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME PhysicalChannelReconfigurationCommand
+ UNSUCCESSFUL OUTCOME PhysicalChannelReconfigurationFailure
+ PROCEDURE ID { procedureCode id-physicalChannelReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+dedicatedMeasurementInitiation RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME DedicatedMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME DedicatedMeasurementInitiationFailure
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+commonTransportChannelResourcesInitialisationFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelResourcesRequest
+ SUCCESSFUL OUTCOME CommonTransportChannelResourcesResponseFDD
+ UNSUCCESSFUL OUTCOME CommonTransportChannelResourcesFailure
+ PROCEDURE ID { procedureCode id-commonTransportChannelResourcesInitialisation, ddMode fdd }
+ CRITICALITY reject
+}
+
+commonTransportChannelResourcesInitialisationTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelResourcesRequest
+ SUCCESSFUL OUTCOME CommonTransportChannelResourcesResponseTDD
+ UNSUCCESSFUL OUTCOME CommonTransportChannelResourcesFailure
+ PROCEDURE ID { procedureCode id-commonTransportChannelResourcesInitialisation, ddMode tdd }
+ CRITICALITY reject
+}
+
+uplinkSignallingTransferFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkSignallingTransferIndicationFDD
+ PROCEDURE ID { procedureCode id-uplinkSignallingTransfer, ddMode fdd }
+ CRITICALITY ignore
+}
+
+uplinkSignallingTransferTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkSignallingTransferIndicationTDD
+ PROCEDURE ID { procedureCode id-uplinkSignallingTransfer, ddMode tdd }
+ CRITICALITY ignore
+}
+
+downlinkSignallingTransfer RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkSignallingTransferRequest
+ PROCEDURE ID { procedureCode id-downlinkSignallingTransfer, ddMode common }
+ CRITICALITY ignore
+}
+
+relocationCommit RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationCommit
+ PROCEDURE ID { procedureCode id-relocationCommit, ddMode common }
+ CRITICALITY ignore
+}
+
+paging RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PagingRequest
+ PROCEDURE ID { procedureCode id-paging, ddMode common }
+ CRITICALITY ignore
+}
+
+synchronisedRadioLinkReconfigurationCommit RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationCommit
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationCommit, ddMode common }
+ CRITICALITY ignore
+}
+
+synchronisedRadioLinkReconfigurationCancellation RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationCancel
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationCancellation, ddMode common }
+ CRITICALITY ignore
+}
+
+radioLinkFailure RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkFailureIndication
+ PROCEDURE ID { procedureCode id-radioLinkFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+radioLinkPreemption RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkPreemptionRequiredIndication
+ PROCEDURE ID { procedureCode id-radioLinkPreemption, ddMode common }
+ CRITICALITY ignore
+}
+
+radioLinkRestoration RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkRestoreIndication
+ PROCEDURE ID { procedureCode id-radioLinkRestoration, ddMode common }
+ CRITICALITY ignore
+}
+
+dedicatedMeasurementReporting RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementReport
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementReporting, ddMode common }
+ CRITICALITY ignore
+}
+
+dedicatedMeasurementTermination RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementTerminationRequest
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+dedicatedMeasurementFailure RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementFailureIndication
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+radioLinkCongestion RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkCongestionIndication
+ PROCEDURE ID { procedureCode id-radioLinkCongestion, ddMode common }
+ CRITICALITY ignore
+}
+
+downlinkPowerControlFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DL-PowerControlRequest
+ PROCEDURE ID { procedureCode id-downlinkPowerControl, ddMode fdd }
+ CRITICALITY ignore
+}
+
+downlinkPowerTimeslotControl RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DL-PowerTimeslotControlRequest
+ PROCEDURE ID { procedureCode id-downlinkPowerTimeslotControl, ddMode tdd }
+ CRITICALITY ignore
+}
+
+compressedModeCommandFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CompressedModeCommand
+ PROCEDURE ID { procedureCode id-compressedModeCommand, ddMode fdd }
+ CRITICALITY ignore
+}
+
+commonTransportChannelResourcesRelease RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelResourcesReleaseRequest
+ PROCEDURE ID { procedureCode id-commonTransportChannelResourcesRelease, ddMode common }
+ CRITICALITY ignore
+}
+
+errorIndication RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE ID { procedureCode id-errorIndication, ddMode common }
+ CRITICALITY ignore
+}
+
+commonMeasurementInitiation RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME CommonMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME CommonMeasurementInitiationFailure
+ PROCEDURE ID { procedureCode id-commonMeasurementInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+commonMeasurementReporting RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementReport
+ PROCEDURE ID { procedureCode id-commonMeasurementReporting, ddMode common }
+ CRITICALITY ignore
+}
+
+commonMeasurementTermination RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementTerminationRequest
+ PROCEDURE ID { procedureCode id-commonMeasurementTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+commonMeasurementFailure RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementFailureIndication
+ PROCEDURE ID { procedureCode id-commonMeasurementFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+informationExchangeInitiation RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeInitiationRequest
+ SUCCESSFUL OUTCOME InformationExchangeInitiationResponse
+ UNSUCCESSFUL OUTCOME InformationExchangeInitiationFailure
+ PROCEDURE ID { procedureCode id-informationExchangeInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+informationReporting RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationReport
+ PROCEDURE ID { procedureCode id-informationReporting, ddMode common }
+ CRITICALITY ignore
+}
+
+informationExchangeTermination RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeTerminationRequest
+ PROCEDURE ID { procedureCode id-informationExchangeTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+informationExchangeFailure RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeFailureIndication
+ PROCEDURE ID { procedureCode id-informationExchangeFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+privateMessage RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE ID { procedureCode id-privateMessage, ddMode common }
+ CRITICALITY ignore
+}
+
+reset RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetRequest
+ SUCCESSFUL OUTCOME ResetResponse
+ PROCEDURE ID { procedureCode id-reset, ddMode common }
+ CRITICALITY reject
+}
+
+radioLinkActivationFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkActivationCommandFDD
+ PROCEDURE ID { procedureCode id-radioLinkActivation, ddMode fdd }
+ CRITICALITY ignore
+}
+
+radioLinkActivationTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkActivationCommandTDD
+ PROCEDURE ID { procedureCode id-radioLinkActivation, ddMode tdd }
+ CRITICALITY ignore
+}
+
+gERANuplinkSignallingTransfer RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE GERANUplinkSignallingTransferIndication
+ PROCEDURE ID { procedureCode id-gERANuplinkSignallingTransfer, ddMode common }
+ CRITICALITY ignore
+}
+
+radioLinkParameterUpdateFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkParameterUpdateIndicationFDD
+ PROCEDURE ID { procedureCode id-radioLinkParameterUpdate, ddMode fdd }
+ CRITICALITY ignore
+}
+
+radioLinkParameterUpdateTDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkParameterUpdateIndicationTDD
+ PROCEDURE ID { procedureCode id-radioLinkParameterUpdate, ddMode tdd }
+ CRITICALITY ignore
+}
+
+uEMeasurementInitiation RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME UEMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME UEMeasurementInitiationFailure
+ PROCEDURE ID { procedureCode id-uEMeasurementInitiation, ddMode tdd }
+ CRITICALITY reject
+}
+
+uEMeasurementReporting RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEMeasurementReport
+ PROCEDURE ID { procedureCode id-uEMeasurementReporting, ddMode tdd }
+ CRITICALITY ignore
+}
+
+uEMeasurementTermination RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEMeasurementTerminationRequest
+ PROCEDURE ID { procedureCode id-uEMeasurementTermination, ddMode tdd }
+ CRITICALITY ignore
+}
+
+uEMeasurementFailure RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEMeasurementFailureIndication
+ PROCEDURE ID { procedureCode id-uEMeasurementFailure, ddMode tdd }
+ CRITICALITY ignore
+}
+
+iurInvokeTrace RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE IurInvokeTrace
+ PROCEDURE ID { procedureCode id-iurInvokeTrace, ddMode common }
+ CRITICALITY ignore
+}
+
+iurDeactivateTrace RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE IurDeactivateTrace
+ PROCEDURE ID { procedureCode id-iurDeactivateTrace, ddMode common }
+ CRITICALITY ignore
+}
+
+mBMSAttach RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSAttachCommand
+ PROCEDURE ID { procedureCode id-mBMSAttach, ddMode common }
+ CRITICALITY ignore
+}
+
+mBMSDetach RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSDetachCommand
+ PROCEDURE ID { procedureCode id-mBMSDetach, ddMode common }
+ CRITICALITY ignore
+}
+
+directInformationTransfer RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectInformationTransfer
+ PROCEDURE ID { procedureCode id-directInformationTransfer, ddMode common }
+ CRITICALITY ignore
+}
+
+enhancedRelocation RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationRequest
+ SUCCESSFUL OUTCOME EnhancedRelocationResponse
+ UNSUCCESSFUL OUTCOME EnhancedRelocationFailure
+ PROCEDURE ID { procedureCode id-enhancedRelocation, ddMode common }
+ CRITICALITY reject
+}
+
+enhancedRelocationCancel RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationCancel
+ PROCEDURE ID { procedureCode id-enhancedRelocationCancel, ddMode common }
+ CRITICALITY ignore
+}
+
+enhancedRelocationSignallingTransfer RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationSignallingTransfer
+ PROCEDURE ID { procedureCode id-enhancedRelocationSignallingTransfer, ddMode common }
+ CRITICALITY ignore
+}
+
+enhancedRelocationRelease RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationRelease
+ PROCEDURE ID { procedureCode id-enhancedRelocationRelease, ddMode common }
+ CRITICALITY ignore
+}
+
+mBSFNMCCHInformation RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBSFNMCCHInformation
+ PROCEDURE ID { procedureCode id-mBSFNMCCHInformation, ddMode common }
+ CRITICALITY reject
+}
+
+secondaryULFrequencyReportingFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecondaryULFrequencyReport
+ PROCEDURE ID { procedureCode id-secondaryULFrequencyReporting, ddMode fdd }
+ CRITICALITY ignore
+}
+
+secondaryULFrequencyUpdateFDD RNSAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecondaryULFrequencyUpdateIndication
+ PROCEDURE ID { procedureCode id-secondaryULFrequencyUpdate, ddMode fdd }
+ CRITICALITY ignore
+}
+
+END
diff --git a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
new file mode 100644
index 0000000000..afef4396f1
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
@@ -0,0 +1,189 @@
+/* packet-rnsap.c
+ * Routines for dissecting Universal Mobile Telecommunications System (UMTS);
+ * UTRAN Iur interface Radio Network Subsystem
+ * Application Part (RNSAP) signalling
+ * (3GPP TS 25.423 version 6.7.0 Release 6) packet dissection
+ * Copyright 2005 - 2006, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref: 3GPP TS 25.423 version 6.7.0 Release 6
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-ber.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "UTRAN Iur interface Radio Network Subsystem Application Part"
+#define PSNAME "RNSAP"
+#define PFNAME "rnsap"
+
+#define SCCP_SSN_RNSAP 143
+
+#include "packet-rnsap-val.h"
+
+void proto_register_rnsap(void);
+void proto_reg_handoff_rnsap(void);
+
+static dissector_handle_t rrc_dl_dcch_handle = NULL;
+
+/* Initialize the protocol and registered fields */
+static int proto_rnsap = -1;
+
+#include "packet-rnsap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_rnsap = -1;
+
+#include "packet-rnsap-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint32 ddMode;
+static const gchar *ProcedureID;
+static const char *obj_id = NULL;
+
+
+/* Dissector tables */
+static dissector_table_t rnsap_ies_dissector_table;
+static dissector_table_t rnsap_extension_dissector_table;
+static dissector_table_t rnsap_proc_imsg_dissector_table;
+static dissector_table_t rnsap_proc_sout_dissector_table;
+static dissector_table_t rnsap_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_PrivateIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+#include "packet-rnsap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(rnsap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(rnsap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_PrivateIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (call_ber_oid_callback(obj_id, tvb, 0, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureID) return 0;
+ return (dissector_try_string(rnsap_proc_imsg_dissector_table, ProcedureID, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureID) return 0;
+ return (dissector_try_string(rnsap_proc_sout_dissector_table, ProcedureID, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ if (!ProcedureID) return 0;
+ return (dissector_try_string(rnsap_proc_uout_dissector_table, ProcedureID, tvb, pinfo, tree, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_rnsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ proto_item *rnsap_item = NULL;
+ proto_tree *rnsap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RNSAP");
+
+ /* create the rnsap protocol tree */
+ rnsap_item = proto_tree_add_item(tree, proto_rnsap, tvb, 0, -1, ENC_NA);
+ rnsap_tree = proto_item_add_subtree(rnsap_item, ett_rnsap);
+
+ return dissect_RNSAP_PDU_PDU(tvb, pinfo, rnsap_tree, data);
+}
+
+/*--- proto_register_rnsap -------------------------------------------*/
+void proto_register_rnsap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+#include "packet-rnsap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_rnsap,
+#include "packet-rnsap-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_rnsap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_rnsap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ register_dissector("rnsap", dissect_rnsap, proto_rnsap);
+
+ /* Register dissector tables */
+ rnsap_ies_dissector_table = register_dissector_table("rnsap.ies", "RNSAP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ rnsap_extension_dissector_table = register_dissector_table("rnsap.extension", "RNSAP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ rnsap_proc_imsg_dissector_table = register_dissector_table("rnsap.proc.imsg", "RNSAP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ rnsap_proc_sout_dissector_table = register_dissector_table("rnsap.proc.sout", "RNSAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ rnsap_proc_uout_dissector_table = register_dissector_table("rnsap.proc.uout", "RNSAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+}
+
+
+/*--- proto_reg_handoff_rnsap ---------------------------------------*/
+void
+proto_reg_handoff_rnsap(void)
+{
+ dissector_handle_t rnsap_handle;
+
+ rnsap_handle = find_dissector("rnsap");
+ rrc_dl_dcch_handle = find_dissector("rrc.dl.dcch");
+
+ dissector_add_uint("sccp.ssn", SCCP_SSN_RNSAP, rnsap_handle);
+ /* Add heuristic dissector */
+ /*heur_dissector_add("sccp", dissect_sccp_rnsap_heur, "RNSAP over SCCP", "ranap_sccp", proto_rnsap, HEURISTIC_DISABLE); */
+
+#include "packet-rnsap-dis-tab.c"
+}
+
+
diff --git a/epan/dissectors/asn1/rnsap/rnsap.cnf b/epan/dissectors/asn1/rnsap/rnsap.cnf
new file mode 100644
index 0000000000..fb55b2e882
--- /dev/null
+++ b/epan/dissectors/asn1/rnsap/rnsap.cnf
@@ -0,0 +1,945 @@
+# rnsap.cnf
+# rnsap conformation file
+# Copyright 2005 Anders Broman
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.OMIT_ASSIGNMENT
+EDPCH-Information-RLReconfPrepare-FDD
+Non-Serving-RL-Preconfig-Info
+
+#.PDU
+RNSAP-PDU
+
+#.MAKE_DEFINES
+ProcedureCode
+
+#.MAKE_ENUM
+ProtocolIE-ID
+ProcedureID/ddMode
+
+#.USE_VALS_EXT
+ProtocolIE-ID
+CauseRadioNetwork
+TDD-ChannelisationCode768
+Process-Memory-Size
+ProcedureCode
+TDD-ChannelisationCode
+E-DCH-MACdFlow-Retransmission-Timer-LCR
+DiscardTimer
+FrequencyBandIndicator
+MeasurementFilterCoefficient
+
+#.TYPE_RENAME
+ProcedureID/ddMode DdMode
+
+ProtocolIE-Field/value ProtocolIE_Field_value
+PrivateIE-Field/value PrivateIE_Field_value
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+Outcome/value Outcome_value
+
+MidambleShiftAndBurstType/type1 Type1
+MidambleShiftAndBurstType768/type1 Type7681
+MidambleShiftAndBurstType/type2 Type2
+MidambleShiftAndBurstType768/type2 Type7682
+MidambleShiftAndBurstType/type3 Type3
+MidambleShiftAndBurstType768/type3 Type7683
+
+MidambleShiftAndBurstType/type1/midambleAllocationMode MidambleAllocationMode1
+MidambleShiftAndBurstType/type2/midambleAllocationMode MidambleAllocationMode2
+MidambleShiftAndBurstType/type3/midambleAllocationMode MidambleAllocationMode3
+MidambleShiftAndBurstType768/type1/midambleAllocationMode MidambleAllocationMode7681
+MidambleShiftAndBurstType768/type2/midambleAllocationMode MidambleAllocationMode7682
+MidambleShiftAndBurstType768/type3/midambleAllocationMode MidambleAllocationMode7683
+
+#.FIELD_RENAME
+UEMeasurementTimeslotInfoLCR-IEs/timeSlot timeSlotLCR
+
+
+#.OMIT_ASSIGNMENT
+Presence
+ProtocolIE-FieldPair
+ProtocolIE-ContainerList
+ProtocolIE-ContainerPair
+ProtocolIE-ContainerPairList
+#.END
+
+#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS PrivateIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_PrivateIEFieldValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str_ext_const(ProcedureCode, &rnsap_ProcedureCode_vals_ext,
+ "unknown message"));
+#.END
+#.FN_PARS ProcedureID/ddMode VAL_PTR = &ddMode
+
+#.FN_HDR ProcedureID
+ ProcedureCode = 0xFFFF;
+ ddMode = 0xFFFF;
+ ProcedureID = NULL;
+#.END
+
+#.FN_FTR ProcedureID
+ ProcedureID = wmem_strdup_printf(wmem_packet_scope(), "%s/%s",
+ val_to_str_ext(ProcedureCode, &rnsap_ProcedureCode_vals_ext, "unknown(%u)"),
+ val_to_str(ddMode, rnsap_DdMode_vals, "unknown(%u)"));
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+
+#.FN_BODY L3-Information VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ dissector_handle_t parameter_handle = NULL;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ switch (ProcedureCode) {
+
+ case RNSAP_ID_DOWNLINKSIGNALLINGTRANSFER:
+ parameter_handle = rrc_dl_dcch_handle;
+ break;
+ case RNSAP_ID_UPLINKSIGNALLINGTRANSFER:
+ default:
+ break;
+ }
+
+ if (parameter_handle)
+ call_dissector(parameter_handle, parameter_tvb, %(ACTX)s->pinfo, tree);
+
+#.END
+
+#.FN_PARS PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &obj_id
+
+
+#.TYPE_ATTR
+BLER TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL
+#.END
+
+
+#.REGISTER
+
+#RNSAP-PROTOCOL-IES
+RTLoadValue N rnsap.ies id-RTLoadValue
+NRTLoadInformationValue N rnsap.ies id-NRTLoadInformationValue
+UpPTSInterferenceValue N rnsap.ies id-UpPTSInterferenceValue
+TUTRANGANSSMeasurementValueInformation N rnsap.ies id-TUTRANGANSSMeasurementValueInformation
+Rx-Timing-Deviation-Value-LCR N rnsap.ies id-Rx-Timing-Deviation-Value-LCR
+Angle-Of-Arrival-Value-LCR N rnsap.ies id-Angle-Of-Arrival-Value-LCR
+HS-SICH-Reception-Quality-Value N rnsap.ies id-HS-SICH-Reception-Quality
+Rx-Timing-Deviation-Value-768 N rnsap.ies id-Rx-Timing-Deviation-Value-768
+Rx-Timing-Deviation-Value-ext N rnsap.ies id-Rx-Timing-Deviation-Value-ext
+Extended-Round-Trip-Time-Value N rnsap.ies id-Extended-Round-Trip-Time-Value
+IPDL-TDD-ParametersLCR N rnsap.ies id-IPDL-TDD-ParametersLCR
+Load-Value-IncrDecrThres N rnsap.ies id-Load-Value-IncrDecrThres
+Transmitted-Carrier-Power-Value-IncrDecrThres N rnsap.ies id-Transmitted-Carrier-Power-Value-IncrDecrThres
+Received-Total-Wideband-Power-Value-IncrDecrThres N rnsap.ies id-Received-Total-Wideband-Power-Value-IncrDecrThres
+UL-Timeslot-ISCP-Value-IncrDecrThres N rnsap.ies id-UL-Timeslot-ISCP-Value-IncrDecrThres
+RT-Load-Value-IncrDecrThres N rnsap.ies id-RT-Load-Value-IncrDecrThres
+NRT-Load-Information-Value-IncrDecrThres N rnsap.ies id-NRT-Load-Information-Value-IncrDecrThres
+TUTRANGPSMeasurementThresholdInformation N rnsap.ies id-TUTRANGPSMeasurementThresholdInformation
+SFNSFNMeasurementThresholdInformation N rnsap.ies id-SFNSFNMeasurementThresholdInformation
+Load-Value N rnsap.ies id-Load-Value
+Transmitted-Carrier-Power-Value N rnsap.ies id-Transmitted-Carrier-Power-Value
+Received-Total-Wideband-Power-Value N rnsap.ies id-Received-Total-Wideband-Power-Value
+UL-Timeslot-ISCP-Value N rnsap.ies id-UL-Timeslot-ISCP-Value
+RT-Load-Value N rnsap.ies id-RT-Load-Value
+NRT-Load-Information-Value N rnsap.ies id-NRT-Load-Information-Value
+HS-SICH-Reception-Quality-Measurement-Value N rnsap.ies id-HS-SICH-Reception-Quality-Measurement-Value
+TUTRANGANSSMeasurementThresholdInformation N rnsap.ies id-TUTRANGANSSMeasurementThresholdInformation
+Neighbouring-UMTS-CellInformationItem N rnsap.ies id-Neighbouring-UMTS-CellInformationItem
+Neighbouring-GSM-CellInformationIEs N rnsap.ies id-Neighbouring-GSM-CellInformation
+OnModification N rnsap.ies id-OnModification
+RNC-ID N rnsap.ies id-SRNC-ID
+S-RNTI N rnsap.ies id-S-RNTI
+D-RNTI N rnsap.ies id-D-RNTI
+AllowedQueuingTime N rnsap.ies id-AllowedQueuingTime
+UL-DPCH-Information-RL-SetupRqstFDD N rnsap.ies id-UL-DPCH-Information-RL-SetupRqstFDD
+DL-DPCH-Information-RL-SetupRqstFDD N rnsap.ies id-DL-DPCH-Information-RL-SetupRqstFDD
+DCH-FDD-Information N rnsap.ies id-DCH-FDD-Information
+RL-InformationList-RL-SetupRqstFDD N rnsap.ies id-RL-Information-RL-SetupRqstFDD
+Transmission-Gap-Pattern-Sequence-Information N rnsap.ies id-Transmission-Gap-Pattern-Sequence-Information
+Active-Pattern-Sequence-Information N rnsap.ies id-Active-Pattern-Sequence-Information
+RL-InformationItem-RL-SetupRqstFDD N rnsap.ies id-RL-InformationItem-RL-SetupRqstFDD
+UL-Physical-Channel-Information-RL-SetupRqstTDD N rnsap.ies id-UL-Physical-Channel-Information-RL-SetupRqstTDD
+DL-Physical-Channel-Information-RL-SetupRqstTDD N rnsap.ies id-DL-Physical-Channel-Information-RL-SetupRqstTDD
+UL-CCTrCH-InformationList-RL-SetupRqstTDD N rnsap.ies id-UL-CCTrCH-InformationList-RL-SetupRqstTDD
+DL-CCTrCH-InformationList-RL-SetupRqstTDD N rnsap.ies id-DL-CCTrCH-InformationList-RL-SetupRqstTDD
+DCH-TDD-Information N rnsap.ies id-DCH-TDD-Information
+DSCH-TDD-Information N rnsap.ies id-DSCH-TDD-Information
+USCH-Information N rnsap.ies id-USCH-Information
+RL-Information-RL-SetupRqstTDD N rnsap.ies id-RL-Information-RL-SetupRqstTDD
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD N rnsap.ies id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD N rnsap.ies id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD
+CN-PS-DomainIdentifier N rnsap.ies id-CN-PS-DomainIdentifier
+CN-CS-DomainIdentifier N rnsap.ies id-CN-CS-DomainIdentifier
+RL-InformationResponseList-RL-SetupRspFDD N rnsap.ies id-RL-InformationResponseList-RL-SetupRspFDD
+UL-SIR N rnsap.ies id-UL-SIRTarget
+CriticalityDiagnostics N rnsap.ies id-CriticalityDiagnostics
+RL-InformationResponseItem-RL-SetupRspFDD N rnsap.ies id-RL-InformationResponseItem-RL-SetupRspFDD
+RL-InformationResponse-RL-SetupRspTDD N rnsap.ies id-RL-InformationResponse-RL-SetupRspTDD
+UL-CCTrCHInformationListIE-RL-SetupRspTDD N rnsap.ies id-UL-CCTrCH-InformationListIE-RL-SetupRspTDD
+UL-DPCH-InformationItem-RL-SetupRspTDD N rnsap.ies id-UL-DPCH-InformationItem-RL-SetupRspTDD
+DL-CCTrCHInformationListIE-RL-SetupRspTDD N rnsap.ies id-DL-CCTrCH-InformationListIE-RL-SetupRspTDD
+DL-DPCH-InformationItem-RL-SetupRspTDD N rnsap.ies id-DL-DPCH-InformationItem-RL-SetupRspTDD
+DCH-InformationResponse N rnsap.ies id-DCH-InformationResponse
+DSCH-InformationListIEs-RL-SetupRspTDD N rnsap.ies id-DSCH-InformationListIEs-RL-SetupRspTDD
+USCH-InformationListIEs-RL-SetupRspTDD N rnsap.ies id-USCH-InformationListIEs-RL-SetupRspTDD
+UL-LCR-CCTrCHInformationListIE-RL-SetupRspTDD N rnsap.ies id-UL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD
+UL-DPCH-LCR-InformationItem-RL-SetupRspTDD N rnsap.ies id-UL-DPCH-LCR-InformationItem-RL-SetupRspTDD
+DL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD N rnsap.ies id-DL-CCTrCH-LCR-InformationListIE-RL-SetupRspTDD
+DL-DPCH-LCR-InformationItem-RL-SetupRspTDD N rnsap.ies id-DL-DPCH-LCR-InformationItem-RL-SetupRspTDD
+DSCH-LCR-InformationListIEs-RL-SetupRspTDD N rnsap.ies id-DSCH-LCR-InformationListIEs-RL-SetupRspTDD
+USCH-LCR-InformationListIEs-RL-SetupRspTDD N rnsap.ies id-USCH-LCR-InformationListIEs-RL-SetupRspTDD
+UL-CCTrCHInformationListIE-RL-SetupRspTDD768 N rnsap.ies id-UL-CCTrCH-InformationListIE-RL-SetupRspTDD768
+UL-DPCH-InformationItem-RL-SetupRspTDD768 N rnsap.ies id-UL-DPCH-InformationItem-RL-SetupRspTDD768
+DL-CCTrCHInformationListIE-RL-SetupRspTDD768 N rnsap.ies id-DL-CCTrCH-InformationListIE-RL-SetupRspTDD768
+DL-DPCH-InformationItem-RL-SetupRspTDD768 N rnsap.ies id-DL-DPCH-InformationItem-RL-SetupRspTDD768
+CauseLevel-RL-SetupFailureFDD N rnsap.ies id-CauseLevel-RL-SetupFailureFDD
+UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD N rnsap.ies id-UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD
+SuccessfulRL-InformationResponse-RL-SetupFailureFDD N rnsap.ies id-SuccessfulRL-InformationResponse-RL-SetupFailureFDD
+CauseLevel-RL-SetupFailureTDD N rnsap.ies id-CauseLevel-RL-SetupFailureTDD
+UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD N rnsap.ies id-UnsuccessfulRL-InformationResponse-RL-SetupFailureTDD
+RL-InformationList-RL-AdditionRqstFDD N rnsap.ies id-RL-InformationList-RL-AdditionRqstFDD
+RL-Information-RL-AdditionRqstFDD N rnsap.ies id-RL-Information-RL-AdditionRqstFDD
+RL-Information-RL-AdditionRqstTDD N rnsap.ies id-RL-Information-RL-AdditionRqstTDD
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD N rnsap.ies id-UL-CCTrCH-InformationItem-RL-AdditionRqstTDD
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD N rnsap.ies id-DL-CCTrCH-InformationItem-RL-AdditionRqstTDD
+RL-InformationResponseList-RL-AdditionRspFDD N rnsap.ies id-RL-InformationResponseList-RL-AdditionRspFDD
+RL-InformationResponseItem-RL-AdditionRspFDD N rnsap.ies id-RL-InformationResponseItem-RL-AdditionRspFDD
+FDD-DL-CodeInformation N rnsap.ies id-FDD-DL-CodeInformation
+RL-InformationResponse-RL-AdditionRspTDD N rnsap.ies id-RL-InformationResponse-RL-AdditionRspTDD
+UL-CCTrCHInformationListIE-RL-AdditionRspTDD N rnsap.ies id-UL-CCTrCH-InformationListIE-RL-AdditionRspTDD
+UL-DPCH-InformationItem-RL-AdditionRspTDD N rnsap.ies id-UL-DPCH-InformationItem-RL-AdditionRspTDD
+DL-CCTrCHInformationListIE-RL-AdditionRspTDD N rnsap.ies id-DL-CCTrCH-InformationListIE-RL-AdditionRspTDD
+DL-DPCH-InformationItem-RL-AdditionRspTDD N rnsap.ies id-DL-DPCH-InformationItem-RL-AdditionRspTDD
+DSCH-InformationListIE-RL-AdditionRspTDD N rnsap.ies id-DSCH-InformationListIE-RL-AdditionRspTDD
+USCH-InformationListIE-RL-AdditionRspTDD N rnsap.ies id-USCH-InformationListIE-RL-AdditionRspTDD
+UL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD N rnsap.ies id-UL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD
+UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD N rnsap.ies id-UL-DPCH-LCR-InformationItem-RL-AdditionRspTDD
+DL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD N rnsap.ies id-DL-CCTrCH-LCR-InformationListIE-RL-AdditionRspTDD
+DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD N rnsap.ies id-DL-DPCH-LCR-InformationItem-RL-AdditionRspTDD
+DSCH-LCR-InformationListIEs-RL-AdditionRspTDD N rnsap.ies id-DSCH-LCR-InformationListIEs-RL-AdditionRspTDD
+USCH-LCR-InformationListIEs-RL-AdditionRspTDD N rnsap.ies id-USCH-LCR-InformationListIEs-RL-AdditionRspTDD
+UL-CCTrCHInformationListIE-RL-AdditionRspTDD768 N rnsap.ies id-UL-CCTrCH-InformationListIE-RL-AdditionRspTDD768
+UL-DPCH-InformationItem-RL-AdditionRspTDD768 N rnsap.ies id-UL-DPCH-InformationItem-RL-AdditionRspTDD768
+DL-CCTrCHInformationListIE-RL-AdditionRspTDD768 N rnsap.ies id-DL-CCTrCH-InformationListIE-RL-AdditionRspTDD768
+DL-DPCH-InformationItem-RL-AdditionRspTDD768 N rnsap.ies id-DL-DPCH-InformationItem-RL-AdditionRspTDD768
+CauseLevel-RL-AdditionFailureFDD N rnsap.ies id-CauseLevel-RL-AdditionFailureFDD
+UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD N rnsap.ies id-UnsuccessfulRL-InformationResponse-RL-AdditionFailureFDD
+SuccessfulRL-InformationResponse-RL-AdditionFailureFDD N rnsap.ies id-SuccessfulRL-InformationResponse-RL-AdditionFailureFDD
+CauseLevel-RL-AdditionFailureTDD N rnsap.ies id-CauseLevel-RL-AdditionFailureTDD
+UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD N rnsap.ies id-UnsuccessfulRL-InformationResponse-RL-AdditionFailureTDD
+RL-InformationList-RL-DeletionRqst N rnsap.ies id-RL-InformationList-RL-DeletionRqst
+RL-Information-RL-DeletionRqst N rnsap.ies id-RL-Information-RL-DeletionRqst
+UL-DPCH-Information-RL-ReconfPrepFDD N rnsap.ies id-UL-DPCH-Information-RL-ReconfPrepFDD
+DL-DPCH-Information-RL-ReconfPrepFDD N rnsap.ies id-DL-DPCH-Information-RL-ReconfPrepFDD
+FDD-DCHs-to-Modify N rnsap.ies id-FDD-DCHs-to-Modify
+DCH-FDD-Information N rnsap.ies id-DCHs-to-Add-FDD
+DCH-DeleteList-RL-ReconfPrepFDD N rnsap.ies id-DCH-DeleteList-RL-ReconfPrepFDD
+RL-InformationList-RL-ReconfPrepFDD N rnsap.ies id-RL-InformationList-RL-ReconfPrepFDD
+RL-Information-RL-ReconfPrepFDD N rnsap.ies id-RL-Information-RL-ReconfPrepFDD
+UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD N rnsap.ies id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD
+UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD N rnsap.ies id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD
+UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD N rnsap.ies id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD N rnsap.ies id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD N rnsap.ies id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD N rnsap.ies id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD
+TDD-DCHs-to-Modify N rnsap.ies id-TDD-DCHs-to-Modify
+DCH-TDD-Information N rnsap.ies id-DCHs-to-Add-TDD
+DCH-DeleteList-RL-ReconfPrepTDD N rnsap.ies id-DCH-DeleteList-RL-ReconfPrepTDD
+DSCH-ModifyList-RL-ReconfPrepTDD N rnsap.ies id-DSCH-ModifyList-RL-ReconfPrepTDD
+DSCH-TDD-Information N rnsap.ies id-DSCHs-to-Add-TDD
+DSCH-DeleteList-RL-ReconfPrepTDD N rnsap.ies id-DSCH-DeleteList-RL-ReconfPrepTDD
+USCH-ModifyList-RL-ReconfPrepTDD N rnsap.ies id-USCH-ModifyList-RL-ReconfPrepTDD
+USCH-Information N rnsap.ies id-USCHs-to-Add
+USCH-DeleteList-RL-ReconfPrepTDD N rnsap.ies id-USCH-DeleteList-RL-ReconfPrepTDD
+UL-CCTrCH-AddInformation-RL-ReconfPrepTDD N rnsap.ies id-UL-CCTrCH-AddInformation-RL-ReconfPrepTDD
+UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD N rnsap.ies id-UL-CCTrCH-ModifyInformation-RL-ReconfPrepTDD
+UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD N rnsap.ies id-UL-CCTrCH-DeleteInformation-RL-ReconfPrepTDD
+DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD N rnsap.ies id-DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD
+DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD N rnsap.ies id-DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD
+DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD N rnsap.ies id-DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD
+RL-InformationResponseList-RL-ReconfReadyFDD N rnsap.ies id-RL-InformationResponseList-RL-ReconfReadyFDD
+RL-InformationResponseItem-RL-ReconfReadyFDD N rnsap.ies id-RL-InformationResponseItem-RL-ReconfReadyFDD
+UL-CCTrCHInformationListIE-RL-ReconfReadyTDD N rnsap.ies id-UL-CCTrCH-InformationListIE-RL-ReconfReadyTDD
+UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD N rnsap.ies id-UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD
+UL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD N rnsap.ies id-UL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD
+UL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD N rnsap.ies id-UL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD
+DL-CCTrCHInformationListIE-RL-ReconfReadyTDD N rnsap.ies id-DL-CCTrCH-InformationListIE-RL-ReconfReadyTDD
+DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD N rnsap.ies id-DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD
+DL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD N rnsap.ies id-DL-DPCH-InformationModifyListIE-RL-ReconfReadyTDD
+DL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD N rnsap.ies id-DL-DPCH-InformationDeleteListIE-RL-ReconfReadyTDD
+DSCHToBeAddedOrModifiedList-RL-ReconfReadyTDD N rnsap.ies id-DSCHToBeAddedOrModifiedList-RL-ReconfReadyTDD
+USCHToBeAddedOrModifiedList-RL-ReconfReadyTDD N rnsap.ies id-USCHToBeAddedOrModifiedList-RL-ReconfReadyTDD
+CFN N rnsap.ies id-CFN
+CauseLevel-RL-ReconfFailure N rnsap.ies id-CauseLevel-RL-ReconfFailure
+RL-ReconfigurationFailure-RL-ReconfFail N rnsap.ies id-RL-ReconfigurationFailure-RL-ReconfFail
+UL-DPCH-Information-RL-ReconfRqstFDD N rnsap.ies id-UL-DPCH-Information-RL-ReconfRqstFDD
+DL-DPCH-Information-RL-ReconfRqstFDD N rnsap.ies id-DL-DPCH-Information-RL-ReconfRqstFDD
+DCH-DeleteList-RL-ReconfRqstFDD N rnsap.ies id-DCH-DeleteList-RL-ReconfRqstFDD
+RL-ReconfigurationRequestFDD-RL-Information-IEs N rnsap.ies id-RL-ReconfigurationRequestFDD-RL-Information-IEs
+UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD N rnsap.ies id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD
+UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD N rnsap.ies id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD
+DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD N rnsap.ies id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD
+DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD N rnsap.ies id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD
+DCH-DeleteList-RL-ReconfRqstTDD N rnsap.ies id-DCH-DeleteList-RL-ReconfRqstTDD
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD N rnsap.ies id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD
+UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD N rnsap.ies id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD N rnsap.ies id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD
+DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD N rnsap.ies id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD
+RL-InformationResponseList-RL-ReconfRspFDD N rnsap.ies id-RL-InformationResponseList-RL-ReconfRspFDD
+RL-InformationResponseItem-RL-ReconfRspFDD N rnsap.ies id-RL-InformationResponseItem-RL-ReconfRspFDD
+RL-InformationResponse-RL-ReconfRspTDD N rnsap.ies id-RL-InformationResponse-RL-ReconfRspTDD
+DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD N rnsap.ies id-DL-DPCH-InformationModifyItem-LCR-RL-ReconfRspTDD
+Reporting-Object-RL-FailureInd N rnsap.ies id-Reporting-Object-RL-FailureInd
+RL-Information-RL-FailureInd N rnsap.ies id-RL-Information-RL-FailureInd
+RL-Set-Information-RL-FailureInd N rnsap.ies id-RL-Set-Information-RL-FailureInd
+CCTrCH-InformationItem-RL-FailureInd N rnsap.ies id-CCTrCH-InformationItem-RL-FailureInd
+RL-InformationList-RL-PreemptRequiredInd N rnsap.ies id-RL-InformationList-RL-PreemptRequiredInd
+RL-InformationItem-RL-PreemptRequiredInd N rnsap.ies id-RL-InformationItem-RL-PreemptRequiredInd
+HSDSCHMacdFlowSpecificInformationItem-RL-PreemptRequiredInd N rnsap.ies id-HSDSCHMacdFlowSpecificInformationItem-RL-PreemptRequiredInd
+EDCH-MacdFlowSpecificInformationItem-RL-PreemptRequiredInd N rnsap.ies id-EDCH-MacdFlowSpecificInformationItem-RL-PreemptRequiredInd
+Reporting-Object-RL-RestoreInd N rnsap.ies id-Reporing-Object-RL-RestoreInd
+RL-Information-RL-RestoreInd N rnsap.ies id-RL-Information-RL-RestoreInd
+RL-Set-Information-RL-RestoreInd N rnsap.ies id-RL-Set-Information-RL-RestoreInd
+CCTrCH-InformationItem-RL-RestoreInd N rnsap.ies id-CCTrCH-InformationItem-RL-RestoreInd
+PowerAdjustmentType N rnsap.ies id-PowerAdjustmentType
+DL-Power N rnsap.ies id-DLReferencePower
+InnerLoopDLPCStatus N rnsap.ies id-InnerLoopDLPCStatus
+DL-ReferencePowerInformationList-DL-PC-Rqst N rnsap.ies id-DLReferencePowerList-DL-PC-Rqst
+MaxAdjustmentStep N rnsap.ies id-MaxAdjustmentStep
+AdjustmentPeriod N rnsap.ies id-AdjustmentPeriod
+ScaledAdjustmentRatio N rnsap.ies id-AdjustmentRatio
+DL-ReferencePowerInformation-DL-PC-Rqst N rnsap.ies id-DL-ReferencePowerInformation-DL-PC-Rqst
+DL-TimeSlot-ISCP-Info N rnsap.ies id-timeSlot-ISCP
+RL-Information-PhyChReconfRqstFDD N rnsap.ies id-RL-Information-PhyChReconfRqstFDD
+RL-Information-PhyChReconfRqstTDD N rnsap.ies id-RL-Information-PhyChReconfRqstTDD
+UL-CCTrCH-InformationListIE-PhyChReconfRqstTDD N rnsap.ies id-UL-CCTrCH-InformationListIE-PhyChReconfRqstTDD
+UL-DPCH-InformationItem-PhyChReconfRqstTDD N rnsap.ies id-UL-DPCH-InformationItem-PhyChReconfRqstTDD
+DL-CCTrCH-InformationListIE-PhyChReconfRqstTDD N rnsap.ies id-DL-CCTrCH-InformationListIE-PhyChReconfRqstTDD
+DL-DPCH-InformationItem-PhyChReconfRqstTDD N rnsap.ies id-DL-DPCH-InformationItem-PhyChReconfRqstTDD
+Cause N rnsap.ies id-Cause
+CongestionCause N rnsap.ies id-CongestionCause
+RL-InformationList-RL-CongestInd N rnsap.ies id-RL-InformationList-RL-CongestInd
+RL-InformationItem-RL-CongestInd N rnsap.ies id-RL-InformationItem-RL-CongestInd
+DCH-Rate-InformationItem-RL-CongestInd N rnsap.ies id-DCH-Rate-InformationItem-RL-CongestInd
+EDCH-MacdFlowSpecificInformationItem-RL-CongestInd N rnsap.ies id-EDCH-MacdFlowSpecificInformationItem-RL-CongestInd
+UC-ID N rnsap.ies id-UC-ID
+SAI N rnsap.ies id-SAI
+GA-Cell N rnsap.ies id-GA-Cell
+C-RNTI N rnsap.ies id-C-RNTI
+PropagationDelay N rnsap.ies id-PropagationDelay
+STTD-SupportIndicator N rnsap.ies id-STTD-SupportIndicator
+ClosedLoopMode1-SupportIndicator N rnsap.ies id-ClosedLoopMode1-SupportIndicator
+L3-Information N rnsap.ies id-L3-Information
+URA-Information N rnsap.ies id-URA-Information
+RxTimingDeviationForTA N rnsap.ies id-RxTimingDeviationForTA
+C-ID N rnsap.ies id-C-ID
+D-RNTI-ReleaseIndication N rnsap.ies id-D-RNTI-ReleaseIndication
+RANAP-RelocationInformation N rnsap.ies id-RANAP-RelocationInformation
+PagingArea-PagingRqst N rnsap.ies id-PagingArea-PagingRqst
+IMSI N rnsap.ies id-IMSI
+DRXCycleLengthCoefficient N rnsap.ies id-DRXCycleLengthCoefficient
+CNOriginatedPage-PagingRqst N rnsap.ies id-CNOriginatedPage-PagingRqst
+MeasurementID N rnsap.ies id-MeasurementID
+DedicatedMeasurementObjectType-DM-Rqst N rnsap.ies id-DedicatedMeasurementObjectType-DM-Rqst
+DedicatedMeasurementType N rnsap.ies id-DedicatedMeasurementType
+MeasurementFilterCoefficient N rnsap.ies id-MeasurementFilterCoefficient
+ReportCharacteristics N rnsap.ies id-ReportCharacteristics
+FNReportingIndicator N rnsap.ies id-CFNReportingIndicator
+RL-InformationItem-DM-Rqst N rnsap.ies id-RL-InformationItem-DM-Rqst
+RL-Set-InformationItem-DM-Rqst N rnsap.ies id-RL-Set-InformationItem-DM-Rqst
+DedicatedMeasurementObjectType-DM-Rsp N rnsap.ies id-DedicatedMeasurementObjectType-DM-Rsp
+RL-InformationItem-DM-Rsp N rnsap.ies id-RL-InformationItem-DM-Rsp
+RL-Set-InformationItem-DM-Rsp N rnsap.ies id-RL-Set-InformationItem-DM-Rsp
+RL-Unsuccessful-InformationItem-DM-Fail N rnsap.ies id-RL-Unsuccessful-InformationItem-DM-Fail
+RL-Successful-InformationItem-DM-Fail N rnsap.ies id-RL-Successful-InformationItem-DM-Fail
+RL-Set-Unsuccessful-InformationItem-DM-Fail N rnsap.ies id-RL-Set-Unsuccessful-InformationItem-DM-Fail
+RL-Set-Successful-InformationItem-DM-Fail N rnsap.ies id-RL-Set-Successful-InformationItem-DM-Fail
+DedicatedMeasurementObjectType-DM-Rprt N rnsap.ies id-DedicatedMeasurementObjectType-DM-Rprt
+RL-InformationItem-DM-Rprt N rnsap.ies id-RL-InformationItem-DM-Rprt
+RL-Set-InformationItem-DM-Rprt N rnsap.ies id-RL-Set-InformationItem-DM-Rprt
+RL-Unsuccessful-InformationItem-DM-Fail-Ind N rnsap.ies id-RL-Unsuccessful-InformationItem-DM-Fail-Ind
+RL-Set-Unsuccessful-InformationItem-DM-Fail-Ind N rnsap.ies id-RL-Set-Unsuccessful-InformationItem-DM-Fail-Ind
+TransportBearerRequestIndicator N rnsap.ies id-TransportBearerRequestIndicator
+TransportBearerID N rnsap.ies id-TransportBearerID
+FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD N rnsap.ies id-FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspFDD
+TransportLayerAddress N rnsap.ies id-TransportLayerAddress
+BindingID N rnsap.ies id-BindingID
+FACH-FlowControlInformation N rnsap.ies id-FACH-FlowControlInformation
+FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD N rnsap.ies id-FACH-InfoForUESelectedS-CCPCH-CTCH-ResourceRspTDD
+CommonMeasurementObjectType-CM-Rqst N rnsap.ies id-CommonMeasurementObjectType-CM-Rqst
+CommonMeasurementType N rnsap.ies id-CommonMeasurementType
+FNReportingIndicator N rnsap.ies id-SFNReportingIndicator
+SFN N rnsap.ies id-SFN
+CommonMeasurementAccuracy N rnsap.ies id-CommonMeasurementAccuracy
+NeighbouringTDDCellMeasurementInformationLCR N rnsap.ies id-neighbouringTDDCellMeasurementInformationLCR
+NeighbouringTDDCellMeasurementInformation768 N rnsap.ies id-neighbouringTDDCellMeasurementInformation768
+CommonMeasurementObjectType-CM-Rsp N rnsap.ies id-CommonMeasurementObjectType-CM-Rsp
+CommonMeasurementObjectType-CM-Rprt N rnsap.ies id-CommonMeasurementObjectType-CM-Rprt
+InformationExchangeID N rnsap.ies id-InformationExchangeID
+InformationExchangeObjectType-InfEx-Rqst N rnsap.ies id-InformationExchangeObjectType-InfEx-Rqst
+InformationType N rnsap.ies id-InformationType
+InformationReportCharacteristics N rnsap.ies id-InformationReportCharacteristics
+GSM-Cell-InfEx-Rqst N rnsap.ies id-GSM-Cell-InfEx-Rqst
+MBMS-Bearer-Service-List N rnsap.ies id-MBMS-Bearer-Service-List
+InformationExchangeObjectType-InfEx-Rsp N rnsap.ies id-InformationExchangeObjectType-InfEx-Rsp
+MBMS-Bearer-Service-List-InfEx-Rsp N rnsap.ies id-MBMS-Bearer-Service-List-InfEx-Rsp
+InformationExchangeObjectType-InfEx-Rprt N rnsap.ies id-InformationExchangeObjectType-InfEx-Rprt
+RNC-ID N rnsap.ies id-RNC-ID
+ResetIndicator N rnsap.ies id-ResetIndicator
+ContextInfoItem-Reset N rnsap.ies id-ContextInfoItem-Reset
+ContextGroupInfoItem-Reset N rnsap.ies id-ContextGroupInfoItem-Reset
+DelayedActivationInformationList-RL-ActivationCmdFDD N rnsap.ies id-DelayedActivationList-RL-ActivationCmdFDD
+DelayedActivationInformation-RL-ActivationCmdFDD N rnsap.ies id-DelayedActivationInformation-RL-ActivationCmdFDD
+DelayedActivationInformationList-RL-ActivationCmdTDD N rnsap.ies id-DelayedActivationList-RL-ActivationCmdTDD
+DelayedActivationInformation-RL-ActivationCmdTDD N rnsap.ies id-DelayedActivationInformation-RL-ActivationCmdTDD
+HSDSCH-FDD-Update-Information N rnsap.ies id-HSDSCH-FDD-Update-Information
+RL-ParameterUpdateIndicationFDD-RL-InformationList N rnsap.ies id-RL-ParameterUpdateIndicationFDD-RL-InformationList
+RL-ParameterUpdateIndicationFDD-RL-Information-Item N rnsap.ies id-RL-ParameterUpdateIndicationFDD-RL-Information-Item
+HSDSCH-TDD-Update-Information N rnsap.ies id-HSDSCH-TDD-Update-Information
+UEMeasurementType N rnsap.ies id-UEMeasurementType
+UEMeasurementTimeslotInfoHCR N rnsap.ies id-UEMeasurementTimeslotInfoHCR
+UEMeasurementTimeslotInfoLCR N rnsap.ies id-UEMeasurementTimeslotInfoLCR
+UEMeasurementReportCharacteristics N rnsap.ies id-UEMeasurementReportCharacteristics
+UEMeasurementParameterModAllow N rnsap.ies id-UEMeasurementParameterModAllow
+UEMeasurementValueInformation N rnsap.ies id-UEMeasurementValueInformation
+TraceReference N rnsap.ies id-TraceReference
+UEIdentity N rnsap.ies id-UEIdentity
+TraceRecordingSessionReference N rnsap.ies id-TraceRecordingSessionReference
+ListOfInterfacesToTrace N rnsap.ies id-ListOfInterfacesToTrace
+TraceDepth N rnsap.ies id-TraceDepth
+InterfacesToTraceItem N rnsap.ies id-InterfacesToTraceItem
+UE-State N rnsap.ies id-UE-State
+ProvidedInformation N rnsap.ies id-ProvidedInformation
+
+#RNSAP-PROTOCOL-EXTENSION
+MessageStructure N rnsap.extension id-MessageStructure
+TypeOfError N rnsap.extension id-TypeOfError
+TnlQos N rnsap.extension id-TnlQos
+Guaranteed-Rate-Information N rnsap.extension id-Guaranteed-Rate-Information
+TrafficClass N rnsap.extension id-TrafficClass
+Unidirectional-DCH-Indicator N rnsap.extension id-Unidirectional-DCH-Indicator
+Allowed-Rate-Information N rnsap.extension id-Allowed-Rate-Information
+ExtendedPropagationDelay N rnsap.extension id-ExtendedPropagationDelay
+DL-Power N rnsap.extension id-Maximum-DL-Power-TimeslotLCR-InformationItem
+DL-Power N rnsap.extension id-Minimum-DL-Power-TimeslotLCR-InformationItem
+DSCH-InitialWindowSize N rnsap.extension id-DSCH-InitialWindowSize
+BindingID N rnsap.extension id-BindingID
+TransportLayerAddress N rnsap.extension id-TransportLayerAddress
+E-RGCH-E-HICH-ChannelisationCodeValidityIndicator N rnsap.extension id-E-RGCH-E-HICH-ChannelisationCodeValidityIndicator
+E-DCH-PowerOffset-for-SchedulingInfo N rnsap.extension id-E-DCH-PowerOffset-for-SchedulingInfo
+TrCH-SrcStatisticsDescr N rnsap.extension id-TrCH-SrcStatisticsDescr
+E-DCH-Minimum-Set-E-TFCIValidityIndicator N rnsap.extension id-E-DCH-Minimum-Set-E-TFCIValidityIndicator
+E-DCH-MACdFlow-Retransmission-Timer-LCR N rnsap.extension id-eDCH-MACdFlow-Retransmission-Timer-LCR
+Satellite-Almanac-Information-ExtItem N rnsap.extension id-Satellite-Almanac-Information-ExtItem
+HARQ-Preamble-Mode N rnsap.extension id-HARQ-Preamble-Mode
+HSDSCH-MACdPDUSizeFormat N rnsap.extension id-HSDSCH-MACdPDUSizeFormat
+User-Plane-Congestion-Fields-Inclusion N rnsap.extension id-User-Plane-Congestion-Fields-Inclusion
+HARQ-Preamble-Mode-Activation-Indicator N rnsap.extension id-HARQ-Preamble-Mode-Activation-Indicator
+MIMO-InformationResponse N rnsap.extension id-MIMO-InformationResponse
+HS-PDSCH-Code-Change-Grant N rnsap.extension id-HS-PDSCH-Code-Change-Grant
+MAC-PDU-SizeExtended N rnsap.extension id-MaximumMACdPDU-SizeExtended
+Continuous-Packet-Connectivity-HS-SCCH-Less-Information N rnsap.extension id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information
+Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response N rnsap.extension id-Continuous-Packet-Connectivity-HS-SCCH-Less-Information-Response
+HSSCCH-TDD-Specific-InfoList-Response768 N rnsap.extension id-hSSCCH-TDD-Specific-InfoList-Response768
+HSPDSCH-TDD-Specific-InfoList-Response768 N rnsap.extension id-hSPDSCH-TDD-Specific-InfoList-Response768
+HS-PDSCH-Code-Change-Indicator N rnsap.extension id-HS-PDSCH-Code-Change-Indicator
+GANSS-Information N rnsap.extension id-GANSS-Information
+Neighbouring-LCR-TDD-CellInformation N rnsap.extension id-neighbouring-LCR-TDD-CellInformation
+Extended-RNC-ID N rnsap.extension id-Extended-RNC-ID
+RestrictionStateIndicator N rnsap.extension id-RestrictionStateIndicator
+DPC-Mode-Change-SupportIndicator N rnsap.extension id-DPC-Mode-Change-SupportIndicator
+CoverageIndicator N rnsap.extension id-CoverageIndicator
+AntennaColocationIndicator N rnsap.extension id-AntennaColocationIndicator
+HCS-Prio N rnsap.extension id-HCS-Prio
+CellCapabilityContainer-FDD N rnsap.extension id-CellCapabilityContainer-FDD
+SNA-Information N rnsap.extension id-SNA-Information
+FrequencyBandIndicator N rnsap.extension id-FrequencyBandIndicator
+GERAN-Cell-Capability N rnsap.extension id-GERAN-Cell-Capability
+GERAN-Classmark N rnsap.extension id-GERAN-Classmark
+ExtendedGSMCellIndividualOffset N rnsap.extension id-ExtendedGSMCellIndividualOffset
+CellCapabilityContainer-TDD N rnsap.extension id-CellCapabilityContainer-TDD
+CellCapabilityContainer-TDD768 N rnsap.extension id-CellCapabilityContainer-TDD768
+CellCapabilityContainer-TDD-LCR N rnsap.extension id-CellCapabilityContainer-TDD-LCR
+Cell-Capacity-Class-Value N rnsap.extension id-Cell-Capacity-Class-Value
+NACC-Related-Data N rnsap.extension id-NACC-Related-Data
+MBMS-Bearer-Service-Full-Address N rnsap.extension id-MBMS-Bearer-Service-Full-Address
+Inter-Frequency-Cell-Information N rnsap.extension id-Inter-Frequency-Cell-Information
+GANSS-Common-Data N rnsap.extension id-GANSS-Common-Data
+GANSS-Generic-Data N rnsap.extension id-GANSS-Generic-Data
+UEMeasurementValueTransmittedPowerList768 N rnsap.extension id-UEMeasurementValueTransmittedPowerList768
+UEMeasurementValueTimeslotISCPList768 N rnsap.extension id-UEMeasurementValueTimeslotISCPList768
+Extended-RNC-ID N rnsap.extension id-Extended-SRNC-ID
+PLCCHinformation N rnsap.extension id-PLCCH-Information-UL-TimeslotLCR-Info
+DPC-Mode N rnsap.extension id-DPC-Mode
+UL-DPDCHIndicatorEDCH N rnsap.extension id-UL-DPDCHIndicatorEDCH
+Enhanced-PrimaryCPICH-EcNo N rnsap.extension id-Enhanced-PrimaryCPICH-EcNo
+RL-Specific-DCH-Info N rnsap.extension id-RL-Specific-DCH-Info
+DelayedActivation N rnsap.extension id-DelayedActivation
+CellPortionID N rnsap.extension id-CellPortionID
+RL-Specific-EDCH-Information N rnsap.extension id-RL-Specific-EDCH-Information
+EDCH-RL-Indication N rnsap.extension id-EDCH-RL-Indication
+Permanent-NAS-UE-Identity N rnsap.extension id-Permanent-NAS-UE-Identity
+DL-PowerBalancing-Information N rnsap.extension id-DL-PowerBalancing-Information
+HSDSCH-FDD-Information N rnsap.extension id-HSDSCH-FDD-Information
+RL-ID N rnsap.extension id-HSPDSCH-RL-ID
+MBMS-Bearer-Service-List N rnsap.extension id-MBMS-Bearer-Service-List
+EDPCH-Information-FDD N rnsap.extension id-EDPCH-Information
+
+# Double assignments
+#EDPCH-Information-RLAdditionReq-FDD N rnsap.extension id-EDPCH-Information
+#EDPCH-Information-RLReconfPrepare-FDD N rnsap.extension id-EDPCH-Information
+
+EDCH-FDD-Information N rnsap.extension id-EDCH-FDD-Information
+EDCH-Serving-RL N rnsap.extension id-Serving-EDCHRL-Id
+F-DPCH-Information-RL-SetupRqstFDD N rnsap.extension id-F-DPCH-Information-RL-SetupRqstFDD
+Initial-DL-DPCH-TimingAdjustment-Allowed N rnsap.extension id-Initial-DL-DPCH-TimingAdjustment-Allowed
+DCH-Indicator-For-E-DCH-HSDPA-Operation N rnsap.extension id-DCH-Indicator-For-E-DCH-HSDPA-Operation
+CFN N rnsap.extension id-Serving-cell-change-CFN
+Continuous-Packet-Connectivity-DTX-DRX-Information N rnsap.extension id-Continuous-Packet-Connectivity-DTX-DRX-Information
+F-DPCH-SlotFormatSupportRequest N rnsap.extension id-F-DPCH-SlotFormatSupportRequest
+Support-8PSK N rnsap.extension id-TDD-Support-8PSK
+MinimumSpreadingFactor768 N rnsap.extension id-TDD768-minimumSpreadingFactor-UL
+MaxNrDLPhysicalchannelsTS N rnsap.extension id-TDD-maxNrDLPhysicalchannels
+Support-PLCCH N rnsap.extension id-TDD-Support-PLCCH
+MinimumSpreadingFactor768 N rnsap.extension id-TDD768-minimumSpreadingFactor-DL
+MaxNrDLPhysicalchannels768 N rnsap.extension id-TDD768-maxNrDLPhysicalchannels
+MaxNrDLPhysicalchannelsTS768 N rnsap.extension id-TDD768-maxNrDLPhysicalchannelsTS
+TDD-TPC-UplinkStepSize-LCR N rnsap.extension id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD
+DL-TimeSlot-ISCP-LCR-Information N rnsap.extension id-DL-Timeslot-ISCP-LCR-Information-RL-SetupRqstTDD
+TSTD-Support-Indicator N rnsap.extension id-TSTD-Support-Indicator-RL-SetupRqstTDD
+UL-Synchronisation-Parameters-LCR N rnsap.extension id-UL-Synchronisation-Parameters-LCR
+PrimaryCCPCH-RSCP-Delta N rnsap.extension id-PrimaryCCPCH-RSCP-Delta
+HSDSCH-TDD-Information N rnsap.extension id-HSDSCH-TDD-Information
+RL-ID N rnsap.extension id-PDSCH-RL-ID
+E-DCH-Information N rnsap.extension id-E-DCH-Information
+RL-ID N rnsap.extension id-E-DCH-Serving-RL-ID
+E-DCH-768-Information N rnsap.extension id-E-DCH-768-Information
+E-DCH-LCR-Information N rnsap.extension id-E-DCH-LCR-Information
+GA-CellAdditionalShapes N rnsap.extension id-GA-CellAdditionalShapes
+DL-PowerBalancing-ActivationIndicator N rnsap.extension id-DL-PowerBalancing-ActivationIndicator
+Primary-CPICH-Usage-For-Channel-Estimation N rnsap.extension id-Primary-CPICH-Usage-For-Channel-Estimation
+Secondary-CPICH-Information N rnsap.extension id-Secondary-CPICH-Information
+Active-MBMS-Bearer-Service-ListFDD-PFL N rnsap.extension id-Active-MBMS-Bearer-ServiceFDD-PFL
+RL-Set-ID N rnsap.extension id-EDCH-RLSet-Id
+EDCH-FDD-DL-ControlChannelInformation N rnsap.extension id-EDCH-FDD-DL-ControlChannelInformation
+DL-DPCH-TimingAdjustment N rnsap.extension id-Initial-DL-DPCH-TimingAdjustment
+F-DPCH-SlotFormat N rnsap.extension id-F-DPCH-SlotFormat
+DCH-InformationResponse N rnsap.extension id-DCH-InformationResponse
+EDCH-FDD-InformationResponse N rnsap.extension id-EDCH-FDD-InformationResponse
+HSDSCH-RNTI N rnsap.extension id-HSDSCH-RNTI
+HSDSCH-FDD-Information-Response N rnsap.extension id-HSDSCH-FDD-Information-Response
+SixtyfourQAM-DL-SupportIndicator N rnsap.extension id-SixtyfourQAM-DL-SupportIndicator
+TimeSlot N rnsap.extension id-TimeSlot-RL-SetupRspTDD
+UL-SIR N rnsap.extension id-UL-SIR-Target-CCTrCH-InformationItem-RL-SetupRspTDD
+DL-Power N rnsap.extension id-CCTrCH-Maximum-DL-Power-RL-SetupRspTDD
+DL-Power N rnsap.extension id-CCTrCH-Minimum-DL-Power-RL-SetupRspTDD
+RL-LCR-InformationResponse-RL-SetupRspTDD N rnsap.extension id-RL-LCR-InformationResponse-RL-SetupRspTDD
+HSDSCH-TDD-Information-Response N rnsap.extension id-HSDSCH-TDD-Information-Response
+DSCH-RNTI N rnsap.extension id-DSCH-RNTI
+Active-MBMS-Bearer-Service-ListTDD-PFL N rnsap.extension id-Active-MBMS-Bearer-ServiceTDD-PFL
+RL-InformationResponse-RL-SetupRspTDD768 N rnsap.extension id-RL-InformationResponse-RL-SetupRspTDD768
+E-DCH-Information-Response N rnsap.extension id-E-DCH-Information-Response
+E-DCH-768-Information-Response N rnsap.extension id-E-DCH-768-Information-Response
+E-DCH-LCR-Information-Response N rnsap.extension id-E-DCH-LCR-Information-Response
+UL-TimingAdvanceCtrl-LCR N rnsap.extension id-UL-TimingAdvanceCtrl-LCR
+UL-SIR N rnsap.extension id-UL-SIR-Target-CCTrCH-LCR-InformationItem-RL-SetupRspTDD
+Max-UE-DTX-Cycle N rnsap.extension id-Max-UE-DTX-Cycle
+DL-Power N rnsap.extension id-DLReferencePower
+SynchronisationIndicator N rnsap.extension id-SynchronisationIndicator
+HS-DSCH-serving-cell-change-information N rnsap.extension id-HS-DSCH-serving-cell-change-information
+EDPCH-Information-RLAdditionReq-FDD N rnsap.extension id-EDPCH-Information-RLAdditionReq-FDD
+HSDSCH-Configured-Indicator N rnsap.extension id-HSDSCH-Configured-Indicator
+DL-TimeSlot-ISCP-LCR-Information N rnsap.extension id-DL-Timeslot-ISCP-LCR-Information-RL-AdditionRqstTDD
+UL-CCTrCH-InformationList-RL-AdditionRqstTDD N rnsap.extension id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD
+DL-CCTrCH-InformationList-RL-AdditionRqstTDD N rnsap.extension id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD
+HS-DSCH-serving-cell-change-informationResponse N rnsap.extension id-HS-DSCH-serving-cell-change-informationResponse
+E-DCH-Serving-cell-change-informationResponse N rnsap.extension id-E-DCH-Serving-cell-change-informationResponse
+MAChs-ResetIndicator N rnsap.extension id-MAChs-ResetIndicator
+DL-Power N rnsap.extension id-CCTrCH-Maximum-DL-Power-RL-AdditionRspTDD
+DL-Power N rnsap.extension id-CCTrCH-Minimum-DL-Power-RL-AdditionRspTDD
+RL-LCR-InformationResponse-RL-AdditionRspTDD N rnsap.extension id-RL-LCR-InformationResponse-RL-AdditionRspTDD
+RL-InformationResponse-RL-AdditionRspTDD768 N rnsap.extension id-RL-InformationResponse-RL-AdditionRspTDD768
+DL-DPCH-Power-Information-RL-ReconfPrepFDD N rnsap.extension id-DL-DPCH-Power-Information-RL-ReconfPrepFDD
+DL-DPCH-TimingAdjustment N rnsap.extension id-DL-DPCH-TimingAdjustment
+Phase-Reference-Update-Indicator N rnsap.extension id-Phase-Reference-Update-Indicator
+HSDSCH-Information-to-Modify N rnsap.extension id-HSDSCH-Information-to-Modify
+HSDSCH-MACdFlows-Information N rnsap.extension id-HSDSCH-MACdFlows-to-Add
+HSDSCH-MACdFlows-to-Delete N rnsap.extension id-HSDSCH-MACdFlows-to-Delete
+EDCH-FDD-Information-To-Modify N rnsap.extension id-EDCH-FDD-Information-To-Modify
+EDCH-MACdFlows-Information N rnsap.extension id-EDCH-MACdFlows-To-Add
+EDCH-MACdFlows-To-Delete N rnsap.extension id-EDCH-MACdFlows-To-Delete
+EDPCH-Information-RLReconfRequest-FDD N rnsap.extension id-EDPCH-Information-RLReconfRequest-FDD
+F-DPCH-Information-RL-ReconfPrepFDD N rnsap.extension id-F-DPCH-Information-RL-ReconfPrepFDD
+Fast-Reconfiguration-Mode N rnsap.extension id-Fast-Reconfiguration-Mode
+CPC-Information N rnsap.extension id-CPC-Information
+UL-SIR N rnsap.extension id-UL-SIRTarget
+TDD-TPC-UplinkStepSize-LCR N rnsap.extension id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD
+TDD-TPC-UplinkStepSize-LCR N rnsap.extension id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD
+TDD-TPC-DownlinkStepSize N rnsap.extension id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD
+TDD-TPC-DownlinkStepSize N rnsap.extension id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD
+PrimaryCCPCH-RSCP N rnsap.extension id-PrimaryCCPCH-RSCP-RL-ReconfPrepTDD
+DL-TimeSlot-ISCP-Info N rnsap.extension id-DL-TimeSlot-ISCP-Info-RL-ReconfPrepTDD
+DL-TimeSlot-ISCP-LCR-Information N rnsap.extension id-DL-Timeslot-ISCP-LCR-Information-RL-ReconfPrepTDD
+RL-Information-RL-ReconfPrepTDD N rnsap.extension id-RL-Information-RL-ReconfPrepTDD
+E-DCH-Information-Reconfig N rnsap.extension id-E-DCH-Information-Reconfig
+E-DCH-768-Information-Reconfig N rnsap.extension id-E-DCH-768-Information-Reconfig
+E-DCH-LCR-Information-Reconfig N rnsap.extension id-E-DCH-LCR-Information-Reconfig
+DL-PowerBalancing-UpdatedIndicator N rnsap.extension id-DL-PowerBalancing-UpdatedIndicator
+Secondary-CPICH-Information-Change N rnsap.extension id-Secondary-CPICH-Information-Change
+Fast-Reconfiguration-Permission N rnsap.extension id-Fast-Reconfiguration-Permission
+Secondary-LCR-CCPCH-Info-TDD N rnsap.extension id-secondary-LCR-CCPCH-Info-TDD
+Secondary-CCPCH-Info-TDD768 N rnsap.extension id-secondary-CCPCH-Info-RL-ReconfReadyTDD768
+UL-DPCH-LCR-InformationAddList-RL-ReconfReadyTDD N rnsap.extension id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfReadyTDD
+UL-DPCH-InformationAddList-RL-ReconfReadyTDD768 N rnsap.extension id-UL-DPCH-InformationAddListIE-RL-ReconfReadyTDD768
+RxTimingDeviationForTAext N rnsap.extension id-RxTimingDeviationForTAext
+UL-TimeslotLCR-InformationModifyList-RL-ReconfReadyTDD N rnsap.extension id-UL-Timeslot-LCR-InformationModifyList-RL-ReconfReadyTDD
+UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768 N rnsap.extension id-UL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768
+TDD-UL-DPCH-TimeSlotFormat-LCR N rnsap.extension id-TDD-UL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD
+DL-DPCH-LCR-InformationAddList-RL-ReconfReadyTDD N rnsap.extension id-DL-DPCH-LCR-InformationAddListIE-RL-ReconfReadyTDD
+DL-Power N rnsap.extension id-CCTrCH-Maximum-DL-Power-RL-ReconfReadyTDD
+DL-Power N rnsap.extension id-CCTrCH-Minimum-DL-Power-RL-ReconfReadyTDD
+DL-DPCH-InformationAddList-RL-ReconfReadyTDD768 N rnsap.extension id-DL-DPCH-InformationAddListIE-RL-ReconfReadyTDD768
+DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD N rnsap.extension id-DL-DPCH-InformationDeleteList768-RL-ReconfReadyTDD
+DL-TimeslotLCR-InformationModifyList-RL-ReconfReadyTDD N rnsap.extension id-DL-Timeslot-LCR-InformationModifyList-RL-ReconfReadyTDD
+DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768 N rnsap.extension id-DL-Timeslot-InformationModifyList-RL-ReconfReadyTDD768
+TDD-DL-DPCH-TimeSlotFormat-LCR N rnsap.extension id-TDD-DL-DPCH-TimeSlotFormatModifyItem-LCR-RL-ReconfReadyTDD
+DL-Power N rnsap.extension id-Maximum-DL-Power-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD
+DL-Power N rnsap.extension id-Minimum-DL-Power-TimeslotLCR-InformationModifyItem-RL-ReconfReadyTDD
+Multiple-RL-InformationResponse-RL-ReconfReadyTDD N rnsap.extension id-Multiple-RL-InformationResponse-RL-ReconfReadyTDD
+RL-ReconfigurationRequestFDD-RL-InformationList N rnsap.extension id-RL-ReconfigurationRequestFDD-RL-InformationList
+DL-ReferencePowerInformation N rnsap.extension id-DL-ReferencePowerInformation
+HSDSCH-Information-to-Modify-Unsynchronised N rnsap.extension id-HSDSCH-Information-to-Modify-Unsynchronised
+Multiple-RL-ReconfigurationRequestTDD-RL-Information N rnsap.extension id-RL-ReconfigurationRequestTDD-RL-Information
+DL-CCTrCH-InformationList-RL-ReconfRspTDD N rnsap.extension id-DL-CCTrCH-InformationList-RL-ReconfRspTDD
+Multiple-RL-InformationResponse-RL-ReconfRspTDD N rnsap.extension id-RL-ReconfigurationResponseTDD-RL-Information
+EDCH-MacdFlowSpecificInformationList-RL-PreemptRequiredInd N rnsap.extension id-EDCH-MacdFlowSpecificInformationList-RL-PreemptRequiredInd
+HSDSCHMacdFlowSpecificInformationList-RL-PreemptRequiredInd N rnsap.extension id-HSDSCHMacdFlowSpecificInformationList-RL-PreemptRequiredInd
+DL-TimeSlot-ISCP-LCR-Information N rnsap.extension id-timeSlot-ISCP-LCR-List-DL-PC-Rqst-TDD
+PrimaryCCPCH-RSCP N rnsap.extension id-PrimCCPCH-RSCP-DL-PC-RqstTDD
+HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD N rnsap.extension id-HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD
+HSPDSCH-Timeslot-InformationListLCR-PhyChReconfRqstTDD N rnsap.extension id-HSPDSCH-Timeslot-InformationListLCR-PhyChReconfRqstTDD
+HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD768 N rnsap.extension id-HSPDSCH-Timeslot-InformationList-PhyChReconfRqstTDD768
+UL-TimeslotLCR-InformationList-PhyChReconfRqstTDD N rnsap.extension id-UL-Timeslot-LCR-InformationList-PhyChReconfRqstTDD
+UL-Timeslot-InformationList-PhyChReconfRqstTDD768 N rnsap.extension id-UL-Timeslot-InformationList-PhyChReconfRqstTDD768
+PLCCHinformation N rnsap.extension id-PLCCH-Information-PhyChReconfRqstTDD
+DL-TimeslotLCR-InformationList-PhyChReconfRqstTDD N rnsap.extension id-DL-Timeslot-LCR-InformationList-PhyChReconfRqstTDD
+DL-Timeslot-InformationList-PhyChReconfRqstTDD768 N rnsap.extension id-DL-Timeslot-InformationList-PhyChReconfRqstTDD768
+EDCH-MacdFlowSpecificInformationList-RL-CongestInd N rnsap.extension id-EDCH-MacdFlowSpecificInformationList-RL-CongestInd
+CommonTransportChannelResourcesInitialisationNotRequired N rnsap.extension id-CommonTransportChannelResourcesInitialisationNotRequired
+Active-MBMS-Bearer-Service-ListFDD N rnsap.extension id-Active-MBMS-Bearer-ServiceFDD
+Inter-Frequency-Cell-List N rnsap.extension id-Inter-Frequency-Cell-List
+Active-MBMS-Bearer-Service-ListTDD N rnsap.extension id-Active-MBMS-Bearer-ServiceTDD
+RxTimingDeviationForTA768 N rnsap.extension id-RxTimingDeviationForTA768
+URA-ID N rnsap.extension id-URA-ID
+URA-ID N rnsap.extension id-Old-URA-ID
+RNC-ID N rnsap.extension id-SRNC-ID
+HSSICH-Info-DM-Rqst N rnsap.extension id-HSSICH-Info-DM-Rqst
+DPCH-ID768 N rnsap.extension id-DPCH-ID768-DM-Rqst
+PartialReportingIndicator N rnsap.extension id-PartialReportingIndicator
+MeasurementRecoveryBehavior N rnsap.extension id-MeasurementRecoveryBehavior
+AlternativeFormatReportingIndicator N rnsap.extension id-AlternativeFormatReportingIndicator
+HS-SICH-ID N rnsap.extension id-HSSICH-Info-DM
+Multiple-DedicatedMeasurementValueList-TDD-DM-Rsp N rnsap.extension id-multiple-DedicatedMeasurementValueList-TDD-DM-Rsp
+Multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp N rnsap.extension id-multiple-DedicatedMeasurementValueList-LCR-TDD-DM-Rsp
+Multiple-HSSICHMeasurementValueList-TDD-DM-Rsp N rnsap.extension id-multiple-HSSICHMeasurementValueList-TDD-DM-Rsp
+Multiple-DedicatedMeasurementValueList-TDD768-DM-Rsp N rnsap.extension id-multiple-DedicatedMeasurementValueList-TDD768-DM-Rsp
+DPCH-ID768 N rnsap.extension id-DPCH-ID768-DM-Rsp
+MeasurementRecoverySupportIndicator N rnsap.extension id-MeasurementRecoverySupportIndicator
+DedicatedMeasurementObjectType-DM-Fail N rnsap.extension id-DedicatedMeasurementObjectType-DM-Fail
+HS-SICH-ID N rnsap.extension id-HSSICH-Info-DM-Rprt
+DPCH-ID768 N rnsap.extension id-DPCH-ID768-DM-Rprt
+MeasurementRecoveryReportingIndicator N rnsap.extension id-MeasurementRecoveryReportingIndicator
+DedicatedMeasurementObjectType-DM-Fail-Ind N rnsap.extension id-DedicatedMeasurementObjectType-DM-Fail-Ind
+Enhanced-FACH-Support-Indicator N rnsap.extension id-Enhanced-FACH-Support-Indicator
+C-ID N rnsap.extension id-C-ID
+Enhanced-FACH-Information-ResponseFDD N rnsap.extension id-Enhanced-FACH-Information-ResponseFDD
+S-RNTI N rnsap.extension id-S-RNTI
+D-RNTI N rnsap.extension id-D-RNTI
+E-DCH-FDD-Update-Information N rnsap.extension id-E-DCH-FDD-Update-Information
+UEMeasurementTimeslotInfo768 N rnsap.extension id-UEMeasurementTimeslotInfo768
+Ext-Reference-E-TFCI-PO N rnsap.extension id-Ext-Reference-E-TFCI-PO
+Ext-Max-Bits-MACe-PDU-non-scheduled N rnsap.extension id-Ext-Max-Bits-MACe-PDU-non-scheduled
+HARQ-MemoryPartitioningInfoExtForMIMO N rnsap.extension id-HARQ-MemoryPartitioningInfoExtForMIMO
+MIMO-ActivationIndicator N rnsap.extension id-MIMO-ActivationIndicator
+MIMO-Mode-Indicator N rnsap.extension id-MIMO-Mode-Indicator
+MIMO-N-M-Ratio N rnsap.extension id-MIMO-N-M-Ratio
+TransportBearerNotSetupIndicator N rnsap.extension id-TransportBearerNotSetupIndicator
+TransportBearerNotRequestedIndicator N rnsap.extension id-TransportBearerNotRequestedIndicator
+
+UARFCN N rnsap.extension id-UARFCNforNt
+LCRTDD-Uplink-Physical-Channel-Capability N rnsap.extension id-LCRTDD-uplink-Physical-Channel-Capability
+Number-Of-Supported-Carriers N rnsap.extension id-number-Of-Supported-Carriers
+UL-SIR N rnsap.extension id-HSSICH-SIRTarget
+TDD-TPC-UplinkStepSize-LCR N rnsap.extension id-HSSICH-TPC-StepSize
+TSN-Length N rnsap.extension id-tSN-Length
+HS-SICH-ID-Extension N rnsap.extension id-HS-SICH-ID-Extension
+HSSICH-Info-DM-Rqst-Extension N rnsap.extension id-HSSICH-Info-DM-Rqst-Extension
+MultipleFreq-HSPDSCH-InformationList-ResponseTDDLCR N rnsap.extension id-multipleFreq-HSPDSCH-InformationList-ResponseTDDLCR
+Multicarrier-Number N rnsap.extension id-multicarrier-number
+UPPCHPositionLCR N rnsap.extension id-UPPCHPositionLCR
+UpPCH-InformationList-LCRTDD N rnsap.extension id-UpPCH-InformationList-LCRTDD
+UpPCH-InformationItem-LCRTDD N rnsap.extension id-UpPCH-InformationItem-LCRTDD
+Multiple-PLMN-List N rnsap.extension id-Multiple-PLMN-List
+UE-Capabilities-Info N rnsap.extension id-UE-Capabilities-Info
+FrameOffset N rnsap.extension id-FrameOffset
+ChipOffset N rnsap.extension id-ChipOffset
+Enhanced-PCH-Capability N rnsap.extension id-Enhanced-PCH-Capability
+SixteenQAM-UL-Operation-Indicator N rnsap.extension id-SixteenQAM-UL-Operation-Indicator
+E-TFCI-Boost-Information N rnsap.extension id-E-TFCI-Boost-Information
+SixtyfourQAM-UsageAllowedIndicator N rnsap.extension id-SixtyfourQAM-UsageAllowedIndicator
+SixtyfourQAM-DL-UsageIndicator N rnsap.extension id-SixtyfourQAM-DL-UsageIndicator
+E-Serving-Grant-Value N rnsap.extension id-Default-Serving-Grant-in-DTX-Cycle2
+E-DPDCH-PowerInterpolation N rnsap.extension id-E-DPDCH-PowerInterpolation
+Extended-E-DCH-LCRTDD-PhysicalLayerCategory N rnsap.extension id-Extended-E-DCH-LCRTDD-PhysicalLayerCategory
+E-DCH-MACdPDUSizeFormat N rnsap.extension id-E-DCH-MACdPDUSizeFormat
+Continuous-Packet-Connectivity-HS-SCCH-less-Deactivate-Indicator N rnsap.extension id-Continuous-Packet-Connectivity-HS-SCCH-Less-Deactivate-Indicator
+E-DCH-DL-Control-Channel-Change-Information N rnsap.extension id-E-DCH-DL-Control-Channel-Change-Information
+E-DCH-DL-Control-Channel-Grant-Information N rnsap.extension id-E-DCH-DL-Control-Channel-Grant-Information
+MaxNr-Retransmissions-EDCH N rnsap.extension id-MaximumNumber-Of-Retransmission-For-SchedulingInfo-LCRTDD
+E-DCH-MACdFlow-Retransmission-Timer-LCR N rnsap.extension id-E-DCH-RetransmissionTimer-For-SchedulingInfo-LCRTDD
+ControlGAP N rnsap.extension id-E-PUCH-PowerControlGAP
+NULL N rnsap.extension id-UE-with-enhanced-HS-SCCH-support-indicator
+HSDSCH-TBSizeTableIndicator N rnsap.extension id-HSDSCH-TBSizeTableIndicator
+DGANSS-Corrections-Req N rnsap.extension id-DGANSS-Corrections-Req
+E-AGCH-Table-Choice N rnsap.extension id-E-AGCH-Table-Choice
+RANAP-EnhancedRelocationInformationRequest N rnsap.ies id-RANAP-EnhancedRelocationInformationRequest
+RANAP-EnhancedRelocationInformationResponse N rnsap.ies id-RANAP-EnhancedRelocationInformationResponse
+Common-EDCH-MAC-d-Flow-Specific-InformationFDD N rnsap.extension id-Common-EDCH-MAC-d-Flow-Specific-InformationFDD
+Common-EDCH-Support-Indicator N rnsap.extension id-Common-EDCH-Support-Indicator
+E-RNTI N rnsap.extension id-E-RNTI
+Released-CN-Domain N rnsap.ies id-Released-CN-Domain
+MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rqst N rnsap.ies id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rqst
+MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rsp N rnsap.ies id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rsp
+MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rprt N rnsap.ies id-MBMS-Bearer-Service-in-MBMS-Cell-InfEx-Rprt
+MBMS-Cell-InfEx-Rqst N rnsap.ies id-MBMS-Cell-InfEx-Rqst
+MBMS-Cell-InfEx-Rsp N rnsap.ies id-MBMS-Cell-InfEx-Rsp
+MBMS-Cell-InfEx-Rprt N rnsap.ies id-MBMS-Cell-InfEx-Rprt
+Counting-Information N rnsap.extension id-Counting-Information
+Transmission-Mode-Information N rnsap.extension id-Transmission-Mode-Information
+MBMS-Neighbouring-Cell-Information N rnsap.extension id-MBMS-Neighbouring-Cell-Information
+MBMS-RLC-Sequence-Number-Information N rnsap.extension id-MBMS-RLC-Sequence-Number-Information
+RLC-Sequence-Number N rnsap.extension id-RLC-Sequence-Number
+Neighbouring-E-UTRA-CellInformation N rnsap.extension id-Neighbouring-E-UTRA-CellInformation
+MBSFN-Cluster-Identity N rnsap.ies id-MBSFN-Cluster-Identity
+MCCH-Configuration-Info N rnsap.ies id-MCCH-Configuration-Info
+MCCH-Message-List N rnsap.ies id-MCCH-Message-List
+MBSFN-Scheduling-Transmission-Time-Interval-Info-List N rnsap.ies id-MBSFN-Scheduling-Transmission-Time-Interval-Info-List
+GANSS-Time-ID N rnsap.extension id-GANSS-Time-ID
+GANSS-AddIonoModelReq N rnsap.extension id-GANSS-AddIonoModelReq
+GANSS-EarthOrientParaReq N rnsap.extension id-GANSS-EarthOrientParaReq
+GANSS-AddNavigationModelsReq N rnsap.extension id-GANSS-AddNavigationModelsReq
+GANSS-AddUTCModelsReq N rnsap.extension id-GANSS-AddUTCModelsReq
+GANSS-AuxInfoReq N rnsap.extension id-GANSS-AuxInfoReq
+GANSS-SBAS-ID N rnsap.extension id-GANSS-SBAS-ID
+GANSS-ID N rnsap.extension id-GANSS-ID
+GANSS-Additional-Ionospheric-Model N rnsap.extension id-GANSS-Additional-Ionospheric-Model
+GANSS-Earth-Orientation-Parameters N rnsap.extension id-GANSS-Earth-Orientation-Parameters
+GANSS-Additional-Time-Models N rnsap.extension id-GANSS-Additional-Time-Models
+GANSS-Additional-Navigation-Models N rnsap.extension id-GANSS-Additional-Navigation-Models
+GANSS-Additional-UTC-Models N rnsap.extension id-GANSS-Additional-UTC-Models
+GANSS-Auxiliary-Information N rnsap.extension id-GANSS-Auxiliary-Information
+MinimumReducedE-DPDCH-GainFactor N rnsap.extension id-MinimumReducedE-DPDCH-GainFactor
+Enhanced-FACH-Information-ResponseLCR N rnsap.extension id-Enhanced-FACH-Information-ResponseLCR
+Common-EDCH-MAC-d-Flow-Specific-InformationLCR N rnsap.extension id-Common-EDCH-MAC-d-Flow-Specific-InformationLCR
+HSDSCH-PreconfigurationSetup N rnsap.extension id-HSDSCH-PreconfigurationSetup
+HSDSCH-PreconfigurationInfo N rnsap.extension id-HSDSCH-PreconfigurationInfo
+NoOfTargetCellHS-SCCH-Order N rnsap.extension id-NoOfTargetCellHS-SCCH-Order
+EnhancedHSServingCC-Abort N rnsap.extension id-EnhancedHSServingCC-Abort
+Additional-HS-Cell-Information-RL-Setup-List N rnsap.extension id-Additional-HS-Cell-Information-RL-Setup
+Additional-HS-Cell-Information-Response-List N rnsap.extension id-Additional-HS-Cell-Information-Response
+Additional-HS-Cell-Information-RL-Addition-List N rnsap.extension id-Additional-HS-Cell-Information-RL-Addition
+Additional-HS-Cell-Change-Information-Response-List N rnsap.extension id-Additional-HS-Cell-Change-Information-Response
+Additional-HS-Cell-Information-RL-Reconf-Prep N rnsap.extension id-Additional-HS-Cell-Information-RL-Reconf-Prep
+Additional-HS-Cell-Information-RL-Reconf-Req N rnsap.extension id-Additional-HS-Cell-Information-RL-Reconf-Req
+Additional-HS-Cell-RL-Reconf-Response N rnsap.extension id-Additional-HS-Cell-RL-Reconf-Response
+Additional-HS-Cell-Information-RL-Param-Upd N rnsap.extension id-Additional-HS-Cell-Information-RL-Param-Upd
+Secondary-Serving-Cell-List N rnsap.extension id-Secondary-Serving-Cell-List
+LCRTDD-HSDSCH-Physical-Layer-Category N rnsap.extension id-MultiCarrier-HSDSCH-Physical-Layer-Category
+IdleIntervalInformation N rnsap.extension id-IdleIntervalInformation
+NeedforIdleInterval N rnsap.extension id-NeedforIdleInterval
+NULL N rnsap.extension id-IdleIntervalConfigurationIndicator
+ContinuousPacketConnectivity-DRX-InformationLCR N rnsap.extension id-ContinuousPacketConnectivity-DRX-InformationLCR
+ContinuousPacketConnectivity-DRX-Information-ResponseLCR N rnsap.extension id-ContinuousPacketConnectivity-DRX-Information-ResponseLCR
+E-AGCH-UE-Inactivity-Monitor-Threshold N rnsap.extension id-E-AGCH-UE-Inactivity-Monitor-Threshold
+CPC-InformationLCR N rnsap.extension id-CPC-InformationLCR
+E-DCH-Semi-PersistentScheduling-Information-LCR N rnsap.extension id-E-DCH-Semi-PersistentScheduling-Information-LCR
+HS-DSCH-Semi-PersistentScheduling-Information-LCR N rnsap.extension id-HS-DSCH-Semi-PersistentScheduling-Information-LCR
+HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR N rnsap.extension id-HS-DSCH-Semi-PersistentScheduling-Information-ResponseLCR
+E-DCH-Semi-PersistentScheduling-Information-ResponseLCR N rnsap.extension id-E-DCH-Semi-PersistentScheduling-Information-ResponseLCR
+MIMO-SFMode-For-HSPDSCHDualStream N rnsap.extension id-MIMO-SFMode-For-HSPDSCHDualStream
+MIMO-SFMode-For-HSPDSCHDualStream N rnsap.extension id-MIMO-SFMode-Supported-For-HSPDSCHDualStream
+MIMO-ReferenceSignal-InformationListLCR N rnsap.extension id-MIMO-ReferenceSignal-InformationListLCR
+GANSS-alm-keplerianNAVAlmanac N rnsap.ies id-GANSS-alm-keplerianNAVAlmanac
+GANSS-alm-keplerianReducedAlmanac N rnsap.ies id-GANSS-alm-keplerianReducedAlmanac
+GANSS-alm-keplerianMidiAlmanac N rnsap.ies id-GANSS-alm-keplerianMidiAlmanac
+GANSS-alm-keplerianGLONASS N rnsap.ies id-GANSS-alm-keplerianGLONASS
+GANSS-alm-ecefSBASAlmanac N rnsap.ies id-GANSS-alm-ecefSBASAlmanac
+DL-RLC-PDU-Size-Format N rnsap.extension id-DL-RLC-PDU-Size-Format
+MACes-Maximum-Bitrate-LCR N rnsap.extension id-MACes-Maximum-Bitrate-LCR
+Single-Stream-MIMO-ActivationIndicator N rnsap.extension id-Single-Stream-MIMO-ActivationIndicator
+Single-Stream-MIMO-Mode-Indicator N rnsap.extension id-Single-Stream-MIMO-Mode-Indicator
+Secondary-Serving-Cell-List N rnsap.extension id-Dual-Band-Secondary-Serving-Cell-List
+UE-AggregateMaximumBitRate N rnsap.extension id-UE-AggregateMaximumBitRate
+PowerOffsetForSecondaryCPICHforMIMO N rnsap.extension id-power-offset-for-S-CPICH-for-MIMO
+PowerOffsetForSecondaryCPICHforMIMORequestIndicator N rnsap.extension id-power-offset-for-S-CPICH-for-MIMO-Request-Indicator
+UE-SupportIndicatorExtension N rnsap.extension id-UE-SupportIndicatorExtension
+ActivationInformation N rnsap.ies id-ActivationInformation
+CellPortionLCRID N rnsap.extension id-CellPortionLCRID
+Additional-EDCH-Setup-Info N rnsap.extension id-Additional-EDCH-Cell-Information-RL-Setup-Req
+Additional-EDCH-Cell-Information-Response-List N rnsap.extension id-Additional-EDCH-Cell-Information-Response
+Additional-EDCH-Cell-Information-RL-Add-Req N rnsap.extension id-Additional-EDCH-Cell-Information-RL-Add-Req
+Additional-EDCH-Cell-Information-Response-RLAddList N rnsap.extension id-Additional-EDCH-Cell-Information-Response-RLAdd
+Additional-EDCH-Cell-Information-RL-Reconf-Prep N rnsap.extension id-Additional-EDCH-Cell-Information-RL-Reconf-Prep
+Additional-EDCH-Cell-Information-RL-Reconf-Req N rnsap.extension id-Additional-EDCH-Cell-Information-RL-Reconf-Req
+Additional-EDCH-Cell-Information-RL-Param-Upd N rnsap.extension id-Additional-EDCH-Cell-Information-RL-Param-Upd
+Additional-EDCH-Preconfiguration-Information N rnsap.extension id-Additional-EDCH-Preconfiguration-Information
+MulticellEDCH-InformationItemIEs N rnsap.ies id-MulticellEDCH-Information
+Additional-EDCH-Cell-Information-Response-RLReconf-List N rnsap.extension id-Additional-EDCH-Cell-Information-ResponseRLReconf
+NULL N rnsap.extension id-EDCH-Indicator
+DiversityMode N rnsap.extension id-DiversityMode
+TransmitDiversityIndicator N rnsap.extension id-TransmitDiversityIndicator
+NonCellSpecificTxDiversity N rnsap.extension id-NonCellSpecificTxDiversity
+CellCapabilityContainerExtension-FDD N rnsap.extension id-CellCapabilityContainerExtension-FDD
+HSDSCH-Physical-Layer-Category N rnsap.extension id-HSDSCH-Physical-Layer-Category
+E-RNTI N rnsap.extension id-E-RNTI-For-FACH
+HSDSCH-RNTI N rnsap.extension id-H-RNTI-For-FACH
+RNTI-Allocation-Indicator N rnsap.extension id-RNTI-Allocation-Indicator
+UE-AggregateMaximumBitRate-Enforcement-Indicator N rnsap.extension id-UE-AggregateMaximumBitRate-Enforcement-Indicator
+DCH-MeasurementOccasion-Information N rnsap.extension id-DCH-MeasurementOccasion-Information
+DCH-MeasurementType-Indicator N rnsap.extension id-DCH-MeasurementType-Indicator
+Out-of-Sychronization-Window N rnsap.extension id-Out-of-Sychronization-Window
+MulticellEDCH-RL-SpecificInformationItemIEs N rnsap.ies id-MulticellEDCH-RL-SpecificInformation
+DGNSS-ValidityPeriod N rnsap.extension id-DGNSS-ValidityPeriod
+TS0-HS-PDSCH-Indication-LCR N rnsap.extension id-TS0-HS-PDSCH-Indication-LCR
+UE-TS0-CapabilityLCR N rnsap.extension id-UE-TS0-CapabilityLCR
+Non-Serving-RL-Preconfig-Setup N rnsap.extension id-Non-Serving-RL-Preconfig-Setup
+Additional-E-DCH-Non-Serving-RL-Preconfiguration-Setup N rnsap.extension id-Additional-E-DCH-Non-Serving-RL-Preconfiguration-Setup
+Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList N rnsap.extension id-Additional-E-DCH-New-non-serving-RL-E-DCH-FDD-DL-Control-Channel-InfoList
+CellListValidityIndicator N rnsap.extension id-CellListValidityIndicator
+
+#RNSAP-ELEMENTARY-PROCEDURE
+RadioLinkSetupRequestFDD S rnsap.proc.imsg "id-radioLinkSetup/fdd"
+RadioLinkSetupResponseFDD S rnsap.proc.sout "id-radioLinkSetup/fdd"
+RadioLinkSetupFailureFDD S rnsap.proc.uout "id-radioLinkSetup/fdd"
+RadioLinkSetupRequestTDD S rnsap.proc.imsg "id-radioLinkSetup/tdd"
+RadioLinkSetupResponseTDD S rnsap.proc.sout "id-radioLinkSetup/tdd"
+RadioLinkSetupFailureTDD S rnsap.proc.uout "id-radioLinkSetup/tdd"
+RadioLinkAdditionRequestFDD S rnsap.proc.imsg "id-radioLinkAddition/fdd"
+RadioLinkAdditionResponseFDD S rnsap.proc.sout "id-radioLinkAddition/fdd"
+RadioLinkAdditionFailureFDD S rnsap.proc.uout "id-radioLinkAddition/fdd"
+RadioLinkAdditionRequestTDD S rnsap.proc.imsg "id-radioLinkAddition/tdd"
+RadioLinkAdditionResponseTDD S rnsap.proc.sout "id-radioLinkAddition/tdd"
+RadioLinkAdditionFailureTDD S rnsap.proc.uout "id-radioLinkAddition/tdd"
+RadioLinkDeletionRequest S rnsap.proc.imsg "id-radioLinkDeletion/common"
+RadioLinkDeletionResponse S rnsap.proc.sout "id-radioLinkDeletion/common"
+RadioLinkReconfigurationPrepareFDD S rnsap.proc.imsg "id-synchronisedRadioLinkReconfigurationPreparation/fdd"
+RadioLinkReconfigurationReadyFDD S rnsap.proc.sout "id-synchronisedRadioLinkReconfigurationPreparation/fdd"
+RadioLinkReconfigurationFailure S rnsap.proc.uout "id-synchronisedRadioLinkReconfigurationPreparation/fdd"
+RadioLinkReconfigurationPrepareTDD S rnsap.proc.imsg "id-synchronisedRadioLinkReconfigurationPreparation/tdd"
+RadioLinkReconfigurationReadyTDD S rnsap.proc.sout "id-synchronisedRadioLinkReconfigurationPreparation/tdd"
+RadioLinkReconfigurationFailure S rnsap.proc.uout "id-synchronisedRadioLinkReconfigurationPreparation/tdd"
+RadioLinkReconfigurationRequestFDD S rnsap.proc.imsg "id-unSynchronisedRadioLinkReconfiguration/fdd"
+RadioLinkReconfigurationResponseFDD S rnsap.proc.sout "id-unSynchronisedRadioLinkReconfiguration/fdd"
+RadioLinkReconfigurationFailure S rnsap.proc.uout "id-unSynchronisedRadioLinkReconfiguration/fdd"
+RadioLinkReconfigurationRequestTDD S rnsap.proc.imsg "id-unSynchronisedRadioLinkReconfiguration/tdd"
+RadioLinkReconfigurationResponseTDD S rnsap.proc.sout "id-unSynchronisedRadioLinkReconfiguration/tdd"
+RadioLinkReconfigurationFailure S rnsap.proc.uout "id-unSynchronisedRadioLinkReconfiguration/tdd"
+PhysicalChannelReconfigurationRequestFDD S rnsap.proc.imsg "id-physicalChannelReconfiguration/fdd"
+PhysicalChannelReconfigurationCommand S rnsap.proc.sout "id-physicalChannelReconfiguration/fdd"
+PhysicalChannelReconfigurationFailure S rnsap.proc.uout "id-physicalChannelReconfiguration/fdd"
+PhysicalChannelReconfigurationRequestTDD S rnsap.proc.imsg "id-physicalChannelReconfiguration/tdd"
+PhysicalChannelReconfigurationCommand S rnsap.proc.sout "id-physicalChannelReconfiguration/tdd"
+PhysicalChannelReconfigurationFailure S rnsap.proc.uout "id-physicalChannelReconfiguration/tdd"
+DedicatedMeasurementInitiationRequest S rnsap.proc.imsg "id-dedicatedMeasurementInitiation/common"
+DedicatedMeasurementInitiationResponse S rnsap.proc.sout "id-dedicatedMeasurementInitiation/common"
+DedicatedMeasurementInitiationFailure S rnsap.proc.uout "id-dedicatedMeasurementInitiation/common"
+CommonTransportChannelResourcesRequest S rnsap.proc.imsg "id-commonTransportChannelResourcesInitialisation/fdd"
+CommonTransportChannelResourcesResponseFDD S rnsap.proc.sout "id-commonTransportChannelResourcesInitialisation/fdd"
+CommonTransportChannelResourcesFailure S rnsap.proc.uout "id-commonTransportChannelResourcesInitialisation/fdd"
+CommonTransportChannelResourcesRequest S rnsap.proc.imsg "id-commonTransportChannelResourcesInitialisation/tdd"
+CommonTransportChannelResourcesResponseTDD S rnsap.proc.sout "id-commonTransportChannelResourcesInitialisation/tdd"
+CommonTransportChannelResourcesFailure S rnsap.proc.uout "id-commonTransportChannelResourcesInitialisation/tdd"
+UplinkSignallingTransferIndicationFDD S rnsap.proc.imsg "id-uplinkSignallingTransfer/fdd"
+UplinkSignallingTransferIndicationTDD S rnsap.proc.imsg "id-uplinkSignallingTransfer/tdd"
+DownlinkSignallingTransferRequest S rnsap.proc.imsg "id-downlinkSignallingTransfer/common"
+RelocationCommit S rnsap.proc.imsg "id-relocationCommit/common"
+PagingRequest S rnsap.proc.imsg "id-paging/common"
+RadioLinkReconfigurationCommit S rnsap.proc.imsg "id-synchronisedRadioLinkReconfigurationCommit/common"
+RadioLinkReconfigurationCancel S rnsap.proc.imsg "id-synchronisedRadioLinkReconfigurationCancellation/common"
+RadioLinkFailureIndication S rnsap.proc.imsg "id-radioLinkFailure/common"
+RadioLinkPreemptionRequiredIndication S rnsap.proc.imsg "id-radioLinkPreemption/common"
+RadioLinkRestoreIndication S rnsap.proc.imsg "id-radioLinkRestoration/common"
+DedicatedMeasurementReport S rnsap.proc.imsg "id-dedicatedMeasurementReporting/common"
+DedicatedMeasurementTerminationRequest S rnsap.proc.imsg "id-dedicatedMeasurementTermination/common"
+DedicatedMeasurementFailureIndication S rnsap.proc.imsg "id-dedicatedMeasurementFailure/common"
+RadioLinkCongestionIndication S rnsap.proc.imsg "id-radioLinkCongestion/common"
+DL-PowerControlRequest S rnsap.proc.imsg "id-downlinkPowerControl/fdd"
+DL-PowerTimeslotControlRequest S rnsap.proc.imsg "id-downlinkPowerTimeslotControl/tdd"
+CompressedModeCommand S rnsap.proc.imsg "id-compressedModeCommand/fdd"
+CommonTransportChannelResourcesReleaseRequest S rnsap.proc.imsg "id-commonTransportChannelResourcesRelease/common"
+ErrorIndication S rnsap.proc.imsg "id-errorIndication/common"
+CommonMeasurementInitiationRequest S rnsap.proc.imsg "id-commonMeasurementInitiation/common"
+CommonMeasurementInitiationResponse S rnsap.proc.sout "id-commonMeasurementInitiation/common"
+CommonMeasurementInitiationFailure S rnsap.proc.uout "id-commonMeasurementInitiation/common"
+CommonMeasurementReport S rnsap.proc.imsg "id-commonMeasurementReporting/common"
+CommonMeasurementTerminationRequest S rnsap.proc.imsg "id-commonMeasurementTermination/common"
+CommonMeasurementFailureIndication S rnsap.proc.imsg "id-commonMeasurementFailure/common"
+InformationExchangeInitiationRequest S rnsap.proc.imsg "id-informationExchangeInitiation/common"
+InformationExchangeInitiationResponse S rnsap.proc.sout "id-informationExchangeInitiation/common"
+InformationExchangeInitiationFailure S rnsap.proc.uout "id-informationExchangeInitiation/common"
+InformationReport S rnsap.proc.imsg "id-informationReporting/common"
+InformationExchangeTerminationRequest S rnsap.proc.imsg "id-informationExchangeTermination/common"
+InformationExchangeFailureIndication S rnsap.proc.imsg "id-informationExchangeFailure/common"
+PrivateMessage S rnsap.proc.imsg "id-privateMessage/common"
+ResetRequest S rnsap.proc.imsg "id-reset/common"
+ResetResponse S rnsap.proc.sout "id-reset/common"
+RadioLinkActivationCommandFDD S rnsap.proc.imsg "id-radioLinkActivation/fdd"
+RadioLinkActivationCommandTDD S rnsap.proc.imsg "id-radioLinkActivation/tdd"
+GERANUplinkSignallingTransferIndication S rnsap.proc.imsg "id-gERANuplinkSignallingTransfer/common"
+RadioLinkParameterUpdateIndicationFDD S rnsap.proc.imsg "id-radioLinkParameterUpdate/fdd"
+RadioLinkParameterUpdateIndicationTDD S rnsap.proc.imsg "id-radioLinkParameterUpdate/tdd"
+UEMeasurementInitiationRequest S rnsap.proc.imsg "id-uEMeasurementInitiation/tdd"
+UEMeasurementInitiationResponse S rnsap.proc.sout "id-uEMeasurementInitiation/tdd"
+UEMeasurementInitiationFailure S rnsap.proc.uout "id-uEMeasurementInitiation/tdd"
+UEMeasurementReport S rnsap.proc.imsg "id-uEMeasurementReporting/tdd"
+UEMeasurementTerminationRequest S rnsap.proc.imsg "id-uEMeasurementTermination/tdd"
+UEMeasurementFailureIndication S rnsap.proc.imsg "id-uEMeasurementFailure/tdd"
+IurInvokeTrace S rnsap.proc.imsg "id-iurInvokeTrace/common"
+IurDeactivateTrace S rnsap.proc.imsg "id-iurDeactivateTrace/common"
+MBMSAttachCommand S rnsap.proc.imsg "id-mBMSAttach/common"
+MBMSDetachCommand S rnsap.proc.imsg "id-mBMSDetach/common"
+DirectInformationTransfer S rnsap.proc.imsg "id-directInformationTransfer/common"
+
+EnhancedRelocationRequest S rnsap.proc.imsg "id-enhancedRelocation/common"
+EnhancedRelocationResponse S rnsap.proc.sout "id-enhancedRelocation/common"
+EnhancedRelocationFailure S rnsap.proc.uout "id-enhancedRelocation/common"
+
+EnhancedRelocationCancel S rnsap.proc.imsg "id-enhancedRelocationCancel/common"
+EnhancedRelocationSignallingTransfer S rnsap.proc.imsg "id-enhancedRelocationSignallingTransfer/common"
+EnhancedRelocationRelease S rnsap.proc.imsg "id-enhancedRelocationRelease/common"
+MBSFNMCCHInformation S rnsap.proc.imsg "id-mBSFNMCCHInformation/common"
+SecondaryULFrequencyReport S rnsap.proc.imsg "id-secondaryULFrequencyReporting/fdd"
+SecondaryULFrequencyUpdateIndication S rnsap.proc.imsg "id-secondaryULFrequencyUpdate/fdd"
+#.END
diff --git a/epan/dissectors/asn1/ros/CMakeLists.txt b/epan/dissectors/asn1/ros/CMakeLists.txt
new file mode 100644
index 0000000000..991645c150
--- /dev/null
+++ b/epan/dissectors/asn1/ros/CMakeLists.txt
@@ -0,0 +1,60 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ros )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+ Remote-Operations-Information-Objects.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+ Remote-Operations-Generic-ROS-PDUs.asn
+ Remote-Operations-Information-Objects.asn
+ Remote-Operations-Useful-Definitions.asn
+ ros-err.cnf
+ ros-inv.cnf
+ ros-rej.cnf
+ ros-res.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ros/Makefile.am b/epan/dissectors/asn1/ros/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ros/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ros/Makefile.common b/epan/dissectors/asn1/ros/Makefile.common
new file mode 100644
index 0000000000..8e1d5bfa5c
--- /dev/null
+++ b/epan/dissectors/asn1/ros/Makefile.common
@@ -0,0 +1,56 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=ros
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn \
+ Remote-Operations-Information-Objects.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ Remote-Operations-Generic-ROS-PDUs.asn \
+ Remote-Operations-Information-Objects.asn \
+ Remote-Operations-Useful-Definitions.asn \
+ ros-err.cnf \
+ ros-inv.cnf \
+ ros-rej.cnf \
+ ros-res.cnf
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist # for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/ros/Makefile.nmake b/epan/dissectors/asn1/ros/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ros/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ros/Remote-Operations-Generic-ROS-PDUs.asn b/epan/dissectors/asn1/ros/Remote-Operations-Generic-ROS-PDUs.asn
new file mode 100644
index 0000000000..e55ea3c05e
--- /dev/null
+++ b/epan/dissectors/asn1/ros/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/epan/dissectors/asn1/ros/Remote-Operations-Information-Objects.asn b/epan/dissectors/asn1/ros/Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000000..40ae404177
--- /dev/null
+++ b/epan/dissectors/asn1/ros/Remote-Operations-Information-Objects.asn
@@ -0,0 +1,125 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module Remote-Operations-Information-Objects (Rec. X.880:07/1994)
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)} DEFINITIONS
+IMPLICIT TAGS -- WS: Don't know why I need to add this - but if it isn't, the ROS operationCode is not successfully decoded - even though it doesn't have any tags! An asn2wrs issue?
+::=
+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/epan/dissectors/asn1/ros/Remote-Operations-Useful-Definitions.asn b/epan/dissectors/asn1/ros/Remote-Operations-Useful-Definitions.asn
new file mode 100644
index 0000000000..e526ff4600
--- /dev/null
+++ b/epan/dissectors/asn1/ros/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/epan/dissectors/asn1/ros/packet-ros-template.c b/epan/dissectors/asn1/ros/packet-ros-template.c
new file mode 100644
index 0000000000..6f7cc417b5
--- /dev/null
+++ b/epan/dissectors/asn1/ros/packet-ros-template.c
@@ -0,0 +1,530 @@
+/* packet-ros_asn1.c
+ * Routines for ROS packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/conversation.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+#include "packet-pres.h"
+#include "packet-ros.h"
+
+#define PNAME "X.880 OSI Remote Operations Service"
+#define PSNAME "ROS"
+#define PFNAME "ros"
+
+void proto_register_ros(void);
+void proto_reg_handoff_ros(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_ros = -1;
+
+static proto_tree *top_tree=NULL;
+static guint32 opcode;
+static guint32 invokeid;
+
+static dissector_handle_t ros_handle = NULL;
+
+typedef struct ros_conv_info_t {
+ struct ros_conv_info_t *next;
+ GHashTable *unmatched; /* unmatched operations */
+ GHashTable *matched; /* matched operations */
+} ros_conv_info_t;
+
+static ros_conv_info_t *ros_info_items = NULL;
+
+typedef struct ros_call_response {
+ gboolean is_request;
+ guint32 req_frame;
+ nstime_t req_time;
+ guint32 rep_frame;
+ guint invokeId;
+} ros_call_response_t;
+
+static int hf_ros_response_in = -1;
+static int hf_ros_response_to = -1;
+static int hf_ros_time = -1;
+
+
+#include "packet-ros-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_ros = -1;
+static gint ett_ros_unknown = -1;
+static gint ett_ros_invoke_argument = -1;
+static gint ett_ros_return_result = -1;
+static gint ett_ros_bind_invoke = -1;
+static gint ett_ros_bind_result = -1;
+static gint ett_ros_bind_error = -1;
+static gint ett_ros_unbind_invoke = -1;
+static gint ett_ros_unbind_result = -1;
+static gint ett_ros_unbind_error = -1;
+#include "packet-ros-ett.c"
+
+static expert_field ei_ros_dissector_oid_not_implemented = EI_INIT;
+static expert_field ei_ros_unknown_ros_pdu = EI_INIT;
+
+static dissector_table_t ros_oid_dissector_table=NULL;
+
+static GHashTable *oid_table=NULL;
+static GHashTable *protocol_table=NULL;
+
+void
+register_ros_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, gboolean uses_rtse)
+{
+ dissector_add_string("ros.oid", oid, dissector);
+ g_hash_table_insert(oid_table, (gpointer)oid, (gpointer)name);
+
+ if(!uses_rtse)
+ /* if we are not using RTSE, then we must register ROS with BER (ACSE) */
+ register_ber_oid_dissector_handle(oid, ros_handle, proto, name);
+}
+
+void
+register_ros_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name, gboolean uses_rtse)
+{
+ g_hash_table_insert(protocol_table, (gpointer)oid, (gpointer)rinfo);
+ g_hash_table_insert(oid_table, (gpointer)oid, (gpointer)name);
+
+ if(!uses_rtse)
+ /* if we are not using RTSE, then we must register ROS with BER (ACSE) */
+ register_ber_oid_dissector_handle(oid, ros_handle, proto, name);
+}
+
+static dissector_t ros_lookup_opr_dissector(gint32 opcode_lcl, const ros_opr_t *operations, gboolean argument)
+{
+ /* we don't know what order asn2wrs/module definition is, so ... */
+ if(operations) {
+ for(;operations->arg_pdu != (dissector_t)(-1); operations++)
+ if(operations->opcode == opcode_lcl)
+ return argument ? operations->arg_pdu : operations->res_pdu;
+
+ }
+ return NULL;
+}
+
+static dissector_t ros_lookup_err_dissector(gint32 errcode, const ros_err_t *errors)
+{
+ /* we don't know what order asn2wrs/module definition is, so ... */
+ if(errors) {
+ for(;errors->err_pdu != (dissector_t) (-1); errors++) {
+ if(errors->errcode == errcode)
+ return errors->err_pdu;
+ }
+ }
+ return NULL;
+}
+
+
+static int
+ros_try_string(const char *oid, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, struct SESSION_DATA_STRUCTURE* session)
+{
+ ros_info_t *rinfo;
+ gint32 opcode_lcl = 0;
+ const gchar *opname = NULL;
+ const gchar *suffix = NULL;
+ dissector_t opdissector = NULL;
+ const value_string *lookup;
+ proto_item *item=NULL;
+ proto_tree *ros_tree=NULL;
+
+ if((session != NULL) && ((rinfo = (ros_info_t*)g_hash_table_lookup(protocol_table, oid)) != NULL)) {
+
+ if(tree){
+ item = proto_tree_add_item(tree, *(rinfo->proto), tvb, 0, -1, ENC_NA);
+ ros_tree = proto_item_add_subtree(item, *(rinfo->ett_proto));
+ }
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, rinfo->name);
+
+ /* if this is a bind operation */
+ if((session->ros_op & ROS_OP_TYPE_MASK) == ROS_OP_BIND) {
+ /* use the in-built operation codes */
+ if((session->ros_op & ROS_OP_PDU_MASK) == ROS_OP_ERROR)
+ opcode_lcl = err_ros_bind;
+ else
+ opcode_lcl = op_ros_bind;
+ } else
+ /* otherwise just take the opcode */
+ opcode_lcl = session->ros_op & ROS_OP_OPCODE_MASK;
+
+ /* default lookup in the operations */
+ lookup = rinfo->opr_code_strings;
+
+ switch(session->ros_op & ROS_OP_PDU_MASK) {
+ case ROS_OP_ARGUMENT:
+ opdissector = ros_lookup_opr_dissector(opcode_lcl, rinfo->opr_code_dissectors, TRUE);
+ suffix = "_argument";
+ break;
+ case ROS_OP_RESULT:
+ opdissector = ros_lookup_opr_dissector(opcode_lcl, rinfo->opr_code_dissectors, FALSE);
+ suffix = "_result";
+ break;
+ case ROS_OP_ERROR:
+ opdissector = ros_lookup_err_dissector(opcode_lcl, rinfo->err_code_dissectors);
+ lookup = rinfo->err_code_strings;
+ break;
+ default:
+ break;
+ }
+
+ if(opdissector) {
+
+ opname = val_to_str(opcode_lcl, lookup, "Unknown opcode (%d)");
+
+ col_set_str(pinfo->cinfo, COL_INFO, opname);
+ if(suffix)
+ col_append_str(pinfo->cinfo, COL_INFO, suffix);
+
+ return (*opdissector)(tvb, pinfo, ros_tree, NULL);
+ }
+ }
+
+ return 0;
+}
+
+int
+call_ros_oid_callback(const char *oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, struct SESSION_DATA_STRUCTURE* session)
+{
+ tvbuff_t *next_tvb;
+ int len;
+
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ if(((len = ros_try_string(oid, next_tvb, pinfo, tree, session)) == 0) &&
+ ((len = dissector_try_string(ros_oid_dissector_table, oid, next_tvb, pinfo, tree, session)) == 0)) {
+ proto_item *item;
+ proto_tree *next_tree;
+
+ next_tree = proto_tree_add_subtree_format(tree, next_tvb, 0, -1, ett_ros_unknown, &item,
+ "ROS: Dissector for OID:%s not implemented. Contact Wireshark developers if you want this supported", oid);
+
+ expert_add_info_format(pinfo, item, &ei_ros_dissector_oid_not_implemented,
+ "ROS: Dissector for OID %s not implemented", oid);
+ len = dissect_unknown_ber(pinfo, next_tvb, offset, next_tree);
+ }
+
+ offset += len;
+
+ return offset;
+}
+
+
+static guint
+ros_info_hash_matched(gconstpointer k)
+{
+ const ros_call_response_t *key = (const ros_call_response_t *)k;
+
+ return key->invokeId;
+}
+
+static gint
+ros_info_equal_matched(gconstpointer k1, gconstpointer k2)
+{
+ const ros_call_response_t *key1 = (const ros_call_response_t *)k1;
+ const ros_call_response_t *key2 = (const ros_call_response_t *)k2;
+
+ if( key1->req_frame && key2->req_frame && (key1->req_frame!=key2->req_frame) ){
+ return 0;
+ }
+ /* a response may span multiple frames
+ if( key1->rep_frame && key2->rep_frame && (key1->rep_frame!=key2->rep_frame) ){
+ return 0;
+ }
+ */
+
+ return key1->invokeId==key2->invokeId;
+}
+
+static guint
+ros_info_hash_unmatched(gconstpointer k)
+{
+ const ros_call_response_t *key = (const ros_call_response_t *)k;
+
+ return key->invokeId;
+}
+
+static gint
+ros_info_equal_unmatched(gconstpointer k1, gconstpointer k2)
+{
+ const ros_call_response_t *key1 = (const ros_call_response_t *)k1;
+ const ros_call_response_t *key2 = (const ros_call_response_t *)k2;
+
+ return key1->invokeId==key2->invokeId;
+}
+
+static ros_call_response_t *
+ros_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint invokeId, gboolean isInvoke)
+{
+ ros_call_response_t rcr, *rcrp=NULL;
+ ros_conv_info_t *ros_info = ros_info_items;
+
+ /* first see if we have already matched this */
+
+ rcr.invokeId=invokeId;
+ rcr.is_request = isInvoke;
+
+ if(isInvoke) {
+ rcr.req_frame=pinfo->num;
+ rcr.rep_frame=0;
+ } else {
+ rcr.req_frame=0;
+ rcr.rep_frame=pinfo->num;
+ }
+
+ rcrp=(ros_call_response_t *)g_hash_table_lookup(ros_info->matched, &rcr);
+
+ if(rcrp) {
+ /* we have found a match */
+ rcrp->is_request=rcr.is_request;
+
+ } else {
+
+ /* we haven't found a match - try and match it up */
+
+ if(isInvoke) {
+ /* this a a request - add it to the unmatched list */
+
+ /* check that we don't already have one of those in the
+ unmatched list and if so remove it */
+
+ rcr.invokeId=invokeId;
+
+ rcrp=(ros_call_response_t *)g_hash_table_lookup(ros_info->unmatched, &rcr);
+
+ if(rcrp){
+ g_hash_table_remove(ros_info->unmatched, rcrp);
+ }
+
+ /* if we can't reuse the old one, grab a new chunk */
+ if(!rcrp){
+ rcrp=wmem_new(wmem_file_scope(), ros_call_response_t);
+ }
+ rcrp->invokeId=invokeId;
+ rcrp->req_frame=pinfo->num;
+ rcrp->req_time=pinfo->abs_ts;
+ rcrp->rep_frame=0;
+ rcrp->is_request=TRUE;
+ g_hash_table_insert(ros_info->unmatched, rcrp, rcrp);
+ return NULL;
+
+ } else {
+
+ /* this is a result - it should be in our unmatched list */
+
+ rcr.invokeId=invokeId;
+ rcrp=(ros_call_response_t *)g_hash_table_lookup(ros_info->unmatched, &rcr);
+
+ if(rcrp){
+
+ if(!rcrp->rep_frame){
+ g_hash_table_remove(ros_info->unmatched, rcrp);
+ rcrp->rep_frame=pinfo->num;
+ rcrp->is_request=FALSE;
+ g_hash_table_insert(ros_info->matched, rcrp, rcrp);
+ }
+ }
+ }
+ }
+
+ if(rcrp){ /* we have found a match */
+ proto_item *item = NULL;
+
+ if(rcrp->is_request){
+ item=proto_tree_add_uint(tree, hf_ros_response_in, tvb, 0, 0, rcrp->rep_frame);
+ PROTO_ITEM_SET_GENERATED (item);
+ } else {
+ nstime_t ns;
+ item=proto_tree_add_uint(tree, hf_ros_response_to, tvb, 0, 0, rcrp->req_frame);
+ PROTO_ITEM_SET_GENERATED (item);
+ nstime_delta(&ns, &pinfo->abs_ts, &rcrp->req_time);
+ item=proto_tree_add_time(tree, hf_ros_time, tvb, 0, 0, &ns);
+ PROTO_ITEM_SET_GENERATED (item);
+ }
+ }
+
+ return rcrp;
+}
+
+#include "packet-ros-fn.c"
+
+/*
+* Dissect ROS PDUs inside a PPDU.
+*/
+static int
+dissect_ros(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item;
+ proto_tree *tree;
+ proto_tree *next_tree=NULL;
+ conversation_t *conversation;
+ ros_conv_info_t *ros_info = NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* do we have application context from the acse dissector? */
+ if (data == NULL)
+ return 0;
+ asn1_ctx.private_data = data;
+
+ /* save parent_tree so subdissectors can create new top nodes */
+ top_tree=parent_tree;
+
+ conversation = find_or_create_conversation(pinfo);
+
+ /*
+ * Do we already have our info
+ */
+ ros_info = (ros_conv_info_t *)conversation_get_proto_data(conversation, proto_ros);
+ if (ros_info == NULL) {
+
+ /* No. Attach that information to the conversation. */
+
+ ros_info = (ros_conv_info_t *)g_malloc(sizeof(ros_conv_info_t));
+ ros_info->matched=g_hash_table_new(ros_info_hash_matched, ros_info_equal_matched);
+ ros_info->unmatched=g_hash_table_new(ros_info_hash_unmatched, ros_info_equal_unmatched);
+
+ conversation_add_proto_data(conversation, proto_ros, ros_info);
+
+ ros_info->next = ros_info_items;
+ ros_info_items = ros_info;
+ }
+
+ item = proto_tree_add_item(parent_tree, proto_ros, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_ros);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "ROS");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0){
+ old_offset=offset;
+ offset=dissect_ros_ROS(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ if(offset == old_offset){
+ next_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_ros_unknown, &item, "Unknown ROS PDU");
+
+ expert_add_info(pinfo, item, &ei_ros_unknown_ros_pdu);
+ dissect_unknown_ber(pinfo, tvb, offset, next_tree);
+ break;
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static void
+ros_cleanup(void)
+{
+ ros_conv_info_t *ros_info;
+
+ /* Free up state attached to the ros_info structures */
+ for (ros_info = ros_info_items; ros_info != NULL; ) {
+ ros_conv_info_t *last;
+
+ g_hash_table_destroy(ros_info->matched);
+ ros_info->matched=NULL;
+ g_hash_table_destroy(ros_info->unmatched);
+ ros_info->unmatched=NULL;
+
+ last = ros_info;
+ ros_info = ros_info->next;
+ g_free(last);
+ }
+
+ ros_info_items = NULL;
+
+}
+
+/*--- proto_register_ros -------------------------------------------*/
+void proto_register_ros(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ { &hf_ros_response_in,
+ { "Response In", "ros.response_in",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "The response to this remote operation invocation is in this frame", HFILL }},
+ { &hf_ros_response_to,
+ { "Response To", "ros.response_to",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "This is a response to the remote operation invocation in this frame", HFILL }},
+ { &hf_ros_time,
+ { "Time", "ros.time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "The time between the Invoke and the Response", HFILL }},
+
+#include "packet-ros-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ros,
+ &ett_ros_unknown,
+ &ett_ros_invoke_argument,
+ &ett_ros_return_result,
+ &ett_ros_bind_invoke,
+ &ett_ros_bind_result,
+ &ett_ros_bind_error,
+ &ett_ros_unbind_invoke,
+ &ett_ros_unbind_result,
+ &ett_ros_unbind_error,
+
+#include "packet-ros-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_ros_dissector_oid_not_implemented, { "ros.dissector_oid_not_implemented", PI_UNDECODED, PI_WARN, "ROS: Dissector for OID not implemented", EXPFILL }},
+ { &ei_ros_unknown_ros_pdu, { "ros.unknown_ros_pdu", PI_UNDECODED, PI_WARN, "Unknown ROS PDU", EXPFILL }},
+ };
+
+ expert_module_t* expert_ros;
+
+ /* Register protocol */
+ proto_ros = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("ros", dissect_ros, proto_ros);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ros, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_ros = expert_register_protocol(proto_ros);
+ expert_register_field_array(expert_ros, ei, array_length(ei));
+
+ ros_oid_dissector_table = register_dissector_table("ros.oid", "ROS OID Dissectors", FT_STRING, BASE_NONE, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ oid_table=g_hash_table_new(g_str_hash, g_str_equal);
+ protocol_table=g_hash_table_new(g_str_hash, g_str_equal);
+
+ ros_handle = find_dissector("ros");
+
+ register_cleanup_routine(ros_cleanup);
+}
+
+
+/*--- proto_reg_handoff_ros --- */
+void proto_reg_handoff_ros(void) {
+
+
+}
diff --git a/epan/dissectors/asn1/ros/packet-ros-template.h b/epan/dissectors/asn1/ros/packet-ros-template.h
new file mode 100644
index 0000000000..8a41af0875
--- /dev/null
+++ b/epan/dissectors/asn1/ros/packet-ros-template.h
@@ -0,0 +1,78 @@
+/* packet-ros.h
+ * Routines for ROS packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_ROS_H
+#define PACKET_ROS_H
+
+#include "packet-ros-exp.h"
+
+# include "packet-ses.h"
+
+/* for use in the SESSION_DATA_STRUCTURE ros_op argument
+ top byte indicates ROS invocation
+ bottom three bytes indicate operation code */
+
+# define ROS_OP_MASK 0xff000000
+
+# define ROS_OP_PDU_MASK 0xf0000000
+# define ROS_OP_ARGUMENT 0x10000000
+# define ROS_OP_RESULT 0x20000000
+# define ROS_OP_ERROR 0x30000000
+# define ROS_OP_REJECT 0x40000000
+
+# define ROS_OP_TYPE_MASK 0x0f000000
+# define ROS_OP_BIND 0x01000000
+# define ROS_OP_UNBIND 0x02000000
+# define ROS_OP_INVOKE 0x03000000
+
+# define ROS_OP_OPCODE_MASK (~ROS_OP_MASK)
+
+# define op_ros_bind (-1) /* pseudo operation code for asn2wrs generated binds */
+# define err_ros_bind (-1) /* pseudo eror code for asn2wrs generated binds */
+
+typedef struct _ros_opr_t {
+ gint32 opcode;
+ dissector_t arg_pdu;
+ dissector_t res_pdu;
+} ros_opr_t;
+
+typedef struct _ros_err_t {
+ gint32 errcode;
+ dissector_t err_pdu;
+} ros_err_t;
+
+typedef struct _ros_info_t {
+ const gchar *name;
+ int *proto;
+ gint *ett_proto;
+ const value_string *opr_code_strings;
+ const ros_opr_t *opr_code_dissectors;
+ const value_string *err_code_strings;
+ const ros_err_t *err_code_dissectors;
+} ros_info_t;
+
+void register_ros_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, gboolean uses_rtse);
+void register_ros_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name, gboolean uses_rtse);
+int call_ros_oid_callback(const char *oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, struct SESSION_DATA_STRUCTURE* session);
+
+#endif /* PACKET_ROS_H */
diff --git a/epan/dissectors/asn1/ros/ros-err.cnf b/epan/dissectors/asn1/ros/ros-err.cnf
new file mode 100644
index 0000000000..76aa331dcb
--- /dev/null
+++ b/epan/dissectors/asn1/ros/ros-err.cnf
@@ -0,0 +1,46 @@
+# ros-err.cnf
+# ROS ReturnError common code
+# Copyright 2007 Tomas Kukosa
+
+#.FN_HDR ReturnError
+ dissector_handle_t err_handle = NULL;
+ const gchar *descr = "";
+
+ err_next_tvb = NULL;
+#.FN_FTR ReturnError
+ actx->rose_ctx->d.pdu = 3;
+
+ if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->err_local_dissector_table) {
+ err_handle = dissector_get_uint_handle(actx->rose_ctx->err_local_dissector_table, actx->rose_ctx->d.code_local);
+ } else if ((actx->rose_ctx->d.code == 1) && actx->rose_ctx->err_global_dissector_table) {
+ err_handle = dissector_get_string_handle(actx->rose_ctx->err_global_dissector_table, actx->rose_ctx->d.code_global);
+ } else {
+ err_handle = NULL;
+ }
+
+ if (!err_handle ||
+ !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(err_handle)))) {
+ if (actx->rose_ctx->d.code == 0)
+ descr = wmem_strdup_printf(wmem_packet_scope(), "ERR: %d", actx->rose_ctx->d.code_local);
+ else if (actx->rose_ctx->d.code == 1)
+ descr = wmem_strdup_printf(wmem_packet_scope(), "ERR: %s", actx->rose_ctx->d.code_global);
+ } else {
+ descr = wmem_strdup_printf(wmem_packet_scope(), "ERR:");
+ }
+
+ if (actx->rose_ctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", descr);
+ if (actx->rose_ctx->fillin_info)
+ col_append_str(actx->pinfo->cinfo, COL_INFO, descr);
+ if (actx->rose_ctx->fillin_ptr)
+ g_strlcat(actx->rose_ctx->fillin_ptr, descr, actx->rose_ctx->fillin_buf_size);
+
+ if (!err_next_tvb) { /* empty error */
+ err_next_tvb = tvb_new_subset(tvb, (actx->encoding==ASN1_ENC_PER)?offset>>3:offset, 0, 0);
+ }
+
+ call_dissector_with_data((err_handle)?err_handle:data_handle, err_next_tvb, actx->pinfo, tree, actx->rose_ctx);
+ if (!err_handle) {
+ expert_add_info_format(actx->pinfo, tree, &ei_ros_undecoded, "Undecoded %s", descr);
+ }
+#.END
diff --git a/epan/dissectors/asn1/ros/ros-inv.cnf b/epan/dissectors/asn1/ros/ros-inv.cnf
new file mode 100644
index 0000000000..1bc9251c49
--- /dev/null
+++ b/epan/dissectors/asn1/ros/ros-inv.cnf
@@ -0,0 +1,46 @@
+# ros-inv.cnf
+# ROS Invoke common code
+# Copyright 2007 Tomas Kukosa
+
+#.FN_HDR Invoke
+ dissector_handle_t arg_handle = NULL;
+ const gchar *descr = "";
+
+ arg_next_tvb = NULL;
+#.FN_FTR Invoke
+ actx->rose_ctx->d.pdu = 1;
+
+ if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->arg_local_dissector_table) {
+ arg_handle = dissector_get_uint_handle(actx->rose_ctx->arg_local_dissector_table, actx->rose_ctx->d.code_local);
+ } else if ((actx->rose_ctx->d.code == 1) && actx->rose_ctx->arg_global_dissector_table) {
+ arg_handle = dissector_get_string_handle(actx->rose_ctx->arg_global_dissector_table, actx->rose_ctx->d.code_global);
+ } else {
+ arg_handle = NULL;
+ }
+
+ if (!arg_handle ||
+ !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(arg_handle)))) {
+ if (actx->rose_ctx->d.code == 0)
+ descr = wmem_strdup_printf(wmem_packet_scope(), "INV: %d", actx->rose_ctx->d.code_local);
+ else if (actx->rose_ctx->d.code == 1)
+ descr = wmem_strdup_printf(wmem_packet_scope(), "INV: %s", actx->rose_ctx->d.code_global);
+ } else {
+ descr = wmem_strdup_printf(wmem_packet_scope(), "INV:");
+ }
+
+ if (actx->rose_ctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", descr);
+ if (actx->rose_ctx->fillin_info)
+ col_append_str(actx->pinfo->cinfo, COL_INFO, descr);
+ if (actx->rose_ctx->fillin_ptr)
+ g_strlcat(actx->rose_ctx->fillin_ptr, descr, actx->rose_ctx->fillin_buf_size);
+
+ if (!arg_next_tvb) { /* empty argument */
+ arg_next_tvb = tvb_new_subset(tvb, (actx->encoding==ASN1_ENC_PER)?offset>>3:offset, 0, 0);
+ }
+
+ call_dissector_with_data((arg_handle)?arg_handle:data_handle, arg_next_tvb, actx->pinfo, tree, actx->rose_ctx);
+ if (!arg_handle) {
+ expert_add_info_format(actx->pinfo, tree, &ei_ros_undecoded, "Undecoded %s", descr);
+ }
+#.END
diff --git a/epan/dissectors/asn1/ros/ros-rej.cnf b/epan/dissectors/asn1/ros/ros-rej.cnf
new file mode 100644
index 0000000000..2b991b9d13
--- /dev/null
+++ b/epan/dissectors/asn1/ros/ros-rej.cnf
@@ -0,0 +1,18 @@
+# ros-rej.cnf
+# ROS Reject common code
+# Copyright 2007 Tomas Kukosa
+
+#.FN_HDR Reject
+ const gchar *descr = "";
+
+ problem_str[0] = '\0';
+#.FN_FTR Reject
+ descr = wmem_strdup_printf(wmem_packet_scope(), "REJ: %s", problem_str);
+
+ if (actx->rose_ctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", descr);
+ if (actx->rose_ctx->fillin_info)
+ col_append_str(actx->pinfo->cinfo, COL_INFO, descr);
+ if (actx->rose_ctx->fillin_ptr)
+ g_strlcat(actx->rose_ctx->fillin_ptr, descr, actx->rose_ctx->fillin_buf_size);
+#.END
diff --git a/epan/dissectors/asn1/ros/ros-res.cnf b/epan/dissectors/asn1/ros/ros-res.cnf
new file mode 100644
index 0000000000..f0900906cb
--- /dev/null
+++ b/epan/dissectors/asn1/ros/ros-res.cnf
@@ -0,0 +1,49 @@
+# ros-res.cnf
+# ROS ReturnResult common code
+# Copyright 2007 Tomas Kukosa
+
+#.FN_HDR ReturnResult
+ dissector_handle_t res_handle = NULL;
+ const gchar *descr = "";
+
+ actx->rose_ctx->d.code = -1;
+ res_next_tvb = NULL;
+#.FN_FTR ReturnResult
+ actx->rose_ctx->d.pdu = 2;
+
+ if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->res_local_dissector_table) {
+ res_handle = dissector_get_uint_handle(actx->rose_ctx->res_local_dissector_table, actx->rose_ctx->d.code_local);
+ } else if ((actx->rose_ctx->d.code == 1) && actx->rose_ctx->res_global_dissector_table) {
+ res_handle = dissector_get_string_handle(actx->rose_ctx->res_global_dissector_table, actx->rose_ctx->d.code_global);
+ } else {
+ res_handle = NULL;
+ }
+
+ if (!res_handle ||
+ !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(res_handle)))) {
+ if (actx->rose_ctx->d.code == 0)
+ descr = wmem_strdup_printf(wmem_packet_scope(), "RES: %d", actx->rose_ctx->d.code_local);
+ else if (actx->rose_ctx->d.code == 1)
+ descr = wmem_strdup_printf(wmem_packet_scope(), "RES: %s", actx->rose_ctx->d.code_global);
+ } else {
+ descr = wmem_strdup_printf(wmem_packet_scope(), "RES:");
+ }
+
+ if (actx->rose_ctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", descr);
+ if (actx->rose_ctx->fillin_info)
+ col_append_str(actx->pinfo->cinfo, COL_INFO, descr);
+ if (actx->rose_ctx->fillin_ptr)
+ g_strlcat(actx->rose_ctx->fillin_ptr, descr, actx->rose_ctx->fillin_buf_size);
+
+ if (actx->rose_ctx->d.code != -1) {
+ if (!res_next_tvb) { /* empty result */
+ res_next_tvb = tvb_new_subset(tvb, (actx->encoding==ASN1_ENC_PER)?offset>>3:offset, 0, 0);
+ }
+
+ call_dissector_with_data((res_handle)?res_handle:data_handle, res_next_tvb, actx->pinfo, tree, actx->rose_ctx);
+ if (!res_handle) {
+ expert_add_info_format(actx->pinfo, tree, &ei_ros_undecoded, "Undecoded %s", descr);
+ }
+ }
+#.END
diff --git a/epan/dissectors/asn1/ros/ros.asn b/epan/dissectors/asn1/ros/ros.asn
new file mode 100644
index 0000000000..262e9b231e
--- /dev/null
+++ b/epan/dissectors/asn1/ros/ros.asn
@@ -0,0 +1,190 @@
+-- Module Remote-Operations-Generic-ROS-PDUs (X.880:07/1994)
+-- See also the README file
+-- See also the index of all ASN.1 assignments needed in this Recommendation
+
+
+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,
+
+ bind-invoke [16] --OPERATION.&ArgumentType({operation})-- ANY,
+ bind-result [17] --OPERATION.&ResultType({operation})-- ANY,
+ bind-error [18] --OPERATION.&Errors.&ParameterType({operation}) -- ANY,
+
+ unbind-invoke [19] --OPERATION.&ArgumentType({operation})-- ANY,
+ unbind-result [20] --OPERATION.&ResultType({operation})-- ANY,
+ unbind-error [21] --OPERATION.&Errors.&ParameterType({operation}) -- ANY
+}
+
+
+--(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
+-- }
+ [0] INTEGER
+-- (CONSTRAINED BY { - - must identify an outstanding operation - -} !
+-- RejectProblem:invoke-unrecognizedLinkedId)
+-- (CONSTRAINED BY { - - which has one or more linked operations- -} !
+-- RejectProblem:invoke-linkedResponseUnexpected)-- OPTIONAL,
+ opcode OperationCode
+-- OPERATION.&operationCode
+-- ({Operations} !RejectProblem:invoke-unrecognizedOperation)--,
+ argument
+-- OPERATION.&ArgumentType
+-- ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) -- ANY OPTIONAL
+}
+OperationCode ::= INTEGER
+
+--(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 OperationCode
+-- OPERATION.&operationCode({Operations})
+-- (CONSTRAINED BY { - - identified by invokeId - -} !
+-- RejectProblem:returnResult-unrecognizedInvocation)--,
+ result ANY
+-- 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 ErrorCode
+-- ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+-- (CONSTRAINED BY { - - must be in the &Errors field of the associated operation - -
+-- } !RejectProblem:returnError-unexpectedError)--,
+ parameter ANY
+-- ERROR.&ParameterType
+-- ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+ OPTIONAL
+}
+--(CONSTRAINED BY { - - must conform to the above definition - -} !
+-- RejectProblem:general-mistypedPDU)
+
+ErrorCode ::= INTEGER
+
+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})
+--}
+
+
+--Code ::= CHOICE {
+-- local INTEGER,
+-- global OBJECT IDENTIFIER
+--}
+
+--Priority ::= INTEGER
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/ros/ros.cnf b/epan/dissectors/asn1/ros/ros.cnf
new file mode 100644
index 0000000000..8511a8e20b
--- /dev/null
+++ b/epan/dissectors/asn1/ros/ros.cnf
@@ -0,0 +1,207 @@
+#.EXPORTS
+OPERATION
+ERROR
+OPERATION-PACKAGE
+CONTRACT
+InvokeId
+Code
+ROS
+
+#.OMIT_ASSIGNMENT
+Priority
+#.END
+
+#.TYPE_RENAME
+ReturnResult/result/result OperationResult
+
+#.FIELD_RENAME
+Reject/problem/invoke invokeProblem
+ReturnResult/result/result operationResult
+Reject/problem/returnError rejectError
+Reject/problem/returnResult rejectResult
+
+#.FN_PARS OperationCode VAL_PTR = &opcode
+
+#.FN_PARS ErrorCode VAL_PTR = &opcode
+
+#.FN_PARS InvokeId/present VAL_PTR = &invokeid
+
+#.FN_BODY Invoke/argument
+ char *oid;
+ proto_tree* subtree;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_ros_invoke_argument, NULL, "invoke argument");
+
+ ros_match_call_response(tvb, actx->pinfo, subtree, invokeid, TRUE);
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_INVOKE | ROS_OP_ARGUMENT);
+ /* now add the opcode */
+ session->ros_op |= opcode;
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+#.FN_BODY ReturnResult/result/result
+ char *oid;
+ proto_tree* subtree;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ subtree = proto_tree_add_subtree(tree, tvb, offset,-1, ett_ros_return_result, NULL, "return result");
+
+ ros_match_call_response(tvb, actx->pinfo, subtree, invokeid, FALSE);
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_INVOKE | ROS_OP_RESULT);
+ /* now add the opcode */
+ session->ros_op |= opcode;
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+#.FN_BODY ReturnError/parameter
+ char *oid;
+ proto_tree* subtree;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ subtree = proto_tree_add_subtree(tree, tvb, offset,-1, ett_ros_return_result, NULL, "return result");
+
+ ros_match_call_response(tvb, actx->pinfo, subtree, invokeid, FALSE);
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_INVOKE | ROS_OP_ERROR);
+ /* now add the opcode (really the error code) */
+ session->ros_op |= opcode;
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+#.FN_BODY ROS/bind-invoke
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ proto_tree_add_subtree(tree, tvb, offset,-1, ett_ros_bind_result, NULL, "bind-invoke");
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_BIND | ROS_OP_ARGUMENT);
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+#.FN_BODY ROS/bind-result
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ proto_tree_add_subtree(tree, tvb, offset,-1, ett_ros_bind_result, NULL, "bind-result");
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_BIND | ROS_OP_RESULT);
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+#.FN_BODY ROS/bind-error
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ proto_tree_add_subtree(tree, tvb, offset,-1, ett_ros_bind_error, NULL, "bind-error");
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_BIND | ROS_OP_ERROR);
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+
+#.FN_BODY ROS/unbind-invoke
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ proto_tree_add_subtree(tree, tvb, offset,-1, ett_ros_unbind_invoke, NULL, "unbind-invoke");
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_UNBIND | ROS_OP_ARGUMENT);
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+
+#.FN_BODY ROS/unbind-result
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ proto_tree_add_subtree(tree, tvb, offset,-1, ett_ros_unbind_result, NULL, "unbind-result");
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_UNBIND | ROS_OP_RESULT);
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+#.FN_BODY ROS/unbind-error
+ char *oid;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
+
+ /* not sure what the length should be - -1 for now */
+ proto_tree_add_subtree(tree, tvb, offset,-1, ett_ros_unbind_error, NULL, "unbind-error");
+
+ if(session && session->pres_ctx_id && (oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id))) {
+ /* this should be ROS! */
+ session->ros_op = (ROS_OP_UNBIND | ROS_OP_ERROR);
+ offset = call_ros_oid_callback(oid, tvb, offset, actx->pinfo, top_tree, session);
+ }
+
+#.FN_BODY ROS/reject
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "Reject");
+ %(DEFAULT_BODY)s
+
+#.FN_PARS GeneralProblem
+ VAL_PTR = &problem
+
+#.FN_BODY GeneralProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, ros_GeneralProblem_vals, "GeneralProblem(%%d)"));
+
+#.FN_PARS InvokeProblem
+ VAL_PTR = &problem
+
+#.FN_BODY InvokeProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, ros_InvokeProblem_vals, "InvokeProblem(%%d)"));
+
+#.FN_PARS ReturnResultProblem
+ VAL_PTR = &problem
+
+#.FN_BODY ReturnResultProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, ros_ReturnResultProblem_vals, "ReturnResultProblem(%%d)"));
+
+#.FN_PARS ReturnErrorProblem
+ VAL_PTR = &problem
+
+#.FN_BODY ReturnErrorProblem
+ guint32 problem;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, ros_ReturnErrorProblem_vals, "ReturnErrorProblem(%%d)"));
+
+#.END
diff --git a/epan/dissectors/asn1/rrc/CMakeLists.txt b/epan/dissectors/asn1/rrc/CMakeLists.txt
new file mode 100644
index 0000000000..28c4ce6573
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME rrc )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ Class-definitions.asn
+ PDU-definitions.asn
+ InformationElements.asn
+ Constant-definitions.asn
+ Internode-definitions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/rrc/Class-definitions.asn b/epan/dissectors/asn1/rrc/Class-definitions.asn
new file mode 100644
index 0000000000..7b082180e2
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/Class-definitions.asn
@@ -0,0 +1,400 @@
+-- 3GPP TS 25.331 V13.1.0 (2015-12)
+--
+-- 11.1 General message structure
+--
+Class-definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ ActiveSetUpdate,
+ ActiveSetUpdateComplete,
+ ActiveSetUpdateFailure,
+ AssistanceDataDelivery,
+ CellChangeOrderFromUTRAN,
+ CellChangeOrderFromUTRANFailure,
+ CellUpdate,
+ CellUpdateFDD-r11,
+ CellUpdateConfirm-CCCH,
+ CellUpdateConfirm,
+ CounterCheck,
+ CounterCheckResponse,
+ DownlinkDirectTransfer,
+ ETWSPrimaryNotificationWithSecurity,
+ HandoverToUTRANComplete,
+ InitialDirectTransfer,
+ HandoverFromUTRANCommand-EUTRA,
+ HandoverFromUTRANCommand-GERANIu,
+ HandoverFromUTRANCommand-GSM,
+ HandoverFromUTRANCommand-CDMA2000,
+ HandoverFromUTRANFailure,
+ LoggingMeasurementConfiguration,
+ MBMSAccessInformation,
+ MBMSCommonPTMRBInformation,
+ MBMSCurrentCellPTMRBInformation,
+ MBMSGeneralInformation,
+ MBMSModificationRequest,
+ MBMSModifiedServicesInformation,
+ MBMSNeighbouringCellPTMRBInformation,
+ MBMSSchedulingInformation,
+ MBMSUnmodifiedServicesInformation,
+ MeasurementControl,
+ MeasurementControlFailure,
+ MeasurementReport,
+ PagingType1,
+ PagingType2,
+ PhysicalChannelReconfiguration,
+ PhysicalChannelReconfigurationComplete,
+ PhysicalChannelReconfigurationFailure,
+ PhysicalSharedChannelAllocation,
+ PUSCHCapacityRequest,
+ RadioBearerReconfiguration,
+ RadioBearerReconfigurationComplete,
+ RadioBearerReconfigurationFailure,
+ RadioBearerRelease,
+ RadioBearerReleaseComplete,
+ RadioBearerReleaseFailure,
+ RadioBearerSetup,
+ RadioBearerSetupComplete,
+ RadioBearerSetupFailure,
+ RRCConnectionReject,
+ RRCConnectionRelease,
+ RRCConnectionRelease-CCCH,
+ RRCConnectionReleaseComplete,
+ RRCConnectionRequest,
+ RRCConnectionSetup,
+ RRCConnectionSetupComplete,
+ RRCStatus,
+ SecurityModeCommand,
+ SecurityModeComplete,
+ SecurityModeFailure,
+ SignallingConnectionRelease,
+ SignallingConnectionReleaseIndication,
+ SystemInformation-BCH,
+ SystemInformation2-BCH,
+ SystemInformation-FACH,
+ SystemInformationChangeIndication,
+ TransportChannelReconfiguration,
+ TransportChannelReconfigurationComplete,
+ TransportChannelReconfigurationFailure,
+ TransportFormatCombinationControl,
+ TransportFormatCombinationControlFailure,
+ UECapabilityEnquiry,
+ UECapabilityInformation,
+ UECapabilityInformationConfirm,
+ UEInformationRequest,
+ UEInformationResponse,
+ UplinkDirectTransfer,
+ UplinkPhysicalChannelControl,
+ URAUpdate,
+ URAUpdateConfirm,
+ URAUpdateConfirm-CCCH,
+ UTRANMobilityInformation,
+ UTRANMobilityInformationConfirm,
+ UTRANMobilityInformationFailure
+FROM PDU-definitions
+
+-- User Equipment IEs :
+ IntegrityCheckInfo
+FROM InformationElements;
+
+--**************************************************************
+--
+-- Downlink DCCH messages
+--
+--**************************************************************
+
+DL-DCCH-Message ::= SEQUENCE {
+ integrityCheckInfo IntegrityCheckInfo OPTIONAL,
+ message DL-DCCH-MessageType
+}
+
+DL-DCCH-MessageType ::= CHOICE {
+ activeSetUpdate ActiveSetUpdate,
+ assistanceDataDelivery AssistanceDataDelivery,
+ cellChangeOrderFromUTRAN CellChangeOrderFromUTRAN,
+ cellUpdateConfirm CellUpdateConfirm,
+ counterCheck CounterCheck,
+ downlinkDirectTransfer DownlinkDirectTransfer,
+ handoverFromUTRANCommand-GSM HandoverFromUTRANCommand-GSM,
+ handoverFromUTRANCommand-CDMA2000 HandoverFromUTRANCommand-CDMA2000,
+ measurementControl MeasurementControl,
+ pagingType2 PagingType2,
+ physicalChannelReconfiguration PhysicalChannelReconfiguration,
+ physicalSharedChannelAllocation PhysicalSharedChannelAllocation,
+ radioBearerReconfiguration RadioBearerReconfiguration,
+ radioBearerRelease RadioBearerRelease,
+ radioBearerSetup RadioBearerSetup,
+ rrcConnectionRelease RRCConnectionRelease,
+ securityModeCommand SecurityModeCommand,
+ signallingConnectionRelease SignallingConnectionRelease,
+ transportChannelReconfiguration TransportChannelReconfiguration,
+ transportFormatCombinationControl TransportFormatCombinationControl,
+ ueCapabilityEnquiry UECapabilityEnquiry,
+ ueCapabilityInformationConfirm UECapabilityInformationConfirm,
+ uplinkPhysicalChannelControl UplinkPhysicalChannelControl,
+ uraUpdateConfirm URAUpdateConfirm,
+ utranMobilityInformation UTRANMobilityInformation,
+ handoverFromUTRANCommand-GERANIu HandoverFromUTRANCommand-GERANIu,
+ mbmsModifiedServicesInformation MBMSModifiedServicesInformation,
+ etwsPrimaryNotificationWithSecurity ETWSPrimaryNotificationWithSecurity,
+ handoverFromUTRANCommand-EUTRA HandoverFromUTRANCommand-EUTRA,
+ ueInformationRequest UEInformationRequest,
+ loggingMeasurementConfiguration LoggingMeasurementConfiguration,
+ spare1 NULL
+}
+
+--**************************************************************
+--
+-- Uplink DCCH messages
+--
+--**************************************************************
+
+UL-DCCH-Message ::= SEQUENCE {
+ integrityCheckInfo IntegrityCheckInfo OPTIONAL,
+ message UL-DCCH-MessageType
+}
+
+UL-DCCH-MessageType ::= CHOICE {
+ activeSetUpdateComplete ActiveSetUpdateComplete,
+ activeSetUpdateFailure ActiveSetUpdateFailure,
+ cellChangeOrderFromUTRANFailure CellChangeOrderFromUTRANFailure,
+ counterCheckResponse CounterCheckResponse,
+ handoverToUTRANComplete HandoverToUTRANComplete,
+ initialDirectTransfer InitialDirectTransfer,
+ handoverFromUTRANFailure HandoverFromUTRANFailure,
+ measurementControlFailure MeasurementControlFailure,
+ measurementReport MeasurementReport,
+ physicalChannelReconfigurationComplete
+ PhysicalChannelReconfigurationComplete,
+ physicalChannelReconfigurationFailure
+ PhysicalChannelReconfigurationFailure,
+ radioBearerReconfigurationComplete RadioBearerReconfigurationComplete,
+ radioBearerReconfigurationFailure RadioBearerReconfigurationFailure,
+ radioBearerReleaseComplete RadioBearerReleaseComplete,
+ radioBearerReleaseFailure RadioBearerReleaseFailure,
+ radioBearerSetupComplete RadioBearerSetupComplete,
+ radioBearerSetupFailure RadioBearerSetupFailure,
+ rrcConnectionReleaseComplete RRCConnectionReleaseComplete,
+ rrcConnectionSetupComplete RRCConnectionSetupComplete,
+ rrcStatus RRCStatus,
+ securityModeComplete SecurityModeComplete,
+ securityModeFailure SecurityModeFailure,
+ signallingConnectionReleaseIndication
+ SignallingConnectionReleaseIndication,
+ transportChannelReconfigurationComplete
+ TransportChannelReconfigurationComplete,
+ transportChannelReconfigurationFailure
+ TransportChannelReconfigurationFailure,
+ transportFormatCombinationControlFailure
+ TransportFormatCombinationControlFailure,
+ ueCapabilityInformation UECapabilityInformation,
+ uplinkDirectTransfer UplinkDirectTransfer,
+ utranMobilityInformationConfirm UTRANMobilityInformationConfirm,
+ utranMobilityInformationFailure UTRANMobilityInformationFailure,
+ mbmsModificationRequest MBMSModificationRequest,
+ ul-DCCH-MessageType-ext UL-DCCH-MessageType-ext
+}
+
+UL-DCCH-MessageType-ext ::= CHOICE {
+ ueInformationResponse UEInformationResponse,
+ spare15 NULL,
+ spare14 NULL,
+ spare13 NULL,
+ spare12 NULL,
+ spare11 NULL,
+ spare10 NULL,
+ spare9 NULL,
+ spare8 NULL,
+ spare7 NULL,
+ spare6 NULL,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+--**************************************************************
+--
+-- Downlink CCCH messages
+--
+--**************************************************************
+
+DL-CCCH-Message ::= SEQUENCE {
+ integrityCheckInfo IntegrityCheckInfo OPTIONAL,
+ message DL-CCCH-MessageType
+}
+
+DL-CCCH-MessageType ::= CHOICE {
+ cellUpdateConfirm CellUpdateConfirm-CCCH,
+ rrcConnectionReject RRCConnectionReject,
+ rrcConnectionRelease RRCConnectionRelease-CCCH,
+ rrcConnectionSetup RRCConnectionSetup,
+ uraUpdateConfirm URAUpdateConfirm-CCCH,
+ -- dummy is not used in the specification. If received it is ignored by the UE.
+ -- See TS 23.041 for handling of warning security information by Cell Broadcast Center.
+ dummy ETWSPrimaryNotificationWithSecurity,
+ spare2 NULL,
+ spare1 NULL
+}
+
+--**************************************************************
+--
+-- Uplink CCCH messages
+--
+--**************************************************************
+
+UL-CCCH-Message ::= SEQUENCE {
+ integrityCheckInfo IntegrityCheckInfo OPTIONAL,
+ message UL-CCCH-MessageType
+}
+
+UL-CCCH-MessageType ::= CHOICE {
+ cellUpdate CellUpdate,
+ rrcConnectionRequest RRCConnectionRequest,
+ uraUpdate URAUpdate,
+ uL-CCCH-MessageType-r11 UL-CCCH-MessageType-r11
+}
+
+UL-CCCH-MessageType-r11 ::= CHOICE {
+ cellUpdate CellUpdateFDD-r11,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+--**************************************************************
+--
+-- PCCH messages
+--
+--**************************************************************
+
+PCCH-Message ::= SEQUENCE {
+ message PCCH-MessageType
+}
+
+PCCH-MessageType ::= CHOICE {
+ pagingType1 PagingType1,
+ spare NULL
+}
+
+--**************************************************************
+--
+-- Downlink SHCCH messages
+--
+--**************************************************************
+
+DL-SHCCH-Message ::= SEQUENCE {
+ message DL-SHCCH-MessageType
+}
+
+DL-SHCCH-MessageType ::= CHOICE {
+ physicalSharedChannelAllocation PhysicalSharedChannelAllocation,
+ spare NULL
+}
+
+--**************************************************************
+--
+-- Uplink SHCCH messages
+--
+--**************************************************************
+
+UL-SHCCH-Message ::= SEQUENCE {
+ message UL-SHCCH-MessageType
+}
+
+UL-SHCCH-MessageType ::= CHOICE {
+ puschCapacityRequest PUSCHCapacityRequest,
+ spare NULL
+}
+
+
+--**************************************************************
+--
+-- BCCH messages sent on FACH
+--
+--**************************************************************
+
+BCCH-FACH-Message ::= SEQUENCE {
+ message BCCH-FACH-MessageType
+}
+
+BCCH-FACH-MessageType ::= CHOICE {
+-- dummy is not used in this version of the specification, it should
+-- not be sent and if received UE behaviour is unspecified.
+ dummy SystemInformation-FACH,
+ systemInformationChangeIndication SystemInformationChangeIndication,
+ spare2 NULL,
+ spare1 NULL
+}
+
+--**************************************************************
+--
+-- BCCH messages sent on BCH
+--
+--**************************************************************
+
+BCCH-BCH-Message ::= SEQUENCE {
+ message SystemInformation-BCH
+}
+
+--**************************************************************
+--
+-- BCCH messages sent on BCH2
+--
+--**************************************************************
+
+BCCH-BCH2-Message ::= SEQUENCE {
+ message SystemInformation2-BCH
+}
+
+--**************************************************************
+--
+-- MCCH messages
+--
+--**************************************************************
+
+MCCH-Message ::= SEQUENCE {
+ message MCCH-MessageType
+}
+
+MCCH-MessageType ::= CHOICE {
+ mbmsAccessInformation MBMSAccessInformation,
+ mbmsCommonPTMRBInformation MBMSCommonPTMRBInformation,
+ mbmsCurrentCellPTMRBInformation MBMSCurrentCellPTMRBInformation,
+ mbmsGeneralInformation MBMSGeneralInformation,
+ mbmsModifiedServicesInformation MBMSModifiedServicesInformation,
+ mbmsNeighbouringCellPTMRBInformation
+ MBMSNeighbouringCellPTMRBInformation,
+ mbmsUnmodifiedServicesInformation MBMSUnmodifiedServicesInformation,
+ spare9 NULL,
+ spare8 NULL,
+ spare7 NULL,
+ spare6 NULL,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+--**************************************************************
+--
+-- MSCH messages
+--
+--**************************************************************
+
+MSCH-Message ::= SEQUENCE {
+ message MSCH-MessageType
+}
+
+MSCH-MessageType ::= CHOICE {
+ mbmsSchedulingInformation MBMSSchedulingInformation,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+END
diff --git a/epan/dissectors/asn1/rrc/Constant-definitions.asn b/epan/dissectors/asn1/rrc/Constant-definitions.asn
new file mode 100644
index 0000000000..28a25fafa7
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/Constant-definitions.asn
@@ -0,0 +1,205 @@
+-- 3GPP TS 25.331 V13.1.0 (2015-12)
+--
+-- 11.4 Constant definitions
+--
+Constant-definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+hiPDSCHidentities INTEGER ::= 64
+hiPUSCHidentities INTEGER ::= 64
+hiRM INTEGER ::= 256
+maxAC INTEGER ::= 16
+maxAdditionalMeas INTEGER ::= 4
+maxAddPos INTEGER ::= 8
+maxASC INTEGER ::= 8
+maxASCmap INTEGER ::= 7
+maxASCpersist INTEGER ::= 6
+maxBeacons INTEGER ::= 64
+maxBTs INTEGER ::= 32
+maxCCTrCH INTEGER ::= 8
+maxCellMeas INTEGER ::= 32
+maxCellMeas-ext INTEGER ::= 80
+maxCellMeas-ext2 INTEGER ::= 48
+maxCellMeasOnSecULFreq INTEGER ::= 32
+maxCellMeas-1 INTEGER ::= 31
+maxCellMeas-ext-1 INTEGER ::= 79
+maxCellMeasOnSecULFreq-1 INTEGER ::= 31
+maxCNdomains INTEGER ::= 4
+maxCommonHRNTI INTEGER ::= 4
+maxCommonQueueID INTEGER ::= 2
+maxCPCHsets INTEGER ::= 16
+maxDedicatedCSGFreq INTEGER ::= 4
+maxDPCH-DLchan INTEGER ::= 8
+maxDPDCH-UL INTEGER ::= 6
+maxDRACclasses INTEGER ::= 8
+maxExcludedDetectedSetCells INTEGER ::= 64
+maxE-DCHMACdFlow INTEGER ::= 8
+maxE-DCHMACdFlow-1 INTEGER ::= 7
+maxMultipleFrequencyBandsFDD INTEGER ::= 8
+maxMultipleFrequencyBandsEUTRA INTEGER ::= 8
+maxEUTRACellPerFreq INTEGER ::= 16
+maxEUTRATargetFreqs INTEGER ::= 8
+maxEDCHRL INTEGER ::= 4
+maxEDCHRL-1 INTEGER ::= 3
+maxEDCHs INTEGER ::= 32
+maxEDCHs-1 INTEGER ::= 31
+maxEDCHTxPattern-TDD128 INTEGER ::= 4 -- maxEDCHTxPattern-TDD128 should be 3
+maxEDCHTxPattern-TDD128-1 INTEGER ::= 3 -- maxEDCHTxPattern-TDD128-1 should be 2
+maxERNTIgroup INTEGER ::= 32
+maxERNTIperGroup INTEGER ::= 2
+maxERUCCH INTEGER ::= 256
+maxFACHPCH INTEGER ::= 8
+maxFreq INTEGER ::= 8
+maxFreqBandsEUTRA INTEGER ::= 16
+maxFreqBandsEUTRA-ext INTEGER ::= 48
+maxFreqBandsFDD INTEGER ::= 8
+maxFreqBandsFDD2 INTEGER ::= 22
+maxFreqBandsFDD3 INTEGER ::= 86
+maxFreqBandsFDD-ext INTEGER ::= 15 -- maxFreqBandsFDD-ext ::= 22 - (maxFreqBandsFDD - 1)
+maxFreqBandsFDD-ext2 INTEGER ::= 64 -- maxFreqBandsFDD-ext2 ::= 86 - maxFreqBandsFDD2
+maxFreqBandsFDD-ext3 INTEGER ::= 78 -- maxFreqBandsFDD-ext3 ::= 86 - maxFreqBandsFDD
+maxFreqBandsIndicatorSupport INTEGER ::= 2
+maxFreqBandsTDD INTEGER ::= 4
+maxFreqBandsTDD-ext INTEGER ::= 16
+maxFreqBandsGSM INTEGER ::= 16
+maxFreqMeasWithoutCM INTEGER ::= 2
+maxGANSS INTEGER ::= 8
+maxGANSS-1 INTEGER ::= 7
+maxGANSSSat INTEGER ::= 64
+maxGANSSSat-1 INTEGER ::= 63
+maxGERAN-SI INTEGER ::= 8
+maxGSMTargetCells INTEGER ::= 32
+maxHNBNameSize INTEGER ::= 48
+maxHProcesses INTEGER ::= 8
+maxHS-SCCHLessTrBlk INTEGER ::= 4
+maxHSDSCHTBIndex INTEGER ::= 64
+maxHSDSCHTBIndex-tdd384 INTEGER ::= 512
+maxHSSCCHs INTEGER ::= 4
+maxHSSCCHs-1 INTEGER ::= 3
+maxHSSICH-TDD128 INTEGER ::= 4
+maxHSSICH-TDD128-1 INTEGER ::= 3
+maxIGPInfo INTEGER ::= 320
+maxInterSysMessages INTEGER ::= 4
+maxLoCHperRLC INTEGER ::= 2
+maxLoggedMeasReport INTEGER ::= 128
+maxMAC-d-PDUsizes INTEGER ::= 8
+maxMBMS-CommonCCTrCh INTEGER ::= 32
+maxMBMS-CommonPhyCh INTEGER ::= 32
+maxMBMS-CommonRB INTEGER ::= 32
+maxMBMS-CommonTrCh INTEGER ::= 32
+maxMBMS-Freq INTEGER ::= 4
+maxMBMS-L1CP INTEGER ::= 4
+maxMBMSservCount INTEGER ::= 8
+maxMBMSservModif INTEGER ::= 32
+maxMBMSservSched INTEGER ::= 16
+maxMBMSservSelect INTEGER ::= 8
+maxMBMSservUnmodif INTEGER ::= 64
+maxMBMSTransmis INTEGER ::= 4
+maxMBSFNClusters INTEGER ::= 16
+maxMeasCSGRange INTEGER ::= 4
+maxMeasEvent INTEGER ::= 8
+maxMeasEventOnSecULFreq INTEGER ::= 8
+maxMeasIdentity INTEGER ::= 32
+maxMeasIntervals INTEGER ::= 3
+maxMeasOccasionPattern INTEGER ::= 5
+maxMeasOccasionPattern-1 INTEGER ::= 4
+maxMeasParEvent INTEGER ::= 2
+maxNonContiguousMultiCellCombinations INTEGER ::= 3
+maxNumAccessGroups INTEGER ::= 16
+maxNumAcdcCategory INTEGER ::= 16
+maxNumCDMA2000Freqs INTEGER ::= 8
+maxNumE-AGCH INTEGER ::= 4
+maxNumE-HICH INTEGER ::= 4
+maxNumEUTRAFreqs INTEGER ::= 8
+maxNumEUTRAFreqs-FACH INTEGER ::= 4
+maxNumEUTRAFreqs-FACH-ext INTEGER ::= 8
+maxNumGSMCellGroup INTEGER ::= 16
+maxNumGSMFreqRanges INTEGER ::= 32
+maxNumFDDFreqs INTEGER ::= 8
+maxNumANRLoggedItems INTEGER ::= 4
+maxnumLoggedMeas INTEGER ::= 8
+maxNumMDTPLMN INTEGER ::= 15
+maxNumTDDFreqs INTEGER ::= 8
+maxNoOfMeas INTEGER ::= 16
+maxOtherRAT INTEGER ::= 15
+maxOtherRAT-16 INTEGER ::= 16
+maxPage1 INTEGER ::= 8
+maxPCPCH-APsig INTEGER ::= 16
+maxPCPCH-APsubCh INTEGER ::= 12
+maxPCPCH-CDsig INTEGER ::= 16
+maxPCPCH-CDsubCh INTEGER ::= 12
+maxPCPCH-SF INTEGER ::= 7
+maxPCPCHs INTEGER ::= 64
+maxPDCPAlgoType INTEGER ::= 8
+maxPDSCH INTEGER ::= 8
+maxPDSCH-TFCIgroups INTEGER ::= 256
+maxPRACH INTEGER ::= 16
+maxPRACH-EUL INTEGER ::= 4
+maxPRACH-FPACH INTEGER ::= 8
+maxPredefConfig INTEGER ::= 16
+maxOtherStateConfig INTEGER ::= 4
+maxOtherStateConfig-1 INTEGER ::= 3
+maxPrio INTEGER ::= 8
+maxPrio-1 INTEGER ::= 7
+maxPrio-ext INTEGER ::= 16
+maxPUSCH INTEGER ::= 8
+maxQueueIDs INTEGER ::= 8
+maxRABsetup INTEGER ::= 16
+maxRAT INTEGER ::= 16
+maxRB INTEGER ::= 32
+maxRBallRABs INTEGER ::= 27
+maxRBMuxOptions INTEGER ::= 8
+maxRBperRAB INTEGER ::= 8
+maxRBperTrCh INTEGER ::= 16
+maxReportedEUTRACellPerFreq INTEGER ::= 4
+maxReportedEUTRAFreqs INTEGER ::= 4
+maxReportedEUTRAFreqs-ext INTEGER ::= 8
+maxReportedGSMCells INTEGER ::= 8
+maxRetrievConfig INTEGER ::= 8
+maxRetrievConfig-1 INTEGER ::= 7
+maxRL INTEGER ::= 8
+maxRL-1 INTEGER ::= 7
+maxRLCPDUsizePerLogChan INTEGER ::= 32
+maxRMPfrequencies INTEGER ::= 8
+maxRFC3095-CID INTEGER ::= 16384
+maxROHC-PacketSizes-r4 INTEGER ::= 16
+maxROHC-Profile-r4 INTEGER ::= 8
+maxRxPatternForHSDSCH-TDD128 INTEGER ::= 4 -- maxRxPatternForHSDSCH-TDD128 should be 3
+maxRxPatternForHSDSCH-TDD128-1 INTEGER ::= 3 -- maxRxPatternForHSDSCH-TDD128-1 should be 2
+maxSat INTEGER ::= 16
+maxSatClockModels INTEGER ::= 4
+maxSCCPCH INTEGER ::= 16
+maxSgnType INTEGER ::= 8
+maxSIB INTEGER ::= 32
+maxSIB2 INTEGER ::= 64
+maxSIB-FACH INTEGER ::= 8
+maxSIBperMsg INTEGER ::= 16
+maxSIrequest INTEGER ::= 4
+maxSRBsetup INTEGER ::= 8
+maxSystemCapability INTEGER ::= 16
+maxTDD128Carrier INTEGER ::= 6
+maxTDD128Carrier-1 INTEGER ::= 5
+maxTbsForHSDSCH-TDD128 INTEGER ::= 4
+maxTbsForHSDSCH-TDD128-1 INTEGER ::= 3
+maxTF INTEGER ::= 32
+maxTF-CPCH INTEGER ::= 16
+maxTFC INTEGER ::= 1024
+maxTFCsub INTEGER ::= 1024
+maxTFCI-2-Combs INTEGER ::= 512
+maxTGPS INTEGER ::= 6
+maxTrCH INTEGER ::= 32
+maxTrCHConcat INTEGER ::= 3
+-- maxTrCHpreconf should be 16 but has been set to 32 for compatibility
+maxTrCHpreconf INTEGER ::= 32
+maxTS INTEGER ::= 14
+maxTS-1 INTEGER ::= 13
+maxTS-2 INTEGER ::= 12
+maxTS-LCR INTEGER ::= 6
+maxTS-LCR-1 INTEGER ::= 5
+maxURA INTEGER ::= 8
+maxURNTI-Group INTEGER ::= 8
+maxWLANID INTEGER ::= 16
+maxWLANs INTEGER ::= 64
+
+END
diff --git a/epan/dissectors/asn1/rrc/InformationElements.asn b/epan/dissectors/asn1/rrc/InformationElements.asn
new file mode 100644
index 0000000000..495400a8a7
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/InformationElements.asn
@@ -0,0 +1,25369 @@
+-- 3GPP TS 25.331 V13.1.0 (2015-12)
+--
+-- 11.3 Information element definitions
+--
+InformationElements DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ hiPDSCHidentities,
+ hiPUSCHidentities,
+ hiRM,
+ maxAC,
+ maxAdditionalMeas,
+ maxAddPos,
+ maxMultipleFrequencyBandsEUTRA,
+ maxMultipleFrequencyBandsFDD,
+ maxASC,
+ maxASCmap,
+ maxASCpersist,
+ maxBeacons,
+ maxBTs,
+ maxCCTrCH,
+ maxCellMeas,
+ maxCellMeas-1,
+ maxCellMeas-ext,
+ maxCellMeas-ext2,
+ maxCellMeas-ext-1,
+ maxCellMeasOnSecULFreq,
+ maxCellMeasOnSecULFreq-1,
+ maxCNdomains,
+ maxCommonHRNTI,
+ maxCommonQueueID,
+ maxCPCHsets,
+ maxDedicatedCSGFreq,
+ maxDPCH-DLchan,
+ maxDPDCH-UL,
+ maxDRACclasses,
+ maxE-DCHMACdFlow,
+ maxE-DCHMACdFlow-1,
+ maxEDCHs,
+ maxEDCHs-1,
+ maxEDCHTxPattern-TDD128,
+ maxEDCHTxPattern-TDD128-1,
+ maxERNTIgroup,
+ maxERNTIperGroup,
+ maxERUCCH,
+ maxEUTRACellPerFreq,
+ maxEUTRATargetFreqs,
+ maxExcludedDetectedSetCells,
+ maxFACHPCH,
+ maxFreq,
+ maxFreqBandsEUTRA,
+ maxFreqBandsEUTRA-ext,
+ maxFreqBandsFDD,
+ maxFreqBandsFDD2,
+ maxFreqBandsFDD3,
+ maxFreqBandsFDD-ext,
+ maxFreqBandsFDD-ext2,
+ maxFreqBandsFDD-ext3,
+ maxFreqBandsIndicatorSupport,
+ maxFreqBandsTDD,
+ maxFreqBandsTDD-ext,
+ maxFreqBandsGSM,
+ maxFreqMeasWithoutCM,
+ maxGANSS,
+ maxGANSS-1,
+ maxGANSSSat,
+ maxGANSSSat-1,
+ maxGERAN-SI,
+ maxHNBNameSize,
+ maxHProcesses,
+ maxHSDSCHTBIndex,
+ maxHSDSCHTBIndex-tdd384,
+ maxHSSCCHs,
+ maxHSSCCHs-1,
+ maxHSSICH-TDD128,
+ maxHSSICH-TDD128-1,
+ maxHS-SCCHLessTrBlk,
+ maxIGPInfo,
+ maxInterSysMessages,
+ maxLoCHperRLC,
+ maxLoggedMeasReport,
+ maxnumLoggedMeas,
+ maxMAC-d-PDUsizes,
+ maxMBMS-CommonCCTrCh,
+ maxMBMS-CommonPhyCh,
+ maxMBMS-CommonRB,
+ maxMBMS-CommonTrCh,
+ maxMBMS-Freq,
+ maxMBMS-L1CP,
+ maxMBMSservCount,
+ maxMBMSservModif,
+ maxMBMSservSched,
+ maxMBMSservSelect,
+ maxMBMSservUnmodif,
+ maxMBMSTransmis,
+ maxMBSFNClusters,
+ maxMeasCSGRange,
+ maxMeasEvent,
+ maxMeasEventOnSecULFreq,
+ maxMeasIdentity,
+ maxMeasIntervals,
+ maxMeasParEvent,
+ maxNonContiguousMultiCellCombinations,
+ maxMeasOccasionPattern,
+ maxMeasOccasionPattern-1,
+ maxNumAccessGroups,
+ maxNumAcdcCategory,
+ maxNumCDMA2000Freqs,
+ maxNumE-AGCH,
+ maxNumE-HICH,
+ maxNumEUTRAFreqs,
+ maxNumEUTRAFreqs-FACH,
+ maxNumEUTRAFreqs-FACH-ext,
+ maxNumFDDFreqs,
+ maxNumGSMCellGroup,
+ maxNumGSMFreqRanges,
+ maxGSMTargetCells,
+ maxNumMDTPLMN,
+ maxNumTDDFreqs,
+ maxNumANRLoggedItems,
+ maxOtherRAT,
+ maxOtherRAT-16,
+ maxPage1,
+ maxPCPCH-APsig,
+ maxPCPCH-APsubCh,
+ maxPCPCH-CDsig,
+ maxPCPCH-CDsubCh,
+ maxPCPCH-SF,
+ maxPCPCHs,
+ maxPDCPAlgoType,
+ maxPDSCH,
+ maxPDSCH-TFCIgroups,
+ maxPRACH,
+ maxPRACH-EUL,
+ maxPRACH-FPACH,
+ maxPredefConfig,
+ maxOtherStateConfig,
+ maxOtherStateConfig-1,
+ maxPrio,
+ maxPrio-1,
+ maxPrio-ext,
+ maxPUSCH,
+ maxQueueIDs,
+ maxRABsetup,
+ maxRAT,
+ maxRB,
+ maxRBallRABs,
+ maxRBperTrCh,
+ maxRBMuxOptions,
+ maxRBperRAB,
+ maxReportedEUTRAFreqs,
+ maxReportedEUTRAFreqs-ext,
+ maxReportedEUTRACellPerFreq,
+ maxReportedGSMCells,
+ maxRetrievConfig,
+ maxRetrievConfig-1,
+ maxRLCPDUsizePerLogChan,
+ maxRMPfrequencies,
+ maxSRBsetup,
+ maxRL,
+ maxRL-1,
+ maxEDCHRL,
+ maxEDCHRL-1,
+ maxROHC-PacketSizes-r4,
+ maxROHC-Profile-r4,
+ maxRxPatternForHSDSCH-TDD128,
+ maxRxPatternForHSDSCH-TDD128-1,
+ maxSat,
+ maxSatClockModels,
+ maxSCCPCH,
+ maxSgnType,
+ maxSIB,
+ maxSIB2,
+ maxSIB-FACH,
+ maxSIrequest,
+ maxSystemCapability,
+ maxTDD128Carrier,
+ maxTDD128Carrier-1,
+ maxTbsForHSDSCH-TDD128,
+ maxTbsForHSDSCH-TDD128-1,
+ maxTF,
+ maxTF-CPCH,
+ maxTFC,
+ maxTFCsub,
+ maxTFCI-2-Combs,
+ maxTGPS,
+ maxTrCH,
+ maxTrCHConcat,
+ maxTrCHpreconf,
+ maxTS,
+ maxTS-1,
+ maxTS-2,
+ maxTS-LCR,
+ maxTS-LCR-1,
+ maxURA,
+ maxURNTI-Group,
+ maxWLANs,
+ maxWLANID
+FROM Constant-definitions;
+
+-- ***************************************************
+--
+-- CORE NETWORK INFORMATION ELEMENTS (10.3.1)
+--
+-- ***************************************************
+
+Ansi-41-IDNNS ::= BIT STRING (SIZE (14))
+
+CN-DomainIdentity ::= ENUMERATED {
+ cs-domain,
+ ps-domain }
+
+CN-DomainInformation ::= SEQUENCE {
+ cn-DomainIdentity CN-DomainIdentity,
+ cn-DomainSpecificNAS-Info NAS-SystemInformationGSM-MAP
+}
+
+CN-DomainInformationFull ::= SEQUENCE {
+ cn-DomainIdentity CN-DomainIdentity,
+ cn-DomainSpecificNAS-Info NAS-SystemInformationGSM-MAP,
+ cn-DRX-CycleLengthCoeff CN-DRX-CycleLengthCoefficient
+}
+
+CN-DomainInformationList ::= SEQUENCE (SIZE (1..maxCNdomains)) OF
+ CN-DomainInformation
+
+CN-DomainInformationListFull ::= SEQUENCE (SIZE (1..maxCNdomains)) OF
+ CN-DomainInformationFull
+
+CN-DomainSysInfo ::= SEQUENCE {
+ cn-DomainIdentity CN-DomainIdentity,
+ cn-Type CHOICE {
+ gsm-MAP NAS-SystemInformationGSM-MAP,
+ ansi-41 NAS-SystemInformationANSI-41
+ },
+ cn-DRX-CycleLengthCoeff CN-DRX-CycleLengthCoefficient
+}
+
+CN-DomainSysInfoList ::= SEQUENCE (SIZE (1..maxCNdomains)) OF
+ CN-DomainSysInfo
+
+CN-InformationInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP OPTIONAL,
+ cn-DomainInformationList CN-DomainInformationList OPTIONAL
+}
+
+CN-InformationInfo-r6 ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP OPTIONAL,
+ cn-DomainInformationList CN-DomainInformationList OPTIONAL,
+ primary-plmn-Identity PLMN-Identity OPTIONAL
+}
+
+CN-InformationInfoFull ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP OPTIONAL,
+ cn-DomainInformationListFull CN-DomainInformationListFull OPTIONAL
+}
+
+Digit ::= INTEGER (0..9)
+
+DomainSpecificEAB-Parameters ::= SEQUENCE {
+ cs-DomainSpecificEAB-Parameters EAB-Configuration OPTIONAL,
+ ps-DomainSpecificEAB-Parameters EAB-Configuration OPTIONAL,
+ commonEAB-Parameters EAB-Configuration OPTIONAL
+}
+
+EAB-AccessClassBarredList ::= SEQUENCE (SIZE (10)) OF
+ AccessClassBarred
+
+EAB-Configuration ::= SEQUENCE {
+ eab-Category ENUMERATED {a,b,c},
+ eab-AccessClassBarredList EAB-AccessClassBarredList
+}
+
+EAB-Parameters ::= CHOICE {
+ eab-ParametersPerPLMN-List EAB-ParametersPerPLMN-List,
+ eab-ParametersForAll DomainSpecificEAB-Parameters
+}
+
+EAB-ParametersPerPLMN ::= SEQUENCE {
+ domainSpecificEAB-Parameters DomainSpecificEAB-Parameters OPTIONAL
+}
+
+EAB-ParametersPerPLMN-List ::= SEQUENCE (SIZE (1..6)) OF EAB-ParametersPerPLMN
+
+Ec-N0forANR ::= SEQUENCE {
+ ec-N0 INTEGER (-24..0) OPTIONAL
+}
+
+Gsm-map-IDNNS ::= SEQUENCE {
+ routingbasis CHOICE {
+ localPTMSI SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ tMSIofsamePLMN SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ tMSIofdifferentPLMN SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ iMSIresponsetopaging SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ iMSIcauseUEinitiatedEvent SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ iMEI SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ spare2 SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ spare1 SEQUENCE {
+ routingparameter RoutingParameter
+ }
+ },
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy BOOLEAN
+}
+
+IMEI ::= SEQUENCE (SIZE (15)) OF
+ IMEI-Digit
+
+IMEI-Digit ::= INTEGER (0..15)
+
+IMSI-GSM-MAP ::= SEQUENCE (SIZE (6..21)) OF
+ Digit
+
+IntraDomainNasNodeSelector ::= SEQUENCE {
+ version CHOICE {
+ release99 SEQUENCE {
+ cn-Type CHOICE {
+ gsm-Map-IDNNS Gsm-map-IDNNS,
+ ansi-41-IDNNS Ansi-41-IDNNS
+ }
+ },
+ later SEQUENCE {
+ futurecoding BIT STRING (SIZE (15))
+ }
+ }
+}
+
+LAI ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ lac BIT STRING (SIZE (16))
+}
+
+LocationRegistrationAccessClassBarredList ::= SEQUENCE (SIZE (15)) OF
+ AccessClassBarred
+
+LocationRegistrationParameters ::= CHOICE {
+ noRestriction NULL,
+ restriction LocationRegistrationAccessClassBarredList
+}
+
+MCC ::= SEQUENCE (SIZE (3)) OF
+ Digit
+
+MNC ::= SEQUENCE (SIZE (2..3)) OF
+ Digit
+
+MultiplePLMN-List-r6 ::= SEQUENCE {
+ mibPLMN-Identity BOOLEAN,
+ multiplePLMNs SEQUENCE (SIZE (1..5)) OF
+ PLMN-IdentityWithOptionalMCC-r6
+}
+
+NAS-Message ::= OCTET STRING (SIZE (1..4095))
+
+NAS-Synchronisation-Indicator ::= BIT STRING(SIZE(4))
+
+NAS-SystemInformationGSM-MAP ::= OCTET STRING (SIZE (1..8))
+
+P-TMSI-GSM-MAP ::= BIT STRING (SIZE (32))
+
+PagingPermissionWithAccessControlForSharedNetwork ::= CHOICE {
+ pagingPermissionWithAccessControlList PagingPermissionWithAccessControlList,
+ pagingPermissionWithAccessControlForAll PagingPermissionWithAccessControlParameters
+}
+
+PagingPermissionWithAccessControlList ::= SEQUENCE {
+ pagingPermissionWithAccessControlParametersForOperator1
+ PagingPermissionWithAccessControlParameters OPTIONAL,
+ pagingPermissionWithAccessControlParametersForOperator2
+ PagingPermissionWithAccessControlParameters OPTIONAL,
+ pagingPermissionWithAccessControlParametersForOperator3
+ PagingPermissionWithAccessControlParameters OPTIONAL,
+ pagingPermissionWithAccessControlParametersForOperator4
+ PagingPermissionWithAccessControlParameters OPTIONAL,
+ pagingPermissionWithAccessControlParametersForOperator5
+ PagingPermissionWithAccessControlParameters OPTIONAL
+}
+
+PagingPermissionWithAccessControlParameters ::= SEQUENCE {
+ pagingResponseRestrictionIndicator ENUMERATED {all, cS, pS, none},
+ locationRegistrationRestrictionIndicator ENUMERATED {all, cS, pS},
+ locationRegistration LocationRegistrationParameters
+}
+
+PagingRecordTypeID ::= ENUMERATED {
+ imsi-GSM-MAP,
+ tmsi-GSM-MAP-P-TMSI,
+ imsi-DS-41,
+ tmsi-DS-41 }
+
+PLMN-Identity ::= SEQUENCE {
+ mcc MCC,
+ mnc MNC
+}
+
+PLMN-IdentityWithOptionalMCC-r6 ::= SEQUENCE {
+ mcc MCC OPTIONAL,
+ mnc MNC
+}
+
+PLMN-Type ::= CHOICE {
+ gsm-MAP SEQUENCE {
+ plmn-Identity PLMN-Identity
+ },
+ ansi-41 SEQUENCE {
+ p-REV P-REV,
+ min-P-REV Min-P-REV,
+ sid SID,
+ nid NID
+ },
+ gsm-MAP-and-ANSI-41 SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ p-REV P-REV,
+ min-P-REV Min-P-REV,
+ sid SID,
+ nid NID
+ },
+ spare NULL
+}
+
+RAB-Identity ::= CHOICE {
+ gsm-MAP-RAB-Identity BIT STRING (SIZE (8)),
+ ansi-41-RAB-Identity BIT STRING (SIZE (8))
+}
+
+RAI ::= SEQUENCE {
+ lai LAI,
+ rac RoutingAreaCode
+}
+
+RoutingAreaCode ::= BIT STRING (SIZE (8))
+
+RoutingParameter ::= BIT STRING (SIZE (10))
+
+TMSI-GSM-MAP ::= BIT STRING (SIZE (32))
+
+-- ***************************************************
+--
+-- UTRAN MOBILITY INFORMATION ELEMENTS (10.3.2)
+--
+-- ***************************************************
+
+AccessClassBarred ::= ENUMERATED {
+ barred, notBarred }
+
+AccessClassBarredList ::= SEQUENCE (SIZE (maxAC)) OF
+ AccessClassBarred
+
+AllowedIndicator ::= ENUMERATED {
+ allowed, notAllowed }
+
+CellAccessRestriction ::= SEQUENCE {
+ cellBarred CellBarred,
+ cellReservedForOperatorUse ReservedIndicator,
+ cellReservationExtension ReservedIndicator,
+ -- NOTE: IE accessClassBarredList should not be included if the IE CellAccessRestriction
+ -- is included in the IE SysInfoType4
+ accessClassBarredList AccessClassBarredList OPTIONAL
+}
+
+CellAccessRestriction-v870ext ::= SEQUENCE {
+ cellReservedForCSG ENUMERATED { true } OPTIONAL
+}
+
+CellBarred ::= CHOICE {
+ barred SEQUENCE {
+ intraFreqCellReselectionInd AllowedIndicator,
+ t-Barred T-Barred
+ },
+ notBarred NULL
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+CellIdentity-PerRL-List ::= SEQUENCE (SIZE (1..maxRL)) OF CellIdentity
+
+CellIDListItem ::= SEQUENCE {
+ cell-Identity CellIdentity,
+ plmn-Identity PLMN-Identity OPTIONAL
+}
+
+CellSelectReselectInfoSIB-3-4 ::= SEQUENCE {
+ mappingInfo MappingInfo OPTIONAL,
+ cellSelectQualityMeasure CHOICE {
+ cpich-Ec-N0 SEQUENCE {
+ -- Default value for q-HYST-2-S is q-HYST-1-S
+ q-HYST-2-S Q-Hyst-S OPTIONAL
+ },
+ cpich-RSCP NULL
+ },
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ s-Intrasearch S-SearchQual OPTIONAL,
+ s-Intersearch S-SearchQual OPTIONAL,
+ s-SearchHCS S-SearchRXLEV OPTIONAL,
+ rat-List RAT-FDD-InfoList OPTIONAL,
+ q-QualMin Q-QualMin,
+ q-RxlevMin Q-RxlevMin
+ },
+ tdd SEQUENCE {
+ s-Intrasearch S-SearchRXLEV OPTIONAL,
+ s-Intersearch S-SearchRXLEV OPTIONAL,
+ s-SearchHCS S-SearchRXLEV OPTIONAL,
+ rat-List RAT-TDD-InfoList OPTIONAL,
+ q-RxlevMin Q-RxlevMin
+ }
+ },
+ q-Hyst-l-S Q-Hyst-S,
+ t-Reselection-S T-Reselection-S,
+ hcs-ServingCellInformation HCS-ServingCellInformation OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+CSG-DedicatedFrequencyInfoList ::= SEQUENCE (SIZE (1..maxDedicatedCSGFreq)) OF
+ FrequencyInfo
+
+CSG-Identity ::= BIT STRING (SIZE (27))
+
+CSG-PSCSplitInfo ::= SEQUENCE {
+ -- Actual value = IE value * 8
+ startPSC INTEGER (0..63),
+ numberOfPSCs ENUMERATED { psc5, psc10, psc15, psc20,
+ psc30, psc40, psc50, psc64, psc80,
+ psc120, psc160, psc256, alltheRest,
+ spare3, spare2, spare1 },
+ -- Actual value = IE value * 8
+ pscRange2Offset INTEGER (1..63) OPTIONAL
+}
+
+DedicatedWLANOffloadInformation ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ t-330 T-330 OPTIONAL,
+ wlanOffloadInformation WLANOffloadInformation
+ }
+ }
+}
+
+DomainSpecificAccessRestrictionForSharedNetwork-v670ext ::= CHOICE {
+ domainSpecificAccessRestictionList DomainSpecificAccessRestrictionList-v670ext,
+ domainSpecificAccessRestictionParametersForAll
+ DomainSpecificAccessRestrictionParam-v670ext
+}
+
+DomainSpecificAccessRestrictionList-v670ext ::= SEQUENCE {
+ domainSpecificAccessRestrictionParametersForOperator1
+ DomainSpecificAccessRestrictionParam-v670ext OPTIONAL,
+ domainSpecificAccessRestrictionParametersForOperator2
+ DomainSpecificAccessRestrictionParam-v670ext OPTIONAL,
+ domainSpecificAccessRestrictionParametersForOperator3
+ DomainSpecificAccessRestrictionParam-v670ext OPTIONAL,
+ domainSpecificAccessRestrictionParametersForOperator4
+ DomainSpecificAccessRestrictionParam-v670ext OPTIONAL,
+ domainSpecificAccessRestrictionParametersForOperator5
+ DomainSpecificAccessRestrictionParam-v670ext OPTIONAL
+}
+
+DomainSpecificAccessRestrictionParam-v670ext ::= SEQUENCE {
+ cSDomainSpecificAccessRestriction DomainSpecificAccessRestriction-v670ext,
+ pSDomainSpecificAccessRestriction DomainSpecificAccessRestriction-v670ext
+}
+
+DomainSpecificAccessRestriction-v670ext ::= CHOICE {
+ noRestriction NULL,
+ restriction SEQUENCE {
+ domainSpecficAccessClassBarredList AccessClassBarredList OPTIONAL
+ }
+}
+
+MapParameter ::= INTEGER (0..127)
+
+Mapping ::= SEQUENCE {
+ rat RAT,
+ mappingFunctionParameterList MappingFunctionParameterList
+}
+
+Mapping-LCR-r4 ::= SEQUENCE {
+ mappingFunctionParameterList MappingFunctionParameterList
+}
+
+MappingFunctionParameter ::= SEQUENCE {
+ functionType MappingFunctionType,
+ mapParameter1 MapParameter OPTIONAL,
+ mapParameter2 MapParameter,
+ -- The presence of upperLimit is conditional on the number of repetition
+ upperLimit UpperLimit OPTIONAL
+}
+
+MappingFunctionParameterList ::= SEQUENCE (SIZE (1..maxMeasIntervals)) OF
+ MappingFunctionParameter
+
+MappingFunctionType ::= ENUMERATED {
+ linear,
+ functionType2,
+ functionType3,
+ functionType4 }
+
+-- In MappingInfo list, mapping for FDD and 3.84Mcps TDD is defined.
+-- For 1.28Mcps TDD, Mapping-LCR-r4 is used instead.
+MappingInfo ::= SEQUENCE (SIZE (1..maxRAT)) OF
+ Mapping
+
+OccurrenceSequenceNumberOfPICH ::= INTEGER (1..maxSCCPCH)
+
+DedicatedPriorityInformation ::= SEQUENCE {
+ action CHOICE {
+ clearDedicatedPriorities NULL,
+ configureDedicatedPriorities SEQUENCE {
+ t-322 T-322 OPTIONAL,
+ priorityLevelList PriorityLevelList OPTIONAL,
+ eutraDetection BOOLEAN
+ }
+ }
+}
+
+DedicatedPriorityInformation-r11 ::= SEQUENCE {
+ action CHOICE {
+ clearDedicatedPriorities NULL,
+ configureDedicatedPriorities SEQUENCE {
+ t-322 T-322 OPTIONAL,
+ priorityLevelList PriorityLevelList-r11 OPTIONAL,
+ eutraDetection BOOLEAN
+ }
+ }
+}
+
+DedicatedPriorityInformation-r13 ::= SEQUENCE {
+ action CHOICE {
+ clearDedicatedPriorities NULL,
+ configureDedicatedPriorities SEQUENCE {
+ t-322 T-322 OPTIONAL,
+ priorityLevelList PriorityLevelList-r13 OPTIONAL,
+ eutraDetection BOOLEAN
+ }
+ }
+}
+
+PriorityLevel ::= SEQUENCE {
+ priority INTEGER (0..maxPrio-1) OPTIONAL,
+ radioAccessTechnology CHOICE {
+ utraFDD SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF SEQUENCE{
+ uarfcn UARFCN
+ },
+ utraTDD SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF SEQUENCE{
+ uarfcn UARFCN
+ },
+ eutra SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF SEQUENCE{
+ earfcn EARFCN
+ },
+ gsm SEQUENCE {
+ gsm-CellGroup GSM-CellGroup
+ }
+ }
+}
+
+PriorityLevel-r11 ::= SEQUENCE {
+ priority INTEGER (0..maxPrio-1) OPTIONAL,
+ radioAccessTechnology CHOICE {
+ utraFDD SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF SEQUENCE{
+ uarfcn UARFCN
+ },
+ utraTDD SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF SEQUENCE{
+ uarfcn UARFCN
+ },
+ eutra SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EARFCNRange,
+ gsm SEQUENCE {
+ gsm-CellGroup GSM-CellGroup
+ }
+ }
+}
+
+PriorityLevel-r13 ::= SEQUENCE {
+ priority INTEGER (0..maxPrio-1) OPTIONAL,
+ subpriority ENUMERATED {oDot2,oDot4,oDot6,oDot8} OPTIONAL, radioAccessTechnology CHOICE {
+ utraFDD SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF SEQUENCE{
+ uarfcn UARFCN
+ },
+ utraTDD SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF SEQUENCE{
+ uarfcn UARFCN
+ },
+ eutra SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EARFCNRange,
+ gsm SEQUENCE {
+ gsm-CellGroup GSM-CellGroup
+ }
+ }
+}
+
+PriorityLevelList ::= SEQUENCE (SIZE (1..maxPrio)) OF
+ PriorityLevel
+
+PriorityLevelList-r11 ::= SEQUENCE (SIZE (1..maxPrio)) OF
+ PriorityLevel-r11
+
+PriorityLevelList-r13 ::= SEQUENCE (SIZE (1..maxPrio-ext)) OF
+ PriorityLevel-r13
+
+
+-- Actual value Q-Hyst-S = IE value * 2
+Q-Hyst-S ::= INTEGER (0..20)
+
+Q-Hyst-S-Fine ::= INTEGER (0..40)
+
+RAT ::= ENUMERATED {
+ utra-FDD,
+ utra-TDD,
+ gsm,
+ cdma2000 }
+
+RAT-FDD-Info ::= SEQUENCE {
+ rat-Identifier RAT-Identifier,
+ s-SearchRAT S-SearchQual,
+ s-HCS-RAT S-SearchRXLEV OPTIONAL,
+ s-Limit-SearchRAT S-SearchQual
+}
+
+RAT-FDD-InfoList ::= SEQUENCE (SIZE (1..maxOtherRAT)) OF
+ RAT-FDD-Info
+
+RAT-Identifier ::= ENUMERATED {
+ gsm, cdma2000 }
+
+RAT-TDD-Info ::= SEQUENCE {
+ rat-Identifier RAT-Identifier,
+ s-SearchRAT S-SearchRXLEV,
+ s-HCS-RAT S-SearchRXLEV OPTIONAL,
+ s-Limit-SearchRAT S-SearchRXLEV
+}
+
+RAT-TDD-InfoList ::= SEQUENCE (SIZE (1..maxOtherRAT)) OF
+ RAT-TDD-Info
+
+ReservedIndicator ::= ENUMERATED {
+ reserved,
+ notReserved }
+
+-- Actual value S-SearchQual = IE value * 2
+S-SearchQual ::= INTEGER (-16..10)
+
+-- Actual value S-SearchRXLEV = (IE value * 2) + 1
+S-SearchRXLEV ::= INTEGER (-53..45)
+
+-- Actual value ScalingFactor = IE value * 0.1
+SpeedDependentScalingFactor ::= INTEGER (0..10)
+
+T-Barred ::= ENUMERATED {
+ s10, s20, s40, s80,
+ s160, s320, s640, s1280 }
+
+T-Reselection-S ::= INTEGER (0..31)
+
+-- Actual value T-Reselection-S-Fine = IE value * 0.2
+T-Reselection-S-Fine ::= INTEGER (0..31)
+
+-- Actual value ScalingFactor = IE value * 0.25
+TreselectionScalingFactor ::= INTEGER (4..19)
+
+-- Actual value ScalingFactor2 = IE value * 0.25
+TreselectionScalingFactor2 ::= INTEGER (1..16)
+
+-- For UpperLimit, the used range depends on the RAT used.
+UpperLimit ::= INTEGER (1..91)
+
+URA-Identity ::= BIT STRING (SIZE (16))
+
+URA-IdentityList ::= SEQUENCE (SIZE (1..maxURA)) OF
+ URA-Identity
+
+-- ***************************************************
+--
+-- USER EQUIPMENT INFORMATION ELEMENTS (10.3.3)
+--
+-- ***************************************************
+
+AccessGroupIdentity ::= INTEGER (0..15)
+
+AccessStratumReleaseIndicator ::= ENUMERATED {
+ rel-4, rel-5, rel-6, rel-7, rel-8,
+ rel-9, rel-10, rel-11, rel-12,
+ rel-13, spare6, spare5, spare4, spare3,
+ spare2, spare1 }
+
+-- TABULAR : for ActivationTime, value 'now' always appear as default, and is encoded
+-- by absence of the field
+ActivationTime ::= INTEGER (0..255)
+
+AddPos-Mode ::= ENUMERATED {
+ standalone,
+ ue-assisted,
+ both,
+ spare1
+ }
+
+BackoffControlParams ::= SEQUENCE {
+ n-AP-RetransMax N-AP-RetransMax,
+ n-AccessFails N-AccessFails,
+ nf-BO-NoAICH NF-BO-NoAICH,
+ ns-BO-Busy NS-BO-Busy,
+ nf-BO-AllBusy NF-BO-AllBusy,
+ nf-BO-Mismatch NF-BO-Mismatch,
+ t-CPCH T-CPCH
+}
+
+BandComb ::= INTEGER (1..256)
+
+C-RNTI ::= BIT STRING (SIZE (16))
+
+CapabilityUpdateRequirement ::= SEQUENCE {
+ ue-RadioCapabilityFDDUpdateRequirement BOOLEAN,
+ -- ue-RadioCapabilityTDDUpdateRequirement is for 3.84Mcps TDD update requirement
+ ue-RadioCapabilityTDDUpdateRequirement BOOLEAN,
+ systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList OPTIONAL
+}
+
+CapabilityUpdateRequirement-r4-ext ::= SEQUENCE {
+ ue-RadioCapabilityUpdateRequirement-TDD128 BOOLEAN
+}
+
+CapabilityUpdateRequirement-r4 ::= SEQUENCE {
+ ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN,
+ systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList OPTIONAL
+}
+
+CapabilityUpdateRequirement-r5 ::= SEQUENCE {
+ ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN,
+ systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r5 OPTIONAL
+}
+
+CapabilityUpdateRequirement-v770ext ::= SEQUENCE {
+ ue-RadioCapabilityTDDUpdateRequirement-TDD768 BOOLEAN
+}
+
+CapabilityUpdateRequirement-r7 ::= SEQUENCE {
+ ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD768 BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN,
+ systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r5 OPTIONAL
+}
+
+CapabilityUpdateRequirement-v860ext ::= SEQUENCE {
+ -- If both IEs are present, the elements in the IE SystemSpecificCapUpdateReqList-r8
+ -- shall be appended to the elements in the IE SystemSpecificCapUpdateReqList
+ systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r8 OPTIONAL
+}
+
+CapabilityUpdateRequirement-r8 ::= SEQUENCE {
+ ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD768 BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN,
+ systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r8 OPTIONAL
+}
+
+CapabilityUpdateRequirement-vaj0ext ::= SEQUENCE {
+ eUTRAbandSpecificCapUpdateReqList EUTRAbandSpecificCapUpdateReqList
+}
+
+CapabilityUpdateRequirement-r12 ::= SEQUENCE {
+ ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD768 BOOLEAN,
+ ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN,
+ systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r8 OPTIONAL,
+ eUTRAbandSpecificCapUpdateReqList EUTRAbandSpecificCapUpdateReqList OPTIONAL
+}
+
+
+-- If the IE CellUpdateCause has the value 'cellUpdateCause-ext', the actual value is
+-- defined in the IE CellUpdateCause-ext.
+CellUpdateCause ::= ENUMERATED {
+ cellReselection,
+ periodicalCellUpdate,
+ uplinkDataTransmission,
+ utran-pagingResponse,
+ re-enteredServiceArea,
+ radiolinkFailure,
+ rlc-unrecoverableError,
+ cellUpdateCause-ext }
+
+-- The IE CellUpdateCause-ext shall be present, if the IE CellUpdateCause has the
+-- value 'cellUpdateCause-ext'.
+-- dummy is not used in this version of the specification, it should not be sent
+-- and if received it should be ignored by the receiver.
+CellUpdateCause-ext ::= ENUMERATED {
+ mbms-Reception,
+ mbms-PTP-RB-Request,
+ dummy,
+ spare1 }
+
+
+ChipRateCapability ::= ENUMERATED {
+ mcps3-84, mcps1-28 }
+
+CipheringAlgorithm ::= ENUMERATED {
+ uea0, uea1 }
+
+CipheringAlgorithm-r7 ::= ENUMERATED {
+ uea0, uea1, uea2 }
+
+CipheringModeCommand ::= CHOICE {
+ startRestart CipheringAlgorithm,
+ dummy NULL
+}
+
+CipheringModeCommand-r7 ::= SEQUENCE {
+ startRestart CipheringAlgorithm-r7
+}
+
+CipheringModeInfo ::= SEQUENCE {
+ -- TABULAR: The ciphering algorithm is included in the CipheringModeCommand.
+ cipheringModeCommand CipheringModeCommand,
+ activationTimeForDPCH ActivationTime OPTIONAL,
+ rb-DL-CiphActivationTimeInfo RB-ActivationTimeInfoList OPTIONAL
+}
+
+CipheringModeInfo-r7 ::= SEQUENCE {
+ -- TABULAR: The ciphering algorithm is included in the CipheringModeCommand.
+ cipheringModeCommand CipheringModeCommand-r7,
+ activationTimeForDPCH ActivationTime OPTIONAL,
+ rb-DL-CiphActivationTimeInfo RB-ActivationTimeInfoList OPTIONAL
+}
+
+CN-DRX-CycleLengthCoefficient ::= INTEGER (6..9)
+
+CN-PagedUE-Identity ::= CHOICE {
+ imsi-GSM-MAP IMSI-GSM-MAP,
+ tmsi-GSM-MAP TMSI-GSM-MAP,
+ p-TMSI-GSM-MAP P-TMSI-GSM-MAP,
+ imsi-DS-41 IMSI-DS-41,
+ tmsi-DS-41 TMSI-DS-41,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+CompressedModeMeasCapability ::= SEQUENCE {
+ fdd-Measurements BOOLEAN,
+ -- TABULAR: The IEs tdd-Measurements, gsm-Measurements and multiCarrierMeasurements
+ -- are made optional since they are conditional based on another information element.
+ -- Their absence corresponds to the case where the condition is not true.
+ -- The IE 'tdd-Measurements' applies to either or both TDD 3.84 Mcps and TDD 7.68 Mcps,
+ -- depending on the RF capability conditions.
+ tdd-Measurements BOOLEAN OPTIONAL,
+ gsm-Measurements GSM-Measurements OPTIONAL,
+ multiCarrierMeasurements BOOLEAN OPTIONAL
+}
+
+CompressedModeMeasCapability-LCR-r4 ::= SEQUENCE {
+ tdd128-Measurements BOOLEAN OPTIONAL
+}
+
+CompressedModeMeasCapability-v860ext ::= SEQUENCE {
+ adjacentFrequencyMeasurements ENUMERATED { true } OPTIONAL
+}
+
+CompressedModeMeasCapability-v920ext ::= SEQUENCE {
+ interBandMeasurements ENUMERATED { true } OPTIONAL
+}
+
+CompressedModeMeasCapability-va40ext ::= SEQUENCE {
+ enhancedInterFrequencyMeasurements ENUMERATED { true } OPTIONAL,
+ freqSpecificCompressedMode ENUMERATED { true } OPTIONAL
+}
+
+CompressedModeMeasCapabEUTRA ::= SEQUENCE {
+ radioFrequencyBandEUTRA RadioFrequencyBandEUTRA,
+ compressedMode BOOLEAN
+}
+
+CompressedModeMeasCapabEUTRAExt ::=SEQUENCE {
+ radioFrequencyBandEUTRA RadioFrequencyBandEUTRAExt
+}
+
+CompressedModeMeasCapabEUTRAExt2 ::=SEQUENCE {
+ radioFrequencyBandEUTRA RadioFrequencyBandEUTRAExt2,
+ compressedMode BOOLEAN
+}
+
+CompressedModeMeasCapabEUTRAList ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF
+ CompressedModeMeasCapabEUTRA
+
+CompressedModeMeasCapabEUTRAList2 ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF
+ CompressedModeMeasCapabEUTRAExt
+
+CompressedModeMeasCapabEUTRAList3 ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA-ext)) OF
+ CompressedModeMeasCapabEUTRAExt2
+
+CompressedModeMeasCapabFDDList ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ CompressedModeMeasCapabFDD
+
+CompressedModeMeasCapabFDDList2 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ CompressedModeMeasCapabFDD2
+
+CompressedModeMeasCapabFDDList3 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext2)) OF
+ CompressedModeMeasCapabFDD3
+
+CompressedModeMeasCapabFDDList-ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ CompressedModeMeasCapabFDD-ext
+
+CompressedModeMeasCapabFDD ::= SEQUENCE {
+ radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL,
+ dl-MeasurementsFDD BOOLEAN,
+ ul-MeasurementsFDD BOOLEAN
+}
+
+CompressedModeMeasCapabFDD2 ::= SEQUENCE {
+ -- UE may omit both IEs if this IE indicates the compressed mode capability within the same
+ -- frequency band. Otherwise, the UE shall include either one of the following OPTIONAL IEs.
+ radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL,
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL,
+ dl-MeasurementsFDD BOOLEAN,
+ ul-MeasurementsFDD BOOLEAN
+}
+
+CompressedModeMeasCapabFDD3 ::= SEQUENCE {
+ -- UE may omit radioFrequencyBandFDD3 if this IE indicates the compressed mode capability within
+ -- the same frequency band. Otherwise, the UE shall include the IE.
+ radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL,
+ dl-MeasurementsFDD BOOLEAN,
+ ul-MeasurementsFDD BOOLEAN
+}
+
+CompressedModeMeasCapabFDD-ext ::= SEQUENCE {
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2,
+ dl-MeasurementsFDD BOOLEAN,
+ ul-MeasurementsFDD BOOLEAN
+}
+
+CompressedModeMeasCapabTDDList ::= SEQUENCE (SIZE (1..maxFreqBandsTDD)) OF
+ CompressedModeMeasCapabTDD
+
+CompressedModeMeasCapabTDD ::= SEQUENCE {
+ radioFrequencyBandTDD RadioFrequencyBandTDD,
+ dl-MeasurementsTDD BOOLEAN,
+ ul-MeasurementsTDD BOOLEAN
+}
+
+CompressedModeMeasCapabGSMList ::= SEQUENCE (SIZE (1..maxFreqBandsGSM)) OF
+ CompressedModeMeasCapabGSM
+
+CompressedModeMeasCapabGSM ::= SEQUENCE {
+ radioFrequencyBandGSM RadioFrequencyBandGSM,
+ dl-MeasurementsGSM BOOLEAN,
+ ul-MeasurementsGSM BOOLEAN
+}
+
+CompressedModeMeasCapabMC ::= SEQUENCE {
+ dl-MeasurementsMC BOOLEAN,
+ ul-MeasurementsMC BOOLEAN
+}
+
+CPCH-Parameters ::= SEQUENCE {
+ initialPriorityDelayList InitialPriorityDelayList OPTIONAL,
+ backoffControlParams BackoffControlParams,
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm,
+ dl-DPCCH-BER DL-DPCCH-BER
+}
+
+CSG-ProximityIndicationCapability ::= SEQUENCE {
+ supportOfIntraFreqProximityIndication ENUMERATED { true } OPTIONAL,
+ supportOfInterFreqProximityIndication ENUMERATED { true } OPTIONAL,
+ supportOfE-UtraProximityIndication ENUMERATED { true } OPTIONAL
+}
+
+DL-CapabilityWithSimultaneousHS-DSCHConfig ::= ENUMERATED{kbps32, kbps64, kbps128, kbps384}
+
+DL-DPCCH-BER ::= INTEGER (0..63)
+
+DL-InformationPerSecondaryRL-List ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ DL-InformationPerSecondaryRL
+
+DL-InformationPerSecondaryRL-List-r12 ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ DL-InformationPerSecondaryRL-r12
+
+DL-InformationPerSecondaryRL-List-r13 ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ DL-InformationPerSecondaryRL-r13
+
+DL-InformationPerSecondaryRL ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-id CellIdentity OPTIONAL,
+ dl-FDPCHInfoPerRL-SecULFreq DL-FDPCH-InfoPerRL-r7,
+ e-AGCH-Information E-AGCH-Information OPTIONAL,
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+}
+
+DL-InformationPerSecondaryRL-r12 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-id CellIdentity OPTIONAL,
+ dl-FDPCHInfoPerRL-SecULFreq DL-FDPCH-InfoPerRL-r7,
+ e-AGCH-Information E-AGCH-Information OPTIONAL,
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ secondary-Serving-E-DCHRL-Indicator ENUMERATED { true } OPTIONAL,
+ radioLinkswithoutDPCHFDPCHIndicator NULL OPTIONAL
+}
+
+DL-InformationPerSecondaryRL-r13 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-id CellIdentity OPTIONAL,
+ dl-FDPCHInfoPerRL-SecULFreq DL-FDPCH-InfoPerRL-r13,
+ e-AGCH-Information E-AGCH-Information OPTIONAL,
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ secondary-Serving-E-DCHRL-Indicator ENUMERATED { true } OPTIONAL,
+ radioLinkswithoutDPCHFDPCHIndicator NULL OPTIONAL
+}
+
+DL-PhysChCapabilityFDD ::= SEQUENCE {
+ -- The IE "maxNoDPCH-PDSCH-Codes" only gives information on the maximum number of DPCH Codes.
+ maxNoDPCH-PDSCH-Codes INTEGER (1..8),
+ maxNoPhysChBitsReceived MaxNoPhysChBitsReceived,
+ supportForSF-512 BOOLEAN,
+ -- dummy and dummy2 are not used in this version of the specification
+ -- and if received they should be ignored.
+ dummy BOOLEAN,
+ dummy2 SimultaneousSCCPCH-DPCH-Reception
+}
+
+DL-PhysChCapabilityFDD-v380ext ::= SEQUENCE {
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SupportOfDedicatedPilotsForChEstimation OPTIONAL
+}
+
+SupportOfDedicatedPilotsForChEstimation ::= ENUMERATED { true }
+
+DL-PhysChCapabilityFDD-v770ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL,
+ hsscchlessHsdschOperation ENUMERATED { true } OPTIONAL,
+ enhancedFdpch ENUMERATED { true } OPTIONAL,
+ hsdschReception-CellFach ENUMERATED { true } OPTIONAL,
+ hsdschReception-CellUraPch ENUMERATED { true } OPTIONAL
+}
+
+DL-PhysChCapabilityFDD-v860ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext2 HSDSCH-physical-layer-category-ext2 OPTIONAL,
+ supportOfTargetCellPreConfig ENUMERATED { true } OPTIONAL,
+ supportOfHsdschDrxOperation ENUMERATED { true } OPTIONAL
+}
+
+DL-PhysChCapabilityFDD-v920ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext3 HSDSCH-physical-layer-category-ext3 OPTIONAL,
+ supportOfMimoOnlySingleStream ENUMERATED { true } OPTIONAL
+}
+
+DL-PhysChCapabilityFDD-va40ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext4 HSDSCH-physical-layer-category-ext4 OPTIONAL,
+ hsdsch-physical-layer-category-ext5 HSDSCH-physical-layer-category-ext5 OPTIONAL
+}
+
+DL-PhysChCapabilityFDD-vb50ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext6 HSDSCH-physical-layer-category-ext6 OPTIONAL,
+ hsdsch-physical-layer-category-ext7 HSDSCH-physical-layer-category-ext7 OPTIONAL,
+ hsdsch-physical-layer-category-ext8 HSDSCH-physical-layer-category-ext8 OPTIONAL,
+ supportOf4x4MimoDualStreamRestriction ENUMERATED { true } OPTIONAL,
+ supportOfHS-DSCHSecondDRXOperation ENUMERATED { true } OPTIONAL,
+ supportOfNodeBTrigHS-DPCCHTransmission ENUMERATED { true } OPTIONAL
+}
+
+DL-PhysChCapabilityFDD-vb80ext ::= SEQUENCE {
+ non-ContiguousMulti-CellWithMIMO ENUMERATED { true } OPTIONAL
+}
+
+DL-PhysChCapabilityFDD-vc50ext ::= SEQUENCE {
+ supportforDCHEnhancements ENUMERATED { basic, full } OPTIONAL,
+ simultaneousSupportforDCHEnhancementsAndCM ENUMERATED { true } OPTIONAL,
+ simultaneousSupportforDCHEnhancementsAndDPCCHDiscntTx ENUMERATED { true } OPTIONAL,
+ drx-enhancements ENUMERATED { true } OPTIONAL,
+ hs-dpcchOverheadReduction ENUMERATED { true } OPTIONAL,
+ supportofEnhancedServingCellChangeForEvent1C ENUMERATED { true } OPTIONAL,
+ supportofDPCCH2 ENUMERATED { true } OPTIONAL
+}
+
+DL-PhysChCapabilityFDD-vdxyext ::= SEQUENCE {
+ supportforPowerControlAlgorithm3 ENUMERATED { true } OPTIONAL
+}
+
+DL-PhysChCapabilityTDD ::= SEQUENCE {
+ maxTS-PerFrame MaxTS-PerFrame,
+ maxPhysChPerFrame MaxPhysChPerFrame,
+ minimumSF MinimumSF-DL,
+ supportOfPDSCH BOOLEAN,
+ maxPhysChPerTS MaxPhysChPerTS
+}
+
+DL-PhysChCapabilityTDD-LCR-r4 ::= SEQUENCE {
+ maxTS-PerSubFrame MaxTS-PerSubFrame-r4,
+ maxPhysChPerFrame MaxPhysChPerSubFrame-r4,
+ minimumSF MinimumSF-DL,
+ supportOfPDSCH BOOLEAN,
+ maxPhysChPerTS MaxPhysChPerTS,
+ supportOf8PSK BOOLEAN
+}
+
+DL-PhysChCapabilityTDD-128-v770ext ::= SEQUENCE {
+ multiCarrier-physical-layer-category MultiCarrier-HSDSCH-physical-layer-category OPTIONAL
+}
+
+DL-PhysChCapabilityTDD-128-v860ext ::= SEQUENCE {
+ hSDSCH-physical-layer-category-extension
+ HSDSCH-physical-layer-category-extension OPTIONAL,
+ multiCarrier-physical-layer-category-extension
+ MultiCarrier-HSDSCH-physical-layer-category-extension OPTIONAL,
+ supportOfSFModeForHSPDSCHDualStream ENUMERATED { sf1, sf1sf16 } OPTIONAL
+}
+
+DL-PhysChCapabilityInfoTDD-128-va40ext::= SEQUENCE {
+ multiCarrier-physical-layer-category-extension2
+ MultiCarrier-HSDSCH-physical-layer-category-extension2 OPTIONAL
+}
+
+DL-PhysChCapabilityInfoTDD-128-vc50ext::= SEQUENCE {
+ supportofNon-rectResourceAllocation ENUMERATED { true } OPTIONAL
+}
+
+DL-PhysChCapabilityTDD-768 ::= SEQUENCE {
+ maxTS-PerFrame MaxTS-PerFrame,
+ maxPhysChPerFrame MaxPhysChPerFrame-768,
+ minimumSF MinimumSF-DL-768,
+ supportOfPDSCH BOOLEAN,
+ tdd768-hspdsch CHOICE {
+ supported HSDSCH-physical-layer-category,
+ unsupported NULL
+ },
+ maxPhysChPerTS MaxPhysChPerTS-768
+}
+
+DL-PhysChCapabilityInfoTDD-768 ::= SEQUENCE {
+ maxTS-PerFrame MaxTS-PerFrame,
+ maxPhysChPerFrame MaxPhysChPerFrame-768,
+ minimumSF MinimumSF-DL-768,
+ supportOfPDSCH BOOLEAN,
+ maxPhysChPerTS MaxPhysChPerTS-768
+}
+
+DL-TransChCapability ::= SEQUENCE {
+ maxNoBitsReceived MaxNoBits,
+ maxConvCodeBitsReceived MaxNoBits,
+ turboDecodingSupport TurboSupport,
+ maxSimultaneousTransChs MaxSimultaneousTransChsDL,
+ maxSimultaneousCCTrCH-Count MaxSimultaneousCCTrCH-Count,
+ maxReceivedTransportBlocks MaxTransportBlocksDL,
+ maxNumberOfTFC MaxNumberOfTFC-DL,
+ maxNumberOfTF MaxNumberOfTF
+}
+
+DRAC-SysInfo ::= SEQUENCE {
+ transmissionProbability TransmissionProbability,
+ maximumBitRate MaximumBitRate
+}
+
+DRAC-SysInfoList ::= SEQUENCE (SIZE (1..maxDRACclasses)) OF
+ DRAC-SysInfo
+
+DSCH-RNTI ::= BIT STRING (SIZE (16))
+
+DelayRestrictionFlag ::= ENUMERATED { true }
+
+DynamicActivationTime ::= SEQUENCE {
+ activationOffset INTEGER (0..15) OPTIONAL
+}
+
+E-RNTI ::= BIT STRING (SIZE (16))
+
+ESN-DS-41 ::= BIT STRING (SIZE (32))
+
+EstablishmentCause ::= ENUMERATED {
+ originatingConversationalCall,
+ originatingStreamingCall,
+ originatingInteractiveCall,
+ originatingBackgroundCall,
+ originatingSubscribedTrafficCall,
+ terminatingConversationalCall,
+ terminatingStreamingCall,
+ terminatingInteractiveCall,
+ terminatingBackgroundCall,
+ emergencyCall,
+ interRAT-CellReselection,
+ interRAT-CellChangeOrder,
+ registration,
+ detach,
+ originatingHighPrioritySignalling,
+ originatingLowPrioritySignalling,
+ callRe-establishment,
+ terminatingHighPrioritySignalling,
+ terminatingLowPrioritySignalling,
+ terminatingCauseUnknown,
+ mbms-Reception,
+ mbms-PTP-RB-Request,
+ delayTolerantAccess,
+ spare9,
+ spare8,
+ spare7,
+ spare6,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+ExtendedWaitTime ::= INTEGER (1..1800)
+
+EUTRAbandSpecificCapUpdateReqList ::= SEQUENCE (SIZE (1..16)) OF RadioFrequencyBandEUTRAExt2
+
+FailureCauseWithProtErr ::= CHOICE {
+ configurationUnsupported NULL,
+ physicalChannelFailure NULL,
+ incompatibleSimultaneousReconfiguration
+ NULL,
+ compressedModeRuntimeError TGPSI,
+ protocolError ProtocolErrorInformation,
+ cellUpdateOccurred NULL,
+ invalidConfiguration NULL,
+ configurationIncomplete NULL,
+ unsupportedMeasurement NULL,
+ mbmsSessionAlreadyReceivedCorrectly NULL,
+ lowerPriorityMBMSService NULL,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+FailureCauseWithProtErrTrId ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr
+}
+
+FrequencyBandsIndicatorSupport ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ frequencyBandsSupportFDD FrequencyBandsRedirectionFDD
+ },
+ tdd SEQUENCE {
+ frequencyBandsSupportTDD128 FrequencyBandsIndicatorTDD128
+ }
+ }
+}
+
+FrequencyBandsIndicatorTDD128 ::= SEQUENCE (SIZE (1..maxFreqBandsIndicatorSupport)) OF
+ FrequencyBandsIndicatorSupportTDD128
+
+FrequencyBandsIndicatorSupportTDD128 ::= SEQUENCE {
+ frequencyBandsIndicatorTDD RadioFrequencyBandTDD-r10
+}
+
+FrequencyBandsRedirectionFDD ::= SEQUENCE (SIZE (1..maxFreqBandsIndicatorSupport)) OF
+ FrequencyBandsIndicatorFDD
+
+FrequencyBandsIndicatorFDD ::= CHOICE {
+ frequencyBandsIndicator1 RadioFrequencyBandFDD,
+ frequencyBandsIndicator2 RadioFrequencyBandFDD2,
+ frequencyBandsIndicator3 RadioFrequencyBandFDD3
+}
+
+GANSS-Mode ::= ENUMERATED {
+ networkBased,
+ uEBased,
+ both,
+ none }
+
+GroupIdentityWithReleaseInformation ::= SEQUENCE {
+ rrc-ConnectionReleaseInformation RRC-ConnectionReleaseInformation,
+ groupReleaseInformation GroupReleaseInformation
+ }
+
+GroupReleaseInformation ::= SEQUENCE {
+ uRNTI-Group U-RNTI-Group
+}
+
+GSM-Measurements ::= SEQUENCE {
+ gsm900 BOOLEAN,
+ dcs1800 BOOLEAN,
+ gsm1900 BOOLEAN
+}
+
+H-RNTI ::= BIT STRING (SIZE (16))
+
+High-MobilityDetected ::= ENUMERATED { high-MobilityDetected }
+
+HSDSCH-physical-layer-category ::= INTEGER (1..64)
+
+HSDSCH-physical-layer-category-ext ::= INTEGER (1..20)
+
+HSDSCH-physical-layer-category-ext2 ::= INTEGER (21..24)
+
+HSDSCH-physical-layer-category-ext3 ::= INTEGER (25..28)
+
+HSDSCH-physical-layer-category-ext4 ::= INTEGER (29..30)
+
+HSDSCH-physical-layer-category-ext5 ::= INTEGER (31..32)
+
+HSDSCH-physical-layer-category-ext6 ::= INTEGER (33..34)
+
+HSDSCH-physical-layer-category-ext7 ::= INTEGER (35..36)
+
+HSDSCH-physical-layer-category-ext8 ::= INTEGER (37..38)
+
+HSDSCH-physical-layer-category-extension ::= INTEGER (1..64)
+
+MultiCarrier-HSDSCH-physical-layer-category ::= INTEGER (1..64)
+
+MultiCarrier-HSDSCH-physical-layer-category-extension ::= INTEGER (1..36)
+
+MultiCarrier-HSDSCH-physical-layer-category-extension2 ::= INTEGER (37..64)
+
+MultiflowCapabBandCombination ::= SEQUENCE {
+ numberOfCellsBandA INTEGER(1..6),
+ numberOfFrequenciesBandA INTEGER(1..3),
+ numberOfCellsBandB INTEGER(1..6),
+ numberOfFrequenciesBandB INTEGER(1..3)
+}
+
+MultiflowCapabBandCombList ::= SEQUENCE (SIZE (1..16)) OF MultiflowCapabBandCombination
+
+MultiflowCapability ::= SEQUENCE {
+ mimoInDifferentBands MultiflowMIMOCapability OPTIONAL,
+ longerHARQProcessing ENUMERATED { true } OPTIONAL
+}
+
+MultiflowPerBandCapability ::= SEQUENCE {
+ numberOfCells INTEGER(2..8),
+ numberOfFrequencies INTEGER(1..4),
+ mimo MultiflowMIMOCapability OPTIONAL,
+ nonContiguousCapability MultiflowNonContiguousCapability OPTIONAL
+}
+
+MultiflowMIMOCapability ::= ENUMERATED { single-stream, dual-stream }
+
+MultiflowNonContiguousCapability ::= SEQUENCE {
+ gapSize ENUMERATED { fiveMHz, tenMHz, anyGapSize,
+ spare5, spare4, spare3, spare2, spare1 }
+}
+
+UESpecificBehaviourInformation1idle ::= BIT STRING (SIZE (4))
+
+UESpecificBehaviourInformation1interRAT ::= BIT STRING (SIZE (8))
+
+IdleIntervalMeasCapabEUTRA ::= SEQUENCE {
+ radioFrequencyBandEUTRA RadioFrequencyBandEUTRA,
+ idleInterval BOOLEAN
+}
+
+IdleIntervalMeasCapabEUTRAExtension ::= SEQUENCE {
+ radioFrequencyBandEUTRA RadioFrequencyBandEUTRAExt
+}
+
+IdleIntervalMeasCapabEUTRAList ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF
+ IdleIntervalMeasCapabEUTRA
+
+IdleIntervalMeasCapabEUTRAExtensionList ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF
+ IdleIntervalMeasCapabEUTRAExtension
+
+IMSI-and-ESN-DS-41 ::= SEQUENCE {
+ imsi-DS-41 IMSI-DS-41,
+ esn-DS-41 ESN-DS-41
+}
+
+IMSI-DS-41 ::= OCTET STRING (SIZE (5..7))
+
+InitialPriorityDelayList ::= SEQUENCE (SIZE (1..maxASC)) OF
+ NS-IP
+
+InitialUE-Identity ::= CHOICE {
+ imsi IMSI-GSM-MAP,
+ tmsi-and-LAI TMSI-and-LAI-GSM-MAP,
+ p-TMSI-and-RAI P-TMSI-and-RAI-GSM-MAP,
+ imei IMEI,
+ esn-DS-41 ESN-DS-41,
+ imsi-DS-41 IMSI-DS-41,
+ imsi-and-ESN-DS-41 IMSI-and-ESN-DS-41,
+ tmsi-DS-41 TMSI-DS-41
+}
+
+IntegrityCheckInfo ::= SEQUENCE {
+ messageAuthenticationCode MessageAuthenticationCode,
+ rrc-MessageSequenceNumber RRC-MessageSequenceNumber
+}
+
+IntegrityProtActivationInfo ::= SEQUENCE {
+ rrc-MessageSequenceNumberList RRC-MessageSequenceNumberList
+}
+
+IntegrityProtectionAlgorithm ::= ENUMERATED {
+ uia1 }
+
+IntegrityProtectionAlgorithm-r7 ::= ENUMERATED {
+ uia1, uia2 }
+
+IntegrityProtectionModeCommand ::= CHOICE {
+ startIntegrityProtection SEQUENCE {
+ integrityProtInitNumber IntegrityProtInitNumber
+ },
+ modify SEQUENCE {
+ dl-IntegrityProtActivationInfo IntegrityProtActivationInfo
+ }
+}
+
+IntegrityProtectionModeInfo ::= SEQUENCE {
+ -- TABULAR: DL integrity protection activation info and Integrity
+ -- protection intialisation number have been nested inside
+ -- IntegrityProtectionModeCommand.
+ integrityProtectionModeCommand IntegrityProtectionModeCommand,
+ integrityProtectionAlgorithm IntegrityProtectionAlgorithm OPTIONAL
+}
+
+IntegrityProtectionModeInfo-r7 ::= SEQUENCE {
+ -- TABULAR: DL integrity protection activation info and Integrity
+ -- protection intialisation number have been nested inside
+ -- IntegrityProtectionModeCommand.
+ integrityProtectionModeCommand IntegrityProtectionModeCommand,
+ integrityProtectionAlgorithm IntegrityProtectionAlgorithm-r7 OPTIONAL
+}
+
+IntegrityProtInitNumber ::= BIT STRING (SIZE (32))
+
+-- dummy is not used in this version of the specification, it should
+-- not be sent and if received it should be ignored.
+MaxHcContextSpace ::= ENUMERATED {
+ dummy, by1024, by2048, by4096,
+ by8192 }
+
+MaxHcContextSpace-r5-ext ::= ENUMERATED {
+ by16384, by32768, by65536, by131072 }
+
+
+MaxROHC-ContextSessions-r4 ::= ENUMERATED {
+ s2, s4, s8, s12, s16, s24, s32, s48,
+ s64, s128, s256, s512, s1024, s16384 }
+
+MaximumAM-EntityNumberRLC-Cap ::= ENUMERATED {
+ dummy, am4, am5, am6,
+ am8, am16, am30 }
+
+-- Actual value MaximumBitRate = IE value * 16
+MaximumBitRate ::= INTEGER (0..32)
+
+MaximumRLC-WindowSize ::= ENUMERATED { mws2047, mws4095 }
+
+MaxNoDPDCH-BitsTransmitted ::= ENUMERATED {
+ b600, b1200, b2400, b4800,
+ b9600, b19200, b28800, b38400,
+ b48000, b57600 }
+
+MaxNoBits ::= ENUMERATED {
+ b640, b1280, b2560, b3840, b5120,
+ b6400, b7680, b8960, b10240,
+ b20480, b40960, b81920, b163840 }
+
+MaxNoPhysChBitsReceived ::= ENUMERATED {
+ dummy, b1200, b2400, b3600,
+ b4800, b7200, b9600, b14400,
+ b19200, b28800, b38400, b48000,
+ b57600, b67200, b76800 }
+
+MaxNoSCCPCH-RL ::= ENUMERATED {
+ rl1 }
+
+MaxNumberOfTF ::= ENUMERATED {
+ tf32, tf64, tf128, tf256,
+ tf512, tf1024 }
+
+MaxNumberOfTFC-DL ::= ENUMERATED {
+ tfc16, tfc32, tfc48, tfc64, tfc96,
+ tfc128, tfc256, tfc512, tfc1024 }
+
+MaxNumberOfTFC-UL ::= ENUMERATED {
+ dummy1, dummy2, tfc16, tfc32, tfc48, tfc64,
+ tfc96, tfc128, tfc256, tfc512, tfc1024 }
+
+-- the values 1 to 4 for MaxPhysChPerFrame are not used in this version of the protocol
+MaxPhysChPerFrame ::= INTEGER (1..224)
+
+MaxPhysChPerFrame-768 ::= INTEGER (1..448)
+
+MaxPhysChPerSubFrame-r4 ::= INTEGER (1..96)
+
+MaxPhysChPerTimeslot ::= ENUMERATED {
+ ts1, ts2 }
+
+MaxPhysChPerTimeslot-LCR-r7 ::= INTEGER (1..4)
+
+-- the values 1 to 4 for MaxPhysChPerTS are not used in this version of the protocol
+MaxPhysChPerTS ::= INTEGER (1..16)
+
+MaxPhysChPerTS-768 ::= INTEGER (1..32)
+
+MaxSimultaneousCCTrCH-Count ::= INTEGER (1..8)
+
+MaxSimultaneousTransChsDL ::= ENUMERATED {
+ e4, e8, e16, e32 }
+
+MaxSimultaneousTransChsUL ::= ENUMERATED {
+ dummy, e4, e8, e16, e32 }
+
+MaxTransportBlocksDL ::= ENUMERATED {
+ tb4, tb8, tb16, tb32, tb48,
+ tb64, tb96, tb128, tb256, tb512 }
+
+MaxTransportBlocksUL ::= ENUMERATED {
+ dummy, tb4, tb8, tb16, tb32, tb48,
+ tb64, tb96, tb128, tb256, tb512 }
+
+MaxTS-PerFrame ::= INTEGER (1..14)
+
+MaxTS-PerSubFrame-r4 ::= INTEGER (1..6)
+
+-- TABULAR: MeasurementCapability contains dependencies to UE-MultiModeRAT-Capability,
+-- the conditional fields have been left mandatory for now.
+MeasurementCapability ::= SEQUENCE {
+ downlinkCompressedMode CompressedModeMeasCapability,
+ uplinkCompressedMode CompressedModeMeasCapability
+}
+
+MeasurementCapabilityExt ::= SEQUENCE{
+ compressedModeMeasCapabFDDList CompressedModeMeasCapabFDDList,
+ compressedModeMeasCapabTDDList CompressedModeMeasCapabTDDList OPTIONAL,
+ compressedModeMeasCapabGSMList CompressedModeMeasCapabGSMList OPTIONAL,
+ compressedModeMeasCapabMC CompressedModeMeasCapabMC OPTIONAL
+}
+
+MeasurementCapabilityExt2 ::= SEQUENCE{
+ compressedModeMeasCapabFDDList CompressedModeMeasCapabFDDList2,
+ compressedModeMeasCapabTDDList CompressedModeMeasCapabTDDList OPTIONAL,
+ compressedModeMeasCapabGSMList CompressedModeMeasCapabGSMList OPTIONAL,
+ compressedModeMeasCapabMC CompressedModeMeasCapabMC OPTIONAL
+}
+
+MeasurementCapabilityExt3 ::= SEQUENCE {
+ compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList OPTIONAL
+}
+
+MeasurementCapabilityExt4 ::= SEQUENCE{
+ compressedModeMeasCapabFDDList2 CompressedModeMeasCapabFDDList2 OPTIONAL,
+ compressedModeMeasCapabFDDList3 CompressedModeMeasCapabFDDList3 OPTIONAL,
+ compressedModeMeasCapabTDDList CompressedModeMeasCapabTDDList OPTIONAL,
+ compressedModeMeasCapabGSMList CompressedModeMeasCapabGSMList OPTIONAL,
+ compressedModeMeasCapabMC CompressedModeMeasCapabMC OPTIONAL,
+ compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList OPTIONAL
+}
+
+MeasurementCapabilityExt5 ::= SEQUENCE {
+ compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList2 OPTIONAL
+}
+
+MeasurementCapabilityExt6 ::= SEQUENCE{
+ compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList3 OPTIONAL
+}
+
+MeasurementCapability-r4-ext ::= SEQUENCE {
+ downlinkCompressedMode-LCR CompressedModeMeasCapability-LCR-r4,
+ uplinkCompressedMode-LCR CompressedModeMeasCapability-LCR-r4
+}
+
+MeasurementCapability-v860ext ::= SEQUENCE {
+ downlinkCompressedMode CompressedModeMeasCapability-v860ext
+}
+
+MeasurementCapability-v920ext ::= SEQUENCE {
+ downlinkCompressedMode CompressedModeMeasCapability-v920ext
+}
+
+MeasurementCapability-va40ext ::= SEQUENCE {
+ interFrequencyDetectedSetMeasurements ENUMERATED { true } OPTIONAL,
+ downlinkCompressedMode CompressedModeMeasCapability-va40ext
+}
+
+MeasurementCapability-vb50ext ::= SEQUENCE {
+ interFrequencyMeasOnConfigCarriersWithoutCompMode ENUMERATED { true } OPTIONAL,
+ cellsExcludedFromDetectedSetMeasurements ENUMERATED { true } OPTIONAL
+}
+
+MeasurementCapabilityTDD ::= SEQUENCE {
+ idleIntervalMeasCapabEUTRAList IdleIntervalMeasCapabEUTRAList OPTIONAL
+}
+
+MeasurementCapabilityTDD-vb50ext ::= SEQUENCE {
+ idleIntervalMeasCapabEUTRAList IdleIntervalMeasCapabEUTRAExtensionList OPTIONAL
+}
+
+MeasurementCapability-vb70ext ::= SEQUENCE {
+ widebandRSRQFDDMeasurements ENUMERATED { true } OPTIONAL,
+ widebandRSRQTDDMeasurements ENUMERATED { true } OPTIONAL
+}
+
+MeasurementCapability-vc50ext ::= SEQUENCE {
+ event2gReportingOnaConfiguredSecDLFrequency ENUMERATED { true } OPTIONAL,
+ extendedRsrqLowerValueRange ENUMERATED { true } OPTIONAL,
+ rsrqOnAllSymbols ENUMERATED { true } OPTIONAL,
+ increasedUECarrierMonitoringUTRA ENUMERATED { true } OPTIONAL,
+ increasedUECarrierMonitoringE-UTRA ENUMERATED { true } OPTIONAL,
+ enhancedUPHReporting ENUMERATED { true } OPTIONAL
+}
+
+MessageAuthenticationCode ::= BIT STRING (SIZE (32))
+
+MinimumSF-DL ::= ENUMERATED {
+ sf1, sf16 }
+
+MinimumSF-DL-768 ::= ENUMERATED {
+ sf1, sf32 }
+
+MinimumSF-UL ::= ENUMERATED {
+ sf1, sf2, sf4, sf8, dummy }
+
+NonContiguousMultiCellCombinationList ::= SEQUENCE (SIZE (1..maxNonContiguousMultiCellCombinations)) OF
+ NonContiguousMultiCell
+
+NonContiguousMultiCell ::= SEQUENCE {
+ aggregatedCells ENUMERATED { nc-2c, nc-3c, nc-4c },
+ gapSize ENUMERATED { fiveMHz, tenMHz, anyGapSize,
+ spare5, spare4, spare3, spare2, spare1 },
+ nonContiguousMultiCellCombination22 ENUMERATED { true } OPTIONAL,
+ nonContiguousMultiCellCombination31-13 ENUMERATED { true } OPTIONAL
+}
+
+MultiModeCapability ::= ENUMERATED {
+ tdd, fdd, fdd-tdd }
+
+MultiRAT-Capability ::= SEQUENCE {
+ supportOfGSM BOOLEAN,
+ supportOfMulticarrier BOOLEAN
+}
+
+MultiModeRAT-Capability-v590ext ::= SEQUENCE {
+ supportOfUTRAN-ToGERAN-NACC BOOLEAN
+}
+
+MultiModeRAT-Capability-v680ext ::= SEQUENCE {
+ supportOfHandoverToGAN ENUMERATED { doesSupportHandoverToGAN } OPTIONAL
+}
+
+MultiModeRAT-Capability-v770ext ::= SEQUENCE {
+ supportOfPSHandoverToGAN ENUMERATED { doesSupportPSHandoverToGAN } OPTIONAL
+}
+
+MultiModeRAT-Capability-v860ext ::= SEQUENCE {
+ supportOfEUTRAFDD ENUMERATED { doesSupportEUTRAFDD } OPTIONAL,
+ supportOfInterRATHOToEUTRAFDD ENUMERATED { doesSupportInterRATHOToEUTRAFDD } OPTIONAL,
+ supportOfEUTRATDD ENUMERATED { doesSupportEUTRATDD } OPTIONAL,
+ supportOfInterRATHOToEUTRATDD ENUMERATED { doesSupportInterRATHOToEUTRATDD } OPTIONAL,
+ eutraFeatureGroupIndicators BIT STRING (SIZE (4)) OPTIONAL
+}
+
+MultiModeRAT-Capability-vae0ext ::= SEQUENCE {
+ eutraSupportOfMFBI ENUMERATED { true } OPTIONAL
+}
+
+MultiModeRAT-Capability-vb50ext ::= SEQUENCE {
+ supportOfEUTRAFDDMeasurementReportingInCELLFACH ENUMERATED { doesSupportOfEUTRAFDDMeasurementReportingInCELLFACH } OPTIONAL,
+ supportOfEUTRATDDMeasurementReportingInCELLFACH ENUMERATED { doesSupportOfEUTRATDDMeasurementReportingInCELLFACH } OPTIONAL
+}
+
+MultiModeRAT-Capability-vc50ext ::= SEQUENCE {
+ supportOfRAN-AssistedWLAN-Interworking-RAN-Rules ENUMERATED { true } OPTIONAL,
+ supportOfRAN-AssistedWLAN-Interworking-ANDSF-Policies ENUMERATED { true } OPTIONAL
+}
+N-300 ::= INTEGER (0..7)
+
+N-301 ::= INTEGER (0..7)
+
+N-302 ::= INTEGER (0..7)
+
+N-304 ::= INTEGER (0..7)
+
+N-308 ::= INTEGER (1..8)
+
+N-310 ::= INTEGER (0..7)
+
+N-312 ::= ENUMERATED {
+ s1, s50, s100, s200, s400,
+ s600, s800, s1000 }
+
+N-312ext ::= ENUMERATED {
+ s2, s4, s10, s20 }
+
+N-312-r5 ::= ENUMERATED {
+ s1, s2, s4, s10, s20,
+ s50, s100, s200, s400,
+ s600, s800, s1000 }
+
+N-313 ::= ENUMERATED {
+ s1, s2, s4, s10, s20,
+ s50, s100, s200 }
+
+N-315 ::= ENUMERATED {
+ s1, s50, s100, s200, s400,
+ s600, s800, s1000 }
+
+N-315ext ::= ENUMERATED {
+ s2, s4, s10, s20 }
+
+N-315-r5 ::= ENUMERATED {
+ s1, s2, s4, s10, s20,
+ s50, s100, s200, s400,
+ s600, s800, s1000 }
+
+
+N-AccessFails ::= INTEGER (1..64)
+
+N-AP-RetransMax ::= INTEGER (1..64)
+
+NeighCellSI-AcquisitionCapability ::= SEQUENCE {
+ supportOfIntraFreqSIAcquisitionForHO ENUMERATED { true } OPTIONAL,
+ supportOfInterFreqSIAcquisitionForHO ENUMERATED { true } OPTIONAL,
+ supportOfE-UtraSIAcquisitionForHO ENUMERATED { true } OPTIONAL
+}
+
+NetworkAssistedGANSS-Supported-List ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE {
+ gANSS-Id ENUMERATED {
+ sbas, modernizedGPS, qzss, glonass, bds,
+ spare3, spare2, spare1 } OPTIONAL,
+ gANSS-Mode GANSS-Mode,
+ gANSS-SignalId GANSS-Signal-Id OPTIONAL,
+ supportForUE-GANSS-TimingOfCellFrames BOOLEAN,
+ supportForUE-GANSS-CarrierPhaseMeasurement BOOLEAN OPTIONAL
+}
+
+-- Each element in the NetworkAssistedGANSS-Supported-List-v860ext provides extension information
+-- to the corresponding element (position) in the NetworkAssistedGANSS-Supported-List
+NetworkAssistedGANSS-Supported-List-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE {
+ sbas-Ids BIT STRING (SIZE (8)) OPTIONAL,
+ gANSS-SignalIds BIT STRING (SIZE (8)) OPTIONAL,
+ non-native-AD-choices-supported ENUMERATED { true } OPTIONAL
+}
+
+NetworkAssistedGPS-Supported ::= ENUMERATED {
+ networkBased,
+ ue-Based,
+ bothNetworkAndUE-Based,
+ noNetworkAssistedGPS }
+
+NF-BO-AllBusy ::= INTEGER (0..31)
+
+NF-BO-NoAICH ::= INTEGER (0..31)
+
+NF-BO-Mismatch ::= INTEGER (0..127)
+
+NS-BO-Busy ::= INTEGER (0..63)
+
+NS-IP ::= INTEGER (0..28)
+
+P-TMSI-and-RAI-GSM-MAP ::= SEQUENCE {
+ p-TMSI P-TMSI-GSM-MAP,
+ rai RAI
+}
+
+PagingCause ::= ENUMERATED {
+ terminatingConversationalCall,
+ terminatingStreamingCall,
+ terminatingInteractiveCall,
+ terminatingBackgroundCall,
+ terminatingHighPrioritySignalling,
+ terminatingLowPrioritySignalling,
+ terminatingCauseUnknown,
+ spare
+ }
+
+PagingRecord ::= CHOICE {
+ cn-Identity SEQUENCE {
+ pagingCause PagingCause,
+ cn-DomainIdentity CN-DomainIdentity,
+ cn-pagedUE-Identity CN-PagedUE-Identity
+ },
+ utran-Identity SEQUENCE {
+ u-RNTI U-RNTI,
+ cn-OriginatedPage-connectedMode-UE SEQUENCE {
+ pagingCause PagingCause,
+ cn-DomainIdentity CN-DomainIdentity,
+ pagingRecordTypeID PagingRecordTypeID
+ } OPTIONAL
+ }
+}
+
+PagingRecord2-r5 ::= CHOICE {
+ utran-SingleUE-Identity SEQUENCE {
+ u-RNTI U-RNTI,
+ cn-OriginatedPage-connectedMode-UE SEQUENCE {
+ pagingCause PagingCause,
+ cn-DomainIdentity CN-DomainIdentity,
+ pagingRecordTypeID PagingRecordTypeID
+ } OPTIONAL,
+ rrc-ConnectionReleaseInformation RRC-ConnectionReleaseInformation
+ },
+ utran-GroupIdentity SEQUENCE ( SIZE (1 .. maxURNTI-Group) ) OF
+ GroupIdentityWithReleaseInformation
+}
+
+PagingRecordList ::= SEQUENCE (SIZE (1..maxPage1)) OF
+ PagingRecord
+
+PagingRecord2List-r5 ::= SEQUENCE (SIZE (1..maxPage1)) OF
+ PagingRecord2-r5
+
+PDCP-Capability ::= SEQUENCE {
+ losslessSRNS-RelocationSupport BOOLEAN,
+ -- If present, the "maxHcContextSpace" in the IE "PDCP-Capability-r5-ext" overrides the
+ -- "supported" value in this IE. The value in this IE may be used by a pre-REL-5 UTRAN.
+ supportForRfc2507 CHOICE {
+ notSupported NULL,
+ supported MaxHcContextSpace
+ }
+}
+
+PDCP-Capability-r4-ext ::= SEQUENCE {
+ supportForRfc3095 CHOICE {
+ notSupported NULL,
+ supported SEQUENCE {
+ maxROHC-ContextSessions MaxROHC-ContextSessions-r4 DEFAULT s16,
+ reverseCompressionDepth INTEGER (0..65535) DEFAULT 0
+ }
+ }
+}
+
+PDCP-Capability-r5-ext ::= SEQUENCE {
+ supportForRfc3095ContextRelocation BOOLEAN,
+ maxHcContextSpace MaxHcContextSpace-r5-ext OPTIONAL
+}
+
+PDCP-Capability-r5-ext2 ::= SEQUENCE {
+ losslessDLRLC-PDUSizeChange ENUMERATED { true } OPTIONAL
+}
+
+PDCP-Capability-v770ext ::= SEQUENCE {
+ supportForCSVoiceoverHSPA ENUMERATED { true } OPTIONAL
+}
+
+PhysicalChannelCapability ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD,
+ uplinkPhysChCapability UL-PhysChCapabilityFDD
+ } OPTIONAL,
+ -- tddPhysChCapability describes the 3.84Mcps TDD physical channel capability
+ tddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-v770ext ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-v770ext,
+ uplinkPhysChCapability UL-PhysChCapabilityFDD-v770ext
+ } OPTIONAL,
+ tddPhysChCapability-384 SEQUENCE {
+ -- No TDD384 DL physical channel capability extension
+ uplinkPhysChCapability UL-PhysChCapabilityTDD-384-v770ext
+ } OPTIONAL,
+ tddPhysChCapability-768 SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD-768,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD-768
+ } OPTIONAL,
+ tddPhysChCapability-128 SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD-128-v770ext,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD-128-v770ext
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-v860ext ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-v860ext
+ } OPTIONAL,
+ tddPhysChCapability-128 SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD-128-v860ext
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-v920ext ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-v920ext,
+ uplinkPhysChCapability UL-PhysChCapabilityFDD-v920ext
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-va40ext ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-va40ext
+ } OPTIONAL,
+ tddPhysChCapability-128 SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityInfoTDD-128-va40ext,
+ uplinkPhysChCapability UL-PhysChCapabilityInfoTDD-128-va40ext
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-vb50ext ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-vb50ext,
+ uplinkPhysChCapability UL-PhysChCapabilityFDD-vb50ext
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-vb80ext ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-vb80ext
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-vc50ext ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-vc50ext OPTIONAL,
+ uplinkPhysChCapability UL-PhysChCapabilityFDD-vc50ext OPTIONAL
+ } OPTIONAL,
+ tddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityInfoTDD-128-vc50ext
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-vdxyext ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-vdxyext OPTIONAL,
+ uplinkPhysChCapability UL-PhysChCapabilityFDD-vdxyext OPTIONAL
+ } OPTIONAL
+}
+
+PhysicalChannelCapabilityInfo-v770ext ::= SEQUENCE {
+ tddPhysChCapability-768 SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityInfoTDD-768,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD
+ } OPTIONAL,
+ tddPhysChCapability-128 SEQUENCE {
+ uplinkPhysChCapability UL-PhysChCapabilityInfoTDD-128-v770ext
+ } OPTIONAL
+}
+
+-- PhysicalChannelCapability-LCR-r4 describes the 1.28Mcps TDD physical channel capability
+PhysicalChannelCapability-LCR-r4 ::= SEQUENCE {
+ tdd128-PhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD-LCR-r4,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD-LCR-r4
+ } OPTIONAL
+}
+
+-- PhysicalChannelCapability-hspdsch-r5 describes the HS-PDSCH physical channel capability
+PhysicalChannelCapability-hspdsch-r5 ::= SEQUENCE {
+ fdd-hspdsch CHOICE {
+ supported SEQUENCE {
+ -- hsdsch-physical-layer-category values shall be restricted to the range [1..12]
+ -- even if the UE physical capability category is above 12.
+ hsdsch-physical-layer-category HSDSCH-physical-layer-category,
+ -- dummy and dummy2 are not used in this version of the specification
+ -- and if received they should be ignored.
+ dummy BOOLEAN,
+ dummy2 BOOLEAN
+ },
+ unsupported NULL
+ },
+ tdd384-hspdsch CHOICE {
+ supported HSDSCH-physical-layer-category,
+ unsupported NULL
+ },
+ tdd128-hspdsch CHOICE {
+ supported HSDSCH-physical-layer-category,
+ unsupported NULL
+ }
+}
+
+PNBSCH-Allocation-r4 ::= SEQUENCE {
+ numberOfRepetitionsPerSFNPeriod ENUMERATED {
+ c2, c3, c4, c5, c6, c7, c8, c9, c10,
+ c12, c14, c16, c18, c20, c24, c28, c32,
+ c36, c40, c48, c56, c64, c72, c80 }
+}
+
+Pre-RedirectionInfo ::= SEQUENCE {
+ supportEUTRA-FDD BOOLEAN,
+ supportEUTRA-TDD BOOLEAN
+}
+
+ProtocolErrorCause ::= ENUMERATED {
+ asn1-ViolationOrEncodingError,
+ messageTypeNonexistent,
+ messageNotCompatibleWithReceiverState,
+ ie-ValueNotComprehended,
+ informationElementMissing,
+ messageExtensionNotComprehended,
+ spare2, spare1 }
+
+ProtocolErrorIndicator ::= ENUMERATED {
+ noError, errorOccurred }
+
+ProtocolErrorIndicatorWithMoreInfo ::=
+ CHOICE {
+ noError NULL,
+ errorOccurred SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ protocolErrorInformation ProtocolErrorInformation
+ }
+}
+
+ProtocolErrorMoreInformation ::= SEQUENCE {
+ diagnosticsType CHOICE {
+ type1 CHOICE {
+ asn1-ViolationOrEncodingError NULL,
+ messageTypeNonexistent NULL,
+ messageNotCompatibleWithReceiverState
+ IdentificationOfReceivedMessage,
+ ie-ValueNotComprehended IdentificationOfReceivedMessage,
+ conditionalInformationElementError IdentificationOfReceivedMessage,
+ messageExtensionNotComprehended IdentificationOfReceivedMessage,
+ spare1 NULL,
+ spare2 NULL
+ },
+ spare NULL
+ }
+}
+
+RadioFrequencyBandEUTRA ::= INTEGER (1..64)
+
+RadioFrequencyBandEUTRAExt ::= INTEGER (65..256)
+
+RadioFrequencyBandEUTRAExt2 ::= INTEGER (1..256)
+
+RadioFrequencyBandFDD ::= ENUMERATED {
+ -- fdd2100, fdd1900, fdd1800 correspond to Band I, Band II and Band III respectively
+ fdd2100,
+ fdd1900,
+ fdd1800,
+ bandVI,
+ bandIV,
+ bandV,
+ bandVII,
+ extension-indicator }
+
+RadioFrequencyBandFDD2 ::= ENUMERATED {
+ bandVIII,
+ bandIX,
+ bandX,
+ bandXI,
+ bandXII,
+ bandXIII,
+ bandXIV,
+ bandXV,
+ bandXVI,
+ bandXVII,
+ bandXVIII,
+ bandXIX,
+ bandXX,
+ bandXXI,
+ bandXXII,
+ extension-indicator }
+
+RadioFrequencyBandFDD3 ::= ENUMERATED {spare64, spare63, bandXXV, bandXXVI, spare60, spare59, spare58, spare57, spare56, bandXXXII, spare54, spare53, spare52, spare51, spare50, spare49, spare48, spare47, spare46, spare45, spare44, spare43, spare42, spare41, spare40, spare39, spare38, spare37, spare36, spare35, spare34, spare33, spare32, spare31, spare30, spare29, spare28, spare27, spare26, spare25, spare24, spare23, spare22, spare21, spare20, spare19, spare18, spare17, spare16, spare15, spare14, spare13, spare12, spare11, spare10, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, extension-indicator }
+
+RadioFrequencyBandTDDList ::= ENUMERATED {
+ a, b, c, ab, ac, bc, abc, spare }
+
+RadioFrequencyBandTDDList-r7 ::= ENUMERATED {
+ a, b, c, d, ab, ac, ad, bc, bd, cd, abc, abd, acd, bcd,
+ abcd, notabcd }
+
+RadioFrequencyBandTDDext ::= ENUMERATED {
+ e, f, g, h, i, j, k, l, m, n, o, p, spare4, spare3,
+ spare2, spare1 }
+
+RadioFrequencyBandTDDextList ::= SEQUENCE (SIZE (1..maxFreqBandsTDD-ext)) OF
+ RadioFrequencyBandTDDext
+
+RadioFrequencyBandTDD ::= ENUMERATED {
+ a, b, c, d }
+
+RadioFrequencyBandTDD-r10 ::= ENUMERATED {
+ a, b, c, d, e, f, spare2, spare1 }
+
+RadioFrequencyBandGSM ::= ENUMERATED {
+ gsm450,
+ gsm480,
+ gsm850,
+ gsm900P,
+ gsm900E,
+ gsm1800,
+ gsm1900,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1}
+
+Rb-timer-indicator ::= SEQUENCE {
+ t314-expired BOOLEAN,
+ t315-expired BOOLEAN }
+
+Re-EstablishmentTimer ::= ENUMERATED {
+ useT314, useT315
+}
+
+RedirectionInfo ::= CHOICE {
+ frequencyInfo FrequencyInfo,
+ interRATInfo InterRATInfo
+}
+
+RedirectionInfo-r6 ::= CHOICE {
+ frequencyInfo FrequencyInfo,
+ interRATInfo InterRATInfo-r6
+}
+
+RedirectionInfo-v860ext ::= CHOICE {
+ -- CHOICE frequencyInfo is provided in IE RedirectionInfo or IE RedirectionInfo-r6
+ frequencyInfo NULL,
+ interRATInfo InterRATInfo-v860ext
+}
+
+RejectionCause ::= ENUMERATED {
+ congestion,
+ unspecified }
+
+ReleaseCause ::= ENUMERATED {
+ normalEvent,
+ unspecified,
+ pre-emptiveRelease,
+ congestion,
+ re-establishmentReject,
+ directedsignallingconnectionre-establishment,
+ userInactivity,
+ spare }
+
+RF-Capability ::= SEQUENCE {
+ fddRF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClass,
+ txRxFrequencySeparation TxRxFrequencySeparation
+ } OPTIONAL,
+ tddRF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClass,
+ radioFrequencyTDDBandList RadioFrequencyBandTDDList,
+ chipRateCapability ChipRateCapability
+ } OPTIONAL
+}
+
+RF-Capability-r4-ext ::= SEQUENCE {
+ tddRF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClass,
+ radioFrequencyBandTDDList RadioFrequencyBandTDDList,
+ chipRateCapability ChipRateCapability
+ } OPTIONAL
+}
+
+RF-Capability-v770ext ::= SEQUENCE {
+ -- If TDD384 and/or TDD128 RF capability is indicated in IEs 'RF-Capability' or
+ -- 'RF-Capability-r4-ext', the corresponding IE 'RadioFrequencyBandTDDList-r7' shall
+ -- be included in this IE.
+ tdd384RF-Capability RadioFrequencyBandTDDList-r7 OPTIONAL,
+ tdd768RF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClass,
+ radioFrequencyBandTDDList RadioFrequencyBandTDDList-r7
+ -- The element 'chipRateCapability' = 'mcps7-68'
+ } OPTIONAL,
+ tdd128RF-Capability RadioFrequencyBandTDDList-r7 OPTIONAL
+}
+
+RF-Capability-v860ext ::= SEQUENCE {
+ tdd128RF-Capability RadioFrequencyBandTDDextList OPTIONAL,
+ tdd384RF-Capability RadioFrequencyBandTDDextList OPTIONAL,
+ tdd768RF-Capability RadioFrequencyBandTDDextList OPTIONAL
+}
+
+RF-Capability-vaa0ext ::= SEQUENCE {
+ supportOfMFBI ENUMERATED { true } OPTIONAL
+}
+
+RLC-Capability ::= SEQUENCE {
+ -- If present, the "totalRLC-AM-BufferSize" in the IE "RLC-Capability-r5-ext" overrides the
+ -- corresponding value in this IE. The value in this IE may be used by a pre-REL-5 UTRAN.
+ totalRLC-AM-BufferSize TotalRLC-AM-BufferSize,
+ maximumRLC-WindowSize MaximumRLC-WindowSize,
+ maximumAM-EntityNumber MaximumAM-EntityNumberRLC-Cap
+}
+
+RLC-Capability-r5-ext ::= SEQUENCE {
+ totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-r5-ext OPTIONAL
+}
+
+RLC-Capability-v770ext ::= SEQUENCE {
+ supportOfTwoLogicalChannel BOOLEAN
+}
+
+RLC-Capability-v920ext ::= SEQUENCE {
+ totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-v920ext OPTIONAL
+}
+
+RLC-Capability-va40ext ::= SEQUENCE {
+ totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-va40ext OPTIONAL
+}
+
+RLC-Capability-vb50ext ::= SEQUENCE {
+ totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-vb50ext OPTIONAL
+}
+
+RRC-ConnectionReleaseInformation ::= CHOICE {
+ noRelease NULL,
+ release SEQUENCE {
+ releaseCause ReleaseCause
+ }
+}
+
+RRC-MessageSequenceNumber ::= INTEGER (0..15)
+
+
+RRC-MessageSequenceNumberList ::= SEQUENCE (SIZE (4..5)) OF
+ RRC-MessageSequenceNumber
+
+RRC-StateIndicator ::= ENUMERATED {
+ cell-DCH, cell-FACH, cell-PCH, ura-PCH }
+
+RRC-TransactionIdentifier ::= INTEGER (0..3)
+
+RSR-VCC-Info ::= SEQUENCE {
+ nonce BIT STRING (SIZE (128)) OPTIONAL,
+ ims-Information OCTET STRING (SIZE (1.. 32))
+}
+
+S-RNTI ::= BIT STRING (SIZE (20))
+
+S-RNTI-2 ::= BIT STRING (SIZE (10))
+
+SecurityCapability ::= SEQUENCE {
+ cipheringAlgorithmCap BIT STRING {
+ -- For each bit value "0" means false/ not supported
+ spare15(0),
+ spare14(1),
+ spare13(2),
+ spare12(3),
+ spare11(4),
+ spare10(5),
+ spare9(6),
+ spare8(7),
+ spare7(8),
+ spare6(9),
+ spare5(10),
+ spare4(11),
+ spare3(12),
+ uea2(13),
+ uea1(14),
+ uea0(15)
+ } (SIZE (16)),
+ integrityProtectionAlgorithmCap BIT STRING {
+ -- For each bit value "0" means false/ not supported
+ spare15(0),
+ spare14(1),
+ spare13(2),
+ spare12(3),
+ spare11(4),
+ spare10(5),
+ spare9(6),
+ spare8(7),
+ spare7(8),
+ spare6(9),
+ spare5(10),
+ spare4(11),
+ spare3(12),
+ uia2(13),
+ uia1(14),
+ spare0(15)
+ } (SIZE (16))
+}
+
+SecondaryServingEDCHCell-Info ::= SEQUENCE {
+ primary-E-RNTI E-RNTI OPTIONAL,
+ secondary-E-RNTI E-RNTI OPTIONAL
+ }
+
+SecondaryEDCH-Info-Common ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ scramblingCodeType ScramblingCodeType,
+ scramblingCodeNumber UL-ScramblingCode,
+ ms2-SchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL,
+ servingGrant SEQUENCE {
+ primary-Secondary-GrantSelector ENUMERATED { primary, secondary }
+ } OPTIONAL,
+ minReduced-E-DPDCH-GainFactor MinReduced-E-DPDCH-GainFactor OPTIONAL,
+ e-DCH-minimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL,
+ dpcchPowerOffset-SecondaryULFrequency INTEGER(0..7),
+ pc-Preamble PC-Preamble
+}
+
+SecondaryEDCH-Info-Common-r12 ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ scramblingCodeType ScramblingCodeType,
+ scramblingCodeNumber UL-ScramblingCode,
+ ms2-SchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL,
+ servingGrant SEQUENCE {
+ primary-Secondary-GrantSelector ENUMERATED { primary, secondary }
+ } OPTIONAL,
+ minReduced-E-DPDCH-GainFactor MinReduced-E-DPDCH-GainFactor OPTIONAL,
+ e-DCH-minimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL,
+ minimumTEBS-threshold MinimumTEBS-threshold OPTIONAL,
+ implicitGrantHandling ENUMERATED { true } OPTIONAL,
+ dpcchPowerOffset-SecondaryULFrequency INTEGER(0..7),
+ pc-Preamble PC-Preamble,
+ ue-DPCCHPowerResetAfterDTXOnSecUplink UE-DPCCHPowerResetAfterDTXOnSecUplink OPTIONAL
+}
+
+Serving-HSDSCH-CellInformation ::= SEQUENCE {
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode,
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ dl-hspdsch-Information DL-HSPDSCH-Information OPTIONAL,
+ harqInfo HARQ-Info OPTIONAL,
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL
+}
+
+Serving-HSDSCH-CellInformation-r7 ::= SEQUENCE {
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode,
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ dl-hspdsch-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL
+}
+
+Serving-HSDSCH-CellInformation-r8 ::= SEQUENCE {
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode,
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ dl-hspdsch-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL
+}
+
+Serving-HSDSCH-CellInformation-r9 ::= SEQUENCE {
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode,
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ dl-hspdsch-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL
+}
+
+Serving-HSDSCH-CellInformation-r11 ::= SEQUENCE {
+ deltaACK DeltaACK-r11 OPTIONAL,
+ deltaNACK DeltaNACK-r11 OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode,
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ dl-hspdsch-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ harqInfo HARQ-Info-r11 OPTIONAL,
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL,
+ mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL
+}
+
+Serving-HSDSCH-CellInformation-r12 ::= SEQUENCE {
+ deltaACK DeltaACK-r11 OPTIONAL,
+ deltaNACK DeltaNACK-r11 OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode,
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ dl-hspdsch-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ harqInfo HARQ-Info-r11 OPTIONAL,
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL,
+ mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL
+}
+
+SimultaneousSCCPCH-DPCH-Reception ::= CHOICE {
+ notSupported NULL,
+ supported SEQUENCE {
+ maxNoSCCPCH-RL MaxNoSCCPCH-RL,
+ -- simultaneousSCCPCH-DPCH-DPDCH-Reception is applicable only if
+ -- the IE Support of PDSCH = TRUE
+ -- Note: the reference to DPDCH in the element name below is incorrect (see tabular). The
+ -- name is not changed, to keep it aligned with R99.
+ simultaneousSCCPCH-DPCH-DPDCH-Reception BOOLEAN
+ }
+}
+
+SRNC-Identity ::= BIT STRING (SIZE (12))
+
+SR-VCC-Info ::= SEQUENCE {
+ nonce BIT STRING (SIZE (128)) OPTIONAL
+}
+
+SR-VCC-SecurityRABInfo-v860ext ::= SEQUENCE {
+ sr-vcc-Info SR-VCC-Info,
+ rab-InfoReplace RAB-InfoReplace
+}
+
+START-Value ::= BIT STRING (SIZE (20))
+
+STARTList ::= SEQUENCE (SIZE (1..maxCNdomains)) OF
+ STARTSingle
+
+STARTSingle ::= SEQUENCE {
+ cn-DomainIdentity CN-DomainIdentity,
+ start-Value START-Value
+}
+
+SystemSpecificCapUpdateReq ::= ENUMERATED {
+ gsm }
+
+SystemSpecificCapUpdateReq-v590ext ::= ENUMERATED {
+ geranIu }
+
+SystemSpecificCapUpdateReq-r5 ::= ENUMERATED {
+ gsm, geranIu }
+
+SystemSpecificCapUpdateReq-r8 ::= ENUMERATED {
+ gsm, geranIu, eutra, spare5,
+ spare4, spare3, spare2, spare1 }
+
+SystemSpecificCapUpdateReqList ::= SEQUENCE (SIZE (1..maxSystemCapability)) OF
+ SystemSpecificCapUpdateReq
+
+SystemSpecificCapUpdateReqList-r5 ::= SEQUENCE (SIZE (1..maxSystemCapability)) OF
+ SystemSpecificCapUpdateReq-r5
+
+SystemSpecificCapUpdateReqList-r8 ::= SEQUENCE (SIZE (1..maxSystemCapability)) OF
+ SystemSpecificCapUpdateReq-r8
+
+T-300 ::= ENUMERATED {
+ ms100, ms200, ms400, ms600, ms800,
+ ms1000, ms1200, ms1400, ms1600,
+ ms1800, ms2000, ms3000, ms4000,
+ ms6000, ms8000 }
+
+T-301 ::= ENUMERATED {
+ ms100, ms200, ms400, ms600, ms800,
+ ms1000, ms1200, ms1400, ms1600,
+ ms1800, ms2000, ms3000, ms4000,
+ ms6000, ms8000, spare }
+
+T-302 ::= ENUMERATED {
+ ms100, ms200, ms400, ms600, ms800,
+ ms1000, ms1200, ms1400, ms1600,
+ ms1800, ms2000, ms3000, ms4000,
+ ms6000, ms8000, spare }
+
+T-304 ::= ENUMERATED {
+ ms100, ms200, ms400,
+ ms1000, ms2000, spare3, spare2, spare1 }
+
+T-305 ::= ENUMERATED {
+ noUpdate, m5, m10, m30,
+ m60, m120, m360, m720 }
+
+T-307 ::= ENUMERATED {
+ s5, s10, s15, s20,
+ s30, s40, s50, spare }
+
+T-308 ::= ENUMERATED {
+ ms40, ms80, ms160, ms320 }
+
+T-309 ::= INTEGER (1..8)
+
+T-310 ::= ENUMERATED {
+ ms40, ms80, ms120, ms160,
+ ms200, ms240, ms280, ms320 }
+
+T-311 ::= ENUMERATED {
+ ms250, ms500, ms750, ms1000,
+ ms1250, ms1500, ms1750, ms2000 }
+
+-- The value 0 for T-312 is not used in this version of the specification
+T-312 ::= INTEGER (0..15)
+
+T-313 ::= INTEGER (0..15)
+
+T-314 ::= ENUMERATED {
+ s0, s2, s4, s6, s8,
+ s12, s16, s20 }
+
+T-315 ::= ENUMERATED {
+ s0, s10, s30, s60, s180,
+ s600, s1200, s1800 }
+
+T-316 ::= ENUMERATED {
+ s0, s10, s20, s30, s40,
+ s50, s-inf, spare }
+
+-- All the values are changed to "infinity" in Rel-5
+T-317 ::= ENUMERATED {
+ infinity0, infinity1, infinity2, infinity3, infinity4,
+ infinity5, infinity6, infinity7}
+
+T-318 ::= ENUMERATED {
+ ms250, ms500, ms750, ms1000, ms1250, ms1500,
+ ms1750, ms2000, ms3000, ms4000, ms6000, ms8000,
+ ms10000, ms12000, ms16000 }
+
+T-319 ::= ENUMERATED {
+ ms80, ms160, ms320, ms640, ms1280, ms2560, ms5120 }
+
+T-321 ::= ENUMERATED {
+ ms100, ms200, ms400, ms800 }
+
+T-322 ::= ENUMERATED { m5, m10, m20, m30, m60,
+ m120, m180, spare1 }
+
+T-323 ::= ENUMERATED { s0, s5, s10, s20, s30, s60, s90, s120 }
+
+T-328 ::= ENUMERATED { ms20, ms40, ms60, ms80 }
+
+T-329 ::= ENUMERATED { s05p, s1, s2, s4 }
+T-330 ::= ENUMERATED { m5, m10, m20, m30,
+ m60, m120, m180, spare1 }
+
+T-CPCH ::= ENUMERATED {
+ ct0, ct1 }
+
+TMSI-and-LAI-GSM-MAP ::= SEQUENCE {
+ tmsi TMSI-GSM-MAP,
+ lai LAI
+}
+
+TMSI-DS-41 ::= OCTET STRING (SIZE (2..17))
+
+TotalRLC-AM-BufferSize ::= ENUMERATED {
+ dummy, kb10, kb50, kb100,
+ kb150, kb500, kb1000, spare }
+
+TotalRLC-AM-BufferSize-r5-ext ::= ENUMERATED {
+ kb200, kb300, kb400, kb750 }
+
+TotalRLC-AM-BufferSize-v920ext ::= ENUMERATED {
+ kb1150, kb1250 }
+
+TotalRLC-AM-BufferSize-va40ext ::= ENUMERATED {
+ kb1500, kb1800, kb2300, kb2550 }
+
+TotalRLC-AM-BufferSize-vb50ext ::= ENUMERATED {
+ kb3400, kb3500, kb4400, kb4500, kb5000, spare3, spare2, spare1 }
+
+-- Actual value TransmissionProbability = IE value * 0.125
+TransmissionProbability ::= INTEGER (1..8)
+
+TransportChannelCapability ::= SEQUENCE {
+ dl-TransChCapability DL-TransChCapability,
+ ul-TransChCapability UL-TransChCapability
+}
+
+TurboSupport ::= CHOICE {
+ notSupported NULL,
+ supported MaxNoBits
+}
+
+-- Values defined as spare shall not be sent in this version of the protocol. If a spare value is
+-- received, it should be interpreted as 'default-RxTX-sparation'.
+TxRxFrequencySeparation ::= ENUMERATED {
+ default-TxRx-separation, spare2, spare1 }
+
+U-RNTI ::= SEQUENCE {
+ srnc-Identity SRNC-Identity,
+ s-RNTI S-RNTI
+}
+
+U-RNTI-Group ::= CHOICE {
+-- TABULAR: not following the tabular strictly, but this will most likely save bits
+ all NULL,
+ u-RNTI-BitMaskIndex-b1 BIT STRING (SIZE (31)),
+ u-RNTI-BitMaskIndex-b2 BIT STRING (SIZE (30)),
+ u-RNTI-BitMaskIndex-b3 BIT STRING (SIZE (29)),
+ u-RNTI-BitMaskIndex-b4 BIT STRING (SIZE (28)),
+ u-RNTI-BitMaskIndex-b5 BIT STRING (SIZE (27)),
+ u-RNTI-BitMaskIndex-b6 BIT STRING (SIZE (26)),
+ u-RNTI-BitMaskIndex-b7 BIT STRING (SIZE (25)),
+ u-RNTI-BitMaskIndex-b8 BIT STRING (SIZE (24)),
+ u-RNTI-BitMaskIndex-b9 BIT STRING (SIZE (23)),
+ u-RNTI-BitMaskIndex-b10 BIT STRING (SIZE (22)),
+ u-RNTI-BitMaskIndex-b11 BIT STRING (SIZE (21)),
+ u-RNTI-BitMaskIndex-b12 BIT STRING (SIZE (20)),
+ u-RNTI-BitMaskIndex-b13 BIT STRING (SIZE (19)),
+ u-RNTI-BitMaskIndex-b14 BIT STRING (SIZE (18)),
+ u-RNTI-BitMaskIndex-b15 BIT STRING (SIZE (17)),
+ u-RNTI-BitMaskIndex-b16 BIT STRING (SIZE (16)),
+ u-RNTI-BitMaskIndex-b17 BIT STRING (SIZE (15)),
+ u-RNTI-BitMaskIndex-b18 BIT STRING (SIZE (14)),
+ u-RNTI-BitMaskIndex-b19 BIT STRING (SIZE (13)),
+ u-RNTI-BitMaskIndex-b20 BIT STRING (SIZE (12)),
+ u-RNTI-BitMaskIndex-b21 BIT STRING (SIZE (11)),
+ u-RNTI-BitMaskIndex-b22 BIT STRING (SIZE (10)),
+ u-RNTI-BitMaskIndex-b23 BIT STRING (SIZE (9)),
+ u-RNTI-BitMaskIndex-b24 BIT STRING (SIZE (8)),
+ u-RNTI-BitMaskIndex-b25 BIT STRING (SIZE (7)),
+ u-RNTI-BitMaskIndex-b26 BIT STRING (SIZE (6)),
+ u-RNTI-BitMaskIndex-b27 BIT STRING (SIZE (5)),
+ u-RNTI-BitMaskIndex-b28 BIT STRING (SIZE (4)),
+ u-RNTI-BitMaskIndex-b29 BIT STRING (SIZE (3)),
+ u-RNTI-BitMaskIndex-b30 BIT STRING (SIZE (2)),
+ u-RNTI-BitMaskIndex-b31 BIT STRING (SIZE (1))
+}
+
+U-RNTI-Short ::= SEQUENCE {
+ srnc-Identity SRNC-Identity,
+ s-RNTI-2 S-RNTI-2
+}
+
+UE-AddPos-Supported-List ::= SEQUENCE (SIZE (1..maxAddPos)) OF UE-AddPos-element
+
+UE-AddPos-element ::= SEQUENCE{
+ addPos-ID ENUMERATED {barometricPressure, wlan, bt, mbs,
+ spare4, spare3, spare2, spare1 },
+ addPos-Mode AddPos-Mode
+}
+
+UE-BasedNetworkPerformanceMeasurementsParameters ::= SEQUENCE {
+ supportOfLoggedMeasurementsIdlePCH ENUMERATED { true } OPTIONAL
+}
+
+UE-CapabilityContainer-IEs ::= SEQUENCE {
+-- Container for transparent transfer of capability information not related to
+-- features for which early implementation is desired
+ ue-RadioAccessCapability-v690ext UE-RadioAccessCapability-v690ext,
+ ue-RATSpecificCapability-v690ext InterRAT-UE-RadioAccessCapability-v690ext OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v6b0ext UE-RadioAccessCapability-v6b0ext-IEs,
+ v6e0NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v6e0ext UE-RadioAccessCapability-v6e0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v770ext UE-RadioAccessCapability-v770ext-IEs,
+ v790NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v790ext UE-RadioAccessCapability-v790ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v860ext
+ UE-RadioAccessCapability-v860ext-IEs,
+ ue-RATSpecificCapability-v860ext
+ InterRAT-UE-RadioAccessCapability-v860ext OPTIONAL,
+ v880NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v880ext
+ UE-RadioAccessCapability-v880ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v890ext
+ UE-RadioAccessCapability-v890ext-IEs,
+ v920NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v920ext
+ UE-RadioAccessCapability-v920ext-IEs,
+ v970NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v970ext
+ UE-RadioAccessCapability-v970ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-va40ext
+ UE-RadioAccessCapability-va40ext-IEs,
+ va60NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-va60ext
+ UE-RadioAccessCapability-va60ext-IEs,
+ va80NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-va80ext
+ UE-RadioAccessCapability-va80ext-IEs,
+ laterNonCriticalExtensions
+ UE-RadioAccessCapability-LaterNonCriticalExtensions OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+UE-RadioAccessCapability-v6b0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForSIB11bis ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v6e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForFDPCH ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ pdcp-Capability PDCP-Capability-v770ext OPTIONAL,
+ rlc-Capability RLC-Capability-v770ext,
+ rf-Capability RF-Capability-v770ext OPTIONAL,
+ physicalChannelCapability PhysicalChannelCapability-v770ext,
+ multiModeRAT-Capability MultiModeRAT-Capability-v770ext,
+ ue-PositioningCapability UE-PositioningCapability-v770ext,
+ mac-ehsSupport ENUMERATED { true } OPTIONAL,
+ ue-specificCapabilityInformation UE-SpecificCapabilityInformation-LCRTDD OPTIONAL
+}
+
+UE-RadioAccessCapability-v790ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForEDPCCHPowerBoosting ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v860ext-IEs ::= SEQUENCE {
+ -- UE radio access capability
+ rf-Capability RF-Capability-v860ext OPTIONAL,
+ physicalChannelCapability PhysicalChannelCapability-v860ext,
+ multiModeRAT-Capability MultiModeRAT-Capability-v860ext,
+ ue-PositioningCapability UE-PositioningCapability-v860ext,
+ measurementCapability MeasurementCapability-v860ext OPTIONAL,
+ measurementCapabilityTDD MeasurementCapabilityTDD OPTIONAL,
+ supportOfCommonEDCH ENUMERATED { true } OPTIONAL,
+ supportOfMACiis ENUMERATED { true } OPTIONAL,
+ supportOfSPSOperation ENUMERATED { true } OPTIONAL,
+ supportOfControlChannelDRXOperation ENUMERATED { true } OPTIONAL,
+ supportOfCSG ENUMERATED { true } OPTIONAL,
+ -- UE radio access capability extension
+ ue-RadioAccessCapabBandFDDList3 UE-RadioAccessCapabBandFDDList3 OPTIONAL
+}
+
+UE-RadioAccessCapability-v880ext-IEs ::= SEQUENCE {
+ -- UE radio access capability
+ supportForPriorityReselectionInUTRAN ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v890ext-IEs ::= SEQUENCE {
+ -- UE radio access capability
+ supportCellSpecificTxDiversityinDC-Operation ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v920ext-IEs ::= SEQUENCE {
+ -- UE physical channel capability,
+ ue-RadioAccessCapabBandCombList UE-RadioAccessCapabBandCombList OPTIONAL,
+ physicalChannelCapability PhysicalChannelCapability-v920ext,
+ rlc-Capability RLC-Capability-v920ext,
+ supportOfenhancedTS0 ENUMERATED { true } OPTIONAL,
+ measurementCapability MeasurementCapability-v920ext OPTIONAL,
+ -- UE radio access capability
+ csgProximityIndicationCapability CSG-ProximityIndicationCapability OPTIONAL,
+ neighCellSI-AcquisitionCapability NeighCellSI-AcquisitionCapability OPTIONAL
+}
+
+UE-RadioAccessCapability-v970ext-IEs ::= SEQUENCE {
+ -- UE physical channel capability
+ ue-ExtendedMeasurementSupport ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v9c0ext-IEs ::= SEQUENCE {
+ -- UE voice over IMS related capability
+ voiceOverUTRA-PS-HS-Support ENUMERATED { true } OPTIONAL,
+ srvcc-SupportFromUTRA-to-UTRA ENUMERATED { true } OPTIONAL,
+ srvcc-SupportFromUTRA-to-GERAN ENUMERATED { true } OPTIONAL,
+ -- UE radio access capability
+ ue-supportMac-ehsWindowSizeExtension ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-LaterNonCriticalExtensions ::= SEQUENCE {
+ v9c0NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-v9c0ext UE-RadioAccessCapability-v9c0ext-IEs,
+ vaa0NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-vaa0ext UE-RadioAccessCapability-vaa0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-vb50ext UE-RadioAccessCapability-vb50ext-IEs,
+ vb70NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-vb70ext UE-RadioAccessCapability-vb70ext-IEs,
+ vae0NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-vae0ext UE-RadioAccessCapability-vae0ext-IEs,
+ vb80NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-vb80ext UE-RadioAccessCapability-vb80ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-vc50ext
+ UE-RadioAccessCapability-vc50ext-IEs,
+ vdxyNonCriticalExtensions SEQUENCE {
+ ue-RadioAccessCapability-vdxyext
+ UE-RadioAccessCapability-vdxyext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ }
+}
+
+
+UE-RadioAccessCapability-va40ext-IEs ::= SEQUENCE {
+ -- UE physical channel capability
+ ue-RadioAccessCapabBandCombList-va40ext UE-RadioAccessCapabBandCombList-va40ext OPTIONAL,
+ physicalChannelCapability PhysicalChannelCapability-va40ext,
+ rlc-Capability RLC-Capability-va40ext,
+ measurementCapability MeasurementCapability-va40ext OPTIONAL,
+ supportOfMUMIMO ENUMERATED { uplink, uplink-and-downlink } OPTIONAL,
+ supportForDualCellMimoInDifferentBands ENUMERATED { true } OPTIONAL,
+ ue-BasedNetworkPerformanceMeasurementsParameters
+ UE-BasedNetworkPerformanceMeasurementsParameters OPTIONAL,
+ supportOfUTRANANR ENUMERATED { true } OPTIONAL,
+ -- UE radio access capability extension
+ ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4 OPTIONAL
+}
+
+UE-RadioAccessCapability-va60ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4-va60ext OPTIONAL
+}
+
+UE-RadioAccessCapability-va80ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4-va80ext OPTIONAL
+}
+
+UE-RadioAccessCapability-vaa0ext-IEs ::= SEQUENCE {
+ supportOfUMRLCre-establish-via-reconfig ENUMERATED { true } OPTIONAL,
+ rf-capability RF-Capability-vaa0ext OPTIONAL
+}
+
+UE-RadioAccessCapability-vae0ext-IEs ::= SEQUENCE {
+ -- UE radio access capability
+ multiModeRAT-Capability MultiModeRAT-Capability-vae0ext OPTIONAL
+}
+
+UE-RadioAccessCapability-vb50ext-IEs ::= SEQUENCE {
+ multiModeRAT-Capability MultiModeRAT-Capability-vb50ext,
+ supportOfCommonERGCHBasedInterferenceControl ENUMERATED { true } OPTIONAL,
+ supportOfFallbackToR99PRACH ENUMERATED { true } OPTIONAL,
+ supportOfConcurrentDeployment ENUMERATED { true } OPTIONAL,
+ supportOfTTIalignmentAndPerHARQProcess ENUMERATED { true } OPTIONAL,
+ -- UE physical channel capability
+ ue-RadioAccessCapabBandCombList-vb50ext UE-RadioAccessCapabBandCombList-vb50ext OPTIONAL,
+ multiflowCapabBandCombList MultiflowCapabBandCombList OPTIONAL,
+ physicalChannelCapability PhysicalChannelCapability-vb50ext,
+ rlc-Capability RLC-Capability-vb50ext,
+ multiflowCapability MultiflowCapability OPTIONAL,
+ -- UE radio access capability extension
+ ue-RadioAccessCapabBandFDDList6 UE-RadioAccessCapabBandFDDList6 OPTIONAL,
+ -- Measurement capability
+ measurementCapability MeasurementCapability-vb50ext OPTIONAL,
+ measurementCapabilityTDD MeasurementCapabilityTDD-vb50ext OPTIONAL,
+ -- UE voice over IMS related capability
+ rsrvcc-SupportFromUTRA-CS-to-EUTRA-FDD ENUMERATED { true } OPTIONAL,
+ rsrvcc-SupportFromUTRA-CS-to-EUTRA-TDD ENUMERATED { true } OPTIONAL,
+ supportOfHSDPCCHPowerOffsetExtension ENUMERATED { true } OPTIONAL,
+ supportOfSTTDOnDLControlChannelsWhenMultiflowOperationIsActive ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-vb70ext-IEs ::= SEQUENCE {
+ measurementCapability MeasurementCapability-vb70ext OPTIONAL,
+ ue-RadioAccessCapabBandFDDList7 UE-RadioAccessCapabBandFDDList7 OPTIONAL
+}
+
+UE-RadioAccessCapability-vb80ext-IEs ::= SEQUENCE {
+ -- UE physical channel capability
+ physicalChannelCapability PhysicalChannelCapability-vb80ext
+}
+
+UE-RadioAccessCapability-vc50ext-IEs ::= SEQUENCE {
+ --the capability is for FDD only
+ measurementCapability MeasurementCapability-vc50ext OPTIONAL,
+ supportofDsacAndPpacInCellDch ENUMERATED { true } OPTIONAL,
+ supportOfMultiflowWithFTPICHFromAssisting ENUMERATED { true } OPTIONAL,
+ multiModeRAT-Capability MultiModeRAT-Capability-vc50ext OPTIONAL,
+ -- UE physical channel capability
+ physicalChannelCapability PhysicalChannelCapability-vc50ext OPTIONAL
+}
+
+UE-RadioAccessCapability-vdxyext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabBandCombList-vdxyext UE-RadioAccessCapabBandCombList-vdxyext OPTIONAL,
+ -- UE physical channel capability
+ physicalChannelCapability PhysicalChannelCapability-vdxyext OPTIONAL,
+ -- UE radio access capability
+ ue-PositioningCapability UE-PositioningCapability-vdxyext OPTIONAL
+}
+
+UE-ConnTimersAndConstants ::= SEQUENCE {
+-- Optional is used also for parameters for which the default value is the last one read in SIB1
+-- t-301 and n-301 should not be used by the UE in this version of the specification
+ t-301 T-301 DEFAULT ms2000,
+ n-301 N-301 DEFAULT 2,
+ t-302 T-302 DEFAULT ms4000,
+ n-302 N-302 DEFAULT 3,
+ t-304 T-304 DEFAULT ms2000,
+ n-304 N-304 DEFAULT 2,
+ t-305 T-305 DEFAULT m30,
+ t-307 T-307 DEFAULT s30,
+ t-308 T-308 DEFAULT ms160,
+ t-309 T-309 DEFAULT 5,
+ t-310 T-310 DEFAULT ms160,
+ n-310 N-310 DEFAULT 4,
+ t-311 T-311 DEFAULT ms2000,
+ t-312 T-312 DEFAULT 1,
+ -- n-312 shall be ignored if n-312 in UE-ConnTimersAndConstants-v3a0ext is present, and the
+ -- value of that element shall be used instead.
+ n-312 N-312 DEFAULT s1,
+ t-313 T-313 DEFAULT 3,
+ n-313 N-313 DEFAULT s20,
+ t-314 T-314 DEFAULT s12,
+ t-315 T-315 DEFAULT s180,
+ -- n-315 shall be ignored if n-315 in UE-ConnTimersAndConstants-v3a0ext is present, and the
+ -- value of that element shall be used instead.
+ n-315 N-315 DEFAULT s1,
+ t-316 T-316 DEFAULT s30,
+ t-317 T-317 DEFAULT infinity4
+}
+
+UE-ConnTimersAndConstants-v3a0ext ::= SEQUENCE {
+ n-312 N-312ext OPTIONAL,
+ n-315 N-315ext OPTIONAL
+}
+
+UE-ConnTimersAndConstants-r5 ::= SEQUENCE {
+-- Optional is used also for parameters for which the default value is the last one read in SIB1
+-- t-301 and n-301 should not be used by the UE in this version of the specification
+ t-301 T-301 DEFAULT ms2000,
+ n-301 N-301 DEFAULT 2,
+ t-302 T-302 DEFAULT ms4000,
+ n-302 N-302 DEFAULT 3,
+ t-304 T-304 DEFAULT ms2000,
+ n-304 N-304 DEFAULT 2,
+ t-305 T-305 DEFAULT m30,
+ t-307 T-307 DEFAULT s30,
+ t-308 T-308 DEFAULT ms160,
+ t-309 T-309 DEFAULT 5,
+ t-310 T-310 DEFAULT ms160,
+ n-310 N-310 DEFAULT 4,
+ t-311 T-311 DEFAULT ms2000,
+ t-312 T-312 DEFAULT 1,
+ n-312 N-312-r5 DEFAULT s1,
+ t-313 T-313 DEFAULT 3,
+ n-313 N-313 DEFAULT s20,
+ t-314 T-314 DEFAULT s12,
+ t-315 T-315 DEFAULT s180,
+ n-315 N-315-r5 DEFAULT s1,
+ t-316 T-316 DEFAULT s30,
+ t-317 T-317 DEFAULT infinity4
+}
+
+UE-ConnTimersAndConstants-v860ext ::= SEQUENCE {
+ t-323 T-323 OPTIONAL
+}
+
+UE-ConnTimersAndConstants-r11 ::= SEQUENCE {
+-- Optional is used also for parameters for which the default value is the last one read in SIB1
+-- t-301 and n-301 should not be used by the UE in this version of the specification
+ t-301 T-301 DEFAULT ms2000,
+ n-301 N-301 DEFAULT 2,
+ t-302 T-302 DEFAULT ms4000,
+ n-302 N-302 DEFAULT 3,
+ t-304 T-304 DEFAULT ms2000,
+ n-304 N-304 DEFAULT 2,
+ t-305 T-305 DEFAULT m30,
+ t-307 T-307 DEFAULT s30,
+ t-308 T-308 DEFAULT ms160,
+ t-309 T-309 DEFAULT 5,
+ t-310 T-310 DEFAULT ms160,
+ n-310 N-310 DEFAULT 4,
+ t-311 T-311 DEFAULT ms2000,
+ t-312 T-312 DEFAULT 1,
+ n-312 N-312-r5 DEFAULT s1,
+ t-313 T-313 DEFAULT 3,
+ n-313 N-313 DEFAULT s20,
+ t-314 T-314 DEFAULT s12,
+ t-315 T-315 DEFAULT s180,
+ n-315 N-315-r5 DEFAULT s1,
+ t-316 T-316 DEFAULT s30,
+ t-317 T-317 DEFAULT infinity4,
+ t-323 T-323 OPTIONAL
+}
+
+UE-GANSSPositioning-Capability ::= SEQUENCE {
+ networkAssistedGANSS-supportedList NetworkAssistedGANSS-Supported-List OPTIONAL
+}
+
+UE-GANSSPositioning-Capability-v860ext-IEs ::= SEQUENCE {
+ networkAssistedGANSS-supportedList NetworkAssistedGANSS-Supported-List-v860ext OPTIONAL
+}
+
+UE-IdleTimersAndConstants ::= SEQUENCE {
+ t-300 T-300,
+ n-300 N-300,
+ t-312 T-312,
+ -- n-312 shall be ignored if n-312 in UE-IdleTimersAndConstants-v3a0ext is present, and the
+ -- value of that element shall be used instead.
+ n-312 N-312
+}
+
+UE-HSPA-Identities-r6 ::= SEQUENCE {
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL
+}
+
+UE-IdleTimersAndConstants-v3a0ext ::= SEQUENCE {
+ n-312 N-312ext OPTIONAL
+}
+
+UE-MultiModeRAT-Capability ::= SEQUENCE {
+ multiRAT-CapabilityList MultiRAT-Capability,
+ multiModeCapability MultiModeCapability
+}
+
+UE-PowerClass ::= INTEGER (1..4)
+
+UE-PowerClassExt ::= ENUMERATED {class1, class2, class3, class4,
+ spare4, spare3, spare2, spare1 }
+
+UE-RadioAccessCapability ::= SEQUENCE {
+ -- UE-RadioAccessCapability is compatible with R99, although accessStratumReleaseIndicator
+ -- is removed from this IE, since its encoding did not result in bits. The
+ -- accessStratumReleaseIndicator is provided in the relevant REL-4 extension IEs.
+ pdcp-Capability PDCP-Capability,
+ rlc-Capability RLC-Capability,
+ transportChannelCapability TransportChannelCapability,
+ rf-Capability RF-Capability,
+ physicalChannelCapability PhysicalChannelCapability,
+ ue-MultiModeRAT-Capability UE-MultiModeRAT-Capability,
+ securityCapability SecurityCapability,
+ ue-positioning-Capability UE-Positioning-Capability,
+ measurementCapability MeasurementCapability OPTIONAL
+}
+
+UE-RadioAccessCapabilityInfo ::= SEQUENCE {
+ ue-RadioAccessCapability UE-RadioAccessCapability,
+ ue-RadioAccessCapability-v370ext UE-RadioAccessCapability-v370ext
+}
+
+UE-RadioAccessCapability-v370ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList UE-RadioAccessCapabBandFDDList
+}
+
+UE-RadioAccessCapability-v380ext ::= SEQUENCE {
+ ue-PositioningCapabilityExt-v380 UE-PositioningCapabilityExt-v380
+}
+
+UE-RadioAccessCapability-v3a0ext ::= SEQUENCE {
+ ue-PositioningCapabilityExt-v3a0 UE-PositioningCapabilityExt-v3a0
+}
+
+UE-RadioAccessCapability-v3g0ext ::= SEQUENCE {
+ ue-PositioningCapabilityExt-v3g0 UE-PositioningCapabilityExt-v3g0
+}
+
+UE-RadioAccessCapability-v650ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList2 UE-RadioAccessCapabBandFDDList2,
+ -- This IE shall be included if the UE also supports Band I-VII
+ ue-RadioAccessCapabBandFDDList-ext UE-RadioAccessCapabBandFDDList-ext OPTIONAL
+}
+
+UE-RadioAccessCapability-v690ext ::= SEQUENCE {
+ physicalchannelcapability-edch PhysicalChannelCapability-edch-r6,
+ -- TABULAR: deviceType is MD in tabular description
+ -- Default value is 'doesBenefitFromBatteryConsumptionOptimisation'
+ deviceType ENUMERATED { doesNotBenefitFromBatteryConsumptionOptimisation } OPTIONAL
+}
+
+UE-RadioAccessCapability-v7e0ext ::= SEQUENCE {
+ -- User equipment IEs
+ supportForTwoDRXSchemesInPCH ENUMERATED { true } OPTIONAL,
+ supportEDPDCHPowerInterpolation ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v7f0ext ::= SEQUENCE {
+ supportofTxDivOnNonMIMOChannel ENUMERATED { true } OPTIONAL,
+ -- IE physicalChannelCapability-LCR and ue-RadioAccessCapabilityComp-TDD128 shall only be
+ -- included in InterRATHandoverInfo for 1.28 Mcps TDD, otherwise these IEs are not needed here.
+ physicalChannelCapability-LCR PhysicalChannelCapability-LCR-r4 OPTIONAL,
+ ue-RadioAccessCapabilityComp-TDD128 UE-RadioAccessCapabilityComp-TDD128-v7f0ext OPTIONAL
+}
+
+UE-RadioAccessCapabilityInfo-v770ext ::= SEQUENCE {
+ rf-Capability RF-Capability-v770ext OPTIONAL,
+ physicalChannelCapability PhysicalChannelCapabilityInfo-v770ext,
+ ganssSupportIndication ENUMERATED { true } OPTIONAL,
+ mac-ehsSupport ENUMERATED { true } OPTIONAL,
+ ue-SpecificCapabilityInformation UE-SpecificCapabilityInformation-LCRTDD OPTIONAL
+}
+
+UE-RadioAccessCapabilityInfo-TDD128-v8b0ext ::= SEQUENCE {
+ -- INTER RAT HANDOVER INFO
+ measurementCapabilityTDD MeasurementCapabilityTDD OPTIONAL,
+ hSDSCH-physical-layer-category-extension
+ HSDSCH-physical-layer-category-extension OPTIONAL
+}
+
+UE-RadioAccessCapabilityInfo-TDD128-vb50ext ::= SEQUENCE {
+ -- INTER RAT HANDOVER INFO
+ measurementCapabilityTDD MeasurementCapabilityTDD-vb50ext OPTIONAL
+}
+
+UE-RadioAccessCapability-v860ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList3 UE-RadioAccessCapabBandFDDList3
+}
+
+UE-RadioAccessCapability-v880ext ::= SEQUENCE {
+ -- INTER RAT HANDOVER INFO
+ supportForPriorityReselectionInUTRAN ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v890ext ::= SEQUENCE {
+ -- UE radio access capability
+ supportCellSpecificTxDiversityinDC-Operation ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v920ext ::= SEQUENCE {
+ supportOfenhancedTS0 ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-va40ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4
+}
+
+UE-RadioAccessCapability-va60ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4-va60ext OPTIONAL
+}
+
+UE-RadioAccessCapability-va80ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList4-va60ext UE-RadioAccessCapabBandFDDList4-va60ext OPTIONAL,
+ ue-RadioAccessCapabBandFDDList4-va80ext UE-RadioAccessCapabBandFDDList4-va80ext OPTIONAL
+}
+
+UE-RadioAccessCapability-vb50ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList6 UE-RadioAccessCapabBandFDDList6 OPTIONAL
+}
+
+UE-RadioAccessCapability-vb70ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList7 UE-RadioAccessCapabBandFDDList7 OPTIONAL
+}
+
+UE-RadioAccessCapability-vbc0ext ::= SEQUENCE {
+ interRATsupportMultiCellConfiguration ENUMERATED { true } OPTIONAL,
+ ue-RadioAccessCapabBandCombList UE-RadioAccessCapabBandCombList OPTIONAL,
+ ue-RadioAccessCapabBandCombList-va40ext UE-RadioAccessCapabBandCombList-va40ext OPTIONAL
+}
+
+UE-RadioAccessCapability-vdxyext ::= SEQUENCE {
+ ue-RadioAccessCapabBandCombList-vdxyext UE-RadioAccessCapabBandCombList-vdxyext OPTIONAL
+}
+
+
+UE-RadioAccessCapabBand-va40ext ::= SEQUENCE {
+ ue-RadioAccessCapabBandFDDList5 UE-RadioAccessCapabBandFDDList5,
+ -- This IE shall be included if the UE also supports Band I - Band XXII
+ ue-RadioAccessCapabBandFDDList-ext2 UE-RadioAccessCapabBandFDDList-ext2 OPTIONAL
+}
+
+UE-RadioAccessCapabBandFDDList2 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ UE-RadioAccessCapabBandFDD2
+
+UE-RadioAccessCapabBandFDDList3 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ UE-RadioAccessCapabBandFDD3
+
+UE-RadioAccessCapabBandFDDList4 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ UE-RadioAccessCapabBandFDD4
+
+UE-RadioAccessCapabBandFDDList4-va60ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ UE-RadioAccessCapabBandFDD4-va60ext
+
+UE-RadioAccessCapabBandFDDList4-va80ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext3)) OF
+ UE-RadioAccessCapabBandFDD4-va80ext
+
+UE-RadioAccessCapabBandFDDList5 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext2)) OF
+ UE-RadioAccessCapabBandFDD5
+
+UE-RadioAccessCapabBandFDDList6 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD3)) OF
+ UE-RadioAccessCapabBandFDD6
+
+UE-RadioAccessCapabBandFDDList7 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD3)) OF
+ UE-RadioAccessCapabBandFDD7
+
+UE-RadioAccessCapabBandFDD2 ::= SEQUENCE {
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2,
+ fddRF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClassExt,
+ txRxFrequencySeparation TxRxFrequencySeparation
+ } OPTIONAL,
+ measurementCapability2 MeasurementCapabilityExt2
+}
+
+UE-RadioAccessCapabBandFDD3 ::= SEQUENCE {
+ -- UE may omit both IEs if this IE indicates the same EUTRA compressed
+ -- mode capability for all supported UTRA bands
+ -- Otherwise, the UE shall include either one of the following OPTIONAL IEs.
+ radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL,
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL,
+ measurementCapability3 MeasurementCapabilityExt3
+}
+
+UE-RadioAccessCapabBandFDD4 ::= SEQUENCE {
+ -- UE may omit all the radioFrequencyBand IEs if this IE indicates the same
+ -- capability for all supported UTRA bands
+ -- Otherwise, the UE shall include either one of the following OPTIONAL IEs.
+ radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL,
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL,
+ radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL,
+ additionalSecondaryCells ENUMERATED { a1, a2 } OPTIONAL,
+ nonContiguousMultiCellCombinationList NonContiguousMultiCellCombinationList OPTIONAL
+}
+
+UE-RadioAccessCapabBandFDD4-va60ext ::= SEQUENCE {
+ supportofULOLTD ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabBandFDD4-va80ext ::= SEQUENCE {
+ -- UE may omit all the radioFrequencyBand IEs if this IE indicates the same
+ -- capability for all supported UTRA bands
+ -- Otherwise, the UE shall include either one of the following OPTIONAL IEs.
+ radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL,
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL,
+ radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL,
+ additionalSecondaryCells ENUMERATED { a1, a2 } OPTIONAL,
+ nonContiguousMultiCellCombinationList NonContiguousMultiCellCombinationList OPTIONAL,
+ supportofULOLTD ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabBandFDD5 ::= SEQUENCE {
+ radioFrequencyBandFDD3 RadioFrequencyBandFDD3,
+ fddRF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClassExt,
+ txRxFrequencySeparation TxRxFrequencySeparation
+ } OPTIONAL,
+ measurementCapability4 MeasurementCapabilityExt4
+}
+
+UE-RadioAccessCapabBandFDD6 ::= SEQUENCE {
+ -- UE may omit all the radioFrequencyBand IEs if this IE indicates the same
+ -- capability for all supported UTRA bands
+ -- Otherwise, the UE shall include either one of the following OPTIONAL IEs.
+ radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL,
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL,
+ radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL,
+ additionalSecondaryCells2 ENUMERATED { a3, a4, a5, a6 } OPTIONAL,
+ supportOfULCLTD ENUMERATED { true } OPTIONAL,
+ multiflowCapability MultiflowPerBandCapability OPTIONAL,
+ mimo4x4CapabilityBand ENUMERATED { true } OPTIONAL,
+ supportOfULMIMO ENUMERATED { true } OPTIONAL,
+ measurementCapability5 MeasurementCapabilityExt5,
+ freqSpecificCompressedModeForNonContiguous ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabBandFDD7 ::= SEQUENCE {
+ -- UE may omit all the radioFrequencyBand IEs if this IE indicates the same
+ -- capability for all supported UTRA bands
+ -- Otherwise, the UE shall include either one of the following OPTIONAL IEs.
+ radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL,
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL,
+ radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL,
+ measurementCapability6 MeasurementCapabilityExt6
+}
+
+UE-PositioningCapabilityExt-v380 ::= SEQUENCE {
+ rx-tx-TimeDifferenceType2Capable BOOLEAN
+}
+
+UE-PositioningCapabilityExt-v3a0 ::= SEQUENCE {
+ validity-CellPCH-UraPCH ENUMERATED { true }
+}
+
+UE-PositioningCapabilityExt-v3g0 ::= SEQUENCE {
+ sfn-sfnType2Capability ENUMERATED { true }
+}
+
+UE-PositioningCapability-v770ext ::= SEQUENCE {
+ ue-GANSSPositioning-Capability UE-GANSSPositioning-Capability OPTIONAL
+}
+
+UE-PositioningCapability-v860ext ::= SEQUENCE {
+ ue-GANSSPositioning-Capability-v860ext
+ UE-GANSSPositioning-Capability-v860ext-IEs OPTIONAL
+}
+
+UE-PositioningCapability-vdxyext ::= SEQUENCE {
+ ue-Positioning-AddPos-Capability UE-AddPos-Supported-List OPTIONAL
+}
+
+UE-RadioAccessCapabBandCombList ::= SEQUENCE (SIZE (1..16)) OF BandComb
+
+UE-RadioAccessCapabBandFDDList ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ UE-RadioAccessCapabBandFDD
+
+UE-RadioAccessCapabBandFDDList-ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ UE-RadioAccessCapabBandFDD-ext
+
+UE-RadioAccessCapabBandFDDList-ext2 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD2)) OF
+ UE-RadioAccessCapabBandFDD-ext2
+
+UE-RadioAccessCapabBandFDD ::= SEQUENCE{
+ radioFrequencyBandFDD RadioFrequencyBandFDD,
+ fddRF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClassExt,
+ txRxFrequencySeparation TxRxFrequencySeparation
+ } OPTIONAL,
+ measurementCapability MeasurementCapabilityExt
+}
+
+UE-RadioAccessCapabBandFDD-ext ::= SEQUENCE {
+ radioFrequencyBandFDD RadioFrequencyBandFDD,
+ compressedModeMeasCapabFDDList-ext CompressedModeMeasCapabFDDList-ext
+}
+
+UE-RadioAccessCapabBandFDD-ext2 ::= SEQUENCE {
+ radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL,
+ radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL,
+ compressedModeMeasCapabFDDList3 CompressedModeMeasCapabFDDList3
+}
+
+UE-RadioAccessCapability-v4b0ext ::= SEQUENCE {
+ pdcp-Capability-r4-ext PDCP-Capability-r4-ext,
+ tdd-CapabilityExt SEQUENCE {
+ rf-Capability RF-Capability-r4-ext,
+ physicalChannelCapability-LCR PhysicalChannelCapability-LCR-r4,
+ measurementCapability-r4-ext MeasurementCapability-r4-ext
+ } OPTIONAL,
+ -- IE " AccessStratumReleaseIndicator" is not needed in RRC CONNECTION SETUP COMPLETE
+ accessStratumReleaseIndicator AccessStratumReleaseIndicator OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp ::= SEQUENCE {
+ totalAM-RLCMemoryExceeds10kB BOOLEAN,
+ rf-CapabilityComp RF-CapabilityComp
+}
+
+UE-RadioAccessCapabilityComp-ext ::= SEQUENCE {
+ rf-CapabilityFDDComp RF-CapabBandListFDDComp-ext
+}
+
+UE-RadioAccessCapabilityComp-TDD128-v7f0ext ::= SEQUENCE {
+ hSDSCH-physical-layer-category
+ HSDSCH-physical-layer-category OPTIONAL,
+ multiCarrier-physical-layer-category
+ MultiCarrier-HSDSCH-physical-layer-category OPTIONAL,
+ tdd-edch-PhysicalLayerCategory INTEGER (1..6) OPTIONAL,
+ dl-CapabilityWithSimultaneousHS-DSCHConfig
+ DL-CapabilityWithSimultaneousHS-DSCHConfig OPTIONAL,
+ supportForCSVoiceoverHSPA ENUMERATED { true } OPTIONAL,
+ totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-r5-ext OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp-v770ext ::= SEQUENCE {
+ rf-CapabilityComp RF-CapabilityComp-v770ext,
+ securityCapabilityIndication ENUMERATED { true } OPTIONAL,
+ ganssSupportIndication ENUMERATED { true } OPTIONAL,
+ mac-ehsSupport ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2 ::= SEQUENCE {
+ fddPhysicalChannelCapab-hspdsch-edch SEQUENCE {
+ dl-CapabilityWithSimultaneousHS-DSCHConfig
+ DL-CapabilityWithSimultaneousHS-DSCHConfig OPTIONAL,
+ physicalChannelCapabComp-hspdsch-r6 HSDSCH-physical-layer-category,
+ physicalChannelCapability-edch-r6 PhysicalChannelCapability-edch-r6
+ } OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2-v770ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL,
+ edch-PhysicalLayerCategory-extension INTEGER (7) OPTIONAL,
+ hsscchlessHsdschOperation ENUMERATED { true } OPTIONAL,
+ enhancedFdpch ENUMERATED { true } OPTIONAL,
+ hsdschReception-CellFach ENUMERATED { true } OPTIONAL,
+ hsdschReception-CellUraPch ENUMERATED { true } OPTIONAL,
+ discontinuousDpcchTransmission ENUMERATED { true } OPTIONAL,
+ slotFormat4 ENUMERATED { true } OPTIONAL,
+ pdcp-Capability PDCP-Capability-v770ext OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2-v7f0ext ::= SEQUENCE {
+ supportofTxDivOnNonMIMOChannel ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2-v860ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext2 HSDSCH-physical-layer-category-ext2 OPTIONAL,
+ supportOfMACiis ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2-v920ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext3 HSDSCH-physical-layer-category-ext3 OPTIONAL,
+ edch-PhysicalLayerCategory-extension2 INTEGER (8..9) OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2-va40ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext4 HSDSCH-physical-layer-category-ext4 OPTIONAL,
+ hsdsch-physical-layer-category-ext5 HSDSCH-physical-layer-category-ext5 OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2-vb50ext ::= SEQUENCE {
+ hsdsch-physical-layer-category-ext6 HSDSCH-physical-layer-category-ext6 OPTIONAL,
+ hsdsch-physical-layer-category-ext7 HSDSCH-physical-layer-category-ext7 OPTIONAL,
+ hsdsch-physical-layer-category-ext8 HSDSCH-physical-layer-category-ext8 OPTIONAL,
+ edch-PhysicalLayerCategory-extension3 INTEGER (10..12) OPTIONAL,
+ supportOfHSDPCCHPowerOffsetExtension ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2-vc50ext ::= SEQUENCE {
+ supportofDsacAndPpacInCellDch ENUMERATED { true } OPTIONAL,
+ supportforDCHEnhancements ENUMERATED { basic, full } OPTIONAL,
+ simultaneousSupportforDCHEnhancementsAndCM ENUMERATED { true } OPTIONAL,
+ simultaneousSupportforDCHEnhancementsAndDPCCHDiscntTx ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp2-vdxyext ::= SEQUENCE {
+ supportOfDualCellEDCHwithDPDCH ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapabilityComp-TDD128 ::= SEQUENCE {
+ tdd128RF-Capability RadioFrequencyBandTDDextList OPTIONAL,
+ supportOfSFModeForHSPDSCHDualStream ENUMERATED { sf1, sf1sf16 } OPTIONAL,
+ supportOfCommonEDCH ENUMERATED { true } OPTIONAL,
+ supportOfMACiis ENUMERATED { true } OPTIONAL,
+ supportOfSPSOperation ENUMERATED { true } OPTIONAL,
+ supportOfControlChannelDRXOperation ENUMERATED { true } OPTIONAL
+}
+
+RF-CapabilityComp ::= SEQUENCE {
+ fdd CHOICE {
+ notSupported NULL,
+ supported RF-CapabBandListFDDComp
+ },
+ tdd384-RF-Capability CHOICE {
+ notSupported NULL,
+ supported RadioFrequencyBandTDDList
+ },
+ tdd128-RF-Capability CHOICE {
+ notSupported NULL,
+ supported RadioFrequencyBandTDDList
+ }
+}
+
+RF-CapabilityComp-v770ext ::= SEQUENCE {
+ -- If support of TDD384 and/or TDD128 RF capability is indicated in IEs 'RF-CapabilityComp',
+ -- the corresponding IE 'RadioFrequencyBandTDDList-r7' shall be included in this IE.
+ tdd384-RF-Capability RadioFrequencyBandTDDList-r7 OPTIONAL,
+ tdd768-RF-Capability CHOICE {
+ notSupported NULL,
+ supported RadioFrequencyBandTDDList-r7
+ },
+ tdd128-RF-Capability RadioFrequencyBandTDDList-r7 OPTIONAL
+}
+
+-- NOTE: This IE defines the supported TX/RX frequency separation for the respective supported
+-- frequency band. Values defined as spare shall not be sent in this version of the protocol.
+-- If a spare value is received, it should be interpreted as 'default-RxTX-sparation'.
+RF-CapabBandFDDComp ::= ENUMERATED { notSupported,
+ default-TxRx-separation, spare2, spare1 }
+
+RF-CapabBandListFDDComp ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF
+ -- The first entry corresponds with the first value of IE RadioFrequencyBandFDD,
+ -- fdd2100, and so on. No more than seven entries should be included in this IE. The
+ -- 8'th entry, if present, shall be ignored.
+ -- An extension of this IE may be provided using the IE 'RF-CapabBandListFDDComp-ext'.
+ RF-CapabBandFDDComp
+
+RF-CapabBandListFDDComp-ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext)) OF
+ -- The first entry corresponds with the first value of IE RadioFrequencyBandFDD2,
+ -- bandVIII, and so on.
+ RF-CapabBandFDDComp
+
+RF-CapabBandListFDDComp-ext2 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext2)) OF
+ -- The first entry corresponds with the first value of IE RadioFrequencyBandFDD3,
+ -- 23 (Band XXIII), and so on.
+ RF-CapabBandFDDComp
+
+UE-RadioAccessCapabBandCombList-va40ext ::= SEQUENCE (SIZE (1..16)) OF SupportedCarrierCombination
+
+UE-RadioAccessCapabBandCombList-vb50ext ::= SEQUENCE (SIZE (1..16)) OF
+ SupportedCarrierCombination-ext
+
+
+UE-RadioAccessCapabBandCombList-vdxyext ::= SEQUENCE (SIZE (1..16)) OF SupportDualBandDualCellEdch
+
+SupportedCarrierCombination ::= SEQUENCE {
+ carrierCombination12 BOOLEAN,
+ carrierCombination21 BOOLEAN,
+ carrierCombination13 BOOLEAN,
+ carrierCombination31 BOOLEAN,
+ carrierCombination22 BOOLEAN
+}
+
+SupportedCarrierCombination-ext ::= SEQUENCE {
+ carrierCombination14 BOOLEAN,
+ carrierCombination41 BOOLEAN,
+ carrierCombination15 BOOLEAN,
+ carrierCombination51 BOOLEAN,
+ carrierCombination16 BOOLEAN,
+ carrierCombination61 BOOLEAN,
+ carrierCombination17 BOOLEAN,
+ carrierCombination71 BOOLEAN,
+ carrierCombination23 BOOLEAN,
+ carrierCombination32 BOOLEAN,
+ carrierCombination24 BOOLEAN,
+ carrierCombination42 BOOLEAN,
+ carrierCombination25 BOOLEAN,
+ carrierCombination52 BOOLEAN,
+ carrierCombination26 BOOLEAN,
+ carrierCombination62 BOOLEAN,
+ carrierCombination33 BOOLEAN,
+ carrierCombination34 BOOLEAN,
+ carrierCombination43 BOOLEAN,
+ carrierCombination44 BOOLEAN,
+ carrierCombination35 BOOLEAN,
+ carrierCombination53 BOOLEAN
+}
+
+SupportDualBandDualCellEdch ::= SEQUENCE {
+ dualBandDualCellEdchIndication ENUMERATED { true } OPTIONAL
+}
+
+UE-RadioAccessCapability-v590ext ::= SEQUENCE {
+ dl-CapabilityWithSimultaneousHS-DSCHConfig
+ DL-CapabilityWithSimultaneousHS-DSCHConfig OPTIONAL,
+ pdcp-Capability-r5-ext PDCP-Capability-r5-ext,
+ rlc-Capability-r5-ext RLC-Capability-r5-ext,
+ physicalChannelCapability PhysicalChannelCapability-hspdsch-r5,
+ multiModeRAT-Capability-v590ext MultiModeRAT-Capability-v590ext
+}
+
+UE-RadioAccessCapability-v5c0ext ::= SEQUENCE {
+ pdcp-Capability-r5-ext2 PDCP-Capability-r5-ext2
+}
+
+UE-RadioAccessCapability-v680ext ::= SEQUENCE {
+ multiModeRAT-Capability-v680ext MultiModeRAT-Capability-v680ext
+}
+
+UL-OLTD-InfoFDD ::= SEQUENCE {
+ ulOLTDActivation ENUMERATED {true}
+}
+
+UL-PhysChCapabilityFDD ::= SEQUENCE {
+ maxNoDPDCH-BitsTransmitted MaxNoDPDCH-BitsTransmitted,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy BOOLEAN
+}
+
+UL-PhysChCapabilityFDD-r6 ::= SEQUENCE {
+ maxNoDPDCH-BitsTransmitted MaxNoDPDCH-BitsTransmitted,
+ physicalchannelcapability-edch PhysicalChannelCapability-edch-r6
+}
+
+UL-PhysChCapabilityFDD-v770ext ::= SEQUENCE {
+ edch-PhysicalLayerCategory-extension INTEGER (7) OPTIONAL,
+ discontinuousDpcchTransmission ENUMERATED { true } OPTIONAL,
+ slotFormat4 ENUMERATED { true } OPTIONAL
+}
+
+UL-PhysChCapabilityFDD-v920ext ::= SEQUENCE {
+ edch-PhysicalLayerCategory-extension2 INTEGER (8..9) OPTIONAL
+}
+UL-PhysChCapabilityFDD-vb50ext ::= SEQUENCE {
+ edch-PhysicalLayerCategory-extension3 INTEGER (10..12) OPTIONAL
+}
+
+UL-PhysChCapabilityFDD-vc50ext ::= SEQUENCE {
+ supportofCellReselectionIndicationReporting ENUMERATED { true } OPTIONAL,
+ supportofRadioLinkswithoutDPCHFDPCH ENUMERATED { true } OPTIONAL,
+ supportofServingE-DCHCellDecoupling ENUMERATED { true } OPTIONAL,
+ accessGroupsAccessControl ENUMERATED { true } OPTIONAL,
+ enhancedTTISwitching ENUMERATED { true } OPTIONAL,
+ implicitGrantHandling ENUMERATED { true } OPTIONAL,
+ dtx-enhancements ENUMERATED { true } OPTIONAL
+}
+
+UL-PhysChCapabilityFDD-vdxyext ::= SEQUENCE {
+ supportOfDualCellEDCHwithDPDCH ENUMERATED { true } OPTIONAL
+}
+
+UL-PhysChCapabilityTDD ::= SEQUENCE {
+ maxTS-PerFrame MaxTS-PerFrame,
+ maxPhysChPerTimeslot MaxPhysChPerTimeslot,
+ minimumSF MinimumSF-UL,
+ supportOfPUSCH BOOLEAN
+}
+
+UL-PhysChCapabilityTDD-384-v770ext ::= SEQUENCE {
+ tdd384-edch CHOICE {
+ supported SEQUENCE {
+ tdd-edch-PhysicalLayerCategory INTEGER (1..16)
+ },
+ unsupported NULL
+ }
+}
+
+UL-PhysChCapabilityTDD-LCR-r4 ::= SEQUENCE {
+ maxTS-PerSubFrame MaxTS-PerSubFrame-r4,
+ maxPhysChPerTimeslot MaxPhysChPerTimeslot,
+ minimumSF MinimumSF-UL,
+ supportOfPUSCH BOOLEAN,
+ supportOf8PSK BOOLEAN
+}
+
+UL-PhysChCapabilityTDD-128-v770ext ::= SEQUENCE {
+ maxPhysChPerTimeslot MaxPhysChPerTimeslot-LCR-r7,
+ tdd128-edch CHOICE {
+ supported SEQUENCE {
+ tdd-edch-PhysicalLayerCategory INTEGER (1..6)
+ },
+ unsupported NULL
+ }
+}
+
+UL-PhysChCapabilityInfoTDD-128-v770ext ::= SEQUENCE {
+ maxPhysChPerTimeslot MaxPhysChPerTimeslot-LCR-r7
+}
+
+UL-PhysChCapabilityInfoTDD-128-va40ext ::= SEQUENCE {
+ multiCarrier-EdchPhysicalLayerCategory-128 INTEGER (1..8) OPTIONAL,
+ maxNumberCarrierForMCHSUPA-TDD ENUMERATED {nf-2, nf-3, nf-6, spare} OPTIONAL
+}
+
+UL-PhysChCapabilityTDD-768 ::= SEQUENCE {
+ maxTS-PerFrame MaxTS-PerFrame,
+ maxPhysChPerTimeslot MaxPhysChPerTimeslot,
+ minimumSF MinimumSF-UL,
+ supportOfPUSCH BOOLEAN,
+ tdd384-edch CHOICE {
+ supported SEQUENCE {
+ tdd-edch-PhysicalLayerCategory INTEGER (1..16)
+ },
+ unsupported NULL
+ }
+}
+
+UL-OtherTTIConfiguration-Information ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ ul-EDCH-Information UL-EDCH-Information-r11,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL
+ }
+ },
+ activationDelay ActivationDelay OPTIONAL
+}
+
+UL-SecondaryCellInfoFDD ::= CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ secondaryServingEDCHCell-Info SecondaryServingEDCHCell-Info OPTIONAL,
+ secondaryEDCH-Info-Common SecondaryEDCH-Info-Common OPTIONAL,
+ dl-InformationPerSecondaryRL-List DL-InformationPerSecondaryRL-List OPTIONAL
+ }
+}
+
+UL-SecondaryCellInfoFDD-r12 ::= CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ secondaryServingEDCHCell-Info SecondaryServingEDCHCell-Info OPTIONAL,
+ secondaryEDCH-Info-Common SecondaryEDCH-Info-Common-r12 OPTIONAL,
+ dl-InformationPerSecondaryRL-List DL-InformationPerSecondaryRL-List-r12 OPTIONAL
+ }
+}
+
+UL-SecondaryCellInfoFDD-r13 ::= CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ secondaryServingEDCHCell-Info SecondaryServingEDCHCell-Info OPTIONAL,
+ secondaryEDCH-Info-Common SecondaryEDCH-Info-Common-r12 OPTIONAL,
+ dl-InformationPerSecondaryRL-List DL-InformationPerSecondaryRL-List-r13 OPTIONAL
+ }
+}
+
+PhysicalChannelCapability-edch-r6 ::= SEQUENCE {
+ fdd-edch CHOICE {
+ supported SEQUENCE {
+ edch-PhysicalLayerCategory INTEGER (1..16)
+ },
+ unsupported NULL
+ }
+}
+
+UL-TransChCapability ::= SEQUENCE {
+ maxNoBitsTransmitted MaxNoBits,
+ maxConvCodeBitsTransmitted MaxNoBits,
+ turboEncodingSupport TurboSupport,
+ maxSimultaneousTransChs MaxSimultaneousTransChsUL,
+ modeSpecificInfo CHOICE {
+ fdd NULL,
+ tdd SEQUENCE {
+ maxSimultaneousCCTrCH-Count MaxSimultaneousCCTrCH-Count
+ }
+ },
+ maxTransmittedBlocks MaxTransportBlocksUL,
+ maxNumberOfTFC MaxNumberOfTFC-UL,
+ maxNumberOfTF MaxNumberOfTF
+}
+
+UE-Positioning-Capability ::= SEQUENCE {
+ standaloneLocMethodsSupported BOOLEAN,
+ ue-BasedOTDOA-Supported BOOLEAN,
+ networkAssistedGPS-Supported NetworkAssistedGPS-Supported,
+ supportForUE-GPS-TimingOfCellFrames BOOLEAN,
+ supportForIPDL BOOLEAN
+}
+
+UE-SecurityInformation ::= SEQUENCE {
+ start-CS START-Value
+}
+
+UE-SecurityInformation2 ::= SEQUENCE {
+ start-PS START-Value
+}
+
+UE-SpecificCapabilityInformation-LCRTDD ::= ENUMERATED {
+ nF,
+ nFMc-TriRx-UniTx,
+ nFMc-TriRx-TriTx,
+ nFMc-HexRx-UniTx,
+ nFMc-HexRx-TriTx,
+ nFMc-HexRx-HexTx,
+ nFMc-TwoRx-UniTx-Discontiguous,
+ nFMc-TwoRx-TwoTx-Discontiguous,
+ nFMc-TwoRx-UniTx-Contiguous,
+ nFMc-TwoRx-TwoTx-Contiguous,
+ spare6,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+URA-UpdateCause ::= ENUMERATED {
+ changeOfURA,
+ periodicURAUpdate,
+ dummy,
+ spare1 }
+
+UTRAN-DRX-CycleLengthCoefficient ::= INTEGER (3..9)
+
+UTRAN-DRX-CycleLengthCoefficient-r7 ::= SEQUENCE {
+ drx-CycleLengthCoefficient INTEGER (3..9),
+ drx-CycleLengthCoefficient2 INTEGER (3..9) OPTIONAL,
+ timeForDRXCycle2 T-319 OPTIONAL
+}
+
+WaitTime ::= INTEGER (0..15)
+
+-- ***************************************************
+--
+-- RADIO BEARER INFORMATION ELEMENTS (10.3.4)
+--
+-- ***************************************************
+
+AlgorithmSpecificInfo ::= CHOICE {
+ rfc2507-Info RFC2507-Info
+}
+
+AlgorithmSpecificInfo-r4 ::= CHOICE {
+ rfc2507-Info RFC2507-Info,
+ rfc3095-Info RFC3095-Info-r4
+}
+
+CID-InclusionInfo-r4 ::= ENUMERATED {
+ pdcp-Header,
+ rfc3095-PacketFormat }
+
+CommonRBMappingInfo ::= SEQUENCE {
+ logicalChannelIdentity LogicalChannelIdentity,
+ mac-ehs-QueueId MAC-ehs-QueueId
+}
+
+-- Upper limit of COUNT-C is 2^32 - 1
+COUNT-C ::= INTEGER (0..4294967295)
+
+-- Upper limit of COUNT-C-MSB is 2^25 - 1
+COUNT-C-MSB ::= INTEGER (0..33554431)
+
+CS-HSPA-Information ::= SEQUENCE {
+ ul-AMR-Rate UL-AMR-Rate OPTIONAL,
+ maxCS-Delay MaxCS-Delay
+}
+
+DefaultConfigForCellFACH ::= SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdForCellFACH DefaultConfigIdForCellFACH
+}
+
+DefaultConfigIdentity ::= INTEGER (0..10)
+
+DefaultConfigIdentity-r4 ::= INTEGER (0..12)
+
+DefaultConfigIdentity-r5 ::= INTEGER (0..13)
+
+-- DefaultConfigIdentity-r6 values 25..31 are spare and shall not be used in this version of
+-- the protocol
+DefaultConfigIdentity-r6 ::= INTEGER (0..31)
+
+-- DefaultConfigIdForCellFACH values 1..15 are spare and shall not be used in this version of
+-- the protocol
+DefaultConfigIdForCellFACH ::= INTEGER (0..15)
+
+DefaultConfigMode ::= ENUMERATED {
+ fdd,
+ tdd }
+
+DDI ::= INTEGER (0..62)
+
+DL-AM-RLC-Mode ::= SEQUENCE {
+ inSequenceDelivery BOOLEAN,
+ receivingWindowSize ReceivingWindowSize,
+ dl-RLC-StatusInfo DL-RLC-StatusInfo
+}
+
+DL-AM-RLC-Mode-r5 ::= SEQUENCE {
+ dl-RLC-PDU-size OctetModeRLC-SizeInfoType1,
+ inSequenceDelivery BOOLEAN,
+ receivingWindowSize ReceivingWindowSize,
+ dl-RLC-StatusInfo DL-RLC-StatusInfo
+}
+
+DL-AM-RLC-Mode-r7 ::= SEQUENCE {
+ dl-RLC-PDU-size CHOICE {
+ fixedSize OctetModeRLC-SizeInfoType1,
+ flexibleSize ENUMERATED { size7, size15 }
+ },
+ inSequenceDelivery BOOLEAN,
+ receivingWindowSize ReceivingWindowSize,
+ dl-RLC-StatusInfo DL-RLC-StatusInfo
+}
+
+DL-AM-RLC-Mode-r11 ::= SEQUENCE {
+ dl-RLC-PDU-size CHOICE {
+ fixedSize OctetModeRLC-SizeInfoType1,
+ flexibleSize ENUMERATED { size7, size15 }
+ },
+ inSequenceDelivery BOOLEAN,
+ receivingWindowSize ReceivingWindowSize,
+ dl-RLC-StatusInfo DL-RLC-StatusInfo-r11
+}
+
+DL-CounterSynchronisationInfo ::= SEQUENCE {
+ rB-WithPDCP-InfoList RB-WithPDCP-InfoList OPTIONAL
+}
+
+DL-CounterSynchronisationInfo-r5 ::= SEQUENCE {
+ rb-WithPDCP-InfoList RB-WithPDCP-InfoList OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL
+}
+
+DL-LogicalChannelMapping ::= SEQUENCE {
+ -- TABULAR: DL-TransportChannelType contains TransportChannelIdentity as well.
+ dl-TransportChannelType DL-TransportChannelType,
+ logicalChannelIdentity LogicalChannelIdentity OPTIONAL
+}
+
+DL-LogicalChannelMapping-r5 ::= SEQUENCE {
+ -- TABULAR: DL-TransportChannelType contains TransportChannelIdentity as well.
+ dl-TransportChannelType DL-TransportChannelType-r5,
+ logicalChannelIdentity LogicalChannelIdentity OPTIONAL
+}
+
+DL-LogicalChannelMapping-r7 ::= SEQUENCE {
+ -- TABULAR: DL-TransportChannelType contains TransportChannelIdentity as well.
+ dl-TransportChannelType DL-TransportChannelType-r7,
+ logicalChannelIdentity LogicalChannelIdentity OPTIONAL
+}
+
+DL-LogicalChannelMappingList ::= SEQUENCE (SIZE (1..maxLoCHperRLC)) OF
+ DL-LogicalChannelMapping
+
+DL-LogicalChannelMappingList-r5 ::= SEQUENCE (SIZE (1..maxLoCHperRLC)) OF
+ DL-LogicalChannelMapping-r5
+
+DL-LogicalChannelMappingList-r7 ::= SEQUENCE (SIZE (1..maxLoCHperRLC)) OF
+ DL-LogicalChannelMapping-r7
+
+DL-Reception-Window-Size-r6 ::= ENUMERATED { size32, size48, size64, size80, size96, size112 }
+
+DL-RFC3095-r4 ::= SEQUENCE {
+ -- dummy is not used in this version of the specification and shall be ignored by the receiver.
+ dummy CID-InclusionInfo-r4,
+ max-CID INTEGER (1..16383) DEFAULT 15,
+ reverseDecompressionDepth INTEGER (0..65535) DEFAULT 0
+}
+
+DL-RLC-Mode ::= CHOICE {
+ dl-AM-RLC-Mode DL-AM-RLC-Mode,
+ dl-UM-RLC-Mode NULL,
+ dl-TM-RLC-Mode DL-TM-RLC-Mode
+}
+
+DL-RLC-Mode-r5 ::= CHOICE {
+ dl-AM-RLC-Mode DL-AM-RLC-Mode-r5,
+ dl-UM-RLC-Mode DL-UM-RLC-Mode-r5,
+ dl-TM-RLC-Mode DL-TM-RLC-Mode
+}
+
+DL-RLC-Mode-r6 ::= CHOICE {
+ dl-AM-RLC-Mode DL-AM-RLC-Mode-r5,
+ dl-UM-RLC-Mode DL-UM-RLC-Mode-r6,
+ dl-TM-RLC-Mode DL-TM-RLC-Mode
+}
+
+DL-RLC-Mode-r7 ::= CHOICE {
+ dl-AM-RLC-Mode DL-AM-RLC-Mode-r7,
+ dl-UM-RLC-Mode DL-UM-RLC-Mode-r6,
+ dl-TM-RLC-Mode DL-TM-RLC-Mode
+}
+
+DL-RLC-Mode-r11 ::= CHOICE {
+ dl-AM-RLC-Mode DL-AM-RLC-Mode-r11,
+ dl-UM-RLC-Mode DL-UM-RLC-Mode-r6,
+ dl-TM-RLC-Mode DL-TM-RLC-Mode
+}
+
+DL-RLC-StatusInfo ::= SEQUENCE {
+ timerStatusProhibit TimerStatusProhibit OPTIONAL,
+ -- dummy is not used in this version of the specification, it should not be sent
+ -- and if received they should be ignored.
+ dummy TimerEPC OPTIONAL,
+ missingPDU-Indicator BOOLEAN,
+ timerStatusPeriodic TimerStatusPeriodic OPTIONAL
+}
+
+DL-RLC-StatusInfo-r11 ::= SEQUENCE {
+ timerStatusProhibit TimerStatusProhibit OPTIONAL,
+ missingPDU-Indicator BOOLEAN,
+ timerStatusPeriodic TimerStatusPeriodic OPTIONAL,
+ timerReordering TimerReordering OPTIONAL
+}
+
+DL-TM-RLC-Mode ::= SEQUENCE {
+ segmentationIndication BOOLEAN
+}
+
+DL-TransportChannelType ::= CHOICE {
+ dch TransportChannelIdentity,
+ fach NULL,
+ -- The choice "dsch" should not be used in FDD mode, and if received
+ -- the UE behaviour is unspecified.
+ dsch TransportChannelIdentity,
+ -- The choice "dch-and-dsch" should not be used in FDD mode, and if received the UE
+ -- behaviour is unspecified
+ dch-and-dsch TransportChannelIdentityDCHandDSCH
+}
+
+DL-TransportChannelType-r5 ::= CHOICE {
+ dch TransportChannelIdentity,
+ fach NULL,
+ -- The choice "dsch" should not be used in FDD mode, and if received
+ -- the UE behaviour is unspecified.
+ dsch TransportChannelIdentity,
+ -- The choice "dch-and-dsch" should not be used in FDD mode, and if received the UE
+ -- behaviour is unspecified
+ dch-and-dsch TransportChannelIdentityDCHandDSCH,
+ hsdsch MAC-d-FlowIdentity,
+ dch-and-hsdsch MAC-d-FlowIdentityDCHandHSDSCH
+}
+
+DL-TransportChannelType-r7 ::= CHOICE {
+ dch TransportChannelIdentity,
+ fach NULL,
+ -- The choice "dsch" should not be used in FDD mode, and if received
+ -- the UE behaviour is unspecified.
+ dsch TransportChannelIdentity,
+ -- The choice "dch-and-dsch" should not be used in FDD mode, and if received the UE
+ -- behaviour is unspecified
+ dch-and-dsch TransportChannelIdentityDCHandDSCH,
+ hsdsch CHOICE {
+ mac-hs MAC-d-FlowIdentity,
+ mac-ehs MAC-ehs-QueueId
+ },
+ dch-and-hsdsch CHOICE {
+ mac-hs MAC-d-FlowIdentityDCHandHSDSCH,
+ mac-ehs MAC-ehs-QueueIdDCHandHSDSCH
+ }
+}
+
+DL-UM-RLC-LI-size ::= ENUMERATED {
+ size7, size15 }
+
+DL-UM-RLC-Mode-r5 ::= SEQUENCE {
+ dl-UM-RLC-LI-size DL-UM-RLC-LI-size
+}
+
+DL-UM-RLC-Mode-r6 ::= SEQUENCE {
+ dl-UM-RLC-LI-size DL-UM-RLC-LI-size,
+ dl-Reception-Window-Size DL-Reception-Window-Size-r6 OPTIONAL
+}
+
+ExpectReordering ::= ENUMERATED {
+ reorderingNotExpected,
+ reorderingExpected }
+
+ExplicitDiscard ::= SEQUENCE {
+ timerMRW TimerMRW,
+ timerDiscard TimerDiscard,
+ maxMRW MaxMRW
+}
+
+HeaderCompressionInfo ::= SEQUENCE {
+ algorithmSpecificInfo AlgorithmSpecificInfo
+}
+
+HeaderCompressionInfoList ::= SEQUENCE (SIZE (1..maxPDCPAlgoType)) OF
+ HeaderCompressionInfo
+
+HeaderCompressionInfo-r4 ::= SEQUENCE {
+ algorithmSpecificInfo AlgorithmSpecificInfo-r4
+}
+
+HeaderCompressionInfoList-r4 ::= SEQUENCE (SIZE (1..maxPDCPAlgoType)) OF
+ HeaderCompressionInfo-r4
+
+LogicalChannelIdentity ::= INTEGER (1..15)
+
+LosslessSRNS-RelocSupport ::= CHOICE {
+ supported MaxPDCP-SN-WindowSize,
+ notSupported NULL
+}
+
+MAC-d-HFN-initial-value ::= BIT STRING (SIZE (24))
+
+MAC-LogicalChannelPriority ::= INTEGER (1..8)
+
+-- Actual value MaxCS-Delay = (IE value * 10) + 20
+MaxCS-Delay ::= INTEGER (0..18)
+
+MaxDAT ::= ENUMERATED {
+ dat1, dat2, dat3, dat4, dat5, dat6,
+ dat7, dat8, dat9, dat10, dat15, dat20,
+ dat25, dat30, dat35, dat40 }
+
+MaxDAT-Retransmissions ::= SEQUENCE {
+ maxDAT MaxDAT,
+ timerMRW TimerMRW,
+ maxMRW MaxMRW
+}
+
+MaxMRW ::= ENUMERATED {
+ mm1, mm4, mm6, mm8, mm12, mm16,
+ mm24, mm32 }
+
+MaxPDCP-SN-WindowSize ::= ENUMERATED {
+ sn255, sn65535 }
+
+MaxRST ::= ENUMERATED {
+ rst1, rst4, rst6, rst8, rst12,
+ rst16, rst24, rst32 }
+
+NoExplicitDiscard ::= ENUMERATED {
+ dt10, dt20, dt30, dt40, dt50,
+ dt60, dt70, dt80, dt90, dt100 }
+
+PDCP-Info ::= SEQUENCE {
+ losslessSRNS-RelocSupport LosslessSRNS-RelocSupport OPTIONAL,
+ -- TABULAR: pdcp-PDU-Header is MD in the tabular format and it can be encoded
+ -- in one bit, so the OPTIONAL is removed for compactness.
+ pdcp-PDU-Header PDCP-PDU-Header,
+ headerCompressionInfoList HeaderCompressionInfoList OPTIONAL
+}
+
+PDCP-Info-r4 ::= SEQUENCE {
+ losslessSRNS-RelocSupport LosslessSRNS-RelocSupport OPTIONAL,
+ -- TABULAR: pdcp-PDU-Header is MD in the tabular format and it can be encoded
+ -- in one bit, so the OPTIONAL is removed for compactness.
+ pdcp-PDU-Header PDCP-PDU-Header,
+ headerCompressionInfoList HeaderCompressionInfoList-r4 OPTIONAL
+}
+
+PDCP-InfoReconfig ::= SEQUENCE {
+ pdcp-Info PDCP-Info,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored.
+ dummy INTEGER (0..65535)
+}
+
+PDCP-InfoReconfig-r4 ::= SEQUENCE {
+ pdcp-Info PDCP-Info-r4
+}
+
+PDCP-PDU-Header ::= ENUMERATED {
+ present, absent }
+
+PDCP-ROHC-TargetMode ::= ENUMERATED { o-Mode, r-Mode }
+
+PDCP-SN-Info ::= INTEGER (0..65535)
+
+Poll-PDU ::= ENUMERATED {
+ pdu1, pdu2, pdu4, pdu8, pdu16,
+ pdu32, pdu64, pdu128 }
+
+Poll-SDU ::= ENUMERATED {
+ sdu1, sdu4, sdu16, sdu64 }
+
+PollingInfo ::= SEQUENCE {
+ timerPollProhibit TimerPollProhibit OPTIONAL,
+ timerPoll TimerPoll OPTIONAL,
+ poll-PDU Poll-PDU OPTIONAL,
+ poll-SDU Poll-SDU OPTIONAL,
+ lastTransmissionPDU-Poll BOOLEAN,
+ lastRetransmissionPDU-Poll BOOLEAN,
+ pollWindow PollWindow OPTIONAL,
+ timerPollPeriodic TimerPollPeriodic OPTIONAL
+}
+
+PollWindow ::= ENUMERATED {
+ pw50, pw60, pw70, pw80, pw85,
+ pw90, pw95, pw99 }
+
+PreconfiguredRetrievableConfig ::= SEQUENCE {
+ retrievableConfigList RetrievableConfig-List
+}
+
+PredefinedConfigIdentity ::= INTEGER (0..15)
+
+PredefinedConfigValueTag ::= INTEGER (0..15)
+
+PredefinedRB-Configuration ::= SEQUENCE {
+ re-EstablishmentTimer Re-EstablishmentTimer,
+ srb-InformationList SRB-InformationSetupList,
+ rb-InformationList RB-InformationSetupList
+}
+
+PreDefRadioConfiguration ::= SEQUENCE {
+ -- Radio bearer IEs
+ predefinedRB-Configuration PredefinedRB-Configuration,
+ -- Transport channel IEs
+ preDefTransChConfiguration PreDefTransChConfiguration,
+ -- Physical channel IEs
+ preDefPhyChConfiguration PreDefPhyChConfiguration
+}
+
+PreDefRadioConfiguration-v770ext ::= SEQUENCE {
+ -- Physical channel IEs
+ preDefPhyChConfiguration PreDefPhyChConfiguration-v770ext
+}
+
+PreDefRadioConfiguration-v920ext ::= SEQUENCE {
+ -- Transport channel IEs
+ mac-ehsWindowSize MAC-hs-WindowSize-r9
+}
+
+PredefinedConfigStatusList ::= SEQUENCE (SIZE (maxPredefConfig)) OF
+ PredefinedConfigStatusInfo
+
+PredefinedConfigStatusInfo ::= CHOICE {
+ storedWithValueTagSameAsPrevius NULL,
+ other CHOICE {
+ notStored NULL,
+ storedWithDifferentValueTag PredefinedConfigValueTag
+ }
+}
+
+PredefinedConfigStatusListComp ::= SEQUENCE {
+ setsWithDifferentValueTag PredefinedConfigSetsWithDifferentValueTag,
+ otherEntries PredefinedConfigStatusListVarSz OPTIONAL
+}
+
+PredefinedConfigSetsWithDifferentValueTag ::= SEQUENCE (SIZE (1..2)) OF
+ PredefinedConfigSetWithDifferentValueTag
+
+PredefinedConfigSetWithDifferentValueTag ::= SEQUENCE {
+ startPosition INTEGER (0..10) DEFAULT 0,
+ -- numberOfEntries INTEGER (6..16),
+ -- numberOfEntries is covered by the size of the list in IE PredefinedConfigValueTagList
+ valueTagList PredefinedConfigValueTagList
+}
+
+
+PredefinedConfigValueTagList ::= SEQUENCE (SIZE (1..maxPredefConfig)) OF
+ PredefinedConfigValueTag
+
+PredefinedConfigStatusListVarSz ::= SEQUENCE (SIZE (1..maxPredefConfig)) OF
+ PredefinedConfigStatusInfo
+
+RAB-Info ::= SEQUENCE {
+ rab-Identity RAB-Identity,
+ cn-DomainIdentity CN-DomainIdentity,
+ nas-Synchronisation-Indicator NAS-Synchronisation-Indicator OPTIONAL,
+ re-EstablishmentTimer Re-EstablishmentTimer
+}
+
+RAB-Info-r6-ext ::= SEQUENCE {
+ mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL
+}
+
+RAB-Info-v6b0ext ::= SEQUENCE {
+ mbms-ServiceIdentity OCTET STRING (SIZE (3))
+}
+
+RAB-Info-r6 ::= SEQUENCE {
+ rab-Identity RAB-Identity,
+ mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL,
+ cn-DomainIdentity CN-DomainIdentity,
+ nas-Synchronisation-Indicator NAS-Synchronisation-Indicator OPTIONAL,
+ re-EstablishmentTimer Re-EstablishmentTimer
+}
+
+RAB-Info-r7 ::= SEQUENCE {
+ rab-Identity RAB-Identity,
+ mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL,
+ mbms-ServiceIdentity OCTET STRING (SIZE (3)) OPTIONAL,
+ cn-DomainIdentity CN-DomainIdentity,
+ nas-Synchronisation-Indicator NAS-Synchronisation-Indicator OPTIONAL,
+ re-EstablishmentTimer Re-EstablishmentTimer
+}
+
+RAB-InfoReplace ::= SEQUENCE {
+ rab-Identity RAB-Identity,
+ cn-DomainIdentity CN-DomainIdentity
+}
+
+RAB-InformationList ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-Info
+
+RAB-InformationList-r6 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-Info-r6
+
+RAB-InformationReconfigList ::= SEQUENCE (SIZE (1.. maxRABsetup)) OF
+ RAB-InformationReconfig
+
+RAB-InformationReconfigList-r8 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationReconfig-r8
+
+RAB-InformationReconfig ::= SEQUENCE {
+ rab-Identity RAB-Identity,
+ cn-DomainIdentity CN-DomainIdentity,
+ nas-Synchronisation-Indicator NAS-Synchronisation-Indicator
+}
+
+RAB-InformationReconfig-r8 ::= SEQUENCE {
+ rab-Identity RAB-Identity,
+ cn-DomainIdentity CN-DomainIdentity,
+ nas-Synchronisation-Indicator NAS-Synchronisation-Indicator,
+ cs-HSPA-Information CS-HSPA-Information OPTIONAL
+}
+
+RAB-Info-Post ::= SEQUENCE {
+ rab-Identity RAB-Identity,
+ cn-DomainIdentity CN-DomainIdentity,
+ nas-Synchronisation-Indicator NAS-Synchronisation-Indicator OPTIONAL
+}
+
+RAB-InformationMBMSPtp ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ mbms-ServiceIdentity OCTET STRING (SIZE (3)),
+ mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL
+}
+
+RAB-InformationMBMSPtpList ::= SEQUENCE (SIZE (1..maxMBMSservSelect)) OF
+ RAB-InformationMBMSPtp
+
+RAB-InformationSetup ::= SEQUENCE {
+ rab-Info RAB-Info,
+ rb-InformationSetupList RB-InformationSetupList
+}
+
+RAB-InformationSetup-r4 ::= SEQUENCE {
+ rab-Info RAB-Info,
+ rb-InformationSetupList RB-InformationSetupList-r4
+}
+
+RAB-InformationSetup-r5 ::= SEQUENCE {
+ rab-Info RAB-Info,
+ rb-InformationSetupList RB-InformationSetupList-r5
+}
+
+RAB-InformationSetup-r6-ext ::= SEQUENCE {
+ rab-Info-r6-ext RAB-Info-r6-ext
+}
+
+RAB-InformationSetup-r6 ::= SEQUENCE {
+ rab-Info RAB-Info-r6,
+ rb-InformationSetupList RB-InformationSetupList-r6
+}
+
+RAB-InformationSetup-v6b0ext ::= SEQUENCE {
+ rab-Info-v6b0ext RAB-Info-v6b0ext OPTIONAL
+}
+
+RAB-InformationSetup-r7 ::= SEQUENCE {
+ rab-Info RAB-Info-r7,
+ rb-InformationSetupList RB-InformationSetupList-r7
+}
+
+RAB-InformationSetup-r8 ::= SEQUENCE {
+ rab-Info RAB-Info-r7,
+ cs-HSPA-Information CS-HSPA-Information OPTIONAL,
+ rab-InfoReplace RAB-InfoReplace OPTIONAL,
+ rb-InformationSetupList RB-InformationSetupList-r8
+}
+
+RAB-InformationSetup-v820ext ::= SEQUENCE {
+ cs-HSPA-Information CS-HSPA-Information OPTIONAL
+}
+
+RAB-InformationSetup-r11 ::= SEQUENCE {
+ rab-Info RAB-Info-r7,
+ cs-HSPA-Information CS-HSPA-Information OPTIONAL,
+ rab-InfoReplace RAB-InfoReplace OPTIONAL,
+ rb-InformationSetupList RB-InformationSetupList-r11
+}
+
+RAB-InformationSetupList ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup
+
+RAB-InformationSetupList-r4 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-r4
+
+RAB-InformationSetupList-r5 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-r5
+
+RAB-InformationSetupList-r6 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-r6
+
+-- The IE 'RAB-InformationSetupList-r6-ext' provides elements of extension information, which
+-- are added to the corresponding elements of the IE 'RAB-InformationSetupList/-r4/-r5'.
+RAB-InformationSetupList-r6-ext ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-r6-ext
+
+RAB-InformationSetupList-v6b0ext ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-v6b0ext
+
+RAB-InformationSetupList-r7 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-r7
+
+RAB-InformationSetupList-r8 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-r8
+
+RAB-InformationSetupList-v820ext ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-v820ext
+
+RAB-InformationSetupList-r11 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF
+ RAB-InformationSetup-r11
+
+RB-ActivationTimeInfo ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rlc-SequenceNumber RLC-SequenceNumber
+}
+
+RB-ActivationTimeInfoList ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-ActivationTimeInfo
+
+RB-COUNT-C-Information ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ count-C-UL COUNT-C,
+ count-C-DL COUNT-C
+}
+
+RB-COUNT-C-InformationList ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF
+ RB-COUNT-C-Information
+
+RB-COUNT-C-MSB-Information ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ count-C-MSB-UL COUNT-C-MSB,
+ count-C-MSB-DL COUNT-C-MSB
+}
+
+RB-COUNT-C-MSB-InformationList ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF
+ RB-COUNT-C-MSB-Information
+
+RB-Identity ::= INTEGER (1..32)
+
+RB-IdentityList ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-Identity
+
+RB-InformationAffected ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rb-MappingInfo RB-MappingInfo
+}
+
+RB-InformationAffected-r5 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rb-MappingInfo RB-MappingInfo-r5
+}
+
+RB-InformationAffected-r6 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rb-MappingInfo RB-MappingInfo-r6
+}
+
+RB-InformationAffected-r7 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rb-MappingInfo RB-MappingInfo-r7
+}
+
+RB-InformationAffected-r8 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rb-MappingInfo RB-MappingInfo-r8
+}
+
+RB-InformationAffectedList ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationAffected
+
+RB-InformationAffectedList-r5 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationAffected-r5
+
+RB-InformationAffectedList-r6 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationAffected-r6
+
+RB-InformationAffectedList-r7 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationAffected-r7
+
+RB-InformationAffectedList-r8 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationAffected-r8
+
+RB-InformationChanged-r6 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rb-Change CHOICE {
+ release NULL,
+ re-mapToDefaultRb RB-Identity
+ }
+}
+
+RB-InformationChangedList-r6 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationChanged-r6
+
+RB-InformationReconfig ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-InfoReconfig OPTIONAL,
+ pdcp-SN-Info PDCP-SN-Info OPTIONAL,
+ rlc-Info RLC-Info OPTIONAL,
+ rb-MappingInfo RB-MappingInfo OPTIONAL,
+ rb-StopContinue RB-StopContinue OPTIONAL
+}
+
+RB-InformationReconfig-r4 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL,
+ pdcp-SN-Info PDCP-SN-Info OPTIONAL,
+ rlc-Info RLC-Info OPTIONAL,
+ rb-MappingInfo RB-MappingInfo OPTIONAL,
+ rb-StopContinue RB-StopContinue OPTIONAL
+}
+
+RB-InformationReconfig-r5 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL,
+ pdcp-SN-Info PDCP-SN-Info OPTIONAL,
+ rlc-Info RLC-Info-r5 OPTIONAL,
+ rb-MappingInfo RB-MappingInfo-r5 OPTIONAL,
+ rb-StopContinue RB-StopContinue OPTIONAL
+}
+
+RB-InformationReconfig-r6 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL,
+ pdcp-SN-Info PDCP-SN-Info OPTIONAL,
+ rlc-Info RLC-Info-r6 OPTIONAL,
+ rb-MappingInfo RB-MappingInfo-r6 OPTIONAL,
+ rb-StopContinue RB-StopContinue OPTIONAL
+}
+
+RB-InformationReconfig-r7 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL,
+ pdcp-SN-Info PDCP-SN-Info OPTIONAL,
+ rlc-Info RLC-Info-r7 OPTIONAL,
+ rb-MappingInfo RB-MappingInfo-r7 OPTIONAL,
+ rb-StopContinue RB-StopContinue OPTIONAL
+}
+
+RB-InformationReconfig-r8 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL,
+ pdcp-SN-Info PDCP-SN-Info OPTIONAL,
+ rlc-Info RLC-Info-r7 OPTIONAL,
+ rb-MappingInfo RB-MappingInfo-r8 OPTIONAL,
+ rb-StopContinue RB-StopContinue OPTIONAL
+}
+
+RB-InformationReconfig-r11 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL,
+ pdcp-SN-Info PDCP-SN-Info OPTIONAL,
+ rlc-Info RLC-Info-r11 OPTIONAL,
+ rb-MappingInfo RB-MappingInfo-r8 OPTIONAL,
+ rb-StopContinue RB-StopContinue OPTIONAL
+}
+
+RB-InformationReconfigList ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationReconfig
+
+RB-InformationReconfigList-r4 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationReconfig-r4
+
+RB-InformationReconfigList-r5 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationReconfig-r5
+
+RB-InformationReconfigList-r6 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationReconfig-r6
+
+RB-InformationReconfigList-r7 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationReconfig-r7
+
+RB-InformationReconfigList-r8 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationReconfig-r8
+
+RB-InformationReconfigList-r11 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-InformationReconfig-r11
+
+RB-InformationReleaseList ::= SEQUENCE (SIZE (1..maxRB)) OF
+ RB-Identity
+
+RB-InformationSetup ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-Info OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice,
+ rb-MappingInfo RB-MappingInfo
+}
+
+RB-InformationSetup-r4 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-Info-r4 OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice,
+ rb-MappingInfo RB-MappingInfo
+}
+
+RB-InformationSetup-r5 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-Info-r4 OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r5,
+ rb-MappingInfo RB-MappingInfo-r5
+}
+
+RB-InformationSetup-r6 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-Info-r4 OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r6,
+ rb-MappingInfo RB-MappingInfo-r6
+}
+
+RB-InformationSetup-r7 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-Info-r4 OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r7,
+ rb-MappingInfo RB-MappingInfo-r7
+}
+
+RB-InformationSetup-r8 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-Info-r4 OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r7,
+ rb-MappingInfo RB-MappingInfo-r8
+}
+
+RB-InformationSetup-r11 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-Info PDCP-Info-r4 OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r11,
+ rb-MappingInfo RB-MappingInfo-r8
+}
+
+RB-InformationSetupList ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF
+ RB-InformationSetup
+
+RB-InformationSetupList-r4 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF
+ RB-InformationSetup-r4
+
+RB-InformationSetupList-r5 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF
+ RB-InformationSetup-r5
+
+RB-InformationSetupList-r6 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF
+ RB-InformationSetup-r6
+
+RB-InformationSetupList-r7 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF
+ RB-InformationSetup-r7
+
+RB-InformationSetupList-r8 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF
+ RB-InformationSetup-r8
+
+RB-InformationSetupList-r11 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF
+ RB-InformationSetup-r11
+
+RB-MappingInfo ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF
+ RB-MappingOption
+
+RB-MappingInfo-r5 ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF
+ RB-MappingOption-r5
+
+RB-MappingInfo-r6 ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF
+ RB-MappingOption-r6
+
+RB-MappingInfo-r7 ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF
+ RB-MappingOption-r7
+
+RB-MappingInfo-r8 ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF
+ RB-MappingOption-r8
+
+RB-MappingOption ::= SEQUENCE {
+ ul-LogicalChannelMappings UL-LogicalChannelMappings OPTIONAL,
+ dl-LogicalChannelMappingList DL-LogicalChannelMappingList OPTIONAL
+}
+
+RB-MappingOption-r5 ::= SEQUENCE {
+ ul-LogicalChannelMappings UL-LogicalChannelMappings OPTIONAL,
+ dl-LogicalChannelMappingList DL-LogicalChannelMappingList-r5 OPTIONAL
+}
+
+RB-MappingOption-r6 ::= SEQUENCE {
+ ul-LogicalChannelMappings UL-LogicalChannelMappings-r6 OPTIONAL,
+ dl-LogicalChannelMappingList DL-LogicalChannelMappingList-r5 OPTIONAL
+}
+
+RB-MappingOption-r7 ::= SEQUENCE {
+ ul-LogicalChannelMappings UL-LogicalChannelMappings-r6 OPTIONAL,
+ dl-LogicalChannelMappingList DL-LogicalChannelMappingList-r7 OPTIONAL
+}
+
+RB-MappingOption-r8 ::= SEQUENCE {
+ ul-LogicalChannelMappings UL-LogicalChannelMappings-r8 OPTIONAL,
+ dl-LogicalChannelMappingList DL-LogicalChannelMappingList-r7 OPTIONAL
+}
+
+RB-PDCPContextRelocation ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ dl-RFC3095-Context-Relocation BOOLEAN,
+ ul-RFC3095-Context-Relocation BOOLEAN
+}
+
+RB-PDCPContextRelocationList ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF
+ RB-PDCPContextRelocation
+
+RB-StopContinue ::= ENUMERATED {
+ stopRB, continueRB }
+
+RB-WithPDCP-Info ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ pdcp-SN-Info PDCP-SN-Info
+}
+
+RB-WithPDCP-InfoList ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF
+ RB-WithPDCP-Info
+
+ReceivingWindowSize ::= ENUMERATED {
+ rw1, rw8, rw16, rw32, rw64, rw128, rw256,
+ rw512, rw768, rw1024, rw1536, rw2047,
+ rw2560, rw3072, rw3584, rw4095 }
+
+RetrievableConfig ::= SEQUENCE {
+ retrievableConfigIdentity RetrievableConfigIdentity,
+ retrievableConfigData RetrievableConfigData
+}
+
+RetrievableConfigData ::= SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r11 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r11 OPTIONAL,
+ rb-InformationSetupList RB-InformationSetupList-r11 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL
+}
+
+RetrievableConfigIdentity ::= INTEGER (0..maxRetrievConfig-1)
+
+RetrievableConfigInfo ::= SEQUENCE {
+ retrievableConfigToBeInvoked RetrievableConfigIdentity OPTIONAL,
+ retrievableConfigToBeStored RetrievableConfigIdentity OPTIONAL,
+ retrievableConfigToBeRemoved RetrievableConfigListToRemove OPTIONAL,
+ preconfiguredRetrievableConfig PreconfiguredRetrievableConfig OPTIONAL
+}
+
+RetrievableConfig-List ::= SEQUENCE (SIZE(1.. maxRetrievConfig)) OF
+ RetrievableConfig
+
+RetrievableConfigListToRemove ::= SEQUENCE (SIZE (1..maxRetrievConfig)) OF
+ RetrievableConfigIdentity
+
+
+
+RFC2507-Info ::= SEQUENCE {
+ f-MAX-PERIOD INTEGER (1..65535) DEFAULT 256,
+ f-MAX-TIME INTEGER (1..255) DEFAULT 5,
+ max-HEADER INTEGER (60..65535) DEFAULT 168,
+ tcp-SPACE INTEGER (3..255) DEFAULT 15,
+ non-TCP-SPACE INTEGER (3..65535) DEFAULT 15,
+ -- TABULAR: expectReordering has only two possible values, so using Optional or Default
+ -- would be wasteful
+ expectReordering ExpectReordering
+}
+
+RFC3095-Info-r4 ::= SEQUENCE {
+ rohcProfileList ROHC-ProfileList-r4,
+ ul-RFC3095 UL-RFC3095-r4 OPTIONAL,
+ dl-RFC3095 DL-RFC3095-r4 OPTIONAL
+}
+
+RLC-Info ::= SEQUENCE {
+ ul-RLC-Mode UL-RLC-Mode OPTIONAL,
+ dl-RLC-Mode DL-RLC-Mode OPTIONAL
+}
+
+RLC-Info-r5 ::= SEQUENCE {
+ ul-RLC-Mode UL-RLC-Mode OPTIONAL,
+ dl-RLC-Mode DL-RLC-Mode-r5 OPTIONAL,
+ rlc-OneSidedReEst BOOLEAN
+}
+
+RLC-Info-r6 ::= SEQUENCE {
+ ul-RLC-Mode UL-RLC-Mode OPTIONAL,
+ dl-RLC-Mode DL-RLC-Mode-r6 OPTIONAL,
+ rlc-OneSidedReEst BOOLEAN,
+ altE-bitInterpretation ENUMERATED { true } OPTIONAL
+}
+
+RLC-Info-r7 ::= SEQUENCE {
+ ul-RLC-Mode UL-RLC-Mode OPTIONAL,
+ dl-RLC-Mode DL-RLC-Mode-r7 OPTIONAL,
+ rlc-OneSidedReEst BOOLEAN,
+ altE-bitInterpretation ENUMERATED { true } OPTIONAL,
+ useSpecialValueOfHEField ENUMERATED { true } OPTIONAL
+}
+
+RLC-Info-r11 ::= SEQUENCE {
+ ul-RLC-Mode UL-RLC-Mode OPTIONAL,
+ dl-RLC-Mode DL-RLC-Mode-r11 OPTIONAL,
+ rlc-OneSidedReEst BOOLEAN,
+ altE-bitInterpretation ENUMERATED { true } OPTIONAL,
+ useSpecialValueOfHEField ENUMERATED { true } OPTIONAL
+}
+
+RLC-Info-MCCH-r6 ::= SEQUENCE {
+ dl-UM-RLC-LI-size DL-UM-RLC-LI-size,
+ dl-UM-RLC-OutOSeqDelivery-Info UM-RLC-OutOSeqDelivery-Info-r6 OPTIONAL
+}
+
+RLC-Info-MSCH-r6 ::= SEQUENCE {
+ dl-UM-RLC-LI-size DL-UM-RLC-LI-size
+}
+
+RLC-Info-MTCH-r6 ::= SEQUENCE {
+ dl-UM-RLC-LI-size DL-UM-RLC-LI-size,
+ dl-UM-RLC-DuplAvoid-Reord-Info UM-RLC-DuplAvoid-Reord-Info-r6 OPTIONAL
+}
+
+RLC-InfoChoice ::= CHOICE {
+ rlc-Info RLC-Info,
+ same-as-RB RB-Identity
+}
+
+RLC-InfoChoice-r5 ::= CHOICE {
+ rlc-Info RLC-Info-r5,
+ same-as-RB RB-Identity
+}
+
+RLC-InfoChoice-r6 ::= CHOICE {
+ rlc-Info RLC-Info-r6,
+ same-as-RB RB-Identity
+}
+
+RLC-InfoChoice-r7 ::= CHOICE {
+ rlc-Info RLC-Info-r7,
+ same-as-RB RB-Identity
+}
+
+RLC-InfoChoice-r11 ::= CHOICE {
+ rlc-Info RLC-Info-r11,
+ same-as-RB RB-Identity
+}
+
+RLC-PDU-Size ::= OctetModeRLC-SizeInfoType1
+
+RLC-PDU-SizeConstraint ::= SEQUENCE {
+ lengthIndicatorSize ENUMERATED { size7, size15 } OPTIONAL,
+ -- the actual values are (IE value * 8) + 16
+ minRLC-PDU-Size INTEGER (0..1503),
+ largestRLC-PDU-Size INTEGER (0..1503)
+}
+
+RLC-PDU-SizeList ::= SEQUENCE (SIZE (1..maxRLCPDUsizePerLogChan)) OF
+ RLC-PDU-Size
+
+RLC-SequenceNumber ::= INTEGER (0..4095)
+
+RLC-SizeInfo ::= SEQUENCE {
+ rlc-SizeIndex INTEGER (1..maxTF)
+}
+
+RLC-SizeExplicitList ::= SEQUENCE (SIZE (1..maxTF)) OF
+ RLC-SizeInfo
+
+ROHC-Profile-r4 ::= INTEGER (1..3)
+
+ROHC-ProfileList-r4 ::= SEQUENCE (SIZE (1..maxROHC-Profile-r4)) OF
+ ROHC-Profile-r4
+
+ROHC-PacketSize-r4 ::= INTEGER (2..1500)
+
+ROHC-PacketSizeList-r4 ::= SEQUENCE (SIZE (1..maxROHC-PacketSizes-r4)) OF
+ ROHC-PacketSize-r4
+
+SRB-InformationSetup ::= SEQUENCE {
+ -- The default value for rb-Identity is the smallest value not used yet.
+ rb-Identity RB-Identity OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice,
+ rb-MappingInfo RB-MappingInfo
+}
+
+SRB-InformationSetup-r5 ::= SEQUENCE {
+ -- The default value for rb-Identity is the smallest value not used yet.
+ rb-Identity RB-Identity OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r5,
+ rb-MappingInfo RB-MappingInfo-r5
+}
+
+SRB-InformationSetup-r6 ::= SEQUENCE {
+ -- The default value for rb-Identity is the smallest value not used yet.
+ rb-Identity RB-Identity OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r6,
+ rb-MappingInfo RB-MappingInfo-r6
+}
+
+SRB-InformationSetup-r7 ::= SEQUENCE {
+ -- The default value for rb-Identity is the smallest value not used yet.
+ rb-Identity RB-Identity OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r7,
+ rb-MappingInfo RB-MappingInfo-r7
+}
+
+SRB-InformationSetup-r8 ::= SEQUENCE {
+ -- The default value for rb-Identity is the smallest value not used yet.
+ rb-Identity RB-Identity OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r7,
+ rb-MappingInfo RB-MappingInfo-r8
+}
+
+SRB-InformationSetup-r11 ::= SEQUENCE {
+ -- The default value for rb-Identity is the smallest value not used yet.
+ rb-Identity RB-Identity OPTIONAL,
+ rlc-InfoChoice RLC-InfoChoice-r11,
+ rb-MappingInfo RB-MappingInfo-r8
+}
+
+SRB-InformationSetupList ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF
+ SRB-InformationSetup
+
+SRB-InformationSetupList-r5 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF
+ SRB-InformationSetup-r5
+
+SRB-InformationSetupList-r6 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF
+ SRB-InformationSetup-r6
+
+SRB-InformationSetupList-r7 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF
+ SRB-InformationSetup-r7
+
+SRB-InformationSetupList-r8 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF
+ SRB-InformationSetup-r8
+
+SRB-InformationSetupList-r11 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF
+ SRB-InformationSetup-r11
+
+SRB-InformationSetupList2 ::= SEQUENCE (SIZE (3..4)) OF
+ SRB-InformationSetup
+
+SRB-InformationSetupList2-r6 ::= SEQUENCE (SIZE (3..4)) OF
+ SRB-InformationSetup-r6
+
+SRB-InformationSetupList2-r7 ::= SEQUENCE (SIZE (3..4)) OF
+ SRB-InformationSetup-r7
+
+SRB-InformationSetupList2-r8 ::= SEQUENCE (SIZE (3..4)) OF
+ SRB-InformationSetup-r8
+
+TimerDAR-r6 ::= ENUMERATED {
+ ms40, ms80, ms120, ms160, ms240, ms320, ms480, ms640,
+ ms960, ms1280, ms1920, ms2560, ms3840, ms5120 }
+
+TimerDiscard ::= ENUMERATED {
+ td0-1, td0-25, td0-5, td0-75,
+ td1, td1-25, td1-5, td1-75,
+ td2, td2-5, td3, td3-5, td4,
+ td4-5, td5, td7-5 }
+
+TimerEPC ::= ENUMERATED {
+ te50, te60, te70, te80, te90,
+ te100, te120, te140, te160, te180,
+ te200, te300, te400, te500, te700,
+ te900 }
+
+TimerMRW ::= ENUMERATED {
+ te50, te60, te70, te80, te90, te100,
+ te120, te140, te160, te180, te200,
+ te300, te400, te500, te700, te900 }
+
+TimerOSD-r6 ::= ENUMERATED {
+ ms40, ms80, ms120, ms160, ms240, ms320, ms480, ms640,
+ ms960, ms1280, ms1920, ms2560, ms3840, ms5120 }
+
+TimerPoll ::= ENUMERATED {
+ tp10, tp20, tp30, tp40, tp50,
+ tp60, tp70, tp80, tp90, tp100,
+ tp110, tp120, tp130, tp140, tp150,
+ tp160, tp170, tp180, tp190, tp200,
+ tp210, tp220, tp230, tp240, tp250,
+ tp260, tp270, tp280, tp290, tp300,
+ tp310, tp320, tp330, tp340, tp350,
+ tp360, tp370, tp380, tp390, tp400,
+ tp410, tp420, tp430, tp440, tp450,
+ tp460, tp470, tp480, tp490, tp500,
+ tp510, tp520, tp530, tp540, tp550,
+ tp600, tp650, tp700, tp750, tp800,
+ tp850, tp900, tp950, tp1000 }
+
+TimerPollPeriodic ::= ENUMERATED {
+ tper100, tper200, tper300, tper400,
+ tper500, tper750, tper1000, tper2000 }
+
+TimerPollProhibit ::= ENUMERATED {
+ tpp10, tpp20, tpp30, tpp40, tpp50,
+ tpp60, tpp70, tpp80, tpp90, tpp100,
+ tpp110, tpp120, tpp130, tpp140, tpp150,
+ tpp160, tpp170, tpp180, tpp190, tpp200,
+ tpp210, tpp220, tpp230, tpp240, tpp250,
+ tpp260, tpp270, tpp280, tpp290, tpp300,
+ tpp310, tpp320, tpp330, tpp340, tpp350,
+ tpp360, tpp370, tpp380, tpp390, tpp400,
+ tpp410, tpp420, tpp430, tpp440, tpp450,
+ tpp460, tpp470, tpp480, tpp490, tpp500,
+ tpp510, tpp520, tpp530, tpp540, tpp550,
+ tpp600, tpp650, tpp700, tpp750, tpp800,
+ tpp850, tpp900, tpp950, tpp1000 }
+
+TimerReordering ::= ENUMERATED {
+ tr50, tr100, tr150, tr200, tr400, tr600, tr800, tr1000 }
+
+TimerRST ::= ENUMERATED {
+ tr50, tr100, tr150, tr200, tr250, tr300,
+ tr350, tr400, tr450, tr500, tr550,
+ tr600, tr700, tr800, tr900, tr1000 }
+
+TimerStatusPeriodic ::= ENUMERATED {
+ tsp100, tsp200, tsp300, tsp400, tsp500,
+ tsp750, tsp1000, tsp2000 }
+
+TimerStatusProhibit ::= ENUMERATED {
+ tsp10,tsp20,tsp30,tsp40,tsp50,
+ tsp60,tsp70,tsp80,tsp90,tsp100,
+ tsp110,tsp120,tsp130,tsp140,tsp150,
+ tsp160,tsp170,tsp180,tsp190,tsp200,
+ tsp210,tsp220,tsp230,tsp240,tsp250,
+ tsp260,tsp270,tsp280,tsp290,tsp300,
+ tsp310,tsp320,tsp330,tsp340,tsp350,
+ tsp360,tsp370,tsp380,tsp390,tsp400,
+ tsp410,tsp420,tsp430,tsp440,tsp450,
+ tsp460,tsp470,tsp480,tsp490,tsp500,
+ tsp510,tsp520,tsp530,tsp540,tsp550,
+ tsp600,tsp650,tsp700,tsp750,tsp800,
+ tsp850,tsp900,tsp950,tsp1000 }
+
+TransmissionRLC-Discard ::= CHOICE {
+ timerBasedExplicit ExplicitDiscard,
+ timerBasedNoExplicit NoExplicitDiscard,
+ maxDAT-Retransmissions MaxDAT-Retransmissions,
+ noDiscard MaxDAT
+}
+
+TransmissionWindowSize ::= ENUMERATED {
+ tw1, tw8, tw16, tw32, tw64, tw128, tw256,
+ tw512, tw768, tw1024, tw1536, tw2047,
+ tw2560, tw3072, tw3584, tw4095 }
+
+-- Actual bit rate per each value is defined in [62] and [63]
+UL-AMR-Rate ::= ENUMERATED {
+ t0, t1, t2, t3, t4, t5, t6, t7, t8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1 }
+
+UL-AM-RLC-Mode ::= SEQUENCE {
+ transmissionRLC-Discard TransmissionRLC-Discard,
+ transmissionWindowSize TransmissionWindowSize,
+ timerRST TimerRST,
+ max-RST MaxRST,
+ pollingInfo PollingInfo OPTIONAL
+}
+
+UL-CounterSynchronisationInfo ::= SEQUENCE {
+ rB-WithPDCP-InfoList RB-WithPDCP-InfoList OPTIONAL,
+ startList STARTList
+}
+
+UL-LogicalChannelMapping ::= SEQUENCE {
+ -- TABULAR: UL-TransportChannelType contains TransportChannelIdentity as well.
+ ul-TransportChannelType UL-TransportChannelType,
+ logicalChannelIdentity LogicalChannelIdentity OPTIONAL,
+ rlc-SizeList CHOICE {
+ allSizes NULL,
+ configured NULL,
+ explicitList RLC-SizeExplicitList
+ },
+ mac-LogicalChannelPriority MAC-LogicalChannelPriority
+}
+
+UL-LogicalChannelMapping-r6 ::= SEQUENCE {
+ ul-TrCH-Type CHOICE {
+ dch-rach-usch SEQUENCE {
+ -- TABULAR: UL-TransportChannelType contains TransportChannelIdentity as well.
+ ul-TransportChannelType UL-TransportChannelType,
+ logicalChannelIdentity LogicalChannelIdentity OPTIONAL,
+ rlc-SizeList CHOICE {
+ allSizes NULL,
+ configured NULL,
+ explicitList RLC-SizeExplicitList
+ }
+ },
+ e-dch SEQUENCE {
+ logicalChannelIdentity LogicalChannelIdentity,
+ e-DCH-MAC-d-FlowIdentity E-DCH-MAC-d-FlowIdentity,
+ ddi DDI,
+ rlc-PDU-SizeList RLC-PDU-SizeList,
+ includeInSchedulingInfo BOOLEAN
+ }
+ },
+ mac-LogicalChannelPriority MAC-LogicalChannelPriority
+}
+
+UL-LogicalChannelMapping-r8 ::= SEQUENCE {
+ ul-TrCH-Type CHOICE {
+ dch-rach-usch SEQUENCE {
+ -- TABULAR: UL-TransportChannelType contains TransportChannelIdentity as well.
+ ul-TransportChannelType UL-TransportChannelType,
+ logicalChannelIdentity LogicalChannelIdentity OPTIONAL,
+ rlc-SizeList CHOICE {
+ allSizes NULL,
+ configured NULL,
+ explicitList RLC-SizeExplicitList
+ }
+ },
+ e-dch SEQUENCE {
+ logicalChannelIdentity LogicalChannelIdentity,
+ e-DCH-MAC-d-FlowIdentity E-DCH-MAC-d-FlowIdentity,
+ rlc-PDU-Size CHOICE {
+ fixedSize SEQUENCE {
+ ddi DDI,
+ rlc-PDU-SizeList RLC-PDU-SizeList
+ },
+ flexibleSize RLC-PDU-SizeConstraint
+ },
+ includeInSchedulingInfo BOOLEAN
+ }
+ },
+ mac-LogicalChannelPriority MAC-LogicalChannelPriority
+}
+
+UL-LogicalChannelMappingList ::= SEQUENCE {
+ -- rlc-LogicalChannelMappingIndicator shall be set to TRUE in this version
+ -- of the specification
+ rlc-LogicalChannelMappingIndicator BOOLEAN,
+ ul-LogicalChannelMapping SEQUENCE (SIZE (maxLoCHperRLC)) OF
+ UL-LogicalChannelMapping
+}
+
+UL-LogicalChannelMappingList-r6 ::= SEQUENCE {
+ -- rlc-LogicalChannelMappingIndicator shall be set to TRUE in this version
+ -- of the specification
+ rlc-LogicalChannelMappingIndicator BOOLEAN,
+ ul-LogicalChannelMapping SEQUENCE (SIZE (maxLoCHperRLC)) OF
+ UL-LogicalChannelMapping-r6
+}
+
+UL-LogicalChannelMappingList-r8 ::= SEQUENCE {
+ -- rlc-LogicalChannelMappingIndicator shall be set to TRUE in this version
+ -- of the specification
+ rlc-LogicalChannelMappingIndicator BOOLEAN,
+ ul-LogicalChannelMapping SEQUENCE (SIZE (maxLoCHperRLC)) OF
+ UL-LogicalChannelMapping-r8
+}
+
+UL-LogicalChannelMappings ::= CHOICE {
+ oneLogicalChannel UL-LogicalChannelMapping,
+ twoLogicalChannels UL-LogicalChannelMappingList
+}
+
+UL-LogicalChannelMappings-r6 ::= CHOICE {
+ oneLogicalChannel UL-LogicalChannelMapping-r6,
+ twoLogicalChannels UL-LogicalChannelMappingList-r6
+}
+
+UL-LogicalChannelMappings-r8 ::= CHOICE {
+ oneLogicalChannel UL-LogicalChannelMapping-r8,
+ twoLogicalChannels UL-LogicalChannelMappingList-r8
+}
+
+UL-RFC3095-r4 ::= SEQUENCE {
+ -- dummy1 is not used in this version of the specification and shall be ignored by the receiver.
+ dummy1 CID-InclusionInfo-r4,
+ max-CID INTEGER (1..16383) DEFAULT 15,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy ROHC-PacketSizeList-r4
+}
+
+UL-RLC-Mode ::= CHOICE {
+ ul-AM-RLC-Mode UL-AM-RLC-Mode,
+ ul-UM-RLC-Mode UL-UM-RLC-Mode,
+ ul-TM-RLC-Mode UL-TM-RLC-Mode,
+ spare NULL
+}
+
+UL-TM-RLC-Mode ::= SEQUENCE {
+ transmissionRLC-Discard TransmissionRLC-Discard OPTIONAL,
+ segmentationIndication BOOLEAN
+}
+
+UL-UM-RLC-Mode ::= SEQUENCE {
+ transmissionRLC-Discard TransmissionRLC-Discard OPTIONAL
+}
+
+UL-TransportChannelType ::= CHOICE {
+ dch TransportChannelIdentity,
+ rach NULL,
+ -- dummy is not used in this version of the specification and
+ -- if received the UE behaviour is not specified.
+ dummy NULL,
+ usch TransportChannelIdentity
+}
+
+UM-RLC-DuplAvoid-Reord-Info-r6 ::= SEQUENCE {
+ timer-DAR TimerDAR-r6,
+ widowSize-DAR WindowSizeDAR-r6
+}
+
+UM-RLC-OutOSeqDelivery-Info-r6 ::= SEQUENCE {
+ timer-OSD TimerOSD-r6 OPTIONAL,
+ windowSize-OSD WindowSizeOSD-r6
+}
+
+WindowSizeDAR-r6 ::= ENUMERATED {
+ ws4, ws8, ws16, ws32, ws40, ws48,
+ ws56, ws64 }
+
+WindowSizeOSD-r6 ::= ENUMERATED {
+ ws8, ws16, ws32, ws40, ws48,
+ ws56, ws64 }
+
+-- ***************************************************
+--
+-- TRANSPORT CHANNEL INFORMATION ELEMENTS (10.3.5)
+--
+-- ***************************************************
+
+AddOrReconfMAC-dFlow ::= SEQUENCE {
+ mac-hs-AddReconfQueue-List MAC-hs-AddReconfQueue-List OPTIONAL,
+ mac-hs-DelQueue-List MAC-hs-DelQueue-List OPTIONAL
+}
+
+AddOrReconfMAC-ehs-ReordQ ::= SEQUENCE {
+ mac-ehs-AddReconfQueue-List MAC-ehs-AddReconfReordQ-List OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy MAC-ehs-DelReordQ-List OPTIONAL
+}
+
+AddOrReconfMAC-ehs-ReordQ-r9 ::= SEQUENCE {
+ mac-ehs-AddReconfQueue-List MAC-ehs-AddReconfReordQ-List-r9 OPTIONAL
+}
+
+AddOrReconfMAC-ehs-ReordQ-TDD128-v9c0ext ::= SEQUENCE {
+ mac-ehs-AddReconfQueue-List MAC-ehs-AddReconfReordQ-List-TDD128-v9c0ext OPTIONAL
+}
+
+AddOrReconfMAC-ehs-ReordQ-r11 ::= SEQUENCE {
+ mac-ehs-AddReconfQueue-List MAC-ehs-AddReconfReordQ-List-r11 OPTIONAL
+}
+
+AllowedTFC-List ::= SEQUENCE (SIZE (1..maxTFC)) OF
+ TFC-Value
+
+AllowedTFI-List ::= SEQUENCE (SIZE (1..maxTF)) OF
+ INTEGER (0..31)
+
+BitModeRLC-SizeInfo ::= CHOICE {
+ sizeType1 INTEGER (0..127),
+ -- Actual value sizeType2 = (part1 * 8) + 128 + part2
+ sizeType2 SEQUENCE {
+ part1 INTEGER (0..15),
+ part2 INTEGER (1..7) OPTIONAL
+ },
+ -- Actual value sizeType3 = (part1 * 16) + 256 + part2
+ sizeType3 SEQUENCE {
+ part1 INTEGER (0..47),
+ part2 INTEGER (1..15) OPTIONAL
+ },
+ -- Actual value sizeType4 = (part1 * 64) + 1024 + part2
+ sizeType4 SEQUENCE {
+ part1 INTEGER (0..62),
+ part2 INTEGER (1..63) OPTIONAL
+ }
+}
+
+-- Actual value BLER-QualityValue = IE value * 0.1
+BLER-QualityValue ::= INTEGER (-63..0)
+
+ChannelCodingType ::= CHOICE {
+ -- noCoding is only used for TDD in this version of the specification,
+ -- otherwise it should be ignored
+ noCoding NULL,
+ convolutional CodingRate,
+ turbo NULL
+}
+
+CodingRate ::= ENUMERATED {
+ half,
+ third }
+
+Common-E-DCH-MAC-d-Flow ::= SEQUENCE {
+ mac-d-FlowIdentity E-DCH-MAC-d-FlowIdentity,
+ mac-d-FlowPowerOffset E-DCH-MAC-d-FlowPowerOffset,
+ mac-d-FlowMaxRetrans E-DCH-MAC-d-FlowMaxRetrans,
+ mac-d-FlowMultiplexingList E-DCH-MAC-d-FlowMultiplexingList OPTIONAL,
+ e-dch-mac-d-flow-retransmission-timer E-DCH-MAC-d-FlowRetransTimer OPTIONAL
+}
+
+Common-E-DCH-MAC-d-FlowList ::= SEQUENCE (SIZE (1..maxE-DCHMACdFlow)) OF
+ Common-E-DCH-MAC-d-Flow
+
+Common-E-DCH-MAC-d-Flow-Info-ConcurrentTTI ::= SEQUENCE {
+ mac-d-FlowIdentity E-DCH-MAC-d-FlowIdentity,
+ mac-d-FlowPowerOffset E-DCH-MAC-d-FlowPowerOffset OPTIONAL,
+ mac-d-FlowMaxRetrans E-DCH-MAC-d-FlowMaxRetrans OPTIONAL
+}
+
+Common-E-DCH-MAC-d-Flow-Info-List-ConcurrentTTI ::= SEQUENCE (SIZE (1..maxE-DCHMACdFlow)) OF
+ Common-E-DCH-MAC-d-Flow-Info-ConcurrentTTI
+
+CommonDynamicTF-Info ::= SEQUENCE {
+ rlc-Size CHOICE {
+ fdd SEQUENCE {
+ octetModeRLC-SizeInfoType2 OctetModeRLC-SizeInfoType2
+ },
+ tdd SEQUENCE {
+ commonTDD-Choice CHOICE {
+ bitModeRLC-SizeInfo BitModeRLC-SizeInfo,
+ octetModeRLC-SizeInfoType1 OctetModeRLC-SizeInfoType1
+ }
+ }
+ },
+ numberOfTbSizeList SEQUENCE (SIZE (1..maxTF)) OF
+ NumberOfTransportBlocks,
+ logicalChannelList LogicalChannelList
+}
+
+CommonDynamicTF-Info-DynamicTTI ::= SEQUENCE {
+ commonTDD-Choice CHOICE {
+ bitModeRLC-SizeInfo BitModeRLC-SizeInfo,
+ octetModeRLC-SizeInfoType1 OctetModeRLC-SizeInfoType1
+ },
+ numberOfTbSizeAndTTIList NumberOfTbSizeAndTTIList,
+ logicalChannelList LogicalChannelList
+}
+
+CommonDynamicTF-InfoList ::= SEQUENCE (SIZE (1..maxTF)) OF
+ CommonDynamicTF-Info
+
+CommonDynamicTF-InfoList-DynamicTTI ::= SEQUENCE (SIZE (1..maxTF)) OF
+ CommonDynamicTF-Info-DynamicTTI
+
+CommonTransChTFS ::= SEQUENCE {
+ tti CHOICE {
+ tti10 CommonDynamicTF-InfoList,
+ tti20 CommonDynamicTF-InfoList,
+ tti40 CommonDynamicTF-InfoList,
+ tti80 CommonDynamicTF-InfoList,
+ dynamic CommonDynamicTF-InfoList-DynamicTTI
+ },
+ semistaticTF-Information SemistaticTF-Information
+}
+
+CommonTransChTFS-LCR ::= SEQUENCE {
+ tti CHOICE {
+ tti5 CommonDynamicTF-InfoList,
+ tti10 CommonDynamicTF-InfoList,
+ tti20 CommonDynamicTF-InfoList,
+ tti40 CommonDynamicTF-InfoList,
+ tti80 CommonDynamicTF-InfoList,
+ dynamic CommonDynamicTF-InfoList-DynamicTTI
+ },
+ semistaticTF-Information SemistaticTF-Information
+}
+
+Common-MAC-ehs-ReorderingQueue ::= SEQUENCE {
+ mac-ehs-QueueId MAC-ehs-QueueId,
+ t1-ReleaseTimer T1-ReleaseTimer,
+ reorderingResetTimer Treset-ResetTimer OPTIONAL,
+ mac-ehsWindowSize MAC-hs-WindowSize
+}
+
+Common-MAC-ehs-ReorderingQueueList ::= SEQUENCE (SIZE (1.. maxCommonQueueID)) OF
+ Common-MAC-ehs-ReorderingQueue
+
+Concurrent-Deployment-2ms-10ms-TTI ::= SEQUENCE {
+ tti-selection CHOICE {
+ fixed SEQUENCE {
+ fixed-TTI-Selection ENUMERATED { tti2, tti10 }
+ },
+ threshold-based SEQUENCE {
+ common-E-DCH-TTI-Selection-Thresh INTEGER (0..15)
+ }
+ },
+ concurrent-TTI-Partition-Index INTEGER (0..maxEDCHs-1),
+ commonEDCHSystemInfoParamConcurrentTTI CommonEDCHSystemInfoParamConcurrentTTI OPTIONAL
+}
+
+CPCH-SetID ::= INTEGER (1..maxCPCHsets)
+
+CRC-Size ::= ENUMERATED {
+ crc0, crc8, crc12, crc16, crc24 }
+
+DedicatedDynamicTF-Info ::= SEQUENCE {
+ rlc-Size CHOICE {
+ bitMode BitModeRLC-SizeInfo,
+ octetModeType1 OctetModeRLC-SizeInfoType1
+ },
+ numberOfTbSizeList SEQUENCE (SIZE (1..maxTF)) OF
+ NumberOfTransportBlocks,
+ logicalChannelList LogicalChannelList
+}
+
+DedicatedDynamicTF-Info-DynamicTTI ::= SEQUENCE {
+ rlc-Size CHOICE {
+ bitMode BitModeRLC-SizeInfo,
+ octetModeType1 OctetModeRLC-SizeInfoType1
+ },
+ numberOfTbSizeAndTTIList NumberOfTbSizeAndTTIList,
+ logicalChannelList LogicalChannelList
+}
+
+DedicatedDynamicTF-InfoList ::= SEQUENCE (SIZE (1..maxTF)) OF
+ DedicatedDynamicTF-Info
+
+DedicatedDynamicTF-InfoList-DynamicTTI ::= SEQUENCE (SIZE (1..maxTF)) OF
+ DedicatedDynamicTF-Info-DynamicTTI
+
+DedicatedTransChTFS ::= SEQUENCE {
+ tti CHOICE {
+ tti10 DedicatedDynamicTF-InfoList,
+ tti20 DedicatedDynamicTF-InfoList,
+ tti40 DedicatedDynamicTF-InfoList,
+ tti80 DedicatedDynamicTF-InfoList,
+ dynamic DedicatedDynamicTF-InfoList-DynamicTTI
+ },
+ semistaticTF-Information SemistaticTF-Information
+}
+
+-- The maximum allowed size of DL-AddReconfTransChInfo2List sequence is 16
+DL-AddReconfTransChInfo2List ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation2
+
+-- The maximum allowed size of DL-AddReconfTransChInfoList sequence is 16
+DL-AddReconfTransChInfoList ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation
+
+-- The maximum allowed size of DL-AddReconfTransChInfoList-r4 sequence is 16
+DL-AddReconfTransChInfoList-r4 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation-r4
+
+-- The maximum allowed size of DL-AddReconfTransChInfoList-r5 sequence is 16
+DL-AddReconfTransChInfoList-r5 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation-r5
+
+-- The maximum allowed size of DL-AddReconfTransChInfoList-r7 sequence is 16
+DL-AddReconfTransChInfoList-r7 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation-r7
+
+DL-AddReconfTransChInfoList-r9 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation-r9
+
+DL-AddReconfTransChInfoList-r13 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation-r13
+
+DL-AddReconfTransChInfoList-TDD128-v9c0ext ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation-TDD128-v9c0ext
+
+DL-AddReconfTransChInfoList-r11 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ DL-AddReconfTransChInformation-r11
+
+-- ASN.1 for IE "Added or Reconfigured DL TrCH information"
+-- in case of messages other than: Radio Bearer Release message and
+-- Radio Bearer Reconfiguration message
+DL-AddReconfTransChInformation ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-Type,
+ dl-transportChannelIdentity TransportChannelIdentity,
+ tfs-SignallingMode CHOICE {
+ explicit-config TransportFormatSet,
+ sameAsULTrCH UL-TransportChannelIdentity
+ },
+ dch-QualityTarget QualityTarget OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy TM-SignallingInfo OPTIONAL
+}
+
+DL-AddReconfTransChInformation-r4 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-Type,
+ dl-transportChannelIdentity TransportChannelIdentity,
+ tfs-SignallingMode CHOICE {
+ explicit-config TransportFormatSet,
+ sameAsULTrCH UL-TransportChannelIdentity
+ },
+ dch-QualityTarget QualityTarget OPTIONAL
+}
+
+DL-AddReconfTransChInformation-r5 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-TypeId1-r5,
+ tfs-SignallingMode CHOICE {
+ explicit-config TransportFormatSet,
+ sameAsULTrCH UL-TransportChannelIdentity,
+ hsdsch HSDSCH-Info
+ },
+ dch-QualityTarget QualityTarget OPTIONAL
+}
+
+DL-AddReconfTransChInformation-r7 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-TypeId1-r5,
+ tfs-SignallingMode CHOICE {
+ explicit-config TransportFormatSet,
+ sameAsULTrCH UL-TransportChannelIdentity,
+ hsdsch HSDSCH-Info-r7
+ },
+ dch-QualityTarget QualityTarget OPTIONAL
+}
+
+DL-AddReconfTransChInformation-r9 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-TypeId1-r5,
+ tfs-SignallingMode CHOICE {
+ explicit-config TransportFormatSet,
+ sameAsULTrCH UL-TransportChannelIdentity,
+ hsdsch HSDSCH-Info-r9
+ },
+ dch-QualityTarget QualityTarget OPTIONAL
+}
+
+DL-AddReconfTransChInformation-r13 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-TypeId1-r5,
+ tfs-SignallingMode CHOICE {
+ explicit-config TransportFormatSet,
+ sameAsULTrCH UL-TransportChannelIdentity,
+ hsdsch HSDSCH-Info-r13
+ },
+ dch-QualityTarget QualityTarget OPTIONAL
+}
+
+DL-AddReconfTransChInformation-TDD128-v9c0ext ::= SEQUENCE {
+ hsdsch HSDSCH-Info-TDD128-v9c0ext OPTIONAL
+}
+
+DL-AddReconfTransChInformation-r11 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-TypeId1-r5,
+ tfs-SignallingMode CHOICE {
+ explicit-config TransportFormatSet,
+ sameAsULTrCH UL-TransportChannelIdentity,
+ hsdsch HSDSCH-Info-r11
+ },
+ dch-QualityTarget QualityTarget OPTIONAL
+}
+
+-- ASN.1 for IE "Added or Reconfigured DL TrCH information"
+-- in case of Radio Bearer Release message and
+-- Radio Bearer Reconfiguration message
+DL-AddReconfTransChInformation2 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-Type,
+ transportChannelIdentity TransportChannelIdentity,
+ tfs-SignallingMode CHOICE {
+ explicit-config TransportFormatSet,
+ sameAsULTrCH UL-TransportChannelIdentity
+ },
+ qualityTarget QualityTarget OPTIONAL
+}
+
+DL-CommonTransChInfo ::= SEQUENCE {
+ sccpch-TFCS TFCS OPTIONAL,
+ -- modeSpecificInfo should be optional. A new version of this IE should be defined
+ -- to be used in later versions of messages using this IE
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ dl-Parameters CHOICE {
+ dl-DCH-TFCS TFCS,
+ sameAsUL NULL
+ } OPTIONAL
+ },
+ tdd SEQUENCE {
+ individualDL-CCTrCH-InfoList IndividualDL-CCTrCH-InfoList
+ OPTIONAL
+ }
+ }
+}
+
+DL-CommonTransChInfo-r4 ::= SEQUENCE {
+ sccpch-TFCS TFCS OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ dl-Parameters CHOICE {
+ dl-DCH-TFCS SEQUENCE {
+ tfcs TFCS OPTIONAL
+ },
+ sameAsUL NULL
+ } OPTIONAL
+ },
+ tdd SEQUENCE {
+ individualDL-CCTrCH-InfoList IndividualDL-CCTrCH-InfoList
+ OPTIONAL
+ }
+ } OPTIONAL
+}
+
+DL-DeletedTransChInfoList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ DL-TransportChannelIdentity
+
+DL-DeletedTransChInfoList-r5 ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ DL-TransportChannelIdentity-r5
+
+DL-DeletedTransChInfoList-r7 ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ DL-TransportChannelIdentity-r7
+
+DL-TransportChannelIdentity ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-Type,
+ dl-TransportChannelIdentity TransportChannelIdentity
+}
+
+DL-TransportChannelIdentity-r5 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-TypeId2-r5
+}
+
+DL-TransportChannelIdentity-r7 ::= SEQUENCE {
+ dl-TransportChannelType DL-TrCH-TypeId2-r7
+}
+
+-- The choice "dsch" should not be used in FDD mode, and if received the UE behaviour is unspecified
+DL-TrCH-Type ::= ENUMERATED {dch, dsch}
+
+DL-TrCH-TypeId1-r5 ::= CHOICE {
+ dch TransportChannelIdentity,
+ -- The choice "dsch" should not be used in FDD mode, and if received
+ -- the UE behaviour is unspecified.
+ dsch TransportChannelIdentity,
+ hsdsch NULL
+}
+
+DL-TrCH-TypeId2-r5 ::= CHOICE {
+ dch TransportChannelIdentity,
+ -- The choice "dsch" should not be used in FDD mode, and if received
+ -- the UE behaviour is unspecified.
+ dsch TransportChannelIdentity,
+ hsdsch MAC-d-FlowIdentity
+}
+
+DL-TrCH-TypeId2-r7 ::= CHOICE {
+ dch TransportChannelIdentity,
+ -- The choice "dsch" should not be used in FDD mode, and if received
+ -- the UE behaviour is unspecified.
+ dsch TransportChannelIdentity,
+ hsdsch CHOICE {
+ mac-hs MAC-d-FlowIdentity,
+ mac-ehs MAC-ehs-QueueId
+ }
+}
+
+DRAC-ClassIdentity ::= INTEGER (1..maxDRACclasses)
+
+DRAC-StaticInformation ::= SEQUENCE {
+ transmissionTimeValidity TransmissionTimeValidity,
+ timeDurationBeforeRetry TimeDurationBeforeRetry,
+ drac-ClassIdentity DRAC-ClassIdentity
+}
+
+DRAC-StaticInformationList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ DRAC-StaticInformation
+
+E-DCH-AddReconf-MAC-d-Flow ::= SEQUENCE {
+ mac-d-FlowIdentity E-DCH-MAC-d-FlowIdentity,
+ mac-d-FlowPowerOffset E-DCH-MAC-d-FlowPowerOffset OPTIONAL,
+ mac-d-FlowMaxRetrans E-DCH-MAC-d-FlowMaxRetrans OPTIONAL,
+ mac-d-FlowMultiplexingList E-DCH-MAC-d-FlowMultiplexingList OPTIONAL,
+ transmissionGrantType CHOICE {
+ non-ScheduledTransGrantInfo SEQUENCE {
+ maxMAC-e-PDUContents INTEGER (1..19982),
+ ms2-NonSchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL
+ },
+ scheduledTransmissionGrantInfo NULL
+ } OPTIONAL
+}
+
+E-DCH-AddReconf-MAC-d-Flow-r7 ::= SEQUENCE {
+ mac-d-FlowIdentity E-DCH-MAC-d-FlowIdentity,
+ mac-d-FlowPowerOffset E-DCH-MAC-d-FlowPowerOffset OPTIONAL,
+ mac-d-FlowMaxRetrans E-DCH-MAC-d-FlowMaxRetrans OPTIONAL,
+ mac-d-FlowRetransTimer E-DCH-MAC-d-FlowRetransTimer OPTIONAL,
+ mac-d-FlowMultiplexingList E-DCH-MAC-d-FlowMultiplexingList OPTIONAL,
+ transmissionGrantType CHOICE {
+ non-ScheduledTransGrantInfo SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ maxMAC-e-PDUContents INTEGER (1..19982),
+ ms2-NonSchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL
+ },
+ tdd NULL
+ }
+ },
+ scheduledTransmissionGrantInfo NULL
+ } OPTIONAL
+}
+
+E-DCH-AddReconf-MAC-d-FlowList ::= SEQUENCE (SIZE (1..maxE-DCHMACdFlow)) OF
+ E-DCH-AddReconf-MAC-d-Flow
+
+E-DCH-AddReconf-MAC-d-FlowList-r7 ::= SEQUENCE (SIZE (1..maxE-DCHMACdFlow)) OF
+ E-DCH-AddReconf-MAC-d-Flow-r7
+
+E-DCH-MAC-d-FlowIdentity ::= INTEGER (0..maxE-DCHMACdFlow-1)
+
+E-DCH-MAC-d-FlowMaxRetrans ::= INTEGER (0..15)
+
+E-DCH-MAC-d-FlowMultiplexingList ::= BIT STRING (SIZE (maxE-DCHMACdFlow))
+
+E-DCH-MAC-d-FlowPowerOffset ::= INTEGER (0..6)
+
+E-DCH-MAC-d-FlowRetransTimer ::= ENUMERATED {
+ ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50,
+ ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90, ms95,
+ ms100, ms110, ms120, ms140, ms160, ms200, ms240, ms280,
+ ms320, ms400, ms480, ms560 }
+
+E-DCH-TTI ::= ENUMERATED { tti2, tti10 }
+
+ExplicitTFCS-Configuration ::= CHOICE {
+ complete TFCS-ReconfAdd,
+ addition TFCS-ReconfAdd,
+ removal TFCS-RemovalList,
+ replacement SEQUENCE {
+ tfcsRemoval TFCS-RemovalList,
+ tfcsAdd TFCS-ReconfAdd
+ }
+}
+
+ExplicitTFCS-Configuration-r12 ::= CHOICE {
+ complete TFCS-ReconfAdd-r12,
+ addition TFCS-ReconfAdd-r12,
+ removal TFCS-RemovalList,
+ replacement SEQUENCE {
+ tfcsRemoval TFCS-RemovalList,
+ tfcsAdd TFCS-ReconfAdd-r12
+ }
+}
+
+GainFactor ::= INTEGER (0..15)
+
+GainFactorInformation ::= CHOICE {
+ signalledGainFactors SignalledGainFactors,
+ computedGainFactors ReferenceTFC-ID
+}
+
+GainFactorInformation-10msMode ::= CHOICE {
+ signalledGainFactors SEQUENCE {
+ gainFactorBetaC GainFactor,
+ gainFactorBetaD GainFactor,
+ referenceTFC-ID ReferenceTFC-ID OPTIONAL
+ },
+ computedGainFactors ReferenceTFC-ID
+}
+
+
+HSDSCH-Info ::= SEQUENCE {
+ harqInfo HARQ-Info OPTIONAL,
+ addOrReconfMAC-dFlow AddOrReconfMAC-dFlow OPTIONAL
+}
+
+HSDSCH-Info-r7 ::= SEQUENCE {
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ dl-MAC-HeaderType CHOICE {
+ mac-hs AddOrReconfMAC-dFlow,
+ mac-ehs AddOrReconfMAC-ehs-ReordQ
+ } OPTIONAL
+}
+
+HSDSCH-Info-r9 ::= SEQUENCE {
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ dl-MAC-HeaderType CHOICE {
+ mac-hs AddOrReconfMAC-dFlow,
+ mac-ehs AddOrReconfMAC-ehs-ReordQ-r9
+ } OPTIONAL
+}
+
+HSDSCH-Info-r13 ::= SEQUENCE {
+ harqInfo HARQ-Info-r13 OPTIONAL,
+ dl-MAC-HeaderType CHOICE {
+ mac-hs AddOrReconfMAC-dFlow,
+ mac-ehs AddOrReconfMAC-ehs-ReordQ-r9
+ } OPTIONAL
+}
+
+HSDSCH-Info-TDD128-v9c0ext ::= SEQUENCE {
+ mac-ehs AddOrReconfMAC-ehs-ReordQ-TDD128-v9c0ext OPTIONAL
+}
+
+HSDSCH-Info-r11 ::= SEQUENCE {
+ harqInfo HARQ-Info-r11 OPTIONAL,
+ dl-MAC-HeaderType CHOICE {
+ mac-hs AddOrReconfMAC-dFlow,
+ mac-ehs AddOrReconfMAC-ehs-ReordQ-r11
+ } OPTIONAL
+}
+
+HARQ-Info ::= SEQUENCE {
+ numberOfProcesses INTEGER (1..8),
+ memoryPartitioning CHOICE {
+ implicit NULL,
+ explicit SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize
+ }
+}
+
+HARQ-Info-r7 ::= SEQUENCE {
+ numberOfProcesses ENUMERATED { n1, n2, n3, n4, n5, n6, n7, n8,
+ n12, n14, n16 },
+ memoryPartitioning CHOICE {
+ implicit NULL,
+ explicit SEQUENCE {
+ memorySize SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize,
+ additionalMemorySizesForMIMO SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize OPTIONAL
+ }
+ }
+}
+
+HARQ-Info-r11 ::= SEQUENCE {
+ numberOfProcesses ENUMERATED { n1, n2, n3, n4, n5, n6, n7, n8,
+ n12, n14, n16, n24, n28, n32 },
+ memoryPartitioning CHOICE {
+ implicit NULL,
+ explicit SEQUENCE {
+ memorySize SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize,
+ additionalMemorySizesForMIMO SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize OPTIONAL,
+ additionalMemorySizesThirdMIMOStream SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize OPTIONAL,
+ additionalMemorySizesFourthMIMOStream SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize OPTIONAL
+ }
+ }
+}
+
+HARQ-Info-r13 ::= SEQUENCE {
+ numberOfProcesses ENUMERATED { n1, n2, n3, n4, n5, n6, n7, n8,
+ n12, n14, n16, n24, n28, n32 },
+ memoryPartitioning CHOICE {
+ implicit NULL,
+ explicit SEQUENCE {
+ memorySize SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize,
+ additionalMemorySizesForMIMO SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize OPTIONAL,
+ additionalMemorySizesThirdMIMOStream SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize OPTIONAL,
+ additionalMemorySizesFourthMIMOStream SEQUENCE (SIZE (1..maxHProcesses)) OF
+ HARQMemorySize OPTIONAL
+ }
+ },
+ blindHARQRetransmissionsForHSDPA ENUMERATED { true } OPTIONAL
+}
+
+HARQMemorySize ::= 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 }
+
+IndividualDL-CCTrCH-Info ::= SEQUENCE {
+ dl-TFCS-Identity TFCS-Identity,
+ tfcs-SignallingMode CHOICE {
+ explicit-config TFCS,
+ sameAsUL TFCS-Identity
+ }
+}
+
+IndividualDL-CCTrCH-InfoList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ IndividualDL-CCTrCH-Info
+
+IndividualUL-CCTrCH-Info ::= SEQUENCE {
+ ul-TFCS-Identity TFCS-Identity,
+ ul-TFCS TFCS ,
+ tfc-Subset TFC-Subset
+}
+
+IndividualUL-CCTrCH-InfoList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ IndividualUL-CCTrCH-Info
+
+LogicalChannelByRB ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ logChOfRb INTEGER (0..1) OPTIONAL
+}
+
+LogicalChannelList ::= CHOICE {
+ allSizes NULL,
+ configured NULL,
+ explicitList SEQUENCE (SIZE (1..15)) OF
+ LogicalChannelByRB
+}
+
+MAC-d-FlowIdentityDCHandHSDSCH ::= SEQUENCE {
+ dch-transport-ch-id TransportChannelIdentity,
+ hsdsch-mac-d-flow-id MAC-d-FlowIdentity
+}
+
+MAC-d-FlowIdentity ::= INTEGER (0..7)
+
+MAC-d-PDU-SizeInfo-List ::= SEQUENCE (SIZE(1.. maxMAC-d-PDUsizes)) OF
+ MAC-d-PDUsizeInfo
+
+--MAC-d-Pdu sizes need to be defined
+MAC-d-PDUsizeInfo ::= SEQUENCE{
+ mac-d-PDU-Size INTEGER (1..5000),
+ mac-d-PDU-Index INTEGER(0..7)
+}
+
+MAC-hs-AddReconfQueue-List ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF
+ MAC-hs-AddReconfQueue
+
+MAC-hs-AddReconfQueue ::= SEQUENCE {
+ mac-hsQueueId INTEGER(0..7),
+ mac-dFlowId MAC-d-FlowIdentity,
+ reorderingReleaseTimer T1-ReleaseTimer,
+ mac-hsWindowSize MAC-hs-WindowSize,
+ mac-d-PDU-SizeInfo-List MAC-d-PDU-SizeInfo-List OPTIONAL
+}
+
+MAC-hs-DelQueue-List ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF
+ MAC-hs-DelQueue
+
+MAC-hs-DelQueue ::= SEQUENCE {
+ mac-hsQueueId INTEGER(0..7)
+}
+
+MAC-ehs-AddReconfReordQ-List ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF
+ MAC-ehs-AddReconfReordQ
+
+MAC-ehs-AddReconfReordQ-List-r9 ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF
+ MAC-ehs-AddReconfReordQ-r9
+
+MAC-ehs-AddReconfReordQ-List-TDD128-v9c0ext ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF
+ MAC-ehs-AddReconfReordQ-TDD128-v9c0ext
+
+MAC-ehs-AddReconfReordQ-List-r11 ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF
+ MAC-ehs-AddReconfReordQ-r11
+
+MAC-ehs-AddReconfReordQ ::= SEQUENCE {
+ mac-ehs-QueueId MAC-ehs-QueueId,
+ reorderingReleaseTimer T1-ReleaseTimer,
+ reorderingResetTimer Treset-ResetTimer OPTIONAL,
+ mac-ehsWindowSize MAC-hs-WindowSize
+}
+
+MAC-ehs-AddReconfReordQ-r9 ::= SEQUENCE {
+ mac-ehs-QueueId MAC-ehs-QueueId,
+ reorderingReleaseTimer T1-ReleaseTimer,
+ reorderingResetTimer Treset-ResetTimer OPTIONAL,
+ mac-ehsWindowSize MAC-hs-WindowSize-r9
+}
+
+MAC-ehs-AddReconfReordQ-TDD128-v9c0ext ::= SEQUENCE {
+ mac-ehsWindowSize-extension MAC-ehs-WindowSize-TDD128-v9c0ext OPTIONAL
+}
+
+MAC-ehs-AddReconfReordQ-r11 ::= SEQUENCE {
+ mac-ehs-QueueId MAC-ehs-QueueId,
+ reorderingReleaseTimer T1-ReleaseTimer,
+ reorderingResetTimer Treset-ResetTimer OPTIONAL,
+ mac-ehsWindowSize MAC-hs-WindowSize-r11,
+ -- For 1.28Mcps TDD only
+ mac-ehsWindowSize-extension MAC-ehs-WindowSize-TDD128-v9c0ext OPTIONAL
+}
+
+MAC-ehs-DelReordQ-List ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF
+ MAC-ehs-DelReordQ
+
+MAC-ehs-DelReordQ ::= SEQUENCE {
+ mac-ehs-QueueId MAC-ehs-QueueId
+}
+
+MAC-ehs-QueueIdDCHandHSDSCH ::= SEQUENCE {
+ dch-transport-ch-id TransportChannelIdentity,
+ hsdsch-mac-ehs-QueueId MAC-ehs-QueueId
+}
+
+MAC-ehs-QueueId ::= INTEGER (0..7)
+
+MAC-hs-WindowSize ::= ENUMERATED {
+ mws4, mws6, mws8, mws12, mws16, mws24, mws32 }
+
+MAC-hs-WindowSize-r9 ::= ENUMERATED {
+ mws4, mws6, mws8, mws12, mws16, mws24, mws32,
+ mw64, mw128 }
+
+MAC-ehs-WindowSize-TDD128-v9c0ext ::= ENUMERATED {
+ mws96, mws160, mws192, mws256 }
+
+MAC-hs-WindowSize-r11 ::= ENUMERATED {
+ mws4, mws6, mws8, mws12, mws16, mws24, mws32,
+ mws64, mws128, mws256, spare6, spare5, spare4,
+ spare3, spare2, spare1 }
+
+NumberOfTbSizeAndTTIList ::= SEQUENCE (SIZE (1..maxTF)) OF SEQUENCE {
+ numberOfTransportBlocks NumberOfTransportBlocks,
+ transmissionTimeInterval TransmissionTimeInterval
+}
+
+MessType ::= ENUMERATED {
+ transportFormatCombinationControl }
+
+MinimumTEBS-threshold ::= ENUMERATED {
+ pl2, pl4, pl8, pl16, pl32,
+ pl64, pl128, pl256, pl512, pl1024,
+ pl2k, pl4k, pl8k, pl16k, pl32k,
+ pl64k, pl128k, pl256k, pl512k, pl1024k,
+ spare12, spare11, spare10, spare9, spare8,
+ spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1 }
+
+Non-allowedTFC-List ::= SEQUENCE (SIZE (1..maxTFC)) OF
+ TFC-Value
+
+NumberOfTransportBlocks ::= CHOICE {
+ zero NULL,
+ one NULL,
+ small INTEGER (2..17),
+ large INTEGER (18..512)
+}
+
+OctetModeRLC-SizeInfoType1 ::= CHOICE {
+ -- Actual size = (8 * sizeType1) + 16
+ sizeType1 INTEGER (0..31),
+ sizeType2 SEQUENCE {
+ -- Actual size = (32 * part1) + 272 + (part2 * 8)
+ part1 INTEGER (0..23),
+ part2 INTEGER (1..3) OPTIONAL
+ },
+ sizeType3 SEQUENCE {
+ -- Actual size = (64 * part1) + 1040 + (part2 * 8)
+ part1 INTEGER (0..61),
+ part2 INTEGER (1..7) OPTIONAL
+ }
+}
+
+OctetModeRLC-SizeInfoType2 ::= CHOICE {
+ -- Actual size = (sizeType1 * 8) + 48
+ sizeType1 INTEGER (0..31),
+ -- Actual size = (sizeType2 * 16) + 312
+ sizeType2 INTEGER (0..63),
+ -- Actual size = (sizeType3 *64) + 1384
+ sizeType3 INTEGER (0..56)
+}
+
+PowerOffsetInfoShort ::= SEQUENCE {
+ referenceTFC TFC-Value,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ gainFactorBetaC GainFactor
+ },
+ tdd NULL
+ },
+ gainFactorBetaD GainFactor
+}
+
+PowerOffsetInformation ::= SEQUENCE {
+ gainFactorInformation GainFactorInformation,
+ -- PowerOffsetPp-m is always absent in TDD
+ powerOffsetPp-m PowerOffsetPp-m OPTIONAL
+}
+
+PowerOffsetInformation-10msMode ::= SEQUENCE {
+ gainFactorInformation GainFactorInformation-10msMode
+}
+
+PowerOffsetPp-m ::= INTEGER (-5..10)
+
+PreDefTransChConfiguration ::= SEQUENCE {
+ ul-CommonTransChInfo UL-CommonTransChInfo,
+ ul-AddReconfTrChInfoList UL-AddReconfTransChInfoList,
+ dl-CommonTransChInfo DL-CommonTransChInfo,
+ dl-TrChInfoList DL-AddReconfTransChInfoList
+}
+
+QualityTarget ::= SEQUENCE {
+ bler-QualityValue BLER-QualityValue
+}
+
+RateMatchingAttribute ::= INTEGER (1..hiRM)
+
+
+ReferenceTFC-ID ::= INTEGER (0..3)
+
+RestrictedTrChInfo ::= SEQUENCE {
+ ul-TransportChannelType UL-TrCH-Type,
+ restrictedTrChIdentity TransportChannelIdentity,
+ allowedTFI-List AllowedTFI-List OPTIONAL
+}
+
+RestrictedTrChInfoList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ RestrictedTrChInfo
+
+SemistaticTF-Information ::= SEQUENCE {
+ -- TABULAR: Transmission time interval has been included in the IE CommonTransChTFS.
+ channelCodingType ChannelCodingType,
+ rateMatchingAttribute RateMatchingAttribute,
+ crc-Size CRC-Size
+}
+
+SignalledGainFactors ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ gainFactorBetaC GainFactor
+ },
+ tdd NULL
+ },
+ gainFactorBetaD GainFactor,
+ referenceTFC-ID ReferenceTFC-ID OPTIONAL
+}
+
+SplitTFCI-Signalling ::= SEQUENCE {
+ splitType SplitType OPTIONAL,
+ tfci-Field2-Length INTEGER (1..10) OPTIONAL,
+ tfci-Field1-Information ExplicitTFCS-Configuration OPTIONAL,
+ tfci-Field2-Information TFCI-Field2-Information OPTIONAL
+}
+
+SplitType ::= ENUMERATED {
+ hardSplit, logicalSplit }
+
+T1-ReleaseTimer ::= ENUMERATED {
+ rt10, rt20, rt30, rt40, rt50,
+ rt60, rt70, rt80, rt90, rt100,
+ rt120, rt140, rt160, rt200, rt300,
+ rt400 }
+
+TFC-Subset ::= CHOICE {
+ minimumAllowedTFC-Number TFC-Value,
+ allowedTFC-List AllowedTFC-List,
+ non-allowedTFC-List Non-allowedTFC-List,
+ restrictedTrChInfoList RestrictedTrChInfoList,
+ fullTFCS NULL
+}
+
+TFC-SubsetList ::= SEQUENCE (SIZE (1.. maxTFCsub)) OF SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd NULL,
+ tdd SEQUENCE {
+ tfcs-ID TFCS-Identity OPTIONAL
+ }
+ },
+ tfc-Subset TFC-Subset
+}
+
+TFC-Value ::= INTEGER (0..1023)
+
+TFCI-Field2-Information ::= CHOICE {
+ tfci-Range TFCI-RangeList,
+ explicit-config ExplicitTFCS-Configuration
+}
+
+TFCI-Range ::= SEQUENCE {
+ maxTFCIField2Value INTEGER (1..1023),
+ tfcs-InfoForDSCH TFCS-InfoForDSCH
+}
+
+TFCI-RangeList ::= SEQUENCE (SIZE (1..maxPDSCH-TFCIgroups)) OF
+ TFCI-Range
+
+TFCS ::= CHOICE {
+ normalTFCI-Signalling ExplicitTFCS-Configuration,
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received the UE behaviour is not specified.
+ dummy SplitTFCI-Signalling
+}
+
+TFCS-r12 ::= CHOICE {
+ normalTFCI-Signalling ExplicitTFCS-Configuration-r12
+}
+
+TFCS-Identity ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ sharedChannelIndicator BOOLEAN
+}
+
+TFCS-IdentityPlain ::= INTEGER (1..8)
+
+TFCS-InfoForDSCH ::= 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),
+ ctfc24bit INTEGER (0..16777215)
+}
+
+TFCS-ReconfAdd ::= SEQUENCE{
+ ctfcSize CHOICE{
+ ctfc2Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc2 INTEGER (0..3),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL
+ },
+ ctfc4Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc4 INTEGER (0..15),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL
+ },
+ ctfc6Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc6 INTEGER (0..63),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL
+ },
+ ctfc8Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc8 INTEGER (0..255),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL
+ },
+ ctfc12Bit SEQUENCE (SIZE(1..maxTFC)) OF SEQUENCE {
+ ctfc12 INTEGER (0..4095),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL
+ },
+ ctfc16Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc16 INTEGER(0..65535),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL
+ },
+ ctfc24Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc24 INTEGER(0..16777215),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL
+ }
+ }
+}
+
+TFCS-ReconfAdd-r12 ::= SEQUENCE{
+ ctfcSize CHOICE{
+ ctfc2Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc2 INTEGER (0..3),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL,
+ powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL
+ },
+ ctfc4Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc4 INTEGER (0..15),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL,
+ powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL
+ },
+ ctfc6Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc6 INTEGER (0..63),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL,
+ powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL
+ },
+ ctfc8Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc8 INTEGER (0..255),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL,
+ powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL
+ },
+ ctfc12Bit SEQUENCE (SIZE(1..maxTFC)) OF SEQUENCE {
+ ctfc12 INTEGER (0..4095),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL,
+ powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL
+ },
+ ctfc16Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc16 INTEGER(0..65535),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL,
+ powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL
+ },
+ ctfc24Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
+ ctfc24 INTEGER(0..16777215),
+ powerOffsetInformation PowerOffsetInformation OPTIONAL,
+ powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL
+ }
+ }
+}
+
+TFCS-Removal ::= SEQUENCE {
+ tfci INTEGER (0..1023)
+}
+
+TFCS-RemovalList ::= SEQUENCE (SIZE (1..maxTFC)) OF
+ TFCS-Removal
+
+TimeDurationBeforeRetry ::= INTEGER (1..256)
+
+TM-SignallingInfo ::= SEQUENCE {
+ messType MessType,
+ tm-SignallingMode CHOICE {
+ mode1 NULL,
+ mode2 SEQUENCE {
+ -- in ul-controlledTrChList, TrCH-Type is always DCH
+ ul-controlledTrChList UL-ControlledTrChList
+ }
+ }
+}
+
+TransmissionTimeInterval ::= ENUMERATED {
+ tti10, tti20, tti40, tti80 }
+
+TransmissionTimeValidity ::= INTEGER (1..256)
+
+TransportChannelConcatInfo ::= SEQUENCE (SIZE (1..maxTrCHConcat)) OF
+ TransportChannelIdentity
+
+TransportChannelIdentity ::= INTEGER (1..32)
+
+TransportChannelIdentityDCHandDSCH ::= SEQUENCE {
+ dch-transport-ch-id TransportChannelIdentity,
+ dsch-transport-ch-id TransportChannelIdentity
+}
+
+
+TransportFormatSet ::= CHOICE {
+ dedicatedTransChTFS DedicatedTransChTFS,
+ commonTransChTFS CommonTransChTFS
+}
+
+TransportFormatSet-LCR ::= CHOICE {
+ dedicatedTransChTFS DedicatedTransChTFS,
+ commonTransChTFS-LCR CommonTransChTFS-LCR
+}
+
+Treset-ResetTimer ::= ENUMERATED {
+ rt1, rt2, rt3, rt4 }
+
+-- The maximum allowed size of UL-AddReconfTransChInfoList sequence is 16
+UL-AddReconfTransChInfoList ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF
+ UL-AddReconfTransChInformation
+
+-- The maximum allowed size of UL-AddReconfTransChInfoList-r6 sequence is 32
+UL-AddReconfTransChInfoList-r6 ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ UL-AddReconfTransChInformation-r6
+
+-- The maximum allowed size of UL-AddReconfTransChInfoList-r7 sequence is 32
+UL-AddReconfTransChInfoList-r7 ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ UL-AddReconfTransChInformation-r7
+
+-- The maximum allowed size of UL-AddReconfTransChInfoList-r8 sequence is 32
+UL-AddReconfTransChInfoList-r8 ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ UL-AddReconfTransChInformation-r8
+
+UL-AddReconfTransChInformation ::= SEQUENCE {
+ ul-TransportChannelType UL-TrCH-Type,
+ transportChannelIdentity TransportChannelIdentity,
+ transportFormatSet TransportFormatSet
+}
+
+UL-AddReconfTransChInformation-r6 ::= CHOICE {
+ dch-usch SEQUENCE {
+ ul-TransportChannelType UL-TrCH-Type,
+ transportChannelIdentity TransportChannelIdentity,
+ transportFormatSet TransportFormatSet
+ },
+ e-dch SEQUENCE {
+ tti E-DCH-TTI,
+ harq-Info ENUMERATED { rv0, rvtable },
+ addReconf-MAC-d-FlowList E-DCH-AddReconf-MAC-d-FlowList OPTIONAL
+ }
+}
+
+UL-AddReconfTransChInformation-r7 ::= CHOICE {
+ dch-usch SEQUENCE {
+ ul-TransportChannelType UL-TrCH-Type,
+ transportChannelIdentity TransportChannelIdentity,
+ transportFormatSet TransportFormatSet
+ },
+ e-dch SEQUENCE {
+ modeSpecific CHOICE {
+ fdd SEQUENCE {
+ tti E-DCH-TTI
+ },
+ tdd NULL
+ },
+ harq-Info ENUMERATED { rv0, rvtable },
+ addReconf-MAC-d-FlowList E-DCH-AddReconf-MAC-d-FlowList-r7 OPTIONAL
+ }
+}
+
+UL-AddReconfTransChInformation-r8 ::= CHOICE {
+ dch-usch SEQUENCE {
+ ul-TransportChannelType UL-TrCH-Type,
+ transportChannelIdentity TransportChannelIdentity,
+ transportFormatSet TransportFormatSet
+ },
+ e-dch SEQUENCE {
+ ul-MAC-HeaderType ENUMERATED { mac-iis } OPTIONAL,
+ modeSpecific CHOICE {
+ fdd SEQUENCE {
+ tti E-DCH-TTI
+ },
+ tdd NULL
+ },
+ harq-Info ENUMERATED { rv0, rvtable },
+ addReconf-MAC-d-FlowList E-DCH-AddReconf-MAC-d-FlowList-r7 OPTIONAL
+ }
+}
+
+UL-CommonTransChInfo ::= SEQUENCE {
+ -- TABULAR: tfc-subset is applicable to FDD only, TDD specifies tfc-subset in individual
+ -- CCTrCH Info.
+ tfc-Subset TFC-Subset OPTIONAL,
+ prach-TFCS TFCS OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-TFCS TFCS
+ },
+ tdd SEQUENCE {
+
+ individualUL-CCTrCH-InfoList IndividualUL-CCTrCH-InfoList
+ OPTIONAL
+ }
+ } OPTIONAL
+}
+
+UL-CommonTransChInfo-r4 ::= SEQUENCE {
+ -- TABULAR: tfc-subset is applicable to FDD only, TDD specifies tfc-subset in individual
+ -- CCTrCH Info.
+ tfc-Subset TFC-Subset OPTIONAL,
+ prach-TFCS TFCS OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-TFCS TFCS
+ },
+ tdd SEQUENCE {
+ individualUL-CCTrCH-InfoList IndividualUL-CCTrCH-InfoList OPTIONAL
+ }
+ } OPTIONAL,
+ tfc-SubsetList TFC-SubsetList OPTIONAL
+}
+
+UL-CommonTransChInfo-r12 ::= SEQUENCE {
+ -- TABULAR: tfc-subset is applicable to FDD only, TDD specifies tfc-subset in individual
+ -- CCTrCH Info.
+ tfc-Subset TFC-Subset OPTIONAL,
+ prach-TFCS TFCS OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-TFCS TFCS-r12
+ },
+ tdd SEQUENCE {
+ individualUL-CCTrCH-InfoList IndividualUL-CCTrCH-InfoList OPTIONAL
+ }
+ } OPTIONAL,
+ tfc-SubsetList TFC-SubsetList OPTIONAL
+}
+
+-- In UL-ControlledTrChList, TrCH-Type is always DCH
+UL-ControlledTrChList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ TransportChannelIdentity
+
+UL-DeletedTransChInfoList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ UL-TransportChannelIdentity
+
+UL-DeletedTransChInfoList-r6 ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ UL-TransportChannelIdentity-r6
+
+UL-TransportChannelIdentity ::= SEQUENCE {
+ ul-TransportChannelType UL-TrCH-Type,
+ ul-TransportChannelIdentity TransportChannelIdentity
+}
+
+UL-TransportChannelIdentity-r6 ::= CHOICE {
+ dch-usch SEQUENCE {
+ ul-TransportChannelType UL-TrCH-Type,
+ ul-TransportChannelIdentity TransportChannelIdentity
+ },
+ e-dch E-DCH-MAC-d-FlowIdentity
+}
+
+UL-TrCH-Type ::= ENUMERATED {dch, usch}
+
+USCH-TransportChannelsInfo ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ SEQUENCE {
+ usch-TransportChannelIdentity TransportChannelIdentity,
+ usch-TFS TransportFormatSet
+}
+
+-- ***************************************************
+--
+-- PHYSICAL CHANNEL INFORMATION ELEMENTS (10.3.6)
+--
+-- ***************************************************
+
+ACK-NACK-repetitionFactor ::= INTEGER(1..4)
+
+ActivationDelay::= ENUMERATED {
+ radio-frames-0,
+ radio-frames-1,
+ radio-frames-2,
+ radio-frames-3,
+ radio-frames-4,
+ radio-frames-5,
+ spare2,
+ spare1 }
+
+AC-To-ASC-Mapping ::= INTEGER (0..7)
+
+AC-To-ASC-MappingTable ::= SEQUENCE (SIZE (maxASCmap)) OF
+ AC-To-ASC-Mapping
+
+AccessServiceClass-FDD ::= SEQUENCE {
+ availableSignatureStartIndex INTEGER (0..15),
+ availableSignatureEndIndex INTEGER (0..15),
+
+ assignedSubChannelNumber BIT STRING {
+ b3(0),
+ b2(1),
+ b1(2),
+ b0(3)
+ } (SIZE(4))
+}
+
+AccessServiceClass-TDD ::= SEQUENCE {
+ channelisationCodeIndices BIT STRING {
+ chCodeIndex7(0),
+ chCodeIndex6(1),
+ chCodeIndex5(2),
+ chCodeIndex4(3),
+ chCodeIndex3(4),
+ chCodeIndex2(5),
+ chCodeIndex1(6),
+ chCodeIndex0(7)
+ } (SIZE(8)) OPTIONAL,
+ subchannelSize CHOICE {
+ size1 NULL,
+ size2 SEQUENCE {
+ -- subch0 means bitstring '01' in the tabular, subch1 means bitsring '10'
+ subchannels ENUMERATED { subch0, subch1 } OPTIONAL
+ },
+ size4 SEQUENCE {
+ subchannels BIT STRING {
+ subCh3(0),
+ subCh2(1),
+ subCh1(2),
+ subCh0(3)
+ } (SIZE(4)) OPTIONAL
+ },
+ size8 SEQUENCE {
+ subchannels BIT STRING {
+ subCh7(0),
+ subCh6(1),
+ subCh5(2),
+ subCh4(3),
+ subCh3(4),
+ subCh2(5),
+ subCh1(6),
+ subCh0(7)
+ } (SIZE(8)) OPTIONAL
+ }
+ }
+}
+
+AccessServiceClass-TDD-r7 ::= SEQUENCE {
+ channelisationCodeIndices BIT STRING {
+ chCodeIndex15(0),
+ chCodeIndex14(1),
+ chCodeIndex13(2),
+ chCodeIndex12(3),
+ chCodeIndex11(4),
+ chCodeIndex10(5),
+ chCodeIndex9(6),
+ chCodeIndex8(7),
+ chCodeIndex7(8),
+ chCodeIndex6(9),
+ chCodeIndex5(10),
+ chCodeIndex4(11),
+ chCodeIndex3(12),
+ chCodeIndex2(13),
+ chCodeIndex1(14),
+ chCodeIndex0(15)
+ } (SIZE(16)) OPTIONAL,
+ subchannelSize CHOICE {
+ size1 NULL,
+ size2 SEQUENCE {
+ -- subch0 means bitstring '01' in the tabular, subch1 means bitsring '10'
+ subchannels ENUMERATED { subch0, subch1 } OPTIONAL
+ },
+ size4 SEQUENCE {
+ subchannels BIT STRING {
+ subCh3(0),
+ subCh2(1),
+ subCh1(2),
+ subCh0(3)
+ } (SIZE(4)) OPTIONAL
+ },
+ size8 SEQUENCE {
+ subchannels BIT STRING {
+ subCh7(0),
+ subCh6(1),
+ subCh5(2),
+ subCh4(3),
+ subCh3(4),
+ subCh2(5),
+ subCh1(6),
+ subCh0(7)
+ } (SIZE(8)) OPTIONAL
+ },
+ size16 SEQUENCE {
+ subchannels BIT STRING {
+ subCh15(0),
+ subCh14(1),
+ subCh13(2),
+ subCh12(3),
+ subCh11(4),
+ subCh10(5),
+ subCh9(6),
+ subCh8(7),
+ subCh7(8),
+ subCh6(9),
+ subCh5(10),
+ subCh4(11),
+ subCh3(12),
+ subCh2(13),
+ subCh1(14),
+ subCh0(15)
+ } (SIZE(16)) OPTIONAL
+ }
+ }
+}
+
+AccessServiceClass-TDD-LCR-r4 ::= SEQUENCE {
+ availableSYNC-UlCodesIndics BIT STRING {
+ sulCodeIndex7(0),
+ sulCodeIndex6(1),
+ sulCodeIndex5(2),
+ sulCodeIndex4(3),
+ sulCodeIndex3(4),
+ sulCodeIndex2(5),
+ sulCodeIndex1(6),
+ sulCodeIndex0(7)
+ } (SIZE(8)) OPTIONAL,
+ subchannelSize CHOICE {
+ size1 NULL,
+ size2 SEQUENCE {
+ -- subch0 means bitstring '01' in the tabular, subch1 means bitsring '10'.
+ subchannels ENUMERATED { subch0, subch1 } OPTIONAL
+ },
+ size4 SEQUENCE {
+ subchannels BIT STRING {
+ subCh3(0),
+ subCh2(1),
+ subCh1(2),
+ subCh0(3)
+ } (SIZE(4)) OPTIONAL
+ },
+ size8 SEQUENCE {
+ subchannels BIT STRING {
+ subCh7(0),
+ subCh6(1),
+ subCh5(2),
+ subCh4(3),
+ subCh3(4),
+ subCh2(5),
+ subCh1(6),
+ subCh0(7)
+ } (SIZE(8)) OPTIONAL
+ }
+ }
+
+}
+
+ActivationTimeOffset ::= INTEGER (0 .. 255)
+
+AdditionalPRACH-TF-and-TFCS-CCCH-IEs ::= SEQUENCE {
+ powerOffsetInformation PowerOffsetInformation,
+ dynamicTFInformationCCCH DynamicTFInformationCCCH
+}
+
+AdditionalPRACH-TF-and-TFCS-CCCH ::= SEQUENCE {
+ additionalPRACH-TF-and-TFCS-CCCH-IEs AdditionalPRACH-TF-and-TFCS-CCCH-IEs OPTIONAL
+}
+
+-- The order is the same as in the PRACH-SystemInformationList
+AdditionalPRACH-TF-and-TFCS-CCCH-List ::= SEQUENCE (SIZE (1..maxPRACH)) OF
+ AdditionalPRACH-TF-and-TFCS-CCCH
+
+AdditionalDLSecCellInfoListFDD ::= SEQUENCE (SIZE (2)) OF
+ AdditionalDLSecCellInfoFDD
+
+AdditionalDLSecCellInfoListFDD-r11 ::= SEQUENCE (SIZE (2)) OF
+ AdditionalDLSecCellInfoFDD-r11
+
+AdditionalDLSecCellInfoListFDD2 ::= SEQUENCE (SIZE (4)) OF
+ AdditionalDLSecCellInfoFDD-r11
+
+AdditionalDLSecCellInfoHandoverToUtranListFDD ::= SEQUENCE (SIZE (2)) OF
+ AdditionalDLSecCellInfoFDD-HandoverToUtran
+
+-- AdditionalDLSecCellInfoFDD is introduced to avoid a SEQUENCE of SEQUENCE, a convention in RAN2.
+AdditionalDLSecCellInfoFDD ::= SEQUENCE {
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL
+}
+
+AdditionalDLSecCellInfoFDD-r11 ::= SEQUENCE {
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL
+}
+
+AdditionalDLSecCellInfoFDD-HandoverToUtran::= SEQUENCE {
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-HandoverToUtran OPTIONAL
+}
+
+AICH-Info ::= SEQUENCE {
+ channelisationCode256 ChannelisationCode256,
+ sttd-Indicator BOOLEAN,
+ aich-TransmissionTiming AICH-TransmissionTiming
+}
+
+AICH-Info-Compressed ::= SEQUENCE {
+ channelisationCode256 ChannelisationCode256
+}
+
+AICH-PowerOffset ::= INTEGER (-22..5)
+
+AICH-TransmissionTiming ::= ENUMERATED {
+ e0, e1 }
+
+AllocationPeriodInfo ::= SEQUENCE {
+ allocationActivationTime INTEGER (0..255),
+ allocationDuration INTEGER (1..256)
+}
+
+-- Actual value Alpha = IE value * 0.125
+Alpha ::= INTEGER (0..8)
+
+Antenna3And4 ::= SEQUENCE {
+ antenna3And4-S-CPICH Antenna3And4-S-CPICH OPTIONAL,
+ antenna3And4-D-CPICH Antenna3And4-D-CPICH OPTIONAL
+}
+
+Antenna3And4-S-CPICH ::= SEQUENCE {
+ antenna3-S-CPICH Antenna3-S-CPICH OPTIONAL,
+ antenna4-S-CPICH Antenna4-S-CPICH OPTIONAL,
+ s-cpich-PowerOffset-Mimo S-CPICH-PowerOffset-4x4MIMO OPTIONAL
+}
+
+Antenna3And4-D-CPICH ::= SEQUENCE {
+ antenna3-D-CPICH Antenna3-D-CPICH OPTIONAL,
+ antenna4-D-CPICH Antenna4-D-CPICH OPTIONAL,
+ d-cpich-PowerOffset-Mimo D-CPICH-PowerOffset-4x4MIMO OPTIONAL,
+ initialD-CPICHStatus ENUMERATED { activated } OPTIONAL
+}
+
+Antenna3-D-CPICH ::= SEQUENCE {
+ channelisationCode ChannelisationCode256
+}
+
+Antenna4-D-CPICH ::= SEQUENCE {
+ channelisationCode ChannelisationCode256
+}
+
+Antenna3-S-CPICH ::= SEQUENCE {
+ channelisationCode ChannelisationCode256
+}
+
+Antenna4-S-CPICH ::= SEQUENCE {
+ channelisationCode ChannelisationCode256
+}
+
+AP-AICH-ChannelisationCode ::= INTEGER (0..255)
+
+AP-PreambleScramblingCode ::= INTEGER (0..79)
+
+AP-Signature ::= INTEGER (0..15)
+
+AP-Signature-VCAM ::= SEQUENCE {
+ ap-Signature AP-Signature,
+ availableAP-SubchannelList AvailableAP-SubchannelList OPTIONAL
+}
+
+AP-Subchannel ::= INTEGER (0..11)
+
+ASCSetting-FDD ::= SEQUENCE {
+ -- TABULAR: accessServiceClass-FDD is MD in tabular description
+ -- Default value is previous ASC
+ -- If this is the first ASC, the default value is all available signature and sub-channels
+ accessServiceClass-FDD AccessServiceClass-FDD OPTIONAL
+}
+
+ASCSetting-TDD ::= SEQUENCE {
+ -- TABULAR: accessServiceClass-TDD is MD in tabular description
+ -- Default value is previous ASC
+ -- If this is the first ASC, the default value is all available channelisation codes and
+ -- all available sub-channels with subchannelSize=size1.
+ accessServiceClass-TDD AccessServiceClass-TDD OPTIONAL
+}
+
+ASCSetting-TDD-r7 ::= SEQUENCE {
+ -- TABULAR: accessServiceClass-TDD is MD in tabular description
+ -- Default value is previous ASC
+ -- If this is the first ASC, the default value is all available channelisation codes and
+ -- all available sub-channels with subchannelSize=size1.
+ accessServiceClass-TDD AccessServiceClass-TDD-r7 OPTIONAL
+}
+
+ASCSetting-TDD-LCR-r4 ::= SEQUENCE {
+ -- TABULAR: accessServiceClass-TDD-LCR is MD in tabular description
+ -- Default value is previous ASC
+ -- If this is the first ASC, the default value is all available SYNC_UL codes and
+ -- all available sub-channels with subchannelSize=size1.
+ accessServiceClass-TDD-LCR AccessServiceClass-TDD-LCR-r4 OPTIONAL
+}
+
+AvailableAP-Signature-VCAMList ::= SEQUENCE (SIZE (1..maxPCPCH-APsig)) OF
+ AP-Signature-VCAM
+
+AvailableAP-SignatureList ::= SEQUENCE (SIZE (1..maxPCPCH-APsig)) OF
+ AP-Signature
+
+AvailableAP-SubchannelList ::= SEQUENCE (SIZE (1..maxPCPCH-APsubCh)) OF
+ AP-Subchannel
+
+AvailableMinimumSF-ListVCAM ::= SEQUENCE (SIZE (1..maxPCPCH-SF)) OF
+ AvailableMinimumSF-VCAM
+
+AvailableMinimumSF-VCAM ::= SEQUENCE {
+ minimumSpreadingFactor MinimumSpreadingFactor,
+ nf-Max NF-Max,
+ maxAvailablePCPCH-Number MaxAvailablePCPCH-Number,
+ availableAP-Signature-VCAMList AvailableAP-Signature-VCAMList
+}
+
+AvailableSignatures ::= 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))
+
+AvailableSubChannelNumbers ::= 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))
+
+BEACON-PL-Est ::= ENUMERATED { true }
+
+BurstType ::= ENUMERATED {
+ type1, type2 }
+
+-- Actual value Bler-Target = IE value * 0.05
+Bler-Target ::= INTEGER (-63..0)
+
+CCTrCH-PowerControlInfo ::= SEQUENCE {
+ tfcs-Identity TFCS-Identity OPTIONAL,
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo
+}
+
+CCTrCH-PowerControlInfo-r4 ::= SEQUENCE {
+ tfcs-Identity TFCS-Identity OPTIONAL,
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r4
+}
+
+CCTrCH-PowerControlInfo-r5 ::= SEQUENCE {
+ tfcs-Identity TFCS-Identity OPTIONAL,
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r5
+}
+
+CCTrCH-PowerControlInfo-r7 ::= SEQUENCE {
+ tfcs-Identity TFCS-Identity OPTIONAL,
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r7
+}
+
+CD-AccessSlotSubchannel ::= INTEGER (0..11)
+
+CD-AccessSlotSubchannelList ::= SEQUENCE (SIZE (1..maxPCPCH-CDsubCh)) OF
+ CD-AccessSlotSubchannel
+
+CD-CA-ICH-ChannelisationCode ::= INTEGER (0..255)
+
+CD-PreambleScramblingCode ::= INTEGER (0..79)
+
+CD-SignatureCode ::= INTEGER (0..15)
+
+CD-SignatureCodeList ::= SEQUENCE (SIZE (1..maxPCPCH-CDsig)) OF
+ CD-SignatureCode
+
+CellAndChannelIdentity ::= SEQUENCE {
+ -- burstType may be set to either value and should be ignored by the receiver for 1.28 Mcps TDD.
+ burstType BurstType,
+ midambleShift MidambleShiftLong,
+ timeslot TimeslotNumber,
+ cellParametersID CellParametersID
+ }
+
+CellParametersID ::= INTEGER (0..127)
+
+Cfntargetsfnframeoffset ::= INTEGER(0..255)
+
+ChannelAssignmentActive ::= CHOICE {
+ notActive NULL,
+ isActive AvailableMinimumSF-ListVCAM
+}
+
+ChannelisationCode256 ::= INTEGER (0..255)
+
+ChannelReqParamsForUCSM ::= SEQUENCE {
+ availableAP-SignatureList AvailableAP-SignatureList,
+ availableAP-SubchannelList AvailableAP-SubchannelList OPTIONAL
+}
+
+ClosedLoopTimingAdjMode ::= ENUMERATED {
+ slot1, slot2 }
+
+CodeNumberDSCH ::= INTEGER (0..255)
+
+CodeRange ::= SEQUENCE {
+ pdsch-CodeMapList PDSCH-CodeMapList
+}
+
+CodeResourceInformation-TDD128 ::= SEQUENCE {
+ start-code HS-ChannelisationCode-LCR,
+ stop-code HS-ChannelisationCode-LCR
+}
+
+CodeWordSet ::= ENUMERATED {
+ longCWS,
+ mediumCWS,
+ shortCWS,
+ ssdtOff }
+
+Common-E-DCH-ResourceInfoList ::= SEQUENCE {
+ s-offset INTEGER (0..9) OPTIONAL,
+ f-dpch-ChannelisationCodeNumber INTEGER (0..255) OPTIONAL,
+ e-RGCH-Information E-RGCH-Information-CommonEdch OPTIONAL,
+ e-hich-Info E-HICH-Information-CommonEdch,
+ ul-DPCH-CodeInfoForCommonEDCH UL-DPCH-CodeInfoForCommonEDCH
+}
+
+Common-E-DCH-ResourceInfoListExt ::= SEQUENCE {
+ twoMsHarqConfiguration TwoMsHarqConfiguration
+}
+
+Common-E-RNTI-Info ::= SEQUENCE (SIZE (1..maxERUCCH)) OF
+ SEQUENCE {
+ starting-E-RNTI E-RNTI,
+ number-of-group INTEGER (1..maxERNTIgroup),
+ number-of-ENRTI-per-group INTEGER (1..maxERNTIperGroup)
+}
+
+CommonEDCHResourceConfigInfoListExt::= SEQUENCE {
+ scheduledTransmissionConfiguration ScheduledTransmissionConfiguration OPTIONAL,
+ cOffset INTEGER (0..29) OPTIONAL
+}
+
+ -- For FDD, the network should not include the IE CommonEDCHSystemInfo.
+ -- Instead, the IE commonEDCHSystemInfoFDD should be used.
+ -- If included, the UE behavior is unspecified.
+CommonEDCHSystemInfo ::= SEQUENCE {
+ ul-InterferenceForCommonEDCH UL-Interference OPTIONAL,
+ common-E-DCH-MAC-d-FlowList Common-E-DCH-MAC-d-FlowList,
+ modeSpecificInfo CHOICE {
+ dummy SEQUENCE {},
+ tdd CHOICE {
+ tdd768 NULL,
+ tdd384 NULL,
+ tdd128 SEQUENCE {
+ e-RUCCH-Info E-RUCCH-Info-TDD128,
+ e-PUCH-Info E-PUCH-Info-TDD128,
+ e-hich-Information E-HICH-Information-TDD128,
+ e-agch-Information E-AGCH-Information-TDD128,
+ harq-Info ENUMERATED { rv0, rvtable },
+ ccch-transmission-Info SEQUENCE {
+ common-e-rnti-Info Common-E-RNTI-Info,
+ harq-MaximumNumberOfRetransmissions INTEGER (0..7),
+ harq-retransmission-timer ENUMERATED {
+ ms10, ms15, ms20, ms25,
+ ms30, ms35, ms40, ms45,
+ ms50, ms55, ms60, ms65,
+ ms70, ms75, ms80, ms85,
+ ms90, ms95, ms100, ms110,
+ ms120, ms140, ms160 },
+ harq-power-offset INTEGER (0..6)
+ }
+ }
+ }
+ }
+}
+
+CommonEDCHSystemInfoFDD ::= SEQUENCE {
+ ul-InterferenceForCommonEDCH UL-Interference OPTIONAL,
+ common-E-DCH-MAC-d-FlowList Common-E-DCH-MAC-d-FlowList,
+ prach-PreambleForEnhancedUplink PRACH-PreambleForEnhancedUplink,
+ initialServingGrantValue INTEGER (0..37),
+ e-dch-TTI E-DCH-TTI,
+ e-agch-Information E-AGCH-Information,
+ harq-Info ENUMERATED { rv0, rvtable },
+ ul-DPCHpowerControlInfoForCommonEDCH
+ UL-DPCHpowerControlInfoForCommonEDCH,
+ e-dpcch-Info E-DPCCH-Info-r7,
+ e-dpdch-Info E-DPDCH-Info-r8,
+ -- Actual value dl-FDPCH-TPCcommandErrorRate = IE value * 0.01
+ dl-FDPCH-TPCcommandErrorRate INTEGER (1..10),
+ additional-E-DCH-TransmitBackoff INTEGER (0..15),
+ max-CCCH-ResourceAllocation ENUMERATED {
+ tti8, tti12, tti16, tti20, tti24, tti32,
+ tti40, tti80 },
+ max-PeriodForCollisionResolution INTEGER (8..24),
+ e-dch-TransmitContinuationOffset ENUMERATED {
+ tti0, tti4, tti8, tti16, tti24, tti40,
+ tti80,infinity },
+ ack-nack-support-on-HS-DPCCH BOOLEAN,
+ measurement-Feedback-Info Measurement-Feedback-Info-r7 OPTIONAL,
+ common-E-DCH-ResourceInfoList SEQUENCE (SIZE (1..maxEDCHs)) OF
+ Common-E-DCH-ResourceInfoList
+}
+
+CommonEDCHSystemInfoParamConcurrentTTI ::= SEQUENCE {
+ common-E-DCH-MAC-d-Flow-Info-List-ConcurrentTTI
+ Common-E-DCH-MAC-d-Flow-Info-List-ConcurrentTTI OPTIONAL,
+ initialServingGrantValue INTEGER (0..37) OPTIONAL,
+ e-agch-Information E-AGCH-Information OPTIONAL,
+ ul-DPCHpowerControlInfoConcurrentTTI
+ UL-DPCHpowerControlInfoConcurrentTTI OPTIONAL,
+ e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL,
+ e-dpdch-Info E-DPDCH-Info-r8,
+ additional-E-DCH-TransmitBackoff INTEGER (0..15) OPTIONAL,
+ max-CCCH-ResourceAllocation ENUMERATED {
+ tti8, tti12, tti16, tti20, tti24, tti32,
+ tti40, tti80 } OPTIONAL,
+ max-PeriodForCollisionResolution INTEGER (8..24) OPTIONAL,
+ e-dch-TransmitContinuationOffset ENUMERATED {
+ tti0, tti4, tti8, tti16, tti24, tti40,
+ tti80,infinity } OPTIONAL,
+ measurement-Feedback-Info-ConcurrentTTI Measurement-Feedback-Info-ConcurrentTTI OPTIONAL
+}
+
+CommonERGCHChannelConfig ::= SEQUENCE {
+ channelisationCode INTEGER (0..127) OPTIONAL,
+ signatureSequence INTEGER (0..39) OPTIONAL
+}
+
+CommonERGCHInfoFDD ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ eRGCHNeighbourCellList BIT STRING (SIZE (maxCellMeas)),
+ commonERGCHChannelConfigList SEQUENCE (SIZE (1.. maxCellMeas)) OF
+ CommonERGCHChannelConfig,
+ minimumServingGrantValue INTEGER (0..37) OPTIONAL,
+ reportingRange ReportingRange,
+ filterCoefficient FilterCoefficient DEFAULT fc0
+ }
+ }
+}
+
+CommonTimeslotInfo ::= SEQUENCE {
+ -- TABULAR: secondInterleavingMode is MD, but since it can be encoded in a single
+ -- bit it is not defined as OPTIONAL.
+ secondInterleavingMode SecondInterleavingMode,
+ tfci-Coding TFCI-Coding OPTIONAL,
+ puncturingLimit PuncturingLimit,
+ repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL
+}
+
+CommonTimeslotInfoMBMS ::= SEQUENCE {
+ -- TABULAR: secondInterleavingMode is MD, but since it can be encoded in a single
+ -- bit it is not defined as OPTIONAL.
+ secondInterleavingMode SecondInterleavingMode,
+ tfci-Coding TFCI-Coding OPTIONAL,
+ puncturingLimit PuncturingLimit
+}
+
+CommonTimeslotInfoSCCPCH ::= SEQUENCE {
+ -- TABULAR: secondInterleavingMode is MD, but since it can be encoded in a single
+ -- bit it is not defined as OPTIONAL.
+ secondInterleavingMode SecondInterleavingMode,
+ tfci-Coding TFCI-Coding OPTIONAL,
+ puncturingLimit PuncturingLimit,
+ repetitionPeriodLengthAndOffset RepetitionPeriodLengthAndOffset OPTIONAL
+}
+
+ConstantValue ::= INTEGER (-35..-10)
+
+ConstantValueTdd ::= INTEGER (-35..10)
+
+ControlChannelDRXCycle-TDD128 ::= ENUMERATED {
+ sub-frames-1, sub-frames-2, sub-frames-4, sub-frames-8,
+ sub-frames-16, sub-frames-32, sub-frames-64, spare1 }
+
+ControlChannelDRXInfo-TDD128-r8 ::= SEQUENCE {
+ controlChannelDrxOperation CHOICE {
+ continue SEQUENCE {
+ enablingDelay EnablingDelay-TDD128 OPTIONAL
+ },
+ newOperation SEQUENCE {
+ hS-SCCH-Drx-Info HS-SCCH-DRX-Info-TDD128,
+ e-AGCH-Drx-Info E-AGCH-DRX-Info-TDD128 OPTIONAL,
+ enablingDelay EnablingDelay-TDD128
+ }
+ }
+}
+
+CPCH-PersistenceLevels ::= SEQUENCE {
+ cpch-SetID CPCH-SetID,
+ dynamicPersistenceLevelTF-List DynamicPersistenceLevelTF-List
+}
+
+CPCH-PersistenceLevelsList ::= SEQUENCE (SIZE (1..maxCPCHsets)) OF
+ CPCH-PersistenceLevels
+
+CPCH-SetInfo ::= SEQUENCE {
+ cpch-SetID CPCH-SetID,
+ transportFormatSet TransportFormatSet,
+ tfcs TFCS,
+ ap-PreambleScramblingCode AP-PreambleScramblingCode,
+ ap-AICH-ChannelisationCode AP-AICH-ChannelisationCode,
+ cd-PreambleScramblingCode CD-PreambleScramblingCode,
+ cd-CA-ICH-ChannelisationCode CD-CA-ICH-ChannelisationCode,
+ cd-AccessSlotSubchannelList CD-AccessSlotSubchannelList OPTIONAL,
+ cd-SignatureCodeList CD-SignatureCodeList OPTIONAL,
+ deltaPp-m DeltaPp-m,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat,
+ n-StartMessage N-StartMessage,
+ n-EOT N-EOT,
+ -- TABULAR: VCAM info has been nested inside ChannelAssignmentActive,
+ -- which in turn is mandatory since it's only a binary choice.
+ channelAssignmentActive ChannelAssignmentActive,
+ cpch-StatusIndicationMode CPCH-StatusIndicationMode,
+ pcpch-ChannelInfoList PCPCH-ChannelInfoList
+}
+
+CPCH-SetInfoList ::= SEQUENCE (SIZE (1..maxCPCHsets)) OF
+ CPCH-SetInfo
+
+CPCH-StatusIndicationMode ::= ENUMERATED {
+ pa-mode,
+ pamsf-mode }
+
+CQI-CycleSwitchTimer ::= ENUMERATED {
+ sub-frames-4,
+ sub-frames-8,
+ sub-frames-16,
+ sub-frames-32,
+ sub-frames-64,
+ sub-frames-128,
+ sub-frames-256,
+ sub-frames-512,
+ sub-frames-Infinity,
+ spare7,
+ spare6,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+CQI-DTX-Timer ::= ENUMERATED {
+ sub-frames-0,
+ sub-frames-1,
+ sub-frames-2,
+ sub-frames-4,
+ sub-frames-8,
+ sub-frames-16,
+ sub-frames-32,
+ sub-frames-64,
+ sub-frames-128,
+ sub-frames-256,
+ sub-frames-512,
+ sub-frames-Infinity,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+CQI-RepetitionFactor ::= INTEGER(1..4)
+
+CSICH-PowerOffset ::= INTEGER (-10..5)
+
+D-CPICH-PowerOffset-4x4MIMO ::= INTEGER (-12..0)
+
+DCH-Enhancements-Info-FDD ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ ulTransmissionMode CHOICE {
+ tenMSOnly NULL,
+ twentyMSOnly NULL,
+ tenORtwentyMS SEQUENCE {
+ ul-TransModeSwitchingParam UL-TransModeSwitchingParam
+ }
+ },
+ dlFETMode CHOICE {
+ basic NULL,
+ full SEQUENCE {
+ early-dch-QualityTarget QualityTarget,
+ early-dch-TargetSlot INTEGER (11..28),
+ trChConcatInfo TransportChannelConcatInfo
+ }
+ }
+ }
+ }
+}
+
+-- DefaultDPCH-OffsetValueFDD and DefaultDPCH-OffsetValueTDD corresponds to
+-- IE "Default DPCH Offset Value" depending on the mode.
+-- Actual value DefaultDPCH-OffsetValueFDD = IE value * 512
+
+DefaultDPCH-OffsetValueFDD ::= INTEGER (0..599)
+
+DefaultDPCH-OffsetValueTDD ::= INTEGER (0..7)
+
+DeltaPp-m ::= INTEGER (-10..10)
+
+DeltaCQI ::= INTEGER (0..8)
+
+DeltaCQI-r11 ::= INTEGER (0..10)
+
+DeltaNACK ::= INTEGER (0..8)
+
+DeltaNACK-r11 ::= INTEGER (0..10)
+
+DeltaACK ::= INTEGER (0..8)
+
+DeltaACK-r11 ::= INTEGER (0..10)
+
+-- Actual value DeltaSIR = IE value * 0.1
+DeltaSIR ::= INTEGER (0..30)
+
+DesignatedNonServingHS-DSCHCellInfo ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+}
+
+DHS-Sync ::= INTEGER (-20..10)
+
+DL-CCTrCh ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ timeInfo TimeInfo,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL,
+ ul-CCTrChTPCList UL-CCTrChTPCList OPTIONAL
+}
+
+DL-CCTrCh-r4 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ timeInfo TimeInfo,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL
+ }
+ },
+ ul-CCTrChTPCList UL-CCTrChTPCList OPTIONAL
+}
+
+DL-CCTrCh-r7 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ timeInfo TimeInfo,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-r7 OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-VHCR OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL
+ }
+ },
+ ul-CCTrChTPCList UL-CCTrChTPCList OPTIONAL
+}
+
+DL-CCTrChList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ DL-CCTrCh
+
+DL-CCTrChList-r7 ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ DL-CCTrCh-r7
+
+DL-CCTrChList-r4 ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ DL-CCTrCh-r4
+
+DL-CCTrChListToRemove ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ TFCS-IdentityPlain
+
+DL-ChannelisationCode ::= SEQUENCE {
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ sf-AndCodeNumber SF512-AndCodeNumber,
+ scramblingCodeChange ScramblingCodeChange OPTIONAL
+}
+
+DL-ChannelisationCodeList ::= SEQUENCE (SIZE (1..maxDPCH-DLchan)) OF
+ DL-ChannelisationCode
+
+DL-CommonInformation ::= SEQUENCE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-Information OPTIONAL
+ },
+ tdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ }
+}
+
+DL-CommonInformation-r4 ::= SEQUENCE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r4 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-Information-r4 OPTIONAL
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ }
+}
+
+
+DL-CommonInformation-r5 ::= SEQUENCE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r4 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-Information-r4 OPTIONAL
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ },
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL
+}
+
+DL-CommonInformation-r6 ::= SEQUENCE {
+ dl-dpchInfoCommon CHOICE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6,
+ dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6
+ } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ },
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL
+}
+
+DL-CommonInformation-r7 ::= SEQUENCE {
+ dl-dpchInfoCommon CHOICE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6,
+ dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6
+ } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd768 NULL,
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ },
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL
+}
+
+DL-CommonInformation-r8 ::= SEQUENCE {
+ dl-dpchInfoCommon CHOICE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6,
+ dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6
+ } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo-r8 OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd768 NULL,
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ },
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL
+}
+
+DL-CommonInformation-r10 ::= SEQUENCE {
+ dl-dpchInfoCommon CHOICE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6,
+ dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6
+ } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo-r10 OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd768 NULL,
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ },
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL
+}
+
+DL-CommonInformation-r11 ::= SEQUENCE {
+ dl-dpchInfoCommon CHOICE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6,
+ dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6
+ } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo-r10 OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd768 NULL,
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ },
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL,
+ mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL
+}
+
+DL-CommonInformation-r12 ::= SEQUENCE {
+ dl-dpchInfoCommon CHOICE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r12,
+ dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6
+ } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL,
+ dpch-CompressedModeInfo DPCH-CompressedModeInfo-r10 OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd768 NULL,
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL
+ }
+ },
+ mac-hsResetIndicator ENUMERATED { true } OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL,
+ mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL
+}
+
+DL-CommonInformationPost ::= SEQUENCE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommonPost
+}
+
+DL-CommonInformationPredef ::= SEQUENCE {
+ dl-DPCH-InfoCommon DL-DPCH-InfoCommonPredef OPTIONAL
+}
+
+DL-CompressedModeMethod ::= ENUMERATED {
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received the UE behaviour is not specified.
+ dummy, sf-2,
+ higherLayerScheduling }
+
+DL-DPCH-InfoCommon ::= SEQUENCE {
+ cfnHandling CHOICE {
+ maintain NULL,
+ initialise SEQUENCE {
+ -- IE dummy is not used in this version of the specification
+ -- The IE should not be sent and if received it should be ignored
+ dummy Cfntargetsfnframeoffset OPTIONAL
+ }
+ },
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL,
+ powerOffsetPilot-pdpdch PowerOffsetPilot-pdpdch,
+ dl-rate-matching-restriction Dl-rate-matching-restriction OPTIONAL,
+ -- TABULAR: The number of pilot bits is nested inside the spreading factor.
+ spreadingFactorAndPilot SF512-AndPilot,
+ positionFixedOrFlexible PositionFixedOrFlexible,
+ tfci-Existence BOOLEAN
+ },
+ tdd SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL
+ }
+ }
+}
+
+DL-DPCH-InfoCommon-r4 ::= SEQUENCE {
+ cfnHandling CHOICE {
+ maintain NULL,
+ initialise SEQUENCE {
+ -- IE dummy is not used in this version of the specification
+ -- The IE should not be sent and if received it should be ignored
+ dummy Cfntargetsfnframeoffset OPTIONAL
+ }
+ },
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL,
+ powerOffsetPilot-pdpdch PowerOffsetPilot-pdpdch,
+ dl-rate-matching-restriction Dl-rate-matching-restriction OPTIONAL,
+ -- TABULAR: The number of pilot bits is nested inside the spreading factor.
+ spreadingFactorAndPilot SF512-AndPilot,
+ positionFixedOrFlexible PositionFixedOrFlexible,
+ tfci-Existence BOOLEAN
+ },
+ tdd SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL
+ }
+ },
+-- The IE mac-d-HFN-initial-value should be absent in the RRCConnectionSetup-r4-IEs or
+-- RRCConnectionSetup-r5-IEs or HandoverToUTRANCommand-r4-IEs or HandoverToUTRANCommand-r5-IEs and
+-- if the IE is included, the general error handling for conditional IEs applies.
+ mac-d-HFN-initial-value MAC-d-HFN-initial-value OPTIONAL
+
+}
+
+DL-DPCH-InfoCommon-r6 ::= SEQUENCE {
+ cfnHandling CHOICE {
+ maintain SEQUENCE {
+ timingmaintainedsynchind TimingMaintainedSynchInd OPTIONAL
+ },
+ initialise NULL
+ },
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL,
+ powerOffsetPilot-pdpdch PowerOffsetPilot-pdpdch,
+ dl-rate-matching-restriction Dl-rate-matching-restriction OPTIONAL,
+ -- TABULAR: The number of pilot bits is nested inside the spreading factor.
+ spreadingFactorAndPilot SF512-AndPilot,
+ positionFixedOrFlexible PositionFixedOrFlexible,
+ tfci-Existence BOOLEAN
+ },
+ tdd SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL
+ }
+ },
+ -- The IE mac-d-HFN-initial-value should be absent in the RRCConnectionSetup and the
+ -- HandoverToUTRANCommand messages. If the IE is included, the general error handling
+ -- for conditional IEs applies.
+ mac-d-HFN-initial-value MAC-d-HFN-initial-value OPTIONAL
+}
+
+DL-DPCH-InfoCommon-r12 ::= SEQUENCE {
+ cfnHandling CHOICE {
+ maintain SEQUENCE {
+ timingmaintainedsynchind TimingMaintainedSynchInd OPTIONAL
+ },
+ initialise NULL
+ },
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL,
+ powerOffsetPilot-pdpdch PowerOffsetPilot-pdpdch,
+ dl-rate-matching-restriction Dl-rate-matching-restriction OPTIONAL,
+ -- TABULAR: The number of pilot bits is nested inside the spreading factor.
+ spreadingFactorAndPilot SF512-AndPilot-r12,
+ positionFixedOrFlexible PositionFixedOrFlexible,
+ tfci-Existence BOOLEAN
+ },
+ tdd SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL
+ }
+ },
+ -- The IE mac-d-HFN-initial-value should be absent in the RRCConnectionSetup and the
+ -- HandoverToUTRANCommand messages. If the IE is included, the general error handling
+ -- for conditional IEs applies.
+ mac-d-HFN-initial-value MAC-d-HFN-initial-value OPTIONAL
+}
+
+DL-DPCH-InfoCommonPost ::= SEQUENCE {
+ dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL
+}
+
+DL-DPCH-InfoCommonPredef ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- TABULAR: The number of pilot bits is nested inside the spreading factor.
+ spreadingFactorAndPilot SF512-AndPilot,
+ positionFixedOrFlexible PositionFixedOrFlexible,
+ tfci-Existence BOOLEAN
+ },
+ tdd SEQUENCE {
+ commonTimeslotInfo CommonTimeslotInfo
+ }
+ }
+}
+
+DL-DPCH-InfoPerRL ::= CHOICE {
+ fdd SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ dpch-FrameOffset DPCH-FrameOffset,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ dl-ChannelisationCodeList DL-ChannelisationCodeList,
+ tpc-CombinationIndex TPC-CombinationIndex,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-CellIdentity OPTIONAL,
+ closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ dl-CCTrChListToEstablish DL-CCTrChList OPTIONAL,
+ dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL
+ }
+}
+
+DL-DPCH-InfoPerRL-r4 ::= CHOICE {
+ fdd SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ dpch-FrameOffset DPCH-FrameOffset,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ dl-ChannelisationCodeList DL-ChannelisationCodeList,
+ tpc-CombinationIndex TPC-CombinationIndex,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-CellIdentity OPTIONAL,
+ closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ dl-CCTrChListToEstablish DL-CCTrChList-r4 OPTIONAL,
+ dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL
+ }
+}
+
+DL-DPCH-InfoPerRL-r5 ::= CHOICE {
+ fdd SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ dpch-FrameOffset DPCH-FrameOffset,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ dl-ChannelisationCodeList DL-ChannelisationCodeList,
+ tpc-CombinationIndex TPC-CombinationIndex,
+ powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-CellIdentity OPTIONAL,
+ closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ dl-CCTrChListToEstablish DL-CCTrChList-r4 OPTIONAL,
+ dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL
+ }
+}
+
+DL-DPCH-InfoPerRL-r6 ::= CHOICE {
+ fdd SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ dpch-FrameOffset DPCH-FrameOffset,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ dl-ChannelisationCodeList DL-ChannelisationCodeList,
+ tpc-CombinationIndex TPC-CombinationIndex,
+ powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL,
+ closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ dl-CCTrChListToEstablish DL-CCTrChList-r4 OPTIONAL,
+ dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL
+ }
+}
+
+DL-DPCH-InfoPerRL-r7 ::= CHOICE {
+ fdd SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ dpch-FrameOffset DPCH-FrameOffset,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ dl-ChannelisationCodeList DL-ChannelisationCodeList,
+ tpc-CombinationIndex TPC-CombinationIndex,
+ powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL,
+ closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ dl-CCTrChListToEstablish DL-CCTrChList-r7 OPTIONAL,
+ dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL
+ }
+}
+
+DL-DPCH-InfoPerRL-r12 ::= CHOICE {
+ fdd SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ dpch-FrameOffset DPCH-FrameOffset,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ dl-ChannelisationCodeList DL-ChannelisationCodeList,
+ tpc-CombinationIndex TPC-CombinationIndex,
+ powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL,
+ powerOffsetPO-SRB PowerOffsetPO-SRB OPTIONAL,
+ closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ dl-CCTrChListToEstablish DL-CCTrChList-r7 OPTIONAL,
+ dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL
+ }
+}
+
+
+DL-DPCH-InfoPerRL-ASU ::= CHOICE {
+ fdd SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ dpch-FrameOffset DPCH-FrameOffset,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ dl-ChannelisationCodeList DL-ChannelisationCodeList,
+ tpc-CombinationIndex TPC-CombinationIndex,
+ powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL,
+ powerOffsetPO-SRB PowerOffsetPO-SRB OPTIONAL,
+ closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL
+ },
+ tdd SEQUENCE {
+ dl-CCTrChListToEstablish DL-CCTrChList-r4 OPTIONAL,
+ dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL
+ }
+}
+
+DL-FDPCH-InfoPerRL-r6 ::= SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ fdpch-FrameOffset DPCH-FrameOffset,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ dl-ChannelisationCode INTEGER (0..255),
+ tpc-CombinationIndex TPC-CombinationIndex
+}
+
+DL-FDPCH-InfoPerRL-r7 ::= SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ fdpch-FrameOffset DPCH-FrameOffset,
+ fdpch-SlotFormat FDPCH-SlotFormat OPTIONAL,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ dl-ChannelisationCode INTEGER (0..255),
+ tpc-CombinationIndex TPC-CombinationIndex,
+ sttdIndication STTDIndication OPTIONAL
+}
+
+DL-FDPCH-InfoPerRL-r13 ::= SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ fdpch-FrameOffset DPCH-FrameOffset,
+ fdpch-SlotFormat FDPCH-SlotFormat OPTIONAL,
+ secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL,
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ dl-ChannelisationCode INTEGER (0..255),
+ tpc-CombinationIndex TPC-CombinationIndex,
+ sttdIndication STTDIndication OPTIONAL,
+ powerControlAlgorithm3 PowerControlAlgorithm3 OPTIONAL
+}
+
+DL-DPCH-InfoPerRL-PostFDD ::= SEQUENCE {
+ pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst,
+ dl-ChannelisationCode DL-ChannelisationCode,
+ tpc-CombinationIndex TPC-CombinationIndex
+}
+
+DL-DPCH-InfoPerRL-PostTDD ::= SEQUENCE {
+ dl-DPCH-TimeslotsCodes DownlinkTimeslotsCodes
+}
+
+DL-DPCH-InfoPerRL-PostTDD-LCR-r4 ::= SEQUENCE {
+ dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4
+}
+
+DL-DPCH-PowerControlInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ dpc-Mode DPC-Mode
+ },
+ tdd SEQUENCE {
+ tpc-StepSizeTDD TPC-StepSizeTDD OPTIONAL
+ }
+ }
+}
+
+DL-FDPCH-InfoCommon-r6 ::= SEQUENCE {
+ cfnHandling CHOICE {
+ maintain SEQUENCE {
+ timingmaintainedsynchind TimingMaintainedSynchInd OPTIONAL
+ },
+ initialise NULL
+ },
+ dl-FDPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL,
+ -- Actual value dl-FDPCH-TPCcommandErrorRate = IE value * 0.01
+ -- dl-FDPCH-TPCcommandErrorRate values 11..16 are spare and shall not be used in this version of
+ -- the protocol.
+ -- In addition, this IE shall always be included otherwise the UE behaviour is unspecified.
+ dl-FDPCH-TPCcommandErrorRate INTEGER (1..16) OPTIONAL
+}
+
+DL-FrameType ::= ENUMERATED {
+ dl-FrameTypeA, dl-FrameTypeB }
+
+DL-HSPDSCH-Information ::= SEQUENCE {
+ hs-scch-Info HS-SCCH-Info OPTIONAL,
+ measurement-feedback-Info Measurement-Feedback-Info OPTIONAL,
+ modeSpecificInfo CHOICE {
+ tdd CHOICE{
+ tdd384 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ hs-PDSCH-Midamble-Configuration-tdd128
+ HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL
+ }
+ },
+ fdd NULL
+ }
+}
+
+DL-HSPDSCH-Information-r6 ::= SEQUENCE {
+ hs-scch-Info HS-SCCH-Info-r6 OPTIONAL,
+ measurement-feedback-Info Measurement-Feedback-Info OPTIONAL,
+ modeSpecificInfo CHOICE {
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ hs-PDSCH-Midamble-Configuration-tdd128
+ HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL
+ }
+ },
+ fdd NULL
+ }
+}
+
+DL-HSPDSCH-Information-r7 ::= SEQUENCE {
+ hs-scch-Info HS-SCCH-Info-r7 OPTIONAL,
+ measurement-feedback-Info Measurement-Feedback-Info-r7 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ hs-PDSCH-Midamble-Configuration-tdd128
+ HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL,
+ dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL
+ }
+ },
+ fdd SEQUENCE {
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL
+ }
+ }
+}
+
+DL-HSPDSCH-Information-r8 ::= SEQUENCE {
+ hs-scch-Info HS-SCCH-Info-r7 OPTIONAL,
+ measurement-feedback-Info Measurement-Feedback-Info-r7 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ hs-PDSCH-Midamble-Configuration-tdd128
+ HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL,
+ dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL
+ }
+ },
+ fdd SEQUENCE {
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL,
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+ }
+ }
+}
+
+DL-HSPDSCH-Information-r8-ext ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ tdd CHOICE {
+ tdd384 NULL,
+ tdd768 NULL,
+ tdd128 SEQUENCE {
+ outofSyncWindow OutofSyncWindow OPTIONAL
+ }
+ },
+ fdd NULL
+ }
+}
+
+DL-HSPDSCH-Information-r8-ext2 ::= SEQUENCE {
+ hs-scch-Info HS-SCCH-Info-r8-ext OPTIONAL
+}
+
+DL-HSPDSCH-Information-r9 ::= SEQUENCE {
+ hs-scch-Info HS-SCCH-Info-r9 OPTIONAL,
+ measurement-feedback-Info Measurement-Feedback-Info-r7 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ hs-PDSCH-Midamble-Configuration-tdd128
+ HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL,
+ dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL,
+ tS0-Indicator ENUMERATED { true } OPTIONAL,
+ outofSyncWindow OutofSyncWindow OPTIONAL
+ }
+ },
+ fdd SEQUENCE {
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL,
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+ }
+ }
+}
+
+DL-HSPDSCH-Information-r11 ::= SEQUENCE {
+ hs-scch-Info HS-SCCH-Info-r9 OPTIONAL,
+ measurement-feedback-Info Measurement-Feedback-Info-r11 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ hs-PDSCH-Midamble-Configuration-tdd128
+ HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL,
+ dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL,
+ tS0-Indicator ENUMERATED { true } OPTIONAL,
+ outofSyncWindow OutofSyncWindow OPTIONAL
+ }
+ },
+ fdd SEQUENCE {
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL,
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+ }
+ }
+}
+
+DL-HSPDSCH-Information-r12 ::= SEQUENCE {
+ hs-scch-Info HS-SCCH-Info-r9 OPTIONAL,
+ measurement-feedback-Info Measurement-Feedback-Info-r12 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ hs-PDSCH-Midamble-Configuration-tdd128
+ HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL,
+ dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL,
+ tS0-Indicator ENUMERATED { true } OPTIONAL,
+ outofSyncWindow OutofSyncWindow OPTIONAL,
+ ts0ChannelizationCodes DL-TS-ChannelisationCodesShort OPTIONAL
+ }
+ },
+ fdd SEQUENCE {
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL,
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+ }
+ }
+}
+
+OutofSyncWindow ::= ENUMERATED {
+ ms40, ms80, ms160, ms320,
+ ms640, spare3, spare2, spare1 }
+
+DL-HSPDSCH-MultiCarrier-Information ::= SEQUENCE (SIZE (1..maxTDD128Carrier)) OF
+ SEQUENCE {
+ uarfcn-Carrier UARFCN,
+ harqInfo HARQ-Info OPTIONAL,
+ hs-PDSCH-Midamble-Configuration HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL,
+ hs-SCCH-TDD128-MultiCarrier SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD128-MultiCarrier OPTIONAL
+ }
+
+-- The IE 'DL-HSPDSCH-TS-Configuration' applies to tdd-384 REL-5 onward
+DL-HSPDSCH-TS-Configuration ::= SEQUENCE (SIZE (1..maxTS-1)) OF
+ SEQUENCE {
+ timeslot TimeslotNumber,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-DL
+}
+
+-- The IE 'DL-HSPDSCH-TS-Configuration-VHCR' applies to tdd-768 REL-7 onward
+DL-HSPDSCH-TS-Configuration-VHCR ::= SEQUENCE (SIZE (1..maxTS-1)) OF
+ SEQUENCE {
+ timeslot TimeslotNumber,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-DL-VHCR
+}
+
+DL-InformationPerRL ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ -- dummy1 and dummy 2 are not used in this version of specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy1 PDSCH-SHO-DCH-Info OPTIONAL,
+ dummy2 PDSCH-CodeMapping OPTIONAL
+ },
+ tdd PrimaryCCPCH-Info
+ },
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SCCPCH-InfoForFACH OPTIONAL
+}
+
+DL-InformationPerRL-r4 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ -- dummy1 and dummy 2 are not used in this version of specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy1 PDSCH-SHO-DCH-Info OPTIONAL,
+ dummy2 PDSCH-CodeMapping OPTIONAL
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r4 OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SCCPCH-InfoForFACH-r4 OPTIONAL,
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-r5 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ -- dummy1 and dummy 2 are not used in this version of specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy1 PDSCH-SHO-DCH-Info OPTIONAL,
+ dummy2 PDSCH-CodeMapping OPTIONAL,
+ servingHSDSCH-RL-indicator BOOLEAN
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5 OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SCCPCH-InfoForFACH-r4 OPTIONAL,
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-r5bis ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ -- dummy1 and dummy 2 are not used in this version of specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy1 PDSCH-SHO-DCH-Info OPTIONAL,
+ dummy2 PDSCH-CodeMapping OPTIONAL
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5 OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SCCPCH-InfoForFACH-r4 OPTIONAL,
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-r6 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ servingHSDSCH-RL-indicator BOOLEAN,
+ servingEDCH-RL-indicator BOOLEAN
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r6,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r6
+ } OPTIONAL,
+ e-AGCH-Information E-AGCH-Information OPTIONAL,
+ e-HICH-Info CHOICE {
+ e-HICH-Information E-HICH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-v6b0ext ::= SEQUENCE {
+ sttdIndication STTDIndication OPTIONAL
+}
+
+DL-InformationPerRL-r7 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ servingHSDSCH-RL-indicator BOOLEAN,
+ servingEDCH-RL-indicator BOOLEAN
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7
+ } OPTIONAL,
+ e-AGCH-Information E-AGCH-Information-r7 OPTIONAL,
+ modeSpecificInfo2 CHOICE {
+ fdd SEQUENCE {
+ e-HICH-Info CHOICE {
+ e-HICH-Information E-HICH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384-tdd768 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD128 OPTIONAL
+ }
+ }
+ },
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-r8 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ servingHSDSCH-RL-indicator BOOLEAN,
+ servingEDCH-RL-indicator BOOLEAN
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7
+ } OPTIONAL,
+ e-AGCH-Information E-AGCH-Information-r8 OPTIONAL,
+ modeSpecificInfo2 CHOICE {
+ fdd SEQUENCE {
+ e-HICH-Info CHOICE {
+ e-HICH-Information E-HICH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384-tdd768 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD128 OPTIONAL
+ }
+ }
+ },
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-r11 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ servingHSDSCH-RL-indicator BOOLEAN,
+ servingEDCH-RL-indicator BOOLEAN
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7
+ } OPTIONAL,
+ e-AGCH-Information E-AGCH-Information-r8 OPTIONAL,
+ e-ROCH-Information E-ROCH-Information OPTIONAL,
+ modeSpecificInfo2 CHOICE {
+ fdd SEQUENCE {
+ e-HICH-Info CHOICE {
+ e-HICH-Information E-HICH-Information-r11,
+ releaseIndicator NULL,
+ secondaryReleaseIndicator NULL
+ } OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ f-TPICH-Info CHOICE {
+ f-TPICH-Information F-TPICH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384-tdd768 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD128 OPTIONAL
+ }
+ }
+ },
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-r12 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ servingHSDSCH-RL-indicator BOOLEAN,
+ servingEDCH-RL-indicator BOOLEAN
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r12,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7,
+ radioLinkswithoutDPCHFDPCHInfo RadioLinkswithoutDPCHFDPCHInfo
+ } OPTIONAL,
+ e-AGCH-Information E-AGCH-Information-r8 OPTIONAL,
+ e-ROCH-Information E-ROCH-Information OPTIONAL,
+ modeSpecificInfo2 CHOICE {
+ fdd SEQUENCE {
+ e-HICH-Info CHOICE {
+ e-HICH-Information E-HICH-Information-r11,
+ releaseIndicator NULL,
+ secondaryReleaseIndicator NULL
+ } OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ f-TPICH-Info CHOICE {
+ f-TPICH-Information F-TPICH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384-tdd768 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD128 OPTIONAL
+ }
+ }
+ },
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-r13 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ servingHSDSCH-RL-indicator BOOLEAN,
+ servingEDCH-RL-indicator BOOLEAN
+ },
+ tdd PrimaryCCPCH-Info-r4
+ },
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r12,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r13,
+ radioLinkswithoutDPCHFDPCHInfo RadioLinkswithoutDPCHFDPCHInfo
+ } OPTIONAL,
+ e-AGCH-Information E-AGCH-Information-r8 OPTIONAL,
+ e-ROCH-Information E-ROCH-Information OPTIONAL,
+ modeSpecificInfo2 CHOICE {
+ fdd SEQUENCE {
+ e-HICH-Info CHOICE {
+ e-HICH-Information E-HICH-Information-r11,
+ releaseIndicator NULL,
+ secondaryReleaseIndicator NULL
+ } OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ f-TPICH-Info CHOICE {
+ f-TPICH-Information F-TPICH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384-tdd768 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ e-HICH-Info E-HICH-Information-TDD128 OPTIONAL
+ }
+ }
+ },
+ cell-id CellIdentity OPTIONAL
+}
+
+DL-InformationPerRL-List ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL
+
+DL-InformationPerRL-List-r4 ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r4
+
+DL-InformationPerRL-List-r5 ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r5
+
+DL-InformationPerRL-List-r6 ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r6
+
+DL-InformationPerRL-List-v6b0ext ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-v6b0ext
+
+DL-InformationPerRL-List-r5bis ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r5bis
+
+DL-InformationPerRL-List-r7 ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r7
+
+DL-InformationPerRL-List-r8 ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r8
+
+DL-InformationPerRL-List-r11 ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r11
+
+DL-InformationPerRL-List-r12 ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r12
+
+DL-InformationPerRL-List-r13 ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-r13
+
+DL-InformationPerRL-ListPostFDD ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-InformationPerRL-PostFDD
+
+DL-InformationPerRL-PostFDD ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-PostFDD
+}
+
+DL-InformationPerRL-PostTDD ::= SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-InfoPost,
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-PostTDD
+}
+
+DL-InformationPerRL-PostTDD-LCR-r4 ::= SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-InfoPostTDD-LCR-r4,
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-PostTDD-LCR-r4
+}
+
+--for 1.28Mcps TDD Multi-Carrier
+DL-MultiCarrier-Information ::= SEQUENCE {
+ tsn-Length ENUMERATED { tsn-6bits, tsn-9bits } OPTIONAL,
+ multiCarrierNumber INTEGER (1..maxTDD128Carrier) OPTIONAL,
+ dl-HSPDSCH-MultiCarrier-Information DL-HSPDSCH-MultiCarrier-Information OPTIONAL
+}
+
+DL-PDSCH-Information ::= SEQUENCE {
+ -- dummy1 and dummy 2 are not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy1 PDSCH-SHO-DCH-Info OPTIONAL,
+ dummy2 PDSCH-CodeMapping OPTIONAL
+}
+
+Dl-rate-matching-restriction ::= SEQUENCE {
+ restrictedTrCH-InfoList RestrictedTrCH-InfoList OPTIONAL
+}
+
+DL-SecondaryCellInfoFDD ::= CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ new-H-RNTI H-RNTI,
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL,
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL,
+ primaryCPICH-Info PrimaryCPICH-Info,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ measurementPowerOffset MeasurementPowerOffset,
+ uarfcn-DL UARFCN
+ }
+}
+
+DL-SecondaryCellInfoFDD-v890ext ::= SEQUENCE {
+ differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL
+}
+
+DL-SecondaryCellInfoFDD-r9 ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ new-H-RNTI H-RNTI,
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL,
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL,
+ primaryCPICH-Info PrimaryCPICH-Info,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ measurementPowerOffset MeasurementPowerOffset,
+ uarfcn-DL UARFCN,
+ differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL
+ }
+ },
+ secondaryCellMIMOparameters SecondaryCellMIMOparametersFDD OPTIONAL
+}
+
+DL-SecondaryCellInfoFDD-r10 ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ new-H-RNTI H-RNTI,
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL,
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL,
+ primaryCPICH-Info PrimaryCPICH-Info,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ measurementPowerOffset MeasurementPowerOffset,
+ uarfcn-DL UARFCN,
+ differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL
+ }
+ },
+ secondaryCellMIMOparameters SecondaryCellMIMOparametersFDD-r10 OPTIONAL
+}
+
+DL-SecondaryCellInfoFDD-r11 ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ new-H-RNTI H-RNTI,
+ dl-64QAM-Configured ENUMERATED { true } OPTIONAL,
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL,
+ primaryCPICH-Info PrimaryCPICH-Info,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ measurementPowerOffset MeasurementPowerOffset,
+ measurementPowerOffset1 MeasurementPowerOffset OPTIONAL,
+ uarfcn-DL UARFCN,
+ differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL,
+ multiflowConfigurationInfo MultiflowConfigurationInfo OPTIONAL
+ }
+ },
+ secondaryCellMIMOparameters SecondaryCellMIMOparametersFDD-r10 OPTIONAL,
+ secondaryCell4x4MIMOparameters SecondaryCell4x4MIMOparametersFDD OPTIONAL
+}
+
+DL-SecondaryCellInfoFDD-HandoverToUtran ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ new-H-RNTI H-RNTI,
+ primaryCPICH-Info PrimaryCPICH-Info,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ measurementPowerOffset MeasurementPowerOffset,
+ uarfcn-DL UARFCN,
+ differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL
+ }
+ }
+}
+
+DL-TPC-PowerOffsetPerRL ::= SEQUENCE {
+ powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL
+}
+
+-- NOTE: The radio links in the following list have a one-to-one mapping with the
+-- radio links in the message.
+DL-TPC-PowerOffsetPerRL-List ::= SEQUENCE (SIZE (1..maxRL)) OF
+ DL-TPC-PowerOffsetPerRL
+
+DL-TS-ChannelisationCode ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+DL-TS-ChannelisationCode-VHCR ::= ENUMERATED {
+ cc32-1, cc32-2, cc32-3, cc32-4,
+ cc132-5, cc32-6, cc32-7, cc32-8,
+ cc32-9, cc32-10, cc32-11, cc32-12,
+ cc32-13, cc32-14, cc32-15, cc32-16,
+ cc32-17, cc32-18, cc32-19, cc32-20,
+ cc32-21, cc32-22, cc32-23, cc32-24,
+ cc32-25, cc32-26, cc32-27, cc32-28,
+ cc32-29, cc32-30, cc32-31, cc32-32 }
+
+DL-TS-ChannelisationCodesShort ::= SEQUENCE {
+ codesRepresentation CHOICE {
+ consecutive SEQUENCE {
+ firstChannelisationCode DL-TS-ChannelisationCode,
+ lastChannelisationCode DL-TS-ChannelisationCode
+ },
+ bitmap BIT STRING {
+ chCode16-SF16(0),
+ chCode15-SF16(1),
+ chCode14-SF16(2),
+ chCode13-SF16(3),
+ chCode12-SF16(4),
+ chCode11-SF16(5),
+ chCode10-SF16(6),
+ chCode9-SF16(7),
+ chCode8-SF16(8),
+ chCode7-SF16(9),
+ chCode6-SF16(10),
+ chCode5-SF16(11),
+ chCode4-SF16(12),
+ chCode3-SF16(13),
+ chCode2-SF16(14),
+ chCode1-SF16(15)
+ } (SIZE (16))
+ }
+}
+
+DL-TS-ChannelisationCodesShort-VHCR ::= SEQUENCE {
+ codesRepresentation CHOICE {
+ consecutive SEQUENCE {
+ firstChannelisationCode DL-TS-ChannelisationCode-VHCR,
+ lastChannelisationCode DL-TS-ChannelisationCode-VHCR
+ },
+ bitmap BIT STRING {
+ chCode32-SF32(0),
+ chCode31-SF32(1),
+ chCode30-SF32(2),
+ chCode29-SF32(3),
+ chCode28-SF32(4),
+ chCode27-SF32(5),
+ chCode26-SF32(6),
+ chCode25-SF32(7),
+ chCode24-SF32(8),
+ chCode23-SF32(9),
+ chCode22-SF32(10),
+ chCode21-SF32(11),
+ chCode20-SF32(12),
+ chCode19-SF32(13),
+ chCode18-SF32(14),
+ chCode17-SF32(15),
+ chCode16-SF32(16),
+ chCode15-SF32(17),
+ chCode14-SF32(18),
+ chCode13-SF32(19),
+ chCode12-SF32(20),
+ chCode11-SF32(21),
+ chCode10-SF32(22),
+ chCode9-SF32(23),
+ chCode8-SF32(24),
+ chCode7-SF32(25),
+ chCode6-SF32(26),
+ chCode5-SF32(27),
+ chCode4-SF32(28),
+ chCode3-SF32(29),
+ chCode2-SF32(30),
+ chCode1-SF32(31)
+ } (SIZE (32))
+ }
+}
+
+DL-ChannelCodes-MBSFN-IMB384 ::= SEQUENCE {
+ firstChannelisationCode INTEGER (1..15),
+ lastChannelisationCode INTEGER (1..15) OPTIONAL
+}
+
+DLUL-HSPA-Information-r8 ::= SEQUENCE {
+ ul-EDCH-Information UL-EDCH-Information-r8,
+ dl-CommonInformation DL-CommonInformation-r8,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8
+}
+
+DLUL-HSPA-Information-r9 ::= SEQUENCE {
+ ul-EDCH-Information UL-EDCH-Information-r9,
+ dl-CommonInformation DL-CommonInformation-r8,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9
+}
+
+DLUL-HSPA-Information-r10 ::= SEQUENCE {
+ ul-EDCH-Information UL-EDCH-Information-r9,
+ dl-CommonInformation DL-CommonInformation-r10,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9
+}
+
+DownlinkAdditionalTimeslots ::= SEQUENCE {
+ parameters CHOICE {
+ sameAsLast SEQUENCE {
+ timeslotNumber TimeslotNumber
+ },
+ newParameters SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo,
+ dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort
+ }
+ }
+}
+
+DownlinkAdditionalTimeslots-VHCR ::= SEQUENCE {
+ parameters CHOICE {
+ sameAsLast SEQUENCE {
+ timeslotNumber TimeslotNumber
+ },
+ newParameters SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-VHCR,
+ dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort-VHCR
+ }
+ }
+}
+
+DownlinkAdditionalTimeslots-LCR-r4 ::= SEQUENCE {
+ parameters CHOICE {
+ sameAsLast SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4
+ },
+ newParameters SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-LCR-r4,
+ dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort
+ }
+ }
+}
+
+DownlinkAdditionalTimeslots-r7 ::= SEQUENCE {
+ parameters CHOICE {
+ sameAsLast SEQUENCE {
+ timeslotNumber TimeslotNumber
+ },
+ newParameters SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-r7,
+ dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort
+ }
+ }
+}
+
+DownlinkTimeslotsCodes ::= SEQUENCE {
+ firstIndividualTimeslotInfo IndividualTimeslotInfo,
+ dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort,
+ moreTimeslots CHOICE {
+ noMore NULL,
+ additionalTimeslots CHOICE {
+ consecutive INTEGER (1..maxTS-1),
+ timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF
+ DownlinkAdditionalTimeslots
+ }
+ }
+}
+
+DownlinkTimeslotsCodes-VHCR ::= SEQUENCE {
+ firstIndividualTimeslotInfo IndividualTimeslotInfo-VHCR,
+ dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort-VHCR,
+ moreTimeslots CHOICE {
+ noMore NULL,
+ additionalTimeslots CHOICE {
+ consecutive INTEGER (1..maxTS-1),
+ timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF
+ DownlinkAdditionalTimeslots-VHCR
+ }
+ }
+}
+
+DownlinkTimeslotsCodes-LCR-r4 ::= SEQUENCE {
+ firstIndividualTimeslotInfo IndividualTimeslotInfo-LCR-r4,
+ dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort,
+ moreTimeslots CHOICE {
+ noMore NULL,
+ additionalTimeslots CHOICE {
+ consecutive INTEGER (1..maxTS-LCR-1),
+ timeslotList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF
+ DownlinkAdditionalTimeslots-LCR-r4
+ }
+ }
+}
+DownlinkTimeslotsCodes-r7 ::= SEQUENCE {
+ firstIndividualTimeslotInfo IndividualTimeslotInfo-r7,
+ dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort,
+ moreTimeslots CHOICE {
+ noMore NULL,
+ additionalTimeslots CHOICE {
+ consecutive INTEGER (1..maxTS-1),
+ timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF
+ DownlinkAdditionalTimeslots-r7
+ }
+ }
+}
+
+DPC-Mode ::= ENUMERATED {
+ singleTPC,
+ tpcTripletInSoft }
+
+DPCCH2Info ::= SEQUENCE {
+ dpcch2TxPowerOffset Dpcch2TxPowerOffset
+}
+
+DPCCH2InfoFDD ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ dpcch2Info DPCCH2Info OPTIONAL,
+ f-dpchInfo F-DPCHInfo OPTIONAL,
+ extended-E-DPCCH-DPCCHPO Extended-E-DPCCH-DPCCH-PowerOffset OPTIONAL,
+ designatedNonServingHS-DSCHCellInfo DesignatedNonServingHS-DSCHCellInfo OPTIONAL
+ }
+ }
+}
+
+Dpcch2TxPowerOffset ::= INTEGER (0..20)
+
+-- Actual value DPCCH-PowerOffset = IE value * 2
+DPCCH-PowerOffset ::= INTEGER (-82..-3)
+
+-- Actual value DPCCH-PowerOffset2 = 2 + (IE value * 4)
+DPCCH-PowerOffset2 ::= INTEGER (-28..-13)
+
+DPCH-CompressedModeInfo ::= SEQUENCE {
+ tgp-SequenceList TGP-SequenceList
+}
+
+DPCH-CompressedModeInfo-r8 ::= SEQUENCE {
+ tgp-SequenceList TGP-SequenceList-r8
+}
+
+DPCH-CompressedModeInfo-r10 ::= SEQUENCE {
+ tgp-SequenceList TGP-SequenceList-r10
+}
+
+DPCH-CompressedModeStatusInfo ::= SEQUENCE {
+ tgps-Reconfiguration-CFN TGPS-Reconfiguration-CFN,
+ tgp-SequenceShortList SEQUENCE (SIZE (1..maxTGPS)) OF
+ TGP-SequenceShort
+}
+
+DPCH-CompressedModeStatusInfo-r10 ::= SEQUENCE {
+ tgps-Reconfiguration-CFN TGPS-Reconfiguration-CFN,
+ tgp-SequenceShortList SEQUENCE (SIZE (1..maxTGPS)) OF
+ TGP-SequenceShort-r10
+}
+
+-- Actual value DPCH-FrameOffset = IE value * 256
+DPCH-FrameOffset ::= INTEGER (0..149)
+
+FDPCH-SlotFormat ::= INTEGER (0..9)
+
+UE-DRX-Cycle-InactivityThreshold ::= ENUMERATED {
+ sub-frames-0,
+ sub-frames-1,
+ sub-frames-2,
+ sub-frames-4,
+ sub-frames-8,
+ sub-frames-16,
+ sub-frames-32,
+ sub-frames-64,
+ sub-frames-128,
+ sub-frames-256,
+ sub-frames-512,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+DRX-Info ::= SEQUENCE {
+ ue-drx-Cycle UE-DRX-Cycle,
+ ue-drx-Cycle-InactivityThreshold UE-DRX-Cycle-InactivityThreshold,
+ ue-GrantMonitoring-InactivityThreshold
+ UE-GrantMonitoring-InactivityThreshold,
+ ue-drx-GrantMonitoring BOOLEAN
+}
+
+DRX-Info-r12 ::= SEQUENCE {
+ ue-drx-Cycle UE-DRX-Cycle,
+ ue-drx-Cycle2 UE-DRX-Cycle2 OPTIONAL,
+ ue-drx-Cycle-InactivityThreshold UE-DRX-Cycle-InactivityThreshold,
+ ue-drx-Cycle2-InactivityThreshold UE-DRX-Cycle-InactivityThreshold OPTIONAL,
+ ue-GrantMonitoring-InactivityThreshold
+ UE-GrantMonitoring-InactivityThreshold,
+ ue-drx-GrantMonitoring BOOLEAN
+}
+
+DSCH-Mapping ::= SEQUENCE {
+ maxTFCI-Field2Value MaxTFCI-Field2Value,
+ spreadingFactor SF-PDSCH,
+ codeNumber CodeNumberDSCH,
+ multiCodeInfo MultiCodeInfo
+}
+
+DSCH-MappingList ::= SEQUENCE (SIZE (1..maxPDSCH-TFCIgroups)) OF
+ DSCH-Mapping
+
+DSCH-RadioLinkIdentifier ::= INTEGER (0..511)
+
+DSCH-TransportChannelsInfo ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ SEQUENCE {
+ dsch-transport-channel-identity TransportChannelIdentity,
+ dsch-TFS TransportFormatSet
+}
+
+DTX-DRX-Info-r7 ::= SEQUENCE {
+ dtx-Info DTX-Info OPTIONAL,
+ drx-Info DRX-Info OPTIONAL,
+ uplink-DPCCHSlotFormatInformation Uplink-DPCCH-Slot-Format-Information
+}
+
+DTX-DRX-Info-r12 ::= SEQUENCE {
+ dtx-Info DTX-Info OPTIONAL,
+ dtx-Info-SecondaryUplinkFrequency DTX-Info-SecondaryUplinkFrequency OPTIONAL,
+ drx-Info DRX-Info-r12 OPTIONAL,
+ uplink-DPCCHSlotFormatInformation Uplink-DPCCH-Slot-Format-Information
+}
+
+DTX-E-DCH-TTI-10ms ::= SEQUENCE {
+ ue-dtx-Cycle1-10ms UE-DTX-Cycle1-10ms,
+ ue-dtx-Cycle2-10ms UE-DTX-Cycle2-10ms,
+ mac-dtx-Cycle-10ms MAC-DTX-Cycle-10ms
+}
+
+DTX-E-DCH-TTI-2ms ::= SEQUENCE {
+ ue-dtx-Cycle1-2ms UE-DTX-Cycle1-2ms,
+ ue-dtx-Cycle2-2ms UE-DTX-Cycle2-2ms,
+ mac-dtx-Cycle-2ms MAC-DTX-Cycle-2ms
+}
+
+DTX-Info ::= SEQUENCE {
+ e-dch-TTI-Length CHOICE {
+ dtx-e-dch-TTI-10ms DTX-E-DCH-TTI-10ms,
+ dtx-e-dch-TTI-2ms DTX-E-DCH-TTI-2ms
+ },
+ ue-dtx-cycle2InactivityThreshold UE-DTX-Cycle2InactivityThreshold,
+ ue-dtx-cycle2DefaultSG INTEGER (0..38) OPTIONAL,
+ -- if ue-dtx-long-preamble-length is not present, the value is '2 slots'
+ ue-dtx-long-preamble-length UE-DTX-long-preamble-length OPTIONAL,
+ mac-InactivityThreshold MAC-InactivityThreshold,
+ cqi-dtx-Timer CQI-DTX-Timer,
+ ue-dpcch-Burst1 UE-DPCCH-Burst,
+ ue-dpcch-Burst2 UE-DPCCH-Burst
+}
+
+DTX-Info-SecondaryUplinkFrequency ::= SEQUENCE {
+ e-dch-TTI-Length CHOICE {
+ dtx-e-dch-TTI-10ms NULL,
+ dtx-e-dch-TTI-2ms SEQUENCE {
+ ue-dtx-Cycle1-2ms-Secondary UE-DTX-Cycle1-2ms OPTIONAL,
+ ue-dtx-Cycle2-2ms-Secondary UE-DTX-Cycle2-2ms-Secondary }
+ },
+ ue-dtx-cycle2InactivityThreshold-Secondary UE-DTX-Cycle2InactivityThreshold OPTIONAL,
+ -- if ue-dtx-long-preamble-length is not present, the value is '2 slots'
+ ue-dtx-long-preamble-length-Secondary UE-DTX-long-preamble-length OPTIONAL,
+ ue-dpcch-Burst1-Secondary UE-DPCCH-Burst OPTIONAL,
+ ue-dpcch-Burst2-Secondary UE-DPCCH-Burst OPTIONAL
+}
+
+DurationTimeInfo ::= INTEGER (1..4096)
+
+DynamicPersistenceLevel ::= INTEGER (1..8)
+
+DynamicPersistenceLevelList ::= SEQUENCE (SIZE (1..maxPRACH)) OF
+ DynamicPersistenceLevel
+
+DynamicPersistenceLevelTF-List ::= SEQUENCE (SIZE (1..maxTF-CPCH)) OF
+ DynamicPersistenceLevel
+
+DynamicTFInformationCCCH ::= SEQUENCE {
+ octetModeRLC-SizeInfoType2 OctetModeRLC-SizeInfoType2
+}
+
+E-AGCH-ChannelisationCode ::= INTEGER (0..255)
+
+E-AGCH-DRX-Info-TDD128 ::= SEQUENCE {
+ e-AGCH-DRX-InfoType CHOICE {
+ sameAsHS-SCCH NULL,
+ e-AGCH-DRX-Parameters SEQUENCE {
+ e-AGCH-DRX-Cycle ControlChannelDRXCycle-TDD128,
+ e-AGCH-InactivityMonitorThreshold E-AGCH-InactivityMonitorThreshold-TDD128
+ OPTIONAL,
+ e-AGCH-DRX-Offset INTEGER (0..63)
+ }
+ }
+}
+
+E-AGCH-InactivityMonitorThreshold-TDD128 ::= ENUMERATED {
+ radio-frames-0, radio-frames-1, radio-frames-2,
+ radio-frames-4, radio-frames-8, radio-frames-16,
+ radio-frames-32, radio-frames-64, radio-frames-128,
+ radio-frames-256, radio-frames-512,
+ spare5, spare4, spare3, spare2, infinity }
+
+E-AGCH-Individual ::= SEQUENCE {
+ tS-number INTEGER (0..14),
+ channelisation-code DL-TS-ChannelisationCode,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-EDCH
+}
+
+E-AGCH-Individual-VHCR ::= SEQUENCE {
+ tS-number INTEGER (0..14),
+ channelisation-code DL-TS-ChannelisationCode-VHCR,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-EDCH
+}
+
+E-AGCH-Individual-LCR ::= SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ firstChannelisationCode HS-ChannelisationCode-LCR,
+ secondChannelisationCode HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble INTEGER (0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8)
+}
+
+E-AGCH-Information ::= SEQUENCE {
+ e-AGCH-ChannelisationCode E-AGCH-ChannelisationCode
+}
+
+E-AGCH-Information-r7 ::= SEQUENCE {
+ modeSpecific CHOICE {
+ fdd SEQUENCE {
+ e-AGCH-ChannelisationCode E-AGCH-ChannelisationCode
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ long-Term-Grant-Indicator BOOLEAN OPTIONAL,
+ length-of-TTRI-field INTEGER (1..12),
+ e-AGCH-Set-Config E-AGCH-Set-Config,
+ e-AGCH-BLER-Target Bler-Target
+ },
+ tdd768 SEQUENCE {
+ long-Term-Grant-Indicator BOOLEAN OPTIONAL,
+ length-of-TTRI-field INTEGER (1..12),
+ e-AGCH-Set-Config E-AGCH-Set-Config-VHCR,
+ e-AGCH-BLER-Target Bler-Target
+ },
+ tdd128 SEQUENCE {
+ rdi-Indicator BOOLEAN,
+ tpc-StepSize TPC-StepSizeTDD,
+ e-AGCH-Set-Config E-AGCH-Set-Config-LCR,
+ e-AGCH-BLER-Target Bler-Target
+ }
+ }
+ }
+}
+
+E-AGCH-Information-r8 ::= SEQUENCE {
+ modeSpecific CHOICE {
+ fdd SEQUENCE {
+ e-AGCH-ChannelisationCode E-AGCH-ChannelisationCode
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ long-Term-Grant-Indicator BOOLEAN OPTIONAL,
+ length-of-TTRI-field INTEGER (1..12),
+ e-AGCH-Set-Config E-AGCH-Set-Config,
+ e-AGCH-BLER-Target Bler-Target
+ },
+ tdd768 SEQUENCE {
+ long-Term-Grant-Indicator BOOLEAN OPTIONAL,
+ length-of-TTRI-field INTEGER (1..12),
+ e-AGCH-Set-Config E-AGCH-Set-Config-VHCR,
+ e-AGCH-BLER-Target Bler-Target
+ },
+ tdd128 SEQUENCE {
+ rdi-Indicator BOOLEAN,
+ tpc-StepSize TPC-StepSizeTDD,
+ e-AGCH-Set-Config E-AGCH-Set-Config-LCR,
+ e-AGCH-BLER-Target Bler-Target,
+ e-AGCH-InactivityMonitorThreshold E-AGCH-InactivityMonitorThreshold-TDD128
+ OPTIONAL
+ }
+ }
+ }
+}
+
+E-AGCH-Information-TDD128 ::= SEQUENCE {
+ rdi-Indicator BOOLEAN,
+ tpc-StepSize TPC-StepSizeTDD,
+ e-AGCH-Set-Config E-AGCH-Set-Config-LCR,
+ e-AGCH-BLER-Target Bler-Target
+}
+
+E-AGCH-Set-Config ::= SEQUENCE (SIZE (1..maxNumE-AGCH)) OF
+ E-AGCH-Individual
+
+E-AGCH-Set-Config-VHCR ::= SEQUENCE (SIZE (1..maxNumE-AGCH)) OF
+ E-AGCH-Individual-VHCR
+
+E-AGCH-Set-Config-LCR ::= SEQUENCE (SIZE (1..maxNumE-AGCH)) OF
+ E-AGCH-Individual-LCR
+
+E-ROCH-ChannelisationCode ::= INTEGER (0..255)
+
+E-ROCH-Information ::= SEQUENCE {
+ e-ROCH-ChannelisationCode E-ROCH-ChannelisationCode,
+ e-roch-e-rnti E-RNTI
+}
+
+E-DCH-MinimumSet-E-TFCI ::= INTEGER (0..127)
+
+E-DCH-ReconfigurationInfo ::= SEQUENCE {
+ e-DCH-RL-InfoNewServingCell E-DCH-RL-InfoNewServingCell OPTIONAL,
+ e-DCH-RL-InfoOtherCellList SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ E-DCH-RL-InfoOtherCell OPTIONAL
+}
+
+E-DCH-ReconfigurationInfo-r7 ::= SEQUENCE {
+ e-DCH-RL-InfoNewServingCell E-DCH-RL-InfoNewServingCell-r7 OPTIONAL,
+ e-DCH-RL-InfoOtherCellList SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ E-DCH-RL-InfoOtherCell OPTIONAL
+}
+
+E-DCH-ReconfigurationInfo-r11 ::= SEQUENCE {
+ e-DCH-RL-InfoNewServingCell E-DCH-RL-InfoNewServingCell-r11 OPTIONAL,
+ e-DCH-RL-InfoOtherCellList SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ E-DCH-RL-InfoOtherCell-r11 OPTIONAL
+}
+
+E-DCH-ReconfigurationInfo-SecULFrequency ::= SEQUENCE {
+ e-DCH-RL-InfoNewSecServingCell E-DCH-RL-InfoNewSecServingCell OPTIONAL,
+ e-DCH-RL-InfoOtherCellList-SecULFreq SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ E-DCH-RL-InfoOtherCell-SecULFreq OPTIONAL
+}
+
+E-DCH-RL-InfoNewServingCell ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ e-AGCH-Information E-AGCH-Information,
+ servingGrant SEQUENCE {
+ value INTEGER (0..38) OPTIONAL,
+ primary-Secondary-GrantSelector ENUMERATED { primary, secondary }
+ } OPTIONAL,
+ e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL,
+ reference-E-TFCIs E-DPDCH-Reference-E-TFCIList OPTIONAL,
+ powerOffsetForSchedInfo INTEGER (0..6) OPTIONAL,
+ threeIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ twoIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+}
+
+E-DCH-RL-InfoNewServingCell-r7 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ e-AGCH-Information E-AGCH-Information,
+ servingGrant SEQUENCE {
+ value INTEGER (0..38) OPTIONAL,
+ primary-Secondary-GrantSelector ENUMERATED { primary, secondary }
+ } OPTIONAL,
+ e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL,
+ reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7 OPTIONAL,
+ powerOffsetForSchedInfo INTEGER (0..6) OPTIONAL,
+ threeIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ twoIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+}
+
+E-DCH-RL-InfoNewServingCell-r11 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ e-AGCH-Information E-AGCH-Information,
+ e-ROCH-Information E-ROCH-Information OPTIONAL,
+ servingGrant SEQUENCE {
+ value INTEGER (0..38) OPTIONAL,
+ primary-Secondary-GrantSelector ENUMERATED { primary, secondary }
+ } OPTIONAL,
+ e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL,
+ reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7 OPTIONAL,
+ powerOffsetForSchedInfo INTEGER (0..6) OPTIONAL,
+ threeIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ twoIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ e-HICH-Information E-HICH-Information-r11 OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+}
+
+E-DCH-RL-InfoNewSecServingCell ::= SEQUENCE {
+ e-AGCH-Information E-AGCH-Information,
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+}
+
+E-DCH-RL-InfoOtherCell ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ e-HICH-Info CHOICE {
+ e-HICH-Information E-HICH-Information,
+ releaseIndicator NULL
+ } OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+}
+
+E-DCH-RL-InfoOtherCell-r11 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ e-HICH-Info CHOICE {
+ e-HICH-Information E-HICH-Information-r11,
+ releaseIndicator NULL,
+ secondaryReleaseIndicator NULL
+ } OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+}
+
+E-DCH-RL-InfoOtherCell-SecULFreq ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Info CHOICE {
+ e-RGCH-Information E-RGCH-Information,
+ releaseIndicator NULL
+ } OPTIONAL
+}
+
+E-DCH-RL-InfoSameServingCell ::= SEQUENCE {
+ e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL,
+ reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7 OPTIONAL
+}
+
+E-DCH-SPS-Information-TDD128 ::= SEQUENCE {
+ e-dch-SPS-Operation CHOICE {
+ continue NULL,
+ newOperation E-DCH-SPS-NewOperation-TDD128
+ }
+}
+
+E-DCH-SPS-NewOperation-TDD128 ::= SEQUENCE {
+ e-hich-Info E-HICH-Information-For-SPS-TDD128,
+ e-dch-TxPattern E-DCH-TxPatternList-TDD128 OPTIONAL,
+ initialSPSInfoForEDCH SEQUENCE {
+ n-E-UCCH INTEGER (1..8),
+ codeResourceInfo UL-TS-ChannelisationCode,
+ timeslotResourceRelatedInfo BIT STRING (SIZE (5)),
+ powerResourceRelatedInfo INTEGER (1..32),
+ activationTime ActivationTime,
+ subframeNum INTEGER (0..1),
+ initialTxPatternIndex INTEGER (0..maxEDCHTxPattern-TDD128-1)
+ } OPTIONAL
+}
+
+E-DCH-TxPatternList-TDD128 ::= SEQUENCE (SIZE (1..maxEDCHTxPattern-TDD128)) OF
+ SEQUENCE {
+ repetitionPeriodAndLength RepetitionPeriodAndLengthForSPS
+}
+
+E-DPCCH-Info ::= SEQUENCE {
+ e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset,
+ happyBit-DelayCondition HappyBit-DelayCondition
+}
+
+E-DPCCH-Info-r7 ::= SEQUENCE {
+ e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset,
+ happyBit-DelayCondition HappyBit-DelayCondition,
+ e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL,
+ e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL
+}
+
+E-DPCCH-DPCCH-PowerOffset ::= INTEGER (0..8)
+
+Extended-E-DPCCH-DPCCH-PowerOffset ::= INTEGER (9..15)
+
+E-DPDCH-Info ::= SEQUENCE {
+ e-TFCI-TableIndex E-TFCI-TableIndex,
+ e-DCH-MinimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL,
+ reference-E-TFCIs E-DPDCH-Reference-E-TFCIList,
+ maxChannelisationCodes E-DPDCH-MaxChannelisationCodes,
+ pl-NonMax E-DPDCH-PL-NonMax,
+ schedulingInfoConfiguration E-DPDCH-SchedulingInfoConfiguration,
+ threeIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ twoIndexStepThreshold INTEGER (0..37) OPTIONAL
+}
+
+E-DPDCH-Info-r7 ::= SEQUENCE {
+ e-TFCI-TableIndex E-TFCI-TableIndex,
+ e-DCH-MinimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL,
+ reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7,
+ maxChannelisationCodes E-DPDCH-MaxChannelisationCodes,
+ pl-NonMax E-DPDCH-PL-NonMax,
+ schedulingInfoConfiguration E-DPDCH-SchedulingInfoConfiguration,
+ threeIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ twoIndexStepThreshold INTEGER (0..37) OPTIONAL
+}
+
+E-DPDCH-Info-r8 ::= SEQUENCE {
+ e-TFCI-TableIndex E-TFCI-TableIndex,
+ e-DCH-MinimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL,
+ reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7,
+ minReduced-E-DPDCH-GainFactor MinReduced-E-DPDCH-GainFactor OPTIONAL,
+ maxChannelisationCodes E-DPDCH-MaxChannelisationCodes,
+ pl-NonMax E-DPDCH-PL-NonMax,
+ schedulingInfoConfiguration E-DPDCH-SchedulingInfoConfiguration,
+ threeIndexStepThreshold INTEGER (0..37) OPTIONAL,
+ twoIndexStepThreshold INTEGER (0..37) OPTIONAL
+}
+
+E-DPDCH-PeriodicyOfSchedInfo ::= ENUMERATED {
+ everyEDCHTTI, ms4, ms10, ms20, ms50, ms100, ms200, ms500,
+ ms1000 }
+
+-- The actual value of E-DPDCH-PL-NonMax is: IE value * 0.04
+E-DPDCH-PL-NonMax ::= INTEGER (11..25)
+
+E-DPDCH-PowerInterpolation ::= BOOLEAN
+
+E-DPDCH-Reference-E-TFCI ::= SEQUENCE {
+ reference-E-TFCI INTEGER (0..127),
+ reference-E-TFCI-PO INTEGER (0..29)
+}
+
+E-DPDCH-Reference-E-TFCI-r7 ::= SEQUENCE {
+ reference-E-TFCI INTEGER (0..127),
+ reference-E-TFCI-PO-r7 INTEGER (0..31)
+}
+
+E-DPDCH-Reference-E-TFCIList ::= SEQUENCE (SIZE (1..8)) OF E-DPDCH-Reference-E-TFCI
+
+E-DPDCH-Reference-E-TFCIList-r7 ::= SEQUENCE (SIZE (1..8)) OF E-DPDCH-Reference-E-TFCI-r7
+
+E-DPDCH-SchedulingInfoConfiguration ::= SEQUENCE {
+ periodicityOfSchedInfo-NoGrant E-DPDCH-PeriodicyOfSchedInfo OPTIONAL,
+ periodicityOfSchedInfo-Grant E-DPDCH-PeriodicyOfSchedInfo OPTIONAL,
+ powerOffsetForSchedInfo INTEGER (0..6)
+}
+
+E-DPDCH-SchedulingTransmConfiguration ::= SEQUENCE {
+ ms2-SchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL,
+ servingGrant SEQUENCE {
+ value INTEGER (0..38),
+ primary-Secondary-GrantSelector ENUMERATED { primary, secondary }
+ } OPTIONAL
+}
+
+E-DPDCH-MaxChannelisationCodes ::= ENUMERATED {
+ sf256, sf128, sf64, sf32, sf16, sf8, sf4, sf4x2,
+ sf2x2, sf4x2-and-sf2x2 }
+
+E-HICH-ChannelisationCode ::= INTEGER (0..127)
+
+E-HICH-Information ::= SEQUENCE {
+ channelisationCode E-HICH-ChannelisationCode,
+ signatureSequence E-HICH-RGCH-SignatureSequence
+}
+
+E-HICH-Information-r11 ::= SEQUENCE {
+ channelisationCode E-HICH-ChannelisationCode,
+ signatureSequence E-HICH-RGCH-SignatureSequence,
+ secondarySignatureSequence E-HICH-RGCH-SignatureSequence OPTIONAL
+}
+
+E-HICH-Information-CommonEdch ::= SEQUENCE {
+ channelisationCode E-HICH-ChannelisationCode OPTIONAL,
+ signatureSequence E-HICH-RGCH-SignatureSequence OPTIONAL
+}
+
+E-HICH-Information-TDD384-768 ::= SEQUENCE {
+ n-E-HICH INTEGER (4..44),
+ tS-Number INTEGER (0..14),
+ modeSpecificInfo CHOICE {
+ tdd384 DL-TS-ChannelisationCode,
+ tdd768 DL-TS-ChannelisationCode-VHCR
+ },
+ burst-Type ENUMERATED { type1, type2 },
+ midamble-Allocation-Mode ENUMERATED { default, common }
+}
+
+E-HICH-Information-LCR ::= SEQUENCE {
+ ei INTEGER (0..3),
+ timeslotNumber TimeslotNumber-LCR-r4,
+ channelisation-Code HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble INTEGER (0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8)
+}
+
+E-HICH-Information-TDD128 ::= SEQUENCE {
+ n-E-HICH INTEGER (4..15),
+ e-HICH-InfoList E-HICH-Information-LCR-List
+}
+
+E-HICH-Information-LCR-List ::= SEQUENCE (SIZE (1..maxNumE-HICH)) OF
+ E-HICH-Information-LCR
+
+E-HICH-RGCH-SignatureSequence ::= INTEGER (0..39)
+
+E-HICH-Information-For-SPS-TDD128 ::= SEQUENCE {
+ configurationmode CHOICE{
+ implicit SEQUENCE {
+ ei INTEGER (0..3) OPTIONAL
+ },
+ explicit SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ channelisation-Code HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble INTEGER (0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8)
+ }
+ },
+ signatureSequenceGroupIndex INTEGER (0..19)
+}
+
+
+E-PUCH-Info ::= SEQUENCE {
+ e-TFCS-Info E-TFCS-Info,
+ modeSpecificInfo CHOICE {
+ tdd348-tdd768 SEQUENCE {
+ noSlotsForTFCIandTPC INTEGER (1..12),
+ e-PUCH-ContantValue INTEGER (-35..10),
+ e-PUCH-TS-ConfigurationList SEQUENCE (SIZE (1..maxTS-2)) OF E-PUCH-TS-Slots,
+ e-PUCH-CodeHopping BOOLEAN,
+ e-PUCH-TPC-Step-Size INTEGER (1..3),
+ minimum-Allowed-Code-Rate INTEGER (0..63),
+ maximum-Allowed-Code-Rate INTEGER (0..63)
+ },
+ tdd128 SEQUENCE {
+ snpl-ReportType ENUMERATED { type1, type2 } OPTIONAL,
+ prxdes-base INTEGER (-112..-50),
+ beaconPLEst BOOLEAN OPTIONAL,
+ tpc-StepSize TPC-StepSizeTDD,
+ pebase-PowerControlGAP PowerControlGAP OPTIONAL,
+ ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL,
+ e-PUCH-TS-ConfigurationList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF
+ E-PUCH-TS-Slots-LCR,
+ minimum-Allowed-Code-Rate INTEGER (0..63),
+ maximum-Allowed-Code-Rate INTEGER (0..63),
+ maximumNumOfRetransSchedInfo INTEGER (0..15),
+ retransTimerForSchedInfo ENUMERATED { ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75,
+ ms80, ms85, ms90, ms95, ms100, ms110, ms120,
+ ms140, ms160, ms200, ms240,ms280, ms320, ms400,
+ ms480, ms560 }
+ }
+ },
+ -- For 3.84/7.68 TDD only, should be ignored for 1.28Mcps TDD mode
+ powerOffsetForSchedInfo INTEGER (0..6) OPTIONAL
+}
+
+E-PUCH-Info-TDD128 ::= SEQUENCE {
+ e-TFCS-Info E-TFCS-Info,
+ snpl-ReportType ENUMERATED { type1, type2 } OPTIONAL,
+ prxdes-base INTEGER (-112..-50),
+ beaconPLEst BOOLEAN OPTIONAL,
+ tpc-StepSize TPC-StepSizeTDD,
+ pebase-PowerControlGAP INTEGER (1..255) OPTIONAL,
+ ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL,
+ e-PUCH-TS-ConfigurationList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF
+ E-PUCH-TS-Slots-LCR,
+ minimum-Allowed-Code-Rate INTEGER (0..63),
+ maximum-Allowed-Code-Rate INTEGER (0..63),
+ maximumNumOfRetransSchedInfo INTEGER (0..15),
+ retransTimerForSchedInfo ENUMERATED { ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75,
+ ms80, ms85, ms90, ms95, ms100, ms110, ms120,
+ ms140, ms160, ms200, ms240,ms280, ms320, ms400,
+ ms480, ms560 },
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy INTEGER (0..6) OPTIONAL
+}
+
+E-PUCH-Info-MulticarrierEDCH-TDD128 ::= SEQUENCE {
+ e-PUCH-TS-ConfigurationList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF
+ E-PUCH-TS-Slots-LCR
+}
+
+E-PUCH-TS-Slots ::= SEQUENCE {
+ ts-Number INTEGER (0..14),
+ midambleShiftAndBurstType MidambleShiftAndBurstType-EDCH
+}
+
+E-PUCH-TS-Slots-LCR ::= SEQUENCE {
+ -- Note: For 1.28Mcps TDD operation, valid value for timeslotNumber is INTEGER (1..5)
+ timeslotNumber TimeslotNumber-LCR-r4,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble INTEGER (0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8)
+}
+
+E-RGCH-CombinationIndex ::= INTEGER (0..5)
+
+E-RGCH-Information ::= SEQUENCE {
+ signatureSequence E-HICH-RGCH-SignatureSequence,
+ rg-CombinationIndex E-RGCH-CombinationIndex
+}
+
+E-RGCH-Information-CommonEdch ::= SEQUENCE {
+ signatureSequence E-HICH-RGCH-SignatureSequence OPTIONAL
+}
+
+E-RUCCH-AccessServiceClass ::= PRACH-Partitioning-LCR-r4
+
+E-RUCCH-Info ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ tdd384-tdd768 SEQUENCE {
+ e-RUCCH-ConstantValue INTEGER (-35..10),
+ e-RUCCH-PersistenceScalingFactor PersistenceScalingFactor,
+ t-RUCCH ENUMERATED {ms40, ms80, ms120, ms160, ms200,
+ ms240, ms280, ms320} OPTIONAL,
+ e-RUCCH-TS-Number INTEGER (0..14) OPTIONAL,
+ e-RUCCH-Midamble ENUMERATED {direct, direct-Inverted} OPTIONAL,
+ t-adv ENUMERATED { sec1, sec2, sec4, sec8, sec16,
+ sec32, sec128, infinity } OPTIONAL,
+ t-SCHED ENUMERATED { zero, ms40, ms80, ms160, ms250,
+ sec1, sec2, sec4 } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ tdd384 CHOICE {
+ sF16 SEQUENCE (SIZE (1..8)) OF SF16Codes,
+ sF8 SEQUENCE (SIZE (1..8)) OF SF8Codes
+ },
+ tdd768 CHOICE {
+ sF32 SEQUENCE (SIZE (1..16)) OF SF32Codes,
+ sF816 SEQUENCE (SIZE (1..16)) OF SF16Codes2
+ }
+ }
+ },
+ tdd128 SEQUENCE {
+ t-RUCCH ENUMERATED { ms20, ms40, ms60, ms80, ms120,
+ ms160, ms200, ms240, ms280, ms320,
+ ms400, ms500, ms600, ms800, ms1000,
+ ms2000 } OPTIONAL,
+ n-RUCCH INTEGER (0..7) OPTIONAL,
+ t-WAIT ENUMERATED { everyEDCHTTI, ms40, ms80, ms160,
+ ms320, ms640, ms1000, ms2000 } OPTIONAL,
+ t-SI ENUMERATED { everyEDCHTTI, ms20, ms40, ms60, ms80,
+ ms160, ms200 } OPTIONAL,
+ extendedEstimationWindow INTEGER (2..5) OPTIONAL,
+ e-RUCCH-AccessServiceClass E-RUCCH-AccessServiceClass OPTIONAL,
+ e-RUCCH-PersistenceScalingFactor PersistenceScalingFactorList OPTIONAL,
+ sync-UL-InfoForE-RUCCH SYNC-UL-InfoForE-RUCCH OPTIONAL,
+ prach-information PRACH-Information-LCR-List OPTIONAL
+ }
+ }
+}
+
+E-RUCCH-Info-TDD128 ::= SEQUENCE {
+ t-RUCCH ENUMERATED { ms20, ms40, ms60, ms80, ms120,
+ ms160, ms200, ms240, ms280, ms320,
+ ms400, ms500, ms600, ms800, ms1000,
+ ms2000 } OPTIONAL,
+ n-RUCCH INTEGER (0..7) OPTIONAL,
+ t-WAIT ENUMERATED { everyEDCHTTI, ms40, ms80, ms160,
+ ms320, ms640, ms1000, ms2000 } OPTIONAL,
+ t-SI ENUMERATED { everyEDCHTTI, ms20, ms40, ms60, ms80,
+ ms160, ms200 } OPTIONAL,
+ extendedEstimationWindow INTEGER (2..5) OPTIONAL,
+ e-RUCCH-AccessServiceClass E-RUCCH-AccessServiceClass OPTIONAL,
+ e-RUCCH-PersistenceScalingFactor PersistenceScalingFactorList OPTIONAL,
+ sync-UL-InfoForE-RUCCH SYNC-UL-InfoForE-RUCCH OPTIONAL,
+ prach-information PRACH-Information-LCR-List OPTIONAL
+}
+
+E-TFC-Boost-Info-r7 ::= SEQUENCE {
+ e-TFCI-Boost INTEGER (0..127),
+ delta-T2TP INTEGER (0..6) OPTIONAL
+}
+
+E-TFCI-TableIndex ::= INTEGER (0..1)
+
+E-TFCS-Info ::= SEQUENCE {
+ reference-Beta-QPSK-List SEQUENCE (SIZE (1..8)) OF Reference-Beta-QPSK,
+ reference-Beta-16QAM-List SEQUENCE (SIZE (1..8)) OF Reference-Beta-16QAM
+}
+
+EARFCN ::= INTEGER (0..65535)
+
+EARFCNExtension ::= INTEGER (65536..262143)
+
+EARFCNExtension2 ::= INTEGER (0..262143)
+
+EARFCNRange ::= SEQUENCE {
+-- If the IE earfcn is set to a value of 65535, then the EARFCN
+-- value for that instance shall be read from the IE earfcnExt.
+ earfcn EARFCN,
+ earfcnExt EARFCNExtension OPTIONAL
+}
+
+EnablingDelay ::= ENUMERATED {
+ radio-frames-0,
+ radio-frames-1,
+ radio-frames-2,
+ radio-frames-4,
+ radio-frames-8,
+ radio-frames-16,
+ radio-frames-32,
+ radio-frames-64,
+ radio-frames-128,
+ spare7,
+ spare6,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+EnablingDelay-TDD128 ::= ENUMERATED {
+ radio-frames-0, radio-frames-1, radio-frames-2,
+ radio-frames-4, radio-frames-8, radio-frames-16,
+ radio-frames-32, radio-frames-64, radio-frames-128,
+ spare7, spare6, spare5, spare4, spare3, spare2,
+ infinity }
+
+EXT-UL-TimingAdvance ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ tdd384 SEQUENCE {
+ ex-ul-TimingAdvance INTEGER (0..255)
+ },
+ tdd768 SEQUENCE {
+ ex-ul-TimingAdvance INTEGER (0..511)
+ }
+ }
+}
+
+F-DPCHInfo ::= SEQUENCE {
+ fdpch-SlotFormat INTEGER (0..9) OPTIONAL,
+ codeNumber INTEGER (0..255) OPTIONAL,
+ -- Actual value dl-FDPCH-TPCcommandErrorRate = IE value * 0.01
+ dl-FDPCH-TPCcommandErrorRate INTEGER (1..10) OPTIONAL
+}
+
+FACH-PCH-Information ::= SEQUENCE {
+ transportFormatSet TransportFormatSet,
+ transportChannelIdentity TransportChannelIdentity,
+ ctch-Indicator BOOLEAN
+}
+
+FACH-PCH-InformationList ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF
+ FACH-PCH-Information
+
+Fallback-R99-PRACH-info-IEs::= SEQUENCE {
+ cCCH-Fallback BOOLEAN,
+ dCCH-Fallback BOOLEAN
+}
+
+Feedback-cycle ::= ENUMERATED {
+ fc0, fc2, fc4, fc8, fc10, fc20, fc40, fc80, fc160}
+
+Feedback-cycle2 ::= ENUMERATED {
+ fc0, fc8, fc10, fc16,
+ fc20, f32, fc40, f64,
+ fc80, fc160, spare6, spare5,
+ spare4, spare3, spare2, spare1}
+
+Feedback-cycle-r7 ::= ENUMERATED {
+ fc0, fc2, fc4, fc8, fc10, fc20, fc40, fc80, fc160,
+ fc16, fc32, fc64, spare4, spare3, spare2, spare1 }
+
+FPACH-Info-r4 ::= SEQUENCE {
+ timeslot TimeslotNumber-LCR-r4,
+ channelisationCode TDD-FPACH-CCode16-r4,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4,
+ wi Wi-LCR
+}
+
+F-TPICH-InfoNewServingCell ::= SEQUENCE {
+ f-tpich-Information F-TPICH-Information
+}
+
+F-TPICH-InfoOtherCell ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ f-tpich-Info CHOICE {
+ f-tpich-Information F-TPICH-Information,
+ releaseIndicator NULL
+ }
+}
+
+F-TPICH-Information ::= SEQUENCE {
+ ftpich-SlotFormat FTPICH-SlotFormat,
+ ftpich-CodeNumber INTEGER (0..255),
+ ftpich-FrameOffset FTPICH-FrameOffset
+}
+
+F-TPICH-ReconfigurationInfo ::= SEQUENCE {
+ f-tpich-InfoNewServingCell F-TPICH-InfoNewServingCell OPTIONAL,
+ f-tpich-InfoOtherCellList SEQUENCE (SIZE (1..maxRL)) OF
+ F-TPICH-InfoOtherCell OPTIONAL
+}
+
+-- Actual value FTPICH-FrameOffset = IE value * 256
+FTPICH-FrameOffset ::= INTEGER (0..149)
+
+FTPICH-SlotFormat ::= INTEGER (0..9)
+
+FreqIndexListForEnhancedMeas ::= SEQUENCE (SIZE (1..maxFreqMeasWithoutCM)) OF
+ FrequencyIndexForEnhancedMeas
+
+FreqIndexListForEnhancedMeas-r12 ::= SEQUENCE (SIZE (1..maxFreqMeasWithoutCM)) OF
+ FrequencyIndexForEnhancedMeas-r12
+
+FrequencyInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd FrequencyInfoFDD,
+ tdd FrequencyInfoTDD }
+}
+
+FrequencyInfoFDD ::= SEQUENCE {
+ uarfcn-UL UARFCN OPTIONAL,
+ uarfcn-DL UARFCN
+}
+
+FrequencyInfoTDD ::= SEQUENCE {
+ uarfcn-Nt UARFCN
+}
+
+FrequencyIndexForEnhancedMeas ::= INTEGER (0..maxCellMeas-1)
+
+FrequencyIndexForEnhancedMeas-r12 ::= INTEGER (0..maxCellMeas-ext-1)
+
+HappyBit-DelayCondition ::= ENUMERATED {
+ ms2, ms10, ms20, ms50, ms100, ms200, ms500, ms1000 }
+
+HARQ-Preamble-Mode ::= INTEGER (0..1)
+
+HS-ChannelisationCode-LCR ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+HS-ChannelisationCodeSetInfo-LCR ::= SEQUENCE {
+ startCode HS-ChannelisationCode-LCR,
+ stopCode HS-ChannelisationCode-LCR
+}
+
+HS-DSCH-CommonSystemInformation ::= SEQUENCE {
+ ccch-MappingInfo CommonRBMappingInfo,
+ srb1-MappingInfo CommonRBMappingInfo OPTIONAL,
+ common-MAC-ehs-ReorderingQueueList Common-MAC-ehs-ReorderingQueueList,
+ hs-scch-SystemInfo HS-SCCH-SystemInfo,
+ harq-SystemInfo HARQ-Info,
+ common-H-RNTI-information SEQUENCE (SIZE (1..maxCommonHRNTI)) OF
+ H-RNTI,
+ bcchSpecific-H-RNTI H-RNTI
+}
+
+HS-DSCH-CommonSystemInformation-TDD128 ::= SEQUENCE {
+ ccch-MappingInfo CommonRBMappingInfo,
+ srb1-MappingInfo CommonRBMappingInfo OPTIONAL,
+ common-MAC-ehs-ReorderingQueueList Common-MAC-ehs-ReorderingQueueList,
+ hs-scch-SystemInfo-tdd128 HS-SCCH-SystemInfo-TDD128,
+ harq-SystemInfo HARQ-Info,
+ hs-pdsch-MidambleConfiguration HS-PDSCH-Midamble-Configuration-TDD128,
+ common-H-RNTI-information SEQUENCE (SIZE (1..maxCommonHRNTI)) OF H-RNTI,
+ bcchSpecific-H-RNTI H-RNTI
+}
+
+HS-DSCH-DrxBurstFach ::= ENUMERATED {
+ f1, f2, f4, f8, f16, spare3, spare2, spare1 }
+
+HS-DSCH-DrxCellfach-info ::= SEQUENCE {
+ t-321 T-321,
+ hs-dsch-DrxCycleFach HS-DSCH-DrxCycleFach,
+ hs-dsch-DrxBurstFach HS-DSCH-DrxBurstFach,
+ drxInterruption-hs-dsch BOOLEAN
+}
+
+HS-DSCH-DrxCellfach-info-TDD128 ::= SEQUENCE {
+ t-321 T-321,
+ hs-dsch-DrxCycleFach HS-DSCH-DrxCycleFach,
+ hs-dsch-DrxBurstFach HS-DSCH-DrxBurstFach
+}
+
+HS-DSCH-DrxCellfach-SecondDrx-info ::= SEQUENCE {
+ hs-dsch-SecondDrx-CycleFach HS-DSCH-SecondDrx-CycleFach,
+ drx-level CHOICE {
+ one-level-DRX SEQUENCE {
+ hs-dsch-Second-Rx-BurstFach HS-DSCH-Second-Rx-BurstFach OPTIONAL,
+ t329 T-329 OPTIONAL
+ },
+ two-level-DRX SEQUENCE {
+ t328 T-328 OPTIONAL,
+ hs-dsch-First-Rx-BurstFach HS-DSCH-First-Rx-BurstFach OPTIONAL,
+ hs-dsch-First-Drx-CycleFach HS-DSCH-First-Drx-CycleFach OPTIONAL,
+ hs-dsch-Second-Rx-BurstFach HS-DSCH-Second-Rx-BurstFach OPTIONAL,
+ t329 T-329 OPTIONAL
+ }
+ }
+}
+
+HS-DSCH-DrxCycleFach ::= ENUMERATED {
+ f4, f8, f16, f32 }
+
+HS-DSCH-First-Drx-CycleFach ::= ENUMERATED {
+ f2, f4, f8, f16, f32, f64 }
+
+HS-DSCH-First-Rx-BurstFach ::= ENUMERATED {
+ f0p4, f0p8 }
+
+HS-DSCH-PagingSystemInformation ::= SEQUENCE {
+ dlScramblingCode SecondaryScramblingCode OPTIONAL,
+ pich-ForHSDPASupportedPagingList SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ PICH-ForHSDPASupportedPaging,
+ numberOfPcchTransmissions INTEGER(1..5),
+ transportBlockSizeList SEQUENCE (SIZE (1..2)) OF
+ TransportBlockSizeIndex
+}
+
+HS-DSCH-PagingSystemInformation-TDD128 ::= SEQUENCE {
+ pich-ForHsdschList SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ PICH-ForHSDPASupportedPaging-TDD128,
+ dtch-DCCH-reception-window-size INTEGER (1..16),
+ pcch-InformationList PCCH-InformationList OPTIONAL
+}
+
+HS-DSCH-RxPatternList-TDD128 ::= SEQUENCE (SIZE (1..maxRxPatternForHSDSCH-TDD128)) OF
+ SEQUENCE {
+ repetitionPeriodAndLength RepetitionPeriodAndLengthForSPS
+}
+
+HS-DSCH-Second-Rx-BurstFach ::= ENUMERATED {
+ f1, f2 }
+
+HS-DSCH-SecondDrx-CycleFach ::= ENUMERATED {
+ f4, f8, f16, f32, f64, f128, f256, f512 }
+
+HS-DSCH-TBSizeTable ::= ENUMERATED { octetAligned }
+
+HS-DSCH-TbsList-TDD128 ::= SEQUENCE (SIZE (1..maxTbsForHSDSCH-TDD128)) OF
+ SEQUENCE {
+ hs-dsch-TBSizeIndex INTEGER (1..63)
+}
+
+HS-DSCH-SPS-Information-TDD128 ::= SEQUENCE {
+ hs-dsch-SPS-Operation CHOICE {
+ continue NULL,
+ newOperation HS-DSCH-SPS-NewOperation-TDD128
+ }
+}
+
+HS-DSCH-SPS-NewOperation-TDD128 ::= SEQUENCE {
+ hs-dsch-TbsList HS-DSCH-TbsList-TDD128 OPTIONAL,
+ hs-dsch-RxPatternList HS-DSCH-RxPatternList-TDD128 OPTIONAL,
+ hARQInfoForSPS SEQUENCE {
+ numberOfProcesses INTEGER (1..8),
+ memorySize HARQMemorySize
+ } OPTIONAL,
+ hs-sich-List HS-SICH-List-TDD128,
+ initialSPSInfoForHSDSCH SEQUENCE {
+ timeslotInfo BIT STRING (SIZE (5)),
+ codeResourceInfo HS-ChannelisationCodeSetInfo-LCR,
+ activationTime ActivationTime,
+ sfnNum INTEGER (0..1),
+ initialRxPatternIndex INTEGER (0..maxRxPatternForHSDSCH-TDD128-1),
+ initialTfsIndex INTEGER (0..maxTbsForHSDSCH-TDD128-1),
+ modulation ENUMERATED { modQPSK, mod16QAM },
+ hs-sich-Index INTEGER (0..maxHSSICH-TDD128-1)
+ } OPTIONAL
+}
+
+HS-DPCCHOverheadReduction ::= SEQUENCE {
+ hs-dpcch-ReductionType ENUMERATED { reductionType1, reductionType2} OPTIONAL,
+ feedback-cycle2 Feedback-cycle2,
+ cqi-CycleSwitchTimer CQI-CycleSwitchTimer
+}
+
+HS-PDSCH-Midamble-Configuration-TDD128 ::= SEQUENCE {
+ midambleAllocationMode CHOICE{
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble INTEGER (0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8)
+}
+
+HS-SCCH-Info ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD384,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD384
+ },
+ tdd128 SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD128
+ }
+ }
+}
+
+HS-SCCH-Info-r6 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD384,
+ dhs-sync DHS-Sync OPTIONAL,
+ bler-target Bler-Target,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD384-r6
+ },
+ tdd128 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ power-level-HSSICH INTEGER (-120..-58),
+ tpc-step-size ENUMERATED { s1, s2, s3 , spare1 },
+ bler-target Bler-Target,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD128-r6
+ }
+ }
+ }
+}
+
+HS-SCCH-Info-r7 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD384,
+ dhs-sync DHS-Sync OPTIONAL,
+ bler-target Bler-Target,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD384-r6
+ },
+ tdd768 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD768,
+ dhs-sync DHS-Sync OPTIONAL,
+ bler-target Bler-Target,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD768
+ },
+ tdd128 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ power-level-HSSICH INTEGER (-120..-58),
+ tpc-step-size ENUMERATED { s1, s2, s3 , spare1 },
+ bler-target Bler-Target,
+ powerControlGAP PowerControlGAP OPTIONAL,
+ pathlossCompensationSwitch BOOLEAN OPTIONAL,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD128-r6
+ }
+ }
+ }
+}
+
+HS-SCCH-Info-r8-ext ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd NULL,
+ tdd CHOICE {
+ tdd384 NULL,
+ tdd768 NULL,
+ tdd128 SEQUENCE {
+ hS-SCCH-tpc-step-size ENUMERATED { s1, s2, s3, spare1 } OPTIONAL
+ }
+ }
+ }
+}
+
+HS-SCCH-Info-r9 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes,
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD384,
+ dhs-sync DHS-Sync OPTIONAL,
+ bler-target Bler-Target,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD384-r6
+ },
+ tdd768 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD768,
+ dhs-sync DHS-Sync OPTIONAL,
+ bler-target Bler-Target,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD768
+ },
+ tdd128 SEQUENCE {
+ nack-ack-power-offset INTEGER (-7..8),
+ power-level-HSSICH INTEGER (-120..-58),
+ tpc-step-size ENUMERATED { s1, s2, s3, spare1 },
+ bler-target Bler-Target,
+ hS-SCCH-tpc-step-size ENUMERATED { s1, s2, s3, spare1 } OPTIONAL,
+ powerControlGAP PowerControlGAP OPTIONAL,
+ pathlossCompensationSwitch BOOLEAN OPTIONAL,
+ hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD128-r6
+ }
+ }
+ }
+}
+
+HS-SCCH-DRX-InactivityThreshold-TDD128 ::= ENUMERATED {
+ sub-frames-1, sub-frames-2, sub-frames-4,
+ sub-frames-8, sub-frames-16, sub-frames-32,
+ sub-frames-64, sub-frames-128, sub-frames-256,
+ sub-frames-512,
+ spare6, spare5, spare4, spare3, spare2,
+ infinity }
+
+HS-SCCH-DRX-Info-TDD128 ::= SEQUENCE {
+ hS-SCCH-DRX-Cycle ControlChannelDRXCycle-TDD128,
+ hS-SCCH-DRX-InactivityThreshold HS-SCCH-DRX-InactivityThreshold-TDD128 OPTIONAL,
+ hS-SCCH-DRX-Offset INTEGER (0..63)
+}
+
+HS-SCCH-Codes ::= INTEGER (0..127)
+
+HS-SCCH-Less-NewOperation ::= SEQUENCE {
+ hs-pdsch-CodeIndex INTEGER (1..15),
+ hs-scch-LessTFS HS-SCCH-LessTFSList
+}
+
+HS-SCCH-LessInfo-r7 ::= SEQUENCE {
+ hs-scchLessOperation CHOICE {
+ continue NULL,
+ newOperation HS-SCCH-Less-NewOperation
+ }
+}
+
+HS-SCCH-LessTFSList ::= SEQUENCE (SIZE (1..maxHS-SCCHLessTrBlk)) OF
+ SEQUENCE {
+ hs-scch-LessTFSI INTEGER (1..90),
+ hs-scch-LessSecondCodeSupport BOOLEAN
+}
+
+HS-SCCH-SystemInfo ::= SEQUENCE {
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-Codes
+}
+
+HS-SCCH-SystemInfo-TDD128 ::= SEQUENCE {
+ hs-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF
+ HS-SCCH-TDD128-r6,
+ power-level-HSSICH INTEGER (-120..-58),
+ nack-ack-power-offset INTEGER (-7..8),
+ tpc-step-size ENUMERATED { s1, s2, s3 , spare1 },
+ bler-target Bler-Target,
+ power-control-gap INTEGER (1..255) OPTIONAL,
+ pathloss-compensation-switch BOOLEAN OPTIONAL
+}
+
+HS-SCCH-TDD128 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ firstChannelisationCode HS-ChannelisationCode-LCR,
+ secondChannelisationCode HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble INTEGER(0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8),
+ bler-target Bler-Target,
+ hs-sich-configuration HS-SICH-Configuration-TDD128
+}
+
+HS-SCCH-TDD128-r6 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ firstChannelisationCode HS-ChannelisationCode-LCR,
+ secondChannelisationCode HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble INTEGER(0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8),
+ hs-sich-configuration HS-SICH-Configuration-TDD128-r6
+}
+
+--for TDD128 Multi-Carrier
+HS-SCCH-TDD128-MultiCarrier ::= SEQUENCE {
+ uarfcn-HS-SCCH-Rx UARFCN,
+ timeslotNumber TimeslotNumber-LCR-r4,
+ firstChannelisationCode HS-ChannelisationCode-LCR,
+ secondChannelisationCode HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble INTEGER(0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8),
+ bler-target Bler-Target,
+ hs-sich-configuration HS-SICH-Configuration-TDD128
+}
+
+HS-SICH-Configuration-TDD128 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ channelisationCode HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8),
+ nack-ack-power-offset INTEGER (-7..8),
+ power-level-HSSICH INTEGER (-120..-58),
+ tpc-step-size ENUMERATED { s1, s2, s3 , spare1}
+}
+
+HS-SICH-Configuration-TDD128-r6 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ channelisationCode HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8)
+}
+
+HS-SICH-List-TDD128 ::= SEQUENCE (SIZE (1..maxHSSICH-TDD128)) OF
+ CHOICE {
+ implicit SEQUENCE {
+ hS-SCCH-Index INTEGER (0..maxHSSCCHs-1)
+ },
+ explicit SEQUENCE {
+ hS-SICH-Info HS-SICH-Configuration-TDD128-r6
+ }
+}
+
+--The order of the list corresponds to the order of HS-SCCHs in HS-SCCH info
+HS-SICH-ReferenceSignalInfoList ::= SEQUENCE ( SIZE (1.. maxHSSCCHs)) OF
+ SEQUENCE {
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8),
+ midambleShift INTEGER (0..15),
+ timeSlot INTEGER (1..5)
+}
+
+HS-SCCH-TDD384 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ channelisationCode DL-TS-ChannelisationCode,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ },
+ midambleconfiguration MidambleConfigurationBurstType1and3,
+ bler-target Bler-Target,
+ hs-sich-configuration HS-SICH-Configuration-TDD384
+}
+
+HS-SCCH-TDD384-r6 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ channelisationCode DL-TS-ChannelisationCode,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ },
+ midambleconfiguration MidambleConfigurationBurstType1and3,
+ hs-sich-configuration HS-SICH-Configuration-TDD384
+}
+
+HS-SCCH-TDD768 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ channelisationCode DL-TS-ChannelisationCode-VHCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ },
+ midambleconfiguration MidambleConfigurationBurstType1and3,
+ hs-sich-configuration HS-SICH-Configuration-TDD768
+}
+
+HS-SICH-Configuration-TDD384 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ channelisationCode DL-TS-ChannelisationCode,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ },
+ midambleconfiguration MidambleConfigurationBurstType1and3
+}
+
+HS-SICH-Configuration-TDD768 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ channelisationCode DL-TS-ChannelisationCode-VHCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ },
+ midambleconfiguration MidambleConfigurationBurstType1and3
+}
+
+HS-SICH-Power-Control-Info-TDD384 ::= SEQUENCE {
+ -- Actual value ul-target-SIR = IE value * 0.5
+ ul-target-SIR INTEGER (-22..40),
+ -- Note: IE 'ConstantValue' is used (instead of IE 'ConstantValueTDD') to keep
+ -- compatibility with REL-5
+ hs-sich-ConstantValue ConstantValue
+}
+
+HS-SICH-Power-Control-Info-TDD768 ::= SEQUENCE {
+ -- Actual value ul-target-SIR = IE value * 0.5
+ ul-target-SIR INTEGER (-22..40),
+ -- Note: IE 'ConstantValue' is used (instead of IE 'ConstantValueTDD') to keep
+ -- compatibility with REL-5
+ hs-sich-ConstantValue ConstantValue
+}
+
+IndividualTimeslotInfo ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ tfci-Existence BOOLEAN,
+ midambleShiftAndBurstType MidambleShiftAndBurstType
+}
+
+IndividualTimeslotInfo-VHCR ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ tfci-Existence BOOLEAN,
+ midambleShiftAndBurstType-VHCR MidambleShiftAndBurstType-VHCR
+}
+
+IndividualTimeslotInfo-LCR-r4 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ tfci-Existence BOOLEAN,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4,
+ modulation ENUMERATED { mod-QPSK, mod-8PSK },
+ ss-TPC-Symbols ENUMERATED { zero, one, sixteenOverSF },
+ additionalSS-TPC-Symbols INTEGER(1..15) OPTIONAL
+}
+
+IndividualTimeslotInfo-LCR-r4-ext ::= SEQUENCE {
+-- timeslotNumber and tfci-Existence is taken from IndividualTimeslotInfo.
+-- midambleShiftAndBurstType in IndividualTimeslotInfo shall be ignored.
+ midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4,
+ modulation ENUMERATED { mod-QPSK, mod-8PSK },
+ ss-TPC-Symbols ENUMERATED { zero, one, sixteenOverSF }
+}
+
+IndividualTimeslotInfo-r7 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ tfci-Existence BOOLEAN,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-r7
+}
+
+IndividualTS-Interference ::= SEQUENCE {
+ timeslot TimeslotNumber,
+ ul-TimeslotInterference TDD-UL-Interference
+}
+
+IndividualTS-InterferenceList ::= SEQUENCE (SIZE (1..maxTS)) OF
+ IndividualTS-Interference
+
+ITP ::= ENUMERATED {
+ mode0, mode1 }
+
+NidentifyAbort ::= INTEGER (1..128)
+
+MAC-DTX-Cycle-10ms ::= ENUMERATED {
+ sub-frames-5,
+ sub-frames-10,
+ sub-frames-20,
+ spare1 }
+
+MAC-DTX-Cycle-2ms ::= ENUMERATED {
+ sub-frames-1,
+ sub-frames-4,
+ sub-frames-5,
+ sub-frames-8,
+ sub-frames-10,
+ sub-frames-16,
+ sub-frames-20,
+ spare1 }
+
+MAC-InactivityThreshold ::= ENUMERATED {
+ e-dch-tti-1,
+ e-dch-tti-2,
+ e-dch-tti-4,
+ e-dch-tti-8,
+ e-dch-tti-16,
+ e-dch-tti-32,
+ e-dch-tti-64,
+ e-dch-tti-128,
+ e-dch-tti-256,
+ e-dch-tti-512,
+ e-dch-tti-Infinity,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+MaxAllowedUL-TX-Power ::= INTEGER (-50..33)
+
+MaxAvailablePCPCH-Number ::= INTEGER (1..64)
+MaxPowerIncrease-r4 ::= INTEGER (0..3)
+
+MaxTFCI-Field2Value ::= INTEGER (1..1023)
+
+Measurement-Feedback-Info ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ measurementPowerOffset MeasurementPowerOffset,
+ feedback-cycle Feedback-cycle,
+ cqi-RepetitionFactor CQI-RepetitionFactor,
+ deltaCQI DeltaCQI
+ },
+ tdd NULL
+ }
+}
+
+Measurement-Feedback-Info-r7 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ measurementPowerOffset MeasurementPowerOffset,
+ feedback-cycle Feedback-cycle-r7,
+ cqi-RepetitionFactor CQI-RepetitionFactor,
+ deltaCQI DeltaCQI
+ },
+ tdd NULL
+ }
+}
+
+Measurement-Feedback-Info-r11 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ measurementPowerOffset MeasurementPowerOffset,
+ feedback-cycle Feedback-cycle-r7,
+ cqi-RepetitionFactor CQI-RepetitionFactor,
+ cqi-RepetitionFactor-Assisting CQI-RepetitionFactor OPTIONAL,
+ deltaCQI DeltaCQI-r11
+ },
+ tdd NULL
+ }
+}
+
+Measurement-Feedback-Info-r12 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ measurementPowerOffset MeasurementPowerOffset,
+ feedback-cycle Feedback-cycle-r7,
+ hs-DPCCHOverheadReduction HS-DPCCHOverheadReduction OPTIONAL,
+ cqi-RepetitionFactor CQI-RepetitionFactor,
+ cqi-RepetitionFactor-Assisting CQI-RepetitionFactor OPTIONAL,
+ deltaCQI DeltaCQI-r11
+ },
+ tdd NULL
+ }
+}
+
+Measurement-Feedback-Info-ConcurrentTTI ::= SEQUENCE {
+ feedback-cycle Feedback-cycle-r7 OPTIONAL,
+ cqi-RepetitionFactor CQI-RepetitionFactor OPTIONAL,
+ deltaCQI DeltaCQI OPTIONAL
+}
+
+MidambleConfigurationBurstType1and3 ::= ENUMERATED {ms4, ms8, ms16}
+
+MidambleConfigurationBurstType1 ::= ENUMERATED {ms4, ms8, ms16}
+
+MidambleConfigurationBurstType2 ::= ENUMERATED {ms3, ms6}
+
+MidambleConfigurationBurstType2-VHCR ::= ENUMERATED {ms4, ms8}
+
+MidambleShiftAndBurstType ::= SEQUENCE {
+ burstType CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftShort
+ }
+ }
+ },
+ type3 SEQUENCE {
+ midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ }
+ }
+}
+
+MidambleShiftAndBurstType-VHCR ::= SEQUENCE {
+ burstType CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2-VHCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftShort-VHCR
+ }
+ }
+ },
+ type3 SEQUENCE {
+ midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ },
+ -- mbsfnBurstType4 is only used DL
+ mbsfnBurstType4 NULL
+ }
+}
+
+MidambleShiftAndBurstType-r7 ::= SEQUENCE {
+ burstType CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftShort
+ }
+ }
+ },
+ type3 SEQUENCE {
+ midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ },
+ -- mbsfnBurstType4 is only used DL
+ mbsfnBurstType4 NULL
+ }
+}
+
+MidambleShiftAndBurstType-DL ::= SEQUENCE {
+ burstType CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftShort
+ }
+ }
+ }
+ }
+}
+
+MidambleShiftAndBurstType-DL-VHCR ::= SEQUENCE {
+ burstType CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2-VHCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftShort-VHCR
+ }
+ }
+ }
+ }
+}
+
+MidambleShiftAndBurstType-LCR-r4 ::= SEQUENCE {
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift INTEGER (0..15)
+ }
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8)
+}
+
+MidambleShiftAndBurstType-EDCH ::= SEQUENCE {
+ burstType CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1 MidambleConfigurationBurstType1,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftLong
+ }
+ }
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble SEQUENCE {
+ midambleShift MidambleShiftShort
+ }
+ }
+ }
+ }
+}
+
+MidambleShiftLong ::= INTEGER (0..15)
+
+
+MidambleShiftShort ::= INTEGER (0..5)
+
+MidambleShiftShort-VHCR ::= INTEGER (0..7)
+
+MIMO-N-M-Ratio ::= ENUMERATED {
+ mnm1-2, mnm2-3, mnm3-4, mnm4-5, mnm5-6,
+ mnm6-7, mnm7-8, mnm8-9, mnm9-10, mnm1-1 }
+
+MIMO-Operation ::= ENUMERATED {
+ start, continue }
+
+MIMO-Parameters-r7 ::= SEQUENCE {
+ mimoOperation MIMO-Operation,
+ mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL,
+ mimoPilotConfiguration MIMO-PilotConfiguration OPTIONAL
+}
+
+MIMO4x4-Parameters ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ mimo4x4N-M-Ratio MIMO-N-M-Ratio OPTIONAL,
+ mimo4x4PilotConfiguration MIMO4x4-PilotConfiguration OPTIONAL,
+ precodingWeightSetRestriction BIT STRING (SIZE (64)) OPTIONAL
+ }
+ }
+}
+
+MIMO-Parameters-v7f0ext ::= MIMO-PilotConfiguration-v7f0ext
+
+MIMO-Parameters-v7g0ext ::= SEQUENCE {
+ precodingWeightSetRestriction ENUMERATED { true } OPTIONAL
+}
+
+MIMO-Parameters-r8 ::= SEQUENCE {
+ mimoOperation MIMO-Operation,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL,
+ mimoPilotConfiguration MIMO-PilotConfiguration OPTIONAL
+ },
+ tdd CHOICE {
+ tdd128 SEQUENCE {
+ mimoSFModeForHSPDSCHDualStream ENUMERATED {sf1, sf1sf16},
+ hs-sich-ReferenceSignalInfoList HS-SICH-ReferenceSignalInfoList OPTIONAL
+ },
+ tdd384-tdd768 NULL
+ }
+ }
+}
+
+MIMO-Parameters-r9 ::= SEQUENCE {
+ mimoOperation MIMO-Operation,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL,
+ mimoPilotConfiguration MIMO-PilotConfiguration-r9 OPTIONAL,
+ precodingWeightSetRestriction ENUMERATED { true } OPTIONAL
+ },
+ tdd CHOICE {
+ tdd128 SEQUENCE {
+ mimoSFModeForHSPDSCHDualStream ENUMERATED {sf1, sf1sf16},
+ hs-sich-ReferenceSignalInfoList HS-SICH-ReferenceSignalInfoList OPTIONAL
+ },
+ tdd384-tdd768 NULL
+ }
+ }
+}
+
+MIMO-PilotConfiguration ::= SEQUENCE {
+ secondCPICH-Pattern CHOICE {
+ normalPattern NULL,
+ diversityPattern SEQUENCE {
+ channelisationCode ChannelisationCode256
+ }
+ }
+}
+
+MIMO-PilotConfiguration-v7f0ext ::= SEQUENCE {
+ s-cpich-PowerOffset-Mimo S-CPICH-PowerOffset-MIMO OPTIONAL
+}
+
+MIMO-PilotConfiguration-r9 ::= SEQUENCE {
+ secondCPICH-Pattern CHOICE {
+ normalPattern NULL,
+ diversityPattern SEQUENCE {
+ channelisationCode ChannelisationCode256,
+ s-cpich-PowerOffset-Mimo S-CPICH-PowerOffset-MIMO OPTIONAL
+ }
+ }
+}
+
+MIMO4x4-PilotConfiguration ::= SEQUENCE {
+ antenna2 MIMO-PilotConfiguration-r9 OPTIONAL,
+ antenna3And4 Antenna3And4 OPTIONAL
+}
+
+MinimumSpreadingFactor ::= ENUMERATED {
+ sf4, sf8, sf16, sf32,
+ sf64, sf128, sf256 }
+
+MinReduced-E-DPDCH-GainFactor ::= ENUMERATED {
+ m8-15, m11-15, m15-15, m21-15, m30-15,
+ m42-15, m60-15, m84-15 }
+
+MultiCodeInfo ::= INTEGER (1..16)
+
+-- These IEs are applied for 1.28 Mcps TDD only
+Multi-frequencyInfo-LCR-r7 ::= SEQUENCE {
+ -- If the secondary frequency is present, it indicates working frequency
+ secondFrequencyInfo FrequencyInfoTDD OPTIONAL,
+ fPachFrequencyInfo FrequencyInfoTDD OPTIONAL,
+ --If a cell UpPCH uses other uplink service timeslot, it indicates the UpPCH position
+ upPCHpositionInfo UpPCHposition-LCR OPTIONAL
+}
+
+MultiflowCellType ::= ENUMERATED { intra-nodeB, inter-nodeB }
+
+MultiflowConfigurationInfo ::= SEQUENCE {
+ cellType MultiflowCellType,
+ timeReferenceCell ENUMERATED { true } OPTIONAL
+}
+
+MU-MIMO-Info-TDD128 ::= CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ mu-MIMO-Operation MU-MIMO-Operation,
+ standaloneMidambleInfo StandaloneMidambleInfo-TDD128 OPTIONAL
+ }
+}
+
+MU-MIMO-Operation ::= ENUMERATED {
+ uL, dL, uLandDL, spare }
+
+N-EOT ::= INTEGER (0..7)
+
+N-GAP ::= ENUMERATED {
+ f2, f4, f8 }
+
+N-PCH ::= INTEGER (1..8)
+
+N-StartMessage ::= INTEGER (1..8)
+
+NB01 ::= INTEGER (0..50)
+
+NewTiming ::= SEQUENCE {
+ enablingDelay EnablingDelay,
+ ue-dtx-drx-Offset UE-DTX-DRX-Offset
+}
+
+NF-Max ::= INTEGER (1..64)
+
+NodeB-Trigger-HS-DPCCH-Transmission ::= SEQUENCE {
+ hs-dpcch-TransmitContinuationOffset ENUMERATED {
+ ms10, ms20, ms30, ms40, ms80, ms160,
+ ms320, ms800} OPTIONAL
+}
+
+Non-ScheduledTransGrantInfoTDD ::= CHOICE {
+ tdd384-768 SEQUENCE {
+ timeslotResourceRelatedInfo BIT STRING (SIZE (13)),
+ powerResourceRelatedInfo INTEGER (1..32),
+ activationTime ActivationTime,
+ repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL,
+ codeResourceInfo UL-TS-ChannelisationCode
+ },
+ tdd128 SEQUENCE {
+ n-E-UCCH INTEGER (1..8) OPTIONAL,
+ n-E-HICH INTEGER (4..15) OPTIONAL,
+ timeslotResourceRelatedInfo BIT STRING (SIZE (5)),
+ powerResourceRelatedInfo INTEGER (1..32),
+ activationTime ActivationTime,
+ sfnNum INTEGER (0..1),
+ repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL,
+ codeResourceInfo UL-TS-ChannelisationCode,
+ e-HICH-Info SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ channelisation-Code HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble INTEGER (0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8),
+ signatureSequenceGroupIndex INTEGER (0..19)
+ }
+ }
+}
+
+Non-ScheduledTransGrantInfoTDD-ext ::= CHOICE {
+ tdd384-768 NULL,
+ tdd128 SEQUENCE {
+ t-SI-nst ENUMERATED {
+ everyEDCHTTI, ms20, ms40, ms60, ms80, ms160,
+ ms200 } OPTIONAL
+ }
+}
+
+Non-ScheduledTransGrantInfoTDD-r9 ::= CHOICE {
+ tdd384-768 SEQUENCE {
+ timeslotResourceRelatedInfo BIT STRING (SIZE (13)),
+ powerResourceRelatedInfo INTEGER (1..32),
+ activationTime ActivationTime,
+ repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL,
+ codeResourceInfo UL-TS-ChannelisationCode
+ },
+ tdd128 SEQUENCE {
+ n-E-UCCH INTEGER (1..8) OPTIONAL,
+ n-E-HICH INTEGER (4..15) OPTIONAL,
+ timeslotResourceRelatedInfo BIT STRING (SIZE (5)),
+ powerResourceRelatedInfo INTEGER (1..32),
+ activationTime ActivationTime,
+ sfnNum INTEGER (0..1),
+ repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL,
+ codeResourceInfo UL-TS-ChannelisationCode,
+ e-HICH-Info SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4,
+ channelisation-Code HS-ChannelisationCode-LCR,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble INTEGER (0..15)
+ },
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8),
+ signatureSequenceGroupIndex INTEGER (0..19)
+ },
+ t-SI-nst ENUMERATED {
+ everyEDCHTTI, ms20, ms40, ms60, ms80, ms160,
+ ms200 } OPTIONAL
+ }
+}
+
+Non-rectResAllocInd-TDD128 ::= ENUMERATED { true }
+
+Non-rectResSpecTSset-TDD128 ::= BIT STRING (SIZE (7))
+
+NumberOfDPDCH ::= INTEGER (1..maxDPDCH-UL)
+
+NumberOfFBI-Bits ::= INTEGER (1..2)
+
+NumberOfTPC-Bits ::= ENUMERATED { tpc4 }
+
+OpenLoopPowerControl-TDD ::= SEQUENCE {
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power,
+ -- alpha, prach-ConstantValue, dpch-ConstantValue and pusch-ConstantValue
+ -- shall be ignored in 1.28Mcps TDD mode.
+ alpha Alpha OPTIONAL,
+ prach-ConstantValue ConstantValueTdd,
+ dpch-ConstantValue ConstantValueTdd,
+ pusch-ConstantValue ConstantValueTdd OPTIONAL
+}
+
+OpenLoopPowerControl-IPDL-TDD-r4 ::= SEQUENCE {
+ ipdl-alpha Alpha,
+ maxPowerIncrease MaxPowerIncrease-r4
+}
+
+OtherStateConfig ::= SEQUENCE {
+ otherStateConfigList OtherStateConfigList OPTIONAL,
+ otherStateRemoveList OtherStateRemoveList OPTIONAL
+}
+
+OtherStateConfigList ::= SEQUENCE (SIZE(1..maxOtherStateConfig)) OF
+ OtherStateConfigData
+
+OtherStateConfigData ::= SEQUENCE {
+ otherStateConfigIdentity OtherStateConfigIdentity,
+ source-rrc-StateIndicator RRC-StateIndicator,
+ target-rrc-StateIndicator RRC-StateIndicator,
+ ura-Identity URA-Identity OPTIONAL,
+ rntis CHOICE {
+ clear NULL,
+ continue NULL,
+ new SEQUENCE {
+ new-C-RNTI C-RNTI,
+ new-H-RNTI H-RNTI,
+ newPrimary-E-RNTI E-RNTI
+ }
+ },
+ configuration CHOICE {
+ id INTEGER (0..maxRetrievConfig-1),
+ full RetrievableConfigData
+ } OPTIONAL
+}
+
+OtherStateRemoveList ::= SEQUENCE (SIZE (1..maxOtherStateConfig)) OF
+ OtherStateConfigIdentity
+
+OtherStateConfigIdentity ::= INTEGER (0..maxOtherStateConfig-1)
+
+PagingIndicatorLength ::= ENUMERATED {
+ pi4, pi8, pi16 }
+
+PC-Preamble ::= INTEGER (0..7)
+
+PCCH-InformationList ::= SEQUENCE {
+ paging-associatedHspdschInfo SEQUENCE (SIZE (1.. maxSCCPCH)) OF
+ SEQUENCE {
+ hs-pdsch-MidambleConfiguration HS-PDSCH-Midamble-Configuration-TDD128,
+ timeslotResourceRelatedInfo BIT STRING (SIZE (6)),
+ codeResourceInformation CodeResourceInformation-TDD128
+ },
+ paging-sub-Channel-size INTEGER (1..3),
+ transportBlockSizeList SEQUENCE (SIZE (1..2)) OF TransportBlockSizeIndex
+}
+
+PCP-Length ::= ENUMERATED {
+ as0, as8 }
+
+PCPCH-ChannelInfo ::= SEQUENCE {
+ pcpch-UL-ScramblingCode INTEGER (0..79),
+ pcpch-DL-ChannelisationCode INTEGER (0..511),
+ pcpch-DL-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ pcp-Length PCP-Length,
+ ucsm-Info UCSM-Info OPTIONAL
+}
+
+PCPCH-ChannelInfoList ::= SEQUENCE (SIZE (1..maxPCPCHs)) OF
+ PCPCH-ChannelInfo
+
+PCPICH-UsageForChannelEst ::= ENUMERATED {
+ mayBeUsed,
+ shallNotBeUsed }
+
+PDSCH-CapacityAllocationInfo ::= SEQUENCE {
+ -- pdsch-PowerControlInfo is conditional on new-configuration branch below, if this
+ -- selected the IE is OPTIONAL otherwise it should not be sent
+ pdsch-PowerControlInfo PDSCH-PowerControlInfo OPTIONAL,
+ pdsch-AllocationPeriodInfo AllocationPeriodInfo,
+ configuration CHOICE {
+ old-Configuration SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ pdsch-Identity PDSCH-Identity
+ },
+ new-Configuration SEQUENCE {
+ pdsch-Info PDSCH-Info,
+ pdsch-Identity PDSCH-Identity OPTIONAL
+ }
+ }
+}
+
+PDSCH-CapacityAllocationInfo-r4 ::= SEQUENCE {
+ pdsch-AllocationPeriodInfo AllocationPeriodInfo,
+ configuration CHOICE {
+ old-Configuration SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ pdsch-Identity PDSCH-Identity
+ },
+ new-Configuration SEQUENCE {
+ pdsch-Info PDSCH-Info-r4,
+ pdsch-Identity PDSCH-Identity OPTIONAL,
+ pdsch-PowerControlInfo PDSCH-PowerControlInfo OPTIONAL
+ }
+ }
+}
+
+PDSCH-CapacityAllocationInfo-r7 ::= SEQUENCE {
+ pdsch-AllocationPeriodInfo AllocationPeriodInfo,
+ configuration CHOICE {
+ old-Configuration SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ pdsch-Identity PDSCH-Identity
+ },
+ new-Configuration SEQUENCE {
+ pdsch-Info PDSCH-Info-r7,
+ pdsch-Identity PDSCH-Identity OPTIONAL,
+ pdsch-PowerControlInfo PDSCH-PowerControlInfo OPTIONAL
+ }
+ }
+}
+
+PDSCH-CodeInfo ::= SEQUENCE {
+ spreadingFactor SF-PDSCH,
+ codeNumber CodeNumberDSCH,
+ multiCodeInfo MultiCodeInfo
+}
+
+PDSCH-CodeInfoList ::= SEQUENCE (SIZE (1..maxTFCI-2-Combs)) OF
+ PDSCH-CodeInfo
+
+PDSCH-CodeMap ::= SEQUENCE {
+ spreadingFactor SF-PDSCH,
+ multiCodeInfo MultiCodeInfo,
+ codeNumberStart CodeNumberDSCH,
+ codeNumberStop CodeNumberDSCH
+}
+
+PDSCH-CodeMapList ::= SEQUENCE (SIZE (1..maxPDSCH-TFCIgroups)) OF
+ PDSCH-CodeMap
+
+PDSCH-CodeMapping ::= SEQUENCE {
+ dl-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ signallingMethod CHOICE {
+ codeRange CodeRange,
+ tfci-Range DSCH-MappingList,
+ explicit-config PDSCH-CodeInfoList,
+ replace ReplacedPDSCH-CodeInfoList
+ }
+}
+
+PDSCH-Identity ::= INTEGER (1..hiPDSCHidentities)
+
+PDSCH-Info ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ pdsch-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL
+}
+
+PDSCH-Info-r4 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ pdsch-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ pdsch-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL
+ }
+ }
+}
+
+PDSCH-Info-r7 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ pdsch-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ pdsch-TimeslotsCodes DownlinkTimeslotsCodes-VHCR OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ pdsch-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL
+ }
+ }
+}
+
+PDSCH-Info-LCR-r4 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ pdsch-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL
+}
+
+PDSCH-PowerControlInfo ::= SEQUENCE {
+ tpc-StepSizeTDD TPC-StepSizeTDD OPTIONAL,
+ ul-CCTrChTPCList UL-CCTrChTPCList OPTIONAL
+}
+
+PDSCH-SHO-DCH-Info ::= SEQUENCE {
+ dsch-RadioLinkIdentifier DSCH-RadioLinkIdentifier,
+ rl-IdentifierList RL-IdentifierList OPTIONAL
+}
+
+PDSCH-SysInfo ::= SEQUENCE {
+ pdsch-Identity PDSCH-Identity,
+ pdsch-Info PDSCH-Info,
+ dsch-TFS TransportFormatSet OPTIONAL,
+ dsch-TFCS TFCS OPTIONAL
+}
+
+PDSCH-SysInfo-VHCR-r7 ::= SEQUENCE {
+ pdsch-Identity PDSCH-Identity,
+ pdsch-Info PDSCH-Info-r7,
+ dsch-TransportChannelsInfo DSCH-TransportChannelsInfo OPTIONAL,
+ dsch-TFCS TFCS OPTIONAL
+}
+
+PDSCH-SysInfo-HCR-r5 ::= SEQUENCE {
+ pdsch-Identity PDSCH-Identity,
+ pdsch-Info PDSCH-Info,
+ dsch-TransportChannelsInfo DSCH-TransportChannelsInfo OPTIONAL,
+ dsch-TFCS TFCS OPTIONAL
+}
+
+PDSCH-SysInfo-LCR-r4 ::= SEQUENCE {
+ pdsch-Identity PDSCH-Identity,
+ pdsch-Info PDSCH-Info-LCR-r4,
+ dsch-TFS TransportFormatSet OPTIONAL,
+ dsch-TFCS TFCS OPTIONAL
+}
+
+PDSCH-SysInfoList ::= SEQUENCE (SIZE (1..maxPDSCH)) OF
+ PDSCH-SysInfo
+
+PDSCH-SysInfoList-VHCR-r7 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF PDSCH-SysInfo-VHCR-r7
+
+PDSCH-SysInfoList-HCR-r5 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF PDSCH-SysInfo-HCR-r5
+
+PDSCH-SysInfoList-LCR-r4 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF
+ PDSCH-SysInfo-LCR-r4
+
+PDSCH-SysInfoList-SFN ::= SEQUENCE (SIZE (1..maxPDSCH)) OF
+ SEQUENCE {
+ pdsch-SysInfo PDSCH-SysInfo,
+ sfn-TimeInfo SFN-TimeInfo OPTIONAL
+}
+
+PDSCH-SysInfoList-SFN-HCR-r5 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF
+ SEQUENCE {
+ pdsch-SysInfo PDSCH-SysInfo-HCR-r5,
+ sfn-TimeInfo SFN-TimeInfo OPTIONAL
+}
+
+PDSCH-SysInfoList-SFN-LCR-r4 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF
+ SEQUENCE {
+ pdsch-SysInfo PDSCH-SysInfo-LCR-r4,
+ sfn-TimeInfo SFN-TimeInfo OPTIONAL
+}
+
+PersistenceScalingFactor ::= ENUMERATED {
+ psf0-9, psf0-8, psf0-7, psf0-6,
+ psf0-5, psf0-4, psf0-3, psf0-2 }
+
+PersistenceScalingFactorList ::= SEQUENCE (SIZE (1..maxASCpersist)) OF
+ PersistenceScalingFactor
+
+PI-CountPerFrame ::= ENUMERATED {
+ e18, e36, e72, e144 }
+
+PichChannelisationCodeList-LCR-r4 ::= SEQUENCE (SIZE (1..2)) OF
+ DL-TS-ChannelisationCode
+
+PICH-ForHSDPASupportedPaging ::= SEQUENCE {
+ hsdpa-AssociatedPichInfo PICH-Info,
+ hs-pdschChannelisationCode INTEGER(1..15)
+}
+
+PICH-ForHSDPASupportedPaging-TDD128 ::= CHOICE {
+ implicit SEQUENCE {
+ occurrenceSequenceNumberOfPICH OccurrenceSequenceNumberOfPICH OPTIONAL
+ },
+ explicit PICH-Info-LCR-r4
+}
+
+PICH-Info ::= CHOICE {
+ fdd SEQUENCE {
+ channelisationCode256 ChannelisationCode256,
+ pi-CountPerFrame PI-CountPerFrame,
+ sttd-Indicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ channelisationCode TDD-PICH-CCode OPTIONAL,
+ timeslot TimeslotNumber OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ repetitionPeriodLengthOffset RepPerLengthOffset-PICH OPTIONAL,
+ pagingIndicatorLength PagingIndicatorLength DEFAULT pi4,
+ n-GAP N-GAP DEFAULT f4,
+ n-PCH N-PCH DEFAULT 2
+ }
+}
+
+PICH-Info-HCR-VHCR-r7 ::= SEQUENCE {
+ channelisationCode CHOICE {
+ tdd384 TDD-PICH-CCode,
+ tdd768 TDD768-PICH-CCode
+ } OPTIONAL,
+ timeslot TimeslotNumber OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ repetitionPeriodLengthOffset RepPerLengthOffset-PICH OPTIONAL,
+ pagingIndicatorLength PagingIndicatorLength DEFAULT pi4,
+ n-GAP N-GAP DEFAULT f4,
+ n-PCH N-PCH DEFAULT 2
+}
+
+PICH-Info-LCR-r4 ::= SEQUENCE {
+ timeslot TimeslotNumber-LCR-r4 OPTIONAL,
+ pichChannelisationCodeList-LCR-r4 PichChannelisationCodeList-LCR-r4,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4,
+ repetitionPeriodLengthOffset RepPerLengthOffset-PICH OPTIONAL,
+ pagingIndicatorLength PagingIndicatorLength DEFAULT pi4,
+ n-GAP N-GAP DEFAULT f4,
+ n-PCH N-PCH DEFAULT 2
+}
+
+PICH-PowerOffset ::= INTEGER (-10..5)
+
+PilotBits128 ::= ENUMERATED {
+ pb4, pb8 }
+
+PilotBits128-r12 ::= ENUMERATED {
+ pb0, pb4, pb8 }
+
+PilotBits256 ::= ENUMERATED {
+ pb2, pb4, pb8 }
+
+PilotBits256-r12 ::= ENUMERATED {
+ pb0, pb2, pb4, pb8 }
+
+ -- Actual measurement power offset value = IE value * 0.5
+MeasurementPowerOffset ::= INTEGER (-12..26)
+
+PLCCH-Info ::= SEQUENCE {
+ plcchSequenceNumber INTEGER(1..14),
+ timeslotNumber TimeslotNumber-LCR-r4,
+ channelisationCode DL-TS-ChannelisationCode,
+ tpcCommandTargetRate TPC-CommandTargetRate
+}
+
+PositionFixedOrFlexible ::= ENUMERATED {
+ fixed,
+ flexible }
+
+PowerControlAlgorithm ::= CHOICE {
+ algorithm1 TPC-StepSizeFDD,
+ algorithm2 NULL
+}
+
+PowerControlAlgorithm3 ::= SEQUENCE {
+ tPCSlotPosition INTEGER (0..4) OPTIONAL,
+ tPC-StepSize TPC-StepSizeFDD OPTIONAL,
+ decimationFactor ENUMERATED {slots3, slots5} OPTIONAL
+}
+
+PowerControlGAP ::= INTEGER (0..255)
+
+PowerOffsetPilot-pdpdch ::= INTEGER (0..24)
+
+PowerOffsetPO-SRB ::= INTEGER (0..24)
+
+PowerOffsetTPC-pdpdch ::= INTEGER (0..24)
+
+PowerRampStep ::= INTEGER (1..8)
+
+PRACH-ChanCodes-LCR-r4 ::= SEQUENCE (SIZE (1..4)) OF
+ TDD-PRACH-CCode-LCR-r4
+
+PRACH-ChanCodes-List-LCR ::= SEQUENCE (SIZE (1..2)) OF
+ TDD-PRACH-CCode-LCR-r4
+
+PRACH-Definition-LCR-r4 ::= SEQUENCE {
+ timeslot TimeslotNumber-PRACH-LCR-r4,
+ prach-ChanCodes-LCR PRACH-ChanCodes-LCR-r4,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4,
+ fpach-Info FPACH-Info-r4
+}
+
+PRACH-Information-LCR ::= SEQUENCE {
+ timeslot TimeslotNumber-PRACH-LCR-r4,
+ prach-ChanCodes-list-LCR PRACH-ChanCodes-List-LCR,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4,
+ fpach-Info FPACH-Info-r4 OPTIONAL
+}
+
+PRACH-Information-LCR-List ::= SEQUENCE (SIZE (1..maxPRACH-FPACH)) OF
+ PRACH-Information-LCR
+
+PRACH-Midamble ::= ENUMERATED {
+ direct,
+ direct-Inverted }
+
+PRACH-Partitioning ::= CHOICE {
+ fdd SEQUENCE (SIZE (1..maxASC)) OF
+ -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-FDD are listed,
+ -- the remaining (NumASC+2 through maxASC) ASCs are unspecified.
+ ASCSetting-FDD,
+ tdd SEQUENCE (SIZE (1..maxASC)) OF
+ -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-TDD are listed,
+ -- the remaining (NumASC+2 through maxASC) ASCs are unspecified.
+ ASCSetting-TDD
+}
+
+PRACH-Partitioning-r7 ::= CHOICE {
+ fdd SEQUENCE (SIZE (1..maxASC)) OF
+ -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-FDD are listed,
+ -- the remaining (NumASC+2 through maxASC) ASCs are unspecified.
+ ASCSetting-FDD,
+ tdd SEQUENCE (SIZE (1..maxASC)) OF
+ -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-TDD are listed,
+ -- the remaining (NumASC+2 through maxASC) ASCs are unspecified.
+ ASCSetting-TDD-r7
+}
+
+PRACH-Partitioning-LCR-r4 ::= SEQUENCE (SIZE (1..maxASC)) OF
+ -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-TDD-LCR-r4 are listed,
+ -- the remaining (NumASC+2 through maxASC) ASCs are unspecified.
+ ASCSetting-TDD-LCR-r4
+
+PRACH-PowerOffset ::= SEQUENCE {
+ powerRampStep PowerRampStep,
+ preambleRetransMax PreambleRetransMax
+}
+
+PRACH-PreambleForEnhancedUplink ::= SEQUENCE {
+ availableSignatures AvailableSignatures OPTIONAL,
+ e-ai-Indication BOOLEAN,
+ preambleScramblingCodeWordNumber PreambleScramblingCodeWordNumber OPTIONAL,
+ availableSubChannelNumbers AvailableSubChannelNumbers OPTIONAL,
+ prach-Partitioning PRACH-Partitioning-r7 OPTIONAL,
+ persistenceScalingFactorList PersistenceScalingFactorList OPTIONAL,
+ ac-To-ASC-MappingTable AC-To-ASC-MappingTable OPTIONAL,
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ constantValue ConstantValue OPTIONAL,
+ prach-PowerOffset PRACH-PowerOffset OPTIONAL,
+ rach-TransmissionParameters RACH-TransmissionParameters OPTIONAL,
+ aich-Info AICH-Info OPTIONAL,
+ powerOffsetPp-e INTEGER (-5..10)
+}
+PRACH-PreambleForEnhancedUplinkExt ::= SEQUENCE {
+ availableSignatures AvailableSignatures,
+ preambleScramblingCodeWordNumber PreambleScramblingCodeWordNumber,
+ aich-Info AICH-Info-Compressed OPTIONAL
+}
+
+PRACH-PreambleForEnhancedUplinkExtList ::= SEQUENCE (SIZE (1..maxPRACH-EUL)) OF
+ PRACH-PreambleForEnhancedUplinkExtWithWeight
+
+
+PRACH-PreambleForEnhancedUplinkExtWithWeight ::= SEQUENCE {
+ prach-PreambleForEnhancedUplinkExt PRACH-PreambleForEnhancedUplinkExt,
+ -- Actual value weight = IE value * 0.2
+ weight INTEGER (1..5) OPTIONAL
+}
+
+
+
+
+PRACH-RACH-Info ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ availableSignatures AvailableSignatures,
+ availableSF SF-PRACH,
+ preambleScramblingCodeWordNumber PreambleScramblingCodeWordNumber,
+ puncturingLimit PuncturingLimit,
+ availableSubChannelNumbers AvailableSubChannelNumbers
+ },
+ tdd SEQUENCE {
+ timeslot TimeslotNumber,
+ channelisationCodeList TDD-PRACH-CCodeList,
+ prach-Midamble PRACH-Midamble
+ }
+ }
+}
+
+PRACH-RACH-Info-VHCR-r7 ::= SEQUENCE {
+ timeslot TimeslotNumber,
+ channelisationCodeList TDD768-PRACH-CCodeList,
+ prach-Midamble PRACH-Midamble
+}
+
+PRACH-RACH-Info-LCR-v770ext ::= SEQUENCE {
+ e-RUCCH-Sync-UL-Codes-Bitmap Sync-UL-Codes-Bitmap
+}
+
+PRACH-RACH-Info-LCR-r4 ::= SEQUENCE {
+ sync-UL-Info SYNC-UL-Info-r4,
+ prach-DefinitionList SEQUENCE (SIZE (1..maxPRACH-FPACH)) OF
+ PRACH-Definition-LCR-r4
+}
+
+PRACH-SystemInformation ::= SEQUENCE {
+ prach-RACH-Info PRACH-RACH-Info,
+ transportChannelIdentity TransportChannelIdentity,
+ rach-TransportFormatSet TransportFormatSet OPTIONAL,
+ rach-TFCS TFCS OPTIONAL,
+ prach-Partitioning PRACH-Partitioning OPTIONAL,
+ persistenceScalingFactorList PersistenceScalingFactorList OPTIONAL,
+ ac-To-ASC-MappingTable AC-To-ASC-MappingTable OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ constantValue ConstantValue OPTIONAL,
+ prach-PowerOffset PRACH-PowerOffset OPTIONAL,
+ rach-TransmissionParameters RACH-TransmissionParameters OPTIONAL,
+ aich-Info AICH-Info OPTIONAL
+ },
+ tdd NULL
+ }
+}
+
+PRACH-SystemInformation-VHCR-r7 ::= SEQUENCE {
+ prach-RACH-Info PRACH-RACH-Info-VHCR-r7,
+ prach-Partitioning PRACH-Partitioning-r7 OPTIONAL
+}
+
+PRACH-SystemInformation-LCR-r4 ::= SEQUENCE {
+ prach-RACH-Info-LCR PRACH-RACH-Info-LCR-r4,
+ rach-TransportFormatSet-LCR TransportFormatSet-LCR OPTIONAL,
+ prach-Partitioning-LCR PRACH-Partitioning-LCR-r4 OPTIONAL
+}
+
+PRACH-SystemInformation-LCR-v770ext ::= SEQUENCE {
+ prach-RACH-Info-LCR PRACH-RACH-Info-LCR-v770ext
+}
+
+PRACH-SystemInformationList ::= SEQUENCE (SIZE (1..maxPRACH)) OF
+ PRACH-SystemInformation
+
+PRACH-SystemInformationList-VHCR-r7 ::= SEQUENCE (SIZE (1..maxPRACH)) OF
+ PRACH-SystemInformation-VHCR-r7
+
+PRACH-SystemInformationList-LCR-r4 ::= SEQUENCE (SIZE (1..maxPRACH)) OF
+ PRACH-SystemInformation-LCR-r4
+
+PRACH-SystemInformationList-LCR-v770ext ::= SEQUENCE (SIZE (1..maxPRACH)) OF
+ PRACH-SystemInformation-LCR-v770ext
+
+PreambleRetransMax ::= INTEGER (1..64)
+
+PreambleScramblingCodeWordNumber ::= INTEGER (0..15)
+
+PreDefPhyChConfiguration ::= SEQUENCE {
+ ul-DPCH-InfoPredef UL-DPCH-InfoPredef,
+ dl-CommonInformationPredef DL-CommonInformationPredef OPTIONAL
+}
+
+PreDefPhyChConfiguration-v770ext ::= SEQUENCE {
+ ul-DPCH-InfoPredef UL-DPCH-InfoPredef-v770ext
+}
+
+PrimaryCCPCH-Info ::= CHOICE {
+ fdd SEQUENCE {
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ -- syncCase should be ignored for 1.28Mcps TDD mode
+ syncCase CHOICE {
+ syncCase1 SEQUENCE {
+ timeslot TimeslotNumber
+ },
+ syncCase2 SEQUENCE {
+ timeslotSync2 TimeslotSync2
+ }
+ } OPTIONAL,
+ cellParametersID CellParametersID OPTIONAL,
+ sctd-Indicator BOOLEAN
+ }
+}
+
+PrimaryCCPCH-Info-r4 ::= CHOICE {
+ fdd SEQUENCE {
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ tdd384-tdd768 SEQUENCE {
+ syncCase CHOICE {
+ syncCase1 SEQUENCE {
+ timeslot TimeslotNumber
+ },
+ syncCase2 SEQUENCE {
+ timeslotSync2 TimeslotSync2
+ }
+ } OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ tstd-Indicator BOOLEAN
+ }
+ },
+ cellParametersID CellParametersID OPTIONAL,
+ sctd-Indicator BOOLEAN
+ }
+}
+
+PrimaryCCPCH-Info-LCR-r4 ::= SEQUENCE {
+ tstd-Indicator BOOLEAN,
+ cellParametersID CellParametersID OPTIONAL,
+ sctd-Indicator BOOLEAN
+}
+
+-- For 1.28Mcps TDD, the following IE includes elements for the PCCPCH Info additional to those
+-- in PrimaryCCPCH-Info
+PrimaryCCPCH-Info-LCR-r4-ext ::= SEQUENCE {
+ tstd-Indicator BOOLEAN
+}
+
+PrimaryCCPCH-InfoPost ::= SEQUENCE {
+ syncCase CHOICE {
+ syncCase1 SEQUENCE {
+ timeslot TimeslotNumber
+ },
+ syncCase2 SEQUENCE {
+ timeslotSync2 TimeslotSync2
+ }
+ },
+ cellParametersID CellParametersID,
+ sctd-Indicator BOOLEAN
+}
+
+PrimaryCCPCH-InfoPostTDD-LCR-r4 ::= SEQUENCE {
+ tstd-Indicator BOOLEAN,
+ cellParametersID CellParametersID,
+ sctd-Indicator BOOLEAN
+}
+
+PrimaryCCPCH-TX-Power ::= INTEGER (6..43)
+
+PrimaryCPICH-Info ::= SEQUENCE {
+ primaryScramblingCode PrimaryScramblingCode
+}
+
+PrimaryCPICH-TX-Power ::= INTEGER (-10..50)
+
+PrimaryScramblingCode ::= INTEGER (0..511)
+
+PuncturingLimit ::= ENUMERATED {
+ pl0-40, pl0-44, pl0-48, pl0-52, pl0-56,
+ pl0-60, pl0-64, pl0-68, pl0-72, pl0-76,
+ pl0-80, pl0-84, pl0-88, pl0-92, pl0-96, pl1 }
+
+PUSCH-CapacityAllocationInfo ::= SEQUENCE {
+ pusch-Allocation CHOICE {
+ pusch-AllocationPending NULL,
+ pusch-AllocationAssignment SEQUENCE {
+ pusch-AllocationPeriodInfo AllocationPeriodInfo,
+ pusch-PowerControlInfo UL-TargetSIR OPTIONAL,
+ configuration CHOICE {
+ old-Configuration SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ pusch-Identity PUSCH-Identity
+ },
+ new-Configuration SEQUENCE {
+ pusch-Info PUSCH-Info,
+ pusch-Identity PUSCH-Identity OPTIONAL
+ }
+ }
+ }
+ }
+}
+
+PUSCH-CapacityAllocationInfo-r4 ::= SEQUENCE {
+ pusch-Allocation CHOICE {
+ pusch-AllocationPending NULL,
+ pusch-AllocationAssignment SEQUENCE {
+ pusch-AllocationPeriodInfo AllocationPeriodInfo,
+ pusch-PowerControlInfo PUSCH-PowerControlInfo-r4 OPTIONAL,
+ configuration CHOICE {
+ old-Configuration SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ pusch-Identity PUSCH-Identity
+ },
+ new-Configuration SEQUENCE {
+ pusch-Info PUSCH-Info-r4,
+ pusch-Identity PUSCH-Identity OPTIONAL
+ }
+ }
+ }
+ }
+}
+
+PUSCH-CapacityAllocationInfo-r7 ::= SEQUENCE {
+ pusch-Allocation CHOICE {
+ pusch-AllocationPending NULL,
+ pusch-AllocationAssignment SEQUENCE {
+ pusch-AllocationPeriodInfo AllocationPeriodInfo,
+ pusch-PowerControlInfo PUSCH-PowerControlInfo-r7 OPTIONAL,
+ configuration CHOICE {
+ old-Configuration SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ pusch-Identity PUSCH-Identity
+ },
+ new-Configuration SEQUENCE {
+ pusch-Info PUSCH-Info-VHCR,
+ pusch-Identity PUSCH-Identity OPTIONAL
+ }
+ }
+ }
+ }
+}
+
+PUSCH-Identity ::= INTEGER (1..hiPUSCHidentities)
+
+PUSCH-Info ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ pusch-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL
+}
+
+PUSCH-Info-r4 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ pusch-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ pusch-TimeslotsCodes UplinkTimeslotsCodes-LCR-r4 OPTIONAL
+ }
+ }
+}
+
+PUSCH-Info-VHCR ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ pusch-TimeslotsCodes-VHCR UplinkTimeslotsCodes-VHCR OPTIONAL
+}
+
+PUSCH-Info-LCR-r4 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ pusch-TimeslotsCodes UplinkTimeslotsCodes-LCR-r4 OPTIONAL
+}
+
+PUSCH-PowerControlInfo-r4 ::= SEQUENCE {
+ -- The IE ul-TargetSIR corresponds to PRX-PUSCHdes for 1.28Mcps TDD
+ -- Actual value PRX-PUSCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR,
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd128 SEQUENCE {
+ tpc-StepSize TPC-StepSizeTDD OPTIONAL
+ }
+ }
+}
+
+PUSCH-PowerControlInfo-r7 ::= SEQUENCE {
+ -- The IE ul-TargetSIR corresponds to PRX-PUSCHdes for 1.28Mcps TDD
+ -- Actual value PRX-PUSCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR,
+ tddOption CHOICE {
+ tdd384 NULL,
+ tdd768 NULL,
+ tdd128 SEQUENCE {
+ tpc-StepSize TPC-StepSizeTDD OPTIONAL
+ }
+ }
+}
+
+PUSCH-SysInfo ::= SEQUENCE {
+ pusch-Identity PUSCH-Identity,
+ pusch-Info PUSCH-Info,
+ usch-TFS TransportFormatSet OPTIONAL,
+ usch-TFCS TFCS OPTIONAL
+}
+
+PUSCH-SysInfo-VHCR ::= SEQUENCE {
+ pusch-Identity PUSCH-Identity,
+ pusch-Info-VHCR PUSCH-Info-VHCR,
+ usch-TransportChannelsInfo USCH-TransportChannelsInfo OPTIONAL,
+ usch-TFCS TFCS OPTIONAL
+}
+
+PUSCH-SysInfo-HCR-r5 ::= SEQUENCE {
+ pusch-Identity PUSCH-Identity,
+ pusch-Info PUSCH-Info,
+ usch-TransportChannelsInfo USCH-TransportChannelsInfo OPTIONAL,
+ usch-TFCS TFCS OPTIONAL
+}
+
+PUSCH-SysInfo-LCR-r4 ::= SEQUENCE {
+ pusch-Identity PUSCH-Identity,
+ pusch-Info PUSCH-Info-LCR-r4,
+ usch-TFS TransportFormatSet OPTIONAL,
+ usch-TFCS TFCS OPTIONAL
+}
+
+PUSCH-SysInfoList ::= SEQUENCE (SIZE (1..maxPUSCH)) OF
+ PUSCH-SysInfo
+
+PUSCH-SysInfoList-HCR-r5 ::= SEQUENCE (SIZE (1..maxPUSCH)) OF PUSCH-SysInfo-HCR-r5
+
+PUSCH-SysInfoList-LCR-r4 ::= SEQUENCE (SIZE (1..maxPUSCH)) OF
+ PUSCH-SysInfo-LCR-r4
+
+PUSCH-SysInfoList-SFN ::= SEQUENCE (SIZE (1..maxPUSCH)) OF
+ SEQUENCE {
+ pusch-SysInfo PUSCH-SysInfo,
+ sfn-TimeInfo SFN-TimeInfo OPTIONAL
+}
+
+PUSCH-SysInfoList-SFN-HCR-r5 ::= SEQUENCE (SIZE (1..maxPUSCH)) OF
+ SEQUENCE {
+ pusch-SysInfo PUSCH-SysInfo-HCR-r5,
+ sfn-TimeInfo SFN-TimeInfo OPTIONAL
+}
+
+PUSCH-SysInfoList-SFN-LCR-r4 ::= SEQUENCE (SIZE (1..maxPUSCH)) OF
+ SEQUENCE {
+ pusch-SysInfo PUSCH-SysInfo-LCR-r4,
+ sfn-TimeInfo SFN-TimeInfo OPTIONAL
+}
+
+PUSCH-SysInfoList-SFN-VHCR ::= SEQUENCE (SIZE (1..maxPUSCH)) OF
+ SEQUENCE {
+ pusch-SysInfo-VHCR PUSCH-SysInfo-VHCR,
+ sfn-TimeInfo SFN-TimeInfo OPTIONAL
+}
+
+RACH-TransmissionParameters ::= SEQUENCE {
+ mmax INTEGER (1..32),
+ nb01Min NB01,
+ nb01Max NB01
+}
+
+RadioLinkswithoutDPCHFDPCHInfo ::= SEQUENCE {
+ frameOffset DPCH-FrameOffset
+}
+
+ReducedScramblingCodeNumber ::= INTEGER (0..8191)
+
+Reference-Beta-QPSK ::= SEQUENCE {
+ reference-Code-Rate INTEGER (0..10),
+ reference-Beta INTEGER (-15..16)
+}
+
+Reference-Beta-16QAM ::= SEQUENCE {
+ reference-Code-Rate INTEGER (0..10),
+ reference-Beta INTEGER (-15..16)
+}
+
+RepetitionPeriodAndLength ::= CHOICE {
+ repetitionPeriod1 NULL,
+ -- repetitionPeriod2 could just as well be NULL also.
+ repetitionPeriod2 INTEGER (1..1),
+ repetitionPeriod4 INTEGER (1..3),
+ repetitionPeriod8 INTEGER (1..7),
+ repetitionPeriod16 INTEGER (1..15),
+ repetitionPeriod32 INTEGER (1..31),
+ repetitionPeriod64 INTEGER (1..63)
+}
+
+RepetitionPeriodLengthAndOffset ::= CHOICE {
+ repetitionPeriod1 NULL,
+ repetitionPeriod2 SEQUENCE {
+ length NULL,
+ offset INTEGER (0..1)
+ },
+ repetitionPeriod4 SEQUENCE {
+ length INTEGER (1..3),
+ offset INTEGER (0..3)
+ },
+ repetitionPeriod8 SEQUENCE {
+ length INTEGER (1..7),
+ offset INTEGER (0..7)
+ },
+ repetitionPeriod16 SEQUENCE {
+ length INTEGER (1..15),
+ offset INTEGER (0..15)
+ },
+ repetitionPeriod32 SEQUENCE {
+ length INTEGER (1..31),
+ offset INTEGER (0..31)
+ },
+ repetitionPeriod64 SEQUENCE {
+ length INTEGER (1..63),
+ offset INTEGER (0..63)
+ }
+}
+
+RepetitionPeriodAndLengthForSPS ::= CHOICE {
+ repetitionPeriod1 NULL,
+ -- repetitionPeriod2 could just as well be NULL also.
+ repetitionPeriod2 INTEGER (1..1),
+ repetitionPeriod4 INTEGER (1..3),
+ repetitionPeriod8 INTEGER (1..7),
+ repetitionPeriod16 INTEGER (1..15),
+ repetitionPeriod32 INTEGER (1..31)
+}
+
+ReplacedPDSCH-CodeInfo ::= SEQUENCE {
+ tfci-Field2 MaxTFCI-Field2Value,
+ spreadingFactor SF-PDSCH,
+ codeNumber CodeNumberDSCH,
+ multiCodeInfo MultiCodeInfo
+}
+
+ReplacedPDSCH-CodeInfoList ::= SEQUENCE (SIZE (1..maxTFCI-2-Combs)) OF
+ ReplacedPDSCH-CodeInfo
+
+RepPerLengthOffset-PICH ::= CHOICE {
+ rpp4-2 INTEGER (0..3),
+ rpp8-2 INTEGER (0..7),
+ rpp8-4 INTEGER (0..7),
+ rpp16-2 INTEGER (0..15),
+ rpp16-4 INTEGER (0..15),
+ rpp32-2 INTEGER (0..31),
+ rpp32-4 INTEGER (0..31),
+ rpp64-2 INTEGER (0..63),
+ rpp64-4 INTEGER (0..63)
+}
+
+RepPerLengthOffset-MICH ::= CHOICE {
+ rpp4-2 INTEGER (0..3),
+ rpp8-2 INTEGER (0..7),
+ rpp8-4 INTEGER (0..7),
+ rpp16-2 INTEGER (0..15),
+ rpp16-4 INTEGER (0..15),
+ rpp32-2 INTEGER (0..31),
+ rpp32-4 INTEGER (0..31),
+ rpp64-2 INTEGER (0..63),
+ rpp64-4 INTEGER (0..63)
+}
+
+RestrictedTrCH ::= SEQUENCE {
+ dl-restrictedTrCh-Type DL-TrCH-Type,
+ restrictedDL-TrCH-Identity TransportChannelIdentity,
+ allowedTFIList AllowedTFI-List
+}
+
+RestrictedTrCH-InfoList ::= SEQUENCE (SIZE(1..maxTrCH)) OF
+ RestrictedTrCH
+
+RL-AdditionInformation ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL,
+ -- dummy and dummy2 are not used in this version of specification
+ -- and the IEs should be ignored.
+ dummy BOOLEAN,
+ dummy2 SCCPCH-InfoForFACH OPTIONAL
+}
+
+RL-AdditionInformation-r6 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-Id CellIdentity OPTIONAL,
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r6
+ },
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Information E-RGCH-Information OPTIONAL
+}
+
+RL-AdditionInformation-r7 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-Id CellIdentity OPTIONAL,
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7
+ },
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Information E-RGCH-Information OPTIONAL
+}
+
+RL-AdditionInformation-r8 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-Id CellIdentity OPTIONAL,
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7
+ },
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Information E-RGCH-Information OPTIONAL,
+ targetCellPreconfigInfo TargetCellPreconfigInfo OPTIONAL
+}
+
+RL-AdditionInformation-r9 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-Id CellIdentity OPTIONAL,
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7
+ },
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Information E-RGCH-Information OPTIONAL,
+ targetCellPreconfigInfo TargetCellPreconfigInfo-r9 OPTIONAL
+}
+
+RL-AdditionInformation-r10 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-Id CellIdentity OPTIONAL,
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7
+ },
+ e-HICH-Information E-HICH-Information OPTIONAL,
+ e-RGCH-Information E-RGCH-Information OPTIONAL,
+ targetCellPreconfigInfo TargetCellPreconfigInfo-r10 OPTIONAL
+}
+
+RL-AdditionInformation-vb50ext ::= SEQUENCE {
+ targetCellPreconfigInfo TargetCellPreconfigInfo-vb50ext OPTIONAL
+}
+
+RL-AdditionInformation-r11 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-Id CellIdentity OPTIONAL,
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7
+ },
+ e-HICH-Information E-HICH-Information-r11 OPTIONAL,
+ e-RGCH-Information E-RGCH-Information OPTIONAL,
+ f-TPICH-Information F-TPICH-Information OPTIONAL,
+ targetCellPreconfigInfo TargetCellPreconfigInfo-r11 OPTIONAL
+}
+
+RL-AdditionInformation-r12 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-Id CellIdentity OPTIONAL,
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-ASU,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7,
+ radioLinkswithoutDPCHFDPCHInfo RadioLinkswithoutDPCHFDPCHInfo
+ },
+ e-HICH-Information E-HICH-Information-r11 OPTIONAL,
+ e-RGCH-Information E-RGCH-Information OPTIONAL,
+ f-TPICH-Information F-TPICH-Information OPTIONAL,
+ targetCellPreconfigInfo TargetCellPreconfigInfo-r12 OPTIONAL
+}
+
+RL-AdditionInformation-r13 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-Id CellIdentity OPTIONAL,
+ dl-dpchInfo CHOICE {
+ dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-ASU,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r13,
+ radioLinkswithoutDPCHFDPCHInfo RadioLinkswithoutDPCHFDPCHInfo
+ },
+ e-HICH-Information E-HICH-Information-r11 OPTIONAL,
+ e-RGCH-Information E-RGCH-Information OPTIONAL,
+ f-TPICH-Information F-TPICH-Information OPTIONAL,
+ targetCellPreconfigInfo TargetCellPreconfigInfo-r13 OPTIONAL
+}
+
+RL-AdditionInformation-v6b0ext ::= SEQUENCE {
+ sttdIndication STTDIndication OPTIONAL
+}
+
+RL-AdditionInformation-v890ext ::= SEQUENCE {
+ targetCellPreconfigInfo TargetCellPreconfigInfo-v890ext OPTIONAL
+}
+
+RL-AdditionInformation-v950ext ::= SEQUENCE {
+ targetCellPreconfigInfo TargetCellPreconfigInfo-v950ext OPTIONAL
+}
+
+RL-AdditionInformationList ::= SEQUENCE (SIZE (1..maxRL-1)) OF
+ RL-AdditionInformation
+
+RL-AdditionInformationList-r6 ::= SEQUENCE (SIZE (1..maxRL-1)) OF
+ RL-AdditionInformation-r6
+
+RL-AdditionInformationList-r7 ::= SEQUENCE (SIZE (1..maxRL-1)) OF
+ RL-AdditionInformation-r7
+
+RL-AdditionInformation-list-v6b0ext ::= SEQUENCE (SIZE (1..maxRL)) OF
+ RL-AdditionInformation-v6b0ext
+
+RL-AdditionInformationList-r8 ::= SEQUENCE (SIZE(1..maxRL-1)) OF
+ RL-AdditionInformation-r8
+
+RL-AdditionInformationList-v890ext ::= SEQUENCE (SIZE (1..maxRL-1)) OF
+ RL-AdditionInformation-v890ext
+
+RL-AdditionInformationList-r9 ::= SEQUENCE (SIZE(1..maxRL-1)) OF
+ RL-AdditionInformation-r9
+
+RL-AdditionInformationList-v950ext ::= SEQUENCE (SIZE(1..maxRL-1)) OF
+ RL-AdditionInformation-v950ext
+
+RL-AdditionInformationList-r10 ::= SEQUENCE (SIZE(1..maxRL-1)) OF
+ RL-AdditionInformation-r10
+
+RL-AdditionInformationList-vb50ext ::= SEQUENCE (SIZE(1..maxRL-1)) OF
+ RL-AdditionInformation-vb50ext
+
+RL-AdditionInformationList-r11 ::= SEQUENCE (SIZE(1..maxRL-1)) OF
+ RL-AdditionInformation-r11
+
+RL-AdditionInformationList-r12 ::= SEQUENCE (SIZE(1..maxRL-1)) OF
+ RL-AdditionInformation-r12
+
+RL-AdditionInformationList-r13 ::= SEQUENCE (SIZE(1..maxRL-1)) OF
+ RL-AdditionInformation-r13
+
+RL-AdditionInformationList-SecULFreq ::= SEQUENCE (SIZE(1..maxEDCHRL-1)) OF
+ RL-AdditionInformation-SecULFreq
+
+RL-AdditionInformationList-SecULFreq-r12 ::= SEQUENCE (SIZE(1..maxEDCHRL-1)) OF
+ RL-AdditionInformation-SecULFreq-r12
+
+RL-AdditionInformationList-SecULFreq-r13 ::= SEQUENCE (SIZE(1..maxEDCHRL-1)) OF
+ RL-AdditionInformation-SecULFreq-r13
+
+RL-AdditionInformation-SecULFreq ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-id CellIdentity OPTIONAL,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7,
+ e-HICH-Information E-HICH-Information,
+ e-RGCH-Information E-RGCH-Information OPTIONAL
+}
+
+RL-AdditionInformation-SecULFreq-r12 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-id CellIdentity OPTIONAL,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7,
+ e-HICH-Information E-HICH-Information,
+ e-RGCH-Information E-RGCH-Information OPTIONAL,
+ radioLinkswithoutDPCHFDPCHIndicator NULL OPTIONAL
+}
+
+RL-AdditionInformation-SecULFreq-r13 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cell-id CellIdentity OPTIONAL,
+ dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r13,
+ e-HICH-Information E-HICH-Information,
+ e-RGCH-Information E-RGCH-Information OPTIONAL,
+ radioLinkswithoutDPCHFDPCHIndicator NULL OPTIONAL
+}
+
+RL-IdentifierList ::= SEQUENCE (SIZE (1..maxRL)) OF
+ PrimaryCPICH-Info
+
+RL-RemovalInformationList ::= SEQUENCE (SIZE (1..maxRL)) OF
+ PrimaryCPICH-Info
+
+RL-RemovalInformationList-SecULFreq ::= SEQUENCE (SIZE(1..maxEDCHRL)) OF
+ PrimaryCPICH-Info
+
+RPP ::= ENUMERATED {
+ mode0, mode1 }
+
+S-Field ::= ENUMERATED {
+ e1bit, e2bits }
+
+SCCPCH-ChannelisationCode ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+SCCPCH-ChannelisationCode-VHCR ::= ENUMERATED {
+ cc32-1, cc32-2, cc32-3, cc32-4,
+ cc32-5, cc32-6, cc32-7, cc32-8,
+ cc32-9, cc32-10, cc32-11, cc32-12,
+ cc32-13, cc32-14, cc32-15, cc32-16,
+ cc32-17, cc32-18, cc32-19, cc32-20,
+ cc32-21, cc32-22, cc32-23, cc32-24,
+ cc32-25, cc32-26, cc32-27, cc32-28,
+ cc32-29, cc32-30, cc32-31, cc32-32 }
+
+SCCPCH-ChannelisationCodeList ::= SEQUENCE (SIZE (1..16)) OF
+ SCCPCH-ChannelisationCode
+
+SCCPCH-ChannelisationCodeList-VHCR ::= SEQUENCE (SIZE (1..32)) OF
+ SCCPCH-ChannelisationCode-VHCR
+
+SCCPCH-InfoForFACH ::= SEQUENCE {
+ secondaryCCPCH-Info SecondaryCCPCH-Info,
+ tfcs TFCS,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ fach-PCH-InformationList FACH-PCH-InformationList,
+ sib-ReferenceListFACH SIB-ReferenceListFACH
+ },
+ tdd SEQUENCE {
+ fach-PCH-InformationList FACH-PCH-InformationList
+ }
+ }
+}
+
+SCCPCH-InfoForFACH-r4 ::= SEQUENCE {
+ secondaryCCPCH-Info SecondaryCCPCH-Info-r4,
+ tfcs TFCS,
+ fach-PCH-InformationList FACH-PCH-InformationList,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ sib-ReferenceListFACH SIB-ReferenceListFACH
+ },
+ tdd NULL
+ }
+}
+
+SCCPCH-SystemInformation ::= SEQUENCE {
+ secondaryCCPCH-Info SecondaryCCPCH-Info,
+ tfcs TFCS OPTIONAL,
+ fach-PCH-InformationList FACH-PCH-InformationList OPTIONAL,
+ pich-Info PICH-Info OPTIONAL
+}
+
+SCCPCH-SystemInformation-LCR-r4-ext ::= SEQUENCE {
+ secondaryCCPCH-LCR-Extensions SecondaryCCPCH-Info-LCR-r4-ext,
+ -- pich-Info in the SCCPCH-SystemInformation IE shall be absent,
+ -- and instead the following used.
+ pich-Info PICH-Info-LCR-r4 OPTIONAL
+}
+
+SCCPCH-SystemInformation-HCR-VHCR-r7 ::= SEQUENCE {
+ secondaryCCPCH-Info SecondaryCCPCH-Info-HCR-VHCR-r7,
+ tfcs TFCS OPTIONAL,
+ fach-PCH-InformationList FACH-PCH-InformationList OPTIONAL,
+ pich-Info PICH-Info-HCR-VHCR-r7 OPTIONAL
+}
+
+SCCPCH-SystemInformationList ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ SCCPCH-SystemInformation
+
+SCCPCH-SystemInformationList-HCR-VHCR-r7 ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ SCCPCH-SystemInformation-HCR-VHCR-r7
+
+-- SCCPCH-SystemInformationList-LCR-r4-ext includes elements additional to those in
+-- SCCPCH-SystemInformationList for the 1.28Mcps TDD. The order of the IEs
+-- indicates which SCCPCH-SystemInformation-LCR-r4-ext IE extends which
+-- SCCPCH-SystemInformation IE.
+SCCPCH-SystemInformationList-LCR-r4-ext ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ SCCPCH-SystemInformation-LCR-r4-ext
+
+-- The SCCPCH-SystemInformation-MBMS-r6 is used for an S-CCPCH dedicated for MBMS purposes.
+SCCPCH-SystemInformation-MBMS-r6 ::= SEQUENCE {
+ secondaryCCPCHInfo-MBMS SecondaryCCPCHInfo-MBMS-r6,
+ transportFormatCombinationSet TFCS,
+ fachCarryingMCCH SEQUENCE {
+ mcch-transportFormatSet TransportFormatSet,
+ mcch-ConfigurationInfo MBMS-MCCH-ConfigurationInfo-r6
+ },
+ fachCarryingMTCH-List MBMS-FACHCarryingMTCH-List OPTIONAL,
+ -- If schedulingInformation is provided
+ fachCarryingMSCH SEQUENCE {
+ msch-transportFormatSet TransportFormatSet,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy MBMS-MSCH-ConfigurationInfo-r6
+ } OPTIONAL
+}
+
+-- The SCCPCH-SystemInformation-MBMS-r7 is used for an S-CCPCH dedicated for MBMS purposes.
+SCCPCH-SystemInformation-MBMS-r7 ::= SEQUENCE {
+ secondaryCCPCHInfo-MBMS SecondaryCCPCHInfo-MBMS-r7,
+ transportFormatCombinationSet TFCS,
+ fachCarryingMCCH SEQUENCE {
+ mcch-transportFormatSet TransportFormatSet,
+ mcch-ConfigurationInfo MBMS-MCCH-ConfigurationInfo-r6
+ },
+ fachCarryingMTCH-List MBMS-FACHCarryingMTCH-List OPTIONAL,
+ -- If schedulingInformation is provided
+ fachCarryingMSCH SEQUENCE {
+ msch-transportFormatSet TransportFormatSet
+ } OPTIONAL
+}
+
+S-CPICH-PowerOffset-MIMO ::= INTEGER (-6..0)
+
+S-CPICH-PowerOffset-4x4MIMO ::= INTEGER (-12..0)
+
+ScheduledTransmissionConfiguration ::= SEQUENCE {
+ common-E-DCH-ResourceInfoListExt SEQUENCE (SIZE (1..maxEDCHs)) OF
+ Common-E-DCH-ResourceInfoListExt
+}
+
+ScramblingCodeChange ::= ENUMERATED {
+ codeChange, noCodeChange }
+
+ScramblingCodeType ::= ENUMERATED {
+ shortSC,
+ longSC }
+
+SecondaryCCPCH-Info ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy1 is not used in this version of the specification and should be ignored.
+ dummy1 PCPICH-UsageForChannelEst,
+ -- dummy2 is not used in this version of the specification. It should not
+ -- be sent and if received it should be ignored.
+ dummy2 SecondaryCPICH-Info OPTIONAL,
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ sttd-Indicator BOOLEAN,
+ sf-AndCodeNumber SF256-AndCodeNumber,
+ pilotSymbolExistence BOOLEAN,
+ tfci-Existence BOOLEAN,
+ positionFixedOrFlexible PositionFixedOrFlexible,
+ timingOffset TimingOffset DEFAULT 0
+ },
+ tdd SEQUENCE {
+ -- TABULAR: the offset is included in CommonTimeslotInfoSCCPCH
+ commonTimeslotInfo CommonTimeslotInfoSCCPCH,
+ individualTimeslotInfo IndividualTimeslotInfo,
+ channelisationCode SCCPCH-ChannelisationCodeList
+ }
+ }
+}
+
+SecondaryCCPCH-Info-r4 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ sttd-Indicator BOOLEAN,
+ sf-AndCodeNumber SF256-AndCodeNumber,
+ pilotSymbolExistence BOOLEAN,
+ tfci-Existence BOOLEAN,
+ positionFixedOrFlexible PositionFixedOrFlexible,
+ timingOffset TimingOffset DEFAULT 0
+ },
+ tdd SEQUENCE {
+ -- TABULAR: the offset is included in CommonTimeslotInfoSCCPCH
+ commonTimeslotInfo CommonTimeslotInfoSCCPCH,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo
+ },
+ tdd128 SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-LCR-r4
+ }
+ },
+ channelisationCode SCCPCH-ChannelisationCodeList
+ }
+ }
+}
+
+SecondaryCCPCH-Info-HCR-VHCR-r7 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ tdd384 SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-r7,
+ channelisationCode SCCPCH-ChannelisationCodeList
+ },
+ tdd768 SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-VHCR,
+ channelisationCode SCCPCH-ChannelisationCodeList-VHCR
+ }
+ }
+}
+
+SecondaryCCPCH-Info-LCR-r4-ext ::= SEQUENCE {
+ individualTimeslotLCR-Ext IndividualTimeslotInfo-LCR-r4-ext
+}
+
+SecondaryCCPCHFrameType2Info ::= SEQUENCE {
+ subFrameNumber INTEGER (0..4),
+ dl-ChannelisationCodes DL-ChannelCodes-MBSFN-IMB384,
+ modulation CHOICE {
+ modQPSK NULL,
+ mod16QAM SEQUENCE {
+ cpich-SecCCPCH-PowerOffset INTEGER (-11..4)
+ }
+ }
+}
+
+SecondaryCCPCHInfo-MBMS-r6 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ sttd-Indicator BOOLEAN,
+ sf-AndCodeNumber SF256-AndCodeNumber,
+ timingOffset TimingOffset DEFAULT 0
+ },
+ tdd384 SEQUENCE {
+ commonTimeslotInfoMBMS CommonTimeslotInfoMBMS,
+ downlinkTimeslotsCodes DownlinkTimeslotsCodes
+ },
+ tdd128 SEQUENCE {
+ commonTimeslotInfoMBMS CommonTimeslotInfoMBMS,
+ downlinkTimeslotsCodes DownlinkTimeslotsCodes-LCR-r4
+ }
+ }
+}
+
+SecondaryCCPCHInfo-MBMS-r7 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ -- The CHOICE fdd is used for both "fdd" and "3.84 Mcps TDD MBSFN IMB"
+ fdd SEQUENCE {
+ -- The IE secondaryScramblingCode is not applicable for "3.84 Mcps TDD MBSFN IMB"
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ -- The IE sttd-Indicator is not applicable for cells operating in MBSFN mode,
+ -- the UE behaviour is unspecified
+ sttd-Indicator BOOLEAN,
+ sf-AndCodeNumber SF256-AndCodeNumber,
+ -- The IE timingOffset is not applicable for "3.84 Mcps TDD MBSFN IMB"
+ timingOffset TimingOffset DEFAULT 0,
+ modulation CHOICE {
+ modQPSK NULL,
+ -- The CHOICE mod16QAM is not applicable for MCCH in "3.84 Mcps TDD MBSFN IMB"
+ mod16QAM INTEGER (-11..4)
+ } OPTIONAL
+ },
+ tdd384 SEQUENCE {
+ commonTimeslotInfoMBMS CommonTimeslotInfoMBMS,
+ downlinkTimeslotsCodes DownlinkTimeslotsCodes-r7,
+ modulation ENUMERATED { modQPSK, mod16QAM }
+ },
+ tdd768 SEQUENCE {
+ commonTimeslotInfoMBMS CommonTimeslotInfoMBMS,
+ downlinkTimeslotsCodes DownlinkTimeslotsCodes-VHCR,
+ modulation ENUMERATED { modQPSK, mod16QAM }
+ },
+ tdd128 SEQUENCE {
+ commonTimeslotInfoMBMS CommonTimeslotInfoMBMS,
+ downlinkTimeslotsCodes DownlinkTimeslotsCodes-LCR-r4,
+ mbsfnSpecialTimeSlot TimeSlotLCR-ext OPTIONAL,
+ modulation ENUMERATED { modQPSK, mod16QAM }
+ }
+ }
+}
+
+SecondaryCCPCHInfoDiff-MBMS ::= SEQUENCE {
+ secondaryScramblingCode SecondaryScramblingCode OPTIONAL,
+ sttd-Indicator BOOLEAN,
+ sf-AndCodeNumber SF256-AndCodeNumber OPTIONAL,
+ timingOffset TimingOffset OPTIONAL
+}
+
+SecondaryCPICH-Info ::= SEQUENCE {
+ secondaryDL-ScramblingCode SecondaryScramblingCode OPTIONAL,
+ channelisationCode ChannelisationCode256
+}
+
+SecondaryScramblingCode ::= INTEGER (1..15)
+
+SecondaryCellMIMOparametersFDD ::= CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL,
+ mimoPilotConfiguration MIMO-PilotConfiguration-r9 OPTIONAL
+ }
+}
+
+SecondaryCellMIMOparametersFDD-v950ext ::= SEQUENCE {
+ precodingWeightSetRestriction ENUMERATED { true } OPTIONAL
+}
+
+SecondaryCellMIMOparametersFDD-r10 ::= CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL,
+ mimoPilotConfiguration MIMO-PilotConfiguration-r9 OPTIONAL,
+ precodingWeightSetRestriction ENUMERATED { true } OPTIONAL
+ }
+}
+
+SecondaryCell4x4MIMOparametersFDD ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL,
+ mimoPilotConfiguration MIMO4x4-PilotConfiguration OPTIONAL,
+ precodingWeightSetRestriction BIT STRING (SIZE (64)) OPTIONAL
+ }
+ }
+}
+
+SecondInterleavingMode ::= ENUMERATED {
+ frameRelated, timeslotRelated }
+
+ServingCellChangeMACreset ::= BOOLEAN
+
+ServingCellChangeMsgType ::= ENUMERATED {
+ radioBearerSetup,
+ radioBearerReconfiguration,
+ transportChannelReconfiguration,
+ physicalChannelReconfiguration }
+
+ServingCellChangeParameters ::= SEQUENCE {
+ servingCellChangeMACreset ServingCellChangeMACreset,
+ servingCellChangeMsgType ServingCellChangeMsgType,
+ servingCellChangeTrId ServingCellChangeTrId
+}
+
+ServingCellChangeParameters-r12 ::= SEQUENCE {
+ servingCellChangeMACreset ServingCellChangeMACreset,
+ servingCellChangeMsgType ServingCellChangeMsgType,
+ servingCellChangeTrId ServingCellChangeTrId,
+ enhancedServingCellChangeforEvent1CsupportIndicator ENUMERATED { true } OPTIONAL
+}
+ServingCellChangeTrId ::= INTEGER (0..3)
+
+SF8Codes ::= ENUMERATED {
+ cc8-1, cc8-2, cc8-3, cc8-4, cc8-5, cc8-6, cc8-7, cc8-8}
+
+SF16Codes ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4, cc16-5, cc16-6, cc16-7,
+ cc16-8}
+
+SF16Codes2 ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4, cc16-5, cc16-6, cc16-7,
+ cc16-8, cc16-9, cc16-10, cc16-11, cc16-12, cc16-13, cc16-14,
+ cc16-15, cc16-16}
+
+SF32Codes ::= ENUMERATED {
+ cc32-1, cc32-2, cc32-3, cc32-4, cc32-5, cc32-6, cc32-7,
+ cc32-8, cc32-9, cc32-10, cc32-11, cc32-12, cc32-13, cc32-14,
+ cc32-15, cc32-16}
+
+-- SF256-AndCodeNumber encodes both "Spreading factor" and "Code Number"
+SF256-AndCodeNumber ::= CHOICE {
+ sf4 INTEGER (0..3),
+ sf8 INTEGER (0..7),
+ sf16 INTEGER (0..15),
+ sf32 INTEGER (0..31),
+ sf64 INTEGER (0..63),
+ sf128 INTEGER (0..127),
+ sf256 INTEGER (0..255)
+}
+
+-- SF512-AndCodeNumber encodes both "Spreading factor" and "Code Number"
+SF512-AndCodeNumber ::= CHOICE {
+ sf4 INTEGER (0..3),
+ sf8 INTEGER (0..7),
+ sf16 INTEGER (0..15),
+ sf32 INTEGER (0..31),
+ sf64 INTEGER (0..63),
+ sf128 INTEGER (0..127),
+ sf256 INTEGER (0..255),
+ sf512 INTEGER (0..511)
+}
+
+-- SF512-AndPilot encodes both "Spreading factor" and "Number of bits for Pilot bits"
+SF512-AndPilot ::= CHOICE {
+ sfd4 NULL,
+ sfd8 NULL,
+ sfd16 NULL,
+ sfd32 NULL,
+ sfd64 NULL,
+ sfd128 PilotBits128,
+ sfd256 PilotBits256,
+ sfd512 NULL
+}
+
+SF512-AndPilot-r12 ::= CHOICE {
+ sfd4 NULL,
+ sfd8 NULL,
+ sfd16 NULL,
+ sfd32 NULL,
+ sfd64 NULL,
+ sfd128 PilotBits128-r12,
+ sfd256 PilotBits256-r12,
+ sfd512 NULL
+}
+
+SF-PDSCH ::= ENUMERATED {
+ sfp4, sfp8, sfp16, sfp32,
+ sfp64, sfp128, sfp256 }
+
+SF-PRACH ::= ENUMERATED {
+ sfpr32, sfpr64, sfpr128, sfpr256 }
+
+SFN-TimeInfo ::= SEQUENCE {
+ activationTimeSFN INTEGER (0..4095),
+ physChDuration DurationTimeInfo
+}
+
+-- actual scheduling value = 2(signalled value +1) and is the periodicity of sending
+-- special burst frames
+SpecialBurstScheduling ::= INTEGER (0..7)
+
+SpreadingFactor ::= ENUMERATED {
+ sf4, sf8, sf16, sf32,
+ sf64, sf128, sf256 }
+
+SPS-Information-TDD128-r8 ::= SEQUENCE {
+ e-dch-SPS-Info E-DCH-SPS-Information-TDD128 OPTIONAL,
+ hs-dsch-SPS-Info HS-DSCH-SPS-Information-TDD128 OPTIONAL
+}
+
+SRB-delay ::= INTEGER (0..7)
+
+SSDT-CellIdentity ::= ENUMERATED {
+ ssdt-id-a, ssdt-id-b, ssdt-id-c,
+ ssdt-id-d, ssdt-id-e, ssdt-id-f,
+ ssdt-id-g, ssdt-id-h }
+
+SSDT-Information ::= SEQUENCE {
+ s-Field S-Field,
+ codeWordSet CodeWordSet
+}
+
+SSDT-Information-r4 ::= SEQUENCE {
+ s-Field S-Field,
+ codeWordSet CodeWordSet,
+ ssdt-UL-r4 SSDT-UL OPTIONAL
+}
+
+SSDT-UL ::= ENUMERATED {
+ ul, ul-AndDL }
+
+StandaloneMidambleInfo-TDD128 ::= SEQUENCE {
+ -- Actual value midambleConfiguration = IE value * 2
+ midambleConfiguration INTEGER (1..8),
+ midambleShift INTEGER (0..15),
+ timeSlotInformation BIT STRING (SIZE (5)),
+ activationTime ActivationTime,
+ subframeNum INTEGER (0..1),
+ repetitionPeriod ENUMERATED {
+ v1, v2, v4, v8,
+ v16, v32, v64, spare},
+ referenceBeta INTEGER (-15..16) OPTIONAL
+}
+
+STTDIndication ::= ENUMERATED { true }
+
+SynchronisationParameters-r4 ::= SEQUENCE {
+ sync-UL-CodesBitmap BIT STRING {
+ code7(0),
+ code6(1),
+ code5(2),
+ code4(3),
+ code3(4),
+ code2(5),
+ code1(6),
+ code0(7)
+ } (SIZE (8)),
+ fpach-Info FPACH-Info-r4,
+ -- Actual value prxUpPCHdes = IE value - 120
+ prxUpPCHdes INTEGER (0..62),
+ sync-UL-Procedure SYNC-UL-Procedure-r4 OPTIONAL
+}
+
+Sync-UL-Codes-Bitmap ::= BIT STRING {
+ code7(0),
+ code6(1),
+ code5(2),
+ code4(3),
+ code3(4),
+ code2(5),
+ code1(6),
+ code0(7)
+ } (SIZE (8))
+
+SYNC-UL-Procedure-r4 ::= SEQUENCE {
+ max-SYNC-UL-Transmissions ENUMERATED { tr1, tr2, tr4, tr8 },
+ powerRampStep INTEGER (0..3)
+}
+
+SYNC-UL-Info-r4 ::= SEQUENCE {
+ sync-UL-Codes-Bitmap Sync-UL-Codes-Bitmap,
+ -- Actual value prxUpPCHdes = IE value - 120
+ prxUpPCHdes INTEGER (0..62),
+ powerRampStep INTEGER (0..3),
+ max-SYNC-UL-Transmissions ENUMERATED { tr1, tr2, tr4, tr8 },
+ mmax INTEGER(1..32)
+}
+
+SYNC-UL-InfoForE-RUCCH ::= SEQUENCE {
+ prxUpPCHdes INTEGER (0..62) OPTIONAL,
+ powerRampStep INTEGER (0..3) OPTIONAL,
+ max-SYNC-UL-Transmissions ENUMERATED { tr1, tr2, tr4, tr8 } OPTIONAL,
+ e-RUCCH-Sync-UL-Codes-Bitmap Sync-UL-Codes-Bitmap,
+ mmax INTEGER(1..32)
+}
+
+TargetCellPreconfigInfo ::= SEQUENCE {
+ activationTimeOffset ActivationTimeOffset OPTIONAL,
+ new-H-RNTI H-RNTI,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r8,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL
+}
+
+TargetCellPreconfigInfo-v890ext ::= MIMO-Parameters-v7f0ext
+
+TargetCellPreconfigInfo-r9 ::= SEQUENCE {
+ activationTimeOffset ActivationTimeOffset OPTIONAL,
+ new-H-RNTI H-RNTI,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r9,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL
+}
+
+TargetCellPreconfigInfo-v950ext ::= SecondaryCellMIMOparametersFDD-v950ext
+
+TargetCellPreconfigInfo-r10 ::= SEQUENCE {
+ activationTimeOffset ActivationTimeOffset OPTIONAL,
+ new-H-RNTI H-RNTI,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r9,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL
+}
+
+TargetCellPreconfigInfo-vb50ext ::= SEQUENCE {
+ ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL
+}
+
+TargetCellPreconfigInfo-r11 ::= SEQUENCE {
+ activationTimeOffset ActivationTimeOffset OPTIONAL,
+ new-H-RNTI H-RNTI,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r11,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL,
+ uL-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ ul-64QAM-Config UL-64QAM-Config OPTIONAL,
+ ul-MIMO-Info UL-MIMO-InfoFDD OPTIONAL
+}
+
+TargetCellPreconfigInfo-r12 ::= SEQUENCE {
+ activationTimeOffset ActivationTimeOffset OPTIONAL,
+ new-H-RNTI H-RNTI,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r12,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL,
+ uL-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ ul-64QAM-Config UL-64QAM-Config OPTIONAL,
+ ul-MIMO-Info UL-MIMO-InfoFDD OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL
+}
+
+TargetCellPreconfigInfo-r13 ::= SEQUENCE {
+ activationTimeOffset ActivationTimeOffset OPTIONAL,
+ new-H-RNTI H-RNTI,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r12,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL,
+ uL-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ ul-64QAM-Config UL-64QAM-Config OPTIONAL,
+ ul-MIMO-Info UL-MIMO-InfoFDD OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL
+}
+
+
+TDD-FPACH-CCode16-r4 ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+TDD-UL-Interference ::= INTEGER (-110..-52)
+
+TDD-PICH-CCode ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+TDD768-PICH-CCode ::= ENUMERATED {
+ cc32-1, cc32-2, cc32-3, cc32-4,
+ cc32-5, cc32-6, cc32-7, cc32-8,
+ cc32-9, cc32-10, cc32-11, cc32-12,
+ cc32-13, cc32-14, cc32-15, cc32-16,
+ cc32-17, cc32-18, cc32-19, cc32-20,
+ cc32-21, cc32-22, cc32-23, cc32-24,
+ cc32-25, cc32-26, cc32-27, cc32-28,
+ cc32-29, cc32-30, cc32-31, cc32-32 }
+
+TDD-MBSFNInformation ::= SEQUENCE (SIZE (1..maxTS)) OF
+ TDD-MBSFNTSlotInfo
+
+TDD-MBSFNTSlotInfo ::= SEQUENCE {
+ timeSlotNumber TimeslotNumber,
+ cellParametersID CellParametersID
+}
+
+TDD-PRACH-CCode8 ::= ENUMERATED {
+ cc8-1, cc8-2, cc8-3, cc8-4,
+ cc8-5, cc8-6, cc8-7, cc8-8 }
+
+TDD-PRACH-CCode16 ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+TDD-PRACH-CCode-LCR-r4 ::= ENUMERATED {
+ cc4-1, cc4-2, cc4-3, cc4-4,
+ cc8-1, cc8-2, cc8-3, cc8-4,
+ cc8-5, cc8-6, cc8-7, cc8-8,
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+TDD-PRACH-CCodeList ::= CHOICE {
+ sf8 SEQUENCE (SIZE (1..8)) OF
+ TDD-PRACH-CCode8,
+-- Channelisation codes cc16-9, cc16-10, cc16-11, cc16-12, cc16-13, cc16-14,
+-- cc16-15 and cc16-16 shall not be used
+ sf16 SEQUENCE (SIZE (1..8)) OF
+ TDD-PRACH-CCode16
+}
+
+TDD768-PRACH-CCode16 ::= ENUMERATED {
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+TDD768-PRACH-CCode32 ::= ENUMERATED {
+ cc32-1, cc32-2, cc32-3, cc32-4,
+ cc32-5, cc32-6, cc32-7, cc32-8,
+ cc32-9, cc32-10, cc32-11, cc32-12,
+ cc32-13, cc32-14, cc32-15, cc32-16 }
+
+TDD768-PRACH-CCodeList ::= CHOICE {
+ sf32 SEQUENCE (SIZE (1..16)) OF
+ TDD768-PRACH-CCode32,
+-- Channelisation codes cc32-17, cc32-18, cc32-19, cc32-20, cc32-21, cc32-22,
+-- cc32-23, cc32-24, cc32-25, cc32-26, cc32-27, cc32-28, cc32-29, cc32-30, cc32-31
+-- and cc32-32 shall not be used
+ sf16 SEQUENCE (SIZE (1..16)) OF
+ TDD768-PRACH-CCode16
+}
+
+TFC-ControlDuration ::= ENUMERATED {
+ tfc-cd1, tfc-cd2, tfc-cd4, tfc-cd8,
+ tfc-cd16, tfc-cd24, tfc-cd32,
+ tfc-cd48, tfc-cd64, tfc-cd128,
+ tfc-cd192, tfc-cd256, tfc-cd512 }
+
+TFCI-Coding ::= ENUMERATED {
+ tfci-bits-4, tfci-bits-8,
+ tfci-bits-16, tfci-bits-32 }
+
+TGCFN ::= INTEGER (0..255)
+
+-- In TGD, value 270 represents "undefined" in the tabular description.
+TGD ::= INTEGER (15..270)
+
+TGL ::= INTEGER (1..14)
+
+TGMP ::= ENUMERATED {
+ tdd-Measurement, fdd-Measurement,
+ gsm-CarrierRSSIMeasurement,
+ gsm-initialBSICIdentification, gsmBSICReconfirmation,
+ multi-carrier }
+
+TGMP-r8 ::= ENUMERATED {
+ tdd-Measurement, fdd-Measurement,
+ gsm-CarrierRSSIMeasurement,
+ gsm-initialBSICIdentification, gsmBSICReconfirmation,
+ multi-carrier, e-UTRA, spare }
+
+TGP-Sequence ::= SEQUENCE {
+ tgpsi TGPSI,
+ tgps-Status CHOICE {
+ activate SEQUENCE {
+ tgcfn TGCFN
+ },
+ deactivate NULL
+ },
+ tgps-ConfigurationParams TGPS-ConfigurationParams OPTIONAL
+}
+
+TGP-Sequence-r8 ::= SEQUENCE {
+ tgpsi TGPSI,
+ tgps-Status CHOICE {
+ activate SEQUENCE {
+ tgcfn TGCFN
+ },
+ deactivate NULL
+ },
+ tgps-ConfigurationParams TGPS-ConfigurationParams-r8 OPTIONAL
+}
+
+TGP-Sequence-r10 ::= SEQUENCE {
+ tgpsi TGPSI,
+ tgps-Status CHOICE {
+ activate SEQUENCE {
+ tgcfn TGCFN
+ },
+ deactivate NULL
+ },
+ tgps-ConfigurationParams TGPS-ConfigurationParams-r10 OPTIONAL
+}
+
+TGPS-Reconfiguration-CFN ::= INTEGER (0..255)
+
+TGP-SequenceList ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ TGP-Sequence
+
+TGP-SequenceList-r8 ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ TGP-Sequence-r8
+
+TGP-SequenceList-r10 ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ TGP-Sequence-r10
+
+TGP-SequenceShort ::= SEQUENCE {
+ tgpsi TGPSI,
+ tgps-Status CHOICE {
+ activate SEQUENCE {
+ tgcfn TGCFN
+ },
+ deactivate NULL
+ }
+}
+
+TGP-SequenceShort-r10 ::= SEQUENCE {
+ tgpsi TGPSI,
+ tgps-Status CHOICE {
+ activate SEQUENCE {
+ tgcfn TGCFN
+ },
+ deactivate NULL
+ },
+ freqSpecificCompressedMode ENUMERATED { true } OPTIONAL
+}
+
+TGPL ::= INTEGER (1..144)
+
+-- TABULAR: In TGPRC, value 0 represents "infinity" in the tabular description.
+TGPRC ::= INTEGER (0..511)
+
+TGPS-ConfigurationParams ::= SEQUENCE {
+ tgmp TGMP,
+ tgprc TGPRC,
+ tgsn TGSN,
+ tgl1 TGL,
+ tgl2 TGL OPTIONAL,
+ tgd TGD,
+ tgpl1 TGPL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it shall be ignored.
+ dummy TGPL OPTIONAL,
+ rpp RPP,
+ itp ITP,
+ -- TABULAR: Compressed mode method is nested inside UL-DL-Mode
+ ul-DL-Mode UL-DL-Mode,
+ dl-FrameType DL-FrameType,
+ deltaSIR1 DeltaSIR,
+ deltaSIRAfter1 DeltaSIR,
+ deltaSIR2 DeltaSIR OPTIONAL,
+ deltaSIRAfter2 DeltaSIR OPTIONAL,
+ nidentifyAbort NidentifyAbort OPTIONAL,
+ treconfirmAbort TreconfirmAbort OPTIONAL
+}
+
+TGPS-ConfigurationParams-r8 ::= SEQUENCE {
+ tgmp TGMP-r8,
+ tgprc TGPRC,
+ tgsn TGSN,
+ tgl1 TGL,
+ tgl2 TGL OPTIONAL,
+ tgd TGD,
+ tgpl1 TGPL,
+ rpp RPP,
+ itp ITP,
+ -- TABULAR: Compressed mode method is nested inside UL-DL-Mode
+ ul-DL-Mode UL-DL-Mode,
+ dl-FrameType DL-FrameType,
+ deltaSIR1 DeltaSIR,
+ deltaSIRAfter1 DeltaSIR,
+ deltaSIR2 DeltaSIR OPTIONAL,
+ deltaSIRAfter2 DeltaSIR OPTIONAL,
+ nidentifyAbort NidentifyAbort OPTIONAL,
+ treconfirmAbort TreconfirmAbort OPTIONAL
+}
+
+TGPS-ConfigurationParams-r10 ::= SEQUENCE {
+ tgmp TGMP-r8,
+ freqSpecificCompressedMode ENUMERATED { true } OPTIONAL,
+ tgprc TGPRC,
+ tgsn TGSN,
+ tgl1 TGL,
+ tgl2 TGL OPTIONAL,
+ tgd TGD,
+ tgpl1 TGPL,
+ rpp RPP,
+ itp ITP,
+ -- TABULAR: Compressed mode method is nested inside UL-DL-Mode
+ ul-DL-Mode UL-DL-Mode,
+ dl-FrameType DL-FrameType,
+ deltaSIR1 DeltaSIR,
+ deltaSIRAfter1 DeltaSIR,
+ deltaSIR2 DeltaSIR OPTIONAL,
+ deltaSIRAfter2 DeltaSIR OPTIONAL,
+ nidentifyAbort NidentifyAbort OPTIONAL,
+ treconfirmAbort TreconfirmAbort OPTIONAL
+}
+
+TGPSI ::= INTEGER (1..maxTGPS)
+
+TGSN ::= INTEGER (0..14)
+
+TimeInfo ::= SEQUENCE {
+ activationTime ActivationTime OPTIONAL,
+ durationTimeInfo DurationTimeInfo OPTIONAL
+}
+
+TimeSlotLCR-ext ::= ENUMERATED {
+ ts7, spare3, spare2, spare1 }
+
+TimeslotList ::= SEQUENCE (SIZE (1..maxTS)) OF
+ TimeslotNumber
+
+TimeslotList-r4 ::= CHOICE {
+-- the choice for 7.68 Mcps TDD is as for 3.84 Mcps TDD --
+ tdd384 SEQUENCE (SIZE (1..maxTS)) OF
+ TimeslotNumber,
+ tdd128 SEQUENCE (SIZE (1..maxTS-LCR)) OF
+ TimeslotNumber-LCR-r4
+}
+
+-- If TimeslotNumber is included for a 1.28Mcps TDD description, it shall take values from 0..6
+TimeslotNumber ::= INTEGER (0..14)
+
+TimeslotNumber-LCR-r4 ::= INTEGER (0..6)
+
+TimeslotNumber-PRACH-LCR-r4 ::= INTEGER (1..6)
+
+TimeslotSync2 ::= INTEGER (0..6)
+
+DTX-DRX-TimingInfo-r7 ::= SEQUENCE {
+ timing CHOICE {
+ continue NULL,
+ newTiming NewTiming
+ }
+}
+
+-- Actual value TimingOffset = IE value * 256
+TimingOffset ::= INTEGER (0..149)
+
+TimingMaintainedSynchInd ::= ENUMERATED { false }
+
+TPC-CombinationIndex ::= INTEGER (0..5)
+
+TPC-CommandTargetRate ::= INTEGER (0..10)
+
+-- Actual value TPC-StepSizeFDD = IE value + 1
+TPC-StepSizeFDD ::= INTEGER (0..1)
+
+TPC-StepSizeTDD ::= INTEGER (1..3)
+
+TransportBlockSizeIndex ::= INTEGER (1..32)
+
+-- Actual value TreconfirmAbort = IE value * 0.5 seconds
+TreconfirmAbort ::= INTEGER (1..20)
+
+TwoMsHarqConfiguration ::= SEQUENCE {
+ harqProcessAllocation BIT STRING (SIZE (8)) OPTIONAL
+}
+
+TX-DiversityMode ::= ENUMERATED {
+ noDiversity,
+ sttd,
+ closedLoopMode1,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy }
+
+UARFCN ::= INTEGER (0..16383)
+
+UCSM-Info ::= SEQUENCE {
+ minimumSpreadingFactor MinimumSpreadingFactor,
+ nf-Max NF-Max,
+ channelReqParamsForUCSM ChannelReqParamsForUCSM
+}
+
+UE-DPCCH-Burst ::= ENUMERATED {
+ sub-frames-1,
+ sub-frames-2,
+ sub-frames-5,
+ spare1 }
+
+UE-DPCCHPowerResetAfterDTXOnSecUplink ::= SEQUENCE {
+ filterCoefficient INTEGER (0..5),
+ -- Actual value range powerOffset = (-4..10) * 2
+ powerOffset INTEGER (-8..20),
+ inactivityThresholdForResetPower ENUMERATED {
+ ms10, ms20, ms30, ms40,
+ ms50, ms60, ms80, ms120} OPTIONAL
+}
+
+UE-DRX-Cycle ::= ENUMERATED {
+ sub-frames-4,
+ sub-frames-5,
+ sub-frames-8,
+ sub-frames-10,
+ sub-frames-16,
+ sub-frames-20,
+ spare2,
+ spare1 }
+
+UE-DRX-Cycle2 ::= ENUMERATED {
+ sub-frames-4,
+ sub-frames-5,
+ sub-frames-8,
+ sub-frames-10,
+ sub-frames-16,
+ sub-frames-20,
+ sub-frames-32,
+ sub-frames-40,
+ sub-frames-64,
+ sub-frames-80,
+ spare6,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+UE-DTX-Cycle1-10ms ::= ENUMERATED {
+ sub-frames-1,
+ sub-frames-5,
+ sub-frames-10,
+ sub-frames-20 }
+
+UE-DTX-Cycle1-2ms ::= ENUMERATED {
+ sub-frames-1,
+ sub-frames-4,
+ sub-frames-5,
+ sub-frames-8,
+ sub-frames-10,
+ sub-frames-16,
+ sub-frames-20,
+ spare1 }
+
+UE-DTX-Cycle2-10ms ::= ENUMERATED {
+ sub-frames-5,
+ sub-frames-10,
+ sub-frames-20,
+ sub-frames-40,
+ sub-frames-80,
+ sub-frames-160,
+ spare2,
+ spare1 }
+
+UE-DTX-Cycle2-2ms ::= ENUMERATED {
+ sub-frames-4,
+ sub-frames-5,
+ sub-frames-8,
+ sub-frames-10,
+ sub-frames-16,
+ sub-frames-20,
+ sub-frames-32,
+ sub-frames-40,
+ sub-frames-64,
+ sub-frames-80,
+ sub-frames-128,
+ sub-frames-160,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+UE-DTX-Cycle2-2ms-Secondary ::= ENUMERATED {
+ sub-frames-4,
+ sub-frames-5,
+ sub-frames-8,
+ sub-frames-10,
+ sub-frames-16,
+ sub-frames-20,
+ sub-frames-32,
+ sub-frames-40,
+ sub-frames-64,
+ sub-frames-80,
+ sub-frames-128,
+ sub-frames-160,
+ sub-frames-256,
+ sub-frames-320,
+ sub-frames-512,
+ sub-frames-640,
+ sub-frames-1024,
+ sub-frames-1280,
+ spare14,
+ spare13,
+ spare12,
+ spare11,
+ spare10,
+ spare9,
+ spare8,
+ spare7,
+ spare6,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+UE-DTX-Cycle2InactivityThreshold ::= ENUMERATED {
+ e-dch-tti-1,
+ e-dch-tti-4,
+ e-dch-tti-8,
+ e-dch-tti-16,
+ e-dch-tti-32,
+ e-dch-tti-64,
+ e-dch-tti-128,
+ e-dch-tti-256,
+ spare8,
+ spare7,
+ spare6,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+UE-DTX-long-preamble-length ::= ENUMERATED {
+ slots-4,
+ slots-15 }
+
+UE-DTX-DRX-Offset ::= INTEGER (0..159)
+
+UE-GrantMonitoring-InactivityThreshold ::= ENUMERATED {
+ e-dch-tti-0,
+ e-dch-tti-1,
+ e-dch-tti-2,
+ e-dch-tti-4,
+ e-dch-tti-8,
+ e-dch-tti-16,
+ e-dch-tti-32,
+ e-dch-tti-64,
+ e-dch-tti-128,
+ e-dch-tti-256,
+ spare6,
+ spare5,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+UL-16QAM-Config ::= SEQUENCE {
+ ul-16QAM-Settings UL-16QAM-Settings OPTIONAL,
+ e-TFCI-TableIndex E-TFCI-TableIndex OPTIONAL,
+ mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL
+}
+
+UL-16QAM-Settings ::= SEQUENCE {
+ beta-Ed-Gain-E-AGCH-Table-Selection INTEGER (0..1)
+}
+
+UL-64QAM-Config ::= SEQUENCE {
+ ul-64QAM-Settings UL-64QAM-Settings OPTIONAL,
+ mac-is-i-resetIndicator ENUMERATED { true } OPTIONAL
+}
+
+UL-64QAM-Settings ::= SEQUENCE {
+ beta-Ed-Gain-E-AGCH-Table-Selection INTEGER (0..1)
+}
+
+UL-CCTrCH ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ ul-TargetSIR UL-TargetSIR,
+ timeInfo TimeInfo,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL
+}
+
+UL-CCTrCH-r4 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD
+ -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR,
+ timeInfo TimeInfo,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes-LCR-r4 OPTIONAL
+ }
+ }
+}
+
+UL-CCTrCH-r7 ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain DEFAULT 1,
+ -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD
+ -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR,
+ timeInfo TimeInfo,
+ commonTimeslotInfo CommonTimeslotInfo OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes-VHCR OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes-LCR-r7 OPTIONAL
+ }
+ }
+}
+
+UL-CCTrCHList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ UL-CCTrCH
+
+UL-CCTrCHList-r4 ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ UL-CCTrCH-r4
+
+UL-CCTrCHList-r7 ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ UL-CCTrCH-r7
+
+UL-CCTrCHListToRemove ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ TFCS-IdentityPlain
+
+UL-CCTrChTPCList ::= SEQUENCE (SIZE (0..maxCCTrCH)) OF
+ TFCS-Identity
+
+UL-ChannelRequirement ::= CHOICE {
+ ul-DPCH-Info UL-DPCH-Info,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received the UE behaviour is not specified.
+ dummy CPCH-SetInfo
+}
+
+UL-ChannelRequirement-r4 ::= CHOICE {
+ ul-DPCH-Info UL-DPCH-Info-r4,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received the UE behaviour is not specified.
+ dummy CPCH-SetInfo
+}
+
+UL-ChannelRequirement-r5 ::= CHOICE {
+ ul-DPCH-Info UL-DPCH-Info-r5,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received the UE behaviour is not specified.
+ dummy CPCH-SetInfo
+}
+
+-- Note: the reference to CPCH in the element name below is incorrect. The name is not
+-- changed to keep it aligned with R99.
+UL-ChannelRequirementWithCPCH-SetID ::= CHOICE {
+ ul-DPCH-Info UL-DPCH-Info,
+ -- dummy1 and dummy 2 are not used in this version of the specification, they should
+ -- not be sent and if received the UE behaviour is not specified.
+ dummy1 CPCH-SetInfo,
+ dummy2 CPCH-SetID
+}
+
+-- Note: the reference to CPCH in the element name below is incorrect. The name is not
+-- changed to keep it aligned with R99.
+UL-ChannelRequirementWithCPCH-SetID-r4 ::= CHOICE {
+ ul-DPCH-Info UL-DPCH-Info-r4,
+ -- dummy1 and dummy2 are not used in this version of the specification, they
+ -- should not be sent and if received the UE behaviour is not specified.
+ dummy1 CPCH-SetInfo,
+ dummy2 CPCH-SetID
+}
+
+-- Note: the reference to CPCH in the element name below is incorrect. The name is not
+-- changed to keep it aligned with R99.
+UL-ChannelRequirementWithCPCH-SetID-r5 ::= CHOICE {
+ ul-DPCH-Info UL-DPCH-Info-r5,
+ -- dummy1 and dummy2 are not used in this version of the specification, they should
+ -- not be sent and if received the UE behaviour is not specified.
+ dummy1 CPCH-SetInfo,
+ dummy2 CPCH-SetID
+}
+
+
+UL-CLTD-InfoFDD ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ s-dpcch-Info S-DPCCH-Information,
+ initial-CLTD-ActivationState ENUMERATED { first-state, second-state } OPTIONAL,
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL
+ }
+ }
+}
+
+UL-CompressedModeMethod ::= ENUMERATED {
+ sf-2,
+ higherLayerScheduling }
+
+UL-DL-Mode ::= CHOICE {
+ ul UL-CompressedModeMethod,
+ dl DL-CompressedModeMethod,
+ ul-and-dl SEQUENCE {
+ ul UL-CompressedModeMethod,
+ dl DL-CompressedModeMethod
+ }}
+
+UL-DPCCH-SlotFormat ::= ENUMERATED {
+ slf0, slf1, slf2 }
+
+UL-DPCH-CodeInfoForCommonEDCH ::= SEQUENCE {
+ ul-DPCCHscramblingCodeType ScramblingCodeType,
+ ul-DPCCHscramblingCode UL-ScramblingCode OPTIONAL
+}
+
+UL-DPCH-Info ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ scramblingCodeType ScramblingCodeType,
+ scramblingCode UL-ScramblingCode,
+ numberOfDPDCH NumberOfDPDCH DEFAULT 1,
+ spreadingFactor SpreadingFactor,
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL,
+ puncturingLimit PuncturingLimit
+ },
+ tdd SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvanceControl OPTIONAL,
+ ul-CCTrCHList UL-CCTrCHList OPTIONAL,
+ ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL
+ }
+ }
+}
+
+UL-DPCH-Info-r4 ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r4 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ scramblingCodeType ScramblingCodeType,
+ scramblingCode UL-ScramblingCode,
+ numberOfDPDCH NumberOfDPDCH DEFAULT 1,
+ spreadingFactor SpreadingFactor,
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL,
+ puncturingLimit PuncturingLimit
+ },
+ tdd SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvanceControl-r4 OPTIONAL,
+ ul-CCTrCHList UL-CCTrCHList-r4 OPTIONAL,
+ ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL
+ }
+ }
+}
+
+UL-DPCH-Info-r5 ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r5 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ scramblingCodeType ScramblingCodeType,
+ scramblingCode UL-ScramblingCode,
+ numberOfDPDCH NumberOfDPDCH DEFAULT 1,
+ spreadingFactor SpreadingFactor,
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL,
+ puncturingLimit PuncturingLimit
+ },
+ tdd SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvanceControl-r4 OPTIONAL,
+ ul-CCTrCHList UL-CCTrCHList-r4 OPTIONAL,
+ ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL
+ }
+ }
+}
+
+UL-DPCH-Info-r6 ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r6 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ scramblingCodeType ScramblingCodeType,
+ scramblingCode UL-ScramblingCode,
+ dpdchPresence CHOICE {
+ present SEQUENCE {
+ numberOfDPDCH NumberOfDPDCH DEFAULT 1,
+ spreadingFactor SpreadingFactor,
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL,
+ puncturingLimit PuncturingLimit
+ },
+ notPresent SEQUENCE {
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL
+ }
+ }
+ },
+ tdd SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvanceControl-r4 OPTIONAL,
+ ul-CCTrCHList UL-CCTrCHList-r4 OPTIONAL,
+ ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL
+ }
+ }
+}
+
+UL-DPCH-Info-r7 ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r7 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ scramblingCodeType ScramblingCodeType,
+ scramblingCode UL-ScramblingCode,
+ dpdchPresence CHOICE {
+ present SEQUENCE {
+ numberOfDPDCH NumberOfDPDCH DEFAULT 1,
+ spreadingFactor SpreadingFactor,
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL,
+ numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL,
+ puncturingLimit PuncturingLimit
+ },
+ notPresent SEQUENCE {
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL,
+ numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL
+ }
+ }
+ },
+ tdd SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvanceControl-r7 OPTIONAL,
+ ul-CCTrCHList UL-CCTrCHList-r7 OPTIONAL,
+ ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL
+ }
+ }
+}
+
+UL-DPCH-Info-r11 ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r11 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ scramblingCodeType ScramblingCodeType,
+ scramblingCode UL-ScramblingCode,
+ dpdchPresence CHOICE {
+ present SEQUENCE {
+ numberOfDPDCH NumberOfDPDCH DEFAULT 1,
+ spreadingFactor SpreadingFactor,
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL,
+ numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL,
+ puncturingLimit PuncturingLimit
+ },
+ notPresent SEQUENCE {
+ tfci-Existence BOOLEAN,
+ -- numberOfFBI-Bits is conditional based on history
+ numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL,
+ numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL
+ }
+ }
+ },
+ tdd SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvanceControl-r7 OPTIONAL,
+ ul-CCTrCHList UL-CCTrCHList-r7 OPTIONAL,
+ ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL
+ }
+ }
+}
+
+UL-DPCH-InfoPostFDD ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfoPostFDD,
+ scramblingCodeType ScramblingCodeType,
+ reducedScramblingCodeNumber ReducedScramblingCodeNumber,
+ spreadingFactor SpreadingFactor
+
+}
+
+UL-DPCH-InfoPostTDD ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfoPostTDD,
+ ul-TimingAdvance UL-TimingAdvanceControl OPTIONAL,
+ ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes
+}
+
+UL-DPCH-InfoPostTDD-LCR-r4 ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfoPostTDD-LCR-r4,
+ ul-TimingAdvance UL-TimingAdvanceControl-LCR-r4 OPTIONAL,
+ ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes-LCR-r4
+}
+
+UL-DPCH-InfoPredef ::= SEQUENCE {
+ ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfoPredef,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ tfci-Existence BOOLEAN,
+ puncturingLimit PuncturingLimit
+ },
+ tdd SEQUENCE {
+ commonTimeslotInfo CommonTimeslotInfo
+ }
+ }
+}
+
+UL-DPCH-InfoPredef-v770ext ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL
+ },
+ tdd NULL }
+}
+
+UL-DPCH-PowerControlInfo ::= CHOICE {
+ fdd SEQUENCE {
+ dpcch-PowerOffset DPCCH-PowerOffset,
+ pc-Preamble PC-Preamble,
+ sRB-delay SRB-delay,
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm
+ },
+ tdd SEQUENCE {
+ ul-TargetSIR UL-TargetSIR OPTIONAL,
+ ul-OL-PC-Signalling CHOICE {
+ broadcast-UL-OL-PC-info NULL,
+ individuallySignalled SEQUENCE {
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ dpch-ConstantValue ConstantValueTdd,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ } OPTIONAL
+ }
+}
+
+UL-DPCH-PowerControlInfo-r4 ::= CHOICE {
+ fdd SEQUENCE {
+ dpcch-PowerOffset DPCCH-PowerOffset,
+ pc-Preamble PC-Preamble,
+ sRB-delay SRB-delay,
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm
+ },
+ tdd SEQUENCE {
+ -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD
+ -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR OPTIONAL,
+ ul-OL-PC-Signalling CHOICE {
+ broadcast-UL-OL-PC-info NULL,
+ individuallySignalled SEQUENCE {
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ dpch-ConstantValue ConstantValue
+ },
+ tdd128 SEQUENCE {
+ tpc-StepSize TPC-StepSizeTDD
+ }
+ },
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+}
+
+UL-DPCH-PowerControlInfo-r5 ::= CHOICE {
+ fdd SEQUENCE {
+ dpcch-PowerOffset DPCCH-PowerOffset,
+ pc-Preamble PC-Preamble,
+ sRB-delay SRB-delay,
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm,
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL
+ },
+ tdd SEQUENCE {
+ -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD
+ -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR OPTIONAL,
+ ul-OL-PC-Signalling CHOICE {
+ broadcast-UL-OL-PC-info NULL,
+ individuallySignalled SEQUENCE {
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ dpch-ConstantValue ConstantValue
+ },
+ tdd128 SEQUENCE {
+ tpc-StepSize TPC-StepSizeTDD
+ }
+ },
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+}
+
+UL-DPCH-PowerControlInfo-r6 ::= CHOICE {
+ fdd SEQUENCE {
+ dpcch-PowerOffset DPCCH-PowerOffset,
+ pc-Preamble PC-Preamble,
+ sRB-delay SRB-delay,
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm,
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode
+ },
+ tdd SEQUENCE {
+ -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD
+ -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR OPTIONAL,
+ ul-OL-PC-Signalling CHOICE {
+ broadcast-UL-OL-PC-info NULL,
+ individuallySignalled SEQUENCE {
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ dpch-ConstantValue ConstantValue
+ },
+ tdd128 SEQUENCE {
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ tpc-StepSize TPC-StepSizeTDD
+ }
+ },
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+}
+
+UL-DPCH-PowerControlInfo-r7 ::= CHOICE {
+ fdd SEQUENCE {
+ dpcch-PowerOffset DPCCH-PowerOffset,
+ pc-Preamble PC-Preamble,
+ sRB-delay SRB-delay,
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm,
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode
+ },
+ tdd SEQUENCE {
+ -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD
+ -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR OPTIONAL,
+ ul-OL-PC-Signalling CHOICE {
+ broadcast-UL-OL-PC-info NULL,
+ individuallySignalled SEQUENCE {
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ dpch-ConstantValue ConstantValue
+ },
+ tdd768 SEQUENCE {
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ dpch-ConstantValue ConstantValue
+ },
+ tdd128 SEQUENCE {
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ tpc-StepSize TPC-StepSizeTDD
+ }
+ },
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+}
+
+UL-DPCH-PowerControlInfo-r11 ::= CHOICE {
+ fdd SEQUENCE {
+ dpcch-PowerOffset DPCCH-PowerOffset,
+ pc-Preamble PC-Preamble,
+ sRB-delay SRB-delay,
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm,
+ deltaACK DeltaACK-r11 OPTIONAL,
+ deltaNACK DeltaNACK-r11 OPTIONAL,
+ ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL,
+ ack-NACK-repetition-factor-assisting ACK-NACK-repetitionFactor OPTIONAL,
+ harq-Preamble-Mode HARQ-Preamble-Mode
+ },
+ tdd SEQUENCE {
+ -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD
+ -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR OPTIONAL,
+ ul-OL-PC-Signalling CHOICE {
+ broadcast-UL-OL-PC-info NULL,
+ individuallySignalled SEQUENCE {
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ dpch-ConstantValue ConstantValue
+ },
+ tdd768 SEQUENCE {
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ dpch-ConstantValue ConstantValue
+ },
+ tdd128 SEQUENCE {
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ tpc-StepSize TPC-StepSizeTDD
+ }
+ },
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+}
+
+UL-DPCHpowerControlInfoConcurrentTTI ::= SEQUENCE {
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL
+}
+
+UL-DPCHpowerControlInfoForCommonEDCH ::= SEQUENCE {
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm,
+ deltaACK DeltaACK OPTIONAL,
+ deltaNACK DeltaNACK OPTIONAL,
+ ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL
+}
+
+UL-DPCH-PowerControlInfoPostFDD ::= SEQUENCE {
+ -- DPCCH-PowerOffset2 has a smaller range to save bits
+ dpcch-PowerOffset DPCCH-PowerOffset2,
+ pc-Preamble PC-Preamble,
+ sRB-delay SRB-delay
+}
+
+UL-DPCH-PowerControlInfoPostTDD ::= SEQUENCE {
+ ul-TargetSIR UL-TargetSIR,
+ ul-TimeslotInterference TDD-UL-Interference
+}
+
+UL-DPCH-PowerControlInfoPostTDD-LCR-r4 ::= SEQUENCE {
+ -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD
+ -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120)
+ ul-TargetSIR UL-TargetSIR
+}
+
+UL-DPCH-PowerControlInfoPredef ::= CHOICE {
+ fdd SEQUENCE {
+ -- TABULAR: TPC step size nested inside PowerControlAlgorithm
+ powerControlAlgorithm PowerControlAlgorithm
+ },
+ tdd SEQUENCE {
+ -- dpch-ConstantValue shall be ignored if in 1.28Mcps TDD mode.
+ dpch-ConstantValue ConstantValueTdd
+ }
+}
+
+
+UL-EDCH-Information-ext ::= CHOICE {
+ fdd NULL,
+ tdd SEQUENCE {
+ non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD-ext OPTIONAL
+ }
+}
+
+UL-EDCH-Information-r6 ::= SEQUENCE {
+ mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL,
+ e-DPCCH-Info E-DPCCH-Info OPTIONAL,
+ e-DPDCH-Info E-DPDCH-Info OPTIONAL,
+ schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL
+}
+
+UL-EDCH-Information-r7 ::= SEQUENCE {
+ mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ e-DPCCH-Info E-DPCCH-Info-r7 OPTIONAL,
+ e-DPDCH-Info E-DPDCH-Info-r7 OPTIONAL,
+ schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL,
+ ul-16QAM-Settings UL-16QAM-Settings OPTIONAL
+ },
+ tdd SEQUENCE {
+ e-RUCCH-Info E-RUCCH-Info OPTIONAL,
+ e-PUCH-Info E-PUCH-Info OPTIONAL,
+ non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD OPTIONAL
+ }
+ }
+}
+
+UL-EDCH-Information-r8 ::= SEQUENCE {
+ mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ e-DPCCH-Info E-DPCCH-Info-r7 OPTIONAL,
+ e-DPDCH-Info E-DPDCH-Info-r8 OPTIONAL,
+ schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL,
+ ul-16QAM-Settings UL-16QAM-Settings OPTIONAL
+ },
+ tdd SEQUENCE {
+ e-RUCCH-Info E-RUCCH-Info OPTIONAL,
+ e-PUCH-Info E-PUCH-Info OPTIONAL,
+ non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD OPTIONAL
+ }
+ }
+}
+
+UL-EDCH-Information-r9 ::= SEQUENCE {
+ mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ e-DPCCH-Info E-DPCCH-Info-r7 OPTIONAL,
+ e-DPDCH-Info E-DPDCH-Info-r8 OPTIONAL,
+ schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL,
+ ul-16QAM-Settings UL-16QAM-Settings OPTIONAL
+ },
+ tdd SEQUENCE {
+ e-RUCCH-Info E-RUCCH-Info OPTIONAL,
+ e-PUCH-Info E-PUCH-Info OPTIONAL,
+ non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD-r9 OPTIONAL
+ }
+ }
+}
+
+UL-EDCH-Information-r11 ::= SEQUENCE {
+ mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ e-DPCCH-Info E-DPCCH-Info-r7 OPTIONAL,
+ e-DPDCH-Info E-DPDCH-Info-r8 OPTIONAL,
+ ul-MIMO-Info UL-MIMO-InfoFDD OPTIONAL,
+ schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL,
+ ul-16QAM-Settings UL-16QAM-Settings OPTIONAL,
+ ul-64QAM-Settings UL-64QAM-Settings OPTIONAL
+ },
+ tdd SEQUENCE {
+ e-RUCCH-Info E-RUCCH-Info OPTIONAL,
+ e-PUCH-Info E-PUCH-Info OPTIONAL,
+ non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD-r9 OPTIONAL
+ }
+ }
+}
+
+UL-MIMO-InfoFDD ::= SEQUENCE {
+ configurationInfo CHOICE {
+ continue NULL,
+ newConfiguration SEQUENCE {
+ s-e-dpcch-power-offset INTEGER(0..17),
+ rank2-minimum-E-TFCI E-DCH-MinimumSet-E-TFCI,
+ inter-stream-compensation INTEGER(0..15) OPTIONAL
+ }
+ }
+}
+
+UL-MulticarrierEDCH-InfolistItem-TDD128 ::= SEQUENCE {
+ uarfcn UARFCN,
+ prxdes-base INTEGER (-112..-50),
+ e-PUCH-info E-PUCH-Info-MulticarrierEDCH-TDD128 OPTIONAL,
+ e-AGCH-info E-AGCH-Information-TDD128 OPTIONAL,
+ e-HICH-info E-HICH-Information-TDD128 OPTIONAL
+}
+
+UL-MulticarrierEDCH-Infolist-TDD128 ::= SEQUENCE (SIZE (1..maxTDD128Carrier-1)) OF
+ UL-MulticarrierEDCH-InfolistItem-TDD128
+
+UL-MulticarrierEDCH-Deletelist-TDD128 ::= SEQUENCE (SIZE (1..maxTDD128Carrier-1)) OF
+ UARFCN
+
+UL-MulticarrierEDCHInfo-TDD128 ::= SEQUENCE {
+ configuration-info CHOICE {
+ continue NULL,
+ newConfiguration UL-MulticarrierEDCH-NewConfigurationInfo-TDD128
+ }
+}
+
+UL-MulticarrierEDCH-NewConfigurationInfo-TDD128 ::= SEQUENCE {
+ tsn-Length ENUMERATED { tsn-14bits } OPTIONAL,
+ ul-MulticarrierEDCH-Infolist UL-MulticarrierEDCH-Infolist-TDD128 OPTIONAL,
+ ul-MulticarrierEDCH-Deletelist UL-MulticarrierEDCH-Deletelist-TDD128 OPTIONAL
+}
+
+UL-Interference ::= INTEGER (-110..-70)
+
+UL-ScramblingCode ::= INTEGER (0..16777215)
+
+
+UL-SynchronisationParameters-r4 ::= SEQUENCE {
+ stepSize INTEGER (1..8),
+ frequency INTEGER (1..8)
+}
+
+-- Actual value UL-TargetSIR = (IE value * 0.5) - 11
+UL-TargetSIR ::= INTEGER (0..62)
+
+UL-TimingAdvance ::= INTEGER (0..63)
+
+UL-TimingAdvanceControl ::= CHOICE {
+ disabled NULL,
+ enabled SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvance OPTIONAL,
+ activationTime ActivationTime OPTIONAL
+ }
+}
+
+UL-TimingAdvanceControl-r4 ::= CHOICE {
+ disabled NULL,
+ enabled SEQUENCE {
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvance OPTIONAL,
+ activationTime ActivationTime OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL,
+ synchronisationParameters SynchronisationParameters-r4 OPTIONAL
+ }
+ }
+ }
+}
+
+UL-TimingAdvanceControl-r7 ::= CHOICE {
+ disabled NULL,
+ enabled SEQUENCE {
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvance OPTIONAL,
+ ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL,
+ activationTime ActivationTime OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL,
+ activationTime ActivationTime OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL,
+ synchronisationParameters SynchronisationParameters-r4 OPTIONAL
+ }
+ }
+ }
+}
+
+UL-TimingAdvanceControl-LCR-r4 ::= CHOICE {
+ disabled NULL,
+ enabled SEQUENCE {
+ ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL,
+ synchronisationParameters SynchronisationParameters-r4 OPTIONAL
+ }
+}
+
+UL-TransModeSwitchingParam ::= SEQUENCE {
+ k INTEGER (1..32),
+ l INTEGER (1..32),
+ m INTEGER (1..32)
+}
+
+UL-TS-ChannelisationCode ::= ENUMERATED {
+ cc1-1, cc2-1, cc2-2,
+ cc4-1, cc4-2, cc4-3, cc4-4,
+ cc8-1, cc8-2, cc8-3, cc8-4,
+ cc8-5, cc8-6, cc8-7, cc8-8,
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16 }
+
+UL-TS-ChannelisationCodeList ::= SEQUENCE (SIZE (1..2)) OF
+ UL-TS-ChannelisationCode
+
+UL-TS-ChannelisationCodeList-r7 ::= SEQUENCE (SIZE (1..2)) OF
+ SEQUENCE {
+ ul-TS-Channelisation-Code UL-TS-ChannelisationCode,
+ plcch-info PLCCH-Info OPTIONAL
+}
+
+UL-TS-ChannelisationCode-VHCR ::= ENUMERATED {
+ cc1-1, cc2-1, cc2-2,
+ cc4-1, cc4-2, cc4-3, cc4-4,
+ cc8-1, cc8-2, cc8-3, cc8-4,
+ cc8-5, cc8-6, cc8-7, cc8-8,
+ cc16-1, cc16-2, cc16-3, cc16-4,
+ cc16-5, cc16-6, cc16-7, cc16-8,
+ cc16-9, cc16-10, cc16-11, cc16-12,
+ cc16-13, cc16-14, cc16-15, cc16-16,
+ cc32-1, cc32-2, cc32-3, cc32-4,
+ cc32-5, cc32-6, cc32-7, cc32-8,
+ cc32-9, cc32-10, cc32-11, cc32-12,
+ cc32-13, cc32-14, cc32-15, cc32-16,
+ cc32-17, cc32-18, cc32-19, cc32-20,
+ cc32-21, cc32-22, cc32-23, cc32-24,
+ cc32-25, cc32-26, cc32-27, cc32-28,
+ cc32-29, cc32-30, cc32-31, cc32-32 }
+
+UL-TS-ChannelisationCodeList-VHCR ::= SEQUENCE (SIZE (1..2)) OF
+ UL-TS-ChannelisationCode-VHCR
+
+Uplink-DPCCH-Slot-Format-Information ::= ENUMERATED {
+ slot-format-1,
+ -- dummy is not used in this version of
+ -- specification, it should not be sent and if
+ -- received it should be ignored.
+ dummy,
+ slot-format-4,
+ spare1 }
+
+UplinkAdditionalTimeslots ::= SEQUENCE {
+ parameters CHOICE {
+ sameAsLast SEQUENCE {
+ timeslotNumber TimeslotNumber
+ },
+ newParameters SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo,
+ ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList
+ }
+ }
+}
+
+UplinkAdditionalTimeslots-LCR-r4 ::= SEQUENCE {
+ parameters CHOICE {
+ sameAsLast SEQUENCE {
+ timeslotNumber TimeslotNumber
+ },
+ newParameters SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-LCR-r4,
+ ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList
+ }
+ }
+}
+
+UplinkAdditionalTimeslots-LCR-r7 ::= SEQUENCE {
+ parameters CHOICE {
+ sameAsLast SEQUENCE {
+ timeslotNumber TimeslotNumber
+ -- plcch-info assigned as previously defined slot
+ },
+ newParameters SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-LCR-r4,
+ ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList-r7
+ }
+ }
+}
+
+UplinkAdditionalTimeslots-VHCR ::= SEQUENCE {
+ parameters CHOICE {
+ sameAsLast SEQUENCE {
+ timeslotNumber TimeslotNumber
+ },
+ newParameters SEQUENCE {
+ individualTimeslotInfo IndividualTimeslotInfo-VHCR,
+ ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList
+ }
+ }
+}
+
+UplinkTimeslotsCodes ::= SEQUENCE {
+ dynamicSFusage BOOLEAN,
+ firstIndividualTimeslotInfo IndividualTimeslotInfo,
+ ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList,
+ moreTimeslots CHOICE {
+ noMore NULL,
+ additionalTimeslots CHOICE {
+ consecutive SEQUENCE {
+ numAdditionalTimeslots INTEGER (1..maxTS-1)
+ },
+ timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF
+ UplinkAdditionalTimeslots
+ }
+ }
+}
+
+UplinkTimeslotsCodes-VHCR ::= SEQUENCE {
+ dynamicSFusage BOOLEAN,
+ firstIndividualTimeslotInfo IndividualTimeslotInfo-VHCR,
+ ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList-VHCR,
+ moreTimeslots CHOICE {
+ noMore NULL,
+ additionalTimeslots CHOICE {
+ consecutive SEQUENCE {
+ numAdditionalTimeslots INTEGER (1..maxTS-1)
+ },
+ timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF
+ UplinkAdditionalTimeslots-VHCR
+ }
+ }
+}
+
+UplinkTimeslotsCodes-LCR-r4 ::= SEQUENCE {
+ dynamicSFusage BOOLEAN,
+ firstIndividualTimeslotInfo IndividualTimeslotInfo-LCR-r4,
+ ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList,
+ moreTimeslots CHOICE {
+ noMore NULL,
+ additionalTimeslots CHOICE {
+ consecutive SEQUENCE {
+ numAdditionalTimeslots INTEGER (1..maxTS-LCR-1)
+ },
+ timeslotList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF
+ UplinkAdditionalTimeslots-LCR-r4
+ }
+ }
+}
+
+UplinkTimeslotsCodes-LCR-r7 ::= SEQUENCE {
+ dynamicSFusage BOOLEAN,
+ firstIndividualTimeslotInfo IndividualTimeslotInfo-LCR-r4,
+ ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList-r7,
+ moreTimeslots CHOICE {
+ noMore NULL,
+ additionalTimeslots CHOICE {
+ consecutive SEQUENCE {
+ -- the choice of 'consecutive' is not needed because there is only 1 option.
+ numAdditionalTimeslots INTEGER (1..maxTS-LCR-1)
+ },
+ timeslotList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF
+ UplinkAdditionalTimeslots-LCR-r7
+ }
+ }
+}
+
+UpPCHposition-LCR ::= INTEGER (0..127)
+
+Wi-LCR ::= INTEGER (1..4)
+
+-- ***************************************************
+--
+-- MEASUREMENT INFORMATION ELEMENTS (10.3.7)
+--
+-- ***************************************************
+
+AcquisitionSatInfo ::= SEQUENCE {
+ satID SatID,
+ -- Actual value dopplerOthOrder = IE value * 2.5
+ doppler0thOrder INTEGER (-2048..2047),
+ extraDopplerInfo ExtraDopplerInfo OPTIONAL,
+ codePhase INTEGER (0..1022),
+ integerCodePhase INTEGER (0..19),
+ gps-BitNumber INTEGER (0..3),
+ codePhaseSearchWindow CodePhaseSearchWindow,
+ azimuthAndElevation AzimuthAndElevation OPTIONAL
+}
+
+AcquisitionSatInfo-va40ext ::= SEQUENCE {
+ azimuthAndElevation AzimuthAndElevation-va40ext OPTIONAL
+}
+
+AcquisitionSatInfo-r10 ::= SEQUENCE {
+ satID SatID,
+ -- Actual value dopplerOthOrder = IE value * 2.5
+ doppler0thOrder INTEGER (-2048..2047),
+ extraDopplerInfo ExtraDopplerInfo OPTIONAL,
+ codePhase INTEGER (0..1022),
+ integerCodePhase INTEGER (0..19),
+ gps-BitNumber INTEGER (0..3),
+ codePhaseSearchWindow CodePhaseSearchWindow,
+ azimuthAndElevation AzimuthAndElevation-r10 OPTIONAL
+}
+AcquisitionSatInfo-vc50ext ::= SEQUENCE {
+ extraDopplerInfoExtension ExtraDopplerInfoExtension OPTIONAL
+}
+
+AcquisitionSatInfo-r12 ::= SEQUENCE {
+ satID SatID,
+ -- Actual value dopplerOthOrder = IE value * 2.5
+ doppler0thOrder INTEGER (-2048..2047),
+ extraDopplerInfo ExtraDopplerInfo OPTIONAL,
+-- If the extraDopplerInfoExtension is present, the extraDopplerInfo should not be present
+ extraDopplerInfoExtension ExtraDopplerInfoExtension OPTIONAL,
+ codePhase INTEGER (0..1022),
+ integerCodePhase INTEGER (0..19),
+ gps-BitNumber INTEGER (0..3),
+ codePhaseSearchWindow CodePhaseSearchWindow,
+ azimuthAndElevation AzimuthAndElevation-r10 OPTIONAL
+}
+
+AcquisitionSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ AcquisitionSatInfo
+
+AcquisitionSatInfoList-va40ext ::= SEQUENCE (SIZE (1..maxSat)) OF
+ AcquisitionSatInfo-va40ext
+
+AcquisitionSatInfoList-r10 ::= SEQUENCE (SIZE (1..maxSat)) OF
+ AcquisitionSatInfo-r10
+
+AcquisitionSatInfoList-vc50ext ::= SEQUENCE (SIZE (1..maxSat)) OF
+ AcquisitionSatInfo-vc50ext
+
+AcquisitionSatInfoList-r12 ::= SEQUENCE (SIZE (1..maxSat)) OF
+ AcquisitionSatInfo-r12
+
+AdditionalMeasurementID-List ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasurementIdentity
+
+AdditionalMeasurementID-List-r9 ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasurementIdentity-r9
+
+AlmanacSatInfo ::= SEQUENCE {
+ dataID INTEGER (0..3),
+ satID SatID,
+ e BIT STRING (SIZE (16)),
+ t-oa BIT STRING (SIZE (8)),
+ deltaI BIT STRING (SIZE (16)),
+ omegaDot BIT STRING (SIZE (16)),
+ satHealth BIT STRING (SIZE (8)),
+ a-Sqrt BIT STRING (SIZE (24)),
+ omega0 BIT STRING (SIZE (24)),
+ m0 BIT STRING (SIZE (24)),
+ omega BIT STRING (SIZE (24)),
+ af0 BIT STRING (SIZE (11)),
+ af1 BIT STRING (SIZE (11))
+}
+
+AlmanacSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ AlmanacSatInfo
+
+ALM-BDSKeplerianSet ::= SEQUENCE {
+ sat-info-BDSkpList GANSS-SAT-Info-Almanac-BDSkpList
+}
+
+ALM-ECEFsbasAlmanacSet ::= SEQUENCE {
+ sat-info-SBASecefList GANSS-SAT-Info-Almanac-SBASecefList
+}
+
+ALM-GlonassAlmanacSet ::= SEQUENCE {
+ sat-info-GLOkpList GANSS-SAT-Info-Almanac-GLOkpList
+}
+
+ALM-keplerianParameters ::= SEQUENCE {
+ -- time of week by 600s steps
+ t-oa INTEGER (0..1023),
+ iod-a INTEGER (0..15),
+ sat-info-kpList GANSS-SAT-Info-Almanac-KpList
+}
+
+ALM-MidiAlmanacSet ::= SEQUENCE {
+ -- time of week by 4096s steps
+ t-oa INTEGER (0..147),
+ sat-info-MIDIkpList GANSS-SAT-Info-Almanac-MIDIkpList
+}
+
+ALM-NAVKeplerianSet ::= SEQUENCE {
+ -- time of week by 4096s steps
+ t-oa INTEGER (0..147),
+ sat-info-NAVkpList GANSS-SAT-Info-Almanac-NAVkpList
+}
+
+ALM-ReducedKeplerianSet ::= SEQUENCE {
+ -- time of week by 4096s steps
+ t-oa INTEGER (0..147),
+ sat-info-REDkpList GANSS-SAT-Info-Almanac-REDkpList
+}
+
+AuxInfoGANSS-ID1 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF AuxInfoGANSS-ID1-element
+
+AuxInfoGANSS-ID1-element ::= SEQUENCE {
+ svID INTEGER(0..63),
+ signalsAvailable BIT STRING (SIZE(8))
+}
+
+AuxInfoGANSS-ID3 ::= SEQUENCE (SIZE (1.. maxGANSSSat)) OF AuxInfoGANSS-ID3-element
+
+AuxInfoGANSS-ID3-element ::= SEQUENCE {
+ svID INTEGER (0..63),
+ signalsAvailable BIT STRING (SIZE (8)),
+ channelNumber INTEGER (-7..13)
+}
+
+AverageRLC-BufferPayload ::= ENUMERATED {
+ pla0, pla4, pla8, pla16, pla32,
+ pla64, pla128, pla256, pla512,
+ pla1024, pla2k, pla4k, pla8k, pla16k,
+ pla32k, pla64k, pla128k, pla256k,
+ pla512k, pla1024k, spare12, spare11,
+ spare10, spare9, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2, spare1 }
+
+AzimuthAndElevation ::= SEQUENCE {
+ -- Actual value azimuth = IE value * 11.25 + IE value of azimuthLSB * 0.703125 degrees
+ azimuth INTEGER (0..31),
+ -- Actual value elevation = IE value * 11.25 + IE value of elevationLSB * 0.703125 degrees
+ elevation INTEGER (0..7)
+}
+
+AzimuthAndElevation-va40ext ::= SEQUENCE {
+ azimuthLSB INTEGER (0..15),
+ elevationLSB INTEGER (0..15)
+}
+
+AzimuthAndElevation-r10 ::= SEQUENCE {
+ -- Actual value azimuth = IE value * 11.25 + IE value of azimuthLSB * 0.703125 degrees
+ azimuth INTEGER (0..31),
+ -- Actual value elevation = IE value * 11.25 + IE value of elevationLSB * 0.703125 degrees
+ elevation INTEGER (0..7),
+ azimuthLSB INTEGER (0..15),
+ elevationLSB INTEGER (0..15)
+}
+
+BadSatList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ INTEGER (0..63)
+
+Frequency-Band ::= ENUMERATED {
+ dcs1800BandUsed, pcs1900BandUsed }
+
+BCCH-ARFCN ::= INTEGER (0..1023)
+
+BDSclockModel ::= SEQUENCE {
+ bdsAODC BIT STRING (SIZE (5)),
+ bdsToc BIT STRING (SIZE (17)),
+ bdsa0 BIT STRING (SIZE (24)),
+ bdsa1 BIT STRING (SIZE (22)),
+ bdsa2 BIT STRING (SIZE (11)),
+ bdsTgd1 BIT STRING (SIZE (10))
+}
+
+BDS-IGPInfoList ::= SEQUENCE (SIZE (1..maxIGPInfo)) OF SEQUENCE {
+ bds-IGPNumber INTEGER (1..320),
+ bds-VerticalDelay BIT STRING (SIZE (9)),
+ bds-GIVEI BIT STRING (SIZE (4))
+}
+
+DBDS-InfoList ::= SEQUENCE (SIZE (1..maxSgnType)) OF DBDS-Info
+
+DBDS-Info ::= SEQUENCE {
+ bds-SignalID GANSS-Signal-Id OPTIONAL,
+ dbds-SignalInfoList DBDS-SignalInfoList
+}
+
+DBDS-SignalInfoList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ DBDS-SignalInfo
+
+DBDS-SignalInfo ::= SEQUENCE {
+ svID INTEGER(0..63),
+ bds-UDREI INTEGER (0..15),
+ bds-RURAI INTEGER (0..15),
+ bds-ECC-DeltaT BIT STRING (SIZE (13))
+}
+
+BLER-MeasurementResults ::= SEQUENCE {
+ transportChannelIdentity TransportChannelIdentity,
+ dl-TransportChannelBLER DL-TransportChannelBLER OPTIONAL
+}
+
+BLER-MeasurementResultsList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ BLER-MeasurementResults
+
+BLER-TransChIdList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ TransportChannelIdentity
+
+BSIC-VerificationRequired ::= ENUMERATED {
+ required, notRequired }
+
+BSICReported ::= CHOICE {
+ -- Value maxCellMeas is not allowed for verifiedBSIC
+ verifiedBSIC INTEGER (0..maxCellMeas),
+ nonVerifiedBSIC BCCH-ARFCN
+}
+
+BurstModeParameters ::= SEQUENCE {
+ burstStart INTEGER (0..15),
+ burstLength INTEGER (10..25),
+ burstFreq INTEGER (1..16)
+}
+
+CellDCH-ReportCriteria ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria,
+ periodicalReportingCriteria PeriodicalReportingCriteria
+}
+
+CellDCH-ReportCriteria-LCR-r4 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-LCR-r4,
+ periodicalReportingCriteria PeriodicalReportingCriteria
+}
+
+CellDCHMeasOccasionPattern-LCR ::= SEQUENCE {
+ patternIdentifier INTEGER(0..maxMeasOccasionPattern-1),
+ statusFlag ENUMERATED {
+ activate, deactivate},
+ measurementPurpose BIT STRING (SIZE (5)) OPTIONAL,
+ measurementOccasionPatternParameter MeasurementOccasionPatternParameter OPTIONAL
+}
+CellDCHMeasOccasionInfo-TDD128-r9::= SEQUENCE {
+ cellDCHMeasOccasionSequenceList SEQUENCE (SIZE (1..maxMeasOccasionPattern)) OF
+ CellDCHMeasOccasionPattern-LCR
+}
+
+-- Actual value CellIndividualOffset = IE value * 0.5
+CellIndividualOffset ::= INTEGER (-20..20)
+
+
+CellInfo ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-Info,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList OPTIONAL,
+ readSFN-Indicator BOOLEAN
+ }
+ }
+}
+
+CellInfo-r4 ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-Info-r4,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList-r4 OPTIONAL,
+ readSFN-Indicator BOOLEAN
+
+ }
+ }
+}
+
+CellInfo-LCR-r8-ext ::= SEQUENCE {
+ cellSelectionReselectionInfo CellSelectReselectInfoMC-RSCP OPTIONAL
+}
+
+CellInfo-r9 ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-Info-r4,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList-r4 OPTIONAL,
+ readSFN-Indicator BOOLEAN
+ }
+ },
+ -- For 1.28 Mcps TDD, cellSelectionReselectionInfo is optional present when sent
+ -- in Measurement Control.For FDD, this IE is not needed.
+ cellSelectionReselectionInfo CellSelectReselectInfoMC-RSCP OPTIONAL
+}
+
+CellInfoListToBeExcluded::= SEQUENCE (SIZE (1..maxExcludedDetectedSetCells )) OF
+ PrimaryCPICH-Info
+
+CellInfoSI-RSCP ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-Info,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList OPTIONAL,
+ readSFN-Indicator BOOLEAN
+ }
+ },
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-RSCP OPTIONAL
+}
+
+CellInfoSI-RSCP-LCR-r4 ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ primaryCCPCH-Info PrimaryCCPCH-Info-LCR-r4,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList-LCR-r4 OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-RSCP OPTIONAL
+}
+
+CellInfoSI-ECN0 ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-Info,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList OPTIONAL,
+ readSFN-Indicator BOOLEAN
+ }
+ },
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-ECN0 OPTIONAL
+}
+
+CellInfoSI-ECN0-LCR-r4 ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ primaryCCPCH-Info PrimaryCCPCH-Info-LCR-r4,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList-LCR-r4 OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-ECN0 OPTIONAL
+}
+
+CellInfoSI-HCS-RSCP ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-Info,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList OPTIONAL,
+ readSFN-Indicator BOOLEAN
+ }
+ },
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-HCS-RSCP OPTIONAL
+}
+
+CellInfoSI-HCS-RSCP-LCR-r4 ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ primaryCCPCH-Info PrimaryCCPCH-Info-LCR-r4,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList-LCR-r4 OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-HCS-RSCP OPTIONAL
+}
+
+CellInfoSI-HCS-ECN0 ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info OPTIONAL,
+ primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ tx-DiversityIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ primaryCCPCH-Info PrimaryCCPCH-Info,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList OPTIONAL,
+ readSFN-Indicator BOOLEAN
+ }
+ },
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-HCS-ECN0 OPTIONAL
+}
+
+CellInfoSI-HCS-ECN0-LCR-r4 ::= SEQUENCE {
+ cellIndividualOffset CellIndividualOffset DEFAULT 0,
+ referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL,
+ primaryCCPCH-Info PrimaryCCPCH-Info-LCR-r4,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL,
+ timeslotInfoList TimeslotInfoList-LCR-r4 OPTIONAL,
+ readSFN-Indicator BOOLEAN,
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-HCS-ECN0 OPTIONAL
+}
+
+CellMeasuredResults ::= SEQUENCE {
+ cellIdentity CellIdentity OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SFN-SFN-ObsTimeDifference OPTIONAL,
+ cellSynchronisationInfo CellSynchronisationInfo OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cpich-Ec-N0 CPICH-Ec-N0 OPTIONAL,
+ cpich-RSCP CPICH-RSCP OPTIONAL,
+ pathloss Pathloss OPTIONAL
+ },
+ tdd SEQUENCE {
+ cellParametersID CellParametersID,
+ proposedTGSN TGSN OPTIONAL,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
+ pathloss Pathloss OPTIONAL,
+ timeslotISCP-List TimeslotISCP-List OPTIONAL
+ }
+ }
+}
+
+-- The IE is created in order to add missing DeltaRSCPPerCell IE from Rel-5.
+CellMeasuredResults-r9 ::= SEQUENCE {
+ cellIdentity CellIdentity OPTIONAL,
+ cellSynchronisationInfo CellSynchronisationInfo OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cpich-Ec-N0 CPICH-Ec-N0 OPTIONAL,
+ cpich-RSCP CPICH-RSCP OPTIONAL,
+ deltaRSCPPerCell DeltaRSCPPerCell OPTIONAL,
+ pathloss Pathloss OPTIONAL
+ },
+ tdd SEQUENCE {
+ cellParametersID CellParametersID,
+ proposedTGSN TGSN OPTIONAL,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
+ pathloss Pathloss OPTIONAL,
+ timeslotISCP-List TimeslotISCP-List OPTIONAL
+ }
+ }
+}
+
+CellMeasuredResults-v920ext ::= SEQUENCE {
+ csgIdentity CSG-Identity OPTIONAL,
+ csgMemberIndication ENUMERATED { member } OPTIONAL
+}
+
+CellMeasuredResults-vc50ext ::= SEQUENCE {
+ csg-MemberPLMNList CSG-MemberPLMNList OPTIONAL
+}
+
+CellMeasurementEventResults ::= CHOICE {
+ fdd SEQUENCE (SIZE (1..maxCellMeas)) OF
+ PrimaryCPICH-Info,
+ tdd SEQUENCE (SIZE (1..maxCellMeas)) OF
+ PrimaryCCPCH-Info
+}
+
+CellMeasurementEventResultsOnSecUlFreq ::= CHOICE {
+ fdd SEQUENCE (SIZE (1.. maxCellMeasOnSecULFreq)) OF
+ PrimaryCPICH-Info,
+ spare NULL
+}
+
+CellMeasurementEventResults-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ PrimaryCCPCH-Info-LCR-r4
+
+CellReportingQuantities ::= SEQUENCE {
+ -- dummy is not used in this version of the specification
+ -- and if received it should be ignored.
+ dummy SFN-SFN-OTD-Type,
+ cellIdentity-reportingIndicator BOOLEAN,
+ cellSynchronisationInfoReportingIndicator BOOLEAN,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ cpich-Ec-N0-reportingIndicator BOOLEAN,
+ cpich-RSCP-reportingIndicator BOOLEAN,
+ pathloss-reportingIndicator BOOLEAN
+ },
+ tdd SEQUENCE {
+ timeslotISCP-reportingIndicator BOOLEAN,
+ proposedTGSN-ReportingRequired BOOLEAN,
+ primaryCCPCH-RSCP-reportingIndicator BOOLEAN,
+ pathloss-reportingIndicator BOOLEAN
+ }
+ }
+}
+
+CellSelectReselectInfoMC-RSCP ::= SEQUENCE {
+ q-OffsetS-N Q-OffsetS-N DEFAULT 0,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ hcs-NeighbouringCellInformation-RSCP
+ HCS-NeighbouringCellInformation-RSCP OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ q-QualMin Q-QualMin OPTIONAL,
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ tdd SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ gsm SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ }
+ }
+}
+
+CellSelectReselectInfoSIB-11-12 ::= SEQUENCE {
+ q-Offset1S-N Q-OffsetS-N DEFAULT 0,
+ q-Offset2S-N Q-OffsetS-N OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ hcs-NeighbouringCellInformation-RSCP
+ HCS-NeighbouringCellInformation-RSCP OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ q-QualMin Q-QualMin OPTIONAL,
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ tdd SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ gsm SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ }
+ }
+}
+
+CellSelectReselectInfoSIB-11-12-RSCP ::= SEQUENCE {
+ q-OffsetS-N Q-OffsetS-N DEFAULT 0,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ q-QualMin Q-QualMin OPTIONAL,
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ tdd SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ gsm SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ }
+ }
+}
+
+CellSelectReselectInfoSIB-11-12-ECN0 ::= SEQUENCE {
+ q-Offset1S-N Q-OffsetS-N DEFAULT 0,
+ q-Offset2S-N Q-OffsetS-N DEFAULT 0,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ q-QualMin Q-QualMin OPTIONAL,
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ tdd SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ gsm SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ }
+ }
+}
+
+CellSelectReselectInfoSIB-11-12-HCS-RSCP ::= SEQUENCE {
+ q-OffsetS-N Q-OffsetS-N DEFAULT 0,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ hcs-NeighbouringCellInformation-RSCP
+ HCS-NeighbouringCellInformation-RSCP OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ q-QualMin Q-QualMin OPTIONAL,
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ tdd SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ gsm SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ }
+ }
+}
+
+CellSelectReselectInfoSIB-11-12-HCS-ECN0 ::= SEQUENCE {
+ q-Offset1S-N Q-OffsetS-N DEFAULT 0,
+ q-Offset2S-N Q-OffsetS-N DEFAULT 0,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ hcs-NeighbouringCellInformation-ECN0
+ HCS-NeighbouringCellInformation-ECN0 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ q-QualMin Q-QualMin OPTIONAL,
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ tdd SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ },
+ gsm SEQUENCE {
+ q-RxlevMin Q-RxlevMin OPTIONAL
+ }
+ }
+}
+
+CellSelectReselectInfo-v590ext ::= SEQUENCE {
+ deltaQrxlevmin DeltaQrxlevmin OPTIONAL,
+ deltaQhcs DeltaRSCP OPTIONAL
+}
+
+CellSelectReselectInfoPCHFACH-v5b0ext ::= SEQUENCE {
+ q-Hyst-l-S-PCH Q-Hyst-S-Fine OPTIONAL,
+ q-Hyst-l-S-FACH Q-Hyst-S-Fine OPTIONAL,
+ q-Hyst-2-S-PCH Q-Hyst-S-Fine OPTIONAL,
+ q-Hyst-2-S-FACH Q-Hyst-S-Fine OPTIONAL,
+ t-Reselection-S-PCH T-Reselection-S OPTIONAL,
+ t-Reselection-S-FACH T-Reselection-S-Fine OPTIONAL
+}
+
+CellSelectReselectInfoTreselectionScaling-v5c0ext ::= SEQUENCE {
+ -- For speed detection, the same HCS parameters are utilised
+ non-HCS-t-CR-Max T-CRMax OPTIONAL,
+ speedDependentScalingFactor SpeedDependentScalingFactor OPTIONAL,
+ interFrequencyTreselectionScalingFactor TreselectionScalingFactor OPTIONAL,
+ interRATTreselectionScalingFactor TreselectionScalingFactor OPTIONAL
+}
+
+CellsForInterFreqMeasList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ InterFreqCellID
+
+CellsForInterFreqMeasList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas-ext)) OF
+ InterFreqCellID-r12
+
+CellsForInterRATMeasList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ InterRATCellID
+
+CellsForIntraFreqMeasList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ IntraFreqCellID
+
+CellsForIntraFreqMeasListOnSecULFreq ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF
+ IntraFreqCellIDOnSecULFreq
+
+CellSynchronisationInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ countC-SFN-Frame-difference CountC-SFN-Frame-difference OPTIONAL,
+ tm INTEGER(0..38399)
+ },
+ tdd SEQUENCE {
+ countC-SFN-Frame-difference CountC-SFN-Frame-difference OPTIONAL
+ }
+ }
+}
+
+CellToReport ::= SEQUENCE {
+ bsicReported BSICReported
+}
+
+CellToReportList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellToReport
+
+CNAVclockModel ::= SEQUENCE {
+ cnavToc BIT STRING (SIZE (11)),
+ cnavTop BIT STRING (SIZE (11)),
+ cnavURA0 BIT STRING (SIZE (5)),
+ cnavURA1 BIT STRING (SIZE (3)),
+ cnavURA2 BIT STRING (SIZE (3)),
+ cnavAf2 BIT STRING (SIZE (10)),
+ cnavAf1 BIT STRING (SIZE (20)),
+ cnavAf0 BIT STRING (SIZE (26)),
+ cnavTgd BIT STRING (SIZE (13)),
+ cnavISCl1cp BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl1cd BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl1ca BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl2c BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl5i5 BIT STRING (SIZE (13)) OPTIONAL,
+ cnavISCl5q5 BIT STRING (SIZE (13)) OPTIONAL
+}
+
+CodePhaseSearchWindow ::= ENUMERATED {
+ w1023, w1, w2, w3, w4, w6, w8,
+ w12, w16, w24, w32, w48, w64,
+ w96, w128, w192 }
+
+CountC-SFN-Frame-difference ::= SEQUENCE {
+ -- Actual value countC-SFN-High = IE value * 256
+ countC-SFN-High INTEGER(0..15),
+ off INTEGER(0..255)
+}
+
+-- SPARE: CPICH-Ec-No, Max = 49
+-- Values above Max are spare
+CPICH-Ec-N0 ::= INTEGER (0..63)
+
+-- SPARE: CPICH- RSCP, Max = 91
+-- Values above Max are spare
+CPICH-RSCP ::= INTEGER (0..127)
+
+CPICH-Ec-N0-RSCP ::= SEQUENCE {
+ cpich-Ec-N0 CPICH-Ec-N0,
+ cpich-RSCP CPICH-RSCP
+}
+
+CSG-MemberPLMNList ::= SEQUENCE(SIZE (1..6)) OF
+ PLMN-Identity
+
+CSGCellInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ startPSC PrimaryCPICH-Info,
+ numberOfPSCs INTEGER (1..512)
+ },
+ tdd NULL
+ }
+}
+
+CSGCellInfoList ::= SEQUENCE (SIZE (1..maxMeasCSGRange)) OF
+ CSGCellInfo
+
+CSGInterFreqCellInfo ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ cSGInterFreqCellInfoListperFreq CSGCellInfoList
+}
+
+CSGInterFreqCellInfoList ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ CSGInterFreqCellInfo
+
+CSGIntraFreqCellInfoList ::= CSGCellInfoList
+
+CSGProximityDetection ::= SEQUENCE {
+ uTRACSGProximityDetec ENUMERATED { enable } OPTIONAL,
+ e-UTRACSGProximityDetec ENUMERATED { enable } OPTIONAL
+}
+
+CSGProximityIndication ::= SEQUENCE {
+ cSGproximityInd ENUMERATED {entering, leaving },
+ radioAccessTechnology CHOICE {
+ uTRA SEQUENCE {
+ cSGFrequencyInfoUTRA FrequencyInfo
+ },
+ e-UTRA SEQUENCE {
+ cSGFrequencyInfoEUTRA EARFCN
+ }
+ }
+}
+
+CSGProximityIndication-vb50ext ::= SEQUENCE {
+ cSGFrequencyInfoEUTRA EARFCNExtension OPTIONAL
+}
+
+DataBitAssistance ::= SEQUENCE {
+ ganss-signal-id GANSS-Signal-Id,
+ data-bits BIT STRING (SIZE (1..1024))
+}
+
+DataBitAssistanceList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ DataBitAssistanceSat
+
+DataBitAssistanceSat ::= SEQUENCE {
+ satID INTEGER(0..63),
+ dataBitAssistanceSgnList DataBitAssistanceSgnList
+}
+
+DataBitAssistanceSgnList ::= SEQUENCE (SIZE (1..maxSgnType)) OF
+ DataBitAssistance
+
+DeltaPRC ::= INTEGER (-127..127)
+
+--Actual value DeltaQrxlevmin = IE value * 2
+DeltaQrxlevmin ::= INTEGER (-2..-1)
+
+DeltaRSCP ::= INTEGER (-5..-1)
+
+DeltaRSCPPerCell ::= SEQUENCE {
+ deltaRSCP DeltaRSCP OPTIONAL
+}
+
+-- Actual value DeltaRRC = IE value * 0.032
+DeltaRRC ::= INTEGER (-7..7)
+
+DeltaUT1 ::= SEQUENCE {
+ b1 BIT STRING (SIZE (11)),
+ b2 BIT STRING (SIZE (10))
+}
+
+DGANSSInfo ::= SEQUENCE {
+ ganssSignalId GANSS-Signal-Id OPTIONAL,
+ ganssStatusHealth GANSS-Status-Health,
+ dgansssignalInformationList DGANSSSignalInformationList OPTIONAL
+}
+
+DGANSSInfo-r9 ::= SEQUENCE {
+ ganssSignalId GANSS-Signal-Id OPTIONAL,
+ ganssStatusHealth GANSS-Status-Health,
+ dgansssignalInformationList DGANSSSignalInformationList-r9 OPTIONAL
+}
+
+DGANSSInfo-v920ext ::= SEQUENCE {
+ dgansssignalInformationList DGANSSSignalInformationList-v920ext OPTIONAL
+}
+
+DGANSSInfoList ::= SEQUENCE (SIZE (1..maxSgnType)) OF
+ DGANSSInfo
+
+DGANSSInfoList-r9 ::= SEQUENCE (SIZE (1..maxSgnType)) OF
+ DGANSSInfo-r9
+
+DGANSSInfoList-v920ext ::= SEQUENCE (SIZE (1..maxSgnType)) OF
+ DGANSSInfo-v920ext
+
+DGANSSSignalInformation ::= SEQUENCE {
+ satId INTEGER (0..63),
+ iode-dganss BIT STRING (SIZE (10)),
+ udre UDRE,
+ ganss-prc INTEGER (-2047..2047), -- scale factor 0.32
+ ganss-rrc INTEGER (-127..127) -- scale factor 0.032
+}
+
+DGANSSSignalInformation-r9 ::= SEQUENCE {
+ satId INTEGER (0..63),
+ iode-dganss BIT STRING (SIZE (10)),
+ udre UDRE,
+ ganss-prc INTEGER (-2047..2047), -- scale factor 0.32
+ ganss-rrc INTEGER (-127..127), -- scale factor 0.032
+ udreGrowthRate UDREGrowthRate OPTIONAL,
+ udreValidityTime UDREValidityTime OPTIONAL
+}
+
+DGANSSSignalInformation-v920ext ::= SEQUENCE {
+ udreGrowthRate UDREGrowthRate OPTIONAL,
+ udreValidityTime UDREValidityTime OPTIONAL
+}
+
+DGANSSSignalInformationList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ DGANSSSignalInformation
+
+DGANSSSignalInformationList-r9 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ DGANSSSignalInformation-r9
+
+DGANSSSignalInformationList-v920ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ DGANSSSignalInformation-v920ext
+
+DGANSS-Sig-Id-Req ::= BIT STRING (SIZE (8))
+
+DGPS-CorrectionSatInfo ::= SEQUENCE {
+ satID SatID,
+ iode IODE,
+ udre UDRE,
+ prc PRC,
+ rrc RRC,
+-- dummy1 and dummy2 are not used in this version of the specification and should be ignored.
+ dummy1 DeltaPRC,
+ dummy2 DeltaRRC,
+ -- dummy3 and dummy4 are not used in this version of the specification. They should not
+ -- be sent and if received they should be ignored.
+ dummy3 DeltaPRC OPTIONAL,
+ dummy4 DeltaRRC OPTIONAL
+}
+
+DGPS-CorrectionSatInfo-r9 ::= SEQUENCE {
+ satID SatID,
+ iode IODE,
+ udre UDRE,
+ prc PRC,
+ rrc RRC,
+ udreGrowthRate UDREGrowthRate OPTIONAL,
+ udreValidityTime UDREValidityTime OPTIONAL
+}
+
+DGPS-CorrectionSatInfo-v920ext ::= SEQUENCE {
+ udreGrowthRate UDREGrowthRate OPTIONAL,
+ udreValidityTime UDREValidityTime OPTIONAL
+}
+
+DGPS-CorrectionSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ DGPS-CorrectionSatInfo
+
+DGPS-CorrectionSatInfoList-r9 ::= SEQUENCE (SIZE (1..maxSat)) OF
+ DGPS-CorrectionSatInfo-r9
+
+DGPS-CorrectionSatInfoList-v920ext ::= SEQUENCE (SIZE (1..maxSat)) OF
+ DGPS-CorrectionSatInfo-v920ext
+
+DiffCorrectionStatus ::= ENUMERATED {
+ udre-1-0, udre-0-75, udre-0-5, udre-0-3,
+ udre-0-2, udre-0-1, noData, invalidData }
+
+DL-TransportChannelBLER ::= INTEGER (0..63)
+
+DopplerUncertainty ::= ENUMERATED {
+ hz12-5, hz25, hz50, hz100, hz200,
+ spare3, spare2, spare1 }
+
+DopplerUncertaintyExt ::= ENUMERATED {
+ hz300, hz400, hz500, hz600, noInformation,
+ spare3, spare2, spare1 }
+
+EllipsoidPoint ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607)
+}
+
+
+EllipsoidPointAltitude ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ altitudeDirection ENUMERATED {height, depth},
+ altitude INTEGER (0..32767)
+}
+
+
+EllipsoidPointAltitudeEllipsoide ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ altitudeDirection ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ uncertaintySemiMajor INTEGER (0..127),
+ uncertaintySemiMinor INTEGER (0..127),
+ -- Actual value orientationMajorAxis = IE value * 2
+ orientationMajorAxis INTEGER (0..89),
+ uncertaintyAltitude INTEGER (0..127),
+ confidence INTEGER (0..100)
+}
+
+
+EllipsoidPointUncertCircle ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ uncertaintyCode INTEGER (0..127)
+}
+
+
+EllipsoidPointUncertEllipse ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ uncertaintySemiMajor INTEGER (0..127),
+ uncertaintySemiMinor INTEGER (0..127),
+ -- Actual value orientationMajorAxis = IE value * 2
+ orientationMajorAxis INTEGER (0..89),
+ confidence INTEGER (0..100)
+}
+
+
+EnvironmentCharacterisation ::= ENUMERATED {
+ possibleHeavyMultipathNLOS,
+ lightMultipathLOS,
+ notDefined,
+ spare }
+
+EUTRA-CSGMemberPLMNList ::= SEQUENCE(SIZE (1..5)) OF
+ PLMN-Identity
+
+Eutra-EventResult ::= SEQUENCE {
+ earfcn EARFCN,
+ reportedCells SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF
+ EUTRA-PhysicalCellIdentity
+}
+
+EUTRA-EventResult-vb50ext ::= SEQUENCE {
+ earfcn EARFCNExtension OPTIONAL
+}
+
+EUTRA-EventResult-vc50ext ::= SEQUENCE {
+ earfcn EARFCNExtension2,
+ reportedCells SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF
+ EUTRA-PhysicalCellIdentity
+}
+
+Eutra-EventResultList ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF
+ Eutra-EventResult
+
+EUTRA-EventResultList-vb50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF
+ EUTRA-EventResult-vb50ext
+
+EUTRA-EventResultList-vc50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs-ext)) OF
+ EUTRA-EventResult-vc50ext
+
+EUTRA-EventResults ::= SEQUENCE {
+ eventID EventIDInterRAT,
+ eutra-EventResultsList Eutra-EventResultList
+}
+
+EUTRA-EventResults-vb50ext ::= SEQUENCE {
+ eutra-EventResultsList EUTRA-EventResultList-vb50ext
+}
+
+EUTRA-EventResults-vc50ext ::= SEQUENCE {
+ eutra-EventResultsList EUTRA-EventResultList-vc50ext
+}
+
+EUTRA-EventResultsForCELLFACH ::= SEQUENCE {
+ eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH))
+}
+
+EUTRA-EventResultsForCELLFACH-vc50ext ::= SEQUENCE {
+ eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH))
+}
+
+EUTRA-FrequencyAndPriorityInfo ::= SEQUENCE {
+ earfcn EARFCN,
+ measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL,
+ priority INTEGER (0..maxPrio-1),
+ -- Actual value = IE value * 2
+ qRxLevMinEUTRA INTEGER (-70..-22),
+ -- Actual value = IE value * 2
+ threshXhigh INTEGER (0..31),
+ -- Actual value = IE value * 2
+ threshXlow INTEGER (0..31),
+ eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL,
+ eutraDetection BOOLEAN
+}
+
+EUTRA-FrequencyAndPriorityInfo-v920ext ::= SEQUENCE {
+ qqualMinEUTRA INTEGER (-34..-3) OPTIONAL,
+ threshXhigh2 INTEGER (0..31) OPTIONAL,
+ threshXlow2 INTEGER (0..31) OPTIONAL
+}
+
+EUTRA-FrequencyAndPriorityInfo-vb50ext ::= SEQUENCE {
+ qqualMinEUTRA-WB INTEGER (-34..-3) OPTIONAL
+}
+
+EUTRA-FrequencyAndPriorityInfo-vc50ext ::= SEQUENCE {
+ qqualMinRSRQ-OnAllSymbols INTEGER (-34..-3) OPTIONAL,
+ reducedMeasurementPerformance ENUMERATED {true} OPTIONAL
+}
+
+EUTRA-FrequencyAndPriorityInfo-vdxyext ::= SEQUENCE {
+ subpriority ENUMERATED {oDot2,oDot4,oDot6,oDot8} OPTIONAL
+}
+
+EUTRA-FrequencyAndPriorityInfoExtension-vb50ext ::= SEQUENCE {
+ earfcn EARFCNExtension,
+ measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL,
+ priority INTEGER (0..maxPrio-1),
+ -- Actual value = IE value * 2
+ qRxLevMinEUTRA INTEGER (-70..-22),
+ -- Actual value = IE value * 2
+ threshXhigh INTEGER (0..31),
+ -- Actual value = IE value * 2
+ threshXlow INTEGER (0..31),
+ qqualMinEUTRA INTEGER (-34..-3) OPTIONAL,
+ threshXhigh2 INTEGER (0..31) OPTIONAL,
+ threshXlow2 INTEGER (0..31) OPTIONAL,
+ eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL,
+ eutraDetection BOOLEAN
+}
+
+EUTRA-FrequencyAndPriorityInfoExtension-vb80ext ::= SEQUENCE {
+ qqualMinEUTRA-WB INTEGER (-34..-3) OPTIONAL
+}
+
+EUTRA-FrequencyAndPriorityInfoExtension-vc50ext ::= SEQUENCE {
+ qqualMinRSRQ-OnAllSymbols INTEGER (-34..-3) OPTIONAL,
+ reducedMeasurementPerformance ENUMERATED {true} OPTIONAL
+}
+
+EUTRA-FrequencyAndPriorityInfoExtension-vdxyext ::= SEQUENCE {
+ subpriority ENUMERATED {oDot2,oDot4,oDot6,oDot8} OPTIONAL
+}
+
+EUTRA-FrequencyAndPriorityInfoExtensionList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfoExtension-vb50ext
+
+EUTRA-FrequencyAndPriorityInfoExtensionList-vb80ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfoExtension-vb80ext
+
+EUTRA-FrequencyAndPriorityInfoExtensionList-vc50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfoExtension-vc50ext
+
+EUTRA-FrequencyAndPriorityInfoExtensionList-vdxyext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfoExtension-vdxyext
+
+EUTRA-FrequencyAndPriorityInfoList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfo
+
+EUTRA-FrequencyAndPriorityInfoList-v920ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfo-v920ext
+
+EUTRA-FrequencyAndPriorityInfoList-vb50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfo-vb50ext
+
+EUTRA-FrequencyAndPriorityInfoList-vc50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfo-vc50ext
+
+EUTRA-FrequencyAndPriorityInfoList-vdxyext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyAndPriorityInfo-vdxyext
+
+EUTRA-FrequencyList ::= SEQUENCE {
+ eutraFrequencyRemoval EUTRA-FrequencyRemoval,
+ eutraNewFrequencies EUTRA-FrequencyInfoList OPTIONAL
+}
+
+EUTRA-FrequencyList-r9 ::= SEQUENCE {
+ eutraFrequencyRemoval EUTRA-FrequencyRemoval,
+ eutraNewFrequencies EUTRA-FrequencyInfoList OPTIONAL,
+ eutraSIAcquisition EUTRA-SIAcquisition OPTIONAL
+}
+
+EUTRA-FrequencyList-r11 ::= SEQUENCE {
+ eutraFrequencyRemoval EUTRA-FrequencyRemoval-r11,
+ eutraNewFrequencies EUTRA-FrequencyInfoList-r11 OPTIONAL,
+ eutraSIAcquisition EUTRA-SIAcquisition-r11 OPTIONAL
+}
+
+EUTRA-FrequencyList-r12 ::= SEQUENCE {
+ eutraFrequencyRemoval EUTRA-FrequencyRemoval-r11,
+ eutraNewFrequencies EUTRA-FrequencyInfoList-r12 OPTIONAL,
+ eutraSIAcquisition EUTRA-SIAcquisition-r11 OPTIONAL,
+ rsrqMeasOnAllSymbols BOOLEAN OPTIONAL
+}
+
+EUTRA-SIAcquisition ::= SEQUENCE {
+ earfcn EARFCN,
+ physicalCellIdentity EUTRA-PhysicalCellIdentity
+}
+
+EUTRA-SIAcquisition-r11 ::= SEQUENCE {
+-- If the IE earfcn is set to a value of 65535, then the EARFCN
+-- value for that instance shall be read from the IE earfcnExt.
+ earfcn EARFCN,
+ earfcnExt EARFCNExtension OPTIONAL,
+ physicalCellIdentity EUTRA-PhysicalCellIdentity
+}
+
+EUTRA-MeasuredCells ::= SEQUENCE {
+ physicalCellIdentity EUTRA-PhysicalCellIdentity,
+ rSRP INTEGER (0..97) OPTIONAL,
+ rSRQ INTEGER (0..33) OPTIONAL
+}
+
+Eutra-MeasuredResult ::= SEQUENCE {
+ earfcn EARFCN,
+ measuredEUTRACells SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF
+ EUTRA-MeasuredCells
+}
+
+EUTRA-MeasuredResult-vb50ext ::= SEQUENCE {
+ earfcn EARFCNExtension OPTIONAL
+}
+
+Eutra-MeasuredResultList ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF
+ Eutra-MeasuredResult
+
+EUTRA-MeasuredResultList-vb50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF
+ EUTRA-MeasuredResult-vb50ext
+
+EUTRA-MeasuredResults ::= SEQUENCE {
+ eutraMeasuredResultList Eutra-MeasuredResultList
+}
+
+EUTRA-MeasuredResults-vb50ext ::= SEQUENCE {
+ eutraMeasuredResultList EUTRA-MeasuredResultList-vb50ext
+}
+
+EUTRA-MeasuredCells-v920ext ::= SEQUENCE {
+ eutraSIacquisitionResults EUTRA-SIacquisitionResults
+}
+
+EUTRA-MeasuredCells-vc50ext ::= SEQUENCE {
+ physicalCellIdentity EUTRA-PhysicalCellIdentity OPTIONAL,
+ rSRP INTEGER (0..97) OPTIONAL,
+ rSRQ INTEGER (0..33) OPTIONAL,
+ eutraSIacquisitionResults EUTRA-SIacquisitionResults-vc50ext,
+ rsrqExtension INTEGER (-30..46) OPTIONAL
+}
+
+Eutra-MeasuredResult-v920ext ::= SEQUENCE {
+ measuredEUTRACells-v920ext SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF
+ EUTRA-MeasuredCells-v920ext
+}
+
+Eutra-MeasuredResult-vc50ext ::= SEQUENCE {
+ earfcn EARFCNExtension2 OPTIONAL,
+ measuredEUTRACells-vc50ext SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF
+ EUTRA-MeasuredCells-vc50ext
+}
+
+Eutra-MeasuredResultList-v920ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF
+ Eutra-MeasuredResult-v920ext
+
+Eutra-MeasuredResultList-vc50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF
+ Eutra-MeasuredResult-vc50ext
+
+EUTRA-MeasuredResults-v920ext ::= SEQUENCE {
+ eutraMeasuredResultList-v920ext Eutra-MeasuredResultList-v920ext
+}
+
+EUTRA-MeasuredResults-vc50ext ::= SEQUENCE {
+ eutraMeasuredResultList-vc50ext Eutra-MeasuredResultList-vc50ext
+}
+
+EUTRA-SIacquisitionResults ::= SEQUENCE {
+ cgiInfo SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity BIT STRING (SIZE (28)),
+ trackingAreaCode BIT STRING (SIZE (16))
+ },
+ csgIdentity CSG-Identity OPTIONAL,
+ csgMemberIndication ENUMERATED { member } OPTIONAL
+}
+
+EUTRA-SIacquisitionResults-vc50ext ::= SEQUENCE {
+ cgiInfo CGI-Info OPTIONAL,
+ csgIdentity CSG-Identity OPTIONAL,
+ csgMemberIndication ENUMERATED { member } OPTIONAL,
+ csgMemberPLMN EUTRA-CSGMemberPLMNList OPTIONAL,
+ primaryPLMNSuitable ENUMERATED { true } OPTIONAL
+}
+
+CGI-Info ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity BIT STRING (SIZE (28)),
+ trackingAreaCode BIT STRING (SIZE (16))
+}
+
+EUTRA-FrequencyRemoval ::= CHOICE {
+ removeAllFrequencies NULL,
+ removeSomeFrequencies SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EARFCN,
+ removeNoFrequencies NULL
+}
+
+EUTRA-FrequencyRemoval-r11 ::= CHOICE {
+ removeAllFrequencies NULL,
+ removeSomeFrequencies FrequenciesToRemove,
+ removeNoFrequencies NULL
+}
+
+EUTRA-FrequencyInfoList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyInfo
+
+EUTRA-FrequencyInfoList-r11 ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyInfo-r11
+
+EUTRA-FrequencyInfoList-r12 ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EUTRA-FrequencyInfo-r12
+
+EUTRA-FrequencyInfo ::= SEQUENCE {
+ earfcn EARFCN,
+ measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL,
+ eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL
+}
+
+EUTRA-FrequencyInfo-r11 ::= SEQUENCE {
+-- If the IE earfcn is set to a value of 65535, then the EARFCN
+-- value for that instance shall be read from the IE earfcnExt.
+ earfcn EARFCN,
+ earfcnExt EARFCNExtension OPTIONAL,
+ measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL,
+ eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL,
+ widebandRSRQMeasurements ENUMERATED {true} OPTIONAL
+}
+
+EUTRA-FrequencyInfo-r12 ::= SEQUENCE {
+ earfcn EARFCNExtension2,
+ reducedMeasurementPerformance ENUMERATED {true} OPTIONAL,
+ measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL,
+ eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL,
+ widebandRSRQMeasurements ENUMERATED {true} OPTIONAL
+}
+
+EUTRA-FrequencyRACHReportingInfo ::= SEQUENCE {
+ eutra-FrequencyListIndicator BIT STRING (SIZE (maxNumEUTRAFreqs)),
+ eutra-FrequencyRepQuantityRACH ENUMERATED { rsrp, rsrq },
+ eutra-FrequencyRACHReportingThreshold INTEGER (0..97),
+ rachReportingPriority ENUMERATED { intraEUTRAInter, interIntraEUTRA,
+ interEUTRAIntra, eUTRAIntraInter,
+ eUTRAInterIntra, spare3,
+ spare2, spare1 } OPTIONAL
+}
+
+EUTRA-FrequencyRACHReportingInfo-vc50ext ::= SEQUENCE {
+ eutra-FrequencyListIndicator BIT STRING (SIZE (maxNumEUTRAFreqs)),
+ eutra-FrequencyRACHReportingThresholdExtension INTEGER (-30..-1) OPTIONAL
+}
+
+EUTRA-MeasurementBandwidth ::= ENUMERATED { mbw6, mbw15, mbw25, mbw50, mbw75, mbw100 }
+
+EUTRA-MeasurementForCELLFACH ::= SEQUENCE {
+ eutraFrequenciesForMeasurement SEQUENCE (SIZE (1..maxNumEUTRAFreqs-FACH)) OF
+ EARFCNRange,
+ reportCriteria ENUMERATED { event-triggeredreporting, periodicalReporting },
+ measurementQuantity ENUMERATED { rsrp, rsrq },
+ reportingThreshold INTEGER (0..97)
+}
+
+EUTRA-MeasurementForCELLFACH-r12 ::= SEQUENCE {
+ eutraFrequenciesForMeasurement SEQUENCE (SIZE (1..maxNumEUTRAFreqs-FACH-ext)) OF
+ EARFCNRange,
+ reportCriteria ENUMERATED { event-triggeredreporting, periodicalReporting },
+ measurementQuantity ENUMERATED { rsrp, rsrq },
+ reportingThreshold INTEGER (-30..97)
+}
+FrequenciesToRemove ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ EARFCNRange
+
+Event1a ::= SEQUENCE {
+ triggeringCondition TriggeringCondition2,
+ reportingRange ReportingRange,
+ forbiddenAffectCellList ForbiddenAffectCellList OPTIONAL,
+ w W,
+ reportDeactivationThreshold ReportDeactivationThreshold,
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval
+}
+
+Event1a-r4 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition2,
+ reportingRange ReportingRange,
+ forbiddenAffectCellList ForbiddenAffectCellList-r4 OPTIONAL,
+ w W,
+ reportDeactivationThreshold ReportDeactivationThreshold,
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval
+}
+
+Event1a-OnSecUlFreq-r9 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition2,
+ reportingRange ReportingRange,
+ forbiddenAffectCellListOnSecULFreq ForbiddenAffectCellListOnSecULFreq OPTIONAL,
+ w W,
+ reportDeactivationThreshold ReportDeactivationThreshold,
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval
+}
+
+Event1a-LCR-r4 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition2,
+ reportingRange ReportingRange,
+ forbiddenAffectCellList ForbiddenAffectCellList-LCR-r4 OPTIONAL,
+ w W,
+ reportDeactivationThreshold ReportDeactivationThreshold,
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval
+}
+
+Event1b ::= SEQUENCE {
+ triggeringCondition TriggeringCondition1,
+ reportingRange ReportingRange,
+ forbiddenAffectCellList ForbiddenAffectCellList OPTIONAL,
+ w W
+}
+
+Event1b-r4 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition1,
+ reportingRange ReportingRange,
+ forbiddenAffectCellList ForbiddenAffectCellList-r4 OPTIONAL,
+ w W
+}
+
+Event1b-r7 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition1,
+ reportingRange ReportingRange,
+ forbiddenAffectCellList ForbiddenAffectCellList-r4 OPTIONAL,
+ w W,
+ periodicReportingInfo-1b PeriodicReportingInfo-1b OPTIONAL
+}
+
+Event1b-OnSecUlFreq-r9 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition1,
+ reportingRange ReportingRange,
+ forbiddenAffectCellListOnSecULFreq ForbiddenAffectCellListOnSecULFreq OPTIONAL,
+ w W,
+ periodicReportingInfo-1b PeriodicReportingInfo-1b OPTIONAL
+}
+
+Event1b-LCR-r4 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition1,
+ reportingRange ReportingRange,
+ forbiddenAffectCellList ForbiddenAffectCellList-LCR-r4 OPTIONAL,
+ w W
+}
+
+Event1c ::= SEQUENCE {
+ replacementActivationThreshold ReplacementActivationThreshold,
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval
+}
+
+Event1d ::= SEQUENCE {
+ triggeringCondition TriggeringCondition2 OPTIONAL,
+ useCIO BOOLEAN OPTIONAL
+}
+
+Event1e ::= SEQUENCE {
+ triggeringCondition TriggeringCondition2,
+ thresholdUsedFrequency ThresholdUsedFrequency
+}
+
+Event1e-r6 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition2,
+ thresholdUsedFrequency ThresholdUsedFrequency-r6
+}
+
+Event1f ::= SEQUENCE {
+ triggeringCondition TriggeringCondition1,
+ thresholdUsedFrequency ThresholdUsedFrequency
+}
+
+Event1f-r6 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition1,
+ thresholdUsedFrequency ThresholdUsedFrequency-r6
+}
+
+Event1j-r6 ::= SEQUENCE {
+ replacementActivationThreshold ReplacementActivationThreshold,
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval
+}
+
+Event2a ::= SEQUENCE {
+ -- dummy is not used in this version of the specification and should be ignored
+ dummy Threshold,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList OPTIONAL
+}
+
+Event2a-r6 ::= SEQUENCE {
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqWList-r6 OPTIONAL
+}
+
+Event2a-r10 ::= SEQUENCE {
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreq2aParameterList-r10 OPTIONAL
+}
+
+Event2a-r11 ::= SEQUENCE {
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreq2aParameterList-r11 OPTIONAL
+}
+
+Event2b ::= SEQUENCE {
+ usedFreqThreshold Threshold,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList OPTIONAL
+}
+
+Event2b-r6 ::= SEQUENCE {
+ usedFreqThreshold Threshold-r6,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r6 OPTIONAL
+}
+
+Event2b-r10 ::= SEQUENCE {
+ usedFreqThreshold Threshold-r6,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r10 OPTIONAL
+}
+
+Event2b-r11 ::= SEQUENCE {
+ usedFreqThreshold Threshold-r6,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r11 OPTIONAL
+}
+
+Event2c ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList OPTIONAL
+}
+
+Event2c-r6 ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r6 OPTIONAL
+}
+
+Event2c-r10 ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r10 OPTIONAL
+}
+
+Event2c-r11 ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r11 OPTIONAL
+}
+
+Event2d ::= SEQUENCE {
+ usedFreqThreshold Threshold,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+Event2d-r6 ::= SEQUENCE {
+ usedFreqThreshold Threshold-r6,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+Event2d-r10 ::= SEQUENCE {
+ usedFreqThreshold Threshold-r6,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL
+}
+
+Event2e ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList OPTIONAL
+}
+
+Event2e-r6 ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r6 OPTIONAL
+}
+
+Event2e-r10 ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r10 OPTIONAL
+}
+
+Event2e-r11 ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ nonUsedFreqParameterList NonUsedFreqParameterList-r11 OPTIONAL
+}
+
+Event2f ::= SEQUENCE {
+ usedFreqThreshold Threshold,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+Event2f-r6 ::= SEQUENCE {
+ usedFreqThreshold Threshold-r6,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+Event2f-r10 ::= SEQUENCE {
+ usedFreqThreshold Threshold-r6,
+ usedFreqW W,
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL
+}
+
+
+Event2g ::= SEQUENCE {
+ hysteresis HysteresisInterFreq,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL,
+ useCIO ENUMERATED {true} OPTIONAL
+}
+
+Event3a ::= SEQUENCE {
+ thresholdOwnSystem Threshold,
+ w W,
+ thresholdOtherSystem Threshold,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+Event3b ::= SEQUENCE {
+ thresholdOtherSystem Threshold,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+
+}
+
+Event3c ::= SEQUENCE {
+ thresholdOtherSystem Threshold,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+Event3d ::= SEQUENCE {
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+Event3a-r12 ::= SEQUENCE {
+ thresholdOwnSystem Threshold,
+ w W,
+ thresholdOtherSystem Threshold-r12,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+Event3b-r12 ::= SEQUENCE {
+ thresholdOtherSystem Threshold-r12,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+
+}
+
+Event3c-r12 ::= SEQUENCE {
+ thresholdOtherSystem Threshold-r12,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+EventIDInterFreq ::= ENUMERATED {
+ e2a, e2b, e2c, e2d, e2e, e2f, e2g, spare1 }
+
+EventIDInterRAT ::= ENUMERATED {
+ e3a, e3b, e3c, e3d }
+
+EventIDIntraFreq ::= ENUMERATED {
+ e1a, e1b, e1c, e1d, e1e,
+ e1f, e1g, e1h, e1i, e1j,
+ spare6, spare5, spare4, spare3, spare2,
+ spare1 }
+
+EventResults ::= CHOICE {
+ intraFreqEventResults IntraFreqEventResults,
+ interFreqEventResults InterFreqEventResults,
+ interRATEventResults InterRATEventResults,
+ trafficVolumeEventResults TrafficVolumeEventResults,
+ qualityEventResults QualityEventResults,
+ ue-InternalEventResults UE-InternalEventResults,
+ ue-positioning-MeasurementEventResults UE-Positioning-MeasurementEventResults,
+ spare NULL
+}
+
+EventResults-v770ext ::= CHOICE {
+ ue-positioning-MeasurementEventResults UE-Positioning-MeasurementEventResults-v770ext
+}
+
+EventResults-v860ext ::= CHOICE {
+ ue-positioning-MeasurementEventResults UE-Positioning-MeasurementEventResults-v860ext
+}
+
+EventResults-va40ext ::= CHOICE {
+ interFreqEventResults InterFreqEventResults-va40ext
+}
+
+EventResultsOnSecUlFreq ::= SEQUENCE {
+ intraFreqEventResults IntraFreqEventResultsOnSecUlFreq
+}
+
+ExtraDoppler ::= SEQUENCE {
+ -- Doppler 1st order term, -0.2..+0.1 m/s2
+ -- ( = -42..+21 with 1/210 m/s2 resolution)
+ dopplerFirstOrder INTEGER (-42.. 21),
+ dopplerUncertainty ENUMERATED { dopU40, dopU20, dopU10, dopU5, dopU2-5,
+ spare3, spare2, spare1 }
+}
+
+ExtraDopplerExtension ::= SEQUENCE {
+ -- Doppler 1st order term, -0.2..+0.1 m/s2
+ -- ( = -42..+21 with 1/210 m/s2 resolution)
+ dopplerFirstOrder INTEGER (-42.. 21),
+ dopplerUncertaintyExt ENUMERATED { dopU60, dopU80, dopU100, dopU120,
+ noInformation, spare3, spare2, spare1 }
+}
+
+
+ExtraDopplerInfo ::= SEQUENCE {
+ -- Actual value doppler1stOrder = IE value * 0.023
+ doppler1stOrder INTEGER (-42..21),
+ dopplerUncertainty DopplerUncertainty
+}
+
+ExtraDopplerInfoExtension ::= SEQUENCE {
+ -- Actual value doppler1stOrder = IE value * 0.023
+ doppler1stOrder INTEGER (-42..21),
+ dopplerUncertaintyExt DopplerUncertaintyExt
+}
+
+FACH-MeasurementOccasionInfo ::= SEQUENCE {
+ fACH-meas-occasion-coeff INTEGER (1..12) OPTIONAL,
+ inter-freq-FDD-meas-ind BOOLEAN,
+ -- inter-freq-TDD-meas-ind is for 3.84Mcps TDD and 7.68 Mcps TDD. For 1.28Mcps TDD, the IE in
+ -- FACH-MeasurementOccasionInfo-LCR-r4-ext is used.
+ inter-freq-TDD-meas-ind BOOLEAN,
+ inter-RAT-meas-ind SEQUENCE (SIZE (1..maxOtherRAT)) OF
+ RAT-Type OPTIONAL
+}
+
+FACH-MeasurementOccasionInfo-LCR-r4-ext ::= SEQUENCE {
+ inter-freq-TDD128-meas-ind BOOLEAN
+}
+
+FilterCoefficient ::= ENUMERATED {
+ fc0, fc1, fc2, fc3, fc4, fc5,
+ fc6, fc7, fc8, fc9, fc11, fc13,
+ fc15, fc17, fc19, spare1 }
+
+FilteredUEPowerHeadroomReportInfo ::= SEQUENCE {
+ timeToTrigger TimeToTrigger,
+ hysteresis1 Hysteresis OPTIONAL,
+ hysteresis2 Hysteresis OPTIONAL,
+ uePowerHeadroomThreshold1 UE-PowerHeadroomThreshold OPTIONAL,
+ uePowerHeadroomThreshold2 UE-PowerHeadroomThreshold OPTIONAL,
+ filterCoefficient FilterCoefficient OPTIONAL
+}
+
+-- Actual value FineSFN-SFN = IE value * 0.0625
+FineSFN-SFN ::= INTEGER (0..15)
+
+ForbiddenAffectCell ::= CHOICE {
+ fdd PrimaryCPICH-Info,
+ tdd PrimaryCCPCH-Info
+}
+
+ForbiddenAffectCell-r4 ::= CHOICE {
+ fdd PrimaryCPICH-Info,
+ tdd PrimaryCCPCH-Info-r4
+}
+
+ForbiddenAffectCell-LCR-r4 ::= SEQUENCE {
+ tdd PrimaryCCPCH-Info-LCR-r4
+}
+
+ForbiddenAffectCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ ForbiddenAffectCell
+
+ForbiddenAffectCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ ForbiddenAffectCell-r4
+
+ForbiddenAffectCellList-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ ForbiddenAffectCell-LCR-r4
+
+ForbiddenAffectCellListOnSecULFreq ::= SEQUENCE (SIZE (1.. maxCellMeasOnSecULFreq)) OF
+ ForbiddenAffectCellOnSecULFreq
+
+ForbiddenAffectCellOnSecULFreq ::= SEQUENCE {
+ primaryCPICH PrimaryCPICH-Info
+}
+
+FreqQualityEstimateQuantity-FDD ::= ENUMERATED {
+ cpich-Ec-N0,
+ cpich-RSCP }
+
+FreqQualityEstimateQuantity-TDD ::= ENUMERATED {
+ primaryCCPCH-RSCP }
+
+GanssDataBits ::= SEQUENCE {
+ ganssTod INTEGER (0..86399),
+ dataBitAssistance ReqDataBitAssistance
+}
+
+GANSSDecipheringKeys ::= SEQUENCE {
+ currentDecipheringKey BIT STRING (SIZE (56)),
+ nextDecipheringKey BIT STRING (SIZE (56))
+}
+
+GANSSGenericData ::= SEQUENCE {
+ ganssId INTEGER (0..7) OPTIONAL,
+ ganssTimeModelsList GANSSTimeModelsList OPTIONAL,
+ uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections OPTIONAL,
+ uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL,
+ uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL,
+ uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL,
+ uePositioningGANSSReferenceMeasurementInfo
+ UE-Positioning-GANSS-ReferenceMeasurementInfo OPTIONAL,
+ uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac OPTIONAL,
+ uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL
+}
+
+GANSSGenericData-v860ext ::= SEQUENCE {
+ uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL,
+ uePositioningGANSSAddNavigationModels
+ UE-Positioning-GANSS-AddNavigationModels OPTIONAL,
+ uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-v860ext OPTIONAL,
+ uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL,
+ uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL
+}
+
+GANSSGenericData-r8 ::= SEQUENCE {
+ ganssId INTEGER (0..7) OPTIONAL,
+ uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL,
+ ganssTimeModelsList GANSSTimeModelsList OPTIONAL,
+ uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections OPTIONAL,
+ uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL,
+ uePositioningGANSSAddNavigationModels
+ UE-Positioning-GANSS-AddNavigationModels OPTIONAL,
+ uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL,
+ uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL,
+ uePositioningGANSSReferenceMeasurementInfo
+ UE-Positioning-GANSS-ReferenceMeasurementInfo OPTIONAL,
+ uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-r8 OPTIONAL,
+ uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL,
+ uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL,
+ uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL
+}
+
+GANSSGenericData-r9 ::= SEQUENCE {
+ ganssId INTEGER (0..7) OPTIONAL,
+ uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL,
+ ganssTimeModelsList GANSSTimeModelsList OPTIONAL,
+ uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections-r9 OPTIONAL,
+ uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL,
+ uePositioningGANSSAddNavigationModels
+ UE-Positioning-GANSS-AddNavigationModels OPTIONAL,
+ uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL,
+ uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL,
+ uePositioningGANSSReferenceMeasurementInfo
+ UE-Positioning-GANSS-ReferenceMeasurementInfo OPTIONAL,
+ uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-r8 OPTIONAL,
+ uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL,
+ uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL,
+ uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL
+}
+
+GANSSGenericData-v920ext ::= SEQUENCE {
+ uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections-v920ext OPTIONAL
+}
+
+GANSSGenericData-va40ext ::= SEQUENCE {
+ ganssTimeModelsList GANSSTimeModelsList-va40ext OPTIONAL,
+ uePositioningGANSSReferenceMeasurementInfo
+ UE-Positioning-GANSS-ReferenceMeasurementInfo-va40ext
+ OPTIONAL,
+ uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-va40ext OPTIONAL
+}
+
+GANSSGenericData-vc50ext ::= SEQUENCE {
+ uePositioningDBDSCorrections UE-Positioning-DBDSCorrections OPTIONAL,
+ uePositioningBDSIonoGridModel UE-Positioning-BDS-IonoGridModel OPTIONAL,
+ ue-positioning-GANSS-AddNavigationModels
+ UE-Positioning-GANSS-AddNavigationModels-vc50ext
+ OPTIONAL, uePositioningGANSSReferenceMeasurementInfo
+ UE-Positioning-GANSS-ReferenceMeasurementInfo-vc50ext
+ OPTIONAL,
+ ue-Positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac-vc50ext OPTIONAL,
+ ue-Positioning-GANSS-AddUTCModels UE-Positioning-GANSS-AddUTCModels-vc50ext OPTIONAL
+}
+
+GANSSGenericData-r10 ::= SEQUENCE {
+ ganssId INTEGER (0..7) OPTIONAL,
+ uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL,
+ ganssTimeModelsList GANSSTimeModelsList-r10 OPTIONAL,
+ uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections-r9 OPTIONAL,
+ uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL,
+ uePositioningGANSSAddNavigationModels
+ UE-Positioning-GANSS-AddNavigationModels OPTIONAL,
+ uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL,
+ uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL,
+ uePositioningGANSSReferenceMeasurementInfo
+ UE-Positioning-GANSS-ReferenceMeasurementInfo-r10
+ OPTIONAL,
+ uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-r10 OPTIONAL,
+ uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL,
+ uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL,
+ uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL
+}
+
+GANSSGenericData-r12 ::= SEQUENCE {
+ ganssId INTEGER (0..7) OPTIONAL,
+ uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL,
+ ganssTimeModelsList GANSSTimeModelsList-r10 OPTIONAL,
+ uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections-r9 OPTIONAL,
+ uePositioningDBDSCorrections UE-Positioning-DBDSCorrections OPTIONAL,
+ uePositioningBDSIonoGridModel UE-Positioning-BDS-IonoGridModel OPTIONAL,
+ uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL,
+ uePositioningGANSSAddNavigationModels UE-Positioning-GANSS-AddNavigationModels-r12
+ OPTIONAL,
+ uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL,
+ uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL,
+ uePositioningGANSSReferenceMeasurementInfo
+ UE-Positioning-GANSS-ReferenceMeasurementInfo-r12
+ OPTIONAL,
+ uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-r12 OPTIONAL,
+ uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL,
+ uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels-r12 OPTIONAL,
+ uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL
+}
+
+GANSSGenericDataList ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData
+
+GANSSGenericDataList-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData-v860ext
+
+GANSSGenericDataList-r8 ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData-r8
+
+GANSSGenericDataList-r9 ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData-r9
+
+GANSSGenericDataList-v920ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData-v920ext
+
+GANSSGenericDataList-va40ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData-va40ext
+
+GANSSGenericDataList-vc50ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData-vc50ext
+
+GANSSGenericDataList-r10 ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData-r10
+
+GANSSGenericDataList-r12 ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GANSSGenericData-r12
+
+GANSSGenericMeasurementInfo ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE {
+ ganssId INTEGER (0..7) OPTIONAL,
+ ganssMeasurementSignalList GANSSMeasurementSignalList
+}
+
+GANSSGenericMeasurementInfo-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE {
+ ganssMeasurementSignalList GANSSMeasurementSignalList-v860ext
+}
+
+GANSSMeasurementParameters ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE {
+ satId INTEGER (0..63),
+ cSurNzero INTEGER (0..63),
+ multipathIndicator ENUMERATED { nm, low, medium, high },
+ carrierQualityIndication BIT STRING (SIZE (2)) OPTIONAL,
+ ganssCodePhase INTEGER (0..2097151),
+ ganssIntegerCodePhase INTEGER (0..63) OPTIONAL,
+ codePhaseRmsError INTEGER (0..63),
+ doppler INTEGER (-32768..32767),
+ adr INTEGER (0..33554431) OPTIONAL
+}
+
+GANSSMeasurementParameters-v860ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE {
+ ganssIntegerCodePhaseExt INTEGER (64..127) OPTIONAL
+}
+
+GANSSMeasurementSignalList ::= SEQUENCE (SIZE (1..maxSgnType)) OF SEQUENCE {
+ ganssSignalId GANSS-Signal-Id OPTIONAL,
+ ganssCodePhaseAmbiguity INTEGER (0..31) OPTIONAL,
+ ganssMeasurementParameters GANSSMeasurementParameters
+}
+
+GANSSMeasurementSignalList-v860ext ::= SEQUENCE (SIZE (1..maxSgnType)) OF SEQUENCE {
+ ganssCodePhaseAmbiguityExt INTEGER (32..127) OPTIONAL,
+ ganssMeasurementParameters GANSSMeasurementParameters-v860ext
+}
+
+GanssNavigationModelAdditionalData ::= SEQUENCE {
+ ganssWeek INTEGER (0..4095),
+ ganssToe INTEGER (0..167),
+ t-toeLimit INTEGER (0..10),
+ satellitesListRelatedDataList SatellitesListRelatedDataList OPTIONAL
+}
+
+GANSSReferenceTimeOnly ::= SEQUENCE {
+ gANSS-tod INTEGER (0..3599999),
+ gANSS-timeId INTEGER (0..7) OPTIONAL,
+ gANSS-tod-uncertainty INTEGER (0..127) OPTIONAL
+}
+
+GanssReqGenericData ::= SEQUENCE {
+ ganssId INTEGER (0..7) OPTIONAL,
+ ganssRealTimeIntegrity BOOLEAN,
+ ganssDifferentialCorrection DGANSS-Sig-Id-Req OPTIONAL,
+ ganssAlmanac BOOLEAN,
+ ganssNavigationModel BOOLEAN,
+ ganssTimeModelGNSS-GNSS BIT STRING (SIZE (8)) OPTIONAL,
+ ganssReferenceMeasurementInfo BOOLEAN,
+ ganssDataBits GanssDataBits OPTIONAL,
+ ganssUTCModel BOOLEAN,
+ ganssNavigationModelAdditionalData GanssNavigationModelAdditionalData OPTIONAL
+}
+
+GanssReqGenericData-v860ext ::= SEQUENCE {
+ sbasId UE-Positioning-GANSS-SBAS-ID OPTIONAL,
+ ganssAddNavigationModel ENUMERATED { true } OPTIONAL,
+ ganssAddUTCmodel ENUMERATED { true } OPTIONAL,
+ ganssAuxInfo ENUMERATED { true } OPTIONAL,
+ ganssAddADchoices SEQUENCE {
+ orbitModelID INTEGER (0..7) OPTIONAL,
+ clockModelID INTEGER (0..7) OPTIONAL,
+ utcModelID INTEGER (0..7) OPTIONAL,
+ almanacModelID INTEGER (0..7) OPTIONAL
+ } OPTIONAL
+}
+
+GanssReqGenericData-vc50ext ::= SEQUENCE {
+ bdsIonoGridModelReq ENUMERATED { true } OPTIONAL,
+ bdsCorrectionsReq DGANSS-Sig-Id-Req OPTIONAL
+}
+
+GanssRequestedGenericAssistanceDataList ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GanssReqGenericData
+
+GanssRequestedGenericAssistanceDataList-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GanssReqGenericData-v860ext
+
+GanssRequestedGenericAssistanceDataList-vc50ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ GanssReqGenericData-vc50ext
+
+GANSSSatelliteInformation ::= SEQUENCE {
+ ganssSatId INTEGER (0..63),
+ dopplerZeroOrder INTEGER (-2048..2047), -- scale factor 0.5m/s
+ extraDoppler ExtraDoppler OPTIONAL,
+ codePhase INTEGER (0..1023),
+ integerCodePhase INTEGER (0..127),
+ codePhaseSearchWindow BIT STRING (SIZE (5)),
+ azimuthandElevation AzimuthAndElevation OPTIONAL
+}
+
+GANSSSatelliteInformation-va40ext ::= SEQUENCE {
+ azimuthAndElevation AzimuthAndElevation-va40ext OPTIONAL
+}
+
+GANSSSatelliteInformation-r10 ::= SEQUENCE {
+ ganssSatId INTEGER (0..63),
+ dopplerZeroOrder INTEGER (-2048..2047), -- scale factor 0.5m/s
+ extraDoppler ExtraDoppler OPTIONAL,
+ codePhase INTEGER (0..1023),
+ integerCodePhase INTEGER (0..127),
+ codePhaseSearchWindow BIT STRING (SIZE (5)),
+ azimuthandElevation AzimuthAndElevation-r10 OPTIONAL
+}
+
+GANSSSatelliteInformation-vc50ext ::= SEQUENCE {
+ extraDopplerExtension ExtraDopplerExtension OPTIONAL
+}
+
+GANSSSatelliteInformation-r12 ::= SEQUENCE {
+ ganssSatId INTEGER (0..63),
+ dopplerZeroOrder INTEGER (-2048..2047), -- scale factor 0.5m/s
+ extraDoppler ExtraDoppler OPTIONAL,
+-- If the extraDopplerExtension is present, the extraDoppler should not be present
+ extraDopplerExtension ExtraDopplerExtension OPTIONAL,
+ codePhase INTEGER (0..1023),
+ integerCodePhase INTEGER (0..127),
+ codePhaseSearchWindow BIT STRING (SIZE (5)),
+ azimuthandElevation AzimuthAndElevation-r10 OPTIONAL
+}
+
+GANSSSatelliteInformationList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSSSatelliteInformation
+
+GANSSSatelliteInformationList-va40ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSSSatelliteInformation-va40ext
+
+GANSSSatelliteInformationList-r10 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSSSatelliteInformation-r10
+
+GANSSSatelliteInformationList-vc50ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSSSatelliteInformation-vc50ext
+
+GANSSSatelliteInformationList-r12 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSSSatelliteInformation-r12
+
+GANSSTimeModelsList ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF
+ UE-Positioning-GANSS-TimeModel
+
+GANSSTimeModelsList-va40ext ::= SEQUENCE (SIZE (1.. maxGANSS-1)) OF
+ UE-Positioning-GANSS-TimeModel-va40ext
+
+GANSSTimeModelsList-r10 ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF
+ UE-Positioning-GANSS-TimeModel-r10
+
+GANSS-SAT-Info-Almanac-BDSkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ bdsAlmToa BIT STRING (SIZE (8)),
+ bdsAlmSqrtA BIT STRING (SIZE (24)),
+ bdsAlmE BIT STRING (SIZE (17)),
+ bdsAlmW BIT STRING (SIZE (24)),
+ bdsAlmM0 BIT STRING (SIZE (24)),
+ bdsAlmOmega0 BIT STRING (SIZE (24)),
+ bdsAlmOmegaDot BIT STRING (SIZE (17)),
+ bdsAlmDeltaI BIT STRING (SIZE (16)),
+ bdsAlmA0 BIT STRING (SIZE (11)),
+ bdsAlmA1 BIT STRING (SIZE (11)),
+ bdsSvHealth BIT STRING (SIZE(9)) OPTIONAL
+}
+
+GANSS-SAT-Info-Almanac-GLOkp ::= SEQUENCE {
+ gloAlmNA BIT STRING (SIZE (11)),
+ gloAlmnA BIT STRING (SIZE (5)),
+ gloAlmHA BIT STRING (SIZE (5)),
+ gloAlmLambdaA BIT STRING (SIZE (21)),
+ gloAlmTlambdaA BIT STRING (SIZE (21)),
+ gloAlmDeltaIA BIT STRING (SIZE (18)),
+ gloAkmDeltaTA BIT STRING (SIZE (22)),
+ gloAlmDeltaTdotA BIT STRING (SIZE (7)),
+ gloAlmEpsilonA BIT STRING (SIZE (15)),
+ gloAlmOmegaA BIT STRING (SIZE (16)),
+ gloAlmTauA BIT STRING (SIZE (10)),
+ gloAlmCA BIT STRING (SIZE (1)),
+ gloAlmMA BIT STRING (SIZE (2)) OPTIONAL
+}
+
+GANSS-SAT-Info-Almanac-Kp ::= SEQUENCE {
+ svId INTEGER(0..63),
+ ganss-alm-e BIT STRING (SIZE (11)),
+ ganss-delta-I-alm BIT STRING (SIZE (11)),
+ ganss-omegadot-alm BIT STRING (SIZE (11)),
+ ganss-svstatusINAV-alm BIT STRING (SIZE (4)),
+ ganss-svstatusFNAV-alm BIT STRING (SIZE (2)) OPTIONAL,
+ ganss-delta-a-sqrt-alm BIT STRING (SIZE (13)),
+ ganss-omegazero-alm BIT STRING (SIZE (16)),
+ ganss-m-zero-alm BIT STRING (SIZE (16)),
+ ganss-omega-alm BIT STRING (SIZE (16)),
+ ganss-af-zero-alm BIT STRING (SIZE (16)),
+ ganss-af-one-alm BIT STRING (SIZE (13))
+}
+
+GANSS-SAT-Info-Almanac-MIDIkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ midiAlmE BIT STRING (SIZE (11)),
+ midiAlmDeltaI BIT STRING (SIZE (11)),
+ midiAlmOmegaDot BIT STRING (SIZE (11)),
+ midiAlmSqrtA BIT STRING (SIZE (17)),
+ midiAlmOmega0 BIT STRING (SIZE (16)),
+ midiAlmOmega BIT STRING (SIZE (16)),
+ midiAlmMo BIT STRING (SIZE (16)),
+ midiAlmaf0 BIT STRING (SIZE (11)),
+ midiAlmaf1 BIT STRING (SIZE (10)),
+ midiAlmL1Health BIT STRING (SIZE (1)),
+ midiAlmL2Health BIT STRING (SIZE (1)),
+ midiAlmL5Health BIT STRING (SIZE (1))
+}
+
+GANSS-SAT-Info-Almanac-NAVkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ navAlmE BIT STRING (SIZE (16)),
+ navAlmDeltaI BIT STRING (SIZE (16)),
+ navAlmOMEGADOT BIT STRING (SIZE (16)),
+ navAlmSVHealth BIT STRING (SIZE (8)),
+ navAlmSqrtA BIT STRING (SIZE (24)),
+ navAlmOMEGAo BIT STRING (SIZE (24)),
+ navAlmOmega BIT STRING (SIZE (24)),
+ navAlmMo BIT STRING (SIZE (24)),
+ navAlmaf0 BIT STRING (SIZE (11)),
+ navAlmaf1 BIT STRING (SIZE (11))
+}
+
+GANSS-SAT-Info-Almanac-REDkp ::= SEQUENCE {
+ svID INTEGER(0..63),
+ redAlmDeltaA BIT STRING (SIZE (8)),
+ redAlmOmega0 BIT STRING (SIZE (7)),
+ redAlmPhi0 BIT STRING (SIZE (7)),
+ redAlmL1Health BIT STRING (SIZE (1)),
+ redAlmL2Health BIT STRING (SIZE (1)),
+ redAlmL5Health BIT STRING (SIZE (1))
+}
+
+GANSS-SAT-Info-Almanac-SBASecef ::= SEQUENCE {
+ sbasAlmDataID BIT STRING (SIZE (2)),
+ svID INTEGER (0..63),
+ sbasAlmHealth BIT STRING (SIZE (8)),
+ sbasAlmXg BIT STRING (SIZE (15)),
+ sbasAlmYg BIT STRING (SIZE (15)),
+ sbasAlmZg BIT STRING (SIZE (9)),
+ sbasAlmXgdot BIT STRING (SIZE (3)),
+ sbasAlmYgDot BIT STRING (SIZE (3)),
+ sbasAlmZgDot BIT STRING (SIZE (4)),
+ sbasAlmTo BIT STRING (SIZE (11))
+}
+
+GANSS-SAT-Info-Almanac-BDSkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSS-SAT-Info-Almanac-BDSkp
+
+GANSS-SAT-Info-Almanac-GLOkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSS-SAT-Info-Almanac-GLOkp
+
+GANSS-SAT-Info-Almanac-KpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSS-SAT-Info-Almanac-Kp
+
+GANSS-SAT-Info-Almanac-MIDIkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSS-SAT-Info-Almanac-MIDIkp
+
+GANSS-SAT-Info-Almanac-NAVkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSS-SAT-Info-Almanac-NAVkp
+
+GANSS-SAT-Info-Almanac-REDkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSS-SAT-Info-Almanac-REDkp
+
+GANSS-SAT-Info-Almanac-SBASecefList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ GANSS-SAT-Info-Almanac-SBASecef
+
+Ganss-Sat-Info-AddNav ::= SEQUENCE {
+ satId INTEGER (0..63),
+ svHealth BIT STRING (SIZE (6)),
+ iod BIT STRING (SIZE (11)),
+ ganssClockModel UE-Positioning-GANSS-AddClockModels,
+ ganssOrbitModel UE-Positioning-GANSS-AddOrbitModels
+}
+
+Ganss-Sat-Info-AddNav-r12 ::= SEQUENCE {
+ satId INTEGER (0..63),
+ svHealth BIT STRING (SIZE (6)),
+ iod BIT STRING (SIZE (11)),
+ ganssClockModel UE-Positioning-GANSS-AddClockModels-r12,
+ ganssOrbitModel UE-Positioning-GANSS-AddOrbitModels-r12
+}
+
+Ganss-Sat-Info-AddNav-vc50ext ::= SEQUENCE {
+ ganssClockModel UE-Positioning-GANSS-AddClockModels-vc50ext,
+ ganssOrbitModel UE-Positioning-GANSS-AddOrbitModels-vc50ext
+}
+
+Ganss-Sat-Info-Nav ::= SEQUENCE {
+ satId INTEGER (0..63),
+ svHealth BIT STRING (SIZE (9)),
+ iod BIT STRING (SIZE (10)),
+ ganssClockModel UE-Positioning-GANSS-ClockModel,
+ ganssOrbitModel UE-Positioning-GANSS-OrbitModel
+}
+
+Ganss-Sat-Info-AddNavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ Ganss-Sat-Info-AddNav
+
+Ganss-Sat-Info-AddNavList-r12 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ Ganss-Sat-Info-AddNav-r12
+
+Ganss-Sat-Info-AddNavList-vc50ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ Ganss-Sat-Info-AddNav-vc50ext
+
+Ganss-Sat-Info-NavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ Ganss-Sat-Info-Nav
+
+GANSS-Signal-Id ::= INTEGER (0..7)
+
+GANSS-Status-Health ::= ENUMERATED {
+ udre-scale-1dot0,
+ udre-scale-0dot75,
+ udre-scale-0dot5,
+ udre-scale-0dot3,
+ udre-scale-0dot2,
+ udre-scale-0dot1,
+ no-data,
+ invalid-data }
+
+GANSS-Storm-Flag ::= SEQUENCE {
+ storm-flag-one BOOLEAN,
+ storm-flag-two BOOLEAN,
+ storm-flag-three BOOLEAN,
+ storm-flag-four BOOLEAN,
+ storm-flag-five BOOLEAN
+}
+
+GLONASSclockModel ::= SEQUENCE {
+ gloTau BIT STRING (SIZE (22)),
+ gloGamma BIT STRING (SIZE (11)),
+ gloDeltaTau BIT STRING (SIZE (5)) OPTIONAL
+}
+
+GPS-MeasurementParam ::= SEQUENCE {
+ satelliteID INTEGER (0..63),
+ c-N0 INTEGER (0..63),
+ doppler INTEGER (-32768..32768),
+ wholeGPS-Chips INTEGER (0..1022),
+ fractionalGPS-Chips INTEGER (0..1023),
+ multipathIndicator MultipathIndicator,
+ pseudorangeRMS-Error INTEGER (0..63)
+}
+
+GPS-MeasurementParamList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ GPS-MeasurementParam
+
+GSM-CarrierRSSI ::= BIT STRING (SIZE (6))
+
+GSM-CellGroup ::= SEQUENCE {
+ startingARFCN BCCH-ARFCN,
+ bandIndicator ENUMERATED { dcs1800, pcs1900 },
+ followingARFCNs CHOICE {
+ explicitListOfARFCNs SEQUENCE (SIZE (0..31)) OF BCCH-ARFCN,
+ equallySpacedARFCNs SEQUENCE {
+ arfcn-Spacing INTEGER (1..8),
+ numberOfFollowingARFCNs INTEGER (0..31)
+ },
+ variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)),
+ continuousRangeOfARFCNs SEQUENCE {
+ endingARFCN BCCH-ARFCN
+ }
+ }
+}
+
+GSM-MeasuredResults ::= SEQUENCE {
+ gsm-CarrierRSSI GSM-CarrierRSSI OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy INTEGER (46..173) OPTIONAL,
+ bsicReported BSICReported,
+ -- dummy2 is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy2 ObservedTimeDifferenceToGSM OPTIONAL
+}
+
+GSM-MeasuredResultsList ::= SEQUENCE (SIZE (1..maxReportedGSMCells)) OF
+ GSM-MeasuredResults
+
+GPS-TOW-1msec ::= INTEGER (0..604799999)
+
+GPS-TOW-1sec ::= INTEGER (0..604799)
+
+GPS-TOW-Assist ::= SEQUENCE {
+ satID SatID,
+ tlm-Message BIT STRING (SIZE (14)),
+ tlm-Reserved BIT STRING (SIZE (2)),
+ alert BOOLEAN,
+ antiSpoof BOOLEAN
+}
+
+GPS-TOW-AssistList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ GPS-TOW-Assist
+
+GSM-CellID ::= SEQUENCE {
+ gsm-CellID INTEGER (0..maxCellMeas-1)
+}
+
+GSM-PriorityInfo ::= SEQUENCE {
+ gsmCellGroup GSM-CellGroup,
+ priority INTEGER (0..maxPrio-1),
+ -- Actual value = IE value * 2 + 1
+ qRxLevMinGSM INTEGER (-58..-13),
+ -- Actual value = IE value * 2
+ threshXhigh INTEGER (0..31),
+ -- Actual value = IE value * 2
+ threshXlow INTEGER (0..31)
+}
+
+GSM-PriorityInfoList ::= SEQUENCE (SIZE (1..maxNumGSMCellGroup)) OF
+ GSM-PriorityInfo
+
+GSMCellGroupingList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ GSM-CellID
+
+HCS-CellReselectInformation-RSCP ::= SEQUENCE {
+ -- TABULAR: The default value for penaltyTime is "notUsed"
+ -- Temporary offset is nested inside PenaltyTime-RSCP
+ penaltyTime PenaltyTime-RSCP
+}
+
+HCS-CellReselectInformation-ECN0 ::= SEQUENCE {
+ -- TABULAR: The default value for penaltyTime is "notUsed"
+ -- Temporary offset is nested inside PenaltyTime-ECN0
+ penaltyTime PenaltyTime-ECN0
+}
+
+HCS-NeighbouringCellInformation-RSCP ::= SEQUENCE {
+ hcs-PRIO HCS-PRIO DEFAULT 0,
+ q-HCS Q-HCS DEFAULT 0,
+ hcs-CellReselectInformation HCS-CellReselectInformation-RSCP
+}
+
+HCS-NeighbouringCellInformation-ECN0 ::= SEQUENCE {
+ hcs-PRIO HCS-PRIO DEFAULT 0,
+ q-HCS Q-HCS DEFAULT 0,
+ hcs-CellReselectInformation HCS-CellReselectInformation-ECN0
+}
+
+HCS-PRIO ::= INTEGER (0..7)
+
+HCS-ServingCellInformation ::= SEQUENCE {
+ hcs-PRIO HCS-PRIO DEFAULT 0,
+ q-HCS Q-HCS DEFAULT 0,
+ t-CR-Max T-CRMax OPTIONAL
+}
+
+HorizontalVelocity ::= SEQUENCE {
+ bearing INTEGER (0..359),
+ horizontalSpeed INTEGER (0..2047)
+ }
+
+HorizontalWithVerticalVelocity ::= SEQUENCE {
+ verticalSpeedDirection ENUMERATED { upward, downward },
+ bearing INTEGER (0..359),
+ horizontalSpeed INTEGER (0..2047),
+ verticalSpeed INTEGER (0..255)
+}
+
+HorizontalVelocityWithUncertainty ::= SEQUENCE {
+ bearing INTEGER (0..359),
+ horizontalSpeed INTEGER (0..2047),
+ horizontalSpeedUncertainty INTEGER (0..255)
+}
+
+HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
+ verticalSpeedDirection ENUMERATED { upward, downward },
+ bearing INTEGER (0..359),
+ horizontalSpeed INTEGER (0..2047),
+ verticalSpeed INTEGER (0..255),
+ horizontalUncertaintySpeed INTEGER (0..255),
+ verticalUncertaintySpeed INTEGER (0..255)
+}
+
+-- Actual value Hysteresis = IE value * 0.5
+Hysteresis ::= INTEGER (0..15)
+
+-- Actual value HysteresisInterFreq = IE value * 0.5
+HysteresisInterFreq ::= INTEGER (0..29)
+
+IdleIntervalInfo ::= SEQUENCE {
+ k INTEGER (2..3) OPTIONAL,
+ offset INTEGER (0..7) OPTIONAL
+}
+
+InterFreqCell ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ nonFreqRelatedEventResults CellMeasurementEventResults
+}
+
+InterFreqCell-LCR-r4 ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ nonFreqRelatedEventResults CellMeasurementEventResults-LCR-r4
+}
+
+InterFreqCellID ::= INTEGER (0..maxCellMeas-1)
+
+InterFreqCellID-r12 ::= INTEGER (0..maxCellMeas-ext-1)
+
+InterFreqCellInfoList ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellList OPTIONAL,
+ cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL
+}
+
+InterFreqCellInfoList-r4 ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellList-r4 OPTIONAL,
+ cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL
+}
+
+InterFreqCellInfoList-r8 ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellList-r8 OPTIONAL,
+ cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL
+}
+
+InterFreqCellInfoList-r9 ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellList-r9 OPTIONAL,
+ cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL,
+ cSGInterFreqCellInfoList CSGInterFreqCellInfoList OPTIONAL,
+ interFreqSIAcquisition InterFreqSIAcquisition OPTIONAL
+}
+
+InterFreqCellInfoList-r10 ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellList-r10 OPTIONAL,
+ cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL,
+ cSGInterFreqCellInfoList CSGInterFreqCellInfoList OPTIONAL,
+ interFreqSIAcquisition InterFreqSIAcquisition OPTIONAL
+}
+
+InterFreqCellInfoList-r12 ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList-r12 OPTIONAL,
+ newInterFreqCellList NewInterFreqCellList-r12 OPTIONAL,
+ cellsForInterFreqMeasList CellsForInterFreqMeasList-r12 OPTIONAL,
+ cSGInterFreqCellInfoList CSGInterFreqCellInfoList OPTIONAL,
+ interFreqSIAcquisition InterFreqSIAcquisition OPTIONAL,
+ rmp-Frequency-List RMP-Frequency-List OPTIONAL
+}
+
+InterFreqSIAcquisition ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryScramblingCode PrimaryCPICH-Info
+ },
+ tdd NULL
+ }
+}
+
+
+InterFreqCellInfoSI-List-RSCP ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-RSCP OPTIONAL
+}
+
+InterFreqCellInfoSI-List-ECN0 ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-ECN0 OPTIONAL
+}
+
+InterFreqCellInfoSI-List-HCS-RSCP ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP OPTIONAL
+}
+InterFreqCellInfoSI-List-HCS-ECN0 ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0 OPTIONAL
+}
+
+InterFreqCellInfoSI-List-RSCP-LCR ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-RSCP-LCR-r4 OPTIONAL
+}
+
+InterFreqCellInfoSI-List-ECN0-LCR ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-ECN0-LCR-r4 OPTIONAL
+}
+
+InterFreqCellInfoSI-List-HCS-RSCP-LCR ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP-LCR-r4 OPTIONAL
+}
+InterFreqCellInfoSI-List-HCS-ECN0-LCR ::= SEQUENCE {
+ removedInterFreqCellList RemovedInterFreqCellList OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0-LCR-r4 OPTIONAL
+}
+
+InterFreqCellList ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ InterFreqCell
+
+InterFreqCellList-LCR-r4-ext ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ InterFreqCell-LCR-r4
+
+InterFreqCellMeasuredResultsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellMeasuredResults
+
+InterFreqCellMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellMeasuredResults-v920ext
+
+InterFreqCellMeasuredResultsList-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellMeasuredResults-vc50ext
+
+InterFreqEvent ::= CHOICE {
+ event2a Event2a,
+ event2b Event2b,
+ event2c Event2c,
+ event2d Event2d,
+ event2e Event2e,
+ event2f Event2f
+}
+
+InterFreqEvent-r6 ::= CHOICE {
+ event2a Event2a-r6,
+ event2b Event2b-r6,
+ event2c Event2c-r6,
+ event2d Event2d-r6,
+ event2e Event2e-r6,
+ event2f Event2f-r6
+}
+
+InterFreqEvent-r10 ::= CHOICE {
+ event2a Event2a-r10,
+ event2b Event2b-r10,
+ event2c Event2c-r10,
+ event2d Event2d-r10,
+ event2e Event2e-r10,
+ event2f Event2f-r10
+}
+
+InterFreqEvent-r11 ::= CHOICE {
+ event2a Event2a-r11,
+ event2b Event2b-r11,
+ event2c Event2c-r11,
+ event2d Event2d-r10,
+ event2e Event2e-r11,
+ event2f Event2f-r10
+}
+
+InterFreqEvent-r12 ::= CHOICE {
+ event2a Event2a-r11,
+ event2b Event2b-r11,
+ event2c Event2c-r11,
+ event2d Event2d-r10,
+ event2e Event2e-r11,
+ event2f Event2f-r10,
+ event2g Event2g
+}
+
+InterFreqEventList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ InterFreqEvent
+
+InterFreqEventList-r6 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ InterFreqEvent-r6
+
+InterFreqEventList-r10 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ InterFreqEvent-r10
+
+InterFreqEventList-r11 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ InterFreqEvent-r11
+
+
+InterFreqEventList-r12 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ InterFreqEvent-r12
+
+--Following IE shall be used regardless of CPICH RSCP(FDD) or Primary CCPCH RSCP(TDD)
+--The order of the list corresponds to the order of the cells in InterFrequencyMeasuredResultsList
+--The IE is only used for measured results and not for additional measured results.
+InterFrequencyMeasuredResultsList-v590ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ DeltaRSCPPerCell
+
+Inter-FreqEventCriteria-v590ext ::= SEQUENCE {
+ threholdUsedFrequency-delta DeltaRSCP,
+ threholdNonUsedFrequency-deltaList ThreholdNonUsedFrequency-deltaList OPTIONAL
+}
+
+--The order of the list corresponds to the order of the events in Inter-FreqEventList
+Inter-FreqEventCriteriaList-v590ext ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ Inter-FreqEventCriteria-v590ext
+
+--The order of the list corresponds to the order of relevant events in Intra-FreqEventCriteriaList
+--i.e. the first element of the list corresponds to the first occurance of event 1e, 1f, 1h, 1i,
+--the second element of the list corresponds to the second occurance of event 1e, 1f, 1h, 1i
+Intra-FreqEventCriteriaList-v590ext ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ DeltaRSCP
+
+--Following IE shall be used regardless of CPICH RSCP(FDD) or Primary CCPCH RSCP(TDD)
+--The order of the list corresponds to the order of the cells in IntraFrequencyMeasuredResultsList
+--The IE is only used for measured results and not for additional measured results.
+IntraFrequencyMeasuredResultsList-v590ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ DeltaRSCPPerCell
+
+
+InterFreqEventResults ::= SEQUENCE {
+ eventID EventIDInterFreq,
+ interFreqCellList InterFreqCellList OPTIONAL
+}
+
+InterFreqEventResults-va40ext ::= SEQUENCE {
+ detectedSetTrigger ENUMERATED {true} OPTIONAL
+}
+
+InterFreqEventResults-LCR-r4-ext ::= SEQUENCE {
+ eventID EventIDInterFreq,
+ interFreqCellList InterFreqCellList-LCR-r4-ext OPTIONAL
+}
+
+InterFreqMeasQuantity ::= SEQUENCE {
+ reportingCriteria CHOICE {
+ intraFreqReportingCriteria SEQUENCE {
+ intraFreqMeasQuantity IntraFreqMeasQuantity
+ },
+ interFreqReportingCriteria SEQUENCE {
+ filterCoefficient FilterCoefficient DEFAULT fc0,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ freqQualityEstimateQuantity-FDD FreqQualityEstimateQuantity-FDD
+ },
+ tdd SEQUENCE {
+ freqQualityEstimateQuantity-TDD FreqQualityEstimateQuantity-TDD
+ }
+ }
+ }
+ }
+}
+
+InterFreqMeasuredResults ::= SEQUENCE {
+ frequencyInfo FrequencyInfo OPTIONAL,
+ utra-CarrierRSSI UTRA-CarrierRSSI OPTIONAL,
+ interFreqCellMeasuredResultsList InterFreqCellMeasuredResultsList OPTIONAL
+}
+
+InterFreqMeasuredResults-v920ext ::= SEQUENCE {
+ interFreqCellMeasuredResultsList InterFreqCellMeasuredResultsList-v920ext OPTIONAL
+}
+InterFreqMeasuredResults-vc50ext ::= SEQUENCE {
+ interFreqCellMeasuredResultsList InterFreqCellMeasuredResultsList-vc50ext OPTIONAL
+}
+
+InterFreqMeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ InterFreqMeasuredResults
+
+InterFreqMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ InterFreqMeasuredResults-v920ext
+
+InterFreqMeasuredResultsList-vc50ext ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ InterFreqMeasuredResults-vc50ext
+
+InterFreqMeasurementSysInfo-RSCP ::= SEQUENCE {
+ interFreqCellInfoSI-List InterFreqCellInfoSI-List-RSCP OPTIONAL
+}
+
+InterFreqMeasurementSysInfo-ECN0 ::= SEQUENCE {
+ interFreqCellInfoSI-List InterFreqCellInfoSI-List-ECN0 OPTIONAL
+}
+
+InterFreqMeasurementSysInfo-HCS-RSCP ::= SEQUENCE {
+ interFreqCellInfoSI-List InterFreqCellInfoSI-List-HCS-RSCP OPTIONAL
+}
+
+InterFreqMeasurementSysInfo-HCS-ECN0 ::= SEQUENCE {
+ interFreqCellInfoSI-List InterFreqCellInfoSI-List-HCS-ECN0 OPTIONAL
+}
+
+InterFreqMeasurementSysInfo-RSCP-LCR-r4 ::= SEQUENCE {
+ interFreqCellInfoSI-List InterFreqCellInfoSI-List-RSCP-LCR OPTIONAL
+}
+
+InterFreqMeasurementSysInfo-ECN0-LCR-r4 ::= SEQUENCE {
+ interFreqCellInfoSI-List InterFreqCellInfoSI-List-ECN0-LCR OPTIONAL
+}
+
+InterFreqMeasurementSysInfo-HCS-RSCP-LCR-r4 ::= SEQUENCE {
+ interFreqCellInfoSI-List InterFreqCellInfoSI-List-HCS-RSCP-LCR OPTIONAL
+}
+
+InterFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 ::= SEQUENCE {
+ interFreqCellInfoSI-List InterFreqCellInfoSI-List-HCS-ECN0-LCR OPTIONAL
+}
+
+InterFreqRACHRepCellsList ::= SEQUENCE (SIZE (1..maxFreq)) OF
+InterFreqCellID
+
+InterFreqRACHRepCellsList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF
+InterFreqCellID-r12
+
+Dummy-InterFreqRACHReportingInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ interFreqRepQuantityRACH-FDD InterFreqRepQuantityRACH-FDD
+ },
+ tdd SEQUENCE {
+ interFreqRepQuantityRACH-TDDList InterFreqRepQuantityRACH-TDDList
+ },
+ interFreqRACHReportingThreshold Threshold,
+ maxReportedCellsOnRACHinterFreq MaxReportedCellsOnRACHinterFreq
+ }
+}
+
+InterFreqRACHReportingInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ interFreqRepQuantityRACH-FDD InterFreqRepQuantityRACH-FDD
+ },
+ tdd SEQUENCE {
+ interFreqRepQuantityRACH-TDDList InterFreqRepQuantityRACH-TDDList
+ }
+ },
+ interFreqRACHReportingThreshold Threshold,
+ maxReportedCellsOnRACHinterFreq MaxReportedCellsOnRACHinterFreq
+}
+
+InterFreqBlacklistedCellsList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ InterFreqBlacklistedCells-r12
+
+InterFreqBlacklistedCells-r12 ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ excludedCellInfoList CellInfoListToBeExcluded
+}
+
+InterFreqReportCriteria ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria,
+ interFreqReportingCriteria InterFreqReportingCriteria,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+InterFreqReportCriteria-r4 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r4,
+ interFreqReportingCriteria InterFreqReportingCriteria,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+InterFreqReportCriteria-r6 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r6,
+ interFreqReportingCriteria InterFreqReportingCriteria-r6,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+InterFreqReportCriteria-r7 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r7,
+ interFreqReportingCriteria InterFreqReportingCriteria-r6,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+InterFreqReportCriteria-r9 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r9,
+ interFreqReportingCriteria InterFreqReportingCriteria-r6,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+InterFreqReportCriteria-r10 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r9,
+ interFreqReportingCriteria InterFreqReportingCriteria-r10,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus-r10,
+ noReporting ReportingCellStatusOpt-r10
+}
+
+InterFreqReportCriteria-r11 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r11,
+ interFreqReportingCriteria InterFreqReportingCriteria-r11,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus-r10,
+ noReporting ReportingCellStatusOpt-r10
+}
+
+
+InterFreqReportCriteria-r12 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r11,
+ interFreqReportingCriteria InterFreqReportingCriteria-r12,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus-r10,
+ noReporting ReportingCellStatusOpt-r10
+}
+
+InterFreqReportingCriteria ::= SEQUENCE {
+ interFreqEventList InterFreqEventList OPTIONAL
+}
+
+InterFreqReportingCriteria-r6 ::= SEQUENCE {
+ interFreqEventList InterFreqEventList-r6 OPTIONAL
+}
+
+InterFreqReportingCriteria-r10 ::= SEQUENCE {
+ interFreqEventList InterFreqEventList-r10 OPTIONAL
+}
+
+InterFreqReportingCriteria-r11 ::= SEQUENCE {
+ interFreqEventList InterFreqEventList-r11 OPTIONAL
+}
+
+InterFreqReportingCriteria-r12 ::= SEQUENCE {
+ interFreqEventList InterFreqEventList-r12 OPTIONAL,
+ interFreqBlacklistedCellsList InterFreqBlacklistedCellsList-r12 OPTIONAL
+}
+
+InterFreqReportingQuantity ::= SEQUENCE {
+ utra-Carrier-RSSI BOOLEAN,
+ frequencyQualityEstimate BOOLEAN,
+ nonFreqRelatedQuantities CellReportingQuantities
+}
+
+InterFreqRepQuantityRACH-FDD ::= ENUMERATED {
+ cpich-EcN0, cpich-RSCP }
+
+-- dummy is not used in this version of the specification, it should
+-- not be sent and if received the UE behaviour is not specified.
+InterFreqRepQuantityRACH-TDD ::= ENUMERATED {
+ dummy,
+ primaryCCPCH-RSCP }
+
+InterFreqRepQuantityRACH-TDDList ::= SEQUENCE (SIZE (1..2)) OF
+ InterFreqRepQuantityRACH-TDD
+
+InterFrequencyMeasurement ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ reportCriteria InterFreqReportCriteria
+}
+
+
+InterFrequencyMeasurement-r4 ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList-r4,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ reportCriteria InterFreqReportCriteria-r4
+}
+
+InterFrequencyMeasurement-r6 ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList-r4,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ reportCriteria InterFreqReportCriteria-r6
+}
+
+InterFrequencyMeasurement-r7 ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList-r4,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ reportCriteria InterFreqReportCriteria-r7
+}
+
+InterFrequencyMeasurement-r8 ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList-r8,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ adjacentFrequencyIndex INTEGER (0..31) OPTIONAL,
+ reportCriteria InterFreqReportCriteria-r7
+}
+
+InterFrequencyMeasurement-r9 ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList-r9,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ adjacentFrequencyIndex INTEGER (0..31) OPTIONAL,
+ interBandFrequencyIndex INTEGER (0..31) OPTIONAL,
+ reportCriteria InterFreqReportCriteria-r9
+}
+
+InterFrequencyMeasurement-r10 ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList-r10,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ adjacentFrequencyIndex INTEGER (0..31) OPTIONAL,
+ interBandFrequencyIndex INTEGER (0..31) OPTIONAL,
+ freqIndexListForEnhancedMeas FreqIndexListForEnhancedMeas OPTIONAL,
+ reportCriteria InterFreqReportCriteria-r10
+}
+
+InterFrequencyMeasurement-r11 ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList-r10,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ adjacentFrequencyIndex INTEGER (0..31) OPTIONAL,
+ interBandFrequencyIndex INTEGER (0..31) OPTIONAL,
+ freqIndexListForEnhancedMeas FreqIndexListForEnhancedMeas OPTIONAL,
+ reportCriteria InterFreqReportCriteria-r11
+}
+
+
+InterFrequencyMeasurement-r12 ::= SEQUENCE {
+ interFreqCellInfoList InterFreqCellInfoList-r12,
+ interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL,
+ interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL,
+ adjacentFrequencyIndex INTEGER (0..79) OPTIONAL,
+ interBandFrequencyIndex INTEGER (0..79) OPTIONAL,
+ freqIndexListForEnhancedMeas FreqIndexListForEnhancedMeas-r12 OPTIONAL,
+ reportCriteria InterFreqReportCriteria-r12
+}
+
+InterRAT-TargetCellDescription ::= SEQUENCE {
+ technologySpecificInfo CHOICE {
+ gsm SEQUENCE {
+ bsic BSIC,
+ frequency-band Frequency-Band,
+ bcch-ARFCN BCCH-ARFCN,
+ ncMode NC-Mode OPTIONAL
+ },
+ is-2000 NULL,
+ spare2 NULL,
+ spare1 NULL
+ }
+}
+
+InterRATCellID ::= INTEGER (0..maxCellMeas-1)
+
+InterRATCellInfoIndication ::= INTEGER (0..3)
+
+InterRATCellInfoList ::= SEQUENCE {
+ removedInterRATCellList RemovedInterRATCellList,
+ -- NOTE: Future revisions of dedicated messages including IE newInterRATCellList
+ -- should use a corrected version of this IE
+ newInterRATCellList NewInterRATCellList,
+ cellsForInterRATMeasList CellsForInterRATMeasList OPTIONAL
+}
+
+InterRATCellInfoList-B ::= SEQUENCE {
+ removedInterRATCellList RemovedInterRATCellList,
+ -- NOTE: IE newInterRATCellList should be optional. However, system information
+ -- does not support message versions. Hence, this can not be corrected
+ newInterRATCellList NewInterRATCellList-B
+}
+
+InterRATCellInfoList-r4 ::= SEQUENCE {
+ removedInterRATCellList RemovedInterRATCellList,
+ newInterRATCellList NewInterRATCellList OPTIONAL,
+ cellsForInterRATMeasList CellsForInterRATMeasList OPTIONAL
+}
+
+InterRATCellInfoList-r6 ::= SEQUENCE {
+ removedInterRATCellList RemovedInterRATCellList,
+ newInterRATCellList NewInterRATCellList OPTIONAL,
+ cellsForInterRATMeasList CellsForInterRATMeasList OPTIONAL,
+ interRATCellInfoIndication-r6 InterRATCellInfoIndication OPTIONAL
+}
+
+InterRATCellIndividualOffset ::= INTEGER (-50..50)
+
+InterRATEvent ::= CHOICE {
+ event3a Event3a,
+ event3b Event3b,
+ event3c Event3c,
+ event3d Event3d
+}
+
+InterRATEvent-r12 ::= CHOICE {
+ event3a Event3a-r12,
+ event3b Event3b-r12,
+ event3c Event3c-r12,
+ event3d Event3d
+}
+
+InterRATEventList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ InterRATEvent
+
+InterRATEventList-r12 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ InterRATEvent-r12
+
+InterRATEventResults ::= SEQUENCE {
+ eventID EventIDInterRAT,
+ cellToReportList CellToReportList
+}
+
+InterRATInfo ::= ENUMERATED {
+ gsm }
+
+InterRATInfo-r6 ::= SEQUENCE {
+ rat InterRATInfo,
+ gsm-TargetCellInfoList GSM-TargetCellInfoList OPTIONAL
+}
+
+InterRATInfo-v860ext ::= CHOICE {
+ -- CHOICE gsm is provided in IE InterRATInfo or IE InterRATInfo-r6
+ gsm NULL,
+ eutra SEQUENCE {
+ eutra-TargetFreqInfoList EUTRA-TargetFreqInfoList
+ }
+}
+
+InterRATMeasQuantity ::= SEQUENCE {
+ measQuantityUTRAN-QualityEstimate IntraFreqMeasQuantity OPTIONAL,
+ ratSpecificInfo CHOICE {
+ gsm SEQUENCE {
+ measurementQuantity MeasurementQuantityGSM,
+ filterCoefficient FilterCoefficient DEFAULT fc0,
+ bsic-VerificationRequired BSIC-VerificationRequired
+ },
+ is-2000 SEQUENCE {
+ tadd-EcIo INTEGER (0..63),
+ tcomp-EcIo INTEGER (0..15),
+ softSlope INTEGER (0..63) OPTIONAL,
+ addIntercept INTEGER (0..63) OPTIONAL
+ }
+ }
+}
+
+InterRATMeasQuantity-r8 ::= SEQUENCE {
+ measQuantityUTRAN-QualityEstimate IntraFreqMeasQuantity OPTIONAL,
+ ratSpecificInfo CHOICE {
+ gsm SEQUENCE {
+ measurementQuantity MeasurementQuantityGSM,
+ filterCoefficient FilterCoefficient DEFAULT fc0,
+ bsic-VerificationRequired BSIC-VerificationRequired
+ },
+ is-2000 SEQUENCE {
+ tadd-EcIo INTEGER (0..63),
+ tcomp-EcIo INTEGER (0..15),
+ softSlope INTEGER (0..63) OPTIONAL,
+ addIntercept INTEGER (0..63) OPTIONAL
+ },
+ e-UTRA SEQUENCE {
+ measurementQuantity MeasurementQuantityEUTRA,
+ filterCoefficient FilterCoefficient DEFAULT fc0
+ }
+ }
+}
+
+InterRATMeasuredResults ::= CHOICE {
+ gsm GSM-MeasuredResultsList,
+ spare NULL
+}
+
+InterRATMeasuredResultsList ::= SEQUENCE (SIZE (1..maxOtherRAT-16)) OF
+ InterRATMeasuredResults
+
+InterRATMeasurement ::= SEQUENCE {
+ interRATCellInfoList InterRATCellInfoList OPTIONAL,
+ interRATMeasQuantity InterRATMeasQuantity OPTIONAL,
+ interRATReportingQuantity InterRATReportingQuantity OPTIONAL,
+ reportCriteria InterRATReportCriteria
+}
+
+InterRATMeasurement-r4 ::= SEQUENCE {
+ interRATCellInfoList InterRATCellInfoList-r4 OPTIONAL,
+ interRATMeasQuantity InterRATMeasQuantity OPTIONAL,
+ interRATReportingQuantity InterRATReportingQuantity OPTIONAL,
+ reportCriteria InterRATReportCriteria
+}
+
+InterRATMeasurement-r6 ::= SEQUENCE {
+ interRATCellInfoList InterRATCellInfoList-r6 OPTIONAL,
+ interRATMeasQuantity InterRATMeasQuantity OPTIONAL,
+ interRATReportingQuantity InterRATReportingQuantity OPTIONAL,
+ reportCriteria InterRATReportCriteria
+}
+
+InterRATMeasurement-r8 ::= SEQUENCE {
+ interRATMeasurementObjects CHOICE {
+ interRATCellInfoList InterRATCellInfoList-r6,
+ eutra-FrequencyList EUTRA-FrequencyList
+ } OPTIONAL,
+ interRATMeasQuantity InterRATMeasQuantity-r8 OPTIONAL,
+ interRATReportingQuantity InterRATReportingQuantity-r8 OPTIONAL,
+ reportCriteria InterRATReportCriteria,
+ idleIntervalInfo IdleIntervalInfo OPTIONAL
+}
+
+InterRATMeasurement-r9 ::= SEQUENCE {
+ interRATMeasurementObjects CHOICE {
+ interRATCellInfoList InterRATCellInfoList-r6,
+ eutra-FrequencyList EUTRA-FrequencyList-r9
+ } OPTIONAL,
+ interRATMeasQuantity InterRATMeasQuantity-r8 OPTIONAL,
+ interRATReportingQuantity InterRATReportingQuantity-r8 OPTIONAL,
+ reportCriteria InterRATReportCriteria,
+ idleIntervalInfo IdleIntervalInfo OPTIONAL
+}
+
+InterRATMeasurement-r11 ::= SEQUENCE {
+ interRATMeasurementObjects CHOICE {
+ interRATCellInfoList InterRATCellInfoList-r6,
+ eutra-FrequencyList EUTRA-FrequencyList-r11
+ } OPTIONAL,
+ interRATMeasQuantity InterRATMeasQuantity-r8 OPTIONAL,
+ interRATReportingQuantity InterRATReportingQuantity-r8 OPTIONAL,
+ reportCriteria InterRATReportCriteria,
+ idleIntervalInfo IdleIntervalInfo OPTIONAL
+}
+
+InterRATMeasurement-r12 ::= SEQUENCE {
+ interRATMeasurementObjects CHOICE {
+ interRATCellInfoList InterRATCellInfoList-r6,
+ eutra-FrequencyList EUTRA-FrequencyList-r12
+ } OPTIONAL,
+ interRATMeasQuantity InterRATMeasQuantity-r8 OPTIONAL,
+ interRATReportingQuantity InterRATReportingQuantity-r8 OPTIONAL,
+ reportCriteria InterRATReportCriteria-r12,
+ idleIntervalInfo IdleIntervalInfo OPTIONAL
+}
+
+
+InterRATMeasurementSysInfo ::= SEQUENCE {
+ interRATCellInfoList InterRATCellInfoList OPTIONAL
+}
+
+InterRATMeasurementSysInfo-B ::= SEQUENCE {
+ interRATCellInfoList InterRATCellInfoList-B OPTIONAL
+}
+
+InterRATReportCriteria ::= CHOICE {
+ interRATReportingCriteria InterRATReportingCriteria,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+InterRATReportCriteria-r12 ::= CHOICE {
+ interRATReportingCriteria InterRATReportingCriteria-r12,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+InterRATReportingCriteria ::= SEQUENCE {
+ interRATEventList InterRATEventList OPTIONAL
+}
+
+InterRATReportingCriteria-r12 ::= SEQUENCE {
+ interRATEventList InterRATEventList-r12 OPTIONAL
+}
+
+InterRATReportingQuantity ::= SEQUENCE {
+ utran-EstimatedQuality BOOLEAN,
+ ratSpecificInfo CHOICE {
+ gsm SEQUENCE {
+ -- dummy and dummy2 are not used in this version of the specification
+ -- and when received they should be ignored.
+ dummy BOOLEAN,
+ dummy2 BOOLEAN,
+ gsm-Carrier-RSSI BOOLEAN
+ }
+ }
+}
+
+InterRATReportingQuantity-r8 ::= SEQUENCE {
+ utran-EstimatedQuality BOOLEAN,
+ ratSpecificInfo CHOICE {
+ gsm SEQUENCE {
+ gsm-Carrier-RSSI BOOLEAN
+ },
+ eutra SEQUENCE {
+ reportingQuantity ENUMERATED { measurementQuantity,
+ both }
+ }
+ }
+}
+
+IntraFreqCellID ::= INTEGER (0..maxCellMeas-1)
+
+IntraFreqCellIDOnSecULFreq ::= INTEGER (0..maxCellMeasOnSecULFreq-1)
+
+IntraFreqCellInfoList ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellList OPTIONAL,
+ cellsForIntraFreqMeasList CellsForIntraFreqMeasList OPTIONAL
+}
+
+IntraFreqCellInfoList-r4 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellList-r4 OPTIONAL,
+ cellsForIntraFreqMeasList CellsForIntraFreqMeasList OPTIONAL
+}
+
+IntraFreqCellInfoListInfoOnSecULFreq ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellListOnSecULFreq OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellListOnSecULFreq OPTIONAL,
+ cellsForIntraFreqMeasList CellsForIntraFreqMeasListOnSecULFreq OPTIONAL
+}
+
+IntraFreqCellInfoListOnSecULFreq ::= SEQUENCE {
+ intraFreqCellInfoListOnSecULFreq IntraFreqCellInfoListInfoOnSecULFreq
+}
+
+IntraFreqCellInfoList-r9 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellList-r9 OPTIONAL,
+ cellsForIntraFreqMeasList CellsForIntraFreqMeasList OPTIONAL,
+ cSGIntraFreqCellInfoList CSGIntraFreqCellInfoList OPTIONAL,
+ intraFreqSIAcquisition IntraFreqSIAcquisition OPTIONAL
+
+}
+
+IntraFreqCellInfoList-r10 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellList-r10 OPTIONAL,
+ cellsForIntraFreqMeasList CellsForIntraFreqMeasList OPTIONAL,
+ cSGIntraFreqCellInfoList CSGIntraFreqCellInfoList OPTIONAL,
+ intraFreqSIAcquisition IntraFreqSIAcquisition OPTIONAL
+}
+
+IntraFreqSIAcquisitionInfo::= SEQUENCE (SIZE (1..maxSIrequest)) OF
+ PrimaryCPICH-Info
+
+IntraFreqSIAcquisition ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ intraFreqSIAcquisitionInfo IntraFreqSIAcquisitionInfo OPTIONAL
+ },
+ tdd NULL
+ }
+}
+
+IntraFreqCellInfoSI-List-RSCP ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellSI-List-RSCP
+}
+
+IntraFreqCellInfoSI-List-ECN0 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellSI-List-ECN0
+}
+
+IntraFreqCellInfoSI-List-HCS-RSCP ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellSI-List-HCS-RSCP
+}
+
+IntraFreqCellInfoSI-List-HCS-ECN0 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellSI-List-HCS-ECN0
+}
+
+IntraFreqCellInfoSI-List-RSCP-LCR-r4 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellSI-List-RSCP-LCR-r4
+}
+
+IntraFreqCellInfoSI-List-ECN0-LCR-r4 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellSI-List-ECN0-LCR-r4
+}
+
+IntraFreqCellInfoSI-List-HCS-RSCP-LCR-r4 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellSI-List-HCS-RSCP-LCR-r4
+}
+
+IntraFreqCellInfoSI-List-HCS-ECN0-LCR-r4 ::= SEQUENCE {
+ removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL,
+ newIntraFreqCellList NewIntraFreqCellSI-List-HCS-ECN0-LCR-r4
+}
+
+IntraFreqEvent ::= CHOICE {
+ e1a Event1a,
+ e1b Event1b,
+ e1c Event1c,
+ e1d NULL,
+ e1e Event1e,
+ e1f Event1f,
+ e1g NULL,
+ e1h ThresholdUsedFrequency,
+ e1i ThresholdUsedFrequency
+}
+
+IntraFreqEvent-r4 ::= CHOICE {
+ e1a Event1a-r4,
+ e1b Event1b-r4,
+ e1c Event1c,
+ e1d NULL,
+ e1e Event1e,
+ e1f Event1f,
+ e1g NULL,
+ e1h ThresholdUsedFrequency,
+ e1i ThresholdUsedFrequency
+}
+
+IntraFreqEvent-LCR-r4 ::= CHOICE {
+ e1a Event1a-LCR-r4,
+ e1b Event1b-LCR-r4,
+ e1c Event1c,
+ e1d NULL,
+ e1e Event1e,
+ e1f Event1f,
+ e1g NULL,
+ e1h ThresholdUsedFrequency,
+ e1i ThresholdUsedFrequency
+}
+
+IntraFreqEvent-r6 ::= CHOICE {
+ e1a Event1a-r4,
+ e1b Event1b-r4,
+ e1c Event1c,
+ e1d Event1d,
+ e1e Event1e-r6,
+ e1f Event1f-r6,
+ e1g NULL,
+ e1h ThresholdUsedFrequency-r6,
+ e1i ThresholdUsedFrequency-r6,
+ e1j Event1j-r6
+}
+
+IntraFreqEvent-r7 ::= CHOICE {
+ e1a Event1a-r4,
+ e1b Event1b-r7,
+ e1c Event1c,
+ e1d Event1d,
+ e1e Event1e-r6,
+ e1f Event1f-r6,
+ e1g NULL,
+ e1h ThresholdUsedFrequency-r6,
+ e1i ThresholdUsedFrequency-r6,
+ e1j Event1j-r6
+}
+
+IntraFreqEventOnSecULFreq ::= CHOICE {
+ e1a Event1a-OnSecUlFreq-r9,
+ e1b Event1b-OnSecUlFreq-r9,
+ e1c Event1c,
+ e1e Event1e-r6,
+ e1f Event1f-r6
+}
+
+IntraFreqEvent-1d-r5 ::= SEQUENCE {
+ triggeringCondition TriggeringCondition2 OPTIONAL,
+ useCIO BOOLEAN OPTIONAL
+}
+
+IntraFreqEventCriteria ::= SEQUENCE {
+ event IntraFreqEvent,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+IntraFreqEventCriteria-r4 ::= SEQUENCE {
+ event IntraFreqEvent-r4,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+IntraFreqEventCriteria-LCR-r4 ::= SEQUENCE {
+ event IntraFreqEvent-LCR-r4,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+IntraFreqEventCriteria-r6 ::= SEQUENCE {
+ event IntraFreqEvent-r6,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+IntraFreqEventCriteria-r7 ::= SEQUENCE {
+ event IntraFreqEvent-r7,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+IntraFreqEventCriteriaOnSecULFreq ::= SEQUENCE {
+ event IntraFreqEventOnSecULFreq,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+IntraFreqEventCriteriaList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ IntraFreqEventCriteria
+
+IntraFreqEventCriteriaList-r4 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ IntraFreqEventCriteria-r4
+
+IntraFreqEventCriteriaList-LCR-r4 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ IntraFreqEventCriteria-LCR-r4
+
+IntraFreqEventCriteriaList-r6 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ IntraFreqEventCriteria-r6
+
+IntraFreqEventCriteriaList-r7 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ IntraFreqEventCriteria-r7
+
+IntraFreqEventCriteriaListOnSecULFreq ::= SEQUENCE{
+ frequencyInfo FrequencyInfo,
+ intraFreqEventCriteria SEQUENCE (SIZE (1..maxMeasEventOnSecULFreq)) OF
+ IntraFreqEventCriteriaOnSecULFreq
+}
+
+IntraFreqEventResults ::= SEQUENCE {
+ eventID EventIDIntraFreq,
+ cellMeasurementEventResults CellMeasurementEventResults
+}
+
+IntraFreqEventResultsOnSecUlFreq ::= SEQUENCE {
+ eventID EventIDIntraFreq,
+ cellMeasurementEventResultsOnSecUlFreq CellMeasurementEventResultsOnSecUlFreq
+}
+
+IntraFreqMeasQuantity ::= SEQUENCE {
+ filterCoefficient FilterCoefficient DEFAULT fc0,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ intraFreqMeasQuantity-FDD IntraFreqMeasQuantity-FDD
+ },
+ tdd SEQUENCE {
+ intraFreqMeasQuantity-TDDList IntraFreqMeasQuantity-TDDList
+ }
+ }
+}
+
+-- If IntraFreqMeasQuantity-FDD is used in InterRATMeasQuantity, then only
+-- cpich-Ec-N0 and cpich-RSCP are allowed.
+-- dummy is not used in this version of the specification, it should
+-- not be sent and if received the UE behaviour is not specified.
+IntraFreqMeasQuantity-FDD ::= ENUMERATED {
+ cpich-Ec-N0,
+ cpich-RSCP,
+ pathloss,
+ dummy }
+
+IntraFreqMeasQuantity-FDD-sib3 ::= ENUMERATED {
+ cpich-Ec-N0, cpich-RSCP }
+
+-- dummy is not used in this version of the specification, it should
+-- not be sent and if received the UE behaviour is not specified.
+IntraFreqMeasQuantity-TDD ::= ENUMERATED {
+ primaryCCPCH-RSCP,
+ pathloss,
+ timeslotISCP,
+ dummy }
+
+IntraFreqMeasQuantity-TDDList ::= SEQUENCE (SIZE (1..4)) OF
+ IntraFreqMeasQuantity-TDD
+
+IntraFreqMeasQuantity-TDD-sib3List ::= SEQUENCE (SIZE (1..2)) OF
+ ENUMERATED { primaryCCPCH-RSCP, timeslotISCP }
+
+IntraFreqMeasuredResultsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellMeasuredResults
+
+IntraFreqMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellMeasuredResults-v920ext
+
+IntraFreqMeasuredResultsList-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellMeasuredResults-vc50ext
+
+IntraFreqMeasurementSysInfo-RSCP ::= SEQUENCE {
+ intraFreqMeasurementID MeasurementIdentity DEFAULT 1,
+ intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-RSCP OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL,
+ maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL,
+ reportingInfoForCellDCH ReportingInfoForCellDCH OPTIONAL
+}
+
+IntraFreqMeasurementSysInfo-ECN0 ::= SEQUENCE {
+ intraFreqMeasurementID MeasurementIdentity DEFAULT 1,
+ intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-ECN0 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL,
+ maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL,
+ reportingInfoForCellDCH ReportingInfoForCellDCH OPTIONAL
+}
+
+IntraFreqMeasurementSysInfo-HCS-RSCP ::= SEQUENCE {
+ intraFreqMeasurementID MeasurementIdentity DEFAULT 1,
+ intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-HCS-RSCP OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL,
+ maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL,
+ reportingInfoForCellDCH ReportingInfoForCellDCH OPTIONAL
+}
+
+IntraFreqMeasurementSysInfo-HCS-ECN0 ::= SEQUENCE {
+ intraFreqMeasurementID MeasurementIdentity DEFAULT 1,
+ intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-HCS-ECN0 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL,
+ maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL,
+ reportingInfoForCellDCH ReportingInfoForCellDCH OPTIONAL
+}
+
+IntraFreqMeasurementSysInfo-RSCP-LCR-r4 ::= SEQUENCE {
+ intraFreqMeasurementID MeasurementIdentity DEFAULT 1,
+ intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-RSCP-LCR-r4 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL,
+ maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL,
+ reportingInfoForCellDCH ReportingInfoForCellDCH-LCR-r4 OPTIONAL
+}
+
+IntraFreqMeasurementSysInfo-ECN0-LCR-r4 ::= SEQUENCE {
+ intraFreqMeasurementID MeasurementIdentity DEFAULT 1,
+ intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-ECN0-LCR-r4 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL,
+ maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL,
+ reportingInfoForCellDCH ReportingInfoForCellDCH-LCR-r4 OPTIONAL
+}
+
+IntraFreqMeasurementSysInfo-HCS-RSCP-LCR-r4 ::= SEQUENCE {
+ intraFreqMeasurementID MeasurementIdentity DEFAULT 1,
+ intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-HCS-RSCP-LCR-r4 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL,
+ maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL,
+ reportingInfoForCellDCH ReportingInfoForCellDCH-LCR-r4 OPTIONAL
+}
+
+IntraFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 ::= SEQUENCE {
+ intraFreqMeasurementID MeasurementIdentity DEFAULT 1,
+ intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-HCS-ECN0-LCR-r4 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL,
+ maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL,
+ reportingInfoForCellDCH ReportingInfoForCellDCH-LCR-r4 OPTIONAL
+}
+
+IntraFreqReportCriteria ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+IntraFreqReportCriteria-r4 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r4,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+IntraFreqReportCriteria-r6 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r6,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+IntraFreqReportCriteria-r7 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r7,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+IntraFreqReportCriteria-r9 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r9,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+IntraFreqReportCriteria-r11 ::= CHOICE {
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r11,
+ periodicalReportingCriteria PeriodicalWithReportingCellStatus,
+ noReporting ReportingCellStatusOpt
+}
+
+IntraFreqReportingCriteria ::= SEQUENCE {
+ eventCriteriaList IntraFreqEventCriteriaList OPTIONAL
+}
+
+IntraFreqReportingCriteria-r4 ::= SEQUENCE {
+ eventCriteriaList IntraFreqEventCriteriaList-r4 OPTIONAL
+}
+
+IntraFreqReportingCriteria-LCR-r4 ::= SEQUENCE {
+ eventCriteriaList IntraFreqEventCriteriaList-LCR-r4 OPTIONAL
+}
+
+IntraFreqReportingCriteria-r6 ::= SEQUENCE {
+ eventCriteriaList IntraFreqEventCriteriaList-r6 OPTIONAL
+}
+
+IntraFreqReportingCriteria-r7 ::= SEQUENCE {
+ eventCriteriaList IntraFreqEventCriteriaList-r7 OPTIONAL
+}
+
+IntraFreqReportingCriteria-r9 ::= SEQUENCE {
+ eventCriteriaList IntraFreqEventCriteriaList-r7 OPTIONAL,
+ eventCriteriaListOnSecULFreq IntraFreqEventCriteriaListOnSecULFreq OPTIONAL
+}
+
+IntraFreqReportingCriteria-r11 ::= SEQUENCE {
+ eventCriteriaList IntraFreqEventCriteriaList-r7 OPTIONAL,
+ eventCriteriaListOnSecULFreq IntraFreqEventCriteriaListOnSecULFreq OPTIONAL,
+ excludedCellInfoList CellInfoListToBeExcluded OPTIONAL
+}
+
+IntraFreqReportingCriteria-1b-r5 ::= SEQUENCE {
+ periodicReportingInfo-1b PeriodicReportingInfo-1b
+}
+
+IntraFreqReportingQuantity ::= SEQUENCE {
+ activeSetReportingQuantities CellReportingQuantities,
+ monitoredSetReportingQuantities CellReportingQuantities,
+ detectedSetReportingQuantities CellReportingQuantities OPTIONAL
+}
+
+IntraFreqReportingQuantityForRACH ::= SEQUENCE {
+ sfn-SFN-OTD-Type SFN-SFN-OTD-Type,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ intraFreqRepQuantityRACH-FDD IntraFreqRepQuantityRACH-FDD
+ },
+ tdd SEQUENCE {
+ intraFreqRepQuantityRACH-TDDList IntraFreqRepQuantityRACH-TDDList
+ }
+ }
+}
+
+IntraFreqReportingQuantityForRACH-vc50ext ::= SEQUENCE {
+ intraFreqRepQuantityRACH-FDD ENUMERATED {
+ cpich-EcN0-RSCP, spare1}
+}
+
+IntraFreqRepQuantityRACH-FDD ::= ENUMERATED {
+ cpich-EcN0, cpich-RSCP,
+ pathloss, noReport }
+
+IntraFreqRepQuantityRACH-TDD ::= ENUMERATED {
+ timeslotISCP,
+ primaryCCPCH-RSCP,
+ noReport }
+
+IntraFreqRepQuantityRACH-TDDList ::= SEQUENCE (SIZE (1..2)) OF
+ IntraFreqRepQuantityRACH-TDD
+
+IntraFrequencyMeasurement ::= SEQUENCE {
+ intraFreqCellInfoList IntraFreqCellInfoList OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria IntraFreqReportCriteria OPTIONAL
+}
+
+IntraFrequencyMeasurement-r4 ::= SEQUENCE {
+ intraFreqCellInfoList IntraFreqCellInfoList-r4 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria IntraFreqReportCriteria-r4 OPTIONAL
+}
+
+IntraFrequencyMeasurement-r6 ::= SEQUENCE {
+ intraFreqCellInfoList IntraFreqCellInfoList-r4 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ -- reportCriteria is optional in later versions of this message
+ reportCriteria IntraFreqReportCriteria-r6
+}
+
+IntraFrequencyMeasurement-r7 ::= SEQUENCE {
+ intraFreqCellInfoList IntraFreqCellInfoList-r4 OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria IntraFreqReportCriteria-r7 OPTIONAL
+}
+
+IntraFrequencyMeasurement-r9 ::= SEQUENCE {
+ intraFreqCellInfoList IntraFreqCellInfoList-r9 OPTIONAL,
+ intraFreqCellInfoListOnSecULFreq IntraFreqCellInfoListOnSecULFreq OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria IntraFreqReportCriteria-r9 OPTIONAL
+}
+
+IntraFrequencyMeasurement-r10 ::= SEQUENCE {
+ intraFreqCellInfoList IntraFreqCellInfoList-r10 OPTIONAL,
+ intraFreqCellInfoListOnSecULFreq IntraFreqCellInfoListOnSecULFreq OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria IntraFreqReportCriteria-r9 OPTIONAL
+}
+
+IntraFrequencyMeasurement-r11 ::= SEQUENCE {
+ intraFreqCellInfoList IntraFreqCellInfoList-r10 OPTIONAL,
+ intraFreqCellInfoListOnSecULFreq IntraFreqCellInfoListOnSecULFreq OPTIONAL,
+ intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL,
+ intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria IntraFreqReportCriteria-r11 OPTIONAL,
+ periodicalReportingCriteriaOnSecULFreq
+ PeriodicalWithReportingCellStatusOnSecULFreq OPTIONAL
+}
+
+IntraFrequencyMeasuredResultsListOnSecULFreq ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF
+ CellMeasuredResults-r9
+
+IntraFrequencyMeasuredResultsListOnSecULFreq-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq))
+ OF CellMeasuredResults-vc50ext
+
+IntraUTRAANR ::= SEQUENCE {
+ loggingAbsoluteThreshold LoggingAbsoluteThreshold,
+ loggingRelativeThreshold LoggingRelativeThreshold OPTIONAL
+}
+
+IODE ::= INTEGER (0..255)
+
+IP-Length ::= ENUMERATED {
+ ipl5, ipl10 }
+
+IP-PCCPCH-r4 ::= BOOLEAN
+
+IP-Spacing ::= ENUMERATED {
+ e5, e7, e10, e15, e20,
+ e30, e40, e50 }
+
+IP-Spacing-TDD ::= ENUMERATED {
+ e30, e40, e50, e70, e100}
+
+IS-2000SpecificMeasInfo ::= ENUMERATED {
+ frequency, timeslot, colourcode,
+ outputpower, pn-Offset }
+
+LoggedANRConfigurationInfo ::= SEQUENCE {
+ loggingDuration ENUMERATED { min10, min30, hr1, spare2, spare1 },
+ intraUTRAANR IntraUTRAANR OPTIONAL,
+ interRATANRforEUTRAIndicator ENUMERATED { true } OPTIONAL,
+ interRATANRforGSMIndicator ENUMERATED { true } OPTIONAL
+}
+
+LoggedANRReportInfoList ::= SEQUENCE (SIZE (1..maxNumANRLoggedItems)) OF
+ LoggedANRReportInfo
+
+LoggedANRReportInfoList-vb50ext ::= SEQUENCE (SIZE (1..maxNumANRLoggedItems)) OF
+ LoggedANRReportInfo-vb50ext
+
+LoggedANRReportInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ servingCell CellIdentity,
+ loggedCellInfo LoggedCellInfo
+}
+
+LoggedANRReportInfo-vb50ext ::= SEQUENCE {
+ loggedCellInfo LoggedCellInfo-vb50ext
+}
+
+LoggedCellInfo ::= CHOICE {
+ loggedUTRACellInfo LoggedUTRACellInfo,
+ loggedEUTRACellInfo LoggedEUTRACellInfo,
+ loggedGSMCellInfo LoggedGSMCellInfo
+}
+
+LoggedCellInfo-vb50ext ::= CHOICE {
+ loggedEUTRACellInfo LoggedEUTRACellInfo-vb50ext
+}
+
+LoggedConnectionEstablishmentFailureInfo-FDD ::= SEQUENCE {
+ loggedConnectionEstablishmentFailureAccessInfo-FDD
+ LoggedConnectionEstablishmentFailureAccessInfo-FDD,
+ loggedMeasFailedCellMeas LoggedMeasServingCellMeas-FDD,
+ loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourList-FDD OPTIONAL,
+ loggedMeasInterfreqList LoggedMeasInterfreqList-FDD OPTIONAL,
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL,
+ loggedConnectionEstablishmentFailureLocationInfo
+ LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL
+}
+
+LoggedConnectionEstablishmentFailureInfo-FDD-vc50ext ::= SEQUENCE {
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vc50ext OPTIONAL
+}
+
+LoggedConnectionEstablishmentFailureInfo-FDD-r11 ::= SEQUENCE {
+ loggedConnectionEstablishmentFailureAccessInfo-FDD
+ LoggedConnectionEstablishmentFailureAccessInfo-FDD,
+ loggedMeasFailedCellMeas LoggedMeasServingCellMeas-FDD,
+ loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourList-FDD OPTIONAL,
+ loggedMeasInterfreqList LoggedMeasInterfreqList-FDD OPTIONAL,
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-r11 OPTIONAL,
+ loggedConnectionEstablishmentFailureLocationInfo
+ LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL
+}
+
+LoggedConnectionEstablishmentFailureInfo-TDD128 ::= SEQUENCE {
+ loggedConnectionEstablishmentFailureAccessInfo-TDD
+ LoggedConnectionEstablishmentFailureAccessInfo-TDD,
+ loggedMeasFailedCellMeas LoggedMeasServingCellMeas-TDD128,
+ loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourMeasList-TDD128 OPTIONAL,
+ loggedMeasInterfreqList LoggedMeasInterfreqList-TDD128 OPTIONAL,
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL,
+ loggedConnectionEstablishmentFailureLocationInfo
+ LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL
+}
+
+LoggedConnectionEstablishmentFailureInfo-TDD128-r11 ::= SEQUENCE {
+ loggedConnectionEstablishmentFailureAccessInfo-TDD
+ LoggedConnectionEstablishmentFailureAccessInfo-TDD,
+ loggedMeasFailedCellMeas LoggedMeasServingCellMeas-TDD128,
+ loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourMeasList-TDD128 OPTIONAL,
+ loggedMeasInterfreqList LoggedMeasInterfreqList-TDD128 OPTIONAL,
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-r11 OPTIONAL,
+ loggedConnectionEstablishmentFailureLocationInfo
+ LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL
+}
+
+LoggedConnectionEstablishmentFailureInfo-TDD128-vc50ext ::= SEQUENCE {
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vc50ext OPTIONAL
+}
+
+
+LoggedConnectionEstablishmentFailureAccessInfo-FDD ::= SEQUENCE {
+ numberOfRRCMsgTransmitted INTEGER (0..8)
+}
+
+LoggedConnectionEstablishmentFailureAccessInfo-TDD ::= SEQUENCE {
+ numberOfRRCMsgTransmitted INTEGER (0..8),
+ fpachReceived BOOLEAN,
+ e-RUCCHFailure BOOLEAN OPTIONAL
+}
+
+LoggedConnectionEstablishmentFailureLocationInfo ::= SEQUENCE {
+ location CHOICE {
+ ellipsoidPoint EllipsoidPoint,
+ ellipsoidPointUncertCircle EllipsoidPointUncertCircle,
+ ellipsoidPointUncertEllipse EllipsoidPointUncertEllipse,
+ ellipsoidPointAltitude EllipsoidPointAltitude,
+ ellipsoidPointAltitudeEllipse EllipsoidPointAltitudeEllipsoide
+ },
+ horizontalVelocity HorizontalVelocity OPTIONAL
+}
+
+ConnectionEstablishmentFailureReport ::= SEQUENCE {
+ timeSinceFailure INTEGER (0..172800),
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ loggedConnectionEstablishmentFailureInfo
+ LoggedConnectionEstablishmentFailureInfo-FDD
+ },
+ tdd SEQUENCE {
+ loggedConnectionEstablishmentFailureInfo
+ LoggedConnectionEstablishmentFailureInfo-TDD128
+ }
+ }
+}
+
+ConnectionEstablishmentFailureReport-r11 ::= SEQUENCE {
+ timeSinceFailure INTEGER (0..172800),
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ loggedConnectionEstablishmentFailureInfo
+ LoggedConnectionEstablishmentFailureInfo-FDD-r11
+ },
+ tdd SEQUENCE {
+ loggedConnectionEstablishmentFailureInfo
+ LoggedConnectionEstablishmentFailureInfo-TDD128-r11
+ }
+ }
+}
+
+ConnectionEstablishmentFailureReport-vc50ext ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ loggedConnectionEstablishmentFailureInfo
+ LoggedConnectionEstablishmentFailureInfo-FDD-vc50ext
+ },
+ tdd SEQUENCE {
+ loggedConnectionEstablishmentFailureInfo
+ LoggedConnectionEstablishmentFailureInfo-TDD128-vc50ext
+ }
+
+ }
+}
+
+LoggedEUTRACellInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ trackingAreaCode BIT STRING (SIZE (16)),
+ eutraCellIdentity BIT STRING (SIZE (28)),
+ earfcn EARFCN,
+ physicalCellIdentity EUTRA-PhysicalCellIdentity
+}
+
+LoggedEUTRACellInfo-vb50ext ::= SEQUENCE {
+ earfcn EARFCNExtension OPTIONAL
+}
+
+LoggedGSMCellInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ lac BIT STRING (SIZE (16)),
+ gsmCellIdentity BIT STRING (SIZE (16)),
+ bcch-ARFCN BCCH-ARFCN,
+ bandIndicator Frequency-Band,
+ bsic BSIC
+}
+
+LoggedMeasurementsConfigurationInfo ::= SEQUENCE {
+ absoluteTimeInfo BIT STRING (SIZE(48)),
+ loggingDuration ENUMERATED {min10, min20, min40, hr1, hr1min30,hr2,spare2,spare1},
+ loggingInterval ENUMERATED {li128,li256,li512,li1024,li2048,li3072,li4096,li6144},
+ traceReference TraceReference,
+ traceRecordingSession TraceRecordingSession,
+ tce-Id TCE-Id,
+ areaConfiguration CHOICE {
+ cellIDList SEQUENCE (SIZE (1..32)) OF
+ CellIdentity,
+ locationAreaList SEQUENCE (SIZE (1..8)) OF
+ LAI,
+ routingAreaList SEQUENCE (SIZE (1..8)) OF
+ RAI
+ } OPTIONAL
+}
+
+LoggedMeasurementsConfigurationInfo-r11 ::= SEQUENCE {
+ absoluteTimeInfo BIT STRING (SIZE(48)),
+ loggingDuration ENUMERATED {min10, min20, min40, hr1, hr1min30,hr2,spare2,spare1},
+ loggingInterval ENUMERATED {li128,li256,li512,li1024,li2048,li3072,li4096,li6144},
+ traceReference TraceReference,
+ traceRecordingSession TraceRecordingSession,
+ tce-Id TCE-Id,
+ plmnList PlmnList OPTIONAL,
+ areaConfiguration CHOICE {
+ cellIDList SEQUENCE (SIZE (1..32)) OF CellIDListItem,
+ locationAreaList SEQUENCE (SIZE (1..8)) OF
+ LAI,
+ routingAreaList SEQUENCE (SIZE (1..8)) OF
+ RAI
+ } OPTIONAL
+}
+
+LoggedMeasInterfreqList-FDD ::= SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF
+ LoggedMeasInterfreqInfo-FDD
+
+LoggedMeasInterfreqInfo-FDD ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ loggedMeasInterfreqNeighbourList SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF
+ LoggedMeasNeighbourInfo-FDD
+}
+
+LoggedMeasInterfreqInfo-TDD128 ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ loggedMeasInterfreqNeighbourList LoggedMeasInterfreqNeighbourList-TDD128
+}
+
+LoggedMeasInterRATNeighbourMeas ::= SEQUENCE {
+ loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList OPTIONAL,
+ loggedMeasGSMNeighbourCellsList LoggedMeasGSMNeighbourCellsList OPTIONAL
+}
+
+LoggedMeasInterRATNeighbourMeas-vb50ext ::= SEQUENCE {
+ loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList-vb50ext
+}
+
+LoggedMeasInterRATNeighbourMeas-vc50ext ::= SEQUENCE {
+ loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList-vc50ext OPTIONAL
+}
+
+LoggedMeasInterRATNeighbourMeas-r11 ::= SEQUENCE {
+ loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList-r11 OPTIONAL,
+ loggedMeasGSMNeighbourCellsList LoggedMeasGSMNeighbourCellsList OPTIONAL
+}
+
+LoggedMeasIntrafreqNeighbourList-FDD ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF
+ LoggedMeasNeighbourInfo-FDD
+
+LoggedMeasNeighbourInfo-FDD ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ cpich-RSCP CPICH-RSCP,
+ cpich-Ec-N0 CPICH-Ec-N0
+}
+
+LoggedMeasIntrafreqNeighbourMeasList-TDD128 ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF
+ LoggedMeasNeighbourMeas-TDD128
+
+LoggedMeasNeighbourMeas-TDD128 ::= SEQUENCE {
+ cellParametersID CellParametersID,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP
+}
+
+LoggedMeasGSMNeighbourCellsList ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF
+ LoggedMeasGSMNeighbourCellsinfo
+
+LoggedMeasGSMNeighbourCellsinfo ::= SEQUENCE {
+ bsic BSIC,
+ frequency-band Frequency-Band,
+ bcch-ARFCN BCCH-ARFCN,
+ gsm-CarrierRSSI GSM-CarrierRSSI
+}
+
+LoggedMeasEUTRAFreqList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs))OF
+ LoggedMeasEUTRAFreqInfo
+
+LoggedMeasEUTRAFreqList-vb50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ LoggedMeasEUTRAFreqInfo-vb50ext
+
+LoggedMeasEUTRAFreqList-r11 ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ LoggedMeasEUTRAFreqInfo-r11
+
+LoggedMeasEUTRAFreqList-vc50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF
+ LoggedMeasEUTRAFreqInfo-vc50ext
+
+LoggedMeasEUTRAFreqInfo ::= SEQUENCE {
+ earfcn EARFCN,
+ loggedMeasEUTRAFreqNeighbourInfoList SEQUENCE (SIZE (1.. maxnumLoggedMeas)) OF
+ LoggedMeasEUTRAFreqNeighbourInfo
+}
+
+LoggedMeasEUTRAFreqInfo-vb50ext ::= SEQUENCE {
+ earfcn EARFCNExtension OPTIONAL
+}
+
+LoggedMeasEUTRAFreqInfo-r11 ::= SEQUENCE {
+ earfcn EARFCNRange,
+ loggedMeasEUTRAFreqNeighbourInfoList SEQUENCE (SIZE (1.. maxnumLoggedMeas)) OF
+ LoggedMeasEUTRAFreqNeighbourInfo
+}
+
+LoggedMeasEUTRAFreqInfo-vc50ext ::= SEQUENCE {
+ rSRQType RsrqType OPTIONAL,
+ loggedMeasEUTRAFreqNeighbourInfoList SEQUENCE (SIZE (1.. maxnumLoggedMeas)) OF
+ LoggedMeasEUTRAFreqNeighbourInfo-vc50ext
+}
+
+LoggedMeasEUTRAFreqNeighbourInfo ::= SEQUENCE {
+ physicalCellIdentity EUTRA-PhysicalCellIdentity,
+ rSRP INTEGER (0..97) ,
+ rSRQ INTEGER (0..33)
+}
+
+LoggedMeasEUTRAFreqNeighbourInfo-vc50ext ::= SEQUENCE {
+ rSRQExtension INTEGER (-30..46) OPTIONAL
+}
+
+LoggedMeasInfo-FDD ::= SEQUENCE {
+ relativeTimeStamp INTEGER (0..7200),
+ loggedMeasServingCellMeas LoggedMeasServingCellMeas-FDD,
+ loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourList-FDD OPTIONAL,
+ loggedMeasInterfreqList LoggedMeasInterfreqList-FDD OPTIONAL,
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas OPTIONAL,
+ loggedMeasLocationInfo LoggedMeasLocationInfo OPTIONAL
+}
+
+LoggedMeasInfo-FDD-vb50ext ::= SEQUENCE {
+ loggedMeasServingCellMeas LoggedMeasServingCellMeas-FDD-vb50ext OPTIONAL,
+ loggedMeasLocationInfo LoggedMeasLocationInfo-vb50ext OPTIONAL,
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL
+}
+
+LoggedMeasInfo-FDD-vc50ext ::= SEQUENCE {
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vc50ext OPTIONAL
+}
+
+LoggedMeasInfo-TDD128 ::= SEQUENCE {
+ relativeTimeStamp INTEGER (0..7200),
+ loggedMeasServingCellMeas LoggedMeasServingCellMeas-TDD128,
+ loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourMeasList-TDD128 OPTIONAL,
+ loggedMeasInterfreqList LoggedMeasInterfreqList-TDD128 OPTIONAL,
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas OPTIONAL,
+ loggedMeasLocationInfo LoggedMeasLocationInfo OPTIONAL
+}
+
+LoggedMeasInfo-TDD128-vb50ext ::= SEQUENCE {
+ loggedMeasServingCellMeas LoggedMeasServingCellMeas-TDD128-vb50ext OPTIONAL,
+ loggedMeasLocationInfo LoggedMeasLocationInfo-vb50ext OPTIONAL,
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL
+}
+
+LoggedMeasInfo-TDD128-vc50ext ::= SEQUENCE {
+ loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vc50ext OPTIONAL
+}
+
+LoggedMeasInfoList-FDD ::= SEQUENCE (SIZE (1.. maxLoggedMeasReport)) OF LoggedMeasInfo-FDD
+
+LoggedMeasInfoList-FDD-vb50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-FDD-vb50ext
+
+LoggedMeasInfoList-FDD-vc50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-FDD-vc50ext
+
+LoggedMeasInfoList-TDD128 ::= SEQUENCE (SIZE (1.. maxLoggedMeasReport)) OF LoggedMeasInfo-TDD128
+
+LoggedMeasInfoList-TDD128-vb50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-TDD128-vb50ext
+
+LoggedMeasInfoList-TDD128-vc50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-TDD128-vc50ext
+
+LoggedMeasInfoList ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ loggedMeasInfoList LoggedMeasInfoList-FDD
+ },
+ tdd SEQUENCE {
+ loggedMeasInfoList LoggedMeasInfoList-TDD128
+ }
+ }
+}
+
+LoggedMeasInfoList-vb50ext ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ loggedMeasInfoList LoggedMeasInfoList-FDD-vb50ext
+ },
+ tdd SEQUENCE {
+ loggedMeasInfoList LoggedMeasInfoList-TDD128-vb50ext
+ }
+ }
+}
+
+LoggedMeasInfoList-vc50ext ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ loggedMeasInfoList LoggedMeasInfoList-FDD-vc50ext
+ },
+ tdd SEQUENCE {
+ loggedMeasInfoList LoggedMeasInfoList-TDD128-vc50ext
+ }
+ }
+}
+
+LoggedMeasInterfreqList-TDD128 ::= SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF
+ LoggedMeasInterfreqInfo-TDD128
+
+LoggedMeasInterfreqNeighbourList-TDD128 ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF
+ LoggedMeasNeighbourMeas-TDD128
+
+LoggedMeasLocationInfo ::= CHOICE {
+ ellipsoidPoint EllipsoidPoint,
+ ellipsoidPointAltitude EllipsoidPointAltitude
+}
+
+LoggedMeasLocationInfo-vb50ext ::= CHOICE {
+ ellipsoidPointUncertCircle EllipsoidPointUncertCircle,
+ ellipsoidPointUncertEllipse EllipsoidPointUncertEllipse,
+ ellipsoidPointAltitudeEllipse EllipsoidPointAltitudeEllipsoide
+}
+
+LoggedMeasReport ::= SEQUENCE {
+ absoluteTimeInfo BIT STRING (SIZE(48)),
+ traceReference TraceReference,
+ traceRecordingSession TraceRecordingSession,
+ tce-Id TCE-Id,
+ loggedMeasInfoList LoggedMeasInfoList OPTIONAL,
+ loggedMeasAvailable ENUMERATED { true } OPTIONAL
+}
+
+LoggedMeasReport-vb50ext ::= SEQUENCE {
+ loggedMeasInfoList LoggedMeasInfoList-vb50ext OPTIONAL
+}
+
+LoggedMeasReport-vc50ext ::= SEQUENCE {
+ loggedMeasInfoList LoggedMeasInfoList-vc50ext OPTIONAL
+}
+
+LoggedMeasServingCellMeas-FDD ::= SEQUENCE {
+ cellIdentity CellIdentity,
+ cpich-RSCP CPICH-RSCP,
+ cpich-Ec-N0 CPICH-Ec-N0
+}
+
+LoggedMeasServingCellMeas-FDD-vb50ext ::= SEQUENCE {
+ plmnIdentity PLMN-Identity OPTIONAL
+}
+
+LoggedMeasServingCellMeas-TDD128 ::= SEQUENCE {
+ cellIdentity CellIdentity,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP
+}
+
+LoggedMeasServingCellMeas-TDD128-vb50ext ::= SEQUENCE {
+ plmnIdentity PLMN-Identity OPTIONAL
+}
+
+LoggedUTRACellInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity CellIdentity,
+ uarfcn UARFCN,
+ cellParametersID CellParametersID OPTIONAL,
+ primaryScramblingCode PrimaryScramblingCode OPTIONAL
+}
+
+LoggingAbsoluteThreshold ::= CHOICE {
+ rscpforANR RSCPforANR,
+ ec-N0forANR Ec-N0forANR
+}
+
+-- it applies to RSCP by step of 2 and Ec/N0 by step of 1
+-- Actual value LoggingRelativeThreshold = IE value * 2 (RSCP)
+-- Actual value LoggingRelativeThreshold = IE value (Ec/N0)
+LoggingRelativeThreshold ::= INTEGER (-4..16)
+
+KeplerianParameters ::= SEQUENCE {
+ toe-nav BIT STRING (SIZE (14)),
+ ganss-omega-nav BIT STRING (SIZE (32)),
+ delta-n-nav BIT STRING (SIZE (16)),
+ m-zero-nav BIT STRING (SIZE (32)),
+ omegadot-nav BIT STRING (SIZE (24)),
+ ganss-e-nav BIT STRING (SIZE (32)),
+ idot-nav BIT STRING (SIZE (14)),
+ a-sqrt-nav BIT STRING (SIZE (32)),
+ i-zero-nav BIT STRING (SIZE (32)),
+ omega-zero-nav BIT STRING (SIZE (32)),
+ c-rs-nav BIT STRING (SIZE (16)),
+ c-is-nav BIT STRING (SIZE (16)),
+ c-us-nav BIT STRING (SIZE (16)),
+ c-rc-nav BIT STRING (SIZE (16)),
+ c-ic-nav BIT STRING (SIZE (16)),
+ c-uc-nav BIT STRING (SIZE (16))
+}
+
+MaxNumberOfReportingCellsType1 ::= ENUMERATED {
+ e1, e2, e3, e4, e5, e6}
+
+MaxNumberOfReportingCellsType2 ::= ENUMERATED {
+ e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12}
+
+MaxNumberOfReportingCellsType3 ::= ENUMERATED {
+ viactCellsPlus1,
+ viactCellsPlus2,
+ viactCellsPlus3,
+ viactCellsPlus4,
+ viactCellsPlus5,
+ viactCellsPlus6 }
+
+MaxReportedCellsOnRACH ::= ENUMERATED {
+ noReport,
+ currentCell,
+ currentAnd-1-BestNeighbour,
+ currentAnd-2-BestNeighbour,
+ currentAnd-3-BestNeighbour,
+ currentAnd-4-BestNeighbour,
+ currentAnd-5-BestNeighbour,
+ currentAnd-6-BestNeighbour }
+
+MaxReportedCellsOnRACHinterFreq ::= INTEGER (1..8)
+
+MeasuredResults ::= CHOICE {
+ intraFreqMeasuredResultsList IntraFreqMeasuredResultsList,
+ interFreqMeasuredResultsList InterFreqMeasuredResultsList,
+ interRATMeasuredResultsList InterRATMeasuredResultsList,
+ trafficVolumeMeasuredResultsList TrafficVolumeMeasuredResultsList,
+ qualityMeasuredResults QualityMeasuredResults,
+ ue-InternalMeasuredResults UE-InternalMeasuredResults,
+ ue-positioning-MeasuredResults UE-Positioning-MeasuredResults,
+ spare NULL
+}
+
+MeasuredResultsOnSecUlFreq ::= SEQUENCE {
+ intraFreqMeasuredResultsList IntraFrequencyMeasuredResultsListOnSecULFreq
+}
+
+MeasuredResultsOnSecUlFreq-vc50ext ::= SEQUENCE {
+ intraFreqMeasuredResultsList IntraFrequencyMeasuredResultsListOnSecULFreq-vc50ext
+}
+
+MeasuredResults-v390ext ::= SEQUENCE {
+ ue-positioning-MeasuredResults-v390ext UE-Positioning-MeasuredResults-v390ext
+}
+
+
+MeasuredResults-v590ext ::= CHOICE {
+ intraFrequencyMeasuredResultsList IntraFrequencyMeasuredResultsList-v590ext,
+ interFrequencyMeasuredResultsList InterFrequencyMeasuredResultsList-v590ext
+}
+
+MeasuredResults-v770ext ::= CHOICE {
+ ueInternalMeasuredResults UE-InternalMeasuredResults-v770ext,
+ ue-positioning-MeasuredResults UE-Positioning-MeasuredResults-v770ext
+}
+
+MeasuredResults-v860ext ::= CHOICE {
+ ue-positioning-MeasuredResults UE-Positioning-MeasuredResults-v860ext
+}
+
+MeasuredResults-vdxyext ::= CHOICE {
+ ue-positioning-MeasuredResults UE-Positioning-MeasuredResults-vdxyext
+}
+
+MeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasuredResults-v920ext
+
+MeasuredResultsList-vc50ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasuredResults-vc50ext
+
+MeasuredResultsList-vdxyext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasuredResults-vdxyext
+
+MeasuredResultsListOnSecUlFreq ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasuredResultsOnSecUlFreq
+
+MeasuredResultsListOnSecUlFreq-vc50ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasuredResultsOnSecUlFreq-vc50ext
+
+MeasuredResults-v920ext ::= CHOICE {
+ intraFreqMeasuredResultsList IntraFreqMeasuredResultsList-v920ext,
+ interFreqMeasuredResultsList InterFreqMeasuredResultsList-v920ext
+}
+
+MeasuredResults-vc50ext ::= CHOICE {
+ intraFreqMeasuredResultsList IntraFreqMeasuredResultsList-vc50ext,
+ interFreqMeasuredResultsList InterFreqMeasuredResultsList-vc50ext,
+ ue-positioning-MeasuredResults UE-Positioning-MeasuredResults-vc50ext
+}
+
+MeasuredResults-LCR-r4 ::= CHOICE {
+ intraFreqMeasuredResultsList IntraFreqMeasuredResultsList,
+ interFreqMeasuredResultsList InterFreqMeasuredResultsList,
+ interRATMeasuredResultsList InterRATMeasuredResultsList,
+ trafficVolumeMeasuredResultsList TrafficVolumeMeasuredResultsList,
+ qualityMeasuredResults QualityMeasuredResults,
+ ue-InternalMeasuredResults UE-InternalMeasuredResults-LCR-r4,
+ ue-positioniing-MeasuredResults UE-Positioning-MeasuredResults,
+ spare NULL
+}
+
+MeasuredResultsList ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasuredResults
+
+MeasuredResultsList-LCR-r4-ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF
+ MeasuredResults-LCR-r4
+
+MeasuredResultsList-v770xet ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF SEQUENCE {
+ -- The 'measuredResults' element shall be present, if 'v770' extended measurement results
+ -- associated with the corresponding element in the IE 'MeasuredResultList' shall be
+ -- provided, otherwise it is not needed
+ measuredResults MeasuredResults-v770ext OPTIONAL
+}
+
+MeasuredResultsList-v860ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF SEQUENCE {
+ -- The 'measuredResults' element shall be present, if 'v860' extended measurement results
+ -- associated with the corresponding element in the IE 'MeasuredResultList' shall be
+ -- provided, otherwise it is not needed
+ measuredResults MeasuredResults-v860ext OPTIONAL
+}
+
+MeasuredResultsOnRACH ::= SEQUENCE {
+ currentCell SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ measurementQuantity CHOICE {
+ cpich-Ec-N0 CPICH-Ec-N0,
+ cpich-RSCP CPICH-RSCP,
+ pathloss Pathloss,
+ cpich-Ec-N0-RSCP CPICH-Ec-N0-RSCP
+ }
+ },
+ tdd SEQUENCE {
+ -- For 3.84 Mcps, 7.68 Mcps and 1.28 Mcps TDD
+ timeslotISCP TimeslotISCP-List OPTIONAL,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL
+ }
+ }
+ },
+ monitoredCells MonitoredCellRACH-List OPTIONAL
+}
+
+MeasuredResultsOnRACH-v7g0ext ::= SEQUENCE {
+ currentCell-DeltaRSCP DeltaRSCPPerCell OPTIONAL,
+ monitoredCellRACH-List-v7g0ext MonitoredCellRACH-List-v7g0ext OPTIONAL
+}
+
+--The order of the list corresponds to the order of the cells in MonitoredCellRACH-List
+MonitoredCellRACH-List-v7g0ext ::= SEQUENCE (SIZE (1..8)) OF
+ DeltaRSCPPerCell
+
+--TDD choice is removed, compared to tabular, in order to optimise FDD format
+MeasuredResultsOnRACHFDD-r11 ::= SEQUENCE {
+ currentCell SEQUENCE {
+ measurementQuantity CHOICE {
+ cpich-Ec-N0 CPICH-Ec-N0,
+ cpich-RSCP CPICH-RSCP,
+ pathloss Pathloss,
+ cpich-Ec-N0-RSCP CPICH-Ec-N0-RSCP
+ }
+ },
+ measuredResultsUsedFreq MonitoredCellRACH-ListFDD-r11 OPTIONAL,
+ measuredResultsNonUsedFreq MeasuredResultsOnRACHinterFreq OPTIONAL,
+ measuredResultsEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL
+}
+
+MeasuredResultsOnRACHinterFreq ::= SEQUENCE {
+ interFreqCellIndication-SIB11 INTEGER (0..1),
+ interFreqCellIndication-SIB12 INTEGER (0..1),
+ interFreqRACHRepCellsList InterFreqRACHRepCellsList
+}
+
+MeasuredResultsOnRACHinterFreq-vc50ext ::= SEQUENCE {
+ interFreqRACHRepCellsList InterFreqRACHRepCellsList-r12
+}
+
+MeasuredResultsOnRACH-vc50ext ::= SEQUENCE {
+ measuredResultsNonUsedFreq MeasuredResultsOnRACHinterFreq-vc50ext OPTIONAL,
+ measuredResultsEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq-vc50ext OPTIONAL
+}
+
+MeasuredResultsOnRACH-EUTRAFreq ::= SEQUENCE {
+ eutraFrequencyIndication-SIB19 INTEGER (0..1),
+ eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH))
+}
+
+MeasuredResultsOnRACH-EUTRAFreq-vc50ext ::= SEQUENCE {
+ eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH))
+}
+
+MeasurementCommand ::= CHOICE {
+ setup MeasurementType,
+ modify SEQUENCE {
+ measurementType MeasurementType OPTIONAL
+ },
+ release NULL
+}
+
+MeasurementCommand-r4 ::= CHOICE {
+ setup MeasurementType-r4,
+ modify SEQUENCE {
+ measurementType MeasurementType-r4 OPTIONAL
+ },
+ release NULL
+}
+
+MeasurementCommand-r6 ::= CHOICE {
+ setup MeasurementType-r6,
+ modify SEQUENCE {
+ measurementType MeasurementType-r6 OPTIONAL
+ },
+ release NULL
+}
+
+MeasurementCommand-r7 ::= CHOICE {
+ setup MeasurementType-r7,
+ modify SEQUENCE {
+ measurementType MeasurementType-r7 OPTIONAL
+ },
+ release NULL
+}
+
+MeasurementCommand-r8 ::= CHOICE {
+ setup MeasurementType-r8,
+ modify SEQUENCE {
+ measurementType MeasurementType-r8 OPTIONAL
+ },
+ release NULL
+}
+
+MeasurementCommand-r9 ::= CHOICE {
+ setup MeasurementType-r9,
+ modify SEQUENCE {
+ measurementType MeasurementType-r9 OPTIONAL
+ },
+ release NULL
+}
+
+MeasurementCommand-r10 ::= CHOICE {
+ setup MeasurementType-r10,
+ modify SEQUENCE {
+ measurementType MeasurementType-r10 OPTIONAL
+ },
+ release NULL
+}
+
+MeasurementCommand-r11 ::= CHOICE {
+ setup MeasurementType-r11,
+ modify SEQUENCE {
+ measurementType MeasurementType-r11 OPTIONAL
+ },
+ release NULL
+}
+
+MeasurementCommand-r12 ::= CHOICE {
+ setup MeasurementType-r12,
+ modify SEQUENCE {
+ measurementType MeasurementType-r12 OPTIONAL
+ },
+ release NULL,
+ releaseAll NULL,
+ releaseSome MeasurementsToRelease
+}
+
+MeasurementCommand-r13 ::= CHOICE {
+ setup MeasurementType-r13,
+ modify SEQUENCE {
+ measurementType MeasurementType-r13 OPTIONAL
+ },
+ release NULL,
+ releaseAll NULL,
+ releaseSome MeasurementsToRelease
+}
+
+MeasurementControlSysInfo ::= SEQUENCE {
+ -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode.
+ use-of-HCS CHOICE {
+ hcs-not-used SEQUENCE {
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-RSCP OPTIONAL,
+ interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-RSCP OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-ECN0 OPTIONAL,
+ interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-ECN0 OPTIONAL
+ }
+ },
+ interRATMeasurementSysInfo InterRATMeasurementSysInfo-B OPTIONAL
+ },
+ hcs-used SEQUENCE {
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-HCS-RSCP OPTIONAL,
+ interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-HCS-RSCP OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-HCS-ECN0 OPTIONAL,
+ interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-HCS-ECN0 OPTIONAL
+ }
+ },
+ interRATMeasurementSysInfo InterRATMeasurementSysInfo OPTIONAL
+ }
+ },
+ trafficVolumeMeasSysInfo TrafficVolumeMeasSysInfo OPTIONAL,
+ -- dummy is not used in this version of specification and it shall be ignored by the UE.
+ dummy UE-InternalMeasurementSysInfo OPTIONAL
+}
+
+MeasurementControlSysInfo-vc50ext ::= SEQUENCE {
+ intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH-vc50ext OPTIONAL,
+ rmp-Frequency-List RMP-Frequency-List OPTIONAL
+}
+
+MeasurementControlSysInfoExtension ::= SEQUENCE {
+ -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode.
+ use-of-HCS CHOICE {
+ hcs-not-used SEQUENCE {
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ newIntraFreqCellList NewIntraFreqCellSI-List-RSCP OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-RSCP OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ newIntraFreqCellList NewIntraFreqCellSI-List-ECN0 OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-ECN0 OPTIONAL
+ }
+ },
+ newInterRATCellList NewInterRATCellList OPTIONAL
+ },
+ hcs-used SEQUENCE {
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ newIntraFreqCellList NewIntraFreqCellSI-List-HCS-RSCP OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ newIntraFreqCellList NewIntraFreqCellSI-List-HCS-ECN0 OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0 OPTIONAL
+ }
+ },
+ newInterRATCellList NewInterRATCellList OPTIONAL
+ }
+ }
+}
+
+MeasurementControlSysInfoExtensionAddon-r5 ::= SEQUENCE {
+ --The order of the list corresponds to the order of cell in newIntraFrequencyCellInfoList
+ newIntraFrequencyCellInfoListAddon-r5 SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL,
+ --The order of the list corresponds to the order of cell in newInterFrequencyCellInfoList
+ newInterFrequencyCellInfoListAddon-r5 SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL,
+ --The order of the list corresponds to the order of cell in newInterRATCellInfoList
+ newInterRATCellInfoListAddon-r5 SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL
+}
+
+MeasureControlSysInfoInterFreqExt ::= SEQUENCE {
+ -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode.
+ use-of-HCS CHOICE {
+ hcs-not-used SEQUENCE {
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ newInterFreqCellList NewInterFreqCellSI-List-RSCP-ext OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ newInterFreqCellList NewInterFreqCellSI-List-ECN0-ext OPTIONAL
+ }
+ }
+ },
+ hcs-used SEQUENCE {
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP-ext OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0-ext OPTIONAL
+ }
+ }
+ }
+ },
+ rmp-Frequency-List RMP-Frequency-List OPTIONAL
+}
+
+MeasurementControlSysInfoExtension-LCR-r4 ::= SEQUENCE {
+ -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode.
+ use-of-HCS CHOICE {
+ hcs-not-used SEQUENCE {
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ newIntraFreqCellList NewIntraFreqCellSI-List-RSCP-LCR-r4 OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-RSCP-LCR-r4 OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ newIntraFreqCellList NewIntraFreqCellSI-List-ECN0-LCR-r4 OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-ECN0-LCR-r4 OPTIONAL
+ }
+ },
+ newInterRATCellList NewInterRATCellList OPTIONAL
+ },
+ hcs-used SEQUENCE {
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ newIntraFreqCellList NewIntraFreqCellSI-List-HCS-RSCP-LCR-r4 OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP-LCR-r4 OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ newIntraFreqCellList NewIntraFreqCellSI-List-HCS-ECN0-LCR-r4 OPTIONAL,
+ newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0-LCR-r4 OPTIONAL
+ }
+ },
+ newInterRATCellList NewInterRATCellList OPTIONAL
+ }
+ }
+}
+
+MeasurementControlSysInfo-LCR-r4-ext ::= SEQUENCE {
+ -- CHOICE use-of-HCS shall have the same value as the use-of-HCS
+ -- in MeasurementControlSysInfo
+ -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode.
+ use-of-HCS CHOICE {
+ hcs-not-used SEQUENCE {
+ -- CHOICE cellSelectQualityMeasure shall have the same value as the
+ -- cellSelectQualityMeasure in MeasurementControlSysInfo
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-RSCP-LCR-r4 OPTIONAL,
+ interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-RSCP-LCR-r4 OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-ECN0-LCR-r4 OPTIONAL,
+ interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-ECN0-LCR-r4 OPTIONAL
+ }
+ }
+ },
+ hcs-used SEQUENCE {
+ -- CHOICE cellSelectQualityMeasure shall have the same value as the
+ -- cellSelectQualityMeasure in MeasurementControlSysInfo
+ cellSelectQualityMeasure CHOICE {
+ cpich-RSCP SEQUENCE {
+ intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-HCS-RSCP-LCR-r4 OPTIONAL,
+ interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-HCS-RSCP-LCR-r4 OPTIONAL
+ },
+ cpich-Ec-N0 SEQUENCE {
+ intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 OPTIONAL,
+ interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 OPTIONAL
+ }
+ }
+ }
+ }
+}
+
+MeasurementIdentity ::= INTEGER (1..16)
+
+MeasurementIdentityExt ::= INTEGER (17..32)
+
+MeasurementIdentity-r9 ::= INTEGER (1..32)
+
+MeasurementOccasionPatternParameter ::= SEQUENCE {
+ measurement-Occasion-Coeff INTEGER (1..9),
+ measurement-Occasion-Offset INTEGER (0..511),
+ measurement-Occasion-Length INTEGER (1..512),
+ timeslotBitmap BIT STRING (SIZE (7)) OPTIONAL
+}
+
+MeasurementReleaseEnhancement ::= CHOICE {
+ releaseAllMeasurements NULL,
+ releaseSomeMeasurements MeasurementsToRelease
+}
+
+MeasurementsToRelease ::= SEQUENCE (SIZE (1..maxMeasIdentity)) OF
+ MeasurementIdentity-r9
+
+MeasurementQuantityGSM ::= ENUMERATED {
+ gsm-CarrierRSSI,
+ dummy }
+
+MeasurementQuantityEUTRA ::= ENUMERATED {
+ rsrp,
+ rsrq }
+
+MeasurementReportingMode ::= SEQUENCE {
+ measurementReportTransferMode TransferMode,
+ periodicalOrEventTrigger PeriodicalOrEventTrigger
+}
+
+MeasurementType ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement,
+ interFrequencyMeasurement InterFrequencyMeasurement,
+ interRATMeasurement InterRATMeasurement,
+ ue-positioning-Measurement UE-Positioning-Measurement,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement
+}
+
+MeasurementType-r4 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r4,
+ interFrequencyMeasurement InterFrequencyMeasurement-r4,
+ interRATMeasurement InterRATMeasurement-r4,
+ up-Measurement UE-Positioning-Measurement-r4,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4
+}
+
+MeasurementType-r6 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r6,
+ interFrequencyMeasurement InterFrequencyMeasurement-r6,
+ interRATMeasurement InterRATMeasurement-r6,
+ up-Measurement UE-Positioning-Measurement-r4,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4
+}
+
+MeasurementType-r7 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r7,
+ interFrequencyMeasurement InterFrequencyMeasurement-r7,
+ interRATMeasurement InterRATMeasurement-r6,
+ up-Measurement UE-Positioning-Measurement-r7,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4
+}
+
+MeasurementType-r8 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r7,
+ interFrequencyMeasurement InterFrequencyMeasurement-r8,
+ interRATMeasurement InterRATMeasurement-r8,
+ up-Measurement UE-Positioning-Measurement-r8,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4
+}
+
+MeasurementType-r9 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r9,
+ interFrequencyMeasurement InterFrequencyMeasurement-r9,
+ interRATMeasurement InterRATMeasurement-r9,
+ up-Measurement UE-Positioning-Measurement-r9,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4,
+ csgProximityDetection CSGProximityDetection
+}
+
+MeasurementType-r10 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r10,
+ interFrequencyMeasurement InterFrequencyMeasurement-r10,
+ interRATMeasurement InterRATMeasurement-r9,
+ up-Measurement UE-Positioning-Measurement-r10,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4,
+ csgProximityDetection CSGProximityDetection
+}
+
+MeasurementType-r11 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r11,
+ interFrequencyMeasurement InterFrequencyMeasurement-r11,
+ interRATMeasurement InterRATMeasurement-r11,
+ up-Measurement UE-Positioning-Measurement-r10,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4,
+ csgProximityDetection CSGProximityDetection,
+ eutraMeasurementForCELLFACH EUTRA-MeasurementForCELLFACH
+}
+
+MeasurementType-r12 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r11,
+ interFrequencyMeasurement InterFrequencyMeasurement-r12,
+ interRATMeasurement InterRATMeasurement-r12,
+ up-Measurement UE-Positioning-Measurement-r12,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4,
+ csgProximityDetection CSGProximityDetection,
+ eutraMeasurementForCELLFACH EUTRA-MeasurementForCELLFACH-r12
+}
+
+MeasurementType-r13 ::= CHOICE {
+ intraFrequencyMeasurement IntraFrequencyMeasurement-r11,
+ interFrequencyMeasurement InterFrequencyMeasurement-r12,
+ interRATMeasurement InterRATMeasurement-r12,
+ up-Measurement UE-Positioning-Measurement-r13,
+ trafficVolumeMeasurement TrafficVolumeMeasurement,
+ qualityMeasurement QualityMeasurement,
+ ue-InternalMeasurement UE-InternalMeasurement-r4,
+ csgProximityDetection CSGProximityDetection,
+ eutraMeasurementForCELLFACH EUTRA-MeasurementForCELLFACH-r12
+}
+
+MeasurementValidity ::= SEQUENCE {
+ ue-State ENUMERATED {
+ cell-DCH, all-But-Cell-DCH, all-States }
+}
+
+MonitoredCellRACH-List ::= SEQUENCE (SIZE (1..8)) OF
+ MonitoredCellRACH-Result
+
+MonitoredCellRACH-Result ::= SEQUENCE {
+ sfn-SFN-ObsTimeDifference SFN-SFN-ObsTimeDifference OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ measurementQuantity CHOICE {
+ cpich-Ec-N0 CPICH-Ec-N0,
+ cpich-RSCP CPICH-RSCP,
+ pathloss Pathloss,
+ spare NULL
+ } OPTIONAL
+ },
+ tdd SEQUENCE {
+ cellParametersID CellParametersID,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP
+ }
+ }
+}
+
+MonitoredCellRACH-ListFDD-r11 ::= SEQUENCE (SIZE (1..8)) OF
+ MonitoredCellRACH-ResultFDD-r11
+
+--TDD choice is removed, compared to tabular, in order to optimise FDD format
+MonitoredCellRACH-ResultFDD-r11 ::= SEQUENCE {
+ sfn-SFN-ObsTimeDifference SFN-SFN-ObsTimeDifference OPTIONAL,
+ primaryCPICH-Info PrimaryCPICH-Info,
+ measurementQuantity CHOICE {
+ cpich-Ec-N0 CPICH-Ec-N0,
+ cpich-RSCP CPICH-RSCP,
+ pathloss Pathloss,
+ spare NULL
+ }
+}
+
+MultipathIndicator ::= ENUMERATED {
+ nm,
+ low,
+ medium,
+ high }
+
+MultipleEUTRAFrequencyBandIndicatorList ::= SEQUENCE (SIZE (1.. maxMultipleFrequencyBandsEUTRA)) OF
+ RadioFrequencyBandEUTRA
+
+MultipleEUTRAFrequencyBandIndicatorExtensionList ::= SEQUENCE (SIZE (1.. maxMultipleFrequencyBandsEUTRA))
+ OF RadioFrequencyBandEUTRAExt
+
+MultipleEUTRAFrequencyBandInfo ::= SEQUENCE {
+ multipleEUTRAFrequencyBandIndicatorlist MultipleEUTRAFrequencyBandIndicatorList OPTIONAL
+}
+
+MultipleEUTRAFrequencyBandExtensionInfo ::= SEQUENCE {
+ multipleEUTRAFrequencyBandIndicatorlist MultipleEUTRAFrequencyBandIndicatorExtensionList OPTIONAL
+}
+
+MultipleEUTRAFrequencyInfoList ::= SEQUENCE (SIZE (1.. maxNumEUTRAFreqs)) OF
+ MultipleEUTRAFrequencyBandInfo
+
+MultipleEUTRAFrequencyInfoExtensionList ::= SEQUENCE (SIZE (1.. maxNumEUTRAFreqs)) OF
+ MultipleEUTRAFrequencyBandExtensionInfo
+
+MultipleFrequencyBandIndicatorListFDD::= SEQUENCE (SIZE (1..maxMultipleFrequencyBandsFDD)) OF
+ FrequencyBandsIndicatorFDD
+
+MultipleFrequencyBandInfo ::= SEQUENCE {
+ multipleFrequencyBandIndicatorListFDD MultipleFrequencyBandIndicatorListFDD OPTIONAL
+}
+
+MultipleFrequencyInfoListFDD ::= SEQUENCE (SIZE (1.. maxNumFDDFreqs)) OF
+ MultipleFrequencyBandInfo
+
+N-CR-T-CRMaxHyst ::= SEQUENCE {
+ n-CR INTEGER (1..16) DEFAULT 8,
+ t-CRMaxHyst T-CRMaxHyst
+}
+
+NAVclockModel ::= SEQUENCE {
+ navToc BIT STRING (SIZE (16)),
+ navaf2 BIT STRING (SIZE (8)),
+ navaf1 BIT STRING (SIZE (16)),
+ navaf0 BIT STRING (SIZE (22)),
+ navTgd BIT STRING (SIZE (8))
+}
+
+NavigationModelSatInfo ::= SEQUENCE {
+ satID SatID,
+ satelliteStatus SatelliteStatus,
+ ephemerisParameter EphemerisParameter OPTIONAL
+}
+
+NavigationModelSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF
+ NavigationModelSatInfo
+
+NavModel-BDSKeplerianSet ::= SEQUENCE {
+ bdsAODE BIT STRING (SIZE (5)),
+ bdsURAI BIT STRING (SIZE (4)),
+ bdsToe BIT STRING (SIZE (17)),
+ bdsAPowerHalf BIT STRING (SIZE (32)),
+ bdsE BIT STRING (SIZE (32)),
+ bdsW BIT STRING (SIZE (32)),
+ bdsDeltaN BIT STRING (SIZE (16)),
+ bdsM0 BIT STRING (SIZE (32)),
+ bdsOmega0 BIT STRING (SIZE (32)),
+ bdsOmegaDot BIT STRING (SIZE (24)),
+ bdsI0 BIT STRING (SIZE (32)),
+ bdsIDot BIT STRING (SIZE (14)),
+ bdsCuc BIT STRING (SIZE (18)),
+ bdsCus BIT STRING (SIZE (18)),
+ bdsCrc BIT STRING (SIZE (18)),
+ bdsCrs BIT STRING (SIZE (18)),
+ bdsCic BIT STRING (SIZE (18)),
+ bdsCis BIT STRING (SIZE (18))
+}
+
+NavModel-CNAVKeplerianSet ::= SEQUENCE {
+ cnavTop BIT STRING (SIZE (11)),
+ cnavURAindex BIT STRING (SIZE (5)),
+ cnavDeltaA BIT STRING (SIZE (26)),
+ cnavAdot BIT STRING (SIZE (25)),
+ cnavDeltaNo BIT STRING (SIZE (17)),
+ cnavDeltaNoDot BIT STRING (SIZE (23)),
+ cnavMo BIT STRING (SIZE (33)),
+ cnavE BIT STRING (SIZE (33)),
+ cnavOmega BIT STRING (SIZE (33)),
+ cnavOMEGA0 BIT STRING (SIZE (33)),
+ cnavDeltaOmegaDot BIT STRING (SIZE (17)),
+ cnavIo BIT STRING (SIZE (33)),
+ cnavIoDot BIT STRING (SIZE (15)),
+ cnavCis BIT STRING (SIZE (16)),
+ cnavCic BIT STRING (SIZE (16)),
+ cnavCrs BIT STRING (SIZE (24)),
+ cnavCrc BIT STRING (SIZE (24)),
+ cnavCus BIT STRING (SIZE (21)),
+ cnavCuc BIT STRING (SIZE (21))
+}
+
+NavModel-GLONASSecef ::= SEQUENCE {
+ gloEn BIT STRING (SIZE (5)),
+ gloP1 BIT STRING (SIZE (2)),
+ gloP2 BIT STRING (SIZE (1)),
+ gloM BIT STRING (SIZE (2)) OPTIONAL,
+ gloX BIT STRING (SIZE (27)),
+ gloXdot BIT STRING (SIZE (24)),
+ gloXdotdot BIT STRING (SIZE (5)),
+ gloY BIT STRING (SIZE (27)),
+ gloYdot BIT STRING (SIZE (24)),
+ gloYdotdot BIT STRING (SIZE (5)),
+ gloZ BIT STRING (SIZE (27)),
+ gloZdot BIT STRING (SIZE (24)),
+ gloZdotdot BIT STRING (SIZE (5))
+}
+
+NavModel-NAVKeplerianSet ::= SEQUENCE {
+ navURA BIT STRING (SIZE (4)),
+ navFitFlag BIT STRING (SIZE (1)),
+ navToe BIT STRING (SIZE (16)),
+ navOmega BIT STRING (SIZE (32)),
+ navDeltaN BIT STRING (SIZE (16)),
+ navM0 BIT STRING (SIZE (32)),
+ navOmegaADot BIT STRING (SIZE (24)),
+ navE BIT STRING (SIZE (32)),
+ navIDot BIT STRING (SIZE (14)),
+ navAPowerHalf BIT STRING (SIZE (32)),
+ navI0 BIT STRING (SIZE (32)),
+ navOmegaA0 BIT STRING (SIZE (32)),
+ navCrs BIT STRING (SIZE (16)),
+ navCis BIT STRING (SIZE (16)),
+ navCus BIT STRING (SIZE (16)),
+ navCrc BIT STRING (SIZE (16)),
+ navCic BIT STRING (SIZE (16)),
+ navCuc BIT STRING (SIZE (16))
+}
+
+NavModel-SBASecef ::= SEQUENCE {
+ sbasTo BIT STRING (SIZE (13)) OPTIONAL,
+ sbasAccuracy BIT STRING (SIZE (4)),
+ sbasXg BIT STRING (SIZE (30)),
+ sbasYg BIT STRING (SIZE (30)),
+ sbasZg BIT STRING (SIZE (25)),
+ sbasXgDot BIT STRING (SIZE (17)),
+ sbasYgDot BIT STRING (SIZE (17)),
+ sbasZgDot BIT STRING (SIZE (18)),
+ sbasXgDotDot BIT STRING (SIZE (10)),
+ sbagYgDotDot BIT STRING (SIZE (10)),
+ sbasZgDotDot BIT STRING (SIZE (10))
+}
+
+EphemerisParameter ::= SEQUENCE {
+ codeOnL2 BIT STRING (SIZE (2)),
+ uraIndex BIT STRING (SIZE (4)),
+ satHealth BIT STRING (SIZE (6)),
+ iodc BIT STRING (SIZE (10)),
+ l2Pflag BIT STRING (SIZE (1)),
+ sf1Revd SubFrame1Reserved,
+ t-GD BIT STRING (SIZE (8)),
+ t-oc BIT STRING (SIZE (16)),
+ af2 BIT STRING (SIZE (8)),
+ af1 BIT STRING (SIZE (16)),
+ af0 BIT STRING (SIZE (22)),
+ c-rs BIT STRING (SIZE (16)),
+ delta-n BIT STRING (SIZE (16)),
+ m0 BIT STRING (SIZE (32)),
+ c-uc BIT STRING (SIZE (16)),
+ e BIT STRING (SIZE (32)),
+ c-us BIT STRING (SIZE (16)),
+ a-Sqrt BIT STRING (SIZE (32)),
+ t-oe BIT STRING (SIZE (16)),
+ fitInterval BIT STRING (SIZE (1)),
+ aodo BIT STRING (SIZE (5)),
+ c-ic BIT STRING (SIZE (16)),
+ omega0 BIT STRING (SIZE (32)),
+ c-is BIT STRING (SIZE (16)),
+ i0 BIT STRING (SIZE (32)),
+ c-rc BIT STRING (SIZE (16)),
+ omega BIT STRING (SIZE (32)),
+ omegaDot BIT STRING (SIZE (24)),
+ iDot BIT STRING (SIZE (14))
+}
+NC-Mode ::= BIT STRING (SIZE (3))
+
+Neighbour ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ neighbourIdentity PrimaryCPICH-Info OPTIONAL,
+ uE-RX-TX-TimeDifferenceType2Info UE-RX-TX-TimeDifferenceType2Info OPTIONAL
+ },
+ tdd SEQUENCE {
+ neighbourAndChannelIdentity CellAndChannelIdentity OPTIONAL
+ }
+ },
+ neighbourQuality NeighbourQuality,
+ sfn-SFN-ObsTimeDifference2 SFN-SFN-ObsTimeDifference2}
+
+Neighbour-v390ext ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ frequencyInfo FrequencyInfo
+ },
+ tdd NULL
+ }
+}
+
+NeighbourList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ Neighbour
+
+Neighbour-TDD-r7 ::= SEQUENCE {
+ uarfcn UARFCN OPTIONAL
+}
+
+-- The order of the cells in IE NeighbourList-TDD-r7 shall be the
+-- same as the order in IE NeighbourList
+NeighbourList-TDD-r7 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF Neighbour-TDD-r7
+
+-- The order of the cells in IE NeighbourList-v390ext shall be the
+-- same as the order in IE NeighbourList
+NeighbourList-v390ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ Neighbour-v390ext
+
+NeighbourQuality ::= SEQUENCE {
+ ue-Positioning-OTDOA-Quality UE-Positioning-OTDOA-Quality
+}
+
+NewInterFreqCell ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfo
+}
+
+NewInterFreqCell-r4 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfo-r4
+}
+
+NewInterFreqCell-v7b0ext ::= SEQUENCE {
+ intraSecondaryFreqIndicator BOOLEAN
+}
+
+NewInterFreqCell-LCR-v8a0ext ::= SEQUENCE {
+ cellInfo-LCR-r8 CellInfo-LCR-r8-ext OPTIONAL
+}
+
+NewInterFreqCell-r8 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfo-r4,
+ modeSpecificInfo CHOICE {
+ noInfo NULL,
+ tdd128 SEQUENCE {
+ intraSecondaryFreqIndicator BOOLEAN
+ }
+ }
+}
+
+NewInterFreqCell-r9 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfo-r9,
+ modeSpecificInfo CHOICE {
+ noInfo NULL,
+ tdd128 SEQUENCE {
+ intraSecondaryFreqIndicator BOOLEAN
+ }
+ }
+}
+
+NewInterFreqCell-r10 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfo-r9,
+ modeSpecificInfo CHOICE {
+ noInfo NULL,
+ tdd128 SEQUENCE {
+ intraSecondaryFreqIndicator BOOLEAN,
+ sNPLMonitorSetIndicator-TDD128 BIT STRING (SIZE (5)) OPTIONAL
+ }
+ }
+}
+
+NewInterFreqCell-r12 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID-r12 OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfo-r9,
+ modeSpecificInfo CHOICE {
+ noInfo NULL,
+ tdd128 SEQUENCE {
+ intraSecondaryFreqIndicator BOOLEAN,
+ sNPLMonitorSetIndicator-TDD128 BIT STRING (SIZE (5)) OPTIONAL
+ }
+ }
+}
+
+NewInterFreqCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCell
+
+NewInterFreqCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCell-r4
+
+NewInterFreqCellList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas-ext)) OF
+ NewInterFreqCell-r12
+
+-- The order of the list corresponds to the order of cells in newInterFreqCellList
+NewInterFreqCellList-v7b0ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCell-v7b0ext
+
+-- The order of the list corresponds to the order of cells in newInterFreqCellList
+NewInterFreqCellList-LCR-v8a0ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCell-LCR-v8a0ext
+
+NewInterFreqCellList-r8 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCell-r8
+
+NewInterFreqCellList-r9 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCell-r9
+
+NewInterFreqCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCell-r10
+
+NewInterFreqCellSI-RSCP ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-RSCP
+}
+
+NewInterFreqCellSI-RSCP-ext ::= SEQUENCE {
+ interFreqCellID InterFreqCellID-r12 OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-RSCP
+}
+
+NewInterFreqCellSI-ECN0 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-ECN0
+}
+
+NewInterFreqCellSI-ECN0-ext ::= SEQUENCE {
+ interFreqCellID InterFreqCellID-r12 OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-ECN0
+}
+
+NewInterFreqCellSI-HCS-RSCP ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-HCS-RSCP
+}
+
+NewInterFreqCellSI-HCS-RSCP-ext ::= SEQUENCE {
+ interFreqCellID InterFreqCellID-r12 OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-HCS-RSCP
+}
+
+NewInterFreqCellSI-HCS-ECN0 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-HCS-ECN0
+}
+
+NewInterFreqCellSI-HCS-ECN0-ext ::= SEQUENCE {
+ interFreqCellID InterFreqCellID-r12 OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-HCS-ECN0
+}
+
+NewInterFreqCellSI-RSCP-LCR-r4 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-RSCP-LCR-r4
+}
+
+NewInterFreqCellSI-ECN0-LCR-r4 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-ECN0-LCR-r4
+}
+
+NewInterFreqCellSI-HCS-RSCP-LCR-r4 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-HCS-RSCP-LCR-r4
+}
+
+NewInterFreqCellSI-HCS-ECN0-LCR-r4 ::= SEQUENCE {
+ interFreqCellID InterFreqCellID OPTIONAL,
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellInfo CellInfoSI-HCS-ECN0-LCR-r4
+}
+
+NewInterFreqCellSI-List-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCellSI-ECN0
+
+NewInterFreqCellSI-List-ECN0-ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext2)) OF
+ NewInterFreqCellSI-ECN0-ext
+
+NewInterFreqCellSI-List-HCS-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCellSI-HCS-RSCP
+
+NewInterFreqCellSI-List-HCS-RSCP-ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext2)) OF
+ NewInterFreqCellSI-HCS-RSCP-ext
+
+NewInterFreqCellSI-List-HCS-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCellSI-HCS-ECN0
+
+NewInterFreqCellSI-List-HCS-ECN0-ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext2)) OF
+ NewInterFreqCellSI-HCS-ECN0-ext
+
+NewInterFreqCellSI-List-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCellSI-RSCP
+
+NewInterFreqCellSI-List-RSCP-ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext2)) OF
+ NewInterFreqCellSI-RSCP-ext
+
+NewInterFreqCellSI-List-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCellSI-ECN0-LCR-r4
+
+NewInterFreqCellSI-List-HCS-RSCP-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCellSI-HCS-RSCP-LCR-r4
+
+NewInterFreqCellSI-List-HCS-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCellSI-HCS-ECN0-LCR-r4
+
+NewInterFreqCellSI-List-RSCP-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterFreqCellSI-RSCP-LCR-r4
+
+NewInterRATCell ::= SEQUENCE {
+ interRATCellID InterRATCellID OPTIONAL,
+ technologySpecificInfo CHOICE {
+ gsm SEQUENCE {
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12 OPTIONAL,
+ interRATCellIndividualOffset InterRATCellIndividualOffset,
+ bsic BSIC,
+ frequency-band Frequency-Band,
+ bcch-ARFCN BCCH-ARFCN,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy NULL OPTIONAL
+ },
+ is-2000 SEQUENCE {
+ is-2000SpecificMeasInfo IS-2000SpecificMeasInfo
+ },
+ -- ASN.1 inconsistency: NewInterRATCellList should be optional within
+ -- InterRATCellInfoList. The UE shall consider IE NewInterRATCell with
+ -- technologySpecificInfo set to "absent" as valid and handle the
+ -- message as if the IE NewInterRATCell was absent
+ absent NULL,
+ spare1 NULL
+ }
+}
+
+NewInterRATCell-B ::= SEQUENCE {
+ interRATCellID InterRATCellID OPTIONAL,
+ technologySpecificInfo CHOICE {
+ gsm SEQUENCE {
+ cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12 OPTIONAL,
+ interRATCellIndividualOffset InterRATCellIndividualOffset,
+ bsic BSIC,
+ frequency-band Frequency-Band,
+ bcch-ARFCN BCCH-ARFCN,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy NULL OPTIONAL
+ },
+ is-2000 SEQUENCE {
+ is-2000SpecificMeasInfo IS-2000SpecificMeasInfo
+ },
+ -- ASN.1 inconsistency: NewInterRATCellList-B should be optional within
+ -- InterRATCellInfoList-B. The UE shall consider IE NewInterRATCell-B with
+ -- technologySpecificInfo set to "absent" as valid and handle the
+ -- message as if the IE NewInterRATCell-B was absent
+ absent NULL,
+ spare1 NULL
+ }
+}
+
+NewInterRATCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterRATCell
+
+NewInterRATCellList-B ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewInterRATCell-B
+
+NewIntraFreqCell ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfo
+}
+
+NewIntraFreqCell-r4 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfo-r4
+}
+NewIntraFreqCell-r9 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfo-r9
+}
+
+NewIntraFreqCell-r10 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfo-r9,
+ modeSpecificInfo CHOICE {
+ noInfo NULL,
+ tdd128 SEQUENCE {
+ sNPLMonitorSetIndicator-TDD128 BIT STRING (SIZE (5)) OPTIONAL
+ }
+ }
+}
+
+NewIntraFreqCellOnSecULFreq ::= SEQUENCE {
+ intraFreqCellIDOnSecULFreq IntraFreqCellIDOnSecULFreq OPTIONAL,
+ cellInfo CellInfo-r4
+}
+
+NewIntraFreqCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCell
+
+NewIntraFreqCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCell-r4
+
+NewIntraFreqCellList-r9 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCell-r9
+
+NewIntraFreqCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCell-r10
+
+NewIntraFreqCell-LCR-v8a0ext ::= SEQUENCE {
+ cellInfo-LCR-r8 CellInfo-LCR-r8-ext OPTIONAL
+}
+
+-- The order of the list corresponds to the order of cells in newIntraFreqCellList
+NewIntraFreqCellList-LCR-v8a0ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCell-LCR-v8a0ext
+
+NewIntraFreqCellListOnSecULFreq ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF
+ NewIntraFreqCellOnSecULFreq
+
+NewIntraFreqCellSI-RSCP ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfoSI-RSCP
+}
+
+NewIntraFreqCellSI-ECN0 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfoSI-ECN0
+}
+NewIntraFreqCellSI-HCS-RSCP ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfoSI-HCS-RSCP
+}
+
+NewIntraFreqCellSI-HCS-ECN0 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfoSI-HCS-ECN0
+}
+
+NewIntraFreqCellSI-RSCP-LCR-r4 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfoSI-RSCP-LCR-r4
+}
+
+NewIntraFreqCellSI-ECN0-LCR-r4 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfoSI-ECN0-LCR-r4
+}
+NewIntraFreqCellSI-HCS-RSCP-LCR-r4 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfoSI-HCS-RSCP-LCR-r4
+}
+
+NewIntraFreqCellSI-HCS-ECN0-LCR-r4 ::= SEQUENCE {
+ intraFreqCellID IntraFreqCellID OPTIONAL,
+ cellInfo CellInfoSI-HCS-ECN0-LCR-r4
+}
+
+NewIntraFreqCellSI-List-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCellSI-RSCP
+
+NewIntraFreqCellSI-List-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCellSI-ECN0
+
+NewIntraFreqCellSI-List-HCS-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCellSI-HCS-RSCP
+
+NewIntraFreqCellSI-List-HCS-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCellSI-HCS-ECN0
+
+NewIntraFreqCellSI-List-RSCP-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCellSI-RSCP-LCR-r4
+
+NewIntraFreqCellSI-List-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCellSI-ECN0-LCR-r4
+
+NewIntraFreqCellSI-List-HCS-RSCP-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCellSI-HCS-RSCP-LCR-r4
+
+NewIntraFreqCellSI-List-HCS-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ NewIntraFreqCellSI-HCS-ECN0-LCR-r4
+
+ -- IE "nonUsedFreqThreshold" is not needed in case of event 2a
+ -- In case of event 2a UTRAN should include value 0 within IE "nonUsedFreqThreshold"
+ -- In case of event 2a, the UE shall be ignore IE "nonUsedFreqThreshold"
+ -- In later versions of the message including this IE, a special version of
+ -- IE "NonUsedFreqParameterList" may be defined for event 2a, namely a
+ -- version not including IE "nonUsedFreqThreshold"
+NonUsedFreqParameter ::= SEQUENCE {
+ nonUsedFreqThreshold Threshold,
+ nonUsedFreqW W
+}
+
+NonUsedFreqParameter-r6 ::= SEQUENCE {
+ nonUsedFreqThreshold Threshold-r6,
+ nonUsedFreqW W
+}
+
+NonUsedFreqParameter-r10 ::= SEQUENCE {
+ nonUsedFreqThreshold Threshold-r6,
+ nonUsedFreqW W,
+ nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL
+}
+
+NonUsedFreqParameter-r11 ::= SEQUENCE {
+ nonUsedFreqThreshold Threshold-r6,
+ nonUsedFreqW W,
+ nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy CellInfoListToBeExcluded OPTIONAL
+}
+
+NonUsedFreq2aParameter-r10 ::= SEQUENCE {
+ nonUsedFreqW W,
+ nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL
+}
+
+NonUsedFreq2aParameter-r11 ::= SEQUENCE {
+ nonUsedFreqW W,
+ nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy CellInfoListToBeExcluded OPTIONAL
+}
+
+NonUsedFreqParameterList ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ NonUsedFreqParameter
+
+NonUsedFreqParameterList-r6 ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ NonUsedFreqParameter-r6
+
+NonUsedFreqParameterList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ NonUsedFreqParameter-r10
+
+NonUsedFreqParameterList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ NonUsedFreqParameter-r11
+
+NonUsedFreq2aParameterList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ NonUsedFreq2aParameter-r10
+
+NonUsedFreq2aParameterList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ NonUsedFreq2aParameter-r11
+
+NonUsedFreqWList-r6 ::= SEQUENCE (SIZE (1..maxFreq)) OF W
+
+ObservedTimeDifferenceToGSM ::= INTEGER (0..4095)
+
+OTDOA-SearchWindowSize ::= ENUMERATED {
+ c20, c40, c80, c160, c320,
+ c640, c1280, moreThan1280 }
+
+-- SPARE: Pathloss, Max = 158
+-- Values above Max are spare
+Pathloss ::= INTEGER (46..173)
+
+PenaltyTime-RSCP ::= CHOICE {
+ notUsed NULL,
+ pt10 TemporaryOffset1,
+ pt20 TemporaryOffset1,
+ pt30 TemporaryOffset1,
+ pt40 TemporaryOffset1,
+ pt50 TemporaryOffset1,
+ pt60 TemporaryOffset1
+}
+
+PenaltyTime-ECN0 ::= CHOICE {
+ notUsed NULL,
+ pt10 TemporaryOffsetList,
+ pt20 TemporaryOffsetList,
+ pt30 TemporaryOffsetList,
+ pt40 TemporaryOffsetList,
+ pt50 TemporaryOffsetList,
+ pt60 TemporaryOffsetList
+}
+
+PendingTimeAfterTrigger ::= ENUMERATED {
+ ptat0-25, ptat0-5, ptat1,
+ ptat2, ptat4, ptat8, ptat16 }
+
+PeriodicalOrEventTrigger ::= ENUMERATED {
+ periodical,
+ eventTrigger }
+
+PeriodicalReportingCriteria ::= SEQUENCE {
+ reportingAmount ReportingAmount DEFAULT ra-Infinity,
+ reportingInterval ReportingIntervalLong
+}
+
+PeriodicReportingInfo-1b ::= SEQUENCE {
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval
+}
+
+PeriodicalWithReportingCellStatus ::= SEQUENCE {
+ periodicalReportingCriteria PeriodicalReportingCriteria,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+PeriodicalWithReportingCellStatus-r10 ::= SEQUENCE {
+ periodicalReportingCriteria PeriodicalReportingCriteria,
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL
+}
+
+PeriodicalWithReportingCellStatusOnSecULFreq ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ periodicalWithReportingCellStatus PeriodicalWithReportingCellStatus-r10
+}
+
+PLMNIdentitiesOfNeighbourCells ::= SEQUENCE {
+ plmnsOfIntraFreqCellsList PLMNsOfIntraFreqCellsList OPTIONAL,
+ plmnsOfInterFreqCellsList PLMNsOfInterFreqCellsList OPTIONAL,
+ plmnsOfInterRATCellsList PLMNsOfInterRATCellsList OPTIONAL
+}
+
+PLMNIdentitiesOfNeighbourCells-v860ext ::= SEQUENCE {
+ multipleplmnsOfIntraFreqCellsList MultiplePLMNsOfIntraFreqCellsList OPTIONAL,
+ multipleplmnsOfInterFreqCellsList MultiplePLMNsOfInterFreqCellsList OPTIONAL
+}
+
+PLMNIdentitiesOfNeighbourCells-vc50ext ::= SEQUENCE {
+ plmnsOfInterFreqCellsList PLMNsOfInterFreqCellsList-vc50ext OPTIONAL,
+ multipleplmnsOfInterFreqCellsList MultiplePLMNsOfInterFreqCellsList-vc50ext OPTIONAL
+}
+
+PlmnList ::= SEQUENCE (SIZE (1..maxNumMDTPLMN)) OF PLMN-Identity
+
+PLMNsOfInterFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL
+}
+
+PLMNsOfInterFreqCellsList-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext)) OF InterFreqCellPLMN
+
+InterFreqCellPLMN ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL
+}
+
+MultiplePLMNsOfInterFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ SEQUENCE {
+ multiplePLMN-list SEQUENCE (SIZE (1..6)) OF
+ PLMN-IdentityWithOptionalMCC-r6 OPTIONAL
+}
+
+MultiplePLMNsOfInterFreqCellsList-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext)) OF MultiplePLMNInfo
+
+MultiplePLMNInfo ::= SEQUENCE {
+ multiplePLMN-list MultiplePLMN-List OPTIONAL
+}
+
+MultiplePLMN-List ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityWithOptionalMCC-r6
+
+PLMNsOfIntraFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL
+}
+
+MultiplePLMNsOfIntraFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ SEQUENCE {
+ multiplePLMN-list SEQUENCE (SIZE (1..6)) OF
+ PLMN-IdentityWithOptionalMCC-r6 OPTIONAL
+}
+
+PLMNsOfInterRATCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL
+}
+
+PositionEstimate ::= CHOICE {
+ ellipsoidPoint EllipsoidPoint,
+ ellipsoidPointUncertCircle EllipsoidPointUncertCircle,
+ ellipsoidPointUncertEllipse EllipsoidPointUncertEllipse,
+ ellipsoidPointAltitude EllipsoidPointAltitude,
+ ellipsoidPointAltitudeEllipse EllipsoidPointAltitudeEllipsoide
+}
+
+PositioningMethod ::= ENUMERATED {
+ otdoa,
+ gps,
+ otdoaOrGPS, cellID }
+
+-- Actual value PRC = IE value * 0.32
+PRC ::= INTEGER (-2047..2047)
+
+-- SPARE: PrimaryCCPCH-RSCP, Max = 91
+-- Values above Max are spare
+PrimaryCCPCH-RSCP ::= INTEGER (0..127)
+
+Q-HCS ::= INTEGER (0..99)
+
+Q-OffsetS-N ::= INTEGER (-50..50)
+
+Q-QualMin ::= INTEGER (-24..0)
+
+Q-QualMin-Offset ::= INTEGER (1..16)
+
+-- Actual value Q-RxlevMin = (IE value * 2) + 1
+Q-RxlevMin ::= INTEGER (-58..-13)
+
+-- Actual value Q-RxlevMin-Offset = (IE value * 2)
+Q-RxlevMin-Offset ::= INTEGER (1..8)
+
+QualityEventResults ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ TransportChannelIdentity
+
+QualityMeasuredResults ::= SEQUENCE {
+ blerMeasurementResultsList BLER-MeasurementResultsList OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd NULL,
+ tdd SEQUENCE {
+ sir-MeasurementResults SIR-MeasurementList OPTIONAL
+ }
+ }
+}
+
+QualityMeasurement ::= SEQUENCE {
+ qualityReportingQuantity QualityReportingQuantity OPTIONAL,
+ reportCriteria QualityReportCriteria
+}
+
+QualityReportCriteria ::= CHOICE {
+ qualityReportingCriteria QualityReportingCriteria,
+ periodicalReportingCriteria PeriodicalReportingCriteria,
+ noReporting NULL
+}
+
+QualityReportingCriteria ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ QualityReportingCriteriaSingle
+
+QualityReportingCriteriaSingle ::= SEQUENCE {
+ transportChannelIdentity TransportChannelIdentity,
+ totalCRC INTEGER (1..512),
+ badCRC INTEGER (1..512),
+ pendingAfterTrigger INTEGER (1..512)
+}
+
+QualityReportingQuantity ::= SEQUENCE {
+ dl-TransChBLER BOOLEAN,
+ bler-dl-TransChIdList BLER-TransChIdList OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd NULL,
+ tdd SEQUENCE {
+ sir-TFCS-List SIR-TFCS-List OPTIONAL
+ }
+ }
+}
+
+RAT-Type ::= ENUMERATED {
+ gsm, is2000 }
+
+ReferenceCellPosition ::= CHOICE {
+ ellipsoidPoint EllipsoidPoint,
+ ellipsoidPointWithAltitude EllipsoidPointAltitude
+}
+
+-- ReferenceLocation, as defined in 23.032
+ReferenceLocation ::= SEQUENCE {
+ ellipsoidPointAltitudeEllipsoide EllipsoidPointAltitudeEllipsoide
+}
+
+ReferenceLocationGANSS ::= SEQUENCE {
+ ellipsoidPointAltitudeEllipsoide EllipsoidPointAltitudeEllipsoide
+}
+
+ReferenceTimeDifferenceToCell ::= CHOICE {
+ -- Actual value accuracy40 = IE value * 40
+ accuracy40 INTEGER (0..960),
+ -- Actual value accuracy256 = IE value * 256
+ accuracy256 INTEGER (0..150),
+ -- Actual value accuracy2560 = IE value * 2560
+ accuracy2560 INTEGER (0..15)
+}
+
+RemovedInterFreqCellList ::= CHOICE {
+ removeAllInterFreqCells NULL,
+ removeSomeInterFreqCells SEQUENCE (SIZE (1..maxCellMeas)) OF
+ InterFreqCellID,
+ removeNoInterFreqCells NULL
+}
+
+RemovedInterFreqCellList-r12 ::= CHOICE {
+ removeAllInterFreqCells NULL,
+ removeSomeInterFreqCells SEQUENCE (SIZE (1..maxCellMeas-ext)) OF
+ InterFreqCellID-r12,
+ removeNoInterFreqCells NULL
+}
+
+RemovedInterRATCellList ::= CHOICE {
+ removeAllInterRATCells NULL,
+ removeSomeInterRATCells SEQUENCE (SIZE (1..maxCellMeas)) OF
+ InterRATCellID,
+ removeNoInterRATCells NULL
+}
+
+RemovedIntraFreqCellList ::= CHOICE {
+ removeAllIntraFreqCells NULL,
+ removeSomeIntraFreqCells SEQUENCE (SIZE (1..maxCellMeas)) OF
+ IntraFreqCellID,
+ removeNoIntraFreqCells NULL
+}
+
+RemovedIntraFreqCellListOnSecULFreq ::= CHOICE {
+ removeAllIntraFreqCells NULL,
+ removeSomeIntraFreqCells SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF
+ IntraFreqCellIDOnSecULFreq,
+ removeNoIntraFreqCells NULL
+}
+
+ReplacementActivationThreshold ::= ENUMERATED {
+ notApplicable, t1, t2,
+ t3, t4, t5, t6, t7 }
+
+ReportDeactivationThreshold ::= ENUMERATED {
+ notApplicable, t1, t2,
+ t3, t4, t5, t6, t7 }
+
+ReportingAmount ::= ENUMERATED {
+ ra1, ra2, ra4, ra8, ra16, ra32,
+ ra64, ra-Infinity }
+
+ReportingCellStatus ::= CHOICE{
+ withinActiveSet MaxNumberOfReportingCellsType1,
+ withinMonitoredSetUsedFreq MaxNumberOfReportingCellsType1,
+ withinActiveAndOrMonitoredUsedFreq MaxNumberOfReportingCellsType1,
+ withinDetectedSetUsedFreq MaxNumberOfReportingCellsType1,
+ withinMonitoredAndOrDetectedUsedFreq
+ MaxNumberOfReportingCellsType1,
+ allActiveplusMonitoredSet MaxNumberOfReportingCellsType3,
+ allActivePlusDetectedSet MaxNumberOfReportingCellsType3,
+ allActivePlusMonitoredAndOrDetectedSet
+ MaxNumberOfReportingCellsType3,
+ withinVirtualActSet MaxNumberOfReportingCellsType1,
+ withinMonitoredSetNonUsedFreq MaxNumberOfReportingCellsType1,
+ withinMonitoredAndOrVirtualActiveSetNonUsedFreq
+ MaxNumberOfReportingCellsType1,
+ allVirtualActSetplusMonitoredSetNonUsedFreq
+ MaxNumberOfReportingCellsType3,
+ withinActSetOrVirtualActSet-InterRATcells
+ MaxNumberOfReportingCellsType2,
+ withinActSetAndOrMonitoredUsedFreqOrVirtualActSetAndOrMonitoredNonUsedFreq
+ MaxNumberOfReportingCellsType2
+}
+
+ReportingCellStatus-r10 ::= CHOICE{
+ withinActiveSet MaxNumberOfReportingCellsType1,
+ withinMonitoredSetUsedFreq MaxNumberOfReportingCellsType1,
+ withinActiveAndOrMonitoredUsedFreq MaxNumberOfReportingCellsType1,
+ withinDetectedSetUsedFreq MaxNumberOfReportingCellsType1,
+ withinMonitoredAndOrDetectedUsedFreq
+ MaxNumberOfReportingCellsType1,
+ allActiveplusMonitoredSet MaxNumberOfReportingCellsType3,
+ allActivePlusDetectedSet MaxNumberOfReportingCellsType3,
+ allActivePlusMonitoredAndOrDetectedSet
+ MaxNumberOfReportingCellsType3,
+ withinVirtualActSet MaxNumberOfReportingCellsType1,
+ withinMonitoredSetNonUsedFreq MaxNumberOfReportingCellsType1,
+ withinMonitoredAndOrVirtualActiveSetNonUsedFreq
+ MaxNumberOfReportingCellsType1,
+ allVirtualActSetplusMonitoredSetNonUsedFreq
+ MaxNumberOfReportingCellsType3,
+ withinActSetOrVirtualActSet-InterRATcells
+ MaxNumberOfReportingCellsType2,
+ withinActSetAndOrMonitoredUsedFreqOrVirtualActSetAndOrMonitoredNonUsedFreq
+ MaxNumberOfReportingCellsType2,
+ allVirtualActSetplusMonitoredSetplusDetectedSetNonUsedFreq
+ MaxNumberOfReportingCellsType3
+}
+
+ReportingCellStatusOpt ::= SEQUENCE {
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+ReportingCellStatusOpt-r10 ::= SEQUENCE {
+ reportingCellStatus ReportingCellStatus-r10 OPTIONAL
+}
+
+ReportingInfoForCellDCH ::= SEQUENCE {
+ intraFreqReportingQuantity IntraFreqReportingQuantity,
+ measurementReportingMode MeasurementReportingMode,
+ reportCriteria CellDCH-ReportCriteria
+}
+
+ReportingInfoForCellDCH-LCR-r4 ::= SEQUENCE {
+ intraFreqReportingQuantity IntraFreqReportingQuantity,
+ measurementReportingMode MeasurementReportingMode,
+ reportCriteria CellDCH-ReportCriteria-LCR-r4
+}
+
+ReportingInterval ::= ENUMERATED {
+ noPeriodicalreporting, ri0-25,
+ ri0-5, ri1, ri2, ri4, ri8, ri16 }
+
+ReportingIntervalLong ::= ENUMERATED {
+ ril0, ril0-25, ril0-5, ril1,
+ ril2, ril3, ril4, ril6, ril8,
+ ril12, ril16, ril20, ril24,
+ ril28, ril32, ril64 }
+ -- When the value "ril0" is used, the UE behaviour is not
+ -- defined.
+
+-- Actual value ReportingRange = IE value * 0.5
+ReportingRange ::= INTEGER (0..29)
+
+ReqDataBitAssistance ::= SEQUENCE {
+ ganssSignalID DGANSS-Sig-Id-Req,
+ ganssDataBitInterval INTEGER(0..15),
+ ganssSatelliteInfo SEQUENCE (SIZE (1..maxGANSSSat)) OF INTEGER(0..63) OPTIONAL
+}
+
+RL-AdditionInfoList ::= SEQUENCE (SIZE (1..maxRL)) OF
+ PrimaryCPICH-Info
+
+RL-InformationLists ::= SEQUENCE {
+ rl-AdditionInfoList RL-AdditionInfoList OPTIONAL,
+ rL-RemovalInformationList RL-RemovalInformationList OPTIONAL
+}
+
+RLC-BuffersPayload ::= ENUMERATED {
+ pl0, pl4, pl8, pl16, pl32,
+ pl64, pl128, pl256, pl512, pl1024,
+ pl2k, pl4k, pl8k, pl16k, pl32k,
+ pl64k, pl128k, pl256k, pl512k, pl1024k,
+ spare12, spare11, spare10, spare9, spare8,
+ spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1 }
+
+
+RMP-Frequency-List ::= SEQUENCE (SIZE (1..maxRMPfrequencies)) OF
+ BOOLEAN
+
+-- Actual value RRC = IE value * 0.032
+RRC ::= INTEGER (-127..127)
+
+RSCPforANR ::= SEQUENCE {
+ rSCP INTEGER (-120..-25) OPTIONAL
+}
+
+RsrqType ::= SEQUENCE{
+ allSymbols BOOLEAN,
+ wideBand BOOLEAN
+}
+
+
+SatData ::= SEQUENCE{
+ satID SatID,
+ iode IODE
+}
+
+SatDataList ::= SEQUENCE (SIZE (0..maxSat)) OF
+ SatData
+
+SatellitesListRelatedData ::= SEQUENCE {
+ satId INTEGER (0..63),
+ iod INTEGER (0..1023)
+}
+
+SatellitesListRelatedDataList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF
+ SatellitesListRelatedData
+
+SatelliteStatus ::= ENUMERATED {
+ ns-NN-U,
+ es-SN,
+ es-NN-U,
+ rev2,
+ rev }
+
+Satellite-clock-model ::= SEQUENCE {
+ t-oc BIT STRING (SIZE (14)),
+ af2 BIT STRING (SIZE (6)),
+ af1 BIT STRING (SIZE (21)),
+ af0 BIT STRING (SIZE (31)),
+ tgd BIT STRING (SIZE (10)) OPTIONAL,
+ sisa BIT STRING (SIZE (8)),
+ model-id INTEGER (0..1) OPTIONAL
+}
+
+Satellite-clock-modelList ::= SEQUENCE (SIZE (1..maxSatClockModels)) OF Satellite-clock-model
+
+-- Identifies the satellite and is equal to (SV ID No - 1) where SV ID No is defined in [12].
+SatID ::= INTEGER (0..63)
+
+SBASclockModel ::= SEQUENCE {
+ sbasTo BIT STRING (SIZE (13)),
+ sbasAgfo BIT STRING (SIZE (12)),
+ sbasAgf1 BIT STRING (SIZE (8))
+}
+
+S-DPCCH-Information ::= SEQUENCE {
+ s-DPCCH-DPCCH-PowerOffset S-DPCCH-DPCCH-PowerOffset
+}
+
+S-DPCCH-DPCCH-PowerOffset ::= INTEGER (0..6)
+
+SFN-Offset-Validity ::= ENUMERATED { false }
+
+SFN-SFN-Drift ::= ENUMERATED {
+ sfnsfndrift0, sfnsfndrift1, sfnsfndrift2,
+ sfnsfndrift3, sfnsfndrift4, sfnsfndrift5,
+ sfnsfndrift8, sfnsfndrift10, sfnsfndrift15,
+ sfnsfndrift25, sfnsfndrift35, sfnsfndrift50,
+ sfnsfndrift65, sfnsfndrift80, sfnsfndrift100,
+ sfnsfndrift-1, sfnsfndrift-2, sfnsfndrift-3,
+ sfnsfndrift-4, sfnsfndrift-5, sfnsfndrift-8,
+ sfnsfndrift-10, sfnsfndrift-15, sfnsfndrift-25,
+ sfnsfndrift-35, sfnsfndrift-50, sfnsfndrift-65,
+ sfnsfndrift-80, sfnsfndrift-100}
+
+SFN-SFN-ObsTimeDifference ::= CHOICE {
+ type1 SFN-SFN-ObsTimeDifference1,
+ type2 SFN-SFN-ObsTimeDifference2
+}
+
+-- SPARE: SFN-SFN-ObsTimeDifference1, Max = 9830399
+-- For 1.28Mcps TDD, Max value of SFN-SFN-ObsTimeDifference1 is 3276799.
+-- Values above Max are spare
+SFN-SFN-ObsTimeDifference1 ::= INTEGER (0..16777215)
+
+-- SPARE: SFN-SFN-ObsTimeDifference2, Max = 40961
+-- For 1.28Mcps TDD, Max value of SFN-SFN-ObsTimeDifference2 is 27649.
+-- Values above Max are spare
+SFN-SFN-ObsTimeDifference2 ::= INTEGER (0..65535)
+
+SFN-SFN-OTD-Type ::= ENUMERATED {
+ noReport,
+ type1,
+ type2 }
+
+SFN-SFN-RelTimeDifference1 ::= SEQUENCE {
+ sfn-Offset INTEGER (0 .. 4095),
+ sfn-sfn-Reltimedifference INTEGER (0.. 38399)
+}
+
+SFN-TOW-Uncertainty ::= ENUMERATED {
+ lessThan10,
+ moreThan10 }
+
+
+SIR ::= INTEGER (0..63)
+
+
+SIR-MeasurementList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ SIR-MeasurementResults
+
+
+SIR-MeasurementResults ::= SEQUENCE {
+ tfcs-ID TFCS-IdentityPlain,
+ sir-TimeslotList SIR-TimeslotList
+}
+
+SIR-TFCS ::= TFCS-IdentityPlain
+
+
+SIR-TFCS-List ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF
+ SIR-TFCS
+
+SIR-TimeslotList ::= SEQUENCE (SIZE (1..maxTS)) OF
+ SIR
+
+-- SubFrame1Reserved, reserved bits in subframe 1 of the GPS navigation message
+SubFrame1Reserved ::= SEQUENCE {
+ reserved1 BIT STRING (SIZE (23)),
+ reserved2 BIT STRING (SIZE (24)),
+ reserved3 BIT STRING (SIZE (24)),
+ reserved4 BIT STRING (SIZE (16))
+}
+
+T-ADVinfo ::= SEQUENCE {
+ t-ADV INTEGER(0..2047),
+ sfn INTEGER(0..4095)
+}
+
+T-ADVinfo-ext ::= SEQUENCE {
+ t-ADV INTEGER (0..8191),
+ sfn INTEGER (0..4095)
+}
+
+T-CRMax ::= CHOICE {
+ notUsed NULL,
+ t30 N-CR-T-CRMaxHyst,
+ t60 N-CR-T-CRMaxHyst,
+ t120 N-CR-T-CRMaxHyst,
+ t180 N-CR-T-CRMaxHyst,
+ t240 N-CR-T-CRMaxHyst
+}
+
+T-CRMaxHyst ::= ENUMERATED {
+ notUsed, t10, t20, t30,
+ t40, t50, t60, t70 }
+
+TCE-Id ::= SEQUENCE {
+ tce-Id OCTET STRING (SIZE (1))
+}
+
+TemporaryOffset1 ::= ENUMERATED {
+ to3, to6, to9, to12, to15,
+ to18, to21, infinite }
+
+TemporaryOffset2 ::= ENUMERATED {
+ to2, to3, to4, to6, to8,
+ to10, to12, infinite }
+
+TemporaryOffsetList ::= SEQUENCE {
+ temporaryOffset1 TemporaryOffset1,
+ temporaryOffset2 TemporaryOffset2
+}
+
+Threshold ::= INTEGER (-115..0)
+
+Threshold-r12 ::= INTEGER (-115..6)
+
+Threshold-r6 ::= INTEGER (-120..0)
+
+-- The order of the list corresponds to the order of frequency defined in Inter-FreqEventCriteria
+ThreholdNonUsedFrequency-deltaList ::= SEQUENCE (SIZE (1..maxFreq)) OF
+ DeltaRSCPPerCell
+
+ThresholdPositionChange ::= ENUMERATED {
+ pc10, pc20, pc30, pc40, pc50,
+ pc100, pc200, pc300, pc500,
+ pc1000, pc2000, pc5000, pc10000,
+ pc20000, pc50000, pc100000 }
+
+ThresholdSFN-GANSS-TOW ::= ENUMERATED {
+ us1, us2, us3, us5, us10,
+ us20, us50, us100 }
+
+ThresholdSFN-GPS-TOW ::= ENUMERATED {
+ ms1, ms2, ms3, ms5, ms10,
+ ms20, ms50, ms100 }
+
+ThresholdSFN-GPS-TOW-us ::= ENUMERATED {
+ us1, us2, us3, us5, us10,
+ us20, us50, us100 }
+
+ThresholdSFN-SFN-Change ::= ENUMERATED {
+ c0-25, c0-5, c1, c2, c3, c4, c5,
+ c10, c20, c50, c100, c200, c500,
+ c1000, c2000, c5000 }
+
+ThresholdUsedFrequency ::= INTEGER (-115..165)
+
+ThresholdUsedFrequency-r6 ::= INTEGER (-120..165)
+
+-- Actual value TimeInterval = IE value * 20.
+TimeInterval ::= INTEGER (1..13)
+
+
+TimeslotInfo ::= SEQUENCE {
+ timeslotNumber TimeslotNumber,
+ burstType BurstType
+}
+
+TimeslotInfo-LCR-r4 ::= SEQUENCE {
+ timeslotNumber TimeslotNumber-LCR-r4
+}
+
+TimeslotInfoList ::= SEQUENCE (SIZE (1..maxTS)) OF
+ TimeslotInfo
+
+TimeslotInfoList-LCR-r4 ::= SEQUENCE (SIZE (1..maxTS-LCR)) OF
+ TimeslotInfo-LCR-r4
+
+TimeslotInfoList-r4 ::= CHOICE {
+ -- the choice for 7.68 Mcps TDD is the same as for 3.84 Mcps TDD --
+ tdd384 SEQUENCE (SIZE (1..maxTS)) OF
+ TimeslotInfo,
+ tdd128 SEQUENCE (SIZE (1..maxTS-LCR)) OF
+ TimeslotInfo-LCR-r4
+}
+
+-- SPARE: TimeslotISCP, Max = 91
+-- Values above Max are spare
+TimeslotISCP ::= INTEGER (0..127)
+
+
+-- TimeslotISCP-List shall not include more than 6 elements in 1.28Mcps TDD mode.
+TimeslotISCP-List ::= SEQUENCE (SIZE (1..maxTS)) OF
+ TimeslotISCP
+
+TimeslotListWithISCP ::= SEQUENCE (SIZE (1..maxTS)) OF
+ TimeslotWithISCP
+
+TimeslotWithISCP ::= SEQUENCE {
+ timeslot TimeslotNumber,
+ timeslotISCP TimeslotISCP
+}
+
+TimeToTrigger ::= ENUMERATED {
+ ttt0, ttt10, ttt20, ttt40, ttt60,
+ ttt80, ttt100, ttt120, ttt160,
+ ttt200, ttt240, tt320, ttt640,
+ ttt1280, ttt2560, ttt5000 }
+
+TraceReference ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ traceId OCTET STRING (SIZE (3))
+}
+
+TraceRecordingSession ::= SEQUENCE {
+ traceRecordingSession OCTET STRING (SIZE (2))
+}
+
+TrafficVolumeEventParam ::= SEQUENCE {
+ eventID TrafficVolumeEventType,
+ reportingThreshold TrafficVolumeThreshold,
+ timeToTrigger TimeToTrigger OPTIONAL,
+ pendingTimeAfterTrigger PendingTimeAfterTrigger OPTIONAL,
+ tx-InterruptionAfterTrigger TX-InterruptionAfterTrigger OPTIONAL
+}
+
+TrafficVolumeEventResults ::= SEQUENCE {
+ ul-transportChannelCausingEvent UL-TrCH-Identity,
+ trafficVolumeEventIdentity TrafficVolumeEventType
+}
+
+TrafficVolumeEventType ::= ENUMERATED {
+ e4a,
+ e4b }
+
+TrafficVolumeMeasQuantity ::= CHOICE {
+ rlc-BufferPayload NULL,
+ averageRLC-BufferPayload TimeInterval,
+ varianceOfRLC-BufferPayload TimeInterval
+}
+
+TrafficVolumeMeasSysInfo ::= SEQUENCE {
+ trafficVolumeMeasurementID MeasurementIdentity DEFAULT 4,
+ trafficVolumeMeasurementObjectList TrafficVolumeMeasurementObjectList OPTIONAL,
+ trafficVolumeMeasQuantity TrafficVolumeMeasQuantity OPTIONAL,
+ trafficVolumeReportingQuantity TrafficVolumeReportingQuantity OPTIONAL,
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy TrafficVolumeReportingCriteria OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ measurementReportingMode MeasurementReportingMode,
+ reportCriteriaSysInf TrafficVolumeReportCriteriaSysInfo
+
+}
+
+TrafficVolumeMeasuredResults ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rlc-BuffersPayload RLC-BuffersPayload OPTIONAL,
+ averageRLC-BufferPayload AverageRLC-BufferPayload OPTIONAL,
+ varianceOfRLC-BufferPayload VarianceOfRLC-BufferPayload OPTIONAL
+}
+
+TrafficVolumeMeasuredResultsList ::= SEQUENCE (SIZE (1..maxRB)) OF
+ TrafficVolumeMeasuredResults
+
+TrafficVolumeMeasurement ::= SEQUENCE {
+ trafficVolumeMeasurementObjectList TrafficVolumeMeasurementObjectList OPTIONAL,
+ trafficVolumeMeasQuantity TrafficVolumeMeasQuantity OPTIONAL,
+ trafficVolumeReportingQuantity TrafficVolumeReportingQuantity OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria TrafficVolumeReportCriteria
+}
+
+TrafficVolumeMeasurementObjectList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ UL-TrCH-Identity
+
+TrafficVolumeReportCriteria ::= CHOICE {
+ trafficVolumeReportingCriteria TrafficVolumeReportingCriteria,
+ periodicalReportingCriteria PeriodicalReportingCriteria,
+ noReporting NULL
+}
+
+TrafficVolumeReportCriteriaSysInfo ::= CHOICE {
+ trafficVolumeReportingCriteria TrafficVolumeReportingCriteria,
+ periodicalReportingCriteria PeriodicalReportingCriteria
+}
+
+TrafficVolumeReportingCriteria ::= SEQUENCE {
+ -- NOTE: transChCriteriaList should be mandatory in later versions of this message
+ transChCriteriaList TransChCriteriaList OPTIONAL
+}
+
+TrafficVolumeReportingQuantity ::= SEQUENCE {
+ rlc-RB-BufferPayload BOOLEAN,
+ rlc-RB-BufferPayloadAverage BOOLEAN,
+ rlc-RB-BufferPayloadVariance BOOLEAN
+}
+
+TrafficVolumeThreshold ::= ENUMERATED {
+ th8, th16, th32, th64, th128,
+ th256, th512, th1024, th2k, th3k,
+ th4k, th6k, th8k, th12k, th16k,
+ th24k, th32k, th48k, th64k, th96k,
+ th128k, th192k, th256k, th384k,
+ th512k, th768k }
+
+TransChCriteria ::= SEQUENCE {
+ ul-transportChannelID UL-TrCH-Identity OPTIONAL,
+ eventSpecificParameters SEQUENCE (SIZE (1..maxMeasParEvent)) OF
+ TrafficVolumeEventParam OPTIONAL
+}
+
+TransChCriteriaList ::= SEQUENCE (SIZE (1..maxTrCH)) OF
+ TransChCriteria
+
+TransferMode ::= ENUMERATED {
+ acknowledgedModeRLC,
+ unacknowledgedModeRLC }
+
+TransmittedPowerThreshold ::= INTEGER (-50..33)
+
+TriggeringCondition1 ::= ENUMERATED {
+ activeSetCellsOnly,
+ monitoredSetCellsOnly,
+ activeSetAndMonitoredSetCells }
+
+TriggeringCondition2 ::= ENUMERATED {
+ activeSetCellsOnly,
+ monitoredSetCellsOnly,
+ activeSetAndMonitoredSetCells,
+ detectedSetCellsOnly,
+ detectedSetAndMonitoredSetCells }
+
+Tutran-Ganss-DriftRate ::= ENUMERATED {
+ ugdr0, ugdr1, ugdr2, ugdr5, ugdr10, ugdr15 , ugdr25,
+ ugdr50, ugdr-1, ugdr-2, ugdr-5, ugdr-10, ugdr-15,
+ ugdr-25, ugdr-50, spare }
+
+TX-InterruptionAfterTrigger ::= ENUMERATED {
+ txiat0-25, txiat0-5, txiat1,
+ txiat2, txiat4, txiat8, txiat16 }
+
+UDRE ::= ENUMERATED {
+ lessThan1,
+ between1-and-4,
+ between4-and-8,
+ over8 }
+
+UDREGrowthRate ::= ENUMERATED {
+ growth-1-5,
+ growth-2,
+ growth-4,
+ growth-6,
+ growth-8,
+ growth-10,
+ growth-12,
+ growth-16 }
+
+UDREValidityTime ::= ENUMERATED {
+ val-20sec,
+ val-40sec,
+ val-80sec,
+ val-160sec,
+ val-320sec,
+ val-640sec,
+ val-1280sec,
+ val-2560sec }
+
+UE-6AB-Event ::= SEQUENCE {
+ timeToTrigger TimeToTrigger,
+ transmittedPowerThreshold TransmittedPowerThreshold
+}
+
+UE-6FG-Event ::= SEQUENCE {
+ timeToTrigger TimeToTrigger,
+ -- in 1.28 Mcps TDD ue-RX-TX-TimeDifferenceThreshold corresponds to TADV Threshold
+ ue-RX-TX-TimeDifferenceThreshold UE-RX-TX-TimeDifferenceThreshold
+}
+
+-- dummy and dummy2 are not used in this version of the specification, they should
+-- not be sent and if received the UE behaviour is not specified.
+UE-AutonomousUpdateMode ::= CHOICE {
+ dummy NULL,
+ onWithNoReporting NULL,
+ dummy2 RL-InformationLists
+}
+
+UE-InternalEventParam ::= CHOICE {
+ event6a UE-6AB-Event,
+ event6b UE-6AB-Event,
+ event6c TimeToTrigger,
+ event6d TimeToTrigger,
+ event6e TimeToTrigger,
+ event6f UE-6FG-Event,
+ event6g UE-6FG-Event
+}
+
+UE-InternalEventParamList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ UE-InternalEventParam
+
+UE-InternalEventResults ::= CHOICE {
+ event6a NULL,
+ event6b NULL,
+ event6c NULL,
+ event6d NULL,
+ event6e NULL,
+ event6f PrimaryCPICH-Info,
+ event6g PrimaryCPICH-Info,
+ spare NULL
+}
+
+UE-InternalMeasQuantity ::= SEQUENCE {
+ measurementQuantity UE-MeasurementQuantity,
+ filterCoefficient FilterCoefficient DEFAULT fc0
+}
+
+UE-InternalMeasuredResults ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ue-TransmittedPowerFDD UE-TransmittedPower OPTIONAL,
+ ue-RX-TX-ReportEntryList UE-RX-TX-ReportEntryList OPTIONAL
+ },
+ tdd SEQUENCE {
+ ue-TransmittedPowerTDD-List UE-TransmittedPowerTDD-List OPTIONAL,
+ appliedTA UL-TimingAdvance OPTIONAL
+ }
+ }
+}
+
+UE-InternalMeasuredResults-LCR-r4 ::= SEQUENCE {
+ ue-TransmittedPowerTDD-List UE-TransmittedPowerTDD-List OPTIONAL,
+ -- If TA value is not greater than 2047, then use this IE to report.
+ t-ADVinfo T-ADVinfo OPTIONAL
+}
+
+UE-InternalMeasuredResults-v770ext ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ tdd384-768 SEQUENCE {
+ appliedTA EXT-UL-TimingAdvance OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ -- If TA value is greater than 2047, then use this IE to report
+ t-ADVinfo T-ADVinfo-ext OPTIONAL
+ }
+ }
+}
+
+UE-InternalMeasurement ::= SEQUENCE {
+ ue-InternalMeasQuantity UE-InternalMeasQuantity OPTIONAL,
+ ue-InternalReportingQuantity UE-InternalReportingQuantity OPTIONAL,
+ reportCriteria UE-InternalReportCriteria
+}
+
+UE-InternalMeasurement-r4 ::= SEQUENCE {
+ ue-InternalMeasQuantity UE-InternalMeasQuantity OPTIONAL,
+ ue-InternalReportingQuantity UE-InternalReportingQuantity-r4 OPTIONAL,
+ reportCriteria UE-InternalReportCriteria
+}
+
+UE-InternalMeasurementSysInfo ::= SEQUENCE {
+ ue-InternalMeasurementID MeasurementIdentity DEFAULT 5,
+ ue-InternalMeasQuantity UE-InternalMeasQuantity
+}
+
+UE-InternalReportCriteria ::= CHOICE {
+ ue-InternalReportingCriteria UE-InternalReportingCriteria,
+ periodicalReportingCriteria PeriodicalReportingCriteria,
+ noReporting NULL
+}
+
+UE-InternalReportingCriteria ::= SEQUENCE {
+ ue-InternalEventParamList UE-InternalEventParamList OPTIONAL
+}
+
+UE-InternalReportingQuantity ::= SEQUENCE {
+ ue-TransmittedPower BOOLEAN,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ue-RX-TX-TimeDifference BOOLEAN
+ },
+ tdd SEQUENCE {
+ appliedTA BOOLEAN
+ }
+ }
+}
+
+UE-InternalReportingQuantity-r4 ::= SEQUENCE {
+ ue-TransmittedPower BOOLEAN,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ue-RX-TX-TimeDifference BOOLEAN
+ },
+ tdd SEQUENCE {
+ tddOption CHOICE {
+ -- appliedTA applies to both 3.84 Mcps TDD and to 7.68 Mcps TDD.
+ -- Therefore, no additional choice of TDD mode is necessary
+ tdd384 SEQUENCE {
+ appliedTA BOOLEAN
+ },
+ tdd128 SEQUENCE {
+ t-ADVinfo BOOLEAN
+ }
+ }
+ }
+ }
+}
+
+-- TABULAR: UE-MeasurementQuantity, for 3.84 Mcps TDD only the first two values
+-- ue-TransmittedPower and utra-Carrier-RSSI are used.
+-- For 1.28 Mcps TDD ue-RX-TX-TimeDifference corresponds to T-ADV in the tabular
+UE-MeasurementQuantity ::= ENUMERATED {
+ ue-TransmittedPower,
+ utra-Carrier-RSSI,
+ ue-RX-TX-TimeDifference }
+
+UE-PowerHeadroomThreshold ::= INTEGER (-50..33)
+
+UE-RX-TX-ReportEntry ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ ue-RX-TX-TimeDifferenceType1 UE-RX-TX-TimeDifferenceType1
+}
+
+UE-RX-TX-ReportEntryList ::= SEQUENCE (SIZE (1..maxRL)) OF
+ UE-RX-TX-ReportEntry
+
+-- SPARE: UE-RX-TX-TimeDifferenceType1, Max = 1280
+-- Values above Max are spare
+UE-RX-TX-TimeDifferenceType1 ::= INTEGER (768..1791)
+
+
+UE-RX-TX-TimeDifferenceType2 ::= INTEGER (0..8191)
+
+UE-RX-TX-TimeDifferenceType2Info ::= SEQUENCE {
+ ue-RX-TX-TimeDifferenceType2 UE-RX-TX-TimeDifferenceType2,
+ neighbourQuality NeighbourQuality
+}
+
+-- In 1.28 Mcps TDD, actual value for
+-- T-ADV Threshold = (UE-RX-TX-TimeDifferenceThreshold - 768) * 0.125
+UE-RX-TX-TimeDifferenceThreshold ::= INTEGER (768..1280)
+
+UE-TransmittedPower ::= INTEGER (0..104)
+
+UE-TransmittedPowerTDD-List ::= SEQUENCE (SIZE (1..maxTS)) OF
+ UE-TransmittedPower
+
+UL-TrCH-Identity ::= CHOICE{
+ dch TransportChannelIdentity,
+ -- Note: the reference to CPCH in the element name below is incorrect. The name is not changed
+ -- to keep it aligned with R99.
+ rachorcpch NULL,
+ usch TransportChannelIdentity
+}
+
+UE-Positioning-Accuracy ::= BIT STRING (SIZE (7))
+
+UE-Positioning-DBDSCorrections ::= SEQUENCE {
+ bds-RefTime INTEGER (0..119),
+ bds-DBDS-InfoList DBDS-InfoList
+}
+
+UE-Positioning-CipherParameters ::= SEQUENCE {
+ cipheringKeyFlag BIT STRING (SIZE (1)),
+ cipheringSerialNumber INTEGER (0..65535)
+}
+
+UE-Positioning-DGANSSCorrections ::= SEQUENCE {
+ dganssreferencetime INTEGER (0..119), -- scale factor 30s
+ dganssInfoList DGANSSInfoList
+}
+
+UE-Positioning-DGANSSCorrections-r9 ::= SEQUENCE {
+ dganssreferencetime INTEGER (0..119), -- scale factor 30s
+ dganssInfoList DGANSSInfoList-r9
+}
+
+UE-Positioning-DGANSSCorrections-v920ext ::= SEQUENCE {
+ dganssInfoList DGANSSInfoList-v920ext
+}
+
+UE-Positioning-Error ::= SEQUENCE {
+ errorReason UE-Positioning-ErrorCause,
+ ue-positioning-GPS-additionalAssistanceDataRequest
+ UE-Positioning-GPS-AdditionalAssistanceDataRequest OPTIONAL
+}
+
+UE-Positioning-Error-r7 ::= SEQUENCE {
+ errorReason UE-Positioning-ErrorCause-r7,
+ ue-positioning-GPS-additionalAssistanceDataRequest
+ UE-Positioning-GPS-AdditionalAssistanceDataRequest OPTIONAL,
+ ue-positioning-GANSS-additionalAssistanceDataRequest
+ UE-Positioning-GANSS-AdditionalAssistanceDataRequest OPTIONAL
+}
+
+UE-Positioning-Error-v860ext ::= SEQUENCE {
+ ue-positioning-GANSS-additionalAssistanceDataRequest
+ UE-Positioning-GANSS-AdditionalAssistanceDataRequest-v860ext OPTIONAL
+}
+
+UE-Positioning-Error-vc50ext ::= SEQUENCE {
+ ue-positioning-GANSS-additionalAssistanceDataRequest
+ UE-Positioning-GANSS-AdditionalAssistanceDataRequest-vc50ext OPTIONAL
+}
+
+UE-Positioning-ErrorCause ::= ENUMERATED {
+ notEnoughOTDOA-Cells,
+ notEnoughGPS-Satellites,
+ assistanceDataMissing,
+ notAccomplishedGPS-TimingOfCellFrames,
+ undefinedError,
+ requestDeniedByUser,
+ notProcessedAndTimeout,
+ referenceCellNotServingCell }
+
+UE-Positioning-ErrorCause-r7 ::= ENUMERATED {
+ notEnoughOTDOA-Cells,
+ notEnoughGPS-Satellites,
+ assistanceDataMissing,
+ notAccomplishedGPS-TimingOfCellFrames,
+ undefinedError,
+ requestDeniedByUser,
+ notProcessedAndTimeout,
+ referenceCellNotServingCell,
+ notEnoughGANSS-Satellites,
+ notAccomplishedGANSS-TimingOfCellFrames,
+ spare6, spare5, spare4, spare3, spare2, spare1 }
+
+UE-Positioning-EventParam ::= SEQUENCE {
+ reportingAmount ReportingAmount,
+ reportFirstFix BOOLEAN,
+ measurementInterval UE-Positioning-MeasurementInterval,
+ eventSpecificInfo UE-Positioning-EventSpecificInfo
+}
+
+UE-Positioning-EventParam-r7 ::= SEQUENCE {
+ reportingAmount ReportingAmount,
+ reportFirstFix BOOLEAN,
+ measurementInterval UE-Positioning-MeasurementInterval,
+ eventSpecificInfo UE-Positioning-EventSpecificInfo-r7
+}
+
+UE-Positioning-EventParamList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ UE-Positioning-EventParam
+
+UE-Positioning-EventParamList-r7 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF
+ UE-Positioning-EventParam-r7
+
+UE-Positioning-EventSpecificInfo ::= CHOICE {
+ e7a ThresholdPositionChange,
+ e7b ThresholdSFN-SFN-Change,
+ e7c ThresholdSFN-GPS-TOW
+}
+
+UE-Positioning-EventSpecificInfo-r7 ::= CHOICE {
+ e7a ThresholdPositionChange,
+ e7b ThresholdSFN-SFN-Change,
+ e7c ThresholdSFN-GPS-TOW-us,
+ e7d ThresholdSFN-GANSS-TOW
+}
+
+-- This IE, if included, shall contain exactly one of the optional elements
+UE-Positioning-GANSS-AddUTCModels ::= SEQUENCE {
+ utcModel1 UTCmodelSet1 OPTIONAL,
+ utcModel2 UTCmodelSet2 OPTIONAL,
+ utcModel3 UTCmodelSet3 OPTIONAL
+}
+
+-- This IE, if included, shall contain exactly one of the optional elements
+UE-Positioning-GANSS-AddUTCModels-r12 ::= SEQUENCE {
+ utcModel1 UTCmodelSet1 OPTIONAL,
+ utcModel2 UTCmodelSet2 OPTIONAL,
+ utcModel3 UTCmodelSet3 OPTIONAL,
+ utcModel4 UTCmodelSet4 OPTIONAL
+}
+
+UE-Positioning-GANSS-AddUTCModels-vc50ext ::= SEQUENCE {
+ utcModel4 UTCmodelSet4 OPTIONAL
+}
+
+UE-Positioning-GANSS-Almanac ::= SEQUENCE{
+ ganss-wk-number INTEGER (0..255),
+ alm-keplerianParameters ALM-keplerianParameters OPTIONAL
+}
+
+-- This IE, if included, shall contain exactly one of the optional elements
+UE-Positioning-GANSS-Almanac-v860ext ::= SEQUENCE {
+ alm-keplerianNAVAlmanac ALM-NAVKeplerianSet OPTIONAL,
+ alm-keplerianReducedAlmanac ALM-ReducedKeplerianSet OPTIONAL,
+ alm-keplerianMidiAlmanac ALM-MidiAlmanacSet OPTIONAL,
+ alm-keplerianGLONASS ALM-GlonassAlmanacSet OPTIONAL,
+ alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL
+}
+
+UE-Positioning-GANSS-Almanac-r8 ::= SEQUENCE{
+ ganss-wk-number INTEGER (0..255),
+ alm-keplerianParameters ALM-keplerianParameters OPTIONAL,
+ alm-keplerianNAVAlmanac ALM-NAVKeplerianSet OPTIONAL,
+ alm-keplerianReducedAlmanac ALM-ReducedKeplerianSet OPTIONAL,
+ alm-keplerianMidiAlmanac ALM-MidiAlmanacSet OPTIONAL,
+ alm-keplerianGLONASS ALM-GlonassAlmanacSet OPTIONAL,
+ alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL
+}
+
+UE-Positioning-GANSS-Almanac-va40ext ::= SEQUENCE {
+ complete-Almanac-Provided BOOLEAN OPTIONAL
+}
+
+UE-Positioning-GANSS-Almanac-r10 ::= SEQUENCE{
+ ganss-wk-number INTEGER (0..255),
+ complete-Almanac-Provided BOOLEAN OPTIONAL,
+ alm-keplerianParameters ALM-keplerianParameters OPTIONAL,
+ alm-keplerianNAVAlmanac ALM-NAVKeplerianSet OPTIONAL,
+ alm-keplerianReducedAlmanac ALM-ReducedKeplerianSet OPTIONAL,
+ alm-keplerianMidiAlmanac ALM-MidiAlmanacSet OPTIONAL,
+ alm-keplerianGLONASS ALM-GlonassAlmanacSet OPTIONAL,
+ alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL
+}
+
+UE-Positioning-GANSS-Almanac-r12 ::= SEQUENCE{
+ ganss-wk-number INTEGER (0..255),
+ complete-Almanac-Provided BOOLEAN OPTIONAL,
+ alm-keplerianParameters ALM-keplerianParameters OPTIONAL,
+ alm-keplerianNAVAlmanac ALM-NAVKeplerianSet OPTIONAL,
+ alm-keplerianReducedAlmanac ALM-ReducedKeplerianSet OPTIONAL,
+ alm-keplerianMidiAlmanac ALM-MidiAlmanacSet OPTIONAL,
+ alm-keplerianGLONASS ALM-GlonassAlmanacSet OPTIONAL,
+ alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL,
+ alm-keplerianBDSAlmanac ALM-BDSKeplerianSet OPTIONAL
+}
+
+UE-Positioning-GANSS-Almanac-vc50ext ::= SEQUENCE {
+ alm-keplerianBDSAlmanac ALM-BDSKeplerianSet OPTIONAL
+}
+
+UE-Positioning-GANSS-AdditionalAssistanceDataRequest ::= SEQUENCE {
+ ganssReferenceTime BOOLEAN,
+ ganssreferenceLocation BOOLEAN,
+ ganssIonosphericModel BOOLEAN,
+ ganssRequestedGenericAssistanceDataList GanssRequestedGenericAssistanceDataList
+}
+
+UE-Positioning-GANSS-AdditionalAssistanceDataRequest-v860ext ::= SEQUENCE {
+ ganssAddIonoModelReq BIT STRING (SIZE (2)) OPTIONAL,
+ ganssEOPreq ENUMERATED { true } OPTIONAL,
+ ganssRequestedGenericAssistanceDataList
+ GanssRequestedGenericAssistanceDataList-v860ext
+}
+
+UE-Positioning-GANSS-AdditionalAssistanceDataRequest-vc50ext ::= SEQUENCE {
+ ganssRequestedGenericAssistanceDataList
+ GanssRequestedGenericAssistanceDataList-vc50ext
+}
+
+UE-Positioning-GANSS-AddIonoModel ::= SEQUENCE {
+ dataID BIT STRING (SIZE (2)),
+ alpha-beta-parameters UE-Positioning-GPS-IonosphericModel
+}
+
+UE-Positioning-GANSS-AddNavigationModels ::= SEQUENCE {
+ non-broadcastIndication ENUMERATED { true } OPTIONAL,
+ ganssSatInfoNavList Ganss-Sat-Info-AddNavList
+}
+
+UE-Positioning-GANSS-AddNavigationModels-r12 ::= SEQUENCE {
+ non-broadcastIndication ENUMERATED { true } OPTIONAL,
+ ganssSatInfoNavList Ganss-Sat-Info-AddNavList-r12
+}
+
+UE-Positioning-GANSS-AddNavigationModels-vc50ext ::= SEQUENCE {
+ ganssSatInfoNavList Ganss-Sat-Info-AddNavList-vc50ext
+}
+
+UE-Positioning-GANSS-AssistanceData ::= SEQUENCE {
+ ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL,
+ uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL,
+ uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL,
+ ganssGenericDataList GANSSGenericDataList OPTIONAL
+}
+
+UE-Positioning-GANSS-AssistanceData-v860ext ::= SEQUENCE {
+ uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL,
+ uePositioningGanssEarthOrientationPara UE-Positioning-GANSS-EarthOrientPara OPTIONAL,
+ ganssGenericDataList GANSSGenericDataList-v860ext OPTIONAL
+}
+
+UE-Positioning-GANSS-AssistanceData-r8 ::= SEQUENCE {
+ ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL,
+ uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL,
+ uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL,
+ uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL,
+ uePositioningGanssEarthOrientationPara
+ UE-Positioning-GANSS-EarthOrientPara OPTIONAL,
+ ganssGenericDataList GANSSGenericDataList-r8 OPTIONAL
+}
+
+UE-Positioning-GANSS-AssistanceData-r9 ::= SEQUENCE {
+ ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL,
+ uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL,
+ uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL,
+ uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL,
+ uePositioningGanssEarthOrientationPara
+ UE-Positioning-GANSS-EarthOrientPara OPTIONAL,
+ ganssGenericDataList GANSSGenericDataList-r9 OPTIONAL
+}
+
+UE-Positioning-GANSS-AssistanceData-v920ext ::= SEQUENCE {
+ ganssGenericDataList GANSSGenericDataList-v920ext OPTIONAL
+}
+
+UE-Positioning-GANSS-AssistanceData-va40ext ::= SEQUENCE {
+ ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-va40ext OPTIONAL,
+ ganssGenericDataList GANSSGenericDataList-va40ext OPTIONAL
+}
+
+UE-Positioning-GANSS-AssistanceData-vc50ext ::= SEQUENCE {
+ ganssGenericDataList GANSSGenericDataList-vc50ext OPTIONAL
+}
+
+UE-Positioning-GANSS-AssistanceData-r10 ::= SEQUENCE {
+ ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-r10 OPTIONAL,
+ uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL,
+ uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL,
+ uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL,
+ uePositioningGanssEarthOrientationPara
+ UE-Positioning-GANSS-EarthOrientPara OPTIONAL,
+ ganssGenericDataList GANSSGenericDataList-r10 OPTIONAL
+}
+
+UE-Positioning-GANSS-AssistanceData-r12 ::= SEQUENCE {
+ ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-r10 OPTIONAL,
+ uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL,
+ uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL,
+ uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL,
+ uePositioningGanssEarthOrientationPara UE-Positioning-GANSS-EarthOrientPara OPTIONAL,
+ ganssGenericDataList GANSSGenericDataList-r12 OPTIONAL
+}
+
+UE-Positioning-GANSS-AuxiliaryInfo ::= CHOICE {
+ -- This choice may only be present if GANSS ID indicates Modernized GPS
+ ganssID1 AuxInfoGANSS-ID1,
+ -- This choice may only be present if GANSS ID indicates GLONASS
+ ganssID3 AuxInfoGANSS-ID3
+}
+
+UE-Positioning-GANSS-ClockModel ::= SEQUENCE {
+ satellite-clock-modelList Satellite-clock-modelList
+}
+
+-- This IE, if included, shall contain exactly one of the optional elements
+UE-Positioning-GANSS-AddClockModels ::= SEQUENCE {
+ navClockModel NAVclockModel OPTIONAL,
+ cnavClockModel CNAVclockModel OPTIONAL,
+ glonassClockModel GLONASSclockModel OPTIONAL,
+ sbasClockModel SBASclockModel OPTIONAL
+}
+
+-- This IE, if included, shall contain exactly one of the optional elements
+UE-Positioning-GANSS-AddClockModels-r12 ::= SEQUENCE {
+ navClockModel NAVclockModel OPTIONAL,
+ cnavClockModel CNAVclockModel OPTIONAL,
+ glonassClockModel GLONASSclockModel OPTIONAL,
+ sbasClockModel SBASclockModel OPTIONAL,
+ bdsClockModel BDSclockModel OPTIONAL
+}
+
+UE-Positioning-GANSS-AddClockModels-vc50ext ::= SEQUENCE {
+ bdsClockModel BDSclockModel OPTIONAL
+}
+
+-- This IE, if included, shall contain exactly one of the optional elements
+UE-Positioning-GANSS-AddOrbitModels ::= SEQUENCE {
+ navKeplerianSet NavModel-NAVKeplerianSet OPTIONAL,
+ cnavKeplerianSet NavModel-CNAVKeplerianSet OPTIONAL,
+ glonassECEF NavModel-GLONASSecef OPTIONAL,
+ sbasECEF NavModel-SBASecef OPTIONAL
+}
+
+UE-Positioning-GANSS-AddOrbitModels-r12 ::= SEQUENCE {
+ navKeplerianSet NavModel-NAVKeplerianSet OPTIONAL,
+ cnavKeplerianSet NavModel-CNAVKeplerianSet OPTIONAL,
+ glonassECEF NavModel-GLONASSecef OPTIONAL,
+ sbasECEF NavModel-SBASecef OPTIONAL,
+ bdsKeplerianSet NavModel-BDSKeplerianSet OPTIONAL
+}
+
+UE-Positioning-GANSS-AddOrbitModels-vc50ext ::= SEQUENCE {
+ bdsKeplerianSet NavModel-BDSKeplerianSet OPTIONAL
+}
+
+UE-Positioning-GANSS-Data ::= SEQUENCE {
+ ganssDataCipheringInfo UE-Positioning-CipherParameters OPTIONAL,
+ ganssDecipheringKeys GANSSDecipheringKeys OPTIONAL,
+ uePositioningGanssReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL,
+ uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL,
+ uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL,
+ ganssGenericDataList GANSSGenericDataList OPTIONAL
+}
+
+UE-Positioning-GANSS-Data-Bit-Assistance ::= SEQUENCE {
+ ganss-tod INTEGER (0..59),
+ dataBitAssistanceList DataBitAssistanceList
+}
+
+UE-Positioning-GANSS-EarthOrientPara ::= SEQUENCE {
+ teop BIT STRING (SIZE (16)),
+ pmX BIT STRING (SIZE (21)),
+ pmXdot BIT STRING (SIZE (15)),
+ pmY BIT STRING (SIZE (21)),
+ pmYdot BIT STRING (SIZE (15)),
+ deltaUT1 BIT STRING (SIZE (31)),
+ deltaUT1dot BIT STRING (SIZE (19))
+}
+
+UE-Positioning-GANSS-IonosphericModel ::= SEQUENCE {
+ alpha-zero-ionos BIT STRING (SIZE (11)),
+ alpha-one-ionos BIT STRING (SIZE (11)),
+ alpha-two-ionos BIT STRING (SIZE (14)),
+ gANSS-storm-flags GANSS-Storm-Flag OPTIONAL
+}
+
+UE-Positioning-BDS-IonoGridModel ::= SEQUENCE {
+-- Actual value bds-RefTime = ((30..3600) / 30) - 1.
+ bds-RefTime INTEGER (0..119),
+ bds-IGPInfoList BDS-IGPInfoList
+}
+
+UE-Positioning-GANSS-MeasuredResults ::= SEQUENCE {
+ referenceTime CHOICE {
+ utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTime,
+ ganssReferenceTimeOnly GANSSReferenceTimeOnly
+ },
+ ganssGenericMeasurementInfo GANSSGenericMeasurementInfo
+}
+
+UE-Positioning-GANSS-MeasuredResults-v860ext ::= SEQUENCE {
+ ganssGenericMeasurementInfo GANSSGenericMeasurementInfo-v860ext
+}
+
+UE-Positioning-GANSS-NavigationModel ::= SEQUENCE {
+ non-broadcastIndication ENUMERATED { true } OPTIONAL,
+ ganssSatInfoNavList Ganss-Sat-Info-NavList
+}
+
+UE-Positioning-GANSS-OrbitModel ::= SEQUENCE {
+ keplerianParameters KeplerianParameters OPTIONAL
+}
+
+UE-Positioning-GANSS-RealTimeIntegrity ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE {
+ bad-ganss-satId INTEGER (0..63),
+ bad-ganss-signalId BIT STRING (SIZE (8)) OPTIONAL
+}
+
+UE-Positioning-GANSS-ReferenceMeasurementInfo ::= SEQUENCE {
+ ganssSignalId GANSS-Signal-Id OPTIONAL,
+ satelliteInformationList GANSSSatelliteInformationList
+}
+
+UE-Positioning-GANSS-ReferenceMeasurementInfo-va40ext ::= SEQUENCE {
+ satelliteInformationList GANSSSatelliteInformationList-va40ext
+}
+
+UE-Positioning-GANSS-ReferenceMeasurementInfo-r10 ::= SEQUENCE {
+ ganssSignalId GANSS-Signal-Id OPTIONAL,
+ satelliteInformationList GANSSSatelliteInformationList-r10
+}
+
+UE-Positioning-GANSS-ReferenceMeasurementInfo-vc50ext ::= SEQUENCE {
+ confidence INTEGER (0..100) OPTIONAL,
+ satelliteInformationList GANSSSatelliteInformationList-vc50ext
+}
+
+UE-Positioning-GANSS-ReferenceMeasurementInfo-r12 ::= SEQUENCE {
+ ganssSignalId GANSS-Signal-Id OPTIONAL,
+ confidence INTEGER (0..100) OPTIONAL,
+ satelliteInformationList GANSSSatelliteInformationList-r12
+}
+
+UE-Positioning-GANSS-ReferenceTime ::= SEQUENCE {
+ ganssDay INTEGER (0..8191) OPTIONAL,
+ ganssTod INTEGER (0..86399),
+ ganssTodUncertainty INTEGER (0..127) OPTIONAL,
+ ganssTimeId INTEGER (0..7) OPTIONAL,
+ utran-ganssreferenceTime SEQUENCE {
+ timingOfCellFrames INTEGER (0..3999999),
+ mode CHOICE {
+ fdd SEQUENCE {
+ primary-CPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE {
+ cellParameters CellParametersID
+ }
+ },
+ referenceSfn INTEGER (0..4095)
+ } OPTIONAL,
+ tutran-ganss-driftRate Tutran-Ganss-DriftRate OPTIONAL
+}
+
+UE-Positioning-GANSS-ReferenceTime-va40ext ::= SEQUENCE {
+ ganss-Day-Cycle-Number INTEGER (0..7) OPTIONAL
+}
+
+UE-Positioning-GANSS-ReferenceTime-r10 ::= SEQUENCE {
+ ganssDay INTEGER (0..8191) OPTIONAL,
+ ganss-Day-Cycle-Number INTEGER (0..7) OPTIONAL,
+ ganssTod INTEGER (0..86399),
+ ganssTodUncertainty INTEGER (0..127) OPTIONAL,
+ ganssTimeId INTEGER (0..7) OPTIONAL,
+ utran-ganssreferenceTime SEQUENCE {
+ timingOfCellFrames INTEGER (0..3999999),
+ mode CHOICE {
+ fdd SEQUENCE {
+ primary-CPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE {
+ cellParameters CellParametersID
+ }
+ },
+ referenceSfn INTEGER (0..4095)
+ } OPTIONAL,
+ tutran-ganss-driftRate Tutran-Ganss-DriftRate OPTIONAL
+}
+
+UE-Positioning-GANSS-SBAS-ID ::= ENUMERATED {
+ waas,
+ egnos,
+ msas,
+ gagan,
+ spare4,
+ spare3,
+ spare2,
+ spare1 }
+
+UE-Positioning-GANSS-TimeModel ::= SEQUENCE {
+ ganss-timeModelreferenceTime INTEGER (0..37799), -- scale factor 16s
+ ganss-t-a0 INTEGER (-2147483648..2147483647), -- scale factor 2-35
+ -- 'ganss-t-al' scale factor 2-51
+ ganss-t-a1 INTEGER (-8388608..8388607) OPTIONAL,
+ -- 'ganss-t-a2' scale factor 2-68
+ ganss-t-a2 INTEGER (-64..63) OPTIONAL,
+ gnss-to-id ENUMERATED { gps, galileo, qzss,
+ glonass, spare4, spare3, spare2, spare1 },
+ ganss-wk-number INTEGER (0..8191) OPTIONAL
+}
+
+UE-Positioning-GANSS-TimeModel-va40ext ::= SEQUENCE {
+ deltaT INTEGER (-128..127) OPTIONAL
+}
+
+UE-Positioning-GANSS-TimeModel-r10 ::= SEQUENCE {
+ ganss-timeModelreferenceTime INTEGER (0..37799), -- scale factor 16s
+ ganss-t-a0 INTEGER (-2147483648..2147483647), -- scale factor 2-35
+ -- 'ganss-t-al' scale factor 2-51
+ ganss-t-a1 INTEGER (-8388608..8388607) OPTIONAL,
+ -- 'ganss-t-a2' scale factor 2-68
+ ganss-t-a2 INTEGER (-64..63) OPTIONAL,
+ gnss-to-id ENUMERATED { gps, galileo, qzss,
+ glonass, bds, spare3, spare2, spare1 },
+ ganss-wk-number INTEGER (0..8191) OPTIONAL,
+ deltaT INTEGER (-128..127) OPTIONAL
+}
+
+UE-Positioning-GANSS-TimeModels ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF
+ UE-Positioning-GANSS-TimeModel
+
+UE-Positioning-GANSS-TimeModels-va40ext ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF
+ UE-Positioning-GANSS-TimeModel-va40ext
+
+UE-Positioning-GANSS-UTCModel ::= 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))
+}
+
+UE-Positioning-GPS-AcquisitionAssistance ::= SEQUENCE {
+ gps-ReferenceTime GPS-TOW-1msec,
+ utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL,
+ satelliteInformationList AcquisitionSatInfoList
+}
+
+UE-Positioning-GPS-AcquisitionAssistance-v770ext ::= SEQUENCE {
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL
+}
+
+UE-Positioning-GPS-AcquisitionAssistance-r7 ::= SEQUENCE {
+ gps-ReferenceTime GPS-TOW-1msec,
+ utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL,
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL,
+ satelliteInformationList AcquisitionSatInfoList
+}
+
+UE-Positioning-GPS-AcquisitionAssistance-va40ext ::= SEQUENCE {
+ satelliteInformationList AcquisitionSatInfoList-va40ext
+}
+
+UE-Positioning-GPS-AcquisitionAssistance-r10 ::= SEQUENCE {
+ gps-ReferenceTime GPS-TOW-1msec,
+ utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL,
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty
+ OPTIONAL,
+ satelliteInformationList AcquisitionSatInfoList-r10
+}
+
+UE-Positioning-GPS-AcquisitionAssistance-vc50ext ::= SEQUENCE {
+ confidence INTEGER (0..100) OPTIONAL,
+ satelliteInformationList AcquisitionSatInfoList-vc50ext
+}
+
+UE-Positioning-GPS-AcquisitionAssistance-r12 ::= SEQUENCE {
+ gps-ReferenceTime GPS-TOW-1msec,
+ utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL,
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty
+ OPTIONAL,
+ confidence INTEGER (0..100) OPTIONAL,
+ satelliteInformationList AcquisitionSatInfoList-r12
+}
+
+UE-Positioning-GPS-AdditionalAssistanceDataRequest ::= SEQUENCE {
+ almanacRequest BOOLEAN,
+ utcModelRequest BOOLEAN,
+ ionosphericModelRequest BOOLEAN,
+ navigationModelRequest BOOLEAN,
+ dgpsCorrectionsRequest BOOLEAN,
+ referenceLocationRequest BOOLEAN,
+ referenceTimeRequest BOOLEAN,
+ aquisitionAssistanceRequest BOOLEAN,
+ realTimeIntegrityRequest BOOLEAN,
+ navModelAddDataRequest UE-Positioning-GPS-NavModelAddDataReq OPTIONAL
+}
+
+UE-Positioning-GPS-Almanac ::= SEQUENCE {
+ wn-a BIT STRING (SIZE (8)),
+ almanacSatInfoList AlmanacSatInfoList,
+ sv-GlobalHealth BIT STRING (SIZE (364)) OPTIONAL
+}
+
+UE-Positioning-GPS-Almanac-va40ext ::= SEQUENCE {
+ complete-Almanac-Provided BOOLEAN OPTIONAL
+}
+
+UE-Positioning-GPS-Almanac-r10 ::= SEQUENCE {
+ wn-a BIT STRING (SIZE (8)),
+ complete-Almanac-Provided BOOLEAN OPTIONAL,
+ almanacSatInfoList AlmanacSatInfoList,
+ sv-GlobalHealth BIT STRING (SIZE (364)) OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData ::= SEQUENCE {
+ ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime OPTIONAL,
+ ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL,
+ ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections OPTIONAL,
+ ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL,
+ ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL,
+ ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL,
+ ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac OPTIONAL,
+ ue-positioning-GPS-AcquisitionAssistance
+ UE-Positioning-GPS-AcquisitionAssistance OPTIONAL,
+ ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy UE-Positioning-GPS-ReferenceCellInfo OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData-v770ext ::= SEQUENCE {
+ ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-v770ext OPTIONAL,
+ ue-positioning-GPS-AcquisitionAssistance
+ UE-Positioning-GPS-AcquisitionAssistance-v770ext OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData-r7 ::= SEQUENCE {
+ ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-r7 OPTIONAL,
+ ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL,
+ ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections OPTIONAL,
+ ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL,
+ ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL,
+ ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL,
+ ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac OPTIONAL,
+ ue-positioning-GPS-AcquisitionAssistance
+ UE-Positioning-GPS-AcquisitionAssistance-r7 OPTIONAL,
+ ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData-r9 ::= SEQUENCE {
+ ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-r7 OPTIONAL,
+ ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL,
+ ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-r9 OPTIONAL,
+ ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL,
+ ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL,
+ ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL,
+ ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac OPTIONAL,
+ ue-positioning-GPS-AcquisitionAssistance
+ UE-Positioning-GPS-AcquisitionAssistance-r7 OPTIONAL,
+ ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData-v920ext ::= SEQUENCE {
+ ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-v920ext OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData-va40ext ::= SEQUENCE {
+ ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-va40ext OPTIONAL,
+ ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac-va40ext OPTIONAL,
+ ue-positioning-GPS-AcquisitionAssistance
+ UE-Positioning-GPS-AcquisitionAssistance-va40ext
+ OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData-r10 ::= SEQUENCE {
+ ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-r10 OPTIONAL,
+ ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL,
+ ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-r9 OPTIONAL,
+ ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL,
+ ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL,
+ ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL,
+ ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac-r10 OPTIONAL,
+ ue-positioning-GPS-AcquisitionAssistance
+ UE-Positioning-GPS-AcquisitionAssistance-r10
+ OPTIONAL,
+ ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData-vc50ext ::= SEQUENCE {
+ ue-positioning-GPS-AcquisitionAssistance
+ UE-Positioning-GPS-AcquisitionAssistance-vc50ext
+ OPTIONAL
+}
+
+UE-Positioning-GPS-AssistanceData-r12 ::= SEQUENCE {
+ ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-r10 OPTIONAL,
+ ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL,
+ ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-r9 OPTIONAL,
+ ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL,
+ ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL,
+ ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL,
+ ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac-r10 OPTIONAL,
+ ue-positioning-GPS-AcquisitionAssistance
+ UE-Positioning-GPS-AcquisitionAssistance-r12
+ OPTIONAL,
+ ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL
+}
+
+UE-Positioning-GPS-DGPS-Corrections ::= SEQUENCE {
+ gps-TOW GPS-TOW-1sec,
+ statusHealth DiffCorrectionStatus,
+ dgps-CorrectionSatInfoList DGPS-CorrectionSatInfoList
+}
+
+UE-Positioning-GPS-DGPS-Corrections-r9 ::= SEQUENCE {
+ gps-TOW GPS-TOW-1sec,
+ statusHealth DiffCorrectionStatus,
+ dgps-CorrectionSatInfoList DGPS-CorrectionSatInfoList-r9
+}
+
+UE-Positioning-GPS-DGPS-Corrections-v920ext ::= SEQUENCE {
+ dgps-CorrectionSatInfoList DGPS-CorrectionSatInfoList-v920ext
+}
+
+UE-Positioning-GPS-IonosphericModel ::= SEQUENCE {
+ alpha0 BIT STRING (SIZE (8)),
+ alpha1 BIT STRING (SIZE (8)),
+ alpha2 BIT STRING (SIZE (8)),
+ alpha3 BIT STRING (SIZE (8)),
+ beta0 BIT STRING (SIZE (8)),
+ beta1 BIT STRING (SIZE (8)),
+ beta2 BIT STRING (SIZE (8)),
+ beta3 BIT STRING (SIZE (8))
+}
+
+UE-Positioning-GPS-MeasurementResults ::= SEQUENCE {
+ referenceTime CHOICE {
+ utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult,
+ gps-ReferenceTimeOnly GPS-TOW-1msec
+ },
+ gps-MeasurementParamList GPS-MeasurementParamList
+}
+
+UE-Positioning-GPS-MeasurementResults-v770ext ::= SEQUENCE {
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL
+}
+
+UE-Positioning-GPS-NavigationModel ::= SEQUENCE {
+ navigationModelSatInfoList NavigationModelSatInfoList
+}
+
+UE-Positioning-GPS-NavModelAddDataReq ::= SEQUENCE {
+ gps-Week INTEGER (0..1023),
+ -- SPARE: gps-Toe, Max = 167
+ -- Values above Max are spare
+ gps-Toe INTEGER (0..255),
+ -- SPARE: tToeLimit, Max = 10
+ -- Values above Max are spare
+ tToeLimit INTEGER (0..15),
+ satDataList SatDataList
+}
+
+UE-Positioning-GPS-ReferenceCellInfo ::= SEQUENCE{
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info
+ },
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID
+ }
+ }
+}
+
+UE-Positioning-GPS-ReferenceTime ::= SEQUENCE {
+ gps-Week INTEGER (0..1023),
+ gps-tow-1msec GPS-TOW-1msec,
+ utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL,
+ sfn-tow-Uncertainty SFN-TOW-Uncertainty OPTIONAL,
+ utran-GPS-DriftRate UTRAN-GPS-DriftRate OPTIONAL,
+ gps-TOW-AssistList GPS-TOW-AssistList OPTIONAL
+}
+
+UE-Positioning-GPS-ReferenceTime-v770ext ::= SEQUENCE {
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL
+}
+
+UE-Positioning-GPS-ReferenceTime-r7 ::= SEQUENCE {
+ gps-Week INTEGER (0..1023),
+ gps-tow-1msec GPS-TOW-1msec,
+ utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL,
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL,
+ sfn-tow-Uncertainty SFN-TOW-Uncertainty OPTIONAL,
+ utran-GPS-DriftRate UTRAN-GPS-DriftRate OPTIONAL,
+ gps-TOW-AssistList GPS-TOW-AssistList OPTIONAL
+}
+
+UE-Positioning-GPS-ReferenceTime-va40ext ::= SEQUENCE {
+ gps-Week-Cycle-Number INTEGER (0..7) OPTIONAL
+}
+
+UE-Positioning-GPS-ReferenceTime-r10 ::= SEQUENCE {
+ gps-Week INTEGER (0..1023),
+ gps-Week-Cycle-Number INTEGER (0..7) OPTIONAL,
+ gps-tow-1msec GPS-TOW-1msec,
+ utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL,
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty
+ OPTIONAL,
+ sfn-tow-Uncertainty SFN-TOW-Uncertainty OPTIONAL,
+ utran-GPS-DriftRate UTRAN-GPS-DriftRate OPTIONAL,
+ gps-TOW-AssistList GPS-TOW-AssistList OPTIONAL
+}
+
+UE-Positioning-GPS-ReferenceTimeUncertainty ::= INTEGER (0..127)
+
+UE-Positioning-GPS-UTC-Model ::= SEQUENCE {
+ a1 BIT STRING (SIZE (24)),
+ a0 BIT STRING (SIZE (32)),
+ t-ot BIT STRING (SIZE (8)),
+ wn-t BIT STRING (SIZE (8)),
+ delta-t-LS BIT STRING (SIZE (8)),
+ wn-lsf BIT STRING (SIZE (8)),
+ dn BIT STRING (SIZE (8)),
+ delta-t-LSF BIT STRING (SIZE (8))
+}
+
+UE-Positioning-IPDL-Parameters ::= SEQUENCE {
+ ip-Spacing IP-Spacing,
+ ip-Length IP-Length,
+ ip-Offset INTEGER (0..9),
+ seed INTEGER (0..63),
+ burstModeParameters BurstModeParameters OPTIONAL
+}
+
+UE-Positioning-IPDL-Parameters-r4 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ip-Spacing IP-Spacing,
+ ip-Length IP-Length,
+ ip-Offset INTEGER (0..9),
+ seed INTEGER (0..63)
+ },
+ tdd SEQUENCE {
+ ip-Spacing-TDD IP-Spacing-TDD,
+ ip-slot INTEGER (0..14),
+ ip-Start INTEGER (0..4095),
+ ip-PCCPCG IP-PCCPCH-r4 OPTIONAL
+ }
+ },
+ burstModeParameters BurstModeParameters OPTIONAL
+}
+
+UE-Positioning-IPDL-Parameters-TDD-r4-ext ::= SEQUENCE {
+ ip-Spacing IP-Spacing-TDD,
+ ip-slot INTEGER (0..14),
+ ip-Start INTEGER (0..4095),
+ ip-PCCPCG IP-PCCPCH-r4 OPTIONAL,
+ burstModeParameters BurstModeParameters
+}
+
+UE-Positioning-MeasuredResults ::= SEQUENCE {
+ ue-positioning-OTDOA-Measurement UE-Positioning-OTDOA-Measurement OPTIONAL,
+ -- Extended 'ue-positioning-PositionEstimateInfo' information may be provided using IE
+ -- 'UE-Positioning-PositionEstimateInfo-v770ext' in IE 'UE-Positioning-MeasuredResults-v770ext'.
+ ue-positioning-PositionEstimateInfo UE-Positioning-PositionEstimateInfo OPTIONAL,
+ ue-positioning-GPS-Measurement UE-Positioning-GPS-MeasurementResults OPTIONAL,
+ -- The 'ue-positioning-Error' information may be provided using IE 'UE-Positioning-Error-r7' in
+ -- IE 'UE-Positioning-MeasuredResults-v770ext'.
+ -- If IE 'UE-Positioning-Error-r7' is present, the corresponding IE 'UE-Positioning-Error' shall
+ -- be excluded.
+ ue-positioning-Error UE-Positioning-Error OPTIONAL
+}
+
+UE-Positioning-MeasuredResults-v770ext ::= SEQUENCE {
+ ue-positioning-PositionEstimateInfo UE-Positioning-PositionEstimateInfo-v770ext OPTIONAL,
+ ue-positioning-GPS-Measurement UE-Positioning-GPS-MeasurementResults-v770ext
+ OPTIONAL,
+ ue-positioning-Error UE-Positioning-Error-r7 OPTIONAL,
+ ue-positioning-Ganss-MeasuredResults UE-Positioning-GANSS-MeasuredResults OPTIONAL
+}
+
+UE-Positioning-MeasuredResults-v390ext ::= SEQUENCE {
+ ue-Positioning-OTDOA-Measurement-v390ext UE-Positioning-OTDOA-Measurement-v390ext
+}
+
+UE-Positioning-MeasuredResults-v860ext ::= SEQUENCE {
+ ue-positioning-Error UE-Positioning-Error-v860ext OPTIONAL,
+ ue-positioning-Ganss-MeasurementResults UE-Positioning-GANSS-MeasuredResults-v860ext OPTIONAL
+}
+
+UE-Positioning-MeasuredResults-vc50ext ::= SEQUENCE {
+ ue-positioning-Error UE-Positioning-Error-vc50ext OPTIONAL
+}
+
+UE-Positioning-MeasuredResults-vdxyext ::= SEQUENCE {
+ ue-positioning-AddPos-MeasurementResults UE-Positioning-AddPos-MeasuredResults OPTIONAL,
+ ue-positioning-PositionEstimateInfo UE-Positioning-PositionEstimateInfo-vdxyext
+ OPTIONAL
+}
+
+UE-Positioning-Measurement ::= SEQUENCE {
+ ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity,
+ reportCriteria UE-Positioning-ReportCriteria,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData OPTIONAL,
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData OPTIONAL
+}
+
+UE-Positioning-Measurement-v390ext ::= SEQUENCE {
+ ue-positioning-ReportingQuantity-v390ext
+ UE-Positioning-ReportingQuantity-v390ext OPTIONAL,
+ measurementValidity MeasurementValidity OPTIONAL,
+ ue-positioning-OTDOA-AssistanceData-UEB UE-Positioning-OTDOA-AssistanceData-UEB OPTIONAL
+}
+
+UE-Positioning-Measurement-r4 ::= SEQUENCE {
+ ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r4,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria UE-Positioning-ReportCriteria,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r4 OPTIONAL,
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData OPTIONAL
+}
+
+UE-Positioning-Measurement-r7 ::= SEQUENCE {
+ ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r7,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria UE-Positioning-ReportCriteria-r7,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL,
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r7 OPTIONAL,
+ ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData OPTIONAL
+}
+
+UE-Positioning-Measurement-r8 ::= SEQUENCE {
+ ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r8,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria UE-Positioning-ReportCriteria-r7,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL,
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r7 OPTIONAL,
+ ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r8 OPTIONAL
+}
+
+UE-Positioning-Measurement-r9 ::= SEQUENCE {
+ ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r8,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria UE-Positioning-ReportCriteria-r7,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL,
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r9 OPTIONAL,
+ ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r9 OPTIONAL
+}
+
+UE-Positioning-Measurement-r10 ::= SEQUENCE {
+ ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r8,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria UE-Positioning-ReportCriteria-r7,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL,
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r10 OPTIONAL,
+ ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r10 OPTIONAL
+}
+
+UE-Positioning-Measurement-r12 ::= SEQUENCE {
+ ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r8,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria UE-Positioning-ReportCriteria-r7,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL,
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r12 OPTIONAL,
+ ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r12 OPTIONAL
+}
+
+UE-Positioning-Measurement-r13 ::= SEQUENCE {
+ ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r13,
+ measurementValidity MeasurementValidity OPTIONAL,
+ reportCriteria UE-Positioning-ReportCriteria-r7,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL,
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r12 OPTIONAL,
+ ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r12 OPTIONAL
+}
+
+UE-Positioning-MeasurementEventResults ::= CHOICE {
+ -- In case of 'event7a' reporting, if IE 'UE-Positioning-PositionEstimateInfo' is not needed,
+ -- CHOICE shall be set to 'additionalOrReplacedPosMeasEvent'and the 'event7a' shall be included
+ -- in IE 'UE-Positioning-MeasurementEventResults-v770ext'.
+ event7a UE-Positioning-PositionEstimateInfo,
+ event7b UE-Positioning-OTDOA-Measurement,
+ event7c UE-Positioning-GPS-MeasurementResults,
+ -- If CHOICE is set to 'additionalOrReplacedPosMeasEvent',
+ -- IE 'UE-Positioning-MeasurementEventResults-v770ext' shall be present.
+ additionalOrReplacedPosMeasEvent NULL
+}
+
+UE-Positioning-MeasurementEventResults-v770ext ::= CHOICE {
+ event7a UE-Positioning-PositionEstimateInfo-v770ext,
+ event7c UE-Positioning-GPS-MeasurementResults-v770ext,
+ event7d UE-Positioning-GANSS-MeasuredResults,
+ spare NULL
+}
+
+UE-Positioning-MeasurementEventResults-v860ext ::= CHOICE {
+ event7d UE-Positioning-GANSS-MeasuredResults-v860ext
+}
+
+UE-Positioning-MeasurementInterval ::= ENUMERATED {
+ e5, e15, e60, e300,
+ e900, e1800, e3600, e7200 }
+
+UE-Positioning-MethodType ::= ENUMERATED {
+ ue-Assisted,
+ ue-Based,
+ ue-BasedPreferred,
+ ue-AssistedPreferred }
+
+UE-Positioning-OTDOA-AssistanceData ::= SEQUENCE {
+ ue-positioning-OTDOA-ReferenceCellInfo
+ UE-Positioning-OTDOA-ReferenceCellInfo OPTIONAL,
+ ue-positioning-OTDOA-NeighbourCellList
+ UE-Positioning-OTDOA-NeighbourCellList OPTIONAL
+}
+
+UE-Positioning-OTDOA-AssistanceData-r4 ::= SEQUENCE {
+ ue-positioning-OTDOA-ReferenceCellInfo
+ UE-Positioning-OTDOA-ReferenceCellInfo-r4 OPTIONAL,
+ ue-positioning-OTDOA-NeighbourCellList
+ UE-Positioning-OTDOA-NeighbourCellList-r4 OPTIONAL
+}
+
+UE-Positioning-OTDOA-AssistanceData-r4ext ::= SEQUENCE {
+ -- In case of TDD these IPDL parameters shall be used for the reference cell instead of
+ -- IPDL Parameters in IE UE-Positioning-OTDOA-ReferenceCellInfo
+ ue-Positioning-IPDL-Parameters-TDD-r4-ext
+ UE-Positioning-IPDL-Parameters-TDD-r4-ext OPTIONAL,
+ -- These IPDL parameters shall be used for the neighbour cells in case of TDD instead of
+ -- IPDL Parameters in IE UE-Positioning-OTDOA-NeighbourCellInfoList. The cells shall be
+ -- listed in the same order as in IE UE-Positioning-OTDOA-NeighbourCellInfoList
+ ue-Positioning-IPDL-Parameters-TDDList-r4-ext
+ UE-Positioning-IPDL-Parameters-TDDList-r4-ext OPTIONAL
+}
+
+UE-Positioning-OTDOA-AssistanceData-UEB ::= SEQUENCE {
+ ue-positioning-OTDOA-ReferenceCellInfo-UEB
+ UE-Positioning-OTDOA-ReferenceCellInfo-UEB OPTIONAL,
+ ue-positioning-OTDOA-NeighbourCellList-UEB
+ UE-Positioning-OTDOA-NeighbourCellList-UEB OPTIONAL
+}
+
+UE-Positioning-OTDOA-AssistanceData-UEB-ext ::= SEQUENCE {
+ ue-positioning-OTDOA-ReferenceCellInfo-UEB-ext
+ UE-Positioning-OTDOA-ReferenceCellInfo-UEB-ext OPTIONAL,
+ ue-positioning-OTDOA-NeighbourCellList-UEB-ext
+ UE-Positioning-OTDOA-NeighbourCellList-UEB-ext OPTIONAL
+}
+
+UE-Positioning-OTDOA-AssistanceData-r7 ::= SEQUENCE {
+ ue-positioning-OTDOA-ReferenceCellInfo UE-Positioning-OTDOA-ReferenceCellInfo-r7 OPTIONAL,
+ ue-positioning-OTDOA-NeighbourCellList UE-Positioning-OTDOA-NeighbourCellList-r7 OPTIONAL
+}
+
+UE-Positioning-IPDL-Parameters-TDDList-r4-ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ UE-Positioning-IPDL-Parameters-TDD-r4-ext
+
+UE-Positioning-OTDOA-MeasuredResultsTDD-ext ::= SEQUENCE {
+ neighbourList NeighbourList-TDD-r7 OPTIONAL
+}
+
+UE-Positioning-OTDOA-Measurement ::= SEQUENCE {
+ sfn INTEGER (0..4095),
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceCellIDentity PrimaryCPICH-Info,
+ ue-RX-TX-TimeDifferenceType2Info UE-RX-TX-TimeDifferenceType2Info
+ },
+ tdd SEQUENCE {
+ referenceCellIdentity CellParametersID
+ }
+ },
+ neighbourList NeighbourList OPTIONAL
+}
+
+UE-Positioning-OTDOA-Measurement-v390ext ::= SEQUENCE {
+ neighbourList-v390ext NeighbourList-v390ext
+}
+
+UE-Positioning-OTDOA-NeighbourCellInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL,
+ sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1,
+ sfn-SFN-Drift SFN-SFN-Drift OPTIONAL,
+ searchWindowSize OTDOA-SearchWindowSize,
+ positioningMode CHOICE{
+ ueBased SEQUENCE {},
+ ueAssisted SEQUENCE {}
+ }
+}
+
+UE-Positioning-OTDOA-NeighbourCellInfo-r4 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters-r4 OPTIONAL,
+ sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1,
+ sfn-Offset-Validity SFN-Offset-Validity OPTIONAL,
+ sfn-SFN-Drift SFN-SFN-Drift OPTIONAL,
+ searchWindowSize OTDOA-SearchWindowSize,
+ positioningMode CHOICE {
+ ueBased SEQUENCE {
+ relativeNorth INTEGER (-20000..20000) OPTIONAL,
+ relativeEast INTEGER (-20000..20000) OPTIONAL,
+ relativeAltitude INTEGER (-4000..4000) OPTIONAL,
+ fineSFN-SFN FineSFN-SFN OPTIONAL,
+ -- actual value roundTripTime = (IE value * 0.0625) + 876
+ roundTripTime INTEGER (0.. 32766) OPTIONAL
+ },
+ ueAssisted SEQUENCE {}
+ }
+}
+
+UE-Positioning-OTDOA-NeighbourCellInfo-UEB ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL,
+ sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1,
+ sfn-SFN-Drift SFN-SFN-Drift OPTIONAL,
+ searchWindowSize OTDOA-SearchWindowSize,
+ relativeNorth INTEGER (-20000..20000) OPTIONAL,
+ relativeEast INTEGER (-20000..20000) OPTIONAL,
+ relativeAltitude INTEGER (-4000..4000) OPTIONAL,
+ fineSFN-SFN FineSFN-SFN,
+ -- actual value roundTripTime = (IE value * 0.0625) + 876
+ roundTripTime INTEGER (0..32766) OPTIONAL
+}
+
+UE-Positioning-OTDOA-NeighbourCellInfo-UEB-ext ::= SEQUENCE {
+ -- actual value roundTripTimeExtension = (IE value * 0.0625)
+ roundTripTimeExtension INTEGER (0..70274) OPTIONAL
+}
+
+UE-Positioning-OTDOA-NeighbourCellInfo-r7 ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters-r4 OPTIONAL,
+ sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1,
+ sfn-Offset-Validity SFN-Offset-Validity OPTIONAL,
+ sfn-SFN-Drift SFN-SFN-Drift OPTIONAL,
+ searchWindowSize OTDOA-SearchWindowSize,
+ positioningMode CHOICE {
+ ueBased SEQUENCE {
+ relativeNorth INTEGER (-20000..20000) OPTIONAL,
+ relativeEast INTEGER (-20000..20000) OPTIONAL,
+ relativeAltitude INTEGER (-4000..4000) OPTIONAL,
+ fineSFN-SFN FineSFN-SFN OPTIONAL,
+ -- actual value roundTripTime = (IE value * 0.0625) + 876
+ roundTripTime INTEGER (0.. 32766) OPTIONAL,
+ -- actual value roundTripTimeExtension = (IE value * 0.0625)
+ roundTripTimeExtension INTEGER (0..70274) OPTIONAL
+ },
+ ueAssisted SEQUENCE {}
+ }
+}
+
+UE-Positioning-OTDOA-NeighbourCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ UE-Positioning-OTDOA-NeighbourCellInfo
+
+UE-Positioning-OTDOA-NeighbourCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ UE-Positioning-OTDOA-NeighbourCellInfo-r4
+
+UE-Positioning-OTDOA-NeighbourCellList-UEB ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ UE-Positioning-OTDOA-NeighbourCellInfo-UEB
+
+-- The order of the list corresponds to the order of UE-Positioning-OTDOA-NeighbourCellInfo-UEB
+-- in UE-Positioning-OTDOA-NeighbourCellList-UEB
+UE-Positioning-OTDOA-NeighbourCellList-UEB-ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ UE-Positioning-OTDOA-NeighbourCellInfo-UEB-ext
+
+UE-Positioning-OTDOA-NeighbourCellList-r7 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF
+ UE-Positioning-OTDOA-NeighbourCellInfo-r7
+
+UE-Positioning-OTDOA-Quality ::= SEQUENCE {
+ stdResolution BIT STRING (SIZE (2)),
+ numberOfOTDOA-Measurements BIT STRING (SIZE (3)),
+ stdOfOTDOA-Measurements BIT STRING (SIZE (5))
+}
+
+UE-Positioning-OTDOA-ReferenceCellInfo ::= SEQUENCE {
+ sfn INTEGER (0..4095) OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ positioningMode CHOICE {
+ ueBased SEQUENCE {},
+ ueAssisted SEQUENCE {}
+ },
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL
+}
+
+UE-Positioning-OTDOA-ReferenceCellInfo-r4 ::= SEQUENCE {
+ sfn INTEGER (0..4095) OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ positioningMode CHOICE {
+ ueBased SEQUENCE {
+ cellPosition ReferenceCellPosition OPTIONAL,
+ -- actual value roundTripTime = (IE value * 0.0625) + 876
+ roundTripTime INTEGER (0..32766) OPTIONAL
+ },
+ ueAssisted SEQUENCE {}
+ },
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters-r4 OPTIONAL
+}
+
+UE-Positioning-OTDOA-ReferenceCellInfo-UEB ::= SEQUENCE {
+ sfn INTEGER (0..4095) OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ cellPosition ReferenceCellPosition OPTIONAL,
+ -- actual value roundTripTime = (IE value * 0.0625) + 876
+ roundTripTime INTEGER (0..32766) OPTIONAL,
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL
+}
+
+UE-Positioning-OTDOA-ReferenceCellInfo-UEB-ext ::= SEQUENCE {
+ -- actual value roundTripTimeExtension = (IE value * 0.0625)
+ roundTripTimeExtension INTEGER (0..70274) OPTIONAL
+}
+
+UE-Positioning-OTDOA-ReferenceCellInfo-r7 ::= SEQUENCE {
+ sfn INTEGER (0..4095) OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ },
+ frequencyInfo FrequencyInfo OPTIONAL,
+ positioningMode CHOICE {
+ ueBased SEQUENCE {
+ cellPosition ReferenceCellPosition OPTIONAL,
+ -- actual value roundTripTime = (IE value * 0.0625) + 876
+ roundTripTime INTEGER (0..32766) OPTIONAL,
+ -- actual value roundTripTimeExtension = (IE value * 0.0625)
+ roundTripTimeExtension INTEGER (0..70274) OPTIONAL
+ },
+ ueAssisted SEQUENCE {}
+ },
+ ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters-r4 OPTIONAL
+}
+
+UE-Positioning-PositionEstimateInfo ::= SEQUENCE {
+ referenceTime CHOICE {
+ utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult,
+ gps-ReferenceTimeOnly GPS-TOW-1msec,
+ cell-Timing SEQUENCE {
+ sfn INTEGER (0..4095),
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE{
+ cellAndChannelIdentity CellAndChannelIdentity
+ }
+ }
+ }
+ },
+ positionEstimate PositionEstimate
+}
+
+UE-Positioning-PositionEstimateInfo-v770ext ::= SEQUENCE {
+ referenceTimeOptions CHOICE {
+ -- If 'earlier-than-r7', IE 'UE-Positioning-PositionEstimateInfo' shall be included.
+ earlier-than-r7 NULL,
+ -- If 'r7', the corresponding IE 'UE-Positioning-PositionEstimateInfo' shall be excluded.
+ r7 SEQUENCE {
+ referenceTime CHOICE {
+ utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTime,
+ ganssReferenceTimeOnly GANSSReferenceTimeOnly
+ },
+ positionEstimate PositionEstimate
+ }
+ },
+ positionData BIT STRING (SIZE (16)),
+ velocityEstimate VelocityEstimate OPTIONAL,
+ ue-Positioning-GPS-ReferenceTimeUncertainty
+ UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL
+}
+
+UE-Positioning-PositionEstimateInfo-vdxyext ::= SEQUENCE {
+ locationTimeStamp UTCTime OPTIONAL
+}
+
+UE-Positioning-ReportCriteria ::= CHOICE {
+ ue-positioning-ReportingCriteria UE-Positioning-EventParamList,
+ periodicalReportingCriteria PeriodicalReportingCriteria,
+ noReporting NULL
+}
+
+UE-Positioning-ReportCriteria-r7 ::= CHOICE {
+ ue-positioning-ReportingCriteria UE-Positioning-EventParamList-r7,
+ periodicalReportingCriteria PeriodicalReportingCriteria,
+ noReporting NULL
+}
+
+UE-Positioning-ReportingQuantity ::= SEQUENCE {
+ methodType UE-Positioning-MethodType,
+ positioningMethod PositioningMethod,
+ -- dummy1 is not used in this version of specification and it should
+ -- be ignored.
+ dummy1 UE-Positioning-ResponseTime,
+ horizontal-Accuracy UE-Positioning-Accuracy OPTIONAL,
+ gps-TimingOfCellWanted BOOLEAN,
+ -- dummy2 is not used in this version of specification and it should
+ -- be ignored.
+ dummy2 BOOLEAN,
+ additionalAssistanceDataRequest BOOLEAN,
+ environmentCharacterisation EnvironmentCharacterisation OPTIONAL
+}
+
+UE-Positioning-ReportingQuantity-v390ext ::= SEQUENCE {
+ vertical-Accuracy UE-Positioning-Accuracy
+}
+
+UE-Positioning-ReportingQuantity-r4 ::= SEQUENCE {
+ methodType UE-Positioning-MethodType,
+ positioningMethod PositioningMethod,
+ horizontalAccuracy UE-Positioning-Accuracy OPTIONAL,
+ verticalAccuracy UE-Positioning-Accuracy OPTIONAL,
+ gps-TimingOfCellWanted BOOLEAN,
+ additionalAssistanceDataReq BOOLEAN,
+ environmentCharacterisation EnvironmentCharacterisation OPTIONAL
+}
+
+UE-Positioning-ReportingQuantity-r7 ::= SEQUENCE {
+ methodType UE-Positioning-MethodType,
+ positioningMethod PositioningMethod,
+ horizontalAccuracy UE-Positioning-Accuracy OPTIONAL,
+ verticalAccuracy UE-Positioning-Accuracy OPTIONAL,
+ gps-TimingOfCellWanted BOOLEAN,
+ additionalAssistanceDataReq BOOLEAN,
+ environmentCharacterisation EnvironmentCharacterisation OPTIONAL,
+ velocityRequested ENUMERATED { true } OPTIONAL,
+ gANSSPositioningMethods BIT STRING (SIZE (16)) OPTIONAL,
+ gANSSTimingOfCellWanted BIT STRING (SIZE (8)) OPTIONAL,
+ gANSSCarrierPhaseMeasurementRequested
+ BIT STRING (SIZE (8)) OPTIONAL
+}
+
+UE-Positioning-ReportingQuantity-r8 ::= SEQUENCE {
+ methodType UE-Positioning-MethodType,
+ positioningMethod PositioningMethod,
+ horizontalAccuracy UE-Positioning-Accuracy OPTIONAL,
+ verticalAccuracy UE-Positioning-Accuracy OPTIONAL,
+ gps-TimingOfCellWanted BOOLEAN,
+ additionalAssistanceDataReq BOOLEAN,
+ environmentCharacterisation EnvironmentCharacterisation OPTIONAL,
+ velocityRequested ENUMERATED { true } OPTIONAL,
+ gANSSPositioningMethods BIT STRING (SIZE (16)) OPTIONAL,
+ gANSSTimingOfCellWanted BIT STRING (SIZE (8)) OPTIONAL,
+ gANSSCarrierPhaseMeasurementRequested
+ BIT STRING (SIZE (8)) OPTIONAL,
+ gANSSMultiFreqMeasurementRequested BIT STRING (SIZE (8)) OPTIONAL
+}
+
+UE-Positioning-ReportingQuantity-r13 ::= SEQUENCE {
+ methodType UE-Positioning-MethodType,
+ positioningMethod PositioningMethod,
+ horizontalAccuracy UE-Positioning-Accuracy OPTIONAL,
+ verticalAccuracy UE-Positioning-Accuracy OPTIONAL,
+ gps-TimingOfCellWanted BOOLEAN,
+ additionalAssistanceDataReq BOOLEAN,
+ environmentCharacterisation EnvironmentCharacterisation OPTIONAL,
+ velocityRequested ENUMERATED { true } OPTIONAL,
+ gANSSPositioningMethods BIT STRING (SIZE (16)) OPTIONAL,
+ gANSSTimingOfCellWanted BIT STRING (SIZE (8)) OPTIONAL,
+ gANSSCarrierPhaseMeasurementRequested
+ BIT STRING (SIZE (8)) OPTIONAL,
+ gANSSMultiFreqMeasurementRequested BIT STRING (SIZE (8)) OPTIONAL,
+ additionalPositioningMethods BIT STRING (SIZE (8)) OPTIONAL
+}
+
+UE-Positioning-ResponseTime ::= ENUMERATED {
+ s1, s2, s4, s8, s16,
+ s32, s64, s128 }
+
+UE-Positioning-AddPos-MeasuredResults ::= SEQUENCE (SIZE (1..maxAddPos)) OF
+ UE-Positioning-AddPos-MeasuredResults-element
+
+UE-Positioning-AddPos-MeasuredResults-element ::=SEQUENCE {
+ timestamp UTCTime OPTIONAL,
+ addPos-ID CHOICE {
+ barometricPressure UE-Positioning-BarometricPressureMeasurement,
+ wlan UE-Positioning-WLANMeasurementList,
+ bt UE-Positioning-BTMeasurementList,
+ mbs UE-Positioning-MBSMeasurementList,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+ }
+}
+
+UE-Positioning-BarometricPressureMeasurement ::= SEQUENCE {
+ ubpMeasurement INTEGER (30000..115000)
+}
+
+UE-Positioning-WLANMeasurementList ::= SEQUENCE (SIZE (1..maxWLANs))OF
+ UE-Positioning-WLANMeasurementList-element
+
+UE-Positioning-WLANMeasurementList-element ::= SEQUENCE {
+ wlanBSSID OCTET STRING (SIZE (6)),
+ wlanSSID OCTET STRING (SIZE(1..32)) OPTIONAL,
+ wlanRSSI INTEGER(-127..128) OPTIONAL,
+ wlanRTTvalue INTEGER(0..16777215) OPTIONAL,
+ wlanRTTunits ENUMERATED { microseconds,hundredsofnanoseconds,
+ tensofnanoseconds,nanoseconds,
+ tenthsofnanosecond,
+ spare3, spare2, spare1} OPTIONAL,
+ wlanRTTaccuracy INTEGER(0..255) OPTIONAL,
+ wlanAPChannelFrequency INTEGER(0..256) OPTIONAL,
+ wlanServingFlag BOOLEAN OPTIONAL
+}
+
+UE-Positioning-BTMeasurementList ::= SEQUENCE (SIZE (1..maxBTs)) OF
+ UE-Positioning-BTMeasurementList-element
+
+UE-Positioning-BTMeasurementList-element ::= SEQUENCE {
+ btAddr OCTET STRING (SIZE(6)),
+ btRSSI INTEGER(-127..128) OPTIONAL
+}
+
+UE-Positioning-MBSMeasurementList ::= SEQUENCE (SIZE (1..maxBeacons)) OF
+ UE-Positioning-MBSMeasurementList-element
+
+UE-Positioning-MBSMeasurementList-element ::= SEQUENCE {
+ transmitterId INTEGER (0..32767),
+ codePhase INTEGER (0..2097151),
+ codePhaseRmsError INTEGER (0..63)
+}
+
+UTCmodelSet1 ::= SEQUENCE {
+ utcA0 BIT STRING (SIZE (16)),
+ utcA1 BIT STRING (SIZE (13)),
+ utcA2 BIT STRING (SIZE (7)),
+ utcDeltaTls BIT STRING (SIZE (8)),
+ utcTot BIT STRING (SIZE (16)),
+ utcWNot BIT STRING (SIZE (13)),
+ utcWNlsf BIT STRING (SIZE (8)),
+ utcDN BIT STRING (SIZE (4)),
+ utcDeltaTlsf BIT STRING (SIZE (8))
+}
+
+UTCmodelSet2 ::= SEQUENCE {
+ nA BIT STRING (SIZE (11)),
+ tauC BIT STRING (SIZE (32)),
+ deltaUT1 DeltaUT1 OPTIONAL,
+ kp BIT STRING (SIZE (2)) OPTIONAL
+}
+
+UTCmodelSet3 ::= SEQUENCE {
+ utcA1wnt BIT STRING (SIZE (24)),
+ utcA0wnt BIT STRING (SIZE (32)),
+ utcTot BIT STRING (SIZE (8)),
+ utcWNt BIT STRING (SIZE (8)),
+ utcDeltaTls BIT STRING (SIZE (8)),
+ utcWNlsf BIT STRING (SIZE (8)),
+ utcDN BIT STRING (SIZE (8)),
+ utcDeltaTlsf BIT STRING (SIZE (8)),
+ utcStandardID BIT STRING (SIZE (3))
+}
+
+UTCmodelSet4 ::= SEQUENCE {
+ utcA0 BIT STRING (SIZE (32)),
+ utcA1 BIT STRING (SIZE (24)),
+ utcDeltaTls BIT STRING (SIZE (8)),
+ utcWNlsf BIT STRING (SIZE (8)),
+ utcDN BIT STRING (SIZE (8)),
+ utcDeltaTlsf BIT STRING (SIZE (8))
+}
+
+-- SPARE: UTRA-CarrierRSSI, Max = 76
+-- Values above Max are spare
+UTRA-CarrierRSSI ::= INTEGER (0..127)
+
+UTRAN-GANSSReferenceTime ::= SEQUENCE {
+ ue-GANSSTimingOfCellFrames SEQUENCE {
+ -- Actual value [ns] = (ms-Part * 4294967296 + ls-Part) * 250
+ -- Actual values [ns] > 86399999999750 are reserved and are considered a protocol error
+ ms-Part INTEGER (0..80),
+ ls-Part INTEGER (0..4294967295)
+ },
+ gANSS-TimeId INTEGER (0..7) OPTIONAL,
+ gANSS-TimeUncertainty INTEGER (0..127) OPTIONAL,
+ mode CHOICE {
+ fdd SEQUENCE {
+ primary-CPICH-Info PrimaryCPICH-Info
+ },
+ tdd SEQUENCE {
+ cellParameters CellParametersID
+ }
+ },
+ referenceSfn INTEGER (0..4095)
+}
+
+UTRAN-FDD-FrequencyList ::= SEQUENCE (SIZE(1..maxNumFDDFreqs)) OF
+ UTRAN-FDD-Frequency
+
+UTRAN-FDD-Frequency ::= SEQUENCE {
+ uarfcn UARFCN,
+ priority INTEGER (0..maxPrio-1),
+ -- Actual value = IE value * 2
+ threshXhigh INTEGER (0..31),
+ -- Actual value = IE value * 2
+ threshXlow INTEGER (0..31),
+ qQualMinFDD INTEGER (-24..0) OPTIONAL,
+ -- Actual value = IE value * 2 + 1
+ qRxLevMinFDD INTEGER (-60..-13) OPTIONAL
+}
+
+UTRAN-TDD-FrequencyList ::= SEQUENCE (SIZE(1..maxNumTDDFreqs)) OF
+ UTRAN-TDD-Frequency
+
+UTRAN-TDD-Frequency ::= SEQUENCE {
+ uarfcn UARFCN,
+ priority INTEGER (0..maxPrio-1),
+ -- Actual value = IE value * 2
+ threshXhigh INTEGER (0..31),
+ -- Actual value = IE value * 2
+ threshXlow INTEGER (0..31),
+ -- Actual value = IE value * 2 + 1
+ qRxLevMinTDD INTEGER (-60..-13) OPTIONAL
+}
+
+UTRAN-GPS-DriftRate ::= ENUMERATED {
+ utran-GPSDrift0, utran-GPSDrift1, utran-GPSDrift2,
+ utran-GPSDrift5, utran-GPSDrift10, utran-GPSDrift15,
+ utran-GPSDrift25, utran-GPSDrift50, utran-GPSDrift-1,
+ utran-GPSDrift-2, utran-GPSDrift-5, utran-GPSDrift-10,
+ utran-GPSDrift-15, utran-GPSDrift-25, utran-GPSDrift-50}
+
+UTRAN-GPSReferenceTime ::= SEQUENCE {
+ -- For utran-GPSTimingOfCell values above 2322431999999 are not
+ -- used in this version of the specification
+ -- Actual value utran-GPSTimingOfCell = (ms-part * 4294967296) + ls-part
+ utran-GPSTimingOfCell SEQUENCE {
+ ms-part INTEGER (0..1023),
+ ls-part INTEGER (0..4294967295)
+ },
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info
+ },
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID
+ }
+ } OPTIONAL,
+ sfn INTEGER (0..4095)
+}
+
+UTRAN-GPSReferenceTimeResult ::= SEQUENCE {
+ -- For ue-GPSTimingOfCell values above 37158911999999 are not
+ -- used in this version of the specification
+ -- Actual value ue-GPSTimingOfCell = (ms-part * 4294967296) + ls-part
+ ue-GPSTimingOfCell SEQUENCE {
+ ms-part INTEGER (0.. 16383),
+ ls-part INTEGER (0..4294967295)
+ },
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info
+ },
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID
+ }
+ },
+ sfn INTEGER (0..4095)
+}
+
+UTRA-PriorityInfoList ::= SEQUENCE {
+ utra-ServingCell SEQUENCE {
+ priority INTEGER (0..maxPrio-1),
+ -- Actual value = IE value * 2
+ s-PrioritySearch1 INTEGER (0..31),
+ -- Actual value = IE value, default value is 0
+ s-PrioritySearch2 INTEGER (0..7) OPTIONAL,
+ -- Actual value = IE value * 2
+ threshServingLow INTEGER (0..31)
+ },
+ utran-FDD-FrequencyList UTRAN-FDD-FrequencyList OPTIONAL,
+ utran-TDD-FrequencyList UTRAN-TDD-FrequencyList OPTIONAL
+}
+
+UTRA-PriorityInfoList-v920ext ::= SEQUENCE {
+ threshServingLow2 INTEGER (0..31) OPTIONAL
+}
+
+VarianceOfRLC-BufferPayload ::= ENUMERATED {
+ plv0, plv4, plv8, plv16, plv32, plv64,
+ plv128, plv256, plv512, plv1024,
+ plv2k, plv4k, plv8k, plv16k, spare2, spare1 }
+
+VelocityEstimate ::= CHOICE {
+ horizontalVelocity HorizontalVelocity,
+ horizontalWithVerticalVelocity HorizontalWithVerticalVelocity,
+ horizontalVelocityWithUncertainty HorizontalVelocityWithUncertainty,
+ horizontalWithVerticalVelocityAndUncertainty HorizontalWithVerticalVelocityAndUncertainty
+}
+
+-- Actual value W = IE value * 0.1
+W ::= INTEGER (0..20)
+
+-- ***************************************************
+--
+-- OTHER INFORMATION ELEMENTS (10.3.8)
+--
+-- ***************************************************
+
+ACDC-Barring ::= CHOICE {
+ acdc-Barred ENUMERATED {true, false},
+ acdc-acb-barringBitmap BIT STRING (SIZE (10))
+}
+
+ACDC-Parameters ::= CHOICE {
+ acdc-ParametersPerPLMN-List ACDC-ParametersPerPLMN-List,
+ acdc-ParametersForAll ACDC-ParametersForAll
+}
+
+ACDC-ParametersForAll ::= SEQUENCE {
+ acdc-Information SpecificACDC-BarringInformation OPTIONAL,
+ acdcApplicableForRoamer ENUMERATED { true } OPTIONAL
+}
+
+ACDC-ParametersPerPLMN-List ::= SEQUENCE (SIZE (1..6)) OF
+ SEQUENCE {
+ plmnSpecificACDC-Parameters SpecificACDC-BarringInformation OPTIONAL,
+ acdcApplicableForRoamer ENUMERATED { true } OPTIONAL
+}
+
+BCC ::= INTEGER (0..7)
+
+BCCH-ModificationInfo ::= SEQUENCE {
+ mib-ValueTag MIB-ValueTag,
+ bcch-ModificationTime BCCH-ModificationTime OPTIONAL
+}
+
+BCCH-ModificationInfo-vc50ext ::= SEQUENCE {
+ mib-ValueTagExt MIB-ValueTagExt OPTIONAL,
+ sb3-ValueTag CellValueTag2 OPTIONAL
+}
+
+-- Actual value BCCH-ModificationTime = IE value * 8
+BCCH-ModificationTime ::= INTEGER (0..511)
+
+BSIC ::= SEQUENCE {
+ ncc NCC,
+ bcc BCC
+}
+
+CBS-DRX-Level1Information ::= SEQUENCE {
+ ctch-AllocationPeriod INTEGER (1..256),
+ cbs-FrameOffset INTEGER (0..255)
+}
+
+CBS-DRX-Level1Information-extension-r6 ::= ENUMERATED {p8, p16, p32, p64, p128, p256}
+
+CDMA2000-Message ::= SEQUENCE {
+ msg-Type BIT STRING (SIZE (8)),
+ payload BIT STRING (SIZE (1..512))
+}
+
+CDMA2000-MessageList ::= SEQUENCE (SIZE (1..maxInterSysMessages)) OF
+ CDMA2000-Message
+
+CDMA2000-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumCDMA2000Freqs)) OF
+ FrequencyInfoCDMA2000
+
+CellValueTag ::= INTEGER (1..4)
+
+CellValueTag2 ::= INTEGER (1..16)
+
+CellValueTagExt ::= INTEGER (0..3)
+
+CellValueTag3 ::= SEQUENCE {
+ cellValueTag CellValueTag,
+ cellValueTagExt CellValueTagExt OPTIONAL
+}
+
+DataTransmFrequency ::= SEQUENCE {
+ dataTransmFreqGranularity ENUMERATED { ms100, ms250, ms500, ms1000,
+ ms2000, ms5000, ms10000, ms60000 },
+ numberOfDataTransmOcc INTEGER (1..610)
+}
+
+DataVolumeHistory ::= SEQUENCE {
+ dataVolumeMontoringWindow INTEGER (1..120),
+ dataTransmFrequency DataTransmFrequency OPTIONAL,
+ dataVolumePerRB DataVolumePerRB-List OPTIONAL
+}
+
+DataVolumePerRB ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ dataVolume INTEGER (0..4294967295)
+}
+
+DataVolumePerRB-List ::= SEQUENCE (SIZE (1..maxRB)) OF DataVolumePerRB
+
+DeferredMeasurementControlReadingSupport ::= SEQUENCE {
+ -- If modeSpecificInfo is not present, deferred SIB11, SIB11bis and SIB12 reading
+ -- with default measurement quantities applies
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ intraFreqMeasQuantity-FDD IntraFreqMeasQuantity-FDD-sib3
+ },
+ tdd SEQUENCE {
+ intraFreqMeasQuantity-TDDList IntraFreqMeasQuantity-TDD-sib3List
+ }
+ } OPTIONAL
+}
+
+ETWS-Information ::= SEQUENCE {
+ warningType OCTET STRING (SIZE (1..2)),
+ messageIdentifier OCTET STRING (SIZE (2)),
+ serialNumber OCTET STRING (SIZE (2))
+}
+
+-- This IE is not used in the specification.
+ETWS-WarningSecurityInfo ::= OCTET STRING
+
+EUTRA-BlacklistedCell ::= SEQUENCE {
+ physicalCellIdentity EUTRA-PhysicalCellIdentity
+}
+
+EUTRA-BlacklistedCellPerFreqList ::= SEQUENCE (SIZE (1..maxEUTRACellPerFreq)) OF
+ EUTRA-BlacklistedCell
+
+EUTRA-PhysicalCellIdentity ::= INTEGER (0..503)
+
+EUTRA-RadioAccessCapability ::= SEQUENCE {
+ ue-EUTRA-Capability OCTET STRING
+}
+
+EUTRA-TargetFreqInfoList ::= SEQUENCE (SIZE (1..maxEUTRATargetFreqs)) OF
+ EUTRA-TargetFreqInfo
+
+EUTRA-TargetFreqInfoList-vb50ext ::= SEQUENCE (SIZE (1..maxEUTRATargetFreqs)) OF
+ EUTRA-TargetFreqInfo-vb50ext
+
+EUTRA-TargetFreqInfo ::= SEQUENCE {
+ dlEUTRACarrierFreq EARFCN,
+ eutraBlacklistedCellPerFreqList EUTRA-BlacklistedCellPerFreqList OPTIONAL
+}
+
+EUTRA-TargetFreqInfo-vb50ext ::= SEQUENCE {
+ earfcn EARFCNExtension OPTIONAL
+}
+
+--Actual value = 2^(IE value)
+ExpirationTimeFactor ::= INTEGER (1..8)
+
+ExpirationTimeFactor2 ::= INTEGER (0..15)
+
+
+ExtGANSS-SchedulingInfo ::= SEQUENCE {
+ extensionGANSS-SIBType SIB-TypeExtGANSS,
+ schedulingInfo SchedulingInformation,
+ valueTagInfo ValueTagInfo
+}
+
+-- For each extended GANSS SIB type the value tag information is added at the end
+ExtGANSS-SIBTypeInfoSchedulingInfoList ::= SEQUENCE (SIZE (1..maxGANSS)) OF
+ ExtGANSS-SIBTypeInfoSchedulingInfo
+
+ExtGANSS-SIBTypeInfoSchedulingInfo ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL,
+ sbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL,
+ ganssScheduling SEQUENCE (SIZE (1..maxSIB)) OF
+ ExtGANSS-SchedulingInfo
+}
+
+-- For each extended SIB type the value tag information is added at the end
+ExtSIBTypeInfoSchedulingInfo-List ::= SEQUENCE (SIZE (1..maxSIB)) OF
+ ExtSIBTypeInfoSchedulingInfo
+
+ExtSIBTypeInfoSchedulingInfo ::= SEQUENCE {
+ extensionSIB-Type SIB-TypeExt,
+ schedulingInfo SchedulingInformation,
+ valueTagInfo ValueTagInfo
+}
+
+-- For each extended SIB type the value tag information is added at the end
+ExtSIBTypeInfoSchedulingInfo-List2 ::= SEQUENCE (SIZE (1..maxSIB)) OF
+ ExtSIBTypeInfoSchedulingInfo2
+
+ExtSIBTypeInfoSchedulingInfo-List3 ::= SEQUENCE (SIZE (1..maxSIB)) OF
+ ExtSIBTypeInfoSchedulingInfo3
+
+ExtSIBTypeInfoSchedulingInfo2 ::= SEQUENCE {
+ extensionSIB-Type2 SIB-TypeExt2,
+ schedulingInfo SchedulingInformation,
+ valueTagInfo ValueTagInfo
+}
+
+ExtSIBTypeInfoSchedulingInfo3 ::= SEQUENCE {
+ extensionSIB-Type3 SIB-TypeExt3,
+ schedulingInfo SchedulingInformation2,
+ valueTagInfo ValueTagInfoExtValueTag
+}
+
+FDD-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF
+ -- NOTE1: The IE "UARFCN (Nlow)" corresponds to
+ -- "uarfcn-DL" in FrequencyInfoFDD.
+ -- NOTE2: The IE "UARFCN (Nupper)" corresponds to
+ -- "uarfcn-UL" in FrequencyInfoFDD.
+ FrequencyInfoFDD
+
+FrequencyInfoCDMA2000 ::= SEQUENCE {
+ band-Class BIT STRING (SIZE (5)),
+ cdma-Freq BIT STRING (SIZE(11))
+}
+
+GERAN-SystemInfoBlock ::= OCTET STRING (SIZE (1..23))
+
+GERAN-SystemInformation ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF GERAN-SystemInfoBlock
+
+GSM-BA-Range ::= SEQUENCE {
+ gsmLowRangeUARFCN UARFCN,
+ gsmUpRangeUARFCN UARFCN
+}
+
+GSM-BA-Range-List ::= SEQUENCE (SIZE (1..maxNumGSMFreqRanges)) OF
+ GSM-BA-Range
+
+
+-- This IE is formatted as 'TLV' and is coded in the same way as the Mobile Station Classmark 2
+-- information element in [5]. The first octet is the Mobile station classmark 2 IEI and its value
+-- shall be set to 33H. The second octet is the Length of mobile station classmark 2 and its value
+-- shall be set to 3. The octet 3 contains the first octet of the value part of the Mobile Station
+-- Classmark 2 information element, the octet 4 contains the second octet of the value part of the
+-- Mobile Station Classmark 2 information element and so on. For each of these octets, the first/
+-- leftmost/ most significant bit of the octet contains b8 of the corresponding octet of the Mobile
+-- Station Classmark 2.
+GSM-Classmark2 ::= OCTET STRING (SIZE (5))
+
+-- This IE is formatted as 'V' and is coded in the same way as the value part in the Mobile station
+-- classmark 3 information element in [5]
+-- The value part is specified by means of CSN.1, which encoding results in a bit string, to which
+-- final padding may be appended upto the next octet boundary [5]. The first/ leftmost bit of the
+-- CSN.1 bit string is placed in the first/ leftmost/ most significant bit of the first
+-- octet. This continues until the last bit of the CSN.1 bit string, which is placed in the last/
+-- rightmost/ least significant bit of the last octet.
+GSM-Classmark3 ::= OCTET STRING (SIZE (1..32))
+
+GSM-MessageList ::= SEQUENCE (SIZE (1..maxInterSysMessages)) OF
+ BIT STRING (SIZE (1..512))
+
+GSM-MS-RadioAccessCapability ::= OCTET STRING (SIZE (1..64))
+
+GsmSecurityCapability ::= BIT STRING {
+ -- For each bit value "0" means false/ not supported
+ a5-7(0),
+ a5-6(1),
+ a5-5(2),
+ a5-4(3),
+ a5-3(4),
+ a5-2(5),
+ a5-1(6)
+ } (SIZE (7))
+
+GSM-TargetCellInfoList ::= SEQUENCE (SIZE (1..maxGSMTargetCells)) OF
+ GSM-TargetCellInfo
+
+
+GSM-TargetCellInfo ::= SEQUENCE {
+ bcch-ARFCN BCCH-ARFCN,
+ frequency-band Frequency-Band,
+ bsic BSIC OPTIONAL
+}
+
+HNBName ::= OCTET STRING (SIZE(1..maxHNBNameSize))
+
+IdentificationOfReceivedMessage ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ receivedMessageType ReceivedMessageType
+}
+
+InterRAT-ChangeFailureCause ::= CHOICE {
+ configurationUnacceptable NULL,
+ physicalChannelFailure NULL,
+ protocolError ProtocolErrorInformation,
+ unspecified NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+GERANIu-MessageList ::= SEQUENCE (SIZE (1..maxInterSysMessages)) OF
+ BIT STRING (SIZE (1..32768))
+
+GERANIu-RadioAccessCapability ::= BIT STRING (SIZE (1..170))
+
+InterRAT-UE-RadioAccessCapability ::= CHOICE {
+ gsm SEQUENCE {
+ gsm-Classmark2 GSM-Classmark2,
+ gsm-Classmark3 GSM-Classmark3
+ },
+ cdma2000 SEQUENCE {
+ cdma2000-MessageList CDMA2000-MessageList
+ }
+}
+
+InterRAT-UE-RadioAccessCapabilityList ::= SEQUENCE (SIZE(1..maxInterSysMessages)) OF
+ InterRAT-UE-RadioAccessCapability
+
+InterRAT-UE-RadioAccessCapability-v590ext ::= SEQUENCE {
+ geranIu-RadioAccessCapability GERANIu-RadioAccessCapability
+}
+
+InterRAT-UE-RadioAccessCapability-v690ext ::= SEQUENCE {
+ supportOfInter-RAT-PS-Handover ENUMERATED { doesSupporInter-RAT-PS-Handover } OPTIONAL,
+ gsm-MS-RadioAccessCapability GSM-MS-RadioAccessCapability
+}
+
+InterRAT-UE-RadioAccessCapability-v860ext ::= SEQUENCE {
+ eutra-RadioAccessCapability EUTRA-RadioAccessCapability OPTIONAL
+}
+
+InterRAT-UE-SecurityCapability ::= CHOICE {
+ gsm SEQUENCE {
+ gsmSecurityCapability GsmSecurityCapability
+ }
+}
+
+InterRAT-UE-SecurityCapList ::= SEQUENCE (SIZE(1..maxInterSysMessages)) OF
+ InterRAT-UE-SecurityCapability
+
+InterRAT-HO-FailureCause ::= CHOICE {
+ configurationUnacceptable NULL,
+ physicalChannelFailure NULL,
+ protocolError ProtocolErrorInformation,
+ interRAT-ProtocolError NULL,
+ unspecified NULL,
+ spare11 NULL,
+ spare10 NULL,
+ spare9 NULL,
+ spare8 NULL,
+ spare7 NULL,
+ spare6 NULL,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+MasterInformationBlock ::= SEQUENCE {
+ mib-ValueTag MIB-ValueTag,
+ -- TABULAR: The PLMN identity and ANSI-41 core network information
+ -- are included in PLMN-Type.
+ plmn-Type PLMN-Type,
+ sibSb-ReferenceList SIBSb-ReferenceList,
+ -- Extension mechanism for non- release99 information
+ v690NonCriticalExtensions SEQUENCE {
+ masterInformationBlock-v690ext MasterInformationBlock-v690ext,
+ v6b0NonCriticalExtensions SEQUENCE {
+ masterInformationBlock-v6b0ext MasterInformationBlock-v6b0ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ masterInformationBlock-v860ext MasterInformationBlock-v860ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ masterInformationBlock-vc50ext MasterInformationBlock-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+MasterInformationBlock-v690ext ::= SEQUENCE {
+ multiplePLMN-List MultiplePLMN-List-r6 OPTIONAL
+}
+
+MasterInformationBlock-v6b0ext-IEs ::= SEQUENCE {
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List OPTIONAL
+}
+
+MasterInformationBlock-v860ext-IEs ::= SEQUENCE {
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List2 OPTIONAL,
+ extGANSS-SIBTypeInfoSchedulingInfoList
+ ExtGANSS-SIBTypeInfoSchedulingInfoList OPTIONAL,
+ csg-Indicator ENUMERATED { true } OPTIONAL
+}
+
+MasterInformationBlock-vc50ext-IEs ::= SEQUENCE {
+ mib-ValueTagExt MIB-ValueTagExt OPTIONAL,
+ sibSb-ReferenceList SIBSb-ReferenceList2 OPTIONAL,
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List3 OPTIONAL,
+ sb3-Information SB3-Information OPTIONAL
+}
+
+SB3-Information ::= SEQUENCE {
+ sb3-SegCount SegCount DEFAULT 1,
+ sb3-Sib-Rep SIB-Rep,
+ second-BCH-Channelizationcode BCH-Channelizationcode
+}
+
+MIB-ValueTag ::= INTEGER (1..8)
+
+MIB-ValueTagExt ::= INTEGER (0..1)
+
+NCC ::= INTEGER (0..7)
+
+PLMN-ValueTag ::= INTEGER (1..256)
+
+
+PredefinedConfigIdentityAndValueTag ::= SEQUENCE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ predefinedConfigValueTag PredefinedConfigValueTag
+}
+
+ProtocolErrorInformation ::= SEQUENCE {
+ diagnosticsType CHOICE {
+ type1 SEQUENCE {
+ protocolErrorCause ProtocolErrorCause
+ },
+ spare NULL
+ }
+}
+
+ReceivedMessageType ::= ENUMERATED {
+ activeSetUpdate,
+ cellChangeOrderFromUTRAN,
+ cellUpdateConfirm,
+ counterCheck,
+ downlinkDirectTransfer,
+ interRATHandoverCommand,
+ measurementControl,
+ pagingType2,
+ physicalChannelReconfiguration,
+ physicalSharedChannelAllocation,
+ radioBearerReconfiguration,
+ radioBearerRelease,
+ radioBearerSetup,
+ rrcConnectionRelease,
+ rrcConnectionReject,
+ rrcConnectionSetup,
+ securityModeCommand,
+ signallingConnectionRelease,
+ transportChannelReconfiguration,
+ transportFormatCombinationControl,
+ ueCapabilityEnquiry,
+ ueCapabilityInformationConfirm,
+ uplinkPhysicalChannelControl,
+ uraUpdateConfirm,
+ utranMobilityInformation,
+ assistanceDataDelivery,
+ spare6, spare5, spare4, spare3, spare2,
+ spare1
+}
+
+Rplmn-Information ::= SEQUENCE {
+ gsm-BA-Range-List GSM-BA-Range-List OPTIONAL,
+ fdd-UMTS-Frequency-List FDD-UMTS-Frequency-List OPTIONAL,
+ tdd-UMTS-Frequency-List TDD-UMTS-Frequency-List OPTIONAL,
+ cdma2000-UMTS-Frequency-List CDMA2000-UMTS-Frequency-List OPTIONAL
+}
+
+Rplmn-Information-r4 ::= SEQUENCE {
+ gsm-BA-Range-List GSM-BA-Range-List OPTIONAL,
+ fdd-UMTS-Frequency-List FDD-UMTS-Frequency-List OPTIONAL,
+ -- the option is the same for 7.68 Mcps TDD as for 3.84 Mcps TDD
+ -- i.e. TDD-UMTS-Frequency-List applies
+ tdd384-UMTS-Frequency-List TDD-UMTS-Frequency-List OPTIONAL,
+ tdd128-UMTS-Frequency-List TDD-UMTS-Frequency-List OPTIONAL,
+ cdma2000-UMTS-Frequency-List CDMA2000-UMTS-Frequency-List OPTIONAL
+}
+
+SIB-Rep::= ENUMERATED {
+ frame-8,
+ frame-16,
+ frame-32,
+ frame-64
+}
+
+BCH-Channelizationcode ::= INTEGER (2..33)
+
+SchedulingInformation ::= SEQUENCE {
+ scheduling SEQUENCE {
+ segCount SegCount DEFAULT 1,
+ sib-Pos CHOICE {
+ -- The element name indicates the repetition period and the value
+ -- (multiplied by two) indicates the position of the first segment.
+ rep4 INTEGER (0..1),
+ rep8 INTEGER (0..3),
+ rep16 INTEGER (0..7),
+ rep32 INTEGER (0..15),
+ rep64 INTEGER (0..31),
+ rep128 INTEGER (0..63),
+ rep256 INTEGER (0..127),
+ rep512 INTEGER (0..255),
+ rep1024 INTEGER (0..511),
+ rep2048 INTEGER (0..1023),
+ rep4096 INTEGER (0..2047)
+ },
+ sib-PosOffsetInfo SibOFF-List OPTIONAL
+ }
+}
+
+SchedulingInformation2 ::= CHOICE {
+ scheduling SEQUENCE {
+ segCount SegCount OPTIONAL,
+ sib-Pos CHOICE {
+ -- The element name indicates the repetition period and the value
+ -- (multiplied by two) indicates the position of the first segment.
+ rep4 INTEGER (0..1),
+ rep8 INTEGER (0..3),
+ rep16 INTEGER (0..7),
+ rep32 INTEGER (0..15),
+ rep64 INTEGER (0..31),
+ rep128 INTEGER (0..63),
+ rep256 INTEGER (0..127),
+ rep512 INTEGER (0..255),
+ rep1024 INTEGER (0..511),
+ rep2048 INTEGER (0..1023),
+ rep4096 INTEGER (0..2047)
+ },
+ sib-PosOffsetInfo SibOFF-List2 OPTIONAL
+ }
+}
+
+SchedulingInformationSIB ::= SEQUENCE {
+ sib-Type SIB-TypeAndTag,
+ scheduling SchedulingInformation
+}
+
+SchedulingInformationSIB2 ::= SEQUENCE {
+ sib-Type SIB-TypeAndTag2,
+ scheduling SchedulingInformation2
+}
+
+SchedulingInformationSIBSb ::= SEQUENCE {
+ sibSb-Type SIBSb-TypeAndTag,
+ scheduling SchedulingInformation
+}
+
+SchedulingInformationSIBSb2 ::= SEQUENCE {
+ sibSb-Type SIBSb-TypeAndTagExtValueTag
+}
+
+SegCount ::= INTEGER (1..16)
+
+SegmentIndex ::= INTEGER (1..15)
+
+-- Actual value SFN-Prime = 2 * IE value
+SFN-Prime ::= INTEGER (0..2047)
+
+
+SIB-Data-fixed ::= BIT STRING (SIZE (222))
+
+SIB-Data2-fixed ::= BIT STRING (SIZE (232))
+
+SIB-Data-variable ::= BIT STRING (SIZE (1..214))
+
+SIB-Data2-variable ::= BIT STRING (SIZE (1..224))
+
+SIBOccurIdentity ::= INTEGER (0..15)
+
+SIBOccurrenceIdentityAndValueTag ::= SEQUENCE {
+ sibOccurIdentity SIBOccurIdentity,
+ sibOccurValueTag SIBOccurValueTag
+}
+
+SIBOccurValueTag ::= INTEGER (0..15)
+
+SIB-ReferenceList ::= SEQUENCE (SIZE (1..maxSIB)) OF
+ SchedulingInformationSIB
+
+SIB-ReferenceList2 ::= SEQUENCE (SIZE (1..maxSIB2)) OF
+ SchedulingInformationSIB2
+
+SIBSb-ReferenceList ::= SEQUENCE (SIZE (1..maxSIB)) OF
+ SchedulingInformationSIBSb
+
+SIBSb-ReferenceList2 ::= SEQUENCE (SIZE (1..maxSIB)) OF
+ SchedulingInformationSIBSb2
+
+SIB-ReferenceListFACH ::= SEQUENCE (SIZE (1..maxSIB-FACH)) OF
+ SchedulingInformationSIB
+
+SIB-Type ::= ENUMERATED {
+ masterInformationBlock,
+ systemInformationBlockType1,
+ systemInformationBlockType2,
+ systemInformationBlockType3,
+ systemInformationBlockType4,
+ systemInformationBlockType5,
+ systemInformationBlockType6,
+ systemInformationBlockType7,
+ -- dummy, dummy2 and dummy3 are not used in this version of the specification,
+ -- they should not be sent. If they are received they should be ignored
+ dummy,
+ dummy2,
+ dummy3,
+ systemInformationBlockType11,
+ systemInformationBlockType12,
+ systemInformationBlockType13,
+ systemInformationBlockType13-1,
+ systemInformationBlockType13-2,
+ systemInformationBlockType13-3,
+ systemInformationBlockType13-4,
+ systemInformationBlockType14,
+ systemInformationBlockType15,
+ systemInformationBlockType15-1,
+ systemInformationBlockType15-2,
+ systemInformationBlockType15-3,
+ systemInformationBlockType16,
+ systemInformationBlockType17,
+ systemInformationBlockType15-4,
+ systemInformationBlockType18,
+ schedulingBlock1,
+ schedulingBlock2,
+ systemInformationBlockType15-5,
+ systemInformationBlockType5bis,
+ extensionType }
+
+SIB-Type2 ::= ENUMERATED {
+ schedulingBlock3,
+ systemInformationBlockType1,
+ systemInformationBlockType2,
+ systemInformationBlockType3,
+ systemInformationBlockType4,
+ systemInformationBlockType5,
+ systemInformationBlockType5bis,
+ systemInformationBlockType6,
+ systemInformationBlockType7,
+ systemInformationBlockType11,
+ systemInformationBlockType11bis,
+ systemInformationBlockType12,
+ systemInformationBlockType13,
+ systemInformationBlockType13-1,
+ systemInformationBlockType13-2,
+ systemInformationBlockType13-3,
+ systemInformationBlockType13-4,
+ systemInformationBlockType14,
+ systemInformationBlockType15,
+ systemInformationBlockType15bis,
+ systemInformationBlockType15-1,
+ systemInformationBlockType15-1bis,
+ systemInformationBlockType15-1ter,
+ systemInformationBlockType15-2,
+ systemInformationBlockType15-2bis,
+ systemInformationBlockType15-2ter,
+ systemInformationBlockType15-3,
+ systemInformationBlockType15-3bis,
+ systemInformationBlockType15-4,
+ systemInformationBlockType15-5,
+ systemInformationBlockType15-6,
+ systemInformationBlockType15-7,
+ systemInformationBlockType15-8,
+ systemInformationBlockType16,
+ systemInformationBlockType17,
+ systemInformationBlockType18,
+ systemInformationBlockType19,
+ systemInformationBlockType20,
+ systemInformationBlockType21,
+ systemInformationBlockType22,
+ systemInformationBlockType23,
+ systemInformationBlockType24,
+ systemInformationBlockType11ter,
+ systemInformationBlockType25,
+ spare20, spare19, spare18,
+ spare17, spare16, spare15, spare14, spare13, spare12,
+ spare11, spare10, spare9, spare8, spare7, spare6,
+ spare5,
+ spare4, spare3, spare2, spare1 }
+
+SIB-TypeAndTag ::= CHOICE {
+ sysInfoType1 PLMN-ValueTag,
+ sysInfoType2 CellValueTag,
+ sysInfoType3 CellValueTag,
+ sysInfoType4 CellValueTag,
+ sysInfoType5 CellValueTag,
+ sysInfoType6 CellValueTag,
+ sysInfoType7 NULL,
+ -- dummy, dummy2 and dummy3 are not used in this version of the specification,
+ -- they should not be sent. If they are received the UE behaviour is not specified.
+ dummy CellValueTag,
+ dummy2 NULL,
+ dummy3 NULL,
+ sysInfoType11 CellValueTag,
+ sysInfoType12 CellValueTag,
+ sysInfoType13 CellValueTag,
+ sysInfoType13-1 CellValueTag,
+ sysInfoType13-2 CellValueTag,
+ sysInfoType13-3 CellValueTag,
+ sysInfoType13-4 CellValueTag,
+ sysInfoType14 NULL,
+ sysInfoType15 CellValueTag,
+ sysInfoType16 PredefinedConfigIdentityAndValueTag,
+ sysInfoType17 NULL,
+ sysInfoType15-1 CellValueTag,
+ sysInfoType15-2 SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-3 SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-4 CellValueTag,
+ sysInfoType18 CellValueTag,
+ sysInfoType15-5 CellValueTag,
+ sysInfoType5bis CellValueTag,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+SIB-TypeAndTag2 ::= CHOICE {
+ sysInfoType1 PLMN-ValueTag,
+ sysInfoType2 CellValueTag,
+ sysInfoType3 CellValueTag3,
+ sysInfoType4 CellValueTag,
+ sysInfoType5 CellValueTag3,
+ sysInfoType5bis CellValueTag3,
+ sysInfoType6 CellValueTag,
+ sysInfoType7 NULL,
+ sysInfoType11 CellValueTag,
+ sysInfoType11bis CellValueTag,
+ sysInfoType12 CellValueTag,
+ sysInfoType13 CellValueTag,
+ sysInfoType13-1 CellValueTag,
+ sysInfoType13-2 CellValueTag,
+ sysInfoType13-3 CellValueTag,
+ sysInfoType13-4 CellValueTag,
+ sysInfoType14 NULL,
+ sysInfoType15 CellValueTag,
+ sysInfoType15bis CellValueTag,
+ sysInfoType15-1 CellValueTag,
+ sysInfoType15-1bis CellValueTag,
+ sysInfoType15-1ter CellValueTag,
+ sysInfoType15-2 SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-2bis SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-2ter SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-3 SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-3bis SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-4 CellValueTag,
+ sysInfoType15-5 CellValueTag,
+ sysInfoType15-6 CellValueTag,
+ sysInfoType15-7 CellValueTag,
+ sysInfoType15-8 CellValueTag,
+ sysInfoType16 PredefinedConfigIdentityAndValueTag,
+ sysInfoType17 NULL,
+ sysInfoType18 CellValueTag,
+ sysInfoType19 CellValueTag,
+ sysInfoType20 CellValueTag,
+ sysInfoType21 CellValueTag3,
+ sysInfoType22 CellValueTag3,
+ sysInfoType23 CellValueTag,
+ sysInfoType24 NULL,
+ sysInfoType11ter CellValueTag3,
+ sysInfoType25 NULL,
+ spare21 NULL,
+ spare20 NULL,
+ spare19 NULL,
+ spare18 NULL,
+ spare17 NULL,
+ spare16 NULL,
+ spare15 NULL,
+ spare14 NULL,
+ spare13 NULL,
+ spare12 NULL,
+ spare11 NULL,
+ spare10 NULL,
+ spare9 NULL,
+ spare8 NULL,
+ spare7 NULL,
+ spare6 NULL,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+SIBSb-TypeAndTag ::= CHOICE {
+ sysInfoType1 PLMN-ValueTag,
+ sysInfoType2 CellValueTag,
+ sysInfoType3 CellValueTag,
+ sysInfoType4 CellValueTag,
+ sysInfoType5 CellValueTag,
+ sysInfoType6 CellValueTag,
+ sysInfoType7 NULL,
+ -- dummy, dummy2 and dummy3 are not used in this version of the specification,
+ -- they should not be sent. If they are received the UE behaviour is not specified.
+ dummy CellValueTag,
+ dummy2 NULL,
+ dummy3 NULL,
+ sysInfoType11 CellValueTag,
+ sysInfoType12 CellValueTag,
+ sysInfoType13 CellValueTag,
+ sysInfoType13-1 CellValueTag,
+ sysInfoType13-2 CellValueTag,
+ sysInfoType13-3 CellValueTag,
+ sysInfoType13-4 CellValueTag,
+ sysInfoType14 NULL,
+ sysInfoType15 CellValueTag,
+ sysInfoType16 PredefinedConfigIdentityAndValueTag,
+ sysInfoType17 NULL,
+ sysInfoTypeSB1 CellValueTag,
+ sysInfoTypeSB2 CellValueTag,
+ sysInfoType15-1 CellValueTag,
+ sysInfoType15-2 SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-3 SIBOccurrenceIdentityAndValueTag,
+ sysInfoType15-4 CellValueTag,
+ sysInfoType18 CellValueTag,
+ sysInfoType15-5 CellValueTag,
+ sysInfoType5bis CellValueTag,
+ spare2 NULL,
+ spare1 NULL
+}
+
+
+SIBSb-TypeAndTagExtValueTag ::= CHOICE {
+ sysInfoType3 CellValueTagExt,
+ sysInfoType5 CellValueTagExt,
+ sysInfoType5bis CellValueTagExt,
+ sysInfoType21 CellValueTagExt,
+ sysInfoType22 CellValueTagExt,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+SIB-TypeExt ::= CHOICE {
+ systemInfoType11bis NULL,
+ systemInfoType15bis NULL,
+ systemInfoType15-1bis NULL,
+ systemInfoType15-2bis NULL,
+ systemInfoType15-3bis NULL,
+ systemInfoType15-6 NULL,
+ systemInfoType15-7 NULL,
+ systemInfoType15-8 NULL
+}
+
+SIB-TypeExt2 ::= CHOICE {
+ systemInfoType19 NULL,
+ systemInfoType15-2ter NULL,
+ systemInfoType20 NULL,
+ systemInfoType21 NULL,
+ systemInfoType22 NULL,
+ systemInfoType15-1ter NULL,
+ systemInfoType23 NULL,
+ systemInfoType24 NULL
+}
+
+SIB-TypeExt3 ::= CHOICE {
+ systemInfoType11ter NULL,
+ systemInfoType25 NULL,
+ spare6 NULL,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+SIB-TypeExtGANSS ::= CHOICE {
+ systemInfoType15-1bis NULL,
+ systemInfoType15-2bis NULL,
+ systemInfoType15-2ter NULL,
+ systemInfoType15-3bis NULL,
+ systemInfoType15-6 NULL,
+ systemInfoType15-7 NULL,
+ systemInfoType15-8 NULL,
+ spare9 NULL,
+ spare8 NULL,
+ spare7 NULL,
+ spare6 NULL,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+}
+
+SibOFF ::= ENUMERATED {
+ so2, so4, so6, so8, so10,
+ so12, so14, so16, so18,
+ so20, so22, so24, so26,
+ so28, so30, so32 }
+
+SibOFF-vc50ext ::= SEQUENCE {
+ sibOFF SibOFF OPTIONAL
+}
+
+SibOFF-List ::= SEQUENCE (SIZE (1..15)) OF
+ SibOFF
+
+SibOFF-List2 ::= SEQUENCE (SIZE (1..15)) OF
+ SibOFF-vc50ext
+
+SpecificACDC-BarringInformation ::= SEQUENCE (SIZE (1.. maxNumAcdcCategory)) OF
+ SEQUENCE {
+ acdc-Barring ACDC-Barring OPTIONAL,
+ expirationTimeFactor ExpirationTimeFactor2 OPTIONAL
+}
+
+SysInfoType1 ::= SEQUENCE {
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainSysInfoList CN-DomainSysInfoList,
+ -- User equipment IEs
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants OPTIONAL,
+ ue-IdleTimersAndConstants UE-IdleTimersAndConstants OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ v3a0NonCriticalExtensions SEQUENCE {
+ sysInfoType1-v3a0ext SysInfoType1-v3a0ext-IEs,
+-- WS modification: fix misspelling
+ v860NonCriticalExtensions SEQUENCE {
+ -- End WS modification
+ sysInfoType1-v860ext SysInfoType1-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType1-v3a0ext-IEs ::= SEQUENCE {
+ ue-ConnTimersAndConstants-v3a0ext UE-ConnTimersAndConstants-v3a0ext,
+ ue-IdleTimersAndConstants-v3a0ext UE-IdleTimersAndConstants-v3a0ext
+}
+
+SysInfoType1-v860ext-IEs ::= SEQUENCE {
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants-v860ext
+}
+
+SysInfoType2 ::= SEQUENCE {
+ -- UTRAN mobility IEs
+ ura-IdentityList URA-IdentityList,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType3 ::= SEQUENCE {
+ sib4indicator BOOLEAN,
+ -- UTRAN mobility IEs
+ cellIdentity CellIdentity,
+ cellSelectReselectInfo CellSelectReselectInfoSIB-3-4,
+ cellAccessRestriction CellAccessRestriction,
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType3-v4b0ext SysInfoType3-v4b0ext-IEs,
+ v590NonCriticalExtension SEQUENCE {
+ sysInfoType3-v590ext SysInfoType3-v590ext,
+ v5c0NoncriticalExtension SEQUENCE {
+ sysInfoType3-v5c0ext SysInfoType3-v5c0ext-IEs,
+ v670NonCriticalExtension SEQUENCE {
+ sysInfoType3-v670ext SysInfoType3-v670ext,
+ v770NonCriticalExtension SEQUENCE {
+ sysInfoType3-v770ext SysInfoType3-v770ext-IEs,
+ v830NonCriticalExtension SEQUENCE {
+ sysInfoType3-v830ext SysInfoType3-v830ext-IEs,
+ v860NonCriticalExtension SEQUENCE {
+ sysInfoType3-v860ext SysInfoType3-v860ext-IEs,
+ v870NonCriticalExtension SEQUENCE {
+ sysInfoType3-v870ext SysInfoType3-v870ext-IEs,
+ v900NonCriticalExtension SEQUENCE {
+ sysInfoType3-v920ext SysInfoType3-v920ext-IEs,
+ vc50NonCriticalExtension SEQUENCE {
+ sysInfoType3-vc50ext SysInfoType3-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType3-v4b0ext-IEs ::= SEQUENCE {
+ mapping-LCR Mapping-LCR-r4 OPTIONAL
+}
+
+SysInfoType3-v590ext ::= SEQUENCE {
+ cellSelectReselectInfo-v590ext CellSelectReselectInfo-v590ext OPTIONAL
+}
+
+SysInfoType3-v5c0ext-IEs ::= SEQUENCE {
+ cellSelectReselectInfoTreselectionScaling-v5c0ext
+ CellSelectReselectInfoTreselectionScaling-v5c0ext OPTIONAL
+}
+
+SysInfoType3-v670ext ::= SEQUENCE {
+ domainSpecificAccessRestrictionParametersForPLMNOfMIB
+ DomainSpecificAccessRestrictionParam-v670ext OPTIONAL,
+ domainSpecificAccessRestictionForSharedNetwork
+ DomainSpecificAccessRestrictionForSharedNetwork-v670ext OPTIONAL
+}
+
+SysInfoType3-v770ext-IEs ::= SEQUENCE {
+ deferredMeasurementControlReadingSupport
+ DeferredMeasurementControlReadingSupport OPTIONAL,
+ q-QualMin-Offset Q-QualMin-Offset OPTIONAL,
+ q-RxlevMin-Offset Q-RxlevMin-Offset OPTIONAL,
+ mbsfnOnlyService MBSFNOnlyService OPTIONAL
+}
+
+SysInfoType3-v830ext-IEs ::= SEQUENCE {
+ pagingPermissionWithAccessControlParametersForPLMNOfMIB
+ PagingPermissionWithAccessControlParameters OPTIONAL,
+ pagingPermissionWithAccessControlParametersForSharedNetwork
+ PagingPermissionWithAccessControlForSharedNetwork OPTIONAL
+}
+
+SysInfoType3-v860ext-IEs ::= SEQUENCE {
+ csgIdentity CSG-Identity OPTIONAL,
+ csg-PSCSplitInfo CSG-PSCSplitInfo OPTIONAL
+}
+
+SysInfoType3-v870ext-IEs ::= SEQUENCE {
+ cellAccessRestriction CellAccessRestriction-v870ext OPTIONAL
+}
+
+SysInfoType3-v920ext-IEs ::= SEQUENCE {
+ imsEmergencySupportIndicator ENUMERATED { supported } OPTIONAL
+}
+
+SysInfoType3-vc50ext-IEs ::= SEQUENCE {
+ txFailParams TxFailParams OPTIONAL
+}
+
+SysInfoType4 ::= SEQUENCE {
+ -- UTRAN mobility IEs
+ cellIdentity CellIdentity,
+ cellSelectReselectInfo CellSelectReselectInfoSIB-3-4,
+ cellAccessRestriction CellAccessRestriction,
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType4-v4b0ext SysInfoType4-v4b0ext-IEs,
+ v590NonCriticalExtension SEQUENCE {
+ sysInfoType4-v590ext SysInfoType4-v590ext,
+ v5b0NonCriticalExtension SEQUENCE {
+ sysInfoType4-v5b0ext SysInfoType4-v5b0ext-IEs,
+ v5c0NonCriticalExtension SEQUENCE {
+ sysInfoType4-v5c0ext SysInfoType4-v5c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType4-v4b0ext-IEs ::= SEQUENCE {
+ mapping-LCR Mapping-LCR-r4 OPTIONAL
+}
+
+
+SysInfoType4-v590ext ::= SEQUENCE {
+ cellSelectReselectInfo-v590ext CellSelectReselectInfo-v590ext OPTIONAL
+}
+
+SysInfoType4-v5b0ext-IEs ::= SEQUENCE {
+ cellSelectReselectInfoPCHFACH-v5b0ext CellSelectReselectInfoPCHFACH-v5b0ext OPTIONAL
+}
+
+SysInfoType4-v5c0ext-IEs ::= SEQUENCE {
+ cellSelectReselectInfoTreselectionScaling-v5c0ext
+ CellSelectReselectInfoTreselectionScaling-v5c0ext OPTIONAL
+}
+
+SysInfoType5 ::= SEQUENCE {
+ sib6indicator BOOLEAN,
+ -- Physical channel IEs
+ pich-PowerOffset PICH-PowerOffset,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ aich-PowerOffset AICH-PowerOffset
+ },
+ tdd SEQUENCE {
+ -- If PDSCH/PUSCH is configured for 1.28Mcps or 7.68Mcps TDD, the following IEs should be absent
+ -- and the info included in the respective tdd128SpecificInfo or tdd768SpecificInfo instead.
+ -- If PDSCH/PUSCH is configured for 3.84Mcps TDD in R5, HCR-r5-SpecificInfo should also be
+ -- included.
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN OPTIONAL,
+ openLoopPowerControl-TDD OpenLoopPowerControl-TDD
+ }
+ },
+ primaryCCPCH-Info PrimaryCCPCH-Info OPTIONAL,
+ prach-SystemInformationList PRACH-SystemInformationList,
+ sCCPCH-SystemInformationList SCCPCH-SystemInformationList,
+ -- cbs-DRX-Level1Information is conditional on any of the CTCH indicator IEs in
+ -- sCCPCH-SystemInformationList
+ cbs-DRX-Level1Information CBS-DRX-Level1Information OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v4b0ext SysInfoType5-v4b0ext-IEs OPTIONAL,
+ -- Extension mechanism for non- rel-4 information
+ v590NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v590ext SysInfoType5-v590ext-IEs OPTIONAL,
+ v650NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v650ext SysInfoType5-v650ext-IEs OPTIONAL,
+ v680NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v680ext SysInfoType5-v680ext-IEs OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v690ext SysInfoType5-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v770ext SysInfoType5-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v860ext SysInfoType5-v860ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v890ext SysInfoType5-v890ext-IEs,
+ v8b0NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v8b0ext
+ SysInfoType5-v8b0ext-IEs,
+ v8d0NonCriticalExtensions SEQUENCE {
+ sysInfoType5-v8d0ext
+ SysInfoType5-v8d0ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ sysInfoType5-va40ext
+ SysInfoType5-va40ext-IEs,
+ va80NonCriticalExtensions SEQUENCE {
+ sysInfoType5-va80ext SysInfoType5-va80ext-IEs,
+ vb50NonCriticalExtensions
+ SysInfoType5-NonCriticalExtensions-vb50-IEs
+ OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType5-v4b0ext-IEs ::= SEQUENCE {
+ --The following IE PNBSCH-Allocation-r4 shall be used for 3.84Mcps TDD only.
+ pNBSCH-Allocation-r4 PNBSCH-Allocation-r4 OPTIONAL,
+ -- In case of TDD, the following IE is included instead of the
+ -- IE up-IPDL-Parameter in up-OTDOA-AssistanceData.
+ openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL,
+-- If SysInfoType5 is sent to describe a 1.28Mcps TDD cell, the IE PRACH-RACH-Info included in
+-- PRACH-SystemInformationList shall be ignored, the IE PRACH-Partitioning and the
+-- IE rach-TransportFormatSet shall be absent and the corresponding IE in the following
+-- PRACH-SystemInformationList-LCR-r4 shall be used
+ prach-SystemInformationList-LCR-r4 PRACH-SystemInformationList-LCR-r4 OPTIONAL,
+ tdd128SpecificInfo SEQUENCE {
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-LCR-r4 OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN-LCR-r4 OPTIONAL,
+ pCCPCH-LCR-Extensions PrimaryCCPCH-Info-LCR-r4-ext OPTIONAL,
+ sCCPCH-LCR-ExtensionsList SCCPCH-SystemInformationList-LCR-r4-ext
+ } OPTIONAL,
+ frequencyBandIndicator RadioFrequencyBandFDD OPTIONAL
+}
+
+SysInfoType5-v590ext-IEs ::= SEQUENCE {
+ hcr-r5-SpecificInfo SEQUENCE {
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-HCR-r5 OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN-HCR-r5 OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType5-v650ext-IEs ::= SEQUENCE {
+ frequencyBandIndicator2 RadioFrequencyBandFDD2
+}
+
+SysInfoType5-v680ext-IEs ::= SEQUENCE {
+ -- TABULAR: HSDPA Cell Indicator is MD in tabular description
+ -- Default value is 'HSDPA Capability not indicated'
+ hsdpa-CellIndicator ENUMERATED { hsdpa-CapableCell } OPTIONAL
+}
+
+SysInfoType5-v690ext-IEs ::= SEQUENCE {
+ -- TABULAR: E-DCH Cell Indicator is MD in tabular description
+ -- Default value is 'E-DCH Capability not indicated'
+ edch-CellIndicator ENUMERATED { edch-CapableCell } OPTIONAL,
+ sccpch-SystemInformation-MBMS CHOICE {
+ mcchOnSCCPCHusedForNonMBMS MBMS-MCCH-ConfigurationInfo-r6,
+ mcchOnSCCPCHusedOnlyForMBMS SCCPCH-SystemInformation-MBMS-r6
+ } OPTIONAL,
+ additionalPRACH-TF-and-TFCS-CCCH-List AdditionalPRACH-TF-and-TFCS-CCCH-List OPTIONAL,
+ cBS-DRX-Level1Information-extension CBS-DRX-Level1Information-extension-r6 OPTIONAL
+}
+
+SysInfoType5-v770ext-IEs ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ hs-dsch-CommonSystemInformation HS-DSCH-CommonSystemInformation,
+ hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-VHCR OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-VHCR-r7 OPTIONAL,
+ -- If SysInfoType5 is sent to configure a 7.68Mcps TDD cell, the 'prach-RACH-Info' in
+ -- IE PRACH-SystemInformationList shall be ignored, 'prach-Partitioning' shall be absent
+ -- and the corresponding IE in the following IE PRACH-SystemInformationList-VHCR-r7
+ -- shall be used instead.
+ prach-SystemInformationList PRACH-SystemInformationList-VHCR-r7 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ prach-SystemInformationList PRACH-SystemInformationList-LCR-v770ext OPTIONAL
+ }
+ } OPTIONAL,
+ -- If SysInfoType5 is sent to configure a 7.68 Mcps TDD cell (in any mode) or a 3.84 Mcps TDD
+ -- cell operating in MBSFN mode, IE SCCPCH-SystemInformationList-HCR-VHCR-r7 is used, otherwise
+ -- IE SCCPCH-SystemInformationList-r6 is used.
+ sccpch-SystemInformationList SCCPCH-SystemInformationList-HCR-VHCR-r7 OPTIONAL,
+ sccpch-SystemInformation-MBMS CHOICE {
+ -- If choice is 'mcchOnSCCPCHusedForNonMBMS', IE MBMS-MCCH-ConfigurationInfo-r6 is used.
+ -- If choice is 'mcchOnSCCPCHusedOnlyForMBMS', IE MBMS-MCCH-ConfigurationInfo-r7 is used
+ -- to configure a 7.68Mcps TDD cell or a cell operating in MBSFN mode, otherwise IE
+ -- SCCPCH-SystemInformation-MBMS-r6 is used.
+ mcchOnSCCPCHusedOnlyForMBMS SCCPCH-SystemInformation-MBMS-r7
+ } OPTIONAL,
+ tDD-MBSFNInformation TDD-MBSFNInformation OPTIONAL
+}
+
+SysInfoType5-v860ext-IEs ::= SEQUENCE {
+ -- The field 'dummy' shall be marked absent in SysInfoType5 and SysInfoType5bis. A failure to
+ -- comply with this requirement may prevent the UE to receive any service in the cell. The UE
+ -- may treat the cell as barred.
+ dummy SEQUENCE {} OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ hs-dsch-DrxCellfach-info HS-DSCH-DrxCellfach-info OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ hs-dsch-CommonSysInfo SEQUENCE {
+ hs-dsch-CommonSystemInformation HS-DSCH-CommonSystemInformation-TDD128,
+ hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation-TDD128 OPTIONAL
+ } OPTIONAL,
+ hs-dsch-DrxCellfach-info HS-DSCH-DrxCellfach-info-TDD128 OPTIONAL
+ }
+ }
+}
+
+SysInfoType5-v890ext-IEs ::= SEQUENCE {
+ secondFrequencyInfo FrequencyInfoTDD OPTIONAL,
+ commonEDCHSystemInfo CommonEDCHSystemInfo OPTIONAL
+}
+
+SysInfoType5-v8b0ext-IEs ::= SEQUENCE {
+ tresetUsageIndicator ENUMERATED { true } OPTIONAL,
+ upPCHpositionInfo UpPCHposition-LCR OPTIONAL
+}
+
+SysInfoType5-v8d0ext-IEs ::= SEQUENCE {
+ commonEDCHSystemInfoFDD CommonEDCHSystemInfoFDD OPTIONAL
+}
+
+SysInfoType5-va40ext-IEs ::= SEQUENCE {
+ frequencyBandsIndicatorSupport FrequencyBandsIndicatorSupport OPTIONAL,
+ frequencyBandIndicator3 RadioFrequencyBandFDD3 OPTIONAL
+}
+
+SysInfoType5-va80ext-IEs ::= SEQUENCE {
+ multipleFrequencyBandIndicatorListFDD MultipleFrequencyBandIndicatorListFDD OPTIONAL
+}
+
+SysInfoType5-NonCriticalExtensions-vb50-IEs::= SEQUENCE {
+ sysInfoType5-vb50ext SysInfoType5-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType5-vb50ext-IEs ::= SEQUENCE {
+ sib22indicator BOOLEAN,
+ cellUpdateMessageOptimisedEncoding ENUMERATED { true } OPTIONAL
+}
+
+-- SysInfoType5bis uses the same structure as SysInfoType5
+SysInfoType5bis ::= SysInfoType5
+
+SysInfoType6 ::= SEQUENCE {
+ -- Physical channel IEs
+ pich-PowerOffset PICH-PowerOffset,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ aich-PowerOffset AICH-PowerOffset,
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy CSICH-PowerOffset OPTIONAL
+ },
+ tdd SEQUENCE {
+ -- If PDSCH/PUSCH is configured for 1.28Mcps TDD, pusch-SysInfoList-SFN,
+ -- pdsch-SysInfoList-SFN and openLoopPowerControl-TDD should be absent
+ -- and the info included in the tdd128SpecificInfo instead.
+ -- If PDSCH/PUSCH is configured for 7.68Mcps TDD, pusch-SysInfoList-SFN
+ -- and pdsch-SysInfoList-SFN should be absent and the info included in the
+ -- tdd768SpecificInfo instead.
+ -- If PDSCH/PUSCH is configured for 3.84Mcps TDD in R5, HCR-r5-SpecificInfo should
+ -- also be included.
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN OPTIONAL,
+ openLoopPowerControl-TDD OpenLoopPowerControl-TDD
+ }
+ },
+ primaryCCPCH-Info PrimaryCCPCH-Info OPTIONAL,
+ prach-SystemInformationList PRACH-SystemInformationList OPTIONAL,
+ sCCPCH-SystemInformationList SCCPCH-SystemInformationList OPTIONAL,
+ cbs-DRX-Level1Information CBS-DRX-Level1Information OPTIONAL,
+ -- Conditional on any of the CTCH indicator IEs in
+ -- sCCPCH-SystemInformationList
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType6-v4b0ext SysInfoType6-v4b0ext-IEs OPTIONAL,
+ -- Extension mechanism for non- rel-4 information
+ v590NonCriticalExtensions SEQUENCE {
+ sysInfoType6-v590ext SysInfoType6-v590ext-IEs OPTIONAL,
+ v650nonCriticalExtensions SEQUENCE {
+ sysInfoType6-v650ext SysInfoType6-v650ext-IEs OPTIONAL,
+ v690nonCriticalExtensions SEQUENCE {
+ sysInfoType6-v690ext SysInfoType6-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ sysInfoType6-v770ext SysInfoType6-v770ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ sysInfoType6-va40ext SysInfoType6-va40ext-IEs,
+ va80NonCriticalExtensions SEQUENCE {
+ sysInfoType6-va80ext SysInfoType6-va80ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType6-v4b0ext-IEs ::= SEQUENCE {
+ -- openLoopPowerControl-IPDL-TDD is present only if IPDLs are applied for TDD
+ openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL,
+ -- If SysInfoType6 is sent to describe a 1.28Mcps TDD cell, the IE PRACH-RACH-Info included
+ -- in PRACH-SystemInformationList shall be ignored, the IE PRACH-Partitioning and the
+ -- IE rach-TransportFormatSet shall be absent and the corresponding IEs in the following
+ -- PRACH-SystemInformationList-LCR-r4 shall be used
+ prach-SystemInformationList-LCR-r4 PRACH-SystemInformationList-LCR-r4 OPTIONAL,
+ tdd128SpecificInfo SEQUENCE {
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-LCR-r4 OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN-LCR-r4 OPTIONAL,
+ pCCPCH-LCR-Extensions PrimaryCCPCH-Info-LCR-r4-ext OPTIONAL,
+ sCCPCH-LCR-ExtensionsList SCCPCH-SystemInformationList-LCR-r4-ext OPTIONAL
+ } OPTIONAL,
+ frequencyBandIndicator RadioFrequencyBandFDD OPTIONAL
+}
+
+SysInfoType6-v590ext-IEs ::= SEQUENCE {
+ hcr-r5-SpecificInfo SEQUENCE {
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-HCR-r5 OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN-HCR-r5 OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType6-v650ext-IEs ::= SEQUENCE {
+ frequencyBandIndicator2 RadioFrequencyBandFDD2
+}
+
+SysInfoType6-v690ext-IEs ::= SEQUENCE {
+ additionalPRACH-TF-and-TFCS-CCCH-List AdditionalPRACH-TF-and-TFCS-CCCH-List OPTIONAL
+}
+
+SysInfoType6-v770ext-IEs ::= SEQUENCE {
+ tdd768SpecificInfo SEQUENCE {
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-VHCR OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-VHCR-r7 OPTIONAL,
+ -- If SysInfoType6 is sent to configure a 7.68Mcps TDD cell, the 'prach-RACH-Info' in
+ -- IE PRACH-SystemInformationList shall be ignored, 'prach-Partitioning' shall be absent
+ -- and the corresponding IE in the following IE PRACH-SystemInformationList-VHCR-r7
+ -- shall be used instead.
+ prach-SystemInformationList PRACH-SystemInformationList-VHCR-r7 OPTIONAL
+ } OPTIONAL,
+ -- If SysInfoType6 is sent to configure a 7.68 Mcps TDD cell,
+ -- IE SCCPCH-SystemInformationList-HCR-VHCR-r7 is used, otherwise
+ -- IE SCCPCH-SystemInformationList-r6 is used.
+ sccpch-SystemInformationList SCCPCH-SystemInformationList-HCR-VHCR-r7 OPTIONAL
+}
+
+SysInfoType6-va40ext-IEs ::= SEQUENCE {
+ frequencyBandIndicator3 RadioFrequencyBandFDD3 OPTIONAL
+}
+
+SysInfoType6-va80ext-IEs ::= SEQUENCE {
+ multipleFrequencyBandIndicatorListFDD MultipleFrequencyBandIndicatorListFDD OPTIONAL
+}
+
+SysInfoType7 ::= SEQUENCE {
+ -- Physical channel IEs
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-Interference UL-Interference
+ },
+ tdd NULL
+ },
+ prach-Information-SIB5-List DynamicPersistenceLevelList,
+ prach-Information-SIB6-List DynamicPersistenceLevelList OPTIONAL,
+ expirationTimeFactor ExpirationTimeFactor OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+-- This IE is not used in this version of the specification.
+-- It was kept only for backwards compatibility reasons
+SysInfoType8 ::= SEQUENCE {
+ -- User equipment IEs
+ -- dummy1, dummy2, dummy3 are not used in this version of the specification and
+ -- they should be ignored by the receiver.
+ dummy1 CPCH-Parameters,
+ -- Physical channel IEs
+ dummy2 CPCH-SetInfoList,
+ dummy3 CSICH-PowerOffset,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+-- This IE is not used in this version of the specification.
+-- It was kept only for backwards compatibility reasons
+SysInfoType9 ::= SEQUENCE {
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy CPCH-PersistenceLevelsList,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+-- This IE is not used in this version of the specification.
+-- It was kept only for backwards compatibility reasons
+SysInfoType10 ::= SEQUENCE {
+ -- User equipment IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DRAC-SysInfoList,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType11 ::= SEQUENCE {
+ sib12indicator BOOLEAN,
+ -- Measurement IEs
+ fach-MeasurementOccasionInfo FACH-MeasurementOccasionInfo OPTIONAL,
+ measurementControlSysInfo MeasurementControlSysInfo,
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType11-v4b0ext SysInfoType11-v4b0ext-IEs OPTIONAL,
+ v590NonCriticalExtension SEQUENCE {
+ sysInfoType11-v590ext SysInfoType11-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ sysInfoType11-v690ext SysInfoType11-v690ext-IEs,
+ v6b0NonCriticalExtensions SEQUENCE {
+ sysInfoType11-v6b0ext SysInfoType11-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ sysInfoType11-v770ext SysInfoType11-v770ext-IEs,
+ v7b0NonCriticalExtensions SEQUENCE {
+ sysInfoType11-v7b0ext SysInfoType11-v7b0ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ sysInfoType11-v860ext SysInfoType11-v860ext-IEs,
+ va80NonCriticalExtensions SEQUENCE {
+ sysInfoType11-va80ext SysInfoType11-va80ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType11-vc50ext SysInfoType11-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType11-v4b0ext-IEs ::= SEQUENCE {
+ fach-MeasurementOccasionInfo-LCR-Ext FACH-MeasurementOccasionInfo-LCR-r4-ext OPTIONAL,
+ measurementControlSysInfo-LCR MeasurementControlSysInfo-LCR-r4-ext
+}
+
+SysInfoType11-v590ext-IEs ::= SEQUENCE {
+ --The order of the list corresponds to the order of cell in newIntraFrequencyCellInfoList
+ newIntraFrequencyCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL,
+ --The order of the list corresponds to the order of cell in newInterFrequencyCellInfoList
+ newInterFrequencyCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL,
+ --The order of the list corresponds to the order of cell in newInterRATCellInfoList
+ newInterRATCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL,
+ intraFreqEventCriteriaList-v590ext Intra-FreqEventCriteriaList-v590ext OPTIONAL,
+ intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL,
+ intraFreqEvent-1d-r5 IntraFreqEvent-1d-r5 OPTIONAL
+}
+
+SysInfoType11-v690ext-IEs ::= SEQUENCE {
+ -- dummy is not used in this version of the specification. If received, the UE behaviour
+ -- is not specified.
+ dummy Dummy-InterFreqRACHReportingInfo OPTIONAL
+}
+
+SysInfoType11-v6b0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ interFreqRACHReportingInfo InterFreqRACHReportingInfo OPTIONAL
+}
+
+SysInfoType11-v770ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ mbsfnFrequencyList MBSFNFrequencyList OPTIONAL
+}
+
+SysInfoType11-v7b0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ newInterFreqCellList NewInterFreqCellList-v7b0ext OPTIONAL
+}
+
+SysInfoType11-v860ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ mbsfnFrequencyList MBSFNFrequencyList-v860ext OPTIONAL
+}
+
+SysInfoType11-va80ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL
+}
+
+SysInfoType11-vc50ext-IEs ::= SEQUENCE {
+ measurementControlSysInfo MeasurementControlSysInfo-vc50ext OPTIONAL,
+ -- Measurement IEs
+ measurementScalingFactor MeasurementScalingFactor OPTIONAL
+}
+
+MeasurementScalingFactor ::= ENUMERATED {
+ sf-utra-cf1, sf-utra-cf2}
+
+
+SysInfoType11bis ::= SEQUENCE {
+ -- Measurement IEs
+ measurementControlSysInfo MeasurementControlSysInfoExtension OPTIONAL,
+ measurementControlSysInfo-LCR MeasurementControlSysInfoExtension-LCR-r4 OPTIONAL,
+ measurementControlSysInfoExtensionAddon-r5
+ MeasurementControlSysInfoExtensionAddon-r5 OPTIONAL,
+ -- Extension mechanism for non-release99 information
+ v7b0NonCriticalExtensions SEQUENCE {
+ sysInfoType11bis-v7b0ext SysInfoType11bis-v7b0ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ sysInfoType11bis-v860ext SysInfoType11bis-v860ext-IEs,
+ va80NonCriticalExtensions SEQUENCE {
+ sysInfoType11bis-va80ext SysInfoType11bis-va80ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType11bis-vc50ext SysInfoType11bis-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType11bis-v7b0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ newInterFreqCellList NewInterFreqCellList-v7b0ext OPTIONAL
+}
+
+SysInfoType11bis-v860ext-IEs ::= SEQUENCE {
+ -- UTRAN mobility IEs
+ csg-PSCSplitInfo CSG-PSCSplitInfo OPTIONAL,
+ csg-DedicatedFrequencyInfoList CSG-DedicatedFrequencyInfoList OPTIONAL
+}
+
+SysInfoType11bis-va80ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL
+}
+
+SysInfoType11bis-vc50ext-IEs ::= SEQUENCE {
+ measurementControlSysInfo MeasurementControlSysInfo-vc50ext OPTIONAL
+}
+
+SysInfoType11ter ::= SEQUENCE {
+ -- Measurement IEs
+ measureControlSysInfoInterFreqExt MeasureControlSysInfoInterFreqExt OPTIONAL,
+ multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType12 ::= SEQUENCE {
+ -- Measurement IEs
+ fach-MeasurementOccasionInfo FACH-MeasurementOccasionInfo OPTIONAL,
+ measurementControlSysInfo MeasurementControlSysInfo,
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType12-v4b0ext SysInfoType12-v4b0ext-IEs OPTIONAL,
+ v590NonCriticalExtension SEQUENCE {
+ sysInfoType12-v590ext SysInfoType12-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ sysInfoType12-v690ext SysInfoType12-v690ext-IEs,
+ v6b0NonCriticalExtensions SEQUENCE {
+ sysInfoType12-v6b0ext SysInfoType12-v6b0ext-IEs,
+ v7b0NonCriticalExtensions SEQUENCE {
+ sysInfoType12-v7b0ext SysInfoType12-v7b0ext-IEs,
+ va80NonCriticalExtensions SEQUENCE {
+ sysInfoType12-va80ext SysInfoType12-va80ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType12-vc50ext SysInfoType12-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType12-v4b0ext-IEs ::= SEQUENCE {
+ fach-MeasurementOccasionInfo-LCR-Ext FACH-MeasurementOccasionInfo-LCR-r4-ext OPTIONAL,
+ measurementControlSysInfo-LCR MeasurementControlSysInfo-LCR-r4-ext
+}
+
+SysInfoType12-v590ext-IEs ::= SEQUENCE {
+ --The order of the list corresponds to the order of cell in newIntraFrequencyCellInfoList
+ newIntraFrequencyCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL,
+ --The order of the list corresponds to the order of cell in newInterFrequencyCellInfoList
+ newInterFrequencyCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL,
+ --The order of the list corresponds to the order of cell in newInterRATCellInfoList
+ newInterRATCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF
+ CellSelectReselectInfo-v590ext OPTIONAL,
+ intraFreqEventCriteriaList-v590ext Intra-FreqEventCriteriaList-v590ext OPTIONAL,
+ intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL,
+ intraFreqEvent-1d-r5 IntraFreqEvent-1d-r5 OPTIONAL
+}
+
+SysInfoType12-v690ext-IEs ::= SEQUENCE {
+ -- dummy is not used in this version of the specification. If received, the UE behaviour
+ -- is not specified.
+ dummy Dummy-InterFreqRACHReportingInfo OPTIONAL
+}
+
+SysInfoType12-v6b0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ interFreqRACHReportingInfo InterFreqRACHReportingInfo OPTIONAL
+}
+
+SysInfoType12-v7b0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ newInterFreqCellList NewInterFreqCellList-v7b0ext OPTIONAL
+}
+
+SysInfoType12-va80ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL
+}
+
+SysInfoType12-vc50ext-IEs ::= SEQUENCE {
+ measurementControlSysInfo MeasurementControlSysInfo-vc50ext OPTIONAL
+}
+
+SysInfoType13 ::= SEQUENCE {
+ -- Core network IEs
+ cn-DomainSysInfoList CN-DomainSysInfoList,
+ -- User equipment IEs
+ ue-IdleTimersAndConstants UE-IdleTimersAndConstants OPTIONAL,
+ capabilityUpdateRequirement CapabilityUpdateRequirement OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ v3a0NonCriticalExtensions SEQUENCE {
+ sysInfoType13-v3a0ext SysInfoType13-v3a0ext-IEs,
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType13-v4b0ext SysInfoType13-v4b0ext-IEs,
+ -- Extension mechanism for non- release99 information
+ v770NonCriticalExtensions SEQUENCE {
+ sysInfoType13-v770ext SysInfoType13-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType13-v3a0ext-IEs ::= SEQUENCE {
+ ue-IdleTimersAndConstants-v3a0ext UE-IdleTimersAndConstants-v3a0ext
+}
+
+SysInfoType13-v4b0ext-IEs ::= SEQUENCE {
+ capabilityUpdateRequirement-r4Ext CapabilityUpdateRequirement-r4-ext OPTIONAL
+}
+
+SysInfoType13-v770ext-IEs ::= SEQUENCE {
+ capabilityUpdateRequirement CapabilityUpdateRequirement-v770ext OPTIONAL
+}
+
+SysInfoType13-1 ::= SEQUENCE {
+ -- ANSI-41 IEs
+ ansi-41-RAND-Information ANSI-41-RAND-Information,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType13-2 ::= SEQUENCE {
+ -- ANSI-41 IEs
+ ansi-41-UserZoneID-Information ANSI-41-UserZoneID-Information,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType13-3 ::= SEQUENCE {
+ -- ANSI-41 IEs
+ ansi-41-PrivateNeighbourListInfo ANSI-41-PrivateNeighbourListInfo,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType13-4 ::= SEQUENCE {
+ -- ANSI-41 IEs
+ ansi-41-GlobalServiceRedirectInfo
+ ANSI-41-GlobalServiceRedirectInfo,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType14 ::= SEQUENCE {
+ -- Physical channel IEs
+ individualTS-InterferenceList IndividualTS-InterferenceList,
+ expirationTimeFactor ExpirationTimeFactor OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType15 ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GPS-CipherParameters UE-Positioning-CipherParameters OPTIONAL,
+ ue-positioning-GPS-ReferenceLocation ReferenceLocation,
+ ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime,
+ ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType15-v4b0ext SysInfoType15-v4b0ext-IEs,
+ -- Extension mechanism for non- release4 information
+ v770NonCriticalExtensions SEQUENCE {
+ sysInfoType15-v770ext SysInfoType15-v770ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ sysInfoType15-va40ext SysInfoType15-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-v4b0ext-IEs ::= SEQUENCE {
+ up-Ipdl-Parameters-TDD UE-Positioning-IPDL-Parameters-TDD-r4-ext OPTIONAL
+}
+
+SysInfoType15-v770ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-Positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-v770ext
+}
+
+SysInfoType15-va40ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-Positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-va40ext
+}
+
+SysInfoType15bis ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-ReferencePosition ReferenceLocationGANSS,
+ ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime,
+ ue-positioning-GANSS-IonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL,
+ -- Extension mechanism for non-release99 information
+ v860NonCriticalExtensions SEQUENCE {
+ sysInfoType15bis-v860ext SysInfoType15bis-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ sysInfoType15bis-va40ext SysInfoType15bis-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15bis-v860ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-Positioning-GANSS-AddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL,
+ ue-Positioning-GANSS-EarthOrientationPara
+ UE-Positioning-GANSS-EarthOrientPara OPTIONAL
+}
+
+SysInfoType15bis-va40ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-va40ext
+}
+
+SysInfoType15-1 ::= SEQUENCE {
+ -- DGPS corrections
+ ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections,
+ -- Extension mechanism for non- release99 information
+ v920NonCriticalExtensions SEQUENCE {
+ sysInfoType15-1-v920ext SysInfoType15-1-v920ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-1-v920ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-v920ext
+}
+
+SysInfoType15-1bis ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-DGANSS-Corrections UE-Positioning-DGANSSCorrections,
+ -- Extension mechanism for non-release99 information
+ v920NonCriticalExtensions SEQUENCE {
+ sysInfoType15-1bis-v920ext SysInfoType15-1bis-v920ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-1bis-v920ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-DGANSS-Corrections UE-Positioning-DGANSSCorrections-v920ext
+}
+
+SysInfoType15-1ter ::= SEQUENCE {
+ -- Measurement IEs
+ uePositioning-BDSCorrections UE-Positioning-DBDSCorrections OPTIONAL,
+ uePositioningBDSIonoGridModel UE-Positioning-BDS-IonoGridModel OPTIONAL,
+ -- Extension mechanism for non-release12 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType15-2 ::= SEQUENCE {
+ -- Ephemeris and clock corrections
+ transmissionTOW GPS-TOW-1sec,
+ satID SatID,
+ ephemerisParameter EphemerisParameter,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType15-2bis ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-navigationModel UE-Positioning-GANSS-NavigationModel,
+ -- Extension mechanism for non-release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType15-2ter ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-AddNavigationModels UE-Positioning-GANSS-AddNavigationModels,
+ -- Extension mechanism for non-release99 information
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType15-2ter-vc50ext SysInfoType15-2ter-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-2ter-vc50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-AddNavigationModels UE-Positioning-GANSS-AddNavigationModels-vc50ext OPTIONAL
+}
+
+SysInfoType15-3 ::= SEQUENCE {
+ -- Almanac and other data
+ transmissionTOW GPS-TOW-1sec,
+ ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac OPTIONAL,
+ ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL,
+ ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL,
+ satMask BIT STRING (SIZE (1..32)) OPTIONAL,
+ lsbTOW BIT STRING (SIZE (8)) OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ va40NonCriticalExtensions SEQUENCE {
+ sysInfoType15-3-va40ext SysInfoType15-3-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-3-va40ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac-va40ext OPTIONAL
+}
+
+SysInfoType15-3bis ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac OPTIONAL,
+ ue-positioning-GANSS-TimeModels UE-Positioning-GANSS-TimeModels OPTIONAL,
+ ue-positioning-GANSS-UTC-Model UE-Positioning-GANSS-UTCModel OPTIONAL,
+ -- Extension mechanism for non-release99 information
+ v860NonCriticalExtensions SEQUENCE {
+ sysInfoType15-3bis-v860ext SysInfoType15-3bis-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ sysInfoType15-3bis-va40ext SysInfoType15-3bis-va40ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType15-3bis-vc50ext SysInfoType15-3bis-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-3bis-v860ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-Positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac-v860ext OPTIONAL,
+ ue-Positioning-GANSS-AddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL,
+ ue-Positioning-GANSS-AuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL
+}
+
+SysInfoType15-3bis-va40ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-Positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac-va40ext OPTIONAL,
+ ue-positioning-GANSS-TimeModels UE-Positioning-GANSS-TimeModels-va40ext OPTIONAL
+}
+
+SysInfoType15-3bis-vc50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ue-Positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac-vc50ext OPTIONAL,
+ ue-Positioning-GANSS-AddUTCModels UE-Positioning-GANSS-AddUTCModels-vc50ext OPTIONAL
+}
+
+SysInfoType15-4 ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-OTDOA-CipherParameters UE-Positioning-CipherParameters OPTIONAL,
+ ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData,
+ v3a0NonCriticalExtensions SEQUENCE {
+ sysInfoType15-4-v3a0ext SysInfoType15-4-v3a0ext,
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType15-4-v4b0ext SysInfoType15-4-v4b0ext,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-4-v3a0ext ::= SEQUENCE {
+ sfn-Offset-Validity SFN-Offset-Validity OPTIONAL
+}
+
+SysInfoType15-4-v4b0ext ::= SEQUENCE {
+ ue-Positioning-OTDOA-AssistanceData-r4ext UE-Positioning-OTDOA-AssistanceData-r4ext OPTIONAL
+}
+
+SysInfoType15-5 ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-OTDOA-AssistanceData-UEB UE-Positioning-OTDOA-AssistanceData-UEB,
+ v3a0NonCriticalExtensions SEQUENCE {
+ sysInfoType15-5-v3a0ext SysInfoType15-5-v3a0ext,
+ -- Extension mechanism for non- release99 information
+ v770NonCriticalExtensions SEQUENCE {
+ sysInfoType15-5-v770ext SysInfoType15-5-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-5-v3a0ext ::= SEQUENCE {
+ sfn-Offset-Validity SFN-Offset-Validity OPTIONAL
+}
+
+SysInfoType15-5-v770ext-IEs ::= SEQUENCE {
+ ue-Positioning-OTDOA-AssistanceData-UEB-ext
+ UE-Positioning-OTDOA-AssistanceData-UEB-ext OPTIONAL
+}
+
+SysInfoType15-6 ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-TOD INTEGER (0..86399),
+ ue-positioning-GANSS-ReferenceMeasurementInformation
+ UE-Positioning-GANSS-ReferenceMeasurementInfo,
+ -- Extension mechanism for non-release99 information
+ va40NonCriticalExtensions SEQUENCE {
+ sysInfoType15-6-va40ext SysInfoType15-6-va40ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType15-6-vc50ext SysInfoType15-6-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType15-6-va40ext-IEs ::= SEQUENCE {
+ ue-positioning-GANSS-ReferenceMeasurementInformation
+ UE-Positioning-GANSS-ReferenceMeasurementInfo-va40ext
+}
+
+SysInfoType15-6-vc50ext-IEs ::= SEQUENCE {
+ ue-positioning-GANSS-ReferenceMeasurementInformation
+ UE-Positioning-GANSS-ReferenceMeasurementInfo-vc50ext
+}
+
+SysInfoType15-7 ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-DataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance,
+ -- Extension mechanism for non-release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType15-8 ::= SEQUENCE {
+ -- Measurement IEs
+ ue-positioning-GANSS-DataCipheringInfo UE-Positioning-CipherParameters OPTIONAL,
+ ue-positioning-GANSS-realTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL,
+ -- Extension mechanism for non-release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType16 ::= SEQUENCE {
+ -- Radio bearer IEs
+ preDefinedRadioConfiguration PreDefRadioConfiguration,
+ -- Extension mechanism for non- release99 information
+ v770NonCriticalExtensions SEQUENCE {
+ sysInfoType16-v770ext SysInfoType16-v770ext-IEs,
+ v920NonCriticalExtensions SEQUENCE {
+ sysInfoType16-v920ext SysInfoType16-v920ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType16-v770ext-IEs ::= SEQUENCE {
+ preDefinedRadioConfiguration PreDefRadioConfiguration-v770ext
+}
+
+SysInfoType16-v920ext-IEs ::= SEQUENCE {
+ preDefinedRadioConfiguration PreDefRadioConfiguration-v920ext
+}
+
+SysInfoType17 ::= SEQUENCE {
+ -- Physical channel IEs
+ -- If PDSCH/PUSCH is configured for 1.28Mcps or 7.68Mcps TDD, pusch-SysInfoList and
+ -- pdsch-SysInfoList should be absent and the info included in the respective
+ -- tdd128SpecificInfo or tdd768SpecificInfo instead.
+ -- If PDSCH/PUSCH is configured for 3.84Mcps TDD in R5, HCR-r5-SpecificInfo should also be
+ -- included.
+ pusch-SysInfoList PUSCH-SysInfoList OPTIONAL,
+ pdsch-SysInfoList PDSCH-SysInfoList OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ v4b0NonCriticalExtensions SEQUENCE {
+ sysInfoType17-v4b0ext SysInfoType17-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ sysInfoType17-v590ext SysInfoType17-v590ext-IEs OPTIONAL,
+ v770NonCriticalExtensions SEQUENCE {
+ sysInfoType17-v770ext SysInfoType17-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType17-v4b0ext-IEs ::= SEQUENCE {
+ tdd128SpecificInfo SEQUENCE {
+ pusch-SysInfoList PUSCH-SysInfoList-LCR-r4 OPTIONAL,
+ pdsch-SysInfoList PDSCH-SysInfoList-LCR-r4 OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType17-v590ext-IEs ::= SEQUENCE {
+ hcr-r5-SpecificInfo SEQUENCE {
+ pusch-SysInfoList PUSCH-SysInfoList-HCR-r5 OPTIONAL,
+ pdsch-SysInfoList PDSCH-SysInfoList-HCR-r5 OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType17-v770ext-IEs ::= SEQUENCE {
+ tdd768SpecificInfo SEQUENCE {
+ pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-VHCR OPTIONAL,
+ pdsch-SysInfoList-SFN PDSCH-SysInfoList-VHCR-r7 OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType18 ::= SEQUENCE {
+ idleModePLMNIdentities PLMNIdentitiesOfNeighbourCells OPTIONAL,
+ connectedModePLMNIdentities PLMNIdentitiesOfNeighbourCells OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ v6b0NonCriticalExtensions SEQUENCE {
+ sysInfoType18-v6b0ext SysInfoType18-v6b0ext,
+ v860NonCriticalExtensions SEQUENCE {
+ sysInfoType18-v860ext SysInfoType18-v860ext,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType18-vc50ext SysInfoType18-vc50ext,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType18-v6b0ext ::= SEQUENCE {
+ idleModePLMNIdentitiesSIB11bis PLMNIdentitiesOfNeighbourCells OPTIONAL,
+ connectedModePLMNIdentitiesSIB11bis PLMNIdentitiesOfNeighbourCells OPTIONAL
+}
+
+SysInfoType18-v860ext ::= SEQUENCE {
+ idleModePLMNIdentities PLMNIdentitiesOfNeighbourCells-v860ext OPTIONAL,
+ connectedModePLMNIdentities PLMNIdentitiesOfNeighbourCells-v860ext OPTIONAL
+}
+
+SysInfoType18-vc50ext ::= SEQUENCE {
+ idleModePLMNIdentitiesSIB11ter PLMNIdentitiesOfNeighbourCells-vc50ext OPTIONAL,
+ connectedModePLMNIdentitiesSIB11ter PLMNIdentitiesOfNeighbourCells-vc50ext OPTIONAL
+}
+
+SysInfoType19 ::= SEQUENCE {
+ -- Measurement IEs
+ utra-PriorityInfoList UTRA-PriorityInfoList,
+ gsm-PriorityInfoList GSM-PriorityInfoList OPTIONAL,
+ eutra-FrequencyAndPriorityInfoList EUTRA-FrequencyAndPriorityInfoList OPTIONAL,
+ -- Extension mechanism for non-release8 information
+ v920NonCriticalExtensions SEQUENCE {
+ sysInfoType19-v920ext SysInfoType19-v920ext,
+ va80NonCriticalExtensions SEQUENCE {
+ sysInfoType19-va80ext SysInfoType19-va80ext,
+ vb30NonCriticalExtensions SEQUENCE {
+ sysInfoType19-vb30ext SysInfoType19-vb30ext,
+ vb50NonCriticalExtensions SEQUENCE {
+ sysInfoType19-vb50ext SysInfoType19-vb50ext,
+ vb80NonCriticalExtensions SEQUENCE {
+ sysInfoType19-vb80ext SysInfoType19-vb80ext,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType19-vc50ext SysInfoType19-vc50ext,
+ vdxyNonCriticalExtensions SEQUENCE {
+ sysInfoType19-vdxyext SysInfoType19-vdxyext,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType19-v920ext ::= SEQUENCE {
+ utra-PriorityInfoList-v920ext UTRA-PriorityInfoList-v920ext,
+ eutra-FrequencyAndPriorityInfoList-v920ext EUTRA-FrequencyAndPriorityInfoList-v920ext
+}
+
+SysInfoType19-va80ext ::= SEQUENCE {
+ multipleEutraFrequencyInfoList MultipleEUTRAFrequencyInfoList OPTIONAL
+}
+
+SysInfoType19-vb30ext ::= SEQUENCE {
+ cell-fach-meas-ind ENUMERATED { high-priority-layers, all-layers } OPTIONAL
+}
+
+SysInfoType19-vb50ext ::= SEQUENCE {
+ gsmTreselectionScalingFactor TreselectionScalingFactor2 OPTIONAL,
+ eutraTreselectionScalingFactor TreselectionScalingFactor2 OPTIONAL,
+ numberOfApplicableEARFCN INTEGER (0..7) OPTIONAL,
+ eutra-FrequencyAndPriorityInfoList-vb50ext EUTRA-FrequencyAndPriorityInfoList-vb50ext OPTIONAL,
+ eutra-FrequencyAndPriorityInfoExtensionList EUTRA-FrequencyAndPriorityInfoExtensionList OPTIONAL,
+ multipleEutraFrequencyInfoExtensionList MultipleEUTRAFrequencyInfoExtensionList OPTIONAL,
+ -- Measurement IEs
+ eutra-FrequencyRACHReportingInfo EUTRA-FrequencyRACHReportingInfo OPTIONAL
+}
+
+SysInfoType19-vb80ext ::= SEQUENCE {
+ eutra-FrequencyAndPriorityInfoExtensionList-vb80ext EUTRA-FrequencyAndPriorityInfoExtensionList-vb80ext OPTIONAL
+}
+
+SysInfoType19-vc50ext ::= SEQUENCE {
+ eutra-FrequencyRACHReportingInfo-vc50ext EUTRA-FrequencyRACHReportingInfo-vc50ext OPTIONAL,
+ eutra-FrequencyAndPriorityInfoList-vc50ext EUTRA-FrequencyAndPriorityInfoList-vc50ext OPTIONAL,
+ eutra-FrequencyAndPriorityInfoExtensionList-vc50ext
+ EUTRA-FrequencyAndPriorityInfoExtensionList-vc50ext OPTIONAL
+}
+
+SysInfoType19-vdxyext ::= SEQUENCE {
+ eutra-FrequencyAndPriorityInfoList-vdxyext EUTRA-FrequencyAndPriorityInfoList-vdxyext OPTIONAL,
+ eutra-FrequencyAndPriorityInfoExtensionList-vdxyext
+ EUTRA-FrequencyAndPriorityInfoExtensionList-vdxyext OPTIONAL
+}
+
+SysInfoType20 ::= SEQUENCE {
+ hNBName HNBName OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType21 ::= SEQUENCE {
+ eab-Parameters EAB-Parameters OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType22 ::= SEQUENCE {
+-- In the Tabular there are separate definitions for prach-PreambleForEnhancedUplinkListType1Ext
+-- and prach-PreambleForEnhancedUplinkListType2Ext/prach-PreambleForEnhancedUplinkListType3Ext even
+-- though the contents are the same. The only difference is in how the IE "Weight" is used in
+-- calculating the weight for each signalled PRACH Control Parameters.
+-- To simplify the ASN.1, a single definition is used here for all three cases.
+ prach-PreambleForEnhancedUplinkListType1Ext
+ PRACH-PreambleForEnhancedUplinkExtList OPTIONAL,
+ prach-PreambleForEnhancedUplinkListType2Ext
+ PRACH-PreambleForEnhancedUplinkExtList OPTIONAL,
+ prach-PreambleForEnhancedUplinkListType3Ext
+ PRACH-PreambleForEnhancedUplinkExtList OPTIONAL,
+ concurrent-Deployment-2ms-10ms-TTI Concurrent-Deployment-2ms-10ms-TTI OPTIONAL,
+ nodeB-Trigger-HS-DPCCH-Transmission NodeB-Trigger-HS-DPCCH-Transmission OPTIONAL,
+ fallback-R99-PRACH-info Fallback-R99-PRACH-info-IEs OPTIONAL,
+ commonEDCHResourceConfigInfoListExt CommonEDCHResourceConfigInfoListExt OPTIONAL,
+ hs-dsch-DrxCellfach-SecondDrx-info HS-DSCH-DrxCellfach-SecondDrx-info OPTIONAL,
+ -- Extension mechanism for non- release11 information
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoType22-vc50ext SysInfoType22-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoType22-vc50ext-IEs ::= SEQUENCE {
+ cell-Reselection-indication-reporting ENUMERATED { true } OPTIONAL
+}
+
+SysInfoType23 ::= SEQUENCE {
+ wlanRepresentation CHOICE {
+ wlanOffloadInformationPerPLMN-List WLANOffloadInformationPerPLMN-List,
+ wlanOffloadInformationForAll WLANOffloadInformation
+ },
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType24 ::= SEQUENCE {
+ dtchTransmissionBlocked BIT STRING (SIZE (maxNumAccessGroups)) OPTIONAL,
+ expirationTimeFactor ExpirationTimeFactor2 OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoType25 ::= SEQUENCE {
+ acdc-Parameters ACDC-Parameters,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+SysInfoTypeSB1 ::= SEQUENCE {
+ -- Other IEs
+ sib-ReferenceList SIB-ReferenceList,
+ -- Extension mechanism for non- release99 information
+ v6b0NonCriticalExtensions SEQUENCE {
+ sysInfoTypeSB1-v6b0ext SysInfoTypeSB1-v6b0ext,
+ v860NonCriticalExtensions SEQUENCE {
+ sysInfoTypeSB1-v860ext SysInfoTypeSB1-v860ext,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoTypeSB1-vc50ext SysInfoTypeSB1-vc50ext,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoTypeSB1-v6b0ext ::= SEQUENCE {
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List OPTIONAL
+}
+
+SysInfoTypeSB1-v860ext ::= SEQUENCE {
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List2 OPTIONAL,
+ extGANSS-SIBTypeInfoSchedulingInfoList
+ ExtGANSS-SIBTypeInfoSchedulingInfoList OPTIONAL
+}
+
+SysInfoTypeSB1-vc50ext ::= SEQUENCE {
+ sib-ReferenceList SIBSb-ReferenceList2 OPTIONAL,
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List3 OPTIONAL
+}
+
+SysInfoTypeSB2 ::= SEQUENCE {
+ -- Other IEs
+ sib-ReferenceList SIB-ReferenceList,
+ -- Extension mechanism for non- release99 information
+ v6b0NonCriticalExtensions SEQUENCE {
+ sysInfoTypeSB2-v6b0ext SysInfoTypeSB2-v6b0ext,
+ v860NonCriticalExtensions SEQUENCE {
+ sysInfoTypeSB2-v860ext SysInfoTypeSB2-v860ext,
+ vc50NonCriticalExtensions SEQUENCE {
+ sysInfoTypeSB2-vc50ext SysInfoTypeSB2-vc50ext,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SysInfoTypeSB2-v6b0ext ::= SEQUENCE {
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List OPTIONAL
+}
+
+SysInfoTypeSB2-v860ext ::= SEQUENCE {
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List2 OPTIONAL,
+ extGANSS-SIBTypeInfoSchedulingInfoList
+ ExtGANSS-SIBTypeInfoSchedulingInfoList OPTIONAL
+}
+
+SysInfoTypeSB2-vc50ext ::= SEQUENCE {
+ sib-ReferenceList SIBSb-ReferenceList2 OPTIONAL,
+ extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List3 OPTIONAL
+}
+
+
+SysInfoTypeSB3 ::= SEQUENCE {
+ -- Other IEs
+ sb3-ValueTag CellValueTag2,
+ sib-ReferenceList SIB-ReferenceList2,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+TDD-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF
+ FrequencyInfoTDD
+
+TxFailParams ::= SEQUENCE {
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ connEstFailCount ENUMERATED {n1, n2, n3, n4},
+ offsetValidity ENUMERATED {s30, s60, s120, s240,
+ s300, s420, s600, s900},
+ connEstFailTempQoffset INTEGER (0..15) OPTIONAL
+ },
+ tdd NULL
+ }
+}
+
+UE-HistoryInformation ::= SEQUENCE {
+ ue-InactivityPeriod INTEGER (1..120),
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ ul-dataVolumeHistory DataVolumeHistory OPTIONAL,
+ dl-dataVolumeHistory DataVolumeHistory OPTIONAL
+}
+
+-- For systemInformationBlockType11bis the Value Tag Info "CellValueTag" is used
+ValueTagInfo ::= CHOICE {
+ none NULL,
+ cellValueTag CellValueTag,
+ plmn-ValueTag PLMN-ValueTag,
+ sIBOccurrenceIdentityAndValueTag SIBOccurrenceIdentityAndValueTag
+}
+
+ValueTagInfoExtValueTag ::= CHOICE {
+ cellValueTag CellValueTag2
+}
+
+-- ***************************************************
+--
+-- ANSI-41 INFORMATION ELEMENTS (10.3.9)
+--
+-- ***************************************************
+
+ANSI-41-GlobalServiceRedirectInfo ::= ANSI-41-NAS-Parameter
+ANSI-41-PrivateNeighbourListInfo ::= ANSI-41-NAS-Parameter
+ANSI-41-RAND-Information ::= ANSI-41-NAS-Parameter
+ANSI-41-UserZoneID-Information ::= ANSI-41-NAS-Parameter
+ANSI-41-NAS-Parameter ::= BIT STRING (SIZE (1..2048))
+
+Min-P-REV ::= BIT STRING (SIZE (8))
+
+NAS-SystemInformationANSI-41 ::= ANSI-41-NAS-Parameter
+NID ::= BIT STRING (SIZE (16))
+
+P-REV ::= BIT STRING (SIZE (8))
+
+SID ::= BIT STRING (SIZE (15))
+
+-- ***************************************************
+--
+-- MBMS INFORMATION ELEMENTS (10.3.9a)
+--
+-- ***************************************************
+
+MBMS-AccessProbabilityFactor ::= ENUMERATED {
+ apf0, apf32, apf64, apf96, apf128, apf160, apf192,
+ apf224, apf256, apf288, apf320, apf352, apf384, apf416,
+ apf448, apf480, apf512, apf544, apf576, apf608, apf640,
+ apf672, apf704, apf736, apf768, apf800, apf832, apf864,
+ apf896, apf928, apf960, apf1000 }
+
+MBMS-CellGroupIdentity-r6 ::= BIT STRING (SIZE (12))
+
+MBMS-CommonCCTrChIdentity ::= INTEGER (1..32)
+
+MBMS-CommonPhyChIdentity ::= INTEGER (1..32)
+
+MBMS-CommonRBIdentity ::= INTEGER (1..32)
+
+MBMS-CommonRBInformation-r6 ::= SEQUENCE {
+ commonRBIdentity MBMS-CommonRBIdentity,
+ pdcp-Info PDCP-Info-r4,
+ rlc-Info RLC-Info-MTCH-r6
+}
+
+MBMS-CommonRBInformationList-r6 ::= SEQUENCE (SIZE (1..maxMBMS-CommonRB)) OF
+ MBMS-CommonRBInformation-r6
+
+MBMS-CommonTrChIdentity ::= INTEGER (1..32)
+
+MBMS-ConnectedModeCountingScope ::= SEQUENCE {
+ countingForUraPCH BOOLEAN,
+ countingForCellPCH BOOLEAN,
+ countingForCellFACH BOOLEAN
+}
+
+MBMS-CurrentCell-SCCPCH-r6 ::= SEQUENCE {
+ sccpchIdentity MBMS-SCCPCHIdentity OPTIONAL,
+ secondaryCCPCH-Info MBMS-CommonPhyChIdentity,
+ softComb-TimingOffset MBMS-SoftComb-TimingOffset OPTIONAL,
+ -- If the IE transpCh-InfoCommonForAllTrCh is absent, the default TFCS as specified
+ -- in 14.10.1 applies
+ transpCh-InfoCommonForAllTrCh MBMS-CommonCCTrChIdentity OPTIONAL,
+ transpCHInformation MBMS-TrCHInformation-CurrList
+}
+
+MBMS-CurrentCell-SCCPCHList-r6 ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ MBMS-CurrentCell-SCCPCH-r6
+
+MBMS-FACHCarryingMTCH-List ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF
+ TransportFormatSet
+
+MBMS-JoinedInformation-r6 ::= SEQUENCE {
+ p-TMSI P-TMSI-GSM-MAP OPTIONAL
+}
+
+MBMS-L1CombiningSchedule-32 ::= SEQUENCE {
+ -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4
+ cycleOffset INTEGER (0..7) OPTIONAL,
+ mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE {
+ periodStart INTEGER (0..7),
+ periodDuration INTEGER (1..8)
+ }
+}
+
+MBMS-L1CombiningSchedule-64 ::= SEQUENCE {
+ -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4
+ cycleOffset INTEGER (0..15) OPTIONAL,
+ mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE {
+ periodStart INTEGER (0..15),
+ periodDuration INTEGER (1..16)
+ }
+}
+
+MBMS-L1CombiningSchedule-128 ::= SEQUENCE {
+ -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4
+ cycleOffset INTEGER (0..31) OPTIONAL,
+ mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE {
+ periodStart INTEGER (0..31),
+ periodDuration INTEGER (1..32)
+ }
+}
+
+MBMS-L1CombiningSchedule-256 ::= SEQUENCE {
+ -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4
+ cycleOffset INTEGER (0..63) OPTIONAL,
+ mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE {
+ periodStart INTEGER (0..63),
+ periodDuration INTEGER (1..64)
+ }
+}
+
+MBMS-L1CombiningSchedule-512 ::= SEQUENCE {
+ -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4
+ cycleOffset INTEGER (0..127) OPTIONAL,
+ mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE {
+ periodStart INTEGER (0..127),
+ periodDuration INTEGER (1..128)
+ }
+}
+
+MBMS-L1CombiningSchedule-1024 ::= SEQUENCE {
+ -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4
+ cycleOffset INTEGER (0..255) OPTIONAL,
+ mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE {
+ periodStart INTEGER (0..255),
+ periodDuration INTEGER (1..256)
+ }
+}
+
+MBMS-L1CombiningSchedule ::= CHOICE {
+ cycleLength-32 MBMS-L1CombiningSchedule-32,
+ cycleLength-64 MBMS-L1CombiningSchedule-64,
+ cycleLength-128 MBMS-L1CombiningSchedule-128,
+ cycleLength-256 MBMS-L1CombiningSchedule-256,
+ cycleLength-512 MBMS-L1CombiningSchedule-512,
+ cycleLength-1024 MBMS-L1CombiningSchedule-1024
+}
+
+MBMS-L1CombiningTransmTimeDiff ::= INTEGER (0..3)
+
+MBMS-L23Configuration ::= CHOICE {
+ sameAsCurrent SEQUENCE {
+ currentCell-SCCPCH MBMS-SCCPCHIdentity,
+ msch-ConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL
+ },
+ different SEQUENCE {
+ -- If the IE transpCh-InfoCommonForAllTrCh is absent, the default TFCS as specified
+ -- in 14.10.1 applies
+ transpCh-InfoCommonForAllTrCh MBMS-CommonCCTrChIdentity OPTIONAL,
+ transpCHInformation MBMS-TrCHInformation-NeighbList
+ }
+}
+
+MBMS-LogicalChIdentity ::= INTEGER (1..15)
+
+MBMS-MCCH-ConfigurationInfo-r6 ::= SEQUENCE {
+ accessInfoPeriodCoefficient INTEGER (0..3),
+ repetitionPeriodCoefficient INTEGER (0..3),
+ modificationPeriodCoefficient INTEGER (7..10),
+ rlc-Info RLC-Info-MCCH-r6,
+ tctf-Presence MBMS-TCTF-Presence OPTIONAL
+}
+
+MBMS-MICHConfigurationInfo-r6 ::= SEQUENCE {
+ michPowerOffset MBMS-MICHPowerOffset,
+ mode CHOICE {
+ fdd SEQUENCE {
+ channelisationCode256 ChannelisationCode256,
+ ni-CountPerFrame MBMS-NI-CountPerFrame,
+ sttd-Indicator BOOLEAN
+ },
+ -- The CHOICE tdd384 is used for both tdd384 and tdd768. If IE
+ -- 'MBMS-MICHConfigurationInfo-v770ext' is not present, tdd384 applies.
+ tdd384 SEQUENCE {
+ timeslot TimeslotNumber,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ channelisationCode DL-TS-ChannelisationCode,
+ repetitionPeriodLengthOffset RepPerLengthOffset-MICH OPTIONAL,
+ mbmsNotificationIndLength MBMS-MICHNotificationIndLength DEFAULT mn4
+ },
+ tdd128 SEQUENCE {
+ timeslot TimeslotNumber-LCR-r4,
+ midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4,
+ channelisationCodeList SEQUENCE (SIZE (1..2)) OF
+ DL-TS-ChannelisationCode,
+ repetitionPeriodLengthOffset RepPerLengthOffset-MICH OPTIONAL,
+ mbmsNotificationIndLength MBMS-MICHNotificationIndLength DEFAULT mn4
+ }
+ }
+}
+
+MBMS-MICHConfigurationInfo-v770ext ::= SEQUENCE {
+ mode CHOICE {
+ -- For tdd384, IE 'MidambleShiftAndBurstType-r7' replaces IE 'MidambleShiftAndBurstType'
+ -- in IE 'MBMS-MICHConfigurationInfo-r6'. IE 'MidambleShiftAndBurstType' shall be ignored.
+ tdd384 SEQUENCE {
+ midambleShiftAndBurstType MidambleShiftAndBurstType-r7
+ },
+ -- For tdd768, the CHIOCE tdd384 in IE 'MBMS-MICHConfigurationInfo-r6' applies, except
+ -- that IE 'MidambleShiftAndBurstType-VHCR' replaces IE 'MidambleShiftAndBurstType'. IE
+ -- 'MidambleShiftAndBurstType' shall be ignored.
+ tdd768 SEQUENCE {
+ midambleShiftAndBurstType MidambleShiftAndBurstType-VHCR
+ },
+ tdd128 SEQUENCE {
+ mbsfnSpecialTimeSlot TimeSlotLCR-ext OPTIONAL
+ }
+ }
+}
+
+MBMS-MICHConfigurationInfo-v890ext ::= SEQUENCE {
+ mode CHOICE {
+ imb384 SEQUENCE {
+ channelisationCode256 ChannelisationCode256,
+ ni-CountPerFrame MBMS-NI-CountPerFrame-IMB384
+ }
+ }
+}
+
+MBMS-MICHNotificationIndLength ::= ENUMERATED { mn4, mn8, mn16 }
+
+MBMS-MICHPowerOffset ::= INTEGER (-10..5)
+
+MBMS-ModifedService-r6 ::= SEQUENCE {
+ mbms-TransmissionIdentity MBMS-TransmissionIdentity,
+ mbms-RequiredUEAction MBMS-RequiredUEAction-Mod,
+ mbms-PreferredFrequency CHOICE {
+ mcch MBMS-PFLIndex,
+ dcch MBMS-PFLInfo
+ } OPTIONAL,
+ --dummy is not used. If received it shall be ignored.
+ dummy ENUMERATED { true } OPTIONAL,
+ continueMCCHReading BOOLEAN
+}
+
+MBMS-ModifedServiceList-r6 ::= SEQUENCE (SIZE (1..maxMBMSservModif)) OF
+ MBMS-ModifedService-r6
+
+MBMS-ModifiedService-v770ext ::= SEQUENCE {
+ mbsfnClusterFrequency MBSFN-ClusterFrequency-r7 OPTIONAL
+}
+
+MBMS-ModifiedService-LCR-v7c0ext ::= SEQUENCE {
+ rbReleaseCause MBMS-PTM-RBReleaseCause-LCR-r7 OPTIONAL
+}
+
+-- IE 'MBMS-ModifiedServiceList-v770ext' contains a list of extension data
+-- associated with the MBMS transmission identities at the corresponding
+-- positions in IE 'MBMS-ModifedServiceList-r6'
+MBMS-ModifiedServiceList-v770ext ::= SEQUENCE (SIZE (1..maxMBMSservModif)) OF
+ MBMS-ModifiedService-v770ext
+
+-- IE 'MBMS-ModifiedServiceList-LCR-v7c0ext' contains a list of extension data
+-- associated with the MBMS transmission identities at the corresponding
+-- positions in IE 'MBMS-ModifedServiceList-r6'
+MBMS-ModifiedServiceList-LCR-v7c0ext ::= SEQUENCE (SIZE (1..maxMBMSservModif)) OF
+ MBMS-ModifiedService-LCR-v7c0ext
+
+MBMS-MSCH-ConfigurationInfo-r6 ::= SEQUENCE {
+ mschShedulingInfo MBMS-MSCHSchedulingInfo OPTIONAL,
+ rlc-Info RLC-Info-MSCH-r6 OPTIONAL,
+ tctf-Presence MBMS-TCTF-Presence OPTIONAL
+}
+
+MBMS-MSCHSchedulingInfo ::= CHOICE {
+ schedulingPeriod-32-Offset INTEGER (0..31),
+ schedulingPeriod-64-Offset INTEGER (0..63),
+ schedulingPeriod-128-Offset INTEGER (0..127),
+ schedulingPeriod-256-Offset INTEGER (0..255),
+ schedulingPeriod-512-Offset INTEGER (0..511),
+ schedulingPeriod-1024-Offset INTEGER (0..1023)
+}
+
+MBMS-NeighbouringCellSCCPCH-r6 ::= SEQUENCE {
+ secondaryCCPCH-Info MBMS-CommonPhyChIdentity,
+ secondaryCCPCHPwrOffsetDiff MBMS-SCCPCHPwrOffsetDiff OPTIONAL,
+ layer1Combining CHOICE {
+ fdd SEQUENCE {
+ softComb-TimingOffset MBMS-SoftComb-TimingOffset,
+ mbms-L1CombiningTransmTimeDiff MBMS-L1CombiningTransmTimeDiff,
+ mbms-L1CombiningSchedule MBMS-L1CombiningSchedule OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ mbms-L23Configuration MBMS-L23Configuration
+}
+
+MBMS-NeighbouringCellSCCPCH-v770ext ::= SEQUENCE {
+ secondaryCCPCH-Info MBMS-CommonPhyChIdentity OPTIONAL,
+ secondaryCCPCH-InfoDiff SecondaryCCPCHInfoDiff-MBMS,
+ secondaryCCPCHPwrOffsetDiff MBMS-SCCPCHPwrOffsetDiff OPTIONAL,
+ layer1Combining CHOICE {
+ fdd SEQUENCE {
+ softComb-TimingOffset MBMS-SoftComb-TimingOffset,
+ mbms-L1CombiningTransmTimeDiff MBMS-L1CombiningTransmTimeDiff,
+ mbms-L1CombiningSchedule MBMS-L1CombiningSchedule OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ mbms-L23Configuration MBMS-L23Configuration
+}
+
+MBMS-NeighbouringCellSCCPCHList-r6 ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ MBMS-NeighbouringCellSCCPCH-r6
+
+-- IE "MBMS-NeighbouringCellSCCPCHList-v770ext" may be received as an extension of the IE
+-- "MBMS-NeighbouringCellSCCPCHList-r6". When both lists are received in the same message
+-- and the total number of list elements is greater than constant value 'maxSCCPCH', the
+-- UE behaviour is unspecified.
+MBMS-NeighbouringCellSCCPCHList-v770ext ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ MBMS-NeighbouringCellSCCPCH-v770ext
+
+MBMS-NetworkStandardTimeInformation-LCR-v890ext ::= SEQUENCE {
+ networkStandardTime BIT STRING (SIZE (40)),
+ correlativeSFN INTEGER (0..4095) OPTIONAL
+}
+
+MBMS-NI-CountPerFrame ::= ENUMERATED { ni18, ni36, ni72, ni144 }
+
+MBMS-NI-CountPerFrame-IMB384 ::= ENUMERATED { ni16, ni32, ni64, ni128 }
+
+MBMS-NumberOfNeighbourCells-r6 ::= INTEGER (0..32)
+
+MBMS-PFLIndex ::= INTEGER (1..maxMBMS-Freq)
+
+MBMS-PFLInfo ::= FrequencyInfo
+
+MBMS-PhyChInformation-IMB384 ::= SEQUENCE {
+ mbms-CommonPhyChIdentity MBMS-CommonPhyChIdentity,
+ secondaryCCPCHInfo-MBMS SecondaryCCPCHFrameType2Info
+}
+
+MBMS-PhyChInformationList-IMB384 ::= SEQUENCE (SIZE (1..maxMBMS-CommonPhyCh)) OF
+ MBMS-PhyChInformation-IMB384
+
+MBMS-PhyChInformation-r6 ::= SEQUENCE {
+ mbms-CommonPhyChIdentity MBMS-CommonPhyChIdentity,
+ secondaryCCPCHInfo-MBMS SecondaryCCPCHInfo-MBMS-r6
+}
+
+MBMS-PhyChInformation-r7 ::= SEQUENCE {
+ mbms-CommonPhyChIdentity MBMS-CommonPhyChIdentity,
+ secondaryCCPCHInfo-MBMS SecondaryCCPCHInfo-MBMS-r7
+}
+
+MBMS-PhyChInformationList-r6 ::= SEQUENCE (SIZE (1..maxMBMS-CommonPhyCh)) OF
+ MBMS-PhyChInformation-r6
+
+MBMS-PhyChInformationList-r7 ::= SEQUENCE (SIZE (1..maxMBMS-CommonPhyCh)) OF
+ MBMS-PhyChInformation-r7
+
+MBMS-PL-ServiceRestrictInfo-r6 ::= ENUMERATED { true }
+
+MBMS-PreferredFrequencyInfo-r6 ::= SEQUENCE {
+ mbmsPreferredFrequency INTEGER (1..maxMBMS-Freq) OPTIONAL,
+ layerConvergenceInformation CHOICE {
+ mbms-Qoffset MBMS-Qoffset,
+ mbms-HCSoffset INTEGER (0..7)
+ },
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+MBMS-PreferredFrequencyList-r6 ::= SEQUENCE (SIZE (1..maxMBMS-Freq)) OF
+ MBMS-PreferredFrequencyInfo-r6
+
+MBMS-PTMActivationTime-r6 ::= INTEGER (0..2047)
+
+MBMS-PTM-RBInformation-C ::= SEQUENCE {
+ rbInformation MBMS-CommonRBIdentity,
+ shortTransmissionID MBMS-ShortTransmissionID,
+ logicalChIdentity MBMS-LogicalChIdentity
+}
+
+MBMS-PTM-RBInformation-CList ::= SEQUENCE (SIZE (1..maxRBperTrCh)) OF
+ MBMS-PTM-RBInformation-C
+
+MBMS-PTM-RBInformation-N ::= SEQUENCE {
+ shortTransmissionID MBMS-ShortTransmissionID,
+ logicalChIdentity MBMS-LogicalChIdentity,
+ layer1-CombiningStatus BOOLEAN}
+
+MBMS-PTM-RBInformation-NList ::= SEQUENCE (SIZE (1..maxRBperTrCh)) OF
+ MBMS-PTM-RBInformation-N
+
+MBMS-PTM-RBReleaseCause-LCR-r7 ::= ENUMERATED {
+ normalRelease, outOfMBMSServiceCoverageInRAN,
+ networkAbnormalRelease,
+ spare5, spare4, spare3, spare2, spare1 }
+
+MBMS-Qoffset ::= ENUMERATED { q4, q8, q12, q16, q20, q30, q40, qInfinity }
+
+MBMS-RequiredUEAction-Mod ::= ENUMERATED {
+ none,
+ acquireCountingInfo,
+ acquireCountingInfoPTM-RBsUnmodified,
+ acquirePTM-RBInfo,
+ requestPTPRB,
+ releasePTM-RB }
+
+MBMS-RequiredUEAction-UMod ::= ENUMERATED {
+ none,
+ acquirePTM-RBInfo,
+ requestPTPRB }
+
+MBMS-SCCPCHIdentity ::= INTEGER (1..maxSCCPCH)
+
+MBMS-SCCPCHPwrOffsetDiff ::= ENUMERATED { mcpo-minus6, mcpo-minus3, mcpo-plus3, mcpo-plus6 }
+
+MBMS-SelectedServiceInfo ::= SEQUENCE {
+ status CHOICE {
+ none NULL,
+ some MBMS-SelectedServicesListFull
+ }
+}
+
+MBMS-SelectedServicesListFull ::= SEQUENCE (SIZE (1..maxMBMSservSelect)) OF
+ MBMS-ServiceIdentity-r6
+
+MBMS-SelectedServicesListShort ::= SEQUENCE (SIZE (1..maxMBMSservSelect)) OF
+ MBMS-ShortTransmissionID
+
+MBMS-SelectedServicesShort ::= SEQUENCE {
+ mbms-SelectedServicesList MBMS-SelectedServicesListShort,
+ modificationPeriodIdentity INTEGER (0..1)
+}
+
+MBMS-ServiceAccessInfo-r6 ::= SEQUENCE {
+ shortTransmissionID MBMS-ShortTransmissionID,
+ accessprobabilityFactor-Idle MBMS-AccessProbabilityFactor,
+ accessprobabilityFactor-Connected MBMS-AccessProbabilityFactor OPTIONAL,
+ mbms-ConnectedModeCountingScope MBMS-ConnectedModeCountingScope
+}
+
+MBMS-ServiceAccessInfoList-r6 ::= SEQUENCE (SIZE (1..maxMBMSservCount)) OF
+ MBMS-ServiceAccessInfo-r6
+
+MBMS-ServiceIdentity-r6 ::= SEQUENCE {
+ serviceIdentity OCTET STRING (SIZE (3)),
+ plmn-Identity CHOICE {
+ -- The 'sameAsMIB-PLMN-Id' choice refers to the 'PLMN Identity' (R99) in MIB.
+ sameAsMIB-PLMN-Id NULL,
+ other CHOICE {
+ -- The 'sameAsMIB-MultiPLMN-Id' choice refers to one of the (1..5) PLMN Identities
+ -- provided in the 'Multiple PLMN List' (REL-6) in MIB.
+ sameAsMIB-MultiPLMN-Id INTEGER (1..5),
+ explicitPLMN-Id PLMN-Identity
+ }
+ }
+}
+
+MBMS-ServiceSchedulingInfo-r6 ::= SEQUENCE {
+ mbms-TransmissionIdentity MBMS-TransmissionIdentity,
+ mbms-ServiceTransmInfoList MBMS-ServiceTransmInfoList OPTIONAL,
+ nextSchedulingperiod INTEGER (0..31)
+}
+
+MBMS-ServiceSchedulingInfoList-r6 ::= SEQUENCE (SIZE (1..maxMBMSservSched)) OF
+ MBMS-ServiceSchedulingInfo-r6
+
+MBMS-ServiceTransmInfo ::= SEQUENCE {
+ -- Actual values (start, duration) = IE values * 4
+ start INTEGER (0..255),
+ duration INTEGER (1..256)
+}
+
+MBMS-ServiceTransmInfoList ::= SEQUENCE (SIZE (1..maxMBMSTransmis)) OF
+ MBMS-ServiceTransmInfo
+
+MBMS-SessionIdentity ::= OCTET STRING (SIZE (1))
+
+MBMS-ShortTransmissionID ::= INTEGER (1..maxMBMSservUnmodif)
+
+MBMS-SIBType5-SCCPCH-r6 ::= SEQUENCE {
+ sccpchIdentity MBMS-SCCPCHIdentity,
+ transpCHInformation MBMS-TrCHInformation-SIB5List
+}
+
+MBMS-SIBType5-SCCPCHList-r6 ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF
+ MBMS-SIBType5-SCCPCH-r6
+
+MBMS-SoftComb-TimingOffset ::= ENUMERATED { ms0, ms10, ms20, ms40 }
+
+MBMS-TCTF-Presence ::= ENUMERATED { false }
+
+MBMS-TimersAndCounters-r6 ::= SEQUENCE {
+ t-318 T-318 DEFAULT ms1000
+}
+
+MBMS-TransmissionIdentity ::= SEQUENCE {
+ mbms-ServiceIdentity MBMS-ServiceIdentity-r6,
+ mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL
+}
+
+MBMS-TranspChInfoForCCTrCh-r6 ::= SEQUENCE {
+ commonCCTrChIdentity MBMS-CommonCCTrChIdentity,
+ transportFormatCombinationSet TFCS
+}
+
+
+MBMS-TranspChInfoForEachCCTrCh-r6 ::= SEQUENCE (SIZE (1..maxMBMS-CommonCCTrCh)) OF
+ MBMS-TranspChInfoForCCTrCh-r6
+
+MBMS-TranspChInfoForEachTrCh-r6 ::= SEQUENCE (SIZE (1..maxMBMS-CommonTrCh)) OF
+ MBMS-TranspChInfoForTrCh-r6
+
+MBMS-TranspChInfoForTrCh-r6 ::= SEQUENCE {
+ commonTrChIdentity MBMS-CommonTrChIdentity,
+ transportFormatSet TransportFormatSet
+}
+
+MBMS-TrCHInformation-Curr ::= SEQUENCE {
+ transpCh-Info MBMS-CommonTrChIdentity,
+ rbInformation MBMS-PTM-RBInformation-CList OPTIONAL,
+ msch-ConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL
+}
+
+MBMS-TrCHInformation-CurrList ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF
+ MBMS-TrCHInformation-Curr
+
+MBMS-TrCHInformation-Neighb ::= SEQUENCE {
+ transpCh-Info MBMS-CommonTrChIdentity,
+ transpCh-CombiningStatus BOOLEAN,
+ rbInformation MBMS-PTM-RBInformation-NList OPTIONAL,
+ msch-ConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL
+}
+
+MBMS-TrCHInformation-NeighbList ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF
+ MBMS-TrCHInformation-Neighb
+
+MBMS-TrCHInformation-SIB5 ::= SEQUENCE {
+ transpCh-Identity INTEGER (1..maxFACHPCH),
+ rbInformation MBMS-PTM-RBInformation-CList OPTIONAL,
+ msch-ConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL
+}
+
+MBMS-TrCHInformation-SIB5List ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF
+ MBMS-TrCHInformation-SIB5
+
+MBMS-UnmodifiedService-r6 ::= SEQUENCE {
+ mbms-TransmissionIdentity MBMS-TransmissionIdentity,
+ mbms-RequiredUEAction MBMS-RequiredUEAction-UMod,
+ mbms-PreferredFrequency MBMS-PFLIndex OPTIONAL
+}
+
+MBMS-UnmodifiedServiceList-r6 ::= SEQUENCE (SIZE (1..maxMBMSservUnmodif)) OF
+ MBMS-UnmodifiedService-r6
+
+MBMS-UnmodifiedService-v770ext ::= SEQUENCE {
+ mbsfnClusterFrequency MBSFN-ClusterFrequency-r7 OPTIONAL
+}
+
+-- IE 'MBMS-UnmodifiedServiceList-v770ext' contains a list of extension data
+-- associated with the MBMS transmission identities at the corresponding
+-- positions in IE 'MBMS-UnmodifiedServiceList-r6'
+MBMS-UnmodifiedServiceList-v770ext ::= SEQUENCE (SIZE (1..maxMBMSservUnmodif)) OF
+ MBMS-UnmodifiedService-v770ext
+
+MBSFN-ClusterFrequency-r7 ::= INTEGER (1..maxMBSFNClusters)
+
+MBSFNFrequency ::= SEQUENCE {
+ frequencyInfo FrequencyInfo,
+ -- IE "cellParameterID" is used only for MBSFN clusters operating in 1.28 Mcps TDD mode.
+ cellParametersID CellParametersID OPTIONAL
+}
+
+MBSFNFrequency-v860ext ::= SEQUENCE {
+ imb-Indication ENUMERATED { true } OPTIONAL
+}
+
+MBSFNFrequencyList ::= SEQUENCE (SIZE (0..maxMBSFNClusters)) OF
+ MBSFNFrequency
+
+-- List of extensions to the corresponding elements of IE "MBSFNFrequencyList"
+MBSFNFrequencyList-v860ext ::= SEQUENCE (SIZE (0..maxMBSFNClusters)) OF
+ MBSFNFrequency-v860ext
+
+MBSFNOnlyService ::= ENUMERATED {true}
+
+MBSFNservicesNotNotified-r7 ::= SEQUENCE {
+ notificationOfAllMBSFNServicesInTheBand
+ ENUMERATED { true } OPTIONAL
+}
+
+MBSFNInterFrequencyNeighbour-r7 ::= SEQUENCE {
+ mbsfnFrequency FrequencyInfo,
+ mbsfnServicesNotification CHOICE {
+ mbsfnServicesNotified NULL,
+ mbsfnServicesNotNotified MBSFNservicesNotNotified-r7
+ }
+}
+
+MBSFNInterFrequencyNeighbour-v860ext ::= SEQUENCE {
+ imb-Indication ENUMERATED { true } OPTIONAL
+}
+
+MBSFN-InterFrequencyNeighbourList-r7 ::= SEQUENCE (SIZE (1..maxMBSFNClusters)) OF
+ MBSFNInterFrequencyNeighbour-r7
+
+-- List of extensions to the corresponding elements of IE "MBSFN-InterFrequencyNeighbourList-r7"
+MBSFN-InterFrequencyNeighbourList-v860ext ::= SEQUENCE (SIZE (1..maxMBSFNClusters)) OF
+ MBSFNInterFrequencyNeighbour-v860ext
+
+MBSFN-TDDInformation ::= SEQUENCE (SIZE (1..maxTS)) OF
+ MBSFN-TDDTimeSlotInfo
+
+MBSFN-TDDInformation-LCR ::= SEQUENCE (SIZE (1..maxMBSFNClusters)) OF
+ MBSFN-TDDTimeSlotInfo-LCR
+
+MBSFN-TDDTimeSlotInfo ::= SEQUENCE {
+ timeSlotNumber TimeslotNumber-LCR-r4,
+ cellParametersID CellParametersID
+}
+
+MBSFN-TDDTimeSlotInfo-LCR ::= SEQUENCE {
+ frequencyIndex INTEGER (1..maxMBSFNClusters),
+ timeSlotList MBSFN-TDDInformation
+}
+
+MBSFN-TDM-Info ::= SEQUENCE {
+ shortTransmissionID MBMS-ShortTransmissionID,
+ tDMPeriod INTEGER (2..9),
+ tDMOffset INTEGER (0..8),
+ tDMLength INTEGER (1..8)
+}
+
+MBSFN-TDM-Info-List ::= SEQUENCE (SIZE (1..maxMBMSservUnmodif)) OF
+ MBSFN-TDM-Info
+
+-- ***************************************************
+--
+-- WLAN Offload INFORMATION ELEMENTS (10.3.9b)
+--
+-- ***************************************************
+
+WLANOffloadConfig ::= SEQUENCE {
+ threshServingRSCP WLANThreshServingRSCP OPTIONAL,
+ threshServingECNO WLANThreshServingECNO OPTIONAL,
+ threshChannelUtilization WLANThreshChannelUtilization OPTIONAL,
+ threshBackhaulBandwidth WLANThreshBackhaulBandwidth OPTIONAL,
+ threshBeaconRSSI WLANThreshBeaconRSSI OPTIONAL,
+ offloadPreferenceIndicator BIT STRING (SIZE (16)) OPTIONAL,
+ t-SteeringWLAN T-Reselection-S OPTIONAL
+}
+
+WLANThreshServingRSCP ::= SEQUENCE {
+ -- Actual value = IE value * 2 + 1
+ threshServingLow INTEGER (-60..-13),
+ -- Actual value = IE value * 2 + 1
+ threshServingHigh INTEGER (-60..-13)
+}
+
+WLANThreshServingECNO ::= SEQUENCE {
+ threshServingLow2 INTEGER (-24..0),
+ threshServingHigh2 INTEGER (-24..0)
+}
+
+WLANThreshChannelUtilization ::= SEQUENCE {
+ threshChannelUtilizationLow INTEGER (0..255),
+ threshChannelUtilizationHigh INTEGER (0..255)
+}
+
+WLANThreshBackhaulBandwidth ::= SEQUENCE {
+ threshBackhaulDLBandwidthLow WLANThreshBackhaulRate,
+ threshBackhaulDLBandwidthHigh WLANThreshBackhaulRate,
+ threshBackhaulULBandwidthLow WLANThreshBackhaulRate,
+ threshBackhaulULBandwidthHigh WLANThreshBackhaulRate
+}
+
+WLANThreshBeaconRSSI ::= SEQUENCE {
+ -- Actual value = IE value - 128
+threshBeaconRSSILow INTEGER (0..255),
+ -- Actual value = IE value - 128
+threshBeaconRSSIHigh INTEGER (0..255)
+}
+
+WLANIdentifierList ::= SEQUENCE (SIZE (1..maxWLANID)) OF
+ WLANIdentifier
+
+WLANIdentifier ::= SEQUENCE {
+ ssid OCTET STRING (SIZE (1..32)) OPTIONAL,
+ bssid OCTET STRING (SIZE (6)) OPTIONAL,
+ hessid OCTET STRING (SIZE (6)) OPTIONAL
+}
+
+WLANOffloadInformationPerPLMN-List ::= SEQUENCE (SIZE (1..6)) OF WLANOffloadInformation
+
+WLANOffloadInformation ::= SEQUENCE {
+ wlanOffloadConfig WLANOffloadConfig OPTIONAL,
+ wlanIdentifierList WLANIdentifierList OPTIONAL
+}
+
+WLANThreshBackhaulRate ::= ENUMERATED { r0, r4, r8, r16, r32, r64, r128, r256,
+ r512, r1024, r2048, r4096, r8192, r16384, r32768,
+ r65536, r131072, r262144, r524288, r1048576,
+ r2097152, r4194304, r8388608, r16777216,
+ r33554432, r67108864, r134217728, r268435456,
+ r536870912, r1073741824, r2147483648, r4294967296
+}
+
+END
diff --git a/epan/dissectors/asn1/rrc/Internode-definitions.asn b/epan/dissectors/asn1/rrc/Internode-definitions.asn
new file mode 100644
index 0000000000..f7e4f541c1
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/Internode-definitions.asn
@@ -0,0 +1,2314 @@
+-- 3GPP TS 25.331 V13.1.0 (2015-12)
+--
+-- 11.5 RRC information between network nodes
+--
+Internode-definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ HandoverToUTRANCommand,
+ MeasurementReport,
+ PhysicalChannelReconfiguration,
+ RadioBearerReconfiguration,
+ RadioBearerRelease,
+ RadioBearerSetup,
+ RRCConnectionSetupComplete-r3-add-ext-IEs,
+ RRC-FailureInfo,
+ TransportChannelReconfiguration,
+ UECapabilityInformation-r3-add-ext-IEs
+FROM PDU-definitions
+
+-- Core Network IEs :
+ CN-DomainIdentity,
+ CN-DomainInformationList,
+ CN-DomainInformationListFull,
+ CN-DRX-CycleLengthCoefficient,
+ NAS-SystemInformationGSM-MAP,
+-- UTRAN Mobility IEs :
+ CellIdentity,
+ URA-Identity,
+-- User Equipment IEs :
+ AccessStratumReleaseIndicator,
+ C-RNTI,
+ ChipRateCapability,
+ DL-CapabilityWithSimultaneousHS-DSCHConfig,
+ DL-PhysChCapabilityFDD-v380ext,
+ DL-PhysChCapabilityTDD,
+ DL-PhysChCapabilityTDD-LCR-r4,
+ GSM-Measurements,
+ HSDSCH-physical-layer-category,
+ FailureCauseWithProtErr,
+ MaxHcContextSpace,
+ MaximumAM-EntityNumberRLC-Cap,
+ MaximumRLC-WindowSize,
+ MaxNoPhysChBitsReceived,
+ MaxNoDPDCH-BitsTransmitted,
+ MaxPhysChPerFrame,
+ MaxPhysChPerSubFrame-r4,
+ MaxPhysChPerTS,
+ MaxROHC-ContextSessions-r4,
+ MaxTS-PerFrame,
+ MaxTS-PerSubFrame-r4,
+ MinimumSF-DL,
+ MultiModeCapability,
+ MultiRAT-Capability,
+ NetworkAssistedGPS-Supported,
+ PhysicalChannelCapability-edch-r6,
+ RadioFrequencyBandTDDList,
+ RLC-Capability,
+ RRC-MessageSequenceNumber,
+ SecurityCapability,
+ SimultaneousSCCPCH-DPCH-Reception,
+ STARTList,
+ STARTSingle,
+ START-Value,
+ SupportOfDedicatedPilotsForChEstimation,
+ T-305,
+ TransportChannelCapability,
+ TxRxFrequencySeparation,
+ U-RNTI,
+ UE-CapabilityContainer-IEs,
+ UE-GANSSPositioning-Capability,
+ UE-MultiModeRAT-Capability,
+ UE-PowerClassExt,
+ UE-RadioAccessCapabBandFDDList,
+ UE-RadioAccessCapabBandFDDList2,
+ UE-RadioAccessCapabBandFDDList-ext,
+ UE-RadioAccessCapability,
+ UE-RadioAccessCapability-v370ext,
+ UE-RadioAccessCapability-v380ext,
+ UE-RadioAccessCapability-v3a0ext,
+ UE-RadioAccessCapability-v3g0ext,
+ UE-RadioAccessCapability-v4b0ext,
+ UE-RadioAccessCapability-v590ext,
+ UE-RadioAccessCapability-v5c0ext,
+ UE-RadioAccessCapability-v7e0ext,
+ UE-RadioAccessCapability-v7f0ext,
+ UL-PhysChCapabilityFDD,
+ UL-PhysChCapabilityFDD-r6,
+ UL-PhysChCapabilityTDD,
+ UL-PhysChCapabilityTDD-LCR-r4,
+-- Radio Bearer IEs :
+ PDCP-ROHC-TargetMode,
+ PredefinedConfigStatusList,
+ PredefinedConfigValueTag,
+ RAB-InformationSetupList,
+ RAB-InformationSetupList-r4,
+ RAB-InformationSetupList-r5,
+ RAB-InformationSetupList-r6-ext,
+ RAB-InformationSetupList-r6,
+ RAB-InformationSetupList-v6b0ext,
+ RAB-InformationSetupList-r7,
+ RAB-InformationSetupList-r8,
+ RAB-InformationSetupList-v820ext,
+ RAB-InformationSetupList-r11,
+ RB-Identity,
+ SRB-InformationSetupList,
+ SRB-InformationSetupList-r5,
+ SRB-InformationSetupList-r6,
+ SRB-InformationSetupList-r7,
+ SRB-InformationSetupList-r8,
+ SRB-InformationSetupList-r11,
+-- Transport Channel IEs :
+ CPCH-SetID,
+ DL-CommonTransChInfo,
+ DL-CommonTransChInfo-r4,
+ DL-AddReconfTransChInfoList,
+ DL-AddReconfTransChInfoList-r4,
+ DL-AddReconfTransChInfoList-r5,
+ DL-AddReconfTransChInfoList-r7,
+ DL-AddReconfTransChInfoList-r9,
+ DL-AddReconfTransChInfoList-TDD128-v9c0ext,
+ DL-AddReconfTransChInfoList-r11,
+ DRAC-StaticInformationList,
+ UL-CommonTransChInfo,
+ UL-CommonTransChInfo-r4,
+ UL-CommonTransChInfo-r12,
+ UL-AddReconfTransChInfoList,
+ UL-AddReconfTransChInfoList-r6,
+ UL-AddReconfTransChInfoList-r7,
+ UL-AddReconfTransChInfoList-r8,
+-- Physical Channel IEs :
+ DCH-Enhancements-Info-FDD,
+ DL-CommonInformation-r12,
+ DL-InformationPerRL-List-r12,
+ DL-InformationPerRL-List-r13,
+ DTX-DRX-Info-r12,
+ FrequencyInfo,
+ PrimaryCPICH-Info,
+ TPC-CombinationIndex,
+ ScramblingCodeChange,
+ Serving-HSDSCH-CellInformation-r12,
+ TGCFN,
+ TGPSI,
+ TGPS-ConfigurationParams,
+ TGPS-ConfigurationParams-r8,
+ UL-SecondaryCellInfoFDD-r12,
+ UL-SecondaryCellInfoFDD-r13,
+-- Measurement IEs :
+ Event1j-r6,
+ Hysteresis,
+ Inter-FreqEventCriteriaList-v590ext,
+ Intra-FreqEventCriteriaList-v590ext,
+ IntraFreqEvent-1d-r5,
+ IntraFreqReportingCriteria-1b-r5,
+ InterRATCellInfoIndication,
+ MeasuredResultsOnRACHinterFreq,
+ MeasurementIdentity,
+ MeasurementIdentity-r9,
+ MeasurementReportingMode,
+ MeasurementType,
+ MeasurementType-r4,
+ MeasurementType-r6,
+ MeasurementType-r7,
+ MeasurementType-r8,
+ MeasurementType-r9,
+ MeasurementType-r10,
+ MeasurementType-r11,
+ MeasurementType-r12,
+ MeasurementType-r13,
+ AdditionalMeasurementID-List,
+ AdditionalMeasurementID-List-r9,
+ PositionEstimate,
+ ReportingCellStatus,
+ ThresholdSFN-GPS-TOW-us,
+ TimeToTrigger,
+-- MBMS IEs :
+ MBMS-JoinedInformation-r6,
+ MBMS-SelectedServiceInfo,
+-- Other IEs :
+ GERANIu-RadioAccessCapability,
+ GSM-MS-RadioAccessCapability,
+ InterRAT-UE-RadioAccessCapabilityList,
+ InterRAT-UE-RadioAccessCapability-v590ext,
+ InterRAT-UE-RadioAccessCapability-v690ext,
+ InterRAT-UE-RadioAccessCapability-v860ext,
+ UE-HistoryInformation,
+ UESpecificBehaviourInformation1idle,
+ UESpecificBehaviourInformation1interRAT
+
+FROM InformationElements
+
+
+ maxCNdomains,
+ maxEDCHRL,
+ maxGANSS,
+ maxNoOfMeas,
+ maxRB,
+ maxRBallRABs,
+ maxRFC3095-CID,
+ maxSRBsetup,
+ maxRL,
+ maxTGPS
+FROM Constant-definitions;
+
+-- Part 1: Class definitions similar to what has been defined in 11.1 for RRC messages
+-- Information that is tranferred in the same direction and across the same path is grouped
+
+-- ***************************************************
+--
+-- RRC information, to target RNC
+--
+-- ***************************************************
+-- RRC Information to target RNC sent either from source RNC or from another RAT
+
+ToTargetRNC-Container ::= CHOICE {
+ interRATHandoverInfo InterRATHandoverInfoWithInterRATCapabilities-r3,
+ srncRelocation SRNC-RelocationInfo-r3,
+ rfc3095-ContextInfo RFC3095-ContextInfo-r5,
+ extension NULL
+}
+
+-- ***************************************************
+--
+-- RRC information, target RNC to source RNC
+--
+-- ***************************************************
+
+
+TargetRNC-ToSourceRNC-Container ::= CHOICE {
+ radioBearerSetup RadioBearerSetup,
+ radioBearerReconfiguration RadioBearerReconfiguration,
+ radioBearerRelease RadioBearerRelease,
+ transportChannelReconfiguration TransportChannelReconfiguration,
+ physicalChannelReconfiguration PhysicalChannelReconfiguration,
+ rrc-FailureInfo RRC-FailureInfo,
+ -- IE dl-DCCHmessage consists of an octet string that includes the IE DL-DCCH-Message
+ dL-DCCHmessage OCTET STRING,
+ extension NULL
+}
+
+-- Part 2: Container definitions, similar to the PDU definitions in 11.2 for RRC messages
+-- In alphabetical order
+
+
+-- ***************************************************
+--
+-- Handover to UTRAN information
+--
+-- ***************************************************
+
+InterRATHandoverInfoWithInterRATCapabilities-r3 ::= CHOICE {
+ r3 SEQUENCE {
+ -- IE InterRATHandoverInfoWithInterRATCapabilities-r3-IEs also
+ -- includes non critical extensions
+ interRATHandoverInfo-r3 InterRATHandoverInfoWithInterRATCapabilities-r3-IEs,
+ v390NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfoWithInterRATCapabilities-v390ext
+ InterRATHandoverInfoWithInterRATCapabilities-v390ext-IEs,
+ -- Reserved for future non critical extension
+ v690NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfoWithInterRATCapabilities-v690ext
+ InterRATHandoverInfoWithInterRATCapabilities-v690ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfoWithInterRATCapabilities-v860ext
+ InterRATHandoverInfoWithInterRATCapabilities-v860ext-IEs,
+ v920NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfoWithInterRATCapabilities-v920ext
+ InterRATHandoverInfoWithInterRATCapabilities-v920ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+}
+
+InterRATHandoverInfoWithInterRATCapabilities-r3-IEs ::= SEQUENCE {
+ -- The order of the IEs may not reflect the tabular format
+ -- but has been chosen to simplify the handling of the information in the BSC
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList OPTIONAL,
+ -- interRATHandoverInfo, Octet string is used to obtain 8 bit length field prior to
+ -- actual information. This makes it possible for BSS to transparently handle information
+ -- received via GSM air interface even when it includes non critical extensions.
+ -- The octet string shall include the InterRATHandoverInfo information
+ -- The BSS can re-use the 44.018 length field received from the MS
+ interRATHandoverInfo OCTET STRING (SIZE (0..255))
+}
+
+InterRATHandoverInfoWithInterRATCapabilities-v390ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ failureCauseWithProtErr FailureCauseWithProtErr OPTIONAL
+}
+
+InterRATHandoverInfoWithInterRATCapabilities-v690ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ ue-RATSpecificCapability-v690ext InterRAT-UE-RadioAccessCapability-v690ext OPTIONAL
+}
+
+InterRATHandoverInfoWithInterRATCapabilities-v860ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapability-v860ext OPTIONAL
+}
+
+InterRATHandoverInfoWithInterRATCapabilities-v920ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ ue-Inactivity-Period INTEGER (1..120) OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RFC3095 context, source RNC to target RNC
+--
+-- ***************************************************
+
+RFC3095-ContextInfo-r5 ::= CHOICE {
+ r5 SEQUENCE {
+ rFC3095-ContextInfoList-r5 RFC3095-ContextInfoList-r5,
+ -- Reserved for future non critical extension
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+}
+
+RFC3095-ContextInfoList-r5 ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF
+ RFC3095-ContextInfo
+
+
+-- ***************************************************
+--
+-- SRNC Relocation information
+--
+-- ***************************************************
+
+SRNC-RelocationInfo-r3 ::= CHOICE {
+ r3 SEQUENCE {
+ sRNC-RelocationInfo-r3 SRNC-RelocationInfo-r3-IEs,
+ v380NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v380ext SRNC-RelocationInfo-v380ext-IEs,
+ -- Reserved for future non critical extension
+ v390NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v390ext SRNC-RelocationInfo-v390ext-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v3a0ext SRNC-RelocationInfo-v3a0ext-IEs,
+ v3b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v3b0ext SRNC-RelocationInfo-v3b0ext-IEs,
+ v3c0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v3c0ext SRNC-RelocationInfo-v3c0ext-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v3d0ext SRNC-RelocationInfo-v3d0ext-IEs,
+ -- Container for additional R99 extensions
+ sRNC-RelocationInfo-r3-add-ext BIT STRING
+ (CONTAINING SRNC-RelocationInfo-v3h0ext-IEs) OPTIONAL,
+ v3g0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v3g0ext SRNC-RelocationInfo-v3g0ext-IEs,
+ v4b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v4b0ext SRNC-RelocationInfo-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v590ext
+ SRNC-RelocationInfo-v590ext-IEs,
+ v5a0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5a0ext
+ SRNC-RelocationInfo-v5a0ext-IEs,
+ v5b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5b0ext
+ SRNC-RelocationInfo-v5b0ext-IEs,
+ v5c0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5c0ext
+ SRNC-RelocationInfo-v5c0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v690ext
+ SRNC-RelocationInfo-v690ext-IEs,
+ v6b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v6b0ext
+ SRNC-RelocationInfo-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v770ext
+ SRNC-RelocationInfo-v770ext-IEs,
+ v7e0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7e0ext
+ SRNC-RelocationInfo-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7f0ext
+ SRNC-RelocationInfo-v7f0ext-IEs,
+ nonCriticalExtensions
+ SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 CHOICE {
+ r4 SEQUENCE {
+ sRNC-RelocationInfo-r4 SRNC-RelocationInfo-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v4d0ext SRNC-RelocationInfo-v4d0ext-IEs,
+ -- Container for adding non critical extensions after freezing REL-5
+ sRNC-RelocationInfo-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v590ext SRNC-RelocationInfo-v590ext-IEs,
+ v5a0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5a0ext SRNC-RelocationInfo-v5a0ext-IEs,
+ v5b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5b0ext SRNC-RelocationInfo-v5b0ext-IEs,
+ v5c0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5c0ext SRNC-RelocationInfo-v5c0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v690ext SRNC-RelocationInfo-v690ext-IEs,
+ v6b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v6b0ext
+ SRNC-RelocationInfo-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v770ext
+ SRNC-RelocationInfo-v770ext-IEs,
+ v7e0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7e0ext
+ SRNC-RelocationInfo-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7f0ext
+ SRNC-RelocationInfo-v7f0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ sRNC-RelocationInfo-r5 SRNC-RelocationInfo-r5-IEs,
+ sRNC-RelocationInfo-r5-add-ext BIT STRING OPTIONAL,
+ v5a0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5a0ext SRNC-RelocationInfo-v5a0ext-IEs,
+ v5b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5b0ext SRNC-RelocationInfo-v5b0ext-IEs,
+ v5c0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v5c0ext SRNC-RelocationInfo-v5c0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v690ext SRNC-RelocationInfo-v690ext-IEs,
+ v6b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v6b0ext SRNC-RelocationInfo-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v770ext
+ SRNC-RelocationInfo-v770ext-IEs,
+ v7e0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7e0ext
+ SRNC-RelocationInfo-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7f0ext
+ SRNC-RelocationInfo-v7f0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ sRNC-RelocationInfo-r6 SRNC-RelocationInfo-r6-IEs,
+ sRNC-RelocationInfo-r6-add-ext BIT STRING
+ (CONTAINING SRNC-RelocationInfo-r6-add-ext-IEs) OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v6b0ext SRNC-RelocationInfo-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v770ext SRNC-RelocationInfo-v770ext-IEs,
+ v820NonCriticalExtensions SEQUENCE {
+ srnc-RelocationInfo-v820ext SRNC-RelocationInfo-v820ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v860ext SRNC-RelocationInfo-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ sRNC-RelocationInfo-r7 SRNC-RelocationInfo-r7-IEs,
+ sRNC-RelocationInfo-r7-add-ext BIT STRING
+ (CONTAINING SRNC-RelocationInfo-r7-add-ext-IEs) OPTIONAL,
+ v820NonCriticalExtensions SEQUENCE {
+ srnc-RelocationInfo-v820ext SRNC-RelocationInfo-v820ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v860ext SRNC-RelocationInfo-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ sRNC-RelocationInfo-r8 SRNC-RelocationInfo-r8-IEs,
+ sRNC-RelocationInfo-r8-add-ext BIT STRING OPTIONAL,
+ v7e0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7e0ext SRNC-RelocationInfo-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7f0ext
+ SRNC-RelocationInfo-v7f0ext-IEs,
+ v8d0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v8d0ext
+ SRNC-RelocationInfo-v8d0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ sRNC-RelocationInfo-r9 SRNC-RelocationInfo-r9-IEs,
+ sRNC-RelocationInfo-r9-add-ext BIT STRING OPTIONAL,
+ v8d0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v8d0ext SRNC-RelocationInfo-v8d0ext-IEs,
+ v970NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v970ext
+ SRNC-RelocationInfo-v970ext-IEs,
+ v9c0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v9c0ext
+ SRNC-RelocationInfo-v9c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ sRNC-RelocationInfo-r10 SRNC-RelocationInfo-r10-IEs,
+ sRNC-RelocationInfo-r10-add-ext BIT STRING OPTIONAL,
+ v9c0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v9c0ext
+ SRNC-RelocationInfo-v9c0ext-IEs,
+ vab0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-vab0ext
+ SRNC-RelocationInfo-vab0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ sRNC-RelocationInfo-r11 SRNC-RelocationInfo-r11-IEs,
+ sRNC-RelocationInfo-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ sRNC-RelocationInfo-r12 SRNC-RelocationInfo-r12-IEs,
+ sRNC-RelocationInfo-r12-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ sRNC-RelocationInfo-r13 SRNC-RelocationInfo-r13-IEs,
+ sRNC-RelocationInfo-r13-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+SRNC-RelocationInfo-r3-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ -- If the extension v380 is included use the extension for the ciphering status per CN domain
+ cipheringStatus CipheringStatus,
+ -- If ciphering status is started and the IE latestConfiguredCN-Domain should be included,
+ -- the IE cn-DomainIdentity (in SRNC-RelocationInfo-v380ext-IEs) shall be used instead.
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ -- The order of occurrence in the IE cipheringInfoPerRB-List is the
+ -- same as the RBs in SRB-InformationSetupList in RAB-InformationSetupList.
+ -- The signalling RBs are supposed to be listed
+ -- first. Only UM and AM RBs that are ciphered are listed here
+ cipheringInfoPerRB-List CipheringInfoPerRB-List OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ integrityProtectionStatus IntegrityProtectionStatus,
+ -- In the IE srb-SpecificIntegrityProtInfo, the first information listed corresponds to
+ -- signalling radio bearer RB0 and after the order of occurrence is the same as the SRBs in
+ -- SRB-InformationSetupList
+ -- The target RNC may ignore the IE srb-SpecificIntegrityProtInfo if the
+ -- IE integrityProtectionStatus has the value "not started".
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ ue-RadioAccessCapability UE-RadioAccessCapability,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationList OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList,
+ rab-InformationList RAB-InformationSetupList OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy and dummy2 are not used in this version of the specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList OPTIONAL,
+ -- Measurement report
+ measurementReport MeasurementReport OPTIONAL
+}
+
+SRNC-RelocationInfo-v380ext-IEs ::= SEQUENCE {
+ -- Ciphering related information IEs
+ -- In the SRNC-RelocationInfo-r3-IEs, the IE 'cn-DomainIdentity' is used to represent the
+ -- IE 'Latest configured CN domain' in the tabular.
+ cn-DomainIdentity CN-DomainIdentity,
+ cipheringStatusList CipheringStatusList
+}
+
+SRNC-RelocationInfo-v390ext-IEs ::= SEQUENCE {
+ cn-DomainInformationList-v390ext CN-DomainInformationList-v390ext OPTIONAL,
+ ue-RadioAccessCapability-v370ext UE-RadioAccessCapability-v370ext OPTIONAL,
+ ue-RadioAccessCapability-v380ext UE-RadioAccessCapability-v380ext OPTIONAL,
+ dl-PhysChCapabilityFDD-v380ext DL-PhysChCapabilityFDD-v380ext,
+ failureCauseWithProtErr FailureCauseWithProtErr OPTIONAL
+}
+
+SRNC-RelocationInfo-v3a0ext-IEs ::= SEQUENCE {
+ cipheringInfoForSRB1-v3a0ext CipheringInfoPerRB-List-v3a0ext,
+ ue-RadioAccessCapability-v3a0ext UE-RadioAccessCapability-v3a0ext OPTIONAL,
+ -- cn-domain identity for IE startValueForCiphering-v3a0ext is specified
+ -- in subsequent extension (SRNC-RelocationInfo-v3b0ext-IEs)
+ startValueForCiphering-v3a0ext START-Value
+}
+
+SRNC-RelocationInfo-v3b0ext-IEs ::= SEQUENCE {
+ -- cn-domain identity for IE startValueForCiphering-v3a0ext included in previous extension
+ cn-DomainIdentity CN-DomainIdentity,
+ -- the IE startValueForCiphering-v3b0ext contains the start values for each CN Domain. The
+ -- value of start indicated by the IE startValueForCiphering-v3a0ext should be set to the
+ -- same value as the start-Value for the corresponding cn-DomainIdentity in the IE
+ -- startValueForCiphering-v3b0ext
+ startValueForCiphering-v3b0ext STARTList2 OPTIONAL
+}
+
+SRNC-RelocationInfo-v3c0ext-IEs ::= SEQUENCE {
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL
+}
+
+SRNC-RelocationInfo-v3d0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ uESpecificBehaviourInformation1idle UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT UESpecificBehaviourInformation1interRAT OPTIONAL
+}
+
+SRNC-RelocationInfo-v3g0ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapability-v3g0ext UE-RadioAccessCapability-v3g0ext OPTIONAL
+}
+
+SRNC-RelocationInfo-v3h0ext-IEs ::= SEQUENCE {
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SRNC-RelocationInfo-v4d0ext-IEs ::= SEQUENCE {
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL
+}
+
+TPC-CombinationInfoList ::= SEQUENCE (SIZE (1..maxRL)) OF
+ TPC-Combination-Info
+
+TPC-CombinationInfoList-r9 ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ TPC-Combination-Info-r9
+
+STARTList2 ::= SEQUENCE (SIZE (2..maxCNdomains)) OF
+ STARTSingle
+
+SRNC-RelocationInfo-v4b0ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapability-v4b0ext UE-RadioAccessCapability-v4b0ext OPTIONAL
+}
+
+SRNC-RelocationInfo-v590ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapability-v590ext UE-RadioAccessCapability-v590ext OPTIONAL,
+ ue-RATSpecificCapability-v590ext InterRAT-UE-RadioAccessCapability-v590ext OPTIONAL
+}
+
+SRNC-RelocationInfo-v5a0ext-IEs ::= SEQUENCE {
+ storedCompressedModeInfo StoredCompressedModeInfo OPTIONAL
+}
+
+SRNC-RelocationInfo-v5b0ext-IEs ::= SEQUENCE {
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL
+}
+
+SRNC-RelocationInfo-v5c0ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapability-v5c0ext UE-RadioAccessCapability-v5c0ext OPTIONAL
+}
+
+CipheringInfoPerRB-List-v3a0ext ::= SEQUENCE {
+ dl-UM-SN BIT STRING (SIZE (7))
+}
+
+CipheringStatusList ::= SEQUENCE (SIZE (1..maxCNdomains)) OF
+ CipheringStatusCNdomain
+
+CipheringStatusCNdomain ::= SEQUENCE {
+ cn-DomainIdentity CN-DomainIdentity,
+ cipheringStatus CipheringStatus
+}
+
+CodeChangeStatusList ::= SEQUENCE (SIZE (1..maxRL)) OF
+ CodeChangeStatus
+
+CodeChangeStatus ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ scramblingCodeChange ScramblingCodeChange
+}
+
+StoredCompressedModeInfo ::= SEQUENCE {
+ storedTGP-SequenceList StoredTGP-SequenceList,
+ codeChangeStatusList CodeChangeStatusList OPTIONAL
+}
+
+StoredCompressedModeInfo-r8 ::= SEQUENCE {
+ storedTGP-SequenceList StoredTGP-SequenceList-r8,
+ codeChangeStatusList CodeChangeStatusList OPTIONAL
+}
+
+StoredTGP-SequenceList ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ StoredTGP-Sequence
+
+StoredTGP-SequenceList-r8 ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ StoredTGP-Sequence-r8
+
+StoredTGP-Sequence ::= SEQUENCE {
+ tgpsi TGPSI,
+ current-tgps-Status CHOICE {
+ active SEQUENCE {
+ tgcfn TGCFN
+ },
+ inactive NULL
+ },
+ tgps-ConfigurationParams TGPS-ConfigurationParams OPTIONAL
+}
+
+StoredTGP-Sequence-r8 ::= SEQUENCE {
+ tgpsi TGPSI,
+ current-tgps-Status CHOICE {
+ active SEQUENCE {
+ tgcfn TGCFN
+ },
+ inactive NULL
+ },
+ tgps-ConfigurationParams TGPS-ConfigurationParams-r8 OPTIONAL
+}
+
+SRNC-RelocationInfo-r4-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ -- The target RNC may ignore the IE srb-SpecificIntegrityProtInfo if the
+ -- IE integrityProtectionStatus has the value "not started".
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ ue-RadioAccessCapability UE-RadioAccessCapability-r4,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r4 OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList,
+ rab-InformationList RAB-InformationSetupList-r4 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL,
+ -- Measurement report
+ measurementReport MeasurementReport OPTIONAL,
+ failureCause FailureCauseWithProtErr OPTIONAL
+}
+
+SRNC-RelocationInfo-r5-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ ue-RadioAccessCapability UE-RadioAccessCapability-r5,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r5 OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r5,
+ rab-InformationList RAB-InformationSetupList-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ -- Measurement report
+ measurementReport MeasurementReport OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL
+}
+
+SRNC-RelocationInfo-v690ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability information
+ -- received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was introduced
+ -- in a release independent manner, i.e., transferred within a VLEC. These UE capabilities
+ -- are included both in the RRC CONNECTION SETUP COMPLETE and the UE CAPABILITY INFORMATION
+ -- messages. Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationSetupList RAB-InformationSetupList-r6-ext OPTIONAL,
+ -- Measurement report
+ measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL,
+ -- Measurement IEs
+ intraFreqReportingCriteria IntraFreqReportingCriteria-r6-ext OPTIONAL
+}
+
+SRNC-RelocationInfo-r6-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ ue-RadioAccessCapability UE-RadioAccessCapability-r6,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability information
+ -- received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was introduced
+ -- in a release independent manner, i.e., transferred within a VLEC. These UE capabilities
+ -- are included both in the RRC CONNECTION SETUP COMPLETE and the UE CAPABILITY INFORMATION
+ -- messages. Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r6 OPTIONAL,
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r6,
+ rab-InformationList RAB-InformationSetupList-r6 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ storedCompressedModeInfo StoredCompressedModeInfo OPTIONAL,
+ -- Measurement report
+ measurementReport BIT STRING
+ (CONTAINING MeasurementReport) OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL
+}
+
+SRNC-RelocationInfo-r6-add-ext-IEs ::= SEQUENCE {
+ sRNC-RelocationInfo-v7e0ext SRNC-RelocationInfo-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7f0ext SRNC-RelocationInfo-v7f0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+SRNC-RelocationInfo-v6b0ext-IEs ::= SEQUENCE {
+ -- The order of the RABs in IE rab-InformationSetupListExt is the same as
+ -- in IE rab-InformationSetupList that is included in this message
+ rab-InformationSetupListExt RAB-InformationSetupList-v6b0ext OPTIONAL,
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo
+}
+
+SRNC-RelocationInfo-r7-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ -- IE 'UE-RadioAccessCapability-r6' includes the Rel-5 radio access capability extensions
+ -- and earlier. Rel-6 and later extensions are included in IE 'UE-CapabilityContainer-IEs'.
+ ue-RadioAccessCapability UE-RadioAccessCapability-r6,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability information
+ -- received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was introduced
+ -- in a release independent manner, i.e., transferred within a VLEC. These UE capabilities
+ -- are included both in the RRC CONNECTION SETUP COMPLETE and the UE CAPABILITY INFORMATION
+ -- messages. Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ srns-t-305 T-305 OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r7 OPTIONAL,
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r7,
+ rab-InformationList RAB-InformationSetupList-r7 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ storedCompressedModeInfo StoredCompressedModeInfo OPTIONAL,
+ -- Measurement report
+ measurementReport BIT STRING
+ (CONTAINING MeasurementReport) OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL,
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo OPTIONAL
+}
+
+SRNC-RelocationInfo-r7-add-ext-IEs ::= SEQUENCE {
+ sRNC-RelocationInfo-v7e0ext SRNC-RelocationInfo-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ sRNC-RelocationInfo-v7f0ext SRNC-RelocationInfo-v7f0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+SRNC-RelocationInfo-v770ext-IEs ::= SEQUENCE {
+ thresholdSFN-GPS-TOW-us ThresholdSFN-GPS-TOW-us OPTIONAL,
+ srns-t-305 T-305 OPTIONAL
+}
+
+SRNC-RelocationInfo-v7e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability UE-RadioAccessCapability-v7e0ext
+}
+
+SRNC-RelocationInfo-v7f0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability UE-RadioAccessCapability-v7f0ext OPTIONAL
+}
+
+SRNC-RelocationInfo-r8-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ -- IE 'UE-RadioAccessCapability-r6' includes the Rel-5 radio access capability extensions
+ -- and earlier. Rel-6 and later extensions are included in IE 'UE-CapabilityContainer-IEs'.
+ ue-RadioAccessCapability UE-RadioAccessCapability-r6,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability information
+ -- received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was introduced
+ -- in a release independent manner, i.e., transferred within a VLEC. These UE capabilities
+ -- are included both in the RRC CONNECTION SETUP COMPLETE and the UE CAPABILITY INFORMATION
+ -- messages. Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ srns-t-305 T-305 OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r8 OPTIONAL,
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r8,
+ rab-InformationList RAB-InformationSetupList-r8 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList OPTIONAL,
+ storedCompressedModeInfo StoredCompressedModeInfo-r8 OPTIONAL,
+ -- Measurement report
+ measurementReport BIT STRING
+ (CONTAINING MeasurementReport) OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL,
+ ue-HistoryInformation UE-HistoryInformation OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL,
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo OPTIONAL
+}
+
+SRNC-RelocationInfo-v820ext-IEs ::= SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationList RAB-InformationSetupList-v820ext OPTIONAL
+}
+
+SRNC-RelocationInfo-v860ext-IEs ::= SEQUENCE {
+ -- PhyCH IEs
+ e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList OPTIONAL
+}
+
+SRNC-RelocationInfo-v8d0ext-IEs ::= SEQUENCE {
+ --Radio Bearer IEs
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL
+}
+
+SRNC-RelocationInfo-r9-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ -- IE 'UE-RadioAccessCapability-r6' includes the Rel-5 radio access capability extensions
+ -- and earlier. Rel-6 and later extensions are included in IE 'UE-CapabilityContainer-IEs'.
+ ue-RadioAccessCapability UE-RadioAccessCapability-r6,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability information
+ -- received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was introduced
+ -- in a release independent manner, i.e., transferred within a VLEC. These UE capabilities
+ -- are included both in the RRC CONNECTION SETUP COMPLETE and the UE CAPABILITY INFORMATION
+ -- messages. Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ srns-t-305 T-305 OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r9 OPTIONAL,
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r8,
+ rab-InformationList RAB-InformationSetupList-r8 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList OPTIONAL,
+ storedCompressedModeInfo StoredCompressedModeInfo-r8 OPTIONAL,
+ secondary-tpc-CombinationInfoList TPC-CombinationInfoList-r9 OPTIONAL,
+ secondary-e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList-r9 OPTIONAL,
+ -- Measurement report
+ measurementReport BIT STRING
+ (CONTAINING MeasurementReport) OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL,
+ ue-HistoryInformation UE-HistoryInformation OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL,
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo OPTIONAL
+}
+
+SRNC-RelocationInfo-v970ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-v970ext-IE OPTIONAL
+}
+
+SRNC-RelocationInfo-v9c0ext-IEs ::= SEQUENCE {
+ -- For 1.28Mcps TDD only
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL
+}
+
+SRNC-RelocationInfo-r10-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ -- IE 'UE-RadioAccessCapability-r6' includes the Rel-5 radio access capability extensions
+ -- and earlier. Rel-6 and later extensions are included in IE 'UE-CapabilityContainer-IEs'.
+ ue-RadioAccessCapability UE-RadioAccessCapability-r6,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability information
+ -- received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was introduced
+ -- in a release independent manner, i.e., transferred within a VLEC. These UE capabilities
+ -- are included both in the RRC CONNECTION SETUP COMPLETE and the UE CAPABILITY INFORMATION
+ -- messages. Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ srns-t-305 T-305 OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r10 OPTIONAL,
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r8,
+ rab-InformationList RAB-InformationSetupList-r8 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList OPTIONAL,
+ storedCompressedModeInfo StoredCompressedModeInfo-r8 OPTIONAL,
+ secondary-tpc-CombinationInfoList TPC-CombinationInfoList-r9 OPTIONAL,
+ secondary-e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList-r9 OPTIONAL,
+ -- Measurement report
+ measurementReport BIT STRING
+ (CONTAINING MeasurementReport) OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL,
+ ue-HistoryInformation UE-HistoryInformation OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL,
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo OPTIONAL
+}
+
+SRNC-RelocationInfo-vab0ext-IEs ::= SRNC-RelocationInfo-v970ext-IEs
+
+SRNC-RelocationInfo-r11-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ -- IE 'UE-RadioAccessCapability-r6' includes the Rel-5 radio access capability extensions
+ -- and earlier. Rel-6 and later extensions are included in IE 'UE-CapabilityContainer-IEs'.
+ ue-RadioAccessCapability UE-RadioAccessCapability-r6,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability information
+ -- received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was introduced
+ -- in a release independent manner, i.e., transferred within a VLEC. These UE capabilities
+ -- are included both in the RRC CONNECTION SETUP COMPLETE and the UE CAPABILITY INFORMATION
+ -- messages. Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ srns-t-305 T-305 OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r11 OPTIONAL,
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r11,
+ rab-InformationList RAB-InformationSetupList-r11 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList OPTIONAL,
+ storedCompressedModeInfo StoredCompressedModeInfo-r8 OPTIONAL,
+ secondary-tpc-CombinationInfoList TPC-CombinationInfoList-r9 OPTIONAL,
+ secondary-e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList-r9 OPTIONAL,
+ -- Measurement report
+ measurementReport BIT STRING
+ (CONTAINING MeasurementReport) OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL,
+ ue-HistoryInformation UE-HistoryInformation OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL,
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo OPTIONAL
+}
+
+SRNC-RelocationInfo-r12-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ -- IE 'UE-RadioAccessCapability-r6' includes the Rel-5 radio access capability extensions
+ -- and earlier. Rel-6 and later extensions are included in IE 'UE-CapabilityContainer-IEs'.
+ ue-RadioAccessCapability UE-RadioAccessCapability-r6,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability information
+ -- received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was introduced
+ -- in a release independent manner, i.e., transferred within a VLEC. These UE capabilities
+ -- are included both in the RRC CONNECTION SETUP COMPLETE and the UE CAPABILITY INFORMATION
+ -- messages. Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ srns-t-305 T-305 OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r12 OPTIONAL,
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r11,
+ rab-InformationList RAB-InformationSetupList-r11 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList OPTIONAL,
+ storedCompressedModeInfo StoredCompressedModeInfo-r8 OPTIONAL,
+ secondary-tpc-CombinationInfoList TPC-CombinationInfoList-r9 OPTIONAL,
+ secondary-e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList-r9 OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r12 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL,
+ -- Measurement report
+ measurementReport BIT STRING
+ (CONTAINING MeasurementReport) OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL,
+ ue-HistoryInformation UE-HistoryInformation OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL,
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo OPTIONAL
+}
+
+SRNC-RelocationInfo-r13-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ -- IE rb-IdentityForHOMessage includes the identity of the RB used by the source SRNC
+ -- to send the message contained in the IE "TargetRNC-ToSourceRNC-Container".
+ -- Only included if type is "UE involved"
+ rb-IdentityForHOMessage RB-Identity OPTIONAL,
+ stateOfRRC StateOfRRC,
+ stateOfRRC-Procedure StateOfRRC-Procedure,
+ -- Ciphering related information IEs
+ cipheringStatusList CipheringStatusList-r4,
+ latestConfiguredCN-Domain CN-DomainIdentity,
+ calculationTimeForCiphering CalculationTimeForCiphering OPTIONAL,
+ count-C-List COUNT-C-List OPTIONAL,
+ cipheringInfoPerRB-List CipheringInfoPerRB-List-r4 OPTIONAL,
+ -- Integrity protection related information IEs
+ integrityProtectionStatus IntegrityProtectionStatus,
+ srb-SpecificIntegrityProtInfo SRB-SpecificIntegrityProtInfoList OPTIONAL,
+ implementationSpecificParams ImplementationSpecificParams OPTIONAL,
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ c-RNTI C-RNTI OPTIONAL,
+ -- IE 'UE-RadioAccessCapability-r6' includes the Rel-5 radio access capability
+ -- extensions and earlier. Rel-6 and later extensions are included in IE 'UE-CapabilityContainer-IEs'.
+ ue-RadioAccessCapability UE-RadioAccessCapability-r6,
+ ue-RadioAccessCapability-ext UE-RadioAccessCapabBandFDDList OPTIONAL,
+ ue-Positioning-LastKnownPos UE-Positioning-LastKnownPos OPTIONAL,
+ uESpecificBehaviourInformation1idle
+ UESpecificBehaviourInformation1idle OPTIONAL,
+ uESpecificBehaviourInformation1interRAT
+ UESpecificBehaviourInformation1interRAT OPTIONAL,
+ -- IE ueCapabilityContainer is used for the transparent transfer of capability
+ -- information received from the UE
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL,
+ -- IE ueCapabilityContainer-RSC and IE ueCapabilityContainer-UCI are used for the
+ -- transparent transfer of capability information received from the UE that was
+ -- introduced in a release independent manner, i.e., transferred within a VLEC.
+ -- These UE capabilities are included both in the RRC CONNECTION SETUP COMPLETE and
+ -- the UE CAPABILITY INFORMATION messages.
+ -- Only the VLEC of one message needs to be included i.e. the one from these
+ -- messages that was last received.
+ -- Case 1: If the last received message was a RRC CONNECTION SETUP COMPLETE (RSC)
+ ueCapabilityContainer-RSC BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ -- Case 2: If the last received message was a UE CAPABILITY INFORMATION (UCI)
+ ueCapabilityContainer-UCI BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList-r5 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ srns-t-305 T-305 OPTIONAL,
+ -- Core network IEs
+ cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP,
+ cn-DomainInformationList CN-DomainInformationListFull OPTIONAL,
+ -- Measurement IEs
+ ongoingMeasRepList OngoingMeasRepList-r13 OPTIONAL,
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL,
+ -- Radio bearer IEs
+ predefinedConfigStatusList PredefinedConfigStatusList,
+ srb-InformationList SRB-InformationSetupList-r11,
+ rab-InformationList RAB-InformationSetupList-r11 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-TransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-TransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- PhyCH IEs
+ tpc-CombinationInfoList TPC-CombinationInfoList OPTIONAL,
+ e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList OPTIONAL,
+ storedCompressedModeInfo StoredCompressedModeInfo-r8 OPTIONAL,
+ secondary-tpc-CombinationInfoList TPC-CombinationInfoList-r9 OPTIONAL,
+ secondary-e-RGCH-CombinationInfoList E-RGCH-CombinationInfoList-r9 OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r12 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r13 OPTIONAL,
+ -- Measurement report
+ measurementReport BIT STRING
+ (CONTAINING MeasurementReport) OPTIONAL,
+ -- Other IEs
+ failureCause FailureCauseWithProtErr OPTIONAL,
+ ue-HistoryInformation UE-HistoryInformation OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL,
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo OPTIONAL
+}
+
+-- IE definitions
+
+CalculationTimeForCiphering ::= SEQUENCE {
+ cell-Id CellIdentity,
+ sfn INTEGER (0..4095)
+}
+
+CipheringInfoPerRB ::= SEQUENCE {
+ dl-HFN BIT STRING (SIZE (20..25)),
+ ul-HFN BIT STRING (SIZE (20..25))
+}
+
+CipheringInfoPerRB-r4 ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ dl-HFN BIT STRING (SIZE (20..25)),
+ dl-UM-SN BIT STRING (SIZE (7)) OPTIONAL,
+ ul-HFN BIT STRING (SIZE (20..25))
+}
+
+-- TABULAR: CipheringInfoPerRB-List, multiplicity value numberOfRadioBearers
+-- has been replaced with maxRB.
+CipheringInfoPerRB-List ::= SEQUENCE (SIZE (1..maxRB)) OF
+ CipheringInfoPerRB
+
+CipheringInfoPerRB-List-r4 ::= SEQUENCE (SIZE (1..maxRB)) OF
+ CipheringInfoPerRB-r4
+
+
+CipheringStatus ::= ENUMERATED {
+ started, notStarted }
+
+CipheringStatusList-r4 ::= SEQUENCE (SIZE (1..maxCNdomains)) OF
+ CipheringStatusCNdomain-r4
+
+CipheringStatusCNdomain-r4 ::= SEQUENCE {
+ cn-DomainIdentity CN-DomainIdentity,
+ cipheringStatus CipheringStatus,
+ start-Value START-Value
+}
+
+CN-DomainInformation-v390ext ::= SEQUENCE {
+ cn-DRX-CycleLengthCoeff CN-DRX-CycleLengthCoefficient
+}
+
+CN-DomainInformationList-v390ext ::= SEQUENCE (SIZE (1..maxCNdomains)) OF
+ CN-DomainInformation-v390ext
+
+CompressedModeMeasCapability-r4 ::= SEQUENCE {
+ fdd-Measurements BOOLEAN,
+ -- TABULAR: The IEs tdd-Measurements, gsm-Measurements and multiCarrierMeasurements
+ -- are made optional since they are conditional based on another information element.
+ -- Their absence corresponds to the case where the condition is not true.
+ tdd384-Measurements BOOLEAN OPTIONAL,
+ tdd128-Measurements BOOLEAN OPTIONAL,
+ gsm-Measurements GSM-Measurements OPTIONAL,
+ multiCarrierMeasurements BOOLEAN OPTIONAL
+}
+
+COUNT-C-List ::= SEQUENCE (SIZE (1..maxCNdomains)) OF
+ COUNT-CSingle
+
+COUNT-CSingle ::= SEQUENCE {
+ cn-DomainIdentity CN-DomainIdentity,
+ count-C BIT STRING (SIZE (32))
+}
+
+DL-PhysChCapabilityFDD-r4 ::= SEQUENCE {
+ -- The IE "maxNoDPCH-PDSCH-Codes" only gives information on the maximum number of DPCH Codes.
+ maxNoDPCH-PDSCH-Codes INTEGER (1..8),
+ maxNoPhysChBitsReceived MaxNoPhysChBitsReceived,
+ supportForSF-512 BOOLEAN,
+ -- dummy, dummy2 and dummy3 are not used in this version of the specification
+ -- and if received they should be ignored.
+ dummy BOOLEAN,
+ dummy2 SimultaneousSCCPCH-DPCH-Reception,
+ dummy3 SupportOfDedicatedPilotsForChEstimation OPTIONAL
+}
+
+DL-PhysChCapabilityFDD-r5 ::= SEQUENCE {
+ -- The IE "maxNoDPCH-PDSCH-Codes" only gives information on the maximum number of DPCH Codes.
+ maxNoDPCH-PDSCH-Codes INTEGER (1..8),
+ maxNoPhysChBitsReceived MaxNoPhysChBitsReceived,
+ supportForSF-512 BOOLEAN,
+ -- dummy, dumy2 and dummy3 are not used in this version of the specification
+ -- and if received they should be ignored.
+ dummy BOOLEAN,
+ dummy2 SimultaneousSCCPCH-DPCH-Reception,
+ dummy3 SupportOfDedicatedPilotsForChEstimation OPTIONAL,
+ fdd-hspdsch CHOICE {
+ supported SEQUENCE {
+ hsdsch-physical-layer-category HSDSCH-physical-layer-category,
+ -- dummy and dummy2 are not used in this version of the specification
+ -- and if received they should be ignored.
+ dummy BOOLEAN,
+ dummy2 BOOLEAN
+ },
+ unsupported NULL
+ }
+}
+
+DL-PhysChCapabilityTDD-r5 ::= SEQUENCE {
+ maxTS-PerFrame MaxTS-PerFrame,
+ maxPhysChPerFrame MaxPhysChPerFrame,
+ minimumSF MinimumSF-DL,
+ supportOfPDSCH BOOLEAN,
+ maxPhysChPerTS MaxPhysChPerTS,
+ tdd384-hspdsch CHOICE {
+ supported HSDSCH-physical-layer-category,
+ unsupported NULL
+ }
+}
+
+DL-PhysChCapabilityTDD-LCR-r5 ::= SEQUENCE {
+ maxTS-PerSubFrame MaxTS-PerSubFrame-r4,
+ maxPhysChPerFrame MaxPhysChPerSubFrame-r4,
+ minimumSF MinimumSF-DL,
+ supportOfPDSCH BOOLEAN,
+ maxPhysChPerTS MaxPhysChPerTS,
+ supportOf8PSK BOOLEAN,
+ tdd128-hspdsch CHOICE {
+ supported HSDSCH-physical-layer-category,
+ unsupported NULL
+ }
+}
+
+DL-RFC3095-Context ::= SEQUENCE {
+ rfc3095-Context-Identity INTEGER (0..16383),
+ dl-mode ENUMERATED {u, o, r},
+ dl-ref-ir OCTET STRING ( SIZE (1..3000)),
+ dl-ref-time INTEGER (0..4294967295) OPTIONAL,
+ dl-curr-time INTEGER (0..4294967295) OPTIONAL,
+ dl-syn-offset-id INTEGER (0..65535) OPTIONAL,
+ dl-syn-slope-ts INTEGER (0..4294967295) OPTIONAL,
+ dl-dyn-changed BOOLEAN
+}
+
+E-RGCH-Combination-Info ::= SEQUENCE{
+ primaryCPICH-Info PrimaryCPICH-Info,
+ rg-CombinationIndex INTEGER (0..5)
+}
+
+E-RGCH-Combination-Info-r9 ::= SEQUENCE{
+ primaryCPICH-Info PrimaryCPICH-Info,
+ rg-CombinationIndex INTEGER (0..5)
+}
+
+E-RGCH-CombinationInfoList ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ E-RGCH-Combination-Info
+
+E-RGCH-CombinationInfoList-r9 ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF
+ E-RGCH-Combination-Info-r9
+
+ImplementationSpecificParams ::= BIT STRING (SIZE (1..512))
+
+IntegrityProtectionStatus ::= ENUMERATED {
+ started, notStarted }
+
+InterRAT-UE-RadioAccessCapabilityList-r5 ::= SEQUENCE {
+ interRAT-UE-RadioAccessCapability InterRAT-UE-RadioAccessCapabilityList,
+ geranIu-RadioAccessCapability GERANIu-RadioAccessCapability OPTIONAL
+}
+
+IntraFreqReportingCriteria-r6-ext ::= SEQUENCE {
+ -- The content of the v690 non-critical extension should be
+ -- considered as an extension of IE IntraFreqEventCriteriaList
+ event Event1j-r6,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ reportingCellStatus ReportingCellStatus OPTIONAL
+}
+
+-- dummy is not used in this version of the specification, it should
+-- not be sent and if received it should be ignored.
+MaxHcContextSpace-r5 ::= ENUMERATED {
+ dummy, by1024, by2048, by4096, by8192,
+ by16384, by32768, by65536, by131072 }
+
+MeasurementCapability-r4 ::= SEQUENCE {
+ downlinkCompressedMode CompressedModeMeasCapability-r4,
+ uplinkCompressedMode CompressedModeMeasCapability-r4
+}
+
+MeasurementCommandWithType ::= CHOICE {
+ setup MeasurementType,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r4 ::= CHOICE {
+ setup MeasurementType-r4,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r6 ::= CHOICE {
+ setup MeasurementType-r6,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r7 ::= CHOICE {
+ setup MeasurementType-r7,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r8 ::= CHOICE {
+ setup MeasurementType-r8,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r9 ::= CHOICE {
+ setup MeasurementType-r9,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r10 ::= CHOICE {
+ setup MeasurementType-r10,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r11 ::= CHOICE {
+ setup MeasurementType-r11,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r12 ::= CHOICE {
+ setup MeasurementType-r12,
+ modify NULL,
+ release NULL
+}
+
+MeasurementCommandWithType-r13 ::= CHOICE {
+ setup MeasurementType-r13,
+ modify NULL,
+ release NULL
+}
+
+OngoingMeasRep ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The CHOICE Measurement in the tabular description is included
+ -- in MeasurementCommandWithType
+ measurementCommandWithType MeasurementCommandWithType,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List OPTIONAL
+}
+
+OngoingMeasRep-r4 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The CHOICE Measurement in the tabular description is included
+ -- in MeasurementCommandWithType-r4.
+ measurementCommandWithType MeasurementCommandWithType-r4,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List OPTIONAL
+}
+
+OngoingMeasRep-r5 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The CHOICE Measurement in the tabular description is included
+ -- in MeasurementCommandWithType-r4.
+ measurementCommandWithType MeasurementCommandWithType-r4,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List OPTIONAL,
+ measurementCommand-v590ext CHOICE {
+ -- the choice "intra-frequency" shall be used for the case of intra-frequency measurement,
+ -- as well as when intra-frequency events are configured for inter-frequency measurement
+ intra-frequency Intra-FreqEventCriteriaList-v590ext,
+ inter-frequency Inter-FreqEventCriteriaList-v590ext
+ } OPTIONAL,
+ intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL,
+ intraFreqEvent-1d-r5 IntraFreqEvent-1d-r5 OPTIONAL
+}
+
+OngoingMeasRep-r6 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity,
+ measurementCommandWithType MeasurementCommandWithType-r6,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List OPTIONAL
+}
+
+OngoingMeasRep-r7 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity,
+ measurementCommandWithType MeasurementCommandWithType-r7,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List OPTIONAL
+}
+
+OngoingMeasRep-r8 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity,
+ measurementCommandWithType MeasurementCommandWithType-r8,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List OPTIONAL
+}
+
+OngoingMeasRep-r9 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity,
+ measurementCommandWithType MeasurementCommandWithType-r9,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ -- if any of the additional measurement ID is within the range 17 to 32,
+ -- "OngoingMeasRep-v970ext-IEs" should be present and should include
+ -- the IE "measurementIdentity" and "additionalMeasurementID-List".
+ -- The value of the IE "measurementIdentity" in "OngoingMeasRep-v970ext-IEs"
+ -- should be the same as the "measurementIdentity" value in "OngoingMeasRep-r9",
+ -- and "additionalMeasurementID-List" should contain the complete list.
+ -- The IE "additionalMeasurementID-List" in "OngoingMeasRep-r9" should still
+ -- contain the additional measurement ID which value is within the range 1 to 16.
+ additionalMeasurementID-List AdditionalMeasurementID-List OPTIONAL
+}
+
+-- The IE "OngoingMeasRep-v970ext-IEs" should be included to report
+-- measurementIdentity values within the range 17 to 32 and when a
+-- "measurementIdentity" in "OngoingMeasRep-r9" needs to contain one of the
+-- values within the range 17 to 32 in the IE "additionalMeasurementID-List".
+
+OngoingMeasRep-v970ext-IEs ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity-r9 OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List-r9 OPTIONAL
+}
+
+OngoingMeasRep-r10 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity,
+ measurementCommandWithType MeasurementCommandWithType-r10,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ -- if any of the additional measurement ID is within the range 17 to 32,
+ -- "OngoingMeasRep-v970ext-IEs" (in SRNC-RelocationInfo-vab0ext-IEs)should be present
+ -- and should include the IE "measurementIdentity" and
+ -- "additionalMeasurementID-List". In this case, the value of the IE "measurementIdentity" in
+ -- "OngoingMeasRep-v970ext-IEs" (in SRNC-RelocationInfo-vab0ext-IEs) should be the same as the
+ -- "measurementIdentity" value in "OngoingMeasRep-r10", and "additionalMeasurementID-List"
+ -- should contain the complete list.
+ -- The IE "additionalMeasurementID-List" in "OngoingMeasRep-r10" should still
+ -- contain the additional measurement ID which value is within the range 1 to 16.
+ additionalMeasurementID-List AdditionalMeasurementID-List OPTIONAL
+}
+
+OngoingMeasRep-r11 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity-r9,
+ measurementCommandWithType MeasurementCommandWithType-r11,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List-r9 OPTIONAL
+}
+
+OngoingMeasRep-r12 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity-r9,
+ measurementCommandWithType MeasurementCommandWithType-r12,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List-r9 OPTIONAL
+}
+
+OngoingMeasRep-r13 ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity-r9,
+ measurementCommandWithType MeasurementCommandWithType-r13,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementID-List AdditionalMeasurementID-List-r9 OPTIONAL
+}
+
+OngoingMeasRepList ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep
+
+OngoingMeasRepList-r4 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r4
+
+OngoingMeasRepList-r5 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r5
+
+OngoingMeasRepList-r6 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r6
+
+OngoingMeasRepList-r7 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r7
+
+OngoingMeasRepList-r8 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r8
+
+OngoingMeasRepList-r9 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r9
+
+OngoingMeasRepList-v970ext-IE ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-v970ext-IEs
+
+OngoingMeasRepList-r10 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r10
+
+OngoingMeasRepList-r11 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r11
+
+OngoingMeasRepList-r12 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r12
+
+OngoingMeasRepList-r13 ::= SEQUENCE (SIZE (1..maxNoOfMeas)) OF
+ OngoingMeasRep-r13
+
+PDCP-Capability-r4 ::= SEQUENCE {
+ losslessSRNS-RelocationSupport BOOLEAN,
+ supportForRfc2507 CHOICE {
+ notSupported NULL,
+ supported MaxHcContextSpace
+ },
+ supportForRfc3095 CHOICE {
+ notSupported NULL,
+ supported SEQUENCE {
+ maxROHC-ContextSessions MaxROHC-ContextSessions-r4 DEFAULT s16,
+ reverseCompressionDepth INTEGER (0..65535) DEFAULT 0
+ }
+ }
+}
+
+PDCP-Capability-r5 ::= SEQUENCE {
+ losslessSRNS-RelocationSupport BOOLEAN,
+ supportForRfc2507 CHOICE {
+ notSupported NULL,
+ supported MaxHcContextSpace-r5
+ },
+ supportForRfc3095 CHOICE {
+ notSupported NULL,
+ supported SEQUENCE {
+ maxROHC-ContextSessions MaxROHC-ContextSessions-r4 DEFAULT s16,
+ reverseCompressionDepth INTEGER (0..65535) DEFAULT 0,
+ supportForRfc3095ContextRelocation BOOLEAN
+ }
+ }
+}
+
+PDCP-Capability-r6 ::= SEQUENCE {
+ losslessSRNS-RelocationSupport BOOLEAN,
+ losslessDLRLC-PDUSizeChange ENUMERATED { true } OPTIONAL,
+ supportForRfc2507 CHOICE {
+ notSupported NULL,
+ supported MaxHcContextSpace-r5
+ },
+ supportForRfc3095 CHOICE {
+ notSupported NULL,
+ supported SEQUENCE {
+ maxROHC-ContextSessions MaxROHC-ContextSessions-r4 DEFAULT s16,
+ reverseCompressionDepth INTEGER (0..65535) DEFAULT 0,
+ supportForRfc3095ContextRelocation BOOLEAN
+ }
+ }
+}
+
+PhysicalChannelCapability-r4 ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-r4,
+ uplinkPhysChCapability UL-PhysChCapabilityFDD
+ } OPTIONAL,
+ tdd384-PhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD
+ } OPTIONAL,
+ tdd128-PhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD-LCR-r4,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD-LCR-r4
+ } OPTIONAL
+}
+
+PhysicalChannelCapability-r5 ::= SEQUENCE {
+ fddPhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityFDD-r5,
+ uplinkPhysChCapability UL-PhysChCapabilityFDD
+ } OPTIONAL,
+ tdd384-PhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD-r5,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD
+ } OPTIONAL,
+ tdd128-PhysChCapability SEQUENCE {
+ downlinkPhysChCapability DL-PhysChCapabilityTDD-LCR-r5,
+ uplinkPhysChCapability UL-PhysChCapabilityTDD-LCR-r4
+ } OPTIONAL
+}
+
+RF-Capability-r4 ::= SEQUENCE {
+ fddRF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClassExt,
+ txRxFrequencySeparation TxRxFrequencySeparation
+ } OPTIONAL,
+ tdd384-RF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClassExt,
+ radioFrequencyBandTDDList RadioFrequencyBandTDDList,
+ chipRateCapability ChipRateCapability
+ } OPTIONAL,
+ tdd128-RF-Capability SEQUENCE {
+ ue-PowerClass UE-PowerClassExt,
+ radioFrequencyBandTDDList RadioFrequencyBandTDDList,
+ chipRateCapability ChipRateCapability
+ } OPTIONAL
+}
+
+RFC3095-ContextInfo ::= SEQUENCE {
+ rb-Identity RB-Identity,
+ rfc3095-Context-List RFC3095-Context-List
+}
+
+RFC3095-Context-List ::= SEQUENCE (SIZE (1..maxRFC3095-CID)) OF SEQUENCE {
+ dl-RFC3095-Context DL-RFC3095-Context OPTIONAL,
+ ul-RFC3095-Context UL-RFC3095-Context OPTIONAL
+}
+
+RLC-Capability-r5 ::= SEQUENCE {
+ totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-r5,
+ maximumRLC-WindowSize MaximumRLC-WindowSize,
+ maximumAM-EntityNumber MaximumAM-EntityNumberRLC-Cap
+}
+
+
+SRB-SpecificIntegrityProtInfo ::= SEQUENCE {
+ ul-RRC-HFN BIT STRING (SIZE (28)),
+ dl-RRC-HFN BIT STRING (SIZE (28)),
+ ul-RRC-SequenceNumber RRC-MessageSequenceNumber,
+ dl-RRC-SequenceNumber RRC-MessageSequenceNumber
+}
+
+SRB-SpecificIntegrityProtInfoList ::= SEQUENCE (SIZE (4..maxSRBsetup)) OF
+ SRB-SpecificIntegrityProtInfo
+
+StateOfRRC ::= ENUMERATED {
+ cell-DCH, cell-FACH,
+ cell-PCH, ura-PCH }
+
+StateOfRRC-Procedure ::= ENUMERATED {
+ awaitNoRRC-Message,
+ awaitRB-ReleaseComplete,
+ awaitRB-SetupComplete,
+ awaitRB-ReconfigurationComplete,
+ awaitTransportCH-ReconfigurationComplete,
+ awaitPhysicalCH-ReconfigurationComplete,
+ awaitActiveSetUpdateComplete,
+ awaitHandoverComplete,
+ sendCellUpdateConfirm,
+ sendUraUpdateConfirm,
+ -- dummy is not used in this version of specification
+ -- It should not be sent
+ dummy,
+ otherStates
+}
+
+TotalRLC-AM-BufferSize-r5 ::= ENUMERATED {
+ kb10, kb50, kb100, kb150, kb200,
+ kb300, kb400, kb500, kb750, kb1000 }
+
+TPC-Combination-Info ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ tpc-CombinationIndex TPC-CombinationIndex
+}
+
+TPC-Combination-Info-r9 ::= SEQUENCE {
+ primaryCPICH-Info PrimaryCPICH-Info,
+ tpc-CombinationIndex TPC-CombinationIndex
+}
+
+UE-MultiModeRAT-Capability-r5 ::= SEQUENCE {
+ multiRAT-CapabilityList MultiRAT-Capability,
+ multiModeCapability MultiModeCapability,
+ supportOfUTRAN-ToGERAN-NACC BOOLEAN
+}
+
+UE-Positioning-Capability-r4 ::= SEQUENCE {
+ standaloneLocMethodsSupported BOOLEAN,
+ ue-BasedOTDOA-Supported BOOLEAN,
+ networkAssistedGPS-Supported NetworkAssistedGPS-Supported,
+ supportForUE-GPS-TimingOfCellFrames BOOLEAN,
+ supportForIPDL BOOLEAN,
+ rx-tx-TimeDifferenceType2Capable BOOLEAN,
+ validity-CellPCH-UraPCH ENUMERATED { true } OPTIONAL,
+ sfn-sfnType2Capability ENUMERATED { true } OPTIONAL
+}
+
+UE-Positioning-LastKnownPos ::= SEQUENCE {
+ sfn INTEGER (0..4095),
+ cell-id CellIdentity,
+ positionEstimate PositionEstimate
+}
+
+UE-RadioAccessCapability-r4 ::= SEQUENCE {
+ accessStratumReleaseIndicator AccessStratumReleaseIndicator,
+ pdcp-Capability PDCP-Capability-r4,
+ rlc-Capability RLC-Capability,
+ transportChannelCapability TransportChannelCapability,
+ rf-Capability RF-Capability-r4,
+ physicalChannelCapability PhysicalChannelCapability-r4,
+ ue-MultiModeRAT-Capability UE-MultiModeRAT-Capability,
+ securityCapability SecurityCapability,
+ ue-positioning-Capability UE-Positioning-Capability-r4,
+ measurementCapability MeasurementCapability-r4 OPTIONAL
+}
+
+UE-RadioAccessCapability-r5 ::= SEQUENCE {
+ accessStratumReleaseIndicator AccessStratumReleaseIndicator,
+ dl-CapabilityWithSimultaneousHS-DSCHConfig
+ DL-CapabilityWithSimultaneousHS-DSCHConfig OPTIONAL,
+ pdcp-Capability PDCP-Capability-r5,
+ rlc-Capability RLC-Capability-r5,
+ transportChannelCapability TransportChannelCapability,
+ rf-Capability RF-Capability-r4,
+ physicalChannelCapability PhysicalChannelCapability-r5,
+ ue-MultiModeRAT-Capability UE-MultiModeRAT-Capability-r5,
+ securityCapability SecurityCapability,
+ ue-positioning-Capability UE-Positioning-Capability-r4,
+ measurementCapability MeasurementCapability-r4 OPTIONAL
+}
+
+UE-RadioAccessCapability-r6 ::= SEQUENCE {
+ accessStratumReleaseIndicator AccessStratumReleaseIndicator,
+ dl-CapabilityWithSimultaneousHS-DSCHConfig
+ DL-CapabilityWithSimultaneousHS-DSCHConfig OPTIONAL,
+ pdcp-Capability PDCP-Capability-r6,
+ rlc-Capability RLC-Capability-r5,
+ transportChannelCapability TransportChannelCapability,
+ rf-Capability RF-Capability-r4,
+ physicalChannelCapability PhysicalChannelCapability-r5,
+ ue-MultiModeRAT-Capability UE-MultiModeRAT-Capability-r5,
+ securityCapability SecurityCapability,
+ ue-positioning-Capability UE-Positioning-Capability-r4,
+ measurementCapability MeasurementCapability-r4 OPTIONAL
+}
+
+UL-RFC3095-Context ::= SEQUENCE {
+ rfc3095-Context-Identity INTEGER (0..16383),
+ ul-mode ENUMERATED {u, o, r},
+ ul-ref-ir OCTET STRING ( SIZE (1..3000)),
+ ul-ref-time INTEGER (0..4294967295) OPTIONAL,
+ ul-curr-time INTEGER (0..4294967295) OPTIONAL,
+ ul-syn-offset-id INTEGER (0..65535) OPTIONAL,
+ ul-syn-slope-ts INTEGER (0..4294967295) OPTIONAL,
+ ul-ref-sn-1 INTEGER (0..65535) OPTIONAL
+}
+
+END
diff --git a/epan/dissectors/asn1/rrc/Makefile.am b/epan/dissectors/asn1/rrc/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/rrc/Makefile.common b/epan/dissectors/asn1/rrc/Makefile.common
new file mode 100644
index 0000000000..7058480156
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = rrc
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ Class-definitions.asn \
+ PDU-definitions.asn \
+ InformationElements.asn \
+ Constant-definitions.asn \
+ Internode-definitions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/rrc/Makefile.nmake b/epan/dissectors/asn1/rrc/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/rrc/PDU-definitions.asn b/epan/dissectors/asn1/rrc/PDU-definitions.asn
new file mode 100644
index 0000000000..67d523bbae
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/PDU-definitions.asn
@@ -0,0 +1,13351 @@
+-- 3GPP TS 25.331 V13.1.0 (2015-12)
+--
+-- 11.2 PDU definitions
+--
+
+PDU-definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+--**************************************************************
+--
+-- IE parameter types from other modules
+--
+--**************************************************************
+
+IMPORTS
+
+-- Core Network IEs :
+ CN-DomainIdentity,
+ CN-InformationInfo,
+ CN-InformationInfo-r6,
+ CN-InformationInfoFull,
+ DomainSpecificAccessRestrictionParam-v670ext,
+ NAS-Message,
+ PagingRecordTypeID,
+ PagingPermissionWithAccessControlParameters,
+ PLMN-Identity,
+-- UTRAN Mobility IEs :
+ CellIdentity,
+ CellIdentity-PerRL-List,
+ DedicatedPriorityInformation,
+ DedicatedPriorityInformation-r11,
+ DedicatedPriorityInformation-r13,
+ DedicatedWLANOffloadInformation,
+ URA-Identity,
+-- User Equipment IEs :
+ AccessGroupIdentity,
+ AccessStratumReleaseIndicator,
+ ActivationTime,
+ C-RNTI,
+ CapabilityUpdateRequirement,
+ CapabilityUpdateRequirement-r4,
+ CapabilityUpdateRequirement-r4-ext,
+ CapabilityUpdateRequirement-r5,
+ CapabilityUpdateRequirement-v770ext,
+ CapabilityUpdateRequirement-v860ext,
+ CapabilityUpdateRequirement-vaj0ext,
+ CapabilityUpdateRequirement-r7,
+ CapabilityUpdateRequirement-r8,
+ CapabilityUpdateRequirement-r12,
+ CellUpdateCause,
+ CellUpdateCause-ext,
+ CipheringAlgorithm,
+ CipheringAlgorithm-r7,
+ CipheringModeInfo,
+ CipheringModeInfo-r7,
+ DelayRestrictionFlag,
+ DL-PhysChCapabilityFDD-v380ext,
+ DSCH-RNTI,
+ DynamicActivationTime,
+ E-RNTI,
+ EstablishmentCause,
+ ExtendedWaitTime,
+ FailureCauseWithProtErr,
+ FailureCauseWithProtErrTrId,
+ FrequencyBandsIndicatorSupport,
+ GroupReleaseInformation,
+ H-RNTI,
+ High-MobilityDetected,
+ InitialUE-Identity,
+ IntegrityProtActivationInfo,
+ IntegrityProtectionModeInfo,
+ IntegrityProtectionModeInfo-r7,
+ N-308,
+ PagingCause,
+ PagingRecordList,
+ PagingRecord2List-r5,
+ PDCP-Capability-r4-ext,
+ PDCP-Capability-v770ext,
+ Pre-RedirectionInfo,
+ ProtocolErrorIndicator,
+ ProtocolErrorIndicatorWithMoreInfo,
+ RadioFrequencyBandTDDList,
+ Rb-timer-indicator,
+ RedirectionInfo,
+ RedirectionInfo-r6,
+ RedirectionInfo-v860ext,
+ RejectionCause,
+ ReleaseCause,
+ RF-CapabBandListFDDComp-ext2,
+ RF-CapabilityComp,
+ RRC-StateIndicator,
+ RRC-TransactionIdentifier,
+ RSR-VCC-Info,
+ SecurityCapability,
+ SR-VCC-Info,
+ SR-VCC-SecurityRABInfo-v860ext,
+ START-Value,
+ STARTList,
+ SystemSpecificCapUpdateReq-v590ext,
+ U-RNTI,
+ U-RNTI-Short,
+ UESpecificBehaviourInformation1idle,
+ UESpecificBehaviourInformation1interRAT,
+ UE-CapabilityContainer-IEs,
+ UE-ConnTimersAndConstants,
+ UE-ConnTimersAndConstants-v3a0ext,
+ UE-ConnTimersAndConstants-v860ext,
+ UE-ConnTimersAndConstants-r5,
+ UE-ConnTimersAndConstants-r11,
+ UE-HSPA-Identities-r6,
+ UE-RadioAccessCapabBandFDDList2,
+ UE-RadioAccessCapabBandFDDList-ext,
+ UE-RadioAccessCapabBand-va40ext,
+ UE-RadioAccessCapability,
+ UE-RadioAccessCapability-v370ext,
+ UE-RadioAccessCapability-v380ext,
+ UE-RadioAccessCapability-v3a0ext,
+ UE-RadioAccessCapability-v3g0ext,
+ UE-RadioAccessCapability-v4b0ext,
+ UE-RadioAccessCapability-v590ext,
+ UE-RadioAccessCapability-v5c0ext,
+ UE-RadioAccessCapability-v650ext,
+ UE-RadioAccessCapability-v680ext,
+ UE-RadioAccessCapability-v7e0ext,
+ UE-RadioAccessCapability-v7f0ext,
+ UE-RadioAccessCapability-v860ext,
+ UE-RadioAccessCapability-v880ext,
+ UE-RadioAccessCapability-v890ext,
+ UE-RadioAccessCapability-v920ext,
+ UE-RadioAccessCapability-va40ext,
+ UE-RadioAccessCapability-va80ext,
+ UE-RadioAccessCapability-va60ext,
+ UE-RadioAccessCapability-vb50ext,
+ UE-RadioAccessCapability-vb70ext,
+ UE-RadioAccessCapability-vbc0ext,
+ UE-RadioAccessCapability-vdxyext,
+ UE-RadioAccessCapabilityComp,
+ UE-RadioAccessCapabilityComp-ext,
+ UE-RadioAccessCapabilityComp-v770ext,
+ UE-RadioAccessCapabilityComp2,
+ UE-RadioAccessCapabilityComp2-v770ext,
+ UE-RadioAccessCapabilityComp2-v7f0ext,
+ UE-RadioAccessCapabilityComp2-v860ext,
+ UE-RadioAccessCapabilityComp2-v920ext,
+ UE-RadioAccessCapabilityComp2-va40ext,
+ UE-RadioAccessCapabilityComp2-vb50ext,
+ UE-RadioAccessCapabilityComp2-vc50ext,
+ UE-RadioAccessCapabilityComp2-vdxyext,
+ UE-RadioAccessCapabilityComp-TDD128,
+ UE-RadioAccessCapabilityInfo-v770ext,
+ UE-RadioAccessCapabilityInfo-TDD128-v8b0ext,
+ UE-RadioAccessCapabilityInfo-TDD128-vb50ext,
+ UE-SecurityInformation,
+ UE-SecurityInformation2,
+ UE-SpecificCapabilityInformation-LCRTDD,
+ URA-UpdateCause,
+ UTRAN-DRX-CycleLengthCoefficient,
+ UTRAN-DRX-CycleLengthCoefficient-r7,
+ WaitTime,
+-- Radio Bearer IEs :
+ DefaultConfigIdentity,
+ DefaultConfigIdentity-r4,
+ DefaultConfigIdentity-r5,
+ DefaultConfigIdentity-r6,
+ DefaultConfigForCellFACH,
+ DefaultConfigMode,
+ DL-CounterSynchronisationInfo,
+ DL-CounterSynchronisationInfo-r5,
+ PDCP-ROHC-TargetMode,
+ PredefinedConfigIdentity,
+ PredefinedConfigStatusList,
+ PredefinedConfigStatusListComp,
+ PredefinedConfigSetWithDifferentValueTag,
+ RAB-Info,
+ RAB-Info-r6,
+ RAB-Info-r7,
+ RAB-Info-Post,
+ RAB-InformationList,
+ RAB-InformationList-r6,
+ RAB-InformationReconfigList,
+ RAB-InformationReconfigList-r8,
+ RAB-InformationMBMSPtpList,
+ RAB-InformationSetup-r7,
+ RAB-InformationSetup-r8,
+ RAB-InformationSetup-v820ext,
+ RAB-InformationSetup-r11,
+ RAB-InformationSetupList,
+ RAB-InformationSetupList-r4,
+ RAB-InformationSetupList-r5,
+ RAB-InformationSetupList-r6-ext,
+ RAB-InformationSetupList-r6,
+ RAB-InformationSetupList-v6b0ext,
+ RAB-InformationSetupList-r7,
+ RAB-InformationSetupList-r8,
+ RAB-InformationSetupList-v820ext,
+ RAB-InformationSetupList-r11,
+ RB-ActivationTimeInfoList,
+ RB-COUNT-C-InformationList,
+ RB-COUNT-C-MSB-InformationList,
+ RB-IdentityList,
+ RB-InformationAffectedList,
+ RB-InformationAffectedList-r5,
+ RB-InformationAffectedList-r6,
+ RB-InformationAffectedList-r7,
+ RB-InformationAffectedList-r8,
+ RB-InformationChangedList-r6,
+ RB-InformationReconfigList,
+ RB-InformationReconfigList-r4,
+ RB-InformationReconfigList-r5,
+ RB-InformationReconfigList-r6,
+ RB-InformationReconfigList-r7,
+ RB-InformationReconfigList-r8,
+ RB-InformationReconfigList-r11,
+ RB-InformationReleaseList,
+ RB-PDCPContextRelocationList,
+ RetrievableConfigInfo,
+ SRB-InformationSetupList,
+ SRB-InformationSetupList-r5,
+ SRB-InformationSetupList-r6,
+ SRB-InformationSetupList-r7,
+ SRB-InformationSetupList-r8,
+ SRB-InformationSetupList-r11,
+ SRB-InformationSetupList2,
+ SRB-InformationSetupList2-r6,
+ SRB-InformationSetupList2-r7,
+ SRB-InformationSetupList2-r8,
+ UL-AMR-Rate,
+ UL-CounterSynchronisationInfo,
+-- Transport Channel IEs:
+ CPCH-SetID,
+ DL-AddReconfTransChInfo2List,
+ DL-AddReconfTransChInfoList,
+ DL-AddReconfTransChInfoList-r4,
+ DL-AddReconfTransChInfoList-r5,
+ DL-AddReconfTransChInfoList-r7,
+ DL-AddReconfTransChInfoList-r9,
+ DL-AddReconfTransChInfoList-r13,
+ DL-AddReconfTransChInfoList-TDD128-v9c0ext,
+ DL-AddReconfTransChInfoList-r11,
+ DL-CommonTransChInfo,
+ DL-CommonTransChInfo-r4,
+ DL-DeletedTransChInfoList,
+ DL-DeletedTransChInfoList-r5,
+ DL-DeletedTransChInfoList-r7,
+ DRAC-StaticInformationList,
+ HARQ-Info-r7,
+ HARQ-Info-r11,
+ HARQ-Info-r13,
+ PowerOffsetInfoShort,
+ TFC-Subset,
+ TFCS-Identity,
+ UL-AddReconfTransChInfoList,
+ UL-AddReconfTransChInfoList-r6,
+ UL-AddReconfTransChInfoList-r7,
+ UL-AddReconfTransChInfoList-r8,
+ UL-CommonTransChInfo,
+ UL-CommonTransChInfo-r4,
+ UL-CommonTransChInfo-r12,
+ UL-DeletedTransChInfoList,
+ UL-DeletedTransChInfoList-r6,
+-- Physical Channel IEs :
+ AdditionalDLSecCellInfoListFDD,
+ AdditionalDLSecCellInfoListFDD-r11,
+ AdditionalDLSecCellInfoListFDD2,
+ AdditionalDLSecCellInfoHandoverToUtranListFDD,
+ Alpha,
+ BEACON-PL-Est,
+ CCTrCH-PowerControlInfo,
+ CCTrCH-PowerControlInfo-r4,
+ CCTrCH-PowerControlInfo-r5,
+ CCTrCH-PowerControlInfo-r7,
+ CommonERGCHInfoFDD,
+ ConstantValue,
+ ConstantValueTdd,
+ ControlChannelDRXInfo-TDD128-r8,
+ CPCH-SetInfo,
+ DCH-Enhancements-Info-FDD,
+ DHS-Sync,
+ DL-CommonInformation,
+ DL-CommonInformation-r4,
+ DL-CommonInformation-r5,
+ DL-CommonInformation-r6,
+ DL-CommonInformation-r7,
+ DL-CommonInformation-r8,
+ DL-CommonInformation-r10,
+ DL-CommonInformation-r11,
+ DL-CommonInformation-r12,
+ DL-CommonInformationPost,
+ DL-HSPDSCH-Information,
+ DL-HSPDSCH-Information-r6,
+ DL-HSPDSCH-Information-r7,
+ DL-HSPDSCH-Information-r8,
+ DL-HSPDSCH-Information-r8-ext,
+ DL-HSPDSCH-Information-r9,
+ DL-HSPDSCH-Information-r8-ext2,
+ DL-HSPDSCH-Information-r11,
+ DL-HSPDSCH-Information-r12,
+ DL-HSPDSCH-MultiCarrier-Information,
+ DL-InformationPerRL-List,
+ DL-InformationPerRL-List-r4,
+ DL-InformationPerRL-List-r5,
+ DL-InformationPerRL-List-r5bis,
+ DL-InformationPerRL-List-r6,
+ DL-InformationPerRL-List-r7,
+ DL-InformationPerRL-List-r8,
+ DL-InformationPerRL-List-v6b0ext,
+ DL-InformationPerRL-List-r11,
+ DL-InformationPerRL-List-r12,
+ DL-InformationPerRL-List-r13,
+ DL-InformationPerRL-ListPostFDD,
+ DL-InformationPerRL-PostTDD,
+ DL-InformationPerRL-PostTDD-LCR-r4,
+ DL-MultiCarrier-Information,
+ DL-PDSCH-Information,
+ DL-SecondaryCellInfoFDD,
+ DL-SecondaryCellInfoFDD-v890ext,
+ DL-SecondaryCellInfoFDD-r9,
+ DL-SecondaryCellInfoFDD-r10,
+ DL-SecondaryCellInfoFDD-r11,
+ DL-SecondaryCellInfoFDD-HandoverToUtran,
+ DL-TPC-PowerOffsetPerRL-List,
+ DLUL-HSPA-Information-r8,
+ DLUL-HSPA-Information-r9,
+ DLUL-HSPA-Information-r10,
+ DPC-Mode,
+ DPCCH2InfoFDD,
+ DPCH-CompressedModeStatusInfo,
+ DPCH-CompressedModeStatusInfo-r10,
+ DTX-DRX-TimingInfo-r7,
+ DTX-DRX-Info-r7,
+ DTX-DRX-Info-r12,
+ DynamicPersistenceLevel,
+ E-DCH-ReconfigurationInfo,
+ E-DCH-ReconfigurationInfo-SecULFrequency,
+ E-DCH-ReconfigurationInfo-r7,
+ E-DCH-ReconfigurationInfo-r11,
+ E-DCH-RL-InfoSameServingCell,
+ E-TFC-Boost-Info-r7,
+ E-DPDCH-PowerInterpolation,
+ EUTRA-TargetFreqInfoList-vb50ext,
+ EXT-UL-TimingAdvance,
+ Feedback-cycle-r7,
+ FilteredUEPowerHeadroomReportInfo,
+ FrequencyInfo,
+ FrequencyInfoFDD,
+ FrequencyInfoTDD,
+ F-TPICH-ReconfigurationInfo,
+ HARQ-Preamble-Mode,
+ HS-DSCH-TBSizeTable,
+ HS-SCCH-LessInfo-r7,
+ HS-SICH-Power-Control-Info-TDD384,
+ HS-SICH-Power-Control-Info-TDD768,
+ MaxAllowedUL-TX-Power,
+ MIMO-Parameters-r7,
+ MIMO-Parameters-v7f0ext,
+ MIMO-Parameters-v7g0ext,
+ MIMO-Parameters-r8,
+ MIMO-Parameters-r9,
+ MIMO4x4-Parameters,
+ Multi-frequencyInfo-LCR-r7,
+ MU-MIMO-Info-TDD128,
+ Non-rectResAllocInd-TDD128,
+ Non-rectResSpecTSset-TDD128,
+ OpenLoopPowerControl-IPDL-TDD-r4,
+ PDSCH-CapacityAllocationInfo,
+ PDSCH-CapacityAllocationInfo-r4,
+ PDSCH-CapacityAllocationInfo-r7,
+ PDSCH-Identity,
+ OtherStateConfig,
+ PrimaryCPICH-Info,
+ PrimaryCCPCH-TX-Power,
+ PUSCH-CapacityAllocationInfo,
+ PUSCH-CapacityAllocationInfo-r4,
+ PUSCH-CapacityAllocationInfo-r7,
+ PUSCH-Identity,
+ PUSCH-SysInfoList-HCR-r5,
+ PDSCH-SysInfoList-HCR-r5,
+ RL-AdditionInformationList,
+ RL-AdditionInformationList-r6,
+ RL-AdditionInformation-list-v6b0ext,
+ RL-AdditionInformationList-r7,
+ RL-AdditionInformationList-r8,
+ RL-AdditionInformationList-v890ext,
+ RL-AdditionInformationList-r9,
+ RL-AdditionInformationList-v950ext,
+ RL-AdditionInformationList-r10,
+ RL-AdditionInformationList-vb50ext,
+ RL-AdditionInformationList-r11,
+ RL-AdditionInformationList-r12,
+ RL-AdditionInformationList-r13,
+ RL-AdditionInformationList-SecULFreq,
+ RL-AdditionInformationList-SecULFreq-r12,
+ RL-AdditionInformationList-SecULFreq-r13,
+ RL-RemovalInformationList,
+ RL-RemovalInformationList-SecULFreq,
+ SecondaryCellMIMOparametersFDD-v950ext,
+ Serving-HSDSCH-CellInformation,
+ Serving-HSDSCH-CellInformation-r7,
+ Serving-HSDSCH-CellInformation-r8,
+ Serving-HSDSCH-CellInformation-r9,
+ Serving-HSDSCH-CellInformation-r11,
+ Serving-HSDSCH-CellInformation-r12,
+ ServingCellChangeParameters,
+ ServingCellChangeParameters-r12,
+ SpecialBurstScheduling,
+ SPS-Information-TDD128-r8,
+ SSDT-Information,
+ SSDT-Information-r4,
+ SSDT-UL,
+ StandaloneMidambleInfo-TDD128,
+ TFC-ControlDuration,
+ TimeslotList,
+ TimeslotList-r4,
+ TimingMaintainedSynchInd,
+ TX-DiversityMode,
+ UL-16QAM-Config,
+ UL-64QAM-Config,
+ UL-ChannelRequirement,
+ UL-ChannelRequirement-r4,
+ UL-ChannelRequirement-r5,
+ UL-ChannelRequirementWithCPCH-SetID,
+ UL-ChannelRequirementWithCPCH-SetID-r4,
+ UL-ChannelRequirementWithCPCH-SetID-r5,
+ UL-CLTD-InfoFDD,
+ UL-MIMO-InfoFDD,
+ UL-DPCH-Info,
+ UL-DPCH-Info-r4,
+ UL-DPCH-Info-r5,
+ UL-DPCH-Info-r6,
+ UL-DPCH-Info-r7,
+ UL-DPCH-Info-r11,
+ UL-DPCH-InfoPostFDD,
+ UL-DPCH-InfoPostTDD,
+ UL-DPCH-InfoPostTDD-LCR-r4,
+ UL-EDCH-Information-ext,
+ UL-EDCH-Information-r6,
+ UL-EDCH-Information-r7,
+ UL-EDCH-Information-r8,
+ UL-EDCH-Information-r9,
+ UL-EDCH-Information-r11,
+ UL-MulticarrierEDCHInfo-TDD128,
+ UL-OLTD-InfoFDD,
+ UL-OtherTTIConfiguration-Information,
+ UL-SecondaryCellInfoFDD,
+ UL-SecondaryCellInfoFDD-r12,
+ UL-SecondaryCellInfoFDD-r13,
+ UL-SynchronisationParameters-r4,
+ UL-TimingAdvance,
+ UL-TimingAdvanceControl,
+ UL-TimingAdvanceControl-r4,
+ UL-TimingAdvanceControl-r7,
+ UpPCHposition-LCR,
+-- Measurement IEs :
+ AdditionalMeasurementID-List,
+ AdditionalMeasurementID-List-r9,
+ CellDCHMeasOccasionInfo-TDD128-r9,
+ CSGProximityIndication,
+ CSGProximityIndication-vb50ext,
+ DeltaRSCP,
+ Frequency-Band,
+ EventResults,
+ EventResults-v770ext,
+ EventResults-v860ext,
+ EventResults-va40ext,
+ EventResultsOnSecUlFreq,
+ EUTRA-EventResults,
+ EUTRA-EventResults-vb50ext,
+ EUTRA-EventResults-vc50ext,
+ EUTRA-MeasuredResults,
+ EUTRA-MeasuredResults-v920ext,
+ EUTRA-MeasuredResults-vb50ext,
+ EUTRA-MeasuredResults-vc50ext,
+ EUTRA-EventResultsForCELLFACH,
+ EUTRA-EventResultsForCELLFACH-vc50ext,
+ Inter-FreqEventCriteriaList-v590ext,
+ Intra-FreqEventCriteriaList-v590ext,
+ IntraFreqReportingCriteria-1b-r5,
+ IntraFreqEvent-1d-r5,
+ IntraFreqCellID,
+ InterFreqEventResults-LCR-r4-ext,
+ InterRATCellInfoIndication,
+ InterRATMeasurement-r11,
+ InterRATMeasurement-r12,
+ InterRAT-TargetCellDescription,
+ MeasuredResults,
+ MeasuredResults-v390ext,
+ MeasuredResults-v590ext,
+ MeasuredResults-v770ext,
+ MeasuredResults-v860ext,
+ MeasuredResults-v920ext,
+ MeasuredResults-vc50ext,
+ MeasuredResults-vdxyext,
+ MeasuredResultsOnSecUlFreq,
+ MeasuredResultsOnSecUlFreq-vc50ext,
+ MeasuredResultsListOnSecUlFreq,
+ MeasuredResultsListOnSecUlFreq-vc50ext,
+ MeasuredResultsList,
+ MeasuredResultsList-LCR-r4-ext,
+ MeasuredResultsList-v770xet,
+ MeasuredResultsList-v860ext,
+ MeasuredResultsList-v920ext,
+ MeasuredResultsList-vc50ext,
+ MeasuredResultsList-vdxyext,
+ MeasuredResultsOnRACH,
+ MeasuredResultsOnRACHFDD-r11,
+ MeasuredResultsOnRACH-v7g0ext,
+ MeasuredResultsOnRACHinterFreq,
+ MeasuredResultsOnRACH-vc50ext,
+ MeasuredResultsOnRACH-EUTRAFreq,
+ MeasurementCommand,
+ MeasurementCommand-r4,
+ MeasurementCommand-r6,
+ MeasurementCommand-r7,
+ MeasurementCommand-r8,
+ MeasurementCommand-r9,
+ MeasurementCommand-r10,
+ MeasurementCommand-r11,
+ MeasurementReleaseEnhancement,
+ MeasurementCommand-r12,
+ MeasurementCommand-r13,
+ MeasurementIdentity,
+ MeasurementIdentity-r9,
+ MeasurementIdentityExt,
+ MeasurementReportingMode,
+ MeasurementScalingFactor,
+ NewInterFreqCellList-v7b0ext,
+ NewInterFreqCellList-LCR-v8a0ext,
+ NewIntraFreqCellList-LCR-v8a0ext,
+ PeriodicalWithReportingCellStatusOnSecULFreq,
+ PrimaryCCPCH-RSCP,
+ SFN-Offset-Validity,
+ TimeslotListWithISCP,
+ TrafficVolumeMeasuredResultsList,
+ UE-Positioning-GPS-AssistanceData,
+ UE-Positioning-GPS-AssistanceData-v770ext,
+ UE-Positioning-GPS-AssistanceData-v920ext,
+ UE-Positioning-GPS-AssistanceData-va40ext,
+ UE-Positioning-GPS-AssistanceData-vc50ext,
+ UE-Positioning-GPS-ReferenceTimeUncertainty,
+ UE-Positioning-Measurement-v390ext,
+ UE-Positioning-OTDOA-AssistanceData,
+ UE-Positioning-OTDOA-AssistanceData-r4ext,
+ UE-Positioning-OTDOA-AssistanceData-UEB,
+ UE-Positioning-OTDOA-AssistanceData-UEB-ext,
+ UE-Positioning-OTDOA-MeasuredResultsTDD-ext,
+ UE-Positioning-GANSS-AssistanceData,
+ UE-Positioning-GANSS-AssistanceData-v860ext,
+ UE-Positioning-GANSS-AssistanceData-v920ext,
+ UE-Positioning-GANSS-AssistanceData-va40ext,
+ UE-Positioning-GANSS-AssistanceData-vc50ext,
+-- Other IEs :
+ BCCH-ModificationInfo,
+ BCCH-ModificationInfo-vc50ext,
+ CDMA2000-MessageList,
+ CellValueTag2,
+ ETWS-Information,
+ ETWS-WarningSecurityInfo,
+ GSM-TargetCellInfoList,
+ GERANIu-MessageList,
+ GERAN-SystemInformation,
+ GSM-MessageList,
+ InterRAT-ChangeFailureCause,
+ InterRAT-HO-FailureCause,
+ InterRAT-UE-RadioAccessCapabilityList,
+ InterRAT-UE-RadioAccessCapability-v590ext,
+ InterRAT-UE-SecurityCapList,
+ IntraDomainNasNodeSelector,
+ MasterInformationBlock,
+ MIB-ValueTag,
+ ProtocolErrorMoreInformation,
+ RMP-Frequency-List,
+ Rplmn-Information,
+ Rplmn-Information-r4,
+ SegCount,
+ SegmentIndex,
+ SFN-Prime,
+ SIB-Data-fixed,
+ SIB-Data2-fixed,
+ SIB-Data-variable,
+ SIB-Data2-variable,
+ SIB-Type,
+ SIB-Type2,
+ SysInfoType1,
+ SysInfoType3,
+ SysInfoType5,
+ SysInfoType7,
+ SysInfoType11,
+ SysInfoType11bis,
+ SysInfoType11ter,
+ SysInfoType12,
+ SysInfoTypeSB1,
+ SysInfoTypeSB2,
+ SysInfoType22,
+-- MBMS IEs:
+ MBMS-CellGroupIdentity-r6,
+ MBMS-CommonRBInformationList-r6,
+ MBMS-CurrentCell-SCCPCHList-r6,
+ MBMS-JoinedInformation-r6,
+ MBMS-MICHConfigurationInfo-r6,
+ MBMS-MICHConfigurationInfo-v770ext,
+ MBMS-MICHConfigurationInfo-v890ext,
+ MBMS-ModifedServiceList-r6,
+ MBMS-ModifiedServiceList-LCR-v7c0ext,
+ MBMS-ModifiedServiceList-v770ext,
+ MBMS-MSCH-ConfigurationInfo-r6,
+ MBMS-NeighbouringCellSCCPCHList-r6,
+ MBMS-NeighbouringCellSCCPCHList-v770ext,
+ MBMS-NumberOfNeighbourCells-r6,
+ MBMS-PhyChInformationList-r6,
+ MBMS-PhyChInformationList-r7,
+ MBMS-PhyChInformationList-IMB384,
+ MBMS-PL-ServiceRestrictInfo-r6,
+ MBMS-PreferredFrequencyList-r6,
+ MBMS-PTMActivationTime-r6,
+ MBMS-SelectedServiceInfo,
+ MBMS-SelectedServicesShort,
+ MBMS-ServiceAccessInfoList-r6,
+ MBMS-ServiceIdentity-r6,
+ MBMS-ServiceSchedulingInfoList-r6,
+ MBMS-SIBType5-SCCPCHList-r6,
+ MBMS-TimersAndCounters-r6,
+ MBMS-TranspChInfoForEachCCTrCh-r6,
+ MBMS-TranspChInfoForEachTrCh-r6,
+ MBMS-UnmodifiedServiceList-r6,
+ MBMS-UnmodifiedServiceList-v770ext,
+ MBSFN-ClusterFrequency-r7,
+ MBSFN-InterFrequencyNeighbourList-r7,
+ MBSFN-InterFrequencyNeighbourList-v860ext,
+ MBMS-NetworkStandardTimeInformation-LCR-v890ext,
+ MBSFN-TDDInformation-LCR,
+ MBSFN-TDM-Info-List,
+-- MDT IEs
+ LoggedMeasurementsConfigurationInfo,
+ LoggedMeasurementsConfigurationInfo-r11,
+ LoggedMeasReport,
+ LoggedMeasReport-vb50ext,
+ LoggedMeasReport-vc50ext,
+ ConnectionEstablishmentFailureReport,
+ ConnectionEstablishmentFailureReport-r11,
+ ConnectionEstablishmentFailureReport-vc50ext,
+ RsrqType,
+-- UTRAN ANR IEs
+ LoggedANRConfigurationInfo,
+ LoggedANRReportInfoList,
+ LoggedANRReportInfoList-vb50ext,
+-- WLAN Offload IEs
+ WLANOffloadConfig,
+ WLANOffloadInformation
+
+
+FROM InformationElements
+
+ maxSIBperMsg,
+ maxURNTI-Group
+FROM Constant-definitions;
+
+-- ***************************************************
+--
+-- ACTIVE SET UPDATE (FDD only)
+--
+-- ***************************************************
+
+ActiveSetUpdate ::= CHOICE {
+ r3 SEQUENCE {
+ activeSetUpdate-r3 ActiveSetUpdate-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ activeSetUpdate-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-v4b0ext ActiveSetUpdate-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-v590ext ActiveSetUpdate-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-v690ext ActiveSetUpdate-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ activeSetUpdate-r6 ActiveSetUpdate-r6-IEs,
+ activeSetUpdate-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-v6b0ext ActiveSetUpdate-v6b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ activeSetUpdate-r7 ActiveSetUpdate-r7-IEs,
+ activeSetUpdate-r7-add-ext BIT STRING OPTIONAL,
+ v780NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-v780ext ActiveSetUpdate-v780ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ activeSetUdpate-v7f0ext ActiveSetUpdate-v7f0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ activeSetUdpate-v7g0ext ActiveSetUpdate-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ activeSetUpdate-r8 ActiveSetUpdate-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ activeSetUpdate-r8-add-ext BIT STRING OPTIONAL,
+ v890NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-v890ext ActiveSetUpdate-v890ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-v7g0ext ActiveSetUpdate-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ activeSetUpdate-r9 ActiveSetUpdate-r9-IEs,
+ -- Container for adding non critical extensions after freezing REL-10
+ activeSetUpdate-r9-add-ext BIT STRING OPTIONAL,
+ v950NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-v950ext ActiveSetUpdate-v950ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ activeSetUpdate-r10 ActiveSetUpdate-r10-IEs,
+ -- Container for adding non critical extensions after freezing
+ -- REL-11
+ activeSetUpdate-r10-add-ext BIT STRING OPTIONAL,
+ vb50NonCriticalExtensions SEQUENCE {
+ activeSetUpdate-vb50ext ActiveSetUpdate-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ activeSetUpdate-r11 ActiveSetUpdate-r11-IEs,
+ -- Container for adding non critical extensions after freezing
+ -- REL-12
+ activeSetUpdate-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ activeSetUpdate-r12 ActiveSetUpdate-r12-IEs,
+ -- Container for adding non critical extensions after freezing
+ -- REL-13
+ activeSetUpdate-r12-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ activeSetUpdate-r13 ActiveSetUpdate-r13-IEs,
+ -- Container for adding non critical extensions after freezing
+ -- REL-14
+ activeSetUpdate-r13-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+ActiveSetUpdate-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- dummy and dummy2 are not used in this version of the specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy IntegrityProtectionModeInfo OPTIONAL,
+ dummy2 CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- Radio bearer IEs
+ -- dummy3 is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy3 DL-CounterSynchronisationInfo OPTIONAL,
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ -- dummy4 is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy4 SSDT-Information OPTIONAL
+}
+
+ActiveSetUpdate-v4b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-UL OPTIONAL,
+ -- The order of the RLs in IE cell-id-PerRL-List is the same as
+ -- in IE RL-AdditionInformationList included in this message
+ cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL
+}
+
+ActiveSetUpdate-v590ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dpc-Mode DPC-Mode,
+ dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL
+}
+
+ActiveSetUpdate-v690ext-IEs ::= SEQUENCE {
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL
+}
+
+ActiveSetUpdate-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ newH-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-r6 OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ dpc-Mode DPC-Mode OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation OPTIONAL,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo OPTIONAL
+}
+
+ActiveSetUpdate-v6b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ rl-AdditionInformation-list-v6b0ext RL-AdditionInformation-list-v6b0ext OPTIONAL
+}
+
+ActiveSetUpdate-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ newH-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Physical channel IEs
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-r7 OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ dpc-Mode DPC-Mode OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r7 OPTIONAL,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7 OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL,
+ e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL,
+ e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL
+}
+
+ActiveSetUpdate-v780ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+ActiveSetUpdate-v7f0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7f0ext OPTIONAL
+}
+
+ActiveSetUpdate-v7g0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7g0ext OPTIONAL
+}
+
+ActiveSetUpdate-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ newH-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Physical channel IEs
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-r8 OPTIONAL,
+ servingCellChangeParameters ServingCellChangeParameters OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ dpc-Mode DPC-Mode OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r8 OPTIONAL,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7 OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL,
+ e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL,
+ e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL
+}
+
+ActiveSetUpdate-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL,
+ mimoParameters MIMO-Parameters-v7f0ext OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-v890ext OPTIONAL
+}
+
+ActiveSetUpdate-r9-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ newH-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Physical channel IEs
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-r9 OPTIONAL,
+ rl-AdditionInformationList-SecULFreq
+ RL-AdditionInformationList-SecULFreq OPTIONAL,
+ servingCellChangeParameters ServingCellChangeParameters OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ rl-RemovalInformationList-SecULFreq
+ RL-RemovalInformationList-SecULFreq OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ dpc-Mode DPC-Mode OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r9 OPTIONAL,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7 OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL,
+ e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL,
+ e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL
+}
+
+ActiveSetUpdate-v950ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-v950ext OPTIONAL
+}
+
+ActiveSetUpdate-r10-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ newH-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Physical channel IEs
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-r10 OPTIONAL,
+ rl-AdditionInformationList-SecULFreq
+ RL-AdditionInformationList-SecULFreq OPTIONAL,
+ servingCellChangeParameters ServingCellChangeParameters OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ rl-RemovalInformationList-SecULFreq
+ RL-RemovalInformationList-SecULFreq OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ dpc-Mode DPC-Mode OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r9 OPTIONAL,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7 OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL,
+ e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL,
+ e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL
+}
+
+ActiveSetUpdate-vb50ext-IEs ::= SEQUENCE {
+ ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-vb50ext
+ OPTIONAL
+}
+
+ActiveSetUpdate-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ newH-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Physical channel IEs
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-r11 OPTIONAL,
+ rl-AdditionInformationList-SecULFreq
+ RL-AdditionInformationList-SecULFreq OPTIONAL,
+ servingCellChangeParameters ServingCellChangeParameters OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ rl-RemovalInformationList-SecULFreq
+ RL-RemovalInformationList-SecULFreq OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ dpc-Mode DPC-Mode OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r11 OPTIONAL,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11 OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ ul-64QAM-Config UL-64QAM-Config OPTIONAL,
+ ul-MIMO-InfoFDD UL-MIMO-InfoFDD OPTIONAL,
+ e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL,
+ e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL,
+ e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL
+}
+
+ActiveSetUpdate-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ newH-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Physical channel IEs
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-r12 OPTIONAL,
+ rl-AdditionInformationList-SecULFreq
+ RL-AdditionInformationList-SecULFreq-r12 OPTIONAL,
+ servingCellChangeParameters ServingCellChangeParameters-r12 OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ rl-RemovalInformationList-SecULFreq
+ RL-RemovalInformationList-SecULFreq OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ dpc-Mode DPC-Mode OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r12 OPTIONAL,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11 OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ ul-64QAM-Config UL-64QAM-Config OPTIONAL,
+ ul-MIMO-InfoFDD UL-MIMO-InfoFDD OPTIONAL,
+ e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL,
+ e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL,
+ e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL
+}
+
+ActiveSetUpdate-r13-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ dynamicActivationTime DynamicActivationTime OPTIONAL,
+ newU-RNTI U-RNTI OPTIONAL,
+ newH-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Physical channel IEs
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ e-dch-ReconfigurationInfo-SecULFrequency
+ E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ rl-AdditionInformationList RL-AdditionInformationList-r13 OPTIONAL,
+ rl-AdditionInformationList-SecULFreq
+ RL-AdditionInformationList-SecULFreq-r13 OPTIONAL,
+ servingCellChangeParameters ServingCellChangeParameters-r12 OPTIONAL,
+ rl-RemovalInformationList RL-RemovalInformationList OPTIONAL,
+ rl-RemovalInformationList-SecULFreq
+ RL-RemovalInformationList-SecULFreq OPTIONAL,
+ tx-DiversityMode TX-DiversityMode OPTIONAL,
+ dpc-Mode DPC-Mode OPTIONAL,
+ serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r12 OPTIONAL,
+ e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11 OPTIONAL,
+ ul-16QAM-Config UL-16QAM-Config OPTIONAL,
+ ul-64QAM-Config UL-64QAM-Config OPTIONAL,
+ ul-MIMO-InfoFDD UL-MIMO-InfoFDD OPTIONAL,
+ e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL,
+ e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL,
+ e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL
+}
+
+-- ***************************************************
+--
+-- ACTIVE SET UPDATE COMPLETE (FDD only)
+--
+-- ***************************************************
+
+ActiveSetUpdateComplete ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy IntegrityProtActivationInfo OPTIONAL,
+ -- Radio bearer IEs
+ -- dummy2 and dummy3 are not used in this version of the specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy2 RB-ActivationTimeInfoList OPTIONAL,
+ dummy3 UL-CounterSynchronisationInfo OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ activeSetUpdateComplete-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- ACTIVE SET UPDATE FAILURE (FDD only)
+--
+-- ***************************************************
+
+ActiveSetUpdateFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ activeSetUpdateFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- ASSISTANCE DATA DELIVERY--
+-- ***************************************************
+
+AssistanceDataDelivery ::= CHOICE {
+ r3 SEQUENCE {
+ assistanceDataDelivery-r3 AssistanceDataDelivery-r3-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ assistanceDataDelivery-v3a0ext AssistanceDataDelivery-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ assistanceDataDelivery-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ assistanceDataDelivery-v4b0ext AssistanceDataDelivery-v4b0ext-IEs,
+ v770NonCriticalExtension SEQUENCE {
+ assistanceDataDelivery-v770ext AssistanceDataDelivery-v770ext-IEs,
+ v860NonCriticalExtension SEQUENCE {
+ assistanceDataDelivery-v860ext AssistanceDataDelivery-v860ext-IEs,
+ v920NonCriticalExtension SEQUENCE {
+ assistanceDataDelivery-v920ext AssistanceDataDelivery-v920ext-IEs,
+ va40NonCriticalExtension SEQUENCE {
+ assistanceDataDelivery-va40ext
+ AssistanceDataDelivery-va40ext-IEs,
+ vc50NonCriticalExtension SEQUENCE {
+ assistanceDataDelivery-vc50ext
+ AssistanceDataDelivery-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+AssistanceDataDelivery-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Measurement Information Elements
+ ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData OPTIONAL,
+ ue-positioning-OTDOA-AssistanceData-UEB UE-Positioning-OTDOA-AssistanceData-UEB OPTIONAL
+}
+
+AssistanceDataDelivery-v3a0ext ::= SEQUENCE {
+ sfn-Offset-Validity SFN-Offset-Validity OPTIONAL
+}
+
+AssistanceDataDelivery-v4b0ext-IEs ::= SEQUENCE {
+ ue-Positioning-OTDOA-AssistanceData-r4ext UE-Positioning-OTDOA-AssistanceData-r4ext OPTIONAL
+}
+
+AssistanceDataDelivery-v770ext-IEs ::= SEQUENCE {
+ ue-Positioning-OTDOA-AssistanceData-UEB-ext
+ UE-Positioning-OTDOA-AssistanceData-UEB-ext OPTIONAL,
+ ue-Positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-v770ext OPTIONAL,
+ ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData OPTIONAL
+}
+
+AssistanceDataDelivery-v860ext-IEs ::= SEQUENCE {
+ ue-positioning-GANSS-AssistanceData-v860ext
+ UE-Positioning-GANSS-AssistanceData-v860ext OPTIONAL
+}
+
+AssistanceDataDelivery-v920ext-IEs ::= SEQUENCE {
+ ue-positioning-GPS-AssistanceData-v920ext
+ UE-Positioning-GPS-AssistanceData-v920ext OPTIONAL,
+ ue-positioning-GANSS-AssistanceData-v920ext
+ UE-Positioning-GANSS-AssistanceData-v920ext OPTIONAL
+}
+
+AssistanceDataDelivery-va40ext-IEs ::= SEQUENCE {
+ ue-positioning-GPS-AssistanceData-va40ext
+ UE-Positioning-GPS-AssistanceData-va40ext OPTIONAL,
+ ue-positioning-GANSS-AssistanceData-va40ext
+ UE-Positioning-GANSS-AssistanceData-va40ext OPTIONAL
+}
+
+AssistanceDataDelivery-vc50ext-IEs ::= SEQUENCE {
+ ue-positioning-GPS-AssistanceData-vc50ext
+ UE-Positioning-GPS-AssistanceData-vc50ext OPTIONAL,
+ ue-positioning-GANSS-AssistanceData-vc50ext
+ UE-Positioning-GANSS-AssistanceData-vc50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- CELL CHANGE ORDER FROM UTRAN
+--
+-- ***************************************************
+
+CellChangeOrderFromUTRAN ::= CHOICE {
+ r3 SEQUENCE {
+ cellChangeOrderFromUTRAN-IEs CellChangeOrderFromUTRAN-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ cellChangeOrderFromUTRAN-r3-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ cellChangeOrderFromUTRAN-v590ext CellChangeOrderFromUTRAN-v590ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+CellChangeOrderFromUTRAN-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy IntegrityProtectionModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ -- the IE rab-InformationList is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored. The IE may be used in a later
+ -- version of the protocol and hence it is not changed into a dummy
+ rab-InformationList RAB-InformationList OPTIONAL,
+ interRAT-TargetCellDescription InterRAT-TargetCellDescription
+}
+
+CellChangeOrderFromUTRAN-v590ext-IEs ::= SEQUENCE {
+ geran-SystemInfoType CHOICE {
+ sI GERAN-SystemInformation,
+ pSI GERAN-SystemInformation
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- CELL CHANGE ORDER FROM UTRAN FAILURE
+--
+-- ***************************************************
+
+CellChangeOrderFromUTRANFailure ::= CHOICE {
+ r3 SEQUENCE {
+ cellChangeOrderFromUTRANFailure-r3
+ CellChangeOrderFromUTRANFailure-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ cellChangeOrderFromUTRANFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ -- dummy is not used in this version of the specification and it
+ -- should be ignored.
+ dummy SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+CellChangeOrderFromUTRANFailure-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy IntegrityProtectionModeInfo OPTIONAL,
+ interRAT-ChangeFailureCause InterRAT-ChangeFailureCause
+}
+
+-- ***************************************************
+--
+-- CELL UPDATE
+--
+-- ***************************************************
+
+CellUpdate ::= SEQUENCE {
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ startList STARTList,
+ am-RLC-ErrorIndicationRb2-3or4 BOOLEAN,
+ am-RLC-ErrorIndicationRb5orAbove BOOLEAN,
+ cellUpdateCause CellUpdateCause,
+ -- TABULAR: RRC transaction identifier is nested in FailureCauseWithProtErrTrId
+ failureCause FailureCauseWithProtErrTrId OPTIONAL,
+ rb-timer-indicator Rb-timer-indicator,
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ -- The cellUpdate-r3-add-ext can be omitted if its inclusion would result in the
+ -- size of the message exceeding the maximum PDU size possible for CCCH
+ -- transmission
+ cellUpdate-r3-add-ext BIT STRING
+ (CONTAINING CellUpdate-r3-add-ext-IEs) OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ cellUpdate-v590ext CellUpdate-v590ext,
+ v690NonCriticalExtensions SEQUENCE {
+ cellUpdate-v690ext CellUpdate-v690ext-IEs,
+ v6b0NonCriticalExtensions SEQUENCE {
+ cellUpdate-v6b0ext CellUpdate-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ cellUpdate-v770ext CellUpdate-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ cellUpdate-v860ext CellUpdate-v860ext-IEs,
+ -- The va40NonCriticalExtensions can be omitted if its inclusion
+ -- would result in the size of the message exceeding the maximum PDU
+ -- size possible for CCCH transmission
+ va40NonCriticalExtensions SEQUENCE {
+ cellUpdate-va40ext CellUpdate-va40ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ cellUpdate-vb50ext CellUpdate-vb50ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ cellUpdate-vc50ext CellUpdate-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+CellUpdate-r3-add-ext-IEs ::= SEQUENCE {
+ cellUpdate-v7e0ext CellUpdate-v7e0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ cellUpdate-v7g0ext CellUpdate-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+CellUpdate-v590ext ::= SEQUENCE {
+ establishmentCause EstablishmentCause OPTIONAL
+}
+
+CellUpdate-v690ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ cellUpdateCause-ext CellUpdateCause-ext OPTIONAL,
+ trafficVolumeIndicator ENUMERATED { true } OPTIONAL,
+ -- Measurement IEs
+ measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL,
+ reconfigurationStatusIndicator ENUMERATED { true } OPTIONAL
+}
+
+CellUpdate-v6b0ext-IEs ::= SEQUENCE {
+ -- MBMS IEs
+ -- The mbmsSelectedServices can be omitted if its inclusion would result in the
+ -- size of the message exceeding the maximum PDU size possible for CCCH transmission
+ mbmsSelectedServices MBMS-SelectedServicesShort OPTIONAL
+}
+
+CellUpdate-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ csCallType ENUMERATED { speech, video, other, spare } OPTIONAL,
+ hspdschReception-CellFach ENUMERATED { true } OPTIONAL,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ capabilityChangeIndicator ENUMERATED { true } OPTIONAL
+}
+
+CellUpdate-v7e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForTwoDRXSchemesInPCH ENUMERATED { true } OPTIONAL
+}
+
+CellUpdate-v7g0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH-v7g0ext MeasuredResultsOnRACH-v7g0ext OPTIONAL
+}
+
+CellUpdate-v860ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportOfCommonEDCH ENUMERATED { true } OPTIONAL,
+ supportOfHS-DSCHDRXOperation ENUMERATED { true } OPTIONAL,
+ supportOfMACiis ENUMERATED { true } OPTIONAL,
+ supportOfSPSOperation ENUMERATED { true } OPTIONAL,
+ supportOfControlChannelDRXOperation
+ ENUMERATED { true } OPTIONAL
+}
+
+CellUpdate-va40ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ securityRevertStatusIndicator ENUMERATED { revertedBack, normalOperation } OPTIONAL,
+ -- Other IEs
+ loggedMeasAvailable ENUMERATED { true } OPTIONAL,
+ loggedANRResultsAvailable ENUMERATED { true } OPTIONAL
+}
+
+-- TABULAR: TDD related IEs, MBMS IEs, and supportForTwoDRXSchemesInPCH are omitted compared to
+-- tabular for the purpose of coding optimisation
+CellUpdateFDD-r11 ::= SEQUENCE {
+-- User equipment IEs
+ u-RNTI U-RNTI,
+ startList STARTList,
+ am-RLC-ErrorIndicationRb2-3or4 BOOLEAN,
+ am-RLC-ErrorIndicationRb5orAbove BOOLEAN,
+ cellUpdateCause CellUpdateCause,
+ -- TABULAR: RRC transaction identifier is nested in FailureCauseWithProtErrTrId
+ failureCause FailureCauseWithProtErrTrId OPTIONAL,
+ rb-timer-indicator Rb-timer-indicator,
+ establishmentCause EstablishmentCause OPTIONAL,
+ trafficVolumeIndicator ENUMERATED { true } OPTIONAL,
+ reconfigurationStatusIndicator ENUMERATED { true } OPTIONAL,
+ csCallType ENUMERATED { speech, video, other, spare } OPTIONAL,
+ hspdschReception-CellFach ENUMERATED { true } OPTIONAL,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ capabilityChangeIndicator ENUMERATED { true } OPTIONAL,
+ supportOfCommonEDCH ENUMERATED { true } OPTIONAL,
+ supportOfHS-DSCHDRXOperation ENUMERATED { true } OPTIONAL,
+ supportOfMACiis ENUMERATED { true } OPTIONAL,
+ securityRevertStatusIndicator ENUMERATED { revertedBack, normalOperation } OPTIONAL,
+ spare4 ENUMERATED { true } OPTIONAL,
+ spare3 ENUMERATED { true } OPTIONAL,
+ spare2 ENUMERATED { true } OPTIONAL,
+ spare1 ENUMERATED { true } OPTIONAL,
+-- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACHFDD-r11 OPTIONAL,
+-- Other IEs
+ loggedMeasAvailable ENUMERATED { true } OPTIONAL,
+ loggedANRResultsAvailable ENUMERATED { true } OPTIONAL
+}
+
+CellUpdate-vb50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL
+}
+
+CellUpdate-vc50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- CELL UPDATE CONFIRM
+--
+-- ***************************************************
+
+CellUpdateConfirm ::= CHOICE {
+ r3 SEQUENCE {
+ cellUpdateConfirm-r3 CellUpdateConfirm-r3-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v3a0ext CellUpdateConfirm-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ cellUpdateConfirm-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v4b0ext CellUpdateConfirm-v4b0ext-IEs,
+ v590NonCriticalExtenstions SEQUENCE {
+ cellUpdateConfirm-v590ext CellUpdateConfirm-v590ext-IEs,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ cellUpdateConfirm-r4 CellUpdateConfirm-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ cellUpdateConfirm-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtenstions SEQUENCE {
+ cellUpdateConfirm-v590ext CellUpdateConfirm-v590ext-IEs,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ cellUpdateConfirm-r5 CellUpdateConfirm-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ cellUpdateConfirm-r5-add-ext BIT STRING OPTIONAL,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ cellUpdateConfirm-r6 CellUpdateConfirm-r6-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ cellUpdateConfirm-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v6b0ext CellUpdateConfirm-v6b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ cellUpdateConfirm-r7 CellUpdateConfirm-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ cellUpdateConfirm-r7-add-ext BIT STRING
+ (CONTAINING CellUpdateConfirm-r7-add-ext-IEs) OPTIONAL,
+ v780NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v780ext CellUpdateConfirm-v780ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v860ext CellUpdateConfirm-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ cellUpdateConfirm-r8 CellUpdateConfirm-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ cellUpdateConfirm-r8-add-ext BIT STRING OPTIONAL,
+ v7d0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v7d0ext CellUpdateConfirm-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v7f0ext CellUpdateConfirm-v7f0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v890ext
+ CellUpdateConfirm-v890ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v7g0ext
+ CellUpdateConfirm-v7g0ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v8a0ext
+ CellUpdateConfirm-v8a0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ cellUpdateConfirm-r9 CellUpdateConfirm-r9-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-10
+ cellUpdateConfirm-r9-add-ext BIT STRING OPTIONAL,
+ v950NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v950ext CellUpdateConfirm-v950ext-IEs,
+ v9c0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v9c0ext CellUpdateConfirm-v9c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ cellUpdateConfirm-r10 CellUpdateConfirm-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ cellUpdateConfirm-r10-add-ext BIT STRING OPTIONAL,
+ v9c0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v9c0ext CellUpdateConfirm-v9c0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-vb50ext
+ CellUpdateConfirm-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ cellUpdateConfirm-r11 CellUpdateConfirm-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ cellUpdateConfirm-r11-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ cellUpdateConfirm-r12 CellUpdateConfirm-r12-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-13
+ cellUpdateConfirm-r12-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ cellUpdateConfirm-r13 CellUpdateConfirm-r13-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-14
+ cellUpdateConfirm-r13-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+CellUpdateConfirm-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ modeSpecificTransChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy and dummy2 are not used in this version of the specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL
+}
+
+CellUpdateConfirm-v3a0ext ::= SEQUENCE {
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour
+ -- is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL
+}
+
+CellUpdateConfirm-v4b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-UL OPTIONAL,
+ -- The order of the RLs in IE cell-id-PerRL-List is the same as
+ -- in IE DL-InformationPerRL-List included in this message
+ cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL
+}
+
+CellUpdateConfirm-v590ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL
+}
+
+CellUpdateConfirm-v5d0ext-IEs ::= SEQUENCE {
+ --Radio Bearer IEs
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL
+}
+CellUpdateConfirm-r4-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r4 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ modeSpecificTransChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy and dummy2 are not used in this version of the specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation-r4 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL
+}
+
+CellUpdateConfirm-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r5 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r5 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ modeSpecificTransChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy and dummy2 are not used in this version of the specification, they should
+ -- not be sent and if received they should be ignored.
+ dummy CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r5 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL
+}
+
+CellUpdateConfirm-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r6 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r6 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r6 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+CellUpdateConfirm-v690ext-IEs ::= SEQUENCE {
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- Physical channel IEs
+ -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message
+ -- If included in the r3 or r4 version of the message, the UE should ignore the IE
+ harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL,
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL,
+ dhs-sync DHS-Sync OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+CellUpdateConfirm-v6b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL
+}
+
+CellUpdateConfirm-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ waitTime WaitTime OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r7 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r7 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r7 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+CellUpdateConfirm-r7-add-ext-IEs ::= SEQUENCE {
+ cellUpdateConfirm-v7d0ext CellUpdateConfirm-v7d0ext-IEs OPTIONAL,
+ v7f0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v7f0ext CellUpdateConfirm-v7f0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v7g0ext CellUpdateConfirm-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+CellUpdateConfirm-v780ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+CellUpdateConfirm-v7d0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL
+}
+
+CellUpdateConfirm-v7f0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7f0ext OPTIONAL
+}
+
+CellUpdateConfirm-v7g0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7g0ext OPTIONAL
+}
+
+CellUpdateConfirm-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ waitTime WaitTime OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+CellUpdateConfirm-v860ext-IEs ::= SEQUENCE {
+ rab-InformationSetup SEQUENCE {
+ rab-InformationSetup-r7 RAB-InformationSetup-r7,
+ rab-InformationSetup-v820ext RAB-InformationSetup-v820ext
+ } OPTIONAL
+}
+
+CellUpdateConfirm-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL
+}
+
+CellUpdateConfirm-v8a0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL
+}
+
+CellUpdateConfirm-r9-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ waitTime WaitTime OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+CellUpdateConfirm-v950ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL
+}
+
+CellUpdateConfirm-v9c0ext-IEs ::= SEQUENCE {
+ -- For 1.28Mcps TDD only
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL
+}
+
+CellUpdateConfirm-r10-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ -- dummy2 is not used in this version of the specification, it should
+ -- not be sent.
+ dummy2 SR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ waitTime WaitTime OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+CellUpdateConfirm-vb50ext-IEs ::= SEQUENCE {
+ ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL
+}
+
+CellUpdateConfirm-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ -- dummy2 is not used in this version of the specification, it should
+ -- not be sent.
+ dummy2 SR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ waitTime WaitTime OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r11 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+CellUpdateConfirm-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ waitTime WaitTime OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Specification mode information
+ -- Radio bearer IEs
+ rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL,
+ -- WLAN IEs
+ dedicatedWLANOffloadInformation DedicatedWLANOffloadInformation OPTIONAL
+}
+
+
+CellUpdateConfirm-r13-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ uraPCHWithSeamlessTransitionRNTIHandlingMode ENUMERATED { true } OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ waitTime WaitTime OPTIONAL,
+ rlc-Re-establishIndicatorRb2-3or4 BOOLEAN,
+ rlc-Re-establishIndicatorRb5orAbove BOOLEAN,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Specification mode information
+ -- Radio bearer IEs
+ rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ otherStateConfig OtherStateConfig OPTIONAL,
+ retrievableConfigInfo RetrievableConfigInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r13 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r13 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL,
+ -- WLAN IEs
+ dedicatedWLANOffloadInformation DedicatedWLANOffloadInformation OPTIONAL
+}
+
+-- ***************************************************
+--
+-- CELL UPDATE CONFIRM for CCCH
+--
+-- ***************************************************
+
+CellUpdateConfirm-CCCH ::= CHOICE {
+ r3 SEQUENCE {
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ -- The rest of the message is identical to the one sent on DCCH.
+ cellUpdateConfirm-r3 CellUpdateConfirm-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ cellUpdateConfirm-CCCH-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v4b0ext CellUpdateConfirm-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v590ext CellUpdateConfirm-v590ext-IEs,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ u-RNTI U-RNTI,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ -- The rest of the message is identical to the one sent on DCCH.
+ cellUpdateConfirm-r4 CellUpdateConfirm-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ cellUpdateConfirm-CCCH-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v590ext CellUpdateConfirm-v590ext-IEs,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ cellUpdateConfirm-r5 CellUpdateConfirm-r5-IEs,
+ cellUpdateConfirm-CCCH-r5-add-ext BIT STRING OPTIONAL,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ cellUpdateConfirm-r6 CellUpdateConfirm-r6-IEs,
+ cellUpdateConfirm-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v6b0ext CellUpdateConfirm-v6b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ cellUpdateConfirm-r7 CellUpdateConfirm-r7-IEs,
+ cellUpdateConfirm-r7-add-ext BIT STRING
+ (CONTAINING CellUpdateConfirm-r7-add-ext-IEs) OPTIONAL,
+ v780NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v780ext CellUpdateConfirm-v780ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v860ext CellUpdateConfirm-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ cellUpdateConfirm-r8 CellUpdateConfirm-r8-IEs,
+ cellUpdateConfirm-r8-add-ext BIT STRING OPTIONAL,
+ v7d0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v7d0ext CellUpdateConfirm-v7d0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v890ext
+ CellUpdateConfirm-v890ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v8a0ext
+ CellUpdateConfirm-v8a0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v7f0ext
+ CellUpdateConfirm-v7f0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-v7g0ext
+ CellUpdateConfirm-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ cellUpdateConfirm-r9 CellUpdateConfirm-r9-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-10
+ cellUpdateConfirm-r9-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ cellUpdateConfirm-r10 CellUpdateConfirm-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ cellUpdateConfirm-r10-add-ext BIT STRING OPTIONAL,
+ vb50NonCriticalExtensions SEQUENCE {
+ cellUpdateConfirm-vb50ext
+ CellUpdateConfirm-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ cellUpdateConfirm-r11 CellUpdateConfirm-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ cellUpdateConfirm-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ cellUpdateConfirm-r12 CellUpdateConfirm-r12-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-13
+ cellUpdateConfirm-r12-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ }, criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ cellUpdateConfirm-r13 CellUpdateConfirm-r13-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-14
+ cellUpdateConfirm-r13-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ }, criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+-- ***************************************************
+--
+-- COUNTER CHECK
+--
+-- ***************************************************
+
+CounterCheck ::= CHOICE {
+ r3 SEQUENCE {
+ counterCheck-r3 CounterCheck-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ counterCheck-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+CounterCheck-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Radio bearer IEs
+ rb-COUNT-C-MSB-InformationList RB-COUNT-C-MSB-InformationList
+}
+
+-- ***************************************************
+--
+-- COUNTER CHECK RESPONSE
+--
+-- ***************************************************
+
+CounterCheckResponse ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Radio bearer IEs
+ rb-COUNT-C-InformationList RB-COUNT-C-InformationList OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ counterCheckResponse-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- DOWNLINK DIRECT TRANSFER
+--
+-- ***************************************************
+
+DownlinkDirectTransfer ::= CHOICE {
+ r3 SEQUENCE {
+ downlinkDirectTransfer-r3 DownlinkDirectTransfer-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ downlinkDirectTransfer-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+DownlinkDirectTransfer-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Core network IEs
+ cn-DomainIdentity CN-DomainIdentity,
+ nas-Message NAS-Message
+}
+
+-- ***************************************************
+--
+-- ETWS PRIMARY NOTIFICATION WITH SECURITY
+--
+-- ***************************************************
+
+ETWSPrimaryNotificationWithSecurity ::= SEQUENCE {
+ -- Other IEs
+ etws-Information ETWS-Information,
+ -- dummy is not used in the specification. If received it is ignored by the UE.
+ -- See TS 23.041 for handling of warning security information by Cell Broadcast Center.
+ dummy ETWS-WarningSecurityInfo OPTIONAL,
+ -- Non critical extensions
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+-- ***************************************************
+--
+-- HANDOVER TO UTRAN COMMAND
+--
+-- ***************************************************
+
+HandoverToUTRANCommand ::= CHOICE {
+ r3 SEQUENCE {
+ handoverToUTRANCommand-r3 HandoverToUTRANCommand-r3-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ handoverToUTRANCommand-r4 HandoverToUTRANCommand-r4-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ handoverToUTRANCommand-r5 HandoverToUTRANCommand-r5-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ handoverToUTRANCommand-r6 HandoverToUTRANCommand-r6-IEs,
+ v6b0NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v6b0ext HandoverToUTRANCommand-v6b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ handoverToUTRANCommand-r7 HandoverToUTRANCommand-r7-IEs,
+ v780NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v780ext HandoverToUTRANCommand-v780ext-IEs,
+ v820NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v820ext HandoverToUTRANCommand-v820ext-IEs,
+ v7d0NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v7d0ext
+ HandoverToUTRANCommand-v7d0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ handoverToUTRANCommand-r8 HandoverToUTRANCommand-r8-IEs,
+ v7d0NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v7d0ext HandoverToUTRANCommand-v7d0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v890ext
+ HandoverToUTRANCommand-v890ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v8a0ext
+ HandoverToUTRANCommand-v8a0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ handoverToUTRANCommand-r9 HandoverToUTRANCommand-r9-IEs,
+ v9c0NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v9c0ext
+ HandoverToUTRANCommand-v9c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions HandoverToUTRANCommand-LaterCriticalExtensions
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+HandoverToUTRANCommand-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy ActivationTime OPTIONAL,
+ cipheringAlgorithm CipheringAlgorithm OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList,
+ rab-InformationSetupList RAB-InformationSetupList OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList,
+ dl-CommonTransChInfo DL-CommonTransChInfo,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList,
+ ul-DPCH-Info UL-DPCH-Info,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy and dummy2 are not used in this version of specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL,
+ dummy2 CPCH-SetInfo OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation,
+ dl-InformationPerRL-List DL-InformationPerRL-List,
+ frequencyInfo FrequencyInfo
+ },
+ preconfiguration SEQUENCE {
+-- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+-- one for the FDD only elements and one for the TDD only elements, so that one
+-- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-r4-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList,
+ rab-InformationSetupList RAB-InformationSetupList-r4 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4,
+ ul-DPCH-Info UL-DPCH-Info-r4,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy and dummy2 are not used in this version of specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL,
+ dummy2 CPCH-SetInfo OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation-r4,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r4,
+ frequencyInfo FrequencyInfo
+ },
+ preconfiguration SEQUENCE {
+-- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+-- one for the FDD only elements and one for the TDD only elements, so that one
+-- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r4
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD-LCR-r4,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r5,
+ rab-InformationSetupList RAB-InformationSetupList-r5 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5,
+ ul-DPCH-Info UL-DPCH-Info-r5,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy and dummy2 are not used in this version of specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL,
+ dummy2 CPCH-SetInfo OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation-r4,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r5,
+ frequencyInfo FrequencyInfo
+ },
+ preconfiguration SEQUENCE {
+-- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+-- one for the FDD only elements and one for the TDD only elements, so that one
+-- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r5
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD-LCR-r4,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r6,
+ rab-InformationSetupList RAB-InformationSetupList-r6 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5,
+ ul-DPCH-Info UL-DPCH-Info-r6,
+ ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r6,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r6,
+ frequencyInfo FrequencyInfo
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD-LCR-r4,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-v6b0ext-IEs ::= SEQUENCE {
+ ue-hspa-identities UE-HSPA-Identities-r6 OPTIONAL
+}
+
+HandoverToUTRANCommand-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r7,
+ rab-InformationSetupList RAB-InformationSetupList-r7 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7,
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r7,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfo,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-v780ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+HandoverToUTRANCommand-v7d0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL
+}
+
+HandoverToUTRANCommand-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r8,
+ rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7,
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfo,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored
+ dummy DLUL-HSPA-Information-r8 OPTIONAL
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-v820ext-IEs ::= SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationSetupList RAB-InformationSetupList-v820ext OPTIONAL
+}
+
+HandoverToUTRANCommand-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL
+}
+
+HandoverToUTRANCommand-v8a0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL
+}
+
+HandoverToUTRANCommand-r9-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received UE behaviour is unspecified.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r8,
+ rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9,
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfo,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored
+ dummy DLUL-HSPA-Information-r9 OPTIONAL
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-v9c0ext-IEs ::= SEQUENCE {
+ -- For 1.28Mcps TDD only
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL
+}
+
+HandoverToUTRANCommand-LaterCriticalExtensions ::= CHOICE {
+ r10 SEQUENCE {
+ handoverToUTRANCommand-r10 HandoverToUTRANCommand-r10-IEs,
+ v9c0NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-v9c0ext
+ HandoverToUTRANCommand-v9c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ handoverToUTRANCommand-r11 HandoverToUTRANCommand-r11-IEs,
+ -- Container for adding non critical extensions after freezing REL-12
+ handoverToUTRANCommand-r11-add-ext BIT STRING OPTIONAL,
+ vbc0NonCriticalExtensions SEQUENCE {
+ handoverToUTRANCommand-vbc0ext HandoverToUTRANCommand-vbc0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ handoverToUTRANCommand-r12 HandoverToUTRANCommand-r12-IEs,
+ -- Container for adding non critical extensions after freezing REL-13
+ handoverToUTRANCommand-r12-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+HandoverToUTRANCommand-r10-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received UE behaviour is unspecified.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r8,
+ rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9,
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfo,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6,
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored
+ dummy DLUL-HSPA-Information-r10 OPTIONAL
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r8,
+ rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11,
+ ul-DPCH-Info UL-DPCH-Info-r11,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r11,
+ frequencyInfo FrequencyInfo,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+HandoverToUTRANCommand-vbc0ext-IEs ::= SEQUENCE {
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-HandoverToUtran OPTIONAL,
+ ulSecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ additionalDLSecCellInfoHandoverToUtranListFDD AdditionalDLSecCellInfoHandoverToUtranListFDD OPTIONAL
+ }
+ }
+}
+
+HandoverToUTRANCommand-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-U-RNTI U-RNTI-Short,
+ cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ -- Radio bearer IEs
+ -- Specification mode information
+ defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ srb-InformationSetupList SRB-InformationSetupList-r8,
+ rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL,
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11,
+ ul-DPCH-Info UL-DPCH-Info-r11,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r12,
+ -- Physical channel IEs
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ frequencyInfo FrequencyInfo,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-HandoverToUtran OPTIONAL,
+ ulSecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ additionalDLSecCellInfoHandoverToUtranListFDD AdditionalDLSecCellInfoHandoverToUtranListFDD OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ },
+ rab-Info RAB-Info-Post OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostFDD,
+ dl-CommonInformationPost DL-CommonInformationPost,
+ dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD,
+ frequencyInfo FrequencyInfoFDD
+ },
+ tdd CHOICE {
+ tdd384 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-InfoPostTDD,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ },
+ tdd128 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ ul-DPCH-Info UL-DPCH-Info-r7,
+ dl-InformationPerRL DL-InformationPerRL-List-r7,
+ frequencyInfo FrequencyInfoTDD,
+ primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power
+ }
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
+}
+
+-- ***************************************************
+--
+-- HANDOVER TO UTRAN COMPLETE
+--
+-- ***************************************************
+
+HandoverToUTRANComplete ::= SEQUENCE {
+ --TABULAR: Integrity protection shall not be performed on this message.
+ -- User equipment IEs
+ -- TABULAR: startList is conditional on history.
+ startList STARTList OPTIONAL,
+ -- Radio bearer IEs
+ count-C-ActivationTime ActivationTime OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ handoverToUTRANComplete-r3-add-ext BIT STRING OPTIONAL,
+ va40NonCriticalExtensions SEQUENCE {
+ handoverToUTRANComplete-va40ext HandoverToUTRANComplete-va40ext,
+ vb50NonCriticalExtensions SEQUENCE {
+ handoverToUTRANComplete-vb50ext HandoverToUTRANComplete-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+HandoverToUTRANComplete-va40ext ::= SEQUENCE {
+ loggedMeasAvailable ENUMERATED { true } OPTIONAL
+}
+
+HandoverToUTRANComplete-vb50ext-IEs ::= SEQUENCE {
+ connEstFailInfoAvailable ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- INITIAL DIRECT TRANSFER
+--
+-- ***************************************************
+
+InitialDirectTransfer ::= SEQUENCE {
+ -- Core network IEs
+ cn-DomainIdentity CN-DomainIdentity,
+ intraDomainNasNodeSelector IntraDomainNasNodeSelector,
+ nas-Message NAS-Message,
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL,
+ v3a0NonCriticalExtensions SEQUENCE {
+ initialDirectTransfer-v3a0ext InitialDirectTransfer-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ initialDirectTransfer-r3-add-ext BIT STRING
+ (CONTAINING InitialDirectTransfer-r3-add-ext-IEs) OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ initialDirectTransfer-v590ext InitialDirectTransfer-v590ext,
+ v690NonCriticalExtensions SEQUENCE {
+ initialDirectTransfer-v690ext InitialDirectTransfer-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ initialDirectTransfer-v770ext InitialDirectTransfer-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ initialDirectTransfer-v860ext InitialDirectTransfer-v860ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ initialDirectTransfer-vb50ext InitialDirectTransfer-vb50ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ initialDirectTransfer-vc50ext InitialDirectTransfer-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+InitialDirectTransfer-v3a0ext ::= SEQUENCE {
+ -- start-value shall always be included in this version of the protocol
+ start-Value START-Value OPTIONAL
+}
+InitialDirectTransfer-v590ext ::= SEQUENCE {
+ establishmentCause EstablishmentCause OPTIONAL
+}
+
+InitialDirectTransfer-v690ext-IEs ::= SEQUENCE {
+ -- Core network IEs
+ plmn-Identity PLMN-Identity OPTIONAL,
+ -- Measurement IEs
+ measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL,
+ -- MBMS IEs
+ mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL
+}
+
+InitialDirectTransfer-v770ext-IEs ::= SEQUENCE {
+ csCallType ENUMERATED { speech, video, other, spare } OPTIONAL
+}
+
+InitialDirectTransfer-v860ext-IEs ::= SEQUENCE {
+ supportOfCSG ENUMERATED { true } OPTIONAL
+}
+
+InitialDirectTransfer-r3-add-ext-IEs ::= SEQUENCE {
+ initialDirectTransfer-v7g0ext InitialDirectTransfer-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+InitialDirectTransfer-v7g0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH-v7g0ext MeasuredResultsOnRACH-v7g0ext OPTIONAL
+}
+
+InitialDirectTransfer-vb50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL
+}
+
+InitialDirectTransfer-vc50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- HANDOVER FROM UTRAN COMMAND
+--
+-- ***************************************************
+
+HandoverFromUTRANCommand-GSM ::= CHOICE {
+ r3 SEQUENCE {
+ handoverFromUTRANCommand-GSM-r3
+ HandoverFromUTRANCommand-GSM-r3-IEs,
+ -- UTRAN should not include the IE laterNonCriticalExtensions when it sets the IE
+ -- gsm-message included in handoverFromUTRANCommand-GSM-r3 to single-GSM-Message. The UE
+ -- behaviour upon receiving a message with this combination of IE values is unspecified.
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ handoverFromUTRANCommand-GSM-r3-add-ext BIT STRING OPTIONAL,
+ -- UTRAN may apply the r3 version of the message to perform PS handover
+ -- for a single RAB only
+ v690NonCriticalExtensions SEQUENCE {
+ handoverFromUTRANCommand-GSM-v690ext HandoverFromUTRANCommand-GSM-v690ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ handoverFromUTRANCommand-GSM-v860ext
+ HandoverFromUTRANCommand-GSM-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ handoverFromUTRANCommand-GSM-r6 HandoverFromUTRANCommand-GSM-r6-IEs,
+ handoverFromUTRANCommand-GSM-r6-add-ext BIT STRING OPTIONAL,
+ v860NonCriticalExtensions SEQUENCE {
+ handoverFromUTRANCommand-GSM-v860ext
+ HandoverFromUTRANCommand-GSM-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+HandoverFromUTRANCommand-GSM-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ activationTime ActivationTime OPTIONAL,
+ -- Radio bearer IEs
+ toHandoverRAB-Info RAB-Info OPTIONAL,
+ -- Measurement IEs
+ frequency-band Frequency-Band,
+ -- Other IEs
+ gsm-message CHOICE {
+ -- In the single-GSM-Message case the following rules apply:
+ -- 1> the GSM message directly follows the basic production; the final padding that
+ -- results when PER encoding the abstract syntax value is removed prior to appending
+ -- the GSM message.
+ -- 2> the RRC message excluding the GSM part, does not contain a length determinant;
+ -- there is no explicit parameter indicating the size of the included GSM message.
+ -- 3> depending on need, final padding (all "0"s) is added to ensure the final result
+ -- comprises a full number of octets
+ single-GSM-Message SEQUENCE {},
+ gsm-MessageList SEQUENCE {
+ gsm-Messages GSM-MessageList
+ }
+ }
+}
+
+HandoverFromUTRANCommand-GSM-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ -- Radio bearer IEs
+ toHandoverRAB-Info RAB-InformationList-r6 OPTIONAL,
+ -- Measurement IEs
+ frequency-band Frequency-Band,
+ -- Other IEs
+ gsm-message CHOICE {
+ -- In the single-GSM-Message case the following rules apply:
+ -- 1> the GSM message directly follows the basic production; the final padding that
+ -- results when PER encoding the abstract syntax value is removed prior to appending
+ -- the GSM message.
+ -- 2> the RRC message excluding the GSM part, does not contain a length determinant;
+ -- there is no explicit parameter indicating the size of the included GSM message.
+ -- 3> depending on need, final padding (all "0"s) is added to ensure the final result
+ -- comprises a full number of octets
+ single-GSM-Message SEQUENCE {},
+ gsm-MessageList SEQUENCE {
+ gsm-Messages GSM-MessageList
+ }
+ },
+ geran-SystemInfoType CHOICE {
+ sI GERAN-SystemInformation,
+ pSI GERAN-SystemInformation
+ } OPTIONAL
+}
+
+HandoverFromUTRANCommand-GSM-v690ext-IEs ::= SEQUENCE {
+ geran-SystemInfoType CHOICE {
+ sI GERAN-SystemInformation,
+ pSI GERAN-SystemInformation
+ } OPTIONAL
+}
+
+HandoverFromUTRANCommand-GSM-v860ext-IEs ::= SEQUENCE {
+ sr-vcc-SecurityRABInfo SR-VCC-SecurityRABInfo-v860ext OPTIONAL
+}
+
+HandoverFromUTRANCommand-GERANIu ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ handoverFromUTRANCommand-GERANIu CHOICE {
+ r5 SEQUENCE {
+ handoverFromUTRANCommand-GERANIu-r5
+ HandoverFromUTRANCommand-GERANIu-r5-IEs,
+ -- UTRAN should not include the IE nonCriticalExtensions when it sets
+ -- the IE geranIu-message included in handoverFromUTRANCommand-GERANIu-r5 to
+ -- single-GERANIu-Message
+ -- The UE behaviour upon receiving a message including this combination of IE values is
+ -- not specified
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ later-than-r5 SEQUENCE {
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+HandoverFromUTRANCommand-GERANIu-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ -- Measurement IEs
+ frequency-Band Frequency-Band,
+ -- Other IEs
+ geranIu-Message CHOICE {
+ -- In the single-GERANIu-Message case the following rules apply:
+ -- 1> the GERAN Iu message directly follows the basic production; the final padding that
+ -- results when PER encoding the abstract syntax value is removed prior to appending
+ -- the GERAN Iu message.
+ -- 2> the RRC message excluding the GERAN Iu part does not contain a length determinant;
+-- there is no explicit parameter indicating the size of the included GERAN Iu
+-- message.
+ -- 3> depending on need, final padding (all "0"s) is added to ensure the final result
+ -- comprises a full number of octets.
+ single-GERANIu-Message SEQUENCE {},
+ geranIu-MessageList SEQUENCE {
+ geranIu-Messages GERANIu-MessageList
+ }
+ }
+}
+
+HandoverFromUTRANCommand-CDMA2000 ::= CHOICE {
+ r3 SEQUENCE {
+ handoverFromUTRANCommand-CDMA2000-r3
+ HandoverFromUTRANCommand-CDMA2000-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ handoverFromUTRANCommand-CDMA2000-r3-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+HandoverFromUTRANCommand-CDMA2000-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ activationTime ActivationTime OPTIONAL,
+ -- Radio bearer IEs
+ toHandoverRAB-Info RAB-Info OPTIONAL,
+ -- Other IEs
+ cdma2000-MessageList CDMA2000-MessageList
+}
+
+HandoverFromUTRANCommand-EUTRA ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ handoverFromUTRANCommand-EUTRA-r8 HandoverFromUTRANCommand-EUTRA-r8-IEs,
+ handoverFromUTRANCommand-EUTRA-r8-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ handoverFromUTRANCommand-EUTRA-r11 HandoverFromUTRANCommand-EUTRA-r11-IEs,
+ handoverFromUTRANCommand-EUTRA-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+HandoverFromUTRANCommand-EUTRA-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ activationTime ActivationTime OPTIONAL,
+ -- Radio bearer IEs
+ toHandoverRAB-Info RAB-InformationList OPTIONAL,
+ -- Other IEs
+ eutra-Message OCTET STRING
+}
+
+HandoverFromUTRANCommand-EUTRA-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rsr-vcc-Info RSR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ -- Radio bearer IEs
+ toHandoverRAB-Info RAB-InformationList OPTIONAL,
+ -- Other IEs
+ eutra-Message OCTET STRING
+}
+
+-- ***************************************************
+--
+-- HANDOVER FROM UTRAN FAILURE
+--
+-- ***************************************************
+
+HandoverFromUTRANFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Other IEs
+ interRAT-HO-FailureCause InterRAT-HO-FailureCause OPTIONAL,
+ -- In case the interRATMessage to be transferred is for GERAN Iu mode, the
+ -- message should be placed in the HandoverFromUtranFailure-v590ext-IEs
+ -- non-critical extension container.
+ -- In case the interRATMessage to be transferred is for E-UTRA, the
+ -- message should be placed in the HandoverFromUtranFailure-v860ext-IEs
+ -- non-critical extension container.
+ interRATMessage CHOICE {
+ gsm SEQUENCE {
+ gsm-MessageList GSM-MessageList
+ },
+ cdma2000 SEQUENCE {
+ cdma2000-MessageList CDMA2000-MessageList
+ }
+ } OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ handoverFromUTRANFailure-r3-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ handoverFromUTRANFailure-v590ext HandoverFromUtranFailure-v590ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ handoverFromUTRANFailure-v860ext HandoverFromUtranFailure-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+HandoverFromUtranFailure-v590ext-IEs ::= SEQUENCE {
+ geranIu-MessageList GERANIu-MessageList OPTIONAL
+}
+
+HandoverFromUtranFailure-v860ext-IEs ::= SEQUENCE {
+ eutra-Message OCTET STRING OPTIONAL
+}
+
+-- ***************************************************
+--
+-- INTER RAT HANDOVER INFO
+--
+-- ***************************************************
+
+InterRATHandoverInfo ::= SEQUENCE {
+ -- This structure is defined for historical reasons, backward compatibility with 44.018
+ predefinedConfigStatusList CHOICE {
+ absent NULL,
+ present PredefinedConfigStatusList
+ },
+ uE-SecurityInformation CHOICE {
+ absent NULL,
+ present UE-SecurityInformation
+ },
+ ue-CapabilityContainer CHOICE {
+ absent NULL,
+ -- present is an octet aligned string containing IE UE-RadioAccessCapabilityInfo
+ present OCTET STRING (SIZE (0..63))
+ },
+ -- Non critical extensions
+ v390NonCriticalExtensions CHOICE {
+ absent NULL,
+ present SEQUENCE {
+ interRATHandoverInfo-v390ext InterRATHandoverInfo-v390ext-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v3a0ext InterRATHandoverInfo-v3a0ext-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v3d0ext InterRATHandoverInfo-v3d0ext-IEs,
+ -- Container for additional R99 extensions
+ interRATHandoverInfo-r3-add-ext BIT STRING
+ (CONTAINING InterRATHandoverInfo-r3-add-ext-IEs) OPTIONAL,
+ v3g0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v3g0ext InterRATHandoverInfo-v3g0ext-IEs,
+ v4b0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v4b0ext InterRATHandoverInfo-v4b0ext-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v4d0ext InterRATHandoverInfo-v4d0ext-IEs,
+ -- Reserved for future non critical extension
+ v590NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v590ext
+ InterRATHandoverInfo-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v690ext
+ InterRATHandoverInfo-v690ext-IEs,
+ v6b0NonCriticalExtensions
+ InterRATHandoverInfo-NonCriticalExtension-v6b0-IEs OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ }
+ }
+}
+
+InterRATHandoverInfo-v390ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v380ext UE-RadioAccessCapability-v380ext OPTIONAL,
+ dl-PhysChCapabilityFDD-v380ext DL-PhysChCapabilityFDD-v380ext
+}
+
+InterRATHandoverInfo-v3a0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v3a0ext UE-RadioAccessCapability-v3a0ext OPTIONAL
+}
+
+InterRATHandoverInfo-v3d0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ uESpecificBehaviourInformation1interRAT UESpecificBehaviourInformation1interRAT OPTIONAL
+}
+
+InterRATHandoverInfo-v3g0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v3g0ext UE-RadioAccessCapability-v3g0ext OPTIONAL
+}
+
+InterRATHandoverInfo-r3-add-ext-IEs ::= SEQUENCE {
+ interRATHandoverInfo-v690ext1 InterRATHandoverInfo-v690ext1-IEs,
+ v7e0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v7e0ext InterRATHandoverInfo-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v7f0ext InterRATHandoverInfo-v7f0ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-va40ext InterRATHandoverInfoBand-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+InterRATHandoverInfo-v4b0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ accessStratumReleaseIndicator AccessStratumReleaseIndicator
+}
+
+InterRATHandoverInfo-v4d0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ tdd128-RF-Capability RadioFrequencyBandTDDList OPTIONAL
+}
+
+InterRATHandoverInfo-v590ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ predefinedConfigStatusListComp PredefinedConfigStatusListComp OPTIONAL,
+ ue-RadioAccessCapabilityComp UE-RadioAccessCapabilityComp OPTIONAL
+}
+
+InterRATHandoverInfo-v690ext1-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v650ext UE-RadioAccessCapability-v650ext OPTIONAL
+}
+
+InterRATHandoverInfo-v690ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-SecurityInformation2 UE-SecurityInformation2 OPTIONAL,
+ ue-RadioAccessCapabilityComp UE-RadioAccessCapabilityComp-ext OPTIONAL,
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2
+}
+
+InterRATHandoverInfo-NonCriticalExtension-v6b0-IEs ::= SEQUENCE {
+ interRATHandoverInfo-v6b0ext InterRATHandoverInfo-v6b0ext-IEs,
+ v6e0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v6e0ext InterRATHandoverInfo-v6e0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v770ext InterRATHandoverInfo-v770ext-IEs,
+ v790nonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v790ext InterRATHandoverInfo-v790ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v860ext InterRATHandoverInfo-v860ext-IEs,
+ v880NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v880ext InterRATHandoverInfo-v880ext-IEs,
+ v920NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v920ext InterRATHandoverInfo-v920ext-IEs,
+ v8b0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v8b0ext
+ InterRATHandoverInfo-v8b0ext-IEs,
+ v950NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-v950ext
+ InterRATHandoverInfo-v950ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-va40ext
+ InterRATHandoverInfo-va40ext-IEs,
+ va80NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-va80ext
+ InterRATHandoverInfo-va80ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-vb50ext
+ InterRATHandoverInfo-vb50ext-IEs,
+ vb70NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-vb70ext
+ InterRATHandoverInfo-vb70ext-IEs,
+ vbc0NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-vbc0ext
+ InterRATHandoverInfo-vbc0ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ interRATHandoverInfo-vc50ext
+ InterRATHandoverInfo-vc50ext-IEs,
+ vdxyNonCriticalExtensions SEQUENCE { interRATHandoverInfo-vdxyext InterRATHandoverInfo-vdxyext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+InterRATHandoverInfo-v6b0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForSIB11bis ENUMERATED { true } OPTIONAL
+}
+
+InterRATHandoverInfo-v6e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForFDPCH ENUMERATED { true } OPTIONAL
+}
+
+InterRATHandoverInfo-v770ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo UE-RadioAccessCapabilityInfo-v770ext OPTIONAL,
+ ue-RadioAccessCapabilityComp UE-RadioAccessCapabilityComp-v770ext OPTIONAL,
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-v770ext OPTIONAL
+}
+
+InterRATHandoverInfo-v790ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForEDPCCHPowerBoosting ENUMERATED { true } OPTIONAL
+}
+
+InterRATHandoverInfo-v7e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability UE-RadioAccessCapability-v7e0ext OPTIONAL
+}
+
+InterRATHandoverInfo-v7f0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability UE-RadioAccessCapability-v7f0ext OPTIONAL,
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-v7f0ext OPTIONAL
+}
+
+InterRATHandoverInfo-v860ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo UE-RadioAccessCapability-v860ext OPTIONAL,
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-v860ext OPTIONAL
+}
+
+InterRATHandoverInfo-v880ext-IEs ::= SEQUENCE {
+ -- UE radio access capability
+ ue-RadioAccessCapabilityInfo UE-RadioAccessCapability-v880ext OPTIONAL,
+ ue-RadioAccessCapabilityInfo-TDD128 UE-RadioAccessCapabilityComp-TDD128 OPTIONAL
+}
+
+InterRATHandoverInfo-v920ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo UE-RadioAccessCapability-v920ext OPTIONAL,
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-v920ext OPTIONAL
+}
+
+InterRATHandoverInfo-v8b0ext-IEs ::= SEQUENCE {
+ -- UE radio access capability
+ ue-RadioAccessCapabilityInfo UE-RadioAccessCapabilityInfo-TDD128-v8b0ext OPTIONAL
+}
+
+InterRATHandoverInfo-v950ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ pdcp-Capability PDCP-Capability-r4-ext OPTIONAL
+}
+
+InterRATHandoverInfo-va40ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo UE-RadioAccessCapability-va40ext OPTIONAL,
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-va40ext OPTIONAL
+}
+
+InterRATHandoverInfoBand-va40ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapabBand UE-RadioAccessCapabBand-va40ext OPTIONAL,
+ rf-CapabilityFDDComp RF-CapabBandListFDDComp-ext2 OPTIONAL
+}
+
+InterRATHandoverInfo-va80ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo-va80ext UE-RadioAccessCapability-va80ext OPTIONAL
+}
+
+InterRATHandoverInfo-vb50ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo-vb50ext UE-RadioAccessCapability-vb50ext OPTIONAL,
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-vb50ext OPTIONAL,
+ ue-RadioAccessCapabilityInfo-TDD128 UE-RadioAccessCapabilityInfo-TDD128-vb50ext OPTIONAL
+}
+
+InterRATHandoverInfo-vb70ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo-vb70ext UE-RadioAccessCapability-vb70ext OPTIONAL
+}
+
+InterRATHandoverInfo-vbc0ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo-vbc0ext UE-RadioAccessCapability-vbc0ext OPTIONAL
+}
+
+InterRATHandoverInfo-vc50ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-vc50ext OPTIONAL
+}
+
+InterRATHandoverInfo-vdxyext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo-vdxyext UE-RadioAccessCapability-vdxyext OPTIONAL,
+ ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-vdxyext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MEASUREMENT CONTROL
+--
+-- ***************************************************
+
+MeasurementControl ::= CHOICE {
+ -- The Rel-4 functionality of UE Positioning OTDOA AssistanceData TDD is only available
+ -- in the later-than-r3 branch of this message (i.e. through the use of the IE
+ -- ue-Positioning-OTDOA-AssistanceData-r4)
+ r3 SEQUENCE {
+ measurementControl-r3 MeasurementControl-r3-IEs,
+ v390nonCriticalExtensions SEQUENCE {
+ measurementControl-v390ext MeasurementControl-v390ext,
+ v3a0NonCriticalExtensions SEQUENCE {
+ measurementControl-v3a0ext MeasurementControl-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ measurementControl-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE{
+ -- The content of the v4b0 non-critical extension has been removed. If sent
+ -- to a UE of AS release 4, the UE behaviour is unspecified. A UE of AS
+ -- release 5 onward shall comply with the v4b0 and later extensions in this
+ -- branch of the message.
+ v590NonCriticalExtensions SEQUENCE {
+ measurementControl-v590ext MeasurementControl-v590ext-IEs,
+ v5b0NonCriticalExtensions SEQUENCE {
+ measurementControl-v5b0ext MeasurementControl-v5b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ -- Least significant part of extended "RRC transaction identifier" (Rel-5 onward)
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ measurementControl-r4 MeasurementControl-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ measurementControl-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE{
+ measurementControl-v590ext MeasurementControl-v590ext-IEs,
+ v5b0NonCriticalExtensions SEQUENCE {
+ measurementControl-v5b0ext MeasurementControl-v5b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r4 SEQUENCE {
+ -- Most significant part of extended "RRC transaction identifier" (MSP):
+ -- extended "RRC transaction identifier" =
+ -- rrc-TransactionIdentifier-MSP * 4 + rrc-TransactionIdentifier
+ rrc-TransactionIdentifier-MSP RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ measurementControl-r6 MeasurementControl-r6-IEs,
+ v6a0NonCriticalExtensions SEQUENCE {
+ measurementControl-v6a0ext MeasurementControl-v6a0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ measurementControl-r7 MeasurementControl-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ measurementControl-r7-add-ext BIT STRING OPTIONAL,
+ v7b0NonCriticalExtensions SEQUENCE {
+ measurementControl-v7b0ext MeasurementControl-v7b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ measurementControl-r8 MeasurementControl-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ measurementControl-r8-add-ext BIT STRING OPTIONAL,
+ v8a0NonCriticalExtensions SEQUENCE {
+ measurementControl-v8a0ext MeasurementControl-v8a0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ measurementControl-vb50ext MeasurementControl-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ measurementControl-r9 MeasurementControl-r9-IEs,
+ -- Container for adding non critical extensions after freezing REL-10
+ measurementControl-r9-add-ext BIT STRING OPTIONAL,
+ v970NonCriticalExtensions SEQUENCE {
+ measurementControl-v970ext
+ MeasurementControl-v970ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ measurementControl-vb50ext
+ MeasurementControl-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ measurementControl-r10 MeasurementControl-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ measurementControl-r10-add-ext BIT STRING OPTIONAL,
+ vaa0NonCriticalExtensions SEQUENCE {
+ measurementControl-vaa0ext
+ MeasurementControl-vaa0ext-IEs,
+ vab0NonCriticalExtensions SEQUENCE {
+ measurementControl-vab0ext
+ MeasurementControl-vab0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ measurementControl-vb50ext
+ MeasurementControl-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ measurementControl-r11
+ MeasurementControl-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ measurementControl-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ measurementControl-r12
+ MeasurementControl-r12-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-13
+ measurementControl-r12-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ measurementControl-r13
+ MeasurementControl-r13-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-14
+ measurementControl-r13-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+MeasurementControl-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The measurement type is included in MeasurementCommand.
+ measurementCommand MeasurementCommand,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL
+}
+
+MeasurementControl-v390ext ::= SEQUENCE {
+ ue-Positioning-Measurement-v390ext UE-Positioning-Measurement-v390ext OPTIONAL
+}
+
+MeasurementControl-v3a0ext ::= SEQUENCE {
+ sfn-Offset-Validity SFN-Offset-Validity OPTIONAL
+}
+
+MeasurementControl-r4-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r4,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL
+}
+
+MeasurementControl-v590ext-IEs ::= SEQUENCE {
+ measurementCommand-v590ext CHOICE {
+ -- the choice "intra-frequency" shall be used for the case of intra-frequency measurement,
+ -- as well as when intra-frequency events are configured for inter-frequency measurement
+ intra-frequency Intra-FreqEventCriteriaList-v590ext,
+ inter-frequency Inter-FreqEventCriteriaList-v590ext
+ } OPTIONAL,
+ intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL,
+ intraFreqEvent-1d-r5 IntraFreqEvent-1d-r5 OPTIONAL,
+ -- Most significant part of extended "RRC transaction identifier" (MSP):
+ -- extended "RRC transaction identifier" =
+ -- rrc-TransactionIdentifier-MSP-v590ext * 4 + rrc-TransactionIdentifier
+ rrc-TransactionIdentifier-MSP-v590ext RRC-TransactionIdentifier
+}
+
+MeasurementControl-v5b0ext-IEs ::= SEQUENCE {
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL
+}
+
+MeasurementControl-r6-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r6,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL
+}
+
+MeasurementControl-v6a0ext-IEs ::= SEQUENCE {
+ intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL
+}
+
+
+MeasurementControl-r7-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r7,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL
+}
+
+MeasurementControl-v7b0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ newInterFreqCellList NewInterFreqCellList-v7b0ext OPTIONAL
+}
+
+MeasurementControl-r8-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r8,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL
+}
+
+MeasurementControl-v8a0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ newIntraFreqCellList NewIntraFreqCellList-LCR-v8a0ext OPTIONAL,
+ newInterFreqCellList NewInterFreqCellList-LCR-v8a0ext OPTIONAL
+}
+
+MeasurementControl-r9-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ -- if the UE supports extended measurements, "measurementIdentity"
+ -- shall be ignored if "measurementIdentity" in MeasurementControl-v970ext-IEs
+ -- is present, and the value of that element shall be used instead.
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r9,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ -- if the UE supports extended measurements, "additionalMeasurementList"
+ -- shall be ignored if "additionalMeasurementList" in MeasurementControl-v970ext-IEs
+ -- is present, and the value of that element shall be used instead.
+ additionalMeasurementList AdditionalMeasurementID-List OPTIONAL,
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL
+}
+
+MeasurementControl-v970ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity-r9 OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List-r9 OPTIONAL
+}
+
+MeasurementControl-r10-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ -- if the UE supports extended measurements, "measurementIdentity"
+ -- shall be ignored if "measurementIdentity" in MeasurementControl-vab0ext-IEs
+ -- is present, and the value of that element shall be used instead.
+ measurementIdentity MeasurementIdentity,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r10,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ -- if the UE supports extended measurements, "additionalMeasurementList"
+ -- shall be ignored if "additionalMeasurementList" in MeasurementControl-vab0ext-IEs
+ -- is present, and the value of that element shall be used instead.
+ additionalMeasurementList AdditionalMeasurementID-List OPTIONAL,
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo-r10 OPTIONAL
+}
+
+MeasurementControl-vaa0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ periodicalReportingCriteriaOnSecULFreq
+ PeriodicalWithReportingCellStatusOnSecULFreq OPTIONAL
+}
+
+MeasurementControl-vab0ext-IEs ::= MeasurementControl-v970ext-IEs
+
+MeasurementControl-r11-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity-r9,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r11,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List-r9 OPTIONAL,
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo-r10 OPTIONAL
+}
+
+MeasurementControl-vb50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ interRATMeasurement InterRATMeasurement-r11 OPTIONAL
+}
+
+MeasurementControl-r12-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity-r9 OPTIONAL,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r12,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List-r9 OPTIONAL,
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL,
+ measurementScalingFactor MeasurementScalingFactor OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo-r10 OPTIONAL
+}
+
+MeasurementControl-r13-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measurementIdentity MeasurementIdentity-r9 OPTIONAL,
+ -- TABULAR: The measurement type is included in measurementCommand.
+ measurementCommand MeasurementCommand-r13,
+ measurementReportingMode MeasurementReportingMode OPTIONAL,
+ additionalMeasurementList AdditionalMeasurementID-List-r9 OPTIONAL,
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL,
+ measurementScalingFactor MeasurementScalingFactor OPTIONAL,
+ -- Physical channel IEs
+ dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo-r10 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MEASUREMENT CONTROL FAILURE
+--
+-- ***************************************************
+
+MeasurementControlFailure ::= SEQUENCE {
+ -- User equipment IEs
+ -- Least significant part of extended "RRC transaction identifier" (Rel-5 onward)
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ measurementControlFailure-r3-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ measurementControlFailure-v590ext MeasurementControlFailure-v590ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ measurementControlFailure-vc50ext MeasurementControlFailure-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+
+ } OPTIONAL
+ } OPTIONAL
+}
+
+MeasurementControlFailure-v590ext-IEs ::= SEQUENCE {
+ -- Most significant part of extended "RRC transaction identifier" (MSP):
+ -- extended "RRC transaction identifier" =
+ -- rrc-TransactionIdentifier-MSP-v590ext * 4 + rrc-TransactionIdentifier
+ -- If the rrc-TransactionIdentifier-MSP-v590ext was not received in the MEASUREMENT CONTROL
+ -- message, then the rrc-TransactionIdentifier-MSP-v590ext shall be set to zero
+ rrc-TransactionIdentifier-MSP-v590ext RRC-TransactionIdentifier
+}
+
+MeasurementControlFailure-vc50ext-IEs ::= SEQUENCE {
+ measurementIdentity MeasurementIdentity-r9 OPTIONAL
+}
+-- ***************************************************
+--
+-- MEASUREMENT REPORT
+--
+-- ***************************************************
+
+MeasurementReport ::= SEQUENCE {
+ -- Measurement IEs
+ -- if the UE supports extended measurements, "measurementIdentity"
+ -- shall be ignored if "measurementIdentity" in MeasurementReport-v970ext-IEs
+ -- is present, and the value of that element shall be used instead.
+ measurementIdentity MeasurementIdentity,
+ measuredResults MeasuredResults OPTIONAL,
+ measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL,
+ additionalMeasuredResults MeasuredResultsList OPTIONAL,
+ eventResults EventResults OPTIONAL,
+ -- Non-critical extensions
+ v390nonCriticalExtensions SEQUENCE {
+ measurementReport-v390ext MeasurementReport-v390ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ measurementReport-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ measurementReport-v4b0ext MeasurementReport-v4b0ext-IEs,
+ -- Extension mechanism for non-Rel4 information
+ v590NonCriticalExtensions SEQUENCE {
+ measurementReport-v590ext MeasurementReport-v590ext-IEs,
+ v5b0NonCriticalExtensions SEQUENCE {
+ measurementReport-v5b0ext MeasurementReport-v5b0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ measurementReport-v690ext MeasurementReport-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ measurementReport-v770ext MeasurementReport-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ measurementReport-v860ext MeasurementReport-v860ext-IEs,
+ v920NonCriticalExtensions SEQUENCE {
+ measurementReport-v920ext MeasurementReport-v920ext-IEs,
+ v970NonCriticalExtensions SEQUENCE {
+ measurementReport-v970ext-IE
+ MeasurementReport-v970ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ measurementReport-va40ext
+ MeasurementReport-va40ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ measurementReport-vb50ext
+ MeasurementReport-vb50ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ measurementReport-vc50ext
+ MeasurementReport-vc50ext-IEs,
+ vdxyNonCriticalExtensions SEQUENCE {
+ measurementReport-vdxyext
+ MeasurementReport-vdxyext-IEs,
+ nonCriticalExtensions
+ SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+MeasurementReport-v390ext ::= SEQUENCE {
+ measuredResults-v390ext MeasuredResults-v390ext OPTIONAL
+}
+
+MeasurementReport-v4b0ext-IEs ::= SEQUENCE {
+ interFreqEventResults-LCR InterFreqEventResults-LCR-r4-ext OPTIONAL,
+ -- additionalMeasuredResults-LCR shall contain measurement results and additional measurement
+ -- results list.
+ additionalMeasuredResults-LCR MeasuredResultsList-LCR-r4-ext OPTIONAL,
+ -- dummy is not used in this version of the specification. It should not be sent and
+ -- if received it should be ignored.
+ dummy PrimaryCPICH-Info OPTIONAL
+}
+
+MeasurementReport-v590ext-IEs ::= SEQUENCE {
+ measuredResults-v590ext MeasuredResults-v590ext OPTIONAL
+}
+
+MeasurementReport-v5b0ext-IEs ::= SEQUENCE {
+ interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL
+}
+
+MeasurementReport-v690ext-IEs ::= SEQUENCE {
+ measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL
+}
+
+MeasurementReport-v770ext-IEs ::= SEQUENCE {
+ measuredResults MeasuredResults-v770ext OPTIONAL,
+ additionalMeasuredResults MeasuredResultsList-v770xet OPTIONAL,
+ eventResults EventResults-v770ext OPTIONAL,
+ ue-Positioning-OTDOA-MeasuredResults
+ UE-Positioning-OTDOA-MeasuredResultsTDD-ext OPTIONAL
+}
+
+MeasurementReport-v860ext-IEs ::= SEQUENCE {
+ activationTime ActivationTime OPTIONAL,
+ measuredResults MeasuredResults-v860ext OPTIONAL,
+ additionalMeasuredResults MeasuredResultsList-v860ext OPTIONAL,
+ eventResults EventResults-v860ext OPTIONAL,
+ eutra-MeasuredResults EUTRA-MeasuredResults OPTIONAL,
+ eutra-EventResults EUTRA-EventResults OPTIONAL
+}
+
+MeasurementReport-v920ext-IEs ::= SEQUENCE {
+ cSGProximityIndication CSGProximityIndication OPTIONAL,
+ measuredResults MeasuredResults-v920ext OPTIONAL,
+ measuredResultsOnSecUlFreq MeasuredResultsOnSecUlFreq OPTIONAL,
+ additionalMeasuredResults MeasuredResultsList-v920ext OPTIONAL,
+ additionalMeasuredResultsOnSecUlFreq
+ MeasuredResultsListOnSecUlFreq OPTIONAL,
+ eventResultsOnSecUlFreq EventResultsOnSecUlFreq OPTIONAL,
+ eutra-MeasuredResults EUTRA-MeasuredResults-v920ext OPTIONAL
+}
+
+MeasurementReport-v970ext-IEs ::= SEQUENCE {
+ measurementIdentity MeasurementIdentityExt OPTIONAL
+}
+
+MeasurementReport-va40ext-IEs ::= SEQUENCE {
+ eventResults EventResults-va40ext OPTIONAL,
+ loggedMeasAvailable ENUMERATED { true } OPTIONAL,
+ loggedANRResultsAvailable ENUMERATED { true } OPTIONAL
+}
+
+MeasurementReport-vb50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL,
+ eutra-EventResultsForCELLFACH EUTRA-EventResultsForCELLFACH OPTIONAL,
+ cSGProximityIndication CSGProximityIndication-vb50ext OPTIONAL,
+ eutra-MeasuredResults EUTRA-MeasuredResults-vb50ext OPTIONAL,
+ eutra-EventResults EUTRA-EventResults-vb50ext OPTIONAL
+}
+
+MeasurementReport-vc50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL,
+ measuredResults MeasuredResults-vc50ext OPTIONAL,
+ measuredResultsOnSecUlFreq MeasuredResultsOnSecUlFreq-vc50ext OPTIONAL,
+ additionalMeasuredResults MeasuredResultsList-vc50ext OPTIONAL,
+ additionalMeasuredResultsOnSecUlFreq
+ MeasuredResultsListOnSecUlFreq-vc50ext OPTIONAL,
+ eutra-MeasuredResults EUTRA-MeasuredResults-vc50ext OPTIONAL,
+ eutra-EventResults EUTRA-EventResults-vc50ext OPTIONAL,
+ eutra-EventResultsForCELLFACH EUTRA-EventResultsForCELLFACH-vc50ext OPTIONAL
+}
+
+MeasurementReport-vdxyext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResults MeasuredResults-vdxyext OPTIONAL,
+ additionalMeasuredResults MeasuredResultsList-vdxyext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- PAGING TYPE 1
+--
+-- ***************************************************
+
+PagingType1 ::= SEQUENCE {
+ -- User equipment IEs
+ pagingRecordList PagingRecordList OPTIONAL,
+ -- Other IEs
+ bcch-ModificationInfo BCCH-ModificationInfo OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ pagingType1-r3-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ pagingType1-v590ext PagingType1-v590ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ pagingType1-v860ext PagingType1-v860ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ pagingType1-vc50ext PagingType1-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+PagingType1-v590ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ pagingRecord2List PagingRecord2List-r5 OPTIONAL
+}
+
+PagingType1-v860ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ etws-Information ETWS-Information OPTIONAL
+}
+
+PagingType1-vc50ext-IEs ::= SEQUENCE {
+ bcch-ModificationInfo-vc50ext BCCH-ModificationInfo-vc50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- PAGING TYPE 2
+--
+-- ***************************************************
+
+PagingType2 ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ pagingCause PagingCause,
+ -- Core network IEs
+ cn-DomainIdentity CN-DomainIdentity,
+ pagingRecordTypeID PagingRecordTypeID,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ pagingType2-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- PHYSICAL CHANNEL RECONFIGURATION
+--
+-- ***************************************************
+
+PhysicalChannelReconfiguration ::= CHOICE {
+ r3 SEQUENCE {
+ physicalChannelReconfiguration-r3
+ PhysicalChannelReconfiguration-r3-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v3a0ext PhysicalChannelReconfiguration-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ physicalChannelReconfiguration-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtenstions SEQUENCE {
+ physicalChannelReconfiguration-v4b0ext
+ PhysicalChannelReconfiguration-v4b0ext-IEs,
+ v590NonCriticalExtenstions SEQUENCE {
+ physicalChannelReconfiguration-v590ext
+ PhysicalChannelReconfiguration-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v690ext
+ PhysicalChannelReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v770ext
+ PhysicalChannelReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ physicalChannelReconfiguration-r4
+ PhysicalChannelReconfiguration-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ physicalChannelReconfiguration-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtenstions SEQUENCE {
+ physicalChannelReconfiguration-v590ext
+ PhysicalChannelReconfiguration-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v690ext
+ PhysicalChannelReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v770ext
+ PhysicalChannelReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ physicalChannelReconfiguration-r5
+ PhysicalChannelReconfiguration-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ physicalChannelReconfiguration-r5-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v690ext
+ PhysicalChannelReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v770ext
+ PhysicalChannelReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ physicalChannelReconfiguration-r6
+ PhysicalChannelReconfiguration-r6-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ physicalChannelReconfiguration-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v6b0ext
+ PhysicalChannelReconfiguration-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v770ext
+ PhysicalChannelReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ physicalChannelReconfiguration-r7
+ PhysicalChannelReconfiguration-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ physicalChannelReconfiguration-r7-add-ext BIT STRING OPTIONAL,
+ v780NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v780ext
+ PhysicalChannelReconfiguration-v780ext-IEs,
+ v7d0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v7d0ext
+ PhysicalChannelReconfiguration-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v7f0ext
+ PhysicalChannelReconfiguration-v7f0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v7g0ext
+ PhysicalChannelReconfiguration-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ physicalChannelReconfiguration-r8
+ PhysicalChannelReconfiguration-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ physicalChannelReconfiguration-r8-add-ext BIT STRING OPTIONAL,
+ v7d0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v7d0ext
+ PhysicalChannelReconfiguration-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v7f0ext
+ PhysicalChannelReconfiguration-v7f0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v890ext
+ PhysicalChannelReconfiguration-v890ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v7g0ext
+ PhysicalChannelReconfiguration-v7g0ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v8a0ext
+ PhysicalChannelReconfiguration-v8a0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ physicalChannelReconfiguration-r9
+ PhysicalChannelReconfiguration-r9-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-10
+ physicalChannelReconfiguration-r9-add-ext
+ BIT STRING OPTIONAL,
+ v950NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-v950ext
+ PhysicalChannelReconfiguration-v950ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ physicalChannelReconfiguration-r10
+ PhysicalChannelReconfiguration-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ physicalChannelReconfiguration-r10-add-ext
+ BIT STRING OPTIONAL,
+ vb50NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfiguration-vb50ext
+ PhysicalChannelReconfiguration-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ physicalChannelReconfiguration-r11
+ PhysicalChannelReconfiguration-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ physicalChannelReconfiguration-r11-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions
+ SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ physicalChannelReconfiguration-r12
+ PhysicalChannelReconfiguration-r12-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-13
+ physicalChannelReconfiguration-r12-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ physicalChannelReconfiguration-r13
+ PhysicalChannelReconfiguration-r13-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-14
+ physicalChannelReconfiguration-r13-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+PhysicalChannelReconfiguration-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ -- Note: the reference to CPCH in the element name below is incorrect. The name is not
+ -- changed to keep it aligned with R99.
+ ul-ChannelRequirement UL-ChannelRequirementWithCPCH-SetID OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v3a0ext ::= SEQUENCE {
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour
+ -- is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v4b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-UL OPTIONAL,
+ -- The order of the RLs in IE cell-id-PerRL-List is the same as
+ -- in IE DL-InformationPerRL-List included in this message
+ cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v590ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r4-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ -- Note: the reference to CPCH in the element name below is incorrect. The name is not
+ -- changed to keep it aligned with R99.
+ ul-ChannelRequirement UL-ChannelRequirementWithCPCH-SetID-r4 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation-r4 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ -- Note: the reference to CPCH in the element name below is incorrect. The name is not
+ -- changed to keep it aligned with R99.
+ ul-ChannelRequirement UL-ChannelRequirementWithCPCH-SetID-r5 OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r5 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r6 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v690ext-IEs ::= SEQUENCE {
+ -- User Equipment IEs
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- Physical channel IEs
+ -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message
+ -- If included in the r3 or r4 version of the message, the UE should ignore the IE
+ harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL,
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL,
+ dhs-sync DHS-Sync OPTIONAL,
+ timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v6b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r7 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v780ext-IEs ::= SEQUENCE {
+ -- Transport channel IEs
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v7d0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v7f0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7f0ext OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v7g0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7g0ext OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v8a0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r9-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-v950ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r10-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ harqInfo HARQ-Info-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-vb50ext-IEs ::= SEQUENCE {
+ ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ harqInfo HARQ-Info-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r11 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ harqInfo HARQ-Info-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+PhysicalChannelReconfiguration-r13-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ dynamicActivationTime DynamicActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ retrievableConfigInfo RetrievableConfigInfo OPTIONAL,
+ -- Transport channel IEs
+ harqInfo HARQ-Info-r13 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r13 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- PHYSICAL CHANNEL RECONFIGURATION COMPLETE
+--
+-- ***************************************************
+
+PhysicalChannelReconfigurationComplete ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL,
+ -- TABULAR: UL-TimingAdvance is applicable for TDD mode only.
+ ul-TimingAdvance UL-TimingAdvance OPTIONAL,
+ -- Radio bearer IEs
+ count-C-ActivationTime ActivationTime OPTIONAL,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy RB-ActivationTimeInfoList OPTIONAL,
+ ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ physicalChannelReconfigurationComplete-r3-add-ext BIT STRING OPTIONAL,
+ v770NonCriticalExtensions SEQUENCE {
+ physicalChannelReconfigurationComplete-v770ext
+ PhysicalChannelReconfigurationComplete-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+PhysicalChannelReconfigurationComplete-v770ext-IEs ::= SEQUENCE {
+ -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only.
+ ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL,
+ deferredMeasurementControlReading ENUMERATED { true } OPTIONAL
+}
+
+
+-- ***************************************************
+--
+-- PHYSICAL CHANNEL RECONFIGURATION FAILURE
+--
+-- ***************************************************
+
+PhysicalChannelReconfigurationFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier OPTIONAL,
+ failureCause FailureCauseWithProtErr,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ physicalChannelReconfigurationFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- PHYSICAL SHARED CHANNEL ALLOCATION (TDD only)
+--
+-- ***************************************************
+
+PhysicalSharedChannelAllocation ::= CHOICE {
+ r3 SEQUENCE {
+ physicalSharedChannelAllocation-r3
+ PhysicalSharedChannelAllocation-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ physicalSharedChannelAllocation-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ dsch-RNTI DSCH-RNTI OPTIONAL,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ physicalSharedChannelAllocation-r4
+ PhysicalSharedChannelAllocation-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ physicalSharedChannelAllocation-r4-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ physicalSharedChannelAllocation-v690ext
+ PhysicalSharedChannelAllocation-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ physicalSharedChannelAllocation-v770ext
+ PhysicalSharedChannelAllocation-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+PhysicalSharedChannelAllocation-r3-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ -- User equipment IEs
+ dsch-RNTI DSCH-RNTI OPTIONAL,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Physical channel IEs
+ ul-TimingAdvance UL-TimingAdvanceControl OPTIONAL,
+ pusch-CapacityAllocationInfo PUSCH-CapacityAllocationInfo OPTIONAL,
+ pdsch-CapacityAllocationInfo PDSCH-CapacityAllocationInfo OPTIONAL,
+ -- TABULAR: If confirmRequest is not present, the default value "No Confirm"
+ -- shall be used as specified in 10.2.25.
+ confirmRequest ENUMERATED {
+ confirmPDSCH, confirmPUSCH } OPTIONAL,
+ trafficVolumeReportRequest INTEGER (0..255) OPTIONAL,
+ iscpTimeslotList TimeslotList OPTIONAL,
+ requestPCCPCHRSCP BOOLEAN
+}
+
+PhysicalSharedChannelAllocation-r4-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ -- Physical channel IEs
+ ul-TimingAdvance UL-TimingAdvanceControl-r4 OPTIONAL,
+ pusch-CapacityAllocationInfo PUSCH-CapacityAllocationInfo-r4 OPTIONAL,
+ pdsch-CapacityAllocationInfo PDSCH-CapacityAllocationInfo-r4 OPTIONAL,
+ -- TABULAR: If confirmRequest is not present, the default value "No Confirm"
+ -- shall be used as specified in 10.2.25.
+ confirmRequest ENUMERATED {
+ confirmPDSCH, confirmPUSCH } OPTIONAL,
+ trafficVolumeReportRequest INTEGER (0..255) OPTIONAL,
+ iscpTimeslotList TimeslotList-r4 OPTIONAL,
+ requestPCCPCHRSCP BOOLEAN
+}
+
+PhysicalSharedChannelAllocation-v690ext-IEs ::= SEQUENCE {
+ -- Physical Channel IEs
+ beaconPLEst BEACON-PL-Est OPTIONAL
+}
+
+PhysicalSharedChannelAllocation-v770ext-IEs ::= SEQUENCE {
+ ul-TimingAdvance UL-TimingAdvanceControl-r7 OPTIONAL,
+ pusch-CapacityAllocationInfo PUSCH-CapacityAllocationInfo-r7 OPTIONAL,
+ pdsch-CapacityAllocationInfo PDSCH-CapacityAllocationInfo-r7 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- PUSCH CAPACITY REQUEST (TDD only)
+--
+-- ***************************************************
+
+PUSCHCapacityRequest ::= SEQUENCE {
+ -- User equipment IEs
+ dsch-RNTI DSCH-RNTI OPTIONAL,
+ -- Measurement IEs
+ trafficVolume TrafficVolumeMeasuredResultsList OPTIONAL,
+ timeslotListWithISCP TimeslotListWithISCP OPTIONAL,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
+ allocationConfirmation CHOICE {
+ pdschConfirmation PDSCH-Identity,
+ puschConfirmation PUSCH-Identity
+ } OPTIONAL,
+ protocolErrorIndicator ProtocolErrorIndicatorWithMoreInfo,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ puschCapacityRequest-r3-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ puschCapacityRequest-v590ext PUSCHCapacityRequest-v590ext,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+PUSCHCapacityRequest-v590ext ::= SEQUENCE {
+ primaryCCPCH-RSCP-delta DeltaRSCP OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER RECONFIGURATION
+--
+-- ***************************************************
+
+RadioBearerReconfiguration ::= CHOICE {
+ r3 SEQUENCE {
+ radioBearerReconfiguration-r3 RadioBearerReconfiguration-r3-IEs,
+ -- Prefix "v3ao" is used (in one instance) to keep alignment with R99
+ v3aoNonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v3a0ext RadioBearerReconfiguration-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerReconfiguration-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v4b0ext
+ RadioBearerReconfiguration-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v590ext
+ RadioBearerReconfiguration-v590ext-IEs,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ radioBearerReconfiguration-v5d0ext
+ RadioBearerReconfiguration-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v690ext
+ RadioBearerReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v770ext
+ RadioBearerReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ radioBearerReconfiguration-r4 RadioBearerReconfiguration-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ radioBearerReconfiguration-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v590ext
+ RadioBearerReconfiguration-v590ext-IEs,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ radioBearerReconfiguration-v5d0ext
+ RadioBearerReconfiguration-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v690ext
+ RadioBearerReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v770ext
+ RadioBearerReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ radioBearerReconfiguration-r5 RadioBearerReconfiguration-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ radioBearerReconfiguration-r5-add-ext BIT STRING OPTIONAL,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ radioBearerReconfiguration-v5d0ext RadioBearerReconfiguration-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v690ext
+ RadioBearerReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v770ext
+ RadioBearerReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ radioBearerReconfiguration-r6 RadioBearerReconfiguration-r6-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ radioBearerReconfiguration-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v6b0ext
+ RadioBearerReconfiguration-v6b0ext-IEs,
+ v6f0NonCriticalExtensions SEQUENCE {
+ radioBearerRconfiguration-v6f0ext
+ RadioBearerReconfiguration-v6f0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v770ext
+ RadioBearerReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ radioBearerReconfiguration-r7 RadioBearerReconfiguration-r7-IEs,
+ v780NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v780ext
+ RadioBearerReconfiguration-v780ext-IEs,
+ v790NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v790ext
+ RadioBearerReconfiguration-v790ext-IEs,
+ v7d0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v7d0ext
+ RadioBearerReconfiguration-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v7f0ext
+ RadioBearerReconfiguration-v7f0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v7g0ext
+ RadioBearerReconfiguration-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ radioBearerReconfiguration-r8 RadioBearerReconfiguration-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ radioBearerReconfiguration-r8-add-ext BIT STRING OPTIONAL,
+ v7d0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v7d0ext
+ RadioBearerReconfiguration-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v7f0ext
+ RadioBearerReconfiguration-v7f0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v890ext
+ RadioBearerReconfiguration-v890ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v7g0ext
+ RadioBearerReconfiguration-v7g0ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v8a0ext
+ RadioBearerReconfiguration-v8a0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ radioBearerReconfiguration-r9
+ RadioBearerReconfiguration-r9-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-10
+ radioBearerReconfiguration-r9-add-ext
+ BIT STRING OPTIONAL,
+ v950NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v950ext
+ RadioBearerReconfiguration-v950ext-IEs,
+ v9c0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v9c0ext
+ RadioBearerReconfiguration-v9c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ radioBearerReconfiguration-r10
+ RadioBearerReconfiguration-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ radioBearerReconfiguration-r10-add-ext
+ BIT STRING OPTIONAL,
+ v9c0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-v9c0ext
+ RadioBearerReconfiguration-v9c0ext-IEs,
+ vaa0NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-vaa0ext
+ RadioBearerReconfiguration-vaa0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ radioBearerReconfiguration-vb50ext
+ RadioBearerReconfiguration-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ radioBearerReconfiguration-r11
+ RadioBearerReconfiguration-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ radioBearerReconfiguration-r11-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ radioBearerReconfiguration-r12
+ RadioBearerReconfiguration-r12-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-13
+ radioBearerReconfiguration-r12-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ radioBearerReconfiguration-r13
+ RadioBearerReconfiguration-r13-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-14
+ radioBearerReconfiguration-r13-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+RadioBearerReconfiguration-vaa0ext-IEs ::= SEQUENCE {
+ um-RLC-ReEstablishmentRBList RB-IdentityList OPTIONAL
+}
+
+RadioBearerReconfiguration-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ -- NOTE: IE rb-InformationReconfigList should be optional in later versions
+ -- of this message
+ rb-InformationReconfigList RB-InformationReconfigList,
+ rb-InformationAffectedList RB-InformationAffectedList OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfo2List OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation OPTIONAL,
+ -- NOTE: IE dl-InformationPerRL-List is optional in later versions
+ -- of this message
+ dl-InformationPerRL-List DL-InformationPerRL-List
+}
+
+RadioBearerReconfiguration-v3a0ext ::= SEQUENCE {
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour
+ -- is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL
+}
+
+RadioBearerReconfiguration-v4b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-UL OPTIONAL,
+ -- The order of the RLs in IE cell-id-PerRL-List is the same as
+ -- in IE DL-InformationPerRL-List included in this message
+ cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL
+}
+
+RadioBearerReconfiguration-v590ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL
+}
+
+RadioBearerReconfiguration-v5d0ext-IEs ::= SEQUENCE {
+ --Radio Bearer IEs
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL
+}
+
+RadioBearerReconfiguration-r4-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r4 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation-r4 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL
+}
+
+RadioBearerReconfiguration-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r5 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r5 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the
+ -- specification, they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r5
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r5 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL
+}
+
+RadioBearerReconfiguration-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r6 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r6 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r6 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+RadioBearerReconfiguration-v690ext-IEs ::= SEQUENCE {
+ -- User Equipment IEs
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- Physical channel IEs
+ -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message
+ -- If included in the r3 or r4 version of the message, the UE should ignore the IE
+ harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL,
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL,
+ dhs-sync DHS-Sync OPTIONAL,
+ timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+RadioBearerReconfiguration-v6b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL
+}
+
+RadioBearerReconfiguration-v6f0ext-IEs ::= SEQUENCE {
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL
+ }
+ }
+}
+
+RadioBearerReconfiguration-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r7 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r7 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r7 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+RadioBearerReconfiguration-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL
+}
+
+RadioBearerReconfiguration-v780ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+RadioBearerReconfiguration-v790ext-IEs ::= SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-8
+ radioBearerReconfiguration-r7-add-ext BIT STRING OPTIONAL
+}
+
+RadioBearerReconfiguration-v7d0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL
+}
+
+RadioBearerReconfiguration-v7f0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7f0ext OPTIONAL
+}
+
+RadioBearerReconfiguration-v7g0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7g0ext OPTIONAL
+}
+
+RadioBearerReconfiguration-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+RadioBearerReconfiguration-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL
+}
+
+RadioBearerReconfiguration-v8a0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL
+}
+
+RadioBearerReconfiguration-r9-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received UE behaviour is unspecified.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerReconfiguration-v950ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL
+}
+
+RadioBearerReconfiguration-v9c0ext-IEs ::= SEQUENCE {
+ -- For 1.28Mcps TDD only
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL
+}
+
+RadioBearerReconfiguration-r10-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received UE behaviour is unspecified.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerReconfiguration-vb50ext-IEs ::= SEQUENCE {
+ ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL
+}
+
+RadioBearerReconfiguration-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Specification mode information
+ defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ umRlc-ReEstablishmentRBList RB-IdentityList OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r11 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerReconfiguration-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ accessGroupIdentity AccessGroupIdentity OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Specification mode information
+ defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ umRlc-ReEstablishmentRBList RB-IdentityList OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerReconfiguration-r13-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ dynamicActivationTime DynamicActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ uraPCHWithSeamlessTransitionRNTIHandlingMode ENUMERATED { true } OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ accessGroupIdentity AccessGroupIdentity OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Specification mode information
+ defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ umRlc-ReEstablishmentRBList RB-IdentityList OPTIONAL,
+ otherStateConfig OtherStateConfig OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r13 OPTIONAL,
+ -- Retrievable configuration
+ retrievableConfigInfo RetrievableConfigInfo OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r13 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER RECONFIGURATION COMPLETE
+--
+-- ***************************************************
+
+RadioBearerReconfigurationComplete ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL,
+ -- TABULAR: UL-TimingAdvance is applicable for TDD mode only.
+ ul-TimingAdvance UL-TimingAdvance OPTIONAL,
+ -- Radio bearer IEs
+ count-C-ActivationTime ActivationTime OPTIONAL,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy RB-ActivationTimeInfoList OPTIONAL,
+ ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerReconfigurationComplete-r3-add-ext BIT STRING OPTIONAL,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerReconfigurationComplete-v770ext
+ RadioBearerReconfigurationComplete-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+RadioBearerReconfigurationComplete-v770ext-IEs ::= SEQUENCE {
+ -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only.
+ ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL,
+ deferredMeasurementControlReading ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER RECONFIGURATION FAILURE
+--
+-- ***************************************************
+
+RadioBearerReconfigurationFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ -- Radio bearer IEs
+ potentiallySuccesfulBearerList RB-IdentityList OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerReconfigurationFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER RELEASE
+--
+-- ***************************************************
+
+RadioBearerRelease ::= CHOICE {
+ r3 SEQUENCE {
+ radioBearerRelease-r3 RadioBearerRelease-r3-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v3a0ext RadioBearerRelease-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerRelease-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v4b0ext RadioBearerRelease-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v590ext RadioBearerRelease-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v690ext RadioBearerRelease-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v770ext RadioBearerRelease-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ radioBearerRelease-r4 RadioBearerRelease-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ radioBearerRelease-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v590ext RadioBearerRelease-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v690ext RadioBearerRelease-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v770ext RadioBearerRelease-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ radioBearerRelease-r5 RadioBearerRelease-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ radioBearerRelease-r5-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v690ext RadioBearerRelease-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v770ext RadioBearerRelease-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ radioBearerRelease-r6 RadioBearerRelease-r6-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ radioBearerRelease-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v6b0ext RadioBearerRelease-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v770ext RadioBearerRelease-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ radioBearerRelease-r7 RadioBearerRelease-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ radioBearerRelease-r7-add-ext BIT STRING OPTIONAL,
+ v780NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v780ext RadioBearerRelease-v780ext-IEs,
+ v7d0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v7d0ext RadioBearerRelease-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v7f0ext RadioBearerRelease-v7f0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v7g0ext
+ RadioBearerRelease-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ radioBearerRelease-r8 RadioBearerRelease-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ radioBearerRelease-r8-add-ext BIT STRING OPTIONAL,
+ v7d0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v7d0ext RadioBearerRelease-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v7f0ext RadioBearerRelease-v7f0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v890ext
+ RadioBearerRelease-v890ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v7g0ext
+ RadioBearerRelease-v7g0ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v8a0ext
+ RadioBearerRelease-v8a0ext-IEs,
+ nonCriticalExtensions
+ SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ radioBearerRelease-r9 RadioBearerRelease-r9-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-10
+ radioBearerRelease-r9-add-ext BIT STRING OPTIONAL,
+ v950NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v950ext RadioBearerRelease-v950ext-IEs,
+ v970NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v970ext RadioBearerRelease-v970ext-IEs,
+ v9c0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v9c0ext RadioBearerRelease-v9c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ radioBearerRelease-r10 RadioBearerRelease-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ radioBearerRelease-r10-add-ext BIT STRING OPTIONAL,
+ v9c0NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-v9c0ext RadioBearerRelease-v9c0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ radioBearerRelease-vb50ext
+ RadioBearerRelease-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ radioBearerRelease-r11
+ RadioBearerRelease-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ radioBearerRelease-r11-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ radioBearerRelease-r12
+ RadioBearerRelease-r12-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-13
+ radioBearerRelease-r11-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ radioBearerRelease-r13
+ RadioBearerRelease-r13-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-14
+ radioBearerRelease-r13-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+RadioBearerRelease-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationAffectedList RB-InformationAffectedList OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfo2List OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL
+}
+
+RadioBearerRelease-v3a0ext ::= SEQUENCE {
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour
+ -- is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL
+}
+
+RadioBearerRelease-v4b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-UL OPTIONAL,
+ -- The order of the RLs in IE cell-id-PerRL-List is the same as
+ -- in IE DL-InformationPerRL-List included in this message
+ cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL
+}
+
+RadioBearerRelease-v590ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL
+}
+
+RadioBearerRelease-r4-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationAffectedList RB-InformationAffectedList OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation-r4 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL
+}
+
+RadioBearerRelease-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationAffectedList RB-InformationAffectedList-r5 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r5 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL
+}
+
+RadioBearerRelease-v690ext-IEs ::= SEQUENCE {
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- Physical channel IEs
+ -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message
+ -- If included in the r3 or r4 version of the message, the UE should ignore the IE
+ harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL,
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL,
+ dhs-sync DHS-Sync OPTIONAL,
+ timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL
+}
+
+RadioBearerRelease-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationReconfigList RB-InformationReconfigList-r6 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r6 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r6 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL
+}
+
+RadioBearerRelease-v6b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL
+}
+
+RadioBearerRelease-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationReconfigList RB-InformationReconfigList-r7 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r7 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r7 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL
+}
+
+RadioBearerRelease-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL
+}
+
+RadioBearerRelease-v780ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+RadioBearerRelease-v7d0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL
+}
+
+RadioBearerRelease-v7f0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7f0ext OPTIONAL
+}
+
+RadioBearerRelease-v7g0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7g0ext OPTIONAL
+}
+
+RadioBearerRelease-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL
+}
+
+RadioBearerRelease-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL
+}
+
+RadioBearerRelease-v8a0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL
+}
+
+RadioBearerRelease-r9-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL
+}
+
+RadioBearerRelease-v950ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL
+}
+
+RadioBearerRelease-v970ext-IEs ::= SEQUENCE {
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerRelease-v9c0ext-IEs ::= SEQUENCE {
+ -- For 1.28Mcps TDD only
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL
+}
+
+RadioBearerRelease-r10-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerRelease-vb50ext-IEs ::= SEQUENCE {
+ ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL
+}
+
+RadioBearerRelease-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r11 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerRelease-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ accessGroupIdentity AccessGroupIdentity OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerRelease-r13-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ dynamicActivationTime DynamicActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ accessGroupIdentity AccessGroupIdentity OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ signallingConnectionRelIndication CN-DomainIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ retrievableConfigInfo RetrievableConfigInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r13 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r13 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ mbms-RB-ListReleasedToChangeTransferMode
+ RB-InformationReleaseList OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER RELEASE COMPLETE
+--
+-- ***************************************************
+
+RadioBearerReleaseComplete ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL,
+ -- TABULAR: UL-TimingAdvance is applicable for TDD mode only.
+ ul-TimingAdvance UL-TimingAdvance OPTIONAL,
+ -- Radio bearer IEs
+ count-C-ActivationTime ActivationTime OPTIONAL,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy RB-ActivationTimeInfoList OPTIONAL,
+ ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerReleaseComplete-r3-add-ext BIT STRING OPTIONAL,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerReleaseComplete-v770ext
+ RadioBearerReleaseComplete-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+RadioBearerReleaseComplete-v770ext-IEs ::= SEQUENCE {
+ -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only.
+ ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL,
+ deferredMeasurementControlReading ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER RELEASE FAILURE
+--
+-- ***************************************************
+
+RadioBearerReleaseFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ -- Radio bearer IEs
+ potentiallySuccesfulBearerList RB-IdentityList OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerReleaseFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER SETUP
+--
+-- ***************************************************
+
+RadioBearerSetup ::= CHOICE {
+ r3 SEQUENCE {
+ radioBearerSetup-r3 RadioBearerSetup-r3-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v3a0ext RadioBearerSetup-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerSetup-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v4b0ext RadioBearerSetup-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v590ext RadioBearerSetup-v590ext-IEs,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ radioBearerSetup-v5d0ext RadioBearerSetup-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v690ext RadioBearerSetup-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ radioBearerSetup-r4 RadioBearerSetup-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ radioBearerSetup-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v590ext RadioBearerSetup-v590ext-IEs,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ radioBearerSetup-v5d0ext RadioBearerSetup-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v690ext RadioBearerSetup-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ radioBearerSetup-r5 RadioBearerSetup-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ radioBearerSetup-r5-add-ext BIT STRING OPTIONAL,
+ v5d0NonCriticalExtenstions SEQUENCE {
+ radioBearerSetup-v5d0ext RadioBearerSetup-v5d0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v690ext RadioBearerSetup-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ radioBearerSetup-r6 RadioBearerSetup-r6-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ radioBearerSetup-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v6b0ext RadioBearerSetup-v6b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ radioBearerSetup-r7 RadioBearerSetup-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ radioBearerSetup-r7-add-ext BIT STRING
+ (CONTAINING RadioBearerSetup-r7-add-ext-IEs) OPTIONAL,
+ v780NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v780ext RadioBearerSetup-v780ext-IEs,
+ v820NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v820ext RadioBearerSetup-v820ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ radioBearerSetup-r8 RadioBearerSetup-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ radioBearerSetup-r8-add-ext BIT STRING OPTIONAL,
+ v7d0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v7d0ext RadioBearerSetup-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v7f0ext RadioBearerSetup-v7f0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v890ext
+ RadioBearerSetup-v890ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v7g0ext
+ RadioBearerSetup-v7g0ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v8a0ext
+ RadioBearerSetup-v8a0ext-IEs,
+ nonCriticalExtensions
+ SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ radioBearerSetup-r9 RadioBearerSetup-r9-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-10
+ radioBearerSetup-r9-add-ext BIT STRING OPTIONAL,
+ v950NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v950ext RadioBearerSetup-v950ext-IEs,
+ v9c0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v9c0ext RadioBearerSetup-v9c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ radioBearerSetup-r10 RadioBearerSetup-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ radioBearerSetup-r10-add-ext BIT STRING OPTIONAL,
+ v9c0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v9c0ext RadioBearerSetup-v9c0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-vb50ext
+ RadioBearerSetup-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ radioBearerSetup-r11 RadioBearerSetup-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ radioBearerSetup-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ radioBearerSetup-r12 RadioBearerSetup-r12-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-13
+ radioBearerSetup-r13-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ radioBearerSetup-r13 RadioBearerSetup-r13-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-14
+ radioBearerSetup-r13-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+RadioBearerSetup-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL
+}
+
+RadioBearerSetup-v3a0ext ::= SEQUENCE {
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour
+ -- is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL
+}
+
+RadioBearerSetup-v4b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-UL OPTIONAL,
+ -- The order of the RLs in IE cell-id-PerRL-List is the same as
+ -- in IE DL-InformationPerRL-List included in this message
+ cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL
+}
+
+RadioBearerSetup-v590ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL
+}
+
+RadioBearerSetup-v5d0ext-IEs ::= SEQUENCE {
+ --Radio Bearer IEs
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL
+}
+
+RadioBearerSetup-r4-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r4 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation-r4 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL
+}
+
+RadioBearerSetup-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r5 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r5 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r5 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r5 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL
+}
+
+RadioBearerSetup-v690ext-IEs ::= SEQUENCE {
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- Physical channel IEs
+ -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message
+ -- If included in the r3 or r4 version of the message, the UE should ignore the IE
+ harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL,
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL,
+ dhs-sync DHS-Sync OPTIONAL,
+ timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL,
+ -- Radio bearer IEs
+ rab-InformationSetupList RAB-InformationSetupList-r6-ext OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+RadioBearerSetup-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r6 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r6 OPTIONAL,
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r6 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r6 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL
+ },
+ -- dummy is not used in this version of the specification
+ -- if it is sent, the UE behaviour is unspecified.
+ dummy SEQUENCE {
+ rab-Info RAB-Info-r6,
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6,
+ rb-InformationChangedList RB-InformationChangedList-r6 OPTIONAL,
+ powerOffsetInfoShort PowerOffsetInfoShort
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r6 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+RadioBearerSetup-v6b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL,
+ -- MBMS IEs
+ -- The order of the RABs in IE rab-InformationSetupListExt is the same as
+ -- in IE rab-InformationSetupList that is included in this message
+ rab-InformationSetupListExt RAB-InformationSetupList-v6b0ext OPTIONAL
+}
+
+RadioBearerSetup-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r7 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r7 OPTIONAL,
+ rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r7 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r7 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL
+ },
+ -- dummy is not used in this version of the specification
+ -- if it is sent, the UE behaviour is unspecified.
+ dummy NULL
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r7 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+RadioBearerSetup-r7-add-ext-IEs ::= SEQUENCE {
+ radioBearerSetup-v7d0ext RadioBearerSetup-v7d0ext-IEs OPTIONAL,
+ v7f0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v7f0ext RadioBearerSetup-v7f0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ radioBearerSetup-v7g0ext RadioBearerSetup-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+RadioBearerSetup-v780ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+RadioBearerSetup-v7d0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL
+}
+
+RadioBearerSetup-v7f0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7f0ext OPTIONAL
+}
+
+RadioBearerSetup-v7g0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7g0ext OPTIONAL
+}
+
+RadioBearerSetup-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ sr-vcc-Info SR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r8 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL,
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+RadioBearerSetup-v820ext-IEs ::= SEQUENCE {
+ -- Radio bearer IEs
+ rab-InformationSetupList RAB-InformationSetupList-v820ext OPTIONAL
+}
+
+RadioBearerSetup-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL
+}
+
+RadioBearerSetup-v8a0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL
+}
+
+RadioBearerSetup-r9-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ sr-vcc-Info SR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r8 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL,
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerSetup-v950ext-IEs::= SEQUENCE {
+ -- Physical channel IEs
+ secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL
+}
+
+RadioBearerSetup-v9c0ext-IEs::= SEQUENCE {
+ -- For 1.28Mcps TDD only
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL
+}
+
+RadioBearerSetup-r10-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ sr-vcc-Info SR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r8 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL,
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerSetup-vb50ext-IEs ::= SEQUENCE {
+ ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL
+}
+
+RadioBearerSetup-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ sr-vcc-Info SR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r11 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r11 OPTIONAL,
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r11 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerSetup-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ sr-vcc-Info SR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ accessGroupIdentity AccessGroupIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r11 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r11 OPTIONAL,
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+RadioBearerSetup-r13-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ sr-vcc-Info SR-VCC-Info OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ dynamicActivationTime DynamicActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ accessGroupIdentity AccessGroupIdentity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList-r11 OPTIONAL,
+ rab-InformationSetupList RAB-InformationSetupList-r11 OPTIONAL,
+ rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL,
+ rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL,
+ rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL,
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r13 OPTIONAL,
+ -- Retrievable configuration
+ retrievableConfigInfo RetrievableConfigInfo OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r13 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER SETUP COMPLETE
+--
+-- ***************************************************
+
+RadioBearerSetupComplete ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL,
+ -- TABULAR: UL-TimingAdvance is applicable for TDD mode only.
+ ul-TimingAdvance UL-TimingAdvance OPTIONAL,
+ start-Value START-Value OPTIONAL,
+ -- Radio bearer IEs
+ count-C-ActivationTime ActivationTime OPTIONAL,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy RB-ActivationTimeInfoList OPTIONAL,
+ ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerSetupComplete-r3-add-ext BIT STRING OPTIONAL,
+ v770NonCriticalExtensions SEQUENCE {
+ radioBearerSetupComplete-v770ext
+ RadioBearerSetupComplete-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+RadioBearerSetupComplete-v770ext-IEs ::= SEQUENCE {
+ -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only.
+ ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL,
+ deferredMeasurementControlReading ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RADIO BEARER SETUP FAILURE
+--
+-- ***************************************************
+
+RadioBearerSetupFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ -- Radio bearer IEs
+ potentiallySuccesfulBearerList RB-IdentityList OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ radioBearerSetupFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RRC CONNECTION REJECT
+--
+-- ***************************************************
+
+RRCConnectionReject ::= CHOICE {
+ r3 SEQUENCE {
+ rrcConnectionReject-r3 RRCConnectionReject-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ rrcConnectionReject-r3-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionReject-v690ext RRCConnectionReject-v690ext-IEs,
+ v6f0NonCriticalExtensions SEQUENCE {
+ rrcConnectionReject-v6f0ext RRCConnectionReject-v6f0ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ rrcConnectionReject-v860ext RRCConnectionReject-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ rrcConnectionReject-va40ext RRCConnectionReject-va40ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ rrcConnectionReject-vb50ext RRCConnectionReject-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ initialUE-Identity InitialUE-Identity,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+RRCConnectionReject-r3-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ -- User equipment IEs
+ initialUE-Identity InitialUE-Identity,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ rejectionCause RejectionCause,
+ waitTime WaitTime,
+ redirectionInfo RedirectionInfo OPTIONAL
+}
+
+RRCConnectionReject-v690ext-IEs ::= SEQUENCE {
+ redirectionInfo-v690ext GSM-TargetCellInfoList OPTIONAL
+}
+
+RRCConnectionReject-v6f0ext-IEs ::= SEQUENCE {
+ countingCompletion ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionReject-v860ext-IEs ::= SEQUENCE {
+ redirectionInfo RedirectionInfo-v860ext OPTIONAL
+}
+
+RRCConnectionReject-va40ext-IEs ::= SEQUENCE {
+ extendedWaitTime ExtendedWaitTime OPTIONAL
+}
+
+RRCConnectionReject-vb50ext-IEs ::= SEQUENCE {
+ eutra-TargetFreqInfoList EUTRA-TargetFreqInfoList-vb50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RRC CONNECTION RELEASE
+--
+-- ***************************************************
+
+RRCConnectionRelease ::= CHOICE {
+ r3 SEQUENCE {
+ rrcConnectionRelease-r3 RRCConnectionRelease-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ rrcConnectionRelease-r3-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v690ext RRCConnectionRelease-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v770ext RRCConnectionRelease-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v860ext RRCConnectionRelease-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-va40ext RRCConnectionRelease-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ rrcConnectionRelease-r4 RRCConnectionRelease-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-6
+ rrcConnectionRelease-r4-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v690ext RRCConnectionRelease-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v770ext RRCConnectionRelease-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v860ext RRCConnectionRelease-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-va40ext
+ RRCConnectionRelease-va40ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-vb50ext
+ RRCConnectionRelease-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+RRCConnectionRelease-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- n-308 is conditional on the UE state
+ n-308 N-308 OPTIONAL,
+ releaseCause ReleaseCause,
+ rplmn-information Rplmn-Information OPTIONAL
+}
+
+RRCConnectionRelease-r4-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ -- n-308 is conditional on the UE state.
+ n-308 N-308 OPTIONAL,
+ releaseCause ReleaseCause,
+ rplmn-information Rplmn-Information-r4 OPTIONAL
+}
+
+RRCConnectionRelease-v690ext-IEs ::= SEQUENCE {
+ redirectionInfo-v690ext RedirectionInfo-r6 OPTIONAL
+}
+
+RRCConnectionRelease-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL
+}
+
+RRCConnectionRelease-v860ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ redirectionInfo RedirectionInfo-v860ext OPTIONAL
+}
+
+RRCConnectionRelease-va40ext-IEs ::= SEQUENCE {
+ extendedWaitTime ExtendedWaitTime OPTIONAL
+}
+
+RRCConnectionRelease-vb50ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ eutra-TargetFreqInfoList EUTRA-TargetFreqInfoList-vb50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RRC CONNECTION RELEASE for CCCH
+--
+-- ***************************************************
+
+RRCConnectionRelease-CCCH ::= CHOICE {
+ r3 SEQUENCE {
+ rrcConnectionRelease-CCCH-r3 RRCConnectionRelease-CCCH-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ rrcConnectionRelease-CCCH-r3-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v690ext RRCConnectionRelease-CCCH-v690ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v860ext RRCConnectionRelease-CCCH-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-va40ext RRCConnectionRelease-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ u-RNTI U-RNTI,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ rrcConnectionRelease-CCCH-r4 RRCConnectionRelease-CCCH-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ rrcConnectionRelease-CCCH-r4-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v690ext RRCConnectionRelease-CCCH-v690ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v860ext RRCConnectionRelease-CCCH-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-va40ext
+ RRCConnectionRelease-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions SEQUENCE {
+ -- TABULAR: CHOICE IdentityType (U-RNTI, GroupIdentity) is replaced with the
+ -- optional element groupIdentity, since the U-RNTI is mandatory in ASN.1.
+ -- In case CHOICE IdentityType is equal to GroupIdentity the value of the U-RNTI
+ -- shall be ignored by a UE complying with this version of the message.
+ groupIdentity SEQUENCE ( SIZE (1 .. maxURNTI-Group) ) OF
+ GroupReleaseInformation OPTIONAL,
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ rrcConnectionRelease-CCCH-r5 RRCConnectionRelease-CCCH-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ rrcConnectionRelease-CCCH-r5-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v690ext RRCConnectionRelease-CCCH-v690ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-v860ext
+ RRCConnectionRelease-CCCH-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ rrcConnectionRelease-va40ext
+ RRCConnectionRelease-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+}
+
+RRCConnectionRelease-CCCH-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ -- The rest of the message is identical to the one sent on DCCH.
+ rrcConnectionRelease RRCConnectionRelease-r3-IEs
+}
+
+RRCConnectionRelease-CCCH-r4-IEs ::= SEQUENCE {
+ -- The rest of the message is identical to the one sent on DCCH.
+ rrcConnectionRelease RRCConnectionRelease-r4-IEs
+}
+
+-- The R5 and R4 sequence of IEs are identical in this message
+RRCConnectionRelease-CCCH-r5-IEs ::= RRCConnectionRelease-CCCH-r4-IEs
+
+-- The R6 non-critical extension is identical to the one sent on DCCH.
+RRCConnectionRelease-CCCH-v690ext-IEs ::= RRCConnectionRelease-v690ext-IEs
+
+-- The R8 non-critical extension is identical to the one sent on DCCH.
+RRCConnectionRelease-CCCH-v860ext-IEs ::= RRCConnectionRelease-v860ext-IEs
+
+-- The R10 non-critical extension is identical to the one sent on DCCH.
+RRCConnectionRelease-CCCH-va40ext-IEs ::= RRCConnectionRelease-va40ext-IEs
+
+-- ***************************************************
+--
+-- RRC CONNECTION RELEASE COMPLETE
+--
+-- ***************************************************
+
+RRCConnectionReleaseComplete ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ errorIndication FailureCauseWithProtErr OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ rrcConnectionReleaseComplete-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RRC CONNECTION REQUEST
+--
+-- ***************************************************
+
+RRCConnectionRequest ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ -- User equipment IEs
+ initialUE-Identity InitialUE-Identity,
+ establishmentCause EstablishmentCause,
+ -- protocolErrorIndicator is MD, but for compactness reasons no default value
+ -- has been assigned to it.
+ protocolErrorIndicator ProtocolErrorIndicator,
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL,
+ -- Non critical Extensions
+ v3d0NonCriticalExtensions SEQUENCE {
+ rRCConnectionRequest-v3d0ext RRCConnectionRequest-v3d0ext-IEs,
+ -- Reserved for future non critical extension
+ v4b0NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v4b0ext RRCConnectionRequest-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v590ext RRCConnectionRequest-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v690ext RRCConnectionRequest-v690ext-IEs,
+ -- Reserved for future non critical extension
+ v6b0NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v6b0ext RRCConnectionRequest-v6b0ext-IEs,
+ v6e0NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v6e0ext RRCConnectionRequest-v6e0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v770ext
+ RRCConnectionRequest-v770ext-IEs,
+ v7b0NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v7b0ext
+ RRCConnectionRequest-v7b0ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v860ext
+ RRCConnectionRequest-v860ext-IEs,
+ v7e0NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v7e0ext
+ RRCConnectionRequest-v7e0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v7g0ext
+ RRCConnectionRequest-v7g0ext-IEs,
+ v920NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v920ext
+ RRCConnectionRequest-v920ext-IEs,
+ v940NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v940ext
+ RRCConnectionRequest-v940ext-IEs,
+ va40NonCriticalExtensions
+ RRCConnectionRequest-NonCriticalExts-va40-IEs
+ OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+RRCConnectionRequest-v3d0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ uESpecificBehaviourInformation1idle UESpecificBehaviourInformation1idle OPTIONAL
+}
+
+RRCConnectionRequest-v4b0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ accessStratumReleaseIndicator AccessStratumReleaseIndicator
+}
+
+RRCConnectionRequest-v590ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ predefinedConfigStatusInfo BOOLEAN
+}
+
+RRCConnectionRequest-v690ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueCapabilityIndication ENUMERATED { hsdch, hsdch-edch } OPTIONAL,
+ -- Measurement IEs
+ measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL,
+ domainIndicator CHOICE {
+ cs-domain SEQUENCE {
+ csCallType ENUMERATED {speech, video, other, spare }
+ },
+ ps-domain NULL
+ }
+}
+
+RRCConnectionRequest-v6b0ext-IEs ::= SEQUENCE {
+ -- MBMS IEs
+ mbmsSelectedServices MBMS-SelectedServicesShort OPTIONAL
+}
+
+RRCConnectionRequest-v6e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForFDPCH ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ hspdschReception-CellFach ENUMERATED { true } OPTIONAL,
+ mac-ehsSupport ENUMERATED { true } OPTIONAL,
+ discontinuousDpcchTransmission ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-v7b0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForE-FDPCH ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-v7e0ext-IEs ::= SEQUENCE {
+ supportForCSVoiceoverHSPA ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-v7g0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH-v7g0ext MeasuredResultsOnRACH-v7g0ext OPTIONAL
+}
+
+RRCConnectionRequest-v860ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportOfCommonEDCH ENUMERATED { true } OPTIONAL,
+ multiCellSupport ENUMERATED { true } OPTIONAL,
+ pre-redirectionInfo Pre-RedirectionInfo OPTIONAL,
+ supportOfMACiis ENUMERATED { true } OPTIONAL,
+ supportOfSPSOperation ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-v920ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportOfDualCellMIMO ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-v940ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ systemInformationContainerStoredIndicator ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-v9b0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ cSFBIndication ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-NonCriticalExts-va40-IEs ::= SEQUENCE {
+ rrcConnectionRequest-va40ext RRCConnectionRequest-va40ext-IEs,
+ v9b0NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-v9b0ext RRCConnectionRequest-v9b0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-vb50ext RRCConnectionRequest-vb50ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ rrcConnectionRequest-vc50ext RRCConnectionRequest-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+RRCConnectionRequest-va40ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ -- For 1.28 Mcps TDD, IE "supportOfMoreThanTwoCellsOrMIMO4x4" represent MU-MIMO capability,
+ -- higherRate indicates uplink and downlink MU-MIMO, lowerRate indicates uplink MU-MIMO
+ supportOfMoreThanTwoCellsOrMIMO4x4 ENUMERATED { higherRate, lowerRate } OPTIONAL,
+ supportOf1stFrequencyBand ENUMERATED { true } OPTIONAL,
+ supportOf2ndFrequencyBand ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionRequest-vb50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL
+}
+
+RRCConnectionRequest-vc50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL
+}
+-- ***************************************************
+--
+-- RRC CONNECTION SETUP
+--
+-- ***************************************************
+
+RRCConnectionSetup ::= CHOICE {
+ r3 SEQUENCE {
+ rrcConnectionSetup-r3 RRCConnectionSetup-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ rrcConnectionSetup-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v4b0ext RRCConnectionSetup-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v590ext RRCConnectionSetup-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v690ext RRCConnectionSetup-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ initialUE-Identity InitialUE-Identity,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ rrcConnectionSetup-r4 RRCConnectionSetup-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ rrcConnectionSetup-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v590ext RRCConnectionSetup-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v690ext RRCConnectionSetup-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ rrcConnectionSetup-r5 RRCConnectionSetup-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ rrcConnectionSetup-r5-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v690ext RRCConnectionSetup-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ rrcConnectionSetup-r6 RRCConnectionSetup-r6-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ rrcConnectionSetup-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v6b0ext RRCConnectionSetup-v6b0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ rrcConnectionSetup-r7 RRCConnectionSetup-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ rrcConnectionSetup-r7-add-ext BIT STRING OPTIONAL,
+ v780NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v780ext RRCConnectionSetup-v780ext-IEs,
+ v7d0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v7d0ext RRCConnectionSetup-v7d0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ rrcConnectionSetup-r8-add-ext BIT STRING OPTIONAL,
+ v7d0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v7d0ext RRCConnectionSetup-v7d0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v890ext
+ RRCConnectionSetup-v890ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v8a0ext
+ RRCConnectionSetup-v8a0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ rrcConnectionSetup-r9 RRCConnectionSetup-r9-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-10
+ rrcConnectionSetup-r9-add-ext
+ BIT STRING OPTIONAL,
+ v950NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-v950ext RRCConnectionSetup-v950ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ rrcConnectionSetup-r10 RRCConnectionSetup-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ rrcConnectionSetup-r10-add-ext
+ BIT STRING OPTIONAL,
+ vaj0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-vaj0ext RRCConnectionSetup-vaj0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ rrcConnectionSetup-r11
+ RRCConnectionSetup-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ rrcConnectionSetup-r11-add-ext
+ BIT STRING OPTIONAL,
+ vaj0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetup-vaj0ext RRCConnectionSetup-vaj0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ rrcConnectionSetup-r12
+ RRCConnectionSetup-r12-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-13
+ rrcConnectionSetup-r12-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+RRCConnectionSetup-r3-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ -- User equipment IEs
+ initialUE-Identity InitialUE-Identity,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL,
+ -- NOTE: ul-AddReconfTransChInfoList should be optional in later versions of
+ -- this message
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList,
+ dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL,
+ -- NOTE: dl-AddReconfTransChInfoList should be optional in later versions
+ -- of this message
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement OPTIONAL,
+ dl-CommonInformation DL-CommonInformation OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL
+}
+
+RRCConnectionSetup-v4b0ext-IEs ::= SEQUENCE {
+ capabilityUpdateRequirement-r4-ext CapabilityUpdateRequirement-r4-ext OPTIONAL,
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-UL OPTIONAL,
+ -- The order of the RLs in IE cell-id-PerRL-List is the same as
+ -- in IE DL-InformationPerRL-List included in this message
+ cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL
+}
+
+RRCConnectionSetup-v590ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ systemSpecificCapUpdateReq SystemSpecificCapUpdateReq-v590ext OPTIONAL,
+ -- Physical channel IEs
+ dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL
+}
+
+RRCConnectionSetup-r4-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r4 OPTIONAL,
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r4 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL
+}
+
+RRCConnectionSetup-r5-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r5 OPTIONAL,
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r5
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r4 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r5bis OPTIONAL
+}
+
+RRCConnectionSetup-v690ext-IEs ::= SEQUENCE {
+ -- Physical Channel IEs
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionSetup-r6-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r5 OPTIONAL,
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2-r6,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r6 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL
+}
+
+RRCConnectionSetup-v6b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL
+}
+
+RRCConnectionSetup-r7-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r7 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ -- Specification mode information
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2-r7,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r7 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL
+}
+
+RRCConnectionSetup-v780ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+RRCConnectionSetup-v7d0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL
+}
+
+RRCConnectionSetup-r8-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r8 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2-r8,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL
+}
+
+RRCConnectionSetup-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL
+}
+
+RRCConnectionSetup-v8a0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL
+}
+
+RRCConnectionSetup-r9-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r8 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received UE behaviour is unspecified.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2-r8,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL
+}
+
+RRCConnectionSetup-v950ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL
+}
+
+RRCConnectionSetup-r10-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r8 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received UE behaviour is unspecified.
+ dummy DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2-r8,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL
+}
+
+RRCConnectionSetup-vaj0ext-IEs ::= SEQUENCE {
+ capabilityUpdateRequirement CapabilityUpdateRequirement-vaj0ext OPTIONAL
+}
+
+RRCConnectionSetup-r11-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r8 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ -- Specification mode information
+ defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2-r8,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL
+}
+
+RRCConnectionSetup-r12-IEs ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI,
+ new-c-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7,
+ -- TABULAR: If capabilityUpdateRequirement is not present, the default value
+ -- defined in 10.3.3.2 shall be used.
+ capabilityUpdateRequirement CapabilityUpdateRequirement-r12 OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN,
+ -- Specification mode information
+ defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL,
+ specificationMode CHOICE {
+ complete SEQUENCE {
+ -- Radio bearer IEs
+ srb-InformationSetupList SRB-InformationSetupList2-r8,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL
+ },
+ preconfiguration SEQUENCE {
+ -- All IEs that include an FDD/TDD choice are split in two IEs for this message,
+ -- one for the FDD only elements and one for the TDD only elements, so that one
+ -- FDD/TDD choice in this level is sufficient.
+ preConfigMode CHOICE {
+ predefinedConfigIdentity PredefinedConfigIdentity,
+ defaultConfig SEQUENCE {
+ defaultConfigMode DefaultConfigMode,
+ defaultConfigIdentity DefaultConfigIdentity-r6
+ }
+ }
+ }
+ },
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RRC CONNECTION SETUP COMPLETE
+--
+-- ***************************************************
+
+RRCConnectionSetupComplete ::= SEQUENCE {
+ -- TABULAR: Integrity protection shall not be performed on this message.
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ startList STARTList,
+ ue-RadioAccessCapability UE-RadioAccessCapability OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList OPTIONAL,
+ -- Non critical extensions
+ v370NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v370ext RRCConnectionSetupComplete-v370ext,
+ v380NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v380ext RRCConnectionSetupComplete-v380ext-IEs,
+ -- Reserved for future non critical extension
+ v3a0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v3a0ext RRCConnectionSetupComplete-v3a0ext-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ rrcConnectionSetupComplete-r3-add-ext BIT STRING
+ (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL,
+ v3g0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v3g0ext RRCConnectionSetupComplete-v3g0ext-IEs,
+ v4b0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v4b0ext
+ RRCConnectionSetupComplete-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v590ext
+ RRCConnectionSetupComplete-v590ext-IEs,
+ v5c0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v5c0ext
+ RRCConnectionSetupComplete-v5c0ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v690ext
+ RRCConnectionSetupComplete-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ rrcConectionSetupComplete-v770ext
+ RRCConnectionSetupComplete-v770ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ rrcConectionSetupComplete-va40ext
+ RRCConnectionSetupComplete-va40ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-vb50ext
+ RRCConnectionSetupComplete-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+RRCConnectionSetupComplete-v370ext ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v370ext UE-RadioAccessCapability-v370ext OPTIONAL
+}
+
+RRCConnectionSetupComplete-v380ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v380ext UE-RadioAccessCapability-v380ext OPTIONAL,
+ dl-PhysChCapabilityFDD-v380ext DL-PhysChCapabilityFDD-v380ext
+}
+
+RRCConnectionSetupComplete-v3a0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v3a0ext UE-RadioAccessCapability-v3a0ext OPTIONAL
+}
+
+RRCConnectionSetupComplete-v3g0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v3g0ext UE-RadioAccessCapability-v3g0ext OPTIONAL
+}
+
+RRCConnectionSetupComplete-r3-add-ext-IEs ::= SEQUENCE {
+ rrcConnectionSetupComplete-v650ext RRCConnectionSetupComplete-v650ext-IEs OPTIONAL,
+ v680NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v680ext RRCConnectionSetupComplete-v680ext-IEs,
+ v7e0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v7e0ext RRCConnectionSetupComplete-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupComplete-v7f0ext
+ RRCConnectionSetupComplete-v7f0ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ rrcConnectionSetupCompleteBand-va40ext
+ RRCConnectionSetupCompleteBand-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+RRCConnectionSetupComplete-v4b0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v4b0ext UE-RadioAccessCapability-v4b0ext OPTIONAL
+}
+
+RRCConnectionSetupComplete-v590ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v590ext UE-RadioAccessCapability-v590ext OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability-v590ext InterRAT-UE-RadioAccessCapability-v590ext OPTIONAL
+}
+
+RRCConnectionSetupComplete-v5c0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v5c0ext UE-RadioAccessCapability-v5c0ext OPTIONAL
+}
+
+RRCConnectionSetupComplete-v650ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v650ext UE-RadioAccessCapability-v650ext
+}
+
+RRCConnectionSetupComplete-v680ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v680ext UE-RadioAccessCapability-v680ext
+}
+
+RRCConnectionSetupComplete-v690ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL
+}
+
+RRCConnectionSetupComplete-v770ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ deferredMeasurementControlReading ENUMERATED { true } OPTIONAL
+}
+
+RRCConnectionSetupComplete-v7e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability UE-RadioAccessCapability-v7e0ext
+}
+
+RRCConnectionSetupComplete-v7f0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability UE-RadioAccessCapability-v7f0ext OPTIONAL
+}
+
+RRCConnectionSetupComplete-va40ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ loggedMeasAvailable ENUMERATED { true } OPTIONAL,
+ loggedANRResultsAvailable ENUMERATED { true } OPTIONAL}
+
+RRCConnectionSetupCompleteBand-va40ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapabBand UE-RadioAccessCapabBand-va40ext OPTIONAL
+}
+
+RRCConnectionSetupComplete-vb50ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ connEstFailInfoAvailable ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- RRC FAILURE INFO
+--
+-- ***************************************************
+
+RRC-FailureInfo ::= CHOICE {
+ r3 SEQUENCE {
+ rRC-FailureInfo-r3 RRC-FailureInfo-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ rrc-FailureInfo-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+}
+
+RRC-FailureInfo-r3-IEs ::= SEQUENCE {
+ -- Non-RRC IEs
+ failureCauseWithProtErr FailureCauseWithProtErr
+}
+
+-- ***************************************************
+--
+-- RRC STATUS
+--
+-- ***************************************************
+
+RRCStatus ::= SEQUENCE {
+ -- Other IEs
+ -- TABULAR: Identification of received message is nested in
+ -- ProtocolErrorMoreInformation
+ protocolErrorInformation ProtocolErrorMoreInformation,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ rrcStatus-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- SECURITY MODE COMMAND
+--
+-- ***************************************************
+
+SecurityModeCommand ::= CHOICE {
+ r3 SEQUENCE {
+ securityModeCommand-r3 SecurityModeCommand-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ securityModeCommand-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r7 SEQUENCE{
+ securityModeCommand-r7 SecurityModeCommand-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ securityModeCommand-r7-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+SecurityModeCommand-r3-IEs ::= SEQUENCE {
+-- TABULAR: Integrity protection shall always be performed on this message.
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ securityCapability SecurityCapability,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ -- Core network IEs
+ cn-DomainIdentity CN-DomainIdentity,
+ -- Other IEs
+ ue-SystemSpecificSecurityCap InterRAT-UE-SecurityCapList OPTIONAL
+}
+
+SecurityModeCommand-r7-IEs ::= SEQUENCE {
+-- TABULAR: Integrity protection shall always be performed on this message.
+ -- User equipment IEs
+ securityCapability SecurityCapability,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ -- Core network IEs
+ cn-DomainIdentity CN-DomainIdentity,
+ -- Other IEs
+ ue-SystemSpecificSecurityCap InterRAT-UE-SecurityCapList OPTIONAL
+}
+
+-- ***************************************************
+--
+-- SECURITY MODE COMPLETE
+--
+-- ***************************************************
+
+SecurityModeComplete ::= SEQUENCE {
+-- TABULAR: Integrity protection shall always be performed on this message.
+
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL,
+ -- Radio bearer IEs
+ rb-UL-CiphActivationTimeInfo RB-ActivationTimeInfoList OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ securityModeComplete-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- SECURITY MODE FAILURE
+--
+-- ***************************************************
+
+SecurityModeFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ securityModeFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- SIGNALLING CONNECTION RELEASE
+--
+-- ***************************************************
+
+SignallingConnectionRelease ::= CHOICE {
+ r3 SEQUENCE {
+ signallingConnectionRelease-r3 SignallingConnectionRelease-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ signallingConnectionRelease-r3-add-ext BIT STRING OPTIONAL,
+ va40NonCriticalExtensions SEQUENCE {
+ signallingConnectionRelease-va40ext SignallingConnectionRelease-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+SignallingConnectionRelease-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Core network IEs
+ cn-DomainIdentity CN-DomainIdentity
+}
+
+SignallingConnectionRelease-va40ext-IEs ::= SEQUENCE {
+ extendedWaitTime ExtendedWaitTime OPTIONAL
+}
+
+-- ***************************************************
+--
+-- SIGNALLING CONNECTION RELEASE INDICATION
+--
+-- ***************************************************
+
+SignallingConnectionReleaseIndication ::= SEQUENCE {
+ -- Core network IEs
+ cn-DomainIdentity CN-DomainIdentity,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ signallingConnectionReleaseIndication-r3-add-ext BIT STRING OPTIONAL,
+ -- WS modification: fix misspelling
+ v860nonCriticalExtensions SEQUENCE {
+ -- End WS modification
+ signallingConnectionReleaseIndication-v860ext
+ SignallingConnectionReleaseIndication-v860ext,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SignallingConnectionReleaseIndication-v860ext ::= SEQUENCE {
+ signallingConnectionReleaseIndicationCause
+ ENUMERATED { uERequestedPSDataSessionEnd, anyOtherCause }
+}
+
+-- ***************************************************
+--
+-- SYSTEM INFORMATION for BCH
+--
+-- ***************************************************
+
+SystemInformation-BCH ::= SEQUENCE {
+ -- Other information elements
+ sfn-Prime SFN-Prime,
+ payload CHOICE {
+ noSegment NULL,
+ firstSegment FirstSegment,
+ subsequentSegment SubsequentSegment,
+ lastSegmentShort LastSegmentShort,
+ lastAndFirst SEQUENCE {
+ lastSegmentShort LastSegmentShort,
+ firstSegment FirstSegmentShort
+ },
+ lastAndComplete SEQUENCE {
+ lastSegmentShort LastSegmentShort,
+ completeSIB-List CompleteSIB-List
+ },
+ lastAndCompleteAndFirst SEQUENCE {
+ lastSegmentShort LastSegmentShort,
+ completeSIB-List CompleteSIB-List,
+ firstSegment FirstSegmentShort
+ },
+ completeSIB-List CompleteSIB-List,
+ completeAndFirst SEQUENCE {
+ completeSIB-List CompleteSIB-List,
+ firstSegment FirstSegmentShort
+ },
+ completeSIB CompleteSIB,
+ lastSegment LastSegment,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+ }
+}
+
+-- ***************************************************
+--
+-- SYSTEM INFORMATION2 for BCH
+--
+-- ***************************************************
+
+SystemInformation2-BCH ::= SEQUENCE {
+ segmentCombination CHOICE {
+ combination2 FirstSegment2,
+ combination3 SubsequentSegment2,
+ combination4 LastSegmentShort2,
+ combination5 SEQUENCE {
+ lastSegmentShort LastSegmentShort2,
+ firstSegmentShort FirstSegmentShort2
+ },
+ combination6 SEQUENCE {
+ lastSegmentShort LastSegmentShort2,
+ completeSIB-List CompleteSIB2-List
+ },
+ combination7 SEQUENCE {
+ lastSegmentShort LastSegmentShort2,
+ completeSIB-List CompleteSIB2-List,
+ firstSegment FirstSegmentShort2
+ },
+ combination8 CompleteSIB2-List,
+ combination9 SEQUENCE {
+ completeSIB-List CompleteSIB2-List,
+ firstSegment FirstSegmentShort2
+ },
+ combination10 CompleteSIB2,
+ combination11 LastSegment2,
+ spare6 NULL,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+ }
+}
+
+-- ***************************************************
+--
+-- SYSTEM INFORMATION for FACH
+--
+-- ***************************************************
+
+-- this IE is not used in this version of the specification.
+SystemInformation-FACH ::= SEQUENCE {
+ -- Other information elements
+ payload CHOICE {
+ noSegment NULL,
+ firstSegment FirstSegment,
+ subsequentSegment SubsequentSegment,
+ lastSegmentShort LastSegmentShort,
+ lastAndFirst SEQUENCE {
+ lastSegmentShort LastSegmentShort,
+ firstSegment FirstSegmentShort
+ },
+ lastAndComplete SEQUENCE {
+ lastSegmentShort LastSegmentShort,
+ completeSIB-List CompleteSIB-List
+ },
+ lastAndCompleteAndFirst SEQUENCE {
+ lastSegmentShort LastSegmentShort,
+ completeSIB-List CompleteSIB-List,
+ firstSegment FirstSegmentShort
+ },
+ completeSIB-List CompleteSIB-List,
+ completeAndFirst SEQUENCE {
+ completeSIB-List CompleteSIB-List,
+ firstSegment FirstSegmentShort
+ },
+ completeSIB CompleteSIB,
+ lastSegment LastSegment,
+ spare5 NULL,
+ spare4 NULL,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+ }
+}
+
+-- ***************************************************
+--
+-- First segment
+--
+-- ***************************************************
+
+FirstSegment ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type,
+ seg-Count SegCount,
+ sib-Data-fixed SIB-Data-fixed
+}
+
+FirstSegment2 ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type2,
+ seg-Count SegCount,
+ sib-Data-fixed SIB-Data2-fixed
+}
+
+-- ***************************************************
+--
+-- First segment (short)
+--
+-- ***************************************************
+
+FirstSegmentShort ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type,
+ seg-Count SegCount,
+ sib-Data-variable SIB-Data-variable
+}
+
+FirstSegmentShort2 ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type2,
+ seg-Count SegCount,
+ sib-Data-variable SIB-Data2-variable
+}
+
+-- ***************************************************
+--
+-- Subsequent segment
+--
+-- ***************************************************
+
+SubsequentSegment ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type,
+ segmentIndex SegmentIndex,
+ sib-Data-fixed SIB-Data-fixed
+}
+
+SubsequentSegment2 ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type2,
+ segmentIndex SegmentIndex,
+ sib-Data-fixed SIB-Data2-fixed
+}
+
+-- ***************************************************
+--
+-- Last segment
+--
+-- ***************************************************
+
+LastSegment ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type,
+ segmentIndex SegmentIndex,
+ -- For sib-Data-fixed, in case the SIB data is less than 222 bits, padding
+ -- shall be used. The same padding bits shall be used as defined in clause 12.1
+ sib-Data-fixed SIB-Data-fixed
+}
+
+LastSegment2 ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type2,
+ segmentIndex SegmentIndex,
+ -- For sib-Data-fixed, in case the SIB data is less than 232 bits, padding
+ -- shall be used. The same padding bits shall be used as defined in clause 12.1
+ sib-Data-fixed SIB-Data2-fixed
+}
+
+LastSegmentShort ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type,
+ segmentIndex SegmentIndex,
+ sib-Data-variable SIB-Data-variable
+}
+
+LastSegmentShort2 ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type2,
+ segmentIndex SegmentIndex,
+ sib-Data-variable SIB-Data2-variable
+}
+
+-- ***************************************************
+--
+-- Complete SIB
+--
+-- ***************************************************
+
+CompleteSIB-List ::= SEQUENCE (SIZE (1..maxSIBperMsg)) OF
+ CompleteSIBshort
+
+CompleteSIB2-List ::= SEQUENCE (SIZE (1..maxSIBperMsg)) OF
+ CompleteSIBshort2
+
+CompleteSIB ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type,
+ -- For sib-Data-fixed, in case the SIB data is less than 226 bits, padding
+ -- shall be used. The same padding bits shall be used as defined in clause 12.1
+ sib-Data-fixed BIT STRING (SIZE (226))
+}
+
+CompleteSIB2 ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type2,
+ -- For sib-Data-fixed, in case the SIB data is less than 236 bits, padding
+ -- shall be used. The same padding bits shall be used as defined in clause 12.1
+ sib-Data-fixed BIT STRING (SIZE (236))
+}
+
+CompleteSIBshort ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type,
+ sib-Data-variable SIB-Data-variable
+}
+
+CompleteSIBshort2 ::= SEQUENCE {
+ -- Other information elements
+ sib-Type SIB-Type2,
+ sib-Data-variable SIB-Data2-variable
+}
+
+-- ***************************************************
+--
+-- SYSTEM INFORMATION CHANGE INDICATION
+--
+-- ***************************************************
+
+SystemInformationChangeIndication ::= SEQUENCE {
+ -- Other IEs
+ bcch-ModificationInfo BCCH-ModificationInfo,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ systemInformationChangeIndication-r3-add-ext BIT STRING OPTIONAL,
+ v860NonCriticalExtensions SEQUENCE {
+ systemInformationChangeIndication-v860ext
+ SystemInformationChangeIndication-v860ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ systemInformationChangeIndication-vc50ext
+ SystemInformationChangeIndication-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+SystemInformationChangeIndication-v860ext-IEs ::= SEQUENCE {
+ -- Other IEs
+ etws-Information ETWS-Information OPTIONAL
+}
+
+SystemInformationChangeIndication-vc50ext-IEs ::= SEQUENCE {
+ bcch-ModificationInfo-vc50ext BCCH-ModificationInfo-vc50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- TRANSPORT CHANNEL RECONFIGURATION
+--
+-- ***************************************************
+
+TransportChannelReconfiguration ::= CHOICE {
+ r3 SEQUENCE {
+ transportChannelReconfiguration-r3
+ TransportChannelReconfiguration-r3-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v3a0ext
+ TransportChannelReconfiguration-v3a0ext,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ transportChannelReconfiguration-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v4b0ext
+ TransportChannelReconfiguration-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v590ext
+ TransportChannelReconfiguration-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v690ext
+ TransportChannelReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v770ext
+ TransportChannelReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ transportChannelReconfiguration-r4
+ TransportChannelReconfiguration-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ transportChannelReconfiguration-r4-add-ext BIT STRING OPTIONAL,
+ v590NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v590ext
+ TransportChannelReconfiguration-v590ext-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v690ext
+ TransportChannelReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v770ext
+ TransportChannelReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ transportChannelReconfiguration-r5
+ TransportChannelReconfiguration-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ transportChannelReconfiguration-r5-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v690ext
+ TransportChannelReconfiguration-v690ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v770ext
+ TransportChannelReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r6 SEQUENCE {
+ transportChannelReconfiguration-r6
+ TransportChannelReconfiguration-r6-IEs,
+ -- Container for adding non critical extensions after freezing REL-7
+ transportChannelReconfiguration-r6-add-ext BIT STRING OPTIONAL,
+ v6b0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v6b0ext
+ TransportChannelReconfiguration-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v770ext
+ TransportChannelReconfiguration-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ transportChannelReconfiguration-r7
+ TransportChannelReconfiguration-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ transportChannelReconfiguration-r7-add-ext BIT STRING OPTIONAL,
+ v780NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v780ext
+ TransportChannelReconfiguration-v780ext-IEs,
+ v7d0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v7d0ext
+ TransportChannelReconfiguration-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v7f0ext
+ TransportChannelReconfiguration-v7f0ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v7g0ext
+ TransportChannelReconfiguration-v7g0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r8 SEQUENCE {
+ transportChannelReconfiguration-r8
+ TransportChannelReconfiguration-r8-IEs,
+ -- Container for adding non critical extensions after freezing REL-9
+ transportChannelReconfiguration-r8-add-ext
+ BIT STRING OPTIONAL,
+ v7d0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v7d0ext
+ TransportChannelReconfiguration-v7d0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v7f0ext
+ TransportChannelReconfiguration-v7f0ext-IEs,
+ v890NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v890ext
+ TransportChannelReconfiguration-v890ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v7g0ext
+ TransportChannelReconfiguration-v7g0ext-IEs,
+ v8a0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v8a0ext
+ TransportChannelReconfiguration-v8a0ext-IEs,
+ nonCriticalExtensions
+ SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r9 SEQUENCE {
+ transportChannelReconfiguration-r9
+ TransportChannelReconfiguration-r9-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-10
+ transportChannelReconfiguration-r9-add-ext
+ BIT STRING OPTIONAL,
+ v950NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v950ext
+ TransportChannelReconfiguration-v950ext-IEs,
+ v9c0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v9c0ext
+ TransportChannelReconfiguration-v9c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ transportChannelReconfiguration-r10
+ TransportChannelReconfiguration-r10-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-11
+ transportChannelReconfiguration-r10-add-ext
+ BIT STRING OPTIONAL,
+ v9c0NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-v9c0ext
+ TransportChannelReconfiguration-v9c0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ transportChannelReconfiguration-vb50ext
+ TransportChannelReconfiguration-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ transportChannelReconfiguration-r11
+ TransportChannelReconfiguration-r11-IEs,
+ -- Container for adding non critical extensions after
+ -- freezing REL-12
+ transportChannelReconfiguration-r11-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ transportChannelReconfiguration-r12
+ TransportChannelReconfiguration-r12-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-13
+ transportChannelReconfiguration-r12-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ transportChannelReconfiguration-r13
+ TransportChannelReconfiguration-r13-IEs,
+ -- Container for adding non critical extensions
+ -- after freezing REL-14
+ transportChannelReconfiguration-r13-add-ext
+ BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+TransportChannelReconfiguration-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL
+}
+
+TransportChannelReconfiguration-v3a0ext ::= SEQUENCE {
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL
+}
+
+TransportChannelReconfiguration-v4b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy SSDT-UL OPTIONAL,
+ -- The order of the RLs in IE cell-id-PerRL-List is the same as
+ -- in IE DL-InformationPerRL-List included in this message
+ cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL
+}
+
+TransportChannelReconfiguration-v590ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL
+}
+
+TransportChannelReconfiguration-r4-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-CommonInformation DL-CommonInformation-r4 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL
+}
+
+TransportChannelReconfiguration-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received
+ -- the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL,
+ -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification,
+ -- they should not be sent and if received they should be ignored.
+ dummy CHOICE {
+ fdd SEQUENCE {
+ dummy1 CPCH-SetID OPTIONAL,
+ dummy2 DRAC-StaticInformationList OPTIONAL
+ },
+ tdd NULL
+ } OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL,
+ modeSpecificPhysChInfo CHOICE {
+ fdd SEQUENCE {
+ -- dummy is not used in this version of specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DL-PDSCH-Information OPTIONAL
+ },
+ tdd NULL
+ },
+ dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r5 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL
+}
+
+TransportChannelReconfiguration-v690ext-IEs ::= SEQUENCE {
+ -- User Equipment IEs
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- Physical channel IEs
+ -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message
+ -- If included in the r3 or r4 version of the message, the UE should ignore the IE
+ harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL,
+ beaconPLEst BEACON-PL-Est OPTIONAL,
+ postVerificationPeriod ENUMERATED { true } OPTIONAL,
+ dhs-sync DHS-Sync OPTIONAL,
+ timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+TransportChannelReconfiguration-r6-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r6 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+TransportChannelReconfiguration-v6b0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL
+}
+
+TransportChannelReconfiguration-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r7 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r7 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+TransportChannelReconfiguration-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL
+}
+
+TransportChannelReconfiguration-v780ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL
+}
+
+TransportChannelReconfiguration-v7d0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL
+}
+
+TransportChannelReconfiguration-v7f0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7f0ext OPTIONAL
+}
+
+TransportChannelReconfiguration-v7g0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ mimoParameters MIMO-Parameters-v7g0ext OPTIONAL
+}
+
+TransportChannelReconfiguration-r8-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r8 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL
+}
+
+TransportChannelReconfiguration-v890ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL
+}
+
+TransportChannelReconfiguration-v8a0ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL
+}
+
+TransportChannelReconfiguration-r9-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r8 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+TransportChannelReconfiguration-v950ext-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL
+}
+
+TransportChannelReconfiguration-v9c0ext-IEs ::= SEQUENCE {
+ -- For 1.28Mcps TDD only
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL
+}
+
+TransportChannelReconfiguration-r10-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r10 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+TransportChannelReconfiguration-vb50ext-IEs ::= SEQUENCE {
+ ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL
+}
+
+TransportChannelReconfiguration-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r11 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+TransportChannelReconfiguration-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+TransportChannelReconfiguration-r13-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ activationTime ActivationTime OPTIONAL,
+ dynamicActivationTime DynamicActivationTime OPTIONAL,
+ delayRestrictionFlag DelayRestrictionFlag OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ -- The IE "new-DSCH-RNTI" should not be included in FDD mode,
+ -- and if received the UE behaviour is unspecified
+ new-DSCH-RNTI DSCH-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ newSecondary-E-RNTI E-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ ueMobilityStateIndicator High-MobilityDetected OPTIONAL,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- Core network IEs
+ cn-InformationInfo CN-InformationInfo-r6 OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ retrievableConfigInfo RetrievableConfigInfo OPTIONAL,
+ -- Transport channel IEs
+ ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL,
+ ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL,
+ dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL,
+ dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r13 OPTIONAL,
+ -- Physical channel IEs
+ frequencyInfo FrequencyInfo OPTIONAL,
+ multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL,
+ dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL,
+ dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL,
+ hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL,
+ mimoParameters MIMO-Parameters-r9 OPTIONAL,
+ mimo4x4Parameters MIMO4x4-Parameters OPTIONAL,
+ dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL,
+ maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL,
+ ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL,
+ ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL,
+ ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r13 OPTIONAL,
+ ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL,
+ ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL,
+ ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL,
+ ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL,
+ filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL,
+ dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL,
+ dl-CommonInformation DL-CommonInformation-r12 OPTIONAL,
+ dl-InformationPerRL-List DL-InformationPerRL-List-r13 OPTIONAL,
+ dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL,
+ additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL,
+ commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL,
+ dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL,
+ controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL,
+ sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL,
+ mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL,
+ non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL,
+ non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL,
+ -- MBMS IEs
+ mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL,
+ -- Measurement IEs for LCR
+ cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- TRANSPORT CHANNEL RECONFIGURATION COMPLETE
+--
+-- ***************************************************
+
+TransportChannelReconfigurationComplete ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL,
+ -- TABULAR: UL-TimingAdvance is applicable for TDD mode only.
+ ul-TimingAdvance UL-TimingAdvance OPTIONAL,
+ -- Radio bearer IEs
+ count-C-ActivationTime ActivationTime OPTIONAL,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy RB-ActivationTimeInfoList OPTIONAL,
+ ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ transportChannelReconfigurationComplete-r3-add-ext BIT STRING OPTIONAL,
+ v770NonCriticalExtensions SEQUENCE {
+ transportChannelReconfigurationComplete-v770ext
+ TransportChannelReconfigurationComplete-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+TransportChannelReconfigurationComplete-v770ext-IEs ::= SEQUENCE {
+ -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only.
+ ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL,
+ deferredMeasurementControlReading ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- TRANSPORT CHANNEL RECONFIGURATION FAILURE
+--
+-- ***************************************************
+
+TransportChannelReconfigurationFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ transportChannelReconfigurationFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- *********************************************************
+--
+-- TRANSPORT FORMAT COMBINATION CONTROL in AM or UM RLC mode
+--
+-- *********************************************************
+
+TransportFormatCombinationControl ::= SEQUENCE {
+ -- rrc-TransactionIdentifier is always included in this version of the specification
+ rrc-TransactionIdentifier RRC-TransactionIdentifier OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd NULL,
+ tdd SEQUENCE {
+ tfcs-ID TFCS-Identity OPTIONAL
+ }
+ },
+ dpch-TFCS-InUplink TFC-Subset,
+ activationTimeForTFCSubset ActivationTime OPTIONAL,
+ tfc-ControlDuration TFC-ControlDuration OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ transportFormatCombinationControl-r3-add-ext BIT STRING OPTIONAL,
+ v820NonCriticalExtensions SEQUENCE {
+ transportformatcombinationcontrol-v820ext
+ TransportFormatCombinationControl-v820ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+TransportFormatCombinationControl-v820ext-IEs ::= SEQUENCE {
+ -- Transport Format Combination Control IEs
+ ul-AMR-Rate UL-AMR-Rate OPTIONAL
+}
+
+-- ***************************************************
+--
+-- TRANSPORT FORMAT COMBINATION CONTROL FAILURE
+--
+-- ***************************************************
+
+TransportFormatCombinationControlFailure ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ transportFormatCombinationControlFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UE CAPABILITY ENQUIRY
+--
+-- ***************************************************
+
+UECapabilityEnquiry ::= CHOICE {
+ r3 SEQUENCE {
+ ueCapabilityEnquiry-r3 UECapabilityEnquiry-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ ueCapabilityEnquiry-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ ueCapabilityEnquiry-v4b0ext UECapabilityEnquiry-v4b0ext-IEs,
+ v590NonCriticalExtensions SEQUENCE {
+ ueCapabilityEnquiry-v590ext UECapabilityEnquiry-v590ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ ueCapabilityEnquiry-v770ext UECapabilityEnquiry-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ ueCapabilityEnquiry-v860ext UECapabilityEnquiry-v860ext-IEs,
+ vaj0NonCriticalExtensions SEQUENCE {
+ ueCapabilityEnquiry-vaj0ext UECapabilityEnquiry-vaj0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+UECapabilityEnquiry-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ capabilityUpdateRequirement CapabilityUpdateRequirement
+}
+
+UECapabilityEnquiry-v4b0ext-IEs ::= SEQUENCE {
+ capabilityUpdateRequirement-r4-ext CapabilityUpdateRequirement-r4-ext
+}
+
+UECapabilityEnquiry-v590ext-IEs ::= SEQUENCE {
+ systemSpecificCapUpdateReq SystemSpecificCapUpdateReq-v590ext
+}
+
+UECapabilityEnquiry-v770ext-IEs ::= SEQUENCE {
+ capabilityUpdateRequirement CapabilityUpdateRequirement-v770ext OPTIONAL
+}
+
+UECapabilityEnquiry-v860ext-IEs ::= SEQUENCE {
+ capabilityUpdateRequirement CapabilityUpdateRequirement-v860ext OPTIONAL
+}
+
+UECapabilityEnquiry-vaj0ext-IEs ::= SEQUENCE {
+ capabilityUpdateRequirement CapabilityUpdateRequirement-vaj0ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UE CAPABILITY INFORMATION
+--
+-- ***************************************************
+
+UECapabilityInformation ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier OPTIONAL,
+ ue-RadioAccessCapability UE-RadioAccessCapability OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList OPTIONAL,
+ v370NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v370ext UECapabilityInformation-v370ext,
+ v380NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v380ext UECapabilityInformation-v380ext-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v3a0ext UECapabilityInformation-v3a0ext-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ ueCapabilityInformation-r3-add-ext BIT STRING
+ (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL,
+ -- Reserved for future non critical extension
+ v4b0NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v4b0ext UECapabilityInformation-v4b0ext,
+ v590NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v590ext UECapabilityInformation-v590ext,
+ v5c0NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v5c0ext
+ UECapabilityInformation-v5c0ext,
+ v690NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v690ext
+ UECapabilityInformation-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+UECapabilityInformation-v370ext ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v370ext UE-RadioAccessCapability-v370ext OPTIONAL
+}
+
+UECapabilityInformation-v380ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v380ext UE-RadioAccessCapability-v380ext OPTIONAL,
+ dl-PhysChCapabilityFDD-v380ext DL-PhysChCapabilityFDD-v380ext
+}
+
+UECapabilityInformation-v3a0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v3a0ext UE-RadioAccessCapability-v3a0ext OPTIONAL
+}
+
+UECapabilityInformation-r3-add-ext-IEs ::= SEQUENCE {
+ ueCapabilityInformation-v650ext UECapabilityInformation-v650ext-IEs OPTIONAL,
+ v680NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v680ext UECapabilityInformation-v680ext-IEs,
+ v7e0NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v7e0ext UECapabilityInformation-v7e0ext-IEs,
+ v7f0NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-v7f0ext UECapabilityInformation-v7f0ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformation-va40ext
+ UECapabilityInformation-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+UECapabilityInformation-v4b0ext ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v4b0ext UE-RadioAccessCapability-v4b0ext OPTIONAL
+}
+
+UECapabilityInformation-v590ext ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v3g0ext UE-RadioAccessCapability-v3g0ext OPTIONAL,
+ ue-RadioAccessCapability-v590ext UE-RadioAccessCapability-v590ext OPTIONAL,
+ -- Other IEs
+ ue-RATSpecificCapability-v590ext InterRAT-UE-RadioAccessCapability-v590ext OPTIONAL
+}
+
+UECapabilityInformation-v5c0ext ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v5c0ext UE-RadioAccessCapability-v5c0ext OPTIONAL
+}
+
+UECapabilityInformation-v650ext-IEs ::= SEQUENCE {
+ ue-RadioAccessCapability-v650ext UE-RadioAccessCapability-v650ext
+}
+
+UECapabilityInformation-v680ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability-v680ext UE-RadioAccessCapability-v680ext
+}
+
+UECapabilityInformation-v690ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ueCapabilityContainer BIT STRING
+ (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL
+}
+
+UECapabilityInformation-v7e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability UE-RadioAccessCapability-v7e0ext
+}
+
+UECapabilityInformation-v7f0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapability UE-RadioAccessCapability-v7f0ext OPTIONAL
+}
+
+UECapabilityInformation-va40ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ ue-RadioAccessCapabBand UE-RadioAccessCapabBand-va40ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UE CAPABILITY INFORMATION CONFIRM
+--
+-- ***************************************************
+
+UECapabilityInformationConfirm ::= CHOICE {
+ r3 SEQUENCE {
+ ueCapabilityInformationConfirm-r3
+ UECapabilityInformationConfirm-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ ueCapabilityInformationConfirm-r3-add-ext BIT STRING OPTIONAL,
+ v770NonCriticalExtensions SEQUENCE {
+ ueCapabilityInformationConfirm-v770ext UECapabilityInformationConfirm-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+UECapabilityInformationConfirm-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier
+}
+
+UECapabilityInformationConfirm-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ acceptanceOfChangeOfCapability ENUMERATED {
+ refused, accepted, acceptedWithReconfigurationToFollow
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UPLINK DIRECT TRANSFER
+--
+-- ***************************************************
+
+UplinkDirectTransfer ::= SEQUENCE {
+ -- Core network IEs
+ cn-DomainIdentity CN-DomainIdentity,
+ nas-Message NAS-Message,
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ uplinkDirectTransfer-r3-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ uplinkDirectTransfer-v690ext UplinkDirectTransfer-v690ext-IEs,
+ v7g0NonCriticalExtensions SEQUENCE {
+ uplinkDirectTransfer-v7g0ext UplinkDirectTransfer-v7g0ext-IEs,
+ vb50NonCriticalExtensions SEQUENCE {
+ uplinkDirectTransfer-vb50ext UplinkDirectTransfer-vb50ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ uplinkDirectTransfer-vc50ext UplinkDirectTransfer-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+UplinkDirectTransfer-v690ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL
+}
+
+UplinkDirectTransfer-v7g0ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH-v7g0ext MeasuredResultsOnRACH-v7g0ext OPTIONAL
+}
+
+UplinkDirectTransfer-vb50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL
+}
+
+UplinkDirectTransfer-vc50ext-IEs ::= SEQUENCE {
+ -- Measurement IEs
+ measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UPLINK PHYSICAL CHANNEL CONTROL
+--
+-- ***************************************************
+
+UplinkPhysicalChannelControl ::= CHOICE {
+ r3 SEQUENCE {
+ uplinkPhysicalChannelControl-r3 UplinkPhysicalChannelControl-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ uplinkPhysicalChannelControl-r3-add-ext BIT STRING OPTIONAL,
+ v4b0NonCriticalExtensions SEQUENCE {
+ uplinkPysicalChannelControl-v4b0ext UplinkPhysicalChannelControl-v4b0ext-IEs,
+ -- Extension mechanism for non-release 4 information
+ noncriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r4 SEQUENCE {
+ uplinkPhysicalChannelControl-r4 UplinkPhysicalChannelControl-r4-IEs,
+ v4d0NonCriticalExtensions SEQUENCE {
+ -- Container for adding non critical extensions after freezing REL-5
+ uplinkPhysicalChannelControl-r4-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ uplinkPhysicalChannelControl-v690ext
+ UplinkPhysicalChannelControl-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ uplinkPhysicalChannelControl-r5 UplinkPhysicalChannelControl-r5-IEs,
+ -- Container for adding non critical extensions after freezing REL-6
+ uplinkPhysicalChannelControl-r5-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ uplinkPhysicalChannelControl-v690ext
+ UplinkPhysicalChannelControl-v690ext-IEs,
+ v6a0NonCriticalExtensions SEQUENCE{
+ uplinkPhysicalChannelControl-v6a0ext
+ UplinkPhysicalChannelControl-v6a0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ uplinkPhysicalChannelControl-r7 UplinkPhysicalChannelControl-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ uplinkPhysicalChannelControl-r7-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+ }
+}
+
+UplinkPhysicalChannelControl-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ -- Physical channel IEs
+ ccTrCH-PowerControlInfo CCTrCH-PowerControlInfo OPTIONAL,
+ timingAdvance UL-TimingAdvanceControl OPTIONAL,
+ alpha Alpha OPTIONAL,
+ specialBurstScheduling SpecialBurstScheduling OPTIONAL,
+ prach-ConstantValue ConstantValueTdd OPTIONAL,
+ pusch-ConstantValue ConstantValueTdd OPTIONAL
+}
+
+UplinkPhysicalChannelControl-v4b0ext-IEs ::= SEQUENCE {
+ -- In case of TDD, openLoopPowerControl-IPDL-TDD is included instead of IE
+ -- up-IPDL-Parameters in up-OTDOA-AssistanceData
+ openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL
+}
+
+UplinkPhysicalChannelControl-r4-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ccTrCH-PowerControlInfo CCTrCH-PowerControlInfo-r4 OPTIONAL,
+ specialBurstScheduling SpecialBurstScheduling OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ timingAdvance UL-TimingAdvanceControl-r4 OPTIONAL,
+ alpha Alpha OPTIONAL,
+ prach-ConstantValue ConstantValueTdd OPTIONAL,
+ pusch-ConstantValue ConstantValueTdd OPTIONAL,
+ openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL
+ }
+ }
+}
+
+UplinkPhysicalChannelControl-r5-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ccTrCH-PowerControlInfo CCTrCH-PowerControlInfo-r5 OPTIONAL,
+ specialBurstScheduling SpecialBurstScheduling OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ timingAdvance UL-TimingAdvanceControl-r4 OPTIONAL,
+ alpha Alpha OPTIONAL,
+ prach-ConstantValue ConstantValueTdd OPTIONAL,
+ pusch-ConstantValue ConstantValueTdd OPTIONAL,
+ openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL,
+ hs-SICH-PowerControl HS-SICH-Power-Control-Info-TDD384 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL
+ }
+ }
+}
+
+UplinkPhysicalChannelControl-v690ext-IEs ::= SEQUENCE {
+ -- Physical Channel IEs
+ beaconPLEst BEACON-PL-Est OPTIONAL
+}
+
+UplinkPhysicalChannelControl-v6a0ext-IEs ::= SEQUENCE {
+ -- Physical Channel IEs
+ desired-HS-SICH-PowerLevel INTEGER (-120..-58) OPTIONAL,
+ tpc-Step-Size ENUMERATED { s1, s2, s3 , spare1 } OPTIONAL
+}
+
+UplinkPhysicalChannelControl-r7-IEs ::= SEQUENCE {
+ -- Physical channel IEs
+ ccTrCH-PowerControlInfo CCTrCH-PowerControlInfo-r7 OPTIONAL,
+ specialBurstScheduling SpecialBurstScheduling OPTIONAL,
+ tddOption CHOICE {
+ tdd384 SEQUENCE {
+ timingAdvance UL-TimingAdvanceControl-r4 OPTIONAL,
+ alpha Alpha OPTIONAL,
+ prach-ConstantValue ConstantValueTdd OPTIONAL,
+ pusch-ConstantValue ConstantValueTdd OPTIONAL,
+ openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL,
+ hs-SICH-PowerControl HS-SICH-Power-Control-Info-TDD384 OPTIONAL
+ },
+ tdd768 SEQUENCE {
+ timingAdvance UL-TimingAdvanceControl-r7 OPTIONAL,
+ alpha Alpha OPTIONAL,
+ prach-ConstantValue ConstantValueTdd OPTIONAL,
+ pusch-ConstantValue ConstantValueTdd OPTIONAL,
+ openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL,
+ hs-SICH-PowerControl HS-SICH-Power-Control-Info-TDD768 OPTIONAL
+ },
+ tdd128 SEQUENCE {
+ ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL,
+ desired-HS-SICH-PowerLevel INTEGER (-120..-58) OPTIONAL,
+ tpc-Step-Size ENUMERATED { s1, s2, s3 , spare1 } OPTIONAL
+ }
+ }
+}
+
+-- ***************************************************
+--
+-- URA UPDATE
+--
+-- ***************************************************
+
+URAUpdate ::= SEQUENCE {
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ ura-UpdateCause URA-UpdateCause,
+ protocolErrorIndicator ProtocolErrorIndicatorWithMoreInfo,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ uraUpdate-r3-add-ext BIT STRING
+ (CONTAINING URAUpdate-r3-add-ext-IEs) OPTIONAL,
+ v770NonCriticalExtensions SEQUENCE {
+ uraUpdate-v770ext UraUpdate-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ uraUpdate-v860ext URAUpdate-v860ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ uraUpdate-va40ext URAUpdate-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+URAUpdate-r3-add-ext-IEs ::= SEQUENCE {
+ uraUpdate-v7e0ext URAUpdate-v7e0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+UraUpdate-v770ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ support-hsdschReception-CellUraPch ENUMERATED { true } OPTIONAL,
+ support-hsdschReception-CellFach ENUMERATED { true } OPTIONAL
+}
+
+URAUpdate-v7e0ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportForTwoDRXSchemesInPCH ENUMERATED { true } OPTIONAL
+}
+
+URAUpdate-v860ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ supportOfHS-DSCHDRXOperation ENUMERATED { true } OPTIONAL,
+ supportOfCommonEDCH ENUMERATED { true } OPTIONAL,
+ supportOfMACiis ENUMERATED { true } OPTIONAL
+}
+
+URAUpdate-va40ext-IEs ::= SEQUENCE {
+ loggedMeasAvailable ENUMERATED { true } OPTIONAL,
+ loggedANRResultsAvailable ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- URA UPDATE CONFIRM
+--
+-- ***************************************************
+
+URAUpdateConfirm ::= CHOICE {
+ r3 SEQUENCE {
+ uraUpdateConfirm-r3 URAUpdateConfirm-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ uraUpdateConfirm-r3-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ uraUpdateConfirm-v690ext URAUpdateConfirm-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ uraUpdateConfirm-r5 URAUpdateConfirm-r5-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ uraUpdateConfirm-v690ext URAUpdateConfirm-v690ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE {
+ uraUpdateConfirm-r7 URAUpdateConfirm-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ uraUpdateConfirm-r7-add-ext BIT STRING OPTIONAL,
+ v860NonCriticalExtensions SEQUENCE {
+ uraUpdateConfirm-v860ext URAUpdateConfirm-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+ }
+}
+
+URAUpdateConfirm-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL
+}
+
+URAUpdateConfirm-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL
+}
+
+URAUpdateConfirm-v690ext-IEs ::= SEQUENCE {
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL
+}
+
+URAUpdateConfirm-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ rrc-StateIndicator RRC-StateIndicator,
+ utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfo OPTIONAL,
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL
+}
+
+URAUpdateConfirm-v860ext-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ -- Specification mode information
+ -- dummy is not used in this version of the specification, it should
+ -- not be sent and if received it should be ignored.
+ dummy DefaultConfigForCellFACH OPTIONAL
+}
+
+-- ***************************************************
+--
+-- URA UPDATE CONFIRM for CCCH
+--
+-- ***************************************************
+
+URAUpdateConfirm-CCCH ::= CHOICE {
+ r3 SEQUENCE {
+ uraUpdateConfirm-CCCH-r3 URAUpdateConfirm-CCCH-r3-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ uraUpdateConfirm-CCCH-r3-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ uraUpdateConfirm-v690ext URAUpdateConfirm-v690ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ uraUpdateConfirm-v860ext URAUpdateConfirm-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ u-RNTI U-RNTI,
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+URAUpdateConfirm-CCCH-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ u-RNTI U-RNTI,
+ -- The rest of the message is identical to the one sent on DCCH.
+ uraUpdateConfirm URAUpdateConfirm-r3-IEs
+}
+
+-- ***************************************************
+--
+-- UTRAN MOBILITY INFORMATION
+--
+-- ***************************************************
+
+UTRANMobilityInformation ::= CHOICE {
+ r3 SEQUENCE {
+ utranMobilityInformation-r3 UTRANMobilityInformation-r3-IEs,
+ v3a0NonCriticalExtensions SEQUENCE {
+ utranMobilityInformation-v3a0ext UTRANMobilityInformation-v3a0ext-IEs,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ utranMobilityInformation-r3-add-ext BIT STRING OPTIONAL,
+ v690NonCriticalExtensions SEQUENCE {
+ utranMobilityInformation-v690ext UtranMobilityInformation-v690ext-IEs,
+ v860NonCriticalExtentions SEQUENCE {
+ utranMobilityInformation-v860ext UTRANMobilityInformation-v860ext1-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ later-than-r3 SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r5 SEQUENCE {
+ utranMobilityInformation-r5 UTRANMobilityInformation-r5-IEs,
+ v690NonCriticalExtensions SEQUENCE {
+ utranMobilityInformation-v690ext UtranMobilityInformation-v690ext-IEs,
+ v860NonCriticalExtentions SEQUENCE {
+ utranMobilityInformation-v860ext UTRANMobilityInformation-v860ext1-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r7 SEQUENCE{
+ utranMobilityInformation-r7 UTRANMobilityInformation-r7-IEs,
+ -- Container for adding non critical extensions after freezing REL-8
+ utranMobilityInformation-r7-add-ext BIT STRING OPTIONAL,
+ v860NonCriticalExtensions SEQUENCE {
+ utranMobilityInformation-v860ext UTRANMobilityInformation-v860ext2-IEs,
+ vb50NonCriticalExtentions SEQUENCE {
+ utranMobilityInformation-vb50ext
+ UTRANMobilityInformation-vb50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE{
+ utranMobilityInformation-r11 UTRANMobilityInformation-r11-IEs,
+ -- Container for adding non critical extensions after freezing REL-12
+ utranMobilityInformation-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r12 SEQUENCE {
+ utranMobilityInformation-r12 UTRANMobilityInformation-r12-IEs,
+ -- Container for adding non critical extensions after freezing REL-13
+ utranMobilityInformation-r12-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r13 SEQUENCE {
+ utranMobilityInformation-r13 UTRANMobilityInformation-r13-IEs,
+ -- Container for adding non critical extensions after freezing REL-14
+ utranMobilityInformation-r13-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+
+ }
+ }
+ }
+ }
+}
+
+UTRANMobilityInformation-r3-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfoFull OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL,
+ -- Extension mechanism for non- release99 information
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+UTRANMobilityInformation-v3a0ext-IEs ::= SEQUENCE {
+ ue-ConnTimersAndConstants-v3a0ext UE-ConnTimersAndConstants-v3a0ext
+}
+
+UTRANMobilityInformation-r5-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL,
+ cipheringModeInfo CipheringModeInfo OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r5 OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfoFull OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL
+}
+
+UtranMobilityInformation-v690ext-IEs ::= SEQUENCE {
+ -- Core network IEs
+ primary-plmn-Identity PLMN-Identity OPTIONAL
+}
+
+UTRANMobilityInformation-r7-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r5 OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfoFull OPTIONAL,
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL
+}
+
+UTRANMobilityInformation-v860ext1-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ -- UE shall take into account the following ue-ConnTimersAndConstants
+ -- only when ue-ConnTimersAndConstants IE is present in
+ -- UTRANMobilityInformation-r3-IEs or UTRANMobilityInformation-r5-IEs.
+ -- Otherwise, UE shall discard it.
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants-v860ext
+}
+
+UTRANMobilityInformation-v860ext2-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ -- UE shall take into account the following ue-ConnTimersAndConstants
+ -- only when ue-ConnTimersAndConstants IE is present in
+ -- UTRANMobilityInformation-r7-IEs. Otherwise, UE shall discard it.
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants-v860ext,
+ -- UTRAN Mobility IEs
+ dedicatedPriorityInformation DedicatedPriorityInformation OPTIONAL
+}
+
+UTRANMobilityInformation-vb50ext-IEs ::= SEQUENCE {
+ -- UTRAN Mobility IEs
+ dedicatedPriorityInformation DedicatedPriorityInformation-r11 OPTIONAL
+}
+
+UTRANMobilityInformation-r11-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r11 OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfoFull OPTIONAL,
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ dedicatedPriorityInformation DedicatedPriorityInformation-r11 OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL
+}
+
+UTRANMobilityInformation-r12-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r11 OPTIONAL,
+ measurementReleaseEnhancement MeasurementReleaseEnhancement OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfoFull OPTIONAL,
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ domainSpecificAccessRestrictionParametersUpdate
+ DomainSpecificAccessRestrictionParam-v670ext OPTIONAL,
+ pagingPermissionWithAccessControlParametersUpdate
+ PagingPermissionWithAccessControlParameters OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ dedicatedPriorityInformation DedicatedPriorityInformation-r11 OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- WLAN IEs
+ dedicatedWLANOffloadInformation DedicatedWLANOffloadInformation OPTIONAL
+}
+UTRANMobilityInformation-r13-IEs ::= SEQUENCE {
+ -- User equipment IEs
+ integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL,
+ cipheringModeInfo CipheringModeInfo-r7 OPTIONAL,
+ new-U-RNTI U-RNTI OPTIONAL,
+ new-C-RNTI C-RNTI OPTIONAL,
+ new-H-RNTI H-RNTI OPTIONAL,
+ newPrimary-E-RNTI E-RNTI OPTIONAL,
+ ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r11 OPTIONAL,
+ measurementReleaseEnhancement MeasurementReleaseEnhancement OPTIONAL,
+ -- CN information elements
+ cn-InformationInfo CN-InformationInfoFull OPTIONAL,
+ primary-plmn-Identity PLMN-Identity OPTIONAL,
+ domainSpecificAccessRestrictionParametersUpdate
+ DomainSpecificAccessRestrictionParam-v670ext OPTIONAL,
+ pagingPermissionWithAccessControlParametersUpdate
+ PagingPermissionWithAccessControlParameters OPTIONAL,
+ -- UTRAN mobility IEs
+ ura-Identity URA-Identity OPTIONAL,
+ supportForChangeOfUE-Capability BOOLEAN OPTIONAL,
+ extendedDedicatedPriorityInformation DedicatedPriorityInformation-r13 OPTIONAL,
+ -- Radio bearer IEs
+ dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL,
+ -- WLAN IEs
+ dedicatedWLANOffloadInformation DedicatedWLANOffloadInformation OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UTRAN MOBILITY INFORMATION CONFIRM
+--
+-- ***************************************************
+
+UTRANMobilityInformationConfirm ::= SEQUENCE {
+ -- User equipment IEs
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL,
+ -- Radio bearer IEs
+ count-C-ActivationTime ActivationTime OPTIONAL,
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy RB-ActivationTimeInfoList OPTIONAL,
+ ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ utranMobilityInformationConfirm-r3-add-ext BIT STRING OPTIONAL,
+ v770NonCriticalExtension SEQUENCE {
+ utranMobilityInformationConfirm-v770ext
+ UTRANMobilityInformationConfirm-v770ext-IEs,
+ va40NonCriticalExtensions SEQUENCE {
+ utranMobilityInformationConfirm-va40ext
+ UTRANMobilityInformationConfirm-va40ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+UTRANMobilityInformationConfirm-v770ext-IEs ::= SEQUENCE {
+ deferredMeasurementControlReading ENUMERATED { true } OPTIONAL
+}
+
+UTRANMobilityInformationConfirm-va40ext-IEs ::= SEQUENCE {
+ loggedMeasAvailable ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UTRAN MOBILITY INFORMATION FAILURE
+--
+-- ***************************************************
+
+UTRANMobilityInformationFailure ::= SEQUENCE {
+ -- UE information elements
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ failureCause FailureCauseWithProtErr,
+ laterNonCriticalExtensions SEQUENCE {
+ -- Container for additional R99 extensions
+ utranMobilityInformationFailure-r3-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MBMS ACCESS INFORMATION
+--
+-- ***************************************************
+
+MBMSAccessInformation ::= SEQUENCE {
+ -- Access Information IEs
+ mbms-ServiceAccessInfoList MBMS-ServiceAccessInfoList-r6,
+ -- Non critical extensions
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MBMS COMMON PTM RB INFORMATION
+--
+-- ***************************************************
+
+MBMSCommonPTMRBInformation ::= SEQUENCE {
+ -- Common PTM RB Information IEs
+ mbms-CommonRBInformationList MBMS-CommonRBInformationList-r6,
+ mbms-TranspChInfoForEachTrCh MBMS-TranspChInfoForEachTrCh-r6,
+ mbms-TranspChInfoForEachCCTrCh MBMS-TranspChInfoForEachCCTrCh-r6 OPTIONAL,
+ -- For FDD and TDD 3.84Mcps in a cell operating in MBSFN only mode and for TDD 7.68Mcps the
+ -- IE mbms-PhyChInformationList shall be ignored.
+ mbms-PhyChInformationList MBMS-PhyChInformationList-r6,
+ -- Non critical extensions
+ v770NonCriticalExtensions SEQUENCE {
+ mbmsCommonPTMRBInformation-v770ext
+ MBMSCommonPTMRBInformation-v770ext-IEs,
+ v780NonCriticalExtensions SEQUENCE {
+ mbmsCommonPTMRBInformation-v780ext
+ MBMSCommonPTMRBInformation-v780ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ mbmsCommonPTMRBInformation-v860ext
+ MBMSCommonPTMRBInformation-v860ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+MBMSCommonPTMRBInformation-v770ext-IEs ::= SEQUENCE {
+ -- TABULAR: CHOICE mode == "FDD or TDD"
+ mbms-PhyChInformationList-r7 MBMS-PhyChInformationList-r7 OPTIONAL
+}
+
+MBMSCommonPTMRBInformation-v780ext-IEs ::= SEQUENCE {
+ mbsfn-TDDInformation-LCR MBSFN-TDDInformation-LCR OPTIONAL
+}
+
+MBMSCommonPTMRBInformation-v860ext-IEs ::= SEQUENCE {
+ -- TABULAR: CHOICE mode == "3.84 Mcps TDD IMB"
+ mbms-PhyChInformationList MBMS-PhyChInformationList-IMB384 OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MBMS CURRENT CELL PTM RB INFORMATION
+--
+-- ***************************************************
+
+MBMSCurrentCellPTMRBInformation ::= SEQUENCE {
+ -- Current Cell PTM RB Information IEs
+ mbms-CurrentCell-SCCPCHList MBMS-CurrentCell-SCCPCHList-r6 OPTIONAL,
+ mbms-SIBType5-SCCPCHList MBMS-SIBType5-SCCPCHList-r6 OPTIONAL,
+ -- Non critical extensions
+ v770NonCriticalExtensions SEQUENCE {
+ mbmsCurrentCellPTMRBInfo-v770ext
+ MBMSCurrentCellPTMRBInfo-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+MBMSCurrentCellPTMRBInfo-v770ext-IEs ::= SEQUENCE {
+ mbsfn-TDM-Info-List MBSFN-TDM-Info-List OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MBMS GENERAL INFORMATION
+--
+-- ***************************************************
+
+MBMSGeneralInformation ::= SEQUENCE {
+ -- MBMS General Information IEs
+ mbms-PreferredFrequencyInfo MBMS-PreferredFrequencyList-r6 OPTIONAL,
+ mbms-TimersAndCounters MBMS-TimersAndCounters-r6,
+ michConfigurationInfo MBMS-MICHConfigurationInfo-r6,
+ cellGroupIdentity MBMS-CellGroupIdentity-r6,
+ mschDefaultConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL,
+ -- Non critical extensions
+ v6b0NonCriticalExtensions SEQUENCE {
+ mbmsGeneralInformation-v6b0ext MBMSGeneralInformation-v6b0ext-IEs,
+ v770NonCriticalExtensions SEQUENCE {
+ mbmsGeneralInformation-v770ext MBMSGeneralInformation-v770ext-IEs,
+ v860NonCriticalExtensions SEQUENCE {
+ mbmsGeneralInformation-v860ext MBMSGeneralInformation-v860ext-IEs,
+ v890NoncriticalExtensions SEQUENCE {
+ mbmsGeneralInformation-v890ext MBMSGeneralInformation-v890ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+MBMSGeneralInformation-v6b0ext-IEs ::= SEQUENCE {
+ indicateChangeInSelectedServices BOOLEAN
+}
+
+MBMSGeneralInformation-v770ext-IEs ::= SEQUENCE {
+ mbmsMICHConfiguration MBMS-MICHConfigurationInfo-v770ext OPTIONAL,
+ mbsfnInterFrequencyNeighbourList
+ MBSFN-InterFrequencyNeighbourList-r7 OPTIONAL
+}
+
+MBMSGeneralInformation-v860ext-IEs ::= SEQUENCE {
+ mbsfnInterFrequencyNeighbourList
+ MBSFN-InterFrequencyNeighbourList-v860ext OPTIONAL
+}
+
+MBMSGeneralInformation-v890ext-IEs ::= SEQUENCE {
+ mbmsNetworkStandardTimeInformation-LCR
+ MBMS-NetworkStandardTimeInformation-LCR-v890ext OPTIONAL,
+ mbmsMICHConfiguration MBMS-MICHConfigurationInfo-v890ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MBMS MODIFICATION REQUEST
+--
+-- ***************************************************
+
+MBMSModificationRequest ::= SEQUENCE {
+ -- MBMS Modification Request IEs
+ mbms-PreferredFreqRequest MBMS-ServiceIdentity-r6 OPTIONAL,
+ rb-InformationReleaseList RB-InformationReleaseList OPTIONAL,
+ -- Non critical extensions
+ v6b0NonCriticalExtensions SEQUENCE {
+ mbmsModificationRequest-v6b0ext MBMSModificationRequest-v6b0ext-IEs,
+ v6f0NonCriticalExtensions SEQUENCE {
+ mbmsModificationRequest-v6f0ext MBMSModificationRequest-v6f0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+MBMSModificationRequest-v6b0ext-IEs ::= SEQUENCE {
+ mbmsSelectedServiceInfo MBMS-SelectedServiceInfo
+}
+
+MBMSModificationRequest-v6f0ext-IEs ::= SEQUENCE {
+ mbmsSupportOfServiceChangeForAPtpRB ENUMERATED { true } OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MBMS MODIFIED SERVICES INFORMATION
+--
+-- ***************************************************
+
+MBMSModifiedServicesInformation ::= SEQUENCE {
+ -- MBMS Modified Services Information IEs
+ modifedServiceList MBMS-ModifedServiceList-r6 OPTIONAL,
+ mbms-ReacquireMCCH ENUMERATED { true } OPTIONAL,
+ mbms-DynamicPersistenceLevel DynamicPersistenceLevel OPTIONAL,
+ endOfModifiedMCCHInformation INTEGER (1..16) OPTIONAL,
+ mbmsNumberOfNeighbourCells MBMS-NumberOfNeighbourCells-r6,
+ mbms-AllUnmodifiedPTMServices ENUMERATED { true } OPTIONAL,
+ mbms-PTMActivationTime MBMS-PTMActivationTime-r6 OPTIONAL,
+ -- Non critical extensions
+ v770NonCriticalExtensions SEQUENCE {
+ mbmsModifiedServicesInformation-v770ext
+ MBMSModifiedServicesInformation-v770ext-IEs,
+ v7c0NonCriticalExtensions SEQUENCE {
+ mbmsModifiedServicesInformation-v7c0ext
+ MBMSModifiedServicesInformation-v7c0ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+MBMSModifiedServicesInformation-v770ext-IEs ::= SEQUENCE {
+ modifiedServiceList MBMS-ModifiedServiceList-v770ext OPTIONAL,
+ mib-ValueTag MIB-ValueTag OPTIONAL
+}
+
+MBMSModifiedServicesInformation-v7c0ext-IEs ::= SEQUENCE {
+ modifiedServiceList MBMS-ModifiedServiceList-LCR-v7c0ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MBMS NEIGHBOURING CELL PTM RB INFORMATION
+--
+-- ***************************************************
+
+MBMSNeighbouringCellPTMRBInformation ::= SEQUENCE {
+ -- MBMS Neighbouring Cell PTM RB Information IEs
+ neighbouringCellIdentity IntraFreqCellID,
+ neighbouringCellSCCPCHList MBMS-NeighbouringCellSCCPCHList-r6,
+ -- Non critical extensions
+ v770NonCriticalExtensions SEQUENCE {
+ mbmsNeighbouringCellPTMRBInformation-v770ext
+ MBMSNeighbouringCellPTMRBInformation-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+MBMSNeighbouringCellPTMRBInformation-v770ext-IEs ::= SEQUENCE {
+ -- The "choice_PhyCH" in the tabular is realized by using the following IE due to the
+ -- constraint in the ASN.1 implementation.
+ neighbouringCellSCCPCHList MBMS-NeighbouringCellSCCPCHList-v770ext OPTIONAL
+}
+
+
+-- ***************************************************
+--
+-- MBMS SCHEDULING INFORMATION
+--
+-- ***************************************************
+
+MBMSSchedulingInformation ::= SEQUENCE {
+ -- MBMS Scheduling Information IEs
+ serviceSchedulingInfoList MBMS-ServiceSchedulingInfoList-r6,
+ -- Non critical extensions
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+}
+
+-- ***************************************************
+--
+-- MBMS UNMODIFIED SERVICES INFORMATION
+--
+-- ***************************************************
+
+MBMSUnmodifiedServicesInformation ::= SEQUENCE {
+ -- MBMS Unmodified Services Information IEs
+ unmodifiedServiceList MBMS-UnmodifiedServiceList-r6 OPTIONAL,
+ -- Non critical extensions
+ v770NonCriticalExtensions SEQUENCE {
+ mbmsUnmodifiedServicesInformation-v770ext
+ MBMSUnmodifiedServicesInformation-v770ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+}
+
+MBMSUnmodifiedServicesInformation-v770ext-IEs ::= SEQUENCE {
+ unmodifiedServiceList MBMS-UnmodifiedServiceList-v770ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- System Information Container
+--
+-- ***************************************************
+
+System-Information-Container ::= SEQUENCE {
+ mib OCTET STRING (CONTAINING MasterInformationBlock),
+ sysInfoTypeSB1 OCTET STRING (CONTAINING SysInfoTypeSB1) OPTIONAL,
+ sysInfoTypeSB2 OCTET STRING (CONTAINING SysInfoTypeSB2) OPTIONAL,
+ sysInfoType1 OCTET STRING (CONTAINING SysInfoType1),
+ sysInfoType3 OCTET STRING (CONTAINING SysInfoType3),
+ sysInfoType5 OCTET STRING (CONTAINING SysInfoType5),
+ sysInfoType7 OCTET STRING (CONTAINING SysInfoType7),
+ sysInfoType11 OCTET STRING (CONTAINING SysInfoType11) OPTIONAL,
+ sysInfoType11bis OCTET STRING (CONTAINING SysInfoType11bis) OPTIONAL,
+ sysInfoType12 OCTET STRING (CONTAINING SysInfoType12) OPTIONAL,
+ vb50NonCriticalExtensions SEQUENCE {
+ system-Information-Container-vb50ext System-Information-Container-vb50ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ system-Information-Container-vc50ext System-Information-Container-vc50ext-IEs,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+System-Information-Container-vb50ext-IEs ::= SEQUENCE {
+ sysInfoType22 OCTET STRING (CONTAINING SysInfoType22) OPTIONAL
+}
+
+System-Information-Container-vc50ext-IEs ::= SEQUENCE {
+ sysInfoType11ter OCTET STRING (CONTAINING SysInfoType11ter) OPTIONAL
+}
+-- ***************************************************
+--
+-- LOGGING MEASUREMENT CONFIGURATION
+--
+-- ***************************************************
+
+LoggingMeasurementConfiguration ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ loggingMeasurementConfiguration-r10-IEs LoggingMeasurementConfiguration-r10-IEs,
+ -- Container for additional R10 extensions
+ loggingMeasurementConfiguration-r10-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ loggingMeasurementConfiguration-r11-IEs LoggingMeasurementConfiguration-r11-IEs,
+ loggingMeasurementConfiguration-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+LoggingMeasurementConfiguration-r10-IEs ::= SEQUENCE {
+ loggedMeasurementsConfigurationInfo LoggedMeasurementsConfigurationInfo OPTIONAL,
+ loggedANRConfigurationInfo LoggedANRConfigurationInfo OPTIONAL
+}
+
+LoggingMeasurementConfiguration-r11-IEs ::= SEQUENCE {
+ loggedMeasurementsConfigurationInfo LoggedMeasurementsConfigurationInfo-r11 OPTIONAL,
+ loggedANRConfigurationInfo LoggedANRConfigurationInfo OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UE INFORMATION RESPONSE
+--
+-- ***************************************************
+
+UEInformationResponse ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ loggedMeasReport LoggedMeasReport OPTIONAL,
+ loggedANRReportInfoList LoggedANRReportInfoList OPTIONAL,
+ vb50NonCriticalExtensions SEQUENCE {
+ ueInformationResponse-vb50ext UEInformationResponse-vb50ext-IEs,
+ vbb0NonCriticalExtensions SEQUENCE {
+ ueInformationResponse-vbb0ext UEInformationResponse-vbb0ext-IEs,
+ vc50NonCriticalExtensions SEQUENCE {
+ ueInformationResponse-vc50ext UEInformationResponse-vc50ext-IEs, nonCriticalExtensions SEQUENCE {} OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+ } OPTIONAL
+}
+
+UEInformationResponse-vb50ext-IEs ::= SEQUENCE {
+ loggedMeasReport LoggedMeasReport-vb50ext OPTIONAL,
+ -- dummy is not used in this version of the specification. It should not be sent and
+ -- if received it should be ignored.
+ dummy ConnectionEstablishmentFailureReport OPTIONAL,
+ loggedANRReportInfoList LoggedANRReportInfoList-vb50ext OPTIONAL
+}
+
+UEInformationResponse-vbb0ext-IEs ::= SEQUENCE {
+ connectionEstablishmentFailureReport
+ ConnectionEstablishmentFailureReport-r11 OPTIONAL
+}
+
+UEInformationResponse-vc50ext-IEs ::= SEQUENCE {
+ loggedMeasReport LoggedMeasReport-vc50ext OPTIONAL,
+ connectionEstablishmentFailureReport
+ ConnectionEstablishmentFailureReport-vc50ext OPTIONAL
+}
+
+-- ***************************************************
+--
+-- UE INFORMATION REQUEST
+--
+-- ***************************************************
+
+UEInformationRequest ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ r10 SEQUENCE {
+ ueInformationRequest-r10 UEInformationRequest-r10-IEs,
+ -- Container for additional R10 extensions
+ ueInformationRequest-r10-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions CHOICE {
+ r11 SEQUENCE {
+ ueInformationRequest-r11 UEInformationRequest-r11-IEs,
+ -- Container for additional R11 extensions
+ ueInformationRequest-r11-add-ext BIT STRING OPTIONAL,
+ nonCriticalExtensions SEQUENCE {} OPTIONAL
+ },
+ criticalExtensions SEQUENCE {}
+ }
+ }
+}
+
+UEInformationRequest-r10-IEs ::= SEQUENCE {
+ loggedMeasReportRequest ENUMERATED { true } OPTIONAL,
+ loggedANRReportRequest ENUMERATED { true } OPTIONAL
+}
+
+UEInformationRequest-r11-IEs ::= SEQUENCE {
+ loggedMeasReportRequest ENUMERATED { true } OPTIONAL,
+ loggedANRReportRequest ENUMERATED { true } OPTIONAL,
+ connectionEstablishmentFailureRequest ENUMERATED { true } OPTIONAL
+}
+
+END
diff --git a/epan/dissectors/asn1/rrc/packet-rrc-template.c b/epan/dissectors/asn1/rrc/packet-rrc-template.c
new file mode 100644
index 0000000000..cd31f61b41
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/packet-rrc-template.c
@@ -0,0 +1,368 @@
+/* packet-rrc.c
+ * Routines for Universal Mobile Telecommunications System (UMTS);
+ * Radio Resource Control (RRC) protocol specification
+ * (3GPP TS 25.331 packet dissection)
+ * Copyright 2006-2010, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref: 3GPP TS 25.331 V13.1.0 (2015-12)
+ */
+
+/**
+ *
+ * TODO:
+ * - Fix ciphering information for circuit switched stuff
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+#include <epan/conversation.h>
+#include <epan/expert.h>
+#include <epan/proto_data.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-rrc.h"
+#include "packet-gsm_a_common.h"
+#include "packet-umts_fp.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4049: compiler limit : terminating line number emission" */
+#pragma warning(disable:4049)
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "Radio Resource Control (RRC) protocol"
+#define PSNAME "RRC"
+#define PFNAME "rrc"
+
+extern int proto_fp; /*Handler to FP*/
+
+GTree * hsdsch_muxed_flows = NULL;
+GTree * rrc_ciph_inf = NULL;
+static int msg_type _U_;
+
+static dissector_handle_t gsm_a_dtap_handle;
+static dissector_handle_t rrc_ue_radio_access_cap_info_handle=NULL;
+static dissector_handle_t rrc_pcch_handle=NULL;
+static dissector_handle_t rrc_ul_ccch_handle=NULL;
+static dissector_handle_t rrc_dl_ccch_handle=NULL;
+static dissector_handle_t rrc_ul_dcch_handle=NULL;
+static dissector_handle_t rrc_dl_dcch_handle=NULL;
+static dissector_handle_t rrc_bcch_fach_handle=NULL;
+static dissector_handle_t lte_rrc_ue_eutra_cap_handle=NULL;
+static dissector_handle_t lte_rrc_dl_dcch_handle=NULL;
+static dissector_handle_t gsm_rlcmac_dl_handle=NULL;
+
+enum nas_sys_info_gsm_map {
+ RRC_NAS_SYS_INFO_CS,
+ RRC_NAS_SYS_INFO_PS,
+ RRC_NAS_SYS_INFO_CN_COMMON
+};
+
+/* Forward declarations */
+void proto_register_rrc(void);
+void proto_reg_handoff_rrc(void);
+static int dissect_UE_RadioAccessCapabilityInfo_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SysInfoTypeSB1_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SysInfoTypeSB2_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SysInfoType5_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SysInfoType11_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SysInfoType11bis_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SysInfoType11ter_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SysInfoType22_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+/* Include constants */
+#include "packet-rrc-val.h"
+
+/* Initialize the protocol and registered fields */
+int proto_rrc = -1;
+static int hf_test;
+#include "packet-rrc-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_rrc = -1;
+
+#include "packet-rrc-ett.c"
+
+static gint ett_rrc_eutraFeatureGroupIndicators = -1;
+static gint ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo = -1;
+static gint ett_rrc_ims_info = -1;
+
+static expert_field ei_rrc_no_hrnti = EI_INIT;
+
+/* Global variables */
+static proto_tree *top_tree;
+
+static int hf_rrc_eutra_feat_group_ind_1 = -1;
+static int hf_rrc_eutra_feat_group_ind_2 = -1;
+static int hf_rrc_eutra_feat_group_ind_3 = -1;
+static int hf_rrc_eutra_feat_group_ind_4 = -1;
+static int hf_rrc_ims_info_atgw_trans_det_cont_type = -1;
+static int hf_rrc_ims_info_atgw_udp_port = -1;
+static int hf_rrc_ims_info_atgw_ipv4 = -1;
+static int hf_rrc_ims_info_atgw_ipv6 = -1;
+
+static const true_false_string rrc_eutra_feat_group_ind_1_val = {
+ "UTRA CELL_PCH to EUTRA RRC_IDLE cell reselection - Supported",
+ "UTRA CELL_PCH to EUTRA RRC_IDLE cell reselection - Not supported"
+};
+static const true_false_string rrc_eutra_feat_group_ind_2_val = {
+ "EUTRAN measurements and reporting in connected mode - Supported",
+ "EUTRAN measurements and reporting in connected mode - Not supported"
+};
+static const true_false_string rrc_eutra_feat_group_ind_3_val = {
+ "UTRA CELL_FACH absolute priority cell reselection for high priority layers - Supported",
+ "UTRA CELL_FACH absolute priority cell reselection for high priority layers - Not supported"
+};
+static const true_false_string rrc_eutra_feat_group_ind_4_val = {
+ "UTRA CELL_FACH absolute priority cell reselection for all layers - Supported",
+ "UTRA CELL_FACH absolute priority cell reselection for all layers - Not supported"
+};
+static const value_string rrc_ims_info_atgw_trans_det_cont_type[] = {
+ {0, "ATGW-IPv4-address-and-port"},
+ {1, "ATGW-IPv6-address-and-port"},
+ {2, "ATGW-not-available"},
+ {0, NULL}
+};
+static int flowd,type;
+
+static int cipher_start_val[2] _U_;
+
+/*Stores how many channels we have detected for a HS-DSCH MAC-flow*/
+#define RRC_MAX_NUM_HSDHSCH_MACDFLOW 8
+static guint8 num_chans_per_flow[RRC_MAX_NUM_HSDHSCH_MACDFLOW];
+static int rbid;
+static int activation_frame;
+
+
+/**
+ * Return the maximum counter, useful for initiating counters
+ */
+#if 0
+static int get_max_counter(int com_context){
+ int i;
+ guint32 max = 0;
+ rrc_ciphering_info * c_inf;
+
+ if( (c_inf = g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER((gint)com_context))) == NULL ){
+ return 0;
+ }
+ for(i = 0; i<31; i++){
+ max = MAX(c_inf->ps_conf_counters[i][0], max);
+ max = MAX(c_inf->ps_conf_counters[i][1], max);
+ }
+ return max;
+}
+#endif
+/** Utility functions used for various comparisons/cleanups in tree **/
+static gint rrc_key_cmp(gconstpointer b_ptr, gconstpointer a_ptr, gpointer ignore _U_){
+ if( GPOINTER_TO_INT(a_ptr) > GPOINTER_TO_INT(b_ptr) ){
+ return -1;
+ }
+ return GPOINTER_TO_INT(a_ptr) < GPOINTER_TO_INT(b_ptr);
+}
+
+static void rrc_free_key(gpointer key _U_){
+ /*Keys should be de allocated elsewhere.*/
+
+}
+
+static void rrc_free_value(gpointer value ){
+ g_free(value);
+}
+#include "packet-rrc-fn.c"
+
+
+
+static int
+dissect_rrc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ /* FIX ME Currently don't know the 'starting point' of this protocol
+ * exported DL-DCCH-Message is the entry point.
+ */
+ proto_item *rrc_item = NULL;
+ proto_tree *rrc_tree = NULL;
+ struct rrc_info *rrcinf;
+
+ top_tree = tree;
+ rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rrc, 0);
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RRC");
+
+ /*Clear memory*/
+ memset(num_chans_per_flow,0,sizeof(guint8)*RRC_MAX_NUM_HSDHSCH_MACDFLOW);
+
+ /* create the rrc protocol tree */
+ rrc_item = proto_tree_add_item(tree, proto_rrc, tvb, 0, -1, ENC_NA);
+ rrc_tree = proto_item_add_subtree(rrc_item, ett_rrc);
+
+ if (rrcinf) {
+ switch (rrcinf->msgtype[pinfo->fd->subnum]) {
+ case RRC_MESSAGE_TYPE_PCCH:
+ call_dissector(rrc_pcch_handle, tvb, pinfo, rrc_tree);
+ break;
+ case RRC_MESSAGE_TYPE_UL_CCCH:
+ call_dissector(rrc_ul_ccch_handle, tvb, pinfo, rrc_tree);
+ break;
+ case RRC_MESSAGE_TYPE_DL_CCCH:
+ call_dissector(rrc_dl_ccch_handle, tvb, pinfo, rrc_tree);
+ break;
+ case RRC_MESSAGE_TYPE_UL_DCCH:
+ call_dissector(rrc_ul_dcch_handle, tvb, pinfo, rrc_tree);
+ break;
+ case RRC_MESSAGE_TYPE_DL_DCCH:
+ call_dissector(rrc_dl_dcch_handle, tvb, pinfo, rrc_tree);
+ break;
+ case RRC_MESSAGE_TYPE_BCCH_FACH:
+ call_dissector(rrc_bcch_fach_handle, tvb, pinfo, rrc_tree);
+ break;
+ default:
+ ;
+ }
+ }
+ return tvb_captured_length(tvb);
+}
+
+static void
+rrc_init(void) {
+ /*Initialize structure for muxed flow indication*/
+ hsdsch_muxed_flows = g_tree_new_full(rrc_key_cmp,
+ NULL, /* data pointer, optional */
+ rrc_free_key,
+ rrc_free_value);
+
+ /*Initialize structure for muxed flow indication*/
+ rrc_ciph_inf = g_tree_new_full(rrc_key_cmp,
+ NULL, /* data pointer, optional */
+ NULL,
+ rrc_free_value);
+}
+
+static void
+rrc_cleanup(void) {
+ /*Cleanup*/
+ g_tree_destroy(hsdsch_muxed_flows);
+ g_tree_destroy(rrc_ciph_inf);
+}
+
+/*--- proto_register_rrc -------------------------------------------*/
+void proto_register_rrc(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-rrc-hfarr.c"
+ { &hf_test,
+ { "RAB Test", "rrc.RAB.test",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ "rrc.RAB_Info_r6", HFILL }},
+ { &hf_rrc_eutra_feat_group_ind_1,
+ { "Indicator 1", "rrc.eutra_feat_group_ind_1",
+ FT_BOOLEAN, BASE_NONE, TFS(&rrc_eutra_feat_group_ind_1_val), 0,
+ "EUTRA Feature Group Indicator 1", HFILL }},
+ { &hf_rrc_eutra_feat_group_ind_2,
+ { "Indicator 2", "rrc.eutra_feat_group_ind_2",
+ FT_BOOLEAN, BASE_NONE, TFS(&rrc_eutra_feat_group_ind_2_val), 0,
+ "EUTRA Feature Group Indicator 2", HFILL }},
+ { &hf_rrc_eutra_feat_group_ind_3,
+ { "Indicator 3", "rrc.eutra_feat_group_ind_3",
+ FT_BOOLEAN, BASE_NONE, TFS(&rrc_eutra_feat_group_ind_3_val), 0,
+ "EUTRA Feature Group Indicator 3", HFILL }},
+ { &hf_rrc_eutra_feat_group_ind_4,
+ { "Indicator 4", "rrc.eutra_feat_group_ind_4",
+ FT_BOOLEAN, BASE_NONE, TFS(&rrc_eutra_feat_group_ind_4_val), 0,
+ "EUTRA Feature Group Indicator 4", HFILL }},
+ { &hf_rrc_ims_info_atgw_trans_det_cont_type,
+ { "ATGW transfer details content type", "rrc.rsrvcc_info.ims_info_atgw_trans_det_cont",
+ FT_UINT8, BASE_DEC, VALS(rrc_ims_info_atgw_trans_det_cont_type), 0x3,
+ "rSR-VCC IMS information ATGW transfer details content type", HFILL }},
+ {&hf_rrc_ims_info_atgw_udp_port,
+ {"ATGW UDP port","rrc.rsrvcc_info.ims_info_atgw_udp_port",
+ FT_UINT16,BASE_DEC, NULL, 0x0,
+ "rSR-VCC IMS information ATGW UDP port", HFILL }},
+ { &hf_rrc_ims_info_atgw_ipv4,
+ {"ATGW IPv4", "rrc.rsrvcc_info.ims_info_atgw_ipv4",
+ FT_IPv4, BASE_NONE, NULL, 0x0,
+ "rSR-VCC IMS information ATGW IPv4", HFILL}},
+ { &hf_rrc_ims_info_atgw_ipv6,
+ {"ATGW IPv6", "rrc.rsrvcc_info.ims_info_atgw_ipv6",
+ FT_IPv6, BASE_NONE, NULL, 0x0,
+ "rSR-VCC IMS information ATGW IPv6", HFILL}},
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_rrc,
+#include "packet-rrc-ettarr.c"
+ &ett_rrc_eutraFeatureGroupIndicators,
+ &ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo,
+ &ett_rrc_ims_info,
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_rrc_no_hrnti, { "rrc.no_hrnti", PI_SEQUENCE, PI_NOTE, "Did not detect any H-RNTI", EXPFILL }},
+ };
+
+ expert_module_t* expert_rrc;
+
+ /* Register protocol */
+ proto_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_rrc, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_rrc = expert_register_protocol(proto_rrc);
+ expert_register_field_array(expert_rrc, ei, array_length(ei));
+
+ register_dissector("rrc", dissect_rrc, proto_rrc);
+
+#include "packet-rrc-dis-reg.c"
+
+
+
+
+ register_init_routine(rrc_init);
+ register_cleanup_routine(rrc_cleanup);
+}
+
+
+/*--- proto_reg_handoff_rrc ---------------------------------------*/
+void
+proto_reg_handoff_rrc(void)
+{
+ gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
+ rrc_pcch_handle = find_dissector("rrc.pcch");
+ rrc_ul_ccch_handle = find_dissector("rrc.ul.ccch");
+ rrc_dl_ccch_handle = find_dissector("rrc.dl.ccch");
+ rrc_ul_dcch_handle = find_dissector("rrc.ul.dcch");
+ rrc_dl_dcch_handle = find_dissector("rrc.dl.dcch");
+ rrc_ue_radio_access_cap_info_handle = find_dissector("rrc.ue_radio_access_cap_info");
+ rrc_dl_dcch_handle = find_dissector("rrc.dl.dcch");
+ lte_rrc_ue_eutra_cap_handle = find_dissector("lte-rrc.ue_eutra_cap");
+ lte_rrc_dl_dcch_handle = find_dissector("lte-rrc.dl.dcch");
+ rrc_bcch_fach_handle = find_dissector("rrc.bcch.fach");
+ gsm_rlcmac_dl_handle = find_dissector("gsm_rlcmac_dl");
+}
+
+
diff --git a/epan/dissectors/asn1/rrc/packet-rrc-template.h b/epan/dissectors/asn1/rrc/packet-rrc-template.h
new file mode 100644
index 0000000000..6ae2b0661d
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/packet-rrc-template.h
@@ -0,0 +1,64 @@
+/* packet-rrc-template.h
+ * Copyright 2009, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_RRC_H
+#define PACKET_RRC_H
+
+#include <epan/asn1.h> /* Needed for non asn1 dissectors?*/
+
+extern int proto_rrc;
+#include "packet-rrc-exp.h"
+
+enum rrc_message_type {
+ RRC_MESSAGE_TYPE_INVALID = 0,
+ RRC_MESSAGE_TYPE_PCCH = 1,
+ RRC_MESSAGE_TYPE_UL_CCCH,
+ RRC_MESSAGE_TYPE_DL_CCCH,
+ RRC_MESSAGE_TYPE_UL_DCCH,
+ RRC_MESSAGE_TYPE_DL_DCCH,
+ RRC_MESSAGE_TYPE_BCCH_FACH
+};
+
+#define MAX_RRC_FRAMES 64
+typedef struct rrc_info
+{
+ enum rrc_message_type msgtype[MAX_RRC_FRAMES];
+ guint16 hrnti[MAX_RRC_FRAMES];
+} rrc_info;
+
+/*Struct for storing ciphering information*/
+typedef struct rrc_ciph_info_
+{
+ int seq_no[31][2]; /*Indicates for each Rbid when ciphering starts*/
+ GTree * /*guint32*/ start_cs; /*Start value for CS counter*/
+ GTree * /*guint32*/ start_ps; /*Start value for PS counter*/
+ guint32 conf_algo_indicator; /*Indicates which type of ciphering algorithm used*/
+ guint32 int_algo_indiccator; /*Indicates which type of integrity algorithm used*/
+ unsigned int setup_frame; /*Store which frame contained this information*/
+ guint32 ps_conf_counters[31][2]; /*This should also be made for CS*/
+
+} rrc_ciphering_info;
+
+extern GTree * hsdsch_muxed_flows;
+extern GTree * rrc_ciph_inf;
+
+#endif /* PACKET_RRC_H */
diff --git a/epan/dissectors/asn1/rrc/rrc.cnf b/epan/dissectors/asn1/rrc/rrc.cnf
new file mode 100644
index 0000000000..0a29d8662d
--- /dev/null
+++ b/epan/dissectors/asn1/rrc/rrc.cnf
@@ -0,0 +1,951 @@
+# rrc.cnf
+# rrc conformation file
+# Copyright 2006 Anders Broman
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.USE_VALS_EXT
+AverageRLC-BufferPayload
+DL-DCCH-MessageType
+DL-TS-ChannelisationCode-VHCR
+EstablishmentCause
+E-DCH-MAC-d-FlowRetransTimer
+HARQMemorySize
+CommonEDCHSystemInfo/modeSpecificInfo/tdd/tdd128/ccch-transmission-Info/harq-retransmission-timer
+MBMS-AccessProbabilityFactor
+PNBSCH-Allocation-r4/numberOfRepetitionsPerSFNPeriod
+RadioFrequencyBandFDD3
+E-PUCH-Info/modeSpecificInfo/tdd128/retransTimerForSchedInfo
+E-PUCH-Info-TDD128/retransTimerForSchedInfo
+ReceivedMessageType
+RLC-BuffersPayload
+SCCPCH-ChannelisationCode-VHCR
+SFN-SFN-Drift
+SIBSb-TypeAndTag
+SIB-Type
+SIB-TypeAndTag
+TDD768-PICH-CCode
+TDD-PRACH-CCode-LCR-r4
+TimerPoll
+TimerPollProhibit
+TimerStatusProhibit
+TrafficVolumeThreshold
+U-RNTI-Group
+UL-DCCH-MessageType
+UL-TS-ChannelisationCode
+UL-TS-ChannelisationCode-VHCR
+MinimumTEBS-threshold
+UE-DTX-Cycle2-2ms-Secondary
+SIB-Type2
+WLANThreshBackhaulRate
+
+#.EXPORTS
+InterRATHandoverInfo
+InterRATHandoverInfo_PDU
+ToTargetRNC-Container_PDU
+TargetRNC-ToSourceRNC-Container_PDU
+HandoverToUTRANCommand_PDU
+SysInfoType1_PDU
+SysInfoType2_PDU
+SysInfoType3_PDU
+SysInfoType7_PDU
+SysInfoType12_PDU
+MasterInformationBlock_PDU
+
+#.OMIT_ASSIGNMENT
+# Omit System-Information-Container for now it messes up the
+# MasterInformationBlock @si.mib
+# :
+# for some reason
+UE-RadioAccessCapability-v890ext
+UE-RadioAccessCapability-va60ext
+UL-PhysChCapabilityFDD-r6
+GSMCellGroupingList
+UE-Positioning-GANSS-Data
+GANSSDecipheringKeys
+GSM-CellID
+RRCConnectionRelease-CCCH-va40ext-IEs
+#.END
+
+#.PDU
+
+DL-DCCH-Message @dl.dcch
+UL-DCCH-Message @ul.dcch
+DL-CCCH-Message @dl.ccch
+UL-CCCH-Message @ul.ccch
+PCCH-Message @pcch
+DL-SHCCH-Message @dl.shcch
+UL-SHCCH-Message @ul.shcch
+BCCH-FACH-Message @bcch.fach
+BCCH-BCH-Message @bcch.bch
+BCCH-BCH2-Message @bcch.bch2
+MCCH-Message @mcch
+MSCH-Message @msch
+SystemInformation-BCH @sysinfo
+SystemInformation2-BCH @sysinfo2
+System-Information-Container @sysinfo.cont
+MasterInformationBlock @si.mib
+SysInfoType1 @si.sib1
+SysInfoType2 @si.sib2
+SysInfoType3 @si.sib3
+SysInfoType4 @si.sib4
+SysInfoType5 @si.sib5
+SysInfoType5bis @si.sib5bis
+SysInfoType6 @si.sib6
+SysInfoType7 @si.sib7
+SysInfoType8 @si.sib8
+SysInfoType9 @si.sib9
+SysInfoType10 @si.sib10
+SysInfoType11 @si.sib11
+SysInfoType11bis @si.sib11bis
+SysInfoType11ter @si.sib11ter
+SysInfoType12 @si.sib12
+SysInfoType13 @si.sib13
+SysInfoType13-1 @si.sib13-1
+SysInfoType13-2 @si.sib13-2
+SysInfoType13-3 @si.sib13-3
+SysInfoType13-4 @si.sib13-4
+SysInfoType14 @si.sib14
+SysInfoType15 @si.sib15
+SysInfoType15bis @si.sib15bis
+SysInfoType15-1 @si.sib15-1
+SysInfoType15-1bis @si.sib15-1bis
+SysInfoType15-1ter @si.sib15-1ter
+SysInfoType15-2 @si.sib15-2
+SysInfoType15-2bis @si.sib15-2bis
+SysInfoType15-2ter @si.sib15-2ter
+SysInfoType15-3 @si.sib15-3
+SysInfoType15-3bis @si.sib15-3bis
+SysInfoType15-4 @si.sib15-4
+SysInfoType15-5 @si.sib15-5
+SysInfoType15-6 @si.sib15-6
+SysInfoType15-7 @si.sib15-7
+SysInfoType15-8 @si.sib15-8
+SysInfoType16 @si.sib16
+SysInfoType17 @si.sib17
+SysInfoType18 @si.sib18
+SysInfoType19 @si.sib19
+SysInfoType20 @si.sib20
+SysInfoType21 @si.sib21
+SysInfoType22 @si.sib22
+SysInfoType23 @si.sib23
+SysInfoType24 @si.sib24
+SysInfoType25 @si.sib25
+SysInfoTypeSB1 @si.sb1
+SysInfoTypeSB2 @si.sb2
+SysInfoTypeSB3 @si.sb3
+HandoverToUTRANCommand @irat.ho_to_utran_cmd
+InterRATHandoverInfo @irat.irat_ho_info
+UE-RadioAccessCapabilityInfo @ue_radio_access_cap_info
+ToTargetRNC-Container @s_to_trnc_cont
+TargetRNC-ToSourceRNC-Container @t_to_srnc_cont
+
+#.FIELD_RENAME
+HandoverFromUTRANCommand-GSM-r3-IEs/gsm-message/gsm-MessageList gsm-MessageList-r3
+HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/gsm-MessageList gsm-MessageList-r6
+HandoverFromUTRANFailure/interRATMessage/gsm/gsm-MessageList gsm-MessageList-gsm
+
+HandoverFromUTRANCommand-GSM-r3-IEs/gsm-message/single-GSM-Message single-GSM-Message-r3
+HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Message-r6
+
+#.END
+
+#.FN_BODY NAS-Message VAL_PTR = &nas_message_tvb
+ tvbuff_t *nas_message_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (nas_message_tvb)
+ call_dissector(gsm_a_dtap_handle,nas_message_tvb,%(ACTX)s->pinfo, tree);
+
+#.FN_BODY InterRATHandoverInfo/ue-CapabilityContainer/present VAL_PTR = &ue_radio_access_cap_info_tvb
+ tvbuff_t *ue_radio_access_cap_info_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (ue_radio_access_cap_info_tvb)
+ call_dissector(rrc_ue_radio_access_cap_info_handle,ue_radio_access_cap_info_tvb,%(ACTX)s->pinfo, tree);
+
+#.END
+
+#.FN_BODY ActiveSetUpdate
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdate");
+%(DEFAULT_BODY)s
+
+#.FN_BODY ActiveSetUpdateComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdateComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY ActiveSetUpdateFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdateFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY AssistanceDataDelivery
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "AssistanceDataDelivery");
+%(DEFAULT_BODY)s
+
+#.FN_BODY CellChangeOrderFromUTRAN
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CellChangeOrderFromUTRAN");
+%(DEFAULT_BODY)s
+
+#.FN_BODY CellChangeOrderFromUTRANFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CellChangeOrderFromUTRANFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY CellUpdate
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdate");
+%(DEFAULT_BODY)s
+
+#.FN_BODY CellUpdateFDD-r11
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateFDD-r11");
+%(DEFAULT_BODY)s
+
+#.FN_BODY CellUpdateConfirm-CCCH
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm-CCCH");
+%(DEFAULT_BODY)s
+
+#.FN_BODY CellUpdateConfirm
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm");
+%(DEFAULT_BODY)s
+
+#.FN_BODY CounterCheck
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheck");
+%(DEFAULT_BODY)s
+
+#.FN_BODY CounterCheckResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse");
+%(DEFAULT_BODY)s
+
+#.FN_BODY DownlinkDirectTransfer
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "DownlinkDirectTransfer");
+%(DEFAULT_BODY)s
+
+#.FN_BODY ETWSPrimaryNotificationWithSecurity
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "ETWSPrimaryNotificationWithSecurity");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HandoverToUTRANComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverToUTRANComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY InitialDirectTransfer
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "InitialDirectTransfer");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HandoverFromUTRANCommand-EUTRA
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-EUTRA");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HandoverFromUTRANCommand-GERANIu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-GERANIu");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HandoverFromUTRANCommand-GSM
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-GSM");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HandoverFromUTRANCommand-CDMA2000
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-CDMA2000");
+%(DEFAULT_BODY)s
+
+#.FN_BODY HandoverFromUTRANFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY LoggingMeasurementConfiguration
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "LoggingMeasurementConfiguration");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSAccessInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSAccessInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSCommonPTMRBInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCommonPTMRBInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSCurrentCellPTMRBInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCurrentCellPTMRBInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSGeneralInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSGeneralInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSModificationRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSModificationRequest");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSModifiedServicesInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSModifiedServicesInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSNeighbouringCellPTMRBInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSNeighbouringCellPTMRBInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSSchedulingInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSSchedulingInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MBMSUnmodifiedServicesInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSUnmodifiedServicesInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MeasurementControl
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementControl");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MeasurementControlFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementControlFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY MeasurementReport
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport");
+%(DEFAULT_BODY)s
+
+#.FN_BODY PagingType1
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "PagingType1");
+%(DEFAULT_BODY)s
+
+#.FN_BODY PagingType2
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "PagingType2");
+%(DEFAULT_BODY)s
+
+#.FN_BODY PhysicalChannelReconfiguration
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfiguration");
+%(DEFAULT_BODY)s
+
+#.FN_BODY PhysicalChannelReconfigurationComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfigurationComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY PhysicalChannelReconfigurationFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfigurationFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY PhysicalSharedChannelAllocation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalSharedChannelAllocation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY PUSCHCapacityRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "PUSCHCapacityRequest");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerReconfiguration
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfiguration");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerReconfigurationComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfigurationComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerReconfigurationFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfigurationFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerRelease
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerRelease");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerReleaseComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReleaseComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerReleaseFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReleaseFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerSetup
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetup");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerSetupComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetupComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RadioBearerSetupFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetupFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RRCConnectionReject
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RRCConnectionRelease
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RRCConnectionRelease-CCCH
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease-CCCH");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RRCConnectionReleaseComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReleaseComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RRCConnectionRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RRCConnectionSetup
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RRCConnectionSetupComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RRCStatus
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCStatus");
+%(DEFAULT_BODY)s
+
+#.FN_BODY SecurityModeCommand
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand");
+%(DEFAULT_BODY)s
+
+#.FN_BODY SecurityModeComplete
+rrc_ciphering_info * c_inf ;
+fp_info *fpinf ;
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete");
+
+%(DEFAULT_BODY)s
+
+ fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
+ if(fpinf && ((c_inf = (rrc_ciphering_info *)g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id))) != NULL) ){
+ c_inf->setup_frame = actx->pinfo->num;
+ }
+
+
+#.FN_BODY SecurityModeFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY SignallingConnectionRelease
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SignallingConnectionRelease");
+%(DEFAULT_BODY)s
+
+#.FN_BODY SignallingConnectionReleaseIndication
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SignallingConnectionReleaseIndication");
+%(DEFAULT_BODY)s
+
+#.FN_BODY SystemInformation-BCH
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-BCH");
+%(DEFAULT_BODY)s
+
+#.FN_BODY SystemInformation-FACH
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-FACH");
+%(DEFAULT_BODY)s
+
+#.FN_BODY SystemInformationChangeIndication
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationChangeIndication");
+%(DEFAULT_BODY)s
+
+#.FN_BODY TransportChannelReconfiguration
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfiguration");
+%(DEFAULT_BODY)s
+
+#.FN_BODY TransportChannelReconfigurationComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfigurationComplete");
+%(DEFAULT_BODY)s
+
+#.FN_BODY TransportChannelReconfigurationFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfigurationFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY TransportFormatCombinationControl
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportFormatCombinationControl");
+%(DEFAULT_BODY)s
+
+#.FN_BODY TransportFormatCombinationControlFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportFormatCombinationControlFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UECapabilityEnquiry
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UECapabilityInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UECapabilityInformationConfirm
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformationConfirm");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UEInformationRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationRequest");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UEInformationResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationResponse");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UplinkDirectTransfer
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UplinkDirectTransfer");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UplinkPhysicalChannelControl
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UplinkPhysicalChannelControl");
+%(DEFAULT_BODY)s
+
+#.FN_BODY URAUpdate
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdate");
+%(DEFAULT_BODY)s
+
+#.FN_BODY URAUpdateConfirm
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdateConfirm");
+%(DEFAULT_BODY)s
+
+#.FN_BODY URAUpdateConfirm-CCCH
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdateConfirm-CCCH");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UTRANMobilityInformation
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformation");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UTRANMobilityInformationConfirm
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformationConfirm");
+%(DEFAULT_BODY)s
+
+#.FN_BODY UTRANMobilityInformationFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformationFailure");
+%(DEFAULT_BODY)s
+
+#.FN_BODY TargetRNC-ToSourceRNC-Container/dL-DCCHmessage VAL_PTR = &dl_dcch_message_tvb
+ tvbuff_t *dl_dcch_message_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (dl_dcch_message_tvb)
+ call_dissector(rrc_dl_dcch_handle,dl_dcch_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
+
+#.FN_BODY GSM-MessageList/_item VAL_PTR = &gsm_messagelist_tvb
+ tvbuff_t *gsm_messagelist_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (gsm_messagelist_tvb)
+ call_dissector(gsm_a_dtap_handle,gsm_messagelist_tvb,actx->pinfo, tree);
+
+#.FN_BODY HandoverFromUTRANCommand-GSM-r3-IEs/gsm-message/single-GSM-Message single-GSM-Message-r3
+ tvbuff_t *gsm_message_tvb=NULL;
+ guint bits_remaining, whole_octets_remaining;
+
+%(DEFAULT_BODY)s
+
+ bits_remaining = 8*tvb_reported_length(tvb) - offset;
+ whole_octets_remaining = bits_remaining / 8;
+
+ gsm_message_tvb = tvb_new_octet_aligned(tvb, offset, 8*whole_octets_remaining);
+
+ if (gsm_message_tvb) {
+ add_new_data_source(actx->pinfo,gsm_message_tvb,"GSM Message(aligned)");
+ call_dissector(gsm_a_dtap_handle,gsm_message_tvb,actx->pinfo, tree);
+ }
+#.FN_BODY HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Message-r6
+ tvbuff_t *gsm_message_tvb=NULL;
+ guint bits_remaining, whole_octets_remaining;
+
+%(DEFAULT_BODY)s
+
+ bits_remaining = 8*tvb_reported_length(tvb) - offset;
+ whole_octets_remaining = bits_remaining / 8;
+
+ gsm_message_tvb = tvb_new_octet_aligned(tvb, offset, 8*whole_octets_remaining);
+
+ if (gsm_message_tvb) {
+ add_new_data_source(actx->pinfo,gsm_message_tvb,"GSM Message(aligned)");
+ call_dissector(gsm_a_dtap_handle,gsm_message_tvb,actx->pinfo, tree);
+ }
+
+#.FN_BODY GERAN-SystemInfoBlock VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ guint8 byte = tvb_get_guint8(parameter_tvb, 0);
+ if (byte == 0x06) {
+ if (gsm_a_dtap_handle) {
+ call_dissector(gsm_a_dtap_handle, parameter_tvb, actx->pinfo, tree);
+ }
+ } else {
+ if (gsm_rlcmac_dl_handle) {
+ call_dissector(gsm_rlcmac_dl_handle, parameter_tvb, actx->pinfo, tree);
+ }
+ }
+ }
+
+#.FN_BODY GSM-Classmark2 VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ de_ms_cm_2(parameter_tvb, tree, actx->pinfo, 2, tvb_get_guint8(parameter_tvb,1), NULL, 0);
+ }
+
+#.FN_BODY GSM-Classmark3 VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ de_ms_cm_3(parameter_tvb, tree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0);
+ }
+
+#.FN_BODY GSM-MS-RadioAccessCapability VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ de_gmm_ms_radio_acc_cap(parameter_tvb, tree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0);
+ }
+
+#.FN_BODY InterRATHandoverInfoWithInterRATCapabilities-r3-IEs/interRATHandoverInfo VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_rrc_InterRATHandoverInfo_PDU(parameter_tvb, actx->pinfo, tree, NULL);
+ }
+
+#.FN_BODY EUTRA-RadioAccessCapability/ue-EUTRA-Capability VAL_PTR = &ue_eutra_cap_tvb
+ tvbuff_t *ue_eutra_cap_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (ue_eutra_cap_tvb && lte_rrc_ue_eutra_cap_handle)
+ call_dissector(lte_rrc_ue_eutra_cap_handle, ue_eutra_cap_tvb, actx->pinfo, tree);
+
+#.FN_BODY HandoverFromUTRANCommand-EUTRA-r8-IEs/eutra-Message VAL_PTR = &eutra_message_tvb
+ tvbuff_t *eutra_message_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (eutra_message_tvb && lte_rrc_dl_dcch_handle)
+ call_dissector(lte_rrc_dl_dcch_handle, eutra_message_tvb, actx->pinfo, tree);
+
+#.FN_BODY HandoverFromUTRANCommand-EUTRA-r11-IEs/eutra-Message VAL_PTR = &eutra_message_tvb
+ tvbuff_t *eutra_message_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (eutra_message_tvb && lte_rrc_dl_dcch_handle)
+ call_dissector(lte_rrc_dl_dcch_handle, eutra_message_tvb, actx->pinfo, tree);
+
+#.FN_BODY HandoverFromUtranFailure-v860ext-IEs/eutra-Message VAL_PTR = &eutra_message_tvb
+ tvbuff_t *eutra_message_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (eutra_message_tvb && lte_rrc_dl_dcch_handle)
+ call_dissector(lte_rrc_dl_dcch_handle, eutra_message_tvb, actx->pinfo, tree);
+
+#.FN_BODY MultiModeRAT-Capability-v860ext/eutraFeatureGroupIndicators VAL_PTR = &eutraFeatureGroupIndicators_tvb
+ tvbuff_t *eutraFeatureGroupIndicators_tvb=NULL;
+%(DEFAULT_BODY)s
+ if(eutraFeatureGroupIndicators_tvb){
+ /* Dissect eutraFeatureGroupIndicators */
+ proto_tree *subtree;
+ gint curr_bit_offset = 0;
+ subtree = proto_item_add_subtree(actx->created_item, ett_rrc_eutraFeatureGroupIndicators);
+ proto_tree_add_bits_item(subtree, hf_rrc_eutra_feat_group_ind_1, eutraFeatureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
+ curr_bit_offset++;
+ proto_tree_add_bits_item(subtree, hf_rrc_eutra_feat_group_ind_2, eutraFeatureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
+ curr_bit_offset++;
+ proto_tree_add_bits_item(subtree, hf_rrc_eutra_feat_group_ind_3, eutraFeatureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
+ curr_bit_offset++;
+ proto_tree_add_bits_item(subtree, hf_rrc_eutra_feat_group_ind_4, eutraFeatureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
+ curr_bit_offset++;
+}
+
+#.FN_BODY RSR-VCC-Info/ims-Information VAL_PTR = &imsInformation_tvb
+ tvbuff_t *imsInformation_tvb=NULL;
+%(DEFAULT_BODY)s
+ if(imsInformation_tvb){
+ /* Dissect ims-Information
+ Decoding specified in TS 124 237 V11.4.0 Annex D.5.3.3 ATGW transfer details
+ */
+ proto_tree *subtree;
+ gint curr_offset = 0;
+ guint32 atgw_trans_det_cont;
+ subtree = proto_item_add_subtree(actx->created_item, ett_rrc_ims_info);
+ proto_tree_add_item_ret_uint(subtree, hf_rrc_ims_info_atgw_trans_det_cont_type, imsInformation_tvb, curr_offset, 1, ENC_BIG_ENDIAN, &atgw_trans_det_cont);
+ curr_offset++;
+ switch (atgw_trans_det_cont & 0x03) {
+ case 0:
+ proto_tree_add_item(subtree, hf_rrc_ims_info_atgw_udp_port, imsInformation_tvb, curr_offset, 2, ENC_BIG_ENDIAN);
+ curr_offset+=2;
+ proto_tree_add_item(subtree, hf_rrc_ims_info_atgw_ipv4, imsInformation_tvb, curr_offset, 4, ENC_BIG_ENDIAN);
+ break;
+ case 1:
+ proto_tree_add_item(subtree, hf_rrc_ims_info_atgw_udp_port, imsInformation_tvb, curr_offset, 2, ENC_BIG_ENDIAN);
+ curr_offset+=2;
+ proto_tree_add_item(subtree, hf_rrc_ims_info_atgw_ipv6, imsInformation_tvb, curr_offset, 16, ENC_NA);
+ break;
+ default:
+ break;
+ }
+}
+
+#.TYPE_ATTR
+HNBName TYPE=FT_STRING DISPLAY=STR_UNICODE
+
+#.FN_BODY HNBName VAL_PTR = &hnbname_tvb HF_INDEX = -1
+ tvbuff_t *hnbname_tvb = NULL;
+
+%(DEFAULT_BODY)s
+ actx->created_item = proto_tree_add_item(tree, hf_index, hnbname_tvb, 0, -1, ENC_UTF_8|ENC_NA);
+
+#.FN_BODY CN-DomainIdentity VAL_PTR = &nas_sys_info_gsm_map
+ guint32 nas_sys_info_gsm_map;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "(%%s)", val_to_str_const(nas_sys_info_gsm_map,rrc_CN_DomainIdentity_vals,"Unknown"));
+ actx->private_data = GUINT_TO_POINTER(nas_sys_info_gsm_map+1);
+
+#.FN_BODY CN-InformationInfo/cn-CommonGSM-MAP-NAS-SysInfo
+ actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1);
+%(DEFAULT_BODY)s
+
+#.FN_BODY CN-InformationInfo-r6/cn-CommonGSM-MAP-NAS-SysInfo
+ actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1);
+%(DEFAULT_BODY)s
+
+#.FN_BODY CN-InformationInfoFull/cn-CommonGSM-MAP-NAS-SysInfo
+ actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1);
+%(DEFAULT_BODY)s
+
+#.FN_BODY SysInfoType1/cn-CommonGSM-MAP-NAS-SysInfo
+ actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1);
+%(DEFAULT_BODY)s
+
+#.FN_BODY NAS-SystemInformationGSM-MAP VAL_PTR = &nas_sys_info_gsm_map_tvb
+ tvbuff_t *nas_sys_info_gsm_map_tvb = NULL;
+ guint32 length;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ length = tvb_reported_length(nas_sys_info_gsm_map_tvb);
+ if (length) {
+ if (actx->private_data) {
+ switch (GPOINTER_TO_UINT(actx->private_data)-1) {
+ case RRC_NAS_SYS_INFO_CN_COMMON:
+ subtree = proto_tree_add_subtree(tree, nas_sys_info_gsm_map_tvb, 0, length,
+ ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo, NULL, "CN Common GSM-MAP NAS system information");
+ de_cn_common_gsm_map_nas_sys_info(nas_sys_info_gsm_map_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
+ break;
+ case RRC_NAS_SYS_INFO_CS:
+ subtree = proto_tree_add_subtree(tree, nas_sys_info_gsm_map_tvb, 0, length,
+ ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo, NULL, "CS domain specific system information");
+ de_cs_domain_spec_sys_info(nas_sys_info_gsm_map_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
+ break;
+ case RRC_NAS_SYS_INFO_PS:
+ subtree = proto_tree_add_subtree(tree, nas_sys_info_gsm_map_tvb, 0, length,
+ ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo, NULL, "PS domain specific system information");
+ de_ps_domain_spec_sys_info(nas_sys_info_gsm_map_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
+ break;
+ default:
+ break;
+ }
+ actx->private_data = NULL;
+ }
+ }
+
+/*Here we try to figure out which HS-DSCH channels are multiplexed*/
+#.FN_BODY DL-TransportChannelType-r5 VAL_PTR = &type
+
+ guint *flowd_p;
+ guint *cur_val=NULL;
+ struct rrc_info *rrcinf;
+
+ %(DEFAULT_BODY)s
+
+ /*TODO: This should probably be done better*/
+ if(type == 4){ /*If this is type HS-DSCH*/
+ num_chans_per_flow[flowd]++;
+
+ if(num_chans_per_flow[flowd] > 1 ){
+ rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0);
+ if((rrcinf == NULL) || (rrcinf->hrnti[actx->pinfo->fd->subnum] == 0)){
+ expert_add_info(actx->pinfo, actx->created_item, &ei_rrc_no_hrnti);
+ }
+ else{
+ /*If it doesn't exists, insert it*/
+ if( (cur_val=(gint *)g_tree_lookup(hsdsch_muxed_flows, GUINT_TO_POINTER((guint)rrcinf->hrnti[actx->pinfo->fd->subnum]))) == NULL ){
+
+ flowd_p = (guint*)g_malloc0(sizeof(gint));
+ *flowd_p = (1U<<flowd); /*Set the bit to mark it as true*/
+ g_tree_insert(hsdsch_muxed_flows, GUINT_TO_POINTER((guint)rrcinf->hrnti[actx->pinfo->fd->subnum]), flowd_p);
+
+ }else{
+ *cur_val = (1U<<flowd) | *cur_val;
+
+ }
+ }
+
+ }
+
+ }
+/*Here we try to figure out which HS-DSCH channels are multiplexed*/
+#.FN_BODY DL-TransportChannelType-r7 VAL_PTR = &type
+
+ guint *flowd_p;
+ guint *cur_val=NULL;
+ struct rrc_info *rrcinf;
+
+ %(DEFAULT_BODY)s
+
+ /*TODO: This should probably be done better*/
+ if(type == 4){ /*If this is type HS-DSCH*/
+ num_chans_per_flow[flowd]++;
+
+
+ if(num_chans_per_flow[flowd] > 1 ){
+ rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0);
+ if((rrcinf == NULL) || (rrcinf->hrnti[actx->pinfo->fd->subnum] == 0)){
+ expert_add_info(actx->pinfo, actx->created_item, &ei_rrc_no_hrnti);
+ }
+ else{
+ /*If it doesn't exists, insert it*/
+ if( (cur_val=(gint *)g_tree_lookup(hsdsch_muxed_flows, GUINT_TO_POINTER((guint)rrcinf->hrnti[actx->pinfo->fd->subnum]))) == NULL ){
+
+ flowd_p = (guint*)g_malloc0(sizeof(gint));
+ *flowd_p = (1U<<flowd); /* Set the bit to mark it as true*/
+ g_tree_insert(hsdsch_muxed_flows, GUINT_TO_POINTER((guint)rrcinf->hrnti[actx->pinfo->fd->subnum]), flowd_p);
+
+ }else{
+ *cur_val = (1U<<flowd) | *cur_val;
+
+ }
+ }
+
+ }
+
+ }
+
+#.FN_BODY MAC-d-FlowIdentity VAL_PTR = &flowd
+%(DEFAULT_BODY)s
+
+#.FN_BODY H-RNTI VAL_PTR = &hrnti_tvb
+ tvbuff_t *hrnti_tvb;
+ struct rrc_info *rrcinf;
+%(DEFAULT_BODY)s
+
+#.FN_FTR H-RNTI
+ rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0);
+ if (!rrcinf) {
+ rrcinf = wmem_new0(wmem_file_scope(), struct rrc_info);
+ p_add_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0, rrcinf);
+ }
+ rrcinf->hrnti[actx->pinfo->fd->subnum] = tvb_get_ntohs(hrnti_tvb, 0);
+
+#.FN_BODY START-Value VAL_PTR = &start_val
+ tvbuff_t * start_val;
+ fp_info *fpinf;
+ rrc_ciphering_info * c_inf;
+ int i;
+ guint32 * start;
+
+%(DEFAULT_BODY)s
+
+ /*We base this map on communication context from fp*/
+ fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
+
+ /*If no info found, skip all this*/
+ if(fpinf == NULL){
+ return offset;
+ }
+ /*Retrieve the start value for the two ciphering domains*/
+ if (actx->private_data) {
+ switch(GPOINTER_TO_UINT(actx->private_data)-1){
+ case RRC_NAS_SYS_INFO_CS:
+ /*
+ g_warning("Not implemented");
+ */
+ break;
+ case RRC_NAS_SYS_INFO_PS:
+
+ /*Find the entry for the communication context (taken from FP)*/
+ if( (c_inf =(rrc_ciphering_info *)g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id))) == NULL ){
+ c_inf = g_new0(rrc_ciphering_info,1);
+
+ /*Initiate tree with START_PS values.*/
+ if(!c_inf->start_ps)
+ c_inf->start_ps = g_tree_new_full(rrc_key_cmp,
+ NULL,rrc_free_key,rrc_free_value);
+
+ /*Clear and initialize seq_no matrix*/
+ for(i = 0; i< 31; i++){
+ c_inf->seq_no[i][0] = -1;
+ c_inf->seq_no[i][1] = -1;
+ }
+ g_tree_insert(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id), c_inf);
+ }
+
+ /*Retrieve and store the value*/
+ start = g_new(guint32,1);
+ *start = tvb_get_bits32(start_val,0,20,ENC_BIG_ENDIAN);
+ if(c_inf && c_inf->start_ps)
+ /*Insert the value based on current frame num since this might vary over time*/
+ g_tree_insert(c_inf->start_ps, GUINT_TO_POINTER(actx->pinfo->num), start);
+
+ break;
+ default:
+ break;
+ }
+ actx->private_data = NULL;
+ }
+
+#.FN_BODY RB-ActivationTimeInfo
+ fp_info *fpinf;
+ rrc_ciphering_info * c_inf;
+
+
+
+ fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
+
+%(DEFAULT_BODY)s
+
+ /*If no info found, skip all this*/
+ if(fpinf == NULL){
+ return offset;
+ }
+ /*This should not happen*/
+ if( (c_inf = (rrc_ciphering_info *)g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id))) == NULL ){
+ return offset;
+ }
+ /*Set the ciphering activation frame information*/
+ c_inf->seq_no[rbid][fpinf->is_uplink] = activation_frame;
+
+
+#.FN_BODY RB-Identity VAL_PTR = &rbid
+
+%(DEFAULT_BODY)s
+
+
+
+#.FN_BODY RLC-SequenceNumber VAL_PTR = &activation_frame
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY DL-DCCH-MessageType VAL_PTR = &msg_type
+%(DEFAULT_BODY)s
+
+#.FN_BODY DL-DCCH-Message
+%(DEFAULT_BODY)s
+
+#.FN_BODY HandoverToUTRANCommand
+%(DEFAULT_BODY)s
+
+#.FN_BODY UE-SecurityInformation
+ actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CS+1);
+%(DEFAULT_BODY)s
+
+#.FN_BODY UE-SecurityInformation2
+ actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_PS+1);
+%(DEFAULT_BODY)s
+
+#.FN_BODY ReleaseCause VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [cause=%%s]",
+ val_to_str(value, rrc_ReleaseCause_vals, "Unknown"));
+
+#.END
+
diff --git a/epan/dissectors/asn1/rrlp/CMakeLists.txt b/epan/dissectors/asn1/rrlp/CMakeLists.txt
new file mode 100644
index 0000000000..f7f27a69a8
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/CMakeLists.txt
@@ -0,0 +1,50 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME rrlp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+ ../gsm_map/MAP-ExtensionDataTypes.asn
+ ../gsm_map/MAP-LCS-DataTypes.asn
+)
+
+set( ASN_FILE_LIST
+ RRLP-Messages.asn
+ RRLP-Components.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/rrlp/Makefile.am b/epan/dissectors/asn1/rrlp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/rrlp/Makefile.common b/epan/dissectors/asn1/rrlp/Makefile.common
new file mode 100644
index 0000000000..a54282c285
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = rrlp
+
+EXT_ASN_FILE_LIST = \
+ ../gsm_map/MAP-ExtensionDataTypes.asn \
+ ../gsm_map/MAP-LCS-DataTypes.asn
+
+ASN_FILE_LIST = \
+ RRLP-Messages.asn \
+ RRLP-Components.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/rrlp/Makefile.nmake b/epan/dissectors/asn1/rrlp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/rrlp/RRLP-Components.asn b/epan/dissectors/asn1/rrlp/RRLP-Components.asn
new file mode 100644
index 0000000000..11b13eeea6
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/RRLP-Components.asn
@@ -0,0 +1,2413 @@
+-- RRLP-Components.asn
+-- Taken from 3GPP TS 44.031 V11.0.0 (2012-09)
+-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-b00.zip/44031-b00.doc
+--
+-- 4 Components
+-- 5 Elements of Components
+--
+
+RRLP-Components
+-- { RRLP-Components }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Ext-GeographicalInformation, VelocityEstimate
+FROM
+ MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version10 (10)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version10 (10)}
+;
+
+-- Measurement Position request component
+MsrPosition-Req ::= SEQUENCE {
+ positionInstruct PositionInstruct,
+ referenceAssistData ReferenceAssistData OPTIONAL,
+ msrAssistData MsrAssistData OPTIONAL,
+ systemInfoAssistData SystemInfoAssistData OPTIONAL,
+ gps-AssistData GPS-AssistData OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release 98 extension element
+rel98-MsrPosition-Req-extension Rel98-MsrPosition-Req-Extension OPTIONAL,
+ -- Release 5 extension element
+rel5-MsrPosition-Req-extension Rel5-MsrPosition-Req-Extension OPTIONAL,
+ -- Release 7 extension element
+rel7-MsrPosition-Req-extension Rel7-MsrPosition-Req-Extension OPTIONAL
+}
+
+-- Measurement Position response component
+MsrPosition-Rsp ::= SEQUENCE {
+ multipleSets MultipleSets OPTIONAL,
+ referenceIdentity ReferenceIdentity OPTIONAL,
+ otd-MeasureInfo OTD-MeasureInfo OPTIONAL,
+ locationInfo LocationInfo OPTIONAL,
+ gps-MeasureInfo GPS-MeasureInfo OPTIONAL,
+ locationError LocationError OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extension here
+ rel-98-MsrPosition-Rsp-Extension
+ Rel-98-MsrPosition-Rsp-Extension OPTIONAL,
+ rel-5-MsrPosition-Rsp-Extension
+ Rel-5-MsrPosition-Rsp-Extension OPTIONAL,
+ -- When RRLP pseudo-segmentation is used, rel-5-MsrPosition-Rsp-Extension
+ -- and other possible future extensions should be the ones included in
+ -- the 2nd MsrPosition-Rsp component.
+ rel-7-MsrPosition-Rsp-Extension
+ Rel-7-MsrPosition-Rsp-Extension OPTIONAL
+}
+
+-- Assistance Data component
+AssistanceData ::= SEQUENCE {
+ referenceAssistData ReferenceAssistData OPTIONAL,
+ msrAssistData MsrAssistData OPTIONAL,
+ systemInfoAssistData SystemInfoAssistData OPTIONAL,
+ gps-AssistData GPS-AssistData OPTIONAL,
+ moreAssDataToBeSent MoreAssDataToBeSent OPTIONAL, -- If not present, interpret as only
+ -- Assistance Data component used to
+ -- deliver entire set of assistance
+ -- data.
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extension here
+ rel98-AssistanceData-Extension Rel98-AssistanceData-Extension OPTIONAL,
+ rel5-AssistanceData-Extension Rel5-AssistanceData-Extension OPTIONAL,
+ rel7-AssistanceData-Extension Rel7-AssistanceData-Extension OPTIONAL
+}
+
+-- Protocol Error component
+ProtocolError ::= SEQUENCE {
+ errorCause ErrorCodes,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extensions here
+ rel-5-ProtocolError-Extension Rel-5-ProtocolError-Extension OPTIONAL
+}
+
+-- Positioning Capability request component
+PosCapability-Req ::= SEQUENCE {
+ extended-reference Extended-reference,
+ gANSSPositionMethods GANSSPositionMethods OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+}
+
+-- Positioning Capability response component
+PosCapability-Rsp ::= SEQUENCE {
+ extended-reference Extended-reference,
+ posCapabilities PosCapabilities,
+
+-- assistanceSupported shall be included if and only if any of the assistance data is supported
+ assistanceSupported AssistanceSupported OPTIONAL,
+ assistanceNeeded AssistanceNeeded OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+}
+
+-- Position instructions
+PositionInstruct ::= SEQUENCE {
+ -- Method type
+ methodType MethodType,
+ positionMethod PositionMethod,
+ measureResponseTime MeasureResponseTime,
+ useMultipleSets UseMultipleSets,
+ environmentCharacter EnvironmentCharacter OPTIONAL
+}
+
+--
+MethodType ::= CHOICE {
+ msAssisted AccuracyOpt, -- accuracy is optional
+ msBased Accuracy, -- accuracy is mandatory
+ msBasedPref Accuracy, -- accuracy is mandatory
+ msAssistedPref Accuracy -- accuracy is mandatory
+}
+
+-- Accuracy of the location estimation
+AccuracyOpt ::= SEQUENCE {
+ accuracy Accuracy OPTIONAL
+}
+
+-- The values of this field are defined in 3GPP TS 23.032 (Uncertainty code)
+Accuracy ::= INTEGER (0..127)
+
+-- Position Method
+PositionMethod ::= ENUMERATED {
+ eotd (0),
+ gps (1),
+ gpsOrEOTD (2)
+}
+
+-- Measurement request response time
+MeasureResponseTime ::= INTEGER (0..7)
+
+-- useMultiple Sets, FFS!
+UseMultipleSets ::= ENUMERATED {
+ multipleSets (0), -- multiple sets are allowed
+ oneSet (1) -- sending of multiple is not allowed
+}
+
+-- Environment characterization
+EnvironmentCharacter ::= ENUMERATED {
+ badArea (0), -- bad urban or suburban, heavy multipath and NLOS
+ notBadArea (1), -- light multipath and NLOS
+ mixedArea (2), -- not defined or mixed environment
+ ...
+}
+
+-- E-OTD reference BTS for Assitance data IE
+ReferenceAssistData ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ btsPosition BTSPosition OPTIONAL
+}
+
+-- ellipsoid point and
+-- ellipsoid point with altitude and uncertainty ellipsoid shapes are supported
+BTSPosition ::= Ext-GeographicalInformation
+
+-- RF channel number of BCCH
+BCCHCarrier ::= INTEGER (0..1023)
+
+-- Base station Identity Code
+BSIC ::= INTEGER (0..63)
+
+-- Timeslot scheme
+TimeSlotScheme ::= ENUMERATED {
+ equalLength (0),
+ variousLength (1)
+}
+
+-- Time slot (modulo)
+ModuloTimeSlot ::= INTEGER (0..3)
+
+-- E-OTD measurement assistance data IE
+-- The total number of neighbors in this element (MsrAssistData)
+-- and in SystemInfoAssistData element (presented neighbors
+-- can be at a maximum 15!)
+MsrAssistData ::= SEQUENCE {
+ msrAssistList SeqOfMsrAssistBTS
+}
+SeqOfMsrAssistBTS ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS
+
+MsrAssistBTS ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ multiFrameOffset MultiFrameOffset, -- multiframe offset
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ roughRTD RoughRTD, -- rough RTD value
+
+ -- Location Calculation Assistance data is moved here
+ calcAssistanceBTS CalcAssistanceBTS OPTIONAL
+}
+
+-- Multiframe offset
+MultiFrameOffset ::= INTEGER (0..51)
+-- The Multiframe Offset value 51 shall not be encoded by the transmitting entity and
+-- shall be treated by the receiving entity as 0.
+
+-- Rough RTD value between one base station and reference BTS
+RoughRTD ::= INTEGER (0..1250)
+-- The RoughRTD value 1250 shall not be encoded by the transmitting entity and shall
+-- be treated by the receiving entity as 0.
+
+-- E-OTD Measurement assistance data for system information List IE
+-- The total number of base stations in this element (SystemInfoAssistData
+-- presented neighbors) and in MsrAssistData element can be at a maximum 15.
+SystemInfoAssistData ::= SEQUENCE {
+ systemInfoAssistList SeqOfSystemInfoAssistBTS
+}
+SeqOfSystemInfoAssistBTS::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS
+
+-- whether n.th is present or not ?
+SystemInfoAssistBTS ::= CHOICE {
+ notPresent NULL,
+ present AssistBTSData
+}
+
+-- Actual assistance data for system information base station
+AssistBTSData ::= SEQUENCE {
+ bsic BSIC, -- BSIC
+ multiFrameOffset MultiFrameOffset, -- multiframe offset
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ roughRTD RoughRTD, -- rough RTD value
+
+ -- Location Calculation Assistance data
+ calcAssistanceBTS CalcAssistanceBTS OPTIONAL
+}
+
+-- E-OTD Location calculation assistance data,
+-- CalcAssistanceBTS element is optional not subfields
+CalcAssistanceBTS ::= SEQUENCE {
+ fineRTD FineRTD, -- fine RTD value between base stations
+ referenceWGS84 ReferenceWGS84 -- reference coordinates
+}
+
+-- Coordinates of neighbour BTS, WGS-84 ellipsoid
+ReferenceWGS84 ::= SEQUENCE {
+ relativeNorth RelDistance, -- relative distance (south negative)
+ relativeEast RelDistance, -- relative distance (west negative)
+ -- Relative Altitude is not always known
+ relativeAlt RelativeAlt OPTIONAL -- relative altitude
+}
+
+-- Fine RTD value between this BTS and the reference BTS
+FineRTD ::= INTEGER (0..255)
+
+-- Relative north/east distance
+RelDistance ::= INTEGER (-200000..200000)
+
+-- Relative altitude
+RelativeAlt ::= INTEGER (-4000..4000)
+
+-- Measure position response IEs
+-- Reference Identity
+-- Multiple sets
+MultipleSets ::= SEQUENCE {
+ -- number of reference sets
+ nbrOfSets INTEGER (2..3),
+
+ -- This field actually tells the number of reference BTSs
+ nbrOfReferenceBTSs INTEGER (1..3),
+
+ -- This field is conditional and included optionally only if
+ -- nbrOfSets is 3 and number of reference BTSs is 2.
+ referenceRelation ReferenceRelation OPTIONAL
+}
+
+-- Relation between refence BTSs and sets
+ReferenceRelation ::= ENUMERATED {
+ secondBTSThirdSet (0), -- 1st BTS related to 1st and 2nd sets
+ secondBTSSecondSet (1), -- 1st BTS related to 1st and 3rd sets
+ firstBTSFirstSet (2) -- 1st BTS related to 1st set
+}
+
+-- Reference BTS Identity, this element contains number of
+-- BTSs told nbrOfReferenceBTSs field in Multiple sets element)
+ReferenceIdentity ::= SEQUENCE {
+ -- Reference BTS list
+ refBTSList SeqOfReferenceIdentityType
+}
+SeqOfReferenceIdentityType ::= SEQUENCE (SIZE(1..3)) OF ReferenceIdentityType
+
+-- Cell identity
+ReferenceIdentityType ::= CHOICE {
+ bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
+ ci CellID, -- Cell ID, LAC not needed
+ requestIndex RequestIndex, -- Index to Requested Neighbor List
+ systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of ref. identity
+ -- shall not be used by the MS unless it has received
+ -- the SystemInfoAssistData from the SMLC for this cell.
+ ciAndLAC CellIDAndLAC -- CI and LAC
+}
+
+BSICAndCarrier ::= SEQUENCE {
+ carrier BCCHCarrier,
+ bsic BSIC
+}
+
+RequestIndex ::= INTEGER (1..16)
+
+SystemInfoIndex ::= INTEGER (1..32)
+
+CellIDAndLAC ::= SEQUENCE {
+ referenceLAC LAC, -- Location area code
+ referenceCI CellID -- Cell identity
+}
+CellID ::= INTEGER (0..65535)
+LAC ::= INTEGER (0..65535)
+
+-- OTD-MeasureInfo
+OTD-MeasureInfo ::= SEQUENCE {
+ -- Measurement info elements, OTD-MsrElement is repeated number of times
+ -- told in nbrOfReferenceBTSs in MultipleSets, default value is 1
+ otdMsrFirstSets OTD-MsrElementFirst,
+
+ -- if more than one sets are present this element is repeated
+ -- NumberOfSets - 1 (-1 = first set)
+ otdMsrRestSets SeqOfOTD-MsrElementRest OPTIONAL
+}
+
+SeqOfOTD-MsrElementRest ::= SEQUENCE (SIZE(1..2)) OF OTD-MsrElementRest
+
+-- OTD measurent information for 1 set
+OTD-MsrElementFirst ::= SEQUENCE {
+ refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
+ referenceTimeSlot ModuloTimeSlot,
+ toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
+ stdResolution StdResolution,
+ taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
+
+ -- measured neighbors in OTD measurements
+ otd-FirstSetMsrs SeqOfOTD-FirstSetMsrs OPTIONAL
+}
+SeqOfOTD-FirstSetMsrs ::= SEQUENCE (SIZE(1..10)) OF OTD-FirstSetMsrs
+
+-- OTD measurent information 2 and 3 sets if exist
+OTD-MsrElementRest ::= SEQUENCE {
+ refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
+ referenceTimeSlot ModuloTimeSlot,
+ toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
+ stdResolution StdResolution,
+ taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
+
+ -- measured neighbors in OTD measurements
+ otd-MsrsOfOtherSets SeqOfOTD-MsrsOfOtherSets OPTIONAL
+}
+SeqOfOTD-MsrsOfOtherSets ::= SEQUENCE (SIZE(1..10)) OF OTD-MsrsOfOtherSets
+
+-- Standard deviation of the TOA measurements from the reference BTS
+TOA-MeasurementsOfRef ::= SEQUENCE {
+ refQuality RefQuality,
+ numOfMeasurements NumOfMeasurements
+}
+
+RefQuality ::= INTEGER (0..31) -- St Dev of TOA of reference as defined in annex
+NumOfMeasurements ::= INTEGER (0..7) -- No. of measurements for RefQuality as defined in annex
+StdResolution ::= INTEGER (0..3) -- Values of resolution are defined in annex
+
+OTD-FirstSetMsrs ::= OTD-MeasurementWithID
+
+-- Neighbour info in OTD measurements 0-10 times in TD measurement info
+OTD-MsrsOfOtherSets ::= CHOICE {
+ identityNotPresent OTD-Measurement,
+ identityPresent OTD-MeasurementWithID
+}
+
+-- For this OTD measurement identity is same as the identity of BTS
+-- in the first set with same sequence number
+OTD-Measurement ::= SEQUENCE {
+ nborTimeSlot ModuloTimeSlot,
+ eotdQuality EOTDQuality,
+ otdValue OTDValue
+}
+
+-- This measurement contains the BTS identity and measurement
+OTD-MeasurementWithID ::=SEQUENCE {
+ neighborIdentity NeighborIdentity,
+ nborTimeSlot ModuloTimeSlot,
+ eotdQuality EOTDQuality,
+ otdValue OTDValue
+}
+
+EOTDQuality ::= SEQUENCE {
+ nbrOfMeasurements INTEGER (0..7),
+ stdOfEOTD INTEGER (0..31)
+}
+
+NeighborIdentity ::= CHOICE {
+ bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
+ ci CellID, -- Cell ID, LAC not needed
+ multiFrameCarrier MultiFrameCarrier, -- MultiFrameOffest and BSIC
+ requestIndex RequestIndex, -- Index to Requested Neighbor List
+ systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of neighbour
+ -- identity shall not be used by the MS unless it has
+ -- received the SystemInfoAssistData from the SMLC for
+ -- this cell.
+ ciAndLAC CellIDAndLAC -- CI and LAC
+}
+
+-- Multiframe and carrier
+MultiFrameCarrier ::= SEQUENCE {
+ bcchCarrier BCCHCarrier,
+ multiFrameOffset MultiFrameOffset
+}
+
+-- OTD measurement value for neighbour
+OTDValue ::= INTEGER (0..39999)
+
+-- Location information IE
+LocationInfo ::= SEQUENCE {
+ refFrame INTEGER (0..65535), -- Reference Frame number
+ -- If refFrame is within (42432..65535), it shall be ignored by the receiver
+ -- in that case the MS should provide GPS TOW if available
+ gpsTOW INTEGER (0..14399999) OPTIONAL, -- GPS TOW
+ fixType FixType,
+ -- Note that applicable range for refFrame is 0 - 42431
+ -- Possible shapes carried in posEstimate are
+ -- ellipsoid point,
+ -- ellipsoid point with uncertainty circle
+ -- ellipsoid point with uncertainty ellipse
+ -- ellipsoid point with altitude and uncertainty ellipsoid
+ posEstimate Ext-GeographicalInformation
+}
+
+FixType ::= INTEGER {
+ twoDFix (0),
+ threeDFix (1)
+} (0..1)
+
+-- GPS-Measurement information
+GPS-MeasureInfo ::= SEQUENCE {
+ -- Measurement info elements
+ -- user has to make sure that in this element is number of elements
+ -- defined in reference BTS identity
+ gpsMsrSetList SeqOfGPS-MsrSetElement
+}
+SeqOfGPS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GPS-MsrSetElement
+
+-- OTD measurent information 1-3 times in message
+GPS-MsrSetElement ::= SEQUENCE {
+ refFrame INTEGER (0..65535) OPTIONAL, -- Reference Frame number
+ gpsTOW GPSTOW24b, -- GPS TOW
+ -- Note that applicable range for refFrame is 0 - 42431
+
+--N_SAT can be read from number of elements of gps-msrList
+
+ gps-msrList SeqOfGPS-MsrElement
+}
+
+-- 24 bit presentation for GPSTOW
+GPSTOW24b ::= INTEGER (0..14399999)
+
+-- measured elements in measurement parameters field
+SeqOfGPS-MsrElement ::= SEQUENCE (SIZE(1..16)) OF GPS-MsrElement
+
+GPS-MsrElement ::= SEQUENCE {
+ satelliteID SatelliteID, -- Satellite identifier
+ cNo INTEGER (0..63), -- carrier noise ratio
+ doppler INTEGER (-32768..32767), -- doppler, mulltiply by 0.2
+ wholeChips INTEGER (0..1022), -- whole value of the code phase measurement
+ fracChips INTEGER (0..1024), -- fractional value of the code phase measurement
+ -- a value of 1024 shall not be encoded by the sender
+ -- the receiver shall consider a value of 1024 to be
+ -- invalid data
+ mpathIndic MpathIndic, -- multipath indicator
+ pseuRangeRMSErr INTEGER (0..63) -- index
+}
+
+-- Multipath indicator
+MpathIndic ::= ENUMERATED {
+ notMeasured (0),
+ low (1),
+ medium (2),
+ high (3)
+}
+
+-- Location error IE
+LocationError ::= SEQUENCE {
+ locErrorReason LocErrorReason,
+ additionalAssistanceData AdditionalAssistanceData OPTIONAL,
+ ...
+}
+
+LocErrorReason ::= ENUMERATED {
+ unDefined (0),
+ notEnoughBTSs (1),
+ notEnoughSats (2),
+ eotdLocCalAssDataMissing (3),
+ eotdAssDataMissing (4),
+ gpsLocCalAssDataMissing (5),
+ gpsAssDataMissing (6),
+ methodNotSupported (7),
+ notProcessed (8),
+ refBTSForGPSNotServingBTS (9),
+ refBTSForEOTDNotServingBTS (10),
+ ...,
+ notEnoughGANSSSats (11),
+ ganssAssDataMissing (12),
+ refBTSForGANSSNotServingBTS (13)
+}
+
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 0
+
+
+-- defines additional assistance data needed for any new location attempt
+-- MS shall retain any assistance data already received
+AdditionalAssistanceData ::= SEQUENCE {
+ gpsAssistanceData GPSAssistanceData OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ ganssAssistanceData GANSSAssistanceData OPTIONAL
+}
+
+
+GPSAssistanceData ::= OCTET STRING (SIZE (1..maxGPSAssistanceData))
+-- GPSAssistanceData has identical structure and encoding to octets 3 to n of the
+-- GPS Assistance Data IE in 3GPP TS 49.031
+
+maxGPSAssistanceData INTEGER ::= 40
+
+GANSSAssistanceData ::= OCTET STRING (SIZE (1..maxGANSSAssistanceData))
+-- GANSSAssistanceData has identical structure and encoding to octets 3 to n of the
+-- GANSS Assistance Data IE in 3GPP TS 49.031
+
+maxGANSSAssistanceData INTEGER ::= 40
+
+-- Protocol Error Causes
+ErrorCodes ::= ENUMERATED {
+ unDefined (0),
+missingComponet (1),
+incorrectData (2),
+missingIEorComponentElement (3),
+messageTooShort (4),
+unknowReferenceNumber (5),
+...
+}
+
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 0
+
+-- GPS assistance data IE
+GPS-AssistData ::= SEQUENCE {
+ controlHeader ControlHeader
+}
+
+-- More Assistance Data To Be Sent IE
+-- More Assistance Data Components On the Way indication for delivery of an entire set of assistance
+-- data in multiple Assistance Data components.
+
+MoreAssDataToBeSent ::= ENUMERATED {
+ noMoreMessages (0), -- This is the only or last Assistance Data message used to deliver
+ -- the entire set of assistance data.
+ moreMessagesOnTheWay (1) -- The SMLC will send more Assistance Data messages or a final RRLP
+ -- Measure Position Request message to deliver the
+ -- the entire set of assistance data.
+}
+
+-- Control header of the GPS assistance data
+ControlHeader ::= SEQUENCE {
+
+ -- Field type Present information
+ referenceTime ReferenceTime OPTIONAL,
+ refLocation RefLocation OPTIONAL,
+ dgpsCorrections DGPSCorrections OPTIONAL,
+ navigationModel NavigationModel OPTIONAL,
+ ionosphericModel IonosphericModel OPTIONAL,
+ utcModel UTCModel OPTIONAL,
+ almanac Almanac OPTIONAL,
+ acquisAssist AcquisAssist OPTIONAL,
+ realTimeIntegrity SeqOf-BadSatelliteSet OPTIONAL
+}
+
+ReferenceTime ::= SEQUENCE {
+ gpsTime GPSTime,
+ gsmTime GSMTime OPTIONAL,
+ gpsTowAssist GPSTOWAssist OPTIONAL
+}
+
+-- GPS Time includes week number and time-of-week (TOW)
+GPSTime ::= SEQUENCE {
+ gpsTOW23b GPSTOW23b,
+ gpsWeek GPSWeek
+}
+
+-- GPSTOW, range 0-604799.92, resolution 0.08 sec, 23-bit presentation
+GPSTOW23b ::= INTEGER (0..7559999)
+
+-- GPS week number
+GPSWeek ::= INTEGER (0..1023)
+
+-- GPSTOWAssist consists of TLM message, Anti-spoof flag, Alert flag, and 2 reserved bits in TLM Word
+-- for each visible satellite.
+-- N_SAT can be read from number of elements in GPSTOWAssist
+GPSTOWAssist ::= SEQUENCE (SIZE(1..12)) OF GPSTOWAssistElement
+
+GPSTOWAssistElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ tlmWord TLMWord,
+ antiSpoof AntiSpoofFlag,
+ alert AlertFlag,
+ tlmRsvdBits TLMReservedBits
+}
+
+-- TLM Word, 14 bits
+TLMWord ::= INTEGER (0..16383)
+
+-- Anti-Spoof flag
+AntiSpoofFlag ::= INTEGER (0..1)
+
+-- Alert flag
+AlertFlag ::= INTEGER (0..1)
+
+-- Reserved bits in TLM word, MSB occurs earlier in TLM Word transmitted by satellite
+TLMReservedBits ::= INTEGER (0..3)
+
+GSMTime ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ frameNumber FrameNumber,
+ timeSlot TimeSlot,
+ bitNumber BitNumber
+}
+
+-- Frame number
+FrameNumber ::= INTEGER (0..2097151)
+
+-- Time slot number
+TimeSlot ::= INTEGER (0..7)
+
+-- Bit number
+BitNumber ::= INTEGER (0..156)
+
+
+-- Reference Location IE
+RefLocation ::= SEQUENCE {
+ threeDLocation Ext-GeographicalInformation
+}
+
+-- DGPS Corrections IE
+DGPSCorrections ::= SEQUENCE {
+
+ gpsTOW INTEGER (0..604799), -- DGPS reference time
+ status INTEGER (0..7),
+ -- N_SAT can be read from number of elements of satList
+ satList SeqOfSatElement
+}
+SeqOfSatElement ::= SEQUENCE (SIZE (1..16)) OF SatElement
+
+-- number of correction for satellites
+SatElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+
+--- Sequence number for ephemeris
+ iode INTEGER (0..239),
+ -- User Differential Range Error
+ udre INTEGER (0..3),
+
+ -- Pseudo Range Correction, range is
+ -- -655.04 - +655.04,
+ pseudoRangeCor INTEGER (-2047..2047),
+
+ -- Pseudo Range Rate Correction, range is
+ -- -4.064 - +4.064,
+ rangeRateCor INTEGER (-127..127),
+
+-- Delta Pseudo Range Correction 2
+ deltaPseudoRangeCor2 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 2
+ deltaRangeRateCor2 INTEGER (-7..7), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 3
+ deltaPseudoRangeCor3 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 3
+ deltaRangeRateCor3 INTEGER (-7..7) -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+}
+
+SatelliteID ::= INTEGER (0..63) -- identifies satellite
+
+-- Navigation Model IE
+NavigationModel ::= SEQUENCE {
+ navModelList SeqOfNavModelElement
+}
+
+-- navigation model satellite list
+SeqOfNavModelElement ::= SEQUENCE (SIZE(1..16)) OF NavModelElement
+
+NavModelElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ satStatus SatStatus -- satellite status
+}
+
+-- the Status of the navigation model
+SatStatus ::= CHOICE {
+ -- New satellite, new Navigation Model
+ newSatelliteAndModelUC UncompressedEphemeris,
+
+ -- Existing satellite, Existing Navigation Model
+ oldSatelliteAndModel NULL,
+
+ -- Existing satellite, new Navigation Model
+ newNaviModelUC UncompressedEphemeris,
+ ...
+}
+
+-- Uncompressed satellite emhemeris and clock corrections
+UncompressedEphemeris ::= SEQUENCE {
+ ephemCodeOnL2 INTEGER (0..3),
+ ephemURA INTEGER (0..15),
+ ephemSVhealth INTEGER (0..63),
+ ephemIODC INTEGER (0..1023),
+ ephemL2Pflag INTEGER (0..1),
+ ephemSF1Rsvd EphemerisSubframe1Reserved,
+ ephemTgd INTEGER (-128..127),
+ ephemToc INTEGER (0..37799),
+ ephemAF2 INTEGER (-128..127),
+ ephemAF1 INTEGER (-32768..32767),
+ ephemAF0 INTEGER (-2097152..2097151),
+ ephemCrs INTEGER (-32768..32767),
+ ephemDeltaN INTEGER (-32768..32767),
+ ephemM0 INTEGER (-2147483648..2147483647),
+ ephemCuc INTEGER (-32768..32767),
+ ephemE INTEGER (0..4294967295),
+ ephemCus INTEGER (-32768..32767),
+ ephemAPowerHalf INTEGER (0..4294967295),
+ ephemToe INTEGER (0..37799),
+ ephemFitFlag INTEGER (0..1),
+ ephemAODA INTEGER (0..31),
+ ephemCic INTEGER (-32768..32767),
+ ephemOmegaA0 INTEGER (-2147483648..2147483647),
+ ephemCis INTEGER (-32768..32767),
+ ephemI0 INTEGER (-2147483648..2147483647),
+ ephemCrc INTEGER (-32768..32767),
+ ephemW INTEGER (-2147483648..2147483647),
+ ephemOmegaADot INTEGER (-8388608..8388607),
+ ephemIDot INTEGER (-8192..8191)
+}
+
+-- Reserved bits in subframe 1 of navigation message
+EphemerisSubframe1Reserved ::= SEQUENCE {
+ reserved1 INTEGER (0..8388607), -- 23-bit field
+ reserved2 INTEGER (0..16777215), -- 24-bit field
+ reserved3 INTEGER (0..16777215), -- 24-bit field
+ reserved4 INTEGER (0..65535) -- 16-bit field
+}
+
+-- Ionospheric Model IE
+IonosphericModel ::= SEQUENCE {
+ alfa0 INTEGER (-128..127),
+ alfa1 INTEGER (-128..127),
+ alfa2 INTEGER (-128..127),
+ alfa3 INTEGER (-128..127),
+ beta0 INTEGER (-128..127),
+ beta1 INTEGER (-128..127),
+ beta2 INTEGER (-128..127),
+ beta3 INTEGER (-128..127)
+}
+
+-- Universal Time Coordinate Model
+UTCModel ::= SEQUENCE {
+ utcA1 INTEGER (-8388608..8388607),
+ utcA0 INTEGER (-2147483648..2147483647),
+ utcTot INTEGER (0..255),
+ utcWNt INTEGER (0..255),
+ utcDeltaTls INTEGER (-128..127),
+ utcWNlsf INTEGER (0..255),
+ utcDN INTEGER (-128..127),
+ utcDeltaTlsf INTEGER (-128..127)
+}
+
+-- Almanac, Long term model
+-- NOTE: These are parameters are subset of the ephemeris
+-- NOTE: But with reduced resolution and accuracy
+Almanac ::= SEQUENCE {
+ alamanacWNa INTEGER (0..255), -- Once per message
+
+ -- navigation model satellite list.
+ -- The size of almanacList is actually Nums_Sats_Total field
+ almanacList SeqOfAlmanacElement
+}
+SeqOfAlmanacElement ::= SEQUENCE (SIZE(1..64)) OF AlmanacElement
+
+-- Almanac info once per satellite
+AlmanacElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ almanacE INTEGER (0..65535),
+ alamanacToa INTEGER (0..255),
+ almanacKsii INTEGER (-32768..32767),
+ almanacOmegaDot INTEGER (-32768..32767),
+ almanacSVhealth INTEGER (0..255),
+ almanacAPowerHalf INTEGER (0..16777215),
+ almanacOmega0 INTEGER (-8388608..8388607),
+ almanacW INTEGER (-8388608..8388607),
+ almanacM0 INTEGER (-8388608..8388607),
+ almanacAF0 INTEGER (-1024..1023),
+ almanacAF1 INTEGER (-1024..1023)
+}
+
+-- Acquisition Assistance
+AcquisAssist ::= SEQUENCE {
+
+ -- Number of Satellites can be read from acquistList
+ timeRelation TimeRelation,
+
+ -- Acquisition assistance list
+ -- The size of Number of Satellites is actually Number of Satellites field
+ acquisList SeqOfAcquisElement
+}
+SeqOfAcquisElement ::= SEQUENCE (SIZE(1..16)) OF AcquisElement
+
+-- the relationship between GPS time and air-interface timing
+TimeRelation ::= SEQUENCE {
+ --
+ gpsTOW GPSTOW23b, -- 23b presentation
+ gsmTime GSMTime OPTIONAL
+}
+
+-- data occuring per number of satellites
+AcquisElement ::= SEQUENCE {
+ svid SatelliteID,
+
+ -- Doppler 0th order term,
+ -- -5120.0 - 5117.5 Hz (= -2048 - 2047 with 2.5 Hz resolution)
+ doppler0 INTEGER (-2048..2047),
+ addionalDoppler AddionalDopplerFields OPTIONAL,
+ codePhase INTEGER (0..1022), -- Code Phase
+ intCodePhase INTEGER (0..19), -- Integer Code Phase
+ gpsBitNumber INTEGER (0..3), -- GPS bit number
+ codePhaseSearchWindow INTEGER (0..15), -- Code Phase Search Window
+ addionalAngle AddionalAngleFields OPTIONAL
+}
+
+AddionalDopplerFields ::= SEQUENCE {
+ -- Doppler 1st order term, -1.0 - +0.5 Hz/sec
+ -- (= -42 + (0 to 63) with 1/42 Hz/sec. resolution)
+ doppler1 INTEGER (0..63),
+ dopplerUncertainty INTEGER (0..7)
+ -- a sender shall not encode any DopplerUncertainty value in the range 5 to 7
+ -- a receiver shall ignore any value between 5 and 7.
+}
+
+AddionalAngleFields ::= SEQUENCE {
+ -- azimuth angle, 0 - 348.75 deg (= 0 - 31 with 11.25 deg resolution)
+ azimuth INTEGER (0..31),
+ -- elevation angle, 0 - 78.75 deg (= 0 - 7 with 11.25 deg resolution)
+ elevation INTEGER (0..7)
+}
+
+-- Real-Time Integrity
+-- number of bad satellites can be read from this element
+SeqOf-BadSatelliteSet ::= SEQUENCE (SIZE(1..16)) OF SatelliteID
+
+-- Extension Elements
+
+-- Release 98 Extensions here
+Rel98-MsrPosition-Req-Extension ::= SEQUENCE {
+ rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
+ ...,
+ gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+
+-- Further R98 extensions here
+}
+Rel98-AssistanceData-Extension ::= SEQUENCE {
+ rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
+ ...,
+ gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+
+-- Further R98 extensions here
+}
+
+-- Release 98 ExpOTD extension
+Rel98-Ext-ExpOTD ::= SEQUENCE {
+-- If MsrAssistBTS is included in message, msrAssistData-R98-ExpOTD shall be included.
+ msrAssistData-R98-ExpOTD MsrAssistData-R98-ExpOTD OPTIONAL,
+
+-- If SystemInfoAssistaData is included in message, systemInfoAssistData-R98-ExpOTD shall be
+-- included.
+ systemInfoAssistData-R98-ExpOTD SystemInfoAssistData-R98-ExpOTD OPTIONAL
+}
+
+-- MsrAssistData R98 extension
+MsrAssistData-R98-ExpOTD ::= SEQUENCE {
+ msrAssistList-R98-ExpOTD SeqOfMsrAssistBTS-R98-ExpOTD
+}
+
+-- Indexes in SeqOfMsrAssistBTS-R98-ExpOTD refer to SeqOfMsrAssistBTS
+-- If the index exceeds the SegOfMsrAssistBTS range or if there is other
+-- inconsistencies between the BTS indices, the MS shall apply protocol
+-- error cause incorrectData
+SeqOfMsrAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS-R98-ExpOTD
+
+-- This element completes MsrAssistBTS IE
+MsrAssistBTS-R98-ExpOTD ::= SEQUENCE {
+ expectedOTD ExpectedOTD,
+ expOTDUncertainty ExpOTDUncertainty
+}
+
+-- SystemInfoAssistData R98 extension
+SystemInfoAssistData-R98-ExpOTD ::= SEQUENCE {
+ systemInfoAssistListR98-ExpOTD SeqOfSystemInfoAssistBTS-R98-ExpOTD
+}
+
+-- SeqOfSystemInfoAssistBTS-R98-ExpOTD index refer to SeqOfSystemInfoAssistBTS
+-- If the index exceeds the SegOfSystemInfoAssistBTS range or if there is other
+-- inconsistencies between the BTS indices, the MS shall apply protocol
+-- error cause incorrectData
+SeqOfSystemInfoAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS-R98-ExpOTD
+
+-- whether n.th is present or not ?
+SystemInfoAssistBTS-R98-ExpOTD ::= CHOICE {
+ notPresent NULL,
+ present AssistBTSData-R98-ExpOTD
+}
+
+-- This element completes AssistBTSData IE
+AssistBTSData-R98-ExpOTD ::= SEQUENCE {
+ expectedOTD ExpectedOTD,
+ expOTDuncertainty ExpOTDUncertainty -- Uncertainty of expected OTD
+}
+
+-- Expected OTD value between nbor base station and reference BTS
+-- at MS's current estimated location.
+ExpectedOTD ::= INTEGER (0..1250)
+-- The ExpectedOTD value 1250 shall not be encoded by the transmitting entity and
+-- shall be treated by the receiving entity as 0.
+-- Uncertainty of Exptected OTD in bits
+ExpOTDUncertainty ::= INTEGER(0..7)
+
+-- Release 98 extensions
+
+GPSReferenceTimeUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
+
+GPSTimeAssistanceMeasurements ::= SEQUENCE {
+ referenceFrameMSB INTEGER (0 .. 63) OPTIONAL, -- MSB of frame number
+ gpsTowSubms INTEGER (0 .. 9999) OPTIONAL, -- in units of 100ns, for MS based AGPS
+ deltaTow INTEGER (0 .. 127) OPTIONAL, -- for MS assisted AGPS
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+}
+
+Rel-98-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ -- First extension to Release 98
+ rel-98-Ext-MeasureInfo SEQUENCE {
+ otd-MeasureInfo-R98-Ext OTD-MeasureInfo-R98-Ext OPTIONAL
+ },
+ ...,
+ timeAssistanceMeasurements GPSTimeAssistanceMeasurements OPTIONAL
+ -- Further R98 extensions here
+}
+
+-- This is an addition to OTD-MeasureInfo element defined in original message,
+-- If OTD-MeasureInfo is absent, or if one or more OTD-MsrElementRest are present
+-- OTD-MeasureInfo-R98-Ext shall be absent.
+-- OTD-MeasureInfo-R98-Ext
+OTD-MeasureInfo-R98-Ext ::= SEQUENCE {
+ -- Measurement info elements
+ otdMsrFirstSets-R98-Ext OTD-MsrElementFirst-R98-Ext
+}
+
+-- OTD measurement information Ext for the first set only
+OTD-MsrElementFirst-R98-Ext ::= SEQUENCE {
+ -- additional measured neighbors in OTD measurements
+ otd-FirstSetMsrs-R98-Ext SeqOfOTD-FirstSetMsrs-R98-Ext OPTIONAL
+}
+SeqOfOTD-FirstSetMsrs-R98-Ext ::= SEQUENCE (SIZE(1..5)) OF OTD-FirstSetMsrs
+
+Rel-5-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ extended-reference Extended-reference OPTIONAL,
+ -- The extended-reference shall be included by the MS if and only if previously
+ -- received from the SMLC in a Measure Position Request. When included, the value sent
+ -- by the MS shall equal the value received from the SMLC.
+
+ -- extension to Release 5, for RRLP pseudo-segmentation here
+ otd-MeasureInfo-5-Ext OTD-MeasureInfo-5-Ext OPTIONAL,
+ ulPseudoSegInd UlPseudoSegInd OPTIONAL, -- Included when uplink RRLP
+ -- Pseudo-segmentation is used, not included when no uplink pseudo-segmentation is used
+ ...
+ -- Possibly more extensions for Release 5 here later
+}
+
+Extended-reference ::= SEQUENCE {
+ smlc-code INTEGER (0..63),
+ transaction-ID INTEGER (0..262143)
+}
+
+OTD-MeasureInfo-5-Ext ::= SeqOfOTD-MsrElementRest
+ -- if more than one measurement sets are present this element is repeated
+ -- NumberOfSets - 1 (-1 = first set) combined in OTD-MeasureInfo-5-Ext and
+ -- OTD-MeasureInfo (e.g. if NumberOfSets is 3, then one otdMsrRestSets may
+ -- be sent in OTD-MeasureInfo-5-Ext and one in OTD-MeasureInfo)
+
+-- First part of Uplink RRLP Pseudo-segmentation indication, possibly more may be defined
+-- in the future for segmentation with more than two segments.
+UlPseudoSegInd ::= ENUMERATED {
+ firstOfMany (0),
+ secondOfMany(1)
+}
+
+Rel5-MsrPosition-Req-Extension ::= SEQUENCE {
+ extended-reference Extended-reference,
+ ...
+ -- Possibly more extensions for Release 5 here later
+}
+
+Rel5-AssistanceData-Extension ::= SEQUENCE {
+ extended-reference Extended-reference,
+ ...
+
+-- Possibly more extensions for Release 5 here later
+}
+
+Rel-5-ProtocolError-Extension::= SEQUENCE {
+ extended-reference Extended-reference OPTIONAL,
+ -- The extended-reference shall be included by the MS if and only if previously
+ -- received from the SMLC.
+ -- When included, the value sent by the MS shall equal the value received from the SMLC.
+ ...
+
+ -- Possibly more extensions for Release 5 here later
+}
+
+-- Release 7 Extensions here
+
+Rel7-MsrPosition-Req-Extension ::= SEQUENCE {
+ velocityRequested NULL OPTIONAL,
+ ganssPositionMethod GANSSPositioningMethod OPTIONAL,
+ ganss-AssistData GANSS-AssistData OPTIONAL,
+ ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
+ ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+ requiredResponseTime RequiredResponseTime OPTIONAL,
+ add-GPS-AssistData Add-GPS-AssistData OPTIONAL,
+ ganssMultiFreqMeasurementRequest NULL OPTIONAL,
+ ...
+ -- Further Release 7 extensions here
+}
+
+-- additional satellite systems may be added in future versions of the protocol
+-- Bit 0 of GANSSPositioningMethod bit map shall not be the only one set to TRUE ('1')
+GANSSPositioningMethod ::= BIT STRING {
+ gps (0),
+ galileo (1),
+ sbas (2),
+ modernizedGPS (3),
+ qzss (4),
+ glonass (5) } (SIZE (2..16))
+
+GANSS-AssistData ::= SEQUENCE {
+ ganss-controlHeader GANSS-ControlHeader
+}
+GANSS-ControlHeader ::= SEQUENCE {
+ ganssCommonAssistData GANSSCommonAssistData OPTIONAL,
+ ganssGenericAssistDataList SeqOfGANSSGenericAssistDataElement OPTIONAL
+}
+
+-- GANSS Common Assistance Data Elements
+GANSSCommonAssistData ::= SEQUENCE {
+ ganssReferenceTime GANSSReferenceTime OPTIONAL,
+ ganssRefLocation GANSSRefLocation OPTIONAL,
+ ganssIonosphericModel GANSSIonosphericModel OPTIONAL,
+ ... ,
+ ganssAddIonosphericModel GANSSAddIonosphericModel OPTIONAL,
+ ganssEarthOrientParam GANSSEarthOrientParam OPTIONAL,
+ -- If GANSSReferenceTime is included, GANSSReferenceTime-R10-Ext shall also be included.
+ ganssReferenceTime-R10-Ext GANSSReferenceTime-R10-Ext OPTIONAL
+}
+
+-- List of GANSS Generic Assistance Data Elements, up to 8 GANSS
+SeqOfGANSSGenericAssistDataElement ::= SEQUENCE (SIZE (1..8)) OF GANSSGenericAssistDataElement
+-- GANSS Generic Assistance Data Elements
+GANSSGenericAssistDataElement ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
+ ganssTimeModel SeqOfGANSSTimeModel OPTIONAL,
+ ganssDiffCorrections GANSSDiffCorrections OPTIONAL,
+ ganssNavigationModel GANSSNavModel OPTIONAL,
+ ganssRealTimeIntegrity GANSSRealTimeIntegrity OPTIONAL,
+ ganssDataBitAssist GANSSDataBitAssist OPTIONAL,
+ ganssRefMeasurementAssist GANSSRefMeasurementAssist OPTIONAL,
+ ganssAlmanacModel GANSSAlmanacModel OPTIONAL,
+ ganssUTCModel GANSSUTCModel OPTIONAL,
+ ganssEphemerisExtension GANSSEphemerisExtension OPTIONAL,
+ ganssEphemerisExtCheck GANSSEphemerisExtensionCheck OPTIONAL,
+ ... ,
+ sbasID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
+ ganssAddUTCModel GANSSAddUTCModel OPTIONAL,
+ ganssAuxiliaryInfo GANSSAuxiliaryInformation OPTIONAL,
+ ganssDiffCorrectionsValidityPeriod GANSSDiffCorrectionsValidityPeriod OPTIONAL,
+ -- If SeqOfGANSSTimeModel is included, SeqOfGANSSTimeModel-R10-Ext shall also be included.
+ ganssTimeModel-R10-Ext SeqOfGANSSTimeModel-R10-Ext OPTIONAL,
+ -- If GANSSRefMeasurementAssist is included, GANSSRefMeasurementAssist-R10-Ext shall also be
+ -- included.
+ ganssRefMeasurementAssist-R10-Ext GANSSRefMeasurementAssist-R10-Ext OPTIONAL,
+ -- If GANSSAlmanacModel is included, GANSSAlmanacModel-R10-Ext shall also be included.
+ ganssAlmanacModel-R10-Ext GANSSAlmanacModel-R10-Ext OPTIONAL
+}
+
+-- GANSS COMMON ASSISTANCE DATA ELEMENTS
+
+-- GANSS Reference Time IE
+GANSSReferenceTime ::= SEQUENCE {
+ ganssRefTimeInfo GANSSRefTimeInfo,
+ ganssTOD-GSMTimeAssociation GANSSTOD-GSMTimeAssociation OPTIONAL
+}
+
+-- GANSS Reference Time includes GANSS TOD, GANSS Day, uncertainty
+GANSSRefTimeInfo ::= SEQUENCE {
+ -- ganssDay shall be present in this version of the protocol
+ ganssDay INTEGER(0 .. 8191) OPTIONAL,
+ ganssTOD GANSSTOD,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL,
+ ganssTimeID INTEGER (0 .. 7) OPTIONAL
+}
+
+-- GANSS TOD integer seconds
+GANSSTOD ::= INTEGER (0 .. 86399)
+
+-- GANSS TOD uncertainty
+GANSSTODUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
+
+-- GANSS Reference Time Rel-10 Extension:
+GANSSReferenceTime-R10-Ext ::= SEQUENCE {
+ ganssDayCycleNumber INTEGER(0..7) -- coding according to annex
+}
+-- GANSS TOD-GSM Time association
+GANSSTOD-GSMTimeAssociation ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ frameNumber FrameNumber,
+ timeSlot TimeSlot,
+ bitNumber BitNumber,
+ frameDrift FrameDrift OPTIONAL
+}
+
+-- Frame drift
+FrameDrift ::= INTEGER(-64 .. 63)
+
+-- GANSS Reference Location IE
+GANSSRefLocation ::= SEQUENCE {
+ threeDLocation Ext-GeographicalInformation
+}
+
+-- GANSS Ionospheric Model IE
+-- GANSS Ionospheric Model consists of NeQuick model parameters and storm flags
+GANSSIonosphericModel ::= SEQUENCE {
+ ganssIonoModel GANSSIonosphereModel,
+ ganssIonoStormFlags GANSSIonoStormFlags OPTIONAL,
+ ...
+}
+
+-- GANSS ionosphere model. Coding according to Annex
+GANSSIonosphereModel ::= SEQUENCE {
+ ai0 INTEGER (0 .. 4095),
+ ai1 INTEGER (0 .. 4095),
+ ai2 INTEGER (0 .. 4095)
+}
+
+-- GANSS ionosphere storm flags
+GANSSIonoStormFlags ::= SEQUENCE {
+ ionoStormFlag1 INTEGER (0 .. 1),
+ ionoStormFlag2 INTEGER (0 .. 1),
+ ionoStormFlag3 INTEGER (0 .. 1),
+ ionoStormFlag4 INTEGER (0 .. 1),
+ ionoStormFlag5 INTEGER (0 .. 1)
+}
+
+-- GANSS Additional Ionospheric Model IE
+-- GANSS Additional Ionospheric Model consists of Klobuchar model parameters
+GANSSAddIonosphericModel ::= SEQUENCE {
+ dataID BIT STRING (SIZE (2)), -- Coding according to Annex
+ ionoModel IonosphericModel
+}
+
+-- GANSS Earth Orientation Paramaters IE
+GANSSEarthOrientParam ::= SEQUENCE {
+ teop INTEGER (0..65535),
+ pmX INTEGER (-1048576..1048575),
+ pmXdot INTEGER (-16384..16383),
+ pmY INTEGER (-1048576..1048575),
+ pmYdot INTEGER (-16384..16383),
+ deltaUT1 INTEGER (-1073741824..1073741823),
+ deltaUT1dot INTEGER (-262144..262143)
+}
+
+-- GANSS GENERIC ASSISTANCE DATA ELEMENTS
+
+-- GANSS Time Model IE consists of time offset and first and second order parameters to relate GNSS
+-- specific system time to selected time reference
+SeqOfGANSSTimeModel ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement
+
+GANSSTimeModelElement ::= SEQUENCE {
+ ganssTimeModelRefTime INTEGER(0 .. 65535),
+ tA0 TA0,
+ tA1 TA1 OPTIONAL,
+ tA2 TA2 OPTIONAL,
+ gnssTOID INTEGER (0 .. 7), -- coding according to annex
+ weekNumber INTEGER (0 .. 8191) OPTIONAL
+}
+
+-- GANSS time model parameter A0
+TA0 ::= INTEGER (-2147483648 .. 2147483647)
+
+-- GANSS time model parameter A1
+TA1 ::= INTEGER (-8388608 .. 8388607)
+
+-- GANSS time model parameter A2
+TA2 ::= INTEGER (-64 .. 63)
+
+-- GANSS Time Model Rel-10 Extension:
+SeqOfGANSSTimeModel-R10-Ext ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement-R10-Ext
+
+GANSSTimeModelElement-R10-Ext ::= SEQUENCE {
+ gnssTOID INTEGER (0 .. 7), -- coding according to annex
+ deltaT INTEGER (-128..127)
+}
+
+-- DGANSS Corrections IE
+GANSSDiffCorrections ::= SEQUENCE {
+ dganssRefTime INTEGER (0 .. 119), -- DGANSS reference time
+
+ -- N_SGN_TYPE can be read from number of elements of sgnTypeList
+ sgnTypeList SeqOfSgnTypeElement
+}
+
+SeqOfSgnTypeElement ::= SEQUENCE (SIZE (1..3)) OF SgnTypeElement -- max three signals per GNSS
+
+-- DGANSS signal type element, once per GNSS signal type included in DGANSS
+SgnTypeElement ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- signal type identity
+ ganssStatusHealth INTEGER (0 .. 7),
+ -- N_SAT can be read from number of elements of dganssSgnList
+ dganssSgnList SeqOfDGANSSSgnElement
+}
+
+GANSSSignalID ::= INTEGER (0 .. 7) -- Coding according to Annex
+SeqOfDGANSSSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSSgnElement
+
+-- number of correction for signals
+DGANSSSgnElement ::= SEQUENCE {
+ svID SVID, -- Satellite identity
+
+--- Sequence number for GANSS Navigation Model that matches the DGANSS correction set
+ iod INTEGER (0 .. 1023),
+
+ -- User Differential Range Error
+ udre INTEGER (0..3),
+
+ -- Pseudo Range Correction, range is
+ -- -655.04 - +655.04,
+ pseudoRangeCor INTEGER (-2047..2047),
+
+ -- Pseudo Range Rate Correction, range is
+ -- -4.064 - +4.064,
+ rangeRateCor INTEGER (-127..127)
+}
+
+SVID ::= INTEGER (0 .. 63) -- Coding according to Annex
+
+-- GANSS Navigation Model IE
+GANSSNavModel ::= SEQUENCE {
+ nonBroadcastIndFlag INTEGER (0 .. 1),
+ ganssSatelliteList SeqOfGANSSSatelliteElement
+}
+
+SeqOfGANSSSatelliteElement ::= SEQUENCE (SIZE(1..32)) OF GANSSSatelliteElement
+
+GANSSSatelliteElement ::= SEQUENCE {
+ svID SVID,
+ svHealth BIT STRING (SIZE(5)), -- Coding according to Annex
+ iod INTEGER (0 .. 1023), -- Coding according to Annex
+ ganssClockModel GANSSClockModel,
+ ganssOrbitModel GANSSOrbitModel,
+ ...,
+ svHealthMSB BIT STRING (SIZE(1)) OPTIONAL, -- Coding according to Annex
+ iodMSB INTEGER (0 .. 1) OPTIONAL -- Coding according to Annex
+}
+
+-- GANSS orbit model for the GNSS satellite according to the choice
+GANSSOrbitModel ::= CHOICE {
+ keplerianSet NavModel-KeplerianSet, -- Model-1
+ ... ,
+ navKeplerianSet NavModel-NAVKeplerianSet, -- Model-2
+ cnavKeplerianSet NavModel-CNAVKeplerianSet, -- Model-3
+ glonassECEF NavModel-GLONASSecef, -- Model-4
+ sbasECEF NavModel-SBASecef -- Model-5
+}
+
+-- Navigation model in Keplerian parameters
+NavModel-KeplerianSet ::= SEQUENCE {
+ keplerToe INTEGER (0 .. 16383),
+ keplerW INTEGER (-2147483648..2147483647),
+ keplerDeltaN INTEGER (-32768..32767),
+ keplerM0 INTEGER (-2147483648..2147483647),
+ keplerOmegaDot INTEGER (-8388608..8388607),
+ keplerE INTEGER (0..4294967295),
+ keplerIDot INTEGER (-8192..8191),
+ keplerAPowerHalf INTEGER (0.. 4294967295),
+ keplerI0 INTEGER (-2147483648..2147483647),
+ keplerOmega0 INTEGER (-2147483648..2147483647),
+ keplerCrs INTEGER (-32768..32767),
+ keplerCis INTEGER (-32768..32767),
+ keplerCus INTEGER (-32768..32767),
+ keplerCrc INTEGER (-32768..32767),
+ keplerCic INTEGER (-32768..32767),
+ keplerCuc INTEGER (-32768..32767)
+}
+
+NavModel-NAVKeplerianSet ::= SEQUENCE {
+ navURA INTEGER (0..15),
+ navFitFlag INTEGER (0..1),
+ navToe INTEGER (0..37799),
+ navOmega INTEGER (-2147483648..2147483647),
+ navDeltaN INTEGER (-32768..32767),
+ navM0 INTEGER (-2147483648..2147483647),
+ navOmegaADot INTEGER (-8388608..8388607),
+ navE INTEGER (0..4294967295),
+ navIDot INTEGER (-8192..8191),
+ navAPowerHalf INTEGER (0..4294967295),
+ navI0 INTEGER (-2147483648..2147483647),
+ navOmegaA0 INTEGER (-2147483648..2147483647),
+ navCrs INTEGER (-32768..32767),
+ navCis INTEGER (-32768..32767),
+ navCus INTEGER (-32768..32767),
+ navCrc INTEGER (-32768..32767),
+ navCic INTEGER (-32768..32767),
+ navCuc INTEGER (-32768..32767)
+}
+
+NavModel-CNAVKeplerianSet ::= SEQUENCE {
+ cnavTop INTEGER (0..2015),
+ cnavURAindex INTEGER (-16..15),
+ cnavDeltaA INTEGER (-33554432..33554431),
+ cnavAdot INTEGER (-16777216..16777215),
+ cnavDeltaNo INTEGER (-65536..65535),
+ cnavDeltaNoDot INTEGER (-4194304..4194303),
+ cnavMo INTEGER (-4294967296..4294967295),
+ cnavE INTEGER (0..8589934591),
+ cnavOmega INTEGER (-4294967296..4294967295),
+ cnavOMEGA0 INTEGER (-4294967296..4294967295),
+ cnavDeltaOmegaDot INTEGER (-65536..65535),
+ cnavIo INTEGER (-4294967296..4294967295),
+ cnavIoDot INTEGER (-16384..16383),
+ cnavCis INTEGER (-32768..32767),
+ cnavCic INTEGER (-32768..32767),
+ cnavCrs INTEGER (-8388608..8388607),
+ cnavCrc INTEGER (-8388608..8388607),
+ cnavCus INTEGER (-1048576..1048575),
+ cnavCuc INTEGER (-1048576..1048575)
+}
+
+NavModel-GLONASSecef ::= SEQUENCE {
+ gloEn INTEGER (0..31),
+ gloP1 BIT STRING (SIZE(2)),
+ gloP2 BOOLEAN,
+ gloM INTEGER (0..3),
+ gloX INTEGER (-67108864..67108863),
+ gloXdot INTEGER (-8388608..8388607),
+ gloXdotdot INTEGER (-16..15),
+ gloY INTEGER (-67108864..67108863),
+ gloYdot INTEGER (-8388608..8388607),
+ gloYdotdot INTEGER (-16..15),
+ gloZ INTEGER (-67108864..67108863),
+ gloZdot INTEGER (-8388608..8388607),
+ gloZdotdot INTEGER (-16..15)
+}
+
+
+NavModel-SBASecef ::= SEQUENCE {
+ sbasTo INTEGER (0..5399) OPTIONAL,
+ sbasAccuracy BIT STRING (SIZE(4)),
+ sbasXg INTEGER (-536870912..536870911),
+ sbasYg INTEGER (-536870912..536870911),
+ sbasZg INTEGER (-16777216..16777215),
+ sbasXgDot INTEGER (-65536..65535),
+ sbasYgDot INTEGER (-65536..65535),
+ sbasZgDot INTEGER (-131072..131071),
+ sbasXgDotDot INTEGER (-512..511),
+ sbagYgDotDot INTEGER (-512..511),
+ sbasZgDotDot INTEGER (-512..511)
+}
+
+-- GANSS clock model for the GNSS satellite according to the choice
+GANSSClockModel ::= CHOICE {
+ standardClockModelList SeqOfStandardClockModelElement, -- Model-1
+ ... ,
+ navClockModel NAVclockModel, -- Model-2
+ cnavClockModel CNAVclockModel, -- Model-3
+ glonassClockModel GLONASSclockModel, -- Model-4
+ sbasClockModel SBASclockModel -- Model-5
+}
+
+SeqOfStandardClockModelElement ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement
+
+StandardClockModelElement ::= SEQUENCE {
+ stanClockToc INTEGER (0 .. 16383),
+ stanClockAF2 INTEGER (-2048 .. 2047),
+ stanClockAF1 INTEGER (-131072 .. 131071),
+ stanClockAF0 INTEGER (-134217728 .. 134217727),
+ stanClockTgd INTEGER (-512 .. 511) OPTIONAL,
+ stanModelID INTEGER (0 .. 1) OPTIONAL,
+ ...
+}
+
+NAVclockModel ::= SEQUENCE {
+ navToc INTEGER (0.. 37799),
+ navaf2 INTEGER (-128..127),
+ navaf1 INTEGER (-32768..32767),
+ navaf0 INTEGER (-2097152..2097151),
+ navTgd INTEGER (-128..127)
+}
+
+CNAVclockModel ::= SEQUENCE {
+ cnavToc INTEGER (0..2015),
+ cnavTop INTEGER (0..2015),
+ cnavURA0 INTEGER (-16..15),
+ cnavURA1 INTEGER (0..7),
+ cnavURA2 INTEGER (0..7),
+ cnavAf2 INTEGER (-512..511),
+ cnavAf1 INTEGER (-524288..524287),
+ cnavAf0 INTEGER (-33554432..33554431),
+ cnavTgd INTEGER (-4096..4095),
+ cnavISCl1cp INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl1cd INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl1ca INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl2c INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl5i5 INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl5q5 INTEGER (-4096..4095) OPTIONAL
+}
+
+GLONASSclockModel ::= SEQUENCE {
+ gloTau INTEGER (-2097152..2097151),
+ gloGamma INTEGER (-1024..1023),
+ gloDeltaTau INTEGER (-16..15) OPTIONAL
+}
+
+SBASclockModel ::= SEQUENCE {
+ sbasTo INTEGER (0..5399),
+ sbasAgfo INTEGER (-2048..2047),
+ sbasAgf1 INTEGER (-128..127)
+}
+
+-- GANSS Real-Time Integrity IE
+GANSSRealTimeIntegrity ::= SEQUENCE {
+ -- list of satellites with bad signals
+ -- NBS can be read from number of elements in SeqOf-BadSignalSet
+ ganssBadSignalList SeqOfBadSignalElement
+}
+
+SeqOfBadSignalElement ::= SEQUENCE (SIZE(1..16)) OF BadSignalElement
+
+BadSignalElement ::= SEQUENCE {
+ badSVID SVID, -- Coding according to Annex
+ badSignalID GANSSSignals OPTIONAL -- Coding according to Annex
+}
+
+-- GANSS Data Bit Assistance IE
+GANSSDataBitAssist ::= SEQUENCE {
+ ganssTOD INTEGER (0 .. 59),
+ -- N_SAT can be read from number of elements in SeqOfGanssDataBitsElement
+ ganssDataBitsSatList SeqOfGanssDataBitsElement,
+ ...
+}
+
+SeqOfGanssDataBitsElement ::= SEQUENCE (SIZE(1 .. 32))OF GanssDataBitsElement
+
+GanssDataBitsElement ::= SEQUENCE {
+ svID SVID,
+ -- N_SGN can be read from number of elements in Seq-OfGANSSDataBitsSgn
+ ganssDataBitsSgnList Seq-OfGANSSDataBitsSgn,
+ ...
+}
+
+Seq-OfGANSSDataBitsSgn ::= SEQUENCE (SIZE(1..8)) OF GANSSDataBitsSgnElement
+
+GANSSDataBitsSgnElement ::= SEQUENCE {
+ ganssSignalType GANSSSignalID,
+ -- N_BIT can be read from number of elements in SeqOf-DataBits
+ ganssDataBits SeqOf-GANSSDataBits,
+ ...
+}
+
+SeqOf-GANSSDataBits ::= SEQUENCE (SIZE(1 .. 1024)) OF GANSSDataBit
+GANSSDataBit ::= INTEGER(0 .. 1)
+
+-- GANSS Reference Measurement Assistance IE
+-- Code and Doppler assistance from the network.
+GANSSRefMeasurementAssist ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- Coding according to Annex
+ ganssRefMeasAssistList SeqOfGANSSRefMeasurementElement
+}
+
+SeqOfGANSSRefMeasurementElement ::= SEQUENCE (SIZE(1 .. 16)) OF GANSSRefMeasurementElement
+
+GANSSRefMeasurementElement ::= SEQUENCE {
+ svID SVID,
+ -- Doppler 0th order term,
+ -- -1024 m/s to 1023.5 m/s with 0.5 m/s resolution)
+ doppler0 INTEGER (-2048 .. 2047), -- Coding according to Annex
+ additionalDoppler AdditionalDopplerFields OPTIONAL,
+ codePhase INTEGER (0 .. 1022), -- Code Phase in ms
+ intCodePhase INTEGER (0 .. 127), -- Integer Code Phase in ms
+ codePhaseSearchWindow INTEGER (0 .. 31), -- Code Phase Search Window, see Annex
+ additionalAngle AddionalAngleFields OPTIONAL,
+ ...
+}
+
+AdditionalDopplerFields ::= SEQUENCE {
+ -- Doppler 1st order term, -0.2 - +0.1 m/s2
+ -- ( = -42 + (0 to 63) with 1/210 m/s2 resolution)
+ doppler1 INTEGER (0..63),
+ dopplerUncertainty INTEGER (0..4)
+}
+-- GANSS Reference Measurement Rel-10 Extension:
+-- GANSSRefMeasurementAssist-R10-Ext shall contain the same number of elements as the
+-- SeqOfGANSSRefMeasurementElement included in GANSSRefMeasurementAssist IE
+GANSSRefMeasurementAssist-R10-Ext ::= SEQUENCE (SIZE(1 .. 16)) OF
+ GANSSRefMeasurement-R10-Ext-Element
+
+GANSSRefMeasurement-R10-Ext-Element ::= SEQUENCE {
+ svID SVID,
+ azimuthLSB INTEGER(0..15),
+ elevationLSB INTEGER(0..15)
+}
+
+-- GANSS Almanac Model IE
+GANSSAlmanacModel ::= SEQUENCE {
+ weekNumber INTEGER (0 .. 255),
+ toa INTEGER (0 .. 255) OPTIONAL,
+ ioda INTEGER (0 .. 3) OPTIONAL,
+ ganssAlmanacList SeqOfGANSSAlmanacElement
+}
+
+
+SeqOfGANSSAlmanacElement ::= SEQUENCE (SIZE(1 .. 36)) OF GANSSAlmanacElement
+
+-- GANSS Almanac Model
+GANSSAlmanacElement ::= CHOICE {
+ keplerianAlmanacSet Almanac-KeplerianSet, -- Model-1
+ ...,
+ keplerianNAVAlmanac Almanac-NAVKeplerianSet, -- Model-2
+ keplerianReducedAlmanac Almanac-ReducedKeplerianSet, -- Model-3
+ keplerianMidiAlmanac Almanac-MidiAlmanacSet, -- Model-4
+ keplerianGLONASS Almanac-GlonassAlmanacSet, -- Model-5
+ ecefSBASAlmanac Almanac-ECEFsbasAlmanacSet -- Model-6
+}
+
+-- Almanac parameters according to Keplerian parameters
+Almanac-KeplerianSet ::= SEQUENCE {
+ svID SVID,
+ kepAlmanacE INTEGER (0 .. 2047),
+ kepAlmanacDeltaI INTEGER (-1024 .. 1023),
+ kepAlmanacOmegaDot INTEGER (-1024 .. 1023),
+ kepSVHealth INTEGER (0 .. 15), -- Coding according to Annex
+ kepAlmanacAPowerHalf INTEGER (-65536 .. 65535),
+ kepAlmanacOmega0 INTEGER (-32768 .. 32767),
+ kepAlmanacW INTEGER (-32768 .. 32767),
+ kepAlmanacM0 INTEGER (-32768 .. 32767),
+ kepAlmanacAF0 INTEGER (-8192 .. 8191),
+ kepAlmanacAF1 INTEGER (-1024..1023)
+}
+
+Almanac-NAVKeplerianSet ::= SEQUENCE {
+ svID SVID,
+ navAlmE INTEGER (0..65535),
+ navAlmDeltaI INTEGER (-32768..32767),
+ navAlmOMEGADOT INTEGER (-32768..32767),
+ navAlmSVHealth INTEGER (0..255),
+ navAlmSqrtA INTEGER (0..16777215),
+ navAlmOMEGAo INTEGER (-8388608..8388607),
+ navAlmOmega INTEGER (-8388608..8388607),
+ navAlmMo INTEGER (-8388608..8388607),
+ navAlmaf0 INTEGER (-1024..1023),
+ navAlmaf1 INTEGER (-1024..1023)
+}
+
+Almanac-ReducedKeplerianSet ::= SEQUENCE {
+ svID SVID,
+ redAlmDeltaA INTEGER (-128..127),
+ redAlmOmega0 INTEGER (-64..63),
+ redAlmPhi0 INTEGER (-64..63),
+ redAlmL1Health BOOLEAN,
+ redAlmL2Health BOOLEAN,
+ redAlmL5Health BOOLEAN
+}
+
+Almanac-MidiAlmanacSet ::= SEQUENCE {
+ svID SVID,
+ midiAlmE INTEGER (0..2047),
+ midiAlmDeltaI INTEGER (-1024..1023),
+ midiAlmOmegaDot INTEGER (-1024..1023),
+ midiAlmSqrtA INTEGER (0..131071),
+ midiAlmOmega0 INTEGER (-32768..32767),
+ midiAlmOmega INTEGER (-32768..32767),
+ midiAlmMo INTEGER (-32768..32767),
+ midiAlmaf0 INTEGER (-1024..1023),
+ midiAlmaf1 INTEGER (-512..511),
+ midiAlmL1Health BOOLEAN,
+ midiAlmL2Health BOOLEAN,
+ midiAlmL5Health BOOLEAN
+}
+
+Almanac-GlonassAlmanacSet ::= SEQUENCE {
+ gloAlmNA INTEGER (1..1461),
+ gloAlmnA INTEGER (1..24),
+ gloAlmHA INTEGER (0..31),
+ gloAlmLambdaA INTEGER (-1048576..1048575),
+ gloAlmtlambdaA INTEGER (0..2097151),
+ gloAlmDeltaIa INTEGER (-131072..131071),
+ gloAlmDeltaTA INTEGER (-2097152..2097151),
+ gloAlmDeltaTdotA INTEGER (-64..63),
+ gloAlmEpsilonA INTEGER (0..32767),
+ gloAlmOmegaA INTEGER (-32768..32767),
+ gloAlmTauA INTEGER (-512..511),
+ gloAlmCA INTEGER (0..1),
+ gloAlmMA BIT STRING (SIZE(2)) OPTIONAL
+}
+
+Almanac-ECEFsbasAlmanacSet ::= SEQUENCE {
+ sbasAlmDataID INTEGER (0..3),
+ svID SVID,
+ sbasAlmHealth BIT STRING (SIZE(8)),
+ sbasAlmXg INTEGER (-16384..16383),
+ sbasAlmYg INTEGER (-16384..16383),
+ sbasAlmZg INTEGER (-256..255),
+ sbasAlmXgdot INTEGER (-4..3),
+ sbasAlmYgDot INTEGER (-4..3),
+ sbasAlmZgDot INTEGER (-8..7),
+ sbasAlmTo INTEGER (0..2047)
+}
+
+-- GANSS Almanac Model Rel-10 Extension
+GANSSAlmanacModel-R10-Ext ::= SEQUENCE {
+ completeAlmanacProvided BOOLEAN -- TRUE means that complete Almanac is provided
+}
+
+-- GANSS Universal Time Coordinate Model (Model-1)
+GANSSUTCModel ::= SEQUENCE {
+ ganssUtcA1 INTEGER (-8388608..8388607),
+ ganssUtcA0 INTEGER (-2147483648..2147483647),
+ ganssUtcTot INTEGER (0..255),
+ ganssUtcWNt INTEGER (0..255),
+ ganssUtcDeltaTls INTEGER (-128..127),
+ ganssUtcWNlsf INTEGER (0..255),
+ ganssUtcDN INTEGER (-128..127),
+ ganssUtcDeltaTlsf INTEGER (-128..127)
+}
+
+--GANSS Ephemeris Extension
+GANSSEphemerisExtension ::= SEQUENCE {
+ ganssEphemerisHeader GANSSEphemerisExtensionHeader OPTIONAL,
+ ganssReferenceSet SeqOfGANSSRefOrbit OPTIONAL,
+ ganssephemerisDeltasMatrix GANSSEphemerisDeltaMatrix OPTIONAL,
+...
+}
+
+-- The ganssEphemerisHeader and the ganssReferenceSet are mandatory only once in the delivery of the
+-- GANSS Ephemeris Extension. The ganssReferenceSet shall include all healthy satellite vehicles
+-- at the time of message construction.
+
+GANSSEphemerisExtensionHeader ::= SEQUENCE {
+ timeAtEstimation GANSSEphemerisExtensionTime,
+ validityPeriod INTEGER(1..8),
+-- The validity period, represented in hours, is the validity period of each individual ephemeris
+-- delta payload
+ ephemerisExtensionDuration INTEGER(1..512),
+-- If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS
+-- should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris
+-- extension capability at this time.
+...
+}
+
+GANSSEphemerisExtensionTime ::= SEQUENCE {
+ ganssEphExtDay INTEGER(0..8191),
+ ganssEphExtTOD GANSSTOD,
+...
+}
+
+-- Reference Nav Model for Ephepmeris Extension
+ReferenceNavModel ::= SEQUENCE {
+ keplerToe INTEGER (0..37799),
+ keplerW INTEGER (-2147483648..2147483647),
+ keplerDeltaN INTEGER (-32768..32767),
+ keplerM0 INTEGER (-2147483648..2147483647),
+ keplerOmegaDot INTEGER (-8388608..8388607),
+ keplerE INTEGER (0..4294967295),
+ keplerIDot INTEGER (-8192..8191),
+ keplerAPowerHalf INTEGER (0.. 4294967295),
+ keplerI0 INTEGER (-2147483648..2147483647),
+ keplerOmega0 INTEGER (-2147483648..2147483647),
+ keplerCrs INTEGER (-32768..32767),
+ keplerCis INTEGER (-32768..32767),
+ keplerCus INTEGER (-32768..32767),
+ keplerCrc INTEGER (-32768..32767),
+ keplerCic INTEGER (-32768..32767),
+ keplerCuc INTEGER (-32768..32767)
+}
+
+SeqOfGANSSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GANSSReferenceOrbit
+--The number of reference orbits can be read from number of elements in this sequence
+
+GANSSReferenceOrbit ::= SEQUENCE {
+ svID SVID,
+ ganssOrbitModel ReferenceNavModel,
+ ganssClockModel GANSSClockModel,
+...
+}
+
+GANSSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GANSSEphemerisDeltaEpoch
+
+GANSSEphemerisDeltaEpoch ::= SEQUENCE {
+ ganssDeltaEpochHeader GANSSDeltaEpochHeader OPTIONAL,
+ ganssDeltaElementList GANSSDeltaElementList,
+...
+}
+-- Each GANSSDeltaEpoch element contains a header and the delta values for a particular time window
+-- for all PRN's.
+
+GANSSDeltaEpochHeader ::= SEQUENCE {
+ validityPeriod INTEGER(1..8) OPTIONAL,
+ ephemerisDeltaSizes GANSSEphemerisDeltaBitSizes OPTIONAL,
+ ephemerisDeltaScales GANSSEphemerisDeltaScales OPTIONAL,
+...
+}
+-- In each of the GANSSDeltaEpochs, if the optional element, validityPeriod is not included, the
+-- value in GANSSEphemerisExtensionHeader shall be used. If the optional elements
+-- ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta
+-- sizes and scales shall be used. The default sizes and scales are found in the annex in the
+-- table 55.11.
+
+GANSSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..49))
+-- Each octet string element in GANSSDeltaElementList corresponds to one PRN within one epoch
+
+-- Table 55.11 of the annex shows the organization of the delta ephemeris octet string.
+-- Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes
+-- table to learn the length and order of each of the parameters in the ephemerisDelta payload.
+
+-- Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the
+-- scale factors to apply to the terms in the delta ephemeris.
+
+-- Ephemeris Delta Bit Sizes.
+
+GANSSEphemerisDeltaBitSizes ::= SEQUENCE {
+
+-- This structure defines the order and sizes of the fields in the GANSSDeltaEpoch octet string
+-- seqNum and svID are the first two elements of each GANSS Ephemeris Delta Element Structure
+-- seqNum is always 7 bits, and svID is always 6 bits long and are thus not included in
+-- the GANSSEphemerisDeltaBitSizes table. The value of seqNum indicates the GANSSDeltaEpoch number
+
+-- The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and
+-- seqNum as the first two elements (in that order),in each block.
+
+ bitsize-delta-omega INTEGER(1..32),
+ bitsize-delta-deltaN INTEGER(1..16),
+ bitsize-delta-m0 INTEGER(1..32),
+ bitsize-delta-omegadot INTEGER(1..24),
+ bitsize-delta-e INTEGER(1..32),
+ bitsize-delta-idot INTEGER(1..14),
+ bitsize-delta-sqrtA INTEGER(1..32),
+ bitsize-delta-i0 INTEGER(1..32),
+ bitsize-delta-omega0 INTEGER(1..32),
+ bitsize-delta-crs INTEGER(1..16),
+ bitsize-delta-cis INTEGER(1..16),
+ bitsize-delta-cus INTEGER(1..16),
+ bitsize-delta-crc INTEGER(1..16),
+ bitsize-delta-cic INTEGER(1..16),
+ bitsize-delta-cuc INTEGER(1..16),
+ bitsize-delta-tgd1 INTEGER(1..10),
+ bitsize-delta-tgd2 INTEGER(1..10),
+...
+}
+
+GANSSEphemerisDeltaScales ::= SEQUENCE {
+
+ scale-delta-omega INTEGER(-16..15),
+ scale-delta-deltaN INTEGER(-16..15),
+ scale-delta-m0 INTEGER(-16..15),
+ scale-delta-omegadot INTEGER(-16..15),
+ scale-delta-e INTEGER(-16..15),
+ scale-delta-idot INTEGER(-16..15),
+ scale-delta-sqrtA INTEGER(-16..15),
+ scale-delta-i0 INTEGER(-16..15),
+ scale-delta-omega0 INTEGER(-16..15),
+ scale-delta-crs INTEGER(-16..15),
+ scale-delta-cis INTEGER(-16..15),
+ scale-delta-cus INTEGER(-16..15),
+ scale-delta-crc INTEGER(-16..15),
+ scale-delta-cic INTEGER(-16..15),
+ scale-delta-cuc INTEGER(-16..15),
+ scale-delta-tgd1 INTEGER(-16..15),
+ scale-delta-tgd2 INTEGER(-16..15),
+...
+}
+
+-- GANSS Ephemeris Extension Check
+GANSSEphemerisExtensionCheck ::= SEQUENCE {
+ ganssBeginTime GANSSEphemerisExtensionTime,
+ ganssEndTime GANSSEphemerisExtensionTime,
+ ganssSatEventsInfo GANSSSatEventsInfo,
+...
+}
+
+GANSSSatEventsInfo ::= SEQUENCE {
+ eventOccured BIT STRING (SIZE (64)),
+ futureEventNoted BIT STRING (SIZE (64)),
+...
+}
+-- If a bit is clear in the eventOccured field it indicates that no known errors have occured
+-- between the current time and the ganssBeginTime nor is a maneuver planned for the next sixty
+-- minutes.
+-- If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the
+-- time period between current time plus sixty minutes and the ganssEndTime
+-- GANSS Additional Universal Time Coordinate Model
+GANSSAddUTCModel ::= CHOICE {
+ utcModel2 UTCmodelSet2,
+ utcModel3 UTCmodelSet3,
+ utcModel4 UTCmodelSet4,
+ ...
+}
+
+UTCmodelSet2 ::= SEQUENCE {
+ utcA0 INTEGER (-32768..32767),
+ utcA1 INTEGER (-4096.. 4095),
+ utcA2 INTEGER (-64..63),
+ utcDeltaTls INTEGER (-128.. 127),
+ utcTot INTEGER (0..65535),
+ utcWNot INTEGER (0..8191),
+ utcWNlsf INTEGER (0..255),
+ utcDN BIT STRING (SIZE(4)),
+ utcDeltaTlsf INTEGER (-128..127)
+}
+
+UTCmodelSet3 ::= SEQUENCE {
+ nA INTEGER (1..1461),
+ tauC INTEGER (-2147483648..2147483647),
+ b1 INTEGER (-1024..1023) OPTIONAL,
+ b2 INTEGER (-512..511) OPTIONAL,
+ kp BIT STRING (SIZE(2)) OPTIONAL
+}
+
+UTCmodelSet4 ::= SEQUENCE {
+ utcA1wnt INTEGER (-8388608..8388607),
+ utcA0wnt INTEGER (-2147483648..2147483647),
+ utcTot INTEGER (0..255),
+ utcWNt INTEGER (0..255),
+ utcDeltaTls INTEGER (-128..127),
+ utcWNlsf INTEGER (0..255),
+ utcDN INTEGER (-128..127),
+ utcDeltaTlsf INTEGER (-128..127),
+ utcStandardID INTEGER (0..7) -- coding according to annex
+}
+
+-- GANSS Auxiliary Information
+GANSSAuxiliaryInformation ::= CHOICE{
+ ganssID1 GANSS-ID1, -- This choice may only be present if GANSS ID indicates Modernized GPS
+ ganssID3 GANSS-ID3, -- This choice may only be present if GANSS ID indicates GLONASS
+ ...
+}
+
+GANSS-ID1 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID1-element
+
+GANSS-ID1-element ::= SEQUENCE {
+ svID SVID,
+ signalsAvailable GANSSSignals,
+ ...
+}
+
+GANSS-ID3 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID3-element
+
+GANSS-ID3-element ::= SEQUENCE {
+ svID SVID,
+ signalsAvailable GANSSSignals,
+ channelNumber INTEGER (-7..13),
+ ...
+}
+
+-- DGANSS Corrections Validity Period:
+-- This element may only be included if GANSSDiffCorrections IE is included in
+-- GANSSGenericAssistDataElement element.
+-- GANSSDiffCorrectionsValidityPeriod shall contain the same number of elements as the
+-- SeqOfSgnTypeElement included in GANSSDiffCorrections IE
+GANSSDiffCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..3)) OF DGANSSExtensionSgnTypeElement
+
+DGANSSExtensionSgnTypeElement ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- signal type identity
+ dganssExtensionSgnList SeqOfDGANSSExtensionSgnElement
+}
+
+-- SeqOfDGANSSExtensionSgnElement shall contain the same number of elements as the
+-- SeqOfDGANSSSgnElement included in GANSSDiffCorrections IE
+SeqOfDGANSSExtensionSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSExtensionSgnElement
+
+DGANSSExtensionSgnElement ::= SEQUENCE {
+ svID SVID, -- Satellite identity
+ udreGrowthRate INTEGER(0..7), -- coding according to annex
+ udreValidityTime INTEGER(0..7), -- coding according to annex
+ ...
+}
+
+--Required Measurement Request Response Time, range is 1 to 128 seconds.
+RequiredResponseTime ::= INTEGER (1..128)
+
+-- Control header for additional GPS assistance data
+Add-GPS-AssistData ::= SEQUENCE {
+ add-GPS-controlHeader Add-GPS-ControlHeader
+}
+
+Add-GPS-ControlHeader ::= SEQUENCE {
+ gpsEphemerisExtension GPSEphemerisExtension OPTIONAL,
+ gpsEphemerisExtensionCheck GPSEphemerisExtensionCheck OPTIONAL,
+ ... ,
+ dgpsCorrectionsValidityPeriod DGPSCorrectionsValidityPeriod OPTIONAL,
+ -- If ReferenceTime is included in ControlHeader, GPSReferenceTime-R10-Ext
+ -- shall also be included.
+ gpsReferenceTime-R10-Ext GPSReferenceTime-R10-Ext OPTIONAL,
+ -- If AcquisAssist is included in ControlHeader, GPSAcquisAssist-R10-Ext
+ -- shall also be included.
+ gpsAcquisAssist-R10-Ext GPSAcquisAssist-R10-Ext OPTIONAL,
+ -- If Almanac is included in ControlHeader, GPSAlmanac-R10-Ext
+ -- shall also be included.
+ gpsAlmanac-R10-Ext GPSAlmanac-R10-Ext OPTIONAL
+}
+
+GPSClockModel ::= SEQUENCE {
+ af2 INTEGER (-128..127),
+ af1 INTEGER (-32768..32767),
+ af0 INTEGER (-2097152..2097151),
+ tgd INTEGER (-128..127)
+}
+
+--GPS Ephemeris Extension
+GPSEphemerisExtension ::= SEQUENCE {
+ gpsEphemerisHeader GPSEphemerisExtensionHeader OPTIONAL,
+ gpsReferenceSet SeqOfGPSRefOrbit OPTIONAL,
+ gpsephemerisDeltaMatrix GPSEphemerisDeltaMatrix OPTIONAL,
+...
+}
+
+-- The gpsEphemerisHeader and the gpsReferenceSet are mandatory only once in the delivery of the
+-- GPS Ephemeris Extension. The gpsReferenceSet shall include all healthy satellite vehicles at the
+-- time of message construction
+
+-- The SMLC is required to deliver the gpsReferenceSet for all healthy satellite vehicles
+-- at the time of message construction.
+
+GPSEphemerisExtensionHeader ::= SEQUENCE {
+ timeofEstimation GPSEphemerisExtensionTime,
+ validityPeriod INTEGER(1..8),
+-- The validity period, represented in hours is the validity period of each individual ephemeris
+-- delta payload
+ ephemerisExtensionDuration INTEGER(1..512),
+-- If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS
+-- should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris
+-- extension capability at this time.
+...
+}
+
+GPSEphemerisExtensionTime ::= SEQUENCE {
+ gpsWeek GPSWeek,
+ gpsTOW INTEGER (0..604799),
+...
+}
+
+SeqOfGPSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GPSReferenceOrbit
+--The number of reference orbits can be read from number of elements in this sequence
+
+GPSReferenceOrbit ::= SEQUENCE {
+ svID SVID,
+ gpsOrbitModel ReferenceNavModel,
+ gpsClockModel GPSClockModel,
+...
+}
+
+GPSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GPSEphemerisDeltaEpoch
+
+GPSEphemerisDeltaEpoch ::= SEQUENCE {
+ gpsDeltaEpochHeader GPSDeltaEpochHeader OPTIONAL,
+ gpsDeltaElementList GPSDeltaElementList,
+...
+}
+
+-- Each GPSDeltaEpoch element contains a header and the delta values for a particular time window
+-- for all PRN's.
+GPSDeltaEpochHeader ::= SEQUENCE {
+ validityPeriod INTEGER(1..8) OPTIONAL,
+ ephemerisDeltaSizes GPSEphemerisDeltaBitSizes OPTIONAL,
+ ephemerisDeltaScales GPSEphemerisDeltaScales OPTIONAL,
+...
+}
+
+-- In each of the GPSDeltaEpochs, if the optional element validityPeriod is not included,
+-- the value in GPSEphemerisExtensionHeader shall be used. if the optional elements
+-- ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta
+-- sizes and scales shall be used. The default sizes and scales are found in the annex in section
+-- A.29.m
+
+GPSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..47))
+
+-- Each octet string element in GPSDeltaElementList corresponds to one PRN within one epoch
+
+-- Table A.29.m of the annex shows the organization of the delta ephemeris octet string.
+-- Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes
+-- table to learn the length and order of each of the parameters in the ephemerisDelta payload
+
+-- Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the.
+-- scale factors to apply to the terms in the delta ephemeris
+
+-- Ephemeris Delta Bit Sizes.
+
+GPSEphemerisDeltaBitSizes ::= SEQUENCE {
+
+-- This structure defines the order and sizes of the fields in the GPSsDeltaEpoch octet string
+-- seqNum and svID are the first two elements of each GPS Ephemeris Delta Element Structure
+-- seqNum is always 7 bits, and svID is always 5 bits long and are thus not included in
+-- the GPSEphemerisDeltaBitSizes table. seqNum indicates the GPSDeltaEpoch number.
+
+-- The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and
+-- seqNum as the first two elements (in that order),in each block.
+
+ bitsize-delta-omega INTEGER(1..32),
+ bitsize-delta-deltaN INTEGER(1..16),
+ bitsize-delta-m0 INTEGER(1..32),
+ bitsize-delta-omegadot INTEGER(1..24),
+ bitsize-delta-e INTEGER(1..32),
+ bitsize-delta-idot INTEGER(1..14),
+ bitsize-delta-sqrtA INTEGER(1..32),
+ bitsize-delta-i0 INTEGER(1..32),
+ bitsize-delta-omega0 INTEGER(1..32),
+ bitsize-delta-crs INTEGER(1..16),
+ bitsize-delta-cis INTEGER(1..16),
+ bitsize-delta-cus INTEGER(1..16),
+ bitsize-delta-crc INTEGER(1..16),
+ bitsize-delta-cic INTEGER(1..16),
+ bitsize-delta-cuc INTEGER(1..16),
+ bitsize-delta-tgd INTEGER(1..10),
+...
+}
+
+GPSEphemerisDeltaScales ::= SEQUENCE {
+ scale-delta-omega INTEGER(-16..15),
+ scale-delta-deltaN INTEGER(-16..15),
+ scale-delta-m0 INTEGER(-16..15),
+ scale-delta-omegadot INTEGER(-16..15),
+ scale-delta-e INTEGER(-16..15),
+ scale-delta-idot INTEGER(-16..15),
+ scale-delta-sqrtA INTEGER(-16..15),
+ scale-delta-i0 INTEGER(-16..15),
+ scale-delta-omega0 INTEGER(-16..15),
+ scale-delta-crs INTEGER(-16..15),
+ scale-delta-cis INTEGER(-16..15),
+ scale-delta-cus INTEGER(-16..15),
+ scale-delta-crc INTEGER(-16..15),
+ scale-delta-cic INTEGER(-16..15),
+ scale-delta-cuc INTEGER(-16..15),
+ scale-delta-tgd INTEGER(-16..15),
+...
+}
+
+GPSEphemerisExtensionCheck ::= SEQUENCE {
+ gpsBeginTime GPSEphemerisExtensionTime,
+ gpsEndTime GPSEphemerisExtensionTime,
+ gpsSatEventsInfo GPSSatEventsInfo,
+...
+}
+
+GPSSatEventsInfo ::= SEQUENCE {
+ eventOccured BIT STRING (SIZE (32)),
+ futureEventNoted BIT STRING (SIZE (32)),
+...
+}
+-- If a bit is clear in the eventOccured field it indicates that no known errors have occured since
+-- the gpsBeginTime nor is a maneuver planned for the next sixty minutes.
+-- If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the
+-- time period between current time plus sixty minutes and gpsEndTime
+
+-- DGPS Corrections Validity Period:
+-- This element may only be included if DGPSCorrections IE is included in ControlHeader element.
+-- DGPSCorrectionsValidityPeriod shall contain the same number of elements as the SeqOfSatElement
+-- included in DGPSCorrections IE
+DGPSCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..16)) OF DGPSExtensionSatElement
+
+DGPSExtensionSatElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ udreGrowthRate INTEGER(0..7), -- coding according to annex
+ udreValidityTime INTEGER(0..7), -- coding according to annex
+ ...
+}
+
+-- GPS Reference Time Rel-10 Extension:
+GPSReferenceTime-R10-Ext ::= SEQUENCE {
+ gpsWeekCycleNumber INTEGER(0..7) -- coding according to annex
+}
+
+-- GPS Acquisition Assistance Rel-10 Extension:
+-- GPSAcquisAssist-R10-Ext shall contain the same number of elements as the SeqOfAcquisElement
+-- included in AcquisAssist IE
+GPSAcquisAssist-R10-Ext ::= SEQUENCE(SIZE (1..16)) OF GPSAcquisAssist-R10-Ext-Element
+
+GPSAcquisAssist-R10-Ext-Element::= SEQUENCE {
+ satelliteID SatelliteID,
+ azimuthLSB INTEGER(0..15),
+ elevationLSB INTEGER(0..15)
+}
+
+-- GPS Almanac Rel-10 Extension:
+GPSAlmanac-R10-Ext ::= SEQUENCE {
+ completeAlmanacProvided BOOLEAN -- TRUE means that complete Almanac is provided
+}
+
+Rel-7-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ velEstimate VelocityEstimate OPTIONAL,
+ -- Horizontal Velocity
+ -- Horizontal with Vertical Velocity
+ -- Horizontal Velocity with Uncertainty
+ -- Horizontal with Vertical Velocity and Uncertainty
+ ganssLocationInfo GANSSLocationInfo OPTIONAL,
+ ganssMeasureInfo GANSSMeasureInfo OPTIONAL,
+ ...
+-- Further Release 7 extensions here
+}
+
+-- GANSS Location Information contains location estimate, time stamp with uncertainty
+-- and optionally Reference Frame field
+GANSSLocationInfo ::= SEQUENCE {
+ referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
+ ganssTODm GANSSTODm OPTIONAL, -- GNSS TOD modulo
+ ganssTODFrac INTEGER (0 .. 16384) OPTIONAL, -- Coding according to Annex
+ -- a value of 16384 shall not be encoded by the sender
+ -- the receiver shall consider a value of 16384 to be invalid data
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
+ ganssTimeID INTEGER (0 .. 7) OPTIONAL, -- Coding according to Annex
+ fixType FixType,
+ posData PositionData,
+ stationaryIndication INTEGER(0 .. 1) OPTIONAL, -- '0' if moving or motion not
+ -- known
+ -- Possible shapes carried in posEstimate are
+ -- ellipsoid point,
+ -- ellipsoid point with uncertainty circle
+ -- ellipsoid point with uncertainty ellipse
+ -- ellipsoid point with altitude and uncertainty ellipsoid
+ posEstimate Ext-GeographicalInformation,
+ ...
+}
+
+PositionData ::= BIT STRING {
+ e-otd (0),
+ gps (1),
+ galileo (2),
+ sbas (3),
+ modernizedGPS (4),
+ qzss (5),
+ glonass (6) } (SIZE (3..16))
+
+-- GANSS TOD modulo 1 hour
+GANSSTODm ::= INTEGER (0 .. 3599999)
+
+ReferenceFrame ::= SEQUENCE {
+ referenceFN INTEGER (0 .. 65535),
+ -- Note that applicable range for referenceFN is 0 - 42431
+ referenceFNMSB INTEGER (0 .. 63) OPTIONAL -- MSB of Reference Frame Number
+}
+
+-- GANSS Measurement Information
+GANSSMeasureInfo ::= SEQUENCE {
+ -- Measurement info elements
+ganssMsrSetList SeqOfGANSS-MsrSetElement
+}
+SeqOfGANSS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GANSS-MsrSetElement
+
+-- GANSS measurement information 1-3 times in a message
+GANSS-MsrSetElement ::= SEQUENCE {
+ referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
+ -- if ganssTODm is included, it is the GNSS specific system time of the GANSS reported
+ -- first in ganss-SgnTypeList. If GPS Measurement Information element is not included in
+ -- a Measure Position Response component, this field shall be present.
+ ganssTODm GANSSTODm OPTIONAL, -- GANSS TOD modulo 1 hour
+ deltaGANSSTOD INTEGER (0 .. 127) OPTIONAL,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
+ --N_GANSS can be read from number of elements of SeqOfGANSS-MsrElement
+ ganss-MsrElementList SeqOfGANSS-MsrElement
+}
+
+SeqOfGANSS-MsrElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-MsrElement
+
+GANSS-MsrElement ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ ganss-SgnTypeList SeqOfGANSS-SgnTypeElement
+}
+
+-- Measurements can be returned up to 8 different signal types
+-- N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement
+-- Reporting of multiple signal types as defined in A.2.2.4g
+SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-SgnTypeElement
+
+GANSS-SgnTypeElement ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- Coding according to Annex
+ ganssCodePhaseAmbiguity INTEGER (0 .. 127) OPTIONAL,
+ --N_SGN can be read from number of elements of SeqOfGANSS-SgnElement
+ ganss-SgnList SeqOfGANSS-SgnElement,
+ ...
+}
+
+-- Up to 16 Measurements can be returned per signal type
+SeqOfGANSS-SgnElement ::= SEQUENCE (SIZE(1..16)) OF GANSS-SgnElement
+
+
+GANSS-SgnElement ::= SEQUENCE {
+ svID SVID,
+ cNo INTEGER (0 .. 63),
+ mpathDet MpathIndic, -- Coding according to Annex
+ carrierQualityInd INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
+ codePhase INTEGER (0 .. 2097151),
+ integerCodePhase INTEGER (0 .. 127) OPTIONAL,
+ codePhaseRMSError INTEGER (0..63), -- Coding according to Annex
+ doppler INTEGER (-32768 .. 32767) OPTIONAL,
+ adr INTEGER (0 .. 33554431) OPTIONAL
+}
+
+Rel7-AssistanceData-Extension ::= SEQUENCE {
+ ganss-AssistData GANSS-AssistData OPTIONAL,
+ ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
+ ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+ add-GPS-AssistData Add-GPS-AssistData OPTIONAL,
+ ...
+-- Possibly more extensions for Release 7 here
+}
+
+-- Rel-7 Positioning Capability parameters here
+
+PosCapabilities ::= SEQUENCE {
+
+-- nonGANSSpositionMethods shall be included if and only if any
+-- of the non-GANSS methods is supported.
+ nonGANSSpositionMethods NonGANSSPositionMethods OPTIONAL,
+
+-- gANSSpositionMethods shall be included if and only if any of the GANSS methods is supported.
+ gANSSPositionMethods GANSSPositionMethods OPTIONAL,
+
+-- multipleMeasurementSets shall be present if and only if 'multiple sets' is supported
+-- for any of the positioning methods
+ multipleMeasurementSets MultipleMeasurementSets OPTIONAL,
+ ...
+}
+
+NonGANSSPositionMethods ::= BIT STRING {
+ msAssistedEOTD (0),
+ msBasedEOTD (1),
+ msAssistedGPS (2), -- If this bit is set, gpsAssistance in AssistanceSupported IE
+ -- shall be present
+ msBasedGPS (3), -- If this bit is set, gpsAssistance in AssistanceSupported IE
+ -- shall be present
+
+ standaloneGPS (4) } (SIZE (1..16))
+
+GANSSPositionMethods ::= SEQUENCE (SIZE(1..16)) OF GANSSPositionMethod
+
+GANSSPositionMethod ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+-- gANSSPositioningMethodTypes may be present for PosCapability-Req
+-- and shall be present for PosCapability-Rsp
+ gANSSPositioningMethodTypes GANSSPositioningMethodTypes OPTIONAL,
+ gANSSSignals GANSSSignals,
+ ... ,
+-- sbasID shall be present if and only if ganssID indicates SBAS
+ sbasID SBASID OPTIONAL
+}
+
+GANSSPositioningMethodTypes ::= BIT STRING {
+ msAssisted (0), -- If this bit is set, gANSSAssistanceSet in AssistanceSupported IE
+ -- shall be present.
+ msBased (1), -- If this bit is set, gANSSAssistanceSet in AssistanceSupported IE
+ -- shall be present.
+ standalone (2) } (SIZE (1..8))
+
+-- indicates MS support for particular GANSS signals and frequencies
+GANSSSignals ::= BIT STRING {
+ signal1 (0),
+ signal2 (1),
+ signal3 (2),
+ signal4 (3),
+ signal5 (4),
+ signal6 (5),
+ signal7 (6),
+ signal8 (7) } (SIZE (1..8))
+
+SBASID ::= BIT STRING {
+ waas (0),
+ egnos (1),
+ masas (2),
+ gagan (3) } (SIZE (1..8))
+
+-- indicates MS support of multiple measurement sets for MS assisted position methods
+MultipleMeasurementSets ::= BIT STRING {
+ eotd (0),
+ gps (1),
+ ganss (2) } (SIZE (1..8))
+
+-- indicates MS support of different types of assistance data
+AssistanceSupported ::= SEQUENCE {
+ gpsAssistance GPSAssistance OPTIONAL,
+ gANSSAssistanceSet GANSSAssistanceSet OPTIONAL,
+ ... ,
+-- gANSSAdditionalAssistanceChoices shall be present if the MS supports other than native models
+ gANSSAdditionalAssistanceChoices GANSSAdditionalAssistanceChoices OPTIONAL
+}
+
+-- GPS assistance data supported
+GPSAssistance ::= BIT STRING {
+ almanac (0),
+ uTCmodel (1),
+ ionosphericModel (2),
+ navigationmodel (3),
+ dGPScorrections (4),
+ referenceLocation (5),
+ referenceTime (6),
+ acquisitionAssistance (7),
+ realTimeIntegrity (8),
+ ephemerisExtension (9),
+ ephemerisExtensionCheck (10)} (SIZE (1..16))
+
+-- GANSS assistance data supported
+GANSSAssistanceSet ::= SEQUENCE {
+ commonGANSSAssistance CommonGANSSAssistance,
+ specificGANSSAssistance SpecificGANSSAssistance,
+ ...
+}
+
+-- Common GANSS assistance data supported
+CommonGANSSAssistance ::= BIT STRING {
+ referenceTime (0),
+ referenceLocation (1),
+ ionosphericModel (3),
+ addIonosphericModel (4),
+ earthOrientationParam (5) } (SIZE (1..8))
+
+SpecificGANSSAssistance ::= SEQUENCE (SIZE(1..16)) OF GANSSAssistanceForOneGANSS
+
+-- assistance data supported for a particular GANSS system
+GANSSAssistanceForOneGANSS ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ gANSSAssistance GANSSAssistance,
+ ...
+}
+
+-- specific GANSS assistance data supported
+GANSSAssistance ::= BIT STRING {
+ realTimeIntegrity (0),
+ differentialCorrections (1),
+ almanac (2),
+ referenceMeasurementInformation (3),
+ navigationModel (4),
+ timeModelGNSS-UTC (5),
+ timeModelGNSS-GNSS (6),
+ databitassistance (7),
+ ephemerisExtension (8),
+ ephemerisExtensionCheck (9),
+ addUTCmodel (10),
+ auxiliaryInformation (11) } (SIZE (1..16))
+
+
+GANSSAdditionalAssistanceChoices ::= SEQUENCE (SIZE(1..16)) OF GANSSAdditionalAssistanceChoicesForOneGANSS
+
+GANSSAdditionalAssistanceChoicesForOneGANSS ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ ganssClockModelChoice GANSSModelID OPTIONAL,
+ gannsOrbitModelChoice GANSSModelID OPTIONAL,
+ ganssAlmanacModelChoice GANSSModelID OPTIONAL,
+ ganssAdditionalUTCModelChoice GANSSModelID OPTIONAL,
+ ...
+}
+
+GANSSModelID ::= BIT STRING {
+ model1 (0),
+ model2 (1),
+ model3 (2),
+ model4 (3),
+ model5 (4),
+ model6 (5),
+ model7 (6),
+ model8 (7) } (SIZE (1..8))
+
+
+-- indicates assistance data that may be needed by the MS
+-- These elements are coded as defined in TS 49.031 with the exceptions defined in section A.8.2.3
+AssistanceNeeded ::= SEQUENCE {
+ gpsAssistanceData GPSAssistanceData OPTIONAL,
+ ganssAssistanceData GANSSAssistanceData OPTIONAL,
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/rrlp/RRLP-Messages.asn b/epan/dissectors/asn1/rrlp/RRLP-Messages.asn
new file mode 100644
index 0000000000..8c4bdc8445
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/RRLP-Messages.asn
@@ -0,0 +1,39 @@
+-- RRLP-Messages.asn
+-- Taken from 3GPP TS 44.031 V11.0.0 (2012-09)
+-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-b00.zip/44031-b00.doc
+--
+-- 3.1 General Format of RRLP Message
+--
+
+RRLP-Messages
+-- { RRLP-messages }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ MsrPosition-Req, MsrPosition-Rsp, AssistanceData,
+ ProtocolError, PosCapability-Req, PosCapability-Rsp
+FROM
+ RRLP-Components -- { RRLP-Components }
+;
+
+PDU ::= SEQUENCE {
+ referenceNumber INTEGER (0..7),
+ component RRLP-Component
+}
+
+RRLP-Component ::= CHOICE {
+ msrPositionReq MsrPosition-Req,
+ msrPositionRsp MsrPosition-Rsp,
+ assistanceData AssistanceData,
+ assistanceDataAck NULL,
+ protocolError ProtocolError,
+ ...,
+ posCapabilityReq PosCapability-Req,
+ posCapabilityRsp PosCapability-Rsp
+}
+
+END
+
diff --git a/epan/dissectors/asn1/rrlp/packet-rrlp-template.c b/epan/dissectors/asn1/rrlp/packet-rrlp-template.c
new file mode 100644
index 0000000000..3a3f7911c8
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/packet-rrlp-template.c
@@ -0,0 +1,102 @@
+/* packet-rrlp.c
+ * Routines for 3GPP Radio Resource LCS Protocol (RRLP) packet dissection
+ * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref 3GPP TS 44.031 version 11.0.0 Release 11
+ * http://www.3gpp.org
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-gsm_a_common.h"
+
+#define PNAME "Radio Resource LCS Protocol (RRLP)"
+#define PSNAME "RRLP"
+#define PFNAME "rrlp"
+
+
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+void proto_register_rrlp(void);
+void proto_reg_handoff_rrlp(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_rrlp = -1;
+
+
+#include "packet-rrlp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_rrlp = -1;
+#include "packet-rrlp-ett.c"
+
+/* Include constants */
+#include "packet-rrlp-val.h"
+
+
+#include "packet-rrlp-fn.c"
+
+
+/*--- proto_register_rrlp -------------------------------------------*/
+void proto_register_rrlp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-rrlp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_rrlp,
+#include "packet-rrlp-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_rrlp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("rrlp", dissect_PDU_PDU, proto_rrlp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_rrlp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+
+}
+
+
+/*--- proto_reg_handoff_rrlp ---------------------------------------*/
+void
+proto_reg_handoff_rrlp(void)
+{
+
+}
+
+
diff --git a/epan/dissectors/asn1/rrlp/rrlp.cnf b/epan/dissectors/asn1/rrlp/rrlp.cnf
new file mode 100644
index 0000000000..25e1e693f8
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/rrlp.cnf
@@ -0,0 +1,40 @@
+# rrlp.cnf
+# rrlp conformation file
+# Copyright 2006 Anders Broman
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.PDU
+PDU
+
+#.OMIT_ASSIGNMENTS_EXCEPT MAP-LCS-DataTypes
+Ext-GeographicalInformation
+maxExt-GeographicalInformation
+VelocityEstimate
+#.END
+
+#.OMIT_ASSIGNMENT MAP-ExtensionDataTypes
+SLR-ArgExtensionContainer
+SLR-Arg-PCS-Extensions
+#.END
+
+#.FN_HDR PDU
+
+ proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, ENC_NA);
+
+ col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "RRLP");
+#.END
+
+
+#.FN_BODY Ext-GeographicalInformation VAL_PTR = &parameter_tvb
+
+tvbuff_t *parameter_tvb = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(parameter_tvb)
+ dissect_geographical_description(parameter_tvb, %(ACTX)s->pinfo, tree);
+#.END
diff --git a/epan/dissectors/asn1/rtse/CMakeLists.txt b/epan/dissectors/asn1/rtse/CMakeLists.txt
new file mode 100644
index 0000000000..c82e3cca3d
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/CMakeLists.txt
@@ -0,0 +1,55 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME rtse )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/rtse/Makefile.am b/epan/dissectors/asn1/rtse/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/rtse/Makefile.common b/epan/dissectors/asn1/rtse/Makefile.common
new file mode 100644
index 0000000000..592fe01826
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=rtse
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/rtse/Makefile.nmake b/epan/dissectors/asn1/rtse/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/rtse/packet-rtse-template.c b/epan/dissectors/asn1/rtse/packet-rtse-template.c
new file mode 100644
index 0000000000..4cbba302c0
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/packet-rtse-template.c
@@ -0,0 +1,429 @@
+/* packet-rtse-template.c
+ * Routines for RTSE packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/conversation.h>
+#include <epan/prefs.h>
+#include <epan/reassemble.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include <wsutil/str_util.h>
+
+#include "packet-ber.h"
+#include "packet-pres.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+#include "packet-rtse.h"
+
+#define PNAME "X.228 OSI Reliable Transfer Service"
+#define PSNAME "RTSE"
+#define PFNAME "rtse"
+
+void proto_register_rtse(void);
+void proto_reg_handoff_rtse(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_rtse = -1;
+
+static gboolean open_request=FALSE;
+static guint32 app_proto=0;
+
+static proto_tree *top_tree=NULL;
+
+/* Preferences */
+static gboolean rtse_reassemble = TRUE;
+
+#include "packet-rtse-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_rtse = -1;
+#include "packet-rtse-ett.c"
+
+static expert_field ei_rtse_dissector_oid_not_implemented = EI_INIT;
+static expert_field ei_rtse_unknown_rtse_pdu = EI_INIT;
+static expert_field ei_rtse_abstract_syntax = EI_INIT;
+
+static dissector_table_t rtse_oid_dissector_table=NULL;
+static GHashTable *oid_table=NULL;
+static gint ett_rtse_unknown = -1;
+
+static reassembly_table rtse_reassembly_table;
+
+static int hf_rtse_segment_data = -1;
+static int hf_rtse_fragments = -1;
+static int hf_rtse_fragment = -1;
+static int hf_rtse_fragment_overlap = -1;
+static int hf_rtse_fragment_overlap_conflicts = -1;
+static int hf_rtse_fragment_multiple_tails = -1;
+static int hf_rtse_fragment_too_long_fragment = -1;
+static int hf_rtse_fragment_error = -1;
+static int hf_rtse_fragment_count = -1;
+static int hf_rtse_reassembled_in = -1;
+static int hf_rtse_reassembled_length = -1;
+
+static gint ett_rtse_fragment = -1;
+static gint ett_rtse_fragments = -1;
+
+static const fragment_items rtse_frag_items = {
+ /* Fragment subtrees */
+ &ett_rtse_fragment,
+ &ett_rtse_fragments,
+ /* Fragment fields */
+ &hf_rtse_fragments,
+ &hf_rtse_fragment,
+ &hf_rtse_fragment_overlap,
+ &hf_rtse_fragment_overlap_conflicts,
+ &hf_rtse_fragment_multiple_tails,
+ &hf_rtse_fragment_too_long_fragment,
+ &hf_rtse_fragment_error,
+ &hf_rtse_fragment_count,
+ /* Reassembled in field */
+ &hf_rtse_reassembled_in,
+ /* Reassembled length field */
+ &hf_rtse_reassembled_length,
+ /* Reassembled data field */
+ NULL,
+ /* Tag */
+ "RTSE fragments"
+};
+
+void
+register_rtse_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto, const char *name, gboolean uses_ros)
+{
+/* XXX: Note that this fcn is called from proto_reg_handoff in *other* dissectors ... */
+
+ static dissector_handle_t rtse_handle = NULL;
+ static dissector_handle_t ros_handle = NULL;
+
+ if (rtse_handle == NULL)
+ rtse_handle = find_dissector("rtse");
+ if (ros_handle == NULL)
+ ros_handle = find_dissector("ros");
+
+ /* save the name - but not used */
+ g_hash_table_insert(oid_table, (gpointer)oid, (gpointer)name);
+
+ /* register RTSE with the BER (ACSE) */
+ register_ber_oid_dissector_handle(oid, rtse_handle, proto, name);
+
+ if (uses_ros) {
+ /* make sure we call ROS ... */
+ dissector_add_string("rtse.oid", oid, ros_handle);
+
+ /* and then tell ROS how to dissect the AS*/
+ if (dissector != NULL)
+ register_ros_oid_dissector_handle(oid, dissector, proto, name, TRUE);
+
+ } else {
+ /* otherwise we just remember how to dissect the AS */
+ dissector_add_string("rtse.oid", oid, dissector);
+ }
+}
+
+static int
+call_rtse_oid_callback(const char *oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ tvbuff_t *next_tvb;
+ int len;
+
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ if ((len = dissector_try_string(rtse_oid_dissector_table, oid, next_tvb, pinfo, tree, data)) == 0) {
+ proto_item *item;
+ proto_tree *next_tree;
+
+ next_tree = proto_tree_add_subtree_format(tree, next_tvb, 0, -1, ett_rtse_unknown, &item,
+ "RTSE: Dissector for OID:%s not implemented. Contact Wireshark developers if you want this supported", oid);
+
+ expert_add_info_format(pinfo, item, &ei_rtse_dissector_oid_not_implemented,
+ "RTSE: Dissector for OID %s not implemented", oid);
+ len = dissect_unknown_ber(pinfo, next_tvb, offset, next_tree);
+ }
+
+ offset += len;
+
+ return offset;
+}
+
+static int
+call_rtse_external_type_callback(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_)
+{
+ const char *oid = NULL;
+
+ if (actx->external.indirect_ref_present) {
+
+ oid = (const char *)find_oid_by_pres_ctx_id(actx->pinfo, actx->external.indirect_reference);
+
+ if (!oid)
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_rtse_abstract_syntax, tvb, offset, tvb_captured_length_remaining(tvb, offset),
+ "Unable to determine abstract syntax for indirect reference: %d.", actx->external.indirect_reference);
+ } else if (actx->external.direct_ref_present) {
+ oid = actx->external.direct_reference;
+ }
+
+ if (oid)
+ offset = call_rtse_oid_callback(oid, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, actx->private_data);
+
+ return offset;
+}
+
+#include "packet-rtse-fn.c"
+
+/*
+* Dissect RTSE PDUs inside a PPDU.
+*/
+static int
+dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item;
+ proto_tree *tree;
+ proto_tree *next_tree=NULL;
+ tvbuff_t *next_tvb = NULL;
+ tvbuff_t *data_tvb = NULL;
+ fragment_head *frag_msg = NULL;
+ guint32 fragment_length;
+ guint32 rtse_id = 0;
+ gboolean data_handled = FALSE;
+ struct SESSION_DATA_STRUCTURE* session;
+ conversation_t *conversation = NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* do we have application context from the acse dissector? */
+ if (data == NULL)
+ return 0;
+ session = (struct SESSION_DATA_STRUCTURE*)data;
+
+ /* save parent_tree so subdissectors can create new top nodes */
+ top_tree=parent_tree;
+
+ asn1_ctx.private_data = session;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RTSE");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ if (rtse_reassemble &&
+ ((session->spdu_type == SES_DATA_TRANSFER) ||
+ (session->spdu_type == SES_MAJOR_SYNC_POINT)))
+ {
+ /* Use conversation index as fragment id */
+ conversation = find_conversation (pinfo->num,
+ &pinfo->src, &pinfo->dst, pinfo->ptype,
+ pinfo->srcport, pinfo->destport, 0);
+ if (conversation != NULL) {
+ rtse_id = conversation->index;
+ }
+ session->rtse_reassemble = TRUE;
+ }
+ if (rtse_reassemble && session->spdu_type == SES_MAJOR_SYNC_POINT) {
+ frag_msg = fragment_end_seq_next (&rtse_reassembly_table,
+ pinfo, rtse_id, NULL);
+ next_tvb = process_reassembled_data (tvb, offset, pinfo, "Reassembled RTSE",
+ frag_msg, &rtse_frag_items, NULL, parent_tree);
+ }
+
+ item = proto_tree_add_item(parent_tree, proto_rtse, next_tvb ? next_tvb : tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_rtse);
+
+ if (rtse_reassemble && session->spdu_type == SES_DATA_TRANSFER) {
+ /* strip off the OCTET STRING encoding - including any CONSTRUCTED OCTET STRING */
+ dissect_ber_octet_string(FALSE, &asn1_ctx, tree, tvb, offset, hf_rtse_segment_data, &data_tvb);
+
+ if (data_tvb) {
+ fragment_length = tvb_captured_length_remaining (data_tvb, 0);
+ proto_item_append_text(asn1_ctx.created_item, " (%u byte%s)", fragment_length,
+ plurality(fragment_length, "", "s"));
+ frag_msg = fragment_add_seq_next (&rtse_reassembly_table,
+ data_tvb, 0, pinfo,
+ rtse_id, NULL,
+ fragment_length, TRUE);
+ if (frag_msg && pinfo->num != frag_msg->reassembled_in) {
+ /* Add a "Reassembled in" link if not reassembled in this frame */
+ proto_tree_add_uint (tree, *(rtse_frag_items.hf_reassembled_in),
+ data_tvb, 0, 0, frag_msg->reassembled_in);
+ }
+ pinfo->fragmented = TRUE;
+ data_handled = TRUE;
+ } else {
+ fragment_length = tvb_captured_length_remaining (tvb, offset);
+ }
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, "[RTSE fragment, %u byte%s]",
+ fragment_length, plurality(fragment_length, "", "s"));
+ } else if (rtse_reassemble && session->spdu_type == SES_MAJOR_SYNC_POINT) {
+ if (next_tvb) {
+ /* ROS won't do this for us */
+ session->ros_op = (ROS_OP_INVOKE | ROS_OP_ARGUMENT);
+ /*offset=*/dissect_ber_external_type(FALSE, tree, next_tvb, 0, &asn1_ctx, -1, call_rtse_external_type_callback);
+ top_tree = NULL;
+ /* Return other than 0 to indicate that we handled this packet */
+ return 1;
+ } else {
+ offset = tvb_captured_length (tvb);
+ }
+ pinfo->fragmented = FALSE;
+ data_handled = TRUE;
+ }
+
+ if (!data_handled) {
+ while (tvb_reported_length_remaining(tvb, offset) > 0) {
+ old_offset=offset;
+ offset=dissect_rtse_RTSE_apdus(TRUE, tvb, offset, &asn1_ctx, tree, -1);
+ if (offset == old_offset) {
+ next_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_rtse_unknown, &item, "Unknown RTSE PDU");
+ expert_add_info (pinfo, item, &ei_rtse_unknown_rtse_pdu);
+ dissect_unknown_ber(pinfo, tvb, offset, next_tree);
+ break;
+ }
+ }
+ }
+
+ top_tree = NULL;
+ return tvb_captured_length(tvb);
+}
+
+static void rtse_reassemble_init (void)
+{
+ reassembly_table_init (&rtse_reassembly_table,
+ &addresses_reassembly_table_functions);
+}
+
+static void rtse_reassemble_cleanup(void)
+{
+ reassembly_table_destroy(&rtse_reassembly_table);
+}
+
+/*--- proto_register_rtse -------------------------------------------*/
+void proto_register_rtse(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ /* Fragment entries */
+ { &hf_rtse_segment_data,
+ { "RTSE segment data", "rtse.segment", FT_NONE, BASE_NONE,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_rtse_fragments,
+ { "RTSE fragments", "rtse.fragments", FT_NONE, BASE_NONE,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_rtse_fragment,
+ { "RTSE fragment", "rtse.fragment", FT_FRAMENUM, BASE_NONE,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_rtse_fragment_overlap,
+ { "RTSE fragment overlap", "rtse.fragment.overlap", FT_BOOLEAN,
+ BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_rtse_fragment_overlap_conflicts,
+ { "RTSE fragment overlapping with conflicting data",
+ "rtse.fragment.overlap.conflicts", FT_BOOLEAN, BASE_NONE,
+ NULL, 0x0, NULL, HFILL } },
+ { &hf_rtse_fragment_multiple_tails,
+ { "RTSE has multiple tail fragments",
+ "rtse.fragment.multiple_tails", FT_BOOLEAN, BASE_NONE,
+ NULL, 0x0, NULL, HFILL } },
+ { &hf_rtse_fragment_too_long_fragment,
+ { "RTSE fragment too long", "rtse.fragment.too_long_fragment",
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ { &hf_rtse_fragment_error,
+ { "RTSE defragmentation error", "rtse.fragment.error", FT_FRAMENUM,
+ BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ { &hf_rtse_fragment_count,
+ { "RTSE fragment count", "rtse.fragment.count", FT_UINT32, BASE_DEC,
+ NULL, 0x00, NULL, HFILL } },
+ { &hf_rtse_reassembled_in,
+ { "Reassembled RTSE in frame", "rtse.reassembled.in", FT_FRAMENUM, BASE_NONE,
+ NULL, 0x00, "This RTSE packet is reassembled in this frame", HFILL } },
+ { &hf_rtse_reassembled_length,
+ { "Reassembled RTSE length", "rtse.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x00, "The total length of the reassembled payload", HFILL } },
+
+#include "packet-rtse-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_rtse,
+ &ett_rtse_unknown,
+ &ett_rtse_fragment,
+ &ett_rtse_fragments,
+#include "packet-rtse-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_rtse_dissector_oid_not_implemented, { "rtse.dissector_oid_not_implemented", PI_UNDECODED, PI_WARN, "RTSE: Dissector for OID not implemented", EXPFILL }},
+ { &ei_rtse_unknown_rtse_pdu, { "rtse.unknown_rtse_pdu", PI_UNDECODED, PI_WARN, "Unknown RTSE PDU", EXPFILL }},
+ { &ei_rtse_abstract_syntax, { "rtse.bad_abstract_syntax", PI_PROTOCOL, PI_WARN, "Unable to determine abstract syntax for indirect reference", EXPFILL }},
+ };
+
+ expert_module_t* expert_rtse;
+ module_t *rtse_module;
+
+ /* Register protocol */
+ proto_rtse = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("rtse", dissect_rtse, proto_rtse);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_rtse, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_rtse = expert_register_protocol(proto_rtse);
+ expert_register_field_array(expert_rtse, ei, array_length(ei));
+ register_init_routine (&rtse_reassemble_init);
+ register_cleanup_routine (&rtse_reassemble_cleanup);
+ rtse_module = prefs_register_protocol_subtree("OSI", proto_rtse, NULL);
+
+ prefs_register_bool_preference(rtse_module, "reassemble",
+ "Reassemble segmented RTSE datagrams",
+ "Whether segmented RTSE datagrams should be reassembled."
+ " To use this option, you must also enable"
+ " \"Allow subdissectors to reassemble TCP streams\""
+ " in the TCP protocol settings.", &rtse_reassemble);
+
+ rtse_oid_dissector_table = register_dissector_table("rtse.oid", "RTSE OID Dissectors", FT_STRING, BASE_NONE, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
+ oid_table=g_hash_table_new(g_str_hash, g_str_equal);
+
+
+}
+
+
+/*--- proto_reg_handoff_rtse --- */
+void proto_reg_handoff_rtse(void) {
+
+
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/rtse/packet-rtse-template.h b/epan/dissectors/asn1/rtse/packet-rtse-template.h
new file mode 100644
index 0000000000..9dce91e457
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/packet-rtse-template.h
@@ -0,0 +1,31 @@
+/* packet-rtse.h
+ * Routines for RTSE packet dissection
+ * Graeme Lunt 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_RTSE_H
+#define PACKET_RTSE_H
+
+#include "packet-rtse-exp.h"
+
+void register_rtse_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, gboolean uses_ros);
+
+#endif /* PACKET_RTSE_H */
diff --git a/epan/dissectors/asn1/rtse/rtse.asn b/epan/dissectors/asn1/rtse/rtse.asn
new file mode 100644
index 0000000000..dce9ca1af9
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/rtse.asn
@@ -0,0 +1,141 @@
+-- RTSE definition from
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x228/1988/Reliable-Transfer-APDU.html
+-- and modified to pass through asn2wrs
+--
+--
+-- Module Reliable-Transfer-APDU (X.228:11/1988)
+-- See also the README file
+-- See also the index of all ASN.1 assignments needed in this Recommendation
+
+
+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 {mts-transfer-protocol(12), mts-transfer-protocol-1984(1)} 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
+ [1] ANY OPTIONAL -- RTSE user data, only in normal mode--
+}
+
+RTTPapdu ::= INTEGER -- priority--
+
+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
+ [2] ANY OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+ConnectionData ::= CHOICE {
+-- open [0] OPEN.&Type,
+ open [0] ANY, -- 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/epan/dissectors/asn1/rtse/rtse.cnf b/epan/dissectors/asn1/rtse/rtse.cnf
new file mode 100644
index 0000000000..91e94fc9b9
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/rtse.cnf
@@ -0,0 +1,179 @@
+#.EXPORTS
+RTORQapdu
+RTOACapdu
+RTORJapdu
+RTABapdu
+
+#.NO_EMIT ONLY_VALS
+RTSE-apdus
+
+#.FN_BODY RTORJapdu/userDataRJ
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+ const char *oid = NULL;
+
+ switch(app_proto) {
+ case 1: /* mts-transfer-protocol-1984 */
+ oid = "applicationProtocol.1";
+ break;
+ case 12: /* mts-transfer-protocol */
+ oid = "applicationProtocol.12";
+ break;
+ default:
+ if(session && session->pres_ctx_id)
+ oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id);
+ break;
+ }
+
+ if(!oid) /* XXX: problem here is we haven't decoded the applicationProtocol yet - so we make assumptions! */
+ oid = "applicationProtocol.12";
+
+ if(oid) {
+ if(session != NULL)
+ session->ros_op = (ROS_OP_BIND | ROS_OP_ERROR);
+
+ offset = call_rtse_oid_callback(oid, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, session);
+ }
+
+#.FN_BODY RTABapdu/userdataAB
+/*XXX not implemented yet */
+
+#.FN_BODY RTORQapdu
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ if(session != NULL)
+ session->ros_op = (ROS_OP_BIND | ROS_OP_ARGUMENT);
+ open_request=TRUE;
+ %(DEFAULT_BODY)s
+ open_request=FALSE;
+
+#.FN_BODY RTOACapdu
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ if(session != NULL)
+ session->ros_op = (ROS_OP_BIND | ROS_OP_RESULT);
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY ConnectionData/open
+
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+ const char *oid = NULL;
+
+ switch(app_proto) {
+ case 1: /* mts-transfer-protocol-1984 */
+ oid = "applicationProtocol.1";
+ break;
+ case 12: /* mts-transfer-protocol */
+ oid = "applicationProtocol.12";
+ break;
+ default:
+ if(session && session->pres_ctx_id)
+ oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id);
+ break;
+ }
+
+ if(!oid) /* XXX: problem here is we haven't decoded the applicationProtocol yet - so we make assumptions! */
+ oid = "applicationProtocol.12";
+
+ if(oid) {
+
+ offset = call_rtse_oid_callback(oid, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, session);
+ }
+
+ /* else XXX: need to flag we can't find the presentation context */
+
+#.FN_BODY RTTRapdu
+ tvbuff_t *next_tvb = NULL;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
+
+ if(next_tvb) {
+
+ /* XXX: we should check is this is an EXTERNAL first */
+
+ /* ROS won't do this for us */
+ if(session)
+ session->ros_op = (ROS_OP_INVOKE | ROS_OP_ARGUMENT);
+
+ offset = dissect_ber_external_type(FALSE, tree, next_tvb, 0, actx, -1, call_rtse_external_type_callback);
+ }
+
+
+#.FN_BODY RTORQapdu/applicationProtocol
+
+ offset = dissect_ber_integer(TRUE, actx, tree, tvb, offset, hf_index, &app_proto);
+
+#.FN_BODY SessionConnectionIdentifier
+ if(open_request){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Recover");
+ }
+ %(DEFAULT_BODY)s
+
+#.END
+
+#.FN_BODY CallingSSuserReference/t61String VAL_PTR=&string
+ tvbuff_t *string = NULL;
+ %(DEFAULT_BODY)s
+ if(open_request && string)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_reported_length(string)));
+
+#.FN_PARS CommonReference
+ VAL_PTR=&string
+#.FN_BODY CommonReference
+ tvbuff_t *string = NULL;
+ %(DEFAULT_BODY)s
+ if(open_request && string)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_reported_length(string)));
+
+#.END
+
+#.FN_BODY CallingSSuserReference/octetString VAL_PTR=&string
+ tvbuff_t *string = NULL;
+ %(DEFAULT_BODY)s
+ if(open_request && string)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_reported_length(string)));
+
+#.FN_BODY RTTPapdu VAL_PTR=&priority
+ int priority = -1;
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Turn-Please");
+
+ %(DEFAULT_BODY)s
+
+ if(priority != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%d)", priority);
+
+#.FN_BODY RTORJapdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Refuse");
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS RefuseReason
+ VAL_PTR=&reason
+
+#.FN_BODY RefuseReason
+ int reason = -1;
+
+ %(DEFAULT_BODY)s
+
+ if(reason != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(reason, rtse_RefuseReason_vals, "reason(%%d)"));
+
+#.FN_BODY RTABapdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Abort");
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS AbortReason
+ VAL_PTR=&reason
+
+#.FN_BODY AbortReason
+ int reason = -1;
+
+ %(DEFAULT_BODY)s
+
+ if(reason != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(reason, rtse_AbortReason_vals, "reason(%%d)"));
+
+#.END
diff --git a/epan/dissectors/asn1/rua/CMakeLists.txt b/epan/dissectors/asn1/rua/CMakeLists.txt
new file mode 100644
index 0000000000..5cda20460c
--- /dev/null
+++ b/epan/dissectors/asn1/rua/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME rua )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ RUA-CommonDataTypes.asn
+ RUA-Constants.asn
+ RUA-Containers.asn
+ RUA-IEs.asn
+ RUA-PDU-Contents.asn
+ RUA-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/rua/Makefile.am b/epan/dissectors/asn1/rua/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/rua/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/rua/Makefile.common b/epan/dissectors/asn1/rua/Makefile.common
new file mode 100644
index 0000000000..093e48ee76
--- /dev/null
+++ b/epan/dissectors/asn1/rua/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = rua
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ RUA-CommonDataTypes.asn \
+ RUA-Constants.asn \
+ RUA-Containers.asn \
+ RUA-IEs.asn \
+ RUA-PDU-Contents.asn \
+ RUA-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/rua/Makefile.nmake b/epan/dissectors/asn1/rua/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/rua/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/rua/RUA-CommonDataTypes.asn b/epan/dissectors/asn1/rua/RUA-CommonDataTypes.asn
new file mode 100644
index 0000000000..4212bb57d8
--- /dev/null
+++ b/epan/dissectors/asn1/rua/RUA-CommonDataTypes.asn
@@ -0,0 +1,53 @@
+-- RUA-CommonDataTypes.asn
+--
+-- 3GPP TS 25.468 V9.1.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
+--
+-- 9.3.5 Common definitions
+--
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+RUA-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rua(5) version1 (1) rUA-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+
+ProcedureCode ::= INTEGER (0..255)
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..65535),
+ global OBJECT IDENTIFIER
+}
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome }
+
+END
diff --git a/epan/dissectors/asn1/rua/RUA-Constants.asn b/epan/dissectors/asn1/rua/RUA-Constants.asn
new file mode 100644
index 0000000000..6ab3c25a17
--- /dev/null
+++ b/epan/dissectors/asn1/rua/RUA-Constants.asn
@@ -0,0 +1,63 @@
+-- RUA-Constants.asn
+--
+-- 3GPP TS 25.468 V9.1.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
+--
+-- 9.3.6 Constant definitions
+--
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+RUA-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rua(5) version1 (1) rUA-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM RUA-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+id-Connect ProcedureCode ::= 1
+id-DirectTransfer ProcedureCode ::= 2
+id-Disconnect ProcedureCode ::= 3
+id-ConnectionlessTransfer ProcedureCode ::= 4
+id-ErrorIndication ProcedureCode ::= 5
+id-privateMessage ProcedureCode ::= 6
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+maxNrOfErrors INTEGER ::= 256
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Cause ProtocolIE-ID ::= 1
+id-CriticalityDiagnostics ProtocolIE-ID ::= 2
+id-Context-ID ProtocolIE-ID ::= 3
+id-RANAP-Message ProtocolIE-ID ::= 4
+id-IntraDomainNasNodeSelector ProtocolIE-ID ::= 5
+id-Establishment-Cause ProtocolIE-ID ::= 6
+id-CN-DomainIndicator ProtocolIE-ID ::= 7
+id-CSGMembershipStatus ProtocolIE-ID ::= 9
+
+
+END
diff --git a/epan/dissectors/asn1/rua/RUA-Containers.asn b/epan/dissectors/asn1/rua/RUA-Containers.asn
new file mode 100644
index 0000000000..cffd5c282a
--- /dev/null
+++ b/epan/dissectors/asn1/rua/RUA-Containers.asn
@@ -0,0 +1,161 @@
+-- RUA-Containers.asn
+--
+-- 3GPP TS 25.468 V9.1.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
+--
+-- 9.3.7 Container definitions
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+RUA-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rua(5) version1 (1) rUA-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID,
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM RUA-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+RUA-PRIVATE-IES ::= CLASS {
+ &id PrivateIE-ID,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RUA-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+RUA-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {RUA-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {RUA-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {RUA-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id RUA-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality RUA-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value RUA-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RUA-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RUA-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RUA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RUA-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RUA-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RUA-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RUA-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {RUA-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id RUA-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality RUA-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value RUA-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+
+END
diff --git a/epan/dissectors/asn1/rua/RUA-IEs.asn b/epan/dissectors/asn1/rua/RUA-IEs.asn
new file mode 100644
index 0000000000..de1d519124
--- /dev/null
+++ b/epan/dissectors/asn1/rua/RUA-IEs.asn
@@ -0,0 +1,199 @@
+-- RUA-IEs.asn
+--
+-- 3GPP TS 25.468 V9.1.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
+--
+-- 9.3.4 Information Element definitions
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+RUA-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rua(5) version1 (1) rUA-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxNrOfErrors
+FROM RUA-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM RUA-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ RUA-PROTOCOL-EXTENSION
+FROM RUA-Containers;
+
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+
+CSGMembershipStatus ::= ENUMERATED {
+ member,
+ non-member,
+ ...
+}
+
+Establishment-Cause ::= ENUMERATED {
+ emergency-call,
+ normal-call,
+ ...
+ }
+
+
+
+
+
+Context-ID ::= BIT STRING (SIZE(24))
+
+IntraDomainNasNodeSelector ::= SEQUENCE {
+ version CHOICE {
+ release99 SEQUENCE {
+ cn-Type CHOICE {
+ gsm-Map-IDNNS Gsm-map-IDNNS,
+ ansi-41-IDNNS Ansi-41-IDNNS
+ }
+ },
+ later SEQUENCE {
+ futurecoding BIT STRING (SIZE (15))
+ }
+ }
+}
+
+Gsm-map-IDNNS ::= SEQUENCE {
+ routingbasis CHOICE {
+ localPTMSI SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ tMSIofsamePLMN SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ tMSIofdifferentPLMN SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ iMSIresponsetopaging SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ iMSIcauseUEinitiatedEvent SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ iMEI SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ spare2 SEQUENCE {
+ routingparameter RoutingParameter
+ },
+ spare1 SEQUENCE {
+ routingparameter RoutingParameter
+ }
+ },
+ -- dummy is not used in this version of the specification and
+ -- it should be ignored by the receiver.
+ dummy BOOLEAN
+}
+
+
+Ansi-41-IDNNS ::= BIT STRING (SIZE (14))
+
+RANAP-Message ::= OCTET STRING
+
+RoutingParameter ::= BIT STRING (SIZE (10))
+
+
+-- **************************************************************
+--
+-- Cause IE
+--
+-- **************************************************************
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+CauseRadioNetwork ::= ENUMERATED {
+ normal,
+ connect-failed,
+ network-release,
+ unspecified,
+ ...
+}
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseProtocol ::= ENUMERATED {
+ transfer-syntax-error,
+ abstract-syntax-error-reject,
+ abstract-syntax-error-ignore-and-notify,
+ message-not-compatible-with-receiver-state,
+ semantic-error,
+ unspecified,
+ abstract-syntax-error-falsely-constructed-message,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ processing-overload,
+ hardware-failure,
+ o-and-m-intervention,
+ unspecified,
+ ...
+}
+
+-- **************************************************************
+--
+-- CriticalityDiagnostics
+--
+-- **************************************************************
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/rua/RUA-PDU-Contents.asn b/epan/dissectors/asn1/rua/RUA-PDU-Contents.asn
new file mode 100644
index 0000000000..b259895829
--- /dev/null
+++ b/epan/dissectors/asn1/rua/RUA-PDU-Contents.asn
@@ -0,0 +1,204 @@
+-- RUA-PDU-Contents.asn
+--
+-- 3GPP TS 25.468 V9.1.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
+--
+-- 9.3.3 PDU definitions
+--
+
+-- **************************************************************
+--
+-- PDU definitions for RUA.
+--
+-- **************************************************************
+
+RUA-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rua(5) version1 (1) rUA-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Cause,
+ CriticalityDiagnostics,
+ Context-ID,
+ CN-DomainIndicator,
+ CSGMembershipStatus,
+ IntraDomainNasNodeSelector,
+ RANAP-Message,
+ Establishment-Cause
+
+FROM RUA-IEs
+
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-Container{},
+ ProtocolIE-Single-Container{},
+ PrivateIE-Container{},
+ RUA-PRIVATE-IES,
+ RUA-PROTOCOL-EXTENSION,
+ RUA-PROTOCOL-IES
+FROM RUA-Containers
+
+ id-Cause,
+ id-CriticalityDiagnostics,
+ id-Context-ID,
+ id-CN-DomainIndicator,
+ id-CSGMembershipStatus,
+ id-RANAP-Message,
+ id-IntraDomainNasNodeSelector,
+ id-Establishment-Cause
+
+FROM RUA-Constants;
+
+
+-- **************************************************************
+--
+-- Connect
+--
+-- **************************************************************
+
+Connect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ConnectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ConnectExtensions} } OPTIONAL,
+ ...
+}
+
+ConnectIEs RUA-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
+ { ID id-IntraDomainNasNodeSelector CRITICALITY ignore TYPE IntraDomainNasNodeSelector PRESENCE optional } |
+ { ID id-Establishment-Cause CRITICALITY reject TYPE Establishment-Cause PRESENCE mandatory } |
+ { ID id-RANAP-Message CRITICALITY reject TYPE RANAP-Message PRESENCE mandatory },
+ ...
+}
+
+ConnectExtensions RUA-PROTOCOL-EXTENSION ::= {
+ { ID id-CSGMembershipStatus CRITICALITY ignore EXTENSION CSGMembershipStatus PRESENCE optional },
+
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Direct Transfer
+--
+-- **************************************************************
+
+DirectTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectTransferIEs RUA-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
+ { ID id-RANAP-Message CRITICALITY reject TYPE RANAP-Message PRESENCE mandatory },
+ ...
+}
+
+DirectTransferExtensions RUA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Disconnect
+--
+-- **************************************************************
+
+Disconnect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DisconnectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DisconnectExtensions} } OPTIONAL,
+ ...
+}
+
+DisconnectIEs RUA-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory } |
+ { ID id-RANAP-Message CRITICALITY reject TYPE RANAP-Message PRESENCE conditional },
+ -- RANAP message shall be included if Cause value is "normal"
+ ...
+}
+
+DisconnectExtensions RUA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Connectionless Transfer
+--
+-- **************************************************************
+
+ConnectionlessTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ConnectionlessTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ConnectionlessTransferExtensions} } OPTIONAL,
+ ...
+}
+
+ConnectionlessTransferIEs RUA-PROTOCOL-IES ::= {
+ { ID id-RANAP-Message CRITICALITY reject TYPE RANAP-Message PRESENCE mandatory },
+ ...
+}
+
+ConnectionlessTransferExtensions RUA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs RUA-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+ErrorIndicationExtensions RUA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs RUA-PRIVATE-IES ::= {
+ ...
+}
+
+
+END
diff --git a/epan/dissectors/asn1/rua/RUA-PDU-Descriptions.asn b/epan/dissectors/asn1/rua/RUA-PDU-Descriptions.asn
new file mode 100644
index 0000000000..7220b28931
--- /dev/null
+++ b/epan/dissectors/asn1/rua/RUA-PDU-Descriptions.asn
@@ -0,0 +1,176 @@
+-- RUA-PDU-Descriptions.asn
+--
+-- 3GPP TS 25.468 V9.1.0 (2010-03)
+-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
+--
+-- 9.3.2 Elementary Procedure definitions
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+RUA-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) rua(5) version1 (1) rUA-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM RUA-CommonDataTypes
+ Connect,
+ DirectTransfer,
+ Disconnect,
+ ConnectionlessTransfer,
+ ErrorIndication,
+ PrivateMessage
+
+
+FROM RUA-PDU-Contents
+ id-Connect,
+ id-DirectTransfer,
+ id-Disconnect,
+ id-ConnectionlessTransfer,
+ id-ErrorIndication,
+ id-privateMessage
+FROM RUA-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RUA-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 definitions
+--
+-- **************************************************************
+
+RUA-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RUA-ELEMENTARY-PROCEDURE.&procedureCode ({RUA-ELEMENTARY-PROCEDURES}),
+ criticality RUA-ELEMENTARY-PROCEDURE.&criticality ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RUA-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode RUA-ELEMENTARY-PROCEDURE.&procedureCode ({RUA-ELEMENTARY-PROCEDURES}),
+ criticality RUA-ELEMENTARY-PROCEDURE.&criticality ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RUA-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode RUA-ELEMENTARY-PROCEDURE.&procedureCode ({RUA-ELEMENTARY-PROCEDURES}),
+ criticality RUA-ELEMENTARY-PROCEDURE.&criticality ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RUA-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RUA-ELEMENTARY-PROCEDURES RUA-ELEMENTARY-PROCEDURE ::= {
+ RUA-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RUA-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+RUA-ELEMENTARY-PROCEDURES-CLASS-1 RUA-ELEMENTARY-PROCEDURE ::= {
+ ...
+}
+
+
+RUA-ELEMENTARY-PROCEDURES-CLASS-2 RUA-ELEMENTARY-PROCEDURE ::= {
+ connectionRequest |
+ directTransfer |
+ disconnectRequest |
+ connectionlessTransfer |
+ errorIndication |
+ privateMessage,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+
+connectionRequest RUA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Connect
+ PROCEDURE CODE id-Connect
+ CRITICALITY ignore
+}
+
+directTransfer RUA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectTransfer
+ PROCEDURE CODE id-DirectTransfer
+ CRITICALITY ignore
+}
+
+disconnectRequest RUA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Disconnect
+ PROCEDURE CODE id-Disconnect
+ CRITICALITY ignore
+}
+connectionlessTransfer RUA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ConnectionlessTransfer
+ PROCEDURE CODE id-ConnectionlessTransfer
+ CRITICALITY ignore
+}
+
+errorIndication RUA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+privateMessage RUA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+
+END
+
+
diff --git a/epan/dissectors/asn1/rua/packet-rua-template.c b/epan/dissectors/asn1/rua/packet-rua-template.c
new file mode 100644
index 0000000000..afb4d6e718
--- /dev/null
+++ b/epan/dissectors/asn1/rua/packet-rua-template.c
@@ -0,0 +1,187 @@
+/* packet-rua-template.c
+ * Routines for UMTS Home Node B RANAP User Adaptation (RUA) packet dissection
+ * Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref: 3GPP TS 25.468 version 8.1.0 Release 8
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/sctpppids.h>
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+
+#include "packet-per.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "UTRAN Iuh interface RUA signalling"
+#define PSNAME "RUA"
+#define PFNAME "rua"
+/* Dissector to use SCTP PPID 19 or a configured SCTP port. IANA assigned port = 29169*/
+#define SCTP_PORT_RUA 29169;
+
+void proto_register_rua(void);
+
+#include "packet-rua-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_rua = -1;
+
+#include "packet-rua-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_rua = -1;
+
+ /* initialise sub-dissector handles */
+ static dissector_handle_t ranap_handle = NULL;
+
+#include "packet-rua-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint global_sctp_port = SCTP_PORT_RUA
+
+/* Dissector tables */
+static dissector_table_t rua_ies_dissector_table;
+static dissector_table_t rua_extension_dissector_table;
+static dissector_table_t rua_proc_imsg_dissector_table;
+static dissector_table_t rua_proc_sout_dissector_table;
+static dissector_table_t rua_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+void proto_reg_handoff_rua(void);
+
+#include "packet-rua-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(rua_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(rua_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(rua_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(rua_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint_new(rua_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_rua(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ proto_item *rua_item = NULL;
+ proto_tree *rua_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RUA");
+
+ /* create the rua protocol tree */
+ rua_item = proto_tree_add_item(tree, proto_rua, tvb, 0, -1, ENC_NA);
+ rua_tree = proto_item_add_subtree(rua_item, ett_rua);
+
+ return dissect_RUA_PDU_PDU(tvb, pinfo, rua_tree, data);
+}
+
+/*--- proto_register_rua -------------------------------------------*/
+void proto_register_rua(void) {
+module_t *rua_module;
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+
+#include "packet-rua-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_rua,
+#include "packet-rua-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_rua = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_rua, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ register_dissector("rua", dissect_rua, proto_rua);
+
+ /* Register dissector tables */
+ rua_ies_dissector_table = register_dissector_table("rua.ies", "RUA-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ rua_extension_dissector_table = register_dissector_table("rua.extension", "RUA-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ rua_proc_imsg_dissector_table = register_dissector_table("rua.proc.imsg", "RUA-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ rua_proc_sout_dissector_table = register_dissector_table("rua.proc.sout", "RUA-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ rua_proc_uout_dissector_table = register_dissector_table("rua.proc.uout", "RUA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ rua_module = prefs_register_protocol(proto_rua, proto_reg_handoff_rua);
+ prefs_register_uint_preference(rua_module, "port", "RUA SCTP Port", "Set the port for RUA messages (Default of 29169)", 10, &global_sctp_port);
+
+}
+
+
+/*--- proto_reg_handoff_rua ---------------------------------------*/
+void
+proto_reg_handoff_rua(void)
+{
+ static gboolean initialized = FALSE;
+ static dissector_handle_t rua_handle;
+ static guint sctp_port;
+
+ if (!initialized) {
+ rua_handle = find_dissector("rua");
+ ranap_handle = find_dissector("ranap");
+ dissector_add_uint("sctp.ppi", RUA_PAYLOAD_PROTOCOL_ID, rua_handle);
+ initialized = TRUE;
+#include "packet-rua-dis-tab.c"
+
+ } else {
+ dissector_delete_uint("sctp.port", sctp_port, rua_handle);
+ }
+ /* Set our port number for future use */
+ sctp_port = global_sctp_port;
+ dissector_add_uint("sctp.port", sctp_port, rua_handle);
+}
diff --git a/epan/dissectors/asn1/rua/rua.cnf b/epan/dissectors/asn1/rua/rua.cnf
new file mode 100644
index 0000000000..f173d7d70c
--- /dev/null
+++ b/epan/dissectors/asn1/rua/rua.cnf
@@ -0,0 +1,147 @@
+# rua.cnf
+# rua conformation file
+# Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.PDU
+RUA-PDU
+
+#.MAKE_ENUM
+ProtocolIE-ID
+ProcedureCode
+
+#.TYPE_RENAME
+ProtocolIE-Field/value ProtocolIE_Field_value
+PrivateIE-Field/value PrivateIE_Field_value
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+ProtocolIE-Field/id protocol_ie_field_id
+PrivateIE-Field/id private_ie_field_id
+
+#.OMIT_ASSIGNMENT
+Presence
+ProtocolIE-ContainerList
+ProtocolIE-Single-Container
+#.END
+
+#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(rua_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+#.END
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ if (strcmp(val_to_str(ProcedureCode, rua_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "Unknown Message ");
+ } /* Known Procedures should be included below and broken out as ELEMENTARY names to avoid confusion */
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#.FN_BODY Connect
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "CONNECT ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY DirectTransfer
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "DIRECT_TRANSFER ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY Disconnect
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "DISCONNECT ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY ConnectionlessTransfer
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "CONNECTIONLESS_TRANSFER ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY ErrorIndication
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "ERROR_INDICATION ");
+ col_set_fence(actx->pinfo->cinfo, COL_INFO); /* Protect info from CriticalityDiagnostics decodes */
+%(DEFAULT_BODY)s
+
+#.FN_BODY PrivateMessage
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "PRIVATE_MESSAGE ");
+%(DEFAULT_BODY)s
+
+#.FN_BODY RANAP-Message VAL_PTR = &ranap_message_tvb
+ tvbuff_t *ranap_message_tvb=NULL;
+%(DEFAULT_BODY)s
+ if ((tvb_reported_length(ranap_message_tvb)>0)&&(ranap_handle)) { /* RUA has a RANAP-PDU */
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ "(RUA) "); /* Set info to (RUA) to make room for RANAP */
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ call_dissector(ranap_handle,ranap_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
+ }
+#.END
+
+
+#.ASSIGN_VALUE_TO_TYPE # RUA ASN.1 does not have constants assigned to types,
+# ProcedureCode
+id-Connect ProcedureCode
+id-DirectTransfer ProcedureCode
+id-Disconnect ProcedureCode
+id-ConnectionlessTransfer ProcedureCode
+id-ErrorIndication ProcedureCode
+id-privateMessage ProcedureCode
+
+# ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-Context-ID ProtocolIE-ID
+id-RANAP-Message ProtocolIE-ID
+id-IntraDomainNasNodeSelector ProtocolIE-ID
+id-Establishment-Cause ProtocolIE-ID
+id-CN-DomainIndicator ProtocolIE-ID
+#.END
+
+
+#.REGISTER
+
+#RUA-PROTOCOL-IES
+Cause N rua.ies id-Cause
+CriticalityDiagnostics N rua.ies id-CriticalityDiagnostics
+Context-ID N rua.ies id-Context-ID
+RANAP-Message N rua.ies id-RANAP-Message
+IntraDomainNasNodeSelector N rua.ies id-IntraDomainNasNodeSelector
+Establishment-Cause N rua.ies id-Establishment-Cause
+CN-DomainIndicator N rua.ies id-CN-DomainIndicator
+
+#RUA-PROTOCOL-EXTENSION
+CSGMembershipStatus N rua.extension id-CSGMembershipStatus
+
+#RUA-ELEMENTARY-PROCEDURE
+Connect N rua.proc.imsg id-Connect
+DirectTransfer N rua.proc.imsg id-DirectTransfer
+Disconnect N rua.proc.imsg id-Disconnect
+ConnectionlessTransfer N rua.proc.imsg id-ConnectionlessTransfer
+ErrorIndication N rua.proc.imsg id-ErrorIndication
+PrivateMessage N rua.proc.imsg id-privateMessage
+#.END
diff --git a/epan/dissectors/asn1/s1ap/CMakeLists.txt b/epan/dissectors/asn1/s1ap/CMakeLists.txt
new file mode 100644
index 0000000000..d11923b051
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/CMakeLists.txt
@@ -0,0 +1,58 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME s1ap )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ S1AP-CommonDataTypes.asn
+ S1AP-Constants.asn
+ S1AP-Containers.asn
+ S1AP-IEs.asn
+ S1AP-PDU-Contents.asn
+ S1AP-PDU-Descriptions.asn
+ S1AP-SonTransfer-IEs.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/s1ap/Makefile.am b/epan/dissectors/asn1/s1ap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/s1ap/Makefile.common b/epan/dissectors/asn1/s1ap/Makefile.common
new file mode 100644
index 0000000000..b9c9edc600
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/Makefile.common
@@ -0,0 +1,49 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = s1ap
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ S1AP-CommonDataTypes.asn \
+ S1AP-Constants.asn \
+ S1AP-Containers.asn \
+ S1AP-IEs.asn \
+ S1AP-PDU-Contents.asn \
+ S1AP-PDU-Descriptions.asn \
+ S1AP-SonTransfer-IEs.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/s1ap/Makefile.nmake b/epan/dissectors/asn1/s1ap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..0bc712106a
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
@@ -0,0 +1,35 @@
+-- 3GPP TS 36.413 V13.1.0 (2015-12)
+-- 9.3.5 Common Definitions
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+S1AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) 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/epan/dissectors/asn1/s1ap/S1AP-Constants.asn b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
new file mode 100644
index 0000000000..3784c89d63
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
@@ -0,0 +1,377 @@
+-- 3GPP TS 36.413 V13.1.0 (2015-12)
+-- 9.3.6 Constant Definitions
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+
+S1AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) 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-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19
+id-UplinkS1cdma2000tunnelling 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
+id-Kill ProcedureCode ::= 43
+id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44
+id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45
+id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46
+id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47
+id-UERadioCapabilityMatch ProcedureCode ::= 48
+id-PWSRestartIndication ProcedureCode ::= 49
+id-E-RABModificationIndication ProcedureCode ::= 50
+id-PWSFailureIndication ProcedureCode ::= 51
+id-RerouteNASRequest ProcedureCode ::= 52
+id-UEContextModificationIndication ProcedureCode ::= 53
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxnoofCSGs INTEGER ::= 256
+maxnoofE-RABs INTEGER ::= 256
+maxnoofTAIs INTEGER ::= 256
+maxnoofTACs INTEGER ::= 256
+maxnoofErrors INTEGER ::= 256
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofPLMNsPerMME INTEGER ::= 32
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256
+maxnoofCells INTEGER ::= 16
+maxnoofCellsineNB INTEGER ::= 256
+maxnoofTAIforWarning INTEGER ::= 65535
+maxnoofCellID INTEGER ::= 65535
+maxnoofEmergencyAreaID INTEGER ::= 65535
+maxnoofCellinTAI INTEGER ::= 65535
+maxnoofCellinEAI INTEGER ::= 65535
+maxnoofeNBX2TLAs INTEGER ::= 2
+maxnoofeNBX2ExtTLAs INTEGER ::= 16
+maxnoofeNBX2GTPTLAs INTEGER ::= 16
+maxnoofRATs INTEGER ::= 8
+maxnoofGroupIDs INTEGER ::= 65535
+maxnoofMMECs INTEGER ::= 256
+maxnoofCellIDforMDT INTEGER ::= 32
+maxnoofTAforMDT INTEGER ::= 8
+maxnoofMDTPLMNs INTEGER ::= 16
+maxnoofCellsforRestart INTEGER ::= 256
+maxnoofRestartTAIs INTEGER ::= 2048
+maxnoofRestartEmergencyAreaIDs INTEGER ::= 256
+maxEARFCN INTEGER ::= 262143
+maxnoofMBSFNAreaMDT INTEGER ::= 8
+
+-- **************************************************************
+--
+-- 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
+--WS extension
+id-Unknown-5 ProtocolIE-ID ::= 5
+id-Unknown-6 ProtocolIE-ID ::= 6
+id-Unknown-7 ProtocolIE-ID ::= 7
+id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
+id-Unknown-9 ProtocolIE-ID ::= 9
+id-Unknown-10 ProtocolIE-ID ::= 10
+id-Unknown-11 ProtocolIE-ID ::= 11
+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
+--WS extension
+id-Unknown-42 ProtocolIE-ID ::= 42
+id-UEPagingID ProtocolIE-ID ::= 43
+id-pagingDRX ProtocolIE-ID ::= 44
+--WS extension
+id-Unknown-45 ProtocolIE-ID ::= 45
+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
+--WS extension
+id-Unknown-54 ProtocolIE-ID ::= 54
+id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
+--WS extension
+id-Unknown-56 ProtocolIE-ID ::= 56
+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
+--WS extension
+id-Unknown-62 ProtocolIE-ID ::= 62
+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
+--WS extension
+id-Unknown-68 ProtocolIE-ID ::= 68
+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
+--WS extension
+id-Unknown-76 ProtocolIE-ID ::= 76
+id-E-RABInformationListItem ProtocolIE-ID ::= 78
+id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
+id-UEIdentityIndexValue ProtocolIE-ID ::= 80
+--WS extension
+id-Unknown-81 ProtocolIE-ID ::= 81
+id-Unknown-82 ProtocolIE-ID ::= 82
+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
+id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140
+id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141
+id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142
+id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143
+id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144
+id-CellAccessMode ProtocolIE-ID ::= 145
+id-CSGMembershipStatus ProtocolIE-ID ::= 146
+id-LPPa-PDU ProtocolIE-ID ::= 147
+id-Routing-ID ProtocolIE-ID ::= 148
+id-Time-Synchronisation-Info ProtocolIE-ID ::= 149
+id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150
+id-PagingPriority ProtocolIE-ID ::= 151
+id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152
+id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153
+id-GUMMEIList ProtocolIE-ID ::= 154
+id-GW-TransportLayerAddress ProtocolIE-ID ::= 155
+id-Correlation-ID ProtocolIE-ID ::= 156
+id-SourceMME-GUMMEI ProtocolIE-ID ::= 157
+id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158
+id-RegisteredLAI ProtocolIE-ID ::= 159
+id-RelayNode-Indicator ProtocolIE-ID ::= 160
+id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161
+id-MDTConfiguration ProtocolIE-ID ::= 162
+id-MMERelaySupportIndicator ProtocolIE-ID ::= 163
+id-GWContextReleaseIndication ProtocolIE-ID ::= 164
+id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165
+id-PrivacyIndicator ProtocolIE-ID ::= 166
+id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167
+id-HO-Cause ProtocolIE-ID ::= 168
+id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169
+id-GUMMEIType ProtocolIE-ID ::= 170
+id-M3Configuration ProtocolIE-ID ::= 171
+id-M4Configuration ProtocolIE-ID ::= 172
+id-M5Configuration ProtocolIE-ID ::= 173
+id-MDT-Location-Info ProtocolIE-ID ::= 174
+id-MobilityInformation ProtocolIE-ID ::= 175
+id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176
+id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177
+id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178
+id-ULCOUNTValueExtended ProtocolIE-ID ::= 179
+id-DLCOUNTValueExtended ProtocolIE-ID ::= 180
+id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181
+id-ECGIListForRestart ProtocolIE-ID ::= 182
+id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183
+id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184
+id-TransportInformation ProtocolIE-ID ::= 185
+id-LHN-ID ProtocolIE-ID ::= 186
+id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187
+id-TAIListForRestart ProtocolIE-ID ::= 188
+id-UserLocationInformation ProtocolIE-ID ::= 189
+id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190
+id-KillAllWarningMessages ProtocolIE-ID ::= 191
+id-Masked-IMEISV ProtocolIE-ID ::= 192
+id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193
+id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194
+id-ProSeAuthorized ProtocolIE-ID ::= 195
+id-ExpectedUEBehaviour ProtocolIE-ID ::= 196
+id-LoggedMBSFNMDT ProtocolIE-ID ::= 197
+id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198
+id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199
+id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200
+id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201
+id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202
+id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203
+id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204
+id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205
+id-SON-Information-Report ProtocolIE-ID ::= 206
+id-Muting-Availability-Indication ProtocolIE-ID ::= 207
+id-Muting-Pattern-Information ProtocolIE-ID ::= 208
+id-Synchronisation-Information ProtocolIE-ID ::= 209
+id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210
+id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216
+id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217
+id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218
+id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219
+id-M6Configuration ProtocolIE-ID ::= 220
+id-M7Configuration ProtocolIE-ID ::= 221
+id-PWSfailedECGIList ProtocolIE-ID ::= 222
+id-MME-Group-ID ProtocolIE-ID ::= 223
+id-Additional-GUTI ProtocolIE-ID ::= 224
+id-S1-Message ProtocolIE-ID ::= 225
+id-CSGMembershipInfo ProtocolIE-ID ::= 226
+
+END
diff --git a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
new file mode 100644
index 0000000000..2ffb2eff38
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
@@ -0,0 +1,200 @@
+-- 3GPP TS 36.413 V13.1.0 (2015-12)
+-- 9.3.7 Container Definitions
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+
+S1AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) 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/epan/dissectors/asn1/s1ap/S1AP-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
new file mode 100644
index 0000000000..c995f68f50
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
@@ -0,0 +1,1950 @@
+-- 3GPP TS 36.413 V13.1.0 (2015-12)
+-- 9.3.4 Information Element Definitions
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+S1AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ id-E-RABInformationListItem,
+ id-E-RABItem,
+ id-Bearers-SubjectToStatusTransfer-Item,
+ id-Time-Synchronisation-Info,
+ id-x2TNLConfigurationInfo,
+ id-eNBX2ExtendedTransportLayerAddresses,
+ id-MDTConfiguration,
+ id-Time-UE-StayedInCell-EnhancedGranularity,
+ id-HO-Cause,
+ id-M3Configuration,
+ id-M4Configuration,
+ id-M5Configuration,
+ id-MDT-Location-Info,
+ id-SignallingBasedMDTPLMNList,
+ id-MobilityInformation,
+ id-ULCOUNTValueExtended,
+ id-DLCOUNTValueExtended,
+ id-ReceiveStatusOfULPDCPSDUsExtended,
+ id-eNBIndirectX2TransportLayerAddresses,
+ id-Muting-Availability-Indication,
+ id-Muting-Pattern-Information,
+ id-Synchronisation-Information,
+ id-uE-HistoryInformationFromTheUE,
+ id-LoggedMBSFNMDT,
+ id-SON-Information-Report,
+ id-ProSeUEtoNetworkRelaying,
+ id-ULCOUNTValuePDCP-SNlength18,
+ id-DLCOUNTValuePDCP-SNlength18,
+ id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18,
+ id-M6Configuration,
+ id-M7Configuration,
+ maxnoofCSGs,
+ maxnoofE-RABs,
+ maxnoofErrors,
+ maxnoofBPLMNs,
+ maxnoofPLMNsPerMME,
+ maxnoofTACs,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofCells,
+ maxnoofCellID,
+ maxnoofEmergencyAreaID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ maxnoofeNBX2TLAs,
+ maxnoofeNBX2ExtTLAs,
+ maxnoofeNBX2GTPTLAs,
+ maxnoofRATs,
+ maxnoofGroupIDs,
+ maxnoofMMECs,
+ maxnoofTAforMDT,
+ maxnoofCellIDforMDT,
+ maxnoofMDTPLMNs,
+ maxnoofCellsforRestart,
+ maxnoofRestartTAIs,
+ maxnoofRestartEmergencyAreaIDs,
+ maxnoofMBSFNAreaMDT,
+ maxEARFCN,
+ maxnoofCellsineNB
+
+
+
+FROM S1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM S1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ S1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ S1AP-PROTOCOL-IES
+
+FROM S1AP-Containers;
+
+-- A
+
+Additional-GUTI::= SEQUENCE {
+ gUMMEI GUMMEI,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AreaScopeOfMDT ::= CHOICE {
+ cellBased CellBasedMDT,
+ tABased TABasedMDT,
+ pLMNWide NULL,
+ ...,
+ tAIBased TAIBasedMDT
+}
+
+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.. maxnoofE-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 ::= {
+ { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}|
+ { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional},
+ ...
+}
+
+BitRate ::= INTEGER (0..10000000000)
+
+BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity
+
+BroadcastCancelledAreaList ::= CHOICE {
+ cellID-Cancelled CellID-Cancelled,
+ tAI-Cancelled TAI-Cancelled,
+ emergencyAreaID-Cancelled EmergencyAreaID-Cancelled,
+ ...
+}
+
+BroadcastCompletedAreaList ::= CHOICE {
+ cellID-Broadcast CellID-Broadcast,
+ tAI-Broadcast TAI-Broadcast,
+ emergencyAreaID-Broadcast EmergencyAreaID-Broadcast,
+ ...
+}
+
+
+-- C
+
+CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item
+
+CancelledCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item
+
+CancelledCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ not-supported-QCI-value,
+ invalid-CSG-Id
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseNas ::= ENUMERATED {
+ normal-release,
+ authentication-failure,
+ detach,
+ unspecified,
+ ...,
+ csg-subscription-expiry
+}
+
+CellAccessMode ::= ENUMERATED {
+ hybrid,
+ ...
+}
+
+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 ::= {
+ ...
+}
+
+CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item
+
+CellID-Cancelled-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellBasedMDT::= SEQUENCE {
+ cellIdListforMDT CellIdListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI
+
+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
+}
+
+ConcurrentWarningMessageIndicator ::= ENUMERATED {
+ true
+}
+
+Correlation-ID ::= OCTET STRING (SIZE (4))
+
+CSFallbackIndicator ::= ENUMERATED {
+ cs-fallback-required,
+ ...,
+ cs-fallback-high-priority
+}
+
+AdditionalCSFallbackIndicator ::= ENUMERATED {
+ no-restriction,
+ restriction,
+ ...
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) 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 ::= {
+ ...
+}
+
+CSGMembershipStatus ::= ENUMERATED {
+ member,
+ not-member
+}
+
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTValueExtended ::= SEQUENCE {
+ pDCP-SNExtended PDCP-SNExtended,
+ hFNModified HFNModified,
+ iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvaluePDCP-SNlength18 ::= SEQUENCE {
+ pDCP-SNlength18 PDCP-SNlength18,
+ hFNforPDCP-SNlength18 HFNforPDCP-SNlength18,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTvaluePDCP-SNlength18-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.. maxnoofErrors)) 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,
+ ...
+}
+
+Data-Forwarding-Not-Possible ::= ENUMERATED {
+ data-Forwarding-not-Possible,
+ ...
+}
+
+-- E
+
+EARFCN ::= INTEGER(0..maxEARFCN, ...)
+
+ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) 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 ::= {
+ ...
+}
+
+EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item
+
+EmergencyAreaID-Cancelled-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ cancelledCellinEAI CancelledCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Cancelled-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 ::= {
+ ...
+}
+
+ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI
+
+EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID
+
+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 ::= {
+ ...
+}
+
+GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI
+
+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.. maxnoofE-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.. maxnoofE-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 ::= {
+ ...
+}
+
+EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047)
+
+ExpectedUEBehaviour ::= SEQUENCE {
+ expectedActivity ExpectedUEActivityBehaviour OPTIONAL,
+ expectedHOInterval ExpectedHOInterval OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedUEActivityBehaviour ::= SEQUENCE {
+ expectedActivityPeriod ExpectedActivityPeriod OPTIONAL,
+ expectedIdlePeriod ExpectedIdlePeriod OPTIONAL,
+ sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+SourceOfUEActivityBehaviourInformation ::= ENUMERATED {
+ subscription-information,
+ statistics,
+ ...
+}
+
+ExpectedHOInterval ::= ENUMERATED {
+ sec15, sec30, sec60, sec90, sec120, sec180, long-time,
+ ...
+}
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+ExtendedRepetitionPeriod ::= INTEGER (4096..131071)
+
+-- F
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...,
+ geranandutran,
+ cdma2000andutran
+
+}
+
+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 ::= {
+ ...
+}
+
+GUMMEIType ::= ENUMERATED {
+ native,
+ mapped,
+ ...
+}
+
+GWContextReleaseIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+-- 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)
+
+HFNModified ::= INTEGER (0..131071)
+
+HFNforPDCP-SNlength18 ::= INTEGER (0..16383)
+
+-- I
+
+Masked-IMEISV ::= BIT STRING (SIZE (64))
+
+ImmediateMDT ::= SEQUENCE {
+ measurementsToActivate MeasurementsToActivate,
+ m1reportingTrigger M1ReportingTrigger,
+ m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
+-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+ m1periodicReporting M1PeriodicReporting OPTIONAL,
+-- Included in case of periodic or event-triggered periodic reporting
+ iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}|
+ { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}|
+ { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}|
+ { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}|
+ { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}|
+ { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional},
+ ...
+}
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+
+
+
+-- J
+-- K
+
+KillAllWarningMessages ::= ENUMERATED {true}
+
+-- 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 ::= {
+-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell --
+ { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}|
+ { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional},
+ ...
+}
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+LPPa-PDU ::= OCTET STRING
+
+LHN-ID ::= OCTET STRING(SIZE (32..256))
+
+Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...}
+
+ListeningSubframePattern ::= SEQUENCE {
+ pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...},
+ pattern-offset INTEGER (0..10239, ...),
+ iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+LoggedMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144}
+
+LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120}
+
+LoggedMBSFNMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL,
+ ...
+}
+
+LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- M
+
+M3Configuration ::= SEQUENCE {
+ m3period M3period,
+ iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... }
+
+M4Configuration ::= SEQUENCE {
+ m4period M4period,
+ m4-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M5Configuration ::= SEQUENCE {
+ m5period M5period,
+ m5-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M6Configuration ::= SEQUENCE {
+ m6report-Interval M6report-Interval,
+ m6delay-threshold M6delay-threshold OPTIONAL,
+-- This IE shall be present if the M6 Links to log IE is set to "uplink" or to "both-uplink-and-downlink" --
+ m6-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... }
+
+M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... }
+
+M7Configuration ::= SEQUENCE {
+ m7period M7period,
+ m7-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M7period ::= INTEGER(1..60, ...)
+
+MDT-Activation ::= ENUMERATED {
+ immediate-MDT-only,
+ immediate-MDT-and-Trace,
+ logged-MDT-only,
+ ...,
+ logged-MBSFN-MDT
+}
+
+MDT-Location-Info ::= BIT STRING (SIZE (8))
+
+MDT-Configuration ::= SEQUENCE {
+ mdt-Activation MDT-Activation,
+ areaScopeOfMDT AreaScopeOfMDT,
+ mDTMode MDTMode,
+ iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional },
+ ...
+}
+
+ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...}
+
+MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo
+
+MBSFN-ResultToLogInfo ::= SEQUENCE {
+ mBSFN-AreaId INTEGER (0..255) OPTIONAL,
+ carrierFreq EARFCN,
+ iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity
+
+PrivacyIndicator ::= ENUMERATED {
+ immediate-MDT,
+ logged-MDT,
+ ...
+}
+
+MDTMode ::= CHOICE {
+ immediateMDT ImmediateMDT,
+ loggedMDT LoggedMDT,
+ ...,
+ mDTMode-Extension MDTMode-Extension
+}
+
+MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }}
+
+MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= {
+ { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory}
+}
+
+MeasurementsToActivate ::= BIT STRING (SIZE (8))
+
+MeasurementThresholdA2 ::= CHOICE {
+ threshold-RSRP Threshold-RSRP,
+ threshold-RSRQ Threshold-RSRQ,
+ ...
+}
+
+MessageIdentifier ::= BIT STRING (SIZE (16))
+
+MobilityInformation ::= BIT STRING (SIZE(32))
+
+MMEname ::= PrintableString (SIZE (1..150,...))
+
+MMERelaySupportIndicator ::= ENUMERATED {true, ...}
+
+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
+
+MutingAvailabilityIndication ::= ENUMERATED {
+ available,
+ unavailable,
+ ...
+}
+
+
+MutingPatternInformation ::= SEQUENCE {
+ muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...},
+ muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- N
+
+NAS-PDU ::= OCTET STRING
+
+NASSecurityParametersfromE-UTRAN ::= OCTET STRING
+
+NASSecurityParameterstoE-UTRAN ::= OCTET STRING
+
+NumberofBroadcastRequest ::= INTEGER (0..65535)
+
+NumberOfBroadcasts ::= INTEGER (0..65535)
+
+-- O
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+OverloadAction ::= ENUMERATED {
+ reject-non-emergency-mo-dt,
+ reject-rrc-cr-signalling,
+ permit-emergency-sessions-and-mobile-terminated-services-only,
+ ...,
+ permit-high-priority-sessions-and-mobile-terminated-services-only,
+ reject-delay-tolerant-access
+}
+
+OverloadResponse ::= CHOICE {
+ overloadAction OverloadAction,
+ ...
+}
+
+
+-- P
+
+PagingDRX ::= ENUMERATED {
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+ }
+
+PagingPriority ::= ENUMERATED {
+ priolevel1,
+ priolevel2,
+ priolevel3,
+ priolevel4,
+ priolevel5,
+ priolevel6,
+ priolevel7,
+ priolevel8,
+ ...
+}
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PDCP-SNExtended ::= INTEGER (0..32767)
+
+PDCP-SNlength18 ::= INTEGER (0..262143)
+
+M1PeriodicReporting ::= SEQUENCE {
+ reportInterval ReportIntervalMDT,
+ reportAmount ReportAmountMDT,
+ iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMNidentity ::= TBCD-STRING
+
+Port-Number ::= OCTET STRING (SIZE (2))
+
+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)
+
+ProSeAuthorized ::= SEQUENCE {
+ proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL,
+ proSeDirectCommunication ProSeDirectCommunication OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional},
+ ...
+}
+
+ProSeDirectDiscovery ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ ProSeUEtoNetworkRelaying ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeDirectCommunication ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+PS-ServiceNotAvailable ::= ENUMERATED {
+ ps-service-not-available,
+ ...
+}
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384))
+
+ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072))
+
+RelativeMMECapacity ::= INTEGER (0..255)
+
+RelayNode-Indicator ::= ENUMERATED {
+ true,
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity}
+
+ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60}
+
+M1ReportingTrigger ::= ENUMERATED{
+ periodic,
+ a2eventtriggered,
+ ...,
+ a2eventtriggered-periodic
+}
+
+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,
+ ...,
+ targetRNC-ID TargetRNC-ID,
+ eHRPD-Sector-ID OCTET STRING (SIZE(16))
+}
+
+ReportArea ::= ENUMERATED {
+ ecgi,
+ ...
+}
+
+RepetitionPeriod ::= INTEGER (0..4095)
+
+RLFReportInformation ::= SEQUENCE {
+ uE-RLF-Report-Container UE-RLF-Report-Container,
+ uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL,
+ ...
+}
+
+RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNC-ID ::= INTEGER (0..4095)
+
+RRC-Container ::= OCTET STRING
+
+RRC-Establishment-Cause ::= ENUMERATED {
+ emergency,
+ highPriorityAccess,
+ mt-Access,
+ mo-Signalling,
+ mo-Data,
+ ...,
+ delay-TolerantAccess
+}
+
+ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI
+
+Routing-ID ::= INTEGER (0..255)
+
+-- 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,
+ ...,
+ sONInformation-Extension SONInformation-Extension
+}
+
+SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }}
+
+SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= {
+ { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory}
+}
+
+SONInformationRequest ::= ENUMERATED {
+ x2TNL-Configuration-Info,
+ ...,
+ time-Synchronisation-Info,
+ activate-Muting,
+ deactivate-Muting}
+
+SONInformationReply ::= SEQUENCE {
+ x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 9 to transfer Time synchronisation information --
+ {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional},
+ ...,
+ {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional}
+}
+
+SONInformationReport ::= CHOICE{
+ rLFReportInformation RLFReportInformation,
+ ...
+}
+
+SONConfigurationTransfer ::= SEQUENCE {
+ targeteNB-ID TargeteNB-ID,
+ sourceeNB-ID SourceeNB-ID,
+ sONInformation SONInformation,
+ iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action --
+ {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to "X2TNL Configuration Info" --}|
+-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell --
+ {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to " Activate Muting " --},
+ ...
+}
+
+
+SynchronisationInformation ::= SEQUENCE {
+ sourceStratumLevel StratumLevel OPTIONAL,
+ listeningSubframePattern ListeningSubframePattern OPTIONAL,
+ aggressoreCGI-List ECGI-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+-- This IE includes a transparent container from the source RAN node to the target RAN node.
+-- The octets of the OCTET STRING are encoded according to the specifications of the target system.
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+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 ::= {
+ {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}|
+ {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional},
+ ...
+}
+
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+
+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 ::= {
+ ...
+}
+
+StratumLevel ::= INTEGER (0..3, ...)
+
+SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... }
+
+TimeSynchronisationInfo ::= SEQUENCE {
+ stratumLevel StratumLevel,
+ synchronisationStatus SynchronisationStatus,
+ iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ -- Extension for Release 12 to transfer Muting Availability Indication --
+ {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional},
+ ...
+}
+
+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))
+
+TAIBasedMDT ::= SEQUENCE {
+ tAIListforMDT TAIListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI
+
+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 ::= {
+ ...
+}
+
+TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item
+
+TAI-Cancelled-Item ::= SEQUENCE {
+ tAI TAI,
+ cancelledCellinTAI CancelledCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TABasedMDT ::= SEQUENCE {
+ tAListforMDT TAListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
+
+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
+-- This IE includes a transparent container from the target RAN node to the source RAN node.
+-- The octets of the OCTET STRING are coded according to the specifications of the target system.
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+M1ThresholdEventA2 ::= SEQUENCE {
+ measurementThreshold MeasurementThresholdA2,
+ iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Threshold-RSRP ::= INTEGER(0..97)
+
+Threshold-RSRQ ::= INTEGER(0..34)
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950)
+
+TransportInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uL-GTP-TEID GTP-TEID,
+ ...
+}
+
+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 ::= {
+-- Extension for Rel-10 to support MDT --
+ { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional },
+ ...
+}
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8))
+
+TrafficLoadReductionIndication ::= INTEGER (1..99)
+
+TunnelInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uDP-Port-Number Port-Number OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI
+
+-- 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
+
+UE-HistoryInformationFromTheUE ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UEPagingID ::= CHOICE {
+ s-TMSI S-TMSI,
+ iMSI IMSI,
+ ...
+ }
+
+UERadioCapability ::= OCTET STRING
+
+UERadioCapabilityForPaging ::= OCTET STRING
+
+UE-RLF-Report-Container ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UserLocationInformation ::= SEQUENCE {
+ eutran-cgi EUTRAN-CGI,
+ tai TAI,
+ iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- V
+
+VoiceSupportMatchIndicator ::= ENUMERATED {
+ supported,
+ not-supported,
+ ...
+}
+
+-- 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 ::= {
+-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action --
+ {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}|
+-- Extension for Release 12 to transfer the IP addresses of the X2 GW --
+ {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional},
+ ...
+}
+
+ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA
+
+ENBX2ExtTLA ::= SEQUENCE {
+ iPsecTLA TransportLayerAddress OPTIONAL,
+ gTPTLAa ENBX2GTPTLAs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress
+
+ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+-- Y
+-- Z
+
+END
+
diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
new file mode 100644
index 0000000000..bcd577d7dc
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
@@ -0,0 +1,2653 @@
+-- 3GPP TS 36.413 V13.1.0 (2015-12)
+-- 9.3.3 PDU Definitions
+-- **************************************************************
+--
+-- PDU definitions for S1AP.
+--
+-- **************************************************************
+
+S1AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+
+ UEAggregateMaximumBitrate,
+ Cause,
+ CellAccessMode,
+ Cdma2000HORequiredIndication,
+ Cdma2000HOStatus,
+ Cdma2000OneXSRVCCInfo,
+ Cdma2000OneXRAND,
+ Cdma2000PDU,
+ Cdma2000RATType,
+ Cdma2000SectorID,
+ EUTRANRoundTripDelayEstimationInfo,
+ CNDomain,
+ ConcurrentWarningMessageIndicator,
+ CriticalityDiagnostics,
+ CSFallbackIndicator,
+ CSG-Id,
+ CSG-IdList,
+ CSGMembershipStatus,
+ Data-Forwarding-Not-Possible,
+ Direct-Forwarding-Path-Availability,
+ Global-ENB-ID,
+ EUTRAN-CGI,
+ ENBname,
+ ENB-StatusTransfer-TransparentContainer,
+ ENB-UE-S1AP-ID,
+ ExtendedRepetitionPeriod,
+ GTP-TEID,
+ GUMMEI,
+ GUMMEIType,
+ HandoverRestrictionList,
+ HandoverType,
+ Masked-IMEISV,
+ LAI,
+ LPPa-PDU,
+ ManagementBasedMDTAllowed,
+ MDTPLMNList,
+ MMEname,
+ MMERelaySupportIndicator,
+ MME-UE-S1AP-ID,
+ MSClassmark2,
+ MSClassmark3,
+ NAS-PDU,
+ NASSecurityParametersfromE-UTRAN,
+ NASSecurityParameterstoE-UTRAN,
+ OverloadResponse,
+ PagingDRX,
+ PagingPriority,
+ PLMNidentity,
+ ProSeAuthorized,
+ RIMTransfer,
+ RelativeMMECapacity,
+ RequestType,
+ E-RAB-ID,
+ E-RABLevelQoSParameters,
+ E-RABList,
+ RelayNode-Indicator,
+ Routing-ID,
+ 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,
+ TrafficLoadReductionIndication,
+ E-UTRAN-Trace-ID,
+ TransportLayerAddress,
+ UEIdentityIndexValue,
+ UEPagingID,
+ UERadioCapability,
+ UERadioCapabilityForPaging,
+ UE-S1AP-IDs,
+ UE-associatedLogicalS1-ConnectionItem,
+ UESecurityCapabilities,
+ S-TMSI,
+ MessageIdentifier,
+ SerialNumber,
+ WarningAreaList,
+ RepetitionPeriod,
+ NumberofBroadcastRequest,
+ WarningType,
+ WarningSecurityInfo,
+ DataCodingScheme,
+ WarningMessageContents,
+ BroadcastCompletedAreaList,
+ RRC-Establishment-Cause,
+ BroadcastCancelledAreaList,
+ PS-ServiceNotAvailable,
+ GUMMEIList,
+ Correlation-ID,
+ GWContextReleaseIndication,
+ PrivacyIndicator,
+ VoiceSupportMatchIndicator,
+ TunnelInformation,
+ KillAllWarningMessages,
+ TransportInformation,
+ LHN-ID,
+ UserLocationInformation,
+ AdditionalCSFallbackIndicator,
+ ECGIListForRestart,
+ TAIListForRestart,
+ EmergencyAreaIDListForRestart,
+ ExpectedUEBehaviour,
+ MME-Group-ID,
+ Additional-GUTI,
+ PWSfailedECGIList
+
+
+
+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-CellAccessMode,
+ id-cdma2000HORequiredIndication,
+ id-cdma2000HOStatus,
+ id-cdma2000OneXSRVCCInfo,
+ id-cdma2000OneXRAND,
+ id-cdma2000PDU,
+ id-cdma2000RATType,
+ id-cdma2000SectorID,
+ id-EUTRANRoundTripDelayEstimationInfo,
+ id-CNDomain,
+ id-ConcurrentWarningMessageIndicator,
+ id-CriticalityDiagnostics,
+ id-CSFallbackIndicator,
+ id-CSG-Id,
+ id-CSG-IdList,
+ id-CSGMembershipStatus,
+ id-Data-Forwarding-Not-Possible,
+ 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-GUMMEIType,
+ id-HandoverRestrictionList,
+ id-HandoverType,
+ id-Masked-IMEISV,
+ id-InitialContextSetup,
+ id-Inter-SystemInformationTransferTypeEDT,
+ id-Inter-SystemInformationTransferTypeMDT,
+ id-LPPa-PDU,
+ id-NAS-DownlinkCount,
+ id-ManagementBasedMDTAllowed,
+ id-ManagementBasedMDTPLMNList,
+ 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-PagingPriority,
+ id-RelativeMMECapacity,
+ id-RequestType,
+ id-Routing-ID,
+ 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-RABToBeModifiedListBearerModInd,
+ id-E-RABToBeModifiedItemBearerModInd,
+ id-E-RABNotToBeModifiedListBearerModInd,
+ id-E-RABNotToBeModifiedItemBearerModInd,
+ id-E-RABModifyListBearerModConf,
+ id-E-RABModifyItemBearerModConf,
+ id-E-RABFailedToModifyListBearerModConf,
+ id-E-RABToBeReleasedListBearerModConf,
+ 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-ProSeAuthorized,
+ 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-TrafficLoadReductionIndication,
+ id-E-UTRAN-Trace-ID,
+ id-UEIdentityIndexValue,
+ id-UEPagingID,
+ id-UERadioCapability,
+ id-UERadioCapabilityForPaging,
+ 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-BroadcastCancelledAreaList,
+ id-RRC-Establishment-Cause,
+ id-TraceCollectionEntityIPAddress,
+ maxnoofTAIs,
+ maxnoofErrors,
+ maxnoofE-RABs,
+ maxnoofIndividualS1ConnectionsToReset,
+ maxnoofEmergencyAreaID,
+ maxnoofCellID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ id-ExtendedRepetitionPeriod,
+ id-PS-ServiceNotAvailable,
+ id-RegisteredLAI,
+ id-GUMMEIList,
+ id-SourceMME-GUMMEI,
+ id-MME-UE-S1AP-ID-2,
+ id-GW-TransportLayerAddress,
+ id-RelayNode-Indicator,
+ id-Correlation-ID,
+ id-MMERelaySupportIndicator,
+ id-GWContextReleaseIndication,
+ id-PrivacyIndicator,
+ id-VoiceSupportMatchIndicator,
+ id-Tunnel-Information-for-BBF,
+ id-SIPTO-Correlation-ID,
+ id-SIPTO-L-GW-TransportLayerAddress,
+ id-KillAllWarningMessages,
+ id-TransportInformation,
+ id-LHN-ID,
+ id-UserLocationInformation,
+ id-AdditionalCSFallbackIndicator,
+ id-ECGIListForRestart,
+ id-TAIListForRestart,
+ id-EmergencyAreaIDListForRestart,
+ id-ExpectedUEBehaviour,
+ id-CSGMembershipInfo,
+ id-MME-Group-ID,
+ id-Additional-GUTI,
+ id-S1-Message,
+ id-PWSfailedECGIList,
+ id-PWSFailureIndication
+
+
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-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}|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}|
+ { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- 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" -- }|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}|
+ { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional},
+ ...
+}
+
+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 ::= {
+ { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- 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-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode 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}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- 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}|
+ { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}|
+ { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+ ...
+}
+
+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}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized 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.. maxnoofE-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 ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- 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.. maxnoofE-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.. maxnoofE-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 ::= {
+ { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- 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.. maxnoofE-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 }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional },
+ ...
+}
+
+
+E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-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 }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- 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}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}|
+ { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}|
+ { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional},
+ ...
+}
+
+
+
+
+E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-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 ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- 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.. maxnoofE-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}|
+ { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging 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 }|
+ { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation 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}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}|
+ { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized 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 },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Radio Capability Match Request
+--
+-- **************************************************************
+
+UERadioCapabilityMatchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} },
+ ...
+}
+
+UERadioCapabilityMatchRequestIEs 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 optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Radio Capability Match Response
+--
+-- **************************************************************
+
+UERadioCapabilityMatchResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} },
+ ...
+}
+
+UERadioCapabilityMatchResponseIEs 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-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator 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}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible 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}|
+ { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}|
+ { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID 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}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+ ...
+}
+-- **************************************************************
+--
+-- 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 },
+ ...
+}
+
+-- **************************************************************
+--
+-- REROUTE NAS REQUEST
+--
+-- **************************************************************
+
+RerouteNASRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}},
+ ...
+}
+
+RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}|
+ { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}|
+ { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- 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.. maxnoofIndividualS1ConnectionsToReset)) 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.. maxnoofIndividualS1ConnectionsToReset)) 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-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional }|
+ { 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 TUNNELLING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Downlink S1 CDMA2000 Tunnelling
+--
+-- **************************************************************
+
+DownlinkS1cdma2000tunnelling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} },
+ ...
+}
+
+DownlinkS1cdma2000tunnellingIEs 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 TUNNELLING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink S1 CDMA2000 Tunnelling
+--
+-- **************************************************************
+
+UplinkS1cdma2000tunnelling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} },
+ ...
+}
+
+UplinkS1cdma2000tunnellingIEs 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 }|
+ { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional },
+ -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE --
+ ...
+}
+
+
+-- **************************************************************
+--
+-- 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}|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+ {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+ { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }|
+ { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Overload Stop
+--
+-- **************************************************************
+
+OverloadStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStopIEs} },
+ ...
+}
+
+OverloadStopIEs S1AP-PROTOCOL-IES ::= {
+{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- 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-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }|
+ { 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 }|
+ { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator 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 ignore TYPE BroadcastCompletedAreaList PRESENCE optional }|
+ { 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 ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- KILL PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Kill Request
+--
+-- **************************************************************
+
+
+KillRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {KillRequestIEs} },
+ ...
+}
+
+KillRequestIEs 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-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Kill Response
+--
+-- **************************************************************
+
+KillResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {KillResponseIEs} },
+ ...
+}
+
+KillResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS RESTART INDICATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- PWS Restart Indication
+--
+-- **************************************************************
+
+PWSRestartIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}},
+ ...
+}
+
+PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}|
+ { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS Failure Indication
+--
+-- **************************************************************
+
+PWSFailureIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}},
+ ...
+}
+
+PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- LPPA TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+DownlinkUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+DownlinkUEAssociatedLPPaTransport-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-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+UplinkUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+UplinkUEAssociatedLPPaTransport-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-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modification Indication
+--
+-- **************************************************************
+
+E-RABModificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} },
+ ...
+}
+
+E-RABModificationIndicationIEs 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-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}|
+ { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}|
+ { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional},
+ ...
+}
+
+E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} }
+
+E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory},
+ ...
+}
+
+E-RABToBeModifiedItemBearerModInd ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ dL-GTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} }
+
+E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory},
+ ...
+}
+
+E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ dL-GTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSGMembershipInfo ::= SEQUENCE {
+ cSGMembershipStatus CSGMembershipStatus,
+ cSG-Id CSG-Id,
+ cellAccessMode CellAccessMode,
+ pLMNidentity PLMNidentity,
+ iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB Modification Confirm
+--
+-- **************************************************************
+
+E-RABModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} },
+ ...
+}
+
+E-RABModificationConfirmIEs 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-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}|
+ { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional},
+ ...
+}
+
+E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} }
+
+E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory},
+ ...
+}
+
+E-RABModifyItemBearerModConf ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Indication
+--
+-- **************************************************************
+
+UEContextModificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} },
+ ...
+}
+
+UEContextModificationIndicationIEs 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-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE Context Modification Confirm
+--
+-- **************************************************************
+
+UEContextModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} },
+ ...
+}
+
+UEContextModificationConfirmIEs 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-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+END
+
diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..5cff1fef65
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
@@ -0,0 +1,655 @@
+-- 3GPP TS 36.413 V13.1.0 (2015-12)
+-- 9.3.2 Elementary Procedure Definitions
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+S1AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) 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,
+ DownlinkUEAssociatedLPPaTransport,
+ DownlinkNASTransport,
+ DownlinkNonUEAssociatedLPPaTransport,
+ DownlinkS1cdma2000tunnelling,
+ ENBDirectInformationTransfer,
+ ENBStatusTransfer,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverCancelAcknowledge,
+ HandoverCommand,
+ HandoverFailure,
+ HandoverNotify,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ HandoverRequired,
+ InitialContextSetupFailure,
+ InitialContextSetupRequest,
+ InitialContextSetupResponse,
+ InitialUEMessage,
+ KillRequest,
+ KillResponse,
+ 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-RABModificationIndication,
+ E-RABModificationConfirm,
+ E-RABReleaseCommand,
+ E-RABReleaseResponse,
+ E-RABReleaseIndication,
+ E-RABSetupRequest,
+ E-RABSetupResponse,
+ TraceFailureIndication,
+ TraceStart,
+ UECapabilityInfoIndication,
+ UEContextModificationFailure,
+ UEContextModificationRequest,
+ UEContextModificationResponse,
+ UEContextReleaseCommand,
+ UEContextReleaseComplete,
+ UEContextReleaseRequest,
+ UERadioCapabilityMatchRequest,
+ UERadioCapabilityMatchResponse,
+ UplinkUEAssociatedLPPaTransport,
+ UplinkNASTransport,
+ UplinkNonUEAssociatedLPPaTransport,
+ UplinkS1cdma2000tunnelling,
+ WriteReplaceWarningRequest,
+ WriteReplaceWarningResponse,
+ ENBConfigurationTransfer,
+ MMEConfigurationTransfer,
+ PWSRestartIndication,
+ UEContextModificationIndication,
+ UEContextModificationConfirm,
+ RerouteNASRequest,
+-- WS modification: avoid duplicate imports as asn2wrs.py builds a single list
+-- PWSfailedECGIList,
+ PWSFailureIndication
+
+
+FROM S1AP-PDU-Contents
+
+ id-CellTrafficTrace,
+ id-DeactivateTrace,
+ id-downlinkUEAssociatedLPPaTransport,
+ id-downlinkNASTransport,
+ id-downlinkNonUEAssociatedLPPaTransport,
+ id-DownlinkS1cdma2000tunnelling,
+ id-eNBStatusTransfer,
+ id-ErrorIndication,
+ id-HandoverCancel,
+ id-HandoverNotification,
+ id-HandoverPreparation,
+ id-HandoverResourceAllocation,
+ id-InitialContextSetup,
+ id-initialUEMessage,
+ id-ENBConfigurationUpdate,
+ id-Kill,
+ 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-RABModificationIndication,
+ id-E-RABRelease,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-TraceFailureIndication,
+ id-TraceStart,
+ id-UECapabilityInfoIndication,
+ id-UEContextModification,
+ id-UEContextRelease,
+ id-UEContextReleaseRequest,
+ id-UERadioCapabilityMatch,
+ id-uplinkUEAssociatedLPPaTransport,
+ id-uplinkNASTransport,
+ id-uplinkNonUEAssociatedLPPaTransport,
+ id-UplinkS1cdma2000tunnelling,
+ id-WriteReplaceWarning,
+ id-eNBConfigurationTransfer,
+ id-MMEConfigurationTransfer,
+ id-PWSRestartIndication,
+ id-UEContextModificationIndication,
+ id-RerouteNASRequest,
+ id-PWSfailedECGIList,
+ id-PWSFailureIndication
+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 |
+ kill |
+ reset |
+ s1Setup |
+ uEContextModification |
+ uEContextRelease |
+ eNBConfigurationUpdate |
+ mMEConfigurationUpdate |
+ writeReplaceWarning ,
+ ...,
+ uERadioCapabilityMatch |
+ e-RABModificationIndication |
+ uEContextModificationIndication
+}
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverNotification |
+ e-RABReleaseIndication |
+ paging |
+ downlinkNASTransport |
+ initialUEMessage |
+ uplinkNASTransport |
+ errorIndication |
+ nASNonDeliveryIndication |
+ uEContextReleaseRequest |
+ downlinkS1cdma2000tunnelling |
+ uplinkS1cdma2000tunnelling |
+ uECapabilityInfoIndication |
+ eNBStatusTransfer |
+ mMEStatusTransfer |
+ deactivateTrace |
+ traceStart |
+ traceFailureIndication |
+ cellTrafficTrace |
+ locationReportingControl |
+ locationReportingFailureIndication |
+ locationReport |
+ overloadStart |
+ overloadStop |
+ eNBDirectInformationTransfer |
+ mMEDirectInformationTransfer |
+ eNBConfigurationTransfer |
+ mMEConfigurationTransfer |
+ privateMessage ,
+ ...,
+ downlinkUEAssociatedLPPaTransport |
+ uplinkUEAssociatedLPPaTransport |
+ downlinkNonUEAssociatedLPPaTransport |
+ uplinkNonUEAssociatedLPPaTransport |
+ pWSRestartIndication |
+ rerouteNASRequest |
+ pWSFailureIndication
+}
+
+-- **************************************************************
+--
+-- 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
+}
+
+downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkS1cdma2000tunnelling
+ PROCEDURE CODE id-DownlinkS1cdma2000tunnelling
+ CRITICALITY ignore
+}
+
+uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkS1cdma2000tunnelling
+ PROCEDURE CODE id-UplinkS1cdma2000tunnelling
+ 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
+}
+
+pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWSRestartIndication
+ PROCEDURE CODE id-PWSRestartIndication
+ CRITICALITY ignore
+}
+
+kill S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE KillRequest
+ SUCCESSFUL OUTCOME KillResponse
+ PROCEDURE CODE id-Kill
+ CRITICALITY reject
+}
+
+downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport
+ PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkUEAssociatedLPPaTransport
+ PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport
+ PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport
+ PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UERadioCapabilityMatchRequest
+ SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse
+ PROCEDURE CODE id-UERadioCapabilityMatch
+ CRITICALITY reject
+}
+
+e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModificationIndication
+ SUCCESSFUL OUTCOME E-RABModificationConfirm
+ PROCEDURE CODE id-E-RABModificationIndication
+ CRITICALITY reject
+}
+
+uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationIndication
+ SUCCESSFUL OUTCOME UEContextModificationConfirm
+ PROCEDURE CODE id-UEContextModificationIndication
+ CRITICALITY reject
+}
+
+rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RerouteNASRequest
+ PROCEDURE CODE id-RerouteNASRequest
+ CRITICALITY reject
+}
+
+pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWSFailureIndication
+ PROCEDURE CODE id-PWSFailureIndication
+ CRITICALITY ignore
+}
+
+END
diff --git a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
new file mode 100644
index 0000000000..a3b902693d
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
@@ -0,0 +1,339 @@
+-- 3GPP TS 36.413 V13.1.0 (2015-12)
+-- B.2 ASN.1 definition
+-- **************************************************************
+--
+-- IE definitions for the SON Transfer application
+-- The IEs in this ASN.1 module shall be defined and encoded
+-- using the same rules as applicable for the S1AP-IEs module.
+--
+-- **************************************************************
+
+
+SonTransfer-IEs
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+--
+-- Generic IEs for the SON Transfer application
+--
+
+SONtransferApplicationIdentity ::= ENUMERATED {
+ cell-load-reporting,
+ ...,
+ multi-cell-load-reporting,
+ event-triggered-cell-load-reporting,
+ ho-reporting,
+ eutran-cell-activation,
+ energy-savings-indication,
+ failure-event-reporting
+}
+
+SONtransferRequestContainer ::= CHOICE{
+ cellLoadReporting NULL,
+ ...,
+ multiCellLoadReporting MultiCellLoadReportingRequest,
+ eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest,
+ hOReporting HOReport,
+ eutranCellActivation CellActivationRequest,
+ energySavingsIndication CellStateIndication,
+ failureEventReporting FailureEventReport
+}
+
+SONtransferResponseContainer ::= CHOICE{
+ cellLoadReporting CellLoadReportingResponse,
+ ...,
+ multiCellLoadReporting MultiCellLoadReportingResponse,
+ eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse,
+ hOReporting NULL,
+ eutranCellActivation CellActivationResponse,
+ energySavingsIndication NULL,
+ failureEventReporting NULL
+}
+
+SONtransferCause ::= CHOICE {
+ cellLoadReporting CellLoadReportingCause,
+ ...,
+ multiCellLoadReporting CellLoadReportingCause,
+ eventTriggeredCellLoadReporting CellLoadReportingCause,
+ hOReporting HOReportingCause,
+ eutranCellActivation CellActivationCause,
+ energySavingsIndication CellStateIndicationCause,
+ failureEventReporting FailureEventReportingCause
+}
+
+
+CellLoadReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+HOReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+CellActivationCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+CellStateIndicationCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+FailureEventReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+--
+-- IEs for Cell Load Reporting application
+--
+
+CellLoadReportingResponse::= CHOICE{
+ eUTRAN EUTRANcellLoadReportingResponse,
+ uTRAN OCTET STRING,
+ gERAN OCTET STRING,
+ ...,
+ eHRPD EHRPDSectorLoadReportingResponse
+}
+
+CompositeAvailableCapacityGroup ::= OCTET STRING
+
+EUTRANcellLoadReportingResponse ::= SEQUENCE {
+ compositeAvailableCapacityGroup CompositeAvailableCapacityGroup,
+ ...
+}
+
+--
+-- IEs for Multi-Cell Load Reporting application
+--
+
+EUTRANResponse::= SEQUENCE {
+ cell-ID OCTET STRING,
+ eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse,
+ ...
+}
+
+EHRPD-Sector-ID ::= OCTET STRING (SIZE (16))
+
+IRAT-Cell-ID ::= CHOICE{
+ eUTRAN OCTET STRING,
+ uTRAN OCTET STRING,
+ gERAN OCTET STRING,
+ ...,
+ eHRPD EHRPD-Sector-ID
+}
+
+RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID
+
+MultiCellLoadReportingRequest::= SEQUENCE {
+ requestedCellList RequestedCellList,
+ ...
+}
+
+ReportingCellList-Item ::= SEQUENCE {
+ cell-ID IRAT-Cell-ID,
+ ...
+}
+
+ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item
+
+MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item
+
+MultiCellLoadReportingResponse-Item ::= CHOICE{
+ eUTRANResponse EUTRANResponse,
+ uTRANResponse OCTET STRING,
+ gERANResponse OCTET STRING,
+ ...,
+ eHRPD EHRPDMultiSectorLoadReportingResponseItem
+}
+
+
+--
+-- IEs for Event-triggered Cell Load Reporting application
+--
+
+NumberOfMeasurementReportingLevels ::= ENUMERATED {
+ rl2,
+ rl3,
+ rl4,
+ rl5,
+ rl10,
+ ...
+}
+
+EventTriggeredCellLoadReportingRequest ::= SEQUENCE {
+ numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels,
+ ...
+}
+
+OverloadFlag ::= ENUMERATED {
+ overload,
+ ...
+}
+
+EventTriggeredCellLoadReportingResponse ::= SEQUENCE {
+ cellLoadReportingResponse CellLoadReportingResponse,
+ overloadFlag OverloadFlag OPTIONAL,
+ ...
+}
+
+--
+-- IEs for HO Reporting application
+--
+
+
+
+HOReport::= SEQUENCE {
+ hoType HoType,
+ hoReportType HoReportType,
+ hosourceID IRAT-Cell-ID,
+ hoTargetID IRAT-Cell-ID,
+ candidateCellList CandidateCellList,
+ ...,
+ candidatePCIList CandidatePCIList OPTIONAL
+}
+
+HoType ::= ENUMERATED {
+ ltetoutran,
+ ltetogeran,
+ ...
+}
+
+HoReportType ::= ENUMERATED {
+ unnecessaryhotoanotherrat,
+ ...,
+ earlyirathandover
+}
+
+CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID
+
+CandidatePCIList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF CandidatePCI
+
+CandidatePCI ::= SEQUENCE {
+ pCI INTEGER (0..503),
+ eARFCN OCTET STRING,
+ ...
+}
+
+--
+-- IEs for E-UTRAN Cell Activation application
+--
+
+CellActivationRequest ::= SEQUENCE {
+ cellsToActivateList CellsToActivateList,
+ minimumActivationTime INTEGER (1..60) OPTIONAL,
+...
+}
+
+CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item
+
+CellsToActivateList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ ...
+}
+
+CellActivationResponse ::= SEQUENCE {
+ activatedCellsList ActivatedCellsList,
+ ...
+}
+
+ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item
+
+ActivatedCellsList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ ...
+}
+
+--
+-- IEs for Energy Savings Indication application
+--
+
+CellStateIndication ::= SEQUENCE {
+ notificationCellList NotificationCellList,
+ ...
+}
+
+NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item
+
+NotificationCellList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ notifyFlag NotifyFlag,
+ ...
+}
+
+NotifyFlag ::= ENUMERATED {
+ activated,
+ deactivated,
+ ...
+}
+
+FailureEventReport::= CHOICE {
+ tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN,
+ ...
+}
+
+TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE {
+ uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] --
+ mobilityInformation MobilityInformation OPTIONAL,
+ ...
+}
+
+--MobilityInformation ::= BIT STRING (SIZE(32))
+
+
+--
+-- IEs for reporting of eHRPD load
+--
+
+EHRPDCapacityValue ::= INTEGER (0..100)
+
+EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...)
+
+EHRPDSectorLoadReportingResponse ::= SEQUENCE {
+ dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity,
+ uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity,
+ ...
+}
+
+EHRPDCompositeAvailableCapacity ::= SEQUENCE {
+ eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue,
+ eHRPDCapacityValue EHRPDCapacityValue,
+ ...
+}
+
+EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE {
+ eHRPD-Sector-ID EHRPD-Sector-ID,
+ eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Constants
+--
+-- **************************************************************
+
+maxnoofIRATReportingCells INTEGER ::= 128
+maxnoofcandidateCells INTEGER ::= 16
+maxnoofCellineNB INTEGER ::= 256
+
+END
+
+
+
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
new file mode 100644
index 0000000000..4436def0bf
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
@@ -0,0 +1,303 @@
+/* packet-s1ap.c
+ * Routines for E-UTRAN S1 Application Protocol (S1AP) packet dissection
+ * Copyright 2007-2010, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Based on the RANAP dissector
+ *
+ * References: 3GPP TS 36.413 V9.2.0 (2010-03)
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+#include <epan/sctpppids.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-e212.h"
+#include "packet-sccp.h"
+#include "packet-lte-rrc.h"
+#include "packet-ranap.h"
+#include "packet-bssgp.h"
+#include "packet-s1ap.h"
+#include "packet-a21.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "S1 Application Protocol"
+#define PSNAME "S1AP"
+#define PFNAME "s1ap"
+
+/* Dissector will use SCTP PPID 18 or SCTP port. IANA assigned port = 36412 */
+#define SCTP_PORT_S1AP 36412
+
+void proto_register_s1ap(void);
+void proto_reg_handoff_s1ap(void);
+
+static dissector_handle_t nas_eps_handle;
+static dissector_handle_t lppa_handle;
+static dissector_handle_t bssgp_handle;
+
+#include "packet-s1ap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_s1ap = -1;
+
+static int hf_s1ap_transportLayerAddressIPv4 = -1;
+static int hf_s1ap_transportLayerAddressIPv6 = -1;
+#include "packet-s1ap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_s1ap = -1;
+static int ett_s1ap_TransportLayerAddress = -1;
+static int ett_s1ap_ToTargetTransparentContainer = -1;
+static int ett_s1ap_ToSourceTransparentContainer = -1;
+static int ett_s1ap_RRCContainer = -1;
+static int ett_s1ap_UERadioCapability = -1;
+static int ett_s1ap_RIMInformation = -1;
+static int ett_s1ap_Cdma2000PDU = -1;
+static int ett_s1ap_Cdma2000SectorID = -1;
+
+#include "packet-s1ap-ett.c"
+
+enum{
+ INITIATING_MESSAGE,
+ SUCCESSFUL_OUTCOME,
+ UNSUCCESSFUL_OUTCOME
+};
+
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint32 ProtocolExtensionID;
+static guint gbl_s1apSctpPort=SCTP_PORT_S1AP;
+static guint32 handover_type_value;
+static guint32 message_type;
+static gboolean g_s1ap_dissect_container = TRUE;
+static const char *obj_id = NULL;
+
+static dissector_handle_t gcsna_handle = NULL;
+
+/* Dissector tables */
+static dissector_table_t s1ap_ies_dissector_table;
+static dissector_table_t s1ap_ies_p1_dissector_table;
+static dissector_table_t s1ap_ies_p2_dissector_table;
+static dissector_table_t s1ap_extension_dissector_table;
+static dissector_table_t s1ap_proc_imsg_dissector_table;
+static dissector_table_t s1ap_proc_sout_dissector_table;
+static dissector_table_t s1ap_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+/* Currently not used
+static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+*/
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+static int dissect_SourceeNB_ToTargeteNB_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_TargeteNB_ToSourceeNB_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+#if 0
+static int dissect_SourceRNC_ToTargetRNC_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_TargetRNC_ToSourceRNC_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_SourceBSS_ToTargetBSS_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_TargetBSS_ToSourceBSS_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+#endif
+
+#include "packet-s1ap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ s1ap_ctx_t s1ap_ctx;
+
+ s1ap_ctx.message_type = message_type;
+ s1ap_ctx.ProcedureCode = ProcedureCode;
+ s1ap_ctx.ProtocolIE_ID = ProtocolIE_ID;
+ s1ap_ctx.ProtocolExtensionID = ProtocolExtensionID;
+
+ return (dissector_try_uint_new(s1ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+}
+/* Currently not used
+static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_uint(s1ap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_uint(s1ap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+*/
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ s1ap_ctx_t s1ap_ctx;
+
+ s1ap_ctx.message_type = message_type;
+ s1ap_ctx.ProcedureCode = ProcedureCode;
+ s1ap_ctx.ProtocolIE_ID = ProtocolIE_ID;
+ s1ap_ctx.ProtocolExtensionID = ProtocolExtensionID;
+
+ return (dissector_try_uint_new(s1ap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ return (dissector_try_uint_new(s1ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ return (dissector_try_uint_new(s1ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ return (dissector_try_uint_new(s1ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int
+dissect_s1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *s1ap_item = NULL;
+ proto_tree *s1ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "S1AP");
+
+ /* create the s1ap protocol tree */
+ s1ap_item = proto_tree_add_item(tree, proto_s1ap, tvb, 0, -1, ENC_NA);
+ s1ap_tree = proto_item_add_subtree(s1ap_item, ett_s1ap);
+
+ dissect_S1AP_PDU_PDU(tvb, pinfo, s1ap_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_reg_handoff_s1ap ---------------------------------------*/
+void
+proto_reg_handoff_s1ap(void)
+{
+ static gboolean Initialized=FALSE;
+ static dissector_handle_t s1ap_handle;
+ static guint SctpPort;
+
+ s1ap_handle = find_dissector("s1ap");
+ gcsna_handle = find_dissector("gcsna");
+
+ if (!Initialized) {
+ nas_eps_handle = find_dissector("nas-eps");
+ lppa_handle = find_dissector("lppa");
+ bssgp_handle = find_dissector("bssgp");
+ dissector_add_for_decode_as("sctp.port", s1ap_handle);
+ dissector_add_uint("sctp.ppi", S1AP_PAYLOAD_PROTOCOL_ID, s1ap_handle);
+ Initialized=TRUE;
+#include "packet-s1ap-dis-tab.c"
+ } else {
+ if (SctpPort != 0) {
+ dissector_delete_uint("sctp.port", SctpPort, s1ap_handle);
+ }
+ }
+
+ SctpPort=gbl_s1apSctpPort;
+ if (SctpPort != 0) {
+ dissector_add_uint("sctp.port", SctpPort, s1ap_handle);
+ }
+}
+
+/*--- proto_register_s1ap -------------------------------------------*/
+void proto_register_s1ap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_s1ap_transportLayerAddressIPv4,
+ { "transportLayerAddress(IPv4)", "s1ap.transportLayerAddressIPv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_transportLayerAddressIPv6,
+ { "transportLayerAddress(IPv6)", "s1ap.transportLayerAddressIPv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+#include "packet-s1ap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_s1ap,
+ &ett_s1ap_TransportLayerAddress,
+ &ett_s1ap_ToTargetTransparentContainer,
+ &ett_s1ap_ToSourceTransparentContainer,
+ &ett_s1ap_RRCContainer,
+ &ett_s1ap_UERadioCapability,
+ &ett_s1ap_RIMInformation,
+ &ett_s1ap_Cdma2000PDU,
+ &ett_s1ap_Cdma2000SectorID,
+#include "packet-s1ap-ettarr.c"
+ };
+
+ module_t *s1ap_module;
+
+ /* Register protocol */
+ proto_s1ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_s1ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ register_dissector("s1ap", dissect_s1ap, proto_s1ap);
+
+ /* Register dissector tables */
+ s1ap_ies_dissector_table = register_dissector_table("s1ap.ies", "S1AP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ s1ap_ies_p1_dissector_table = register_dissector_table("s1ap.ies.pair.first", "S1AP-PROTOCOL-IES-PAIR FirstValue", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ s1ap_ies_p2_dissector_table = register_dissector_table("s1ap.ies.pair.second", "S1AP-PROTOCOL-IES-PAIR SecondValue", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ s1ap_extension_dissector_table = register_dissector_table("s1ap.extension", "S1AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ s1ap_proc_imsg_dissector_table = register_dissector_table("s1ap.proc.imsg", "S1AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ s1ap_proc_sout_dissector_table = register_dissector_table("s1ap.proc.sout", "S1AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ s1ap_proc_uout_dissector_table = register_dissector_table("s1ap.proc.uout", "S1AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ /* Register configuration options for ports */
+ s1ap_module = prefs_register_protocol(proto_s1ap, proto_reg_handoff_s1ap);
+
+ prefs_register_uint_preference(s1ap_module, "sctp.port",
+ "S1AP SCTP Port",
+ "Set the SCTP port for S1AP messages",
+ 10,
+ &gbl_s1apSctpPort);
+ prefs_register_bool_preference(s1ap_module, "dissect_container", "Dissect TransparentContainer", "Dissect TransparentContainers that are opaque to S1AP", &g_s1ap_dissect_container);
+
+}
+
+
+
+
+
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.h b/epan/dissectors/asn1/s1ap/packet-s1ap-template.h
new file mode 100644
index 0000000000..badaea0e68
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.h
@@ -0,0 +1,36 @@
+/* packet-s1ap.h
+ * Routines for E-UTRAN S1 Application Protocol (S1AP) packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_S1AP_H
+#define PACKET_S1AP_H
+
+typedef struct _s1ap_ctx_t {
+ guint32 message_type;
+ guint32 ProcedureCode;
+ guint32 ProtocolIE_ID;
+ guint32 ProtocolExtensionID;
+} s1ap_ctx_t;
+
+
+#include "packet-s1ap-exp.h"
+
+#endif /* PACKET_S1AP_H */
diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf
new file mode 100644
index 0000000000..18cca77d30
--- /dev/null
+++ b/epan/dissectors/asn1/s1ap/s1ap.cnf
@@ -0,0 +1,1345 @@
+# s1ap.cnf
+# s1ap conformation file
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.USE_VALS_EXT
+CauseRadioNetwork
+ProcedureCode
+ProtocolIE-ID
+
+#.EXPORTS ONLY_VALS WS_DLL
+CauseRadioNetwork
+CauseTransport
+CauseNas
+CauseProtocol
+CauseMisc
+
+#.EXPORTS
+ENB-StatusTransfer-TransparentContainer_PDU
+Global-ENB-ID_PDU
+Global-ENB-ID
+SONtransferApplicationIdentity_PDU
+SONtransferRequestContainer_PDU
+SONtransferRequestContainer
+SONtransferResponseContainer_PDU
+SONtransferResponseContainer
+SONtransferCause_PDU
+UE-HistoryInformation_PDU
+
+
+#.PDU
+S1AP-PDU
+SourceeNB-ToTargeteNB-TransparentContainer
+TargeteNB-ToSourceeNB-TransparentContainer
+ENB-StatusTransfer-TransparentContainer
+SONtransferApplicationIdentity
+SONtransferRequestContainer
+SONtransferResponseContainer
+SONtransferCause
+UE-HistoryInformation
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.NO_EMIT
+TBCD-STRING
+SourceBSS-ToTargetBSS-TransparentContainer
+TargetBSS-ToSourceBSS-TransparentContainer
+SourceRNC-ToTargetRNC-TransparentContainer
+TargetRNC-ToSourceRNC-TransparentContainer
+ReportingCellList
+ReportingCellList-Item
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+ProtocolIE-FieldPair
+ProtocolIE-ContainerPair
+ProtocolIE-ContainerPairList
+ProtocolError-IE-ContainerList
+E-RAB-IE-ContainerPairList
+Presence
+L3-Information
+OldBSS-ToNewBSS-Information
+#.END
+
+
+#.TYPE_RENAME
+
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+
+
+PrivateIE-Field/id private_id
+ProtocolExtensionField/id ext_id
+
+#PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &s1ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+#.END
+
+
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+# Currently not used
+# FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue
+# FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
+
+#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
+ val_to_str_ext(ProcedureCode, &s1ap_ProcedureCode_vals_ext,
+ "unknown message"));
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+#.FN_HDR InitiatingMessage/value
+ message_type = INITIATING_MESSAGE;
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+#.FN_HDR SuccessfulOutcome/value
+ message_type = SUCCESSFUL_OUTCOME;
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+#.FN_HDR UnsuccessfulOutcome/value
+ message_type = UNSUCCESSFUL_OUTCOME;
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-Container {{IEsSetParam}}
+
+#.FN_PARS ProtocolIE-ContainerList
+MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+#.FN_HDR ProtocolIE-ContainerList
+ static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
+ { "lowerBound", ASN1_PAR_INTEGER },
+ { "upperBound", ASN1_PAR_INTEGER },
+ { NULL, (asn1_par_type)0 }
+ };
+ asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
+#.END
+
+#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-ContainerPair {{IEsSetParam}}
+
+# Currently not used
+# FN_PARS ProtocolIE-ContainerPairList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerPairList
+# static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, 0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
+# END
+
+#E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+#.FN_BODY E-RAB-IE-ContainerList
+ asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
+ asn1_param_push_integer(%(ACTX)s, 1);
+ asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
+%(DEFAULT_BODY)s
+ asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
+#.END
+
+# E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} }
+# Currently not used
+# FN_BODY SAEB-IE-ContainerPairList
+# asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerPairList");
+# asn1_param_push_integer(%(ACTX)s, 1);
+# asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
+#%(DEFAULT_BODY)s
+# asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerPairList");
+# END
+
+# Currently not used
+# ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+# FN_BODY ProtocolError-IE-ContainerList
+# asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
+# asn1_param_push_integer(%(ACTX)s, 1);
+# asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
+#%(DEFAULT_BODY)s
+# asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
+# END
+
+#.FN_HDR PrivateIE-ID
+obj_id = NULL;
+
+#.FN_PARS PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &obj_id
+
+#.FN_BODY PrivateIE-Field/value
+
+ if (obj_id){
+ offset=call_per_oid_callback(obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index);
+ }else{
+%(DEFAULT_BODY)s
+ }
+
+
+# following construction is not supported by asn2wrs
+# PLMNidentity ::= TBCD-STRING (SIZE (3))
+# TBCD-STRING ::= OCTET STRING
+
+#.FN_BODY PLMNidentity VAL_PTR = parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+ if(tvb_reported_length(tvb)==0)
+ return offset;
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, E212_NONE, FALSE);
+#.END
+
+#.FN_BODY ENBname VAL_PTR = parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ int length;
+ int p_offset;
+ gboolean is_ascii;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ length = tvb_reported_length(parameter_tvb);
+
+ is_ascii = TRUE;
+ for (p_offset=0; p_offset < length; p_offset++){
+ if(!g_ascii_isprint(tvb_get_guint8(parameter_tvb, p_offset ))){
+ is_ascii = FALSE;
+ break;
+ }
+ }
+ if (is_ascii)
+ proto_item_append_text(actx->created_item,"(%%s)",tvb_format_text(parameter_tvb, 0, length));
+
+
+#.FN_BODY TAC VAL_PTR = &parameter_tvb
+tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ proto_item_append_text(actx->created_item," (%%u)",tvb_get_ntohs(parameter_tvb, 0));
+
+#.END
+
+
+#.FN_BODY NAS-PDU VAL_PTR = &parameter_tvb
+
+tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if ((tvb_reported_length(parameter_tvb)>0)&&(nas_eps_handle))
+ call_dissector(nas_eps_handle,parameter_tvb,%(ACTX)s->pinfo, tree);
+
+#.FN_BODY LPPa-PDU VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if ((tvb_reported_length(parameter_tvb)>0)&&(lppa_handle))
+ call_dissector(lppa_handle, parameter_tvb, %(ACTX)s->pinfo, tree);
+
+#.FN_BODY TransportLayerAddress VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_tree *subtree;
+ gint tvb_len;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+# The Transport Layer Address signalled in S1-AP messages is a bit string of
+# a) 32 bits in case of IPv4 address according to [6]; and
+# b) 128 bits in case of IPv6 address according to [5].
+ /* Get the length */
+ tvb_len = tvb_reported_length(parameter_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_TransportLayerAddress);
+ if (tvb_len==4){
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_s1ap_transportLayerAddressIPv4, parameter_tvb, 0, tvb_len, ENC_BIG_ENDIAN);
+ }
+ if (tvb_len==16){
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_s1ap_transportLayerAddressIPv6, parameter_tvb, 0, tvb_len, ENC_NA);
+ }
+#.FN_HDR InitialUEMessage
+ /* Set the direction of the message */
+ actx->pinfo->link_dir=P2P_DIR_UL;
+
+#.FN_HDR DownlinkNASTransport
+ /* Set the direction of the message */
+ actx->pinfo->link_dir=P2P_DIR_DL;
+
+#.FN_HDR UplinkNASTransport
+ /* Set the direction of the message */
+ actx->pinfo->link_dir=P2P_DIR_UL;
+
+#.FN_BODY HandoverType VAL_PTR = &handover_type_value
+
+%(DEFAULT_BODY)s
+
+#Zero the value before use
+#.FN_HDR HandoverRequired
+ handover_type_value = 0;
+#.FN_HDR HandoverCommand
+ handover_type_value = 0;
+#.FN_HDR HandoverRequest
+ handover_type_value = 0;
+
+#.FN_BODY Source-ToTarget-TransparentContainer VAL_PTR = &parameter_tvb
+# I think the message is "directly encoded" into the octet string(no "double encoding")
+# (Compare RANAP)
+# Annex A
+# ...Therefore the container content is encoded according to the
+# rules which are specified for the target radio system. In section 8.4.1.2,
+# it is described how the container shall be encoded with respect to the scenario
+# in which it is used.
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+
+%(DEFAULT_BODY)s
+
+ if (g_s1ap_dissect_container) {
+ /* Don't want elements inside container to write to info column */
+ col_set_writable(actx->pinfo->cinfo, FALSE);
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_ToTargetTransparentContainer);
+
+ switch(handover_type_value){
+ /*
+ HandoverType ::= ENUMERATED {
+ intralte,
+ ltetoutran,
+ ltetogeran,
+ utrantolte,
+ gerantolte,
+ ...
+ } */
+ case 0:
+ /* intralte
+ Intra E-UTRAN handover Source eNB to Target eNB
+ Transparent Container 36.413
+ */
+ dissect_SourceeNB_ToTargeteNB_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 1:
+ /* ltetoutran
+ Source RNC to Target RNC
+ Transparent Container 25.413
+ */
+ dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 2:
+ /* ltetogeran
+ Source BSS to Target BSS
+ Transparent Container 48.018
+ */
+ de_bssgp_source_BSS_to_target_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0);
+ break;
+ case 3:
+ /* utrantolte */
+ break;
+ case 4:
+ /* gerantolte */
+ break;
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ break;
+ }
+ /* Enable writing of the column again */
+ col_set_writable(actx->pinfo->cinfo, TRUE);
+ }
+#.FN_BODY Target-ToSource-TransparentContainer VAL_PTR = &parameter_tvb
+# I think the message is "directly encoded" into the octet string(no "double encoding")
+# See Target-ToSource-TransparentContainer in RANAP
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+
+%(DEFAULT_BODY)s
+
+ if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_ToSourceTransparentContainer);
+
+ switch(handover_type_value){
+ /*
+ HandoverType ::= ENUMERATED {
+ intralte,
+ ltetoutran,
+ ltetogeran,
+ utrantolte,
+ gerantolte,
+ ...
+ } */
+ case 0:
+ /* intralte
+ Intra E-UTRAN handover Target eNB to Source eNB
+ Transparent Container 36.413
+ */
+ dissect_TargeteNB_ToSourceeNB_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 1:
+ /* ltetoutran
+ Target RNC to Source RNC
+ Transparent Container 25.413
+ */
+ dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 2:
+ /* ltetogeran
+ Target BSS to Source BSS
+ Transparent Container 48.018
+ */
+ de_bssgp_target_BSS_to_source_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0);
+
+ break;
+ case 3:
+ /* utrantolte */
+ break;
+ case 4:
+ /* gerantolte */
+ break;
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ break;
+ }
+ }
+#SourceBSS-ToTargetBSS-TransparentContainer
+#SourceRNC-ToTargetRNC-TransparentContainer
+#TargetRNC-ToSourceRNC-TransparentContainer
+#TargetBSS-ToSourceBSS-TransparentContainer
+
+#.FN_BODY RRC-Container VAL_PTR = &parameter_tvb
+
+# Extracts from the standard:
+# Includes the RRC Handover Preparation Information message as defined
+# in subclause 10.2.2 of [16].
+# [16] 3GPP TS 36.331: "Evolved Universal Terrestrial Radio Access (E-UTRAN); Radio Resource
+# Control (RRC) Protocol Specification3GPP TS 36.331:
+# "Evolved Universal Terrestrial Radio Access (E-UTRAN); Radio Resource
+# Control (RRC) Protocol Specification.
+# :
+# 9.2.1.7 Source eNB to Target eNB Transparent Container
+# The Source eNB to target eNB Transparent Container IE is an information element
+# that is produced by the source eNB and is transmitted to the target eNB.
+# For inter-system handovers to E-UTRAN, the IE is transmitted from the external
+# handover source to the target eNB. This IE is transparent to the EPC.
+#
+# RRC Container M OCTET STRING Includes the RRC Handover Preparation Information
+# message as defined in subclause 10.2.2 of [16].
+# :
+# 9.2.1.8 Target eNB to Source eNB Transparent Container
+# The Target eNB to Source eNB Transparent Container IE is an information element
+# that is produced by the target eNB and is transmitted to the source eNB.
+# For inter-system handovers to E-UTRAN, the IE is transmitted from the target
+# eNB to the external relocation source.
+# :
+# RRC Container M OCTET STRING Includes the RRC E-UTRA Handover Command message
+# as defined in subclause 10.2.2 of [16].
+# --- End quote ---
+# Source eNB to Target eNB Transparent Container is present in
+# HandoverRequired and HandoverRequest.
+# Target eNB to Source eNB Transparent Container is present in
+# HandoverCommand and HandoverRequestAcknowledge.
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_RRCContainer);
+
+ switch(message_type){
+ case INITIATING_MESSAGE:
+ /* 9.2.1.7 Source eNB to Target eNB Transparent Container */
+ dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case SUCCESSFUL_OUTCOME:
+ /* 9.2.1.7 Source eNB to Target eNB Transparent Container */
+ dissect_lte_rrc_HandoverCommand_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ break;
+ default:
+ break;
+ }
+}
+
+
+
+
+#.FN_BODY UERadioCapability VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioCapability);
+ dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+}
+
+# 9.2.3.24 RIM Information
+# Contains the BSSGP RIM PDU
+#.FN_BODY RIMInformation VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_RIMInformation);
+ if ((tvb_reported_length(parameter_tvb)>0)&&(bssgp_handle)){
+ col_set_fence(%(ACTX)s->pinfo->cinfo, COL_INFO);
+ call_dissector(bssgp_handle,parameter_tvb,%(ACTX)s->pinfo, subtree);
+ }
+
+
+#.FN_BODY Cdma2000PDU VAL_PTR = &parameter_tvb
+
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+if (gcsna_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_Cdma2000PDU);
+ call_dissector(gcsna_handle, parameter_tvb, %(ACTX)s->pinfo, subtree);
+}
+
+
+#.FN_BODY Cdma2000SectorID VAL_PTR = &parameter_tvb
+/* 9.2.1.25
+ * This IE is set to CDMA2000 Reference Cell ID
+ * corresponding to the HRPD/1xRTT sector under
+ * the HRPD AN/1xBS to which the eNB has initiated the UE
+ * to handover to. The CDMA2000 Reference Cell
+ * ID is statically configured in the eNB.
+ */
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_Cdma2000SectorID);
+ dissect_a21_ie_common(parameter_tvb, %(ACTX)s->pinfo, NULL/* Top tree not needed */, subtree, 0, 0 /* message_type not needed */);
+
+
+#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &s1ap_ProtocolIE_ID_vals_ext
+
+#.ASSIGN_VALUE_TO_TYPE # S1AP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+
+id-HandoverPreparation ProcedureCode
+id-HandoverResourceAllocation ProcedureCode
+id-HandoverNotification ProcedureCode
+id-PathSwitchRequest ProcedureCode
+id-HandoverCancel ProcedureCode
+id-E-RABSetup ProcedureCode
+id-E-RABModify ProcedureCode
+id-E-RABRelease ProcedureCode
+id-E-RABReleaseIndication ProcedureCode
+id-InitialContextSetup ProcedureCode
+id-Paging ProcedureCode
+id-downlinkNASTransport ProcedureCode
+id-initialUEMessage ProcedureCode
+id-uplinkNASTransport ProcedureCode
+id-Reset ProcedureCode
+id-ErrorIndication ProcedureCode
+id-NASNonDeliveryIndication ProcedureCode
+id-S1Setup ProcedureCode
+id-UEContextReleaseRequest ProcedureCode
+id-DownlinkS1cdma2000tunnelling ProcedureCode
+id-UplinkS1cdma2000tunnelling ProcedureCode
+id-UEContextModification ProcedureCode
+id-UECapabilityInfoIndication ProcedureCode
+id-UEContextRelease ProcedureCode
+id-eNBStatusTransfer ProcedureCode
+id-MMEStatusTransfer ProcedureCode
+id-DeactivateTrace ProcedureCode
+id-TraceStart ProcedureCode
+id-TraceFailureIndication ProcedureCode
+id-ENBConfigurationUpdate ProcedureCode
+id-MMEConfigurationUpdate ProcedureCode
+id-LocationReportingControl ProcedureCode
+id-LocationReportingFailureIndication ProcedureCode
+id-LocationReport ProcedureCode
+id-OverloadStart ProcedureCode
+id-OverloadStop ProcedureCode
+id-WriteReplaceWarning ProcedureCode
+id-eNBDirectInformationTransfer ProcedureCode
+id-MMEDirectInformationTransfer ProcedureCode
+id-PrivateMessage ProcedureCode
+id-eNBConfigurationTransfer ProcedureCode
+id-MMEConfigurationTransfer ProcedureCode
+id-CellTrafficTrace ProcedureCode
+id-Kill ProcedureCode
+id-downlinkUEAssociatedLPPaTransport ProcedureCode
+id-uplinkUEAssociatedLPPaTransport ProcedureCode
+id-downlinkNonUEAssociatedLPPaTransport ProcedureCode
+id-uplinkNonUEAssociatedLPPaTransport ProcedureCode
+id-UERadioCapabilityMatch ProcedureCode
+id-PWSRestartIndication ProcedureCode
+id-E-RABModificationIndication ProcedureCode
+id-PWSFailureIndication ProcedureCode
+id-RerouteNASRequest ProcedureCode
+id-UEContextModificationIndication ProcedureCode
+
+# ProtocolIE-ID
+id-MME-UE-S1AP-ID ProtocolIE-ID
+id-HandoverType ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-TargetID ProtocolIE-ID
+id-eNB-UE-S1AP-ID ProtocolIE-ID
+id-E-RABSubjecttoDataForwardingList ProtocolIE-ID
+id-E-RABtoReleaseListHOCmd ProtocolIE-ID
+id-E-RABDataForwardingItem ProtocolIE-ID
+id-E-RABReleaseItemBearerRelComp ProtocolIE-ID
+id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID
+id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID
+id-E-RABAdmittedList ProtocolIE-ID
+id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID
+id-E-RABAdmittedItem ProtocolIE-ID
+id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID
+id-E-RABToBeSwitchedDLList ProtocolIE-ID
+id-E-RABToBeSwitchedDLItem ProtocolIE-ID
+id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID
+id-TraceActivation ProtocolIE-ID
+id-NAS-PDU ProtocolIE-ID
+id-E-RABToBeSetupItemHOReq ProtocolIE-ID
+id-E-RABSetupListBearerSURes ProtocolIE-ID
+id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID
+id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID
+id-E-RABModifyListBearerModRes ProtocolIE-ID
+id-E-RABFailedToModifyList ProtocolIE-ID
+id-E-RABToBeReleasedList ProtocolIE-ID
+id-E-RABFailedToReleaseList ProtocolIE-ID
+id-E-RABItem ProtocolIE-ID
+id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID
+id-E-RABModifyItemBearerModRes ProtocolIE-ID
+id-E-RABReleaseItem ProtocolIE-ID
+id-E-RABSetupItemBearerSURes ProtocolIE-ID
+id-SecurityContext ProtocolIE-ID
+id-HandoverRestrictionList ProtocolIE-ID
+id-UEPagingID ProtocolIE-ID
+id-pagingDRX ProtocolIE-ID
+id-TAIList ProtocolIE-ID
+id-TAIItem ProtocolIE-ID
+id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID
+id-E-RABReleaseItemHOCmd ProtocolIE-ID
+id-E-RABSetupItemCtxtSURes ProtocolIE-ID
+id-E-RABSetupListCtxtSURes ProtocolIE-ID
+id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID
+id-E-RABToBeSetupListHOReq ProtocolIE-ID
+id-GERANtoLTEHOInformationRes ProtocolIE-ID
+id-UTRANtoLTEHOInformationRes ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-eNBname ProtocolIE-ID
+id-MMEname ProtocolIE-ID
+id-Global-ENB-ID ProtocolIE-ID
+id-ServedPLMNs ProtocolIE-ID
+id-SupportedTAs ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-uEaggregateMaximumBitrate ProtocolIE-ID
+id-TAI ProtocolIE-ID
+id-E-RABReleaseListBearerRelComp ProtocolIE-ID
+id-cdma2000PDU ProtocolIE-ID
+id-cdma2000RATType ProtocolIE-ID
+id-cdma2000SectorID ProtocolIE-ID
+id-SecurityKey ProtocolIE-ID
+id-UERadioCapability ProtocolIE-ID
+id-GUMMEI-ID ProtocolIE-ID
+id-E-RABInformationListItem ProtocolIE-ID
+id-Direct-Forwarding-Path-Availability ProtocolIE-ID
+id-UEIdentityIndexValue ProtocolIE-ID
+id-cdma2000HOStatus ProtocolIE-ID
+id-cdma2000HORequiredIndication ProtocolIE-ID
+id-E-UTRAN-Trace-ID ProtocolIE-ID
+id-RelativeMMECapacity ProtocolIE-ID
+id-SourceMME-UE-S1AP-ID ProtocolIE-ID
+id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID
+id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID
+id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID
+id-ResetType ProtocolIE-ID
+id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID
+id-E-RABToBeSwitchedULItem ProtocolIE-ID
+id-E-RABToBeSwitchedULList ProtocolIE-ID
+id-S-TMSI ProtocolIE-ID
+id-cdma2000OneXRAND ProtocolIE-ID
+id-RequestType ProtocolIE-ID
+id-UE-S1AP-IDs ProtocolIE-ID
+id-EUTRAN-CGI ProtocolIE-ID
+id-OverloadResponse ProtocolIE-ID
+id-cdma2000OneXSRVCCInfo ProtocolIE-ID
+id-E-RABFailedToBeReleasedList ProtocolIE-ID
+id-Source-ToTarget-TransparentContainer ProtocolIE-ID
+id-ServedGUMMEIs ProtocolIE-ID
+id-SubscriberProfileIDforRFP ProtocolIE-ID
+
+id-UESecurityCapabilities ProtocolIE-ID
+id-CSFallbackIndicator ProtocolIE-ID
+id-CNDomain ProtocolIE-ID
+id-E-RABReleasedList ProtocolIE-ID
+id-MessageIdentifier ProtocolIE-ID
+id-SerialNumber ProtocolIE-ID
+id-WarningAreaList ProtocolIE-ID
+id-RepetitionPeriod ProtocolIE-ID
+id-NumberofBroadcastRequest ProtocolIE-ID
+id-WarningType ProtocolIE-ID
+id-WarningSecurityInfo ProtocolIE-ID
+id-DataCodingScheme ProtocolIE-ID
+id-WarningMessageContents ProtocolIE-ID
+id-BroadcastCompletedAreaList ProtocolIE-ID
+id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID
+id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID
+id-Target-ToSource-TransparentContainer ProtocolIE-ID
+id-SRVCCOperationPossible ProtocolIE-ID
+id-SRVCCHOIndication ProtocolIE-ID
+id-NAS-DownlinkCount ProtocolIE-ID
+id-CSG-Id ProtocolIE-ID
+id-CSG-IdList ProtocolIE-ID
+id-SONConfigurationTransferECT ProtocolIE-ID
+id-SONConfigurationTransferMCT ProtocolIE-ID
+id-TraceCollectionEntityIPAddress ProtocolIE-ID
+id-MSClassmark2 ProtocolIE-ID
+id-MSClassmark3 ProtocolIE-ID
+id-RRC-Establishment-Cause ProtocolIE-ID
+id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID
+id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID
+id-DefaultPagingDRX ProtocolIE-ID
+id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID
+id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID
+id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID
+id-BroadcastCancelledAreaList ProtocolIE-ID
+id-ConcurrentWarningMessageIndicator ProtocolIE-ID
+id-Data-Forwarding-Not-Possible ProtocolIE-ID
+id-ExtendedRepetitionPeriod ProtocolIE-ID
+id-CellAccessMode ProtocolIE-ID
+id-CSGMembershipStatus ProtocolIE-ID
+id-LPPa-PDU ProtocolIE-ID
+id-Routing-ID ProtocolIE-ID
+id-Time-Synchronisation-Info ProtocolIE-ID
+id-PS-ServiceNotAvailable ProtocolIE-ID
+id-PagingPriority ProtocolIE-ID
+id-x2TNLConfigurationInfo ProtocolIE-ID
+id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID
+id-GUMMEIList ProtocolIE-ID
+id-GW-TransportLayerAddress ProtocolIE-ID
+id-Correlation-ID ProtocolIE-ID
+id-SourceMME-GUMMEI ProtocolIE-ID
+id-MME-UE-S1AP-ID-2 ProtocolIE-ID
+id-RegisteredLAI ProtocolIE-ID
+id-RelayNode-Indicator ProtocolIE-ID
+id-TrafficLoadReductionIndication ProtocolIE-ID
+id-MDTConfiguration ProtocolIE-ID
+id-MMERelaySupportIndicator ProtocolIE-ID
+id-GWContextReleaseIndication ProtocolIE-ID
+id-ManagementBasedMDTAllowed ProtocolIE-ID
+id-PrivacyIndicator ProtocolIE-ID
+id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID
+id-HO-Cause ProtocolIE-ID
+id-VoiceSupportMatchIndicator ProtocolIE-ID
+id-GUMMEIType ProtocolIE-ID
+id-M3Configuration ProtocolIE-ID
+id-M4Configuration ProtocolIE-ID
+id-M5Configuration ProtocolIE-ID
+id-MDT-Location-Info ProtocolIE-ID
+id-MobilityInformation ProtocolIE-ID
+id-Tunnel-Information-for-BBF ProtocolIE-ID
+id-ManagementBasedMDTPLMNList ProtocolIE-ID
+id-SignallingBasedMDTPLMNList ProtocolIE-ID
+id-ULCOUNTValueExtended ProtocolIE-ID
+id-DLCOUNTValueExtended ProtocolIE-ID
+id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID
+id-ECGIListForRestart ProtocolIE-ID
+id-SIPTO-Correlation-ID ProtocolIE-ID
+id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID
+id-TransportInformation ProtocolIE-ID
+id-LHN-ID ProtocolIE-ID
+id-AdditionalCSFallbackIndicator ProtocolIE-ID
+id-TAIListForRestart ProtocolIE-ID
+id-UserLocationInformation ProtocolIE-ID
+id-EmergencyAreaIDListForRestart ProtocolIE-ID
+id-KillAllWarningMessages ProtocolIE-ID
+id-Masked-IMEISV ProtocolIE-ID
+id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID
+id-uE-HistoryInformationFromTheUE ProtocolIE-ID
+id-ProSeAuthorized ProtocolIE-ID
+id-ExpectedUEBehaviour ProtocolIE-ID
+id-LoggedMBSFNMDT ProtocolIE-ID
+id-UERadioCapabilityForPaging ProtocolIE-ID
+id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID
+id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID
+id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID
+id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID
+id-E-RABModifyListBearerModConf ProtocolIE-ID
+id-E-RABModifyItemBearerModConf ProtocolIE-ID
+id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID
+id-SON-Information-Report ProtocolIE-ID
+id-Muting-Availability-Indication ProtocolIE-ID
+id-Muting-Pattern-Information ProtocolIE-ID
+id-Synchronisation-Information ProtocolIE-ID
+id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID
+id-ProSeUEtoNetworkRelaying ProtocolIE-ID
+id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID
+id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID
+id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID
+id-M6Configuration ProtocolIE-ID
+id-M7Configuration ProtocolIE-ID
+id-PWSfailedECGIList ProtocolIE-ID
+id-MME-Group-ID ProtocolIE-ID
+id-Additional-GUTI ProtocolIE-ID
+id-S1-Message ProtocolIE-ID
+id-CSGMembershipInfo ProtocolIE-ID
+#.END
+
+#.REGISTER
+
+#S1AP-PROTOCOL-IES
+MME-UE-S1AP-ID N s1ap.ies id-MME-UE-S1AP-ID
+HandoverType N s1ap.ies id-HandoverType
+Cause N s1ap.ies id-Cause
+TargetID N s1ap.ies id-TargetID
+ENB-UE-S1AP-ID N s1ap.ies id-eNB-UE-S1AP-ID
+E-RABSubjecttoDataForwardingList N s1ap.ies id-E-RABSubjecttoDataForwardingList
+E-RABList N s1ap.ies id-E-RABtoReleaseListHOCmd
+E-RABDataForwardingItem N s1ap.ies id-E-RABDataForwardingItem
+E-RABReleaseItemBearerRelComp N s1ap.ies id-E-RABReleaseItemBearerRelComp
+E-RABToBeSetupListBearerSUReq N s1ap.ies id-E-RABToBeSetupListBearerSUReq
+E-RABToBeSetupItemBearerSUReq N s1ap.ies id-E-RABToBeSetupItemBearerSUReq
+E-RABAdmittedList N s1ap.ies id-E-RABAdmittedList
+E-RABFailedtoSetupListHOReqAck N s1ap.ies id-E-RABFailedToSetupListHOReqAck
+E-RABAdmittedItem N s1ap.ies id-E-RABAdmittedItem
+E-RABFailedToSetupItemHOReqAck N s1ap.ies id-E-RABFailedtoSetupItemHOReqAck
+E-RABToBeSwitchedDLList N s1ap.ies id-E-RABToBeSwitchedDLList
+E-RABToBeSwitchedDLItem N s1ap.ies id-E-RABToBeSwitchedDLItem
+E-RABToBeSetupListCtxtSUReq N s1ap.ies id-E-RABToBeSetupListCtxtSUReq
+TraceActivation N s1ap.ies id-TraceActivation
+E-UTRAN-Trace-ID N s1ap.ies id-E-UTRAN-Trace-ID
+NAS-PDU N s1ap.ies id-NAS-PDU
+E-RABToBeSetupItemHOReq N s1ap.ies id-E-RABToBeSetupItemHOReq
+E-RABSetupListBearerSURes N s1ap.ies id-E-RABSetupListBearerSURes
+E-RABList N s1ap.ies id-E-RABFailedToSetupListBearerSURes
+E-RABToBeModifiedListBearerModReq N s1ap.ies id-E-RABToBeModifiedListBearerModReq
+E-RABModifyListBearerModRes N s1ap.ies id-E-RABModifyListBearerModRes
+E-RABList N s1ap.ies id-E-RABFailedToModifyList
+E-RABList N s1ap.ies id-E-RABToBeReleasedList
+E-RABList N s1ap.ies id-E-RABFailedToReleaseList
+E-RABItem N s1ap.ies id-E-RABItem
+E-RABToBeModifiedItemBearerModReq N s1ap.ies id-E-RABToBeModifiedItemBearerModReq
+E-RABModifyItemBearerModRes N s1ap.ies id-E-RABModifyItemBearerModRes
+#SAEBearerReleaseItem N s1ap.ies id-E-RABReleaseItem
+E-RABSetupItemBearerSURes N s1ap.ies id-E-RABSetupItemBearerSURes
+SecurityContext N s1ap.ies id-SecurityContext
+HandoverRestrictionList N s1ap.ies id-HandoverRestrictionList
+UEPagingID N s1ap.ies id-UEPagingID
+PagingDRX N s1ap.ies id-pagingDRX
+TAIList N s1ap.ies id-TAIList
+TAIItem N s1ap.ies id-TAIItem
+E-RABList N s1ap.ies id-E-RABFailedToSetupListCtxtSURes
+#E-RABReleaseItemHOCmd N s1ap.ies id-E-RABReleaseItemHOCmd
+E-RABSetupItemCtxtSURes N s1ap.ies id-E-RABSetupItemCtxtSURes
+E-RABSetupListCtxtSURes N s1ap.ies id-E-RABSetupListCtxtSURes
+E-RABToBeSetupItemCtxtSUReq N s1ap.ies id-E-RABToBeSetupItemCtxtSUReq
+E-RABToBeSetupListHOReq N s1ap.ies id-E-RABToBeSetupListHOReq
+#UTRANtoLTEHOInformationRes N s1ap.ies id-UTRANtoLTEHOInformationRes
+CriticalityDiagnostics N s1ap.ies id-CriticalityDiagnostics
+Global-ENB-ID N s1ap.ies id-Global-ENB-ID
+ENBname N s1ap.ies id-eNBname
+MMEname N s1ap.ies id-MMEname
+ServedPLMNs N s1ap.ies id-ServedPLMNs
+SupportedTAs N s1ap.ies id-SupportedTAs
+TimeToWait N s1ap.ies id-TimeToWait
+UEAggregateMaximumBitrate N s1ap.ies id-uEaggregateMaximumBitrate
+TAI N s1ap.ies id-TAI
+E-RABReleaseListBearerRelComp N s1ap.ies id-E-RABReleaseListBearerRelComp
+Cdma2000PDU N s1ap.ies id-cdma2000PDU
+Cdma2000RATType N s1ap.ies id-cdma2000RATType
+Cdma2000SectorID N s1ap.ies id-cdma2000SectorID
+SecurityKey N s1ap.ies id-SecurityKey
+UERadioCapability N s1ap.ies id-UERadioCapability
+GUMMEI N s1ap.ies id-GUMMEI-ID
+E-RABInformationListItem N s1ap.ies id-E-RABInformationListItem
+Direct-Forwarding-Path-Availability N s1ap.ies id-Direct-Forwarding-Path-Availability
+UEIdentityIndexValue N s1ap.ies id-UEIdentityIndexValue
+Cdma2000HOStatus N s1ap.ies id-cdma2000HOStatus
+Cdma2000HORequiredIndication N s1ap.ies id-cdma2000HORequiredIndication
+RelativeMMECapacity N s1ap.ies id-RelativeMMECapacity
+MME-UE-S1AP-ID N s1ap.ies id-SourceMME-UE-S1AP-ID
+Bearers-SubjectToStatusTransfer-Item N s1ap.ies id-Bearers-SubjectToStatusTransfer-Item
+ENB-StatusTransfer-TransparentContainer N s1ap.ies id-eNB-StatusTransfer-TransparentContainer
+UE-associatedLogicalS1-ConnectionItem N s1ap.ies id-UE-associatedLogicalS1-ConnectionItem
+ResetType N s1ap.ies id-ResetType
+UE-associatedLogicalS1-ConnectionListResAck N s1ap.ies id-UE-associatedLogicalS1-ConnectionListResAck
+E-RABToBeSwitchedULItem N s1ap.ies id-E-RABToBeSwitchedULItem
+E-RABToBeSwitchedULList N s1ap.ies id-E-RABToBeSwitchedULList
+S-TMSI N s1ap.ies id-S-TMSI
+Cdma2000OneXRAND N s1ap.ies id-cdma2000OneXRAND
+RequestType N s1ap.ies id-RequestType
+UE-S1AP-IDs N s1ap.ies id-UE-S1AP-IDs
+EUTRAN-CGI N s1ap.ies id-EUTRAN-CGI
+OverloadResponse N s1ap.ies id-OverloadResponse
+Cdma2000OneXSRVCCInfo N s1ap.ies id-cdma2000OneXSRVCCInfo
+#SAEBearerList N s1ap.ies id-E-RABFailedToBeReleasedList
+Source-ToTarget-TransparentContainer N s1ap.ies id-Source-ToTarget-TransparentContainer
+ServedGUMMEIs N s1ap.ies id-ServedGUMMEIs
+SubscriberProfileIDforRFP N s1ap.ies id-SubscriberProfileIDforRFP
+UESecurityCapabilities N s1ap.ies id-UESecurityCapabilities
+CSFallbackIndicator N s1ap.ies id-CSFallbackIndicator
+CNDomain N s1ap.ies id-CNDomain
+E-RABList N s1ap.ies id-E-RABReleasedList
+MessageIdentifier N s1ap.ies id-MessageIdentifier
+SerialNumber N s1ap.ies id-SerialNumber
+WarningAreaList N s1ap.ies id-WarningAreaList
+RepetitionPeriod N s1ap.ies id-RepetitionPeriod
+NumberofBroadcastRequest N s1ap.ies id-NumberofBroadcastRequest
+WarningType N s1ap.ies id-WarningType
+WarningSecurityInfo N s1ap.ies id-WarningSecurityInfo
+DataCodingScheme N s1ap.ies id-DataCodingScheme
+WarningMessageContents N s1ap.ies id-WarningMessageContents
+BroadcastCompletedAreaList N s1ap.ies id-BroadcastCompletedAreaList
+Inter-SystemInformationTransferType N s1ap.ies id-Inter-SystemInformationTransferTypeEDT
+Inter-SystemInformationTransferType N s1ap.ies id-Inter-SystemInformationTransferTypeMDT
+Target-ToSource-TransparentContainer N s1ap.ies id-Target-ToSource-TransparentContainer
+SRVCCOperationPossible N s1ap.ies id-SRVCCOperationPossible
+SRVCCHOIndication N s1ap.ies id-SRVCCHOIndication
+CSG-Id N s1ap.ies id-CSG-Id
+CSG-IdList N s1ap.ies id-CSG-IdList
+SONConfigurationTransfer N s1ap.ies id-SONConfigurationTransferECT
+SONConfigurationTransfer N s1ap.ies id-SONConfigurationTransferMCT
+TransportLayerAddress N s1ap.ies id-TraceCollectionEntityIPAddress
+MSClassmark2 N s1ap.ies id-MSClassmark2
+MSClassmark3 N s1ap.ies id-MSClassmark3
+RRC-Establishment-Cause N s1ap.ies id-RRC-Establishment-Cause
+NASSecurityParametersfromE-UTRAN N s1ap.ies id-NASSecurityParametersfromE-UTRAN
+NASSecurityParameterstoE-UTRAN N s1ap.ies id-NASSecurityParameterstoE-UTRAN
+PagingDRX N s1ap.ies id-DefaultPagingDRX
+Source-ToTarget-TransparentContainer N s1ap.ies id-Source-ToTarget-TransparentContainer-Secondary
+Target-ToSource-TransparentContainer N s1ap.ies id-Target-ToSource-TransparentContainer-Secondary
+EUTRANRoundTripDelayEstimationInfo N s1ap.ies id-EUTRANRoundTripDelayEstimationInfo
+BroadcastCancelledAreaList N s1ap.ies id-BroadcastCancelledAreaList
+ConcurrentWarningMessageIndicator N s1ap.ies id-ConcurrentWarningMessageIndicator
+ExtendedRepetitionPeriod N s1ap.ies id-ExtendedRepetitionPeriod
+CellAccessMode N s1ap.ies id-CellAccessMode
+CSGMembershipStatus N s1ap.ies id-CSGMembershipStatus
+LPPa-PDU N s1ap.ies id-LPPa-PDU
+Routing-ID N s1ap.ies id-Routing-ID
+PS-ServiceNotAvailable N s1ap.ies id-PS-ServiceNotAvailable
+PagingPriority N s1ap.ies id-PagingPriority
+GUMMEIList N s1ap.ies id-GUMMEIList
+TransportLayerAddress N s1ap.ies id-GW-TransportLayerAddress
+GUMMEI N s1ap.ies id-SourceMME-GUMMEI
+MME-UE-S1AP-ID N s1ap.ies id-MME-UE-S1AP-ID-2
+LAI N s1ap.ies id-RegisteredLAI
+RelayNode-Indicator N s1ap.ies id-RelayNode-Indicator
+TrafficLoadReductionIndication N s1ap.ies id-TrafficLoadReductionIndication
+MMERelaySupportIndicator N s1ap.ies id-MMERelaySupportIndicator
+GWContextReleaseIndication N s1ap.ies id-GWContextReleaseIndication
+ManagementBasedMDTAllowed N s1ap.ies id-ManagementBasedMDTAllowed
+PrivacyIndicator N s1ap.ies id-PrivacyIndicator
+VoiceSupportMatchIndicator N s1ap.ies id-VoiceSupportMatchIndicator
+GUMMEIType N s1ap.ies id-GUMMEIType
+TunnelInformation N s1ap.ies id-Tunnel-Information-for-BBF
+MDTPLMNList N s1ap.ies id-ManagementBasedMDTPLMNList
+ECGIListForRestart N s1ap.ies id-ECGIListForRestart
+TransportLayerAddress N s1ap.ies id-SIPTO-L-GW-TransportLayerAddress
+LHN-ID N s1ap.ies id-LHN-ID
+AdditionalCSFallbackIndicator N s1ap.ies id-AdditionalCSFallbackIndicator
+TAIListForRestart N s1ap.ies id-TAIListForRestart
+UserLocationInformation N s1ap.ies id-UserLocationInformation
+KillAllWarningMessages N s1ap.ies id-KillAllWarningMessages
+Masked-IMEISV N s1ap.ies id-Masked-IMEISV
+ProSeAuthorized N s1ap.ies id-ProSeAuthorized
+ExpectedUEBehaviour N s1ap.ies id-ExpectedUEBehaviour
+UERadioCapabilityForPaging N s1ap.ies id-UERadioCapabilityForPaging
+E-RABToBeModifiedListBearerModInd N s1ap.ies id-E-RABToBeModifiedListBearerModInd
+E-RABToBeModifiedItemBearerModInd N s1ap.ies id-E-RABToBeModifiedItemBearerModInd
+E-RABNotToBeModifiedListBearerModInd N s1ap.ies id-E-RABNotToBeModifiedListBearerModInd
+E-RABNotToBeModifiedItemBearerModInd N s1ap.ies id-E-RABNotToBeModifiedItemBearerModInd
+E-RABModifyListBearerModConf N s1ap.ies id-E-RABModifyListBearerModConf
+E-RABModifyItemBearerModConf N s1ap.ies id-E-RABModifyItemBearerModConf
+E-RABList N s1ap.ies id-E-RABFailedToModifyListBearerModConf
+SONInformationReport N s1ap.ies id-SON-Information-Report
+E-RABList N s1ap.ies id-E-RABToBeReleasedListBearerModConf
+PWSfailedECGIList N s1ap.ies id-PWSfailedECGIList
+MME-Group-ID N s1ap.ies id-MME-Group-ID
+Additional-GUTI N s1ap.ies id-Additional-GUTI
+#OCTET STRING N s1ap.ies id-S1-Message
+CSGMembershipInfo N s1ap.ies id-CSGMembershipInfo
+
+#S1AP-PROTOCOL-IES-PAIR
+#RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem
+#RAB-SetupOrModifyItemSecond N s1ap.ies.pair.second id-RAB-SetupOrModifyItem
+
+#S1AP-PROTOCOL-EXTENSION
+#RAB-Parameters N s1ap.extension id-AlternativeRABConfiguration
+#Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf N s1ap.extension id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf
+Data-Forwarding-Not-Possible N s1ap.extension id-Data-Forwarding-Not-Possible
+TimeSynchronisationInfo N s1ap.extension id-Time-Synchronisation-Info
+X2TNLConfigurationInfo N s1ap.extension id-x2TNLConfigurationInfo
+ENBX2ExtTLAs N s1ap.extension id-eNBX2ExtendedTransportLayerAddresses
+Correlation-ID N s1ap.extension id-Correlation-ID
+MDT-Configuration N s1ap.extension id-MDTConfiguration
+Time-UE-StayedInCell-EnhancedGranularity N s1ap.extension id-Time-UE-StayedInCell-EnhancedGranularity
+Cause N s1ap.extension id-HO-Cause
+M3Configuration N s1ap.extension id-M3Configuration
+M4Configuration N s1ap.extension id-M4Configuration
+M5Configuration N s1ap.extension id-M5Configuration
+MDT-Location-Info N s1ap.extension id-MDT-Location-Info
+MobilityInformation N s1ap.extension id-MobilityInformation
+MDTPLMNList N s1ap.extension id-SignallingBasedMDTPLMNList
+COUNTValueExtended N s1ap.extension id-ULCOUNTValueExtended
+COUNTValueExtended N s1ap.extension id-DLCOUNTValueExtended
+ReceiveStatusOfULPDCPSDUsExtended N s1ap.extension id-ReceiveStatusOfULPDCPSDUsExtended
+Correlation-ID N s1ap.extension id-SIPTO-Correlation-ID
+TransportInformation N s1ap.extension id-TransportInformation
+EmergencyAreaIDListForRestart N s1ap.extension id-EmergencyAreaIDListForRestart
+ENBIndirectX2TransportLayerAddresses N s1ap.extension id-eNBIndirectX2TransportLayerAddresses
+LoggedMBSFNMDT N s1ap.extension id-LoggedMBSFNMDT
+UE-HistoryInformationFromTheUE N s1ap.extension id-uE-HistoryInformationFromTheUE
+MutingAvailabilityIndication N s1ap.extension id-Muting-Availability-Indication
+MutingPatternInformation N s1ap.extension id-Muting-Pattern-Information
+SynchronisationInformation N s1ap.extension id-Synchronisation-Information
+ProSeUEtoNetworkRelaying N s1ap.extension id-ProSeUEtoNetworkRelaying
+COUNTvaluePDCP-SNlength18 N s1ap.extension id-ULCOUNTValuePDCP-SNlength18
+COUNTvaluePDCP-SNlength18 N s1ap.extension id-DLCOUNTValuePDCP-SNlength18
+ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 N s1ap.extension id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18
+M6Configuration N s1ap.extension id-M6Configuration
+M7Configuration N s1ap.extension id-M7Configuration
+
+#S1AP-ELEMENTARY-PROCEDURE
+HandoverRequired N s1ap.proc.imsg id-HandoverPreparation
+HandoverCommand N s1ap.proc.sout id-HandoverPreparation
+HandoverPreparationFailure N s1ap.proc.uout id-HandoverPreparation
+
+HandoverRequest N s1ap.proc.imsg id-HandoverResourceAllocation
+HandoverRequestAcknowledge N s1ap.proc.sout id-HandoverResourceAllocation
+HandoverFailure N s1ap.proc.uout id-HandoverResourceAllocation
+
+HandoverNotify N s1ap.proc.imsg id-HandoverNotification
+
+PathSwitchRequest N s1ap.proc.imsg id-PathSwitchRequest
+PathSwitchRequestAcknowledge N s1ap.proc.sout id-PathSwitchRequest
+PathSwitchRequestFailure N s1ap.proc.uout id-PathSwitchRequest
+
+E-RABSetupRequest N s1ap.proc.imsg id-E-RABSetup
+E-RABSetupResponse N s1ap.proc.sout id-E-RABSetup
+
+E-RABModifyRequest N s1ap.proc.imsg id-E-RABModify
+E-RABModifyResponse N s1ap.proc.sout id-E-RABModify
+
+E-RABReleaseCommand N s1ap.proc.imsg id-E-RABRelease
+E-RABReleaseResponse N s1ap.proc.sout id-E-RABRelease
+
+E-RABReleaseIndication N s1ap.proc.imsg id-E-RABReleaseIndication
+
+InitialContextSetupRequest N s1ap.proc.imsg id-InitialContextSetup
+InitialContextSetupResponse N s1ap.proc.sout id-InitialContextSetup
+InitialContextSetupFailure N s1ap.proc.uout id-InitialContextSetup
+
+UEContextReleaseRequest N s1ap.proc.imsg id-UEContextReleaseRequest
+
+Paging N s1ap.proc.imsg id-Paging
+
+DownlinkNASTransport N s1ap.proc.imsg id-downlinkNASTransport
+
+InitialUEMessage N s1ap.proc.imsg id-initialUEMessage
+
+UplinkNASTransport N s1ap.proc.imsg id-uplinkNASTransport
+
+NASNonDeliveryIndication N s1ap.proc.imsg id-NASNonDeliveryIndication
+
+HandoverCancel N s1ap.proc.imsg id-HandoverCancel
+HandoverCancelAcknowledge N s1ap.proc.sout id-HandoverCancel
+
+Reset N s1ap.proc.imsg id-Reset
+ResetAcknowledge N s1ap.proc.sout id-Reset
+
+ErrorIndication N s1ap.proc.imsg id-ErrorIndication
+
+S1SetupRequest N s1ap.proc.imsg id-S1Setup
+S1SetupResponse N s1ap.proc.sout id-S1Setup
+S1SetupFailure N s1ap.proc.uout id-S1Setup
+
+DownlinkS1cdma2000tunnelling N s1ap.proc.imsg id-DownlinkS1cdma2000tunnelling
+
+ENBConfigurationUpdate N s1ap.proc.imsg id-ENBConfigurationUpdate
+ENBConfigurationUpdateAcknowledge N s1ap.proc.sout id-ENBConfigurationUpdate
+ENBConfigurationUpdateFailure N s1ap.proc.uout id-ENBConfigurationUpdate
+
+MMEConfigurationUpdate N s1ap.proc.imsg id-MMEConfigurationUpdate
+MMEConfigurationUpdateAcknowledge N s1ap.proc.sout id-MMEConfigurationUpdate
+MMEConfigurationUpdateFailure N s1ap.proc.uout id-MMEConfigurationUpdate
+
+UplinkS1cdma2000tunnelling N s1ap.proc.imsg id-UplinkS1cdma2000tunnelling
+
+UEContextModificationRequest N s1ap.proc.imsg id-UEContextModification
+UEContextModificationResponse N s1ap.proc.sout id-UEContextModification
+UEContextModificationFailure N s1ap.proc.uout id-UEContextModification
+
+UECapabilityInfoIndication N s1ap.proc.imsg id-UECapabilityInfoIndication
+
+UEContextReleaseCommand N s1ap.proc.imsg id-UEContextRelease
+UEContextReleaseComplete N s1ap.proc.sout id-UEContextRelease
+
+ENBStatusTransfer N s1ap.proc.imsg id-eNBStatusTransfer
+
+MMEStatusTransfer N s1ap.proc.imsg id-MMEStatusTransfer
+
+DeactivateTrace N s1ap.proc.imsg id-DeactivateTrace
+
+TraceStart N s1ap.proc.imsg id-TraceStart
+
+TraceFailureIndication N s1ap.proc.imsg id-TraceFailureIndication
+
+LocationReportingControl N s1ap.proc.imsg id-LocationReportingControl
+
+LocationReportingFailureIndication N s1ap.proc.imsg id-LocationReportingFailureIndication
+
+LocationReport N s1ap.proc.imsg id-LocationReport
+
+OverloadStart N s1ap.proc.imsg id-OverloadStart
+
+OverloadStop N s1ap.proc.imsg id-OverloadStop
+
+WriteReplaceWarningRequest N s1ap.proc.imsg id-WriteReplaceWarning
+WriteReplaceWarningResponse N s1ap.proc.sout id-WriteReplaceWarning
+
+ENBDirectInformationTransfer N s1ap.proc.imsg id-eNBDirectInformationTransfer
+
+MMEDirectInformationTransfer N s1ap.proc.imsg id-MMEDirectInformationTransfer
+
+ENBConfigurationTransfer N s1ap.proc.imsg id-eNBConfigurationTransfer
+
+MMEConfigurationTransfer N s1ap.proc.imsg id-MMEConfigurationTransfer
+
+CellTrafficTrace N s1ap.proc.imsg id-CellTrafficTrace
+
+PrivateMessage N s1ap.proc.imsg id-PrivateMessage
+
+PWSRestartIndication N s1ap.proc.imsg id-PWSRestartIndication
+
+KillRequest N s1ap.proc.imsg id-Kill
+KillResponse N s1ap.proc.sout id-Kill
+
+DownlinkUEAssociatedLPPaTransport N s1ap.proc.imsg id-downlinkUEAssociatedLPPaTransport
+
+UplinkUEAssociatedLPPaTransport N s1ap.proc.imsg id-uplinkUEAssociatedLPPaTransport
+
+DownlinkNonUEAssociatedLPPaTransport N s1ap.proc.imsg id-downlinkNonUEAssociatedLPPaTransport
+
+UplinkNonUEAssociatedLPPaTransport N s1ap.proc.imsg id-uplinkNonUEAssociatedLPPaTransport
+
+UERadioCapabilityMatchRequest N s1ap.proc.imsg id-UERadioCapabilityMatch
+UERadioCapabilityMatchResponse N s1ap.proc.sout id-UERadioCapabilityMatch
+
+E-RABModificationIndication N s1ap.proc.imsg id-E-RABModificationIndication
+E-RABModificationConfirm N s1ap.proc.sout id-E-RABModificationIndication
+
+UEContextModificationIndication N s1ap.proc.imsg id-UEContextModificationIndication
+UEContextModificationConfirm N s1ap.proc.sout id-UEContextModificationIndication
+
+RerouteNASRequest N s1ap.proc.imsg id-RerouteNASRequest
+
+PWSFailureIndication N s1ap.proc.imsg id-PWSFailureIndication
+
+#.FN_HDR E-RABSetupRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupRequest ");
+#.FN_HDR E-RABSetupResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupResponse ");
+#.FN_HDR E-RABModifyRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABModifyRequest ");
+#.FN_HDR E-RABModifyResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABModifyResponse ");
+#.FN_HDR E-RABReleaseCommand
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseCommand ");
+#.FN_HDR E-RABReleaseResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseResponse ");
+#.FN_HDR E-RABReleaseIndication
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseIndication ");
+
+#.FN_HDR InitialContextSetupRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupRequest ");
+#.FN_HDR InitialContextSetupResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupResponse ");
+#.FN_HDR InitialContextSetupFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupFailure ");
+#.FN_HDR UEContextReleaseRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseRequest ");
+#.FN_HDR UEContextReleaseCommand
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseCommand ");
+#.FN_HDR UEContextReleaseComplete
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseComplete ");
+#.FN_HDR UEContextModificationRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationRequest ");
+#.FN_HDR UEContextModificationResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationResponse ");
+#.FN_HDR UEContextModificationFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationFailure ");
+
+#.FN_HDR HandoverRequired
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequired ");
+#.FN_HDR HandoverCommand
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCommand ");
+#.FN_HDR HandoverPreparationFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverPreparationFailure ");
+#.FN_HDR HandoverRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequest ");
+#.FN_HDR HandoverRequestAcknowledge
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequestAcknowledge ");
+#.FN_HDR HandoverFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverFailure ");
+#.FN_HDR HandoverNotify
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverNotify ");
+#.FN_HDR PathSwitchRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequest ");
+#.FN_HDR PathSwitchRequestAcknowledge
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequestAcknowledge ");
+#.FN_HDR PathSwitchRequestFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequestFailure ");
+#.FN_HDR HandoverCancel
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCancel ");
+#.FN_HDR HandoverCancelAcknowledge
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCancelAcknowledge ");
+
+
+#.FN_HDR Reset
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", Reset ");
+#.FN_HDR ResetAcknowledge
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", ResetAcknowledge ");
+# FN_HDR ErrorIndication
+# col_append_str(actx->pinfo->cinfo, COL_INFO, ", ErrorIndication ");
+#.FN_HDR S1SetupRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupRequest ");
+#.FN_HDR S1SetupResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupResponse ");
+#.FN_HDR S1SetupFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupFailure ");
+#.FN_HDR ENBConfigurationUpdate
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdate ");
+#.FN_HDR ENBConfigurationUpdateAcknowledge
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdateAcknowledge ");
+#.FN_HDR ENBConfigurationUpdateFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdateFailure ");
+#.FN_HDR MMEConfigurationUpdate
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdate ");
+#.FN_HDR MMEConfigurationUpdateAcknowledge
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdateAcknowledge ");
+#.FN_HDR MMEConfigurationUpdateFailure
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdateFailure ");
+
+#.FN_HDR WriteReplaceWarningRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningRequest ");
+#.FN_HDR WriteReplaceWarningResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningResponse ");
+#.FN_HDR KillRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", KillRequest ");
+#.FN_HDR KillResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", KillResponse ");
+
+#.FN_HDR DownlinkUEAssociatedLPPaTransport
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", DownlinkUEAssociatedLPPaTransport ");
+
+#.FN_HDR UplinkUEAssociatedLPPaTransport
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UplinkUEAssociatedLPPaTransport ");
+
+#.FN_HDR DownlinkNonUEAssociatedLPPaTransport
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", DownlinkNonUEAssociatedLPPaTransport ");
+
+#.FN_HDR UplinkNonUEAssociatedLPPaTransport
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UplinkNonUEAssociatedLPPaTransport ");
+
+#.FN_HDR UERadioCapabilityMatchRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UERadioCapabilityMatchRequest ");
+
+#.FN_HDR UERadioCapabilityMatchResponse
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UERadioCapabilityMatchResponse ");
+
+#.FN_HDR E-RABModificationIndication
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E-RABModificationIndication ");
+
+#.FN_HDR E-RABModificationConfirm
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", E-RABModificationConfirm ");
+
+#.FN_HDR UEContextModificationIndication
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationIndication ");
+
+#.FN_HDR UEContextModificationConfirm
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationConfirm ");
+
+#.FN_HDR RerouteNASRequest
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", RerouteNASRequest ");
+
+#.FN_HDR PWSFailureIndication
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ", PWSFailureIndication ");
+
+
+/* Whenever a Cause appears, look up the reason and show it in the Info column */
+
+#.FN_BODY CauseRadioNetwork VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [RadioNetwork-cause=%%s]", val_to_str_const(value, s1ap_CauseRadioNetwork_vals, "Unknown"));
+
+#.FN_BODY CauseTransport VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Transport-cause=%%s]", val_to_str_const(value, s1ap_CauseTransport_vals, "Unknown"));
+
+#.FN_BODY CauseNas VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [NAS-cause=%%s]", val_to_str_const(value, s1ap_CauseNas_vals, "Unknown"));
+
+#.FN_BODY CauseProtocol VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Protocol-cause=%%s]", val_to_str_const(value, s1ap_CauseProtocol_vals, "Unknown"));
+
+#.FN_BODY CauseMisc VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Misc-cause=%%s]", val_to_str_const(value, s1ap_CauseMisc_vals, "Unknown"));
+
+#.END
diff --git a/epan/dissectors/asn1/sabp/CMakeLists.txt b/epan/dissectors/asn1/sabp/CMakeLists.txt
new file mode 100644
index 0000000000..6cfcf38920
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME sabp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ SABP-CommonDataTypes.asn
+ SABP-Constants.asn
+ SABP-Containers.asn
+ SABP-IEs.asn
+ SABP-PDU-Contents.asn
+ SABP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/sabp/Makefile.am b/epan/dissectors/asn1/sabp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/sabp/Makefile.common b/epan/dissectors/asn1/sabp/Makefile.common
new file mode 100644
index 0000000000..4f499cee1b
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = sabp
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ SABP-CommonDataTypes.asn \
+ SABP-Constants.asn \
+ SABP-Containers.asn \
+ SABP-IEs.asn \
+ SABP-PDU-Contents.asn \
+ SABP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/sabp/Makefile.nmake b/epan/dissectors/asn1/sabp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/sabp/SABP-CommonDataTypes.asn b/epan/dissectors/asn1/sabp/SABP-CommonDataTypes.asn
new file mode 100644
index 0000000000..ca8ae0ead3
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/SABP-CommonDataTypes.asn
@@ -0,0 +1,37 @@
+-- SABP-CommonDataTypes.asn
+--
+-- Taken from 3GPP TS 25.419 V11.1.0 (2013-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.419/25419-700.zip/25419-700.DOC
+--
+-- 9.3.5 Common Definitions
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+SABP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+ProtocolIE-ID ::= INTEGER (0..65535)
+
+TriggeringMessage ::= ENUMERATED {initiating-message, successful-outcome, unsuccessful-outcome, outcome}
+
+END
+
+
diff --git a/epan/dissectors/asn1/sabp/SABP-Constants.asn b/epan/dissectors/asn1/sabp/SABP-Constants.asn
new file mode 100644
index 0000000000..feb87b8ea7
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/SABP-Constants.asn
@@ -0,0 +1,86 @@
+-- SABP-Constants.asn
+--
+-- Taken from 3GPP TS 25.419 V11.1.0 (2013-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.419/25419-700.zip/25419-700.DOC
+--
+-- 9.3.6 Constant Definitions
+--
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+SABP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-Write-Replace INTEGER ::= 0
+id-Kill INTEGER ::= 1
+id-Load-Status-Enquiry INTEGER ::= 2
+id-Message-Status-Query INTEGER ::= 3
+id-Restart-Indication INTEGER ::= 4
+id-Reset INTEGER ::= 5
+id-Failure-Indication INTEGER ::= 6
+id-Error-Indication INTEGER ::= 7
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Broadcast-Message-Content INTEGER ::= 0
+id-Category INTEGER ::= 1
+id-Cause INTEGER ::= 2
+id-Criticality-Diagnostics INTEGER ::=3
+id-Data-Coding-Scheme INTEGER ::= 4
+id-Failure-List INTEGER ::= 5
+id-Message-Identifier INTEGER ::= 6
+id-New-Serial-Number INTEGER ::= 7
+id-Number-of-Broadcasts-Completed-List INTEGER ::= 8
+id-Number-of-Broadcasts-Requested INTEGER ::= 9
+id-Old-Serial-Number INTEGER ::= 10
+id-Radio-Resource-Loading-List INTEGER ::= 11
+id-Recovery-Indication INTEGER ::= 12
+id-Repetition-Period INTEGER ::= 13
+id-Serial-Number INTEGER ::= 14
+id-Service-Areas-List INTEGER ::= 15
+id-MessageStructure INTEGER ::= 16
+id-TypeOfError INTEGER ::= 17
+id-Paging-ETWS-Indicator INTEGER ::= 18
+id-Warning-Type INTEGER ::= 19
+id-WarningSecurityInfo INTEGER ::= 20
+id-Broadcast-Message-Content-Validity-Indicator INTEGER ::= 21
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfErrors INTEGER ::= 256
+maxnoofSAI INTEGER ::= 65535
+
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+maxNrOfLevels INTEGER ::= 256
+
+END
diff --git a/epan/dissectors/asn1/sabp/SABP-Containers.asn b/epan/dissectors/asn1/sabp/SABP-Containers.asn
new file mode 100644
index 0000000000..777d722968
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/SABP-Containers.asn
@@ -0,0 +1,121 @@
+-- SABP-Containers.asn
+--
+-- Taken from 3GPP TS 25.419 V11.1.0 (2013-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.419/25419-700.zip/25419-700.DOC
+--
+-- 9.3.7 Container Definitions
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+SABP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM SABP-CommonDataTypes
+
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM SABP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+SABP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality DEFAULT ignore,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+SABP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality DEFAULT ignore,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {SABP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {SABP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id SABP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality SABP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value SABP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SABP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {SABP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {SABP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id SABP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality SABP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue SABP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+
+END
diff --git a/epan/dissectors/asn1/sabp/SABP-IEs.asn b/epan/dissectors/asn1/sabp/SABP-IEs.asn
new file mode 100644
index 0000000000..3798a843d4
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/SABP-IEs.asn
@@ -0,0 +1,292 @@
+-- SABP-IEs.asn
+--
+-- Taken from 3GPP TS 25.419 V11.1.0 (2013-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.419/25419-700.zip/25419-700.DOC
+--
+-- 9.3.4 Information Element Definitions
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+
+SABP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxNrOfErrors,
+ maxnoofSAI,
+ maxNrOfLevels,
+
+ id-MessageStructure,
+ id-TypeOfError
+
+FROM SABP-Constants
+
+ Criticality,
+ ProcedureCode,
+ TriggeringMessage,
+ ProtocolIE-ID
+FROM SABP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+
+ SABP-PROTOCOL-EXTENSION
+FROM SABP-Containers;
+
+
+-- A
+
+Available-Bandwidth ::= INTEGER (0..20480)
+-- bits/sec
+
+-- B
+
+Broadcast-Message-Content ::= BIT STRING (SIZE (1..9968))-- This IE is sent from the CN to the RNC containing user information i.e.
+-- the message.
+
+Broadcast-Message-Content-Validity-Indicator ::= ENUMERATED {
+ broadcast-Message-Content-not-valid,
+ ...
+}
+
+-- C
+
+Category ::= ENUMERATED {
+ high-priority,
+ background-priority,
+ normal-priority,
+ default-priority,
+ ...
+}
+
+Cause ::= INTEGER {
+ parameter-not-recognised (0),
+ parameter-value-invalid (1),
+ valid-CN-message-not-identified (2),
+ service-area-identity-not-valid (3),
+ unrecognised-message (4),
+ missing-mandatory-element (5),
+ rNC-capacity-exceeded (6),
+ rNC-memory-exceeded (7),
+ service-area-broadcast-not-supported (8),
+ service-area-broadcast-not-operational (9),
+ message-reference-already-used (10),
+ unspecifed-error (11),
+ transfer-syntax-error (12),
+ semantic-error (13),
+ message-not-compatible-with-receiver-state (14),
+ abstract-syntax-error-reject (15),
+ abstract-syntax-error-ignore-and-notify (16),
+ abstract-syntax-error-falsely-constructed-message (17)
+} (0..255)
+
+Criticality-Diagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs SABP-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 SABP-PROTOCOL-EXTENSION ::= {
+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional }|
+ { 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 SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+
+Data-Coding-Scheme ::= BIT STRING (SIZE (8))
+
+-- E
+
+-- F
+
+Failure-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF Failure-List-Item
+
+Failure-List-Item ::= SEQUENCE {
+ service-area-identifier Service-Area-Identifier,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {FailureListItemIE-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FailureListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+-- G
+
+-- H
+
+-- I
+
+-- J
+
+-- K
+
+-- L
+
+-- M
+
+Message-Identifier ::= BIT STRING (SIZE (16))
+
+-- N
+
+New-Serial-Number ::= Serial-Number
+
+Number-of-Broadcasts-Completed-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF
+ Number-of-Broadcasts-Completed-List-Item
+
+Number-of-Broadcasts-Completed-List-Item ::= SEQUENCE {
+ service-area-identifier Service-Area-Identifier,
+ number-of-broadcasts-completed INTEGER (0..65535),
+ number-of-broadcasts-completed-info Number-Of-Broadcasts-Completed-Info OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {NoOfBroadcastsCompletedListItemIE-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NoOfBroadcastsCompletedListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+Number-Of-Broadcasts-Completed-Info ::= ENUMERATED {
+ overflow,
+ unknown,
+ ...
+}
+
+Number-of-Broadcasts-Requested ::= INTEGER {
+ broadcast-indefinitely (0)
+} (0..65535)
+
+-- O
+
+Old-Serial-Number ::= Serial-Number
+
+-- P
+
+Paging-ETWS-Indicator ::= ENUMERATED {
+ paging,
+ ...
+}
+
+-- Q
+
+-- R
+
+Radio-Resource-Loading-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF
+ Radio-Resource-Loading-List-Item
+
+Radio-Resource-Loading-List-Item ::= SEQUENCE {
+ service-area-identifier Service-Area-Identifier,
+ available-bandwidth Available-Bandwidth,
+ iE-Extensions ProtocolExtensionContainer { {RadioResourceLoadingListItemIE-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RadioResourceLoadingListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+Recovery-Indication ::= ENUMERATED {
+ data-lost,
+ data-available
+}
+
+RepetitionNumber0 ::= INTEGER(0..255)
+
+RepetitionNumber1 ::= INTEGER(1..256)
+
+Repetition-Period ::= INTEGER (1..4096)
+-- Each unit represents a repetition of one second to a maximum of
+-- once per 4096 seconds (~1 hour).
+
+
+-- S
+
+Serial-Number ::= BIT STRING (SIZE (16))
+
+
+Service-Area-Identifier ::= SEQUENCE {
+ pLMNidentity OCTET STRING (SIZE (3))
+ -- Digits 0 to 9, two digits per octet. --
+ -- Each octet encoded 0000 to 1001. --
+ -- 1111 used as filler --
+ -- Bit 4 to 1 of octet n encoding digit 2n-1. --
+ -- Bit 8 to 5 of octet n encoding digit 2n. --
+ -- The PLMN identity consists of 3 digits from MCC --
+ -- followed by either a filler plus 2 digits --
+ -- from MNC (in case of 2 digit MNC) or 3 digits --
+ -- from MNC (in case of 3 digit MNC). -- ,
+ lac OCTET STRING (SIZE (2))
+ -- 0000 and FFFE not allowed -- ,
+ sac OCTET STRING (SIZE (2))
+}
+
+-- **TODO** The IE type for these parameters is not known as yet
+Service-Areas-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF Service-Area-Identifier
+
+
+
+-- T
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+-- V
+
+-- W
+
+WarningSecurityInfo ::= OCTET STRING (SIZE (50))
+
+Warning-Type ::= OCTET STRING (SIZE(2))
+
+-- X
+
+-- Y
+
+END
diff --git a/epan/dissectors/asn1/sabp/SABP-PDU-Contents.asn b/epan/dissectors/asn1/sabp/SABP-PDU-Contents.asn
new file mode 100644
index 0000000000..edc039c32d
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/SABP-PDU-Contents.asn
@@ -0,0 +1,534 @@
+-- SABP-PDU-Contents.asn
+--
+-- Taken from 3GPP TS 25.419 V11.1.0 (2013-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.419/25419-700.zip/25419-700.DOC
+--
+-- 9.3.3 PDU Definitions
+--
+
+-- **************************************************************
+--
+-- PDU definitions for SABP.
+--
+-- **************************************************************
+
+SABP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Broadcast-Message-Content,
+ Category,
+ Cause,
+Criticality-Diagnostics,
+ Data-Coding-Scheme,
+ Failure-List,
+ Message-Identifier,
+ New-Serial-Number,
+ Number-of-Broadcasts-Completed-List,
+ Number-of-Broadcasts-Requested,
+ Old-Serial-Number,
+ Paging-ETWS-Indicator,
+ Radio-Resource-Loading-List,
+ Recovery-Indication,
+ Repetition-Period,
+ Serial-Number,
+ Service-Areas-List,
+ WarningSecurityInfo,
+ Warning-Type,
+ Broadcast-Message-Content-Validity-Indicator
+FROM SABP-IEs
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ SABP-PROTOCOL-EXTENSION,
+ SABP-PROTOCOL-IES
+FROM SABP-Containers
+
+ id-Broadcast-Message-Content,
+ id-Category,
+ id-Criticality-Diagnostics,
+ id-Cause,
+ id-Data-Coding-Scheme,
+ id-Failure-List,
+ id-Message-Identifier,
+ id-New-Serial-Number,
+ id-Number-of-Broadcasts-Completed-List,
+ id-Number-of-Broadcasts-Requested,
+ id-Old-Serial-Number,
+ id-Paging-ETWS-Indicator,
+ id-Radio-Resource-Loading-List,
+ id-Recovery-Indication,
+ id-Repetition-Period,
+ id-Serial-Number,
+ id-Service-Areas-List,
+ id-WarningSecurityInfo,
+ id-Warning-Type,
+ id-Broadcast-Message-Content-Validity-Indicator
+FROM SABP-Constants;
+
+-- **************************************************************
+--
+-- Write-Replace
+--
+-- **************************************************************
+
+Write-Replace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Write-Replace-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Extensions} } OPTIONAL,
+ ...
+}
+
+Write-Replace-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
+ { ID id-Old-Serial-Number CRITICALITY ignore TYPE Old-Serial-Number PRESENCE optional } |
+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } |
+ { ID id-Category CRITICALITY ignore TYPE Category PRESENCE optional } |
+ { ID id-Repetition-Period CRITICALITY reject TYPE Repetition-Period PRESENCE mandatory } |
+ { ID id-Number-of-Broadcasts-Requested
+ CRITICALITY reject TYPE Number-of-Broadcasts-Requested PRESENCE mandatory } |
+ { ID id-Data-Coding-Scheme CRITICALITY reject TYPE Data-Coding-Scheme PRESENCE mandatory } |
+ { ID id-Broadcast-Message-Content
+ CRITICALITY reject TYPE Broadcast-Message-Content PRESENCE mandatory },
+ ...
+}
+
+Write-Replace-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ { ID id-WarningSecurityInfo CRITICALITY ignore EXTENSION WarningSecurityInfo PRESENCE optional } |
+ { ID id-Paging-ETWS-Indicator CRITICALITY ignore EXTENSION Paging-ETWS-Indicator PRESENCE optional } |
+ { ID id-Warning-Type CRITICALITY ignore EXTENSION Warning-Type PRESENCE optional } |
+ { ID id-Broadcast-Message-Content-Validity-Indicator CRITICALITY ignore EXTENSION Broadcast-Message-Content-Validity-Indicator PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Write-Replace-Complete
+--
+-- **************************************************************
+
+Write-Replace-Complete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Write-Replace-Complete-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Complete-Extensions} } OPTIONAL,
+ ...
+}
+
+Write-Replace-Complete-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
+ { ID id-Number-of-Broadcasts-Completed-List
+ CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
+ PRESENCE mandatory }|
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Write-Replace-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Write-Replace-Failure
+--
+-- **************************************************************
+
+Write-Replace-Failure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Write-Replace-Failure-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Failure-Extensions} } OPTIONAL,
+ ...
+}
+
+Write-Replace-Failure-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
+ { ID id-Number-of-Broadcasts-Completed-List
+ CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
+ PRESENCE optional } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+Write-Replace-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Kill
+--
+-- **************************************************************
+
+Kill ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Kill-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Kill-Extensions}} OPTIONAL,
+ ...
+}
+
+Kill-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
+ ...
+}
+
+Kill-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Kill-Complete
+--
+-- **************************************************************
+
+Kill-Complete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Kill-Complete-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Kill-Complete-Extensions}} OPTIONAL,
+ ...
+}
+
+Kill-Complete-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
+ { ID id-Number-of-Broadcasts-Completed-List
+ CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
+ PRESENCE mandatory }|
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Kill-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Kill-Failure
+--
+-- **************************************************************
+
+Kill-Failure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Kill-Failure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Kill-Failure-Extensions}} OPTIONAL,
+ ...
+}
+
+Kill-Failure-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
+ { ID id-Number-of-Broadcasts-Completed-List
+ CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
+ PRESENCE optional } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Kill-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Load-Query
+--
+-- **************************************************************
+
+Load-Query ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Load-Query-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Load-Query-Extensions}} OPTIONAL,
+ ...
+}
+
+Load-Query-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
+ ...
+}
+
+Load-Query-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Load-Query-Complete
+--
+-- **************************************************************
+
+Load-Query-Complete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Load-Query-Complete-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Load-Query-Complete-Extensions}} OPTIONAL,
+ ...
+}
+
+Load-Query-Complete-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Radio-Resource-Loading-List
+ CRITICALITY reject TYPE Radio-Resource-Loading-List
+ PRESENCE mandatory } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Load-Query-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Load-Query-Failure
+--
+-- **************************************************************
+
+Load-Query-Failure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Load-Query-Failure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Load-Query-Failure-Extensions}} OPTIONAL,
+ ...
+}
+
+Load-Query-Failure-IEs SABP-PROTOCOL-IES ::= {
+
+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
+ { ID id-Radio-Resource-Loading-List
+ CRITICALITY ignore TYPE Radio-Resource-Loading-List
+ PRESENCE optional } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Load-Query-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Message-Status-Query
+--
+-- **************************************************************
+
+Message-Status-Query ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Message-Status-Query-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Extensions}} OPTIONAL,
+ ...
+}
+
+Message-Status-Query-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
+ ...
+}
+
+Message-Status-Query-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Message-Status-Query-Complete
+--
+-- **************************************************************
+
+Message-Status-Query-Complete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Message-Status-Query-Complete-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Complete-Extensions}} OPTIONAL,
+ ...
+}
+
+Message-Status-Query-Complete-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
+ { ID id-Number-of-Broadcasts-Completed-List
+ CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
+ PRESENCE mandatory } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Message-Status-Query-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Message-Status-Query-Failure
+--
+-- **************************************************************
+
+Message-Status-Query-Failure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Message-Status-Query-Failure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Failure-Extensions}} OPTIONAL,
+ ...
+}
+
+Message-Status-Query-Failure-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
+ { ID id-Number-of-Broadcasts-Completed-List
+ CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
+ PRESENCE optional } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Message-Status-Query-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Reset-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Reset-Extensions}} OPTIONAL,
+ ...
+}
+
+Reset-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
+ ...
+}
+
+Reset-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset-Complete
+--
+-- **************************************************************
+
+Reset-Complete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Reset-Complete-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Reset-Complete-Extensions}} OPTIONAL,
+ ...
+}
+
+Reset-Complete-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Reset-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset-Failure
+--
+-- **************************************************************
+
+Reset-Failure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Reset-Failure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Reset-Failure-Extensions}} OPTIONAL,
+ ...
+}
+
+Reset-Failure-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE optional } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } ,
+ ...
+}
+
+Reset-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Restart
+--
+-- **************************************************************
+
+Restart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Restart-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Restart-Extensions}} OPTIONAL,
+ ...
+}
+
+Restart-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Service-Areas-List CRITICALITY ignore TYPE Service-Areas-List PRESENCE mandatory } |
+ { ID id-Recovery-Indication CRITICALITY ignore TYPE Recovery-Indication PRESENCE optional } ,
+ ...
+}
+
+Restart-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Failure
+--
+-- **************************************************************
+
+Failure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Failure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Failure-Extensions}} OPTIONAL,
+ ...
+}
+
+Failure-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Service-Areas-List CRITICALITY ignore TYPE Service-Areas-List PRESENCE mandatory } ,
+ ...
+}
+
+Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Error-Indication
+--
+-- **************************************************************
+
+Error-Indication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{Error-Indication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{Error-Indication-Extensions}} OPTIONAL,
+ ...
+}
+
+Error-Indication-IEs SABP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY ignore TYPE Message-Identifier PRESENCE optional } |
+ { ID id-Serial-Number CRITICALITY ignore TYPE Serial-Number PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+{ ID id-Criticality-Diagnostics
+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Error-Indication-Extensions SABP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/sabp/SABP-PDU-Descriptions.asn b/epan/dissectors/asn1/sabp/SABP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..058ca586cf
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/SABP-PDU-Descriptions.asn
@@ -0,0 +1,202 @@
+-- SABP-PDU-Descriptions.asn
+--
+-- Taken from 3GPP TS 25.419 V11.1.0 (2013-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.419/25419-700.zip/25419-700.DOC
+--
+-- 9.3.2 Elementary Procedure Definitions
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+SABP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM SABP-CommonDataTypes
+
+ Error-Indication,
+ Failure,
+ Kill,
+ Kill-Complete,
+ Kill-Failure,
+ Load-Query,
+ Load-Query-Complete,
+ Load-Query-Failure,
+ Reset,
+ Reset-Complete,
+ Reset-Failure,
+ Restart,
+ Message-Status-Query,
+ Message-Status-Query-Complete,
+ Message-Status-Query-Failure,
+ Write-Replace,
+ Write-Replace-Complete,
+ Write-Replace-Failure
+FROM SABP-PDU-Contents
+
+ id-Error-Indication,
+ id-Failure-Indication,
+ id-Kill,
+ id-Reset,
+ id-Restart-Indication,
+ id-Load-Status-Enquiry,
+ id-Message-Status-Query,
+ id-Write-Replace
+FROM SABP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+SABP-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
+--
+-- **************************************************************
+
+SABP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),
+ criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value SABP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),
+ criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value SABP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),
+ criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value SABP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+SABP-ELEMENTARY-PROCEDURES SABP-ELEMENTARY-PROCEDURE ::= {
+ SABP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ SABP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+SABP-ELEMENTARY-PROCEDURES-CLASS-1 SABP-ELEMENTARY-PROCEDURE ::= {
+ write-Replace |
+ kill |
+ load-Status-Enquiry |
+ message-Status-Query |
+ reset ,
+ ...
+}
+
+SABP-ELEMENTARY-PROCEDURES-CLASS-2 SABP-ELEMENTARY-PROCEDURE ::= {
+ restart-Indication |
+ failure-Indication |
+ error-Indication ,
+ ...
+}
+
+write-Replace SABP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Write-Replace
+ SUCCESSFUL OUTCOME Write-Replace-Complete
+ UNSUCCESSFUL OUTCOME Write-Replace-Failure
+ PROCEDURE CODE id-Write-Replace
+ CRITICALITY reject
+}
+
+kill SABP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Kill
+ SUCCESSFUL OUTCOME Kill-Complete
+ UNSUCCESSFUL OUTCOME Kill-Failure
+ PROCEDURE CODE id-Kill
+ CRITICALITY reject
+}
+
+load-Status-Enquiry SABP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Load-Query
+ SUCCESSFUL OUTCOME Load-Query-Complete
+ UNSUCCESSFUL OUTCOME Load-Query-Failure
+ PROCEDURE CODE id-Load-Status-Enquiry
+ CRITICALITY reject
+}
+
+message-Status-Query SABP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Message-Status-Query
+ SUCCESSFUL OUTCOME Message-Status-Query-Complete
+ UNSUCCESSFUL OUTCOME Message-Status-Query-Failure
+ PROCEDURE CODE id-Message-Status-Query
+ CRITICALITY reject
+}
+
+reset SABP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME Reset-Complete
+ UNSUCCESSFUL OUTCOME Reset-Failure
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+restart-Indication SABP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Restart
+ PROCEDURE CODE id-Restart-Indication
+ CRITICALITY ignore
+}
+
+failure-Indication SABP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Failure
+ PROCEDURE CODE id-Failure-Indication
+ CRITICALITY ignore
+}
+
+error-Indication SABP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Error-Indication
+ PROCEDURE CODE id-Error-Indication
+ CRITICALITY ignore
+}
+
+END
diff --git a/epan/dissectors/asn1/sabp/packet-sabp-template.c b/epan/dissectors/asn1/sabp/packet-sabp-template.c
new file mode 100644
index 0000000000..a86c865a7f
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/packet-sabp-template.c
@@ -0,0 +1,298 @@
+/* packet-sabp-template.c
+ * Routines for UTRAN Iu-BC Interface: Service Area Broadcast Protocol (SABP) packet dissection
+ * Copyright 2007, Tomas Kukosa <tomas.kukosa@siemens.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref: 3GPP TS 25.419 version V9.0.0 (2009-12)
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/asn1.h>
+
+#include "packet-tcp.h"
+#include "packet-per.h"
+#include "packet-e212.h"
+#include "packet-gsm_map.h"
+#include "packet-gsm_sms.h"
+#include <epan/sctpppids.h>
+#include "packet-cell_broadcast.h"
+
+#define PNAME "UTRAN IuBC interface SABP signaling"
+#define PSNAME "SABP"
+#define PFNAME "sabp"
+
+#include "packet-sabp-val.h"
+
+void proto_register_sabp(void);
+void proto_reg_handoff_sabp(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_sabp = -1;
+
+static int hf_sabp_no_of_pages = -1;
+static int hf_sabp_cb_inf_len = -1;
+static int hf_sabp_cb_msg_inf_page = -1;
+static int hf_sabp_cbs_page_content = -1;
+#include "packet-sabp-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_sabp = -1;
+static int ett_sabp_e212 = -1;
+static int ett_sabp_cbs_data_coding = -1;
+static int ett_sabp_bcast_msg = -1;
+static int ett_sabp_cbs_serial_number = -1;
+static int ett_sabp_cbs_new_serial_number = -1;
+static int ett_sabp_cbs_page = -1;
+static int ett_sabp_cbs_page_content = -1;
+
+#include "packet-sabp-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint32 ProtocolExtensionID;
+static guint8 sms_encoding;
+
+/* desegmentation of sabp over TCP */
+static gboolean gbl_sabp_desegment = TRUE;
+
+/* Dissector tables */
+static dissector_table_t sabp_ies_dissector_table;
+static dissector_table_t sabp_extension_dissector_table;
+static dissector_table_t sabp_proc_imsg_dissector_table;
+static dissector_table_t sabp_proc_sout_dissector_table;
+static dissector_table_t sabp_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static void dissect_sabp_cb_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+
+#include "packet-sabp-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sabp_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sabp_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sabp_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sabp_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sabp_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+/* 3GPP TS 23.041 version 11.4.0
+ * 9.4.2.2.5 CB Data
+ */
+static void
+dissect_sabp_cb_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ proto_item *cbs_page_item;
+ proto_tree *subtree;
+ tvbuff_t *page_tvb, *unpacked_tvb;
+ int offset = 0;
+ int n;
+ guint8 nr_pages, len, cb_inf_msg_len;
+
+
+ /* Octet 1 Number-of-Pages */
+ nr_pages = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_sabp_no_of_pages, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ /*
+ * NOTE: n equal to or less than 15
+ */
+ if(nr_pages > 15){
+ /* Error */
+ return;
+ }
+ for (n = 0; n < nr_pages; n++) {
+ subtree = proto_tree_add_subtree_format(tree, tvb, offset, 83, ett_sabp_cbs_page, NULL,
+ "CB page %u data", n+1);
+ /* octet 2 - 83 CBS-Message-Information-Page 1 */
+ cbs_page_item = proto_tree_add_item(subtree, hf_sabp_cb_msg_inf_page, tvb, offset, 82, ENC_NA);
+ cb_inf_msg_len = tvb_get_guint8(tvb,offset+82);
+ page_tvb = tvb_new_subset_length(tvb, offset, cb_inf_msg_len);
+ unpacked_tvb = dissect_cbs_data(sms_encoding, page_tvb, subtree, pinfo, 0);
+ len = tvb_captured_length(unpacked_tvb);
+ if (unpacked_tvb != NULL){
+ if (tree != NULL){
+ proto_tree *cbs_page_subtree = proto_item_add_subtree(cbs_page_item, ett_sabp_cbs_page_content);
+ proto_tree_add_item(cbs_page_subtree, hf_sabp_cbs_page_content, unpacked_tvb, 0, len, ENC_UTF_8|ENC_NA);
+ }
+ }
+
+ offset = offset+82;
+ /* 84 CBS-Message-Information-Length 1 */
+ proto_tree_add_item(subtree, hf_sabp_cb_inf_len, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ }
+}
+
+static guint
+get_sabp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
+{
+ guint32 type_length;
+ int bit_offset;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+
+ /* Length should be in the 3:d octet */
+ offset = offset + 3;
+
+ bit_offset = offset<<3;
+ /* Get the length of the sabp packet. offset in bits */
+ dissect_per_length_determinant(tvb, bit_offset, &asn1_ctx, NULL, -1, &type_length);
+
+ /*
+ * Return the length of the PDU
+ * which is 3 + the length of the length, we only care about length up to 16K
+ * ("n" less than 128) a single octet containing "n" with bit 8 set to zero;
+ * ("n" less than 16K) two octets containing "n" with bit 8 of the first octet set to 1 and bit 7 set to zero;
+ */
+ if (type_length < 128)
+ return type_length+4;
+
+ return type_length+5;
+}
+
+
+static int
+dissect_sabp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *sabp_item = NULL;
+ proto_tree *sabp_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
+
+ /* create the sabp protocol tree */
+ sabp_item = proto_tree_add_item(tree, proto_sabp, tvb, 0, -1, ENC_NA);
+ sabp_tree = proto_item_add_subtree(sabp_item, ett_sabp);
+
+ dissect_SABP_PDU_PDU(tvb, pinfo, sabp_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+/* Note a little bit of a hack assumes length max takes two bytes and that the length starts at byte 4 */
+static int
+dissect_sabp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ tcp_dissect_pdus(tvb, pinfo, tree, gbl_sabp_desegment, 5,
+ get_sabp_pdu_len, dissect_sabp, data);
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_sabp -------------------------------------------*/
+void proto_register_sabp(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_sabp_no_of_pages,
+ { "Number-of-Pages", "sabp.no_of_pages",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_sabp_cb_msg_inf_page,
+ { "CBS-Message-Information-Page", "sabp.cb_msg_inf_page",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_sabp_cbs_page_content,
+ { "CBS Page Content", "sabp.cb_page_content",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_sabp_cb_inf_len,
+ { "CBS-Message-Information-Length", "sabp.cb_inf_len",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+
+#include "packet-sabp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_sabp,
+ &ett_sabp_e212,
+ &ett_sabp_cbs_data_coding,
+ &ett_sabp_bcast_msg,
+ &ett_sabp_cbs_serial_number,
+ &ett_sabp_cbs_new_serial_number,
+ &ett_sabp_cbs_page,
+ &ett_sabp_cbs_page_content,
+#include "packet-sabp-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_sabp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_sabp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ register_dissector("sabp", dissect_sabp, proto_sabp);
+ register_dissector("sabp.tcp", dissect_sabp_tcp, proto_sabp);
+
+ /* Register dissector tables */
+ sabp_ies_dissector_table = register_dissector_table("sabp.ies", "SABP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ sabp_extension_dissector_table = register_dissector_table("sabp.extension", "SABP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ sabp_proc_imsg_dissector_table = register_dissector_table("sabp.proc.imsg", "SABP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ sabp_proc_sout_dissector_table = register_dissector_table("sabp.proc.sout", "SABP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ sabp_proc_uout_dissector_table = register_dissector_table("sabp.proc.uout", "SABP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+}
+
+
+/*--- proto_reg_handoff_sabp ---------------------------------------*/
+void
+proto_reg_handoff_sabp(void)
+{
+ dissector_handle_t sabp_handle;
+ dissector_handle_t sabp_tcp_handle;
+
+ sabp_handle = find_dissector("sabp");
+ sabp_tcp_handle = find_dissector("sabp.tcp");
+ dissector_add_uint("udp.port", 3452, sabp_handle);
+ dissector_add_uint("tcp.port", 3452, sabp_tcp_handle);
+ dissector_add_uint("sctp.ppi", SABP_PAYLOAD_PROTOCOL_ID, sabp_handle);
+
+#include "packet-sabp-dis-tab.c"
+}
+
+
diff --git a/epan/dissectors/asn1/sabp/sabp.cnf b/epan/dissectors/asn1/sabp/sabp.cnf
new file mode 100644
index 0000000000..af373ea0c3
--- /dev/null
+++ b/epan/dissectors/asn1/sabp/sabp.cnf
@@ -0,0 +1,216 @@
+# sabp.cnf
+# sabp conformation file
+# Copyright 2007 Tomas Kukosa
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.NO_EMIT
+
+#.PDU
+SABP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.USE_VALS_EXT
+ProcedureCode
+ProtocolIE-ID
+Cause
+
+#.OMIT_ASSIGNMENT
+Presence
+ProtocolIE-ContainerList
+#.END
+
+#.TF_RENAME
+ProtocolIE-Field/value ProtocolIE_Field_value
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+#.END
+
+#.FIELD_RENAME
+ProtocolExtensionField/id ext_id
+MessageStructure/_item/repetitionNumber repetitionNumber1
+#.END
+
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &sabp_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+#.END
+
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str_ext(ProcedureCode, &sabp_ProcedureCode_vals_ext,
+ "unknown message"));
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+
+#.ASSIGN_VALUE_TO_TYPE # SABP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+id-Write-Replace ProcedureCode
+id-Kill ProcedureCode
+id-Load-Status-Enquiry ProcedureCode
+id-Message-Status-Query ProcedureCode
+id-Restart-Indication ProcedureCode
+id-Reset ProcedureCode
+id-Failure-Indication ProcedureCode
+id-Error-Indication ProcedureCode
+
+# ProtocolIE-ID
+id-Broadcast-Message-Content ProtocolIE-ID
+id-Category ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-Criticality-Diagnostics ProtocolIE-ID
+id-Data-Coding-Scheme ProtocolIE-ID
+id-Failure-List ProtocolIE-ID
+id-Message-Identifier ProtocolIE-ID
+id-New-Serial-Number ProtocolIE-ID
+id-Number-of-Broadcasts-Completed-List ProtocolIE-ID
+id-Number-of-Broadcasts-Requested ProtocolIE-ID
+id-Old-Serial-Number ProtocolIE-ID
+id-Radio-Resource-Loading-List ProtocolIE-ID
+id-Recovery-Indication ProtocolIE-ID
+id-Repetition-Period ProtocolIE-ID
+id-Serial-Number ProtocolIE-ID
+id-Service-Areas-List ProtocolIE-ID
+id-MessageStructure ProtocolIE-ID
+id-TypeOfError ProtocolIE-ID
+id-Paging-ETWS-Indicator ProtocolIE-ID
+id-Warning-Type ProtocolIE-ID
+id-WarningSecurityInfo ProtocolIE-ID
+id-Broadcast-Message-Content-Validity-Indicator ProtocolIE-ID
+
+#.END
+
+#.REGISTER
+
+#SABP-PROTOCOL-IES
+Message-Identifier N sabp.ies id-Message-Identifier
+New-Serial-Number N sabp.ies id-New-Serial-Number
+Old-Serial-Number N sabp.ies id-Old-Serial-Number
+Service-Areas-List N sabp.ies id-Service-Areas-List
+Category N sabp.ies id-Category
+Repetition-Period N sabp.ies id-Repetition-Period
+Number-of-Broadcasts-Requested N sabp.ies id-Number-of-Broadcasts-Requested
+Data-Coding-Scheme N sabp.ies id-Data-Coding-Scheme
+Broadcast-Message-Content N sabp.ies id-Broadcast-Message-Content
+Number-of-Broadcasts-Completed-List N sabp.ies id-Number-of-Broadcasts-Completed-List
+Criticality-Diagnostics N sabp.ies id-Criticality-Diagnostics
+Failure-List N sabp.ies id-Failure-List
+Radio-Resource-Loading-List N sabp.ies id-Radio-Resource-Loading-List
+Recovery-Indication N sabp.ies id-Recovery-Indication
+Serial-Number N sabp.ies id-Serial-Number
+Cause N sabp.ies id-Cause
+
+#SABP-PROTOCOL-EXTENSION
+MessageStructure N sabp.extension id-MessageStructure
+TypeOfError N sabp.extension id-TypeOfError
+Paging-ETWS-Indicator N sabp.extension id-Paging-ETWS-Indicator
+Warning-Type N sabp.extension id-Warning-Type
+WarningSecurityInfo N sabp.extension id-WarningSecurityInfo
+Broadcast-Message-Content-Validity-Indicator N sabp.extension id-Broadcast-Message-Content-Validity-Indicator
+
+#SABP-ELEMENTARY-PROCEDURE
+Write-Replace N sabp.proc.imsg id-Write-Replace
+Write-Replace-Complete N sabp.proc.sout id-Write-Replace
+Write-Replace-Failure N sabp.proc.uout id-Write-Replace
+Kill N sabp.proc.imsg id-Kill
+Kill-Complete N sabp.proc.sout id-Kill
+Kill-Failure N sabp.proc.uout id-Kill
+Load-Query N sabp.proc.imsg id-Load-Status-Enquiry
+Load-Query-Complete N sabp.proc.sout id-Load-Status-Enquiry
+Load-Query-Failure N sabp.proc.uout id-Load-Status-Enquiry
+Message-Status-Query N sabp.proc.imsg id-Message-Status-Query
+Message-Status-Query-Complete N sabp.proc.sout id-Message-Status-Query
+Message-Status-Query-Failure N sabp.proc.uout id-Message-Status-Query
+Reset N sabp.proc.imsg id-Reset
+Reset-Complete N sabp.proc.sout id-Reset
+Reset-Failure N sabp.proc.uout id-Reset
+Restart N sabp.proc.imsg id-Restart-Indication
+Failure N sabp.proc.imsg id-Failure-Indication
+Error-Indication N sabp.proc.imsg id-Error-Indication
+
+# following construction is not supported by asn2wrs
+# PLMNidentity ::= TBCD-STRING (SIZE (3))
+# TBCD-STRING ::= OCTET STRING
+
+#.FN_BODY Service-Area-Identifier/pLMNidentity VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_tree *subtree;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_sabp_e212);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+
+#.FN_BODY Data-Coding-Scheme VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_data_coding);
+ sms_encoding = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
+
+#.FN_BODY Message-Identifier VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ dissect_cbs_message_identifier(parameter_tvb, tree, 0);
+
+#.FN_BODY Serial-Number VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_serial_number);
+ dissect_cbs_serial_number(parameter_tvb, subtree, 0);
+
+#.FN_BODY New-Serial-Number VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_new_serial_number);
+ dissect_cbs_serial_number(parameter_tvb, subtree, 0);
+
+#.FN_BODY Broadcast-Message-Content VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ dissect_sabp_cb_data(parameter_tvb, actx->pinfo, tree);
+# dissect_umts_cell_broadcast_message(parameter_tvb, actx->pinfo, proto_tree_get_root(tree));
diff --git a/epan/dissectors/asn1/sbc-ap/CMakeLists.txt b/epan/dissectors/asn1/sbc-ap/CMakeLists.txt
new file mode 100644
index 0000000000..5d2b4c092e
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/CMakeLists.txt
@@ -0,0 +1,56 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME sbc-ap )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ SBC-AP-CommonDataTypes.asn
+ SBC-AP-Constants.asn
+ SBC-AP-Containers.asn
+ SBC-AP-IEs.asn
+ SBC-AP-PDU-Contents.asn
+ SBC-AP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/sbc-ap/Makefile.am b/epan/dissectors/asn1/sbc-ap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/sbc-ap/Makefile.common b/epan/dissectors/asn1/sbc-ap/Makefile.common
new file mode 100644
index 0000000000..4bc5eb25a7
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/Makefile.common
@@ -0,0 +1,47 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = sbc-ap
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ SBC-AP-CommonDataTypes.asn \
+ SBC-AP-Constants.asn \
+ SBC-AP-Containers.asn \
+ SBC-AP-IEs.asn \
+ SBC-AP-PDU-Contents.asn \
+ SBC-AP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/sbc-ap/Makefile.nmake b/epan/dissectors/asn1/sbc-ap/Makefile.nmake
new file mode 100644
index 0000000000..4eb1a6c7e3
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/Makefile.nmake
@@ -0,0 +1,25 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake \ No newline at end of file
diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..8c568cf2e2
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn
@@ -0,0 +1,35 @@
+-- SBC-AP-CommonDataTypes.asn
+--
+-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
+--
+-- 4.4.6 Common Definitions
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+SBC-AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-CommonDataTypes (3)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+ProtocolIE-ID ::= INTEGER (0..65535)
+
+TriggeringMessage ::= ENUMERATED {initiating-message, successful-outcome, unsuccessful-outcome, outcome}
+
+END
diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn
new file mode 100644
index 0000000000..6be38db550
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn
@@ -0,0 +1,85 @@
+-- SBC-AP-Constants.asn
+--
+-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
+--
+-- 4.4.7 Constant Definitions
+--
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+SBC-AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-Constants (4)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-Write-Replace-Warning INTEGER ::= 0
+id-Stop-Warning INTEGER ::= 1
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Broadcast-Message-Content INTEGER ::= 0
+id-Cause INTEGER ::= 1
+id-Criticality-Diagnostics INTEGER ::=2
+id-Data-Coding-Scheme INTEGER ::= 3
+id-Failure-List INTEGER ::= 4
+id-Message-Identifier INTEGER ::= 5
+id-Number-of-Broadcasts-Completed-List INTEGER ::= 6
+id-Number-of-Broadcasts-Requested INTEGER ::= 7
+id-Radio-Resource-Loading-List INTEGER ::= 8
+id-Recovery-Indication INTEGER ::= 9
+id-Repetition-Period INTEGER ::= 10
+id-Serial-Number INTEGER ::= 11
+id-Service-Areas-List INTEGER ::= 12
+id-TypeOfError INTEGER ::= 13
+id-List-of-TAIs INTEGER ::= 14
+id-Warning-Area-List INTEGER ::= 15
+id-Warning-Message-Content INTEGER ::= 16
+id-Warning-Security-Information INTEGER ::= 17
+id-Warning-Type INTEGER ::= 18
+id-Omc-Id INTEGER ::= 19
+id-Concurrent-Warning-Message-Indicator INTEGER ::= 20
+id-Extended-Repetition-Period INTEGER ::= 21
+
+
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfErrors INTEGER ::= 256
+maxnoofCellID INTEGER ::= 65535
+maxNrOfTAIs INTEGER ::= 65535
+maxnoofgencyEmerAreaID INTEGER ::= 65535
+maxnoofTAIforWarning INTEGER ::= 65535
+
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- WS fix
+maxnoofEmerAreaIDs INTEGER ::= 65535
+END
diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn
new file mode 100644
index 0000000000..eaf2c01247
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn
@@ -0,0 +1,121 @@
+-- SBC-AP-Containers.asn
+--
+-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
+--
+-- 4.4.8 Container Definitions
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+SBC-AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-Containers (5)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM SBC-AP-CommonDataTypes
+
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM SBC-AP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+SBC-AP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality DEFAULT ignore,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+SBC-AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality DEFAULT ignore,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {SBC-AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {SBC-AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id SBC-AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality SBC-AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value SBC-AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {SBC-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {SBC-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id SBC-AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality SBC-AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue SBC-AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+
+END
diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn
new file mode 100644
index 0000000000..00b97108d8
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn
@@ -0,0 +1,246 @@
+-- SBC-AP-IEs.asn
+--
+-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
+--
+-- 4.4.5 Information Element Definitions
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+SBC-AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-IEs (2)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxNrOfErrors,
+ maxNrOfTAIs,
+ maxnoofTAIforWarning,
+ maxnoofCellID,
+ maxnoofEmergencyAreaID,
+
+ id-TypeOfError
+
+FROM SBC-AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ TriggeringMessage,
+ ProtocolIE-ID
+FROM SBC-AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+
+ SBC-AP-PROTOCOL-EXTENSION
+FROM SBC-AP-Containers;
+
+
+-- A
+
+-- B
+
+-- C
+
+Cause ::= INTEGER {
+ message-accepted (0),
+ parameter-not-recognised (1),
+ parameter-value-invalid (2),
+ valid-message-not-identified (3),
+ tracking-area-not-valid (4),
+ unrecognised-message (5),
+ missing-mandatory-element (6),
+ mME-capacity-exceeded (7),
+ mME-memory-exceeded (8),
+ warning-broadcast-not-supported (9),
+ warning-broadcast-not-operational (10),
+ message-reference-already-used (11),
+ unspecifed-error (12),
+ transfer-syntax-error (13),
+ semantic-error (14),
+ message-not-compatible-with-receiver-state (15),
+ abstract-syntax-error-reject (16),
+ abstract-syntax-error-ignore-and-notify (17),
+ abstract-syntax-error-falsely-constructed-message (18)
+} (0..255)
+
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+Concurrent-Warning-Message-Indicator ::= ENUMERATED {true}
+
+Criticality-Diagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- D
+
+Data-Coding-Scheme ::= BIT STRING (SIZE (8))
+
+-- E
+
+ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+Emergency-Area-ID-List ::= SEQUENCE (SIZE(1..maxnoofEmerAreaIDs)) OF Emergency-Area-ID
+
+Emergency-Area-ID ::= OCTET STRING (SIZE (3))
+
+EUTRAN-CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRAN-CGI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Extended-Repetition-Period ::= INTEGER (4096..131071)
+
+
+-- F
+
+-- G
+
+-- H
+
+-- I
+
+-- J
+
+-- K
+
+-- L
+
+List-of-TAIs ::= SEQUENCE (SIZE (1..maxNrOfTAIs)) OF
+ SEQUENCE {
+ tai TAI
+}
+
+-- M
+
+Message-Identifier ::= BIT STRING (SIZE (16))
+
+-- N
+
+Number-of-Broadcasts-Requested ::= INTEGER (0..65535)
+
+-- For Number-of-Broadcasts-Requested = 0 and Repetition-Period = 0, then eNB action is no broadcast
+-- for ETWS and CMAS.
+--
+-- For Number-of-Broadcasts-Requested = 1 and Repetition-Period = 0, then eNB action is broadcast
+-- only once for ETWS and CMAS.
+--
+-- For Number-of-Broadcasts-Requested = 0 and Repetition-Period > 0, then eNB action is no broadcast
+-- for the ETWS, and broadcast until further notice for the CMAS.
+--
+-- For Number-of-Broadcasts-Requested > 0 and Repetition-Period > 0, then eNB action is normal
+-- broadcast.
+-- All other combinations of Number-of-Broadcasts-Requested and Repetition-Period are considered
+-- invalid.
+
+-- O
+Omc-Id ::= OCTET STRING (SIZE (1..20))
+
+
+-- P
+PLMNidentity ::= TBCD-STRING
+
+-- Q
+
+-- R
+
+Repetition-Period ::= INTEGER (0..4096)
+-- 1 to 4096: Each unit represents a repetition of one second to a maximum of
+-- once per 4096 seconds (~1 hour).
+-- 0: no repetition
+-- A CBC compliant to this version or later of this specification shall not send a repetition period
+-- greater than 4095.
+-- For backwards compatibility with a CBC compliant to an earlier version of this specification the
+-- maximum value of the repetition period defined in ASN.1 remains at 4096.
+-- If the value of the Repetition Period IE received in the WRITE-REPLACE WARNING REQUEST message is
+-- set to 4096, the MME shall set the Repetition Period IE to the maximum value 4095 supported on
+-- the S1-MME interface as defined in [7] before forwarding to the selected eNBs.
+
+-- S
+
+Serial-Number ::= BIT STRING (SIZE (16))
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAI-List-for-Warning ::= SEQUENCE (SIZE(1.. maxnoofTAIforWarning)) OF TAI
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL
+}
+
+TAI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+-- V
+
+-- W
+
+Warning-Area-List ::= CHOICE {
+ cell-ID-List ECGIList,
+ tracking-Area-List-for-Warning TAI-List-for-Warning,
+ emergency-Area-ID-List Emergency-Area-ID-List,
+ ...
+}
+
+Warning-Message-Content ::= OCTET STRING (SIZE (1..9600))
+Warning-Security-Information ::= OCTET STRING (SIZE (50))
+Warning-Type ::= OCTET STRING (SIZE (2))
+
+-- X
+
+-- Y
+
+END
diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn
new file mode 100644
index 0000000000..4900145177
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn
@@ -0,0 +1,182 @@
+-- SBC-AP-PDU-Contents.asn
+--
+-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
+--
+-- 4.4.4 PDU Definitions
+--
+
+-- **************************************************************
+--
+-- PDU definitions for SBC-AP.
+--
+-- **************************************************************
+
+SBC-AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-PDU-Contents (1)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+
+ Cause,
+ Concurrent-Warning-Message-Indicator,
+ Criticality-Diagnostics,
+ Data-Coding-Scheme,
+ Message-Identifier,
+ Serial-Number,
+ List-of-TAIs,
+ Warning-Area-List,
+ Omc-Id,
+ Repetition-Period,
+ Extended-Repetition-Period,
+ Number-of-Broadcasts-Requested,
+ Warning-Type,
+ Warning-Security-Information,
+ Warning-Message-Content
+FROM SBC-AP-IEs
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ SBC-AP-PROTOCOL-EXTENSION,
+ SBC-AP-PROTOCOL-IES
+FROM SBC-AP-Containers
+
+ id-Concurrent-Warning-Message-Indicator,
+ id-Criticality-Diagnostics,
+ id-Cause,
+ id-Data-Coding-Scheme,
+ id-List-of-TAIs,
+ id-Message-Identifier,
+ id-Serial-Number,
+ id-Number-of-Broadcasts-Requested,
+ id-Omc-Id,
+ id-Radio-Resource-Loading-List,
+ id-Recovery-Indication,
+ id-Repetition-Period,
+ id-Extended-Repetition-Period,
+ id-Warning-Area-List,
+ id-Warning-Message-Content,
+ id-Warning-Security-Information,
+ id-Warning-Type
+FROM SBC-AP-Constants;
+
+-- **************************************************************
+--
+-- Write-Replace-Warning-Request
+--
+-- **************************************************************
+
+Write-Replace-Warning-Request ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Write-Replace-Warning-Request-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Warning-Request-Extensions} } OPTIONAL,
+ ...
+}
+
+Write-Replace-Warning-Request-IEs SBC-AP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
+ { ID id-List-of-TAIs CRITICALITY reject TYPE List-of-TAIs PRESENCE optional } |
+ { ID id-Warning-Area-List CRITICALITY ignore TYPE Warning-Area-List PRESENCE optional } |
+ { ID id-Repetition-Period CRITICALITY reject TYPE Repetition-Period PRESENCE mandatory } |
+ { ID id-Extended-Repetition-Period CRITICALITY reject TYPE Extended-Repetition-Period PRESENCE optional } |
+
+ { ID id-Number-of-Broadcasts-Requested
+ CRITICALITY reject TYPE Number-of-Broadcasts-Requested PRESENCE mandatory } |
+ { ID id-Warning-Type CRITICALITY ignore TYPE Warning-Type PRESENCE optional } |
+ { ID id-Warning-Security-Information CRITICALITY ignore TYPE Warning-Security-Information PRESENCE optional } |
+ { ID id-Data-Coding-Scheme CRITICALITY ignore TYPE Data-Coding-Scheme PRESENCE optional } |
+ { ID id-Warning-Message-Content
+ CRITICALITY ignore TYPE Warning-Message-Content PRESENCE optional } |
+ { ID id-Omc-Id CRITICALITY ignore TYPE Omc-Id PRESENCE optional } |
+ { ID id-Concurrent-Warning-Message-Indicator CRITICALITY reject TYPE Concurrent-Warning-Message-Indicator PRESENCE optional }
+ ...
+}
+
+Write-Replace-Warning-Request-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Write-Replace-Warning-Response
+--
+-- **************************************************************
+
+Write-Replace-Warning-Response ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Write-Replace-Warning-Response-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Warning-Response-Extensions} } OPTIONAL,
+ ...
+}
+
+Write-Replace-Warning-Response-IEs SBC-AP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Write-Replace-Warning-Response-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Stop-Warning-Request
+--
+-- **************************************************************
+
+Stop-Warning-Request ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Stop-Warning-Request-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Stop-Warning-Request-Extensions} } OPTIONAL,
+ ...
+}
+
+Stop-Warning-Request-IEs SBC-AP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
+ { ID id-List-of-TAIs CRITICALITY reject TYPE List-of-TAIs PRESENCE optional } |
+ { ID id-Warning-Area-List CRITICALITY ignore TYPE Warning-Area-List PRESENCE optional }|
+ { ID id-Omc-Id CRITICALITY ignore TYPE Omc-Id PRESENCE optional },
+ ...
+}
+
+Stop-Warning-Request-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Stop-Warning-Response
+--
+-- **************************************************************
+
+Stop-Warning-Response ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Stop-Warning-Response-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Stop-Warning-Response-Extensions} } OPTIONAL,
+ ...
+}
+
+Stop-Warning-Response-IEs SBC-AP-PROTOCOL-IES ::= {
+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
+ { ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
+ ...
+}
+
+Stop-Warning-Response-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..f7015d1d56
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn
@@ -0,0 +1,135 @@
+-- SBC-AP-PDU-Descriptions.asn
+--
+-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
+--
+-- 4.4.3 Elementary Procedure Definitions
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+SBC-AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM SBC-AP-CommonDataTypes
+
+ Write-Replace-Warning-Request,
+ Write-Replace-Warning-Response,
+ Stop-Warning-Request,
+ Stop-Warning-Response
+
+FROM SBC-AP-PDU-Contents
+
+ id-Write-Replace-Warning,
+ id-Stop-Warning
+FROM SBC-AP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+SBC-AP-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
+--
+-- **************************************************************
+
+SBC-AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}),
+ criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value SBC-AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}),
+ criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value SBC-AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}),
+ criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value SBC-AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+SBC-AP-ELEMENTARY-PROCEDURES SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ SBC-AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ SBC-AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+SBC-AP-ELEMENTARY-PROCEDURES-CLASS-1 SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ Write-Replace-Warning,
+ Stop-Warning ,
+ ...
+}
+
+SBC-AP-ELEMENTARY-PROCEDURES-CLASS-2 SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ ...
+}
+
+write-Replace-Warning SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Write-Replace-Warning-Request
+ SUCCESSFUL OUTCOME Write-Replace-Warning-Response
+
+ PROCEDURE CODE id-Write-Replace-Warning
+ CRITICALITY reject
+}
+
+stop-Warning SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Stop-Warning-Request
+ SUCCESSFUL OUTCOME Stop-Warning-Response
+
+ PROCEDURE CODE id-Stop-Warning
+ CRITICALITY reject
+}
+
+END
diff --git a/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
new file mode 100644
index 0000000000..43fed62048
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
@@ -0,0 +1,206 @@
+/* packet-sbc-ap.c
+ * Routines for SBc Application Part (SBc-AP) packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref 3GPP TS 29.168
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+#include <epan/sctpppids.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-e212.h"
+
+#define PNAME "SBc Application Part"
+#define PSNAME "SBCAP"
+#define PFNAME "sbcap"
+
+void proto_register_sbc_ap(void);
+void proto_reg_handoff_sbc_ap(void);
+
+/* The registered port number for SBc-AP is 29168.
+ * The registered payload protocol identifier for SBc-AP is 24.
+ */
+#define SBC_AP_PORT 29168
+static dissector_handle_t sbc_ap_handle=NULL;
+
+
+#include "packet-sbc-ap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_sbc_ap = -1;
+
+#include "packet-sbc-ap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_sbc_ap = -1;
+
+#include "packet-sbc-ap-ett.c"
+
+enum{
+ INITIATING_MESSAGE,
+ SUCCESSFUL_OUTCOME,
+ UNSUCCESSFUL_OUTCOME
+};
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint32 ProtocolExtensionID;
+static int global_sbc_ap_port = SBC_AP_PORT;
+
+/* Dissector tables */
+static dissector_table_t sbc_ap_ies_dissector_table;
+static dissector_table_t sbc_ap_extension_dissector_table;
+static dissector_table_t sbc_ap_proc_imsg_dissector_table;
+static dissector_table_t sbc_ap_proc_sout_dissector_table;
+static dissector_table_t sbc_ap_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+#include "packet-sbc-ap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sbc_ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+/* Currently not used
+static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sbc_ap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sbc_ap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+*/
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sbc_ap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sbc_ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sbc_ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(sbc_ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int
+dissect_sbc_ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *sbc_ap_item = NULL;
+ proto_tree *sbc_ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PNAME);
+
+ /* create the sbc_ap protocol tree */
+ if (tree) {
+ sbc_ap_item = proto_tree_add_item(tree, proto_sbc_ap, tvb, 0, -1, ENC_NA);
+ sbc_ap_tree = proto_item_add_subtree(sbc_ap_item, ett_sbc_ap);
+
+ dissect_SBC_AP_PDU_PDU(tvb, pinfo, sbc_ap_tree, NULL);
+ }
+ return tvb_captured_length(tvb);
+}
+/*--- proto_register_sbc_ap -------------------------------------------*/
+void proto_register_sbc_ap(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-sbc-ap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_sbc_ap,
+#include "packet-sbc-ap-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_sbc_ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_sbc_ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+
+ /* Register dissector tables */
+ sbc_ap_ies_dissector_table = register_dissector_table("sbc_ap.ies", "SBC-AP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ sbc_ap_extension_dissector_table = register_dissector_table("sbc_ap.extension", "SBC-AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ sbc_ap_proc_imsg_dissector_table = register_dissector_table("sbc_ap.proc.imsg", "SBC-AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ sbc_ap_proc_sout_dissector_table = register_dissector_table("sbc_ap.proc.sout", "SBC-AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ sbc_ap_proc_uout_dissector_table = register_dissector_table("sbc_ap.proc.uout", "SBC-AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+
+}
+
+
+/*--- proto_reg_handoff_sbc_ap ---------------------------------------*/
+void
+proto_reg_handoff_sbc_ap(void)
+{
+ static gboolean inited = FALSE;
+ static guint SctpPort;
+
+ if( !inited ) {
+ sbc_ap_handle = create_dissector_handle(dissect_sbc_ap, proto_sbc_ap);
+ dissector_add_uint("sctp.ppi", SBC_AP_PAYLOAD_PROTOCOL_ID, sbc_ap_handle);
+ inited = TRUE;
+#include "packet-sbc-ap-dis-tab.c"
+ } else {
+ if (SctpPort != 0) {
+ dissector_delete_uint("sctp.port", SctpPort, sbc_ap_handle);
+ }
+ }
+
+ SctpPort = global_sbc_ap_port;
+ if (SctpPort != 0) {
+ dissector_add_uint("sctp.port", SctpPort, sbc_ap_handle);
+ }
+
+}
+
+
+
+
+
diff --git a/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf b/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf
new file mode 100644
index 0000000000..b8af92f784
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf
@@ -0,0 +1,178 @@
+# sbc-ap.cnf
+# sbc-ap conformation file
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.EXPORTS
+
+#.PDU
+SBC-AP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.NO_EMIT
+TBCD-STRING
+#.END
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+ProtocolIE-ContainerList
+Presence
+
+#.TYPE_RENAME
+
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+
+ProtocolExtensionField/id ext_id
+
+ProtocolIE-Field/value ie_field_value
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(sbc_ap_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+#.END
+
+
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+# Currently not used
+# FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue
+# FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
+
+#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, sbc_ap_ProcedureCode_vals,
+ "unknown message"));
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-Container {{IEsSetParam}}
+
+# FN_PARS ProtocolIE-ContainerList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerList
+# static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, 0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
+#.END
+#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-ContainerPair {{IEsSetParam}}
+
+# following construction is not supported by asn2wrs
+# PLMNidentity ::= TBCD-STRING (SIZE (3))
+# TBCD-STRING ::= OCTET STRING
+
+#.FN_BODY PLMNidentity VAL_PTR = parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+ if(tvb_reported_length(tvb)==0)
+ return offset;
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, E212_NONE, FALSE);
+#.END
+
+#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(sbc_ap_ProtocolIE_ID_vals)
+
+#.ASSIGN_VALUE_TO_TYPE # SBC-AP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+id-Write-Replace-Warning ProcedureCode
+id-Stop-Warning ProcedureCode
+
+# ProtocolIE-ID
+
+id-Broadcast-Message-Content ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-Criticality-Diagnostics ProtocolIE-ID
+id-Data-Coding-Scheme ProtocolIE-ID
+id-Failure-List ProtocolIE-ID
+id-Message-Identifier ProtocolIE-ID
+id-Number-of-Broadcasts-Completed-List ProtocolIE-ID
+id-Number-of-Broadcasts-Requested ProtocolIE-ID
+id-Radio-Resource-Loading-List ProtocolIE-ID
+id-Recovery-Indication ProtocolIE-ID
+id-Repetition-Period ProtocolIE-ID
+id-Serial-Number ProtocolIE-ID
+id-Service-Areas-List ProtocolIE-ID
+id-TypeOfError ProtocolIE-ID
+id-List-of-TAIs ProtocolIE-ID
+id-Warning-Area-List ProtocolIE-ID
+id-Warning-Message-Content ProtocolIE-ID
+id-Warning-Security-Information ProtocolIE-ID
+id-Warning-Type ProtocolIE-ID
+id-Omc-Id ProtocolIE-ID
+id-Concurrent-Warning-Message-Indicator ProtocolIE-ID
+id-Extended-Repetition-Period ProtocolIE-ID
+
+
+#.REGISTER
+
+#SBC-AP-PROTOCOL-IES
+
+# N sbc_ap.ies id-Broadcast-Message-Content
+Cause N sbc_ap.ies id-Cause
+Criticality-Diagnostics N sbc_ap.ies id-Criticality-Diagnostics
+Data-Coding-Scheme N sbc_ap.ies id-Data-Coding-Scheme
+# N sbc_ap.ies id-Failure-List
+Message-Identifier N sbc_ap.ies id-Message-Identifier
+# id-Number-of-Broadcasts-Completed-List
+Number-of-Broadcasts-Requested N sbc_ap.ies id-Number-of-Broadcasts-Requested
+# not used ? N sbc_ap.ies id-Radio-Resource-Loading-List
+# not used N sbc_ap.ies id-Recovery-Indication
+Repetition-Period N sbc_ap.ies id-Repetition-Period
+Serial-Number N sbc_ap.ies id-Serial-Number
+# id-Service-Areas-List
+# id-TypeOfError
+List-of-TAIs N sbc_ap.ies id-List-of-TAIs
+Warning-Area-List N sbc_ap.ies id-Warning-Area-List
+Warning-Message-Content N sbc_ap.ies id-Warning-Message-Content
+Warning-Security-Information N sbc_ap.ies id-Warning-Security-Information
+Warning-Type N sbc_ap.ies id-Warning-Type
+Omc-Id N sbc_ap.ies id-Omc-Id
+Concurrent-Warning-Message-Indicator N sbc_ap.ies id-Concurrent-Warning-Message-Indicator
+Extended-Repetition-Period N sbc_ap.ies id-Extended-Repetition-Period
+
+#SBC-AP-ELEMENTARY-PROCEDURE
+Write-Replace-Warning-Request N sbc_ap.proc.imsg id-Write-Replace-Warning
+Write-Replace-Warning-Response N sbc_ap.proc.sout id-Write-Replace-Warning
+Stop-Warning-Request N sbc_ap.proc.imsg id-Stop-Warning
+Stop-Warning-Response N sbc_ap.proc.sout id-Stop-Warning
+
+#.END
diff --git a/epan/dissectors/asn1/smrse/CMakeLists.txt b/epan/dissectors/asn1/smrse/CMakeLists.txt
new file mode 100644
index 0000000000..ffb58582fc
--- /dev/null
+++ b/epan/dissectors/asn1/smrse/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME smrse )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ SMRSE.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/smrse/Makefile.am b/epan/dissectors/asn1/smrse/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/smrse/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/smrse/Makefile.common b/epan/dissectors/asn1/smrse/Makefile.common
new file mode 100644
index 0000000000..806865a00e
--- /dev/null
+++ b/epan/dissectors/asn1/smrse/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=smrse
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ SMRSE.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/smrse/Makefile.nmake b/epan/dissectors/asn1/smrse/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/smrse/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/smrse/SMRSE.asn b/epan/dissectors/asn1/smrse/SMRSE.asn
new file mode 100644
index 0000000000..ee11a261b4
--- /dev/null
+++ b/epan/dissectors/asn1/smrse/SMRSE.asn
@@ -0,0 +1,133 @@
+SMRS DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+SMR-Bind ::= SEQUENCE {
+ sc-address SMS-Address,
+ password Password,
+ ...
+}
+
+ub-password-length INTEGER ::= 20
+
+IMSI-Address ::= OCTET STRING
+
+SMS-Address ::= SEQUENCE {
+ address-type INTEGER {
+ unknown-type (0),
+ internat-number (1),
+ national-number (2),
+ net-spec-number (3),
+ short-number (4)
+ },
+
+ numbering-plan INTEGER {
+ unknown-numbering (0),
+ iSDN-numbering (1),
+ data-network-numbering (3),
+ telex-numbering (4),
+ national-numbering (8),
+ private-numbering (9)
+ },
+
+ address-value CHOICE {
+ octet-format SemiOctetString
+ }
+}
+
+
+SemiOctetString ::= OCTET STRING
+
+Password ::= PrintableString
+
+SMR-Bind-Confirm ::= SEQUENCE {
+ ...
+}
+
+SMR-Bind-Failure ::= SEQUENCE {
+ connect-fail-reason Connect-fail,
+ ...
+}
+
+Connect-fail ::= INTEGER {
+ not-entitled (0),
+ tmp-overload (1),
+ tmp-failure (2),
+ id-or-passwd (3),
+ not-supported (4),
+ inv-SC-addr (5)
+}
+
+SMR-Unbind ::= SEQUENCE {
+ ...
+}
+
+RPDataMT ::= SEQUENCE {
+ mt-priority-request BOOLEAN,
+ mt-mms BOOLEAN,
+ mt-message-reference RP-MR,
+ mt-originating-address SMS-Address,
+ mt-destination-address SMS-Address,
+ mt-user-data RP-UD,
+ mt-origVMSCAddr [1] SMS-Address OPTIONAL,
+ mt-tariffClass [2] SM-TC OPTIONAL,
+ ...
+}
+
+RPDataMO ::= SEQUENCE {
+ mo-message-reference RP-MR,
+ mo-originating-address SMS-Address,
+ mo-user-data RP-UD,
+ origVMSCAddr [1] SMS-Address OPTIONAL ,
+ moimsi [2] IMSI-Address OPTIONAL,
+ ...
+}
+
+RP-MR ::= INTEGER (0..65535)
+
+RP-UD ::= OCTET STRING (SIZE (1..164))
+
+SM-TC ::= INTEGER (0..65535)
+
+RPAck ::= SEQUENCE {
+ message-reference RP-MR,
+ ...
+}
+
+Error-reason ::= INTEGER {
+ unknown-subscriber (1),
+ illegal-subscriber (9),
+ teleservice-not-provisioned (11),
+ call-barred (13),
+ cug-reject (15),
+ sMS-ll-capabilities-not-prov (19),
+ error-in-MS (20),
+ facility-not-supported (21),
+ memory-capacity-exceeded (22),
+ absent-subscriber (29),
+ ms-busy-for-MT-sms (30),
+ system-failure (36),
+ illegal-equipment (44),
+ no-resp-to-paging (60),
+ gMSC-congestion (61),
+ dublicate-sm (70),
+ sC-congestion (101),
+ mS-not-SC-Subscriber (103),
+ invalid-sme-address (104)
+}
+
+RPError ::= SEQUENCE {
+ error-reason Error-reason,
+ msg-waiting-set BOOLEAN,
+ message-reference RP-MR,
+ alerting-MS-ISDN [1] SMS-Address OPTIONAL,
+ sm-diag-info [2] RP-UD OPTIONAL,
+ ...
+}
+
+RPAlertSC ::= SEQUENCE {
+ ms-address SMS-Address,
+ message-reference RP-MR,
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/smrse/packet-smrse-template.c b/epan/dissectors/asn1/smrse/packet-smrse-template.c
new file mode 100644
index 0000000000..0903045ea7
--- /dev/null
+++ b/epan/dissectors/asn1/smrse/packet-smrse-template.c
@@ -0,0 +1,183 @@
+/* packet-smrse.c
+ * Routines for SMRSE Short Message Relay Service packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-smrse.h"
+
+#define PNAME "Short Message Relaying Service"
+#define PSNAME "SMRSE"
+#define PFNAME "smrse"
+
+#define TCP_PORT_SMRSE 4321
+
+void proto_register_smrse(void);
+void proto_reg_handoff_smrse(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_smrse = -1;
+static int hf_smrse_reserved = -1;
+static int hf_smrse_tag = -1;
+static int hf_smrse_length = -1;
+static int hf_smrse_Octet_Format = -1;
+#include "packet-smrse-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_smrse = -1;
+#include "packet-smrse-ett.c"
+
+
+#include "packet-smrse-fn.c"
+
+static const value_string tag_vals[] = {
+ { 1, "AliveTest" },
+ { 2, "AliveTestRsp" },
+ { 3, "Bind" },
+ { 4, "BindRsp" },
+ { 5, "BindFail" },
+ { 6, "Unbind" },
+ { 7, "MT" },
+ { 8, "MO" },
+ { 9, "Ack" },
+ { 10, "Error" },
+ { 11, "Alert" },
+ { 0, NULL }
+};
+
+static int
+dissect_smrse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ guint8 reserved, tag;
+ int offset=0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ reserved=tvb_get_guint8(tvb, 0);
+ tag=tvb_get_guint8(tvb, 3);
+
+ if( reserved!= 126 )
+ return 0;
+ if( (tag<1)||(tag>11) )
+ return 0;
+
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_smrse, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_smrse);
+ }
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "SMRSE");
+ col_add_str(pinfo->cinfo, COL_INFO, val_to_str(tag, tag_vals,"Unknown Tag:0x%02x"));
+
+ proto_tree_add_item(tree, hf_smrse_reserved, tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_smrse_length, tvb, 1, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_smrse_tag, tvb, 3, 1, ENC_BIG_ENDIAN);
+
+ switch(tag){
+ case 1:
+ case 2:
+ offset=4;
+ break;
+ case 3:
+ offset=dissect_smrse_SMR_Bind(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ case 4:
+ offset=dissect_smrse_SMR_Bind_Confirm(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ case 5:
+ offset=dissect_smrse_SMR_Bind_Failure(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ case 6:
+ offset=dissect_smrse_SMR_Unbind(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ case 7:
+ offset=dissect_smrse_RPDataMT(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ case 8:
+ offset=dissect_smrse_RPDataMO(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ case 9:
+ offset=dissect_smrse_RPAck(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ case 10:
+ offset=dissect_smrse_RPError(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ case 11:
+ offset=dissect_smrse_RPAlertSC(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ break;
+ }
+
+ return offset;
+}
+
+/*--- proto_register_smrse ----------------------------------------------*/
+void proto_register_smrse(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_smrse_reserved, {
+ "Reserved", "smrse.reserved", FT_UINT8, BASE_DEC,
+ NULL, 0, "Reserved byte, must be 126", HFILL }},
+ { &hf_smrse_tag, {
+ "Tag", "smrse.tag", FT_UINT8, BASE_DEC,
+ VALS(tag_vals), 0, NULL, HFILL }},
+ { &hf_smrse_length, {
+ "Length", "smrse.length", FT_UINT16, BASE_DEC,
+ NULL, 0, "Length of SMRSE PDU", HFILL }},
+ { &hf_smrse_Octet_Format,
+ { "octet-Format", "smrse.octet_Format",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "SMS-Address/address-value/octet-format", HFILL }},
+
+#include "packet-smrse-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_smrse,
+#include "packet-smrse-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_smrse = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_smrse, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_smrse -------------------------------------------*/
+void proto_reg_handoff_smrse(void) {
+ dissector_handle_t smrse_handle;
+
+ smrse_handle = create_dissector_handle(dissect_smrse, proto_smrse);
+ dissector_add_uint("tcp.port",TCP_PORT_SMRSE, smrse_handle);
+}
+
diff --git a/epan/dissectors/asn1/smrse/packet-smrse-template.h b/epan/dissectors/asn1/smrse/packet-smrse-template.h
new file mode 100644
index 0000000000..aacf5cd24d
--- /dev/null
+++ b/epan/dissectors/asn1/smrse/packet-smrse-template.h
@@ -0,0 +1,30 @@
+/* packet-smrse.h
+ * Routines for SMRSE Short Message Relay Service packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_SMRSE_H
+#define PACKET_SMRSE_H
+
+/*#include "packet-smrse-exp.h"*/
+
+#endif /* PACKET_SMRSE_H */
+
diff --git a/epan/dissectors/asn1/smrse/smrse.cnf b/epan/dissectors/asn1/smrse/smrse.cnf
new file mode 100644
index 0000000000..7aec8fd20e
--- /dev/null
+++ b/epan/dissectors/asn1/smrse/smrse.cnf
@@ -0,0 +1,49 @@
+# smrse.cnf
+# SMRSE conformation file
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.NO_EMIT
+SemiOctetString
+#.END
+
+#.PDU
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.FN_BODY SMS-Address/address-value/octet-format
+ char *strp,tmpstr[21];
+ guint32 i, start_offset;
+ gint8 ber_class;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+ static char n2a[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
+
+ start_offset=offset;
+
+ /* skip the tag and length */
+ offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ if(len>10){
+ len=10;
+ }
+ strp=tmpstr;
+ for(i=0;i<len;i++){
+ *strp++=n2a[tvb_get_guint8(tvb, offset)&0x0f];
+ *strp++=n2a[(tvb_get_guint8(tvb, offset)>>4)&0x0f];
+ offset++;
+ }
+ *strp=0;
+
+ proto_tree_add_string(tree, hf_smrse_Octet_Format, tvb, start_offset, offset-start_offset, tmpstr);
+
+ return offset;
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/snmp/CMakeLists.txt b/epan/dissectors/asn1/snmp/CMakeLists.txt
new file mode 100644
index 0000000000..3b8ec5cb29
--- /dev/null
+++ b/epan/dissectors/asn1/snmp/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME snmp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/snmp/Makefile.am b/epan/dissectors/asn1/snmp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/snmp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/snmp/Makefile.common b/epan/dissectors/asn1/snmp/Makefile.common
new file mode 100644
index 0000000000..e9fc6ae01d
--- /dev/null
+++ b/epan/dissectors/asn1/snmp/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=snmp
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/snmp/Makefile.nmake b/epan/dissectors/asn1/snmp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/snmp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c
new file mode 100644
index 0000000000..f5a6b6eda8
--- /dev/null
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c
@@ -0,0 +1,2660 @@
+/* packet-snmp.c
+ * Routines for SNMP (simple network management protocol)
+ * Copyright (C) 1998 Didier Jorand
+ *
+ * See RFC 1157 for SNMPv1.
+ *
+ * See RFCs 1901, 1905, and 1906 for SNMPv2c.
+ *
+ * See RFCs 1905, 1906, 1909, and 1910 for SNMPv2u [historic].
+ *
+ * See RFCs 2570-2576 for SNMPv3
+ * Updated to use the asn2wrs compiler made by Tomas Kukosa
+ * Copyright (C) 2005 - 2006 Anders Broman [AT] ericsson.com
+ *
+ * See RFC 3414 for User-based Security Model for SNMPv3
+ * See RFC 3826 for (AES) Cipher Algorithm in the SNMP USM
+ * See RFC 2578 for Structure of Management Information Version 2 (SMIv2)
+ * Copyright (C) 2007 Luis E. Garcia Ontanon <luis@ontanon.org>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * Some stuff from:
+ *
+ * GXSNMP -- An snmp mangament application
+ * Copyright (C) 1998 Gregory McLean & Jochen Friedrich
+ * Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#if 0
+#include <stdio.h>
+#define D(args) do {printf args; fflush(stdout); } while(0)
+#endif
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/strutil.h>
+#include <epan/conversation.h>
+#include <epan/etypes.h>
+#include <epan/prefs.h>
+#include <epan/sminmpec.h>
+#include <epan/next_tvb.h>
+#include <epan/uat.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+#include <epan/oids.h>
+#include <wsutil/sha1.h>
+#include <wsutil/md5.h>
+#include "packet-ipx.h"
+#include "packet-hpext.h"
+#include "packet-ber.h"
+#include "packet-snmp.h"
+
+#include <wsutil/wsgcrypt.h>
+
+/* Take a pointer that may be null and return a pointer that's not null
+ by turning null pointers into pointers to the above null string,
+ and, if the argument pointer wasn't null, make sure we handle
+ non-printable characters in the string by escaping them. */
+#define SAFE_STRING(s, l) (((s) != NULL) ? format_text((s), (l)) : "")
+
+#define PNAME "Simple Network Management Protocol"
+#define PSNAME "SNMP"
+#define PFNAME "snmp"
+
+#define UDP_PORT_SNMP 161
+#define UDP_PORT_SNMP_TRAP 162
+#define TCP_PORT_SNMP 161
+#define TCP_PORT_SNMP_TRAP 162
+#define TCP_PORT_SMUX 199
+#define UDP_PORT_SNMP_PATROL 8161
+
+/* Initialize the protocol and registered fields */
+static int proto_snmp = -1;
+static int proto_smux = -1;
+
+static gboolean display_oid = TRUE;
+static gboolean snmp_var_in_tree = TRUE;
+
+void proto_register_snmp(void);
+void proto_reg_handoff_snmp(void);
+void proto_register_smux(void);
+void proto_reg_handoff_smux(void);
+
+static gboolean snmp_usm_auth_md5(snmp_usm_params_t* p, guint8**, guint*, gchar const**);
+static gboolean snmp_usm_auth_sha1(snmp_usm_params_t* p, guint8**, guint*, gchar const**);
+
+static tvbuff_t* snmp_usm_priv_des(snmp_usm_params_t*, tvbuff_t*, gchar const**);
+static tvbuff_t* snmp_usm_priv_aes128(snmp_usm_params_t*, tvbuff_t*, gchar const**);
+static tvbuff_t* snmp_usm_priv_aes192(snmp_usm_params_t*, tvbuff_t*, gchar const**);
+static tvbuff_t* snmp_usm_priv_aes256(snmp_usm_params_t*, tvbuff_t*, gchar const**);
+
+
+static void snmp_usm_password_to_key_md5(const guint8 *password, guint passwordlen, const guint8 *engineID, guint engineLength, guint8 *key);
+static void snmp_usm_password_to_key_sha1(const guint8 *password, guint passwordlen, const guint8 *engineID, guint engineLength, guint8 *key);
+
+
+static snmp_usm_auth_model_t model_md5 = {snmp_usm_password_to_key_md5, snmp_usm_auth_md5, 16};
+static snmp_usm_auth_model_t model_sha1 = {snmp_usm_password_to_key_sha1, snmp_usm_auth_sha1, SHA1_DIGEST_LEN};
+
+static const value_string auth_types[] = {
+ {0,"MD5"},
+ {1,"SHA1"},
+ {0,NULL}
+};
+static snmp_usm_auth_model_t* auth_models[] = {&model_md5,&model_sha1};
+
+#define PRIV_DES 0
+#define PRIV_AES128 1
+#define PRIV_AES192 2
+#define PRIV_AES256 3
+
+static const value_string priv_types[] = {
+ { PRIV_DES, "DES" },
+ { PRIV_AES128, "AES" },
+ { PRIV_AES192, "AES192" },
+ { PRIV_AES256, "AES256" },
+ { 0, NULL}
+};
+static snmp_usm_decoder_t priv_protos[] = {
+ snmp_usm_priv_des,
+ snmp_usm_priv_aes128,
+ snmp_usm_priv_aes192,
+ snmp_usm_priv_aes256
+};
+
+static snmp_ue_assoc_t* ueas = NULL;
+static guint num_ueas = 0;
+static snmp_ue_assoc_t* localized_ues = NULL;
+static snmp_ue_assoc_t* unlocalized_ues = NULL;
+/****/
+
+/* Variables used for handling enterprise specific trap types */
+typedef struct _snmp_st_assoc_t {
+ char *enterprise;
+ guint trap;
+ char *desc;
+} snmp_st_assoc_t;
+static guint num_specific_traps = 0;
+static snmp_st_assoc_t *specific_traps = NULL;
+static const char *enterprise_oid = NULL;
+static guint generic_trap = 0;
+static guint32 snmp_version = 0;
+
+static snmp_usm_params_t usm_p = {FALSE,FALSE,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,FALSE};
+
+#define TH_AUTH 0x01
+#define TH_CRYPT 0x02
+#define TH_REPORT 0x04
+
+/* desegmentation of SNMP-over-TCP */
+static gboolean snmp_desegment = TRUE;
+
+/* Global variables */
+
+guint32 MsgSecurityModel;
+tvbuff_t *oid_tvb=NULL;
+tvbuff_t *value_tvb=NULL;
+
+static dissector_handle_t snmp_handle;
+static dissector_handle_t data_handle;
+
+static next_tvb_list_t var_list;
+
+static int hf_snmp_v3_flags_auth = -1;
+static int hf_snmp_v3_flags_crypt = -1;
+static int hf_snmp_v3_flags_report = -1;
+
+static int hf_snmp_engineid_conform = -1;
+static int hf_snmp_engineid_enterprise = -1;
+static int hf_snmp_engineid_format = -1;
+static int hf_snmp_engineid_ipv4 = -1;
+static int hf_snmp_engineid_ipv6 = -1;
+static int hf_snmp_engineid_cisco_type = -1;
+static int hf_snmp_engineid_mac = -1;
+static int hf_snmp_engineid_text = -1;
+static int hf_snmp_engineid_time = -1;
+static int hf_snmp_engineid_data = -1;
+static int hf_snmp_decryptedPDU = -1;
+static int hf_snmp_msgAuthentication = -1;
+
+static int hf_snmp_noSuchObject = -1;
+static int hf_snmp_noSuchInstance = -1;
+static int hf_snmp_endOfMibView = -1;
+static int hf_snmp_unSpecified = -1;
+
+static int hf_snmp_integer32_value = -1;
+static int hf_snmp_octetstring_value = -1;
+static int hf_snmp_oid_value = -1;
+static int hf_snmp_null_value = -1;
+static int hf_snmp_ipv4_value = -1;
+static int hf_snmp_ipv6_value = -1;
+static int hf_snmp_anyaddress_value = -1;
+static int hf_snmp_unsigned32_value = -1;
+static int hf_snmp_unknown_value = -1;
+static int hf_snmp_opaque_value = -1;
+static int hf_snmp_nsap_value = -1;
+static int hf_snmp_counter_value = -1;
+static int hf_snmp_timeticks_value = -1;
+static int hf_snmp_big_counter_value = -1;
+static int hf_snmp_gauge32_value = -1;
+
+static int hf_snmp_objectname = -1;
+static int hf_snmp_scalar_instance_index = -1;
+
+static int hf_snmp_var_bind_str = -1;
+static int hf_snmp_agentid_trailer = -1;
+
+#include "packet-snmp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_smux = -1;
+static gint ett_snmp = -1;
+static gint ett_engineid = -1;
+static gint ett_msgFlags = -1;
+static gint ett_encryptedPDU = -1;
+static gint ett_decrypted = -1;
+static gint ett_authParameters = -1;
+static gint ett_internet = -1;
+static gint ett_varbind = -1;
+static gint ett_name = -1;
+static gint ett_value = -1;
+static gint ett_decoding_error = -1;
+
+#include "packet-snmp-ett.c"
+
+static expert_field ei_snmp_failed_decrypted_data_pdu = EI_INIT;
+static expert_field ei_snmp_decrypted_data_bad_formatted = EI_INIT;
+static expert_field ei_snmp_verify_authentication_error = EI_INIT;
+static expert_field ei_snmp_authentication_ok = EI_INIT;
+static expert_field ei_snmp_authentication_error = EI_INIT;
+static expert_field ei_snmp_varbind_not_uni_class_seq = EI_INIT;
+static expert_field ei_snmp_varbind_has_indicator = EI_INIT;
+static expert_field ei_snmp_objectname_not_oid = EI_INIT;
+static expert_field ei_snmp_objectname_has_indicator = EI_INIT;
+static expert_field ei_snmp_value_not_primitive_encoding = EI_INIT;
+static expert_field ei_snmp_invalid_oid = EI_INIT;
+static expert_field ei_snmp_varbind_wrong_tag = EI_INIT;
+static expert_field ei_snmp_varbind_response = EI_INIT;
+static expert_field ei_snmp_no_instance_subid = EI_INIT;
+static expert_field ei_snmp_wrong_num_of_subids = EI_INIT;
+static expert_field ei_snmp_index_suboid_too_short = EI_INIT;
+static expert_field ei_snmp_unimplemented_instance_index = EI_INIT;
+static expert_field ei_snmp_index_suboid_len0 = EI_INIT;
+static expert_field ei_snmp_index_suboid_too_long = EI_INIT;
+static expert_field ei_snmp_index_string_too_long = EI_INIT;
+static expert_field ei_snmp_column_parent_not_row = EI_INIT;
+static expert_field ei_snmp_uint_too_large = EI_INIT;
+static expert_field ei_snmp_int_too_large = EI_INIT;
+static expert_field ei_snmp_integral_value0 = EI_INIT;
+static expert_field ei_snmp_missing_mib = EI_INIT;
+static expert_field ei_snmp_varbind_wrong_length_value = EI_INIT;
+static expert_field ei_snmp_varbind_wrong_class_tag = EI_INIT;
+static expert_field ei_snmp_rfc1910_non_conformant = EI_INIT;
+static expert_field ei_snmp_rfc3411_non_conformant = EI_INIT;
+static expert_field ei_snmp_version_unknown = EI_INIT;
+static expert_field ei_snmp_trap_pdu_obsolete = EI_INIT;
+
+static const true_false_string auth_flags = {
+ "OK",
+ "Failed"
+};
+
+/* Security Models */
+
+#define SNMP_SEC_ANY 0
+#define SNMP_SEC_V1 1
+#define SNMP_SEC_V2C 2
+#define SNMP_SEC_USM 3
+
+static const value_string sec_models[] = {
+ { SNMP_SEC_ANY, "Any" },
+ { SNMP_SEC_V1, "V1" },
+ { SNMP_SEC_V2C, "V2C" },
+ { SNMP_SEC_USM, "USM" },
+ { 0, NULL }
+};
+
+#if 0
+/* SMUX PDU types */
+#define SMUX_MSG_OPEN 0
+#define SMUX_MSG_CLOSE 1
+#define SMUX_MSG_RREQ 2
+#define SMUX_MSG_RRSP 3
+#define SMUX_MSG_SOUT 4
+
+static const value_string smux_types[] = {
+ { SMUX_MSG_OPEN, "Open" },
+ { SMUX_MSG_CLOSE, "Close" },
+ { SMUX_MSG_RREQ, "Registration Request" },
+ { SMUX_MSG_RRSP, "Registration Response" },
+ { SMUX_MSG_SOUT, "Commit Or Rollback" },
+ { 0, NULL }
+};
+#endif
+
+
+#define SNMP_IPA 0 /* IP Address */
+#define SNMP_CNT 1 /* Counter (Counter32) */
+#define SNMP_GGE 2 /* Gauge (Gauge32) */
+#define SNMP_TIT 3 /* TimeTicks */
+#define SNMP_OPQ 4 /* Opaque */
+#define SNMP_NSP 5 /* NsapAddress */
+#define SNMP_C64 6 /* Counter64 */
+#define SNMP_U32 7 /* Uinteger32 */
+
+#define SERR_NSO 0
+#define SERR_NSI 1
+#define SERR_EOM 2
+
+
+dissector_table_t value_sub_dissectors_table;
+
+
+static const gchar *
+snmp_lookup_specific_trap (guint specific_trap)
+{
+ guint i;
+
+ for (i = 0; i < num_specific_traps; i++) {
+ snmp_st_assoc_t *u = &(specific_traps[i]);
+
+ if ((u->trap == specific_trap) &&
+ (strcmp (u->enterprise, enterprise_oid) == 0))
+ {
+ return u->desc;
+ }
+ }
+
+ return NULL;
+}
+
+static int
+dissect_snmp_variable_string(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_)
+{
+
+ proto_tree_add_item(tree, hf_snmp_var_bind_str, tvb, 0, -1, ENC_ASCII|ENC_NA);
+
+ return tvb_captured_length(tvb);
+}
+
+/*
+DateAndTime ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d"
+ STATUS current
+ DESCRIPTION
+ "A date-time specification.
+
+ field octets contents range
+ ----- ------ -------- -----
+ 1 1-2 year* 0..65536
+ 2 3 month 1..12
+ 3 4 day 1..31
+ 4 5 hour 0..23
+ 5 6 minutes 0..59
+ 6 7 seconds 0..60
+ (use 60 for leap-second)
+ 7 8 deci-seconds 0..9
+ 8 9 direction from UTC '+' / '-'
+ 9 10 hours from UTC* 0..13
+ 10 11 minutes from UTC 0..59
+
+ * Notes:
+ - the value of year is in network-byte order
+ - daylight saving time in New Zealand is +13
+
+ For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be
+ displayed as:
+
+ 1992-5-26,13:30:15.0,-4:0
+
+ Note that if only local time is known, then timezone
+ information (fields 8-10) is not present."
+ SYNTAX OCTET STRING (SIZE (8 | 11))
+*/
+static proto_item *
+dissect_snmp_variable_date_and_time(proto_tree *tree,int hfid, tvbuff_t *tvb, int offset, int length)
+{
+ guint16 year;
+ guint8 month;
+ guint8 day;
+ guint8 hour;
+ guint8 minutes;
+ guint8 seconds;
+ guint8 deci_seconds;
+ guint8 hour_from_utc;
+ guint8 min_from_utc;
+ gchar *str;
+
+ year = tvb_get_ntohs(tvb,offset);
+ month = tvb_get_guint8(tvb,offset+2);
+ day = tvb_get_guint8(tvb,offset+3);
+ hour = tvb_get_guint8(tvb,offset+4);
+ minutes = tvb_get_guint8(tvb,offset+5);
+ seconds = tvb_get_guint8(tvb,offset+6);
+ deci_seconds = tvb_get_guint8(tvb,offset+7);
+ if(length > 8){
+ hour_from_utc = tvb_get_guint8(tvb,offset+9);
+ min_from_utc = tvb_get_guint8(tvb,offset+10);
+
+ str = wmem_strdup_printf(wmem_packet_scope(),
+ "%u-%u-%u, %u:%u:%u.%u UTC %s%u:%u",
+ year,
+ month,
+ day,
+ hour,
+ minutes,
+ seconds,
+ deci_seconds,
+ tvb_get_string_enc(wmem_packet_scope(),tvb,offset+8,1,ENC_ASCII|ENC_NA),
+ hour_from_utc,
+ min_from_utc);
+ }else{
+ str = wmem_strdup_printf(wmem_packet_scope(),
+ "%u-%u-%u, %u:%u:%u.%u",
+ year,
+ month,
+ day,
+ hour,
+ minutes,
+ seconds,
+ deci_seconds);
+ }
+
+ return proto_tree_add_string(tree, hfid, tvb, offset, length, str);
+
+}
+
+/*
+ * dissect_snmp_VarBind
+ * this routine dissects variable bindings, looking for the oid information in our oid reporsitory
+ * to format and add the value adequatelly.
+ *
+ * The choice to handwrite this code instead of using the asn compiler is to avoid having tons
+ * of uses of global variables distributed in very different parts of the code.
+ * Other than that there's a cosmetic thing: the tree from ASN generated code would be so
+ * convoluted due to the nesting of CHOICEs in the definition of VarBind/value.
+ *
+ * XXX: the length of this function (~400 lines) is an aberration!
+ * oid_key_t:key_type could become a series of callbacks instead of an enum
+ * the (! oid_info_is_ok) switch could be made into an array (would be slower)
+ *
+
+ NetworkAddress ::= CHOICE { internet IpAddress }
+ IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4))
+ TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295)
+ Integer32 ::= INTEGER (-2147483648..2147483647)
+ ObjectName ::= OBJECT IDENTIFIER
+ Counter32 ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295)
+ Gauge32 ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295)
+ Unsigned32 ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295)
+ Integer-value ::= INTEGER (-2147483648..2147483647)
+ Integer32 ::= INTEGER (-2147483648..2147483647)
+ ObjectID-value ::= OBJECT IDENTIFIER
+ Empty ::= NULL
+ TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295)
+ Opaque ::= [APPLICATION 4] IMPLICIT OCTET STRING
+ Counter64 ::= [APPLICATION 6] IMPLICIT INTEGER (0..18446744073709551615)
+
+ ObjectSyntax ::= CHOICE {
+ simple SimpleSyntax,
+ application-wide ApplicationSyntax
+ }
+
+ SimpleSyntax ::= CHOICE {
+ integer-value Integer-value,
+ string-value String-value,
+ objectID-value ObjectID-value,
+ empty Empty
+ }
+
+ ApplicationSyntax ::= CHOICE {
+ ipAddress-value IpAddress,
+ counter-value Counter32,
+ timeticks-value TimeTicks,
+ arbitrary-value Opaque,
+ big-counter-value Counter64,
+ unsigned-integer-value Unsigned32
+ }
+
+ ValueType ::= CHOICE {
+ value ObjectSyntax,
+ unSpecified NULL,
+ noSuchObject[0] IMPLICIT NULL,
+ noSuchInstance[1] IMPLICIT NULL,
+ endOfMibView[2] IMPLICIT NULL
+ }
+
+ VarBind ::= SEQUENCE {
+ name ObjectName,
+ valueType ValueType
+ }
+
+ */
+
+static int
+dissect_snmp_VarBind(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
+ asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_)
+{
+ int seq_offset, name_offset, value_offset, value_start;
+ guint32 seq_len, name_len, value_len;
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ gboolean ind;
+ guint32* subids;
+ guint8* oid_bytes;
+ oid_info_t* oid_info = NULL;
+ guint oid_matched, oid_left;
+ proto_item *pi_name, *pi_varbind, *pi_value = NULL;
+ proto_tree *pt, *pt_varbind, *pt_name, *pt_value;
+ char label[ITEM_LABEL_LENGTH];
+ const char* repr = NULL;
+ const char* info_oid = NULL;
+ char* valstr;
+ int hfid = -1;
+ int min_len = 0, max_len = 0;
+ gboolean oid_info_is_ok;
+ const char* oid_string = NULL;
+ enum {BER_NO_ERROR, BER_WRONG_LENGTH, BER_WRONG_TAG} format_error = BER_NO_ERROR;
+
+ seq_offset = offset;
+
+ /* first have the VarBind's sequence header */
+ offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset = dissect_ber_length(actx->pinfo, tree, tvb, offset, &seq_len, &ind);
+
+ if (!pc && ber_class==BER_CLASS_UNI && tag==BER_UNI_TAG_SEQUENCE) {
+ proto_item* pi;
+ pt = proto_tree_add_subtree(tree, tvb, seq_offset, seq_len + (offset - seq_offset),
+ ett_decoding_error, &pi, "VarBind must be an universal class sequence");
+ expert_add_info(actx->pinfo, pi, &ei_snmp_varbind_not_uni_class_seq);
+ return dissect_unknown_ber(actx->pinfo, tvb, seq_offset, pt);
+ }
+
+ if (ind) {
+ proto_item* pi;
+ pt = proto_tree_add_subtree(tree, tvb, seq_offset, seq_len + (offset - seq_offset),
+ ett_decoding_error, &pi, "Indicator must be clear in VarBind");
+ expert_add_info(actx->pinfo, pi, &ei_snmp_varbind_has_indicator);
+ return dissect_unknown_ber(actx->pinfo, tvb, seq_offset, pt);
+ }
+
+ /* we add the varbind tree root with a dummy label we'll fill later on */
+ pt_varbind = proto_tree_add_subtree(tree,tvb,offset,seq_len,ett_varbind,&pi_varbind,"VarBind");
+ *label = '\0';
+
+ seq_len += offset - seq_offset;
+
+ /* then we have the ObjectName's header */
+
+ offset = dissect_ber_identifier(actx->pinfo, pt_varbind, tvb, offset, &ber_class, &pc, &tag);
+ name_offset = offset = dissect_ber_length(actx->pinfo, pt_varbind, tvb, offset, &name_len, &ind);
+
+ if (! ( !pc && ber_class==BER_CLASS_UNI && tag==BER_UNI_TAG_OID) ) {
+ proto_item* pi;
+ pt = proto_tree_add_subtree(tree, tvb, seq_offset, seq_len,
+ ett_decoding_error, &pi, "ObjectName must be an OID in primitive encoding");
+ expert_add_info(actx->pinfo, pi, &ei_snmp_objectname_not_oid);
+ return dissect_unknown_ber(actx->pinfo, tvb, seq_offset, pt);
+ }
+
+ if (ind) {
+ proto_item* pi;
+ pt = proto_tree_add_subtree(tree, tvb, seq_offset, seq_len,
+ ett_decoding_error, &pi, "Indicator must be clear in ObjectName");
+ expert_add_info(actx->pinfo, pi, &ei_snmp_objectname_has_indicator);
+ return dissect_unknown_ber(actx->pinfo, tvb, seq_offset, pt);
+ }
+
+ pi_name = proto_tree_add_item(pt_varbind,hf_snmp_objectname,tvb,name_offset,name_len,ENC_NA);
+ pt_name = proto_item_add_subtree(pi_name,ett_name);
+
+ offset += name_len;
+ value_start = offset;
+ /* then we have the value's header */
+ offset = dissect_ber_identifier(actx->pinfo, pt_varbind, tvb, offset, &ber_class, &pc, &tag);
+ value_offset = dissect_ber_length(actx->pinfo, pt_varbind, tvb, offset, &value_len, &ind);
+
+ if (! (!pc) ) {
+ proto_item* pi;
+ pt = proto_tree_add_subtree(pt_varbind, tvb, value_start, value_len,
+ ett_decoding_error, &pi, "the value must be in primitive encoding");
+ expert_add_info(actx->pinfo, pi, &ei_snmp_value_not_primitive_encoding);
+ return dissect_unknown_ber(actx->pinfo, tvb, value_start, pt);
+ }
+
+ /* Now, we know where everithing is */
+
+ /* fetch ObjectName and its relative oid_info */
+ oid_bytes = (guint8*)tvb_memdup(wmem_packet_scope(), tvb, name_offset, name_len);
+ oid_info = oid_get_from_encoded(wmem_packet_scope(), oid_bytes, name_len, &subids, &oid_matched, &oid_left);
+
+ add_oid_debug_subtree(oid_info,pt_name);
+
+ if (!subids) {
+ proto_item* pi;
+
+ repr = oid_encoded2string(wmem_packet_scope(), oid_bytes, name_len);
+ pt = proto_tree_add_subtree_format(pt_name,tvb, 0, 0, ett_decoding_error, &pi, "invalid oid: %s", repr);
+ expert_add_info_format(actx->pinfo, pi, &ei_snmp_invalid_oid, "invalid oid: %s", repr);
+ return dissect_unknown_ber(actx->pinfo, tvb, name_offset, pt);
+ }
+
+ if (oid_matched+oid_left) {
+ oid_string = oid_subid2string(wmem_packet_scope(), subids,oid_matched+oid_left);
+ }
+
+ if (ber_class == BER_CLASS_CON) {
+ /* if we have an error value just add it and get out the way ASAP */
+ proto_item* pi;
+ const char* note;
+
+ if (value_len != 0) {
+ min_len = max_len = 0;
+ format_error = BER_WRONG_LENGTH;
+ }
+
+ switch (tag) {
+ case SERR_NSO:
+ hfid = hf_snmp_noSuchObject;
+ note = "noSuchObject";
+ break;
+ case SERR_NSI:
+ hfid = hf_snmp_noSuchInstance;
+ note = "noSuchInstance";
+ break;
+ case SERR_EOM:
+ hfid = hf_snmp_endOfMibView;
+ note = "endOfMibView";
+ break;
+ default: {
+ pt = proto_tree_add_subtree_format(pt_varbind,tvb,0,0,ett_decoding_error,&pi,
+ "Wrong tag for Error Value: expected 0, 1, or 2 but got: %d",tag);
+ expert_add_info(actx->pinfo, pi, &ei_snmp_varbind_wrong_tag);
+ return dissect_unknown_ber(actx->pinfo, tvb, value_start, pt);
+ }
+ }
+
+ pi = proto_tree_add_item(pt_varbind,hfid,tvb,value_offset,value_len,ENC_BIG_ENDIAN);
+ expert_add_info_format(actx->pinfo, pi, &ei_snmp_varbind_response, "%s",note);
+ g_strlcpy (label, note, ITEM_LABEL_LENGTH);
+ goto set_label;
+ }
+
+ /* now we'll try to figure out which are the indexing sub-oids and whether the oid we know about is the one oid we have to use */
+ switch (oid_info->kind) {
+ case OID_KIND_SCALAR:
+ if (oid_left == 1) {
+ /* OK: we got the instance sub-id */
+ proto_tree_add_uint64(pt_name,hf_snmp_scalar_instance_index,tvb,name_offset,name_len,subids[oid_matched]);
+ oid_info_is_ok = TRUE;
+ goto indexing_done;
+ } else if (oid_left == 0) {
+ if (ber_class == BER_CLASS_UNI && tag == BER_UNI_TAG_NULL) {
+ /* unSpecified does not require an instance sub-id add the new value and get off the way! */
+ pi_value = proto_tree_add_item(pt_varbind,hf_snmp_unSpecified,tvb,value_offset,value_len,ENC_NA);
+ goto set_label;
+ } else {
+ proto_tree_add_expert(pt_name,actx->pinfo,&ei_snmp_no_instance_subid,tvb,0,0);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+ } else {
+ proto_tree_add_expert_format(pt_name,actx->pinfo,&ei_snmp_wrong_num_of_subids,tvb,0,0,"A scalar should have only one instance sub-id this has: %d",oid_left);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+ break;
+ case OID_KIND_COLUMN:
+ if ( oid_info->parent->kind == OID_KIND_ROW) {
+ oid_key_t* k = oid_info->parent->key;
+ guint key_start = oid_matched;
+ guint key_len = oid_left;
+ oid_info_is_ok = TRUE;
+
+ if ( key_len == 0 && ber_class == BER_CLASS_UNI && tag == BER_UNI_TAG_NULL) {
+ /* unSpecified does not require an instance sub-id add the new value and get off the way! */
+ pi_value = proto_tree_add_item(pt_varbind,hf_snmp_unSpecified,tvb,value_offset,value_len,ENC_NA);
+ goto set_label;
+ }
+
+ if (k) {
+ for (;k;k = k->next) {
+ guint suboid_len;
+
+ if (key_start >= oid_matched+oid_left) {
+ proto_tree_add_expert(pt_name,actx->pinfo,&ei_snmp_index_suboid_too_short,tvb,0,0);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+
+ switch(k->key_type) {
+ case OID_KEY_TYPE_WRONG: {
+ proto_tree_add_expert(pt_name,actx->pinfo,&ei_snmp_unimplemented_instance_index,tvb,0,0);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+ case OID_KEY_TYPE_INTEGER: {
+ if (IS_FT_INT(k->ft_type)) {
+ proto_tree_add_int(pt_name,k->hfid,tvb,name_offset,name_len,(guint)subids[key_start]);
+ } else { /* if it's not an unsigned int let proto_tree_add_uint throw a warning */
+ proto_tree_add_uint64(pt_name,k->hfid,tvb,name_offset,name_len,(guint)subids[key_start]);
+ }
+ key_start++;
+ key_len--;
+ continue; /* k->next */
+ }
+ case OID_KEY_TYPE_IMPLIED_OID:
+ suboid_len = key_len;
+
+ goto show_oid_index;
+
+ case OID_KEY_TYPE_OID: {
+ guint8* suboid_buf;
+ guint suboid_buf_len;
+ guint32* suboid;
+
+ suboid_len = subids[key_start++];
+ key_len--;
+
+show_oid_index:
+ suboid = &(subids[key_start]);
+
+ if( suboid_len == 0 ) {
+ proto_tree_add_expert(pt_name,actx->pinfo,&ei_snmp_index_suboid_len0,tvb,0,0);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+
+ if( key_len < suboid_len ) {
+ proto_tree_add_expert(pt_name,actx->pinfo,&ei_snmp_index_suboid_too_long,tvb,0,0);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+
+ suboid_buf_len = oid_subid2encoded(wmem_packet_scope(), suboid_len, suboid, &suboid_buf);
+
+ DISSECTOR_ASSERT(suboid_buf_len);
+
+ proto_tree_add_oid(pt_name,k->hfid,tvb,name_offset, suboid_buf_len, suboid_buf);
+
+ key_start += suboid_len;
+ key_len -= suboid_len + 1;
+ continue; /* k->next */
+ }
+ default: {
+ guint8* buf;
+ guint buf_len;
+ guint32* suboid;
+ guint i;
+
+
+ switch (k->key_type) {
+ case OID_KEY_TYPE_IPADDR:
+ suboid = &(subids[key_start]);
+ buf_len = 4;
+ break;
+ case OID_KEY_TYPE_IMPLIED_STRING:
+ case OID_KEY_TYPE_IMPLIED_BYTES:
+ case OID_KEY_TYPE_ETHER:
+ suboid = &(subids[key_start]);
+ buf_len = key_len;
+ break;
+ default:
+ buf_len = k->num_subids;
+ suboid = &(subids[key_start]);
+
+ if(!buf_len) {
+ buf_len = *suboid++;
+ key_len--;
+ key_start++;
+ }
+ break;
+ }
+
+ if( key_len < buf_len ) {
+ proto_tree_add_expert(pt_name,actx->pinfo,&ei_snmp_index_string_too_long,tvb,0,0);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+
+ buf = (guint8*)wmem_alloc(wmem_packet_scope(), buf_len+1);
+ for (i = 0; i < buf_len; i++)
+ buf[i] = (guint8)suboid[i];
+ buf[i] = '\0';
+
+ switch(k->key_type) {
+ case OID_KEY_TYPE_STRING:
+ case OID_KEY_TYPE_IMPLIED_STRING:
+ proto_tree_add_string(pt_name,k->hfid,tvb,name_offset,buf_len, buf);
+ break;
+ case OID_KEY_TYPE_BYTES:
+ case OID_KEY_TYPE_NSAP:
+ case OID_KEY_TYPE_IMPLIED_BYTES:
+ proto_tree_add_bytes(pt_name,k->hfid,tvb,name_offset,buf_len, buf);
+ break;
+ case OID_KEY_TYPE_ETHER:
+ proto_tree_add_ether(pt_name,k->hfid,tvb,name_offset,buf_len, buf);
+ break;
+ case OID_KEY_TYPE_IPADDR: {
+ guint32* ipv4_p = (guint32*)buf;
+ proto_tree_add_ipv4(pt_name,k->hfid,tvb,name_offset,buf_len, *ipv4_p);
+ }
+ break;
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ break;
+ }
+
+ key_start += buf_len;
+ key_len -= buf_len;
+ continue; /* k->next*/
+ }
+ }
+ }
+ goto indexing_done;
+ } else {
+ proto_tree_add_expert(pt_name,actx->pinfo,&ei_snmp_unimplemented_instance_index,tvb,0,0);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+ } else {
+ proto_tree_add_expert(pt_name,actx->pinfo,&ei_snmp_column_parent_not_row,tvb,0,0);
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+ default: {
+/* proto_tree_add_expert (pt_name,actx->pinfo,PI_MALFORMED, PI_WARN,tvb,0,0,"This kind OID should have no value"); */
+ oid_info_is_ok = FALSE;
+ goto indexing_done;
+ }
+ }
+indexing_done:
+
+ if (oid_info_is_ok && oid_info->value_type) {
+ if (ber_class == BER_CLASS_UNI && tag == BER_UNI_TAG_NULL) {
+ pi_value = proto_tree_add_item(pt_varbind,hf_snmp_unSpecified,tvb,value_offset,value_len,ENC_NA);
+ } else {
+ /* Provide a tree_item to attach errors to, if needed. */
+ pi_value = pi_name;
+
+ if ((oid_info->value_type->ber_class != BER_CLASS_ANY) &&
+ (ber_class != oid_info->value_type->ber_class))
+ format_error = BER_WRONG_TAG;
+ else if ((oid_info->value_type->ber_tag != BER_TAG_ANY) &&
+ (tag != oid_info->value_type->ber_tag))
+ format_error = BER_WRONG_TAG;
+ else {
+ max_len = oid_info->value_type->max_len == -1 ? 0xffffff : oid_info->value_type->max_len;
+ min_len = oid_info->value_type->min_len;
+
+ if ((int)value_len < min_len || (int)value_len > max_len)
+ format_error = BER_WRONG_LENGTH;
+ }
+
+ if (format_error == BER_NO_ERROR)
+ pi_value = proto_tree_add_item(pt_varbind,oid_info->value_hfid,tvb,value_offset,value_len,ENC_BIG_ENDIAN);
+ }
+ } else {
+ switch(ber_class|(tag<<4)) {
+ case BER_CLASS_UNI|(BER_UNI_TAG_INTEGER<<4):
+ {
+ gint64 val=0;
+ unsigned int int_val_offset = value_offset;
+ unsigned int i;
+
+ max_len = 4; min_len = 1;
+ if (value_len > (guint)max_len || value_len < (guint)min_len) {
+ hfid = hf_snmp_integer32_value;
+ format_error = BER_WRONG_LENGTH;
+ break;
+ }
+
+ if(value_len > 0) {
+ /* extend sign bit */
+ if(tvb_get_guint8(tvb, int_val_offset)&0x80) {
+ val=-1;
+ }
+ for(i=0;i<value_len;i++) {
+ val=(val<<8)|tvb_get_guint8(tvb, int_val_offset);
+ int_val_offset++;
+ }
+ }
+ proto_tree_add_int64(pt_varbind, hf_snmp_integer32_value, tvb,value_offset,value_len, val);
+
+ goto already_added;
+ }
+ case BER_CLASS_UNI|(BER_UNI_TAG_OCTETSTRING<<4):
+ if(oid_info->value_hfid> -1){
+ hfid = oid_info->value_hfid;
+ }else{
+ hfid = hf_snmp_octetstring_value;
+ }
+ break;
+ case BER_CLASS_UNI|(BER_UNI_TAG_OID<<4):
+ max_len = -1; min_len = 1;
+ if (value_len < (guint)min_len) format_error = BER_WRONG_LENGTH;
+ hfid = hf_snmp_oid_value;
+ break;
+ case BER_CLASS_UNI|(BER_UNI_TAG_NULL<<4):
+ max_len = 0; min_len = 0;
+ if (value_len != 0) format_error = BER_WRONG_LENGTH;
+ hfid = hf_snmp_null_value;
+ break;
+ case BER_CLASS_APP: /* | (SNMP_IPA<<4)*/
+ switch(value_len) {
+ case 4: hfid = hf_snmp_ipv4_value; break;
+ case 16: hfid = hf_snmp_ipv6_value; break;
+ default: hfid = hf_snmp_anyaddress_value; break;
+ }
+ break;
+ case BER_CLASS_APP|(SNMP_U32<<4):
+ hfid = hf_snmp_unsigned32_value;
+ break;
+ case BER_CLASS_APP|(SNMP_GGE<<4):
+ hfid = hf_snmp_gauge32_value;
+ break;
+ case BER_CLASS_APP|(SNMP_CNT<<4):
+ hfid = hf_snmp_counter_value;
+ break;
+ case BER_CLASS_APP|(SNMP_TIT<<4):
+ hfid = hf_snmp_timeticks_value;
+ break;
+ case BER_CLASS_APP|(SNMP_OPQ<<4):
+ hfid = hf_snmp_opaque_value;
+ break;
+ case BER_CLASS_APP|(SNMP_NSP<<4):
+ hfid = hf_snmp_nsap_value;
+ break;
+ case BER_CLASS_APP|(SNMP_C64<<4):
+ hfid = hf_snmp_big_counter_value;
+ break;
+ default:
+ hfid = hf_snmp_unknown_value;
+ break;
+ }
+ if (value_len > 8) {
+ /*
+ * Too long for an FT_UINT64 or an FT_INT64.
+ */
+ header_field_info *hfinfo = proto_registrar_get_nth(hfid);
+ if (hfinfo->type == FT_UINT64) {
+ /*
+ * Check if this is an unsigned int64 with
+ * a big value.
+ */
+ if (value_len > 9 || tvb_get_guint8(tvb, value_offset) != 0) {
+ /* It is. Fail. */
+ proto_tree_add_expert_format(pt_varbind,actx->pinfo,&ei_snmp_uint_too_large,tvb,value_offset,value_len,"Integral value too large");
+ goto already_added;
+ }
+ /* Cheat and skip the leading 0 byte */
+ value_len--;
+ value_offset++;
+ } else if (hfinfo->type == FT_INT64) {
+ /*
+ * For now, just reject these.
+ */
+ proto_tree_add_expert_format(pt_varbind,actx->pinfo,&ei_snmp_int_too_large,tvb,value_offset,value_len,"Integral value too large or too small");
+ goto already_added;
+ }
+ } else if (value_len == 0) {
+ /*
+ * X.690 section 8.3.1 "Encoding of an integer value":
+ * "The encoding of an integer value shall be
+ * primitive. The contents octets shall consist of
+ * one or more octets."
+ *
+ * Zero is not "one or more".
+ */
+ header_field_info *hfinfo = proto_registrar_get_nth(hfid);
+ if (hfinfo->type == FT_UINT64 || hfinfo->type == FT_INT64) {
+ proto_tree_add_expert_format(pt_varbind,actx->pinfo,&ei_snmp_integral_value0,tvb,value_offset,value_len,"Integral value is zero-length");
+ goto already_added;
+ }
+ }
+ /* Special case DATE AND TIME */
+ if((oid_info->value_type)&&(oid_info->value_type->keytype == OID_KEY_TYPE_DATE_AND_TIME)&&(value_len > 7)){
+ pi_value = dissect_snmp_variable_date_and_time(pt_varbind, hfid, tvb, value_offset, value_len);
+ }else{
+ pi_value = proto_tree_add_item(pt_varbind,hfid,tvb,value_offset,value_len,ENC_BIG_ENDIAN);
+ }
+ if (format_error != BER_NO_ERROR) {
+ expert_add_info(actx->pinfo, pi_value, &ei_snmp_missing_mib);
+ }
+
+ }
+already_added:
+ pt_value = proto_item_add_subtree(pi_value,ett_value);
+
+ if (value_len > 0 && oid_string) {
+ tvbuff_t* sub_tvb = tvb_new_subset_length(tvb, value_offset, value_len);
+
+ next_tvb_add_string(&var_list, sub_tvb, (snmp_var_in_tree) ? pt_value : NULL, value_sub_dissectors_table, oid_string);
+ }
+
+
+set_label:
+ if (pi_value) proto_item_fill_label(PITEM_FINFO(pi_value), label);
+
+ if (oid_info && oid_info->name) {
+ if (oid_left >= 1) {
+ repr = wmem_strdup_printf(wmem_packet_scope(), "%s.%s (%s)", oid_info->name,
+ oid_subid2string(wmem_packet_scope(), &(subids[oid_matched]),oid_left),
+ oid_subid2string(wmem_packet_scope(), subids,oid_matched+oid_left));
+ info_oid = wmem_strdup_printf(wmem_packet_scope(), "%s.%s", oid_info->name,
+ oid_subid2string(wmem_packet_scope(), &(subids[oid_matched]),oid_left));
+ } else {
+ repr = wmem_strdup_printf(wmem_packet_scope(), "%s (%s)", oid_info->name,
+ oid_subid2string(wmem_packet_scope(), subids,oid_matched));
+ info_oid = oid_info->name;
+ }
+ } else if (oid_string) {
+ repr = wmem_strdup(wmem_packet_scope(), oid_string);
+ info_oid = oid_string;
+ } else {
+ repr = wmem_strdup(wmem_packet_scope(), "[Bad OID]");
+ }
+
+ valstr = strstr(label,": ");
+ valstr = valstr ? valstr+2 : label;
+
+ proto_item_set_text(pi_varbind,"%s: %s",repr,valstr);
+
+ if (display_oid && info_oid) {
+ col_append_fstr (actx->pinfo->cinfo, COL_INFO, " %s", info_oid);
+ }
+
+ switch (format_error) {
+ case BER_WRONG_LENGTH: {
+ proto_item* pi;
+ proto_tree* p_tree = proto_item_add_subtree(pi_value,ett_decoding_error);
+ pt = proto_tree_add_subtree_format(p_tree,tvb,0,0,ett_decoding_error,&pi,
+ "Wrong value length: %u expecting: %u <= len <= %u",
+ value_len, min_len, max_len == -1 ? 0xFFFFFF : max_len);
+ expert_add_info(actx->pinfo, pi, &ei_snmp_varbind_wrong_length_value);
+ return dissect_unknown_ber(actx->pinfo, tvb, value_start, pt);
+ }
+ case BER_WRONG_TAG: {
+ proto_item* pi;
+ proto_tree* p_tree = proto_item_add_subtree(pi_value,ett_decoding_error);
+ pt = proto_tree_add_subtree_format(p_tree,tvb,0,0,ett_decoding_error,&pi,
+ "Wrong class/tag for Value expected: %d,%d got: %d,%d",
+ oid_info->value_type->ber_class, oid_info->value_type->ber_tag,
+ ber_class, tag);
+ expert_add_info(actx->pinfo, pi, &ei_snmp_varbind_wrong_class_tag);
+ return dissect_unknown_ber(actx->pinfo, tvb, value_start, pt);
+ }
+ default:
+ break;
+ }
+
+ return seq_offset + seq_len;
+}
+
+
+#define F_SNMP_ENGINEID_CONFORM 0x80
+#define SNMP_ENGINEID_RFC1910 0x00
+#define SNMP_ENGINEID_RFC3411 0x01
+
+static const true_false_string tfs_snmp_engineid_conform = {
+ "RFC3411 (SNMPv3)",
+ "RFC1910 (Non-SNMPv3)"
+};
+
+#define SNMP_ENGINEID_FORMAT_IPV4 0x01
+#define SNMP_ENGINEID_FORMAT_IPV6 0x02
+#define SNMP_ENGINEID_FORMAT_MACADDRESS 0x03
+#define SNMP_ENGINEID_FORMAT_TEXT 0x04
+#define SNMP_ENGINEID_FORMAT_OCTETS 0x05
+
+static const value_string snmp_engineid_format_vals[] = {
+ { SNMP_ENGINEID_FORMAT_IPV4, "IPv4 address" },
+ { SNMP_ENGINEID_FORMAT_IPV6, "IPv6 address" },
+ { SNMP_ENGINEID_FORMAT_MACADDRESS, "MAC address" },
+ { SNMP_ENGINEID_FORMAT_TEXT, "Text, administratively assigned" },
+ { SNMP_ENGINEID_FORMAT_OCTETS, "Octets, administratively assigned" },
+ { 0, NULL }
+};
+
+#define SNMP_ENGINEID_CISCO_AGENT 0x00
+#define SNMP_ENGINEID_CISCO_MANAGER 0x01
+
+static const value_string snmp_engineid_cisco_type_vals[] = {
+ { SNMP_ENGINEID_CISCO_AGENT, "Agent" },
+ { SNMP_ENGINEID_CISCO_MANAGER, "Manager" },
+ { 0, NULL }
+};
+
+/*
+ * SNMP Engine ID dissection according to RFC 3411 (SnmpEngineID TC)
+ * or historic RFC 1910 (AgentID)
+ */
+int
+dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int offset, int len)
+{
+ proto_item *item = NULL;
+ guint8 conformance, format;
+ guint32 enterpriseid, seconds;
+ nstime_t ts;
+ int len_remain = len;
+
+ /* first bit: engine id conformance */
+ if (len_remain<1) return offset;
+ conformance = ((tvb_get_guint8(tvb, offset)>>7) & 0x01);
+ proto_tree_add_item(tree, hf_snmp_engineid_conform, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ /* 4-byte enterprise number/name */
+ if (len_remain<4) return offset;
+ enterpriseid = tvb_get_ntohl(tvb, offset);
+ if (conformance)
+ enterpriseid -= 0x80000000; /* ignore first bit */
+ proto_tree_add_uint(tree, hf_snmp_engineid_enterprise, tvb, offset, 4, enterpriseid);
+ offset+=4;
+ len_remain-=4;
+
+ switch(conformance) {
+
+ case SNMP_ENGINEID_RFC1910:
+ /* 12-byte AgentID w/ 8-byte trailer */
+ if (len_remain==8) {
+ proto_tree_add_item(tree, hf_snmp_agentid_trailer, tvb, offset, 8, ENC_NA);
+ offset+=8;
+ len_remain-=8;
+ } else {
+ proto_tree_add_expert(tree, pinfo, &ei_snmp_rfc1910_non_conformant, tvb, offset, len_remain);
+ return offset;
+ }
+ break;
+
+ case SNMP_ENGINEID_RFC3411: /* variable length: 5..32 */
+
+ /* 1-byte format specifier */
+ if (len_remain<1) return offset;
+ format = tvb_get_guint8(tvb, offset);
+ item = proto_tree_add_uint_format(tree, hf_snmp_engineid_format, tvb, offset, 1, format, "Engine ID Format: %s (%d)",
+ val_to_str(format, snmp_engineid_format_vals, "Reserved/Enterprise-specific"), format);
+ offset+=1;
+ len_remain-=1;
+
+ switch(format) {
+ case SNMP_ENGINEID_FORMAT_IPV4:
+ /* 4-byte IPv4 address */
+ if (len_remain==4) {
+ proto_tree_add_item(tree, hf_snmp_engineid_ipv4, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset+=4;
+ len_remain=0;
+ }
+ break;
+ case SNMP_ENGINEID_FORMAT_IPV6:
+ /* 16-byte IPv6 address */
+ if (len_remain==16) {
+ proto_tree_add_item(tree, hf_snmp_engineid_ipv6, tvb, offset, 16, ENC_NA);
+ offset+=16;
+ len_remain=0;
+ }
+ break;
+ case SNMP_ENGINEID_FORMAT_MACADDRESS:
+ /* See: https://supportforums.cisco.com/message/3010617#3010617 for details. */
+ if ((enterpriseid==9)&&(len_remain==7)) {
+ proto_tree_add_item(tree, hf_snmp_engineid_cisco_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ len_remain--;
+ }
+ /* 6-byte MAC address */
+ if (len_remain==6) {
+ proto_tree_add_item(tree, hf_snmp_engineid_mac, tvb, offset, 6, ENC_NA);
+ offset+=6;
+ len_remain=0;
+ }
+ break;
+ case SNMP_ENGINEID_FORMAT_TEXT:
+ /* max. 27-byte string, administratively assigned */
+ if (len_remain<=27) {
+ proto_tree_add_item(tree, hf_snmp_engineid_text, tvb, offset, len_remain, ENC_ASCII|ENC_NA);
+ offset+=len_remain;
+ len_remain=0;
+ }
+ break;
+ case 128:
+ /* most common enterprise-specific format: (ucd|net)-snmp random */
+ if ((enterpriseid==2021)||(enterpriseid==8072)) {
+ proto_item_append_text(item, (enterpriseid==2021) ? ": UCD-SNMP Random" : ": Net-SNMP Random");
+ /* demystify: 4B random, 4B epoch seconds */
+ if (len_remain==8) {
+ proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, 4, ENC_NA);
+ seconds = tvb_get_letohl(tvb, offset+4);
+ ts.secs = seconds;
+ ts.nsecs = 0;
+ proto_tree_add_time_format_value(tree, hf_snmp_engineid_time, tvb, offset+4, 4,
+ &ts, "%s",
+ abs_time_secs_to_str(wmem_packet_scope(), seconds, ABSOLUTE_TIME_LOCAL, TRUE));
+ offset+=8;
+ len_remain=0;
+ }
+ break;
+ }
+ /* fall through */
+ case SNMP_ENGINEID_FORMAT_OCTETS:
+ default:
+ /* max. 27 bytes, administratively assigned or unknown format */
+ if (len_remain<=27) {
+ proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, len_remain, ENC_NA);
+ offset+=len_remain;
+ len_remain=0;
+ }
+ break;
+ }
+ }
+
+ if (len_remain>0) {
+ proto_tree_add_expert(tree, pinfo, &ei_snmp_rfc3411_non_conformant, tvb, offset, len_remain);
+ offset+=len_remain;
+ }
+ return offset;
+}
+
+
+static void set_ue_keys(snmp_ue_assoc_t* n ) {
+ guint key_size = n->user.authModel->key_size;
+
+ n->user.authKey.data = (guint8 *)g_malloc(key_size);
+ n->user.authKey.len = key_size;
+ n->user.authModel->pass2key(n->user.authPassword.data,
+ n->user.authPassword.len,
+ n->engine.data,
+ n->engine.len,
+ n->user.authKey.data);
+
+ if (n->priv_proto == PRIV_AES128 || n->priv_proto == PRIV_AES192 || n->priv_proto == PRIV_AES256) {
+ guint need_key_len =
+ (n->priv_proto == PRIV_AES128) ? 16 :
+ (n->priv_proto == PRIV_AES192) ? 24 :
+ (n->priv_proto == PRIV_AES256) ? 32 :
+ 0;
+
+ guint key_len = key_size;
+
+ while (key_len < need_key_len)
+ key_len += key_size;
+
+ n->user.privKey.data = (guint8 *)g_malloc(key_len);
+ n->user.privKey.len = need_key_len;
+
+ n->user.authModel->pass2key(n->user.privPassword.data,
+ n->user.privPassword.len,
+ n->engine.data,
+ n->engine.len,
+ n->user.privKey.data);
+
+ key_len = key_size;
+
+ /* extend key if needed */
+ while (key_len < need_key_len) {
+ n->user.authModel->pass2key(
+ n->user.privKey.data,
+ key_len,
+ n->engine.data,
+ n->engine.len,
+ n->user.privKey.data + key_len);
+
+ key_len += key_size;
+ }
+
+ } else {
+ n->user.privKey.data = (guint8 *)g_malloc(key_size);
+ n->user.privKey.len = key_size;
+ n->user.authModel->pass2key(n->user.privPassword.data,
+ n->user.privPassword.len,
+ n->engine.data,
+ n->engine.len,
+ n->user.privKey.data);
+ }
+}
+
+static snmp_ue_assoc_t*
+ue_dup(snmp_ue_assoc_t* o)
+{
+ snmp_ue_assoc_t* d = (snmp_ue_assoc_t*)g_memdup(o,sizeof(snmp_ue_assoc_t));
+
+ d->user.authModel = o->user.authModel;
+
+ d->user.privProtocol = o->user.privProtocol;
+
+ d->user.userName.data = (guint8 *)g_memdup(o->user.userName.data,o->user.userName.len);
+ d->user.userName.len = o->user.userName.len;
+
+ d->user.authPassword.data = o->user.authPassword.data ? (guint8 *)g_memdup(o->user.authPassword.data,o->user.authPassword.len) : NULL;
+ d->user.authPassword.len = o->user.authPassword.len;
+
+ d->user.privPassword.data = o->user.privPassword.data ? (guint8 *)g_memdup(o->user.privPassword.data,o->user.privPassword.len) : NULL;
+ d->user.privPassword.len = o->user.privPassword.len;
+
+ d->engine.len = o->engine.len;
+
+ if (d->engine.len) {
+ d->engine.data = (guint8 *)g_memdup(o->engine.data,o->engine.len);
+ set_ue_keys(d);
+ }
+
+ return d;
+
+}
+
+static void*
+snmp_users_copy_cb(void* dest, const void* orig, size_t len _U_)
+{
+ const snmp_ue_assoc_t* o = (const snmp_ue_assoc_t*)orig;
+ snmp_ue_assoc_t* d = (snmp_ue_assoc_t*)dest;
+
+ d->auth_model = o->auth_model;
+ d->user.authModel = auth_models[o->auth_model];
+
+ d->priv_proto = o->priv_proto;
+ d->user.privProtocol = priv_protos[o->priv_proto];
+
+ d->user.userName.data = (guint8*)g_memdup(o->user.userName.data,o->user.userName.len);
+ d->user.userName.len = o->user.userName.len;
+
+ d->user.authPassword.data = o->user.authPassword.data ? (guint8*)g_memdup(o->user.authPassword.data,o->user.authPassword.len) : NULL;
+ d->user.authPassword.len = o->user.authPassword.len;
+
+ d->user.privPassword.data = o->user.privPassword.data ? (guint8*)g_memdup(o->user.privPassword.data,o->user.privPassword.len) : NULL;
+ d->user.privPassword.len = o->user.privPassword.len;
+
+ d->engine.len = o->engine.len;
+ if (o->engine.data) {
+ d->engine.data = (guint8*)g_memdup(o->engine.data,o->engine.len);
+ }
+
+ d->user.authKey.data = o->user.authKey.data ? (guint8*)g_memdup(o->user.authKey.data,o->user.authKey.len) : NULL;
+ d->user.authKey.len = o->user.authKey.len;
+
+ d->user.privKey.data = o->user.privKey.data ? (guint8*)g_memdup(o->user.privKey.data,o->user.privKey.len) : NULL;
+ d->user.privKey.len = o->user.privKey.len;
+
+ return d;
+}
+
+static void
+snmp_users_free_cb(void* p)
+{
+ snmp_ue_assoc_t* ue = (snmp_ue_assoc_t*)p;
+ g_free(ue->user.userName.data);
+ g_free(ue->user.authPassword.data);
+ g_free(ue->user.privPassword.data);
+ g_free(ue->user.authKey.data);
+ g_free(ue->user.privKey.data);
+ g_free(ue->engine.data);
+}
+
+static gboolean
+snmp_users_update_cb(void* p _U_, char** err)
+{
+ snmp_ue_assoc_t* ue = (snmp_ue_assoc_t*)p;
+ GString* es = g_string_new("");
+ unsigned int i;
+
+ *err = NULL;
+
+ if (num_ueas == 0)
+ /* Nothing to update */
+ return FALSE;
+
+ if (! ue->user.userName.len)
+ g_string_append_printf(es,"no userName\n");
+
+ for (i=0; i<num_ueas-1; i++) {
+ snmp_ue_assoc_t* u = &(ueas[i]);
+
+ /* RFC 3411 section 5 */
+ if ((u->engine.len > 0) && (u->engine.len < 5 || u->engine.len > 32)) {
+ g_string_append_printf(es, "Invalid engineId length (%u). Must be between 5 and 32 (10 and 64 hex digits)\n", u->engine.len);
+ }
+
+
+ if ( u->user.userName.len == ue->user.userName.len
+ && u->engine.len == ue->engine.len && (u != ue)) {
+
+ if (u->engine.len > 0 && memcmp( u->engine.data, ue->engine.data, u->engine.len ) == 0) {
+ if ( memcmp( u->user.userName.data, ue->user.userName.data, ue->user.userName.len ) == 0 ) {
+ /* XXX: make a string for the engineId */
+ g_string_append_printf(es,"Duplicate key (userName='%s')\n",ue->user.userName.data);
+ }
+ }
+
+ if (u->engine.len == 0) {
+ if ( memcmp( u->user.userName.data, ue->user.userName.data, ue->user.userName.len ) == 0 ) {
+ g_string_append_printf(es,"Duplicate key (userName='%s' engineId=NONE)\n",ue->user.userName.data);
+ }
+ }
+ }
+ }
+
+ if (es->len) {
+ es = g_string_truncate(es,es->len-1);
+ *err = g_string_free(es, FALSE);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+free_ue_cache(snmp_ue_assoc_t **cache)
+{
+ static snmp_ue_assoc_t *a, *nxt;
+
+ for (a = *cache; a; a = nxt) {
+ nxt = a->next;
+ snmp_users_free_cb(a);
+ g_free(a);
+ }
+
+ *cache = NULL;
+}
+
+#define CACHE_INSERT(c,a) if (c) { snmp_ue_assoc_t* t = c; c = a; c->next = t; } else { c = a; a->next = NULL; }
+
+static void
+init_ue_cache(void)
+{
+ guint i;
+
+ for (i = 0; i < num_ueas; i++) {
+ snmp_ue_assoc_t* a = ue_dup(&(ueas[i]));
+
+ if (a->engine.len) {
+ CACHE_INSERT(localized_ues,a);
+
+ } else {
+ CACHE_INSERT(unlocalized_ues,a);
+ }
+
+ }
+}
+
+static void
+cleanup_ue_cache(void)
+{
+ free_ue_cache(&localized_ues);
+ free_ue_cache(&unlocalized_ues);
+}
+
+/* Called when the user applies changes to UAT preferences. */
+static void
+renew_ue_cache(void)
+{
+ cleanup_ue_cache();
+ init_ue_cache();
+}
+
+
+static snmp_ue_assoc_t*
+localize_ue( snmp_ue_assoc_t* o, const guint8* engine, guint engine_len )
+{
+ snmp_ue_assoc_t* n = (snmp_ue_assoc_t*)g_memdup(o,sizeof(snmp_ue_assoc_t));
+
+ n->engine.data = (guint8*)g_memdup(engine,engine_len);
+ n->engine.len = engine_len;
+
+ set_ue_keys(n);
+
+ return n;
+}
+
+
+#define localized_match(a,u,ul,e,el) \
+ ( a->user.userName.len == ul \
+ && a->engine.len == el \
+ && memcmp( a->user.userName.data, u, ul ) == 0 \
+ && memcmp( a->engine.data, e, el ) == 0 )
+
+#define unlocalized_match(a,u,l) \
+ ( a->user.userName.len == l && memcmp( a->user.userName.data, u, l) == 0 )
+
+static snmp_ue_assoc_t*
+get_user_assoc(tvbuff_t* engine_tvb, tvbuff_t* user_tvb)
+{
+ static snmp_ue_assoc_t* a;
+ guint given_username_len;
+ guint8* given_username;
+ guint given_engine_len;
+ guint8* given_engine;
+
+ if ( ! (localized_ues || unlocalized_ues ) ) return NULL;
+
+ if (! ( user_tvb && engine_tvb ) ) return NULL;
+
+ given_username_len = tvb_captured_length(user_tvb);
+ given_engine_len = tvb_captured_length(engine_tvb);
+ if (! ( given_engine_len && given_username_len ) ) return NULL;
+ given_username = (guint8*)tvb_memdup(wmem_packet_scope(),user_tvb,0,-1);
+ given_engine = (guint8*)tvb_memdup(wmem_packet_scope(),engine_tvb,0,-1);
+
+ for (a = localized_ues; a; a = a->next) {
+ if ( localized_match(a, given_username, given_username_len, given_engine, given_engine_len) ) {
+ return a;
+ }
+ }
+
+ for (a = unlocalized_ues; a; a = a->next) {
+ if ( unlocalized_match(a, given_username, given_username_len) ) {
+ snmp_ue_assoc_t* n = localize_ue( a, given_engine, given_engine_len );
+ CACHE_INSERT(localized_ues,n);
+ return n;
+ }
+ }
+
+ return NULL;
+}
+
+static gboolean
+snmp_usm_auth_md5(snmp_usm_params_t* p, guint8** calc_auth_p, guint* calc_auth_len_p, gchar const** error)
+{
+ gint msg_len;
+ guint8* msg;
+ guint auth_len;
+ guint8* auth;
+ guint8* key;
+ guint key_len;
+ guint8 *calc_auth;
+ guint start;
+ guint end;
+ guint i;
+
+ if (!p->auth_tvb) {
+ *error = "No Authenticator";
+ return FALSE;
+ }
+
+ key = p->user_assoc->user.authKey.data;
+ key_len = p->user_assoc->user.authKey.len;
+
+ if (! key ) {
+ *error = "User has no authKey";
+ return FALSE;
+ }
+
+
+ auth_len = tvb_captured_length(p->auth_tvb);
+
+ if (auth_len != 12) {
+ *error = "Authenticator length wrong";
+ return FALSE;
+ }
+
+ msg_len = tvb_captured_length(p->msg_tvb);
+ if (msg_len <= 0) {
+ *error = "Not enough data remaining";
+ return FALSE;
+ }
+ msg = (guint8*)tvb_memdup(wmem_packet_scope(),p->msg_tvb,0,msg_len);
+
+
+ auth = (guint8*)tvb_memdup(wmem_packet_scope(),p->auth_tvb,0,auth_len);
+
+ start = p->auth_offset - p->start_offset;
+ end = start + auth_len;
+
+ /* fill the authenticator with zeros */
+ for ( i = start ; i < end ; i++ ) {
+ msg[i] = '\0';
+ }
+
+ calc_auth = (guint8*)wmem_alloc(wmem_packet_scope(), 16);
+
+ md5_hmac(msg, msg_len, key, key_len, calc_auth);
+
+ if (calc_auth_p) *calc_auth_p = calc_auth;
+ if (calc_auth_len_p) *calc_auth_len_p = 12;
+
+ return ( memcmp(auth,calc_auth,12) != 0 ) ? FALSE : TRUE;
+}
+
+
+static gboolean
+snmp_usm_auth_sha1(snmp_usm_params_t* p _U_, guint8** calc_auth_p, guint* calc_auth_len_p, gchar const** error _U_)
+{
+ gint msg_len;
+ guint8* msg;
+ guint auth_len;
+ guint8* auth;
+ guint8* key;
+ guint key_len;
+ guint8 *calc_auth;
+ guint start;
+ guint end;
+ guint i;
+
+ if (!p->auth_tvb) {
+ *error = "No Authenticator";
+ return FALSE;
+ }
+
+ key = p->user_assoc->user.authKey.data;
+ key_len = p->user_assoc->user.authKey.len;
+
+ if (! key ) {
+ *error = "User has no authKey";
+ return FALSE;
+ }
+
+
+ auth_len = tvb_captured_length(p->auth_tvb);
+
+
+ if (auth_len != 12) {
+ *error = "Authenticator length wrong";
+ return FALSE;
+ }
+
+ msg_len = tvb_captured_length(p->msg_tvb);
+ if (msg_len <= 0) {
+ *error = "Not enough data remaining";
+ return FALSE;
+ }
+ msg = (guint8*)tvb_memdup(wmem_packet_scope(),p->msg_tvb,0,msg_len);
+
+ auth = (guint8*)tvb_memdup(wmem_packet_scope(),p->auth_tvb,0,auth_len);
+
+ start = p->auth_offset - p->start_offset;
+ end = start + auth_len;
+
+ /* fill the authenticator with zeros */
+ for ( i = start ; i < end ; i++ ) {
+ msg[i] = '\0';
+ }
+
+ calc_auth = (guint8*)wmem_alloc(wmem_packet_scope(), SHA1_DIGEST_LEN);
+
+ sha1_hmac(key, key_len, msg, msg_len, calc_auth);
+
+ if (calc_auth_p) *calc_auth_p = calc_auth;
+ if (calc_auth_len_p) *calc_auth_len_p = 12;
+
+ return ( memcmp(auth,calc_auth,12) != 0 ) ? FALSE : TRUE;
+}
+
+static tvbuff_t*
+snmp_usm_priv_des(snmp_usm_params_t* p _U_, tvbuff_t* encryptedData _U_, gchar const** error _U_)
+{
+#ifdef HAVE_LIBGCRYPT
+ gcry_error_t err;
+ gcry_cipher_hd_t hd = NULL;
+
+ guint8* cleartext;
+ guint8* des_key = p->user_assoc->user.privKey.data; /* first 8 bytes */
+ guint8* pre_iv = &(p->user_assoc->user.privKey.data[8]); /* last 8 bytes */
+ guint8* salt;
+ gint salt_len;
+ gint cryptgrm_len;
+ guint8* cryptgrm;
+ tvbuff_t* clear_tvb;
+ guint8 iv[8];
+ guint i;
+
+
+ salt_len = tvb_captured_length(p->priv_tvb);
+
+ if (salt_len != 8) {
+ *error = "decryptionError: msgPrivacyParameters length != 8";
+ return NULL;
+ }
+
+ salt = (guint8*)tvb_memdup(wmem_packet_scope(),p->priv_tvb,0,salt_len);
+
+ /*
+ The resulting "salt" is XOR-ed with the pre-IV to obtain the IV.
+ */
+ for (i=0; i<8; i++) {
+ iv[i] = pre_iv[i] ^ salt[i];
+ }
+
+ cryptgrm_len = tvb_captured_length(encryptedData);
+
+ if ((cryptgrm_len <= 0) || (cryptgrm_len % 8)) {
+ *error = "decryptionError: the length of the encrypted data is not a multiple of 8 octets";
+ return NULL;
+ }
+
+ cryptgrm = (guint8*)tvb_memdup(wmem_packet_scope(),encryptedData,0,-1);
+
+ cleartext = (guint8*)g_malloc(cryptgrm_len);
+
+ err = gcry_cipher_open(&hd, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_CBC, 0);
+ if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
+
+ err = gcry_cipher_setiv(hd, iv, 8);
+ if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
+
+ err = gcry_cipher_setkey(hd,des_key,8);
+ if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
+
+ err = gcry_cipher_decrypt(hd, cleartext, cryptgrm_len, cryptgrm, cryptgrm_len);
+ if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
+
+ gcry_cipher_close(hd);
+
+ clear_tvb = tvb_new_child_real_data(encryptedData, cleartext, cryptgrm_len, cryptgrm_len);
+ tvb_set_free_cb(clear_tvb, g_free);
+
+ return clear_tvb;
+
+on_gcry_error:
+ g_free(cleartext);
+ *error = (const gchar *)gpg_strerror(err);
+ if (hd) gcry_cipher_close(hd);
+ return NULL;
+#else
+ *error = "libgcrypt not present, cannot decrypt";
+ return NULL;
+#endif
+}
+
+#ifdef HAVE_LIBGCRYPT
+static tvbuff_t*
+snmp_usm_priv_aes_common(snmp_usm_params_t* p, tvbuff_t* encryptedData, gchar const** error, int algo)
+{
+ gcry_error_t err;
+ gcry_cipher_hd_t hd = NULL;
+
+ guint8* cleartext;
+ guint8* aes_key = p->user_assoc->user.privKey.data;
+ int aes_key_len = p->user_assoc->user.privKey.len;
+ guint8 iv[16];
+ gint priv_len;
+ gint cryptgrm_len;
+ guint8* cryptgrm;
+ tvbuff_t* clear_tvb;
+
+ priv_len = tvb_captured_length(p->priv_tvb);
+
+ if (priv_len != 8) {
+ *error = "decryptionError: msgPrivacyParameters length != 8";
+ return NULL;
+ }
+
+ iv[0] = (p->boots & 0xff000000) >> 24;
+ iv[1] = (p->boots & 0x00ff0000) >> 16;
+ iv[2] = (p->boots & 0x0000ff00) >> 8;
+ iv[3] = (p->boots & 0x000000ff);
+ iv[4] = (p->snmp_time & 0xff000000) >> 24;
+ iv[5] = (p->snmp_time & 0x00ff0000) >> 16;
+ iv[6] = (p->snmp_time & 0x0000ff00) >> 8;
+ iv[7] = (p->snmp_time & 0x000000ff);
+ tvb_memcpy(p->priv_tvb,&(iv[8]),0,8);
+
+ cryptgrm_len = tvb_captured_length(encryptedData);
+ if (cryptgrm_len <= 0) {
+ *error = "Not enough data remaining";
+ return NULL;
+ }
+ cryptgrm = (guint8*)tvb_memdup(wmem_packet_scope(),encryptedData,0,-1);
+
+ cleartext = (guint8*)g_malloc(cryptgrm_len);
+
+ err = gcry_cipher_open(&hd, algo, GCRY_CIPHER_MODE_CFB, 0);
+ if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
+
+ err = gcry_cipher_setiv(hd, iv, 16);
+ if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
+
+ err = gcry_cipher_setkey(hd,aes_key,aes_key_len);
+ if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
+
+ err = gcry_cipher_decrypt(hd, cleartext, cryptgrm_len, cryptgrm, cryptgrm_len);
+ if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
+
+ gcry_cipher_close(hd);
+
+ clear_tvb = tvb_new_child_real_data(encryptedData, cleartext, cryptgrm_len, cryptgrm_len);
+ tvb_set_free_cb(clear_tvb, g_free);
+
+ return clear_tvb;
+
+on_gcry_error:
+ g_free(cleartext);
+ *error = (const gchar *)gpg_strerror(err);
+ if (hd) gcry_cipher_close(hd);
+ return NULL;
+}
+#endif
+
+static tvbuff_t*
+snmp_usm_priv_aes128(snmp_usm_params_t* p _U_, tvbuff_t* encryptedData _U_, gchar const** error)
+{
+#ifdef HAVE_LIBGCRYPT
+ return snmp_usm_priv_aes_common(p, encryptedData, error, GCRY_CIPHER_AES);
+#else
+ *error = "libgcrypt not present, cannot decrypt";
+ return NULL;
+#endif
+}
+
+static tvbuff_t*
+snmp_usm_priv_aes192(snmp_usm_params_t* p _U_, tvbuff_t* encryptedData _U_, gchar const** error)
+{
+#ifdef HAVE_LIBGCRYPT
+ return snmp_usm_priv_aes_common(p, encryptedData, error, GCRY_CIPHER_AES192);
+#else
+ *error = "libgcrypt not present, cannot decrypt";
+ return NULL;
+#endif
+}
+
+static tvbuff_t*
+snmp_usm_priv_aes256(snmp_usm_params_t* p _U_, tvbuff_t* encryptedData _U_, gchar const** error)
+{
+#ifdef HAVE_LIBGCRYPT
+ return snmp_usm_priv_aes_common(p, encryptedData, error, GCRY_CIPHER_AES256);
+#else
+ *error = "libgcrypt not present, cannot decrypt";
+ return NULL;
+#endif
+}
+
+static gboolean
+check_ScopedPdu(tvbuff_t* tvb)
+{
+ int offset;
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ int hoffset, eoffset;
+ guint32 len;
+
+ offset = get_ber_identifier(tvb, 0, &ber_class, &pc, &tag);
+ offset = get_ber_length(tvb, offset, NULL, NULL);
+
+ if ( ! (((ber_class!=BER_CLASS_APP) && (ber_class!=BER_CLASS_PRI) )
+ && ( (!pc) || (ber_class!=BER_CLASS_UNI) || (tag!=BER_UNI_TAG_ENUMERATED) )
+ )) return FALSE;
+
+ if((tvb_get_guint8(tvb, offset)==0)&&(tvb_get_guint8(tvb, offset+1)==0))
+ return TRUE;
+
+ hoffset = offset;
+
+ offset = get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ offset = get_ber_length(tvb, offset, &len, NULL);
+ eoffset = offset + len;
+
+ if (eoffset <= hoffset) return FALSE;
+
+ if ((ber_class!=BER_CLASS_APP)&&(ber_class!=BER_CLASS_PRI))
+ if( (ber_class!=BER_CLASS_UNI)
+ ||((tag<BER_UNI_TAG_NumericString)&&(tag!=BER_UNI_TAG_OCTETSTRING)&&(tag!=BER_UNI_TAG_UTF8String)) )
+ return FALSE;
+
+ return TRUE;
+
+}
+
+#include "packet-snmp-fn.c"
+
+
+guint
+dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
+ proto_tree *tree, int proto, gint ett, gboolean is_tcp)
+{
+
+ guint length_remaining;
+ gint8 ber_class;
+ gboolean pc, ind = 0;
+ gint32 tag;
+ guint32 len;
+ guint message_length;
+ int start_offset = offset;
+ guint32 version = 0;
+ tvbuff_t *next_tvb;
+
+ proto_tree *snmp_tree = NULL;
+ proto_item *item = NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+
+ usm_p.msg_tvb = tvb;
+ usm_p.start_offset = tvb_offset_from_real_beginning(tvb);
+ usm_p.engine_tvb = NULL;
+ usm_p.user_tvb = NULL;
+ usm_p.auth_item = NULL;
+ usm_p.auth_tvb = NULL;
+ usm_p.auth_offset = 0;
+ usm_p.priv_tvb = NULL;
+ usm_p.user_assoc = NULL;
+ usm_p.authenticated = FALSE;
+ usm_p.encrypted = FALSE;
+ usm_p.boots = 0;
+ usm_p.snmp_time = 0;
+ usm_p.authOK = FALSE;
+
+ /*
+ * This will throw an exception if we don't have any data left.
+ * That's what we want. (See "tcp_dissect_pdus()", which is
+ * similar, but doesn't have to deal with ASN.1.
+ * XXX - can we make "tcp_dissect_pdus()" provide enough
+ * information to the "get_pdu_len" routine so that we could
+ * have that routine deal with ASN.1, and just use
+ * "tcp_dissect_pdus()"?)
+ */
+ length_remaining = tvb_ensure_captured_length_remaining(tvb, offset);
+
+ /* NOTE: we have to parse the message piece by piece, since the
+ * capture length may be less than the message length: a 'global'
+ * parsing is likely to fail.
+ */
+
+ /*
+ * If this is SNMP-over-TCP, we might have to do reassembly
+ * in order to read the "Sequence Of" header.
+ */
+ if (is_tcp && snmp_desegment && pinfo->can_desegment) {
+ /*
+ * This is TCP, and we should, and can, do reassembly.
+ *
+ * Is the "Sequence Of" header split across segment
+ * boundaries? We require at least 6 bytes for the
+ * header, which allows for a 4-byte length (ASN.1
+ * BER).
+ */
+ if (length_remaining < 6) {
+ /*
+ * Yes. Tell the TCP dissector where the data
+ * for this message starts in the data it handed
+ * us and that we need "some more data." Don't tell
+ * it exactly how many bytes we need because if/when
+ * we ask for even more (after the header) that will
+ * break reassembly.
+ */
+ pinfo->desegment_offset = offset;
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
+
+ /*
+ * Return 0, which means "I didn't dissect anything
+ * because I don't have enough data - we need
+ * to desegment".
+ */
+ return 0;
+ }
+ }
+
+ /*
+ * OK, try to read the "Sequence Of" header; this gets the total
+ * length of the SNMP message.
+ */
+ offset = get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ /*Get the total octet length of the SNMP data*/
+ offset = get_ber_length(tvb, offset, &len, &ind);
+ message_length = len + offset;
+
+ /*Get the SNMP version data*/
+ /*offset =*/ dissect_ber_integer(FALSE, &asn1_ctx, 0, tvb, offset, -1, &version);
+
+
+ /*
+ * If this is SNMP-over-TCP, we might have to do reassembly
+ * to get all of this message.
+ */
+ if (is_tcp && snmp_desegment && pinfo->can_desegment) {
+ /*
+ * Yes - is the message split across segment boundaries?
+ */
+ if (length_remaining < message_length) {
+ /*
+ * Yes. Tell the TCP dissector where the data
+ * for this message starts in the data it handed
+ * us, and how many more bytes we need, and
+ * return.
+ */
+ pinfo->desegment_offset = start_offset;
+ pinfo->desegment_len =
+ message_length - length_remaining;
+
+ /*
+ * Return 0, which means "I didn't dissect anything
+ * because I don't have enough data - we need
+ * to desegment".
+ */
+ return 0;
+ }
+ }
+
+ next_tvb_init(&var_list);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, proto_get_protocol_short_name(find_protocol_by_id(proto)));
+
+ item = proto_tree_add_item(tree, proto, tvb, start_offset, message_length, ENC_BIG_ENDIAN);
+ snmp_tree = proto_item_add_subtree(item, ett);
+
+ switch (version) {
+ case 0: /* v1 */
+ case 1: /* v2c */
+ offset = dissect_snmp_Message(FALSE , tvb, start_offset, &asn1_ctx, snmp_tree, -1);
+ break;
+ case 2: /* v2u */
+ offset = dissect_snmp_Messagev2u(FALSE , tvb, start_offset, &asn1_ctx, snmp_tree, -1);
+ break;
+ /* v3 */
+ case 3:
+ offset = dissect_snmp_SNMPv3Message(FALSE , tvb, start_offset, &asn1_ctx, snmp_tree, -1);
+ break;
+ default:
+ /*
+ * Return the length remaining in the tvbuff, so
+ * if this is SNMP-over-TCP, our caller thinks there's
+ * nothing left to dissect.
+ */
+ expert_add_info(pinfo, item, &ei_snmp_version_unknown);
+ return length_remaining;
+ break;
+ }
+
+ /* There may be appended data after the SNMP data, so treat as raw
+ * data which needs to be dissected in case of UDP as UDP is PDU oriented.
+ */
+ if((!is_tcp) && (length_remaining > (guint)offset)) {
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
+ call_dissector(data_handle, next_tvb, pinfo, tree);
+ } else {
+ next_tvb_call(&var_list, pinfo, tree, NULL, data_handle);
+ }
+
+ return offset;
+}
+
+static gint
+dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ conversation_t *conversation;
+ int offset;
+ gint8 tmp_class;
+ gboolean tmp_pc;
+ gint32 tmp_tag;
+ guint32 tmp_length;
+ gboolean tmp_ind;
+
+ /*
+ * See if this looks like SNMP or not. if not, return 0 so
+ * wireshark can try some other dissector instead.
+ */
+ /* All SNMP packets are BER encoded and consist of a SEQUENCE
+ * that spans the entire PDU. The first item is an INTEGER that
+ * has the values 0-2 (version 1-3).
+ * if not it is not snmp.
+ */
+ /* SNMP starts with a SEQUENCE */
+ offset = get_ber_identifier(tvb, 0, &tmp_class, &tmp_pc, &tmp_tag);
+ if((tmp_class!=BER_CLASS_UNI)||(tmp_tag!=BER_UNI_TAG_SEQUENCE)) {
+ return 0;
+ }
+ /* then comes a length which spans the rest of the tvb */
+ offset = get_ber_length(tvb, offset, &tmp_length, &tmp_ind);
+ /* if(tmp_length!=(guint32)tvb_reported_length_remaining(tvb, offset)) {
+ * Loosen the heuristic a bit to handle the case where data has intentionally
+ * been added after the snmp PDU ( UDP case)
+ */
+ if ( pinfo->ptype == PT_UDP ) {
+ if(tmp_length>(guint32)tvb_reported_length_remaining(tvb, offset)) {
+ return 0;
+ }
+ }else{
+ if(tmp_length!=(guint32)tvb_reported_length_remaining(tvb, offset)) {
+ return 0;
+ }
+ }
+ /* then comes an INTEGER (version)*/
+ get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
+ if((tmp_class!=BER_CLASS_UNI)||(tmp_tag!=BER_UNI_TAG_INTEGER)) {
+ return 0;
+ }
+ /* do we need to test that version is 0 - 2 (version1-3) ? */
+
+
+ /*
+ * The first SNMP packet goes to the SNMP port; the second one
+ * may come from some *other* port, but goes back to the same
+ * IP address and port as the ones from which the first packet
+ * came; all subsequent packets presumably go between those two
+ * IP addresses and ports.
+ *
+ * If this packet went to the SNMP port, we check to see if
+ * there's already a conversation with one address/port pair
+ * matching the source IP address and port of this packet,
+ * the other address matching the destination IP address of this
+ * packet, and any destination port.
+ *
+ * If not, we create one, with its address 1/port 1 pair being
+ * the source address/port of this packet, its address 2 being
+ * the destination address of this packet, and its port 2 being
+ * wildcarded, and give it the SNMP dissector as a dissector.
+ */
+ if (pinfo->destport == UDP_PORT_SNMP) {
+ conversation = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst, PT_UDP,
+ pinfo->srcport, 0, NO_PORT_B);
+ if( (conversation == NULL) || (conversation_get_dissector(conversation, pinfo->num)!=snmp_handle) ) {
+ conversation = conversation_new(pinfo->num, &pinfo->src, &pinfo->dst, PT_UDP,
+ pinfo->srcport, 0, NO_PORT2);
+ conversation_set_dissector(conversation, snmp_handle);
+ }
+ }
+
+ return dissect_snmp_pdu(tvb, 0, pinfo, tree, proto_snmp, ett_snmp, FALSE);
+}
+
+static int
+dissect_snmp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ int offset = 0;
+ guint message_len;
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0) {
+ message_len = dissect_snmp_pdu(tvb, 0, pinfo, tree, proto_snmp, ett_snmp, TRUE);
+ if (message_len == 0) {
+ /*
+ * We don't have all the data for that message,
+ * so we need to do desegmentation;
+ * "dissect_snmp_pdu()" has set that up.
+ */
+ break;
+ }
+ offset += message_len;
+ }
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_smux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ proto_tree *smux_tree = NULL;
+ proto_item *item = NULL;
+
+ next_tvb_init(&var_list);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "SMUX");
+
+ item = proto_tree_add_item(tree, proto_smux, tvb, 0, -1, ENC_NA);
+ smux_tree = proto_item_add_subtree(item, ett_smux);
+
+ return dissect_SMUX_PDUs_PDU(tvb, pinfo, smux_tree, data);
+}
+
+
+/*
+ MD5 Password to Key Algorithm
+ from RFC 3414 A.2.1
+*/
+static void
+snmp_usm_password_to_key_md5(const guint8 *password, guint passwordlen,
+ const guint8 *engineID, guint engineLength,
+ guint8 *key)
+{
+ md5_state_t MD;
+ guint8 *cp, password_buf[64];
+ guint32 password_index = 0;
+ guint32 count = 0, i;
+ guint8 key1[16];
+ md5_init(&MD); /* initialize MD5 */
+
+ /**********************************************/
+ /* Use while loop until we've done 1 Megabyte */
+ /**********************************************/
+ while (count < 1048576) {
+ cp = password_buf;
+ if (passwordlen != 0) {
+ for (i = 0; i < 64; i++) {
+ /*************************************************/
+ /* Take the next octet of the password, wrapping */
+ /* to the beginning of the password as necessary.*/
+ /*************************************************/
+ *cp++ = password[password_index++ % passwordlen];
+ }
+ } else {
+ *cp = 0;
+ }
+ md5_append(&MD, password_buf, 64);
+ count += 64;
+ }
+ md5_finish(&MD, key1); /* tell MD5 we're done */
+
+ /*****************************************************/
+ /* Now localize the key with the engineID and pass */
+ /* through MD5 to produce final key */
+ /* We ignore invalid engineLengths here. More strict */
+ /* checking is done in snmp_users_update_cb. */
+ /*****************************************************/
+
+ md5_init(&MD);
+ md5_append(&MD, key1, 16);
+ md5_append(&MD, engineID, engineLength);
+ md5_append(&MD, key1, 16);
+ md5_finish(&MD, key);
+
+ return;
+}
+
+
+
+
+/*
+ SHA1 Password to Key Algorithm COPIED from RFC 3414 A.2.2
+ */
+
+static void
+snmp_usm_password_to_key_sha1(const guint8 *password, guint passwordlen,
+ const guint8 *engineID, guint engineLength,
+ guint8 *key)
+{
+ sha1_context SH;
+ guint8 *cp, password_buf[64];
+ guint32 password_index = 0;
+ guint32 count = 0, i;
+
+ sha1_starts(&SH); /* initialize SHA */
+
+ /**********************************************/
+ /* Use while loop until we've done 1 Megabyte */
+ /**********************************************/
+ while (count < 1048576) {
+ cp = password_buf;
+ if (passwordlen != 0) {
+ for (i = 0; i < 64; i++) {
+ /*************************************************/
+ /* Take the next octet of the password, wrapping */
+ /* to the beginning of the password as necessary.*/
+ /*************************************************/
+ *cp++ = password[password_index++ % passwordlen];
+ }
+ } else {
+ *cp = 0;
+ }
+ sha1_update (&SH, password_buf, 64);
+ count += 64;
+ }
+ sha1_finish(&SH, key);
+
+ /*****************************************************/
+ /* Now localize the key with the engineID and pass */
+ /* through SHA to produce final key */
+ /* We ignore invalid engineLengths here. More strict */
+ /* checking is done in snmp_users_update_cb. */
+ /*****************************************************/
+
+ sha1_starts(&SH);
+ sha1_update(&SH, key, SHA1_DIGEST_LEN);
+ sha1_update(&SH, engineID, engineLength);
+ sha1_update(&SH, key, SHA1_DIGEST_LEN);
+ sha1_finish(&SH, key);
+ return;
+ }
+
+
+static void
+process_prefs(void)
+{
+}
+
+UAT_LSTRING_CB_DEF(snmp_users,userName,snmp_ue_assoc_t,user.userName.data,user.userName.len)
+UAT_LSTRING_CB_DEF(snmp_users,authPassword,snmp_ue_assoc_t,user.authPassword.data,user.authPassword.len)
+UAT_LSTRING_CB_DEF(snmp_users,privPassword,snmp_ue_assoc_t,user.privPassword.data,user.privPassword.len)
+UAT_BUFFER_CB_DEF(snmp_users,engine_id,snmp_ue_assoc_t,engine.data,engine.len)
+UAT_VS_DEF(snmp_users,auth_model,snmp_ue_assoc_t,guint,0,"MD5")
+UAT_VS_DEF(snmp_users,priv_proto,snmp_ue_assoc_t,guint,0,"DES")
+
+static void *
+snmp_specific_trap_copy_cb(void *dest, const void *orig, size_t len _U_)
+{
+ snmp_st_assoc_t *u = (snmp_st_assoc_t *)dest;
+ const snmp_st_assoc_t *o = (const snmp_st_assoc_t *)orig;
+
+ u->enterprise = g_strdup(o->enterprise);
+ u->trap = o->trap;
+ u->desc = g_strdup(o->desc);
+
+ return dest;
+}
+
+static void
+snmp_specific_trap_free_cb(void *r)
+{
+ snmp_st_assoc_t *u = (snmp_st_assoc_t *)r;
+
+ g_free(u->enterprise);
+ g_free(u->desc);
+}
+
+UAT_CSTRING_CB_DEF(specific_traps, enterprise, snmp_st_assoc_t)
+UAT_DEC_CB_DEF(specific_traps, trap, snmp_st_assoc_t)
+UAT_CSTRING_CB_DEF(specific_traps, desc, snmp_st_assoc_t)
+
+ /*--- proto_register_snmp -------------------------------------------*/
+void proto_register_snmp(void) {
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_snmp_v3_flags_auth,
+ { "Authenticated", "snmp.v3.flags.auth", FT_BOOLEAN, 8,
+ TFS(&tfs_set_notset), TH_AUTH, NULL, HFILL }},
+ { &hf_snmp_v3_flags_crypt,
+ { "Encrypted", "snmp.v3.flags.crypt", FT_BOOLEAN, 8,
+ TFS(&tfs_set_notset), TH_CRYPT, NULL, HFILL }},
+ { &hf_snmp_v3_flags_report,
+ { "Reportable", "snmp.v3.flags.report", FT_BOOLEAN, 8,
+ TFS(&tfs_set_notset), TH_REPORT, NULL, HFILL }},
+ { &hf_snmp_engineid_conform, {
+ "Engine ID Conformance", "snmp.engineid.conform", FT_BOOLEAN, 8,
+ TFS(&tfs_snmp_engineid_conform), F_SNMP_ENGINEID_CONFORM, "Engine ID RFC3411 Conformance", HFILL }},
+ { &hf_snmp_engineid_enterprise, {
+ "Engine Enterprise ID", "snmp.engineid.enterprise", FT_UINT32, BASE_DEC|BASE_EXT_STRING,
+ &sminmpec_values_ext, 0, NULL, HFILL }},
+ { &hf_snmp_engineid_format, {
+ "Engine ID Format", "snmp.engineid.format", FT_UINT8, BASE_DEC,
+ VALS(snmp_engineid_format_vals), 0, NULL, HFILL }},
+ { &hf_snmp_engineid_ipv4, {
+ "Engine ID Data: IPv4 address", "snmp.engineid.ipv4", FT_IPv4, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_engineid_ipv6, {
+ "Engine ID Data: IPv6 address", "snmp.engineid.ipv6", FT_IPv6, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_engineid_cisco_type, {
+ "Engine ID Data: Cisco type", "snmp.engineid.cisco.type", FT_UINT8, BASE_HEX,
+ VALS(snmp_engineid_cisco_type_vals), 0, NULL, HFILL }},
+ { &hf_snmp_engineid_mac, {
+ "Engine ID Data: MAC address", "snmp.engineid.mac", FT_ETHER, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_engineid_text, {
+ "Engine ID Data: Text", "snmp.engineid.text", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_engineid_time, {
+ "Engine ID Data: Creation Time", "snmp.engineid.time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_engineid_data, {
+ "Engine ID Data", "snmp.engineid.data", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_msgAuthentication, {
+ "Authentication", "snmp.v3.auth", FT_BOOLEAN, BASE_NONE,
+ TFS(&auth_flags), 0, NULL, HFILL }},
+ { &hf_snmp_decryptedPDU, {
+ "Decrypted ScopedPDU", "snmp.decrypted_pdu", FT_BYTES, BASE_NONE,
+ NULL, 0, "Decrypted PDU", HFILL }},
+ { &hf_snmp_noSuchObject, {
+ "noSuchObject", "snmp.noSuchObject", FT_NONE, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_noSuchInstance, {
+ "noSuchInstance", "snmp.noSuchInstance", FT_NONE, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_endOfMibView, {
+ "endOfMibView", "snmp.endOfMibView", FT_NONE, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_unSpecified, {
+ "unSpecified", "snmp.unSpecified", FT_NONE, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+ { &hf_snmp_integer32_value, {
+ "Value (Integer32)", "snmp.value.int", FT_INT64, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_octetstring_value, {
+ "Value (OctetString)", "snmp.value.octets", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_oid_value, {
+ "Value (OID)", "snmp.value.oid", FT_OID, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_null_value, {
+ "Value (Null)", "snmp.value.null", FT_NONE, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_ipv4_value, {
+ "Value (IpAddress)", "snmp.value.ipv4", FT_IPv4, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_ipv6_value, {
+ "Value (IpAddress)", "snmp.value.ipv6", FT_IPv6, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_anyaddress_value, {
+ "Value (IpAddress)", "snmp.value.addr", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_unsigned32_value, {
+ "Value (Unsigned32)", "snmp.value.u32", FT_INT64, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_gauge32_value, {
+ "Value (Gauge32)", "snmp.value.g32", FT_INT64, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_unknown_value, {
+ "Value (Unknown)", "snmp.value.unk", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_counter_value, {
+ "Value (Counter32)", "snmp.value.counter", FT_UINT64, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_big_counter_value, {
+ "Value (Counter64)", "snmp.value.counter", FT_UINT64, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_nsap_value, {
+ "Value (NSAP)", "snmp.value.nsap", FT_UINT64, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_timeticks_value, {
+ "Value (Timeticks)", "snmp.value.timeticks", FT_UINT64, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_opaque_value, {
+ "Value (Opaque)", "snmp.value.opaque", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_objectname, {
+ "Object Name", "snmp.name", FT_OID, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_scalar_instance_index, {
+ "Scalar Instance Index", "snmp.name.index", FT_UINT64, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_var_bind_str, {
+ "Variable-binding-string", "snmp.var-bind_str", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_snmp_agentid_trailer, {
+ "AgentID Trailer", "snmp.agentid_trailer", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+
+
+#include "packet-snmp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_snmp,
+ &ett_engineid,
+ &ett_msgFlags,
+ &ett_encryptedPDU,
+ &ett_decrypted,
+ &ett_authParameters,
+ &ett_internet,
+ &ett_varbind,
+ &ett_name,
+ &ett_value,
+ &ett_decoding_error,
+#include "packet-snmp-ettarr.c"
+ };
+ static ei_register_info ei[] = {
+ { &ei_snmp_failed_decrypted_data_pdu, { "snmp.failed_decrypted_data_pdu", PI_MALFORMED, PI_WARN, "Failed to decrypt encryptedPDU", EXPFILL }},
+ { &ei_snmp_decrypted_data_bad_formatted, { "snmp.decrypted_data_bad_formatted", PI_MALFORMED, PI_WARN, "Decrypted data not formatted as expected, wrong key?", EXPFILL }},
+ { &ei_snmp_verify_authentication_error, { "snmp.verify_authentication_error", PI_MALFORMED, PI_ERROR, "Error while verifying Message authenticity", EXPFILL }},
+ { &ei_snmp_authentication_ok, { "snmp.authentication_ok", PI_CHECKSUM, PI_CHAT, "SNMP Authentication OK", EXPFILL }},
+ { &ei_snmp_authentication_error, { "snmp.authentication_error", PI_CHECKSUM, PI_WARN, "SNMP Authentication Error", EXPFILL }},
+ { &ei_snmp_varbind_not_uni_class_seq, { "snmp.varbind.not_uni_class_seq", PI_MALFORMED, PI_WARN, "VarBind is not an universal class sequence", EXPFILL }},
+ { &ei_snmp_varbind_has_indicator, { "snmp.varbind.has_indicator", PI_MALFORMED, PI_WARN, "VarBind has indicator set", EXPFILL }},
+ { &ei_snmp_objectname_not_oid, { "snmp.objectname_not_oid", PI_MALFORMED, PI_WARN, "ObjectName not an OID", EXPFILL }},
+ { &ei_snmp_objectname_has_indicator, { "snmp.objectname_has_indicator", PI_MALFORMED, PI_WARN, "ObjectName has indicator set", EXPFILL }},
+ { &ei_snmp_value_not_primitive_encoding, { "snmp.value_not_primitive_encoding", PI_MALFORMED, PI_WARN, "value not in primitive encoding", EXPFILL }},
+ { &ei_snmp_invalid_oid, { "snmp.invalid_oid", PI_MALFORMED, PI_WARN, "invalid oid", EXPFILL }},
+ { &ei_snmp_varbind_wrong_tag, { "snmp.varbind.wrong_tag", PI_MALFORMED, PI_WARN, "Wrong tag for SNMP VarBind error value", EXPFILL }},
+ { &ei_snmp_varbind_response, { "snmp.varbind.response", PI_RESPONSE_CODE, PI_NOTE, "Response", EXPFILL }},
+ { &ei_snmp_no_instance_subid, { "snmp.no_instance_subid", PI_MALFORMED, PI_WARN, "No instance sub-id in scalar value", EXPFILL }},
+ { &ei_snmp_wrong_num_of_subids, { "snmp.wrong_num_of_subids", PI_MALFORMED, PI_WARN, "Wrong number of instance sub-ids in scalar value", EXPFILL }},
+ { &ei_snmp_index_suboid_too_short, { "snmp.index_suboid_too_short", PI_MALFORMED, PI_WARN, "index sub-oid shorter than expected", EXPFILL }},
+ { &ei_snmp_unimplemented_instance_index, { "snmp.unimplemented_instance_index", PI_UNDECODED, PI_WARN, "OID instaces not handled, if you want this implemented please contact the wireshark developers", EXPFILL }},
+ { &ei_snmp_index_suboid_len0, { "snmp.ndex_suboid_len0", PI_MALFORMED, PI_WARN, "an index sub-oid OID cannot be 0 bytes long!", EXPFILL }},
+ { &ei_snmp_index_suboid_too_long, { "snmp.index_suboid_too_long", PI_MALFORMED, PI_WARN, "index sub-oid should not be longer than remaining oid size", EXPFILL }},
+ { &ei_snmp_index_string_too_long, { "snmp.index_string_too_long", PI_MALFORMED, PI_WARN, "index string should not be longer than remaining oid size", EXPFILL }},
+ { &ei_snmp_column_parent_not_row, { "snmp.column_parent_not_row", PI_MALFORMED, PI_ERROR, "COLUMS's parent is not a ROW", EXPFILL }},
+ { &ei_snmp_uint_too_large, { "snmp.uint_too_large", PI_UNDECODED, PI_NOTE, "Unsigned integer value > 2^64 - 1", EXPFILL }},
+ { &ei_snmp_int_too_large, { "snmp.int_too_large", PI_UNDECODED, PI_NOTE, "Signed integer value > 2^63 - 1 or <= -2^63", EXPFILL }},
+ { &ei_snmp_integral_value0, { "snmp.integral_value0", PI_UNDECODED, PI_NOTE, "Integral value is zero-length", EXPFILL }},
+ { &ei_snmp_missing_mib, { "snmp.missing_mib", PI_UNDECODED, PI_NOTE, "Unresolved value, Missing MIB", EXPFILL }},
+ { &ei_snmp_varbind_wrong_length_value, { "snmp.varbind.wrong_length_value", PI_MALFORMED, PI_WARN, "Wrong length for SNMP VarBind/value", EXPFILL }},
+ { &ei_snmp_varbind_wrong_class_tag, { "snmp.varbind.wrong_class_tag", PI_MALFORMED, PI_WARN, "Wrong class/tag for SNMP VarBind/value", EXPFILL }},
+ { &ei_snmp_rfc1910_non_conformant, { "snmp.rfc1910_non_conformant", PI_PROTOCOL, PI_WARN, "Data not conforming to RFC1910", EXPFILL }},
+ { &ei_snmp_rfc3411_non_conformant, { "snmp.rfc3411_non_conformant", PI_PROTOCOL, PI_WARN, "Data not conforming to RFC3411", EXPFILL }},
+ { &ei_snmp_version_unknown, { "snmp.version.unknown", PI_PROTOCOL, PI_WARN, "Unknown version", EXPFILL }},
+ { &ei_snmp_trap_pdu_obsolete, { "snmp.trap_pdu_obsolete", PI_PROTOCOL, PI_WARN, "Trap-PDU is obsolete in this SNMP version", EXPFILL }},
+
+ };
+
+ expert_module_t* expert_snmp;
+ module_t *snmp_module;
+
+ static uat_field_t users_fields[] = {
+ UAT_FLD_BUFFER(snmp_users,engine_id,"Engine ID","Engine-id for this entry (empty = any)"),
+ UAT_FLD_LSTRING(snmp_users,userName,"Username","The username"),
+ UAT_FLD_VS(snmp_users,auth_model,"Authentication model",auth_types,"Algorithm to be used for authentication."),
+ UAT_FLD_LSTRING(snmp_users,authPassword,"Password","The password used for authenticating packets for this entry"),
+ UAT_FLD_VS(snmp_users,priv_proto,"Privacy protocol",priv_types,"Algorithm to be used for privacy."),
+ UAT_FLD_LSTRING(snmp_users,privPassword,"Privacy password","The password used for encrypting packets for this entry"),
+ UAT_END_FIELDS
+ };
+
+ uat_t *assocs_uat = uat_new("SNMP Users",
+ sizeof(snmp_ue_assoc_t),
+ "snmp_users",
+ TRUE,
+ &ueas,
+ &num_ueas,
+ UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
+ "ChSNMPUsersSection",
+ snmp_users_copy_cb,
+ snmp_users_update_cb,
+ snmp_users_free_cb,
+ renew_ue_cache,
+ users_fields);
+
+ static uat_field_t specific_traps_flds[] = {
+ UAT_FLD_CSTRING(specific_traps,enterprise,"Enterprise OID","Enterprise Object Identifier"),
+ UAT_FLD_DEC(specific_traps,trap,"Trap Id","The specific-trap value"),
+ UAT_FLD_CSTRING(specific_traps,desc,"Description","Trap type description"),
+ UAT_END_FIELDS
+ };
+
+ uat_t* specific_traps_uat = uat_new("SNMP Enterprise Specific Trap Types",
+ sizeof(snmp_st_assoc_t),
+ "snmp_specific_traps",
+ TRUE,
+ &specific_traps,
+ &num_specific_traps,
+ UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
+ "ChSNMPEnterpriseSpecificTrapTypes",
+ snmp_specific_trap_copy_cb,
+ NULL,
+ snmp_specific_trap_free_cb,
+ NULL,
+ specific_traps_flds);
+
+ /* Register protocol */
+ proto_snmp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("snmp", dissect_snmp, proto_snmp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_snmp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_snmp = expert_register_protocol(proto_snmp);
+ expert_register_field_array(expert_snmp, ei, array_length(ei));
+
+
+ /* Register configuration preferences */
+ snmp_module = prefs_register_protocol(proto_snmp, process_prefs);
+ prefs_register_bool_preference(snmp_module, "display_oid",
+ "Show SNMP OID in info column",
+ "Whether the SNMP OID should be shown in the info column",
+ &display_oid);
+
+ prefs_register_obsolete_preference(snmp_module, "mib_modules");
+ prefs_register_obsolete_preference(snmp_module, "users_file");
+
+ prefs_register_bool_preference(snmp_module, "desegment",
+ "Reassemble SNMP-over-TCP messages\nspanning multiple TCP segments",
+ "Whether the SNMP dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &snmp_desegment);
+
+ prefs_register_bool_preference(snmp_module, "var_in_tree",
+ "Display dissected variables inside SNMP tree",
+ "ON - display dissected variables inside SNMP tree, OFF - display dissected variables in root tree after SNMP",
+ &snmp_var_in_tree);
+
+ prefs_register_uat_preference(snmp_module, "users_table",
+ "Users Table",
+ "Table of engine-user associations used for authentication and decryption",
+ assocs_uat);
+
+ prefs_register_uat_preference(snmp_module, "specific_traps_table",
+ "Enterprise Specific Trap Types",
+ "Table of enterprise specific-trap type descriptions",
+ specific_traps_uat);
+
+#ifdef HAVE_LIBSMI
+ prefs_register_static_text_preference(snmp_module, "info_mibs",
+ "MIB settings can be changed in the Name Resolution preferences",
+ "MIB settings can be changed in the Name Resolution preferences");
+#endif
+
+ value_sub_dissectors_table = register_dissector_table("snmp.variable_oid","SNMP Variable OID", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ register_init_routine(init_ue_cache);
+ register_cleanup_routine(cleanup_ue_cache);
+
+ register_ber_syntax_dissector("SNMP", proto_snmp, dissect_snmp_tcp);
+}
+
+
+/*--- proto_reg_handoff_snmp ---------------------------------------*/
+void proto_reg_handoff_snmp(void) {
+ dissector_handle_t snmp_tcp_handle;
+
+ snmp_handle = find_dissector("snmp");
+
+ dissector_add_uint("udp.port", UDP_PORT_SNMP, snmp_handle);
+ dissector_add_uint("udp.port", UDP_PORT_SNMP_TRAP, snmp_handle);
+ dissector_add_uint("udp.port", UDP_PORT_SNMP_PATROL, snmp_handle);
+ dissector_add_uint("ethertype", ETHERTYPE_SNMP, snmp_handle);
+ dissector_add_uint("ipx.socket", IPX_SOCKET_SNMP_AGENT, snmp_handle);
+ dissector_add_uint("ipx.socket", IPX_SOCKET_SNMP_SINK, snmp_handle);
+ dissector_add_uint("hpext.dxsap", HPEXT_SNMP, snmp_handle);
+
+ snmp_tcp_handle = create_dissector_handle(dissect_snmp_tcp, proto_snmp);
+ dissector_add_uint("tcp.port", TCP_PORT_SNMP, snmp_tcp_handle);
+ dissector_add_uint("tcp.port", TCP_PORT_SNMP_TRAP, snmp_tcp_handle);
+
+ data_handle = find_dissector("data");
+
+ /* SNMPv2-MIB sysDescr "1.3.6.1.2.1.1.1.0" */
+ dissector_add_string("snmp.variable_oid", "1.3.6.1.2.1.1.1.0",
+ create_dissector_handle(dissect_snmp_variable_string, proto_snmp));
+ /* SNMPv2-MIB::sysName.0 (1.3.6.1.2.1.1.5.0) */
+ dissector_add_string("snmp.variable_oid", "1.3.6.1.2.1.1.5.0",
+ create_dissector_handle(dissect_snmp_variable_string, proto_snmp));
+
+ /*
+ * Process preference settings.
+ *
+ * We can't do this in the register routine, as preferences aren't
+ * read until all dissector register routines have been called (so
+ * that all dissector preferences have been registered).
+ */
+ process_prefs();
+
+}
+
+void
+proto_register_smux(void)
+{
+ static gint *ett[] = {
+ &ett_smux,
+ };
+
+ proto_smux = proto_register_protocol("SNMP Multiplex Protocol",
+ "SMUX", "smux");
+
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+void
+proto_reg_handoff_smux(void)
+{
+ dissector_handle_t smux_handle;
+
+ smux_handle = create_dissector_handle(dissect_smux, proto_smux);
+ dissector_add_uint("tcp.port", TCP_PORT_SMUX, smux_handle);
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 8
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * End:
+ *
+ * vi: set shiftwidth=8 tabstop=8 noexpandtab:
+ * :indentSize=8:tabSize=8:noTabs=false:
+ */
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.h b/epan/dissectors/asn1/snmp/packet-snmp-template.h
new file mode 100644
index 0000000000..7d6b746e7e
--- /dev/null
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.h
@@ -0,0 +1,98 @@
+/* packet-snmp.h
+ * Routines for snmp packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_SNMP_H
+#define PACKET_SNMP_H
+
+typedef struct _snmp_usm_key {
+ guint8* data;
+ guint len;
+} snmp_usm_key_t;
+
+typedef struct _snmp_ue_assoc_t snmp_ue_assoc_t;
+typedef struct _snmp_usm_params_t snmp_usm_params_t;
+
+typedef gboolean (*snmp_usm_authenticator_t)(snmp_usm_params_t*, guint8** calc_auth, guint* calc_auth_len, gchar const** error);
+typedef tvbuff_t* (*snmp_usm_decoder_t)(snmp_usm_params_t*, tvbuff_t* encryptedData, gchar const** error);
+typedef void (*snmp_usm_password_to_key_t)(const guint8 *password, guint passwordlen, const guint8 *engineID, guint engineLength, guint8 *key);
+
+typedef struct _snmp_usm_auth_model_t {
+ snmp_usm_password_to_key_t pass2key;
+ snmp_usm_authenticator_t authenticate;
+ guint key_size;
+} snmp_usm_auth_model_t;
+
+typedef struct _snmp_user_t {
+ snmp_usm_key_t userName;
+
+ snmp_usm_auth_model_t* authModel;
+ snmp_usm_key_t authPassword;
+ snmp_usm_key_t authKey;
+
+ snmp_usm_decoder_t privProtocol;
+ snmp_usm_key_t privPassword;
+ snmp_usm_key_t privKey;
+} snmp_user_t;
+
+typedef struct {
+ guint8* data;
+ guint len;
+} snmp_engine_id_t;
+
+struct _snmp_ue_assoc_t {
+ snmp_user_t user;
+ snmp_engine_id_t engine;
+ guint auth_model;
+ guint priv_proto;
+ struct _snmp_ue_assoc_t* next;
+};
+
+struct _snmp_usm_params_t {
+ gboolean authenticated;
+ gboolean encrypted;
+ guint start_offset;
+ guint auth_offset;
+
+ guint32 boots;
+ guint32 snmp_time;
+ tvbuff_t* engine_tvb;
+ tvbuff_t* user_tvb;
+ proto_item* auth_item;
+ tvbuff_t* auth_tvb;
+ tvbuff_t* priv_tvb;
+ tvbuff_t* msg_tvb;
+ snmp_ue_assoc_t* user_assoc;
+
+ gboolean authOK;
+};
+
+/*
+ * Guts of the SNMP dissector - exported for use by protocols such as
+ * ILMI.
+ */
+extern guint dissect_snmp_pdu(tvbuff_t *, int, packet_info *, proto_tree *tree,
+ int, gint, gboolean);
+extern int dissect_snmp_engineid(proto_tree *, packet_info *, tvbuff_t *, int, int);
+
+/*#include "packet-snmp-exp.h"*/
+
+#endif /* PACKET_SNMP_H */
diff --git a/epan/dissectors/asn1/snmp/snmp.asn b/epan/dissectors/asn1/snmp/snmp.asn
new file mode 100644
index 0000000000..4abd119625
--- /dev/null
+++ b/epan/dissectors/asn1/snmp/snmp.asn
@@ -0,0 +1,338 @@
+RFC1157-SNMP DEFINITIONS ::= BEGIN
+
+-- IMPORTS
+-- ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
+-- FROM RFC1155-SMI;
+--
+-- Local imports
+-- IMPORTS
+-- ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
+-- FROM RFC1155-SMI;
+--
+-- names of objects
+-- (Note that these definitions of ObjectName and NotificationName
+-- are not to be IMPORTed by MIB modules.)
+--
+
+--ObjectSyntax ::= CHOICE {
+-- simple SimpleSyntax,
+-- application-wide ApplicationSyntax
+--}
+
+--SimpleSyntax ::= CHOICE {
+-- integer-value Integer-value,
+-- string-value String-value,
+-- objectID-value ObjectID-value,
+-- empty Empty
+--}
+
+--String-value ::= OCTET STRING (SIZE (0..65535))
+
+ -- includes Integer32
+--Integer-value ::= INTEGER (-2147483648..2147483647)
+
+--Integer32 ::= INTEGER (-2147483648..2147483647)
+
+--ObjectID-value ::= OBJECT IDENTIFIER
+
+--Empty ::= NULL
+
+ -- hundredths of seconds since an event, usualy the last restart
+--TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295)
+
+--Opaque ::= [APPLICATION 4] IMPLICIT OCTET STRING
+
+--Counter64 ::= [APPLICATION 6] IMPLICIT INTEGER (0..18446744073709551615)
+
+--ApplicationSyntax ::= CHOICE {
+-- ipAddress-value IpAddress,
+-- counter-value Counter32,
+-- timeticks-value TimeTicks,
+-- arbitrary-value Opaque,
+-- big-counter-value Counter64,
+-- unsigned-integer-value Unsigned32
+ -- includes Gauge32
+--}
+--NetworkAddress ::= CHOICE { internet IpAddress }
+--IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4))
+
+NotificationName ::= OBJECT IDENTIFIER
+EnterpriseOID ::= OBJECT IDENTIFIER
+NetworkAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4))
+TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295)
+Integer32 ::= INTEGER (-2147483648..2147483647)
+ObjectName ::= OBJECT IDENTIFIER
+--Counter32 ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295)
+--Gauge32 ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295)
+--Unsigned32 ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295)
+
+-- End Import
+
+Message ::= SEQUENCE {
+ version Version,
+ community OCTET STRING,
+ data PDUs
+}
+
+Version ::= INTEGER { version-1(0), v2c(1), v2u (2), snmpv3(3) }
+
+
+Messagev2u ::=
+ SEQUENCE {
+ version Version,
+ parameters OCTET STRING,
+ -- <model=1>
+ -- <qoS><agentID><agentBoots><agentTime><maxSize>
+ -- <userLen><userName><authLen><authDigest>
+ -- <contextSelector>
+
+ datav2u CHOICE {
+ plaintext PDUs,
+ encrypted OCTET STRING
+ }
+}
+
+-- USMSecurityParametersSyntax DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+UsmSecurityParameters ::= SEQUENCE {
+ -- global User-based security parameters
+ msgAuthoritativeEngineID SnmpEngineID,
+ msgAuthoritativeEngineBoots INTEGER (0..2147483647),
+ msgAuthoritativeEngineTime INTEGER (0..2147483647),
+ msgUserName OCTET STRING (SIZE(1..32)),
+ -- authentication protocol specific parameters
+ msgAuthenticationParameters OCTET STRING,
+ -- privacy protocol specific parameters
+ msgPrivacyParameters OCTET STRING
+}
+ -- END USMSecurityParametersSyntax
+
+SnmpEngineID ::= OCTET STRING
+
+-- SNMPv3MessageSyntax DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+SNMPv3Message ::= SEQUENCE {
+ -- identify the layout of the SNMPv3Message
+ -- this element is in same position as in SNMPv1
+ -- and SNMPv2c, allowing recognition
+ -- the value 3 is used for snmpv3
+ msgVersion Version,
+ -- INTEGER ( 0 .. 2147483647 ),
+ -- administrative parameters
+ msgGlobalData HeaderData,
+ -- security model-specific parameters
+ -- format defined by Security Model
+ msgSecurityParameters OCTET STRING,
+ msgData ScopedPduData
+}
+
+HeaderData ::= SEQUENCE {
+ msgID INTEGER (0..2147483647),
+ msgMaxSize INTEGER (484..2147483647),
+
+ msgFlags OCTET STRING (SIZE(1)),
+ -- .... ...1 authFlag
+ -- .... ..1. privFlag
+ -- .... .1.. reportableFlag
+ -- Please observe:
+ -- .... ..00 is OK, means noAuthNoPriv
+ -- .... ..01 is OK, means authNoPriv
+ -- .... ..10 reserved, must NOT be used.
+ -- .... ..11 is OK, means authPriv
+
+ msgSecurityModel INTEGER (1..2147483647)
+}
+
+
+ScopedPduData ::= CHOICE {
+ plaintext ScopedPDU,
+ encryptedPDU OCTET STRING -- encrypted scopedPDU value
+}
+
+ScopedPDU ::= SEQUENCE {
+ contextEngineID SnmpEngineID,
+ contextName OCTET STRING,
+ data PDUs
+ -- ANY
+ -- e.g., PDUs as defined in RFC 1905
+}
+
+-- END SNMPv3MessageSyntax
+ -- protocol data units
+
+PDUs ::= CHOICE {
+ get-request GetRequest-PDU,
+ get-next-request GetNextRequest-PDU,
+ get-response GetResponse-PDU,
+ set-request SetRequest-PDU,
+ trap Trap-PDU,
+ getBulkRequest GetBulkRequest-PDU,
+ informRequest InformRequest-PDU,
+ snmpV2-trap SNMPv2-Trap-PDU,
+ report Report-PDU
+}
+
+-- PDUs
+
+GetRequest-PDU ::= [0] IMPLICIT PDU
+GetNextRequest-PDU ::= [1] IMPLICIT PDU
+GetResponse-PDU ::= [2] IMPLICIT PDU
+
+SetRequest-PDU ::= [3] IMPLICIT PDU
+
+-- v2 added
+-- [4] is obsolete
+GetBulkRequest-PDU ::= [5] IMPLICIT BulkPDU
+InformRequest-PDU ::= [6] IMPLICIT PDU
+SNMPv2-Trap-PDU ::= [7] IMPLICIT PDU
+
+ -- Usage and precise semantics of Report-PDU are not presently
+ -- defined. Any SNMP administrative framework making use of
+ -- this PDU must define its usage and semantics.
+Report-PDU ::= [8] IMPLICIT PDU
+
+
+PDU ::= SEQUENCE {
+ request-id INTEGER,
+ error-status 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)
+ },
+ error-index INTEGER,
+ variable-bindings VarBindList
+}
+
+-- v2
+BulkPDU ::= SEQUENCE { -- MUST be identical in structure to PDU
+ request-id Integer32,
+ non-repeaters INTEGER (0..2147483647),
+ max-repetitions INTEGER (0..2147483647),
+ variable-bindings VarBindList
+}
+
+-- end v2
+Trap-PDU ::= [4] IMPLICIT SEQUENCE {
+ enterprise EnterpriseOID, -- type of object generating trap, see sysObjectID in [5]
+ agent-addr NetworkAddress, -- address of object generating trap
+ generic-trap INTEGER { -- generic trap type
+ coldStart(0),
+ warmStart(1),
+ linkDown(2),
+ linkUp(3),
+ authenticationFailure(4),
+ egpNeighborLoss(5),
+ enterpriseSpecific(6)
+ },
+ specific-trap INTEGER, -- specific code, present even if generic-trap is not enterpriseSpecific
+ time-stamp TimeTicks, -- time elapsed between the last (re)initialization of the network entity and the generation of the trap
+ variable-bindings VarBindList -- "interesting" information
+}
+
+
+-- variable bindings
+
+VarBind ::= SEQUENCE { name ObjectName, valueType ValueType }
+-- SEQUENCE {
+-- name ObjectName,
+-- valueType ValueType
+-- }
+
+--ValueType ::= CHOICE {
+-- value ObjectSyntax,
+-- unSpecified NULL,
+ -- in retrieval requests
+ -- exceptions in responses
+-- noSuchObject[0] IMPLICIT NULL,
+-- noSuchInstance[1] IMPLICIT NULL,
+-- endOfMibView[2] IMPLICIT NULL
+--}
+
+VarBindList ::= SEQUENCE OF VarBind
+
+-- SMUX DEFINITIONS ::= BEGIN RFC 1227
+
+SMUX-PDUs ::= CHOICE {
+ open OpenPDU,-- SMUX peer uses immediately after TCP open
+ close ClosePDU, -- either uses immediately before TCP close
+ registerRequest RReqPDU, -- SMUX peer uses
+
+-- registerResponse .. SNMP agent uses
+-- RRspPDU,
+--
+-- PDUs,
+-- Rewritten
+ registerResponse RegisterResponse,
+ -- note that roles are reversed:
+ -- SNMP agent does get/get-next/set
+ -- SMUX peer does get-response/trap
+
+ commitOrRollback -- SNMP agent uses
+ SOutPDU
+}
+
+RegisterResponse ::= CHOICE {
+ rRspPDU RRspPDU,
+ pDUs PDUs
+}
+
+ -- open PDU
+ -- currently only simple authentication
+
+OpenPDU ::= CHOICE {
+ smux-simple SimpleOpen
+}
+
+SimpleOpen ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ smux-version INTEGER { version-1(0) }, -- of SMUX protocol
+ identity OBJECT IDENTIFIER, -- of SMUX peer, authoritative
+ description DisplayString, -- of SMUX peer, implementation-specific
+ password OCTET STRING -- zero length indicates no authentication
+}
+
+DisplayString ::= OCTET STRING
+
+ClosePDU ::= [APPLICATION 1] IMPLICIT INTEGER {
+ goingDown(0),
+ unsupportedVersion(1),
+ packetFormat(2),
+ protocolError(3),
+ internalError(4),
+ authenticationFailure(5)
+}
+
+
+ -- insert PDU
+RReqPDU ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ subtree ObjectName,
+ priority INTEGER (-1..2147483647), -- the lower the better, "-1" means default
+
+ operation INTEGER {
+ delete(0), -- remove registration
+ readOnly(1), -- add registration, objects are RO
+ readWrite(2) -- .., objects are RW
+ }
+}
+
+RRspPDU ::= [APPLICATION 3] IMPLICIT INTEGER { failure(-1) } -- on success the non-negative priority is returned
+SOutPDU ::= [APPLICATION 4] IMPLICIT INTEGER { commit(0), rollback(1) }
+
+END
+
+
diff --git a/epan/dissectors/asn1/snmp/snmp.cnf b/epan/dissectors/asn1/snmp/snmp.cnf
new file mode 100644
index 0000000000..c1ed1575e6
--- /dev/null
+++ b/epan/dissectors/asn1/snmp/snmp.cnf
@@ -0,0 +1,241 @@
+# snmp.cnf
+# snmp conformation file
+
+
+#.PDU
+SMUX-PDUs
+
+#.NO_EMIT
+NotificationName
+VarBind
+
+#.TYPE_RENAME
+Message/community Community
+Trap-PDU/_untag/generic-trap GenericTrap
+Trap-PDU/_untag/specific-trap SpecificTrap
+
+#.FIELD_RENAME
+Messagev2u/datav2u/plaintext v2u_plaintext
+BulkPDU/request-id bulkPDU_request-id
+
+#.FN_PARS Version VAL_PTR = &snmp_version
+
+#.FN_PARS PDUs
+
+ VAL_PTR = &pdu_type
+
+#.FN_BODY PDUs
+gint pdu_type=-1;
+
+ col_clear(actx->pinfo->cinfo, COL_INFO);
+
+%(DEFAULT_BODY)s
+ if( (pdu_type!=-1) && snmp_PDUs_vals[pdu_type].strptr ){
+ col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "%%s", snmp_PDUs_vals[pdu_type].strptr);
+ }
+
+#.END
+
+#.FN_BODY Trap-PDU/_untag
+ generic_trap = 0;
+ enterprise_oid = NULL;
+
+%(DEFAULT_BODY)s
+
+ if (snmp_version != 0) {
+ expert_add_info(actx->pinfo, tree, &ei_snmp_trap_pdu_obsolete);
+ }
+
+#.FN_PARS Trap-PDU/_untag/generic-trap VAL_PTR = &generic_trap
+
+#.FN_BODY Trap-PDU/_untag/specific-trap VAL_PTR = &specific_trap
+ guint specific_trap;
+
+%(DEFAULT_BODY)s
+
+ if (generic_trap == 6) { /* enterprise specific */
+ const gchar *specific_str = snmp_lookup_specific_trap (specific_trap);
+ if (specific_str) {
+ proto_item_append_text(actx->created_item, " (%%s)", specific_str);
+ }
+ }
+#.END
+
+
+#.FN_PARS EnterpriseOID FN_VARIANT = _str VAL_PTR = &enterprise_oid
+
+#.FN_BODY EnterpriseOID
+ const gchar* name;
+
+%(DEFAULT_BODY)s
+
+ if (display_oid && enterprise_oid) {
+ name = oid_resolved_from_string(wmem_packet_scope(), enterprise_oid);
+ if (name) {
+ col_append_fstr (actx->pinfo->cinfo, COL_INFO, " %%s", name);
+ }
+ }
+
+#.END
+
+#.FN_PARS HeaderData/msgSecurityModel
+
+ VAL_PTR = &MsgSecurityModel
+
+#.FN_PARS UsmSecurityParameters/msgAuthoritativeEngineBoots
+
+ VAL_PTR = &usm_p.boots
+
+#.FN_PARS UsmSecurityParameters/msgAuthoritativeEngineTime
+
+ VAL_PTR = &usm_p.snmp_time
+
+#.FN_BODY UsmSecurityParameters/msgAuthoritativeEngineID
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &usm_p.engine_tvb);
+ if (usm_p.engine_tvb) {
+ proto_tree* engine_tree = proto_item_add_subtree(%(ACTX)s->created_item,ett_engineid);
+ dissect_snmp_engineid(engine_tree, actx->pinfo, usm_p.engine_tvb, 0, tvb_reported_length_remaining(usm_p.engine_tvb,0));
+ }
+
+#.FN_BODY SnmpEngineID
+ tvbuff_t* param_tvb = NULL;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &param_tvb);
+ if (param_tvb) {
+ proto_tree* engine_tree = proto_item_add_subtree(%(ACTX)s->created_item,ett_engineid);
+ dissect_snmp_engineid(engine_tree, actx->pinfo, param_tvb, 0, tvb_reported_length_remaining(param_tvb,0));
+ }
+
+#.FN_PARS UsmSecurityParameters/msgUserName
+ VAL_PTR = &usm_p.user_tvb
+
+#.FN_BODY UsmSecurityParameters/msgAuthenticationParameters
+ offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &usm_p.auth_tvb);
+ if (usm_p.auth_tvb) {
+ usm_p.auth_item = %(ACTX)s->created_item;
+ usm_p.auth_offset = tvb_offset_from_real_beginning(usm_p.auth_tvb);
+ }
+#.FN_PARS UsmSecurityParameters/msgPrivacyParameters
+ VAL_PTR = &usm_p.priv_tvb
+
+#.FN_BODY ScopedPduData/encryptedPDU
+ tvbuff_t* crypt_tvb;
+ offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_snmp_encryptedPDU, &crypt_tvb);
+
+ if( usm_p.encrypted && crypt_tvb
+ && usm_p.user_assoc
+ && usm_p.user_assoc->user.privProtocol ) {
+
+ const gchar* error = NULL;
+ proto_tree* encryptedpdu_tree = proto_item_add_subtree(%(ACTX)s->created_item,ett_encryptedPDU);
+ tvbuff_t* cleartext_tvb = usm_p.user_assoc->user.privProtocol(&usm_p, crypt_tvb, &error );
+
+ if (! cleartext_tvb) {
+ proto_tree_add_expert_format(encryptedpdu_tree, actx->pinfo, &ei_snmp_failed_decrypted_data_pdu,
+ crypt_tvb, 0, -1, "Failed to decrypt encryptedPDU: %%s", error);
+
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "encryptedPDU: Failed to decrypt");
+
+ return offset;
+ } else {
+ proto_item* decrypted_item;
+ proto_tree* decrypted_tree;
+
+ if (! check_ScopedPdu(cleartext_tvb)) {
+ proto_tree_add_expert(encryptedpdu_tree, actx->pinfo, &ei_snmp_decrypted_data_bad_formatted, cleartext_tvb, 0, -1);
+
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "encryptedPDU: Decrypted data not formatted as expected");
+
+ return offset;
+ }
+
+
+ add_new_data_source(actx->pinfo, cleartext_tvb, "Decrypted ScopedPDU");
+
+ decrypted_item = proto_tree_add_item(encryptedpdu_tree, hf_snmp_decryptedPDU,cleartext_tvb,0,-1,ENC_NA);
+ decrypted_tree = proto_item_add_subtree(decrypted_item,ett_decrypted);
+ dissect_snmp_ScopedPDU(FALSE, cleartext_tvb, 0, actx, decrypted_tree, -1);
+ }
+ } else {
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "encryptedPDU: privKey Unknown");
+ }
+
+#.FN_BODY SNMPv3Message/msgSecurityParameters
+
+ switch(MsgSecurityModel){
+ case SNMP_SEC_USM: /* 3 */
+ offset = get_ber_identifier(tvb, offset, NULL, NULL, NULL);
+ offset = get_ber_length(tvb, offset, NULL, NULL);
+ offset = dissect_snmp_UsmSecurityParameters(FALSE, tvb, offset, actx, tree, -1);
+ usm_p.user_assoc = get_user_assoc(usm_p.engine_tvb, usm_p.user_tvb);
+ break;
+ case SNMP_SEC_ANY: /* 0 */
+ case SNMP_SEC_V1: /* 1 */
+ case SNMP_SEC_V2C: /* 2 */
+ default:
+ %(DEFAULT_BODY)s
+ break;
+ }
+
+#.FN_FTR SNMPv3Message
+
+ if( usm_p.authenticated
+ && usm_p.user_assoc
+ && usm_p.user_assoc->user.authModel ) {
+ const gchar* error = NULL;
+ proto_item* authen_item;
+ proto_tree* authen_tree = proto_item_add_subtree(usm_p.auth_item,ett_authParameters);
+ guint8* calc_auth;
+ guint calc_auth_len;
+
+ usm_p.authOK = usm_p.user_assoc->user.authModel->authenticate( &usm_p, &calc_auth, &calc_auth_len, &error );
+
+ if (error) {
+ expert_add_info_format( actx->pinfo, usm_p.auth_item, &ei_snmp_verify_authentication_error, "Error while verifying Message authenticity: %s", error );
+ } else {
+ expert_field* expert;
+
+ authen_item = proto_tree_add_boolean(authen_tree, hf_snmp_msgAuthentication, tvb, 0, 0, usm_p.authOK);
+ PROTO_ITEM_SET_GENERATED(authen_item);
+
+ if (usm_p.authOK) {
+ expert = &ei_snmp_authentication_ok;
+ } else {
+ const gchar* calc_auth_str = bytestring_to_str(wmem_packet_scope(), calc_auth,calc_auth_len,' ');
+ proto_item_append_text(authen_item, " calculated = %s", calc_auth_str);
+ expert = &ei_snmp_authentication_error;
+ }
+
+ expert_add_info( actx->pinfo, authen_item, expert);
+ }
+ }
+
+#.END
+
+
+
+#.FN_BODY HeaderData/msgFlags VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+
+ %(DEFAULT_BODY)s
+ if (parameter_tvb){
+ guint8 v3_flags = tvb_get_guint8(parameter_tvb, 0);
+ proto_tree* flags_tree = proto_item_add_subtree(%(ACTX)s->created_item,ett_msgFlags);
+
+ proto_tree_add_item(flags_tree, hf_snmp_v3_flags_report, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(flags_tree, hf_snmp_v3_flags_crypt, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(flags_tree, hf_snmp_v3_flags_auth, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+
+ usm_p.encrypted = v3_flags & TH_CRYPT ? TRUE : FALSE;
+ usm_p.authenticated = v3_flags & TH_AUTH ? TRUE : FALSE;
+ }
+
+
+#.TYPE_ATTR
+NetworkAddress TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+Message/community TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+HeaderData/msgSecurityModel TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(sec_models)
+UsmSecurityParameters/msgUserName TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+ScopedPDU/contextName TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL
+#.END
diff --git a/epan/dissectors/asn1/spnego/CMakeLists.txt b/epan/dissectors/asn1/spnego/CMakeLists.txt
new file mode 100644
index 0000000000..93be54d0a2
--- /dev/null
+++ b/epan/dissectors/asn1/spnego/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME spnego )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/spnego/Makefile.am b/epan/dissectors/asn1/spnego/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/spnego/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/spnego/Makefile.common b/epan/dissectors/asn1/spnego/Makefile.common
new file mode 100644
index 0000000000..074396f70a
--- /dev/null
+++ b/epan/dissectors/asn1/spnego/Makefile.common
@@ -0,0 +1,42 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=spnego
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/spnego/Makefile.nmake b/epan/dissectors/asn1/spnego/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/spnego/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/spnego/packet-spnego-template.c b/epan/dissectors/asn1/spnego/packet-spnego-template.c
new file mode 100644
index 0000000000..86bac4880a
--- /dev/null
+++ b/epan/dissectors/asn1/spnego/packet-spnego-template.c
@@ -0,0 +1,1491 @@
+/* packet-spnego-template.c
+ * Routines for the simple and protected GSS-API negotiation mechanism
+ * as described in RFC 2478.
+ * Copyright 2002, Tim Potter <tpot@samba.org>
+ * Copyright 2002, Richard Sharpe <rsharpe@ns.aus.com>
+ * Copyright 2003, Richard Sharpe <rsharpe@richardsharpe.com>
+ * Copyright 2005, Ronnie Sahlberg (krb decryption)
+ * Copyright 2005, Anders Broman (converted to asn2wrs generated dissector)
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+/* The heimdal code for decryption of GSSAPI wrappers using heimdal comes from
+ Heimdal 1.6 and has been modified for wireshark's requirements.
+*/
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/asn1.h>
+#include <epan/conversation.h>
+#include <epan/proto_data.h>
+#include <wsutil/rc4.h>
+#include "packet-dcerpc.h"
+#include "packet-gssapi.h"
+#include "packet-kerberos.h"
+#include "packet-ber.h"
+
+#define PNAME "Simple Protected Negotiation"
+#define PSNAME "SPNEGO"
+#define PFNAME "spnego"
+
+void proto_register_spnego(void);
+void proto_reg_handoff_spnego(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_spnego = -1;
+static int proto_spnego_krb5 = -1;
+
+
+static int hf_spnego_wraptoken = -1;
+static int hf_spnego_krb5_oid;
+static int hf_spnego_krb5 = -1;
+static int hf_spnego_krb5_tok_id = -1;
+static int hf_spnego_krb5_sgn_alg = -1;
+static int hf_spnego_krb5_seal_alg = -1;
+static int hf_spnego_krb5_snd_seq = -1;
+static int hf_spnego_krb5_sgn_cksum = -1;
+static int hf_spnego_krb5_confounder = -1;
+static int hf_spnego_krb5_filler = -1;
+static int hf_spnego_krb5_cfx_flags = -1;
+static int hf_spnego_krb5_cfx_flags_01 = -1;
+static int hf_spnego_krb5_cfx_flags_02 = -1;
+static int hf_spnego_krb5_cfx_flags_04 = -1;
+static int hf_spnego_krb5_cfx_ec = -1;
+static int hf_spnego_krb5_cfx_rrc = -1;
+static int hf_spnego_krb5_cfx_seq = -1;
+
+#include "packet-spnego-hf.c"
+
+/* Global variables */
+static const char *MechType_oid;
+gssapi_oid_value *next_level_value;
+gboolean saw_mechanism = FALSE;
+
+
+/* Initialize the subtree pointers */
+static gint ett_spnego = -1;
+static gint ett_spnego_wraptoken = -1;
+static gint ett_spnego_krb5 = -1;
+static gint ett_spnego_krb5_cfx_flags = -1;
+
+#include "packet-spnego-ett.c"
+
+static expert_field ei_spnego_decrypted_keytype = EI_INIT;
+static expert_field ei_spnego_unknown_header = EI_INIT;
+
+/*
+ * Unfortunately, we have to have forward declarations of thess,
+ * as the code generated by asn2wrs includes a call before the
+ * definition.
+ */
+static int dissect_spnego_NegTokenInit(gboolean implicit_tag, tvbuff_t *tvb,
+ int offset, asn1_ctx_t *actx _U_,
+ proto_tree *tree, int hf_index);
+static int dissect_spnego_NegTokenInit2(gboolean implicit_tag, tvbuff_t *tvb,
+ int offset, asn1_ctx_t *actx _U_,
+ proto_tree *tree, int hf_index);
+
+#include "packet-spnego-fn.c"
+/*
+ * This is the SPNEGO KRB5 dissector. It is not true KRB5, but some ASN.1
+ * wrapped blob with an OID, USHORT token ID, and a Ticket, that is also
+ * ASN.1 wrapped by the looks of it. It conforms to RFC1964.
+ */
+
+#define KRB_TOKEN_AP_REQ 0x0001
+#define KRB_TOKEN_AP_REP 0x0002
+#define KRB_TOKEN_AP_ERR 0x0003
+#define KRB_TOKEN_GETMIC 0x0101
+#define KRB_TOKEN_WRAP 0x0102
+#define KRB_TOKEN_DELETE_SEC_CONTEXT 0x0201
+#define KRB_TOKEN_CFX_GETMIC 0x0404
+#define KRB_TOKEN_CFX_WRAP 0x0405
+
+static const value_string spnego_krb5_tok_id_vals[] = {
+ { KRB_TOKEN_AP_REQ, "KRB5_AP_REQ"},
+ { KRB_TOKEN_AP_REP, "KRB5_AP_REP"},
+ { KRB_TOKEN_AP_ERR, "KRB5_ERROR"},
+ { KRB_TOKEN_GETMIC, "KRB5_GSS_GetMIC" },
+ { KRB_TOKEN_WRAP, "KRB5_GSS_Wrap" },
+ { KRB_TOKEN_DELETE_SEC_CONTEXT, "KRB5_GSS_Delete_sec_context" },
+ { KRB_TOKEN_CFX_GETMIC, "KRB_TOKEN_CFX_GetMic" },
+ { KRB_TOKEN_CFX_WRAP, "KRB_TOKEN_CFX_WRAP" },
+ { 0, NULL}
+};
+
+#define KRB_SGN_ALG_DES_MAC_MD5 0x0000
+#define KRB_SGN_ALG_MD2_5 0x0001
+#define KRB_SGN_ALG_DES_MAC 0x0002
+#define KRB_SGN_ALG_HMAC 0x0011
+
+static const value_string spnego_krb5_sgn_alg_vals[] = {
+ { KRB_SGN_ALG_DES_MAC_MD5, "DES MAC MD5"},
+ { KRB_SGN_ALG_MD2_5, "MD2.5"},
+ { KRB_SGN_ALG_DES_MAC, "DES MAC"},
+ { KRB_SGN_ALG_HMAC, "HMAC"},
+ { 0, NULL}
+};
+
+#define KRB_SEAL_ALG_DES_CBC 0x0000
+#define KRB_SEAL_ALG_RC4 0x0010
+#define KRB_SEAL_ALG_NONE 0xffff
+
+static const value_string spnego_krb5_seal_alg_vals[] = {
+ { KRB_SEAL_ALG_DES_CBC, "DES CBC"},
+ { KRB_SEAL_ALG_RC4, "RC4"},
+ { KRB_SEAL_ALG_NONE, "None"},
+ { 0, NULL}
+};
+
+/*
+ * XXX - is this for SPNEGO or just GSS-API?
+ * RFC 1964 is "The Kerberos Version 5 GSS-API Mechanism"; presumably one
+ * can directly designate Kerberos V5 as a mechanism in GSS-API, rather
+ * than designating SPNEGO as the mechanism, offering Kerberos V5, and
+ * getting it accepted.
+ */
+static int
+dissect_spnego_krb5_getmic_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
+static int
+dissect_spnego_krb5_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint16 token_id, gssapi_encrypt_info_t* gssapi_encrypt);
+static int
+dissect_spnego_krb5_cfx_getmic_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
+static int
+dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint16 token_id, gssapi_encrypt_info_t* gssapi_encrypt);
+
+static int
+dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ proto_item *item;
+ proto_tree *subtree;
+ int offset = 0;
+ guint16 token_id;
+ const char *oid;
+ tvbuff_t *krb5_tvb;
+ gint8 ber_class;
+ gboolean pc, ind = 0;
+ gint32 tag;
+ guint32 len;
+ gssapi_encrypt_info_t* encrypt_info = (gssapi_encrypt_info_t*)data;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ item = proto_tree_add_item(tree, hf_spnego_krb5, tvb, offset,
+ -1, ENC_NA);
+
+ subtree = proto_item_add_subtree(item, ett_spnego_krb5);
+
+ /*
+ * The KRB5 blob conforms to RFC1964:
+ * [APPLICATION 0] {
+ * OID,
+ * USHORT (0x0001 == AP-REQ, 0x0002 == AP-REP, 0x0003 == ERROR),
+ * OCTET STRING }
+ *
+ * However, for some protocols, the KRB5 blob starts at the SHORT
+ * and has no DER encoded header etc.
+ *
+ * It appears that for some other protocols the KRB5 blob is just
+ * a Kerberos message, with no [APPLICATION 0] header, no OID,
+ * and no USHORT.
+ *
+ * So:
+ *
+ * If we see an [APPLICATION 0] HEADER, we show the OID and
+ * the USHORT, and then dissect the rest as a Kerberos message.
+ *
+ * If we see an [APPLICATION 14] or [APPLICATION 15] header,
+ * we assume it's an AP-REQ or AP-REP message, and dissect
+ * it all as a Kerberos message.
+ *
+ * Otherwise, we show the USHORT, and then dissect the rest
+ * as a Kerberos message.
+ */
+
+ /*
+ * Get the first header ...
+ */
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if (ber_class == BER_CLASS_APP && pc) {
+ /*
+ * [APPLICATION <tag>]
+ */
+ offset = dissect_ber_identifier(pinfo, subtree, tvb, offset, &ber_class, &pc, &tag);
+ offset = dissect_ber_length(pinfo, subtree, tvb, offset, &len, &ind);
+
+ switch (tag) {
+
+ case 0:
+ /*
+ * [APPLICATION 0]
+ */
+
+ /* Next, the OID */
+ offset=dissect_ber_object_identifier_str(FALSE, &asn1_ctx, subtree, tvb, offset, hf_spnego_krb5_oid, &oid);
+
+ token_id = tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(subtree, hf_spnego_krb5_tok_id, tvb, offset, 2,
+ token_id);
+
+ offset += 2;
+
+ break;
+
+ case 14: /* [APPLICATION 14] */
+ case 15: /* [APPLICATION 15] */
+ /*
+ * No token ID - just dissect as a Kerberos message and
+ * return.
+ */
+ dissect_kerberos_main(tvb, pinfo, subtree, FALSE, NULL);
+ return tvb_captured_length(tvb);
+
+ default:
+ proto_tree_add_expert_format(subtree, pinfo, &ei_spnego_unknown_header, tvb, offset, 0,
+ "Unknown header (class=%d, pc=%d, tag=%d)",
+ ber_class, pc, tag);
+ goto done;
+ }
+ } else {
+ /* Next, the token ID ... */
+
+ token_id = tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(subtree, hf_spnego_krb5_tok_id, tvb, offset, 2,
+ token_id);
+
+ offset += 2;
+ }
+
+ switch (token_id) {
+
+ case KRB_TOKEN_AP_REQ:
+ case KRB_TOKEN_AP_REP:
+ case KRB_TOKEN_AP_ERR:
+ krb5_tvb = tvb_new_subset_remaining(tvb, offset);
+ offset = dissect_kerberos_main(krb5_tvb, pinfo, subtree, FALSE, NULL);
+ break;
+
+ case KRB_TOKEN_GETMIC:
+ offset = dissect_spnego_krb5_getmic_base(tvb, offset, pinfo, subtree);
+ break;
+
+ case KRB_TOKEN_WRAP:
+ offset = dissect_spnego_krb5_wrap_base(tvb, offset, pinfo, subtree, token_id, encrypt_info);
+ break;
+
+ case KRB_TOKEN_DELETE_SEC_CONTEXT:
+
+ break;
+
+ case KRB_TOKEN_CFX_GETMIC:
+ offset = dissect_spnego_krb5_cfx_getmic_base(tvb, offset, pinfo, subtree);
+ break;
+
+ case KRB_TOKEN_CFX_WRAP:
+ offset = dissect_spnego_krb5_cfx_wrap_base(tvb, offset, pinfo, subtree, token_id, encrypt_info);
+ break;
+
+ default:
+
+ break;
+ }
+
+ done:
+ proto_item_set_len(item, offset);
+ return tvb_captured_length(tvb);
+}
+
+#ifdef HAVE_KERBEROS
+#include <wsutil/md5.h>
+
+#ifndef KEYTYPE_ARCFOUR_56
+# define KEYTYPE_ARCFOUR_56 24
+#endif
+/* XXX - We should probably do a configure-time check for this instead */
+#ifndef KRB5_KU_USAGE_SEAL
+# define KRB5_KU_USAGE_SEAL 22
+#endif
+
+static int
+arcfour_mic_key(const guint8 *key_data, size_t key_size, int key_type,
+ const guint8 *cksum_data, size_t cksum_size,
+ guint8 *key6_data)
+{
+ guint8 k5_data[16];
+ guint8 T[4];
+
+ memset(T, 0, 4);
+
+ if (key_type == KEYTYPE_ARCFOUR_56) {
+ guint8 L40[14] = "fortybits";
+
+ memcpy(L40 + 10, T, sizeof(T));
+ md5_hmac(
+ L40, 14,
+ key_data,
+ key_size,
+ k5_data);
+ memset(&k5_data[7], 0xAB, 9);
+ } else {
+ md5_hmac(
+ T, 4,
+ key_data,
+ key_size,
+ k5_data);
+ }
+
+ md5_hmac(
+ cksum_data, cksum_size,
+ k5_data,
+ 16,
+ key6_data);
+
+ return 0;
+}
+
+static int
+usage2arcfour(int usage)
+{
+ switch (usage) {
+ case 3: /*KRB5_KU_AS_REP_ENC_PART 3 */
+ case 9: /*KRB5_KU_TGS_REP_ENC_PART_SUB_KEY 9 */
+ return 8;
+ case 22: /*KRB5_KU_USAGE_SEAL 22 */
+ return 13;
+ case 23: /*KRB5_KU_USAGE_SIGN 23 */
+ return 15;
+ case 24: /*KRB5_KU_USAGE_SEQ 24 */
+ return 0;
+ default :
+ return 0;
+ }
+}
+
+static int
+arcfour_mic_cksum(guint8 *key_data, int key_length,
+ unsigned int usage,
+ guint8 sgn_cksum[8],
+ const guint8 *v1, size_t l1,
+ const guint8 *v2, size_t l2,
+ const guint8 *v3, size_t l3)
+{
+ static const guint8 signature[] = "signaturekey";
+ guint8 ksign_c[16];
+ guint8 t[4];
+ md5_state_t ms;
+ guint8 digest[16];
+ int rc4_usage;
+ guint8 cksum[16];
+
+ rc4_usage=usage2arcfour(usage);
+ md5_hmac(signature, sizeof(signature),
+ key_data, key_length,
+ ksign_c);
+ md5_init(&ms);
+ t[0] = (rc4_usage >> 0) & 0xFF;
+ t[1] = (rc4_usage >> 8) & 0xFF;
+ t[2] = (rc4_usage >> 16) & 0xFF;
+ t[3] = (rc4_usage >> 24) & 0xFF;
+ md5_append(&ms, t, 4);
+ md5_append(&ms, v1, l1);
+ md5_append(&ms, v2, l2);
+ md5_append(&ms, v3, l3);
+ md5_finish(&ms, digest);
+ md5_hmac(digest, 16, ksign_c, 16, cksum);
+
+ memcpy(sgn_cksum, cksum, 8);
+
+ return 0;
+}
+
+/*
+ * Verify padding of a gss wrapped message and return its length.
+ */
+static int
+gssapi_verify_pad(guint8 *wrapped_data, int wrapped_length,
+ int datalen,
+ int *padlen)
+{
+ guint8 *pad;
+ int padlength;
+ int i;
+
+ pad = wrapped_data + wrapped_length - 1;
+ padlength = *pad;
+
+ if (padlength > datalen)
+ return 1;
+
+ for (i = padlength; i > 0 && *pad == padlength; i--, pad--)
+ ;
+ if (i != 0)
+ return 2;
+
+ *padlen = padlength;
+
+ return 0;
+}
+
+static int
+decrypt_arcfour(gssapi_encrypt_info_t* gssapi_encrypt, guint8 *input_message_buffer, guint8 *output_message_buffer,
+ guint8 *key_value, int key_size, int key_type)
+{
+ guint8 Klocaldata[16];
+ int ret;
+ int datalen;
+ guint8 k6_data[16];
+ guint32 SND_SEQ[2];
+ guint8 Confounder[8];
+ guint8 cksum_data[8];
+ int cmp;
+ int conf_flag;
+ int padlen = 0;
+
+ datalen = tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb);
+
+ if(tvb_get_ntohs(gssapi_encrypt->gssapi_wrap_tvb, 4)==0x1000){
+ conf_flag=1;
+ } else if (tvb_get_ntohs(gssapi_encrypt->gssapi_wrap_tvb, 4)==0xffff){
+ conf_flag=0;
+ } else {
+ return -3;
+ }
+
+ if(tvb_get_ntohs(gssapi_encrypt->gssapi_wrap_tvb, 6)!=0xffff){
+ return -4;
+ }
+
+ ret = arcfour_mic_key(key_value, key_size, key_type,
+ tvb_get_ptr(gssapi_encrypt->gssapi_wrap_tvb, 16, 8),
+ 8, /* SGN_CKSUM */
+ k6_data);
+ if (ret) {
+ return -5;
+ }
+
+ {
+ rc4_state_struct rc4_state;
+
+ crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
+ tvb_memcpy(gssapi_encrypt->gssapi_wrap_tvb, SND_SEQ, 8, 8);
+ crypt_rc4(&rc4_state, (guint8 *)SND_SEQ, 8);
+
+ memset(k6_data, 0, sizeof(k6_data));
+ }
+
+
+ if (SND_SEQ[1] != 0xFFFFFFFF && SND_SEQ[1] != 0x00000000) {
+ return -6;
+ }
+
+ {
+ int i;
+
+ for (i = 0; i < 16; i++)
+ Klocaldata[i] = ((guint8 *)key_value)[i] ^ 0xF0;
+ }
+ ret = arcfour_mic_key(Klocaldata,sizeof(Klocaldata),key_type,
+ (const guint8 *)SND_SEQ, 4,
+ k6_data);
+ memset(Klocaldata, 0, sizeof(Klocaldata));
+ if (ret) {
+ return -7;
+ }
+
+ if(conf_flag) {
+ rc4_state_struct rc4_state;
+
+ crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
+ tvb_memcpy(gssapi_encrypt->gssapi_wrap_tvb, Confounder, 24, 8);
+ crypt_rc4(&rc4_state, Confounder, 8);
+ memcpy(output_message_buffer, input_message_buffer, datalen);
+ crypt_rc4(&rc4_state, output_message_buffer, datalen);
+ } else {
+ tvb_memcpy(gssapi_encrypt->gssapi_wrap_tvb, Confounder, 24, 8);
+ memcpy(output_message_buffer,
+ input_message_buffer,
+ datalen);
+ }
+ memset(k6_data, 0, sizeof(k6_data));
+
+ /* only normal (i.e. non DCE style wrapping use padding ? */
+ if(gssapi_encrypt->decrypt_gssapi_tvb==DECRYPT_GSSAPI_NORMAL){
+ ret = gssapi_verify_pad(output_message_buffer,datalen,datalen, &padlen);
+ if (ret) {
+ return -9;
+ }
+ datalen -= padlen;
+ }
+
+ /* don't know what the checksum looks like for dce style gssapi */
+ if(gssapi_encrypt->decrypt_gssapi_tvb==DECRYPT_GSSAPI_NORMAL){
+ ret = arcfour_mic_cksum(key_value, key_size,
+ KRB5_KU_USAGE_SEAL,
+ cksum_data,
+ tvb_get_ptr(gssapi_encrypt->gssapi_wrap_tvb, 0, 8), 8,
+ Confounder, sizeof(Confounder),
+ output_message_buffer,
+ datalen + padlen);
+ if (ret) {
+ return -10;
+ }
+
+ cmp = tvb_memeql(gssapi_encrypt->gssapi_wrap_tvb, 16, cksum_data, 8); /* SGN_CKSUM */
+ if (cmp) {
+ return -11;
+ }
+ }
+
+ return datalen;
+}
+
+
+
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+
+static void
+decrypt_gssapi_krb_arcfour_wrap(proto_tree *tree _U_, packet_info *pinfo, tvbuff_t *tvb, int keytype, gssapi_encrypt_info_t* gssapi_encrypt)
+{
+ int ret;
+ enc_key_t *ek;
+ int length;
+ const guint8 *original_data;
+
+ guint8 *cryptocopy=NULL; /* workaround for pre-0.6.1 heimdal bug */
+ guint8 *output_message_buffer;
+
+ length=tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb);
+ original_data=tvb_get_ptr(gssapi_encrypt->gssapi_encrypted_tvb, 0, length);
+
+ /* don't do anything if we are not attempting to decrypt data */
+/*
+ if(!krb_decrypt){
+ return;
+ }
+*/
+ /* XXX we should only do this for first time, then store somewhere */
+ /* XXX We also need to re-read the keytab when the preference changes */
+
+ cryptocopy=(guint8 *)wmem_alloc(wmem_packet_scope(), length);
+ output_message_buffer=(guint8 *)wmem_alloc(pinfo->pool, length);
+
+ for(ek=enc_key_list;ek;ek=ek->next){
+ /* shortcircuit and bail out if enctypes are not matching */
+ if(ek->keytype!=keytype){
+ continue;
+ }
+
+ /* pre-0.6.1 versions of Heimdal would sometimes change
+ the cryptotext data even when the decryption failed.
+ This would obviously not work since we iterate over the
+ keys. So just give it a copy of the crypto data instead.
+ This has been seen for RC4-HMAC blobs.
+ */
+ memcpy(cryptocopy, original_data, length);
+ ret=decrypt_arcfour(gssapi_encrypt,
+ cryptocopy,
+ output_message_buffer,
+ ek->keyvalue,
+ ek->keylength,
+ ek->keytype);
+ if (ret >= 0) {
+ expert_add_info_format(pinfo, NULL, &ei_spnego_decrypted_keytype,
+ "Decrypted keytype %d in frame %u using %s",
+ ek->keytype, pinfo->num, ek->key_origin);
+
+ gssapi_encrypt->gssapi_decrypted_tvb=tvb_new_child_real_data(tvb,
+ output_message_buffer,
+ ret, ret);
+ add_new_data_source(pinfo, gssapi_encrypt->gssapi_decrypted_tvb, "Decrypted GSS-Krb5");
+ return;
+ }
+ }
+}
+
+/* borrowed from heimdal */
+static int
+rrc_rotate(guint8 *data, int len, guint16 rrc, int unrotate)
+{
+ guint8 *tmp, buf[256];
+ size_t left;
+
+ if (len == 0)
+ return 0;
+
+ rrc %= len;
+
+ if (rrc == 0)
+ return 0;
+
+ left = len - rrc;
+
+ if (rrc <= sizeof(buf)) {
+ tmp = buf;
+ } else {
+ tmp = (guint8 *)g_malloc(rrc);
+ if (tmp == NULL)
+ return -1;
+ }
+
+ if (unrotate) {
+ memcpy(tmp, data, rrc);
+ memmove(data, data + rrc, left);
+ memcpy(data + left, tmp, rrc);
+ } else {
+ memcpy(tmp, data + left, rrc);
+ memmove(data + rrc, data, left);
+ memcpy(data, tmp, rrc);
+ }
+
+ if (rrc > sizeof(buf))
+ g_free(tmp);
+
+ return 0;
+}
+
+
+#define KRB5_KU_USAGE_ACCEPTOR_SEAL 22
+#define KRB5_KU_USAGE_ACCEPTOR_SIGN 23
+#define KRB5_KU_USAGE_INITIATOR_SEAL 24
+#define KRB5_KU_USAGE_INITIATOR_SIGN 25
+
+static void
+decrypt_gssapi_krb_cfx_wrap(proto_tree *tree,
+ packet_info *pinfo,
+ tvbuff_t *checksum_tvb,
+ gssapi_encrypt_info_t* gssapi_encrypt,
+ guint16 ec,
+ guint16 rrc,
+ int keytype,
+ unsigned int usage)
+{
+ guint8 *rotated;
+ guint8 *output;
+ int datalen;
+ tvbuff_t *next_tvb;
+
+ /* don't do anything if we are not attempting to decrypt data */
+ if(!krb_decrypt){
+ return;
+ }
+
+ datalen = tvb_captured_length(checksum_tvb) + tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb);
+
+ rotated = (guint8 *)wmem_alloc(pinfo->pool, datalen);
+
+ tvb_memcpy(checksum_tvb, rotated,
+ 0, tvb_captured_length(checksum_tvb));
+ tvb_memcpy(gssapi_encrypt->gssapi_encrypted_tvb, rotated + tvb_captured_length(checksum_tvb),
+ 0, tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb));
+
+ if (gssapi_encrypt->decrypt_gssapi_tvb==DECRYPT_GSSAPI_DCE) {
+ rrc += ec;
+ }
+
+ rrc_rotate(rotated, datalen, rrc, TRUE);
+
+ next_tvb=tvb_new_child_real_data(gssapi_encrypt->gssapi_encrypted_tvb, rotated,
+ datalen, datalen);
+ add_new_data_source(pinfo, next_tvb, "GSSAPI CFX");
+
+ output = decrypt_krb5_data(tree, pinfo, usage, next_tvb,
+ keytype, &datalen);
+
+ if (output) {
+ guint8 *outdata;
+
+ outdata = (guint8 *)g_memdup(output, tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb));
+ g_free(output);
+
+ gssapi_encrypt->gssapi_decrypted_tvb=tvb_new_child_real_data(gssapi_encrypt->gssapi_encrypted_tvb,
+ outdata,
+ tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb),
+ tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb));
+ add_new_data_source(pinfo, gssapi_encrypt->gssapi_decrypted_tvb, "Decrypted GSS-Krb5");
+ tvb_set_free_cb(gssapi_encrypt->gssapi_decrypted_tvb, g_free);
+ }
+}
+
+#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
+
+
+#endif
+
+/*
+ * This is for GSSAPI Wrap tokens ...
+ */
+static int
+dissect_spnego_krb5_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo
+#ifndef HAVE_KERBEROS
+ _U_
+#endif
+ , proto_tree *tree, guint16 token_id
+#ifndef HAVE_KERBEROS
+ _U_
+#endif
+ , gssapi_encrypt_info_t* gssapi_encrypt
+ )
+{
+ guint16 sgn_alg, seal_alg;
+#ifdef HAVE_KERBEROS
+ int start_offset=offset;
+#endif
+
+ /*
+ * The KRB5 blob conforms to RFC1964:
+ * USHORT (0x0102 == GSS_Wrap)
+ * and so on }
+ */
+
+ /* Now, the sign and seal algorithms ... */
+
+ sgn_alg = tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(tree, hf_spnego_krb5_sgn_alg, tvb, offset, 2,
+ sgn_alg);
+
+ offset += 2;
+
+ seal_alg = tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(tree, hf_spnego_krb5_seal_alg, tvb, offset, 2,
+ seal_alg);
+
+ offset += 2;
+
+ /* Skip the filler */
+
+ offset += 2;
+
+ /* Encrypted sequence number */
+
+ proto_tree_add_item(tree, hf_spnego_krb5_snd_seq, tvb, offset, 8,
+ ENC_NA);
+
+ offset += 8;
+
+ /* Checksum of plaintext padded data */
+
+ proto_tree_add_item(tree, hf_spnego_krb5_sgn_cksum, tvb, offset, 8,
+ ENC_NA);
+
+ offset += 8;
+
+ /*
+ * At least according to draft-brezak-win2k-krb-rc4-hmac-04,
+ * if the signing algorithm is KRB_SGN_ALG_HMAC, there's an
+ * extra 8 bytes of "Random confounder" after the checksum.
+ * It certainly confounds code expecting all Kerberos 5
+ * GSS_Wrap() tokens to look the same....
+ */
+ if ((sgn_alg == KRB_SGN_ALG_HMAC) ||
+ /* there also seems to be a confounder for DES MAC MD5 - certainly seen when using with
+ SASL with LDAP between a Java client and Active Directory. If this breaks other things
+ we may need to make this an option. gal 17/2/06 */
+ (sgn_alg == KRB_SGN_ALG_DES_MAC_MD5)) {
+ proto_tree_add_item(tree, hf_spnego_krb5_confounder, tvb, offset, 8,
+ ENC_NA);
+ offset += 8;
+ }
+
+ /* Is the data encrypted? */
+ if (gssapi_encrypt != NULL)
+ gssapi_encrypt->gssapi_data_encrypted=(seal_alg!=KRB_SEAL_ALG_NONE);
+
+#ifdef HAVE_KERBEROS
+#define GSS_ARCFOUR_WRAP_TOKEN_SIZE 32
+ if(gssapi_encrypt && gssapi_encrypt->decrypt_gssapi_tvb){
+ /* if the caller did not provide a tvb, then we just use
+ whatever is left of our current tvb.
+ */
+ if(!gssapi_encrypt->gssapi_encrypted_tvb){
+ int len;
+ len=tvb_reported_length_remaining(tvb,offset);
+ if(len>tvb_captured_length_remaining(tvb, offset)){
+ /* no point in trying to decrypt,
+ we don't have the full pdu.
+ */
+ return offset;
+ }
+ gssapi_encrypt->gssapi_encrypted_tvb = tvb_new_subset_length(
+ tvb, offset, len);
+ }
+
+ /* if this is KRB5 wrapped rc4-hmac */
+ if((token_id==KRB_TOKEN_WRAP)
+ &&(sgn_alg==KRB_SGN_ALG_HMAC)
+ &&(seal_alg==KRB_SEAL_ALG_RC4)){
+ /* do we need to create a tvb for the wrapper
+ as well ?
+ */
+ if(!gssapi_encrypt->gssapi_wrap_tvb){
+ gssapi_encrypt->gssapi_wrap_tvb = tvb_new_subset_length(
+ tvb, start_offset-2,
+ GSS_ARCFOUR_WRAP_TOKEN_SIZE);
+ }
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+ decrypt_gssapi_krb_arcfour_wrap(tree,
+ pinfo,
+ tvb,
+ KERB_ENCTYPE_RC4_HMAC,
+ gssapi_encrypt);
+#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
+ }
+ }
+#endif
+ /*
+ * Return the offset past the checksum, so that we know where
+ * the data we're wrapped around starts. Also, set the length
+ * of our top-level item to that offset, so it doesn't cover
+ * the data we're wrapped around.
+ *
+ * Note that for DCERPC the GSSAPI blobs comes after the data it wraps,
+ * not before.
+ */
+ return offset;
+}
+
+/*
+ * XXX - This is for GSSAPI GetMIC tokens ...
+ */
+static int
+dissect_spnego_krb5_getmic_base(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree)
+{
+ guint16 sgn_alg;
+
+ /*
+ * The KRB5 blob conforms to RFC1964:
+ * USHORT (0x0101 == GSS_GetMIC)
+ * and so on }
+ */
+
+ /* Now, the sign algorithm ... */
+
+ sgn_alg = tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(tree, hf_spnego_krb5_sgn_alg, tvb, offset, 2,
+ sgn_alg);
+
+ offset += 2;
+
+ /* Skip the filler */
+
+ offset += 4;
+
+ /* Encrypted sequence number */
+
+ proto_tree_add_item(tree, hf_spnego_krb5_snd_seq, tvb, offset, 8,
+ ENC_NA);
+
+ offset += 8;
+
+ /* Checksum of plaintext padded data */
+
+ proto_tree_add_item(tree, hf_spnego_krb5_sgn_cksum, tvb, offset, 8,
+ ENC_NA);
+
+ offset += 8;
+
+ /*
+ * At least according to draft-brezak-win2k-krb-rc4-hmac-04,
+ * if the signing algorithm is KRB_SGN_ALG_HMAC, there's an
+ * extra 8 bytes of "Random confounder" after the checksum.
+ * It certainly confounds code expecting all Kerberos 5
+ * GSS_Wrap() tokens to look the same....
+ *
+ * The exception is DNS/TSIG where there is no such confounder
+ * so we need to test here if there are more bytes in our tvb or not.
+ * -- ronnie
+ */
+ if (tvb_reported_length_remaining(tvb, offset)) {
+ if (sgn_alg == KRB_SGN_ALG_HMAC) {
+ proto_tree_add_item(tree, hf_spnego_krb5_confounder, tvb, offset, 8,
+ ENC_NA);
+
+ offset += 8;
+ }
+ }
+
+ /*
+ * Return the offset past the checksum, so that we know where
+ * the data we're wrapped around starts. Also, set the length
+ * of our top-level item to that offset, so it doesn't cover
+ * the data we're wrapped around.
+ */
+
+ return offset;
+}
+
+static int
+dissect_spnego_krb5_cfx_flags(tvbuff_t *tvb, int offset,
+ proto_tree *spnego_krb5_tree,
+ guint8 cfx_flags _U_)
+{
+ static const int * flags[] = {
+ &hf_spnego_krb5_cfx_flags_04,
+ &hf_spnego_krb5_cfx_flags_02,
+ &hf_spnego_krb5_cfx_flags_01,
+ NULL
+ };
+
+ proto_tree_add_bitmask(spnego_krb5_tree, tvb, offset, hf_spnego_krb5_cfx_flags, ett_spnego_krb5_cfx_flags, flags, ENC_NA);
+ return (offset + 1);
+}
+
+/*
+ * This is for GSSAPI CFX Wrap tokens ...
+ */
+static int
+dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo
+#ifndef HAVE_KERBEROS
+ _U_
+#endif
+ , proto_tree *tree, guint16 token_id _U_
+ , gssapi_encrypt_info_t* gssapi_encrypt
+ )
+{
+ guint8 flags;
+ guint16 ec;
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+ guint16 rrc;
+#endif
+ int checksum_size;
+ int start_offset=offset;
+
+ /*
+ * The KRB5 blob conforms to RFC4121:
+ * USHORT (0x0504)
+ * and so on }
+ */
+
+ /* Now, the sign and seal algorithms ... */
+
+ flags = tvb_get_guint8(tvb, offset);
+ offset = dissect_spnego_krb5_cfx_flags(tvb, offset, tree, flags);
+
+ if (gssapi_encrypt != NULL)
+ gssapi_encrypt->gssapi_data_encrypted=(flags & 2);
+
+ /* Skip the filler */
+
+ proto_tree_add_item(tree, hf_spnego_krb5_filler, tvb, offset, 1,
+ ENC_NA);
+ offset += 1;
+
+ /* EC */
+ ec = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_item(tree, hf_spnego_krb5_cfx_ec, tvb, offset, 2,
+ ENC_BIG_ENDIAN);
+ offset += 2;
+
+ /* RRC */
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+ rrc = tvb_get_ntohs(tvb, offset);
+#endif
+ proto_tree_add_item(tree, hf_spnego_krb5_cfx_rrc, tvb, offset, 2,
+ ENC_BIG_ENDIAN);
+ offset += 2;
+
+ /* sequence number */
+
+ proto_tree_add_item(tree, hf_spnego_krb5_cfx_seq, tvb, offset, 8,
+ ENC_BIG_ENDIAN);
+ offset += 8;
+
+ if (gssapi_encrypt == NULL) /* Probably shoudn't happen, but just protect ourselves */
+ return offset;
+
+ /* Checksum of plaintext padded data */
+
+ if (gssapi_encrypt->gssapi_data_encrypted) {
+ checksum_size = 44 + ec;
+
+ proto_tree_add_item(tree, hf_spnego_krb5_sgn_cksum, tvb, offset,
+ checksum_size, ENC_NA);
+ offset += checksum_size;
+
+ } else {
+ int returned_offset;
+ int inner_token_len = 0;
+
+ /*
+ * We know we have a wrap token, but we have to let the proto
+ * above us decode that, so hand it back in gssapi_wrap_tvb
+ * and put the checksum in the tree.
+ */
+
+ checksum_size = ec;
+
+ inner_token_len = tvb_reported_length_remaining(tvb, offset);
+ if (inner_token_len > ec) {
+ inner_token_len -= ec;
+ }
+
+ /*
+ * We handle only the two common cases for now
+ * (rrc == 0 and rrc == ec)
+ */
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+ if (rrc == ec) {
+ proto_tree_add_item(tree, hf_spnego_krb5_sgn_cksum,
+ tvb, offset, checksum_size, ENC_NA);
+ offset += checksum_size;
+ }
+#endif
+
+ returned_offset = offset;
+ gssapi_encrypt->gssapi_wrap_tvb = tvb_new_subset_length(tvb, offset,
+ inner_token_len);
+
+ offset += inner_token_len;
+
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+ if (rrc == 0)
+#endif
+ {
+ proto_tree_add_item(tree, hf_spnego_krb5_sgn_cksum,
+ tvb, offset, checksum_size, ENC_NA);
+ }
+
+ /*
+ * Return an offset that puts our caller before the inner
+ * token. This is better than before, but we still see the
+ * checksum included in the LDAP query at times.
+ */
+ return returned_offset;
+ }
+
+ if(gssapi_encrypt->decrypt_gssapi_tvb){
+ /* if the caller did not provide a tvb, then we just use
+ whatever is left of our current tvb.
+ */
+ if(!gssapi_encrypt->gssapi_encrypted_tvb){
+ int len;
+ len=tvb_reported_length_remaining(tvb,offset);
+ if(len>tvb_captured_length_remaining(tvb, offset)){
+ /* no point in trying to decrypt,
+ we don't have the full pdu.
+ */
+ return offset;
+ }
+ gssapi_encrypt->gssapi_encrypted_tvb = tvb_new_subset(
+ tvb, offset, len, len);
+ }
+
+ if (gssapi_encrypt->gssapi_data_encrypted) {
+ /* do we need to create a tvb for the wrapper
+ as well ?
+ */
+ if(!gssapi_encrypt->gssapi_wrap_tvb){
+ gssapi_encrypt->gssapi_wrap_tvb = tvb_new_subset_length(
+ tvb, start_offset-2,
+ offset - (start_offset-2));
+ }
+ }
+ }
+
+#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
+{
+ tvbuff_t *checksum_tvb = tvb_new_subset_length(tvb, 16, checksum_size);
+
+ if (gssapi_encrypt->gssapi_data_encrypted) {
+ if(gssapi_encrypt->gssapi_encrypted_tvb){
+ decrypt_gssapi_krb_cfx_wrap(tree,
+ pinfo,
+ checksum_tvb,
+ gssapi_encrypt,
+ ec,
+ rrc,
+ -1,
+ (flags & 0x0001)?
+ KRB5_KU_USAGE_ACCEPTOR_SEAL:
+ KRB5_KU_USAGE_INITIATOR_SEAL);
+ }
+ }
+}
+#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
+
+ /*
+ * Return the offset past the checksum, so that we know where
+ * the data we're wrapped around starts. Also, set the length
+ * of our top-level item to that offset, so it doesn't cover
+ * the data we're wrapped around.
+ *
+ * Note that for DCERPC the GSSAPI blobs comes after the data it wraps,
+ * not before.
+ */
+ return offset;
+}
+
+/*
+ * XXX - This is for GSSAPI CFX GetMIC tokens ...
+ */
+static int
+dissect_spnego_krb5_cfx_getmic_base(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree)
+{
+ guint8 flags;
+ int checksum_size;
+
+ /*
+ * The KRB5 blob conforms to RFC4121:
+ * USHORT (0x0404 == GSS_GetMIC)
+ * and so on }
+ */
+
+ flags = tvb_get_guint8(tvb, offset);
+ offset = dissect_spnego_krb5_cfx_flags(tvb, offset, tree, flags);
+
+ /* Skip the filler */
+
+ proto_tree_add_item(tree, hf_spnego_krb5_filler, tvb, offset, 5,
+ ENC_NA);
+ offset += 5;
+
+ /* sequence number */
+
+ proto_tree_add_item(tree, hf_spnego_krb5_cfx_seq, tvb, offset, 8,
+ ENC_BIG_ENDIAN);
+ offset += 8;
+
+ /* Checksum of plaintext padded data */
+
+ checksum_size = tvb_captured_length_remaining(tvb, offset);
+
+ proto_tree_add_item(tree, hf_spnego_krb5_sgn_cksum, tvb, offset,
+ checksum_size, ENC_NA);
+ offset += checksum_size;
+
+ /*
+ * Return the offset past the checksum, so that we know where
+ * the data we're wrapped around starts. Also, set the length
+ * of our top-level item to that offset, so it doesn't cover
+ * the data we're wrapped around.
+ */
+
+ return offset;
+}
+
+/*
+ * XXX - is this for SPNEGO or just GSS-API?
+ * RFC 1964 is "The Kerberos Version 5 GSS-API Mechanism"; presumably one
+ * can directly designate Kerberos V5 as a mechanism in GSS-API, rather
+ * than designating SPNEGO as the mechanism, offering Kerberos V5, and
+ * getting it accepted.
+ */
+static int
+dissect_spnego_krb5_wrap(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data)
+{
+ proto_item *item;
+ proto_tree *subtree;
+ int offset = 0;
+ guint16 token_id;
+ gssapi_encrypt_info_t* encrypt_info = (gssapi_encrypt_info_t*)data;
+
+ item = proto_tree_add_item(tree, hf_spnego_krb5, tvb, 0, -1, ENC_NA);
+
+ subtree = proto_item_add_subtree(item, ett_spnego_krb5);
+
+ /*
+ * The KRB5 blob conforms to RFC1964:
+ * USHORT (0x0102 == GSS_Wrap)
+ * and so on }
+ */
+
+ /* First, the token ID ... */
+
+ token_id = tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(subtree, hf_spnego_krb5_tok_id, tvb, offset, 2,
+ token_id);
+
+ offset += 2;
+
+ switch (token_id) {
+ case KRB_TOKEN_GETMIC:
+ offset = dissect_spnego_krb5_getmic_base(tvb, offset, pinfo, subtree);
+ break;
+
+ case KRB_TOKEN_WRAP:
+ offset = dissect_spnego_krb5_wrap_base(tvb, offset, pinfo, subtree, token_id, encrypt_info);
+ break;
+
+ case KRB_TOKEN_CFX_GETMIC:
+ offset = dissect_spnego_krb5_cfx_getmic_base(tvb, offset, pinfo, subtree);
+ break;
+
+ case KRB_TOKEN_CFX_WRAP:
+ offset = dissect_spnego_krb5_cfx_wrap_base(tvb, offset, pinfo, subtree, token_id, encrypt_info);
+ break;
+
+ default:
+
+ break;
+ }
+
+ /*
+ * Return the offset past the checksum, so that we know where
+ * the data we're wrapped around starts. Also, set the length
+ * of our top-level item to that offset, so it doesn't cover
+ * the data we're wrapped around.
+ */
+ proto_item_set_len(item, offset);
+ return offset;
+}
+
+/* Spnego stuff from here */
+
+static int
+dissect_spnego_wrap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ proto_item *item;
+ proto_tree *subtree;
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ MechType_oid = NULL;
+
+ /*
+ * We need this later, so lets get it now ...
+ * It has to be per-frame as there can be more than one GSS-API
+ * negotiation in a conversation.
+ */
+
+
+ item = proto_tree_add_item(tree, proto_spnego, tvb, offset,
+ -1, ENC_NA);
+
+ subtree = proto_item_add_subtree(item, ett_spnego);
+ /*
+ * The TVB contains a [0] header and a sequence that consists of an
+ * object ID and a blob containing the data ...
+ * XXX - is this RFC 2743's "Mechanism-Independent Token Format",
+ * with the "optional" "use in non-initial tokens" being chosen.
+ * ASN1 code addet to spnego.asn to handle this.
+ */
+
+ offset = dissect_spnego_InitialContextToken(FALSE, tvb, offset, &asn1_ctx , subtree, -1);
+
+ return offset;
+}
+
+
+static int
+dissect_spnego(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ proto_item *item;
+ proto_tree *subtree;
+ int offset = 0;
+ conversation_t *conversation;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /*
+ * We need this later, so lets get it now ...
+ * It has to be per-frame as there can be more than one GSS-API
+ * negotiation in a conversation.
+ */
+ next_level_value = (gssapi_oid_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_spnego, 0);
+ if (!next_level_value && !pinfo->fd->flags.visited) {
+ /*
+ * No handle attached to this frame, but it's the first
+ * pass, so it'd be attached to the conversation.
+ * If we have a conversation, try to get the handle,
+ * and if we get one, attach it to the frame.
+ */
+ conversation = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst,
+ pinfo->ptype, pinfo->srcport,
+ pinfo->destport, 0);
+
+ if (conversation) {
+ next_level_value = (gssapi_oid_value *)conversation_get_proto_data(conversation,
+ proto_spnego);
+ if (next_level_value)
+ p_add_proto_data(wmem_file_scope(), pinfo, proto_spnego, 0, next_level_value);
+ }
+ }
+
+ item = proto_tree_add_item(parent_tree, proto_spnego, tvb, offset,
+ -1, ENC_NA);
+
+ subtree = proto_item_add_subtree(item, ett_spnego);
+
+ /*
+ * The TVB contains a [0] header and a sequence that consists of an
+ * object ID and a blob containing the data ...
+ * Actually, it contains, according to RFC2478:
+ * NegotiationToken ::= CHOICE {
+ * negTokenInit [0] NegTokenInit,
+ * negTokenTarg [1] NegTokenTarg }
+ * NegTokenInit ::= SEQUENCE {
+ * mechTypes [0] MechTypeList OPTIONAL,
+ * reqFlags [1] ContextFlags OPTIONAL,
+ * mechToken [2] OCTET STRING OPTIONAL,
+ * mechListMIC [3] OCTET STRING OPTIONAL }
+ * NegTokenTarg ::= SEQUENCE {
+ * negResult [0] ENUMERATED {
+ * accept_completed (0),
+ * accept_incomplete (1),
+ * reject (2) } OPTIONAL,
+ * supportedMech [1] MechType OPTIONAL,
+ * responseToken [2] OCTET STRING OPTIONAL,
+ * mechListMIC [3] OCTET STRING OPTIONAL }
+ *
+ * Windows typically includes mechTypes and mechListMic ('NONE'
+ * in the case of NTLMSSP only).
+ * It seems to duplicate the responseToken into the mechListMic field
+ * as well. Naughty, naughty.
+ *
+ */
+ dissect_spnego_NegotiationToken(FALSE, tvb, offset, &asn1_ctx, subtree, -1);
+ return tvb_captured_length(tvb);
+}
+
+/*--- proto_register_spnego -------------------------------------------*/
+void proto_register_spnego(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_spnego_wraptoken,
+ { "wrapToken", "spnego.wraptoken",
+ FT_NONE, BASE_NONE, NULL, 0x0, "SPNEGO wrapToken",
+ HFILL}},
+ { &hf_spnego_krb5,
+ { "krb5_blob", "spnego.krb5.blob", FT_BYTES,
+ BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_spnego_krb5_oid,
+ { "KRB5 OID", "spnego.krb5_oid", FT_STRING,
+ BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_spnego_krb5_tok_id,
+ { "krb5_tok_id", "spnego.krb5.tok_id", FT_UINT16, BASE_HEX,
+ VALS(spnego_krb5_tok_id_vals), 0, "KRB5 Token Id", HFILL}},
+ { &hf_spnego_krb5_sgn_alg,
+ { "krb5_sgn_alg", "spnego.krb5.sgn_alg", FT_UINT16, BASE_HEX,
+ VALS(spnego_krb5_sgn_alg_vals), 0, "KRB5 Signing Algorithm", HFILL}},
+ { &hf_spnego_krb5_seal_alg,
+ { "krb5_seal_alg", "spnego.krb5.seal_alg", FT_UINT16, BASE_HEX,
+ VALS(spnego_krb5_seal_alg_vals), 0, "KRB5 Sealing Algorithm", HFILL}},
+ { &hf_spnego_krb5_snd_seq,
+ { "krb5_snd_seq", "spnego.krb5.snd_seq", FT_BYTES, BASE_NONE,
+ NULL, 0, "KRB5 Encrypted Sequence Number", HFILL}},
+ { &hf_spnego_krb5_sgn_cksum,
+ { "krb5_sgn_cksum", "spnego.krb5.sgn_cksum", FT_BYTES, BASE_NONE,
+ NULL, 0, "KRB5 Data Checksum", HFILL}},
+ { &hf_spnego_krb5_confounder,
+ { "krb5_confounder", "spnego.krb5.confounder", FT_BYTES, BASE_NONE,
+ NULL, 0, "KRB5 Confounder", HFILL}},
+ { &hf_spnego_krb5_filler,
+ { "krb5_filler", "spnego.krb5.filler", FT_BYTES, BASE_NONE,
+ NULL, 0, "KRB5 Filler", HFILL}},
+ { &hf_spnego_krb5_cfx_flags,
+ { "krb5_cfx_flags", "spnego.krb5.cfx_flags", FT_UINT8, BASE_HEX,
+ NULL, 0, "KRB5 CFX Flags", HFILL}},
+ { &hf_spnego_krb5_cfx_flags_01,
+ { "SendByAcceptor", "spnego.krb5.send_by_acceptor", FT_BOOLEAN, 8,
+ TFS (&tfs_set_notset), 0x01, NULL, HFILL}},
+ { &hf_spnego_krb5_cfx_flags_02,
+ { "Sealed", "spnego.krb5.sealed", FT_BOOLEAN, 8,
+ TFS (&tfs_set_notset), 0x02, NULL, HFILL}},
+ { &hf_spnego_krb5_cfx_flags_04,
+ { "AcceptorSubkey", "spnego.krb5.acceptor_subkey", FT_BOOLEAN, 8,
+ TFS (&tfs_set_notset), 0x04, NULL, HFILL}},
+ { &hf_spnego_krb5_cfx_ec,
+ { "krb5_cfx_ec", "spnego.krb5.cfx_ec", FT_UINT16, BASE_DEC,
+ NULL, 0, "KRB5 CFX Extra Count", HFILL}},
+ { &hf_spnego_krb5_cfx_rrc,
+ { "krb5_cfx_rrc", "spnego.krb5.cfx_rrc", FT_UINT16, BASE_DEC,
+ NULL, 0, "KRB5 CFX Right Rotation Count", HFILL}},
+ { &hf_spnego_krb5_cfx_seq,
+ { "krb5_cfx_seq", "spnego.krb5.cfx_seq", FT_UINT64, BASE_DEC,
+ NULL, 0, "KRB5 Sequence Number", HFILL}},
+
+#include "packet-spnego-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_spnego,
+ &ett_spnego_wraptoken,
+ &ett_spnego_krb5,
+ &ett_spnego_krb5_cfx_flags,
+
+#include "packet-spnego-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_spnego_decrypted_keytype, { "spnego.decrypted_keytype", PI_SECURITY, PI_CHAT, "Decryted keytype", EXPFILL }},
+ { &ei_spnego_unknown_header, { "spnego.unknown_header", PI_PROTOCOL, PI_WARN, "Unknown header", EXPFILL }},
+ };
+
+ expert_module_t* expert_spnego;
+
+ /* Register protocol */
+ proto_spnego = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ register_dissector("spnego", dissect_spnego, proto_spnego);
+
+ proto_spnego_krb5 = proto_register_protocol("SPNEGO-KRB5",
+ "SPNEGO-KRB5",
+ "spnego-krb5");
+
+ register_dissector("spnego-krb5", dissect_spnego_krb5, proto_spnego_krb5);
+ register_dissector("spnego-krb5-wrap", dissect_spnego_krb5_wrap, proto_spnego_krb5);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_spnego, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_spnego = expert_register_protocol(proto_spnego);
+ expert_register_field_array(expert_spnego, ei, array_length(ei));
+}
+
+
+/*--- proto_reg_handoff_spnego ---------------------------------------*/
+void proto_reg_handoff_spnego(void) {
+
+ dissector_handle_t spnego_handle, spnego_wrap_handle;
+ dissector_handle_t spnego_krb5_handle, spnego_krb5_wrap_handle;
+
+ /* Register protocol with GSS-API module */
+
+ spnego_handle = find_dissector("spnego");
+ spnego_wrap_handle = create_dissector_handle(dissect_spnego_wrap, proto_spnego);
+ gssapi_init_oid("1.3.6.1.5.5.2", proto_spnego, ett_spnego,
+ spnego_handle, spnego_wrap_handle,
+ "SPNEGO - Simple Protected Negotiation");
+
+ /* Register both the one MS created and the real one */
+ /*
+ * Thanks to Jean-Baptiste Marchand and Richard B Ward, the
+ * mystery of the MS KRB5 OID is cleared up. It was due to a library
+ * that did not handle OID components greater than 16 bits, and was
+ * fixed in Win2K SP2 as well as WinXP.
+ * See the archive of <ietf-krb-wg@anl.gov> for the thread topic
+ * SPNEGO implementation issues. 3-Dec-2002.
+ */
+ spnego_krb5_handle = find_dissector("spnego-krb5");
+ spnego_krb5_wrap_handle = find_dissector("spnego-krb5-wrap");
+ gssapi_init_oid("1.2.840.48018.1.2.2", proto_spnego_krb5, ett_spnego_krb5,
+ spnego_krb5_handle, spnego_krb5_wrap_handle,
+ "MS KRB5 - Microsoft Kerberos 5");
+ gssapi_init_oid("1.2.840.113554.1.2.2", proto_spnego_krb5, ett_spnego_krb5,
+ spnego_krb5_handle, spnego_krb5_wrap_handle,
+ "KRB5 - Kerberos 5");
+ gssapi_init_oid("1.2.840.113554.1.2.2.3", proto_spnego_krb5, ett_spnego_krb5,
+ spnego_krb5_handle, spnego_krb5_wrap_handle,
+ "KRB5 - Kerberos 5 - User to User");
+
+}
diff --git a/epan/dissectors/asn1/spnego/spnego.asn b/epan/dissectors/asn1/spnego/spnego.asn
new file mode 100644
index 0000000000..b62973df2f
--- /dev/null
+++ b/epan/dissectors/asn1/spnego/spnego.asn
@@ -0,0 +1,104 @@
+Spnego {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) snego(2)}
+-- (1.3.6.1.5.5.2)
+DEFINITIONS ::=
+
+BEGIN
+
+MechType::= OBJECT IDENTIFIER
+
+NegotiationToken ::= CHOICE {
+ negTokenInit [0] NegTokenInit,
+ negTokenTarg [1] NegTokenTarg }
+
+MechTypeList ::= SEQUENCE OF MechType
+
+--
+-- MS-SPNG tells us that the format of a negTokenInit is actually
+-- negTokenInit2 if a negTokenInit is seen in a response. It might need
+-- to be the first negTokenInit seen in a response, but I am not sure.
+-- It will only occur in a NegotiateProtocol response in CIFS/SMB or SMB2.
+--
+NegTokenInit ::= SEQUENCE {
+ mechTypes [0] MechTypeList OPTIONAL,
+ reqFlags [1] ContextFlags OPTIONAL,
+ mechToken [2] OCTET STRING OPTIONAL,
+ mechListMIC [3] OCTET STRING OPTIONAL
+ }
+
+NegHints ::= SEQUENCE {
+ hintName [0] GeneralString OPTIONAL,
+ hintAddress [1] OCTET STRING OPTIONAL
+}
+
+NegTokenInit2 ::= SEQUENCE {
+ mechTypes [0] MechTypeList OPTIONAL,
+ reqFlags [1] ContextFlags OPTIONAL,
+ mechToken [2] OCTET STRING OPTIONAL,
+ negHints [3] NegHints OPTIONAL,
+ mechListMIC [4] OCTET STRING OPTIONAL
+}
+
+ContextFlags ::= BIT STRING {
+ delegFlag (0),
+ mutualFlag (1),
+ replayFlag (2),
+ sequenceFlag (3),
+ anonFlag (4),
+ confFlag (5),
+ integFlag (6)
+}
+
+NegTokenTarg ::= SEQUENCE {
+ negResult [0] ENUMERATED {
+ accept-completed (0),
+ accept-incomplete (1),
+ reject (2) } OPTIONAL,
+ supportedMech [1] MechType OPTIONAL,
+ responseToken [2] OCTET STRING OPTIONAL,
+ mechListMIC [3] OCTET STRING OPTIONAL
+}
+
+--GSS-API DEFINITIONS ::=
+--BEGIN
+--MechType ::= OBJECT IDENTIFIER
+-- data structure definitions
+-- callers must be able to distinguish among
+-- InitialContextToken, SubsequentContextToken,
+-- PerMsgToken, and SealedMessage data elements
+-- based on the usage in which they occur
+InitialContextToken ::=
+ -- option indication (delegation, etc.) indicated within
+ -- mechanism-specific token
+[APPLICATION 0] IMPLICIT SEQUENCE {
+ thisMech MechType,
+ innerContextToken InnerContextToken
+ -- DEFINED BY thisMech
+ -- contents mechanism-specific
+ -- ASN.1 structure not required
+ }
+
+-- SubsequentContextToken ::= InnerContextToken
+
+InnerContextToken ::= ANY
+-- interpretation based on predecessor InitialContextToken
+-- ASN.1 structure not required
+
+-- PerMsgToken ::=
+-- as emitted by GSS_GetMIC and processed by GSS_VerifyMIC
+-- ASN.1 structure not required
+-- InnerMsgToken
+
+-- InnerMsgToken ::= ANY
+
+-- SealedMessage ::=
+-- as emitted by GSS_Wrap and processed by GSS_Unwrap
+-- includes internal, mechanism-defined indicator
+-- of whether or not encrypted
+-- ASN.1 structure not required
+-- SealedUserData
+
+-- SealedUserData ::= ANY
+
+-- END GSS-API DEFINITIONS
+
+END
diff --git a/epan/dissectors/asn1/spnego/spnego.cnf b/epan/dissectors/asn1/spnego/spnego.cnf
new file mode 100644
index 0000000000..04ce792d02
--- /dev/null
+++ b/epan/dissectors/asn1/spnego/spnego.cnf
@@ -0,0 +1,179 @@
+# spnego.cnf
+# spnego conformation file
+
+#.EXPORTS
+
+#.PDU
+
+#.NO_EMIT ONLY_VALS
+NegotiationToken
+
+#.FN_BODY NegotiationToken/negTokenInit
+ gboolean is_response = actx->pinfo->ptype == PT_TCP &&
+ actx->pinfo->srcport < 1024;
+
+ /*
+ * We decode as negTokenInit2 or negTokenInit depending on whether or not
+ * we are in a response or a request. That is essentially what MS-SPNG
+ * says.
+ */
+ if (is_response) {
+ return dissect_spnego_NegTokenInit2(%(IMPLICIT_TAG)s, %(TVB)s, %(OFFSET)s,
+ %(ACTX)s, %(TREE)s, %(HF_INDEX)s);
+ } else {
+ return dissect_spnego_NegTokenInit(%(IMPLICIT_TAG)s, %(TVB)s, %(OFFSET)s,
+ %(ACTX)s, %(TREE)s, %(HF_INDEX)s);
+ }
+
+#.FN_PARS MechType
+
+ FN_VARIANT = _str VAL_PTR = &MechType_oid
+
+#.FN_BODY MechType
+
+ gssapi_oid_value *value;
+
+%(DEFAULT_BODY)s
+
+ value = gssapi_lookup_oid_str(MechType_oid);
+
+ /*
+ * Tell our caller the first mechanism we see, so that if
+ * this is a negTokenInit with a mechToken, it can interpret
+ * the mechToken according to the first mechType. (There
+ * might not have been any indication of the mechType
+ * in prior frames, so we can't necessarily use the
+ * mechanism from the conversation; i.e., a negTokenInit
+ * can contain the initial security token for the desired
+ * mechanism of the initiator - that's the first mechanism
+ * in the list.)
+ */
+ if (!saw_mechanism) {
+ if (value)
+ next_level_value = value;
+ saw_mechanism = TRUE;
+ }
+
+#.FN_BODY InnerContextToken
+
+ gssapi_oid_value *next_level_value_lcl;
+ proto_item *item;
+ proto_tree *subtree;
+ tvbuff_t *token_tvb;
+ int len;
+
+ /*
+ * XXX - what should we do if this OID doesn't match the value
+ * attached to the frame or conversation? (That would be
+ * bogus, but that's not impossible - some broken implementation
+ * might negotiate some security mechanism but put the OID
+ * for some other security mechanism in GSS_Wrap tokens.)
+ * Does it matter?
+ */
+ next_level_value_lcl = gssapi_lookup_oid_str(MechType_oid);
+
+ /*
+ * Now dissect the GSS_Wrap token; it's assumed to be in the
+ * rest of the tvbuff.
+ */
+ item = proto_tree_add_item(tree, hf_spnego_wraptoken, tvb, offset, -1, ENC_NA);
+
+ subtree = proto_item_add_subtree(item, ett_spnego_wraptoken);
+
+ /*
+ * Now, we should be able to dispatch after creating a new TVB.
+ * The subdissector must return the length of the part of the
+ * token it dissected, so we can return the length of the part
+ * we (and it) dissected.
+ */
+ token_tvb = tvb_new_subset_remaining(tvb, offset);
+ if (next_level_value_lcl && next_level_value_lcl->wrap_handle) {
+ len = call_dissector(next_level_value_lcl->wrap_handle, token_tvb, actx->pinfo,
+ subtree);
+ if (len == 0)
+ offset = tvb_reported_length(tvb);
+ else
+ offset = offset + len;
+ } else
+ offset = tvb_reported_length(tvb);
+
+#.FN_BODY MechTypeList
+
+ conversation_t *conversation;
+
+ saw_mechanism = FALSE;
+
+%(DEFAULT_BODY)s
+
+ /*
+ * If we saw a mechType we need to store it in case the negTokenTarg
+ * does not provide a supportedMech.
+ */
+ if(saw_mechanism){
+ conversation = find_or_create_conversation(actx->pinfo);
+ conversation_add_proto_data(conversation, proto_spnego, next_level_value);
+ }
+
+#.FN_PARS NegTokenInit/mechToken
+
+ VAL_PTR = &mechToken_tvb
+
+#.FN_BODY NegTokenInit/mechToken
+
+ tvbuff_t *mechToken_tvb = NULL;
+
+%(DEFAULT_BODY)s
+
+ /*
+ * Now, we should be able to dispatch, if we've gotten a tvbuff for
+ * the token and we have information on how to dissect its contents.
+ */
+ if (mechToken_tvb && next_level_value)
+ call_dissector(next_level_value->handle, mechToken_tvb, actx->pinfo, tree);
+
+#.FN_BODY NegTokenTarg/supportedMech
+
+ conversation_t *conversation;
+
+ saw_mechanism = FALSE;
+
+%(DEFAULT_BODY)s
+
+ /*
+ * If we saw an explicit mechType we store this in the conversation so that
+ * it will override any mechType we might have picked up from the
+ * negTokenInit.
+ */
+ if(saw_mechanism){
+ conversation = find_or_create_conversation(actx->pinfo);
+ conversation_add_proto_data(conversation, proto_spnego, next_level_value);
+ }
+
+
+#.FN_PARS NegTokenTarg/responseToken
+
+ VAL_PTR = &responseToken_tvb
+
+#.FN_BODY NegTokenTarg/responseToken
+
+ tvbuff_t *responseToken_tvb;
+
+
+%(DEFAULT_BODY)s
+
+
+ /*
+ * Now, we should be able to dispatch, if we've gotten a tvbuff for
+ * the token and we have information on how to dissect its contents.
+ * However, we should make sure that there is something in the
+ * response token ...
+ */
+ if (responseToken_tvb && (tvb_reported_length(responseToken_tvb) > 0) ){
+ gssapi_oid_value *value=next_level_value;
+
+ if(value){
+ call_dissector(value->handle, responseToken_tvb, actx->pinfo, tree);
+ }
+ }
+
+#.END
diff --git a/epan/dissectors/asn1/sv/CMakeLists.txt b/epan/dissectors/asn1/sv/CMakeLists.txt
new file mode 100644
index 0000000000..a567bd6b38
--- /dev/null
+++ b/epan/dissectors/asn1/sv/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME sv )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/sv/Makefile.am b/epan/dissectors/asn1/sv/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/sv/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/sv/Makefile.common b/epan/dissectors/asn1/sv/Makefile.common
new file mode 100644
index 0000000000..828affa5de
--- /dev/null
+++ b/epan/dissectors/asn1/sv/Makefile.common
@@ -0,0 +1,41 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=sv
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
diff --git a/epan/dissectors/asn1/sv/Makefile.nmake b/epan/dissectors/asn1/sv/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/sv/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/sv/packet-sv-template.c b/epan/dissectors/asn1/sv/packet-sv-template.c
new file mode 100644
index 0000000000..3690ce20ba
--- /dev/null
+++ b/epan/dissectors/asn1/sv/packet-sv-template.c
@@ -0,0 +1,340 @@
+/* packet-sv.c
+ * Routines for IEC 61850 Sampled Values packet dissection
+ * Michael Bernhard 2008
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+#include <epan/etypes.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+
+#include "tap.h"
+
+#include "packet-sv.h"
+
+#define PNAME "IEC61850 Sampled Values"
+#define PSNAME "SV"
+#define PFNAME "sv"
+
+/* see IEC61850-8-1 8.2 */
+#define Q_VALIDITY_GOOD (0x0U << 0)
+#define Q_VALIDITY_INVALID (0x1U << 0)
+#define Q_VALIDITY_QUESTIONABLE (0x3U << 0)
+#define Q_VALIDITY_MASK (0x3U << 0)
+
+#define Q_OVERFLOW (1U << 2)
+#define Q_OUTOFRANGE (1U << 3)
+#define Q_BADREFERENCE (1U << 4)
+#define Q_OSCILLATORY (1U << 5)
+#define Q_FAILURE (1U << 6)
+#define Q_OLDDATA (1U << 7)
+#define Q_INCONSISTENT (1U << 8)
+#define Q_INACCURATE (1U << 9)
+
+#define Q_SOURCE_PROCESS (0U << 10)
+#define Q_SOURCE_SUBSTITUTED (1U << 10)
+#define Q_SOURCE_MASK (1U << 10)
+
+#define Q_TEST (1U << 11)
+#define Q_OPERATORBLOCKED (1U << 12)
+
+/* see UCA Implementation Guideline for IEC 61850-9-2 */
+#define Q_DERIVED (1U << 13)
+
+void proto_register_sv(void);
+void proto_reg_handoff_sv(void);
+
+/* Data for SV tap */
+static int sv_tap = -1;
+static sv_frame_data sv_data;
+
+/* Initialize the protocol and registered fields */
+static int proto_sv = -1;
+static int hf_sv_appid = -1;
+static int hf_sv_length = -1;
+static int hf_sv_reserve1 = -1;
+static int hf_sv_reserve2 = -1;
+static int hf_sv_phmeas_instmag_i = -1;
+static int hf_sv_phsmeas_q = -1;
+static int hf_sv_phsmeas_q_validity = -1;
+static int hf_sv_phsmeas_q_overflow = -1;
+static int hf_sv_phsmeas_q_outofrange = -1;
+static int hf_sv_phsmeas_q_badreference = -1;
+static int hf_sv_phsmeas_q_oscillatory = -1;
+static int hf_sv_phsmeas_q_failure = -1;
+static int hf_sv_phsmeas_q_olddata = -1;
+static int hf_sv_phsmeas_q_inconsistent = -1;
+static int hf_sv_phsmeas_q_inaccurate = -1;
+static int hf_sv_phsmeas_q_source = -1;
+static int hf_sv_phsmeas_q_test = -1;
+static int hf_sv_phsmeas_q_operatorblocked = -1;
+static int hf_sv_phsmeas_q_derived = -1;
+
+#include "packet-sv-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_sv = -1;
+static int ett_phsmeas = -1;
+static int ett_phsmeas_q = -1;
+
+#include "packet-sv-ett.c"
+
+static expert_field ei_sv_mal_utctime = EI_INIT;
+static expert_field ei_sv_zero_pdu = EI_INIT;
+
+static gboolean sv_decode_data_as_phsmeas = FALSE;
+
+static const value_string sv_q_validity_vals[] = {
+ { 0, "good" },
+ { 1, "invalid" },
+ { 3, "questionable" },
+ { 0, NULL }
+};
+
+static const value_string sv_q_source_vals[] = {
+ { 0, "process" },
+ { 1, "substituted" },
+ { 0, NULL }
+};
+
+static int
+dissect_PhsMeas1(gboolean implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, int hf_id _U_)
+{
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ guint32 len;
+ proto_tree *subtree;
+ gint32 value;
+ guint32 qual;
+ guint32 i;
+
+ static const int *q_flags[] = {
+ &hf_sv_phsmeas_q_validity,
+ &hf_sv_phsmeas_q_overflow,
+ &hf_sv_phsmeas_q_outofrange,
+ &hf_sv_phsmeas_q_badreference,
+ &hf_sv_phsmeas_q_oscillatory,
+ &hf_sv_phsmeas_q_failure,
+ &hf_sv_phsmeas_q_olddata,
+ &hf_sv_phsmeas_q_inconsistent,
+ &hf_sv_phsmeas_q_inaccurate,
+ &hf_sv_phsmeas_q_source,
+ &hf_sv_phsmeas_q_test,
+ &hf_sv_phsmeas_q_operatorblocked,
+ &hf_sv_phsmeas_q_derived,
+ NULL
+ };
+
+ if (!implicit_tag) {
+ offset=dissect_ber_identifier(pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(pinfo, tree, tvb, offset, &len, NULL);
+ } else {
+ len=tvb_reported_length_remaining(tvb, offset);
+ }
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, len, ett_phsmeas, NULL, "PhsMeas1");
+
+ sv_data.num_phsMeas = 0;
+ for (i = 0; i < len/8; i++) {
+ if (tree && subtree) {
+ value = tvb_get_ntohl(tvb, offset);
+ qual = tvb_get_ntohl(tvb, offset + 4);
+
+ proto_tree_add_item(subtree, hf_sv_phmeas_instmag_i, tvb, offset, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_bitmask(subtree, tvb, offset + 4, hf_sv_phsmeas_q, ett_phsmeas_q, q_flags, ENC_BIG_ENDIAN);
+
+ if (i < IEC61850_SV_MAX_PHSMEAS_ENTRIES) {
+ sv_data.phsMeas[i].value = value;
+ sv_data.phsMeas[i].qual = qual;
+ sv_data.num_phsMeas++;
+ }
+ }
+
+ offset += 8;
+ }
+
+ return offset;
+}
+
+#include "packet-sv-fn.c"
+
+/*
+* Dissect SV PDUs inside a PPDU.
+*/
+static int
+dissect_sv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item;
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ item = proto_tree_add_item(parent_tree, proto_sv, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_sv);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PNAME);
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ /* APPID */
+ proto_tree_add_item(tree, hf_sv_appid, tvb, offset, 2, ENC_BIG_ENDIAN);
+
+ /* Length */
+ proto_tree_add_item(tree, hf_sv_length, tvb, offset + 2, 2, ENC_BIG_ENDIAN);
+
+ /* Reserved 1 */
+ proto_tree_add_item(tree, hf_sv_reserve1, tvb, offset + 4, 2, ENC_BIG_ENDIAN);
+
+ /* Reserved 2 */
+ proto_tree_add_item(tree, hf_sv_reserve2, tvb, offset + 6, 2, ENC_BIG_ENDIAN);
+
+ offset = 8;
+ while (tvb_reported_length_remaining(tvb, offset) > 0){
+ old_offset = offset;
+ offset = dissect_sv_SampledValues(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ if (offset == old_offset) {
+ proto_tree_add_expert(tree, pinfo, &ei_sv_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+
+ tap_queue_packet(sv_tap, pinfo, &sv_data);
+ return tvb_captured_length(tvb);
+}
+
+
+/*--- proto_register_sv -------------------------------------------*/
+void proto_register_sv(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_sv_appid,
+ { "APPID", "sv.appid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+
+ { &hf_sv_length,
+ { "Length", "sv.length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+
+ { &hf_sv_reserve1,
+ { "Reserved 1", "sv.reserve1", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL }},
+
+ { &hf_sv_reserve2,
+ { "Reserved 2", "sv.reserve2", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL }},
+
+ { &hf_sv_phmeas_instmag_i,
+ { "value", "sv.meas_value", FT_INT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q,
+ { "quality", "sv.meas_quality", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_validity,
+ { "validity", "sv.meas_quality.validity", FT_UINT32, BASE_HEX, VALS(sv_q_validity_vals), Q_VALIDITY_MASK, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_overflow,
+ { "overflow", "sv.meas_quality.overflow", FT_BOOLEAN, 32, NULL, Q_OVERFLOW, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_outofrange,
+ { "out of range", "sv.meas_quality.outofrange", FT_BOOLEAN, 32, NULL, Q_OUTOFRANGE, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_badreference,
+ { "bad reference", "sv.meas_quality.badreference", FT_BOOLEAN, 32, NULL, Q_BADREFERENCE, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_oscillatory,
+ { "oscillatory", "sv.meas_quality.oscillatory", FT_BOOLEAN, 32, NULL, Q_OSCILLATORY, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_failure,
+ { "failure", "sv.meas_quality.failure", FT_BOOLEAN, 32, NULL, Q_FAILURE, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_olddata,
+ { "old data", "sv.meas_quality.olddata", FT_BOOLEAN, 32, NULL, Q_OLDDATA, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_inconsistent,
+ { "inconsistent", "sv.meas_quality.inconsistent", FT_BOOLEAN, 32, NULL, Q_INCONSISTENT, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_inaccurate,
+ { "inaccurate", "sv.meas_quality.inaccurate", FT_BOOLEAN, 32, NULL, Q_INACCURATE, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_source,
+ { "source", "sv.meas_quality.source", FT_UINT32, BASE_HEX, VALS(sv_q_source_vals), Q_SOURCE_MASK, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_test,
+ { "test", "sv.meas_quality.teset", FT_BOOLEAN, 32, NULL, Q_TEST, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_operatorblocked,
+ { "operator blocked", "sv.meas_quality.operatorblocked", FT_BOOLEAN, 32, NULL, Q_OPERATORBLOCKED, NULL, HFILL}},
+
+ { &hf_sv_phsmeas_q_derived,
+ { "derived", "sv.meas_quality.derived", FT_BOOLEAN, 32, NULL, Q_DERIVED, NULL, HFILL}},
+
+
+#include "packet-sv-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_sv,
+ &ett_phsmeas,
+ &ett_phsmeas_q,
+#include "packet-sv-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_sv_mal_utctime, { "sv.malformed.utctime", PI_MALFORMED, PI_WARN, "BER Error: malformed UTCTime encoding", EXPFILL }},
+ { &ei_sv_zero_pdu, { "sv.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte SV PDU", EXPFILL }},
+ };
+
+ expert_module_t* expert_sv;
+ module_t *sv_module;
+
+ /* Register protocol */
+ proto_sv = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("sv", dissect_sv, proto_sv);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_sv, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_sv = expert_register_protocol(proto_sv);
+ expert_register_field_array(expert_sv, ei, array_length(ei));
+ sv_module = prefs_register_protocol(proto_sv, NULL);
+ prefs_register_bool_preference(sv_module, "decode_data_as_phsmeas",
+ "Force decoding of seqData as PhsMeas",
+ NULL, &sv_decode_data_as_phsmeas);
+
+ /* Register tap */
+ sv_tap = register_tap("sv");
+}
+
+/*--- proto_reg_handoff_sv --- */
+void proto_reg_handoff_sv(void) {
+
+ dissector_handle_t sv_handle;
+ sv_handle = find_dissector("sv");
+
+ dissector_add_uint("ethertype", ETHERTYPE_IEC61850_SV, sv_handle);
+}
diff --git a/epan/dissectors/asn1/sv/packet-sv-template.h b/epan/dissectors/asn1/sv/packet-sv-template.h
new file mode 100644
index 0000000000..d19b86528c
--- /dev/null
+++ b/epan/dissectors/asn1/sv/packet-sv-template.h
@@ -0,0 +1,42 @@
+/* packet-sv.h
+ * Routines for IEC 61850 Sampled Vales packet dissection
+ * Michael Bernhard 2008
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __PACKET_SV_H__
+#define __PACKET_SV_H__
+
+#define IEC61850_SV_MAX_PHSMEAS_ENTRIES 20
+
+typedef struct _sv_phs_meas {
+ gint32 value;
+ guint32 qual;
+} sv_phs_meas;
+
+typedef struct _sv_frame_data {
+ guint16 smpCnt;
+ guint8 smpSynch;
+ guint8 num_phsMeas;
+ sv_phs_meas phsMeas[IEC61850_SV_MAX_PHSMEAS_ENTRIES];
+ guint16 smpMod;
+} sv_frame_data;
+
+#endif /*__PACKET_SV_H__*/
diff --git a/epan/dissectors/asn1/sv/sv.asn b/epan/dissectors/asn1/sv/sv.asn
new file mode 100644
index 0000000000..cf67100d3e
--- /dev/null
+++ b/epan/dissectors/asn1/sv/sv.asn
@@ -0,0 +1,28 @@
+IEC61850 DEFINITIONS ::= BEGIN
+
+SampledValues ::= CHOICE {
+ savPdu [APPLICATION 0] IMPLICIT SavPdu,
+ ...
+}
+
+SavPdu ::= SEQUENCE {
+ noASDU [0] IMPLICIT INTEGER(0..65535),
+ seqASDU [2] IMPLICIT SEQUENCE OF ASDU
+}
+
+ASDU ::= SEQUENCE {
+ svID [0] IMPLICIT VisibleString,
+ datSet [1] IMPLICIT VisibleString OPTIONAL,
+ smpCnt [2] IMPLICIT INTEGER(0..65535),
+ confRef [3] IMPLICIT INTEGER(0..4294967295),
+ refrTm [4] IMPLICIT UtcTime OPTIONAL,
+ smpSynch [5] IMPLICIT INTEGER{none(0),local(1),global(2)} OPTIONAL,
+ smpRate [6] IMPLICIT INTEGER(0..65535) OPTIONAL,
+ seqData [7] IMPLICIT Data,
+ smpMod [8] IMPLICIT INTEGER{samplesPerNormalPeriod(0),samplesPerSecond(1),secondsPerSample(2)} OPTIONAL,
+ ...
+}
+UtcTime ::= OCTET STRING
+Data ::= OCTET STRING
+END
+
diff --git a/epan/dissectors/asn1/sv/sv.cnf b/epan/dissectors/asn1/sv/sv.cnf
new file mode 100644
index 0000000000..4b96de73e1
--- /dev/null
+++ b/epan/dissectors/asn1/sv/sv.cnf
@@ -0,0 +1,84 @@
+# sv.cnf
+# SampledValue conformation file
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.PDU
+
+#.NO_EMIT ONLY_VALS
+SampledValues
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.FN_BODY ASDU/smpCnt VAL_PTR = &value
+ guint32 value;
+%(DEFAULT_BODY)s
+ sv_data.smpCnt = value;
+#.END
+
+#.FN_BODY UtcTime
+ guint32 len;
+ guint32 seconds;
+ guint32 fraction;
+ guint32 nanoseconds;
+ nstime_t ts;
+ gchar * ptime;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len != 8)
+ {
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_sv_mal_utctime, tvb, offset, len,
+ "BER Error: malformed UTCTime encoding, length must be 8 bytes");
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
+ }
+ return offset;
+ }
+
+ seconds = tvb_get_ntohl(tvb, offset);
+ fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
+ nanoseconds = (guint32)( ((guint64)fraction * G_GUINT64_CONSTANT(1000000000)) / G_GUINT64_CONSTANT(0x100000000) ) ;
+
+ ts.secs = seconds;
+ ts.nsecs = nanoseconds;
+
+ ptime = abs_time_to_str(wmem_packet_scope(), &ts, ABSOLUTE_TIME_UTC, TRUE);
+
+ if(hf_index >= 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
+ offset += 8;
+ return offset;
+#.END
+
+#.TYPE_ATTR
+UtcTime TYPE = FT_STRING DISPLAY = BASE_NONE
+
+#.FN_BODY ASDU/smpSynch VAL_PTR = &value
+ guint32 value;
+%(DEFAULT_BODY)s
+ sv_data.smpSynch = value;
+#.END
+
+#.FN_BODY ASDU/smpMod VAL_PTR = &value
+ guint32 value;
+%(DEFAULT_BODY)s
+ sv_data.smpMod = value;
+#.END
+
+#.FN_BODY Data
+ if (sv_decode_data_as_phsmeas) {
+ offset = dissect_PhsMeas1(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index);
+ } else {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+ }
+#.END
+
+#.END_OF_CNF
diff --git a/epan/dissectors/asn1/t124/CMakeLists.txt b/epan/dissectors/asn1/t124/CMakeLists.txt
new file mode 100644
index 0000000000..4fbf400358
--- /dev/null
+++ b/epan/dissectors/asn1/t124/CMakeLists.txt
@@ -0,0 +1,49 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME t124 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST_LATE
+ ../t125/MCS-PROTOCOL.asn
+)
+
+set( ASN_FILE_LIST
+ GCC-PROTOCOL.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/t124/GCC-PROTOCOL.asn b/epan/dissectors/asn1/t124/GCC-PROTOCOL.asn
new file mode 100644
index 0000000000..0dfe881c12
--- /dev/null
+++ b/epan/dissectors/asn1/t124/GCC-PROTOCOL.asn
@@ -0,0 +1,1179 @@
+-- Module GCC-PROTOCOL (T.124:01/2007)
+-- See also ITU-T T.124 (01/2007)
+-- See also the index of all ASN.1 assignments needed in this document
+
+GCC-PROTOCOL {itu-t(0) recommendation(0) t(20) t124(124) version(0) 2 asn1Modules(2) gcc-protocol(1)}
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- Export all symbols
+-- =============================================================================
+-- Part 1: Elements of which messages are composed
+-- =============================================================================
+ChannelID ::= INTEGER(1..65535)
+
+StaticChannelID ::= INTEGER(1..1000)
+
+-- Those assigned by specifications
+DynamicChannelID ::= INTEGER(1001..65535)
+
+-- Those created and deleted by MCS
+UserID ::= DynamicChannelID
+
+TokenID ::= INTEGER(1..65535)
+
+StaticTokenID ::= INTEGER(1..16383)
+
+-- Those assigned by specifications
+DynamicTokenID ::= INTEGER(16384..65535)
+
+-- Those assigned by the registry
+Time ::= INTEGER(-2147483648..2147483647)
+
+-- Time in seconds
+Handle ::= INTEGER(0..4294967295)
+
+-- 32-bit value
+H221NonStandardIdentifier ::= OCTET STRING(SIZE (4..255))
+
+-- First four octets shall be country code and
+-- Manufacturer code, assigned as specified in
+-- Annex A/H.221 for NS-cap and NS-comm
+Key ::= CHOICE -- Identifier of a standard or non-standard object
+ {
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandardIdentifier
+}
+
+NonStandardParameter ::= SEQUENCE {key Key,
+ data OCTET STRING
+}
+
+TextString ::= BMPString(SIZE (0..255))
+
+-- Basic Multilingual Plane of ISO/IEC 10646-1 (Unicode)
+--simpleTextFirstCharacter UniversalString ::=
+-- {0, 0, 0, 0}
+
+--simpleTextLastCharacter UniversalString ::= {0, 0, 0, 255}
+
+SimpleTextString ::=
+ BMPString(SIZE (0..255))
+-- (FROM (simpleTextFirstCharacter..simpleTextLastCharacter))
+
+SimpleNumericString ::= NumericString(SIZE (1..255))(FROM ("0123456789"))
+
+DiallingString ::= NumericString(SIZE (1..16))(FROM ("0123456789"))
+
+SubAddressString ::= NumericString(SIZE (1..40))(FROM ("0123456789"))
+
+ExtraDiallingString ::= TextString(SIZE (1..255))(FROM ("0123456789#*,"))
+
+UserData ::= SET OF SEQUENCE {key Key,
+ value OCTET STRING OPTIONAL}
+
+Password ::= SEQUENCE {
+ numeric SimpleNumericString,
+ text SimpleTextString OPTIONAL,
+ ...,
+ unicodeText TextString OPTIONAL
+}
+
+PasswordSelector ::= CHOICE {
+ numeric SimpleNumericString,
+ text SimpleTextString,
+ ...,
+ unicodeText TextString
+}
+
+ChallengeResponseItem ::= CHOICE {
+ passwordString PasswordSelector,
+ responseData UserData,
+ ...
+}
+
+ChallengeResponseAlgorithm ::= CHOICE {
+ passwordInTheClear NULL,
+ nonStandardAlgorithm NonStandardParameter,
+ ...
+}
+
+ChallengeItem ::= SEQUENCE {
+ responseAlgorithm ChallengeResponseAlgorithm,
+ challengeData UserData,
+ ...
+}
+
+ChallengeRequest ::= SEQUENCE {
+ challengeTag INTEGER,
+ challengeSet SET OF ChallengeItem,
+ -- Set of algorithms offered for response
+ ...
+}
+
+ChallengeResponse ::= SEQUENCE {
+ challengeTag INTEGER,
+ responseAlgorithm ChallengeResponseAlgorithm,
+ -- Specific algorithm selected from the set of
+ -- items presented in the ChallengeRequest
+ responseItem ChallengeResponseItem,
+ ...
+}
+
+PasswordChallengeRequestResponse ::= CHOICE {
+ passwordInTheClear PasswordSelector,
+ challengeRequestResponse
+ SEQUENCE {challengeRequest ChallengeRequest OPTIONAL,
+ challengeResponse ChallengeResponse OPTIONAL,
+ ...},
+ ...
+}
+
+ConferenceName ::= SEQUENCE {
+ numeric SimpleNumericString,
+ text SimpleTextString OPTIONAL,
+ ...,
+ unicodeText TextString OPTIONAL
+}
+
+ConferenceNameSelector ::= CHOICE {
+ numeric SimpleNumericString,
+ text SimpleTextString,
+ ...,
+ unicodeText TextString
+}
+
+ConferenceNameModifier ::= SimpleNumericString
+
+Privilege ::= ENUMERATED {
+ terminate(0), ejectUser(1), add(2), lockUnlock(3), transfer(4), ...
+ }
+
+TerminationMethod ::= ENUMERATED {automatic(0), manual(1), ...
+ }
+
+ConferencePriorityScheme ::= CHOICE {
+ nonStandardScheme NonStandardParameter,
+ ...
+}
+
+ConferencePriority ::= SEQUENCE {
+ priority INTEGER(0..65535),
+ scheme ConferencePriorityScheme,
+ ...
+}
+
+NodeCategory ::= CHOICE {
+ conventional NULL,
+ counted NULL,
+ anonymous NULL,
+ nonStandardCategory NonStandardParameter,
+ ...
+}
+
+ConferenceMode ::= CHOICE {
+ conventional-only NULL,
+ counted-only NULL,
+ anonymous-only NULL,
+ conventional-control NULL,
+ unrestricted-mode NULL,
+ non-standard-mode NonStandardParameter,
+ ...
+}
+
+NetworkAddress ::=
+ SEQUENCE (SIZE (1..64)) OF
+ CHOICE -- Listed in order of use
+ {aggregatedChannel
+ SEQUENCE {transferModes
+ SEQUENCE-- One or more-- {speech BOOLEAN,
+ voice-band BOOLEAN,
+ digital-56k BOOLEAN,
+ digital-64k BOOLEAN,
+ digital-128k BOOLEAN,
+ digital-192k BOOLEAN,
+ digital-256k BOOLEAN,
+ digital-320k BOOLEAN,
+ digital-384k BOOLEAN,
+ digital-512k BOOLEAN,
+ digital-768k BOOLEAN,
+ digital-1152k BOOLEAN,
+ digital-1472k BOOLEAN,
+ digital-1536k BOOLEAN,
+ digital-1920k BOOLEAN,
+ packet-mode BOOLEAN,
+ frame-mode BOOLEAN,
+ atm BOOLEAN,
+ ...},
+ internationalNumber DiallingString,
+ subAddress SubAddressString OPTIONAL,
+ extraDialling ExtraDiallingString OPTIONAL,
+ highLayerCompatibility
+ SEQUENCE {telephony3kHz BOOLEAN,
+ telephony7kHz BOOLEAN,
+ videotelephony BOOLEAN,
+ videoconference BOOLEAN,
+ audiographic BOOLEAN,
+ audiovisual BOOLEAN,
+ multimedia BOOLEAN,
+ ...} OPTIONAL,
+ ...},
+ transportConnection
+ SEQUENCE {nsapAddress OCTET STRING(SIZE (1..20)),
+ transportSelector OCTET STRING OPTIONAL},
+ nonStandard NonStandardParameter,
+ ...}
+
+MediaList ::= SEQUENCE {audio BOOLEAN,
+ video BOOLEAN,
+ data BOOLEAN,
+ ...
+}
+
+ChannelAggregationMethod ::= CHOICE {
+ h221 NULL,
+ h244 NULL,
+ iso-iec-13871 NULL,
+ -- The actual mode of bonding is dynamically selected according
+ -- to the procedures described in ISO/IEC 13871.
+ nonStandard NonStandardParameter,
+ ...
+}
+
+Profile ::= CHOICE {
+ simpleProfile
+ CHOICE {-- Basic transfer modes:
+ speech NULL, -- Simple telephony--
+ telephony-3kHz NULL, -- Rec. G.711--
+ telephony-7kHz NULL, -- Rec. G.722--
+ voice-band NULL, -- Modems--
+ frameRelay NULL,
+ -- T.120-only data profiles (Rec. T.123):
+ t123-pstn-basic NULL,
+ t123-psdn-basic NULL,
+ t123-b-isdn-basic NULL},
+ multimediaProfile
+ SEQUENCE {profile
+ CHOICE {h310 NULL,
+ h320 NULL,
+ h321 NULL,
+ h322 NULL,
+ h323 NULL,
+ h324 NULL,
+ h324m NULL,
+ asvd NULL,
+ dsvd NULL},
+ t120Data BOOLEAN},
+ dsmccDownloadProfile NULL,
+ nonStandard NonStandardParameter,
+ ...
+}
+
+ExtendedE164NetworkAddress ::= SEQUENCE {
+ internationalNumber DiallingString,
+ subAddress SubAddressString OPTIONAL,
+ extraDialling ExtraDiallingString OPTIONAL,
+ ...
+}
+
+TransportAddress ::= SEQUENCE {
+ nsapAddress OCTET STRING(SIZE (1..20)),
+ transportSelector OCTET STRING OPTIONAL
+}
+
+GSTNConnection ::= SEQUENCE {networkAddress ExtendedE164NetworkAddress,
+ ...
+}
+
+ISDNConnection ::= SEQUENCE {
+ circuitTypes
+ SET OF
+ CHOICE {digital-64k NULL,
+ digital-2x64k NULL,
+ digital-384k NULL,
+ digital-1536 NULL,
+ digital-1920k NULL,
+ multirate-base-64k INTEGER(1..30) -- See Note 1 --},
+ networkAddress ExtendedE164NetworkAddress,
+ highLayerCompatibility
+ SEQUENCE {-- Those are supported code points for IE HLC of the D
+ -- protocol (Rec. Q.931).
+ telephony3kHz BOOLEAN,
+ telephony7kHz BOOLEAN,
+ videotelephony BOOLEAN,
+ videoconference BOOLEAN,
+ audiographic BOOLEAN,
+ audiovisual BOOLEAN,
+ multimedia BOOLEAN,
+ ...} OPTIONAL,
+ ...
+}
+
+-- Note 1: digital-2x64k differs from multirate-base-64k
+-- with a multiplier value of 2;
+-- in the first case
+-- the network is requested an 8 kHz integrity with Restricted
+-- Differential Time Delay (RDTD);
+-- in the second case
+-- the network is requested a Time Slot
+-- Sequence integrity (see 4.5.5/Q.931)
+CSDNConnection ::= SEQUENCE {
+ circuitTypes SET OF CHOICE {digital-56k NULL,
+ digital-64k NULL},
+ networkAddress ExtendedE164NetworkAddress,
+ ...
+}
+
+PSDNConnection ::= SEQUENCE {
+ networkAddress
+ CHOICE {extendedE164NetworkAddress ExtendedE164NetworkAddress,
+ transportAddress TransportAddress,
+ nonStandard NonStandardParameter},
+ ...
+}
+
+ATMConnection ::= SEQUENCE {
+ networkAddress
+ CHOICE {extendedE164 ExtendedE164NetworkAddress,
+ nsapAddress TransportAddress,
+ -- this case is reserved for NSAPs only: the
+ -- optional transport selector shall never be used
+ nonStandard NonStandardParameter},
+ maxTransferRate INTEGER(0..MAX) OPTIONAL,
+ -- in cells per seconds
+ ...
+}
+
+NetworkConnection ::= CHOICE {
+ gstnConnection GSTNConnection,
+ isdnConnection ISDNConnection,
+ csdnConnection CSDNConnection,
+ psdnConnection PSDNConnection,
+ atmConnection ATMConnection,
+ extendedE164NetworkAddress ExtendedE164NetworkAddress,
+ -- Note: LAN connections and leased
+ transportAddress TransportAddress,
+ -- lines (Rec. G.703/G.704) may be
+ nonStandard NonStandardParameter,
+ -- covered by one of these
+ ...
+}
+
+NetworkAddressV2 ::=
+ SET OF
+ SEQUENCE {networkConnection
+ CHOICE {singleConnection NetworkConnection,
+ aggregatedConnections
+ SEQUENCE {connectionList
+ SET (SIZE (1..30)) OF
+ CHOICE {isdnConnection ISDNConnection,
+ csdnConnection CSDNConnection,
+ ...},
+ aggregationMethods
+ SET OF ChannelAggregationMethod OPTIONAL,
+ ...}},
+ profiles SET OF Profile OPTIONAL,
+ mediaConcerned MediaList OPTIONAL,
+ ...}
+
+NodeType ::= ENUMERATED {terminal(0), multiportTerminal(1), mcu(2), ...
+ }
+
+NodeProperties ::= SEQUENCE {
+ managementDevice BOOLEAN,
+ -- Is the node a device such as a reservation system
+ peripheralDevice BOOLEAN,
+ -- Is the node a peripheral to a primary node
+ ...
+}
+
+AsymmetryIndicator ::= CHOICE {
+ callingNode NULL,
+ calledNode NULL,
+ unknown INTEGER(0..4294967295)
+ -- Uniformly distributed 32-bit random number
+}
+
+AlternativeNodeID ::= CHOICE {h243NodeID OCTET STRING(SIZE (2)),
+ ...
+}
+
+ConferenceDescriptor ::= SEQUENCE {
+ conferenceName ConferenceName,
+ conferenceNameModifier ConferenceNameModifier OPTIONAL,
+ conferenceDescription TextString OPTIONAL,
+ lockedConference BOOLEAN,
+ passwordInTheClearRequired BOOLEAN,
+ networkAddress NetworkAddress OPTIONAL,
+ ...,
+ defaultConferenceFlag BOOLEAN,
+ conferenceMode ConferenceMode
+}
+
+NodeRecord ::= SEQUENCE {
+ superiorNode UserID OPTIONAL,
+ -- Not present only for the Top GCC Provider
+ nodeType NodeType,
+ nodeProperties NodeProperties,
+ nodeName TextString OPTIONAL,
+ participantsList SEQUENCE OF TextString OPTIONAL,
+ siteInformation TextString OPTIONAL,
+ networkAddress NetworkAddress OPTIONAL,
+ alternativeNodeID AlternativeNodeID OPTIONAL,
+ userData UserData OPTIONAL,
+ ...,
+ nodeCategory NodeCategory OPTIONAL,
+ networkAddressV2 NetworkAddressV2 OPTIONAL
+}
+
+SessionKey ::= SEQUENCE
+{
+ applicationProtocolKey Key,
+ sessionID ChannelID OPTIONAL
+}
+
+ChannelType ::= ENUMERATED {
+ static(0), dynamicMulticast(1), dynamicPrivate(2), dynamicUserId(3)
+}
+
+ApplicationRecord ::= SEQUENCE {
+ applicationActive BOOLEAN,
+ -- Active/Inactive flag
+ conductingOperationCapable BOOLEAN,
+ -- Maximum one per node per session
+ startupChannel ChannelType OPTIONAL,
+ applicationUserID UserID OPTIONAL,
+ -- User ID assigned to the Application Protocol Entity
+ nonCollapsingCapabilities
+ SET OF
+ SEQUENCE {capabilityID CapabilityID,
+ applicationData OCTET STRING OPTIONAL} OPTIONAL,
+ ...
+}
+
+CapabilityID ::= CHOICE {
+ standard INTEGER(0..65535),
+ -- Assigned by Application Protocol specifications
+ nonStandard Key
+}
+
+CapabilityClass ::= CHOICE {
+ logical NULL,
+ unsignedMin INTEGER(0..MAX), -- Capability value
+ unsignedMax INTEGER(0..MAX), -- Capability value
+ ...
+}
+
+EntityID ::= INTEGER(0..65535)
+
+ApplicationInvokeSpecifier ::= SEQUENCE {
+ sessionKey SessionKey,
+ expectedCapabilitySet
+ SET OF
+ SEQUENCE {capabilityID CapabilityID,
+ capabilityClass CapabilityClass,
+ ...} OPTIONAL,
+ startupChannel ChannelType OPTIONAL,
+ mandatoryFlag BOOLEAN,
+ -- TRUE indicates required Application Protocol Entity
+ ...
+}
+
+RegistryKey ::= SEQUENCE {
+ sessionKey SessionKey,
+ resourceID OCTET STRING(SIZE (0..64))
+}
+
+RegistryItem ::= CHOICE {
+ channelID DynamicChannelID,
+ tokenID DynamicTokenID,
+ parameter OCTET STRING(SIZE (0..64)),
+ vacant NULL,
+ ...
+}
+
+RegistryEntryOwner ::= CHOICE {
+ owned
+ SEQUENCE {nodeID UserID, -- Node ID of the owning node--
+ entityID EntityID -- Entity ID of the owning-- }, -- Appliction Protocol Entity
+ notOwned NULL -- There is no current owner
+}
+
+RegistryModificationRights ::= ENUMERATED {owner(0), session(1), public(2)}
+
+-- ============================================================================
+-- Part 2: PDU Messages
+-- ============================================================================
+UserIDIndication ::= SEQUENCE {tag INTEGER,
+ ...
+}
+
+ConferenceCreateRequest ::=
+ SEQUENCE { -- MCS-Connect-Provider request user data
+ conferenceName ConferenceName,
+ convenerPassword Password OPTIONAL,
+ password Password OPTIONAL,
+ lockedConference BOOLEAN,
+ listedConference BOOLEAN,
+ conductibleConference BOOLEAN,
+ terminationMethod TerminationMethod,
+ conductorPrivileges SET OF Privilege OPTIONAL,
+ conductedPrivileges SET OF Privilege OPTIONAL,
+ nonConductedPrivileges SET OF Privilege OPTIONAL,
+ conferenceDescription TextString OPTIONAL,
+ callerIdentifier TextString OPTIONAL,
+ userData UserData OPTIONAL,
+ ...,
+ conferencePriority ConferencePriority OPTIONAL,
+ conferenceMode ConferenceMode OPTIONAL
+}
+
+ConferenceCreateResponse ::=
+ SEQUENCE { -- MCS-Connect-Provider response user data
+ nodeID UserID, -- Node ID of the sending node
+ tag INTEGER,
+ result
+ ENUMERATED {success(0), userRejected(1), resourcesNotAvailable(2),
+ rejectedForSymmetryBreaking(3),
+ lockedConferenceNotSupported(4), ...
+ },
+ userData UserData OPTIONAL,
+ ...
+}
+
+ConferenceQueryRequest ::= SEQUENCE { -- MCS-Connect-Provider request user data
+ nodeType NodeType,
+ asymmetryIndicator AsymmetryIndicator OPTIONAL,
+ userData UserData OPTIONAL,
+ ...
+}
+
+ConferenceQueryResponse ::=
+ SEQUENCE { -- MCS-Connect-Provider response user data
+ nodeType NodeType,
+ asymmetryIndicator AsymmetryIndicator OPTIONAL,
+ conferenceList SET OF ConferenceDescriptor,
+ result ENUMERATED {success(0), userRejected(1), ...
+ },
+ userData UserData OPTIONAL,
+ ...,
+ waitForInvitationFlag BOOLEAN OPTIONAL,
+ noUnlistedConferenceFlag BOOLEAN OPTIONAL
+}
+
+ConferenceJoinRequest ::=
+ SEQUENCE { -- MCS-Connect-Provider request user data as well as
+ -- MCS-Send-Data on Node ID Channel of Top GCC sent
+ -- by the receiver of the MCS-Connect-Provider
+ conferenceName ConferenceNameSelector OPTIONAL,
+ -- Required when part of MCS-Connect-Provider
+ conferenceNameModifier ConferenceNameModifier OPTIONAL,
+ tag INTEGER OPTIONAL,
+ -- Filled in when sent on Node ID Channel of Top GCC
+ password PasswordChallengeRequestResponse OPTIONAL,
+ convenerPassword PasswordSelector OPTIONAL,
+ callerIdentifier TextString OPTIONAL,
+ userData UserData OPTIONAL,
+ ...,
+ nodeCategory NodeCategory OPTIONAL
+}
+
+ConferenceJoinResponse ::=
+ SEQUENCE { -- MCS-Connect-Provider response user data as well as
+ -- MCS-Send-Data on Node ID Channel of
+ -- the receiver of the MCS-Connect-Provider
+ nodeID UserID OPTIONAL,
+ -- Node ID of directly connected node only
+ topNodeID UserID,
+ -- Node ID of Top GCC Provider
+ tag INTEGER,
+ conferenceNameAlias ConferenceNameSelector OPTIONAL,
+ passwordInTheClearRequired BOOLEAN,
+ lockedConference BOOLEAN,
+ listedConference BOOLEAN,
+ conductibleConference BOOLEAN,
+ terminationMethod TerminationMethod,
+ conductorPrivileges SET OF Privilege OPTIONAL,
+ -- No privilege shall be listed more than once
+ conductedPrivileges SET OF Privilege OPTIONAL,
+ -- No privilege shall be listed more than once
+ nonConductedPrivileges SET OF Privilege OPTIONAL,
+ -- No privilege shall be listed more than once
+ conferenceDescription TextString OPTIONAL,
+ password PasswordChallengeRequestResponse OPTIONAL,
+ result
+ ENUMERATED {success(0), userRejected(1), invalidConference(2),
+ invalidPassword(3), invalidConvenerPassword(4),
+ challengeResponseRequired(5), invalidChallengeResponse(6),
+ ...
+ },
+ userData UserData OPTIONAL,
+ ...,
+ nodeCategory NodeCategory OPTIONAL,
+ conferenceMode ConferenceMode OPTIONAL
+}
+
+ConferenceInviteRequest ::=
+ SEQUENCE { -- MCS-Connect-Provider request user data
+ conferenceName ConferenceName,
+ nodeID UserID, -- Node ID of the sending node
+ topNodeID UserID, -- Node ID of Top GCC Provider
+ tag INTEGER,
+ passwordInTheClearRequired BOOLEAN,
+ lockedConference BOOLEAN,
+ listedConference BOOLEAN,
+ conductibleConference BOOLEAN,
+ terminationMethod TerminationMethod,
+ conductorPrivileges SET OF Privilege OPTIONAL,
+ -- No privilege shall be listed more than once
+ conductedPrivileges SET OF Privilege OPTIONAL,
+ -- No privilege shall be listed more than once
+ nonConductedPrivileges SET OF Privilege OPTIONAL,
+ -- No privilege shall be listed more than once
+ conferenceDescription TextString OPTIONAL,
+ callerIdentifier TextString OPTIONAL,
+ userData UserData OPTIONAL,
+ ...,
+ conferencePriority ConferencePriority OPTIONAL,
+ nodeCategory NodeCategory OPTIONAL,
+ conferenceMode ConferenceMode OPTIONAL
+}
+
+ConferenceInviteResponse ::=
+ SEQUENCE { -- MCS-Connect-Provider response user data
+ result ENUMERATED {success(0), userRejected(1), ...
+ },
+ userData UserData OPTIONAL,
+ ...
+}
+
+ConferenceAddRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC or
+ -- Node ID Channel of Adding MCU if specified
+ networkAddress NetworkAddress,
+ requestingNode UserID,
+ tag INTEGER,
+ addingMCU UserID OPTIONAL,
+ userData UserData OPTIONAL,
+ ...,
+ nodeCategory NodeCategory OPTIONAL,
+ networkAddressV2 NetworkAddressV2
+}
+
+ConferenceAddResponse ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of requester
+ tag INTEGER,
+ result
+ ENUMERATED {success(0), invalidRequester(1), invalidNetworkType(2),
+ invalidNetworkAddress(3), addedNodeBusy(4), networkBusy(5),
+ noPortsAvailable(6), connectionUnsuccessful(7), ...
+ },
+ userData UserData OPTIONAL,
+ ...
+}
+
+ConferenceLockRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ -- No parameters
+ ...
+}
+
+ConferenceLockResponse ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of requester
+ result ENUMERATED {success(0), invalidRequester(1), alreadyLocked(2), ...
+ },
+ ...
+}
+
+ConferenceLockIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ -- or MCS-Send-Data on Node ID Channel
+ -- No parameters
+ ...
+}
+
+ConferenceUnlockRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ -- No parameters
+ ...
+}
+
+ConferenceUnlockResponse ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of requester
+ result ENUMERATED {success(0), invalidRequester(1), alreadyUnlocked(2), ...
+ },
+ ...
+}
+
+ConferenceUnlockIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ -- or MCS-Send-Data on Node ID Channel
+ -- No parameters
+ ...
+}
+
+ConferenceTerminateRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ reason ENUMERATED {userInitiated(0), timedConferenceTermination(1), ...
+ },
+ ...
+}
+
+ConferenceTerminateResponse ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of requester
+ result ENUMERATED {success(0), invalidRequester(1), ...
+ },
+ ...
+}
+
+ConferenceTerminateIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ reason ENUMERATED {userInitiated(0), timedConferenceTermination(1), ...
+ },
+ ...
+}
+
+ConferenceEjectUserRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ nodeToEject UserID, -- Node ID of the node to eject
+ reason ENUMERATED {userInitiated(0), ...
+ },
+ ...
+}
+
+ConferenceEjectUserResponse ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of requester
+ nodeToEject UserID, -- Node ID of the node to eject
+ result
+ ENUMERATED {success(0), invalidRequester(1), invalidNode(2), ...
+ },
+ ...
+}
+
+ConferenceEjectUserIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ nodeToEject UserID, -- Node ID of the node to eject
+ reason
+ ENUMERATED {userInitiated(0), higherNodeDisconnected(1),
+ higherNodeEjected(2), ...
+ },
+ ...
+}
+
+ConferenceTransferRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ conferenceName ConferenceNameSelector,
+ -- Name of conference to transfer to
+ conferenceNameModifier ConferenceNameModifier OPTIONAL,
+ networkAddress NetworkAddress OPTIONAL,
+ transferringNodes SET (SIZE (1..65536)) OF UserID OPTIONAL,
+ password PasswordSelector OPTIONAL,
+ ...,
+ networkAddressV2 NetworkAddressV2 OPTIONAL
+}
+
+ConferenceTransferResponse ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of requester
+ conferenceName ConferenceNameSelector,
+ -- Name of conference to transfer to
+ conferenceNameModifier ConferenceNameModifier OPTIONAL,
+ transferringNodes SET (SIZE (1..65536)) OF UserID OPTIONAL,
+ result ENUMERATED {success(0), invalidRequester(1), ...
+ },
+ ...
+}
+
+ConferenceTransferIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ conferenceName ConferenceNameSelector,
+ -- Name of conference to transfer to
+ conferenceNameModifier ConferenceNameModifier OPTIONAL,
+ networkAddress NetworkAddress OPTIONAL,
+ transferringNodes SET (SIZE (1..65536)) OF UserID OPTIONAL,
+ -- List of Node IDs,
+ -- not present if destined for all nodes
+ password PasswordSelector OPTIONAL,
+ ...,
+ networkAddressV2 NetworkAddressV2 OPTIONAL
+}
+
+RosterUpdateIndication ::= SEQUENCE { -- MCS-Send-Data on Node ID Channel or
+ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ fullRefresh BOOLEAN,
+ -- Conference Roster and all
+ -- ApplicationProtocol Sessions refreshed
+ nodeInformation
+ SEQUENCE {nodeRecordList
+ CHOICE {noChange NULL,
+ refresh
+ SET (SIZE (1..65536)) OF
+ SEQUENCE
+ -- One for each node in the conference;
+ -- no node shall be listed more than once
+ {nodeID UserID, -- Node ID of the node--
+ nodeRecord NodeRecord},
+ update
+ SET (SIZE (1..65536)) OF
+ SEQUENCE
+ -- One for each node changing its node record;
+ -- no node shall be listed more than once
+ {nodeID UserID, -- Node ID of the node--
+ nodeUpdate
+ CHOICE {addRecord NodeRecord,
+ replaceRecord NodeRecord,
+ removeRecord NULL,
+ ...}},
+ ...},
+ rosterInstanceNumber INTEGER(0..65535),
+ nodesAdded BOOLEAN,
+ -- Nodes have been added since last instance
+ nodesRemoved BOOLEAN,
+ -- Nodes have been removed since last instance
+ ...},
+ applicationInformation
+ SET (SIZE (0..65535)) OF
+ SEQUENCE
+ -- One for each Application Protocol Session;
+ -- all Application Protocol Sessions if full refresh;
+ -- no Application Protocol shall be
+ -- listed more than once
+ {
+ sessionKey SessionKey,
+ applicationRecordList CHOICE
+ {
+ noChange NULL,
+ refresh SET (SIZE (0..65535)) OF
+ SEQUENCE
+ -- One for each node with the
+ -- Application Protocol Session enrolled;
+ -- no node shall be listed more than once
+ {nodeID UserID,
+ -- Node ID of node
+ entityID EntityID,
+ -- ID for this Application Protocol Entity at this node
+ applicationRecord ApplicationRecord},
+ update
+ SET (SIZE (1..65536)) OF
+ SEQUENCE
+ -- One for each node modifying its Application Record;
+ -- no node shall be listed more than once
+ {nodeID UserID,
+ -- Node ID of node
+ entityID EntityID,
+ -- ID for this Application Protocol Entity at this node
+ applicationUpdate
+ CHOICE {addRecord ApplicationRecord,
+ replaceRecord ApplicationRecord,
+ removeRecord NULL,
+ ...}},
+ ...},
+ applicationCapabilitiesList
+ CHOICE {noChange NULL,
+ refresh
+ SET OF
+ SEQUENCE {capabilityID CapabilityID,
+ capabilityClass CapabilityClass,
+ numberOfEntities INTEGER(1..65536),
+ -- Number of Application Protocol Entities
+ -- which issued the capability
+ ...},
+ ...},
+ rosterInstanceNumber INTEGER(0..65535),
+ peerEntitiesAdded BOOLEAN,
+ -- Peer Entities have been added since last instance
+ peerEntitiesRemoved BOOLEAN,
+ -- Peer Entities have been removed since last instance
+ ...},
+ ...
+}
+
+ApplicationInvokeIndication ::=
+ SEQUENCE { -- MCS-Send-Data or MCS-Uniform-Send-Data
+ -- on GCC-Broadcast-Channel or Node ID Channel
+ applicationProtocolEntiyList
+ SET (SIZE (1..65536)) OF ApplicationInvokeSpecifier,
+ destinationNodes SET (SIZE (1..65536)) OF UserID OPTIONAL,
+ -- List of Node IDs,
+ -- not present if destined for all nodes
+ ...
+}
+
+RegistryRegisterChannelRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ entityID EntityID,
+ key RegistryKey,
+ channelID DynamicChannelID,
+ ...
+}
+
+RegistryAssignTokenRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ entityID EntityID,
+ key RegistryKey,
+ ...
+}
+
+RegistrySetParameterRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ entityID EntityID,
+ key RegistryKey,
+ parameter OCTET STRING(SIZE (0..64)),
+ modificationRights RegistryModificationRights OPTIONAL,
+ ...
+}
+
+RegistryRetrieveEntryRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ entityID EntityID,
+ key RegistryKey,
+ ...
+}
+
+RegistryDeleteEntryRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ entityID EntityID,
+ key RegistryKey,
+ ...
+}
+
+RegistryMonitorEntryRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ entityID EntityID,
+ key RegistryKey,
+ ...
+}
+
+RegistryMonitorEntryIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ key RegistryKey,
+ item RegistryItem,
+ -- Contents: channel, token, parameter, or empty
+ owner RegistryEntryOwner,
+ modificationRights RegistryModificationRights OPTIONAL,
+ ...
+}
+
+RegistryAllocateHandleRequest ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of Top GCC
+ entityID EntityID,
+ numberOfHandles INTEGER(1..1024),
+ ...
+}
+
+RegistryAllocateHandleResponse ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of requester
+ entityID EntityID,
+ numberOfHandles INTEGER(1..1024),
+ firstHandle Handle,
+ result ENUMERATED {successful(0), noHandlesAvailable(1), ...
+ },
+ ...
+}
+
+RegistryResponse ::=
+ SEQUENCE { -- MCS-Send-Data on Node ID Channel of requester
+ entityID EntityID,
+ -- Entity ID of the requesting Application Protocol Entity
+ primitiveType
+ ENUMERATED {registerChannel(0), assignToken(1), setParameter(2),
+ retrieveEntry(3), deleteEntry(4), monitorEntry(5), ...
+ },
+ key RegistryKey,
+ -- Database index
+ item RegistryItem,
+ -- Contents: channel, token, parameter, or vacant
+ owner RegistryEntryOwner,
+ modificationRights RegistryModificationRights OPTIONAL,
+ result
+ ENUMERATED {successful(0), belongsToOther(1), tooManyEntries(2),
+ inconsistentType(3), entryNotFound(4), entryAlreadyExists(5),
+ invalidRequester(6), ...
+ },
+ ...
+}
+
+ConductorAssignIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ conductingNode UserID,
+ ...
+}
+
+ConductorReleaseIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ -- No parameters
+ ...
+}
+
+ConductorPermissionAskIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ grantFlag BOOLEAN,
+ -- TRUE to request permission grant, FALSE to release
+ ...
+}
+
+ConductorPermissionGrantIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ permissionList SEQUENCE (SIZE (0..65535)) OF UserID,
+ -- Node ID of nodes granted permission
+ waitingList SEQUENCE (SIZE (1..65536)) OF UserID OPTIONAL,
+ -- Node ID of nodes waiting form permission
+ ...
+}
+
+ConferenceTimeRemainingIndication ::=
+ SEQUENCE { -- MCS-Send-Data on GCC-Broadcast-Channel
+ timeRemaining Time,
+ nodeID UserID OPTIONAL,
+ ...
+}
+
+ConferenceTimeInquireIndication ::=
+ SEQUENCE { -- MCS-Send-Data on GCC-Convener-Channel
+ nodeSpecificTimeFlag BOOLEAN,
+ -- FALSE for conference-wide, TRUE for node-specific
+ ...
+}
+
+ConferenceTimeExtendIndication ::=
+ SEQUENCE { -- MCS-Send-Data on GCC-Convener-Channel
+ timeToExtend Time,
+ nodeSpecificTimeFlag BOOLEAN,
+ -- FALSE for conference-wide, TRUE for node-specific
+ ...
+}
+
+ConferenceAssistanceIndication ::=
+ SEQUENCE { -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
+ userData UserData OPTIONAL,
+ ...
+}
+
+TextMessageIndication ::= SEQUENCE { -- MCS-Send-Data or MCS-Uniform-Send-Data
+ message TextString,
+ -- on GCC-Broadcast-Channel or Node ID Channel
+ ...
+}
+
+RosterRefreshRequest ::= SEQUENCE {
+ nodeID UserID,
+ nodeCategory NodeCategory,
+ fullRefresh BOOLEAN,
+ sendConferenceRoster BOOLEAN OPTIONAL,
+ applicationList
+ SEQUENCE {applicationKeyList
+ SET OF
+ SEQUENCE {applicationProtocolKey Key,
+ nonStandardParameter
+ NonStandardParameter OPTIONAL,
+ ...},
+ nonStandardParameter NonStandardParameter OPTIONAL,
+ ...} OPTIONAL,
+ sessionList
+ SEQUENCE {sessionKeyList
+ SET OF
+ SEQUENCE {sessionKey SessionKey,
+ nonStandardParameter NonStandardParameter OPTIONAL,
+ ...},
+ nonStandardParameter NonStandardParameter OPTIONAL,
+ ...} OPTIONAL,
+ nonStandardParameter NonStandardParameter OPTIONAL,
+ ...
+}
+
+FunctionNotSupportedResponse ::= SEQUENCE {request RequestPDU
+}
+
+NonStandardPDU ::= SEQUENCE {data NonStandardParameter,
+ ...
+}
+
+-- ==========================================================================
+-- Part 3: Messages sent as MCS-Connect-Provider user data
+-- ==========================================================================
+ConnectData ::= SEQUENCE {
+ t124Identifier Key,
+ -- This shall be set to the value {itu-t recommendation t 124 version(0) 1}
+ connectPDU OCTET STRING
+}
+
+ConnectGCCPDU ::= CHOICE {
+ conferenceCreateRequest ConferenceCreateRequest,
+ conferenceCreateResponse ConferenceCreateResponse,
+ conferenceQueryRequest ConferenceQueryRequest,
+ conferenceQueryResponse ConferenceQueryResponse,
+ conferenceJoinRequest ConferenceJoinRequest,
+ conferenceJoinResponse ConferenceJoinResponse,
+ conferenceInviteRequest ConferenceInviteRequest,
+ conferenceInviteResponse ConferenceInviteResponse,
+ ...
+}
+
+-- ============================================================================
+-- Part 4: Messages sent using MCS-Send-Data or MCS-Uniform-Send-Data
+-- ============================================================================
+GCCPDU ::= CHOICE {
+ request RequestPDU,
+ response ResponsePDU,
+ indication IndicationPDU
+}
+
+RequestPDU ::= CHOICE {
+ conferenceJoinRequest ConferenceJoinRequest,
+ conferenceAddRequest ConferenceAddRequest,
+ conferenceLockRequest ConferenceLockRequest,
+ conferenceUnlockRequest ConferenceUnlockRequest,
+ conferenceTerminateRequest ConferenceTerminateRequest,
+ conferenceEjectUserRequest ConferenceEjectUserRequest,
+ conferenceTransferRequest ConferenceTransferRequest,
+ registryRegisterChannelRequest RegistryRegisterChannelRequest,
+ registryAssignTokenRequest RegistryAssignTokenRequest,
+ registrySetParameterRequest RegistrySetParameterRequest,
+ registryRetrieveEntryRequest RegistryRetrieveEntryRequest,
+ registryDeleteEntryRequest RegistryDeleteEntryRequest,
+ registryMonitorEntryRequest RegistryMonitorEntryRequest,
+ registryAllocateHandleRequest RegistryAllocateHandleRequest,
+ nonStandardRequest NonStandardPDU,
+ ...
+}
+
+ResponsePDU ::= CHOICE {
+ conferenceJoinResponse ConferenceJoinResponse,
+ conferenceAddResponse ConferenceAddResponse,
+ conferenceLockResponse ConferenceLockResponse,
+ conferenceUnlockResponse ConferenceUnlockResponse,
+ conferenceTerminateResponse ConferenceTerminateResponse,
+ conferenceEjectUserResponse ConferenceEjectUserResponse,
+ conferenceTransferResponse ConferenceTransferResponse,
+ registryResponse RegistryResponse,
+ registryAllocateHandleResponse RegistryAllocateHandleResponse,
+ functionNotSupportedResponse FunctionNotSupportedResponse,
+ nonStandardResponse NonStandardPDU,
+ ...
+}
+
+IndicationPDU ::= CHOICE {
+ userIDIndication UserIDIndication,
+ conferenceLockIndication ConferenceLockIndication,
+ conferenceUnlockIndication ConferenceUnlockIndication,
+ conferenceTerminateIndication ConferenceTerminateIndication,
+ conferenceEjectUserIndication ConferenceEjectUserIndication,
+ conferenceTransferIndication ConferenceTransferIndication,
+ rosterUpdateIndication RosterUpdateIndication,
+ applicationInvokeIndication ApplicationInvokeIndication,
+ registryMonitorEntryIndication RegistryMonitorEntryIndication,
+ conductorAssignIndication ConductorAssignIndication,
+ conductorReleaseIndication ConductorReleaseIndication,
+ conductorPermissionAskIndication ConductorPermissionAskIndication,
+ conductorPermissionGrantIndication ConductorPermissionGrantIndication,
+ conferenceTimeRemainingIndication ConferenceTimeRemainingIndication,
+ conferenceTimeInquireIndication ConferenceTimeInquireIndication,
+ conferenceTimeExtendIndication ConferenceTimeExtendIndication,
+ conferenceAssistanceIndication ConferenceAssistanceIndication,
+ textMessageIndication TextMessageIndication,
+ nonStandardIndication NonStandardPDU,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/t124/Makefile.am b/epan/dissectors/asn1/t124/Makefile.am
new file mode 100644
index 0000000000..b1e3c53aab
--- /dev/null
+++ b/epan/dissectors/asn1/t124/Makefile.am
@@ -0,0 +1,25 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
+MCS-PROTOCOL.asn: ../t125/MCS-PROTOCOL.asn
+ cp $< $(srcdir)/$@
diff --git a/epan/dissectors/asn1/t124/Makefile.common b/epan/dissectors/asn1/t124/Makefile.common
new file mode 100644
index 0000000000..1875807570
--- /dev/null
+++ b/epan/dissectors/asn1/t124/Makefile.common
@@ -0,0 +1,44 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=t124
+
+EXT_ASN_FILE_LIST_LATE = \
+ ../t125/MCS-PROTOCOL.asn
+
+ASN_FILE_LIST = \
+ GCC-PROTOCOL.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS=
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/t124/Makefile.nmake b/epan/dissectors/asn1/t124/Makefile.nmake
new file mode 100644
index 0000000000..bc74eda685
--- /dev/null
+++ b/epan/dissectors/asn1/t124/Makefile.nmake
@@ -0,0 +1,28 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
+MCS-PROTOCOL.asn: ../t125/MCS-PROTOCOL.asn
+ cp $** $@
diff --git a/epan/dissectors/asn1/t124/packet-t124-template.c b/epan/dissectors/asn1/t124/packet-t124-template.c
new file mode 100644
index 0000000000..db299b544c
--- /dev/null
+++ b/epan/dissectors/asn1/t124/packet-t124-template.c
@@ -0,0 +1,220 @@
+/* packet-t124.c
+ * Routines for t124 packet dissection
+ * Copyright 2010, Graeme Lunt
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/conversation.h>
+
+#include <epan/asn1.h>
+#include "packet-per.h"
+#include "packet-ber.h"
+#include "packet-t124.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "GENERIC-CONFERENCE-CONTROL T.124"
+#define PSNAME "T.124"
+#define PFNAME "t124"
+
+void proto_register_t124(void);
+void proto_reg_handoff_t124(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_t124 = -1;
+static proto_tree *top_tree = NULL;
+
+#include "packet-t124-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_t124 = -1;
+static int ett_t124_connectGCCPDU = -1;
+
+static int hf_t124_ConnectData = -1;
+static int hf_t124_connectGCCPDU = -1;
+static int hf_t124_DomainMCSPDU_PDU = -1;
+
+static guint32 channelId = -1;
+
+static dissector_table_t t124_ns_dissector_table=NULL;
+static dissector_table_t t124_sd_dissector_table=NULL;
+
+#include "packet-t124-ett.c"
+
+#include "packet-t124-fn.c"
+
+static const per_sequence_t t124Heur_sequence[] = {
+ { &hf_t124_t124Identifier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
+ { NULL, 0, 0, NULL }
+};
+
+void
+register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int proto)
+{
+ dissector_handle_t dissector_handle;
+
+ dissector_handle=create_dissector_handle(dissector, proto);
+ dissector_add_string("t124.ns", nsKey, dissector_handle);
+}
+
+void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param, dissector_t dissector, int proto)
+{
+ /* XXX: we should keep the sub-dissectors list per conversation
+ as the same channels may be used.
+ While we are just using RDP over T.124, then we can get away with it.
+ */
+
+ dissector_handle_t dissector_handle;
+
+ dissector_handle=create_dissector_handle(dissector, proto);
+ dissector_add_uint("t124.sd", channelId_param, dissector_handle);
+
+}
+
+guint32 t124_get_last_channelId(void)
+{
+ return channelId;
+}
+
+void t124_set_top_tree(proto_tree *tree)
+{
+ top_tree = tree;
+}
+
+int dissect_DomainMCSPDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+
+ offset = dissect_t124_DomainMCSPDU(tvb, offset, &asn1_ctx, tree, hf_t124_DomainMCSPDU_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+
+static int
+dissect_t124(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ asn1_ctx_t asn1_ctx;
+
+ top_tree = parent_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "T.124");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ item = proto_tree_add_item(parent_tree, proto_t124, tvb, 0, tvb_captured_length(tvb), ENC_NA);
+ tree = proto_item_add_subtree(item, ett_t124);
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ dissect_t124_ConnectData(tvb, 0, &asn1_ctx, tree, hf_t124_ConnectData);
+
+ return tvb_captured_length(tvb);
+}
+
+static gboolean
+dissect_t124_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ asn1_ctx_t asn1_ctx;
+ volatile gboolean failed = FALSE;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+
+ /*
+ * We must catch all the "ran past the end of the packet" exceptions
+ * here and, if we catch one, just return FALSE. It's too painful
+ * to have a version of dissect_per_sequence() that checks all
+ * references to the tvbuff before making them and returning "no"
+ * if they would fail.
+ *
+ * We (ab)use hf_t124_connectGCCPDU here just to give a valid entry...
+ */
+ TRY {
+ (void) dissect_per_sequence(tvb, 0, &asn1_ctx, NULL, hf_t124_connectGCCPDU, -1, t124Heur_sequence);
+ } CATCH_BOUNDS_ERRORS {
+ failed = TRUE;
+ } ENDTRY;
+
+ if (!failed && ((asn1_ctx.external.direct_reference != NULL) &&
+ (strcmp(asn1_ctx.external.direct_reference, "0.0.20.124.0.1") == 0))) {
+ dissect_t124(tvb, pinfo, parent_tree, data);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/*--- proto_register_t124 -------------------------------------------*/
+void proto_register_t124(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_t124_ConnectData,
+ { "ConnectData", "t124.ConnectData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_t124_connectGCCPDU,
+ { "connectGCCPDU", "t124.connectGCCPDU",
+ FT_UINT32, BASE_DEC, VALS(t124_ConnectGCCPDU_vals), 0,
+ NULL, HFILL }},
+ { &hf_t124_DomainMCSPDU_PDU,
+ { "DomainMCSPDU", "t124.DomainMCSPDU",
+ FT_UINT32, BASE_DEC, VALS(t124_DomainMCSPDU_vals), 0,
+ NULL, HFILL }},
+#include "packet-t124-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_t124,
+ &ett_t124_connectGCCPDU,
+#include "packet-t124-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_t124 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_t124, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ t124_ns_dissector_table = register_dissector_table("t124.ns", "T.124 H.221 Non Standard Dissectors", FT_STRING, BASE_NONE, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ t124_sd_dissector_table = register_dissector_table("t124.sd", "T.124 H.221 Send Data Dissectors", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ register_dissector("t124", dissect_t124, proto_t124);
+
+}
+
+void
+proto_reg_handoff_t124(void) {
+
+ register_ber_oid_dissector("0.0.20.124.0.1", dissect_t124, proto_t124, "Generic Conference Control");
+
+ heur_dissector_add("t125", dissect_t124_heur, "T.124 over T.125", "t124_t125", proto_t124, HEURISTIC_ENABLE);
+
+}
diff --git a/epan/dissectors/asn1/t124/packet-t124-template.h b/epan/dissectors/asn1/t124/packet-t124-template.h
new file mode 100644
index 0000000000..487718c86a
--- /dev/null
+++ b/epan/dissectors/asn1/t124/packet-t124-template.h
@@ -0,0 +1,41 @@
+/* packet-t124.h
+ * Routines for t124 packet dissection
+ * Copyright 2010, Graeme Lunt
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_T124_H
+#define PACKET_T124_H
+
+#include <epan/packet_info.h>
+#include <epan/dissectors/packet-per.h>
+
+extern int dissect_DomainMCSPDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
+extern guint32 t124_get_last_channelId(void);
+extern void t124_set_top_tree(proto_tree *tree);
+
+extern void register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int proto);
+extern void register_t124_sd_dissector(packet_info *pinfo, guint32 channelId, dissector_t dissector, int proto);
+
+#include "packet-t124-exp.h"
+
+#endif /* PACKET_T124_H */
+
+
diff --git a/epan/dissectors/asn1/t124/t124.cnf b/epan/dissectors/asn1/t124/t124.cnf
new file mode 100644
index 0000000000..e3a8efa507
--- /dev/null
+++ b/epan/dissectors/asn1/t124/t124.cnf
@@ -0,0 +1,241 @@
+# T.124/GCC-PROTOCOL.cnf
+# Copyright 2011 Graeme Lunt
+#----------------------------------------------------------------------------------------
+#.EXPORTS
+#----------------------------------------------------------------------------------------
+ConnectData
+ConnectGCCPDU
+#.END
+
+#.OMIT_ASSIGNMENT
+GCCPDU
+ConnectMCSPDU
+IndicationPDU
+ResponsePDU
+Connect-Initial
+Connect-Additional
+Connect-Result
+UserIDIndication
+ConferenceAddResponse
+ConferenceLockResponse
+ConferenceLockIndication
+ConferenceUnlockResponse
+ConferenceUnlockIndication
+ConferenceTerminateResponse
+ConferenceTerminateIndication
+ConferenceEjectUserResponse
+ConferenceEjectUserIndication
+ConferenceTransferResponse
+ConferenceTransferIndication
+RosterUpdateIndication
+ApplicationInvokeIndication
+RegistryMonitorEntryIndication
+RegistryAllocateHandleResponse
+RegistryResponse
+ConductorAssignIndication
+ConductorReleaseIndication
+ConductorPermissionAskIndication
+ConductorPermissionGrantIndication
+ConferenceTimeRemainingIndication
+ConferenceTimeInquireIndication
+ConferenceTimeExtendIndication
+ConferenceAssistanceIndication
+TextMessageIndication
+FunctionNotSupportedResponse
+Connect-Response
+Time
+Handle
+NodeRecord
+ApplicationRecord
+ApplicationInvokeSpecifier
+RegistryItem
+RegistryEntryOwner
+RequestPDU
+DomainParameters
+DynamicTokenID
+NodeProperties
+AlternativeNodeID
+ChannelType
+CapabilityID
+CapabilityClass
+ConferenceAddRequest
+ConferenceLockRequest
+ConferenceUnlockRequest
+ConferenceTerminateRequest
+ConferenceEjectUserRequest
+ConferenceTransferRequest
+RegistryRegisterChannelRequest
+RegistryAssignTokenRequest
+RegistrySetParameterRequest
+RegistryRetrieveEntryRequest
+RegistryDeleteEntryRequest
+RegistryMonitorEntryRequest
+RegistryAllocateHandleRequest
+NonStandardPDU
+NetworkAddressV2
+EntityID
+RegistryKey
+RegistryModificationRights
+MediaList
+ChannelAggregationMethod
+Profile
+NetworkConnection
+SessionKey
+ChannelID
+GSTNConnection
+ISDNConnection
+CSDNConnection
+PSDNConnection
+ATMConnection
+ExtendedE164NetworkAddress
+TransportAddress
+
+#----------------------------------------------------------------------------------------
+
+#.PDU
+#----------------------------------------------------------------------------------------
+
+
+#.TF_RENAME
+ISDNConnection/circuitTypes ISDNCircuitTypes
+ISDNConnection/circuitTypes/_item ISDNCircuitTypes_item
+ISDNConnection/highLayerCompatibility ISDNHighLayerCompatibility
+PSDNConnection/networkAddress PSDNNetworkAddress
+ConferenceTerminateRequest/reason TerminateRequestReason
+ConferenceTerminateIndication/reason TerminateIndicationReason
+ConferenceEjectUserRequest/reason EjectUserRequestReason
+RosterUpdateIndication/nodeInformation/nodeRecordList/refresh NodeRefresh
+RosterUpdateIndication/applicationInformation/_item/applicationRecordList/refresh ApplicationRefresh
+RosterUpdateIndication/applicationInformation/_item/applicationRecordList/update ApplicationUpdate
+RosterUpdateIndication/applicationInformation/_item/applicationRecordList/update/_item ApplicationUpdateItem
+ConferenceQueryResponse/result QueryResponseResult
+ConferenceJoinResponse/result JoinResponseResult
+ConferenceInviteResponse/result InviteResponseResult
+ConferenceAddResponse/result AddResponseResult
+ConferenceLockResponse/result LockResponseResult
+ConferenceUnlockResponse/result UnlockResponseResult
+ConferenceTerminateResponse/result TerminateResponseResult
+ConferenceEjectUserResponse/result EjectUserResponseResult
+ConferenceTransferResponse/result TransferResponseResult
+RegistryAllocateHandleResponse/result AllocateHandleResponseResult
+
+#.FN_BODY ConnectData/connectPDU VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+ proto_tree *next_tree = NULL;
+ int old_offset = 0;
+
+ old_offset = offset;
+ %(DEFAULT_BODY)s
+ if(next_tvb) {
+ /* "2a -> ConnectData::connectPDU length = 42 bytes */
+ /* This length MUST be ignored by the client." */
+
+ /* Not sure why - but lets ignore the length. */
+ /* We assume the OCTET STRING is all of the remaining bytes */
+
+ if(tvb_reported_length(next_tvb) == 42) {
+ /* this is perhaps a naive ... */
+ next_tvb = tvb_new_subset_remaining(tvb, (old_offset>>3)+1);
+ }
+
+ next_tree = proto_item_add_subtree(actx->created_item, ett_t124_connectGCCPDU);
+
+ dissect_t124_ConnectGCCPDU(next_tvb, 0, actx, next_tree, hf_t124_connectGCCPDU);
+
+ }
+#.END
+
+#.FN_BODY UserData/_item/value VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+ tvbuff_t *t124NSIdentifier = (tvbuff_t*)actx->private_data;
+ guint8 *ns = NULL;
+
+%(DEFAULT_BODY)s
+
+ if(next_tvb && t124NSIdentifier) {
+
+ ns = tvb_get_string_enc(wmem_packet_scope(), t124NSIdentifier, 0, tvb_reported_length(t124NSIdentifier), ENC_ASCII|ENC_NA);
+ if(ns != NULL) {
+ dissector_try_string(t124_ns_dissector_table, ns, next_tvb, actx->pinfo, top_tree, NULL);
+ }
+ }
+
+#.END
+
+#.FN_BODY SendDataRequest/userData VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+
+%(DEFAULT_BODY)s
+
+ if(next_tvb) {
+
+ dissector_try_uint(t124_sd_dissector_table, channelId, next_tvb, actx->pinfo, top_tree);
+
+ }
+
+#.END
+
+#.FN_BODY SendDataIndication/userData VAL_PTR = &next_tvb
+ tvbuff_t *next_tvb = NULL;
+
+%(DEFAULT_BODY)s
+
+ if(next_tvb) {
+
+ dissector_try_uint(t124_sd_dissector_table, channelId, next_tvb, actx->pinfo, top_tree);
+
+ }
+
+#.END
+
+
+#.FN_BODY DomainMCSPDU VAL_PTR = &domainmcs_value
+ gint domainmcs_value;
+
+%(DEFAULT_BODY)s
+ switch(domainmcs_value) {
+ case 25: /* sendDataRequest */
+ case 26: /* sendDataIndication */
+ case 27: /* uniformSendDataRequest */
+ case 28: /* uniformSendDataIndication */
+ /* Do nothing */
+ break;
+ default:
+ col_prepend_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "%%s ", val_to_str(domainmcs_value, t124_DomainMCSPDU_vals, "Unknown"));
+ break;
+ }
+
+#.END
+
+#.FN_PARS Key/object
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_PARS H221NonStandardIdentifier
+ VAL_PTR = (tvbuff_t**)&actx->private_data
+
+#.FN_BODY H221NonStandardIdentifier
+
+ %(DEFAULT_BODY)s
+
+
+#.FN_BODY ChannelId VAL_PTR = &channelId
+
+ %(DEFAULT_BODY)s
+
+ if(hf_index == hf_t124_channelId_03)
+ col_append_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "%%d", channelId);
+
+
+#.OMIT_ASSIGNMENT
+StaticChannelID
+TokenID
+StaticTokenID
+RosterRefreshRequest
+#.END
+#.VIRTUAL_ASSGN
+#----------------------------------------------------------------------------------------
+
+#.END
+
+#----------------------------------------------------------------------------------------
+# vim:set ts=4 sts=2 sw=2:
diff --git a/epan/dissectors/asn1/t125/CMakeLists.txt b/epan/dissectors/asn1/t125/CMakeLists.txt
new file mode 100644
index 0000000000..14b1799b75
--- /dev/null
+++ b/epan/dissectors/asn1/t125/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME t125 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ MCS-PROTOCOL.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/t125/MCS-PROTOCOL.asn b/epan/dissectors/asn1/t125/MCS-PROTOCOL.asn
new file mode 100644
index 0000000000..95fda65887
--- /dev/null
+++ b/epan/dissectors/asn1/t125/MCS-PROTOCOL.asn
@@ -0,0 +1,445 @@
+-- Module MCS-PROTOCOL (T.125:02/1998)
+MCS-PROTOCOL DEFINITIONS ::=
+BEGIN
+
+-- Part 1: Fundamental MCS types
+ChannelId ::= INTEGER(0..65535) -- range is 16 bits
+
+
+StaticChannelId ::= ChannelId(1..1000) -- those known permanently
+
+
+DynamicChannelId ::= ChannelId(1001..65535) -- those created and deleted
+
+
+UserId ::= DynamicChannelId -- created by Attach-User
+
+-- deleted by Detach-User
+PrivateChannelId ::=
+ DynamicChannelId -- created by Channel-Convene
+
+-- deleted by Channel-Disband
+AssignedChannelId ::=
+ DynamicChannelId -- created by Channel-Join zero
+
+-- deleted by last Channel-Leave
+TokenId ::= INTEGER(1..65535) -- all are known permanently
+
+
+TokenStatus ::= ENUMERATED {
+ notInUse(0), selfGrabbed(1), otherGrabbed(2), selfInhibited(3),
+ otherInhibited(4), selfRecipient(5), selfGiving(6), otherGiving(7)}
+
+DataPriority ::= ENUMERATED {top(0), high(1), medium(2), low(3)}
+
+Segmentation ::= BIT STRING {begin(0), end(1)}(SIZE (2))
+
+DomainParameters ::= SEQUENCE {
+ maxChannelIds INTEGER(0..MAX),
+ -- a limit on channel ids in use,
+ -- static + user id + private + assigned
+ maxUserIds INTEGER(0..MAX),
+ -- a sublimit on user id channels alone
+ maxTokenIds INTEGER(0..MAX),
+ -- a limit on token ids in use
+ -- grabbed + inhibited + giving + ungivable + given
+ numPriorities INTEGER(0..MAX),
+ -- the number of TCs in an MCS connection
+ minThroughput INTEGER(0..MAX),
+ -- the enforced number of octets per second
+ maxHeight INTEGER(0..MAX),
+ -- a limit on the height of a provider
+ maxMCSPDUsize INTEGER(0..MAX),
+ -- an octet limit on domain MCSPDUs
+ protocolVersion INTEGER(0..MAX)
+}
+
+-- Part 2: Connect provider
+Connect-Initial ::= [APPLICATION 101] IMPLICIT SEQUENCE {
+ callingDomainSelector OCTET STRING,
+ calledDomainSelector OCTET STRING,
+ upwardFlag BOOLEAN,
+ -- TRUE if called provider is higher
+ targetParameters DomainParameters,
+ minimumParameters DomainParameters,
+ maximumParameters DomainParameters,
+ userData OCTET STRING
+}
+
+Connect-Response ::= [APPLICATION 102] IMPLICIT SEQUENCE {
+ result Result,
+ calledConnectId INTEGER(0..MAX),
+ -- assigned by the called provider
+ -- to identify additional TCs of
+ -- the same MCS connection
+ domainParameters DomainParameters,
+ userData OCTET STRING
+}
+
+Connect-Additional ::= [APPLICATION 103] IMPLICIT SEQUENCE {
+ calledConnectId INTEGER(0..MAX),
+ dataPriority DataPriority
+}
+
+Connect-Result ::= [APPLICATION 104] IMPLICIT SEQUENCE {result Result
+}
+
+-- Part 3: Merge domain
+PlumbDomainIndication ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ heightLimit INTEGER(0..MAX)
+} -- a restriction on the MCSPDU receiver
+
+ErectDomainRequest ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ subHeight INTEGER(0..MAX),
+ -- height in domain of the MCSPDU transmitter
+ subInterval INTEGER(0..MAX)
+} -- its throughput enforcement interval in milliseconds
+
+ChannelAttributes ::= CHOICE {
+ static [0] IMPLICIT SEQUENCE {channelId StaticChannelId}, -- joined is implicitly TRUE
+ userId
+ [1] IMPLICIT SEQUENCE {joined BOOLEAN,
+ -- TRUE if user is joined to its user id
+ userId UserId},
+ private
+ [2] IMPLICIT SEQUENCE {joined BOOLEAN,
+ -- TRUE if channel id is joined below
+ channelId PrivateChannelId,
+ manager UserId,
+ admitted SET OF UserId}, -- may span multiple MergeChannelsRequest
+ assigned [3] IMPLICIT SEQUENCE {channelId AssignedChannelId} -- joined is implicitly TRUE
+}
+
+MergeChannelsRequest ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ mergeChannels SET OF ChannelAttributes,
+ purgeChannelIds SET OF ChannelId
+}
+
+MergeChannelsConfirm ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ mergeChannels SET OF ChannelAttributes,
+ purgeChannelIds SET OF ChannelId
+}
+
+PurgeChannelsIndication ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+ detachUserIds SET OF UserId,
+ -- purge user id channels
+ purgeChannelIds SET OF ChannelId
+} -- purge other channels
+
+TokenAttributes ::= CHOICE {
+ grabbed [0] IMPLICIT SEQUENCE {tokenId TokenId,
+ grabber UserId},
+ inhibited
+ [1] IMPLICIT SEQUENCE {tokenId TokenId,
+ inhibitors SET OF UserId}, -- may span multiple MergeTokensRequest
+ giving
+ [2] IMPLICIT SEQUENCE {tokenId TokenId,
+ grabber UserId,
+ recipient UserId},
+ ungivable [3] IMPLICIT SEQUENCE {tokenId TokenId,
+ grabber UserId}, -- recipient has since detached
+ given [4] IMPLICIT SEQUENCE {tokenId TokenId,
+ recipient UserId} -- grabber released or detached
+}
+
+MergeTokensRequest ::= [APPLICATION 5] IMPLICIT SEQUENCE {
+ mergeTokens SET OF TokenAttributes,
+ purgeTokenIds SET OF TokenId
+}
+
+MergeTokensConfirm ::= [APPLICATION 6] IMPLICIT SEQUENCE {
+ mergeTokens SET OF TokenAttributes,
+ purgeTokenIds SET OF TokenId
+}
+
+PurgeTokensIndication ::= [APPLICATION 7] IMPLICIT SEQUENCE {
+ purgeTokenIds SET OF TokenId
+}
+
+-- Part 4: Disconnect provider
+DisconnectProviderUltimatum ::= [APPLICATION 8] IMPLICIT SEQUENCE {
+ reason Reason
+}
+
+RejectMCSPDUUltimatum ::= [APPLICATION 9] IMPLICIT SEQUENCE {
+ diagnostic Diagnostic,
+ initialOctets OCTET STRING
+}
+
+-- Part 5: Attach/Detach user
+AttachUserRequest ::= [APPLICATION 10] IMPLICIT SEQUENCE {
+}
+
+AttachUserConfirm ::= [APPLICATION 11] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId OPTIONAL
+}
+
+DetachUserRequest ::= [APPLICATION 12] IMPLICIT SEQUENCE {
+ reason Reason,
+ userIds SET OF UserId
+}
+
+DetachUserIndication ::= [APPLICATION 13] IMPLICIT SEQUENCE {
+ reason Reason,
+ userIds SET OF UserId
+}
+
+-- Part 6: Channel management
+ChannelJoinRequest ::= [APPLICATION 14] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId
+} -- may be zero
+
+ChannelJoinConfirm ::= [APPLICATION 15] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ requested ChannelId,
+ -- may be zero
+ channelId ChannelId OPTIONAL
+}
+
+ChannelLeaveRequest ::= [APPLICATION 16] IMPLICIT SEQUENCE {
+ channelIds SET OF ChannelId
+}
+
+ChannelConveneRequest ::= [APPLICATION 17] IMPLICIT SEQUENCE {initiator UserId
+}
+
+ChannelConveneConfirm ::= [APPLICATION 18] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ channelId PrivateChannelId OPTIONAL
+}
+
+ChannelDisbandRequest ::= [APPLICATION 19] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId PrivateChannelId
+}
+
+ChannelDisbandIndication ::= [APPLICATION 20] IMPLICIT SEQUENCE {
+ channelId PrivateChannelId
+}
+
+ChannelAdmitRequest ::= [APPLICATION 21] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId PrivateChannelId,
+ userIds SET OF UserId
+}
+
+ChannelAdmitIndication ::= [APPLICATION 22] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId PrivateChannelId,
+ userIds SET OF UserId
+}
+
+ChannelExpelRequest ::= [APPLICATION 23] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId PrivateChannelId,
+ userIds SET OF UserId
+}
+
+ChannelExpelIndication ::= [APPLICATION 24] IMPLICIT SEQUENCE {
+ channelId PrivateChannelId,
+ userIds SET OF UserId
+}
+
+-- Part 7: Data transfer
+SendDataRequest ::= [APPLICATION 25] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId,
+ dataPriority DataPriority,
+ segmentation Segmentation,
+ userData OCTET STRING
+}
+
+SendDataIndication ::= [APPLICATION 26] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId,
+ dataPriority DataPriority,
+ segmentation Segmentation,
+ userData OCTET STRING
+}
+
+UniformSendDataRequest ::= [APPLICATION 27] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId,
+ dataPriority DataPriority,
+ segmentation Segmentation,
+ userData OCTET STRING
+}
+
+UniformSendDataIndication ::= [APPLICATION 28] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId,
+ dataPriority DataPriority,
+ segmentation Segmentation,
+ userData OCTET STRING
+}
+
+-- Part 8: Token management
+TokenGrabRequest ::= [APPLICATION 29] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenGrabConfirm ::= [APPLICATION 30] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+TokenInhibitRequest ::= [APPLICATION 31] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenInhibitConfirm ::= [APPLICATION 32] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+TokenGiveRequest ::= [APPLICATION 33] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId,
+ recipient UserId
+}
+
+TokenGiveIndication ::= [APPLICATION 34] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId,
+ recipient UserId
+}
+
+TokenGiveResponse ::= [APPLICATION 35] IMPLICIT SEQUENCE {
+ result Result,
+ recipient UserId,
+ tokenId TokenId
+}
+
+TokenGiveConfirm ::= [APPLICATION 36] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+TokenPleaseRequest ::= [APPLICATION 37] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenPleaseIndication ::= [APPLICATION 38] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenReleaseRequest ::= [APPLICATION 39] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenReleaseConfirm ::= [APPLICATION 40] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+TokenTestRequest ::= [APPLICATION 41] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenTestConfirm ::= [APPLICATION 42] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+-- Part 9: Status codes
+-- in DisconnectProviderUltimatum, DetachUserRequest, DetachUserIndication
+Reason ::= ENUMERATED {
+ rn-domain-disconnected(0), rn-provider-initiated(1), rn-token-purged(2),
+ rn-user-requested(3), rn-channel-purged(4)}
+
+-- in Connect, response, confirm
+Result ::= ENUMERATED {
+ rt-successful(0), rt-domain-merging(1), rt-domain-not-hierarchical(2),
+ rt-no-such-channel(3), rt-no-such-domain(4), rt-no-such-user(5),
+ rt-not-admitted(6), rt-other-user-id(7), rt-parameters-unacceptable(8),
+ rt-token-not-available(9), rt-token-not-possessed(10),
+ rt-too-many-channels(11), rt-too-many-tokens(12), rt-too-many-users(13),
+ rt-unspecified-failure(14), rt-user-rejected(15)}
+
+-- in RejectMCSPDUUltimatum
+Diagnostic ::= ENUMERATED {
+ dc-inconsistent-merge(0), dc-forbidden-PDU-downward(1),
+ dc-forbidden-PDU-upward(2), dc-invalid-BER-encoding(3),
+ dc-invalid-PER-encoding(4), dc-misrouted-user(5), dc-unrequested-confirm(6),
+ dc-wrong-transport-priority(7), dc-channel-id-conflict(8),
+ dc-token-id-conflict(9), dc-not-user-id-channel(10),
+ dc-too-many-channels(11), dc-too-many-tokens(12), dc-too-many-users(13)
+}
+
+-- Part 10: MCSPDU repertoire
+ConnectMCSPDU ::= CHOICE {
+ connect-initial Connect-Initial,
+ connect-response Connect-Response,
+ connect-additional Connect-Additional,
+ connect-result Connect-Result
+}
+
+DomainMCSPDU ::= CHOICE {
+ plumbDomainIndication PlumbDomainIndication,
+ erectDomainRequest ErectDomainRequest,
+ mergeChannelsRequest MergeChannelsRequest,
+ mergeChannelsConfirm MergeChannelsConfirm,
+ purgeChannelsIndication PurgeChannelsIndication,
+ mergeTokensRequest MergeTokensRequest,
+ mergeTokensConfirm MergeTokensConfirm,
+ purgeTokensIndication PurgeTokensIndication,
+ disconnectProviderUltimatum DisconnectProviderUltimatum,
+ rejectMCSPDUUltimatum RejectMCSPDUUltimatum,
+ attachUserRequest AttachUserRequest,
+ attachUserConfirm AttachUserConfirm,
+ detachUserRequest DetachUserRequest,
+ detachUserIndication DetachUserIndication,
+ channelJoinRequest ChannelJoinRequest,
+ channelJoinConfirm ChannelJoinConfirm,
+ channelLeaveRequest ChannelLeaveRequest,
+ channelConveneRequest ChannelConveneRequest,
+ channelConveneConfirm ChannelConveneConfirm,
+ channelDisbandRequest ChannelDisbandRequest,
+ channelDisbandIndication ChannelDisbandIndication,
+ channelAdmitRequest ChannelAdmitRequest,
+ channelAdmitIndication ChannelAdmitIndication,
+ channelExpelRequest ChannelExpelRequest,
+ channelExpelIndication ChannelExpelIndication,
+ sendDataRequest SendDataRequest,
+ sendDataIndication SendDataIndication,
+ uniformSendDataRequest UniformSendDataRequest,
+ uniformSendDataIndication UniformSendDataIndication,
+ tokenGrabRequest TokenGrabRequest,
+ tokenGrabConfirm TokenGrabConfirm,
+ tokenInhibitRequest TokenInhibitRequest,
+ tokenInhibitConfirm TokenInhibitConfirm,
+ tokenGiveRequest TokenGiveRequest,
+ tokenGiveIndication TokenGiveIndication,
+ tokenGiveResponse TokenGiveResponse,
+ tokenGiveConfirm TokenGiveConfirm,
+ tokenPleaseRequest TokenPleaseRequest,
+ tokenPleaseIndication TokenPleaseIndication,
+ tokenReleaseRequest TokenReleaseRequest,
+ tokenReleaseConfirm TokenReleaseConfirm,
+ tokenTestRequest TokenTestRequest,
+ tokenTestConfirm TokenTestConfirm
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/t125/Makefile.am b/epan/dissectors/asn1/t125/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/t125/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/t125/Makefile.common b/epan/dissectors/asn1/t125/Makefile.common
new file mode 100644
index 0000000000..bbddd3440f
--- /dev/null
+++ b/epan/dissectors/asn1/t125/Makefile.common
@@ -0,0 +1,42 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=t125
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ MCS-PROTOCOL.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/t125/Makefile.nmake b/epan/dissectors/asn1/t125/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/t125/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/t125/packet-t125-template.c b/epan/dissectors/asn1/t125/packet-t125-template.c
new file mode 100644
index 0000000000..b51c37e507
--- /dev/null
+++ b/epan/dissectors/asn1/t125/packet-t125-template.c
@@ -0,0 +1,151 @@
+/* packet-t125.c
+ * Routines for t125 packet dissection
+ * Copyright 2007, Ronnie Sahlberg
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+
+#include <epan/asn1.h>
+#include "packet-ber.h"
+#include "packet-per.h"
+
+#include "packet-t124.h"
+
+#define PNAME "MULTIPOINT-COMMUNICATION-SERVICE T.125"
+#define PSNAME "T.125"
+#define PFNAME "t125"
+
+void proto_register_t125(void);
+void proto_reg_handoff_t125(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_t125 = -1;
+static proto_tree *top_tree = NULL;
+#include "packet-t125-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_t125 = -1;
+
+#include "packet-t125-ett.c"
+
+static heur_dissector_list_t t125_heur_subdissector_list;
+
+#include "packet-t125-fn.c"
+
+static int
+dissect_t125(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+
+ top_tree = parent_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "T.125");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ item = proto_tree_add_item(parent_tree, proto_t125, tvb, 0, tvb_captured_length(tvb), ENC_NA);
+ tree = proto_item_add_subtree(item, ett_t125);
+
+ get_ber_identifier(tvb, 0, &ber_class, &pc, &tag);
+
+ if ( (ber_class==BER_CLASS_APP) && (tag>=101) && (tag<=104) ){
+ dissect_ConnectMCSPDU_PDU(tvb, pinfo, tree, NULL);
+ } else {
+ t124_set_top_tree(top_tree);
+ dissect_DomainMCSPDU_PDU(tvb, pinfo, tree);
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static gboolean
+dissect_t125_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ volatile gboolean failed;
+
+ /*
+ * We must catch all the "ran past the end of the packet" exceptions
+ * here and, if we catch one, just return FALSE. It's too painful
+ * to have a version of dissect_per_sequence() that checks all
+ * references to the tvbuff before making them and returning "no"
+ * if they would fail.
+ */
+ failed = FALSE;
+ TRY {
+ /* could be BER */
+ get_ber_identifier(tvb, 0, &ber_class, &pc, &tag);
+ } CATCH_BOUNDS_ERRORS {
+ failed = TRUE;
+ } ENDTRY;
+
+ /* is this strong enough ? */
+ if (!failed && ((ber_class==BER_CLASS_APP) && ((tag>=101) && (tag<=104)))) {
+ dissect_t125(tvb, pinfo, parent_tree, NULL);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+/*--- proto_register_t125 -------------------------------------------*/
+void proto_register_t125(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-t125-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_t125,
+#include "packet-t125-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_t125 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_t125, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ t125_heur_subdissector_list= register_heur_dissector_list("t125");
+
+ register_dissector("t125", dissect_t125, proto_t125);
+}
+
+
+/*--- proto_reg_handoff_t125 ---------------------------------------*/
+void proto_reg_handoff_t125(void) {
+
+ heur_dissector_add("cotp", dissect_t125_heur, "T.125 over COTP", "t125_cotp", proto_t125, HEURISTIC_ENABLE);
+ heur_dissector_add("cotp_is", dissect_t125_heur, "T.125 over COTP (inactive subset)", "t125_cotp_is", proto_t125, HEURISTIC_ENABLE);
+}
diff --git a/epan/dissectors/asn1/t125/t125.cnf b/epan/dissectors/asn1/t125/t125.cnf
new file mode 100644
index 0000000000..19f644e1cd
--- /dev/null
+++ b/epan/dissectors/asn1/t125/t125.cnf
@@ -0,0 +1,119 @@
+# T.125/MCS-PROTOCOL.cnf
+# Copyright 2007 Ronnie Sahlberg
+#----------------------------------------------------------------------------------------
+#.EXPORTS
+#----------------------------------------------------------------------------------------
+#.END
+
+#.OMIT_ASSIGNMENT
+# dissecected in t124
+DomainMCSPDU
+PlumbDomainIndication
+ErectDomainRequest
+MergeChannelsRequest
+MergeChannelsConfirm
+PurgeChannelsIndication
+MergeTokensRequest
+MergeTokensConfirm
+PurgeTokensIndication
+DisconnectProviderUltimatum
+RejectMCSPDUUltimatum
+AttachUserRequest
+AttachUserConfirm
+DetachUserRequest
+DetachUserIndication
+ChannelJoinRequest
+ChannelJoinConfirm
+ChannelLeaveRequest
+ChannelConveneRequest
+ChannelConveneConfirm
+ChannelDisbandRequest
+ChannelDisbandIndication
+ChannelAdmitRequest
+ChannelAdmitIndication
+ChannelExpelRequest
+ChannelExpelIndication
+SendDataRequest
+SendDataIndication
+UniformSendDataRequest
+UniformSendDataIndication
+TokenGrabConfirm
+TokenInhibitRequest
+TokenInhibitConfirm
+TokenGiveRequest
+TokenGiveIndication
+TokenGiveResponse
+TokenGiveConfirm
+TokenPleaseRequest
+TokenPleaseIndication
+TokenReleaseRequest
+TokenReleaseConfirm
+TokenTestRequest
+TokenTestConfirm
+TokenStatus
+Segmentation
+ChannelAttributes
+TokenAttributes
+TokenGrabRequest
+Reason
+Diagnostic
+StaticChannelId
+UserId
+PrivateChannelId
+AssignedChannelId
+TokenId
+DynamicChannelId
+ChannelId
+
+#----------------------------------------------------------------------------------------
+
+#.PDU
+#----------------------------------------------------------------------------------------
+ConnectMCSPDU
+#.END
+
+#.VIRTUAL_ASSGN
+#----------------------------------------------------------------------------------------
+
+# dissecected in t124
+# FN_BODY DomainMCSPDU VAL_PTR = &domainmcs_value
+# gint domainmcs_value;
+#
+#%(DEFAULT_BODY)s
+# switch(domainmcs_value) {
+# case 25: /* sendDataRequest */
+# case 26: /* sendDataIndication */
+# case 27: /* uniformSendDataRequest */
+# case 28: /* uniformSendDataIndication */
+# /* Do nothing */
+# break;
+# default:
+# col_append_sep_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, " ", "MCS: %%s ", val_to_str(domainmcs_value, t125_DomainMCSPDU_vals, "Unknown"));
+# break;
+# }
+# END
+
+#.FN_BODY Connect-Initial/_untag/userData VAL_PTR = &next_tvb
+#.FN_BODY Connect-Initial/_untag/userData
+ tvbuff_t *next_tvb = NULL;
+ heur_dtbl_entry_t *hdtbl_entry;
+%(DEFAULT_BODY)s
+ if(next_tvb)
+ dissector_try_heuristic(t125_heur_subdissector_list, next_tvb,
+ actx->pinfo, top_tree, &hdtbl_entry, NULL);
+#.END
+
+#.FN_BODY Connect-Response/_untag/userData VAL_PTR = &next_tvb
+#.FN_BODY Connect-Response/_untag/userData
+ tvbuff_t *next_tvb = NULL;
+ heur_dtbl_entry_t *hdtbl_entry;
+
+%(DEFAULT_BODY)s
+ if(next_tvb)
+ dissector_try_heuristic(t125_heur_subdissector_list, next_tvb,
+ actx->pinfo, top_tree, &hdtbl_entry, NULL);
+#.END
+
+
+#----------------------------------------------------------------------------------------
+# vim:set ts=4 sts=2 sw=2:
diff --git a/epan/dissectors/asn1/t38/CMakeLists.txt b/epan/dissectors/asn1/t38/CMakeLists.txt
new file mode 100644
index 0000000000..fd58d0e7a1
--- /dev/null
+++ b/epan/dissectors/asn1/t38/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME t38 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ T38_2002.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/t38/Makefile.am b/epan/dissectors/asn1/t38/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/t38/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/t38/Makefile.common b/epan/dissectors/asn1/t38/Makefile.common
new file mode 100644
index 0000000000..de556f6893
--- /dev/null
+++ b/epan/dissectors/asn1/t38/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = t38
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ T38_2002.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ T38_1998.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/t38/Makefile.nmake b/epan/dissectors/asn1/t38/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/t38/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/t38/T38_1998.asn b/epan/dissectors/asn1/t38/T38_1998.asn
new file mode 100644
index 0000000000..deaa3d84d5
--- /dev/null
+++ b/epan/dissectors/asn1/t38/T38_1998.asn
@@ -0,0 +1,55 @@
+-- T38(1998).asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/t/t38/2005/T38(1998).asn
+--
+-- it is not used for dissector generation
+-- it is here only for information to see difference of the "Pre-Corrigendum" version
+--
+
+-- Module T38(1998) (T.38:09/2005)
+T38 DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IFPPacket ::= SEQUENCE {
+ type-of-msg Type-of-msg,
+ data-field Data-Field OPTIONAL
+}
+
+Type-of-msg ::= CHOICE {
+ t30-indicator
+ ENUMERATED {no-signal, cng, ced, v21-preamble, v27-2400-training,
+ v27-4800-training, v29-7200-training, v29-9600-training,
+ v17-7200-short-training, v17-7200-long-training,
+ v17-9600-short-training, v17-9600-long-training,
+ v17-12000-short-training, v17-12000-long-training,
+ v17-14400-short-training, v17-14400-long-training, ...
+ },
+ data
+ ENUMERATED {v21, v27-2400, v27-4800, v29-7200, v29-9600, v17-7200,
+ v17-9600, v17-12000, v17-14400, ...
+ }
+}
+
+Data-Field ::=
+ SEQUENCE OF
+ SEQUENCE {field-type
+ ENUMERATED {hdlc-data, hdlc-sig-end, hdlc-fcs-OK, hdlc-fcs-BAD,
+ hdlc-fcs-OK-sig-end, hdlc-fcs-BAD-sig-end,
+ t4-non-ecm-data, t4-non-ecm-sig-end},
+ field-data OCTET STRING(SIZE (1..65535)) OPTIONAL}
+
+UDPTLPacket ::= SEQUENCE {
+ seq-number INTEGER(0..65535),
+ primary-ifp-packet TYPE-IDENTIFIER.&Type(IFPPacket),
+ error-recovery
+ CHOICE {secondary-ifp-packets SEQUENCE OF TYPE-IDENTIFIER.&Type(IFPPacket),
+ fec-info
+ SEQUENCE {fec-npackets INTEGER,
+ fec-data SEQUENCE OF OCTET STRING}}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/t38/T38_2002.asn b/epan/dissectors/asn1/t38/T38_2002.asn
new file mode 100644
index 0000000000..a0ff932cad
--- /dev/null
+++ b/epan/dissectors/asn1/t38/T38_2002.asn
@@ -0,0 +1,54 @@
+-- T38(2002).asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/t/t38/2005/T38(2002).asn
+--
+
+-- Module T38(2002) (T.38:09/2005)
+T38 DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IFPPacket ::= SEQUENCE {
+ type-of-msg Type-of-msg,
+ data-field Data-Field OPTIONAL
+}
+
+Type-of-msg ::= CHOICE {
+ t30-indicator
+ ENUMERATED {no-signal, cng, ced, v21-preamble, v27-2400-training,
+ v27-4800-training, v29-7200-training, v29-9600-training,
+ v17-7200-short-training, v17-7200-long-training,
+ v17-9600-short-training, v17-9600-long-training,
+ v17-12000-short-training, v17-12000-long-training,
+ v17-14400-short-training, v17-14400-long-training, ...,
+ v8-ansam, v8-signal, v34-cntl-channel-1200, v34-pri-channel,
+ v34-CC-retrain, v33-12000-training, v33-14400-training},
+ t30-data
+ ENUMERATED {v21, v27-2400, v27-4800, v29-7200, v29-9600, v17-7200,
+ v17-9600, v17-12000, v17-14400, ...,
+ v8, v34-pri-rate, v34-CC-1200, v34-pri-ch, v33-12000, v33-14400}
+}
+
+Data-Field ::=
+ SEQUENCE OF
+ SEQUENCE {field-type
+ ENUMERATED {hdlc-data, hdlc-sig-end, hdlc-fcs-OK, hdlc-fcs-BAD,
+ hdlc-fcs-OK-sig-end, hdlc-fcs-BAD-sig-end,
+ t4-non-ecm-data, t4-non-ecm-sig-end, ...,
+ cm-message, jm-message, ci-message, v34rate},
+ field-data OCTET STRING(SIZE (1..65535)) OPTIONAL}
+
+UDPTLPacket ::= SEQUENCE {
+ seq-number INTEGER(0..65535),
+ primary-ifp-packet TYPE-IDENTIFIER.&Type(IFPPacket),
+ error-recovery
+ CHOICE {secondary-ifp-packets SEQUENCE OF TYPE-IDENTIFIER.&Type(IFPPacket),
+ fec-info
+ SEQUENCE {fec-npackets INTEGER,
+ fec-data SEQUENCE OF OCTET STRING}}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/t38/packet-t38-template.c b/epan/dissectors/asn1/t38/packet-t38-template.c
new file mode 100644
index 0000000000..b224b664fe
--- /dev/null
+++ b/epan/dissectors/asn1/t38/packet-t38-template.c
@@ -0,0 +1,779 @@
+/* packet-t38.c
+ * Routines for T.38 packet dissection
+ * 2003 Hans Viens
+ * 2004 Alejandro Vaquero, add support Conversations for SDP
+ * 2006 Alejandro Vaquero, add T30 reassemble and dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+
+/* Depending on what ASN.1 specification is used you may have to change
+ * the preference setting regarding Pre-Corrigendum ASN.1 specification:
+ * http://www.itu.int/ITU-T/asn1/database/itu-t/t/t38/1998/T38.html (Pre-Corrigendum=TRUE)
+ * http://www.itu.int/ITU-T/asn1/database/itu-t/t/t38/2003/T38(1998).html (Pre-Corrigendum=TRUE)
+ *
+ * http://www.itu.int/ITU-T/asn1/database/itu-t/t/t38/2003/T38(2002).html (Pre-Corrigendum=FALSE)
+ * http://www.itu.int/ITU-T/asn1/database/itu-t/t/t38/2002/t38.html (Pre-Corrigendum=FALSE)
+ * http://www.itu.int/ITU-T/asn1/database/itu-t/t/t38/2002-Amd1/T38.html (Pre-Corrigendum=FALSE)
+ */
+
+/* TO DO:
+ * - TCP desegmentation is currently not supported for T.38 IFP directly over TCP.
+ * - H.245 dissectors should be updated to start conversations for T.38 similar to RTP.
+ * - Sometimes the last octet is not high-lighted when selecting something in the tree. Bug in PER dissector?
+ * - Add support for RTP payload audio/t38 (draft-jones-avt-audio-t38-03.txt), i.e. T38 in RTP packets.
+ */
+
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/reassemble.h>
+#include <epan/conversation.h>
+#include <epan/tap.h>
+#include <epan/expert.h>
+#include <epan/strutil.h>
+#include <epan/prefs.h>
+#include <epan/ipproto.h>
+#include <epan/asn1.h>
+#include <epan/proto_data.h>
+
+#include "packet-t38.h"
+#include "packet-per.h"
+#include "packet-tpkt.h"
+
+void proto_register_t38(void);
+
+static int t38_tap = -1;
+
+/* dissect using the Pre Corrigendum T.38 ASN.1 specification (1998) */
+static gboolean use_pre_corrigendum_asn1_specification = TRUE;
+
+/* dissect packets that looks like RTP version 2 packets as RTP */
+/* instead of as T.38. This may result in that some T.38 UPTL */
+/* packets with sequence number values higher than 32767 may be */
+/* shown as RTP packets. */
+static gboolean dissect_possible_rtpv2_packets_as_rtp = FALSE;
+
+
+/* Reassembly of T.38 PDUs over TPKT over TCP */
+static gboolean t38_tpkt_reassembly = TRUE;
+
+/* Preference setting whether TPKT header is used when sending T.38 over TCP.
+ * The default setting is Maybe where the dissector will look on the first
+ * bytes to try to determine whether TPKT header is used or not. This may not
+ * work so well in some cases. You may want to change the setting to Always or
+ * Newer.
+ */
+#define T38_TPKT_NEVER 0 /* Assume that there is never a TPKT header */
+#define T38_TPKT_ALWAYS 1 /* Assume that there is always a TPKT header */
+#define T38_TPKT_MAYBE 2 /* Assume TPKT if first octets are 03-00-xx-xx */
+static gint t38_tpkt_usage = T38_TPKT_MAYBE;
+
+static const enum_val_t t38_tpkt_options[] = {
+ {"never", "Never", T38_TPKT_NEVER},
+ {"always", "Always", T38_TPKT_ALWAYS},
+ {"maybe", "Maybe", T38_TPKT_MAYBE},
+ {NULL, NULL, -1}
+};
+
+
+
+/* T38 */
+static dissector_handle_t t38_udp_handle;
+static dissector_handle_t t38_tcp_handle;
+static dissector_handle_t t38_tcp_pdu_handle;
+static dissector_handle_t rtp_handle;
+static dissector_handle_t t30_hdlc_handle;
+static dissector_handle_t data_handle;
+
+static gint32 Type_of_msg_value;
+static guint32 Data_Field_field_type_value;
+static guint32 Data_value;
+static guint32 T30ind_value;
+static guint32 Data_Field_item_num;
+
+static int proto_t38 = -1;
+#include "packet-t38-hf.c"
+
+/* T38 setup fields */
+static int hf_t38_setup = -1;
+static int hf_t38_setup_frame = -1;
+static int hf_t38_setup_method = -1;
+
+/* T38 Data reassemble fields */
+static int hf_t38_fragments = -1;
+static int hf_t38_fragment = -1;
+static int hf_t38_fragment_overlap = -1;
+static int hf_t38_fragment_overlap_conflicts = -1;
+static int hf_t38_fragment_multiple_tails = -1;
+static int hf_t38_fragment_too_long_fragment = -1;
+static int hf_t38_fragment_error = -1;
+static int hf_t38_fragment_count = -1;
+static int hf_t38_reassembled_in = -1;
+static int hf_t38_reassembled_length = -1;
+
+static gint ett_t38 = -1;
+#include "packet-t38-ett.c"
+static gint ett_t38_setup = -1;
+
+static gint ett_data_fragment = -1;
+static gint ett_data_fragments = -1;
+
+static expert_field ei_t38_malformed = EI_INIT;
+
+static gboolean primary_part = TRUE;
+static guint32 seq_number = 0;
+
+/* Tables for reassembly of Data fragments. */
+static reassembly_table data_reassembly_table;
+
+static const fragment_items data_frag_items = {
+ /* Fragment subtrees */
+ &ett_data_fragment,
+ &ett_data_fragments,
+ /* Fragment fields */
+ &hf_t38_fragments,
+ &hf_t38_fragment,
+ &hf_t38_fragment_overlap,
+ &hf_t38_fragment_overlap_conflicts,
+ &hf_t38_fragment_multiple_tails,
+ &hf_t38_fragment_too_long_fragment,
+ &hf_t38_fragment_error,
+ &hf_t38_fragment_count,
+ /* Reassembled in field */
+ &hf_t38_reassembled_in,
+ /* Reassembled length field */
+ &hf_t38_reassembled_length,
+ /* Reassembled data field */
+ NULL,
+ /* Tag */
+ "Data fragments"
+};
+
+typedef struct _fragment_key {
+ address src;
+ address dst;
+ guint32 id;
+} fragment_key;
+
+static conversation_t *p_conv= NULL;
+static t38_conv *p_t38_conv = NULL;
+static t38_conv *p_t38_packet_conv = NULL;
+static t38_conv_info *p_t38_conv_info = NULL;
+static t38_conv_info *p_t38_packet_conv_info = NULL;
+
+/* RTP Version is the first 2 bits of the first octet in the UDP payload*/
+#define RTP_VERSION(octet) ((octet) >> 6)
+
+void proto_reg_handoff_t38(void);
+
+static void show_setup_info(tvbuff_t *tvb, proto_tree *tree, t38_conv *p_t38_conv);
+/* Preferences bool to control whether or not setup info should be shown */
+static gboolean global_t38_show_setup_info = TRUE;
+
+/* Can tap up to 4 T38 packets within same packet */
+/* We only tap the primary part, not the redundancy */
+#define MAX_T38_MESSAGES_IN_PACKET 4
+static t38_packet_info t38_info_arr[MAX_T38_MESSAGES_IN_PACKET];
+static int t38_info_current=0;
+static t38_packet_info *t38_info=NULL;
+
+static void t38_defragment_init(void)
+{
+ /* Init reassembly table */
+ reassembly_table_init(&data_reassembly_table,
+ &addresses_reassembly_table_functions);
+}
+
+static void t38_defragment_cleanup(void)
+{
+ reassembly_table_destroy(&data_reassembly_table);
+}
+
+
+/* Set up an T38 conversation */
+void t38_add_address(packet_info *pinfo,
+ address *addr, int port,
+ int other_port,
+ const gchar *setup_method, guint32 setup_frame_number)
+{
+ address null_addr;
+ conversation_t* p_conversation;
+ t38_conv* p_conversation_data = NULL;
+
+ /*
+ * If this isn't the first time this packet has been processed,
+ * we've already done this work, so we don't need to do it
+ * again.
+ */
+ if ((pinfo->fd->flags.visited) || (t38_udp_handle == NULL))
+ {
+ return;
+ }
+
+ clear_address(&null_addr);
+
+ /*
+ * Check if the ip address and port combination is not
+ * already registered as a conversation.
+ */
+ p_conversation = find_conversation( setup_frame_number, addr, &null_addr, PT_UDP, port, other_port,
+ NO_ADDR_B | (!other_port ? NO_PORT_B : 0));
+
+ /*
+ * If not, create a new conversation.
+ */
+ if ( !p_conversation || p_conversation->setup_frame != setup_frame_number) {
+ p_conversation = conversation_new( setup_frame_number, addr, &null_addr, PT_UDP,
+ (guint32)port, (guint32)other_port,
+ NO_ADDR2 | (!other_port ? NO_PORT2 : 0));
+ }
+
+ /* Set dissector */
+ conversation_set_dissector(p_conversation, t38_udp_handle);
+
+ /*
+ * Check if the conversation has data associated with it.
+ */
+ p_conversation_data = (t38_conv*)conversation_get_proto_data(p_conversation, proto_t38);
+
+ /*
+ * If not, add a new data item.
+ */
+ if ( ! p_conversation_data ) {
+ /* Create conversation data */
+ p_conversation_data = wmem_new(wmem_file_scope(), t38_conv);
+
+ conversation_add_proto_data(p_conversation, proto_t38, p_conversation_data);
+ }
+
+ /*
+ * Update the conversation data.
+ */
+ g_strlcpy(p_conversation_data->setup_method, setup_method, MAX_T38_SETUP_METHOD_SIZE);
+ p_conversation_data->setup_frame_number = setup_frame_number;
+ p_conversation_data->src_t38_info.reass_ID = 0;
+ p_conversation_data->src_t38_info.reass_start_seqnum = -1;
+ p_conversation_data->src_t38_info.reass_data_type = 0;
+ p_conversation_data->src_t38_info.last_seqnum = -1;
+ p_conversation_data->src_t38_info.packet_lost = 0;
+ p_conversation_data->src_t38_info.burst_lost = 0;
+ p_conversation_data->src_t38_info.time_first_t4_data = 0;
+ p_conversation_data->src_t38_info.additional_hdlc_data_field_counter = 0;
+ p_conversation_data->src_t38_info.seqnum_prev_data_field = -1;
+
+ p_conversation_data->dst_t38_info.reass_ID = 0;
+ p_conversation_data->dst_t38_info.reass_start_seqnum = -1;
+ p_conversation_data->dst_t38_info.reass_data_type = 0;
+ p_conversation_data->dst_t38_info.last_seqnum = -1;
+ p_conversation_data->dst_t38_info.packet_lost = 0;
+ p_conversation_data->dst_t38_info.burst_lost = 0;
+ p_conversation_data->dst_t38_info.time_first_t4_data = 0;
+ p_conversation_data->dst_t38_info.additional_hdlc_data_field_counter = 0;
+ p_conversation_data->dst_t38_info.seqnum_prev_data_field = -1;
+}
+
+
+static fragment_head *
+force_reassemble_seq(reassembly_table *table, packet_info *pinfo, guint32 id)
+{
+ fragment_head *fd_head;
+ fragment_item *fd_i;
+ fragment_item *last_fd;
+ guint32 dfpos, size, packet_lost, burst_lost, seq_num;
+ guint8 *data;
+
+ fd_head = fragment_get(table, pinfo, id, NULL);
+
+ /* have we already seen this frame ?*/
+ if (pinfo->fd->flags.visited) {
+ if (fd_head != NULL && fd_head->flags & FD_DEFRAGMENTED) {
+ return fd_head;
+ } else {
+ return NULL;
+ }
+ }
+
+ if (fd_head==NULL){
+ /* we must have it to continue */
+ return NULL;
+ }
+
+ /* check for packet lost and count the burst of packet lost */
+ packet_lost = 0;
+ burst_lost = 0;
+ seq_num = 0;
+ for(fd_i=fd_head->next;fd_i;fd_i=fd_i->next) {
+ if (seq_num != fd_i->offset) {
+ packet_lost += fd_i->offset - seq_num;
+ if ( (fd_i->offset - seq_num) > burst_lost ) {
+ burst_lost = fd_i->offset - seq_num;
+ }
+ }
+ seq_num = fd_i->offset + 1;
+ }
+
+ /* we have received an entire packet, defragment it and
+ * free all fragments
+ */
+ size=0;
+ last_fd=NULL;
+ for(fd_i=fd_head->next;fd_i;fd_i=fd_i->next) {
+ if(!last_fd || last_fd->offset!=fd_i->offset){
+ size+=fd_i->len;
+ }
+ last_fd=fd_i;
+ }
+
+ data = (guint8 *) g_malloc(size);
+ fd_head->tvb_data = tvb_new_real_data(data, size, size);
+ fd_head->len = size; /* record size for caller */
+
+ /* add all data fragments */
+ dfpos = 0;
+ last_fd=NULL;
+ for (fd_i=fd_head->next;fd_i && fd_i->len + dfpos <= size;fd_i=fd_i->next) {
+ if (fd_i->len) {
+ if(!last_fd || last_fd->offset!=fd_i->offset){
+ tvb_memcpy(fd_i->tvb_data, data+dfpos, 0, fd_i->len);
+ dfpos += fd_i->len;
+ } else {
+ /* duplicate/retransmission/overlap */
+ fd_i->flags |= FD_OVERLAP;
+ fd_head->flags |= FD_OVERLAP;
+ if( (last_fd->len!=fd_i->len)
+ || tvb_memeql(last_fd->tvb_data, 0, tvb_get_ptr(fd_i->tvb_data, 0, last_fd->len), last_fd->len) ){
+ fd_i->flags |= FD_OVERLAPCONFLICT;
+ fd_head->flags |= FD_OVERLAPCONFLICT;
+ }
+ }
+ }
+ last_fd=fd_i;
+ }
+
+ /* we have defragmented the pdu, now free all fragments*/
+ for (fd_i=fd_head->next;fd_i;fd_i=fd_i->next) {
+ if(fd_i->tvb_data){
+ tvb_free(fd_i->tvb_data);
+ fd_i->tvb_data=NULL;
+ }
+ }
+
+ /* mark this packet as defragmented */
+ fd_head->flags |= FD_DEFRAGMENTED;
+ fd_head->reassembled_in=pinfo->num;
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, " (t4-data Reassembled: %d pack lost, %d pack burst lost)", packet_lost, burst_lost);
+
+ p_t38_packet_conv_info->packet_lost = packet_lost;
+ p_t38_packet_conv_info->burst_lost = burst_lost;
+
+ return fd_head;
+}
+
+/* T38 Routines */
+#include "packet-t38-fn.c"
+
+/* initialize the tap t38_info and the conversation */
+static void
+init_t38_info_conv(packet_info *pinfo)
+{
+ /* tap info */
+ t38_info_current++;
+ if (t38_info_current==MAX_T38_MESSAGES_IN_PACKET) {
+ t38_info_current=0;
+ }
+ t38_info = &t38_info_arr[t38_info_current];
+
+ t38_info->seq_num = 0;
+ t38_info->type_msg = 0;
+ t38_info->data_value = 0;
+ t38_info->t30ind_value =0;
+ t38_info->setup_frame_number = 0;
+ t38_info->Data_Field_field_type_value = 0;
+ t38_info->desc[0] = '\0';
+ t38_info->desc_comment[0] = '\0';
+ t38_info->time_first_t4_data = 0;
+ t38_info->frame_num_first_t4_data = 0;
+
+
+ /*
+ p_t38_packet_conv hold the conversation info in each of the packets.
+ p_t38_conv hold the conversation info used to reassemble the HDLC packets, and also the Setup info (e.g SDP)
+ If we already have p_t38_packet_conv in the packet, it means we already reassembled the HDLC packets, so we don't
+ need to use p_t38_conv
+ */
+ p_t38_packet_conv = NULL;
+ p_t38_conv = NULL;
+
+ /* Use existing packet info if available */
+ p_t38_packet_conv = (t38_conv *)p_get_proto_data(wmem_file_scope(), pinfo, proto_t38, 0);
+
+
+ /* find the conversation used for Reassemble and Setup Info */
+ p_conv = find_conversation(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
+ pinfo->ptype,
+ pinfo->destport, pinfo->srcport, NO_ADDR_B | NO_PORT_B);
+
+ /* create a conv if it doen't exist */
+ if (!p_conv) {
+ p_conv = conversation_new(pinfo->num, &pinfo->net_src, &pinfo->net_dst,
+ pinfo->ptype, pinfo->srcport, pinfo->destport, NO_ADDR_B | NO_PORT_B);
+
+ /* Set dissector */
+ conversation_set_dissector(p_conv, t38_udp_handle);
+ }
+
+ p_t38_conv = (t38_conv *)conversation_get_proto_data(p_conv, proto_t38);
+
+ /* create the conversation if it doesn't exist */
+ if (!p_t38_conv) {
+ p_t38_conv = wmem_new(wmem_file_scope(), t38_conv);
+ p_t38_conv->setup_method[0] = '\0';
+ p_t38_conv->setup_frame_number = 0;
+
+ p_t38_conv->src_t38_info.reass_ID = 0;
+ p_t38_conv->src_t38_info.reass_start_seqnum = -1;
+ p_t38_conv->src_t38_info.reass_data_type = 0;
+ p_t38_conv->src_t38_info.last_seqnum = -1;
+ p_t38_conv->src_t38_info.packet_lost = 0;
+ p_t38_conv->src_t38_info.burst_lost = 0;
+ p_t38_conv->src_t38_info.time_first_t4_data = 0;
+ p_t38_conv->src_t38_info.additional_hdlc_data_field_counter = 0;
+ p_t38_conv->src_t38_info.seqnum_prev_data_field = -1;
+
+ p_t38_conv->dst_t38_info.reass_ID = 0;
+ p_t38_conv->dst_t38_info.reass_start_seqnum = -1;
+ p_t38_conv->dst_t38_info.reass_data_type = 0;
+ p_t38_conv->dst_t38_info.last_seqnum = -1;
+ p_t38_conv->dst_t38_info.packet_lost = 0;
+ p_t38_conv->dst_t38_info.burst_lost = 0;
+ p_t38_conv->dst_t38_info.time_first_t4_data = 0;
+ p_t38_conv->dst_t38_info.additional_hdlc_data_field_counter = 0;
+ p_t38_conv->dst_t38_info.seqnum_prev_data_field = -1;
+
+ conversation_add_proto_data(p_conv, proto_t38, p_t38_conv);
+ }
+
+ if (!p_t38_packet_conv) {
+ /* copy the t38 conversation info to the packet t38 conversation */
+ p_t38_packet_conv = wmem_new(wmem_file_scope(), t38_conv);
+ g_strlcpy(p_t38_packet_conv->setup_method, p_t38_conv->setup_method, MAX_T38_SETUP_METHOD_SIZE);
+ p_t38_packet_conv->setup_frame_number = p_t38_conv->setup_frame_number;
+
+ memcpy(&(p_t38_packet_conv->src_t38_info), &(p_t38_conv->src_t38_info), sizeof(t38_conv_info));
+ memcpy(&(p_t38_packet_conv->dst_t38_info), &(p_t38_conv->dst_t38_info), sizeof(t38_conv_info));
+
+ p_add_proto_data(wmem_file_scope(), pinfo, proto_t38, 0, p_t38_packet_conv);
+ }
+
+ if (addresses_equal(&p_conv->key_ptr->addr1, &pinfo->net_src)) {
+ p_t38_conv_info = &(p_t38_conv->src_t38_info);
+ p_t38_packet_conv_info = &(p_t38_packet_conv->src_t38_info);
+ } else {
+ p_t38_conv_info = &(p_t38_conv->dst_t38_info);
+ p_t38_packet_conv_info = &(p_t38_packet_conv->dst_t38_info);
+ }
+
+ /* update t38_info */
+ t38_info->setup_frame_number = p_t38_packet_conv->setup_frame_number;
+}
+
+/* Entry point for dissection */
+static int
+dissect_t38_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ guint8 octet1;
+ proto_item *it;
+ proto_tree *tr;
+ guint32 offset=0;
+
+ /*
+ * XXX - heuristic to check for misidentified packets.
+ */
+ if (dissect_possible_rtpv2_packets_as_rtp){
+ octet1 = tvb_get_guint8(tvb, offset);
+ if (RTP_VERSION(octet1) == 2){
+ return call_dissector(rtp_handle,tvb,pinfo,tree);
+ }
+ }
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "T.38");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ primary_part = TRUE;
+
+ /* This indicate the item number in the primary part of the T38 message, it is used for the reassemble of T30 packets */
+ Data_Field_item_num = 0;
+
+ it=proto_tree_add_protocol_format(tree, proto_t38, tvb, 0, -1, "ITU-T Recommendation T.38");
+ tr=proto_item_add_subtree(it, ett_t38);
+
+ /* init tap and conv info */
+ init_t38_info_conv(pinfo);
+
+ /* Show Conversation setup info if exists*/
+ if (global_t38_show_setup_info) {
+ show_setup_info(tvb, tr, p_t38_packet_conv);
+ }
+
+ col_append_str(pinfo->cinfo, COL_INFO, "UDP: UDPTLPacket ");
+
+ offset = dissect_UDPTLPacket_PDU(tvb, pinfo, tr, NULL);
+
+ if (tvb_reported_length_remaining(tvb,offset)>0){
+ proto_tree_add_expert_format(tr, pinfo, &ei_t38_malformed, tvb, offset, tvb_reported_length_remaining(tvb, offset),
+ "[MALFORMED PACKET or wrong preference settings]");
+ col_append_str(pinfo->cinfo, COL_INFO, " [Malformed?]");
+ }
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_t38_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *it;
+ proto_tree *tr;
+ guint32 offset=0;
+ tvbuff_t *next_tvb;
+ guint16 ifp_packet_number=1;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "T.38");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ primary_part = TRUE;
+
+ /* This indicate the item number in the primary part of the T38 message, it is used for the reassemble of T30 packets */
+ Data_Field_item_num = 0;
+
+ it=proto_tree_add_protocol_format(tree, proto_t38, tvb, 0, -1, "ITU-T Recommendation T.38");
+ tr=proto_item_add_subtree(it, ett_t38);
+
+ /* init tap and conv info */
+ init_t38_info_conv(pinfo);
+
+ /* Show Conversation setup info if exists*/
+ if (global_t38_show_setup_info) {
+ show_setup_info(tvb, tr, p_t38_packet_conv);
+ }
+
+ col_append_str(pinfo->cinfo, COL_INFO, "TCP: IFPPacket");
+
+ while(tvb_reported_length_remaining(tvb,offset)>0)
+ {
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
+ offset += dissect_IFPPacket_PDU(next_tvb, pinfo, tr, NULL);
+ ifp_packet_number++;
+
+ if(tvb_reported_length_remaining(tvb,offset)>0){
+ if(t38_tpkt_usage == T38_TPKT_ALWAYS){
+ proto_tree_add_expert_format(tr, pinfo, &ei_t38_malformed, tvb, offset, tvb_reported_length_remaining(tvb, offset),
+ "[MALFORMED PACKET or wrong preference settings]");
+ col_append_str(pinfo->cinfo, COL_INFO, " [Malformed?]");
+ break;
+ }else {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " IFPPacket#%u",ifp_packet_number);
+ }
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static int
+dissect_t38_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ primary_part = TRUE;
+
+ if(t38_tpkt_usage == T38_TPKT_ALWAYS){
+ dissect_tpkt_encap(tvb,pinfo,tree,t38_tpkt_reassembly,t38_tcp_pdu_handle);
+ }
+ else if((t38_tpkt_usage == T38_TPKT_NEVER) || (is_tpkt(tvb,1) == -1)){
+ dissect_t38_tcp_pdu(tvb, pinfo, tree, data);
+ }
+ else {
+ dissect_tpkt_encap(tvb,pinfo,tree,t38_tpkt_reassembly,t38_tcp_pdu_handle);
+ }
+ return tvb_captured_length(tvb);
+}
+
+/* Look for conversation info and display any setup info found */
+void
+show_setup_info(tvbuff_t *tvb, proto_tree *tree, t38_conv *p_t38_conversation)
+{
+ proto_tree *t38_setup_tree;
+ proto_item *ti;
+
+ if (!p_t38_conversation || p_t38_conversation->setup_frame_number == 0) {
+ /* there is no Setup info */
+ return;
+ }
+
+ ti = proto_tree_add_string_format(tree, hf_t38_setup, tvb, 0, 0,
+ "",
+ "Stream setup by %s (frame %u)",
+ p_t38_conversation->setup_method,
+ p_t38_conversation->setup_frame_number);
+ PROTO_ITEM_SET_GENERATED(ti);
+ t38_setup_tree = proto_item_add_subtree(ti, ett_t38_setup);
+ if (t38_setup_tree)
+ {
+ /* Add details into subtree */
+ proto_item* item = proto_tree_add_uint(t38_setup_tree, hf_t38_setup_frame,
+ tvb, 0, 0, p_t38_conversation->setup_frame_number);
+ PROTO_ITEM_SET_GENERATED(item);
+ item = proto_tree_add_string(t38_setup_tree, hf_t38_setup_method,
+ tvb, 0, 0, p_t38_conversation->setup_method);
+ PROTO_ITEM_SET_GENERATED(item);
+ }
+}
+
+
+
+/* Wireshark Protocol Registration */
+void
+proto_register_t38(void)
+{
+ static hf_register_info hf[] =
+ {
+#include "packet-t38-hfarr.c"
+ { &hf_t38_setup,
+ { "Stream setup", "t38.setup", FT_STRING, BASE_NONE,
+ NULL, 0x0, "Stream setup, method and frame number", HFILL }},
+ { &hf_t38_setup_frame,
+ { "Stream frame", "t38.setup-frame", FT_FRAMENUM, BASE_NONE,
+ NULL, 0x0, "Frame that set up this stream", HFILL }},
+ { &hf_t38_setup_method,
+ { "Stream Method", "t38.setup-method", FT_STRING, BASE_NONE,
+ NULL, 0x0, "Method used to set up this stream", HFILL }},
+ {&hf_t38_fragments,
+ {"Message fragments", "t38.fragments",
+ FT_NONE, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ {&hf_t38_fragment,
+ {"Message fragment", "t38.fragment",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ {&hf_t38_fragment_overlap,
+ {"Message fragment overlap", "t38.fragment.overlap",
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ {&hf_t38_fragment_overlap_conflicts,
+ {"Message fragment overlapping with conflicting data",
+ "t38.fragment.overlap.conflicts",
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ {&hf_t38_fragment_multiple_tails,
+ {"Message has multiple tail fragments",
+ "t38.fragment.multiple_tails",
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ {&hf_t38_fragment_too_long_fragment,
+ {"Message fragment too long", "t38.fragment.too_long_fragment",
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
+ {&hf_t38_fragment_error,
+ {"Message defragmentation error", "t38.fragment.error",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ {&hf_t38_fragment_count,
+ {"Message fragment count", "t38.fragment.count",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL } },
+ {&hf_t38_reassembled_in,
+ {"Reassembled in", "t38.reassembled.in",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ {&hf_t38_reassembled_length,
+ {"Reassembled T38 length", "t38.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL } },
+ };
+
+ static gint *ett[] =
+ {
+ &ett_t38,
+#include "packet-t38-ettarr.c"
+ &ett_t38_setup,
+ &ett_data_fragment,
+ &ett_data_fragments
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_t38_malformed, { "t38.malformed", PI_MALFORMED, PI_ERROR, "Malformed packet", EXPFILL }},
+ };
+
+ module_t *t38_module;
+ expert_module_t* expert_t38;
+
+ proto_t38 = proto_register_protocol("T.38", "T.38", "t38");
+ proto_register_field_array(proto_t38, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_t38 = expert_register_protocol(proto_t38);
+ expert_register_field_array(expert_t38, ei, array_length(ei));
+ register_dissector("t38_udp", dissect_t38_udp, proto_t38);
+
+ /* Init reassemble tables for HDLC */
+ register_init_routine(t38_defragment_init);
+ register_cleanup_routine(t38_defragment_cleanup);
+
+ t38_tap = register_tap("t38");
+
+ t38_module = prefs_register_protocol(proto_t38, proto_reg_handoff_t38);
+ prefs_register_bool_preference(t38_module, "use_pre_corrigendum_asn1_specification",
+ "Use the Pre-Corrigendum ASN.1 specification",
+ "Whether the T.38 dissector should decode using the Pre-Corrigendum T.38 "
+ "ASN.1 specification (1998).",
+ &use_pre_corrigendum_asn1_specification);
+ prefs_register_bool_preference(t38_module, "dissect_possible_rtpv2_packets_as_rtp",
+ "Dissect possible RTP version 2 packets with RTP dissector",
+ "Whether a UDP packet that looks like RTP version 2 packet will "
+ "be dissected as RTP packet or T.38 packet. If enabled there is a risk that T.38 UDPTL "
+ "packets with sequence number higher than 32767 may be dissected as RTP.",
+ &dissect_possible_rtpv2_packets_as_rtp);
+ prefs_register_obsolete_preference(t38_module, "tcp.port");
+ prefs_register_obsolete_preference(t38_module, "udp.port");
+ prefs_register_bool_preference(t38_module, "reassembly",
+ "Reassemble T.38 PDUs over TPKT over TCP",
+ "Whether the dissector should reassemble T.38 PDUs spanning multiple TCP segments "
+ "when TPKT is used over TCP. "
+ "To use this option, you must also enable \"Allow subdissectors to reassemble "
+ "TCP streams\" in the TCP protocol settings.",
+ &t38_tpkt_reassembly);
+ prefs_register_enum_preference(t38_module, "tpkt_usage",
+ "TPKT used over TCP",
+ "Whether T.38 is used with TPKT for TCP",
+ (gint *)&t38_tpkt_usage,t38_tpkt_options,FALSE);
+
+ prefs_register_bool_preference(t38_module, "show_setup_info",
+ "Show stream setup information",
+ "Where available, show which protocol and frame caused "
+ "this T.38 stream to be created",
+ &global_t38_show_setup_info);
+
+}
+
+void
+proto_reg_handoff_t38(void)
+{
+ static gboolean t38_prefs_initialized = FALSE;
+
+ if (!t38_prefs_initialized) {
+ t38_udp_handle=create_dissector_handle(dissect_t38_udp, proto_t38);
+ t38_tcp_handle=create_dissector_handle(dissect_t38_tcp, proto_t38);
+ t38_tcp_pdu_handle=create_dissector_handle(dissect_t38_tcp_pdu, proto_t38);
+ rtp_handle = find_dissector("rtp");
+ t30_hdlc_handle = find_dissector("t30.hdlc");
+ data_handle = find_dissector("data");
+ t38_prefs_initialized = TRUE;
+ }
+}
+
diff --git a/epan/dissectors/asn1/t38/packet-t38-template.h b/epan/dissectors/asn1/t38/packet-t38-template.h
new file mode 100644
index 0000000000..a2ef4b949b
--- /dev/null
+++ b/epan/dissectors/asn1/t38/packet-t38-template.h
@@ -0,0 +1,85 @@
+/* packet-t38.h
+ *
+ * Routines for T38 dissection
+ * 2003 Hans Viens
+ * 2004 Alejandro Vaquero, add support to conversation
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "ws_symbol_export.h"
+
+#define MAX_T38_DATA_ITEMS 4
+#define MAX_T38_DESC 128
+
+typedef struct _t38_packet_info {
+ guint16 seq_num; /* UDPTLPacket sequence number */
+ gint32 type_msg; /* 0=t30-indicator 1=data */
+ guint32 t30ind_value;
+ guint32 data_value; /* standard and speed */
+ guint32 setup_frame_number;
+ guint32 Data_Field_field_type_value;
+ guint8 t30_Facsimile_Control;
+ gchar desc[MAX_T38_DESC]; /* Description used to be displayed in the frame label Graph Anlaysis */
+ gchar desc_comment[MAX_T38_DESC]; /* Description used to be displayed in the Comment Graph Anlaysis */
+ double time_first_t4_data;
+ guint32 frame_num_first_t4_data;
+} t38_packet_info;
+
+
+#define MAX_T38_SETUP_METHOD_SIZE 7
+
+
+/* Info to save the State to reassemble Data (e.g. HDLC) and the Setup (e.g. SDP) in T38 conversations */
+typedef struct _t38_conv_info
+{
+
+ guint32 reass_ID;
+ int reass_start_seqnum;
+ guint32 reass_data_type;
+ gint32 last_seqnum; /* used to avoid duplicated seq num shown in the Graph Analysis */
+ guint32 packet_lost;
+ guint32 burst_lost;
+ double time_first_t4_data;
+ guint32 additional_hdlc_data_field_counter;
+ gint32 seqnum_prev_data_field;
+
+} t38_conv_info;
+
+/* Info to save the State to reassemble Data (e.g. HDLC) and the Setup (e.g. SDP) in T38 conversations */
+typedef struct _t38_conv
+{
+ gchar setup_method[MAX_T38_SETUP_METHOD_SIZE + 1];
+ guint32 setup_frame_number;
+ t38_conv_info src_t38_info;
+ t38_conv_info dst_t38_info;
+} t38_conv;
+
+/* Add an T38 conversation with the given details */
+WS_DLL_PUBLIC
+void t38_add_address(packet_info *pinfo,
+ address *addr, int port,
+ int other_port,
+ const gchar *setup_method, guint32 setup_frame_number);
+
+
+#include "packet-t38-exp.h"
+
+
+
diff --git a/epan/dissectors/asn1/t38/t38.cnf b/epan/dissectors/asn1/t38/t38.cnf
new file mode 100644
index 0000000000..db61672b71
--- /dev/null
+++ b/epan/dissectors/asn1/t38/t38.cnf
@@ -0,0 +1,261 @@
+# t38.cnf
+# T.38 conformation file
+# 2007 Tomas Kukosa
+
+#.EXPORTS ONLY_VALS WS_DLL
+Type-of-msg/t30-indicator
+Type-of-msg/t30-data
+#.END
+
+#.TYPE_RENAME
+Type-of-msg/t30-indicator T30_indicator
+Type-of-msg/t30-data T30_data
+#.END
+
+#.PDU
+IFPPacket
+UDPTLPacket
+#.END
+
+#.FN_PARS Type-of-msg VAL_PTR=&Type_of_msg_value
+#.FN_FTR Type-of-msg
+ /* info for tap */
+ if (primary_part)
+ t38_info->type_msg = Type_of_msg_value;
+#.END
+
+#.FN_PARS Type-of-msg/t30-indicator VAL_PTR=&T30ind_value
+#.FN_FTR Type-of-msg/t30-indicator
+ if (primary_part){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " t30ind: %s",
+ val_to_str(T30ind_value,t38_T30_indicator_vals,"<unknown>"));
+ }
+
+ /* info for tap */
+ if (primary_part)
+ t38_info->t30ind_value = T30ind_value;
+#.END
+
+#.FN_PARS Type-of-msg/t30-data VAL_PTR=&Data_value
+#.FN_FTR Type-of-msg/t30-data
+ if (primary_part){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " data:%s:",
+ val_to_str(Data_value,t38_T30_data_vals,"<unknown>"));
+ }
+
+
+ /* info for tap */
+ if (primary_part)
+ t38_info->data_value = Data_value;
+#.END
+
+#.FN_FTR Data-Field/_item
+ if (primary_part) Data_Field_item_num++;
+#.END
+
+#.FN_PARS Data-Field/_item/field-type
+EXT=(use_pre_corrigendum_asn1_specification)?FALSE:TRUE
+EXT_NUM=(use_pre_corrigendum_asn1_specification)?0:4
+VAL_PTR=&Data_Field_field_type_value
+#.FN_FTR Data-Field/_item/field-type
+ if (primary_part){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s",
+ val_to_str(Data_Field_field_type_value,t38_T_field_type_vals,"<unknown>"));
+ }
+
+ /* We only reassmeble packets in the Primary part and in the first two Items. */
+ /* There maybe be t38 packets with more than two Items, but reassemble those packets is not easy */
+ /* using the current ressaemble functions. */
+ /* TODO: reassemble all the Items in one frame */
+ if (primary_part && (Data_Field_item_num<2)) {
+ if (Data_Field_field_type_value == 2 || Data_Field_field_type_value == 4 || Data_Field_field_type_value == 7) {/* hdlc-fcs-OK or hdlc-fcs-OK-sig-end or t4-non-ecm-sig-end*/
+ fragment_head *frag_msg = NULL;
+ tvbuff_t* new_tvb = NULL;
+ gboolean save_fragmented = actx->pinfo->fragmented;
+
+ actx->pinfo->fragmented = TRUE;
+
+ /* if reass_start_seqnum=-1 it means we have received the end of the fragmente, without received any fragment data */
+ if (p_t38_packet_conv_info->reass_start_seqnum != -1) {
+ frag_msg = fragment_add_seq(&data_reassembly_table, /* reassembly table */
+ tvb, offset, actx->pinfo,
+ p_t38_packet_conv_info->reass_ID, /* ID for fragments belonging together */
+ NULL,
+ seq_number + Data_Field_item_num - (guint32)p_t38_packet_conv_info->reass_start_seqnum + (guint32)p_t38_packet_conv_info->additional_hdlc_data_field_counter, /* fragment sequence number */
+ /*0,*/
+ 0, /* fragment length */
+ FALSE, /* More fragments */
+ 0);
+ if ( Data_Field_field_type_value == 7 ) {
+ /* if there was packet lost or other errors during the defrag then frag_msg is NULL. This could also means
+ * there are out of order packets (e.g, got the tail frame t4-non-ecm-sig-end before the last fragment),
+ * but we will assume there was packet lost instead, which is more usual. So, we are going to reassemble the packet
+ * and get some stat, like packet lost and burst number of packet lost
+ */
+ if (!frag_msg) {
+ force_reassemble_seq(&data_reassembly_table, /* reassembly table */
+ actx->pinfo,
+ p_t38_packet_conv_info->reass_ID /* ID for fragments belonging together */
+ );
+ } else {
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " (t4-data Reassembled: No packet lost)");
+
+ g_snprintf(t38_info->desc_comment, MAX_T38_DESC, "No packet lost");
+ }
+
+
+ if (p_t38_packet_conv_info->packet_lost) {
+ g_snprintf(t38_info->desc_comment, MAX_T38_DESC, " Pack lost: %d, Pack burst lost: %d", p_t38_packet_conv_info->packet_lost, p_t38_packet_conv_info->burst_lost);
+ } else {
+ g_snprintf(t38_info->desc_comment, MAX_T38_DESC, "No packet lost");
+ }
+
+ process_reassembled_data(tvb, offset, actx->pinfo,
+ "Reassembled T38", frag_msg, &data_frag_items, NULL, tree);
+
+ /* Now reset fragmentation information in pinfo */
+ actx->pinfo->fragmented = save_fragmented;
+
+ t38_info->time_first_t4_data = p_t38_packet_conv_info->time_first_t4_data;
+ t38_info->frame_num_first_t4_data = p_t38_packet_conv_info->reass_ID; /* The reass_ID is the Frame number of the first t4 fragment */
+
+ } else {
+ new_tvb = process_reassembled_data(tvb, offset, actx->pinfo,
+ "Reassembled T38", frag_msg, &data_frag_items, NULL, tree);
+
+ /* Now reset fragmentation information in pinfo */
+ actx->pinfo->fragmented = save_fragmented;
+
+ if (new_tvb) call_dissector_with_data((t30_hdlc_handle) ? t30_hdlc_handle : data_handle, new_tvb, actx->pinfo, tree, t38_info);
+ }
+ } else {
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_t38_malformed, tvb, offset, tvb_reported_length_remaining(tvb, offset),
+ "[RECEIVED END OF FRAGMENT W/OUT ANY FRAGMENT DATA]");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " [Malformed?]");
+ actx->pinfo->fragmented = save_fragmented;
+ }
+ }
+
+ /* reset the reassemble ID and the start seq number if it is not HDLC data */
+ if ( p_t38_conv && ( ((Data_Field_field_type_value >0) && (Data_Field_field_type_value <6)) || (Data_Field_field_type_value == 7) ) ){
+ p_t38_conv_info->reass_ID = 0;
+ p_t38_conv_info->reass_start_seqnum = -1;
+ p_t38_conv_info->additional_hdlc_data_field_counter = 0;
+ p_t38_conv_info->seqnum_prev_data_field = -1;
+ }
+ t38_info->Data_Field_field_type_value = Data_Field_field_type_value;
+ }
+#.END
+
+#.FN_BODY Data-Field/_item/field-data VAL_PTR=&value_tvb
+ tvbuff_t *value_tvb = NULL;
+ guint32 value_len;
+
+%(DEFAULT_BODY)s
+ value_len = tvb_reported_length(value_tvb);
+
+#.FN_FTR Data-Field/_item/field-data
+ if (primary_part){
+ if(value_len < 8){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "[%s]",
+ tvb_bytes_to_str(wmem_packet_scope(), value_tvb,0,value_len));
+ }
+ else {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "[%s...]",
+ tvb_bytes_to_str(wmem_packet_scope(), value_tvb,0,7));
+ }
+ }
+
+ /* We only reassmeble packets in the Primary part and in the first two Items. */
+ /* There maybe be t38 packets with more than two Items, but reassemble those packets is not easy */
+ /* using the current ressaemble functions. */
+ /* TODO: reassemble all the Items in one frame */
+ if (primary_part && (Data_Field_item_num<2)) {
+ fragment_head *frag_msg = NULL;
+
+ /* HDLC Data or t4-non-ecm-data */
+ if (Data_Field_field_type_value == 0 || Data_Field_field_type_value == 6) { /* 0=HDLC Data or 6=t4-non-ecm-data*/
+ gboolean save_fragmented = actx->pinfo->fragmented;
+
+ actx->pinfo->fragmented = TRUE;
+
+ /* if we have not reassembled this packet and it is the first fragment, reset the reassemble ID and the start seq number*/
+ if (p_t38_packet_conv && p_t38_conv && (p_t38_packet_conv_info->reass_ID == 0)) {
+ /* we use the first fragment's frame_number as fragment ID because the protocol doesn't provide it */
+ p_t38_conv_info->reass_ID = actx->pinfo->num;
+ p_t38_conv_info->reass_start_seqnum = seq_number;
+ p_t38_conv_info->time_first_t4_data = nstime_to_sec(&actx->pinfo->rel_ts);
+ p_t38_conv_info->additional_hdlc_data_field_counter = 0;
+ p_t38_packet_conv_info->reass_ID = p_t38_conv_info->reass_ID;
+ p_t38_packet_conv_info->reass_start_seqnum = p_t38_conv_info->reass_start_seqnum;
+ p_t38_packet_conv_info->seqnum_prev_data_field = p_t38_conv_info->seqnum_prev_data_field;
+ p_t38_packet_conv_info->additional_hdlc_data_field_counter = p_t38_conv_info->additional_hdlc_data_field_counter;
+ p_t38_packet_conv_info->time_first_t4_data = p_t38_conv_info->time_first_t4_data;
+ }
+ if (seq_number == (guint32)p_t38_packet_conv_info->seqnum_prev_data_field){
+ p_t38_packet_conv_info->additional_hdlc_data_field_counter ++;
+ if(p_t38_conv){
+ p_t38_conv_info->additional_hdlc_data_field_counter = p_t38_packet_conv_info->additional_hdlc_data_field_counter;
+ }
+ }
+ frag_msg = fragment_add_seq(&data_reassembly_table,
+ value_tvb, 0,
+ actx->pinfo,
+ p_t38_packet_conv_info->reass_ID, /* ID for fragments belonging together */
+ NULL,
+ seq_number - (guint32)p_t38_packet_conv_info->reass_start_seqnum + (guint32)p_t38_packet_conv_info->additional_hdlc_data_field_counter, /* fragment sequence number */
+ value_len, /* fragment length */
+ TRUE, /* More fragments */
+ 0);
+ p_t38_packet_conv_info->seqnum_prev_data_field = (gint32)seq_number;
+ process_reassembled_data(tvb, offset, actx->pinfo,
+ "Reassembled T38", frag_msg, &data_frag_items, NULL, tree);
+
+ if (!frag_msg) { /* Not last packet of reassembled */
+ if (Data_Field_field_type_value == 0) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO," (HDLC fragment %u)",
+ seq_number + (guint32)p_t38_packet_conv_info->additional_hdlc_data_field_counter
+ - (guint32)p_t38_packet_conv_info->reass_start_seqnum);
+ } else {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO," (t4-data fragment %u)", seq_number - (guint32)p_t38_packet_conv_info->reass_start_seqnum);
+ }
+ }
+
+ /* Now reset fragmentation information in pinfo */
+ actx->pinfo->fragmented = save_fragmented;
+ }
+ }
+#.END
+
+
+#.FN_HDR UDPTLPacket
+ /* Initialize to something else than data type */
+ Data_Field_field_type_value = 1;
+#.END
+
+#.FN_PARS UDPTLPacket/seq-number VAL_PTR=&seq_number
+#.FN_FTR UDPTLPacket/seq-number
+ /* info for tap */
+ if (primary_part)
+ t38_info->seq_num = seq_number;
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "Seq=%05u ",seq_number);
+#.END
+
+#.FN_HDR UDPTLPacket/primary-ifp-packet
+ primary_part = TRUE;
+#.FN_FTR UDPTLPacket/primary-ifp-packet
+ /* if is a valid t38 packet, add to tap */
+ /* Note that t4-non-ecm-sig-end without first_t4_data is not valid */
+ if (p_t38_packet_conv && (!actx->pinfo->flags.in_error_pkt) && ((gint32) seq_number != p_t38_packet_conv_info->last_seqnum) &&
+ !(t38_info->type_msg == 1 && t38_info->Data_Field_field_type_value == 7 && t38_info->frame_num_first_t4_data == 0))
+ tap_queue_packet(t38_tap, actx->pinfo, t38_info);
+
+ if (p_t38_conv) p_t38_conv_info->last_seqnum = (gint32) seq_number;
+#.END
+
+#.FN_HDR UDPTLPacket/error-recovery
+ primary_part = FALSE;
+#.FN_FTR UDPTLPacket/error-recovery
+ primary_part = TRUE;
+#.END
diff --git a/epan/dissectors/asn1/tcap/CMakeLists.txt b/epan/dissectors/asn1/tcap/CMakeLists.txt
new file mode 100644
index 0000000000..2305d6e40c
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME tcap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+ UnidialoguePDUs.asn
+ DialoguePDUs.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+ TCAPMessages.asn
+ TC-Notation-Extensions.asn
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/tcap/DialoguePDUs.asn b/epan/dissectors/asn1/tcap/DialoguePDUs.asn
new file mode 100644
index 0000000000..9ae2fd7a1e
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/DialoguePDUs.asn
@@ -0,0 +1,79 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+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/epan/dissectors/asn1/tcap/Makefile.am b/epan/dissectors/asn1/tcap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/tcap/Makefile.common b/epan/dissectors/asn1/tcap/Makefile.common
new file mode 100644
index 0000000000..a3bd434afc
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/Makefile.common
@@ -0,0 +1,50 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=tcap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn\
+ UnidialoguePDUs.asn \
+ DialoguePDUs.asn
+
+INCLUDED_ASN_FILE_LIST = \
+ TCAPMessages.asn \
+ TC-Notation-Extensions.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/tcap/Makefile.nmake b/epan/dissectors/asn1/tcap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/tcap/TC-Notation-Extensions.asn b/epan/dissectors/asn1/tcap/TC-Notation-Extensions.asn
new file mode 100644
index 0000000000..f389cae443
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/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/epan/dissectors/asn1/tcap/TCAPMessages.asn b/epan/dissectors/asn1/tcap/TCAPMessages.asn
new file mode 100644
index 0000000000..cccec042a7
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/TCAPMessages.asn
@@ -0,0 +1,96 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+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
+
diff --git a/epan/dissectors/asn1/tcap/UnidialoguePDUs.asn b/epan/dissectors/asn1/tcap/UnidialoguePDUs.asn
new file mode 100644
index 0000000000..4f7c6c3556
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/UnidialoguePDUs.asn
@@ -0,0 +1,25 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+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/epan/dissectors/asn1/tcap/packet-tcap-template.c b/epan/dissectors/asn1/tcap/packet-tcap-template.c
new file mode 100644
index 0000000000..b3df5bb755
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/packet-tcap-template.c
@@ -0,0 +1,2494 @@
+/* packet-tcap-template.c
+ * Routines for TCAP
+ * Copyright 2004 - 2005, Tim Endean <endeant@hotmail.com>
+ * Built from the gsm-map dissector Copyright 2004 - 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * References: ETSI 300 374
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/strutil.h>
+#include <epan/show_exception.h>
+
+#include "packet-ber.h"
+#include "packet-tcap.h"
+#include "packet-mtp3.h"
+
+
+#define PNAME "Transaction Capabilities Application Part"
+#define PSNAME "TCAP"
+#define PFNAME "tcap"
+
+/* Initialize the protocol and registered fields */
+static int proto_tcap = -1;
+static int hf_tcap_tag = -1;
+static int hf_tcap_length = -1;
+static int hf_tcap_data = -1;
+static int hf_tcap_tid = -1;
+static int hf_tcap_constructor_eoc=-1;
+
+int hf_tcapsrt_SessionId=-1;
+int hf_tcapsrt_Duplicate=-1;
+int hf_tcapsrt_BeginSession=-1;
+int hf_tcapsrt_EndSession=-1;
+int hf_tcapsrt_SessionTime=-1;
+
+#include "packet-tcap-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_tcap = -1;
+static gint ett_param = -1;
+
+static gint ett_otid = -1;
+static gint ett_dtid = -1;
+gint ett_tcap_stat = -1;
+
+static struct tcapsrt_info_t * gp_tcapsrt_info;
+static gboolean tcap_subdissector_used=FALSE;
+static dissector_handle_t requested_subdissector_handle = NULL;
+
+static struct tcaphash_context_t * gp_tcap_context=NULL;
+
+#include "packet-tcap-ett.c"
+
+/* When several Tcap components are received in a single TCAP message,
+ we have to use several buffers for the stored parameters
+ because else this data are erased during TAP dissector call */
+#define MAX_TCAP_INSTANCE 10
+static int tcapsrt_global_current=0;
+static struct tcapsrt_info_t tcapsrt_global_info[MAX_TCAP_INSTANCE];
+
+#define MAX_SSN 254
+static range_t *global_ssn_range;
+static range_t *ssn_range;
+struct tcap_private_t tcap_private;
+
+gboolean gtcap_HandleSRT=FALSE;
+/* These two timeout (in second) are used when some message are lost,
+ or when the same TCAP transcation identifier is reused */
+guint gtcap_RepetitionTimeout = 10;
+guint gtcap_LostTimeout = 30;
+gboolean gtcap_PersistentSRT=FALSE;
+gboolean gtcap_DisplaySRT=FALSE;
+gboolean gtcap_StatSRT=FALSE;
+
+/* Global hash tables*/
+static GHashTable *tcaphash_context = NULL;
+static GHashTable *tcaphash_begin = NULL;
+static GHashTable *tcaphash_cont = NULL;
+static GHashTable *tcaphash_end = NULL;
+static GHashTable *tcaphash_ansi = NULL;
+
+static guint32 tcapsrt_global_SessionId=1;
+
+static dissector_handle_t tcap_handle = NULL;
+static dissector_table_t ber_oid_dissector_table;
+static const char * cur_oid;
+static const char * tcapext_oid;
+static proto_tree * tcap_top_tree=NULL;
+static proto_tree * tcap_stat_tree=NULL;
+
+static dissector_handle_t data_handle;
+static dissector_handle_t ansi_tcap_handle;
+
+static void raz_tcap_private(struct tcap_private_t * p_tcap_private);
+static int dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset);
+static int dissect_tcap_ITU_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_);
+
+static GHashTable* ansi_sub_dissectors = NULL;
+static GHashTable* itu_sub_dissectors = NULL;
+
+extern void add_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector) {
+ g_hash_table_insert(ansi_sub_dissectors,GUINT_TO_POINTER(ssn),dissector);
+ dissector_add_uint("sccp.ssn",ssn,tcap_handle);
+}
+
+extern void add_itu_tcap_subdissector(guint32 ssn, dissector_handle_t dissector) {
+ g_hash_table_insert(itu_sub_dissectors,GUINT_TO_POINTER(ssn),dissector);
+ dissector_add_uint("sccp.ssn",ssn,tcap_handle);
+}
+
+extern void delete_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector _U_) {
+ g_hash_table_remove(ansi_sub_dissectors,GUINT_TO_POINTER(ssn));
+ if (!get_itu_tcap_subdissector(ssn))
+ dissector_delete_uint("sccp.ssn",ssn,tcap_handle);
+}
+extern void delete_itu_tcap_subdissector(guint32 ssn, dissector_handle_t dissector _U_) {
+ g_hash_table_remove(itu_sub_dissectors,GUINT_TO_POINTER(ssn));
+ if (!get_ansi_tcap_subdissector(ssn))
+ dissector_delete_uint("sccp.ssn", ssn,tcap_handle);
+}
+
+dissector_handle_t get_ansi_tcap_subdissector(guint32 ssn) {
+ return (dissector_handle_t)g_hash_table_lookup(ansi_sub_dissectors,GUINT_TO_POINTER(ssn));
+}
+
+dissector_handle_t get_itu_tcap_subdissector(guint32 ssn) {
+ return (dissector_handle_t)g_hash_table_lookup(itu_sub_dissectors,GUINT_TO_POINTER(ssn));
+}
+
+#include "packet-tcap-fn.c"
+
+/*
+ * DEBUG functions
+ */
+#undef MEM_TCAPSRT
+/* #define MEM_TCAPSRT */
+
+#undef DEBUG_TCAPSRT
+/* #define DEBUG_TCAPSRT */
+
+#ifdef DEBUG_TCAPSRT
+#include <stdio.h>
+#include <stdarg.h>
+static guint debug_level = 99;
+
+static void
+dbg(guint level, const char* fmt, ...)
+{
+ va_list ap;
+
+ if (level > debug_level) return;
+ va_start(ap,fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+}
+#endif
+
+static gint
+tcaphash_context_equal(gconstpointer k1, gconstpointer k2)
+{
+ const struct tcaphash_context_key_t *key1 = (const struct tcaphash_context_key_t *) k1;
+ const struct tcaphash_context_key_t *key2 = (const struct tcaphash_context_key_t *) k2;
+
+ return (key1->session_id == key2->session_id);
+}
+
+/* calculate a hash key */
+static guint
+tcaphash_context_calchash(gconstpointer k)
+{
+ const struct tcaphash_context_key_t *key = (const struct tcaphash_context_key_t *) k;
+ return key->session_id;
+}
+
+
+static gint
+tcaphash_begin_equal(gconstpointer k1, gconstpointer k2)
+{
+ const struct tcaphash_begin_info_key_t *key1 = (const struct tcaphash_begin_info_key_t *) k1;
+ const struct tcaphash_begin_info_key_t *key2 = (const struct tcaphash_begin_info_key_t *) k2;
+
+ if (key1->hashKey == key2->hashKey) {
+ if ( (key1->pc_hash == key2->pc_hash) && (key1->tid == key2->tid) )
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* calculate a hash key */
+static guint
+tcaphash_begin_calchash(gconstpointer k)
+{
+ const struct tcaphash_begin_info_key_t *key = (const struct tcaphash_begin_info_key_t *) k;
+ guint hashkey;
+ /* hashkey = key->opc_hash<<16 + key->dpc_hash<<8 + key->src_tid; */
+ hashkey = key->tid;
+ return hashkey;
+}
+
+static gint
+tcaphash_cont_equal(gconstpointer k1, gconstpointer k2)
+{
+ const struct tcaphash_cont_info_key_t *key1 = (const struct tcaphash_cont_info_key_t *) k1;
+ const struct tcaphash_cont_info_key_t *key2 = (const struct tcaphash_cont_info_key_t *) k2;
+
+ if (key1->hashKey == key2->hashKey) {
+
+ if ( (key1->opc_hash == key2->opc_hash) &&
+ (key1->dpc_hash == key2->dpc_hash) &&
+ (key1->src_tid == key2->src_tid) &&
+ (key1->dst_tid == key2->dst_tid) ) {
+ return TRUE;
+ }
+ else if ( (key1->opc_hash == key2->dpc_hash) &&
+ (key1->dpc_hash == key2->opc_hash) &&
+ (key1->src_tid == key2->dst_tid) &&
+ (key1->dst_tid == key2->src_tid) ) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/* calculate a hash key */
+static guint
+tcaphash_cont_calchash(gconstpointer k)
+{
+ const struct tcaphash_cont_info_key_t *key = (const struct tcaphash_cont_info_key_t *) k;
+ guint hashkey;
+ hashkey = key->src_tid + key->dst_tid;
+ return hashkey;
+}
+
+
+static gint
+tcaphash_end_equal(gconstpointer k1, gconstpointer k2)
+{
+ const struct tcaphash_end_info_key_t *key1 = (const struct tcaphash_end_info_key_t *) k1;
+ const struct tcaphash_end_info_key_t *key2 = (const struct tcaphash_end_info_key_t *) k2;
+
+ if (key1->hashKey == key2->hashKey) {
+ if ( (key1->pc_hash == key2->pc_hash) && (key1->tid == key2->tid) )
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* calculate a hash key */
+static guint
+tcaphash_end_calchash(gconstpointer k)
+{
+ const struct tcaphash_end_info_key_t *key = (const struct tcaphash_end_info_key_t *) k;
+ guint hashkey;
+ hashkey = key->tid;
+ return hashkey;
+}
+
+static gint
+tcaphash_ansi_equal(gconstpointer k1, gconstpointer k2)
+{
+ const struct tcaphash_ansi_info_key_t *key1 = (const struct tcaphash_ansi_info_key_t *) k1;
+ const struct tcaphash_ansi_info_key_t *key2 = (const struct tcaphash_ansi_info_key_t *) k2;
+
+ if (key1->hashKey == key2->hashKey) {
+
+ if ( ( (key1->opc_hash == key2->opc_hash) &&
+ (key1->dpc_hash == key2->dpc_hash) &&
+ (key1->tid == key2->tid) )
+ ||
+ ( (key1->opc_hash == key2->dpc_hash) &&
+ (key1->dpc_hash == key2->opc_hash) &&
+ (key1->tid == key2->tid) )
+ )
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* calculate a hash key */
+static guint
+tcaphash_ansi_calchash(gconstpointer k)
+{
+ const struct tcaphash_ansi_info_key_t *key = (const struct tcaphash_ansi_info_key_t *) k;
+ guint hashkey;
+ /* hashkey = key->opc_hash<<16 + key->dpc_hash<<8 + key->src_tid; */
+ hashkey = key->tid;
+ return hashkey;
+}
+
+/*
+ * Update a record with the data of the Request
+ */
+static void
+update_tcaphash_begincall(struct tcaphash_begincall_t *p_tcaphash_begincall,
+ packet_info *pinfo)
+{
+ p_tcaphash_begincall->context->first_frame = pinfo->num;
+ p_tcaphash_begincall->context->last_frame = 0;
+ p_tcaphash_begincall->context->responded = FALSE;
+ p_tcaphash_begincall->context->begin_time = pinfo->abs_ts;
+}
+
+/*
+ * Append a new dialogue, using the same Key, to the chained list
+ * The time is stored too
+ */
+static struct tcaphash_begincall_t *
+append_tcaphash_begincall(struct tcaphash_begincall_t *prev_begincall,
+ struct tcaphash_context_t *p_tcaphash_context,
+ packet_info *pinfo)
+{
+ struct tcaphash_begincall_t *p_new_tcaphash_begincall = NULL;
+
+ /* Append the transaction to the list, when the same key is found
+ This should append when the tcap-transaction Id is reused */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_begincall = (struct tcaphash_begincall_t *)g_malloc0(sizeof(struct tcaphash_begincall_t));
+#else
+ p_new_tcaphash_begincall = wmem_new0(wmem_file_scope(), struct tcaphash_begincall_t);
+#endif
+ p_new_tcaphash_begincall->context=p_tcaphash_context;
+ p_tcaphash_context->begincall=p_new_tcaphash_begincall;
+ p_new_tcaphash_begincall->beginkey=prev_begincall->beginkey;
+ p_new_tcaphash_begincall->context->first_frame = pinfo->num;
+ p_new_tcaphash_begincall->next_begincall=NULL;
+ p_new_tcaphash_begincall->previous_begincall=prev_begincall;
+ p_new_tcaphash_begincall->father=FALSE;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"+B%d ", p_new_tcaphash_begincall->context->session_id);
+#endif
+ /* Insert in the chained list */
+ prev_begincall->next_begincall = p_new_tcaphash_begincall;
+ if (prev_begincall->context->last_frame == 0) {
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"last ");
+#endif
+ prev_begincall->context->last_frame = pinfo->num-1;
+ }
+ return p_new_tcaphash_begincall;
+}
+
+/*
+ * Update a record with the data of the Request
+ */
+static void
+update_tcaphash_ansicall(struct tcaphash_ansicall_t *p_tcaphash_ansicall,
+ packet_info *pinfo)
+{
+ p_tcaphash_ansicall->context->first_frame = pinfo->num;
+ p_tcaphash_ansicall->context->last_frame = 0;
+ p_tcaphash_ansicall->context->responded = FALSE;
+ p_tcaphash_ansicall->context->begin_time = pinfo->abs_ts;
+}
+
+/*
+ * Append a new dialogue, using the same Key, to the chained list
+ * The time is stored too
+ */
+static struct tcaphash_ansicall_t *
+append_tcaphash_ansicall(struct tcaphash_ansicall_t *prev_ansicall,
+ struct tcaphash_context_t *p_tcaphash_context,
+ packet_info *pinfo)
+{
+ struct tcaphash_ansicall_t *p_new_tcaphash_ansicall = NULL;
+
+ /* Append the transaction to the list, when the same key is found
+ This should append when the tcap-transaction Id is reused */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_ansicall = (struct tcaphash_ansicall_t *)g_malloc0(sizeof(struct tcaphash_ansicall_t));
+#else
+ p_new_tcaphash_ansicall = wmem_new0(wmem_file_scope(), struct tcaphash_ansicall_t);
+#endif
+ p_new_tcaphash_ansicall->context=p_tcaphash_context;
+ p_tcaphash_context->ansicall=p_new_tcaphash_ansicall;
+ p_new_tcaphash_ansicall->ansikey=prev_ansicall->ansikey;
+ p_new_tcaphash_ansicall->context->first_frame = pinfo->num;
+ p_new_tcaphash_ansicall->next_ansicall=NULL;
+ p_new_tcaphash_ansicall->previous_ansicall=prev_ansicall;
+ p_new_tcaphash_ansicall->father=FALSE;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"+A%d ", p_new_tcaphash_ansicall->context->session_id);
+#endif
+ /* Insert in the chained list */
+ prev_ansicall->next_ansicall = p_new_tcaphash_ansicall;
+ if (prev_ansicall->context->last_frame == 0) {
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"last ");
+#endif
+ prev_ansicall->context->last_frame = pinfo->num-1;
+ }
+ return p_new_tcaphash_ansicall;
+}
+
+
+static struct tcaphash_contcall_t *
+append_tcaphash_contcall(struct tcaphash_contcall_t *prev_contcall,
+ struct tcaphash_context_t *p_tcaphash_context)
+{
+ struct tcaphash_contcall_t *p_new_tcaphash_contcall = NULL;
+
+ /* Append the transaction to the list, when the same key is found
+ This should append when the tcap-transaction Id is reused */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_contcall = (struct tcaphash_contcall_t *)g_malloc0(sizeof(struct tcaphash_contcall_t));
+#else
+ p_new_tcaphash_contcall = wmem_new0(wmem_file_scope(), struct tcaphash_contcall_t);
+#endif
+ p_new_tcaphash_contcall->context=p_tcaphash_context;
+ p_tcaphash_context->contcall=p_new_tcaphash_contcall;
+ p_new_tcaphash_contcall->contkey=prev_contcall->contkey;
+ p_new_tcaphash_contcall->next_contcall=NULL;
+ p_new_tcaphash_contcall->previous_contcall=prev_contcall;
+ p_new_tcaphash_contcall->father=FALSE;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"+C%d ", p_new_tcaphash_contcall->context->session_id);
+#endif
+ /* Insert in the chained list */
+ prev_contcall->next_contcall = p_new_tcaphash_contcall;
+ return p_new_tcaphash_contcall;
+}
+
+
+static struct tcaphash_endcall_t *
+append_tcaphash_endcall(struct tcaphash_endcall_t *prev_endcall,
+ struct tcaphash_context_t *p_tcaphash_context)
+{
+ struct tcaphash_endcall_t *p_new_tcaphash_endcall = NULL;
+
+ /* Append the transaction to the list, when the same key is found
+ This should append when the tcap-transaction Id is reused */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_endcall = (struct tcaphas_endcall_t *)g_malloc0(sizeof(struct tcaphash_endcall_t));
+#else
+ p_new_tcaphash_endcall = wmem_new0(wmem_file_scope(), struct tcaphash_endcall_t);
+#endif
+ p_new_tcaphash_endcall->context=p_tcaphash_context;
+ p_tcaphash_context->endcall=p_new_tcaphash_endcall;
+ p_new_tcaphash_endcall->endkey=prev_endcall->endkey;
+ p_new_tcaphash_endcall->next_endcall=NULL;
+ p_new_tcaphash_endcall->previous_endcall=prev_endcall;
+ p_new_tcaphash_endcall->father=FALSE;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"+E%d ", p_new_tcaphash_endcall->context->session_id);
+#endif
+ /* Insert in the chained list */
+ prev_endcall->next_endcall = p_new_tcaphash_endcall;
+ return p_new_tcaphash_endcall;
+}
+
+
+/*
+ * Find the dialog by Key and Time
+ */
+static struct tcaphash_begincall_t *
+find_tcaphash_begin(struct tcaphash_begin_info_key_t *p_tcaphash_begin_key,
+ packet_info *pinfo, gboolean isBegin)
+{
+ struct tcaphash_begincall_t *p_tcaphash_begincall = NULL;
+ p_tcaphash_begincall = (struct tcaphash_begincall_t *)g_hash_table_lookup(tcaphash_begin, p_tcaphash_begin_key);
+
+ if(p_tcaphash_begincall) {
+ do {
+ if ( p_tcaphash_begincall->context ) {
+ if ( ( isBegin &&
+ pinfo->num == p_tcaphash_begincall->context->first_frame )
+ ||
+ ( !isBegin &&
+ pinfo->num >= p_tcaphash_begincall->context->first_frame &&
+ ( p_tcaphash_begincall->context->last_frame?pinfo->num <= p_tcaphash_begincall->context->last_frame:1 )
+ )
+ ) {
+ /* We have a dialogue, with this key, opened before this request */
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"B%d ", p_tcaphash_begincall->context->session_id);
+#endif
+ return p_tcaphash_begincall;
+ }
+#ifdef DEBUG_TCAPSRT
+ dbg(60,"[B%d] ", p_tcaphash_begincall->context->session_id);
+#endif
+ }
+ /* Break when list end is reached */
+ if(p_tcaphash_begincall->next_begincall == NULL) {
+#ifdef DEBUG_TCAPSRT
+ dbg(23,"End of Blist ");
+#endif
+ break;
+ }
+ p_tcaphash_begincall = p_tcaphash_begincall->next_begincall;
+ } while (p_tcaphash_begincall != NULL) ;
+ } else {
+#ifdef DEBUG_TCAPSRT
+ dbg(23,"Not in Bhash ");
+#endif
+ }
+ return NULL;
+}
+
+
+
+static struct tcaphash_contcall_t *
+find_tcaphash_cont(struct tcaphash_cont_info_key_t *p_tcaphash_cont_key,
+ packet_info *pinfo)
+{
+ struct tcaphash_contcall_t *p_tcaphash_contcall = NULL;
+ p_tcaphash_contcall = (struct tcaphash_contcall_t *)g_hash_table_lookup(tcaphash_cont, p_tcaphash_cont_key);
+
+ if(p_tcaphash_contcall) {
+ do {
+ if ( p_tcaphash_contcall->context ) {
+ if (pinfo->num >= p_tcaphash_contcall->context->first_frame &&
+ (p_tcaphash_contcall->context->last_frame?pinfo->num <= p_tcaphash_contcall->context->last_frame:1) ) {
+ /* We have a dialogue, with this key, opened before this request */
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"C%d ", p_tcaphash_contcall->context->session_id);
+#endif
+ return p_tcaphash_contcall;
+ }
+#ifdef DEBUG_TCAPSRT
+ dbg(60,"[C%d] ", p_tcaphash_contcall->context->session_id);
+#endif
+ }
+ /* Break when list end is reached */
+ if(p_tcaphash_contcall->next_contcall == NULL) {
+#ifdef DEBUG_TCAPSRT
+ dbg(23,"End of Clist ");
+#endif
+ break;
+ }
+ p_tcaphash_contcall = p_tcaphash_contcall->next_contcall;
+ } while (p_tcaphash_contcall != NULL) ;
+ } else {
+#ifdef DEBUG_TCAPSRT
+ dbg(23,"Not in Chash ");
+#endif
+ }
+ return NULL;
+}
+
+static struct tcaphash_endcall_t *
+find_tcaphash_end(struct tcaphash_end_info_key_t *p_tcaphash_end_key,
+ packet_info *pinfo, gboolean isEnd)
+{
+ struct tcaphash_endcall_t *p_tcaphash_endcall = NULL;
+ p_tcaphash_endcall = (struct tcaphash_endcall_t *)g_hash_table_lookup(tcaphash_end, p_tcaphash_end_key);
+
+ if(p_tcaphash_endcall) {
+ do {
+ if ( p_tcaphash_endcall->context ) {
+ if ( ( isEnd &&
+ (p_tcaphash_endcall->context->last_frame?pinfo->num == p_tcaphash_endcall->context->last_frame:1)
+ )
+ ||
+ ( !isEnd &&
+ pinfo->num >= p_tcaphash_endcall->context->first_frame &&
+ (p_tcaphash_endcall->context->last_frame?pinfo->num <= p_tcaphash_endcall->context->last_frame:1)
+ )
+ ) {
+ /* We have a dialogue, with this key, opened before this request */
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"E%d ", p_tcaphash_endcall->context->session_id);
+#endif
+ return p_tcaphash_endcall;
+ }
+#ifdef DEBUG_TCAPSRT
+ dbg(60,"[E%d] ", p_tcaphash_endcall->context->session_id);
+#endif
+ }
+ /* Break when list end is reached */
+ if(p_tcaphash_endcall->next_endcall == NULL) {
+#ifdef DEBUG_TCAPSRT
+ dbg(23,"End of Elist ");
+#endif
+ break;
+ }
+ p_tcaphash_endcall = p_tcaphash_endcall->next_endcall;
+ } while (p_tcaphash_endcall != NULL) ;
+ } else {
+#ifdef DEBUG_TCAPSRT
+ dbg(23,"Not in Ehash ");
+#endif
+ }
+ return NULL;
+}
+
+/*
+ * New record to create, to identify a new transaction
+ */
+static struct tcaphash_context_t *
+new_tcaphash_context(struct tcaphash_context_key_t *p_tcaphash_context_key,
+ packet_info *pinfo)
+{
+ struct tcaphash_context_key_t *p_new_tcaphash_context_key;
+ struct tcaphash_context_t *p_new_tcaphash_context = NULL;
+
+ /* Register the transaction in the hash table
+ with the tcap transaction Id as Main Key
+ Once created, this entry will be updated later */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_context_key = (struct tcaphash_context_key_t *)g_malloc(sizeof(struct tcaphash_context_key_t));
+#else
+ p_new_tcaphash_context_key = wmem_new(wmem_file_scope(), struct tcaphash_context_key_t);
+#endif
+ p_new_tcaphash_context_key->session_id = p_tcaphash_context_key->session_id;
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_context = (struct tcaphash_context_t *)g_malloc0(sizeof(struct tcaphash_context_t));
+#else
+ p_new_tcaphash_context = wmem_new0(wmem_file_scope(), struct tcaphash_context_t);
+#endif
+ p_new_tcaphash_context->key = p_new_tcaphash_context_key;
+ p_new_tcaphash_context->session_id = p_tcaphash_context_key->session_id;
+ p_new_tcaphash_context->first_frame = pinfo->num;
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"S%d ", p_new_tcaphash_context->session_id);
+#endif
+ /* store it */
+ g_hash_table_insert(tcaphash_context, p_new_tcaphash_context_key, p_new_tcaphash_context);
+ return p_new_tcaphash_context;
+}
+
+/*
+ * New record to create, to identify a new transaction
+ */
+static struct tcaphash_begincall_t *
+new_tcaphash_begin(struct tcaphash_begin_info_key_t *p_tcaphash_begin_key,
+ struct tcaphash_context_t *p_tcaphash_context)
+{
+ struct tcaphash_begin_info_key_t *p_new_tcaphash_begin_key;
+ struct tcaphash_begincall_t *p_new_tcaphash_begincall = NULL;
+
+ /* Register the transaction in the hash table
+ with the tcap transaction Id as Main Key
+ Once created, this entry will be updated later */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_begin_key = (struct tcaphash_begin_info_key_t *)g_malloc(sizeof(struct tcaphash_begin_info_key_t));
+#else
+ p_new_tcaphash_begin_key = wmem_new(wmem_file_scope(), struct tcaphash_begin_info_key_t);
+#endif
+ p_new_tcaphash_begin_key->hashKey = p_tcaphash_begin_key->hashKey;
+ p_new_tcaphash_begin_key->tid = p_tcaphash_begin_key->tid;
+ p_new_tcaphash_begin_key->pc_hash = p_tcaphash_begin_key->pc_hash;
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_begincall = (struct tcaphash_begincall_t *)g_malloc0(sizeof(struct tcaphash_begincall_t));
+#else
+ p_new_tcaphash_begincall = wmem_new0(wmem_file_scope(), struct tcaphash_begincall_t);
+#endif
+ p_new_tcaphash_begincall->beginkey=p_new_tcaphash_begin_key;
+ p_new_tcaphash_begincall->context=p_tcaphash_context;
+ p_tcaphash_context->begincall=p_new_tcaphash_begincall;
+ p_new_tcaphash_begincall->father=TRUE;
+ p_new_tcaphash_begincall->next_begincall=NULL;
+ p_new_tcaphash_begincall->previous_begincall=NULL;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"B%d ", p_new_tcaphash_begincall->context->session_id);
+#endif
+ /* store it */
+ g_hash_table_insert(tcaphash_begin, p_new_tcaphash_begin_key, p_new_tcaphash_begincall);
+ return p_new_tcaphash_begincall;
+}
+
+
+
+/*
+ * New record to create, to identify a new transaction
+ */
+static struct tcaphash_contcall_t *
+new_tcaphash_cont(struct tcaphash_cont_info_key_t *p_tcaphash_cont_key,
+ struct tcaphash_context_t *p_tcaphash_context)
+{
+ struct tcaphash_cont_info_key_t *p_new_tcaphash_cont_key;
+ struct tcaphash_contcall_t *p_new_tcaphash_contcall = NULL;
+
+ /* Register the transaction in the hash table
+ with the tcap transaction Id as Main Key
+ Once created, this entry will be updated later */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_cont_key = (struct tcaphash_cont_info_key_t *)g_malloc(sizeof(struct tcaphash_cont_info_key_t));
+#else
+ p_new_tcaphash_cont_key = wmem_new(wmem_file_scope(), struct tcaphash_cont_info_key_t);
+#endif
+ p_new_tcaphash_cont_key->hashKey = p_tcaphash_cont_key->hashKey;
+ p_new_tcaphash_cont_key->src_tid = p_tcaphash_cont_key->src_tid;
+ p_new_tcaphash_cont_key->dst_tid = p_tcaphash_cont_key->dst_tid;
+ p_new_tcaphash_cont_key->opc_hash = p_tcaphash_cont_key->opc_hash;
+ p_new_tcaphash_cont_key->dpc_hash = p_tcaphash_cont_key->dpc_hash;
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_contcall = (struct tcaphash_contcall_t *)g_malloc0(sizeof(struct tcaphash_contcall_t));
+#else
+ p_new_tcaphash_contcall = wmem_new0(wmem_file_scope(), struct tcaphash_contcall_t);
+#endif
+ p_new_tcaphash_contcall->contkey=p_new_tcaphash_cont_key;
+ p_new_tcaphash_contcall->context=p_tcaphash_context;
+ p_tcaphash_context->contcall=p_new_tcaphash_contcall;
+ p_new_tcaphash_contcall->father=TRUE;
+ p_new_tcaphash_contcall->next_contcall=NULL;
+ p_new_tcaphash_contcall->previous_contcall=NULL;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"C%d ", p_new_tcaphash_contcall->context->session_id);
+#endif
+ /* store it */
+ g_hash_table_insert(tcaphash_cont, p_new_tcaphash_cont_key, p_new_tcaphash_contcall);
+ return p_new_tcaphash_contcall;
+}
+
+
+/*
+ * New record to create, to identify a new transaction
+ */
+static struct tcaphash_endcall_t *
+new_tcaphash_end(struct tcaphash_end_info_key_t *p_tcaphash_end_key,
+ struct tcaphash_context_t *p_tcaphash_context)
+{
+ struct tcaphash_end_info_key_t *p_new_tcaphash_end_key;
+ struct tcaphash_endcall_t *p_new_tcaphash_endcall = NULL;
+
+ /* Register the transaction in the hash table
+ with the tcap transaction Id as Main Key
+ Once created, this entry will be updated later */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_end_key = (struct tcaphash_end_info_key_t *)g_malloc(sizeof(struct tcaphash_end_info_key_t));
+#else
+ p_new_tcaphash_end_key = wmem_new(wmem_file_scope(), struct tcaphash_end_info_key_t);
+#endif
+ p_new_tcaphash_end_key->hashKey = p_tcaphash_end_key->hashKey;
+ p_new_tcaphash_end_key->tid = p_tcaphash_end_key->tid;
+ p_new_tcaphash_end_key->pc_hash = p_tcaphash_end_key->pc_hash;
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_endcall = (struct tcaphash_endcall_t *)g_malloc0(sizeof(struct tcaphash_endcall_t));
+#else
+ p_new_tcaphash_endcall = wmem_new0(wmem_file_scope(), struct tcaphash_endcall_t);
+#endif
+ p_new_tcaphash_endcall->endkey=p_new_tcaphash_end_key;
+ p_new_tcaphash_endcall->context=p_tcaphash_context;
+ p_tcaphash_context->endcall=p_new_tcaphash_endcall;
+ p_new_tcaphash_endcall->father=TRUE;
+ p_new_tcaphash_endcall->next_endcall=NULL;
+ p_new_tcaphash_endcall->previous_endcall=NULL;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"E%d ", p_new_tcaphash_endcall->context->session_id);
+#endif
+ /* store it */
+ g_hash_table_insert(tcaphash_end, p_new_tcaphash_end_key, p_new_tcaphash_endcall);
+ return p_new_tcaphash_endcall;
+}
+/*
+ * New record to create, to identify a new transaction
+ */
+static struct tcaphash_ansicall_t *
+new_tcaphash_ansi(struct tcaphash_ansi_info_key_t *p_tcaphash_ansi_key,
+ struct tcaphash_context_t *p_tcaphash_context)
+{
+ struct tcaphash_ansi_info_key_t *p_new_tcaphash_ansi_key;
+ struct tcaphash_ansicall_t *p_new_tcaphash_ansicall = NULL;
+
+ /* Register the transaction in the hash table
+ with the tcap transaction Id as Main Key
+ Once created, this entry will be updated later */
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_ansi_key = (struct tcaphash_ansi_info_key_t *)g_malloc(sizeof(struct tcaphash_ansi_info_key_t));
+#else
+ p_new_tcaphash_ansi_key = wmem_new(wmem_file_scope(), struct tcaphash_ansi_info_key_t);
+#endif
+ p_new_tcaphash_ansi_key->hashKey = p_tcaphash_ansi_key->hashKey;
+ p_new_tcaphash_ansi_key->tid = p_tcaphash_ansi_key->tid;
+ p_new_tcaphash_ansi_key->opc_hash = p_tcaphash_ansi_key->opc_hash;
+ p_new_tcaphash_ansi_key->dpc_hash = p_tcaphash_ansi_key->dpc_hash;
+
+#ifdef MEM_TCAPSRT
+ p_new_tcaphash_ansicall = (struct tcaphash_ansicall_t *)g_malloc0(sizeof(struct tcaphash_ansicall_t));
+#else
+ p_new_tcaphash_ansicall = wmem_new0(wmem_file_scope(), struct tcaphash_ansicall_t);
+#endif
+ p_new_tcaphash_ansicall->ansikey=p_new_tcaphash_ansi_key;
+ p_new_tcaphash_ansicall->context=p_tcaphash_context;
+ p_tcaphash_context->ansicall=p_new_tcaphash_ansicall;
+ p_new_tcaphash_ansicall->father=TRUE;
+ p_new_tcaphash_ansicall->next_ansicall=NULL;
+ p_new_tcaphash_ansicall->previous_ansicall=NULL;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"A%d ", p_new_tcaphash_ansicall->context->session_id);
+#endif
+ /* store it */
+ g_hash_table_insert(tcaphash_ansi, p_new_tcaphash_ansi_key, p_new_tcaphash_ansicall);
+ return p_new_tcaphash_ansicall;
+}
+
+static struct tcaphash_contcall_t *
+create_tcaphash_cont(struct tcaphash_cont_info_key_t *p_tcaphash_cont_key,
+ struct tcaphash_context_t *p_tcaphash_context)
+{
+ struct tcaphash_contcall_t *p_tcaphash_contcall1 = NULL;
+ struct tcaphash_contcall_t *p_tcaphash_contcall = NULL;
+
+ p_tcaphash_contcall1 = (struct tcaphash_contcall_t *)
+ g_hash_table_lookup(tcaphash_cont, p_tcaphash_cont_key);
+
+ if (p_tcaphash_contcall1) {
+ /* Walk through list of transaction with identical keys */
+ /* go the the end to insert new record */
+ do {
+ if (!p_tcaphash_contcall1->next_contcall) {
+ p_tcaphash_contcall=append_tcaphash_contcall(p_tcaphash_contcall1,
+ p_tcaphash_context);
+ break;
+ }
+ p_tcaphash_contcall1 = p_tcaphash_contcall1->next_contcall;
+ } while (p_tcaphash_contcall1 != NULL );
+ } else {
+ p_tcaphash_contcall = new_tcaphash_cont(p_tcaphash_cont_key,
+ p_tcaphash_context);
+ }
+ return p_tcaphash_contcall;
+}
+
+
+static struct tcaphash_endcall_t *
+create_tcaphash_end(struct tcaphash_end_info_key_t *p_tcaphash_end_key,
+ struct tcaphash_context_t *p_tcaphash_context)
+{
+ struct tcaphash_endcall_t *p_tcaphash_endcall1 = NULL;
+ struct tcaphash_endcall_t *p_tcaphash_endcall = NULL;
+
+ p_tcaphash_endcall1 = (struct tcaphash_endcall_t *)
+ g_hash_table_lookup(tcaphash_end, p_tcaphash_end_key);
+
+ if (p_tcaphash_endcall1) {
+ /* Walk through list of transaction with identical keys */
+ /* go the the end to insert new record */
+ do {
+ if (!p_tcaphash_endcall1->next_endcall) {
+ p_tcaphash_endcall=append_tcaphash_endcall(p_tcaphash_endcall1,
+ p_tcaphash_context);
+ break;
+ }
+ p_tcaphash_endcall1 = p_tcaphash_endcall1->next_endcall;
+ } while (p_tcaphash_endcall1 != NULL );
+ } else {
+ p_tcaphash_endcall = new_tcaphash_end(p_tcaphash_end_key,
+ p_tcaphash_context);
+ }
+ return p_tcaphash_endcall;
+}
+
+
+/*
+ * Routine called when the TAP is initialized.
+ * so hash table are (re)created
+ */
+void
+tcapsrt_init_routine(void)
+{
+
+ /* free hash-table for SRT */
+ if (tcaphash_context != NULL) {
+#ifdef DEBUG_TCAPSRT
+ dbg(16,"Destroy hash_context \n");
+#endif
+ g_hash_table_destroy(tcaphash_context);
+ }
+
+ if (tcaphash_begin != NULL) {
+#ifdef DEBUG_TCAPSRT
+ dbg(16,"Destroy hash_begin \n");
+#endif
+ g_hash_table_destroy(tcaphash_begin);
+ }
+
+ if (tcaphash_cont != NULL) {
+#ifdef DEBUG_TCAPSRT
+ dbg(16,"Destroy hash_cont \n");
+#endif
+ g_hash_table_destroy(tcaphash_cont);
+ }
+
+ if (tcaphash_end != NULL) {
+#ifdef DEBUG_TCAPSRT
+ dbg(16,"Destroy hash_end \n");
+#endif
+ g_hash_table_destroy(tcaphash_end);
+ }
+
+ if (tcaphash_ansi != NULL) {
+#ifdef DEBUG_TCAPSRT
+ dbg(16,"Destroy hash_ansi \n");
+#endif
+ g_hash_table_destroy(tcaphash_ansi);
+ }
+
+#ifdef DEBUG_TCAPSRT
+ dbg(16,"Create hash \n");
+#endif
+ /* create new hash-tables for SRT */
+ tcaphash_context = g_hash_table_new(tcaphash_context_calchash, tcaphash_context_equal);
+ tcaphash_begin = g_hash_table_new(tcaphash_begin_calchash, tcaphash_begin_equal);
+ tcaphash_cont = g_hash_table_new(tcaphash_cont_calchash, tcaphash_cont_equal);
+ tcaphash_end = g_hash_table_new(tcaphash_end_calchash, tcaphash_end_equal);
+ tcaphash_ansi = g_hash_table_new(tcaphash_ansi_calchash, tcaphash_ansi_equal);
+
+ /* Reset the session counter */
+ tcapsrt_global_SessionId=1;
+
+ /* Display of SRT only if Persistent Stat */
+ gtcap_DisplaySRT=gtcap_PersistentSRT || gtcap_HandleSRT&gtcap_StatSRT;
+}
+
+/*
+ * Create the record identifiying the TCAP transaction
+ * When the identifier for the transaction is reused, check
+ * the following criteria before to append a new record:
+ * - a timeout corresponding to a message retransmission is detected,
+ * - a message hast been lost
+ * - or the previous transaction has been be closed
+ */
+static struct tcaphash_context_t *
+tcaphash_begin_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ struct tcapsrt_info_t *p_tcapsrt_info)
+{
+ struct tcaphash_context_t *p_tcaphash_context=NULL;
+ struct tcaphash_context_key_t tcaphash_context_key;
+ struct tcaphash_begincall_t *p_tcaphash_begincall, *p_new_tcaphash_begincall=NULL;
+ struct tcaphash_begin_info_key_t tcaphash_begin_key;
+ proto_item *pi;
+ proto_item *stat_item=NULL;
+ proto_tree *stat_tree=NULL;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(51,"src %s srcTid %lx dst %s ", address_to_str(wmem_packet_scope(), &pinfo->src), p_tcapsrt_info->src_tid, address_to_str(wmem_packet_scope(), &pinfo->dst));
+#endif
+
+ /* prepare the key data */
+ tcaphash_begin_key.tid = p_tcapsrt_info->src_tid;
+ if (pinfo->src.type == AT_SS7PC && pinfo->dst.type == AT_SS7PC)
+ {
+ /* We have MTP3 PCs (so we can safely do this cast) */
+ tcaphash_begin_key.pc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->src.data);
+ } else {
+ /* Don't have MTP3 PCs (have SCCP GT ?) */
+ tcaphash_begin_key.pc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->src));
+ }
+ tcaphash_begin_key.hashKey=tcaphash_begin_calchash(&tcaphash_begin_key);
+
+ /* look up the request */
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"\n Hbegin #%u ", pinfo->num);
+ dbg(11,"key %lx ",tcaphash_begin_key.hashKey);
+ dbg(51,"addr %s ", address_to_str(wmem_packet_scope(), &pinfo->src));
+ dbg(51,"Tid %lx \n",tcaphash_begin_key.tid);
+#endif
+
+ p_tcaphash_begincall = (struct tcaphash_begincall_t *)
+ g_hash_table_lookup(tcaphash_begin, &tcaphash_begin_key);
+
+ if (p_tcaphash_begincall) {
+ /* Walk through list of transaction with identical keys */
+ do {
+ /* Check if the request with this reqSeqNum has been seen, with the same Message Type */
+ if (pinfo->num == p_tcaphash_begincall->context->first_frame) {
+ /* We have seen this request before -> do nothing */
+#ifdef DEBUG_TCAPSRT
+ dbg(22,"Already seen ");
+#endif
+ p_tcaphash_context=p_tcaphash_begincall->context;
+ break;
+ }
+ /* If the last record for Tcap transaction with identifier has not been reached */
+ if (!p_tcaphash_begincall->next_begincall) {
+ /* check if we have to create a new record or not */
+ /* if last request has been responded (response number is known)
+ and this request appears after last response (has bigger frame number)
+ and last request occurred after the timeout for repetition,
+ or
+ if last request hasn't been responded (so number unknown)
+ and this request appears after last request (has bigger frame number)
+ and this request occurred after the timeout for message lost */
+ if ( ( p_tcaphash_begincall->context->last_frame != 0
+ && pinfo->num > p_tcaphash_begincall->context->first_frame
+ && (guint) pinfo->abs_ts.secs > (guint)(p_tcaphash_begincall->context->begin_time.secs + gtcap_RepetitionTimeout)
+ ) ||
+ ( p_tcaphash_begincall->context->last_frame == 0
+ && pinfo->num > p_tcaphash_begincall->context->first_frame
+ && (guint)pinfo->abs_ts.secs > (guint)(p_tcaphash_begincall->context->begin_time.secs + gtcap_LostTimeout)
+ )
+ )
+ {
+ /* we decide that we have a new request */
+ /* Append new record to the list */
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"(timeout) Append key %lx ",tcaphash_begin_key.hashKey);
+ dbg(12,"Frame %u rsp %u ",pinfo->num,p_tcaphash_begincall->context->last_frame );
+#endif
+ tcaphash_context_key.session_id = tcapsrt_global_SessionId++;
+ p_tcaphash_context = new_tcaphash_context(&tcaphash_context_key, pinfo);
+
+ p_new_tcaphash_begincall = append_tcaphash_begincall(p_tcaphash_begincall,
+ p_tcaphash_context,
+ pinfo);
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"Update key %lx ",tcaphash_begin_key.hashKey);
+#endif
+ update_tcaphash_begincall(p_new_tcaphash_begincall, pinfo);
+ } else { /* timeout or message lost */
+
+ /* If the Tid is reused for a closed Transaction */
+ /* Or if we received an TC_BEGIN for a Transaction marked as "closed" */
+ /* (this is the case, for pre-arranged END, the transaction is marked as closed */
+ /* by the upper layer, thank to a callback method close) */
+ if ( p_tcaphash_begincall->context->closed) {
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"(closed) Append key %lu ",tcaphash_begin_key.hashKey);
+ dbg(12,"Frame %u rsp %u ",pinfo->num,p_tcaphash_begincall->context->last_frame );
+#endif
+ tcaphash_context_key.session_id = tcapsrt_global_SessionId++;
+ p_tcaphash_context = new_tcaphash_context(&tcaphash_context_key, pinfo);
+ p_new_tcaphash_begincall = append_tcaphash_begincall(p_tcaphash_begincall,
+ p_tcaphash_context,
+ pinfo);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"Update key %lu ",tcaphash_begin_key.hashKey);
+#endif
+ update_tcaphash_begincall(p_new_tcaphash_begincall, pinfo);
+
+ } else {
+ /* the TCAP session is not closed, so, either messages have been lost */
+ /* or it's a duplicate request. Mark it as such. */
+#ifdef DEBUG_TCAPSRT
+ dbg(21,"Display_duplicate %d ",p_tcaphash_begincall->context->first_frame);
+#endif
+ p_tcaphash_context=p_tcaphash_begincall->context;
+ if (gtcap_DisplaySRT && tree) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_tcap_stat, &stat_item, "Stat");
+ PROTO_ITEM_SET_GENERATED(stat_item);
+ pi = proto_tree_add_uint_format(stat_tree, hf_tcapsrt_Duplicate, tvb, 0, 0,
+ p_tcaphash_context->first_frame,
+ "Duplicate with session %u in frame %u",
+ p_tcaphash_context->session_id,p_tcaphash_context->first_frame);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+ return p_tcaphash_context;
+ } /* Previous session closed */
+ } /* test with Timeout or message Lost */
+ break;
+ } /* Next call is NULL */
+ /* Repeat the tests for the next record with the same transaction identifier */
+ p_tcaphash_begincall = p_tcaphash_begincall->next_begincall;
+ } while (p_tcaphash_begincall != NULL );
+ /*
+ * End of analyze for the list be TC_BEGIN with same transaction ID
+ */
+ } else { /* p_tcaphash_begincall has not been found */
+ /*
+ * Create a new TCAP context
+ */
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"New key %lx ",tcaphash_begin_key.hashKey);
+#endif
+
+ tcaphash_context_key.session_id = tcapsrt_global_SessionId++;
+ p_tcaphash_context = new_tcaphash_context(&tcaphash_context_key, pinfo);
+ p_tcaphash_begincall = new_tcaphash_begin(&tcaphash_begin_key, p_tcaphash_context);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(11,"Update key %lx ",tcaphash_begin_key.hashKey);
+ dbg(11,"Frame reqlink #%u ", pinfo->num);
+#endif
+ update_tcaphash_begincall(p_tcaphash_begincall, pinfo);
+ }
+
+ /* display tcap session, if available */
+ if ( gtcap_DisplaySRT && tree &&
+ p_tcaphash_context &&
+ p_tcaphash_context->session_id) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, 0, ett_tcap_stat, &stat_item, "Stat");
+ PROTO_ITEM_SET_GENERATED(stat_item);
+ pi = proto_tree_add_uint(stat_tree, hf_tcapsrt_SessionId, tvb, 0,0, p_tcaphash_context->session_id);
+ PROTO_ITEM_SET_GENERATED(pi);
+
+ /* add link to response frame, if available */
+ /* p_tcaphash_begincall->context->last_frame) */
+ if( p_tcaphash_context->last_frame != 0 ){
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"Display_frameRsplink %d ",p_tcaphash_context->last_frame);
+#endif
+ pi = proto_tree_add_uint_format(stat_tree, hf_tcapsrt_BeginSession, tvb, 0, 0,
+ p_tcaphash_context->last_frame,
+ "End of session in frame %u",
+ p_tcaphash_context->last_frame);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+ }
+ return p_tcaphash_context;
+}
+
+/*
+* Try to find a TCAP session according to the source and destination
+* Identifier given in the TC_CONT
+* If nothing is found, it is probably a session in opening state, so try to find
+* a tcap session registered with a TC_BEGIN "key", matching the destination Id of the TC_CONT
+* Then associate the TC_CONT "key" to the TCAP context, and create a TC_END "key"
+* and display the available info for the TCAP context
+*/
+static struct tcaphash_context_t *
+tcaphash_cont_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ struct tcapsrt_info_t *p_tcapsrt_info)
+{
+ struct tcaphash_context_t *p_tcaphash_context=NULL;
+ struct tcaphash_contcall_t *p_tcaphash_contcall;
+ struct tcaphash_cont_info_key_t tcaphash_cont_key;
+ struct tcaphash_begin_info_key_t tcaphash_begin_key;
+ struct tcaphash_begincall_t *p_tcaphash_begincall;
+ struct tcaphash_end_info_key_t tcaphash_end_key;
+ proto_item *pi;
+ proto_item *stat_item=NULL;
+ proto_tree *stat_tree=NULL;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(51,"src %s srcTid %lx dst %s dstTid %lx ", address_to_str(wmem_packet_scope(), &pinfo->src), p_tcapsrt_info->src_tid, address_to_str(wmem_packet_scope(), &pinfo->dst), p_tcapsrt_info->dst_tid);
+ dbg(10,"\n Hcont #%u ", pinfo->num);
+#endif
+
+ /* look only for matching request, if matching conversation is available. */
+ tcaphash_cont_key.src_tid = p_tcapsrt_info->src_tid;
+ tcaphash_cont_key.dst_tid = p_tcapsrt_info->dst_tid;
+ if (pinfo->src.type == AT_SS7PC && pinfo->dst.type == AT_SS7PC)
+ {
+ /* We have MTP3 PCs (so we can safely do this cast) */
+ tcaphash_cont_key.opc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->src.data);
+ tcaphash_cont_key.dpc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->dst.data);
+ } else {
+ /* Don't have MTP3 PCs (have SCCP GT ?) */
+ tcaphash_cont_key.opc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->src));
+ tcaphash_cont_key.dpc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->dst));
+ }
+ tcaphash_cont_key.hashKey=tcaphash_cont_calchash(&tcaphash_cont_key);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(11,"Ckey %lx ", tcaphash_cont_key.hashKey);
+ dbg(51,"addr %s %s ", address_to_str(wmem_packet_scope(), &pinfo->src), address_to_str(wmem_packet_scope(), &pinfo->dst));
+ dbg(51,"Tid %lx %lx \n",tcaphash_cont_key.src_tid, tcaphash_cont_key.dst_tid);
+#endif
+ p_tcaphash_contcall = find_tcaphash_cont(&tcaphash_cont_key, pinfo);
+ if(p_tcaphash_contcall) {
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"CFound ");
+#endif
+ p_tcaphash_context=p_tcaphash_contcall->context;
+ } else { /* cont not found */
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"CnotFound ");
+#endif
+ /* Find the TCAP transaction according to the TC_BEGIN (from dtid,dst) */
+ tcaphash_begin_key.tid = p_tcapsrt_info->dst_tid;
+ if (pinfo->src.type == AT_SS7PC && pinfo->dst.type == AT_SS7PC)
+ {
+ /* We have MTP3 PCs (so we can safely do this cast) */
+ tcaphash_begin_key.pc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->dst.data);
+ } else {
+ /* Don't have MTP3 PCs (have SCCP GT ?) */
+ tcaphash_begin_key.pc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->dst));
+ }
+ tcaphash_begin_key.hashKey=tcaphash_begin_calchash(&tcaphash_begin_key);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(11,"Bkey %lx ", tcaphash_begin_key.hashKey);
+ dbg(51,"addr %s ", address_to_str(wmem_packet_scope(), &pinfo->dst));
+ dbg(51,"Tid %lx \n",tcaphash_begin_key.tid);
+#endif
+ p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo, FALSE);
+ if(!p_tcaphash_begincall){
+/* can this actually happen? */
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"BNotFound trying stid,src");
+#endif
+ /* Do we have a continue from the same source? (stid,src) */
+ tcaphash_begin_key.tid = p_tcapsrt_info->src_tid;
+ if (pinfo->src.type == AT_SS7PC && pinfo->dst.type == AT_SS7PC)
+ {
+ /* We have MTP3 PCs (so we can safely do this cast) */
+ tcaphash_begin_key.pc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->src.data);
+ } else {
+ /* Don't have MTP3 PCs (have SCCP GT ?) */
+ tcaphash_begin_key.pc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->src));
+ }
+ tcaphash_begin_key.hashKey=tcaphash_begin_calchash(&tcaphash_begin_key);
+#ifdef DEBUG_TCAPSRT
+ dbg(11,"Bkey %lx ", tcaphash_begin_key.hashKey);
+ dbg(51,"addr %s ", address_to_str(wmem_packet_scope(), &pinfo->src));
+ dbg(51,"Tid %lx \n",tcaphash_begin_key.tid);
+#endif
+ p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo,FALSE);
+ }
+ if(p_tcaphash_begincall &&
+ !p_tcaphash_begincall->context->contcall ) {
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"BFound \n");
+#endif
+ p_tcaphash_context=p_tcaphash_begincall->context;
+ p_tcaphash_context->responded=TRUE;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"New Ckey %lx ",tcaphash_cont_key.hashKey);
+ dbg(11,"Frame reqlink #%u \n", pinfo->num);
+#endif
+ create_tcaphash_cont(&tcaphash_cont_key,
+ p_tcaphash_begincall->context);
+
+ /* Create END for (stid,src) */
+ tcaphash_end_key.tid = p_tcapsrt_info->src_tid;
+ if (pinfo->src.type == AT_SS7PC && pinfo->dst.type == AT_SS7PC)
+ {
+ /* We have MTP3 PCs (so we can safely do this cast) */
+ tcaphash_end_key.pc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->src.data);
+ } else {
+ /* Don't have MTP3 PCs (have SCCP GT ?) */
+ tcaphash_end_key.pc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->src));
+ }
+ tcaphash_end_key.hashKey=tcaphash_end_calchash(&tcaphash_end_key);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"New Ekey %lx ",tcaphash_end_key.hashKey);
+ dbg(51,"addr %s ", address_to_str(wmem_packet_scope(), &pinfo->src));
+ dbg(51,"Tid %lx ",tcaphash_end_key.tid);
+ dbg(11,"Frame reqlink #%u ", pinfo->num);
+#endif
+ create_tcaphash_end(&tcaphash_end_key,
+ p_tcaphash_begincall->context);
+
+ } else { /* Begin not found */
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"BnotFound ");
+#endif
+ } /* begin found */
+ } /* cont found */
+ /* display tcap session, if available */
+ if (gtcap_DisplaySRT && tree &&
+ p_tcaphash_context &&
+ p_tcaphash_context->session_id) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_tcap_stat, &stat_item, "Stat");
+ PROTO_ITEM_SET_GENERATED(stat_item);
+ pi = proto_tree_add_uint(stat_tree, hf_tcapsrt_SessionId, tvb, 0,0, p_tcaphash_context->session_id);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+
+ return p_tcaphash_context;
+}
+
+/*
+* Try to find a TCAP session according to the destination Identifier given in the TC_END/TC_ABORT
+* If nothing is found,
+* - either it is a session in opening state,
+* - or the session is closed/aborted by the remote, ( so we switch the src and dst tid )
+* so try to find a tcap session registered with a TC_BEGIN "key",
+* matching the destination Id of the TC_END
+* Then associate the TC_CONT "key" to the TCAP context
+* and display the available info for the TCAP context
+*/
+
+static struct tcaphash_context_t *
+tcaphash_end_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ struct tcapsrt_info_t *p_tcapsrt_info)
+{
+ struct tcaphash_context_t *p_tcaphash_context=NULL;
+
+ struct tcaphash_end_info_key_t tcaphash_end_key;
+ struct tcaphash_endcall_t *p_tcaphash_endcall=NULL;
+
+ struct tcaphash_begin_info_key_t tcaphash_begin_key;
+ struct tcaphash_begincall_t *p_tcaphash_begincall=NULL;
+ proto_item *pi;
+ nstime_t delta;
+ proto_item *stat_item=NULL;
+ proto_tree *stat_tree=NULL;
+
+#ifdef DEBUG_TCAPSRT
+ dbg(51,"src %s dst %s dstTid %lx ", address_to_str(wmem_packet_scope(), &pinfo->src), address_to_str(wmem_packet_scope(), &pinfo->dst), p_tcapsrt_info->dst_tid);
+ dbg(10,"\n Hend #%u ", pinfo->num);
+#endif
+ /* look only for matching request, if matching conversation is available. */
+ tcaphash_end_key.tid = p_tcapsrt_info->dst_tid;
+ if (pinfo->src.type == AT_SS7PC && pinfo->dst.type == AT_SS7PC)
+ {
+ /* We have MTP3 PCs (so we can safely do this cast) */
+ tcaphash_end_key.pc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->dst.data);
+ } else {
+ /* Don't have MTP3 PCs (have SCCP GT ?) */
+ tcaphash_end_key.pc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->dst));
+ }
+ tcaphash_end_key.hashKey=tcaphash_end_calchash(&tcaphash_end_key);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(11,"Ekey %lx ",tcaphash_end_key.hashKey);
+ dbg(11,"addr %s ", address_to_str(wmem_packet_scope(), &pinfo->dst));
+ dbg(51,"Tid %lx ",tcaphash_end_key.tid);
+#endif
+ p_tcaphash_endcall = find_tcaphash_end(&tcaphash_end_key, pinfo,TRUE);
+
+ if(!p_tcaphash_endcall) {
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"EnotFound ");
+#endif
+ tcaphash_begin_key.tid = p_tcapsrt_info->dst_tid;
+ if (pinfo->src.type == AT_SS7PC && pinfo->dst.type == AT_SS7PC)
+ {
+ /* We have MTP3 PCs (so we can safely do this cast) */
+ tcaphash_begin_key.pc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->dst.data);
+ } else {
+ /* Don't have MTP3 PCs (have SCCP GT ?) */
+ tcaphash_begin_key.pc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->dst));
+ }
+ tcaphash_begin_key.hashKey=tcaphash_begin_calchash(&tcaphash_begin_key);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(11,"Bkey %lx ", tcaphash_begin_key.hashKey);
+ dbg(51,"addr %s ", address_to_str(wmem_packet_scope(), &pinfo->dst));
+ dbg(51,"Tid %lx ",tcaphash_begin_key.tid);
+#endif
+ p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo,FALSE);
+ if(!p_tcaphash_begincall) {
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"BnotFound ");
+#endif
+ }
+ }
+ if (p_tcaphash_endcall) {
+ /* Use the TC_BEGIN Destination reference */
+ p_tcaphash_context=p_tcaphash_endcall->context;
+ } else if (p_tcaphash_begincall) {
+ /* Use the TC_BEGIN Source reference */
+ p_tcaphash_context=p_tcaphash_begincall->context;
+ }
+
+ if (p_tcaphash_context) {
+
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"Found, req=%d ",p_tcaphash_context->first_frame);
+#endif
+ if (gtcap_DisplaySRT && tree) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_tcap_stat, &stat_item, "Stat");
+ PROTO_ITEM_SET_GENERATED(stat_item);
+
+ pi = proto_tree_add_uint(stat_tree, hf_tcapsrt_SessionId, tvb, 0,0, p_tcaphash_context->session_id);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"Display framereqlink %d ",p_tcaphash_context->first_frame);
+#endif
+ /* Indicate the frame to which this is a reply. */
+ if (gtcap_DisplaySRT && stat_tree) {
+ pi = proto_tree_add_uint_format(stat_tree, hf_tcapsrt_EndSession, tvb, 0, 0,
+ p_tcaphash_context->first_frame,
+ "Begin of session in frame %u",
+ p_tcaphash_context->first_frame);
+ PROTO_ITEM_SET_GENERATED(pi);
+ /* Calculate Service Response Time */
+ nstime_delta(&delta, &pinfo->abs_ts, &p_tcaphash_context->begin_time);
+
+ /* display Service Response Time and make it filterable */
+ pi = proto_tree_add_time(stat_tree, hf_tcapsrt_SessionTime, tvb, 0, 0, &delta);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+ /* Close the context and remove it (if needed) */
+ tcapsrt_close(p_tcaphash_context,pinfo);
+
+ } else {/* context present */
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"Context notFound ");
+#endif
+ }
+ return p_tcaphash_context;
+}
+
+/*
+ * ANSI PART
+ * Create the record identifiying the TCAP transaction
+ * When the identifier for the transaction is reused, check
+ * the following criteria before to append a new record:
+ * - a timeout corresponding to a message retransmission is detected,
+ * - a message hast been lost
+ * - or the previous transaction has been be closed
+ */
+static struct tcaphash_context_t *
+tcaphash_ansi_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ struct tcapsrt_info_t *p_tcapsrt_info)
+{
+ struct tcaphash_context_t *p_tcaphash_context=NULL;
+ struct tcaphash_context_key_t tcaphash_context_key;
+ struct tcaphash_ansicall_t *p_tcaphash_ansicall, *p_new_tcaphash_ansicall;
+ struct tcaphash_ansi_info_key_t tcaphash_ansi_key;
+ proto_item *pi;
+ nstime_t delta;
+ gboolean isResponse=FALSE;
+ proto_tree * stat_tree=NULL;
+ proto_item * stat_item=NULL;
+
+ /* prepare the key data */
+ tcaphash_ansi_key.tid = p_tcapsrt_info->src_tid;
+ if (pinfo->src.type == AT_SS7PC && pinfo->dst.type == AT_SS7PC)
+ {
+ /* We have MTP3 PCs (so we can safely do this cast) */
+ tcaphash_ansi_key.opc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->src.data);
+ tcaphash_ansi_key.dpc_hash = mtp3_pc_hash((const mtp3_addr_pc_t *)pinfo->dst.data);
+ } else {
+ /* Don't have MTP3 PCs (have SCCP GT ?) */
+ tcaphash_ansi_key.opc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->src));
+ tcaphash_ansi_key.dpc_hash = g_str_hash(address_to_str(wmem_packet_scope(), &pinfo->dst));
+ }
+ tcaphash_ansi_key.hashKey=tcaphash_ansi_calchash(&tcaphash_ansi_key);
+
+ /* look up the request */
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"\n Hansi #%u ", pinfo->num);
+ dbg(11,"key %lx ",tcaphash_ansi_key.hashKey);
+ dbg(51,"PC %s %s ",address_to_str(wmem_packet_scope(), &pinfo->src), address_to_str(wmem_packet_scope(), &pinfo->dst));
+ dbg(51,"Tid %lx ",tcaphash_ansi_key.tid);
+#endif
+ p_tcaphash_ansicall = (struct tcaphash_ansicall_t *)
+ g_hash_table_lookup(tcaphash_ansi, &tcaphash_ansi_key);
+
+ if (p_tcaphash_ansicall) {
+ /* Walk through list of transaction with identical keys */
+ do {
+ /* Check if the request with this reqSeqNum has been seen */
+ if (pinfo->num == p_tcaphash_ansicall->context->first_frame) {
+ /* We have seen this request before -> do nothing */
+#ifdef DEBUG_TCAPSRT
+ dbg(22,"Request already seen ");
+#endif
+ isResponse=FALSE;
+ p_tcaphash_context=p_tcaphash_ansicall->context;
+ break;
+ }
+
+ /* Check if the reponse with this reqSeqNum has been seen */
+ if (pinfo->num == p_tcaphash_ansicall->context->last_frame) {
+ /* We have seen this response before -> do nothing */
+#ifdef DEBUG_TCAPSRT
+ dbg(22,"Response already seen ");
+#endif
+ isResponse=TRUE;
+ p_tcaphash_context=p_tcaphash_ansicall->context;
+ break;
+ }
+
+ /* Check for the first Request without Response
+ received before this frame */
+ if ( pinfo->num > p_tcaphash_ansicall->context->first_frame &&
+ p_tcaphash_ansicall->context->last_frame==0 ) {
+ /* Take it, and update the context */
+
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"Update key %lx ",tcaphash_ansi_key.hashKey);
+#endif
+ p_tcaphash_ansicall->context->last_frame = pinfo->num;
+ p_tcaphash_ansicall->context->responded = TRUE;
+ p_tcaphash_ansicall->context->closed = TRUE;
+ p_tcaphash_context=p_tcaphash_ansicall->context;
+ isResponse=TRUE;
+
+ if (gtcap_DisplaySRT && tree) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_tcap_stat, &stat_item, "Stat");
+ PROTO_ITEM_SET_GENERATED(stat_item);
+
+ pi = proto_tree_add_uint(stat_tree, hf_tcapsrt_SessionId, tvb, 0,0, p_tcaphash_context->session_id);
+ PROTO_ITEM_SET_GENERATED(pi);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"Display framereqlink %d ",p_tcaphash_context->first_frame);
+#endif
+ /* Indicate the frame to which this is a reply. */
+ pi = proto_tree_add_uint_format(stat_tree, hf_tcapsrt_EndSession, tvb, 0, 0,
+ p_tcaphash_context->first_frame,
+ "Begin of session in frame %u",
+ p_tcaphash_context->first_frame);
+ PROTO_ITEM_SET_GENERATED(pi);
+ /* Calculate Service Response Time */
+ nstime_delta(&delta, &pinfo->abs_ts, &p_tcaphash_context->begin_time);
+
+ /* display Service Response Time and make it filterable */
+ pi = proto_tree_add_time(stat_tree, hf_tcapsrt_SessionTime, tvb, 0, 0, &delta);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+ break;
+ } /* Lastframe=0, so take it */
+
+
+ /* If the last record for Tcap transaction with identifier has been reached */
+ if (!p_tcaphash_ansicall->next_ansicall) {
+ /* check if we have to create a new record or not */
+ /* if last request has been responded (response number in known)
+ and this request appears after last response (has bigger frame number)
+ and last request occurred after the timeout for repetition,
+ or
+ if last request hasn't been responded (so number unknown)
+ and this request appears after last request (has bigger frame number)
+ and this request occurred after the timeout for message lost */
+ if ( ( p_tcaphash_ansicall->context->last_frame != 0
+ && pinfo->num > p_tcaphash_ansicall->context->first_frame
+ && (guint) pinfo->abs_ts.secs > (guint)(p_tcaphash_ansicall->context->begin_time.secs + gtcap_RepetitionTimeout)
+ ) ||
+ ( p_tcaphash_ansicall->context->last_frame == 0
+ && pinfo->num > p_tcaphash_ansicall->context->first_frame
+ && (guint)pinfo->abs_ts.secs > (guint)(p_tcaphash_ansicall->context->begin_time.secs + gtcap_LostTimeout)
+ )
+ )
+ {
+ /* we decide that we have a new request */
+ /* Append new record to the list */
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"(timeout) Append key %lx ",tcaphash_ansi_key.hashKey);
+ dbg(12,"Frame %u rsp %u ",pinfo->num,p_tcaphash_ansicall->context->last_frame );
+#endif
+ tcaphash_context_key.session_id = tcapsrt_global_SessionId++;
+ p_tcaphash_context = new_tcaphash_context(&tcaphash_context_key, pinfo);
+ p_new_tcaphash_ansicall = append_tcaphash_ansicall(p_tcaphash_ansicall,
+ p_tcaphash_context,
+ pinfo);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"Update key %lx ",tcaphash_ansi_key.hashKey);
+#endif
+ update_tcaphash_ansicall(p_new_tcaphash_ansicall, pinfo);
+ p_tcaphash_ansicall=p_new_tcaphash_ansicall;
+ } else {
+
+ /* If the Tid is reused for a closed Transaction */
+ if ( p_tcaphash_ansicall->context->closed) {
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"(closed) Append key %lu ",tcaphash_ansi_key.hashKey);
+ dbg(12,"Frame %u rsp %u ",pinfo->num,p_tcaphash_ansicall->context->last_frame );
+#endif
+ tcaphash_context_key.session_id = tcapsrt_global_SessionId++;
+ p_tcaphash_context = new_tcaphash_context(&tcaphash_context_key, pinfo);
+ p_new_tcaphash_ansicall = append_tcaphash_ansicall(p_tcaphash_ansicall,
+ p_tcaphash_context,
+ pinfo);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"Update key %lu ",tcaphash_ansi_key.hashKey);
+#endif
+ update_tcaphash_ansicall(p_new_tcaphash_ansicall, pinfo);
+ p_tcaphash_ansicall=p_new_tcaphash_ansicall;
+
+ } else {
+ /* the Tid is reused for an opened Transaction */
+ /* so, this is the reply to the request of our context */
+ p_tcaphash_context=p_tcaphash_ansicall->context;
+#ifdef DEBUG_TCAPSRT
+ dbg(12,"Found, req=%d ",p_tcaphash_context->first_frame);
+#endif
+
+ if (gtcap_DisplaySRT && tree) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_tcap_stat, &stat_item, "Stat");
+ PROTO_ITEM_SET_GENERATED(stat_item);
+
+ pi = proto_tree_add_uint(stat_tree, hf_tcapsrt_SessionId, tvb, 0,0, p_tcaphash_context->session_id);
+ PROTO_ITEM_SET_GENERATED(pi);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"Display framereqlink %d ",p_tcaphash_context->first_frame);
+#endif
+ /* Indicate the frame to which this is a reply. */
+ pi = proto_tree_add_uint_format(stat_tree, hf_tcapsrt_EndSession, tvb, 0, 0,
+ p_tcaphash_context->first_frame,
+ "Begin of session in frame %u",
+ p_tcaphash_context->first_frame);
+ PROTO_ITEM_SET_GENERATED(pi);
+ /* Calculate Service Response Time */
+ nstime_delta(&delta, &pinfo->abs_ts, &p_tcaphash_context->begin_time);
+
+ /* display Service Response Time and make it filterable */
+ pi = proto_tree_add_time(stat_tree, hf_tcapsrt_SessionTime, tvb, 0, 0, &delta);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+ p_tcaphash_context=p_tcaphash_ansicall->context;
+ } /* test with Timeout */
+ } /* closed */
+ break;
+ } /* Next call is NULL */
+ p_tcaphash_ansicall = p_tcaphash_ansicall->next_ansicall;
+ } while (p_tcaphash_ansicall != NULL );
+ /*
+ * New TCAP context
+ */
+ } else { /* p_tcaphash_ansicall has not been found */
+#ifdef DEBUG_TCAPSRT
+ dbg(10,"New key %lx ",tcaphash_ansi_key.hashKey);
+#endif
+
+ tcaphash_context_key.session_id = tcapsrt_global_SessionId++;
+ p_tcaphash_context = new_tcaphash_context(&tcaphash_context_key, pinfo);
+ p_tcaphash_ansicall = new_tcaphash_ansi(&tcaphash_ansi_key, p_tcaphash_context);
+
+#ifdef DEBUG_TCAPSRT
+ dbg(11,"Update key %lx ",tcaphash_ansi_key.hashKey);
+ dbg(11,"Frame reqlink #%u ", pinfo->num);
+#endif
+ update_tcaphash_ansicall(p_tcaphash_ansicall, pinfo);
+ }
+
+ /* display tcap session, if available */
+ if ( gtcap_DisplaySRT && tree &&
+ p_tcaphash_context &&
+ p_tcaphash_context->session_id) {
+ stat_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_tcap_stat, &stat_item, "Stat");
+ PROTO_ITEM_SET_GENERATED(stat_item);
+ pi = proto_tree_add_uint(stat_tree, hf_tcapsrt_SessionId, tvb, 0,0, p_tcaphash_context->session_id);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+
+
+ /* add link to response frame, if available */
+ if( gtcap_DisplaySRT && stat_tree &&
+ p_tcaphash_ansicall->context->last_frame != 0){
+ if (!isResponse) { /* Request */
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"Display_frameRsplink %d ",p_tcaphash_ansicall->context->last_frame);
+#endif
+ pi = proto_tree_add_uint_format(stat_tree, hf_tcapsrt_BeginSession, tvb, 0, 0,
+ p_tcaphash_ansicall->context->last_frame,
+ "End of session in frame %u",
+ p_tcaphash_ansicall->context->last_frame);
+ PROTO_ITEM_SET_GENERATED(pi);
+ } else { /* Response */
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"Display framereqlink %d ",p_tcaphash_context->first_frame);
+#endif
+ /* Indicate the frame to which this is a reply. */
+ if (gtcap_DisplaySRT) {
+ pi = proto_tree_add_uint_format(stat_tree, hf_tcapsrt_EndSession, tvb, 0, 0,
+ p_tcaphash_context->first_frame,
+ "Begin of session in frame %u",
+ p_tcaphash_context->first_frame);
+ PROTO_ITEM_SET_GENERATED(pi);
+ /* Calculate Service Response Time */
+ nstime_delta(&delta, &pinfo->abs_ts, &p_tcaphash_context->begin_time);
+
+ /* display Service Response Time and make it filterable */
+ pi = proto_tree_add_time(stat_tree, hf_tcapsrt_SessionTime, tvb, 0, 0, &delta);
+ PROTO_ITEM_SET_GENERATED(pi);
+ }
+ } /* Request or Response */
+ }
+ return p_tcaphash_context;
+}
+
+/*
+ * Service Response Time analyze
+ * Called just after dissector call
+ * Associate a TCAP context to a tcap session and display session related infomations
+ * like the first frame, the last, the session duration,
+ * and a uniq session identifier for the filtering
+ *
+ * For ETSI tcap, the TCAP context can be reached through three keys
+ * - a key (BEGIN) identifying the session according to the tcap source identifier
+ * - a key (CONT) identifying the established session (src_id and dst_id)
+ * - a key (END) identifying the session according to the tcap destination identifier
+ *
+ * For ANSI tcap, the TCAP context is reached through a uniq key
+ * - a key (ANSI) identifying the session according to the tcap identifier
+*/
+struct tcaphash_context_t *
+tcapsrt_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ struct tcapsrt_info_t *p_tcapsrt_info)
+{
+ struct tcaphash_context_t *tcap_context=NULL;
+
+ /* if this packet isn't loaded because of a read filter, don't output anything */
+ if(pinfo == NULL || pinfo->num == 0) {
+ return NULL;
+ }
+
+ switch (p_tcapsrt_info->ope) {
+
+ case TC_BEGIN:
+#ifdef DEBUG_TCAPSRT
+ dbg(1,"\nTC_BEGIN ");
+#endif
+ tcap_context=tcaphash_begin_matching(tvb, pinfo, tree, p_tcapsrt_info);
+ break;
+
+ case TC_CONT:
+#ifdef DEBUG_TCAPSRT
+ dbg(1,"\nTC_CONT ");
+#endif
+ tcap_context=tcaphash_cont_matching(tvb, pinfo, tree, p_tcapsrt_info);
+ break;
+
+ case TC_ABORT:
+#ifdef DEBUG_TCAPSRT
+ dbg(1,"\nTC_ABORT ");
+#endif
+ tcap_context=tcaphash_end_matching(tvb, pinfo, tree, p_tcapsrt_info);
+ break;
+
+ case TC_END:
+#ifdef DEBUG_TCAPSRT
+ dbg(1,"\nTC_END ");
+#endif
+ tcap_context=tcaphash_end_matching(tvb, pinfo, tree, p_tcapsrt_info);
+ break;
+
+ case TC_ANSI_ALL:
+ case TC_ANSI_ABORT:
+#ifdef DEBUG_TCAPSRT
+ dbg(1,"\nTC_ANSI ");
+#endif
+ tcap_context=tcaphash_ansi_matching(tvb, pinfo, tree, p_tcapsrt_info);
+ break;
+
+ default:
+#ifdef DEBUG_TCAPSRT
+ dbg(1,"\nUnknown %d ", p_tcapsrt_info->ope);
+#endif
+ break;
+ } /* switch tcapop */
+#ifdef DEBUG_TCAPSRT
+ if (tcap_context)
+ dbg(1,"session %d ", tcap_context->session_id);
+#endif
+ return tcap_context;
+}
+
+/*
+ * Initialize the Message Info used by the main dissector
+ * Data are linked to a TCAP transaction
+ */
+struct tcapsrt_info_t *
+tcapsrt_razinfo(void)
+{
+ struct tcapsrt_info_t *p_tcapsrt_info ;
+
+ /* Global buffer for packet extraction */
+ tcapsrt_global_current++;
+ if(tcapsrt_global_current==MAX_TCAP_INSTANCE){
+ tcapsrt_global_current=0;
+ }
+
+ p_tcapsrt_info=&tcapsrt_global_info[tcapsrt_global_current];
+ memset(p_tcapsrt_info,0,sizeof(struct tcapsrt_info_t));
+
+ return p_tcapsrt_info;
+}
+
+void
+tcapsrt_close(struct tcaphash_context_t *p_tcaphash_context,
+ packet_info *pinfo)
+{
+#ifdef DEBUG_TCAPSRT
+ dbg(60,"Force close ");
+#endif
+ if (p_tcaphash_context) {
+ p_tcaphash_context->responded=TRUE;
+ p_tcaphash_context->last_frame = pinfo->num;
+ p_tcaphash_context->end_time = pinfo->abs_ts;
+ p_tcaphash_context->closed=TRUE;
+
+ /* If the endkey is present */
+ if (p_tcaphash_context->endcall
+ && !gtcap_PersistentSRT) {
+ if (p_tcaphash_context->endcall->next_endcall) {
+ if (p_tcaphash_context->endcall->previous_endcall ) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"deplace Ehash ");
+#endif
+ p_tcaphash_context->endcall->previous_endcall->next_endcall
+ = p_tcaphash_context->endcall->next_endcall;
+ p_tcaphash_context->endcall->next_endcall->previous_endcall
+ = p_tcaphash_context->endcall->previous_endcall;
+ g_hash_table_remove(tcaphash_end, p_tcaphash_context->endcall->endkey);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->endcall);
+#endif
+ } else {
+ /* cannot remove the father */
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"father Ehash ");
+#endif
+ } /* no previous link, so father */
+ } else if (!gtcap_PersistentSRT) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"remove Ehash ");
+#endif
+ g_hash_table_remove(tcaphash_end, p_tcaphash_context->endcall->endkey);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->endcall->endkey);
+ g_free(p_tcaphash_context->endcall);
+#endif
+
+ } /* endcall without chained string */
+ } /* no endcall */
+
+
+ /* If the contkey is present */
+ if (p_tcaphash_context->contcall
+ && !gtcap_PersistentSRT) {
+ if (p_tcaphash_context->contcall->next_contcall) {
+ if (p_tcaphash_context->contcall->previous_contcall ) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"deplace Chash ");
+#endif
+ p_tcaphash_context->contcall->previous_contcall->next_contcall
+ = p_tcaphash_context->contcall->next_contcall;
+ p_tcaphash_context->contcall->next_contcall->previous_contcall
+ = p_tcaphash_context->contcall->previous_contcall;
+ g_hash_table_remove(tcaphash_cont, p_tcaphash_context->contcall->contkey);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->contcall);
+#endif
+ } else {
+ /* cannot remove the father */
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"father Chash ");
+#endif
+ } /* no previous link, so father */
+ } else if (!gtcap_PersistentSRT) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"remove Chash ");
+#endif
+ g_hash_table_remove(tcaphash_cont, p_tcaphash_context->contcall->contkey);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->contcall->contkey);
+ g_free(p_tcaphash_context->contcall);
+#endif
+ } /* contcall without chained string */
+ } /* no contcall */
+
+
+ /* If the beginkey is present */
+ if (p_tcaphash_context->begincall
+ && !gtcap_PersistentSRT) {
+ if (p_tcaphash_context->begincall->next_begincall) {
+ if (p_tcaphash_context->begincall->previous_begincall ) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"deplace Bhash ");
+#endif
+ p_tcaphash_context->begincall->previous_begincall->next_begincall
+ = p_tcaphash_context->begincall->next_begincall;
+ p_tcaphash_context->begincall->next_begincall->previous_begincall
+ = p_tcaphash_context->begincall->previous_begincall;
+ g_hash_table_remove(tcaphash_begin, p_tcaphash_context->begincall->beginkey);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->begincall);
+#endif
+ } else {
+ /* cannot remove the father */
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"father Bhash ");
+#endif
+ }
+ } else if (!gtcap_PersistentSRT) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"remove Bhash ");
+#endif
+ g_hash_table_remove(tcaphash_begin, p_tcaphash_context->begincall->beginkey);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->begincall->beginkey);
+ g_free(p_tcaphash_context->begincall);
+#endif
+ } /* begincall without chained string */
+ } /* no begincall */
+
+ /* If the ansikey is present */
+ if (p_tcaphash_context->ansicall
+ && !gtcap_PersistentSRT) {
+ if (p_tcaphash_context->ansicall->next_ansicall) {
+ if (p_tcaphash_context->ansicall->previous_ansicall ) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"deplace Ahash ");
+#endif
+ p_tcaphash_context->ansicall->previous_ansicall->next_ansicall
+ = p_tcaphash_context->ansicall->next_ansicall;
+ p_tcaphash_context->ansicall->next_ansicall->previous_ansicall
+ = p_tcaphash_context->ansicall->previous_ansicall;
+ g_hash_table_remove(tcaphash_ansi, p_tcaphash_context->ansicall->ansikey);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->ansicall);
+#endif
+ } else {
+ /* cannot remove the father */
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"father Ahash ");
+#endif
+ }
+ } else if (!gtcap_PersistentSRT) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"remove Ahash ");
+#endif
+ g_hash_table_remove(tcaphash_ansi, p_tcaphash_context->ansicall->ansikey);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->ansicall->ansikey);
+ g_free(p_tcaphash_context->ansicall);
+#endif
+ } /* ansicall without chained string */
+ } /* no ansicall */
+
+ if (!gtcap_PersistentSRT) {
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"remove context ");
+#endif
+ g_hash_table_remove(tcaphash_context, p_tcaphash_context->key);
+#ifdef MEM_TCAPSRT
+ g_free(p_tcaphash_context->key);
+ g_free(p_tcaphash_context);
+#endif
+ }
+ } else { /* no context */
+#ifdef DEBUG_TCAPSRT
+ dbg(20,"No context to remove ");
+#endif
+ }
+}
+
+const value_string tcap_component_type_str[] = {
+ { TCAP_COMP_INVOKE, "Invoke" },
+ { TCAP_COMP_RRL, "Return Result(L)" },
+ { TCAP_COMP_RE, "Return Error" },
+ { TCAP_COMP_REJECT, "Reject" },
+ { TCAP_COMP_RRN, "Return Result(NL)" },
+ { 0, NULL }
+};
+
+static int
+dissect_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+
+ struct tcaphash_context_t * p_tcap_context;
+ dissector_handle_t subdissector_handle;
+ asn1_ctx_t asn1_ctx;
+ gint8 ber_class;
+ gboolean pc;
+ gint tag;
+
+ /* Check if ANSI TCAP and call the ANSI TCAP dissector if that's the case
+ * 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
+ * }
+ *
+ *
+ */
+ get_ber_identifier(tvb, 0, &ber_class, &pc, &tag);
+
+ if(ber_class == BER_CLASS_PRI){
+ switch (tag){
+
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 22:
+ return call_dissector(ansi_tcap_handle, tvb, pinfo, parent_tree);
+
+ default:
+ return tvb_captured_length(tvb);
+ }
+ }
+
+ /* ITU TCAP */
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ tcap_top_tree = parent_tree;
+ tcap_stat_tree = NULL;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "TCAP");
+
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_tcap, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_tcap);
+ tcap_stat_tree=tree;
+ }
+ cur_oid = NULL;
+ tcapext_oid = NULL;
+ raz_tcap_private(&tcap_private);
+
+ asn1_ctx.value_ptr = &tcap_private;
+ gp_tcapsrt_info=tcapsrt_razinfo();
+ tcap_subdissector_used=FALSE;
+ gp_tcap_context=NULL;
+ dissect_tcap_TCMessage(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+
+ if (gtcap_HandleSRT && !tcap_subdissector_used ) {
+ p_tcap_context=tcapsrt_call_matching(tvb, pinfo, tcap_stat_tree, gp_tcapsrt_info);
+ tcap_private.context=p_tcap_context;
+
+ /* If the current message is TCAP only,
+ * save the Application Context Name for the next messages
+ */
+ if ( p_tcap_context && cur_oid && !p_tcap_context->oid_present ) {
+ /* Save the application context and the sub dissector */
+ g_strlcpy(p_tcap_context->oid, cur_oid, sizeof(p_tcap_context->oid));
+ p_tcap_context->oid_present=TRUE;
+ if ( (subdissector_handle = dissector_get_string_handle(ber_oid_dissector_table, cur_oid)) ) {
+ p_tcap_context->subdissector_handle=subdissector_handle;
+ p_tcap_context->subdissector_present=TRUE;
+ }
+ }
+ if (gtcap_HandleSRT && p_tcap_context && p_tcap_context->callback) {
+ /* Callback fonction for the upper layer */
+ (p_tcap_context->callback)(tvb, pinfo, tcap_stat_tree, p_tcap_context);
+ }
+ }
+ return tvb_captured_length(tvb);
+}
+
+void
+proto_reg_handoff_tcap(void)
+{
+
+ data_handle = find_dissector("data");
+ ansi_tcap_handle = find_dissector("ansi_tcap");
+ ber_oid_dissector_table = find_dissector_table("ber.oid");
+
+#include "packet-tcap-dis-tab.c"
+}
+
+static void init_tcap(void);
+static void cleanup_tcap(void);
+
+void
+proto_register_tcap(void)
+{
+
+/* Setup list of header fields See Section 1.6.1 for details*/
+ static hf_register_info hf[] = {
+ { &hf_tcap_tag,
+ { "Tag",
+ "tcap.msgtype",
+ FT_UINT8, BASE_HEX, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_tcap_length,
+ { "Length",
+ "tcap.len",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_tcap_data,
+ { "Data",
+ "tcap.data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_tcap_tid,
+ { "Transaction Id",
+ "tcap.tid",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_tcap_constructor_eoc,
+ { "CONSTRUCTOR EOC",
+ "tcap.constructor_eoc",
+ FT_UINT16, BASE_HEX, NULL, 0,
+ NULL, HFILL }
+ },
+ /* Tcap Service Response Time */
+ { &hf_tcapsrt_SessionId,
+ { "Session Id",
+ "tcap.srt.session_id",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_tcapsrt_BeginSession,
+ { "Begin Session",
+ "tcap.srt.begin",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "SRT Begin of Session", HFILL }
+ },
+ { &hf_tcapsrt_EndSession,
+ { "End Session",
+ "tcap.srt.end",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "SRT End of Session", HFILL }
+ },
+ { &hf_tcapsrt_SessionTime,
+ { "Session duration",
+ "tcap.srt.sessiontime",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "Duration of the TCAP session", HFILL }
+ },
+ { &hf_tcapsrt_Duplicate,
+ { "Session Duplicate",
+ "tcap.srt.duplicate",
+ FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "SRT Duplicated with Session", HFILL }
+ },
+#include "packet-tcap-hfarr.c"
+ };
+
+/* Setup protocol subtree array */
+ static gint *ett[] = {
+ &ett_tcap,
+ &ett_param,
+ &ett_otid,
+ &ett_dtid,
+ &ett_tcap_stat,
+#include "packet-tcap-ettarr.c"
+ };
+
+ /*static enum_val_t tcap_options[] = {
+ { "itu", "ITU", ITU_TCAP_STANDARD },
+ { "ansi", "ANSI", ANSI_TCAP_STANDARD },
+ { NULL, NULL, 0 }
+ };*/
+
+ module_t *tcap_module;
+
+/* Register the protocol name and description */
+ proto_tcap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+/* Required function calls to register the header fields and subtrees used */
+ proto_register_field_array(proto_tcap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ tcap_module = prefs_register_protocol(proto_tcap, NULL);
+
+#if 0
+ prefs_register_enum_preference(tcap_module, "standard", "ITU TCAP standard",
+ "The SS7 standard used in ITU TCAP packets",
+ &tcap_standard, tcap_options, FALSE);
+#else
+ prefs_register_obsolete_preference(tcap_module, "standard");
+#endif
+
+#if 0
+ prefs_register_bool_preference(tcap_module, "lock_info_col", "Lock Info column",
+ "Always show TCAP in Info column",
+ &lock_info_col);
+#else
+ prefs_register_obsolete_preference(tcap_module, "lock_info_col");
+#endif
+
+ /* Set default SSNs */
+ range_convert_str(&global_ssn_range, "", MAX_SSN);
+
+ prefs_register_range_preference(tcap_module, "ssn", "SCCP SSNs",
+ "SCCP (and SUA) SSNs to decode as TCAP",
+ &global_ssn_range, MAX_SSN);
+
+ prefs_register_bool_preference(tcap_module, "srt",
+ "Service Response Time Analyse",
+ "Activate the analyse for Response Time",
+ &gtcap_HandleSRT);
+
+ prefs_register_bool_preference(tcap_module, "persistentsrt",
+ "Persistent stats for SRT",
+ "Statistics for Response Time",
+ &gtcap_PersistentSRT);
+
+ prefs_register_uint_preference(tcap_module, "repetitiontimeout",
+ "Repetition timeout",
+ "Maximal delay for message repetion",
+ 10, &gtcap_RepetitionTimeout);
+
+ prefs_register_uint_preference(tcap_module, "losttimeout",
+ "lost timeout",
+ "Maximal delay for message lost",
+ 10, &gtcap_LostTimeout);
+
+ ansi_sub_dissectors = g_hash_table_new(g_direct_hash,g_direct_equal);
+ itu_sub_dissectors = g_hash_table_new(g_direct_hash,g_direct_equal);
+
+ /* 'globally' register dissector */
+ register_dissector("tcap", dissect_tcap, proto_tcap);
+
+ tcap_handle = create_dissector_handle(dissect_tcap, proto_tcap);
+
+ register_init_routine(&init_tcap);
+ register_cleanup_routine(&cleanup_tcap);
+}
+
+
+static void range_delete_callback(guint32 ssn)
+{
+ if ( ssn && !get_ansi_tcap_subdissector(ssn) && !get_itu_tcap_subdissector(ssn) ) {
+ dissector_delete_uint("sccp.ssn", ssn, tcap_handle);
+ }
+}
+
+static void range_add_callback(guint32 ssn)
+{
+ if (ssn && !get_ansi_tcap_subdissector(ssn) && !get_itu_tcap_subdissector(ssn) ) {
+ dissector_add_uint("sccp.ssn", ssn, tcap_handle);
+ }
+}
+
+
+static void init_tcap(void)
+{
+ ssn_range = range_copy(global_ssn_range);
+ range_foreach(ssn_range, range_add_callback);
+ tcapsrt_init_routine();
+}
+
+static void cleanup_tcap(void)
+{
+ range_foreach(ssn_range, range_delete_callback);
+ g_free(ssn_range);
+}
+
+static int
+dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset)
+{
+ gint tag_offset, saved_offset, len_offset;
+ tvbuff_t *next_tvb;
+ proto_tree *subtree;
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ guint32 len;
+ guint32 tag_length;
+ guint32 len_length;
+ gboolean ind_field;
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0)
+ {
+ saved_offset = offset;
+
+ offset = get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ tag_offset = offset;
+ offset = get_ber_length(tvb, offset, &len, &ind_field);
+ len_offset = offset;
+
+ tag_length = tag_offset - saved_offset;
+ len_length = len_offset - tag_offset;
+
+ if (pc)
+ {
+ subtree = proto_tree_add_subtree(tree, tvb, saved_offset,
+ len + (len_offset - saved_offset), ett_param, NULL,
+ "CONSTRUCTOR");
+ proto_tree_add_uint_format(subtree, hf_tcap_tag, tvb,
+ saved_offset, tag_length, tag,
+ "CONSTRUCTOR Tag");
+ proto_tree_add_uint(subtree, hf_tcap_tag, tvb, saved_offset,
+ tag_length, ber_class);
+
+ proto_tree_add_uint(subtree, hf_tcap_length, tvb, tag_offset,
+ len_length, len);
+
+ if (len-(2*ind_field)) /*should always be positive unless we get an empty contructor pointless? */
+ {
+ next_tvb = tvb_new_subset_length(tvb, offset, len-(2*ind_field));
+ dissect_tcap_param(actx, subtree,next_tvb,0);
+ }
+
+ if (ind_field)
+ proto_tree_add_item(subtree, hf_tcap_constructor_eoc, tvb, offset+len-2, 2, ENC_BIG_ENDIAN);
+
+ offset += len;
+ }
+ else
+ {
+ subtree = proto_tree_add_subtree_format(tree, tvb, saved_offset,
+ len + (len_offset - saved_offset), ett_param, NULL,
+ "Parameter (0x%.2x)", tag);
+
+ proto_tree_add_uint(subtree, hf_tcap_tag, tvb, saved_offset,
+ tag_length, tag);
+
+ proto_tree_add_uint(subtree, hf_tcap_length, tvb,
+ saved_offset+tag_length, len_length, len);
+
+ if (len) /* check for NULLS */
+ {
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
+ dissect_ber_octet_string(TRUE, actx, tree, next_tvb, 0,
+ hf_tcap_data, NULL);
+ }
+
+ offset += len;
+ }
+ }
+ return offset;
+}
+
+static void raz_tcap_private(struct tcap_private_t * p_tcap_private)
+{
+ memset(p_tcap_private,0,sizeof(struct tcap_private_t) );
+}
+
+/*
+ * Call ITU Subdissector to decode the Tcap Component
+ */
+static int
+dissect_tcap_ITU_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_)
+{
+ dissector_handle_t subdissector_handle=NULL;
+ gboolean is_subdissector=FALSE;
+ struct tcaphash_context_t * p_tcap_context=NULL;
+
+ /*
+ * ok lets look at the oid and ssn and try and find a dissector, otherwise lets decode it.
+ */
+
+ /*
+ * Handle The TCAP Service Response Time
+ */
+ if ( gtcap_HandleSRT ) {
+ if (!tcap_subdissector_used) {
+ p_tcap_context=tcapsrt_call_matching(tvb, actx->pinfo, tcap_stat_tree, gp_tcapsrt_info);
+ tcap_subdissector_used=TRUE;
+ gp_tcap_context=p_tcap_context;
+ tcap_private.context=p_tcap_context;
+ } else {
+ /* Take the last TCAP context */
+ p_tcap_context = gp_tcap_context;
+ tcap_private.context=p_tcap_context;
+ }
+ }
+ if (p_tcap_context) {
+ if (cur_oid) {
+ if (p_tcap_context->oid_present) {
+ /* We have already an Application Context, check if we have
+ to fallback to a lower version */
+ if ( strncmp(p_tcap_context->oid, cur_oid, sizeof(p_tcap_context->oid))!=0) {
+ /* ACN, changed, Fallback to lower version
+ * and update the subdissector (purely formal)
+ */
+ g_strlcpy(p_tcap_context->oid,cur_oid, sizeof(p_tcap_context->oid));
+ if ( (subdissector_handle = dissector_get_string_handle(ber_oid_dissector_table, cur_oid)) ) {
+ p_tcap_context->subdissector_handle=subdissector_handle;
+ p_tcap_context->subdissector_present=TRUE;
+ }
+ }
+ } else {
+ /* We do not have the OID in the TCAP context, so store it */
+ g_strlcpy(p_tcap_context->oid, cur_oid, sizeof(p_tcap_context->oid));
+ p_tcap_context->oid_present=TRUE;
+ /* Try to find a subdissector according to OID */
+ if ( (subdissector_handle
+ = dissector_get_string_handle(ber_oid_dissector_table, cur_oid)) ) {
+ p_tcap_context->subdissector_handle=subdissector_handle;
+ p_tcap_context->subdissector_present=TRUE;
+ } else {
+ /* Not found, so try to find a subdissector according to SSN */
+ if ( (subdissector_handle = get_itu_tcap_subdissector(actx->pinfo->match_uint))) {
+ /* Found according to SSN */
+ p_tcap_context->subdissector_handle=subdissector_handle;
+ p_tcap_context->subdissector_present=TRUE;
+ }
+ }
+ } /* context OID */
+ } else {
+ /* Copy the OID from the TCAP context to the current oid */
+ if (p_tcap_context->oid_present) {
+ tcap_private.oid= (void*) p_tcap_context->oid;
+ tcap_private.acv=TRUE;
+ }
+ } /* no OID */
+ } /* no TCAP context */
+
+
+ if ( p_tcap_context
+ && p_tcap_context->subdissector_present) {
+ /* Take the subdissector from the context */
+ subdissector_handle=p_tcap_context->subdissector_handle;
+ is_subdissector=TRUE;
+ }
+
+ /* Have SccpUsersTable protocol taking precedence over sccp.ssn table */
+ if (!is_subdissector && requested_subdissector_handle) {
+ is_subdissector = TRUE;
+ subdissector_handle = requested_subdissector_handle;
+ }
+
+ if (!is_subdissector) {
+ /*
+ * If we do not currently know the subdissector, we have to find it
+ * - first, according to the OID
+ * - then according to the SSN
+ * - and at least, take the default Data handler
+ */
+ if (ber_oid_dissector_table && cur_oid) {
+ /* Search if we can find the sub protocol according to the A.C.N */
+ if ( (subdissector_handle
+ = dissector_get_string_handle(ber_oid_dissector_table, cur_oid)) ) {
+ /* found */
+ is_subdissector=TRUE;
+ } else {
+ /* Search if we can found the sub protocol according to the SSN table */
+ if ( (subdissector_handle
+ = get_itu_tcap_subdissector(actx->pinfo->match_uint))) {
+ /* Found according to SSN */
+ is_subdissector=TRUE;
+ } else {
+ /* Nothing found, take the Data handler */
+ subdissector_handle = data_handle;
+ is_subdissector=TRUE;
+ } /* SSN */
+ } /* ACN */
+ } else {
+ /* There is no A.C.N for this transaction, so search in the SSN table */
+ if ( (subdissector_handle = get_itu_tcap_subdissector(actx->pinfo->match_uint))) {
+ /* Found according to SSN */
+ is_subdissector=TRUE;
+ } else {
+ subdissector_handle = data_handle;
+ is_subdissector=TRUE;
+ }
+ } /* OID */
+ } else {
+ /* We have it already */
+ }
+
+ /* Call the sub dissector if present, and not already called */
+ if (is_subdissector) {
+ call_dissector_with_data(subdissector_handle, tvb, actx->pinfo, tree, actx->value_ptr);
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ }
+
+ return offset;
+}
+
+void
+call_tcap_dissector(dissector_handle_t handle, tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree)
+{
+ requested_subdissector_handle = handle;
+
+ TRY {
+ dissect_tcap(tvb, pinfo, tree, NULL);
+ } CATCH_ALL {
+ requested_subdissector_handle = NULL;
+ RETHROW;
+ } ENDTRY;
+
+ requested_subdissector_handle = NULL;
+}
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/tcap/packet-tcap-template.h b/epan/dissectors/asn1/tcap/packet-tcap-template.h
new file mode 100644
index 0000000000..b79365bd79
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/packet-tcap-template.h
@@ -0,0 +1,229 @@
+/* packet-tcap.h
+ *
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+
+#ifndef PACKET_tcap_H
+#define PACKET_tcap_H
+
+#include "ws_symbol_export.h"
+
+/* TCAP component type */
+#define TCAP_COMP_INVOKE 0xa1
+#define TCAP_COMP_RRL 0xa2
+#define TCAP_COMP_RE 0xa3
+#define TCAP_COMP_REJECT 0xa4
+#define TCAP_COMP_RRN 0xa7
+
+
+#define ANSI_TC_INVOKE_L 0xe9
+#define ANSI_TC_RRL 0xea
+#define ANSI_TC_RE 0xeb
+#define ANSI_TC_REJECT 0xec
+#define ANSI_TC_INVOKE_N 0xed
+#define ANSI_TC_RRN 0xee
+
+
+#define TCAP_SEQ_TAG 0x30
+#define TCAP_SET_TAG 0x31
+
+#define TCAP_INVOKE_ID_TAG 0x02
+#define TCAP_LINKED_ID_TAG 0x80
+
+#define TCAP_EOC_LEN 2
+
+#define TCAP_CONSTRUCTOR(TCtag) (TCtag & 0x20)
+
+#define TC_BEGIN 1
+#define TC_CONT 2
+#define TC_END 3
+#define TC_ABORT 4
+#define TC_ANSI_ABORT 5
+#define TC_ANSI_ALL 6
+
+struct tcap_private_t {
+ gboolean acv; /* Is the Application Context Version present */
+ const void * oid;
+ guint32 session_id;
+ void * context;
+ gchar *TransactionID_str;
+};
+
+/** @file
+ * lists and hash tables used in wireshark's tcap dissector
+ * for calculation of delays in tcap-calls
+ */
+
+#define LENGTH_OID 23
+struct tcaphash_context_t {
+ struct tcaphash_context_key_t * key;
+ guint32 session_id;
+ guint32 first_frame;
+ guint32 last_frame;
+ nstime_t begin_time; /**< time of arrival of TC_BEGIN */
+ nstime_t end_time; /**< time of closing message */
+ gboolean responded; /**< true, if request has been responded */
+ gboolean closed;
+ gboolean upper_dissector;
+ gboolean oid_present;
+ gchar oid[LENGTH_OID+1];
+ gboolean subdissector_present;
+ dissector_handle_t subdissector_handle;
+ void (* callback) (tvbuff_t *,packet_info *, proto_tree *, struct tcaphash_context_t *);
+ struct tcaphash_begincall_t * begincall;
+ struct tcaphash_contcall_t * contcall;
+ struct tcaphash_endcall_t * endcall;
+ struct tcaphash_ansicall_t * ansicall;
+};
+
+struct tcaphash_begincall_t {
+ struct tcaphash_begin_info_key_t * beginkey;
+ struct tcaphash_context_t * context;
+ gboolean father;
+ struct tcaphash_begincall_t * next_begincall;
+ struct tcaphash_begincall_t * previous_begincall;
+};
+
+struct tcaphash_contcall_t {
+ struct tcaphash_cont_info_key_t * contkey;
+ struct tcaphash_context_t * context;
+ gboolean father;
+ struct tcaphash_contcall_t * next_contcall;
+ struct tcaphash_contcall_t * previous_contcall;
+};
+
+struct tcaphash_endcall_t {
+ struct tcaphash_end_info_key_t * endkey;
+ struct tcaphash_context_t * context;
+ gboolean father;
+ struct tcaphash_endcall_t * next_endcall;
+ struct tcaphash_endcall_t * previous_endcall;
+};
+
+struct tcaphash_ansicall_t {
+ struct tcaphash_ansi_info_key_t * ansikey;
+ struct tcaphash_context_t * context;
+ gboolean father;
+ struct tcaphash_ansicall_t * next_ansicall;
+ struct tcaphash_ansicall_t * previous_ansicall;
+};
+
+/** The Key for the hash table is the TCAP origine transaction identifier
+ of the TC_BEGIN containing the InitialDP */
+
+struct tcaphash_context_key_t {
+ guint32 session_id;
+};
+
+struct tcaphash_begin_info_key_t {
+ guint32 hashKey;
+ guint32 tid;
+ guint32 pc_hash;
+};
+
+struct tcaphash_cont_info_key_t {
+ guint32 hashKey;
+ guint32 src_tid;
+ guint32 dst_tid;
+ guint32 opc_hash;
+ guint32 dpc_hash;
+};
+
+struct tcaphash_end_info_key_t {
+ guint32 hashKey;
+ guint32 tid;
+ guint32 pc_hash;
+};
+
+struct tcaphash_ansi_info_key_t {
+ guint32 hashKey;
+ guint32 tid;
+ guint32 opc_hash;
+ guint32 dpc_hash;
+};
+
+
+/** List of infos to store for the analyse */
+struct tcapsrt_info_t {
+ guint32 tcap_session_id;
+ guint32 src_tid;
+ guint32 dst_tid;
+ guint8 ope;
+};
+
+/**
+ * Routine called when the TAP is initialized.
+ * so hash table are (re)created
+ */
+void tcapsrt_init_routine(void);
+
+/**
+ * Initialize the Message Info used by the main dissector
+ * Data are linked to a TCAP transaction
+ */
+struct tcapsrt_info_t * tcapsrt_razinfo(void);
+
+void tcapsrt_close(struct tcaphash_context_t * p_tcaphash_context,
+ packet_info * pinfo _U_);
+
+/**
+ * Service Response Time analyze
+ * Called just after dissector call
+ * Associate a TCAP context to a tcap session and display session related infomations
+ * like the first frame, the last, the session duration,
+ * and a uniq session identifier for the filtering
+ *
+ * For ETSI tcap, the TCAP context can be reached through three keys
+ * - a key (BEGIN) identifying the session according to the tcap source identifier
+ * - a key (CONT) identifying the established session (src_id and dst_id)
+ * - a key (END) identifying the session according to the tcap destination identifier
+ *
+ * For ANSI tcap, the TCAP context is reached through a uniq key
+ * - a key (ANSI) identifying the session according to the tcap identifier
+*/
+struct tcaphash_context_t * tcapsrt_call_matching(tvbuff_t *tvb,
+ packet_info * pinfo _U_,
+ proto_tree *tree,
+ struct tcapsrt_info_t * p_tcap_info);
+
+WS_DLL_PUBLIC gboolean gtcap_StatSRT;
+
+extern gint tcap_standard;
+
+extern const value_string tcap_component_type_str[];
+void proto_reg_handoff_tcap(void);
+void proto_register_tcap(void);
+
+extern dissector_handle_t get_itu_tcap_subdissector(guint32 ssn);
+dissector_handle_t get_ansi_tcap_subdissector(guint32 ssn);
+
+extern void add_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector);
+WS_DLL_PUBLIC void add_itu_tcap_subdissector(guint32 ssn, dissector_handle_t dissector);
+
+extern void delete_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector);
+WS_DLL_PUBLIC void delete_itu_tcap_subdissector(guint32 ssn, dissector_handle_t dissector);
+
+extern void call_tcap_dissector(dissector_handle_t, tvbuff_t*, packet_info*, proto_tree*);
+
+#include "packet-tcap-exp.h"
+
+#endif /* PACKET_tcap_H */
diff --git a/epan/dissectors/asn1/tcap/tcap.asn b/epan/dissectors/asn1/tcap/tcap.asn
new file mode 100644
index 0000000000..c9b8d44247
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/tcap.asn
@@ -0,0 +1,246 @@
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+--EXPORTS OPERATION, ERROR, Component, InvokeId Type;
+-- WS stuff
+ExternalPDU ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
+ {
+ oid OBJECT IDENTIFIER,
+ dialog [0] IMPLICIT Dialog1
+ }
+
+
+Dialog1 ::= OCTET STRING
+-- End WS
+-- Transaction Portion fields
+
+TCMessage ::= 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 Reason OPTIONAL
+ }
+
+Reason ::= CHOICE{
+ p-abortCause P-AbortCause,
+ u-abortCause DialoguePortion
+ }
+
+-- 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
+
+-- WS adaptation
+DialoguePortion ::= [APPLICATION 11] IMPLICIT DialogueOC
+DialogueOC ::= OCTET STRING
+
+-- 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)}(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 ::= [APPLICATION 12] IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
+
+-- 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 ::= 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,
+ opCode OPERATION,
+ parameter Parameter OPTIONAL }
+
+Parameter ::= ANY
+
+-- 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,
+ resultretres SEQUENCE {
+ opCode OPERATION,
+ parameter Parameter OPTIONAL
+ } 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 ErrorCode,
+ parameter Parameter OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+Reject ::= SEQUENCE {
+ invokeIDRej 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)
+
+
+OPERATION ::= CHOICE {
+ localValue INTEGER,
+ globalValue OBJECT IDENTIFIER }
+
+ERROR ::= CHOICE {
+ localValue INTEGER,
+ globalValue OBJECT IDENTIFIER }
+
+-- 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.
+
+--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) }
+
+
+ErrorCode ::= CHOICE
+ {
+ nationaler [PRIVATE 19] IMPLICIT INTEGER (-32768..32767),
+ privateer [PRIVATE 20] IMPLICIT INTEGER
+ }
+
+END -- end of the TCAP Package Module
diff --git a/epan/dissectors/asn1/tcap/tcap.cnf b/epan/dissectors/asn1/tcap/tcap.cnf
new file mode 100644
index 0000000000..e041ba9aae
--- /dev/null
+++ b/epan/dissectors/asn1/tcap/tcap.cnf
@@ -0,0 +1,259 @@
+# tcap.cnf
+# tcap conformation file
+
+#.OMIT_ASSIGNMENT
+RLRQ-apdu
+RLRE-apdu
+Release-request-reason
+Release-response-reason
+ERROR
+#.END
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+DialoguePDU
+UniDialoguePDU
+
+#.REGISTER
+DialoguePDU B "0.0.17.773.1.1.1" "id-as-dialogue"
+UniDialoguePDU B "0.0.17.773.1.2.1" "id-as-uniDialogue"
+
+#.PDU
+
+
+#.NO_EMIT ONLY_VALS
+TCMessage
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+AUDT-apdu/_untag/protocol-version AUDT_protocol_version
+AARQ-apdu/_untag/protocol-version AARQ_protocol_version
+AARE-apdu/_untag/protocol-version AARE_protocol_version
+
+AARE-apdu/_untag/application-context-name AARE_application_context_name
+AARQ-apdu/_untag/application-context-name AARQ_application_context_name
+AUDT-apdu/_untag/application-context-name AUDT_application_context_name
+
+AARQ-apdu/_untag/user-information AARQ_user_information
+AARE-apdu/_untag/user-information AARE_user_information
+ABRT-apdu/_untag/user-information ABRT_user_information
+AUDT-apdu/_untag/user-information AUDT_user_information
+
+#.FIELD_RENAME
+AUDT-apdu/_untag/protocol-version audt_protocol_version
+AARQ-apdu/_untag/protocol-version aarq_protocol_version
+AARE-apdu/_untag/protocol-version aare_protocol_version
+
+AARQ-apdu/_untag/application-context-name aarq_application_context_name
+AARE-apdu/_untag/application-context-name aare_application_context_name
+AUDT-apdu/_untag/application-context-name audt_application_context_name
+
+AARQ-apdu/_untag/user-information aarq_user_information
+AARE-apdu/_untag/user-information aare_user_information
+AUDT-apdu/_untag/user-information audt_user_information
+ABRT-apdu/_untag/user-information abrt_user_information
+#.END
+
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY DialogueOC
+
+ offset = dissect_tcap_ExternalPDU(FALSE /*implicit_tag*/, tvb, offset, actx, tree, -1);
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY ExternalPDU
+
+%(DEFAULT_BODY)s
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY Dialog1
+
+ offset = dissect_tcap_DialoguePDU(TRUE, tvb, offset, actx, tree, -1);
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY Parameter
+
+ offset = dissect_tcap_param(actx,tree,tvb,offset);
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY Component
+ tvbuff_t *next_tvb;
+ gint8 ber_class;
+ gboolean pc;
+ gint tag;
+ guint32 len, comp_offset;
+ volatile guint32 _offset;
+ gint ind_field;
+
+ comp_offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ comp_offset = dissect_ber_length(actx->pinfo, tree, tvb, comp_offset, &len, &ind_field);
+ /* we can believe the length now */
+ next_tvb = tvb_new_subset_length(tvb, offset, len+comp_offset-offset);
+
+ if (!next_tvb)
+ return comp_offset;
+
+ _offset = offset;
+ TRY {
+ _offset = dissect_ber_choice(actx, tree, tvb, _offset,
+ Component_choice, hf_index, ett_tcap_Component,
+ NULL);
+ }
+ CATCH_NONFATAL_ERRORS {
+ show_exception(tvb, actx->pinfo, tree, EXCEPT_CODE, GET_MESSAGE);
+ }
+ ENDTRY;
+ offset = _offset;
+
+ dissect_tcap_ITU_ComponentPDU(implicit_tag, next_tvb, 0, actx, tcap_top_tree, hf_index);
+
+/* return comp_offset+len; or return offset (will be automatically added) */
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY AUDT-apdu/_untag/application-context-name FN_VARIANT = _str VAL_PTR = &cur_oid
+%(DEFAULT_BODY)s
+ tcap_private.oid= (const void*) cur_oid;
+ tcap_private.acv=TRUE;
+#----------------------------------------------------------------------------------------
+#.FN_BODY AARQ-apdu/_untag/application-context-name FN_VARIANT = _str VAL_PTR = &cur_oid
+%(DEFAULT_BODY)s
+ tcap_private.oid= (const void*) cur_oid;
+ tcap_private.acv=TRUE;
+#----------------------------------------------------------------------------------------
+#.FN_BODY AARE-apdu/_untag/application-context-name FN_VARIANT = _str VAL_PTR = &cur_oid
+%(DEFAULT_BODY)s
+ tcap_private.oid= (const void*) cur_oid;
+ tcap_private.acv=TRUE;
+#----------------------------------------------------------------------------------------
+#.FN_BODY OrigTransactionID
+ tvbuff_t *parameter_tvb;
+ guint8 len, i;
+ proto_tree *subtree;
+ int saved_offset;
+
+ hf_index = hf_tcap_tid;
+ saved_offset = offset;
+%(DEFAULT_BODY)s
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ offset = saved_offset;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_otid, NULL, "Source Transaction ID");
+ offset = dissect_ber_octet_string(implicit_tag, actx, subtree, tvb, offset, hf_tcap_otid,
+ &parameter_tvb);
+
+ if (parameter_tvb) {
+ len = tvb_reported_length_remaining(parameter_tvb, 0);
+ switch(len) {
+ case 1:
+ gp_tcapsrt_info->src_tid=tvb_get_guint8(parameter_tvb, 0);
+ break;
+ case 2:
+ gp_tcapsrt_info->src_tid=tvb_get_ntohs(parameter_tvb, 0);
+ break;
+ case 4:
+ gp_tcapsrt_info->src_tid=tvb_get_ntohl(parameter_tvb, 0);
+ break;
+ default:
+ gp_tcapsrt_info->src_tid=0;
+ break;
+ }
+
+ if (len) {
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "otid(");
+ for (i = 0; i < len; i++) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%02x",tvb_get_guint8(parameter_tvb,i));
+ }
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ") ");
+ }
+ }
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY DestTransactionID
+ tvbuff_t *parameter_tvb;
+ guint8 len , i;
+ proto_tree *subtree;
+ int saved_offset;
+
+ hf_index = hf_tcap_tid;
+ saved_offset = offset;
+%(DEFAULT_BODY)s
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ offset = saved_offset;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_dtid, NULL, "Destination Transaction ID");
+ offset = dissect_ber_octet_string(implicit_tag, actx, subtree, tvb, offset, hf_tcap_dtid,
+ &parameter_tvb);
+
+ if (parameter_tvb) {
+ len = tvb_reported_length_remaining(parameter_tvb, 0);
+ switch(len) {
+ case 1:
+ gp_tcapsrt_info->dst_tid=tvb_get_guint8(parameter_tvb, 0);
+ break;
+ case 2:
+ gp_tcapsrt_info->dst_tid=tvb_get_ntohs(parameter_tvb, 0);
+ break;
+ case 4:
+ gp_tcapsrt_info->dst_tid=tvb_get_ntohl(parameter_tvb, 0);
+ break;
+ default:
+ gp_tcapsrt_info->dst_tid=0;
+ break;
+ }
+
+ if (len) {
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "dtid(");
+ for(i = 0; i < len; i++) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%02x",tvb_get_guint8(parameter_tvb,i));
+ }
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ") ");
+ }
+ }
+#.FN_HDR Begin
+gp_tcapsrt_info->ope=TC_BEGIN;
+
+/* Do not change col_add_str() to col_append_str() here: we _want_ this call
+ * to overwrite whatever's currently in the INFO column (e.g., "UDT" from
+ * the SCCP dissector).
+ *
+ * If there's something there that should not be overwritten, whoever
+ * put that info there should call col_set_fence() to protect it.
+ */
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "Begin ");
+#.END
+
+
+#.FN_HDR End
+gp_tcapsrt_info->ope=TC_END;
+
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "End ");
+#.END
+
+
+#.FN_HDR Continue
+gp_tcapsrt_info->ope=TC_CONT;
+
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "Continue ");
+#.END
+
+
+#.FN_HDR Abort
+gp_tcapsrt_info->ope=TC_ABORT;
+
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "Abort ");
+#.END
+
+#
+# Editor modelines - http://www.wireshark.org/tools/modelines.html
+#
+# Local variables:
+# c-basic-offset: 2
+# tab-width: 8
+# indent-tabs-mode: nil
+# End:
+#
+# vi: set shiftwidth=2 tabstop=8 expandtab:
+# :indentSize=2:tabSize=8:noTabs=true:
+#
diff --git a/epan/dissectors/asn1/tetra/CMakeLists.txt b/epan/dissectors/asn1/tetra/CMakeLists.txt
new file mode 100644
index 0000000000..26aea3e679
--- /dev/null
+++ b/epan/dissectors/asn1/tetra/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME tetra )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ${PROTOCOL_NAME}.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -u )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/tetra/Makefile.am b/epan/dissectors/asn1/tetra/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/tetra/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/tetra/Makefile.common b/epan/dissectors/asn1/tetra/Makefile.common
new file mode 100644
index 0000000000..d6988551be
--- /dev/null
+++ b/epan/dissectors/asn1/tetra/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=tetra
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ $(PROTOCOL_NAME).asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -u
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/tetra/Makefile.nmake b/epan/dissectors/asn1/tetra/Makefile.nmake
new file mode 100644
index 0000000000..966d190619
--- /dev/null
+++ b/epan/dissectors/asn1/tetra/Makefile.nmake
@@ -0,0 +1,25 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
diff --git a/epan/dissectors/asn1/tetra/packet-tetra-template.c b/epan/dissectors/asn1/tetra/packet-tetra-template.c
new file mode 100644
index 0000000000..2b8dea2183
--- /dev/null
+++ b/epan/dissectors/asn1/tetra/packet-tetra-template.c
@@ -0,0 +1,654 @@
+/* packet-tetra.c
+ * Routines for TETRA packet dissection
+ *
+ * Copyright (c) 2007 - 2011 Professional Mobile Communication Research Group,
+ * Beijing Institute of Technology, China
+ * Copyright (c) 2011 Holger Hans Peter Freyther
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * REF: ETSI EN 300 392-2 V3.2.1
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/conversation.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-tetra.h"
+
+#define PROTO_TAG_tetra "TETRA"
+
+void proto_register_tetra(void);
+void proto_reg_handoff_tetra(void);
+
+/* Wireshark ID of the tetra protocol */
+static int proto_tetra = -1;
+
+/* These are the handles of our subdissectors */
+static dissector_handle_t data_handle = NULL;
+
+static dissector_handle_t tetra_handle;
+
+static int global_tetra_port = 7074;
+
+/* Whether the capture data include carrier numbers */
+static gboolean include_carrier_number = TRUE;
+
+/* The following hf_* variables are used to hold the Wireshark IDs of
+* our header fields; they are filled out when we call
+* proto_register_field_array() in proto_register_tetra()
+*/
+/** Kts attempt at defining the protocol */
+static gint hf_tetra = -1;
+static gint hf_tetra_header = -1;
+static gint hf_tetra_channels = -1;
+static gint hf_tetra_channel1 = -1;
+static gint hf_tetra_channel2 = -1;
+static gint hf_tetra_channel3 = -1;
+static gint hf_tetra_txreg = -1;
+static gint hf_tetra_timer = -1;
+static gint hf_tetra_pdu = -1;
+static gint hf_tetra_rvstr = -1;
+static gint hf_tetra_carriernumber = -1;
+static gint hf_tetra_rxchannel1 = -1;
+static gint hf_tetra_rxchannel2 = -1;
+static gint hf_tetra_rxchannel3 = -1;
+static gint hf_tetra_crc = -1;
+static gint hf_tetra_len0 = -1;
+
+#include "packet-tetra-hf.c"
+
+/* Initialize the subtree pointers */
+/* These are the ids of the subtrees that we may be creating */
+static gint ett_tetra = -1;
+static gint ett_tetra_header = -1;
+static gint ett_tetra_length = -1;
+static gint ett_tetra_txreg = -1;
+static gint ett_tetra_text = -1;
+
+#include "packet-tetra-ett.c"
+
+static expert_field ei_tetra_channels_incorrect = EI_INIT;
+
+#include "packet-tetra-fn.c"
+
+static const value_string channeltypenames[] = {
+ { 0, "Reserved" },
+ { 1, "AACH" },
+ { 2, "SCH/F" },
+ { 3, "SCH/HD" },
+ { 4, "Unknown" },
+ { 5, "BSCH" },
+ { 6, "BNCH" },
+ { 7, "TCH/F" },
+ { 8, "TCH/H" },
+ { 9, "TCH4.8"},
+ { 10, "TCH7.2"},
+ { 11, "STCH"},
+ { 0, NULL }
+};
+
+static const value_string recvchanneltypenames[] = {
+ { 0, "Reserved" },
+ { 1, "AACH" },
+ { 2, "SCH/F" },
+ { 3, "SCH/HD" },
+ { 4, "Unknown" },
+ { 5, "BSCH" },
+ { 6, "BNCH" },
+ { 7, "TCH/F" },
+ { 8, "TCH/H" },
+ { 9, "TCH4.8"},
+ { 10, "TCH7.2"},
+ { 11, "STCH"},
+ { 15, "SCH/HU"},
+ { 0, NULL }
+};
+
+/* Get the length of received pdu */
+static gint get_rx_pdu_length(guint32 channel_type)
+{
+ gint len = 0;
+
+ switch(channel_type) {
+ case TETRA_CHAN_AACH:
+ len = 14;
+ break;
+ case TETRA_CHAN_SCH_F:
+ len = 268;
+ break;
+ case TETRA_CHAN_SCH_D:
+ len = 124; ;
+ break;
+ case TETRA_CHAN_BSCH:
+ len = 60;
+ break;
+ case TETRA_CHAN_BNCH:
+ len = 124;
+ break;
+ case TETRA_CHAN_TCH_F:
+ len = 274;
+ break;
+ case TETRA_CHAN_TCH_H:
+ len = 137;
+ break;
+ case TETRA_CHAN_TCH_2_4:
+ len = 144;
+ break;
+ case TETRA_CHAN_TCH_4_8:
+ len = 288;
+ break;
+ case TETRA_CHAN_STCH:
+ len = 124;
+ break;
+ case TETRA_CHAN_SCH_HU:
+ len = 92;
+ break;
+ default:
+ len = 0;
+ break;
+ }
+
+ return len;
+}
+
+/* Get the length of transmitted pdu */
+static gint get_tx_pdu_length(guint32 channel_type)
+{
+ gint len = 0;
+
+ switch(channel_type) {
+ case TETRA_CHAN_AACH:
+ len = 14;
+ break;
+ case TETRA_CHAN_SCH_F:
+ len = 268;
+ break;
+ case TETRA_CHAN_SCH_D:
+ len = 124;
+ break;
+ case TETRA_CHAN_BSCH:
+ len = 60;
+ break;
+ case TETRA_CHAN_BNCH:
+ len = 124;
+ break;
+ case TETRA_CHAN_TCH_F:
+ len = 274;
+ break;
+ case TETRA_CHAN_TCH_H:
+ len = 137;
+ break;
+ case TETRA_CHAN_TCH_2_4:
+ len = 144;
+ break;
+ case TETRA_CHAN_TCH_4_8:
+ len = 288;
+ break;
+ case TETRA_CHAN_STCH:
+ len = 124;
+ break;
+ }
+
+ return len;
+}
+
+void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tree, packet_info *pinfo)
+{
+ proto_item *tetra_sub_item;
+ proto_tree *tetra_sub_tree;
+ guint8 p;
+
+ tetra_sub_item = proto_tree_add_item(tree, hf_tetra_pdu,
+ pdu, 0, tvb_captured_length(pdu), ENC_NA);
+
+ tetra_sub_tree = proto_item_add_subtree(tetra_sub_item, ett_tetra);
+
+ switch(channel_type) {
+ case TETRA_CHAN_AACH:
+ dissect_AACH_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case TETRA_CHAN_SCH_F:
+ p = tvb_get_guint8(pdu, 0);
+ switch(p >> 6) {
+ case 0:
+ if (dir == TETRA_DOWNLINK)
+ dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ else
+ dissect_MAC_DATA_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case 1: /* MAC-FRAG or MAC-END */
+ if((p >> 5) == 3) {
+ if (dir == TETRA_DOWNLINK)
+ dissect_MAC_END_DOWNLINK_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ else
+ dissect_MAC_END_UPLINK_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+
+ } else
+ dissect_MAC_FRAG_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case 2:
+ dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ }
+ break;
+ case TETRA_CHAN_SCH_D:
+ p = tvb_get_guint8(pdu, 0);
+ switch(p >> 6) {
+ case 0:
+ dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case 1: /* MAC-FRAG or MAC-END */
+ if((p >> 5) == 3)
+ dissect_MAC_END_DOWN111_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ else
+ dissect_MAC_FRAG120_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case 2:
+ dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ }
+ break;
+ case TETRA_CHAN_SCH_HU:
+ p = tvb_get_guint8(pdu, 0);
+ switch(p >> 7) {
+ case 0: /* MAC-ACCESS */
+ dissect_MAC_ACCESS_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case 1: /* MAC-END-HU */
+ dissect_MAC_END_HU_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ }
+ break;
+ case TETRA_CHAN_BSCH:
+ col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "BSCH");
+ dissect_BSCH_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case TETRA_CHAN_BNCH:
+ col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "BNCH");
+ dissect_BNCH_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case TETRA_CHAN_STCH:
+ p = tvb_get_guint8(pdu, 0);
+ switch(p >> 6) {
+ case 0:
+ dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case 1: /* MAC-FRAG or MAC-END */
+ if((p >> 5) == 3) {
+ if (dir == TETRA_DOWNLINK)
+ dissect_MAC_END_DOWN111_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ else
+ dissect_MAC_END_UP114_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ } else
+ dissect_MAC_FRAG120_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ case 2:
+ dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
+ break;
+ }
+ break;
+ case TETRA_CHAN_TCH_F:
+ col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Voice");
+ break;
+ }
+}
+
+static void dissect_tetra_UNITDATA_IND(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tetra_tree, int offset)
+{
+ guint32 rxreg = 0;
+ guint32 channels = 0, i;
+ guint32 channel_type;
+ gint pdu_offset = 0;
+ proto_item *tetra_sub_item;
+ proto_tree *tetra_header_tree = NULL;
+ tvbuff_t *payload_tvb;
+
+ /* Length */
+ rxreg = tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint(tetra_tree, hf_tetra_len0, tvb, offset, 4, rxreg);
+
+ /* RvSteR */
+ offset += 4;
+ rxreg = tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint(tetra_tree, hf_tetra_rvstr, tvb, offset, 4, rxreg);
+
+ /* Logical channels */
+ channels = rxreg & 0x3;
+ tetra_sub_item = proto_tree_add_uint( tetra_tree, hf_tetra_channels, tvb, offset, 4, channels );
+ tetra_header_tree = proto_item_add_subtree(tetra_sub_item, ett_tetra);
+ if (channels > 3) {
+ expert_add_info(pinfo, tetra_sub_item, &ei_tetra_channels_incorrect);
+ channels = 3;
+ }
+
+ pdu_offset = offset + 4;
+ for(i = 0; i < channels; i++) {
+ gint byte_len, bits_len, remaining_bits;
+ gint hf_channel[3];
+
+ hf_channel[0] = hf_tetra_rxchannel1;
+ hf_channel[1] = hf_tetra_rxchannel2;
+ hf_channel[2] = hf_tetra_rxchannel3;
+
+ /* Channel type */
+ channel_type = (rxreg >> ((i + 1) * 4) ) & 0xf;
+ proto_tree_add_uint( tetra_header_tree, hf_channel[i], tvb, offset, 4, channel_type);
+
+ /* CRC */
+ proto_tree_add_boolean( tetra_header_tree, hf_tetra_crc, tvb, offset, 4, !(rxreg >> (i + 2) & 0x01));
+
+ /* PDU */
+ bits_len = get_rx_pdu_length(channel_type);
+ byte_len = bits_len >> 3;
+ remaining_bits = bits_len % 8;
+ if ((remaining_bits)!=0)
+ byte_len++;
+
+ payload_tvb = tvb_new_subset_length(tvb, pdu_offset, byte_len);
+ tetra_dissect_pdu(channel_type, TETRA_UPLINK, payload_tvb, tetra_header_tree, pinfo);
+
+ if ((remaining_bits)!=0)
+ byte_len--;
+ pdu_offset += byte_len;
+ }
+}
+
+static void dissect_tetra_UNITDATA_REQ(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tetra_tree, int offset)
+{
+ guint32 txreg = 0;
+ guint32 channels = 0, i;
+ guint32 channel_type;
+ gint pdu_offset = 0;
+ proto_item *tetra_sub_item = NULL;
+ proto_tree *tetra_header_tree = NULL;
+ tvbuff_t *payload_tvb;
+
+ /* TxR */
+ txreg = tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint(tetra_tree, hf_tetra_txreg, tvb, offset, 4, txreg);
+
+ /* Logical channels */
+ channels = (txreg & 0x3) + 1;
+ tetra_sub_item = proto_tree_add_uint( tetra_tree, hf_tetra_channels, tvb, offset, 4, channels );
+ tetra_header_tree = proto_item_add_subtree(tetra_sub_item, ett_tetra);
+ txreg >>= 2;
+ /* Skip 0000B */
+ if(channels == 2)
+ txreg >>= 4;
+
+ if (channels > 3) {
+ expert_add_info(pinfo, tetra_sub_item, &ei_tetra_channels_incorrect);
+ channels = 3;
+ }
+
+ pdu_offset = offset + 4;
+ for(i = 0; i < channels; i++) {
+ gint byte_len, bits_len, remaining_bits;
+ gint hf_channel[3];
+
+ hf_channel[0] = hf_tetra_channel1;
+ hf_channel[1] = hf_tetra_channel2;
+ hf_channel[2] = hf_tetra_channel3;
+
+ channel_type = txreg & 0xf;
+ proto_tree_add_uint( tetra_header_tree, hf_channel[i], tvb, offset, 4, channel_type);
+ txreg >>= 4;
+ /* PDU */
+ bits_len = get_tx_pdu_length(channel_type);
+ byte_len = bits_len >> 3;
+ remaining_bits = bits_len % 8;
+ if ((remaining_bits)!=0)
+ byte_len++;
+
+ payload_tvb = tvb_new_subset_length(tvb, pdu_offset, byte_len);
+ tetra_dissect_pdu(channel_type, TETRA_DOWNLINK, payload_tvb, tetra_header_tree, pinfo);
+ pdu_offset += byte_len;
+ }
+}
+
+static int
+dissect_tetra(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *tetra_item = NULL;
+ proto_item *tetra_sub_item = NULL;
+ proto_tree *tetra_tree = NULL;
+ proto_tree *tetra_header_tree = NULL;
+ guint16 type = 0;
+ guint8 carriernumber = -1;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_TAG_tetra);
+ /* Clear out stuff in the info column */
+ col_clear(pinfo->cinfo,COL_INFO);
+
+ /*
+ * This is not a good way of dissecting packets. The tvb length should
+ * be sanity checked so we aren't going past the actual size of the buffer.
+ */
+ type = tvb_get_guint8(tvb, 0);
+
+ if(include_carrier_number) {
+ carriernumber = tvb_get_guint8(tvb, 1);
+ }
+
+
+ switch(type) {
+ case 1:
+ if(include_carrier_number)
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-REQ, Carrier: %d",
+ carriernumber);
+ else
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-REQ");
+ break;
+ case 2:
+ if(include_carrier_number)
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-IND, Carrier: %d",
+ carriernumber);
+ else
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-IND");
+ break;
+ case 3:
+ if(include_carrier_number)
+ col_add_fstr(pinfo->cinfo, COL_INFO, "MAC-Timer, Carrier: %d",
+ carriernumber);
+ else
+ col_add_fstr(pinfo->cinfo, COL_INFO, "MAC-Timer");
+ break;
+ case 127:
+ if(include_carrier_number)
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-IND Done, Carrier: %d",
+ carriernumber);
+ else
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-IND Done");
+ break;
+ case 128:
+ if(include_carrier_number)
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-REQ Done, Carrier: %d",
+ carriernumber);
+ else
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-REQ Done");
+ break;
+ default:
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Unknown command: %d", type);
+ break;
+ }
+
+ /* if (tree) */ { /* we are being asked for details */
+ guint32 offset = 0;
+ guint32 txtimer = 0;
+ guint32 tslot = 0;
+
+ tetra_item = proto_tree_add_item(tree, proto_tetra, tvb, 0, -1, ENC_NA);
+ tetra_tree = proto_item_add_subtree(tetra_item, ett_tetra);
+
+ offset ++;
+
+ /* Carrier number */
+ if(include_carrier_number) {
+ proto_tree_add_uint(tetra_tree, hf_tetra_carriernumber, tvb, offset, 1, carriernumber);
+ offset ++;
+ }
+
+ /* Registers */
+ tetra_sub_item = proto_tree_add_item( tetra_tree, hf_tetra_header, tvb, offset, -1, ENC_NA );
+ tetra_header_tree = proto_item_add_subtree(tetra_sub_item, ett_tetra);
+
+ /* Timer */
+ txtimer = tvb_get_letohl(tvb, offset);
+ tetra_sub_item = proto_tree_add_item(tetra_header_tree, hf_tetra_timer, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ tslot = ((txtimer & 0x7800) >> 11);
+ if(tslot==4)
+ tslot = 3;
+ if(tslot==8)
+ tslot = 4;
+ proto_item_append_text(tetra_sub_item, " (Multiple frame: %d, Frame: %d, Slot: %d)",
+ txtimer & 0x3F, (txtimer & 0x7c0) >> 6,
+ tslot);
+
+ offset += 4;
+
+ switch(type) {
+ case 1: /* tetra-UNITDATA-REQ */
+ case 128: /* tetra-UNITDATA-REQ Done */
+ dissect_tetra_UNITDATA_REQ(tvb, pinfo, tetra_header_tree, offset);
+ break;
+ case 2: /* tetra-UNITDATA-IND */
+ case 127: /* tetra-UNITDATA-IND Done */
+ dissect_tetra_UNITDATA_IND(tvb, pinfo, tetra_header_tree, offset);
+ break;
+ case 3: /* MAC-Timer */
+ break;
+ default:
+ break;
+ }
+ }
+ return tvb_captured_length(tvb);
+}
+
+void proto_reg_handoff_tetra(void)
+{
+ static gboolean initialized=FALSE;
+
+ if (!initialized) {
+ data_handle = find_dissector("data");
+ tetra_handle = create_dissector_handle(dissect_tetra, proto_tetra);
+ dissector_add_uint("udp.port", global_tetra_port, tetra_handle);
+ }
+
+}
+
+
+void proto_register_tetra (void)
+{
+ module_t *tetra_module;
+ expert_module_t* expert_tetra;
+
+ /*
+ * A header field is something you can search/filter on.
+ *
+ * We create a structure to register our fields. It consists of an
+ * array of hf_register_info structures, each of which are of the format
+ * {&(field id), {name, abbrev, type, display, strings, bitmask, blurb, HFILL}}.
+ */
+ static hf_register_info hf[] = {
+ { &hf_tetra,
+ { "Data", "tetra.data", FT_NONE, BASE_NONE, NULL, 0x0,
+ "tetra PDU", HFILL }},
+ { &hf_tetra_header,
+ { "Registers", "tetra.header", FT_NONE, BASE_NONE, NULL, 0x0,
+ "TETRA Registers", HFILL }},
+ { &hf_tetra_channels,
+ { "Logical Channels", "tetra.channels", FT_UINT8, BASE_DEC, NULL, 0x0,
+ "The amount of logical channels", HFILL }},
+ { &hf_tetra_channel1,
+ { "Channel 1", "tetra.txchannel1", FT_UINT8, BASE_DEC, VALS(channeltypenames), 0x0,
+ "Logical channels type", HFILL }},
+ { &hf_tetra_channel2,
+ { "Channel 2", "tetra.txchannel2", FT_UINT8, BASE_DEC, VALS(channeltypenames), 0x0,
+ "Logical channels type", HFILL }},
+ { &hf_tetra_channel3,
+ { "Channel 3", "tetra.txchannel3", FT_UINT8, BASE_DEC, VALS(channeltypenames), 0x0,
+ "Logical channels type", HFILL }},
+ { &hf_tetra_txreg,
+ { "TxR", "tetra.txreg", FT_UINT16, BASE_HEX, NULL, 0x0,
+ "TX Register", HFILL }},
+ { &hf_tetra_rvstr,
+ { "RvSteR", "tetra.rvster", FT_UINT16, BASE_HEX, NULL, 0x0,
+ "Receive Status Register", HFILL }},
+ { &hf_tetra_carriernumber,
+ { "Carrier Number", "tetra.carrier", FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_tetra_rxchannel1,
+ { "Channel 1", "tetra.rxchannel1", FT_UINT8, BASE_DEC, VALS(recvchanneltypenames), 0x0,
+ "Logical channels type", HFILL }},
+ { &hf_tetra_rxchannel2,
+ { "Channel 2", "tetra.rxchannel2", FT_UINT8, BASE_DEC, VALS(recvchanneltypenames), 0x0,
+ "Logical channels type", HFILL }},
+ { &hf_tetra_rxchannel3,
+ { "Channel 3", "tetra.rxchannel3", FT_UINT8, BASE_DEC, VALS(recvchanneltypenames), 0x0,
+ "Logical channels type", HFILL }},
+ { &hf_tetra_timer,
+ { "Timer", "tetra.timer", FT_UINT16, BASE_HEX, NULL, 0x0,
+ "Timer Register", HFILL }},
+ { &hf_tetra_crc,
+ { "CRC", "tetra.crc", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+ "CRC result", HFILL }},
+ { &hf_tetra_len0,
+ { "Length", "tetra.len0", FT_UINT16, BASE_DEC, NULL, 0x0,
+ "Length of the PDU", HFILL }},
+ { &hf_tetra_pdu,
+ { "PDU", "tetra.pdu", FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }} ,
+
+#include "packet-tetra-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_tetra,
+ &ett_tetra_header,
+ &ett_tetra_length,
+ &ett_tetra_txreg,
+ &ett_tetra_text,
+#include "packet-tetra-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_tetra_channels_incorrect, { "tetra.channels.incorrect", PI_MALFORMED, PI_WARN, "Channel count incorrect, must be <= 3", EXPFILL }},
+ };
+
+ proto_tetra = proto_register_protocol("TETRA Protocol", "tetra", "tetra");
+ proto_register_field_array (proto_tetra, hf, array_length (hf));
+ proto_register_subtree_array (ett, array_length (ett));
+ register_dissector("tetra", dissect_tetra, proto_tetra);
+ expert_tetra = expert_register_protocol(proto_tetra);
+ expert_register_field_array(expert_tetra, ei, array_length(ei));
+
+ tetra_module = prefs_register_protocol(proto_tetra, NULL);
+ prefs_register_bool_preference(tetra_module, "include_carrier_number",
+ "The data include carrier numbers",
+ "Whether the captured data include carrier number",
+ &include_carrier_number);
+}
diff --git a/epan/dissectors/asn1/tetra/packet-tetra-template.h b/epan/dissectors/asn1/tetra/packet-tetra-template.h
new file mode 100644
index 0000000000..414eb8952e
--- /dev/null
+++ b/epan/dissectors/asn1/tetra/packet-tetra-template.h
@@ -0,0 +1,53 @@
+/* packet-tetra.h
+ * Routines for TETRA packet dissection
+ *
+ * Copyright (c) 2007 - 2011 Professional Mobile Communication Research Group,
+ * Beijing Institute of Technology, China
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * REF: ETSI EN 300 392-2 V3.2.1
+ */
+
+#ifndef PACKET_TETRA_H
+#define PACKET_TETRA_H
+
+enum {
+ TETRA_CHAN_AACH = 1,
+ TETRA_CHAN_SCH_F = 2,
+ TETRA_CHAN_SCH_D = 3,
+ TETRA_CHAN_BSCH = 5,
+ TETRA_CHAN_BNCH = 6,
+ TETRA_CHAN_TCH_F = 7,
+ TETRA_CHAN_TCH_H = 8,
+ TETRA_CHAN_TCH_2_4 = 9,
+ TETRA_CHAN_TCH_4_8 = 10,
+ TETRA_CHAN_STCH = 11,
+ TETRA_CHAN_SCH_HU = 15
+};
+
+enum {
+ TETRA_UPLINK,
+ TETRA_DOWNLINK
+};
+
+void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *head, packet_info *pinfo);
+
+/*#include "packet-tetra-exp.h"*/
+#endif /* PACKET_TETRA_H */
diff --git a/epan/dissectors/asn1/tetra/tetra.asn b/epan/dissectors/asn1/tetra/tetra.asn
new file mode 100644
index 0000000000..e197d13fb6
--- /dev/null
+++ b/epan/dissectors/asn1/tetra/tetra.asn
@@ -0,0 +1,2337 @@
+-- TETRA packet dissection
+-- Copyright (c) 2007 - 2013 Professional Mobile Communication Research Group,
+-- Beijing Institute of Technology, China
+--
+
+UMAC-MODULE DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+AACH ::= SEQUENCE
+{
+ function INTEGER(0..3),
+ field1 INTEGER(0..63),
+ field2 INTEGER(0..63)
+}
+
+BSCH ::= SEQUENCE
+{
+ system-code System-Code,
+ colour-code Colour-Code,
+ timeslot-number Timeslot-Number,
+ frame-number Frame-Number,
+ multiple-frame-number Multiple-Frame-Number,
+ sharing-mod Sharing-Mod,
+ ts-reserved-frames TS-Reserved-Frames,
+ u-plane-dtx U-Plane-DTX,
+ frame-18-extension Frame-18-Extension,
+ reserved Reserved ,
+ tm-sdu MLE-Sync
+}
+ System-Code ::= ENUMERATED
+ {
+ ets-300-392-2(0),
+ ets-300-392-2anden-300-392-7(1),
+ en-300-392-2-v2-3-2orlateranden-300-392-7(2),
+ v-d-reserved(3),
+ v-d-reserved(4),
+ v-d-reserved(5),
+ v-d-reserved(6),
+ v-d-reserved(7),
+ reserved(8),
+ reserved(9),
+ direct-mode-operation(10),
+ direct-mode-operation(11),
+ direct-mode-operation(12),
+ direct-mode-operation(13),
+ direct-mode-operation(14),
+ direct-mode-operation(15)
+ }
+ Colour-Code ::= ENUMERATED
+ {
+ pre-defined(0),
+ operator-defined(1),
+ operator-defined(2),
+ operator-defined(3),
+ operator-defined(4),
+ operator-defined(5),
+ operator-defined(6),
+ operator-defined(7),
+ operator-defined(8),
+ operator-defined(9),
+ operator-defined(10),
+ operator-defined(11),
+ operator-defined(12),
+ operator-defined(13),
+ operator-defined(14),
+ operator-defined(15),
+ operator-defined(16),
+ operator-defined(17),
+ operator-defined(18),
+ operator-defined(19),
+ operator-defined(20),
+ operator-defined(21),
+ operator-defined(22),
+ operator-defined(23),
+ operator-defined(24),
+ operator-defined(25),
+ operator-defined(26),
+ operator-defined(27),
+ operator-defined(28),
+ operator-defined(29),
+ operator-defined(30),
+ operator-defined(31),
+ operator-defined(32),
+ operator-defined(33),
+ operator-defined(34),
+ operator-defined(35),
+ operator-defined(36),
+ operator-defined(37),
+ operator-defined(38),
+ operator-defined(39),
+ operator-defined(40),
+ operator-defined(41),
+ operator-defined(42),
+ operator-defined(43),
+ operator-defined(44),
+ operator-defined(45),
+ operator-defined(46),
+ operator-defined(47),
+ operator-defined(48),
+ operator-defined(49),
+ operator-defined(50),
+ operator-defined(51),
+ operator-defined(52),
+ operator-defined(53),
+ operator-defined(54),
+ operator-defined(55),
+ operator-defined(56),
+ operator-defined(57),
+ operator-defined(58),
+ operator-defined(59),
+ operator-defined(60),
+ operator-defined(61),
+ operator-defined(62),
+ operator-defined(63)
+ }
+ Timeslot-Number ::= ENUMERATED
+ {
+ timeslot-1(0),
+ timeslot-2(1),
+ timeslot-3(2),
+ timeslot-4(3)
+ }
+ Frame-Number ::= ENUMERATED
+ {
+ reserved(0),
+ frame-1(1),
+ frame-2(2),
+ frame-3(3),
+ frame-4(4),
+ frame-5(5),
+ frame-6(6),
+ frame-7(7),
+ frame-8(8),
+ frame-9(9),
+ frame-10(10),
+ frame-11(11),
+ frame-12(12),
+ frame-13(13),
+ frame-14(14),
+ frame-15(15),
+ frame-16(16),
+ frame-17(17),
+ frame-18(18),
+ reserved(19),
+ reserved(20),
+ reserved(21),
+ reserved(22),
+ reserved(23),
+ reserved(24),
+ reserved(25),
+ reserved(26),
+ reserved(27),
+ reserved(28),
+ reserved(29),
+ reserved(30),
+ reserved(31)
+ }
+ Multiple-Frame-Number ::= ENUMERATED
+ {
+ reserved(0),
+ multiframe-1(1),
+ multiframe-2(2),
+ multiframe-3(3),
+ multiframe-4(4),
+ multiframe-5(5),
+ multiframe-6(6),
+ multiframe-7(7),
+ multiframe-8(8),
+ multiframe-9(9),
+ multiframe-10(10),
+ multiframe-11(11),
+ multiframe-12(12),
+ multiframe-13(13),
+ multiframe-14(14),
+ multiframe-15(15),
+ multiframe-16(16),
+ multiframe-17(17),
+ multiframe-18(18),
+ multiframe-19(19),
+ multiframe-20(20),
+ multiframe-21(21),
+ multiframe-22(22),
+ multiframe-23(23),
+ multiframe-24(24),
+ multiframe-25(25),
+ multiframe-26(26),
+ multiframe-27(27),
+ multiframe-28(28),
+ multiframe-29(29),
+ multiframe-30(30),
+ multiframe-31(31),
+ multiframe-32(32),
+ multiframe-33(33),
+ multiframe-34(34),
+ multiframe-35(35),
+ multiframe-36(36),
+ multiframe-37(37),
+ multiframe-38(38),
+ multiframe-39(39),
+ multiframe-40(40),
+ multiframe-41(41),
+ multiframe-42(42),
+ multiframe-43(43),
+ multiframe-44(44),
+ multiframe-45(45),
+ multiframe-46(46),
+ multiframe-47(47),
+ multiframe-48(48),
+ multiframe-49(49),
+ multiframe-50(50),
+ multiframe-51(51),
+ multiframe-52(52),
+ multiframe-53(53),
+ multiframe-54(54),
+ multiframe-55(55),
+ multiframe-56(56),
+ multiframe-57(57),
+ multiframe-58(58),
+ multiframe-59(59),
+ multiframe-60(60),
+ reserved(61),
+ reserved(62),
+ reserved(63)
+ }
+ Sharing-Mod ::= ENUMERATED
+ {
+ continuous-transmission(0),
+ carrier-sharing(1),
+ mcch-sharing(2),
+ traffic-carrier-sharing(3)
+ }
+ TS-Reserved-Frames ::= ENUMERATED
+ {
+ frame-reserved-1(0),
+ frames-reserved-2(1),
+ frames-reserved-3(2),
+ frames-reserved-4(3),
+ frames-reserved-6(4),
+ frames-reserved-9(5),
+ frames-reserved-12(6),
+ frames-reserved-18(7)
+ }
+ U-Plane-DTX ::= ENUMERATED
+ {
+ not-allowed(0),
+ allowed(1)
+ }
+ Frame-18-Extension ::= ENUMERATED
+ {
+ not-allowed(0),
+ allowed(1)
+ }
+ Reserved ::= ENUMERATED
+ {
+ default(0),
+ not-used(1)
+ }
+ MLE-Sync ::= SEQUENCE
+ {
+ mcc INTEGER(0..1023),
+ mnc INTEGER(0..16383),
+ neighbour-cell-broadcast INTEGER(0..3),
+ cell-service-level INTEGER(0..3),
+ late-entry-information INTEGER(0..1)
+ }
+
+
+BNCH ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ broadcast-type INTEGER(0..3),
+ main-carrier INTEGER(0..4095),
+ frequency-band INTEGER(0..15),
+ offset Offset,
+ duplex-spacing INTEGER(0..7),
+ reverse-operation Reverse-Operation,
+ sencond-ctl-carrier Sencond-Ctl-Carrier,
+ ms-txpwr-max-cell MS-TXPWR-MAX-CELL,
+ rxlev-access-min RXLEV-ACCESS-MIN ,
+ access-parameter ACCESS-PARAMETER,
+ radio-downlink-timeout RADIO-DOWNLINK-TIMEOUT,
+ hyperframe-or-cck CHOICE
+ {
+ hyperframe INTEGER(0..65535),
+ cckid INTEGER(0..65535)
+ },
+ optional-params CHOICE
+ {
+ even-multiframe TS-COMMON-FRAMES,
+ odd-multiframe TS-COMMON-FRAMES,
+ access-a-code Default-Code-A,
+ extend-service Extended-Services-Broadcast
+ },
+ la INTEGER(0..16383),
+ subscriber-class Subscriber-class,
+ registriation INTEGER(0..1),
+ de-registration INTEGER(0..1),
+ priority-cell INTEGER(0..1),
+ minimum-mode-service INTEGER(0..1),
+ migration INTEGER(0..1),
+ system-wide-service INTEGER(0..1),
+ tetra-voice-service INTEGER(0..1),
+ circuit-mode-data-service INTEGER(0..1),
+ reserved INTEGER(0..1),
+ sndcp-service INTEGER(0..1),
+ air-interface-encryption INTEGER(0..1),
+ advanced-link-support INTEGER(0..1)
+}
+ Offset ::= ENUMERATED
+ {
+ offset-0(0),
+ offset-positive-6-point-25(1),
+ offset-minus-6-point-25(2),
+ offset-12-point-5(3)
+ }
+
+ Reverse-Operation ::= ENUMERATED
+ {
+ normal(0),
+ reverse(1)
+ }
+ Sencond-Ctl-Carrier ::= ENUMERATED
+ {
+ none(0),
+ timeslot-2(1),
+ timeslots-2and3(2),
+ timeslots-2and3and4(3)
+ }
+ MS-TXPWR-MAX-CELL ::= ENUMERATED
+ {
+ reserved(0),
+ dbm-15(1),
+ dbm-20(2),
+ dbm-25(3),
+ dbm-30(4),
+ dbm-35(5),
+ dbm-40(6),
+ dbm-45(7)
+ }
+ RXLEV-ACCESS-MIN ::= ENUMERATED
+ {
+ dbm-125(0),
+ dbm-120(1),
+ dbm-115(2),
+ dbm-110(3),
+ dbm-105(4),
+ dbm-100(5),
+ dbm-95(6),
+ dnm-90(7),
+ dbm-85(8),
+ dbm-80(9),
+ dbm-75(10),
+ dbm-70(11),
+ dbm-65(12),
+ dbm-60(13),
+ dbm-55(14),
+ dbm-50(15)
+ }
+ ACCESS-PARAMETER ::= ENUMERATED
+ {
+ dbm-53(0),
+ dbm-51(1),
+ dbm-49(2),
+ dbm-47(3),
+ dbm-45(4),
+ dbm-43(5),
+ dbm-41(6),
+ dbm-39(7),
+ dbm-37(8),
+ dbm-35(9),
+ dbm-33(10),
+ dbm-31(11),
+ dbm-29(12),
+ dbm-27(13),
+ dbm-25(14),
+ dbm-23(15)
+ }
+ RADIO-DOWNLINK-TIMEOUT ::= ENUMERATED
+ {
+ disable(0),
+ timeslots-144(1),
+ timeslots-288(2),
+ timeslots-432(3),
+ timeslots-576(4),
+ timeslots-720(5),
+ timeslots-864(6),
+ timeslots-1008(7),
+ timeslots-1152(8),
+ timeslots-1296(9),
+ timeslots-1440(10),
+ timeslots-1584(11),
+ timeslots-1728(12),
+ timeslots-1872(13),
+ timeslots-2016(14),
+ timeslots-2160(15)
+ }
+ TS-COMMON-FRAMES ::= SEQUENCE
+ {
+ frame1 FRAME,
+ frame2 FRAME,
+ frame3 FRAME,
+ frame4 FRAME,
+ frame5 FRAME,
+ frame6 FRAME,
+ frame7 FRAME,
+ frame8 FRAME,
+ frame9 FRAME,
+ frame10 FRAME,
+ frame11 FRAME,
+ frame12 FRAME,
+ frame13 FRAME,
+ frame14 FRAME,
+ frame15 FRAME,
+ frame16 FRAME,
+ frame17 FRAME,
+ frame18 FRAME
+ }
+ FRAME ::= ENUMERATED
+ {
+ not-common(0),
+ common(1)
+ }
+ Default-Code-A ::= SEQUENCE
+ {
+ imm IMM,
+ wt WT,
+ nu NU,
+ frame-len-factor Frame-Len-Factor,
+ timeslot-pointer Timeslot-Pointer,
+ min-pdu-priority Min-Pdu-Priority
+ }
+ IMM ::= ENUMERATED
+ {
+ always-randomize(0),
+ randomize-after-imm-tdma(1),
+ randomize-after-imm-tdma(2),
+ randomize-after-imm-tdma(3),
+ randomize-after-imm-tdma(4),
+ randomize-after-imm-tdma(5),
+ randomize-after-imm-tdma(6),
+ randomize-after-imm-tdma(7),
+ randomize-after-imm-tdma(8),
+ randomize-after-imm-tdma(9),
+ randomize-after-imm-tdma(10),
+ randomize-after-imm-tdma(11),
+ randomize-after-imm-tdma(12),
+ randomize-after-imm-tdma(13),
+ randomize-after-imm-tdma(14),
+ immediate-access-allowed(15)
+ }
+ WT ::= ENUMERATED
+ {
+ reserved(0),
+ response-within-wt-downlink(1),
+ response-within-wt-downlink(2),
+ response-within-wt-downlink(3),
+ response-within-wt-downlink(4),
+ response-within-wt-downlink(5),
+ response-within-wt-downlink(6),
+ response-within-wt-downlink(7),
+ response-within-wt-downlink(8),
+ response-within-wt-downlink(9),
+ response-within-wt-downlink(10),
+ response-within-wt-downlink(11),
+ response-within-wt-downlink(12),
+ response-within-wt-downlink(13),
+ response-within-wt-downlink(14),
+ response-within-wt-downlink(15)
+ }
+ NU ::= ENUMERATED
+ {
+ no-random(0),
+ random-1(1),
+ random-2(2),
+ random-3(3),
+ random-4(4),
+ random-5(5),
+ random-6(6),
+ random-7(7),
+ random-8(8),
+ random-9(9),
+ random-10(10),
+ random-11(11),
+ random-12(12),
+ random-13(13),
+ random-14(14),
+ random-15(15)
+ }
+ Frame-Len-Factor ::= ENUMERATED
+ {
+ multiply-1(0),
+ multiply-4(1)
+ }
+ Timeslot-Pointer ::= ENUMERATED
+ {
+ same-as-downlink(0),
+ timeslot-4(1),
+ timeslot-bit-map(2),
+ timeslot-bit-map(3),
+ timeslot-bit-map(4),
+ timeslot-bit-map(5),
+ timeslot-bit-map(6),
+ timeslot-bit-map(7),
+ timeslot-bit-map(8),
+ timeslot-bit-map(9),
+ timeslot-bit-map(10),
+ timeslot-bit-map(11),
+ timeslot-bit-map(12),
+ timeslot-bit-map(13),
+ timeslot-bit-map(14),
+ all-four-timeslots(15)
+ }
+ Min-Pdu-Priority ::= ENUMERATED
+ {
+ priority-0(0),
+ priority-1(1),
+ priority-2(2),
+ priority-3(3),
+ priority-4(4),
+ priority-5(5),
+ priority-6(6),
+ priority-7(7)
+ }
+ Extended-Services-Broadcast ::= SEQUENCE
+ {
+ security-information INTEGER(0..255),
+ sds-tl-addressing-method SDS-TL-Addressing-Method,
+ gck-supported INTEGER(0..1),
+ section CHOICE
+ {
+ present-1 PRESENT1,
+ present-2 INTEGER(0..127),
+ present-3 INTEGER(0..127),
+ present-4 INTEGER(0..127)
+ }
+ }
+ SDS-TL-Addressing-Method ::= ENUMERATED
+ {
+ reserved(0),
+ service-centre(1),
+ never-use-service-centre(2),
+ ms-choice-to-use-service-centre(3)
+ }
+ PRESENT1 ::=SEQUENCE
+ {
+ data-priority-supported Data-Priority-Supported,
+ reserved INTEGER(0..7),
+ section-2-information Section-Information,
+ section-3-information Section-Information,
+ section-4-information Section-Information
+ }
+ Data-Priority-Supported ::=ENUMERATED
+ {
+ not-supported(0),
+ supported(1)
+ }
+ Section-Information ::=ENUMERATED
+ {
+ no-information(0),
+ futher-information(1)
+ }
+
+
+
+
+MAC-ACCESS ::= SEQUENCE
+{
+ pdu-type INTEGER(0..1),
+ fill-bit-indication Fill-Bit-Indication,
+ encrypted-flag Encrypted-Flag,
+ address Address,
+ data CHOICE
+ {
+ sdu1 U-LLC-PDU,
+ sdu2 ComplexSDU
+ }
+}
+
+Address ::= CHOICE
+{
+ ssi INTEGER(0..16777215),
+ eventLabel INTEGER(0..1023),
+ ussi INTEGER(0..16777215),
+ smi INTEGER(0..16777215)
+}
+U-LLC-PDU ::= CHOICE
+{
+ bl-adata U-BL-ADATA,
+ bl-data U-BL-DATA,
+ bl-udata U-MLE-PDU,
+ bl-ack U-BL-ACK,
+ bl-adata-fcs U-BL-ADATA-FCS,
+ bl-data-fcs U-BL-DATA-FCS,
+ bl-udata-fcs U-MLE-PDU-FCS,
+ bl-ack-fcs U-BL-ACK-FCS,
+ al-setup NULL,
+ al-data NULL,
+ al-udata NULL,
+ al-ack NULL,
+ al-reconnect NULL,
+ reserve1 NULL,
+ reserve2 NULL,
+ al-disc NULL
+}
+ U-BL-ACK-FCS ::= SEQUENCE
+{
+ nr INTEGER(0..1),
+ tl-sdu U-MLE-PDU,
+ fcs OCTET STRING(SIZE(4))
+}
+
+ U-MLE-PDU-FCS ::= SEQUENCE
+ {
+ u-mle-pdu U-MLE-PDU,
+ fcs OCTET STRING(SIZE(4))
+ }
+
+ U-BL-DATA-FCS ::= SEQUENCE
+ {
+ ns INTEGER(0..1),
+ tl-sdu U-MLE-PDU,
+ fcs OCTET STRING(SIZE(4))
+ }
+
+U-BL-ADATA-FCS ::= SEQUENCE
+ {
+ nr INTEGER(0..1),
+ ns INTEGER(0..1),
+ tl-sdu U-MLE-PDU,
+ fcs OCTET STRING(SIZE(4))
+ }
+
+
+U-MLE-PDU ::= CHOICE
+{
+ u-mle-reserved1 NULL,
+ mm U-MM-PDU,
+ cmce U-CMCE-PDU,
+ u-mle-reserved2 NULL,
+ sndcp NULL,
+ mle UMLE-PDU,
+ tetra-management-entity-protocol NULL,
+ u-mle-reserved3 NULL
+}
+ComplexSDU ::= SEQUENCE
+{
+ lengthIndicationOrCapacityRequest CHOICE
+ {
+ lengthIndication LengthIndication,
+ capacityRequest FRAG
+ },
+ tm-sdu U-LLC-PDU
+}
+FRAG ::= SEQUENCE
+{
+ frag Frag1,
+ reservation-requirement SLOT-APPLY
+}
+
+LengthIndication ::= ENUMERATED
+{
+ null(0),
+ reserved-1(1),
+ reserved-2(2),
+ bits-24(3),
+ bits-32(4),
+ bits-40(5),
+ bits-48(6),
+ bits-56(7),
+ bits-64(8),
+ bits-72(9),
+ bits-80(10),
+ bits-88(11),
+ bits-96(12),
+ reserved-13(13),
+ reserved-14(14),
+ reserved-15(15),
+ reserved-16(16),
+ reserved-17(17),
+ reserved-18(18),
+ reserved-19(19),
+ reserved-20(20),
+ reserved-21(21),
+ reserved-22(22),
+ reserved-23(23),
+ reserved-24(24),
+ reserved-25(25),
+ reserved-26(26),
+ reserved-27(27),
+ reserved-28(28),
+ reserved-29(29),
+ reserved-30(30),
+ reserved-31(31)
+}
+SLOT-APPLY ::= ENUMERATED
+{
+ subslot(0),
+ slot-1(1),
+ slot-2(2),
+ slot-3(3),
+ slot-4(4),
+ slot-5(5),
+ slot-6(6),
+ slot-8(7),
+ slot-10(8),
+ slot-13(9),
+ slot-17(10),
+ slot-24(11),
+ slot-34(12),
+ slot-51(13),
+ slot-68(14),
+ more-than-68(15)
+}
+Frag1 ::= ENUMERATED
+{
+ not-fragmented(0),
+ start-of-fragmentation(1)
+}
+
+MAC-DATA ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ fill-bit-indication Fill-Bit-Indication,
+ encrypted-flag Encrypted-Flag,
+ address Address,
+ lengthIndicationOrCapacityRequest CHOICE
+ {
+ lengthIndication LengthIndicationMacData,
+ capacityRequest FRAG6
+ },
+ tm-sdu U-LLC-PDU
+}
+Fill-Bit-Indication ::= ENUMERATED
+ {
+ no-present(0),
+ present(1)
+ }
+Encrypted-Flag ::= ENUMERATED
+ {
+ not-encrypted(0),
+ encrypted(1)
+ }
+LengthIndicationMacData ::= ENUMERATED
+{
+ null(0),
+ reserved-1(1),
+ reserved-2(2),
+ bits-24(3),
+ bits-32(4),
+ bits-40(5),
+ bits-48(6),
+ bits-56(7),
+ bits-64(8),
+ bits-72(9),
+ bits-80(10),
+ bits-88(11),
+ bits-96(12),
+ bits-104(13),
+ bits-112(14),
+ bits-120(15),
+ bits-128(16),
+ bits-136(17),
+ bits-144(18),
+ bits-152(19),
+ bits-160(20),
+ bits-168(21),
+ bits-176(22),
+ bits-184(23),
+ bits-192(24),
+ bits-200(25),
+ bits-208(26),
+ bits-216(27),
+ bits-224(28),
+ bits-232(29),
+ bits-240(30),
+ bits-248(31),
+ bits-256(32),
+ bits-264(33),
+ bits-272(34),
+ reserved-35(35),
+ reserved-36(36),
+ reserved-37(37),
+ reserved-38(38),
+ reserved-39(39),
+ reserved-40(40),
+ reserved-41(41),
+ reserved-42(42),
+ reserved-43(43),
+ reserved-44(44),
+ reserved-45(45),
+ reserved-46(46),
+ reserved-47(47),
+ reserved-48(48),
+ reserved-49(49),
+ reserved-50(50),
+ reserved-51(51),
+ reserved-52(52),
+ reserved-53(53),
+ reserved-54(54),
+ reserved-55(55),
+ reserved-56(56),
+ reserved-57(57),
+ reserved-58(58),
+ reserved-59(59),
+ reserved-60(60),
+ reserved-61(61),
+ second-halfslot-stolen(62),
+ start-frag(63)
+}
+
+FRAG6 ::= SEQUENCE
+{
+ frag Frag1,
+ reservation-requirement SLOT-APPLY,
+ reserved INTEGER(0..1)
+}
+
+MAC-FRAG ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ sub-type INTEGER(0..1),
+ fill-bit-indication Fill-Bit-Indication,
+ tm-sdu BIT STRING(SIZE(264))
+}
+
+MAC-FRAG120 ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ sub-type INTEGER(0..1),
+ fill-bit-indication Fill-Bit-Indication,
+ tm-sdu BIT STRING(SIZE(120))
+}
+
+MAC-END-UPLINK ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ sub-type INTEGER(0..1),
+ fill-bit-indication Fill-Bit-Indication,
+ lengthInd-ReservationReq LengthIndOrReservationReq,
+ tm-sdu BIT STRING(SIZE(258))
+}
+
+MAC-END-UP114 ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ pdu-subtype INTEGER(0..1),
+ fill-bit-indication Fill-Bit-Indication,
+ lengthInd-ReservationReq LengthIndOrReservationReq,
+ tm-sdu BIT STRING(SIZE(114))
+}
+
+LengthIndOrReservationReq ::= ENUMERATED
+{
+ reserved-0(0),
+ reserved-1(1),
+ bits-16(2),
+ bits-24(3),
+ bits-32(4),
+ bits-40(5),
+ bits-48(6),
+ bits-56(7),
+ bits-64(8),
+ bits-72(9),
+ bits-80(10),
+ bits-88(11),
+ bits-96(12),
+ bits-104(13),
+ bits-112(14),
+ bits-120(15),
+ bits-128(16),
+ bits-136(17),
+ bits-144(18),
+ bits-152(19),
+ bits-160(20),
+ bits-168(21),
+ bits-176(22),
+ bits-184(23),
+ bits-192(24),
+ bits-200(25),
+ bits-208(26),
+ bits-216(27),
+ bits-224(28),
+ bits-232(29),
+ bits-240(30),
+ bits-248(31),
+ bits-256(32),
+ bits-264(33),
+ bits-272(34),
+ reserved-35(35),
+ reserved-36(36),
+ reserved-37(37),
+ reserved-38(38),
+ reserved-39(39),
+ reserved-40(40),
+ reserved-41(41),
+ reserved-42(42),
+ reserved-43(43),
+ reserved-44(44),
+ reserved-45(45),
+ reserved-46(46),
+ reserved-47(47),
+ subslot(48),
+ slot-1(49),
+ slot-2(50),
+ slot-3(51),
+ slot-4(52),
+ slot-5(53),
+ slot-6(54),
+ slot-8(55),
+ slot-10(56),
+ slot-13(57),
+ slot-17(58),
+ slot-24(59),
+ slot-34(60),
+ slot-51(61),
+ slot-68(62),
+ more-than-68(63)
+}
+
+MAC-END-HU ::= SEQUENCE
+{
+ pdu-type INTEGER(0..1),
+ fill-bit-indication Fill-Bit-Indication,
+ lengthInd-ReservationReq CHOICE
+ {
+ lengthInd LengthIndMacHu,
+ reservation-requirement SLOT-APPLY
+ },
+ tm-sdu BIT STRING(SIZE(85))
+}
+LengthIndMacHu ::= ENUMERATED
+{
+ reserved-0(0),
+ bits-8(1),
+ bits-16(2),
+ bits-24(3),
+ bits-32(4),
+ bits-40(5),
+ bits-48(6),
+ bits-56(7),
+ bits-64(8),
+ bits-72(9),
+ bits-80(10),
+ bits-88(11),
+ bits-96(12),
+ reserved-13(13),
+ reserved-14(14),
+ reserved-15(15)
+}
+
+MAC-END-DOWNLINK ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ sub-type INTEGER(0..1),
+ fill-bit-indication Fill-Bit-Indication,
+ position-of-grant Position-Of-Grant,
+ lengthIndication LengthIndicationMacEndDl,
+ slot-granting CHOICE
+ {
+ none NULL,
+ slot-granting-param SlotGranting
+ },
+ channel-allocation CHOICE
+ {
+ none NULL,
+ channel-allocation-element ChannelAllocation
+ },
+ tm-sdu BIT STRING(SIZE(255))
+}
+
+SlotGranting ::= SEQUENCE
+{
+ capacity-allocation Capacity-Allocation,
+ granting-delay Granting-delay
+ }
+
+
+ Capacity-Allocation ::= ENUMERATED
+ {
+ first-subslot(0),
+ slot-allocated-1(1),
+ slot-allocated-2(2),
+ slot-allocated-3(3),
+ slot-allocated-4(4),
+ slot-allocated-5(5),
+ slot-allocated-6(6),
+ slot-allocated-8(7),
+ slot-allocated-10(8),
+ slot-allocated-13(9),
+ slot-allocated-17(10),
+ slot-allocated-24(11),
+ slot-allocated-34(12),
+ lot-allocated-51(13),
+ slot-allocated-68(14),
+ second-subslot(15)
+ }
+Granting-delay ::= ENUMERATED
+ {
+ capacity-allocation-at-next-opportunity(0),
+ number-of-opportunities-delay(1),
+ number-of-opportunities-delay(2),
+ number-of-opportunities-delay(3),
+ number-of-opportunities-delay(4),
+ number-of-opportunities-delay(5),
+ number-of-opportunities-delay(6),
+ number-of-opportunities-delay(7),
+ number-of-opportunities-delay(8),
+ number-of-opportunities-delay(9),
+ number-of-opportunities-delay(10),
+ number-of-opportunities-delay(11),
+ number-of-opportunities-delay(12),
+ number-of-opportunities-delay(13),
+ allocation-starts-at-frame-18(14),
+ wait(15)
+ }
+
+
+ChannelAllocation ::= SEQUENCE
+{
+ allocation-type ENUMERATED {replace(0), add(1), quit(2), reserved(3)},
+ timeslot-assigned Timeslot-Assigned,
+ up-down-assigned ENUMERATED {reserve(0), downlink-only(1), uplink-only(2), uplink-downlink(3)},
+ clch-permission CLCH-permission,
+ cell-change Cell-change-flag,
+ carrier-number INTEGER(0..4095),
+ extend-carrier-flag CHOICE{none NULL,extended Extended-carrier-flag} ,
+ monitoring-pattern CHOICE{one Monitoring-pattern,none1 NULL,none2 NULL,none3 NULL}
+}
+Timeslot-Assigned ::= ENUMERATED
+{
+ go-to-control-channel(0),
+ timeslot-4(1),
+ timeslot-bit-map(2),
+ timeslot-bit-map(3),
+ timeslot-bit-map(4),
+ timeslot-bit-map(5),
+ timeslot-bit-map(6),
+ timeslot-bit-map(7),
+ timeslot-bit-map(8),
+ timeslot-bit-map(9),
+ timeslot-bit-map(10),
+ timeslot-bit-map(11),
+ timeslot-bit-map(12),
+ timeslot-bit-map(13),
+ timeslot-bit-map(14),
+ all-four-timeslots(15)
+}
+CLCH-permission ::= ENUMERATED
+ {
+ no-permission(0),
+ permission(1)
+ }
+ Cell-change-flag ::= ENUMERATED
+ {
+ no-change(0),
+ change(1)
+ }
+ Extended-carrier-flag ::= SEQUENCE
+ {
+ frequency-band INTEGER(0..15),
+ offset INTEGER(0..3),
+ duplex-spacing INTEGER(0..7),
+ reverse-operation ENUMERATED{normal(0),reverse(1)}
+ }
+ Monitoring-pattern ::= ENUMERATED
+ {
+ no(0),
+ one(1),
+ two(2),
+ three(3)
+ }
+
+
+
+MAC-END-DOWN111 ::= SEQUENCE
+{
+ pdu-type INTEGER(0..7),
+ fill-bit-ind BOOLEAN,
+ position-of-grant INTEGER(0..1),
+ lengthIndication LengthIndicationMacEndDl,
+ slot-granting CHOICE
+ {
+ none NULL,
+ slot-granting-param SlotGranting
+ },
+ channel-allocation CHOICE
+ {
+ none NULL,
+ channel-allocation-element ChannelAllocation
+ },
+ tm-sdu BIT STRING(SIZE(111))
+}
+LengthIndicationMacEndDl ::= ENUMERATED
+{
+ reserved-0(0),
+ reserved-1(1),
+ bits-16(2),
+ bits-24(3),
+ bits-32(4),
+ bits-40(5),
+ bits-48(6),
+ bits-56(7),
+ bits-64(8),
+ bits-72(9),
+ bits-80(10),
+ bits-88(11),
+ bits-96(12),
+ bits-104(13),
+ bits-112(14),
+ bits-120(15),
+ bits-128(16),
+ bits-136(17),
+ bits-144(18),
+ bits-152(19),
+ bits-160(20),
+ bits-168(21),
+ bits-176(22),
+ bits-184(23),
+ bits-192(24),
+ bits-200(25),
+ bits-208(26),
+ bits-216(27),
+ bits-224(28),
+ bits-232(29),
+ bits-240(30),
+ bits-248(31),
+ bits-256(32),
+ bits-264(33),
+ bits-272(34),
+ reserved-35(35),
+ reserved-36(36),
+ reserved-37(37),
+ reserved-38(38),
+ reserved-39(39),
+ reserved-40(40),
+ reserved-41(41),
+ reserved-42(42),
+ reserved-43(43),
+ reserved-44(44),
+ reserved-45(45),
+ reserved-46(46),
+ reserved-47(47),
+ reserved-48(48),
+ reserved-49(49),
+ reserved-50(50),
+ reserved-51(51),
+ reserved-52(52),
+ reserved-53(53),
+ reserved-54(54),
+ reserved-55(55),
+ reserved-56(56),
+ reserved-57(57),
+ reserved-58(58),
+ reserved-59(59),
+ reserved-60(60),
+ reserved-61(61),
+ reserved-62(62),
+ reserved-63(63)
+}
+
+MAC-RESOURCE ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ fill-bit-indication Fill-Bit-Indication,
+ position-of-grant Position-Of-Grant,
+ encryption-mode INTEGER(0..3),
+ access-ack ENUMERATED{undefined(0),random-access-acknowledged(1)},
+ lengthIndication LengthIndicationMacResource,
+ address AddressMacResource
+}
+OTHER-DATA ::= SEQUENCE
+{
+ power-control CHOICE
+ {
+ none NULL,
+ powerParameters PowerControl
+ },
+ slot-granting CHOICE
+ {
+ none NULL,
+ slot-granting-param SlotGranting
+ },
+ channel-allocation CHOICE
+ {
+ none NULL,
+ channel-allocation-element ChannelAllocation
+ },
+ tm-sdu D-LLC-PDU
+}
+
+
+Position-Of-Grant ::= ENUMERATED
+ {
+ on-current(0),
+ on-allocated(1)
+ }
+AddressMacResource ::= CHOICE
+{
+ null-pdu NULL,
+ ssi SSI-NEED,
+ eventLabel EVENT-NEED,
+ ussi USSI-NEED,
+ smi SMI-NEED,
+ ssi-eventLabel SSI-EVENT-NEED,
+ ssi-usage-maker SSI-USAGE-NEED,
+ smi-eventLabel SMI-EVENT-NEED
+}
+SSI-NEED ::= SEQUENCE
+{
+ ssi INTEGER(0..16777215),
+ other OTHER-DATA
+}
+EVENT-NEED ::= SEQUENCE
+{
+ eventlabel INTEGER(0..1023),
+ other OTHER-DATA
+}
+USSI-NEED ::= SEQUENCE
+{
+ ussi INTEGER(0..16777215),
+ other OTHER-DATA
+}
+
+SMI-NEED ::= SEQUENCE
+{
+ smi INTEGER(0..16777215),
+ other OTHER-DATA
+}
+SSI-EVENT-NEED ::= SEQUENCE
+{
+ ssi INTEGER(0..16777215),
+ ventlabel INTEGER(0..1023),
+ other OTHER-DATA
+}
+SSI-USAGE-NEED ::= SEQUENCE
+{
+ ssi INTEGER(0..16777215),
+ usage-maker INTEGER(0..63),
+ other OTHER-DATA
+}
+SMI-EVENT-NEED ::= SEQUENCE
+{
+ smi-eventlabel BIT STRING(SIZE(34)),
+ other OTHER-DATA
+}
+
+
+LengthIndicationMacResource ::= ENUMERATED
+{
+ reserved-0(0),
+ reserved-1(1),
+ null-pdu(2),
+ reserved(3),
+ bits-32(4),
+ bits-40(5),
+ bits-48(6),
+ bits-56(7),
+ bits-64(8),
+ bits-72(9),
+ bits-80(10),
+ bits-88(11),
+ bits-96(12),
+ bits-104(13),
+ bits-112(14),
+ bits-120(15),
+ bits-128(16),
+ bits-136(17),
+ bits-144(18),
+ bits-152(19),
+ bits-160(20),
+ bits-168(21),
+ bits-176(22),
+ bits-184(23),
+ bits-192(24),
+ bits-200(25),
+ bits-208(26),
+ bits-216(27),
+ bits-224(28),
+ bits-232(29),
+ bits-240(30),
+ bits-248(31),
+ bits-256(32),
+ bits-264(33),
+ bits-272(34),
+ reserved-35(35),
+ reserved-36(36),
+ reserved-37(37),
+ reserved-38(38),
+ reserved-39(39),
+ reserved-40(40),
+ reserved-41(41),
+ reserved-42(42),
+ reserved-43(43),
+ reserved-44(44),
+ reserved-45(45),
+ reserved-46(46),
+ reserved-47(47),
+ reserved-48(48),
+ reserved-49(49),
+ reserved-50(50),
+ reserved-51(51),
+ reserved-52(52),
+ reserved-53(53),
+ reserved-54(54),
+ reserved-55(55),
+ reserved-56(56),
+ reserved-57(57),
+ reserved-58(58),
+ reserved-59(59),
+ reserved-60(60),
+ reserved-61(61),
+ second-halfslot-stolen(62),
+ start-frag(63)
+}
+
+ PowerControl ::= ENUMERATED
+ {
+ no-change(0),
+ increase-1(1),
+ increase-2(2),
+ increase-3(3),
+ increase-4(4),
+ increase-5(5),
+ increase-6(6),
+ maximum-xceeded(7),
+ revert-open-loop-control(8),
+ decrease-1(9),
+ decrease-2(10),
+ decrease-3(11),
+ decrease-4(12),
+ decrease-5(13),
+ decrease-6(14),
+ radio-uplink-failure(15)
+ }
+
+
+ExtendCarrier ::= SEQUENCE
+{
+ freq-band INTEGER(0..15),
+ offset INTEGER(0..3),
+ duplex-spacing INTEGER(0..7),
+ reverse-operation BOOLEAN
+}
+
+MAC-ACCESS-DEFINE ::= SEQUENCE
+{
+ pdu-type INTEGER(0..3),
+ broadcast-type INTEGER(0..3),
+ broadcast-channel INTEGER(0..1),
+ access-code INTEGER(0..3),
+ imm INTEGER(0..15),
+ wt INTEGER(0..15),
+ nu INTEGER(0..15),
+ frame-len-factor INTEGER(0..1),
+ timeslot-pointer INTEGER(0..15),
+ min-priority INTEGER(0..7),
+ optional-field CHOICE
+{
+ none NULL,
+ class-bitmap INTEGER(0..65535),
+ gssi INTEGER(0..33554431),
+ reserved NULL
+ },
+ filler-bits INTEGER(0..7)
+}
+
+D-LLC-PDU ::= CHOICE
+{
+ bl-adata D-BL-ADATA,
+ bl-data D-BL-DATA,
+ bl-udata D-MLE-PDU,
+ bl-ack D-BL-ACK,
+ bl-adata-fcs D-BL-ADATA-FCS,
+ bl-data-fcs D-BL-DATA-FCS,
+ bl-udata-fcs D-MLE-PDU-FCS,
+ bl-ack-fcs D-BL-ACK-FCS,
+ al-setup NULL,
+ al-data NULL,
+ al-udata NULL,
+ al-ack NULL,
+ al-reconnect NULL,
+ reserve1 NULL,
+ reserve2 NULL,
+ al-disc NULL
+}
+
+D-BL-ACK-FCS ::= SEQUENCE
+{
+ nr INTEGER(0..1),
+ tl-sdu D-MLE-PDU,
+ fcs OCTET STRING(SIZE(4))
+}
+
+D-MLE-PDU-FCS ::= SEQUENCE
+ {
+ d-mle-pdu D-MLE-PDU,
+ fcs OCTET STRING(SIZE(4))
+ }
+
+
+D-BL-ADATA-FCS ::= SEQUENCE
+ {
+ nr INTEGER(0..1),
+ ns INTEGER(0..1),
+ tl-sdu D-MLE-PDU,
+ fcs OCTET STRING(SIZE(4))
+ }
+
+D-BL-DATA-FCS ::= SEQUENCE
+ {
+ ns INTEGER(0..1),
+ tl-sdu D-MLE-PDU,
+ fcs OCTET STRING(SIZE(4))
+ }
+
+U-BL-ACK ::= SEQUENCE
+{
+ nr INTEGER(0..1),
+ tl-sdu U-MLE-PDU
+}
+
+D-BL-ACK ::= SEQUENCE
+{
+ nr INTEGER(0..1),
+ tl-sdu D-MLE-PDU
+}
+
+U-BL-DATA ::= SEQUENCE
+{
+ ns INTEGER(0..1),
+ tl-sdu U-MLE-PDU
+}
+
+D-BL-DATA ::= SEQUENCE
+{
+ ns INTEGER(0..1),
+ tl-sdu D-MLE-PDU
+}
+
+U-BL-ADATA ::= SEQUENCE
+{
+ nr INTEGER(0..1),
+ ns INTEGER(0..1),
+ tl-sdu U-MLE-PDU
+}
+
+D-BL-ADATA ::= SEQUENCE
+{
+ nr INTEGER(0..1),
+ ns INTEGER(0..1),
+ tl-sdu D-MLE-PDU
+}
+
+D-MLE-PDU ::= CHOICE
+{
+ u-mle-reserved1 NULL,
+ mm D-MM-PDU,
+ cmce D-CMCE-PDU,
+ u-mle-reserved2 NULL,
+ sndcp NULL,
+ mle DMLE-PDU,
+ tetra-management-entity-protocol NULL,
+ u-mle-reserved3 NULL
+}
+
+UMLE-PDU ::= CHOICE
+{
+ u-prepare U-PREPARE,
+ umle-reserved1 NULL,
+ umle-reserved2 NULL,
+ umle-reserved3 NULL,
+ u-restore U-RESTORE,
+ umle-reserved4 NULL,
+ umle-reserved5 NULL,
+ umle-reserved6 NULL
+}
+
+DMLE-PDU ::= CHOICE
+{
+ d-new-cell D-NEW-CELL,
+ d-prepare-fail D-PREPARE-FAIL,
+ d-nwrk-broadcast D-NWRK-BRDADCAST,
+ dmle-reserved1 NULL,
+ d-restore-ack D-RESTORE-ACK,
+ d-restore-fail D-RESTORE-FAIL,
+ dmle-reserved2 NULL,
+ dmle-reserved3 NULL
+}
+
+U-PREPARE ::= SEQUENCE
+{
+ pdu-type INTEGER(0..7),
+ optional-elements CHOICE
+ {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ cell-number CHOICE{none NULL, cell-number INTEGER(0..65535)},
+ sdu BIT STRING
+ }
+ }
+}
+
+U-RESTORE ::= SEQUENCE
+{
+ pdu-type INTEGER(0..7),
+ optional-elements CHOICE {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ mcc CHOICE{none NULL,mcc INTEGER(0..1023)},
+ mnc CHOICE{none NULL,mnc INTEGER(0..16383)},
+ la CHOICE{none NULL,la INTEGER(0..16383)},
+ sdu BIT STRING
+ }
+ }
+}
+
+D-NEW-CELL ::= SEQUENCE
+{
+ pdu-type INTEGER(0..7),
+ channel-command-valid INTEGER(0..3),
+ optional-elements CHOICE {
+ no-type2 NULL,
+ sdu BIT STRING
+ }
+}
+
+D-PREPARE-FAIL ::= SEQUENCE
+{
+ pdu-type INTEGER(0..7),
+ fail-cause INTEGER(0..3),
+ optional-elements CHOICE {
+ no-type2 NULL,
+ sdu BIT STRING
+ }
+}
+
+D-NWRK-BRDADCAST ::= SEQUENCE
+{
+ pdu-type INTEGER(0..7),
+ cell-re-select-parameters INTEGER(0..65535),
+ cell-service-level INTEGER(0..3),
+ optional-elements CHOICE {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ tetra-network-time CHOICE{none NULL, tetra-network-time TETRA-NETWORK-TIME},
+ number-of-neighbour-cells CHOICE{none NULL, number-of-neighbour-cells INTEGER(0..7)}
+ }
+ }
+}
+
+TETRA-NETWORK-TIME ::= SEQUENCE
+{
+ network-time INTEGER(SIZE(24)),
+ local-time-offset-sign INTEGER(0..1),
+ local-time-offset INTEGER(0..63),
+ year INTEGER(0..63),
+ reserved INTEGER(SIZE(11))
+}
+
+D-RESTORE-ACK ::= SEQUENCE
+{
+ pdu-type INTEGER(0..7),
+ sdu BIT STRING
+}
+
+D-RESTORE-FAIL ::= SEQUENCE
+{
+ pdu-type INTEGER(0..7),
+ fail-cause INTEGER(0..3)
+}
+
+U-MM-PDU ::= CHOICE
+{
+ u-Authentication NULL,
+ u-Itsi-Detach NULL,
+ u-Location-Update-Demand U-LOCATION-UPDATE-DEMAND,
+ u-MM-Status U-MM-STATUS,
+ u-MM-reserved1 NULL,
+ u-WK NULL,
+ u-MM-reserved3 NULL,
+ u-Attach-Detach-Group-Identity U-ATTACH-DETACH-GROUP-IDENTITY,
+ u-Attach-Detach-Group-Identity-Ack U-ATTACH-DETACH-GROUP-IDENTITY-ACK,
+ u-TEI-Provide NULL,
+ u-MM-reserved6 NULL,
+ u-Disabled-Status NULL,
+ u-MM-reserved7 NULL,
+ u-MM-reserved8 NULL,
+ u-MM-reserved9 NULL,
+ u-MM-Function-Not-Support NULL
+}
+
+D-MM-PDU ::= CHOICE
+{
+ d-Otar NULL,
+ d-Authentication NULL,
+ d-Authentication-Reject NULL,
+ d-Disable NULL,
+ d-Enable NULL,
+ d-Location-Update-Accept D-LOCATION-UPDATE-ACCEPT,
+ d-Location-Update-Command NULL,
+ d-Location-Update-Reject D-LOCATION-UPDATE-REJECT,
+ d-MM-reserved2 NULL,
+ d-Location-Update-Proceeding NULL,
+ d-Attach-Detach-Group-Identity D-ATTACH-DETACH-GROUP-IDENTITY,
+ d-Attach-Detach-Group-Identity-Ack D-ATTACH-DETACH-GROUP-IDENTITY-ACK,
+ d-MM-Status D-MM-STATUS,
+ d-MM-reserved5 NULL,
+ d-MM-reserved6 NULL,
+ d-MM-Function-Not-Support NULL
+}
+
+UPDATE-TYPE ::= ENUMERATED
+{
+ roaming-location-updating(0),
+ temporary-registration(1),
+ periodic-location-updating(2),
+ itsi-attach(3),
+ call-restoration-roaming(4),
+ migrating-or-call-restoration-migrating(5),
+ demand-location-updating(6),
+ disabled-MS-updating(7)
+}
+
+TYPE3-IDENTIFIER ::= ENUMERATED
+{
+ reserved(0),
+ default-group-attachment-lifetime(1),
+ new-registered-area(2),
+ group-identity-location-demand(3),
+ group-report-response(4),
+ group-identity-location-accept(5),
+ dm-ms-address(6),
+ group-identity-downlink(7),
+ group-identity-uplink(8),
+ authentication-uplink(9),
+ authentication-downlink(10),
+ reserved(11),
+ reserved1(12),
+ reserved2(13),
+ reserved3(14),
+ proprietary(15)
+}
+
+GROUP-IDENTITY-DOWNLINK ::= SEQUENCE
+{
+ attach-detach-identifier CHOICE{
+ attach SEQUENCE{
+ lifetime INTEGER(0..3),
+ class-of-usage INTEGER(0..7)
+ },
+ detach SEQUENCE{
+ detach-downlike ENUMERATED{
+ unknow-gssi(0),
+ temporary-detachment1(1),
+ temporary-detachment2(2),
+ permanent-detachment(3)
+ }
+ }
+ },
+ address-type CHOICE{
+ gssi OCTET STRING(SIZE(3)),
+ gssi-extension SEQUENCE{ gssi OCTET STRING(SIZE(3)), extension OCTET STRING(SIZE(3))},
+ vgssi OCTET STRING(SIZE(3))
+ }
+}
+
+GROUP-IDENTITY-UPLINK ::= SEQUENCE
+{
+ attach-detach-identifier CHOICE{
+ attach SEQUENCE{
+ class-of-usage INTEGER(0..7)
+ },
+ detach SEQUENCE{
+ detach-uplike ENUMERATED{
+ unknow-gssi(0),
+ invalid-cipher(1),
+ user-intitial(2),
+ reserved(3)
+ }
+ }
+ },
+ address-type CHOICE{
+ gssi OCTET STRING(SIZE(3)),
+ gssi-extension SEQUENCE{ gssi OCTET STRING(SIZE(3)), extension OCTET STRING(SIZE(3))},
+ vgssi OCTET STRING(SIZE(3))
+ }
+}
+
+
+D-LOCATION-UPDATE-ACCEPT ::= SEQUENCE
+{
+ location-update-type UPDATE-TYPE,
+ optional-elements CHOICE
+ {
+ no-type2 NULL,
+ type2-parameters SEQUENCE
+ {
+ ssi CHOICE{none NULL,ssi OCTET STRING(SIZE(3))},
+ address-extension CHOICE{none NULL,address-extension OCTET STRING(SIZE(3))},
+ subscriber-class CHOICE{none NULL,subscriber-class Subscriber-class},
+ energy-saving-mode CHOICE{none NULL,energy-saving-mode INTEGER(0..7)},
+ scch-info CHOICE{none NULL,scch-info INTEGER(0..16383)},
+ type3 CHOICE{
+ no-type3 NULL,
+ type3-elements SEQUENCE
+ {
+ type2-existance BOOLEAN,
+ type3-identifier TYPE3-IDENTIFIER,
+ new-ra CHOICE{none NULL,new-ra INTEGER(0..3)},
+ group-identity-location-accept CHOICE{none NULL,group-identity-location-accept INTEGER(0..3)},
+ group-predefined-lifetime CHOICE{none NULL,group-predefined-lifetime INTEGER(0..3)},
+ group-identity-downlink CHOICE{none NULL,group-identity-downlink INTEGER(0..15)},
+ proprietary CHOICE{none NULL,proprietary INTEGER(0..7) }
+ }
+ }
+ }
+ }
+}
+
+D-LOCATION-UPDATE-REJECT ::= SEQUENCE
+{
+ location-update-type UPDATE-TYPE,
+ reject-cause INTEGER(0..31),
+ cipher-control BOOLEAN
+}
+
+U-MM-STATUS ::= SEQUENCE
+{
+ status-uplink INTEGER(0..63),
+ scanning-on-off ENUMERATED{on(0),off(1)}
+
+}
+
+D-MM-STATUS ::= SEQUENCE
+{
+ status-downlink INTEGER(0..63)
+}
+
+Subscriber-class ::= BIT STRING(SIZE(16))
+
+U-CMCE-PDU ::= CHOICE
+{
+ u-Alert U-ALERT,
+ reserved1 NULL,
+ u-Connect U-CONNECT,
+ reserved2 NULL,
+ u-Disconnect U-DISCONNECT,
+ u-Info U-INFO,
+ u-Release U-RELEASE,
+ u-Setup U-SETUP,
+ u-Status U-STATUS,
+ u-Tx-Ceased U-TX-CEASED,
+ u-Tx-Demand U-TX-DEMAND,
+ reserved3 NULL,
+ reserved4 NULL,
+ reserved5 NULL,
+ u-Call-Restore U-CALL-RESTORE,
+ u-SDS-Data U-SDS-DATA,
+ u-Facility NULL
+}
+
+U-RELEASE ::= SEQUENCE
+{
+ call-identifier INTEGER(0..16383),
+ disconnect-cause INTEGER(0..31)
+}
+
+U-SDS-DATA ::= SEQUENCE
+{
+ area-selection INTEGER(0..15),
+ called-party-type-identifier CHOICE{
+ sna INTEGER(0..255),
+ ssi INTEGER(0..16777215),
+ ssi-extension BIT STRING(SIZE(48)),
+ none NULL
+ },
+ short-data-type-identifier CHOICE{
+ data-1 INTEGER(0..65535),
+ data-2 OCTET STRING(SIZE(4)),
+ data-3 BIT STRING(SIZE(64)),
+ length-indicator-data-4 INTEGER(0..4194304)
+ }
+}
+
+U-STATUS ::= SEQUENCE
+{
+ area-selection INTEGER(0..15),
+ called-party-type-identifier CHOICE
+ {
+ short-number-address INTEGER(0..255),
+ ssi INTEGER(0..16777215),
+ called-ssi-called-extension BIT STRING(SIZE(48)),
+ none NULL
+ },
+ pre-coded-status INTEGER(0..65535)
+}
+
+U-INFO ::= SEQUENCE
+{
+ call-id INTEGER(0..16383),
+ poll-response INTEGER(0..1)
+}
+
+D-CMCE-PDU ::= CHOICE
+{
+ d-Alert D-ALERT,
+ d-Call-Proceeding D-CALL-PROCEEDING,
+ d-Connect D-CONNECT,
+ d-Connect-Ack D-CONNECT-ACK,
+ d-Disconnect D-DISCONNECT,
+ d-Info D-INFO,
+ d-Release D-RELEASE,
+ d-Setup D-SETUP,
+ d-Status D-STATUS,
+ d-Tx-Ceased D-TX-CEASED,
+ d-Tx-Continue D-TX-CONTINUE,
+ d-Tx-Granted D-TX-GRANTED,
+ d-Tx-Wait D-TX-WAIT,
+ d-Tx-Interrupt NULL,
+ d-Call-Restore D-CALL-RESTORE,
+ d-SDS-Data D-SDS-DATA,
+ d-Facility NULL
+}
+
+D-SDS-DATA ::= SEQUENCE
+{
+ calling-party-type-identifier CHOICE{
+ none1 NULL,
+ ssi INTEGER(0..16777215),
+ ssi-extension OCTET STRING(SIZE(6)),
+ none2 NULL
+ },
+ short-data-type-identifier CHOICE{
+ data-1 INTEGER(0..65535),
+ data-2 OCTET STRING(SIZE(4)),
+ data-3 OCTET STRING(SIZE(8)),
+ length-indicator-data-4 INTEGER(0..4194304)
+ }
+}
+
+D-STATUS ::= SEQUENCE
+{
+ calling-party-type-identifier CHOICE{
+ none1 NULL,
+ calling-party-address-SSI INTEGER(0..16777215),
+ ssi-extension OCTET STRING(SIZE(6)),
+ none2 NULL
+ },
+ pre-coded-status INTEGER(0..65535)
+}
+
+D-DISCONNECT ::= SEQUENCE
+{
+ call-identifier INTEGER(0..16383),
+ disconnect-cause INTEGER(0..31)
+}
+
+D-INFO ::= SEQUENCE
+{
+ call-identifier INTEGER(0..16383),
+ reset-call-time-out-timer INTEGER(0..1),
+ poll-request INTEGER(0..1)
+}
+
+D-TX-WAIT ::= SEQUENCE
+{
+ call-identifier INTEGER(0..16383),
+ transmission-request-permission INTEGER(0..1)
+}
+D-TX-CONTINUE ::= SEQUENCE
+{
+ call-identifier INTEGER(0..16383),
+ continue INTEGER(0..1),
+ transmission-request-permission INTEGER(0..1)
+}
+
+U-LOCATION-UPDATE-DEMAND ::= SEQUENCE
+{
+ location-update-type UPDATE-TYPE,
+ request-to-append-LA BOOLEAN,
+ cipher-control CHOICE{no-cipher NULL,ciphering-parameters INTEGER(0..1023)},
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-parameters SEQUENCE
+ {
+ class-of-MS CHOICE{none NULL, class-of-MS INTEGER(0..16777215)},
+ energy-saving-mode CHOICE{none NULL,energy-saving-mode INTEGER(0..7)},
+ la-information CHOICE{none NULL,la-information INTEGER(0..16383)},
+ ssi CHOICE{none NULL,ssi OCTET STRING(SIZE(3))},
+ address-extension CHOICE{none NULL,address-extension OCTET STRING(SIZE(3))},
+ type3 CHOICE
+ {
+ no-type3 NULL,
+ type3-elements SEQUENCE
+ {
+ type3-identifier TYPE3-IDENTIFIER,
+ group-identity-location-demand CHOICE{none NULL,group-identity-location-demand INTEGER(0..3)},
+ group-report-response CHOICE{none NULL,group-report-response BOOLEAN},
+ group-identity-uplink CHOICE{none NULL,group-identity-uplink INTEGER(0..15)},
+ proprietary CHOICE{none NULL,proprietary INTEGER(0..7) }
+ }
+ }
+ }
+ }
+}
+
+U-ATTACH-DETACH-GROUP-IDENTITY ::=SEQUENCE
+{
+ group-identity-report BOOLEAN,
+ group-identity-attach-detach-mode BOOLEAN,
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-element SEQUENCE{
+ type3 CHOICE
+ {
+ no-type3 NULL,
+ type3-elements SEQUENCE
+ {
+ type3-identifier TYPE3-IDENTIFIER,
+ length INTEGER(0..2047),
+ repeat-num INTEGER(0..63),
+ group-identity-uplink GROUP-IDENTITY-UPLINK
+ --group-report-response CHOICE{none NULL,group-report-response INTEGER(0..7)},
+ --group-identity-uplink CHOICE{none NULL,group-identity-uplink INTEGER(0..15)},
+ -- proprietary CHOICE{none NULL,proprietary INTEGER(0..7)}
+ }
+ }
+ }
+ }
+}
+
+
+U-ATTACH-DETACH-GROUP-IDENTITY-ACK ::=SEQUENCE
+{
+ group-identity-ack-type BOOLEAN,
+ group-identity-attach-detach-mode BOOLEAN,
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-element SEQUENCE{
+ type3 CHOICE{
+ no-type3 NULL,
+ type3-elements SEQUENCE
+ {
+ type3-identifier TYPE3-IDENTIFIER,
+ length INTEGER(0..2047),
+ repeat-num INTEGER(0..63),
+ group-identity-uplink GROUP-IDENTITY-UPLINK
+ --group-identity-uplink CHOICE{none NULL,group-identity-uplink INTEGER(0..15)},
+ -- proprietary CHOICE{none NULL,proprietary INTEGER(0..7) }
+ }
+ }
+ }
+}
+}
+
+U-SETUP ::= SEQUENCE{
+ area-selection INTEGER ( 0..15 ),
+ hook-method-selection BOOLEAN,
+ simple-duplex-selection ENUMERATED {simplex(0), duplex(1)},
+ basic-service-information Basic-service-information,
+ request-transmit-send-data INTEGER ( 0..1 ),
+ call-priority INTEGER ( 0..15 ),
+ clir-control INTEGER ( 0..3 ),
+ called-party-address Called-party-address-type,
+ optional-elements CHOICE
+ {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ external-subscriber-number [14] CHOICE { none NULL, external-subscriber-number [14] INTEGER (0..31)},
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+Basic-service-information ::= SEQUENCE
+{
+ circuit-mode CIRCUIT,
+ encryption INTEGER(0..1),
+ communication INTEGER(0..3),
+ slots-or-speech INTEGER(0..3)
+ }
+CIRCUIT ::= ENUMERATED {
+ speech-tch-s(0),
+ unprotected-tch-7-2(1),
+ low-protection-tch-4-8(2),
+ low-protection-tch-4-8(3),
+ low-protection-tch-4-8(4),
+ high-protection-tch-2-4(5),
+ high-protection-tch-2-4(6),
+ high-protection-tch-2-4(7)
+ }
+
+U-ALERT::=
+ SEQUENCE{
+ call-identifier INTEGER ( 0..1023 ),
+ reserved INTEGER ( 0..1 ),
+ simplex-duplex-selection ENUMERATED {simplex(0), duplex(1)},
+ optional-elements CHOICE {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ basic-service-information CHOICE{none NULL, basic-service-information Basic-service-information},
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+
+U-CONNECT ::=
+ SEQUENCE{
+ call-identifier INTEGER (0..1023),
+ hook-method-selection BOOLEAN,
+ simplex-duplex-selection ENUMERATED {simplex(0), duplex(1)},
+ optional-elements CHOICE {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ basic-service-information CHOICE{none NULL, basic-service-information Basic-service-information},
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+
+U-TX-CEASED::=
+ SEQUENCE{
+ call-identifier INTEGER ( 0..1023 ),
+ optional-elements CHOICE {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+
+U-TX-DEMAND::=
+ SEQUENCE{
+ call-identifier INTEGER ( 0..1023 ),
+ tx-demand-priority INTEGER ( 0..3),
+ encryption-control INTEGER ( 0..1 ),
+ reserved INTEGER ( 0..1 ),
+ optional-elements CHOICE {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+U-DISCONNECT ::=
+ SEQUENCE{
+ call-identifier INTEGER ( 0..1023 ),
+ disconnect-cause INTEGER ( 0..31 ),
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+U-CALL-RESTORE::=
+ SEQUENCE{
+ call-identifier INTEGER ( 0..1023 ),
+ request-to-transmit-send-data INTEGER ( 0..1 ),
+ other-party-address Other-party-address-type,
+ basic-service-information Basic-service-information,
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+
+D-SETUP ::= SEQUENCE{
+ call-identifier INTEGER (0..16383 ),
+ call-time-out INTEGER (0..15 ),
+ hook-method-selection INTEGER(0..1),
+ simplex-duplex-selection ENUMERATED {simplex(0), duplex(1)},
+ basic-service-information Basic-service-information,
+ transmission-grant INTEGER (0..3 ),
+ transmission-request-permission INTEGER (0..1 ),
+ call-priority INTEGER (0..15),
+ optional-elements CHOICE {
+ no-type2 NULL ,
+ type2-parameters SEQUENCE {
+ calling-party-address CHOICE { none NULL, calling-party-address Calling-party-address-type},
+ external-subscriber-number [14] CHOICE { none NULL, external-subscriber-number [14] INTEGER (0..15)},
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+D-CALL-PROCEEDING ::=
+ SEQUENCE{
+ call-identifier INTEGER (0..1023),
+ call-time-out-setup-phase INTEGER (0..7),
+ hook-method-selection BOOLEAN ,
+ simplex-duplex-selection INTEGER (0..1),
+ optional-elements CHOICE {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ basic-service-information CHOICE{none NULL, basic-service-information Basic-service-information},
+ call-status CHOICE{none NULL, call-status INTEGER (0..7)},
+ notification-indicator CHOICE{none NULL, notification-indicator INTEGER (0..63) },
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+
+D-ALERT ::= SEQUENCE{
+
+ call-identifier INTEGER ( 0..1023 ),
+ call-time-out-setup-phase INTEGER ( 0..7 ),
+ reserved INTEGER ( 0..1 ),
+ simplex-duplex-selection ENUMERATED {simplex(0), duplex(1)},
+ call-queued BOOLEAN,
+ optional-elements CHOICE
+ {
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ basic-service-infomation CHOICE{none NULL, basic-service-infomation Basic-service-information},
+ notification-indicator CHOICE{none NULL, notification-indicator INTEGER (0..63) },
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+
+D-CONNECT::=
+ SEQUENCE{
+ call-identifier INTEGER (0..1023),
+ call-time-out INTEGER (0..31),
+ hook-method-selection BOOLEAN,
+ simplex-duplex-selection ENUMERATED {simplex(0), duplex(1)},
+ transmission-grant INTEGER (0..3),
+ transmission-request-permission INTEGER (0..1) ,
+ call-ownership INTEGER (0..1) ,
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ call-priority CHOICE{none NULL, call-priority INTEGER (0..15)},
+ basic-service-information CHOICE{none NULL, basic-service-information Basic-service-information},
+ temporary-address CHOICE { none NULL, temporary-address Calling-party-address-type},
+ notification-indicator CHOICE { none NULL, notification-indicator INTEGER (0..63)},
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+ }
+
+D-CONNECT-ACK::=
+ SEQUENCE{
+ call-identifier INTEGER (0..1023),
+ call-time-out INTEGER (0..15),
+ transmission-grant INTEGER (0..3),
+ transmission-request-permission INTEGER (0..1),
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ notification-indicator CHOICE { none NULL, notification-indicator INTEGER (0..63)},
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+D-RELEASE::=
+ SEQUENCE{
+ call-identifier INTEGER ( 0..16383 ),
+ disconnect-cause INTEGER ( 0..31 ),
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ notification-indicator CHOICE {none NULL, notification-indicator INTEGER (0..63) },
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+ }
+
+D-CALL-RESTORE::=
+ SEQUENCE{
+ call-identifier INTEGER ( 0..1023 ),
+ transmission-grant INTEGER ( 0..3 ),
+ transmission-request-permission INTEGER( 0..1 ),
+ reset-call-time-out INTEGER ( 0..1 ),
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ new-call-identifier CHOICE{none NULL, new-call-identifier INTEGER (0..1023)},
+ call-time-out CHOICE{none NULL, call-time-out INTEGER ( 0..7 )},
+ call-status CHOICE { none NULL, call-status INTEGER ( 0..7 )},
+ modify CHOICE { none NULL, modify Modify-type},
+ notification-indicator CHOICE { none NULL, notification-indicator INTEGER (0..63)},
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+}
+
+D-TX-CEASED::=
+ SEQUENCE{
+ call-identifier INTEGER ( 0..1023 ),
+ transmission-request-permission INTEGER ( 0..1 ),
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-parameters SEQUENCE {
+ notification-indicator CHOICE {none NULL, notification-indicator INTEGER (0..63) },
+ prop [15] CHOICE {none NULL, prop [15] Proprietary }
+ }
+ }
+ }
+
+D-TX-GRANTED ::=
+ SEQUENCE {
+ call-identifier INTEGER ( 0..1023 ),
+ transmission-grant INTEGER ( 0..3 ),
+ transmission-request-permission INTEGER ( 0..1 ),
+ encryption-control INTEGER ( 0..1 ),
+ reserved INTEGER ( 0..1 )
+}
+ D-ATTACH-DETACH-GROUP-IDENTITY ::=SEQUENCE
+{
+ group-identity-report BOOLEAN,
+ group-identity-ack-request BOOLEAN,
+ group-identity-attach-detach-mode BOOLEAN,
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-element SEQUENCE{
+ type3 CHOICE{
+ no-type3 NULL,
+ type3-elements SEQUENCE
+ {type3-identifier TYPE3-IDENTIFIER,
+ length INTEGER(0..2047),
+ repeat-num INTEGER(0..63),
+ group-identity-downlink GROUP-IDENTITY-DOWNLINK
+ --proprietary CHOICE{none NULL,proprietary INTEGER(0..7)},
+ --group-report-response CHOICE{none NULL,group-report-response INTEGER(0..7)},
+ -- group-identity-downlink CHOICE{none NULL,group-identity-downlink INTEGER(0..15)}
+ }
+ }
+ }
+ }
+}
+
+D-ATTACH-DETACH-GROUP-IDENTITY-ACK ::=SEQUENCE
+{
+ group-identity-attach-detach-accept BOOLEAN,
+ reserved INTEGER ( 0..1 ),
+ optional-elements CHOICE{
+ no-type2 NULL,
+ type2-element SEQUENCE{
+ type3 CHOICE{
+ no-type3 NULL,
+ type3-elements SEQUENCE
+ {
+ type3-identifier TYPE3-IDENTIFIER,
+ length INTEGER(0..2047),
+ repeat-num INTEGER(0..63),
+ group-identity-downlink GROUP-IDENTITY-DOWNLINK
+ -- proprietary CHOICE{none NULL,proprietary INTEGER(0..7) },
+ -- group-identity-downlink CHOICE{none NULL,group-identity-downlink INTEGER(0..15)}
+ }
+ }
+ }
+ }
+}
+
+SPEECHMODE ::= SEQUENCE
+{
+ encryption-flag INTEGER ( 0..1 ),
+ communication-type CALLMODE,
+ speech-service INTEGER (0..3)
+}
+
+DATAMODE ::= SEQUENCE
+{
+ encryption-flag INTEGER ( 0..1 ),
+ communication-type INTEGER ( 0..3 ),
+ slots-per-frame INTEGER (0..3)
+}
+
+CALLMODE ::= ENUMERATED
+{
+ single-call(0),
+ group-call(1),
+ reserve(2),
+ broadcase(3)
+}
+
+Calling-party-address-type ::= CHOICE {
+ called-party-sna [0] INTEGER ( 0..255 ),
+ called-party-ssi [1] INTEGER ( 0..16777215 ),
+ -- WS modification: fix misspelling
+ called-party-ssi-extension [2] SEQUENCE {
+ -- End WS modification
+ called-party-ssi INTEGER ( 0..16777215 ),
+ -- WS modification: fix misspelling
+ called-party-extention INTEGER ( 0..16777215 )
+ -- End WS modification
+ }
+}
+
+Called-party-address-type ::= Calling-party-address-type
+Other-party-address-type ::= Calling-party-address-type
+
+Proprietary ::= [15] SEQUENCE {
+ -- element identifier is 15 as defined in table 212
+ -- the length is encoded in 11 bits (table E.1)
+ data CHOICE
+ {
+ element1 Type1,
+ element Type2
+ }
+}
+
+Proprietary-element-owner ::= INTEGER(0..255)
+
+Type1 ::= SEQUENCE
+{
+ proprietary-element-owner Proprietary-element-owner,
+ proprietary-element-owner-extension BIT STRING
+ }
+
+Type2 ::= SEQUENCE
+{
+ proprietary-element-owner Proprietary-element-owner
+
+ }
+
+Modify-type ::= SEQUENCE{
+ simplex-duplex-selection ENUMERATED {simplex(0), duplex(1)},
+ basic-service-information Basic-service-information
+}
+
+
+
+END
diff --git a/epan/dissectors/asn1/tetra/tetra.cnf b/epan/dissectors/asn1/tetra/tetra.cnf
new file mode 100644
index 0000000000..8c4aab8a48
--- /dev/null
+++ b/epan/dissectors/asn1/tetra/tetra.cnf
@@ -0,0 +1,261 @@
+# umac.cnf
+# umac conformation file
+
+#.OPT
+-u
+
+#.MODULE_IMPORT
+
+#.OMIT_ASSIGNMENT
+
+ExtendCarrier
+SPEECHMODE
+DATAMODE
+CALLMODE
+
+#.EXPORTS
+
+#U-ALERT
+#U-CONNECT
+#U-DISCONNECT
+#U-INFO
+#U-RELEASE
+#U-SETUP
+#U-STATUS
+#U-TX-CEASED
+#U-TX-DEMAND
+#U-CALL-RESTORE
+#U-SDS-DATA
+#D-ALERT
+#D-CALL-PROCEEDING
+#D-CONNECT
+#D-CONNECT-ACK
+#D-DISCONNECT
+#D-INFO
+#D-RELEASE
+#D-SETUP
+#D-STATUS
+#D-TX-CEASED
+#D-TX-GRANTED
+#D-CALL-RESTORE
+#D-SDS-DATA
+#D-TX-WAIT
+#D-TX-CONTINUE
+#D-ATTACH-DETACH-GROUP-IDENTITY
+#D-ATTACH-DETACH-GROUP-IDENTITY-ACK
+#U-LOCATION-UPDATE-DEMAND
+#U-ATTACH-DETACH-GROUP-IDENTITY
+#U-ATTACH-DETACH-GROUP-IDENTITY-ACK
+#U-MM-STATUS
+#D-LOCATION-UPDATE-ACCEPT
+#D-LOCATION-UPDATE-REJECT
+#D-MM-STATUS
+
+#.END
+
+
+#.PDU
+AACH
+MAC-FRAG
+MAC-FRAG120
+MAC-END-UPLINK
+MAC-END-UP114
+MAC-END-HU
+MAC-END-DOWNLINK
+MAC-END-DOWN111
+MAC-ACCESS-DEFINE
+MAC-RESOURCE
+MAC-ACCESS
+BSCH
+BNCH
+MAC-DATA
+
+
+#.FN_BODY U-RELEASE
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-RELEASE");
+#.END
+
+#.FN_BODY D-RELEASE
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-RELEASE");
+#.END
+
+
+
+#.FN_BODY D-CALL-PROCEEDING
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-CALL-PROCEEDING");
+#.END
+
+#.FN_BODY D-SETUP
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-SETUP");
+#.END
+
+
+#.FN_BODY U-LOCATION-UPDATE-DEMAND
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-LOCATION-UPDATE-DEMAND");
+#.END
+
+
+#.FN_BODY D-LOCATION-UPDATE-ACCEPT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-LOCATION-UPDATE-ACCEPT");
+#.END
+
+
+#.FN_BODY D-CONNECT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-CONNECT");
+#.END
+
+#.FN_BODY D-CONNECT-ACK
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-CONNECT-ACK");
+#.END
+
+#.FN_BODY D-INFO
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-INFO");
+#.END
+
+#.FN_BODY D-DISCONNECT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-DISCONNECT");
+#.END
+
+#.FN_BODY D-ALERT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-ALERT");
+#.END
+
+#.FN_BODY D-TX-CEASED
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-TX-CEASED");
+#.END
+
+
+#.FN_BODY D-STATUS
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-STATUS");
+#.END
+
+#.FN_BODY D-TX-CONTINUE
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-TX-CONTINUE");
+#.END
+
+#.FN_BODY D-TX-GRANTED
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-TX-GRANTED");
+
+#.END
+
+#.FN_BODY D-TX-WAIT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-TX-WAIT");
+#.END
+
+#.FN_BODY D-CALL-RESTORE
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-CALL-RESTORE");
+#.END
+
+#.FN_BODY D-SDS-DATA
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-SDS-DATA");
+#.END
+
+#.FN_BODY D-TX-WAIT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-TX-WAIT");
+#.END
+
+
+#.FN_BODY U-ALERT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-ALERT");
+#.END
+
+#.FN_BODY U-CONNECT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-CONNECT");
+#.END
+
+#.FN_BODY U-DISCONNECT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-DISCONNECT");
+#.END
+
+#.FN_BODY U-RELEASE
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-RELEASE");
+#.END
+
+#.FN_BODY U-SETUP
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-SETUP");
+#.END
+
+#.FN_BODY U-STATUS
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-STATUS");
+#.END
+
+#.FN_BODY U-SDS-DATA
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-SDS-DATA");
+#.END
+
+#.FN_BODY U-CALL-RESTORE
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-CALL-RESTORE");
+#.END
+
+#.FN_BODY U-TX-DEMAND
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-TX-DEMAND");
+#.END
+
+#.FN_BODY U-TX-CEASED
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-TX-CEASED");
+#.END
+
+
+#.FN_BODY U-MM-STATUS
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-MM-STATUS");
+#.END
+
+#.FN_BODY D-MM-STATUS
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-MM-STATUS");
+#.END
+
+#.FN_BODY U-ATTACH-DETACH-GROUP-IDENTITY
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-ATTACH-DETACH-GROUP-IDENTITY");
+#.END
+
+#.FN_BODY U-ATTACH-DETACH-GROUP-IDENTITY-ACK
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-ATTACH-DETACH-GROUP-IDENTITY-ACK");
+#.END
+
+#.FN_BODY D-LOCATION-UPDATE-REJECT
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "D-LOCATION-UPDATE-REJECT");
+#.END
+
+#.FN_BODY D-ATTACH-DETACH-GROUP-IDENTITY
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-ATTACH-DETACH-GROUP-IDENTITY");
+#.END
+
+#.FN_BODY D-ATTACH-DETACH-GROUP-IDENTITY-ACK
+%(DEFAULT_BODY)s
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "U-ATTACH-DETACH-GROUP-IDENTITY-ACK");
+#.END
diff --git a/epan/dissectors/asn1/ulp/CMakeLists.txt b/epan/dissectors/asn1/ulp/CMakeLists.txt
new file mode 100644
index 0000000000..9c5489a4c8
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/CMakeLists.txt
@@ -0,0 +1,49 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME ulp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ ULP.asn
+ SUPL.asn
+ ULP-Components.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/ulp/Makefile.am b/epan/dissectors/asn1/ulp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/ulp/Makefile.common b/epan/dissectors/asn1/ulp/Makefile.common
new file mode 100644
index 0000000000..dcd9f37e24
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/Makefile.common
@@ -0,0 +1,42 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = ulp
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ ULP.asn \
+ SUPL.asn \
+ ULP-Components.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/ulp/Makefile.nmake b/epan/dissectors/asn1/ulp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/ulp/SUPL.asn b/epan/dissectors/asn1/ulp/SUPL.asn
new file mode 100644
index 0000000000..55b8e06cdb
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/SUPL.asn
@@ -0,0 +1,1011 @@
+-- SUPL.asn
+-- Taken from OMA UserPlane Location Protocol
+-- http://member.openmobilealliance.org/ftp/Public_documents/LOC/Permanent_documents/OMA-TS-ULP-V2_0_2-20140708-A.zip
+--
+-- 11.2 Message Specific Part
+--
+
+--
+-- 11.2.1 SUPL INIT
+--
+
+SUPL-INIT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SUPLINIT, Notification;
+
+IMPORTS
+ SLPAddress, QoP, PosMethod
+FROM ULP-Components
+ Ver2-SUPL-INIT-extension
+FROM ULP-Version-2-message-extensions
+ Ver2-Notification-extension
+FROM ULP-Version-2-parameter-extensions;
+
+SUPLINIT ::= SEQUENCE {
+ posMethod PosMethod,
+ notification Notification OPTIONAL,
+ sLPAddress SLPAddress OPTIONAL,
+ qoP QoP OPTIONAL,
+ sLPMode SLPMode,
+ mac MAC OPTIONAL, -- included for backwards compatibility
+ keyIdentity KeyIdentity OPTIONAL, -- included for backwards compatibility
+ ...,
+-- version 2 extension element
+ ver2-SUPL-INIT-extension Ver2-SUPL-INIT-extension OPTIONAL}
+
+Notification ::= SEQUENCE {
+ notificationType NotificationType,
+ encodingType EncodingType OPTIONAL,
+ requestorId OCTET STRING(SIZE (1..maxReqLength)) OPTIONAL,
+ requestorIdType FormatIndicator OPTIONAL,
+ clientName OCTET STRING(SIZE (1..maxClientLength)) OPTIONAL,
+ clientNameType FormatIndicator OPTIONAL,
+ ...,
+ ver2-Notification-extension Ver2-Notification-extension OPTIONAL}
+
+NotificationType ::= ENUMERATED {
+ noNotificationNoVerification(0), notificationOnly(1),
+ notificationAndVerficationAllowedNA(2),
+ notificationAndVerficationDeniedNA(3), privacyOverride(4), ...}
+
+EncodingType ::= ENUMERATED {ucs2(0), gsmDefault(1), utf8(2), ...}
+
+maxReqLength INTEGER ::= 50
+
+maxClientLength INTEGER ::= 50
+
+FormatIndicator ::= ENUMERATED {
+ logicalName(0), e-mailAddress(1), msisdn(2), url(3), sipUrl(4), min(5),
+ mdn(6), iMSPublicidentity(7), ...}
+
+SLPMode ::= ENUMERATED {proxy(0), nonProxy(1)}
+
+MAC ::= BIT STRING(SIZE (64)) -- empty placeholder required for SUPL 1.0 backwards compatibility
+
+KeyIdentity ::= BIT STRING(SIZE (128)) -- empty placeholder required for SUPL 1.0 backwards compatibility
+
+END
+
+--
+-- 11.2.2 SUPL START
+--
+SUPL-START DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SUPLSTART, SETCapabilities;
+
+IMPORTS
+ LocationId, QoP
+FROM ULP-Components
+ Ver2-SUPL-START-extension
+FROM ULP-Version-2-message-extensions
+ Ver2-SETCapabilities-extension, Ver2-PosProtocol-extension, Ver2-PosTechnology-extension
+FROM ULP-Version-2-parameter-extensions;
+
+SUPLSTART ::= SEQUENCE {
+ sETCapabilities SETCapabilities,
+ locationId LocationId,
+ qoP QoP OPTIONAL,
+ ...,
+-- version 2 extension element
+ ver2-SUPL-START-extension Ver2-SUPL-START-extension OPTIONAL}
+
+SETCapabilities ::= SEQUENCE {
+ posTechnology PosTechnology,
+ prefMethod PrefMethod,
+ posProtocol PosProtocol,
+ ...,
+ ver2-SETCapabilities-extension Ver2-SETCapabilities-extension OPTIONAL}
+
+PosTechnology ::= SEQUENCE {
+ agpsSETassisted BOOLEAN,
+ agpsSETBased BOOLEAN,
+ autonomousGPS BOOLEAN,
+ aflt BOOLEAN,
+ ecid BOOLEAN,
+ eotd BOOLEAN,
+ otdoa BOOLEAN,
+ ...,
+ ver2-PosTechnology-extension Ver2-PosTechnology-extension OPTIONAL}
+
+PrefMethod ::= ENUMERATED {
+ agpsSETassistedPreferred, agpsSETBasedPreferred, noPreference}
+-- To achieve compatibility with ULP V1.0 the names of the enumerations are
+-- kept the same as in ULP V1.0. agps shall be interpreted as agnss.
+
+PosProtocol ::= SEQUENCE {
+ tia801 BOOLEAN,
+ rrlp BOOLEAN,
+ rrc BOOLEAN,
+ ...,
+ ver2-PosProtocol-extension Ver2-PosProtocol-extension OPTIONAL}
+
+END
+
+--
+-- 11.2.3 SUPL RESPONSE
+--
+SUPL-RESPONSE DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SUPLRESPONSE;
+
+IMPORTS
+ PosMethod, SLPAddress
+FROM ULP-Components
+ Ver2-SUPL-RESPONSE-extension
+FROM ULP-Version-2-message-extensions;
+
+SUPLRESPONSE ::= SEQUENCE {
+ posMethod PosMethod,
+ sLPAddress SLPAddress OPTIONAL,
+ sETAuthKey SETAuthKey OPTIONAL, -- included for backwards compatibility
+ keyIdentity4 KeyIdentity4 OPTIONAL, -- included for backwards compatibility
+ ...,
+-- version 2 extension element
+ ver2-SUPL-RESPONSE-extension Ver2-SUPL-RESPONSE-extension OPTIONAL}
+
+SETAuthKey ::= CHOICE {
+ shortKey BIT STRING(SIZE (128)),
+ longKey BIT STRING(SIZE (256)),
+ ...}
+
+KeyIdentity4 ::= BIT STRING(SIZE (128))
+
+END
+
+--
+-- 11.2.4 SUPL POS INIT
+--
+SUPL-POS-INIT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SUPLPOSINIT;
+
+IMPORTS
+ SUPLPOS
+FROM SUPL-POS
+ SETCapabilities
+FROM SUPL-START
+ LocationId, Position, Ver
+FROM ULP-Components
+ Ver2-SUPL-POS-INIT-extension
+FROM ULP-Version-2-message-extensions
+ Ver2-RequestedAssistData-extension
+FROM ULP-Version-2-parameter-extensions;
+
+SUPLPOSINIT ::= SEQUENCE {
+ sETCapabilities SETCapabilities,
+ requestedAssistData RequestedAssistData OPTIONAL,
+ locationId LocationId,
+ position Position OPTIONAL,
+ suplpos SUPLPOS OPTIONAL,
+ ver Ver OPTIONAL,
+ ...,
+-- version 2 extension element
+ ver2-SUPL-POS-INIT-extension Ver2-SUPL-POS-INIT-extension OPTIONAL}
+
+RequestedAssistData ::= SEQUENCE {
+ almanacRequested BOOLEAN,
+ utcModelRequested BOOLEAN,
+ ionosphericModelRequested BOOLEAN,
+ dgpsCorrectionsRequested BOOLEAN,
+ referenceLocationRequested BOOLEAN, -- Note: Used also for GANSS
+ referenceTimeRequested BOOLEAN,
+ acquisitionAssistanceRequested BOOLEAN,
+ realTimeIntegrityRequested BOOLEAN,
+ navigationModelRequested BOOLEAN,
+ navigationModelData NavigationModel OPTIONAL,
+ ...,
+ ver2-RequestedAssistData-extension Ver2-RequestedAssistData-extension OPTIONAL}
+
+NavigationModel ::= SEQUENCE {
+ gpsWeek INTEGER(0..1023),
+ gpsToe INTEGER(0..167),
+ nsat INTEGER(0..31),
+ toeLimit INTEGER(0..10),
+ satInfo SatelliteInfo OPTIONAL,
+...}
+
+-- Further information on this fields can be found
+-- in [3GPP RRLP]and [3GPP 49.031]
+
+SatelliteInfo ::= SEQUENCE (SIZE (1..31)) OF SatelliteInfoElement
+
+SatelliteInfoElement ::= SEQUENCE {
+ satId INTEGER(0..63),
+ iode INTEGER(0..255),
+ ...}
+
+END
+
+--
+-- 11.2.5 SUPL POS
+--
+SUPL-POS DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SUPLPOS;
+
+IMPORTS
+ Velocity
+FROM ULP-Components
+ Ver2-SUPL-POS-extension
+FROM ULP-Version-2-message-extensions
+ Ver2-PosPayLoad-extension
+FROM ULP-Version-2-parameter-extensions;
+
+SUPLPOS ::= SEQUENCE {
+ posPayLoad PosPayLoad,
+ velocity Velocity OPTIONAL,
+ ...,
+-- version 2 extension element
+ ver2-SUPL-POS-extension Ver2-SUPL-POS-extension OPTIONAL}
+
+PosPayLoad ::= CHOICE {
+ tia801payload OCTET STRING(SIZE (1..8192)),
+ rrcPayload OCTET STRING(SIZE (1..8192)),
+ rrlpPayload OCTET STRING(SIZE (1..8192)),
+ ...,
+ ver2-PosPayLoad-extension Ver2-PosPayLoad-extension}
+
+END
+
+--
+-- 11.2.6 SUPL END
+--
+SUPL-END DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SUPLEND;
+
+IMPORTS
+ StatusCode, Position, Ver
+FROM ULP-Components
+ Ver2-SUPL-END-extension
+FROM ULP-Version-2-message-extensions;
+
+SUPLEND ::= SEQUENCE {
+ position Position OPTIONAL,
+ statusCode StatusCode OPTIONAL,
+ ver Ver OPTIONAL,
+ ...,
+-- version 2 extension element
+ ver2-SUPL-END-extension Ver2-SUPL-END-extension OPTIONAL}
+
+END
+
+--
+-- 11.2.7 SUPL AUTH REQ
+--
+SUPL-AUTH-REQ DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SUPLAUTHREQ;
+
+IMPORTS
+ Ver
+FROM ULP-Components
+ SETCapabilities
+FROM SUPL-START;
+
+SUPLAUTHREQ ::= SEQUENCE {
+ ver Ver OPTIONAL,
+ sETCapabilities SETCapabilities OPTIONAL,
+ ...}
+
+END
+
+--
+-- 11.2.8 SUPL AUTH RESP
+--
+SUPL-AUTH-RESP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SUPLAUTHRESP;
+
+IMPORTS
+ SPCSETKey, SPCTID, SPCSETKeylifetime
+FROM Ver2-ULP-Components;
+
+SUPLAUTHRESP ::= SEQUENCE {
+ sPCSETKey SPCSETKey,
+ spctid SPCTID,
+ sPCSETKeylifetime SPCSETKeylifetime OPTIONAL,
+ ...}
+
+END
+
+--
+-- 11.2.9 SUPL NOTIFY
+--
+SUPL-NOTIFY DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Ver2-SUPLNOTIFY;
+
+IMPORTS
+ Notification
+FROM SUPL-INIT;
+
+Ver2-SUPLNOTIFY ::= SEQUENCE {
+ notification Notification,
+ ...}
+END
+
+--
+-- 11.2.10 SUPL NOTIFY RESPONSE
+--
+SUPL-NOTIFY-RESPONSE DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Ver2-SUPLNOTIFYRESPONSE;
+
+Ver2-SUPLNOTIFYRESPONSE ::= SEQUENCE {
+ notificationResponse NotificationResponse OPTIONAL,
+ ...}
+
+NotificationResponse ::= ENUMERATED {allowed(0), notAllowed(1), ...}
+
+END
+
+--
+-- 11.2.11 SUPL SET INIT
+--
+SUPL-SET-INIT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Ver2-SUPLSETINIT;
+
+IMPORTS
+ SETId, QoP
+FROM ULP-Components
+ ApplicationID
+FROM Ver2-ULP-Components;
+
+Ver2-SUPLSETINIT ::= SEQUENCE {
+ targetSETID SETId, --Target SETid identifies the target SET to be located
+ qoP QoP OPTIONAL,
+ applicationID ApplicationID OPTIONAL,
+ ...}
+
+END
+
+--
+-- 11.2.12 SUPL TRIGGERED START
+--
+SUPL-TRIGGERED-START DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Ver2-SUPLTRIGGEREDSTART, TriggerType, TriggerParams, maxNumGeoArea, maxAreaId, maxAreaIdList;
+
+IMPORTS
+ LocationId, QoP, Ver, Position
+FROM ULP-Components
+ MultipleLocationIds, CauseCode, ThirdParty, ApplicationID, ReportingCap, Coordinate, CircularArea, EllipticalArea, PolygonArea
+FROM Ver2-ULP-Components
+ SETCapabilities
+FROM SUPL-START;
+
+Ver2-SUPLTRIGGEREDSTART ::= SEQUENCE {
+ sETCapabilities SETCapabilities,
+ locationId LocationId,
+ ver Ver OPTIONAL,
+ qoP QoP OPTIONAL,
+ multipleLocationIds MultipleLocationIds OPTIONAL,
+ thirdParty ThirdParty OPTIONAL,
+ applicationID ApplicationID OPTIONAL,
+ triggerType TriggerType OPTIONAL,
+ triggerParams TriggerParams OPTIONAL,
+ position Position OPTIONAL,
+ reportingCap ReportingCap OPTIONAL,
+ causeCode CauseCode OPTIONAL,
+ ...}
+
+TriggerType ::= ENUMERATED {
+ periodic(0), areaEvent(1),
+ ...}
+
+TriggerParams ::= CHOICE {
+ periodicParams PeriodicParams,
+ areaEventParams AreaEventParams,
+ ...}
+
+PeriodicParams ::= SEQUENCE{
+ numberOfFixes INTEGER(1.. 8639999),
+ intervalBetweenFixes INTEGER(1.. 8639999),
+ startTime INTEGER(0..2678400) OPTIONAL,
+...}
+-- intervalBetweenFixes and startTime are in seconds.
+-- numberOfFixes * intervalBetweenFixes shall not exceed 8639999
+-- (100 days in seconds) for compatibility with OMA MLP and RLP
+-- startTime is in relative time in units of seconds measured from "now"
+-- a value of 0 signifies "now", a value of "startTime" signifies startTime
+-- seconds from "now"
+
+AreaEventParams ::= SEQUENCE {
+ areaEventType AreaEventType,
+ locationEstimate BOOLEAN,
+ repeatedReportingParams RepeatedReportingParams OPTIONAL,
+ startTime INTEGER(0..2678400) OPTIONAL,
+ stopTime INTEGER(0..11318399) OPTIONAL,
+ geographicTargetAreaList GeographicTargetAreaList OPTIONAL,
+ areaIdLists SEQUENCE (SIZE (1..maxAreaIdList)) OF AreaIdList OPTIONAL,
+ ...}
+
+-- startTime and stopTime are in seconds.
+-- startTime and stop Time are in relative time in units of seconds measured
+-- from "now"
+-- a value of 0 signifies "now"
+-- stopTime must be > startTime
+-- stopTime - startTime shall not exceed 8639999
+-- (100 days in seconds) for compatibility with OMA MLP and RLP
+
+AreaEventType ::= ENUMERATED {enteringArea(0), insideArea(1), outsideArea(2), leavingArea(3), ...}
+
+RepeatedReportingParams ::= SEQUENCE {
+ minimumIntervalTime INTEGER (1..604800), -- time in seconds
+ maximumNumberOfReports INTEGER (1..1024),
+ ...}
+
+GeographicTargetAreaList ::= SEQUENCE (SIZE (1..maxNumGeoArea)) OF GeographicTargetArea
+
+GeographicTargetArea ::= CHOICE {
+ circularArea CircularArea,
+ ellipticalArea EllipticalArea,
+ polygonArea PolygonArea,
+ ...}
+
+AreaIdList ::= SEQUENCE {
+ areaIdSet AreaIdSet,
+ areaIdSetType AreaIdSetType OPTIONAL,
+ geoAreaMappingList GeoAreaMappingList OPTIONAL}
+
+AreaIdSet ::= SEQUENCE SIZE (1..maxAreaId) OF AreaId
+
+AreaId ::= CHOICE {
+ gSMAreaId GSMAreaId,
+ wCDMAAreaId WCDMAAreaId, -- For TD-SCDMA networks, this parameter indicates a TD-SCDMA Area ID
+ cDMAAreaId CDMAAreaId,
+ hRPDAreaId HRPDAreaId,
+ uMBAreaId UMBAreaId,
+ lTEAreaId LTEAreaId,
+ wLANAreaId WLANAreaId,
+ wiMAXAreaId WimaxAreaId,
+ ...}
+
+GSMAreaId ::= SEQUENCE {
+ refMCC INTEGER(0..999) OPTIONAL, -- Mobile Country Code
+ refMNC INTEGER(0..999) OPTIONAL, -- Mobile Network Code
+ refLAC INTEGER(0..65535) OPTIONAL, -- Location Area Code
+ refCI INTEGER(0..65535) OPTIONAL, -- Cell Id
+ ...}
+
+-- only one of the following four combinations are allowed: (1) refMCC, (2)
+-- refMCC+refMNC, (3) refMCC+refMNC+refLAC or (4) refMCC+refMNC+refLAC+refCI
+
+WCDMAAreaId ::= SEQUENCE {
+ refMCC INTEGER(0..999) OPTIONAL, -- Mobile Country Code
+ refMNC INTEGER(0..999) OPTIONAL, -- Mobile Network Code
+ refLAC INTEGER(0..65535) OPTIONAL, -- Location Area Code
+ refUC INTEGER(0..268435455) OPTIONAL, -- Cell identity
+...}
+
+-- only one of the following four combinations are allowed: (1) refMCC, (2)
+-- refMCC+refMNC, (3) refMCC+refMNC+refLAC, or (4) refMCC+refMNC+refLAC+refUC
+
+CDMAAreaId::= SEQUENCE {
+ refSID INTEGER(0..65535) OPTIONAL, -- System Id
+ refNID INTEGER(0..32767) OPTIONAL, -- Network Id
+ refBASEID INTEGER(0..65535) OPTIONAL, -- Base Station Id
+...}
+
+-- only one of the following three combinations are allowed: (1) refSID, (2)
+-- refSID+refNID, or (3) refSID+refNID+refBASEID
+
+HRPDAreaId::= SEQUENCE {
+ refSECTORID BIT STRING(SIZE (128)), -- HRPD Sector Id
+...}
+
+UMBAreaId::= SEQUENCE {
+ refMCC INTEGER(0..999) OPTIONAL, -- Mobile Country Code
+ refMNC INTEGER(0..999) OPTIONAL, -- Mobile Network Code
+ refSECTORID BIT STRING(SIZE (128)) OPTIONAL, -- UMB Sector Id
+...}
+
+LTEAreaId::= SEQUENCE {
+ refMCC INTEGER(0..999) OPTIONAL, -- Mobile Country Code
+ refMNC INTEGER(0..999) OPTIONAL, -- Mobile Network Code
+ refCI BIT STRING(SIZE (29)) OPTIONAL, -- LTE Cell-Id
+...}
+
+-- only one of the following three combinations are allowed: (1) refMCC, (2) refMCC+refMNC, or (3) refMCC+refMNC+refCI
+-- The LTE Cell-Id is encoded in the 28 Least Significant Bits of refCI
+-- The Most Significant Bit of refCI shall be ignored
+
+WLANAreaId::= SEQUENCE {
+ apMACAddress BIT STRING(SIZE (48)), -- AP MAC Address
+...}
+
+WimaxAreaId ::= SEQUENCE {
+ bsID-MSB BIT STRING (SIZE(24)) OPTIONAL,
+ bsID-LSB BIT STRING (SIZE(24)) }
+-- if only LSB is present, MSB is assumed to be identical to the current serving BS or clamped on network value
+
+AreaIdSetType ::= ENUMERATED {border(0), within(1), ...}
+
+GeoAreaMappingList ::= SEQUENCE (SIZE (1..maxNumGeoArea)) OF GeoAreaIndex
+
+GeoAreaIndex ::= INTEGER (1..maxNumGeoArea)
+
+maxNumGeoArea INTEGER ::= 32
+
+maxAreaId INTEGER ::= 256
+
+maxAreaIdList INTEGER ::= 32
+
+END
+
+--
+-- 11.2.13 SUPL TRIGGERED RESPONSE
+--
+SUPL-TRIGGERED-RESPONSE DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Ver2-SUPLTRIGGEREDRESPONSE;
+
+IMPORTS
+ PosMethod, SLPAddress
+FROM ULP-Components
+ SupportedNetworkInformation, SPCSETKey, SPCTID, SPCSETKeylifetime, GNSSPosTechnology
+FROM Ver2-ULP-Components
+ TriggerParams
+FROM SUPL-TRIGGERED-START;
+
+Ver2-SUPLTRIGGEREDRESPONSE::= SEQUENCE{
+ posMethod PosMethod,
+ triggerParams TriggerParams OPTIONAL,
+ sLPAddress SLPAddress OPTIONAL,
+ supportedNetworkInformation SupportedNetworkInformation OPTIONAL,
+ reportingMode ReportingMode OPTIONAL,
+ sPCSETKey SPCSETKey OPTIONAL,
+ spctid SPCTID OPTIONAL,
+ sPCSETKeylifetime SPCSETKeylifetime OPTIONAL,
+ gnssPosTechnology GNSSPosTechnology OPTIONAL,
+ ...}
+
+ReportingMode ::= SEQUENCE {
+ repMode RepModee,
+ batchRepConditions BatchRepConditions OPTIONAL, -- only used for batch reporting
+ batchRepType BatchRepType OPTIONAL, -- only used for batch reporting
+ ...}
+
+RepModee ::= ENUMERATED {realtime(1), quasirealtime(2), batch(3), ...}
+
+BatchRepConditions ::= CHOICE {
+ num-interval INTEGER (1..1024), -- number of periodic fixes/measurements after which the batch report is sent to the SLP
+ num-minutes INTEGER (1..2048), -- number of minutes after which the batch report is sent to the SLP
+ endofsession NULL, -- if selected batch report is to be sent at the end of the session
+ ...}
+
+BatchRepType ::= SEQUENCE {
+ reportPosition BOOLEAN, -- set to "true" if reporting of position is allowed
+ reportMeasurements BOOLEAN, -- set to "true" if reporting of measurements is allowed
+ intermediateReports BOOLEAN, -- set to "true" if the SET is allowed to send intermediate reports if it runs out of memory
+ discardOldest BOOLEAN OPTIONAL, -- set to "true" if the SET should discard the oldest positions or measurements of the batch report in order to save memory, set to "false" the SET should discard the latest positions or measurements
+ ...}
+
+END
+
+--
+-- 11.2.14 SUPL REPORT
+--
+SUPL-REPORT DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Ver2-SUPLREPORT;
+
+IMPORTS
+ SETCapabilities
+FROM SUPL-START
+ Position, PosMethod, SessionID, Ver
+FROM ULP-Components
+ MultipleLocationIds, GNSSPosTechnology, GANSSSignals
+FROM Ver2-ULP-Components
+ maxGANSS
+FROM ULP-Version-2-parameter-extensions;
+
+Ver2-SUPLREPORT ::= SEQUENCE {
+ sessionList SessionList OPTIONAL,
+ sETCapabilities SETCapabilities OPTIONAL,
+ reportDataList ReportDataList OPTIONAL,
+ ver Ver OPTIONAL,
+ moreComponents NULL OPTIONAL,
+...}
+
+SessionList ::= SEQUENCE SIZE (1..maxnumSessions) OF SessionInformation
+
+SessionInformation ::= SEQUENCE {
+ sessionID SessionID,
+ ...}
+
+maxnumSessions INTEGER ::= 64
+
+ReportDataList ::= SEQUENCE SIZE (1.. 1024) OF ReportData
+
+ReportData ::= SEQUENCE {
+ positionData PositionData OPTIONAL,
+ multipleLocationIds MultipleLocationIds OPTIONAL,
+ resultCode ResultCode OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ ...}
+
+PositionData ::= SEQUENCE {
+ position Position,
+ posMethod PosMethod OPTIONAL,
+ gnssPosTechnology GNSSPosTechnology OPTIONAL,
+ ganssSignalsInfo GANSSsignalsInfo OPTIONAL,
+ ...}
+
+GANSSsignalsInfo ::= SEQUENCE SIZE (1..maxGANSS) OF GANSSSignalsDescription
+
+GANSSSignalsDescription ::= SEQUENCE {
+ ganssId INTEGER(0..15), -- coding according to parameter definition in section 10.10
+ gANSSSignals GANSSSignals,
+...}
+
+ResultCode ::= ENUMERATED {outofradiocoverage(1), noposition(2), nomeasurement(3), nopositionnomeasurement(4), outofmemory(5), outofmemoryintermediatereporting(6), other(7), ...}
+
+TimeStamp ::= CHOICE {
+ absoluteTime UTCTime,
+ relativeTime INTEGER (0..31536000)} -- relative time to when the SUPL REPORT message is sent in units of 1 sec, where 0 signifies "now" and n signifies n seconds in the past
+
+END
+
+--
+--11.2.15 SUPL TRIGGERED STOP
+--
+SUPL-TRIGGERED-STOP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Ver2-SUPLTRIGGEREDSTOP;
+
+IMPORTS
+ StatusCode
+FROM ULP-Components;
+
+Ver2-SUPLTRIGGEREDSTOP::= SEQUENCE{
+ statusCode StatusCode OPTIONAL,
+ ...}
+
+END
+
+--
+--11.3 Messsage Extensions (SUPL Version 2)
+--
+ULP-Version-2-message-extensions DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS
+Ver2-SUPL-INIT-extension, Ver2-SUPL-START-extension, Ver2-SUPL-RESPONSE-extension, Ver2-SUPL-POS-INIT-extension, Ver2-SUPL-POS-extension, Ver2-SUPL-END-extension;
+
+IMPORTS
+ SLPAddress, Position, Ver
+FROM ULP-Components
+ SETCapabilities
+FROM SUPL-START
+ SupportedNetworkInformation, GNSSPosTechnology, MultipleLocationIds, UTRAN-GPSReferenceTimeResult, UTRAN-GANSSReferenceTimeResult, UTRAN-GPSReferenceTimeAssistance, UTRAN-GANSSReferenceTimeAssistance, SPCSETKey, SPCTID, SPCSETKeylifetime, ThirdParty, ApplicationID
+FROM Ver2-ULP-Components
+ TriggerType
+FROM SUPL-TRIGGERED-START;
+
+Ver2-SUPL-INIT-extension ::= SEQUENCE {
+ notificationMode NotificationMode OPTIONAL,
+ supportedNetworkInformation SupportedNetworkInformation OPTIONAL,
+ triggerType TriggerType OPTIONAL,
+ e-SLPAddress SLPAddress OPTIONAL,
+ historicReporting HistoricReporting OPTIONAL,
+ protectionLevel ProtectionLevel OPTIONAL,
+ gnssPosTechnology GNSSPosTechnology OPTIONAL,
+ minimumMajorVersion INTEGER (0..255) OPTIONAL,
+...}
+
+NotificationMode ::= ENUMERATED {normal(0), basedOnLocation(1), ...}
+
+HistoricReporting ::= SEQUENCE {
+ allowedReportingType AllowedReportingType,
+ reportingCriteria ReportingCriteria OPTIONAL, ...}
+
+AllowedReportingType ::= ENUMERATED {
+ positionsOnly(0), measurementsOnly(1), positionsAndMeasurements(2),...}
+
+ReportingCriteria ::= SEQUENCE {
+ timeWindow TimeWindow OPTIONAL,
+ maxNumberofReports INTEGER(1..65536) OPTIONAL,
+ minTimeInterval INTEGER(1..86400) OPTIONAL,
+...}
+
+TimeWindow ::= SEQUENCE {
+ startTime INTEGER(-525600..-1), -- Time in minutes
+ stopTime INTEGER(-525599..0)} -- Time in minutes
+
+ProtectionLevel ::= SEQUENCE {
+ protlevel ProtLevel,
+ basicProtectionParams BasicProtectionParams OPTIONAL,
+...}
+
+ProtLevel ::= ENUMERATED {
+ nullProtection(0), basicProtection(1), ...}
+
+BasicProtectionParams ::= SEQUENCE {
+ keyIdentifier OCTET STRING(SIZE (8)),
+ basicReplayCounter INTEGER(0..65535),
+ basicMAC BIT STRING(SIZE (32)),
+...}
+
+Ver2-SUPL-START-extension ::= SEQUENCE {
+ multipleLocationIds MultipleLocationIds OPTIONAL,
+ thirdParty ThirdParty OPTIONAL,
+ applicationID ApplicationID OPTIONAL,
+ position Position OPTIONAL,
+...}
+
+Ver2-SUPL-RESPONSE-extension ::= SEQUENCE {
+ supportedNetworkInformation SupportedNetworkInformation OPTIONAL,
+ sPCSETKey SPCSETKey OPTIONAL,
+ spctid SPCTID OPTIONAL,
+ sPCSETKeylifetime SPCSETKeylifetime OPTIONAL,
+ initialApproximateposition Position OPTIONAL,
+ gnssPosTechnology GNSSPosTechnology OPTIONAL,
+...}
+
+Ver2-SUPL-POS-INIT-extension ::= SEQUENCE {
+ multipleLocationIds MultipleLocationIds OPTIONAL,
+ utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult OPTIONAL,
+ utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTimeResult OPTIONAL,
+...}
+
+Ver2-SUPL-POS-extension ::= SEQUENCE {
+utran-GPSReferenceTimeAssistance UTRAN-GPSReferenceTimeAssistance OPTIONAL,
+utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult OPTIONAL,
+utran-GANSSReferenceTimeAssistance UTRAN-GANSSReferenceTimeAssistance OPTIONAL,
+utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTimeResult OPTIONAL,
+...}
+
+Ver2-SUPL-END-extension ::= SEQUENCE {
+ sETCapabilities SETCapabilities OPTIONAL,
+...}
+
+END
+
+--
+-- 11.4 Parameter Extensions (SUPL Version 2)
+--
+
+ULP-Version-2-parameter-extensions DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS
+maxGANSS, Ver2-Notification-extension, Ver2-SETCapabilities-extension, Ver2-PosProtocol-extension, Ver2-PosTechnology-extension, Ver2-RequestedAssistData-extension, Ver2-PosPayLoad-extension;
+
+IMPORTS
+ GANSSSignals, ReportingCap
+FROM Ver2-ULP-Components
+ maxNumGeoArea, maxAreaId, maxAreaIdList
+FROM SUPL-TRIGGERED-START;
+
+Ver2-Notification-extension ::= SEQUENCE {
+ emergencyCallLocation NULL OPTIONAL,
+ ...}
+
+Ver2-SETCapabilities-extension ::= SEQUENCE {
+ serviceCapabilities ServiceCapabilities OPTIONAL,
+...,
+ supportedBearers SupportedBearers OPTIONAL}
+
+ServiceCapabilities ::= SEQUENCE {
+ servicesSupported ServicesSupported,
+ reportingCapabilities ReportingCap OPTIONAL,
+ eventTriggerCapabilities EventTriggerCapabilities OPTIONAL,
+ sessionCapabilities SessionCapabilities,
+...}
+
+ServicesSupported ::= SEQUENCE {
+ periodicTrigger BOOLEAN,
+ areaEventTrigger BOOLEAN,
+...}
+
+EventTriggerCapabilities ::= SEQUENCE {
+ geoAreaShapesSupported GeoAreaShapesSupported,
+ maxNumGeoAreaSupported INTEGER (0..maxNumGeoArea) OPTIONAL,
+ maxAreaIdListSupported INTEGER (0..maxAreaIdList) OPTIONAL,
+ maxAreaIdSupportedPerList INTEGER (0..maxAreaId) OPTIONAL,
+...}
+
+GeoAreaShapesSupported ::= SEQUENCE {
+ ellipticalArea BOOLEAN,
+ polygonArea BOOLEAN,
+...}
+
+SessionCapabilities ::= SEQUENCE {
+ maxNumberTotalSessions INTEGER (1..128),
+ maxNumberPeriodicSessions INTEGER (1..32),
+ maxNumberTriggeredSessions INTEGER (1..32),
+...}
+
+SupportedBearers ::= SEQUENCE {
+ gsm BOOLEAN,
+ wcdma BOOLEAN,
+ lte BOOLEAN,
+ cdma BOOLEAN,
+ hprd BOOLEAN,
+ umb BOOLEAN,
+ wlan BOOLEAN,
+ wiMAX BOOLEAN,
+...}
+
+Ver2-PosProtocol-extension ::= SEQUENCE {
+ lpp BOOLEAN,
+ posProtocolVersionRRLP PosProtocolVersion3GPP OPTIONAL,
+ posProtocolVersionRRC PosProtocolVersion3GPP OPTIONAL,
+ posProtocolVersionTIA801 PosProtocolVersion3GPP2 OPTIONAL,
+ posProtocolVersionLPP PosProtocolVersion3GPP OPTIONAL,
+...,
+ lppe BOOLEAN OPTIONAL,
+ posProtocolVersionLPPe PosProtocolVersionOMA OPTIONAL}
+
+PosProtocolVersion3GPP ::= SEQUENCE {
+ majorVersionField INTEGER(0..255),
+ technicalVersionField INTEGER(0..255),
+ editorialVersionField INTEGER(0..255),
+...}
+
+PosProtocolVersion3GPP2 ::= SEQUENCE (SIZE(1..8)) OF Supported3GPP2PosProtocolVersion
+
+Supported3GPP2PosProtocolVersion ::= SEQUENCE {
+ revisionNumber BIT STRING(SIZE (6)), -- the location standard revision number the SET supports coded according to 3GPP2 C.S0022
+ pointReleaseNumber INTEGER(0..255),
+ internalEditLevel INTEGER(0..255),
+...}
+
+PosProtocolVersionOMA ::= SEQUENCE {
+ majorVersionField INTEGER(0..255),
+ minorVersionField INTEGER(0..255),
+...}
+
+Ver2-PosTechnology-extension ::= SEQUENCE {
+ gANSSPositionMethods GANSSPositionMethods OPTIONAL,
+...}
+
+GANSSPositionMethods ::= SEQUENCE (SIZE(1..16)) OF GANSSPositionMethod
+
+GANSSPositionMethod ::= SEQUENCE {
+ ganssId INTEGER(0..15), -- coding according to parameter definition in section 10.10
+ ganssSBASid BIT STRING(SIZE(3)) OPTIONAL, --coding according to parameter definition in section 10.10
+ gANSSPositioningMethodTypes GANSSPositioningMethodTypes,
+ gANSSSignals GANSSSignals,
+...}
+
+GANSSPositioningMethodTypes ::= SEQUENCE {
+ setAssisted BOOLEAN,
+ setBased BOOLEAN,
+ autonomous BOOLEAN,
+...}
+
+Ver2-RequestedAssistData-extension ::= SEQUENCE {
+ ganssRequestedCommonAssistanceDataList GanssRequestedCommonAssistanceDataList OPTIONAL,
+ ganssRequestedGenericAssistanceDataList GanssRequestedGenericAssistanceDataList OPTIONAL,
+ extendedEphemeris ExtendedEphemeris OPTIONAL,
+ extendedEphemerisCheck ExtendedEphCheck OPTIONAL,
+...}
+
+GanssRequestedCommonAssistanceDataList ::= SEQUENCE {
+ ganssReferenceTime BOOLEAN,
+ ganssIonosphericModel BOOLEAN,
+ ganssAdditionalIonosphericModelForDataID00 BOOLEAN,
+ ganssAdditionalIonosphericModelForDataID11 BOOLEAN,
+ ganssEarthOrientationParameters BOOLEAN,
+...,
+ ganssAdditionalIonosphericModelForDataID01 BOOLEAN OPTIONAL}
+
+GanssRequestedGenericAssistanceDataList ::= SEQUENCE(SIZE(1..maxGANSS)) OF GanssReqGenericData
+
+GanssReqGenericData ::= SEQUENCE {
+ ganssId INTEGER(0..15), -- coding according to parameter definition in section 10.10
+ ganssSBASid BIT STRING(SIZE(3)) OPTIONAL, --coding according to parameter definition in section 10.10
+ ganssRealTimeIntegrity BOOLEAN,
+ ganssDifferentialCorrection DGANSS-Sig-Id-Req OPTIONAL,
+ ganssAlmanac BOOLEAN,
+ ganssNavigationModelData GanssNavigationModelData OPTIONAL,
+ ganssTimeModels BIT STRING(SIZE(16)) OPTIONAL,
+ ganssReferenceMeasurementInfo BOOLEAN,
+ ganssDataBits GanssDataBits OPTIONAL,
+ ganssUTCModel BOOLEAN,
+ ganssAdditionalDataChoices GanssAdditionalDataChoices OPTIONAL,
+ ganssAuxiliaryInformation BOOLEAN,
+ ganssExtendedEphemeris ExtendedEphemeris OPTIONAL,
+ ganssExtendedEphemerisCheck GanssExtendedEphCheck OPTIONAL,
+...,
+ bds-DifferentialCorrection BDS-Sig-Id-Req OPTIONAL,
+ bds-GridModelReq BOOLEAN OPTIONAL}
+
+DGANSS-Sig-Id-Req ::= BIT STRING (SIZE(8)) -- coding according to parameter definition in section 10.9
+
+BDS-Sig-Id-Req ::= BIT STRING (SIZE(8)) -- coding according to parameter definition in section 10.9
+
+GanssNavigationModelData ::= SEQUENCE {
+ganssWeek INTEGER(0..4095),
+ganssToe INTEGER(0..167),
+t-toeLimit INTEGER(0..15),
+satellitesListRelatedDataList SatellitesListRelatedDataList OPTIONAL,
+...}
+
+SatellitesListRelatedDataList ::= SEQUENCE(SIZE(0..maxGANSSSat)) OF SatellitesListRelatedData
+
+SatellitesListRelatedData ::= SEQUENCE {
+ satId INTEGER(0..63),
+ iod INTEGER(0..1023),
+...}
+
+maxGANSS INTEGER ::= 16
+maxGANSSSat INTEGER ::= 32
+
+GanssDataBits ::= SEQUENCE {
+ ganssTODmin INTEGER (0..59),
+ reqDataBitAssistanceList ReqDataBitAssistanceList,
+...}
+
+ReqDataBitAssistanceList ::= SEQUENCE {
+ gnssSignals GANSSSignals,
+ ganssDataBitInterval INTEGER (0..15),
+ ganssDataBitSatList SEQUENCE (SIZE(1..maxGANSSSat)) OF INTEGER (0..63) OPTIONAL,
+...}
+
+GanssAdditionalDataChoices ::= SEQUENCE {
+ orbitModelID INTEGER(0..7) OPTIONAL,
+ clockModelID INTEGER(0..7) OPTIONAL,
+ utcModelID INTEGER(0..7) OPTIONAL,
+ almanacModelID INTEGER(0..7) OPTIONAL,
+...}
+
+ExtendedEphemeris ::= SEQUENCE {
+ validity INTEGER (1..256), -- Requested validity in 4 hour steps
+ ...}
+
+ExtendedEphCheck ::= SEQUENCE {
+ beginTime GPSTime, -- Begin time of ephemeris extension held by SET
+ endTime GPSTime, -- End time of ephemeris extension held by SET
+ ...}
+
+GanssExtendedEphCheck ::= SEQUENCE {
+ beginTime GANSSextEphTime, -- Begin time of ephemeris extension held by SET
+ endTime GANSSextEphTime, -- End time of ephemeris extension held by SET
+ ...}
+
+GPSTime ::= SEQUENCE {
+ gPSWeek INTEGER (0..1023),
+ gPSTOWhour INTEGER (0..167),
+...}
+
+GANSSextEphTime ::= SEQUENCE {
+ gANSSday INTEGER (0..8191),
+ gANSSTODhour INTEGER (0..23),
+...}
+
+Ver2-PosPayLoad-extension ::= SEQUENCE {
+ lPPPayload SEQUENCE (SIZE (1..3)) OF OCTET STRING(SIZE (1..60000)) OPTIONAL,
+ tia801Payload SEQUENCE (SIZE(1..3)) OF OCTET STRING(SIZE (1..60000)) OPTIONAL,
+...}
+
+
+END
+
+--
+--11.5 Common elements (SUPL Version 1)
+--
+
+
+--
+-- 11.6 Common elements (SUPL Version 2)
+--
diff --git a/epan/dissectors/asn1/ulp/ULP-Components.asn b/epan/dissectors/asn1/ulp/ULP-Components.asn
new file mode 100644
index 0000000000..3345fdba44
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/ULP-Components.asn
@@ -0,0 +1,792 @@
+-- ULP-Components.asn
+-- Taken from OMA UserPlane Location Protocol
+-- http://member.openmobilealliance.org/ftp/Public_documents/LOC/Permanent_documents/OMA-TS-ULP-V2_0_2-20140708-A.zip
+--
+-- 11.5 Common elements (SUPL Version 1)
+--
+
+ULP-Components DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Version, SessionID, IPAddress, SLPAddress, LocationId, Position, StatusCode, Velocity, QoP, PosMethod, Ver, SETId, PrimaryCPICH-Info, CellParametersID, FQDN;
+
+IMPORTS
+ Ver2-CellInfo-extension
+FROM Ver2-ULP-Components;
+
+-- protocol version expressed as x.y.z (e.g., 5.1.0)
+Version ::= SEQUENCE {
+ maj INTEGER(0..255),
+ min INTEGER(0..255),
+ servind INTEGER(0..255)}
+
+SessionID ::= SEQUENCE {
+ setSessionID SetSessionID OPTIONAL, -- the semantics of OPTIONAL applies to the encoding only. The parameter itself is MANDATORY. This is introduced only to minimize bandwidth for the SUPL INIT message. Since the setSessionID is allocated by the SET, there is no setSessionID to be transmitted in the SUPL INIT message.
+ slpSessionID SlpSessionID OPTIONAL -- the semantics of OPTIONAL applies to the encoding only. The parameter itself is MANDATORY. This is introduced only to minimize bandwidth for the SUPL START, SUPL TRIGGERED START and SUPL SET INIT messages. Since the slpSessionID is allocated by the SLP, there is no slpSessionID to be transmitted in these messages (with the exception described in section 10.14).
+}
+
+SetSessionID ::= SEQUENCE {sessionId INTEGER(0..65535),
+ setId SETId}
+
+SETId ::= CHOICE {
+ msisdn OCTET STRING(SIZE (8)),
+ mdn OCTET STRING(SIZE (8)),
+ min BIT STRING(SIZE (34)), -- coded according to TIA-553
+ imsi OCTET STRING(SIZE (8)),
+ nai IA5String(SIZE (1..1000)),
+ iPAddress IPAddress,
+ ...}
+-- msisdn, mnd and imsi are a BCD (Binary Coded Decimal) string
+-- represent digits from 0 through 9,
+-- two digits per octet, each digit encoded 0000 to 1001 (0 to 9)
+-- bits 8765 of octet n encoding digit 2n
+-- bits 4321 of octet n encoding digit 2(n-1) +1
+-- not used digits in the string shall be filled with 1111
+
+SlpSessionID ::= SEQUENCE {
+ sessionID OCTET STRING(SIZE (4)),
+ slpId SLPAddress}
+
+IPAddress ::= CHOICE {
+ ipv4Address OCTET STRING(SIZE (4)),
+ ipv6Address OCTET STRING(SIZE (16))}
+
+SLPAddress ::= CHOICE {iPAddress IPAddress,
+ fqdn FQDN,
+ ...}
+
+FQDN ::=
+ VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" |".-"))(SIZE (1..255))
+
+Ver ::= BIT STRING(SIZE (64))
+
+LocationId ::= SEQUENCE {cellInfo CellInfo,
+ status Status,
+ ...}
+
+Status ::= ENUMERATED {stale(0), current(1), unknown(2), ...}
+
+CellInfo ::= CHOICE {
+ gsmCell GsmCellInformation,
+ wcdmaCell WcdmaCellInformation, --WCDMA Cell Information/TD-SCDMA Cell Information
+ cdmaCell CdmaCellInformation,
+ ...,
+ ver2-CellInfo-extension Ver2-CellInfo-extension}
+
+Position ::= SEQUENCE {
+ timestamp UTCTime, -- shall include seconds and shall use UTC time.
+ positionEstimate PositionEstimate,
+ velocity Velocity OPTIONAL,
+ ...}
+
+PositionEstimate ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ latitude INTEGER(0..8388607),
+ longitude INTEGER(-8388608..8388607),
+ uncertainty
+ SEQUENCE {uncertaintySemiMajor INTEGER(0..127),
+ uncertaintySemiMinor INTEGER(0..127),
+ orientationMajorAxis INTEGER(0..180)} OPTIONAL, -- angle in degree between major axis and North
+ confidence INTEGER(0..100) OPTIONAL,
+ altitudeInfo AltitudeInfo OPTIONAL,
+ ...} -- Coding as in [3GPP GAD]
+
+AltitudeInfo ::= SEQUENCE {
+ altitudeDirection ENUMERATED {height, depth},
+ altitude INTEGER(0..32767),
+ altUncertainty INTEGER(0..127),
+ ... } -- based on [3GPP GAD]
+
+CdmaCellInformation ::= SEQUENCE {
+ refNID INTEGER(0..65535), -- Network Id
+ refSID INTEGER(0..32767), -- System Id
+ refBASEID INTEGER(0..65535), -- Base Station Id
+ refBASELAT INTEGER(0..4194303), -- Base Station Latitude
+ reBASELONG INTEGER(0..8388607), -- Base Station Longitude
+ refREFPN INTEGER(0..511), -- Base Station PN Code
+ refWeekNumber INTEGER(0..65535), -- GPS Week Number
+ refSeconds INTEGER(0..4194303), -- GPS Seconds
+ ...}
+
+GsmCellInformation ::= SEQUENCE {
+ refMCC INTEGER(0..999), -- Mobile Country Code
+ refMNC INTEGER(0..999), -- Mobile Network Code
+ refLAC INTEGER(0..65535), -- Location area code
+ refCI INTEGER(0..65535), -- Cell identity
+ nmr NMR OPTIONAL,
+ ta INTEGER(0..255) OPTIONAL, --Timing Advance
+ ...}
+
+WcdmaCellInformation ::= SEQUENCE {
+ refMCC INTEGER(0..999), -- Mobile Country Code
+ refMNC INTEGER(0..999), -- Mobile Network Code
+ refUC INTEGER(0..268435455), -- Cell identity
+ frequencyInfo FrequencyInfo OPTIONAL,
+ primaryScramblingCode INTEGER(0..511) OPTIONAL, -- Not applicable for TDD
+ measuredResultsList MeasuredResultsList OPTIONAL,
+ ...,
+ cellParametersId INTEGER(0..127) OPTIONAL, -- Not applicable for FDD
+ timingAdvance TimingAdvance OPTIONAL -- Not applicable for FDD
+}
+
+TimingAdvance ::= SEQUENCE {
+ ta INTEGER (0..8191),
+ tAResolution TAResolution OPTIONAL, --If missing, resolution is 0.125 chips
+ chipRate ChipRate OPTIONAL, --If missing, chip rate is 1.28 Mchip/s
+...}
+
+TAResolution ::= ENUMERATED {res10chip(0),res05chip(1),res0125chip(2), ...} -- Corresponding to 1.0-chip, 0.5-chip and 0.125-chip resolutions, respectively
+
+ChipRate ::= ENUMERATED {tdd128(0),tdd384(1), tdd768(2), ...} --Corresponding to 1.28-Mchips/s, 3.84-Mchips/s and 7.68-Mchips/s chip rates, respectively
+
+
+FrequencyInfo ::= SEQUENCE {
+ modeSpecificInfo CHOICE {fdd FrequencyInfoFDD,
+ tdd FrequencyInfoTDD,
+ ...},
+ ...}
+
+FrequencyInfoFDD ::= SEQUENCE {
+ uarfcn-UL UARFCN OPTIONAL,
+ uarfcn-DL UARFCN,
+ ...}
+
+FrequencyInfoTDD ::= SEQUENCE {uarfcn-Nt UARFCN,
+ ...}
+
+UARFCN ::= INTEGER(0..16383)
+
+NMR ::= SEQUENCE (SIZE (1..15)) OF NMRelement
+
+NMRelement ::= SEQUENCE {
+ arfcn INTEGER(0..1023),
+ bsic INTEGER(0..63),
+ rxLev INTEGER(0..63),
+ ...}
+
+MeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasuredResults
+
+MeasuredResults ::= SEQUENCE {
+ frequencyInfo FrequencyInfo OPTIONAL,
+ utra-CarrierRSSI UTRA-CarrierRSSI OPTIONAL,
+ cellMeasuredResultsList CellMeasuredResultsList OPTIONAL}
+
+CellMeasuredResultsList ::=
+ SEQUENCE (SIZE (1..maxCellMeas)) OF CellMeasuredResults
+
+-- SPARE: UTRA-CarrierRSSI, Max = 76
+-- Values above Max are spare
+UTRA-CarrierRSSI ::= INTEGER(0..127)
+
+CellMeasuredResults ::= SEQUENCE {
+ cellIdentity INTEGER(0..268435455) OPTIONAL,
+ modeSpecificInfo
+ CHOICE {fdd
+ SEQUENCE {primaryCPICH-Info PrimaryCPICH-Info,
+ cpich-Ec-N0 CPICH-Ec-N0 OPTIONAL,
+ cpich-RSCP CPICH-RSCP OPTIONAL,
+ pathloss Pathloss OPTIONAL},
+ tdd
+ SEQUENCE {cellParametersID CellParametersID,
+ proposedTGSN TGSN OPTIONAL,
+ primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
+ pathloss Pathloss OPTIONAL,
+ timeslotISCP-List TimeslotISCP-List OPTIONAL --NOTE: TimeSlotISCP measurement list cannot be interpreted without the knowledge of Cell Info as defined in [3GPP RRC]
+}}}
+
+CellParametersID ::= INTEGER(0..127)
+
+TGSN ::= INTEGER(0..14)
+
+PrimaryCCPCH-RSCP ::= INTEGER(0..127)
+
+-- SPARE: TimeslotISCP, Max = 91
+-- Values above Max are spare
+TimeslotISCP ::= INTEGER(0..127)
+
+TimeslotISCP-List ::= SEQUENCE (SIZE (1..maxTS)) OF TimeslotISCP
+
+PrimaryCPICH-Info ::= SEQUENCE {primaryScramblingCode INTEGER(0..511)}
+
+-- SPARE: CPICH-Ec-No, Max = 49
+-- Values above Max are spare
+CPICH-Ec-N0 ::= INTEGER(0..63)
+
+-- SPARE: CPICH- RSCP, data range from 0 to 91 and from 123 to 127.
+-- Values from 92 to 122 are spare
+-- the encoding of cpich-RSCP is (as per [3GPP RRC] V5.11.0)
+
+-- cpich-RSCP = 123 CPICH RSCP <-120 dBm
+-- cpich-RSCP = 124 -120 = CPICH RSCP < -119 dBm
+-- cpich-RSCP = 125 -119 = CPICH RSCP < -118 dBm
+-- cpich-RSCP = 126 -118 = CPICH RSCP < -117 dBm
+-- cpich-RSCP = 127 -117 = CPICH RSCP < -116 dBm
+-- cpich-RSCP = 0 -116 = CPICH RSCP < -115 dBm
+-- cpich-RSCP = 1 -115 = CPICH RSCP < -114 dBm
+-- ... ... ...
+-- cpich-RSCP = 89 -27 = CPICH RSCP < -26 dBm
+-- cpich-RSCP = 90 -26 = CPICH RSCP < -25 dBm
+-- cpich-RSCP = 91 -25 = CPICH RSCP dBm
+
+CPICH-RSCP ::= INTEGER(0..127)
+
+-- SPARE: Pathloss, Max = 158
+-- Values above Max are spare
+Pathloss ::= INTEGER(46..173)
+
+maxCellMeas INTEGER ::= 32
+
+maxFreq INTEGER ::= 8
+
+maxTS INTEGER ::= 14
+
+StatusCode ::= ENUMERATED {
+ unspecified(0), systemFailure(1), unexpectedMessage(2), protocolError(3),
+ dataMissing(4), unexpectedDataValue(5), posMethodFailure(6),
+ posMethodMismatch(7), posProtocolMismatch(8), targetSETnotReachable(9),
+ versionNotSupported(10), resourceShortage(11), invalidSessionId(12),
+ nonProxyModeNotSupported(13), proxyModeNotSupported(14),
+ positioningNotPermitted(15), authNetFailure(16), authSuplinitFailure(17),
+ consentDeniedByUser(100), consentGrantedByUser(101), ..., ver2-incompatibleProtectionLevel(18),
+ ver2-serviceNotSupported(19), ver2-insufficientInterval(20), ver2-noSUPLCoverage(21), ver2-sessionStopped(102),
+ ver2-appIdDenied(103)}
+
+QoP ::= SEQUENCE {
+ horacc INTEGER(0..127),
+ veracc INTEGER(0..127) OPTIONAL, -- as defined in [3GPP GAD] "uncertainty altitude"
+ maxLocAge INTEGER(0..65535) OPTIONAL,
+ delay INTEGER(0..7) OPTIONAL, -- as defined in [3GPP RRLP]
+ ...}
+
+Velocity ::= CHOICE { -- velocity definition as per [3GPP GAD]
+ horvel Horvel,
+ horandvervel Horandvervel,
+ horveluncert Horveluncert,
+ horandveruncert Horandveruncert,
+ ...}
+
+Horvel ::= SEQUENCE {
+ bearing BIT STRING(SIZE (9)),
+ horspeed BIT STRING(SIZE (16)),
+ ...}
+
+Horandvervel ::= SEQUENCE {
+ verdirect BIT STRING(SIZE (1)),
+ bearing BIT STRING(SIZE (9)),
+ horspeed BIT STRING(SIZE (16)),
+ verspeed BIT STRING(SIZE (8)),
+ ...}
+
+Horveluncert ::= SEQUENCE {
+ bearing BIT STRING(SIZE (9)),
+ horspeed BIT STRING(SIZE (16)),
+ uncertspeed BIT STRING(SIZE (8)),
+ ...}
+
+Horandveruncert ::= SEQUENCE {
+ verdirect BIT STRING(SIZE (1)),
+ bearing BIT STRING(SIZE (9)),
+ horspeed BIT STRING(SIZE (16)),
+ verspeed BIT STRING(SIZE (8)),
+ horuncertspeed BIT STRING(SIZE (8)),
+ veruncertspeed BIT STRING(SIZE (8)),
+ ...}
+
+PosMethod ::= ENUMERATED {
+agpsSETassisted(0), agpsSETbased(1), agpsSETassistedpref(2), agpsSETbasedpref(3), autonomousGPS(4), aFLT(5), eCID(6), eOTD(7), oTDOA(8), noPosition(9), ..., ver2-historicalDataRetrieval(10), ver2-agnssSETassisted(11), ver2-agnssSETbased(12), ver2-agnssSETassistedpref(13), ver2-agnssSETbasedpref(14), ver2-autonomousGNSS(15), ver2-sessioninfoquery(16)}
+
+END
+
+--
+-- 11.6 Common elements (SUPL Version 2)
+--
+
+Ver2-ULP-Components DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS Ver2-CellInfo-extension, MultipleLocationIds, SupportedNetworkInformation, CauseCode, UTRAN-GPSReferenceTimeAssistance, UTRAN-GPSReferenceTimeResult, SPCSETKey, SPCTID, SPCSETKeylifetime, UTRAN-GANSSReferenceTimeAssistance, UTRAN-GANSSReferenceTimeResult, GNSSPosTechnology, GANSSSignals, ThirdParty, ApplicationID, ReportingCap, Coordinate, CircularArea, EllipticalArea, PolygonArea;
+
+IMPORTS
+ LocationId, PrimaryCPICH-Info, CellParametersID, FQDN
+FROM ULP-Components;
+
+MultipleLocationIds ::= SEQUENCE SIZE (1..maxLidSize) OF LocationIdData
+
+LocationIdData ::= SEQUENCE {
+locationId LocationId,
+relativetimestamp RelativeTime OPTIONAL, -- if relativetimestamp is present, then data represents historical measurement, if absent, data represents current measurements
+servingFlag BOOLEAN, -- if "true" measurements represent serving cell
+...}
+
+RelativeTime ::= INTEGER (0..65535) -- relative time to "current" Location Id in multiples of 0.01sec
+
+maxLidSize INTEGER ::= 64
+
+SupportedNetworkInformation ::= SEQUENCE {
+ wlan BOOLEAN,
+ supportedWLANInfo SupportedWLANInfo OPTIONAL,
+ supportedWLANApsList SupportedWLANApsList OPTIONAL,
+ gsm BOOLEAN,
+ wcdma BOOLEAN,
+ supportedWCDMAInfo SupportedWCDMAInfo OPTIONAL,
+ cdma BOOLEAN,
+ hrdp BOOLEAN,
+ umb BOOLEAN,
+ lte BOOLEAN,
+ wimax BOOLEAN,
+ historic BOOLEAN,
+ nonServing BOOLEAN,
+ uTRANGPSReferenceTime BOOLEAN,
+ uTRANGANSSReferenceTime BOOLEAN,
+ ...}
+
+SupportedWLANInfo ::= SEQUENCE {
+ apTP BOOLEAN, -- AP transmit power
+ apAG BOOLEAN, -- AP antenna gain
+ apSN BOOLEAN, -- AP S/N received at SET
+ apDevType BOOLEAN, -- Device type
+ apRSSI BOOLEAN, -- AP signal strength at SET
+ apChanFreq BOOLEAN, -- AP channel/frequency of Tx/Rx
+ apRTD BOOLEAN, -- Round Trip Delay between SET and AP
+ setTP BOOLEAN, -- SET transmit power
+ setAG BOOLEAN, -- SET antenna gain
+ setSN BOOLEAN, -- SET S/N received at AP
+ setRSSI BOOLEAN, -- SET signal strength at AP
+ apRepLoc BOOLEAN, -- AP Location as reported by AP
+ ...}
+
+maxWLANApDataSize INTEGER ::= 128
+
+SupportedWLANApsList ::= SEQUENCE {
+ supportedWLANApDataList SEQUENCE (SIZE (1..maxWLANApDataSize)) OF SupportedWLANApData,
+ supportedWLANapsChannel11a SupportedWLANApsChannel11a OPTIONAL,
+ supportedWLANapsChannel11bg SupportedWLANApsChannel11bg OPTIONAL,
+ ...
+}
+
+SupportedWLANApsChannel11a ::= SEQUENCE {
+ ch34 BOOLEAN,
+ ch36 BOOLEAN,
+ ch38 BOOLEAN,
+ ch40 BOOLEAN,
+ ch42 BOOLEAN,
+ ch44 BOOLEAN,
+ ch46 BOOLEAN,
+ ch48 BOOLEAN,
+ ch52 BOOLEAN,
+ ch56 BOOLEAN,
+ ch60 BOOLEAN,
+ ch64 BOOLEAN,
+ ch149 BOOLEAN,
+ ch153 BOOLEAN,
+ ch157 BOOLEAN,
+ ch161 BOOLEAN
+}
+
+SupportedWLANApsChannel11bg ::= SEQUENCE {
+ ch1 BOOLEAN,
+ ch2 BOOLEAN,
+ ch3 BOOLEAN,
+ ch4 BOOLEAN,
+ ch5 BOOLEAN,
+ ch6 BOOLEAN,
+ ch7 BOOLEAN,
+ ch8 BOOLEAN,
+ ch9 BOOLEAN,
+ ch10 BOOLEAN,
+ ch11 BOOLEAN,
+ ch12 BOOLEAN,
+ ch13 BOOLEAN,
+ ch14 BOOLEAN
+}
+
+SupportedWLANApData ::= SEQUENCE {
+ apMACAddress BIT STRING (SIZE (48)),
+ apDevType ENUMERATED {wlan802-11a(0), wlan802-11b(1), wlan802-11g(2), ...},
+ ...}
+
+SupportedWCDMAInfo ::= SEQUENCE {
+ mrl BOOLEAN, -- Measured Results List
+ ...}
+
+Ver2-CellInfo-extension ::= CHOICE {
+ hrpdCell HrpdCellInformation,
+ umbCell UmbCellInformation,
+ lteCell LteCellInformation,
+ wlanAP WlanAPInformation,
+ wimaxBS WimaxBSInformation,
+ ...}
+
+HrpdCellInformation ::= SEQUENCE {
+ refSECTORID BIT STRING(SIZE (128)) OPTIONAL, -- HRPD Sector Id
+ refBASELAT INTEGER(0..4194303), -- Base Station Latitude
+ reBASELONG INTEGER(0..8388607), -- Base Station Longitude
+ refWeekNumber INTEGER(0..65535), -- GPS Week Number
+ refSeconds INTEGER(0..4194303), -- GPS Seconds
+ ...}
+
+UmbCellInformation ::= SEQUENCE {
+ refSECTORID BIT STRING(SIZE (128)), -- UMB Sector Id
+ refMCC INTEGER(0..999), -- Mobile Country Code
+ refMNC INTEGER(0..999), -- Mobile Network Code
+ refBASELAT INTEGER(0..4194303), -- Base Station Latitude
+ reBASELONG INTEGER(0..8388607), -- Base Station Longitude
+ refWeekNumber INTEGER(0..65535), -- GPS Week Number
+ refSeconds INTEGER(0..4194303), -- GPS Seconds
+ ...}
+
+-- LTE Cell info per 3GPP TS 36.331.
+-- If not otherwise stated info is related to serving cell
+
+LteCellInformation ::= SEQUENCE {
+ cellGlobalIdEUTRA CellGlobalIdEUTRA,
+ physCellId PhysCellId,
+ trackingAreaCode TrackingAreaCode,
+ rsrpResult RSRP-Range OPTIONAL,
+ rsrqResult RSRQ-Range OPTIONAL,
+ ta INTEGER(0..1282) OPTIONAL, -- Currently used Timing Advance value (N_TA/16 as per [3GPP 36.213])
+ measResultListEUTRA MeasResultListEUTRA OPTIONAL, --Neighbour measurements
+ ...,
+ earfcn INTEGER(0..65535) OPTIONAL, -- see Table 37
+ earfcn-ext INTEGER (65536..262143) OPTIONAL -- see Table 37
+ }
+
+-- Measured results of neighbours cells per 3GPP TS 36.331
+
+MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA
+
+MeasResultEUTRA ::= SEQUENCE {
+ physCellId PhysCellId,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdEUTRA,
+ trackingAreaCode TrackingAreaCode
+} OPTIONAL,
+ measResult SEQUENCE {
+ rsrpResult RSRP-Range OPTIONAL, -- Mapping to measured values
+ rsrqResult RSRQ-Range OPTIONAL, -- in 3GPP TS 36.133
+ ...,
+ earfcn INTEGER(0..65535) OPTIONAL, -- see Table 37
+ earfcn-ext INTEGER (65536..262143) OPTIONAL -- see Table 37
+ }
+}
+
+PhysCellId ::= INTEGER (0..503)
+
+TrackingAreaCode ::= BIT STRING (SIZE (16))
+
+CellGlobalIdEUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity CellIdentity,
+ ...
+}
+
+PLMN-Identity ::= SEQUENCE {
+ mcc MCC OPTIONAL,
+ mnc MNC
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+MCC ::= SEQUENCE (SIZE (3)) OF MCC-MNC-Digit
+
+MNC ::= SEQUENCE (SIZE (2..3)) OF MCC-MNC-Digit
+
+MCC-MNC-Digit ::= INTEGER (0..9)
+
+RSRP-Range ::= INTEGER(0..97)
+RSRQ-Range ::= INTEGER(0..34)
+maxCellReport INTEGER ::= 8
+
+WlanAPInformation ::= SEQUENCE { -- as per [IEEE 802.11]
+ apMACAddress BIT STRING(SIZE (48)), -- AP MAC Address
+ apTransmitPower INTEGER(-127..128) OPTIONAL, -- AP transmit power in dbm
+ apAntennaGain INTEGER(-127..128) OPTIONAL, -- AP antenna gain in dBi
+ apSignaltoNoise INTEGER(-127..128) OPTIONAL, -- AP S/N received at SET
+ apDeviceType ENUMERATED {wlan802-11a(0), wlan802-11b(1), wlan802-11g(2), ..., wlan802-11n(3), wlan802-11ac(4), wlan802-11ad(5)} OPTIONAL,
+ apSignalStrength INTEGER(-127..128) OPTIONAL, -- AP signal strength at SET
+ apChannelFrequency INTEGER(0..256) OPTIONAL, -- AP channel/frequency of Tx/Rx
+ apRoundTripDelay RTD OPTIONAL, -- Round Trip Delay between SET and AP
+ setTransmitPower INTEGER(-127..128) OPTIONAL, -- SET transmit power in dBm
+ setAntennaGain INTEGER (-127..128) OPTIONAL, -- SET antenna gain in dBi
+ setSignaltoNoise INTEGER (-127..128) OPTIONAL, -- SET S/N received at AP
+ setSignalStrength INTEGER(-127..128) OPTIONAL, -- SET signal strength at AP
+ apReportedLocation ReportedLocation OPTIONAL, -- AP Location reported by AP (legacy encoding)
+ ...,
+ apRepLocation RepLocation OPTIONAL, -- AP Location reported by AP
+ apSignalStrengthDelta INTEGER (0..1) OPTIONAL, -- see Table 41
+ apSignaltoNoiseDelta INTEGER (0..1) OPTIONAL, -- see Table 41
+ setSignalStrengthDelta INTEGER (0..1) OPTIONAL, -- see Table 41
+ setSignaltoNoiseDelta INTEGER (0..1) OPTIONAL, -- see Table 41
+ operatingClass INTEGER (0..255) OPTIONAL,
+ apSSID OCTET STRING (SIZE (1..32)) OPTIONAL,
+ apPHYType ENUMERATED {unknown(0), any(1), fhss(2), dsss(3), irbaseband(4), ofdm(5), hrdsss(6), erp(7), ht(8), ihv(9), ...} OPTIONAL,
+ setMACAddress BIT STRING(SIZE (48)) OPTIONAL -- MAC Address used by SET to connect to AP
+}
+
+RTD ::= SEQUENCE { -- as per [IEEE 802.11]
+ rTDValue INTEGER(0..16777216), -- measured RTD value corresponding to
+-- about 500km in units of 1/10 of nanoseconds
+ rTDUnits RTDUnits, -- units of RTD
+ rTDAccuracy INTEGER(0..255) OPTIONAL, -- RTD accuracy
+ ...}
+
+RTDUnits ::= ENUMERATED {
+ microseconds(0), hundredsofnanoseconds(1), tensofnanoseconds(2), nanoseconds(3), tenthsofnanoseconds(4), ...}
+
+ReportedLocation ::= SEQUENCE { -- as per [IEEE 802.11v]
+ locationEncodingDescriptor LocationEncodingDescriptor,
+ locationData LocationData, -- location data field
+ ...}
+
+LocationEncodingDescriptor ::= ENUMERATED {
+ lci (0), asn1(1), ...}
+
+LocationData ::= SEQUENCE {
+ locationAccuracy INTEGER(0..4294967295) OPTIONAL,
+ locationValue OCTET STRING (SIZE(1..128)),
+ ...}
+
+RepLocation ::= CHOICE {
+ lciLocData LciLocData, -- location data field as per [IEEE 802.11] and [RFC 3825]
+ ... -- future formats may be added here
+}
+
+LciLocData ::= SEQUENCE {
+ locationDataLCI LocationDataLCI OPTIONAL,
+...}
+
+LocationDataLCI ::= SEQUENCE {
+ latitudeResolution BIT STRING (SIZE (6)),
+ latitude BIT STRING (SIZE (34)),
+ longitudeResolution BIT STRING (SIZE (6)),
+ longitude BIT STRING (SIZE (34)),
+ altitudeType BIT STRING (SIZE (4)),
+ altitudeResolution BIT STRING (SIZE (6)),
+ altitude BIT STRING (SIZE (30)),
+ datum BIT STRING (SIZE (8)),
+...}
+
+WimaxBSInformation ::= SEQUENCE {
+ wimaxBsID WimaxBsID, -- WiMax serving base station ID
+ wimaxRTD WimaxRTD OPTIONAL, -- Round Trip Delay measurements
+ wimaxNMRList WimaxNMRList OPTIONAL, -- Network measurements
+ ...}
+
+WimaxBsID ::= SEQUENCE {
+ bsID-MSB BIT STRING (SIZE(24)) OPTIONAL,
+ bsID-LSB BIT STRING (SIZE(24)),
+ ...}
+-- if only LSB is present, MSB is assumed to be identical to the current serving BS or clamped on network value
+
+WimaxRTD ::= SEQUENCE {
+ rtd INTEGER (0..65535), -- Round trip delay of serving BS in units of 10 ns
+ rTDstd INTEGER (0..1023) OPTIONAL, -- Standard deviation of round trip delay in units of 10 ns
+...}
+
+WimaxNMRList ::= SEQUENCE (SIZE (1..maxWimaxBSMeas)) OF WimaxNMR
+
+WimaxNMR ::= SEQUENCE {
+ wimaxBsID WimaxBsID, -- WiMax BS ID for the measurement
+ relDelay INTEGER (-32768..32767) OPTIONAL, -- Relative delay for this neighbouring BSs to the serving cell in units of 10 ns
+ relDelaystd INTEGER (0..1023) OPTIONAL, -- Standard deviation of Relative delay in units of 10 ns
+ rssi INTEGER (0..255) OPTIONAL, -- RSSI in 0.25 dBm steps, starting from -103.75 dBm
+ rSSIstd INTEGER (0..63) OPTIONAL, -- Standard deviation of RSSI in dB
+ bSTxPower INTEGER (0..255) OPTIONAL, -- BS transmit power in 0.25 dBm steps, starting from -103.75 dBm
+ cinr INTEGER (0..255) OPTIONAL, -- in dB
+ cINRstd INTEGER (0..63) OPTIONAL, -- Standard deviation of CINR in dB
+ bSLocation ReportedLocation OPTIONAL, -- Reported location of the BS
+...}
+
+maxWimaxBSMeas INTEGER ::= 32
+
+UTRAN-GPSReferenceTimeAssistance ::= SEQUENCE {
+utran-GPSReferenceTime UTRAN-GPSReferenceTime,
+gpsReferenceTimeUncertainty INTEGER (0..127) OPTIONAL,
+utranGPSDriftRate UTRANGPSDriftRate OPTIONAL}
+
+UTRAN-GPSReferenceTime ::= SEQUENCE {
+-- For utran-GPSTimingOfCell values above 2322431999999 are not used in this version of the specification. Actual value utran-GPSTimingOfCell = (ms-part * 4294967296) + ls-part used on the downlink i.e. sent from the SLP to the SET
+ utran-GPSTimingOfCell SEQUENCE {
+ ms-part INTEGER (0..1023),
+ ls-part INTEGER (0..4294967295)},
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info},
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID}} OPTIONAL,
+ sfn INTEGER (0..4095)}
+
+UTRANGPSDriftRate ::= ENUMERATED {
+ utran-GPSDrift0, utran-GPSDrift1, utran-GPSDrift2,
+ utran-GPSDrift5, utran-GPSDrift10, utran-GPSDrift15,
+ utran-GPSDrift25, utran-GPSDrift50, utran-GPSDrift-1,
+ utran-GPSDrift-2, utran-GPSDrift-5, utran-GPSDrift-10,
+ utran-GPSDrift-15, utran-GPSDrift-25, utran-GPSDrift-50}
+
+UTRAN-GPSReferenceTimeResult ::= SEQUENCE {
+-- For ue-GPSTimingOfCell values above 37158911999999 are not used in this version of the specification. Actual value utran-GPSTimingOfCell = (ms-part * 4294967296) + ls-part used on the uplink i.e. reported by the SET to the SLP
+ set-GPSTimingOfCell SEQUENCE {
+ ms-part INTEGER (0.. 16383),
+ ls-part INTEGER (0..4294967295)},
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info},
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID}} OPTIONAL,
+ sfn INTEGER (0..4095),
+ gpsReferenceTimeUncertainty INTEGER (0..127) OPTIONAL,
+ ...}
+
+UTRAN-GANSSReferenceTimeAssistance ::= SEQUENCE {
+ganssDay INTEGER (0..8191) OPTIONAL,
+ganssTimeID INTEGER (0..15),
+utran-GANSSReferenceTime UTRAN-GANSSReferenceTime,
+utranGANSSDriftRate UTRANGANSSDriftRate OPTIONAL}
+
+UTRAN-GANSSReferenceTime ::= SEQUENCE {
+
+ ganssTOD INTEGER (0..86399),
+ utran-GANSSTimingOfCell INTEGER (0..3999999)OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info},
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID}} OPTIONAL,
+ sfn INTEGER (0..4095),
+ ganss-TODUncertainty INTEGER (0..127) OPTIONAL,
+...}
+
+UTRANGANSSDriftRate ::= ENUMERATED {
+ utran-GANSSDrift0, utran-GANSSDrift1, utran-GANSSDrift2,
+ utran-GANSSDrift5, utran-GANSSDrift10, utran-GANSSDrift15,
+ utran-GANSSDrift25, utran-GANSSDrift50, utran-GANSSDrift-1,
+ utran-GANSSDrift-2, utran-GANSSDrift-5, utran-GANSSDrift-10,
+ utran-GANSSDrift-15, utran-GANSSDrift-25, utran-GANSSDrift-50}
+
+UTRAN-GANSSReferenceTimeResult ::= SEQUENCE {
+ ganssTimeID INTEGER (0..15),
+ set-GANSSReferenceTime SET-GANSSReferenceTime,
+ ...}
+
+SET-GANSSReferenceTime ::= SEQUENCE {
+-- Actual value [ns] = (ms-Part * 4294967296 + ls-Part) * 250
+-- Actual values [ns] > 86399999999750 are reserved and are considered a
+-- protocol error
+ set-GANSSTimingOfCell SEQUENCE {
+ ms-part INTEGER (0..80),
+ ls-part INTEGER (0..4294967295)} OPTIONAL,
+ modeSpecificInfo CHOICE {
+ fdd SEQUENCE {
+ referenceIdentity PrimaryCPICH-Info},
+ tdd SEQUENCE {
+ referenceIdentity CellParametersID}} OPTIONAL,
+ sfn INTEGER (0..4095),
+ ganss-TODUncertainty INTEGER (0..127) OPTIONAL,
+...}
+
+GNSSPosTechnology ::= SEQUENCE {
+ gps BOOLEAN,
+ galileo BOOLEAN,
+ sbas BOOLEAN,
+ modernized-gps BOOLEAN,
+ qzss BOOLEAN,
+ glonass BOOLEAN,
+...,
+ bds BOOLEAN OPTIONAL}
+
+-- indicates MS support for particular GANSS signals and frequencies coding according to parameter definition in section 10.9
+
+GANSSSignals ::= BIT STRING {
+ signal1 (0),
+ signal2 (1),
+ signal3 (2),
+ signal4 (3),
+ signal5 (4),
+ signal6 (5),
+ signal7 (6),
+ signal8 (7)} (SIZE (1..8))
+
+SPCSETKey ::= BIT STRING(SIZE (128))
+
+SPCTID ::= SEQUENCE {
+ rand BIT STRING(SIZE (128)),
+ slpFQDN FQDN,
+ ...}
+
+SPCSETKeylifetime ::= INTEGER (1..24) -- units in hours
+
+CauseCode ::= ENUMERATED {
+ servingNetWorkNotInAreaIdList(0), sETCapabilitiesChanged(1), noSUPLCoverage(2), ...}
+
+ThirdParty ::= SEQUENCE (SIZE (1..64)) OF ThirdPartyID
+
+ThirdPartyID ::= CHOICE {
+ logicalName IA5String(SIZE (1..1000)),
+ msisdn OCTET STRING(SIZE (8)),
+ emailaddr IA5String(SIZE (1..1000)),
+-- sip-uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~%#@?")) (SIZE (1..255)),
+-- ims-public-identity VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~%#@?")) (SIZE (1..255)),
+-- # asn2wrs does not handle '%' in the restricted string
+ sip-uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~#@?")) (SIZE (1..255)),
+ ims-public-identity VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~#@?")) (SIZE (1..255)),
+ min BIT STRING(SIZE (34)), -- coded according to TIA-553
+ mdn OCTET STRING(SIZE (8)),
+-- uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | "./-_~%#")) (SIZE (1..255)),
+ uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | "./-_~#")) (SIZE (1..255)),
+...}
+
+ApplicationID ::= SEQUENCE {
+ appProvider IA5String(SIZE (1..24)), -- The application provider
+ appName IA5String(SIZE (1..32)), -- The application name
+ appVersion IA5String(SIZE (1..8)) OPTIONAL, -- The application version
+...}
+
+ReportingCap ::= SEQUENCE {
+ minInt INTEGER (1..3600), -- units in seconds
+ maxInt INTEGER (1..1440) OPTIONAL, -- units in minutes
+ repMode RepMode,
+ batchRepCap BatchRepCap OPTIONAL, -- only used for batch and quasi real time reporting
+ ...}
+
+RepMode ::= SEQUENCE {
+ realtime BOOLEAN,
+ quasirealtime BOOLEAN,
+ batch BOOLEAN,
+ ...}
+
+BatchRepCap ::= SEQUENCE {
+ report-position BOOLEAN, -- set to "true" if reporting of position is supported
+ report-measurements BOOLEAN, -- set to "true" if reporting of measurements is supported
+ max-num-positions INTEGER (1..1024) OPTIONAL,
+ max-num-measurements INTEGER (1..1024) OPTIONAL,
+ ...}
+
+Coordinate::= SEQUENCE {
+ latitudeSign ENUMERATED {north(0), south(1)},
+ latitude INTEGER(0..8388607),
+ longitude INTEGER(-8388608..8388607)} -- Coding as in [3GPP GAD]
+
+CircularArea ::= SEQUENCE {
+ coordinate Coordinate,
+ radius INTEGER(1..1000000), -- radius in meters
+ radius-min INTEGER(1..1000000) OPTIONAL, -- hysteresis minimum radius
+ radius-max INTEGER(1..1500000) OPTIONAL} -- hysteresis maximum radius
+
+EllipticalArea ::= SEQUENCE {
+ coordinate Coordinate,
+ semiMajor INTEGER(1..1000000), -- units in meters
+ semiMajor-min INTEGER(1..1000000) OPTIONAL, -- hysteresis minimum semiMajor
+ semiMajor-max INTEGER(1..1500000) OPTIONAL, -- hysteresis maximum semiMajor
+ semiMinor INTEGER(1..1000000), -- units in meters
+ semiMinor-min INTEGER(1..1000000) OPTIONAL, -- hysteresis minimum semiMinor
+ semiMinor-max INTEGER(1..1500000) OPTIONAL, -- hysteresis maximum semiMinor
+ angle INTEGER(0.. 179)} -- units in degrees. The angle is defined as the angle between the semi-major axis and North, increasing in a clockwise direction. An angle of 0 represents an ellipse with the semi-major axis pointing North/South while an angle of 90 represents an ellipse with the semi-major axis pointing East/West.
+
+PolygonArea ::= SEQUENCE {
+ polygonDescription PolygonDescription,
+ polygonHysteresis INTEGER(1..100000) OPTIONAL} --units in meters
+
+PolygonDescription ::= SEQUENCE (SIZE (3..15)) OF Coordinate
+
+END
+
diff --git a/epan/dissectors/asn1/ulp/ULP.asn b/epan/dissectors/asn1/ulp/ULP.asn
new file mode 100644
index 0000000000..bbcd7563a3
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/ULP.asn
@@ -0,0 +1,70 @@
+-- ULP.asn
+-- Taken from OMA UserPlane Location Protocol
+-- http://member.openmobilealliance.org/ftp/Public_documents/LOC/Permanent_documents/OMA-TS-ULP-V2_0_2-20140708-A.zip
+--
+-- 11.1 Common Part
+--
+
+ULP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ Version, SessionID
+FROM ULP-Components
+ SUPLINIT
+FROM SUPL-INIT
+ SUPLSTART
+FROM SUPL-START
+ SUPLRESPONSE
+FROM SUPL-RESPONSE
+ SUPLPOSINIT
+FROM SUPL-POS-INIT
+ SUPLPOS
+FROM SUPL-POS
+ SUPLEND
+FROM SUPL-END
+ SUPLAUTHREQ
+FROM SUPL-AUTH-REQ
+ SUPLAUTHRESP
+FROM SUPL-AUTH-RESP
+ Ver2-SUPLTRIGGEREDSTART
+FROM SUPL-TRIGGERED-START
+ Ver2-SUPLTRIGGEREDRESPONSE
+FROM SUPL-TRIGGERED-RESPONSE
+ Ver2-SUPLREPORT
+FROM SUPL-REPORT
+ Ver2-SUPLTRIGGEREDSTOP
+FROM SUPL-TRIGGERED-STOP
+ Ver2-SUPLSETINIT
+FROM SUPL-SET-INIT
+ Ver2-SUPLNOTIFY
+FROM SUPL-NOTIFY
+ Ver2-SUPLNOTIFYRESPONSE
+FROM SUPL-NOTIFY-RESPONSE;
+
+-- general ULP PDU layout;--
+ULP-PDU ::= SEQUENCE {
+ length INTEGER(0..65535),
+ version Version,
+ sessionID SessionID,
+ message UlpMessage}
+
+UlpMessage ::= CHOICE {
+ msSUPLINIT SUPLINIT,
+ msSUPLSTART SUPLSTART,
+ msSUPLRESPONSE SUPLRESPONSE,
+ msSUPLPOSINIT SUPLPOSINIT,
+ msSUPLPOS SUPLPOS,
+ msSUPLEND SUPLEND,
+ msSUPLAUTHREQ SUPLAUTHREQ,
+ msSUPLAUTHRESP SUPLAUTHRESP,
+ ...,
+ msSUPLTRIGGEREDSTART Ver2-SUPLTRIGGEREDSTART,
+ msSUPLTRIGGEREDRESPONSE Ver2-SUPLTRIGGEREDRESPONSE,
+ msSUPLTRIGGEREDSTOP Ver2-SUPLTRIGGEREDSTOP,
+ msSUPLNOTIFY Ver2-SUPLNOTIFY,
+ msSUPLNOTIFYRESPONSE Ver2-SUPLNOTIFYRESPONSE,
+ msSUPLSETINIT Ver2-SUPLSETINIT,
+ msSUPLREPORT Ver2-SUPLREPORT}
+
+END
diff --git a/epan/dissectors/asn1/ulp/packet-ulp-template.c b/epan/dissectors/asn1/ulp/packet-ulp-template.c
new file mode 100644
index 0000000000..4e35e33a3b
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/packet-ulp-template.c
@@ -0,0 +1,469 @@
+/* packet-ulp.c
+ * Routines for OMA UserPlane Location Protocol packet dissection
+ * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * ref OMA-TS-ULP-V2_0_2-20140708-A
+ * http://www.openmobilealliance.org
+ */
+
+#include "config.h"
+
+#include "math.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-tcp.h"
+#include "packet-gsm_map.h"
+#include "packet-e164.h"
+#include "packet-e212.h"
+
+#define PNAME "OMA UserPlane Location Protocol"
+#define PSNAME "ULP"
+#define PFNAME "ulp"
+
+void proto_register_ulp(void);
+
+static dissector_handle_t rrlp_handle;
+static dissector_handle_t lpp_handle;
+
+/* IANA Registered Ports
+ * oma-ulp 7275/tcp OMA UserPlane Location
+ * oma-ulp 7275/udp OMA UserPlane Location
+ */
+static guint gbl_ulp_tcp_port = 7275;
+static guint gbl_ulp_udp_port = 7275;
+
+/* Initialize the protocol and registered fields */
+static int proto_ulp = -1;
+
+
+#define ULP_HEADER_SIZE 2
+
+static gboolean ulp_desegment = TRUE;
+
+#include "packet-ulp-hf.c"
+static int hf_ulp_mobile_directory_number = -1;
+static int hf_ulp_ganssTimeModels_bit0 = -1;
+static int hf_ulp_ganssTimeModels_bit1 = -1;
+static int hf_ulp_ganssTimeModels_bit2 = -1;
+static int hf_ulp_ganssTimeModels_bit3 = -1;
+static int hf_ulp_ganssTimeModels_bit4 = -1;
+static int hf_ulp_ganssTimeModels_spare = -1;
+
+/* Initialize the subtree pointers */
+static gint ett_ulp = -1;
+static gint ett_ulp_setid = -1;
+static gint ett_ulp_thirdPartyId = -1;
+static gint ett_ulp_ganssTimeModels = -1;
+#include "packet-ulp-ett.c"
+
+static const value_string ulp_ganss_id_vals[] = {
+ { 0, "Galileo"},
+ { 1, "SBAS"},
+ { 2, "Modernized GPS"},
+ { 3, "QZSS"},
+ { 4, "GLONASS"},
+ { 5, "BDS"},
+ { 0, NULL},
+};
+
+static const value_string ulp_ganss_sbas_id_vals[] = {
+ { 0, "WAAS"},
+ { 1, "EGNOS"},
+ { 2, "MSAS"},
+ { 3, "GAGAN"},
+ { 0, NULL},
+};
+
+static void
+ulp_ganssDataBitInterval_fmt(gchar *s, guint32 v)
+{
+ if (v == 15) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Time interval is not specified (15)");
+ } else {
+ double interval = (0.1*pow(2, (double)v));
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%u)", interval, v);
+ }
+}
+
+static void
+ulp_ExtendedEphemeris_validity_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%u h (%u)", 4*v, v);
+}
+
+static void
+ulp_PositionEstimate_latitude_fmt(gchar *s, guint32 v)
+{
+ double latitude = ((double)v*90)/pow(2,23);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", latitude, v);
+}
+
+static void
+ulp_PositionEstimate_longitude_fmt(gchar *s, guint32 v)
+{
+ double longitude = ((double)(gint32)v*360)/pow(2,24);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", longitude, v);
+}
+
+static void
+ulp_NMRelement_rxLev_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RxLev < -110 dBm (0)");
+ } else if (v == 63) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RxLev >= -48 dBm (63)");
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d dBm <= RxLev < %d dBm (%u)", -111+v, -110+v, v);
+ }
+}
+
+static void
+ulp_UTRA_CarrierRSSI_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100 dBm (0)");
+ } else if (v == 76) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSSI >= -25 dBm (76)");
+ } else if (v > 76) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d dBm <= RSSI < %d dBm (%u)", -101+v, -100+v, v);
+ }
+}
+
+static void
+ulp_PrimaryCCPCH_RSCP_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSCP < -115 dBm (0)");
+ } else if (v == 91) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSCP >= -25 dBm (91)");
+ } else if (v > 91) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d dBm <= RSCP < %d dBm (%u)", -116+v, -115+v, v);
+ }
+}
+
+static void
+ulp_CPICH_Ec_N0_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 < -24 dB (0)");
+ } else if (v == 49) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 >= 0 dB (49)");
+ } else if (v > 49) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f dB <= CPICH Ec/N0 < %.1f dB (%u)", -24.5+((float)v/2), -24+((float)v/2), v);
+ }
+}
+
+static void
+ulp_CPICH_RSCP_fmt(gchar *s, guint32 v)
+{
+ if (v == 123) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP < -120 dBm (123)");
+ } else if (v > 123) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d dBm <= CPICH RSCP < %d dBm (%u)", -244+v, -243+v, v);
+ } else if (v == 91) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP >= -25 dBm (91)");
+ } else if (v < 91) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d dBm < CPICH RSCP <= %d dBm (%u)", -116+v, -115+v, v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
+ }
+}
+
+static void
+ulp_QoP_horacc_fmt(gchar *s, guint32 v)
+{
+ double uncertainty = 10*(pow(1.1, (double)v)-1);
+
+ if (uncertainty < 1000) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m (%u)", uncertainty, v);
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f km (%u)", uncertainty/1000, v);
+ }
+}
+
+static void
+ulp_QoP_veracc_fmt(gchar *s, guint32 v)
+{
+ double uncertainty = 45*(pow(1.025, (double)v)-1);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f m (%u)", uncertainty, v);
+}
+
+static void
+ulp_QoP_delay_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%g s (%u)", pow(2, (double)v), v);
+}
+
+static const true_false_string ulp_vertical_dir_val = {
+ "Downward",
+ "Upward"
+};
+
+static void
+ulp_RelativeTime_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.2f s (%u)", 0.01*v, v);
+}
+
+static void
+ulp_RSRP_Range_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140 dBm (0)");
+ } else if (v == 97) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSRP >= -44 dBm (97)");
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%d dBm <= RSRP < %d dBm (%u)", -141+v, -140+v, v);
+ }
+}
+
+static void
+ulp_RSRQ_Range_fmt(gchar *s, guint32 v)
+{
+ if (v == 0) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)");
+ } else if (v == 64) {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ >= -3 dB (34)");
+ } else {
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f dB <= RSRQ < %.1f dB (%u)", -20+((float)v/2), -19.5+((float)v/2), v);
+ }
+}
+
+static void
+ulp_SignalDelta_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%s dB (%u)", v ? "0.5" : "0", v);
+}
+
+static void
+ulp_locationAccuracy_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f m (%u)", 0.1*v, v);
+}
+
+static void
+ulp_WimaxRTD_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.2f us (%u)", 0.01*v, v);
+}
+
+static void
+ulp_WimaxNMR_rssi_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.2f dBm (%u)", -103.75+(0.25*v), v);
+}
+
+static void
+ulp_UTRAN_gpsReferenceTimeUncertainty_fmt(gchar *s, guint32 v)
+{
+ double uncertainty = 0.0022*(pow(1.18, (double)v)-1);
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f us (%u)", uncertainty, v);
+}
+
+static const value_string ulp_ganss_time_id_vals[] = {
+ { 0, "Galileo"},
+ { 1, "QZSS"},
+ { 2, "GLONASS"},
+ { 3, "BDS"},
+ { 0, NULL},
+};
+
+static void
+ulp_utran_GANSSTimingOfCell_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.2f us (%u)", 0.25*v, v);
+}
+
+static void
+ulp_Coordinate_latitude_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)",
+ ((float)v/8388607.0)*90, v);
+}
+
+static void
+ulp_Coordinate_longitude_fmt(gchar *s, guint32 v)
+{
+ gint32 longitude = (gint32) v;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%d)",
+ ((float)longitude/8388608.0)*180, longitude);
+}
+
+/* Include constants */
+#include "packet-ulp-val.h"
+
+typedef struct
+{
+ guint8 notif_enc_type;
+ guint8 ganss_req_gen_data_ganss_id;
+} ulp_private_data_t;
+
+static ulp_private_data_t* ulp_get_private_data(asn1_ctx_t *actx)
+{
+ if (actx->private_data == NULL) {
+ actx->private_data = wmem_new0(wmem_packet_scope(), ulp_private_data_t);
+ }
+ return (ulp_private_data_t*)actx->private_data;
+}
+
+#include "packet-ulp-fn.c"
+
+
+static guint
+get_ulp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
+{
+ /* PDU length = Message length */
+ return tvb_get_ntohs(tvb,offset);
+}
+
+static int
+dissect_ulp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
+{
+ tcp_dissect_pdus(tvb, pinfo, tree, ulp_desegment, ULP_HEADER_SIZE,
+ get_ulp_pdu_len, dissect_ULP_PDU_PDU, data);
+ return tvb_captured_length(tvb);
+}
+
+void proto_reg_handoff_ulp(void);
+
+/*--- proto_register_ulp -------------------------------------------*/
+void proto_register_ulp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-ulp-hfarr.c"
+ { &hf_ulp_mobile_directory_number,
+ { "Mobile Directory Number", "ulp.mobile_directory_number",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ulp_ganssTimeModels_bit0,
+ { "GPS", "ulp.ganssTimeModels.gps",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x8000,
+ NULL, HFILL }},
+ { &hf_ulp_ganssTimeModels_bit1,
+ { "Galileo", "ulp.ganssTimeModels.galileo",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x4000,
+ NULL, HFILL }},
+ { &hf_ulp_ganssTimeModels_bit2,
+ { "QZSS", "ulp.ganssTimeModels.qzss",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x2000,
+ NULL, HFILL }},
+ { &hf_ulp_ganssTimeModels_bit3,
+ { "GLONASS", "ulp.ganssTimeModels.glonass",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x1000,
+ NULL, HFILL }},
+ { &hf_ulp_ganssTimeModels_bit4,
+ { "BDS", "ulp.ganssTimeModels.bds",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0800,
+ NULL, HFILL }},
+ { &hf_ulp_ganssTimeModels_spare,
+ { "Spare", "ulp.ganssTimeModels.spare",
+ FT_UINT16, BASE_HEX, NULL, 0x07ff,
+ NULL, HFILL }},
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ulp,
+ &ett_ulp_setid,
+ &ett_ulp_thirdPartyId,
+ &ett_ulp_ganssTimeModels,
+#include "packet-ulp-ettarr.c"
+ };
+
+ module_t *ulp_module;
+
+
+ /* Register protocol */
+ proto_ulp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("ulp", dissect_ulp_tcp, proto_ulp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ulp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ ulp_module = prefs_register_protocol(proto_ulp,proto_reg_handoff_ulp);
+
+ prefs_register_bool_preference(ulp_module, "desegment_ulp_messages",
+ "Reassemble ULP messages spanning multiple TCP segments",
+ "Whether the ULP dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &ulp_desegment);
+
+ /* Register a configuration option for port */
+ prefs_register_uint_preference(ulp_module, "tcp.port",
+ "ULP TCP Port",
+ "Set the TCP port for ULP messages (IANA registered port is 7275)",
+ 10,
+ &gbl_ulp_tcp_port);
+ prefs_register_uint_preference(ulp_module, "udp.port",
+ "ULP UDP Port",
+ "Set the UDP port for ULP messages (IANA registered port is 7275)",
+ 10,
+ &gbl_ulp_udp_port);
+
+}
+
+
+/*--- proto_reg_handoff_ulp ---------------------------------------*/
+void
+proto_reg_handoff_ulp(void)
+{
+ static gboolean initialized = FALSE;
+ static dissector_handle_t ulp_tcp_handle, ulp_udp_handle;
+ static guint local_ulp_tcp_port, local_ulp_udp_port;
+
+ if (!initialized) {
+ ulp_tcp_handle = find_dissector("ulp");
+ dissector_add_string("media_type","application/oma-supl-ulp", ulp_tcp_handle);
+ dissector_add_string("media_type","application/vnd.omaloc-supl-init", ulp_tcp_handle);
+ ulp_udp_handle = create_dissector_handle(dissect_ULP_PDU_PDU, proto_ulp);
+ rrlp_handle = find_dissector("rrlp");
+ lpp_handle = find_dissector("lpp");
+ initialized = TRUE;
+ } else {
+ dissector_delete_uint("tcp.port", local_ulp_tcp_port, ulp_tcp_handle);
+ dissector_delete_uint("udp.port", local_ulp_udp_port, ulp_udp_handle);
+ }
+
+ local_ulp_tcp_port = gbl_ulp_tcp_port;
+ dissector_add_uint("tcp.port", gbl_ulp_tcp_port, ulp_tcp_handle);
+ local_ulp_udp_port = gbl_ulp_udp_port;
+ dissector_add_uint("udp.port", gbl_ulp_udp_port, ulp_udp_handle);
+}
+
diff --git a/epan/dissectors/asn1/ulp/ulp.cnf b/epan/dissectors/asn1/ulp/ulp.cnf
new file mode 100644
index 0000000000..05d8550c14
--- /dev/null
+++ b/epan/dissectors/asn1/ulp/ulp.cnf
@@ -0,0 +1,794 @@
+# upl.cnf
+# upl conformation file
+# Copyright 2006-2010 Anders Broman
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.PDU
+ULP-PDU
+#.END
+
+#.TYPE_RENAME
+FrequencyInfo/modeSpecificInfo FrequencySpecificInfo
+#.END
+
+#.FIELD_RENAME
+FrequencyInfo/modeSpecificInfo modeSpecificFrequencyInfo
+FrequencyInfo/modeSpecificInfo/fdd fdd_fr
+FrequencyInfo/modeSpecificInfo/tdd tdd_fr
+SlpSessionID/sessionID sessionSlpID
+SETId/min minsi
+Coordinate/latitude CoordinateLatitude
+Coordinate/longitude CoordinateLongitude
+#.END
+
+#.FN_HDR ULP-PDU
+ proto_item *it;
+ proto_tree *ulp_tree;
+
+ it = proto_tree_add_item(tree, proto_ulp, tvb, 0, -1, ENC_NA);
+ ulp_tree = proto_item_add_subtree(it, ett_ulp);
+
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
+ col_clear(actx->pinfo->cinfo, COL_INFO);
+#.END
+
+#.FN_BODY ULP-PDU TREE=ulp_tree
+%(DEFAULT_BODY)s
+#.END
+
+#.FN_BODY UlpMessage VAL_PTR = &UlpMessage
+
+guint32 UlpMessage;
+
+ %(DEFAULT_BODY)s
+
+ col_prepend_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "%%s ", val_to_str(UlpMessage,ulp_UlpMessage_vals,"Unknown"));
+
+#.END
+
+#.FN_BODY Notification
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+ ulp_priv->notif_enc_type = -1;
+%(DEFAULT_BODY)s
+
+#.FN_BODY EncodingType VAL_PTR=&val
+ guint32 val;
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+ ulp_priv->notif_enc_type = (guint8) val;
+
+#.FN_BODY Notification/requestorId VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+ switch(ulp_priv->notif_enc_type) {
+ case 0: /* UCS-2 */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb),
+ ENC_UCS_2|ENC_BIG_ENDIAN);
+ break;
+ case 1: /* GSM 7bits */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb), ENC_3GPP_TS_23_038_7BITS|ENC_NA);
+ break;
+ case 2: /* UTF-8 */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb), ENC_UTF_8|ENC_NA);
+ break;
+ default:
+ actx->created_item = proto_tree_add_string(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb),
+ tvb_bytes_to_str(wmem_packet_scope(), val_tvb, 0,
+ tvb_reported_length(val_tvb)));
+ break;
+ }
+ }
+
+#.TYPE_ATTR
+Notification/requestorId TYPE=FT_STRING DISPLAY=STR_UNICODE
+
+#.FN_BODY Notification/clientName VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+ switch(ulp_priv->notif_enc_type) {
+ case 0: /* UCS-2 */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb),
+ ENC_UCS_2|ENC_BIG_ENDIAN);
+ break;
+ case 1: /* GSM 7bits */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb), ENC_3GPP_TS_23_038_7BITS|ENC_NA);
+ break;
+ case 2: /* UTF-8 */
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb), ENC_UTF_8|ENC_NA);
+ break;
+ default:
+ actx->created_item = proto_tree_add_string(tree, hf_index, val_tvb, 0,
+ tvb_reported_length(val_tvb),
+ tvb_bytes_to_str(wmem_packet_scope(), val_tvb, 0,
+ tvb_reported_length(val_tvb)));
+ break;
+ }
+ }
+
+#.TYPE_ATTR
+Notification/clientName TYPE=FT_STRING DISPLAY=STR_UNICODE
+
+#.FN_BODY NavigationModel/gpsToe
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " hr");
+
+#.FN_BODY NavigationModel/toeLimit
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " hr");
+
+#.FN_BODY PosPayLoad/rrlpPayload VAL_PTR = &rrlp_tvb
+ tvbuff_t *rrlp_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (rrlp_tvb && rrlp_handle) {
+ call_dissector(rrlp_handle, rrlp_tvb, %(ACTX)s->pinfo, tree);
+ }
+
+#.FN_BODY PeriodicParams/intervalBetweenFixes
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY PeriodicParams/startTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY AreaEventParams/startTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY AreaEventParams/stopTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY RepeatedReportingParams/minimumIntervalTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY WLANAreaId/apMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
+ }
+
+#.TYPE_ATTR
+WLANAreaId/apMACAddress TYPE=FT_ETHER
+
+#.TYPE_ATTR
+GANSSSignalsDescription/ganssId STRINGS=VALS(ulp_ganss_id_vals)
+
+#.FN_BODY TimeStamp/relativeTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY ReportingCriteria/minTimeInterval
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY TimeWindow/startTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " min");
+
+#.FN_BODY TimeWindow/stopTime
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " min");
+
+#.TYPE_ATTR
+GANSSPositionMethod/ganssId STRINGS=VALS(ulp_ganss_id_vals)
+
+#.FN_BODY GANSSPositionMethod/ganssSBASid VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 3, ENC_NA);
+ }
+
+#.TYPE_ATTR
+GANSSPositionMethod/ganssSBASid TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(ulp_ganss_sbas_id_vals)
+
+#.FN_BODY GanssReqGenericData/ganssId VAL_PTR=&val
+ guint32 val;
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+ ulp_priv->ganss_req_gen_data_ganss_id = (guint8) val;
+
+#.TYPE_ATTR
+GanssReqGenericData/ganssId STRINGS=VALS(ulp_ganss_id_vals)
+
+#.FN_BODY GanssReqGenericData/ganssSBASid VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 3, ENC_NA);
+ }
+
+#.TYPE_ATTR
+GanssReqGenericData/ganssSBASid TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(ulp_ganss_sbas_id_vals)
+
+#.FN_BODY GanssReqGenericData/ganssTimeModels VAL_PTR=&val_tvb
+ tvbuff_t *val_tvb;
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ulp_ganssTimeModels);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit0, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit1, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit2, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit3, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit4, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_spare, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY GanssNavigationModelData/ganssWeek
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+ if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
+ /* Not GLONASS */
+ proto_item_append_text(actx->created_item, " wk");
+ } else {
+ proto_item_append_text(actx->created_item, " d");
+ }
+
+#.FN_BODY GanssNavigationModelData/ganssToe VAL_PTR=&val
+ guint32 val;
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+
+#.FN_FTR GanssNavigationModelData/ganssToe
+ if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
+ /* Not GLONASS */
+ proto_item_append_text(actx->created_item, " h");
+ } else {
+ proto_item_set_text(actx->created_item, "%u min (%u)", 15*val, val);
+ }
+
+#.FN_BODY GanssNavigationModelData/t-toeLimit VAL_PTR=&val
+ guint32 val;
+ ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
+
+%(DEFAULT_BODY)s
+
+#.FN_FTR GanssNavigationModelData/t-toeLimit
+ if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
+ /* Not GLONASS */
+ proto_item_append_text(actx->created_item, " h");
+ } else {
+ proto_item_set_text(actx->created_item, "%u min (%u)", 30*val, val);
+ }
+
+#.FN_BODY GanssDataBits/ganssTODmin
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+ReqDataBitAssistanceList/ganssDataBitInterval DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_ganssDataBitInterval_fmt)
+
+#.TYPE_ATTR
+ExtendedEphemeris/validity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_ExtendedEphemeris_validity_fmt)
+
+#.FN_BODY Ver2-PosPayLoad-extension/lPPPayload/_item VAL_PTR = &lpp_tvb
+ tvbuff_t *lpp_tvb;
+
+%(DEFAULT_BODY)s
+
+ if (lpp_tvb && lpp_handle) {
+ call_dissector(lpp_handle, lpp_tvb, %(ACTX)s->pinfo, tree);
+ }
+
+#.FN_BODY SETId/msisdn VAL_PTR=&msisdn_tvb
+ tvbuff_t *msisdn_tvb;
+%(DEFAULT_BODY)s
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+#.FN_BODY SETId/mdn VAL_PTR=&mdn_tvb
+ tvbuff_t *mdn_tvb;
+%(DEFAULT_BODY)s
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+#.FN_BODY SETId/imsi VAL_PTR=&imsi_tvb
+ tvbuff_t *imsi_tvb;
+%(DEFAULT_BODY)s
+ if (imsi_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, FALSE);
+ }
+
+#.TYPE_ATTR
+IPAddress/ipv4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+IPAddress/ipv6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+
+#.TYPE_ATTR
+PositionEstimate/latitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_PositionEstimate_latitude_fmt)
+
+#.TYPE_ATTR
+PositionEstimate/longitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_PositionEstimate_longitude_fmt)
+
+#.TYPE_ATTR
+PositionEstimate/uncertainty/uncertaintySemiMajor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_horacc_fmt)
+
+#.TYPE_ATTR
+PositionEstimate/uncertainty/uncertaintySemiMinor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_horacc_fmt)
+
+#.FN_BODY PositionEstimate/uncertainty/orientationMajorAxis
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " degrees");
+
+#.FN_FTR PositionEstimate/confidence
+ proto_item_append_text(actx->created_item, "%%");
+
+#.FN_BODY AltitudeInfo/altitude
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.TYPE_ATTR
+AltitudeInfo/altUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_veracc_fmt)
+
+#.TYPE_ATTR
+NMRelement/rxLev DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_NMRelement_rxLev_fmt)
+
+#.TYPE_ATTR
+UTRA-CarrierRSSI DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRA_CarrierRSSI_fmt)
+
+#.TYPE_ATTR
+PrimaryCCPCH-RSCP DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_PrimaryCCPCH_RSCP_fmt)
+
+#.TYPE_ATTR
+CPICH-Ec-N0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_CPICH_Ec_N0_fmt)
+
+#.TYPE_ATTR
+CPICH-RSCP DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_CPICH_RSCP_fmt)
+
+#.TYPE_ATTR
+QoP/horacc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_horacc_fmt)
+
+#.TYPE_ATTR
+QoP/veracc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_veracc_fmt)
+
+#.FN_BODY QoP/maxLocAge
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+QoP/delay DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_delay_fmt)
+
+#.FN_BODY Horvel/bearing VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " degrees");
+ }
+
+#.TYPE_ATTR
+Horvel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horvel/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horvel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandvervel/verdirect VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 1, ENC_NA);
+ }
+
+#.TYPE_ATTR
+Horandvervel/verdirect TYPE=FT_BOOLEAN STRINGS=TFS(&ulp_vertical_dir_val)
+
+#.FN_BODY Horandvervel/bearing VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " degrees");
+ }
+
+#.TYPE_ATTR
+Horandvervel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandvervel/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandvervel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandvervel/verspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandvervel/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.FN_BODY Horveluncert/bearing VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " degrees");
+ }
+
+#.TYPE_ATTR
+Horveluncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horveluncert/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horveluncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horveluncert/uncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horveluncert/uncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/verdirect VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 1, ENC_NA);
+ }
+
+#.TYPE_ATTR
+Horandveruncert/verdirect TYPE=FT_BOOLEAN STRINGS=TFS(&ulp_vertical_dir_val)
+
+#.FN_BODY Horandveruncert/bearing VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " degrees");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/verspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/horuncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/horuncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.FN_BODY Horandveruncert/veruncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_item_append_text(actx->created_item, " km/h");
+ }
+
+#.TYPE_ATTR
+Horandveruncert/veruncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC
+
+#.TYPE_ATTR
+RelativeTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_RelativeTime_fmt)
+
+#.FN_BODY SupportedWLANApData/apMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
+ }
+
+#.TYPE_ATTR
+SupportedWLANApData/apMACAddress TYPE=FT_ETHER
+
+#.TYPE_ATTR
+RSRP-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_RSRP_Range_fmt)
+
+#.TYPE_ATTR
+RSRQ-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_RSRQ_Range_fmt)
+
+#.FN_BODY WlanAPInformation/apMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
+ }
+
+#.TYPE_ATTR
+WlanAPInformation/apMACAddress TYPE=FT_ETHER
+
+#.FN_BODY WlanAPInformation/apTransmitPower
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.FN_BODY WlanAPInformation/apAntennaGain
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBi");
+
+#.FN_BODY WlanAPInformation/apSignaltoNoise
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.FN_BODY WlanAPInformation/apSignalStrength
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.FN_BODY WlanAPInformation/setTransmitPower
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.FN_BODY WlanAPInformation/setAntennaGain
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBi");
+
+#.FN_BODY WlanAPInformation/setSignaltoNoise
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.FN_BODY WlanAPInformation/setSignalStrength
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dBm");
+
+#.TYPE_ATTR
+WlanAPInformation/apSignalStrengthDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
+
+#.TYPE_ATTR
+WlanAPInformation/apSignaltoNoiseDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
+
+#.TYPE_ATTR
+WlanAPInformation/setSignalStrengthDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
+
+#.TYPE_ATTR
+WlanAPInformation/setSignaltoNoiseDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
+
+#.FN_BODY WlanAPInformation/apSSID VAL_PTR=&ssid_tvb HF_INDEX=-1
+ tvbuff_t *ssid_tvb;
+
+%(DEFAULT_BODY)s
+ if (ssid_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA);
+ }
+
+#.TYPE_ATTR
+WlanAPInformation/apSSID TYPE=FT_STRING DISPLAY=STR_ASCII
+
+#.FN_BODY WlanAPInformation/setMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
+ tvbuff_t *val_tvb;
+
+%(DEFAULT_BODY)s
+ if (val_tvb) {
+ proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
+ }
+
+#.TYPE_ATTR
+WlanAPInformation/setMACAddress TYPE=FT_ETHER
+
+#.TYPE_ATTR
+LocationData/locationAccuracy DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_locationAccuracy_fmt)
+
+#.TYPE_ATTR
+WimaxRTD/rtd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
+
+#.TYPE_ATTR
+WimaxRTD/rTDstd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
+
+#.TYPE_ATTR
+WimaxNMR/relDelay DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
+
+#.TYPE_ATTR
+WimaxNMR/relDelaystd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
+
+#.TYPE_ATTR
+WimaxNMR/rssi DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxNMR_rssi_fmt)
+
+#.FN_BODY WimaxNMR/rSSIstd
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.TYPE_ATTR
+WimaxNMR/bSTxPower DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxNMR_rssi_fmt)
+
+#.FN_BODY WimaxNMR/cinr
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.FN_BODY WimaxNMR/cINRstd
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " dB");
+
+#.TYPE_ATTR
+UTRAN-GPSReferenceTimeAssistance/gpsReferenceTimeUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
+
+#.TYPE_ATTR
+UTRAN-GPSReferenceTimeResult/gpsReferenceTimeUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
+
+#.TYPE_ATTR
+UTRAN-GANSSReferenceTimeAssistance/ganssTimeID STRINGS=VALS(ulp_ganss_time_id_vals)
+
+#.FN_BODY UTRAN-GANSSReferenceTime/ganssTOD
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.TYPE_ATTR
+UTRAN-GANSSReferenceTime/utran-GANSSTimingOfCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_utran_GANSSTimingOfCell_fmt)
+
+#.TYPE_ATTR
+UTRAN-GANSSReferenceTime/ganss-TODUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
+
+#.TYPE_ATTR
+UTRAN-GANSSReferenceTimeResult/ganssTimeID STRINGS=VALS(ulp_ganss_time_id_vals)
+
+#.TYPE_ATTR
+SET-GANSSReferenceTime/ganss-TODUncertainty ulp_UTRAN_gpsReferenceTimeUncertainty_fmtulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
+
+#.FN_BODY ThirdPartyID/msisdn VAL_PTR=&msisdn_tvb
+ tvbuff_t *msisdn_tvb;
+%(DEFAULT_BODY)s
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+#.FN_BODY ThirdPartyID/sip-uri
+# asn2wrs does not handle '%' in the restricted string ( Has to be there twice)
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
+ 1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%%#@?", 72,
+ NULL);
+#.FN_BODY ThirdPartyID/ims-public-identity
+# asn2wrs does not handle '%' in the restricted string ( Has to be there twice)
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
+ 1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%%#@?", 72,
+ NULL);
+#.FN_BODY ThirdPartyID/mdn VAL_PTR=&mdn_tvb
+ tvbuff_t *mdn_tvb;
+%(DEFAULT_BODY)s
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+#.FN_BODY ThirdPartyID/uri
+# asn2wrs does not handle '%' in the restricted string ( Has to be there twice)
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
+ 1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%%#", 69,
+ NULL);
+
+#.FN_BODY ReportingCap/minInt
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " s");
+
+#.FN_BODY ReportingCap/maxInt
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " min");
+
+#.TYPE_ATTR
+Coordinate/latitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_Coordinate_latitude_fmt)
+
+#.TYPE_ATTR
+Coordinate/longitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_Coordinate_longitude_fmt)
+
+#.FN_BODY CircularArea/radius
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.FN_BODY EllipticalArea/semiMajor
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.FN_BODY EllipticalArea/semiMinor
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.FN_BODY EllipticalArea/angle
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " degrees");
+
+#.FN_BODY PolygonArea/polygonHysteresis
+%(DEFAULT_BODY)s
+ proto_item_append_text(actx->created_item, " m");
+
+#.END
diff --git a/epan/dissectors/asn1/wlancertextn/CMakeLists.txt b/epan/dissectors/asn1/wlancertextn/CMakeLists.txt
new file mode 100644
index 0000000000..45e773fafc
--- /dev/null
+++ b/epan/dissectors/asn1/wlancertextn/CMakeLists.txt
@@ -0,0 +1,48 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME wlancertextn )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ WLANCERTEXTN.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/wlancertextn/Makefile.am b/epan/dissectors/asn1/wlancertextn/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/wlancertextn/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/wlancertextn/Makefile.common b/epan/dissectors/asn1/wlancertextn/Makefile.common
new file mode 100644
index 0000000000..2940a92e49
--- /dev/null
+++ b/epan/dissectors/asn1/wlancertextn/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=wlancertextn
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ WLANCERTEXTN.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF=
+
diff --git a/epan/dissectors/asn1/wlancertextn/Makefile.nmake b/epan/dissectors/asn1/wlancertextn/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/wlancertextn/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/wlancertextn/WLANCERTEXTN.asn b/epan/dissectors/asn1/wlancertextn/WLANCERTEXTN.asn
new file mode 100644
index 0000000000..52bda2c963
--- /dev/null
+++ b/epan/dissectors/asn1/wlancertextn/WLANCERTEXTN.asn
@@ -0,0 +1,93 @@
+-- ASN definitions taken from RFC3770
+-- Copyright notice from RFC3770 follows below
+--
+-- RFC 3770 PPP and WLAN May 2004
+--
+-- 10. Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (2004). This document is subject
+-- to the rights, licenses and restrictions contained in BCP 78, and
+-- except as set forth therein, the authors retain all their rights.
+--
+-- This document and the information contained herein are provided on an
+-- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+-- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+-- ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+-- INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+-- INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+-- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--
+-- Intellectual Property
+--
+-- The IETF takes no position regarding the validity or scope of any
+-- Intellectual Property Rights or other rights that might be claimed to
+-- pertain to the implementation or use of the technology described in
+-- this document or the extent to which any license under such rights
+-- might or might not be available; nor does it represent that it has
+-- made any independent effort to identify any such rights. Information
+-- on the procedures with respect to rights in RFC documents can be
+-- found in BCP 78 and BCP 79.
+--
+-- Copies of IPR disclosures made to the IETF Secretariat and any
+-- assurances of licenses to be made available, or the result of an
+-- attempt made to obtain a general license or permission for the use of
+-- such proprietary rights by implementers or users of this
+-- specification can be obtained from the IETF on-line IPR repository at
+-- http://www.ietf.org/ipr.
+--
+-- The IETF invites any interested party to bring to its attention any
+-- copyrights, patents or patent applications, or other proprietary
+-- rights that may cover technology that may be required to implement
+-- this standard. Please address the information to the IETF at ietf-
+-- ipr@ietf.org.
+--
+-- Acknowledgement
+--
+-- Funding for the RFC Editor function is currently provided by the
+-- Internet Society.
+--
+
+
+ WLANCertExtn
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-wlan-extns(24) }
+
+ DEFINITIONS IMPLICIT TAGS ::=
+ BEGIN
+
+ -- OID Arcs
+
+ id-pe OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) 1 }
+
+ id-kp OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) 3 }
+
+ id-aca OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) 10 }
+
+ -- Extended Key Usage Values
+
+ id-kp-eapOverPPP OBJECT IDENTIFIER ::= { id-kp 13 }
+
+ id-kp-eapOverLAN OBJECT IDENTIFIER ::= { id-kp 14 }
+
+
+ -- Wireless LAN SSID Extension
+
+ id-pe-wlanSSID OBJECT IDENTIFIER ::= { id-pe 13 }
+
+ SSIDList ::= SEQUENCE SIZE (1..MAX) OF SSID
+
+ SSID ::= OCTET STRING (SIZE (1..32))
+
+ -- Wireless LAN SSID Attribute Certificate Attribute
+ -- Uses same syntax as the certificate extension: SSIDList
+
+ id-aca-wlanSSID OBJECT IDENTIFIER ::= { id-aca 6 }
+
+ END
diff --git a/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c b/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c
new file mode 100644
index 0000000000..9fbb68614c
--- /dev/null
+++ b/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c
@@ -0,0 +1,82 @@
+/* packet-wlancertextn.c
+ * Routines for Wireless Certificate Extension (RFC3770)
+ * Ronnie Sahlberg 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-wlancertextn.h"
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-x509sat.h"
+
+#define PNAME "Wlan Certificate Extension"
+#define PSNAME "WLANCERTEXTN"
+#define PFNAME "wlancertextn"
+
+void proto_register_wlancertextn(void);
+void proto_reg_handoff_wlancertextn(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_wlancertextn = -1;
+#include "packet-wlancertextn-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-wlancertextn-ett.c"
+
+#include "packet-wlancertextn-fn.c"
+
+
+/*--- proto_register_wlancertextn ----------------------------------------------*/
+void proto_register_wlancertextn(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-wlancertextn-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-wlancertextn-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_wlancertextn = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_wlancertextn, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_wlancertextn -------------------------------------------*/
+void proto_reg_handoff_wlancertextn(void) {
+#include "packet-wlancertextn-dis-tab.c"
+ oid_add_from_string("id-kp-eapOverPPP","1.3.6.1.5.5.7.3.13");
+ oid_add_from_string("id-kp-eapOverLAN","1.3.6.1.5.5.7.3.14");
+}
+
diff --git a/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.h b/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.h
new file mode 100644
index 0000000000..bc09a71e10
--- /dev/null
+++ b/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.h
@@ -0,0 +1,30 @@
+/* packet-wlancertextn.h
+ * Routines for Wireless Certificate Extensions (RFC3770) packet dissection
+ * Ronnie Sahlberg 2005
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_WLANCERTEXTN_H
+#define PACKET_WLANCERTEXTN_H
+
+/*#include "packet-wlancertextn-exp.h"*/
+
+#endif /* PACKET_WLANCERTEXTN_H */
+
diff --git a/epan/dissectors/asn1/wlancertextn/wlancertextn.cnf b/epan/dissectors/asn1/wlancertextn/wlancertextn.cnf
new file mode 100644
index 0000000000..2a86702974
--- /dev/null
+++ b/epan/dissectors/asn1/wlancertextn/wlancertextn.cnf
@@ -0,0 +1,21 @@
+# WlanCertExtn.cnf
+# WlanCertExtn conformation file
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.REGISTER
+
+SSIDList B "1.3.6.1.5.5.7.1.13" "id-pe-wlanSSID"
+SSIDList B "1.3.6.1.5.5.7.10.6" "id-aca-wlanSSID"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/x2ap/CMakeLists.txt b/epan/dissectors/asn1/x2ap/CMakeLists.txt
new file mode 100644
index 0000000000..d9267a98a4
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME x2ap )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ X2AP-CommonDataTypes.asn
+ X2AP-Constants.asn
+ X2AP-Containers.asn
+ X2AP-IEs.asn
+ X2AP-PDU-Contents.asn
+ X2AP-PDU-Descriptions.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/x2ap/Makefile.am b/epan/dissectors/asn1/x2ap/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/x2ap/Makefile.common b/epan/dissectors/asn1/x2ap/Makefile.common
new file mode 100644
index 0000000000..acb56be71a
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/Makefile.common
@@ -0,0 +1,45 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = x2ap
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ X2AP-CommonDataTypes.asn \
+ X2AP-Constants.asn \
+ X2AP-Containers.asn \
+ X2AP-IEs.asn \
+ X2AP-PDU-Contents.asn \
+ X2AP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/x2ap/Makefile.nmake b/epan/dissectors/asn1/x2ap/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn b/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..a738ddfcec
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn
@@ -0,0 +1,51 @@
+-- 3GPP TS 36.423 V12.2.0 (2014-06)
+
+-- 9.3.6 Common definitions
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+X2AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0.. maxPrivateIEs),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
+
+END
diff --git a/epan/dissectors/asn1/x2ap/X2AP-Constants.asn b/epan/dissectors/asn1/x2ap/X2AP-Constants.asn
new file mode 100644
index 0000000000..2fadd89053
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/X2AP-Constants.asn
@@ -0,0 +1,189 @@
+-- 3GPP TS 36.423 V10.3.0 (2011-09)
+-- 9.3.7 Constant Definitions
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+X2AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM X2AP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-handoverPreparation ProcedureCode ::= 0
+id-handoverCancel ProcedureCode ::= 1
+id-loadIndication ProcedureCode ::= 2
+id-errorIndication ProcedureCode ::= 3
+id-snStatusTransfer ProcedureCode ::= 4
+id-uEContextRelease ProcedureCode ::= 5
+id-x2Setup ProcedureCode ::= 6
+id-reset ProcedureCode ::= 7
+id-eNBConfigurationUpdate ProcedureCode ::= 8
+id-resourceStatusReportingInitiation ProcedureCode ::= 9
+id-resourceStatusReporting ProcedureCode ::= 10
+id-privateMessage ProcedureCode ::= 11
+id-mobilitySettingsChange ProcedureCode ::= 12
+id-rLFIndication ProcedureCode ::= 13
+id-handoverReport ProcedureCode ::= 14
+id-cellActivation ProcedureCode ::= 15
+id-x2Release ProcedureCode ::= 16
+id-x2MessageTransfer ProcedureCode ::= 17
+
+
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxEARFCN INTEGER ::= 65535
+maxEARFCNPlusOne INTEGER ::= 65536
+newmaxEARFCN INTEGER ::= 262143
+maxInterfaces INTEGER ::= 16
+maxCellineNB INTEGER ::= 256
+maxnoofBands INTEGER ::= 16
+maxnoofBearers INTEGER ::= 256
+maxNrOfErrors INTEGER ::= 256
+maxnoofPDCP-SN INTEGER ::= 16
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofNeighbours INTEGER ::= 512
+maxnoofPRBs INTEGER ::= 110
+maxPools INTEGER ::= 16
+maxnoofCells INTEGER ::= 16
+maxnoofMBSFN INTEGER ::= 8
+maxFailedMeasObjects INTEGER ::= 32
+maxnoofCellIDforMDT INTEGER ::= 32
+maxnoofTAforMDT INTEGER ::= 8
+maxnoofMBMSServiceAreaIdentities INTEGER ::= 256
+maxnoofMDTPLMNs INTEGER ::= 16
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0
+id-E-RABs-Admitted-List ProtocolIE-ID ::= 1
+id-E-RAB-Item ProtocolIE-ID ::= 2
+id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3
+id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4
+id-Cause ProtocolIE-ID ::= 5
+id-CellInformation ProtocolIE-ID ::= 6
+id-CellInformation-Item ProtocolIE-ID ::= 7
+id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9
+id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10
+id-TargetCell-ID ProtocolIE-ID ::= 11
+id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12
+id-TraceActivation ProtocolIE-ID ::= 13
+id-UE-ContextInformation ProtocolIE-ID ::= 14
+id-UE-HistoryInformation ProtocolIE-ID ::= 15
+id-UE-X2AP-ID ProtocolIE-ID ::= 16
+id-CriticalityDiagnostics ProtocolIE-ID ::= 17
+id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18
+id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19
+id-ServedCells ProtocolIE-ID ::= 20
+id-GlobalENB-ID ProtocolIE-ID ::= 21
+id-TimeToWait ProtocolIE-ID ::= 22
+id-GUMMEI-ID ProtocolIE-ID ::= 23
+id-GUGroupIDList ProtocolIE-ID ::= 24
+id-ServedCellsToAdd ProtocolIE-ID ::= 25
+id-ServedCellsToModify ProtocolIE-ID ::= 26
+id-ServedCellsToDelete ProtocolIE-ID ::= 27
+id-Registration-Request ProtocolIE-ID ::= 28
+id-CellToReport ProtocolIE-ID ::= 29
+id-ReportingPeriodicity ProtocolIE-ID ::= 30
+id-CellToReport-Item ProtocolIE-ID ::= 31
+id-CellMeasurementResult ProtocolIE-ID ::= 32
+id-CellMeasurementResult-Item ProtocolIE-ID ::= 33
+id-GUGroupIDToAddList ProtocolIE-ID ::= 34
+id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35
+id-SRVCCOperationPossible ProtocolIE-ID ::= 36
+id-Measurement-ID ProtocolIE-ID ::= 37
+id-ReportCharacteristics ProtocolIE-ID ::= 38
+id-ENB1-Measurement-ID ProtocolIE-ID ::= 39
+id-ENB2-Measurement-ID ProtocolIE-ID ::= 40
+id-Number-of-Antennaports ProtocolIE-ID ::= 41
+id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42
+id-ENB1-Cell-ID ProtocolIE-ID ::= 43
+id-ENB2-Cell-ID ProtocolIE-ID ::= 44
+id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45
+id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46
+id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47
+id-FailureCellPCI ProtocolIE-ID ::= 48
+id-Re-establishmentCellECGI ProtocolIE-ID ::= 49
+id-FailureCellCRNTI ProtocolIE-ID ::= 50
+id-ShortMAC-I ProtocolIE-ID ::= 51
+id-SourceCellECGI ProtocolIE-ID ::= 52
+id-FailureCellECGI ProtocolIE-ID ::= 53
+id-HandoverReportType ProtocolIE-ID ::= 54
+id-PRACH-Configuration ProtocolIE-ID ::= 55
+id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56
+id-ServedCellsToActivate ProtocolIE-ID ::= 57
+id-ActivatedCellList ProtocolIE-ID ::= 58
+id-DeactivationIndication ProtocolIE-ID ::= 59
+id-UE-RLF-Report-Container ProtocolIE-ID ::= 60
+id-ABSInformation ProtocolIE-ID ::= 61
+id-InvokeIndication ProtocolIE-ID ::= 62
+id-ABS-Status ProtocolIE-ID ::= 63
+id-PartialSuccessIndicator ProtocolIE-ID ::= 64
+id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65
+id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66
+id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67
+id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68
+id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69
+id-CSG-Id ProtocolIE-ID ::= 70
+id-CSGMembershipStatus ProtocolIE-ID ::= 71
+id-MDTConfiguration ProtocolIE-ID ::= 72
+id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74
+id-RRCConnSetupIndicator ProtocolIE-ID ::= 75
+id-NeighbourTAC ProtocolIE-ID ::= 76
+id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77
+id-RRCConnReestabIndicator ProtocolIE-ID ::= 78
+id-MBMS-Service-Area-List ProtocolIE-ID ::= 79
+id-HO-cause ProtocolIE-ID ::= 80
+id-TargetCellInUTRAN ProtocolIE-ID ::= 81
+id-MobilityInformation ProtocolIE-ID ::= 82
+id-SourceCellCRNTI ProtocolIE-ID ::= 83
+id-MultibandInfoList ProtocolIE-ID ::= 84
+id-M3Configuration ProtocolIE-ID ::= 85
+id-M4Configuration ProtocolIE-ID ::= 86
+id-M5Configuration ProtocolIE-ID ::= 87
+id-MDT-Location-Info ProtocolIE-ID ::= 88
+id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89
+id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90
+id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91
+id-ULCOUNTValueExtended ProtocolIE-ID ::= 92
+id-DLCOUNTValueExtended ProtocolIE-ID ::= 93
+id-eARFCNExtension ProtocolIE-ID ::= 94
+id-UL-EARFCNExtension ProtocolIE-ID ::= 95
+id-DL-EARFCNExtension ProtocolIE-ID ::= 96
+id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97
+id-Masked-IMEISV ProtocolIE-ID ::= 98
+id-IntendedULDLConfiguration ProtocolIE-ID ::= 99
+id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100
+id-RNL-Header ProtocolIE-ID ::= 101
+id-x2APMessage ProtocolIE-ID ::= 102
+
+END
diff --git a/epan/dissectors/asn1/x2ap/X2AP-Containers.asn b/epan/dissectors/asn1/x2ap/X2AP-Containers.asn
new file mode 100644
index 0000000000..caf6a5f95e
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/X2AP-Containers.asn
@@ -0,0 +1,195 @@
+-- 3GPP TS 36.423 V12.2.0 (2014-06)
+-- 9.3.8 Container Definitions
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+X2AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+FROM X2AP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+X2AP-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
+--
+-- **************************************************************
+
+X2AP-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
+--
+-- **************************************************************
+
+X2AP-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
+--
+-- **************************************************************
+
+X2AP-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 {X2AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id X2AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id X2AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/epan/dissectors/asn1/x2ap/X2AP-IEs.asn b/epan/dissectors/asn1/x2ap/X2AP-IEs.asn
new file mode 100644
index 0000000000..2431695732
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/X2AP-IEs.asn
@@ -0,0 +1,1374 @@
+-- 3GPP TS 36.423 V12.2.0 (2014-06)
+-- 9.3.5 Information Element Definitions
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+X2AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ id-E-RAB-Item,
+ id-Number-of-Antennaports,
+ id-MBSFN-Subframe-Info,
+ id-PRACH-Configuration,
+ id-CSG-Id,
+ id-MDTConfiguration,
+ id-SignallingBasedMDTPLMNList,
+ id-MultibandInfoList,
+ id-NeighbourTAC,
+ id-Time-UE-StayedInCell-EnhancedGranularity,
+ id-MBMS-Service-Area-List,
+ id-HO-cause,
+ id-eARFCNExtension,
+ id-DL-EARFCNExtension,
+ id-UL-EARFCNExtension,
+ id-M3Configuration,
+ id-M4Configuration,
+ id-M5Configuration,
+ id-MDT-Location-Info,
+ id-AdditionalSpecialSubframe-Info,
+ maxnoofBearers,
+ maxCellineNB,
+ maxEARFCN,
+ maxEARFCNPlusOne,
+ newmaxEARFCN,
+ maxInterfaces,
+
+ maxnoofBands,
+ maxnoofBPLMNs,
+ maxnoofCells,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofNeighbours,
+ maxnoofPRBs,
+ maxNrOfErrors,
+ maxPools,
+ maxnoofMBSFN,
+ maxnoofTAforMDT,
+ maxnoofCellIDforMDT,
+ maxnoofMBMSServiceAreaIdentities,
+ maxnoofMDTPLMNs
+
+FROM X2AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM X2AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-Single-Container{},
+
+ X2AP-PROTOCOL-EXTENSION,
+ X2AP-PROTOCOL-IES
+FROM X2AP-Containers;
+
+-- A
+
+ABSInformation ::= CHOICE {
+ fdd ABSInformationFDD,
+ tdd ABSInformationTDD,
+ abs-inactive NULL,
+ ...
+}
+
+ABSInformationFDD ::= SEQUENCE {
+ abs-pattern-info BIT STRING (SIZE(40)),
+ numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...},
+ measurement-subset BIT STRING (SIZE(40)),
+ iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ABSInformationTDD ::= SEQUENCE {
+ abs-pattern-info BIT STRING (SIZE(1..70, ...)),
+ numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...},
+ measurement-subset BIT STRING (SIZE(1..70, ...)),
+ iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ABS-Status ::= SEQUENCE {
+ dL-ABS-status DL-ABS-status,
+ usableABSInformation UsableABSInformation,
+ iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-ABS-status::= INTEGER (0..100)
+
+AdditionalSpecialSubframe-Info ::= SEQUENCE {
+ additionalspecialSubframePatterns AdditionalSpecialSubframePatterns,
+ cyclicPrefixDL CyclicPrefixDL,
+ cyclicPrefixUL CyclicPrefixUL,
+ iE-Extensions ProtocolExtensionContainer { { AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AdditionalSpecialSubframePatterns ::= ENUMERATED {
+ ssp0,
+ ssp1,
+ ssp2,
+ ssp3,
+ ssp4,
+ ssp5,
+ ssp6,
+ ssp7,
+ ssp8,
+ ssp9,
+ ...
+}
+
+AS-SecurityInformation ::= SEQUENCE {
+ key-eNodeB-star Key-eNodeB-Star,
+ nextHopChainingCount NextHopChainingCount,
+ iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AreaScopeOfMDT ::= CHOICE {
+ cellBased CellBasedMDT,
+ tABased TABasedMDT,
+ pLMNWide NULL,
+ ...,
+ tAIBased TAIBasedMDT
+}
+
+-- B
+
+
+BitRate ::= INTEGER (0..10000000000)
+BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
+
+
+-- C
+
+CapacityValue ::= INTEGER (0..100)
+
+CellCapacityClassValue ::= INTEGER (1..100, ...)
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ hardware-failure,
+ om-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 {
+ handover-desirable-for-radio-reasons,
+ time-critical-handover,
+ resource-optimisation-handover,
+ reduce-load-in-serving-cell,
+ partial-handover,
+ unknown-new-eNB-UE-X2AP-ID,
+ unknown-old-eNB-UE-X2AP-ID,
+ unknown-pair-of-UE-X2AP-ID,
+ ho-target-not-allowed,
+ tx2relocoverall-expiry,
+ trelocprep-expiry,
+ cell-not-available,
+ no-radio-resources-available-in-target-cell,
+ invalid-MME-GroupID,
+ unknown-MME-Code,
+ encryption-and-or-integrity-protection-algorithms-not-supported,
+ reportCharacteristicsEmpty,
+ noReportPeriodicity,
+ existingMeasurementID,
+ unknown-eNB-Measurement-ID,
+ measurement-temporarily-not-available,
+ unspecified,
+ ...,
+ load-balancing,
+ handover-optimisation,
+ value-out-of-allowed-range,
+ multiple-E-RAB-ID-instances,
+ switch-off-ongoing,
+ not-supported-QCI-value,
+ measurement-not-supported-for-the-object
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CellBasedMDT::= SEQUENCE {
+ cellIdListforMDT CellIdListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI
+
+Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... }
+
+
+CellType ::= SEQUENCE {
+ cell-Size Cell-Size,
+ iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompositeAvailableCapacityGroup ::= SEQUENCE {
+ dL-CompositeAvailableCapacity CompositeAvailableCapacity,
+ uL-CompositeAvailableCapacity CompositeAvailableCapacity,
+ iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompositeAvailableCapacity ::= SEQUENCE {
+ cellCapacityClassValue CellCapacityClassValue OPTIONAL,
+ capacityValue CapacityValue,
+ iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTValueExtended ::= SEQUENCE {
+ pDCP-SNExtended PDCP-SNExtended,
+ hFNModified HFNModified,
+ iE-Extensions ProtocolExtensionContainer { { COUNTValueExtended-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTValueExtended-ExtIEs X2AP-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 X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CRNTI ::= BIT STRING (SIZE (16))
+
+CSGMembershipStatus ::= ENUMERATED {
+ member,
+ not-member
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+CyclicPrefixDL ::= ENUMERATED {
+ normal,
+ extended,
+ ...
+}
+
+CyclicPrefixUL ::= ENUMERATED {
+ normal,
+ extended,
+ ...
+}
+
+
+-- D
+
+DeactivationIndication::= ENUMERATED {
+ deactivated,
+ ...
+}
+
+DL-Forwarding ::= ENUMERATED {
+ dL-forwardingProposed,
+ ...
+}
+
+DL-GBR-PRB-usage::= INTEGER (0..100)
+
+DL-non-GBR-PRB-usage::= INTEGER (0..100)
+
+DL-Total-PRB-usage::= INTEGER (0..100)
+
+-- E
+
+EARFCN ::= INTEGER (0..maxEARFCN)
+
+EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...)
+
+FDD-Info ::= SEQUENCE {
+ uL-EARFCN EARFCN,
+ dL-EARFCN EARFCN,
+ uL-Transmission-Bandwidth Transmission-Bandwidth,
+ dL-Transmission-Bandwidth Transmission-Bandwidth,
+ iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}|
+ { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional},
+ ...
+}
+
+TDD-Info ::= SEQUENCE {
+ eARFCN EARFCN,
+ transmission-Bandwidth Transmission-Bandwidth,
+ subframeAssignment SubframeAssignment,
+ specialSubframe-Info SpecialSubframe-Info,
+ iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}|
+ { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional},
+ ...
+}
+
+EUTRA-Mode-Info ::= CHOICE {
+ fDD FDD-Info,
+ tDD TDD-Info,
+ ...
+}
+
+ECGI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ eUTRANcellIdentifier EUTRANCellIdentifier,
+ iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-ID ::= CHOICE {
+ macro-eNB-ID BIT STRING (SIZE (20)),
+ home-eNB-ID BIT STRING (SIZE (28)),
+ ...
+}
+
+EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...))
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
+
+E-RAB-ID ::= INTEGER (0..15, ...)
+
+E-RAB-Level-QoS-Parameters ::= SEQUENCE {
+ qCI QCI,
+ allocationAndRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} }
+
+E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory },
+ ...
+}
+
+E-RAB-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
+
+EUTRANTraceID ::= OCTET STRING (SIZE (8))
+
+
+EventType ::= ENUMERATED{
+ change-of-serving-cell,
+ ...
+}
+
+ExtendedULInterferenceOverloadInfo ::= SEQUENCE {
+ associatedSubframes BIT STRING (SIZE (5)),
+ extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication,
+ iE-Extensions ProtocolExtensionContainer { { ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- F
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...,
+ geranandutran,
+ cdma2000andutran
+
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ forbiddenTACs ForbiddenTACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ forbiddenLACs ForbiddenLACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+Fourframes ::= BIT STRING (SIZE (24))
+
+FreqBandIndicator ::= INTEGER (1..256, ...)
+
+-- 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 X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GlobalENB-ID ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GTPtunnelEndpoint ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEI,
+ iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+
+GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID
+
+
+GU-Group-ID ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ mME-Group-ID MME-Group-ID,
+ iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GUMMEI ::= SEQUENCE {
+
+ gU-Group-ID GU-Group-ID,
+ mME-Code MME-Code,
+ iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- H
+
+HandoverReportType ::= ENUMERATED {
+ hoTooEarly,
+ hoToWrongCell,
+ ...,
+ interRATpingpong
+}
+
+HandoverRestrictionList ::= SEQUENCE {
+ servingPLMN PLMN-Identity,
+ equivalentPLMNs EPLMNs OPTIONAL,
+ forbiddenTAs ForbiddenTAs OPTIONAL,
+ forbiddenLAs ForbiddenLAs OPTIONAL,
+ forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HFN ::= INTEGER (0..1048575)
+
+HFNModified ::= INTEGER (0..131071)
+
+HWLoadIndicator ::= SEQUENCE {
+ dLHWLoadIndicator LoadIndicator,
+ uLHWLoadIndicator LoadIndicator,
+ iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- I
+
+Masked-IMEISV ::= BIT STRING (SIZE (64))
+
+InvokeIndication ::= ENUMERATED{
+ abs-information,
+ ...
+}
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...))
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+-- J
+-- K
+
+
+Key-eNodeB-Star ::= BIT STRING (SIZE(256))
+
+-- L
+
+
+LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H))
+
+LastVisitedCell-Item ::= CHOICE {
+ e-UTRAN-Cell LastVisitedEUTRANCellInformation,
+ uTRAN-Cell LastVisitedUTRANCellInformation,
+ gERAN-Cell LastVisitedGERANCellInformation,
+ ...
+}
+
+LastVisitedEUTRANCellInformation ::= SEQUENCE {
+ global-Cell-ID ECGI,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell --
+ { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}|
+ { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional},
+ ...
+}
+
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...}
+
+LoadIndicator ::= ENUMERATED {
+ lowLoad,
+ mediumLoad,
+ highLoad,
+ overLoad,
+ ...
+}
+
+
+
+LocationReportingInformation ::= SEQUENCE {
+ eventType EventType,
+ reportArea ReportArea,
+ iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={
+ ...
+}
+
+-- M
+
+M3Configuration ::= SEQUENCE {
+ m3period M3period,
+ iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... }
+
+M4Configuration ::= SEQUENCE {
+ m4period M4period,
+ m4-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+
+M5Configuration ::= SEQUENCE {
+ m5period M5period,
+ m5-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+MDT-Activation ::= ENUMERATED {
+ immediate-MDT-only,
+ immediate-MDT-and-Trace,
+ ...
+}
+
+MDT-Configuration ::= SEQUENCE {
+ mdt-Activation MDT-Activation,
+ areaScopeOfMDT AreaScopeOfMDT,
+ measurementsToActivate MeasurementsToActivate,
+ m1reportingTrigger M1ReportingTrigger,
+ m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
+-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+ m1periodicReporting M1PeriodicReporting OPTIONAL,
+-- Included in case of periodic, or event-triggered periodic reporting for measurement M1
+ iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}|
+ {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}|
+ {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}|
+ {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}|
+ {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional},
+ ...
+}
+
+MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity
+
+MDT-Location-Info ::= BIT STRING (SIZE (8))
+
+MeasurementsToActivate::= BIT STRING (SIZE (8))
+
+MeasurementThresholdA2 ::= CHOICE {
+ threshold-RSRP Threshold-RSRP,
+ threshold-RSRQ Threshold-RSRQ,
+ ...
+}
+
+MME-Group-ID ::= OCTET STRING (SIZE (2))
+
+MME-Code ::= OCTET STRING (SIZE (1))
+
+Measurement-ID ::= INTEGER (1..4095, ...)
+
+MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity
+
+MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2))
+
+MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info
+
+MBSFN-Subframe-Info ::= SEQUENCE {
+ radioframeAllocationPeriod RadioframeAllocationPeriod,
+ radioframeAllocationOffset RadioframeAllocationOffset,
+ subframeAllocation SubframeAllocation,
+ iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...}
+
+MobilityParametersModificationRange ::= SEQUENCE {
+ handoverTriggerChangeLowerLimit INTEGER (-20..20),
+ handoverTriggerChangeUpperLimit INTEGER (-20..20),
+ ...
+}
+
+MobilityParametersInformation ::= SEQUENCE {
+ handoverTriggerChange INTEGER (-20..20),
+ ...
+}
+
+MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo
+
+
+BandInfo ::= SEQUENCE {
+ freqBandIndicator FreqBandIndicator,
+ iE-Extensions ProtocolExtensionContainer { { BandInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- N
+
+Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE {
+ eCGI ECGI,
+ pCI PCI,
+ eARFCN EARFCN,
+ iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}|
+ { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional},
+ ...
+}
+
+NextHopChainingCount ::= INTEGER (0..7)
+
+Number-of-Antennaports ::= ENUMERATED {
+ an1,
+ an2,
+ an4,
+ ...
+}
+
+-- O
+
+Oneframe ::= BIT STRING (SIZE (6))
+
+-- P
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PDCP-SNExtended ::= INTEGER (0..32767)
+
+PCI ::= INTEGER (0..503, ...)
+
+M1PeriodicReporting ::= SEQUENCE {
+ reportInterval ReportIntervalMDT,
+ reportAmount ReportAmountMDT,
+ iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMN-Identity ::= OCTET STRING (SIZE(3))
+
+PRACH-Configuration ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ zeroCorrelationIndex INTEGER (0..15),
+ highSpeedFlag BOOLEAN,
+ prach-FreqOffset INTEGER (0..94),
+ prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD --
+ iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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
+
+RadioframeAllocationOffset ::= INTEGER (0..7, ...)
+
+RadioframeAllocationPeriod ::= ENUMERATED{
+ n1,
+ n2,
+ n4,
+ n8,
+ n16,
+ n32,
+ ...
+}
+
+
+RadioResourceStatus ::= SEQUENCE {
+ dL-GBR-PRB-usage DL-GBR-PRB-usage,
+ uL-GBR-PRB-usage UL-GBR-PRB-usage,
+ dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage,
+ uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage,
+ dL-Total-PRB-usage DL-Total-PRB-usage,
+ uL-Total-PRB-usage UL-Total-PRB-usage,
+ iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384))
+
+Registration-Request ::= ENUMERATED {
+ start,
+ stop,
+ ...
+}
+
+RelativeNarrowbandTxPower ::= SEQUENCE {
+
+ rNTP-PerPRB BIT STRING (SIZE(6..110, ...)),
+ rNTP-Threshold RNTP-Threshold,
+ numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...},
+ p-B INTEGER (0..3,...),
+ pDCCH-InterferenceImpact INTEGER (0..4,...),
+ iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity}
+
+ReportArea ::= ENUMERATED{
+ ecgi,
+ ...
+}
+
+ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60}
+
+ReportCharacteristics ::= BIT STRING (SIZE (32))
+
+M1ReportingTrigger::= ENUMERATED{
+ periodic,
+ a2eventtriggered,
+ ...,
+ a2eventtriggered-periodic
+}
+
+RNTP-Threshold ::= ENUMERATED {
+ minusInfinity,
+ minusEleven,
+ minusTen,
+ minusNine,
+ minusEight,
+ minusSeven,
+ minusSix,
+ minusFive,
+ minusFour,
+ minusThree,
+ minusTwo,
+ minusOne,
+ zero,
+ one,
+ two,
+ three,
+ ...
+}
+
+RRC-Context ::= OCTET STRING
+
+RRCConnReestabIndicator ::= ENUMERATED {
+ reconfigurationFailure, handoverFailure, otherFailure, ...
+}
+-- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9]
+
+RRCConnSetupIndicator::= ENUMERATED {
+ rrcConnSetup,
+ ...
+}
+
+-- S
+
+S1TNLLoadIndicator ::= SEQUENCE {
+ dLS1TNLLoadIndicator LoadIndicator,
+ uLS1TNLLoadIndicator LoadIndicator,
+ iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE {
+ servedCellInfo ServedCell-Information,
+ neighbour-Info Neighbour-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedCell-Information ::= SEQUENCE {
+ pCI PCI,
+ cellId ECGI,
+ tAC TAC,
+ broadcastPLMNs BroadcastPLMNs-Item,
+ eUTRA-Mode-Info EUTRA-Mode-Info,
+ iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }|
+ { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }|
+ { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional }|
+ { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional }|
+ { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional }|
+ { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional },
+ ...
+}
+
+ShortMAC-I ::= BIT STRING (SIZE(16))
+
+SRVCCOperationPossible ::= ENUMERATED {
+ possible,
+ ...
+}
+
+SubframeAssignment ::= ENUMERATED {
+ sa0,
+ sa1,
+ sa2,
+ sa3,
+ sa4,
+ sa5,
+ sa6,
+ ...
+}
+
+SpecialSubframe-Info ::= SEQUENCE {
+ specialSubframePatterns SpecialSubframePatterns,
+ cyclicPrefixDL CyclicPrefixDL,
+ cyclicPrefixUL CyclicPrefixUL,
+ iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SpecialSubframePatterns ::= ENUMERATED {
+ ssp0,
+ ssp1,
+ ssp2,
+ ssp3,
+ ssp4,
+ ssp5,
+ ssp6,
+ ssp7,
+ ssp8,
+ ...
+}
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SubframeAllocation ::= CHOICE {
+ oneframe Oneframe,
+ fourframes Fourframes,
+ ...
+}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TABasedMDT::= SEQUENCE {
+ tAListforMDT TAListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
+
+TAIBasedMDT ::= SEQUENCE {
+ tAIListforMDT TAIListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item
+
+TAI-Item ::= SEQUENCE {
+ tAC TAC,
+ pLMN-Identity PLMN-Identity,
+ iE-Extensions ProtocolExtensionContainer { { TAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24]
+
+M1ThresholdEventA2 ::= SEQUENCE {
+ measurementThreshold MeasurementThresholdA2,
+ iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
+
+Threshold-RSRP ::= INTEGER(0..97)
+
+Threshold-RSRQ ::= INTEGER(0..34)
+
+TimeToWait ::= ENUMERATED {
+ v1s,
+ v2s,
+ v5s,
+ v10s,
+ v20s,
+ v60s,
+ ...
+}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950)
+
+
+TraceActivation ::= SEQUENCE {
+ eUTRANTraceID EUTRANTraceID,
+ interfacesToTrace InterfacesToTrace,
+traceDepth TraceDepth,
+traceCollectionEntityIPAddress TraceCollectionEntityIPAddress,
+ iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional},
+ ...
+}
+
+TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+
+
+
+Transmission-Bandwidth ::= ENUMERATED {
+ bw6,
+ bw15,
+ bw25,
+ bw50,
+ bw75,
+ bw100,
+ ...
+}
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+
+-- U
+
+UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
+
+
+UE-S1AP-ID ::= INTEGER (0.. 4294967295)
+
+UE-X2AP-ID ::= INTEGER (0..4095)
+
+UEAggregateMaximumBitRate ::= SEQUENCE {
+ uEaggregateMaximumBitRateDownlink BitRate,
+ uEaggregateMaximumBitRateUplink BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-GBR-PRB-usage::= INTEGER (0..100)
+
+UL-non-GBR-PRB-usage::= INTEGER (0..100)
+
+UL-Total-PRB-usage::= INTEGER (0..100)
+
+UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item
+
+UL-InterferenceOverloadIndication-Item ::= ENUMERATED {
+ high-interference,
+ medium-interference,
+ low-interference,
+ ...
+}
+
+UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item
+
+UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE {
+ target-Cell-ID ECGI,
+ ul-interferenceindication UL-HighInterferenceIndication,
+ iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...))
+
+UE-RLF-Report-Container::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9]
+
+UsableABSInformation ::= CHOICE {
+ fdd UsableABSInformationFDD,
+ tdd UsableABSInformationTDD,
+ ...
+}
+
+UsableABSInformationFDD ::= SEQUENCE {
+ usable-abs-pattern-info BIT STRING (SIZE(40)),
+ iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UsableABSInformationTDD ::= SEQUENCE {
+ usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)),
+ iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- V
+-- W
+-- X
+-- Y
+-- Z
+
+END
diff --git a/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn b/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn
new file mode 100644
index 0000000000..a73d78794f
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn
@@ -0,0 +1,1066 @@
+-- 3GPP TS 36.423 V12.2.0 (2014-06)
+-- 9.3.4 PDU Definitions
+-- **************************************************************
+--
+-- PDU definitions for X2AP.
+--
+-- **************************************************************
+
+X2AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ABSInformation,
+ ABS-Status,
+ AS-SecurityInformation,
+ Cause,
+ CompositeAvailableCapacityGroup,
+ COUNTvalue,
+ CriticalityDiagnostics,
+ CRNTI,
+ CSGMembershipStatus,
+ CSG-Id,
+ DeactivationIndication,
+ DL-Forwarding,
+ ECGI,
+ E-RAB-ID,
+ E-RAB-Level-QoS-Parameters,
+ E-RAB-List,
+ EUTRANTraceID,
+ GlobalENB-ID,
+ GTPtunnelEndpoint,
+ GUGroupIDList,
+ GUMMEI,
+ HandoverReportType,
+ HandoverRestrictionList,
+ Masked-IMEISV,
+ InvokeIndication,
+ LocationReportingInformation,
+ MDT-Configuration,
+ ManagementBasedMDTallowed,
+ MDTPLMNList,
+ Neighbour-Information,
+ PCI,
+ PDCP-SN,
+ PLMN-Identity,
+ ReceiveStatusofULPDCPSDUs,
+ Registration-Request,
+ RelativeNarrowbandTxPower,
+ RadioResourceStatus,
+ RRCConnReestabIndicator,
+ RRCConnSetupIndicator,
+ UE-RLF-Report-Container,
+ RRC-Context,
+ ServedCell-Information,
+ ServedCells,
+ ShortMAC-I,
+ SRVCCOperationPossible,
+ SubscriberProfileIDforRFP,
+ TargetCellInUTRAN,
+ TargeteNBtoSource-eNBTransparentContainer,
+ TimeToWait,
+ TraceActivation,
+ TraceDepth,
+
+ TransportLayerAddress,
+ UEAggregateMaximumBitRate,
+ UE-HistoryInformation,
+ UE-S1AP-ID,
+ UESecurityCapabilities,
+ UE-X2AP-ID,
+ UL-HighInterferenceIndicationInfo,
+ UL-InterferenceOverloadIndication,
+ HWLoadIndicator,
+ S1TNLLoadIndicator,
+ Measurement-ID,
+ ReportCharacteristics,
+ MobilityParametersInformation,
+ MobilityParametersModificationRange,
+ ReceiveStatusOfULPDCPSDUsExtended,
+ COUNTValueExtended,
+ SubframeAssignment,
+ ExtendedULInterferenceOverloadInfo
+
+
+
+FROM X2AP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-Single-Container{},
+ X2AP-PRIVATE-IES,
+ X2AP-PROTOCOL-EXTENSION,
+ X2AP-PROTOCOL-IES,
+ X2AP-PROTOCOL-IES-PAIR
+FROM X2AP-Containers
+
+ id-ABSInformation,
+ id-ActivatedCellList,
+ id-Cause,
+ id-CellInformation,
+ id-CellInformation-Item,
+ id-CellMeasurementResult,
+ id-CellMeasurementResult-Item,
+ id-CellToReport,
+ id-CellToReport-Item,
+ id-CompositeAvailableCapacityGroup,
+ id-CriticalityDiagnostics,
+ id-DeactivationIndication,
+ id-E-RABs-Admitted-Item,
+ id-E-RABs-Admitted-List,
+ id-E-RABs-NotAdmitted-List,
+ id-E-RABs-SubjectToStatusTransfer-List,
+ id-E-RABs-SubjectToStatusTransfer-Item,
+ id-E-RABs-ToBeSetup-Item,
+ id-GlobalENB-ID,
+ id-GUGroupIDList,
+ id-GUGroupIDToAddList,
+ id-GUGroupIDToDeleteList,
+ id-GUMMEI-ID,
+ id-Masked-IMEISV,
+ id-InvokeIndication,
+ id-New-eNB-UE-X2AP-ID,
+ id-Old-eNB-UE-X2AP-ID,
+ id-Registration-Request,
+ id-ReportingPeriodicity,
+ id-ServedCells,
+ id-ServedCellsToActivate,
+ id-ServedCellsToAdd,
+ id-ServedCellsToModify,
+ id-ServedCellsToDelete,
+ id-SRVCCOperationPossible,
+ id-TargetCell-ID,
+ id-TargeteNBtoSource-eNBTransparentContainer,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-UE-ContextInformation,
+ id-UE-HistoryInformation,
+ id-UE-X2AP-ID,
+ id-Measurement-ID,
+ id-ReportCharacteristics,
+ id-ENB1-Measurement-ID,
+ id-ENB2-Measurement-ID,
+ id-ENB1-Cell-ID,
+ id-ENB2-Cell-ID,
+ id-ENB2-Proposed-Mobility-Parameters,
+ id-ENB1-Mobility-Parameters,
+ id-ENB2-Mobility-Parameters-Modification-Range,
+ id-FailureCellPCI,
+ id-Re-establishmentCellECGI,
+ id-FailureCellCRNTI,
+ id-ShortMAC-I,
+ id-SourceCellECGI,
+ id-FailureCellECGI,
+ id-HandoverReportType,
+ id-UE-RLF-Report-Container,
+ id-PartialSuccessIndicator,
+ id-MeasurementInitiationResult-List,
+ id-MeasurementInitiationResult-Item,
+ id-MeasurementFailureCause-Item,
+ id-CompleteFailureCauseInformation-List,
+ id-CompleteFailureCauseInformation-Item,
+ id-CSGMembershipStatus,
+ id-CSG-Id,
+ id-MDTConfiguration,
+ id-ManagementBasedMDTallowed,
+ id-ABS-Status,
+ id-RRCConnSetupIndicator,
+ id-RRCConnReestabIndicator,
+ id-TargetCellInUTRAN,
+ id-MobilityInformation,
+ id-SourceCellCRNTI,
+ id-ManagementBasedMDTPLMNList,
+ id-ReceiveStatusOfULPDCPSDUsExtended,
+ id-ULCOUNTValueExtended,
+ id-DLCOUNTValueExtended,
+ id-IntendedULDLConfiguration,
+ id-ExtendedULInterferenceOverloadInfo,
+ id-RNL-Header,
+ id-x2APMessage,
+
+ maxCellineNB,
+ maxnoofBearers,
+ maxnoofPDCP-SN,
+ maxFailedMeasObjects,
+ maxnoofCellIDforMDT,
+ maxnoofTAforMDT
+
+FROM X2AP-Constants;
+
+-- **************************************************************
+--
+-- HANDOVER REQUEST
+--
+-- **************************************************************
+
+HandoverRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}},
+ ...
+}
+
+HandoverRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}|
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}|
+ { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}|
+ { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional},
+ ...
+}
+
+UE-ContextInformation ::= SEQUENCE {
+ mME-UE-S1AP-ID UE-S1AP-ID,
+ uESecurityCapabilities UESecurityCapabilities,
+ aS-SecurityInformation AS-SecurityInformation,
+ uEaggregateMaximumBitRate UEAggregateMaximumBitRate,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List,
+ rRC-Context RRC-Context,
+ handoverRestrictionList HandoverRestrictionList OPTIONAL,
+ locationReportingInformation LocationReportingInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }|
+{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional },
+ ...
+}
+
+E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} }
+
+E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory },
+ ...
+}
+
+E-RABs-ToBeSetup-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ uL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MobilityInformation ::= BIT STRING (SIZE(32))
+
+
+-- **************************************************************
+--
+-- HANDOVER REQUEST ACKNOWLEDGE
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}},
+ ...
+}
+
+HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
+ { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} |
+ { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} |
+ { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} }
+
+E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory }
+}
+
+E-RABs-Admitted-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION FAILURE
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}},
+ ...
+}
+
+HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Report
+--
+-- **************************************************************
+
+HandoverReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverReport-IEs}},
+ ...
+}
+
+HandoverReport-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
+ { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
+ { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to HO to Wrong Cell -- |
+ { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --|
+ { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}|
+ { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}|
+ { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SN Status Transfer
+--
+-- **************************************************************
+
+SNStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}},
+ ...
+}
+
+SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
+ { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} ,
+ ...
+}
+
+E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} }
+
+E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory }
+}
+
+E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+
+ receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
+ uL-COUNTvalue COUNTvalue,
+ dL-COUNTvalue COUNTvalue,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}|
+ { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional},
+ ...
+}
+
+
+
+
+
+-- **************************************************************
+--
+-- UE Context Release
+--
+-- **************************************************************
+
+UEContextRelease ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}},
+ ...
+}
+
+UEContextRelease-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} ,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL
+--
+-- **************************************************************
+
+HandoverCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}},
+ ...
+}
+
+HandoverCancel-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ ...
+}
+
+ErrorIndication-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Request
+--
+-- **************************************************************
+
+ResetRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
+ ...
+}
+
+ResetRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Response
+--
+-- **************************************************************
+
+ResetResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
+ ...
+}
+
+ResetResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- X2 SETUP REQUEST
+--
+-- **************************************************************
+
+X2SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}},
+ ...
+}
+
+X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} |
+ { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} |
+ { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional},
+...
+}
+
+
+
+-- **************************************************************
+--
+-- X2 SETUP RESPONSE
+--
+-- **************************************************************
+
+X2SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}},
+ ...
+}
+
+X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} |
+ { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} |
+ { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- X2 SETUP FAILURE
+--
+-- **************************************************************
+
+X2SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}},
+ ...
+}
+
+X2SetupFailure-IEs X2AP-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 },
+
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- LOAD INFORMATION
+--
+-- **************************************************************
+
+LoadInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{LoadInformation-IEs}},
+ ...
+}
+
+LoadInformation-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} ,
+ ...
+}
+
+CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} }
+
+CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory }
+}
+
+CellInformation-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL,
+ ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL,
+ relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }|
+{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }|
+{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }|
+{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE
+--
+-- **************************************************************
+
+ENBConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}},
+ ...
+}
+
+ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional} |
+ { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional} |
+ { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional} |
+ { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional} |
+ { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional},
+ ...
+}
+
+ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item
+
+ServedCellsToModify-Item::= SEQUENCE {
+ old-ecgi ECGI,
+ servedCellInfo ServedCell-Information,
+ neighbour-Info Neighbour-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional },
+ ...
+}
+
+
+Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE ACKNOWLEDGE
+--
+-- **************************************************************
+
+ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}},
+ ...
+}
+
+ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE FAIURE
+--
+-- **************************************************************
+
+ENBConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}},
+ ...
+}
+
+ENBConfigurationUpdateFailure-IEs X2AP-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 },
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Resource Status Request
+--
+-- **************************************************************
+
+ResourceStatusRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}},
+ ...
+}
+
+ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to Stop--
+ { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}|
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}|
+ { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}|
+ { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}|
+ { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional},
+ ...
+}
+
+
+CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} }
+
+CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory }
+}
+
+CellToReport-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ReportingPeriodicity ::= ENUMERATED {
+ one-thousand-ms,
+ two-thousand-ms,
+ five-thousand-ms,
+ ten-thousand-ms,
+...
+}
+
+PartialSuccessIndicator ::= ENUMERATED {
+ partial-success-allowed,
+...
+}
+
+-- **************************************************************
+--
+-- Resource Status Response
+--
+-- **************************************************************
+
+ResourceStatusResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}},
+ ...
+}
+
+ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional},
+ ...
+}
+
+
+MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} }
+
+MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory}
+}
+
+MeasurementInitiationResult-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ measurementFailureCause-List MeasurementFailureCause-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} }
+
+MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory}
+}
+
+MeasurementFailureCause-Item ::= SEQUENCE {
+ measurementFailedReportCharacteristics ReportCharacteristics,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Resource Status Failure
+--
+-- **************************************************************
+
+ResourceStatusFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}},
+ ...
+}
+
+ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional},
+ ...
+}
+
+CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} }
+
+CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory}
+}
+
+CompleteFailureCauseInformation-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ measurementFailureCause-List MeasurementFailureCause-List,
+ iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Resource Status Update
+--
+-- **************************************************************
+
+ResourceStatusUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}},
+ ...
+}
+
+ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory},
+ ...
+}
+
+CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} }
+
+CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory }
+}
+
+CellMeasurementResult-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ hWLoadIndicator HWLoadIndicator OPTIONAL,
+ s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL,
+ radioResourceStatus RadioResourceStatus OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}|
+ { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs X2AP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MOBILITY CHANGE REQUEST
+--
+-- **************************************************************
+
+MobilityChangeRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}},
+ ...
+}
+
+MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
+ { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
+ { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional }|
+ { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- MOBILITY CHANGE ACKNOWLEDGE
+--
+-- **************************************************************
+
+MobilityChangeAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}},
+ ...
+}
+
+MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
+ { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MOBILITY CHANGE FAILURE
+--
+-- **************************************************************
+
+MobilityChangeFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}},
+ ...
+}
+
+MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }|
+ { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Radio Link Failure Indication
+--
+-- **************************************************************
+
+RLFIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RLFIndication-IEs}},
+ ...
+}
+
+RLFIndication-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}|
+ { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
+ { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}|
+ { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}|
+ { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}|
+ { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}|
+ { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Cell Activation Request
+--
+-- **************************************************************
+
+CellActivationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}},
+ ...
+}
+
+CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory },
+ ...
+}
+
+ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item
+
+ServedCellsToActivate-Item::= SEQUENCE {
+ ecgi ECGI,
+ iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Cell Activation Response
+--
+-- **************************************************************
+
+CellActivationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}},
+ ...
+}
+
+CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item
+
+ActivatedCellList-Item::= SEQUENCE {
+ ecgi ECGI,
+ iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+--**************************************************************
+--
+-- CELL ACTIVATION FAILURE
+--
+-- **************************************************************
+
+CellActivationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}},
+ ...
+}
+
+CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- X2 RELEASE
+--
+-- **************************************************************
+
+X2Release ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2Release-IEs}},
+ ...
+}
+
+X2Release-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory},
+...
+}
+
+-- **************************************************************
+--
+-- X2 Message Transfer
+--
+-- **************************************************************
+
+X2MessageTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2MessageTransfer-IEs}},
+ ...
+}
+
+X2MessageTransfer-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}|
+ { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional},
+ ...
+}
+
+RNL-Header ::= SEQUENCE {
+ target-GlobalENB-ID GlobalENB-ID OPTIONAL,
+ source-GlobalENB-ID GlobalENB-ID,
+ iE-Extensions ProtocolExtensionContainer { { RNL-Header-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+X2AP-Message ::= OCTET STRING
+
+END
diff --git a/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn b/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..189e45ad5a
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn
@@ -0,0 +1,313 @@
+-- 3GPP TS 36.423 V12.2.0 (2014-06)
+-- 9.3.3 Elementary Procedure Definitions
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+ X2AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM X2AP-CommonDataTypes
+
+
+ CellActivationRequest,
+ CellActivationResponse,
+ CellActivationFailure,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverReport,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ LoadInformation,
+ PrivateMessage,
+ ResetRequest,
+ ResetResponse,
+ ResourceStatusFailure,
+ ResourceStatusRequest,
+ ResourceStatusResponse,
+ ResourceStatusUpdate,
+ RLFIndication,
+ SNStatusTransfer,
+ UEContextRelease,
+ X2SetupFailure,
+ X2SetupRequest,
+ X2SetupResponse,
+ MobilityChangeRequest,
+ MobilityChangeAcknowledge,
+ MobilityChangeFailure,
+ X2Release,
+ X2MessageTransfer
+
+
+
+FROM X2AP-PDU-Contents
+
+ id-cellActivation,
+ id-eNBConfigurationUpdate,
+ id-errorIndication,
+ id-handoverCancel,
+ id-handoverReport,
+ id-handoverPreparation,
+
+ id-loadIndication,
+ id-privateMessage,
+ id-reset,
+
+ id-resourceStatusReporting,
+ id-resourceStatusReportingInitiation,
+ id-rLFIndication,
+ id-snStatusTransfer,
+ id-uEContextRelease,
+ id-x2Setup,
+ id-mobilitySettingsChange,
+ id-x2Release,
+ id-x2MessageTransfer
+
+
+
+
+FROM X2AP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+X2AP-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
+--
+-- **************************************************************
+
+X2AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
+ criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
+ criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
+ criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
+ X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
+ handoverPreparation |
+ reset |
+ x2Setup |
+ resourceStatusReportingInitiation |
+ eNBConfigurationUpdate |
+ mobilitySettingsChange |
+ cellActivation ,
+ ...
+}
+
+X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
+ snStatusTransfer |
+ uEContextRelease |
+ handoverCancel |
+ errorIndication |
+ resourceStatusReporting |
+ loadIndication |
+ privateMessage |
+ rLFIndication |
+ handoverReport |
+ x2Release |
+ x2MessageTransfer,
+ ...
+
+}
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequest
+ SUCCESSFUL OUTCOME HandoverRequestAcknowledge
+ UNSUCCESSFUL OUTCOME HandoverPreparationFailure
+ PROCEDURE CODE id-handoverPreparation
+ CRITICALITY reject
+}
+
+snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SNStatusTransfer
+ PROCEDURE CODE id-snStatusTransfer
+ CRITICALITY ignore
+}
+
+uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextRelease
+ PROCEDURE CODE id-uEContextRelease
+ CRITICALITY ignore
+}
+
+
+handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverCancel
+ PROCEDURE CODE id-handoverCancel
+ CRITICALITY ignore
+}
+
+handoverReport X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverReport
+ PROCEDURE CODE id-handoverReport
+ CRITICALITY ignore
+}
+
+errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-errorIndication
+ CRITICALITY ignore
+}
+
+reset X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetRequest
+ SUCCESSFUL OUTCOME ResetResponse
+ PROCEDURE CODE id-reset
+ CRITICALITY reject
+}
+
+x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE X2SetupRequest
+ SUCCESSFUL OUTCOME X2SetupResponse
+ UNSUCCESSFUL OUTCOME X2SetupFailure
+ PROCEDURE CODE id-x2Setup
+ CRITICALITY reject
+}
+
+
+loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LoadInformation
+ PROCEDURE CODE id-loadIndication
+ CRITICALITY ignore
+}
+
+eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationUpdate
+ SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
+ PROCEDURE CODE id-eNBConfigurationUpdate
+ CRITICALITY reject
+}
+
+resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResourceStatusRequest
+ SUCCESSFUL OUTCOME ResourceStatusResponse
+ UNSUCCESSFUL OUTCOME ResourceStatusFailure
+ PROCEDURE CODE id-resourceStatusReportingInitiation
+ CRITICALITY reject
+}
+
+resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResourceStatusUpdate
+ PROCEDURE CODE id-resourceStatusReporting
+ CRITICALITY ignore
+}
+
+rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RLFIndication
+ PROCEDURE CODE id-rLFIndication
+ CRITICALITY ignore
+}
+
+privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MobilityChangeRequest
+ SUCCESSFUL OUTCOME MobilityChangeAcknowledge
+ UNSUCCESSFUL OUTCOME MobilityChangeFailure
+ PROCEDURE CODE id-mobilitySettingsChange
+ CRITICALITY reject
+}
+
+cellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellActivationRequest
+ SUCCESSFUL OUTCOME CellActivationResponse
+ UNSUCCESSFUL OUTCOME CellActivationFailure
+ PROCEDURE CODE id-cellActivation
+ CRITICALITY reject
+}
+
+x2Release X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE X2Release
+ PROCEDURE CODE id-x2Release
+ CRITICALITY reject
+}
+
+x2MessageTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE X2MessageTransfer
+ PROCEDURE CODE id-x2MessageTransfer
+ CRITICALITY reject
+}
+
+END
diff --git a/epan/dissectors/asn1/x2ap/packet-x2ap-template.c b/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
new file mode 100644
index 0000000000..e6c7984515
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
@@ -0,0 +1,212 @@
+/* packet-x2ap.c
+ * Routines for dissecting Evolved Universal Terrestrial Radio Access Network (EUTRAN);
+ * X2 Application Protocol (X2AP);
+ * 3GPP TS 36.423 packet dissection
+ * Copyright 2007-2010, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref:
+ * 3GPP TS 36.423 V9.2.0 (2010-03)
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/asn1.h>
+#include <epan/prefs.h>
+#include <epan/sctpppids.h>
+
+#include "packet-per.h"
+#include "packet-e212.h"
+#include "packet-lte-rrc.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "EUTRAN X2 Application Protocol (X2AP)"
+#define PSNAME "X2AP"
+#define PFNAME "x2ap"
+
+void proto_register_x2ap(void);
+
+/* Dissector will use SCTP PPID 27 or SCTP port. IANA assigned port = 36422 */
+#define SCTP_PORT_X2AP 36422
+
+#include "packet-x2ap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_x2ap = -1;
+static int hf_x2ap_transportLayerAddressIPv4 = -1;
+static int hf_x2ap_transportLayerAddressIPv6 = -1;
+#include "packet-x2ap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_x2ap = -1;
+static int ett_x2ap_TransportLayerAddress = -1;
+#include "packet-x2ap-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint gbl_x2apSctpPort=SCTP_PORT_X2AP;
+
+/* Dissector tables */
+static dissector_table_t x2ap_ies_dissector_table;
+static dissector_table_t x2ap_extension_dissector_table;
+static dissector_table_t x2ap_proc_imsg_dissector_table;
+static dissector_table_t x2ap_proc_sout_dissector_table;
+static dissector_table_t x2ap_proc_uout_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+void proto_reg_handoff_x2ap(void);
+
+#include "packet-x2ap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(x2ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(x2ap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(x2ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(x2ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ return (dissector_try_uint(x2ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int
+dissect_x2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ proto_item *x2ap_item = NULL;
+ proto_tree *x2ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "X2AP");
+
+ /* create the x2ap protocol tree */
+ x2ap_item = proto_tree_add_item(tree, proto_x2ap, tvb, 0, -1, ENC_NA);
+ x2ap_tree = proto_item_add_subtree(x2ap_item, ett_x2ap);
+
+ return dissect_X2AP_PDU_PDU(tvb, pinfo, x2ap_tree, data);
+}
+
+/*--- proto_register_x2ap -------------------------------------------*/
+void proto_register_x2ap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_x2ap_transportLayerAddressIPv4,
+ { "transportLayerAddress(IPv4)", "x2ap.transportLayerAddressIPv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_x2ap_transportLayerAddressIPv6,
+ { "transportLayerAddress(IPv6)", "x2ap.transportLayerAddressIPv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+#include "packet-x2ap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_x2ap,
+ &ett_x2ap_TransportLayerAddress,
+#include "packet-x2ap-ettarr.c"
+ };
+
+ module_t *x2ap_module;
+
+ /* Register protocol */
+ proto_x2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_x2ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ register_dissector("x2ap", dissect_x2ap, proto_x2ap);
+
+ /* Register dissector tables */
+ x2ap_ies_dissector_table = register_dissector_table("x2ap.ies", "X2AP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ x2ap_extension_dissector_table = register_dissector_table("x2ap.extension", "X2AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ x2ap_proc_imsg_dissector_table = register_dissector_table("x2ap.proc.imsg", "X2AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ x2ap_proc_sout_dissector_table = register_dissector_table("x2ap.proc.sout", "X2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+ x2ap_proc_uout_dissector_table = register_dissector_table("x2ap.proc.uout", "X2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
+
+ /* Register configuration options for ports */
+ x2ap_module = prefs_register_protocol(proto_x2ap, proto_reg_handoff_x2ap);
+
+ prefs_register_uint_preference(x2ap_module, "sctp.port",
+ "X2AP SCTP Port",
+ "Set the SCTP port for X2AP messages",
+ 10,
+ &gbl_x2apSctpPort);
+
+}
+
+
+/*--- proto_reg_handoff_x2ap ---------------------------------------*/
+void
+proto_reg_handoff_x2ap(void)
+{
+ dissector_handle_t x2ap_handle;
+ static gboolean Initialized=FALSE;
+ static guint SctpPort;
+
+ x2ap_handle = find_dissector("x2ap");
+ if (!Initialized) {
+ dissector_add_for_decode_as("sctp.port", x2ap_handle);
+ dissector_add_uint("sctp.ppi", X2AP_PAYLOAD_PROTOCOL_ID, x2ap_handle);
+ Initialized=TRUE;
+#include "packet-x2ap-dis-tab.c"
+ } else {
+ if (SctpPort != 0) {
+ dissector_delete_uint("sctp.port", SctpPort, x2ap_handle);
+ }
+ }
+
+ SctpPort=gbl_x2apSctpPort;
+ if (SctpPort != 0) {
+ dissector_add_uint("sctp.port", SctpPort, x2ap_handle);
+ }
+
+}
+
+
diff --git a/epan/dissectors/asn1/x2ap/x2ap.cnf b/epan/dissectors/asn1/x2ap/x2ap.cnf
new file mode 100644
index 0000000000..6fe4b74535
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/x2ap.cnf
@@ -0,0 +1,424 @@
+# x2ap.cnf
+# x2ap conformation file
+# Copyright 2007 Anders Broman
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+#.END
+
+#.PDU
+X2AP-PDU
+
+#.MAKE_ENUM
+ProtocolIE-ID
+ProcedureCode
+
+#.TYPE_RENAME
+
+ProtocolIE-Field/value ProtocolIE_Field_value
+PrivateIE-Field/value PrivateIE_Field_value
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+
+#.FIELD_RENAME
+ProtocolExtensionField/id extension_id
+PrivateIE-Field/id private_id
+InitiatingMessage/value initiatingMessage_value
+
+ProtocolIE-Field/value protocolIE_Field_value
+SuccessfulOutcome/value successfulOutcome_value
+PrivateIE-Field/value privateIE_Field_value
+
+#.OMIT_ASSIGNMENT
+Presence
+ProtocolIE-FieldPair
+ProtocolIE-ContainerList
+ProtocolIE-ContainerPair
+ProtocolIE-ContainerPairList
+#.END
+
+#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(x2ap_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+#.END
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, x2ap_ProcedureCode_vals,
+ "unknown message"));
+#.END
+
+#.FN_HDR ProcedureCode
+ ProcedureCode = 0xFFFF;
+#.END
+
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#.FN_BODY PLMN-Identity VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if(tvb_reported_length(tvb)==0)
+ return offset;
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, E212_NONE, FALSE);
+#.END
+
+#.FN_BODY TargeteNBtoSource-eNBTransparentContainer VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ dissect_lte_rrc_HandoverCommand_PDU(parameter_tvb, actx->pinfo, tree, NULL);
+
+#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(x2ap_ProtocolIE_ID_vals)
+#.END
+
+#.FN_BODY TransportLayerAddress VAL_PTR = &parameter_tvb
+# For details on the Transport Layer Address, see
+# ref. [8], [19]
+# [8] 3GPP TS 36.424: "Evolved Universal Terrestrial Radio Access Network (E-UTRAN); X2 data transport".
+# [19] 3GPP TS 36.414: "Evolved Universal Terrestrial Radio Access Network (E-UTRAN); S1 data transport".
+ tvbuff_t *parameter_tvb=NULL;
+ proto_tree *subtree;
+ gint tvb_len;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ /* Get the length */
+ tvb_len = tvb_reported_length(parameter_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_TransportLayerAddress);
+ if (tvb_len==4){
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_x2ap_transportLayerAddressIPv4, parameter_tvb, 0, tvb_len, ENC_BIG_ENDIAN);
+ }
+ if (tvb_len==16){
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_x2ap_transportLayerAddressIPv6, parameter_tvb, 0, tvb_len, ENC_NA);
+ }
+
+#.FN_BODY RRC-Context VAL_PTR = &parameter_tvb
+# Includes the RRC Handover Preparation Information message as defined in
+# subclause 10.2.2 of [9].
+# [9] 3GPP TS 36.331: "Evolved Universal Terrestrial Radio Access (E-UTRAN); Radio Resource
+# Control (RRC) Protocol Specification".
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, tree, NULL);
+
+#.ASSIGN_VALUE_TO_TYPE # X2AP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+
+id-handoverPreparation ProcedureCode
+id-handoverCancel ProcedureCode
+id-loadIndication ProcedureCode
+id-errorIndication ProcedureCode
+id-snStatusTransfer ProcedureCode
+id-uEContextRelease ProcedureCode
+id-x2Setup ProcedureCode
+id-reset ProcedureCode
+id-eNBConfigurationUpdate ProcedureCode
+id-resourceStatusReportingInitiation ProcedureCode
+id-resourceStatusReporting ProcedureCode
+id-privateMessage ProcedureCode
+id-mobilitySettingsChange ProcedureCode
+id-rLFIndication ProcedureCode
+id-handoverReport ProcedureCode
+id-cellActivation ProcedureCode
+id-x2Release ProcedureCode
+id-x2MessageTransfer ProcedureCode
+
+
+# ProtocolIE-ID
+
+id-E-RABs-Admitted-Item ProtocolIE-ID
+id-E-RABs-Admitted-List ProtocolIE-ID
+id-E-RAB-Item ProtocolIE-ID
+id-E-RABs-NotAdmitted-List ProtocolIE-ID
+id-E-RABs-ToBeSetup-Item ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CellInformation ProtocolIE-ID
+id-CellInformation-Item ProtocolIE-ID
+id-New-eNB-UE-X2AP-ID ProtocolIE-ID
+id-Old-eNB-UE-X2AP-ID ProtocolIE-ID
+id-TargetCell-ID ProtocolIE-ID
+id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID
+id-TraceActivation ProtocolIE-ID
+id-UE-ContextInformation ProtocolIE-ID
+id-UE-HistoryInformation ProtocolIE-ID
+id-UE-X2AP-ID ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID
+id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID
+id-ServedCells ProtocolIE-ID
+id-GlobalENB-ID ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-GUMMEI-ID ProtocolIE-ID
+id-GUGroupIDList ProtocolIE-ID
+id-ServedCellsToAdd ProtocolIE-ID
+id-ServedCellsToModify ProtocolIE-ID
+id-ServedCellsToDelete ProtocolIE-ID
+id-Registration-Request ProtocolIE-ID
+id-CellToReport ProtocolIE-ID
+id-ReportingPeriodicity ProtocolIE-ID
+id-CellToReport-Item ProtocolIE-ID
+id-CellMeasurementResult ProtocolIE-ID
+id-CellMeasurementResult-Item ProtocolIE-ID
+id-GUGroupIDToAddList ProtocolIE-ID
+id-GUGroupIDToDeleteList ProtocolIE-ID
+id-SRVCCOperationPossible ProtocolIE-ID
+id-Measurement-ID ProtocolIE-ID
+id-ReportCharacteristics ProtocolIE-ID
+id-ENB1-Measurement-ID ProtocolIE-ID
+id-ENB2-Measurement-ID ProtocolIE-ID
+id-Number-of-Antennaports ProtocolIE-ID
+id-CompositeAvailableCapacityGroup ProtocolIE-ID
+id-ENB1-Cell-ID ProtocolIE-ID
+id-ENB2-Cell-ID ProtocolIE-ID
+id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID
+id-ENB1-Mobility-Parameters ProtocolIE-ID
+id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID
+id-FailureCellPCI ProtocolIE-ID
+id-Re-establishmentCellECGI ProtocolIE-ID
+id-FailureCellCRNTI ProtocolIE-ID
+id-ShortMAC-I ProtocolIE-ID
+id-SourceCellECGI ProtocolIE-ID
+id-FailureCellECGI ProtocolIE-ID
+id-HandoverReportType ProtocolIE-ID
+id-PRACH-Configuration ProtocolIE-ID
+id-MBSFN-Subframe-Info ProtocolIE-ID
+id-ServedCellsToActivate ProtocolIE-ID
+id-ActivatedCellList ProtocolIE-ID
+id-DeactivationIndication ProtocolIE-ID
+id-UE-RLF-Report-Container ProtocolIE-ID
+id-ABSInformation ProtocolIE-ID
+id-InvokeIndication ProtocolIE-ID
+id-ABS-Status ProtocolIE-ID
+id-PartialSuccessIndicator ProtocolIE-ID
+id-MeasurementInitiationResult-List ProtocolIE-ID
+id-MeasurementInitiationResult-Item ProtocolIE-ID
+id-MeasurementFailureCause-Item ProtocolIE-ID
+id-CompleteFailureCauseInformation-List ProtocolIE-ID
+id-CompleteFailureCauseInformation-Item ProtocolIE-ID
+id-CSG-Id ProtocolIE-ID
+id-CSGMembershipStatus ProtocolIE-ID
+id-MDTConfiguration ProtocolIE-ID
+id-ManagementBasedMDTallowed ProtocolIE-ID
+id-RRCConnSetupIndicator ProtocolIE-ID
+id-NeighbourTAC ProtocolIE-ID
+id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID
+id-RRCConnReestabIndicator ProtocolIE-ID
+id-MBMS-Service-Area-List ProtocolIE-ID
+id-HO-cause ProtocolIE-ID
+id-TargetCellInUTRAN ProtocolIE-ID
+id-MobilityInformation ProtocolIE-ID
+id-SourceCellCRNTI ProtocolIE-ID
+id-MultibandInfoList ProtocolIE-ID
+id-M3Configuration ProtocolIE-ID
+id-M4Configuration ProtocolIE-ID
+id-M5Configuration ProtocolIE-ID
+id-MDT-Location-Info ProtocolIE-ID
+id-ManagementBasedMDTPLMNList ProtocolIE-ID
+id-SignallingBasedMDTPLMNList ProtocolIE-ID
+id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID
+id-ULCOUNTValueExtended ProtocolIE-ID
+id-DLCOUNTValueExtended ProtocolIE-ID
+id-eARFCNExtension ProtocolIE-ID
+id-UL-EARFCNExtension ProtocolIE-ID
+id-DL-EARFCNExtension ProtocolIE-ID
+id-AdditionalSpecialSubframe-Info ProtocolIE-ID
+id-Masked-IMEISV ProtocolIE-ID
+id-IntendedULDLConfiguration ProtocolIE-ID
+id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID
+id-RNL-Header ProtocolIE-ID
+id-x2APMessage ProtocolIE-ID
+
+#.REGISTER
+
+#X2AP-PROTOCOL-IES
+E-RABs-Admitted-Item N x2ap.ies id-E-RABs-Admitted-Item
+E-RABs-Admitted-List N x2ap.ies id-E-RABs-Admitted-List
+E-RAB-Item N x2ap.ies id-E-RAB-Item
+E-RAB-List N x2ap.ies id-E-RABs-NotAdmitted-List
+E-RABs-ToBeSetup-Item N x2ap.ies id-E-RABs-ToBeSetup-Item
+Cause N x2ap.ies id-Cause
+CellInformation-List N x2ap.ies id-CellInformation
+CellInformation-Item N x2ap.ies id-CellInformation-Item
+UE-X2AP-ID N x2ap.ies id-New-eNB-UE-X2AP-ID
+UE-X2AP-ID N x2ap.ies id-Old-eNB-UE-X2AP-ID
+ECGI N x2ap.ies id-TargetCell-ID
+TargeteNBtoSource-eNBTransparentContainer N x2ap.ies id-TargeteNBtoSource-eNBTransparentContainer
+TraceActivation N x2ap.ies id-TraceActivation
+UE-ContextInformation N x2ap.ies id-UE-ContextInformation
+UE-HistoryInformation N x2ap.ies id-UE-HistoryInformation
+UE-X2AP-ID N x2ap.ies id-UE-X2AP-ID
+CriticalityDiagnostics N x2ap.ies id-CriticalityDiagnostics
+E-RABs-SubjectToStatusTransfer-List N x2ap.ies id-E-RABs-SubjectToStatusTransfer-List
+E-RABs-SubjectToStatusTransfer-Item N x2ap.ies id-E-RABs-SubjectToStatusTransfer-Item
+ServedCells N x2ap.ies id-ServedCells
+GlobalENB-ID N x2ap.ies id-GlobalENB-ID
+TimeToWait N x2ap.ies id-TimeToWait
+GUMMEI N x2ap.ies id-GUMMEI-ID
+GUGroupIDList N x2ap.ies id-GUGroupIDList
+ServedCells N x2ap.ies id-ServedCellsToAdd
+ServedCellsToModify N x2ap.ies id-ServedCellsToModify
+Old-ECGIs N x2ap.ies id-ServedCellsToDelete
+Registration-Request N x2ap.ies id-Registration-Request
+CellToReport-List N x2ap.ies id-CellToReport
+ReportingPeriodicity N x2ap.ies id-ReportingPeriodicity
+CellToReport-Item N x2ap.ies id-CellToReport-Item
+CellMeasurementResult-List N x2ap.ies id-CellMeasurementResult
+CellMeasurementResult-Item N x2ap.ies id-CellMeasurementResult-Item
+GUGroupIDList N x2ap.ies id-GUGroupIDToAddList
+GUGroupIDList N x2ap.ies id-GUGroupIDToDeleteList
+SRVCCOperationPossible N x2ap.ies id-SRVCCOperationPossible
+# N x2ap.ies id-Measurement-ID
+ReportCharacteristics N x2ap.ies id-ReportCharacteristics
+Measurement-ID N x2ap.ies id-ENB1-Measurement-ID
+Measurement-ID N x2ap.ies id-ENB2-Measurement-ID
+ECGI N x2ap.ies id-ENB1-Cell-ID
+ECGI N x2ap.ies id-ENB2-Cell-ID
+MobilityParametersInformation N x2ap.ies id-ENB2-Proposed-Mobility-Parameters
+MobilityParametersInformation N x2ap.ies id-ENB1-Mobility-Parameters
+MobilityParametersModificationRange N x2ap.ies id-ENB2-Mobility-Parameters-Modification-Range
+PCI N x2ap.ies id-FailureCellPCI
+ECGI N x2ap.ies id-Re-establishmentCellECGI
+CRNTI N x2ap.ies id-FailureCellCRNTI
+ShortMAC-I N x2ap.ies id-ShortMAC-I
+ECGI N x2ap.ies id-SourceCellECGI
+ECGI N x2ap.ies id-FailureCellECGI
+HandoverReportType N x2ap.ies id-HandoverReportType
+UE-RLF-Report-Container N x2ap.ies id-UE-RLF-Report-Container
+ServedCellsToActivate N x2ap.ies id-ServedCellsToActivate
+ActivatedCellList N x2ap.ies id-ActivatedCellList
+PartialSuccessIndicator N x2ap.ies id-PartialSuccessIndicator
+MeasurementInitiationResult-List N x2ap.ies id-MeasurementInitiationResult-List
+MeasurementInitiationResult-Item N x2ap.ies id-MeasurementInitiationResult-Item
+MeasurementFailureCause-Item N x2ap.ies id-MeasurementFailureCause-Item
+CompleteFailureCauseInformation-List N x2ap.ies id-CompleteFailureCauseInformation-List
+CompleteFailureCauseInformation-Item N x2ap.ies id-CompleteFailureCauseInformation-Item
+CSGMembershipStatus N x2ap.ies id-CSGMembershipStatus
+RRCConnSetupIndicator N x2ap.ies id-RRCConnSetupIndicator
+RRCConnReestabIndicator N x2ap.ies id-RRCConnReestabIndicator
+TargetCellInUTRAN N x2ap.ies id-TargetCellInUTRAN
+MobilityInformation N x2ap.ies id-MobilityInformation
+CRNTI N x2ap.ies id-SourceCellCRNTI
+Masked-IMEISV N x2ap.ies id-Masked-IMEISV
+RNL-Header N x2ap.ies id-RNL-Header
+X2AP-Message N x2ap.ies id-x2APMessage
+
+#X2AP-PROTOCOL-EXTENSION
+Number-of-Antennaports N x2ap.extension id-Number-of-Antennaports
+CompositeAvailableCapacityGroup N x2ap.extension id-CompositeAvailableCapacityGroup
+PRACH-Configuration N x2ap.extension id-PRACH-Configuration
+MBSFN-Subframe-Infolist N x2ap.extension id-MBSFN-Subframe-Info
+DeactivationIndication N x2ap.extension id-DeactivationIndication
+
+ABSInformation N x2ap.extension id-ABSInformation
+InvokeIndication N x2ap.extension id-InvokeIndication
+ABS-Status N x2ap.extension id-ABS-Status
+CSG-Id N x2ap.extension id-CSG-Id
+MDT-Configuration N x2ap.extension id-MDTConfiguration
+ManagementBasedMDTallowed N x2ap.extension id-ManagementBasedMDTallowed
+TAC N x2ap.extension id-NeighbourTAC
+Time-UE-StayedInCell-EnhancedGranularity N x2ap.extension id-Time-UE-StayedInCell-EnhancedGranularity
+MBMS-Service-Area-Identity-List N x2ap.extension id-MBMS-Service-Area-List
+Cause N x2ap.extension id-HO-cause
+MultibandInfoList N x2ap.extension id-MultibandInfoList
+M3Configuration N x2ap.extension id-M3Configuration
+M4Configuration N x2ap.extension id-M4Configuration
+M5Configuration N x2ap.extension id-M5Configuration
+MDT-Location-Info N x2ap.extension id-MDT-Location-Info
+MDTPLMNList N x2ap.extension id-ManagementBasedMDTPLMNList
+MDTPLMNList N x2ap.extension id-SignallingBasedMDTPLMNList
+ReceiveStatusOfULPDCPSDUsExtended N x2ap.extension id-ReceiveStatusOfULPDCPSDUsExtended
+COUNTValueExtended N x2ap.extension id-ULCOUNTValueExtended
+COUNTValueExtended N x2ap.extension id-DLCOUNTValueExtended
+EARFCNExtension N x2ap.extension id-eARFCNExtension
+EARFCNExtension N x2ap.extension id-UL-EARFCNExtension
+EARFCNExtension N x2ap.extension id-DL-EARFCNExtension
+AdditionalSpecialSubframe-Info N x2ap.extension id-AdditionalSpecialSubframe-Info
+SubframeAssignment N x2ap.extension id-IntendedULDLConfiguration
+ExtendedULInterferenceOverloadInfo N x2ap.extension id-ExtendedULInterferenceOverloadInfo
+
+# X2AP-PDU-Descriptions.asn Interface Elementary Procedures
+#X2AP-ELEMENTARY-PROCEDURE
+HandoverRequest N x2ap.proc.imsg id-handoverPreparation
+HandoverRequestAcknowledge N x2ap.proc.sout id-handoverPreparation
+HandoverPreparationFailure N x2ap.proc.uout id-handoverPreparation
+
+SNStatusTransfer N x2ap.proc.imsg id-snStatusTransfer
+
+UEContextRelease N x2ap.proc.imsg id-uEContextRelease
+
+HandoverCancel N x2ap.proc.imsg id-handoverCancel
+
+ErrorIndication N x2ap.proc.imsg id-errorIndication
+
+ResetRequest N x2ap.proc.imsg id-reset
+ResetResponse N x2ap.proc.sout id-reset
+
+X2SetupRequest N x2ap.proc.imsg id-x2Setup
+X2SetupResponse N x2ap.proc.sout id-x2Setup
+X2SetupFailure N x2ap.proc.uout id-x2Setup
+
+LoadInformation N x2ap.proc.imsg id-loadIndication
+
+ENBConfigurationUpdate N x2ap.proc.imsg id-eNBConfigurationUpdate
+ENBConfigurationUpdateAcknowledge N x2ap.proc.sout id-eNBConfigurationUpdate
+ENBConfigurationUpdateFailure N x2ap.proc.uout id-eNBConfigurationUpdate
+
+ResourceStatusRequest N x2ap.proc.imsg id-resourceStatusReportingInitiation
+ResourceStatusResponse N x2ap.proc.sout id-resourceStatusReportingInitiation
+ResourceStatusFailure N x2ap.proc.uout id-resourceStatusReportingInitiation
+
+ResourceStatusUpdate N x2ap.proc.imsg id-resourceStatusReporting
+
+PrivateMessage N x2ap.proc.imsg id-privateMessage
+
+HandoverReport N x2ap.proc.imsg id-handoverReport
+
+RLFIndication N x2ap.proc.imsg id-rLFIndication
+
+MobilityChangeRequest N x2ap.proc.imsg id-mobilitySettingsChange
+MobilityChangeAcknowledge N x2ap.proc.sout id-mobilitySettingsChange
+MobilityChangeFailure N x2ap.proc.uout id-mobilitySettingsChange
+
+CellActivationRequest N x2ap.proc.imsg id-cellActivation
+CellActivationResponse N x2ap.proc.sout id-cellActivation
+CellActivationFailure N x2ap.proc.uout id-cellActivation
+
+X2Release N x2ap.proc.imsg id-x2Release
+
+X2MessageTransfer N x2ap.proc.imsg id-x2MessageTransfer
+
+#.END
diff --git a/epan/dissectors/asn1/x509af/AuthenticationFramework.asn b/epan/dissectors/asn1/x509af/AuthenticationFramework.asn
new file mode 100644
index 0000000000..9ccb7a13b0
--- /dev/null
+++ b/epan/dissectors/asn1/x509af/AuthenticationFramework.asn
@@ -0,0 +1,283 @@
+-- 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, RDNSequence
+ 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 ::= SEQUENCE {
+ signedCertificate SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject SubjectName,
+ 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 -- },
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+-- imported to allow labelling
+SubjectName ::= CHOICE {
+ rdnSequence RDNSequence
+}
+
+Version ::= INTEGER {v1(0), v2(1), v3(2)}
+
+CertificateSerialNumber ::= INTEGER
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithmId OBJECT IDENTIFIER,
+ parameters ANY 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 OBJECT IDENTIFIER,
+ critical BOOLEAN OPTIONAL,
+ 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 ::= SEQUENCE {
+ signedCertificateList 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},
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+-- 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 ::= SEQUENCE {
+ signedAttributeCertificateInfo AttributeCertificateInfo,
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted BIT STRING
+}
+
+AttributeCertificateInfo ::= SEQUENCE {
+ version Version DEFAULT v1,
+ subject
+ CHOICE {baseCertificateID [0] IssuerSerial,
+ subjectName [1] GeneralNames
+ },
+ issuer GeneralNames,
+ 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] SubjectName} 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
+
+-- 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}
+
+-- these are sneaked in from DSS - a separate dissector seems OTT
+
+DSS-Params ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/x509af/CMakeLists.txt b/epan/dissectors/asn1/x509af/CMakeLists.txt
new file mode 100644
index 0000000000..f67d61769e
--- /dev/null
+++ b/epan/dissectors/asn1/x509af/CMakeLists.txt
@@ -0,0 +1,58 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME x509af )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ AuthenticationFramework.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509ce/x509ce-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/x509af/Makefile.am b/epan/dissectors/asn1/x509af/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/x509af/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/x509af/Makefile.common b/epan/dissectors/asn1/x509af/Makefile.common
new file mode 100644
index 0000000000..bc25d15a99
--- /dev/null
+++ b/epan/dissectors/asn1/x509af/Makefile.common
@@ -0,0 +1,57 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=x509af
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ AuthenticationFramework.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../x509ce/x509ce-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+$(builddir)/../x509ce/x509ce-exp.cnf:
+ (cd $(builddir)/../x509ce && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/x509af/Makefile.nmake b/epan/dissectors/asn1/x509af/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/x509af/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/x509af/packet-x509af-template.c b/epan/dissectors/asn1/x509af/packet-x509af-template.c
new file mode 100644
index 0000000000..e6d675ccea
--- /dev/null
+++ b/epan/dissectors/asn1/x509af/packet-x509af-template.c
@@ -0,0 +1,198 @@
+/* packet-x509af.c
+ * Routines for X.509 Authentication Framework packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-x509if.h"
+#include "packet-x509sat.h"
+#include "packet-ldap.h"
+#include "packet-pkcs1.h"
+#if defined(HAVE_LIBGNUTLS)
+#include <gnutls/gnutls.h>
+#endif
+
+#define PNAME "X.509 Authentication Framework"
+#define PSNAME "X509AF"
+#define PFNAME "x509af"
+
+void proto_register_x509af(void);
+void proto_reg_handoff_x509af(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_x509af = -1;
+static int hf_x509af_algorithm_id = -1;
+static int hf_x509af_extension_id = -1;
+#include "packet-x509af-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_pkix_crl = -1;
+#include "packet-x509af-ett.c"
+static const char *algorithm_id = NULL;
+static void
+x509af_export_publickey(tvbuff_t *tvb, asn1_ctx_t *actx, int offset, int len);
+#include "packet-x509af-fn.c"
+
+/* Exports the SubjectPublicKeyInfo structure as gnutls_datum_t.
+ * actx->private_data is assumed to be a gnutls_datum_t pointer which will be
+ * filled in if non-NULL. */
+static void
+x509af_export_publickey(tvbuff_t *tvb _U_, asn1_ctx_t *actx _U_, int offset _U_, int len _U_)
+{
+#if defined(HAVE_LIBGNUTLS)
+ gnutls_datum_t *subjectPublicKeyInfo = (gnutls_datum_t *)actx->private_data;
+ if (subjectPublicKeyInfo) {
+ subjectPublicKeyInfo->data = (guchar *) tvb_get_ptr(tvb, offset, len);
+ subjectPublicKeyInfo->size = len;
+ actx->private_data = NULL;
+ }
+#endif
+}
+
+const char *x509af_get_last_algorithm_id(void) {
+ return algorithm_id;
+}
+
+
+static int
+dissect_pkix_crl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "PKIX-CRL");
+
+ col_set_str(pinfo->cinfo, COL_INFO, "Certificate Revocation List");
+
+
+ tree=proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_pkix_crl, NULL, "Certificate Revocation List");
+
+ return dissect_x509af_CertificateList(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static void
+x509af_cleanup_protocol(void)
+{
+ algorithm_id = NULL;
+}
+
+/*--- proto_register_x509af ----------------------------------------------*/
+void proto_register_x509af(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_x509af_algorithm_id,
+ { "Algorithm Id", "x509af.algorithm.id",
+ FT_OID, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_x509af_extension_id,
+ { "Extension Id", "x509af.extension.id",
+ FT_OID, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-x509af-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_pkix_crl,
+#include "packet-x509af-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_x509af = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_x509af, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_cleanup_routine(&x509af_cleanup_protocol);
+
+ register_ber_syntax_dissector("Certificate", proto_x509af, dissect_x509af_Certificate_PDU);
+ register_ber_syntax_dissector("CertificateList", proto_x509af, dissect_CertificateList_PDU);
+ register_ber_syntax_dissector("CrossCertificatePair", proto_x509af, dissect_CertificatePair_PDU);
+
+ register_ber_oid_syntax(".cer", NULL, "Certificate");
+ register_ber_oid_syntax(".crt", NULL, "Certificate");
+ register_ber_oid_syntax(".crl", NULL, "CertificateList");
+}
+
+
+/*--- proto_reg_handoff_x509af -------------------------------------------*/
+void proto_reg_handoff_x509af(void) {
+ dissector_handle_t pkix_crl_handle;
+
+ pkix_crl_handle = create_dissector_handle(dissect_pkix_crl, proto_x509af);
+ dissector_add_string("media_type", "application/pkix-crl", pkix_crl_handle);
+
+#include "packet-x509af-dis-tab.c"
+
+ /*XXX these should really go to a better place but since
+ I have not that ITU standard, I'll put it here for the time
+ being.
+ Only implemented those algorithms that take no parameters
+ for the time being, ronnie
+ */
+ /* from http://www.alvestrand.no/objectid/1.3.14.3.2.html */
+ register_ber_oid_dissector("1.3.14.3.2.2", dissect_ber_oid_NULL_callback, proto_x509af, "md4WithRSA");
+ register_ber_oid_dissector("1.3.14.3.2.3", dissect_ber_oid_NULL_callback, proto_x509af, "md5WithRSA");
+ register_ber_oid_dissector("1.3.14.3.2.4", dissect_ber_oid_NULL_callback, proto_x509af, "md4WithRSAEncryption");
+ register_ber_oid_dissector("1.3.14.3.2.6", dissect_ber_oid_NULL_callback, proto_x509af, "desECB");
+ register_ber_oid_dissector("1.3.14.3.2.11", dissect_ber_oid_NULL_callback, proto_x509af, "rsaSignature");
+ register_ber_oid_dissector("1.3.14.3.2.14", dissect_ber_oid_NULL_callback, proto_x509af, "mdc2WithRSASignature");
+ register_ber_oid_dissector("1.3.14.3.2.15", dissect_ber_oid_NULL_callback, proto_x509af, "shaWithRSASignature");
+ register_ber_oid_dissector("1.3.14.3.2.16", dissect_ber_oid_NULL_callback, proto_x509af, "dhWithCommonModulus");
+ register_ber_oid_dissector("1.3.14.3.2.17", dissect_ber_oid_NULL_callback, proto_x509af, "desEDE");
+ register_ber_oid_dissector("1.3.14.3.2.18", dissect_ber_oid_NULL_callback, proto_x509af, "sha");
+ register_ber_oid_dissector("1.3.14.3.2.19", dissect_ber_oid_NULL_callback, proto_x509af, "mdc-2");
+ register_ber_oid_dissector("1.3.14.3.2.20", dissect_ber_oid_NULL_callback, proto_x509af, "dsaCommon");
+ register_ber_oid_dissector("1.3.14.3.2.21", dissect_ber_oid_NULL_callback, proto_x509af, "dsaCommonWithSHA");
+ register_ber_oid_dissector("1.3.14.3.2.22", dissect_ber_oid_NULL_callback, proto_x509af, "rsaKeyTransport");
+ register_ber_oid_dissector("1.3.14.3.2.23", dissect_ber_oid_NULL_callback, proto_x509af, "keyed-hash-seal");
+ register_ber_oid_dissector("1.3.14.3.2.24", dissect_ber_oid_NULL_callback, proto_x509af, "md2WithRSASignature");
+ register_ber_oid_dissector("1.3.14.3.2.25", dissect_ber_oid_NULL_callback, proto_x509af, "md5WithRSASignature");
+ register_ber_oid_dissector("1.3.14.3.2.26", dissect_ber_oid_NULL_callback, proto_x509af, "SHA-1");
+ register_ber_oid_dissector("1.3.14.3.2.27", dissect_ber_oid_NULL_callback, proto_x509af, "dsaWithSHA1");
+ register_ber_oid_dissector("1.3.14.3.2.28", dissect_ber_oid_NULL_callback, proto_x509af, "dsaWithCommonSHA1");
+ register_ber_oid_dissector("1.3.14.3.2.29", dissect_ber_oid_NULL_callback, proto_x509af, "sha-1WithRSAEncryption");
+
+ /* these will generally be encoded as ";binary" in LDAP */
+
+ dissector_add_string("ldap.name", "cACertificate", create_dissector_handle(dissect_x509af_Certificate_PDU, proto_x509af));
+ dissector_add_string("ldap.name", "userCertificate", create_dissector_handle(dissect_x509af_Certificate_PDU, proto_x509af));
+
+ dissector_add_string("ldap.name", "certificateRevocationList", create_dissector_handle(dissect_CertificateList_PDU, proto_x509af));
+ dissector_add_string("ldap.name", "crl", create_dissector_handle(dissect_CertificateList_PDU, proto_x509af));
+
+ dissector_add_string("ldap.name", "authorityRevocationList", create_dissector_handle(dissect_CertificateList_PDU, proto_x509af));
+ dissector_add_string("ldap.name", "arl", create_dissector_handle(dissect_CertificateList_PDU, proto_x509af));
+
+ dissector_add_string("ldap.name", "crossCertificatePair", create_dissector_handle(dissect_CertificatePair_PDU, proto_x509af));
+}
+
diff --git a/epan/dissectors/asn1/x509af/packet-x509af-template.h b/epan/dissectors/asn1/x509af/packet-x509af-template.h
new file mode 100644
index 0000000000..a62d080586
--- /dev/null
+++ b/epan/dissectors/asn1/x509af/packet-x509af-template.h
@@ -0,0 +1,32 @@
+/* packet-x509af.h
+ * Routines for X.509 Authentication Framework packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_X509AF_H
+#define PACKET_X509AF_H
+
+#include "packet-x509af-exp.h"
+
+extern const char* x509af_get_last_algorithm_id(void);
+
+#endif /* PACKET_X509AF_H */
+
diff --git a/epan/dissectors/asn1/x509af/x509af.cnf b/epan/dissectors/asn1/x509af/x509af.cnf
new file mode 100644
index 0000000000..965b221cba
--- /dev/null
+++ b/epan/dissectors/asn1/x509af/x509af.cnf
@@ -0,0 +1,162 @@
+# x509.cnf
+# X509 conformation file
+
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+
+#.MODULE_EXPORTS
+EXTENSION
+ACPathData
+AlgorithmIdentifier
+AttCertValidityPeriod
+AttributeCertificate
+AttributeCertificateAssertion
+AttributeCertificateInfo
+AttributeCertificationPath
+Certificate
+Certificate_PDU
+Certificates
+CertificateList
+CertificatePair
+CertificateSerialNumber
+CertificationPath
+CrossCertificates
+Extension
+Extensions
+ForwardCertificationPath
+IssuerSerial
+SubjectPublicKeyInfo
+Time
+Validity
+Version
+
+#.PDU
+
+#.REGISTER
+Certificate B "2.5.4.36" "id-at-userCertificate"
+Certificate B "2.5.4.37" "id-at-cAcertificate"
+CertificateList B "2.5.4.38" "id-at-authorityRevocationList"
+CertificateList B "2.5.4.39" "id-at-certificateRevocationList"
+CertificatePair B "2.5.4.40" "id-at-crossCertificatePair"
+CertificateList B "2.5.4.53" "id-at-deltaRevocationList"
+AttributeCertificate B "2.5.4.58" "id-at-attributeCertificate"
+CertificateList B "2.5.4.59" "id-at-attributeCertificateRevocationList"
+
+DSS-Params B "1.2.840.10040.4.1" "id-dsa"
+
+#.TYPE_RENAME
+AttributeCertificateInfo/subject InfoSubject
+AttributeCertificateAssertion/subject AssertionSubject
+
+#.FIELD_RENAME
+AttributeCertificateInfo/issuer issuerName
+AttributeCertificateInfo/subject info_subject
+AttributeCertificateAssertion/subject assertion_subject
+
+AttributeCertificateAssertion/issuer assertionIssuer
+
+AttributeCertificateInfo/subject/subjectName infoSubjectName
+AttributeCertificateAssertion/subject/subjectName assertionSubjectName
+IssuerSerial/issuer issuerName
+CertificateList/signedCertificateList/revokedCertificates/_item/userCertificate revokedUserCertificate
+#.END
+
+#.FN_PARS AlgorithmIdentifier/algorithmId
+ FN_VARIANT = _str HF_INDEX = hf_x509af_algorithm_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY AlgorithmIdentifier/algorithmId
+ const char *name;
+
+ %(DEFAULT_BODY)s
+
+ if (algorithm_id) {
+ wmem_free(wmem_file_scope(), (void*)algorithm_id);
+ }
+
+ if(actx->external.direct_reference) {
+ algorithm_id = (const char *)wmem_strdup(wmem_file_scope(), actx->external.direct_reference);
+
+ name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference);
+
+ proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
+ } else {
+ algorithm_id = NULL;
+ }
+
+#.FN_BODY AlgorithmIdentifier/parameters
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_HDR SubjectPublicKeyInfo
+ int orig_offset = offset;
+#.FN_FTR SubjectPublicKeyInfo
+ x509af_export_publickey(tvb, actx, orig_offset, offset - orig_offset);
+#.END
+
+#.FN_BODY SubjectPublicKeyInfo/subjectPublicKey
+ tvbuff_t *bs_tvb = NULL;
+# proto_tree *subtree;
+
+ dissect_ber_bitstring(FALSE, actx, NULL, tvb, offset,
+ NULL, -1, -1, &bs_tvb);
+
+ /* See RFC 3279 for possible subjectPublicKey values given an Algorithm ID.
+ * The contents of subjectPublicKey are always explicitly tagged. */
+ if (bs_tvb && !g_strcmp0(algorithm_id, "1.2.840.113549.1.1.1")) { /* id-rsa */
+ offset += dissect_pkcs1_RSAPublicKey(FALSE, bs_tvb, 0, actx, tree, hf_index);
+
+# TODO: PKCS#1 only defines RSA; DH and DSA are from PKIX1Algorithms2008
+# } else if (bs_tvb && !g_strcmp0(algorithm_id, "1.2.840.10040.4.1")) { /* id-dsa */
+# subtree = proto_item_add_subtree(actx->created_item, ett_subjectpublickey);
+# offset += dissect_DSAPublicKey(FALSE, bs_tvb, 0, actx, subtree, hf_dsa_y);
+#
+# } else if (bs_tvb && !g_strcmp0(algorithm_id, "1.2.840.10046.2.1")) { /* dhpublicnumber */
+# subtree = proto_item_add_subtree(actx->created_item, ett_subjectpublickey);
+# offset += dissect_DHPublicKey(FALSE, bs_tvb, 0, actx, subtree, hf_dh_y);
+#
+ } else {
+ offset = dissect_ber_bitstring(FALSE, actx, tree, tvb, offset,
+ NULL, hf_index, -1, NULL);
+ }
+
+#.FN_PARS Extension/extnId
+ FN_VARIANT = _str HF_INDEX = hf_x509af_extension_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Extension/extnId
+ const char *name;
+
+ %(DEFAULT_BODY)s
+
+ if(actx->external.direct_reference) {
+ name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference);
+
+ proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
+ }
+
+#.FN_BODY Extension/extnValue
+ gint8 ber_class;
+ gboolean pc, ind;
+ gint32 tag;
+ guint32 len;
+ /* skip past the T and L */
+ offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset = dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY SubjectName
+
+ const char* str;
+ %(DEFAULT_BODY)s
+
+ str = x509if_get_last_dn();
+ proto_item_append_text(proto_item_get_parent(tree), " (%%s)", str?str:"");
+
+#.TYPE_ATTR
+CertificateSerialNumber TYPE = FT_INT64
+DSS-Params/p TYPE = FT_BYTES DISPLAY = BASE_NONE
+DSS-Params/q TYPE = FT_BYTES DISPLAY = BASE_NONE
+DSS-Params/g TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_PARS CertificateSerialNumber FN_VARIANT = 64
+
+#.END
diff --git a/epan/dissectors/asn1/x509ce/CMakeLists.txt b/epan/dissectors/asn1/x509ce/CMakeLists.txt
new file mode 100644
index 0000000000..dc04f53c2c
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/CMakeLists.txt
@@ -0,0 +1,64 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME x509ce )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ CertificateExtensions.asn
+ CertificateExtensionsCiplus.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+set( EXPORT_DEPENDS
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509af/x509af-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/x509ce/CertificateExtensions.asn b/epan/dissectors/asn1/x509ce/CertificateExtensions.asn
new file mode 100644
index 0000000000..78fd06f7b4
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/CertificateExtensions.asn
@@ -0,0 +1,744 @@
+-- Module CertificateExtensions (X.509:08/2005)
+CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 5} 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) 5}
+ Name, RelativeDistinguishedName, ATTRIBUTE, Attribute, MATCHING-RULE
+ FROM InformationFramework informationFramework
+ CertificateSerialNumber, CertificateList, AlgorithmIdentifier, EXTENSION,
+ Time, PolicyID
+ 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.
+-- public-key certificate and CRL 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), contentCommitment(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
+
+KeyPurposeIDs ::= SEQUENCE OF KeyPurposeId
+
+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 ::=
+ {...}
+
+anyPolicy OBJECT IDENTIFIER ::= {2 5 29 32 0}
+
+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}
+
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName
+}
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] -- INSTANCE OF OTHER-NAME-- OtherName,
+ 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
+
+OtherName ::= SEQUENCE {
+ type-id OtherNameType,
+ value [0] EXPLICIT OtherNameValue
+}
+
+OtherNameType ::= OBJECT IDENTIFIER
+OtherNameValue ::= ANY
+
+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
+
+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
+}(-- ALL EXCEPT -- ({ --none; at least one component shall be present--}))
+
+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)
+
+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),
+ privilegeWithdrawn(9), aaCompromise(10)}
+
+holdInstructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode
+}
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate
+}
+
+crlScope EXTENSION ::= {
+ SYNTAX CRLScopeSyntax
+ IDENTIFIED BY id-ce-cRLScope
+}
+
+CRLScopeSyntax ::= SEQUENCE SIZE (1..MAX) OF PerAuthorityScope
+
+PerAuthorityScope ::= SEQUENCE {
+ authorityName [0] GeneralName OPTIONAL,
+ distributionPoint [1] DistributionPointName OPTIONAL,
+ onlyContains [2] OnlyCertificateTypes OPTIONAL,
+ onlySomeReasons [4] ReasonFlags OPTIONAL,
+ serialNumberRange [5] NumberRange OPTIONAL,
+ subjectKeyIdRange [6] NumberRange OPTIONAL,
+ nameSubtrees [7] GeneralNames OPTIONAL,
+ baseRevocationInfo [9] BaseRevocationInfo OPTIONAL
+}
+
+OnlyCertificateTypes ::= BIT STRING {user(0), authority(1), attribute(2)}
+
+NumberRange ::= SEQUENCE {
+ startingNumber [0] INTEGER OPTIONAL,
+ endingNumber [1] INTEGER OPTIONAL,
+ modulus INTEGER OPTIONAL
+}
+
+BaseRevocationInfo ::= SEQUENCE {
+ cRLStreamIdentifier [0] CRLStreamIdentifier OPTIONAL,
+ cRLNumber [1] CRLNumber,
+ baseThisUpdate [2] GeneralizedTime
+}
+
+statusReferrals EXTENSION ::= {
+ SYNTAX StatusReferrals
+ IDENTIFIED BY id-ce-statusReferrals
+}
+
+StatusReferrals ::= SEQUENCE SIZE (1..MAX) OF StatusReferral
+
+StatusReferral ::= CHOICE {
+ cRLReferral [0] CRLReferral
+-- otherReferral [1] INSTANCE OF OTHER-REFERRAL
+}
+
+CRLReferral ::= SEQUENCE {
+ issuer [0] GeneralName OPTIONAL,
+ location [1] GeneralName OPTIONAL,
+ deltaRefInfo [2] DeltaRefInfo OPTIONAL,
+ cRLScope CRLScopeSyntax,
+ lastUpdate [3] GeneralizedTime OPTIONAL,
+ lastChangedCRL [4] GeneralizedTime OPTIONAL
+}
+
+DeltaRefInfo ::= SEQUENCE {
+ deltaLocation GeneralName,
+ lastDelta GeneralizedTime OPTIONAL
+}
+
+--OTHER-REFERRAL ::= TYPE-IDENTIFIER
+--
+cRLStreamIdentifier EXTENSION ::= {
+ SYNTAX CRLStreamIdentifier
+ IDENTIFIED BY id-ce-cRLStreamIdentifier
+}
+
+CRLStreamIdentifier ::= INTEGER(0..MAX)
+
+orderedList EXTENSION ::= {
+ SYNTAX OrderedListSyntax
+ IDENTIFIED BY id-ce-orderedList
+}
+
+OrderedListSyntax ::= ENUMERATED {ascSerialNum(0), ascRevDate(1)}
+
+deltaInfo EXTENSION ::= {
+ SYNTAX DeltaInformation
+ IDENTIFIED BY id-ce-deltaInfo
+}
+
+DeltaInformation ::= SEQUENCE {
+ deltaLocation GeneralName,
+ nextDelta GeneralizedTime OPTIONAL
+}
+
+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),
+ privilegeWithdrawn(7), aACompromise(8)}
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint
+}
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ -- If onlyContainsUserPublicKeyCerts and onlyContainsCACerts are both FALSE,
+ -- the CRL covers both certificate types
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserPublicKeyCerts [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
+
+toBeRevoked EXTENSION ::= {
+ SYNTAX ToBeRevokedSyntax
+ IDENTIFIED BY id-ce-toBeRevoked
+}
+
+ToBeRevokedSyntax ::= SEQUENCE SIZE (1..MAX) OF ToBeRevokedGroup
+
+ToBeRevokedGroup ::= SEQUENCE {
+ certificateIssuer [0] GeneralName OPTIONAL,
+ reasonInfo [1] ReasonInfo OPTIONAL,
+ revocationTime GeneralizedTime,
+ certificateGroup CertificateGroup
+}
+
+ReasonInfo ::= SEQUENCE {
+ reasonCode CRLReason,
+ holdInstructionCode HoldInstruction OPTIONAL
+}
+
+CertificateGroup ::= CHOICE {
+ serialNumbers [0] CertificateSerialNumbers,
+ serialNumberRange [1] CertificateGroupNumberRange,
+ nameSubtree [2] GeneralName
+}
+
+CertificateGroupNumberRange ::= SEQUENCE {
+ startingNumber [0] INTEGER,
+ endingNumber [1] INTEGER
+}
+
+CertificateSerialNumbers ::= SEQUENCE SIZE (1..MAX) OF CertificateSerialNumber
+
+revokedGroups EXTENSION ::= {
+ SYNTAX RevokedGroupsSyntax
+ IDENTIFIED BY id-ce-RevokedGroups
+}
+
+RevokedGroupsSyntax ::= SEQUENCE SIZE (1..MAX) OF RevokedGroup
+
+RevokedGroup ::= SEQUENCE {
+ certificateIssuer [0] GeneralName OPTIONAL,
+ reasonInfo [1] ReasonInfo OPTIONAL,
+ invalidityDate [2] GeneralizedTime OPTIONAL,
+ revokedcertificateGroup [3] RevokedCertificateGroup
+}
+
+RevokedCertificateGroup ::= CHOICE {
+ serialNumberRange NumberRange,
+ nameSubtree GeneralName
+}
+
+expiredCertsOnCRL EXTENSION ::= {
+ SYNTAX ExpiredCertsOnCRL
+ IDENTIFIED BY id-ce-expiredCertsOnCRL
+}
+
+ExpiredCertsOnCRL ::= GeneralizedTime
+
+baseUpdateTime EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-baseUpdateTime
+}
+
+freshestCRL EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-freshestCRL
+}
+
+aAissuingDistributionPoint EXTENSION ::= {
+ SYNTAX AAIssuingDistPointSyntax
+ IDENTIFIED BY id-ce-aAissuingDistributionPoint
+}
+
+AAIssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlySomeReasons [1] ReasonFlags OPTIONAL,
+ indirectCRL [2] BOOLEAN DEFAULT FALSE,
+ containsUserAttributeCerts [3] BOOLEAN DEFAULT TRUE,
+ containsAACerts [4] BOOLEAN DEFAULT TRUE,
+ containsSOAPublicKeyCerts [5] BOOLEAN DEFAULT TRUE
+}
+
+inhibitAnyPolicy EXTENSION ::= {
+ SYNTAX SkipCerts
+ IDENTIFIED BY id-ce-inhibitAnyPolicy
+}
+
+-- PKI 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,
+ subject [11] Name OPTIONAL,
+ nameConstraints [12] NameConstraintsSyntax OPTIONAL
+}
+
+AltNameType ::= CHOICE {
+ builtinNameForm
+ ENUMERATED {rfc822Name(1), dNSName(2), x400Address(3), directoryName(4),
+ ediPartyName(5), uniformResourceIdentifier(6), iPAddress(7),
+ registeredId(8)},
+ otherNameForm OBJECT IDENTIFIER
+}
+
+CertPolicySet ::= SEQUENCE SIZE (1..MAX) OF CertPolicyId
+
+certificatePairExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairExactAssertion
+ ID id-mr-certificatePairExactMatch
+}
+
+CertificatePairExactAssertion ::= SEQUENCE {
+ issuedToThisCAAssertion [0] CertificateExactAssertion OPTIONAL,
+ issuedByThisCAAssertion [1] CertificateExactAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ issuedToThisCAAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ issuedByThisCAAssertion PRESENT
+ })
+
+certificatePairMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairAssertion
+ ID id-mr-certificatePairMatch
+}
+
+CertificatePairAssertion ::= SEQUENCE {
+ issuedToThisCAAssertion [0] CertificateAssertion OPTIONAL,
+ issuedByThisCAAssertion [1] CertificateAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ issuedToThisCAAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ issuedByThisCAAssertion 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,
+ authorityKeyIdentifier [3] AuthorityKeyIdentifier OPTIONAL
+}
+
+algorithmIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX AlgorithmIdentifier
+ ID id-mr-algorithmIdentifierMatch
+}
+
+policyMatch MATCHING-RULE ::= {SYNTAX PolicyID
+ ID id-mr-policyMatch
+}
+
+pkiPathMatch MATCHING-RULE ::= {
+ SYNTAX PkiPathMatchSyntax
+ ID id-mr-pkiPathMatch
+}
+
+PkiPathMatchSyntax ::= SEQUENCE {firstIssuer Name,
+ lastSubject Name
+}
+
+enhancedCertificateMatch MATCHING-RULE ::= {
+ SYNTAX EnhancedCertificateAssertion
+ ID id-mr-enhancedCertificateMatch
+}
+
+EnhancedCertificateAssertion ::= 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] AltName OPTIONAL,
+ policy [9] CertPolicySet OPTIONAL,
+ pathToName [10] GeneralNames OPTIONAL,
+ subject [11] Name OPTIONAL,
+ nameConstraints [12] NameConstraintsSyntax OPTIONAL
+}(--ALL EXCEPT-- ({ -- none; at least one component shall be present --}))
+
+AltName ::= SEQUENCE {
+ altnameType AltNameType,
+ altNameValue GeneralName OPTIONAL
+}
+
+-- Object identifier assignments
+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}
+
+-- 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-ce-cRLStreamIdentifier OBJECT IDENTIFIER ::= {id-ce 40}
+
+id-ce-cRLScope OBJECT IDENTIFIER ::= {id-ce 44}
+
+id-ce-statusReferrals OBJECT IDENTIFIER ::= {id-ce 45}
+
+id-ce-freshestCRL OBJECT IDENTIFIER ::= {id-ce 46}
+
+id-ce-orderedList OBJECT IDENTIFIER ::= {id-ce 47}
+
+id-ce-baseUpdateTime OBJECT IDENTIFIER ::= {id-ce 51}
+
+id-ce-deltaInfo OBJECT IDENTIFIER ::= {id-ce 53}
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= {id-ce 54}
+
+id-ce-toBeRevoked OBJECT IDENTIFIER ::= {id-ce 58}
+
+id-ce-RevokedGroups OBJECT IDENTIFIER ::= {id-ce 59}
+
+id-ce-expiredCertsOnCRL OBJECT IDENTIFIER ::= {id-ce 60}
+
+id-ce-aAissuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 63}
+
+-- matching rule OIDs
+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-policyMatch OBJECT IDENTIFIER ::= {id-mr 60}
+
+id-mr-pkiPathMatch OBJECT IDENTIFIER ::= {id-mr 62}
+
+id-mr-enhancedCertificateMatch OBJECT IDENTIFIER ::= {id-mr 65}
+
+-- 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}
+
+-- Microsoft Certificate Extension
+
+CertificateTemplate ::= SEQUENCE {
+ templateID OBJECT IDENTIFIER,
+ templateMajorVersion INTEGER,
+ templateMinorVersion INTEGER OPTIONAL
+}
+
+-- Entrust Certificate Extension
+
+EntrustVersionInfo ::= SEQUENCE {
+ entrustVers GeneralString,
+ entrustVersInfoFlags EntrustInfoFlags OPTIONAL
+}
+
+EntrustInfoFlags ::= BIT STRING {
+ keyUpdateAllowed(0),
+ newExtensions(1),
+ pKIXCertificate(2),
+ enterpriseCategory(3),
+ webCategory(4),
+ sETCategory(5)
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/x509ce/CertificateExtensionsCiplus.asn b/epan/dissectors/asn1/x509ce/CertificateExtensionsCiplus.asn
new file mode 100644
index 0000000000..00c024b5d6
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/CertificateExtensionsCiplus.asn
@@ -0,0 +1,46 @@
+-- Module CertificateExtensionsCiplus
+-- X.509 certificate extensions defined by CI+ (www.ci-plus.com)
+CertificateExtensionsCiplus DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ id-pkix
+ 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)}
+ EXTENSION
+ FROM AuthenticationFramework { joint-iso-itu-t ds(5)
+ module(1) authenticationFramework(7) 3 };
+
+scramblerCapabilities EXTENSION ::= {
+ SYNTAX ScramblerCapabilities
+ IDENTIFIED BY id-pe-scramblerCapabilities
+}
+
+ScramblerCapabilities ::= SEQUENCE {
+ capability INTEGER (0..MAX),
+ version INTEGER (0..MAX)
+}
+
+
+ciplusInfo EXTENSION ::= {
+ SYNTAX CiplusInfo
+ IDENTIFIED BY id-pe-ciplusInfo
+}
+
+CiplusInfo ::= BIT STRING
+
+
+cicamBrandId EXTENSION ::= {
+ SYNTAX CicamBrandId
+ IDENTIFIED BY id-pe-cicamBrandId
+}
+
+CicamBrandId ::= INTEGER(1..65535)
+
+-- Object identifier assignments
+id-pe-scramblerCapabilities OBJECT IDENTIFIER ::= { id-pkix id-pe(1) 25 }
+id-pe-ciplusInfo OBJECT IDENTIFIER ::= { id-pkix id-pe(1) 26 }
+id-pe-cicamBrandId OBJECT IDENTIFIER ::= { id-pkix id-pe(1) 27 }
+
+END
diff --git a/epan/dissectors/asn1/x509ce/Makefile.am b/epan/dissectors/asn1/x509ce/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/x509ce/Makefile.common b/epan/dissectors/asn1/x509ce/Makefile.common
new file mode 100644
index 0000000000..df7c3581b5
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/Makefile.common
@@ -0,0 +1,65 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=x509ce
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ CertificateExtensions.asn \
+ CertificateExtensionsCiplus.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS = -b
+
+EXTRA_CNF = \
+ $(builddir)/../p1/p1-exp.cnf \
+ $(builddir)/../x509af/x509af-exp.cnf \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+EXPORT_DEPENDS = \
+ $(builddir)/../x509af/x509af-exp.cnf
+
+$(builddir)/../p1/p1-exp.cnf:
+ (cd $(builddir)/../p1 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509af/x509af-exp.cnf:
+ (cd $(builddir)/../x509af && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/x509ce/Makefile.nmake b/epan/dissectors/asn1/x509ce/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/x509ce/packet-x509ce-template.c b/epan/dissectors/asn1/x509ce/packet-x509ce-template.c
new file mode 100644
index 0000000000..006d9de471
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/packet-x509ce-template.c
@@ -0,0 +1,142 @@
+/* packet-x509ce.c
+ * Routines for X.509 Certificate Extensions packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-x509ce.h"
+#include "packet-x509af.h"
+#include "packet-x509if.h"
+#include "packet-x509sat.h"
+#include "packet-p1.h"
+
+#define PNAME "X.509 Certificate Extensions"
+#define PSNAME "X509CE"
+#define PFNAME "x509ce"
+
+void proto_register_x509ce(void);
+void proto_reg_handoff_x509ce(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_x509ce = -1;
+static int hf_x509ce_id_ce_invalidityDate = -1;
+static int hf_x509ce_id_ce_baseUpdateTime = -1;
+static int hf_x509ce_object_identifier_id = -1;
+static int hf_x509ce_IPAddress = -1;
+#include "packet-x509ce-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-x509ce-ett.c"
+#include "packet-x509ce-fn.c"
+
+/* CI+ (www.ci-plus.com) defines some X.509 certificate extensions
+ that use OIDs which are not officially assigned
+ dissection of these extensions can be enabled temporarily using the
+ functions below */
+void
+x509ce_enable_ciplus(void)
+{
+ dissector_handle_t dh25, dh26, dh27;
+
+ dh25 = create_dissector_handle(dissect_ScramblerCapabilities_PDU, proto_x509ce);
+ dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.25", dh25);
+ dh26 = create_dissector_handle(dissect_CiplusInfo_PDU, proto_x509ce);
+ dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.26", dh26);
+ dh27 = create_dissector_handle(dissect_CicamBrandId_PDU, proto_x509ce);
+ dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.27", dh27);
+}
+
+void
+x509ce_disable_ciplus(void)
+{
+ dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.25");
+ dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.26");
+ dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.27");
+}
+
+
+static int
+dissect_x509ce_invalidityDate_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ return dissect_x509ce_GeneralizedTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_id_ce_invalidityDate);
+}
+
+static int
+dissect_x509ce_baseUpdateTime_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ return dissect_x509ce_GeneralizedTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x509ce_id_ce_baseUpdateTime);
+}
+
+/*--- proto_register_x509ce ----------------------------------------------*/
+void proto_register_x509ce(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_x509ce_id_ce_baseUpdateTime,
+ { "baseUpdateTime", "x509ce.id_ce_baseUpdateTime",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_x509ce_id_ce_invalidityDate,
+ { "invalidityDate", "x509ce.id_ce_invalidityDate",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_x509ce_object_identifier_id,
+ { "Id", "x509ce.id", FT_OID, BASE_NONE, NULL, 0,
+ "Object identifier Id", HFILL }},
+ { &hf_x509ce_IPAddress,
+ { "iPAddress", "x509ce.IPAddress", FT_IPv4, BASE_NONE, NULL, 0,
+ "IP Address", HFILL }},
+
+#include "packet-x509ce-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-x509ce-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_x509ce = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_x509ce, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_x509ce -------------------------------------------*/
+void proto_reg_handoff_x509ce(void) {
+#include "packet-x509ce-dis-tab.c"
+ register_ber_oid_dissector("2.5.29.24", dissect_x509ce_invalidityDate_callback, proto_x509ce, "id-ce-invalidityDate");
+ register_ber_oid_dissector("2.5.29.51", dissect_x509ce_baseUpdateTime_callback, proto_x509ce, "id-ce-baseUpdateTime");
+}
+
diff --git a/epan/dissectors/asn1/x509ce/packet-x509ce-template.h b/epan/dissectors/asn1/x509ce/packet-x509ce-template.h
new file mode 100644
index 0000000000..eebaf71265
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/packet-x509ce-template.h
@@ -0,0 +1,33 @@
+/* packet-x509ce.h
+ * Routines for X.509 Certificate Extensions packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_X509CE_H
+#define PACKET_X509CE_H
+
+#include "packet-x509ce-exp.h"
+
+void x509ce_enable_ciplus(void);
+void x509ce_disable_ciplus(void);
+
+#endif /* PACKET_X509CE_H */
+
diff --git a/epan/dissectors/asn1/x509ce/x509ce.cnf b/epan/dissectors/asn1/x509ce/x509ce.cnf
new file mode 100644
index 0000000000..454ea8958e
--- /dev/null
+++ b/epan/dissectors/asn1/x509ce/x509ce.cnf
@@ -0,0 +1,187 @@
+# x509ce.cnf
+# X509CE conformation file
+
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
+
+# Forward declaration
+#.CLASS CERT-POLICY-QUALIFIER
+&id ObjectIdentifierType
+&Qualifier
+#.END
+
+# InformationFramework classes
+##.CLASS ATTRIBUTE
+#&derivation ClassReference ATTRIBUTE
+#&Type
+#&equality-match ClassReference MATCHING-RULE
+#&ordering-match ClassReference MATCHING-RULE
+#&substrings-match ClassReference MATCHING-RULE
+#&single-valued BooleanType
+#&collective BooleanType
+#&no-user-modification BooleanType
+#&usage
+#&id ObjectIdentifierType
+##.END
+
+#.CLASS MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+#.EXPORTS
+AltNameType
+AttributesSyntax
+AuthorityKeyIdentifier
+BaseCRLNumber
+BaseDistance
+BaseRevocationInfo
+BasicConstraintsSyntax
+CertificateAssertion
+CertificateExactAssertion
+CertificateListAssertion
+CertificateListExactAssertion
+CertificatePairAssertion
+CertificatePairExactAssertion
+CertificatePoliciesSyntax
+CertPolicySet
+CRLDistPointsSyntax
+CRLNumber
+CRLReason
+CRLReferral
+CRLScopeSyntax
+CRLStreamIdentifier
+DeltaInformation
+DeltaRefInfo
+DistributionPoint
+DistributionPointName
+EDIPartyName
+GeneralName
+GeneralNames
+GeneralSubtree
+GeneralSubtrees
+HoldInstruction
+IssuingDistPointSyntax
+KeyIdentifier
+KeyPurposeId
+KeyPurposeIDs
+KeyUsage
+NameConstraintsSyntax
+NumberRange
+OnlyCertificateTypes
+OrderedListSyntax
+PerAuthorityScope
+PkiPathMatchSyntax
+PolicyConstraintsSyntax
+PolicyInformation
+PolicyMappingsSyntax
+PolicyQualifierInfo
+PrivateKeyUsagePeriod
+ReasonFlags
+SkipCerts
+StatusReferral
+StatusReferrals
+SubjectKeyIdentifier
+ScramblerCapabilities
+CiplusInfo
+CicamBrandId
+
+#.PDU
+ScramblerCapabilities
+CiplusInfo
+CicamBrandId
+
+
+#.REGISTER
+CertificatePoliciesSyntax B "2.5.29.3" "id-ce-certificatePolicies"
+AttributesSyntax B "2.5.29.9" "id-ce-subjectDirectoryAttributes"
+SubjectKeyIdentifier B "2.5.29.14" "id-ce-subjectKeyIdentifier"
+KeyUsage B "2.5.29.15" "id-ce-keyUsage"
+PrivateKeyUsagePeriod B "2.5.29.16" "id-ce-privateKeyUsagePeriod"
+GeneralNames B "2.5.29.17" "id-ce-subjectAltName"
+GeneralNames B "2.5.29.18" "id-ce-issuerAltName"
+BasicConstraintsSyntax B "2.5.29.19" "id-ce-basicConstraints"
+CRLNumber B "2.5.29.20" "id-ce-cRLNumber"
+CRLReason B "2.5.29.21" "id-ce-reasonCode"
+HoldInstruction B "2.5.29.23" "id-ce-instructionCode"
+BaseCRLNumber B "2.5.29.27" "id-ce-deltaCRLIndicator"
+IssuingDistPointSyntax B "2.5.29.28" "id-ce-issuingDistributionPoint"
+GeneralNames B "2.5.29.29" "id-ce-certificateIssuer"
+NameConstraintsSyntax B "2.5.29.30" "id-ce-nameConstraints"
+CRLDistPointsSyntax B "2.5.29.31" "id-ce-cRLDistributionPoints"
+CertificatePoliciesSyntax B "2.5.29.32" "id-ce-certificatePolicies"
+PolicyMappingsSyntax B "2.5.29.33" "id-ce-policyMappings"
+AuthorityKeyIdentifier B "2.5.29.35" "id-ce-authorityKeyIdentifier"
+PolicyConstraintsSyntax B "2.5.29.36" "id-ce-policyConstraints"
+KeyPurposeIDs B "2.5.29.37" "id-ce-extKeyUsage"
+CRLStreamIdentifier B "2.5.29.40" "id-ce-cRLStreamIdentifier"
+CRLScopeSyntax B "2.5.29.44" "id-ce-cRLScope"
+StatusReferrals B "2.5.29.45" "id-ce-statusReferrals"
+CRLDistPointsSyntax B "2.5.29.46" "id-ce-freshestCRL"
+OrderedListSyntax B "2.5.29.47" "id-ce-orderedList"
+DeltaInformation B "2.5.29.53" "id-ce-deltaInfo"
+SkipCerts B "2.5.29.54" "id-ce-inhibitAnyPolicy"
+ToBeRevokedSyntax B "2.5.29.58" "id-ce-toBeRevoked"
+RevokedGroupsSyntax B "2.5.29.59" "id-ce-RevokedGroups"
+ExpiredCertsOnCRL B "2.5.29.60" "id-ce-expiredCertsOnCRL"
+AAIssuingDistPointSyntax B "2.5.29.61" "id-ce-aAissuingDistributionPoint"
+
+CertificateAssertion B "2.5.13.35" "id-mr-certificateMatch"
+CertificatePairExactAssertion B "2.5.13.36" "id-mr-certificatePairExactMatch"
+CertificatePairAssertion B "2.5.13.37" "id-mr-certificatePairMatch"
+CertificateListExactAssertion B "2.5.13.38" "id-mr-certificateListExactMatch"
+CertificateListAssertion B "2.5.13.39" "id-mr-certificateListMatch"
+PkiPathMatchSyntax B "2.5.13.62" "id-mr-pkiPathMatch"
+EnhancedCertificateAssertion B "2.5.13.65" "id-mr-enhancedCertificateMatch"
+
+# These are obsolete???
+# 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}
+
+# Microsoft extensions
+CertificateTemplate B "1.3.6.1.4.1.311.21.7" "id-ms-certificate-template"
+CertificatePoliciesSyntax B "1.3.6.1.4.1.311.21.10" "id-ms-application-certificate-policies"
+
+# Entrust extensions
+EntrustVersionInfo B "1.2.840.113533.7.65.0" "id-ce-entrustVersionInfo"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+CRLReferral/issuer crlr_issuer
+CertificatePairExactAssertion/issuedToThisCAAssertion cpea_issuedToThisCAAssertion
+CertificatePairExactAssertion/issuedByThisCAAssertion cpea_issuedByThisCAAssertion
+CertificateGroup/serialNumberRange certificateGroupNumberRange
+CertificateAssertion/subjectAltName subjectAltNameType
+EnhancedCertificateAssertion/pathToName enhancedPathToName
+
+#.FN_PARS PolicyQualifierInfo/policyQualifierId
+ FN_VARIANT = _str HF_INDEX = hf_x509ce_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY PolicyQualifierInfo/qualifier
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY GeneralName/iPAddress
+ proto_tree_add_item(tree, hf_x509ce_IPAddress, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset+=4;
+
+#.FN_PARS OtherNameType
+ FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY OtherNameValue
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_FTR GeneralName/uniformResourceIdentifier
+
+ PROTO_ITEM_SET_URL(actx->created_item);
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/x509if/CMakeLists.txt b/epan/dissectors/asn1/x509if/CMakeLists.txt
new file mode 100644
index 0000000000..4bfbd394c3
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/CMakeLists.txt
@@ -0,0 +1,57 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME x509if )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ InformationFramework.asn
+ ServiceAdministration.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509sat/x509sat-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/x509if/InformationFramework.asn b/epan/dissectors/asn1/x509if/InformationFramework.asn
new file mode 100644
index 0000000000..fda46efabd
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/InformationFramework.asn
@@ -0,0 +1,685 @@
+-- Module InformationFramework (X.501:08/2005)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 5} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ directoryAbstractService, id-ar, id-at, id-mr, id-nf, id-oa, id-oc,
+ id-sc, selectedAttributeTypes, serviceAdministration, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 5}
+ SearchRule
+ FROM ServiceAdministration serviceAdministration
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ TypeAndContextAssertion
+ FROM DirectoryAbstractService directoryAbstractService
+ -- from ITU-T Rec. X.520 | ISO/IEC 9594-6
+ booleanMatch, commonName, DirectoryString{}, generalizedTimeMatch,
+ generalizedTimeOrderingMatch, integerFirstComponentMatch, integerMatch,
+ integerOrderingMatch, objectIdentifierFirstComponentMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ 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,
+ &dummy 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]
+ [DUMMY &dummy]
+ [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 OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE 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,
+ -- shall 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 ,
+ &DefaultValue OPTIONAL,
+ &Assertion OPTIONAL,
+ &absentMatch BOOLEAN DEFAULT TRUE,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ WITH SYNTAX &Type
+ [DEFAULT-VALUE &DefaultValue]
+ [ASSERTED AS &Assertion]
+ [ABSENT-MATCH &absentMatch]
+ 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]
+}
+
+FRIENDS ::= CLASS {&anchor ATTRIBUTE.&id UNIQUE,
+ &Friends ATTRIBUTE
+}WITH SYNTAX {ANCHOR &anchor
+ FRIENDS &Friends
+}
+
+-- 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
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 42.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 42.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 42.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
+}
+
+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
+}
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX HierarchyLevel
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+HierarchyLevel ::= INTEGER
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX HierarchyBelow
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+HierarchyBelow ::= BOOLEAN
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+hierarchyTop ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyTop
+}
+
+-- 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}
+
+id-oa-hierarchyTop OBJECT IDENTIFIER ::= {id-oa 20}
+
+-- 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/epan/dissectors/asn1/x509if/Makefile.am b/epan/dissectors/asn1/x509if/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/x509if/Makefile.common b/epan/dissectors/asn1/x509if/Makefile.common
new file mode 100644
index 0000000000..9aae6316c1
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/Makefile.common
@@ -0,0 +1,51 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=x509if
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ InformationFramework.asn \
+ ServiceAdministration.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b
+
+EXTRA_CNF= \
+ $(builddir)/../x509sat/x509sat-exp.cnf
+
+$(builddir)/../x509sat/x509sat-exp.cnf:
+ (cd $(builddir)/../x509sat && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/x509if/Makefile.nmake b/epan/dissectors/asn1/x509if/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/x509if/ServiceAdministration.asn b/epan/dissectors/asn1/x509if/ServiceAdministration.asn
new file mode 100644
index 0000000000..fdd61fb2bd
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/ServiceAdministration.asn
@@ -0,0 +1,239 @@
+-- Module ServiceAdministration (X.501:08/2005)
+ServiceAdministration {joint-iso-itu-t ds(5) module(1)
+ serviceAdministration(33) 5} 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
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ directoryAbstractService, informationFramework
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 5}
+ ATTRIBUTE, AttributeType, CONTEXT, MATCHING-RULE, OBJECT-CLASS,
+ SupportedAttributes, SupportedContexts
+ FROM InformationFramework informationFramework
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ FamilyGrouping, FamilyReturn, HierarchySelections, SearchControlOptions,
+ ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- types
+SearchRule ::= SEQUENCE {
+ COMPONENTS OF SearchRuleId,
+ serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+ userClass [2] INTEGER OPTIONAL,
+ inputAttributeTypes
+ [3] SEQUENCE SIZE (0..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({SupportedContexts}),
+ 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 OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+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
+}
+
+-- ASN.1 information object classes
+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,
+ &allowedSubset AllowedSubset DEFAULT '111'B,
+ &imposedSubset ImposedSubset OPTIONAL,
+ &entryLimit EntryLimit 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 CHOICE {selectedValues SEQUENCE OF ATTRIBUTE.&Type,
+ matchedValuesOnly NULL
+ } 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
+}
+
+END -- ServiceAdministration
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/x509if/packet-x509if-template.c b/epan/dissectors/asn1/x509if/packet-x509if-template.c
new file mode 100644
index 0000000000..31c3d21a85
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/packet-x509if-template.c
@@ -0,0 +1,158 @@
+/* packet-x509if.c
+ * Routines for X.509 Information Framework packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/strutil.h>
+
+#include "packet-ber.h"
+#include "packet-dap.h"
+#include "packet-x509if.h"
+#include "packet-x509sat.h"
+#include "packet-frame.h"
+
+#define PNAME "X.509 Information Framework"
+#define PSNAME "X509IF"
+#define PFNAME "x509if"
+
+void proto_register_x509if(void);
+void proto_reg_handoff_x509if(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_x509if = -1;
+static int hf_x509if_object_identifier_id = -1;
+static int hf_x509if_any_string = -1;
+#include "packet-x509if-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-x509if-ett.c"
+
+static proto_tree *top_of_dn = NULL;
+static proto_tree *top_of_rdn = NULL;
+
+static gboolean rdn_one_value = FALSE; /* have we seen one value in an RDN yet */
+static gboolean dn_one_rdn = FALSE; /* have we seen one RDN in a DN yet */
+static gboolean doing_attr = FALSE;
+
+#define MAX_RDN_STR_LEN 64
+#define MAX_DN_STR_LEN (20 * MAX_RDN_STR_LEN)
+
+static char *last_dn = NULL;
+static char *last_rdn = NULL;
+
+static int ava_hf_index;
+#define MAX_FMT_VALS 32
+static value_string fmt_vals[MAX_FMT_VALS];
+#define MAX_AVA_STR_LEN 64
+static char *last_ava = NULL;
+
+static void
+x509if_frame_end(void)
+{
+ top_of_dn = NULL;
+ top_of_rdn = NULL;
+
+ rdn_one_value = FALSE;
+ dn_one_rdn = FALSE;
+ doing_attr = FALSE;
+
+ last_dn = NULL;
+ last_rdn = NULL;
+ last_ava = NULL;
+}
+
+#include "packet-x509if-fn.c"
+
+const char * x509if_get_last_dn(void)
+{
+ return last_dn;
+}
+
+gboolean x509if_register_fmt(int hf_index, const gchar *fmt)
+{
+ static int idx = 0;
+
+ if(idx < (MAX_FMT_VALS - 1)) {
+
+ fmt_vals[idx].value = hf_index;
+ fmt_vals[idx].strptr = fmt;
+
+ idx++;
+
+ fmt_vals[idx].value = 0;
+ fmt_vals[idx].strptr = NULL;
+
+ return TRUE;
+
+ } else
+ return FALSE; /* couldn't register it */
+
+}
+
+const char * x509if_get_last_ava(void)
+{
+ return last_ava;
+}
+
+/*--- proto_register_x509if ----------------------------------------------*/
+void proto_register_x509if(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_x509if_object_identifier_id,
+ { "Id", "x509if.id", FT_OID, BASE_NONE, NULL, 0,
+ "Object identifier Id", HFILL }},
+ { &hf_x509if_any_string,
+ { "AnyString", "x509if.any.String", FT_BYTES, BASE_NONE,
+ NULL, 0, "This is any String", HFILL }},
+
+#include "packet-x509if-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-x509if-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_x509if = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_x509if, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* initialise array */
+ fmt_vals[0].value = 0;
+ fmt_vals[0].strptr = NULL;
+
+}
+
+
+/*--- proto_reg_handoff_x509if -------------------------------------------*/
+void proto_reg_handoff_x509if(void) {
+#include "packet-x509if-dis-tab.c"
+}
+
diff --git a/epan/dissectors/asn1/x509if/packet-x509if-template.h b/epan/dissectors/asn1/x509if/packet-x509if-template.h
new file mode 100644
index 0000000000..9d818b34e0
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/packet-x509if-template.h
@@ -0,0 +1,35 @@
+/* packet-x509if.h
+ * Routines for X.509 Information Framework packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_X509IF_H
+#define PACKET_X509IF_H
+
+#include "packet-x509if-exp.h"
+
+extern const char * x509if_get_last_dn(void);
+
+extern gboolean x509if_register_fmt(int hf_index, const gchar *fmt);
+extern const char * x509if_get_last_ava(void);
+
+#endif /* PACKET_X509IF_H */
+
diff --git a/epan/dissectors/asn1/x509if/x509if.cnf b/epan/dissectors/asn1/x509if/x509if.cnf
new file mode 100644
index 0000000000..db64da356b
--- /dev/null
+++ b/epan/dissectors/asn1/x509if/x509if.cnf
@@ -0,0 +1,420 @@
+# x509if.cnf
+# X509IF conformation file
+
+#.IMPORT ../x509sat/x509sat-exp.cnf
+
+#.MODULE_IMPORT
+DirectoryAbstractService dap
+
+#.OMIT_ASSIGNMENT
+ObjectClassKind
+#.END
+#.CLASS ATTRIBUTE
+&derivation ClassReference ATTRIBUTE
+&Type
+&equality-match ClassReference MATCHING-RULE
+&ordering-match ClassReference MATCHING-RULE
+&substrings-match ClassReference MATCHING-RULE
+&single-valued BooleanType
+&collective BooleanType
+&no-user-modification BooleanType
+&usage TypeReference AttributeUsage
+&id ObjectIdentifierType
+#.END
+#.CLASS CONTEXT
+&Type
+&Assertion
+&id ObjectIdentifierType
+#.END
+#.CLASS OBJECT-CLASS
+&Superclasses ClassReference OBJECT-CLASS
+&kind TypeReference ObjectClassKind
+&MandatoryAttributes ClassReference ATTRIBUTE
+&OptionalAttributes ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MATCHING-RESTRICTION
+&Restriction
+&Rules _FixedTypeValueSetFieldSpec
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.EXPORTS
+OBJECT-CLASS
+ATTRIBUTE
+MATCHING-RULE
+MAPPING-BASED-MATCHING
+NAME-FORM
+STRUCTURE-RULE
+CONTENT-RULE
+CONTEXT
+SEARCH-RULE
+MATCHING-RESTRICTION
+AllowedSubset
+Attribute
+AttributeCombination
+AttributeType
+AttributeTypeAndDistinguishedValue
+AttributeTypeAssertion
+AttributeUsage
+AttributeValue
+AttributeValueAssertion
+#BaseDistance
+ChopSpecification
+Context
+ContextAssertion
+ContextCombination
+ContextProfile
+ControlOptions
+DistinguishedName
+DITContentRule
+DITContextUse
+DITStructureRule
+EntryLimit
+ImposedSubset
+LocalName
+Mapping
+MatchingUse
+MRMapping
+MRSubstitution
+Name
+Refinement
+RelativeDistinguishedName
+RelaxationPolicy
+RDNSequence
+RequestAttribute
+ResultAttribute
+RuleIdentifier
+SearchRule
+SearchRuleDescription
+SearchRuleId
+SubtreeSpecification
+
+#.PDU
+DistinguishedName
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+AttributeTypeAndDistinguishedValue/valuesWithContext T_valWithContext
+AttributeTypeAndDistinguishedValue/valuesWithContext/_item T_valWithContext_item
+ChopSpecification/specificExclusions T_chopSpecificExclusions
+ChopSpecification/specificExclusions/_item T_chopSpecificExclusions_item
+
+#.FIELD_RENAME
+AttributeTypeAssertion/assertedContexts ata_assertedContexts
+AttributeTypeAndDistinguishedValue/value atadv_value
+AttributeTypeAndDistinguishedValue/valuesWithContext valueswithContext
+AttributeTypeAndDistinguishedValue/valuesWithContext/_item valueswithContext_item
+ChopSpecification/specificExclusions chopSpecificExclusions
+ChopSpecification/specificExclusions/_item chopSpecificExclusions_item
+Refinement/and refinement_and
+Refinement/and/_item refinement_and_item
+Refinement/not refinement_not
+Refinement/or refinement_or
+Refinement/or/_item refinement_or_item
+ContextAssertion/contextType ca_contextType
+ContextAssertion/contextValues ca_contextValues
+ContextAssertion/contextValues/_item ca_contextValues_item
+ContextCombination/not contextcombination_not
+ContextCombination/and contextcombination_and
+ContextCombination/and/_item contextcombination_and_item
+ContextCombination/or contextcombination_or
+ContextCombination/or/_item contextcombination_or_item
+RelaxationPolicy/maximum maximum_relaxation
+RelaxationPolicy/minimum minimum_relaxation
+RequestAttribute/defaultValues/_item/values ra_values
+RequestAttribute/defaultValues/_item/values/_item ra_values_item
+RequestAttribute/selectedValues ra_selectedValues
+RequestAttribute/selectedValues/_item ra_selectedValues_item
+
+#.REGISTER
+DistinguishedName B "2.5.4.1" "id-at-aliasedEntryName"
+DistinguishedName B "2.5.4.31" "id-at-member"
+DistinguishedName B "2.5.4.32" "id-at-owner"
+DistinguishedName B "2.5.4.33" "id-at-roleOccupant"
+DistinguishedName B "2.5.4.34" "id-at-seeAlso"
+DistinguishedName B "2.5.4.49" "id-at-distinguishedName"
+
+DistinguishedName B "2.5.18.3" "id-oa-creatorsName"
+DistinguishedName B "2.5.18.4" "id-oa-modifiersName"
+SubtreeSpecification B "2.5.18.6" "id-oa-subtreeSpecification"
+DistinguishedName B "2.5.18.10" "id-oa-subschemaSubentry"
+DistinguishedName B "2.5.18.11" "id-oa-accessControlSubentry"
+DistinguishedName B "2.5.18.12" "id-oa-collectiveAttributeSubentry"
+DistinguishedName B "2.5.18.13" "id-oa-contextDefaultSubentry"
+HierarchyLevel B "2.5.18.17" "id-oa-hierarchyLevel"
+HierarchyBelow B "2.5.18.18" "iid-oa-hierarchyBelow"
+# X402 - see master list in acp133.cnf
+DistinguishedName B "2.6.5.2.5" "id-at-mhs-message-store-dn"
+DistinguishedName B "2.6.5.2.14" "id-at-mhs-dl-related-lists"
+
+# ACP133 - see master list in acp133.cnf
+DistinguishedName B "2.16.840.1.101.2.2.1.3" "id-at-alternateRecipient"
+DistinguishedName B "2.16.840.1.101.2.2.1.4" "id-at-associatedOrganization"
+DistinguishedName B "2.16.840.1.101.2.2.1.6" "id-at-associatedPLA"
+DistinguishedName B "2.16.840.1.101.2.2.1.49" "id-at-aliasPointer"
+DistinguishedName B "2.16.840.1.101.2.2.1.61" "id-at-listPointer"
+DistinguishedName B "2.16.840.1.101.2.2.1.110" "id-at-administrator"
+DistinguishedName B "2.16.840.1.101.2.2.1.111" "id-at-aigsExpanded"
+DistinguishedName B "2.16.840.1.101.2.2.1.113" "id-at-associatedAL"
+DistinguishedName B "2.16.840.1.101.2.2.1.114" "id-at-copyMember"
+DistinguishedName B "2.16.840.1.101.2.2.1.117" "id-at-guard"
+DistinguishedName B "2.16.840.1.101.2.2.1.121" "id-at-networkDN"
+DistinguishedName B "2.16.840.1.101.2.2.1.138" "id-at-plasServed"
+DistinguishedName B "2.16.840.1.101.2.2.1.139" "id-at-deployed"
+DistinguishedName B "2.16.840.1.101.2.2.1.140" "id-at-garrison"
+DistinguishedName B "2.16.840.1.101.2.2.1.184" "id-at-aCPDutyOfficer"
+DistinguishedName B "2.16.840.1.101.2.2.1.188" "id-at-primaryMember"
+
+
+
+#.FN_PARS ContextAssertion/contextType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY ContextAssertion/contextValues/_item
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS AttributeTypeAndDistinguishedValue/type
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY AttributeTypeAndDistinguishedValue/type
+ const char *fmt;
+ const char *name;
+
+ %(DEFAULT_BODY)s
+
+ if(actx->external.direct_reference) {
+ /* see if we can find a nice name */
+ name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference);
+ if(!name) name = actx->external.direct_reference;
+
+ if(last_rdn) { /* append it to the RDN */
+ g_strlcat(last_rdn, name, MAX_RDN_STR_LEN);
+ g_strlcat(last_rdn, "=", MAX_RDN_STR_LEN);
+
+ /* append it to the tree */
+ proto_item_append_text(tree, " (%%s=", name);
+ } else if(doing_attr) {
+ /* append it to the parent item */
+ proto_item_append_text(tree, " (%%s)", name);
+ }
+
+ if((fmt = val_to_str_const(hf_index, fmt_vals, "")) && *fmt) {
+ /* we have a format */
+ last_ava = (char *)wmem_alloc(wmem_packet_scope(), MAX_AVA_STR_LEN); *last_ava = '\0';
+ register_frame_end_routine (actx->pinfo, x509if_frame_end);
+
+ g_snprintf(last_ava, MAX_AVA_STR_LEN, "%%s %%s", name, fmt);
+
+ proto_item_append_text(tree, " %%s", last_ava);
+
+ }
+ }
+
+#.FN_BODY AttributeTypeAndDistinguishedValue/value
+ int old_offset = offset;
+ tvbuff_t *out_tvb;
+ char *value = NULL;
+ const char *fmt;
+ const char *name = NULL;
+ const char *orig_oid = actx->external.direct_reference;
+
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+ /* in dissecting the value we may have overridden the OID of the value - which is
+ a problem if there are multiple values */
+ actx->external.direct_reference = orig_oid;
+
+ /* try and dissect as a string */
+ dissect_ber_octet_string(FALSE, actx, NULL, tvb, old_offset, hf_x509if_any_string, &out_tvb);
+
+ /* should also try and dissect as an OID and integer */
+ /* of course, if I can look up the syntax .... */
+
+ if(out_tvb) {
+ /* it was a string - format it */
+ value = tvb_format_text(out_tvb, 0, tvb_reported_length(out_tvb));
+
+ if(last_rdn) {
+ g_strlcat(last_rdn, value, MAX_RDN_STR_LEN);
+
+ /* append it to the tree*/
+ proto_item_append_text(tree, "%%s)", value);
+ }
+
+ if((fmt = val_to_str_const(ava_hf_index, fmt_vals, "")) && *fmt) {
+ /* we have a format */
+
+ if (!last_ava) {
+ last_ava = (char *)wmem_alloc(wmem_packet_scope(), MAX_AVA_STR_LEN);
+ }
+
+ if(!(name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference)))
+ name = actx->external.direct_reference;
+ g_snprintf(last_ava, MAX_AVA_STR_LEN, "%%s %%s %%s", name, fmt, value);
+
+ proto_item_append_text(tree, " %%s", last_ava);
+
+ }
+ }
+
+#.FN_PARS RequestAttribute/attributeType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY RequestAttribute/selectedValues/_item
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS RequestAttribute/defaultValues/_item/entryType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY RequestAttribute/defaultValues/_item/values/_item
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY Attribute/valuesWithContext/_item/value
+ offset=call_ber_oid_callback("unknown", tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS ResultAttribute/attributeType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY ResultAttribute/outputValues/selectedValues/_item
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS Context/contextType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Context/contextValues/_item
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS AttributeType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY AttributeValue
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS AttributeValueAssertion/type
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY AttributeValueAssertion/assertion
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS Attribute/type
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Attribute/values/_item
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS ContextProfile/contextType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY ContextProfile/contextValue/_item
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS MatchingUse/restrictionType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY MatchingUse/restrictionValue
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY AttributeTypeAndDistinguishedValue/valuesWithContext/_item/distingAttrValue
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY RelativeDistinguishedName
+ char *temp_dn;
+
+ rdn_one_value = FALSE;
+ top_of_rdn = tree;
+ last_rdn = (char *)wmem_alloc(wmem_packet_scope(), MAX_DN_STR_LEN); *last_rdn = '\0';
+ register_frame_end_routine (actx->pinfo, x509if_frame_end);
+
+ %(DEFAULT_BODY)s
+
+ /* we've finished - close the bracket */
+ proto_item_append_text(top_of_rdn, " (%%s)", last_rdn);
+
+ /* now append this to the DN */
+ if (last_dn) {
+ if(*last_dn) {
+ temp_dn = (char *)wmem_strdup_printf(wmem_packet_scope(), "%%s,%%s", last_rdn, last_dn);
+ last_dn[0] = '\0';
+ g_strlcat(last_dn, temp_dn, MAX_DN_STR_LEN);
+ } else {
+ g_strlcat(last_dn, last_rdn, MAX_DN_STR_LEN);
+ }
+ }
+
+ last_rdn = NULL; /* it will get freed when the next packet is dissected */
+
+#.FN_BODY RelativeDistinguishedName/_item
+
+ if(!rdn_one_value) {
+ top_of_rdn = tree;
+ } else {
+
+ if(last_rdn)
+ /* this is an additional value - delimit */
+ g_strlcat(last_rdn, "+", MAX_RDN_STR_LEN);
+ }
+
+ %(DEFAULT_BODY)s
+
+ rdn_one_value = TRUE;
+
+#.FN_BODY RDNSequence
+ const char *fmt;
+
+ dn_one_rdn = FALSE; /* reset */
+ last_dn = (char *)wmem_alloc(wmem_packet_scope(), MAX_DN_STR_LEN); *last_dn = '\0';
+ top_of_dn = NULL;
+ register_frame_end_routine (actx->pinfo, x509if_frame_end);
+
+
+ %(DEFAULT_BODY)s
+
+ /* we've finished - append the dn */
+ proto_item_append_text(top_of_dn, " (%%s)", last_dn);
+
+ /* see if we should append this to the col info */
+ if((fmt = val_to_str_const(hf_index, fmt_vals, "")) && *fmt) {
+ /* we have a format */
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s%%s", fmt, last_dn);
+ }
+
+
+#.FN_BODY RDNSequence/_item
+
+ if(!dn_one_rdn) {
+ /* this is the first element - record the top */
+ top_of_dn = tree;
+ }
+
+ %(DEFAULT_BODY)s
+
+ dn_one_rdn = TRUE;
+
+#.FN_BODY AttributeValueAssertion
+
+ ava_hf_index = hf_index;
+ last_ava = (char *)wmem_alloc(wmem_packet_scope(), MAX_AVA_STR_LEN); *last_ava = '\0';
+ register_frame_end_routine (actx->pinfo, x509if_frame_end);
+
+ %(DEFAULT_BODY)s
+
+ ava_hf_index=-1;
+
+#.FN_BODY Attribute
+ doing_attr = TRUE;
+ register_frame_end_routine (actx->pinfo, x509if_frame_end);
+
+ %(DEFAULT_BODY)s
+#.END
+
+
diff --git a/epan/dissectors/asn1/x509sat/CMakeLists.txt b/epan/dissectors/asn1/x509sat/CMakeLists.txt
new file mode 100644
index 0000000000..7ebea900b7
--- /dev/null
+++ b/epan/dissectors/asn1/x509sat/CMakeLists.txt
@@ -0,0 +1,57 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME x509sat )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ SelectedAttributeTypes.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -r Syntax )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../x509if/x509if-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+)
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/x509sat/Makefile.am b/epan/dissectors/asn1/x509sat/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/x509sat/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/x509sat/Makefile.common b/epan/dissectors/asn1/x509sat/Makefile.common
new file mode 100644
index 0000000000..68a41ff86f
--- /dev/null
+++ b/epan/dissectors/asn1/x509sat/Makefile.common
@@ -0,0 +1,54 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=x509sat
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ SelectedAttributeTypes.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS= -b -r Syntax
+
+EXTRA_CNF= \
+ $(builddir)/../x509if/x509if-exp.cnf \
+ $(builddir)/../p1/p1-exp.cnf
+
+$(builddir)/../x509if/x509if-exp.cnf:
+ (cd $(builddir)/../x509if && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../p1/p1-exp.cnf:
+ (cd $(builddir)/../p1 && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/x509sat/Makefile.nmake b/epan/dissectors/asn1/x509sat/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/x509sat/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/x509sat/SelectedAttributeTypes.asn b/epan/dissectors/asn1/x509sat/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..190226f54a
--- /dev/null
+++ b/epan/dissectors/asn1/x509sat/SelectedAttributeTypes.asn
@@ -0,0 +1,1491 @@
+-- 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-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
+--This one is much better declared as this, it is prettier at least
+--the octet string dissector can handle all of them
+--DirectoryString ::= PrintableString
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString,
+ printableString PrintableString,
+ universalString UniversalString,
+ bmpString BMPString,
+ uTF8String UTF8String
+}
+
+
+-- 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
+-- 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 IDENTIFIER 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 IDENTIFIER,
+ criteria [1] Criteria,
+ subset [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} OPTIONAL
+}
+
+ 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 OF DirectoryString
+
+ 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
+
+-- 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,
+ countryCode PrintableString,
+ answerback PrintableString
+}
+
+ 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
+
+-- 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
+
+-- 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
+
+ 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 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 OBJECT IDENTIFIER 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,
+ any [1] DirectoryString,
+ final [2] DirectoryString,
+ 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
+
+ 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
+-- 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 OPTIONAL,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET 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 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 OPTIONAL,
+ endDayTime [1] DayTime OPTIONAL
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER,
+ minute [1] INTEGER OPTIONAL,
+ second [2] INTEGER OPTIONAL
+}
+
+TimeZone ::= INTEGER
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN OPTIONAL}
+}
+
+ localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+ }
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- (id-at copied in from UsefulDefinitions)
+id-at OBJECT IDENTIFIER ::= {joint-iso-itu-t ds(5) 4}
+ 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}
+
+
+-- We add these in to give the low-level ASN.1 syntaxes
+-- PrintableString and ObjectIdentifier are the most useful
+-- Note the "Syntax" will be removed during the "make" - it is
+-- present to stop asn2wrs complaining about reserved words
+-- Needed to be able to "call" them from OID callbacks.(see .cnf)
+
+ObjectIdentifier ::= OBJECT IDENTIFIER
+OctetString ::= OCTET STRING
+BitString ::= BIT STRING
+Integer ::= INTEGER
+Boolean ::= BOOLEAN
+
+-- these are reserved words, so we need to prefix them
+-- Currently not used ones commented out.
+SyntaxGeneralizedTime ::= GeneralizedTime
+SyntaxUTCTime ::= UTCTime
+SyntaxNumericString ::= NumericString
+SyntaxPrintableString ::= PrintableString
+SyntaxIA5String ::= IA5String
+SyntaxBMPString ::= BMPString
+SyntaxUniversalString ::= UniversalString
+SyntaxUTF8String ::= UTF8String
+SyntaxTeletexString ::= TeletexString
+SyntaxT61String ::= T61String
+SyntaxVideotexString ::= VideotexString
+SyntaxGraphicString ::= GraphicString
+SyntaxISO646String ::= ISO646String
+SyntaxVisibleString ::= VisibleString
+SyntaxGeneralString ::= GeneralString
+
+GUID ::= OCTET STRING
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/x509sat/packet-x509sat-template.c b/epan/dissectors/asn1/x509sat/packet-x509sat-template.c
new file mode 100644
index 0000000000..a48d66e3ca
--- /dev/null
+++ b/epan/dissectors/asn1/x509sat/packet-x509sat-template.c
@@ -0,0 +1,120 @@
+/* packet-x509sat.c
+ * Routines for X.509 Selected Attribute Types packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-p1.h"
+#include "packet-x509sat.h"
+#include "packet-x509if.h"
+
+#define PNAME "X.509 Selected Attribute Types"
+#define PSNAME "X509SAT"
+#define PFNAME "x509sat"
+
+void proto_register_x509sat(void);
+void proto_reg_handoff_x509sat(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_x509sat = -1;
+#include "packet-x509sat-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-x509sat-ett.c"
+
+#include "packet-x509sat-fn.c"
+
+
+/*--- proto_register_x509sat ----------------------------------------------*/
+void proto_register_x509sat(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-x509sat-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-x509sat-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_x509sat = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_x509sat, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+#include "packet-x509sat-syn-reg.c"
+
+}
+
+
+/*--- proto_reg_handoff_x509sat -------------------------------------------*/
+void proto_reg_handoff_x509sat(void) {
+#include "packet-x509sat-dis-tab.c"
+
+ /* OBJECT CLASSES */
+
+ oid_add_from_string("top","2.5.6.0");
+ oid_add_from_string("alias","2.5.6.1");
+ oid_add_from_string("country","2.5.6.2");
+ oid_add_from_string("locality","2.5.6.3");
+ oid_add_from_string("organization","2.5.6.4");
+ oid_add_from_string("organizationalUnit","2.5.6.5");
+ oid_add_from_string("person","2.5.6.6");
+ oid_add_from_string("organizationalPerson","2.5.6.7");
+ oid_add_from_string("organizationalRole","2.5.6.8");
+ oid_add_from_string("groupOfNames","2.5.6.9");
+ oid_add_from_string("residentialPerson","2.5.6.10");
+ oid_add_from_string("applicationProcess","2.5.6.11");
+ oid_add_from_string("applicationEntity","2.5.6.12");
+ oid_add_from_string("dSA","2.5.6.13");
+ oid_add_from_string("device","2.5.6.14");
+ oid_add_from_string("strongAuthenticationUser","2.5.6.15");
+ oid_add_from_string("certificationAuthority","2.5.6.16");
+ oid_add_from_string("certificationAuthorityV2","2.5.6.16.2");
+ oid_add_from_string("groupOfUniqueNames","2.5.6.17");
+ oid_add_from_string("userSecurityInformation","2.5.6.18");
+ oid_add_from_string("cRLDistributionPoint","2.5.6.19");
+ oid_add_from_string("dmd","2.5.6.20");
+ oid_add_from_string("pkiUser","2.5.6.21");
+ oid_add_from_string("pkiCA","2.5.6.22");
+
+ oid_add_from_string("parent","2.5.6.28");
+ oid_add_from_string("child","2.5.6.29");
+
+ /* RFC 2247 */
+ oid_add_from_string("dcObject","1.3.6.1.4.1.1446.344");
+ oid_add_from_string("domain","0.9.2342.19200300.100.4.13");
+
+ /* RFC 2798 */
+ oid_add_from_string("inetOrgPerson","2.16.840.1.113730.3.2.2");
+}
+
+
+
diff --git a/epan/dissectors/asn1/x509sat/packet-x509sat-template.h b/epan/dissectors/asn1/x509sat/packet-x509sat-template.h
new file mode 100644
index 0000000000..64bf97b881
--- /dev/null
+++ b/epan/dissectors/asn1/x509sat/packet-x509sat-template.h
@@ -0,0 +1,30 @@
+/* packet-x509sat.h
+ * Routines for X.509 Selected Attribute Types packet dissection
+ * Ronnie Sahlberg 2004
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_X509SAT_H
+#define PACKET_X509SAT_H
+
+#include "packet-x509sat-exp.h"
+
+#endif /* PACKET_X509SAT_H */
+
diff --git a/epan/dissectors/asn1/x509sat/x509sat.cnf b/epan/dissectors/asn1/x509sat/x509sat.cnf
new file mode 100644
index 0000000000..b142ed2e9f
--- /dev/null
+++ b/epan/dissectors/asn1/x509sat/x509sat.cnf
@@ -0,0 +1,398 @@
+# x509sat.cnf
+# X509SAT conformation file
+
+#.TYPE_ATTR
+GUID TYPE = FT_GUID DISPLAY = BASE_NONE STRING = NULL BITMASK = 0
+
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
+
+#.CLASS CONTEXT
+&Type
+&Assertion
+&id ObjectIdentifierType
+#.END
+#.CLASS ATTRIBUTE
+&derivation ClassReference ATTRIBUTE
+&Type
+&equality-match ClassReference MATCHING-RULE
+&ordering-match ClassReference MATCHING-RULE
+&substrings-match ClassReference MATCHING-RULE
+&single-valued BooleanType
+&collective BooleanType
+&no-user-modification BooleanType
+&usage TypeReference AttributeUsage
+&id ObjectIdentifierType
+#.END
+#.CLASS MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+#.MODULE_EXPORTS
+CaseIgnoreListMatch
+CountryName
+Criteria
+#DayTime
+DayTimeBand
+DestinationIndicator
+DirectoryString
+EnhancedGuide
+FacsimileTelephoneNumber
+InternationalISDNNumber
+LanguageContextSyntax
+LocaleContextSyntax
+MultipleMatchingLocalities
+NameAndOptionalUID
+NamedDay
+OctetSubstringAssertion
+Period
+PostalAddress
+PreferredDeliveryMethod
+PresentationAddress
+ProtocolInformation
+SubstringAssertion
+TimeAssertion
+TimeSpecification
+TimeZone
+UniqueIdentifier
+X121Address
+XDayOf
+ZonalResult
+ZonalSelect
+
+#.SYNTAX
+BitString
+Boolean
+CaseIgnoreListMatch
+CountryName
+DestinationIndicator
+DirectoryString
+EnhancedGuide
+FacsimileTelephoneNumber
+GUID
+Guide
+InternationalISDNNumber
+Integer
+NameAndOptionalUID
+ObjectIdentifier
+OctetString
+PostalAddress
+PreferredDeliveryMethod
+PresentationAddress
+SyntaxBMPString "BMPString"
+SyntaxGeneralizedTime "GeneralizedTime"
+SyntaxGeneralString "GeneralString"
+SyntaxGraphicString "GraphicString"
+SyntaxIA5String "IA5String"
+SyntaxISO646String "ISO646String"
+SyntaxNumericString "NumericString"
+SyntaxPrintableString "PrintableString"
+SyntaxT61String "T61String"
+SyntaxTeletexString "TeletexString"
+SyntaxUniversalString "UniversalString"
+SyntaxUTF8String "UTF8String"
+SyntaxUTCTime "UTCTime"
+SyntaxVideotexString "VideotexString"
+SyntaxVisibleString "VisibleString"
+TelephoneNumber
+TelexNumber
+UniqueIdentifier
+X121Address
+
+#.REGISTER
+ObjectIdentifier B "2.5.4.0" "id-at-objectClass"
+# - see x509if.cnf for "id-at-aliasedEntryName"
+DirectoryString B "2.5.4.2" "id-at-knowledgeInformation"
+DirectoryString B "2.5.4.3" "id-at-commonName"
+DirectoryString B "2.5.4.4" "id-at-surname"
+SyntaxPrintableString B "2.5.4.5" "id-at-serialNumber"
+CountryName B "2.5.4.6" "id-at-countryName"
+DirectoryString B "2.5.4.7" "id-at-localityName"
+DirectoryString B "2.5.4.7.1" "id-at-collectiveLocalityName"
+DirectoryString B "2.5.4.8" "id-at-stateOrProvinceName"
+DirectoryString B "2.5.4.8.1" "id-at-collectiveStateOrProvinceName"
+DirectoryString B "2.5.4.9" "id-at-streetAddress"
+DirectoryString B "2.5.4.9.1" "id-at-collectiveStreetAddress"
+DirectoryString B "2.5.4.10.1" "id-at-collectiveOrganizationName"
+DirectoryString B "2.5.4.10" "id-at-organizationName"
+DirectoryString B "2.5.4.11" "id-at-organizationalUnitName"
+DirectoryString B "2.5.4.11.1" "id-at-collectiveOrganizationalUnitName"
+DirectoryString B "2.5.4.12" "id-at-title"
+DirectoryString B "2.5.4.13" "id-at-description"
+Guide B "2.5.4.14" "id-at-searchGuide"
+DirectoryString B "2.5.4.15" "id-at-businessCategory"
+PostalAddress B "2.5.4.16" "id-at-postalAddress"
+DirectoryString B "2.5.4.17" "id-at-postalCode"
+DirectoryString B "2.5.4.17.1" "id-at-collectivePostalCode"
+DirectoryString B "2.5.4.18" "id-at-postOfficeBox"
+DirectoryString B "2.5.4.18.1" "id-at-collectivePostOfficeBox"
+DirectoryString B "2.5.4.19" "id-at-physicalDeliveryOfficeName"
+DirectoryString B "2.5.4.19.1" "id-at-collectivePhysicalDeliveryOfficeName"
+TelephoneNumber B "2.5.4.20" "id-at-telephoneNumber"
+TelephoneNumber B "2.5.4.20.1" "id-at-collectiveTelephoneNumber"
+TelexNumber B "2.5.4.21" "id-at-telexNumber"
+TelexNumber B "2.5.4.21.1" "id-at-collectiveTelexNumber"
+# "id-at-teletexTerminalIdentifier" - what syntax?
+FacsimileTelephoneNumber B "2.5.4.23" "id-at-facsimileTelephoneNumber"
+FacsimileTelephoneNumber B "2.5.4.23.1" "id-at-collectiveFacsimileTelephoneNumber"
+X121Address B "2.5.4.24" "id-at-x121Address"
+InternationalISDNNumber B "2.5.4.25" "id-at-internationalISDNNumber"
+InternationalISDNNumber B "2.5.4.25.1" "id-at-collectiveInternationalISDNNumber"
+PostalAddress B "2.5.4.26" "id-at-registeredAddress"
+DestinationIndicator B "2.5.4.27" "id-at-destinationIndicator"
+PreferredDeliveryMethod B "2.5.4.28" "id-at-preferredDeliveryMethod"
+PresentationAddress B "2.5.4.29" "id-at-presentationAddress"
+ObjectIdentifier B "2.5.4.30" "id-at-supportedApplicationContext"
+# "id-at-member" - see x509if.cnf
+# "id-at-owner" - see x509if.cnf
+# "id-at-roleOccupant" - see x509if.cnf
+# "id-at-seeAlso" - see x509if.cnf
+OctetString B "2.5.4.35" "id-at-userPassword"
+# "id-at-userCertificate" - see x509af.cnf
+# "id-at-cACertificate" - see x509af.cnf
+# "id-at-authorityRevocationList" - see x509af.cnf
+# "id-at-certificateRevocationList" - see x509af.cnf
+# "id-at-crossCertificatePair" - see x509af.cnf
+DirectoryString B "2.5.4.41" "id-at-name"
+DirectoryString B "2.5.4.42" "id-at-givenName"
+DirectoryString B "2.5.4.43" "id-at-initials"
+DirectoryString B "2.5.4.44" "id-at-generationQualifier"
+UniqueIdentifier B "2.5.4.45" "id-at-uniqueIdedntifier"
+SyntaxPrintableString B "2.5.4.46" "id-at-dnQualifier"
+EnhancedGuide B "2.5.4.47" "id-at-enhancedSearchGuide"
+ProtocolInformation B "2.5.4.48" "id-at-protocolInformation"
+# 49 "id-at-distinguishedName" - see x509if.cnf
+NameAndOptionalUID B "2.5.4.50" "id-at-uniqueMember"
+DirectoryString B "2.5.4.51" "id-at-houseIdentifier"
+ObjectIdentifier B "2.5.4.52" "id-at-supportedAlgorithms"
+# 53 "id-at-deltaRevocationList" - see x509af.cnf
+DirectoryString B "2.5.4.54" "id-at-dmdName"
+#Clearance B "2.5.4.55" "id-at-clearance"
+ObjectIdentifier B "2.5.4.56" "id-at-defaultDirQop"
+# 57 "id-at-attributeIntegrityInfo" - what syntax?
+# 58 "id-at-attributeCertificate" - see x509af.cnf
+# 59 "id-at-attributeCertificateRevocationLIst" - see x509af.cnf
+# 60 "id-at-confKeyInfo" - what syntax?
+# 61 ? aACertificate(61)
+# 62 ? attributeDescriptorCertificate(62)
+# 63 ? attributeAuthorityRevocationList(63)
+# 64 "id-at-familyInformation" - what syntax?
+DirectoryString B "2.5.4.65" "id-at-pseudonym"
+ObjectIdentifier B "2.5.4.66" "id-at-communuicationsService"
+ObjectIdentifier B "2.5.4.67" "id-at-communuicationsNetwork"
+
+SyntaxNumericString B "2.5.13.8" "id-mr-numericStringMatch"
+CaseIgnoreListMatch B "2.5.13.11" "id-mr-caseIgnoreListMatch"
+BitString B "2.5.13.16" "id-mr-bitStringMatch"
+SyntaxUTCTime B "2.5.13.26" "id-mr-uTCTimeOrderingMatch"
+
+SyntaxGeneralizedTime B "2.5.18.1" "id-oa-createTimeStamp"
+SyntaxGeneralizedTime B "2.5.18.2" "id-oa-modifyTimeStamp"
+ObjectIdentifier B "2.5.18.5" "id-oa-administrativeRole"
+ObjectIdentifier B "2.5.18.7" "id-oa-collectiveExclusions"
+SyntaxGeneralizedTime B "2.5.18.8" "id-oa-subschemaTimeStamp"
+Boolean B "2.5.18.9" "id-oa-hasSubordinates"
+#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}
+
+ObjectIdentifier B "2.5.24.1" "id-aca-accessControlScheme"
+
+# X402 - see master list in acp133.cnf
+ObjectIdentifier B "2.6.5.2.8" "id-at-mhs-supported-automatic-actions"
+ObjectIdentifier B "2.6.5.2.10" "id-at-mhs-supported-attributes"
+ObjectIdentifier B "2.6.5.2.11" "id-at-mhs-supported-matching-rules"
+
+# ACP133 - see master list in acp133.cnf
+
+DirectoryString B "2.16.840.1.101.2.2.1.45" "id-at-releaseAuthorityName"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.51" "id-at-cognizantAuthority"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.53" "id-at-accountingCode"
+Boolean B "2.16.840.1.101.2.2.1.54" "id-at-dualRoute"
+SyntaxGeneralizedTime B "2.16.840.1.101.2.2.1.55" "id-at-effectiveDate"
+SyntaxGeneralizedTime B "2.16.840.1.101.2.2.1.57" "id-at-expirationDate"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.58" "id-at-hostOrgACP127"
+SyntaxGeneralizedTime B "2.16.840.1.101.2.2.1.60" "id-at-lastRecapDate"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.62" "id-at-lmf"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.63" "id-at-longTitle"
+Boolean B "2.16.840.1.101.2.2.1.64" "id-at-minimize"
+Boolean B "2.16.840.1.101.2.2.1.65" "id-at-minimizeOverride"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.68" "id-at-nationality"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.68.1" "id-at-collectiveNationality"
+Boolean B "2.16.840.1.101.2.2.1.69" "id-at-transferStation"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.70" "id-at-plaNameACP127"
+Boolean B "2.16.840.1.101.2.2.1.72" "id-at-plaReplace"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.73" "id-at-primarySpellingACP127"
+Boolean B "2.16.840.1.101.2.2.1.74" "id-at-publish"
+SyntaxGeneralizedTime B "2.16.840.1.101.2.2.1.75" "id-at-recapDueDate"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.77" "id-at-rI"
+Boolean B "2.16.840.1.101.2.2.1.81" "id-at-section"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.82" "id-at-serviceOrAgency"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.83" "id-at-sHD"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.84" "id-at-shortTitle"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.85" "id-at-sigad"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.86" "id-at-spot"
+Boolean B "2.16.840.1.101.2.2.1.87" "id-at-tARE"
+TelephoneNumber B "2.16.840.1.101.2.2.1.94" "id-at-aCPMobileTelephoneNumber"
+TelephoneNumber B "2.16.840.1.101.2.2.1.95" "id-at-aCPPagerTelephoneNumber"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.96" "id-at-tCC"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.97" "id-at-tRC"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.106" "id-at-accessCodes"
+SyntaxGraphicString B "2.16.840.1.101.2.2.1.107" "id-at-accessSchema"
+TelephoneNumber B "2.16.840.1.101.2.2.1.109" "id-at-aCPTelephoneFaxNumber"
+ObjectIdentifier B "2.16.840.1.101.2.2.1.115" "id-at-gatewayType"
+ObjectIdentifier B "2.16.840.1.101.2.2.1.116" "id-at-ghpType"
+DirectoryString B "2.16.840.1.101.2.2.1.118" "id-at-mailDomains"
+TelephoneNumber B "2.16.840.1.101.2.2.1.119" "id-at-militaryFacsimileNumber"
+TelephoneNumber B "2.16.840.1.101.2.2.1.119.1" "id-at-collectiveMilitaryFacsimileNumber"
+TelephoneNumber B "2.16.840.1.101.2.2.1.120" "id-at-militaryTelephoneNumber"
+TelephoneNumber B "2.16.840.1.101.2.2.1.120.1" "id-at-collectiveMilitaryTelephoneNumber"
+SyntaxGraphicString B "2.16.840.1.101.2.2.1.122" "id-at-networkSchema"
+DirectoryString B "2.16.840.1.101.2.2.1.124" "id-at-operationName"
+DirectoryString B "2.16.840.1.101.2.2.1.125" "id-at-positionNumber"
+DirectoryString B "2.16.840.1.101.2.2.1.126" "id-at-proprietaryMailboxes"
+TelephoneNumber B "2.16.840.1.101.2.2.1.127" "id-at-secureFacsimileNumber"
+TelephoneNumber B "2.16.840.1.101.2.2.1.127.1" "id-at-collectiveSecureFacsimileNumber"
+TelephoneNumber B "2.16.840.1.101.2.2.1.128" "id-at-secureTelephoneNumber"
+TelephoneNumber B "2.16.840.1.101.2.2.1.128.1" "id-at-collectiveSecureTelephoneNumber"
+DirectoryString B "2.16.840.1.101.2.2.1.129" "id-at-serviceNumber"
+DirectoryString B "2.16.840.1.101.2.2.1.133" "id-at-rank"
+DirectoryString B "2.16.840.1.101.2.2.1.143" "id-at-adminConversion"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.144" "id-at-tCCG"
+DirectoryString B "2.16.840.1.101.2.2.1.145" "id-at-usdConversion"
+DirectoryString B "2.16.840.1.101.2.2.1.158" "id-at-aCPRoleInformation"
+DirectoryString B "2.16.840.1.101.2.2.1.159" "id-at-coalitionGrade"
+TelephoneNumber B "2.16.840.1.101.2.2.1.160" "id-at-militaryIPPhoneNumber"
+ObjectIdentifier B "2.16.840.1.101.2.2.1.161" "id-at-fileTypeInfoCapability"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.172" "id-at-aCPFunctionalDescription"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.173" "id-at-alternatePLAName"
+SyntaxGeneralizedTime B "2.16.840.1.101.2.2.1.174" "id-at-aCPEntryCreationDate"
+SyntaxGeneralizedTime B "2.16.840.1.101.2.2.1.175" "id-at-aCPEntryModificationDate"
+ObjectIdentifier B "2.16.840.1.101.2.2.1.176" "id-at-aCPEntryType"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.177" "id-at-aCPEntryUniqueId"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.178" "id-at-aCPCitizenship"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.179" "id-at-aCPEID"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.180" "id-at-aCPCOI"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.181" "id-at-aCPPublishTo"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.182" "id-at-aCPSvcApps"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.183" "id-at-aCPDirectionsTo"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.185" "id-at-aCPLatitude"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.186" "id-at-aCPLocationMap"
+SyntaxPrintableString B "2.16.840.1.101.2.2.1.187" "id-at-aCPLongitude"
+
+# PKCS#9
+
+SyntaxIA5String B "1.2.840.113549.1.9.1" "pkcs-9-at-emailAddress"
+#PKCS9String B "1.2.840.113549.1.9.2" "pkcs-9-at-unstructuredName" - TBD
+#ContentType B "1.2.840.113549.1.9.3" "pkcs-9-at-contentType" - see cms.cnf
+#MessageDigest B "1.2.840.113549.1.9.4" "pkcs-9-at-messageDigest" - see cms.cnf
+#SigningTime B "1.2.840.113549.1.9.5" "pkcs-9-at-signingTime" - see cms.cnf
+#Countersignature B "1.2.840.113549.1.9.6" "pkcs-9-at-counterSignature" - see cms.cnf
+DirectoryString B "1.2.840.113549.1.9.7" "pkcs-9-at-challengePassword"
+DirectoryString B "1.2.840.113549.1.9.8" "pkcs-9-at-unstructuredAddress"
+#SETOFAttribute B "1.2.840.113549.1.9.9" "pkcs-9-at-extendedCertificateAttributes" - TBD
+DirectoryString B "1.2.840.113549.1.9.13" "pkcs-9-at-signingDescription"
+#ExtensionRequest B "1.2.840.113549.1.9.14" "pkcs-9-at-extensionRequest" - TBD
+#SMIMECapabiliaties B "1.2.840.113549.1.9.15" "pkcs-9-at-smimeCapabilities" - TBD
+SyntaxBMPString B "1.2.840.113549.1.9.20" "pkcs-9-at-friendlyName"
+OctetString B "1.2.840.113549.1.9.21" "pkcs-9-at-localKeyId"
+#PKCS15Token B "1.2.840.113549.1.9.25.1" "pkcs-9-at-pkcs15Token" - TBD
+#EncryptedPrivateKeyInfo B "1.2.840.113549.1.9.25.2" "pkcs-9-at-encryptedPrivateKeyInfo" - see pkcs12.cnf
+OctetString B "1.2.840.113549.1.9.25.3" "pkcs-9-at-randomNonce" # move to PKCS#9 when defined
+Integer B "1.2.840.113549.1.9.25.4" "pkcs-9-at-sequenceNumber" # move to PKCS#9 when defined
+#ContentInfo B "1.2.840.113549.1.9.25.5" "pkcs-9-at-pkcs7PDU" - TBD - not the same as CMS ContentInfo
+
+SyntaxGeneralizedTime B "1.3.6.1.5.5.7.9.1" "pkcs-9-at-dateOfBirth"
+DirectoryString B "1.3.6.1.5.5.7.9.2" "pkcs-9-at-placeOfBirth"
+SyntaxPrintableString B "1.3.6.1.5.5.7.9.3" "pkcs-9-at-gender"
+SyntaxPrintableString B "1.3.6.1.5.5.7.9.4" "pkcs-9-at-countryOfCitizenship"
+SyntaxPrintableString B "1.3.6.1.5.5.7.9.5" "pkcs-9-at-countryOfResidence"
+
+# RFC 2247
+SyntaxIA5String B "0.9.2342.19200300.100.1.25" "dc"
+
+# RFC 2798 - The LDAP inetOrgPerson Object Class
+DirectoryString B "2.16.840.1.113730.3.1.1" "carLicense"
+DirectoryString B "2.16.840.1.113730.3.1.2" "departmentNumber"
+DirectoryString B "2.16.840.1.113730.3.1.3" "employeeNumber"
+DirectoryString B "2.16.840.1.113730.3.1.4" "employeeType"
+#JPEG B "0.9.2342.19200300.100.1.60" "jpegPhoto" - see packet-jpeg.c
+DirectoryString B "2.16.840.1.113730.3.1.39" "preferredLanguage"
+#SignedData B "2.16.840.1.113730.3.1.40" "userSMIMECertificate" - see cms.cnf
+#PFX B "2.16.840.1.113730.3.1.216" "pkcs-9-at-PKCS12" - see pkcs12.cnf
+DirectoryString B "2.16.840.1.113730.3.1.241" "displayName"
+
+# Microsoft-specific
+# GeneralName other-name
+SyntaxBMPString B "1.3.6.1.4.1.311.20.2" "id-ms-certificate-template-name"
+SyntaxUTF8String B "1.3.6.1.4.1.311.20.2.3" "id-ms-user-principal-name"
+SyntaxBMPString B "1.3.6.1.4.1.311.17.1" "id-ms-local-machine-keyset"
+Integer B "1.3.6.1.4.1.311.21.1" "id-ms-ca-version"
+OctetString B "1.3.6.1.4.1.311.21.2" "id-ms-previous-cert-hash"
+Integer B "1.3.6.1.4.1.311.21.3" "id-ms-virtual-base"
+SyntaxUTCTime B "1.3.6.1.4.1.311.21.4" "id-ms-next-publish"
+
+# unknown X.420 PerRecipientExtensionField
+Integer B "1.2.826.0.1063.7.0.0.0" "unknown-UK-organisation-defined-extension"
+
+# NEXOR Originating UA
+SyntaxIA5String B "1.2.826.0.1004.10.1.1" "nexor-originating-ua"
+
+# X.420 Message Store Attributes - see p22.cnf
+Boolean B "2.6.1.6.3" "id-sat-ipm-auto-discarded"
+
+# RFC 4530
+GUID B "1.3.6.1.1.16.4" "entryUUID"
+
+# Guidelines for Extended Validation Certificates (http://www.cabforum.org/EV_Certificate_Guidelines_draft11.pdf)
+DirectoryString B "1.3.6.1.4.1.311.60.2.1.1" "jurisdictionOfIncorporationLocalityName"
+DirectoryString B "1.3.6.1.4.1.311.60.2.1.2" "jurisdictionOfIncorporationStateOrProvinceName"
+CountryName B "1.3.6.1.4.1.311.60.2.1.3" "jurisdictionOfIncorporationCountryName"
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+OctetSubstringAssertion/_item/any any_substring
+OctetSubstringAssertion/_item/final finall_substring
+OctetSubstringAssertion/_item/initial initial_substring
+XDayOf/first first_dayof
+XDayOf/second second_dayof
+XDayOf/third third_dayof
+XDayOf/fourth fourth_dayof
+XDayOf/fifth fifth_dayof
+
+#.END
+
+#.FN_BODY GUID
+ gint8 ber_class;
+ gboolean pc;
+ gint32 tag;
+ guint32 len;
+ e_guid_t uuid;
+
+ if(!implicit_tag){
+ offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
+ offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, NULL);
+ } else {
+ gint32 remaining=tvb_reported_length_remaining(tvb, offset);
+ len=remaining>0 ? remaining : 0;
+ }
+
+ tvb_get_ntohguid (tvb, offset, &uuid);
+ actx->created_item = proto_tree_add_guid(tree, hf_index, tvb, offset, len, &uuid);
+#.END
+
+#.END
+
+
diff --git a/epan/dissectors/asn1/x721/Attribute-ASN1Module.asn b/epan/dissectors/asn1/x721/Attribute-ASN1Module.asn
new file mode 100644
index 0000000000..e4c0b5adaa
--- /dev/null
+++ b/epan/dissectors/asn1/x721/Attribute-ASN1Module.asn
@@ -0,0 +1,533 @@
+-- Module Attribute-ASN1Module (X.721:02/1992)
+Attribute-ASN1Module {joint-iso-itu-t ms(9) smi(3) part2(2) asn1Module(2) 1}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+--EXPORTS everything
+IMPORTS
+ CMIP-ATTRIBUTE, AttributeSet, DistinguishedName, CMISFilter, Attribute,
+ BaseManagedObjectId, AttributeId, ObjectInstance, ObjectClass, EventTypeId
+ FROM CMIP-1 {joint-iso-itu-t ms(9) cmip(1) modules(0) protocol(3)}
+ AE-title
+ FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0)
+ version1(1)};
+
+-- Note that the syntax of AE-title to be used is from CCITT Rec. X.227 | ISO 8650 corrigendum and
+-- not "ANY".
+smi2AttributeID OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t ms(9) smi(3) part2(2) attribute(7)}
+
+smi2AttributeGroup OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t ms(9) smi(3) part2(2) attributeGroup(8)}
+
+DMI-TYPE-IDENTIFIER ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+-- as2wrs fault fix:
+DMI-SERVICEUSER ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+-- as2wrs fault fix:
+DMI-SUPPORTEDFEATURES ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+-- The value assignments for the probable cause used in CCITT Rec. X.733 | ISO/IEC 10164-4 are specified
+-- below.
+-- These are specified in accordance with the corrigendum to ASN.1 ISO/IEC JTC1/SC21 N5901
+arfProbableCause OBJECT IDENTIFIER ::=
+ {joint-iso-ccitt ms(9) smi(3) part2(2) standardSpecificExtension(0) arf(0)}
+
+adapterError ProbableCause ::= globalValue:{arfProbableCause 1}
+
+applicationSubsystemFailure ProbableCause ::= globalValue:{arfProbableCause 2}
+
+bandwidthReduced ProbableCause ::= globalValue:{arfProbableCause 3}
+
+callEstablishmentError ProbableCause ::= globalValue:{arfProbableCause 4}
+
+communicationsProtocolError ProbableCause ::= globalValue:{arfProbableCause 5}
+
+communicationsSubsystemFailure ProbableCause ::=
+ globalValue:{arfProbableCause 6}
+
+configurationOrCustomizationError ProbableCause ::=
+ globalValue:{arfProbableCause 7}
+
+congestion ProbableCause ::= globalValue:{arfProbableCause 8}
+
+corruptData ProbableCause ::= globalValue:{arfProbableCause 9}
+
+cpuCyclesLimitExceeded ProbableCause ::= globalValue:{arfProbableCause 10}
+
+dataSetOrModemError ProbableCause ::= globalValue:{arfProbableCause 11}
+
+degradedSignal ProbableCause ::= globalValue:{arfProbableCause 12}
+
+dTE-DCEInterfaceError ProbableCause ::= globalValue:{arfProbableCause 13}
+
+enclosureDoorOpen ProbableCause ::= globalValue:{arfProbableCause 14}
+
+equipmentMalfunction ProbableCause ::= globalValue:{arfProbableCause 15}
+
+excessiveVibration ProbableCause ::= globalValue:{arfProbableCause 16}
+
+fileError ProbableCause ::= globalValue:{arfProbableCause 17}
+
+fireDetected ProbableCause ::= globalValue:{arfProbableCause 18}
+
+floodDetected ProbableCause ::= globalValue:{arfProbableCause 19}
+
+framingError ProbableCause ::= globalValue:{arfProbableCause 20}
+
+heatingOrVentilationOrCoolingSystemProblem ProbableCause ::=
+ globalValue:{arfProbableCause 21}
+
+humidityUnacceptable ProbableCause ::= globalValue:{arfProbableCause 22}
+
+inputOutputDeviceError ProbableCause ::= globalValue:{arfProbableCause 23}
+
+inputDeviceError ProbableCause ::= globalValue:{arfProbableCause 24}
+
+lANError ProbableCause ::= globalValue:{arfProbableCause 25}
+
+leakDetected ProbableCause ::= globalValue:{arfProbableCause 26}
+
+localNodeTransmissionError ProbableCause ::= globalValue:{arfProbableCause 27}
+
+lossOfFrame ProbableCause ::= globalValue:{arfProbableCause 28}
+
+lossOfSignal ProbableCause ::= globalValue:{arfProbableCause 29}
+
+materialSupplyExhausted ProbableCause ::= globalValue:{arfProbableCause 30}
+
+multiplexerProblem ProbableCause ::= globalValue:{arfProbableCause 31}
+
+outOfMemory ProbableCause ::= globalValue:{arfProbableCause 32}
+
+ouputDeviceError ProbableCause ::= globalValue:{arfProbableCause 33}
+
+performanceDegraded ProbableCause ::= globalValue:{arfProbableCause 34}
+
+powerProblem ProbableCause ::= globalValue:{arfProbableCause 35}
+
+pressureUnacceptable ProbableCause ::= globalValue:{arfProbableCause 36}
+
+processorProblem ProbableCause ::= globalValue:{arfProbableCause 37}
+
+pumpFailure ProbableCause ::= globalValue:{arfProbableCause 38}
+
+queueSizeExceeded ProbableCause ::= globalValue:{arfProbableCause 39}
+
+receiveFailure ProbableCause ::= globalValue:{arfProbableCause 40}
+
+receiverFailure ProbableCause ::= globalValue:{arfProbableCause 41}
+
+remoteNodeTransmissionError ProbableCause ::= globalValue:{arfProbableCause 42}
+
+resourceAtOrNearingCapacity ProbableCause ::= globalValue:{arfProbableCause 43}
+
+responseTimeExcessive ProbableCause ::= globalValue:{arfProbableCause 44}
+
+retransmissionRateExcessive ProbableCause ::= globalValue:{arfProbableCause 45}
+
+softwareError ProbableCause ::= globalValue:{arfProbableCause 46}
+
+softwareProgramAbnormallyTerminated ProbableCause ::=
+ globalValue:{arfProbableCause 47}
+
+softwareProgramError ProbableCause ::= globalValue:{arfProbableCause 48}
+
+storageCapacityProblem ProbableCause ::= globalValue:{arfProbableCause 49}
+
+temperatureUnacceptable ProbableCause ::= globalValue:{arfProbableCause 50}
+
+thresholdCrossed ProbableCause ::= globalValue:{arfProbableCause 51}
+
+timingProblem ProbableCause ::= globalValue:{arfProbableCause 52}
+
+toxicLeakDetected ProbableCause ::= globalValue:{arfProbableCause 53}
+
+transmitFailure ProbableCause ::= globalValue:{arfProbableCause 54}
+
+transmitterFailure ProbableCause ::= globalValue:{arfProbableCause 55}
+
+underlyingResourceUnavailable ProbableCause ::=
+ globalValue:{arfProbableCause 56}
+
+versionMismatch ProbableCause ::= globalValue:{arfProbableCause 57}
+
+-- The following applies to CCITT applications only.
+-- The use of the following values is subject to 8.1.2.12 of The Alarm Management Function
+-- (CCITT Recommendation X.733 | 10164-4).
+arfProposedRepairAction OBJECT IDENTIFIER ::=
+ {joint-iso-ccitt ms(9) smi(3) part2(2) standardSpecificExtension(0) arfpra(2)}
+
+noActionRequired OBJECT IDENTIFIER ::= {arfProposedRepairAction 1}
+
+repairActionRequired OBJECT IDENTIFIER ::= {arfProposedRepairAction 2}
+
+-- The value assignments for the security alarm cause used in CCITT Rec. X.736 | ISO/IEC 10164-7 are
+-- specified below.
+securityAlarmCause OBJECT IDENTIFIER ::=
+ {joint-iso-ccitt ms(9) smi(3) part2(2) standardSpecificExtension(0) sarf(1)}
+
+authenticationFailure SecurityAlarmCause ::= {securityAlarmCause 1}
+
+breachOfConfidentiality SecurityAlarmCause ::= {securityAlarmCause 2}
+
+cableTamper SecurityAlarmCause ::= {securityAlarmCause 3}
+
+delayedInformation SecurityAlarmCause ::= {securityAlarmCause 4}
+
+denialOfService SecurityAlarmCause ::= {securityAlarmCause 5}
+
+duplicateInformation SecurityAlarmCause ::= {securityAlarmCause 6}
+
+informationMissing SecurityAlarmCause ::= {securityAlarmCause 7}
+
+informationModificationDetected SecurityAlarmCause ::= {securityAlarmCause 8}
+
+informationOutOfSequence SecurityAlarmCause ::= {securityAlarmCause 9}
+
+intrusionDetection SecurityAlarmCause ::= {securityAlarmCause 10}
+
+keyExpired SecurityAlarmCause ::= {securityAlarmCause 11}
+
+nonRepudiationFailure SecurityAlarmCause ::= {securityAlarmCause 12}
+
+outOfHoursActivity SecurityAlarmCause ::= {securityAlarmCause 13}
+
+outOfService SecurityAlarmCause ::= {securityAlarmCause 14}
+
+proceduralError SecurityAlarmCause ::= {securityAlarmCause 15}
+
+unauthorizedAccessAttempt SecurityAlarmCause ::= {securityAlarmCause 16}
+
+unexpectedInformation SecurityAlarmCause ::= {securityAlarmCause 17}
+
+unspecifiedReason SecurityAlarmCause ::= {securityAlarmCause 18}
+
+-- default value definitions
+-- asn2wrs Problem omit this assignment
+--defaultIntervalsOfDay IntervalsOfDay ::= {
+-- {intervalStart {hour 0, minute 0},
+-- intervalEnd {hour 23, minute 59}}
+--}
+
+--defaultStopTime StopTime ::= continual:NULL
+
+--defaultWeekMask WeekMask ::= {
+-- {daysOfWeek '1111111'B,
+-- intervalsOfDay defaultIntervalsOfDay}
+--}
+
+defaultDiscriminatorConstruct DiscriminatorConstruct ::= and:{}
+
+-- supporting productions
+ActiveDestination ::=
+ Destination(WITH COMPONENTS {
+ single PRESENT,
+ multiple ABSENT
+ })
+
+AdditionalText ::= GraphicString
+
+AdditionalInformation ::= SET OF ManagementExtension
+
+Allomorphs ::= SET OF ObjectClass
+
+AdministrativeState ::= ENUMERATED {locked(0), unlocked(1), shuttingDown(2)}
+
+AttributeIdentifierList ::= SET OF AttributeId
+
+AttributeList ::= SET OF Attribute
+
+AttributeValueChangeDefinition ::=
+ SET OF
+ SEQUENCE {attributeId CMIP-ATTRIBUTE.&id({AttributeSet}),
+ oldAttributeValue
+ [1] CMIP-ATTRIBUTE.&Value({AttributeSet}{@.attributeId})
+ OPTIONAL,
+ newAttributeValue
+ [2] CMIP-ATTRIBUTE.&Value({AttributeSet}{@.attributeId})
+ }
+
+AlarmStatus ::=
+ SET OF
+ INTEGER {underRepair(0), critical(1), major(2), minor(3),
+ alarmOutstanding(4)}
+
+AvailabilityStatus ::=
+ SET OF
+ INTEGER {inTest(0), failed(1), powerOff(2), offLine(3), offDuty(4),
+ dependency(5), degraded(6), notInstalled(7), logFull(8)}
+
+-- logFull is defined in CCITT Rec X.735 | ISO/IEC 10164-6.
+BackedUpStatus ::= BOOLEAN
+
+-- True implies backed up
+-- False implies not backed up
+BackUpDestinationList ::= SEQUENCE OF AE-title
+
+BackUpRelationshipObject ::= CHOICE {
+ objectName ObjectInstance,
+ noObject NULL
+}
+
+CapacityAlarmThreshold ::= SET OF INTEGER(0..100)
+
+ConfirmedMode ::= BOOLEAN
+
+-- True implies the mode for event report is confirmed
+ControlStatus ::=
+ SET OF
+ INTEGER {subjectToTest(0), partOfServicesLocked(1), reservedForTest(2),
+ suspended(3)}
+
+-- Count ::= INTEGER
+
+CounterThreshold ::=
+ SET OF
+ SEQUENCE {comparisonLevel INTEGER,
+ offsetValue INTEGER,
+ notificationOnOff BOOLEAN}
+
+CorrelatedNotifications ::=
+ SET OF
+ SEQUENCE {correlatedNotifications SET OF NotificationIdentifier,
+ sourceObjectInst ObjectInstance OPTIONAL}
+
+CurrentLogSize ::= INTEGER
+
+Destination ::= CHOICE {single AE-title,
+ multiple SET OF AE-title
+}
+
+-- Note that the syntax of AE-title to be used is from CCITT X.227 | ISO 8650 Technical
+-- corrigendum 1 and not "ANY".
+DiscriminatorConstruct ::=
+ CMISFilter
+
+EventTime ::= GeneralizedTime
+
+GaugeThreshold ::=
+ SET OF SEQUENCE {notifyLow NotifyThreshold,
+ notifyHigh NotifyThreshold}
+
+GaugeThresholdValue ::= ObservedValue
+
+-- same choice must be chosen within a sequence
+-- for both GenericOldState and GenericNewState.
+GroupObjects ::= SET OF ObjectInstance
+
+IntervalsOfDay ::=
+ SET OF
+ SEQUENCE {intervalStart Time24, -- start at the beginning of this minute
+ intervalEnd Time24} -- stop at the end of this minute
+
+LifecycleState ::= ENUMERATED {planned(0), installed(1), pendingRemoval(2)}
+
+LogAvailability ::= AvailabilityStatus(WITH COMPONENT (logFull | offDuty))
+
+LogFullAction ::= ENUMERATED {wrap(0), halt(1)}
+
+LoggingTime ::= GeneralizedTime
+
+LogRecordId ::=
+ SimpleNameType(WITH COMPONENTS {
+ number PRESENT,
+ string ABSENT
+ })
+
+MaxLogSize ::= INTEGER {unlimited(0)} -- size in octets
+
+-- as2wrs fault fix:
+--DMI-EXTENSION ::= DMI-TYPE-IDENTIFIER
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+MonitoredAttributes ::= SET OF Attribute
+
+NameBinding ::= OBJECT IDENTIFIER
+
+NotificationIdentifier ::= INTEGER -- reuse only when no requirement exists
+
+-- for correlating prior notification.
+NotifyThreshold ::= SEQUENCE {threshold ObservedValue,
+ notifyOnOff BOOLEAN
+}
+
+NumberOfRecords ::= INTEGER
+
+ObservedValue ::= CHOICE {integer INTEGER,
+ real REAL
+}
+
+OperationalState ::= ENUMERATED {disabled(0), enabled(1)}
+
+Packages ::= SET OF OBJECT IDENTIFIER
+
+PerceivedSeverity ::= ENUMERATED {
+ indeterminate(0),
+ -- used when it is not possible to assign the following values
+ critical(1), major(2), minor(3), warning(4), cleared(5)}
+
+PrioritisedObject ::=
+ SET OF
+ SEQUENCE {object ObjectInstance,
+ priority INTEGER {highest(0), lowest(127)}}
+
+ProbableCause ::= CHOICE {globalValue OBJECT IDENTIFIER,
+ localValue INTEGER
+}
+
+-- The values for the probable cause defined in CCITT Rec X.733 | ISO/IEC 10164-4 are specified
+-- above.
+ProceduralStatus ::=
+ SET OF
+ INTEGER {initializationRequired(0), notInitialized(1), initializing(2),
+ reporting(3), terminating(4)}
+
+ProposedRepairActions ::= SET OF SpecificIdentifier
+
+SchedulingAvailability ::= AvailabilityStatus(WITH COMPONENT (offDuty))
+
+SecurityAlarmCause ::= OBJECT IDENTIFIER
+
+SecurityAlarmSeverity ::=
+ PerceivedSeverity(indeterminate | critical | major | minor | warning)
+
+SecurityAlarmDetector ::= CHOICE {
+ mechanism [0] OBJECT IDENTIFIER,
+ object [1] ObjectInstance,
+ application [2] AE-title
+}
+
+ServiceProvider ::= ServiceUser
+
+-- DMI-SERVICEUSER ::= DMI-TYPE-IDENTIFIER
+
+ServiceUser ::= SEQUENCE {
+ identifier DMI-SERVICEUSER.&id({ServiceUserSet}),
+ details DMI-SERVICEUSER.&Value({ServiceUserSet}{@.identifier})
+}
+
+ServiceUserSet DMI-SERVICEUSER ::=
+ {...}
+
+SimpleNameType ::= CHOICE {number INTEGER,
+ string GraphicString
+}
+
+SpecificIdentifier ::= CHOICE {oi OBJECT IDENTIFIER,
+ int INTEGER
+}
+
+SourceIndicator ::= ENUMERATED {
+ resourceOperation(0), managementOperation(1), unknown(2)}
+
+SpecificProblems ::= SET OF SpecificIdentifier
+
+StandbyStatus ::= INTEGER {hotStandby(0), coldStandby(1), providingService(2)}
+
+StartTime ::= GeneralizedTime
+
+StopTime ::= CHOICE {specific GeneralizedTime,
+ continual NULL
+}
+
+-- DMI-SUPPORTEDFEATURES ::= DMI-TYPE-IDENTIFIER
+
+SupportedFeatures ::=
+ SET OF
+ SEQUENCE {featureIdentifier
+ DMI-SUPPORTEDFEATURES.&id({SupportedFeaturesSet}),
+ featureInfo
+ DMI-SUPPORTEDFEATURES.&Value
+ ({SupportedFeaturesSet}{@.featureIdentifier})}
+
+SupportedFeaturesSet DMI-SUPPORTEDFEATURES ::=
+ {...}
+
+SystemId ::= CHOICE {name GraphicString,
+ number INTEGER,
+ nothing NULL
+}
+
+SystemTitle ::= CHOICE {
+ distinguishedName DistinguishedName,
+ oid OBJECT IDENTIFIER,
+ nothing NULL
+}
+
+TideMarkInfo ::= SEQUENCE {
+ currentTideMark TideMark,
+ previousTideMark TideMark,
+ resetTime GeneralizedTime
+}
+
+TideMark ::= CHOICE {
+ maxTideMar [0] ObservedValue,
+ minTideMark [1] ObservedValue
+}
+
+Time24 ::= SEQUENCE {hour INTEGER(0..23),
+ minute INTEGER(0..59)
+}
+
+ThresholdInfo ::= SEQUENCE {
+ triggeredThreshold AttributeId,
+ observedValue ObservedValue,
+ thresholdLevel [1] ThresholdLevelInd OPTIONAL,
+ -- Indication needed for multilevel thresholds
+ armTime [2] GeneralizedTime OPTIONAL
+}
+
+ThresholdLevelInd ::= CHOICE {
+ up [1] SEQUENCE {high ObservedValue,
+ low ObservedValue OPTIONAL}, -- up is the only permitted choice for counter
+ down [2] SEQUENCE {high ObservedValue,
+ low ObservedValue}
+}
+
+TrendIndication ::= ENUMERATED {lessSevere(0), noChange(1), moreSevere(2)}
+
+UnknownStatus ::= BOOLEAN -- TRUE implies unknown status
+
+UnscheduledLogAvailability ::= AvailabilityStatus(WITH COMPONENT (logFull))
+
+UsageState ::= ENUMERATED {idle(0), active(1), busy(2)}
+
+WeekMask ::=
+ SET OF
+ SEQUENCE {daysOfWeek
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)}(SIZE (7)),
+ intervalsOfDay IntervalsOfDay}
+
+END -- end of supporting productions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/x721/CMakeLists.txt b/epan/dissectors/asn1/x721/CMakeLists.txt
new file mode 100644
index 0000000000..9e69eb149d
--- /dev/null
+++ b/epan/dissectors/asn1/x721/CMakeLists.txt
@@ -0,0 +1,51 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME dummy )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ Attribute-ASN1Module.asn
+ ManagedObjectClassesDefinitions.asn
+ Notification-ASN1Module.asn
+ Parameter-ASN1Module.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/x721/Makefile.am b/epan/dissectors/asn1/x721/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/x721/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/x721/Makefile.common b/epan/dissectors/asn1/x721/Makefile.common
new file mode 100644
index 0000000000..e4791bfbc3
--- /dev/null
+++ b/epan/dissectors/asn1/x721/Makefile.common
@@ -0,0 +1,34 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+#Dummy entry to pass the clean target
+PROTOCOL_NAME = dummy
+
+ASN_FILE_LIST =
+
+INCLUDED_ASN_FILE_LIST =
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ $(INCLUDED_ASN_FILE_LIST) \
+ Attribute-ASN1Module.asn \
+ ManagedObjectClassesDefinitions.asn \
+ Notification-ASN1Module.asn \
+ Parameter-ASN1Module.asn
+
diff --git a/epan/dissectors/asn1/x721/Makefile.nmake b/epan/dissectors/asn1/x721/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/x721/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/x721/ManagedObjectClassesDefinitions.asn b/epan/dissectors/asn1/x721/ManagedObjectClassesDefinitions.asn
new file mode 100644
index 0000000000..579234adad
--- /dev/null
+++ b/epan/dissectors/asn1/x721/ManagedObjectClassesDefinitions.asn
@@ -0,0 +1,19 @@
+-- Module ManagedObjectClassesDefinitions (X.721:02/1992)
+ManagedObjectClassesDefinitions {joint-iso-itu-t ms(9) smi(3) part2(2)
+ asn1Module(2) 0} DEFINITIONS ::=
+BEGIN
+
+--EXPORTS everything
+smi2MObjectClass OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t ms(9) smi(3) part2(2) managedObjectClass(3)}
+
+smi2NameBinding OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t ms(9) smi(3) part2(2) nameBinding(6)}
+
+smi2Package OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t ms(9) smi(3) part2(2) package(4)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/x721/Notification-ASN1Module.asn b/epan/dissectors/asn1/x721/Notification-ASN1Module.asn
new file mode 100644
index 0000000000..53314ba6fa
--- /dev/null
+++ b/epan/dissectors/asn1/x721/Notification-ASN1Module.asn
@@ -0,0 +1,99 @@
+-- Module Notification-ASN1Module (X.721:02/1992)
+Notification-ASN1Module {joint-iso-itu-t ms(9) smi(3) part2(2) asn1Module(2) 2}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ ProbableCause, SpecificProblems, PerceivedSeverity, BackedUpStatus,
+ TrendIndication, ThresholdInfo, NotificationIdentifier,
+ CorrelatedNotifications, MonitoredAttributes, ProposedRepairActions,
+ AdditionalText, AdditionalInformation, SecurityAlarmCause,
+ SecurityAlarmSeverity, SecurityAlarmDetector,
+ AttributeValueChangeDefinition, SourceIndicator, AttributeIdentifierList,
+ AttributeList, ServiceUser, ServiceProvider
+ FROM Attribute-ASN1Module
+ ObjectClass, AttributeId, ObjectInstance
+ FROM CMIP-1 {joint-iso-itu-t ms(9) cmip(1) modules(0) protocol(3)};
+
+--EXPORTS everything
+smi2Notification OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t ms(9) smi(3) part2(2) notification(10)}
+
+AlarmInfo ::= SEQUENCE {
+ probableCause ProbableCause,
+ specificProblems [1] SpecificProblems OPTIONAL,
+ perceivedSeverity PerceivedSeverity,
+ backedUpStatus BackedUpStatus OPTIONAL,
+ backUpObject [2] ObjectInstance OPTIONAL,
+ trendIndication [3] TrendIndication OPTIONAL,
+ thresholdInfo [4] ThresholdInfo OPTIONAL,
+ notificationIdentifier [5] NotificationIdentifier OPTIONAL,
+ correlatedNotifications [6] CorrelatedNotifications OPTIONAL,
+ stateChangeDefinition [7] AttributeValueChangeDefinition OPTIONAL,
+ monitoredAttributes [8] MonitoredAttributes OPTIONAL,
+ proposedRepairActions [9] ProposedRepairActions OPTIONAL,
+ additionalText AdditionalText OPTIONAL,
+ additionalInformation [10] AdditionalInformation OPTIONAL
+}
+
+-- backUpObject attribute backedUpStatus backUpObject backUpObject attribute
+-- (except in log record component component in log record
+--==============================================================================================================================
+-- ObjectInstance T ObjectInstance ObjectInstance
+-- NULL F < absent > < absent >
+-- < absent > < absent > < absent > < absent >
+AttributeValueChangeInfo ::= SEQUENCE {
+ sourceIndicator SourceIndicator OPTIONAL,
+ attributeIdentifierList [1] AttributeIdentifierList OPTIONAL,
+ attributeValueChangeDefinition AttributeValueChangeDefinition,
+ notificationIdentifier NotificationIdentifier OPTIONAL,
+ correlatedNotifications [2] CorrelatedNotifications OPTIONAL,
+ additionalText AdditionalText OPTIONAL,
+ additionalInformation [3] AdditionalInformation OPTIONAL
+}
+
+ObjectInfo ::= SEQUENCE {
+ sourceIndicator SourceIndicator OPTIONAL,
+ attributeList AttributeList OPTIONAL,
+ notificationIdentifier NotificationIdentifier OPTIONAL,
+ correlatedNotifications [1] CorrelatedNotifications OPTIONAL,
+ additionalText AdditionalText OPTIONAL,
+ additionalInformation [2] AdditionalInformation OPTIONAL
+}
+
+RelationshipChangeInfo ::= SEQUENCE {
+ sourceIndicator SourceIndicator OPTIONAL,
+ attributeIdentifierList [1] AttributeIdentifierList OPTIONAL,
+ relationshipChangeDefinition AttributeValueChangeDefinition,
+ notificationIdentifier NotificationIdentifier OPTIONAL,
+ correlatedNotifications [2] CorrelatedNotifications OPTIONAL,
+ additionalText AdditionalText OPTIONAL,
+ additionalInformation [3] AdditionalInformation OPTIONAL
+}
+
+StateChangeInfo ::= SEQUENCE {
+ sourceIndicator SourceIndicator OPTIONAL,
+ attributeIdentifierList [1] AttributeIdentifierList OPTIONAL,
+ stateChangeDefinition AttributeValueChangeDefinition,
+ notificationIdentifier NotificationIdentifier OPTIONAL,
+ correlatedNotifications [2] CorrelatedNotifications OPTIONAL,
+ additionalText AdditionalText OPTIONAL,
+ additionalInformation [3] AdditionalInformation OPTIONAL
+}
+
+SecurityAlarmInfo ::= SEQUENCE {
+ securityAlarmCause SecurityAlarmCause,
+ securityAlarmSeverity SecurityAlarmSeverity,
+ securityAlarmDetector SecurityAlarmDetector,
+ serviceUser ServiceUser,
+ serviceProvider ServiceProvider,
+ notificationIdentifier NotificationIdentifier OPTIONAL,
+ correlatedNotifications [1] CorrelatedNotifications OPTIONAL,
+ additionalText AdditionalText OPTIONAL,
+ additionalInformation [2] AdditionalInformation OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/x721/Parameter-ASN1Module.asn b/epan/dissectors/asn1/x721/Parameter-ASN1Module.asn
new file mode 100644
index 0000000000..e034941ce4
--- /dev/null
+++ b/epan/dissectors/asn1/x721/Parameter-ASN1Module.asn
@@ -0,0 +1,14 @@
+-- Module Parameter-ASN1Module (X.721:02/1992)
+Parameter-ASN1Module {joint-iso-itu-t ms(9) smi(3) part2(2) asn1Module(2) 3}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+smi2Parameter OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t ms(9) smi(3) part2(2) parameter(5)}
+
+MiscellaneousError ::= NULL
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/packet-HI2Operations.c b/epan/dissectors/packet-HI2Operations.c
index 43a4bd906d..81361a0ed2 100644
--- a/epan/dissectors/packet-HI2Operations.c
+++ b/epan/dissectors/packet-HI2Operations.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-HI2Operations.c */
-/* ../../tools/asn2wrs.py -b -p HI2Operations -c ./HI2Operations.cnf -s ./packet-HI2Operations-template -D . -O ../../epan/dissectors HI2Operations_ver11.asn UmtsHI2Operations.asn TS101909201.asn PCESP.asn EN301040.asn */
+/* asn2wrs.py -b -p HI2Operations -c ./HI2Operations.cnf -s ./packet-HI2Operations-template -D . -O ../.. HI2Operations_ver11.asn UmtsHI2Operations.asn TS101909201.asn PCESP.asn EN301040.asn */
/* Input file: packet-HI2Operations-template.c */
-#line 1 "../../asn1/HI2Operations/packet-HI2Operations-template.c"
+#line 1 "./asn1/HI2Operations/packet-HI2Operations-template.c"
/* packet-HI2Operations.c
* Routines for HI2 (ETSI TS 101 671 V3.5.1 (2009-11))
* Erwin van Eijk 2010
@@ -49,7 +49,7 @@ void proto_reg_handoff_HI2Operations(void);
int proto_HI2Operations = -1;
/*--- Included file: packet-HI2Operations-hf.c ---*/
-#line 1 "../../asn1/HI2Operations/packet-HI2Operations-hf.c"
+#line 1 "./asn1/HI2Operations/packet-HI2Operations-hf.c"
static int hf_HI2Operations_IRIsContent_PDU = -1; /* IRIsContent */
static int hf_HI2Operations_iRIContent = -1; /* IRIContent */
static int hf_HI2Operations_iRISequence = -1; /* IRISequence */
@@ -366,12 +366,12 @@ static int hf_HI2Operations_cI = -1; /* CellIdType */
static int hf_HI2Operations_ssi = -1; /* SSIType */
/*--- End of included file: packet-HI2Operations-hf.c ---*/
-#line 43 "../../asn1/HI2Operations/packet-HI2Operations-template.c"
+#line 43 "./asn1/HI2Operations/packet-HI2Operations-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-HI2Operations-ett.c ---*/
-#line 1 "../../asn1/HI2Operations/packet-HI2Operations-ett.c"
+#line 1 "./asn1/HI2Operations/packet-HI2Operations-ett.c"
static gint ett_HI2Operations_IRIsContent = -1;
static gint ett_HI2Operations_IRISequence = -1;
static gint ett_HI2Operations_IRIContent = -1;
@@ -476,11 +476,11 @@ static gint ett_HI2Operations_TETRACGIType = -1;
static gint ett_HI2Operations_TSIType = -1;
/*--- End of included file: packet-HI2Operations-ett.c ---*/
-#line 46 "../../asn1/HI2Operations/packet-HI2Operations-template.c"
+#line 46 "./asn1/HI2Operations/packet-HI2Operations-template.c"
/*--- Included file: packet-HI2Operations-fn.c ---*/
-#line 1 "../../asn1/HI2Operations/packet-HI2Operations-fn.c"
+#line 1 "./asn1/HI2Operations/packet-HI2Operations-fn.c"
static int
@@ -3767,7 +3767,7 @@ static int dissect_IRIsContent_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pr
/*--- End of included file: packet-HI2Operations-fn.c ---*/
-#line 48 "../../asn1/HI2Operations/packet-HI2Operations-template.c"
+#line 48 "./asn1/HI2Operations/packet-HI2Operations-template.c"
/*--- proto_register_HI2Operations ----------------------------------------------*/
@@ -3777,7 +3777,7 @@ void proto_register_HI2Operations(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-HI2Operations-hfarr.c ---*/
-#line 1 "../../asn1/HI2Operations/packet-HI2Operations-hfarr.c"
+#line 1 "./asn1/HI2Operations/packet-HI2Operations-hfarr.c"
{ &hf_HI2Operations_IRIsContent_PDU,
{ "IRIsContent", "HI2Operations.IRIsContent",
FT_UINT32, BASE_DEC, VALS(HI2Operations_IRIsContent_vals), 0,
@@ -5036,14 +5036,14 @@ void proto_register_HI2Operations(void) {
"SSIType", HFILL }},
/*--- End of included file: packet-HI2Operations-hfarr.c ---*/
-#line 56 "../../asn1/HI2Operations/packet-HI2Operations-template.c"
+#line 56 "./asn1/HI2Operations/packet-HI2Operations-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-HI2Operations-ettarr.c ---*/
-#line 1 "../../asn1/HI2Operations/packet-HI2Operations-ettarr.c"
+#line 1 "./asn1/HI2Operations/packet-HI2Operations-ettarr.c"
&ett_HI2Operations_IRIsContent,
&ett_HI2Operations_IRISequence,
&ett_HI2Operations_IRIContent,
@@ -5148,7 +5148,7 @@ void proto_register_HI2Operations(void) {
&ett_HI2Operations_TSIType,
/*--- End of included file: packet-HI2Operations-ettarr.c ---*/
-#line 61 "../../asn1/HI2Operations/packet-HI2Operations-template.c"
+#line 61 "./asn1/HI2Operations/packet-HI2Operations-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-acp133.c b/epan/dissectors/packet-acp133.c
index 089d76aeb5..e96053f589 100644
--- a/epan/dissectors/packet-acp133.c
+++ b/epan/dissectors/packet-acp133.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-acp133.c */
-/* ../../tools/asn2wrs.py -b -p acp133 -c ./acp133.cnf -s ./packet-acp133-template -D . -O ../../epan/dissectors acp133.asn MHSDirectoryObjectsAndAttributes.asn */
+/* asn2wrs.py -b -p acp133 -c ./acp133.cnf -s ./packet-acp133-template -D . -O ../.. acp133.asn MHSDirectoryObjectsAndAttributes.asn */
/* Input file: packet-acp133-template.c */
-#line 1 "../../asn1/acp133/packet-acp133-template.c"
+#line 1 "./asn1/acp133/packet-acp133-template.c"
/* packet-acp133.c
* Routines for ACP133 specific syntaxes in X.500 packet dissection
* Graeme Lunt 2005
@@ -58,7 +58,7 @@ static int proto_acp133 = -1;
/*--- Included file: packet-acp133-hf.c ---*/
-#line 1 "../../asn1/acp133/packet-acp133-hf.c"
+#line 1 "./asn1/acp133/packet-acp133-hf.c"
static int hf_acp133_ACPPreferredDelivery_PDU = -1; /* ACPPreferredDelivery */
static int hf_acp133_ALType_PDU = -1; /* ALType */
static int hf_acp133_Community_PDU = -1; /* Community */
@@ -148,13 +148,13 @@ static int hf_acp133_OnSupported_acp127_pn = -1;
static int hf_acp133_OnSupported_acp127_tn = -1;
/*--- End of included file: packet-acp133-hf.c ---*/
-#line 52 "../../asn1/acp133/packet-acp133-template.c"
+#line 52 "./asn1/acp133/packet-acp133-template.c"
/* Initialize the subtree pointers */
static gint ett_acp133 = -1;
/*--- Included file: packet-acp133-ett.c ---*/
-#line 1 "../../asn1/acp133/packet-acp133-ett.c"
+#line 1 "./asn1/acp133/packet-acp133-ett.c"
static gint ett_acp133_OnSupported = -1;
static gint ett_acp133_Addressees = -1;
static gint ett_acp133_MonthlyUKMs = -1;
@@ -177,11 +177,11 @@ static gint ett_acp133_Capability = -1;
static gint ett_acp133_SET_OF_ExtendedContentType = -1;
/*--- End of included file: packet-acp133-ett.c ---*/
-#line 56 "../../asn1/acp133/packet-acp133-template.c"
+#line 56 "./asn1/acp133/packet-acp133-template.c"
/*--- Included file: packet-acp133-fn.c ---*/
-#line 1 "../../asn1/acp133/packet-acp133-fn.c"
+#line 1 "./asn1/acp133/packet-acp133-fn.c"
static const value_string acp133_ACPPreferredDelivery_vals[] = {
{ 0, "smtp" },
@@ -1220,7 +1220,7 @@ static int dissect_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-acp133-fn.c ---*/
-#line 58 "../../asn1/acp133/packet-acp133-template.c"
+#line 58 "./asn1/acp133/packet-acp133-template.c"
/*--- proto_register_acp133 -------------------------------------------*/
@@ -1231,7 +1231,7 @@ void proto_register_acp133(void) {
{
/*--- Included file: packet-acp133-hfarr.c ---*/
-#line 1 "../../asn1/acp133/packet-acp133-hfarr.c"
+#line 1 "./asn1/acp133/packet-acp133-hfarr.c"
{ &hf_acp133_ACPPreferredDelivery_PDU,
{ "ACPPreferredDelivery", "acp133.ACPPreferredDelivery",
FT_UINT32, BASE_DEC, VALS(acp133_ACPPreferredDelivery_vals), 0,
@@ -1578,7 +1578,7 @@ void proto_register_acp133(void) {
NULL, HFILL }},
/*--- End of included file: packet-acp133-hfarr.c ---*/
-#line 67 "../../asn1/acp133/packet-acp133-template.c"
+#line 67 "./asn1/acp133/packet-acp133-template.c"
};
/* List of subtrees */
@@ -1586,7 +1586,7 @@ void proto_register_acp133(void) {
&ett_acp133,
/*--- Included file: packet-acp133-ettarr.c ---*/
-#line 1 "../../asn1/acp133/packet-acp133-ettarr.c"
+#line 1 "./asn1/acp133/packet-acp133-ettarr.c"
&ett_acp133_OnSupported,
&ett_acp133_Addressees,
&ett_acp133_MonthlyUKMs,
@@ -1609,7 +1609,7 @@ void proto_register_acp133(void) {
&ett_acp133_SET_OF_ExtendedContentType,
/*--- End of included file: packet-acp133-ettarr.c ---*/
-#line 73 "../../asn1/acp133/packet-acp133-template.c"
+#line 73 "./asn1/acp133/packet-acp133-template.c"
};
/* Register protocol */
@@ -1627,7 +1627,7 @@ void proto_reg_handoff_acp133(void) {
/*--- Included file: packet-acp133-dis-tab.c ---*/
-#line 1 "../../asn1/acp133/packet-acp133-dis-tab.c"
+#line 1 "./asn1/acp133/packet-acp133-dis-tab.c"
register_ber_oid_dissector("2.6.5.2.4", dissect_DLSubmitPermission_PDU, proto_acp133, "id-at-mhs-dl-submit-permissions");
register_ber_oid_dissector("2.6.5.2.13", dissect_DLPolicy_PDU, proto_acp133, "id-at-mhs-dl-policy");
register_ber_oid_dissector("2.6.5.2.16", dissect_AddressCapabilities_PDU, proto_acp133, "id-at-mhs-or-addresses-with-capabilities");
@@ -1681,7 +1681,7 @@ void proto_reg_handoff_acp133(void) {
/*--- End of included file: packet-acp133-dis-tab.c ---*/
-#line 89 "../../asn1/acp133/packet-acp133-template.c"
+#line 89 "./asn1/acp133/packet-acp133-template.c"
/* X.402 Object Classes */
oid_add_from_string("id-oc-mhs-distribution-list","2.6.5.1.0");
diff --git a/epan/dissectors/packet-acp133.h b/epan/dissectors/packet-acp133.h
index bec9af7e1d..d41ef1dc30 100644
--- a/epan/dissectors/packet-acp133.h
+++ b/epan/dissectors/packet-acp133.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-acp133.h */
-/* ../../tools/asn2wrs.py -b -p acp133 -c ./acp133.cnf -s ./packet-acp133-template -D . -O ../../epan/dissectors acp133.asn MHSDirectoryObjectsAndAttributes.asn */
+/* asn2wrs.py -b -p acp133 -c ./acp133.cnf -s ./packet-acp133-template -D . -O ../.. acp133.asn MHSDirectoryObjectsAndAttributes.asn */
/* Input file: packet-acp133-template.h */
-#line 1 "../../asn1/acp133/packet-acp133-template.h"
+#line 1 "./asn1/acp133/packet-acp133-template.h"
/* packet-acp133.h
* Routines for ACP133 specific syntaxes in X.500 packet dissection
* Graeme Lunt 2005
diff --git a/epan/dissectors/packet-acse.c b/epan/dissectors/packet-acse.c
index e47e719c57..586989d6be 100644
--- a/epan/dissectors/packet-acse.c
+++ b/epan/dissectors/packet-acse.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-acse.c */
-/* ../../tools/asn2wrs.py -b -C -p acse -c ./acse.cnf -s ./packet-acse-template -D . -O ../../epan/dissectors acse.asn */
+/* asn2wrs.py -b -C -p acse -c ./acse.cnf -s ./packet-acse-template -D . -O ../.. acse.asn */
/* Input file: packet-acse-template.c */
-#line 1 "../../asn1/acse/packet-acse-template.c"
+#line 1 "./asn1/acse/packet-acse-template.c"
/*XXX
There is a bug in asn2wrs that it can not yet handle tagged assignments such
as EXTERNAL ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
@@ -74,7 +74,7 @@ int proto_clacse = -1;
/*--- Included file: packet-acse-hf.c ---*/
-#line 1 "../../asn1/acse/packet-acse-hf.c"
+#line 1 "./asn1/acse/packet-acse-hf.c"
static int hf_acse_direct_reference = -1; /* T_direct_reference */
static int hf_acse_indirect_reference = -1; /* T_indirect_reference */
static int hf_acse_data_value_descriptor = -1; /* ObjectDescriptor */
@@ -185,14 +185,14 @@ static int hf_acse_ACSE_requirements_higher_level_association = -1;
static int hf_acse_ACSE_requirements_nested_association = -1;
/*--- End of included file: packet-acse-hf.c ---*/
-#line 68 "../../asn1/acse/packet-acse-template.c"
+#line 68 "./asn1/acse/packet-acse-template.c"
static gint hf_acse_user_data = -1;
/* Initialize the subtree pointers */
static gint ett_acse = -1;
/*--- Included file: packet-acse-ett.c ---*/
-#line 1 "../../asn1/acse/packet-acse-ett.c"
+#line 1 "./asn1/acse/packet-acse-ett.c"
static gint ett_acse_EXTERNALt_U = -1;
static gint ett_acse_T_encoding = -1;
static gint ett_acse_ACSE_apdu = -1;
@@ -230,7 +230,7 @@ static gint ett_acse_Authentication_value_other = -1;
static gint ett_acse_Authentication_value = -1;
/*--- End of included file: packet-acse-ett.c ---*/
-#line 73 "../../asn1/acse/packet-acse-template.c"
+#line 73 "./asn1/acse/packet-acse-template.c"
static expert_field ei_acse_dissector_not_available = EI_INIT;
static expert_field ei_acse_malformed = EI_INIT;
@@ -309,12 +309,12 @@ find_oid_by_ctx_id(packet_info *pinfo _U_, guint32 idx)
/*--- Included file: packet-acse-fn.c ---*/
-#line 1 "../../asn1/acse/packet-acse-fn.c"
+#line 1 "./asn1/acse/packet-acse-fn.c"
static int
dissect_acse_T_direct_reference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 102 "../../asn1/acse/acse.cnf"
+#line 102 "./asn1/acse/acse.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -328,7 +328,7 @@ dissect_acse_T_direct_reference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_acse_T_indirect_reference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 82 "../../asn1/acse/acse.cnf"
+#line 82 "./asn1/acse/acse.cnf"
char *oid;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*) actx->private_data;
@@ -365,7 +365,7 @@ dissect_acse_ObjectDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_acse_T_single_ASN1_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 106 "../../asn1/acse/acse.cnf"
+#line 106 "./asn1/acse/acse.cnf"
if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, actx->private_data);
}
@@ -379,7 +379,7 @@ dissect_acse_T_single_ASN1_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_acse_T_octet_aligned(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 111 "../../asn1/acse/acse.cnf"
+#line 111 "./asn1/acse/acse.cnf"
if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, actx->private_data);
}
@@ -479,7 +479,7 @@ dissect_acse_ASO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_acse_T_AARQ_aSO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 62 "../../asn1/acse/acse.cnf"
+#line 62 "./asn1/acse/acse.cnf"
offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
hf_index, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -679,7 +679,7 @@ dissect_acse_GraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_acse_T_other_mechanism_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 50 "../../asn1/acse/acse.cnf"
+#line 50 "./asn1/acse/acse.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -693,7 +693,7 @@ dissect_acse_T_other_mechanism_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_acse_T_other_mechanism_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 54 "../../asn1/acse/acse.cnf"
+#line 54 "./asn1/acse/acse.cnf"
if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, top_tree, actx->private_data);
}
@@ -975,7 +975,7 @@ dissect_acse_AARQ_apdu_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_acse_AARQ_apdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 116 "../../asn1/acse/acse.cnf"
+#line 116 "./asn1/acse/acse.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "A-Associate-Request");
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1006,7 +1006,7 @@ dissect_acse_T_AARE_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_acse_T_AARE_aSO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "../../asn1/acse/acse.cnf"
+#line 67 "./asn1/acse/acse.cnf"
offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
hf_index, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -1208,7 +1208,7 @@ dissect_acse_AARE_apdu_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_acse_AARE_apdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 121 "../../asn1/acse/acse.cnf"
+#line 121 "./asn1/acse/acse.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "A-Associate-Response");
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1231,7 +1231,7 @@ static const value_string acse_Release_request_reason_vals[] = {
static int
dissect_acse_Release_request_reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 134 "../../asn1/acse/acse.cnf"
+#line 134 "./asn1/acse/acse.cnf"
int reason = -1;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -1267,7 +1267,7 @@ dissect_acse_RLRQ_apdu_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_acse_RLRQ_apdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 126 "../../asn1/acse/acse.cnf"
+#line 126 "./asn1/acse/acse.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "Release-Request");
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1290,7 +1290,7 @@ static const value_string acse_Release_response_reason_vals[] = {
static int
dissect_acse_Release_response_reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 150 "../../asn1/acse/acse.cnf"
+#line 150 "./asn1/acse/acse.cnf"
int reason = -1;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -1326,7 +1326,7 @@ dissect_acse_RLRE_apdu_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_acse_RLRE_apdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 142 "../../asn1/acse/acse.cnf"
+#line 142 "./asn1/acse/acse.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "Release-Response");
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1348,7 +1348,7 @@ static const value_string acse_ABRT_source_vals[] = {
static int
dissect_acse_ABRT_source(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 163 "../../asn1/acse/acse.cnf"
+#line 163 "./asn1/acse/acse.cnf"
int source = -1;
offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
@@ -1405,7 +1405,7 @@ dissect_acse_ABRT_apdu_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_acse_ABRT_apdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 158 "../../asn1/acse/acse.cnf"
+#line 158 "./asn1/acse/acse.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "Abort");
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1440,7 +1440,7 @@ dissect_acse_Simply_encoded_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_acse_T_simple_ASN1_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 59 "../../asn1/acse/acse.cnf"
+#line 59 "./asn1/acse/acse.cnf"
/*XXX not implemented yet */
@@ -1552,7 +1552,7 @@ dissect_acse_A_DT_apdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_acse_T_ACRQ_aSO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 72 "../../asn1/acse/acse.cnf"
+#line 72 "./asn1/acse/acse.cnf"
offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
hf_index, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -1595,7 +1595,7 @@ dissect_acse_ACRQ_apdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_acse_T_ACRP_aSO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 77 "../../asn1/acse/acse.cnf"
+#line 77 "./asn1/acse/acse.cnf"
offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
hf_index, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -1697,7 +1697,7 @@ dissect_acse_AE_title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
/*--- End of included file: packet-acse-fn.c ---*/
-#line 150 "../../asn1/acse/packet-acse-template.c"
+#line 150 "./asn1/acse/packet-acse-template.c"
/*
@@ -1815,7 +1815,7 @@ void proto_register_acse(void) {
NULL, HFILL }},
/*--- Included file: packet-acse-hfarr.c ---*/
-#line 1 "../../asn1/acse/packet-acse-hfarr.c"
+#line 1 "./asn1/acse/packet-acse-hfarr.c"
{ &hf_acse_direct_reference,
{ "direct-reference", "acse.direct_reference",
FT_OID, BASE_NONE, NULL, 0,
@@ -2246,7 +2246,7 @@ void proto_register_acse(void) {
NULL, HFILL }},
/*--- End of included file: packet-acse-hfarr.c ---*/
-#line 266 "../../asn1/acse/packet-acse-template.c"
+#line 266 "./asn1/acse/packet-acse-template.c"
};
/* List of subtrees */
@@ -2254,7 +2254,7 @@ void proto_register_acse(void) {
&ett_acse,
/*--- Included file: packet-acse-ettarr.c ---*/
-#line 1 "../../asn1/acse/packet-acse-ettarr.c"
+#line 1 "./asn1/acse/packet-acse-ettarr.c"
&ett_acse_EXTERNALt_U,
&ett_acse_T_encoding,
&ett_acse_ACSE_apdu,
@@ -2292,7 +2292,7 @@ void proto_register_acse(void) {
&ett_acse_Authentication_value,
/*--- End of included file: packet-acse-ettarr.c ---*/
-#line 272 "../../asn1/acse/packet-acse-template.c"
+#line 272 "./asn1/acse/packet-acse-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-acse.h b/epan/dissectors/packet-acse.h
index bf8a738891..5181afa69f 100644
--- a/epan/dissectors/packet-acse.h
+++ b/epan/dissectors/packet-acse.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-acse.h */
-/* ../../tools/asn2wrs.py -b -C -p acse -c ./acse.cnf -s ./packet-acse-template -D . -O ../../epan/dissectors acse.asn */
+/* asn2wrs.py -b -C -p acse -c ./acse.cnf -s ./packet-acse-template -D . -O ../.. acse.asn */
/* Input file: packet-acse-template.h */
-#line 1 "../../asn1/acse/packet-acse-template.h"
+#line 1 "./asn1/acse/packet-acse-template.h"
/* packet-acse.h
* Routines for ACSE packet dissection
* Ronnie Sahlberg 2005
@@ -35,7 +35,7 @@
#include <epan/asn1.h>
/*--- Included file: packet-acse-exp.h ---*/
-#line 1 "../../asn1/acse/packet-acse-exp.h"
+#line 1 "./asn1/acse/packet-acse-exp.h"
extern const value_string acse_AP_title_vals[];
extern const value_string acse_ASO_qualifier_vals[];
extern const value_string acse_AE_title_vals[];
@@ -48,7 +48,7 @@ int dissect_acse_AE_invocation_identifier(gboolean implicit_tag _U_, tvbuff_t *t
int dissect_acse_AP_invocation_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-acse-exp.h ---*/
-#line 29 "../../asn1/acse/packet-acse-template.h"
+#line 29 "./asn1/acse/packet-acse-template.h"
#endif /* PACKET_ACSE_H */
diff --git a/epan/dissectors/packet-ansi_map.c b/epan/dissectors/packet-ansi_map.c
index 97c04bda95..6b7da6e52b 100644
--- a/epan/dissectors/packet-ansi_map.c
+++ b/epan/dissectors/packet-ansi_map.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ansi_map.c */
-/* ../../tools/asn2wrs.py -b -p ansi_map -c ./ansi_map.cnf -s ./packet-ansi_map-template -D . -O ../../epan/dissectors ansi_map.asn */
+/* asn2wrs.py -b -p ansi_map -c ./ansi_map.cnf -s ./packet-ansi_map-template -D . -O ../.. ansi_map.asn */
/* Input file: packet-ansi_map-template.c */
-#line 1 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 1 "./asn1/ansi_map/packet-ansi_map-template.c"
/* packet-ansi_map.c
* Routines for ANSI 41 Mobile Application Part (IS41 MAP) dissection
* Specications from 3GPP2 (www.3gpp2.org)
@@ -335,7 +335,7 @@ static int hf_ansi_map_win_trigger_list = -1;
/*--- Included file: packet-ansi_map-hf.c ---*/
-#line 1 "../../asn1/ansi_map/packet-ansi_map-hf.c"
+#line 1 "./asn1/ansi_map/packet-ansi_map-hf.c"
static int hf_ansi_map_electronicSerialNumber = -1; /* ElectronicSerialNumber */
static int hf_ansi_map_msid = -1; /* MSID */
static int hf_ansi_map_authenticationAlgorithmVersion = -1; /* AuthenticationAlgorithmVersion */
@@ -885,7 +885,7 @@ static int hf_ansi_map_interSystemSMSDeliveryPointToPointRes = -1; /* InterSyst
static int hf_ansi_map_qualificationRequest2Res = -1; /* QualificationRequest2Res */
/*--- End of included file: packet-ansi_map-hf.c ---*/
-#line 329 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 329 "./asn1/ansi_map/packet-ansi_map-template.c"
/* Initialize the subtree pointers */
static gint ett_ansi_map = -1;
@@ -919,7 +919,7 @@ static gint ett_sms_originationrestrictions = -1;
/*--- Included file: packet-ansi_map-ett.c ---*/
-#line 1 "../../asn1/ansi_map/packet-ansi_map-ett.c"
+#line 1 "./asn1/ansi_map/packet-ansi_map-ett.c"
static gint ett_ansi_map_AuthenticationDirective_U = -1;
static gint ett_ansi_map_AuthenticationDirectiveRes_U = -1;
static gint ett_ansi_map_AuthenticationDirectiveForward_U = -1;
@@ -1145,7 +1145,7 @@ static gint ett_ansi_map_InvokeData = -1;
static gint ett_ansi_map_ReturnData = -1;
/*--- End of included file: packet-ansi_map-ett.c ---*/
-#line 361 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 361 "./asn1/ansi_map/packet-ansi_map-template.c"
static expert_field ei_ansi_map_nr_not_used = EI_INIT;
static expert_field ei_ansi_map_unknown_invokeData_blob = EI_INIT;
@@ -4419,7 +4419,7 @@ static const value_string ansi_map_VoicePrivacyReport_vals[] = {
/*--- Included file: packet-ansi_map-fn.c ---*/
-#line 1 "../../asn1/ansi_map/packet-ansi_map-fn.c"
+#line 1 "./asn1/ansi_map/packet-ansi_map-fn.c"
static int
@@ -4434,7 +4434,7 @@ dissect_ansi_map_ElectronicSerialNumber(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_ansi_map_MINType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 43 "../../asn1/ansi_map/ansi_map.cnf"
+#line 43 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -4533,7 +4533,7 @@ dissect_ansi_map_CDMAPrivateLongCodeMask(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_ansi_map_DigitsType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 50 "../../asn1/ansi_map/ansi_map.cnf"
+#line 50 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -4643,7 +4643,7 @@ dissect_ansi_map_MobileStationMIN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_MSCID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 207 "../../asn1/ansi_map/ansi_map.cnf"
+#line 207 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -4822,7 +4822,7 @@ dissect_ansi_map_AuthenticationDirectiveRes(gboolean implicit_tag _U_, tvbuff_t
static int
dissect_ansi_map_InterMSCCircuitID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 182 "../../asn1/ansi_map/ansi_map.cnf"
+#line 182 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -4968,7 +4968,7 @@ dissect_ansi_map_SystemAccessType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_SystemCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 346 "../../asn1/ansi_map/ansi_map.cnf"
+#line 346 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -5133,7 +5133,7 @@ dissect_ansi_map_CDMANetworkIdentification(gboolean implicit_tag _U_, tvbuff_t *
static int
dissect_ansi_map_ConfidentialityModes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 136 "../../asn1/ansi_map/ansi_map.cnf"
+#line 136 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -5169,7 +5169,7 @@ dissect_ansi_map_Digits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_ansi_map_PC_SSN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 263 "../../asn1/ansi_map/ansi_map.cnf"
+#line 263 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -5224,7 +5224,7 @@ dissect_ansi_map_SuspiciousAccess(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_TransactionCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 363 "../../asn1/ansi_map/ansi_map.cnf"
+#line 363 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -5469,7 +5469,7 @@ dissect_ansi_map_ReauthenticationReport(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_ansi_map_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 443 "../../asn1/ansi_map/ansi_map.cnf"
+#line 443 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -5774,7 +5774,7 @@ dissect_ansi_map_CountRequestRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_ansi_map_BillingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "../../asn1/ansi_map/ansi_map.cnf"
+#line 90 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -5792,7 +5792,7 @@ dissect_ansi_map_BillingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_ansi_map_ChannelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 128 "../../asn1/ansi_map/ansi_map.cnf"
+#line 128 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -5869,7 +5869,7 @@ dissect_ansi_map_HandoffReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_ansi_map_HandoffState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 174 "../../asn1/ansi_map/ansi_map.cnf"
+#line 174 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -5994,7 +5994,7 @@ dissect_ansi_map_BaseStationManufacturerCode(gboolean implicit_tag _U_, tvbuff_t
static int
dissect_ansi_map_AlertCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 65 "../../asn1/ansi_map/ansi_map.cnf"
+#line 65 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6012,7 +6012,7 @@ dissect_ansi_map_AlertCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_ansi_map_CDMA2000HandoffInvokeIOSData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 421 "../../asn1/ansi_map/ansi_map.cnf"
+#line 421 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
@@ -6082,7 +6082,7 @@ dissect_ansi_map_CDMABandClassList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_CDMACallMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 105 "../../asn1/ansi_map/ansi_map.cnf"
+#line 105 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6099,7 +6099,7 @@ dissect_ansi_map_CDMACallMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_ansi_map_CDMAChannelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 112 "../../asn1/ansi_map/ansi_map.cnf"
+#line 112 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6127,7 +6127,7 @@ dissect_ansi_map_CDMAConnectionReference(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_ansi_map_CDMAServiceOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 371 "../../asn1/ansi_map/ansi_map.cnf"
+#line 371 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6265,7 +6265,7 @@ dissect_ansi_map_CDMAServingOneWayDelay(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_ansi_map_CDMAStationClassMark(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 120 "../../asn1/ansi_map/ansi_map.cnf"
+#line 120 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6381,7 +6381,7 @@ dissect_ansi_map_ISLPInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_ansi_map_MSLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 215 "../../asn1/ansi_map/ansi_map.cnf"
+#line 215 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6399,7 +6399,7 @@ dissect_ansi_map_MSLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ansi_map_NAMPSCallMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 223 "../../asn1/ansi_map/ansi_map.cnf"
+#line 223 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6417,7 +6417,7 @@ dissect_ansi_map_NAMPSCallMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_ansi_map_NAMPSChannelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 231 "../../asn1/ansi_map/ansi_map.cnf"
+#line 231 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6621,7 +6621,7 @@ dissect_ansi_map_BSMCStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ansi_map_CDMA2000HandoffResponseIOSData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 432 "../../asn1/ansi_map/ansi_map.cnf"
+#line 432 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
@@ -6862,7 +6862,7 @@ dissect_ansi_map_ACGEncountered(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_ansi_map_CallingPartyName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 382 "../../asn1/ansi_map/ansi_map.cnf"
+#line 382 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6898,7 +6898,7 @@ dissect_ansi_map_CallingPartyNumberDigits2(gboolean implicit_tag _U_, tvbuff_t *
static int
dissect_ansi_map_Subaddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 57 "../../asn1/ansi_map/ansi_map.cnf"
+#line 57 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -6953,7 +6953,7 @@ dissect_ansi_map_MSCIdentificationNumber(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_ansi_map_OneTimeFeatureIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 239 "../../asn1/ansi_map/ansi_map.cnf"
+#line 239 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -7118,7 +7118,7 @@ dissect_ansi_map_ActionCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ansi_map_AnnouncementCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 73 "../../asn1/ansi_map/ansi_map.cnf"
+#line 73 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -7277,7 +7277,7 @@ dissect_ansi_map_NoAnswerTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_ansi_map_PACAIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 255 "../../asn1/ansi_map/ansi_map.cnf"
+#line 255 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -7383,7 +7383,7 @@ dissect_ansi_map_LegInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_ansi_map_TerminationTriggers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 355 "../../asn1/ansi_map/ansi_map.cnf"
+#line 355 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -7572,7 +7572,7 @@ dissect_ansi_map_DestinationAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_ansi_map_WIN_TriggerList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 405 "../../asn1/ansi_map/ansi_map.cnf"
+#line 405 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -8361,7 +8361,7 @@ dissect_ansi_map_InformationDirectiveRes(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_ansi_map_MessageWaitingNotificationCount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 190 "../../asn1/ansi_map/ansi_map.cnf"
+#line 190 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -8379,7 +8379,7 @@ dissect_ansi_map_MessageWaitingNotificationCount(gboolean implicit_tag _U_, tvbu
static int
dissect_ansi_map_MessageWaitingNotificationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 198 "../../asn1/ansi_map/ansi_map.cnf"
+#line 198 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -8496,7 +8496,7 @@ dissect_ansi_map_CDMASlotCycleIndex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_ansi_map_ExtendedMSCID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 159 "../../asn1/ansi_map/ansi_map.cnf"
+#line 159 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -8514,7 +8514,7 @@ dissect_ansi_map_ExtendedMSCID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_ansi_map_ExtendedSystemMyTypeCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 167 "../../asn1/ansi_map/ansi_map.cnf"
+#line 167 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -8581,7 +8581,7 @@ dissect_ansi_map_PageResponseTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_PilotBillingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 271 "../../asn1/ansi_map/ansi_map.cnf"
+#line 271 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -9063,7 +9063,7 @@ dissect_ansi_map_TriggerType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_ansi_map_TriggerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 390 "../../asn1/ansi_map/ansi_map.cnf"
+#line 390 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -9081,7 +9081,7 @@ dissect_ansi_map_TriggerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_WINOperationsCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 398 "../../asn1/ansi_map/ansi_map.cnf"
+#line 398 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -9167,7 +9167,7 @@ dissect_ansi_map_LocationRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_ansi_map_ControlNetworkID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 413 "../../asn1/ansi_map/ansi_map.cnf"
+#line 413 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -9321,7 +9321,7 @@ dissect_ansi_map_MSInactive(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ansi_map_OriginationTriggers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 247 "../../asn1/ansi_map/ansi_map.cnf"
+#line 247 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -9514,7 +9514,7 @@ dissect_ansi_map_AuthorizationDenied(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_ansi_map_AuthorizationPeriod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 81 "../../asn1/ansi_map/ansi_map.cnf"
+#line 81 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -9533,7 +9533,7 @@ dissect_ansi_map_AuthorizationPeriod(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_ansi_map_DeniedAuthorizationPeriod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 151 "../../asn1/ansi_map/ansi_map.cnf"
+#line 151 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -9561,7 +9561,7 @@ dissect_ansi_map_AuthenticationCapability(gboolean implicit_tag _U_, tvbuff_t *t
static int
dissect_ansi_map_CallingFeaturesIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 98 "../../asn1/ansi_map/ansi_map.cnf"
+#line 98 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -9639,7 +9639,7 @@ dissect_ansi_map_RestrictionDigits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_SMS_OriginationRestrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 314 "../../asn1/ansi_map/ansi_map.cnf"
+#line 314 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -10097,7 +10097,7 @@ dissect_ansi_map_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_ControlChannelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 143 "../../asn1/ansi_map/ansi_map.cnf"
+#line 143 "./asn1/ansi_map/ansi_map.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -10627,7 +10627,7 @@ dissect_ansi_map_RoutingRequestRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_map_SMS_BearerData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 280 "../../asn1/ansi_map/ansi_map.cnf"
+#line 280 "./asn1/ansi_map/ansi_map.cnf"
int length;
SMS_BearerData_tvb = NULL;
@@ -10671,7 +10671,7 @@ dissect_ansi_map_SMS_BearerData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_ansi_map_SMS_TeleserviceIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 323 "../../asn1/ansi_map/ansi_map.cnf"
+#line 323 "./asn1/ansi_map/ansi_map.cnf"
int length;
tvbuff_t *parameter_tvb = NULL;
@@ -15278,7 +15278,7 @@ dissect_ansi_map_QualificationRequest2Res(gboolean implicit_tag _U_, tvbuff_t *t
/*--- End of included file: packet-ansi_map-fn.c ---*/
-#line 3633 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 3633 "./asn1/ansi_map/packet-ansi_map-template.c"
/*
* 6.5.2.dk N.S0013-0 v 1.0,X.S0004-550-E v1.0 2.301
@@ -17036,7 +17036,7 @@ void proto_register_ansi_map(void) {
/*--- Included file: packet-ansi_map-hfarr.c ---*/
-#line 1 "../../asn1/ansi_map/packet-ansi_map-hfarr.c"
+#line 1 "./asn1/ansi_map/packet-ansi_map-hfarr.c"
{ &hf_ansi_map_electronicSerialNumber,
{ "electronicSerialNumber", "ansi_map.electronicSerialNumber",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -19227,7 +19227,7 @@ void proto_register_ansi_map(void) {
NULL, HFILL }},
/*--- End of included file: packet-ansi_map-hfarr.c ---*/
-#line 5389 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 5389 "./asn1/ansi_map/packet-ansi_map-template.c"
};
/* List of subtrees */
@@ -19262,7 +19262,7 @@ void proto_register_ansi_map(void) {
&ett_systemcapabilities,
/*--- Included file: packet-ansi_map-ettarr.c ---*/
-#line 1 "../../asn1/ansi_map/packet-ansi_map-ettarr.c"
+#line 1 "./asn1/ansi_map/packet-ansi_map-ettarr.c"
&ett_ansi_map_AuthenticationDirective_U,
&ett_ansi_map_AuthenticationDirectiveRes_U,
&ett_ansi_map_AuthenticationDirectiveForward_U,
@@ -19488,7 +19488,7 @@ void proto_register_ansi_map(void) {
&ett_ansi_map_ReturnData,
/*--- End of included file: packet-ansi_map-ettarr.c ---*/
-#line 5422 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 5422 "./asn1/ansi_map/packet-ansi_map-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-ansi_map.h b/epan/dissectors/packet-ansi_map.h
index 7e8f89dec1..4f29e4562b 100644
--- a/epan/dissectors/packet-ansi_map.h
+++ b/epan/dissectors/packet-ansi_map.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ansi_map.h */
-/* ../../tools/asn2wrs.py -b -p ansi_map -c ./ansi_map.cnf -s ./packet-ansi_map-template -D . -O ../../epan/dissectors ansi_map.asn */
+/* asn2wrs.py -b -p ansi_map -c ./ansi_map.cnf -s ./packet-ansi_map-template -D . -O ../.. ansi_map.asn */
/* Input file: packet-ansi_map-template.h */
-#line 1 "../../asn1/ansi_map/packet-ansi_map-template.h"
+#line 1 "./asn1/ansi_map/packet-ansi_map-template.h"
/* packet-ansi_map.h
* Routines for ansi_map packet dissection
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
diff --git a/epan/dissectors/packet-ansi_tcap.c b/epan/dissectors/packet-ansi_tcap.c
index c4512d164c..6e5960104d 100644
--- a/epan/dissectors/packet-ansi_tcap.c
+++ b/epan/dissectors/packet-ansi_tcap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ansi_tcap.c */
-/* ../../tools/asn2wrs.py -b -p ansi_tcap -c ./ansi_tcap.cnf -s ./packet-ansi_tcap-template -D . -O ../../epan/dissectors TCAP-Remote-Operations-Information-Objects.asn TCAPPackage.asn */
+/* asn2wrs.py -b -p ansi_tcap -c ./ansi_tcap.cnf -s ./packet-ansi_tcap-template -D . -O ../.. TCAP-Remote-Operations-Information-Objects.asn TCAPPackage.asn */
/* Input file: packet-ansi_tcap-template.c */
-#line 1 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 1 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
/* packet-ansi_tcap-template.c
* Routines for ANSI TCAP
* Copyright 2007 Anders Broman <anders.broman@ericsson.com>
@@ -71,7 +71,7 @@ static int hf_ansi_tcap_op_specifier = -1;
/*--- Included file: packet-ansi_tcap-hf.c ---*/
-#line 1 "../../asn1/ansi_tcap/packet-ansi_tcap-hf.c"
+#line 1 "./asn1/ansi_tcap/packet-ansi_tcap-hf.c"
static int hf_ansi_tcap_national = -1; /* T_national */
static int hf_ansi_tcap_private = -1; /* T_private */
static int hf_ansi_tcap_national_01 = -1; /* INTEGER_M128_127 */
@@ -125,7 +125,7 @@ static int hf_ansi_tcap_paramSequence = -1; /* T_paramSequence */
static int hf_ansi_tcap_paramSet = -1; /* T_paramSet */
/*--- End of included file: packet-ansi_tcap-hf.c ---*/
-#line 65 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 65 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
/* Initialize the subtree pointers */
static gint ett_tcap = -1;
@@ -148,7 +148,7 @@ static dissector_table_t ansi_tcap_national_opcode_table; /* National Operation
/*--- Included file: packet-ansi_tcap-ett.c ---*/
-#line 1 "../../asn1/ansi_tcap/packet-ansi_tcap-ett.c"
+#line 1 "./asn1/ansi_tcap/packet-ansi_tcap-ett.c"
static gint ett_ansi_tcap_OperationCode = -1;
static gint ett_ansi_tcap_ErrorCode = -1;
static gint ett_ansi_tcap_PackageType = -1;
@@ -173,7 +173,7 @@ static gint ett_ansi_tcap_T_paramSequence = -1;
static gint ett_ansi_tcap_T_paramSet = -1;
/*--- End of included file: packet-ansi_tcap-ett.c ---*/
-#line 86 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 86 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
#define MAX_SSN 254
@@ -442,12 +442,12 @@ find_tcap_subdissector(tvbuff_t *tvb, asn1_ctx_t *actx, proto_tree *tree){
/*--- Included file: packet-ansi_tcap-fn.c ---*/
-#line 1 "../../asn1/ansi_tcap/packet-ansi_tcap-fn.c"
+#line 1 "./asn1/ansi_tcap/packet-ansi_tcap-fn.c"
static int
dissect_ansi_tcap_T_national(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 22 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 22 "./asn1/ansi_tcap/ansi_tcap.cnf"
proto_tree *subtree;
proto_item *spcifier_item;
int start_offset = offset;
@@ -547,7 +547,7 @@ dissect_ansi_tcap_OperationCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
OperationCode_choice, hf_index, ett_ansi_tcap_OperationCode,
&ansi_tcap_private.d.OperationCode);
-#line 18 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 18 "./asn1/ansi_tcap/ansi_tcap.cnf"
ansi_tcap_private.d.OperationCode_item = actx->created_item;
return offset;
@@ -615,7 +615,7 @@ dissect_ansi_tcap_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ansi_tcap_TransactionID_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 154 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 154 "./asn1/ansi_tcap/ansi_tcap.cnf"
tvbuff_t *next_tvb;
guint8 len;
@@ -724,7 +724,7 @@ dissect_ansi_tcap_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_ansi_tcap_ObjectIDApplicationContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 118 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 118 "./asn1/ansi_tcap/ansi_tcap.cnf"
static const char * oid_str;
@@ -893,7 +893,7 @@ dissect_ansi_tcap_T_componentIDs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_ansi_tcap_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 87 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 87 "./asn1/ansi_tcap/ansi_tcap.cnf"
if(find_tcap_subdissector(tvb, actx, tree))
offset = tvb_reported_length(tvb);
@@ -914,7 +914,7 @@ static const ber_sequence_t Invoke_sequence[] = {
static int
dissect_ansi_tcap_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 93 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 93 "./asn1/ansi_tcap/ansi_tcap.cnf"
ansi_tcap_private.d.pdu = 1;
@@ -939,7 +939,7 @@ dissect_ansi_tcap_T_componentID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_ansi_tcap_T_parameter_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 100 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 100 "./asn1/ansi_tcap/ansi_tcap.cnf"
if(find_tcap_subdissector(tvb, actx, tree))
offset = tvb_reported_length(tvb);
@@ -957,7 +957,7 @@ static const ber_sequence_t ReturnResult_sequence[] = {
static int
dissect_ansi_tcap_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 104 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 104 "./asn1/ansi_tcap/ansi_tcap.cnf"
ansi_tcap_private.d.pdu = 2;
@@ -983,7 +983,7 @@ dissect_ansi_tcap_T_componentID_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ansi_tcap_T_parameter_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 110 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 110 "./asn1/ansi_tcap/ansi_tcap.cnf"
if(find_tcap_subdissector(tvb, actx, tree))
offset = tvb_reported_length(tvb);
@@ -1002,7 +1002,7 @@ static const ber_sequence_t ReturnError_sequence[] = {
static int
dissect_ansi_tcap_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 114 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 114 "./asn1/ansi_tcap/ansi_tcap.cnf"
ansi_tcap_private.d.pdu = 3;
@@ -1195,7 +1195,7 @@ dissect_ansi_tcap_UniTransactionPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_ansi_tcap_T_unidirectional(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 126 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 126 "./asn1/ansi_tcap/ansi_tcap.cnf"
gp_tcapsrt_info->ope=TC_ANSI_ALL;
col_set_str(actx->pinfo->cinfo, COL_INFO, "unidirectional ");
@@ -1225,7 +1225,7 @@ dissect_ansi_tcap_TransactionPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_ansi_tcap_T_queryWithPerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 130 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 130 "./asn1/ansi_tcap/ansi_tcap.cnf"
gp_tcapsrt_info->ope=TC_ANSI_ALL;
col_set_str(actx->pinfo->cinfo, COL_INFO, "queryWithPerm ");
@@ -1239,7 +1239,7 @@ col_set_str(actx->pinfo->cinfo, COL_INFO, "queryWithPerm ");
static int
dissect_ansi_tcap_T_queryWithoutPerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 134 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 134 "./asn1/ansi_tcap/ansi_tcap.cnf"
gp_tcapsrt_info->ope=TC_ANSI_ALL;
col_set_str(actx->pinfo->cinfo, COL_INFO, "queryWithoutPerm ");
@@ -1253,7 +1253,7 @@ col_set_str(actx->pinfo->cinfo, COL_INFO, "queryWithoutPerm ");
static int
dissect_ansi_tcap_T_response(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 138 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 138 "./asn1/ansi_tcap/ansi_tcap.cnf"
gp_tcapsrt_info->ope=TC_ANSI_ALL;
col_set_str(actx->pinfo->cinfo, COL_INFO, "response ");
@@ -1267,7 +1267,7 @@ col_set_str(actx->pinfo->cinfo, COL_INFO, "response ");
static int
dissect_ansi_tcap_T_conversationWithPerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 142 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 142 "./asn1/ansi_tcap/ansi_tcap.cnf"
gp_tcapsrt_info->ope=TC_ANSI_ALL;
col_set_str(actx->pinfo->cinfo, COL_INFO, "conversationWithPerm ");
@@ -1281,7 +1281,7 @@ col_set_str(actx->pinfo->cinfo, COL_INFO, "conversationWithPerm ");
static int
dissect_ansi_tcap_T_conversationWithoutPerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 146 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 146 "./asn1/ansi_tcap/ansi_tcap.cnf"
gp_tcapsrt_info->ope=TC_ANSI_ALL;
col_set_str(actx->pinfo->cinfo, COL_INFO, "conversationWithoutPerm ");
@@ -1377,7 +1377,7 @@ dissect_ansi_tcap_Abort(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_ansi_tcap_T_abort(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 150 "../../asn1/ansi_tcap/ansi_tcap.cnf"
+#line 150 "./asn1/ansi_tcap/ansi_tcap.cnf"
gp_tcapsrt_info->ope=TC_ANSI_ABORT;
col_set_str(actx->pinfo->cinfo, COL_INFO, "Abort ");
@@ -1410,7 +1410,7 @@ dissect_ansi_tcap_PackageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
/*--- End of included file: packet-ansi_tcap-fn.c ---*/
-#line 353 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 353 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
@@ -1548,7 +1548,7 @@ proto_register_ansi_tcap(void)
},
/*--- Included file: packet-ansi_tcap-hfarr.c ---*/
-#line 1 "../../asn1/ansi_tcap/packet-ansi_tcap-hfarr.c"
+#line 1 "./asn1/ansi_tcap/packet-ansi_tcap-hfarr.c"
{ &hf_ansi_tcap_national,
{ "national", "ansi_tcap.national",
FT_INT32, BASE_DEC, NULL, 0,
@@ -1755,7 +1755,7 @@ proto_register_ansi_tcap(void)
NULL, HFILL }},
/*--- End of included file: packet-ansi_tcap-hfarr.c ---*/
-#line 489 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 489 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
};
/* Setup protocol subtree array */
@@ -1768,7 +1768,7 @@ proto_register_ansi_tcap(void)
&ett_ansi_tcap_op_code_nat,
/*--- Included file: packet-ansi_tcap-ettarr.c ---*/
-#line 1 "../../asn1/ansi_tcap/packet-ansi_tcap-ettarr.c"
+#line 1 "./asn1/ansi_tcap/packet-ansi_tcap-ettarr.c"
&ett_ansi_tcap_OperationCode,
&ett_ansi_tcap_ErrorCode,
&ett_ansi_tcap_PackageType,
@@ -1793,7 +1793,7 @@ proto_register_ansi_tcap(void)
&ett_ansi_tcap_T_paramSet,
/*--- End of included file: packet-ansi_tcap-ettarr.c ---*/
-#line 500 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 500 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-ansi_tcap.h b/epan/dissectors/packet-ansi_tcap.h
index 874d5d7151..0f584531eb 100644
--- a/epan/dissectors/packet-ansi_tcap.h
+++ b/epan/dissectors/packet-ansi_tcap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ansi_tcap.h */
-/* ../../tools/asn2wrs.py -b -p ansi_tcap -c ./ansi_tcap.cnf -s ./packet-ansi_tcap-template -D . -O ../../epan/dissectors TCAP-Remote-Operations-Information-Objects.asn TCAPPackage.asn */
+/* asn2wrs.py -b -p ansi_tcap -c ./ansi_tcap.cnf -s ./packet-ansi_tcap-template -D . -O ../.. TCAP-Remote-Operations-Information-Objects.asn TCAPPackage.asn */
/* Input file: packet-ansi_tcap-template.h */
-#line 1 "../../asn1/ansi_tcap/packet-ansi_tcap-template.h"
+#line 1 "./asn1/ansi_tcap/packet-ansi_tcap-template.h"
/* packet-ansi_tcap.h
*
* Copyright 2007 Anders Broman <anders.broman@ericsson.com>
diff --git a/epan/dissectors/packet-atn-cm.c b/epan/dissectors/packet-atn-cm.c
index 23a503da83..a914c33935 100644
--- a/epan/dissectors/packet-atn-cm.c
+++ b/epan/dissectors/packet-atn-cm.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-atn-cm.c */
-/* ../../tools/asn2wrs.py -u -L -p atn-cm -c ./atn-cm.cnf -s ./packet-atn-cm-template -D . -O ../../epan/dissectors atn-cm.asn */
+/* asn2wrs.py -u -L -p atn-cm -c ./atn-cm.cnf -s ./packet-atn-cm-template -D . -O ../.. atn-cm.asn */
/* Input file: packet-atn-cm-template.c */
-#line 1 "../../asn1/atn-cm/packet-atn-cm-template.c"
+#line 1 "./asn1/atn-cm/packet-atn-cm-template.c"
/* packet-atn-cm.c
* By Mathias Guettler <guettler@web.de>
* Copyright 2013
@@ -61,7 +61,7 @@ void proto_reg_handoff_atn_cm(void);
/*--- Included file: packet-atn-cm-hf.c ---*/
-#line 1 "../../asn1/atn-cm/packet-atn-cm-hf.c"
+#line 1 "./asn1/atn-cm/packet-atn-cm-hf.c"
static int hf_atn_cm_CMAircraftMessage_PDU = -1; /* CMAircraftMessage */
static int hf_atn_cm_CMGroundMessage_PDU = -1; /* CMGroundMessage */
static int hf_atn_cm_cmLogonRequest = -1; /* CMLogonRequest */
@@ -104,11 +104,11 @@ static int hf_atn_cm_hours = -1; /* Timehours */
static int hf_atn_cm_minutes = -1; /* Timeminutes */
/*--- End of included file: packet-atn-cm-hf.c ---*/
-#line 55 "../../asn1/atn-cm/packet-atn-cm-template.c"
+#line 55 "./asn1/atn-cm/packet-atn-cm-template.c"
/*--- Included file: packet-atn-cm-ett.c ---*/
-#line 1 "../../asn1/atn-cm/packet-atn-cm-ett.c"
+#line 1 "./asn1/atn-cm/packet-atn-cm-ett.c"
static gint ett_atn_cm_CMAircraftMessage = -1;
static gint ett_atn_cm_CMGroundMessage = -1;
static gint ett_atn_cm_APAddress = -1;
@@ -126,12 +126,12 @@ static gint ett_atn_cm_ShortTsap = -1;
static gint ett_atn_cm_Time = -1;
/*--- End of included file: packet-atn-cm-ett.c ---*/
-#line 57 "../../asn1/atn-cm/packet-atn-cm-template.c"
+#line 57 "./asn1/atn-cm/packet-atn-cm-template.c"
static gint ett_atn_cm = -1;
/*--- Included file: packet-atn-cm-fn.c ---*/
-#line 1 "../../asn1/atn-cm/packet-atn-cm-fn.c"
+#line 1 "./asn1/atn-cm/packet-atn-cm-fn.c"
static int
@@ -629,7 +629,7 @@ static int dissect_CMGroundMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
/*--- End of included file: packet-atn-cm-fn.c ---*/
-#line 60 "../../asn1/atn-cm/packet-atn-cm-template.c"
+#line 60 "./asn1/atn-cm/packet-atn-cm-template.c"
static int proto_atn_cm = -1;
static int
@@ -766,7 +766,7 @@ void proto_register_atn_cm (void)
static hf_register_info hf_atn_cm[] = {
/*--- Included file: packet-atn-cm-hfarr.c ---*/
-#line 1 "../../asn1/atn-cm/packet-atn-cm-hfarr.c"
+#line 1 "./asn1/atn-cm/packet-atn-cm-hfarr.c"
{ &hf_atn_cm_CMAircraftMessage_PDU,
{ "CMAircraftMessage", "atn-cm.CMAircraftMessage",
FT_UINT32, BASE_DEC, VALS(atn_cm_CMAircraftMessage_vals), 0,
@@ -929,12 +929,12 @@ void proto_register_atn_cm (void)
"Timeminutes", HFILL }},
/*--- End of included file: packet-atn-cm-hfarr.c ---*/
-#line 195 "../../asn1/atn-cm/packet-atn-cm-template.c"
+#line 195 "./asn1/atn-cm/packet-atn-cm-template.c"
};
static gint *ett[] = {
/*--- Included file: packet-atn-cm-ettarr.c ---*/
-#line 1 "../../asn1/atn-cm/packet-atn-cm-ettarr.c"
+#line 1 "./asn1/atn-cm/packet-atn-cm-ettarr.c"
&ett_atn_cm_CMAircraftMessage,
&ett_atn_cm_CMGroundMessage,
&ett_atn_cm_APAddress,
@@ -952,7 +952,7 @@ void proto_register_atn_cm (void)
&ett_atn_cm_Time,
/*--- End of included file: packet-atn-cm-ettarr.c ---*/
-#line 198 "../../asn1/atn-cm/packet-atn-cm-template.c"
+#line 198 "./asn1/atn-cm/packet-atn-cm-template.c"
&ett_atn_cm
};
diff --git a/epan/dissectors/packet-atn-cpdlc.c b/epan/dissectors/packet-atn-cpdlc.c
index ad2517579c..933676ad7a 100644
--- a/epan/dissectors/packet-atn-cpdlc.c
+++ b/epan/dissectors/packet-atn-cpdlc.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-atn-cpdlc.c */
-/* ../../tools/asn2wrs.py -u -L -p atn-cpdlc -c ./atn-cpdlc.cnf -s ./packet-atn-cpdlc-template -D . -O ../../epan/dissectors atn-cpdlc.asn */
+/* asn2wrs.py -u -L -p atn-cpdlc -c ./atn-cpdlc.cnf -s ./packet-atn-cpdlc-template -D . -O ../.. atn-cpdlc.asn */
/* Input file: packet-atn-cpdlc-template.c */
-#line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
+#line 1 "./asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
/* packet-atn-cpdlc-template.c
* By Mathias Guettler <guettler@web.de>
* Copyright 2013
@@ -103,7 +103,7 @@ static int dissect_ProtectedAircraftPDUs_PDU(
/*--- Included file: packet-atn-cpdlc-hf.c ---*/
-#line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-hf.c"
+#line 1 "./asn1/atn-cpdlc/packet-atn-cpdlc-hf.c"
static int hf_atn_cpdlc_GroundPDUs_PDU = -1; /* GroundPDUs */
static int hf_atn_cpdlc_AircraftPDUs_PDU = -1; /* AircraftPDUs */
static int hf_atn_cpdlc_ProtectedGroundPDUs_PDU = -1; /* ProtectedGroundPDUs */
@@ -707,11 +707,11 @@ static int hf_atn_cpdlc_windSpeedEnglish = -1; /* WindSpeedEnglish */
static int hf_atn_cpdlc_windSpeedMetric = -1; /* WindSpeedMetric */
/*--- End of included file: packet-atn-cpdlc-hf.c ---*/
-#line 97 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
+#line 97 "./asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
/*--- Included file: packet-atn-cpdlc-ett.c ---*/
-#line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-ett.c"
+#line 1 "./asn1/atn-cpdlc/packet-atn-cpdlc-ett.c"
static gint ett_atn_cpdlc_GroundPDUs = -1;
static gint ett_atn_cpdlc_UplinkMessage = -1;
static gint ett_atn_cpdlc_AircraftPDUs = -1;
@@ -856,12 +856,12 @@ static gint ett_atn_cpdlc_Winds = -1;
static gint ett_atn_cpdlc_WindSpeed = -1;
/*--- End of included file: packet-atn-cpdlc-ett.c ---*/
-#line 99 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
+#line 99 "./asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
static gint ett_atn_cpdlc = -1;
/*--- Included file: packet-atn-cpdlc-fn.c ---*/
-#line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-fn.c"
+#line 1 "./asn1/atn-cpdlc/packet-atn-cpdlc-fn.c"
static const value_string atn_cpdlc_CPDLCUserAbortReason_vals[] = {
{ 0, "undefined" },
@@ -5307,7 +5307,7 @@ static int dissect_ProtectedAircraftPDUs_PDU(tvbuff_t *tvb _U_, packet_info *pin
/*--- End of included file: packet-atn-cpdlc-fn.c ---*/
-#line 102 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
+#line 102 "./asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
/* Wireshark ID of CPDLC protocol */
static int proto_atn_cpdlc = -1;
@@ -5524,7 +5524,7 @@ void proto_register_atn_cpdlc (void)
static hf_register_info hf_atn_cpdlc[] = {
/*--- Included file: packet-atn-cpdlc-hfarr.c ---*/
-#line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-hfarr.c"
+#line 1 "./asn1/atn-cpdlc/packet-atn-cpdlc-hfarr.c"
{ &hf_atn_cpdlc_GroundPDUs_PDU,
{ "GroundPDUs", "atn-cpdlc.GroundPDUs",
FT_UINT32, BASE_DEC, VALS(atn_cpdlc_GroundPDUs_vals), 0,
@@ -7931,13 +7931,13 @@ void proto_register_atn_cpdlc (void)
NULL, HFILL }},
/*--- End of included file: packet-atn-cpdlc-hfarr.c ---*/
-#line 317 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
+#line 317 "./asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
};
static gint *ett[] = {
/*--- Included file: packet-atn-cpdlc-ettarr.c ---*/
-#line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-ettarr.c"
+#line 1 "./asn1/atn-cpdlc/packet-atn-cpdlc-ettarr.c"
&ett_atn_cpdlc_GroundPDUs,
&ett_atn_cpdlc_UplinkMessage,
&ett_atn_cpdlc_AircraftPDUs,
@@ -8082,7 +8082,7 @@ void proto_register_atn_cpdlc (void)
&ett_atn_cpdlc_WindSpeed,
/*--- End of included file: packet-atn-cpdlc-ettarr.c ---*/
-#line 321 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
+#line 321 "./asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
&ett_atn_cpdlc
};
diff --git a/epan/dissectors/packet-atn-ulcs.c b/epan/dissectors/packet-atn-ulcs.c
index bb2a506880..f001e3179a 100644
--- a/epan/dissectors/packet-atn-ulcs.c
+++ b/epan/dissectors/packet-atn-ulcs.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-atn-ulcs.c */
-/* ../../tools/asn2wrs.py -u -L -p atn-ulcs -c ./atn-ulcs.cnf -s ./packet-atn-ulcs-template -D . -O ../../epan/dissectors atn-ulcs.asn */
+/* asn2wrs.py -u -L -p atn-ulcs -c ./atn-ulcs.cnf -s ./packet-atn-ulcs-template -D . -O ../.. atn-ulcs.asn */
/* Input file: packet-atn-ulcs-template.c */
-#line 1 "../../asn1/atn-ulcs/packet-atn-ulcs-template.c"
+#line 1 "./asn1/atn-ulcs/packet-atn-ulcs-template.c"
/* packet-atn-ulcs.c
* By Mathias Guettler <guettler@web.de>
* Copyright 2013
@@ -196,7 +196,7 @@ static gint dissect_atn_ulcs(
/*--- Included file: packet-atn-ulcs-hf.c ---*/
-#line 1 "../../asn1/atn-ulcs/packet-atn-ulcs-hf.c"
+#line 1 "./asn1/atn-ulcs/packet-atn-ulcs-hf.c"
static int hf_atn_ulcs_Fully_encoded_data_PDU = -1; /* Fully_encoded_data */
static int hf_atn_ulcs_ACSE_apdu_PDU = -1; /* ACSE_apdu */
static int hf_atn_ulcs_Fully_encoded_data_item = -1; /* PDV_list */
@@ -272,11 +272,11 @@ static int hf_atn_ulcs_ACSE_requirements_authentication = -1;
static int hf_atn_ulcs_ACSE_requirements_application_context_negotiation = -1;
/*--- End of included file: packet-atn-ulcs-hf.c ---*/
-#line 190 "../../asn1/atn-ulcs/packet-atn-ulcs-template.c"
+#line 190 "./asn1/atn-ulcs/packet-atn-ulcs-template.c"
/*--- Included file: packet-atn-ulcs-ett.c ---*/
-#line 1 "../../asn1/atn-ulcs/packet-atn-ulcs-ett.c"
+#line 1 "./asn1/atn-ulcs/packet-atn-ulcs-ett.c"
static gint ett_atn_ulcs_Fully_encoded_data = -1;
static gint ett_atn_ulcs_PDV_list = -1;
static gint ett_atn_ulcs_T_presentation_data_values = -1;
@@ -304,13 +304,13 @@ static gint ett_atn_ulcs_RelativeDistinguishedName = -1;
static gint ett_atn_ulcs_AttributeTypeAndValue = -1;
/*--- End of included file: packet-atn-ulcs-ett.c ---*/
-#line 192 "../../asn1/atn-ulcs/packet-atn-ulcs-template.c"
+#line 192 "./asn1/atn-ulcs/packet-atn-ulcs-template.c"
static gint ett_atn_ulcs = -1;
static gint ett_atn_acse = -1;
/*--- Included file: packet-atn-ulcs-fn.c ---*/
-#line 1 "../../asn1/atn-ulcs/packet-atn-ulcs-fn.c"
+#line 1 "./asn1/atn-ulcs/packet-atn-ulcs-fn.c"
static int
@@ -1595,7 +1595,7 @@ static int dissect_ACSE_apdu_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- End of included file: packet-atn-ulcs-fn.c ---*/
-#line 196 "../../asn1/atn-ulcs/packet-atn-ulcs-template.c"
+#line 196 "./asn1/atn-ulcs/packet-atn-ulcs-template.c"
#if 0
/* re-implementing external data: packet-per.c */
@@ -2189,7 +2189,7 @@ void proto_register_atn_ulcs (void)
static hf_register_info hf_atn_ulcs[] = {
/*--- Included file: packet-atn-ulcs-hfarr.c ---*/
-#line 1 "../../asn1/atn-ulcs/packet-atn-ulcs-hfarr.c"
+#line 1 "./asn1/atn-ulcs/packet-atn-ulcs-hfarr.c"
{ &hf_atn_ulcs_Fully_encoded_data_PDU,
{ "Fully-encoded-data", "atn-ulcs.Fully_encoded_data",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -2480,7 +2480,7 @@ void proto_register_atn_ulcs (void)
NULL, HFILL }},
/*--- End of included file: packet-atn-ulcs-hfarr.c ---*/
-#line 788 "../../asn1/atn-ulcs/packet-atn-ulcs-template.c"
+#line 788 "./asn1/atn-ulcs/packet-atn-ulcs-template.c"
{&hf_atn_ses_type,
{ "SPDU Type",
"atn-ulcs.ses.type",
@@ -2538,7 +2538,7 @@ void proto_register_atn_ulcs (void)
static gint *ett[] = {
/*--- Included file: packet-atn-ulcs-ettarr.c ---*/
-#line 1 "../../asn1/atn-ulcs/packet-atn-ulcs-ettarr.c"
+#line 1 "./asn1/atn-ulcs/packet-atn-ulcs-ettarr.c"
&ett_atn_ulcs_Fully_encoded_data,
&ett_atn_ulcs_PDV_list,
&ett_atn_ulcs_T_presentation_data_values,
@@ -2566,7 +2566,7 @@ void proto_register_atn_ulcs (void)
&ett_atn_ulcs_AttributeTypeAndValue,
/*--- End of included file: packet-atn-ulcs-ettarr.c ---*/
-#line 844 "../../asn1/atn-ulcs/packet-atn-ulcs-template.c"
+#line 844 "./asn1/atn-ulcs/packet-atn-ulcs-template.c"
&ett_atn_ses,
&ett_atn_pres,
&ett_atn_acse,
diff --git a/epan/dissectors/packet-atn-ulcs.h b/epan/dissectors/packet-atn-ulcs.h
index b5e2fac636..3a6a22f9f7 100644
--- a/epan/dissectors/packet-atn-ulcs.h
+++ b/epan/dissectors/packet-atn-ulcs.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-atn-ulcs.h */
-/* ../../tools/asn2wrs.py -u -L -p atn-ulcs -c ./atn-ulcs.cnf -s ./packet-atn-ulcs-template -D . -O ../../epan/dissectors atn-ulcs.asn */
+/* asn2wrs.py -u -L -p atn-ulcs -c ./atn-ulcs.cnf -s ./packet-atn-ulcs-template -D . -O ../.. atn-ulcs.asn */
/* Input file: packet-atn-ulcs-template.h */
-#line 1 "../../asn1/atn-ulcs/packet-atn-ulcs-template.h"
+#line 1 "./asn1/atn-ulcs/packet-atn-ulcs-template.h"
/* packet-atn-ulcs.h
* Definitions for atn packet disassembly structures and routines
*
diff --git a/epan/dissectors/packet-c1222.c b/epan/dissectors/packet-c1222.c
index 9bbe5bbdbe..9dda73cdd2 100644
--- a/epan/dissectors/packet-c1222.c
+++ b/epan/dissectors/packet-c1222.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-c1222.c */
-/* ../../tools/asn2wrs.py -b -p c1222 -c ./c1222.cnf -s ./packet-c1222-template -D . -O ../../epan/dissectors c1222.asn */
+/* asn2wrs.py -b -p c1222 -c ./c1222.cnf -s ./packet-c1222-template -D . -O ../.. c1222.asn */
/* Input file: packet-c1222-template.c */
-#line 1 "../../asn1/c1222/packet-c1222-template.c"
+#line 1 "./asn1/c1222/packet-c1222-template.c"
/* packet-c1222.c
* Routines for ANSI C12.22 packet dissection
* Copyright 2010, Edward J. Beroset, edward.beroset@elster.com
@@ -90,7 +90,7 @@ static int proto_c1222 = -1;
/*--- Included file: packet-c1222-hf.c ---*/
-#line 1 "../../asn1/c1222/packet-c1222-hf.c"
+#line 1 "./asn1/c1222/packet-c1222-hf.c"
static int hf_c1222_MESSAGE_PDU = -1; /* MESSAGE */
static int hf_c1222_aSO_context = -1; /* ASO_qualifier */
static int hf_c1222_called_AP_title = -1; /* Called_AP_title */
@@ -118,7 +118,7 @@ static int hf_c1222_c1221_auth_request = -1; /* OCTET_STRING_SIZE_1_255 */
static int hf_c1222_c1221_auth_response = -1; /* OCTET_STRING_SIZE_CONSTR002 */
/*--- End of included file: packet-c1222-hf.c ---*/
-#line 84 "../../asn1/c1222/packet-c1222-template.c"
+#line 84 "./asn1/c1222/packet-c1222-template.c"
/* These are the EPSEM pieces */
/* first, the flag components */
static int hf_c1222_epsem_flags = -1;
@@ -213,7 +213,7 @@ static guint32 iv_element_len = 0;
/*--- Included file: packet-c1222-ett.c ---*/
-#line 1 "../../asn1/c1222/packet-c1222-ett.c"
+#line 1 "./asn1/c1222/packet-c1222-ett.c"
static gint ett_c1222_MESSAGE_U = -1;
static gint ett_c1222_Called_AP_title = -1;
static gint ett_c1222_Calling_AP_title = -1;
@@ -224,7 +224,7 @@ static gint ett_c1222_Calling_authentication_value_c1222_U = -1;
static gint ett_c1222_Calling_authentication_value_c1221_U = -1;
/*--- End of included file: packet-c1222-ett.c ---*/
-#line 177 "../../asn1/c1222/packet-c1222-template.c"
+#line 177 "./asn1/c1222/packet-c1222-template.c"
static expert_field ei_c1222_command_truncated = EI_INIT;
static expert_field ei_c1222_bad_checksum = EI_INIT;
@@ -1099,12 +1099,12 @@ dissect_epsem(tvbuff_t *tvb, int offset, guint32 len, packet_info *pinfo, proto_
/*--- Included file: packet-c1222-fn.c ---*/
-#line 1 "../../asn1/c1222/packet-c1222-fn.c"
+#line 1 "./asn1/c1222/packet-c1222-fn.c"
static int
dissect_c1222_ASO_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 50 "../../asn1/c1222/c1222.cnf"
+#line 50 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
@@ -1148,7 +1148,7 @@ static const ber_choice_t Called_AP_title_choice[] = {
static int
dissect_c1222_Called_AP_title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 55 "../../asn1/c1222/c1222.cnf"
+#line 55 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_ber_choice(actx, tree, tvb, offset,
Called_AP_title_choice, hf_index, ett_c1222_Called_AP_title,
@@ -1175,7 +1175,7 @@ dissect_c1222_AP_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_c1222_Called_AP_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 60 "../../asn1/c1222/c1222.cnf"
+#line 60 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_c1222_AP_invocation_id(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -1201,7 +1201,7 @@ static const ber_choice_t Calling_AP_title_choice[] = {
static int
dissect_c1222_Calling_AP_title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 85 "../../asn1/c1222/c1222.cnf"
+#line 85 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_ber_choice(actx, tree, tvb, offset,
Calling_AP_title_choice, hf_index, ett_c1222_Calling_AP_title,
@@ -1228,7 +1228,7 @@ dissect_c1222_AE_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_c1222_Calling_AE_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 65 "../../asn1/c1222/c1222.cnf"
+#line 65 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_c1222_AE_qualifier(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -1243,7 +1243,7 @@ dissect_c1222_Calling_AE_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_c1222_Calling_AP_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 70 "../../asn1/c1222/c1222.cnf"
+#line 70 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_c1222_AP_invocation_id(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -1258,7 +1258,7 @@ dissect_c1222_Calling_AP_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_c1222_Mechanism_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 75 "../../asn1/c1222/c1222.cnf"
+#line 75 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
@@ -1283,7 +1283,7 @@ dissect_c1222_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_c1222_Key_id_element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "../../asn1/c1222/c1222.cnf"
+#line 90 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1299,7 +1299,7 @@ dissect_c1222_Key_id_element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_c1222_Iv_element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 95 "../../asn1/c1222/c1222.cnf"
+#line 95 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1473,7 +1473,7 @@ dissect_c1222_Calling_authentication_value_U(gboolean implicit_tag _U_, tvbuff_t
static int
dissect_c1222_Calling_authentication_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 80 "../../asn1/c1222/c1222.cnf"
+#line 80 "./asn1/c1222/c1222.cnf"
FILL_START;
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_CON, 2, TRUE, dissect_c1222_Calling_authentication_value_U);
@@ -1489,7 +1489,7 @@ dissect_c1222_Calling_authentication_value(gboolean implicit_tag _U_, tvbuff_t *
static int
dissect_c1222_User_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 26 "../../asn1/c1222/c1222.cnf"
+#line 26 "./asn1/c1222/c1222.cnf"
gint8 end_device_class;
gboolean pc, ind;
gint32 tag;
@@ -1544,7 +1544,7 @@ dissect_c1222_MESSAGE_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_c1222_MESSAGE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 100 "../../asn1/c1222/c1222.cnf"
+#line 100 "./asn1/c1222/c1222.cnf"
/**/#ifdef HAVE_LIBGCRYPT
clear_canon();
/**/#endif
@@ -1568,7 +1568,7 @@ static int dissect_MESSAGE_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-c1222-fn.c ---*/
-#line 1050 "../../asn1/c1222/packet-c1222-template.c"
+#line 1050 "./asn1/c1222/packet-c1222-template.c"
/**
* Dissects a a full (reassembled) C12.22 message.
@@ -1851,7 +1851,7 @@ void proto_register_c1222(void) {
},
/*--- Included file: packet-c1222-hfarr.c ---*/
-#line 1 "../../asn1/c1222/packet-c1222-hfarr.c"
+#line 1 "./asn1/c1222/packet-c1222-hfarr.c"
{ &hf_c1222_MESSAGE_PDU,
{ "MESSAGE", "c1222.MESSAGE_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1954,7 +1954,7 @@ void proto_register_c1222(void) {
"OCTET_STRING_SIZE_CONSTR002", HFILL }},
/*--- End of included file: packet-c1222-hfarr.c ---*/
-#line 1331 "../../asn1/c1222/packet-c1222-template.c"
+#line 1331 "./asn1/c1222/packet-c1222-template.c"
};
/* List of subtrees */
@@ -1966,7 +1966,7 @@ void proto_register_c1222(void) {
&ett_c1222_cmd,
/*--- Included file: packet-c1222-ettarr.c ---*/
-#line 1 "../../asn1/c1222/packet-c1222-ettarr.c"
+#line 1 "./asn1/c1222/packet-c1222-ettarr.c"
&ett_c1222_MESSAGE_U,
&ett_c1222_Called_AP_title,
&ett_c1222_Calling_AP_title,
@@ -1977,7 +1977,7 @@ void proto_register_c1222(void) {
&ett_c1222_Calling_authentication_value_c1221_U,
/*--- End of included file: packet-c1222-ettarr.c ---*/
-#line 1341 "../../asn1/c1222/packet-c1222-template.c"
+#line 1341 "./asn1/c1222/packet-c1222-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-c1222.h b/epan/dissectors/packet-c1222.h
index 7902e51e55..6a2b0e70fb 100644
--- a/epan/dissectors/packet-c1222.h
+++ b/epan/dissectors/packet-c1222.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-c1222.h */
-/* ../../tools/asn2wrs.py -b -p c1222 -c ./c1222.cnf -s ./packet-c1222-template -D . -O ../../epan/dissectors c1222.asn */
+/* asn2wrs.py -b -p c1222 -c ./c1222.cnf -s ./packet-c1222-template -D . -O ../.. c1222.asn */
/* Input file: packet-c1222-template.h */
-#line 1 "../../asn1/c1222/packet-c1222-template.h"
+#line 1 "./asn1/c1222/packet-c1222-template.h"
/* packet-c1222.h
* Routines for ANSI C12.22 packet dissection
* Copyright 2010, Edward J. Beroset, edward.beroset@elster.com
diff --git a/epan/dissectors/packet-camel.c b/epan/dissectors/packet-camel.c
index a7d3c145cf..742802d812 100644
--- a/epan/dissectors/packet-camel.c
+++ b/epan/dissectors/packet-camel.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-camel.c */
-/* ../../tools/asn2wrs.py -b -L -p camel -c ./camel.cnf -s ./packet-camel-template -D . -O ../../epan/dissectors CAP-object-identifiers.asn CAP-classes.asn CAP-datatypes.asn CAP-errorcodes.asn CAP-errortypes.asn CAP-operationcodes.asn CAP-GPRS-ReferenceNumber.asn CAP-gsmSCF-gsmSRF-ops-args.asn CAP-gsmSSF-gsmSCF-ops-args.asn CAP-gprsSSF-gsmSCF-ops-args.asn CAP-SMS-ops-args.asn CAP-U-ABORT-Data.asn CamelV2diff.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
+/* asn2wrs.py -b -L -p camel -c ./camel.cnf -s ./packet-camel-template -D . -O ../.. CAP-object-identifiers.asn CAP-classes.asn CAP-datatypes.asn CAP-errorcodes.asn CAP-errortypes.asn CAP-operationcodes.asn CAP-GPRS-ReferenceNumber.asn CAP-gsmSCF-gsmSRF-ops-args.asn CAP-gsmSSF-gsmSCF-ops-args.asn CAP-gprsSSF-gsmSCF-ops-args.asn CAP-SMS-ops-args.asn CAP-U-ABORT-Data.asn CamelV2diff.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
/* Input file: packet-camel-template.c */
-#line 1 "../../asn1/camel/packet-camel-template.c"
+#line 1 "./asn1/camel/packet-camel-template.c"
/* packet-camel-template.c
* Routines for Camel
* Copyright 2004, Tim Endean <endeant@hotmail.com>
@@ -120,7 +120,7 @@ static int hf_camelsrt_DeltaTime80=-1;
/*--- Included file: packet-camel-hf.c ---*/
-#line 1 "../../asn1/camel/packet-camel-hf.c"
+#line 1 "./asn1/camel/packet-camel-hf.c"
static int hf_camel_PAR_cancelFailed_PDU = -1; /* PAR_cancelFailed */
static int hf_camel_PAR_requestedInfoError_PDU = -1; /* PAR_requestedInfoError */
static int hf_camel_UnavailableNetworkResource_PDU = -1; /* UnavailableNetworkResource */
@@ -609,7 +609,7 @@ static int hf_camel_present = -1; /* INTEGER */
static int hf_camel_InvokeId_present = -1; /* InvokeId_present */
/*--- End of included file: packet-camel-hf.c ---*/
-#line 114 "../../asn1/camel/packet-camel-template.c"
+#line 114 "./asn1/camel/packet-camel-template.c"
static struct camelsrt_info_t * gp_camelsrt_info;
@@ -643,7 +643,7 @@ static gint ett_camel_additionalcallingpartynumber = -1;
/*--- Included file: packet-camel-ett.c ---*/
-#line 1 "../../asn1/camel/packet-camel-ett.c"
+#line 1 "./asn1/camel/packet-camel-ett.c"
static gint ett_camel_AChChargingAddress = -1;
static gint ett_camel_AOCBeforeAnswer = -1;
static gint ett_camel_AOCGPRS = -1;
@@ -842,7 +842,7 @@ static gint ett_camel_T_problem = -1;
static gint ett_camel_InvokeId = -1;
/*--- End of included file: packet-camel-ett.c ---*/
-#line 146 "../../asn1/camel/packet-camel-template.c"
+#line 146 "./asn1/camel/packet-camel-template.c"
static expert_field ei_camel_unknown_invokeData = EI_INIT;
static expert_field ei_camel_unknown_returnResultData = EI_INIT;
@@ -1006,7 +1006,7 @@ static const value_string camel_ectTreatmentIndicator_values[] = {
/*--- Included file: packet-camel-val.h ---*/
-#line 1 "../../asn1/camel/packet-camel-val.h"
+#line 1 "./asn1/camel/packet-camel-val.h"
#define tc_Messages "0.0.17.773.2.1.3"
#define tc_NotationExtensions "0.0.17.775.2.4.1"
#define ros_InformationObjects "2.4.5.0"
@@ -1189,11 +1189,11 @@ static const value_string camel_ectTreatmentIndicator_values[] = {
#define noInvokeId NULL
/*--- End of included file: packet-camel-val.h ---*/
-#line 308 "../../asn1/camel/packet-camel-template.c"
+#line 308 "./asn1/camel/packet-camel-template.c"
/*--- Included file: packet-camel-table.c ---*/
-#line 1 "../../asn1/camel/packet-camel-table.c"
+#line 1 "./asn1/camel/packet-camel-table.c"
/* CAMEL OPERATIONS */
const value_string camel_opr_code_strings[] = {
@@ -1279,7 +1279,7 @@ static const value_string camel_err_code_string_vals[] = {
/*--- End of included file: packet-camel-table.c ---*/
-#line 310 "../../asn1/camel/packet-camel-template.c"
+#line 310 "./asn1/camel/packet-camel-template.c"
/*
* DEBUG fonctions
@@ -1382,7 +1382,7 @@ static int dissect_camel_InitialDPArgExtensionV2(gboolean implicit_tag _U_, tvbu
/*--- Included file: packet-camel-fn.c ---*/
-#line 1 "../../asn1/camel/packet-camel-fn.c"
+#line 1 "./asn1/camel/packet-camel-fn.c"
static int
@@ -7163,11 +7163,11 @@ static int dissect_CAP_U_ABORT_REASON_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
/*--- End of included file: packet-camel-fn.c ---*/
-#line 411 "../../asn1/camel/packet-camel-template.c"
+#line 411 "./asn1/camel/packet-camel-template.c"
/*--- Included file: packet-camel-table2.c ---*/
-#line 1 "../../asn1/camel/packet-camel-table2.c"
+#line 1 "./asn1/camel/packet-camel-table2.c"
static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
@@ -7370,7 +7370,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
/*--- End of included file: packet-camel-table2.c ---*/
-#line 413 "../../asn1/camel/packet-camel-template.c"
+#line 413 "./asn1/camel/packet-camel-template.c"
/*
* Functions needed for Hash-Table
@@ -8290,13 +8290,13 @@ void proto_reg_handoff_camel(void) {
/*--- Included file: packet-camel-dis-tab.c ---*/
-#line 1 "../../asn1/camel/packet-camel-dis-tab.c"
+#line 1 "./asn1/camel/packet-camel-dis-tab.c"
register_ber_oid_dissector("0.4.0.0.1.1.5.2", dissect_CAP_GPRS_ReferenceNumber_PDU, proto_camel, "id-CAP-GPRS-ReferenceNumber");
register_ber_oid_dissector("0.4.0.0.1.1.2.2", dissect_CAP_U_ABORT_REASON_PDU, proto_camel, "id-CAP-U-ABORT-Reason");
/*--- End of included file: packet-camel-dis-tab.c ---*/
-#line 1331 "../../asn1/camel/packet-camel-template.c"
+#line 1331 "./asn1/camel/packet-camel-template.c"
} else {
range_foreach(ssn_range, range_delete_callback);
g_free(ssn_range);
@@ -8471,7 +8471,7 @@ void proto_register_camel(void) {
#endif
/*--- Included file: packet-camel-hfarr.c ---*/
-#line 1 "../../asn1/camel/packet-camel-hfarr.c"
+#line 1 "./asn1/camel/packet-camel-hfarr.c"
{ &hf_camel_PAR_cancelFailed_PDU,
{ "PAR-cancelFailed", "camel.PAR_cancelFailed_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -10418,7 +10418,7 @@ void proto_register_camel(void) {
"InvokeId_present", HFILL }},
/*--- End of included file: packet-camel-hfarr.c ---*/
-#line 1504 "../../asn1/camel/packet-camel-template.c"
+#line 1504 "./asn1/camel/packet-camel-template.c"
};
/* List of subtrees */
@@ -10437,7 +10437,7 @@ void proto_register_camel(void) {
/*--- Included file: packet-camel-ettarr.c ---*/
-#line 1 "../../asn1/camel/packet-camel-ettarr.c"
+#line 1 "./asn1/camel/packet-camel-ettarr.c"
&ett_camel_AChChargingAddress,
&ett_camel_AOCBeforeAnswer,
&ett_camel_AOCGPRS,
@@ -10636,7 +10636,7 @@ void proto_register_camel(void) {
&ett_camel_InvokeId,
/*--- End of included file: packet-camel-ettarr.c ---*/
-#line 1521 "../../asn1/camel/packet-camel-template.c"
+#line 1521 "./asn1/camel/packet-camel-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-camel.h b/epan/dissectors/packet-camel.h
index 61137a194a..fafbb988eb 100644
--- a/epan/dissectors/packet-camel.h
+++ b/epan/dissectors/packet-camel.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-camel.h */
-/* ../../tools/asn2wrs.py -b -L -p camel -c ./camel.cnf -s ./packet-camel-template -D . -O ../../epan/dissectors CAP-object-identifiers.asn CAP-classes.asn CAP-datatypes.asn CAP-errorcodes.asn CAP-errortypes.asn CAP-operationcodes.asn CAP-GPRS-ReferenceNumber.asn CAP-gsmSCF-gsmSRF-ops-args.asn CAP-gsmSSF-gsmSCF-ops-args.asn CAP-gprsSSF-gsmSCF-ops-args.asn CAP-SMS-ops-args.asn CAP-U-ABORT-Data.asn CamelV2diff.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
+/* asn2wrs.py -b -L -p camel -c ./camel.cnf -s ./packet-camel-template -D . -O ../.. CAP-object-identifiers.asn CAP-classes.asn CAP-datatypes.asn CAP-errorcodes.asn CAP-errortypes.asn CAP-operationcodes.asn CAP-GPRS-ReferenceNumber.asn CAP-gsmSCF-gsmSRF-ops-args.asn CAP-gsmSSF-gsmSCF-ops-args.asn CAP-gprsSSF-gsmSCF-ops-args.asn CAP-SMS-ops-args.asn CAP-U-ABORT-Data.asn CamelV2diff.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
/* Input file: packet-camel-template.h */
-#line 1 "../../asn1/camel/packet-camel-template.h"
+#line 1 "./asn1/camel/packet-camel-template.h"
/* packet-camel-template.h
* Routines for Camel
* Copyright 2004, Tim Endean <endeant@hotmail.com>
diff --git a/epan/dissectors/packet-cdt.c b/epan/dissectors/packet-cdt.c
index b7c280e8a7..7117e04954 100644
--- a/epan/dissectors/packet-cdt.c
+++ b/epan/dissectors/packet-cdt.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-cdt.c */
-/* ../../tools/asn2wrs.py -b -p cdt -c ./cdt.cnf -s ./packet-cdt-template -D . -O ../../epan/dissectors cdt.asn */
+/* asn2wrs.py -b -p cdt -c ./cdt.cnf -s ./packet-cdt-template -D . -O ../.. cdt.asn */
/* Input file: packet-cdt-template.c */
-#line 1 "../../asn1/cdt/packet-cdt-template.c"
+#line 1 "./asn1/cdt/packet-cdt-template.c"
/* packet-cdt.c
*
* Routines for Compressed Data Type packet dissection.
@@ -67,7 +67,7 @@ static guint32 content_type = 0;
static int proto_cdt = -1;
/*--- Included file: packet-cdt-hf.c ---*/
-#line 1 "../../asn1/cdt/packet-cdt-hf.c"
+#line 1 "./asn1/cdt/packet-cdt-hf.c"
static int hf_cdt_CompressedData_PDU = -1; /* CompressedData */
static int hf_cdt_compressionAlgorithm = -1; /* CompressionAlgorithmIdentifier */
static int hf_cdt_compressedContentInfo = -1; /* CompressedContentInfo */
@@ -79,28 +79,28 @@ static int hf_cdt_contentType_OID = -1; /* T_contentType_OID */
static int hf_cdt_compressedContent = -1; /* CompressedContent */
/*--- End of included file: packet-cdt-hf.c ---*/
-#line 61 "../../asn1/cdt/packet-cdt-template.c"
+#line 61 "./asn1/cdt/packet-cdt-template.c"
static dissector_handle_t data_handle = NULL;
/* Initialize the subtree pointers */
/*--- Included file: packet-cdt-ett.c ---*/
-#line 1 "../../asn1/cdt/packet-cdt-ett.c"
+#line 1 "./asn1/cdt/packet-cdt-ett.c"
static gint ett_cdt_CompressedData = -1;
static gint ett_cdt_CompressionAlgorithmIdentifier = -1;
static gint ett_cdt_CompressedContentInfo = -1;
static gint ett_cdt_T_contentType = -1;
/*--- End of included file: packet-cdt-ett.c ---*/
-#line 66 "../../asn1/cdt/packet-cdt-template.c"
+#line 66 "./asn1/cdt/packet-cdt-template.c"
static expert_field ei_cdt_unable_compress_content = EI_INIT;
static expert_field ei_cdt_unable_uncompress_content = EI_INIT;
/*--- Included file: packet-cdt-fn.c ---*/
-#line 1 "../../asn1/cdt/packet-cdt-fn.c"
+#line 1 "./asn1/cdt/packet-cdt-fn.c"
static const value_string cdt_AlgorithmID_ShortForm_vals[] = {
{ 0, "zlibCompress" },
@@ -110,7 +110,7 @@ static const value_string cdt_AlgorithmID_ShortForm_vals[] = {
static int
dissect_cdt_AlgorithmID_ShortForm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 19 "../../asn1/cdt/cdt.cnf"
+#line 19 "./asn1/cdt/cdt.cnf"
guint32 value;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -173,7 +173,7 @@ static const value_string cdt_ContentType_ShortForm_vals[] = {
static int
dissect_cdt_ContentType_ShortForm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 34 "../../asn1/cdt/cdt.cnf"
+#line 34 "./asn1/cdt/cdt.cnf"
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&content_type);
@@ -195,7 +195,7 @@ dissect_cdt_ContentType_ShortForm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_cdt_T_contentType_OID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 48 "../../asn1/cdt/cdt.cnf"
+#line 48 "./asn1/cdt/cdt.cnf"
const char *obj_id = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &obj_id);
@@ -243,7 +243,7 @@ dissect_cdt_T_contentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_cdt_CompressedContent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "../../asn1/cdt/cdt.cnf"
+#line 67 "./asn1/cdt/cdt.cnf"
tvbuff_t *next_tvb = NULL, *compr_tvb = NULL;
int save_offset = offset;
@@ -314,7 +314,7 @@ static const ber_sequence_t CompressedData_sequence[] = {
int
dissect_cdt_CompressedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 11 "../../asn1/cdt/cdt.cnf"
+#line 11 "./asn1/cdt/cdt.cnf"
content_type = 0;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -338,7 +338,7 @@ static int dissect_CompressedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-cdt-fn.c ---*/
-#line 71 "../../asn1/cdt/packet-cdt-template.c"
+#line 71 "./asn1/cdt/packet-cdt-template.c"
/*--- proto_register_cdt -------------------------------------------*/
@@ -372,7 +372,7 @@ void proto_register_cdt (void) {
static hf_register_info hf[] = {
/*--- Included file: packet-cdt-hfarr.c ---*/
-#line 1 "../../asn1/cdt/packet-cdt-hfarr.c"
+#line 1 "./asn1/cdt/packet-cdt-hfarr.c"
{ &hf_cdt_CompressedData_PDU,
{ "CompressedData", "cdt.CompressedData_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -411,21 +411,21 @@ void proto_register_cdt (void) {
NULL, HFILL }},
/*--- End of included file: packet-cdt-hfarr.c ---*/
-#line 103 "../../asn1/cdt/packet-cdt-template.c"
+#line 103 "./asn1/cdt/packet-cdt-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-cdt-ettarr.c ---*/
-#line 1 "../../asn1/cdt/packet-cdt-ettarr.c"
+#line 1 "./asn1/cdt/packet-cdt-ettarr.c"
&ett_cdt_CompressedData,
&ett_cdt_CompressionAlgorithmIdentifier,
&ett_cdt_CompressedContentInfo,
&ett_cdt_T_contentType,
/*--- End of included file: packet-cdt-ettarr.c ---*/
-#line 108 "../../asn1/cdt/packet-cdt-template.c"
+#line 108 "./asn1/cdt/packet-cdt-template.c"
};
static ei_register_info ei[] = {
@@ -450,12 +450,12 @@ void proto_register_cdt (void) {
void proto_reg_handoff_cdt (void) {
/*--- Included file: packet-cdt-dis-tab.c ---*/
-#line 1 "../../asn1/cdt/packet-cdt-dis-tab.c"
+#line 1 "./asn1/cdt/packet-cdt-dis-tab.c"
register_ber_oid_dissector("1.3.26.0.4406.0.4.2", dissect_CompressedData_PDU, proto_cdt, "cdt");
/*--- End of included file: packet-cdt-dis-tab.c ---*/
-#line 131 "../../asn1/cdt/packet-cdt-template.c"
+#line 131 "./asn1/cdt/packet-cdt-template.c"
data_handle = find_dissector ("data");
}
diff --git a/epan/dissectors/packet-cdt.h b/epan/dissectors/packet-cdt.h
index c5f80b4075..07ea08da4d 100644
--- a/epan/dissectors/packet-cdt.h
+++ b/epan/dissectors/packet-cdt.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-cdt.h */
-/* ../../tools/asn2wrs.py -b -p cdt -c ./cdt.cnf -s ./packet-cdt-template -D . -O ../../epan/dissectors cdt.asn */
+/* asn2wrs.py -b -p cdt -c ./cdt.cnf -s ./packet-cdt-template -D . -O ../.. cdt.asn */
/* Input file: packet-cdt-template.h */
-#line 1 "../../asn1/cdt/packet-cdt-template.h"
+#line 1 "./asn1/cdt/packet-cdt-template.h"
/* packet-cdt.h
*
* Routines for Compressed Data Type packet dissection.
@@ -37,11 +37,11 @@
void dissect_cdt (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree);
/*--- Included file: packet-cdt-exp.h ---*/
-#line 1 "../../asn1/cdt/packet-cdt-exp.h"
+#line 1 "./asn1/cdt/packet-cdt-exp.h"
int dissect_cdt_CompressedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-cdt-exp.h ---*/
-#line 31 "../../asn1/cdt/packet-cdt-template.h"
+#line 31 "./asn1/cdt/packet-cdt-template.h"
#endif /* PACKET_CDT_H */
diff --git a/epan/dissectors/packet-charging_ase.c b/epan/dissectors/packet-charging_ase.c
index 81c68c0343..deb36dd7a8 100644
--- a/epan/dissectors/packet-charging_ase.c
+++ b/epan/dissectors/packet-charging_ase.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-charging_ase.c */
-/* ../../tools/asn2wrs.py -b -p charging_ase -c ./charging_ase.cnf -s ./packet-charging_ase-template -D . -O ../../epan/dissectors Tariffing-Data-Types.asn */
+/* asn2wrs.py -b -p charging_ase -c ./charging_ase.cnf -s ./packet-charging_ase-template -D . -O ../.. Tariffing-Data-Types.asn */
/* Input file: packet-charging_ase-template.c */
-#line 1 "../../asn1/charging_ase/packet-charging_ase-template.c"
+#line 1 "./asn1/charging_ase/packet-charging_ase-template.c"
/* packet-charging_ase-template.c
* Copyright 2009 , Anders Broman <anders.broman [AT] ericsson.com>
*
@@ -50,7 +50,7 @@ static int proto_charging_ase = -1;
/*--- Included file: packet-charging_ase-hf.c ---*/
-#line 1 "../../asn1/charging_ase/packet-charging_ase-hf.c"
+#line 1 "./asn1/charging_ase/packet-charging_ase-hf.c"
static int hf_charging_ase_charging_ase_ChargingMessageType_PDU = -1; /* ChargingMessageType */
static int hf_charging_ase_crgt = -1; /* ChargingTariffInformation */
static int hf_charging_ase_aocrg = -1; /* AddOnChargingInformation */
@@ -115,12 +115,12 @@ static int hf_charging_ase_T_tariffControlIndicators_non_cyclicTariff = -1;
static int hf_charging_ase_T_tariffControlIndicators_01_non_cyclicTariff = -1;
/*--- End of included file: packet-charging_ase-hf.c ---*/
-#line 44 "../../asn1/charging_ase/packet-charging_ase-template.c"
+#line 44 "./asn1/charging_ase/packet-charging_ase-template.c"
static int ett_charging_ase = -1;
/*--- Included file: packet-charging_ase-ett.c ---*/
-#line 1 "../../asn1/charging_ase/packet-charging_ase-ett.c"
+#line 1 "./asn1/charging_ase/packet-charging_ase-ett.c"
static gint ett_charging_ase_ChargingMessageType = -1;
static gint ett_charging_ase_ChargingAcknowledgementInformation = -1;
static gint ett_charging_ase_T_acknowledgementIndicators = -1;
@@ -153,7 +153,7 @@ static gint ett_charging_ase_T_tariffControlIndicators_01 = -1;
static gint ett_charging_ase_ChargingReferenceIdentification = -1;
/*--- End of included file: packet-charging_ase-ett.c ---*/
-#line 47 "../../asn1/charging_ase/packet-charging_ase-template.c"
+#line 47 "./asn1/charging_ase/packet-charging_ase-template.c"
static expert_field ei_charging_ase_extensions_not_dissected = EI_INIT;
@@ -161,7 +161,7 @@ static dissector_handle_t charging_ase_handle;
/*--- Included file: packet-charging_ase-fn.c ---*/
-#line 1 "../../asn1/charging_ase/packet-charging_ase-fn.c"
+#line 1 "./asn1/charging_ase/packet-charging_ase-fn.c"
static const asn_namedbit ChargingControlIndicators_bits[] = {
{ 0, &hf_charging_ase_ChargingControlIndicators_subscriberCharge, -1, -1, "subscriberCharge", NULL },
@@ -534,7 +534,7 @@ dissect_charging_ase_CriticalityType(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_charging_ase_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 13 "../../asn1/charging_ase/charging_ase.cnf"
+#line 13 "./asn1/charging_ase/charging_ase.cnf"
proto_tree_add_expert(tree, actx->pinfo, &ei_charging_ase_extensions_not_dissected, tvb, offset, -1);
return tvb_reported_length(tvb);
@@ -841,7 +841,7 @@ int dissect_charging_ase_ChargingMessageType_PDU(tvbuff_t *tvb _U_, packet_info
/*--- End of included file: packet-charging_ase-fn.c ---*/
-#line 53 "../../asn1/charging_ase/packet-charging_ase-template.c"
+#line 53 "./asn1/charging_ase/packet-charging_ase-template.c"
static int
dissect_charging_ase(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
@@ -867,7 +867,7 @@ proto_register_charging_ase(void)
static hf_register_info hf[] = {
/*--- Included file: packet-charging_ase-hfarr.c ---*/
-#line 1 "../../asn1/charging_ase/packet-charging_ase-hfarr.c"
+#line 1 "./asn1/charging_ase/packet-charging_ase-hfarr.c"
{ &hf_charging_ase_charging_ase_ChargingMessageType_PDU,
{ "ChargingMessageType", "charging_ase.ChargingMessageType",
FT_UINT32, BASE_DEC, VALS(charging_ase_ChargingMessageType_vals), 0,
@@ -1114,7 +1114,7 @@ proto_register_charging_ase(void)
NULL, HFILL }},
/*--- End of included file: packet-charging_ase-hfarr.c ---*/
-#line 77 "../../asn1/charging_ase/packet-charging_ase-template.c"
+#line 77 "./asn1/charging_ase/packet-charging_ase-template.c"
};
/* List of subtrees */
@@ -1122,7 +1122,7 @@ proto_register_charging_ase(void)
&ett_charging_ase,
/*--- Included file: packet-charging_ase-ettarr.c ---*/
-#line 1 "../../asn1/charging_ase/packet-charging_ase-ettarr.c"
+#line 1 "./asn1/charging_ase/packet-charging_ase-ettarr.c"
&ett_charging_ase_ChargingMessageType,
&ett_charging_ase_ChargingAcknowledgementInformation,
&ett_charging_ase_T_acknowledgementIndicators,
@@ -1155,7 +1155,7 @@ proto_register_charging_ase(void)
&ett_charging_ase_ChargingReferenceIdentification,
/*--- End of included file: packet-charging_ase-ettarr.c ---*/
-#line 83 "../../asn1/charging_ase/packet-charging_ase-template.c"
+#line 83 "./asn1/charging_ase/packet-charging_ase-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-charging_ase.h b/epan/dissectors/packet-charging_ase.h
index cc9925c917..216d25343c 100644
--- a/epan/dissectors/packet-charging_ase.h
+++ b/epan/dissectors/packet-charging_ase.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-charging_ase.h */
-/* ../../tools/asn2wrs.py -b -p charging_ase -c ./charging_ase.cnf -s ./packet-charging_ase-template -D . -O ../../epan/dissectors Tariffing-Data-Types.asn */
+/* asn2wrs.py -b -p charging_ase -c ./charging_ase.cnf -s ./packet-charging_ase-template -D . -O ../.. Tariffing-Data-Types.asn */
/* Input file: packet-charging_ase-template.h */
-#line 1 "../../asn1/charging_ase/packet-charging_ase-template.h"
+#line 1 "./asn1/charging_ase/packet-charging_ase-template.h"
/* packet-charging_ase-template.h
* Copyright 2009, Anders Broman <anders.broman@ericsson.com>
*
@@ -33,12 +33,12 @@
/*--- Included file: packet-charging_ase-exp.h ---*/
-#line 1 "../../asn1/charging_ase/packet-charging_ase-exp.h"
+#line 1 "./asn1/charging_ase/packet-charging_ase-exp.h"
extern const value_string charging_ase_ChargingMessageType_vals[];
int dissect_charging_ase_ChargingMessageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_charging_ase_ChargingMessageType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-charging_ase-exp.h ---*/
-#line 27 "../../asn1/charging_ase/packet-charging_ase-template.h"
+#line 27 "./asn1/charging_ase/packet-charging_ase-template.h"
#endif /* PACKET_CHARGING_ASE_H */
diff --git a/epan/dissectors/packet-cmip.c b/epan/dissectors/packet-cmip.c
index a76dee484b..72752b7ab7 100644
--- a/epan/dissectors/packet-cmip.c
+++ b/epan/dissectors/packet-cmip.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-cmip.c */
-/* ../../tools/asn2wrs.py -b -p cmip -c ./cmip.cnf -s ./packet-cmip-template -D . -O ../../epan/dissectors CMIP-1.asn CMIP-A-ABORT-Information.asn CMIP-A-ASSOCIATE-Information.asn ../x721/Attribute-ASN1Module.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
+/* asn2wrs.py -b -p cmip -c ./cmip.cnf -s ./packet-cmip-template -D . -O ../.. CMIP-1.asn CMIP-A-ABORT-Information.asn CMIP-A-ASSOCIATE-Information.asn ../x721/Attribute-ASN1Module.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
/* Input file: packet-cmip-template.c */
-#line 1 "../../asn1/cmip/packet-cmip-template.c"
+#line 1 "./asn1/cmip/packet-cmip-template.c"
/* packet-cmip.c
* Routines for X.711 CMIP packet dissection
* Ronnie Sahlberg 2004
@@ -64,7 +64,7 @@ static int hf_NameBinding = -1;
static int hf_ObjectClass = -1;
/*--- Included file: packet-cmip-hf.c ---*/
-#line 1 "../../asn1/cmip/packet-cmip-hf.c"
+#line 1 "./asn1/cmip/packet-cmip-hf.c"
static int hf_cmip_BaseManagedObjectId_PDU = -1; /* BaseManagedObjectId */
static int hf_cmip_EventTypeId_PDU = -1; /* EventTypeId */
static int hf_cmip_ObjectClass_PDU = -1; /* ObjectClass */
@@ -343,13 +343,13 @@ static int hf_cmip_T_daysOfWeek_friday = -1;
static int hf_cmip_T_daysOfWeek_saturday = -1;
/*--- End of included file: packet-cmip-hf.c ---*/
-#line 58 "../../asn1/cmip/packet-cmip-template.c"
+#line 58 "./asn1/cmip/packet-cmip-template.c"
/* Initialize the subtree pointers */
static gint ett_cmip = -1;
/*--- Included file: packet-cmip-ett.c ---*/
-#line 1 "../../asn1/cmip/packet-cmip-ett.c"
+#line 1 "./asn1/cmip/packet-cmip-ett.c"
static gint ett_cmip_PAR_missingAttributeValue = -1;
static gint ett_cmip_ActionArgument = -1;
static gint ett_cmip_ActionError = -1;
@@ -473,7 +473,7 @@ static gint ett_cmip_T_modificationList = -1;
static gint ett_cmip_T_modificationList_item = -1;
/*--- End of included file: packet-cmip-ett.c ---*/
-#line 62 "../../asn1/cmip/packet-cmip-template.c"
+#line 62 "./asn1/cmip/packet-cmip-template.c"
static expert_field ei_wrong_spdu_type = EI_INIT;
@@ -484,7 +484,7 @@ static dissector_table_t attribute_id_dissector_table;
/*--- Included file: packet-cmip-table.c ---*/
-#line 1 "../../asn1/cmip/packet-cmip-table.c"
+#line 1 "./asn1/cmip/packet-cmip-table.c"
/* CMIP OPERATIONS */
static const value_string cmip_Opcode_vals[] = {
@@ -534,7 +534,7 @@ static const value_string cmip_error_code_vals[] = {
/*--- End of included file: packet-cmip-table.c ---*/
-#line 71 "../../asn1/cmip/packet-cmip-template.c"
+#line 71 "./asn1/cmip/packet-cmip-template.c"
static int opcode_type;
#define OPCODE_INVOKE 1
@@ -546,7 +546,7 @@ static const char *object_identifier_id;
/*--- Included file: packet-cmip-val.h ---*/
-#line 1 "../../asn1/cmip/packet-cmip-val.h"
+#line 1 "./asn1/cmip/packet-cmip-val.h"
#define smi2AttributeID "2.9.3.2.7"
#define smi2AttributeGroup "2.9.3.2.8"
#define arfProbableCause "2.9.3.2.0.0"
@@ -633,10 +633,10 @@ static const char *object_identifier_id;
#define noInvokeId NULL
/*--- End of included file: packet-cmip-val.h ---*/
-#line 81 "../../asn1/cmip/packet-cmip-template.c"
+#line 81 "./asn1/cmip/packet-cmip-template.c"
/*--- Included file: packet-cmip-fn.c ---*/
-#line 1 "../../asn1/cmip/packet-cmip-fn.c"
+#line 1 "./asn1/cmip/packet-cmip-fn.c"
/*--- Cyclic dependencies ---*/
/* CMISFilter -> CMISFilter/and -> CMISFilter */
@@ -648,7 +648,7 @@ static int dissect_cmip_CMISFilter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_cmip_T_attributeId_globalForm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 267 "../../asn1/cmip/cmip.cnf"
+#line 267 "./asn1/cmip/cmip.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -662,7 +662,7 @@ dissect_cmip_T_attributeId_globalForm(gboolean implicit_tag _U_, tvbuff_t *tvb _
static int
dissect_cmip_T_attributeIdlocalForm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 271 "../../asn1/cmip/cmip.cnf"
+#line 271 "./asn1/cmip/cmip.cnf"
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&actx->external.indirect_reference);
@@ -764,7 +764,7 @@ static int
dissect_cmip_T_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
-#line 288 "../../asn1/cmip/cmip.cnf"
+#line 288 "./asn1/cmip/cmip.cnf"
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -775,7 +775,7 @@ dissect_cmip_T_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_cmip_T_attributeValueAssertionvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 291 "../../asn1/cmip/cmip.cnf"
+#line 291 "./asn1/cmip/cmip.cnf"
if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
}
@@ -930,7 +930,7 @@ dissect_cmip_Scope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_cmip_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 275 "../../asn1/cmip/cmip.cnf"
+#line 275 "./asn1/cmip/cmip.cnf"
if(actx->external.direct_ref_present){
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
} else if (actx->external.indirect_ref_present &&
@@ -1105,7 +1105,7 @@ dissect_cmip_ActionTypeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_cmip_T_actionInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 443 "../../asn1/cmip/cmip.cnf"
+#line 443 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -1262,7 +1262,7 @@ dissect_cmip_NoSuchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_cmip_T_eventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 474 "../../asn1/cmip/cmip.cnf"
+#line 474 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -1367,7 +1367,7 @@ dissect_cmip_ActionError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_cmip_T_actionReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 477 "../../asn1/cmip/cmip.cnf"
+#line 477 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -1449,7 +1449,7 @@ dissect_cmip_ModifyOperator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_cmip_T_attributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 471 "../../asn1/cmip/cmip.cnf"
+#line 471 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -1677,7 +1677,7 @@ dissect_cmip_DeleteResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_cmip_T_eventReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 452 "../../asn1/cmip/cmip.cnf"
+#line 452 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -1704,7 +1704,7 @@ dissect_cmip_EventReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_cmip_EventReportArgumentEventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 449 "../../asn1/cmip/cmip.cnf"
+#line 449 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -1971,7 +1971,7 @@ dissect_cmip_T_errorId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_cmip_T_errorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 468 "../../asn1/cmip/cmip.cnf"
+#line 468 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -2067,7 +2067,7 @@ dissect_cmip_NoSuchEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_cmip_T_attributevalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 455 "../../asn1/cmip/cmip.cnf"
+#line 455 "./asn1/cmip/cmip.cnf"
if(actx->external.direct_ref_present){
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
} else if (actx->external.indirect_ref_present &&
@@ -2141,7 +2141,7 @@ static const value_string cmip_CMIPAbortSource_vals[] = {
static int
dissect_cmip_CMIPAbortSource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 231 "../../asn1/cmip/cmip.cnf"
+#line 231 "./asn1/cmip/cmip.cnf"
guint32 value;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2171,7 +2171,7 @@ static const ber_sequence_t CMIPAbortInfo_sequence[] = {
int
dissect_cmip_CMIPAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 223 "../../asn1/cmip/cmip.cnf"
+#line 223 "./asn1/cmip/cmip.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CMIP-A-ABORT");
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -2226,7 +2226,7 @@ static const ber_sequence_t CMIPUserInfo_sequence[] = {
int
dissect_cmip_CMIPUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 227 "../../asn1/cmip/cmip.cnf"
+#line 227 "./asn1/cmip/cmip.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CMIP-A-ASSOCIATE");
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -2312,7 +2312,7 @@ dissect_cmip_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_cmip_T_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 484 "../../asn1/cmip/cmip.cnf"
+#line 484 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -2409,7 +2409,7 @@ dissect_cmip_AttributeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_cmip_T_oldAttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 487 "../../asn1/cmip/cmip.cnf"
+#line 487 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -2421,7 +2421,7 @@ dissect_cmip_T_oldAttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_cmip_T_newAttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 490 "../../asn1/cmip/cmip.cnf"
+#line 490 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -3197,7 +3197,7 @@ dissect_cmip_T_serviceUseridentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_cmip_T_details(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 495 "../../asn1/cmip/cmip.cnf"
+#line 495 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -3320,7 +3320,7 @@ dissect_cmip_T_featureIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_cmip_T_featureInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 500 "../../asn1/cmip/cmip.cnf"
+#line 500 "./asn1/cmip/cmip.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -3570,7 +3570,7 @@ dissect_cmip_WeekMask(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_cmip_T_local(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 238 "../../asn1/cmip/cmip.cnf"
+#line 238 "./asn1/cmip/cmip.cnf"
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&opcode);
@@ -3651,7 +3651,7 @@ dissect_cmip_T_linkedId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_cmip_InvokeArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 296 "../../asn1/cmip/cmip.cnf"
+#line 296 "./asn1/cmip/cmip.cnf"
switch(opcode){
case 0: /* M-eventreport */
offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, actx, tree, -1);
@@ -3705,7 +3705,7 @@ static const ber_sequence_t Invoke_sequence[] = {
static int
dissect_cmip_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 247 "../../asn1/cmip/cmip.cnf"
+#line 247 "./asn1/cmip/cmip.cnf"
opcode_type=OPCODE_INVOKE;
col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "Invoke ");
@@ -3719,7 +3719,7 @@ dissect_cmip_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_cmip_ResultArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 334 "../../asn1/cmip/cmip.cnf"
+#line 334 "./asn1/cmip/cmip.cnf"
switch(opcode){
case 0: /* M-eventreport*/
@@ -3782,7 +3782,7 @@ static const ber_sequence_t ReturnResult_sequence[] = {
static int
dissect_cmip_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 252 "../../asn1/cmip/cmip.cnf"
+#line 252 "./asn1/cmip/cmip.cnf"
opcode_type=OPCODE_RETURN_RESULT;
col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "ReturnResult ");
@@ -3796,7 +3796,7 @@ dissect_cmip_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_cmip_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 368 "../../asn1/cmip/cmip.cnf"
+#line 368 "./asn1/cmip/cmip.cnf"
switch(opcode){
case 19: /* classInstanceConflict */
@@ -3880,7 +3880,7 @@ static const ber_sequence_t ReturnError_sequence[] = {
static int
dissect_cmip_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 257 "../../asn1/cmip/cmip.cnf"
+#line 257 "./asn1/cmip/cmip.cnf"
opcode_type=OPCODE_RETURN_ERROR;
col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "ReturnError ");
@@ -4000,7 +4000,7 @@ static const ber_sequence_t Reject_sequence[] = {
static int
dissect_cmip_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 262 "../../asn1/cmip/cmip.cnf"
+#line 262 "./asn1/cmip/cmip.cnf"
opcode_type=OPCODE_REJECT;
col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "Reject ");
@@ -4468,7 +4468,7 @@ static int dissect_WeekMask_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-cmip-fn.c ---*/
-#line 82 "../../asn1/cmip/packet-cmip-template.c"
+#line 82 "./asn1/cmip/packet-cmip-template.c"
@@ -4562,7 +4562,7 @@ void proto_register_cmip(void) {
/*--- Included file: packet-cmip-hfarr.c ---*/
-#line 1 "../../asn1/cmip/packet-cmip-hfarr.c"
+#line 1 "./asn1/cmip/packet-cmip-hfarr.c"
{ &hf_cmip_BaseManagedObjectId_PDU,
{ "BaseManagedObjectId", "cmip.BaseManagedObjectId_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5665,7 +5665,7 @@ void proto_register_cmip(void) {
NULL, HFILL }},
/*--- End of included file: packet-cmip-hfarr.c ---*/
-#line 174 "../../asn1/cmip/packet-cmip-template.c"
+#line 174 "./asn1/cmip/packet-cmip-template.c"
};
/* List of subtrees */
@@ -5673,7 +5673,7 @@ void proto_register_cmip(void) {
&ett_cmip,
/*--- Included file: packet-cmip-ettarr.c ---*/
-#line 1 "../../asn1/cmip/packet-cmip-ettarr.c"
+#line 1 "./asn1/cmip/packet-cmip-ettarr.c"
&ett_cmip_PAR_missingAttributeValue,
&ett_cmip_ActionArgument,
&ett_cmip_ActionError,
@@ -5797,7 +5797,7 @@ void proto_register_cmip(void) {
&ett_cmip_T_modificationList_item,
/*--- End of included file: packet-cmip-ettarr.c ---*/
-#line 180 "../../asn1/cmip/packet-cmip-template.c"
+#line 180 "./asn1/cmip/packet-cmip-template.c"
};
static ei_register_info ei[] = {
@@ -5818,7 +5818,7 @@ void proto_register_cmip(void) {
/*--- Included file: packet-cmip-dis-tab.c ---*/
-#line 1 "../../asn1/cmip/packet-cmip-dis-tab.c"
+#line 1 "./asn1/cmip/packet-cmip-dis-tab.c"
register_ber_oid_dissector("2.9.2.21.7.13", dissect_BaseManagedObjectId_PDU, proto_cmip, "BaseManagedObjectId(13)");
register_ber_oid_dissector("2.9.3.2.7.1", dissect_SimpleNameType_PDU, proto_cmip, "discriminatorId(1)");
register_ber_oid_dissector("2.9.3.2.7.2", dissect_SimpleNameType_PDU, proto_cmip, "logId(2)");
@@ -5892,7 +5892,7 @@ void proto_register_cmip(void) {
/*--- End of included file: packet-cmip-dis-tab.c ---*/
-#line 199 "../../asn1/cmip/packet-cmip-template.c"
+#line 199 "./asn1/cmip/packet-cmip-template.c"
oid_add_from_string("discriminatorId(1)","2.9.3.2.7.1");
attribute_id_dissector_table = register_dissector_table("cmip.attribute_id", "CMIP Attribute Id", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
diff --git a/epan/dissectors/packet-cmip.h b/epan/dissectors/packet-cmip.h
index aebeb38297..98c9f94188 100644
--- a/epan/dissectors/packet-cmip.h
+++ b/epan/dissectors/packet-cmip.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-cmip.h */
-/* ../../tools/asn2wrs.py -b -p cmip -c ./cmip.cnf -s ./packet-cmip-template -D . -O ../../epan/dissectors CMIP-1.asn CMIP-A-ABORT-Information.asn CMIP-A-ASSOCIATE-Information.asn ../x721/Attribute-ASN1Module.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
+/* asn2wrs.py -b -p cmip -c ./cmip.cnf -s ./packet-cmip-template -D . -O ../.. CMIP-1.asn CMIP-A-ABORT-Information.asn CMIP-A-ASSOCIATE-Information.asn ../x721/Attribute-ASN1Module.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
/* Input file: packet-cmip-template.h */
-#line 1 "../../asn1/cmip/packet-cmip-template.h"
+#line 1 "./asn1/cmip/packet-cmip-template.h"
/* packet-cmip.h
* Routines for X.711 CMIP packet dissection
* Ronnie Sahlberg 2004
@@ -34,7 +34,7 @@
/*--- Included file: packet-cmip-exp.h ---*/
-#line 1 "../../asn1/cmip/packet-cmip-exp.h"
+#line 1 "./asn1/cmip/packet-cmip-exp.h"
extern const value_string cmip_ObjectClass_vals[];
extern const value_string cmip_ObjectInstance_vals[];
extern const value_string cmip_AdministrativeState_vals[];
@@ -55,7 +55,7 @@ int dissect_cmip_ProbableCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
int dissect_cmip_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-cmip-exp.h ---*/
-#line 28 "../../asn1/cmip/packet-cmip-template.h"
+#line 28 "./asn1/cmip/packet-cmip-template.h"
#endif /* PACKET_CMIP_H */
diff --git a/epan/dissectors/packet-cmp.c b/epan/dissectors/packet-cmp.c
index b53eb3cfe1..91fe979703 100644
--- a/epan/dissectors/packet-cmp.c
+++ b/epan/dissectors/packet-cmp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-cmp.c */
-/* ../../tools/asn2wrs.py -b -p cmp -c ./cmp.cnf -s ./packet-cmp-template -D . -O ../../epan/dissectors CMP.asn */
+/* asn2wrs.py -b -p cmp -c ./cmp.cnf -s ./packet-cmp-template -D . -O ../.. CMP.asn */
/* Input file: packet-cmp-template.c */
-#line 1 "../../asn1/cmp/packet-cmp-template.c"
+#line 1 "./asn1/cmp/packet-cmp-template.c"
/* packet-cmp.c
*
* Routines for RFC2510 Certificate Management Protocol packet dissection
@@ -74,7 +74,7 @@ static int hf_cmp_tcptrans10_version = -1;
static int hf_cmp_tcptrans10_flags = -1;
/*--- Included file: packet-cmp-hf.c ---*/
-#line 1 "../../asn1/cmp/packet-cmp-hf.c"
+#line 1 "./asn1/cmp/packet-cmp-hf.c"
static int hf_cmp_PBMParameter_PDU = -1; /* PBMParameter */
static int hf_cmp_DHBMParameter_PDU = -1; /* DHBMParameter */
static int hf_cmp_CAProtEncCertValue_PDU = -1; /* CAProtEncCertValue */
@@ -235,13 +235,13 @@ static int hf_cmp_PKIFailureInfo_systemFailure = -1;
static int hf_cmp_PKIFailureInfo_duplicateCertReq = -1;
/*--- End of included file: packet-cmp-hf.c ---*/
-#line 68 "../../asn1/cmp/packet-cmp-template.c"
+#line 68 "./asn1/cmp/packet-cmp-template.c"
/* Initialize the subtree pointers */
static gint ett_cmp = -1;
/*--- Included file: packet-cmp-ett.c ---*/
-#line 1 "../../asn1/cmp/packet-cmp-ett.c"
+#line 1 "./asn1/cmp/packet-cmp-ett.c"
static gint ett_cmp_CMPCertificate = -1;
static gint ett_cmp_PKIMessage = -1;
static gint ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CMPCertificate = -1;
@@ -291,10 +291,10 @@ static gint ett_cmp_PollRepContent = -1;
static gint ett_cmp_PollRepContent_item = -1;
/*--- End of included file: packet-cmp-ett.c ---*/
-#line 72 "../../asn1/cmp/packet-cmp-template.c"
+#line 72 "./asn1/cmp/packet-cmp-template.c"
/*--- Included file: packet-cmp-fn.c ---*/
-#line 1 "../../asn1/cmp/packet-cmp-fn.c"
+#line 1 "./asn1/cmp/packet-cmp-fn.c"
/*--- Cyclic dependencies ---*/
/* PKIMessage -> PKIBody -> NestedMessageContent -> PKIMessages -> PKIMessage */
@@ -393,7 +393,7 @@ dissect_cmp_T_infoType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_cmp_T_infoValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 88 "../../asn1/cmp/cmp.cnf"
+#line 88 "./asn1/cmp/cmp.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -492,7 +492,7 @@ const value_string cmp_PKIStatus_vals[] = {
int
dissect_cmp_PKIStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 104 "../../asn1/cmp/cmp.cnf"
+#line 104 "./asn1/cmp/cmp.cnf"
guint32 value;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -1089,7 +1089,7 @@ static const ber_choice_t PKIBody_choice[] = {
int
dissect_cmp_PKIBody(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 94 "../../asn1/cmp/cmp.cnf"
+#line 94 "./asn1/cmp/cmp.cnf"
gint branch_taken;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1483,7 +1483,7 @@ static int dissect_SuppLangTagsValue_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _
/*--- End of included file: packet-cmp-fn.c ---*/
-#line 73 "../../asn1/cmp/packet-cmp-template.c"
+#line 73 "./asn1/cmp/packet-cmp-template.c"
static int
dissect_cmp_pdu(tvbuff_t *tvb, proto_tree *tree, asn1_ctx_t *actx)
@@ -1737,7 +1737,7 @@ void proto_register_cmp(void) {
"TCP transport flags", HFILL }},
/*--- Included file: packet-cmp-hfarr.c ---*/
-#line 1 "../../asn1/cmp/packet-cmp-hfarr.c"
+#line 1 "./asn1/cmp/packet-cmp-hfarr.c"
{ &hf_cmp_PBMParameter_PDU,
{ "PBMParameter", "cmp.PBMParameter_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2368,7 +2368,7 @@ void proto_register_cmp(void) {
NULL, HFILL }},
/*--- End of included file: packet-cmp-hfarr.c ---*/
-#line 325 "../../asn1/cmp/packet-cmp-template.c"
+#line 325 "./asn1/cmp/packet-cmp-template.c"
};
/* List of subtrees */
@@ -2376,7 +2376,7 @@ void proto_register_cmp(void) {
&ett_cmp,
/*--- Included file: packet-cmp-ettarr.c ---*/
-#line 1 "../../asn1/cmp/packet-cmp-ettarr.c"
+#line 1 "./asn1/cmp/packet-cmp-ettarr.c"
&ett_cmp_CMPCertificate,
&ett_cmp_PKIMessage,
&ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CMPCertificate,
@@ -2426,7 +2426,7 @@ void proto_register_cmp(void) {
&ett_cmp_PollRepContent_item,
/*--- End of included file: packet-cmp-ettarr.c ---*/
-#line 331 "../../asn1/cmp/packet-cmp-template.c"
+#line 331 "./asn1/cmp/packet-cmp-template.c"
};
module_t *cmp_module;
@@ -2498,7 +2498,7 @@ void proto_reg_handoff_cmp(void) {
/*--- Included file: packet-cmp-dis-tab.c ---*/
-#line 1 "../../asn1/cmp/packet-cmp-dis-tab.c"
+#line 1 "./asn1/cmp/packet-cmp-dis-tab.c"
register_ber_oid_dissector("1.2.840.113533.7.66.13", dissect_PBMParameter_PDU, proto_cmp, "id-PasswordBasedMac");
register_ber_oid_dissector("1.2.640.113533.7.66.30", dissect_DHBMParameter_PDU, proto_cmp, "id-DHBasedMac");
register_ber_oid_dissector("1.3.6.1.5.5.7.4.1", dissect_CAProtEncCertValue_PDU, proto_cmp, "id-it-caProtEncCert");
@@ -2518,7 +2518,7 @@ void proto_reg_handoff_cmp(void) {
/*--- End of included file: packet-cmp-dis-tab.c ---*/
-#line 401 "../../asn1/cmp/packet-cmp-template.c"
+#line 401 "./asn1/cmp/packet-cmp-template.c"
inited = TRUE;
}
diff --git a/epan/dissectors/packet-cmp.h b/epan/dissectors/packet-cmp.h
index dd4ce1e6ff..a12b9fe493 100644
--- a/epan/dissectors/packet-cmp.h
+++ b/epan/dissectors/packet-cmp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-cmp.h */
-/* ../../tools/asn2wrs.py -b -p cmp -c ./cmp.cnf -s ./packet-cmp-template -D . -O ../../epan/dissectors CMP.asn */
+/* asn2wrs.py -b -p cmp -c ./cmp.cnf -s ./packet-cmp-template -D . -O ../.. CMP.asn */
/* Input file: packet-cmp-template.h */
-#line 1 "../../asn1/cmp/packet-cmp-template.h"
+#line 1 "./asn1/cmp/packet-cmp-template.h"
/* packet-cmp.h
* Routines for RFC2510 Certificate Management Protocol packet dissection
* Ronnie Sahlberg 2004
@@ -36,7 +36,7 @@ void proto_reg_handoff_cmp(void);
/*--- Included file: packet-cmp-exp.h ---*/
-#line 1 "../../asn1/cmp/packet-cmp-exp.h"
+#line 1 "./asn1/cmp/packet-cmp-exp.h"
extern const value_string cmp_CMPCertificate_vals[];
extern const value_string cmp_PKIBody_vals[];
extern const value_string cmp_PKIStatus_vals[];
@@ -81,7 +81,7 @@ int dissect_cmp_PollReqContent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
int dissect_cmp_PollRepContent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-cmp-exp.h ---*/
-#line 30 "../../asn1/cmp/packet-cmp-template.h"
+#line 30 "./asn1/cmp/packet-cmp-template.h"
#endif /* PACKET_CMP_H */
diff --git a/epan/dissectors/packet-cms.c b/epan/dissectors/packet-cms.c
index 38a7197945..708e2edcc0 100644
--- a/epan/dissectors/packet-cms.c
+++ b/epan/dissectors/packet-cms.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-cms.c */
-/* ../../tools/asn2wrs.py -b -C -p cms -c ./cms.cnf -s ./packet-cms-template -D . -O ../../epan/dissectors CryptographicMessageSyntax.asn AttributeCertificateVersion1.asn */
+/* asn2wrs.py -b -C -p cms -c ./cms.cnf -s ./packet-cms-template -D . -O ../.. CryptographicMessageSyntax.asn AttributeCertificateVersion1.asn */
/* Input file: packet-cms-template.c */
-#line 1 "../../asn1/cms/packet-cms-template.c"
+#line 1 "./asn1/cms/packet-cms-template.c"
/* packet-cms.c
* Routines for RFC5652 Cryptographic Message Syntax packet dissection
* Ronnie Sahlberg 2004
@@ -58,7 +58,7 @@ static int proto_cms = -1;
static int hf_cms_ci_contentType = -1;
/*--- Included file: packet-cms-hf.c ---*/
-#line 1 "../../asn1/cms/packet-cms-hf.c"
+#line 1 "./asn1/cms/packet-cms-hf.c"
static int hf_cms_ContentInfo_PDU = -1; /* ContentInfo */
static int hf_cms_ContentType_PDU = -1; /* ContentType */
static int hf_cms_SignedData_PDU = -1; /* SignedData */
@@ -184,12 +184,12 @@ static int hf_cms_issuerUniqueID = -1; /* UniqueIdentifier */
static int hf_cms_extensions = -1; /* Extensions */
/*--- End of included file: packet-cms-hf.c ---*/
-#line 52 "../../asn1/cms/packet-cms-template.c"
+#line 52 "./asn1/cms/packet-cms-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-cms-ett.c ---*/
-#line 1 "../../asn1/cms/packet-cms-ett.c"
+#line 1 "./asn1/cms/packet-cms-ett.c"
static gint ett_cms_ContentInfo = -1;
static gint ett_cms_SignedData = -1;
static gint ett_cms_DigestAlgorithmIdentifiers = -1;
@@ -246,7 +246,7 @@ static gint ett_cms_T_subject = -1;
static gint ett_cms_SEQUENCE_OF_Attribute = -1;
/*--- End of included file: packet-cms-ett.c ---*/
-#line 55 "../../asn1/cms/packet-cms-template.c"
+#line 55 "./asn1/cms/packet-cms-template.c"
static int dissect_cms_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) ; /* XXX kill a compiler warning until asn2wrs stops generating these silly wrappers */
@@ -325,12 +325,12 @@ cms_verify_msg_digest(proto_item *pi, tvbuff_t *content, const char *alg, tvbuff
/*--- Included file: packet-cms-fn.c ---*/
-#line 1 "../../asn1/cms/packet-cms-fn.c"
+#line 1 "./asn1/cms/packet-cms-fn.c"
int
dissect_cms_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 88 "../../asn1/cms/cms.cnf"
+#line 88 "./asn1/cms/cms.cnf"
const char *name = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
@@ -350,7 +350,7 @@ dissect_cms_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_cms_T_content(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 98 "../../asn1/cms/cms.cnf"
+#line 98 "./asn1/cms/cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -368,7 +368,7 @@ static const ber_sequence_t ContentInfo_sequence[] = {
int
dissect_cms_ContentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 79 "../../asn1/cms/cms.cnf"
+#line 79 "./asn1/cms/cms.cnf"
top_tree = tree;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ContentInfo_sequence, hf_index, ett_cms_ContentInfo);
@@ -427,7 +427,7 @@ dissect_cms_DigestAlgorithmIdentifiers(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_cms_T_eContent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 102 "../../asn1/cms/cms.cnf"
+#line 102 "./asn1/cms/cms.cnf"
offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &content_tvb);
proto_item_set_text(actx->created_item, "eContent (%u bytes)", tvb_reported_length (content_tvb));
@@ -458,7 +458,7 @@ dissect_cms_EncapsulatedContentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_cms_T_attrType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 129 "../../asn1/cms/cms.cnf"
+#line 129 "./asn1/cms/cms.cnf"
const char *name = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_cms_attrType, &object_identifier_id);
@@ -478,7 +478,7 @@ dissect_cms_T_attrType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_cms_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 139 "../../asn1/cms/cms.cnf"
+#line 139 "./asn1/cms/cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -740,7 +740,7 @@ dissect_cms_T_otherRevInfoFormat(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_cms_T_otherRevInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 123 "../../asn1/cms/cms.cnf"
+#line 123 "./asn1/cms/cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -1077,7 +1077,7 @@ dissect_cms_T_keyAttrId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_cms_T_keyAttr(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 118 "../../asn1/cms/cms.cnf"
+#line 118 "./asn1/cms/cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -1265,7 +1265,7 @@ dissect_cms_T_oriType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_cms_T_oriValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 112 "../../asn1/cms/cms.cnf"
+#line 112 "./asn1/cms/cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -1342,14 +1342,14 @@ dissect_cms_ContentEncryptionAlgorithmIdentifier(gboolean implicit_tag _U_, tvbu
static int
dissect_cms_EncryptedContent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 189 "../../asn1/cms/cms.cnf"
+#line 189 "./asn1/cms/cms.cnf"
tvbuff_t *encrypted_tvb;
proto_item *item;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&encrypted_tvb);
-#line 194 "../../asn1/cms/cms.cnf"
+#line 194 "./asn1/cms/cms.cnf"
item = actx->created_item;
@@ -1507,7 +1507,7 @@ dissect_cms_AuthenticatedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_cms_MessageDigest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 143 "../../asn1/cms/cms.cnf"
+#line 143 "./asn1/cms/cms.cnf"
proto_item *pi;
int old_offset = offset;
@@ -1582,7 +1582,7 @@ dissect_cms_Countersignature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_cms_RC2ParameterVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "../../asn1/cms/cms.cnf"
+#line 179 "./asn1/cms/cms.cnf"
guint32 length = 0;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -1635,7 +1635,7 @@ dissect_cms_RC2CBCParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_cms_T_capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 161 "../../asn1/cms/cms.cnf"
+#line 161 "./asn1/cms/cms.cnf"
const char *name = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_cms_attrType, &object_identifier_id);
@@ -1656,7 +1656,7 @@ dissect_cms_T_capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_cms_T_parameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 172 "../../asn1/cms/cms.cnf"
+#line 172 "./asn1/cms/cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -1849,7 +1849,7 @@ static int dissect_RC2CBCParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U
/*--- End of included file: packet-cms-fn.c ---*/
-#line 132 "../../asn1/cms/packet-cms-template.c"
+#line 132 "./asn1/cms/packet-cms-template.c"
/*--- proto_register_cms ----------------------------------------------*/
void proto_register_cms(void) {
@@ -1862,7 +1862,7 @@ void proto_register_cms(void) {
NULL, HFILL }},
/*--- Included file: packet-cms-hfarr.c ---*/
-#line 1 "../../asn1/cms/packet-cms-hfarr.c"
+#line 1 "./asn1/cms/packet-cms-hfarr.c"
{ &hf_cms_ContentInfo_PDU,
{ "ContentInfo", "cms.ContentInfo_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2357,14 +2357,14 @@ void proto_register_cms(void) {
NULL, HFILL }},
/*--- End of included file: packet-cms-hfarr.c ---*/
-#line 143 "../../asn1/cms/packet-cms-template.c"
+#line 143 "./asn1/cms/packet-cms-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-cms-ettarr.c ---*/
-#line 1 "../../asn1/cms/packet-cms-ettarr.c"
+#line 1 "./asn1/cms/packet-cms-ettarr.c"
&ett_cms_ContentInfo,
&ett_cms_SignedData,
&ett_cms_DigestAlgorithmIdentifiers,
@@ -2421,7 +2421,7 @@ void proto_register_cms(void) {
&ett_cms_SEQUENCE_OF_Attribute,
/*--- End of included file: packet-cms-ettarr.c ---*/
-#line 148 "../../asn1/cms/packet-cms-template.c"
+#line 148 "./asn1/cms/packet-cms-template.c"
};
/* Register protocol */
@@ -2446,7 +2446,7 @@ void proto_reg_handoff_cms(void) {
dissector_handle_t content_info_handle;
/*--- Included file: packet-cms-dis-tab.c ---*/
-#line 1 "../../asn1/cms/packet-cms-dis-tab.c"
+#line 1 "./asn1/cms/packet-cms-dis-tab.c"
register_ber_oid_dissector("1.2.840.113549.1.9.16.1.6", dissect_ContentInfo_PDU, proto_cms, "id-ct-contentInfo");
register_ber_oid_dissector("1.2.840.113549.1.7.2", dissect_SignedData_PDU, proto_cms, "id-signedData");
register_ber_oid_dissector("1.2.840.113549.1.7.3", dissect_EnvelopedData_PDU, proto_cms, "id-envelopedData");
@@ -2468,7 +2468,7 @@ void proto_reg_handoff_cms(void) {
/*--- End of included file: packet-cms-dis-tab.c ---*/
-#line 171 "../../asn1/cms/packet-cms-template.c"
+#line 171 "./asn1/cms/packet-cms-template.c"
oid_add_from_string("id-data","1.2.840.113549.1.7.1");
oid_add_from_string("id-alg-des-ede3-cbc","1.2.840.113549.3.7");
diff --git a/epan/dissectors/packet-cms.h b/epan/dissectors/packet-cms.h
index 8553a3cf21..d6453e19eb 100644
--- a/epan/dissectors/packet-cms.h
+++ b/epan/dissectors/packet-cms.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-cms.h */
-/* ../../tools/asn2wrs.py -b -C -p cms -c ./cms.cnf -s ./packet-cms-template -D . -O ../../epan/dissectors CryptographicMessageSyntax.asn AttributeCertificateVersion1.asn */
+/* asn2wrs.py -b -C -p cms -c ./cms.cnf -s ./packet-cms-template -D . -O ../.. CryptographicMessageSyntax.asn AttributeCertificateVersion1.asn */
/* Input file: packet-cms-template.h */
-#line 1 "../../asn1/cms/packet-cms-template.h"
+#line 1 "./asn1/cms/packet-cms-template.h"
/* packet-cms.h
* Routines for RFC5652 Cryptographic Message Syntax packet dissection
* Ronnie Sahlberg 2004
@@ -35,7 +35,7 @@
/*--- Included file: packet-cms-exp.h ---*/
-#line 1 "../../asn1/cms/packet-cms-exp.h"
+#line 1 "./asn1/cms/packet-cms-exp.h"
extern const value_string cms_SignerIdentifier_vals[];
int dissect_cms_ContentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cms_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -55,7 +55,7 @@ int dissect_cms_IssuerAndSerialNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _
int dissect_cms_Countersignature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-cms-exp.h ---*/
-#line 29 "../../asn1/cms/packet-cms-template.h"
+#line 29 "./asn1/cms/packet-cms-template.h"
#endif /* PACKET_CMS_H */
diff --git a/epan/dissectors/packet-credssp.c b/epan/dissectors/packet-credssp.c
index e3c7d55100..dd1bf4ec27 100644
--- a/epan/dissectors/packet-credssp.c
+++ b/epan/dissectors/packet-credssp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-credssp.c */
-/* ../../tools/asn2wrs.py -b -C -p credssp -c ./credssp.cnf -s ./packet-credssp-template -D . -O ../../epan/dissectors CredSSP.asn */
+/* asn2wrs.py -b -C -p credssp -c ./credssp.cnf -s ./packet-credssp-template -D . -O ../.. CredSSP.asn */
/* Input file: packet-credssp-template.c */
-#line 1 "../../asn1/credssp/packet-credssp-template.c"
+#line 1 "./asn1/credssp/packet-credssp-template.c"
/* packet-credssp.c
* Routines for CredSSP (Credential Security Support Provider) packet dissection
* Graeme Lunt 2011
@@ -61,7 +61,7 @@ static int hf_credssp_TSSmartCardCreds = -1; /* TSSmartCardCreds */
static int hf_credssp_TSCredentials = -1; /* TSCredentials */
/*--- Included file: packet-credssp-hf.c ---*/
-#line 1 "../../asn1/credssp/packet-credssp-hf.c"
+#line 1 "./asn1/credssp/packet-credssp-hf.c"
static int hf_credssp_TSRequest_PDU = -1; /* TSRequest */
static int hf_credssp_NegoData_item = -1; /* NegoData_item */
static int hf_credssp_negoToken = -1; /* T_negoToken */
@@ -85,13 +85,13 @@ static int hf_credssp_authInfo = -1; /* T_authInfo */
static int hf_credssp_pubKeyAuth = -1; /* OCTET_STRING */
/*--- End of included file: packet-credssp-hf.c ---*/
-#line 55 "../../asn1/credssp/packet-credssp-template.c"
+#line 55 "./asn1/credssp/packet-credssp-template.c"
/* Initialize the subtree pointers */
static gint ett_credssp = -1;
/*--- Included file: packet-credssp-ett.c ---*/
-#line 1 "../../asn1/credssp/packet-credssp-ett.c"
+#line 1 "./asn1/credssp/packet-credssp-ett.c"
static gint ett_credssp_NegoData = -1;
static gint ett_credssp_NegoData_item = -1;
static gint ett_credssp_TSPasswordCreds = -1;
@@ -101,16 +101,16 @@ static gint ett_credssp_TSCredentials = -1;
static gint ett_credssp_TSRequest = -1;
/*--- End of included file: packet-credssp-ett.c ---*/
-#line 59 "../../asn1/credssp/packet-credssp-template.c"
+#line 59 "./asn1/credssp/packet-credssp-template.c"
/*--- Included file: packet-credssp-fn.c ---*/
-#line 1 "../../asn1/credssp/packet-credssp-fn.c"
+#line 1 "./asn1/credssp/packet-credssp-fn.c"
static int
dissect_credssp_T_negoToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 45 "../../asn1/credssp/credssp.cnf"
+#line 45 "./asn1/credssp/credssp.cnf"
tvbuff_t *token_tvb = NULL;
heur_dtbl_entry_t *hdtbl_entry;
@@ -240,7 +240,7 @@ dissect_credssp_T_credType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_credssp_T_credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 23 "../../asn1/credssp/credssp.cnf"
+#line 23 "./asn1/credssp/credssp.cnf"
tvbuff_t *creds_tvb = NULL;
tvbuff_t *decr_tvb = NULL;
@@ -286,7 +286,7 @@ dissect_credssp_TSCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_credssp_T_authInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 10 "../../asn1/credssp/credssp.cnf"
+#line 10 "./asn1/credssp/credssp.cnf"
tvbuff_t *auth_tvb = NULL;
tvbuff_t *decr_tvb = NULL;
@@ -332,7 +332,7 @@ static int dissect_TSRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- End of included file: packet-credssp-fn.c ---*/
-#line 61 "../../asn1/credssp/packet-credssp-template.c"
+#line 61 "./asn1/credssp/packet-credssp-template.c"
/*
* Dissect CredSSP PDUs
@@ -426,7 +426,7 @@ void proto_register_credssp(void) {
NULL, HFILL }},
/*--- Included file: packet-credssp-hfarr.c ---*/
-#line 1 "../../asn1/credssp/packet-credssp-hfarr.c"
+#line 1 "./asn1/credssp/packet-credssp-hfarr.c"
{ &hf_credssp_TSRequest_PDU,
{ "TSRequest", "credssp.TSRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -513,7 +513,7 @@ void proto_register_credssp(void) {
"OCTET_STRING", HFILL }},
/*--- End of included file: packet-credssp-hfarr.c ---*/
-#line 153 "../../asn1/credssp/packet-credssp-template.c"
+#line 153 "./asn1/credssp/packet-credssp-template.c"
};
/* List of subtrees */
@@ -521,7 +521,7 @@ void proto_register_credssp(void) {
&ett_credssp,
/*--- Included file: packet-credssp-ettarr.c ---*/
-#line 1 "../../asn1/credssp/packet-credssp-ettarr.c"
+#line 1 "./asn1/credssp/packet-credssp-ettarr.c"
&ett_credssp_NegoData,
&ett_credssp_NegoData_item,
&ett_credssp_TSPasswordCreds,
@@ -531,7 +531,7 @@ void proto_register_credssp(void) {
&ett_credssp_TSRequest,
/*--- End of included file: packet-credssp-ettarr.c ---*/
-#line 159 "../../asn1/credssp/packet-credssp-template.c"
+#line 159 "./asn1/credssp/packet-credssp-template.c"
};
diff --git a/epan/dissectors/packet-credssp.h b/epan/dissectors/packet-credssp.h
index c3b53427af..e4135736c0 100644
--- a/epan/dissectors/packet-credssp.h
+++ b/epan/dissectors/packet-credssp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-credssp.h */
-/* ../../tools/asn2wrs.py -b -C -p credssp -c ./credssp.cnf -s ./packet-credssp-template -D . -O ../../epan/dissectors CredSSP.asn */
+/* asn2wrs.py -b -C -p credssp -c ./credssp.cnf -s ./packet-credssp-template -D . -O ../.. CredSSP.asn */
/* Input file: packet-credssp-template.h */
-#line 1 "../../asn1/credssp/packet-credssp-template.h"
+#line 1 "./asn1/credssp/packet-credssp-template.h"
/* packet-credssp.h
* Routines for CredSSP (Credential Security Support Provider) packet dissection
* Graeme Lunt 2011
@@ -34,10 +34,10 @@
/*--- Included file: packet-credssp-val.h ---*/
-#line 1 "../../asn1/credssp/packet-credssp-val.h"
+#line 1 "./asn1/credssp/packet-credssp-val.h"
/*--- End of included file: packet-credssp-val.h ---*/
-#line 28 "../../asn1/credssp/packet-credssp-template.h"
+#line 28 "./asn1/credssp/packet-credssp-template.h"
void proto_reg_handoff_credssp(void);
void proto_register_credssp(void);
diff --git a/epan/dissectors/packet-crmf.c b/epan/dissectors/packet-crmf.c
index 38311c5fd6..825eca161d 100644
--- a/epan/dissectors/packet-crmf.c
+++ b/epan/dissectors/packet-crmf.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-crmf.c */
-/* ../../tools/asn2wrs.py -b -p crmf -c ./crmf.cnf -s ./packet-crmf-template -D . -O ../../epan/dissectors CRMF.asn */
+/* asn2wrs.py -b -p crmf -c ./crmf.cnf -s ./packet-crmf-template -D . -O ../.. CRMF.asn */
/* Input file: packet-crmf-template.c */
-#line 1 "../../asn1/crmf/packet-crmf-template.c"
+#line 1 "./asn1/crmf/packet-crmf-template.c"
/* packet-crmf.c
* Routines for RFC2511 Certificate Request Message Format packet dissection
* Ronnie Sahlberg 2004
@@ -53,7 +53,7 @@ static int proto_crmf = -1;
static int hf_crmf_type_oid = -1;
/*--- Included file: packet-crmf-hf.c ---*/
-#line 1 "../../asn1/crmf/packet-crmf-hf.c"
+#line 1 "./asn1/crmf/packet-crmf-hf.c"
static int hf_crmf_CertRequest_PDU = -1; /* CertRequest */
static int hf_crmf_PBMParameter_PDU = -1; /* PBMParameter */
static int hf_crmf_RegToken_PDU = -1; /* RegToken */
@@ -136,12 +136,12 @@ static int hf_crmf_attributes = -1; /* Attributes */
static int hf_crmf_Attributes_item = -1; /* Attribute */
/*--- End of included file: packet-crmf-hf.c ---*/
-#line 47 "../../asn1/crmf/packet-crmf-template.c"
+#line 47 "./asn1/crmf/packet-crmf-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-crmf-ett.c ---*/
-#line 1 "../../asn1/crmf/packet-crmf-ett.c"
+#line 1 "./asn1/crmf/packet-crmf-ett.c"
static gint ett_crmf_CertReqMessages = -1;
static gint ett_crmf_CertReqMsg = -1;
static gint ett_crmf_SEQUENCE_SIZE_1_MAX_OF_AttributeTypeAndValue = -1;
@@ -170,10 +170,10 @@ static gint ett_crmf_PrivateKeyInfo = -1;
static gint ett_crmf_Attributes = -1;
/*--- End of included file: packet-crmf-ett.c ---*/
-#line 50 "../../asn1/crmf/packet-crmf-template.c"
+#line 50 "./asn1/crmf/packet-crmf-template.c"
/*--- Included file: packet-crmf-fn.c ---*/
-#line 1 "../../asn1/crmf/packet-crmf-fn.c"
+#line 1 "./asn1/crmf/packet-crmf-fn.c"
static int
@@ -235,7 +235,7 @@ dissect_crmf_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_crmf_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 72 "../../asn1/crmf/crmf.cnf"
+#line 72 "./asn1/crmf/crmf.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -903,7 +903,7 @@ static int dissect_EncKeyWithID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
/*--- End of included file: packet-crmf-fn.c ---*/
-#line 51 "../../asn1/crmf/packet-crmf-template.c"
+#line 51 "./asn1/crmf/packet-crmf-template.c"
/*--- proto_register_crmf ----------------------------------------------*/
@@ -917,7 +917,7 @@ void proto_register_crmf(void) {
"Type of AttributeTypeAndValue", HFILL }},
/*--- Included file: packet-crmf-hfarr.c ---*/
-#line 1 "../../asn1/crmf/packet-crmf-hfarr.c"
+#line 1 "./asn1/crmf/packet-crmf-hfarr.c"
{ &hf_crmf_CertRequest_PDU,
{ "CertRequest", "crmf.CertRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1240,14 +1240,14 @@ void proto_register_crmf(void) {
NULL, HFILL }},
/*--- End of included file: packet-crmf-hfarr.c ---*/
-#line 63 "../../asn1/crmf/packet-crmf-template.c"
+#line 63 "./asn1/crmf/packet-crmf-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-crmf-ettarr.c ---*/
-#line 1 "../../asn1/crmf/packet-crmf-ettarr.c"
+#line 1 "./asn1/crmf/packet-crmf-ettarr.c"
&ett_crmf_CertReqMessages,
&ett_crmf_CertReqMsg,
&ett_crmf_SEQUENCE_SIZE_1_MAX_OF_AttributeTypeAndValue,
@@ -1276,7 +1276,7 @@ void proto_register_crmf(void) {
&ett_crmf_Attributes,
/*--- End of included file: packet-crmf-ettarr.c ---*/
-#line 68 "../../asn1/crmf/packet-crmf-template.c"
+#line 68 "./asn1/crmf/packet-crmf-template.c"
};
/* Register protocol */
@@ -1296,7 +1296,7 @@ void proto_reg_handoff_crmf(void) {
oid_add_from_string("id-regInfo","1.3.6.1.5.5.7.5.2");
/*--- Included file: packet-crmf-dis-tab.c ---*/
-#line 1 "../../asn1/crmf/packet-crmf-dis-tab.c"
+#line 1 "./asn1/crmf/packet-crmf-dis-tab.c"
register_ber_oid_dissector("1.2.840.113549.1.9.16.1.21", dissect_EncKeyWithID_PDU, proto_crmf, "id-ct-encKeyWithID");
register_ber_oid_dissector("1.2.840.113533.7.66.13", dissect_PBMParameter_PDU, proto_crmf, "PasswordBasedMac");
register_ber_oid_dissector("1.3.6.1.5.5.7.5.1.1", dissect_RegToken_PDU, proto_crmf, "id-regCtrl-regToken");
@@ -1310,6 +1310,6 @@ void proto_reg_handoff_crmf(void) {
/*--- End of included file: packet-crmf-dis-tab.c ---*/
-#line 86 "../../asn1/crmf/packet-crmf-template.c"
+#line 86 "./asn1/crmf/packet-crmf-template.c"
}
diff --git a/epan/dissectors/packet-crmf.h b/epan/dissectors/packet-crmf.h
index 4086ba9346..189d6da94e 100644
--- a/epan/dissectors/packet-crmf.h
+++ b/epan/dissectors/packet-crmf.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-crmf.h */
-/* ../../tools/asn2wrs.py -b -p crmf -c ./crmf.cnf -s ./packet-crmf-template -D . -O ../../epan/dissectors CRMF.asn */
+/* asn2wrs.py -b -p crmf -c ./crmf.cnf -s ./packet-crmf-template -D . -O ../.. CRMF.asn */
/* Input file: packet-crmf-template.h */
-#line 1 "../../asn1/crmf/packet-crmf-template.h"
+#line 1 "./asn1/crmf/packet-crmf-template.h"
/* packet-crmf.h
* Routines for RFC2511 Certificate Request Message Format packet dissection
* Ronnie Sahlberg 2004
@@ -34,7 +34,7 @@
/*--- Included file: packet-crmf-exp.h ---*/
-#line 1 "../../asn1/crmf/packet-crmf-exp.h"
+#line 1 "./asn1/crmf/packet-crmf-exp.h"
extern const value_string crmf_ProofOfPossession_vals[];
extern const value_string crmf_POPOPrivKey_vals[];
extern const value_string crmf_SubsequentMessage_vals[];
@@ -72,7 +72,7 @@ int dissect_crmf_PrivateKeyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
int dissect_crmf_Attributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-crmf-exp.h ---*/
-#line 28 "../../asn1/crmf/packet-crmf-template.h"
+#line 28 "./asn1/crmf/packet-crmf-template.h"
#endif /* PACKET_CRMF_H */
diff --git a/epan/dissectors/packet-dap.c b/epan/dissectors/packet-dap.c
index a96f0373e9..579e8d9ce9 100644
--- a/epan/dissectors/packet-dap.c
+++ b/epan/dissectors/packet-dap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dap.c */
-/* ../../tools/asn2wrs.py -b -L -p dap -c ./dap.cnf -s ./packet-dap-template -D . -O ../../epan/dissectors dap.asn DirectoryAccessProtocol.asn */
+/* asn2wrs.py -b -L -p dap -c ./dap.cnf -s ./packet-dap-template -D . -O ../.. dap.asn DirectoryAccessProtocol.asn */
/* Input file: packet-dap-template.c */
-#line 1 "../../asn1/dap/packet-dap-template.c"
+#line 1 "./asn1/dap/packet-dap-template.c"
/* packet-dap.c
* Routines for X.511 (X.500 Directory Asbtract Service) and X.519 DAP packet dissection
* Graeme Lunt 2005
@@ -72,7 +72,7 @@ static int proto_dap = -1;
/*--- Included file: packet-dap-hf.c ---*/
-#line 1 "../../asn1/dap/packet-dap-hf.c"
+#line 1 "./asn1/dap/packet-dap-hf.c"
static int hf_dap_DirectoryBindArgument_PDU = -1; /* DirectoryBindArgument */
static int hf_dap_DirectoryBindResult_PDU = -1; /* DirectoryBindResult */
static int hf_dap_DirectoryBindError_PDU = -1; /* DirectoryBindError */
@@ -480,13 +480,13 @@ static int hf_dap_SearchControlOptions_separateFamilyMembers = -1;
static int hf_dap_SearchControlOptions_searchFamily = -1;
/*--- End of included file: packet-dap-hf.c ---*/
-#line 66 "../../asn1/dap/packet-dap-template.c"
+#line 66 "./asn1/dap/packet-dap-template.c"
/* Initialize the subtree pointers */
static gint ett_dap = -1;
/*--- Included file: packet-dap-ett.c ---*/
-#line 1 "../../asn1/dap/packet-dap-ett.c"
+#line 1 "./asn1/dap/packet-dap-ett.c"
static gint ett_dap_ServiceControls = -1;
static gint ett_dap_T_manageDSAITPlaneRef = -1;
static gint ett_dap_ServiceControlOptions = -1;
@@ -659,13 +659,13 @@ static gint ett_dap_UpdateError = -1;
static gint ett_dap_T_signedUpdateError = -1;
/*--- End of included file: packet-dap-ett.c ---*/
-#line 70 "../../asn1/dap/packet-dap-template.c"
+#line 70 "./asn1/dap/packet-dap-template.c"
static expert_field ei_dap_anonymous = EI_INIT;
/*--- Included file: packet-dap-val.h ---*/
-#line 1 "../../asn1/dap/packet-dap-val.h"
+#line 1 "./asn1/dap/packet-dap-val.h"
#define id_opcode_read 1
#define id_opcode_compare 2
#define id_opcode_abandon 3
@@ -686,11 +686,11 @@ static expert_field ei_dap_anonymous = EI_INIT;
#define id_errcode_dsaReferral 9
/*--- End of included file: packet-dap-val.h ---*/
-#line 74 "../../asn1/dap/packet-dap-template.c"
+#line 74 "./asn1/dap/packet-dap-template.c"
/*--- Included file: packet-dap-table.c ---*/
-#line 1 "../../asn1/dap/packet-dap-table.c"
+#line 1 "./asn1/dap/packet-dap-table.c"
/* DAP OPERATIONS */
const value_string dap_opr_code_string_vals[] = {
@@ -724,11 +724,11 @@ static const value_string dap_err_code_string_vals[] = {
/*--- End of included file: packet-dap-table.c ---*/
-#line 76 "../../asn1/dap/packet-dap-template.c"
+#line 76 "./asn1/dap/packet-dap-template.c"
/*--- Included file: packet-dap-fn.c ---*/
-#line 1 "../../asn1/dap/packet-dap-fn.c"
+#line 1 "./asn1/dap/packet-dap-fn.c"
/*--- Cyclic dependencies ---*/
/* FamilyEntries -> FamilyEntries/familyEntries -> FamilyEntry -> FamilyEntry/family-info -> FamilyEntries */
@@ -4774,11 +4774,11 @@ static int dissect_UpdateError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pr
/*--- End of included file: packet-dap-fn.c ---*/
-#line 78 "../../asn1/dap/packet-dap-template.c"
+#line 78 "./asn1/dap/packet-dap-template.c"
/*--- Included file: packet-dap-table11.c ---*/
-#line 1 "../../asn1/dap/packet-dap-table11.c"
+#line 1 "./asn1/dap/packet-dap-table11.c"
static const ros_opr_t dap_opr_tab[] = {
/* directoryBind */
@@ -4806,10 +4806,10 @@ static const ros_opr_t dap_opr_tab[] = {
/*--- End of included file: packet-dap-table11.c ---*/
-#line 80 "../../asn1/dap/packet-dap-template.c"
+#line 80 "./asn1/dap/packet-dap-template.c"
/*--- Included file: packet-dap-table21.c ---*/
-#line 1 "../../asn1/dap/packet-dap-table21.c"
+#line 1 "./asn1/dap/packet-dap-table21.c"
static const ros_err_t dap_err_tab[] = {
/* directoryBindError*/
@@ -4835,7 +4835,7 @@ static const ros_err_t dap_err_tab[] = {
/*--- End of included file: packet-dap-table21.c ---*/
-#line 81 "../../asn1/dap/packet-dap-template.c"
+#line 81 "./asn1/dap/packet-dap-template.c"
static const ros_info_t dap_ros_info = {
"DAP",
@@ -4856,7 +4856,7 @@ void proto_register_dap(void) {
{
/*--- Included file: packet-dap-hfarr.c ---*/
-#line 1 "../../asn1/dap/packet-dap-hfarr.c"
+#line 1 "./asn1/dap/packet-dap-hfarr.c"
{ &hf_dap_DirectoryBindArgument_PDU,
{ "DirectoryBindArgument", "dap.DirectoryBindArgument_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -6475,7 +6475,7 @@ void proto_register_dap(void) {
NULL, HFILL }},
/*--- End of included file: packet-dap-hfarr.c ---*/
-#line 100 "../../asn1/dap/packet-dap-template.c"
+#line 100 "./asn1/dap/packet-dap-template.c"
};
/* List of subtrees */
@@ -6483,7 +6483,7 @@ void proto_register_dap(void) {
&ett_dap,
/*--- Included file: packet-dap-ettarr.c ---*/
-#line 1 "../../asn1/dap/packet-dap-ettarr.c"
+#line 1 "./asn1/dap/packet-dap-ettarr.c"
&ett_dap_ServiceControls,
&ett_dap_T_manageDSAITPlaneRef,
&ett_dap_ServiceControlOptions,
@@ -6656,7 +6656,7 @@ void proto_register_dap(void) {
&ett_dap_T_signedUpdateError,
/*--- End of included file: packet-dap-ettarr.c ---*/
-#line 106 "../../asn1/dap/packet-dap-template.c"
+#line 106 "./asn1/dap/packet-dap-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-dap.h b/epan/dissectors/packet-dap.h
index 8953d174a6..04075a945c 100644
--- a/epan/dissectors/packet-dap.h
+++ b/epan/dissectors/packet-dap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dap.h */
-/* ../../tools/asn2wrs.py -b -L -p dap -c ./dap.cnf -s ./packet-dap-template -D . -O ../../epan/dissectors dap.asn DirectoryAccessProtocol.asn */
+/* asn2wrs.py -b -L -p dap -c ./dap.cnf -s ./packet-dap-template -D . -O ../.. dap.asn DirectoryAccessProtocol.asn */
/* Input file: packet-dap-template.h */
-#line 1 "../../asn1/dap/packet-dap-template.h"
+#line 1 "./asn1/dap/packet-dap-template.h"
/* packet-dap.h
* Routines for X.511 (X.500 Directory Access Protocol) packet dissection
* Graeme Lunt 2005
@@ -34,7 +34,7 @@
/*--- Included file: packet-dap-exp.h ---*/
-#line 1 "../../asn1/dap/packet-dap-exp.h"
+#line 1 "./asn1/dap/packet-dap-exp.h"
extern const value_string dap_FamilyGrouping_vals[];
extern const value_string dap_ContextSelection_vals[];
extern const value_string dap_Filter_vals[];
@@ -106,6 +106,6 @@ int dissect_dap_ServiceError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
int dissect_dap_UpdateError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-dap-exp.h ---*/
-#line 28 "../../asn1/dap/packet-dap-template.h"
+#line 28 "./asn1/dap/packet-dap-template.h"
#endif /* PACKET_DAP_H */
diff --git a/epan/dissectors/packet-disp.c b/epan/dissectors/packet-disp.c
index 78ff92348c..7102b54d1e 100644
--- a/epan/dissectors/packet-disp.c
+++ b/epan/dissectors/packet-disp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-disp.c */
-/* ../../tools/asn2wrs.py -b -p disp -c ./disp.cnf -s ./packet-disp-template -D . -O ../../epan/dissectors disp.asn */
+/* asn2wrs.py -b -p disp -c ./disp.cnf -s ./packet-disp-template -D . -O ../.. disp.asn */
/* Input file: packet-disp-template.c */
-#line 1 "../../asn1/disp/packet-disp-template.c"
+#line 1 "./asn1/disp/packet-disp-template.c"
/* packet-disp.c
* Routines for X.525 (X.500 Directory Shadow Asbtract Service) and X.519 DISP packet dissection
* Graeme Lunt 2005
@@ -72,7 +72,7 @@ static int proto_disp = -1;
/*--- Included file: packet-disp-hf.c ---*/
-#line 1 "../../asn1/disp/packet-disp-hf.c"
+#line 1 "./asn1/disp/packet-disp-hf.c"
static int hf_disp_EstablishParameter_PDU = -1; /* EstablishParameter */
static int hf_disp_ModificationParameter_PDU = -1; /* ModificationParameter */
static int hf_disp_ShadowingAgreementInfo_PDU = -1; /* ShadowingAgreementInfo */
@@ -182,13 +182,13 @@ static int hf_disp_signedShadowError = -1; /* T_signedShadowError */
static int hf_disp_shadowError = -1; /* ShadowErrorData */
/*--- End of included file: packet-disp-hf.c ---*/
-#line 66 "../../asn1/disp/packet-disp-template.c"
+#line 66 "./asn1/disp/packet-disp-template.c"
/* Initialize the subtree pointers */
static gint ett_disp = -1;
/*--- Included file: packet-disp-ett.c ---*/
-#line 1 "../../asn1/disp/packet-disp-ett.c"
+#line 1 "./asn1/disp/packet-disp-ett.c"
static gint ett_disp_ModificationParameter = -1;
static gint ett_disp_SET_OF_SupplierAndConsumers = -1;
static gint ett_disp_ShadowingAgreementInfo = -1;
@@ -245,7 +245,7 @@ static gint ett_disp_ShadowError = -1;
static gint ett_disp_T_signedShadowError = -1;
/*--- End of included file: packet-disp-ett.c ---*/
-#line 70 "../../asn1/disp/packet-disp-template.c"
+#line 70 "./asn1/disp/packet-disp-template.c"
static expert_field ei_disp_unsupported_opcode = EI_INIT;
static expert_field ei_disp_unsupported_errcode = EI_INIT;
@@ -254,7 +254,7 @@ static expert_field ei_disp_zero_pdu = EI_INIT;
/*--- Included file: packet-disp-fn.c ---*/
-#line 1 "../../asn1/disp/packet-disp-fn.c"
+#line 1 "./asn1/disp/packet-disp-fn.c"
/*--- Cyclic dependencies ---*/
/* Subtree -> Subtree/subtree -> Subtree */
@@ -660,7 +660,7 @@ static const value_string disp_StandardUpdate_vals[] = {
static int
dissect_disp_StandardUpdate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 63 "../../asn1/disp/disp.cnf"
+#line 63 "./asn1/disp/disp.cnf"
guint32 update;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -850,7 +850,7 @@ static const ber_choice_t CoordinateShadowUpdateResult_choice[] = {
static int
dissect_disp_CoordinateShadowUpdateResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 73 "../../asn1/disp/disp.cnf"
+#line 73 "./asn1/disp/disp.cnf"
guint32 update;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -875,7 +875,7 @@ static const value_string disp_T_standard_vals[] = {
static int
dissect_disp_T_standard(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 43 "../../asn1/disp/disp.cnf"
+#line 43 "./asn1/disp/disp.cnf"
guint32 update;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -975,7 +975,7 @@ static const ber_choice_t RequestShadowUpdateResult_choice[] = {
static int
dissect_disp_RequestShadowUpdateResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 83 "../../asn1/disp/disp.cnf"
+#line 83 "./asn1/disp/disp.cnf"
guint32 update;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1277,7 +1277,7 @@ static const ber_choice_t RefreshInformation_choice[] = {
static int
dissect_disp_RefreshInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 53 "../../asn1/disp/disp.cnf"
+#line 53 "./asn1/disp/disp.cnf"
guint32 update;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1357,7 +1357,7 @@ static const ber_choice_t UpdateShadowResult_choice[] = {
static int
dissect_disp_UpdateShadowResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 93 "../../asn1/disp/disp.cnf"
+#line 93 "./asn1/disp/disp.cnf"
guint32 update;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1391,7 +1391,7 @@ static const value_string disp_ShadowProblem_vals[] = {
static int
dissect_disp_ShadowProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 103 "../../asn1/disp/disp.cnf"
+#line 103 "./asn1/disp/disp.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -1482,7 +1482,7 @@ static int dissect_ShadowingAgreementInfo_PDU(tvbuff_t *tvb _U_, packet_info *pi
/*--- End of included file: packet-disp-fn.c ---*/
-#line 77 "../../asn1/disp/packet-disp-template.c"
+#line 77 "./asn1/disp/packet-disp-template.c"
/*
* Dissect DISP PDUs inside a ROS PDUs
@@ -1609,7 +1609,7 @@ void proto_register_disp(void) {
{
/*--- Included file: packet-disp-hfarr.c ---*/
-#line 1 "../../asn1/disp/packet-disp-hfarr.c"
+#line 1 "./asn1/disp/packet-disp-hfarr.c"
{ &hf_disp_EstablishParameter_PDU,
{ "EstablishParameter", "disp.EstablishParameter_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2040,7 +2040,7 @@ void proto_register_disp(void) {
"ShadowErrorData", HFILL }},
/*--- End of included file: packet-disp-hfarr.c ---*/
-#line 202 "../../asn1/disp/packet-disp-template.c"
+#line 202 "./asn1/disp/packet-disp-template.c"
};
/* List of subtrees */
@@ -2048,7 +2048,7 @@ void proto_register_disp(void) {
&ett_disp,
/*--- Included file: packet-disp-ettarr.c ---*/
-#line 1 "../../asn1/disp/packet-disp-ettarr.c"
+#line 1 "./asn1/disp/packet-disp-ettarr.c"
&ett_disp_ModificationParameter,
&ett_disp_SET_OF_SupplierAndConsumers,
&ett_disp_ShadowingAgreementInfo,
@@ -2105,7 +2105,7 @@ void proto_register_disp(void) {
&ett_disp_T_signedShadowError,
/*--- End of included file: packet-disp-ettarr.c ---*/
-#line 208 "../../asn1/disp/packet-disp-template.c"
+#line 208 "./asn1/disp/packet-disp-template.c"
};
static ei_register_info ei[] = {
@@ -2146,7 +2146,7 @@ void proto_reg_handoff_disp(void) {
/*--- Included file: packet-disp-dis-tab.c ---*/
-#line 1 "../../asn1/disp/packet-disp-dis-tab.c"
+#line 1 "./asn1/disp/packet-disp-dis-tab.c"
dissector_add_string("dop.oid", "agreement.2.5.19.1", create_dissector_handle(dissect_ShadowingAgreementInfo_PDU, proto_disp));
dissector_add_string("dop.oid", "establish.rolea.2.5.19.1", create_dissector_handle(dissect_EstablishParameter_PDU, proto_disp));
dissector_add_string("dop.oid", "establish.roleb.2.5.19.1", create_dissector_handle(dissect_EstablishParameter_PDU, proto_disp));
@@ -2155,7 +2155,7 @@ void proto_reg_handoff_disp(void) {
/*--- End of included file: packet-disp-dis-tab.c ---*/
-#line 247 "../../asn1/disp/packet-disp-template.c"
+#line 247 "./asn1/disp/packet-disp-template.c"
/* APPLICATION CONTEXT */
diff --git a/epan/dissectors/packet-disp.h b/epan/dissectors/packet-disp.h
index 8ba77bd069..39bed02222 100644
--- a/epan/dissectors/packet-disp.h
+++ b/epan/dissectors/packet-disp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-disp.h */
-/* ../../tools/asn2wrs.py -b -p disp -c ./disp.cnf -s ./packet-disp-template -D . -O ../../epan/dissectors disp.asn */
+/* asn2wrs.py -b -p disp -c ./disp.cnf -s ./packet-disp-template -D . -O ../.. disp.asn */
/* Input file: packet-disp-template.h */
-#line 1 "../../asn1/disp/packet-disp-template.h"
+#line 1 "./asn1/disp/packet-disp-template.h"
/* packet-disp.h
* Routines for X.525 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -34,10 +34,10 @@
/*--- Included file: packet-disp-exp.h ---*/
-#line 1 "../../asn1/disp/packet-disp-exp.h"
+#line 1 "./asn1/disp/packet-disp-exp.h"
int dissect_disp_AgreementID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-disp-exp.h ---*/
-#line 28 "../../asn1/disp/packet-disp-template.h"
+#line 28 "./asn1/disp/packet-disp-template.h"
#endif /* PACKET_DISP_H */
diff --git a/epan/dissectors/packet-dop.c b/epan/dissectors/packet-dop.c
index d31058a15b..ca886db20c 100644
--- a/epan/dissectors/packet-dop.c
+++ b/epan/dissectors/packet-dop.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dop.c */
-/* ../../tools/asn2wrs.py -b -p dop -c ./dop.cnf -s ./packet-dop-template -D . -O ../../epan/dissectors dop.asn */
+/* asn2wrs.py -b -p dop -c ./dop.cnf -s ./packet-dop-template -D . -O ../.. dop.asn */
/* Input file: packet-dop-template.c */
-#line 1 "../../asn1/dop/packet-dop-template.c"
+#line 1 "./asn1/dop/packet-dop-template.c"
/* packet-dop.c
* Routines for X.501 (DSA Operational Attributes) packet dissection
* Graeme Lunt 2005
@@ -71,7 +71,7 @@ static int call_dop_oid_callback(const char *base_string, tvbuff_t *tvb, int off
/*--- Included file: packet-dop-hf.c ---*/
-#line 1 "../../asn1/dop/packet-dop-hf.c"
+#line 1 "./asn1/dop/packet-dop-hf.c"
static int hf_dop_DSEType_PDU = -1; /* DSEType */
static int hf_dop_SupplierInformation_PDU = -1; /* SupplierInformation */
static int hf_dop_ConsumerInformation_PDU = -1; /* ConsumerInformation */
@@ -265,14 +265,14 @@ static int hf_dop_GrantsAndDenials_grantInvoke = -1;
static int hf_dop_GrantsAndDenials_denyInvoke = -1;
/*--- End of included file: packet-dop-hf.c ---*/
-#line 65 "../../asn1/dop/packet-dop-template.c"
+#line 65 "./asn1/dop/packet-dop-template.c"
/* Initialize the subtree pointers */
static gint ett_dop = -1;
static gint ett_dop_unknown = -1;
/*--- Included file: packet-dop-ett.c ---*/
-#line 1 "../../asn1/dop/packet-dop-ett.c"
+#line 1 "./asn1/dop/packet-dop-ett.c"
static gint ett_dop_DSEType = -1;
static gint ett_dop_SupplierOrConsumer = -1;
static gint ett_dop_SET_OF_ProtocolInformation = -1;
@@ -342,7 +342,7 @@ static gint ett_dop_T_basicLevels = -1;
static gint ett_dop_GrantsAndDenials = -1;
/*--- End of included file: packet-dop-ett.c ---*/
-#line 70 "../../asn1/dop/packet-dop-template.c"
+#line 70 "./asn1/dop/packet-dop-template.c"
static expert_field ei_dop_unknown_binding_parameter = EI_INIT;
static expert_field ei_dop_unsupported_opcode = EI_INIT;
@@ -363,7 +363,7 @@ static void append_oid(packet_info *pinfo, const char *oid)
/*--- Included file: packet-dop-fn.c ---*/
-#line 1 "../../asn1/dop/packet-dop-fn.c"
+#line 1 "./asn1/dop/packet-dop-fn.c"
static const asn_namedbit DSEType_bits[] = {
{ 0, &hf_dop_DSEType_root, -1, -1, "root", NULL },
@@ -414,7 +414,7 @@ dissect_dop_SET_OF_ProtocolInformation(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_dop_T_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "../../asn1/dop/dop.cnf"
+#line 179 "./asn1/dop/dop.cnf"
guint32 value;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -434,7 +434,7 @@ dissect_dop_T_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_dop_T_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 188 "../../asn1/dop/dop.cnf"
+#line 188 "./asn1/dop/dop.cnf"
guint32 value;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -580,7 +580,7 @@ static int
dissect_dop_BindingType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &binding_type);
-#line 110 "../../asn1/dop/dop.cnf"
+#line 110 "./asn1/dop/dop.cnf"
append_oid(actx->pinfo, binding_type);
return offset;
@@ -590,7 +590,7 @@ dissect_dop_BindingType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_dop_EstablishSymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 114 "../../asn1/dop/dop.cnf"
+#line 114 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
@@ -603,7 +603,7 @@ dissect_dop_EstablishSymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_dop_EstablishRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 118 "../../asn1/dop/dop.cnf"
+#line 118 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
@@ -616,7 +616,7 @@ dissect_dop_EstablishRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_dop_EstablishRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 122 "../../asn1/dop/dop.cnf"
+#line 122 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
@@ -653,7 +653,7 @@ dissect_dop_EstablishArgumentInitiator(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_dop_T_agreement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 150 "../../asn1/dop/dop.cnf"
+#line 150 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
@@ -837,7 +837,7 @@ dissect_dop_EstablishOperationalBindingArgument(gboolean implicit_tag _U_, tvbuf
static int
dissect_dop_T_symmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 154 "../../asn1/dop/dop.cnf"
+#line 154 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
@@ -850,7 +850,7 @@ dissect_dop_T_symmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_dop_T_roleA_replies(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 158 "../../asn1/dop/dop.cnf"
+#line 158 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
@@ -863,7 +863,7 @@ dissect_dop_T_roleA_replies(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_dop_T_roleB_replies(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 162 "../../asn1/dop/dop.cnf"
+#line 162 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
@@ -934,7 +934,7 @@ dissect_dop_EstablishOperationalBindingResult(gboolean implicit_tag _U_, tvbuff_
static int
dissect_dop_ModifySymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 126 "../../asn1/dop/dop.cnf"
+#line 126 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("modify.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
@@ -947,7 +947,7 @@ dissect_dop_ModifySymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_dop_ModifyRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 130 "../../asn1/dop/dop.cnf"
+#line 130 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("modify.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
@@ -960,7 +960,7 @@ dissect_dop_ModifyRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_dop_ModifyRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 134 "../../asn1/dop/dop.cnf"
+#line 134 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("modify.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
@@ -997,7 +997,7 @@ dissect_dop_ModifyArgumentInitiator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_dop_ArgumentNewAgreement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 174 "../../asn1/dop/dop.cnf"
+#line 174 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
@@ -1064,7 +1064,7 @@ dissect_dop_ModifyOperationalBindingArgument(gboolean implicit_tag _U_, tvbuff_t
static int
dissect_dop_ResultNewAgreement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 170 "../../asn1/dop/dop.cnf"
+#line 170 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
@@ -1130,7 +1130,7 @@ dissect_dop_ModifyOperationalBindingResult(gboolean implicit_tag _U_, tvbuff_t *
static int
dissect_dop_TerminateSymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 138 "../../asn1/dop/dop.cnf"
+#line 138 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("terminate.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
@@ -1143,7 +1143,7 @@ dissect_dop_TerminateSymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_dop_TerminateRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 142 "../../asn1/dop/dop.cnf"
+#line 142 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("terminate.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
@@ -1156,7 +1156,7 @@ dissect_dop_TerminateRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_dop_TerminateRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 146 "../../asn1/dop/dop.cnf"
+#line 146 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("terminate.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
@@ -1320,7 +1320,7 @@ dissect_dop_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_dop_T_agreementProposal(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 166 "../../asn1/dop/dop.cnf"
+#line 166 "./asn1/dop/dop.cnf"
offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
@@ -1532,7 +1532,7 @@ dissect_dop_NHOBSubordinateToSuperior(gboolean implicit_tag _U_, tvbuff_t *tvb _
static int
dissect_dop_Precedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 197 "../../asn1/dop/dop.cnf"
+#line 197 "./asn1/dop/dop.cnf"
guint32 precedence = 0;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2041,7 +2041,7 @@ static int dissect_ACIItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-dop-fn.c ---*/
-#line 89 "../../asn1/dop/packet-dop-template.c"
+#line 89 "./asn1/dop/packet-dop-template.c"
static int
call_dop_oid_callback(const char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const char *col_info, void* data)
@@ -2195,7 +2195,7 @@ void proto_register_dop(void) {
{
/*--- Included file: packet-dop-hfarr.c ---*/
-#line 1 "../../asn1/dop/packet-dop-hfarr.c"
+#line 1 "./asn1/dop/packet-dop-hfarr.c"
{ &hf_dop_DSEType_PDU,
{ "DSEType", "dop.DSEType",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2958,7 +2958,7 @@ void proto_register_dop(void) {
NULL, HFILL }},
/*--- End of included file: packet-dop-hfarr.c ---*/
-#line 241 "../../asn1/dop/packet-dop-template.c"
+#line 241 "./asn1/dop/packet-dop-template.c"
};
/* List of subtrees */
@@ -2967,7 +2967,7 @@ void proto_register_dop(void) {
&ett_dop_unknown,
/*--- Included file: packet-dop-ettarr.c ---*/
-#line 1 "../../asn1/dop/packet-dop-ettarr.c"
+#line 1 "./asn1/dop/packet-dop-ettarr.c"
&ett_dop_DSEType,
&ett_dop_SupplierOrConsumer,
&ett_dop_SET_OF_ProtocolInformation,
@@ -3037,7 +3037,7 @@ void proto_register_dop(void) {
&ett_dop_GrantsAndDenials,
/*--- End of included file: packet-dop-ettarr.c ---*/
-#line 248 "../../asn1/dop/packet-dop-template.c"
+#line 248 "./asn1/dop/packet-dop-template.c"
};
static ei_register_info ei[] = {
@@ -3083,7 +3083,7 @@ void proto_reg_handoff_dop(void) {
/*--- Included file: packet-dop-dis-tab.c ---*/
-#line 1 "../../asn1/dop/packet-dop-dis-tab.c"
+#line 1 "./asn1/dop/packet-dop-dis-tab.c"
register_ber_oid_dissector("2.5.12.0", dissect_DSEType_PDU, proto_dop, "id-doa-dseType");
register_ber_oid_dissector("2.5.12.5", dissect_SupplierInformation_PDU, proto_dop, "id-doa-supplierKnowledge");
register_ber_oid_dissector("2.5.12.6", dissect_ConsumerInformation_PDU, proto_dop, "id-doa-consumerKnowledge");
@@ -3104,7 +3104,7 @@ void proto_reg_handoff_dop(void) {
/*--- End of included file: packet-dop-dis-tab.c ---*/
-#line 292 "../../asn1/dop/packet-dop-template.c"
+#line 292 "./asn1/dop/packet-dop-template.c"
/* APPLICATION CONTEXT */
oid_add_from_string("id-ac-directory-operational-binding-management","2.5.3.3");
diff --git a/epan/dissectors/packet-dop.h b/epan/dissectors/packet-dop.h
index cf7c45f489..8746971481 100644
--- a/epan/dissectors/packet-dop.h
+++ b/epan/dissectors/packet-dop.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dop.h */
-/* ../../tools/asn2wrs.py -b -p dop -c ./dop.cnf -s ./packet-dop-template -D . -O ../../epan/dissectors dop.asn */
+/* asn2wrs.py -b -p dop -c ./dop.cnf -s ./packet-dop-template -D . -O ../.. dop.asn */
/* Input file: packet-dop-template.h */
-#line 1 "../../asn1/dop/packet-dop-template.h"
+#line 1 "./asn1/dop/packet-dop-template.h"
/* packet-x501.h
* Routines for X.501 (DSA Operational Attributes) packet dissection
* Graeme Lunt 2005
@@ -34,12 +34,12 @@
/*--- Included file: packet-dop-exp.h ---*/
-#line 1 "../../asn1/dop/packet-dop-exp.h"
+#line 1 "./asn1/dop/packet-dop-exp.h"
int dissect_dop_DSEType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dop_SupplierAndConsumers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dop_OperationalBindingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-dop-exp.h ---*/
-#line 28 "../../asn1/dop/packet-dop-template.h"
+#line 28 "./asn1/dop/packet-dop-template.h"
#endif /* PACKET_X501_H */
diff --git a/epan/dissectors/packet-dsp.c b/epan/dissectors/packet-dsp.c
index 276d67b84a..2905ef6d3e 100644
--- a/epan/dissectors/packet-dsp.c
+++ b/epan/dissectors/packet-dsp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dsp.c */
-/* ../../tools/asn2wrs.py -b -p dsp -c ./dsp.cnf -s ./packet-dsp-template -D . -O ../../epan/dissectors dsp.asn */
+/* asn2wrs.py -b -p dsp -c ./dsp.cnf -s ./packet-dsp-template -D . -O ../.. dsp.asn */
/* Input file: packet-dsp-template.c */
-#line 1 "../../asn1/dsp/packet-dsp-template.c"
+#line 1 "./asn1/dsp/packet-dsp-template.c"
/* packet-dsp.c
* Routines for X.518 (X.500 Distributed Operations) packet dissection
* Graeme Lunt 2005
@@ -66,7 +66,7 @@ static int proto_dsp = -1;
/*--- Included file: packet-dsp-hf.c ---*/
-#line 1 "../../asn1/dsp/packet-dsp-hf.c"
+#line 1 "./asn1/dsp/packet-dsp-hf.c"
static int hf_dsp_AccessPoint_PDU = -1; /* AccessPoint */
static int hf_dsp_MasterAndShadowAccessPoints_PDU = -1; /* MasterAndShadowAccessPoints */
static int hf_dsp_DitBridgeKnowledge_PDU = -1; /* DitBridgeKnowledge */
@@ -206,13 +206,13 @@ static int hf_dsp_signed = -1; /* BOOLEAN */
static int hf_dsp_other = -1; /* EXTERNAL */
/*--- End of included file: packet-dsp-hf.c ---*/
-#line 60 "../../asn1/dsp/packet-dsp-template.c"
+#line 60 "./asn1/dsp/packet-dsp-template.c"
/* Initialize the subtree pointers */
static gint ett_dsp = -1;
/*--- Included file: packet-dsp-ett.c ---*/
-#line 1 "../../asn1/dsp/packet-dsp-ett.c"
+#line 1 "./asn1/dsp/packet-dsp-ett.c"
static gint ett_dsp_ChainedReadArgumentData = -1;
static gint ett_dsp_ChainedReadArgument = -1;
static gint ett_dsp_T_signedChainedReadArgument = -1;
@@ -286,7 +286,7 @@ static gint ett_dsp_AuthenticationLevel = -1;
static gint ett_dsp_T_basicLevels = -1;
/*--- End of included file: packet-dsp-ett.c ---*/
-#line 64 "../../asn1/dsp/packet-dsp-template.c"
+#line 64 "./asn1/dsp/packet-dsp-template.c"
static expert_field ei_dsp_unsupported_opcode = EI_INIT;
static expert_field ei_dsp_unsupported_errcode = EI_INIT;
@@ -295,7 +295,7 @@ static expert_field ei_dsp_zero_pdu = EI_INIT;
/*--- Included file: packet-dsp-fn.c ---*/
-#line 1 "../../asn1/dsp/packet-dsp-fn.c"
+#line 1 "./asn1/dsp/packet-dsp-fn.c"
static int
@@ -1693,7 +1693,7 @@ static int dissect_DitBridgeKnowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
/*--- End of included file: packet-dsp-fn.c ---*/
-#line 71 "../../asn1/dsp/packet-dsp-template.c"
+#line 71 "./asn1/dsp/packet-dsp-template.c"
/*
* Dissect X518 PDUs inside a ROS PDUs
@@ -1898,7 +1898,7 @@ void proto_register_dsp(void) {
{
/*--- Included file: packet-dsp-hfarr.c ---*/
-#line 1 "../../asn1/dsp/packet-dsp-hfarr.c"
+#line 1 "./asn1/dsp/packet-dsp-hfarr.c"
{ &hf_dsp_AccessPoint_PDU,
{ "AccessPoint", "dsp.AccessPoint_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2449,7 +2449,7 @@ void proto_register_dsp(void) {
"EXTERNAL", HFILL }},
/*--- End of included file: packet-dsp-hfarr.c ---*/
-#line 274 "../../asn1/dsp/packet-dsp-template.c"
+#line 274 "./asn1/dsp/packet-dsp-template.c"
};
/* List of subtrees */
@@ -2457,7 +2457,7 @@ void proto_register_dsp(void) {
&ett_dsp,
/*--- Included file: packet-dsp-ettarr.c ---*/
-#line 1 "../../asn1/dsp/packet-dsp-ettarr.c"
+#line 1 "./asn1/dsp/packet-dsp-ettarr.c"
&ett_dsp_ChainedReadArgumentData,
&ett_dsp_ChainedReadArgument,
&ett_dsp_T_signedChainedReadArgument,
@@ -2531,7 +2531,7 @@ void proto_register_dsp(void) {
&ett_dsp_T_basicLevels,
/*--- End of included file: packet-dsp-ettarr.c ---*/
-#line 280 "../../asn1/dsp/packet-dsp-template.c"
+#line 280 "./asn1/dsp/packet-dsp-template.c"
};
static ei_register_info ei[] = {
{ &ei_dsp_unsupported_opcode, { "dsp.unsupported_opcode", PI_UNDECODED, PI_WARN, "Unsupported DSP opcode", EXPFILL }},
@@ -2573,7 +2573,7 @@ void proto_reg_handoff_dsp(void) {
/*--- Included file: packet-dsp-dis-tab.c ---*/
-#line 1 "../../asn1/dsp/packet-dsp-dis-tab.c"
+#line 1 "./asn1/dsp/packet-dsp-dis-tab.c"
register_ber_oid_dissector("2.5.12.1", dissect_AccessPoint_PDU, proto_dsp, "id-doa-myAccessPoint");
register_ber_oid_dissector("2.5.12.2", dissect_AccessPoint_PDU, proto_dsp, "id-doa-superiorKnowledge");
register_ber_oid_dissector("2.5.12.3", dissect_MasterAndShadowAccessPoints_PDU, proto_dsp, "id-doa-specificKnowledge");
@@ -2582,7 +2582,7 @@ void proto_reg_handoff_dsp(void) {
/*--- End of included file: packet-dsp-dis-tab.c ---*/
-#line 320 "../../asn1/dsp/packet-dsp-template.c"
+#line 320 "./asn1/dsp/packet-dsp-template.c"
/* APPLICATION CONTEXT */
diff --git a/epan/dissectors/packet-dsp.h b/epan/dissectors/packet-dsp.h
index b960693fd2..014bd3f913 100644
--- a/epan/dissectors/packet-dsp.h
+++ b/epan/dissectors/packet-dsp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dsp.h */
-/* ../../tools/asn2wrs.py -b -p dsp -c ./dsp.cnf -s ./packet-dsp-template -D . -O ../../epan/dissectors dsp.asn */
+/* asn2wrs.py -b -p dsp -c ./dsp.cnf -s ./packet-dsp-template -D . -O ../.. dsp.asn */
/* Input file: packet-dsp-template.h */
-#line 1 "../../asn1/dsp/packet-dsp-template.h"
+#line 1 "./asn1/dsp/packet-dsp-template.h"
/* packet-dsp.h
* Routines for X.511 (X.500 Directory Access Protocol) packet dissection
* Graeme Lunt 2005
@@ -34,7 +34,7 @@
/*--- Included file: packet-dsp-exp.h ---*/
-#line 1 "../../asn1/dsp/packet-dsp-exp.h"
+#line 1 "./asn1/dsp/packet-dsp-exp.h"
extern const value_string dsp_ReferenceType_vals[];
int dissect_dsp_OperationProgress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dsp_ReferenceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -45,6 +45,6 @@ int dissect_dsp_Exclusions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
int dissect_dsp_ContinuationReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-dsp-exp.h ---*/
-#line 28 "../../asn1/dsp/packet-dsp-template.h"
+#line 28 "./asn1/dsp/packet-dsp-template.h"
#endif /* PACKET_DSP_H */
diff --git a/epan/dissectors/packet-ess.c b/epan/dissectors/packet-ess.c
index b040e2392a..c77e4f0625 100644
--- a/epan/dissectors/packet-ess.c
+++ b/epan/dissectors/packet-ess.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ess.c */
-/* ../../tools/asn2wrs.py -b -k -C -p ess -c ./ess.cnf -s ./packet-ess-template -D . -O ../../epan/dissectors ExtendedSecurityServices.asn */
+/* asn2wrs.py -b -k -C -p ess -c ./ess.cnf -s ./packet-ess-template -D . -O ../.. ExtendedSecurityServices.asn */
/* Input file: packet-ess-template.c */
-#line 1 "../../asn1/ess/packet-ess-template.c"
+#line 1 "./asn1/ess/packet-ess-template.c"
/* packet-ess.c
* Routines for RFC 2634 and RFC 5035 Extended Security Services packet
* dissection
@@ -69,7 +69,7 @@ static gint ett_Category_attributes = -1;
/*--- Included file: packet-ess-hf.c ---*/
-#line 1 "../../asn1/ess/packet-ess-hf.c"
+#line 1 "./asn1/ess/packet-ess-hf.c"
static int hf_ess_ReceiptRequest_PDU = -1; /* ReceiptRequest */
static int hf_ess_ContentIdentifier_PDU = -1; /* ContentIdentifier */
static int hf_ess_Receipt_PDU = -1; /* Receipt */
@@ -142,11 +142,11 @@ static int hf_ess_issuer = -1; /* GeneralNames */
static int hf_ess_serialNumber = -1; /* CertificateSerialNumber */
/*--- End of included file: packet-ess-hf.c ---*/
-#line 63 "../../asn1/ess/packet-ess-template.c"
+#line 63 "./asn1/ess/packet-ess-template.c"
/*--- Included file: packet-ess-val.h ---*/
-#line 1 "../../asn1/ess/packet-ess-val.h"
+#line 1 "./asn1/ess/packet-ess-val.h"
#define ub_receiptsTo 16
#define id_aa_receiptRequest "1.2.840.113549.1.9.16.2.1"
#define id_aa_contentIdentifier "1.2.840.113549.1.9.16.2.7"
@@ -166,12 +166,12 @@ static int hf_ess_serialNumber = -1; /* CertificateSerialNumber */
#define id_sha256 "2.16.840.1.101.3.4.2.1"
/*--- End of included file: packet-ess-val.h ---*/
-#line 65 "../../asn1/ess/packet-ess-template.c"
+#line 65 "./asn1/ess/packet-ess-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-ess-ett.c ---*/
-#line 1 "../../asn1/ess/packet-ess-ett.c"
+#line 1 "./asn1/ess/packet-ess-ett.c"
static gint ett_ess_ReceiptRequest = -1;
static gint ett_ess_SEQUENCE_SIZE_1_ub_receiptsTo_OF_GeneralNames = -1;
static gint ett_ess_ReceiptsFrom = -1;
@@ -205,7 +205,7 @@ static gint ett_ess_ESSCertID = -1;
static gint ett_ess_IssuerSerial = -1;
/*--- End of included file: packet-ess-ett.c ---*/
-#line 68 "../../asn1/ess/packet-ess-template.c"
+#line 68 "./asn1/ess/packet-ess-template.c"
static const char *object_identifier_id;
@@ -278,7 +278,7 @@ ess_dissect_attribute_flags (tvbuff_t *tvb, asn1_ctx_t *actx)
/*--- Included file: packet-ess-fn.c ---*/
-#line 1 "../../asn1/ess/packet-ess-fn.c"
+#line 1 "./asn1/ess/packet-ess-fn.c"
static int
@@ -405,7 +405,7 @@ static const ber_sequence_t Receipt_sequence[] = {
static int
dissect_ess_Receipt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 100 "../../asn1/ess/ess.cnf"
+#line 100 "./asn1/ess/ess.cnf"
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "ESS");
col_set_str(actx->pinfo->cinfo, COL_INFO, "Signed Receipt");
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -544,7 +544,7 @@ dissect_ess_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_ess_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 49 "../../asn1/ess/ess.cnf"
+#line 49 "./asn1/ess/ess.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -610,7 +610,7 @@ dissect_ess_T_restrictiveTagName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_ess_T_restrictiveAttributeFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 76 "../../asn1/ess/ess.cnf"
+#line 76 "./asn1/ess/ess.cnf"
tvbuff_t *attributes;
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
@@ -652,7 +652,7 @@ dissect_ess_T_tagName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_ess_SecurityAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "../../asn1/ess/ess.cnf"
+#line 67 "./asn1/ess/ess.cnf"
guint32 attribute;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -706,7 +706,7 @@ dissect_ess_T_permissiveTagName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_ess_T_permissiveAttributeFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 85 "../../asn1/ess/ess.cnf"
+#line 85 "./asn1/ess/ess.cnf"
tvbuff_t *attributes;
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
@@ -748,7 +748,7 @@ dissect_ess_T_informativeTagName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_ess_T_informativeAttributeFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 94 "../../asn1/ess/ess.cnf"
+#line 94 "./asn1/ess/ess.cnf"
tvbuff_t *attributes;
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
@@ -1153,7 +1153,7 @@ static int dissect_SigningCertificateV2_PDU(tvbuff_t *tvb _U_, packet_info *pinf
/*--- End of included file: packet-ess-fn.c ---*/
-#line 139 "../../asn1/ess/packet-ess-template.c"
+#line 139 "./asn1/ess/packet-ess-template.c"
/*--- proto_register_ess ----------------------------------------------*/
void proto_register_ess(void) {
@@ -1168,7 +1168,7 @@ void proto_register_ess(void) {
NULL, HFILL }},
/*--- Included file: packet-ess-hfarr.c ---*/
-#line 1 "../../asn1/ess/packet-ess-hfarr.c"
+#line 1 "./asn1/ess/packet-ess-hfarr.c"
{ &hf_ess_ReceiptRequest_PDU,
{ "ReceiptRequest", "ess.ReceiptRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1451,7 +1451,7 @@ void proto_register_ess(void) {
"CertificateSerialNumber", HFILL }},
/*--- End of included file: packet-ess-hfarr.c ---*/
-#line 152 "../../asn1/ess/packet-ess-template.c"
+#line 152 "./asn1/ess/packet-ess-template.c"
};
/* List of subtrees */
@@ -1459,7 +1459,7 @@ void proto_register_ess(void) {
&ett_Category_attributes,
/*--- Included file: packet-ess-ettarr.c ---*/
-#line 1 "../../asn1/ess/packet-ess-ettarr.c"
+#line 1 "./asn1/ess/packet-ess-ettarr.c"
&ett_ess_ReceiptRequest,
&ett_ess_SEQUENCE_SIZE_1_ub_receiptsTo_OF_GeneralNames,
&ett_ess_ReceiptsFrom,
@@ -1493,7 +1493,7 @@ void proto_register_ess(void) {
&ett_ess_IssuerSerial,
/*--- End of included file: packet-ess-ettarr.c ---*/
-#line 158 "../../asn1/ess/packet-ess-template.c"
+#line 158 "./asn1/ess/packet-ess-template.c"
};
static uat_field_t attributes_flds[] = {
@@ -1540,7 +1540,7 @@ void proto_register_ess(void) {
void proto_reg_handoff_ess(void) {
/*--- Included file: packet-ess-dis-tab.c ---*/
-#line 1 "../../asn1/ess/packet-ess-dis-tab.c"
+#line 1 "./asn1/ess/packet-ess-dis-tab.c"
register_ber_oid_dissector("1.2.840.113549.1.9.16.2.1", dissect_ReceiptRequest_PDU, proto_ess, "id-aa-receiptRequest");
register_ber_oid_dissector("1.2.840.113549.1.9.16.2.7", dissect_ContentIdentifier_PDU, proto_ess, "id-aa-contentIdentifier");
register_ber_oid_dissector("1.2.840.113549.1.9.16.1.1", dissect_Receipt_PDU, proto_ess, "id-ct-receipt");
@@ -1560,6 +1560,6 @@ void proto_reg_handoff_ess(void) {
/*--- End of included file: packet-ess-dis-tab.c ---*/
-#line 203 "../../asn1/ess/packet-ess-template.c"
+#line 203 "./asn1/ess/packet-ess-template.c"
}
diff --git a/epan/dissectors/packet-ess.h b/epan/dissectors/packet-ess.h
index 498bd3a0c6..07b0ee21f7 100644
--- a/epan/dissectors/packet-ess.h
+++ b/epan/dissectors/packet-ess.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ess.h */
-/* ../../tools/asn2wrs.py -b -k -C -p ess -c ./ess.cnf -s ./packet-ess-template -D . -O ../../epan/dissectors ExtendedSecurityServices.asn */
+/* asn2wrs.py -b -k -C -p ess -c ./ess.cnf -s ./packet-ess-template -D . -O ../.. ExtendedSecurityServices.asn */
/* Input file: packet-ess-template.h */
-#line 1 "../../asn1/ess/packet-ess-template.h"
+#line 1 "./asn1/ess/packet-ess-template.h"
/* packet-ess.h
* Routines for RFC5035 Extended Security Services packet dissection
* Ronnie Sahlberg 2004
@@ -35,11 +35,11 @@
/*--- Included file: packet-ess-exp.h ---*/
-#line 1 "../../asn1/ess/packet-ess-exp.h"
+#line 1 "./asn1/ess/packet-ess-exp.h"
int dissect_ess_ESSSecurityLabel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-ess-exp.h ---*/
-#line 29 "../../asn1/ess/packet-ess-template.h"
+#line 29 "./asn1/ess/packet-ess-template.h"
#endif /* PACKET_ESS_H */
diff --git a/epan/dissectors/packet-ftam.c b/epan/dissectors/packet-ftam.c
index d5372839a1..7e27fbbbca 100644
--- a/epan/dissectors/packet-ftam.c
+++ b/epan/dissectors/packet-ftam.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ftam.c */
-/* ../../tools/asn2wrs.py -b -p ftam -c ./ftam.cnf -s ./packet-ftam-template -D . -O ../../epan/dissectors ISO8571-FTAM.asn */
+/* asn2wrs.py -b -p ftam -c ./ftam.cnf -s ./packet-ftam-template -D . -O ../.. ISO8571-FTAM.asn */
/* Input file: packet-ftam-template.c */
-#line 1 "../../asn1/ftam/packet-ftam-template.c"
+#line 1 "./asn1/ftam/packet-ftam-template.c"
/* packet-ftam_asn1.c
* Routine to dissect OSI ISO 8571 FTAM Protocol packets
* based on the ASN.1 specification from http://www.itu.int/ITU-T/asn1/database/iso/8571-4/1988/
@@ -62,7 +62,7 @@ static int hf_ftam_unstructured_text = -1; /* ISO FTAM unstructured
static int hf_ftam_unstructured_binary = -1; /* ISO FTAM unstructured binary */
/*--- Included file: packet-ftam-hf.c ---*/
-#line 1 "../../asn1/ftam/packet-ftam-hf.c"
+#line 1 "./asn1/ftam/packet-ftam-hf.c"
static int hf_ftam_fTAM_Regime_PDU = -1; /* FTAM_Regime_PDU */
static int hf_ftam_file_PDU = -1; /* File_PDU */
static int hf_ftam_bulk_Data_PDU = -1; /* Bulk_Data_PDU */
@@ -480,13 +480,13 @@ static int hf_ftam_Attribute_Names_read_l8gal_qualifiCatiOnS = -1;
static int hf_ftam_Attribute_Names_read_private_use = -1;
/*--- End of included file: packet-ftam-hf.c ---*/
-#line 56 "../../asn1/ftam/packet-ftam-template.c"
+#line 56 "./asn1/ftam/packet-ftam-template.c"
/* Initialize the subtree pointers */
static gint ett_ftam = -1;
/*--- Included file: packet-ftam-ett.c ---*/
-#line 1 "../../asn1/ftam/packet-ftam-ett.c"
+#line 1 "./asn1/ftam/packet-ftam-ett.c"
static gint ett_ftam_PDU = -1;
static gint ett_ftam_FTAM_Regime_PDU = -1;
static gint ett_ftam_F_INITIALIZE_request = -1;
@@ -651,13 +651,13 @@ static gint ett_ftam_Attribute_Names = -1;
static gint ett_ftam_AE_title = -1;
/*--- End of included file: packet-ftam-ett.c ---*/
-#line 60 "../../asn1/ftam/packet-ftam-template.c"
+#line 60 "./asn1/ftam/packet-ftam-template.c"
static expert_field ei_ftam_zero_pdu = EI_INIT;
/*--- Included file: packet-ftam-fn.c ---*/
-#line 1 "../../asn1/ftam/packet-ftam-fn.c"
+#line 1 "./asn1/ftam/packet-ftam-fn.c"
static const asn_namedbit Protocol_Version_U_bits[] = {
{ 0, &hf_ftam_Protocol_Version_U_version_1, -1, -1, "version-1", NULL },
@@ -1308,7 +1308,7 @@ static const ber_choice_t FTAM_Regime_PDU_choice[] = {
static int
dissect_ftam_FTAM_Regime_PDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 98 "../../asn1/ftam/ftam.cnf"
+#line 98 "./asn1/ftam/ftam.cnf"
gint branch_taken;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1703,7 +1703,7 @@ dissect_ftam_Permitted_Actions_Attribute(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_ftam_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 75 "../../asn1/ftam/ftam.cnf"
+#line 75 "./asn1/ftam/ftam.cnf"
if (actx->external.direct_reference) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
}
@@ -1909,7 +1909,7 @@ dissect_ftam_Concurrency_Access(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_ftam_AP_title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 93 "../../asn1/ftam/ftam.cnf"
+#line 93 "./asn1/ftam/ftam.cnf"
/* XXX have no idea about this one */
@@ -1920,7 +1920,7 @@ dissect_ftam_AP_title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_ftam_AE_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 95 "../../asn1/ftam/ftam.cnf"
+#line 95 "./asn1/ftam/ftam.cnf"
/* XXX have no idea about this one */
@@ -2074,7 +2074,7 @@ dissect_ftam_T_extension_attribute_identifier(gboolean implicit_tag _U_, tvbuff_
static int
dissect_ftam_T_extension_attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 80 "../../asn1/ftam/ftam.cnf"
+#line 80 "./asn1/ftam/ftam.cnf"
if (actx->external.direct_reference) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
}
@@ -3139,7 +3139,7 @@ static const ber_choice_t File_PDU_choice[] = {
static int
dissect_ftam_File_PDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 107 "../../asn1/ftam/ftam.cnf"
+#line 107 "./asn1/ftam/ftam.cnf"
gint branch_taken;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -3443,7 +3443,7 @@ static const ber_choice_t Bulk_Data_PDU_choice[] = {
static int
dissect_ftam_Bulk_Data_PDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 116 "../../asn1/ftam/ftam.cnf"
+#line 116 "./asn1/ftam/ftam.cnf"
gint branch_taken;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -3785,7 +3785,7 @@ dissect_ftam_T_attribute_extension_attribute_identifier(gboolean implicit_tag _U
static int
dissect_ftam_T_extension_attribute_Pattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 88 "../../asn1/ftam/ftam.cnf"
+#line 88 "./asn1/ftam/ftam.cnf"
if (actx->external.direct_reference) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
}
@@ -4707,7 +4707,7 @@ static const ber_choice_t FSM_PDU_choice[] = {
static int
dissect_ftam_FSM_PDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 125 "../../asn1/ftam/ftam.cnf"
+#line 125 "./asn1/ftam/ftam.cnf"
gint branch_taken;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -4743,7 +4743,7 @@ dissect_ftam_PDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, a
/*--- End of included file: packet-ftam-fn.c ---*/
-#line 64 "../../asn1/ftam/packet-ftam-template.c"
+#line 64 "./asn1/ftam/packet-ftam-template.c"
/*
* Dissect FTAM unstructured text
@@ -4812,7 +4812,7 @@ void proto_register_ftam(void) {
BASE_NONE, NULL, 0x0, NULL, HFILL } },
/*--- Included file: packet-ftam-hfarr.c ---*/
-#line 1 "../../asn1/ftam/packet-ftam-hfarr.c"
+#line 1 "./asn1/ftam/packet-ftam-hfarr.c"
{ &hf_ftam_fTAM_Regime_PDU,
{ "fTAM-Regime-PDU", "ftam.fTAM_Regime_PDU",
FT_UINT32, BASE_DEC, VALS(ftam_FTAM_Regime_PDU_vals), 0,
@@ -6471,7 +6471,7 @@ void proto_register_ftam(void) {
NULL, HFILL }},
/*--- End of included file: packet-ftam-hfarr.c ---*/
-#line 131 "../../asn1/ftam/packet-ftam-template.c"
+#line 131 "./asn1/ftam/packet-ftam-template.c"
};
/* List of subtrees */
@@ -6479,7 +6479,7 @@ void proto_register_ftam(void) {
&ett_ftam,
/*--- Included file: packet-ftam-ettarr.c ---*/
-#line 1 "../../asn1/ftam/packet-ftam-ettarr.c"
+#line 1 "./asn1/ftam/packet-ftam-ettarr.c"
&ett_ftam_PDU,
&ett_ftam_FTAM_Regime_PDU,
&ett_ftam_F_INITIALIZE_request,
@@ -6644,7 +6644,7 @@ void proto_register_ftam(void) {
&ett_ftam_AE_title,
/*--- End of included file: packet-ftam-ettarr.c ---*/
-#line 137 "../../asn1/ftam/packet-ftam-template.c"
+#line 137 "./asn1/ftam/packet-ftam-template.c"
};
static ei_register_info ei[] = {
{ &ei_ftam_zero_pdu, { "ftam.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte FTAM PDU", EXPFILL }},
diff --git a/epan/dissectors/packet-ftam.h b/epan/dissectors/packet-ftam.h
index 208ed05aec..5c9a8395a8 100644
--- a/epan/dissectors/packet-ftam.h
+++ b/epan/dissectors/packet-ftam.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ftam.h */
-/* ../../tools/asn2wrs.py -b -p ftam -c ./ftam.cnf -s ./packet-ftam-template -D . -O ../../epan/dissectors ISO8571-FTAM.asn */
+/* asn2wrs.py -b -p ftam -c ./ftam.cnf -s ./packet-ftam-template -D . -O ../.. ISO8571-FTAM.asn */
/* Input file: packet-ftam-template.h */
-#line 1 "../../asn1/ftam/packet-ftam-template.h"
+#line 1 "./asn1/ftam/packet-ftam-template.h"
/* packet-ftam.h
* Routine to dissect OSI ISO 8571 FTAM Protocol packets
* based on the ASN.1 specification from http://www.itu.int/ITU-T/asn1/database/iso/8571-4/1988/
@@ -39,7 +39,7 @@
/*--- Included file: packet-ftam-exp.h ---*/
-#line 1 "../../asn1/ftam/packet-ftam-exp.h"
+#line 1 "./asn1/ftam/packet-ftam-exp.h"
extern const value_string ftam_Date_and_Time_Attribute_vals[];
extern const value_string ftam_Object_Availability_Attribute_vals[];
extern const value_string ftam_Object_Size_Attribute_vals[];
@@ -56,6 +56,6 @@ int dissect_ftam_Attribute_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _
int dissect_ftam_Pathname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-ftam-exp.h ---*/
-#line 33 "../../asn1/ftam/packet-ftam-template.h"
+#line 33 "./asn1/ftam/packet-ftam-template.h"
#endif /* PACKET_FTAM_H */
diff --git a/epan/dissectors/packet-goose.c b/epan/dissectors/packet-goose.c
index 2af358dfa9..f081e144d3 100644
--- a/epan/dissectors/packet-goose.c
+++ b/epan/dissectors/packet-goose.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-goose.c */
-/* ../../tools/asn2wrs.py -b -p goose -c ./goose.cnf -s ./packet-goose-template -D . -O ../../epan/dissectors goose.asn */
+/* asn2wrs.py -b -p goose -c ./goose.cnf -s ./packet-goose-template -D . -O ../.. goose.asn */
/* Input file: packet-goose-template.c */
-#line 1 "../../asn1/goose/packet-goose-template.c"
+#line 1 "./asn1/goose/packet-goose-template.c"
/* packet-goose.c
* Routines for IEC 61850 GOOSE packet dissection
* Martin Lutz 2008
@@ -58,7 +58,7 @@ static expert_field ei_goose_zero_pdu = EI_INIT;
/*--- Included file: packet-goose-hf.c ---*/
-#line 1 "../../asn1/goose/packet-goose-hf.c"
+#line 1 "./asn1/goose/packet-goose-hf.c"
static int hf_goose_gseMngtPdu = -1; /* GSEMngtPdu */
static int hf_goose_goosePdu = -1; /* IECGoosePdu */
static int hf_goose_stateID = -1; /* INTEGER */
@@ -120,14 +120,14 @@ static int hf_goose_mMSString = -1; /* MMSString */
static int hf_goose_utc_time = -1; /* UtcTime */
/*--- End of included file: packet-goose-hf.c ---*/
-#line 52 "../../asn1/goose/packet-goose-template.c"
+#line 52 "./asn1/goose/packet-goose-template.c"
/* Initialize the subtree pointers */
static int ett_goose = -1;
/*--- Included file: packet-goose-ett.c ---*/
-#line 1 "../../asn1/goose/packet-goose-ett.c"
+#line 1 "./asn1/goose/packet-goose-ett.c"
static gint ett_goose_GOOSEpdu = -1;
static gint ett_goose_GSEMngtPdu = -1;
static gint ett_goose_RequestResponse = -1;
@@ -147,11 +147,11 @@ static gint ett_goose_SEQUENCE_OF_Data = -1;
static gint ett_goose_Data = -1;
/*--- End of included file: packet-goose-ett.c ---*/
-#line 57 "../../asn1/goose/packet-goose-template.c"
+#line 57 "./asn1/goose/packet-goose-template.c"
/*--- Included file: packet-goose-fn.c ---*/
-#line 1 "../../asn1/goose/packet-goose-fn.c"
+#line 1 "./asn1/goose/packet-goose-fn.c"
/*--- Cyclic dependencies ---*/
/* Data -> Data/array -> Data */
@@ -474,7 +474,7 @@ dissect_goose_GSEMngtPdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_goose_UtcTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 17 "../../asn1/goose/goose.cnf"
+#line 17 "./asn1/goose/goose.cnf"
guint32 len;
guint32 seconds;
@@ -704,7 +704,7 @@ dissect_goose_GOOSEpdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
/*--- End of included file: packet-goose-fn.c ---*/
-#line 59 "../../asn1/goose/packet-goose-template.c"
+#line 59 "./asn1/goose/packet-goose-template.c"
/*
* Dissect GOOSE PDUs inside a PPDU.
@@ -774,7 +774,7 @@ void proto_register_goose(void) {
/*--- Included file: packet-goose-hfarr.c ---*/
-#line 1 "../../asn1/goose/packet-goose-hfarr.c"
+#line 1 "./asn1/goose/packet-goose-hfarr.c"
{ &hf_goose_gseMngtPdu,
{ "gseMngtPdu", "goose.gseMngtPdu_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1013,7 +1013,7 @@ void proto_register_goose(void) {
"UtcTime", HFILL }},
/*--- End of included file: packet-goose-hfarr.c ---*/
-#line 127 "../../asn1/goose/packet-goose-template.c"
+#line 127 "./asn1/goose/packet-goose-template.c"
};
/* List of subtrees */
@@ -1021,7 +1021,7 @@ void proto_register_goose(void) {
&ett_goose,
/*--- Included file: packet-goose-ettarr.c ---*/
-#line 1 "../../asn1/goose/packet-goose-ettarr.c"
+#line 1 "./asn1/goose/packet-goose-ettarr.c"
&ett_goose_GOOSEpdu,
&ett_goose_GSEMngtPdu,
&ett_goose_RequestResponse,
@@ -1041,7 +1041,7 @@ void proto_register_goose(void) {
&ett_goose_Data,
/*--- End of included file: packet-goose-ettarr.c ---*/
-#line 133 "../../asn1/goose/packet-goose-template.c"
+#line 133 "./asn1/goose/packet-goose-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-gprscdr.c b/epan/dissectors/packet-gprscdr.c
index efefd1dbf4..b85ed91108 100644
--- a/epan/dissectors/packet-gprscdr.c
+++ b/epan/dissectors/packet-gprscdr.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-gprscdr.c */
-/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1260.asn */
+/* asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../.. GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1260.asn */
/* Input file: packet-gprscdr-template.c */
-#line 1 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 1 "./asn1/gprscdr/packet-gprscdr-template.c"
/* packet-gprscdr-template.c
* Copyright 2011 , Anders Broman <anders.broman [AT] ericsson.com>
*
@@ -51,7 +51,7 @@ static int proto_gprscdr = -1;
/*--- Included file: packet-gprscdr-hf.c ---*/
-#line 1 "../../asn1/gprscdr/packet-gprscdr-hf.c"
+#line 1 "./asn1/gprscdr/packet-gprscdr-hf.c"
static int hf_gprscdr_gprscdr_GPRSCallEventRecord_PDU = -1; /* GPRSCallEventRecord */
static int hf_gprscdr_gprscdr_GPRSRecord_PDU = -1; /* GPRSRecord */
static int hf_gprscdr_gsm0408Cause = -1; /* INTEGER */
@@ -397,7 +397,7 @@ static int hf_gprscdr_ServiceConditionChange_userLocationChange = -1;
static int hf_gprscdr_ServiceConditionChange_userCSGInformationChange = -1;
/*--- End of included file: packet-gprscdr-hf.c ---*/
-#line 45 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 45 "./asn1/gprscdr/packet-gprscdr-template.c"
static int ett_gprscdr = -1;
static int ett_gprscdr_timestamp = -1;
@@ -405,7 +405,7 @@ static int ett_gprscdr_plmn_id = -1;
static int ett_gprscdr_managementextension_information = -1;
/*--- Included file: packet-gprscdr-ett.c ---*/
-#line 1 "../../asn1/gprscdr/packet-gprscdr-ett.c"
+#line 1 "./asn1/gprscdr/packet-gprscdr-ett.c"
static gint ett_gprscdr_Diagnostics = -1;
static gint ett_gprscdr_IPAddress = -1;
static gint ett_gprscdr_IPBinaryAddress = -1;
@@ -474,7 +474,7 @@ static gint ett_gprscdr_TWANUserLocationInfo = -1;
static gint ett_gprscdr_UserCSGInformation = -1;
/*--- End of included file: packet-gprscdr-ett.c ---*/
-#line 51 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 51 "./asn1/gprscdr/packet-gprscdr-template.c"
static expert_field ei_gprscdr_not_dissected = EI_INIT;
static expert_field ei_gprscdr_choice_not_found = EI_INIT;
@@ -492,7 +492,7 @@ static const value_string gprscdr_daylight_saving_time_vals[] = {
/*--- Included file: packet-gprscdr-fn.c ---*/
-#line 1 "../../asn1/gprscdr/packet-gprscdr-fn.c"
+#line 1 "./asn1/gprscdr/packet-gprscdr-fn.c"
static int
@@ -659,7 +659,7 @@ dissect_gprscdr_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gprscdr_T_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 69 "../../asn1/gprscdr/gprscdr.cnf"
+#line 69 "./asn1/gprscdr/gprscdr.cnf"
proto_tree *ext_tree;
ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gprscdr_managementextension_information, NULL, "Information");
@@ -982,7 +982,7 @@ dissect_gprscdr_MSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gprscdr_MSTimeZone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 118 "../../asn1/gprscdr/gprscdr.cnf"
+#line 118 "./asn1/gprscdr/gprscdr.cnf"
/*
*
* 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
@@ -1229,7 +1229,7 @@ dissect_gprscdr_SubscriptionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_gprscdr_TimeStamp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 79 "../../asn1/gprscdr/gprscdr.cnf"
+#line 79 "./asn1/gprscdr/gprscdr.cnf"
/*
*
* The contents of this field are a compact form of the UTCTime format
@@ -1721,7 +1721,7 @@ dissect_gprscdr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_gprscdr_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 145 "../../asn1/gprscdr/gprscdr.cnf"
+#line 145 "./asn1/gprscdr/gprscdr.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -3363,7 +3363,7 @@ static const ber_choice_t GPRSRecord_choice[] = {
int
dissect_gprscdr_GPRSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 157 "../../asn1/gprscdr/gprscdr.cnf"
+#line 157 "./asn1/gprscdr/gprscdr.cnf"
proto_item *item;
gint branch_taken, t_offset = offset;
gint32 tag;
@@ -3404,7 +3404,7 @@ int dissect_gprscdr_GPRSRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pr
/*--- End of included file: packet-gprscdr-fn.c ---*/
-#line 67 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 67 "./asn1/gprscdr/packet-gprscdr-template.c"
@@ -3416,7 +3416,7 @@ proto_register_gprscdr(void)
static hf_register_info hf[] = {
/*--- Included file: packet-gprscdr-hfarr.c ---*/
-#line 1 "../../asn1/gprscdr/packet-gprscdr-hfarr.c"
+#line 1 "./asn1/gprscdr/packet-gprscdr-hfarr.c"
{ &hf_gprscdr_gprscdr_GPRSCallEventRecord_PDU,
{ "GPRSCallEventRecord", "gprscdr.GPRSCallEventRecord",
FT_UINT32, BASE_DEC, VALS(gprscdr_GPRSCallEventRecord_vals), 0,
@@ -4787,7 +4787,7 @@ proto_register_gprscdr(void)
NULL, HFILL }},
/*--- End of included file: packet-gprscdr-hfarr.c ---*/
-#line 77 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 77 "./asn1/gprscdr/packet-gprscdr-template.c"
};
/* List of subtrees */
@@ -4798,7 +4798,7 @@ proto_register_gprscdr(void)
&ett_gprscdr_managementextension_information,
/*--- Included file: packet-gprscdr-ettarr.c ---*/
-#line 1 "../../asn1/gprscdr/packet-gprscdr-ettarr.c"
+#line 1 "./asn1/gprscdr/packet-gprscdr-ettarr.c"
&ett_gprscdr_Diagnostics,
&ett_gprscdr_IPAddress,
&ett_gprscdr_IPBinaryAddress,
@@ -4867,7 +4867,7 @@ proto_register_gprscdr(void)
&ett_gprscdr_UserCSGInformation,
/*--- End of included file: packet-gprscdr-ettarr.c ---*/
-#line 86 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 86 "./asn1/gprscdr/packet-gprscdr-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-gprscdr.h b/epan/dissectors/packet-gprscdr.h
index a529869b0c..142cb86e69 100644
--- a/epan/dissectors/packet-gprscdr.h
+++ b/epan/dissectors/packet-gprscdr.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-gprscdr.h */
-/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1260.asn */
+/* asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../.. GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1260.asn */
/* Input file: packet-gprscdr-template.h */
-#line 1 "../../asn1/gprscdr/packet-gprscdr-template.h"
+#line 1 "./asn1/gprscdr/packet-gprscdr-template.h"
/* packet-gprscdr.h
* Routines for gprscdr packet dissection
* Copyright 2011, Anders Broman <anders.broman@ericsson.com>
@@ -35,7 +35,7 @@
/*--- Included file: packet-gprscdr-exp.h ---*/
-#line 1 "../../asn1/gprscdr/packet-gprscdr-exp.h"
+#line 1 "./asn1/gprscdr/packet-gprscdr-exp.h"
extern const value_string gprscdr_GPRSCallEventRecord_vals[];
extern const value_string gprscdr_GPRSRecord_vals[];
int dissect_gprscdr_GPRSCallEventRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -44,7 +44,7 @@ int dissect_gprscdr_GPRSCallEventRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinf
int dissect_gprscdr_GPRSRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-gprscdr-exp.h ---*/
-#line 29 "../../asn1/gprscdr/packet-gprscdr-template.h"
+#line 29 "./asn1/gprscdr/packet-gprscdr-template.h"
#endif /* PACKET_GPRSCDR_H */
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c
index 4ce88ea6e6..8a06a42170 100644
--- a/epan/dissectors/packet-gsm_map.c
+++ b/epan/dissectors/packet-gsm_map.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-gsm_map.c */
-/* ../../tools/asn2wrs.py -b -c ./gsm_map.cnf -s ./packet-gsm_map-template -D . -O ../../epan/dissectors ../ros/Remote-Operations-Information-Objects.asn MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn MAP-ExtensionDataTypes.asn MAP-CommonDataTypes.asn MAP-SS-DataTypes.asn MAP-ER-DataTypes.asn MAP-SM-DataTypes.asn MAP-OM-DataTypes.asn MAP-MS-DataTypes.asn MAP-CH-DataTypes.asn MAP-LCS-DataTypes.asn MAP-GR-DataTypes.asn MAP-DialogueInformation.asn MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn MAP-Errors.asn MAP-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn Ericsson.asn Nokia.asn */
+/* asn2wrs.py -b -c ./gsm_map.cnf -s ./packet-gsm_map-template -D . -O ../.. ../ros/Remote-Operations-Information-Objects.asn MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn MAP-ExtensionDataTypes.asn MAP-CommonDataTypes.asn MAP-SS-DataTypes.asn MAP-ER-DataTypes.asn MAP-SM-DataTypes.asn MAP-OM-DataTypes.asn MAP-MS-DataTypes.asn MAP-CH-DataTypes.asn MAP-LCS-DataTypes.asn MAP-GR-DataTypes.asn MAP-DialogueInformation.asn MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn MAP-Errors.asn MAP-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn Ericsson.asn Nokia.asn */
/* Input file: packet-gsm_map-template.c */
-#line 1 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-template.c"
/* XXX see bug 1852:
*
* packet-gsm_map.c: There are 1174 display filter fields registered. Most are
@@ -158,7 +158,7 @@ static int hf_gsm_map_ussd_string = -1;
/*--- Included file: packet-gsm_map-hf.c ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-hf.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-hf.c"
/* --- Module MAP-ExtensionDataTypes --- --- --- */
@@ -1939,7 +1939,7 @@ static int hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item = -1; /* Acces
static int hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed = -1;
/*--- End of included file: packet-gsm_map-hf.c ---*/
-#line 152 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 152 "./asn1/gsm_map/packet-gsm_map-template.c"
/* Initialize the subtree pointers */
static gint ett_gsm_map = -1;
@@ -1973,7 +1973,7 @@ static gint ett_gsm_map_ussd_string = -1;
/*--- Included file: packet-gsm_map-ett.c ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-ett.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-ett.c"
/* --- Module MAP-ExtensionDataTypes --- --- --- */
@@ -2663,7 +2663,7 @@ static gint ett_NokiaMAP_Extensions_AccessSubscriptionListExt = -1;
static gint ett_NokiaMAP_Extensions_AllowedServiceData = -1;
/*--- End of included file: packet-gsm_map-ett.c ---*/
-#line 184 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 184 "./asn1/gsm_map/packet-gsm_map-template.c"
static expert_field ei_gsm_map_unknown_sequence3 = EI_INIT;
static expert_field ei_gsm_map_unknown_sequence = EI_INIT;
@@ -3312,7 +3312,7 @@ dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/*--- Included file: packet-gsm_map-fn.c ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-fn.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-fn.c"
/* --- Module MAP-SS-Code --- --- --- */
@@ -3379,7 +3379,7 @@ dissect_gsm_map_Ext_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_gsm_map_T_extId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 227 "../../asn1/gsm_map/gsm_map.cnf"
+#line 227 "./asn1/gsm_map/gsm_map.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -3393,7 +3393,7 @@ dissect_gsm_map_T_extId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gsm_map_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 231 "../../asn1/gsm_map/gsm_map.cnf"
+#line 231 "./asn1/gsm_map/gsm_map.cnf"
proto_tree *ext_tree;
ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gsm_map_extension_data, NULL, "Extension Data");
if (actx->external.direct_ref_present){
@@ -3509,7 +3509,7 @@ dissect_gsm_map_SLR_ArgExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *t
int
dissect_gsm_map_TBCD_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 273 "../../asn1/gsm_map/gsm_map.cnf"
+#line 273 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
const char *digit_str;
proto_tree *subtree;
@@ -3546,7 +3546,7 @@ dissect_gsm_map_DiameterIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
int
dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 245 "../../asn1/gsm_map/gsm_map.cnf"
+#line 245 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -3616,7 +3616,7 @@ dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 380 "../../asn1/gsm_map/gsm_map.cnf"
+#line 380 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -3640,7 +3640,7 @@ static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = {
int
dissect_gsm_map_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 808 "../../asn1/gsm_map/gsm_map.cnf"
+#line 808 "./asn1/gsm_map/gsm_map.cnf"
/*
-- Information about the internal structure is given in
-- clause 7.6.9.
@@ -3780,7 +3780,7 @@ dissect_gsm_map_AccessNetworkProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_gsm_map_LongSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 296 "../../asn1/gsm_map/gsm_map.cnf"
+#line 296 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
guint8 octet;
@@ -3859,7 +3859,7 @@ dissect_gsm_map_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
int
dissect_gsm_map_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 631 "../../asn1/gsm_map/gsm_map.cnf"
+#line 631 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
guint8 octet;
@@ -3904,7 +3904,7 @@ dissect_gsm_map_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
int
dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 258 "../../asn1/gsm_map/gsm_map.cnf"
+#line 258 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &parameter_tvb);
@@ -4025,7 +4025,7 @@ dissect_gsm_map_HLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
int
dissect_gsm_map_GlobalCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 890 "../../asn1/gsm_map/gsm_map.cnf"
+#line 890 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -4302,7 +4302,7 @@ dissect_gsm_map_TA_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
int
dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 655 "../../asn1/gsm_map/gsm_map.cnf"
+#line 655 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -4350,7 +4350,7 @@ dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag _U_
int
dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 667 "../../asn1/gsm_map/gsm_map.cnf"
+#line 667 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -4476,7 +4476,7 @@ dissect_gsm_map_EMLPP_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_gsm_map_Ext_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 507 "../../asn1/gsm_map/gsm_map.cnf"
+#line 507 "./asn1/gsm_map/gsm_map.cnf"
/* Note Ext-SS-Status can have more than one byte */
tvbuff_t *parameter_tvb;
@@ -4609,7 +4609,7 @@ dissect_gsm_map_ss_RegisterSS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int
dissect_gsm_map_ss_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 487 "../../asn1/gsm_map/gsm_map.cnf"
+#line 487 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
guint8 octet;
@@ -4643,7 +4643,7 @@ dissect_gsm_map_ss_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
-#line 574 "../../asn1/gsm_map/gsm_map.cnf"
+#line 574 "./asn1/gsm_map/gsm_map.cnf"
proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
@@ -4962,7 +4962,7 @@ dissect_gsm_map_ss_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U
int
dissect_gsm_map_ss_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 530 "../../asn1/gsm_map/gsm_map.cnf"
+#line 530 "./asn1/gsm_map/gsm_map.cnf"
/*The structure of the USSD-DataCodingScheme is defined by
* the Cell Broadcast Data Coding Scheme as described in
* TS 3GPP TS 23.038
@@ -4988,7 +4988,7 @@ dissect_gsm_map_ss_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tv
int
dissect_gsm_map_ss_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 545 "../../asn1/gsm_map/gsm_map.cnf"
+#line 545 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
guint length;
@@ -5439,7 +5439,7 @@ static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = {
static int
dissect_gsm_map_er_SM_DeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 387 "../../asn1/gsm_map/gsm_map.cnf"
+#line 387 "./asn1/gsm_map/gsm_map.cnf"
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
guint8 oct;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -6370,7 +6370,7 @@ dissect_gsm_map_sm_RoutingInfoForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_gsm_map_sm_T_imsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 356 "../../asn1/gsm_map/gsm_map.cnf"
+#line 356 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -6384,7 +6384,7 @@ dissect_gsm_map_sm_T_imsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_gsm_map_sm_T_lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 360 "../../asn1/gsm_map/gsm_map.cnf"
+#line 360 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -6398,7 +6398,7 @@ dissect_gsm_map_sm_T_lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_gsm_map_sm_T_serviceCentreAddressDA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 376 "../../asn1/gsm_map/gsm_map.cnf"
+#line 376 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_RECV;
offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -6438,7 +6438,7 @@ dissect_gsm_map_sm_SM_RP_DA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_gsm_map_sm_T_msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 368 "../../asn1/gsm_map/gsm_map.cnf"
+#line 368 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_RECV;
offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -6452,7 +6452,7 @@ actx->pinfo->p2p_dir = P2P_DIR_RECV;
static int
dissect_gsm_map_sm_T_serviceCentreAddressOA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 344 "../../asn1/gsm_map/gsm_map.cnf"
+#line 344 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -6517,7 +6517,7 @@ static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = {
static int
dissect_gsm_map_sm_MO_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 415 "../../asn1/gsm_map/gsm_map.cnf"
+#line 415 "./asn1/gsm_map/gsm_map.cnf"
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -6545,7 +6545,7 @@ static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = {
static int
dissect_gsm_map_sm_MO_ForwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 427 "../../asn1/gsm_map/gsm_map.cnf"
+#line 427 "./asn1/gsm_map/gsm_map.cnf"
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -6581,7 +6581,7 @@ static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = {
static int
dissect_gsm_map_sm_MT_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 439 "../../asn1/gsm_map/gsm_map.cnf"
+#line 439 "./asn1/gsm_map/gsm_map.cnf"
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -6610,7 +6610,7 @@ static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = {
static int
dissect_gsm_map_sm_MT_ForwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 451 "../../asn1/gsm_map/gsm_map.cnf"
+#line 451 "./asn1/gsm_map/gsm_map.cnf"
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -6786,7 +6786,7 @@ static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = {
static int
dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 463 "../../asn1/gsm_map/gsm_map.cnf"
+#line 463 "./asn1/gsm_map/gsm_map.cnf"
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -6843,7 +6843,7 @@ static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = {
static int
dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 475 "../../asn1/gsm_map/gsm_map.cnf"
+#line 475 "./asn1/gsm_map/gsm_map.cnf"
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -8236,7 +8236,7 @@ dissect_gsm_map_ms_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *
static int
dissect_gsm_map_ms_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 951 "../../asn1/gsm_map/gsm_map.cnf"
+#line 951 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
const char *digit_str;
@@ -8923,7 +8923,7 @@ dissect_gsm_map_ms_SGSN_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_gsm_map_ms_APN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 924 "../../asn1/gsm_map/gsm_map.cnf"
+#line 924 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
int length, name_len, tmp;
@@ -9188,7 +9188,7 @@ dissect_gsm_map_ms_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_gsm_map_ms_IntegrityProtectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 703 "../../asn1/gsm_map/gsm_map.cnf"
+#line 703 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
asn1_ctx_t asn1_ctx;
@@ -9211,7 +9211,7 @@ dissect_gsm_map_ms_IntegrityProtectionInformation(gboolean implicit_tag _U_, tvb
static int
dissect_gsm_map_ms_EncryptionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 715 "../../asn1/gsm_map/gsm_map.cnf"
+#line 715 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
asn1_ctx_t asn1_ctx;
@@ -9296,7 +9296,7 @@ dissect_gsm_map_ms_AllowedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *t
static int
dissect_gsm_map_ms_RadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 679 "../../asn1/gsm_map/gsm_map.cnf"
+#line 679 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -9367,7 +9367,7 @@ dissect_gsm_map_ms_BSSMAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *t
static int
dissect_gsm_map_ms_RANAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 691 "../../asn1/gsm_map/gsm_map.cnf"
+#line 691 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
asn1_ctx_t asn1_ctx;
@@ -10316,7 +10316,7 @@ static int
dissect_gsm_map_ms_T_forwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 580 "../../asn1/gsm_map/gsm_map.cnf"
+#line 580 "./asn1/gsm_map/gsm_map.cnf"
proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
@@ -11479,7 +11479,7 @@ dissect_gsm_map_ms_VlrCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t
static int
dissect_gsm_map_ms_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 588 "../../asn1/gsm_map/gsm_map.cnf"
+#line 588 "./asn1/gsm_map/gsm_map.cnf"
guint8 pdp_type_org;
tvbuff_t *parameter_tvb;
@@ -11512,7 +11512,7 @@ dissect_gsm_map_ms_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
int
dissect_gsm_map_ms_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 610 "../../asn1/gsm_map/gsm_map.cnf"
+#line 610 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
@@ -11534,7 +11534,7 @@ dissect_gsm_map_ms_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int
dissect_gsm_map_ms_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 621 "../../asn1/gsm_map/gsm_map.cnf"
+#line 621 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
@@ -15875,7 +15875,7 @@ dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(gboolean implicit_tag _U_, tvb
int
dissect_gsm_map_lcs_Ext_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 902 "../../asn1/gsm_map/gsm_map.cnf"
+#line 902 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -16899,7 +16899,7 @@ static value_string_ext gsm_old_GSMMAPOperationLocalvalue_vals_ext = VALUE_STRIN
static int
dissect_gsm_old_GSMMAPOperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 212 "../../asn1/gsm_map/gsm_map.cnf"
+#line 212 "./asn1/gsm_map/gsm_map.cnf"
const char *opcode_string;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -16959,7 +16959,7 @@ dissect_gsm_old_MAP_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_gsm_old_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 199 "../../asn1/gsm_map/gsm_map.cnf"
+#line 199 "./asn1/gsm_map/gsm_map.cnf"
offset = dissect_invokeData(tree, tvb, offset, actx);
@@ -16988,7 +16988,7 @@ dissect_gsm_old_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gsm_old_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 202 "../../asn1/gsm_map/gsm_map.cnf"
+#line 202 "./asn1/gsm_map/gsm_map.cnf"
offset = dissect_returnResultData(tree, tvb, offset, actx);
@@ -17135,7 +17135,7 @@ dissect_gsm_old_MAP_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_gsm_old_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 205 "../../asn1/gsm_map/gsm_map.cnf"
+#line 205 "./asn1/gsm_map/gsm_map.cnf"
offset = dissect_returnErrorData(tree, tvb, offset, actx);
@@ -17344,7 +17344,7 @@ static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = {
static int
dissect_gsm_old_Bss_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 728 "../../asn1/gsm_map/gsm_map.cnf"
+#line 728 "./asn1/gsm_map/gsm_map.cnf"
guint8 octet;
guint8 length;
tvbuff_t *next_tvb;
@@ -17929,7 +17929,7 @@ dissect_gsm_old_PlmnContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_gsm_old_T_imsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 348 "../../asn1/gsm_map/gsm_map.cnf"
+#line 348 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -17943,7 +17943,7 @@ dissect_gsm_old_T_imsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gsm_old_T_lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 352 "../../asn1/gsm_map/gsm_map.cnf"
+#line 352 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -17957,7 +17957,7 @@ dissect_gsm_old_T_lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gsm_old_T_serviceCentreAddressDA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 372 "../../asn1/gsm_map/gsm_map.cnf"
+#line 372 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_RECV;
offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -17997,7 +17997,7 @@ dissect_gsm_old_SM_RP_DAold(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_gsm_old_T_msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 364 "../../asn1/gsm_map/gsm_map.cnf"
+#line 364 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_RECV;
offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -18011,7 +18011,7 @@ actx->pinfo->p2p_dir = P2P_DIR_RECV;
static int
dissect_gsm_old_T_serviceCentreAddressOA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 340 "../../asn1/gsm_map/gsm_map.cnf"
+#line 340 "./asn1/gsm_map/gsm_map.cnf"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -18056,7 +18056,7 @@ static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = {
static int
dissect_gsm_old_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 399 "../../asn1/gsm_map/gsm_map.cnf"
+#line 399 "./asn1/gsm_map/gsm_map.cnf"
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -19076,7 +19076,7 @@ dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(gboolean implicit_tag _U_, tv
static int
dissect_gsm_map_ericsson_T_locationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 980 "../../asn1/gsm_map/gsm_map.cnf"
+#line 980 "./asn1/gsm_map/gsm_map.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
guint8 rat;
@@ -20725,7 +20725,7 @@ dissect_NokiaMAP_Extensions_AllowedServiceData(gboolean implicit_tag _U_, tvbuff
/*--- End of included file: packet-gsm_map-fn.c ---*/
-#line 831 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 831 "./asn1/gsm_map/packet-gsm_map-template.c"
/* Specific translation for MAP V3 */
const value_string gsm_map_V1V2_opr_code_strings[] = {
@@ -20738,7 +20738,7 @@ const value_string gsm_map_V1V2_opr_code_strings[] = {
const value_string gsm_map_opr_code_strings[] = {
/*--- Included file: packet-gsm_map-table.c ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-table.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-table.c"
/* --- Module Remote-Operations-Information-Objects --- --- --- */
@@ -20947,7 +20947,7 @@ const value_string gsm_map_opr_code_strings[] = {
/* Unknown or empty loop list OPERATION */
/*--- End of included file: packet-gsm_map-table.c ---*/
-#line 842 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 842 "./asn1/gsm_map/packet-gsm_map-template.c"
{ 0, NULL }
};
@@ -20955,7 +20955,7 @@ const value_string gsm_map_opr_code_strings[] = {
static const value_string gsm_map_err_code_string_vals[] = {
/*--- Included file: packet-gsm_map-table.c ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-table.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-table.c"
/* --- Module Remote-Operations-Information-Objects --- --- --- */
@@ -21164,7 +21164,7 @@ static const value_string gsm_map_err_code_string_vals[] = {
/* Unknown or empty loop list OPERATION */
/*--- End of included file: packet-gsm_map-table.c ---*/
-#line 848 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 848 "./asn1/gsm_map/packet-gsm_map-template.c"
{ 0, NULL }
};
#endif
@@ -23374,7 +23374,7 @@ void proto_register_gsm_map(void) {
/*--- Included file: packet-gsm_map-hfarr.c ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-hfarr.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-hfarr.c"
/* --- Module MAP-ExtensionDataTypes --- --- --- */
@@ -30326,7 +30326,7 @@ void proto_register_gsm_map(void) {
NULL, HFILL }},
/*--- End of included file: packet-gsm_map-hfarr.c ---*/
-#line 3056 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 3056 "./asn1/gsm_map/packet-gsm_map-template.c"
};
/* List of subtrees */
@@ -30362,7 +30362,7 @@ void proto_register_gsm_map(void) {
/*--- Included file: packet-gsm_map-ettarr.c ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-ettarr.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-ettarr.c"
/* --- Module MAP-ExtensionDataTypes --- --- --- */
@@ -31052,7 +31052,7 @@ void proto_register_gsm_map(void) {
&ett_NokiaMAP_Extensions_AllowedServiceData,
/*--- End of included file: packet-gsm_map-ettarr.c ---*/
-#line 3090 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 3090 "./asn1/gsm_map/packet-gsm_map-template.c"
};
static ei_register_info ei[] = {
@@ -31110,7 +31110,7 @@ void proto_register_gsm_map(void) {
/*--- Included file: packet-gsm_map-dis-tab.c ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-dis-tab.c"
+#line 1 "./asn1/gsm_map/packet-gsm_map-dis-tab.c"
/* --- Module MAP-DialogueInformation --- --- --- */
@@ -31174,7 +31174,7 @@ void proto_register_gsm_map(void) {
/*--- End of included file: packet-gsm_map-dis-tab.c ---*/
-#line 3146 "../../asn1/gsm_map/packet-gsm_map-template.c"
+#line 3146 "./asn1/gsm_map/packet-gsm_map-template.c"
oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
/*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
diff --git a/epan/dissectors/packet-gsm_map.h b/epan/dissectors/packet-gsm_map.h
index 081be0a989..ef27e9b673 100644
--- a/epan/dissectors/packet-gsm_map.h
+++ b/epan/dissectors/packet-gsm_map.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-gsm_map.h */
-/* ../../tools/asn2wrs.py -b -c ./gsm_map.cnf -s ./packet-gsm_map-template -D . -O ../../epan/dissectors ../ros/Remote-Operations-Information-Objects.asn MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn MAP-ExtensionDataTypes.asn MAP-CommonDataTypes.asn MAP-SS-DataTypes.asn MAP-ER-DataTypes.asn MAP-SM-DataTypes.asn MAP-OM-DataTypes.asn MAP-MS-DataTypes.asn MAP-CH-DataTypes.asn MAP-LCS-DataTypes.asn MAP-GR-DataTypes.asn MAP-DialogueInformation.asn MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn MAP-Errors.asn MAP-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn Ericsson.asn Nokia.asn */
+/* asn2wrs.py -b -c ./gsm_map.cnf -s ./packet-gsm_map-template -D . -O ../.. ../ros/Remote-Operations-Information-Objects.asn MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn MAP-ExtensionDataTypes.asn MAP-CommonDataTypes.asn MAP-SS-DataTypes.asn MAP-ER-DataTypes.asn MAP-SM-DataTypes.asn MAP-OM-DataTypes.asn MAP-MS-DataTypes.asn MAP-CH-DataTypes.asn MAP-LCS-DataTypes.asn MAP-GR-DataTypes.asn MAP-DialogueInformation.asn MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn MAP-Errors.asn MAP-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn Ericsson.asn Nokia.asn */
/* Input file: packet-gsm_map-template.h */
-#line 1 "../../asn1/gsm_map/packet-gsm_map-template.h"
+#line 1 "./asn1/gsm_map/packet-gsm_map-template.h"
/* packet-gsm_map-template.h
* Routines for GSM MAP packet dissection
* Copyright 2004 - 2006, Anders Broman <anders.broman@ericsson.com>
@@ -63,7 +63,7 @@ void dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
/*--- Included file: packet-gsm_map-exp.h ---*/
-#line 1 "../../asn1/gsm_map/packet-gsm_map-exp.h"
+#line 1 "./asn1/gsm_map/packet-gsm_map-exp.h"
/* --- Module Remote-Operations-Information-Objects --- --- --- */
@@ -275,7 +275,7 @@ int dissect_gsm_ss_LocationMethod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int dissect_NokiaMAP_Extensions_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-gsm_map-exp.h ---*/
-#line 57 "../../asn1/gsm_map/packet-gsm_map-template.h"
+#line 57 "./asn1/gsm_map/packet-gsm_map-template.h"
#endif /* PACKET_GSM_MAP_H */
diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c
index 721859b2af..91207d79cc 100644
--- a/epan/dissectors/packet-h225.c
+++ b/epan/dissectors/packet-h225.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h225.c */
-/* ../../tools/asn2wrs.py -p h225 -c ./h225.cnf -s ./packet-h225-template -D . -O ../../epan/dissectors H323-MESSAGES.asn */
+/* asn2wrs.py -p h225 -c ./h225.cnf -s ./packet-h225-template -D . -O ../.. H323-MESSAGES.asn */
/* Input file: packet-h225-template.c */
-#line 1 "../../asn1/h225/packet-h225-template.c"
+#line 1 "./asn1/h225/packet-h225-template.c"
/* packet-h225.c
* Routines for h225 packet dissection
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
@@ -137,7 +137,7 @@ static int hf_h225_debug_dissector_try_string = -1;
/*--- Included file: packet-h225-hf.c ---*/
-#line 1 "../../asn1/h225/packet-h225-hf.c"
+#line 1 "./asn1/h225/packet-h225-hf.c"
static int hf_h225_H323_UserInformation_PDU = -1; /* H323_UserInformation */
static int hf_h225_h225_ExtendedAliasAddress_PDU = -1; /* ExtendedAliasAddress */
static int hf_h225_RasMessage_PDU = -1; /* RasMessage */
@@ -911,13 +911,13 @@ static int hf_h225_stopped = -1; /* NULL */
static int hf_h225_notAvailable = -1; /* NULL */
/*--- End of included file: packet-h225-hf.c ---*/
-#line 131 "../../asn1/h225/packet-h225-template.c"
+#line 131 "./asn1/h225/packet-h225-template.c"
/* Initialize the subtree pointers */
static gint ett_h225 = -1;
/*--- Included file: packet-h225-ett.c ---*/
-#line 1 "../../asn1/h225/packet-h225-ett.c"
+#line 1 "./asn1/h225/packet-h225-ett.c"
static gint ett_h225_H323_UserInformation = -1;
static gint ett_h225_T_user_data = -1;
static gint ett_h225_H323_UU_PDU = -1;
@@ -1159,7 +1159,7 @@ static gint ett_h225_ServiceControlResponse = -1;
static gint ett_h225_T_result = -1;
/*--- End of included file: packet-h225-ett.c ---*/
-#line 135 "../../asn1/h225/packet-h225-template.c"
+#line 135 "./asn1/h225/packet-h225-template.c"
/* Preferences */
static guint h225_tls_port = TLS_PORT_CS;
@@ -1277,7 +1277,7 @@ h225rassrt_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, co
/*--- Included file: packet-h225-fn.c ---*/
-#line 1 "../../asn1/h225/packet-h225-fn.c"
+#line 1 "./asn1/h225/packet-h225-fn.c"
/*--- Cyclic dependencies ---*/
/* EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter */
@@ -1300,7 +1300,7 @@ dissect_h225_ProtocolIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h225_T_h245Ip(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 322 "../../asn1/h225/h225.cnf"
+#line 322 "./asn1/h225/h225.cnf"
tvbuff_t *value_tvb;
ipv4_address = 0;
@@ -1460,7 +1460,7 @@ dissect_h225_T_h245IpxAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h225_T_h245Ip6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 331 "../../asn1/h225/h225.cnf"
+#line 331 "./asn1/h225/h225.cnf"
tvbuff_t *value_tvb;
ipv6_address = ipv6_address_zeros;
@@ -1568,7 +1568,7 @@ static const per_sequence_t H221NonStandard_sequence[] = {
static int
dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 627 "../../asn1/h225/h225.cnf"
+#line 627 "./asn1/h225/h225.cnf"
t35CountryCode = 0;
t35Extension = 0;
manufacturerCode = 0;
@@ -1576,7 +1576,7 @@ dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_H221NonStandard, H221NonStandard_sequence);
-#line 631 "../../asn1/h225/h225.cnf"
+#line 631 "./asn1/h225/h225.cnf"
h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
@@ -1598,7 +1598,7 @@ static const per_choice_t NonStandardIdentifier_choice[] = {
static int
dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 608 "../../asn1/h225/h225.cnf"
+#line 608 "./asn1/h225/h225.cnf"
gint32 value;
nsiOID = "";
@@ -1627,7 +1627,7 @@ dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_T_nsp_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 642 "../../asn1/h225/h225.cnf"
+#line 642 "./asn1/h225/h225.cnf"
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -1650,7 +1650,7 @@ static const per_sequence_t NonStandardParameter_sequence[] = {
int
dissect_h225_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 640 "../../asn1/h225/h225.cnf"
+#line 640 "./asn1/h225/h225.cnf"
nsp_handle = NULL;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1684,7 +1684,7 @@ static const per_choice_t H245TransportAddress_choice[] = {
static int
dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 443 "../../asn1/h225/h225.cnf"
+#line 443 "./asn1/h225/h225.cnf"
ipv4_address=0;
ipv6_address = ipv6_address_zeros;
ip_port=0;
@@ -1694,7 +1694,7 @@ dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
ett_h225_H245TransportAddress, H245TransportAddress_choice,
NULL);
-#line 450 "../../asn1/h225/h225.cnf"
+#line 450 "./asn1/h225/h225.cnf"
/* we need this info for TAPing */
h225_pi->is_h245 = TRUE;
h225_pi->h245_address = ipv4_address;
@@ -1726,7 +1726,7 @@ dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_DialedDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 304 "../../asn1/h225/h225.cnf"
+#line 304 "./asn1/h225/h225.cnf"
tvbuff_t *value_tvb = NULL;
guint len = 0;
@@ -2043,7 +2043,7 @@ dissect_h225_PartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_h225_TBCD_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 737 "../../asn1/h225/h225.cnf"
+#line 737 "./asn1/h225/h225.cnf"
int min_len, max_len;
gboolean has_extension;
@@ -2842,13 +2842,13 @@ static const per_sequence_t TunnelledProtocol_sequence[] = {
int
dissect_h225_TunnelledProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 585 "../../asn1/h225/h225.cnf"
+#line 585 "./asn1/h225/h225.cnf"
tpOID = "";
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_TunnelledProtocol, TunnelledProtocol_sequence);
-#line 587 "../../asn1/h225/h225.cnf"
+#line 587 "./asn1/h225/h225.cnf"
tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID);
return offset;
@@ -3026,7 +3026,7 @@ dissect_h225_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_h225_T_guid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 559 "../../asn1/h225/h225.cnf"
+#line 559 "./asn1/h225/h225.cnf"
tvbuff_t *guid_tvb = NULL;
actx->value_ptr = &guid_tvb;
@@ -3240,7 +3240,7 @@ dissect_h225_SEQUENCE_OF_CryptoH323Token(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_h225_FastStart_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 268 "../../asn1/h225/h225.cnf"
+#line 268 "./asn1/h225/h225.cnf"
tvbuff_t *value_tvb = NULL;
char codec_str[50];
codec_str[0] = '\0';
@@ -3829,7 +3829,7 @@ dissect_h225_CircuitIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_h225_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 699 "../../asn1/h225/h225.cnf"
+#line 699 "./asn1/h225/h225.cnf"
guint32 value_int = (guint32)-1;
gef_ctx_t *gefx;
@@ -3847,7 +3847,7 @@ dissect_h225_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h225_T_oid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 708 "../../asn1/h225/h225.cnf"
+#line 708 "./asn1/h225/h225.cnf"
const gchar *oid_str = NULL;
gef_ctx_t *gefx;
@@ -3877,7 +3877,7 @@ static const per_choice_t GenericIdentifier_choice[] = {
int
dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 685 "../../asn1/h225/h225.cnf"
+#line 685 "./asn1/h225/h225.cnf"
gef_ctx_t *gefx;
proto_item* ti;
@@ -3885,7 +3885,7 @@ dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
ett_h225_GenericIdentifier, GenericIdentifier_choice,
NULL);
-#line 688 "../../asn1/h225/h225.cnf"
+#line 688 "./asn1/h225/h225.cnf"
gef_ctx_update_key(gef_ctx_get(actx->private_data));
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
@@ -3902,7 +3902,7 @@ dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_h225_T_raw(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 718 "../../asn1/h225/h225.cnf"
+#line 718 "./asn1/h225/h225.cnf"
tvbuff_t *value_tvb;
gef_ctx_t *gefx;
proto_item* ti;
@@ -4020,7 +4020,7 @@ static const per_sequence_t EnumeratedParameter_sequence[] = {
static int
dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 667 "../../asn1/h225/h225.cnf"
+#line 667 "./asn1/h225/h225.cnf"
gef_ctx_t *parent_gefx;
parent_gefx = gef_ctx_get(actx->private_data);
@@ -4029,7 +4029,7 @@ dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_EnumeratedParameter, EnumeratedParameter_sequence);
-#line 672 "../../asn1/h225/h225.cnf"
+#line 672 "./asn1/h225/h225.cnf"
actx->private_data = parent_gefx;
return offset;
@@ -4044,7 +4044,7 @@ static const per_sequence_t GenericData_sequence[] = {
int
dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 653 "../../asn1/h225/h225.cnf"
+#line 653 "./asn1/h225/h225.cnf"
void *priv_data = actx->private_data;
gef_ctx_t *gefx;
@@ -4058,7 +4058,7 @@ dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_GenericData, GenericData_sequence);
-#line 663 "../../asn1/h225/h225.cnf"
+#line 663 "./asn1/h225/h225.cnf"
actx->private_data = priv_data;
return offset;
@@ -4097,13 +4097,13 @@ dissect_h225_CircuitInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_h225_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 677 "../../asn1/h225/h225.cnf"
+#line 677 "./asn1/h225/h225.cnf"
void *priv_data = actx->private_data;
actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor");
offset = dissect_h225_GenericData(tvb, offset, actx, tree, hf_index);
-#line 680 "../../asn1/h225/h225.cnf"
+#line 680 "./asn1/h225/h225.cnf"
actx->private_data = priv_data;
return offset;
@@ -4126,7 +4126,7 @@ dissect_h225_SEQUENCE_OF_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_h225_ParallelH245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 344 "../../asn1/h225/h225.cnf"
+#line 344 "./asn1/h225/h225.cnf"
tvbuff_t *h245_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -4276,13 +4276,13 @@ static const per_sequence_t Setup_UUIE_sequence[] = {
static int
dissect_h225_Setup_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 397 "../../asn1/h225/h225.cnf"
+#line 397 "./asn1/h225/h225.cnf"
contains_faststart = FALSE;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_Setup_UUIE, Setup_UUIE_sequence);
-#line 401 "../../asn1/h225/h225.cnf"
+#line 401 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_SETUP;
if (contains_faststart == TRUE )
@@ -4332,7 +4332,7 @@ dissect_h225_CallProceeding_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_CallProceeding_UUIE, CallProceeding_UUIE_sequence);
-#line 410 "../../asn1/h225/h225.cnf"
+#line 410 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_CALL_PROCEDING;
if (contains_faststart == TRUE )
@@ -4373,7 +4373,7 @@ dissect_h225_Connect_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_Connect_UUIE, Connect_UUIE_sequence);
-#line 434 "../../asn1/h225/h225.cnf"
+#line 434 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_CONNECT;
if (contains_faststart == TRUE )
@@ -4412,7 +4412,7 @@ dissect_h225_Alerting_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_Alerting_UUIE, Alerting_UUIE_sequence);
-#line 419 "../../asn1/h225/h225.cnf"
+#line 419 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_ALERTING;
if (contains_faststart == TRUE )
@@ -4440,7 +4440,7 @@ dissect_h225_Information_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_Information_UUIE, Information_UUIE_sequence);
-#line 368 "../../asn1/h225/h225.cnf"
+#line 368 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_INFORMATION;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
@@ -4559,7 +4559,7 @@ static const per_choice_t ReleaseCompleteReason_choice[] = {
int
dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 552 "../../asn1/h225/h225.cnf"
+#line 552 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -4595,7 +4595,7 @@ dissect_h225_ReleaseComplete_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_ReleaseComplete_UUIE, ReleaseComplete_UUIE_sequence);
-#line 428 "../../asn1/h225/h225.cnf"
+#line 428 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_RELEASE_COMPLET;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
@@ -4636,7 +4636,7 @@ static const per_choice_t FacilityReason_choice[] = {
static int
dissect_h225_FacilityReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 476 "../../asn1/h225/h225.cnf"
+#line 476 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -4709,7 +4709,7 @@ dissect_h225_Facility_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_Facility_UUIE, Facility_UUIE_sequence);
-#line 389 "../../asn1/h225/h225.cnf"
+#line 389 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_FACILITY;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
@@ -4738,7 +4738,7 @@ dissect_h225_Progress_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_Progress_UUIE, Progress_UUIE_sequence);
-#line 374 "../../asn1/h225/h225.cnf"
+#line 374 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_PROGRESS;
if (contains_faststart == TRUE )
@@ -4755,7 +4755,7 @@ static int
dissect_h225_T_empty_flg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
-#line 358 "../../asn1/h225/h225.cnf"
+#line 358 "./asn1/h225/h225.cnf"
h225_pi->cs_type = H225_EMPTY;
return offset;
@@ -4775,7 +4775,7 @@ dissect_h225_Status_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_Status_UUIE, Status_UUIE_sequence);
-#line 362 "../../asn1/h225/h225.cnf"
+#line 362 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_STATUS;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
@@ -4814,7 +4814,7 @@ dissect_h225_SetupAcknowledge_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_SetupAcknowledge_UUIE, SetupAcknowledge_UUIE_sequence);
-#line 383 "../../asn1/h225/h225.cnf"
+#line 383 "./asn1/h225/h225.cnf"
/* Add to packet info */
h225_pi->cs_type = H225_SETUP_ACK;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
@@ -4881,7 +4881,7 @@ static const per_choice_t T_h323_message_body_choice[] = {
static int
dissect_h225_T_h323_message_body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 241 "../../asn1/h225/h225.cnf"
+#line 241 "./asn1/h225/h225.cnf"
gint32 message_body_val;
contains_faststart = FALSE;
@@ -4918,7 +4918,7 @@ dissect_h225_T_h323_message_body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h225_T_h4501SupplementaryService_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 573 "../../asn1/h225/h225.cnf"
+#line 573 "./asn1/h225/h225.cnf"
tvbuff_t *h4501_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -4958,7 +4958,7 @@ dissect_h225_T_h245Tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h225_H245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 351 "../../asn1/h225/h225.cnf"
+#line 351 "./asn1/h225/h225.cnf"
tvbuff_t *h245_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -5015,7 +5015,7 @@ dissect_h225_CallLinkage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_h225_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 595 "../../asn1/h225/h225.cnf"
+#line 595 "./asn1/h225/h225.cnf"
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -5051,7 +5051,7 @@ static const per_sequence_t T_tunnelledSignallingMessage_sequence[] = {
static int
dissect_h225_T_tunnelledSignallingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 593 "../../asn1/h225/h225.cnf"
+#line 593 "./asn1/h225/h225.cnf"
tp_handle = NULL;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -5899,7 +5899,7 @@ static const per_choice_t GatekeeperRejectReason_choice[] = {
static int
dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 483 "../../asn1/h225/h225.cnf"
+#line 483 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6201,7 +6201,7 @@ static const per_choice_t RegistrationRejectReason_choice[] = {
static int
dissect_h225_RegistrationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 538 "../../asn1/h225/h225.cnf"
+#line 538 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6264,7 +6264,7 @@ static const per_choice_t UnregRequestReason_choice[] = {
static int
dissect_h225_UnregRequestReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 490 "../../asn1/h225/h225.cnf"
+#line 490 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6349,7 +6349,7 @@ static const per_choice_t UnregRejectReason_choice[] = {
static int
dissect_h225_UnregRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 497 "../../asn1/h225/h225.cnf"
+#line 497 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6409,7 +6409,7 @@ dissect_h225_CallModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h225_DestinationInfo_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 299 "../../asn1/h225/h225.cnf"
+#line 299 "./asn1/h225/h225.cnf"
h225_pi->is_destinationInfo = TRUE;
@@ -6617,7 +6617,7 @@ static const per_choice_t AdmissionRejectReason_choice[] = {
static int
dissect_h225_AdmissionRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 524 "../../asn1/h225/h225.cnf"
+#line 524 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6749,7 +6749,7 @@ static const per_choice_t BandRejectReason_choice[] = {
static int
dissect_h225_BandRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 504 "../../asn1/h225/h225.cnf"
+#line 504 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6801,7 +6801,7 @@ static const per_choice_t DisengageReason_choice[] = {
static int
dissect_h225_DisengageReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 511 "../../asn1/h225/h225.cnf"
+#line 511 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6888,7 +6888,7 @@ static const per_choice_t DisengageRejectReason_choice[] = {
static int
dissect_h225_DisengageRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 517 "../../asn1/h225/h225.cnf"
+#line 517 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -7034,7 +7034,7 @@ static const per_choice_t LocationRejectReason_choice[] = {
static int
dissect_h225_LocationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 531 "../../asn1/h225/h225.cnf"
+#line 531 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -7405,7 +7405,7 @@ static const per_choice_t InfoRequestNakReason_choice[] = {
static int
dissect_h225_InfoRequestNakReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 545 "../../asn1/h225/h225.cnf"
+#line 545 "./asn1/h225/h225.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -7616,7 +7616,7 @@ static const per_choice_t RasMessage_choice[] = {
int
dissect_h225_RasMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 285 "../../asn1/h225/h225.cnf"
+#line 285 "./asn1/h225/h225.cnf"
gint32 rasmessage_value;
call_id_guid = NULL;
@@ -7665,7 +7665,7 @@ static int dissect_RasMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-h225-fn.c ---*/
-#line 251 "../../asn1/h225/packet-h225-template.c"
+#line 251 "./asn1/h225/packet-h225-template.c"
/* Forward declaration we need below */
void proto_reg_handoff_h225(void);
@@ -8268,7 +8268,7 @@ void proto_register_h225(void) {
/*--- Included file: packet-h225-hfarr.c ---*/
-#line 1 "../../asn1/h225/packet-h225-hfarr.c"
+#line 1 "./asn1/h225/packet-h225-hfarr.c"
{ &hf_h225_H323_UserInformation_PDU,
{ "H323-UserInformation", "h225.H323_UserInformation_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -11355,7 +11355,7 @@ void proto_register_h225(void) {
NULL, HFILL }},
/*--- End of included file: packet-h225-hfarr.c ---*/
-#line 852 "../../asn1/h225/packet-h225-template.c"
+#line 852 "./asn1/h225/packet-h225-template.c"
};
/* List of subtrees */
@@ -11363,7 +11363,7 @@ void proto_register_h225(void) {
&ett_h225,
/*--- Included file: packet-h225-ettarr.c ---*/
-#line 1 "../../asn1/h225/packet-h225-ettarr.c"
+#line 1 "./asn1/h225/packet-h225-ettarr.c"
&ett_h225_H323_UserInformation,
&ett_h225_T_user_data,
&ett_h225_H323_UU_PDU,
@@ -11605,7 +11605,7 @@ void proto_register_h225(void) {
&ett_h225_T_result,
/*--- End of included file: packet-h225-ettarr.c ---*/
-#line 858 "../../asn1/h225/packet-h225-template.c"
+#line 858 "./asn1/h225/packet-h225-template.c"
};
static tap_param h225_stat_params[] = {
diff --git a/epan/dissectors/packet-h225.h b/epan/dissectors/packet-h225.h
index 0f31b15083..0362861583 100644
--- a/epan/dissectors/packet-h225.h
+++ b/epan/dissectors/packet-h225.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h225.h */
-/* ../../tools/asn2wrs.py -p h225 -c ./h225.cnf -s ./packet-h225-template -D . -O ../../epan/dissectors H323-MESSAGES.asn */
+/* asn2wrs.py -p h225 -c ./h225.cnf -s ./packet-h225-template -D . -O ../.. H323-MESSAGES.asn */
/* Input file: packet-h225-template.h */
-#line 1 "../../asn1/h225/packet-h225-template.h"
+#line 1 "./asn1/h225/packet-h225-template.h"
/* packet-h225.h
* Routines for h225 packet dissection
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
@@ -87,7 +87,7 @@ typedef struct _h225_packet_info {
/*--- Included file: packet-h225-exp.h ---*/
-#line 1 "../../asn1/h225/packet-h225-exp.h"
+#line 1 "./asn1/h225/packet-h225-exp.h"
WS_DLL_PUBLIC const value_string T_h323_message_body_vals[];
WS_DLL_PUBLIC const value_string h225_ReleaseCompleteReason_vals[];
extern const value_string h225_PresentationIndicator_vals[];
@@ -149,7 +149,7 @@ int dissect_h225_TransportQOS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
int dissect_h225_ExtendedAliasAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-h225-exp.h ---*/
-#line 81 "../../asn1/h225/packet-h225-template.h"
+#line 81 "./asn1/h225/packet-h225-template.h"
#endif /* PACKET_H225_H */
diff --git a/epan/dissectors/packet-h235.c b/epan/dissectors/packet-h235.c
index 824b7cc14a..18d74abb44 100644
--- a/epan/dissectors/packet-h235.c
+++ b/epan/dissectors/packet-h235.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h235.c */
-/* ../../tools/asn2wrs.py -p h235 -c ./h235.cnf -s ./packet-h235-template -D . -O ../../epan/dissectors H235-SECURITY-MESSAGES.asn H235-SRTP.asn */
+/* asn2wrs.py -p h235 -c ./h235.cnf -s ./packet-h235-template -D . -O ../.. H235-SECURITY-MESSAGES.asn H235-SRTP.asn */
/* Input file: packet-h235-template.c */
-#line 1 "../../asn1/h235/packet-h235-template.c"
+#line 1 "./asn1/h235/packet-h235-template.c"
/* packet-h235.c
* Routines for H.235 packet dissection
* 2004 Tomas Kukosa
@@ -58,7 +58,7 @@ void proto_reg_handoff_h235(void);
static int proto_h235 = -1;
/*--- Included file: packet-h235-hf.c ---*/
-#line 1 "../../asn1/h235/packet-h235-hf.c"
+#line 1 "./asn1/h235/packet-h235-hf.c"
static int hf_h235_SrtpCryptoCapability_PDU = -1; /* SrtpCryptoCapability */
static int hf_h235_nonStandardIdentifier = -1; /* OBJECT_IDENTIFIER */
static int hf_h235_data = -1; /* OCTET_STRING */
@@ -162,12 +162,12 @@ static int hf_h235_fecBeforeSrtp = -1; /* NULL */
static int hf_h235_fecAfterSrtp = -1; /* NULL */
/*--- End of included file: packet-h235-hf.c ---*/
-#line 52 "../../asn1/h235/packet-h235-template.c"
+#line 52 "./asn1/h235/packet-h235-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-h235-ett.c ---*/
-#line 1 "../../asn1/h235/packet-h235-ett.c"
+#line 1 "./asn1/h235/packet-h235-ett.c"
static gint ett_h235_NonStandardParameter = -1;
static gint ett_h235_DHset = -1;
static gint ett_h235_ECpoint = -1;
@@ -202,7 +202,7 @@ static gint ett_h235_SEQUENCE_OF_GenericData = -1;
static gint ett_h235_FecOrder = -1;
/*--- End of included file: packet-h235-ett.c ---*/
-#line 55 "../../asn1/h235/packet-h235-template.c"
+#line 55 "./asn1/h235/packet-h235-template.c"
static int
@@ -213,7 +213,7 @@ dissect_xxx_ToBeSigned(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *
/*--- Included file: packet-h235-fn.c ---*/
-#line 1 "../../asn1/h235/packet-h235-fn.c"
+#line 1 "./asn1/h235/packet-h235-fn.c"
static int
@@ -555,7 +555,7 @@ static const per_sequence_t ENCRYPTED_sequence[] = {
int
dissect_h235_ENCRYPTED(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 63 "../../asn1/h235/h235.cnf"
+#line 63 "./asn1/h235/h235.cnf"
proto_item *hidden_item;
hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
PROTO_ITEM_SET_HIDDEN(hidden_item);
@@ -587,7 +587,7 @@ static const per_sequence_t SIGNED_sequence[] = {
int
dissect_h235_SIGNED(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 58 "../../asn1/h235/h235.cnf"
+#line 58 "./asn1/h235/h235.cnf"
proto_item *hidden_item;
hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
PROTO_ITEM_SET_HIDDEN(hidden_item);
@@ -752,7 +752,7 @@ static const per_sequence_t ClearToken_sequence[] = {
int
dissect_h235_ClearToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 74 "../../asn1/h235/h235.cnf"
+#line 74 "./asn1/h235/h235.cnf"
proto_item *hidden_item;
hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
PROTO_ITEM_SET_HIDDEN(hidden_item);
@@ -773,7 +773,7 @@ static const per_sequence_t HASHED_sequence[] = {
int
dissect_h235_HASHED(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 68 "../../asn1/h235/h235.cnf"
+#line 68 "./asn1/h235/h235.cnf"
proto_item *hidden_item;
hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
PROTO_ITEM_SET_HIDDEN(hidden_item);
@@ -849,7 +849,7 @@ static const per_choice_t CryptoToken_choice[] = {
int
dissect_h235_CryptoToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 80 "../../asn1/h235/h235.cnf"
+#line 80 "./asn1/h235/h235.cnf"
proto_item *hidden_item;
hidden_item = proto_tree_add_item(tree, proto_h235, tvb, offset>>3, 0, ENC_NA);
PROTO_ITEM_SET_HIDDEN(hidden_item);
@@ -1048,7 +1048,7 @@ static int dissect_SrtpCryptoCapability_PDU(tvbuff_t *tvb _U_, packet_info *pinf
/*--- End of included file: packet-h235-fn.c ---*/
-#line 64 "../../asn1/h235/packet-h235-template.c"
+#line 64 "./asn1/h235/packet-h235-template.c"
/*--- proto_register_h235 ----------------------------------------------*/
@@ -1058,7 +1058,7 @@ void proto_register_h235(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-h235-hfarr.c ---*/
-#line 1 "../../asn1/h235/packet-h235-hfarr.c"
+#line 1 "./asn1/h235/packet-h235-hfarr.c"
{ &hf_h235_SrtpCryptoCapability_PDU,
{ "SrtpCryptoCapability", "h235.SrtpCryptoCapability",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -1465,14 +1465,14 @@ void proto_register_h235(void) {
NULL, HFILL }},
/*--- End of included file: packet-h235-hfarr.c ---*/
-#line 72 "../../asn1/h235/packet-h235-template.c"
+#line 72 "./asn1/h235/packet-h235-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-h235-ettarr.c ---*/
-#line 1 "../../asn1/h235/packet-h235-ettarr.c"
+#line 1 "./asn1/h235/packet-h235-ettarr.c"
&ett_h235_NonStandardParameter,
&ett_h235_DHset,
&ett_h235_ECpoint,
@@ -1507,7 +1507,7 @@ void proto_register_h235(void) {
&ett_h235_FecOrder,
/*--- End of included file: packet-h235-ettarr.c ---*/
-#line 77 "../../asn1/h235/packet-h235-template.c"
+#line 77 "./asn1/h235/packet-h235-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-h235.h b/epan/dissectors/packet-h235.h
index 94f60ece1d..214c43055f 100644
--- a/epan/dissectors/packet-h235.h
+++ b/epan/dissectors/packet-h235.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h235.h */
-/* ../../tools/asn2wrs.py -p h235 -c ./h235.cnf -s ./packet-h235-template -D . -O ../../epan/dissectors H235-SECURITY-MESSAGES.asn H235-SRTP.asn */
+/* asn2wrs.py -p h235 -c ./h235.cnf -s ./packet-h235-template -D . -O ../.. H235-SECURITY-MESSAGES.asn H235-SRTP.asn */
/* Input file: packet-h235-template.h */
-#line 1 "../../asn1/h235/packet-h235-template.h"
+#line 1 "./asn1/h235/packet-h235-template.h"
/* packet-h235.h
* Routines for H.235 packet dissection
* 2004 Tomas Kukosa
@@ -34,7 +34,7 @@
/*--- Included file: packet-h235-exp.h ---*/
-#line 1 "../../asn1/h235/packet-h235-exp.h"
+#line 1 "./asn1/h235/packet-h235-exp.h"
extern const value_string h235_AuthenticationMechanism_vals[];
extern const value_string h235_CryptoToken_vals[];
int dissect_h235_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -47,7 +47,7 @@ int dissect_h235_CryptoToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
int dissect_h235_SrtpKeys(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-h235-exp.h ---*/
-#line 28 "../../asn1/h235/packet-h235-template.h"
+#line 28 "./asn1/h235/packet-h235-template.h"
#endif /* PACKET_H235_H */
diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c
index 36a7ae9c4c..adccf5b22f 100644
--- a/epan/dissectors/packet-h245.c
+++ b/epan/dissectors/packet-h245.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h245.c */
-/* ../../tools/asn2wrs.py -p h245 -c ./h245.cnf -s ./packet-h245-template -D . -O ../../epan/dissectors MULTIMEDIA-SYSTEM-CONTROL.asn */
+/* asn2wrs.py -p h245 -c ./h245.cnf -s ./packet-h245-template -D . -O ../.. MULTIMEDIA-SYSTEM-CONTROL.asn */
/* Input file: packet-h245-template.c */
-#line 1 "../../asn1/h245/packet-h245-template.c"
+#line 1 "./asn1/h245/packet-h245-template.c"
/* packet-h245_asn1.c
* Routines for h245 packet dissection
* Copyright 2004, Anders Broman <anders.broman@ericsson.com>
@@ -92,7 +92,7 @@ static gboolean info_col_fmt_prepend = FALSE;
/*--- Included file: packet-h245-val.h ---*/
-#line 1 "../../asn1/h245/packet-h245-val.h"
+#line 1 "./asn1/h245/packet-h245-val.h"
typedef enum _AudioCapability_enum {
AudioCapability_nonStandard = 0,
@@ -213,7 +213,7 @@ typedef enum _IndicationMessage_enum {
} IndicationMessage_enum;
/*--- End of included file: packet-h245-val.h ---*/
-#line 86 "../../asn1/h245/packet-h245-template.c"
+#line 86 "./asn1/h245/packet-h245-template.c"
static const value_string h245_RequestMessage_short_vals[] = {
{ RequestMessage_nonStandard , "NSM" },
@@ -536,7 +536,7 @@ static void print_info_column(column_info *cinfo, const gint32 *value,
static int proto_h245 = -1;
/*--- Included file: packet-h245-hf.c ---*/
-#line 1 "../../asn1/h245/packet-h245-hf.c"
+#line 1 "./asn1/h245/packet-h245-hf.c"
static int hf_h245_OpenLogicalChannel_PDU = -1; /* OpenLogicalChannel */
static int hf_h245_request = -1; /* RequestMessage */
static int hf_h245_response = -1; /* ResponseMessage */
@@ -1941,14 +1941,14 @@ static int hf_h245_encrypted = -1; /* OCTET_STRING */
static int hf_h245_encryptedAlphanumeric = -1; /* EncryptedAlphanumeric */
/*--- End of included file: packet-h245-hf.c ---*/
-#line 407 "../../asn1/h245/packet-h245-template.c"
+#line 407 "./asn1/h245/packet-h245-template.c"
/* Initialize the subtree pointers */
static int ett_h245 = -1;
static int ett_h245_returnedFunction = -1;
/*--- Included file: packet-h245-ett.c ---*/
-#line 1 "../../asn1/h245/packet-h245-ett.c"
+#line 1 "./asn1/h245/packet-h245-ett.c"
static gint ett_h245_MultimediaSystemControlMessage = -1;
static gint ett_h245_RequestMessage = -1;
static gint ett_h245_ResponseMessage = -1;
@@ -2442,7 +2442,7 @@ static gint ett_h245_FlowControlIndication = -1;
static gint ett_h245_MobileMultilinkReconfigurationIndication = -1;
/*--- End of included file: packet-h245-ett.c ---*/
-#line 412 "../../asn1/h245/packet-h245-template.c"
+#line 412 "./asn1/h245/packet-h245-template.c"
/* Forward declarations */
static int dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -2453,7 +2453,7 @@ static void reset_h245_pi(void *dummy _U_)
/*--- Included file: packet-h245-fn.c ---*/
-#line 1 "../../asn1/h245/packet-h245-fn.c"
+#line 1 "./asn1/h245/packet-h245-fn.c"
/*--- Cyclic dependencies ---*/
/* GenericParameter -> ParameterValue -> ParameterValue/genericParameter -> GenericParameter */
@@ -2530,7 +2530,7 @@ static const per_sequence_t H221NonStandardID_sequence[] = {
static int
dissect_h245_H221NonStandardID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 966 "../../asn1/h245/h245.cnf"
+#line 966 "./asn1/h245/h245.cnf"
t35CountryCode = 0;
t35Extension = 0;
manufacturerCode = 0;
@@ -2538,7 +2538,7 @@ dissect_h245_H221NonStandardID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_H221NonStandardID, H221NonStandardID_sequence);
-#line 970 "../../asn1/h245/h245.cnf"
+#line 970 "./asn1/h245/h245.cnf"
h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
proto_tree_add_uint(tree, hf_h245Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
@@ -2560,7 +2560,7 @@ static const per_choice_t NonStandardIdentifier_choice[] = {
static int
dissect_h245_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 947 "../../asn1/h245/h245.cnf"
+#line 947 "./asn1/h245/h245.cnf"
gint32 value;
nsiOID = "";
@@ -2589,7 +2589,7 @@ dissect_h245_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_T_nsd_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 981 "../../asn1/h245/h245.cnf"
+#line 981 "./asn1/h245/h245.cnf"
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -2612,7 +2612,7 @@ static const per_sequence_t NonStandardParameter_sequence[] = {
static int
dissect_h245_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 979 "../../asn1/h245/h245.cnf"
+#line 979 "./asn1/h245/h245.cnf"
nsp_handle = NULL;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -2667,7 +2667,7 @@ dissect_h245_MasterSlaveDetermination(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_MasterSlaveDetermination, MasterSlaveDetermination_sequence);
-#line 535 "../../asn1/h245/h245.cnf"
+#line 535 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_MastSlvDet;
@@ -3565,7 +3565,7 @@ dissect_h245_T_t38fax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_h245_T_standardOid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 693 "../../asn1/h245/h245.cnf"
+#line 693 "./asn1/h245/h245.cnf"
const gchar *standard_oid_str = NULL;
gef_ctx_t *gefx;
@@ -3625,7 +3625,7 @@ static const per_choice_t CapabilityIdentifier_choice[] = {
static int
dissect_h245_CapabilityIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 678 "../../asn1/h245/h245.cnf"
+#line 678 "./asn1/h245/h245.cnf"
gef_ctx_t *gefx;
proto_item* ti;
@@ -3634,7 +3634,7 @@ dissect_h245_CapabilityIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
ett_h245_CapabilityIdentifier, CapabilityIdentifier_choice,
NULL);
-#line 682 "../../asn1/h245/h245.cnf"
+#line 682 "./asn1/h245/h245.cnf"
gef_ctx_update_key(gef_ctx_get(actx->private_data));
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
@@ -3661,7 +3661,7 @@ dissect_h245_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 724 "../../asn1/h245/h245.cnf"
+#line 724 "./asn1/h245/h245.cnf"
guint32 value_int = (guint32)-1;
gef_ctx_t *gefx;
@@ -3694,7 +3694,7 @@ static const per_choice_t ParameterIdentifier_choice[] = {
static int
dissect_h245_ParameterIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 710 "../../asn1/h245/h245.cnf"
+#line 710 "./asn1/h245/h245.cnf"
gef_ctx_t *gefx;
proto_item* ti;
@@ -3702,7 +3702,7 @@ dissect_h245_ParameterIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
ett_h245_ParameterIdentifier, ParameterIdentifier_choice,
NULL);
-#line 713 "../../asn1/h245/h245.cnf"
+#line 713 "./asn1/h245/h245.cnf"
gef_ctx_update_key(gef_ctx_get(actx->private_data));
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
@@ -3719,7 +3719,7 @@ dissect_h245_ParameterIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h245_T_booleanArray(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 733 "../../asn1/h245/h245.cnf"
+#line 733 "./asn1/h245/h245.cnf"
guint32 value;
guint8 *buf;
tvbuff_t *value_tvb;
@@ -3748,7 +3748,7 @@ dissect_h245_T_booleanArray(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h245_T_unsignedMin(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 752 "../../asn1/h245/h245.cnf"
+#line 752 "./asn1/h245/h245.cnf"
guint32 value;
guint8 *buf;
tvbuff_t *value_tvb;
@@ -3777,7 +3777,7 @@ dissect_h245_T_unsignedMin(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_h245_T_unsignedMax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 771 "../../asn1/h245/h245.cnf"
+#line 771 "./asn1/h245/h245.cnf"
guint32 value;
guint8 *buf;
tvbuff_t *value_tvb;
@@ -3806,7 +3806,7 @@ dissect_h245_T_unsignedMax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_h245_T_unsigned32Min(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 790 "../../asn1/h245/h245.cnf"
+#line 790 "./asn1/h245/h245.cnf"
guint32 value;
guint8 *buf;
tvbuff_t *value_tvb;
@@ -3835,7 +3835,7 @@ dissect_h245_T_unsigned32Min(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h245_T_unsigned32Max(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 809 "../../asn1/h245/h245.cnf"
+#line 809 "./asn1/h245/h245.cnf"
guint32 value;
guint8 *buf;
tvbuff_t *value_tvb;
@@ -3864,7 +3864,7 @@ dissect_h245_T_unsigned32Max(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h245_T_octetString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 828 "../../asn1/h245/h245.cnf"
+#line 828 "./asn1/h245/h245.cnf"
tvbuff_t *value_tvb;
gef_ctx_t *gefx;
proto_item* ti;
@@ -3963,7 +3963,7 @@ dissect_h245_GenericParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h245_T_collapsing_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 633 "../../asn1/h245/h245.cnf"
+#line 633 "./asn1/h245/h245.cnf"
gef_ctx_t *parent_gefx;
parent_gefx = gef_ctx_get(actx->private_data);
@@ -3971,7 +3971,7 @@ dissect_h245_T_collapsing_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index);
-#line 638 "../../asn1/h245/h245.cnf"
+#line 638 "./asn1/h245/h245.cnf"
actx->private_data = parent_gefx;
return offset;
@@ -3994,7 +3994,7 @@ dissect_h245_T_collapsing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_h245_T_nonCollapsing_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 642 "../../asn1/h245/h245.cnf"
+#line 642 "./asn1/h245/h245.cnf"
gef_ctx_t *parent_gefx;
parent_gefx = gef_ctx_get(actx->private_data);
@@ -4002,7 +4002,7 @@ dissect_h245_T_nonCollapsing_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index);
-#line 647 "../../asn1/h245/h245.cnf"
+#line 647 "./asn1/h245/h245.cnf"
actx->private_data = parent_gefx;
return offset;
@@ -4025,7 +4025,7 @@ dissect_h245_T_nonCollapsing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h245_T_nonCollapsingRaw(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 651 "../../asn1/h245/h245.cnf"
+#line 651 "./asn1/h245/h245.cnf"
tvbuff_t *value_tvb;
gef_ctx_t *parent_gefx;
gef_ctx_t *gefx;
@@ -4061,14 +4061,14 @@ static const per_sequence_t GenericCapability_sequence[] = {
static int
dissect_h245_GenericCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 626 "../../asn1/h245/h245.cnf"
+#line 626 "./asn1/h245/h245.cnf"
void *priv_data = actx->private_data;
actx->private_data = gef_ctx_alloc(NULL, "GenericCapability");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_GenericCapability, GenericCapability_sequence);
-#line 629 "../../asn1/h245/h245.cnf"
+#line 629 "./asn1/h245/h245.cnf"
actx->private_data = priv_data;
return offset;
@@ -4113,7 +4113,7 @@ static const per_choice_t Application_choice[] = {
static int
dissect_h245_Application(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 465 "../../asn1/h245/h245.cnf"
+#line 465 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -4257,7 +4257,7 @@ dissect_h245_T_payloadDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h245_T_rtpPayloadType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 932 "../../asn1/h245/h245.cnf"
+#line 932 "./asn1/h245/h245.cnf"
unsigned int pt;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -4281,7 +4281,7 @@ static const per_sequence_t RTPPayloadType_sequence[] = {
static int
dissect_h245_RTPPayloadType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 924 "../../asn1/h245/h245.cnf"
+#line 924 "./asn1/h245/h245.cnf"
rfc_number = 0;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -5677,7 +5677,7 @@ dissect_h245_H263VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_H263VideoCapability, H263VideoCapability_sequence);
-#line 363 "../../asn1/h245/h245.cnf"
+#line 363 "./asn1/h245/h245.cnf"
h245_lc_dissector = h263_handle;
return offset;
@@ -5770,7 +5770,7 @@ static const per_choice_t VideoCapability_choice[] = {
static int
dissect_h245_VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 457 "../../asn1/h245/h245.cnf"
+#line 457 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6088,7 +6088,7 @@ static const per_choice_t AudioCapability_choice[] = {
static int
dissect_h245_AudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 450 "../../asn1/h245/h245.cnf"
+#line 450 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6667,7 +6667,7 @@ dissect_h245_SET_SIZE_1_256_OF_CapabilityDescriptor(tvbuff_t *tvb _U_, int offse
static int
dissect_h245_T_subMessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 582 "../../asn1/h245/h245.cnf"
+#line 582 "./asn1/h245/h245.cnf"
guint32 subMessageIdentifer;
gef_ctx_t *gefx;
@@ -6702,7 +6702,7 @@ dissect_h245_T_subMessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_h245_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 608 "../../asn1/h245/h245.cnf"
+#line 608 "./asn1/h245/h245.cnf"
gef_ctx_t *parent_gefx;
parent_gefx = gef_ctx_get(actx->private_data);
@@ -6710,7 +6710,7 @@ dissect_h245_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index);
-#line 613 "../../asn1/h245/h245.cnf"
+#line 613 "./asn1/h245/h245.cnf"
actx->private_data = parent_gefx;
return offset;
@@ -6739,7 +6739,7 @@ static const per_sequence_t GenericMessage_sequence[] = {
static int
dissect_h245_GenericMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 568 "../../asn1/h245/h245.cnf"
+#line 568 "./asn1/h245/h245.cnf"
void *priv_data = actx->private_data;
gef_ctx_t *gefx;
@@ -6753,7 +6753,7 @@ dissect_h245_GenericMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_GenericMessage, GenericMessage_sequence);
-#line 578 "../../asn1/h245/h245.cnf"
+#line 578 "./asn1/h245/h245.cnf"
actx->private_data = priv_data;
return offset;
@@ -6763,13 +6763,13 @@ dissect_h245_GenericMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h245_GenericInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 618 "../../asn1/h245/h245.cnf"
+#line 618 "./asn1/h245/h245.cnf"
void *priv_data = actx->private_data;
actx->private_data = gef_ctx_alloc(NULL, "GenericInformation");
offset = dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_index);
-#line 621 "../../asn1/h245/h245.cnf"
+#line 621 "./asn1/h245/h245.cnf"
actx->private_data = priv_data;
return offset;
@@ -6804,7 +6804,7 @@ dissect_h245_TerminalCapabilitySet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_TerminalCapabilitySet, TerminalCapabilitySet_sequence);
-#line 553 "../../asn1/h245/h245.cnf"
+#line 553 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_TermCapSet;
@@ -6816,7 +6816,7 @@ if (h245_pi != NULL)
static int
dissect_h245_LogicalChannelNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 122 "../../asn1/h245/h245.cnf"
+#line 122 "./asn1/h245/h245.cnf"
guint32 value;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 65535U, &value, FALSE);
@@ -6833,7 +6833,7 @@ static int
dissect_h245_OLC_fw_lcn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index);
-#line 163 "../../asn1/h245/h245.cnf"
+#line 163 "./asn1/h245/h245.cnf"
if (upcoming_olc) upcoming_olc->fwd_lc_num = h245_lc_temp;
h223_fw_lc_num = h245_lc_temp;
@@ -7268,7 +7268,7 @@ static const per_choice_t DataType_choice[] = {
static int
dissect_h245_DataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1007 "../../asn1/h245/h245.cnf"
+#line 1007 "./asn1/h245/h245.cnf"
gint choice_index;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -7321,7 +7321,7 @@ dissect_h245_H222LogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_h245_T_h223_al_type_al1Framed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 294 "../../asn1/h245/h245.cnf"
+#line 294 "./asn1/h245/h245.cnf"
if(h223_lc_params_temp)
h223_lc_params_temp->al_type = al1Framed;
@@ -7334,7 +7334,7 @@ dissect_h245_T_h223_al_type_al1Framed(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_h245_T_h223_al_type_al1NotFramed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 299 "../../asn1/h245/h245.cnf"
+#line 299 "./asn1/h245/h245.cnf"
if(h223_lc_params_temp)
h223_lc_params_temp->al_type = al1NotFramed;
@@ -7347,7 +7347,7 @@ dissect_h245_T_h223_al_type_al1NotFramed(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_h245_T_h223_al_type_al2WithoutSequenceNumbers(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 304 "../../asn1/h245/h245.cnf"
+#line 304 "./asn1/h245/h245.cnf"
if(h223_lc_params_temp)
h223_lc_params_temp->al_type = al2WithoutSequenceNumbers;
@@ -7360,7 +7360,7 @@ dissect_h245_T_h223_al_type_al2WithoutSequenceNumbers(tvbuff_t *tvb _U_, int off
static int
dissect_h245_T_h223_al_type_al2WithSequenceNumbers(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 309 "../../asn1/h245/h245.cnf"
+#line 309 "./asn1/h245/h245.cnf"
if(h223_lc_params_temp)
h223_lc_params_temp->al_type = al2WithSequenceNumbers;
@@ -7373,7 +7373,7 @@ dissect_h245_T_h223_al_type_al2WithSequenceNumbers(tvbuff_t *tvb _U_, int offset
static int
dissect_h245_T_controlFieldOctets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 323 "../../asn1/h245/h245.cnf"
+#line 323 "./asn1/h245/h245.cnf"
guint32 value;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 2U, &value, FALSE);
@@ -7389,7 +7389,7 @@ dissect_h245_T_controlFieldOctets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_T_al3_sendBufferSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 332 "../../asn1/h245/h245.cnf"
+#line 332 "./asn1/h245/h245.cnf"
guint32 value;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 16777215U, &value, FALSE);
@@ -7420,7 +7420,7 @@ dissect_h245_Al3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
static int
dissect_h245_T_h223_al_type_al3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 314 "../../asn1/h245/h245.cnf"
+#line 314 "./asn1/h245/h245.cnf"
if(h223_lc_params_temp) {
h223_lc_params_temp->al_type = al3;
h223_lc_params_temp->al_params = wmem_new(wmem_file_scope(), h223_al3_params);
@@ -7615,7 +7615,7 @@ dissect_h245_H223AL1MParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h245_T_h223_al_type_al1M(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 339 "../../asn1/h245/h245.cnf"
+#line 339 "./asn1/h245/h245.cnf"
if(h223_lc_params_temp)
h223_lc_params_temp->al_type = al1M;
@@ -7665,7 +7665,7 @@ dissect_h245_H223AL2MParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h245_T_h223_al_type_al2M(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 344 "../../asn1/h245/h245.cnf"
+#line 344 "./asn1/h245/h245.cnf"
if(h223_lc_params_temp)
h223_lc_params_temp->al_type = al2M;
@@ -7753,7 +7753,7 @@ dissect_h245_H223AL3MParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h245_T_h223_al_type_al3M(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 349 "../../asn1/h245/h245.cnf"
+#line 349 "./asn1/h245/h245.cnf"
if(h223_lc_params_temp)
h223_lc_params_temp->al_type = al3M;
@@ -7802,7 +7802,7 @@ dissect_h245_T_adaptationLayerType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_T_h223_lc_segmentableFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 356 "../../asn1/h245/h245.cnf"
+#line 356 "./asn1/h245/h245.cnf"
gboolean value;
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &value);
@@ -7832,7 +7832,7 @@ dissect_h245_H223LogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_h245_OLC_fw_h223_params(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 185 "../../asn1/h245/h245.cnf"
+#line 185 "./asn1/h245/h245.cnf"
h223_fw_lc_params = wmem_new(wmem_file_scope(), h223_lc_params);
h223_fw_lc_params->al_type = al_nonStandard;
h223_fw_lc_params->al_params = NULL;
@@ -8006,7 +8006,7 @@ dissect_h245_V76LogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_h245_Ipv4_network(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 845 "../../asn1/h245/h245.cnf"
+#line 845 "./asn1/h245/h245.cnf"
tvbuff_t *value_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8026,7 +8026,7 @@ dissect_h245_Ipv4_network(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_h245_TsapIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 856 "../../asn1/h245/h245.cnf"
+#line 856 "./asn1/h245/h245.cnf"
guint32 tsapIdentifier;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -8106,7 +8106,7 @@ dissect_h245_T_iPXAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_h245_T_ip6_network(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 866 "../../asn1/h245/h245.cnf"
+#line 866 "./asn1/h245/h245.cnf"
tvbuff_t *value_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8126,7 +8126,7 @@ dissect_h245_T_ip6_network(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_h245_T_ipv6_tsapIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 877 "../../asn1/h245/h245.cnf"
+#line 877 "./asn1/h245/h245.cnf"
guint32 tsapIdentifier;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -8322,13 +8322,13 @@ dissect_h245_TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h245_T_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 896 "../../asn1/h245/h245.cnf"
+#line 896 "./asn1/h245/h245.cnf"
if (upcoming_channel)
upcoming_channel->upcoming_addr = &upcoming_channel->media_addr;
offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
-#line 900 "../../asn1/h245/h245.cnf"
+#line 900 "./asn1/h245/h245.cnf"
if (upcoming_channel)
upcoming_channel->upcoming_addr = NULL;
@@ -8339,13 +8339,13 @@ dissect_h245_T_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h245_T_mediaControlChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 914 "../../asn1/h245/h245.cnf"
+#line 914 "./asn1/h245/h245.cnf"
if (upcoming_channel)
upcoming_channel->upcoming_addr = &upcoming_channel->media_control_addr;
offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
-#line 918 "../../asn1/h245/h245.cnf"
+#line 918 "./asn1/h245/h245.cnf"
if (upcoming_channel)
upcoming_channel->upcoming_addr = NULL;
@@ -8476,7 +8476,7 @@ static const per_sequence_t T_forwardLogicalChannelParameters_sequence[] = {
static int
dissect_h245_T_forwardLogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 168 "../../asn1/h245/h245.cnf"
+#line 168 "./asn1/h245/h245.cnf"
upcoming_channel = (upcoming_olc) ? &upcoming_olc->fwd_lc : NULL;
@@ -8502,7 +8502,7 @@ dissect_h245_T_forwardLogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_
static int
dissect_h245_OLC_rev_h223_params(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 206 "../../asn1/h245/h245.cnf"
+#line 206 "./asn1/h245/h245.cnf"
h223_rev_lc_params = wmem_new(wmem_file_scope(), h223_lc_params);
h223_rev_lc_params->al_type = al_nonStandard;
h223_rev_lc_params->al_params = NULL;
@@ -8550,7 +8550,7 @@ static const per_sequence_t OLC_reverseLogicalChannelParameters_sequence[] = {
static int
dissect_h245_OLC_reverseLogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 194 "../../asn1/h245/h245.cnf"
+#line 194 "./asn1/h245/h245.cnf"
upcoming_channel = (upcoming_olc) ? &upcoming_olc->rev_lc : NULL;
@@ -8737,14 +8737,14 @@ static const per_sequence_t EncryptionSync_sequence[] = {
static int
dissect_h245_EncryptionSync(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 670 "../../asn1/h245/h245.cnf"
+#line 670 "./asn1/h245/h245.cnf"
void *priv_data = actx->private_data;
actx->private_data = gef_ctx_alloc(NULL, "EncryptionSync");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_EncryptionSync, EncryptionSync_sequence);
-#line 673 "../../asn1/h245/h245.cnf"
+#line 673 "./asn1/h245/h245.cnf"
actx->private_data = priv_data;
return offset;
@@ -8763,7 +8763,7 @@ static const per_sequence_t OpenLogicalChannel_sequence[] = {
int
dissect_h245_OpenLogicalChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 129 "../../asn1/h245/h245.cnf"
+#line 129 "./asn1/h245/h245.cnf"
gint32 temp;
upcoming_olc = (!actx->pinfo->fd->flags.visited) ? wmem_new0(wmem_file_scope(), olc_info_t) : NULL;
@@ -8863,7 +8863,7 @@ dissect_h245_CloseLogicalChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_CloseLogicalChannel, CloseLogicalChannel_sequence);
-#line 511 "../../asn1/h245/h245.cnf"
+#line 511 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_CloseLogChn;
@@ -8919,7 +8919,7 @@ dissect_h245_RequestChannelClose(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 65 "../../asn1/h245/h245.cnf"
+#line 65 "./asn1/h245/h245.cnf"
guint32 value;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 15U, &value, FALSE);
@@ -8934,7 +8934,7 @@ dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_h245_T_logicalChannelNum(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 92 "../../asn1/h245/h245.cnf"
+#line 92 "./asn1/h245/h245.cnf"
/*MultiplexElement/type/logicalChannelNumber*/
guint32 value;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -8954,7 +8954,7 @@ static const per_sequence_t T_subElementList_sequence_of[1] = {
static int
dissect_h245_T_subElementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 100 "../../asn1/h245/h245.cnf"
+#line 100 "./asn1/h245/h245.cnf"
h223_mux_element dummy_me, *parent_me = h223_me;
memset (&dummy_me, 0, sizeof (h223_mux_element));
h223_me = &dummy_me;
@@ -8996,7 +8996,7 @@ dissect_h245_Me_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_h245_ME_finiteRepeatCount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 116 "../../asn1/h245/h245.cnf"
+#line 116 "./asn1/h245/h245.cnf"
guint32 value;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 65535U, &value, FALSE);
@@ -9013,7 +9013,7 @@ static int
dissect_h245_T_untilClosingFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
-#line 110 "../../asn1/h245/h245.cnf"
+#line 110 "./asn1/h245/h245.cnf"
h223_me->repeat_count = 0;
return offset;
@@ -9050,7 +9050,7 @@ static const per_sequence_t MultiplexElement_sequence[] = {
static int
dissect_h245_MultiplexElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 82 "../../asn1/h245/h245.cnf"
+#line 82 "./asn1/h245/h245.cnf"
/*MultiplexElement*/
h223_mux_element* me = wmem_new(wmem_file_scope(), h223_mux_element);
h223_me->next = me;
@@ -9070,7 +9070,7 @@ static const per_sequence_t T_elementList_sequence_of[1] = {
static int
dissect_h245_T_elementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 71 "../../asn1/h245/h245.cnf"
+#line 71 "./asn1/h245/h245.cnf"
/* create a h223_mux_element to hold onto the head of the list, since
* h223_me will track the tail */
h223_mux_element dummy_me;
@@ -9096,7 +9096,7 @@ static const per_sequence_t MultiplexEntryDescriptor_sequence[] = {
static int
dissect_h245_MultiplexEntryDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 53 "../../asn1/h245/h245.cnf"
+#line 53 "./asn1/h245/h245.cnf"
/*MultiplexEntryDescriptor*/
h223_me = NULL;
h223_mc = 0;
@@ -9361,7 +9361,7 @@ static const per_choice_t VideoMode_choice[] = {
static int
dissect_h245_VideoMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 479 "../../asn1/h245/h245.cnf"
+#line 479 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -9687,7 +9687,7 @@ static const per_choice_t AudioMode_choice[] = {
static int
dissect_h245_AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 472 "../../asn1/h245/h245.cnf"
+#line 472 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -9754,7 +9754,7 @@ static const per_choice_t DataModeApplication_choice[] = {
static int
dissect_h245_DataModeApplication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 486 "../../asn1/h245/h245.cnf"
+#line 486 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -10741,7 +10741,7 @@ static const per_choice_t RequestMessage_choice[] = {
static int
dissect_h245_RequestMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 367 "../../asn1/h245/h245.cnf"
+#line 367 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -10811,7 +10811,7 @@ dissect_h245_MasterSlaveDeterminationAck(tvbuff_t *tvb _U_, int offset _U_, asn1
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_MasterSlaveDeterminationAck, MasterSlaveDeterminationAck_sequence);
-#line 493 "../../asn1/h245/h245.cnf"
+#line 493 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_MastSlvDetAck;
@@ -10850,7 +10850,7 @@ dissect_h245_MasterSlaveDeterminationReject(tvbuff_t *tvb _U_, int offset _U_, a
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_MasterSlaveDeterminationReject, MasterSlaveDeterminationReject_sequence);
-#line 499 "../../asn1/h245/h245.cnf"
+#line 499 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_MastSlvDetRjc;
@@ -10870,7 +10870,7 @@ dissect_h245_TerminalCapabilitySetAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_TerminalCapabilitySetAck, TerminalCapabilitySetAck_sequence);
-#line 529 "../../asn1/h245/h245.cnf"
+#line 529 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_TermCapSetAck;
@@ -10939,7 +10939,7 @@ dissect_h245_TerminalCapabilitySetReject(tvbuff_t *tvb _U_, int offset _U_, asn1
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_TerminalCapabilitySetReject, TerminalCapabilitySetReject_sequence);
-#line 541 "../../asn1/h245/h245.cnf"
+#line 541 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_TermCapSetRjc;
@@ -10953,7 +10953,7 @@ static int
dissect_h245_OLC_ack_fw_lcn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index);
-#line 274 "../../asn1/h245/h245.cnf"
+#line 274 "./asn1/h245/h245.cnf"
if (upcoming_olc) upcoming_olc->fwd_lc_num = h245_lc_temp;
h223_fw_lc_num = h245_lc_temp;
@@ -10966,7 +10966,7 @@ static int
dissect_h245_T_reverseLogicalChannelNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index);
-#line 288 "../../asn1/h245/h245.cnf"
+#line 288 "./asn1/h245/h245.cnf"
h223_rev_lc_num = h245_lc_temp;
return offset;
@@ -11015,13 +11015,13 @@ dissect_h245_OLC_ack_reverseLogicalChannelParameters(tvbuff_t *tvb _U_, int offs
static int
dissect_h245_Ack_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 887 "../../asn1/h245/h245.cnf"
+#line 887 "./asn1/h245/h245.cnf"
if (upcoming_channel)
upcoming_channel->upcoming_addr = &upcoming_channel->media_addr;
offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
-#line 891 "../../asn1/h245/h245.cnf"
+#line 891 "./asn1/h245/h245.cnf"
if (upcoming_channel)
upcoming_channel->upcoming_addr = NULL;
@@ -11032,13 +11032,13 @@ dissect_h245_Ack_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h245_Ack_mediaControlChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 905 "../../asn1/h245/h245.cnf"
+#line 905 "./asn1/h245/h245.cnf"
if (upcoming_channel)
upcoming_channel->upcoming_addr = &upcoming_channel->media_control_addr;
offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
-#line 909 "../../asn1/h245/h245.cnf"
+#line 909 "./asn1/h245/h245.cnf"
if (upcoming_channel)
upcoming_channel->upcoming_addr = NULL;
@@ -11078,7 +11078,7 @@ static const per_choice_t T_forwardMultiplexAckParameters_choice[] = {
static int
dissect_h245_T_forwardMultiplexAckParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 279 "../../asn1/h245/h245.cnf"
+#line 279 "./asn1/h245/h245.cnf"
upcoming_channel = (upcoming_olc) ? &upcoming_olc->fwd_lc : NULL;
@@ -11106,7 +11106,7 @@ static const per_sequence_t OpenLogicalChannelAck_sequence[] = {
static int
dissect_h245_OpenLogicalChannelAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 218 "../../asn1/h245/h245.cnf"
+#line 218 "./asn1/h245/h245.cnf"
guint32 temp;
int p2p_dir;
h223_pending_olc *pend;
@@ -11230,7 +11230,7 @@ dissect_h245_OpenLogicalChannelReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_OpenLogicalChannelReject, OpenLogicalChannelReject_sequence);
-#line 505 "../../asn1/h245/h245.cnf"
+#line 505 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_OpenLogChnRjc;
@@ -11249,7 +11249,7 @@ dissect_h245_CloseLogicalChannelAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_CloseLogicalChannelAck, CloseLogicalChannelAck_sequence);
-#line 517 "../../asn1/h245/h245.cnf"
+#line 517 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_CloseLogChnAck;
@@ -12373,7 +12373,7 @@ static const per_choice_t ResponseMessage_choice[] = {
static int
dissect_h245_ResponseMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 398 "../../asn1/h245/h245.cnf"
+#line 398 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -13405,7 +13405,7 @@ static const per_choice_t CommandMessage_choice[] = {
static int
dissect_h245_CommandMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 433 "../../asn1/h245/h245.cnf"
+#line 433 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -13462,7 +13462,7 @@ dissect_h245_MasterSlaveDeterminationRelease(tvbuff_t *tvb _U_, int offset _U_,
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_MasterSlaveDeterminationRelease, MasterSlaveDeterminationRelease_sequence);
-#line 547 "../../asn1/h245/h245.cnf"
+#line 547 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_MastSlvDetRls;
@@ -13481,7 +13481,7 @@ dissect_h245_TerminalCapabilitySetRelease(tvbuff_t *tvb _U_, int offset _U_, asn
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_TerminalCapabilitySetRelease, TerminalCapabilitySetRelease_sequence);
-#line 559 "../../asn1/h245/h245.cnf"
+#line 559 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_TermCapSetRls;
@@ -13501,7 +13501,7 @@ dissect_h245_OpenLogicalChannelConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_c
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_OpenLogicalChannelConfirm, OpenLogicalChannelConfirm_sequence);
-#line 523 "../../asn1/h245/h245.cnf"
+#line 523 "./asn1/h245/h245.cnf"
if (h245_pi != NULL)
h245_pi->msg_type = H245_OpenLogChnCnf;
@@ -14274,7 +14274,7 @@ dissect_h245_FunctionNotSupportedCause(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_h245_T_returnedFunction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 990 "../../asn1/h245/h245.cnf"
+#line 990 "./asn1/h245/h245.cnf"
tvbuff_t *next_tvb = NULL;
proto_item *item;
proto_tree *subtree;
@@ -14466,7 +14466,7 @@ static const per_choice_t IndicationMessage_choice[] = {
static int
dissect_h245_IndicationMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 415 "../../asn1/h245/h245.cnf"
+#line 415 "./asn1/h245/h245.cnf"
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -14529,7 +14529,7 @@ static int dissect_OpenLogicalChannel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
/*--- End of included file: packet-h245-fn.c ---*/
-#line 421 "../../asn1/h245/packet-h245-template.c"
+#line 421 "./asn1/h245/packet-h245-template.c"
static int
dissect_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
@@ -14617,7 +14617,7 @@ void proto_register_h245(void) {
/*--- Included file: packet-h245-hfarr.c ---*/
-#line 1 "../../asn1/h245/packet-h245-hfarr.c"
+#line 1 "./asn1/h245/packet-h245-hfarr.c"
{ &hf_h245_OpenLogicalChannel_PDU,
{ "OpenLogicalChannel", "h245.OpenLogicalChannel_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -20228,7 +20228,7 @@ void proto_register_h245(void) {
NULL, HFILL }},
/*--- End of included file: packet-h245-hfarr.c ---*/
-#line 507 "../../asn1/h245/packet-h245-template.c"
+#line 507 "./asn1/h245/packet-h245-template.c"
};
/* List of subtrees */
@@ -20237,7 +20237,7 @@ void proto_register_h245(void) {
&ett_h245_returnedFunction,
/*--- Included file: packet-h245-ettarr.c ---*/
-#line 1 "../../asn1/h245/packet-h245-ettarr.c"
+#line 1 "./asn1/h245/packet-h245-ettarr.c"
&ett_h245_MultimediaSystemControlMessage,
&ett_h245_RequestMessage,
&ett_h245_ResponseMessage,
@@ -20731,7 +20731,7 @@ void proto_register_h245(void) {
&ett_h245_MobileMultilinkReconfigurationIndication,
/*--- End of included file: packet-h245-ettarr.c ---*/
-#line 514 "../../asn1/h245/packet-h245-template.c"
+#line 514 "./asn1/h245/packet-h245-template.c"
};
module_t *h245_module;
diff --git a/epan/dissectors/packet-h245.h b/epan/dissectors/packet-h245.h
index 02274f9bf3..38ceb2660a 100644
--- a/epan/dissectors/packet-h245.h
+++ b/epan/dissectors/packet-h245.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h245.h */
-/* ../../tools/asn2wrs.py -p h245 -c ./h245.cnf -s ./packet-h245-template -D . -O ../../epan/dissectors MULTIMEDIA-SYSTEM-CONTROL.asn */
+/* asn2wrs.py -p h245 -c ./h245.cnf -s ./packet-h245-template -D . -O ../.. MULTIMEDIA-SYSTEM-CONTROL.asn */
/* Input file: packet-h245-template.h */
-#line 1 "../../asn1/h245/packet-h245-template.h"
+#line 1 "./asn1/h245/packet-h245-template.h"
/* packet-h245.h
* Routines for h245 packet dissection
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
@@ -132,7 +132,7 @@ WS_DLL_PUBLIC void h245_set_h223_add_lc_handle( h223_add_lc_handle_t handle );
/*--- Included file: packet-h245-exp.h ---*/
-#line 1 "../../asn1/h245/packet-h245-exp.h"
+#line 1 "./asn1/h245/packet-h245-exp.h"
extern const value_string h245_Capability_vals[];
extern const value_string DataProtocolCapability_vals[];
extern const value_string h245_TransportAddress_vals[];
@@ -150,7 +150,7 @@ int dissect_h245_UnicastAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
int dissect_h245_MulticastAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-h245-exp.h ---*/
-#line 126 "../../asn1/h245/packet-h245-template.h"
+#line 126 "./asn1/h245/packet-h245-template.h"
void dissect_h245_FastStart_OLC(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, char *codec_str);
diff --git a/epan/dissectors/packet-h248.c b/epan/dissectors/packet-h248.c
index 385b8bab88..295eff2cb7 100644
--- a/epan/dissectors/packet-h248.c
+++ b/epan/dissectors/packet-h248.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h248.c */
-/* ../../tools/asn2wrs.py -b -p h248 -c ./h248.cnf -s ./packet-h248-template -D . -O ../../epan/dissectors h248v3.asn h248v1support.asn */
+/* asn2wrs.py -b -p h248 -c ./h248.cnf -s ./packet-h248-template -D . -O ../.. h248v3.asn h248v1support.asn */
/* Input file: packet-h248-template.c */
-#line 1 "../../asn1/h248/packet-h248-template.c"
+#line 1 "./asn1/h248/packet-h248-template.c"
/* packet-h248.c
* Routines for H.248/MEGACO packet dissection
*
@@ -80,7 +80,7 @@ static int hf_h248_auditValueReplyV1 = -1;
/*--- Included file: packet-h248-hf.c ---*/
-#line 1 "../../asn1/h248/packet-h248-hf.c"
+#line 1 "./asn1/h248/packet-h248-hf.c"
static int hf_h248_authHeader = -1; /* AuthenticationHeader */
static int hf_h248_mess = -1; /* Message */
static int hf_h248_secParmIndex = -1; /* SecurityParmIndex */
@@ -397,7 +397,7 @@ static int hf_h248_NotifyCompletion_otherReason = -1;
static int hf_h248_NotifyCompletion_onIteration = -1;
/*--- End of included file: packet-h248-hf.c ---*/
-#line 74 "../../asn1/h248/packet-h248-template.c"
+#line 74 "./asn1/h248/packet-h248-template.c"
/* Initialize the subtree pointers */
static gint ett_h248 = -1;
@@ -416,7 +416,7 @@ static gcp_hf_ett_t h248_arrel = {{-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1}};
/*--- Included file: packet-h248-ett.c ---*/
-#line 1 "../../asn1/h248/packet-h248-ett.c"
+#line 1 "./asn1/h248/packet-h248-ett.c"
static gint ett_h248_MegacoMessage = -1;
static gint ett_h248_AuthenticationHeader = -1;
static gint ett_h248_Message = -1;
@@ -562,7 +562,7 @@ static gint ett_h248_EventParameterV1 = -1;
static gint ett_h248_SigParameterV1 = -1;
/*--- End of included file: packet-h248-ett.c ---*/
-#line 91 "../../asn1/h248/packet-h248-template.c"
+#line 91 "./asn1/h248/packet-h248-template.c"
static expert_field ei_h248_errored_command = EI_INIT;
static expert_field ei_h248_transactionId64 = EI_INIT;
@@ -1891,7 +1891,7 @@ static int dissect_h248_MtpAddress(gboolean implicit_tag, tvbuff_t *tvb, int off
/*--- Included file: packet-h248-fn.c ---*/
-#line 1 "../../asn1/h248/packet-h248-fn.c"
+#line 1 "./asn1/h248/packet-h248-fn.c"
/*--- Cyclic dependencies ---*/
/* SecondEventsDescriptor -> SecondEventsDescriptor/eventList -> SecondRequestedEvent -> SecondRequestedActions -> NotifyBehaviour -> RegulatedEmbeddedDescriptor -> SecondEventsDescriptor */
@@ -1948,7 +1948,7 @@ dissect_h248_AuthenticationHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_h248_T_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 106 "../../asn1/h248/h248.cnf"
+#line 106 "./asn1/h248/h248.cnf"
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&h248_version);
@@ -2088,7 +2088,7 @@ dissect_h248_MId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_h248_T_errorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 300 "../../asn1/h248/h248.cnf"
+#line 300 "./asn1/h248/h248.cnf"
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, &error_code);
expert_add_info(actx->pinfo, actx->created_item, &ei_h248_errored_command);
@@ -2144,7 +2144,7 @@ dissect_h248_TransactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_h248_T_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 110 "../../asn1/h248/h248.cnf"
+#line 110 "./asn1/h248/h248.cnf"
guint32 trx_id = 0;
offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_REQUEST, keep_persistent_data);
@@ -2159,7 +2159,7 @@ dissect_h248_T_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_h248_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 135 "../../asn1/h248/h248.cnf"
+#line 135 "./asn1/h248/h248.cnf"
guint32 ctx_id = 0;
offset = dissect_h248_ctx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &ctx_id);
curr_info.ctx = gcp_ctx(curr_info.msg,curr_info.trx,ctx_id,keep_persistent_data);
@@ -2193,7 +2193,7 @@ dissect_h248_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_h248_WildcardField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 318 "../../asn1/h248/h248.cnf"
+#line 318 "./asn1/h248/h248.cnf"
tvbuff_t* new_tvb;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
tree = proto_item_add_subtree(actx->created_item,ett_wildcard);
@@ -2227,7 +2227,7 @@ dissect_h248_SEQUENCE_OF_WildcardField(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_h248_T_terminationId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 332 "../../asn1/h248/h248.cnf"
+#line 332 "./asn1/h248/h248.cnf"
tvbuff_t* new_tvb;
h248_term_info_t term_info;
@@ -2278,7 +2278,7 @@ static const ber_sequence_t TerminationID_sequence[] = {
static int
dissect_h248_TerminationID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 313 "../../asn1/h248/h248.cnf"
+#line 313 "./asn1/h248/h248.cnf"
curr_info.term = wmem_new0(wmem_packet_scope(), gcp_term_t);
wild_term = GCP_WILDCARD_NONE;
@@ -2356,14 +2356,14 @@ static const ber_sequence_t T_topologyReq_sequence_of[1] = {
static int
dissect_h248_T_topologyReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 218 "../../asn1/h248/h248.cnf"
+#line 218 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_TOPOLOGY_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
T_topologyReq_sequence_of, hf_index, ett_h248_T_topologyReq);
-#line 222 "../../asn1/h248/h248.cnf"
+#line 222 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -2599,13 +2599,13 @@ dissect_h248_ContextAttrAuditRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_h248_T_contextAttrAuditReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 226 "../../asn1/h248/h248.cnf"
+#line 226 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_CTX_ATTR_AUDIT_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_h248_ContextAttrAuditRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 230 "../../asn1/h248/h248.cnf"
+#line 230 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -3252,7 +3252,7 @@ static const ber_sequence_t SigParameter_sequence[] = {
static int
dissect_h248_SigParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 390 "../../asn1/h248/h248.cnf"
+#line 390 "./asn1/h248/h248.cnf"
/* H248 v1 support */
if (h248_version > 1) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -3488,7 +3488,7 @@ static const ber_sequence_t EventParameter_sequence[] = {
static int
dissect_h248_EventParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 381 "../../asn1/h248/h248.cnf"
+#line 381 "./asn1/h248/h248.cnf"
/* H248 v1 support */
if (h248_version > 1) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -4092,13 +4092,13 @@ dissect_h248_AmmRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_h248_T_addReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 151 "../../asn1/h248/h248.cnf"
+#line 151 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_ADD_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_h248_AmmRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 156 "../../asn1/h248/h248.cnf"
+#line 156 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -4108,14 +4108,14 @@ dissect_h248_T_addReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_h248_T_moveReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 160 "../../asn1/h248/h248.cnf"
+#line 160 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOVE_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_h248_AmmRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 166 "../../asn1/h248/h248.cnf"
+#line 166 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -4125,13 +4125,13 @@ dissect_h248_T_moveReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_h248_T_modReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 170 "../../asn1/h248/h248.cnf"
+#line 170 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOD_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_h248_AmmRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 174 "../../asn1/h248/h248.cnf"
+#line 174 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -4156,13 +4156,13 @@ dissect_h248_SubtractRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_h248_T_subtractReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 178 "../../asn1/h248/h248.cnf"
+#line 178 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SUB_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_h248_SubtractRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 182 "../../asn1/h248/h248.cnf"
+#line 182 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -4188,13 +4188,13 @@ dissect_h248_AuditRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_h248_T_auditCapRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 186 "../../asn1/h248/h248.cnf"
+#line 186 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITCAP_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_h248_AuditRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 190 "../../asn1/h248/h248.cnf"
+#line 190 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -4204,13 +4204,13 @@ dissect_h248_T_auditCapRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_h248_T_auditValueRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 194 "../../asn1/h248/h248.cnf"
+#line 194 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_h248_AuditRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 198 "../../asn1/h248/h248.cnf"
+#line 198 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -4296,13 +4296,13 @@ dissect_h248_NotifyRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_h248_T_notifyReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 202 "../../asn1/h248/h248.cnf"
+#line 202 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_NOTIFY_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_h248_NotifyRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 206 "../../asn1/h248/h248.cnf"
+#line 206 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -4387,7 +4387,7 @@ dissect_h248_ServiceChangeProfile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_h248_SCreasonValueOctetStr(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 371 "../../asn1/h248/h248.cnf"
+#line 371 "./asn1/h248/h248.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -4458,14 +4458,14 @@ static const ber_sequence_t ServiceChangeRequest_sequence[] = {
static int
dissect_h248_ServiceChangeRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 210 "../../asn1/h248/h248.cnf"
+#line 210 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SVCCHG_REQ,offset,keep_persistent_data);
H248_TAP();
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ServiceChangeRequest_sequence, hf_index, ett_h248_ServiceChangeRequest);
-#line 214 "../../asn1/h248/h248.cnf"
+#line 214 "./asn1/h248/h248.cnf"
curr_info.cmd = NULL;
return offset;
@@ -4583,7 +4583,7 @@ dissect_h248_TransactionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_h248_T_tpend_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 117 "../../asn1/h248/h248.cnf"
+#line 117 "./asn1/h248/h248.cnf"
guint32 trx_id = 0;
offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_PENDING, keep_persistent_data);
@@ -4612,7 +4612,7 @@ dissect_h248_TransactionPending(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_h248_T_trep_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 123 "../../asn1/h248/h248.cnf"
+#line 123 "./asn1/h248/h248.cnf"
guint32 trx_id = 0;
offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_REPLY, keep_persistent_data);
@@ -4725,7 +4725,7 @@ dissect_h248_AmmsReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_h248_T_addReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 234 "../../asn1/h248/h248.cnf"
+#line 234 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_ADD_REPLY,offset,keep_persistent_data);
H248_TAP();
@@ -4738,7 +4738,7 @@ dissect_h248_T_addReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_h248_T_moveReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 239 "../../asn1/h248/h248.cnf"
+#line 239 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOVE_REPLY,offset,keep_persistent_data);
H248_TAP();
@@ -4751,7 +4751,7 @@ dissect_h248_T_moveReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_h248_T_modReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 244 "../../asn1/h248/h248.cnf"
+#line 244 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOD_REPLY,offset,keep_persistent_data);
H248_TAP();
@@ -4764,7 +4764,7 @@ dissect_h248_T_modReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_h248_T_subtractReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 249 "../../asn1/h248/h248.cnf"
+#line 249 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SUB_REPLY,offset,keep_persistent_data);
H248_TAP();
@@ -4833,11 +4833,11 @@ dissect_h248_AuditReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_h248_T_auditCapReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 264 "../../asn1/h248/h248.cnf"
+#line 264 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITCAP_REPLY,offset,keep_persistent_data);
H248_TAP();
-#line 269 "../../asn1/h248/h248.cnf"
+#line 269 "./asn1/h248/h248.cnf"
/* h248v1 support */
if(h248_version > 1) {
offset = dissect_h248_AuditReply(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -4855,11 +4855,11 @@ dissect_h248_T_auditCapReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_h248_T_auditValueReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 279 "../../asn1/h248/h248.cnf"
+#line 279 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REPLY,offset,keep_persistent_data);
H248_TAP();
-#line 284 "../../asn1/h248/h248.cnf"
+#line 284 "./asn1/h248/h248.cnf"
/* h248v1 support */
if(h248_version > 1) {
offset = dissect_h248_AuditReply(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -4892,7 +4892,7 @@ dissect_h248_NotifyReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_h248_T_notifyReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 254 "../../asn1/h248/h248.cnf"
+#line 254 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_NOTIFY_REPLY,offset,keep_persistent_data);
H248_TAP();
@@ -4950,7 +4950,7 @@ static const ber_sequence_t ServiceChangeReply_sequence[] = {
static int
dissect_h248_ServiceChangeReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 259 "../../asn1/h248/h248.cnf"
+#line 259 "./asn1/h248/h248.cnf"
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SVCCHG_REPLY,offset,keep_persistent_data);
H248_TAP();
@@ -5021,7 +5021,7 @@ dissect_h248_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ActionReply_sequence, hf_index, ett_h248_ActionReply);
-#line 144 "../../asn1/h248/h248.cnf"
+#line 144 "./asn1/h248/h248.cnf"
if (!curr_info.cmd) {
curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_REPLY,offset,keep_persistent_data);
H248_TAP();
@@ -5125,7 +5125,7 @@ dissect_h248_TransactionResponseAck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_h248_T_seg_rep_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 129 "../../asn1/h248/h248.cnf"
+#line 129 "./asn1/h248/h248.cnf"
guint32 trx_id = 0;
offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_ACK, keep_persistent_data);
@@ -5225,13 +5225,13 @@ static const ber_sequence_t Message_sequence[] = {
static int
dissect_h248_Message(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 95 "../../asn1/h248/h248.cnf"
+#line 95 "./asn1/h248/h248.cnf"
curr_info.msg = gcp_msg(actx->pinfo,tvb_raw_offset(tvb),keep_persistent_data);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Message_sequence, hf_index, ett_h248_Message);
-#line 99 "../../asn1/h248/h248.cnf"
+#line 99 "./asn1/h248/h248.cnf"
col_add_str(actx->pinfo->cinfo, COL_INFO, gcp_msg_to_str(curr_info.msg,keep_persistent_data));
if (keep_persistent_data)
@@ -5297,7 +5297,7 @@ static const ber_sequence_t AuditReplyV1_sequence[] = {
static int
dissect_h248_AuditReplyV1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 294 "../../asn1/h248/h248.cnf"
+#line 294 "./asn1/h248/h248.cnf"
/* h248v1 support */
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
AuditReplyV1_sequence, hf_h248_auditValueReplyV1, ett_h248_AuditReplyV1);
@@ -5340,7 +5340,7 @@ dissect_h248_SigParameterV1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
/*--- End of included file: packet-h248-fn.c ---*/
-#line 1418 "../../asn1/h248/packet-h248-template.c"
+#line 1418 "./asn1/h248/packet-h248-template.c"
static int dissect_h248_tpkt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
dissect_tpkt_encap(tvb, pinfo, tree, h248_desegment, h248_handle);
@@ -5509,7 +5509,7 @@ void proto_register_h248(void) {
/*--- Included file: packet-h248-hfarr.c ---*/
-#line 1 "../../asn1/h248/packet-h248-hfarr.c"
+#line 1 "./asn1/h248/packet-h248-hfarr.c"
{ &hf_h248_authHeader,
{ "authHeader", "h248.authHeader_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -6764,7 +6764,7 @@ void proto_register_h248(void) {
NULL, HFILL }},
/*--- End of included file: packet-h248-hfarr.c ---*/
-#line 1585 "../../asn1/h248/packet-h248-template.c"
+#line 1585 "./asn1/h248/packet-h248-template.c"
GCP_HF_ARR_ELEMS("h248",h248_arrel)
@@ -6784,7 +6784,7 @@ void proto_register_h248(void) {
/*--- Included file: packet-h248-ettarr.c ---*/
-#line 1 "../../asn1/h248/packet-h248-ettarr.c"
+#line 1 "./asn1/h248/packet-h248-ettarr.c"
&ett_h248_MegacoMessage,
&ett_h248_AuthenticationHeader,
&ett_h248_Message,
@@ -6930,7 +6930,7 @@ void proto_register_h248(void) {
&ett_h248_SigParameterV1,
/*--- End of included file: packet-h248-ettarr.c ---*/
-#line 1603 "../../asn1/h248/packet-h248-template.c"
+#line 1603 "./asn1/h248/packet-h248-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-h248.h b/epan/dissectors/packet-h248.h
index 1ef2263687..e8be2e2958 100644
--- a/epan/dissectors/packet-h248.h
+++ b/epan/dissectors/packet-h248.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h248.h */
-/* ../../tools/asn2wrs.py -b -p h248 -c ./h248.cnf -s ./packet-h248-template -D . -O ../../epan/dissectors h248v3.asn h248v1support.asn */
+/* asn2wrs.py -b -p h248 -c ./h248.cnf -s ./packet-h248-template -D . -O ../.. h248v3.asn h248v1support.asn */
/* Input file: packet-h248-template.h */
-#line 1 "../../asn1/h248/packet-h248-template.h"
+#line 1 "./asn1/h248/packet-h248-template.h"
/* packet-h248.h
* Definitions for H.248/MEGACO packet dissection
*
diff --git a/epan/dissectors/packet-h282.c b/epan/dissectors/packet-h282.c
index 57d92963bd..596a105d7e 100644
--- a/epan/dissectors/packet-h282.c
+++ b/epan/dissectors/packet-h282.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h282.c */
-/* ../../tools/asn2wrs.py -p h282 -c ./h282.cnf -s ./packet-h282-template -D . -O ../../epan/dissectors RDC-PROTOCOL.asn */
+/* asn2wrs.py -p h282 -c ./h282.cnf -s ./packet-h282-template -D . -O ../.. RDC-PROTOCOL.asn */
/* Input file: packet-h282-template.c */
-#line 1 "../../asn1/h282/packet-h282-template.c"
+#line 1 "./asn1/h282/packet-h282-template.c"
/* packet-h282.c
* Routines for H.282 packet dissection
* 2007 Tomas Kukosa
@@ -48,7 +48,7 @@ void proto_reg_handoff_h282(void);
static int proto_h282 = -1;
/*--- Included file: packet-h282-hf.c ---*/
-#line 1 "../../asn1/h282/packet-h282-hf.c"
+#line 1 "./asn1/h282/packet-h282-hf.c"
static int hf_h282_NonCollapsingCapabilities_PDU = -1; /* NonCollapsingCapabilities */
static int hf_h282_RDCPDU_PDU = -1; /* RDCPDU */
static int hf_h282_object = -1; /* OBJECT_IDENTIFIER */
@@ -484,13 +484,13 @@ static int hf_h282_deviceEventNotifyIndication = -1; /* DeviceEventNotifyIndica
static int hf_h282_nonStandardIndication = -1; /* NonStandardPDU */
/*--- End of included file: packet-h282-hf.c ---*/
-#line 42 "../../asn1/h282/packet-h282-template.c"
+#line 42 "./asn1/h282/packet-h282-template.c"
/* Initialize the subtree pointers */
static int ett_h282 = -1;
/*--- Included file: packet-h282-ett.c ---*/
-#line 1 "../../asn1/h282/packet-h282-ett.c"
+#line 1 "./asn1/h282/packet-h282-ett.c"
static gint ett_h282_Key = -1;
static gint ett_h282_NonStandardParameter = -1;
static gint ett_h282_NonStandardIdentifier = -1;
@@ -636,7 +636,7 @@ static gint ett_h282_ResponsePDU = -1;
static gint ett_h282_IndicationPDU = -1;
/*--- End of included file: packet-h282-ett.c ---*/
-#line 46 "../../asn1/h282/packet-h282-template.c"
+#line 46 "./asn1/h282/packet-h282-template.c"
/* Dissectors */
@@ -644,7 +644,7 @@ static gint ett_h282_IndicationPDU = -1;
/*--- Included file: packet-h282-fn.c ---*/
-#line 1 "../../asn1/h282/packet-h282-fn.c"
+#line 1 "./asn1/h282/packet-h282-fn.c"
static int
@@ -4256,7 +4256,7 @@ static const per_choice_t RequestPDU_choice[] = {
static int
dissect_h282_RequestPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 22 "../../asn1/h282/h282.cnf"
+#line 22 "./asn1/h282/h282.cnf"
gint32 msg_type = -1;
const gchar *p = NULL;
@@ -4264,7 +4264,7 @@ dissect_h282_RequestPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
ett_h282_RequestPDU, RequestPDU_choice,
&msg_type);
-#line 25 "../../asn1/h282/h282.cnf"
+#line 25 "./asn1/h282/h282.cnf"
p = try_val_to_str(msg_type, VALS(h282_RequestPDU_vals));
if (p)
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RequestPDU/%s", p);
@@ -4299,7 +4299,7 @@ static const per_choice_t ResponsePDU_choice[] = {
static int
dissect_h282_ResponsePDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 33 "../../asn1/h282/h282.cnf"
+#line 33 "./asn1/h282/h282.cnf"
gint32 msg_type = -1;
const gchar *p = NULL;
@@ -4307,7 +4307,7 @@ dissect_h282_ResponsePDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
ett_h282_ResponsePDU, ResponsePDU_choice,
&msg_type);
-#line 36 "../../asn1/h282/h282.cnf"
+#line 36 "./asn1/h282/h282.cnf"
p = try_val_to_str(msg_type, VALS(h282_ResponsePDU_vals));
if (p)
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "ResponsePDU/%s", p);
@@ -4334,7 +4334,7 @@ static const per_choice_t IndicationPDU_choice[] = {
static int
dissect_h282_IndicationPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 44 "../../asn1/h282/h282.cnf"
+#line 44 "./asn1/h282/h282.cnf"
gint32 msg_type = -1;
const gchar *p = NULL;
@@ -4342,7 +4342,7 @@ dissect_h282_IndicationPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
ett_h282_IndicationPDU, IndicationPDU_choice,
&msg_type);
-#line 47 "../../asn1/h282/h282.cnf"
+#line 47 "./asn1/h282/h282.cnf"
p = try_val_to_str(msg_type, VALS(h282_IndicationPDU_vals));
if (p)
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "IndicationPDU/%s", p);
@@ -4395,7 +4395,7 @@ static int dissect_RDCPDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_t
/*--- End of included file: packet-h282-fn.c ---*/
-#line 52 "../../asn1/h282/packet-h282-template.c"
+#line 52 "./asn1/h282/packet-h282-template.c"
static int
dissect_h282(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -4418,7 +4418,7 @@ void proto_register_h282(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-h282-hfarr.c ---*/
-#line 1 "../../asn1/h282/packet-h282-hfarr.c"
+#line 1 "./asn1/h282/packet-h282-hfarr.c"
{ &hf_h282_NonCollapsingCapabilities_PDU,
{ "NonCollapsingCapabilities", "h282.NonCollapsingCapabilities",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6153,7 +6153,7 @@ void proto_register_h282(void) {
"NonStandardPDU", HFILL }},
/*--- End of included file: packet-h282-hfarr.c ---*/
-#line 73 "../../asn1/h282/packet-h282-template.c"
+#line 73 "./asn1/h282/packet-h282-template.c"
};
/* List of subtrees */
@@ -6161,7 +6161,7 @@ void proto_register_h282(void) {
&ett_h282,
/*--- Included file: packet-h282-ettarr.c ---*/
-#line 1 "../../asn1/h282/packet-h282-ettarr.c"
+#line 1 "./asn1/h282/packet-h282-ettarr.c"
&ett_h282_Key,
&ett_h282_NonStandardParameter,
&ett_h282_NonStandardIdentifier,
@@ -6307,7 +6307,7 @@ void proto_register_h282(void) {
&ett_h282_IndicationPDU,
/*--- End of included file: packet-h282-ettarr.c ---*/
-#line 79 "../../asn1/h282/packet-h282-template.c"
+#line 79 "./asn1/h282/packet-h282-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-h283.c b/epan/dissectors/packet-h283.c
index 1b20fc157e..4689d78dfc 100644
--- a/epan/dissectors/packet-h283.c
+++ b/epan/dissectors/packet-h283.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h283.c */
-/* ../../tools/asn2wrs.py -p h283 -c ./h283.cnf -s ./packet-h283-template -D . -O ../../epan/dissectors LCT-PROTOCOL.asn */
+/* asn2wrs.py -p h283 -c ./h283.cnf -s ./packet-h283-template -D . -O ../.. LCT-PROTOCOL.asn */
/* Input file: packet-h283-template.c */
-#line 1 "../../asn1/h283/packet-h283-template.c"
+#line 1 "./asn1/h283/packet-h283-template.c"
/* packet-h283.c
* Routines for H.283 packet dissection
* 2007 Tomas Kukosa
@@ -48,7 +48,7 @@ void proto_reg_handoff_h283(void);
static int proto_h283 = -1;
/*--- Included file: packet-h283-hf.c ---*/
-#line 1 "../../asn1/h283/packet-h283-hf.c"
+#line 1 "./asn1/h283/packet-h283-hf.c"
static int hf_h283_LCTPDU_PDU = -1; /* LCTPDU */
static int hf_h283_t35CountryCode = -1; /* INTEGER_0_255 */
static int hf_h283_t35Extension = -1; /* INTEGER_0_255 */
@@ -83,13 +83,13 @@ static int hf_h283_deviceListResp = -1; /* T_deviceListResp */
static int hf_h283_deviceChange = -1; /* NULL */
/*--- End of included file: packet-h283-hf.c ---*/
-#line 42 "../../asn1/h283/packet-h283-template.c"
+#line 42 "./asn1/h283/packet-h283-template.c"
/* Initialize the subtree pointers */
static int ett_h283 = -1;
/*--- Included file: packet-h283-ett.c ---*/
-#line 1 "../../asn1/h283/packet-h283-ett.c"
+#line 1 "./asn1/h283/packet-h283-ett.c"
static gint ett_h283_H221NonStandard = -1;
static gint ett_h283_NonStandardIdentifier = -1;
static gint ett_h283_NonStandardParameter = -1;
@@ -106,7 +106,7 @@ static gint ett_h283_LCTIndication = -1;
static gint ett_h283_NonStandardMessage = -1;
/*--- End of included file: packet-h283-ett.c ---*/
-#line 46 "../../asn1/h283/packet-h283-template.c"
+#line 46 "./asn1/h283/packet-h283-template.c"
/* Subdissectors */
static dissector_handle_t rdc_pdu_handle;
@@ -117,7 +117,7 @@ static gboolean info_is_set;
/*--- Included file: packet-h283-fn.c ---*/
-#line 1 "../../asn1/h283/packet-h283-fn.c"
+#line 1 "./asn1/h283/packet-h283-fn.c"
static int
@@ -268,7 +268,7 @@ static const per_choice_t LCTRequest_choice[] = {
static int
dissect_h283_LCTRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 56 "../../asn1/h283/h283.cnf"
+#line 56 "./asn1/h283/h283.cnf"
gint32 msg_type = -1;
const gchar *p = NULL;
@@ -276,7 +276,7 @@ dissect_h283_LCTRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
ett_h283_LCTRequest, LCTRequest_choice,
&msg_type);
-#line 59 "../../asn1/h283/h283.cnf"
+#line 59 "./asn1/h283/h283.cnf"
p = try_val_to_str(msg_type, VALS(h283_LCTRequest_vals));
if (!info_is_set && p ) {
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "LCTRequest/%s", p);
@@ -290,7 +290,7 @@ dissect_h283_LCTRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h283_T_deviceListResp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 103 "../../asn1/h283/h283.cnf"
+#line 103 "./asn1/h283/h283.cnf"
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -319,7 +319,7 @@ static const per_choice_t LCTResponse_choice[] = {
static int
dissect_h283_LCTResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 69 "../../asn1/h283/h283.cnf"
+#line 69 "./asn1/h283/h283.cnf"
gint32 msg_type = -1;
const gchar *p = NULL;
@@ -327,7 +327,7 @@ dissect_h283_LCTResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
ett_h283_LCTResponse, LCTResponse_choice,
&msg_type);
-#line 72 "../../asn1/h283/h283.cnf"
+#line 72 "./asn1/h283/h283.cnf"
p = try_val_to_str(msg_type, VALS(h283_LCTResponse_vals));
if (!info_is_set && p ) {
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "LCTResponse/%s", p);
@@ -350,7 +350,7 @@ static const per_choice_t LCTIndication_choice[] = {
static int
dissect_h283_LCTIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 82 "../../asn1/h283/h283.cnf"
+#line 82 "./asn1/h283/h283.cnf"
gint32 msg_type = -1;
const gchar *p = NULL;
@@ -358,7 +358,7 @@ dissect_h283_LCTIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
ett_h283_LCTIndication, LCTIndication_choice,
&msg_type);
-#line 85 "../../asn1/h283/h283.cnf"
+#line 85 "./asn1/h283/h283.cnf"
p = try_val_to_str(msg_type, VALS(h283_LCTIndication_vals));
if (!info_is_set && p ) {
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "LCTIndication/%s", p);
@@ -414,7 +414,7 @@ static const per_choice_t LCTMessage_choice[] = {
static int
dissect_h283_LCTMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 43 "../../asn1/h283/h283.cnf"
+#line 43 "./asn1/h283/h283.cnf"
gint32 msg_type = -1;
const gchar *p = NULL;
@@ -422,7 +422,7 @@ dissect_h283_LCTMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
ett_h283_LCTMessage, LCTMessage_choice,
&msg_type);
-#line 46 "../../asn1/h283/h283.cnf"
+#line 46 "./asn1/h283/h283.cnf"
p = try_val_to_str(msg_type, VALS(h283_LCTMessage_vals));
if (!info_is_set && p ) {
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "LCTMessage/%s", p);
@@ -436,7 +436,7 @@ dissect_h283_LCTMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h283_T_rdcPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 93 "../../asn1/h283/h283.cnf"
+#line 93 "./asn1/h283/h283.cnf"
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -466,7 +466,7 @@ static const per_choice_t T_dataType_choice[] = {
static int
dissect_h283_T_dataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 30 "../../asn1/h283/h283.cnf"
+#line 30 "./asn1/h283/h283.cnf"
gint32 data_type = -1;
const gchar *p = NULL;
@@ -474,7 +474,7 @@ dissect_h283_T_dataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
ett_h283_T_dataType, T_dataType_choice,
&data_type);
-#line 33 "../../asn1/h283/h283.cnf"
+#line 33 "./asn1/h283/h283.cnf"
p = try_val_to_str(data_type, VALS(h283_T_dataType_vals));
if (!info_is_set && p ) {
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RDCData/%s", p);
@@ -514,7 +514,7 @@ static const per_choice_t T_pduType_choice[] = {
static int
dissect_h283_T_pduType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 17 "../../asn1/h283/h283.cnf"
+#line 17 "./asn1/h283/h283.cnf"
gint32 pdu_type = -1;
const gchar *p = NULL;
@@ -522,7 +522,7 @@ dissect_h283_T_pduType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
ett_h283_T_pduType, T_pduType_choice,
&pdu_type);
-#line 20 "../../asn1/h283/h283.cnf"
+#line 20 "./asn1/h283/h283.cnf"
p = try_val_to_str(pdu_type, VALS(h283_T_pduType_vals));
if (!info_is_set && p ) {
col_set_str(actx->pinfo->cinfo, COL_INFO, p);
@@ -564,7 +564,7 @@ static int dissect_LCTPDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_t
/*--- End of included file: packet-h283-fn.c ---*/
-#line 55 "../../asn1/h283/packet-h283-template.c"
+#line 55 "./asn1/h283/packet-h283-template.c"
static int
dissect_h283_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -589,7 +589,7 @@ void proto_register_h283(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-h283-hfarr.c ---*/
-#line 1 "../../asn1/h283/packet-h283-hfarr.c"
+#line 1 "./asn1/h283/packet-h283-hfarr.c"
{ &hf_h283_LCTPDU_PDU,
{ "LCTPDU", "h283.LCTPDU_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -720,7 +720,7 @@ void proto_register_h283(void) {
NULL, HFILL }},
/*--- End of included file: packet-h283-hfarr.c ---*/
-#line 78 "../../asn1/h283/packet-h283-template.c"
+#line 78 "./asn1/h283/packet-h283-template.c"
};
/* List of subtrees */
@@ -728,7 +728,7 @@ void proto_register_h283(void) {
&ett_h283,
/*--- Included file: packet-h283-ettarr.c ---*/
-#line 1 "../../asn1/h283/packet-h283-ettarr.c"
+#line 1 "./asn1/h283/packet-h283-ettarr.c"
&ett_h283_H221NonStandard,
&ett_h283_NonStandardIdentifier,
&ett_h283_NonStandardParameter,
@@ -745,7 +745,7 @@ void proto_register_h283(void) {
&ett_h283_NonStandardMessage,
/*--- End of included file: packet-h283-ettarr.c ---*/
-#line 84 "../../asn1/h283/packet-h283-template.c"
+#line 84 "./asn1/h283/packet-h283-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-h323.c b/epan/dissectors/packet-h323.c
index 99e96e72aa..855c1cf5c2 100644
--- a/epan/dissectors/packet-h323.c
+++ b/epan/dissectors/packet-h323.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h323.c */
-/* ../../tools/asn2wrs.py -p h323 -c ./h323.cnf -s ./packet-h323-template -D . -O ../../epan/dissectors RAS-PROTOCOL-TUNNEL.asn ROBUSTNESS-DATA.asn */
+/* asn2wrs.py -p h323 -c ./h323.cnf -s ./packet-h323-template -D . -O ../.. RAS-PROTOCOL-TUNNEL.asn ROBUSTNESS-DATA.asn */
/* Input file: packet-h323-template.c */
-#line 1 "../../asn1/h323/packet-h323-template.c"
+#line 1 "./asn1/h323/packet-h323-template.c"
/* packet-h323.c
* Routines for H.323 packet dissection
* 2007 Tomas Kukosa
@@ -96,7 +96,7 @@ void gef_ctx_update_key(gef_ctx_t *gefx) {
static int proto_h323 = -1;
/*--- Included file: packet-h323-hf.c ---*/
-#line 1 "../../asn1/h323/packet-h323-hf.c"
+#line 1 "./asn1/h323/packet-h323-hf.c"
static int hf_h323_RasTunnelledSignallingMessage_PDU = -1; /* RasTunnelledSignallingMessage */
static int hf_h323_RobustnessData_PDU = -1; /* RobustnessData */
static int hf_h323_tunnelledProtocolID = -1; /* TunnelledProtocol */
@@ -127,12 +127,12 @@ static int hf_h323_timeToLive = -1; /* TimeToLive */
static int hf_h323_includeFastStart = -1; /* NULL */
/*--- End of included file: packet-h323-hf.c ---*/
-#line 90 "../../asn1/h323/packet-h323-template.c"
+#line 90 "./asn1/h323/packet-h323-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-h323-ett.c ---*/
-#line 1 "../../asn1/h323/packet-h323-ett.c"
+#line 1 "./asn1/h323/packet-h323-ett.c"
static gint ett_h323_RasTunnelledSignallingMessage = -1;
static gint ett_h323_T_messageContent = -1;
static gint ett_h323_RobustnessData = -1;
@@ -148,11 +148,11 @@ static gint ett_h323_T_fastStart = -1;
static gint ett_h323_StatusInquiry_RD = -1;
/*--- End of included file: packet-h323-ett.c ---*/
-#line 93 "../../asn1/h323/packet-h323-template.c"
+#line 93 "./asn1/h323/packet-h323-template.c"
/*--- Included file: packet-h323-fn.c ---*/
-#line 1 "../../asn1/h323/packet-h323-fn.c"
+#line 1 "./asn1/h323/packet-h323-fn.c"
static int
@@ -439,7 +439,7 @@ static int dissect_RobustnessData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-h323-fn.c ---*/
-#line 95 "../../asn1/h323/packet-h323-template.c"
+#line 95 "./asn1/h323/packet-h323-template.c"
/*--- proto_register_h323 ----------------------------------------------*/
void proto_register_h323(void) {
@@ -448,7 +448,7 @@ void proto_register_h323(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-h323-hfarr.c ---*/
-#line 1 "../../asn1/h323/packet-h323-hfarr.c"
+#line 1 "./asn1/h323/packet-h323-hfarr.c"
{ &hf_h323_RasTunnelledSignallingMessage_PDU,
{ "RasTunnelledSignallingMessage", "h323.RasTunnelledSignallingMessage_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -563,14 +563,14 @@ void proto_register_h323(void) {
NULL, HFILL }},
/*--- End of included file: packet-h323-hfarr.c ---*/
-#line 102 "../../asn1/h323/packet-h323-template.c"
+#line 102 "./asn1/h323/packet-h323-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-h323-ettarr.c ---*/
-#line 1 "../../asn1/h323/packet-h323-ettarr.c"
+#line 1 "./asn1/h323/packet-h323-ettarr.c"
&ett_h323_RasTunnelledSignallingMessage,
&ett_h323_T_messageContent,
&ett_h323_RobustnessData,
@@ -586,7 +586,7 @@ void proto_register_h323(void) {
&ett_h323_StatusInquiry_RD,
/*--- End of included file: packet-h323-ettarr.c ---*/
-#line 107 "../../asn1/h323/packet-h323-template.c"
+#line 107 "./asn1/h323/packet-h323-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-h323.h b/epan/dissectors/packet-h323.h
index fd00377a1e..59bc475754 100644
--- a/epan/dissectors/packet-h323.h
+++ b/epan/dissectors/packet-h323.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h323.h */
-/* ../../tools/asn2wrs.py -p h323 -c ./h323.cnf -s ./packet-h323-template -D . -O ../../epan/dissectors RAS-PROTOCOL-TUNNEL.asn ROBUSTNESS-DATA.asn */
+/* asn2wrs.py -p h323 -c ./h323.cnf -s ./packet-h323-template -D . -O ../.. RAS-PROTOCOL-TUNNEL.asn ROBUSTNESS-DATA.asn */
/* Input file: packet-h323-template.h */
-#line 1 "../../asn1/h323/packet-h323-template.h"
+#line 1 "./asn1/h323/packet-h323-template.h"
/* packet-h323.h
* Routines for H.235 packet dissection
* 2007 Tomas Kukosa
diff --git a/epan/dissectors/packet-h450-ros.c b/epan/dissectors/packet-h450-ros.c
index 4ce29d5f59..1ff1f3be86 100644
--- a/epan/dissectors/packet-h450-ros.c
+++ b/epan/dissectors/packet-h450-ros.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h450-ros.c */
-/* ../../tools/asn2wrs.py -p h450.ros -c ./h450-ros.cnf -s ./packet-h450-ros-template -D . -O ../../epan/dissectors ../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn */
+/* asn2wrs.py -p h450.ros -c ./h450-ros.cnf -s ./packet-h450-ros-template -D . -O ../.. ../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn */
/* Input file: packet-h450-ros-template.c */
-#line 1 "../../asn1/h450-ros/packet-h450-ros-template.c"
+#line 1 "./asn1/h450-ros/packet-h450-ros-template.c"
/* packet-h450-ros.c
* Routines for H.450 packet dissection
* 2007 Tomas Kukosa
@@ -50,7 +50,7 @@ void proto_reg_handoff_h450_ros(void);
static int proto_h450_ros = -1;
/*--- Included file: packet-h450-ros-hf.c ---*/
-#line 1 "../../asn1/h450-ros/packet-h450-ros-hf.c"
+#line 1 "./asn1/h450-ros/packet-h450-ros-hf.c"
static int hf_h450_ros_local = -1; /* T_local */
static int hf_h450_ros_global = -1; /* T_global */
static int hf_h450_ros_invoke = -1; /* Invoke */
@@ -73,12 +73,12 @@ static int hf_h450_ros_returnResultProblem = -1; /* ReturnResultProblem */
static int hf_h450_ros_returnErrorProblem = -1; /* ReturnErrorProblem */
/*--- End of included file: packet-h450-ros-hf.c ---*/
-#line 44 "../../asn1/h450-ros/packet-h450-ros-template.c"
+#line 44 "./asn1/h450-ros/packet-h450-ros-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-h450-ros-ett.c ---*/
-#line 1 "../../asn1/h450-ros/packet-h450-ros-ett.c"
+#line 1 "./asn1/h450-ros/packet-h450-ros-ett.c"
static gint ett_h450_ros_Code = -1;
static gint ett_h450_ros_ROS = -1;
static gint ett_h450_ros_Invoke = -1;
@@ -89,7 +89,7 @@ static gint ett_h450_ros_Reject = -1;
static gint ett_h450_ros_T_problem = -1;
/*--- End of included file: packet-h450-ros-ett.c ---*/
-#line 47 "../../asn1/h450-ros/packet-h450-ros-template.c"
+#line 47 "./asn1/h450-ros/packet-h450-ros-template.c"
static expert_field ei_ros_undecoded = EI_INIT;
@@ -123,7 +123,7 @@ error_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, void* data
/*--- Included file: packet-h450-ros-fn.c ---*/
-#line 1 "../../asn1/h450-ros/packet-h450-ros-fn.c"
+#line 1 "./asn1/h450-ros/packet-h450-ros-fn.c"
static int
@@ -161,7 +161,7 @@ dissect_h450_ros_Code(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
ett_h450_ros_Code, Code_choice,
&actx->rose_ctx->d.code);
-#line 39 "../../asn1/h450-ros/h450-ros.cnf"
+#line 39 "./asn1/h450-ros/h450-ros.cnf"
actx->rose_ctx->d.code_item = actx->created_item;
return offset;
@@ -180,7 +180,7 @@ dissect_h450_ros_InvokeId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_h450_ros_T_invokeIdConstrained(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "../../asn1/h450-ros/h450-ros.cnf"
+#line 67 "./asn1/h450-ros/h450-ros.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, NULL, TRUE);
@@ -208,7 +208,7 @@ static const per_sequence_t Invoke_sequence[] = {
static int
dissect_h450_ros_Invoke(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 6 "../../asn1/ros/ros-inv.cnf"
+#line 6 "./asn1/ros/ros-inv.cnf"
dissector_handle_t arg_handle = NULL;
const gchar *descr = "";
@@ -217,7 +217,7 @@ dissect_h450_ros_Invoke(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h450_ros_Invoke, Invoke_sequence);
-#line 11 "../../asn1/ros/ros-inv.cnf"
+#line 11 "./asn1/ros/ros-inv.cnf"
actx->rose_ctx->d.pdu = 1;
if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->arg_local_dissector_table) {
@@ -290,7 +290,7 @@ static const per_sequence_t ReturnResult_sequence[] = {
static int
dissect_h450_ros_ReturnResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 6 "../../asn1/ros/ros-res.cnf"
+#line 6 "./asn1/ros/ros-res.cnf"
dissector_handle_t res_handle = NULL;
const gchar *descr = "";
@@ -300,7 +300,7 @@ dissect_h450_ros_ReturnResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h450_ros_ReturnResult, ReturnResult_sequence);
-#line 12 "../../asn1/ros/ros-res.cnf"
+#line 12 "./asn1/ros/ros-res.cnf"
actx->rose_ctx->d.pdu = 2;
if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->res_local_dissector_table) {
@@ -361,7 +361,7 @@ static const per_sequence_t ReturnError_sequence[] = {
static int
dissect_h450_ros_ReturnError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 6 "../../asn1/ros/ros-err.cnf"
+#line 6 "./asn1/ros/ros-err.cnf"
dissector_handle_t err_handle = NULL;
const gchar *descr = "";
@@ -370,7 +370,7 @@ dissect_h450_ros_ReturnError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h450_ros_ReturnError, ReturnError_sequence);
-#line 11 "../../asn1/ros/ros-err.cnf"
+#line 11 "./asn1/ros/ros-err.cnf"
actx->rose_ctx->d.pdu = 3;
if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->err_local_dissector_table) {
@@ -423,7 +423,7 @@ static int
dissect_h450_ros_GeneralProblem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, &problem_val);
-#line 50 "../../asn1/h450-ros/h450-ros.cnf"
+#line 50 "./asn1/h450-ros/h450-ros.cnf"
g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(h450_ros_GeneralProblem_vals), ""), 64);
problem_str[64-1] = '\0';
@@ -448,7 +448,7 @@ static int
dissect_h450_ros_InvokeProblem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, &problem_val);
-#line 53 "../../asn1/h450-ros/h450-ros.cnf"
+#line 53 "./asn1/h450-ros/h450-ros.cnf"
g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(h450_ros_InvokeProblem_vals), ""), 64);
problem_str[64-1] = '\0';
@@ -468,7 +468,7 @@ static int
dissect_h450_ros_ReturnResultProblem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, &problem_val);
-#line 56 "../../asn1/h450-ros/h450-ros.cnf"
+#line 56 "./asn1/h450-ros/h450-ros.cnf"
g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(h450_ros_ReturnResultProblem_vals), ""), 64);
problem_str[64-1] = '\0';
@@ -490,7 +490,7 @@ static int
dissect_h450_ros_ReturnErrorProblem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, &problem_val);
-#line 59 "../../asn1/h450-ros/h450-ros.cnf"
+#line 59 "./asn1/h450-ros/h450-ros.cnf"
g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(h450_ros_ReturnErrorProblem_vals), ""), 64);
problem_str[64-1] = '\0';
@@ -532,7 +532,7 @@ static const per_sequence_t Reject_sequence[] = {
static int
dissect_h450_ros_Reject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 6 "../../asn1/ros/ros-rej.cnf"
+#line 6 "./asn1/ros/ros-rej.cnf"
const gchar *descr = "";
problem_str[0] = '\0';
@@ -540,7 +540,7 @@ dissect_h450_ros_Reject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h450_ros_Reject, Reject_sequence);
-#line 10 "../../asn1/ros/ros-rej.cnf"
+#line 10 "./asn1/ros/ros-rej.cnf"
descr = wmem_strdup_printf(wmem_packet_scope(), "REJ: %s", problem_str);
if (actx->rose_ctx->apdu_depth >= 0)
@@ -572,7 +572,7 @@ static const per_choice_t ROS_choice[] = {
int
dissect_h450_ros_ROS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 28 "../../asn1/h450-ros/h450-ros.cnf"
+#line 28 "./asn1/h450-ros/h450-ros.cnf"
DISSECTOR_ASSERT(actx->rose_ctx);
rose_ctx_clean_data(actx->rose_ctx);
@@ -585,7 +585,7 @@ dissect_h450_ros_ROS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
/*--- End of included file: packet-h450-ros-fn.c ---*/
-#line 79 "../../asn1/h450-ros/packet-h450-ros-template.c"
+#line 79 "./asn1/h450-ros/packet-h450-ros-template.c"
/*--- proto_register_h450_ros -----------------------------------------------*/
void proto_register_h450_ros(void) {
@@ -594,7 +594,7 @@ void proto_register_h450_ros(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-h450-ros-hfarr.c ---*/
-#line 1 "../../asn1/h450-ros/packet-h450-ros-hfarr.c"
+#line 1 "./asn1/h450-ros/packet-h450-ros-hfarr.c"
{ &hf_h450_ros_local,
{ "local", "h450.ros.local",
FT_INT32, BASE_DEC, NULL, 0,
@@ -677,14 +677,14 @@ void proto_register_h450_ros(void) {
"ReturnErrorProblem", HFILL }},
/*--- End of included file: packet-h450-ros-hfarr.c ---*/
-#line 86 "../../asn1/h450-ros/packet-h450-ros-template.c"
+#line 86 "./asn1/h450-ros/packet-h450-ros-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-h450-ros-ettarr.c ---*/
-#line 1 "../../asn1/h450-ros/packet-h450-ros-ettarr.c"
+#line 1 "./asn1/h450-ros/packet-h450-ros-ettarr.c"
&ett_h450_ros_Code,
&ett_h450_ros_ROS,
&ett_h450_ros_Invoke,
@@ -695,7 +695,7 @@ void proto_register_h450_ros(void) {
&ett_h450_ros_T_problem,
/*--- End of included file: packet-h450-ros-ettarr.c ---*/
-#line 91 "../../asn1/h450-ros/packet-h450-ros-template.c"
+#line 91 "./asn1/h450-ros/packet-h450-ros-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-h450-ros.h b/epan/dissectors/packet-h450-ros.h
index d8aa6268b5..28910691e2 100644
--- a/epan/dissectors/packet-h450-ros.h
+++ b/epan/dissectors/packet-h450-ros.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h450-ros.h */
-/* ../../tools/asn2wrs.py -p h450.ros -c ./h450-ros.cnf -s ./packet-h450-ros-template -D . -O ../../epan/dissectors ../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn */
+/* asn2wrs.py -p h450.ros -c ./h450-ros.cnf -s ./packet-h450-ros-template -D . -O ../.. ../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn */
/* Input file: packet-h450-ros-template.h */
-#line 1 "../../asn1/h450-ros/packet-h450-ros-template.h"
+#line 1 "./asn1/h450-ros/packet-h450-ros-template.h"
/* packet-h450-ros.h
* Routines for H.450 packet dissection
* 2007 Tomas Kukosa
@@ -34,12 +34,12 @@
/*--- Included file: packet-h450-ros-exp.h ---*/
-#line 1 "../../asn1/h450-ros/packet-h450-ros-exp.h"
+#line 1 "./asn1/h450-ros/packet-h450-ros-exp.h"
extern const value_string h450_ros_ROS_vals[];
int dissect_h450_ros_ROS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-h450-ros-exp.h ---*/
-#line 28 "../../asn1/h450-ros/packet-h450-ros-template.h"
+#line 28 "./asn1/h450-ros/packet-h450-ros-template.h"
#endif /* PACKET_H450_ROS_H */
diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c
index 1c0ac21d58..d519a62665 100644
--- a/epan/dissectors/packet-h450.c
+++ b/epan/dissectors/packet-h450.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h450.c */
-/* ../../tools/asn2wrs.py -c ./h450.cnf -s ./packet-h450-template -D . -O ../../epan/dissectors H4501-Supplementary-ServiceAPDU-Structure.asn Addressing-Data-Elements.asn H225-generic-parameters-definition.asn Manufacturer-specific-service-extension-definition.asn H4501-General-Error-List.asn Call-Transfer-Operations.asn Call-Diversion-Operations.asn Call-Hold-Operations.asn Call-Park-Pickup-Operations.asn Call-Waiting-Operations.asn Message-Waiting-Indication-Operations.asn Name-Operations.asn Call-Completion-Operations.asn Call-Offer-Operations.asn Call-Intrusion-Operations.asn Common-Information-Operations.asn */
+/* asn2wrs.py -c ./h450.cnf -s ./packet-h450-template -D . -O ../.. H4501-Supplementary-ServiceAPDU-Structure.asn Addressing-Data-Elements.asn H225-generic-parameters-definition.asn Manufacturer-specific-service-extension-definition.asn H4501-General-Error-List.asn Call-Transfer-Operations.asn Call-Diversion-Operations.asn Call-Hold-Operations.asn Call-Park-Pickup-Operations.asn Call-Waiting-Operations.asn Message-Waiting-Indication-Operations.asn Name-Operations.asn Call-Completion-Operations.asn Call-Offer-Operations.asn Call-Intrusion-Operations.asn Common-Information-Operations.asn */
/* Input file: packet-h450-template.c */
-#line 1 "../../asn1/h450/packet-h450-template.c"
+#line 1 "./asn1/h450/packet-h450-template.c"
/* packet-h450.c
* Routines for h450 packet dissection
* Based on the previous h450 dissector by:
@@ -60,7 +60,7 @@ static int hf_h450_operation = -1;
static int hf_h450_error = -1;
/*--- Included file: packet-h450-hf.c ---*/
-#line 1 "../../asn1/h450/packet-h450-hf.c"
+#line 1 "./asn1/h450/packet-h450-hf.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -447,12 +447,12 @@ static int hf_h450_12_ssMWICallbackCall = -1; /* NULL */
static int hf_h450_12_ssCISilentMonitorPermitted = -1; /* NULL */
/*--- End of included file: packet-h450-hf.c ---*/
-#line 54 "../../asn1/h450/packet-h450-template.c"
+#line 54 "./asn1/h450/packet-h450-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-h450-ett.c ---*/
-#line 1 "../../asn1/h450/packet-h450-ett.c"
+#line 1 "./asn1/h450/packet-h450-ett.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -625,7 +625,7 @@ static gint ett_h450_12_FeatureValues = -1;
static gint ett_h450_12_FeatureControl = -1;
/*--- End of included file: packet-h450-ett.c ---*/
-#line 57 "../../asn1/h450/packet-h450-template.c"
+#line 57 "./asn1/h450/packet-h450-template.c"
static expert_field ei_h450_unsupported_arg_type = EI_INIT;
static expert_field ei_h450_unsupported_result_type = EI_INIT;
@@ -634,7 +634,7 @@ static expert_field ei_h450_unsupported_error_type = EI_INIT;
static const value_string h450_str_operation[] = {
/*--- Included file: packet-h450-table10.c ---*/
-#line 1 "../../asn1/h450/packet-h450-table10.c"
+#line 1 "./asn1/h450/packet-h450-table10.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -732,14 +732,14 @@ static const value_string h450_str_operation[] = {
{ 85, "cmnInform" },
/*--- End of included file: packet-h450-table10.c ---*/
-#line 64 "../../asn1/h450/packet-h450-template.c"
+#line 64 "./asn1/h450/packet-h450-template.c"
{ 0, NULL}
};
static const value_string h450_str_error[] = {
/*--- Included file: packet-h450-table20.c ---*/
-#line 1 "../../asn1/h450/packet-h450-table20.c"
+#line 1 "./asn1/h450/packet-h450-table20.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -820,7 +820,7 @@ static const value_string h450_str_error[] = {
/* Unknown or empty loop list ERROR */
/*--- End of included file: packet-h450-table20.c ---*/
-#line 69 "../../asn1/h450/packet-h450-template.c"
+#line 69 "./asn1/h450/packet-h450-template.c"
{ 0, NULL}
};
@@ -831,7 +831,7 @@ static rose_ctx_t h450_rose_ctx;
/*--- Included file: packet-h450-fn.c ---*/
-#line 1 "../../asn1/h450/packet-h450-fn.c"
+#line 1 "./asn1/h450/packet-h450-fn.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -920,7 +920,7 @@ dissect_h450_InterpretationApdu(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h450_T_rosApdus_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 61 "../../asn1/h450/h450.cnf"
+#line 61 "./asn1/h450/h450.cnf"
h450_rose_ctx.apdu_depth = 1;
actx->rose_ctx = &h450_rose_ctx;
@@ -973,7 +973,7 @@ static const per_sequence_t h450_H4501SupplementaryService_sequence[] = {
static int
dissect_h450_H4501SupplementaryService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 54 "../../asn1/h450/h450.cnf"
+#line 54 "./asn1/h450/h450.cnf"
proto_item *hidden_item;
hidden_item = proto_tree_add_item(tree, proto_h450, tvb, offset, -1, ENC_NA);
@@ -4485,7 +4485,7 @@ static int dissect_h450_12_CmnArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-h450-fn.c ---*/
-#line 78 "../../asn1/h450/packet-h450-template.c"
+#line 78 "./asn1/h450/packet-h450-template.c"
typedef struct _h450_op_t {
gint32 opcode;
@@ -4496,7 +4496,7 @@ typedef struct _h450_op_t {
static const h450_op_t h450_op_tab[] = {
/*--- Included file: packet-h450-table11.c ---*/
-#line 1 "../../asn1/h450/packet-h450-table11.c"
+#line 1 "./asn1/h450/packet-h450-table11.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -4594,7 +4594,7 @@ static const h450_op_t h450_op_tab[] = {
/* cmnInform */ { 85, dissect_h450_12_CmnArg_PDU, NULL },
/*--- End of included file: packet-h450-table11.c ---*/
-#line 87 "../../asn1/h450/packet-h450-template.c"
+#line 87 "./asn1/h450/packet-h450-template.c"
};
typedef struct _h450_err_t {
@@ -4605,7 +4605,7 @@ typedef struct _h450_err_t {
static const h450_err_t h450_err_tab[] = {
/*--- Included file: packet-h450-table21.c ---*/
-#line 1 "../../asn1/h450/packet-h450-table21.c"
+#line 1 "./asn1/h450/packet-h450-table21.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -4686,7 +4686,7 @@ static const h450_err_t h450_err_tab[] = {
/* Unknown or empty loop list ERROR */
/*--- End of included file: packet-h450-table21.c ---*/
-#line 96 "../../asn1/h450/packet-h450-template.c"
+#line 96 "./asn1/h450/packet-h450-template.c"
};
static const h450_op_t *get_op(gint32 opcode) {
@@ -4857,7 +4857,7 @@ void proto_register_h450(void) {
NULL, HFILL }},
/*--- Included file: packet-h450-hfarr.c ---*/
-#line 1 "../../asn1/h450/packet-h450-hfarr.c"
+#line 1 "./asn1/h450/packet-h450-hfarr.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -6288,14 +6288,14 @@ void proto_register_h450(void) {
NULL, HFILL }},
/*--- End of included file: packet-h450-hfarr.c ---*/
-#line 265 "../../asn1/h450/packet-h450-template.c"
+#line 265 "./asn1/h450/packet-h450-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-h450-ettarr.c ---*/
-#line 1 "../../asn1/h450/packet-h450-ettarr.c"
+#line 1 "./asn1/h450/packet-h450-ettarr.c"
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
@@ -6468,7 +6468,7 @@ void proto_register_h450(void) {
&ett_h450_12_FeatureControl,
/*--- End of included file: packet-h450-ettarr.c ---*/
-#line 270 "../../asn1/h450/packet-h450-template.c"
+#line 270 "./asn1/h450/packet-h450-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-h460.c b/epan/dissectors/packet-h460.c
index 375a95e4fe..ef195c3bcb 100644
--- a/epan/dissectors/packet-h460.c
+++ b/epan/dissectors/packet-h460.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h460.c */
-/* ../../tools/asn2wrs.py -c ./h460.cnf -s ./packet-h460-template -D . -O ../../epan/dissectors NUMBER-PORTABILITY.asn CIRCUIT-STATUS-MAP.asn CALL-PRIORITY.asn QOS-MONITORING-REPORT.asn QOS-MONITORING-EXTENDED-VOIP-REPORT.asn CALL-PARTY-CATEGORY.asn MLPP.asn SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn SIGNALLING-TRAVERSAL.asn MEDIA-TRAVERSAL.asn MESSAGE-BROADCAST.asn */
+/* asn2wrs.py -c ./h460.cnf -s ./packet-h460-template -D . -O ../.. NUMBER-PORTABILITY.asn CIRCUIT-STATUS-MAP.asn CALL-PRIORITY.asn QOS-MONITORING-REPORT.asn QOS-MONITORING-EXTENDED-VOIP-REPORT.asn CALL-PARTY-CATEGORY.asn MLPP.asn SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn SIGNALLING-TRAVERSAL.asn MEDIA-TRAVERSAL.asn MESSAGE-BROADCAST.asn */
/* Input file: packet-h460-template.c */
-#line 1 "../../asn1/h460/packet-h460-template.c"
+#line 1 "./asn1/h460/packet-h460-template.c"
/* packet-h460.c
* Routines for H.460.x packet dissection
* 2007 Tomas Kukosa
@@ -51,7 +51,7 @@ void proto_reg_handoff_h460(void);
static int proto_h460 = -1;
/*--- Included file: packet-h460-hf.c ---*/
-#line 1 "../../asn1/h460/packet-h460-hf.c"
+#line 1 "./asn1/h460/packet-h460-hf.c"
/* --- Module NUMBER-PORTABILITY --- --- --- */
@@ -254,12 +254,12 @@ static int hf_h460_21_capability = -1; /* Capability */
static int hf_h460_21_sourceAddress = -1; /* UnicastAddress */
/*--- End of included file: packet-h460-hf.c ---*/
-#line 45 "../../asn1/h460/packet-h460-template.c"
+#line 45 "./asn1/h460/packet-h460-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-h460-ett.c ---*/
-#line 1 "../../asn1/h460/packet-h460-ett.c"
+#line 1 "./asn1/h460/packet-h460-ett.c"
/* --- Module NUMBER-PORTABILITY --- --- --- */
@@ -351,7 +351,7 @@ static gint ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability = -1;
static gint ett_h460_21_TransmitCapabilities = -1;
/*--- End of included file: packet-h460-ett.c ---*/
-#line 48 "../../asn1/h460/packet-h460-template.c"
+#line 48 "./asn1/h460/packet-h460-template.c"
/* Subdissectors */
static dissector_handle_t q931_ie_handle = NULL;
@@ -359,7 +359,7 @@ static dissector_handle_t h225_ras_handle = NULL;
/*--- Included file: packet-h460-fn.c ---*/
-#line 1 "../../asn1/h460/packet-h460-fn.c"
+#line 1 "./asn1/h460/packet-h460-fn.c"
/* --- Module NUMBER-PORTABILITY --- --- --- */
@@ -1962,7 +1962,7 @@ static int dissect_h460_21_CapabilityAdvertisement_PDU(tvbuff_t *tvb _U_, packet
/*--- End of included file: packet-h460-fn.c ---*/
-#line 54 "../../asn1/h460/packet-h460-template.c"
+#line 54 "./asn1/h460/packet-h460-template.c"
static int
dissect_ies(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
@@ -2158,7 +2158,7 @@ void proto_register_h460(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-h460-hfarr.c ---*/
-#line 1 "../../asn1/h460/packet-h460-hfarr.c"
+#line 1 "./asn1/h460/packet-h460-hfarr.c"
/* --- Module NUMBER-PORTABILITY --- --- --- */
@@ -2871,14 +2871,14 @@ void proto_register_h460(void) {
"UnicastAddress", HFILL }},
/*--- End of included file: packet-h460-hfarr.c ---*/
-#line 248 "../../asn1/h460/packet-h460-template.c"
+#line 248 "./asn1/h460/packet-h460-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-h460-ettarr.c ---*/
-#line 1 "../../asn1/h460/packet-h460-ettarr.c"
+#line 1 "./asn1/h460/packet-h460-ettarr.c"
/* --- Module NUMBER-PORTABILITY --- --- --- */
@@ -2970,7 +2970,7 @@ void proto_register_h460(void) {
&ett_h460_21_TransmitCapabilities,
/*--- End of included file: packet-h460-ettarr.c ---*/
-#line 253 "../../asn1/h460/packet-h460-template.c"
+#line 253 "./asn1/h460/packet-h460-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-h501.c b/epan/dissectors/packet-h501.c
index 1dfa5d1596..fd6eec9d66 100644
--- a/epan/dissectors/packet-h501.c
+++ b/epan/dissectors/packet-h501.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h501.c */
-/* ../../tools/asn2wrs.py -p h501 -c ./h501.cnf -s ./packet-h501-template -D . -O ../../epan/dissectors H501-MESSAGES.asn */
+/* asn2wrs.py -p h501 -c ./h501.cnf -s ./packet-h501-template -D . -O ../.. H501-MESSAGES.asn */
/* Input file: packet-h501-template.c */
-#line 1 "../../asn1/h501/packet-h501-template.c"
+#line 1 "./asn1/h501/packet-h501-template.c"
/* packet-h501.c
* Routines for H.501 packet dissection
* 2007 Tomas Kukosa
@@ -51,7 +51,7 @@ void proto_register_h501(void);
static int proto_h501 = -1;
/*--- Included file: packet-h501-hf.c ---*/
-#line 1 "../../asn1/h501/packet-h501-hf.c"
+#line 1 "./asn1/h501/packet-h501-hf.c"
static int hf_h501_Message_PDU = -1; /* Message */
static int hf_h501_body = -1; /* MessageBody */
static int hf_h501_common = -1; /* MessageCommonInfo */
@@ -304,13 +304,13 @@ static int hf_h501_releaseCompleteReason = -1; /* ReleaseCompleteReason */
static int hf_h501_causeIE = -1; /* INTEGER_1_65535 */
/*--- End of included file: packet-h501-hf.c ---*/
-#line 45 "../../asn1/h501/packet-h501-template.c"
+#line 45 "./asn1/h501/packet-h501-template.c"
/* Initialize the subtree pointers */
static int ett_h501 = -1;
/*--- Included file: packet-h501-ett.c ---*/
-#line 1 "../../asn1/h501/packet-h501-ett.c"
+#line 1 "./asn1/h501/packet-h501-ett.c"
static gint ett_h501_Message = -1;
static gint ett_h501_MessageBody = -1;
static gint ett_h501_MessageCommonInfo = -1;
@@ -412,7 +412,7 @@ static gint ett_h501_Role = -1;
static gint ett_h501_TerminationCause = -1;
/*--- End of included file: packet-h501-ett.c ---*/
-#line 49 "../../asn1/h501/packet-h501-template.c"
+#line 49 "./asn1/h501/packet-h501-template.c"
/* Dissectors */
static dissector_handle_t h501_pdu_handle;
@@ -426,7 +426,7 @@ void proto_reg_handoff_h501(void);
/*--- Included file: packet-h501-fn.c ---*/
-#line 1 "../../asn1/h501/packet-h501-fn.c"
+#line 1 "./asn1/h501/packet-h501-fn.c"
static int
@@ -2355,7 +2355,7 @@ static const per_choice_t MessageBody_choice[] = {
static int
dissect_h501_MessageBody(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 20 "../../asn1/h501/h501.cnf"
+#line 20 "./asn1/h501/h501.cnf"
gint32 msg_type = -1;
const gchar *p = NULL;
@@ -2363,7 +2363,7 @@ dissect_h501_MessageBody(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
ett_h501_MessageBody, MessageBody_choice,
&msg_type);
-#line 23 "../../asn1/h501/h501.cnf"
+#line 23 "./asn1/h501/h501.cnf"
p = try_val_to_str(msg_type, VALS(h501_MessageBody_vals));
if (p )
col_set_str(actx->pinfo->cinfo, COL_INFO, p);
@@ -2514,7 +2514,7 @@ static int dissect_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-h501-fn.c ---*/
-#line 61 "../../asn1/h501/packet-h501-template.c"
+#line 61 "./asn1/h501/packet-h501-template.c"
static int
dissect_h501_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -2552,7 +2552,7 @@ void proto_register_h501(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-h501-hfarr.c ---*/
-#line 1 "../../asn1/h501/packet-h501-hfarr.c"
+#line 1 "./asn1/h501/packet-h501-hfarr.c"
{ &hf_h501_Message_PDU,
{ "Message", "h501.Message_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -3555,7 +3555,7 @@ void proto_register_h501(void) {
"INTEGER_1_65535", HFILL }},
/*--- End of included file: packet-h501-hfarr.c ---*/
-#line 97 "../../asn1/h501/packet-h501-template.c"
+#line 97 "./asn1/h501/packet-h501-template.c"
};
/* List of subtrees */
@@ -3563,7 +3563,7 @@ void proto_register_h501(void) {
&ett_h501,
/*--- Included file: packet-h501-ettarr.c ---*/
-#line 1 "../../asn1/h501/packet-h501-ettarr.c"
+#line 1 "./asn1/h501/packet-h501-ettarr.c"
&ett_h501_Message,
&ett_h501_MessageBody,
&ett_h501_MessageCommonInfo,
@@ -3665,7 +3665,7 @@ void proto_register_h501(void) {
&ett_h501_TerminationCause,
/*--- End of included file: packet-h501-ettarr.c ---*/
-#line 103 "../../asn1/h501/packet-h501-template.c"
+#line 103 "./asn1/h501/packet-h501-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-hnbap.c b/epan/dissectors/packet-hnbap.c
index be516799c3..0da1b80058 100644
--- a/epan/dissectors/packet-hnbap.c
+++ b/epan/dissectors/packet-hnbap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-hnbap.c */
-/* ../../tools/asn2wrs.py -p hnbap -c ./hnbap.cnf -s ./packet-hnbap-template -D . -O ../../epan/dissectors HNBAP-CommonDataTypes.asn HNBAP-Constants.asn HNBAP-Containers.asn HNBAP-IEs.asn HNBAP-PDU-Contents.asn HNBAP-PDU-Descriptions.asn */
+/* asn2wrs.py -p hnbap -c ./hnbap.cnf -s ./packet-hnbap-template -D . -O ../.. HNBAP-CommonDataTypes.asn HNBAP-Constants.asn HNBAP-Containers.asn HNBAP-IEs.asn HNBAP-PDU-Contents.asn HNBAP-PDU-Descriptions.asn */
/* Input file: packet-hnbap-template.c */
-#line 1 "../../asn1/hnbap/packet-hnbap-template.c"
+#line 1 "./asn1/hnbap/packet-hnbap-template.c"
/* packet-hnbap-template.c
* Routines for UMTS Node B Application Part(HNBAP) packet dissection
* Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
@@ -55,7 +55,7 @@ void proto_register_hnbap(void);
/*--- Included file: packet-hnbap-val.h ---*/
-#line 1 "../../asn1/hnbap/packet-hnbap-val.h"
+#line 1 "./asn1/hnbap/packet-hnbap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -111,14 +111,14 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-hnbap-val.h ---*/
-#line 49 "../../asn1/hnbap/packet-hnbap-template.c"
+#line 49 "./asn1/hnbap/packet-hnbap-template.c"
/* Initialize the protocol and registered fields */
static int proto_hnbap = -1;
/*--- Included file: packet-hnbap-hf.c ---*/
-#line 1 "../../asn1/hnbap/packet-hnbap-hf.c"
+#line 1 "./asn1/hnbap/packet-hnbap-hf.c"
static int hf_hnbap_BackoffTimer_PDU = -1; /* BackoffTimer */
static int hf_hnbap_Cause_PDU = -1; /* Cause */
static int hf_hnbap_CellIdentity_PDU = -1; /* CellIdentity */
@@ -257,14 +257,14 @@ static int hf_hnbap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
static int hf_hnbap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-hnbap-hf.c ---*/
-#line 54 "../../asn1/hnbap/packet-hnbap-template.c"
+#line 54 "./asn1/hnbap/packet-hnbap-template.c"
/* Initialize the subtree pointers */
static int ett_hnbap = -1;
/*--- Included file: packet-hnbap-ett.c ---*/
-#line 1 "../../asn1/hnbap/packet-hnbap-ett.c"
+#line 1 "./asn1/hnbap/packet-hnbap-ett.c"
static gint ett_hnbap_PrivateIE_ID = -1;
static gint ett_hnbap_ProtocolIE_Container = -1;
static gint ett_hnbap_ProtocolIE_Field = -1;
@@ -331,7 +331,7 @@ static gint ett_hnbap_SuccessfulOutcome = -1;
static gint ett_hnbap_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-hnbap-ett.c ---*/
-#line 59 "../../asn1/hnbap/packet-hnbap-template.c"
+#line 59 "./asn1/hnbap/packet-hnbap-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -354,7 +354,7 @@ void proto_reg_handoff_hnbap(void);
/*--- Included file: packet-hnbap-fn.c ---*/
-#line 1 "../../asn1/hnbap/packet-hnbap-fn.c"
+#line 1 "./asn1/hnbap/packet-hnbap-fn.c"
static const value_string hnbap_Criticality_vals[] = {
{ 0, "reject" },
@@ -434,7 +434,7 @@ dissect_hnbap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 61 "../../asn1/hnbap/hnbap.cnf"
+#line 61 "./asn1/hnbap/hnbap.cnf"
if (strcmp(val_to_str(ProcedureCode, hnbap_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
col_set_str(actx->pinfo->cinfo, COL_INFO,
"Unknown Message");
@@ -485,7 +485,7 @@ dissect_hnbap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
-#line 50 "../../asn1/hnbap/hnbap.cnf"
+#line 50 "./asn1/hnbap/hnbap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(hnbap_ProtocolIE_ID_vals), "unknown (%d)"));
}
@@ -1797,7 +1797,7 @@ static const per_sequence_t HNBRegisterRequest_sequence[] = {
static int
dissect_hnbap_HNBRegisterRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 74 "../../asn1/hnbap/hnbap.cnf"
+#line 74 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"HNB_REGISTER_REQUEST ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1818,7 +1818,7 @@ static const per_sequence_t HNBRegisterAccept_sequence[] = {
static int
dissect_hnbap_HNBRegisterAccept(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 79 "../../asn1/hnbap/hnbap.cnf"
+#line 79 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"HNB_REGISTER_ACCEPT ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1839,7 +1839,7 @@ static const per_sequence_t HNBRegisterReject_sequence[] = {
static int
dissect_hnbap_HNBRegisterReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 84 "../../asn1/hnbap/hnbap.cnf"
+#line 84 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"HNB_REGISTER_REJECT ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1860,7 +1860,7 @@ static const per_sequence_t HNBDe_Register_sequence[] = {
static int
dissect_hnbap_HNBDe_Register(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 109 "../../asn1/hnbap/hnbap.cnf"
+#line 109 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"HNB_DE-REGISTER ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1881,7 +1881,7 @@ static const per_sequence_t UERegisterRequest_sequence[] = {
static int
dissect_hnbap_UERegisterRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 89 "../../asn1/hnbap/hnbap.cnf"
+#line 89 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"UE_REGISTER_REQUEST ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1902,7 +1902,7 @@ static const per_sequence_t UERegisterAccept_sequence[] = {
static int
dissect_hnbap_UERegisterAccept(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 94 "../../asn1/hnbap/hnbap.cnf"
+#line 94 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"UE_REGISTER_ACCEPT ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1923,7 +1923,7 @@ static const per_sequence_t UERegisterReject_sequence[] = {
static int
dissect_hnbap_UERegisterReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 99 "../../asn1/hnbap/hnbap.cnf"
+#line 99 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"UE_REGISTER_REJECT ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1944,7 +1944,7 @@ static const per_sequence_t UEDe_Register_sequence[] = {
static int
dissect_hnbap_UEDe_Register(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 104 "../../asn1/hnbap/hnbap.cnf"
+#line 104 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"UE_DE-REGISTER ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1965,7 +1965,7 @@ static const per_sequence_t CSGMembershipUpdate_sequence[] = {
static int
dissect_hnbap_CSGMembershipUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 120 "../../asn1/hnbap/hnbap.cnf"
+#line 120 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"CSG_MEMBERSHIP_UPDATE_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1986,7 +1986,7 @@ static const per_sequence_t TNLUpdateRequest_sequence[] = {
static int
dissect_hnbap_TNLUpdateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 130 "../../asn1/hnbap/hnbap.cnf"
+#line 130 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"TNL_UPDATE_REQUEST_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -2006,7 +2006,7 @@ static const per_sequence_t TNLUpdateResponse_sequence[] = {
static int
dissect_hnbap_TNLUpdateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 134 "../../asn1/hnbap/hnbap.cnf"
+#line 134 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"TNL_UPDATE_RESPONSE_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -2026,7 +2026,7 @@ static const per_sequence_t TNLUpdateFailure_sequence[] = {
static int
dissect_hnbap_TNLUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 138 "../../asn1/hnbap/hnbap.cnf"
+#line 138 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"TNL_UPDATE_FAILURE_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -2046,7 +2046,7 @@ static const per_sequence_t HNBConfigTransferRequest_sequence[] = {
static int
dissect_hnbap_HNBConfigTransferRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 142 "../../asn1/hnbap/hnbap.cnf"
+#line 142 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"HNB_CONFIG_TRANSFER_REQUEST_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -2066,7 +2066,7 @@ static const per_sequence_t HNBConfigTransferResponse_sequence[] = {
static int
dissect_hnbap_HNBConfigTransferResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 146 "../../asn1/hnbap/hnbap.cnf"
+#line 146 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"HNB_CONFIG_TRANSFER_RESPONSE_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -2086,7 +2086,7 @@ static const per_sequence_t RelocationComplete_sequence[] = {
static int
dissect_hnbap_RelocationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 150 "../../asn1/hnbap/hnbap.cnf"
+#line 150 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"RELOCATION_COMPLETE_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -2107,7 +2107,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_hnbap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 114 "../../asn1/hnbap/hnbap.cnf"
+#line 114 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"ERROR_INDICATION ");
col_set_fence(actx->pinfo->cinfo, COL_INFO); /* Protect info from CriticalityDiagnostics decodes */
@@ -2128,7 +2128,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_hnbap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 125 "../../asn1/hnbap/hnbap.cnf"
+#line 125 "./asn1/hnbap/hnbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"PRIVATE_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -2588,7 +2588,7 @@ static int dissect_HNBAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- End of included file: packet-hnbap-fn.c ---*/
-#line 80 "../../asn1/hnbap/packet-hnbap-template.c"
+#line 80 "./asn1/hnbap/packet-hnbap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -2660,7 +2660,7 @@ module_t *hnbap_module;
/*--- Included file: packet-hnbap-hfarr.c ---*/
-#line 1 "../../asn1/hnbap/packet-hnbap-hfarr.c"
+#line 1 "./asn1/hnbap/packet-hnbap-hfarr.c"
{ &hf_hnbap_BackoffTimer_PDU,
{ "BackoffTimer", "hnbap.BackoffTimer",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -3207,7 +3207,7 @@ module_t *hnbap_module;
"UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-hnbap-hfarr.c ---*/
-#line 150 "../../asn1/hnbap/packet-hnbap-template.c"
+#line 150 "./asn1/hnbap/packet-hnbap-template.c"
};
/* List of subtrees */
@@ -3215,7 +3215,7 @@ module_t *hnbap_module;
&ett_hnbap,
/*--- Included file: packet-hnbap-ettarr.c ---*/
-#line 1 "../../asn1/hnbap/packet-hnbap-ettarr.c"
+#line 1 "./asn1/hnbap/packet-hnbap-ettarr.c"
&ett_hnbap_PrivateIE_ID,
&ett_hnbap_ProtocolIE_Container,
&ett_hnbap_ProtocolIE_Field,
@@ -3282,7 +3282,7 @@ module_t *hnbap_module;
&ett_hnbap_UnsuccessfulOutcome,
/*--- End of included file: packet-hnbap-ettarr.c ---*/
-#line 156 "../../asn1/hnbap/packet-hnbap-template.c"
+#line 156 "./asn1/hnbap/packet-hnbap-template.c"
};
@@ -3321,7 +3321,7 @@ proto_reg_handoff_hnbap(void)
initialized = TRUE;
/*--- Included file: packet-hnbap-dis-tab.c ---*/
-#line 1 "../../asn1/hnbap/packet-hnbap-dis-tab.c"
+#line 1 "./asn1/hnbap/packet-hnbap-dis-tab.c"
dissector_add_uint("hnbap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_hnbap));
dissector_add_uint("hnbap.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_hnbap));
dissector_add_uint("hnbap.ies", id_HNB_Identity, create_dissector_handle(dissect_HNB_Identity_PDU, proto_hnbap));
@@ -3369,7 +3369,7 @@ proto_reg_handoff_hnbap(void)
/*--- End of included file: packet-hnbap-dis-tab.c ---*/
-#line 193 "../../asn1/hnbap/packet-hnbap-template.c"
+#line 193 "./asn1/hnbap/packet-hnbap-template.c"
} else {
dissector_delete_uint("sctp.port", sctp_port, hnbap_handle);
diff --git a/epan/dissectors/packet-idmp.c b/epan/dissectors/packet-idmp.c
index 3a949f1f7e..9169e77cc1 100644
--- a/epan/dissectors/packet-idmp.c
+++ b/epan/dissectors/packet-idmp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-idmp.c */
-/* ../../tools/asn2wrs.py -b -L -p idmp -c ./idmp.cnf -s ./packet-idmp-template -D . -O ../../epan/dissectors IDMProtocolSpecification.asn CommonProtocolSpecification.asn */
+/* asn2wrs.py -b -L -p idmp -c ./idmp.cnf -s ./packet-idmp-template -D . -O ../.. IDMProtocolSpecification.asn CommonProtocolSpecification.asn */
/* Input file: packet-idmp-template.c */
-#line 1 "../../asn1/idmp/packet-idmp-template.c"
+#line 1 "./asn1/idmp/packet-idmp-template.c"
/* packet-idmp.c
* Routines for X.519 Internet Directly Mapped Procotol (IDMP) packet dissection
* Graeme Lunt 2010
@@ -138,7 +138,7 @@ static int call_idmp_oid_callback(tvbuff_t *tvb, int offset, packet_info *pinfo,
/*--- Included file: packet-idmp-hf.c ---*/
-#line 1 "../../asn1/idmp/packet-idmp-hf.c"
+#line 1 "./asn1/idmp/packet-idmp-hf.c"
static int hf_idmp_bind = -1; /* IdmBind */
static int hf_idmp_bindResult = -1; /* IdmBindResult */
static int hf_idmp_bindError = -1; /* IdmBindError */
@@ -173,13 +173,13 @@ static int hf_idmp_present = -1; /* INTEGER */
static int hf_idmp_absent = -1; /* NULL */
/*--- End of included file: packet-idmp-hf.c ---*/
-#line 132 "../../asn1/idmp/packet-idmp-template.c"
+#line 132 "./asn1/idmp/packet-idmp-template.c"
/* Initialize the subtree pointers */
static gint ett_idmp = -1;
/*--- Included file: packet-idmp-ett.c ---*/
-#line 1 "../../asn1/idmp/packet-idmp-ett.c"
+#line 1 "./asn1/idmp/packet-idmp-ett.c"
static gint ett_idmp_IDM_PDU = -1;
static gint ett_idmp_IdmBind = -1;
static gint ett_idmp_IdmBindResult = -1;
@@ -192,11 +192,11 @@ static gint ett_idmp_Code = -1;
static gint ett_idmp_InvokeId = -1;
/*--- End of included file: packet-idmp-ett.c ---*/
-#line 136 "../../asn1/idmp/packet-idmp-template.c"
+#line 136 "./asn1/idmp/packet-idmp-template.c"
/*--- Included file: packet-idmp-fn.c ---*/
-#line 1 "../../asn1/idmp/packet-idmp-fn.c"
+#line 1 "./asn1/idmp/packet-idmp-fn.c"
static int
@@ -620,7 +620,7 @@ dissect_idmp_IDM_PDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
/*--- End of included file: packet-idmp-fn.c ---*/
-#line 138 "../../asn1/idmp/packet-idmp-template.c"
+#line 138 "./asn1/idmp/packet-idmp-template.c"
void
register_idmp_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name)
@@ -805,7 +805,7 @@ void proto_register_idmp(void)
/*--- Included file: packet-idmp-hfarr.c ---*/
-#line 1 "../../asn1/idmp/packet-idmp-hfarr.c"
+#line 1 "./asn1/idmp/packet-idmp-hfarr.c"
{ &hf_idmp_bind,
{ "bind", "idmp.bind_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -936,7 +936,7 @@ void proto_register_idmp(void)
NULL, HFILL }},
/*--- End of included file: packet-idmp-hfarr.c ---*/
-#line 321 "../../asn1/idmp/packet-idmp-template.c"
+#line 321 "./asn1/idmp/packet-idmp-template.c"
};
/* List of subtrees */
@@ -946,7 +946,7 @@ void proto_register_idmp(void)
&ett_idmp_fragments,
/*--- Included file: packet-idmp-ettarr.c ---*/
-#line 1 "../../asn1/idmp/packet-idmp-ettarr.c"
+#line 1 "./asn1/idmp/packet-idmp-ettarr.c"
&ett_idmp_IDM_PDU,
&ett_idmp_IdmBind,
&ett_idmp_IdmBindResult,
@@ -959,7 +959,7 @@ void proto_register_idmp(void)
&ett_idmp_InvokeId,
/*--- End of included file: packet-idmp-ettarr.c ---*/
-#line 329 "../../asn1/idmp/packet-idmp-template.c"
+#line 329 "./asn1/idmp/packet-idmp-template.c"
};
module_t *idmp_module;
diff --git a/epan/dissectors/packet-idmp.h b/epan/dissectors/packet-idmp.h
index 6db5f1c3e3..21913ebee0 100644
--- a/epan/dissectors/packet-idmp.h
+++ b/epan/dissectors/packet-idmp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-idmp.h */
-/* ../../tools/asn2wrs.py -b -L -p idmp -c ./idmp.cnf -s ./packet-idmp-template -D . -O ../../epan/dissectors IDMProtocolSpecification.asn CommonProtocolSpecification.asn */
+/* asn2wrs.py -b -L -p idmp -c ./idmp.cnf -s ./packet-idmp-template -D . -O ../.. IDMProtocolSpecification.asn CommonProtocolSpecification.asn */
/* Input file: packet-idmp-template.h */
-#line 1 "../../asn1/idmp/packet-idmp-template.h"
+#line 1 "./asn1/idmp/packet-idmp-template.h"
/* packet-idmp.h
* Routines for X.519 Internet Directly Mapped Protocol (IDMP) packet dissection
* Graeme Lunt 2010
diff --git a/epan/dissectors/packet-ilp.c b/epan/dissectors/packet-ilp.c
index 022c8ba093..af4c6f61df 100644
--- a/epan/dissectors/packet-ilp.c
+++ b/epan/dissectors/packet-ilp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ilp.c */
-/* ../../tools/asn2wrs.py -p ilp -c ./ilp.cnf -s ./packet-ilp-template -D . -O ../../epan/dissectors ILP.asn ILP-Components.asn */
+/* asn2wrs.py -p ilp -c ./ilp.cnf -s ./packet-ilp-template -D . -O ../.. ILP.asn ILP-Components.asn */
/* Input file: packet-ilp-template.c */
-#line 1 "../../asn1/ilp/packet-ilp-template.c"
+#line 1 "./asn1/ilp/packet-ilp-template.c"
/* packet-ilp.c
* Routines for OMA Internal Location Protocol packet dissection
* Copyright 2006, e.yimjia <jy.m12.0@gmail.com>
@@ -68,7 +68,7 @@ static gboolean ilp_desegment = TRUE;
/*--- Included file: packet-ilp-hf.c ---*/
-#line 1 "../../asn1/ilp/packet-ilp-hf.c"
+#line 1 "./asn1/ilp/packet-ilp-hf.c"
static int hf_ilp_ILP_PDU_PDU = -1; /* ILP_PDU */
static int hf_ilp_length = -1; /* INTEGER_0_65535 */
static int hf_ilp_version = -1; /* Version */
@@ -452,7 +452,7 @@ static int hf_ilp_GANSSSignals_signal7 = -1;
static int hf_ilp_GANSSSignals_signal8 = -1;
/*--- End of included file: packet-ilp-hf.c ---*/
-#line 62 "../../asn1/ilp/packet-ilp-template.c"
+#line 62 "./asn1/ilp/packet-ilp-template.c"
static int hf_ilp_mobile_directory_number = -1;
/* Initialize the subtree pointers */
@@ -460,7 +460,7 @@ static gint ett_ilp = -1;
static gint ett_ilp_setid = -1;
/*--- Included file: packet-ilp-ett.c ---*/
-#line 1 "../../asn1/ilp/packet-ilp-ett.c"
+#line 1 "./asn1/ilp/packet-ilp-ett.c"
static gint ett_ilp_ILP_PDU = -1;
static gint ett_ilp_IlpMessage = -1;
static gint ett_ilp_PREQ = -1;
@@ -598,12 +598,12 @@ static gint ett_ilp_T_lPPPayload = -1;
static gint ett_ilp_T_tia801Payload = -1;
/*--- End of included file: packet-ilp-ett.c ---*/
-#line 68 "../../asn1/ilp/packet-ilp-template.c"
+#line 68 "./asn1/ilp/packet-ilp-template.c"
/* Include constants */
/*--- Included file: packet-ilp-val.h ---*/
-#line 1 "../../asn1/ilp/packet-ilp-val.h"
+#line 1 "./asn1/ilp/packet-ilp-val.h"
#define maxGANSS 16
#define maxGANSSSat 32
#define maxLidSize 64
@@ -615,12 +615,12 @@ static gint ett_ilp_T_tia801Payload = -1;
#define maxPosSize 1024
/*--- End of included file: packet-ilp-val.h ---*/
-#line 71 "../../asn1/ilp/packet-ilp-template.c"
+#line 71 "./asn1/ilp/packet-ilp-template.c"
/*--- Included file: packet-ilp-fn.c ---*/
-#line 1 "../../asn1/ilp/packet-ilp-fn.c"
+#line 1 "./asn1/ilp/packet-ilp-fn.c"
static int
@@ -751,7 +751,7 @@ dissect_ilp_SlcSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ilp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 70 "../../asn1/ilp/ilp.cnf"
+#line 70 "./asn1/ilp/ilp.cnf"
tvbuff_t *msisdn_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &msisdn_tvb);
@@ -772,7 +772,7 @@ dissect_ilp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_ilp_T_mdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 80 "../../asn1/ilp/ilp.cnf"
+#line 80 "./asn1/ilp/ilp.cnf"
tvbuff_t *mdn_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &mdn_tvb);
@@ -803,7 +803,7 @@ dissect_ilp_BIT_STRING_SIZE_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ilp_T_imsi(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "../../asn1/ilp/ilp.cnf"
+#line 90 "./asn1/ilp/ilp.cnf"
tvbuff_t *imsi_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &imsi_tvb);
@@ -3396,7 +3396,7 @@ dissect_ilp_OCTET_STRING_SIZE_1_8192(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_ilp_T_rrlpPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 52 "../../asn1/ilp/ilp.cnf"
+#line 52 "./asn1/ilp/ilp.cnf"
tvbuff_t *rrlp_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -3416,7 +3416,7 @@ dissect_ilp_T_rrlpPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_ilp_T_lPPPayload_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 61 "../../asn1/ilp/ilp.cnf"
+#line 61 "./asn1/ilp/ilp.cnf"
tvbuff_t *lpp_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -4086,7 +4086,7 @@ static const per_choice_t IlpMessage_choice[] = {
static int
dissect_ilp_IlpMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 42 "../../asn1/ilp/ilp.cnf"
+#line 42 "./asn1/ilp/ilp.cnf"
guint32 IlpMessage;
@@ -4113,7 +4113,7 @@ static const per_sequence_t ILP_PDU_sequence[] = {
static int
dissect_ilp_ILP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 27 "../../asn1/ilp/ilp.cnf"
+#line 27 "./asn1/ilp/ilp.cnf"
proto_item *it;
proto_tree *ilp_tree;
@@ -4123,7 +4123,7 @@ dissect_ilp_ILP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
col_clear(actx->pinfo->cinfo, COL_INFO);
-#line 38 "../../asn1/ilp/ilp.cnf"
+#line 38 "./asn1/ilp/ilp.cnf"
offset = dissect_per_sequence(tvb, offset, actx, ilp_tree, hf_index,
ett_ilp_ILP_PDU, ILP_PDU_sequence);
@@ -4145,7 +4145,7 @@ static int dissect_ILP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-ilp-fn.c ---*/
-#line 74 "../../asn1/ilp/packet-ilp-template.c"
+#line 74 "./asn1/ilp/packet-ilp-template.c"
static guint
@@ -4173,7 +4173,7 @@ void proto_register_ilp(void) {
/*--- Included file: packet-ilp-hfarr.c ---*/
-#line 1 "../../asn1/ilp/packet-ilp-hfarr.c"
+#line 1 "./asn1/ilp/packet-ilp-hfarr.c"
{ &hf_ilp_ILP_PDU_PDU,
{ "ILP-PDU", "ilp.ILP_PDU_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5696,7 +5696,7 @@ void proto_register_ilp(void) {
NULL, HFILL }},
/*--- End of included file: packet-ilp-hfarr.c ---*/
-#line 100 "../../asn1/ilp/packet-ilp-template.c"
+#line 100 "./asn1/ilp/packet-ilp-template.c"
{ &hf_ilp_mobile_directory_number,
{ "Mobile Directory Number", "ilp.mobile_directory_number",
FT_STRING, BASE_NONE, NULL, 0,
@@ -5709,7 +5709,7 @@ void proto_register_ilp(void) {
&ett_ilp_setid,
/*--- Included file: packet-ilp-ettarr.c ---*/
-#line 1 "../../asn1/ilp/packet-ilp-ettarr.c"
+#line 1 "./asn1/ilp/packet-ilp-ettarr.c"
&ett_ilp_ILP_PDU,
&ett_ilp_IlpMessage,
&ett_ilp_PREQ,
@@ -5847,7 +5847,7 @@ void proto_register_ilp(void) {
&ett_ilp_T_tia801Payload,
/*--- End of included file: packet-ilp-ettarr.c ---*/
-#line 111 "../../asn1/ilp/packet-ilp-template.c"
+#line 111 "./asn1/ilp/packet-ilp-template.c"
};
module_t *ilp_module;
diff --git a/epan/dissectors/packet-inap.c b/epan/dissectors/packet-inap.c
index 9335b17edc..78e575b538 100644
--- a/epan/dissectors/packet-inap.c
+++ b/epan/dissectors/packet-inap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-inap.c */
-/* ../../tools/asn2wrs.py -b -p inap -c ./inap.cnf -s ./packet-inap-template -D . -O ../../epan/dissectors IN-common-classes.asn IN-SSF-SCF-Classes.asn IN-SCF-SRF-Classes.asn IN-operationcodes.asn IN-object-identifiers.asn IN-common-datatypes.asn IN-SSF-SCF-datatypes.asn IN-SSF-SCF-ops-args.asn IN-SCF-SRF-datatypes.asn IN-SCF-SRF-ops-args.asn IN-errorcodes.asn IN-errortypes.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
+/* asn2wrs.py -b -p inap -c ./inap.cnf -s ./packet-inap-template -D . -O ../.. IN-common-classes.asn IN-SSF-SCF-Classes.asn IN-SCF-SRF-Classes.asn IN-operationcodes.asn IN-object-identifiers.asn IN-common-datatypes.asn IN-SSF-SCF-datatypes.asn IN-SSF-SCF-ops-args.asn IN-SCF-SRF-datatypes.asn IN-SCF-SRF-ops-args.asn IN-errorcodes.asn IN-errortypes.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
/* Input file: packet-inap-template.c */
-#line 1 "../../asn1/inap/packet-inap-template.c"
+#line 1 "./asn1/inap/packet-inap-template.c"
/* packet-inap-template.c
* Routines for INAP
* Copyright 2004, Tim Endean <endeant@hotmail.com>
@@ -63,7 +63,7 @@ static int proto_inap = -1;
/* include constants */
/*--- Included file: packet-inap-val.h ---*/
-#line 1 "../../asn1/inap/packet-inap-val.h"
+#line 1 "./asn1/inap/packet-inap-val.h"
#define opcode_initialDP 0
#define opcode_originationAttemptAuthorized 1
#define opcode_collectedInformation 2
@@ -459,11 +459,11 @@ static int proto_inap = -1;
#define noInvokeId NULL
/*--- End of included file: packet-inap-val.h ---*/
-#line 57 "../../asn1/inap/packet-inap-template.c"
+#line 57 "./asn1/inap/packet-inap-template.c"
/*--- Included file: packet-inap-hf.c ---*/
-#line 1 "../../asn1/inap/packet-inap-hf.c"
+#line 1 "./asn1/inap/packet-inap-hf.c"
static int hf_inap_ActivateServiceFilteringArg_PDU = -1; /* ActivateServiceFilteringArg */
static int hf_inap_AnalysedInformationArg_PDU = -1; /* AnalysedInformationArg */
static int hf_inap_AnalyseInformationArg_PDU = -1; /* AnalyseInformationArg */
@@ -1026,7 +1026,7 @@ static int hf_inap_present = -1; /* INTEGER */
static int hf_inap_InvokeId_present = -1; /* InvokeId_present */
/*--- End of included file: packet-inap-hf.c ---*/
-#line 59 "../../asn1/inap/packet-inap-template.c"
+#line 59 "./asn1/inap/packet-inap-template.c"
#define MAX_SSN 254
static range_t *global_ssn_range;
@@ -1056,7 +1056,7 @@ static gint ett_inap_cause = -1;
/*--- Included file: packet-inap-ett.c ---*/
-#line 1 "../../asn1/inap/packet-inap-ett.c"
+#line 1 "./asn1/inap/packet-inap-ett.c"
static gint ett_inap_Extensions = -1;
static gint ett_inap_ExtensionField = -1;
static gint ett_inap_AlternativeIdentities = -1;
@@ -1295,7 +1295,7 @@ static gint ett_inap_T_problem_01 = -1;
static gint ett_inap_InvokeId = -1;
/*--- End of included file: packet-inap-ett.c ---*/
-#line 87 "../../asn1/inap/packet-inap-template.c"
+#line 87 "./asn1/inap/packet-inap-template.c"
static expert_field ei_inap_unknown_invokeData = EI_INIT;
static expert_field ei_inap_unknown_returnResultData = EI_INIT;
@@ -1303,7 +1303,7 @@ static expert_field ei_inap_unknown_returnErrorData = EI_INIT;
/*--- Included file: packet-inap-table.c ---*/
-#line 1 "../../asn1/inap/packet-inap-table.c"
+#line 1 "./asn1/inap/packet-inap-table.c"
/* INAP OPERATIONS */
const value_string inap_opr_code_strings[] = {
@@ -1425,7 +1425,7 @@ static const value_string inap_err_code_string_vals[] = {
/*--- End of included file: packet-inap-table.c ---*/
-#line 93 "../../asn1/inap/packet-inap-template.c"
+#line 93 "./asn1/inap/packet-inap-template.c"
const value_string inap_general_problem_strings[] = {
{0,"General Problem Unrecognized Component"},
@@ -1441,7 +1441,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,
/*--- Included file: packet-inap-fn.c ---*/
-#line 1 "../../asn1/inap/packet-inap-fn.c"
+#line 1 "./asn1/inap/packet-inap-fn.c"
const value_string inap_CriticalityType_vals[] = {
{ 0, "ignore" },
@@ -1462,7 +1462,7 @@ dissect_inap_CriticalityType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_inap_T_local(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 155 "../../asn1/inap/inap.cnf"
+#line 155 "./asn1/inap/inap.cnf"
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&opcode);
@@ -1519,7 +1519,7 @@ dissect_inap_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_inap_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 213 "../../asn1/inap/inap.cnf"
+#line 213 "./asn1/inap/inap.cnf"
proto_tree *ext_tree;
ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_inap_extension_data, NULL, "Extension Data");
if (obj_id){
@@ -1546,7 +1546,7 @@ static const ber_sequence_t ExtensionField_sequence[] = {
static int
dissect_inap_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 208 "../../asn1/inap/inap.cnf"
+#line 208 "./asn1/inap/inap.cnf"
obj_id = NULL;
@@ -2200,7 +2200,7 @@ dissect_inap_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_inap_T_bearerCap(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 246 "../../asn1/inap/inap.cnf"
+#line 246 "./asn1/inap/inap.cnf"
tvbuff_t *parameter_tvb;
@@ -2355,7 +2355,7 @@ dissect_inap_CalledPartyBusinessGroupID(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_inap_CalledPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 225 "../../asn1/inap/inap.cnf"
+#line 225 "./asn1/inap/inap.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2406,7 +2406,7 @@ dissect_inap_CallingPartyBusinessGroupID(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_inap_CallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 235 "../../asn1/inap/inap.cnf"
+#line 235 "./asn1/inap/inap.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2509,7 +2509,7 @@ dissect_inap_Carrier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_inap_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 302 "../../asn1/inap/inap.cnf"
+#line 302 "./asn1/inap/inap.cnf"
/*
* -- 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 Q.850.
@@ -4562,7 +4562,7 @@ dissect_inap_GlobalCallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
int
dissect_inap_HighLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 288 "../../asn1/inap/inap.cnf"
+#line 288 "./asn1/inap/inap.cnf"
/*
* -- Indicates the teleservice. For encoding, DSS1 (Q.931) is used.
*/
@@ -4736,7 +4736,7 @@ dissect_inap_NumberingPlan(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_inap_OriginalCalledPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 268 "../../asn1/inap/inap.cnf"
+#line 268 "./asn1/inap/inap.cnf"
tvbuff_t *parameter_tvb;
@@ -4799,7 +4799,7 @@ dissect_inap_Reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_inap_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 278 "../../asn1/inap/inap.cnf"
+#line 278 "./asn1/inap/inap.cnf"
tvbuff_t *parameter_tvb;
@@ -4820,7 +4820,7 @@ dissect_inap_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
int
dissect_inap_RedirectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 257 "../../asn1/inap/inap.cnf"
+#line 257 "./asn1/inap/inap.cnf"
tvbuff_t *parameter_tvb;
@@ -5184,7 +5184,7 @@ dissect_inap_T_triggerId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_inap_T_triggerPar(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 194 "../../asn1/inap/inap.cnf"
+#line 194 "./asn1/inap/inap.cnf"
/* FIX ME */
@@ -7762,7 +7762,7 @@ dissect_inap_MessageReceivedArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_inap_T_uIScriptSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 200 "../../asn1/inap/inap.cnf"
+#line 200 "./asn1/inap/inap.cnf"
/* FIX ME */
@@ -7791,7 +7791,7 @@ dissect_inap_ScriptCloseArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_inap_T_uIScriptResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 197 "../../asn1/inap/inap.cnf"
+#line 197 "./asn1/inap/inap.cnf"
/* FIX ME */
@@ -7821,7 +7821,7 @@ dissect_inap_ScriptEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_inap_T_uIScriptSpecificInfo_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 203 "../../asn1/inap/inap.cnf"
+#line 203 "./asn1/inap/inap.cnf"
/* FIX ME */
@@ -7849,7 +7849,7 @@ dissect_inap_ScriptInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_inap_T_uIScriptSpecificInfo_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 205 "../../asn1/inap/inap.cnf"
+#line 205 "./asn1/inap/inap.cnf"
/* FIX ME */
@@ -8080,7 +8080,7 @@ dissect_inap_T_linkedId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_inap_T_argument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 182 "../../asn1/inap/inap.cnf"
+#line 182 "./asn1/inap/inap.cnf"
offset = dissect_invokeData(tree, tvb, offset, actx);
@@ -8099,7 +8099,7 @@ static const ber_sequence_t Invoke_sequence[] = {
static int
dissect_inap_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 170 "../../asn1/inap/inap.cnf"
+#line 170 "./asn1/inap/inap.cnf"
inap_opcode_type=INAP_OPCODE_INVOKE;
@@ -8113,7 +8113,7 @@ dissect_inap_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_inap_ResultArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 185 "../../asn1/inap/inap.cnf"
+#line 185 "./asn1/inap/inap.cnf"
offset = dissect_returnResultData(tree, tvb, offset, actx);
@@ -8145,7 +8145,7 @@ static const ber_sequence_t ReturnResult_sequence[] = {
static int
dissect_inap_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 173 "../../asn1/inap/inap.cnf"
+#line 173 "./asn1/inap/inap.cnf"
inap_opcode_type=INAP_OPCODE_RETURN_RESULT;
@@ -8159,7 +8159,7 @@ dissect_inap_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_inap_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 188 "../../asn1/inap/inap.cnf"
+#line 188 "./asn1/inap/inap.cnf"
offset = dissect_returnErrorData(tree, tvb, offset, actx);
@@ -8179,7 +8179,7 @@ static const ber_sequence_t ReturnError_sequence[] = {
static int
dissect_inap_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 176 "../../asn1/inap/inap.cnf"
+#line 176 "./asn1/inap/inap.cnf"
inap_opcode_type=INAP_OPCODE_RETURN_ERROR;
@@ -8299,7 +8299,7 @@ static const ber_sequence_t Reject_sequence[] = {
static int
dissect_inap_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "../../asn1/inap/inap.cnf"
+#line 179 "./asn1/inap/inap.cnf"
inap_opcode_type=INAP_OPCODE_REJECT;
@@ -9004,7 +9004,7 @@ static int dissect_PAR_taskRefused_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
/*--- End of included file: packet-inap-fn.c ---*/
-#line 107 "../../asn1/inap/packet-inap-template.c"
+#line 107 "./asn1/inap/packet-inap-template.c"
/*
TC-Invokable OPERATION ::=
{activateServiceFiltering | activityTest | analysedInformation |
@@ -9027,7 +9027,7 @@ TC-Invokable OPERATION ::=
/*--- Included file: packet-inap-table2.c ---*/
-#line 1 "../../asn1/inap/packet-inap-table2.c"
+#line 1 "./asn1/inap/packet-inap-table2.c"
static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
@@ -9354,7 +9354,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
/*--- End of included file: packet-inap-table2.c ---*/
-#line 128 "../../asn1/inap/packet-inap-template.c"
+#line 128 "./asn1/inap/packet-inap-template.c"
static guint8 inap_pdu_type = 0;
@@ -9441,7 +9441,7 @@ void proto_register_inap(void) {
/*--- Included file: packet-inap-hfarr.c ---*/
-#line 1 "../../asn1/inap/packet-inap-hfarr.c"
+#line 1 "./asn1/inap/packet-inap-hfarr.c"
{ &hf_inap_ActivateServiceFilteringArg_PDU,
{ "ActivateServiceFilteringArg", "inap.ActivateServiceFilteringArg_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -11684,7 +11684,7 @@ void proto_register_inap(void) {
"InvokeId_present", HFILL }},
/*--- End of included file: packet-inap-hfarr.c ---*/
-#line 213 "../../asn1/inap/packet-inap-template.c"
+#line 213 "./asn1/inap/packet-inap-template.c"
};
@@ -11701,7 +11701,7 @@ void proto_register_inap(void) {
&ett_inap_cause,
/*--- Included file: packet-inap-ettarr.c ---*/
-#line 1 "../../asn1/inap/packet-inap-ettarr.c"
+#line 1 "./asn1/inap/packet-inap-ettarr.c"
&ett_inap_Extensions,
&ett_inap_ExtensionField,
&ett_inap_AlternativeIdentities,
@@ -11940,7 +11940,7 @@ void proto_register_inap(void) {
&ett_inap_InvokeId,
/*--- End of included file: packet-inap-ettarr.c ---*/
-#line 228 "../../asn1/inap/packet-inap-template.c"
+#line 228 "./asn1/inap/packet-inap-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-inap.h b/epan/dissectors/packet-inap.h
index 909ea435f9..64ba6af57f 100644
--- a/epan/dissectors/packet-inap.h
+++ b/epan/dissectors/packet-inap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-inap.h */
-/* ../../tools/asn2wrs.py -b -p inap -c ./inap.cnf -s ./packet-inap-template -D . -O ../../epan/dissectors IN-common-classes.asn IN-SSF-SCF-Classes.asn IN-SCF-SRF-Classes.asn IN-operationcodes.asn IN-object-identifiers.asn IN-common-datatypes.asn IN-SSF-SCF-datatypes.asn IN-SSF-SCF-ops-args.asn IN-SCF-SRF-datatypes.asn IN-SCF-SRF-ops-args.asn IN-errorcodes.asn IN-errortypes.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
+/* asn2wrs.py -b -p inap -c ./inap.cnf -s ./packet-inap-template -D . -O ../.. IN-common-classes.asn IN-SSF-SCF-Classes.asn IN-SCF-SRF-Classes.asn IN-operationcodes.asn IN-object-identifiers.asn IN-common-datatypes.asn IN-SSF-SCF-datatypes.asn IN-SSF-SCF-ops-args.asn IN-SCF-SRF-datatypes.asn IN-SCF-SRF-ops-args.asn IN-errorcodes.asn IN-errortypes.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
/* Input file: packet-inap-template.h */
-#line 1 "../../asn1/inap/packet-inap-template.h"
+#line 1 "./asn1/inap/packet-inap-template.h"
/* packet-inap.h
*
* Copyright 2004, Tim Endean <endeant@hotmail.com>
@@ -35,7 +35,7 @@
/*--- Included file: packet-inap-exp.h ---*/
-#line 1 "../../asn1/inap/packet-inap-exp.h"
+#line 1 "./asn1/inap/packet-inap-exp.h"
extern const value_string inap_CriticalityType_vals[];
extern const value_string inap_BothwayThroughConnectionInd_vals[];
extern const value_string inap_LegID_vals[];
@@ -52,6 +52,6 @@ int dissect_inap_RedirectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb
int dissect_inap_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-inap-exp.h ---*/
-#line 29 "../../asn1/inap/packet-inap-template.h"
+#line 29 "./asn1/inap/packet-inap-template.h"
#endif /* PACKET_INAP_H */
diff --git a/epan/dissectors/packet-isdn-sup.c b/epan/dissectors/packet-isdn-sup.c
index 9f26a7b81a..8f735bbf07 100644
--- a/epan/dissectors/packet-isdn-sup.c
+++ b/epan/dissectors/packet-isdn-sup.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-isdn-sup.c */
-/* ../../tools/asn2wrs.py -b -p isdn-sup -c ./isdn-sup.cnf -s ./packet-isdn-sup-template -D . -O ../../epan/dissectors Addressing-Data-Elements.asn Basic-Service-Elements.asn Embedded-Q931-Types.asn General-Errors.asn Advice-of-Charge-Operations.asn Closed-User-Group-Service-Operations.asn Conference-Add-On-Operations.asn Diversion-Operations.asn MCID-Operations.asn User-To-User-Signalling-Operations.asn Freephone-Operations.asn MLPP-Operations-And-Errors.asn */
+/* asn2wrs.py -b -p isdn-sup -c ./isdn-sup.cnf -s ./packet-isdn-sup-template -D . -O ../.. Addressing-Data-Elements.asn Basic-Service-Elements.asn Embedded-Q931-Types.asn General-Errors.asn Advice-of-Charge-Operations.asn Closed-User-Group-Service-Operations.asn Conference-Add-On-Operations.asn Diversion-Operations.asn MCID-Operations.asn User-To-User-Signalling-Operations.asn Freephone-Operations.asn MLPP-Operations-And-Errors.asn */
/* Input file: packet-isdn-sup-template.c */
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-template.c"
/* packet-isdn-sup-template.c
* Routines for ETSI Integrated Services Digital Network (ISDN)
* supplementary services
@@ -47,11 +47,11 @@ void proto_reg_handoff_isdn_sup(void);
/*--- Included file: packet-isdn-sup-val.h ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-val.h"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-val.h"
#define fPHOID "0.4.0.210.1"
/*--- End of included file: packet-isdn-sup-val.h ---*/
-#line 41 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 41 "./asn1/isdn-sup/packet-isdn-sup-template.c"
/* Initialize the protocol and registered fields */
static int proto_isdn_sup = -1;
@@ -86,7 +86,7 @@ typedef struct isdn_sup_err_t {
static const value_string isdn_sup_str_operation[] = {
/*--- Included file: packet-isdn-sup-table10.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-table10.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-table10.c"
{ 1, "userUserService" },
{ 2, "cUGcall" },
{ 3, "mCIDRequest" },
@@ -121,7 +121,7 @@ static const value_string isdn_sup_str_operation[] = {
{ 46, "partyDISC" },
/*--- End of included file: packet-isdn-sup-table10.c ---*/
-#line 74 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 74 "./asn1/isdn-sup/packet-isdn-sup-template.c"
{ 0, NULL}
};
@@ -129,7 +129,7 @@ static const value_string isdn_sup_str_operation[] = {
static const value_string isdn_sup_str_error[] = {
/*--- Included file: packet-isdn-sup-table20.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-table20.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-table20.c"
{ 0, "notSubscribed" },
{ 3, "notAvailable" },
{ 4, "notImplemented" },
@@ -163,7 +163,7 @@ static const value_string isdn_sup_str_error[] = {
{ 44, "unauthorizedPrecedenceLevel" },
/*--- End of included file: packet-isdn-sup-table20.c ---*/
-#line 80 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 80 "./asn1/isdn-sup/packet-isdn-sup-template.c"
{ 0, NULL}
};
@@ -171,7 +171,7 @@ static int hf_isdn_sup = -1;
/*--- Included file: packet-isdn-sup-hf.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-hf.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-hf.c"
static int hf_isdn_sup_ChargingRequestArg_PDU = -1; /* ChargingRequestArg */
static int hf_isdn_sup_ChargingRequestRes_PDU = -1; /* ChargingRequestRes */
static int hf_isdn_sup_AOCSCurrencyArg_PDU = -1; /* AOCSCurrencyArg */
@@ -342,7 +342,7 @@ static int hf_isdn_sup_statusQuery = -1; /* StatusQuery */
static int hf_isdn_sup_location = -1; /* Location */
/*--- End of included file: packet-isdn-sup-hf.c ---*/
-#line 86 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 86 "./asn1/isdn-sup/packet-isdn-sup-template.c"
/* Initialize the subtree pointers */
@@ -350,7 +350,7 @@ static gint ett_isdn_sup = -1;
/*--- Included file: packet-isdn-sup-ett.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-ett.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-ett.c"
static gint ett_isdn_sup_PresentedAddressScreened = -1;
static gint ett_isdn_sup_PresentedAddressUnscreened = -1;
static gint ett_isdn_sup_PresentedNumberScreened = -1;
@@ -420,7 +420,7 @@ static gint ett_isdn_sup_MLPPParams = -1;
static gint ett_isdn_sup_MLPPLFBResp = -1;
/*--- End of included file: packet-isdn-sup-ett.c ---*/
-#line 92 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 92 "./asn1/isdn-sup/packet-isdn-sup-template.c"
static expert_field ei_isdn_sup_unsupported_arg_type = EI_INIT;
static expert_field ei_isdn_sup_unsupported_result_type = EI_INIT;
@@ -432,7 +432,7 @@ static expert_field ei_isdn_sup_unsupported_error_type = EI_INIT;
/*--- Included file: packet-isdn-sup-fn.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-fn.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-fn.c"
static int
@@ -2718,12 +2718,12 @@ static int dissect_PreemptParams_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-isdn-sup-fn.c ---*/
-#line 102 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 102 "./asn1/isdn-sup/packet-isdn-sup-template.c"
static const isdn_sup_op_t isdn_sup_op_tab[] = {
/*--- Included file: packet-isdn-sup-table11.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-table11.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-table11.c"
/* chargingRequest */ { 30, dissect_ChargingRequestArg_PDU, dissect_ChargingRequestRes_PDU },
/* aOCSCurrency */ { 31, dissect_AOCSCurrencyArg_PDU, NULL },
/* aOCSSpecialArr */ { 32, dissect_AOCSSpecialArrArg_PDU, NULL },
@@ -2758,7 +2758,7 @@ static const isdn_sup_op_t isdn_sup_op_tab[] = {
/* mLPPCallPreemption */ { 26, dissect_PreemptParams_PDU, NULL },
/*--- End of included file: packet-isdn-sup-table11.c ---*/
-#line 105 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 105 "./asn1/isdn-sup/packet-isdn-sup-template.c"
};
@@ -2766,20 +2766,20 @@ static const isdn_sup_global_op_t isdn_sup_global_op_tab[] = {
/*--- Included file: packet-isdn-sup-table31.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-table31.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-table31.c"
/* callFPH */ { fPHOID".1", dissect_CalledFreephoneNrArg_PDU, NULL },
/* monitor-T-FPH */ { fPHOID".2", dissect_Monitor_T_FPHArg_PDU, NULL },
/* free-T-FPH */ { fPHOID".3", dissect_Free_T_FPHArg_PDU, NULL },
/* call-T-FPH */ { fPHOID".4", dissect_Call_T_FPHArg_PDU, NULL },
/*--- End of included file: packet-isdn-sup-table31.c ---*/
-#line 111 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 111 "./asn1/isdn-sup/packet-isdn-sup-template.c"
};
static const isdn_sup_err_t isdn_sup_err_tab[] = {
/*--- Included file: packet-isdn-sup-table21.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-table21.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-table21.c"
/* notSubscribed */ { 0, NULL },
/* notAvailable */ { 3, NULL },
/* notImplemented */ { 4, NULL },
@@ -2813,7 +2813,7 @@ static const isdn_sup_err_t isdn_sup_err_tab[] = {
/* unauthorizedPrecedenceLevel */ { 44, NULL },
/*--- End of included file: packet-isdn-sup-table21.c ---*/
-#line 115 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 115 "./asn1/isdn-sup/packet-isdn-sup-template.c"
};
@@ -3048,7 +3048,7 @@ void proto_register_isdn_sup(void) {
/*--- Included file: packet-isdn-sup-hfarr.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-hfarr.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-hfarr.c"
{ &hf_isdn_sup_ChargingRequestArg_PDU,
{ "ChargingRequestArg", "isdn-sup.ChargingRequestArg",
FT_UINT32, BASE_DEC, VALS(isdn_sup_ChargingCase_vals), 0,
@@ -3723,7 +3723,7 @@ void proto_register_isdn_sup(void) {
NULL, HFILL }},
/*--- End of included file: packet-isdn-sup-hfarr.c ---*/
-#line 348 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 348 "./asn1/isdn-sup/packet-isdn-sup-template.c"
};
/* List of subtrees */
@@ -3732,7 +3732,7 @@ void proto_register_isdn_sup(void) {
/*--- Included file: packet-isdn-sup-ettarr.c ---*/
-#line 1 "../../asn1/isdn-sup/packet-isdn-sup-ettarr.c"
+#line 1 "./asn1/isdn-sup/packet-isdn-sup-ettarr.c"
&ett_isdn_sup_PresentedAddressScreened,
&ett_isdn_sup_PresentedAddressUnscreened,
&ett_isdn_sup_PresentedNumberScreened,
@@ -3802,7 +3802,7 @@ void proto_register_isdn_sup(void) {
&ett_isdn_sup_MLPPLFBResp,
/*--- End of included file: packet-isdn-sup-ettarr.c ---*/
-#line 355 "../../asn1/isdn-sup/packet-isdn-sup-template.c"
+#line 355 "./asn1/isdn-sup/packet-isdn-sup-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c
index 5dd2336dd6..1d2210c44f 100644
--- a/epan/dissectors/packet-kerberos.c
+++ b/epan/dissectors/packet-kerberos.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-kerberos.c */
-/* ../../tools/asn2wrs.py -b -p kerberos -c ./kerberos.cnf -s ./packet-kerberos-template -D . -O ../../epan/dissectors KerberosV5Spec2.asn k5.asn RFC3244.asn */
+/* asn2wrs.py -b -p kerberos -c ./kerberos.cnf -s ./packet-kerberos-template -D . -O ../.. KerberosV5Spec2.asn k5.asn RFC3244.asn */
/* Input file: packet-kerberos-template.c */
-#line 1 "../../asn1/kerberos/packet-kerberos-template.c"
+#line 1 "./asn1/kerberos/packet-kerberos-template.c"
/* packet-kerberos.c
* Routines for Kerberos
* Wes Hardaker (c) 2000
@@ -179,7 +179,7 @@ static gint hf_krb_pac_privsvr_checksum = -1;
static gint hf_krb_pac_client_info_type = -1;
/*--- Included file: packet-kerberos-hf.c ---*/
-#line 1 "../../asn1/kerberos/packet-kerberos-hf.c"
+#line 1 "./asn1/kerberos/packet-kerberos-hf.c"
static int hf_kerberos_ticket = -1; /* Ticket */
static int hf_kerberos_authenticator = -1; /* Authenticator */
static int hf_kerberos_encTicketPart = -1; /* EncTicketPart */
@@ -350,7 +350,7 @@ static int hf_kerberos_KDCOptions_renew = -1;
static int hf_kerberos_KDCOptions_validate = -1;
/*--- End of included file: packet-kerberos-hf.c ---*/
-#line 173 "../../asn1/kerberos/packet-kerberos-template.c"
+#line 173 "./asn1/kerberos/packet-kerberos-template.c"
/* Initialize the subtree pointers */
static gint ett_kerberos = -1;
@@ -366,7 +366,7 @@ static gint ett_krb_pac_privsvr_checksum = -1;
static gint ett_krb_pac_client_info_type = -1;
/*--- Included file: packet-kerberos-ett.c ---*/
-#line 1 "../../asn1/kerberos/packet-kerberos-ett.c"
+#line 1 "./asn1/kerberos/packet-kerberos-ett.c"
static gint ett_kerberos_Applications = -1;
static gint ett_kerberos_PrincipalName = -1;
static gint ett_kerberos_SEQUENCE_OF_KerberosString = -1;
@@ -426,7 +426,7 @@ static gint ett_kerberos_KERB_PA_PAC_REQUEST = -1;
static gint ett_kerberos_ChangePasswdData = -1;
/*--- End of included file: packet-kerberos-ett.c ---*/
-#line 187 "../../asn1/kerberos/packet-kerberos-template.c"
+#line 187 "./asn1/kerberos/packet-kerberos-template.c"
static expert_field ei_kerberos_decrypted_keytype = EI_INIT;
static expert_field ei_kerberos_address = EI_INIT;
@@ -441,7 +441,7 @@ static gboolean gbl_do_col_info;
/*--- Included file: packet-kerberos-val.h ---*/
-#line 1 "../../asn1/kerberos/packet-kerberos-val.h"
+#line 1 "./asn1/kerberos/packet-kerberos-val.h"
#define id_krb5 "1.3.6.1.5.2"
/* enumerated values for ADDR_TYPE */
@@ -455,7 +455,7 @@ static gboolean gbl_do_col_info;
#define KERBEROS_ADDR_TYPE_IPV6 24
/*--- End of included file: packet-kerberos-val.h ---*/
-#line 200 "../../asn1/kerberos/packet-kerberos-template.c"
+#line 200 "./asn1/kerberos/packet-kerberos-template.c"
static void
call_kerberos_callbacks(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int tag, kerberos_callbacks *cb)
@@ -2243,7 +2243,7 @@ dissect_krb5_AD_WIN2K_PAC(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
/*--- Included file: packet-kerberos-fn.c ---*/
-#line 1 "../../asn1/kerberos/packet-kerberos-fn.c"
+#line 1 "./asn1/kerberos/packet-kerberos-fn.c"
static int
@@ -2378,7 +2378,7 @@ static const value_string kerberos_ENCTYPE_vals[] = {
static int
dissect_kerberos_ENCTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 223 "../../asn1/kerberos/kerberos.cnf"
+#line 223 "./asn1/kerberos/kerberos.cnf"
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->etype));
@@ -2403,7 +2403,7 @@ dissect_kerberos_UInt32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_kerberos_T_encryptedTicketData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 227 "../../asn1/kerberos/kerberos.cnf"
+#line 227 "./asn1/kerberos/kerberos.cnf"
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_ticket_data);
#else
@@ -2529,7 +2529,7 @@ static const value_string kerberos_CKSUMTYPE_vals[] = {
static int
dissect_kerberos_CKSUMTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 284 "../../asn1/kerberos/kerberos.cnf"
+#line 284 "./asn1/kerberos/kerberos.cnf"
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->checksum_type));
@@ -2544,7 +2544,7 @@ dissect_kerberos_CKSUMTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_kerberos_T_checksum(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 288 "../../asn1/kerberos/kerberos.cnf"
+#line 288 "./asn1/kerberos/kerberos.cnf"
tvbuff_t *next_tvb;
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -2611,7 +2611,7 @@ dissect_kerberos_Int32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_kerberos_T_keytype(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 302 "../../asn1/kerberos/kerberos.cnf"
+#line 302 "./asn1/kerberos/kerberos.cnf"
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2627,7 +2627,7 @@ dissect_kerberos_T_keytype(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_kerberos_T_keyvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 309 "../../asn1/kerberos/kerberos.cnf"
+#line 309 "./asn1/kerberos/kerberos.cnf"
tvbuff_t *out_tvb;
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -2652,7 +2652,7 @@ static const ber_sequence_t EncryptionKey_sequence[] = {
static int
dissect_kerberos_EncryptionKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 318 "../../asn1/kerberos/kerberos.cnf"
+#line 318 "./asn1/kerberos/kerberos.cnf"
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -2674,7 +2674,7 @@ dissect_kerberos_EncryptionKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_kerberos_T_ad_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 329 "../../asn1/kerberos/kerberos.cnf"
+#line 329 "./asn1/kerberos/kerberos.cnf"
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->ad_type));
@@ -2687,7 +2687,7 @@ dissect_kerberos_T_ad_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_kerberos_T_ad_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 336 "../../asn1/kerberos/kerberos.cnf"
+#line 336 "./asn1/kerberos/kerberos.cnf"
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
switch(private_data->ad_type){
@@ -2836,7 +2836,7 @@ static const value_string kerberos_ADDR_TYPE_vals[] = {
static int
dissect_kerberos_ADDR_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 350 "../../asn1/kerberos/kerberos.cnf"
+#line 350 "./asn1/kerberos/kerberos.cnf"
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->addr_type));
@@ -2851,7 +2851,7 @@ dissect_kerberos_ADDR_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_kerberos_T_address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 172 "../../asn1/kerberos/kerberos.cnf"
+#line 172 "./asn1/kerberos/kerberos.cnf"
gint8 appclass;
gboolean pc;
gint32 tag;
@@ -2984,7 +2984,7 @@ static const value_string kerberos_MESSAGE_TYPE_vals[] = {
static int
dissect_kerberos_MESSAGE_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 66 "../../asn1/kerberos/kerberos.cnf"
+#line 66 "./asn1/kerberos/kerberos.cnf"
guint32 msgtype;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2993,7 +2993,7 @@ guint32 msgtype;
-#line 71 "../../asn1/kerberos/kerberos.cnf"
+#line 71 "./asn1/kerberos/kerberos.cnf"
if (gbl_do_col_info) {
col_add_str(actx->pinfo->cinfo, COL_INFO,
val_to_str(msgtype, krb5_msg_types,
@@ -3055,14 +3055,14 @@ static const value_string kerberos_PADATA_TYPE_vals[] = {
static int
dissect_kerberos_PADATA_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 119 "../../asn1/kerberos/kerberos.cnf"
+#line 119 "./asn1/kerberos/kerberos.cnf"
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->padata_type));
-#line 122 "../../asn1/kerberos/kerberos.cnf"
+#line 122 "./asn1/kerberos/kerberos.cnf"
if(tree){
proto_item_append_text(tree, " %s",
val_to_str(private_data->padata_type, krb5_preauthentication_types,
@@ -3077,7 +3077,7 @@ dissect_kerberos_PADATA_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_kerberos_T_padata_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 129 "../../asn1/kerberos/kerberos.cnf"
+#line 129 "./asn1/kerberos/kerberos.cnf"
proto_tree *sub_tree=tree;
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
@@ -3204,7 +3204,7 @@ dissect_kerberos_SEQUENCE_OF_ENCTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_kerberos_T_encryptedAuthorizationData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 235 "../../asn1/kerberos/kerberos.cnf"
+#line 235 "./asn1/kerberos/kerberos.cnf"
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authenticator_data);
#else
@@ -3267,7 +3267,7 @@ static const ber_sequence_t KDC_REQ_BODY_sequence[] = {
static int
dissect_kerberos_KDC_REQ_BODY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 354 "../../asn1/kerberos/kerberos.cnf"
+#line 354 "./asn1/kerberos/kerberos.cnf"
conversation_t *conversation;
/*
@@ -3328,7 +3328,7 @@ dissect_kerberos_AS_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_kerberos_T_encryptedKDCREPData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 243 "../../asn1/kerberos/kerberos.cnf"
+#line 243 "./asn1/kerberos/kerberos.cnf"
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KDC_REP_data);
#else
@@ -3458,7 +3458,7 @@ dissect_kerberos_AP_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_kerberos_T_encryptedAPREPData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 259 "../../asn1/kerberos/kerberos.cnf"
+#line 259 "./asn1/kerberos/kerberos.cnf"
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_AP_REP_data);
#else
@@ -3519,7 +3519,7 @@ dissect_kerberos_AP_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_kerberos_T_kRB_SAFE_BODY_user_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 377 "../../asn1/kerberos/kerberos.cnf"
+#line 377 "./asn1/kerberos/kerberos.cnf"
tvbuff_t *new_tvb;
offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &new_tvb);
if (new_tvb) {
@@ -3581,7 +3581,7 @@ dissect_kerberos_KRB_SAFE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_kerberos_T_encryptedKrbPrivData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 267 "../../asn1/kerberos/kerberos.cnf"
+#line 267 "./asn1/kerberos/kerberos.cnf"
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PRIV_data);
#else
@@ -3642,7 +3642,7 @@ dissect_kerberos_KRB_PRIV(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_kerberos_T_encryptedKrbCredData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 275 "../../asn1/kerberos/kerberos.cnf"
+#line 275 "./asn1/kerberos/kerberos.cnf"
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_CRED_data);
#else
@@ -3841,7 +3841,7 @@ dissect_kerberos_EncAPRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_kerberos_T_encKrbPrivPart_user_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 384 "../../asn1/kerberos/kerberos.cnf"
+#line 384 "./asn1/kerberos/kerberos.cnf"
tvbuff_t *new_tvb;
offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &new_tvb);
if (new_tvb) {
@@ -4052,14 +4052,14 @@ static const value_string kerberos_ERROR_CODE_vals[] = {
static int
dissect_kerberos_ERROR_CODE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 84 "../../asn1/kerberos/kerberos.cnf"
+#line 84 "./asn1/kerberos/kerberos.cnf"
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&krb5_errorcode);
-#line 87 "../../asn1/kerberos/kerberos.cnf"
+#line 87 "./asn1/kerberos/kerberos.cnf"
if(krb5_errorcode) {
col_add_fstr(actx->pinfo->cinfo, COL_INFO,
"KRB Error: %s",
@@ -4076,7 +4076,7 @@ dissect_kerberos_ERROR_CODE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_kerberos_T_e_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 97 "../../asn1/kerberos/kerberos.cnf"
+#line 97 "./asn1/kerberos/kerberos.cnf"
switch(krb5_errorcode){
case KRB5_ET_KRB5KDC_ERR_BADOPTION:
case KRB5_ET_KRB5KDC_ERR_CLIENT_REVOKED:
@@ -4176,7 +4176,7 @@ dissect_kerberos_Applications(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_kerberos_T_pA_ENC_TIMESTAMP_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 251 "../../asn1/kerberos/kerberos.cnf"
+#line 251 "./asn1/kerberos/kerberos.cnf"
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PA_ENC_TIMESTAMP);
#else
@@ -4342,7 +4342,7 @@ dissect_kerberos_ChangePasswdData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
/*--- End of included file: packet-kerberos-fn.c ---*/
-#line 1986 "../../asn1/kerberos/packet-kerberos-template.c"
+#line 1986 "./asn1/kerberos/packet-kerberos-template.c"
/* Make wrappers around exported functions for now */
int
@@ -4725,7 +4725,7 @@ void proto_register_kerberos(void) {
/*--- Included file: packet-kerberos-hfarr.c ---*/
-#line 1 "../../asn1/kerberos/packet-kerberos-hfarr.c"
+#line 1 "./asn1/kerberos/packet-kerberos-hfarr.c"
{ &hf_kerberos_ticket,
{ "ticket", "kerberos.ticket_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5396,7 +5396,7 @@ void proto_register_kerberos(void) {
NULL, HFILL }},
/*--- End of included file: packet-kerberos-hfarr.c ---*/
-#line 2367 "../../asn1/kerberos/packet-kerberos-template.c"
+#line 2367 "./asn1/kerberos/packet-kerberos-template.c"
};
/* List of subtrees */
@@ -5414,7 +5414,7 @@ void proto_register_kerberos(void) {
&ett_krb_pac_client_info_type,
/*--- Included file: packet-kerberos-ettarr.c ---*/
-#line 1 "../../asn1/kerberos/packet-kerberos-ettarr.c"
+#line 1 "./asn1/kerberos/packet-kerberos-ettarr.c"
&ett_kerberos_Applications,
&ett_kerberos_PrincipalName,
&ett_kerberos_SEQUENCE_OF_KerberosString,
@@ -5474,7 +5474,7 @@ void proto_register_kerberos(void) {
&ett_kerberos_ChangePasswdData,
/*--- End of included file: packet-kerberos-ettarr.c ---*/
-#line 2383 "../../asn1/kerberos/packet-kerberos-template.c"
+#line 2383 "./asn1/kerberos/packet-kerberos-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-kerberos.h b/epan/dissectors/packet-kerberos.h
index a6ff8a2a50..663c12c8c9 100644
--- a/epan/dissectors/packet-kerberos.h
+++ b/epan/dissectors/packet-kerberos.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-kerberos.h */
-/* ../../tools/asn2wrs.py -b -p kerberos -c ./kerberos.cnf -s ./packet-kerberos-template -D . -O ../../epan/dissectors KerberosV5Spec2.asn k5.asn RFC3244.asn */
+/* asn2wrs.py -b -p kerberos -c ./kerberos.cnf -s ./packet-kerberos-template -D . -O ../.. KerberosV5Spec2.asn k5.asn RFC3244.asn */
/* Input file: packet-kerberos-template.h */
-#line 1 "../../asn1/kerberos/packet-kerberos-template.h"
+#line 1 "./asn1/kerberos/packet-kerberos-template.h"
/* packet-kerberos.h
* Routines for kerberos packet dissection
* Copyright 2007, Anders Broman <anders.broman@ericsson.com>
@@ -146,11 +146,11 @@ void read_keytab_file_from_preferences(void);
/*--- Included file: packet-kerberos-exp.h ---*/
-#line 1 "../../asn1/kerberos/packet-kerberos-exp.h"
+#line 1 "./asn1/kerberos/packet-kerberos-exp.h"
int dissect_kerberos_ChangePasswdData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-kerberos-exp.h ---*/
-#line 140 "../../asn1/kerberos/packet-kerberos-template.h"
+#line 140 "./asn1/kerberos/packet-kerberos-template.h"
#ifdef __cplusplus
}
diff --git a/epan/dissectors/packet-lcsap.c b/epan/dissectors/packet-lcsap.c
index 955ea5a7ad..e3d22f2403 100644
--- a/epan/dissectors/packet-lcsap.c
+++ b/epan/dissectors/packet-lcsap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lcsap.c */
-/* ../../tools/asn2wrs.py -p lcsap -c ./lcsap.cnf -s ./packet-lcsap-template -D . -O ../../epan/dissectors LCS-AP-CommonDataTypes.asn LCS-AP-Constants.asn LCS-AP-Containers.asn LCS-AP-IEs.asn LCS-AP-PDU-Contents.asn LCS-AP-PDU-Descriptions.asn */
+/* asn2wrs.py -p lcsap -c ./lcsap.cnf -s ./packet-lcsap-template -D . -O ../.. LCS-AP-CommonDataTypes.asn LCS-AP-Constants.asn LCS-AP-Containers.asn LCS-AP-IEs.asn LCS-AP-PDU-Contents.asn LCS-AP-PDU-Descriptions.asn */
/* Input file: packet-lcsap-template.c */
-#line 1 "../../asn1/lcsap/packet-lcsap-template.c"
+#line 1 "./asn1/lcsap/packet-lcsap-template.c"
/* packet-lcsap.c
* Routines for LCS-AP packet dissembly.
*
@@ -66,7 +66,7 @@ static dissector_handle_t lppa_handle;
#define SCTP_PORT_LCSAP 9082
/*--- Included file: packet-lcsap-val.h ---*/
-#line 1 "../../asn1/lcsap/packet-lcsap-val.h"
+#line 1 "./asn1/lcsap/packet-lcsap-val.h"
#define max_No_Of_Points 15
#define max_Set 9
#define max_GNSS_Set 9
@@ -108,7 +108,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-lcsap-val.h ---*/
-#line 60 "../../asn1/lcsap/packet-lcsap-template.c"
+#line 60 "./asn1/lcsap/packet-lcsap-template.c"
/* Initialize the protocol and registered fields */
static int proto_lcsap = -1;
@@ -120,7 +120,7 @@ static int hf_lcsap_gnss_id = -1;
static int hf_lcsap_gnss_pos_usage = -1;
/*--- Included file: packet-lcsap-hf.c ---*/
-#line 1 "../../asn1/lcsap/packet-lcsap-hf.c"
+#line 1 "./asn1/lcsap/packet-lcsap-hf.c"
static int hf_lcsap_APDU_PDU = -1; /* APDU */
static int hf_lcsap_Accuracy_Fulfillment_Indicator_PDU = -1; /* Accuracy_Fulfillment_Indicator */
static int hf_lcsap_lcsap_Correlation_ID_PDU = -1; /* Correlation_ID */
@@ -231,7 +231,7 @@ static int hf_lcsap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
static int hf_lcsap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-lcsap-hf.c ---*/
-#line 70 "../../asn1/lcsap/packet-lcsap-template.c"
+#line 70 "./asn1/lcsap/packet-lcsap-template.c"
/* Initialize the subtree pointers */
static int ett_lcsap = -1;
@@ -240,7 +240,7 @@ static int ett_lcsap_imsi = -1;
/*--- Included file: packet-lcsap-ett.c ---*/
-#line 1 "../../asn1/lcsap/packet-lcsap-ett.c"
+#line 1 "./asn1/lcsap/packet-lcsap-ett.c"
static gint ett_lcsap_ProtocolIE_Container = -1;
static gint ett_lcsap_ProtocolIE_Field = -1;
static gint ett_lcsap_ProtocolExtensionContainer = -1;
@@ -288,7 +288,7 @@ static gint ett_lcsap_SuccessfulOutcome = -1;
static gint ett_lcsap_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-lcsap-ett.c ---*/
-#line 77 "../../asn1/lcsap/packet-lcsap-template.c"
+#line 77 "./asn1/lcsap/packet-lcsap-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -403,7 +403,7 @@ static const value_string lcsap_gnss_pos_usage_vals[] = {
/*--- Included file: packet-lcsap-fn.c ---*/
-#line 1 "../../asn1/lcsap/packet-lcsap-fn.c"
+#line 1 "./asn1/lcsap/packet-lcsap-fn.c"
static const value_string lcsap_Criticality_vals[] = {
{ 0, "reject" },
@@ -437,7 +437,7 @@ dissect_lcsap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 98 "../../asn1/lcsap/lcsap.cnf"
+#line 98 "./asn1/lcsap/lcsap.cnf"
{
guint8 tmp = tvb_get_guint8(tvb, 0);
@@ -501,7 +501,7 @@ dissect_lcsap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &ProtocolIE_ID, FALSE);
-#line 50 "../../asn1/lcsap/lcsap.cnf"
+#line 50 "./asn1/lcsap/lcsap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lcsap_ProtocolIE_ID_vals), "unknown (%d)"));
}
@@ -591,7 +591,7 @@ dissect_lcsap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_lcsap_APDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 71 "../../asn1/lcsap/lcsap.cnf"
+#line 71 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
@@ -725,7 +725,7 @@ dissect_lcsap_Correlation_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lcsap_DegreesLatitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 198 "../../asn1/lcsap/lcsap.cnf"
+#line 198 "./asn1/lcsap/lcsap.cnf"
gint32 degrees;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -742,7 +742,7 @@ dissect_lcsap_DegreesLatitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_lcsap_DegreesLongitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 206 "../../asn1/lcsap/lcsap.cnf"
+#line 206 "./asn1/lcsap/lcsap.cnf"
gint32 degrees;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -760,7 +760,7 @@ dissect_lcsap_DegreesLongitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_lcsap_PLMN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 150 "../../asn1/lcsap/lcsap.cnf"
+#line 150 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -830,7 +830,7 @@ dissect_lcsap_Geographical_Coordinates(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_lcsap_Uncertainty_Code(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 190 "../../asn1/lcsap/lcsap.cnf"
+#line 190 "./asn1/lcsap/lcsap.cnf"
guint32 uncertainty_code;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -1124,7 +1124,7 @@ dissect_lcsap_Global_eNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lcsap_GNSS_Positioning_Method_And_Usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 176 "../../asn1/lcsap/lcsap.cnf"
+#line 176 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -1161,7 +1161,7 @@ dissect_lcsap_GNSS_Positioning_Data_Set(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_lcsap_Horizontal_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 224 "../../asn1/lcsap/lcsap.cnf"
+#line 224 "./asn1/lcsap/lcsap.cnf"
guint32 uncertainty_code;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 127U, &uncertainty_code, FALSE);
@@ -1169,7 +1169,7 @@ dissect_lcsap_Horizontal_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
-#line 228 "../../asn1/lcsap/lcsap.cnf"
+#line 228 "./asn1/lcsap/lcsap.cnf"
proto_item_append_text(actx->created_item, " (%.1f m)", 10 * (pow(1.1, (double)uncertainty_code) - 1));
@@ -1321,7 +1321,7 @@ dissect_lcsap_Horizontal_With_Vertical_Velocity_And_Uncertainty(tvbuff_t *tvb _U
static int
dissect_lcsap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 214 "../../asn1/lcsap/lcsap.cnf"
+#line 214 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *imsi_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3, 8, FALSE, &imsi_tvb);
@@ -1528,7 +1528,7 @@ dissect_lcsap_Vertical_Requested(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_lcsap_Vertical_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 231 "../../asn1/lcsap/lcsap.cnf"
+#line 231 "./asn1/lcsap/lcsap.cnf"
guint32 vertical_uncertainty;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 127U, &vertical_uncertainty, FALSE);
@@ -1536,7 +1536,7 @@ dissect_lcsap_Vertical_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
-#line 235 "../../asn1/lcsap/lcsap.cnf"
+#line 235 "./asn1/lcsap/lcsap.cnf"
proto_item_append_text(actx->created_item, " (%.1f m)", 45 * (pow(1.025, (double)vertical_uncertainty) - 1));
@@ -1642,7 +1642,7 @@ dissect_lcsap_Payload_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_lcsap_Positioning_Method_And_Usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 164 "../../asn1/lcsap/lcsap.cnf"
+#line 164 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -1844,7 +1844,7 @@ static const per_sequence_t Connectionless_Information_sequence[] = {
static int
dissect_lcsap_Connectionless_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "../../asn1/lcsap/lcsap.cnf"
+#line 67 "./asn1/lcsap/lcsap.cnf"
PayloadType = 1; /* LPPa */
@@ -2229,7 +2229,7 @@ static int dissect_LCS_AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-lcsap-fn.c ---*/
-#line 190 "../../asn1/lcsap/packet-lcsap-template.c"
+#line 190 "./asn1/lcsap/packet-lcsap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -2292,7 +2292,7 @@ proto_reg_handoff_lcsap(void)
Initialized=TRUE;
/*--- Included file: packet-lcsap-dis-tab.c ---*/
-#line 1 "../../asn1/lcsap/packet-lcsap-dis-tab.c"
+#line 1 "./asn1/lcsap/packet-lcsap-dis-tab.c"
dissector_add_uint("lcsap.ies", id_Accuracy_Fulfillment_Indicator, create_dissector_handle(dissect_Accuracy_Fulfillment_Indicator_PDU, proto_lcsap));
dissector_add_uint("lcsap.ies", id_APDU, create_dissector_handle(dissect_APDU_PDU, proto_lcsap));
dissector_add_uint("lcsap.ies", id_Correlation_ID, create_dissector_handle(dissect_lcsap_Correlation_ID_PDU, proto_lcsap));
@@ -2329,7 +2329,7 @@ proto_reg_handoff_lcsap(void)
/*--- End of included file: packet-lcsap-dis-tab.c ---*/
-#line 251 "../../asn1/lcsap/packet-lcsap-template.c"
+#line 251 "./asn1/lcsap/packet-lcsap-template.c"
} else {
if (SctpPort != 0) {
dissector_delete_uint("sctp.port", SctpPort, lcsap_handle);
@@ -2376,7 +2376,7 @@ void proto_register_lcsap(void) {
/*--- Included file: packet-lcsap-hfarr.c ---*/
-#line 1 "../../asn1/lcsap/packet-lcsap-hfarr.c"
+#line 1 "./asn1/lcsap/packet-lcsap-hfarr.c"
{ &hf_lcsap_APDU_PDU,
{ "APDU", "lcsap.APDU",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2811,7 +2811,7 @@ void proto_register_lcsap(void) {
"UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-lcsap-hfarr.c ---*/
-#line 296 "../../asn1/lcsap/packet-lcsap-template.c"
+#line 296 "./asn1/lcsap/packet-lcsap-template.c"
};
/* List of subtrees */
@@ -2821,7 +2821,7 @@ void proto_register_lcsap(void) {
&ett_lcsap_imsi,
/*--- Included file: packet-lcsap-ettarr.c ---*/
-#line 1 "../../asn1/lcsap/packet-lcsap-ettarr.c"
+#line 1 "./asn1/lcsap/packet-lcsap-ettarr.c"
&ett_lcsap_ProtocolIE_Container,
&ett_lcsap_ProtocolIE_Field,
&ett_lcsap_ProtocolExtensionContainer,
@@ -2869,7 +2869,7 @@ void proto_register_lcsap(void) {
&ett_lcsap_UnsuccessfulOutcome,
/*--- End of included file: packet-lcsap-ettarr.c ---*/
-#line 304 "../../asn1/lcsap/packet-lcsap-template.c"
+#line 304 "./asn1/lcsap/packet-lcsap-template.c"
};
module_t *lcsap_module;
diff --git a/epan/dissectors/packet-lcsap.h b/epan/dissectors/packet-lcsap.h
index d8131c14db..62ebe64598 100644
--- a/epan/dissectors/packet-lcsap.h
+++ b/epan/dissectors/packet-lcsap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lcsap.h */
-/* ../../tools/asn2wrs.py -p lcsap -c ./lcsap.cnf -s ./packet-lcsap-template -D . -O ../../epan/dissectors LCS-AP-CommonDataTypes.asn LCS-AP-Constants.asn LCS-AP-Containers.asn LCS-AP-IEs.asn LCS-AP-PDU-Contents.asn LCS-AP-PDU-Descriptions.asn */
+/* asn2wrs.py -p lcsap -c ./lcsap.cnf -s ./packet-lcsap-template -D . -O ../.. LCS-AP-CommonDataTypes.asn LCS-AP-Constants.asn LCS-AP-Containers.asn LCS-AP-IEs.asn LCS-AP-PDU-Contents.asn LCS-AP-PDU-Descriptions.asn */
/* Input file: packet-lcsap-template.h */
-#line 1 "../../asn1/lcsap/packet-lcsap-template.h"
+#line 1 "./asn1/lcsap/packet-lcsap-template.h"
/* packet-lcsap.c
* Routines for LCS-AP packet dissembly.
*
@@ -37,10 +37,10 @@
/*--- Included file: packet-lcsap-exp.h ---*/
-#line 1 "../../asn1/lcsap/packet-lcsap-exp.h"
+#line 1 "./asn1/lcsap/packet-lcsap-exp.h"
int dissect_lcsap_Correlation_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-lcsap-exp.h ---*/
-#line 31 "../../asn1/lcsap/packet-lcsap-template.h"
+#line 31 "./asn1/lcsap/packet-lcsap-template.h"
#endif /* PACKET_LCSAP_H */
diff --git a/epan/dissectors/packet-ldap.c b/epan/dissectors/packet-ldap.c
index dc1c9541b0..7f89998d01 100644
--- a/epan/dissectors/packet-ldap.c
+++ b/epan/dissectors/packet-ldap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ldap.c */
-/* ../../tools/asn2wrs.py -b -p ldap -c ./ldap.cnf -s ./packet-ldap-template -D . -O ../../epan/dissectors Lightweight-Directory-Access-Protocol-V3.asn */
+/* asn2wrs.py -b -p ldap -c ./ldap.cnf -s ./packet-ldap-template -D . -O ../.. Lightweight-Directory-Access-Protocol-V3.asn */
/* Input file: packet-ldap-template.c */
-#line 1 "../../asn1/ldap/packet-ldap-template.c"
+#line 1 "./asn1/ldap/packet-ldap-template.c"
/* packet-ldap-template.c
* Routines for ldap packet dissection
*
@@ -201,7 +201,7 @@ static int hf_ldap_gssapi_encrypted_payload = -1;
/*--- Included file: packet-ldap-hf.c ---*/
-#line 1 "../../asn1/ldap/packet-ldap-hf.c"
+#line 1 "./asn1/ldap/packet-ldap-hf.c"
static int hf_ldap_SearchControlValue_PDU = -1; /* SearchControlValue */
static int hf_ldap_SortKeyList_PDU = -1; /* SortKeyList */
static int hf_ldap_SortResult_PDU = -1; /* SortResult */
@@ -345,7 +345,7 @@ static int hf_ldap_graceAuthNsRemaining = -1; /* INTEGER_0_maxInt */
static int hf_ldap_error = -1; /* T_error */
/*--- End of included file: packet-ldap-hf.c ---*/
-#line 195 "../../asn1/ldap/packet-ldap-template.c"
+#line 195 "./asn1/ldap/packet-ldap-template.c"
/* Initialize the subtree pointers */
static gint ett_ldap = -1;
@@ -359,7 +359,7 @@ static gint ett_ldap_DirSyncFlagsSubEntry = -1;
/*--- Included file: packet-ldap-ett.c ---*/
-#line 1 "../../asn1/ldap/packet-ldap-ett.c"
+#line 1 "./asn1/ldap/packet-ldap-ett.c"
static gint ett_ldap_LDAPMessage = -1;
static gint ett_ldap_ProtocolOp = -1;
static gint ett_ldap_AttributeDescriptionList = -1;
@@ -417,7 +417,7 @@ static gint ett_ldap_PasswordPolicyResponseValue = -1;
static gint ett_ldap_T_warning = -1;
/*--- End of included file: packet-ldap-ett.c ---*/
-#line 207 "../../asn1/ldap/packet-ldap-template.c"
+#line 207 "./asn1/ldap/packet-ldap-template.c"
static expert_field ei_ldap_exceeded_filter_length = EI_INIT;
static expert_field ei_ldap_too_many_filter_elements = EI_INIT;
@@ -1132,7 +1132,7 @@ ldap_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
/*--- Included file: packet-ldap-fn.c ---*/
-#line 1 "../../asn1/ldap/packet-ldap-fn.c"
+#line 1 "./asn1/ldap/packet-ldap-fn.c"
/*--- Cyclic dependencies ---*/
/* Filter -> Filter/and -> Filter/and/_item -> Filter */
@@ -1145,7 +1145,7 @@ static int dissect_ldap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_ldap_MessageID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "../../asn1/ldap/ldap.cnf"
+#line 90 "./asn1/ldap/ldap.cnf"
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&MessageID);
@@ -1172,7 +1172,7 @@ dissect_ldap_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_ldap_LDAPString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 300 "../../asn1/ldap/ldap.cnf"
+#line 300 "./asn1/ldap/ldap.cnf"
tvbuff_t *parameter_tvb = NULL;
const char *ldapstring = NULL;
gchar *sc = NULL; /* semi-colon pointer */
@@ -1280,7 +1280,7 @@ dissect_ldap_LDAPDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_ldap_Simple(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 147 "../../asn1/ldap/ldap.cnf"
+#line 147 "./asn1/ldap/ldap.cnf"
ldap_conv_info_t *ldap_info;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -1299,7 +1299,7 @@ ldap_conv_info_t *ldap_info;
static int
dissect_ldap_Mechanism(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 155 "../../asn1/ldap/ldap.cnf"
+#line 155 "./asn1/ldap/ldap.cnf"
ldap_conv_info_t *ldap_info;
tvbuff_t *parameter_tvb;
@@ -1344,7 +1344,7 @@ char *mechanism = NULL;
static int
dissect_ldap_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 189 "../../asn1/ldap/ldap.cnf"
+#line 189 "./asn1/ldap/ldap.cnf"
tvbuff_t *parameter_tvb;
ldap_conv_info_t *ldap_info;
@@ -1411,7 +1411,7 @@ dissect_ldap_SaslCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_ldap_T_ntlmsspNegotiate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 689 "../../asn1/ldap/ldap.cnf"
+#line 689 "./asn1/ldap/ldap.cnf"
/* make sure the protocol op comes first */
ldap_do_protocolop(actx->pinfo);
@@ -1427,7 +1427,7 @@ dissect_ldap_T_ntlmsspNegotiate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_ldap_T_ntlmsspAuth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 696 "../../asn1/ldap/ldap.cnf"
+#line 696 "./asn1/ldap/ldap.cnf"
/* make sure the protocol op comes first */
ldap_do_protocolop(actx->pinfo);
@@ -1458,7 +1458,7 @@ static const ber_choice_t AuthenticationChoice_choice[] = {
static int
dissect_ldap_AuthenticationChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 486 "../../asn1/ldap/ldap.cnf"
+#line 486 "./asn1/ldap/ldap.cnf"
gint branch = -1;
gint auth = -1;
const gchar *valstr;
@@ -1565,7 +1565,7 @@ static const value_string ldap_BindResponse_resultCode_vals[] = {
static int
dissect_ldap_BindResponse_resultCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 420 "../../asn1/ldap/ldap.cnf"
+#line 420 "./asn1/ldap/ldap.cnf"
const gchar *valstr;
@@ -1591,7 +1591,7 @@ dissect_ldap_BindResponse_resultCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_ldap_T_bindResponse_matchedDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 703 "../../asn1/ldap/ldap.cnf"
+#line 703 "./asn1/ldap/ldap.cnf"
tvbuff_t *new_tvb=NULL;
offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_ldap_matchedDN, &new_tvb);
@@ -1628,7 +1628,7 @@ dissect_ldap_LDAPURL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
-#line 53 "../../asn1/ldap/ldap.cnf"
+#line 53 "./asn1/ldap/ldap.cnf"
PROTO_ITEM_SET_URL(actx->created_item);
@@ -1652,7 +1652,7 @@ dissect_ldap_Referral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_ldap_ServerSaslCreds(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 230 "../../asn1/ldap/ldap.cnf"
+#line 230 "./asn1/ldap/ldap.cnf"
tvbuff_t *parameter_tvb = NULL;
ldap_conv_info_t *ldap_info;
@@ -1770,7 +1770,7 @@ dissect_ldap_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_ldap_UnbindRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 508 "../../asn1/ldap/ldap.cnf"
+#line 508 "./asn1/ldap/ldap.cnf"
implicit_tag = TRUE; /* correct problem with asn2wrs */
@@ -1800,7 +1800,7 @@ static const value_string ldap_T_scope_vals[] = {
static int
dissect_ldap_T_scope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 388 "../../asn1/ldap/ldap.cnf"
+#line 388 "./asn1/ldap/ldap.cnf"
guint32 scope = 0xffff;
const gchar *valstr;
@@ -1866,7 +1866,7 @@ static int
dissect_ldap_T_and_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ldap_Filter(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 554 "../../asn1/ldap/ldap.cnf"
+#line 554 "./asn1/ldap/ldap.cnf"
if(and_filter_string){
and_filter_string=wmem_strdup_printf(wmem_packet_scope(), "(&%s%s)",and_filter_string,Filter_string);
} else {
@@ -1884,7 +1884,7 @@ static const ber_sequence_t T_and_set_of[1] = {
static int
dissect_ldap_T_and(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 561 "../../asn1/ldap/ldap.cnf"
+#line 561 "./asn1/ldap/ldap.cnf"
proto_tree *tr=NULL;
proto_item *it=NULL;
const char *old_and_filter_string=and_filter_string;
@@ -1915,7 +1915,7 @@ static int
dissect_ldap_T_or_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ldap_Filter(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 579 "../../asn1/ldap/ldap.cnf"
+#line 579 "./asn1/ldap/ldap.cnf"
if(or_filter_string){
or_filter_string=wmem_strdup_printf(wmem_packet_scope(), "(|%s%s)",or_filter_string,Filter_string);
} else {
@@ -1934,7 +1934,7 @@ static const ber_sequence_t T_or_set_of[1] = {
static int
dissect_ldap_T_or(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 587 "../../asn1/ldap/ldap.cnf"
+#line 587 "./asn1/ldap/ldap.cnf"
proto_tree *tr;
proto_item *it;
const char *old_or_filter_string=or_filter_string;
@@ -1963,7 +1963,7 @@ static int
dissect_ldap_T_not(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ldap_Filter(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 606 "../../asn1/ldap/ldap.cnf"
+#line 606 "./asn1/ldap/ldap.cnf"
Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(!%s)",string_or_null(Filter_string));
@@ -2001,7 +2001,7 @@ static int
dissect_ldap_T_equalityMatch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ldap_AttributeValueAssertion(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 531 "../../asn1/ldap/ldap.cnf"
+#line 531 "./asn1/ldap/ldap.cnf"
Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s=%s)",
string_or_null(attributedesc_string),
string_or_null(ldapvalue_string));
@@ -2032,7 +2032,7 @@ dissect_ldap_T_substringFilter_substrings_item(gboolean implicit_tag _U_, tvbuff
T_substringFilter_substrings_item_choice, hf_index, ett_ldap_T_substringFilter_substrings_item,
NULL);
-#line 632 "../../asn1/ldap/ldap.cnf"
+#line 632 "./asn1/ldap/ldap.cnf"
if (substring_item_final) {
substring_value=wmem_strdup_printf(wmem_packet_scope(), "%s%s",
(substring_value?substring_value:"*"),
@@ -2072,7 +2072,7 @@ static const ber_sequence_t SubstringFilter_sequence[] = {
static int
dissect_ldap_SubstringFilter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 646 "../../asn1/ldap/ldap.cnf"
+#line 646 "./asn1/ldap/ldap.cnf"
proto_tree *tr;
proto_item *it;
const char *old_substring_value=substring_value;
@@ -2106,7 +2106,7 @@ static int
dissect_ldap_T_greaterOrEqual(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ldap_AttributeValueAssertion(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 537 "../../asn1/ldap/ldap.cnf"
+#line 537 "./asn1/ldap/ldap.cnf"
Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s>=%s)",
string_or_null(attributedesc_string),
string_or_null(ldapvalue_string));
@@ -2122,7 +2122,7 @@ static int
dissect_ldap_T_lessOrEqual(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ldap_AttributeValueAssertion(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 543 "../../asn1/ldap/ldap.cnf"
+#line 543 "./asn1/ldap/ldap.cnf"
Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s<=%s)",
string_or_null(attributedesc_string),
string_or_null(ldapvalue_string));
@@ -2138,7 +2138,7 @@ static int
dissect_ldap_T_present(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ldap_AttributeDescription(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 603 "../../asn1/ldap/ldap.cnf"
+#line 603 "./asn1/ldap/ldap.cnf"
Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s=*)",string_or_null(Filter_string));
@@ -2151,7 +2151,7 @@ static int
dissect_ldap_T_approxMatch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ldap_AttributeValueAssertion(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 549 "../../asn1/ldap/ldap.cnf"
+#line 549 "./asn1/ldap/ldap.cnf"
Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s~=%s)",
string_or_null(attributedesc_string),
string_or_null(ldapvalue_string));
@@ -2173,7 +2173,7 @@ dissect_ldap_MatchingRuleId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ldap_T_dnAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 609 "../../asn1/ldap/ldap.cnf"
+#line 609 "./asn1/ldap/ldap.cnf"
gboolean val;
offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, &val);
@@ -2208,7 +2208,7 @@ dissect_ldap_MatchingRuleAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_ldap_T_extensibleMatch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 618 "../../asn1/ldap/ldap.cnf"
+#line 618 "./asn1/ldap/ldap.cnf"
attr_type=NULL;
matching_rule_string=NULL;
ldapvalue_string=NULL;
@@ -2217,7 +2217,7 @@ dissect_ldap_T_extensibleMatch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
offset = dissect_ldap_MatchingRuleAssertion(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 624 "../../asn1/ldap/ldap.cnf"
+#line 624 "./asn1/ldap/ldap.cnf"
Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s:%s%s%s=%s)",
(attr_type?attr_type:""),
(matching_rule_dnattr?"dn:":""),
@@ -2260,7 +2260,7 @@ static const ber_choice_t Filter_choice[] = {
static int
dissect_ldap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 667 "../../asn1/ldap/ldap.cnf"
+#line 667 "./asn1/ldap/ldap.cnf"
proto_tree *tr;
proto_item *it;
attributedesc_string=NULL;
@@ -2294,7 +2294,7 @@ dissect_ldap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_ldap_T_filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 520 "../../asn1/ldap/ldap.cnf"
+#line 520 "./asn1/ldap/ldap.cnf"
Filter_string=NULL;
Filter_elements = 0;
Filter_length = 0;
@@ -2302,7 +2302,7 @@ dissect_ldap_T_filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
offset = dissect_ldap_Filter(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 525 "../../asn1/ldap/ldap.cnf"
+#line 525 "./asn1/ldap/ldap.cnf"
Filter_string=NULL;
and_filter_string=NULL;
Filter_elements = 0;
@@ -2360,7 +2360,7 @@ dissect_ldap_SearchRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_ldap_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 450 "../../asn1/ldap/ldap.cnf"
+#line 450 "./asn1/ldap/ldap.cnf"
tvbuff_t *next_tvb = NULL;
gchar *string;
@@ -2520,7 +2520,7 @@ static const value_string ldap_T_resultCode_vals[] = {
static int
dissect_ldap_T_resultCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 404 "../../asn1/ldap/ldap.cnf"
+#line 404 "./asn1/ldap/ldap.cnf"
const gchar *valstr;
@@ -2587,7 +2587,7 @@ dissect_ldap_SEQUENCE_OF_LDAPURL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_ldap_SearchResultReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 796 "../../asn1/ldap/ldap.cnf"
+#line 796 "./asn1/ldap/ldap.cnf"
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 19, TRUE, dissect_ldap_SEQUENCE_OF_LDAPURL);
@@ -2864,7 +2864,7 @@ dissect_ldap_CompareResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_ldap_AbandonRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 803 "../../asn1/ldap/ldap.cnf"
+#line 803 "./asn1/ldap/ldap.cnf"
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 16, TRUE, dissect_ldap_MessageID);
@@ -2881,7 +2881,7 @@ dissect_ldap_AbandonRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ldap_LDAPOID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 56 "../../asn1/ldap/ldap.cnf"
+#line 56 "./asn1/ldap/ldap.cnf"
tvbuff_t *parameter_tvb;
const gchar *name;
@@ -2891,7 +2891,7 @@ dissect_ldap_LDAPOID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
-#line 64 "../../asn1/ldap/ldap.cnf"
+#line 64 "./asn1/ldap/ldap.cnf"
object_identifier_id = NULL;
@@ -2925,7 +2925,7 @@ dissect_ldap_LDAPOID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_ldap_T_requestValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 738 "../../asn1/ldap/ldap.cnf"
+#line 738 "./asn1/ldap/ldap.cnf"
if((object_identifier_id != NULL) && oid_has_dissector(object_identifier_id)) {
offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -3016,7 +3016,7 @@ static const value_string ldap_ExtendedResponse_resultCode_vals[] = {
static int
dissect_ldap_ExtendedResponse_resultCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 435 "../../asn1/ldap/ldap.cnf"
+#line 435 "./asn1/ldap/ldap.cnf"
guint32 resultCode;
ldap_conv_info_t *ldap_info = (ldap_conv_info_t *)actx->private_data;
@@ -3088,12 +3088,12 @@ dissect_ldap_ExtendedResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_ldap_T_intermediateResponse_responseValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 746 "../../asn1/ldap/ldap.cnf"
+#line 746 "./asn1/ldap/ldap.cnf"
const gchar *name;
-#line 750 "../../asn1/ldap/ldap.cnf"
+#line 750 "./asn1/ldap/ldap.cnf"
if(ldm_tree && object_identifier_id) {
proto_item_set_text(ldm_tree, "%s %s", "IntermediateResponse", object_identifier_id);
name = oid_resolved_from_string(wmem_packet_scope(), object_identifier_id);
@@ -3191,7 +3191,7 @@ static const ber_choice_t ProtocolOp_choice[] = {
static int
dissect_ldap_ProtocolOp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 98 "../../asn1/ldap/ldap.cnf"
+#line 98 "./asn1/ldap/ldap.cnf"
ldap_call_response_t *lcrp;
ldap_conv_info_t *ldap_info = (ldap_conv_info_t *)actx->private_data;
@@ -3202,7 +3202,7 @@ dissect_ldap_ProtocolOp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
ProtocolOp_choice, hf_index, ett_ldap_ProtocolOp,
&ProtocolOp);
-#line 104 "../../asn1/ldap/ldap.cnf"
+#line 104 "./asn1/ldap/ldap.cnf"
if (ProtocolOp == -1) {
return offset;
@@ -3262,7 +3262,7 @@ dissect_ldap_ControlType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_ldap_T_controlValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 719 "../../asn1/ldap/ldap.cnf"
+#line 719 "./asn1/ldap/ldap.cnf"
gint8 ber_class;
gboolean pc, ind;
gint32 tag;
@@ -3433,7 +3433,7 @@ dissect_ldap_SortResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_ldap_DirSyncFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 763 "../../asn1/ldap/ldap.cnf"
+#line 763 "./asn1/ldap/ldap.cnf"
gint8 ber_class;
gboolean pc;
gint32 tag;
@@ -3835,7 +3835,7 @@ static int dissect_PasswordPolicyResponseValue_PDU(tvbuff_t *tvb _U_, packet_inf
/*--- End of included file: packet-ldap-fn.c ---*/
-#line 920 "../../asn1/ldap/packet-ldap-template.c"
+#line 920 "./asn1/ldap/packet-ldap-template.c"
static int dissect_LDAPMessage_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, ldap_conv_info_t *ldap_info) {
int offset = 0;
@@ -5107,7 +5107,7 @@ void proto_register_ldap(void) {
/*--- Included file: packet-ldap-hfarr.c ---*/
-#line 1 "../../asn1/ldap/packet-ldap-hfarr.c"
+#line 1 "./asn1/ldap/packet-ldap-hfarr.c"
{ &hf_ldap_SearchControlValue_PDU,
{ "SearchControlValue", "ldap.SearchControlValue_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5674,7 +5674,7 @@ void proto_register_ldap(void) {
NULL, HFILL }},
/*--- End of included file: packet-ldap-hfarr.c ---*/
-#line 2190 "../../asn1/ldap/packet-ldap-template.c"
+#line 2190 "./asn1/ldap/packet-ldap-template.c"
};
/* List of subtrees */
@@ -5690,7 +5690,7 @@ void proto_register_ldap(void) {
/*--- Included file: packet-ldap-ettarr.c ---*/
-#line 1 "../../asn1/ldap/packet-ldap-ettarr.c"
+#line 1 "./asn1/ldap/packet-ldap-ettarr.c"
&ett_ldap_LDAPMessage,
&ett_ldap_ProtocolOp,
&ett_ldap_AttributeDescriptionList,
@@ -5748,7 +5748,7 @@ void proto_register_ldap(void) {
&ett_ldap_T_warning,
/*--- End of included file: packet-ldap-ettarr.c ---*/
-#line 2204 "../../asn1/ldap/packet-ldap-template.c"
+#line 2204 "./asn1/ldap/packet-ldap-template.c"
};
/* UAT for header fields */
static uat_field_t custom_attribute_types_uat_fields[] = {
@@ -5903,7 +5903,7 @@ proto_reg_handoff_ldap(void)
/*--- Included file: packet-ldap-dis-tab.c ---*/
-#line 1 "../../asn1/ldap/packet-ldap-dis-tab.c"
+#line 1 "./asn1/ldap/packet-ldap-dis-tab.c"
register_ber_oid_dissector("1.2.840.113556.1.4.319", dissect_SearchControlValue_PDU, proto_ldap, "pagedResultsControl");
register_ber_oid_dissector("1.2.840.113556.1.4.473", dissect_SortKeyList_PDU, proto_ldap, "sortKeyList");
register_ber_oid_dissector("1.2.840.113556.1.4.474", dissect_SortResult_PDU, proto_ldap, "sortResult");
@@ -5918,7 +5918,7 @@ proto_reg_handoff_ldap(void)
/*--- End of included file: packet-ldap-dis-tab.c ---*/
-#line 2357 "../../asn1/ldap/packet-ldap-template.c"
+#line 2357 "./asn1/ldap/packet-ldap-template.c"
}
diff --git a/epan/dissectors/packet-ldap.h b/epan/dissectors/packet-ldap.h
index cfd7ff8f7a..31d2373e6f 100644
--- a/epan/dissectors/packet-ldap.h
+++ b/epan/dissectors/packet-ldap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ldap.h */
-/* ../../tools/asn2wrs.py -b -p ldap -c ./ldap.cnf -s ./packet-ldap-template -D . -O ../../epan/dissectors Lightweight-Directory-Access-Protocol-V3.asn */
+/* asn2wrs.py -b -p ldap -c ./ldap.cnf -s ./packet-ldap-template -D . -O ../.. Lightweight-Directory-Access-Protocol-V3.asn */
/* Input file: packet-ldap-template.h */
-#line 1 "../../asn1/ldap/packet-ldap-template.h"
+#line 1 "./asn1/ldap/packet-ldap-template.h"
/* packet-ldap.h
* Routines for ros packet dissection
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
diff --git a/epan/dissectors/packet-logotypecertextn.c b/epan/dissectors/packet-logotypecertextn.c
index 4c9e01345b..431ce3c868 100644
--- a/epan/dissectors/packet-logotypecertextn.c
+++ b/epan/dissectors/packet-logotypecertextn.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-logotypecertextn.c */
-/* ../../tools/asn2wrs.py -b -p logotypecertextn -c ./logotypecertextn.cnf -s ./packet-logotypecertextn-template -D . -O ../../epan/dissectors LogotypeCertExtn.asn */
+/* asn2wrs.py -b -p logotypecertextn -c ./logotypecertextn.cnf -s ./packet-logotypecertextn-template -D . -O ../.. LogotypeCertExtn.asn */
/* Input file: packet-logotypecertextn-template.c */
-#line 1 "../../asn1/logotypecertextn/packet-logotypecertextn-template.c"
+#line 1 "./asn1/logotypecertextn/packet-logotypecertextn-template.c"
/* packet-logotypecertextn.c
* Routines for RFC3709 Logotype Certificate Extensions packet dissection
* Ronnie Sahlberg 2004
@@ -48,7 +48,7 @@ void proto_reg_handoff_logotypecertextn(void);
static int proto_logotypecertextn = -1;
/*--- Included file: packet-logotypecertextn-hf.c ---*/
-#line 1 "../../asn1/logotypecertextn/packet-logotypecertextn-hf.c"
+#line 1 "./asn1/logotypecertextn/packet-logotypecertextn-hf.c"
static int hf_logotypecertextn_LogotypeExtn_PDU = -1; /* LogotypeExtn */
static int hf_logotypecertextn_communityLogos = -1; /* SEQUENCE_OF_LogotypeInfo */
static int hf_logotypecertextn_communityLogos_item = -1; /* LogotypeInfo */
@@ -92,12 +92,12 @@ static int hf_logotypecertextn_hashAlg = -1; /* AlgorithmIdentifier */
static int hf_logotypecertextn_hashValue = -1; /* OCTET_STRING */
/*--- End of included file: packet-logotypecertextn-hf.c ---*/
-#line 42 "../../asn1/logotypecertextn/packet-logotypecertextn-template.c"
+#line 42 "./asn1/logotypecertextn/packet-logotypecertextn-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-logotypecertextn-ett.c ---*/
-#line 1 "../../asn1/logotypecertextn/packet-logotypecertextn-ett.c"
+#line 1 "./asn1/logotypecertextn/packet-logotypecertextn-ett.c"
static gint ett_logotypecertextn_LogotypeExtn = -1;
static gint ett_logotypecertextn_SEQUENCE_OF_LogotypeInfo = -1;
static gint ett_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo = -1;
@@ -119,12 +119,12 @@ static gint ett_logotypecertextn_T_refStructURI = -1;
static gint ett_logotypecertextn_HashAlgAndValue = -1;
/*--- End of included file: packet-logotypecertextn-ett.c ---*/
-#line 45 "../../asn1/logotypecertextn/packet-logotypecertextn-template.c"
+#line 45 "./asn1/logotypecertextn/packet-logotypecertextn-template.c"
/*--- Included file: packet-logotypecertextn-fn.c ---*/
-#line 1 "../../asn1/logotypecertextn/packet-logotypecertextn-fn.c"
+#line 1 "./asn1/logotypecertextn/packet-logotypecertextn-fn.c"
static int
@@ -182,7 +182,7 @@ dissect_logotypecertextn_T_logotypeURI_item(gboolean implicit_tag _U_, tvbuff_t
actx, tree, tvb, offset, hf_index,
NULL);
-#line 16 "../../asn1/logotypecertextn/logotypecertextn.cnf"
+#line 16 "./asn1/logotypecertextn/logotypecertextn.cnf"
PROTO_ITEM_SET_URL(actx->created_item);
@@ -382,7 +382,7 @@ dissect_logotypecertextn_T_refStructURI_item(gboolean implicit_tag _U_, tvbuff_t
actx, tree, tvb, offset, hf_index,
NULL);
-#line 19 "../../asn1/logotypecertextn/logotypecertextn.cnf"
+#line 19 "./asn1/logotypecertextn/logotypecertextn.cnf"
PROTO_ITEM_SET_URL(actx->created_item);
@@ -518,7 +518,7 @@ static int dissect_LogotypeExtn_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
/*--- End of included file: packet-logotypecertextn-fn.c ---*/
-#line 48 "../../asn1/logotypecertextn/packet-logotypecertextn-template.c"
+#line 48 "./asn1/logotypecertextn/packet-logotypecertextn-template.c"
/*--- proto_register_logotypecertextn ----------------------------------------------*/
@@ -528,7 +528,7 @@ void proto_register_logotypecertextn(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-logotypecertextn-hfarr.c ---*/
-#line 1 "../../asn1/logotypecertextn/packet-logotypecertextn-hfarr.c"
+#line 1 "./asn1/logotypecertextn/packet-logotypecertextn-hfarr.c"
{ &hf_logotypecertextn_LogotypeExtn_PDU,
{ "LogotypeExtn", "logotypecertextn.LogotypeExtn_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -695,14 +695,14 @@ void proto_register_logotypecertextn(void) {
"OCTET_STRING", HFILL }},
/*--- End of included file: packet-logotypecertextn-hfarr.c ---*/
-#line 56 "../../asn1/logotypecertextn/packet-logotypecertextn-template.c"
+#line 56 "./asn1/logotypecertextn/packet-logotypecertextn-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-logotypecertextn-ettarr.c ---*/
-#line 1 "../../asn1/logotypecertextn/packet-logotypecertextn-ettarr.c"
+#line 1 "./asn1/logotypecertextn/packet-logotypecertextn-ettarr.c"
&ett_logotypecertextn_LogotypeExtn,
&ett_logotypecertextn_SEQUENCE_OF_LogotypeInfo,
&ett_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo,
@@ -724,7 +724,7 @@ void proto_register_logotypecertextn(void) {
&ett_logotypecertextn_HashAlgAndValue,
/*--- End of included file: packet-logotypecertextn-ettarr.c ---*/
-#line 61 "../../asn1/logotypecertextn/packet-logotypecertextn-template.c"
+#line 61 "./asn1/logotypecertextn/packet-logotypecertextn-template.c"
};
/* Register protocol */
@@ -741,13 +741,13 @@ void proto_register_logotypecertextn(void) {
void proto_reg_handoff_logotypecertextn(void) {
/*--- Included file: packet-logotypecertextn-dis-tab.c ---*/
-#line 1 "../../asn1/logotypecertextn/packet-logotypecertextn-dis-tab.c"
+#line 1 "./asn1/logotypecertextn/packet-logotypecertextn-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.5.7.1.12", dissect_LogotypeExtn_PDU, proto_logotypecertextn, "id-pe-logotype");
register_ber_oid_dissector("1.3.6.1.5.5.7.20.1", dissect_LogotypeExtn_PDU, proto_logotypecertextn, "id-pe-logo-loyalty");
register_ber_oid_dissector("1.3.6.1.5.5.7.20.2", dissect_LogotypeExtn_PDU, proto_logotypecertextn, "id-pe-logo-background");
/*--- End of included file: packet-logotypecertextn-dis-tab.c ---*/
-#line 76 "../../asn1/logotypecertextn/packet-logotypecertextn-template.c"
+#line 76 "./asn1/logotypecertextn/packet-logotypecertextn-template.c"
}
diff --git a/epan/dissectors/packet-logotypecertextn.h b/epan/dissectors/packet-logotypecertextn.h
index 981799272f..a48e5d02ad 100644
--- a/epan/dissectors/packet-logotypecertextn.h
+++ b/epan/dissectors/packet-logotypecertextn.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-logotypecertextn.h */
-/* ../../tools/asn2wrs.py -b -p logotypecertextn -c ./logotypecertextn.cnf -s ./packet-logotypecertextn-template -D . -O ../../epan/dissectors LogotypeCertExtn.asn */
+/* asn2wrs.py -b -p logotypecertextn -c ./logotypecertextn.cnf -s ./packet-logotypecertextn-template -D . -O ../.. LogotypeCertExtn.asn */
/* Input file: packet-logotypecertextn-template.h */
-#line 1 "../../asn1/logotypecertextn/packet-logotypecertextn-template.h"
+#line 1 "./asn1/logotypecertextn/packet-logotypecertextn-template.h"
/* packet-logotypecertextn.h
* Routines for RFC3907 Logotype Certificate Extensions packet dissection
* Ronnie Sahlberg 2004
diff --git a/epan/dissectors/packet-lpp.c b/epan/dissectors/packet-lpp.c
index 49cfbc545a..59d3bb2c6f 100644
--- a/epan/dissectors/packet-lpp.c
+++ b/epan/dissectors/packet-lpp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lpp.c */
-/* ../../tools/asn2wrs.py -p lpp -c ./lpp.cnf -s ./packet-lpp-template -D . -O ../../epan/dissectors LPP.asn */
+/* asn2wrs.py -p lpp -c ./lpp.cnf -s ./packet-lpp-template -D . -O ../.. LPP.asn */
/* Input file: packet-lpp-template.c */
-#line 1 "../../asn1/lpp/packet-lpp-template.c"
+#line 1 "./asn1/lpp/packet-lpp-template.c"
/* packet-lpp.c
* Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
* Copyright 2011-2016 Pascal Quantin <pascal.quantin@gmail.com>
@@ -55,7 +55,7 @@ static int proto_lpp = -1;
/*--- Included file: packet-lpp-hf.c ---*/
-#line 1 "../../asn1/lpp/packet-lpp-hf.c"
+#line 1 "./asn1/lpp/packet-lpp-hf.c"
static int hf_lpp_LPP_Message_PDU = -1; /* LPP_Message */
static int hf_lpp_lpp_Ellipsoid_Point_PDU = -1; /* Ellipsoid_Point */
static int hf_lpp_lpp_Ellipsoid_PointWithUncertaintyCircle_PDU = -1; /* Ellipsoid_PointWithUncertaintyCircle */
@@ -1079,7 +1079,7 @@ static int hf_lpp_T_bt_Modes_r13_ue_assisted = -1;
static int dummy_hf_lpp_eag_field = -1; /* never registered */
/*--- End of included file: packet-lpp-hf.c ---*/
-#line 49 "../../asn1/lpp/packet-lpp-template.c"
+#line 49 "./asn1/lpp/packet-lpp-template.c"
static int hf_lpp_svHealthExt_v1240_e5bhs = -1;
static int hf_lpp_svHealthExt_v1240_e1_bhs = -1;
static int hf_lpp_kepSV_StatusINAV_e5bhs = -1;
@@ -1103,7 +1103,7 @@ static gint ett_kepSV_StatusFNAV = -1;
static gint ett_lpp_bdsSvHealth_r12 = -1;
/*--- Included file: packet-lpp-ett.c ---*/
-#line 1 "../../asn1/lpp/packet-lpp-ett.c"
+#line 1 "./asn1/lpp/packet-lpp-ett.c"
static gint ett_lpp_LPP_Message = -1;
static gint ett_lpp_Acknowledgement = -1;
static gint ett_lpp_LPP_MessageBody = -1;
@@ -1462,12 +1462,12 @@ static gint ett_lpp_BT_LocationServerErrorCauses_r13 = -1;
static gint ett_lpp_BT_TargetDeviceErrorCauses_r13 = -1;
/*--- End of included file: packet-lpp-ett.c ---*/
-#line 71 "../../asn1/lpp/packet-lpp-template.c"
+#line 71 "./asn1/lpp/packet-lpp-template.c"
/* Include constants */
/*--- Included file: packet-lpp-val.h ---*/
-#line 1 "../../asn1/lpp/packet-lpp-val.h"
+#line 1 "./asn1/lpp/packet-lpp-val.h"
#define maxEARFCN 65535
#define maxEARFCN_Plus1 65536
#define maxEARFCN2 262143
@@ -1490,7 +1490,7 @@ typedef enum _T_GNSS_ID_enum {
} T_GNSS_ID_enum;
/*--- End of included file: packet-lpp-val.h ---*/
-#line 74 "../../asn1/lpp/packet-lpp-template.c"
+#line 74 "./asn1/lpp/packet-lpp-template.c"
static const value_string lpp_ePDU_ID_vals[] = {
{ 1, "OMA LPP extensions (LPPe)"},
@@ -3056,7 +3056,7 @@ lpp_mbs_beaconMeasElt_codePhase_fmt(gchar *s, guint32 v)
/*--- Included file: packet-lpp-fn.c ---*/
-#line 1 "../../asn1/lpp/packet-lpp-fn.c"
+#line 1 "./asn1/lpp/packet-lpp-fn.c"
static const value_string lpp_Initiator_vals[] = {
{ 0, "locationServer" },
@@ -3191,7 +3191,7 @@ dissect_lpp_ECID_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_lpp_EPDU_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 84 "../../asn1/lpp/lpp.cnf"
+#line 84 "./asn1/lpp/lpp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 256U, &lpp_epdu_id, FALSE);
@@ -3230,7 +3230,7 @@ dissect_lpp_EPDU_Identifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_EPDU_Body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "../../asn1/lpp/lpp.cnf"
+#line 90 "./asn1/lpp/lpp.cnf"
tvbuff_t *lppe_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &lppe_tvb);
@@ -3445,7 +3445,7 @@ static const per_sequence_t RequestCapabilities_sequence[] = {
static int
dissect_lpp_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 60 "../../asn1/lpp/lpp.cnf"
+#line 60 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Capabilities");
@@ -3482,7 +3482,7 @@ static const value_string lpp_T_gnss_id_vals[] = {
static int
dissect_lpp_T_gnss_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1554 "../../asn1/lpp/lpp.cnf"
+#line 1554 "./asn1/lpp/lpp.cnf"
guint32 gnss_id;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5, &gnss_id, TRUE, 1, NULL);
@@ -3512,7 +3512,7 @@ dissect_lpp_GNSS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_lpp_T_sbas_IDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1588 "../../asn1/lpp/lpp.cnf"
+#line 1588 "./asn1/lpp/lpp.cnf"
tvbuff_t *sbas_IDs_tvb = NULL;
int len;
@@ -3560,7 +3560,7 @@ dissect_lpp_SBAS_IDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_lpp_T_posModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 247 "../../asn1/lpp/lpp.cnf"
+#line 247 "./asn1/lpp/lpp.cnf"
tvbuff_t *posModes_tvb = NULL;
int len;
@@ -3629,7 +3629,7 @@ dissect_lpp_GNSS_SignalIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_lpp_T_accessTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 104 "../../asn1/lpp/lpp.cnf"
+#line 104 "./asn1/lpp/lpp.cnf"
tvbuff_t *accessTypes_tvb = NULL;
int len;
@@ -3723,7 +3723,7 @@ dissect_lpp_GNSS_SupportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_gnss_ids(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1559 "../../asn1/lpp/lpp.cnf"
+#line 1559 "./asn1/lpp/lpp.cnf"
tvbuff_t *gnss_ids_tvb = NULL;
int len;
@@ -3805,7 +3805,7 @@ dissect_lpp_GNSS_ReferenceLocationSupport(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_lpp_T_ionoModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1421 "../../asn1/lpp/lpp.cnf"
+#line 1421 "./asn1/lpp/lpp.cnf"
tvbuff_t *ionoModel_tvb = NULL;
int len;
@@ -3937,7 +3937,7 @@ dissect_lpp_GNSS_DifferentialCorrectionsSupport(tvbuff_t *tvb _U_, int offset _U
static int
dissect_lpp_T_clockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1438 "../../asn1/lpp/lpp.cnf"
+#line 1438 "./asn1/lpp/lpp.cnf"
tvbuff_t *clockModel_tvb = NULL;
int len;
@@ -3977,7 +3977,7 @@ dissect_lpp_T_clockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_lpp_T_orbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1467 "../../asn1/lpp/lpp.cnf"
+#line 1467 "./asn1/lpp/lpp.cnf"
tvbuff_t *orbitModel_tvb = NULL;
int len;
@@ -4103,7 +4103,7 @@ dissect_lpp_GNSS_AcquisitionAssistanceSupport(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_almanacModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1496 "../../asn1/lpp/lpp.cnf"
+#line 1496 "./asn1/lpp/lpp.cnf"
tvbuff_t *almanacModel_tvb = NULL;
int len;
@@ -4160,7 +4160,7 @@ dissect_lpp_GNSS_AlmanacSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_lpp_T_utc_Model(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1528 "../../asn1/lpp/lpp.cnf"
+#line 1528 "./asn1/lpp/lpp.cnf"
tvbuff_t *utc_Model_tvb = NULL;
int len;
@@ -4373,7 +4373,7 @@ dissect_lpp_A_GNSS_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_lpp_T_otdoa_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 377 "../../asn1/lpp/lpp.cnf"
+#line 377 "./asn1/lpp/lpp.cnf"
tvbuff_t *otdoa_Mode_tvb = NULL;
int len;
@@ -4522,7 +4522,7 @@ dissect_lpp_OTDOA_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_lpp_T_ecid_MeasSupported(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1640 "../../asn1/lpp/lpp.cnf"
+#line 1640 "./asn1/lpp/lpp.cnf"
tvbuff_t *ecid_MeasSupported_tvb = NULL;
int len;
@@ -4567,7 +4567,7 @@ dissect_lpp_ECID_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_lpp_T_sensor_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1686 "../../asn1/lpp/lpp.cnf"
+#line 1686 "./asn1/lpp/lpp.cnf"
tvbuff_t *sensor_Modes_tvb = NULL;
int len;
@@ -4609,7 +4609,7 @@ dissect_lpp_Sensor_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_lpp_T_tbs_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1666 "../../asn1/lpp/lpp.cnf"
+#line 1666 "./asn1/lpp/lpp.cnf"
tvbuff_t *tbs_Modes_tvb = NULL;
int len;
@@ -4651,7 +4651,7 @@ dissect_lpp_TBS_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_lpp_T_wlan_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1735 "../../asn1/lpp/lpp.cnf"
+#line 1735 "./asn1/lpp/lpp.cnf"
tvbuff_t *wlan_Modes_tvb = NULL;
int len;
@@ -4679,7 +4679,7 @@ dissect_lpp_T_wlan_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_wlan_MeasSupported_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1752 "../../asn1/lpp/lpp.cnf"
+#line 1752 "./asn1/lpp/lpp.cnf"
tvbuff_t *wlan_MeasSupported_tvb = NULL;
int len;
@@ -4722,7 +4722,7 @@ dissect_lpp_WLAN_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_lpp_T_bt_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1795 "../../asn1/lpp/lpp.cnf"
+#line 1795 "./asn1/lpp/lpp.cnf"
tvbuff_t *bt_Modes_tvb = NULL;
int len;
@@ -4863,7 +4863,7 @@ static const per_sequence_t ProvideCapabilities_sequence[] = {
static int
dissect_lpp_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 63 "../../asn1/lpp/lpp.cnf"
+#line 63 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Capabilities");
@@ -5110,7 +5110,7 @@ dissect_lpp_T_gnss_WeekOrDay(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 4095U, NULL, FALSE);
-#line 1367 "../../asn1/lpp/lpp.cnf"
+#line 1367 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " (days for glonass, weeks otherwise)");
@@ -5124,7 +5124,7 @@ dissect_lpp_T_gnss_Toe(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1370 "../../asn1/lpp/lpp.cnf"
+#line 1370 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " (units of 15 mns for glonass, hours otherwise)");
@@ -5138,7 +5138,7 @@ dissect_lpp_T_t_toeLimit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 15U, NULL, FALSE);
-#line 1373 "../../asn1/lpp/lpp.cnf"
+#line 1373 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " (units of 30 mns for glonass, hours otherwise)");
@@ -5334,7 +5334,7 @@ dissect_lpp_T_gnss_TOD_Req(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 3599U, NULL, FALSE);
-#line 1376 "../../asn1/lpp/lpp.cnf"
+#line 1376 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -5348,7 +5348,7 @@ dissect_lpp_T_gnss_TOD_FracReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 999U, NULL, FALSE);
-#line 1379 "../../asn1/lpp/lpp.cnf"
+#line 1379 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " ms");
@@ -5695,7 +5695,7 @@ static const per_sequence_t RequestAssistanceData_sequence[] = {
static int
dissect_lpp_RequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 66 "../../asn1/lpp/lpp.cnf"
+#line 66 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Assistance Data");
@@ -5752,7 +5752,7 @@ dissect_lpp_INTEGER_0_999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_lpp_T_notificationOfLeapSecond(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 397 "../../asn1/lpp/lpp.cnf"
+#line 397 "./asn1/lpp/lpp.cnf"
tvbuff_t *notificationOfLeapSecond_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &notificationOfLeapSecond_tvb, NULL);
@@ -5760,7 +5760,7 @@ dissect_lpp_T_notificationOfLeapSecond(tvbuff_t *tvb _U_, int offset _U_, asn1_c
-#line 401 "../../asn1/lpp/lpp.cnf"
+#line 401 "./asn1/lpp/lpp.cnf"
if (notificationOfLeapSecond_tvb) {
actx->created_item = proto_tree_add_uint(tree, hf_index, notificationOfLeapSecond_tvb, 0, 1, tvb_get_bits8(notificationOfLeapSecond_tvb, 0, 2));
}
@@ -6436,7 +6436,7 @@ dissect_lpp_GNSS_ReferenceLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_lpp_T_dataID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 415 "../../asn1/lpp/lpp.cnf"
+#line 415 "./asn1/lpp/lpp.cnf"
tvbuff_t *dataID_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &dataID_tvb, NULL);
@@ -6444,7 +6444,7 @@ dissect_lpp_T_dataID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
-#line 419 "../../asn1/lpp/lpp.cnf"
+#line 419 "./asn1/lpp/lpp.cnf"
if (dataID_tvb) {
actx->created_item = proto_tree_add_uint(tree, hf_index, dataID_tvb, 0, 1, tvb_get_bits8(dataID_tvb, 0, 2));
}
@@ -6675,7 +6675,7 @@ dissect_lpp_T_deltaT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 496 "../../asn1/lpp/lpp.cnf"
+#line 496 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -6723,7 +6723,7 @@ dissect_lpp_T_dgnss_RefTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 3599U, NULL, FALSE);
-#line 499 "../../asn1/lpp/lpp.cnf"
+#line 499 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -7289,7 +7289,7 @@ dissect_lpp_INTEGER_M4194304_4194303(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 751 "../../asn1/lpp/lpp.cnf"
+#line 751 "./asn1/lpp/lpp.cnf"
gint64 cnavMo;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -7298,7 +7298,7 @@ dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
-#line 756 "../../asn1/lpp/lpp.cnf"
+#line 756 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavMo, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
@@ -7312,7 +7312,7 @@ dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 762 "../../asn1/lpp/lpp.cnf"
+#line 762 "./asn1/lpp/lpp.cnf"
guint64 cnavE;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -7321,7 +7321,7 @@ dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
-#line 767 "../../asn1/lpp/lpp.cnf"
+#line 767 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_uint64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavE, "%g (%"G_GINT64_MODIFIER"u)",
@@ -7335,7 +7335,7 @@ dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 773 "../../asn1/lpp/lpp.cnf"
+#line 773 "./asn1/lpp/lpp.cnf"
gint64 cnavOmega;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -7344,7 +7344,7 @@ dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
-#line 778 "../../asn1/lpp/lpp.cnf"
+#line 778 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavOmega, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
@@ -7358,7 +7358,7 @@ dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 784 "../../asn1/lpp/lpp.cnf"
+#line 784 "./asn1/lpp/lpp.cnf"
gint64 cnavOMEGA0;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -7367,7 +7367,7 @@ dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
-#line 789 "../../asn1/lpp/lpp.cnf"
+#line 789 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavOMEGA0, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
@@ -7381,7 +7381,7 @@ dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_lpp_T_cnavIo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 798 "../../asn1/lpp/lpp.cnf"
+#line 798 "./asn1/lpp/lpp.cnf"
gint64 cnavIo;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -7390,7 +7390,7 @@ dissect_lpp_T_cnavIo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
-#line 803 "../../asn1/lpp/lpp.cnf"
+#line 803 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavIo, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
@@ -7439,7 +7439,7 @@ dissect_lpp_T_gloEn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 31U, NULL, FALSE);
-#line 830 "../../asn1/lpp/lpp.cnf"
+#line 830 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " days");
@@ -7450,7 +7450,7 @@ dissect_lpp_T_gloEn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_lpp_T_gloP1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 833 "../../asn1/lpp/lpp.cnf"
+#line 833 "./asn1/lpp/lpp.cnf"
tvbuff_t *gloP1_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &gloP1_tvb, NULL);
@@ -7458,7 +7458,7 @@ dissect_lpp_T_gloP1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
-#line 837 "../../asn1/lpp/lpp.cnf"
+#line 837 "./asn1/lpp/lpp.cnf"
if (gloP1_tvb) {
actx->created_item = proto_tree_add_uint(tree, hf_index, gloP1_tvb, 0, 1, tvb_get_bits8(gloP1_tvb, 0, 2));
proto_item_append_text(actx->created_item, " mn");
@@ -7555,7 +7555,7 @@ dissect_lpp_T_bdsURAI_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 15U, NULL, FALSE);
-#line 906 "../../asn1/lpp/lpp.cnf"
+#line 906 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " m");
@@ -7627,7 +7627,7 @@ dissect_lpp_GNSS_OrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_svHealthExt_v1240(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 520 "../../asn1/lpp/lpp.cnf"
+#line 520 "./asn1/lpp/lpp.cnf"
tvbuff_t *svHealthExt_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -7636,7 +7636,7 @@ dissect_lpp_T_svHealthExt_v1240(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
-#line 525 "../../asn1/lpp/lpp.cnf"
+#line 525 "./asn1/lpp/lpp.cnf"
if (svHealthExt_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_lpp_svHealthExt_v1240);
proto_tree_add_bits_item(subtree, hf_lpp_svHealthExt_v1240_e5bhs, svHealthExt_tvb, 0, 2, ENC_BIG_ENDIAN);
@@ -7758,7 +7758,7 @@ dissect_lpp_T_gnss_TOD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 3599U, NULL, FALSE);
-#line 957 "../../asn1/lpp/lpp.cnf"
+#line 957 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -7772,7 +7772,7 @@ dissect_lpp_T_gnss_TODfrac(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 999U, NULL, FALSE);
-#line 960 "../../asn1/lpp/lpp.cnf"
+#line 960 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " ms");
@@ -7890,7 +7890,7 @@ dissect_lpp_T_intCodePhase(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 127U, NULL, FALSE);
-#line 978 "../../asn1/lpp/lpp.cnf"
+#line 978 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " ms");
@@ -7961,7 +7961,7 @@ dissect_lpp_T_confidence_r10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 100U, NULL, FALSE);
-#line 963 "../../asn1/lpp/lpp.cnf"
+#line 963 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " %%");
@@ -7988,7 +7988,7 @@ dissect_lpp_GNSS_AcquisitionAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_lpp_T_toa(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 990 "../../asn1/lpp/lpp.cnf"
+#line 990 "./asn1/lpp/lpp.cnf"
guint32 toa, val;
int len, old_offset = offset;
T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data);
@@ -7998,7 +7998,7 @@ dissect_lpp_T_toa(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
-#line 996 "../../asn1/lpp/lpp.cnf"
+#line 996 "./asn1/lpp/lpp.cnf"
len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1;
val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa : 4096*toa;
actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa, tvb, old_offset, len,
@@ -8012,7 +8012,7 @@ dissect_lpp_T_toa(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
static int
dissect_lpp_T_kepSV_StatusINAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1023 "../../asn1/lpp/lpp.cnf"
+#line 1023 "./asn1/lpp/lpp.cnf"
tvbuff_t *statusINAV_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -8021,7 +8021,7 @@ dissect_lpp_T_kepSV_StatusINAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
-#line 1028 "../../asn1/lpp/lpp.cnf"
+#line 1028 "./asn1/lpp/lpp.cnf"
if (statusINAV_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusINAV);
proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusINAV_e5bhs, statusINAV_tvb, 0, 2, ENC_BIG_ENDIAN);
@@ -8036,7 +8036,7 @@ dissect_lpp_T_kepSV_StatusINAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_lpp_T_kepSV_StatusFNAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1035 "../../asn1/lpp/lpp.cnf"
+#line 1035 "./asn1/lpp/lpp.cnf"
tvbuff_t *statusFNAV_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -8045,7 +8045,7 @@ dissect_lpp_T_kepSV_StatusFNAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
-#line 1040 "../../asn1/lpp/lpp.cnf"
+#line 1040 "./asn1/lpp/lpp.cnf"
if (statusFNAV_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusFNAV);
proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusFNAV_e5ahs, statusFNAV_tvb, 0, 2, ENC_BIG_ENDIAN);
@@ -8157,7 +8157,7 @@ dissect_lpp_T_gloAlm_NA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1461U, NULL, FALSE);
-#line 1124 "../../asn1/lpp/lpp.cnf"
+#line 1124 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " days");
@@ -8267,7 +8267,7 @@ dissect_lpp_AlmanacECEF_SBAS_AlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_lpp_T_bdsSvHealth_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1202 "../../asn1/lpp/lpp.cnf"
+#line 1202 "./asn1/lpp/lpp.cnf"
tvbuff_t *bdsSvHealth_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -8276,7 +8276,7 @@ dissect_lpp_T_bdsSvHealth_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
-#line 1207 "../../asn1/lpp/lpp.cnf"
+#line 1207 "./asn1/lpp/lpp.cnf"
if (bdsSvHealth_tvb) {
guint16 bits;
subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bdsSvHealth_r12);
@@ -8374,7 +8374,7 @@ dissect_lpp_GNSS_AlmanacList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_toa_ext_v1240(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1002 "../../asn1/lpp/lpp.cnf"
+#line 1002 "./asn1/lpp/lpp.cnf"
guint32 toa_ext, val;
int len, old_offset = offset;
T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data);
@@ -8384,7 +8384,7 @@ dissect_lpp_T_toa_ext_v1240(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
-#line 1008 "../../asn1/lpp/lpp.cnf"
+#line 1008 "./asn1/lpp/lpp.cnf"
len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1;
val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa_ext : 4096*toa_ext;
actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa_ext_v1240, tvb, old_offset, len,
@@ -8444,7 +8444,7 @@ dissect_lpp_T_gnss_Utc_WNt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1235 "../../asn1/lpp/lpp.cnf"
+#line 1235 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " weeks");
@@ -8458,7 +8458,7 @@ dissect_lpp_T_gnss_Utc_DeltaTls(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1238 "../../asn1/lpp/lpp.cnf"
+#line 1238 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -8472,7 +8472,7 @@ dissect_lpp_T_gnss_Utc_WNlsf(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1241 "../../asn1/lpp/lpp.cnf"
+#line 1241 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " weeks");
@@ -8486,7 +8486,7 @@ dissect_lpp_T_gnss_Utc_DN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1244 "../../asn1/lpp/lpp.cnf"
+#line 1244 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " days");
@@ -8500,7 +8500,7 @@ dissect_lpp_T_gnss_Utc_DeltaTlsf(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1247 "../../asn1/lpp/lpp.cnf"
+#line 1247 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -8535,7 +8535,7 @@ dissect_lpp_T_utcDeltaTls(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1259 "../../asn1/lpp/lpp.cnf"
+#line 1259 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -8549,7 +8549,7 @@ dissect_lpp_T_utcWNot(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 8191U, NULL, FALSE);
-#line 1265 "../../asn1/lpp/lpp.cnf"
+#line 1265 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " weeks");
@@ -8563,7 +8563,7 @@ dissect_lpp_T_utcWNlsf(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1268 "../../asn1/lpp/lpp.cnf"
+#line 1268 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " weeks");
@@ -8577,7 +8577,7 @@ dissect_lpp_T_utcDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4, 4, FALSE, NULL, NULL);
-#line 1271 "../../asn1/lpp/lpp.cnf"
+#line 1271 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " days");
@@ -8591,7 +8591,7 @@ dissect_lpp_T_utcDeltaTlsf(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1274 "../../asn1/lpp/lpp.cnf"
+#line 1274 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -8627,7 +8627,7 @@ dissect_lpp_T_nA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1461U, NULL, FALSE);
-#line 1277 "../../asn1/lpp/lpp.cnf"
+#line 1277 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " days");
@@ -8638,7 +8638,7 @@ dissect_lpp_T_nA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
static int
dissect_lpp_T_kp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1289 "../../asn1/lpp/lpp.cnf"
+#line 1289 "./asn1/lpp/lpp.cnf"
tvbuff_t *kp_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &kp_tvb, NULL);
@@ -8646,7 +8646,7 @@ dissect_lpp_T_kp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
-#line 1293 "../../asn1/lpp/lpp.cnf"
+#line 1293 "./asn1/lpp/lpp.cnf"
if (kp_tvb) {
actx->created_item = proto_tree_add_uint(tree, hf_index, kp_tvb, 0, 1, tvb_get_bits8(kp_tvb, 0, 2));
}
@@ -8680,7 +8680,7 @@ dissect_lpp_T_utcWNt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1310 "../../asn1/lpp/lpp.cnf"
+#line 1310 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " weeks");
@@ -8694,7 +8694,7 @@ dissect_lpp_T_utcDeltaTls_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1313 "../../asn1/lpp/lpp.cnf"
+#line 1313 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -8708,7 +8708,7 @@ dissect_lpp_T_utcWNlsf_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1316 "../../asn1/lpp/lpp.cnf"
+#line 1316 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " weeks");
@@ -8722,7 +8722,7 @@ dissect_lpp_T_utcDN_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1319 "../../asn1/lpp/lpp.cnf"
+#line 1319 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " days");
@@ -8736,7 +8736,7 @@ dissect_lpp_T_utcDeltaTlsf_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1322 "../../asn1/lpp/lpp.cnf"
+#line 1322 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -8772,7 +8772,7 @@ dissect_lpp_T_utcDeltaTls_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1334 "../../asn1/lpp/lpp.cnf"
+#line 1334 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -8786,7 +8786,7 @@ dissect_lpp_T_utcWNlsf_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1337 "../../asn1/lpp/lpp.cnf"
+#line 1337 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " weeks");
@@ -8800,7 +8800,7 @@ dissect_lpp_T_utcDN_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1340 "../../asn1/lpp/lpp.cnf"
+#line 1340 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " days");
@@ -8814,7 +8814,7 @@ dissect_lpp_T_utcDeltaTlsf_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1343 "../../asn1/lpp/lpp.cnf"
+#line 1343 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -8966,7 +8966,7 @@ dissect_lpp_T_dbds_RefTime_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 3599U, NULL, FALSE);
-#line 1346 "../../asn1/lpp/lpp.cnf"
+#line 1346 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -9055,7 +9055,7 @@ dissect_lpp_T_bds_RefTime_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 3599U, NULL, FALSE);
-#line 1358 "../../asn1/lpp/lpp.cnf"
+#line 1358 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -9736,7 +9736,7 @@ static const per_sequence_t ProvideAssistanceData_sequence[] = {
static int
dissect_lpp_ProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 69 "../../asn1/lpp/lpp.cnf"
+#line 69 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Assistance Data");
@@ -9768,7 +9768,7 @@ dissect_lpp_LocationInformationType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_lpp_ReportingDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 279 "../../asn1/lpp/lpp.cnf"
+#line 279 "./asn1/lpp/lpp.cnf"
guint32 duration;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -9839,7 +9839,7 @@ static const value_string lpp_T_reportingInterval_vals[] = {
static int
dissect_lpp_T_reportingInterval(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 267 "../../asn1/lpp/lpp.cnf"
+#line 267 "./asn1/lpp/lpp.cnf"
guint32 idx;
const gchar *interval[10] = {"", ": 1 s", ": 2 s", ": 4 s", ": 8 s", ": 10 s",
": 16 s", ": 20 s", ": 32 s", ": 64 s"};
@@ -9850,7 +9850,7 @@ dissect_lpp_T_reportingInterval(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
-#line 274 "../../asn1/lpp/lpp.cnf"
+#line 274 "./asn1/lpp/lpp.cnf"
if (idx < 10) {
proto_item_append_text(actx->created_item, "%s", interval[idx]);
}
@@ -9927,7 +9927,7 @@ dissect_lpp_T_time(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 128U, NULL, FALSE);
-#line 300 "../../asn1/lpp/lpp.cnf"
+#line 300 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -9941,7 +9941,7 @@ dissect_lpp_T_responseTimeEarlyFix_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_c
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 128U, NULL, FALSE);
-#line 303 "../../asn1/lpp/lpp.cnf"
+#line 303 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " s");
@@ -10082,7 +10082,7 @@ dissect_lpp_OTDOA_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_requestedMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1620 "../../asn1/lpp/lpp.cnf"
+#line 1620 "./asn1/lpp/lpp.cnf"
tvbuff_t *requestedMeasurements_tvb = NULL;
int len;
@@ -10155,7 +10155,7 @@ dissect_lpp_TBS_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_
static int
dissect_lpp_T_requestedMeasurements_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1718 "../../asn1/lpp/lpp.cnf"
+#line 1718 "./asn1/lpp/lpp.cnf"
tvbuff_t *requestedMeasurements_tvb = NULL;
int len;
@@ -10197,7 +10197,7 @@ dissect_lpp_WLAN_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U
static int
dissect_lpp_T_requestedMeasurements_r13_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1781 "../../asn1/lpp/lpp.cnf"
+#line 1781 "./asn1/lpp/lpp.cnf"
tvbuff_t *requestedMeasurements_tvb = NULL;
int len;
@@ -10336,7 +10336,7 @@ static const per_sequence_t RequestLocationInformation_sequence[] = {
static int
dissect_lpp_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 72 "../../asn1/lpp/lpp.cnf"
+#line 72 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Location Information");
@@ -10619,7 +10619,7 @@ dissect_lpp_T_bearing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 359U, NULL, FALSE);
-#line 211 "../../asn1/lpp/lpp.cnf"
+#line 211 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " degrees");
@@ -10633,7 +10633,7 @@ dissect_lpp_T_horizontalSpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 2047U, NULL, FALSE);
-#line 214 "../../asn1/lpp/lpp.cnf"
+#line 214 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " km/h");
@@ -10705,7 +10705,7 @@ dissect_lpp_T_bearing_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 359U, NULL, FALSE);
-#line 217 "../../asn1/lpp/lpp.cnf"
+#line 217 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " degrees");
@@ -10719,7 +10719,7 @@ dissect_lpp_T_horizontalSpeed_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 2047U, NULL, FALSE);
-#line 220 "../../asn1/lpp/lpp.cnf"
+#line 220 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " km/h");
@@ -10733,7 +10733,7 @@ dissect_lpp_T_uncertaintySpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 223 "../../asn1/lpp/lpp.cnf"
+#line 223 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " km/h");
@@ -10763,7 +10763,7 @@ dissect_lpp_T_bearing_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 359U, NULL, FALSE);
-#line 226 "../../asn1/lpp/lpp.cnf"
+#line 226 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " degrees");
@@ -10777,7 +10777,7 @@ dissect_lpp_T_horizontalSpeed_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 2047U, NULL, FALSE);
-#line 229 "../../asn1/lpp/lpp.cnf"
+#line 229 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " km/h");
@@ -10807,7 +10807,7 @@ dissect_lpp_T_verticalSpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 232 "../../asn1/lpp/lpp.cnf"
+#line 232 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " km/h");
@@ -10821,7 +10821,7 @@ dissect_lpp_T_horizontalUncertaintySpeed(tvbuff_t *tvb _U_, int offset _U_, asn1
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 235 "../../asn1/lpp/lpp.cnf"
+#line 235 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " km/h");
@@ -10835,7 +10835,7 @@ dissect_lpp_T_verticalUncertaintySpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_c
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 238 "../../asn1/lpp/lpp.cnf"
+#line 238 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " km/h");
@@ -10952,7 +10952,7 @@ dissect_lpp_CommonIEsProvideLocationInformation_eag_1(tvbuff_t *tvb _U_, int off
static int
dissect_lpp_LocationSource_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 306 "../../asn1/lpp/lpp.cnf"
+#line 306 "./asn1/lpp/lpp.cnf"
tvbuff_t *locSource_tvb = NULL;
int len;
@@ -11034,7 +11034,7 @@ dissect_lpp_T_gnss_TOD_msec(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 3599999U, NULL, FALSE);
-#line 1385 "../../asn1/lpp/lpp.cnf"
+#line 1385 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " ms");
@@ -11165,7 +11165,7 @@ dissect_lpp_T_deltaGNSS_TOD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 127U, NULL, FALSE);
-#line 1394 "../../asn1/lpp/lpp.cnf"
+#line 1394 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " ms");
@@ -11239,7 +11239,7 @@ dissect_lpp_T_gnss_CodePhaseAmbiguity(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 127U, NULL, FALSE);
-#line 1397 "../../asn1/lpp/lpp.cnf"
+#line 1397 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " ms");
@@ -11253,7 +11253,7 @@ dissect_lpp_T_cNo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 63U, NULL, FALSE);
-#line 1400 "../../asn1/lpp/lpp.cnf"
+#line 1400 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " dB-Hz");
@@ -11285,7 +11285,7 @@ dissect_lpp_T_integerCodePhase(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 127U, NULL, FALSE);
-#line 1409 "../../asn1/lpp/lpp.cnf"
+#line 1409 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " ms");
@@ -11447,7 +11447,7 @@ dissect_lpp_A_GNSS_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_error_Resolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 341 "../../asn1/lpp/lpp.cnf"
+#line 341 "./asn1/lpp/lpp.cnf"
tvbuff_t *error_Resolution_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &error_Resolution_tvb, NULL);
@@ -11455,7 +11455,7 @@ dissect_lpp_T_error_Resolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
-#line 345 "../../asn1/lpp/lpp.cnf"
+#line 345 "./asn1/lpp/lpp.cnf"
if (error_Resolution_tvb) {
actx->created_item = proto_tree_add_uint(tree, hf_index, error_Resolution_tvb, 0, 1, tvb_get_bits8(error_Resolution_tvb, 0, 2));
}
@@ -11468,7 +11468,7 @@ dissect_lpp_T_error_Resolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_lpp_T_error_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 353 "../../asn1/lpp/lpp.cnf"
+#line 353 "./asn1/lpp/lpp.cnf"
tvbuff_t *error_Value_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5, 5, FALSE, &error_Value_tvb, NULL);
@@ -11476,7 +11476,7 @@ dissect_lpp_T_error_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
-#line 357 "../../asn1/lpp/lpp.cnf"
+#line 357 "./asn1/lpp/lpp.cnf"
if (error_Value_tvb) {
actx->created_item = proto_tree_add_uint(tree, hf_index, error_Value_tvb, 0, 1, tvb_get_bits8(error_Value_tvb, 0, 5));
}
@@ -11489,7 +11489,7 @@ dissect_lpp_T_error_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_lpp_T_error_NumSamples(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 365 "../../asn1/lpp/lpp.cnf"
+#line 365 "./asn1/lpp/lpp.cnf"
tvbuff_t *error_NumSamples_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
3, 3, FALSE, &error_NumSamples_tvb, NULL);
@@ -11497,7 +11497,7 @@ dissect_lpp_T_error_NumSamples(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
-#line 369 "../../asn1/lpp/lpp.cnf"
+#line 369 "./asn1/lpp/lpp.cnf"
if (error_NumSamples_tvb) {
actx->created_item = proto_tree_add_uint(tree, hf_index, error_NumSamples_tvb, 0, 1, tvb_get_bits8(error_NumSamples_tvb, 0, 3));
}
@@ -11816,7 +11816,7 @@ dissect_lpp_T_uncompensatedBarometricPressure_r13(tvbuff_t *tvb _U_, int offset
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
30000U, 115000U, NULL, FALSE);
-#line 1683 "../../asn1/lpp/lpp.cnf"
+#line 1683 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " Pa");
@@ -12088,7 +12088,7 @@ dissect_lpp_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_lpp_T_ssid_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1712 "../../asn1/lpp/lpp.cnf"
+#line 1712 "./asn1/lpp/lpp.cnf"
tvbuff_t *ssid_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
@@ -12123,7 +12123,7 @@ dissect_lpp_T_rssi_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
-#line 1703 "../../asn1/lpp/lpp.cnf"
+#line 1703 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " dBm");
@@ -12311,7 +12311,7 @@ dissect_lpp_WLAN_ProvideLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U
static int
dissect_lpp_T_btAddr_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1772 "../../asn1/lpp/lpp.cnf"
+#line 1772 "./asn1/lpp/lpp.cnf"
tvbuff_t *btAddr_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -12331,7 +12331,7 @@ dissect_lpp_T_rssi_r13_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-128, 127U, NULL, FALSE);
-#line 1778 "../../asn1/lpp/lpp.cnf"
+#line 1778 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " dBm");
@@ -12570,7 +12570,7 @@ static const per_sequence_t ProvideLocationInformation_sequence[] = {
static int
dissect_lpp_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 75 "../../asn1/lpp/lpp.cnf"
+#line 75 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Location Information");
@@ -12696,7 +12696,7 @@ static const per_sequence_t Abort_sequence[] = {
static int
dissect_lpp_Abort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 78 "../../asn1/lpp/lpp.cnf"
+#line 78 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Abort");
@@ -12782,7 +12782,7 @@ static const per_choice_t Error_choice[] = {
static int
dissect_lpp_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 81 "../../asn1/lpp/lpp.cnf"
+#line 81 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error");
@@ -12973,7 +12973,7 @@ int dissect_lpp_Polygon_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-lpp-fn.c ---*/
-#line 1638 "../../asn1/lpp/packet-lpp-template.c"
+#line 1638 "./asn1/lpp/packet-lpp-template.c"
static int dissect_lpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
proto_tree *subtree;
@@ -12994,7 +12994,7 @@ void proto_register_lpp(void) {
/*--- Included file: packet-lpp-hfarr.c ---*/
-#line 1 "../../asn1/lpp/packet-lpp-hfarr.c"
+#line 1 "./asn1/lpp/packet-lpp-hfarr.c"
{ &hf_lpp_LPP_Message_PDU,
{ "LPP-Message", "lpp.LPP_Message_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -17073,7 +17073,7 @@ void proto_register_lpp(void) {
NULL, HFILL }},
/*--- End of included file: packet-lpp-hfarr.c ---*/
-#line 1657 "../../asn1/lpp/packet-lpp-template.c"
+#line 1657 "./asn1/lpp/packet-lpp-template.c"
{ &hf_lpp_svHealthExt_v1240_e5bhs,
{ "E5b Signal Health Status", "lpp.svHealthExt_v1240.e5bhs",
FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
@@ -17122,7 +17122,7 @@ void proto_register_lpp(void) {
&ett_lpp_bdsSvHealth_r12,
/*--- Included file: packet-lpp-ettarr.c ---*/
-#line 1 "../../asn1/lpp/packet-lpp-ettarr.c"
+#line 1 "./asn1/lpp/packet-lpp-ettarr.c"
&ett_lpp_LPP_Message,
&ett_lpp_Acknowledgement,
&ett_lpp_LPP_MessageBody,
@@ -17481,7 +17481,7 @@ void proto_register_lpp(void) {
&ett_lpp_BT_TargetDeviceErrorCauses_r13,
/*--- End of included file: packet-lpp-ettarr.c ---*/
-#line 1704 "../../asn1/lpp/packet-lpp-template.c"
+#line 1704 "./asn1/lpp/packet-lpp-template.c"
};
diff --git a/epan/dissectors/packet-lpp.h b/epan/dissectors/packet-lpp.h
index 6581aba88e..371ff882fe 100644
--- a/epan/dissectors/packet-lpp.h
+++ b/epan/dissectors/packet-lpp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lpp.h */
-/* ../../tools/asn2wrs.py -p lpp -c ./lpp.cnf -s ./packet-lpp-template -D . -O ../../epan/dissectors LPP.asn */
+/* asn2wrs.py -p lpp -c ./lpp.cnf -s ./packet-lpp-template -D . -O ../.. LPP.asn */
/* Input file: packet-lpp-template.h */
-#line 1 "../../asn1/lpp/packet-lpp-template.h"
+#line 1 "./asn1/lpp/packet-lpp-template.h"
/* packet-lpp.h
* Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
* Copyright 2011-2016 Pascal Quantin <pascal.quantin@gmail.com>
@@ -37,7 +37,7 @@
/*--- Included file: packet-lpp-exp.h ---*/
-#line 1 "../../asn1/lpp/packet-lpp-exp.h"
+#line 1 "./asn1/lpp/packet-lpp-exp.h"
int dissect_lpp_LPP_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_lpp_ARFCN_ValueEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_lpp_ARFCN_ValueUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -71,6 +71,6 @@ int dissect_lpp_HorizontalVelocity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
int dissect_lpp_Polygon_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-lpp-exp.h ---*/
-#line 31 "../../asn1/lpp/packet-lpp-template.h"
+#line 31 "./asn1/lpp/packet-lpp-template.h"
#endif /* PACKET_LPP_H */
diff --git a/epan/dissectors/packet-lppa.c b/epan/dissectors/packet-lppa.c
index e3e119d89b..9080e44240 100644
--- a/epan/dissectors/packet-lppa.c
+++ b/epan/dissectors/packet-lppa.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lppa.c */
-/* ../../tools/asn2wrs.py -p lppa -c ./lppa.cnf -s ./packet-lppa-template -D . -O ../../epan/dissectors LPPA-Common.asn LPPA-Constant.asn LPPA-Container.asn LPPA-ElementaryProcedure.asn LPPA-InformationElement.asn LPPA-PDU.asn */
+/* asn2wrs.py -p lppa -c ./lppa.cnf -s ./packet-lppa-template -D . -O ../.. LPPA-Common.asn LPPA-Constant.asn LPPA-Container.asn LPPA-ElementaryProcedure.asn LPPA-InformationElement.asn LPPA-PDU.asn */
/* Input file: packet-lppa-template.c */
-#line 1 "../../asn1/lppa/packet-lppa-template.c"
+#line 1 "./asn1/lppa/packet-lppa-template.c"
/* packet-lppa.c
* Routines for 3GPP LTE Positioning Protocol A (LLPa) packet dissection
* Copyright 2011, Pascal Quantin <pascal.quantin@gmail.com>
@@ -51,7 +51,7 @@ static int proto_lppa = -1;
/*--- Included file: packet-lppa-hf.c ---*/
-#line 1 "../../asn1/lppa/packet-lppa-hf.c"
+#line 1 "./asn1/lppa/packet-lppa-hf.c"
static int hf_lppa_LPPA_PDU_PDU = -1; /* LPPA_PDU */
static int hf_lppa_Cause_PDU = -1; /* Cause */
static int hf_lppa_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */
@@ -186,13 +186,13 @@ static int hf_lppa_oTDOA_Information_Type_Item = -1; /* OTDOA_Information_Item
static int hf_lppa_privateIEs = -1; /* PrivateIE_Container */
/*--- End of included file: packet-lppa-hf.c ---*/
-#line 45 "../../asn1/lppa/packet-lppa-template.c"
+#line 45 "./asn1/lppa/packet-lppa-template.c"
/* Initialize the subtree pointers */
static gint ett_lppa = -1;
/*--- Included file: packet-lppa-ett.c ---*/
-#line 1 "../../asn1/lppa/packet-lppa-ett.c"
+#line 1 "./asn1/lppa/packet-lppa-ett.c"
static gint ett_lppa_PrivateIE_ID = -1;
static gint ett_lppa_ProtocolIE_Container = -1;
static gint ett_lppa_ProtocolIE_Field = -1;
@@ -247,7 +247,7 @@ static gint ett_lppa_ErrorIndication = -1;
static gint ett_lppa_PrivateMessage = -1;
/*--- End of included file: packet-lppa-ett.c ---*/
-#line 49 "../../asn1/lppa/packet-lppa-template.c"
+#line 49 "./asn1/lppa/packet-lppa-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -262,7 +262,7 @@ static dissector_table_t lppa_proc_uout_dissector_table;
/* Include constants */
/*--- Included file: packet-lppa-val.h ---*/
-#line 1 "../../asn1/lppa/packet-lppa-val.h"
+#line 1 "./asn1/lppa/packet-lppa-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -303,7 +303,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-lppa-val.h ---*/
-#line 62 "../../asn1/lppa/packet-lppa-template.c"
+#line 62 "./asn1/lppa/packet-lppa-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
@@ -312,7 +312,7 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
/*--- Included file: packet-lppa-fn.c ---*/
-#line 1 "../../asn1/lppa/packet-lppa-fn.c"
+#line 1 "./asn1/lppa/packet-lppa-fn.c"
static const value_string lppa_Criticality_vals[] = {
{ 0, "reject" },
@@ -401,7 +401,7 @@ dissect_lppa_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 44 "../../asn1/lppa/lppa.cnf"
+#line 44 "./asn1/lppa/lppa.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str(ProcedureCode, lppa_ProcedureCode_vals,
"unknown message"));
@@ -434,7 +434,7 @@ dissect_lppa_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
-#line 37 "../../asn1/lppa/lppa.cnf"
+#line 37 "./asn1/lppa/lppa.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lppa_ProtocolIE_ID_vals), "unknown (%d)"));
}
@@ -680,7 +680,7 @@ static const per_choice_t LPPA_PDU_choice[] = {
static int
dissect_lppa_LPPA_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 58 "../../asn1/lppa/lppa.cnf"
+#line 58 "./asn1/lppa/lppa.cnf"
proto_tree_add_item(tree, proto_lppa, tvb, 0, -1, ENC_NA);
@@ -2303,7 +2303,7 @@ static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-lppa-fn.c ---*/
-#line 69 "../../asn1/lppa/packet-lppa-template.c"
+#line 69 "./asn1/lppa/packet-lppa-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -2333,7 +2333,7 @@ void proto_register_lppa(void) {
/*--- Included file: packet-lppa-hfarr.c ---*/
-#line 1 "../../asn1/lppa/packet-lppa-hfarr.c"
+#line 1 "./asn1/lppa/packet-lppa-hfarr.c"
{ &hf_lppa_LPPA_PDU_PDU,
{ "LPPA-PDU", "lppa.LPPA_PDU",
FT_UINT32, BASE_DEC, VALS(lppa_LPPA_PDU_vals), 0,
@@ -2864,7 +2864,7 @@ void proto_register_lppa(void) {
"PrivateIE_Container", HFILL }},
/*--- End of included file: packet-lppa-hfarr.c ---*/
-#line 97 "../../asn1/lppa/packet-lppa-template.c"
+#line 97 "./asn1/lppa/packet-lppa-template.c"
};
/* List of subtrees */
@@ -2872,7 +2872,7 @@ void proto_register_lppa(void) {
&ett_lppa,
/*--- Included file: packet-lppa-ettarr.c ---*/
-#line 1 "../../asn1/lppa/packet-lppa-ettarr.c"
+#line 1 "./asn1/lppa/packet-lppa-ettarr.c"
&ett_lppa_PrivateIE_ID,
&ett_lppa_ProtocolIE_Container,
&ett_lppa_ProtocolIE_Field,
@@ -2927,7 +2927,7 @@ void proto_register_lppa(void) {
&ett_lppa_PrivateMessage,
/*--- End of included file: packet-lppa-ettarr.c ---*/
-#line 103 "../../asn1/lppa/packet-lppa-template.c"
+#line 103 "./asn1/lppa/packet-lppa-template.c"
};
/* Register protocol */
@@ -2951,7 +2951,7 @@ proto_reg_handoff_lppa(void)
{
/*--- Included file: packet-lppa-dis-tab.c ---*/
-#line 1 "../../asn1/lppa/packet-lppa-dis-tab.c"
+#line 1 "./asn1/lppa/packet-lppa-dis-tab.c"
dissector_add_uint("lppa.ies", id_MeasurementQuantities_Item, create_dissector_handle(dissect_MeasurementQuantities_Item_PDU, proto_lppa));
dissector_add_uint("lppa.ies", id_ReportCharacteristics, create_dissector_handle(dissect_ReportCharacteristics_PDU, proto_lppa));
dissector_add_uint("lppa.ies", id_MeasurementPeriodicity, create_dissector_handle(dissect_MeasurementPeriodicity_PDU, proto_lppa));
@@ -2984,5 +2984,5 @@ proto_reg_handoff_lppa(void)
/*--- End of included file: packet-lppa-dis-tab.c ---*/
-#line 125 "../../asn1/lppa/packet-lppa-template.c"
+#line 125 "./asn1/lppa/packet-lppa-template.c"
}
diff --git a/epan/dissectors/packet-lppe.c b/epan/dissectors/packet-lppe.c
index f5fff86b8c..9ef891553d 100644
--- a/epan/dissectors/packet-lppe.c
+++ b/epan/dissectors/packet-lppe.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lppe.c */
-/* ../../tools/asn2wrs.py -p lppe -c ./lppe.cnf -s ./packet-lppe-template -D . -O ../../epan/dissectors LPPe.asn */
+/* asn2wrs.py -p lppe -c ./lppe.cnf -s ./packet-lppe-template -D . -O ../.. LPPe.asn */
/* Input file: packet-lppe-template.c */
-#line 1 "../../asn1/lppe/packet-lppe-template.c"
+#line 1 "./asn1/lppe/packet-lppe-template.c"
/* packet-lppe.c
* Routines for LPP Extensions (LLPe) packet dissection
* Copyright 2012-2014, Pascal Quantin <pascal.quantin@gmail.com>
@@ -56,7 +56,7 @@ static int proto_lppe = -1;
/*--- Included file: packet-lppe-hf.c ---*/
-#line 1 "../../asn1/lppe/packet-lppe-hf.c"
+#line 1 "./asn1/lppe/packet-lppe-hf.c"
static int hf_lppe_OMA_LPPe_MessageExtension_PDU = -1; /* OMA_LPPe_MessageExtension */
static int hf_lppe_lppeCompatibilityLevel = -1; /* OMA_LPPe_LPPeCompatibilityLevel */
static int hf_lppe_lppeVersion = -1; /* OMA_LPPe_LPPeVersion */
@@ -1753,13 +1753,13 @@ static int hf_lppe_T_srnMeasurements_rssi = -1;
static int hf_lppe_T_srnMeasurements_rtd = -1;
/*--- End of included file: packet-lppe-hf.c ---*/
-#line 50 "../../asn1/lppe/packet-lppe-template.c"
+#line 50 "./asn1/lppe/packet-lppe-template.c"
/* Initialize the subtree pointers */
static gint ett_lppe = -1;
/*--- Included file: packet-lppe-ett.c ---*/
-#line 1 "../../asn1/lppe/packet-lppe-ett.c"
+#line 1 "./asn1/lppe/packet-lppe-ett.c"
static gint ett_lppe_OMA_LPPe_MessageExtension = -1;
static gint ett_lppe_OMA_LPPe_LPPeVersion = -1;
static gint ett_lppe_OMA_LPPe_MessageExtensionBody = -1;
@@ -2447,12 +2447,12 @@ static gint ett_lppe_OMA_LPPe_SRN_MeasurementMask = -1;
static gint ett_lppe_T_srnMeasurements = -1;
/*--- End of included file: packet-lppe-ett.c ---*/
-#line 54 "../../asn1/lppe/packet-lppe-template.c"
+#line 54 "./asn1/lppe/packet-lppe-template.c"
/* Include constants */
/*--- Included file: packet-lppe-val.h ---*/
-#line 1 "../../asn1/lppe/packet-lppe-val.h"
+#line 1 "./asn1/lppe/packet-lppe-val.h"
#define maxAssistanceContainerList 16
#define maxLocationInformationContainerDataList 10
#define maxLevel1_element 32
@@ -2494,12 +2494,12 @@ static gint ett_lppe_T_srnMeasurements = -1;
#define maxChannels 512
/*--- End of included file: packet-lppe-val.h ---*/
-#line 57 "../../asn1/lppe/packet-lppe-template.c"
+#line 57 "./asn1/lppe/packet-lppe-template.c"
/*--- Included file: packet-lppe-fn.c ---*/
-#line 1 "../../asn1/lppe/packet-lppe-fn.c"
+#line 1 "./asn1/lppe/packet-lppe-fn.c"
static int
@@ -6953,7 +6953,7 @@ dissect_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_ReferencePointRelationship(tvbuff_t *
static int
dissect_lppe_OMA_LPPe_Uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 30 "../../asn1/lppe/lppe.cnf"
+#line 30 "./asn1/lppe/lppe.cnf"
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:/?#[]@!$&'()*+,;=-._~%", 85,
NULL);
@@ -16420,7 +16420,7 @@ static const per_sequence_t OMA_LPPe_MessageExtension_sequence[] = {
static int
dissect_lppe_OMA_LPPe_MessageExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 24 "../../asn1/lppe/lppe.cnf"
+#line 24 "./asn1/lppe/lppe.cnf"
proto_tree_add_item(tree, proto_lppe, tvb, 0, -1, ENC_NA);
@@ -16446,7 +16446,7 @@ static int dissect_OMA_LPPe_MessageExtension_PDU(tvbuff_t *tvb _U_, packet_info
/*--- End of included file: packet-lppe-fn.c ---*/
-#line 60 "../../asn1/lppe/packet-lppe-template.c"
+#line 60 "./asn1/lppe/packet-lppe-template.c"
/*--- proto_register_lpp -------------------------------------------*/
@@ -16457,7 +16457,7 @@ void proto_register_lppe(void) {
/*--- Included file: packet-lppe-hfarr.c ---*/
-#line 1 "../../asn1/lppe/packet-lppe-hfarr.c"
+#line 1 "./asn1/lppe/packet-lppe-hfarr.c"
{ &hf_lppe_OMA_LPPe_MessageExtension_PDU,
{ "OMA-LPPe-MessageExtension", "lppe.OMA_LPPe_MessageExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -23232,7 +23232,7 @@ void proto_register_lppe(void) {
NULL, HFILL }},
/*--- End of included file: packet-lppe-hfarr.c ---*/
-#line 69 "../../asn1/lppe/packet-lppe-template.c"
+#line 69 "./asn1/lppe/packet-lppe-template.c"
};
/* List of subtrees */
@@ -23240,7 +23240,7 @@ void proto_register_lppe(void) {
&ett_lppe,
/*--- Included file: packet-lppe-ettarr.c ---*/
-#line 1 "../../asn1/lppe/packet-lppe-ettarr.c"
+#line 1 "./asn1/lppe/packet-lppe-ettarr.c"
&ett_lppe_OMA_LPPe_MessageExtension,
&ett_lppe_OMA_LPPe_LPPeVersion,
&ett_lppe_OMA_LPPe_MessageExtensionBody,
@@ -23928,7 +23928,7 @@ void proto_register_lppe(void) {
&ett_lppe_T_srnMeasurements,
/*--- End of included file: packet-lppe-ettarr.c ---*/
-#line 75 "../../asn1/lppe/packet-lppe-template.c"
+#line 75 "./asn1/lppe/packet-lppe-template.c"
};
diff --git a/epan/dissectors/packet-lte-rrc.c b/epan/dissectors/packet-lte-rrc.c
index 419eae4b7b..42fa10f05b 100644
--- a/epan/dissectors/packet-lte-rrc.c
+++ b/epan/dissectors/packet-lte-rrc.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lte-rrc.c */
-/* ../../tools/asn2wrs.py -L -p lte-rrc -c ./lte-rrc.cnf -s ./packet-lte-rrc-template -D . -O ../../epan/dissectors EUTRA-InterNodeDefinitions.asn EUTRA-RRC-Definitions.asn EUTRA-Sidelink-Preconf.asn EUTRA-UE-Variables.asn PC5-RRC-Definitions.asn */
+/* asn2wrs.py -L -p lte-rrc -c ./lte-rrc.cnf -s ./packet-lte-rrc-template -D . -O ../.. EUTRA-InterNodeDefinitions.asn EUTRA-RRC-Definitions.asn EUTRA-Sidelink-Preconf.asn EUTRA-UE-Variables.asn PC5-RRC-Definitions.asn */
/* Input file: packet-lte-rrc-template.c */
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-template.c"
/* packet-lte-rrc-template.c
* Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
* Radio Resource Control (RRC) protocol specification
@@ -88,7 +88,7 @@ extern int proto_pdcp_lte;
/* Include constants */
/*--- Included file: packet-lte-rrc-val.h ---*/
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-val.h"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-val.h"
#define maxReestabInfo 32
#define maxACDC_Cat_r13 16
#define maxBandComb_r10 128
@@ -225,14 +225,14 @@ typedef enum _SI_OrPSI_GERAN_enum {
} SI_OrPSI_GERAN_enum;
/*--- End of included file: packet-lte-rrc-val.h ---*/
-#line 82 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 82 "./asn1/lte-rrc/packet-lte-rrc-template.c"
/* Initialize the protocol and registered fields */
static int proto_lte_rrc = -1;
/*--- Included file: packet-lte-rrc-hf.c ---*/
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-hf.c"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-hf.c"
static int hf_lte_rrc_lte_rrc_HandoverCommand_PDU = -1; /* HandoverCommand */
static int hf_lte_rrc_lte_rrc_HandoverPreparationInformation_PDU = -1; /* HandoverPreparationInformation */
static int hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_PDU = -1; /* UERadioAccessCapabilityInformation */
@@ -3699,7 +3699,7 @@ static int hf_lte_rrc_reserved_r12 = -1; /* BIT_STRING_SIZE_19 */
static int dummy_hf_lte_rrc_eag_field = -1; /* never registered */
/*--- End of included file: packet-lte-rrc-hf.c ---*/
-#line 87 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 87 "./asn1/lte-rrc/packet-lte-rrc-template.c"
static int hf_lte_rrc_eutra_cap_feat_group_ind_1 = -1;
static int hf_lte_rrc_eutra_cap_feat_group_ind_2 = -1;
@@ -3885,7 +3885,7 @@ static int ett_lte_rrc = -1;
/*--- Included file: packet-lte-rrc-ett.c ---*/
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-ett.c"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-ett.c"
static gint ett_lte_rrc_HandoverCommand = -1;
static gint ett_lte_rrc_T_criticalExtensions = -1;
static gint ett_lte_rrc_T_c1 = -1;
@@ -5541,7 +5541,7 @@ static gint ett_lte_rrc_SBCCH_SL_BCH_Message = -1;
static gint ett_lte_rrc_MasterInformationBlock_SL = -1;
/*--- End of included file: packet-lte-rrc-ett.c ---*/
-#line 271 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 271 "./asn1/lte-rrc/packet-lte-rrc-template.c"
static gint ett_lte_rrc_featureGroupIndicators = -1;
static gint ett_lte_rrc_featureGroupIndRel9Add = -1;
@@ -8035,7 +8035,7 @@ static void sr_lookup_configindex(guint32 config_index, guint16 *periodicity, gu
/*--- Included file: packet-lte-rrc-fn.c ---*/
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-fn.c"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-fn.c"
/*--- PDUs declarations ---*/
static int dissect_HandoverPreparationInformation_v9j0_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_SystemInformationBlockType1_v890_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
@@ -53424,7 +53424,7 @@ static int dissect_UE_EUTRA_Capability_v9a0_IEs_PDU(tvbuff_t *tvb _U_, packet_in
/*--- End of included file: packet-lte-rrc-fn.c ---*/
-#line 2763 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 2763 "./asn1/lte-rrc/packet-lte-rrc-template.c"
static int
dissect_lte_rrc_DL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
@@ -53627,7 +53627,7 @@ void proto_register_lte_rrc(void) {
/*--- Included file: packet-lte-rrc-hfarr.c ---*/
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-hfarr.c"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-hfarr.c"
{ &hf_lte_rrc_lte_rrc_HandoverCommand_PDU,
{ "HandoverCommand", "lte-rrc.HandoverCommand_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -67482,7 +67482,7 @@ void proto_register_lte_rrc(void) {
"BIT_STRING_SIZE_19", HFILL }},
/*--- End of included file: packet-lte-rrc-hfarr.c ---*/
-#line 2964 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 2964 "./asn1/lte-rrc/packet-lte-rrc-template.c"
{ &hf_lte_rrc_eutra_cap_feat_group_ind_1,
{ "Indicator 1", "lte-rrc.eutra_cap_feat_group_ind_1",
@@ -68203,7 +68203,7 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc,
/*--- Included file: packet-lte-rrc-ettarr.c ---*/
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-ettarr.c"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-ettarr.c"
&ett_lte_rrc_HandoverCommand,
&ett_lte_rrc_T_criticalExtensions,
&ett_lte_rrc_T_c1,
@@ -69859,7 +69859,7 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_MasterInformationBlock_SL,
/*--- End of included file: packet-lte-rrc-ettarr.c ---*/
-#line 3683 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 3683 "./asn1/lte-rrc/packet-lte-rrc-template.c"
&ett_lte_rrc_featureGroupIndicators,
&ett_lte_rrc_featureGroupIndRel9Add,
@@ -69926,7 +69926,7 @@ void proto_register_lte_rrc(void) {
/* Register the dissectors defined in lte-rrc.conf */
/*--- Included file: packet-lte-rrc-dis-reg.c ---*/
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-dis-reg.c"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-dis-reg.c"
register_dissector("lte-rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_lte_rrc);
register_dissector("lte-rrc.bcch.dl.sch", dissect_BCCH_DL_SCH_Message_PDU, proto_lte_rrc);
register_dissector("lte-rrc.mcch", dissect_MCCH_Message_PDU, proto_lte_rrc);
@@ -69942,7 +69942,7 @@ void proto_register_lte_rrc(void) {
/*--- End of included file: packet-lte-rrc-dis-reg.c ---*/
-#line 3748 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 3748 "./asn1/lte-rrc/packet-lte-rrc-template.c"
register_init_routine(&lte_rrc_init_protocol);
register_cleanup_routine(&lte_rrc_cleanup_protocol);
diff --git a/epan/dissectors/packet-lte-rrc.h b/epan/dissectors/packet-lte-rrc.h
index e6a588c0b8..7a84714f86 100644
--- a/epan/dissectors/packet-lte-rrc.h
+++ b/epan/dissectors/packet-lte-rrc.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lte-rrc.h */
-/* ../../tools/asn2wrs.py -L -p lte-rrc -c ./lte-rrc.cnf -s ./packet-lte-rrc-template -D . -O ../../epan/dissectors EUTRA-InterNodeDefinitions.asn EUTRA-RRC-Definitions.asn EUTRA-Sidelink-Preconf.asn EUTRA-UE-Variables.asn PC5-RRC-Definitions.asn */
+/* asn2wrs.py -L -p lte-rrc -c ./lte-rrc.cnf -s ./packet-lte-rrc-template -D . -O ../.. EUTRA-InterNodeDefinitions.asn EUTRA-RRC-Definitions.asn EUTRA-Sidelink-Preconf.asn EUTRA-UE-Variables.asn PC5-RRC-Definitions.asn */
/* Input file: packet-lte-rrc-template.h */
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-template.h"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-template.h"
/* packet-llc-rrc-template.h
* Copyright 2009, Anders Broman <anders.broman@ericsson.com>
*
@@ -33,7 +33,7 @@
/*--- Included file: packet-lte-rrc-exp.h ---*/
-#line 1 "../../asn1/lte-rrc/packet-lte-rrc-exp.h"
+#line 1 "./asn1/lte-rrc/packet-lte-rrc-exp.h"
int dissect_lte_rrc_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_lte_rrc_HandoverPreparationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_lte_rrc_UERadioAccessCapabilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -44,6 +44,6 @@ int dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(tvbuff_t *tvb _U_, pa
int dissect_lte_rrc_UE_EUTRA_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-lte-rrc-exp.h ---*/
-#line 27 "../../asn1/lte-rrc/packet-lte-rrc-template.h"
+#line 27 "./asn1/lte-rrc/packet-lte-rrc-template.h"
#endif /* PACKET_LTE_RRC_H */
diff --git a/epan/dissectors/packet-m3ap.c b/epan/dissectors/packet-m3ap.c
index ed9cf518fd..184575613a 100644
--- a/epan/dissectors/packet-m3ap.c
+++ b/epan/dissectors/packet-m3ap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-m3ap.c */
-/* ../../tools/asn2wrs.py -p m3ap -c ./m3ap.cnf -s ./packet-m3ap-template -D . -O ../../epan/dissectors M3AP-CommonDataTypes.asn M3AP-Constants.asn M3AP-Containers.asn M3AP-IEs.asn M3AP-PDU-Contents.asn M3AP-PDU-Descriptions.asn */
+/* asn2wrs.py -p m3ap -c ./m3ap.cnf -s ./packet-m3ap-template -D . -O ../.. M3AP-CommonDataTypes.asn M3AP-Constants.asn M3AP-Containers.asn M3AP-IEs.asn M3AP-PDU-Contents.asn M3AP-PDU-Descriptions.asn */
/* Input file: packet-m3ap-template.c */
-#line 1 "../../asn1/m3ap/packet-m3ap-template.c"
+#line 1 "./asn1/m3ap/packet-m3ap-template.c"
/* packet-m3ap.c
* Routines for M3 Application Protocol packet dissection
*
@@ -58,7 +58,7 @@ static dissector_handle_t m3ap_handle=NULL;
/*--- Included file: packet-m3ap-val.h ---*/
-#line 1 "../../asn1/m3ap/packet-m3ap-val.h"
+#line 1 "./asn1/m3ap/packet-m3ap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -104,7 +104,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-m3ap-val.h ---*/
-#line 52 "../../asn1/m3ap/packet-m3ap-template.c"
+#line 52 "./asn1/m3ap/packet-m3ap-template.c"
/* Initialize the protocol and registered fields */
static int proto_m3ap = -1;
@@ -115,7 +115,7 @@ static int hf_m3ap_IPAddress_v6 = -1;
/*--- Included file: packet-m3ap-hf.c ---*/
-#line 1 "../../asn1/m3ap/packet-m3ap-hf.c"
+#line 1 "./asn1/m3ap/packet-m3ap-hf.c"
static int hf_m3ap_Absolute_Time_ofMBMS_Data_PDU = -1; /* Absolute_Time_ofMBMS_Data */
static int hf_m3ap_AllocationAndRetentionPriority_PDU = -1; /* AllocationAndRetentionPriority */
static int hf_m3ap_Cause_PDU = -1; /* Cause */
@@ -213,14 +213,14 @@ static int hf_m3ap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
static int hf_m3ap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-m3ap-hf.c ---*/
-#line 61 "../../asn1/m3ap/packet-m3ap-template.c"
+#line 61 "./asn1/m3ap/packet-m3ap-template.c"
/* Initialize the subtree pointers */
static int ett_m3ap = -1;
/*--- Included file: packet-m3ap-ett.c ---*/
-#line 1 "../../asn1/m3ap/packet-m3ap-ett.c"
+#line 1 "./asn1/m3ap/packet-m3ap-ett.c"
static gint ett_m3ap_PrivateIE_ID = -1;
static gint ett_m3ap_ProtocolIE_Container = -1;
static gint ett_m3ap_ProtocolIE_Field = -1;
@@ -267,7 +267,7 @@ static gint ett_m3ap_SuccessfulOutcome = -1;
static gint ett_m3ap_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-m3ap-ett.c ---*/
-#line 66 "../../asn1/m3ap/packet-m3ap-template.c"
+#line 66 "./asn1/m3ap/packet-m3ap-template.c"
static expert_field ei_m3ap_invalid_ip_address_len = EI_INIT;
@@ -299,7 +299,7 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
/*--- Included file: packet-m3ap-fn.c ---*/
-#line 1 "../../asn1/m3ap/packet-m3ap-fn.c"
+#line 1 "./asn1/m3ap/packet-m3ap-fn.c"
static const value_string m3ap_Criticality_vals[] = {
{ 0, "reject" },
@@ -379,7 +379,7 @@ dissect_m3ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 66 "../../asn1/m3ap/m3ap.cnf"
+#line 66 "./asn1/m3ap/m3ap.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
val_to_str_ext(ProcedureCode, &m3ap_ProcedureCode_vals_ext,
"unknown message"));
@@ -423,7 +423,7 @@ dissect_m3ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
-#line 51 "../../asn1/m3ap/m3ap.cnf"
+#line 51 "./asn1/m3ap/m3ap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &m3ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
}
@@ -578,7 +578,7 @@ dissect_m3ap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_m3ap_Absolute_Time_ofMBMS_Data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 153 "../../asn1/m3ap/m3ap.cnf"
+#line 153 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
const gchar *time_str;
gint tvb_len;
@@ -876,7 +876,7 @@ dissect_m3ap_ExtendedMCE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_m3ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 119 "../../asn1/m3ap/m3ap.cnf"
+#line 119 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -947,7 +947,7 @@ dissect_m3ap_GTP_TEID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_m3ap_IPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 130 "../../asn1/m3ap/m3ap.cnf"
+#line 130 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
gint tvb_len;
@@ -1051,7 +1051,7 @@ dissect_m3ap_MBMSServiceArea1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_m3ap_MBMS_Service_Area(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 169 "../../asn1/m3ap/m3ap.cnf"
+#line 169 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
guint16 tvb_len;
@@ -1074,7 +1074,7 @@ dissect_m3ap_MBMS_Service_Area(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_m3ap_MBMS_Session_Duration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 183 "../../asn1/m3ap/m3ap.cnf"
+#line 183 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
guint16 tvb_len;
@@ -1117,7 +1117,7 @@ dissect_m3ap_MCEname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_m3ap_MinimumTimeToMBMSDataTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 199 "../../asn1/m3ap/m3ap.cnf"
+#line 199 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
guint16 tvb_len;
@@ -1206,7 +1206,7 @@ static const per_sequence_t MBMSSessionStartRequest_sequence[] = {
static int
dissect_m3ap_MBMSSessionStartRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 213 "../../asn1/m3ap/m3ap.cnf"
+#line 213 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Request ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1223,7 +1223,7 @@ static const per_sequence_t MBMSSessionStartResponse_sequence[] = {
static int
dissect_m3ap_MBMSSessionStartResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 215 "../../asn1/m3ap/m3ap.cnf"
+#line 215 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Response ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1240,7 +1240,7 @@ static const per_sequence_t MBMSSessionStartFailure_sequence[] = {
static int
dissect_m3ap_MBMSSessionStartFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 217 "../../asn1/m3ap/m3ap.cnf"
+#line 217 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Failure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1257,7 +1257,7 @@ static const per_sequence_t MBMSSessionStopRequest_sequence[] = {
static int
dissect_m3ap_MBMSSessionStopRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 219 "../../asn1/m3ap/m3ap.cnf"
+#line 219 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Stop Request ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1274,7 +1274,7 @@ static const per_sequence_t MBMSSessionStopResponse_sequence[] = {
static int
dissect_m3ap_MBMSSessionStopResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 221 "../../asn1/m3ap/m3ap.cnf"
+#line 221 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Stop Response ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1291,7 +1291,7 @@ static const per_sequence_t MBMSSessionUpdateRequest_sequence[] = {
static int
dissect_m3ap_MBMSSessionUpdateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 223 "../../asn1/m3ap/m3ap.cnf"
+#line 223 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Request ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1308,7 +1308,7 @@ static const per_sequence_t MBMSSessionUpdateResponse_sequence[] = {
static int
dissect_m3ap_MBMSSessionUpdateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 225 "../../asn1/m3ap/m3ap.cnf"
+#line 225 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Response ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1325,7 +1325,7 @@ static const per_sequence_t MBMSSessionUpdateFailure_sequence[] = {
static int
dissect_m3ap_MBMSSessionUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 227 "../../asn1/m3ap/m3ap.cnf"
+#line 227 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Failure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1342,7 +1342,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_m3ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 229 "../../asn1/m3ap/m3ap.cnf"
+#line 229 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Error Indication ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1359,7 +1359,7 @@ static const per_sequence_t Reset_sequence[] = {
static int
dissect_m3ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 231 "../../asn1/m3ap/m3ap.cnf"
+#line 231 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1427,7 +1427,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = {
static int
dissect_m3ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 233 "../../asn1/m3ap/m3ap.cnf"
+#line 233 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset Acknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1458,7 +1458,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_m3ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 235 "../../asn1/m3ap/m3ap.cnf"
+#line 235 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Private Message ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1475,7 +1475,7 @@ static const per_sequence_t M3SetupRequest_sequence[] = {
static int
dissect_m3ap_M3SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 243 "../../asn1/m3ap/m3ap.cnf"
+#line 243 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Request ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1506,7 +1506,7 @@ static const per_sequence_t M3SetupResponse_sequence[] = {
static int
dissect_m3ap_M3SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 245 "../../asn1/m3ap/m3ap.cnf"
+#line 245 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Response ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1523,7 +1523,7 @@ static const per_sequence_t M3SetupFailure_sequence[] = {
static int
dissect_m3ap_M3SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 247 "../../asn1/m3ap/m3ap.cnf"
+#line 247 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Failure ");
@@ -1542,7 +1542,7 @@ static const per_sequence_t MCEConfigurationUpdate_sequence[] = {
static int
dissect_m3ap_MCEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 237 "../../asn1/m3ap/m3ap.cnf"
+#line 237 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1559,7 +1559,7 @@ static const per_sequence_t MCEConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_m3ap_MCEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 239 "../../asn1/m3ap/m3ap.cnf"
+#line 239 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update Acknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1576,7 +1576,7 @@ static const per_sequence_t MCEConfigurationUpdateFailure_sequence[] = {
static int
dissect_m3ap_MCEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 241 "../../asn1/m3ap/m3ap.cnf"
+#line 241 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update Failure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1589,7 +1589,7 @@ dissect_m3ap_MCEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_m3ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 73 "../../asn1/m3ap/m3ap.cnf"
+#line 73 "./asn1/m3ap/m3ap.cnf"
message_type = INITIATING_MESSAGE;
offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
@@ -1617,7 +1617,7 @@ dissect_m3ap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_m3ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 76 "../../asn1/m3ap/m3ap.cnf"
+#line 76 "./asn1/m3ap/m3ap.cnf"
message_type = SUCCESSFUL_OUTCOME;
offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
@@ -1645,7 +1645,7 @@ dissect_m3ap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_m3ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 79 "../../asn1/m3ap/m3ap.cnf"
+#line 79 "./asn1/m3ap/m3ap.cnf"
message_type = UNSUCCESSFUL_OUTCOME;
@@ -2017,7 +2017,7 @@ static int dissect_M3AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-m3ap-fn.c ---*/
-#line 96 "../../asn1/m3ap/packet-m3ap-template.c"
+#line 96 "./asn1/m3ap/packet-m3ap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -2086,7 +2086,7 @@ void proto_register_m3ap(void) {
/*--- Included file: packet-m3ap-hfarr.c ---*/
-#line 1 "../../asn1/m3ap/packet-m3ap-hfarr.c"
+#line 1 "./asn1/m3ap/packet-m3ap-hfarr.c"
{ &hf_m3ap_Absolute_Time_ofMBMS_Data_PDU,
{ "Absolute-Time-ofMBMS-Data", "m3ap.Absolute_Time_ofMBMS_Data",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2469,7 +2469,7 @@ void proto_register_m3ap(void) {
"UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-m3ap-hfarr.c ---*/
-#line 163 "../../asn1/m3ap/packet-m3ap-template.c"
+#line 163 "./asn1/m3ap/packet-m3ap-template.c"
};
/* List of subtrees */
@@ -2477,7 +2477,7 @@ void proto_register_m3ap(void) {
&ett_m3ap,
/*--- Included file: packet-m3ap-ettarr.c ---*/
-#line 1 "../../asn1/m3ap/packet-m3ap-ettarr.c"
+#line 1 "./asn1/m3ap/packet-m3ap-ettarr.c"
&ett_m3ap_PrivateIE_ID,
&ett_m3ap_ProtocolIE_Container,
&ett_m3ap_ProtocolIE_Field,
@@ -2524,7 +2524,7 @@ void proto_register_m3ap(void) {
&ett_m3ap_UnsuccessfulOutcome,
/*--- End of included file: packet-m3ap-ettarr.c ---*/
-#line 169 "../../asn1/m3ap/packet-m3ap-template.c"
+#line 169 "./asn1/m3ap/packet-m3ap-template.c"
};
expert_module_t* expert_m3ap;
@@ -2563,7 +2563,7 @@ proto_reg_handoff_m3ap(void)
inited = TRUE;
/*--- Included file: packet-m3ap-dis-tab.c ---*/
-#line 1 "../../asn1/m3ap/packet-m3ap-dis-tab.c"
+#line 1 "./asn1/m3ap/packet-m3ap-dis-tab.c"
dissector_add_uint("m3ap.ies", id_MME_MBMS_M3AP_ID, create_dissector_handle(dissect_MME_MBMS_M3AP_ID_PDU, proto_m3ap));
dissector_add_uint("m3ap.ies", id_MCE_MBMS_M3AP_ID, create_dissector_handle(dissect_MCE_MBMS_M3AP_ID_PDU, proto_m3ap));
dissector_add_uint("m3ap.ies", id_TMGI, create_dissector_handle(dissect_TMGI_PDU, proto_m3ap));
@@ -2606,7 +2606,7 @@ proto_reg_handoff_m3ap(void)
/*--- End of included file: packet-m3ap-dis-tab.c ---*/
-#line 206 "../../asn1/m3ap/packet-m3ap-template.c"
+#line 206 "./asn1/m3ap/packet-m3ap-template.c"
dissector_add_uint("m3ap.extension", 17, create_dissector_handle(dissect_AllocationAndRetentionPriority_PDU, proto_m3ap));
}
else {
diff --git a/epan/dissectors/packet-mms.c b/epan/dissectors/packet-mms.c
index 2ce04e2bbf..7731de3b89 100644
--- a/epan/dissectors/packet-mms.c
+++ b/epan/dissectors/packet-mms.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-mms.c */
-/* ../../tools/asn2wrs.py -b -p mms -c ./mms.cnf -s ./packet-mms-template -D . -O ../../epan/dissectors mms.asn */
+/* asn2wrs.py -b -p mms -c ./mms.cnf -s ./packet-mms-template -D . -O ../.. mms.asn */
/* Input file: packet-mms-template.c */
-#line 1 "../../asn1/mms/packet-mms-template.c"
+#line 1 "./asn1/mms/packet-mms-template.c"
/* packet-mms_asn1.c
*
* Ronnie Sahlberg 2005
@@ -52,7 +52,7 @@ static int proto_mms = -1;
/*--- Included file: packet-mms-hf.c ---*/
-#line 1 "../../asn1/mms/packet-mms-hf.c"
+#line 1 "./asn1/mms/packet-mms-hf.c"
static int hf_mms_confirmed_RequestPDU = -1; /* Confirmed_RequestPDU */
static int hf_mms_confirmed_ResponsePDU = -1; /* Confirmed_ResponsePDU */
static int hf_mms_confirmed_ErrorPDU = -1; /* Confirmed_ErrorPDU */
@@ -722,13 +722,13 @@ static int hf_mms_Transitions_idle_to_active = -1;
static int hf_mms_Transitions_any_to_deleted = -1;
/*--- End of included file: packet-mms-hf.c ---*/
-#line 46 "../../asn1/mms/packet-mms-template.c"
+#line 46 "./asn1/mms/packet-mms-template.c"
/* Initialize the subtree pointers */
static gint ett_mms = -1;
/*--- Included file: packet-mms-ett.c ---*/
-#line 1 "../../asn1/mms/packet-mms-ett.c"
+#line 1 "./asn1/mms/packet-mms-ett.c"
static gint ett_mms_MMSpdu = -1;
static gint ett_mms_Confirmed_RequestPDU = -1;
static gint ett_mms_SEQUENCE_OF_Modifier = -1;
@@ -939,7 +939,7 @@ static gint ett_mms_DirectoryEntry = -1;
static gint ett_mms_FileAttributes = -1;
/*--- End of included file: packet-mms-ett.c ---*/
-#line 50 "../../asn1/mms/packet-mms-template.c"
+#line 50 "./asn1/mms/packet-mms-template.c"
static expert_field ei_mms_mal_timeofday_encoding = EI_INIT;
static expert_field ei_mms_mal_utctime_encoding = EI_INIT;
@@ -947,7 +947,7 @@ static expert_field ei_mms_zero_pdu = EI_INIT;
/*--- Included file: packet-mms-fn.c ---*/
-#line 1 "../../asn1/mms/packet-mms-fn.c"
+#line 1 "./asn1/mms/packet-mms-fn.c"
/*--- Cyclic dependencies ---*/
/* TypeSpecification -> TypeSpecification/array -> TypeSpecification */
@@ -1832,7 +1832,7 @@ dissect_mms_FloatingPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_mms_TimeOfDay(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 48 "../../asn1/mms/mms.cnf"
+#line 48 "./asn1/mms/mms.cnf"
guint32 len;
guint32 milliseconds;
@@ -1912,7 +1912,7 @@ dissect_mms_MMSString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_mms_UtcTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 99 "../../asn1/mms/mms.cnf"
+#line 99 "./asn1/mms/mms.cnf"
guint32 len;
guint32 seconds;
@@ -2332,7 +2332,7 @@ dissect_mms_Output_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_mms_T_ap_title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 25 "../../asn1/mms/mms.cnf"
+#line 25 "./asn1/mms/mms.cnf"
offset=dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_mms_ap_title);
@@ -2344,7 +2344,7 @@ dissect_mms_T_ap_title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_mms_T_ap_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 28 "../../asn1/mms/mms.cnf"
+#line 28 "./asn1/mms/mms.cnf"
offset=dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ap_invocation_id);
@@ -2356,7 +2356,7 @@ dissect_mms_T_ap_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_mms_T_ae_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 31 "../../asn1/mms/mms.cnf"
+#line 31 "./asn1/mms/mms.cnf"
offset=dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_qualifier);
@@ -2368,7 +2368,7 @@ dissect_mms_T_ae_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_mms_T_ae_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 34 "../../asn1/mms/mms.cnf"
+#line 34 "./asn1/mms/mms.cnf"
offset=dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_invocation_id);
@@ -7026,7 +7026,7 @@ static const ber_choice_t MMSpdu_choice[] = {
int
dissect_mms_MMSpdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 37 "../../asn1/mms/mms.cnf"
+#line 37 "./asn1/mms/mms.cnf"
gint branch_taken;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -7047,7 +7047,7 @@ dissect_mms_MMSpdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
/*--- End of included file: packet-mms-fn.c ---*/
-#line 56 "../../asn1/mms/packet-mms-template.c"
+#line 56 "./asn1/mms/packet-mms-template.c"
/*
* Dissect MMS PDUs inside a PPDU.
@@ -7089,7 +7089,7 @@ void proto_register_mms(void) {
{
/*--- Included file: packet-mms-hfarr.c ---*/
-#line 1 "../../asn1/mms/packet-mms-hfarr.c"
+#line 1 "./asn1/mms/packet-mms-hfarr.c"
{ &hf_mms_confirmed_RequestPDU,
{ "confirmed-RequestPDU", "mms.confirmed_RequestPDU_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -9756,7 +9756,7 @@ void proto_register_mms(void) {
NULL, HFILL }},
/*--- End of included file: packet-mms-hfarr.c ---*/
-#line 96 "../../asn1/mms/packet-mms-template.c"
+#line 96 "./asn1/mms/packet-mms-template.c"
};
/* List of subtrees */
@@ -9764,7 +9764,7 @@ void proto_register_mms(void) {
&ett_mms,
/*--- Included file: packet-mms-ettarr.c ---*/
-#line 1 "../../asn1/mms/packet-mms-ettarr.c"
+#line 1 "./asn1/mms/packet-mms-ettarr.c"
&ett_mms_MMSpdu,
&ett_mms_Confirmed_RequestPDU,
&ett_mms_SEQUENCE_OF_Modifier,
@@ -9975,7 +9975,7 @@ void proto_register_mms(void) {
&ett_mms_FileAttributes,
/*--- End of included file: packet-mms-ettarr.c ---*/
-#line 102 "../../asn1/mms/packet-mms-template.c"
+#line 102 "./asn1/mms/packet-mms-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-mms.h b/epan/dissectors/packet-mms.h
index 280fd4e115..9515944938 100644
--- a/epan/dissectors/packet-mms.h
+++ b/epan/dissectors/packet-mms.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-mms.h */
-/* ../../tools/asn2wrs.py -b -p mms -c ./mms.cnf -s ./packet-mms-template -D . -O ../../epan/dissectors mms.asn */
+/* asn2wrs.py -b -p mms -c ./mms.cnf -s ./packet-mms-template -D . -O ../.. mms.asn */
/* Input file: packet-mms-template.h */
-#line 1 "../../asn1/mms/packet-mms-template.h"
+#line 1 "./asn1/mms/packet-mms-template.h"
/* packet-mms.h
* Routines for MMS packet dissection
* Ronnie Sahlberg 2005
@@ -34,12 +34,12 @@
/*--- Included file: packet-mms-exp.h ---*/
-#line 1 "../../asn1/mms/packet-mms-exp.h"
+#line 1 "./asn1/mms/packet-mms-exp.h"
extern const value_string mms_MMSpdu_vals[];
int dissect_mms_MMSpdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-mms-exp.h ---*/
-#line 28 "../../asn1/mms/packet-mms-template.h"
+#line 28 "./asn1/mms/packet-mms-template.h"
#endif /* PACKET_MMS_H */
diff --git a/epan/dissectors/packet-mpeg-audio.c b/epan/dissectors/packet-mpeg-audio.c
index 5c23b9e686..b6dfeccc4d 100644
--- a/epan/dissectors/packet-mpeg-audio.c
+++ b/epan/dissectors/packet-mpeg-audio.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-mpeg-audio.c */
-/* ../../tools/asn2wrs.py -p mpeg-audio -c ./mpeg-audio.cnf -s ./packet-mpeg-audio-template -D . -O ../../epan/dissectors mpeg-audio.asn */
+/* asn2wrs.py -p mpeg-audio -c ./mpeg-audio.cnf -s ./packet-mpeg-audio-template -D . -O ../.. mpeg-audio.asn */
/* Input file: packet-mpeg-audio-template.c */
-#line 1 "../../asn1/mpeg-audio/packet-mpeg-audio-template.c"
+#line 1 "./asn1/mpeg-audio/packet-mpeg-audio-template.c"
/* MPEG audio packet decoder.
* Written by Shaun Jackman <sjackman@gmail.com>.
* Copyright 2007 Shaun Jackman
@@ -39,7 +39,7 @@
/*--- Included file: packet-mpeg-audio-hf.c ---*/
-#line 1 "../../asn1/mpeg-audio/packet-mpeg-audio-hf.c"
+#line 1 "./asn1/mpeg-audio/packet-mpeg-audio-hf.c"
static int hf_mpeg_audio_sync = -1; /* BIT_STRING_SIZE_11 */
static int hf_mpeg_audio_version = -1; /* T_version */
static int hf_mpeg_audio_layer = -1; /* T_layer */
@@ -64,18 +64,18 @@ static int hf_mpeg_audio_track = -1; /* INTEGER_0_255 */
static int hf_mpeg_audio_genre = -1; /* T_genre */
/*--- End of included file: packet-mpeg-audio-hf.c ---*/
-#line 33 "../../asn1/mpeg-audio/packet-mpeg-audio-template.c"
+#line 33 "./asn1/mpeg-audio/packet-mpeg-audio-template.c"
/*--- Included file: packet-mpeg-audio-ett.c ---*/
-#line 1 "../../asn1/mpeg-audio/packet-mpeg-audio-ett.c"
+#line 1 "./asn1/mpeg-audio/packet-mpeg-audio-ett.c"
static gint ett_mpeg_audio_Audio = -1;
static gint ett_mpeg_audio_ID3v1 = -1;
/*--- End of included file: packet-mpeg-audio-ett.c ---*/
-#line 34 "../../asn1/mpeg-audio/packet-mpeg-audio-template.c"
+#line 34 "./asn1/mpeg-audio/packet-mpeg-audio-template.c"
/*--- Included file: packet-mpeg-audio-fn.c ---*/
-#line 1 "../../asn1/mpeg-audio/packet-mpeg-audio-fn.c"
+#line 1 "./asn1/mpeg-audio/packet-mpeg-audio-fn.c"
static int
@@ -443,7 +443,7 @@ dissect_mpeg_audio_ID3v1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
/*--- End of included file: packet-mpeg-audio-fn.c ---*/
-#line 35 "../../asn1/mpeg-audio/packet-mpeg-audio-template.c"
+#line 35 "./asn1/mpeg-audio/packet-mpeg-audio-template.c"
void proto_register_mpeg_audio(void);
void proto_reg_handoff_mpeg_audio(void);
@@ -559,7 +559,7 @@ proto_register_mpeg_audio(void)
static hf_register_info hf[] = {
/*--- Included file: packet-mpeg-audio-hfarr.c ---*/
-#line 1 "../../asn1/mpeg-audio/packet-mpeg-audio-hfarr.c"
+#line 1 "./asn1/mpeg-audio/packet-mpeg-audio-hfarr.c"
{ &hf_mpeg_audio_sync,
{ "sync", "mpeg-audio.sync",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -650,7 +650,7 @@ proto_register_mpeg_audio(void)
NULL, HFILL }},
/*--- End of included file: packet-mpeg-audio-hfarr.c ---*/
-#line 149 "../../asn1/mpeg-audio/packet-mpeg-audio-template.c"
+#line 149 "./asn1/mpeg-audio/packet-mpeg-audio-template.c"
{ &hf_mpeg_audio_data,
{ "Data", "mpeg-audio.data",
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
@@ -669,12 +669,12 @@ proto_register_mpeg_audio(void)
static gint *ett[] = {
/*--- Included file: packet-mpeg-audio-ettarr.c ---*/
-#line 1 "../../asn1/mpeg-audio/packet-mpeg-audio-ettarr.c"
+#line 1 "./asn1/mpeg-audio/packet-mpeg-audio-ettarr.c"
&ett_mpeg_audio_Audio,
&ett_mpeg_audio_ID3v1,
/*--- End of included file: packet-mpeg-audio-ettarr.c ---*/
-#line 166 "../../asn1/mpeg-audio/packet-mpeg-audio-template.c"
+#line 166 "./asn1/mpeg-audio/packet-mpeg-audio-template.c"
};
proto_mpeg_audio = proto_register_protocol(
diff --git a/epan/dissectors/packet-mpeg-pes.c b/epan/dissectors/packet-mpeg-pes.c
index de4485825a..9c2c30e053 100644
--- a/epan/dissectors/packet-mpeg-pes.c
+++ b/epan/dissectors/packet-mpeg-pes.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-mpeg-pes.c */
-/* ../../tools/asn2wrs.py -p mpeg-pes -c ./mpeg-pes.cnf -s ./packet-mpeg-pes-template -D . -O ../../epan/dissectors mpeg-pes.asn */
+/* asn2wrs.py -p mpeg-pes -c ./mpeg-pes.cnf -s ./packet-mpeg-pes-template -D . -O ../.. mpeg-pes.asn */
/* Input file: packet-mpeg-pes-template.c */
-#line 1 "../../asn1/mpeg-pes/packet-mpeg-pes-template.c"
+#line 1 "./asn1/mpeg-pes/packet-mpeg-pes-template.c"
/* MPEG Packetized Elementary Stream (PES) packet decoder.
* Written by Shaun Jackman <sjackman@gmail.com>.
* Copyright 2007 Shaun Jackman
@@ -39,7 +39,7 @@
/*--- Included file: packet-mpeg-pes-hf.c ---*/
-#line 1 "../../asn1/mpeg-pes/packet-mpeg-pes-hf.c"
+#line 1 "./asn1/mpeg-pes/packet-mpeg-pes-hf.c"
static int hf_mpeg_pes_prefix = -1; /* OCTET_STRING_SIZE_3 */
static int hf_mpeg_pes_stream = -1; /* T_stream */
static int hf_mpeg_pes_length = -1; /* INTEGER_0_65535 */
@@ -92,10 +92,10 @@ static int hf_mpeg_pes_frame_type = -1; /* T_frame_type */
static int hf_mpeg_pes_vbv_delay = -1; /* BIT_STRING_SIZE_16 */
/*--- End of included file: packet-mpeg-pes-hf.c ---*/
-#line 33 "../../asn1/mpeg-pes/packet-mpeg-pes-template.c"
+#line 33 "./asn1/mpeg-pes/packet-mpeg-pes-template.c"
/*--- Included file: packet-mpeg-pes-ett.c ---*/
-#line 1 "../../asn1/mpeg-pes/packet-mpeg-pes-ett.c"
+#line 1 "./asn1/mpeg-pes/packet-mpeg-pes-ett.c"
static gint ett_mpeg_pes_PES = -1;
static gint ett_mpeg_pes_Stream = -1;
static gint ett_mpeg_pes_Sequence_header = -1;
@@ -104,10 +104,10 @@ static gint ett_mpeg_pes_Group_of_pictures = -1;
static gint ett_mpeg_pes_Picture = -1;
/*--- End of included file: packet-mpeg-pes-ett.c ---*/
-#line 34 "../../asn1/mpeg-pes/packet-mpeg-pes-template.c"
+#line 34 "./asn1/mpeg-pes/packet-mpeg-pes-template.c"
/*--- Included file: packet-mpeg-pes-fn.c ---*/
-#line 1 "../../asn1/mpeg-pes/packet-mpeg-pes-fn.c"
+#line 1 "./asn1/mpeg-pes/packet-mpeg-pes-fn.c"
static int
@@ -472,7 +472,7 @@ dissect_mpeg_pes_Picture(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
/*--- End of included file: packet-mpeg-pes-fn.c ---*/
-#line 35 "../../asn1/mpeg-pes/packet-mpeg-pes-template.c"
+#line 35 "./asn1/mpeg-pes/packet-mpeg-pes-template.c"
void proto_register_mpeg_pes(void);
void proto_reg_handoff_mpeg_pes(void);
@@ -982,7 +982,7 @@ proto_register_mpeg_pes(void)
static hf_register_info hf[] = {
/*--- Included file: packet-mpeg-pes-hfarr.c ---*/
-#line 1 "../../asn1/mpeg-pes/packet-mpeg-pes-hfarr.c"
+#line 1 "./asn1/mpeg-pes/packet-mpeg-pes-hfarr.c"
{ &hf_mpeg_pes_prefix,
{ "prefix", "mpeg-pes.prefix",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -1185,7 +1185,7 @@ proto_register_mpeg_pes(void)
"BIT_STRING_SIZE_16", HFILL }},
/*--- End of included file: packet-mpeg-pes-hfarr.c ---*/
-#line 543 "../../asn1/mpeg-pes/packet-mpeg-pes-template.c"
+#line 543 "./asn1/mpeg-pes/packet-mpeg-pes-template.c"
{ &hf_mpeg_pes_pack_header,
{ "Pack header", "mpeg-pes.pack",
FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
@@ -1294,7 +1294,7 @@ proto_register_mpeg_pes(void)
static gint *ett[] = {
/*--- Included file: packet-mpeg-pes-ettarr.c ---*/
-#line 1 "../../asn1/mpeg-pes/packet-mpeg-pes-ettarr.c"
+#line 1 "./asn1/mpeg-pes/packet-mpeg-pes-ettarr.c"
&ett_mpeg_pes_PES,
&ett_mpeg_pes_Stream,
&ett_mpeg_pes_Sequence_header,
@@ -1303,7 +1303,7 @@ proto_register_mpeg_pes(void)
&ett_mpeg_pes_Picture,
/*--- End of included file: packet-mpeg-pes-ettarr.c ---*/
-#line 650 "../../asn1/mpeg-pes/packet-mpeg-pes-template.c"
+#line 650 "./asn1/mpeg-pes/packet-mpeg-pes-template.c"
&ett_mpeg_pes_pack_header,
&ett_mpeg_pes_header_data,
&ett_mpeg_pes_trick_mode
diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c
index 142e491499..86ac8b417b 100644
--- a/epan/dissectors/packet-nbap.c
+++ b/epan/dissectors/packet-nbap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-nbap.c */
-/* ../../tools/asn2wrs.py -p nbap -c ./nbap.cnf -s ./packet-nbap-template -D . -O ../../epan/dissectors NBAP-CommonDataTypes.asn NBAP-Constants.asn NBAP-Containers.asn NBAP-IEs.asn NBAP-PDU-Contents.asn NBAP-PDU-Descriptions.asn */
+/* asn2wrs.py -p nbap -c ./nbap.cnf -s ./packet-nbap-template -D . -O ../.. NBAP-CommonDataTypes.asn NBAP-Constants.asn NBAP-Containers.asn NBAP-IEs.asn NBAP-PDU-Contents.asn NBAP-PDU-Descriptions.asn */
/* Input file: packet-nbap-template.c */
-#line 1 "../../asn1/nbap/packet-nbap-template.c"
+#line 1 "./asn1/nbap/packet-nbap-template.c"
/* packet-nbap-template.c
* Routines for UMTS Node B Application Part(NBAP) packet dissection
* Copyright 2005, 2009 Anders Broman <anders.broman@ericsson.com>
@@ -80,7 +80,7 @@ static int cfn;
/*--- Included file: packet-nbap-val.h ---*/
-#line 1 "../../asn1/nbap/packet-nbap-val.h"
+#line 1 "./asn1/nbap/packet-nbap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -1536,7 +1536,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-nbap-val.h ---*/
-#line 74 "../../asn1/nbap/packet-nbap-template.c"
+#line 74 "./asn1/nbap/packet-nbap-template.c"
/* Initialize the protocol and registered fields */
static int proto_nbap = -1;
@@ -1546,7 +1546,7 @@ static int hf_nbap_transportLayerAddress_nsap = -1;
/*--- Included file: packet-nbap-hf.c ---*/
-#line 1 "../../asn1/nbap/packet-nbap-hf.c"
+#line 1 "./asn1/nbap/packet-nbap-hf.c"
static int hf_nbap_ActivationInformation_PDU = -1; /* ActivationInformation */
static int hf_nbap_Additional_EDCH_Setup_Info_PDU = -1; /* Additional_EDCH_Setup_Info */
static int hf_nbap_Additional_EDCH_Cell_Information_Response_List_PDU = -1; /* Additional_EDCH_Cell_Information_Response_List */
@@ -4840,7 +4840,7 @@ static int hf_nbap_RACH_SubChannelNumbers_subCh1 = -1;
static int hf_nbap_RACH_SubChannelNumbers_subCh0 = -1;
/*--- End of included file: packet-nbap-hf.c ---*/
-#line 82 "../../asn1/nbap/packet-nbap-template.c"
+#line 82 "./asn1/nbap/packet-nbap-template.c"
/* Initialize the subtree pointers */
static int ett_nbap = -1;
@@ -4850,7 +4850,7 @@ static int ett_nbap_ib_sg_data = -1;
/*--- Included file: packet-nbap-ett.c ---*/
-#line 1 "../../asn1/nbap/packet-nbap-ett.c"
+#line 1 "./asn1/nbap/packet-nbap-ett.c"
static gint ett_nbap_PrivateIE_ID = -1;
static gint ett_nbap_ProcedureID = -1;
static gint ett_nbap_TransactionID = -1;
@@ -6479,7 +6479,7 @@ static gint ett_nbap_UnsuccessfulOutcome = -1;
static gint ett_nbap_Outcome = -1;
/*--- End of included file: packet-nbap-ett.c ---*/
-#line 90 "../../asn1/nbap/packet-nbap-template.c"
+#line 90 "./asn1/nbap/packet-nbap-template.c"
static expert_field ei_nbap_no_find_comm_context_id = EI_INIT;
static expert_field ei_nbap_no_find_port_info = EI_INIT;
@@ -6723,7 +6723,7 @@ static void add_hsdsch_bind(packet_info * pinfo);
/*--- Included file: packet-nbap-fn.c ---*/
-#line 1 "../../asn1/nbap/packet-nbap-fn.c"
+#line 1 "./asn1/nbap/packet-nbap-fn.c"
static const value_string nbap_Criticality_vals[] = {
{ 0, "reject" },
@@ -6865,7 +6865,7 @@ dissect_nbap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 92 "../../asn1/nbap/nbap.cnf"
+#line 92 "./asn1/nbap/nbap.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str(ProcedureCode, nbap_ProcedureCode_vals,
"unknown message"));
@@ -6899,7 +6899,7 @@ static const per_sequence_t ProcedureID_sequence[] = {
static int
dissect_nbap_ProcedureID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 99 "../../asn1/nbap/nbap.cnf"
+#line 99 "./asn1/nbap/nbap.cnf"
ProcedureCode = 0xFFFF;
ddMode = 0xFFFF;
ProcedureID = NULL;
@@ -6907,7 +6907,7 @@ dissect_nbap_ProcedureID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_ProcedureID, ProcedureID_sequence);
-#line 105 "../../asn1/nbap/nbap.cnf"
+#line 105 "./asn1/nbap/nbap.cnf"
ProcedureID = wmem_strdup_printf(wmem_packet_scope(), "%s/%s",
val_to_str(ProcedureCode, VALS(nbap_ProcedureCode_vals), "unknown(%u)"),
val_to_str(ddMode, VALS(nbap_DdMode_vals), "unknown(%u)"));
@@ -8152,7 +8152,7 @@ dissect_nbap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
-#line 81 "../../asn1/nbap/nbap.cnf"
+#line 81 "./asn1/nbap/nbap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &nbap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
}
@@ -8700,7 +8700,7 @@ dissect_nbap_Additional_EDCH_RL_Specific_Information_To_Setup_List(tvbuff_t *tvb
static int
dissect_nbap_E_DCH_MACdFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 699 "../../asn1/nbap/nbap.cnf"
+#line 699 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfEDCHMACdFlows_1, &e_dch_macdflow_id, FALSE);
@@ -8716,7 +8716,7 @@ dissect_nbap_E_DCH_MACdFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_nbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 712 "../../asn1/nbap/nbap.cnf"
+#line 712 "./asn1/nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8740,7 +8740,7 @@ dissect_nbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_nbap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 619 "../../asn1/nbap/nbap.cnf"
+#line 619 "./asn1/nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_item *item;
proto_tree *subtree, *nsap_tree;
@@ -10047,7 +10047,7 @@ dissect_nbap_AddorDeleteIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_nbap_CFN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2151 "../../asn1/nbap/nbap.cnf"
+#line 2151 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &cfn, FALSE);
@@ -10300,7 +10300,7 @@ dissect_nbap_AvailabilityStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_nbap_HSDSCH_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2116 "../../asn1/nbap/nbap.cnf"
+#line 2116 "./asn1/nbap/nbap.cnf"
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
address null_addr;
conversation_t *conversation = NULL;
@@ -10541,7 +10541,7 @@ dissect_nbap_BundlingModeIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_nbap_CommonTransportChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 694 "../../asn1/nbap/nbap.cnf"
+#line 694 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &commontransportchannelid, FALSE);
@@ -11352,7 +11352,7 @@ dissect_nbap_Common_E_DCH_HSDPCCH_InfoItem(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_nbap_CommonPhysicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 689 "../../asn1/nbap/nbap.cnf"
+#line 689 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &commonphysicalchannelid, FALSE);
@@ -11522,7 +11522,7 @@ dissect_nbap_Common_E_DCH_Resource_Combination_InfoList(tvbuff_t *tvb _U_, int o
static int
dissect_nbap_Common_MACFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1975 "../../asn1/nbap/nbap.cnf"
+#line 1975 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfCommonMACFlows_1, &common_macdflow_id, FALSE);
@@ -11604,7 +11604,7 @@ static const value_string nbap_PayloadCRC_PresenceIndicator_vals[] = {
static int
dissect_nbap_PayloadCRC_PresenceIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 653 "../../asn1/nbap/nbap.cnf"
+#line 653 "./asn1/nbap/nbap.cnf"
guint32 payload_crc_value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
@@ -11656,7 +11656,7 @@ dissect_nbap_E_DCH_MACdFlow_Multiplexing_List(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_nbap_LogicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1629 "../../asn1/nbap/nbap.cnf"
+#line 1629 "./asn1/nbap/nbap.cnf"
/* Set logical channel id for this entry*/
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 15U, &logical_channel_id, FALSE);
@@ -11674,7 +11674,7 @@ dissect_nbap_LogicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_nbap_MAC_PDU_SizeExtended(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1731 "../../asn1/nbap/nbap.cnf"
+#line 1731 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1504U, NULL, TRUE);
@@ -12097,7 +12097,7 @@ static const per_sequence_t CommonMACFlow_Specific_InfoItem_sequence[] = {
static int
dissect_nbap_CommonMACFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1982 "../../asn1/nbap/nbap.cnf"
+#line 1982 "./asn1/nbap/nbap.cnf"
address dst_addr;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
@@ -12142,7 +12142,7 @@ dissect_nbap_CommonMACFlow_Specific_InfoList(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_nbap_MACdPDU_Size(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1619 "../../asn1/nbap/nbap.cnf"
+#line 1619 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 5000U, &MACdPDU_Size, TRUE);
@@ -13363,7 +13363,7 @@ dissect_nbap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_nbap_CRNC_CommunicationContextID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2090 "../../asn1/nbap/nbap.cnf"
+#line 2090 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 1048575U, &com_context_id, FALSE);
@@ -14794,7 +14794,7 @@ dissect_nbap_ToAWE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
static int
dissect_nbap_T_dCH_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 671 "../../asn1/nbap/nbap.cnf"
+#line 671 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &dch_id, FALSE);
@@ -14816,7 +14816,7 @@ dissect_nbap_T_dCH_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_nbap_TransportFormatSet_NrOfTransportBlocks(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1060 "../../asn1/nbap/nbap.cnf"
+#line 1060 "./asn1/nbap/nbap.cnf"
guint32 NrOfTransportBlocks;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -14859,7 +14859,7 @@ guint32 NrOfTransportBlocks;
static int
dissect_nbap_TransportFormatSet_TransportBlockSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1092 "../../asn1/nbap/nbap.cnf"
+#line 1092 "./asn1/nbap/nbap.cnf"
guint32 TransportBlockSize;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -14987,7 +14987,7 @@ static const per_sequence_t TransportFormatSet_DynamicPartList_item_sequence[] =
static int
dissect_nbap_TransportFormatSet_DynamicPartList_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1056 "../../asn1/nbap/nbap.cnf"
+#line 1056 "./asn1/nbap/nbap.cnf"
num_items++;
@@ -15005,7 +15005,7 @@ static const per_sequence_t TransportFormatSet_DynamicPartList_sequence_of[1] =
static int
dissect_nbap_TransportFormatSet_DynamicPartList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1053 "../../asn1/nbap/nbap.cnf"
+#line 1053 "./asn1/nbap/nbap.cnf"
num_items = 0;
@@ -15176,7 +15176,7 @@ dissect_nbap_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_nbap_T_ul_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1031 "../../asn1/nbap/nbap.cnf"
+#line 1031 "./asn1/nbap/nbap.cnf"
transportFormatSet_type = NBAP_DCH_UL;
nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
@@ -15190,7 +15190,7 @@ dissect_nbap_T_ul_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_nbap_T_dl_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1035 "../../asn1/nbap/nbap.cnf"
+#line 1035 "./asn1/nbap/nbap.cnf"
transportFormatSet_type = NBAP_DCH_DL;
nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
@@ -15240,14 +15240,14 @@ static const per_sequence_t DCH_Specific_FDD_Item_sequence[] = {
static int
dissect_nbap_DCH_Specific_FDD_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1025 "../../asn1/nbap/nbap.cnf"
+#line 1025 "./asn1/nbap/nbap.cnf"
g_num_dch_in_flow++;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_DCH_Specific_FDD_Item, DCH_Specific_FDD_Item_sequence);
-#line 1028 "../../asn1/nbap/nbap.cnf"
+#line 1028 "./asn1/nbap/nbap.cnf"
prev_dch_id = dch_id;
@@ -15261,7 +15261,7 @@ static const per_sequence_t DCH_Specific_FDD_InformationList_sequence_of[1] = {
static int
dissect_nbap_DCH_Specific_FDD_InformationList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1021 "../../asn1/nbap/nbap.cnf"
+#line 1021 "./asn1/nbap/nbap.cnf"
g_num_dch_in_flow = 0;
prev_dch_id = 0;
@@ -15540,7 +15540,7 @@ dissect_nbap_DCH_TDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_nbap_T_dCH_ID_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 684 "../../asn1/nbap/nbap.cnf"
+#line 684 "./asn1/nbap/nbap.cnf"
offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index);
@@ -15555,7 +15555,7 @@ dissect_nbap_T_dCH_ID_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_nbap_T_ul_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1039 "../../asn1/nbap/nbap.cnf"
+#line 1039 "./asn1/nbap/nbap.cnf"
transportFormatSet_type = NBAP_DCH_UL;
nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
@@ -15569,7 +15569,7 @@ dissect_nbap_T_ul_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_nbap_T_dl_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1043 "../../asn1/nbap/nbap.cnf"
+#line 1043 "./asn1/nbap/nbap.cnf"
transportFormatSet_type = NBAP_DCH_DL;
nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
@@ -15625,7 +15625,7 @@ static const per_sequence_t FDD_DCHs_to_ModifyItem_sequence[] = {
static int
dissect_nbap_FDD_DCHs_to_ModifyItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1119 "../../asn1/nbap/nbap.cnf"
+#line 1119 "./asn1/nbap/nbap.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_FDD_DCHs_to_ModifyItem, FDD_DCHs_to_ModifyItem_sequence);
@@ -18047,7 +18047,7 @@ dissect_nbap_E_DCH_HARQ_Combining_Capability(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_nbap_E_DCH_DDI_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1608 "../../asn1/nbap/nbap.cnf"
+#line 1608 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 62U, &e_dch_ddi_value, FALSE);
@@ -18182,7 +18182,7 @@ static const per_sequence_t E_DCH_LogicalChannelInformationItem_sequence[] = {
static int
dissect_nbap_E_DCH_LogicalChannelInformationItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1605 "../../asn1/nbap/nbap.cnf"
+#line 1605 "./asn1/nbap/nbap.cnf"
num_items++;
@@ -18199,7 +18199,7 @@ static const per_sequence_t E_DCH_LogicalChannelInformation_sequence_of[1] = {
static int
dissect_nbap_E_DCH_LogicalChannelInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1598 "../../asn1/nbap/nbap.cnf"
+#line 1598 "./asn1/nbap/nbap.cnf"
num_items = 0;
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
@@ -18232,7 +18232,7 @@ static const per_sequence_t E_DCH_MACdFlow_Specific_InfoItem_sequence[] = {
static int
dissect_nbap_E_DCH_MACdFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1356 "../../asn1/nbap/nbap.cnf"
+#line 1356 "./asn1/nbap/nbap.cnf"
umts_fp_conversation_info_t *p_conv_data = NULL;
address null_addr;
conversation_t *p_conv;
@@ -18415,7 +18415,7 @@ static const per_sequence_t E_DCH_LogicalChannelToModifyItem_sequence[] = {
static int
dissect_nbap_E_DCH_LogicalChannelToModifyItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1593 "../../asn1/nbap/nbap.cnf"
+#line 1593 "./asn1/nbap/nbap.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_E_DCH_LogicalChannelToModifyItem, E_DCH_LogicalChannelToModifyItem_sequence);
@@ -18490,7 +18490,7 @@ static const per_sequence_t E_DCH_MACdFlow_Specific_InfoItem_to_Modify_sequence[
static int
dissect_nbap_E_DCH_MACdFlow_Specific_InfoItem_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1501 "../../asn1/nbap/nbap.cnf"
+#line 1501 "./asn1/nbap/nbap.cnf"
guint32 no_ddi_entries, i;
address null_addr;
nbap_edch_port_info_t *old_info;
@@ -18632,7 +18632,7 @@ static const per_sequence_t E_DCH_FDD_Information_to_Modify_sequence[] = {
static int
dissect_nbap_E_DCH_FDD_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1409 "../../asn1/nbap/nbap.cnf"
+#line 1409 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation,*old_conversation = NULL;
@@ -23213,7 +23213,7 @@ static const value_string nbap_PICH_Mode_vals[] = {
static int
dissect_nbap_PICH_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 796 "../../asn1/nbap/nbap.cnf"
+#line 796 "./asn1/nbap/nbap.cnf"
guint32 PICH_Mode = 0;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4, &PICH_Mode, TRUE, 0, NULL);
@@ -23328,7 +23328,7 @@ static const per_sequence_t HSDSCH_Common_System_InformationFDD_sequence[] = {
static int
dissect_nbap_HSDSCH_Common_System_InformationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2002 "../../asn1/nbap/nbap.cnf"
+#line 2002 "./asn1/nbap/nbap.cnf"
/*
* 5.1.6 High Speed Downlink Shared Channels
* The Data Transfer procedure is used to transfer a HS-DSCH DATA FRAME (TYPE 1, TYPE 2 [FDD and 1.28Mcps
@@ -23462,7 +23462,7 @@ dissect_nbap_HSDSCH_Common_System_Information_ResponseFDD(tvbuff_t *tvb _U_, int
static int
dissect_nbap_HSDSCH_MACdFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 704 "../../asn1/nbap/nbap.cnf"
+#line 704 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfMACdFlows_1, &hsdsch_macdflow_id, FALSE);
@@ -23489,7 +23489,7 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InfoItem_sequence[] = {
static int
dissect_nbap_HSDSCH_MACdFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1709 "../../asn1/nbap/nbap.cnf"
+#line 1709 "./asn1/nbap/nbap.cnf"
address dst_addr;
@@ -23592,7 +23592,7 @@ static const value_string nbap_RLC_Mode_vals[] = {
static int
dissect_nbap_RLC_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1636 "../../asn1/nbap/nbap.cnf"
+#line 1636 "./asn1/nbap/nbap.cnf"
guint32 rlc_mode;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
@@ -23633,7 +23633,7 @@ static const per_sequence_t PriorityQueue_InfoItem_sequence[] = {
static int
dissect_nbap_PriorityQueue_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1700 "../../asn1/nbap/nbap.cnf"
+#line 1700 "./asn1/nbap/nbap.cnf"
num_items++;
@@ -23667,7 +23667,7 @@ static const per_sequence_t HSDSCH_MACdFlows_Information_sequence[] = {
static int
dissect_nbap_HSDSCH_MACdFlows_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1660 "../../asn1/nbap/nbap.cnf"
+#line 1660 "./asn1/nbap/nbap.cnf"
int protocol_ie_id;
guint32 i;
@@ -23711,7 +23711,7 @@ dissect_nbap_HSDSCH_MACdFlows_Information(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_nbap_T_hSDSCH_Physical_Layer_Category(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1653 "../../asn1/nbap/nbap.cnf"
+#line 1653 "./asn1/nbap/nbap.cnf"
guint32 hsdsch_physical_layer_category;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -23779,7 +23779,7 @@ static const per_sequence_t HSDSCH_FDD_Information_sequence[] = {
static int
dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1761 "../../asn1/nbap/nbap.cnf"
+#line 1761 "./asn1/nbap/nbap.cnf"
/*
* Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data.
*/
@@ -23916,7 +23916,7 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InfoItem_to_Modify_sequence
static int
dissect_nbap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1850 "../../asn1/nbap/nbap.cnf"
+#line 1850 "./asn1/nbap/nbap.cnf"
address dst_addr;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
@@ -23974,7 +23974,7 @@ static const per_sequence_t PriorityQueue_InfoItem_to_Add_sequence[] = {
static int
dissect_nbap_PriorityQueue_InfoItem_to_Add(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1703 "../../asn1/nbap/nbap.cnf"
+#line 1703 "./asn1/nbap/nbap.cnf"
num_items = 1;
@@ -24109,7 +24109,7 @@ static const per_sequence_t HSDSCH_Information_to_Modify_sequence[] = {
static int
dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1870 "../../asn1/nbap/nbap.cnf"
+#line 1870 "./asn1/nbap/nbap.cnf"
/*
* This is pretty much the same like if we setup a previous flow
*/
@@ -24231,7 +24231,7 @@ static const value_string nbap_HSDSCH_MACdPDUSizeFormat_vals[] = {
static int
dissect_nbap_HSDSCH_MACdPDUSizeFormat(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1738 "../../asn1/nbap/nbap.cnf"
+#line 1738 "./asn1/nbap/nbap.cnf"
/*
* Removed 10 Aug. 2012, I'm not sure if this was right, it wrongfully
* set some packets as type 2 for HSDHCH modified items.
@@ -24342,7 +24342,7 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InformationResp_Item_sequen
static int
dissect_nbap_HSDSCH_MACdFlow_Specific_InformationResp_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1706 "../../asn1/nbap/nbap.cnf"
+#line 1706 "./asn1/nbap/nbap.cnf"
num_items++;
@@ -24758,7 +24758,7 @@ static const per_sequence_t HSDSCH_Paging_System_InformationFDD_sequence[] = {
static int
dissect_nbap_HSDSCH_Paging_System_InformationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2080 "../../asn1/nbap/nbap.cnf"
+#line 2080 "./asn1/nbap/nbap.cnf"
/*
g_warning("HS-DSCH Type 3 NOT Implemented!");
*/
@@ -24952,7 +24952,7 @@ static const per_sequence_t HSDSCH_MACdFlows_to_Delete_Item_sequence[] = {
static int
dissect_nbap_HSDSCH_MACdFlows_to_Delete_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1697 "../../asn1/nbap/nbap.cnf"
+#line 1697 "./asn1/nbap/nbap.cnf"
num_items++;
@@ -24969,7 +24969,7 @@ static const per_sequence_t HSDSCH_MACdFlows_to_Delete_sequence_of[1] = {
static int
dissect_nbap_HSDSCH_MACdFlows_to_Delete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1692 "../../asn1/nbap/nbap.cnf"
+#line 1692 "./asn1/nbap/nbap.cnf"
num_items = 0;
@@ -26346,7 +26346,7 @@ dissect_nbap_IB_OC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_nbap_IB_SG_DATA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 576 "../../asn1/nbap/nbap.cnf"
+#line 576 "./asn1/nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
@@ -26480,7 +26480,7 @@ static const value_string nbap_IB_Type_vals[] = {
static int
dissect_nbap_IB_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 563 "../../asn1/nbap/nbap.cnf"
+#line 563 "./asn1/nbap/nbap.cnf"
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
26, &ib_type, TRUE, 15, NULL);
@@ -28071,7 +28071,7 @@ dissect_nbap_NI_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_nbap_NodeB_CommunicationContextID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2094 "../../asn1/nbap/nbap.cnf"
+#line 2094 "./asn1/nbap/nbap.cnf"
/*Set up and map that maps Node-B ids to CRNC ids, since often you only have one of them present in nbap*/
nbap_com_context_id_t *cur_val;
@@ -28636,7 +28636,7 @@ dissect_nbap_RACH_SubChannelNumbers(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_nbap_T_dCH_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1125 "../../asn1/nbap/nbap.cnf"
+#line 1125 "./asn1/nbap/nbap.cnf"
offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index);
@@ -28658,7 +28658,7 @@ static const per_sequence_t RL_Specific_DCH_Info_Item_sequence[] = {
static int
dissect_nbap_RL_Specific_DCH_Info_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1130 "../../asn1/nbap/nbap.cnf"
+#line 1130 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
@@ -28802,7 +28802,7 @@ static const per_sequence_t RL_Specific_E_DCH_Information_Item_sequence[] = {
static int
dissect_nbap_RL_Specific_E_DCH_Information_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1244 "../../asn1/nbap/nbap.cnf"
+#line 1244 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
@@ -29846,7 +29846,7 @@ static const value_string nbap_Segment_Type_vals[] = {
static int
dissect_nbap_Segment_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 566 "../../asn1/nbap/nbap.cnf"
+#line 566 "./asn1/nbap/nbap.cnf"
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7, &segment_type, TRUE, 0, NULL);
@@ -32179,7 +32179,7 @@ static const per_sequence_t CommonTransportChannelSetupRequestFDD_sequence[] = {
static int
dissect_nbap_CommonTransportChannelSetupRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 148 "../../asn1/nbap/nbap.cnf"
+#line 148 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -32369,7 +32369,7 @@ static const per_sequence_t FACH_ParametersItem_CTCH_SetupRqstFDD_sequence[] = {
static int
dissect_nbap_FACH_ParametersItem_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 928 "../../asn1/nbap/nbap.cnf"
+#line 928 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
@@ -32487,7 +32487,7 @@ dissect_nbap_FACH_ParametersListIE_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offs
static int
dissect_nbap_T_transportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1047 "../../asn1/nbap/nbap.cnf"
+#line 1047 "./asn1/nbap/nbap.cnf"
transportFormatSet_type = NBAP_PCH;
nbap_dch_chnl_info[commontransportchannelid].num_dl_chans = 0;
nbap_dch_chnl_info[commontransportchannelid].num_ul_chans = 0;
@@ -32532,7 +32532,7 @@ static const per_sequence_t PCH_ParametersItem_CTCH_SetupRqstFDD_sequence[] = {
static int
dissect_nbap_PCH_ParametersItem_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 817 "../../asn1/nbap/nbap.cnf"
+#line 817 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
@@ -32679,7 +32679,7 @@ static const per_sequence_t RACH_ParametersItem_CTCH_SetupRqstFDD_sequence[] = {
static int
dissect_nbap_RACH_ParametersItem_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 728 "../../asn1/nbap/nbap.cnf"
+#line 728 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
umts_fp_conversation_info_t *umts_fp_conversation_info;
@@ -33458,7 +33458,7 @@ static const per_sequence_t CommonTransportChannelSetupResponse_sequence[] = {
static int
dissect_nbap_CommonTransportChannelSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 154 "../../asn1/nbap/nbap.cnf"
+#line 154 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -33493,7 +33493,7 @@ static const per_sequence_t CommonTransportChannelSetupFailure_sequence[] = {
static int
dissect_nbap_CommonTransportChannelSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 160 "../../asn1/nbap/nbap.cnf"
+#line 160 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34213,7 +34213,7 @@ static const per_sequence_t UnblockResourceIndication_sequence[] = {
static int
dissect_nbap_UnblockResourceIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 521 "../../asn1/nbap/nbap.cnf"
+#line 521 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UnblockResourceIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34234,7 +34234,7 @@ static const per_sequence_t AuditRequiredIndication_sequence[] = {
static int
dissect_nbap_AuditRequiredIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 425 "../../asn1/nbap/nbap.cnf"
+#line 425 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditRequiredIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34255,7 +34255,7 @@ static const per_sequence_t AuditRequest_sequence[] = {
static int
dissect_nbap_AuditRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 178 "../../asn1/nbap/nbap.cnf"
+#line 178 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditRequest ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34276,7 +34276,7 @@ static const per_sequence_t AuditResponse_sequence[] = {
static int
dissect_nbap_AuditResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 184 "../../asn1/nbap/nbap.cnf"
+#line 184 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34870,7 +34870,7 @@ static const per_sequence_t AuditFailure_sequence[] = {
static int
dissect_nbap_AuditFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 190 "../../asn1/nbap/nbap.cnf"
+#line 190 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34892,7 +34892,7 @@ static const per_sequence_t CommonMeasurementInitiationRequest_sequence[] = {
static int
dissect_nbap_CommonMeasurementInitiationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 258 "../../asn1/nbap/nbap.cnf"
+#line 258 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35010,7 +35010,7 @@ static const per_sequence_t CommonMeasurementInitiationResponse_sequence[] = {
static int
dissect_nbap_CommonMeasurementInitiationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 264 "../../asn1/nbap/nbap.cnf"
+#line 264 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35126,7 +35126,7 @@ static const per_sequence_t CommonMeasurementInitiationFailure_sequence[] = {
static int
dissect_nbap_CommonMeasurementInitiationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 270 "../../asn1/nbap/nbap.cnf"
+#line 270 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35147,7 +35147,7 @@ static const per_sequence_t CommonMeasurementReport_sequence[] = {
static int
dissect_nbap_CommonMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 431 "../../asn1/nbap/nbap.cnf"
+#line 431 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementReport ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35263,7 +35263,7 @@ static const per_sequence_t CommonMeasurementTerminationRequest_sequence[] = {
static int
dissect_nbap_CommonMeasurementTerminationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 437 "../../asn1/nbap/nbap.cnf"
+#line 437 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementTerminationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35284,7 +35284,7 @@ static const per_sequence_t CommonMeasurementFailureIndication_sequence[] = {
static int
dissect_nbap_CommonMeasurementFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 443 "../../asn1/nbap/nbap.cnf"
+#line 443 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35305,7 +35305,7 @@ static const per_sequence_t CellSetupRequestFDD_sequence[] = {
static int
dissect_nbap_CellSetupRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 120 "../../asn1/nbap/nbap.cnf"
+#line 120 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35837,7 +35837,7 @@ static const per_sequence_t CellSetupResponse_sequence[] = {
static int
dissect_nbap_CellSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 126 "../../asn1/nbap/nbap.cnf"
+#line 126 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35858,7 +35858,7 @@ static const per_sequence_t CellSetupFailure_sequence[] = {
static int
dissect_nbap_CellSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 132 "../../asn1/nbap/nbap.cnf"
+#line 132 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -36401,7 +36401,7 @@ static const per_sequence_t ResourceStatusIndication_sequence[] = {
static int
dissect_nbap_ResourceStatusIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 419 "../../asn1/nbap/nbap.cnf"
+#line 419 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ResourceStatusIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37159,7 +37159,7 @@ static const per_sequence_t SystemInformationUpdateRequest_sequence[] = {
static int
dissect_nbap_SystemInformationUpdateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 237 "../../asn1/nbap/nbap.cnf"
+#line 237 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -37230,7 +37230,7 @@ static const per_sequence_t MIB_SB_SIB_InformationItem_SystemInfoUpdateRqst_sequ
static int
dissect_nbap_MIB_SB_SIB_InformationItem_SystemInfoUpdateRqst(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 569 "../../asn1/nbap/nbap.cnf"
+#line 569 "./asn1/nbap/nbap.cnf"
ib_type = 10; /* not-Used-sIB8 */
segment_type = 0;
@@ -37298,7 +37298,7 @@ static const per_sequence_t SystemInformationUpdateResponse_sequence[] = {
static int
dissect_nbap_SystemInformationUpdateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 243 "../../asn1/nbap/nbap.cnf"
+#line 243 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37319,7 +37319,7 @@ static const per_sequence_t SystemInformationUpdateFailure_sequence[] = {
static int
dissect_nbap_SystemInformationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 249 "../../asn1/nbap/nbap.cnf"
+#line 249 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37341,7 +37341,7 @@ static const per_sequence_t RadioLinkSetupRequestFDD_sequence[] = {
static int
dissect_nbap_RadioLinkSetupRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 200 "../../asn1/nbap/nbap.cnf"
+#line 200 "./asn1/nbap/nbap.cnf"
g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
g_nbap_msg_info_for_fp.ddMode = ddMode;
@@ -37824,7 +37824,7 @@ static const per_sequence_t RadioLinkSetupResponseFDD_sequence[] = {
static int
dissect_nbap_RadioLinkSetupResponseFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 213 "../../asn1/nbap/nbap.cnf"
+#line 213 "./asn1/nbap/nbap.cnf"
g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
g_nbap_msg_info_for_fp.ddMode = ddMode;
@@ -38050,7 +38050,7 @@ static const per_sequence_t RadioLinkSetupFailureFDD_sequence[] = {
static int
dissect_nbap_RadioLinkSetupFailureFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 226 "../../asn1/nbap/nbap.cnf"
+#line 226 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupFailure(FDD) ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -38335,7 +38335,7 @@ static const per_sequence_t RadioLinkAdditionRequestFDD_sequence[] = {
static int
dissect_nbap_RadioLinkAdditionRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 276 "../../asn1/nbap/nbap.cnf"
+#line 276 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionRequest(FDD) ");
@@ -38707,7 +38707,7 @@ static const per_sequence_t RadioLinkAdditionResponseFDD_sequence[] = {
static int
dissect_nbap_RadioLinkAdditionResponseFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 281 "../../asn1/nbap/nbap.cnf"
+#line 281 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionResponse(FDD) ");
@@ -38983,7 +38983,7 @@ static const per_sequence_t RadioLinkAdditionFailureFDD_sequence[] = {
static int
dissect_nbap_RadioLinkAdditionFailureFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 287 "../../asn1/nbap/nbap.cnf"
+#line 287 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionRequest(FDD) ");
@@ -39268,7 +39268,7 @@ static const per_sequence_t RadioLinkReconfigurationPrepareFDD_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationPrepareFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 314 "../../asn1/nbap/nbap.cnf"
+#line 314 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationPrepare(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -40891,7 +40891,7 @@ static const per_sequence_t RadioLinkReconfigurationReady_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationReady(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 325 "../../asn1/nbap/nbap.cnf"
+#line 325 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationReady ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -40973,7 +40973,7 @@ static const per_sequence_t RadioLinkReconfigurationFailure_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 332 "../../asn1/nbap/nbap.cnf"
+#line 332 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -41082,13 +41082,13 @@ static const per_sequence_t RadioLinkReconfigurationCommit_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationCommit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 449 "../../asn1/nbap/nbap.cnf"
+#line 449 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCommit ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
-#line 2143 "../../asn1/nbap/nbap.cnf"
+#line 2143 "./asn1/nbap/nbap.cnf"
/*
* Here we need to signal the CFN value, down to FP so
* that lowert layers know when a reconfiguration becomes active
@@ -41112,7 +41112,7 @@ static const per_sequence_t RadioLinkReconfigurationCancel_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 455 "../../asn1/nbap/nbap.cnf"
+#line 455 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCancel ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41133,7 +41133,7 @@ static const per_sequence_t RadioLinkReconfigurationRequestFDD_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 343 "../../asn1/nbap/nbap.cnf"
+#line 343 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationRequestFDD(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41590,7 +41590,7 @@ static const per_sequence_t RadioLinkReconfigurationResponse_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 349 "../../asn1/nbap/nbap.cnf"
+#line 349 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationResponse ");
@@ -41651,7 +41651,7 @@ static const per_sequence_t RadioLinkDeletionRequest_sequence[] = {
static int
dissect_nbap_RadioLinkDeletionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 300 "../../asn1/nbap/nbap.cnf"
+#line 300 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41702,7 +41702,7 @@ static const per_sequence_t RadioLinkDeletionResponse_sequence[] = {
static int
dissect_nbap_RadioLinkDeletionResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 307 "../../asn1/nbap/nbap.cnf"
+#line 307 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -41724,7 +41724,7 @@ static const per_sequence_t DL_PowerControlRequest_sequence[] = {
static int
dissect_nbap_DL_PowerControlRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 503 "../../asn1/nbap/nbap.cnf"
+#line 503 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DL-PowerControlRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41775,7 +41775,7 @@ static const per_sequence_t DL_PowerTimeslotControlRequest_sequence[] = {
static int
dissect_nbap_DL_PowerTimeslotControlRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 509 "../../asn1/nbap/nbap.cnf"
+#line 509 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DL-PowerTimeslotControlRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41796,7 +41796,7 @@ static const per_sequence_t DedicatedMeasurementInitiationRequest_sequence[] = {
static int
dissect_nbap_DedicatedMeasurementInitiationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 365 "../../asn1/nbap/nbap.cnf"
+#line 365 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41992,7 +41992,7 @@ static const per_sequence_t DedicatedMeasurementInitiationResponse_sequence[] =
static int
dissect_nbap_DedicatedMeasurementInitiationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 371 "../../asn1/nbap/nbap.cnf"
+#line 371 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42297,7 +42297,7 @@ static const per_sequence_t DedicatedMeasurementInitiationFailure_sequence[] = {
static int
dissect_nbap_DedicatedMeasurementInitiationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 378 "../../asn1/nbap/nbap.cnf"
+#line 378 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42319,7 +42319,7 @@ static const per_sequence_t DedicatedMeasurementReport_sequence[] = {
static int
dissect_nbap_DedicatedMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 483 "../../asn1/nbap/nbap.cnf"
+#line 483 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementReport ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42502,7 +42502,7 @@ static const per_sequence_t DedicatedMeasurementTerminationRequest_sequence[] =
static int
dissect_nbap_DedicatedMeasurementTerminationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 490 "../../asn1/nbap/nbap.cnf"
+#line 490 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementTerminationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -42523,7 +42523,7 @@ static const per_sequence_t DedicatedMeasurementFailureIndication_sequence[] = {
static int
dissect_nbap_DedicatedMeasurementFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 496 "../../asn1/nbap/nbap.cnf"
+#line 496 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42545,7 +42545,7 @@ static const per_sequence_t RadioLinkFailureIndication_sequence[] = {
static int
dissect_nbap_RadioLinkFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 461 "../../asn1/nbap/nbap.cnf"
+#line 461 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42727,7 +42727,7 @@ static const per_sequence_t RadioLinkPreemptionRequiredIndication_sequence[] = {
static int
dissect_nbap_RadioLinkPreemptionRequiredIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 468 "../../asn1/nbap/nbap.cnf"
+#line 468 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkPreemptionRequiredIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42778,7 +42778,7 @@ static const per_sequence_t RadioLinkRestoreIndication_sequence[] = {
static int
dissect_nbap_RadioLinkRestoreIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 475 "../../asn1/nbap/nbap.cnf"
+#line 475 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkRestoreIndication ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -42958,7 +42958,7 @@ static const per_sequence_t CompressedModeCommand_sequence[] = {
static int
dissect_nbap_CompressedModeCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 515 "../../asn1/nbap/nbap.cnf"
+#line 515 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CompressedModeCommand ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -42979,7 +42979,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_nbap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 527 "../../asn1/nbap/nbap.cnf"
+#line 527 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ErrorIndication ");
@@ -42999,7 +42999,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_nbap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 536 "../../asn1/nbap/nbap.cnf"
+#line 536 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PrivateMessage ");
@@ -43018,7 +43018,7 @@ static const per_sequence_t PhysicalSharedChannelReconfigurationRequestFDD_seque
static int
dissect_nbap_PhysicalSharedChannelReconfigurationRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 385 "../../asn1/nbap/nbap.cnf"
+#line 385 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -45486,7 +45486,7 @@ static const per_sequence_t PhysicalSharedChannelReconfigurationResponse_sequenc
static int
dissect_nbap_PhysicalSharedChannelReconfigurationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 391 "../../asn1/nbap/nbap.cnf"
+#line 391 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -45537,7 +45537,7 @@ static const per_sequence_t PhysicalSharedChannelReconfigurationFailure_sequence
static int
dissect_nbap_PhysicalSharedChannelReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 397 "../../asn1/nbap/nbap.cnf"
+#line 397 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -46990,7 +46990,7 @@ static const per_sequence_t BearerRearrangementIndication_sequence[] = {
static int
dissect_nbap_BearerRearrangementIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 543 "../../asn1/nbap/nbap.cnf"
+#line 543 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"BearerRearrangementIndication ");
@@ -47292,7 +47292,7 @@ static const per_sequence_t RadioLinkParameterUpdateIndicationFDD_sequence[] = {
static int
dissect_nbap_RadioLinkParameterUpdateIndicationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 551 "../../asn1/nbap/nbap.cnf"
+#line 551 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkParameterUpdateIndication(FDD) ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -55187,7 +55187,7 @@ static int dissect_NULL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-nbap-fn.c ---*/
-#line 332 "../../asn1/nbap/packet-nbap-template.c"
+#line 332 "./asn1/nbap/packet-nbap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -55358,7 +55358,7 @@ void proto_register_nbap(void)
NULL, HFILL }},
/*--- Included file: packet-nbap-hfarr.c ---*/
-#line 1 "../../asn1/nbap/packet-nbap-hfarr.c"
+#line 1 "./asn1/nbap/packet-nbap-hfarr.c"
{ &hf_nbap_ActivationInformation_PDU,
{ "ActivationInformation", "nbap.ActivationInformation",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -68521,7 +68521,7 @@ void proto_register_nbap(void)
NULL, HFILL }},
/*--- End of included file: packet-nbap-hfarr.c ---*/
-#line 501 "../../asn1/nbap/packet-nbap-template.c"
+#line 501 "./asn1/nbap/packet-nbap-template.c"
};
/* List of subtrees */
@@ -68532,7 +68532,7 @@ void proto_register_nbap(void)
&ett_nbap_ib_sg_data,
/*--- Included file: packet-nbap-ettarr.c ---*/
-#line 1 "../../asn1/nbap/packet-nbap-ettarr.c"
+#line 1 "./asn1/nbap/packet-nbap-ettarr.c"
&ett_nbap_PrivateIE_ID,
&ett_nbap_ProcedureID,
&ett_nbap_TransactionID,
@@ -70161,7 +70161,7 @@ void proto_register_nbap(void)
&ett_nbap_Outcome,
/*--- End of included file: packet-nbap-ettarr.c ---*/
-#line 510 "../../asn1/nbap/packet-nbap-template.c"
+#line 510 "./asn1/nbap/packet-nbap-template.c"
};
static ei_register_info ei[] = {
@@ -70221,7 +70221,7 @@ proto_reg_handoff_nbap(void)
/*--- Included file: packet-nbap-dis-tab.c ---*/
-#line 1 "../../asn1/nbap/packet-nbap-dis-tab.c"
+#line 1 "./asn1/nbap/packet-nbap-dis-tab.c"
dissector_add_uint("nbap.ies", id_TUTRANGPSMeasurementValueInformation, create_dissector_handle(dissect_TUTRANGPSMeasurementValueInformation_PDU, proto_nbap));
dissector_add_uint("nbap.ies", id_SFNSFNMeasurementValueInformation, create_dissector_handle(dissect_SFNSFNMeasurementValueInformation_PDU, proto_nbap));
dissector_add_uint("nbap.ies", id_TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmission, create_dissector_handle(dissect_TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue_PDU, proto_nbap));
@@ -71316,7 +71316,7 @@ proto_reg_handoff_nbap(void)
/*--- End of included file: packet-nbap-dis-tab.c ---*/
-#line 568 "../../asn1/nbap/packet-nbap-template.c"
+#line 568 "./asn1/nbap/packet-nbap-template.c"
}
diff --git a/epan/dissectors/packet-nbap.h b/epan/dissectors/packet-nbap.h
index 85dc419d6e..5e3203b725 100644
--- a/epan/dissectors/packet-nbap.h
+++ b/epan/dissectors/packet-nbap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-nbap.h */
-/* ../../tools/asn2wrs.py -p nbap -c ./nbap.cnf -s ./packet-nbap-template -D . -O ../../epan/dissectors NBAP-CommonDataTypes.asn NBAP-Constants.asn NBAP-Containers.asn NBAP-IEs.asn NBAP-PDU-Contents.asn NBAP-PDU-Descriptions.asn */
+/* asn2wrs.py -p nbap -c ./nbap.cnf -s ./packet-nbap-template -D . -O ../.. NBAP-CommonDataTypes.asn NBAP-Constants.asn NBAP-Containers.asn NBAP-IEs.asn NBAP-PDU-Contents.asn NBAP-PDU-Descriptions.asn */
/* Input file: packet-nbap-template.h */
-#line 1 "../../asn1/nbap/packet-nbap-template.h"
+#line 1 "./asn1/nbap/packet-nbap-template.h"
/* packet-nbap-template.h
*
* Wireshark - Network traffic analyzer
diff --git a/epan/dissectors/packet-novell_pkis.c b/epan/dissectors/packet-novell_pkis.c
index b486aedc0a..075c8378af 100644
--- a/epan/dissectors/packet-novell_pkis.c
+++ b/epan/dissectors/packet-novell_pkis.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-novell_pkis.c */
-/* ../../tools/asn2wrs.py -b -u -p novell_pkis -c ./novell_pkis.cnf -s ./packet-novell_pkis-template -D . -O ../../epan/dissectors novell_pkis.asn */
+/* asn2wrs.py -b -u -p novell_pkis -c ./novell_pkis.cnf -s ./packet-novell_pkis-template -D . -O ../.. novell_pkis.asn */
/* Input file: packet-novell_pkis-template.c */
-#line 1 "../../asn1/novell_pkis/packet-novell_pkis-template.c"
+#line 1 "./asn1/novell_pkis/packet-novell_pkis-template.c"
/* packet-novell_pkis.c
*
* Wireshark - Network traffic analyzer
@@ -41,7 +41,7 @@
/*--- Included file: packet-novell_pkis-hf.c ---*/
-#line 1 "../../asn1/novell_pkis/packet-novell_pkis-hf.c"
+#line 1 "./asn1/novell_pkis/packet-novell_pkis-hf.c"
static int hf_novell_pkis_SecurityAttributes_PDU = -1; /* SecurityAttributes */
static int hf_novell_pkis_RelianceLimits_PDU = -1; /* RelianceLimits */
static int hf_novell_pkis_versionNumber = -1; /* OCTET_STRING_SIZE_2 */
@@ -89,10 +89,10 @@ static int hf_novell_pkis_amount = -1; /* INTEGER */
static int hf_novell_pkis_amtExp10 = -1; /* INTEGER */
/*--- End of included file: packet-novell_pkis-hf.c ---*/
-#line 35 "../../asn1/novell_pkis/packet-novell_pkis-template.c"
+#line 35 "./asn1/novell_pkis/packet-novell_pkis-template.c"
/*--- Included file: packet-novell_pkis-ett.c ---*/
-#line 1 "../../asn1/novell_pkis/packet-novell_pkis-ett.c"
+#line 1 "./asn1/novell_pkis/packet-novell_pkis-ett.c"
static gint ett_novell_pkis_SecurityAttributes = -1;
static gint ett_novell_pkis_GLBExtensions = -1;
static gint ett_novell_pkis_Quality = -1;
@@ -111,10 +111,10 @@ static gint ett_novell_pkis_RelianceLimits = -1;
static gint ett_novell_pkis_MonetaryValue = -1;
/*--- End of included file: packet-novell_pkis-ett.c ---*/
-#line 36 "../../asn1/novell_pkis/packet-novell_pkis-template.c"
+#line 36 "./asn1/novell_pkis/packet-novell_pkis-template.c"
/*--- Included file: packet-novell_pkis-fn.c ---*/
-#line 1 "../../asn1/novell_pkis/packet-novell_pkis-fn.c"
+#line 1 "./asn1/novell_pkis/packet-novell_pkis-fn.c"
static int
@@ -509,7 +509,7 @@ static int dissect_RelianceLimits_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-novell_pkis-fn.c ---*/
-#line 37 "../../asn1/novell_pkis/packet-novell_pkis-template.c"
+#line 37 "./asn1/novell_pkis/packet-novell_pkis-template.c"
void proto_register_novell_pkis (void);
void proto_reg_handoff_novell_pkis(void);
@@ -520,13 +520,13 @@ void proto_reg_handoff_novell_pkis(void)
{
/*--- Included file: packet-novell_pkis-dis-tab.c ---*/
-#line 1 "../../asn1/novell_pkis/packet-novell_pkis-dis-tab.c"
+#line 1 "./asn1/novell_pkis/packet-novell_pkis-dis-tab.c"
register_ber_oid_dissector("2.16.840.1.113719.1.9.4.1", dissect_SecurityAttributes_PDU, proto_novell_pkis, "pa-sa");
register_ber_oid_dissector("2.16.840.1.113719.1.9.4.2", dissect_RelianceLimits_PDU, proto_novell_pkis, "pa-rl");
/*--- End of included file: packet-novell_pkis-dis-tab.c ---*/
-#line 46 "../../asn1/novell_pkis/packet-novell_pkis-template.c"
+#line 46 "./asn1/novell_pkis/packet-novell_pkis-template.c"
}
void proto_register_novell_pkis (void)
@@ -534,7 +534,7 @@ void proto_register_novell_pkis (void)
static hf_register_info hf[] = {
/*--- Included file: packet-novell_pkis-hfarr.c ---*/
-#line 1 "../../asn1/novell_pkis/packet-novell_pkis-hfarr.c"
+#line 1 "./asn1/novell_pkis/packet-novell_pkis-hfarr.c"
{ &hf_novell_pkis_SecurityAttributes_PDU,
{ "SecurityAttributes", "novell_pkis.SecurityAttributes_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -717,12 +717,12 @@ void proto_register_novell_pkis (void)
"INTEGER", HFILL }},
/*--- End of included file: packet-novell_pkis-hfarr.c ---*/
-#line 52 "../../asn1/novell_pkis/packet-novell_pkis-template.c"
+#line 52 "./asn1/novell_pkis/packet-novell_pkis-template.c"
};
static gint *ett[] = {
/*--- Included file: packet-novell_pkis-ettarr.c ---*/
-#line 1 "../../asn1/novell_pkis/packet-novell_pkis-ettarr.c"
+#line 1 "./asn1/novell_pkis/packet-novell_pkis-ettarr.c"
&ett_novell_pkis_SecurityAttributes,
&ett_novell_pkis_GLBExtensions,
&ett_novell_pkis_Quality,
@@ -741,7 +741,7 @@ void proto_register_novell_pkis (void)
&ett_novell_pkis_MonetaryValue,
/*--- End of included file: packet-novell_pkis-ettarr.c ---*/
-#line 55 "../../asn1/novell_pkis/packet-novell_pkis-template.c"
+#line 55 "./asn1/novell_pkis/packet-novell_pkis-template.c"
};
/* execute protocol initialization only once */
diff --git a/epan/dissectors/packet-ns_cert_exts.c b/epan/dissectors/packet-ns_cert_exts.c
index f0083979a2..c560040a20 100644
--- a/epan/dissectors/packet-ns_cert_exts.c
+++ b/epan/dissectors/packet-ns_cert_exts.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ns_cert_exts.c */
-/* ../../tools/asn2wrs.py -b -p ns_cert_exts -c ./ns_cert_exts.cnf -s ./packet-ns_cert_exts-template -D . -O ../../epan/dissectors NETSCAPE-CERT-EXTS.asn */
+/* asn2wrs.py -b -p ns_cert_exts -c ./ns_cert_exts.cnf -s ./packet-ns_cert_exts-template -D . -O ../.. NETSCAPE-CERT-EXTS.asn */
/* Input file: packet-ns_cert_exts-template.c */
-#line 1 "../../asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
+#line 1 "./asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
/* packet-ns_cert_exts.c
* Routines for NetScape Certificate Extensions packet dissection
* Ronnie Sahlberg 2004
@@ -46,7 +46,7 @@ void proto_reg_handoff_ns_cert_exts(void);
static int proto_ns_cert_exts = -1;
/*--- Included file: packet-ns_cert_exts-hf.c ---*/
-#line 1 "../../asn1/ns_cert_exts/packet-ns_cert_exts-hf.c"
+#line 1 "./asn1/ns_cert_exts/packet-ns_cert_exts-hf.c"
static int hf_ns_cert_exts_BaseUrl_PDU = -1; /* BaseUrl */
static int hf_ns_cert_exts_RevocationUrl_PDU = -1; /* RevocationUrl */
static int hf_ns_cert_exts_CaRevocationUrl_PDU = -1; /* CaRevocationUrl */
@@ -66,20 +66,20 @@ static int hf_ns_cert_exts_CertType_smime_ca = -1;
static int hf_ns_cert_exts_CertType_object_signing_ca = -1;
/*--- End of included file: packet-ns_cert_exts-hf.c ---*/
-#line 40 "../../asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
+#line 40 "./asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-ns_cert_exts-ett.c ---*/
-#line 1 "../../asn1/ns_cert_exts/packet-ns_cert_exts-ett.c"
+#line 1 "./asn1/ns_cert_exts/packet-ns_cert_exts-ett.c"
static gint ett_ns_cert_exts_CertType = -1;
/*--- End of included file: packet-ns_cert_exts-ett.c ---*/
-#line 43 "../../asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
+#line 43 "./asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
/*--- Included file: packet-ns_cert_exts-fn.c ---*/
-#line 1 "../../asn1/ns_cert_exts/packet-ns_cert_exts-fn.c"
+#line 1 "./asn1/ns_cert_exts/packet-ns_cert_exts-fn.c"
static int
@@ -240,7 +240,7 @@ static int dissect_CertType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-ns_cert_exts-fn.c ---*/
-#line 45 "../../asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
+#line 45 "./asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
/*--- proto_register_ns_cert_exts -------------------------------------------*/
@@ -250,7 +250,7 @@ void proto_register_ns_cert_exts(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-ns_cert_exts-hfarr.c ---*/
-#line 1 "../../asn1/ns_cert_exts/packet-ns_cert_exts-hfarr.c"
+#line 1 "./asn1/ns_cert_exts/packet-ns_cert_exts-hfarr.c"
{ &hf_ns_cert_exts_BaseUrl_PDU,
{ "BaseUrl", "ns_cert_exts.BaseUrl",
FT_STRING, BASE_NONE, NULL, 0,
@@ -317,18 +317,18 @@ void proto_register_ns_cert_exts(void) {
NULL, HFILL }},
/*--- End of included file: packet-ns_cert_exts-hfarr.c ---*/
-#line 53 "../../asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
+#line 53 "./asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-ns_cert_exts-ettarr.c ---*/
-#line 1 "../../asn1/ns_cert_exts/packet-ns_cert_exts-ettarr.c"
+#line 1 "./asn1/ns_cert_exts/packet-ns_cert_exts-ettarr.c"
&ett_ns_cert_exts_CertType,
/*--- End of included file: packet-ns_cert_exts-ettarr.c ---*/
-#line 58 "../../asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
+#line 58 "./asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
};
/* Register protocol */
@@ -345,7 +345,7 @@ void proto_register_ns_cert_exts(void) {
void proto_reg_handoff_ns_cert_exts(void) {
/*--- Included file: packet-ns_cert_exts-dis-tab.c ---*/
-#line 1 "../../asn1/ns_cert_exts/packet-ns_cert_exts-dis-tab.c"
+#line 1 "./asn1/ns_cert_exts/packet-ns_cert_exts-dis-tab.c"
register_ber_oid_dissector("2.16.840.1.113730.1.1", dissect_CertType_PDU, proto_ns_cert_exts, "ns_cert_exts.cert_type");
register_ber_oid_dissector("2.16.840.1.113730.1.2", dissect_BaseUrl_PDU, proto_ns_cert_exts, "ns_cert_exts.base_url");
register_ber_oid_dissector("2.16.840.1.113730.1.3", dissect_RevocationUrl_PDU, proto_ns_cert_exts, "ns_cert_exts.revocation-url");
@@ -357,6 +357,6 @@ void proto_reg_handoff_ns_cert_exts(void) {
/*--- End of included file: packet-ns_cert_exts-dis-tab.c ---*/
-#line 73 "../../asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
+#line 73 "./asn1/ns_cert_exts/packet-ns_cert_exts-template.c"
}
diff --git a/epan/dissectors/packet-ocsp.c b/epan/dissectors/packet-ocsp.c
index 0dd52de03e..69e8c16f72 100644
--- a/epan/dissectors/packet-ocsp.c
+++ b/epan/dissectors/packet-ocsp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ocsp.c */
-/* ../../tools/asn2wrs.py -b -p ocsp -c ./ocsp.cnf -s ./packet-ocsp-template -D . -O ../../epan/dissectors OCSP.asn */
+/* asn2wrs.py -b -p ocsp -c ./ocsp.cnf -s ./packet-ocsp-template -D . -O ../.. OCSP.asn */
/* Input file: packet-ocsp-template.c */
-#line 1 "../../asn1/ocsp/packet-ocsp-template.c"
+#line 1 "./asn1/ocsp/packet-ocsp-template.c"
/* packet-ocsp.c
* Routines for Online Certificate Status Protocol (RFC2560) packet dissection
* Ronnie Sahlberg 2004
@@ -54,7 +54,7 @@ int proto_ocsp = -1;
static int hf_ocsp_responseType_id = -1;
/*--- Included file: packet-ocsp-hf.c ---*/
-#line 1 "../../asn1/ocsp/packet-ocsp-hf.c"
+#line 1 "./asn1/ocsp/packet-ocsp-hf.c"
static int hf_ocsp_BasicOCSPResponse_PDU = -1; /* BasicOCSPResponse */
static int hf_ocsp_ArchiveCutoff_PDU = -1; /* ArchiveCutoff */
static int hf_ocsp_AcceptableResponses_PDU = -1; /* AcceptableResponses */
@@ -109,13 +109,13 @@ static int hf_ocsp_crlNum = -1; /* INTEGER */
static int hf_ocsp_crlTime = -1; /* GeneralizedTime */
/*--- End of included file: packet-ocsp-hf.c ---*/
-#line 48 "../../asn1/ocsp/packet-ocsp-template.c"
+#line 48 "./asn1/ocsp/packet-ocsp-template.c"
/* Initialize the subtree pointers */
static gint ett_ocsp = -1;
/*--- Included file: packet-ocsp-ett.c ---*/
-#line 1 "../../asn1/ocsp/packet-ocsp-ett.c"
+#line 1 "./asn1/ocsp/packet-ocsp-ett.c"
static gint ett_ocsp_OCSPRequest = -1;
static gint ett_ocsp_TBSRequest = -1;
static gint ett_ocsp_SEQUENCE_OF_Request = -1;
@@ -137,11 +137,11 @@ static gint ett_ocsp_ServiceLocator = -1;
static gint ett_ocsp_CrlID = -1;
/*--- End of included file: packet-ocsp-ett.c ---*/
-#line 52 "../../asn1/ocsp/packet-ocsp-template.c"
+#line 52 "./asn1/ocsp/packet-ocsp-template.c"
/*--- Included file: packet-ocsp-fn.c ---*/
-#line 1 "../../asn1/ocsp/packet-ocsp-fn.c"
+#line 1 "./asn1/ocsp/packet-ocsp-fn.c"
static int
@@ -303,7 +303,7 @@ dissect_ocsp_OCSPResponseStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_ocsp_T_responseType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 40 "../../asn1/ocsp/ocsp.cnf"
+#line 40 "./asn1/ocsp/ocsp.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_ocsp_responseType_id, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -317,7 +317,7 @@ dissect_ocsp_T_responseType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ocsp_T_response(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 44 "../../asn1/ocsp/ocsp.cnf"
+#line 44 "./asn1/ocsp/ocsp.cnf"
gint8 appclass;
gboolean pc, ind;
gint32 tag;
@@ -675,7 +675,7 @@ static int dissect_NULL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-ocsp-fn.c ---*/
-#line 54 "../../asn1/ocsp/packet-ocsp-template.c"
+#line 54 "./asn1/ocsp/packet-ocsp-template.c"
static int
@@ -732,7 +732,7 @@ void proto_register_ocsp(void) {
NULL, HFILL }},
/*--- Included file: packet-ocsp-hfarr.c ---*/
-#line 1 "../../asn1/ocsp/packet-ocsp-hfarr.c"
+#line 1 "./asn1/ocsp/packet-ocsp-hfarr.c"
{ &hf_ocsp_BasicOCSPResponse_PDU,
{ "BasicOCSPResponse", "ocsp.BasicOCSPResponse_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -943,7 +943,7 @@ void proto_register_ocsp(void) {
"GeneralizedTime", HFILL }},
/*--- End of included file: packet-ocsp-hfarr.c ---*/
-#line 109 "../../asn1/ocsp/packet-ocsp-template.c"
+#line 109 "./asn1/ocsp/packet-ocsp-template.c"
};
/* List of subtrees */
@@ -951,7 +951,7 @@ void proto_register_ocsp(void) {
&ett_ocsp,
/*--- Included file: packet-ocsp-ettarr.c ---*/
-#line 1 "../../asn1/ocsp/packet-ocsp-ettarr.c"
+#line 1 "./asn1/ocsp/packet-ocsp-ettarr.c"
&ett_ocsp_OCSPRequest,
&ett_ocsp_TBSRequest,
&ett_ocsp_SEQUENCE_OF_Request,
@@ -973,7 +973,7 @@ void proto_register_ocsp(void) {
&ett_ocsp_CrlID,
/*--- End of included file: packet-ocsp-ettarr.c ---*/
-#line 115 "../../asn1/ocsp/packet-ocsp-template.c"
+#line 115 "./asn1/ocsp/packet-ocsp-template.c"
};
/* Register protocol */
@@ -998,7 +998,7 @@ void proto_reg_handoff_ocsp(void) {
/*--- Included file: packet-ocsp-dis-tab.c ---*/
-#line 1 "../../asn1/ocsp/packet-ocsp-dis-tab.c"
+#line 1 "./asn1/ocsp/packet-ocsp-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.5.7.48.1.1", dissect_BasicOCSPResponse_PDU, proto_ocsp, "id-pkix-ocsp-basic");
register_ber_oid_dissector("1.3.6.1.5.5.7.48.1.2", dissect_ReOcspNonce_PDU, proto_ocsp, "id-pkix-ocsp-nonce");
register_ber_oid_dissector("1.3.6.1.5.5.7.48.1.3", dissect_CrlID_PDU, proto_ocsp, "id-pkix-ocsp-crl");
@@ -1009,6 +1009,6 @@ void proto_reg_handoff_ocsp(void) {
/*--- End of included file: packet-ocsp-dis-tab.c ---*/
-#line 138 "../../asn1/ocsp/packet-ocsp-template.c"
+#line 138 "./asn1/ocsp/packet-ocsp-template.c"
}
diff --git a/epan/dissectors/packet-ocsp.h b/epan/dissectors/packet-ocsp.h
index a48b71efd3..9369a58156 100644
--- a/epan/dissectors/packet-ocsp.h
+++ b/epan/dissectors/packet-ocsp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ocsp.h */
-/* ../../tools/asn2wrs.py -b -p ocsp -c ./ocsp.cnf -s ./packet-ocsp-template -D . -O ../../epan/dissectors OCSP.asn */
+/* asn2wrs.py -b -p ocsp -c ./ocsp.cnf -s ./packet-ocsp-template -D . -O ../.. OCSP.asn */
/* Input file: packet-ocsp-template.h */
-#line 1 "../../asn1/ocsp/packet-ocsp-template.h"
+#line 1 "./asn1/ocsp/packet-ocsp-template.h"
/* packet-ocsp.h
* Routines for Online Certificate Status Protocol (RFC2560) packet dissection
* Ronnie Sahlberg 2004
diff --git a/epan/dissectors/packet-p1.c b/epan/dissectors/packet-p1.c
index 546a2b5a65..df9c81ade5 100644
--- a/epan/dissectors/packet-p1.c
+++ b/epan/dissectors/packet-p1.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-p1.c */
-/* ../../tools/asn2wrs.py -b -C -p p1 -c ./p1.cnf -s ./packet-p1-template -D . -O ../../epan/dissectors MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn MTSUpperBounds.asn */
+/* asn2wrs.py -b -C -p p1 -c ./p1.cnf -s ./packet-p1-template -D . -O ../.. MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn MTSUpperBounds.asn */
/* Input file: packet-p1-template.c */
-#line 1 "../../asn1/p1/packet-p1-template.c"
+#line 1 "./asn1/p1/packet-p1-template.c"
/* packet-p1.c
* Routines for X.411 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -69,7 +69,7 @@ static int hf_p1_MTABindError_PDU = -1;
/*--- Included file: packet-p1-hf.c ---*/
-#line 1 "../../asn1/p1/packet-p1-hf.c"
+#line 1 "./asn1/p1/packet-p1-hf.c"
static int hf_p1_InternalTraceInformation_PDU = -1; /* InternalTraceInformation */
static int hf_p1_InternalTraceInformationElement_PDU = -1; /* InternalTraceInformationElement */
static int hf_p1_TraceInformation_PDU = -1; /* TraceInformation */
@@ -634,7 +634,7 @@ static int hf_p1_G3FacsimileNonBasicParameters_jpeg = -1;
static int hf_p1_G3FacsimileNonBasicParameters_processable_mode_26 = -1;
/*--- End of included file: packet-p1-hf.c ---*/
-#line 63 "../../asn1/p1/packet-p1-template.c"
+#line 63 "./asn1/p1/packet-p1-template.c"
/* Initialize the subtree pointers */
static gint ett_p1 = -1;
@@ -647,7 +647,7 @@ static gint ett_p1_unknown_extension_attribute_type = -1;
static gint ett_p1_unknown_tokendata_type = -1;
/*--- Included file: packet-p1-ett.c ---*/
-#line 1 "../../asn1/p1/packet-p1-ett.c"
+#line 1 "./asn1/p1/packet-p1-ett.c"
static gint ett_p1_MTABindArgument = -1;
static gint ett_p1_AuthenticatedArgument = -1;
static gint ett_p1_MTABindResult = -1;
@@ -829,7 +829,7 @@ static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissio
static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields = -1;
/*--- End of included file: packet-p1-ett.c ---*/
-#line 74 "../../asn1/p1/packet-p1-template.c"
+#line 74 "./asn1/p1/packet-p1-template.c"
static expert_field ei_p1_unknown_extension_attribute_type = EI_INIT;
static expert_field ei_p1_unknown_standard_extension = EI_INIT;
@@ -845,7 +845,7 @@ static dissector_table_t p1_tokendata_dissector_table;
/*--- Included file: packet-p1-table.c ---*/
-#line 1 "../../asn1/p1/packet-p1-table.c"
+#line 1 "./asn1/p1/packet-p1-table.c"
/* P3 ABSTRACT-OPERATIONS */
const value_string p3_opr_code_string_vals[] = {
@@ -887,7 +887,7 @@ static const value_string p3_err_code_string_vals[] = {
/*--- End of included file: packet-p1-table.c ---*/
-#line 88 "../../asn1/p1/packet-p1-template.c"
+#line 88 "./asn1/p1/packet-p1-template.c"
#define P1_ADDRESS_CTX "p1-address-ctx"
typedef struct p1_address_ctx {
@@ -966,7 +966,7 @@ static void do_address_str_tree(const char* addr, tvbuff_t* tvb_string, asn1_ctx
/*--- Included file: packet-p1-fn.c ---*/
-#line 1 "../../asn1/p1/packet-p1-fn.c"
+#line 1 "./asn1/p1/packet-p1-fn.c"
static int
@@ -980,7 +980,7 @@ dissect_p1_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_p1_MTAName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 705 "../../asn1/p1/p1.cnf"
+#line 705 "./asn1/p1/p1.cnf"
tvbuff_t *mtaname = NULL;
p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
@@ -1058,7 +1058,7 @@ dissect_p1_TokenTypeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p1_TokenTypeData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1165 "../../asn1/p1/p1.cnf"
+#line 1165 "./asn1/p1/p1.cnf"
if(actx->external.direct_reference)
call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
@@ -1169,7 +1169,7 @@ static const ber_choice_t Credentials_choice[] = {
int
dissect_p1_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1173 "../../asn1/p1/p1.cnf"
+#line 1173 "./asn1/p1/p1.cnf"
gint credentials = -1;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1248,7 +1248,7 @@ dissect_p1_SecurityCategoryIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _
static int
dissect_p1_SecurityCategoryValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 568 "../../asn1/p1/p1.cnf"
+#line 568 "./asn1/p1/p1.cnf"
const char *name;
if (actx->external.direct_reference) {
@@ -1428,7 +1428,7 @@ static const value_string p1_MTABindError_vals[] = {
static int
dissect_p1_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1156 "../../asn1/p1/p1.cnf"
+#line 1156 "./asn1/p1/p1.cnf"
int error = -1;
offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
0U, ub_integer_options, hf_index, &error);
@@ -1445,7 +1445,7 @@ dissect_p1_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_p1_T_x121_dcc_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 853 "../../asn1/p1/p1.cnf"
+#line 853 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -1464,7 +1464,7 @@ dissect_p1_T_x121_dcc_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_p1_T_iso_3166_alpha2_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 811 "../../asn1/p1/p1.cnf"
+#line 811 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1505,7 +1505,7 @@ dissect_p1_CountryName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_p1_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 606 "../../asn1/p1/p1.cnf"
+#line 606 "./asn1/p1/p1.cnf"
do_address("/C=", NULL, actx);
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1521,7 +1521,7 @@ dissect_p1_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_p1_T_numeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 860 "../../asn1/p1/p1.cnf"
+#line 860 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -1540,7 +1540,7 @@ dissect_p1_T_numeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_p1_T_printable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 818 "../../asn1/p1/p1.cnf"
+#line 818 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1581,7 +1581,7 @@ dissect_p1_AdministrationDomainName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _
static int
dissect_p1_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 611 "../../asn1/p1/p1.cnf"
+#line 611 "./asn1/p1/p1.cnf"
do_address("/A=", NULL, actx);
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1597,7 +1597,7 @@ dissect_p1_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_p1_T_numeric_private_domain_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 874 "../../asn1/p1/p1.cnf"
+#line 874 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -1616,7 +1616,7 @@ dissect_p1_T_numeric_private_domain_identifier(gboolean implicit_tag _U_, tvbuff
static int
dissect_p1_T_printable_private_domain_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 832 "../../asn1/p1/p1.cnf"
+#line 832 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1646,7 +1646,7 @@ static const ber_choice_t PrivateDomainIdentifier_choice[] = {
static int
dissect_p1_PrivateDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 745 "../../asn1/p1/p1.cnf"
+#line 745 "./asn1/p1/p1.cnf"
do_address("/P=", NULL, actx);
@@ -1680,7 +1680,7 @@ dissect_p1_GlobalDomainIdentifier_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_p1_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1035 "../../asn1/p1/p1.cnf"
+#line 1035 "./asn1/p1/p1.cnf"
p1_address_ctx_t* ctx;
if (actx->subtree.tree_ctx == NULL) {
@@ -1714,7 +1714,7 @@ dissect_p1_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_p1_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1061 "../../asn1/p1/p1.cnf"
+#line 1061 "./asn1/p1/p1.cnf"
tvbuff_t *id = NULL;
p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
@@ -1755,7 +1755,7 @@ dissect_p1_MTSIdentifier_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_p1_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1075 "../../asn1/p1/p1.cnf"
+#line 1075 "./asn1/p1/p1.cnf"
set_do_address(actx, TRUE);
@@ -1774,7 +1774,7 @@ dissect_p1_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_p1_MessageIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1030 "../../asn1/p1/p1.cnf"
+#line 1030 "./asn1/p1/p1.cnf"
actx->subtree.tree = NULL;
offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -1789,7 +1789,7 @@ dissect_p1_MessageIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_p1_X121Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 722 "../../asn1/p1/p1.cnf"
+#line 722 "./asn1/p1/p1.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -1817,7 +1817,7 @@ dissect_p1_NetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_p1_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 732 "../../asn1/p1/p1.cnf"
+#line 732 "./asn1/p1/p1.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1836,7 +1836,7 @@ dissect_p1_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p1_T_numeric_private_domain_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 867 "../../asn1/p1/p1.cnf"
+#line 867 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -1855,7 +1855,7 @@ dissect_p1_T_numeric_private_domain_name(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_p1_T_printable_private_domain_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 825 "../../asn1/p1/p1.cnf"
+#line 825 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1885,7 +1885,7 @@ static const ber_choice_t PrivateDomainName_choice[] = {
static int
dissect_p1_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 739 "../../asn1/p1/p1.cnf"
+#line 739 "./asn1/p1/p1.cnf"
do_address("/P=", NULL, actx);
@@ -1903,7 +1903,7 @@ dissect_p1_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_p1_OrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 754 "../../asn1/p1/p1.cnf"
+#line 754 "./asn1/p1/p1.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1933,7 +1933,7 @@ dissect_p1_NumericUserIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_p1_T_printable_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 915 "../../asn1/p1/p1.cnf"
+#line 915 "./asn1/p1/p1.cnf"
tvbuff_t *pstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1952,7 +1952,7 @@ dissect_p1_T_printable_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p1_T_printable_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 922 "../../asn1/p1/p1.cnf"
+#line 922 "./asn1/p1/p1.cnf"
tvbuff_t *pstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1971,7 +1971,7 @@ dissect_p1_T_printable_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_p1_T_printable_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 929 "../../asn1/p1/p1.cnf"
+#line 929 "./asn1/p1/p1.cnf"
tvbuff_t *pstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1990,7 +1990,7 @@ dissect_p1_T_printable_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_p1_T_printable_generation_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 936 "../../asn1/p1/p1.cnf"
+#line 936 "./asn1/p1/p1.cnf"
tvbuff_t *pstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -2026,7 +2026,7 @@ dissect_p1_PersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_p1_OrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 774 "../../asn1/p1/p1.cnf"
+#line 774 "./asn1/p1/p1.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -2070,7 +2070,7 @@ static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
static int
dissect_p1_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1092 "../../asn1/p1/p1.cnf"
+#line 1092 "./asn1/p1/p1.cnf"
actx->subtree.tree = tree;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -2086,7 +2086,7 @@ dissect_p1_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_p1_T_printable_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 971 "../../asn1/p1/p1.cnf"
+#line 971 "./asn1/p1/p1.cnf"
tvbuff_t *pstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -2105,7 +2105,7 @@ dissect_p1_T_printable_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_p1_T_printable_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 978 "../../asn1/p1/p1.cnf"
+#line 978 "./asn1/p1/p1.cnf"
tvbuff_t *pstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -2129,7 +2129,7 @@ static const ber_sequence_t BuiltInDomainDefinedAttribute_sequence[] = {
static int
dissect_p1_BuiltInDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 985 "../../asn1/p1/p1.cnf"
+#line 985 "./asn1/p1/p1.cnf"
actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -2212,7 +2212,7 @@ dissect_p1_ExtensionAttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_p1_T_extension_attribute_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 582 "../../asn1/p1/p1.cnf"
+#line 582 "./asn1/p1/p1.cnf"
proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_ExtensionAttributeType_vals, "extension-attribute-type %d"));
if (!actx->pinfo->private_table) {
@@ -2287,7 +2287,7 @@ dissect_p1_ORName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
int
dissect_p1_ORName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1011 "../../asn1/p1/p1.cnf"
+#line 1011 "./asn1/p1/p1.cnf"
p1_address_ctx_t* ctx;
if (actx->subtree.tree_ctx == NULL) {
@@ -2503,7 +2503,7 @@ static const value_string p1_BuiltInContentType_U_vals[] = {
static int
dissect_p1_BuiltInContentType_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 653 "../../asn1/p1/p1.cnf"
+#line 653 "./asn1/p1/p1.cnf"
static guint32 ict = -1;
p1_address_ctx_t* ctx;
@@ -2548,7 +2548,7 @@ dissect_p1_BuiltInContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
int
dissect_p1_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 632 "../../asn1/p1/p1.cnf"
+#line 632 "./asn1/p1/p1.cnf"
const char *name = NULL;
p1_address_ctx_t* ctx;
@@ -2679,7 +2679,7 @@ dissect_p1_PerMessageIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_p1_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1134 "../../asn1/p1/p1.cnf"
+#line 1134 "./asn1/p1/p1.cnf"
tvbuff_t *arrival = NULL;
p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
@@ -2744,7 +2744,7 @@ dissect_p1_T_bilateral_domain(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p1_T_bilateral_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1200 "../../asn1/p1/p1.cnf"
+#line 1200 "./asn1/p1/p1.cnf"
proto_item *item = NULL;
int loffset = 0;
guint32 len = 0;
@@ -2812,7 +2812,7 @@ static const value_string p1_RoutingAction_vals[] = {
static int
dissect_p1_RoutingAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1146 "../../asn1/p1/p1.cnf"
+#line 1146 "./asn1/p1/p1.cnf"
int action = 0;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2873,7 +2873,7 @@ static const ber_sequence_t DomainSuppliedInformation_set[] = {
static int
dissect_p1_DomainSuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1113 "../../asn1/p1/p1.cnf"
+#line 1113 "./asn1/p1/p1.cnf"
set_do_address(actx, FALSE);
@@ -2898,7 +2898,7 @@ static const ber_sequence_t TraceInformationElement_sequence[] = {
static int
dissect_p1_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1097 "../../asn1/p1/p1.cnf"
+#line 1097 "./asn1/p1/p1.cnf"
set_do_address(actx, TRUE);
@@ -2989,7 +2989,7 @@ static const value_string p1_StandardExtension_vals[] = {
static int
dissect_p1_StandardExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 618 "../../asn1/p1/p1.cnf"
+#line 618 "./asn1/p1/p1.cnf"
actx->external.indirect_ref_present = TRUE;
actx->external.direct_ref_present = FALSE;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -3005,7 +3005,7 @@ dissect_p1_StandardExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_p1_T_private_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 623 "../../asn1/p1/p1.cnf"
+#line 623 "./asn1/p1/p1.cnf"
actx->external.indirect_ref_present = FALSE;
actx->external.direct_reference = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
@@ -3060,7 +3060,7 @@ dissect_p1_Criticality(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_p1_ExtensionValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 542 "../../asn1/p1/p1.cnf"
+#line 542 "./asn1/p1/p1.cnf"
const char *name;
if(actx->external.indirect_ref_present) {
@@ -3242,7 +3242,7 @@ dissect_p1_MessageTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int
dissect_p1_Content(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 677 "../../asn1/p1/p1.cnf"
+#line 677 "./asn1/p1/p1.cnf"
tvbuff_t *next_tvb;
p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
@@ -3436,7 +3436,7 @@ dissect_p1_SubjectIntermediateTraceInformation(gboolean implicit_tag _U_, tvbuff
static int
dissect_p1_AdditionalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 524 "../../asn1/p1/p1.cnf"
+#line 524 "./asn1/p1/p1.cnf"
proto_item *item = NULL;
int loffset = 0;
guint32 len = 0;
@@ -3656,7 +3656,7 @@ static const ber_choice_t ReportType_choice[] = {
static int
dissect_p1_ReportType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1232 "../../asn1/p1/p1.cnf"
+#line 1232 "./asn1/p1/p1.cnf"
gint report = -1;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -3796,7 +3796,7 @@ static const ber_choice_t MTS_APDU_choice[] = {
static int
dissect_p1_MTS_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1218 "../../asn1/p1/p1.cnf"
+#line 1218 "./asn1/p1/p1.cnf"
gint apdu = -1;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -3853,7 +3853,7 @@ static const ber_sequence_t MTASuppliedInformation_set[] = {
static int
dissect_p1_MTASuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1122 "../../asn1/p1/p1.cnf"
+#line 1122 "./asn1/p1/p1.cnf"
set_do_address(actx, FALSE);
@@ -3879,7 +3879,7 @@ static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
static int
dissect_p1_InternalTraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1105 "../../asn1/p1/p1.cnf"
+#line 1105 "./asn1/p1/p1.cnf"
set_do_address(actx, TRUE);
@@ -4013,7 +4013,7 @@ static const ber_sequence_t MTSBindResult_set[] = {
static int
dissect_p1_MTSBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1256 "../../asn1/p1/p1.cnf"
+#line 1256 "./asn1/p1/p1.cnf"
/* TODO: there may be other entry points where this global should be initialized... */
actx->subtree.tree = NULL;
@@ -4146,7 +4146,7 @@ static const ber_sequence_t MessageSubmissionArgument_sequence[] = {
static int
dissect_p1_MessageSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1241 "../../asn1/p1/p1.cnf"
+#line 1241 "./asn1/p1/p1.cnf"
p1_initialize_content_globals(actx, tree, TRUE);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
MessageSubmissionArgument_sequence, hf_index, ett_p1_MessageSubmissionArgument);
@@ -4720,7 +4720,7 @@ static const ber_sequence_t MessageDeliveryArgument_sequence[] = {
static int
dissect_p1_MessageDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1246 "../../asn1/p1/p1.cnf"
+#line 1246 "./asn1/p1/p1.cnf"
p1_initialize_content_globals(actx, tree, TRUE);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
MessageDeliveryArgument_sequence, hf_index, ett_p1_MessageDeliveryArgument);
@@ -4830,7 +4830,7 @@ static const ber_sequence_t ReportDeliveryArgument_set[] = {
static int
dissect_p1_ReportDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1251 "../../asn1/p1/p1.cnf"
+#line 1251 "./asn1/p1/p1.cnf"
p1_initialize_content_globals(actx, tree, TRUE);
offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
ReportDeliveryArgument_set, hf_index, ett_p1_ReportDeliveryArgument);
@@ -4968,7 +4968,7 @@ dissect_p1_RefusedArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_p1_T_refused_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 603 "../../asn1/p1/p1.cnf"
+#line 603 "./asn1/p1/p1.cnf"
/*XXX not implemented yet */
@@ -5043,7 +5043,7 @@ dissect_p1_UserName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_p1_T_x121_address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 846 "../../asn1/p1/p1.cnf"
+#line 846 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -5361,7 +5361,7 @@ dissect_p1_T_standard_parameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_p1_T_type_extensions_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 539 "../../asn1/p1/p1.cnf"
+#line 539 "./asn1/p1/p1.cnf"
/*XXX not implemented yet */
@@ -5748,7 +5748,7 @@ static const ber_sequence_t ORAddress_sequence[] = {
int
dissect_p1_ORAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 990 "../../asn1/p1/p1.cnf"
+#line 990 "./asn1/p1/p1.cnf"
p1_address_ctx_t* ctx;
if (actx->subtree.tree_ctx == NULL) {
@@ -6191,7 +6191,7 @@ dissect_p1_CertificateSelectors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_p1_CommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 794 "../../asn1/p1/p1.cnf"
+#line 794 "./asn1/p1/p1.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -6210,7 +6210,7 @@ dissect_p1_CommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_p1_TeletexCommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 804 "../../asn1/p1/p1.cnf"
+#line 804 "./asn1/p1/p1.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -6308,7 +6308,7 @@ dissect_p1_UniversalCommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p1_TeletexOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 764 "../../asn1/p1/p1.cnf"
+#line 764 "./asn1/p1/p1.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -6336,7 +6336,7 @@ dissect_p1_UniversalOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
dissect_p1_T_teletex_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 943 "../../asn1/p1/p1.cnf"
+#line 943 "./asn1/p1/p1.cnf"
tvbuff_t *tstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -6355,7 +6355,7 @@ dissect_p1_T_teletex_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_p1_T_teletex_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 950 "../../asn1/p1/p1.cnf"
+#line 950 "./asn1/p1/p1.cnf"
tvbuff_t *tstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -6374,7 +6374,7 @@ dissect_p1_T_teletex_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_p1_T_teletex_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 957 "../../asn1/p1/p1.cnf"
+#line 957 "./asn1/p1/p1.cnf"
tvbuff_t *tstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -6393,7 +6393,7 @@ dissect_p1_T_teletex_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p1_T_teletex_generation_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 964 "../../asn1/p1/p1.cnf"
+#line 964 "./asn1/p1/p1.cnf"
tvbuff_t *tstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -6446,7 +6446,7 @@ dissect_p1_UniversalPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_p1_TeletexOrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 784 "../../asn1/p1/p1.cnf"
+#line 784 "./asn1/p1/p1.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -6511,7 +6511,7 @@ dissect_p1_PDSName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_p1_T_x121_dcc_code_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 881 "../../asn1/p1/p1.cnf"
+#line 881 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -6530,7 +6530,7 @@ dissect_p1_T_x121_dcc_code_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p1_T_iso_3166_alpha2_code_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 839 "../../asn1/p1/p1.cnf"
+#line 839 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -6571,7 +6571,7 @@ dissect_p1_PhysicalDeliveryCountryName(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_p1_T_numeric_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 888 "../../asn1/p1/p1.cnf"
+#line 888 "./asn1/p1/p1.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -6995,7 +6995,7 @@ dissect_p1_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_p1_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 896 "../../asn1/p1/p1.cnf"
+#line 896 "./asn1/p1/p1.cnf"
tvbuff_t *tstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -7014,7 +7014,7 @@ dissect_p1_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_p1_T_teletex_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 903 "../../asn1/p1/p1.cnf"
+#line 903 "./asn1/p1/p1.cnf"
tvbuff_t *tstring = NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -7038,7 +7038,7 @@ static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = {
static int
dissect_p1_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 910 "../../asn1/p1/p1.cnf"
+#line 910 "./asn1/p1/p1.cnf"
actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -7101,7 +7101,7 @@ static const ber_sequence_t MTANameAndOptionalGDI_sequence[] = {
static int
dissect_p1_MTANameAndOptionalGDI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1083 "../../asn1/p1/p1.cnf"
+#line 1083 "./asn1/p1/p1.cnf"
set_do_address(actx, TRUE);
@@ -7161,7 +7161,7 @@ dissect_p1_TokenDataType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_p1_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1185 "../../asn1/p1/p1.cnf"
+#line 1185 "./asn1/p1/p1.cnf"
proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_TokenDataType_vals, "tokendata-type %d"));
if (dissector_try_uint(p1_tokendata_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
@@ -8386,11 +8386,11 @@ static int dissect_SecurityClassification_PDU(tvbuff_t *tvb _U_, packet_info *pi
/*--- End of included file: packet-p1-fn.c ---*/
-#line 165 "../../asn1/p1/packet-p1-template.c"
+#line 165 "./asn1/p1/packet-p1-template.c"
/*--- Included file: packet-p1-table11.c ---*/
-#line 1 "../../asn1/p1/packet-p1-table11.c"
+#line 1 "./asn1/p1/packet-p1-table11.c"
static const ros_opr_t p3_opr_tab[] = {
/* mts-bind */
@@ -8418,10 +8418,10 @@ static const ros_opr_t p3_opr_tab[] = {
/*--- End of included file: packet-p1-table11.c ---*/
-#line 167 "../../asn1/p1/packet-p1-template.c"
+#line 167 "./asn1/p1/packet-p1-template.c"
/*--- Included file: packet-p1-table21.c ---*/
-#line 1 "../../asn1/p1/packet-p1-table21.c"
+#line 1 "./asn1/p1/packet-p1-table21.c"
static const ros_err_t p3_err_tab[] = {
/* mts-bind-error*/
@@ -8463,7 +8463,7 @@ static const ros_err_t p3_err_tab[] = {
/*--- End of included file: packet-p1-table21.c ---*/
-#line 168 "../../asn1/p1/packet-p1-template.c"
+#line 168 "./asn1/p1/packet-p1-template.c"
static const ros_info_t p3_ros_info = {
"P3",
@@ -8634,7 +8634,7 @@ void proto_register_p1(void) {
/*--- Included file: packet-p1-hfarr.c ---*/
-#line 1 "../../asn1/p1/packet-p1-hfarr.c"
+#line 1 "./asn1/p1/packet-p1-hfarr.c"
{ &hf_p1_InternalTraceInformation_PDU,
{ "InternalTraceInformation", "p1.InternalTraceInformation",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -10881,7 +10881,7 @@ void proto_register_p1(void) {
NULL, HFILL }},
/*--- End of included file: packet-p1-hfarr.c ---*/
-#line 337 "../../asn1/p1/packet-p1-template.c"
+#line 337 "./asn1/p1/packet-p1-template.c"
};
/* List of subtrees */
@@ -10896,7 +10896,7 @@ void proto_register_p1(void) {
&ett_p1_unknown_tokendata_type,
/*--- Included file: packet-p1-ettarr.c ---*/
-#line 1 "../../asn1/p1/packet-p1-ettarr.c"
+#line 1 "./asn1/p1/packet-p1-ettarr.c"
&ett_p1_MTABindArgument,
&ett_p1_AuthenticatedArgument,
&ett_p1_MTABindResult,
@@ -11078,7 +11078,7 @@ void proto_register_p1(void) {
&ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields,
/*--- End of included file: packet-p1-ettarr.c ---*/
-#line 350 "../../asn1/p1/packet-p1-template.c"
+#line 350 "./asn1/p1/packet-p1-template.c"
};
static ei_register_info ei[] = {
@@ -11121,13 +11121,13 @@ void proto_register_p1(void) {
register_ber_syntax_dissector("P1 Message", proto_p1, dissect_p1_mts_apdu);
/*--- Included file: packet-p1-syn-reg.c ---*/
-#line 1 "../../asn1/p1/packet-p1-syn-reg.c"
+#line 1 "./asn1/p1/packet-p1-syn-reg.c"
/*--- Syntax registrations ---*/
register_ber_syntax_dissector("ORAddress", proto_p1, dissect_ORAddress_PDU);
register_ber_syntax_dissector("ORName", proto_p1, dissect_ORName_PDU);
/*--- End of included file: packet-p1-syn-reg.c ---*/
-#line 391 "../../asn1/p1/packet-p1-template.c"
+#line 391 "./asn1/p1/packet-p1-template.c"
}
@@ -11137,7 +11137,7 @@ void proto_reg_handoff_p1(void) {
/*--- Included file: packet-p1-dis-tab.c ---*/
-#line 1 "../../asn1/p1/packet-p1-dis-tab.c"
+#line 1 "./asn1/p1/packet-p1-dis-tab.c"
dissector_add_uint("p1.extension", 1, create_dissector_handle(dissect_RecipientReassignmentProhibited_PDU, proto_p1));
dissector_add_uint("p1.extension", 2, create_dissector_handle(dissect_OriginatorRequestedAlternateRecipient_PDU, proto_p1));
dissector_add_uint("p1.extension", 3, create_dissector_handle(dissect_DLExpansionProhibited_PDU, proto_p1));
@@ -11293,7 +11293,7 @@ void proto_reg_handoff_p1(void) {
/*--- End of included file: packet-p1-dis-tab.c ---*/
-#line 399 "../../asn1/p1/packet-p1-template.c"
+#line 399 "./asn1/p1/packet-p1-template.c"
/* APPLICATION CONTEXT */
diff --git a/epan/dissectors/packet-p1.h b/epan/dissectors/packet-p1.h
index de969b57cb..d3c5d11571 100644
--- a/epan/dissectors/packet-p1.h
+++ b/epan/dissectors/packet-p1.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-p1.h */
-/* ../../tools/asn2wrs.py -b -C -p p1 -c ./p1.cnf -s ./packet-p1-template -D . -O ../../epan/dissectors MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn MTSUpperBounds.asn */
+/* asn2wrs.py -b -C -p p1 -c ./p1.cnf -s ./packet-p1-template -D . -O ../.. MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn MTSUpperBounds.asn */
/* Input file: packet-p1-template.h */
-#line 1 "../../asn1/p1/packet-p1-template.h"
+#line 1 "./asn1/p1/packet-p1-template.h"
/* packet-p3.h
* Routines for X.411 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -34,7 +34,7 @@
/*--- Included file: packet-p1-val.h ---*/
-#line 1 "../../asn1/p1/packet-p1-val.h"
+#line 1 "./asn1/p1/packet-p1-val.h"
#define op_message_submission 3
#define op_probe_submission 4
#define op_cancel_deferred_delivery 7
@@ -170,14 +170,14 @@
#define ub_x121_address_length 16
/*--- End of included file: packet-p1-val.h ---*/
-#line 28 "../../asn1/p1/packet-p1-template.h"
+#line 28 "./asn1/p1/packet-p1-template.h"
void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, gboolean report_unknown_cont_type);
const char* p1_get_last_oraddress(asn1_ctx_t* actx);
int dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data);
/*--- Included file: packet-p1-exp.h ---*/
-#line 1 "../../asn1/p1/packet-p1-exp.h"
+#line 1 "./asn1/p1/packet-p1-exp.h"
extern const value_string p1_Credentials_vals[];
extern const value_string p1_SecurityProblem_vals[];
extern const value_string p1_ContentType_vals[];
@@ -231,7 +231,7 @@ int dissect_p1_SecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
int dissect_p1_MessageSecurityLabel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-p1-exp.h ---*/
-#line 33 "../../asn1/p1/packet-p1-template.h"
+#line 33 "./asn1/p1/packet-p1-template.h"
void proto_reg_handoff_p1(void);
void proto_register_p1(void);
diff --git a/epan/dissectors/packet-p22.c b/epan/dissectors/packet-p22.c
index cc40b31c95..d82b77f0ab 100644
--- a/epan/dissectors/packet-p22.c
+++ b/epan/dissectors/packet-p22.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-p22.c */
-/* ../../tools/asn2wrs.py -b -C -p p22 -c ./p22.cnf -s ./packet-p22-template -D . -O ../../epan/dissectors IPMSInformationObjects.asn IPMSHeadingExtensions.asn IPMSExtendedBodyPartTypes2.asn IPMSFileTransferBodyPartType.asn IPMSExtendedVoiceBodyPartType.asn IPMSForwardedContentBodyPartType.asn IPMSMessageStoreAttributes.asn IPMSSecurityExtensions.asn IPMSObjectIdentifiers.asn IPMSUpperBounds.asn */
+/* asn2wrs.py -b -C -p p22 -c ./p22.cnf -s ./packet-p22-template -D . -O ../.. IPMSInformationObjects.asn IPMSHeadingExtensions.asn IPMSExtendedBodyPartTypes2.asn IPMSFileTransferBodyPartType.asn IPMSExtendedVoiceBodyPartType.asn IPMSForwardedContentBodyPartType.asn IPMSMessageStoreAttributes.asn IPMSSecurityExtensions.asn IPMSObjectIdentifiers.asn IPMSUpperBounds.asn */
/* Input file: packet-p22-template.c */
-#line 1 "../../asn1/p22/packet-p22-template.c"
+#line 1 "./asn1/p22/packet-p22-template.c"
/* packet-p22.c
* Routines for X.420 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -85,7 +85,7 @@ static const value_string charsetreg_vals [] = {
/*--- Included file: packet-p22-val.h ---*/
-#line 1 "../../asn1/p22/packet-p22-val.h"
+#line 1 "./asn1/p22/packet-p22-val.h"
#define id_ipms "2.6.1"
#define id_mod id_ipms".0"
#define id_ot id_ipms".1"
@@ -335,11 +335,11 @@ static const value_string charsetreg_vals [] = {
#define ub_telephone_number 32
/*--- End of included file: packet-p22-val.h ---*/
-#line 79 "../../asn1/p22/packet-p22-template.c"
+#line 79 "./asn1/p22/packet-p22-template.c"
/*--- Included file: packet-p22-hf.c ---*/
-#line 1 "../../asn1/p22/packet-p22-hf.c"
+#line 1 "./asn1/p22/packet-p22-hf.c"
static int hf_p22_InformationObject_PDU = -1; /* InformationObject */
static int hf_p22_Heading_PDU = -1; /* Heading */
static int hf_p22_ORDescriptor_PDU = -1; /* ORDescriptor */
@@ -720,13 +720,13 @@ static int hf_p22_RecipientSecurityRequest_ipn_non_repudiation = -1;
static int hf_p22_RecipientSecurityRequest_ipn_proof = -1;
/*--- End of included file: packet-p22-hf.c ---*/
-#line 81 "../../asn1/p22/packet-p22-template.c"
+#line 81 "./asn1/p22/packet-p22-template.c"
/* Initialize the subtree pointers */
static gint ett_p22 = -1;
/*--- Included file: packet-p22-ett.c ---*/
-#line 1 "../../asn1/p22/packet-p22-ett.c"
+#line 1 "./asn1/p22/packet-p22-ett.c"
static gint ett_p22_InformationObject = -1;
static gint ett_p22_IPM = -1;
static gint ett_p22_IPMSExtension = -1;
@@ -854,11 +854,11 @@ static gint ett_p22_T_body_part_token_choice = -1;
static gint ett_p22_T_choice = -1;
/*--- End of included file: packet-p22-ett.c ---*/
-#line 85 "../../asn1/p22/packet-p22-template.c"
+#line 85 "./asn1/p22/packet-p22-template.c"
/*--- Included file: packet-p22-fn.c ---*/
-#line 1 "../../asn1/p22/packet-p22-fn.c"
+#line 1 "./asn1/p22/packet-p22-fn.c"
/*--- Cyclic dependencies ---*/
/* IPM -> Body -> BodyPart -> BodyPart/basic -> MessageBodyPart -> MessageData -> IPM */
@@ -1029,7 +1029,7 @@ dissect_p22_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_p22_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 220 "../../asn1/p22/p22.cnf"
+#line 220 "./asn1/p22/p22.cnf"
const char *name = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
@@ -1047,7 +1047,7 @@ dissect_p22_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_p22_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 228 "../../asn1/p22/p22.cnf"
+#line 228 "./asn1/p22/p22.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -1224,7 +1224,7 @@ dissect_p22_RelatedIPMsField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_p22_SubjectField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 248 "../../asn1/p22/p22.cnf"
+#line 248 "./asn1/p22/p22.cnf"
tvbuff_t *subject=NULL;
offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -1490,7 +1490,7 @@ dissect_p22_G3FacsimileBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_p22_Interchange_Data_Element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 266 "../../asn1/p22/p22.cnf"
+#line 266 "./asn1/p22/p22.cnf"
/* XXX Not implemented yet */
@@ -1731,7 +1731,7 @@ dissect_p22_BilaterallyDefinedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_p22_NationallyDefinedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 269 "../../asn1/p22/p22.cnf"
+#line 269 "./asn1/p22/p22.cnf"
/* XXX Not implemented yet */
@@ -1845,7 +1845,7 @@ static const ber_sequence_t IPM_sequence[] = {
int
dissect_p22_IPM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 232 "../../asn1/p22/p22.cnf"
+#line 232 "./asn1/p22/p22.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, " Message");
@@ -2116,7 +2116,7 @@ static const ber_sequence_t IPN_set[] = {
int
dissect_p22_IPN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 239 "../../asn1/p22/p22.cnf"
+#line 239 "./asn1/p22/p22.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, " Notification");
@@ -2701,7 +2701,7 @@ dissect_p22_Precedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_p22_CharacterSetRegistration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 259 "../../asn1/p22/p22.cnf"
+#line 259 "./asn1/p22/p22.cnf"
guint32 crs;
offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
1U, 32767U, hf_index, &crs);
@@ -2942,7 +2942,7 @@ dissect_p22_Document_Type_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p22_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 272 "../../asn1/p22/p22.cnf"
+#line 272 "./asn1/p22/p22.cnf"
/* XXX: Not implemented yet */
@@ -3098,7 +3098,7 @@ dissect_p22_EnvironmentParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_p22_T_compression_algorithm_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 275 "../../asn1/p22/p22.cnf"
+#line 275 "./asn1/p22/p22.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
@@ -3110,7 +3110,7 @@ dissect_p22_T_compression_algorithm_id(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_p22_T_compression_algorithm_param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 278 "../../asn1/p22/p22.cnf"
+#line 278 "./asn1/p22/p22.cnf"
/* XXX: Not implemented yet */
@@ -4670,7 +4670,7 @@ static int dissect_ForwardedContentToken_PDU(tvbuff_t *tvb _U_, packet_info *pin
/*--- End of included file: packet-p22-fn.c ---*/
-#line 87 "../../asn1/p22/packet-p22-template.c"
+#line 87 "./asn1/p22/packet-p22-template.c"
/*
* Dissect P22 PDUs inside a PPDU.
@@ -4705,7 +4705,7 @@ void proto_register_p22(void) {
{
/*--- Included file: packet-p22-hfarr.c ---*/
-#line 1 "../../asn1/p22/packet-p22-hfarr.c"
+#line 1 "./asn1/p22/packet-p22-hfarr.c"
{ &hf_p22_InformationObject_PDU,
{ "InformationObject", "p22.InformationObject",
FT_UINT32, BASE_DEC, VALS(p22_InformationObject_vals), 0,
@@ -6216,7 +6216,7 @@ void proto_register_p22(void) {
NULL, HFILL }},
/*--- End of included file: packet-p22-hfarr.c ---*/
-#line 120 "../../asn1/p22/packet-p22-template.c"
+#line 120 "./asn1/p22/packet-p22-template.c"
};
/* List of subtrees */
@@ -6224,7 +6224,7 @@ void proto_register_p22(void) {
&ett_p22,
/*--- Included file: packet-p22-ettarr.c ---*/
-#line 1 "../../asn1/p22/packet-p22-ettarr.c"
+#line 1 "./asn1/p22/packet-p22-ettarr.c"
&ett_p22_InformationObject,
&ett_p22_IPM,
&ett_p22_IPMSExtension,
@@ -6352,7 +6352,7 @@ void proto_register_p22(void) {
&ett_p22_T_choice,
/*--- End of included file: packet-p22-ettarr.c ---*/
-#line 126 "../../asn1/p22/packet-p22-template.c"
+#line 126 "./asn1/p22/packet-p22-template.c"
};
/* Register protocol */
@@ -6370,7 +6370,7 @@ void proto_reg_handoff_p22(void) {
/*--- Included file: packet-p22-dis-tab.c ---*/
-#line 1 "../../asn1/p22/packet-p22-dis-tab.c"
+#line 1 "./asn1/p22/packet-p22-dis-tab.c"
register_ber_oid_dissector("2.6.1.19.0", dissect_AbsenceAdvice_PDU, proto_p22, "id-on-absence-advice");
register_ber_oid_dissector("2.6.1.19.1", dissect_ChangeOfAddressAdvice_PDU, proto_p22, "id-on-change-of-address-advice");
register_ber_oid_dissector("2.6.1.17.2", dissect_IPMAssemblyInstructions_PDU, proto_p22, "id-mst-assembly-instructions");
@@ -6472,7 +6472,7 @@ void proto_reg_handoff_p22(void) {
/*--- End of included file: packet-p22-dis-tab.c ---*/
-#line 142 "../../asn1/p22/packet-p22-template.c"
+#line 142 "./asn1/p22/packet-p22-template.c"
register_ber_oid_dissector("2.6.1.10.0", dissect_p22, proto_p22, "InterPersonal Message (1984)");
register_ber_oid_dissector("2.6.1.10.1", dissect_p22, proto_p22, "InterPersonal Message (1988)");
diff --git a/epan/dissectors/packet-p22.h b/epan/dissectors/packet-p22.h
index c31d5df012..71e115d1bc 100644
--- a/epan/dissectors/packet-p22.h
+++ b/epan/dissectors/packet-p22.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-p22.h */
-/* ../../tools/asn2wrs.py -b -C -p p22 -c ./p22.cnf -s ./packet-p22-template -D . -O ../../epan/dissectors IPMSInformationObjects.asn IPMSHeadingExtensions.asn IPMSExtendedBodyPartTypes2.asn IPMSFileTransferBodyPartType.asn IPMSExtendedVoiceBodyPartType.asn IPMSForwardedContentBodyPartType.asn IPMSMessageStoreAttributes.asn IPMSSecurityExtensions.asn IPMSObjectIdentifiers.asn IPMSUpperBounds.asn */
+/* asn2wrs.py -b -C -p p22 -c ./p22.cnf -s ./packet-p22-template -D . -O ../.. IPMSInformationObjects.asn IPMSHeadingExtensions.asn IPMSExtendedBodyPartTypes2.asn IPMSFileTransferBodyPartType.asn IPMSExtendedVoiceBodyPartType.asn IPMSForwardedContentBodyPartType.asn IPMSMessageStoreAttributes.asn IPMSSecurityExtensions.asn IPMSObjectIdentifiers.asn IPMSUpperBounds.asn */
/* Input file: packet-p22-template.h */
-#line 1 "../../asn1/p22/packet-p22-template.h"
+#line 1 "./asn1/p22/packet-p22-template.h"
/* packet-p22.h
* Routines for X.420 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -34,7 +34,7 @@
/*--- Included file: packet-p22-exp.h ---*/
-#line 1 "../../asn1/p22/packet-p22-exp.h"
+#line 1 "./asn1/p22/packet-p22-exp.h"
extern const value_string p22_InformationObject_vals[];
extern const value_string p22_NonReceiptReasonField_vals[];
extern const value_string p22_DiscardReasonField_vals[];
@@ -49,7 +49,7 @@ int dissect_p22_DiscardReasonField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int dissect_p22_ReceiptTimeField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-p22-exp.h ---*/
-#line 28 "../../asn1/p22/packet-p22-template.h"
+#line 28 "./asn1/p22/packet-p22-template.h"
void proto_reg_handoff_p22(void);
void proto_register_p22(void);
diff --git a/epan/dissectors/packet-p7.c b/epan/dissectors/packet-p7.c
index e0ca83b397..09e1033d94 100644
--- a/epan/dissectors/packet-p7.c
+++ b/epan/dissectors/packet-p7.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-p7.c */
-/* ../../tools/asn2wrs.py -b -L -C -p p7 -c ./p7.cnf -s ./packet-p7-template -D . -O ../../epan/dissectors MSAbstractService.asn MSGeneralAttributeTypes.asn MSAccessProtocol.asn MSUpperBounds.asn */
+/* asn2wrs.py -b -L -C -p p7 -c ./p7.cnf -s ./packet-p7-template -D . -O ../.. MSAbstractService.asn MSGeneralAttributeTypes.asn MSAccessProtocol.asn MSUpperBounds.asn */
/* Input file: packet-p7-template.c */
-#line 1 "../../asn1/p7/packet-p7-template.c"
+#line 1 "./asn1/p7/packet-p7-template.c"
/* packet-p7.c
* Routines for X.413 (P7) packet dissection
* Graeme Lunt 2007
@@ -64,7 +64,7 @@ static int proto_p7 = -1;
/*--- Included file: packet-p7-val.h ---*/
-#line 1 "../../asn1/p7/packet-p7-val.h"
+#line 1 "./asn1/p7/packet-p7-val.h"
#define op_ms_submission_control 2
#define op_ms_message_submission 3
#define op_ms_probe_submission 4
@@ -121,11 +121,11 @@ static int proto_p7 = -1;
#define ub_ua_restrictions 16
/*--- End of included file: packet-p7-val.h ---*/
-#line 58 "../../asn1/p7/packet-p7-template.c"
+#line 58 "./asn1/p7/packet-p7-template.c"
/*--- Included file: packet-p7-hf.c ---*/
-#line 1 "../../asn1/p7/packet-p7-hf.c"
+#line 1 "./asn1/p7/packet-p7-hf.c"
static int hf_p7_AutoActionType_PDU = -1; /* AutoActionType */
static int hf_p7_AutoActionError_PDU = -1; /* AutoActionError */
static int hf_p7_EntryType_PDU = -1; /* EntryType */
@@ -493,13 +493,13 @@ static int hf_p7_T_entry_class_problem_entry_class_not_subscribed = -1;
static int hf_p7_T_entry_class_problem_inappropriate_entry_class = -1;
/*--- End of included file: packet-p7-hf.c ---*/
-#line 60 "../../asn1/p7/packet-p7-template.c"
+#line 60 "./asn1/p7/packet-p7-template.c"
/* Initialize the subtree pointers */
static gint ett_p7 = -1;
/*--- Included file: packet-p7-ett.c ---*/
-#line 1 "../../asn1/p7/packet-p7-ett.c"
+#line 1 "./asn1/p7/packet-p7-ett.c"
static gint ett_p7_Attribute = -1;
static gint ett_p7_AttributeValues = -1;
static gint ett_p7_AutoActionRegistration = -1;
@@ -635,11 +635,11 @@ static gint ett_p7_RTSE_apdus = -1;
static gint ett_p7_RTABapdu = -1;
/*--- End of included file: packet-p7-ett.c ---*/
-#line 64 "../../asn1/p7/packet-p7-template.c"
+#line 64 "./asn1/p7/packet-p7-template.c"
/*--- Included file: packet-p7-table.c ---*/
-#line 1 "../../asn1/p7/packet-p7-table.c"
+#line 1 "./asn1/p7/packet-p7-table.c"
/* P7 ABSTRACT-OPERATIONS */
const value_string p7_opr_code_string_vals[] = {
@@ -678,11 +678,11 @@ static const value_string p7_err_code_string_vals[] = {
/*--- End of included file: packet-p7-table.c ---*/
-#line 66 "../../asn1/p7/packet-p7-template.c"
+#line 66 "./asn1/p7/packet-p7-template.c"
/*--- Included file: packet-p7-fn.c ---*/
-#line 1 "../../asn1/p7/packet-p7-fn.c"
+#line 1 "./asn1/p7/packet-p7-fn.c"
/*--- Cyclic dependencies ---*/
/* Filter -> Filter/and -> Filter */
@@ -4123,11 +4123,11 @@ static int dissect_RTSE_apdus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-p7-fn.c ---*/
-#line 68 "../../asn1/p7/packet-p7-template.c"
+#line 68 "./asn1/p7/packet-p7-template.c"
/*--- Included file: packet-p7-table11.c ---*/
-#line 1 "../../asn1/p7/packet-p7-table11.c"
+#line 1 "./asn1/p7/packet-p7-table11.c"
static const ros_opr_t p7_opr_tab[] = {
/* ms-bind */
@@ -4155,10 +4155,10 @@ static const ros_opr_t p7_opr_tab[] = {
/*--- End of included file: packet-p7-table11.c ---*/
-#line 70 "../../asn1/p7/packet-p7-template.c"
+#line 70 "./asn1/p7/packet-p7-template.c"
/*--- Included file: packet-p7-table21.c ---*/
-#line 1 "../../asn1/p7/packet-p7-table21.c"
+#line 1 "./asn1/p7/packet-p7-table21.c"
static const ros_err_t p7_err_tab[] = {
/* ms-bind-error*/
@@ -4194,7 +4194,7 @@ static const ros_err_t p7_err_tab[] = {
/*--- End of included file: packet-p7-table21.c ---*/
-#line 71 "../../asn1/p7/packet-p7-template.c"
+#line 71 "./asn1/p7/packet-p7-template.c"
static const ros_info_t p7_ros_info = {
"P7",
@@ -4215,7 +4215,7 @@ void proto_register_p7(void) {
{
/*--- Included file: packet-p7-hfarr.c ---*/
-#line 1 "../../asn1/p7/packet-p7-hfarr.c"
+#line 1 "./asn1/p7/packet-p7-hfarr.c"
{ &hf_p7_AutoActionType_PDU,
{ "AutoActionType", "p7.AutoActionType",
FT_OID, BASE_NONE, NULL, 0,
@@ -5674,7 +5674,7 @@ void proto_register_p7(void) {
NULL, HFILL }},
/*--- End of included file: packet-p7-hfarr.c ---*/
-#line 90 "../../asn1/p7/packet-p7-template.c"
+#line 90 "./asn1/p7/packet-p7-template.c"
};
/* List of subtrees */
@@ -5682,7 +5682,7 @@ void proto_register_p7(void) {
&ett_p7,
/*--- Included file: packet-p7-ettarr.c ---*/
-#line 1 "../../asn1/p7/packet-p7-ettarr.c"
+#line 1 "./asn1/p7/packet-p7-ettarr.c"
&ett_p7_Attribute,
&ett_p7_AttributeValues,
&ett_p7_AutoActionRegistration,
@@ -5818,7 +5818,7 @@ void proto_register_p7(void) {
&ett_p7_RTABapdu,
/*--- End of included file: packet-p7-ettarr.c ---*/
-#line 96 "../../asn1/p7/packet-p7-template.c"
+#line 96 "./asn1/p7/packet-p7-template.c"
};
module_t *p7_module;
@@ -5846,7 +5846,7 @@ void proto_reg_handoff_p7(void) {
/*--- Included file: packet-p7-dis-tab.c ---*/
-#line 1 "../../asn1/p7/packet-p7-dis-tab.c"
+#line 1 "./asn1/p7/packet-p7-dis-tab.c"
register_ber_oid_dissector("2.6.4.3.42", dissect_ReportLocation_PDU, proto_p7, "id-att-ac-correlated-report-list");
register_ber_oid_dissector("2.6.4.3.76", dissect_SequenceNumber_PDU, proto_p7, "id-att-ac-report-subject-entry");
register_ber_oid_dissector("2.6.4.3.43", dissect_ReportSummary_PDU, proto_p7, "id-att-ac-report-summary");
@@ -5877,7 +5877,7 @@ void proto_reg_handoff_p7(void) {
/*--- End of included file: packet-p7-dis-tab.c ---*/
-#line 122 "../../asn1/p7/packet-p7-template.c"
+#line 122 "./asn1/p7/packet-p7-template.c"
/* APPLICATION CONTEXT */
diff --git a/epan/dissectors/packet-p7.h b/epan/dissectors/packet-p7.h
index 2a8d94b748..d8efc2ad4a 100644
--- a/epan/dissectors/packet-p7.h
+++ b/epan/dissectors/packet-p7.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-p7.h */
-/* ../../tools/asn2wrs.py -b -L -C -p p7 -c ./p7.cnf -s ./packet-p7-template -D . -O ../../epan/dissectors MSAbstractService.asn MSGeneralAttributeTypes.asn MSAccessProtocol.asn MSUpperBounds.asn */
+/* asn2wrs.py -b -L -C -p p7 -c ./p7.cnf -s ./packet-p7-template -D . -O ../.. MSAbstractService.asn MSGeneralAttributeTypes.asn MSAccessProtocol.asn MSUpperBounds.asn */
/* Input file: packet-p7-template.h */
-#line 1 "../../asn1/p7/packet-p7-template.h"
+#line 1 "./asn1/p7/packet-p7-template.h"
/* packet-p7.h
* Routines for X.413 (P7) packet dissection
* Graeme Lunt 2007
@@ -34,12 +34,12 @@
/*--- Included file: packet-p7-exp.h ---*/
-#line 1 "../../asn1/p7/packet-p7-exp.h"
+#line 1 "./asn1/p7/packet-p7-exp.h"
extern const value_string p7_SignatureStatus_vals[];
int dissect_p7_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_p7_SignatureStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-p7-exp.h ---*/
-#line 28 "../../asn1/p7/packet-p7-template.h"
+#line 28 "./asn1/p7/packet-p7-template.h"
#endif /* PACKET_P7_H */
diff --git a/epan/dissectors/packet-p772.c b/epan/dissectors/packet-p772.c
index bc1daf19e7..b1b3c53c4b 100644
--- a/epan/dissectors/packet-p772.c
+++ b/epan/dissectors/packet-p772.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-p772.c */
-/* ../../tools/asn2wrs.py -b -C -p p772 -c ./p772.cnf -s ./packet-p772-template -D . -O ../../epan/dissectors MMSAbstractService.asn MMSInformationObjects.asn MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn MMSHeadingExtensions.asn MMSUpperBounds.asn MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn */
+/* asn2wrs.py -b -C -p p772 -c ./p772.cnf -s ./packet-p772-template -D . -O ../.. MMSAbstractService.asn MMSInformationObjects.asn MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn MMSHeadingExtensions.asn MMSUpperBounds.asn MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn */
/* Input file: packet-p772-template.c */
-#line 1 "../../asn1/p772/packet-p772-template.c"
+#line 1 "./asn1/p772/packet-p772-template.c"
/* packet-p772.c
* Routines for STANAG 4406 (X.400 Military Message Extensions) packet dissection
* Graeme Lunt 2005
@@ -55,7 +55,7 @@ static int proto_p772 = -1;
/*--- Included file: packet-p772-val.h ---*/
-#line 1 "../../asn1/p772/packet-p772-val.h"
+#line 1 "./asn1/p772/packet-p772-val.h"
#define id_mmhs "1.3.26.0.4406.0"
#define id_mod id_mmhs".0"
#define id_mm id_mmhs".2"
@@ -163,11 +163,11 @@ static int proto_p772 = -1;
#define ub_data_size 65535
/*--- End of included file: packet-p772-val.h ---*/
-#line 49 "../../asn1/p772/packet-p772-template.c"
+#line 49 "./asn1/p772/packet-p772-template.c"
/*--- Included file: packet-p772-hf.c ---*/
-#line 1 "../../asn1/p772/packet-p772-hf.c"
+#line 1 "./asn1/p772/packet-p772-hf.c"
static int hf_p772_InformationObject_PDU = -1; /* InformationObject */
static int hf_p772_Acp127NotificationResponse_PDU = -1; /* Acp127NotificationResponse */
static int hf_p772_ExemptedAddressSeq_PDU = -1; /* ExemptedAddressSeq */
@@ -249,13 +249,13 @@ static int hf_p772_Acp127NotificationType_acp127_pn = -1;
static int hf_p772_Acp127NotificationType_acp127_tn = -1;
/*--- End of included file: packet-p772-hf.c ---*/
-#line 51 "../../asn1/p772/packet-p772-template.c"
+#line 51 "./asn1/p772/packet-p772-template.c"
/* Initialize the subtree pointers */
static gint ett_p772 = -1;
/*--- Included file: packet-p772-ett.c ---*/
-#line 1 "../../asn1/p772/packet-p772-ett.c"
+#line 1 "./asn1/p772/packet-p772-ett.c"
static gint ett_p772_InformationObject = -1;
static gint ett_p772_Acp127NotificationResponse = -1;
static gint ett_p772_AddressListIndicator = -1;
@@ -285,11 +285,11 @@ static gint ett_p772_MMMessageParameters = -1;
static gint ett_p772_Acp127NotificationType = -1;
/*--- End of included file: packet-p772-ett.c ---*/
-#line 55 "../../asn1/p772/packet-p772-template.c"
+#line 55 "./asn1/p772/packet-p772-template.c"
/*--- Included file: packet-p772-fn.c ---*/
-#line 1 "../../asn1/p772/packet-p772-fn.c"
+#line 1 "./asn1/p772/packet-p772-fn.c"
static const ber_choice_t InformationObject_choice[] = {
{ 0, &hf_p772_mm , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p22_IPM },
@@ -494,7 +494,7 @@ dissect_p772_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_p772_T_dist_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 100 "../../asn1/p772/p772.cnf"
+#line 100 "./asn1/p772/p772.cnf"
/* XXX: not implemented */
offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
@@ -642,7 +642,7 @@ static const value_string p772_PrimaryPrecedence_vals[] = {
static int
dissect_p772_PrimaryPrecedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 106 "../../asn1/p772/p772.cnf"
+#line 106 "./asn1/p772/p772.cnf"
int precedence = -1;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&precedence);
@@ -672,7 +672,7 @@ static const value_string p772_CopyPrecedence_vals[] = {
static int
dissect_p772_CopyPrecedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 114 "../../asn1/p772/p772.cnf"
+#line 114 "./asn1/p772/p772.cnf"
int precedence = -1;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&precedence);
@@ -1290,7 +1290,7 @@ static int dissect_Acp127NotificationType_PDU(tvbuff_t *tvb _U_, packet_info *pi
/*--- End of included file: packet-p772-fn.c ---*/
-#line 57 "../../asn1/p772/packet-p772-template.c"
+#line 57 "./asn1/p772/packet-p772-template.c"
/*
@@ -1327,7 +1327,7 @@ void proto_register_p772(void) {
{
/*--- Included file: packet-p772-hfarr.c ---*/
-#line 1 "../../asn1/p772/packet-p772-hfarr.c"
+#line 1 "./asn1/p772/packet-p772-hfarr.c"
{ &hf_p772_InformationObject_PDU,
{ "InformationObject", "p772.InformationObject",
FT_UINT32, BASE_DEC, VALS(p22_InformationObject_vals), 0,
@@ -1642,7 +1642,7 @@ void proto_register_p772(void) {
NULL, HFILL }},
/*--- End of included file: packet-p772-hfarr.c ---*/
-#line 92 "../../asn1/p772/packet-p772-template.c"
+#line 92 "./asn1/p772/packet-p772-template.c"
};
/* List of subtrees */
@@ -1650,7 +1650,7 @@ void proto_register_p772(void) {
&ett_p772,
/*--- Included file: packet-p772-ettarr.c ---*/
-#line 1 "../../asn1/p772/packet-p772-ettarr.c"
+#line 1 "./asn1/p772/packet-p772-ettarr.c"
&ett_p772_InformationObject,
&ett_p772_Acp127NotificationResponse,
&ett_p772_AddressListIndicator,
@@ -1680,7 +1680,7 @@ void proto_register_p772(void) {
&ett_p772_Acp127NotificationType,
/*--- End of included file: packet-p772-ettarr.c ---*/
-#line 98 "../../asn1/p772/packet-p772-template.c"
+#line 98 "./asn1/p772/packet-p772-template.c"
};
/* Register protocol */
@@ -1700,7 +1700,7 @@ void proto_register_p772(void) {
void proto_reg_handoff_p772(void) {
/*--- Included file: packet-p772-dis-tab.c ---*/
-#line 1 "../../asn1/p772/packet-p772-dis-tab.c"
+#line 1 "./asn1/p772/packet-p772-dis-tab.c"
register_ber_oid_dissector("1.3.26.0.4406.0.2.0", dissect_PrimaryPrecedence_PDU, proto_p772, "primary-precedence");
register_ber_oid_dissector("1.3.26.0.4406.0.2.1", dissect_CopyPrecedence_PDU, proto_p772, "copy-precedence");
register_ber_oid_dissector("1.3.26.0.4406.0.2.2", dissect_MessageType_PDU, proto_p772, "message-type");
@@ -1734,7 +1734,7 @@ void proto_reg_handoff_p772(void) {
/*--- End of included file: packet-p772-dis-tab.c ---*/
-#line 116 "../../asn1/p772/packet-p772-template.c"
+#line 116 "./asn1/p772/packet-p772-template.c"
register_ber_oid_dissector("1.3.26.0.4406.0.4.1", dissect_p772, proto_p772, "STANAG 4406");
}
diff --git a/epan/dissectors/packet-p772.h b/epan/dissectors/packet-p772.h
index 99f83b40f1..cd28727f6f 100644
--- a/epan/dissectors/packet-p772.h
+++ b/epan/dissectors/packet-p772.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-p772.h */
-/* ../../tools/asn2wrs.py -b -C -p p772 -c ./p772.cnf -s ./packet-p772-template -D . -O ../../epan/dissectors MMSAbstractService.asn MMSInformationObjects.asn MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn MMSHeadingExtensions.asn MMSUpperBounds.asn MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn */
+/* asn2wrs.py -b -C -p p772 -c ./p772.cnf -s ./packet-p772-template -D . -O ../.. MMSAbstractService.asn MMSInformationObjects.asn MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn MMSHeadingExtensions.asn MMSUpperBounds.asn MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn */
/* Input file: packet-p772-template.h */
-#line 1 "../../asn1/p772/packet-p772-template.h"
+#line 1 "./asn1/p772/packet-p772-template.h"
/* packet-p772.h
* Routines for STANAG 4406 (X.400 Military Message Extensions) packet dissection
* Graeme Lunt 2005
diff --git a/epan/dissectors/packet-pcap.c b/epan/dissectors/packet-pcap.c
index 4faf10918b..7e19c0fef2 100644
--- a/epan/dissectors/packet-pcap.c
+++ b/epan/dissectors/packet-pcap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pcap.c */
-/* ../../tools/asn2wrs.py -p pcap -c ./pcap.cnf -s ./packet-pcap-template -D . -O ../../epan/dissectors PCAP-CommonDataTypes.asn PCAP-Constants.asn PCAP-Containers.asn PCAP-IEs.asn PCAP-PDU-Contents.asn PCAP-PDU-Descriptions.asn */
+/* asn2wrs.py -p pcap -c ./pcap.cnf -s ./packet-pcap-template -D . -O ../.. PCAP-CommonDataTypes.asn PCAP-Constants.asn PCAP-Containers.asn PCAP-IEs.asn PCAP-PDU-Contents.asn PCAP-PDU-Descriptions.asn */
/* Input file: packet-pcap-template.c */
-#line 1 "../../asn1/pcap/packet-pcap-template.c"
+#line 1 "./asn1/pcap/packet-pcap-template.c"
/* packet-pcap.c
* Routines for UTRAN Iupc interface Positioning Calculation Application Part (PCAP) packet dissection
*
@@ -66,7 +66,7 @@ static dissector_table_t sccp_ssn_table;
/*--- Included file: packet-pcap-val.h ---*/
-#line 1 "../../asn1/pcap/packet-pcap-val.h"
+#line 1 "./asn1/pcap/packet-pcap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -252,7 +252,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-pcap-val.h ---*/
-#line 60 "../../asn1/pcap/packet-pcap-template.c"
+#line 60 "./asn1/pcap/packet-pcap-template.c"
static dissector_handle_t pcap_handle = NULL;
@@ -261,7 +261,7 @@ static int proto_pcap = -1;
/*--- Included file: packet-pcap-hf.c ---*/
-#line 1 "../../asn1/pcap/packet-pcap-hf.c"
+#line 1 "./asn1/pcap/packet-pcap-hf.c"
static int hf_pcap_AccuracyFulfilmentIndicator_PDU = -1; /* AccuracyFulfilmentIndicator */
static int hf_pcap_Cause_PDU = -1; /* Cause */
static int hf_pcap_CellId_MeasuredResultsSets_PDU = -1; /* CellId_MeasuredResultsSets */
@@ -1405,14 +1405,14 @@ static int hf_pcap_AvailableSubChannelNumbers_subCh1 = -1;
static int hf_pcap_AvailableSubChannelNumbers_subCh0 = -1;
/*--- End of included file: packet-pcap-hf.c ---*/
-#line 67 "../../asn1/pcap/packet-pcap-template.c"
+#line 67 "./asn1/pcap/packet-pcap-template.c"
/* Initialize the subtree pointers */
static int ett_pcap = -1;
/*--- Included file: packet-pcap-ett.c ---*/
-#line 1 "../../asn1/pcap/packet-pcap-ett.c"
+#line 1 "./asn1/pcap/packet-pcap-ett.c"
static gint ett_pcap_PrivateIE_ID = -1;
static gint ett_pcap_TransactionID = -1;
static gint ett_pcap_ProtocolIE_Container = -1;
@@ -1808,7 +1808,7 @@ static gint ett_pcap_UnsuccessfulOutcome = -1;
static gint ett_pcap_Outcome = -1;
/*--- End of included file: packet-pcap-ett.c ---*/
-#line 72 "../../asn1/pcap/packet-pcap-template.c"
+#line 72 "./asn1/pcap/packet-pcap-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -1834,7 +1834,7 @@ static int dissect_OutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/*--- Included file: packet-pcap-fn.c ---*/
-#line 1 "../../asn1/pcap/packet-pcap-fn.c"
+#line 1 "./asn1/pcap/packet-pcap-fn.c"
static const value_string pcap_Criticality_vals[] = {
{ 0, "reject" },
@@ -13518,7 +13518,7 @@ static int dissect_PCAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-pcap-fn.c ---*/
-#line 96 "../../asn1/pcap/packet-pcap-template.c"
+#line 96 "./asn1/pcap/packet-pcap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -13580,7 +13580,7 @@ proto_reg_handoff_pcap(void)
prefs_initialized = TRUE;
/*--- Included file: packet-pcap-dis-tab.c ---*/
-#line 1 "../../asn1/pcap/packet-pcap-dis-tab.c"
+#line 1 "./asn1/pcap/packet-pcap-dis-tab.c"
dissector_add_uint("pcap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_pcap));
dissector_add_uint("pcap.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_pcap));
dissector_add_uint("pcap.ies", id_GPS_UTRAN_TRU, create_dissector_handle(dissect_GPS_UTRAN_TRU_PDU, proto_pcap));
@@ -13719,7 +13719,7 @@ proto_reg_handoff_pcap(void)
/*--- End of included file: packet-pcap-dis-tab.c ---*/
-#line 156 "../../asn1/pcap/packet-pcap-template.c"
+#line 156 "./asn1/pcap/packet-pcap-template.c"
} else {
dissector_delete_uint_range("sccp.ssn", ssn_range, pcap_handle);
g_free(ssn_range);
@@ -13737,7 +13737,7 @@ void proto_register_pcap(void) {
/*--- Included file: packet-pcap-hfarr.c ---*/
-#line 1 "../../asn1/pcap/packet-pcap-hfarr.c"
+#line 1 "./asn1/pcap/packet-pcap-hfarr.c"
{ &hf_pcap_AccuracyFulfilmentIndicator_PDU,
{ "AccuracyFulfilmentIndicator", "pcap.AccuracyFulfilmentIndicator",
FT_UINT32, BASE_DEC, VALS(pcap_AccuracyFulfilmentIndicator_vals), 0,
@@ -18300,7 +18300,7 @@ void proto_register_pcap(void) {
NULL, HFILL }},
/*--- End of included file: packet-pcap-hfarr.c ---*/
-#line 172 "../../asn1/pcap/packet-pcap-template.c"
+#line 172 "./asn1/pcap/packet-pcap-template.c"
};
/* List of subtrees */
@@ -18308,7 +18308,7 @@ void proto_register_pcap(void) {
&ett_pcap,
/*--- Included file: packet-pcap-ettarr.c ---*/
-#line 1 "../../asn1/pcap/packet-pcap-ettarr.c"
+#line 1 "./asn1/pcap/packet-pcap-ettarr.c"
&ett_pcap_PrivateIE_ID,
&ett_pcap_TransactionID,
&ett_pcap_ProtocolIE_Container,
@@ -18704,7 +18704,7 @@ void proto_register_pcap(void) {
&ett_pcap_Outcome,
/*--- End of included file: packet-pcap-ettarr.c ---*/
-#line 178 "../../asn1/pcap/packet-pcap-template.c"
+#line 178 "./asn1/pcap/packet-pcap-template.c"
};
module_t *pcap_module;
diff --git a/epan/dissectors/packet-pkcs1.c b/epan/dissectors/packet-pkcs1.c
index fb593d38a2..ddc6869875 100644
--- a/epan/dissectors/packet-pkcs1.c
+++ b/epan/dissectors/packet-pkcs1.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkcs1.c */
-/* ../../tools/asn2wrs.py -b -p pkcs1 -c ./pkcs1.cnf -s ./packet-pkcs1-template -D . -O ../../epan/dissectors PKIXAlgs-2009.asn */
+/* asn2wrs.py -b -p pkcs1 -c ./pkcs1.cnf -s ./packet-pkcs1-template -D . -O ../.. PKIXAlgs-2009.asn */
/* Input file: packet-pkcs1-template.c */
-#line 1 "../../asn1/pkcs1/packet-pkcs1-template.c"
+#line 1 "./asn1/pkcs1/packet-pkcs1-template.c"
/* packet-pkcs1.c
* Routines for PKCS#1/RFC2313 packet dissection
* Ronnie Sahlberg 2004
@@ -50,7 +50,7 @@ void proto_reg_handoff_pkcs1(void);
static int proto_pkcs1 = -1;
/*--- Included file: packet-pkcs1-hf.c ---*/
-#line 1 "../../asn1/pkcs1/packet-pkcs1-hf.c"
+#line 1 "./asn1/pkcs1/packet-pkcs1-hf.c"
static int hf_pkcs1_DSA_Params_PDU = -1; /* DSA_Params */
static int hf_pkcs1_DomainParameters_PDU = -1; /* DomainParameters */
static int hf_pkcs1_KEA_Params_Id_PDU = -1; /* KEA_Params_Id */
@@ -77,12 +77,12 @@ static int hf_pkcs1_r = -1; /* INTEGER */
static int hf_pkcs1_s = -1; /* INTEGER */
/*--- End of included file: packet-pkcs1-hf.c ---*/
-#line 44 "../../asn1/pkcs1/packet-pkcs1-template.c"
+#line 44 "./asn1/pkcs1/packet-pkcs1-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-pkcs1-ett.c ---*/
-#line 1 "../../asn1/pkcs1/packet-pkcs1-ett.c"
+#line 1 "./asn1/pkcs1/packet-pkcs1-ett.c"
static gint ett_pkcs1_RSAPublicKey = -1;
static gint ett_pkcs1_DigestInfo = -1;
static gint ett_pkcs1_DSA_Params = -1;
@@ -94,11 +94,11 @@ static gint ett_pkcs1_DSA_Sig_Value = -1;
static gint ett_pkcs1_ECDSA_Sig_Value = -1;
/*--- End of included file: packet-pkcs1-ett.c ---*/
-#line 47 "../../asn1/pkcs1/packet-pkcs1-template.c"
+#line 47 "./asn1/pkcs1/packet-pkcs1-template.c"
/*--- Included file: packet-pkcs1-fn.c ---*/
-#line 1 "../../asn1/pkcs1/packet-pkcs1-fn.c"
+#line 1 "./asn1/pkcs1/packet-pkcs1-fn.c"
static int
@@ -344,7 +344,7 @@ static int dissect_ECParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
/*--- End of included file: packet-pkcs1-fn.c ---*/
-#line 49 "../../asn1/pkcs1/packet-pkcs1-template.c"
+#line 49 "./asn1/pkcs1/packet-pkcs1-template.c"
/*--- proto_register_pkcs1 ----------------------------------------------*/
void proto_register_pkcs1(void) {
@@ -353,7 +353,7 @@ void proto_register_pkcs1(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-pkcs1-hfarr.c ---*/
-#line 1 "../../asn1/pkcs1/packet-pkcs1-hfarr.c"
+#line 1 "./asn1/pkcs1/packet-pkcs1-hfarr.c"
{ &hf_pkcs1_DSA_Params_PDU,
{ "DSA-Params", "pkcs1.DSA_Params_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -452,14 +452,14 @@ void proto_register_pkcs1(void) {
"INTEGER", HFILL }},
/*--- End of included file: packet-pkcs1-hfarr.c ---*/
-#line 56 "../../asn1/pkcs1/packet-pkcs1-template.c"
+#line 56 "./asn1/pkcs1/packet-pkcs1-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-pkcs1-ettarr.c ---*/
-#line 1 "../../asn1/pkcs1/packet-pkcs1-ettarr.c"
+#line 1 "./asn1/pkcs1/packet-pkcs1-ettarr.c"
&ett_pkcs1_RSAPublicKey,
&ett_pkcs1_DigestInfo,
&ett_pkcs1_DSA_Params,
@@ -471,7 +471,7 @@ void proto_register_pkcs1(void) {
&ett_pkcs1_ECDSA_Sig_Value,
/*--- End of included file: packet-pkcs1-ettarr.c ---*/
-#line 61 "../../asn1/pkcs1/packet-pkcs1-template.c"
+#line 61 "./asn1/pkcs1/packet-pkcs1-template.c"
};
/* Register protocol */
@@ -488,7 +488,7 @@ void proto_register_pkcs1(void) {
void proto_reg_handoff_pkcs1(void) {
/*--- Included file: packet-pkcs1-dis-tab.c ---*/
-#line 1 "../../asn1/pkcs1/packet-pkcs1-dis-tab.c"
+#line 1 "./asn1/pkcs1/packet-pkcs1-dis-tab.c"
register_ber_oid_dissector("1.2.840.10040.4.1", dissect_DSA_Params_PDU, proto_pkcs1, "id-dsa");
register_ber_oid_dissector("1.2.840.10046.2.1", dissect_DomainParameters_PDU, proto_pkcs1, "dhpublicnumber");
register_ber_oid_dissector("2.16.840.1.101.2.1.1.22", dissect_KEA_Params_Id_PDU, proto_pkcs1, "id-keyExchangeAlgorithm");
@@ -500,7 +500,7 @@ void proto_reg_handoff_pkcs1(void) {
/*--- End of included file: packet-pkcs1-dis-tab.c ---*/
-#line 76 "../../asn1/pkcs1/packet-pkcs1-template.c"
+#line 76 "./asn1/pkcs1/packet-pkcs1-template.c"
register_ber_oid_dissector("1.2.840.113549.2.2", dissect_ber_oid_NULL_callback, proto_pkcs1, "md2");
register_ber_oid_dissector("1.2.840.113549.2.4", dissect_ber_oid_NULL_callback, proto_pkcs1, "md4");
diff --git a/epan/dissectors/packet-pkcs1.h b/epan/dissectors/packet-pkcs1.h
index cc867d8768..88caafbf1d 100644
--- a/epan/dissectors/packet-pkcs1.h
+++ b/epan/dissectors/packet-pkcs1.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkcs1.h */
-/* ../../tools/asn2wrs.py -b -p pkcs1 -c ./pkcs1.cnf -s ./packet-pkcs1-template -D . -O ../../epan/dissectors PKIXAlgs-2009.asn */
+/* asn2wrs.py -b -p pkcs1 -c ./pkcs1.cnf -s ./packet-pkcs1-template -D . -O ../.. PKIXAlgs-2009.asn */
/* Input file: packet-pkcs1-template.h */
-#line 1 "../../asn1/pkcs1/packet-pkcs1-template.h"
+#line 1 "./asn1/pkcs1/packet-pkcs1-template.h"
/* packet-pkcs1.h
* Routines for PKCS#1/RFC2313 packet dissection
* Ronnie Sahlberg 2004
@@ -34,12 +34,12 @@
/*--- Included file: packet-pkcs1-exp.h ---*/
-#line 1 "../../asn1/pkcs1/packet-pkcs1-exp.h"
+#line 1 "./asn1/pkcs1/packet-pkcs1-exp.h"
int dissect_pkcs1_RSAPublicKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_pkcs1_DigestInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-pkcs1-exp.h ---*/
-#line 28 "../../asn1/pkcs1/packet-pkcs1-template.h"
+#line 28 "./asn1/pkcs1/packet-pkcs1-template.h"
#endif /* PACKET_PKCS1_H */
diff --git a/epan/dissectors/packet-pkcs12.c b/epan/dissectors/packet-pkcs12.c
index 6409cbcf8a..c616073a42 100644
--- a/epan/dissectors/packet-pkcs12.c
+++ b/epan/dissectors/packet-pkcs12.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkcs12.c */
-/* ../../tools/asn2wrs.py -b -p pkcs12 -c ./pkcs12.cnf -s ./packet-pkcs12-template -D . -O ../../epan/dissectors pkcs12.asn */
+/* asn2wrs.py -b -p pkcs12 -c ./pkcs12.cnf -s ./packet-pkcs12-template -D . -O ../.. pkcs12.asn */
/* Input file: packet-pkcs12-template.c */
-#line 1 "../../asn1/pkcs12/packet-pkcs12-template.c"
+#line 1 "./asn1/pkcs12/packet-pkcs12-template.c"
/* packet-pkcs12.c
* Routines for PKCS#12: Personal Information Exchange packet dissection
* Graeme Lunt 2006
@@ -82,7 +82,7 @@ static int dissect_PrivateKeyInfo_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_t
/*--- Included file: packet-pkcs12-hf.c ---*/
-#line 1 "../../asn1/pkcs12/packet-pkcs12-hf.c"
+#line 1 "./asn1/pkcs12/packet-pkcs12-hf.c"
static int hf_pkcs12_PFX_PDU = -1; /* PFX */
static int hf_pkcs12_SafeContents_PDU = -1; /* SafeContents */
static int hf_pkcs12_KeyBag_PDU = -1; /* KeyBag */
@@ -138,12 +138,12 @@ static int hf_pkcs12_encryptionScheme = -1; /* AlgorithmIdentifier */
static int hf_pkcs12_messageAuthScheme = -1; /* AlgorithmIdentifier */
/*--- End of included file: packet-pkcs12-hf.c ---*/
-#line 76 "../../asn1/pkcs12/packet-pkcs12-template.c"
+#line 76 "./asn1/pkcs12/packet-pkcs12-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-pkcs12-ett.c ---*/
-#line 1 "../../asn1/pkcs12/packet-pkcs12-ett.c"
+#line 1 "./asn1/pkcs12/packet-pkcs12-ett.c"
static gint ett_pkcs12_PFX = -1;
static gint ett_pkcs12_MacData = -1;
static gint ett_pkcs12_DigestInfo = -1;
@@ -166,7 +166,7 @@ static gint ett_pkcs12_PBES2Params = -1;
static gint ett_pkcs12_PBMAC1Params = -1;
/*--- End of included file: packet-pkcs12-ett.c ---*/
-#line 79 "../../asn1/pkcs12/packet-pkcs12-template.c"
+#line 79 "./asn1/pkcs12/packet-pkcs12-template.c"
static void append_oid(proto_tree *tree, const char *oid)
{
@@ -476,7 +476,7 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry
/*--- Included file: packet-pkcs12-fn.c ---*/
-#line 1 "../../asn1/pkcs12/packet-pkcs12-fn.c"
+#line 1 "./asn1/pkcs12/packet-pkcs12-fn.c"
static const value_string pkcs12_T_version_vals[] = {
{ 3, "v3" },
@@ -553,7 +553,7 @@ static const ber_sequence_t PFX_sequence[] = {
static int
dissect_pkcs12_PFX(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 58 "../../asn1/pkcs12/pkcs12.cnf"
+#line 58 "./asn1/pkcs12/pkcs12.cnf"
dissector_handle_t dissector_handle;
/* we change the CMS id-data dissector to dissect as AuthenticatedSafe
@@ -580,7 +580,7 @@ static const ber_sequence_t AuthenticatedSafe_sequence_of[1] = {
static int
dissect_pkcs12_AuthenticatedSafe(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 71 "../../asn1/pkcs12/pkcs12.cnf"
+#line 71 "./asn1/pkcs12/pkcs12.cnf"
dissector_handle_t dissector_handle;
/* we change the CMS id-data dissector to dissect as SafeContents */
@@ -605,7 +605,7 @@ static int
dissect_pkcs12_T_bagId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
-#line 84 "../../asn1/pkcs12/pkcs12.cnf"
+#line 84 "./asn1/pkcs12/pkcs12.cnf"
append_oid(tree, object_identifier_id);
return offset;
@@ -615,7 +615,7 @@ dissect_pkcs12_T_bagId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_pkcs12_T_bagValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 108 "../../asn1/pkcs12/pkcs12.cnf"
+#line 108 "./asn1/pkcs12/pkcs12.cnf"
if(object_identifier_id)
offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -630,7 +630,7 @@ static int
dissect_pkcs12_T_attrId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
-#line 104 "../../asn1/pkcs12/pkcs12.cnf"
+#line 104 "./asn1/pkcs12/pkcs12.cnf"
append_oid(tree, object_identifier_id);
return offset;
@@ -640,7 +640,7 @@ dissect_pkcs12_T_attrId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_pkcs12_T_attrValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 112 "../../asn1/pkcs12/pkcs12.cnf"
+#line 112 "./asn1/pkcs12/pkcs12.cnf"
if(object_identifier_id)
offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -787,7 +787,7 @@ dissect_pkcs12_KeyBag(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_pkcs12_EncryptedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 139 "../../asn1/pkcs12/pkcs12.cnf"
+#line 139 "./asn1/pkcs12/pkcs12.cnf"
tvbuff_t *encrypted_tvb;
dissector_handle_t dissector_handle;
@@ -795,7 +795,7 @@ dissect_pkcs12_EncryptedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&encrypted_tvb);
-#line 145 "../../asn1/pkcs12/pkcs12.cnf"
+#line 145 "./asn1/pkcs12/pkcs12.cnf"
@@ -841,7 +841,7 @@ static int
dissect_pkcs12_T_certId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
-#line 89 "../../asn1/pkcs12/pkcs12.cnf"
+#line 89 "./asn1/pkcs12/pkcs12.cnf"
append_oid(tree, object_identifier_id);
return offset;
@@ -851,7 +851,7 @@ dissect_pkcs12_T_certId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_pkcs12_T_certValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 116 "../../asn1/pkcs12/pkcs12.cnf"
+#line 116 "./asn1/pkcs12/pkcs12.cnf"
if(object_identifier_id)
offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -881,7 +881,7 @@ static int
dissect_pkcs12_T_crlId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
-#line 94 "../../asn1/pkcs12/pkcs12.cnf"
+#line 94 "./asn1/pkcs12/pkcs12.cnf"
append_oid(tree, object_identifier_id);
return offset;
@@ -891,7 +891,7 @@ dissect_pkcs12_T_crlId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_pkcs12_T_crlValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 120 "../../asn1/pkcs12/pkcs12.cnf"
+#line 120 "./asn1/pkcs12/pkcs12.cnf"
if(object_identifier_id)
offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -921,7 +921,7 @@ static int
dissect_pkcs12_T_secretTypeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
-#line 99 "../../asn1/pkcs12/pkcs12.cnf"
+#line 99 "./asn1/pkcs12/pkcs12.cnf"
append_oid(tree, object_identifier_id);
return offset;
@@ -931,7 +931,7 @@ dissect_pkcs12_T_secretTypeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_pkcs12_T_secretValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 124 "../../asn1/pkcs12/pkcs12.cnf"
+#line 124 "./asn1/pkcs12/pkcs12.cnf"
if(object_identifier_id)
offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -964,7 +964,7 @@ static const ber_sequence_t PBEParameter_sequence[] = {
static int
dissect_pkcs12_PBEParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 128 "../../asn1/pkcs12/pkcs12.cnf"
+#line 128 "./asn1/pkcs12/pkcs12.cnf"
/* initialise the encryption parameters */
PBE_reset_parameters();
@@ -1150,7 +1150,7 @@ static int dissect_PBMAC1Params_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
/*--- End of included file: packet-pkcs12-fn.c ---*/
-#line 387 "../../asn1/pkcs12/packet-pkcs12-template.c"
+#line 387 "./asn1/pkcs12/packet-pkcs12-template.c"
static int strip_octet_string(tvbuff_t *tvb)
{
@@ -1228,7 +1228,7 @@ void proto_register_pkcs12(void) {
/*--- Included file: packet-pkcs12-hfarr.c ---*/
-#line 1 "../../asn1/pkcs12/packet-pkcs12-hfarr.c"
+#line 1 "./asn1/pkcs12/packet-pkcs12-hfarr.c"
{ &hf_pkcs12_PFX_PDU,
{ "PFX", "pkcs12.PFX_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1443,7 +1443,7 @@ void proto_register_pkcs12(void) {
"AlgorithmIdentifier", HFILL }},
/*--- End of included file: packet-pkcs12-hfarr.c ---*/
-#line 463 "../../asn1/pkcs12/packet-pkcs12-template.c"
+#line 463 "./asn1/pkcs12/packet-pkcs12-template.c"
};
/* List of subtrees */
@@ -1451,7 +1451,7 @@ void proto_register_pkcs12(void) {
&ett_decrypted_pbe,
/*--- Included file: packet-pkcs12-ettarr.c ---*/
-#line 1 "../../asn1/pkcs12/packet-pkcs12-ettarr.c"
+#line 1 "./asn1/pkcs12/packet-pkcs12-ettarr.c"
&ett_pkcs12_PFX,
&ett_pkcs12_MacData,
&ett_pkcs12_DigestInfo,
@@ -1474,7 +1474,7 @@ void proto_register_pkcs12(void) {
&ett_pkcs12_PBMAC1Params,
/*--- End of included file: packet-pkcs12-ettarr.c ---*/
-#line 469 "../../asn1/pkcs12/packet-pkcs12-template.c"
+#line 469 "./asn1/pkcs12/packet-pkcs12-template.c"
};
static ei_register_info ei[] = {
{ &ei_pkcs12_octet_string_expected, { "pkcs12.octet_string_expected", PI_PROTOCOL, PI_WARN, "BER Error: OCTET STRING expected", EXPFILL }},
@@ -1515,7 +1515,7 @@ void proto_register_pkcs12(void) {
void proto_reg_handoff_pkcs12(void) {
/*--- Included file: packet-pkcs12-dis-tab.c ---*/
-#line 1 "../../asn1/pkcs12/packet-pkcs12-dis-tab.c"
+#line 1 "./asn1/pkcs12/packet-pkcs12-dis-tab.c"
register_ber_oid_dissector("1.2.840.113549.1.12.10.1.1", dissect_KeyBag_PDU, proto_pkcs12, "keyBag");
register_ber_oid_dissector("1.2.840.113549.1.12.10.1.2", dissect_PKCS8ShroudedKeyBag_PDU, proto_pkcs12, "pkcs8ShroudedKeyBag");
register_ber_oid_dissector("1.2.840.113549.1.12.10.1.3", dissect_CertBag_PDU, proto_pkcs12, "certBag");
@@ -1542,7 +1542,7 @@ void proto_reg_handoff_pkcs12(void) {
/*--- End of included file: packet-pkcs12-dis-tab.c ---*/
-#line 508 "../../asn1/pkcs12/packet-pkcs12-template.c"
+#line 508 "./asn1/pkcs12/packet-pkcs12-template.c"
register_ber_oid_dissector("1.2.840.113549.1.9.22.1", dissect_X509Certificate_OCTETSTRING_PDU, proto_pkcs12, "x509Certificate");
diff --git a/epan/dissectors/packet-pkcs12.h b/epan/dissectors/packet-pkcs12.h
index 0464c1d551..18a49f5ee4 100644
--- a/epan/dissectors/packet-pkcs12.h
+++ b/epan/dissectors/packet-pkcs12.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkcs12.h */
-/* ../../tools/asn2wrs.py -b -p pkcs12 -c ./pkcs12.cnf -s ./packet-pkcs12-template -D . -O ../../epan/dissectors pkcs12.asn */
+/* asn2wrs.py -b -p pkcs12 -c ./pkcs12.cnf -s ./packet-pkcs12-template -D . -O ../.. pkcs12.asn */
/* Input file: packet-pkcs12-template.h */
-#line 1 "../../asn1/pkcs12/packet-pkcs12-template.h"
+#line 1 "./asn1/pkcs12/packet-pkcs12-template.h"
/* packet-pkcs12.h
* Routines for PKCS#12 Personal Information Exchange packet dissection
* Graeme Lunt 2006
diff --git a/epan/dissectors/packet-pkinit.c b/epan/dissectors/packet-pkinit.c
index 71284a627c..c0b1fed9e7 100644
--- a/epan/dissectors/packet-pkinit.c
+++ b/epan/dissectors/packet-pkinit.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkinit.c */
-/* ../../tools/asn2wrs.py -b -p pkinit -c ./pkinit.cnf -s ./packet-pkinit-template -D . -O ../../epan/dissectors PKINIT.asn */
+/* asn2wrs.py -b -p pkinit -c ./pkinit.cnf -s ./packet-pkinit-template -D . -O ../.. PKINIT.asn */
/* Input file: packet-pkinit-template.c */
-#line 1 "../../asn1/pkinit/packet-pkinit-template.c"
+#line 1 "./asn1/pkinit/packet-pkinit-template.c"
/* packet-pkinit.c
* Routines for PKINIT packet dissection
* Ronnie Sahlberg 2004
@@ -51,7 +51,7 @@ void proto_reg_handoff_pkinit(void);
static int proto_pkinit = -1;
/*--- Included file: packet-pkinit-hf.c ---*/
-#line 1 "../../asn1/pkinit/packet-pkinit-hf.c"
+#line 1 "./asn1/pkinit/packet-pkinit-hf.c"
static int hf_pkinit_AuthPack_PDU = -1; /* AuthPack */
static int hf_pkinit_KRB5PrincipalName_PDU = -1; /* KRB5PrincipalName */
static int hf_pkinit_KDCDHKeyInfo_PDU = -1; /* KDCDHKeyInfo */
@@ -78,12 +78,12 @@ static int hf_pkinit_dhNonce = -1; /* INTEGER */
static int hf_pkinit_dhKeyExpiration = -1; /* KerberosTime */
/*--- End of included file: packet-pkinit-hf.c ---*/
-#line 45 "../../asn1/pkinit/packet-pkinit-template.c"
+#line 45 "./asn1/pkinit/packet-pkinit-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-pkinit-ett.c ---*/
-#line 1 "../../asn1/pkinit/packet-pkinit-ett.c"
+#line 1 "./asn1/pkinit/packet-pkinit-ett.c"
static gint ett_pkinit_PaPkAsReq = -1;
static gint ett_pkinit_SEQUENCE_OF_TrustedCA = -1;
static gint ett_pkinit_TrustedCA = -1;
@@ -95,7 +95,7 @@ static gint ett_pkinit_PaPkAsRep = -1;
static gint ett_pkinit_KDCDHKeyInfo = -1;
/*--- End of included file: packet-pkinit-ett.c ---*/
-#line 48 "../../asn1/pkinit/packet-pkinit-template.c"
+#line 48 "./asn1/pkinit/packet-pkinit-template.c"
static int dissect_KerberosV5Spec2_KerberosTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
static int dissect_KerberosV5Spec2_Checksum(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
@@ -104,7 +104,7 @@ static int dissect_KerberosV5Spec2_PrincipalName(gboolean implicit_tag _U_, tvbu
/*--- Included file: packet-pkinit-fn.c ---*/
-#line 1 "../../asn1/pkinit/packet-pkinit-fn.c"
+#line 1 "./asn1/pkinit/packet-pkinit-fn.c"
static const value_string pkinit_TrustedCA_vals[] = {
{ 0, "caName" },
@@ -312,7 +312,7 @@ static int dissect_KDCDHKeyInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
/*--- End of included file: packet-pkinit-fn.c ---*/
-#line 55 "../../asn1/pkinit/packet-pkinit-template.c"
+#line 55 "./asn1/pkinit/packet-pkinit-template.c"
int
dissect_pkinit_PA_PK_AS_REQ(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) {
@@ -358,7 +358,7 @@ void proto_register_pkinit(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-pkinit-hfarr.c ---*/
-#line 1 "../../asn1/pkinit/packet-pkinit-hfarr.c"
+#line 1 "./asn1/pkinit/packet-pkinit-hfarr.c"
{ &hf_pkinit_AuthPack_PDU,
{ "AuthPack", "pkinit.AuthPack_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -457,14 +457,14 @@ void proto_register_pkinit(void) {
"KerberosTime", HFILL }},
/*--- End of included file: packet-pkinit-hfarr.c ---*/
-#line 99 "../../asn1/pkinit/packet-pkinit-template.c"
+#line 99 "./asn1/pkinit/packet-pkinit-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-pkinit-ettarr.c ---*/
-#line 1 "../../asn1/pkinit/packet-pkinit-ettarr.c"
+#line 1 "./asn1/pkinit/packet-pkinit-ettarr.c"
&ett_pkinit_PaPkAsReq,
&ett_pkinit_SEQUENCE_OF_TrustedCA,
&ett_pkinit_TrustedCA,
@@ -476,7 +476,7 @@ void proto_register_pkinit(void) {
&ett_pkinit_KDCDHKeyInfo,
/*--- End of included file: packet-pkinit-ettarr.c ---*/
-#line 104 "../../asn1/pkinit/packet-pkinit-template.c"
+#line 104 "./asn1/pkinit/packet-pkinit-template.c"
};
/* Register protocol */
@@ -493,13 +493,13 @@ void proto_register_pkinit(void) {
void proto_reg_handoff_pkinit(void) {
/*--- Included file: packet-pkinit-dis-tab.c ---*/
-#line 1 "../../asn1/pkinit/packet-pkinit-dis-tab.c"
+#line 1 "./asn1/pkinit/packet-pkinit-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.2.3.1", dissect_AuthPack_PDU, proto_pkinit, "id-pkauthdata");
register_ber_oid_dissector("1.3.6.1.5.2.3.2", dissect_KDCDHKeyInfo_PDU, proto_pkinit, "id-pkdhkeydata");
register_ber_oid_dissector("1.3.6.1.5.2.2", dissect_KRB5PrincipalName_PDU, proto_pkinit, "id-pkinit-san");
/*--- End of included file: packet-pkinit-dis-tab.c ---*/
-#line 119 "../../asn1/pkinit/packet-pkinit-template.c"
+#line 119 "./asn1/pkinit/packet-pkinit-template.c"
}
diff --git a/epan/dissectors/packet-pkinit.h b/epan/dissectors/packet-pkinit.h
index 9f8559611a..39a994d6ef 100644
--- a/epan/dissectors/packet-pkinit.h
+++ b/epan/dissectors/packet-pkinit.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkinit.h */
-/* ../../tools/asn2wrs.py -b -p pkinit -c ./pkinit.cnf -s ./packet-pkinit-template -D . -O ../../epan/dissectors PKINIT.asn */
+/* asn2wrs.py -b -p pkinit -c ./pkinit.cnf -s ./packet-pkinit-template -D . -O ../.. PKINIT.asn */
/* Input file: packet-pkinit-template.h */
-#line 1 "../../asn1/pkinit/packet-pkinit-template.h"
+#line 1 "./asn1/pkinit/packet-pkinit-template.h"
/* packet-pkinit.h
* Routines for PKINIT packet dissection
* Ronnie Sahlberg 2004
@@ -37,13 +37,13 @@ int dissect_pkinit_PA_PK_AS_REP(proto_tree *tree, tvbuff_t *tvb, int offset, asn
/*--- Included file: packet-pkinit-exp.h ---*/
-#line 1 "../../asn1/pkinit/packet-pkinit-exp.h"
+#line 1 "./asn1/pkinit/packet-pkinit-exp.h"
extern const value_string pkinit_PaPkAsRep_vals[];
int dissect_pkinit_PaPkAsReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_pkinit_PaPkAsRep(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-pkinit-exp.h ---*/
-#line 31 "../../asn1/pkinit/packet-pkinit-template.h"
+#line 31 "./asn1/pkinit/packet-pkinit-template.h"
#endif /* PACKET_PKINIT_H */
diff --git a/epan/dissectors/packet-pkix1explicit.c b/epan/dissectors/packet-pkix1explicit.c
index d75e02d665..04ff1bd0a4 100644
--- a/epan/dissectors/packet-pkix1explicit.c
+++ b/epan/dissectors/packet-pkix1explicit.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkix1explicit.c */
-/* ../../tools/asn2wrs.py -b -p pkix1explicit -c ./pkix1explicit.cnf -s ./packet-pkix1explicit-template -D . -O ../../epan/dissectors PKIX1EXPLICIT93.asn IPAddrAndASCertExtn.asn */
+/* asn2wrs.py -b -p pkix1explicit -c ./pkix1explicit.cnf -s ./packet-pkix1explicit-template -D . -O ../.. PKIX1EXPLICIT93.asn IPAddrAndASCertExtn.asn */
/* Input file: packet-pkix1explicit-template.c */
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-template.c"
#define BER_UNI_TAG_TeletexString 20 /* workaround bug in asn2wrs */
/* packet-pkix1explicit.c
@@ -60,7 +60,7 @@ static int ett_pkix1explicit_addressFamily = -1;
/*--- Included file: packet-pkix1explicit-hf.c ---*/
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-hf.c"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-hf.c"
static int hf_pkix1explicit_DomainParameters_PDU = -1; /* DomainParameters */
static int hf_pkix1explicit_DirectoryString_PDU = -1; /* DirectoryString */
static int hf_pkix1explicit_IPAddrBlocks_PDU = -1; /* IPAddrBlocks */
@@ -106,12 +106,12 @@ static int hf_pkix1explicit_min_01 = -1; /* ASId */
static int hf_pkix1explicit_max_01 = -1; /* ASId */
/*--- End of included file: packet-pkix1explicit-hf.c ---*/
-#line 54 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
+#line 54 "./asn1/pkix1explicit/packet-pkix1explicit-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-pkix1explicit-ett.c ---*/
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-ett.c"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-ett.c"
static gint ett_pkix1explicit_Time = -1;
static gint ett_pkix1explicit_Extensions = -1;
static gint ett_pkix1explicit_Extension = -1;
@@ -136,7 +136,7 @@ static gint ett_pkix1explicit_ASIdOrRange = -1;
static gint ett_pkix1explicit_ASRange = -1;
/*--- End of included file: packet-pkix1explicit-ett.c ---*/
-#line 57 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
+#line 57 "./asn1/pkix1explicit/packet-pkix1explicit-template.c"
int
dissect_pkix1explicit_Certificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
@@ -179,7 +179,7 @@ dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *tvb,
/*--- Included file: packet-pkix1explicit-fn.c ---*/
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-fn.c"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-fn.c"
int
@@ -262,7 +262,7 @@ dissect_pkix1explicit_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_pkix1explicit_T_extnId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 58 "../../asn1/pkix1explicit/pkix1explicit.cnf"
+#line 58 "./asn1/pkix1explicit/pkix1explicit.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_pkix1explicit_object_identifier_id, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -285,7 +285,7 @@ dissect_pkix1explicit_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_pkix1explicit_T_extnValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 62 "../../asn1/pkix1explicit/pkix1explicit.cnf"
+#line 62 "./asn1/pkix1explicit/pkix1explicit.cnf"
gint8 appclass;
gboolean pc, ind;
gint32 tag;
@@ -399,7 +399,7 @@ dissect_pkix1explicit_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_pkix1explicit_T_values_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 42 "../../asn1/pkix1explicit/pkix1explicit.cnf"
+#line 42 "./asn1/pkix1explicit/pkix1explicit.cnf"
if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
}
@@ -441,7 +441,7 @@ dissect_pkix1explicit_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_pkix1explicit_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 50 "../../asn1/pkix1explicit/pkix1explicit.cnf"
+#line 50 "./asn1/pkix1explicit/pkix1explicit.cnf"
if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
}
@@ -496,7 +496,7 @@ dissect_pkix1explicit_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int
dissect_pkix1explicit_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 36 "../../asn1/pkix1explicit/pkix1explicit.cnf"
+#line 36 "./asn1/pkix1explicit/pkix1explicit.cnf"
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
@@ -554,7 +554,7 @@ dissect_pkix1explicit_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, t
static int
dissect_pkix1explicit_T_addressFamily(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 76 "../../asn1/pkix1explicit/pkix1explicit.cnf"
+#line 76 "./asn1/pkix1explicit/pkix1explicit.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -825,7 +825,7 @@ static int dissect_ASIdentifiers_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-pkix1explicit-fn.c ---*/
-#line 98 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
+#line 98 "./asn1/pkix1explicit/packet-pkix1explicit-template.c"
/*--- proto_register_pkix1explicit ----------------------------------------------*/
@@ -846,7 +846,7 @@ void proto_register_pkix1explicit(void) {
"Subsequent Address Family Identifiers (SAFI) RFC4760", HFILL }},
/*--- Included file: packet-pkix1explicit-hfarr.c ---*/
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-hfarr.c"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-hfarr.c"
{ &hf_pkix1explicit_DomainParameters_PDU,
{ "DomainParameters", "pkix1explicit.DomainParameters_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1021,7 +1021,7 @@ void proto_register_pkix1explicit(void) {
"ASId", HFILL }},
/*--- End of included file: packet-pkix1explicit-hfarr.c ---*/
-#line 117 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
+#line 117 "./asn1/pkix1explicit/packet-pkix1explicit-template.c"
};
/* List of subtrees */
@@ -1029,7 +1029,7 @@ void proto_register_pkix1explicit(void) {
&ett_pkix1explicit_addressFamily,
/*--- Included file: packet-pkix1explicit-ettarr.c ---*/
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-ettarr.c"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-ettarr.c"
&ett_pkix1explicit_Time,
&ett_pkix1explicit_Extensions,
&ett_pkix1explicit_Extension,
@@ -1054,7 +1054,7 @@ void proto_register_pkix1explicit(void) {
&ett_pkix1explicit_ASRange,
/*--- End of included file: packet-pkix1explicit-ettarr.c ---*/
-#line 123 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
+#line 123 "./asn1/pkix1explicit/packet-pkix1explicit-template.c"
};
/* Register protocol */
@@ -1073,7 +1073,7 @@ void proto_reg_handoff_pkix1explicit(void) {
oid_add_from_string("id-dsa-with-sha1","1.2.840.10040.4.3");
/*--- Included file: packet-pkix1explicit-dis-tab.c ---*/
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-dis-tab.c"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.5.7.2.1", dissect_DirectoryString_PDU, proto_pkix1explicit, "id-qt-cps");
register_ber_oid_dissector("1.2.840.10046.2.1", dissect_DomainParameters_PDU, proto_pkix1explicit, "dhpublicnumber");
register_ber_oid_dissector("1.3.6.1.5.5.7.1.7", dissect_IPAddrBlocks_PDU, proto_pkix1explicit, "id-pe-ipAddrBlocks");
@@ -1081,6 +1081,6 @@ void proto_reg_handoff_pkix1explicit(void) {
/*--- End of included file: packet-pkix1explicit-dis-tab.c ---*/
-#line 140 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
+#line 140 "./asn1/pkix1explicit/packet-pkix1explicit-template.c"
}
diff --git a/epan/dissectors/packet-pkix1explicit.h b/epan/dissectors/packet-pkix1explicit.h
index 217d8bac1f..a03cb43abd 100644
--- a/epan/dissectors/packet-pkix1explicit.h
+++ b/epan/dissectors/packet-pkix1explicit.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkix1explicit.h */
-/* ../../tools/asn2wrs.py -b -p pkix1explicit -c ./pkix1explicit.cnf -s ./packet-pkix1explicit-template -D . -O ../../epan/dissectors PKIX1EXPLICIT93.asn IPAddrAndASCertExtn.asn */
+/* asn2wrs.py -b -p pkix1explicit -c ./pkix1explicit.cnf -s ./packet-pkix1explicit-template -D . -O ../.. PKIX1EXPLICIT93.asn IPAddrAndASCertExtn.asn */
/* Input file: packet-pkix1explicit-template.h */
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-template.h"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-template.h"
/* packet-pkix1explicit.h
* Routines for PKIX1Explicit packet dissection
*
@@ -44,7 +44,7 @@ int dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *
/*--- Included file: packet-pkix1explicit-exp.h ---*/
-#line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-exp.h"
+#line 1 "./asn1/pkix1explicit/packet-pkix1explicit-exp.h"
extern const value_string pkix1explicit_Version_vals[];
extern const value_string pkix1explicit_Time_vals[];
extern const value_string pkix1explicit_TerminalType_vals[];
@@ -63,7 +63,7 @@ int dissect_pkix1explicit_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb
int dissect_pkix1explicit_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-pkix1explicit-exp.h ---*/
-#line 38 "../../asn1/pkix1explicit/packet-pkix1explicit-template.h"
+#line 38 "./asn1/pkix1explicit/packet-pkix1explicit-template.h"
#endif /* PACKET_PKIX1EXPLICIT_H */
diff --git a/epan/dissectors/packet-pkix1implicit.c b/epan/dissectors/packet-pkix1implicit.c
index 9deda4eb72..2dbe7a6329 100644
--- a/epan/dissectors/packet-pkix1implicit.c
+++ b/epan/dissectors/packet-pkix1implicit.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkix1implicit.c */
-/* ../../tools/asn2wrs.py -b -p pkix1implicit -c ./pkix1implicit.cnf -s ./packet-pkix1implicit-template -D . -O ../../epan/dissectors PKIX1IMPLICIT93.asn */
+/* asn2wrs.py -b -p pkix1implicit -c ./pkix1implicit.cnf -s ./packet-pkix1implicit-template -D . -O ../.. PKIX1IMPLICIT93.asn */
/* Input file: packet-pkix1implicit-template.c */
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-template.c"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-template.c"
/* packet-pkix1implicit.c
* Routines for PKIX1Implitic packet dissection
*
@@ -49,7 +49,7 @@ void proto_reg_handoff_pkix1implicit(void);
static int proto_pkix1implicit = -1;
/*--- Included file: packet-pkix1implicit-hf.c ---*/
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-hf.c"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-hf.c"
static int hf_pkix1implicit_Dummy_PDU = -1; /* Dummy */
static int hf_pkix1implicit_AuthorityInfoAccessSyntax_PDU = -1; /* AuthorityInfoAccessSyntax */
static int hf_pkix1implicit_UserNotice_PDU = -1; /* UserNotice */
@@ -67,12 +67,12 @@ static int hf_pkix1implicit_bmpString = -1; /* BMPString */
static int hf_pkix1implicit_utf8String = -1; /* UTF8String */
/*--- End of included file: packet-pkix1implicit-hf.c ---*/
-#line 43 "../../asn1/pkix1implicit/packet-pkix1implicit-template.c"
+#line 43 "./asn1/pkix1implicit/packet-pkix1implicit-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-pkix1implicit-ett.c ---*/
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-ett.c"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-ett.c"
static gint ett_pkix1implicit_AuthorityInfoAccessSyntax = -1;
static gint ett_pkix1implicit_AccessDescription = -1;
static gint ett_pkix1implicit_UserNotice = -1;
@@ -81,7 +81,7 @@ static gint ett_pkix1implicit_T_noticeNumbers = -1;
static gint ett_pkix1implicit_DisplayText = -1;
/*--- End of included file: packet-pkix1implicit-ett.c ---*/
-#line 46 "../../asn1/pkix1implicit/packet-pkix1implicit-template.c"
+#line 46 "./asn1/pkix1implicit/packet-pkix1implicit-template.c"
int
@@ -99,7 +99,7 @@ dissect_pkix1implicit_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb, int
/*--- Included file: packet-pkix1implicit-fn.c ---*/
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-fn.c"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-fn.c"
int
@@ -305,7 +305,7 @@ static int dissect_UserNotice_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-pkix1implicit-fn.c ---*/
-#line 62 "../../asn1/pkix1implicit/packet-pkix1implicit-template.c"
+#line 62 "./asn1/pkix1implicit/packet-pkix1implicit-template.c"
/*--- proto_register_pkix1implicit ----------------------------------------------*/
@@ -315,7 +315,7 @@ void proto_register_pkix1implicit(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-pkix1implicit-hfarr.c ---*/
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-hfarr.c"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-hfarr.c"
{ &hf_pkix1implicit_Dummy_PDU,
{ "Dummy", "pkix1implicit.Dummy_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -378,14 +378,14 @@ void proto_register_pkix1implicit(void) {
NULL, HFILL }},
/*--- End of included file: packet-pkix1implicit-hfarr.c ---*/
-#line 70 "../../asn1/pkix1implicit/packet-pkix1implicit-template.c"
+#line 70 "./asn1/pkix1implicit/packet-pkix1implicit-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-pkix1implicit-ettarr.c ---*/
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-ettarr.c"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-ettarr.c"
&ett_pkix1implicit_AuthorityInfoAccessSyntax,
&ett_pkix1implicit_AccessDescription,
&ett_pkix1implicit_UserNotice,
@@ -394,7 +394,7 @@ void proto_register_pkix1implicit(void) {
&ett_pkix1implicit_DisplayText,
/*--- End of included file: packet-pkix1implicit-ettarr.c ---*/
-#line 75 "../../asn1/pkix1implicit/packet-pkix1implicit-template.c"
+#line 75 "./asn1/pkix1implicit/packet-pkix1implicit-template.c"
};
/* Register protocol */
@@ -411,7 +411,7 @@ void proto_register_pkix1implicit(void) {
void proto_reg_handoff_pkix1implicit(void) {
/*--- Included file: packet-pkix1implicit-dis-tab.c ---*/
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-dis-tab.c"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.5.7.1.1", dissect_AuthorityInfoAccessSyntax_PDU, proto_pkix1implicit, "id-pe-authorityInfoAccessSyntax");
register_ber_oid_dissector("1.3.6.1.5.5.7.3.1", dissect_Dummy_PDU, proto_pkix1implicit, "id-kp-serverAuth");
register_ber_oid_dissector("1.3.6.1.5.5.7.3.2", dissect_Dummy_PDU, proto_pkix1implicit, "id-kp-clientAuth");
@@ -450,6 +450,6 @@ void proto_reg_handoff_pkix1implicit(void) {
/*--- End of included file: packet-pkix1implicit-dis-tab.c ---*/
-#line 90 "../../asn1/pkix1implicit/packet-pkix1implicit-template.c"
+#line 90 "./asn1/pkix1implicit/packet-pkix1implicit-template.c"
}
diff --git a/epan/dissectors/packet-pkix1implicit.h b/epan/dissectors/packet-pkix1implicit.h
index cdaa29ef18..853af849c6 100644
--- a/epan/dissectors/packet-pkix1implicit.h
+++ b/epan/dissectors/packet-pkix1implicit.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkix1implicit.h */
-/* ../../tools/asn2wrs.py -b -p pkix1implicit -c ./pkix1implicit.cnf -s ./packet-pkix1implicit-template -D . -O ../../epan/dissectors PKIX1IMPLICIT93.asn */
+/* asn2wrs.py -b -p pkix1implicit -c ./pkix1implicit.cnf -s ./packet-pkix1implicit-template -D . -O ../.. PKIX1IMPLICIT93.asn */
/* Input file: packet-pkix1implicit-template.h */
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-template.h"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-template.h"
/* packet-pkix1implicit.h
* Routines for PKIX1Implicit packet dissection
*
@@ -36,13 +36,13 @@ int dissect_pkix1implicit_ReasonFlags(gboolean implicit_tag _U_, tvbuff_t *tvb,
/*--- Included file: packet-pkix1implicit-exp.h ---*/
-#line 1 "../../asn1/pkix1implicit/packet-pkix1implicit-exp.h"
+#line 1 "./asn1/pkix1implicit/packet-pkix1implicit-exp.h"
int dissect_pkix1implicit_KeyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_pkix1implicit_AuthorityInfoAccessSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_pkix1implicit_UserNotice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-pkix1implicit-exp.h ---*/
-#line 30 "../../asn1/pkix1implicit/packet-pkix1implicit-template.h"
+#line 30 "./asn1/pkix1implicit/packet-pkix1implicit-template.h"
#endif /* PACKET_PKIX1IMPLICIT_H */
diff --git a/epan/dissectors/packet-pkixac.c b/epan/dissectors/packet-pkixac.c
index f25e1aff11..375cefb688 100644
--- a/epan/dissectors/packet-pkixac.c
+++ b/epan/dissectors/packet-pkixac.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkixac.c */
-/* ../../tools/asn2wrs.py -b -p pkixac -c ./pkixac.cnf -s ./packet-pkixac-template -D . -O ../../epan/dissectors PKIXAttributeCertificate.asn */
+/* asn2wrs.py -b -p pkixac -c ./pkixac.cnf -s ./packet-pkixac-template -D . -O ../.. PKIXAttributeCertificate.asn */
/* Input file: packet-pkixac-template.c */
-#line 1 "../../asn1/pkixac/packet-pkixac-template.c"
+#line 1 "./asn1/pkixac/packet-pkixac-template.c"
/* packet-pkixac.c
*
* Routines for PKIXAttributeCertificate (RFC3281) packet dissection.
@@ -53,7 +53,7 @@ void proto_reg_handoff_pkixac(void);
static int proto_pkixac = -1;
/*--- Included file: packet-pkixac-hf.c ---*/
-#line 1 "../../asn1/pkixac/packet-pkixac-hf.c"
+#line 1 "./asn1/pkixac/packet-pkixac-hf.c"
static int hf_pkixac_Targets_PDU = -1; /* Targets */
static int hf_pkixac_IetfAttrSyntax_PDU = -1; /* IetfAttrSyntax */
static int hf_pkixac_SvceAuthInfo_PDU = -1; /* SvceAuthInfo */
@@ -107,13 +107,13 @@ static int hf_pkixac_ClassList_secret = -1;
static int hf_pkixac_ClassList_topSecret = -1;
/*--- End of included file: packet-pkixac-hf.c ---*/
-#line 47 "../../asn1/pkixac/packet-pkixac-template.c"
+#line 47 "./asn1/pkixac/packet-pkixac-template.c"
/* Initialize the subtree pointers */
static gint ett_pkixac = -1;
/*--- Included file: packet-pkixac-ett.c ---*/
-#line 1 "../../asn1/pkixac/packet-pkixac-ett.c"
+#line 1 "./asn1/pkixac/packet-pkixac-ett.c"
static gint ett_pkixac_ObjectDigestInfo = -1;
static gint ett_pkixac_IssuerSerial = -1;
static gint ett_pkixac_Targets = -1;
@@ -134,13 +134,13 @@ static gint ett_pkixac_AttrSpec = -1;
static gint ett_pkixac_ProxyInfo = -1;
/*--- End of included file: packet-pkixac-ett.c ---*/
-#line 51 "../../asn1/pkixac/packet-pkixac-template.c"
+#line 51 "./asn1/pkixac/packet-pkixac-template.c"
static const char *object_identifier_id;
/*--- Included file: packet-pkixac-fn.c ---*/
-#line 1 "../../asn1/pkixac/packet-pkixac-fn.c"
+#line 1 "./asn1/pkixac/packet-pkixac-fn.c"
static const value_string pkixac_T_digestedObjectType_vals[] = {
{ 0, "publicKey" },
@@ -401,7 +401,7 @@ dissect_pkixac_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_pkixac_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 59 "../../asn1/pkixac/pkixac.cnf"
+#line 59 "./asn1/pkixac/pkixac.cnf"
if (object_identifier_id)
offset = call_ber_oid_callback (object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -419,7 +419,7 @@ static const ber_sequence_t SecurityCategory_sequence[] = {
static int
dissect_pkixac_SecurityCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 52 "../../asn1/pkixac/pkixac.cnf"
+#line 52 "./asn1/pkixac/pkixac.cnf"
object_identifier_id = NULL;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SecurityCategory_sequence, hf_index, ett_pkixac_SecurityCategory);
@@ -598,7 +598,7 @@ static int dissect_ProxyInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- End of included file: packet-pkixac-fn.c ---*/
-#line 55 "../../asn1/pkixac/packet-pkixac-template.c"
+#line 55 "./asn1/pkixac/packet-pkixac-template.c"
/*--- proto_register_pkixac ----------------------------------------------*/
void proto_register_pkixac(void) {
@@ -607,7 +607,7 @@ void proto_register_pkixac(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-pkixac-hfarr.c ---*/
-#line 1 "../../asn1/pkixac/packet-pkixac-hfarr.c"
+#line 1 "./asn1/pkixac/packet-pkixac-hfarr.c"
{ &hf_pkixac_Targets_PDU,
{ "Targets", "pkixac.Targets",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -810,7 +810,7 @@ void proto_register_pkixac(void) {
NULL, HFILL }},
/*--- End of included file: packet-pkixac-hfarr.c ---*/
-#line 62 "../../asn1/pkixac/packet-pkixac-template.c"
+#line 62 "./asn1/pkixac/packet-pkixac-template.c"
};
/* List of subtrees */
@@ -818,7 +818,7 @@ void proto_register_pkixac(void) {
&ett_pkixac,
/*--- Included file: packet-pkixac-ettarr.c ---*/
-#line 1 "../../asn1/pkixac/packet-pkixac-ettarr.c"
+#line 1 "./asn1/pkixac/packet-pkixac-ettarr.c"
&ett_pkixac_ObjectDigestInfo,
&ett_pkixac_IssuerSerial,
&ett_pkixac_Targets,
@@ -839,7 +839,7 @@ void proto_register_pkixac(void) {
&ett_pkixac_ProxyInfo,
/*--- End of included file: packet-pkixac-ettarr.c ---*/
-#line 68 "../../asn1/pkixac/packet-pkixac-template.c"
+#line 68 "./asn1/pkixac/packet-pkixac-template.c"
};
/* Register protocol */
@@ -851,13 +851,13 @@ void proto_register_pkixac(void) {
/*--- Included file: packet-pkixac-syn-reg.c ---*/
-#line 1 "../../asn1/pkixac/packet-pkixac-syn-reg.c"
+#line 1 "./asn1/pkixac/packet-pkixac-syn-reg.c"
/*--- Syntax registrations ---*/
register_ber_syntax_dissector("Clearance", proto_pkixac, dissect_Clearance_PDU);
register_ber_syntax_dissector("RFC3281Clearance", proto_pkixac, dissect_RFC3281Clearance_PDU);
/*--- End of included file: packet-pkixac-syn-reg.c ---*/
-#line 78 "../../asn1/pkixac/packet-pkixac-template.c"
+#line 78 "./asn1/pkixac/packet-pkixac-template.c"
}
@@ -866,7 +866,7 @@ void proto_register_pkixac(void) {
void proto_reg_handoff_pkixac(void) {
/*--- Included file: packet-pkixac-dis-tab.c ---*/
-#line 1 "../../asn1/pkixac/packet-pkixac-dis-tab.c"
+#line 1 "./asn1/pkixac/packet-pkixac-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.5.7.1.6", dissect_AAControls_PDU, proto_pkixac, "id-pe-aaControls");
register_ber_oid_dissector("1.3.6.1.5.5.7.1.10", dissect_ProxyInfo_PDU, proto_pkixac, "id-pe-ac-proxying");
register_ber_oid_dissector("1.3.6.1.5.5.7.10.1", dissect_SvceAuthInfo_PDU, proto_pkixac, "id-aca-authenticationInfo");
@@ -880,6 +880,6 @@ void proto_reg_handoff_pkixac(void) {
/*--- End of included file: packet-pkixac-dis-tab.c ---*/
-#line 85 "../../asn1/pkixac/packet-pkixac-template.c"
+#line 85 "./asn1/pkixac/packet-pkixac-template.c"
}
diff --git a/epan/dissectors/packet-pkixac.h b/epan/dissectors/packet-pkixac.h
index ee70a13a53..b859df10b6 100644
--- a/epan/dissectors/packet-pkixac.h
+++ b/epan/dissectors/packet-pkixac.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkixac.h */
-/* ../../tools/asn2wrs.py -b -p pkixac -c ./pkixac.cnf -s ./packet-pkixac-template -D . -O ../../epan/dissectors PKIXAttributeCertificate.asn */
+/* asn2wrs.py -b -p pkixac -c ./pkixac.cnf -s ./packet-pkixac-template -D . -O ../.. PKIXAttributeCertificate.asn */
/* Input file: packet-pkixac-template.h */
-#line 1 "../../asn1/pkixac/packet-pkixac-template.h"
+#line 1 "./asn1/pkixac/packet-pkixac-template.h"
/* packet-pkixac.h
*
* Routines for PKIXAttributeCertificate (RFC3281) packet dissection.
diff --git a/epan/dissectors/packet-pkixproxy.c b/epan/dissectors/packet-pkixproxy.c
index efc40fd2ea..4280f9309a 100644
--- a/epan/dissectors/packet-pkixproxy.c
+++ b/epan/dissectors/packet-pkixproxy.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkixproxy.c */
-/* ../../tools/asn2wrs.py -b -p pkixproxy -c ./pkixproxy.cnf -s ./packet-pkixproxy-template -D . -O ../../epan/dissectors PKIXProxy.asn */
+/* asn2wrs.py -b -p pkixproxy -c ./pkixproxy.cnf -s ./packet-pkixproxy-template -D . -O ../.. PKIXProxy.asn */
/* Input file: packet-pkixproxy-template.c */
-#line 1 "../../asn1/pkixproxy/packet-pkixproxy-template.c"
+#line 1 "./asn1/pkixproxy/packet-pkixproxy-template.c"
/* packet-pkixproxy.c
* Routines for RFC3820 PKIXProxy packet dissection
* Ronnie Sahlberg 2004
@@ -49,7 +49,7 @@ void proto_reg_handoff_pkixproxy(void);
static int proto_pkixproxy = -1;
/*--- Included file: packet-pkixproxy-hf.c ---*/
-#line 1 "../../asn1/pkixproxy/packet-pkixproxy-hf.c"
+#line 1 "./asn1/pkixproxy/packet-pkixproxy-hf.c"
static int hf_pkixproxy_ProxyCertInfoExtension_PDU = -1; /* ProxyCertInfoExtension */
static int hf_pkixproxy_pCPathLenConstraint = -1; /* ProxyCertPathLengthConstraint */
static int hf_pkixproxy_proxyPolicy = -1; /* ProxyPolicy */
@@ -57,21 +57,21 @@ static int hf_pkixproxy_policyLanguage = -1; /* OBJECT_IDENTIFIER */
static int hf_pkixproxy_policy = -1; /* OCTET_STRING */
/*--- End of included file: packet-pkixproxy-hf.c ---*/
-#line 43 "../../asn1/pkixproxy/packet-pkixproxy-template.c"
+#line 43 "./asn1/pkixproxy/packet-pkixproxy-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-pkixproxy-ett.c ---*/
-#line 1 "../../asn1/pkixproxy/packet-pkixproxy-ett.c"
+#line 1 "./asn1/pkixproxy/packet-pkixproxy-ett.c"
static gint ett_pkixproxy_ProxyCertInfoExtension = -1;
static gint ett_pkixproxy_ProxyPolicy = -1;
/*--- End of included file: packet-pkixproxy-ett.c ---*/
-#line 46 "../../asn1/pkixproxy/packet-pkixproxy-template.c"
+#line 46 "./asn1/pkixproxy/packet-pkixproxy-template.c"
/*--- Included file: packet-pkixproxy-fn.c ---*/
-#line 1 "../../asn1/pkixproxy/packet-pkixproxy-fn.c"
+#line 1 "./asn1/pkixproxy/packet-pkixproxy-fn.c"
static int
@@ -143,7 +143,7 @@ static int dissect_ProxyCertInfoExtension_PDU(tvbuff_t *tvb _U_, packet_info *pi
/*--- End of included file: packet-pkixproxy-fn.c ---*/
-#line 48 "../../asn1/pkixproxy/packet-pkixproxy-template.c"
+#line 48 "./asn1/pkixproxy/packet-pkixproxy-template.c"
/*--- proto_register_pkixproxy ----------------------------------------------*/
@@ -153,7 +153,7 @@ void proto_register_pkixproxy(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-pkixproxy-hfarr.c ---*/
-#line 1 "../../asn1/pkixproxy/packet-pkixproxy-hfarr.c"
+#line 1 "./asn1/pkixproxy/packet-pkixproxy-hfarr.c"
{ &hf_pkixproxy_ProxyCertInfoExtension_PDU,
{ "ProxyCertInfoExtension", "pkixproxy.ProxyCertInfoExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -176,19 +176,19 @@ void proto_register_pkixproxy(void) {
"OCTET_STRING", HFILL }},
/*--- End of included file: packet-pkixproxy-hfarr.c ---*/
-#line 56 "../../asn1/pkixproxy/packet-pkixproxy-template.c"
+#line 56 "./asn1/pkixproxy/packet-pkixproxy-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-pkixproxy-ettarr.c ---*/
-#line 1 "../../asn1/pkixproxy/packet-pkixproxy-ettarr.c"
+#line 1 "./asn1/pkixproxy/packet-pkixproxy-ettarr.c"
&ett_pkixproxy_ProxyCertInfoExtension,
&ett_pkixproxy_ProxyPolicy,
/*--- End of included file: packet-pkixproxy-ettarr.c ---*/
-#line 61 "../../asn1/pkixproxy/packet-pkixproxy-template.c"
+#line 61 "./asn1/pkixproxy/packet-pkixproxy-template.c"
};
/* Register protocol */
@@ -205,12 +205,12 @@ void proto_register_pkixproxy(void) {
void proto_reg_handoff_pkixproxy(void) {
/*--- Included file: packet-pkixproxy-dis-tab.c ---*/
-#line 1 "../../asn1/pkixproxy/packet-pkixproxy-dis-tab.c"
+#line 1 "./asn1/pkixproxy/packet-pkixproxy-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.5.7.1.14", dissect_ProxyCertInfoExtension_PDU, proto_pkixproxy, "id-pe-proxyCertInfo");
/*--- End of included file: packet-pkixproxy-dis-tab.c ---*/
-#line 76 "../../asn1/pkixproxy/packet-pkixproxy-template.c"
+#line 76 "./asn1/pkixproxy/packet-pkixproxy-template.c"
oid_add_from_string("id-ppl-anyLanguage","1.3.6.1.5.5.7.21.0");
oid_add_from_string("id-ppl-inheritAll","1.3.6.1.5.5.7.21.1");
oid_add_from_string("id-ppl-independent","1.3.6.1.5.5.7.21.2");
diff --git a/epan/dissectors/packet-pkixproxy.h b/epan/dissectors/packet-pkixproxy.h
index e7187b4ea6..53d60260c6 100644
--- a/epan/dissectors/packet-pkixproxy.h
+++ b/epan/dissectors/packet-pkixproxy.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkixproxy.h */
-/* ../../tools/asn2wrs.py -b -p pkixproxy -c ./pkixproxy.cnf -s ./packet-pkixproxy-template -D . -O ../../epan/dissectors PKIXProxy.asn */
+/* asn2wrs.py -b -p pkixproxy -c ./pkixproxy.cnf -s ./packet-pkixproxy-template -D . -O ../.. PKIXProxy.asn */
/* Input file: packet-pkixproxy-template.h */
-#line 1 "../../asn1/pkixproxy/packet-pkixproxy-template.h"
+#line 1 "./asn1/pkixproxy/packet-pkixproxy-template.h"
/* packet-pkixproxy.h
* Routines for RFC3820 PKIXProxy packet dissection
* Ronnie Sahlberg 2004
diff --git a/epan/dissectors/packet-pkixqualified.c b/epan/dissectors/packet-pkixqualified.c
index 39c6bf78b7..dce2c077c3 100644
--- a/epan/dissectors/packet-pkixqualified.c
+++ b/epan/dissectors/packet-pkixqualified.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkixqualified.c */
-/* ../../tools/asn2wrs.py -b -p pkixqualified -c ./pkixqualified.cnf -s ./packet-pkixqualified-template -D . -O ../../epan/dissectors PKIXqualified.asn */
+/* asn2wrs.py -b -p pkixqualified -c ./pkixqualified.cnf -s ./packet-pkixqualified-template -D . -O ../.. PKIXqualified.asn */
/* Input file: packet-pkixqualified-template.c */
-#line 1 "../../asn1/pkixqualified/packet-pkixqualified-template.c"
+#line 1 "./asn1/pkixqualified/packet-pkixqualified-template.c"
/* packet-pkixqualified.c
* Routines for RFC3739 PKIXqualified packet dissection
* Ronnie Sahlberg 2004
@@ -52,7 +52,7 @@ void proto_reg_handoff_pkixqualified(void);
static int proto_pkixqualified = -1;
/*--- Included file: packet-pkixqualified-hf.c ---*/
-#line 1 "../../asn1/pkixqualified/packet-pkixqualified-hf.c"
+#line 1 "./asn1/pkixqualified/packet-pkixqualified-hf.c"
static int hf_pkixqualified_Generalizedtime_PDU = -1; /* Generalizedtime */
static int hf_pkixqualified_Directorystring_PDU = -1; /* Directorystring */
static int hf_pkixqualified_Printablestring_PDU = -1; /* Printablestring */
@@ -75,12 +75,12 @@ static int hf_pkixqualified_nameRegistrationAuthorities = -1; /* NameRegistrati
static int hf_pkixqualified_NameRegistrationAuthorities_item = -1; /* GeneralName */
/*--- End of included file: packet-pkixqualified-hf.c ---*/
-#line 46 "../../asn1/pkixqualified/packet-pkixqualified-template.c"
+#line 46 "./asn1/pkixqualified/packet-pkixqualified-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-pkixqualified-ett.c ---*/
-#line 1 "../../asn1/pkixqualified/packet-pkixqualified-ett.c"
+#line 1 "./asn1/pkixqualified/packet-pkixqualified-ett.c"
static gint ett_pkixqualified_BiometricSyntax = -1;
static gint ett_pkixqualified_BiometricData = -1;
static gint ett_pkixqualified_TypeOfBiometricData = -1;
@@ -90,13 +90,13 @@ static gint ett_pkixqualified_SemanticsInformation = -1;
static gint ett_pkixqualified_NameRegistrationAuthorities = -1;
/*--- End of included file: packet-pkixqualified-ett.c ---*/
-#line 49 "../../asn1/pkixqualified/packet-pkixqualified-template.c"
+#line 49 "./asn1/pkixqualified/packet-pkixqualified-template.c"
static const char *object_identifier_id;
/*--- Included file: packet-pkixqualified-fn.c ---*/
-#line 1 "../../asn1/pkixqualified/packet-pkixqualified-fn.c"
+#line 1 "./asn1/pkixqualified/packet-pkixqualified-fn.c"
static int
@@ -237,7 +237,7 @@ dissect_pkixqualified_T_statementId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_pkixqualified_T_statementInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 32 "../../asn1/pkixqualified/pkixqualified.cnf"
+#line 32 "./asn1/pkixqualified/pkixqualified.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL);
@@ -366,7 +366,7 @@ static int dissect_XmppAddr_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-pkixqualified-fn.c ---*/
-#line 53 "../../asn1/pkixqualified/packet-pkixqualified-template.c"
+#line 53 "./asn1/pkixqualified/packet-pkixqualified-template.c"
/*--- proto_register_pkixqualified ----------------------------------------------*/
@@ -376,7 +376,7 @@ void proto_register_pkixqualified(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-pkixqualified-hfarr.c ---*/
-#line 1 "../../asn1/pkixqualified/packet-pkixqualified-hfarr.c"
+#line 1 "./asn1/pkixqualified/packet-pkixqualified-hfarr.c"
{ &hf_pkixqualified_Generalizedtime_PDU,
{ "Generalizedtime", "pkixqualified.Generalizedtime",
FT_STRING, BASE_NONE, NULL, 0,
@@ -459,14 +459,14 @@ void proto_register_pkixqualified(void) {
NULL, HFILL }},
/*--- End of included file: packet-pkixqualified-hfarr.c ---*/
-#line 61 "../../asn1/pkixqualified/packet-pkixqualified-template.c"
+#line 61 "./asn1/pkixqualified/packet-pkixqualified-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-pkixqualified-ettarr.c ---*/
-#line 1 "../../asn1/pkixqualified/packet-pkixqualified-ettarr.c"
+#line 1 "./asn1/pkixqualified/packet-pkixqualified-ettarr.c"
&ett_pkixqualified_BiometricSyntax,
&ett_pkixqualified_BiometricData,
&ett_pkixqualified_TypeOfBiometricData,
@@ -476,7 +476,7 @@ void proto_register_pkixqualified(void) {
&ett_pkixqualified_NameRegistrationAuthorities,
/*--- End of included file: packet-pkixqualified-ettarr.c ---*/
-#line 66 "../../asn1/pkixqualified/packet-pkixqualified-template.c"
+#line 66 "./asn1/pkixqualified/packet-pkixqualified-template.c"
};
/* Register protocol */
@@ -493,7 +493,7 @@ void proto_register_pkixqualified(void) {
void proto_reg_handoff_pkixqualified(void) {
/*--- Included file: packet-pkixqualified-dis-tab.c ---*/
-#line 1 "../../asn1/pkixqualified/packet-pkixqualified-dis-tab.c"
+#line 1 "./asn1/pkixqualified/packet-pkixqualified-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.5.7.1.2", dissect_BiometricSyntax_PDU, proto_pkixqualified, "id-pe-biometricInfo");
register_ber_oid_dissector("1.3.6.1.5.5.7.1.3", dissect_QCStatements_PDU, proto_pkixqualified, "id-pe-qcStatements");
register_ber_oid_dissector("1.3.6.1.5.5.7.11.1", dissect_SemanticsInformation_PDU, proto_pkixqualified, "id-qcs-pkixQCSyntax-v1");
@@ -507,6 +507,6 @@ void proto_reg_handoff_pkixqualified(void) {
/*--- End of included file: packet-pkixqualified-dis-tab.c ---*/
-#line 81 "../../asn1/pkixqualified/packet-pkixqualified-template.c"
+#line 81 "./asn1/pkixqualified/packet-pkixqualified-template.c"
}
diff --git a/epan/dissectors/packet-pkixqualified.h b/epan/dissectors/packet-pkixqualified.h
index f442c811e5..d6e6d8876d 100644
--- a/epan/dissectors/packet-pkixqualified.h
+++ b/epan/dissectors/packet-pkixqualified.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkixqualified.h */
-/* ../../tools/asn2wrs.py -b -p pkixqualified -c ./pkixqualified.cnf -s ./packet-pkixqualified-template -D . -O ../../epan/dissectors PKIXqualified.asn */
+/* asn2wrs.py -b -p pkixqualified -c ./pkixqualified.cnf -s ./packet-pkixqualified-template -D . -O ../.. PKIXqualified.asn */
/* Input file: packet-pkixqualified-template.h */
-#line 1 "../../asn1/pkixqualified/packet-pkixqualified-template.h"
+#line 1 "./asn1/pkixqualified/packet-pkixqualified-template.h"
/* packet-pkixqualified.h
* Routines for RFC3739 PKIXqualified packet dissection
* Ronnie Sahlberg 2004
diff --git a/epan/dissectors/packet-pkixtsp.c b/epan/dissectors/packet-pkixtsp.c
index 814760a698..34da60095c 100644
--- a/epan/dissectors/packet-pkixtsp.c
+++ b/epan/dissectors/packet-pkixtsp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkixtsp.c */
-/* ../../tools/asn2wrs.py -b -p pkixtsp -c ./pkixtsp.cnf -s ./packet-pkixtsp-template -D . -O ../../epan/dissectors PKIXTSP.asn */
+/* asn2wrs.py -b -p pkixtsp -c ./pkixtsp.cnf -s ./packet-pkixtsp-template -D . -O ../.. PKIXTSP.asn */
/* Input file: packet-pkixtsp-template.c */
-#line 1 "../../asn1/pkixtsp/packet-pkixtsp-template.c"
+#line 1 "./asn1/pkixtsp/packet-pkixtsp-template.c"
/* packet-pkixtsp.c
* Routines for RFC2634 Extended Security Services packet dissection
* Ronnie Sahlberg 2004
@@ -51,7 +51,7 @@ void proto_reg_handoff_pkixtsp(void);
static int proto_pkixtsp = -1;
/*--- Included file: packet-pkixtsp-hf.c ---*/
-#line 1 "../../asn1/pkixtsp/packet-pkixtsp-hf.c"
+#line 1 "./asn1/pkixtsp/packet-pkixtsp-hf.c"
static int hf_pkixtsp_TSTInfo_PDU = -1; /* TSTInfo */
static int hf_pkixtsp_version = -1; /* T_version */
static int hf_pkixtsp_messageImprint = -1; /* MessageImprint */
@@ -86,13 +86,13 @@ static int hf_pkixtsp_PKIFailureInfo_addInfoNotAvailable = -1;
static int hf_pkixtsp_PKIFailureInfo_systemFailure = -1;
/*--- End of included file: packet-pkixtsp-hf.c ---*/
-#line 45 "../../asn1/pkixtsp/packet-pkixtsp-template.c"
+#line 45 "./asn1/pkixtsp/packet-pkixtsp-template.c"
/* Initialize the subtree pointers */
static gint ett_pkixtsp = -1;
/*--- Included file: packet-pkixtsp-ett.c ---*/
-#line 1 "../../asn1/pkixtsp/packet-pkixtsp-ett.c"
+#line 1 "./asn1/pkixtsp/packet-pkixtsp-ett.c"
static gint ett_pkixtsp_TimeStampReq = -1;
static gint ett_pkixtsp_MessageImprint = -1;
static gint ett_pkixtsp_TimeStampResp = -1;
@@ -102,12 +102,12 @@ static gint ett_pkixtsp_TSTInfo = -1;
static gint ett_pkixtsp_Accuracy = -1;
/*--- End of included file: packet-pkixtsp-ett.c ---*/
-#line 49 "../../asn1/pkixtsp/packet-pkixtsp-template.c"
+#line 49 "./asn1/pkixtsp/packet-pkixtsp-template.c"
/*--- Included file: packet-pkixtsp-fn.c ---*/
-#line 1 "../../asn1/pkixtsp/packet-pkixtsp-fn.c"
+#line 1 "./asn1/pkixtsp/packet-pkixtsp-fn.c"
static const value_string pkixtsp_T_version_vals[] = {
{ 1, "v1" },
@@ -361,7 +361,7 @@ static int dissect_TSTInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-pkixtsp-fn.c ---*/
-#line 52 "../../asn1/pkixtsp/packet-pkixtsp-template.c"
+#line 52 "./asn1/pkixtsp/packet-pkixtsp-template.c"
static int
@@ -414,7 +414,7 @@ void proto_register_pkixtsp(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-pkixtsp-hfarr.c ---*/
-#line 1 "../../asn1/pkixtsp/packet-pkixtsp-hfarr.c"
+#line 1 "./asn1/pkixtsp/packet-pkixtsp-hfarr.c"
{ &hf_pkixtsp_TSTInfo_PDU,
{ "TSTInfo", "pkixtsp.TSTInfo_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -541,7 +541,7 @@ void proto_register_pkixtsp(void) {
NULL, HFILL }},
/*--- End of included file: packet-pkixtsp-hfarr.c ---*/
-#line 103 "../../asn1/pkixtsp/packet-pkixtsp-template.c"
+#line 103 "./asn1/pkixtsp/packet-pkixtsp-template.c"
};
/* List of subtrees */
@@ -549,7 +549,7 @@ void proto_register_pkixtsp(void) {
&ett_pkixtsp,
/*--- Included file: packet-pkixtsp-ettarr.c ---*/
-#line 1 "../../asn1/pkixtsp/packet-pkixtsp-ettarr.c"
+#line 1 "./asn1/pkixtsp/packet-pkixtsp-ettarr.c"
&ett_pkixtsp_TimeStampReq,
&ett_pkixtsp_MessageImprint,
&ett_pkixtsp_TimeStampResp,
@@ -559,7 +559,7 @@ void proto_register_pkixtsp(void) {
&ett_pkixtsp_Accuracy,
/*--- End of included file: packet-pkixtsp-ettarr.c ---*/
-#line 109 "../../asn1/pkixtsp/packet-pkixtsp-template.c"
+#line 109 "./asn1/pkixtsp/packet-pkixtsp-template.c"
};
/* Register protocol */
@@ -585,11 +585,11 @@ void proto_reg_handoff_pkixtsp(void) {
/*--- Included file: packet-pkixtsp-dis-tab.c ---*/
-#line 1 "../../asn1/pkixtsp/packet-pkixtsp-dis-tab.c"
+#line 1 "./asn1/pkixtsp/packet-pkixtsp-dis-tab.c"
register_ber_oid_dissector("1.2.840.113549.1.9.16.1.4", dissect_TSTInfo_PDU, proto_pkixtsp, "id-ct-TSTInfo");
/*--- End of included file: packet-pkixtsp-dis-tab.c ---*/
-#line 133 "../../asn1/pkixtsp/packet-pkixtsp-template.c"
+#line 133 "./asn1/pkixtsp/packet-pkixtsp-template.c"
}
diff --git a/epan/dissectors/packet-pkixtsp.h b/epan/dissectors/packet-pkixtsp.h
index 48d7b69307..ef0b770931 100644
--- a/epan/dissectors/packet-pkixtsp.h
+++ b/epan/dissectors/packet-pkixtsp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pkixtsp.h */
-/* ../../tools/asn2wrs.py -b -p pkixtsp -c ./pkixtsp.cnf -s ./packet-pkixtsp-template -D . -O ../../epan/dissectors PKIXTSP.asn */
+/* asn2wrs.py -b -p pkixtsp -c ./pkixtsp.cnf -s ./packet-pkixtsp-template -D . -O ../.. PKIXTSP.asn */
/* Input file: packet-pkixtsp-template.h */
-#line 1 "../../asn1/pkixtsp/packet-pkixtsp-template.h"
+#line 1 "./asn1/pkixtsp/packet-pkixtsp-template.h"
/* packet-pkixtsp.h
* Routines for RFC3161 Time-Stamp Protocol packet dissection
* Ronnie Sahlberg 2004
diff --git a/epan/dissectors/packet-pres.c b/epan/dissectors/packet-pres.c
index 651620e6ea..5d028d625e 100644
--- a/epan/dissectors/packet-pres.c
+++ b/epan/dissectors/packet-pres.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pres.c */
-/* ../../tools/asn2wrs.py -b -p pres -c ./pres.cnf -s ./packet-pres-template -D . -O ../../epan/dissectors ISO8823-PRESENTATION.asn ISO9576-PRESENTATION.asn */
+/* asn2wrs.py -b -p pres -c ./pres.cnf -s ./packet-pres-template -D . -O ../.. ISO8823-PRESENTATION.asn ISO9576-PRESENTATION.asn */
/* Input file: packet-pres-template.c */
-#line 1 "../../asn1/pres/packet-pres-template.c"
+#line 1 "./asn1/pres/packet-pres-template.c"
/* packet-pres.c
* Routine to dissect ISO 8823 OSI Presentation Protocol packets
* Based on the dissector by
@@ -95,7 +95,7 @@ static int hf_pres_Typed_data_type = -1;
/*--- Included file: packet-pres-hf.c ---*/
-#line 1 "../../asn1/pres/packet-pres-hf.c"
+#line 1 "./asn1/pres/packet-pres-hf.c"
static int hf_pres_UD_type_PDU = -1; /* UD_type */
static int hf_pres_mode_selector = -1; /* Mode_selector */
static int hf_pres_x410_mode_parameters = -1; /* RTORQapdu */
@@ -176,14 +176,14 @@ static int hf_pres_User_session_requirements_symmetric_synchronize = -1;
static int hf_pres_User_session_requirements_data_separation = -1;
/*--- End of included file: packet-pres-hf.c ---*/
-#line 89 "../../asn1/pres/packet-pres-template.c"
+#line 89 "./asn1/pres/packet-pres-template.c"
/* Initialize the subtree pointers */
static gint ett_pres = -1;
/*--- Included file: packet-pres-ett.c ---*/
-#line 1 "../../asn1/pres/packet-pres-ett.c"
+#line 1 "./asn1/pres/packet-pres-ett.c"
static gint ett_pres_CP_type = -1;
static gint ett_pres_T_normal_mode_parameters = -1;
static gint ett_pres_T_extensions = -1;
@@ -222,7 +222,7 @@ static gint ett_pres_User_session_requirements = -1;
static gint ett_pres_UD_type = -1;
/*--- End of included file: packet-pres-ett.c ---*/
-#line 94 "../../asn1/pres/packet-pres-template.c"
+#line 94 "./asn1/pres/packet-pres-template.c"
static expert_field ei_pres_dissector_not_available = EI_INIT;
static expert_field ei_pres_wrong_spdu_type = EI_INIT;
@@ -354,7 +354,7 @@ pres_free_cb(void *r)
/*--- Included file: packet-pres-fn.c ---*/
-#line 1 "../../asn1/pres/packet-pres-fn.c"
+#line 1 "./asn1/pres/packet-pres-fn.c"
static const value_string pres_T_mode_value_vals[] = {
{ 0, "x410-1984-mode" },
@@ -432,7 +432,7 @@ dissect_pres_Called_presentation_selector(gboolean implicit_tag _U_, tvbuff_t *t
static int
dissect_pres_Presentation_context_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 71 "../../asn1/pres/pres.cnf"
+#line 71 "./asn1/pres/pres.cnf"
const char *name;
char *oid;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
@@ -496,13 +496,13 @@ static const ber_sequence_t Context_list_item_sequence[] = {
static int
dissect_pres_Context_list_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 97 "../../asn1/pres/pres.cnf"
+#line 97 "./asn1/pres/pres.cnf"
abstract_syntax_name_oid=NULL;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Context_list_item_sequence, hf_index, ett_pres_Context_list_item);
-#line 100 "../../asn1/pres/pres.cnf"
+#line 100 "./asn1/pres/pres.cnf"
register_ctx_id_and_oid(actx->pinfo, presentation_context_identifier, abstract_syntax_name_oid);
return offset;
@@ -632,7 +632,7 @@ dissect_pres_Simply_encoded_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_pres_T_single_ASN1_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 35 "../../asn1/pres/pres.cnf"
+#line 35 "./asn1/pres/pres.cnf"
tvbuff_t *next_tvb;
char *oid;
@@ -655,7 +655,7 @@ dissect_pres_T_single_ASN1_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_pres_T_octet_aligned(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 49 "../../asn1/pres/pres.cnf"
+#line 49 "./asn1/pres/pres.cnf"
tvbuff_t *next_tvb;
char *oid;
@@ -1084,7 +1084,7 @@ static const value_string pres_Abort_reason_vals[] = {
static int
dissect_pres_Abort_reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "../../asn1/pres/pres.cnf"
+#line 90 "./asn1/pres/pres.cnf"
guint32 reason;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -1359,7 +1359,7 @@ static int dissect_UD_type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-pres-fn.c ---*/
-#line 224 "../../asn1/pres/packet-pres-template.c"
+#line 224 "./asn1/pres/packet-pres-template.c"
/*
@@ -1530,7 +1530,7 @@ void proto_register_pres(void) {
/*--- Included file: packet-pres-hfarr.c ---*/
-#line 1 "../../asn1/pres/packet-pres-hfarr.c"
+#line 1 "./asn1/pres/packet-pres-hfarr.c"
{ &hf_pres_UD_type_PDU,
{ "UD-type", "pres.UD_type_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1841,7 +1841,7 @@ void proto_register_pres(void) {
NULL, HFILL }},
/*--- End of included file: packet-pres-hfarr.c ---*/
-#line 393 "../../asn1/pres/packet-pres-template.c"
+#line 393 "./asn1/pres/packet-pres-template.c"
};
/* List of subtrees */
@@ -1849,7 +1849,7 @@ void proto_register_pres(void) {
&ett_pres,
/*--- Included file: packet-pres-ettarr.c ---*/
-#line 1 "../../asn1/pres/packet-pres-ettarr.c"
+#line 1 "./asn1/pres/packet-pres-ettarr.c"
&ett_pres_CP_type,
&ett_pres_T_normal_mode_parameters,
&ett_pres_T_extensions,
@@ -1888,7 +1888,7 @@ void proto_register_pres(void) {
&ett_pres_UD_type,
/*--- End of included file: packet-pres-ettarr.c ---*/
-#line 399 "../../asn1/pres/packet-pres-template.c"
+#line 399 "./asn1/pres/packet-pres-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-pres.h b/epan/dissectors/packet-pres.h
index 8608ec070e..c33078ce86 100644
--- a/epan/dissectors/packet-pres.h
+++ b/epan/dissectors/packet-pres.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-pres.h */
-/* ../../tools/asn2wrs.py -b -p pres -c ./pres.cnf -s ./packet-pres-template -D . -O ../../epan/dissectors ISO8823-PRESENTATION.asn ISO9576-PRESENTATION.asn */
+/* asn2wrs.py -b -p pres -c ./pres.cnf -s ./packet-pres-template -D . -O ../.. ISO8823-PRESENTATION.asn ISO9576-PRESENTATION.asn */
/* Input file: packet-pres-template.h */
-#line 1 "../../asn1/pres/packet-pres-template.h"
+#line 1 "./asn1/pres/packet-pres-template.h"
/* packet-pres.h
* Routines for pres packet dissection
*
diff --git a/epan/dissectors/packet-q932-ros.c b/epan/dissectors/packet-q932-ros.c
index 0293df4943..6f975104ea 100644
--- a/epan/dissectors/packet-q932-ros.c
+++ b/epan/dissectors/packet-q932-ros.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-q932-ros.c */
-/* ../../tools/asn2wrs.py -b -p q932.ros -c ./q932-ros.cnf -s ./packet-q932-ros-template -D . -O ../../epan/dissectors ../ros/Remote-Operations-Information-Objects.asn Facility-Information-Element-Components.asn */
+/* asn2wrs.py -b -p q932.ros -c ./q932-ros.cnf -s ./packet-q932-ros-template -D . -O ../.. ../ros/Remote-Operations-Information-Objects.asn Facility-Information-Element-Components.asn */
/* Input file: packet-q932-ros-template.c */
-#line 1 "../../asn1/q932-ros/packet-q932-ros-template.c"
+#line 1 "./asn1/q932-ros/packet-q932-ros-template.c"
/* packet-q932-ros.c
* Routines for Q.932 packet dissection
* 2007 Tomas Kukosa
@@ -49,7 +49,7 @@ void proto_reg_handoff_q932_ros(void);
static int proto_q932_ros = -1;
/*--- Included file: packet-q932-ros-hf.c ---*/
-#line 1 "../../asn1/q932-ros/packet-q932-ros-hf.c"
+#line 1 "./asn1/q932-ros/packet-q932-ros-hf.c"
static int hf_q932_ros_ROS_PDU = -1; /* ROS */
static int hf_q932_ros_local = -1; /* T_local */
static int hf_q932_ros_global = -1; /* T_global */
@@ -76,12 +76,12 @@ static int hf_q932_ros_present = -1; /* INTEGER */
static int hf_q932_ros_InvokeId_present = -1; /* InvokeId_present */
/*--- End of included file: packet-q932-ros-hf.c ---*/
-#line 43 "../../asn1/q932-ros/packet-q932-ros-template.c"
+#line 43 "./asn1/q932-ros/packet-q932-ros-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-q932-ros-ett.c ---*/
-#line 1 "../../asn1/q932-ros/packet-q932-ros-ett.c"
+#line 1 "./asn1/q932-ros/packet-q932-ros-ett.c"
static gint ett_q932_ros_Code = -1;
static gint ett_q932_ros_ROS = -1;
static gint ett_q932_ros_Invoke = -1;
@@ -94,7 +94,7 @@ static gint ett_q932_ros_T_problem = -1;
static gint ett_q932_ros_InvokeId = -1;
/*--- End of included file: packet-q932-ros-ett.c ---*/
-#line 46 "../../asn1/q932-ros/packet-q932-ros-template.c"
+#line 46 "./asn1/q932-ros/packet-q932-ros-template.c"
static expert_field ei_ros_undecoded = EI_INIT;
@@ -113,7 +113,7 @@ static tvbuff_t *arg_next_tvb, *res_next_tvb, *err_next_tvb;
/*--- Included file: packet-q932-ros-fn.c ---*/
-#line 1 "../../asn1/q932-ros/packet-q932-ros-fn.c"
+#line 1 "./asn1/q932-ros/packet-q932-ros-fn.c"
static int
@@ -152,7 +152,7 @@ dissect_q932_ros_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
Code_choice, hf_index, ett_q932_ros_Code,
&actx->rose_ctx->d.code);
-#line 42 "../../asn1/q932-ros/q932-ros.cnf"
+#line 42 "./asn1/q932-ros/q932-ros.cnf"
actx->rose_ctx->d.code_item = actx->created_item;
return offset;
@@ -244,7 +244,7 @@ dissect_q932_ros_T_linkedId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_q932_ros_InvokeArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 68 "../../asn1/q932-ros/q932-ros.cnf"
+#line 68 "./asn1/q932-ros/q932-ros.cnf"
gint len;
len = tvb_reported_length_remaining(tvb, offset);
@@ -269,7 +269,7 @@ static const ber_sequence_t Invoke_sequence[] = {
static int
dissect_q932_ros_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 6 "../../asn1/ros/ros-inv.cnf"
+#line 6 "./asn1/ros/ros-inv.cnf"
dissector_handle_t arg_handle = NULL;
const gchar *descr = "";
@@ -278,7 +278,7 @@ dissect_q932_ros_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Invoke_sequence, hf_index, ett_q932_ros_Invoke);
-#line 11 "../../asn1/ros/ros-inv.cnf"
+#line 11 "./asn1/ros/ros-inv.cnf"
actx->rose_ctx->d.pdu = 1;
if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->arg_local_dissector_table) {
@@ -322,7 +322,7 @@ dissect_q932_ros_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_q932_ros_ResultArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 86 "../../asn1/q932-ros/q932-ros.cnf"
+#line 86 "./asn1/q932-ros/q932-ros.cnf"
gint len;
len = tvb_reported_length_remaining(tvb, offset);
@@ -361,7 +361,7 @@ static const ber_sequence_t ReturnResult_sequence[] = {
static int
dissect_q932_ros_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 6 "../../asn1/ros/ros-res.cnf"
+#line 6 "./asn1/ros/ros-res.cnf"
dissector_handle_t res_handle = NULL;
const gchar *descr = "";
@@ -371,7 +371,7 @@ dissect_q932_ros_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ReturnResult_sequence, hf_index, ett_q932_ros_ReturnResult);
-#line 12 "../../asn1/ros/ros-res.cnf"
+#line 12 "./asn1/ros/ros-res.cnf"
actx->rose_ctx->d.pdu = 2;
if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->res_local_dissector_table) {
@@ -417,7 +417,7 @@ dissect_q932_ros_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_q932_ros_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 105 "../../asn1/q932-ros/q932-ros.cnf"
+#line 105 "./asn1/q932-ros/q932-ros.cnf"
gint len;
@@ -442,7 +442,7 @@ static const ber_sequence_t ReturnError_sequence[] = {
static int
dissect_q932_ros_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 6 "../../asn1/ros/ros-err.cnf"
+#line 6 "./asn1/ros/ros-err.cnf"
dissector_handle_t err_handle = NULL;
const gchar *descr = "";
@@ -451,7 +451,7 @@ dissect_q932_ros_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ReturnError_sequence, hf_index, ett_q932_ros_ReturnError);
-#line 11 "../../asn1/ros/ros-err.cnf"
+#line 11 "./asn1/ros/ros-err.cnf"
actx->rose_ctx->d.pdu = 3;
if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->err_local_dissector_table) {
@@ -505,7 +505,7 @@ dissect_q932_ros_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&problem_val);
-#line 53 "../../asn1/q932-ros/q932-ros.cnf"
+#line 53 "./asn1/q932-ros/q932-ros.cnf"
g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_GeneralProblem_vals), ""), 64);
return offset;
@@ -530,7 +530,7 @@ dissect_q932_ros_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&problem_val);
-#line 55 "../../asn1/q932-ros/q932-ros.cnf"
+#line 55 "./asn1/q932-ros/q932-ros.cnf"
g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_InvokeProblem_vals), ""), 64);
return offset;
@@ -550,7 +550,7 @@ dissect_q932_ros_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&problem_val);
-#line 57 "../../asn1/q932-ros/q932-ros.cnf"
+#line 57 "./asn1/q932-ros/q932-ros.cnf"
g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_ReturnResultProblem_vals), ""), 64);
return offset;
@@ -572,7 +572,7 @@ dissect_q932_ros_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&problem_val);
-#line 59 "../../asn1/q932-ros/q932-ros.cnf"
+#line 59 "./asn1/q932-ros/q932-ros.cnf"
g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_ReturnErrorProblem_vals), ""), 64);
return offset;
@@ -613,7 +613,7 @@ static const ber_sequence_t Reject_sequence[] = {
static int
dissect_q932_ros_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 6 "../../asn1/ros/ros-rej.cnf"
+#line 6 "./asn1/ros/ros-rej.cnf"
const gchar *descr = "";
problem_str[0] = '\0';
@@ -621,7 +621,7 @@ dissect_q932_ros_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Reject_sequence, hf_index, ett_q932_ros_Reject);
-#line 10 "../../asn1/ros/ros-rej.cnf"
+#line 10 "./asn1/ros/ros-rej.cnf"
descr = wmem_strdup_printf(wmem_packet_scope(), "REJ: %s", problem_str);
if (actx->rose_ctx->apdu_depth >= 0)
@@ -653,7 +653,7 @@ static const ber_choice_t ROS_choice[] = {
static int
dissect_q932_ros_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 30 "../../asn1/q932-ros/q932-ros.cnf"
+#line 30 "./asn1/q932-ros/q932-ros.cnf"
/* will be moved to ROS_PDU when PDU function can be alternated from conformance file */
actx->rose_ctx = rose_ctx_tmp;
rose_ctx_clean_data(actx->rose_ctx);
@@ -677,7 +677,7 @@ static int dissect_ROS_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree
/*--- End of included file: packet-q932-ros-fn.c ---*/
-#line 63 "../../asn1/q932-ros/packet-q932-ros-template.c"
+#line 63 "./asn1/q932-ros/packet-q932-ros-template.c"
/*--- dissect_q932_ros -----------------------------------------------------*/
static int dissect_q932_ros(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
@@ -696,7 +696,7 @@ void proto_register_q932_ros(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-q932-ros-hfarr.c ---*/
-#line 1 "../../asn1/q932-ros/packet-q932-ros-hfarr.c"
+#line 1 "./asn1/q932-ros/packet-q932-ros-hfarr.c"
{ &hf_q932_ros_ROS_PDU,
{ "ROS", "q932.ros.ROS",
FT_UINT32, BASE_DEC, VALS(q932_ros_ROS_vals), 0,
@@ -795,14 +795,14 @@ void proto_register_q932_ros(void) {
"InvokeId_present", HFILL }},
/*--- End of included file: packet-q932-ros-hfarr.c ---*/
-#line 80 "../../asn1/q932-ros/packet-q932-ros-template.c"
+#line 80 "./asn1/q932-ros/packet-q932-ros-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-q932-ros-ettarr.c ---*/
-#line 1 "../../asn1/q932-ros/packet-q932-ros-ettarr.c"
+#line 1 "./asn1/q932-ros/packet-q932-ros-ettarr.c"
&ett_q932_ros_Code,
&ett_q932_ros_ROS,
&ett_q932_ros_Invoke,
@@ -815,7 +815,7 @@ void proto_register_q932_ros(void) {
&ett_q932_ros_InvokeId,
/*--- End of included file: packet-q932-ros-ettarr.c ---*/
-#line 85 "../../asn1/q932-ros/packet-q932-ros-template.c"
+#line 85 "./asn1/q932-ros/packet-q932-ros-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-q932.c b/epan/dissectors/packet-q932.c
index f4987644b4..33881270a0 100644
--- a/epan/dissectors/packet-q932.c
+++ b/epan/dissectors/packet-q932.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-q932.c */
-/* ../../tools/asn2wrs.py -b -p q932 -c ./q932.cnf -s ./packet-q932-template -D . -O ../../epan/dissectors Addressing-Data-Elements.asn Network-Facility-Extension.asn Network-Protocol-Profile-component.asn Interpretation-component.asn */
+/* asn2wrs.py -b -p q932 -c ./q932.cnf -s ./packet-q932-template -D . -O ../.. Addressing-Data-Elements.asn Network-Facility-Extension.asn Network-Protocol-Profile-component.asn Interpretation-component.asn */
/* Input file: packet-q932-template.c */
-#line 1 "../../asn1/q932/packet-q932-template.c"
+#line 1 "./asn1/q932/packet-q932-template.c"
/* packet-q932.c
* Routines for Q.932 packet dissection
* 2007 Tomas Kukosa
@@ -55,7 +55,7 @@ static int hf_q932_pp = -1;
static int hf_q932_nd = -1;
/*--- Included file: packet-q932-hf.c ---*/
-#line 1 "../../asn1/q932/packet-q932-hf.c"
+#line 1 "./asn1/q932/packet-q932-hf.c"
static int hf_q932_NetworkFacilityExtension_PDU = -1; /* NetworkFacilityExtension */
static int hf_q932_NetworkProtocolProfile_PDU = -1; /* NetworkProtocolProfile */
static int hf_q932_InterpretationComponent_PDU = -1; /* InterpretationComponent */
@@ -95,14 +95,14 @@ static int hf_q932_destinationEntity = -1; /* EntityType */
static int hf_q932_destinationEntityAddress = -1; /* AddressInformation */
/*--- End of included file: packet-q932-hf.c ---*/
-#line 49 "../../asn1/q932/packet-q932-template.c"
+#line 49 "./asn1/q932/packet-q932-template.c"
/* Initialize the subtree pointers */
static gint ett_q932 = -1;
static gint ett_q932_ie = -1;
/*--- Included file: packet-q932-ett.c ---*/
-#line 1 "../../asn1/q932/packet-q932-ett.c"
+#line 1 "./asn1/q932/packet-q932-ett.c"
static gint ett_q932_PresentedAddressScreened = -1;
static gint ett_q932_PresentedAddressUnscreened = -1;
static gint ett_q932_PresentedNumberScreened = -1;
@@ -118,7 +118,7 @@ static gint ett_q932_UserSpecifiedSubaddress = -1;
static gint ett_q932_NetworkFacilityExtension_U = -1;
/*--- End of included file: packet-q932-ett.c ---*/
-#line 54 "../../asn1/q932/packet-q932-template.c"
+#line 54 "./asn1/q932/packet-q932-template.c"
static expert_field ei_q932_dse_not_supported = EI_INIT;
static expert_field ei_q932_acse_not_supported = EI_INIT;
@@ -209,7 +209,7 @@ static const value_string str_nd[] = {
/*--- Included file: packet-q932-fn.c ---*/
-#line 1 "../../asn1/q932/packet-q932-fn.c"
+#line 1 "./asn1/q932/packet-q932-fn.c"
static int
@@ -716,7 +716,7 @@ static int dissect_InterpretationComponent_PDU(tvbuff_t *tvb _U_, packet_info *p
/*--- End of included file: packet-q932-fn.c ---*/
-#line 143 "../../asn1/q932/packet-q932-template.c"
+#line 143 "./asn1/q932/packet-q932-template.c"
/*--- dissect_q932_facility_ie -------------------------------------------------------*/
static void
@@ -888,7 +888,7 @@ void proto_register_q932(void) {
NULL, HFILL }},
/*--- Included file: packet-q932-hfarr.c ---*/
-#line 1 "../../asn1/q932/packet-q932-hfarr.c"
+#line 1 "./asn1/q932/packet-q932-hfarr.c"
{ &hf_q932_NetworkFacilityExtension_PDU,
{ "NetworkFacilityExtension", "q932.NetworkFacilityExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1039,7 +1039,7 @@ void proto_register_q932(void) {
"AddressInformation", HFILL }},
/*--- End of included file: packet-q932-hfarr.c ---*/
-#line 313 "../../asn1/q932/packet-q932-template.c"
+#line 313 "./asn1/q932/packet-q932-template.c"
};
/* List of subtrees */
@@ -1048,7 +1048,7 @@ void proto_register_q932(void) {
&ett_q932_ie,
/*--- Included file: packet-q932-ettarr.c ---*/
-#line 1 "../../asn1/q932/packet-q932-ettarr.c"
+#line 1 "./asn1/q932/packet-q932-ettarr.c"
&ett_q932_PresentedAddressScreened,
&ett_q932_PresentedAddressUnscreened,
&ett_q932_PresentedNumberScreened,
@@ -1064,7 +1064,7 @@ void proto_register_q932(void) {
&ett_q932_NetworkFacilityExtension_U,
/*--- End of included file: packet-q932-ettarr.c ---*/
-#line 320 "../../asn1/q932/packet-q932-template.c"
+#line 320 "./asn1/q932/packet-q932-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-q932.h b/epan/dissectors/packet-q932.h
index 361878bbc3..39799ae613 100644
--- a/epan/dissectors/packet-q932.h
+++ b/epan/dissectors/packet-q932.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-q932.h */
-/* ../../tools/asn2wrs.py -b -p q932 -c ./q932.cnf -s ./packet-q932-template -D . -O ../../epan/dissectors Addressing-Data-Elements.asn Network-Facility-Extension.asn Network-Protocol-Profile-component.asn Interpretation-component.asn */
+/* asn2wrs.py -b -p q932 -c ./q932.cnf -s ./packet-q932-template -D . -O ../.. Addressing-Data-Elements.asn Network-Facility-Extension.asn Network-Protocol-Profile-component.asn Interpretation-component.asn */
/* Input file: packet-q932-template.h */
-#line 1 "../../asn1/q932/packet-q932-template.h"
+#line 1 "./asn1/q932/packet-q932-template.h"
/* packet-q932.h
* Routines for Q.932 packet dissection
* 2007 Tomas Kukosa
@@ -34,7 +34,7 @@
/*--- Included file: packet-q932-exp.h ---*/
-#line 1 "../../asn1/q932/packet-q932-exp.h"
+#line 1 "./asn1/q932/packet-q932-exp.h"
extern const value_string q932_PresentedAddressScreened_vals[];
extern const value_string q932_PresentedAddressUnscreened_vals[];
WS_DLL_PUBLIC const value_string q932_PresentedNumberScreened_vals[];
@@ -53,7 +53,7 @@ extern int dissect_q932_ScreeningIndicator(gboolean implicit_tag _U_, tvbuff_t *
extern int dissect_q932_PresentationAllowedIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-q932-exp.h ---*/
-#line 28 "../../asn1/q932/packet-q932-template.h"
+#line 28 "./asn1/q932/packet-q932-template.h"
#endif /* PACKET_Q932_H */
diff --git a/epan/dissectors/packet-qsig.c b/epan/dissectors/packet-qsig.c
index 8ce5c74e45..acbeb5e39d 100644
--- a/epan/dissectors/packet-qsig.c
+++ b/epan/dissectors/packet-qsig.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-qsig.c */
-/* ../../tools/asn2wrs.py -c ./qsig.cnf -s ./packet-qsig-template -D . -O ../../epan/dissectors General-Error-List.asn qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn SYNC-SIG.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn */
+/* asn2wrs.py -c ./qsig.cnf -s ./packet-qsig-template -D . -O ../.. General-Error-List.asn qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn SYNC-SIG.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn */
/* Input file: packet-qsig-template.c */
-#line 1 "../../asn1/qsig/packet-qsig-template.c"
+#line 1 "./asn1/qsig/packet-qsig-template.c"
/* packet-qsig.c
* Routines for QSIG packet dissection
* 2007 Tomas Kukosa
@@ -278,7 +278,7 @@ static const gint32 op2srv_tab[] = {
static const value_string qsig_str_operation[] = {
/*--- Included file: packet-qsig-table10.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-table10.c"
+#line 1 "./asn1/qsig/packet-qsig-table10.c"
/* --- Module General-Error-List --- --- --- */
@@ -489,14 +489,14 @@ static const value_string qsig_str_operation[] = {
{ 120, "mIDMailboxID" },
/*--- End of included file: packet-qsig-table10.c ---*/
-#line 272 "../../asn1/qsig/packet-qsig-template.c"
+#line 272 "./asn1/qsig/packet-qsig-template.c"
{ 0, NULL}
};
static const value_string qsig_str_error[] = {
/*--- Included file: packet-qsig-table20.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-table20.c"
+#line 1 "./asn1/qsig/packet-qsig-table20.c"
/* --- Module General-Error-List --- --- --- */
@@ -682,7 +682,7 @@ static const value_string qsig_str_error[] = {
{ 1008, "unspecified" },
/*--- End of included file: packet-qsig-table20.c ---*/
-#line 277 "../../asn1/qsig/packet-qsig-template.c"
+#line 277 "./asn1/qsig/packet-qsig-template.c"
{ 0, NULL}
};
@@ -700,7 +700,7 @@ static int hf_qsig_tc = -1;
static int hf_qsig_pc = -1;
/*--- Included file: packet-qsig-hf.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-hf.c"
+#line 1 "./asn1/qsig/packet-qsig-hf.c"
/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
@@ -1577,7 +1577,7 @@ static int hf_qsig_mid_multipleExtension = -1; /* SEQUENCE_OF_Extension */
static int hf_qsig_mid_multipleExtension_item = -1; /* Extension */
/*--- End of included file: packet-qsig-hf.c ---*/
-#line 293 "../../asn1/qsig/packet-qsig-template.c"
+#line 293 "./asn1/qsig/packet-qsig-template.c"
static int *hf_qsig_ie_type_arr[] = {
NULL,
@@ -1596,7 +1596,7 @@ static gint ett_qsig_ie = -1;
static gint ett_qsig_unknown_extension = -1;
/*--- Included file: packet-qsig-ett.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-ett.c"
+#line 1 "./asn1/qsig/packet-qsig-ett.c"
/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
@@ -2037,7 +2037,7 @@ static gint ett_qsig_mid_MIDExtensions = -1;
static gint ett_qsig_mid_SEQUENCE_OF_Extension = -1;
/*--- End of included file: packet-qsig-ett.c ---*/
-#line 310 "../../asn1/qsig/packet-qsig-template.c"
+#line 310 "./asn1/qsig/packet-qsig-template.c"
static gint ett_cnq_PSS1InformationElement = -1;
static expert_field ei_qsig_unsupported_arg_type = EI_INIT;
@@ -2059,7 +2059,7 @@ static dissector_table_t extension_dissector_table;
/*--- Included file: packet-qsig-fn.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-fn.c"
+#line 1 "./asn1/qsig/packet-qsig-fn.c"
/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
@@ -2076,7 +2076,7 @@ dissect_qsig_T_extensionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_qsig_T_extensionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 144 "../../asn1/qsig/qsig.cnf"
+#line 144 "./asn1/qsig/qsig.cnf"
tvbuff_t *next_tvb;
next_tvb = tvb_new_subset_remaining(tvb, offset);
@@ -2104,7 +2104,7 @@ static const ber_sequence_t qsig_Extension_sequence[] = {
static int
dissect_qsig_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 141 "../../asn1/qsig/qsig.cnf"
+#line 141 "./asn1/qsig/qsig.cnf"
extension_oid = NULL;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -2117,7 +2117,7 @@ dissect_qsig_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_qsig_PSS1InformationElement_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 164 "../../asn1/qsig/qsig.cnf"
+#line 164 "./asn1/qsig/qsig.cnf"
tvbuff_t *out_tvb = NULL;
proto_tree *data_tree;
@@ -9205,7 +9205,7 @@ dissect_qsig_wtmau_DefinedIDs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_qsig_wtmau_T_param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 160 "../../asn1/qsig/qsig.cnf"
+#line 160 "./asn1/qsig/qsig.cnf"
@@ -11931,7 +11931,7 @@ static int dissect_qsig_mid_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
/*--- End of included file: packet-qsig-fn.c ---*/
-#line 330 "../../asn1/qsig/packet-qsig-template.c"
+#line 330 "./asn1/qsig/packet-qsig-template.c"
typedef struct _qsig_op_t {
gint32 opcode;
@@ -11942,7 +11942,7 @@ typedef struct _qsig_op_t {
static const qsig_op_t qsig_op_tab[] = {
/*--- Included file: packet-qsig-table11.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-table11.c"
+#line 1 "./asn1/qsig/packet-qsig-table11.c"
/* --- Module General-Error-List --- --- --- */
@@ -12153,7 +12153,7 @@ static const qsig_op_t qsig_op_tab[] = {
/* mIDMailboxID */ { 120, dissect_qsig_mid_MIDMailboxIDArg_PDU, dissect_qsig_mid_MIDDummyRes_PDU },
/*--- End of included file: packet-qsig-table11.c ---*/
-#line 339 "../../asn1/qsig/packet-qsig-template.c"
+#line 339 "./asn1/qsig/packet-qsig-template.c"
};
typedef struct _qsig_err_t {
@@ -12164,7 +12164,7 @@ typedef struct _qsig_err_t {
static const qsig_err_t qsig_err_tab[] = {
/*--- Included file: packet-qsig-table21.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-table21.c"
+#line 1 "./asn1/qsig/packet-qsig-table21.c"
/* --- Module General-Error-List --- --- --- */
@@ -12350,7 +12350,7 @@ static const qsig_err_t qsig_err_tab[] = {
/* unspecified */ { 1008, dissect_qsig_mid_Extension_PDU },
/*--- End of included file: packet-qsig-table21.c ---*/
-#line 348 "../../asn1/qsig/packet-qsig-template.c"
+#line 348 "./asn1/qsig/packet-qsig-template.c"
};
static const qsig_op_t *get_op(gint32 opcode) {
@@ -12671,7 +12671,7 @@ void proto_register_qsig(void) {
NULL, HFILL }},
/*--- Included file: packet-qsig-hfarr.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-hfarr.c"
+#line 1 "./asn1/qsig/packet-qsig-hfarr.c"
/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
@@ -15907,7 +15907,7 @@ void proto_register_qsig(void) {
NULL, HFILL }},
/*--- End of included file: packet-qsig-hfarr.c ---*/
-#line 667 "../../asn1/qsig/packet-qsig-template.c"
+#line 667 "./asn1/qsig/packet-qsig-template.c"
};
/* List of subtrees */
@@ -15917,7 +15917,7 @@ void proto_register_qsig(void) {
&ett_qsig_unknown_extension,
/*--- Included file: packet-qsig-ettarr.c ---*/
-#line 1 "../../asn1/qsig/packet-qsig-ettarr.c"
+#line 1 "./asn1/qsig/packet-qsig-ettarr.c"
/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
@@ -16358,7 +16358,7 @@ void proto_register_qsig(void) {
&ett_qsig_mid_SEQUENCE_OF_Extension,
/*--- End of included file: packet-qsig-ettarr.c ---*/
-#line 675 "../../asn1/qsig/packet-qsig-template.c"
+#line 675 "./asn1/qsig/packet-qsig-template.c"
&ett_cnq_PSS1InformationElement,
};
diff --git a/epan/dissectors/packet-qsig.h b/epan/dissectors/packet-qsig.h
index a52d5554f1..f24ed20097 100644
--- a/epan/dissectors/packet-qsig.h
+++ b/epan/dissectors/packet-qsig.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-qsig.h */
-/* ../../tools/asn2wrs.py -c ./qsig.cnf -s ./packet-qsig-template -D . -O ../../epan/dissectors General-Error-List.asn qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn SYNC-SIG.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn */
+/* asn2wrs.py -c ./qsig.cnf -s ./packet-qsig-template -D . -O ../.. General-Error-List.asn qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn SYNC-SIG.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn */
/* Input file: packet-qsig-template.h */
-#line 1 "../../asn1/qsig/packet-qsig-template.h"
+#line 1 "./asn1/qsig/packet-qsig-template.h"
/* packet-qsig.h
* Routines for QSIG packet dissection
* 2007 Tomas Kukosa
@@ -34,7 +34,7 @@
/*--- Included file: packet-qsig-exp.h ---*/
-#line 1 "../../asn1/qsig/packet-qsig-exp.h"
+#line 1 "./asn1/qsig/packet-qsig-exp.h"
/* --- Module General-Error-List --- --- --- */
@@ -129,7 +129,7 @@ WS_DLL_PUBLIC int dissect_qsig_na_Name(gboolean implicit_tag _U_, tvbuff_t *tvb
/*--- End of included file: packet-qsig-exp.h ---*/
-#line 28 "../../asn1/qsig/packet-qsig-template.h"
+#line 28 "./asn1/qsig/packet-qsig-template.h"
#endif /* PACKET_QSIG_H */
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c
index 51face76aa..7d8835b55d 100644
--- a/epan/dissectors/packet-ranap.c
+++ b/epan/dissectors/packet-ranap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ranap.c */
-/* ../../tools/asn2wrs.py -p ranap -c ./ranap.cnf -s ./packet-ranap-template -D . -O ../../epan/dissectors RANAP-CommonDataTypes.asn RANAP-Constants.asn RANAP-Containers.asn RANAP-IEs.asn RANAP-PDU-Contents.asn RANAP-PDU-Descriptions.asn */
+/* asn2wrs.py -p ranap -c ./ranap.cnf -s ./packet-ranap-template -D . -O ../.. RANAP-CommonDataTypes.asn RANAP-Constants.asn RANAP-Containers.asn RANAP-IEs.asn RANAP-PDU-Contents.asn RANAP-PDU-Descriptions.asn */
/* Input file: packet-ranap-template.c */
-#line 1 "../../asn1/ranap/packet-ranap-template.c"
+#line 1 "./asn1/ranap/packet-ranap-template.c"
/* packet-ranap.c
* Routines for UMTS Node B Application Part(RANAP) packet dissection
* Copyright 2005 - 2010, Anders Broman <anders.broman[AT]ericsson.com>
@@ -66,7 +66,7 @@
/*--- Included file: packet-ranap-val.h ---*/
-#line 1 "../../asn1/ranap/packet-ranap-val.h"
+#line 1 "./asn1/ranap/packet-ranap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -409,7 +409,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-ranap-val.h ---*/
-#line 60 "../../asn1/ranap/packet-ranap-template.c"
+#line 60 "./asn1/ranap/packet-ranap-template.c"
void proto_register_ranap(void);
void proto_reg_handoff_ranap(void);
@@ -428,7 +428,7 @@ static int hf_ranap_transportLayerAddress_nsap = -1;
/*--- Included file: packet-ranap-hf.c ---*/
-#line 1 "../../asn1/ranap/packet-ranap-hf.c"
+#line 1 "./asn1/ranap/packet-ranap-hf.c"
static int hf_ranap_AccuracyFulfilmentIndicator_PDU = -1; /* AccuracyFulfilmentIndicator */
static int hf_ranap_Alt_RAB_Parameters_PDU = -1; /* Alt_RAB_Parameters */
static int hf_ranap_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf_PDU = -1; /* Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf */
@@ -1147,7 +1147,7 @@ static int hf_ranap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_valu
static int hf_ranap_value = -1; /* T_value */
/*--- End of included file: packet-ranap-hf.c ---*/
-#line 77 "../../asn1/ranap/packet-ranap-template.c"
+#line 77 "./asn1/ranap/packet-ranap-template.c"
/* Initialize the subtree pointers */
static int ett_ranap = -1;
@@ -1156,7 +1156,7 @@ static int ett_ranap_TransportLayerAddress_nsap = -1;
/*--- Included file: packet-ranap-ett.c ---*/
-#line 1 "../../asn1/ranap/packet-ranap-ett.c"
+#line 1 "./asn1/ranap/packet-ranap-ett.c"
static gint ett_ranap_PrivateIE_ID = -1;
static gint ett_ranap_ProtocolIE_Container = -1;
static gint ett_ranap_ProtocolIE_Field = -1;
@@ -1483,7 +1483,7 @@ static gint ett_ranap_UnsuccessfulOutcome = -1;
static gint ett_ranap_Outcome = -1;
/*--- End of included file: packet-ranap-ett.c ---*/
-#line 84 "../../asn1/ranap/packet-ranap-template.c"
+#line 84 "./asn1/ranap/packet-ranap-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -1544,7 +1544,7 @@ static int dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvbuff_t *tv
/*--- Included file: packet-ranap-fn.c ---*/
-#line 1 "../../asn1/ranap/packet-ranap-fn.c"
+#line 1 "./asn1/ranap/packet-ranap-fn.c"
static const value_string ranap_Criticality_vals[] = {
{ 0, "reject" },
@@ -1663,7 +1663,7 @@ dissect_ranap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 93 "../../asn1/ranap/ranap.cnf"
+#line 93 "./asn1/ranap/ranap.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str_ext_const(ProcedureCode, &ranap_ProcedureCode_vals_ext,
"unknown message"));
@@ -1947,7 +1947,7 @@ dissect_ranap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &ProtocolIE_ID, FALSE);
-#line 77 "../../asn1/ranap/ranap.cnf"
+#line 77 "./asn1/ranap/ranap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &ranap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
}
@@ -2069,7 +2069,7 @@ static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = {
static int
dissect_ranap_ProtocolIE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 117 "../../asn1/ranap/ranap.cnf"
+#line 117 "./asn1/ranap/ranap.cnf"
static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
{ "lowerBound", ASN1_PAR_INTEGER },
{ "upperBound", ASN1_PAR_INTEGER },
@@ -2091,7 +2091,7 @@ static const per_sequence_t ProtocolIE_ContainerPairList_sequence_of[1] = {
static int
dissect_ranap_ProtocolIE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 133 "../../asn1/ranap/ranap.cnf"
+#line 133 "./asn1/ranap/ranap.cnf"
static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
{ "lowerBound", ASN1_PAR_INTEGER },
{ "upperBound", ASN1_PAR_INTEGER },
@@ -2660,7 +2660,7 @@ dissect_ranap_APN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
static int
dissect_ranap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 282 "../../asn1/ranap/ranap.cnf"
+#line 282 "./asn1/ranap/ranap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -3157,7 +3157,7 @@ dissect_ranap_AuthorisedPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ranap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 375 "../../asn1/ranap/ranap.cnf"
+#line 375 "./asn1/ranap/ranap.cnf"
tvbuff_t *value_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4, 4, FALSE, &value_tvb);
@@ -4589,7 +4589,7 @@ dissect_ranap_GlobalRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ranap_GTP_TEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 334 "../../asn1/ranap/ranap.cnf"
+#line 334 "./asn1/ranap/ranap.cnf"
tvbuff_t *parameter_tvb=NULL;
int saved_hf;
@@ -4772,7 +4772,7 @@ dissect_ranap_ImmediateMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ranap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 190 "../../asn1/ranap/ranap.cnf"
+#line 190 "./asn1/ranap/ranap.cnf"
tvbuff_t* imsi_tvb;
const char *digit_str;
sccp_msg_info_t *sccp_info;
@@ -5623,7 +5623,7 @@ dissect_ranap_LocationReportingTransferInformation(tvbuff_t *tvb _U_, int offset
static int
dissect_ranap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 270 "../../asn1/ranap/ranap.cnf"
+#line 270 "./asn1/ranap/ranap.cnf"
tvbuff_t *l3_info_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6043,7 +6043,7 @@ dissect_ranap_MSISDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_ranap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 215 "../../asn1/ranap/ranap.cnf"
+#line 215 "./asn1/ranap/ranap.cnf"
tvbuff_t *nas_pdu_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6081,7 +6081,7 @@ dissect_ranap_NAS_SynchronisationIndicator(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_ranap_NewBSS_To_OldBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 262 "../../asn1/ranap/ranap.cnf"
+#line 262 "./asn1/ranap/ranap.cnf"
tvbuff_t *bss_info_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6170,7 +6170,7 @@ dissect_ranap_Offload_RAB_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_ranap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 254 "../../asn1/ranap/ranap.cnf"
+#line 254 "./asn1/ranap/ranap.cnf"
tvbuff_t *bss_info_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -7336,7 +7336,7 @@ dissect_ranap_RNSAPRelocationParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_ranap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 224 "../../asn1/ranap/ranap.cnf"
+#line 224 "./asn1/ranap/ranap.cnf"
tvbuff_t *rrc_message_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -7448,7 +7448,7 @@ dissect_ranap_Service_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ranap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 360 "../../asn1/ranap/ranap.cnf"
+#line 360 "./asn1/ranap/ranap.cnf"
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
@@ -7525,7 +7525,7 @@ static const per_sequence_t SourceRNC_ToTargetRNC_TransparentContainer_sequence[
static int
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 346 "../../asn1/ranap/ranap.cnf"
+#line 346 "./asn1/ranap/ranap.cnf"
/* If SourceRNC-ToTargetRNC-TransparentContainer is called through
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU
ProtocolIE_ID may be unset
@@ -7764,7 +7764,7 @@ dissect_ranap_SRVCC_Operation_Possible(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_ranap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 370 "../../asn1/ranap/ranap.cnf"
+#line 370 "./asn1/ranap/ranap.cnf"
dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU );
@@ -7896,7 +7896,7 @@ dissect_ranap_TraceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ranap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 305 "../../asn1/ranap/ranap.cnf"
+#line 305 "./asn1/ranap/ranap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_item *item;
proto_tree *subtree, *nsap_tree;
@@ -7995,7 +7995,7 @@ dissect_ranap_UE_AggregateMaximumBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_ranap_UE_History_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 385 "../../asn1/ranap/ranap.cnf"
+#line 385 "./asn1/ranap/ranap.cnf"
tvbuff_t *value_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8262,7 +8262,7 @@ dissect_ranap_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ranap_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 143 "../../asn1/ranap/ranap.cnf"
+#line 143 "./asn1/ranap/ranap.cnf"
asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
asn1_param_push_integer(actx, 1);
asn1_param_push_integer(actx, maxNrOfRABs);
@@ -8278,7 +8278,7 @@ dissect_ranap_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_ranap_RAB_IE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 151 "../../asn1/ranap/ranap.cnf"
+#line 151 "./asn1/ranap/ranap.cnf"
asn1_stack_frame_push(actx, "ProtocolIE-ContainerPairList");
asn1_param_push_integer(actx, 1);
asn1_param_push_integer(actx, maxNrOfRABs);
@@ -8294,7 +8294,7 @@ dissect_ranap_RAB_IE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_ranap_IuSigConId_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 168 "../../asn1/ranap/ranap.cnf"
+#line 168 "./asn1/ranap/ranap.cnf"
asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
asn1_param_push_integer(actx, 1);
asn1_param_push_integer(actx, maxNrOfIuSigConIds);
@@ -8310,7 +8310,7 @@ dissect_ranap_IuSigConId_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_ranap_DirectTransfer_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 176 "../../asn1/ranap/ranap.cnf"
+#line 176 "./asn1/ranap/ranap.cnf"
asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
asn1_param_push_integer(actx, 1);
asn1_param_push_integer(actx, maxNrOfDTs);
@@ -13091,7 +13091,7 @@ static int dissect_RANAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- End of included file: packet-ranap-fn.c ---*/
-#line 143 "../../asn1/ranap/packet-ranap-template.c"
+#line 143 "./asn1/ranap/packet-ranap-template.c"
static int
dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -13278,7 +13278,7 @@ void proto_register_ranap(void) {
/*--- Included file: packet-ranap-hfarr.c ---*/
-#line 1 "../../asn1/ranap/packet-ranap-hfarr.c"
+#line 1 "./asn1/ranap/packet-ranap-hfarr.c"
{ &hf_ranap_AccuracyFulfilmentIndicator_PDU,
{ "AccuracyFulfilmentIndicator", "ranap.AccuracyFulfilmentIndicator",
FT_UINT32, BASE_DEC, VALS(ranap_AccuracyFulfilmentIndicator_vals), 0,
@@ -16145,7 +16145,7 @@ void proto_register_ranap(void) {
NULL, HFILL }},
/*--- End of included file: packet-ranap-hfarr.c ---*/
-#line 328 "../../asn1/ranap/packet-ranap-template.c"
+#line 328 "./asn1/ranap/packet-ranap-template.c"
};
/* List of subtrees */
@@ -16155,7 +16155,7 @@ void proto_register_ranap(void) {
&ett_ranap_TransportLayerAddress_nsap,
/*--- Included file: packet-ranap-ettarr.c ---*/
-#line 1 "../../asn1/ranap/packet-ranap-ettarr.c"
+#line 1 "./asn1/ranap/packet-ranap-ettarr.c"
&ett_ranap_PrivateIE_ID,
&ett_ranap_ProtocolIE_Container,
&ett_ranap_ProtocolIE_Field,
@@ -16482,7 +16482,7 @@ void proto_register_ranap(void) {
&ett_ranap_Outcome,
/*--- End of included file: packet-ranap-ettarr.c ---*/
-#line 336 "../../asn1/ranap/packet-ranap-template.c"
+#line 336 "./asn1/ranap/packet-ranap-template.c"
};
@@ -16534,7 +16534,7 @@ proto_reg_handoff_ranap(void)
initialized = TRUE;
/*--- Included file: packet-ranap-dis-tab.c ---*/
-#line 1 "../../asn1/ranap/packet-ranap-dis-tab.c"
+#line 1 "./asn1/ranap/packet-ranap-dis-tab.c"
dissector_add_uint("ranap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_ranap));
dissector_add_uint("ranap.ies", id_RAB_DataVolumeReportList, create_dissector_handle(dissect_RAB_DataVolumeReportList_PDU, proto_ranap));
dissector_add_uint("ranap.ies", id_RAB_ReleasedList_IuRelComp, create_dissector_handle(dissect_RAB_ReleasedList_IuRelComp_PDU, proto_ranap));
@@ -16865,7 +16865,7 @@ proto_reg_handoff_ranap(void)
/*--- End of included file: packet-ranap-dis-tab.c ---*/
-#line 386 "../../asn1/ranap/packet-ranap-template.c"
+#line 386 "./asn1/ranap/packet-ranap-template.c"
} else {
dissector_delete_uint("sccp.ssn", local_ranap_sccp_ssn, ranap_handle);
}
diff --git a/epan/dissectors/packet-ranap.h b/epan/dissectors/packet-ranap.h
index e5b80ecbe2..a9f66a989f 100644
--- a/epan/dissectors/packet-ranap.h
+++ b/epan/dissectors/packet-ranap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ranap.h */
-/* ../../tools/asn2wrs.py -p ranap -c ./ranap.cnf -s ./packet-ranap-template -D . -O ../../epan/dissectors RANAP-CommonDataTypes.asn RANAP-Constants.asn RANAP-Containers.asn RANAP-IEs.asn RANAP-PDU-Contents.asn RANAP-PDU-Descriptions.asn */
+/* asn2wrs.py -p ranap -c ./ranap.cnf -s ./packet-ranap-template -D . -O ../.. RANAP-CommonDataTypes.asn RANAP-Constants.asn RANAP-Containers.asn RANAP-IEs.asn RANAP-PDU-Contents.asn RANAP-PDU-Descriptions.asn */
/* Input file: packet-ranap-template.h */
-#line 1 "../../asn1/ranap/packet-ranap-template.h"
+#line 1 "./asn1/ranap/packet-ranap-template.h"
/* packet-ranap-template.h
* Routines for GSM Supplementary Services dissection
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
@@ -33,7 +33,7 @@
#define PACKET_RANAP_H
/*--- Included file: packet-ranap-exp.h ---*/
-#line 1 "../../asn1/ranap/packet-ranap-exp.h"
+#line 1 "./asn1/ranap/packet-ranap-exp.h"
extern const value_string ranap_Service_Handover_vals[];
int dissect_ranap_EncryptionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_ranap_IntegrityProtectionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -47,6 +47,6 @@ int dissect_ranap_TargetRNC_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pr
int dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-ranap-exp.h ---*/
-#line 27 "../../asn1/ranap/packet-ranap-template.h"
+#line 27 "./asn1/ranap/packet-ranap-template.h"
#endif /* PACKET_RANAP_H */
diff --git a/epan/dissectors/packet-rnsap.c b/epan/dissectors/packet-rnsap.c
index cb88e2b8e7..a72204f122 100644
--- a/epan/dissectors/packet-rnsap.c
+++ b/epan/dissectors/packet-rnsap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rnsap.c */
-/* ../../tools/asn2wrs.py -p rnsap -c ./rnsap.cnf -s ./packet-rnsap-template -D . -O ../../epan/dissectors RNSAP-CommonDataTypes.asn RNSAP-Constants.asn RNSAP-Containers.asn RNSAP-IEs.asn RNSAP-PDU-Contents.asn RNSAP-PDU-Descriptions.asn */
+/* asn2wrs.py -p rnsap -c ./rnsap.cnf -s ./packet-rnsap-template -D . -O ../.. RNSAP-CommonDataTypes.asn RNSAP-Constants.asn RNSAP-Containers.asn RNSAP-IEs.asn RNSAP-PDU-Contents.asn RNSAP-PDU-Descriptions.asn */
/* Input file: packet-rnsap-template.c */
-#line 1 "../../asn1/rnsap/packet-rnsap-template.c"
+#line 1 "./asn1/rnsap/packet-rnsap-template.c"
/* packet-rnsap.c
* Routines for dissecting Universal Mobile Telecommunications System (UMTS);
* UTRAN Iur interface Radio Network Subsystem
@@ -55,7 +55,7 @@
/*--- Included file: packet-rnsap-val.h ---*/
-#line 1 "../../asn1/rnsap/packet-rnsap-val.h"
+#line 1 "./asn1/rnsap/packet-rnsap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -1128,7 +1128,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-rnsap-val.h ---*/
-#line 49 "../../asn1/rnsap/packet-rnsap-template.c"
+#line 49 "./asn1/rnsap/packet-rnsap-template.c"
void proto_register_rnsap(void);
void proto_reg_handoff_rnsap(void);
@@ -1140,7 +1140,7 @@ static int proto_rnsap = -1;
/*--- Included file: packet-rnsap-hf.c ---*/
-#line 1 "../../asn1/rnsap/packet-rnsap-hf.c"
+#line 1 "./asn1/rnsap/packet-rnsap-hf.c"
static int hf_rnsap_ActivationInformation_PDU = -1; /* ActivationInformation */
static int hf_rnsap_Active_MBMS_Bearer_Service_ListFDD_PDU = -1; /* Active_MBMS_Bearer_Service_ListFDD */
static int hf_rnsap_Active_MBMS_Bearer_Service_ListFDD_PFL_PDU = -1; /* Active_MBMS_Bearer_Service_ListFDD_PFL */
@@ -3865,14 +3865,14 @@ static int hf_rnsap_value_04 = -1; /* UnsuccessfulOutcome_value *
static int hf_rnsap_value_05 = -1; /* Outcome_value */
/*--- End of included file: packet-rnsap-hf.c ---*/
-#line 59 "../../asn1/rnsap/packet-rnsap-template.c"
+#line 59 "./asn1/rnsap/packet-rnsap-template.c"
/* Initialize the subtree pointers */
static int ett_rnsap = -1;
/*--- Included file: packet-rnsap-ett.c ---*/
-#line 1 "../../asn1/rnsap/packet-rnsap-ett.c"
+#line 1 "./asn1/rnsap/packet-rnsap-ett.c"
static gint ett_rnsap_PrivateIE_ID = -1;
static gint ett_rnsap_ProcedureID = -1;
static gint ett_rnsap_TransactionID = -1;
@@ -5150,7 +5150,7 @@ static gint ett_rnsap_UnsuccessfulOutcome = -1;
static gint ett_rnsap_Outcome = -1;
/*--- End of included file: packet-rnsap-ett.c ---*/
-#line 64 "../../asn1/rnsap/packet-rnsap-template.c"
+#line 64 "./asn1/rnsap/packet-rnsap-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -5176,7 +5176,7 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
/*--- Included file: packet-rnsap-fn.c ---*/
-#line 1 "../../asn1/rnsap/packet-rnsap-fn.c"
+#line 1 "./asn1/rnsap/packet-rnsap-fn.c"
static const value_string rnsap_Criticality_vals[] = {
{ 0, "reject" },
@@ -5304,7 +5304,7 @@ dissect_rnsap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 82 "../../asn1/rnsap/rnsap.cnf"
+#line 82 "./asn1/rnsap/rnsap.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str_ext_const(ProcedureCode, &rnsap_ProcedureCode_vals_ext,
"unknown message"));
@@ -5338,7 +5338,7 @@ static const per_sequence_t ProcedureID_sequence[] = {
static int
dissect_rnsap_ProcedureID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 89 "../../asn1/rnsap/rnsap.cnf"
+#line 89 "./asn1/rnsap/rnsap.cnf"
ProcedureCode = 0xFFFF;
ddMode = 0xFFFF;
ProcedureID = NULL;
@@ -5346,7 +5346,7 @@ dissect_rnsap_ProcedureID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rnsap_ProcedureID, ProcedureID_sequence);
-#line 95 "../../asn1/rnsap/rnsap.cnf"
+#line 95 "./asn1/rnsap/rnsap.cnf"
ProcedureID = wmem_strdup_printf(wmem_packet_scope(), "%s/%s",
val_to_str_ext(ProcedureCode, &rnsap_ProcedureCode_vals_ext, "unknown(%u)"),
val_to_str(ddMode, rnsap_DdMode_vals, "unknown(%u)"));
@@ -22902,7 +22902,7 @@ dissect_rnsap_List_Of_PLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_rnsap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 108 "../../asn1/rnsap/rnsap.cnf"
+#line 108 "./asn1/rnsap/rnsap.cnf"
tvbuff_t *parameter_tvb;
dissector_handle_t parameter_handle = NULL;
@@ -43102,7 +43102,7 @@ static int dissect_NULL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-rnsap-fn.c ---*/
-#line 88 "../../asn1/rnsap/packet-rnsap-template.c"
+#line 88 "./asn1/rnsap/packet-rnsap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -43161,7 +43161,7 @@ void proto_register_rnsap(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-rnsap-hfarr.c ---*/
-#line 1 "../../asn1/rnsap/packet-rnsap-hfarr.c"
+#line 1 "./asn1/rnsap/packet-rnsap-hfarr.c"
{ &hf_rnsap_ActivationInformation_PDU,
{ "ActivationInformation", "rnsap.ActivationInformation",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -54052,7 +54052,7 @@ void proto_register_rnsap(void) {
"Outcome_value", HFILL }},
/*--- End of included file: packet-rnsap-hfarr.c ---*/
-#line 145 "../../asn1/rnsap/packet-rnsap-template.c"
+#line 145 "./asn1/rnsap/packet-rnsap-template.c"
};
/* List of subtrees */
@@ -54060,7 +54060,7 @@ void proto_register_rnsap(void) {
&ett_rnsap,
/*--- Included file: packet-rnsap-ettarr.c ---*/
-#line 1 "../../asn1/rnsap/packet-rnsap-ettarr.c"
+#line 1 "./asn1/rnsap/packet-rnsap-ettarr.c"
&ett_rnsap_PrivateIE_ID,
&ett_rnsap_ProcedureID,
&ett_rnsap_TransactionID,
@@ -55338,7 +55338,7 @@ void proto_register_rnsap(void) {
&ett_rnsap_Outcome,
/*--- End of included file: packet-rnsap-ettarr.c ---*/
-#line 151 "../../asn1/rnsap/packet-rnsap-template.c"
+#line 151 "./asn1/rnsap/packet-rnsap-template.c"
};
@@ -55376,7 +55376,7 @@ proto_reg_handoff_rnsap(void)
/*--- Included file: packet-rnsap-dis-tab.c ---*/
-#line 1 "../../asn1/rnsap/packet-rnsap-dis-tab.c"
+#line 1 "./asn1/rnsap/packet-rnsap-dis-tab.c"
dissector_add_uint("rnsap.ies", id_RTLoadValue, create_dissector_handle(dissect_RTLoadValue_PDU, proto_rnsap));
dissector_add_uint("rnsap.ies", id_NRTLoadInformationValue, create_dissector_handle(dissect_NRTLoadInformationValue_PDU, proto_rnsap));
dissector_add_uint("rnsap.ies", id_UpPTSInterferenceValue, create_dissector_handle(dissect_UpPTSInterferenceValue_PDU, proto_rnsap));
@@ -56171,7 +56171,7 @@ proto_reg_handoff_rnsap(void)
/*--- End of included file: packet-rnsap-dis-tab.c ---*/
-#line 187 "../../asn1/rnsap/packet-rnsap-template.c"
+#line 187 "./asn1/rnsap/packet-rnsap-template.c"
}
diff --git a/epan/dissectors/packet-ros.c b/epan/dissectors/packet-ros.c
index 3b8dd27e3a..d0c0a180e8 100644
--- a/epan/dissectors/packet-ros.c
+++ b/epan/dissectors/packet-ros.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ros.c */
-/* ../../tools/asn2wrs.py -b -p ros -c ./ros.cnf -s ./packet-ros-template -D . -O ../../epan/dissectors ros.asn Remote-Operations-Information-Objects.asn */
+/* asn2wrs.py -b -p ros -c ./ros.cnf -s ./packet-ros-template -D . -O ../.. ros.asn Remote-Operations-Information-Objects.asn */
/* Input file: packet-ros-template.c */
-#line 1 "../../asn1/ros/packet-ros-template.c"
+#line 1 "./asn1/ros/packet-ros-template.c"
/* packet-ros_asn1.c
* Routines for ROS packet dissection
* Graeme Lunt 2005
@@ -79,7 +79,7 @@ static int hf_ros_time = -1;
/*--- Included file: packet-ros-hf.c ---*/
-#line 1 "../../asn1/ros/packet-ros-hf.c"
+#line 1 "./asn1/ros/packet-ros-hf.c"
static int hf_ros_invoke = -1; /* Invoke */
static int hf_ros_returnResult = -1; /* ReturnResult */
static int hf_ros_returnError = -1; /* ReturnError */
@@ -109,7 +109,7 @@ static int hf_ros_local = -1; /* INTEGER */
static int hf_ros_global = -1; /* OBJECT_IDENTIFIER */
/*--- End of included file: packet-ros-hf.c ---*/
-#line 73 "../../asn1/ros/packet-ros-template.c"
+#line 73 "./asn1/ros/packet-ros-template.c"
/* Initialize the subtree pointers */
static gint ett_ros = -1;
@@ -124,7 +124,7 @@ static gint ett_ros_unbind_result = -1;
static gint ett_ros_unbind_error = -1;
/*--- Included file: packet-ros-ett.c ---*/
-#line 1 "../../asn1/ros/packet-ros-ett.c"
+#line 1 "./asn1/ros/packet-ros-ett.c"
static gint ett_ros_ROS = -1;
static gint ett_ros_Invoke = -1;
static gint ett_ros_ReturnResult = -1;
@@ -136,7 +136,7 @@ static gint ett_ros_InvokeId = -1;
static gint ett_ros_Code = -1;
/*--- End of included file: packet-ros-ett.c ---*/
-#line 86 "../../asn1/ros/packet-ros-template.c"
+#line 86 "./asn1/ros/packet-ros-template.c"
static expert_field ei_ros_dissector_oid_not_implemented = EI_INIT;
static expert_field ei_ros_unknown_ros_pdu = EI_INIT;
@@ -425,7 +425,7 @@ ros_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
/*--- Included file: packet-ros-fn.c ---*/
-#line 1 "../../asn1/ros/packet-ros-fn.c"
+#line 1 "./asn1/ros/packet-ros-fn.c"
static int
@@ -491,7 +491,7 @@ dissect_ros_OperationCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_ros_T_argument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 30 "../../asn1/ros/ros.cnf"
+#line 30 "./asn1/ros/ros.cnf"
char *oid;
proto_tree* subtree;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -535,7 +535,7 @@ dissect_ros_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_ros_OperationResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 48 "../../asn1/ros/ros.cnf"
+#line 48 "./asn1/ros/ros.cnf"
char *oid;
proto_tree* subtree;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -602,7 +602,7 @@ dissect_ros_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_ros_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 66 "../../asn1/ros/ros.cnf"
+#line 66 "./asn1/ros/ros.cnf"
char *oid;
proto_tree* subtree;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -652,7 +652,7 @@ static const value_string ros_GeneralProblem_vals[] = {
static int
dissect_ros_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 171 "../../asn1/ros/ros.cnf"
+#line 171 "./asn1/ros/ros.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -682,7 +682,7 @@ static const value_string ros_InvokeProblem_vals[] = {
static int
dissect_ros_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 181 "../../asn1/ros/ros.cnf"
+#line 181 "./asn1/ros/ros.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -707,7 +707,7 @@ static const value_string ros_ReturnResultProblem_vals[] = {
static int
dissect_ros_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 191 "../../asn1/ros/ros.cnf"
+#line 191 "./asn1/ros/ros.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -734,7 +734,7 @@ static const value_string ros_ReturnErrorProblem_vals[] = {
static int
dissect_ros_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 201 "../../asn1/ros/ros.cnf"
+#line 201 "./asn1/ros/ros.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -793,7 +793,7 @@ dissect_ros_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_ros_T_reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 164 "../../asn1/ros/ros.cnf"
+#line 164 "./asn1/ros/ros.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO, "Reject");
offset = dissect_ros_Reject(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -807,7 +807,7 @@ dissect_ros_T_reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_ros_T_bind_invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 84 "../../asn1/ros/ros.cnf"
+#line 84 "./asn1/ros/ros.cnf"
char *oid;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -829,7 +829,7 @@ dissect_ros_T_bind_invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_ros_T_bind_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 97 "../../asn1/ros/ros.cnf"
+#line 97 "./asn1/ros/ros.cnf"
char *oid;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -851,7 +851,7 @@ dissect_ros_T_bind_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_ros_T_bind_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 110 "../../asn1/ros/ros.cnf"
+#line 110 "./asn1/ros/ros.cnf"
char *oid;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -874,7 +874,7 @@ dissect_ros_T_bind_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_ros_T_unbind_invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 124 "../../asn1/ros/ros.cnf"
+#line 124 "./asn1/ros/ros.cnf"
char *oid;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -897,7 +897,7 @@ dissect_ros_T_unbind_invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ros_T_unbind_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 138 "../../asn1/ros/ros.cnf"
+#line 138 "./asn1/ros/ros.cnf"
char *oid;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -919,7 +919,7 @@ dissect_ros_T_unbind_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_ros_T_unbind_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 151 "../../asn1/ros/ros.cnf"
+#line 151 "./asn1/ros/ros.cnf"
char *oid;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE *)actx->private_data;
@@ -1008,7 +1008,7 @@ dissect_ros_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, a
/*--- End of included file: packet-ros-fn.c ---*/
-#line 373 "../../asn1/ros/packet-ros-template.c"
+#line 373 "./asn1/ros/packet-ros-template.c"
/*
* Dissect ROS PDUs inside a PPDU.
@@ -1119,7 +1119,7 @@ void proto_register_ros(void) {
/*--- Included file: packet-ros-hfarr.c ---*/
-#line 1 "../../asn1/ros/packet-ros-hfarr.c"
+#line 1 "./asn1/ros/packet-ros-hfarr.c"
{ &hf_ros_invoke,
{ "invoke", "ros.invoke_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1230,7 +1230,7 @@ void proto_register_ros(void) {
"OBJECT_IDENTIFIER", HFILL }},
/*--- End of included file: packet-ros-hfarr.c ---*/
-#line 482 "../../asn1/ros/packet-ros-template.c"
+#line 482 "./asn1/ros/packet-ros-template.c"
};
/* List of subtrees */
@@ -1248,7 +1248,7 @@ void proto_register_ros(void) {
/*--- Included file: packet-ros-ettarr.c ---*/
-#line 1 "../../asn1/ros/packet-ros-ettarr.c"
+#line 1 "./asn1/ros/packet-ros-ettarr.c"
&ett_ros_ROS,
&ett_ros_Invoke,
&ett_ros_ReturnResult,
@@ -1260,7 +1260,7 @@ void proto_register_ros(void) {
&ett_ros_Code,
/*--- End of included file: packet-ros-ettarr.c ---*/
-#line 498 "../../asn1/ros/packet-ros-template.c"
+#line 498 "./asn1/ros/packet-ros-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-ros.h b/epan/dissectors/packet-ros.h
index 69f2870aa3..a3ff72d23f 100644
--- a/epan/dissectors/packet-ros.h
+++ b/epan/dissectors/packet-ros.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ros.h */
-/* ../../tools/asn2wrs.py -b -p ros -c ./ros.cnf -s ./packet-ros-template -D . -O ../../epan/dissectors ros.asn Remote-Operations-Information-Objects.asn */
+/* asn2wrs.py -b -p ros -c ./ros.cnf -s ./packet-ros-template -D . -O ../.. ros.asn Remote-Operations-Information-Objects.asn */
/* Input file: packet-ros-template.h */
-#line 1 "../../asn1/ros/packet-ros-template.h"
+#line 1 "./asn1/ros/packet-ros-template.h"
/* packet-ros.h
* Routines for ROS packet dissection
* Graeme Lunt 2005
@@ -34,7 +34,7 @@
/*--- Included file: packet-ros-exp.h ---*/
-#line 1 "../../asn1/ros/packet-ros-exp.h"
+#line 1 "./asn1/ros/packet-ros-exp.h"
extern const value_string ros_ROS_vals[];
extern const value_string ros_InvokeId_vals[];
extern const value_string ros_Code_vals[];
@@ -43,7 +43,7 @@ int dissect_ros_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
int dissect_ros_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-ros-exp.h ---*/
-#line 28 "../../asn1/ros/packet-ros-template.h"
+#line 28 "./asn1/ros/packet-ros-template.h"
# include "packet-ses.h"
diff --git a/epan/dissectors/packet-rrc.c b/epan/dissectors/packet-rrc.c
index 0c111181f3..661bcdc5b1 100644
--- a/epan/dissectors/packet-rrc.c
+++ b/epan/dissectors/packet-rrc.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rrc.c */
-/* ../../tools/asn2wrs.py -p rrc -c ./rrc.cnf -s ./packet-rrc-template -D . -O ../../epan/dissectors Class-definitions.asn PDU-definitions.asn InformationElements.asn Constant-definitions.asn Internode-definitions.asn */
+/* asn2wrs.py -p rrc -c ./rrc.cnf -s ./packet-rrc-template -D . -O ../.. Class-definitions.asn PDU-definitions.asn InformationElements.asn Constant-definitions.asn Internode-definitions.asn */
/* Input file: packet-rrc-template.c */
-#line 1 "../../asn1/rrc/packet-rrc-template.c"
+#line 1 "./asn1/rrc/packet-rrc-template.c"
/* packet-rrc.c
* Routines for Universal Mobile Telecommunications System (UMTS);
* Radio Resource Control (RRC) protocol specification
@@ -103,7 +103,7 @@ static int dissect_SysInfoType22_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tr
/* Include constants */
/*--- Included file: packet-rrc-val.h ---*/
-#line 1 "../../asn1/rrc/packet-rrc-val.h"
+#line 1 "./asn1/rrc/packet-rrc-val.h"
#define hiPDSCHidentities 64
#define hiPUSCHidentities 64
#define hiRM 256
@@ -300,14 +300,14 @@ static int dissect_SysInfoType22_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tr
#define maxWLANs 64
/*--- End of included file: packet-rrc-val.h ---*/
-#line 97 "../../asn1/rrc/packet-rrc-template.c"
+#line 97 "./asn1/rrc/packet-rrc-template.c"
/* Initialize the protocol and registered fields */
int proto_rrc = -1;
static int hf_test;
/*--- Included file: packet-rrc-hf.c ---*/
-#line 1 "../../asn1/rrc/packet-rrc-hf.c"
+#line 1 "./asn1/rrc/packet-rrc-hf.c"
static int hf_rrc_DL_DCCH_Message_PDU = -1; /* DL_DCCH_Message */
static int hf_rrc_UL_DCCH_Message_PDU = -1; /* UL_DCCH_Message */
static int hf_rrc_DL_CCCH_Message_PDU = -1; /* DL_CCCH_Message */
@@ -11005,14 +11005,14 @@ static int hf_rrc_GsmSecurityCapability_a5_2 = -1;
static int hf_rrc_GsmSecurityCapability_a5_1 = -1;
/*--- End of included file: packet-rrc-hf.c ---*/
-#line 102 "../../asn1/rrc/packet-rrc-template.c"
+#line 102 "./asn1/rrc/packet-rrc-template.c"
/* Initialize the subtree pointers */
static int ett_rrc = -1;
/*--- Included file: packet-rrc-ett.c ---*/
-#line 1 "../../asn1/rrc/packet-rrc-ett.c"
+#line 1 "./asn1/rrc/packet-rrc-ett.c"
static gint ett_rrc_DL_DCCH_Message = -1;
static gint ett_rrc_DL_DCCH_MessageType = -1;
static gint ett_rrc_UL_DCCH_Message = -1;
@@ -17826,7 +17826,7 @@ static gint ett_rrc_UE_RadioAccessCapability_r6 = -1;
static gint ett_rrc_UL_RFC3095_Context = -1;
/*--- End of included file: packet-rrc-ett.c ---*/
-#line 107 "../../asn1/rrc/packet-rrc-template.c"
+#line 107 "./asn1/rrc/packet-rrc-template.c"
static gint ett_rrc_eutraFeatureGroupIndicators = -1;
static gint ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo = -1;
@@ -17916,7 +17916,7 @@ static void rrc_free_value(gpointer value ){
}
/*--- Included file: packet-rrc-fn.c ---*/
-#line 1 "../../asn1/rrc/packet-rrc-fn.c"
+#line 1 "./asn1/rrc/packet-rrc-fn.c"
/*--- PDUs declarations ---*/
static int dissect_CellUpdate_r3_add_ext_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_CellUpdateConfirm_r7_add_ext_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
@@ -18156,7 +18156,7 @@ dissect_rrc_ActivationTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_rrc_RB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 918 "../../asn1/rrc/rrc.cnf"
+#line 918 "./asn1/rrc/rrc.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 32U, &rbid, FALSE);
@@ -18173,7 +18173,7 @@ dissect_rrc_RB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_rrc_RLC_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 924 "../../asn1/rrc/rrc.cnf"
+#line 924 "./asn1/rrc/rrc.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 4095U, &activation_frame, FALSE);
@@ -18193,7 +18193,7 @@ static const per_sequence_t RB_ActivationTimeInfo_sequence[] = {
static int
dissect_rrc_RB_ActivationTimeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 896 "../../asn1/rrc/rrc.cnf"
+#line 896 "./asn1/rrc/rrc.cnf"
fp_info *fpinf;
rrc_ciphering_info * c_inf;
@@ -18344,7 +18344,7 @@ dissect_rrc_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_rrc_NAS_SystemInformationGSM_MAP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 719 "../../asn1/rrc/rrc.cnf"
+#line 719 "./asn1/rrc/rrc.cnf"
tvbuff_t *nas_sys_info_gsm_map_tvb = NULL;
guint32 length;
proto_tree *subtree;
@@ -18388,7 +18388,7 @@ dissect_rrc_NAS_SystemInformationGSM_MAP(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_rrc_T_cn_CommonGSM_MAP_NAS_SysInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 703 "../../asn1/rrc/rrc.cnf"
+#line 703 "./asn1/rrc/rrc.cnf"
actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1);
offset = dissect_rrc_NAS_SystemInformationGSM_MAP(tvb, offset, actx, tree, hf_index);
@@ -18408,7 +18408,7 @@ static const value_string rrc_CN_DomainIdentity_vals[] = {
static int
dissect_rrc_CN_DomainIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 697 "../../asn1/rrc/rrc.cnf"
+#line 697 "./asn1/rrc/rrc.cnf"
guint32 nas_sys_info_gsm_map;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2, &nas_sys_info_gsm_map, FALSE, 0, NULL);
@@ -22276,7 +22276,7 @@ dissect_rrc_T_r3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
static int
dissect_rrc_H_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 826 "../../asn1/rrc/rrc.cnf"
+#line 826 "./asn1/rrc/rrc.cnf"
tvbuff_t *hrnti_tvb;
struct rrc_info *rrcinf;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -22285,7 +22285,7 @@ dissect_rrc_H_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
-#line 831 "../../asn1/rrc/rrc.cnf"
+#line 831 "./asn1/rrc/rrc.cnf"
rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0);
if (!rrcinf) {
rrcinf = wmem_new0(wmem_file_scope(), struct rrc_info);
@@ -22311,7 +22311,7 @@ dissect_rrc_E_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
static int
dissect_rrc_T_cn_CommonGSM_MAP_NAS_SysInfo_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 707 "../../asn1/rrc/rrc.cnf"
+#line 707 "./asn1/rrc/rrc.cnf"
actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1);
offset = dissect_rrc_NAS_SystemInformationGSM_MAP(tvb, offset, actx, tree, hf_index);
@@ -32897,7 +32897,7 @@ static const per_choice_t ActiveSetUpdate_choice[] = {
static int
dissect_rrc_ActiveSetUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 175 "../../asn1/rrc/rrc.cnf"
+#line 175 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdate");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_ActiveSetUpdate, ActiveSetUpdate_choice,
@@ -38092,7 +38092,7 @@ static const per_choice_t AssistanceDataDelivery_choice[] = {
static int
dissect_rrc_AssistanceDataDelivery(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 187 "../../asn1/rrc/rrc.cnf"
+#line 187 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "AssistanceDataDelivery");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_AssistanceDataDelivery, AssistanceDataDelivery_choice,
@@ -38333,7 +38333,7 @@ dissect_rrc_CellChangeOrderFromUTRAN_r3_IEs(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_rrc_GERAN_SystemInfoBlock(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 568 "../../asn1/rrc/rrc.cnf"
+#line 568 "./asn1/rrc/rrc.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -38508,7 +38508,7 @@ static const per_choice_t CellChangeOrderFromUTRAN_choice[] = {
static int
dissect_rrc_CellChangeOrderFromUTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 191 "../../asn1/rrc/rrc.cnf"
+#line 191 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellChangeOrderFromUTRAN");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_CellChangeOrderFromUTRAN, CellChangeOrderFromUTRAN_choice,
@@ -45562,7 +45562,7 @@ dissect_rrc_RLC_Info_r5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_rrc_MAC_d_FlowIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 823 "../../asn1/rrc/rrc.cnf"
+#line 823 "./asn1/rrc/rrc.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 7U, &flowd, FALSE);
@@ -45610,7 +45610,7 @@ static const per_choice_t DL_TransportChannelType_r5_choice[] = {
static int
dissect_rrc_DL_TransportChannelType_r5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 752 "../../asn1/rrc/rrc.cnf"
+#line 752 "./asn1/rrc/rrc.cnf"
guint *flowd_p;
guint *cur_val=NULL;
@@ -49084,7 +49084,7 @@ static const per_choice_t DL_TransportChannelType_r7_choice[] = {
static int
dissect_rrc_DL_TransportChannelType_r7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 787 "../../asn1/rrc/rrc.cnf"
+#line 787 "./asn1/rrc/rrc.cnf"
guint *flowd_p;
guint *cur_val=NULL;
@@ -62726,7 +62726,7 @@ static const per_choice_t CellUpdateConfirm_choice[] = {
static int
dissect_rrc_CellUpdateConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 211 "../../asn1/rrc/rrc.cnf"
+#line 211 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_CellUpdateConfirm, CellUpdateConfirm_choice,
@@ -62879,7 +62879,7 @@ static const per_choice_t CounterCheck_choice[] = {
static int
dissect_rrc_CounterCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 215 "../../asn1/rrc/rrc.cnf"
+#line 215 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheck");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_CounterCheck, CounterCheck_choice,
@@ -62895,7 +62895,7 @@ dissect_rrc_CounterCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_rrc_NAS_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 157 "../../asn1/rrc/rrc.cnf"
+#line 157 "./asn1/rrc/rrc.cnf"
tvbuff_t *nas_message_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -63012,7 +63012,7 @@ static const per_choice_t DownlinkDirectTransfer_choice[] = {
static int
dissect_rrc_DownlinkDirectTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 223 "../../asn1/rrc/rrc.cnf"
+#line 223 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "DownlinkDirectTransfer");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_DownlinkDirectTransfer, DownlinkDirectTransfer_choice,
@@ -63031,7 +63031,7 @@ static const per_sequence_t T_single_GSM_Message_r3_sequence[] = {
static int
dissect_rrc_T_single_GSM_Message_r3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 537 "../../asn1/rrc/rrc.cnf"
+#line 537 "./asn1/rrc/rrc.cnf"
tvbuff_t *gsm_message_tvb=NULL;
guint bits_remaining, whole_octets_remaining;
@@ -63057,7 +63057,7 @@ dissect_rrc_T_single_GSM_Message_r3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_rrc_GSM_MessageList_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 529 "../../asn1/rrc/rrc.cnf"
+#line 529 "./asn1/rrc/rrc.cnf"
tvbuff_t *gsm_messagelist_tvb=NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -63317,7 +63317,7 @@ static const per_sequence_t T_single_GSM_Message_r6_sequence[] = {
static int
dissect_rrc_T_single_GSM_Message_r6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 552 "../../asn1/rrc/rrc.cnf"
+#line 552 "./asn1/rrc/rrc.cnf"
tvbuff_t *gsm_message_tvb=NULL;
guint bits_remaining, whole_octets_remaining;
@@ -63525,7 +63525,7 @@ static const per_choice_t HandoverFromUTRANCommand_GSM_choice[] = {
static int
dissect_rrc_HandoverFromUTRANCommand_GSM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 247 "../../asn1/rrc/rrc.cnf"
+#line 247 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-GSM");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_HandoverFromUTRANCommand_GSM, HandoverFromUTRANCommand_GSM_choice,
@@ -63679,7 +63679,7 @@ static const per_choice_t HandoverFromUTRANCommand_CDMA2000_choice[] = {
static int
dissect_rrc_HandoverFromUTRANCommand_CDMA2000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 251 "../../asn1/rrc/rrc.cnf"
+#line 251 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-CDMA2000");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_HandoverFromUTRANCommand_CDMA2000, HandoverFromUTRANCommand_CDMA2000_choice,
@@ -76649,7 +76649,7 @@ static const per_choice_t MeasurementControl_choice[] = {
static int
dissect_rrc_MeasurementControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 299 "../../asn1/rrc/rrc.cnf"
+#line 299 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementControl");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_MeasurementControl, MeasurementControl_choice,
@@ -76741,7 +76741,7 @@ static const per_sequence_t PagingType2_sequence[] = {
static int
dissect_rrc_PagingType2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 315 "../../asn1/rrc/rrc.cnf"
+#line 315 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "PagingType2");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_PagingType2, PagingType2_sequence);
@@ -78750,7 +78750,7 @@ static const per_choice_t PhysicalChannelReconfiguration_choice[] = {
static int
dissect_rrc_PhysicalChannelReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 319 "../../asn1/rrc/rrc.cnf"
+#line 319 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfiguration");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_PhysicalChannelReconfiguration, PhysicalChannelReconfiguration_choice,
@@ -80054,7 +80054,7 @@ static const per_choice_t PhysicalSharedChannelAllocation_choice[] = {
static int
dissect_rrc_PhysicalSharedChannelAllocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 331 "../../asn1/rrc/rrc.cnf"
+#line 331 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalSharedChannelAllocation");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_PhysicalSharedChannelAllocation, PhysicalSharedChannelAllocation_choice,
@@ -83407,7 +83407,7 @@ static const per_choice_t RadioBearerReconfiguration_choice[] = {
static int
dissect_rrc_RadioBearerReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 339 "../../asn1/rrc/rrc.cnf"
+#line 339 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfiguration");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerReconfiguration, RadioBearerReconfiguration_choice,
@@ -85504,7 +85504,7 @@ static const per_choice_t RadioBearerRelease_choice[] = {
static int
dissect_rrc_RadioBearerRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 351 "../../asn1/rrc/rrc.cnf"
+#line 351 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerRelease");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerRelease, RadioBearerRelease_choice,
@@ -88324,7 +88324,7 @@ static const per_choice_t RadioBearerSetup_choice[] = {
static int
dissect_rrc_RadioBearerSetup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 363 "../../asn1/rrc/rrc.cnf"
+#line 363 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetup");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerSetup, RadioBearerSetup_choice,
@@ -88362,7 +88362,7 @@ static const value_string rrc_ReleaseCause_vals[] = {
static int
dissect_rrc_ReleaseCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 945 "../../asn1/rrc/rrc.cnf"
+#line 945 "./asn1/rrc/rrc.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8, &value, FALSE, 0, NULL);
@@ -89092,7 +89092,7 @@ static const per_choice_t RRCConnectionRelease_choice[] = {
static int
dissect_rrc_RRCConnectionRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 379 "../../asn1/rrc/rrc.cnf"
+#line 379 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_RRCConnectionRelease, RRCConnectionRelease_choice,
@@ -89371,7 +89371,7 @@ static const per_choice_t SecurityModeCommand_choice[] = {
static int
dissect_rrc_SecurityModeCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 407 "../../asn1/rrc/rrc.cnf"
+#line 407 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_SecurityModeCommand, SecurityModeCommand_choice,
@@ -89513,7 +89513,7 @@ static const per_choice_t SignallingConnectionRelease_choice[] = {
static int
dissect_rrc_SignallingConnectionRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 429 "../../asn1/rrc/rrc.cnf"
+#line 429 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "SignallingConnectionRelease");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_SignallingConnectionRelease, SignallingConnectionRelease_choice,
@@ -91620,7 +91620,7 @@ static const per_choice_t TransportChannelReconfiguration_choice[] = {
static int
dissect_rrc_TransportChannelReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 449 "../../asn1/rrc/rrc.cnf"
+#line 449 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfiguration");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_TransportChannelReconfiguration, TransportChannelReconfiguration_choice,
@@ -91765,7 +91765,7 @@ static const per_sequence_t TransportFormatCombinationControl_sequence[] = {
static int
dissect_rrc_TransportFormatCombinationControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 461 "../../asn1/rrc/rrc.cnf"
+#line 461 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportFormatCombinationControl");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_TransportFormatCombinationControl, TransportFormatCombinationControl_sequence);
@@ -92198,7 +92198,7 @@ static const per_choice_t UECapabilityEnquiry_choice[] = {
static int
dissect_rrc_UECapabilityEnquiry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 469 "../../asn1/rrc/rrc.cnf"
+#line 469 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_UECapabilityEnquiry, UECapabilityEnquiry_choice,
@@ -92356,7 +92356,7 @@ static const per_choice_t UECapabilityInformationConfirm_choice[] = {
static int
dissect_rrc_UECapabilityInformationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 477 "../../asn1/rrc/rrc.cnf"
+#line 477 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformationConfirm");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_UECapabilityInformationConfirm, UECapabilityInformationConfirm_choice,
@@ -93120,7 +93120,7 @@ static const per_choice_t UplinkPhysicalChannelControl_choice[] = {
static int
dissect_rrc_UplinkPhysicalChannelControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 493 "../../asn1/rrc/rrc.cnf"
+#line 493 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UplinkPhysicalChannelControl");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_UplinkPhysicalChannelControl, UplinkPhysicalChannelControl_choice,
@@ -93463,7 +93463,7 @@ static const per_choice_t URAUpdateConfirm_choice[] = {
static int
dissect_rrc_URAUpdateConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 501 "../../asn1/rrc/rrc.cnf"
+#line 501 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdateConfirm");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_URAUpdateConfirm, URAUpdateConfirm_choice,
@@ -93926,7 +93926,7 @@ dissect_rrc_UE_ConnTimersAndConstants(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_rrc_T_cn_CommonGSM_MAP_NAS_SysInfo_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 711 "../../asn1/rrc/rrc.cnf"
+#line 711 "./asn1/rrc/rrc.cnf"
actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1);
offset = dissect_rrc_NAS_SystemInformationGSM_MAP(tvb, offset, actx, tree, hf_index);
@@ -95811,7 +95811,7 @@ static const per_choice_t UTRANMobilityInformation_choice[] = {
static int
dissect_rrc_UTRANMobilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 509 "../../asn1/rrc/rrc.cnf"
+#line 509 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformation");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_UTRANMobilityInformation, UTRANMobilityInformation_choice,
@@ -95998,7 +95998,7 @@ static const per_sequence_t HandoverFromUTRANCommand_GERANIu_sequence[] = {
static int
dissect_rrc_HandoverFromUTRANCommand_GERANIu(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 243 "../../asn1/rrc/rrc.cnf"
+#line 243 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-GERANIu");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_HandoverFromUTRANCommand_GERANIu, HandoverFromUTRANCommand_GERANIu_sequence);
@@ -96436,7 +96436,7 @@ static const per_sequence_t MBMSModifiedServicesInformation_sequence[] = {
static int
dissect_rrc_MBMSModifiedServicesInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 283 "../../asn1/rrc/rrc.cnf"
+#line 283 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSModifiedServicesInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSModifiedServicesInformation, MBMSModifiedServicesInformation_sequence);
@@ -96516,7 +96516,7 @@ static const per_sequence_t ETWSPrimaryNotificationWithSecurity_sequence[] = {
static int
dissect_rrc_ETWSPrimaryNotificationWithSecurity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 227 "../../asn1/rrc/rrc.cnf"
+#line 227 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "ETWSPrimaryNotificationWithSecurity");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_ETWSPrimaryNotificationWithSecurity, ETWSPrimaryNotificationWithSecurity_sequence);
@@ -96531,7 +96531,7 @@ dissect_rrc_ETWSPrimaryNotificationWithSecurity(tvbuff_t *tvb _U_, int offset _U
static int
dissect_rrc_T_eutra_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 623 "../../asn1/rrc/rrc.cnf"
+#line 623 "./asn1/rrc/rrc.cnf"
tvbuff_t *eutra_message_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &eutra_message_tvb);
@@ -96593,7 +96593,7 @@ dissect_rrc_T_r8_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_rrc_T_ims_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 659 "../../asn1/rrc/rrc.cnf"
+#line 659 "./asn1/rrc/rrc.cnf"
tvbuff_t *imsInformation_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1, 32, FALSE, &imsInformation_tvb);
@@ -96648,7 +96648,7 @@ dissect_rrc_RSR_VCC_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_rrc_T_eutra_Message_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 629 "../../asn1/rrc/rrc.cnf"
+#line 629 "./asn1/rrc/rrc.cnf"
tvbuff_t *eutra_message_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &eutra_message_tvb);
@@ -96773,7 +96773,7 @@ static const per_sequence_t HandoverFromUTRANCommand_EUTRA_sequence[] = {
static int
dissect_rrc_HandoverFromUTRANCommand_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 239 "../../asn1/rrc/rrc.cnf"
+#line 239 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-EUTRA");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_HandoverFromUTRANCommand_EUTRA, HandoverFromUTRANCommand_EUTRA_sequence);
@@ -97014,7 +97014,7 @@ static const per_sequence_t UEInformationRequest_sequence[] = {
static int
dissect_rrc_UEInformationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 481 "../../asn1/rrc/rrc.cnf"
+#line 481 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_UEInformationRequest, UEInformationRequest_sequence);
@@ -97695,7 +97695,7 @@ static const per_sequence_t LoggingMeasurementConfiguration_sequence[] = {
static int
dissect_rrc_LoggingMeasurementConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 259 "../../asn1/rrc/rrc.cnf"
+#line 259 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "LoggingMeasurementConfiguration");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_LoggingMeasurementConfiguration, LoggingMeasurementConfiguration_sequence);
@@ -97783,7 +97783,7 @@ static const per_choice_t DL_DCCH_MessageType_choice[] = {
static int
dissect_rrc_DL_DCCH_MessageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 928 "../../asn1/rrc/rrc.cnf"
+#line 928 "./asn1/rrc/rrc.cnf"
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_DL_DCCH_MessageType, DL_DCCH_MessageType_choice,
&msg_type);
@@ -97803,7 +97803,7 @@ static const per_sequence_t DL_DCCH_Message_sequence[] = {
static int
dissect_rrc_DL_DCCH_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 931 "../../asn1/rrc/rrc.cnf"
+#line 931 "./asn1/rrc/rrc.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_DL_DCCH_Message, DL_DCCH_Message_sequence);
@@ -97817,7 +97817,7 @@ dissect_rrc_DL_DCCH_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_rrc_START_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 839 "../../asn1/rrc/rrc.cnf"
+#line 839 "./asn1/rrc/rrc.cnf"
tvbuff_t * start_val;
fp_info *fpinf;
rrc_ciphering_info * c_inf;
@@ -97965,7 +97965,7 @@ static const per_sequence_t ActiveSetUpdateComplete_sequence[] = {
static int
dissect_rrc_ActiveSetUpdateComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "../../asn1/rrc/rrc.cnf"
+#line 179 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdateComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_ActiveSetUpdateComplete, ActiveSetUpdateComplete_sequence);
@@ -98136,7 +98136,7 @@ static const per_sequence_t ActiveSetUpdateFailure_sequence[] = {
static int
dissect_rrc_ActiveSetUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 183 "../../asn1/rrc/rrc.cnf"
+#line 183 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdateFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_ActiveSetUpdateFailure, ActiveSetUpdateFailure_sequence);
@@ -98283,7 +98283,7 @@ static const per_choice_t CellChangeOrderFromUTRANFailure_choice[] = {
static int
dissect_rrc_CellChangeOrderFromUTRANFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 195 "../../asn1/rrc/rrc.cnf"
+#line 195 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellChangeOrderFromUTRANFailure");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_CellChangeOrderFromUTRANFailure, CellChangeOrderFromUTRANFailure_choice,
@@ -98373,7 +98373,7 @@ static const per_sequence_t CounterCheckResponse_sequence[] = {
static int
dissect_rrc_CounterCheckResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 219 "../../asn1/rrc/rrc.cnf"
+#line 219 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_CounterCheckResponse, CounterCheckResponse_sequence);
@@ -98510,7 +98510,7 @@ static const per_sequence_t HandoverToUTRANComplete_sequence[] = {
static int
dissect_rrc_HandoverToUTRANComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 231 "../../asn1/rrc/rrc.cnf"
+#line 231 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverToUTRANComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_HandoverToUTRANComplete, HandoverToUTRANComplete_sequence);
@@ -99594,7 +99594,7 @@ static const per_sequence_t InitialDirectTransfer_sequence[] = {
static int
dissect_rrc_InitialDirectTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 235 "../../asn1/rrc/rrc.cnf"
+#line 235 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "InitialDirectTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_InitialDirectTransfer, InitialDirectTransfer_sequence);
@@ -99723,7 +99723,7 @@ dissect_rrc_HandoverFromUtranFailure_v590ext_IEs(tvbuff_t *tvb _U_, int offset _
static int
dissect_rrc_T_eutra_Message_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 635 "../../asn1/rrc/rrc.cnf"
+#line 635 "./asn1/rrc/rrc.cnf"
tvbuff_t *eutra_message_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &eutra_message_tvb);
@@ -99819,7 +99819,7 @@ static const per_sequence_t HandoverFromUTRANFailure_sequence[] = {
static int
dissect_rrc_HandoverFromUTRANFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 255 "../../asn1/rrc/rrc.cnf"
+#line 255 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_HandoverFromUTRANFailure, HandoverFromUTRANFailure_sequence);
@@ -99926,7 +99926,7 @@ static const per_sequence_t MeasurementControlFailure_sequence[] = {
static int
dissect_rrc_MeasurementControlFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 303 "../../asn1/rrc/rrc.cnf"
+#line 303 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementControlFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MeasurementControlFailure, MeasurementControlFailure_sequence);
@@ -105542,7 +105542,7 @@ static const per_sequence_t MeasurementReport_sequence[] = {
static int
dissect_rrc_MeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 307 "../../asn1/rrc/rrc.cnf"
+#line 307 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MeasurementReport, MeasurementReport_sequence);
@@ -105640,7 +105640,7 @@ static const per_sequence_t PhysicalChannelReconfigurationComplete_sequence[] =
static int
dissect_rrc_PhysicalChannelReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 323 "../../asn1/rrc/rrc.cnf"
+#line 323 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfigurationComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_PhysicalChannelReconfigurationComplete, PhysicalChannelReconfigurationComplete_sequence);
@@ -105689,7 +105689,7 @@ static const per_sequence_t PhysicalChannelReconfigurationFailure_sequence[] = {
static int
dissect_rrc_PhysicalChannelReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 327 "../../asn1/rrc/rrc.cnf"
+#line 327 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfigurationFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_PhysicalChannelReconfigurationFailure, PhysicalChannelReconfigurationFailure_sequence);
@@ -105787,7 +105787,7 @@ static const per_sequence_t RadioBearerReconfigurationComplete_sequence[] = {
static int
dissect_rrc_RadioBearerReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 343 "../../asn1/rrc/rrc.cnf"
+#line 343 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfigurationComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerReconfigurationComplete, RadioBearerReconfigurationComplete_sequence);
@@ -105837,7 +105837,7 @@ static const per_sequence_t RadioBearerReconfigurationFailure_sequence[] = {
static int
dissect_rrc_RadioBearerReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 347 "../../asn1/rrc/rrc.cnf"
+#line 347 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfigurationFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerReconfigurationFailure, RadioBearerReconfigurationFailure_sequence);
@@ -105935,7 +105935,7 @@ static const per_sequence_t RadioBearerReleaseComplete_sequence[] = {
static int
dissect_rrc_RadioBearerReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 355 "../../asn1/rrc/rrc.cnf"
+#line 355 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReleaseComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerReleaseComplete, RadioBearerReleaseComplete_sequence);
@@ -105985,7 +105985,7 @@ static const per_sequence_t RadioBearerReleaseFailure_sequence[] = {
static int
dissect_rrc_RadioBearerReleaseFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 359 "../../asn1/rrc/rrc.cnf"
+#line 359 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReleaseFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerReleaseFailure, RadioBearerReleaseFailure_sequence);
@@ -106084,7 +106084,7 @@ static const per_sequence_t RadioBearerSetupComplete_sequence[] = {
static int
dissect_rrc_RadioBearerSetupComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 367 "../../asn1/rrc/rrc.cnf"
+#line 367 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetupComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerSetupComplete, RadioBearerSetupComplete_sequence);
@@ -106134,7 +106134,7 @@ static const per_sequence_t RadioBearerSetupFailure_sequence[] = {
static int
dissect_rrc_RadioBearerSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 371 "../../asn1/rrc/rrc.cnf"
+#line 371 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetupFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RadioBearerSetupFailure, RadioBearerSetupFailure_sequence);
@@ -106183,7 +106183,7 @@ static const per_sequence_t RRCConnectionReleaseComplete_sequence[] = {
static int
dissect_rrc_RRCConnectionReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 387 "../../asn1/rrc/rrc.cnf"
+#line 387 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReleaseComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RRCConnectionReleaseComplete, RRCConnectionReleaseComplete_sequence);
@@ -107198,7 +107198,7 @@ dissect_rrc_UE_RadioAccessCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_rrc_GSM_Classmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 585 "../../asn1/rrc/rrc.cnf"
+#line 585 "./asn1/rrc/rrc.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -107217,7 +107217,7 @@ dissect_rrc_GSM_Classmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_rrc_GSM_Classmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 593 "../../asn1/rrc/rrc.cnf"
+#line 593 "./asn1/rrc/rrc.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -108731,7 +108731,7 @@ static const per_sequence_t RRCConnectionSetupComplete_sequence[] = {
static int
dissect_rrc_RRCConnectionSetupComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 399 "../../asn1/rrc/rrc.cnf"
+#line 399 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RRCConnectionSetupComplete, RRCConnectionSetupComplete_sequence);
@@ -108912,7 +108912,7 @@ static const per_sequence_t RRCStatus_sequence[] = {
static int
dissect_rrc_RRCStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 403 "../../asn1/rrc/rrc.cnf"
+#line 403 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCStatus");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RRCStatus, RRCStatus_sequence);
@@ -108962,7 +108962,7 @@ static const per_sequence_t SecurityModeComplete_sequence[] = {
static int
dissect_rrc_SecurityModeComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 411 "../../asn1/rrc/rrc.cnf"
+#line 411 "./asn1/rrc/rrc.cnf"
rrc_ciphering_info * c_inf ;
fp_info *fpinf ;
@@ -109021,7 +109021,7 @@ static const per_sequence_t SecurityModeFailure_sequence[] = {
static int
dissect_rrc_SecurityModeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 425 "../../asn1/rrc/rrc.cnf"
+#line 425 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_SecurityModeFailure, SecurityModeFailure_sequence);
@@ -109114,7 +109114,7 @@ static const per_sequence_t SignallingConnectionReleaseIndication_sequence[] = {
static int
dissect_rrc_SignallingConnectionReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 433 "../../asn1/rrc/rrc.cnf"
+#line 433 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "SignallingConnectionReleaseIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_SignallingConnectionReleaseIndication, SignallingConnectionReleaseIndication_sequence);
@@ -109212,7 +109212,7 @@ static const per_sequence_t TransportChannelReconfigurationComplete_sequence[] =
static int
dissect_rrc_TransportChannelReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 453 "../../asn1/rrc/rrc.cnf"
+#line 453 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfigurationComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_TransportChannelReconfigurationComplete, TransportChannelReconfigurationComplete_sequence);
@@ -109261,7 +109261,7 @@ static const per_sequence_t TransportChannelReconfigurationFailure_sequence[] =
static int
dissect_rrc_TransportChannelReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 457 "../../asn1/rrc/rrc.cnf"
+#line 457 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfigurationFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_TransportChannelReconfigurationFailure, TransportChannelReconfigurationFailure_sequence);
@@ -109310,7 +109310,7 @@ static const per_sequence_t TransportFormatCombinationControlFailure_sequence[]
static int
dissect_rrc_TransportFormatCombinationControlFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 465 "../../asn1/rrc/rrc.cnf"
+#line 465 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportFormatCombinationControlFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_TransportFormatCombinationControlFailure, TransportFormatCombinationControlFailure_sequence);
@@ -109586,7 +109586,7 @@ static const per_sequence_t UECapabilityInformation_sequence[] = {
static int
dissect_rrc_UECapabilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 473 "../../asn1/rrc/rrc.cnf"
+#line 473 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_UECapabilityInformation, UECapabilityInformation_sequence);
@@ -109781,7 +109781,7 @@ static const per_sequence_t UplinkDirectTransfer_sequence[] = {
static int
dissect_rrc_UplinkDirectTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 489 "../../asn1/rrc/rrc.cnf"
+#line 489 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UplinkDirectTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_UplinkDirectTransfer, UplinkDirectTransfer_sequence);
@@ -109921,7 +109921,7 @@ static const per_sequence_t UTRANMobilityInformationConfirm_sequence[] = {
static int
dissect_rrc_UTRANMobilityInformationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 513 "../../asn1/rrc/rrc.cnf"
+#line 513 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformationConfirm");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_UTRANMobilityInformationConfirm, UTRANMobilityInformationConfirm_sequence);
@@ -109970,7 +109970,7 @@ static const per_sequence_t UTRANMobilityInformationFailure_sequence[] = {
static int
dissect_rrc_UTRANMobilityInformationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 517 "../../asn1/rrc/rrc.cnf"
+#line 517 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformationFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_UTRANMobilityInformationFailure, UTRANMobilityInformationFailure_sequence);
@@ -110127,7 +110127,7 @@ static const per_sequence_t MBMSModificationRequest_sequence[] = {
static int
dissect_rrc_MBMSModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 279 "../../asn1/rrc/rrc.cnf"
+#line 279 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSModificationRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSModificationRequest, MBMSModificationRequest_sequence);
@@ -111787,7 +111787,7 @@ static const per_sequence_t UEInformationResponse_sequence[] = {
static int
dissect_rrc_UEInformationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 485 "../../asn1/rrc/rrc.cnf"
+#line 485 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_UEInformationResponse, UEInformationResponse_sequence);
@@ -112839,7 +112839,7 @@ static const per_choice_t CellUpdateConfirm_CCCH_choice[] = {
static int
dissect_rrc_CellUpdateConfirm_CCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 207 "../../asn1/rrc/rrc.cnf"
+#line 207 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm-CCCH");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_CellUpdateConfirm_CCCH, CellUpdateConfirm_CCCH_choice,
@@ -113311,7 +113311,7 @@ static const per_choice_t RRCConnectionReject_choice[] = {
static int
dissect_rrc_RRCConnectionReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 375 "../../asn1/rrc/rrc.cnf"
+#line 375 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_RRCConnectionReject, RRCConnectionReject_choice,
@@ -113854,7 +113854,7 @@ static const per_choice_t RRCConnectionRelease_CCCH_choice[] = {
static int
dissect_rrc_RRCConnectionRelease_CCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 383 "../../asn1/rrc/rrc.cnf"
+#line 383 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease-CCCH");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_RRCConnectionRelease_CCCH, RRCConnectionRelease_CCCH_choice,
@@ -116133,7 +116133,7 @@ static const per_choice_t RRCConnectionSetup_choice[] = {
static int
dissect_rrc_RRCConnectionSetup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 395 "../../asn1/rrc/rrc.cnf"
+#line 395 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_RRCConnectionSetup, RRCConnectionSetup_choice,
@@ -116277,7 +116277,7 @@ static const per_choice_t URAUpdateConfirm_CCCH_choice[] = {
static int
dissect_rrc_URAUpdateConfirm_CCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 505 "../../asn1/rrc/rrc.cnf"
+#line 505 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdateConfirm-CCCH");
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_URAUpdateConfirm_CCCH, URAUpdateConfirm_CCCH_choice,
@@ -116944,7 +116944,7 @@ static const per_sequence_t CellUpdate_sequence[] = {
static int
dissect_rrc_CellUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 199 "../../asn1/rrc/rrc.cnf"
+#line 199 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdate");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_CellUpdate, CellUpdate_sequence);
@@ -117836,7 +117836,7 @@ static const per_sequence_t RRCConnectionRequest_sequence[] = {
static int
dissect_rrc_RRCConnectionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 391 "../../asn1/rrc/rrc.cnf"
+#line 391 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_RRCConnectionRequest, RRCConnectionRequest_sequence);
@@ -118147,7 +118147,7 @@ static const per_sequence_t URAUpdate_sequence[] = {
static int
dissect_rrc_URAUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 497 "../../asn1/rrc/rrc.cnf"
+#line 497 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdate");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_URAUpdate, URAUpdate_sequence);
@@ -118532,7 +118532,7 @@ static const per_sequence_t CellUpdateFDD_r11_sequence[] = {
static int
dissect_rrc_CellUpdateFDD_r11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 203 "../../asn1/rrc/rrc.cnf"
+#line 203 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateFDD-r11");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_CellUpdateFDD_r11, CellUpdateFDD_r11_sequence);
@@ -119045,7 +119045,7 @@ static const per_sequence_t PagingType1_sequence[] = {
static int
dissect_rrc_PagingType1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 311 "../../asn1/rrc/rrc.cnf"
+#line 311 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "PagingType1");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_PagingType1, PagingType1_sequence);
@@ -119250,7 +119250,7 @@ static const per_sequence_t PUSCHCapacityRequest_sequence[] = {
static int
dissect_rrc_PUSCHCapacityRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 335 "../../asn1/rrc/rrc.cnf"
+#line 335 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "PUSCHCapacityRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_PUSCHCapacityRequest, PUSCHCapacityRequest_sequence);
@@ -119628,7 +119628,7 @@ static const per_sequence_t SystemInformation_FACH_sequence[] = {
static int
dissect_rrc_SystemInformation_FACH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 441 "../../asn1/rrc/rrc.cnf"
+#line 441 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-FACH");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_SystemInformation_FACH, SystemInformation_FACH_sequence);
@@ -119734,7 +119734,7 @@ static const per_sequence_t SystemInformationChangeIndication_sequence[] = {
static int
dissect_rrc_SystemInformationChangeIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 445 "../../asn1/rrc/rrc.cnf"
+#line 445 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationChangeIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_SystemInformationChangeIndication, SystemInformationChangeIndication_sequence);
@@ -119915,7 +119915,7 @@ static const per_sequence_t SystemInformation_BCH_sequence[] = {
static int
dissect_rrc_SystemInformation_BCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 437 "../../asn1/rrc/rrc.cnf"
+#line 437 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-BCH");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_SystemInformation_BCH, SystemInformation_BCH_sequence);
@@ -120430,7 +120430,7 @@ static const per_sequence_t MBMSAccessInformation_sequence[] = {
static int
dissect_rrc_MBMSAccessInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 263 "../../asn1/rrc/rrc.cnf"
+#line 263 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSAccessInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSAccessInformation, MBMSAccessInformation_sequence);
@@ -121289,7 +121289,7 @@ static const per_sequence_t MBMSCommonPTMRBInformation_sequence[] = {
static int
dissect_rrc_MBMSCommonPTMRBInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 267 "../../asn1/rrc/rrc.cnf"
+#line 267 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCommonPTMRBInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSCommonPTMRBInformation, MBMSCommonPTMRBInformation_sequence);
@@ -121667,7 +121667,7 @@ static const per_sequence_t MBMSCurrentCellPTMRBInformation_sequence[] = {
static int
dissect_rrc_MBMSCurrentCellPTMRBInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 271 "../../asn1/rrc/rrc.cnf"
+#line 271 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCurrentCellPTMRBInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSCurrentCellPTMRBInformation, MBMSCurrentCellPTMRBInformation_sequence);
@@ -122440,7 +122440,7 @@ static const per_sequence_t MBMSGeneralInformation_sequence[] = {
static int
dissect_rrc_MBMSGeneralInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 275 "../../asn1/rrc/rrc.cnf"
+#line 275 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSGeneralInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSGeneralInformation, MBMSGeneralInformation_sequence);
@@ -123114,7 +123114,7 @@ static const per_sequence_t MBMSNeighbouringCellPTMRBInformation_sequence[] = {
static int
dissect_rrc_MBMSNeighbouringCellPTMRBInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 287 "../../asn1/rrc/rrc.cnf"
+#line 287 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSNeighbouringCellPTMRBInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSNeighbouringCellPTMRBInformation, MBMSNeighbouringCellPTMRBInformation_sequence);
@@ -123251,7 +123251,7 @@ static const per_sequence_t MBMSUnmodifiedServicesInformation_sequence[] = {
static int
dissect_rrc_MBMSUnmodifiedServicesInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 295 "../../asn1/rrc/rrc.cnf"
+#line 295 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSUnmodifiedServicesInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSUnmodifiedServicesInformation, MBMSUnmodifiedServicesInformation_sequence);
@@ -123407,7 +123407,7 @@ static const per_sequence_t MBMSSchedulingInformation_sequence[] = {
static int
dissect_rrc_MBMSSchedulingInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 291 "../../asn1/rrc/rrc.cnf"
+#line 291 "./asn1/rrc/rrc.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSSchedulingInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_MBMSSchedulingInformation, MBMSSchedulingInformation_sequence);
@@ -127352,7 +127352,7 @@ static const per_choice_t HandoverToUTRANCommand_choice[] = {
static int
dissect_rrc_HandoverToUTRANCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 934 "../../asn1/rrc/rrc.cnf"
+#line 934 "./asn1/rrc/rrc.cnf"
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_rrc_HandoverToUTRANCommand, HandoverToUTRANCommand_choice,
NULL);
@@ -127493,7 +127493,7 @@ static const per_sequence_t UE_SecurityInformation_sequence[] = {
static int
dissect_rrc_UE_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 937 "../../asn1/rrc/rrc.cnf"
+#line 937 "./asn1/rrc/rrc.cnf"
actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CS+1);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_UE_SecurityInformation, UE_SecurityInformation_sequence);
@@ -127530,7 +127530,7 @@ dissect_rrc_T_uE_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_rrc_T_present(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 165 "../../asn1/rrc/rrc.cnf"
+#line 165 "./asn1/rrc/rrc.cnf"
tvbuff_t *ue_radio_access_cap_info_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -127896,7 +127896,7 @@ static const per_sequence_t UE_SecurityInformation2_sequence[] = {
static int
dissect_rrc_UE_SecurityInformation2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 941 "../../asn1/rrc/rrc.cnf"
+#line 941 "./asn1/rrc/rrc.cnf"
actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_PS+1);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrc_UE_SecurityInformation2, UE_SecurityInformation2_sequence);
@@ -134894,7 +134894,7 @@ dissect_rrc_T_supportOfInterRATHOToEUTRATDD(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_rrc_T_eutraFeatureGroupIndicators(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 641 "../../asn1/rrc/rrc.cnf"
+#line 641 "./asn1/rrc/rrc.cnf"
tvbuff_t *eutraFeatureGroupIndicators_tvb=NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4, 4, FALSE, &eutraFeatureGroupIndicators_tvb, NULL);
@@ -136387,7 +136387,7 @@ dissect_rrc_T_supportOfInter_RAT_PS_Handover(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_rrc_GSM_MS_RadioAccessCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 601 "../../asn1/rrc/rrc.cnf"
+#line 601 "./asn1/rrc/rrc.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -136700,7 +136700,7 @@ dissect_rrc_UE_RadioAccessCapability_v860ext_IEs(tvbuff_t *tvb _U_, int offset _
static int
dissect_rrc_T_ue_EUTRA_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 617 "../../asn1/rrc/rrc.cnf"
+#line 617 "./asn1/rrc/rrc.cnf"
tvbuff_t *ue_eutra_cap_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &ue_eutra_cap_tvb);
@@ -148264,7 +148264,7 @@ dissect_rrc_ExtSIBTypeInfoSchedulingInfo_List3(tvbuff_t *tvb _U_, int offset _U_
static int
dissect_rrc_HNBName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 691 "../../asn1/rrc/rrc.cnf"
+#line 691 "./asn1/rrc/rrc.cnf"
tvbuff_t *hnbname_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
@@ -148855,7 +148855,7 @@ dissect_rrc_SIB_ReferenceList2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_rrc_T_cn_CommonGSM_MAP_NAS_SysInfo_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 715 "../../asn1/rrc/rrc.cnf"
+#line 715 "./asn1/rrc/rrc.cnf"
actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1);
offset = dissect_rrc_NAS_SystemInformationGSM_MAP(tvb, offset, actx, tree, hf_index);
@@ -154069,7 +154069,7 @@ dissect_rrc_UE_HistoryInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_rrc_T_interRATHandoverInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 609 "../../asn1/rrc/rrc.cnf"
+#line 609 "./asn1/rrc/rrc.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -159423,7 +159423,7 @@ dissect_rrc_ToTargetRNC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_rrc_T_dL_DCCHmessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 521 "../../asn1/rrc/rrc.cnf"
+#line 521 "./asn1/rrc/rrc.cnf"
tvbuff_t *dl_dcch_message_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -160255,7 +160255,7 @@ static int dissect_MeasurementReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _
/*--- End of included file: packet-rrc-fn.c ---*/
-#line 195 "../../asn1/rrc/packet-rrc-template.c"
+#line 195 "./asn1/rrc/packet-rrc-template.c"
@@ -160339,7 +160339,7 @@ void proto_register_rrc(void) {
/*--- Included file: packet-rrc-hfarr.c ---*/
-#line 1 "../../asn1/rrc/packet-rrc-hfarr.c"
+#line 1 "./asn1/rrc/packet-rrc-hfarr.c"
{ &hf_rrc_DL_DCCH_Message_PDU,
{ "DL-DCCH-Message", "rrc.DL_DCCH_Message_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -203118,7 +203118,7 @@ void proto_register_rrc(void) {
NULL, HFILL }},
/*--- End of included file: packet-rrc-hfarr.c ---*/
-#line 277 "../../asn1/rrc/packet-rrc-template.c"
+#line 277 "./asn1/rrc/packet-rrc-template.c"
{ &hf_test,
{ "RAB Test", "rrc.RAB.test",
FT_UINT8, BASE_DEC, NULL, 0,
@@ -203162,7 +203162,7 @@ void proto_register_rrc(void) {
&ett_rrc,
/*--- Included file: packet-rrc-ettarr.c ---*/
-#line 1 "../../asn1/rrc/packet-rrc-ettarr.c"
+#line 1 "./asn1/rrc/packet-rrc-ettarr.c"
&ett_rrc_DL_DCCH_Message,
&ett_rrc_DL_DCCH_MessageType,
&ett_rrc_UL_DCCH_Message,
@@ -209976,7 +209976,7 @@ void proto_register_rrc(void) {
&ett_rrc_UL_RFC3095_Context,
/*--- End of included file: packet-rrc-ettarr.c ---*/
-#line 319 "../../asn1/rrc/packet-rrc-template.c"
+#line 319 "./asn1/rrc/packet-rrc-template.c"
&ett_rrc_eutraFeatureGroupIndicators,
&ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo,
&ett_rrc_ims_info,
@@ -210000,7 +210000,7 @@ void proto_register_rrc(void) {
/*--- Included file: packet-rrc-dis-reg.c ---*/
-#line 1 "../../asn1/rrc/packet-rrc-dis-reg.c"
+#line 1 "./asn1/rrc/packet-rrc-dis-reg.c"
register_dissector("rrc.dl.dcch", dissect_DL_DCCH_Message_PDU, proto_rrc);
register_dissector("rrc.ul.dcch", dissect_UL_DCCH_Message_PDU, proto_rrc);
register_dissector("rrc.dl.ccch", dissect_DL_CCCH_Message_PDU, proto_rrc);
@@ -210074,7 +210074,7 @@ void proto_register_rrc(void) {
/*--- End of included file: packet-rrc-dis-reg.c ---*/
-#line 341 "../../asn1/rrc/packet-rrc-template.c"
+#line 341 "./asn1/rrc/packet-rrc-template.c"
diff --git a/epan/dissectors/packet-rrc.h b/epan/dissectors/packet-rrc.h
index 4b55813a38..bea2ed8f1a 100644
--- a/epan/dissectors/packet-rrc.h
+++ b/epan/dissectors/packet-rrc.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rrc.h */
-/* ../../tools/asn2wrs.py -p rrc -c ./rrc.cnf -s ./packet-rrc-template -D . -O ../../epan/dissectors Class-definitions.asn PDU-definitions.asn InformationElements.asn Constant-definitions.asn Internode-definitions.asn */
+/* asn2wrs.py -p rrc -c ./rrc.cnf -s ./packet-rrc-template -D . -O ../.. Class-definitions.asn PDU-definitions.asn InformationElements.asn Constant-definitions.asn Internode-definitions.asn */
/* Input file: packet-rrc-template.h */
-#line 1 "../../asn1/rrc/packet-rrc-template.h"
+#line 1 "./asn1/rrc/packet-rrc-template.h"
/* packet-rrc-template.h
* Copyright 2009, Anders Broman <anders.broman@ericsson.com>
*
@@ -36,7 +36,7 @@
extern int proto_rrc;
/*--- Included file: packet-rrc-exp.h ---*/
-#line 1 "../../asn1/rrc/packet-rrc-exp.h"
+#line 1 "./asn1/rrc/packet-rrc-exp.h"
int dissect_rrc_InterRATHandoverInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_rrc_HandoverToUTRANCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_rrc_InterRATHandoverInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
@@ -50,7 +50,7 @@ int dissect_rrc_ToTargetRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
int dissect_rrc_TargetRNC_ToSourceRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-rrc-exp.h ---*/
-#line 30 "../../asn1/rrc/packet-rrc-template.h"
+#line 30 "./asn1/rrc/packet-rrc-template.h"
enum rrc_message_type {
RRC_MESSAGE_TYPE_INVALID = 0,
diff --git a/epan/dissectors/packet-rrlp.c b/epan/dissectors/packet-rrlp.c
index 2b46c30564..0d5cd4a0f0 100644
--- a/epan/dissectors/packet-rrlp.c
+++ b/epan/dissectors/packet-rrlp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rrlp.c */
-/* ../../tools/asn2wrs.py -p rrlp -c ./rrlp.cnf -s ./packet-rrlp-template -D . -O ../../epan/dissectors ../gsm_map/MAP-ExtensionDataTypes.asn ../gsm_map/MAP-LCS-DataTypes.asn RRLP-Messages.asn RRLP-Components.asn */
+/* asn2wrs.py -p rrlp -c ./rrlp.cnf -s ./packet-rrlp-template -D . -O ../.. ../gsm_map/MAP-ExtensionDataTypes.asn ../gsm_map/MAP-LCS-DataTypes.asn RRLP-Messages.asn RRLP-Components.asn */
/* Input file: packet-rrlp-template.c */
-#line 1 "../../asn1/rrlp/packet-rrlp-template.c"
+#line 1 "./asn1/rrlp/packet-rrlp-template.c"
/* packet-rrlp.c
* Routines for 3GPP Radio Resource LCS Protocol (RRLP) packet dissection
* Copyright 2006, Anders Broman <anders.broman@ericsson.com>
@@ -61,7 +61,7 @@ static int proto_rrlp = -1;
/*--- Included file: packet-rrlp-hf.c ---*/
-#line 1 "../../asn1/rrlp/packet-rrlp-hf.c"
+#line 1 "./asn1/rrlp/packet-rrlp-hf.c"
static int hf_rrlp_PDU_PDU = -1; /* PDU */
static int hf_rrlp_privateExtensionList = -1; /* PrivateExtensionList */
static int hf_rrlp_pcs_Extensions = -1; /* PCS_Extensions */
@@ -884,13 +884,13 @@ static int hf_rrlp_GANSSModelID_model7 = -1;
static int hf_rrlp_GANSSModelID_model8 = -1;
/*--- End of included file: packet-rrlp-hf.c ---*/
-#line 55 "../../asn1/rrlp/packet-rrlp-template.c"
+#line 55 "./asn1/rrlp/packet-rrlp-template.c"
/* Initialize the subtree pointers */
static gint ett_rrlp = -1;
/*--- Included file: packet-rrlp-ett.c ---*/
-#line 1 "../../asn1/rrlp/packet-rrlp-ett.c"
+#line 1 "./asn1/rrlp/packet-rrlp-ett.c"
static gint ett_rrlp_ExtensionContainer = -1;
static gint ett_rrlp_PrivateExtensionList = -1;
static gint ett_rrlp_PrivateExtension = -1;
@@ -1145,24 +1145,24 @@ static gint ett_rrlp_GANSSModelID = -1;
static gint ett_rrlp_AssistanceNeeded = -1;
/*--- End of included file: packet-rrlp-ett.c ---*/
-#line 59 "../../asn1/rrlp/packet-rrlp-template.c"
+#line 59 "./asn1/rrlp/packet-rrlp-template.c"
/* Include constants */
/*--- Included file: packet-rrlp-val.h ---*/
-#line 1 "../../asn1/rrlp/packet-rrlp-val.h"
+#line 1 "./asn1/rrlp/packet-rrlp-val.h"
#define maxNumOfPrivateExtensions 10
#define maxExt_GeographicalInformation 20
#define maxGPSAssistanceData 40
#define maxGANSSAssistanceData 40
/*--- End of included file: packet-rrlp-val.h ---*/
-#line 62 "../../asn1/rrlp/packet-rrlp-template.c"
+#line 62 "./asn1/rrlp/packet-rrlp-template.c"
/*--- Included file: packet-rrlp-fn.c ---*/
-#line 1 "../../asn1/rrlp/packet-rrlp-fn.c"
+#line 1 "./asn1/rrlp/packet-rrlp-fn.c"
static int
@@ -1242,7 +1242,7 @@ dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 33 "../../asn1/rrlp/rrlp.cnf"
+#line 33 "./asn1/rrlp/rrlp.cnf"
tvbuff_t *parameter_tvb = NULL;
@@ -7088,7 +7088,7 @@ static const per_sequence_t PDU_sequence[] = {
static int
dissect_rrlp_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 25 "../../asn1/rrlp/rrlp.cnf"
+#line 25 "./asn1/rrlp/rrlp.cnf"
proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, ENC_NA);
@@ -7113,7 +7113,7 @@ static int dissect_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree
/*--- End of included file: packet-rrlp-fn.c ---*/
-#line 65 "../../asn1/rrlp/packet-rrlp-template.c"
+#line 65 "./asn1/rrlp/packet-rrlp-template.c"
/*--- proto_register_rrlp -------------------------------------------*/
@@ -7124,7 +7124,7 @@ void proto_register_rrlp(void) {
/*--- Included file: packet-rrlp-hfarr.c ---*/
-#line 1 "../../asn1/rrlp/packet-rrlp-hfarr.c"
+#line 1 "./asn1/rrlp/packet-rrlp-hfarr.c"
{ &hf_rrlp_PDU_PDU,
{ "PDU", "rrlp.PDU_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -10403,7 +10403,7 @@ void proto_register_rrlp(void) {
NULL, HFILL }},
/*--- End of included file: packet-rrlp-hfarr.c ---*/
-#line 74 "../../asn1/rrlp/packet-rrlp-template.c"
+#line 74 "./asn1/rrlp/packet-rrlp-template.c"
};
/* List of subtrees */
@@ -10411,7 +10411,7 @@ void proto_register_rrlp(void) {
&ett_rrlp,
/*--- Included file: packet-rrlp-ettarr.c ---*/
-#line 1 "../../asn1/rrlp/packet-rrlp-ettarr.c"
+#line 1 "./asn1/rrlp/packet-rrlp-ettarr.c"
&ett_rrlp_ExtensionContainer,
&ett_rrlp_PrivateExtensionList,
&ett_rrlp_PrivateExtension,
@@ -10666,7 +10666,7 @@ void proto_register_rrlp(void) {
&ett_rrlp_AssistanceNeeded,
/*--- End of included file: packet-rrlp-ettarr.c ---*/
-#line 80 "../../asn1/rrlp/packet-rrlp-template.c"
+#line 80 "./asn1/rrlp/packet-rrlp-template.c"
};
diff --git a/epan/dissectors/packet-rtse.c b/epan/dissectors/packet-rtse.c
index b890528c11..a34ad5cc6b 100644
--- a/epan/dissectors/packet-rtse.c
+++ b/epan/dissectors/packet-rtse.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rtse.c */
-/* ../../tools/asn2wrs.py -b -p rtse -c ./rtse.cnf -s ./packet-rtse-template -D . -O ../../epan/dissectors rtse.asn */
+/* asn2wrs.py -b -p rtse -c ./rtse.cnf -s ./packet-rtse-template -D . -O ../.. rtse.asn */
/* Input file: packet-rtse-template.c */
-#line 1 "../../asn1/rtse/packet-rtse-template.c"
+#line 1 "./asn1/rtse/packet-rtse-template.c"
/* packet-rtse-template.c
* Routines for RTSE packet dissection
* Graeme Lunt 2005
@@ -66,7 +66,7 @@ static gboolean rtse_reassemble = TRUE;
/*--- Included file: packet-rtse-hf.c ---*/
-#line 1 "../../asn1/rtse/packet-rtse-hf.c"
+#line 1 "./asn1/rtse/packet-rtse-hf.c"
static int hf_rtse_rtorq_apdu = -1; /* RTORQapdu */
static int hf_rtse_rtoac_apdu = -1; /* RTOACapdu */
static int hf_rtse_rtorj_apdu = -1; /* RTORJapdu */
@@ -93,13 +93,13 @@ static int hf_rtse_t61String = -1; /* T_t61String */
static int hf_rtse_octetString = -1; /* T_octetString */
/*--- End of included file: packet-rtse-hf.c ---*/
-#line 60 "../../asn1/rtse/packet-rtse-template.c"
+#line 60 "./asn1/rtse/packet-rtse-template.c"
/* Initialize the subtree pointers */
static gint ett_rtse = -1;
/*--- Included file: packet-rtse-ett.c ---*/
-#line 1 "../../asn1/rtse/packet-rtse-ett.c"
+#line 1 "./asn1/rtse/packet-rtse-ett.c"
static gint ett_rtse_RTSE_apdus = -1;
static gint ett_rtse_RTORQapdu = -1;
static gint ett_rtse_RTOACapdu = -1;
@@ -110,7 +110,7 @@ static gint ett_rtse_SessionConnectionIdentifier = -1;
static gint ett_rtse_CallingSSuserReference = -1;
/*--- End of included file: packet-rtse-ett.c ---*/
-#line 64 "../../asn1/rtse/packet-rtse-template.c"
+#line 64 "./asn1/rtse/packet-rtse-template.c"
static expert_field ei_rtse_dissector_oid_not_implemented = EI_INIT;
static expert_field ei_rtse_unknown_rtse_pdu = EI_INIT;
@@ -242,7 +242,7 @@ call_rtse_external_type_callback(gboolean implicit_tag _U_, tvbuff_t *tvb, int o
/*--- Included file: packet-rtse-fn.c ---*/
-#line 1 "../../asn1/rtse/packet-rtse-fn.c"
+#line 1 "./asn1/rtse/packet-rtse-fn.c"
static int
@@ -273,7 +273,7 @@ dissect_rtse_T_dialogueMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_rtse_T_open(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 58 "../../asn1/rtse/rtse.cnf"
+#line 58 "./asn1/rtse/rtse.cnf"
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
const char *oid = NULL;
@@ -310,7 +310,7 @@ dissect_rtse_T_open(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_rtse_T_t61String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 116 "../../asn1/rtse/rtse.cnf"
+#line 116 "./asn1/rtse/rtse.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
actx, tree, tvb, offset, hf_index,
@@ -328,7 +328,7 @@ dissect_rtse_T_t61String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_rtse_T_octetString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 132 "../../asn1/rtse/rtse.cnf"
+#line 132 "./asn1/rtse/rtse.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&string);
@@ -367,7 +367,7 @@ dissect_rtse_CallingSSuserReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_rtse_CommonReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 124 "../../asn1/rtse/rtse.cnf"
+#line 124 "./asn1/rtse/rtse.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
@@ -400,7 +400,7 @@ static const ber_sequence_t SessionConnectionIdentifier_sequence[] = {
static int
dissect_rtse_SessionConnectionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 108 "../../asn1/rtse/rtse.cnf"
+#line 108 "./asn1/rtse/rtse.cnf"
if(open_request){
col_append_str(actx->pinfo->cinfo, COL_INFO, "Recover");
}
@@ -445,7 +445,7 @@ static const value_string rtse_T_applicationProtocol_vals[] = {
static int
dissect_rtse_T_applicationProtocol(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 104 "../../asn1/rtse/rtse.cnf"
+#line 104 "./asn1/rtse/rtse.cnf"
offset = dissect_ber_integer(TRUE, actx, tree, tvb, offset, hf_index, &app_proto);
@@ -466,7 +466,7 @@ static const ber_sequence_t RTORQapdu_set[] = {
int
dissect_rtse_RTORQapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 41 "../../asn1/rtse/rtse.cnf"
+#line 41 "./asn1/rtse/rtse.cnf"
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
if(session != NULL)
@@ -492,7 +492,7 @@ static const ber_sequence_t RTOACapdu_set[] = {
int
dissect_rtse_RTOACapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 50 "../../asn1/rtse/rtse.cnf"
+#line 50 "./asn1/rtse/rtse.cnf"
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
if(session != NULL)
@@ -519,7 +519,7 @@ static const value_string rtse_RefuseReason_vals[] = {
static int
dissect_rtse_RefuseReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 156 "../../asn1/rtse/rtse.cnf"
+#line 156 "./asn1/rtse/rtse.cnf"
int reason = -1;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -538,7 +538,7 @@ dissect_rtse_RefuseReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_rtse_T_userDataRJ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 11 "../../asn1/rtse/rtse.cnf"
+#line 11 "./asn1/rtse/rtse.cnf"
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
const char *oid = NULL;
@@ -579,7 +579,7 @@ static const ber_sequence_t RTORJapdu_set[] = {
int
dissect_rtse_RTORJapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 148 "../../asn1/rtse/rtse.cnf"
+#line 148 "./asn1/rtse/rtse.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "Refuse");
offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
@@ -595,7 +595,7 @@ dissect_rtse_RTORJapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_rtse_RTTPapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 138 "../../asn1/rtse/rtse.cnf"
+#line 138 "./asn1/rtse/rtse.cnf"
int priority = -1;
col_append_str(actx->pinfo->cinfo, COL_INFO, "Turn-Please");
@@ -616,7 +616,7 @@ dissect_rtse_RTTPapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_rtse_RTTRapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 86 "../../asn1/rtse/rtse.cnf"
+#line 86 "./asn1/rtse/rtse.cnf"
tvbuff_t *next_tvb = NULL;
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
@@ -655,7 +655,7 @@ static const value_string rtse_AbortReason_vals[] = {
static int
dissect_rtse_AbortReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 172 "../../asn1/rtse/rtse.cnf"
+#line 172 "./asn1/rtse/rtse.cnf"
int reason = -1;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -685,7 +685,7 @@ dissect_rtse_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_rtse_T_userdataAB(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 38 "../../asn1/rtse/rtse.cnf"
+#line 38 "./asn1/rtse/rtse.cnf"
/*XXX not implemented yet */
@@ -703,7 +703,7 @@ static const ber_sequence_t RTABapdu_set[] = {
int
dissect_rtse_RTABapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 164 "../../asn1/rtse/rtse.cnf"
+#line 164 "./asn1/rtse/rtse.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, "Abort");
offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
@@ -737,7 +737,7 @@ dissect_rtse_RTSE_apdus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
/*--- End of included file: packet-rtse-fn.c ---*/
-#line 194 "../../asn1/rtse/packet-rtse-template.c"
+#line 194 "./asn1/rtse/packet-rtse-template.c"
/*
* Dissect RTSE PDUs inside a PPDU.
@@ -911,7 +911,7 @@ void proto_register_rtse(void) {
/*--- Included file: packet-rtse-hfarr.c ---*/
-#line 1 "../../asn1/rtse/packet-rtse-hfarr.c"
+#line 1 "./asn1/rtse/packet-rtse-hfarr.c"
{ &hf_rtse_rtorq_apdu,
{ "rtorq-apdu", "rtse.rtorq_apdu_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1010,7 +1010,7 @@ void proto_register_rtse(void) {
NULL, HFILL }},
/*--- End of included file: packet-rtse-hfarr.c ---*/
-#line 366 "../../asn1/rtse/packet-rtse-template.c"
+#line 366 "./asn1/rtse/packet-rtse-template.c"
};
/* List of subtrees */
@@ -1021,7 +1021,7 @@ void proto_register_rtse(void) {
&ett_rtse_fragments,
/*--- Included file: packet-rtse-ettarr.c ---*/
-#line 1 "../../asn1/rtse/packet-rtse-ettarr.c"
+#line 1 "./asn1/rtse/packet-rtse-ettarr.c"
&ett_rtse_RTSE_apdus,
&ett_rtse_RTORQapdu,
&ett_rtse_RTOACapdu,
@@ -1032,7 +1032,7 @@ void proto_register_rtse(void) {
&ett_rtse_CallingSSuserReference,
/*--- End of included file: packet-rtse-ettarr.c ---*/
-#line 375 "../../asn1/rtse/packet-rtse-template.c"
+#line 375 "./asn1/rtse/packet-rtse-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-rtse.h b/epan/dissectors/packet-rtse.h
index 0afc69b076..942b32b471 100644
--- a/epan/dissectors/packet-rtse.h
+++ b/epan/dissectors/packet-rtse.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rtse.h */
-/* ../../tools/asn2wrs.py -b -p rtse -c ./rtse.cnf -s ./packet-rtse-template -D . -O ../../epan/dissectors rtse.asn */
+/* asn2wrs.py -b -p rtse -c ./rtse.cnf -s ./packet-rtse-template -D . -O ../.. rtse.asn */
/* Input file: packet-rtse-template.h */
-#line 1 "../../asn1/rtse/packet-rtse-template.h"
+#line 1 "./asn1/rtse/packet-rtse-template.h"
/* packet-rtse.h
* Routines for RTSE packet dissection
* Graeme Lunt 2005
@@ -34,14 +34,14 @@
/*--- Included file: packet-rtse-exp.h ---*/
-#line 1 "../../asn1/rtse/packet-rtse-exp.h"
+#line 1 "./asn1/rtse/packet-rtse-exp.h"
int dissect_rtse_RTORQapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_rtse_RTOACapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_rtse_RTORJapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_rtse_RTABapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-rtse-exp.h ---*/
-#line 28 "../../asn1/rtse/packet-rtse-template.h"
+#line 28 "./asn1/rtse/packet-rtse-template.h"
void register_rtse_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, gboolean uses_ros);
diff --git a/epan/dissectors/packet-rua.c b/epan/dissectors/packet-rua.c
index df4b7b1db6..2bb834b1cf 100644
--- a/epan/dissectors/packet-rua.c
+++ b/epan/dissectors/packet-rua.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rua.c */
-/* ../../tools/asn2wrs.py -p rua -c ./rua.cnf -s ./packet-rua-template -D . -O ../../epan/dissectors RUA-CommonDataTypes.asn RUA-Constants.asn RUA-Containers.asn RUA-IEs.asn RUA-PDU-Contents.asn RUA-PDU-Descriptions.asn */
+/* asn2wrs.py -p rua -c ./rua.cnf -s ./packet-rua-template -D . -O ../.. RUA-CommonDataTypes.asn RUA-Constants.asn RUA-Containers.asn RUA-IEs.asn RUA-PDU-Contents.asn RUA-PDU-Descriptions.asn */
/* Input file: packet-rua-template.c */
-#line 1 "../../asn1/rua/packet-rua-template.c"
+#line 1 "./asn1/rua/packet-rua-template.c"
/* packet-rua-template.c
* Routines for UMTS Home Node B RANAP User Adaptation (RUA) packet dissection
* Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
@@ -55,7 +55,7 @@ void proto_register_rua(void);
/*--- Included file: packet-rua-val.h ---*/
-#line 1 "../../asn1/rua/packet-rua-val.h"
+#line 1 "./asn1/rua/packet-rua-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -82,14 +82,14 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-rua-val.h ---*/
-#line 49 "../../asn1/rua/packet-rua-template.c"
+#line 49 "./asn1/rua/packet-rua-template.c"
/* Initialize the protocol and registered fields */
static int proto_rua = -1;
/*--- Included file: packet-rua-hf.c ---*/
-#line 1 "../../asn1/rua/packet-rua-hf.c"
+#line 1 "./asn1/rua/packet-rua-hf.c"
static int hf_rua_CN_DomainIndicator_PDU = -1; /* CN_DomainIndicator */
static int hf_rua_CSGMembershipStatus_PDU = -1; /* CSGMembershipStatus */
static int hf_rua_Establishment_Cause_PDU = -1; /* Establishment_Cause */
@@ -159,7 +159,7 @@ static int hf_rua_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
static int hf_rua_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-rua-hf.c ---*/
-#line 54 "../../asn1/rua/packet-rua-template.c"
+#line 54 "./asn1/rua/packet-rua-template.c"
/* Initialize the subtree pointers */
static int ett_rua = -1;
@@ -169,7 +169,7 @@ static int ett_rua = -1;
/*--- Included file: packet-rua-ett.c ---*/
-#line 1 "../../asn1/rua/packet-rua-ett.c"
+#line 1 "./asn1/rua/packet-rua-ett.c"
static gint ett_rua_PrivateIE_ID = -1;
static gint ett_rua_ProtocolIE_Container = -1;
static gint ett_rua_ProtocolIE_Field = -1;
@@ -208,7 +208,7 @@ static gint ett_rua_SuccessfulOutcome = -1;
static gint ett_rua_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-rua-ett.c ---*/
-#line 62 "../../asn1/rua/packet-rua-template.c"
+#line 62 "./asn1/rua/packet-rua-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -232,7 +232,7 @@ void proto_reg_handoff_rua(void);
/*--- Included file: packet-rua-fn.c ---*/
-#line 1 "../../asn1/rua/packet-rua-fn.c"
+#line 1 "./asn1/rua/packet-rua-fn.c"
static const value_string rua_Criticality_vals[] = {
{ 0, "reject" },
@@ -267,7 +267,7 @@ dissect_rua_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 52 "../../asn1/rua/rua.cnf"
+#line 52 "./asn1/rua/rua.cnf"
if (strcmp(val_to_str(ProcedureCode, rua_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
col_set_str(actx->pinfo->cinfo, COL_INFO,
"Unknown Message ");
@@ -337,7 +337,7 @@ dissect_rua_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
-#line 41 "../../asn1/rua/rua.cnf"
+#line 41 "./asn1/rua/rua.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(rua_ProtocolIE_ID_vals), "unknown (%d)"));
}
@@ -827,7 +827,7 @@ dissect_rua_IntraDomainNasNodeSelector(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_rua_RANAP_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 95 "../../asn1/rua/rua.cnf"
+#line 95 "./asn1/rua/rua.cnf"
tvbuff_t *ranap_message_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &ranap_message_tvb);
@@ -1016,7 +1016,7 @@ static const per_sequence_t Connect_sequence[] = {
static int
dissect_rua_Connect(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 64 "../../asn1/rua/rua.cnf"
+#line 64 "./asn1/rua/rua.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"CONNECT ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1037,7 +1037,7 @@ static const per_sequence_t DirectTransfer_sequence[] = {
static int
dissect_rua_DirectTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 69 "../../asn1/rua/rua.cnf"
+#line 69 "./asn1/rua/rua.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"DIRECT_TRANSFER ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1058,7 +1058,7 @@ static const per_sequence_t Disconnect_sequence[] = {
static int
dissect_rua_Disconnect(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 74 "../../asn1/rua/rua.cnf"
+#line 74 "./asn1/rua/rua.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"DISCONNECT ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1079,7 +1079,7 @@ static const per_sequence_t ConnectionlessTransfer_sequence[] = {
static int
dissect_rua_ConnectionlessTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 79 "../../asn1/rua/rua.cnf"
+#line 79 "./asn1/rua/rua.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"CONNECTIONLESS_TRANSFER ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1100,7 +1100,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_rua_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 84 "../../asn1/rua/rua.cnf"
+#line 84 "./asn1/rua/rua.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"ERROR_INDICATION ");
col_set_fence(actx->pinfo->cinfo, COL_INFO); /* Protect info from CriticalityDiagnostics decodes */
@@ -1121,7 +1121,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_rua_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "../../asn1/rua/rua.cnf"
+#line 90 "./asn1/rua/rua.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,
"PRIVATE_MESSAGE ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1357,7 +1357,7 @@ static int dissect_RUA_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-rua-fn.c ---*/
-#line 84 "../../asn1/rua/packet-rua-template.c"
+#line 84 "./asn1/rua/packet-rua-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -1410,7 +1410,7 @@ module_t *rua_module;
/*--- Included file: packet-rua-hfarr.c ---*/
-#line 1 "../../asn1/rua/packet-rua-hfarr.c"
+#line 1 "./asn1/rua/packet-rua-hfarr.c"
{ &hf_rua_CN_DomainIndicator_PDU,
{ "CN-DomainIndicator", "rua.CN_DomainIndicator",
FT_UINT32, BASE_DEC, VALS(rua_CN_DomainIndicator_vals), 0,
@@ -1681,7 +1681,7 @@ module_t *rua_module;
"UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-rua-hfarr.c ---*/
-#line 135 "../../asn1/rua/packet-rua-template.c"
+#line 135 "./asn1/rua/packet-rua-template.c"
};
/* List of subtrees */
@@ -1689,7 +1689,7 @@ module_t *rua_module;
&ett_rua,
/*--- Included file: packet-rua-ettarr.c ---*/
-#line 1 "../../asn1/rua/packet-rua-ettarr.c"
+#line 1 "./asn1/rua/packet-rua-ettarr.c"
&ett_rua_PrivateIE_ID,
&ett_rua_ProtocolIE_Container,
&ett_rua_ProtocolIE_Field,
@@ -1728,7 +1728,7 @@ module_t *rua_module;
&ett_rua_UnsuccessfulOutcome,
/*--- End of included file: packet-rua-ettarr.c ---*/
-#line 141 "../../asn1/rua/packet-rua-template.c"
+#line 141 "./asn1/rua/packet-rua-template.c"
};
@@ -1769,7 +1769,7 @@ proto_reg_handoff_rua(void)
initialized = TRUE;
/*--- Included file: packet-rua-dis-tab.c ---*/
-#line 1 "../../asn1/rua/packet-rua-dis-tab.c"
+#line 1 "./asn1/rua/packet-rua-dis-tab.c"
dissector_add_uint("rua.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_rua));
dissector_add_uint("rua.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_rua));
dissector_add_uint("rua.ies", id_Context_ID, create_dissector_handle(dissect_Context_ID_PDU, proto_rua));
@@ -1787,7 +1787,7 @@ proto_reg_handoff_rua(void)
/*--- End of included file: packet-rua-dis-tab.c ---*/
-#line 180 "../../asn1/rua/packet-rua-template.c"
+#line 180 "./asn1/rua/packet-rua-template.c"
} else {
dissector_delete_uint("sctp.port", sctp_port, rua_handle);
diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c
index 49af50213c..5c707e1259 100644
--- a/epan/dissectors/packet-s1ap.c
+++ b/epan/dissectors/packet-s1ap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-s1ap.c */
-/* ../../tools/asn2wrs.py -p s1ap -c ./s1ap.cnf -s ./packet-s1ap-template -D . -O ../../epan/dissectors S1AP-CommonDataTypes.asn S1AP-Constants.asn S1AP-Containers.asn S1AP-IEs.asn S1AP-PDU-Contents.asn S1AP-PDU-Descriptions.asn S1AP-SonTransfer-IEs.asn */
+/* asn2wrs.py -p s1ap -c ./s1ap.cnf -s ./packet-s1ap-template -D . -O ../.. S1AP-CommonDataTypes.asn S1AP-Constants.asn S1AP-Containers.asn S1AP-IEs.asn S1AP-PDU-Contents.asn S1AP-PDU-Descriptions.asn S1AP-SonTransfer-IEs.asn */
/* Input file: packet-s1ap-template.c */
-#line 1 "../../asn1/s1ap/packet-s1ap-template.c"
+#line 1 "./asn1/s1ap/packet-s1ap-template.c"
/* packet-s1ap.c
* Routines for E-UTRAN S1 Application Protocol (S1AP) packet dissection
* Copyright 2007-2010, Anders Broman <anders.broman@ericsson.com>
@@ -73,7 +73,7 @@ static dissector_handle_t bssgp_handle;
/*--- Included file: packet-s1ap-val.h ---*/
-#line 1 "../../asn1/s1ap/packet-s1ap-val.h"
+#line 1 "./asn1/s1ap/packet-s1ap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -395,7 +395,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-s1ap-val.h ---*/
-#line 67 "../../asn1/s1ap/packet-s1ap-template.c"
+#line 67 "./asn1/s1ap/packet-s1ap-template.c"
/* Initialize the protocol and registered fields */
static int proto_s1ap = -1;
@@ -404,7 +404,7 @@ static int hf_s1ap_transportLayerAddressIPv4 = -1;
static int hf_s1ap_transportLayerAddressIPv6 = -1;
/*--- Included file: packet-s1ap-hf.c ---*/
-#line 1 "../../asn1/s1ap/packet-s1ap-hf.c"
+#line 1 "./asn1/s1ap/packet-s1ap-hf.c"
static int hf_s1ap_Additional_GUTI_PDU = -1; /* Additional_GUTI */
static int hf_s1ap_Bearers_SubjectToStatusTransfer_Item_PDU = -1; /* Bearers_SubjectToStatusTransfer_Item */
static int hf_s1ap_BroadcastCancelledAreaList_PDU = -1; /* BroadcastCancelledAreaList */
@@ -1026,7 +1026,7 @@ static int hf_s1ap_eHRPD_Sector_ID_01 = -1; /* EHRPD_Sector_ID */
static int hf_s1ap_eHRPDSectorLoadReportingResponse = -1; /* EHRPDSectorLoadReportingResponse */
/*--- End of included file: packet-s1ap-hf.c ---*/
-#line 74 "../../asn1/s1ap/packet-s1ap-template.c"
+#line 74 "./asn1/s1ap/packet-s1ap-template.c"
/* Initialize the subtree pointers */
static int ett_s1ap = -1;
@@ -1041,7 +1041,7 @@ static int ett_s1ap_Cdma2000SectorID = -1;
/*--- Included file: packet-s1ap-ett.c ---*/
-#line 1 "../../asn1/s1ap/packet-s1ap-ett.c"
+#line 1 "./asn1/s1ap/packet-s1ap-ett.c"
static gint ett_s1ap_PrivateIE_ID = -1;
static gint ett_s1ap_ProtocolIE_Container = -1;
static gint ett_s1ap_ProtocolIE_Field = -1;
@@ -1346,7 +1346,7 @@ static gint ett_s1ap_EHRPDCompositeAvailableCapacity = -1;
static gint ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem = -1;
/*--- End of included file: packet-s1ap-ett.c ---*/
-#line 87 "../../asn1/s1ap/packet-s1ap-template.c"
+#line 87 "./asn1/s1ap/packet-s1ap-template.c"
enum{
INITIATING_MESSAGE,
@@ -1397,7 +1397,7 @@ static int dissect_TargetBSS_ToSourceBSS_TransparentContainer_PDU(tvbuff_t *tvb,
/*--- Included file: packet-s1ap-fn.c ---*/
-#line 1 "../../asn1/s1ap/packet-s1ap-fn.c"
+#line 1 "./asn1/s1ap/packet-s1ap-fn.c"
static const value_string s1ap_Criticality_vals[] = {
{ 0, "reject" },
@@ -1449,7 +1449,7 @@ static const per_choice_t PrivateIE_ID_choice[] = {
static int
dissect_s1ap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 189 "../../asn1/s1ap/s1ap.cnf"
+#line 189 "./asn1/s1ap/s1ap.cnf"
obj_id = NULL;
@@ -1527,7 +1527,7 @@ dissect_s1ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 109 "../../asn1/s1ap/s1ap.cnf"
+#line 109 "./asn1/s1ap/s1ap.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
val_to_str_ext(ProcedureCode, &s1ap_ProcedureCode_vals_ext,
"unknown message"));
@@ -1778,7 +1778,7 @@ dissect_s1ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &ProtocolIE_ID, FALSE);
-#line 92 "../../asn1/s1ap/s1ap.cnf"
+#line 92 "./asn1/s1ap/s1ap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &s1ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
}
@@ -1858,7 +1858,7 @@ static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = {
static int
dissect_s1ap_ProtocolIE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 134 "../../asn1/s1ap/s1ap.cnf"
+#line 134 "./asn1/s1ap/s1ap.cnf"
static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
{ "lowerBound", ASN1_PAR_INTEGER },
{ "upperBound", ASN1_PAR_INTEGER },
@@ -1916,7 +1916,7 @@ dissect_s1ap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_s1ap_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 194 "../../asn1/s1ap/s1ap.cnf"
+#line 194 "./asn1/s1ap/s1ap.cnf"
if (obj_id){
offset=call_per_oid_callback(obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index);
@@ -1967,7 +1967,7 @@ dissect_s1ap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 207 "../../asn1/s1ap/s1ap.cnf"
+#line 207 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -2105,7 +2105,7 @@ dissect_s1ap_CellBasedMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_s1ap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 244 "../../asn1/s1ap/s1ap.cnf"
+#line 244 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -2824,7 +2824,7 @@ static value_string_ext s1ap_CauseRadioNetwork_vals_ext = VALUE_STRING_EXT_INIT(
static int
dissect_s1ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1321 "../../asn1/s1ap/s1ap.cnf"
+#line 1321 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
36, &value, TRUE, 3, NULL);
@@ -2846,7 +2846,7 @@ const value_string s1ap_CauseTransport_vals[] = {
static int
dissect_s1ap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1326 "../../asn1/s1ap/s1ap.cnf"
+#line 1326 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2, &value, TRUE, 0, NULL);
@@ -2871,7 +2871,7 @@ const value_string s1ap_CauseNas_vals[] = {
static int
dissect_s1ap_CauseNas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1331 "../../asn1/s1ap/s1ap.cnf"
+#line 1331 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4, &value, TRUE, 1, NULL);
@@ -2898,7 +2898,7 @@ const value_string s1ap_CauseProtocol_vals[] = {
static int
dissect_s1ap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1336 "../../asn1/s1ap/s1ap.cnf"
+#line 1336 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7, &value, TRUE, 0, NULL);
@@ -2924,7 +2924,7 @@ const value_string s1ap_CauseMisc_vals[] = {
static int
dissect_s1ap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1341 "../../asn1/s1ap/s1ap.cnf"
+#line 1341 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6, &value, TRUE, 0, NULL);
@@ -2983,7 +2983,7 @@ dissect_s1ap_CellAccessMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_s1ap_Cdma2000PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 535 "../../asn1/s1ap/s1ap.cnf"
+#line 535 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
@@ -3025,7 +3025,7 @@ dissect_s1ap_Cdma2000RATType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_s1ap_Cdma2000SectorID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 550 "../../asn1/s1ap/s1ap.cnf"
+#line 550 "./asn1/s1ap/s1ap.cnf"
/* 9.2.1.25
* This IE is set to CDMA2000 Reference Cell ID
* corresponding to the HRPD/1xRTT sector under
@@ -3754,7 +3754,7 @@ dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 220 "../../asn1/s1ap/s1ap.cnf"
+#line 220 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
int length;
int p_offset;
@@ -3789,7 +3789,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 275 "../../asn1/s1ap/s1ap.cnf"
+#line 275 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
gint tvb_len;
@@ -4277,7 +4277,7 @@ static const value_string s1ap_HandoverType_vals[] = {
static int
dissect_s1ap_HandoverType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 310 "../../asn1/s1ap/s1ap.cnf"
+#line 310 "./asn1/s1ap/s1ap.cnf"
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5, &handover_type_value, TRUE, 0, NULL);
@@ -4595,7 +4595,7 @@ dissect_s1ap_LastVisitedCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 266 "../../asn1/s1ap/s1ap.cnf"
+#line 266 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
@@ -5239,7 +5239,7 @@ dissect_s1ap_MutingPatternInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 257 "../../asn1/s1ap/s1ap.cnf"
+#line 257 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
@@ -5533,7 +5533,7 @@ dissect_s1ap_RequestType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_s1ap_RIMInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 519 "../../asn1/s1ap/s1ap.cnf"
+#line 519 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -5684,7 +5684,7 @@ dissect_s1ap_RLFReportInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 444 "../../asn1/s1ap/s1ap.cnf"
+#line 444 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
@@ -5992,7 +5992,7 @@ dissect_s1ap_SynchronisationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 329 "../../asn1/s1ap/s1ap.cnf"
+#line 329 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
@@ -6338,7 +6338,7 @@ dissect_s1ap_TargeteNB_ToSourceeNB_TransparentContainer(tvbuff_t *tvb _U_, int o
static int
dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 386 "../../asn1/s1ap/s1ap.cnf"
+#line 386 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
@@ -6650,7 +6650,7 @@ dissect_s1ap_UEPagingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 504 "../../asn1/s1ap/s1ap.cnf"
+#line 504 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
@@ -6844,7 +6844,7 @@ dissect_s1ap_ENBIndirectX2TransportLayerAddresses(tvbuff_t *tvb _U_, int offset
static int
dissect_s1ap_E_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 161 "../../asn1/s1ap/s1ap.cnf"
+#line 161 "./asn1/s1ap/s1ap.cnf"
asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
asn1_param_push_integer(actx, 1);
asn1_param_push_integer(actx, maxnoofE_RABs);
@@ -6864,7 +6864,7 @@ static const per_sequence_t HandoverRequired_sequence[] = {
static int
dissect_s1ap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 315 "../../asn1/s1ap/s1ap.cnf"
+#line 315 "./asn1/s1ap/s1ap.cnf"
handover_type_value = 0;
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequired ");
@@ -6882,7 +6882,7 @@ static const per_sequence_t HandoverCommand_sequence[] = {
static int
dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 317 "../../asn1/s1ap/s1ap.cnf"
+#line 317 "./asn1/s1ap/s1ap.cnf"
handover_type_value = 0;
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCommand ");
@@ -6928,7 +6928,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = {
static int
dissect_s1ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1226 "../../asn1/s1ap/s1ap.cnf"
+#line 1226 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverPreparationFailure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -6945,7 +6945,7 @@ static const per_sequence_t HandoverRequest_sequence[] = {
static int
dissect_s1ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 319 "../../asn1/s1ap/s1ap.cnf"
+#line 319 "./asn1/s1ap/s1ap.cnf"
handover_type_value = 0;
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequest ");
@@ -6991,7 +6991,7 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = {
static int
dissect_s1ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1230 "../../asn1/s1ap/s1ap.cnf"
+#line 1230 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequestAcknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7063,7 +7063,7 @@ static const per_sequence_t HandoverFailure_sequence[] = {
static int
dissect_s1ap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1232 "../../asn1/s1ap/s1ap.cnf"
+#line 1232 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverFailure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7080,7 +7080,7 @@ static const per_sequence_t HandoverNotify_sequence[] = {
static int
dissect_s1ap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1234 "../../asn1/s1ap/s1ap.cnf"
+#line 1234 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverNotify ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7097,7 +7097,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = {
static int
dissect_s1ap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1236 "../../asn1/s1ap/s1ap.cnf"
+#line 1236 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7140,7 +7140,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = {
static int
dissect_s1ap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1238 "../../asn1/s1ap/s1ap.cnf"
+#line 1238 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequestAcknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7183,7 +7183,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = {
static int
dissect_s1ap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1240 "../../asn1/s1ap/s1ap.cnf"
+#line 1240 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequestFailure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7200,7 +7200,7 @@ static const per_sequence_t HandoverCancel_sequence[] = {
static int
dissect_s1ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1242 "../../asn1/s1ap/s1ap.cnf"
+#line 1242 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCancel ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7217,7 +7217,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = {
static int
dissect_s1ap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1244 "../../asn1/s1ap/s1ap.cnf"
+#line 1244 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCancelAcknowledge ");
@@ -7236,7 +7236,7 @@ static const per_sequence_t E_RABSetupRequest_sequence[] = {
static int
dissect_s1ap_E_RABSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1188 "../../asn1/s1ap/s1ap.cnf"
+#line 1188 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7286,7 +7286,7 @@ static const per_sequence_t E_RABSetupResponse_sequence[] = {
static int
dissect_s1ap_E_RABSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1190 "../../asn1/s1ap/s1ap.cnf"
+#line 1190 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupResponse ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7334,7 +7334,7 @@ static const per_sequence_t E_RABModifyRequest_sequence[] = {
static int
dissect_s1ap_E_RABModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1192 "../../asn1/s1ap/s1ap.cnf"
+#line 1192 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABModifyRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7382,7 +7382,7 @@ static const per_sequence_t E_RABModifyResponse_sequence[] = {
static int
dissect_s1ap_E_RABModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1194 "../../asn1/s1ap/s1ap.cnf"
+#line 1194 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABModifyResponse ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7428,7 +7428,7 @@ static const per_sequence_t E_RABReleaseCommand_sequence[] = {
static int
dissect_s1ap_E_RABReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1196 "../../asn1/s1ap/s1ap.cnf"
+#line 1196 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseCommand ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7445,7 +7445,7 @@ static const per_sequence_t E_RABReleaseResponse_sequence[] = {
static int
dissect_s1ap_E_RABReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1198 "../../asn1/s1ap/s1ap.cnf"
+#line 1198 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseResponse ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7491,7 +7491,7 @@ static const per_sequence_t E_RABReleaseIndication_sequence[] = {
static int
dissect_s1ap_E_RABReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1200 "../../asn1/s1ap/s1ap.cnf"
+#line 1200 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseIndication ");
@@ -7509,7 +7509,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = {
static int
dissect_s1ap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1203 "../../asn1/s1ap/s1ap.cnf"
+#line 1203 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7559,7 +7559,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = {
static int
dissect_s1ap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1205 "../../asn1/s1ap/s1ap.cnf"
+#line 1205 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupResponse ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7607,7 +7607,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = {
static int
dissect_s1ap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1207 "../../asn1/s1ap/s1ap.cnf"
+#line 1207 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupFailure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7667,7 +7667,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = {
static int
dissect_s1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1209 "../../asn1/s1ap/s1ap.cnf"
+#line 1209 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7684,7 +7684,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = {
static int
dissect_s1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1211 "../../asn1/s1ap/s1ap.cnf"
+#line 1211 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseCommand ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7701,7 +7701,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = {
static int
dissect_s1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1213 "../../asn1/s1ap/s1ap.cnf"
+#line 1213 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseComplete ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7718,7 +7718,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = {
static int
dissect_s1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1215 "../../asn1/s1ap/s1ap.cnf"
+#line 1215 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7735,7 +7735,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = {
static int
dissect_s1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1217 "../../asn1/s1ap/s1ap.cnf"
+#line 1217 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationResponse ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7752,7 +7752,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = {
static int
dissect_s1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1219 "../../asn1/s1ap/s1ap.cnf"
+#line 1219 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationFailure ");
@@ -7770,7 +7770,7 @@ static const per_sequence_t UERadioCapabilityMatchRequest_sequence[] = {
static int
dissect_s1ap_UERadioCapabilityMatchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1294 "../../asn1/s1ap/s1ap.cnf"
+#line 1294 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UERadioCapabilityMatchRequest ");
@@ -7788,7 +7788,7 @@ static const per_sequence_t UERadioCapabilityMatchResponse_sequence[] = {
static int
dissect_s1ap_UERadioCapabilityMatchResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1297 "../../asn1/s1ap/s1ap.cnf"
+#line 1297 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UERadioCapabilityMatchResponse ");
@@ -7806,7 +7806,7 @@ static const per_sequence_t DownlinkNASTransport_sequence[] = {
static int
dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 302 "../../asn1/s1ap/s1ap.cnf"
+#line 302 "./asn1/s1ap/s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -7825,7 +7825,7 @@ static const per_sequence_t InitialUEMessage_sequence[] = {
static int
dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 298 "../../asn1/s1ap/s1ap.cnf"
+#line 298 "./asn1/s1ap/s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -7844,7 +7844,7 @@ static const per_sequence_t UplinkNASTransport_sequence[] = {
static int
dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 306 "../../asn1/s1ap/s1ap.cnf"
+#line 306 "./asn1/s1ap/s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -7877,7 +7877,7 @@ static const per_sequence_t RerouteNASRequest_sequence[] = {
static int
dissect_s1ap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1312 "../../asn1/s1ap/s1ap.cnf"
+#line 1312 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", RerouteNASRequest ");
@@ -7895,7 +7895,7 @@ static const per_sequence_t Reset_sequence[] = {
static int
dissect_s1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1248 "../../asn1/s1ap/s1ap.cnf"
+#line 1248 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", Reset ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7963,7 +7963,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = {
static int
dissect_s1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1250 "../../asn1/s1ap/s1ap.cnf"
+#line 1250 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", ResetAcknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8008,7 +8008,7 @@ static const per_sequence_t S1SetupRequest_sequence[] = {
static int
dissect_s1ap_S1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1254 "../../asn1/s1ap/s1ap.cnf"
+#line 1254 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8025,7 +8025,7 @@ static const per_sequence_t S1SetupResponse_sequence[] = {
static int
dissect_s1ap_S1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1256 "../../asn1/s1ap/s1ap.cnf"
+#line 1256 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupResponse ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8042,7 +8042,7 @@ static const per_sequence_t S1SetupFailure_sequence[] = {
static int
dissect_s1ap_S1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1258 "../../asn1/s1ap/s1ap.cnf"
+#line 1258 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupFailure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8059,7 +8059,7 @@ static const per_sequence_t ENBConfigurationUpdate_sequence[] = {
static int
dissect_s1ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1260 "../../asn1/s1ap/s1ap.cnf"
+#line 1260 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdate ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8076,7 +8076,7 @@ static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_s1ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1262 "../../asn1/s1ap/s1ap.cnf"
+#line 1262 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdateAcknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8093,7 +8093,7 @@ static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = {
static int
dissect_s1ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1264 "../../asn1/s1ap/s1ap.cnf"
+#line 1264 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdateFailure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8110,7 +8110,7 @@ static const per_sequence_t MMEConfigurationUpdate_sequence[] = {
static int
dissect_s1ap_MMEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1266 "../../asn1/s1ap/s1ap.cnf"
+#line 1266 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdate ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8127,7 +8127,7 @@ static const per_sequence_t MMEConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_s1ap_MMEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1268 "../../asn1/s1ap/s1ap.cnf"
+#line 1268 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdateAcknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8144,7 +8144,7 @@ static const per_sequence_t MMEConfigurationUpdateFailure_sequence[] = {
static int
dissect_s1ap_MMEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1270 "../../asn1/s1ap/s1ap.cnf"
+#line 1270 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdateFailure ");
@@ -8358,7 +8358,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = {
static int
dissect_s1ap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1273 "../../asn1/s1ap/s1ap.cnf"
+#line 1273 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8375,7 +8375,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = {
static int
dissect_s1ap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1275 "../../asn1/s1ap/s1ap.cnf"
+#line 1275 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningResponse ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8482,7 +8482,7 @@ static const per_sequence_t KillRequest_sequence[] = {
static int
dissect_s1ap_KillRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1277 "../../asn1/s1ap/s1ap.cnf"
+#line 1277 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", KillRequest ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8499,7 +8499,7 @@ static const per_sequence_t KillResponse_sequence[] = {
static int
dissect_s1ap_KillResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1279 "../../asn1/s1ap/s1ap.cnf"
+#line 1279 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", KillResponse ");
@@ -8531,7 +8531,7 @@ static const per_sequence_t PWSFailureIndication_sequence[] = {
static int
dissect_s1ap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1315 "../../asn1/s1ap/s1ap.cnf"
+#line 1315 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", PWSFailureIndication ");
@@ -8552,7 +8552,7 @@ static const per_sequence_t DownlinkUEAssociatedLPPaTransport_sequence[] = {
static int
dissect_s1ap_DownlinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1282 "../../asn1/s1ap/s1ap.cnf"
+#line 1282 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", DownlinkUEAssociatedLPPaTransport ");
@@ -8570,7 +8570,7 @@ static const per_sequence_t UplinkUEAssociatedLPPaTransport_sequence[] = {
static int
dissect_s1ap_UplinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1285 "../../asn1/s1ap/s1ap.cnf"
+#line 1285 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UplinkUEAssociatedLPPaTransport ");
@@ -8588,7 +8588,7 @@ static const per_sequence_t DownlinkNonUEAssociatedLPPaTransport_sequence[] = {
static int
dissect_s1ap_DownlinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1288 "../../asn1/s1ap/s1ap.cnf"
+#line 1288 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", DownlinkNonUEAssociatedLPPaTransport ");
@@ -8606,7 +8606,7 @@ static const per_sequence_t UplinkNonUEAssociatedLPPaTransport_sequence[] = {
static int
dissect_s1ap_UplinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1291 "../../asn1/s1ap/s1ap.cnf"
+#line 1291 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UplinkNonUEAssociatedLPPaTransport ");
@@ -8624,7 +8624,7 @@ static const per_sequence_t E_RABModificationIndication_sequence[] = {
static int
dissect_s1ap_E_RABModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1300 "../../asn1/s1ap/s1ap.cnf"
+#line 1300 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E-RABModificationIndication ");
@@ -8712,7 +8712,7 @@ static const per_sequence_t E_RABModificationConfirm_sequence[] = {
static int
dissect_s1ap_E_RABModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1303 "../../asn1/s1ap/s1ap.cnf"
+#line 1303 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", E-RABModificationConfirm ");
@@ -8759,7 +8759,7 @@ static const per_sequence_t UEContextModificationIndication_sequence[] = {
static int
dissect_s1ap_UEContextModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1306 "../../asn1/s1ap/s1ap.cnf"
+#line 1306 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationIndication ");
@@ -8777,7 +8777,7 @@ static const per_sequence_t UEContextModificationConfirm_sequence[] = {
static int
dissect_s1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1309 "../../asn1/s1ap/s1ap.cnf"
+#line 1309 "./asn1/s1ap/s1ap.cnf"
col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationConfirm ");
@@ -8791,7 +8791,7 @@ dissect_s1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_s1ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 116 "../../asn1/s1ap/s1ap.cnf"
+#line 116 "./asn1/s1ap/s1ap.cnf"
message_type = INITIATING_MESSAGE;
offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
@@ -8819,7 +8819,7 @@ dissect_s1ap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_s1ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 119 "../../asn1/s1ap/s1ap.cnf"
+#line 119 "./asn1/s1ap/s1ap.cnf"
message_type = SUCCESSFUL_OUTCOME;
offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
@@ -8847,7 +8847,7 @@ dissect_s1ap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_s1ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 122 "../../asn1/s1ap/s1ap.cnf"
+#line 122 "./asn1/s1ap/s1ap.cnf"
message_type = UNSUCCESSFUL_OUTCOME;
@@ -11811,7 +11811,7 @@ int dissect_s1ap_SONtransferCause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-s1ap-fn.c ---*/
-#line 136 "../../asn1/s1ap/packet-s1ap-template.c"
+#line 136 "./asn1/s1ap/packet-s1ap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -11901,7 +11901,7 @@ proto_reg_handoff_s1ap(void)
Initialized=TRUE;
/*--- Included file: packet-s1ap-dis-tab.c ---*/
-#line 1 "../../asn1/s1ap/packet-s1ap-dis-tab.c"
+#line 1 "./asn1/s1ap/packet-s1ap-dis-tab.c"
dissector_add_uint("s1ap.ies", id_MME_UE_S1AP_ID, create_dissector_handle(dissect_MME_UE_S1AP_ID_PDU, proto_s1ap));
dissector_add_uint("s1ap.ies", id_HandoverType, create_dissector_handle(dissect_HandoverType_PDU, proto_s1ap));
dissector_add_uint("s1ap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_s1ap));
@@ -12183,7 +12183,7 @@ proto_reg_handoff_s1ap(void)
/*--- End of included file: packet-s1ap-dis-tab.c ---*/
-#line 224 "../../asn1/s1ap/packet-s1ap-template.c"
+#line 224 "./asn1/s1ap/packet-s1ap-template.c"
} else {
if (SctpPort != 0) {
dissector_delete_uint("sctp.port", SctpPort, s1ap_handle);
@@ -12213,7 +12213,7 @@ void proto_register_s1ap(void) {
/*--- Included file: packet-s1ap-hfarr.c ---*/
-#line 1 "../../asn1/s1ap/packet-s1ap-hfarr.c"
+#line 1 "./asn1/s1ap/packet-s1ap-hfarr.c"
{ &hf_s1ap_Additional_GUTI_PDU,
{ "Additional-GUTI", "s1ap.Additional_GUTI_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -14692,7 +14692,7 @@ void proto_register_s1ap(void) {
NULL, HFILL }},
/*--- End of included file: packet-s1ap-hfarr.c ---*/
-#line 252 "../../asn1/s1ap/packet-s1ap-template.c"
+#line 252 "./asn1/s1ap/packet-s1ap-template.c"
};
/* List of subtrees */
@@ -14708,7 +14708,7 @@ void proto_register_s1ap(void) {
&ett_s1ap_Cdma2000SectorID,
/*--- Included file: packet-s1ap-ettarr.c ---*/
-#line 1 "../../asn1/s1ap/packet-s1ap-ettarr.c"
+#line 1 "./asn1/s1ap/packet-s1ap-ettarr.c"
&ett_s1ap_PrivateIE_ID,
&ett_s1ap_ProtocolIE_Container,
&ett_s1ap_ProtocolIE_Field,
@@ -15013,7 +15013,7 @@ void proto_register_s1ap(void) {
&ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem,
/*--- End of included file: packet-s1ap-ettarr.c ---*/
-#line 266 "../../asn1/s1ap/packet-s1ap-template.c"
+#line 266 "./asn1/s1ap/packet-s1ap-template.c"
};
module_t *s1ap_module;
diff --git a/epan/dissectors/packet-s1ap.h b/epan/dissectors/packet-s1ap.h
index 92910fc594..87583f974a 100644
--- a/epan/dissectors/packet-s1ap.h
+++ b/epan/dissectors/packet-s1ap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-s1ap.h */
-/* ../../tools/asn2wrs.py -p s1ap -c ./s1ap.cnf -s ./packet-s1ap-template -D . -O ../../epan/dissectors S1AP-CommonDataTypes.asn S1AP-Constants.asn S1AP-Containers.asn S1AP-IEs.asn S1AP-PDU-Contents.asn S1AP-PDU-Descriptions.asn S1AP-SonTransfer-IEs.asn */
+/* asn2wrs.py -p s1ap -c ./s1ap.cnf -s ./packet-s1ap-template -D . -O ../.. S1AP-CommonDataTypes.asn S1AP-Constants.asn S1AP-Containers.asn S1AP-IEs.asn S1AP-PDU-Contents.asn S1AP-PDU-Descriptions.asn S1AP-SonTransfer-IEs.asn */
/* Input file: packet-s1ap-template.h */
-#line 1 "../../asn1/s1ap/packet-s1ap-template.h"
+#line 1 "./asn1/s1ap/packet-s1ap-template.h"
/* packet-s1ap.h
* Routines for E-UTRAN S1 Application Protocol (S1AP) packet dissection
*
@@ -41,7 +41,7 @@ typedef struct _s1ap_ctx_t {
/*--- Included file: packet-s1ap-exp.h ---*/
-#line 1 "../../asn1/s1ap/packet-s1ap-exp.h"
+#line 1 "./asn1/s1ap/packet-s1ap-exp.h"
WS_DLL_PUBLIC const value_string s1ap_CauseMisc_vals[];
WS_DLL_PUBLIC const value_string s1ap_CauseProtocol_vals[];
WS_DLL_PUBLIC const value_string s1ap_CauseRadioNetwork_vals[];
@@ -61,6 +61,6 @@ int dissect_s1ap_SONtransferResponseContainer_PDU(tvbuff_t *tvb _U_, packet_info
int dissect_s1ap_SONtransferCause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-s1ap-exp.h ---*/
-#line 35 "../../asn1/s1ap/packet-s1ap-template.h"
+#line 35 "./asn1/s1ap/packet-s1ap-template.h"
#endif /* PACKET_S1AP_H */
diff --git a/epan/dissectors/packet-sabp.c b/epan/dissectors/packet-sabp.c
index 7c437046d8..efdb882b84 100644
--- a/epan/dissectors/packet-sabp.c
+++ b/epan/dissectors/packet-sabp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-sabp.c */
-/* ../../tools/asn2wrs.py -p sabp -c ./sabp.cnf -s ./packet-sabp-template -D . -O ../../epan/dissectors SABP-CommonDataTypes.asn SABP-Constants.asn SABP-Containers.asn SABP-IEs.asn SABP-PDU-Contents.asn SABP-PDU-Descriptions.asn */
+/* asn2wrs.py -p sabp -c ./sabp.cnf -s ./packet-sabp-template -D . -O ../.. SABP-CommonDataTypes.asn SABP-Constants.asn SABP-Containers.asn SABP-IEs.asn SABP-PDU-Contents.asn SABP-PDU-Descriptions.asn */
/* Input file: packet-sabp-template.c */
-#line 1 "../../asn1/sabp/packet-sabp-template.c"
+#line 1 "./asn1/sabp/packet-sabp-template.c"
/* packet-sabp-template.c
* Routines for UTRAN Iu-BC Interface: Service Area Broadcast Protocol (SABP) packet dissection
* Copyright 2007, Tomas Kukosa <tomas.kukosa@siemens.com>
@@ -51,7 +51,7 @@
/*--- Included file: packet-sabp-val.h ---*/
-#line 1 "../../asn1/sabp/packet-sabp-val.h"
+#line 1 "./asn1/sabp/packet-sabp-val.h"
#define maxNrOfErrors 256
#define maxnoofSAI 65535
#define maxProtocolExtensions 65535
@@ -95,7 +95,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-sabp-val.h ---*/
-#line 45 "../../asn1/sabp/packet-sabp-template.c"
+#line 45 "./asn1/sabp/packet-sabp-template.c"
void proto_register_sabp(void);
void proto_reg_handoff_sabp(void);
@@ -109,7 +109,7 @@ static int hf_sabp_cb_msg_inf_page = -1;
static int hf_sabp_cbs_page_content = -1;
/*--- Included file: packet-sabp-hf.c ---*/
-#line 1 "../../asn1/sabp/packet-sabp-hf.c"
+#line 1 "./asn1/sabp/packet-sabp-hf.c"
static int hf_sabp_Broadcast_Message_Content_PDU = -1; /* Broadcast_Message_Content */
static int hf_sabp_Broadcast_Message_Content_Validity_Indicator_PDU = -1; /* Broadcast_Message_Content_Validity_Indicator */
static int hf_sabp_Category_PDU = -1; /* Category */
@@ -191,7 +191,7 @@ static int hf_sabp_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
static int hf_sabp_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-sabp-hf.c ---*/
-#line 57 "../../asn1/sabp/packet-sabp-template.c"
+#line 57 "./asn1/sabp/packet-sabp-template.c"
/* Initialize the subtree pointers */
static int ett_sabp = -1;
@@ -205,7 +205,7 @@ static int ett_sabp_cbs_page_content = -1;
/*--- Included file: packet-sabp-ett.c ---*/
-#line 1 "../../asn1/sabp/packet-sabp-ett.c"
+#line 1 "./asn1/sabp/packet-sabp-ett.c"
static gint ett_sabp_ProtocolIE_Container = -1;
static gint ett_sabp_ProtocolIE_Field = -1;
static gint ett_sabp_ProtocolExtensionContainer = -1;
@@ -247,7 +247,7 @@ static gint ett_sabp_SuccessfulOutcome = -1;
static gint ett_sabp_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-sabp-ett.c ---*/
-#line 69 "../../asn1/sabp/packet-sabp-template.c"
+#line 69 "./asn1/sabp/packet-sabp-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -274,7 +274,7 @@ static void dissect_sabp_cb_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
/*--- Included file: packet-sabp-fn.c ---*/
-#line 1 "../../asn1/sabp/packet-sabp-fn.c"
+#line 1 "./asn1/sabp/packet-sabp-fn.c"
static const value_string sabp_Criticality_vals[] = {
{ 0, "reject" },
@@ -313,7 +313,7 @@ dissect_sabp_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 57 "../../asn1/sabp/sabp.cnf"
+#line 57 "./asn1/sabp/sabp.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str_ext(ProcedureCode, &sabp_ProcedureCode_vals_ext,
"unknown message"));
@@ -366,7 +366,7 @@ dissect_sabp_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &ProtocolIE_ID, FALSE);
-#line 44 "../../asn1/sabp/sabp.cnf"
+#line 44 "./asn1/sabp/sabp.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &sabp_ProtocolIE_ID_vals_ext, "unknown (%d)"));
}
@@ -484,7 +484,7 @@ dissect_sabp_Available_Bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_sabp_Broadcast_Message_Content(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 210 "../../asn1/sabp/sabp.cnf"
+#line 210 "./asn1/sabp/sabp.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -668,7 +668,7 @@ dissect_sabp_MessageStructure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_sabp_Data_Coding_Scheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 171 "../../asn1/sabp/sabp.cnf"
+#line 171 "./asn1/sabp/sabp.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
@@ -690,7 +690,7 @@ dissect_sabp_Data_Coding_Scheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_sabp_T_pLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 159 "../../asn1/sabp/sabp.cnf"
+#line 159 "./asn1/sabp/sabp.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
@@ -767,7 +767,7 @@ dissect_sabp_Failure_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_sabp_Message_Identifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 182 "../../asn1/sabp/sabp.cnf"
+#line 182 "./asn1/sabp/sabp.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -786,7 +786,7 @@ dissect_sabp_Message_Identifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_sabp_Serial_Number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 190 "../../asn1/sabp/sabp.cnf"
+#line 190 "./asn1/sabp/sabp.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
@@ -807,7 +807,7 @@ dissect_sabp_Serial_Number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_sabp_New_Serial_Number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 200 "../../asn1/sabp/sabp.cnf"
+#line 200 "./asn1/sabp/sabp.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
@@ -1727,7 +1727,7 @@ static int dissect_SABP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-sabp-fn.c ---*/
-#line 94 "../../asn1/sabp/packet-sabp-template.c"
+#line 94 "./asn1/sabp/packet-sabp-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -1882,7 +1882,7 @@ void proto_register_sabp(void) {
/*--- Included file: packet-sabp-hfarr.c ---*/
-#line 1 "../../asn1/sabp/packet-sabp-hfarr.c"
+#line 1 "./asn1/sabp/packet-sabp-hfarr.c"
{ &hf_sabp_Broadcast_Message_Content_PDU,
{ "Broadcast-Message-Content", "sabp.Broadcast_Message_Content",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2201,7 +2201,7 @@ void proto_register_sabp(void) {
"UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-sabp-hfarr.c ---*/
-#line 247 "../../asn1/sabp/packet-sabp-template.c"
+#line 247 "./asn1/sabp/packet-sabp-template.c"
};
/* List of subtrees */
@@ -2216,7 +2216,7 @@ void proto_register_sabp(void) {
&ett_sabp_cbs_page_content,
/*--- Included file: packet-sabp-ettarr.c ---*/
-#line 1 "../../asn1/sabp/packet-sabp-ettarr.c"
+#line 1 "./asn1/sabp/packet-sabp-ettarr.c"
&ett_sabp_ProtocolIE_Container,
&ett_sabp_ProtocolIE_Field,
&ett_sabp_ProtocolExtensionContainer,
@@ -2258,7 +2258,7 @@ void proto_register_sabp(void) {
&ett_sabp_UnsuccessfulOutcome,
/*--- End of included file: packet-sabp-ettarr.c ---*/
-#line 260 "../../asn1/sabp/packet-sabp-template.c"
+#line 260 "./asn1/sabp/packet-sabp-template.c"
};
@@ -2296,7 +2296,7 @@ proto_reg_handoff_sabp(void)
/*--- Included file: packet-sabp-dis-tab.c ---*/
-#line 1 "../../asn1/sabp/packet-sabp-dis-tab.c"
+#line 1 "./asn1/sabp/packet-sabp-dis-tab.c"
dissector_add_uint("sabp.ies", id_Message_Identifier, create_dissector_handle(dissect_Message_Identifier_PDU, proto_sabp));
dissector_add_uint("sabp.ies", id_New_Serial_Number, create_dissector_handle(dissect_New_Serial_Number_PDU, proto_sabp));
dissector_add_uint("sabp.ies", id_Old_Serial_Number, create_dissector_handle(dissect_Old_Serial_Number_PDU, proto_sabp));
@@ -2340,7 +2340,7 @@ proto_reg_handoff_sabp(void)
/*--- End of included file: packet-sabp-dis-tab.c ---*/
-#line 296 "../../asn1/sabp/packet-sabp-template.c"
+#line 296 "./asn1/sabp/packet-sabp-template.c"
}
diff --git a/epan/dissectors/packet-sbc-ap.c b/epan/dissectors/packet-sbc-ap.c
index 8d272581d1..00b32483ac 100644
--- a/epan/dissectors/packet-sbc-ap.c
+++ b/epan/dissectors/packet-sbc-ap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-sbc-ap.c */
-/* ../../tools/asn2wrs.py -p sbc-ap -c ./sbc-ap.cnf -s ./packet-sbc-ap-template -D . -O ../../epan/dissectors SBC-AP-CommonDataTypes.asn SBC-AP-Constants.asn SBC-AP-Containers.asn SBC-AP-IEs.asn SBC-AP-PDU-Contents.asn SBC-AP-PDU-Descriptions.asn */
+/* asn2wrs.py -p sbc-ap -c ./sbc-ap.cnf -s ./packet-sbc-ap-template -D . -O ../.. SBC-AP-CommonDataTypes.asn SBC-AP-Constants.asn SBC-AP-Containers.asn SBC-AP-IEs.asn SBC-AP-PDU-Contents.asn SBC-AP-PDU-Descriptions.asn */
/* Input file: packet-sbc-ap-template.c */
-#line 1 "../../asn1/sbc-ap/packet-sbc-ap-template.c"
+#line 1 "./asn1/sbc-ap/packet-sbc-ap-template.c"
/* packet-sbc-ap.c
* Routines for SBc Application Part (SBc-AP) packet dissection
*
@@ -57,7 +57,7 @@ static dissector_handle_t sbc_ap_handle=NULL;
/*--- Included file: packet-sbc-ap-val.h ---*/
-#line 1 "../../asn1/sbc-ap/packet-sbc-ap-val.h"
+#line 1 "./asn1/sbc-ap/packet-sbc-ap-val.h"
#define maxNrOfErrors 256
#define maxnoofCellID 65535
#define maxNrOfTAIs 65535
@@ -98,14 +98,14 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-sbc-ap-val.h ---*/
-#line 51 "../../asn1/sbc-ap/packet-sbc-ap-template.c"
+#line 51 "./asn1/sbc-ap/packet-sbc-ap-template.c"
/* Initialize the protocol and registered fields */
static int proto_sbc_ap = -1;
/*--- Included file: packet-sbc-ap-hf.c ---*/
-#line 1 "../../asn1/sbc-ap/packet-sbc-ap-hf.c"
+#line 1 "./asn1/sbc-ap/packet-sbc-ap-hf.c"
static int hf_sbc_ap_Cause_PDU = -1; /* Cause */
static int hf_sbc_ap_Concurrent_Warning_Message_Indicator_PDU = -1; /* Concurrent_Warning_Message_Indicator */
static int hf_sbc_ap_Criticality_Diagnostics_PDU = -1; /* Criticality_Diagnostics */
@@ -163,14 +163,14 @@ static int hf_sbc_ap_successfulOutcome_value = -1; /* SuccessfulOutcome_value *
static int hf_sbc_ap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-sbc-ap-hf.c ---*/
-#line 56 "../../asn1/sbc-ap/packet-sbc-ap-template.c"
+#line 56 "./asn1/sbc-ap/packet-sbc-ap-template.c"
/* Initialize the subtree pointers */
static int ett_sbc_ap = -1;
/*--- Included file: packet-sbc-ap-ett.c ---*/
-#line 1 "../../asn1/sbc-ap/packet-sbc-ap-ett.c"
+#line 1 "./asn1/sbc-ap/packet-sbc-ap-ett.c"
static gint ett_sbc_ap_ProtocolIE_Container = -1;
static gint ett_sbc_ap_ProtocolIE_Field = -1;
static gint ett_sbc_ap_ProtocolExtensionContainer = -1;
@@ -196,7 +196,7 @@ static gint ett_sbc_ap_SuccessfulOutcome = -1;
static gint ett_sbc_ap_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-sbc-ap-ett.c ---*/
-#line 61 "../../asn1/sbc-ap/packet-sbc-ap-template.c"
+#line 61 "./asn1/sbc-ap/packet-sbc-ap-template.c"
enum{
INITIATING_MESSAGE,
@@ -225,7 +225,7 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
/*--- Included file: packet-sbc-ap-fn.c ---*/
-#line 1 "../../asn1/sbc-ap/packet-sbc-ap-fn.c"
+#line 1 "./asn1/sbc-ap/packet-sbc-ap-fn.c"
static const value_string sbc_ap_Criticality_vals[] = {
{ 0, "reject" },
@@ -256,7 +256,7 @@ dissect_sbc_ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 62 "../../asn1/sbc-ap/sbc-ap.cnf"
+#line 62 "./asn1/sbc-ap/sbc-ap.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str(ProcedureCode, sbc_ap_ProcedureCode_vals,
"unknown message"));
@@ -307,7 +307,7 @@ dissect_sbc_ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &ProtocolIE_ID, FALSE);
-#line 45 "../../asn1/sbc-ap/sbc-ap.cnf"
+#line 45 "./asn1/sbc-ap/sbc-ap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(sbc_ap_ProtocolIE_ID_vals), "unknown (%d)"));
}
@@ -549,7 +549,7 @@ dissect_sbc_ap_Data_Coding_Scheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_sbc_ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 99 "../../asn1/sbc-ap/sbc-ap.cnf"
+#line 99 "./asn1/sbc-ap/sbc-ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -1125,7 +1125,7 @@ static int dissect_SBC_AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-sbc-ap-fn.c ---*/
-#line 88 "../../asn1/sbc-ap/packet-sbc-ap-template.c"
+#line 88 "./asn1/sbc-ap/packet-sbc-ap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -1190,7 +1190,7 @@ void proto_register_sbc_ap(void) {
/*--- Included file: packet-sbc-ap-hfarr.c ---*/
-#line 1 "../../asn1/sbc-ap/packet-sbc-ap-hfarr.c"
+#line 1 "./asn1/sbc-ap/packet-sbc-ap-hfarr.c"
{ &hf_sbc_ap_Cause_PDU,
{ "Cause", "sbc-ap.Cause",
FT_UINT32, BASE_DEC, VALS(sbc_ap_Cause_vals), 0,
@@ -1413,7 +1413,7 @@ void proto_register_sbc_ap(void) {
"UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-sbc-ap-hfarr.c ---*/
-#line 151 "../../asn1/sbc-ap/packet-sbc-ap-template.c"
+#line 151 "./asn1/sbc-ap/packet-sbc-ap-template.c"
};
/* List of subtrees */
@@ -1421,7 +1421,7 @@ void proto_register_sbc_ap(void) {
&ett_sbc_ap,
/*--- Included file: packet-sbc-ap-ettarr.c ---*/
-#line 1 "../../asn1/sbc-ap/packet-sbc-ap-ettarr.c"
+#line 1 "./asn1/sbc-ap/packet-sbc-ap-ettarr.c"
&ett_sbc_ap_ProtocolIE_Container,
&ett_sbc_ap_ProtocolIE_Field,
&ett_sbc_ap_ProtocolExtensionContainer,
@@ -1447,7 +1447,7 @@ void proto_register_sbc_ap(void) {
&ett_sbc_ap_UnsuccessfulOutcome,
/*--- End of included file: packet-sbc-ap-ettarr.c ---*/
-#line 157 "../../asn1/sbc-ap/packet-sbc-ap-template.c"
+#line 157 "./asn1/sbc-ap/packet-sbc-ap-template.c"
};
@@ -1482,7 +1482,7 @@ proto_reg_handoff_sbc_ap(void)
inited = TRUE;
/*--- Included file: packet-sbc-ap-dis-tab.c ---*/
-#line 1 "../../asn1/sbc-ap/packet-sbc-ap-dis-tab.c"
+#line 1 "./asn1/sbc-ap/packet-sbc-ap-dis-tab.c"
dissector_add_uint("sbc_ap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_sbc_ap));
dissector_add_uint("sbc_ap.ies", id_Criticality_Diagnostics, create_dissector_handle(dissect_Criticality_Diagnostics_PDU, proto_sbc_ap));
dissector_add_uint("sbc_ap.ies", id_Data_Coding_Scheme, create_dissector_handle(dissect_Data_Coding_Scheme_PDU, proto_sbc_ap));
@@ -1505,7 +1505,7 @@ proto_reg_handoff_sbc_ap(void)
/*--- End of included file: packet-sbc-ap-dis-tab.c ---*/
-#line 190 "../../asn1/sbc-ap/packet-sbc-ap-template.c"
+#line 190 "./asn1/sbc-ap/packet-sbc-ap-template.c"
} else {
if (SctpPort != 0) {
dissector_delete_uint("sctp.port", SctpPort, sbc_ap_handle);
diff --git a/epan/dissectors/packet-smrse.c b/epan/dissectors/packet-smrse.c
index 6e6c5d50fe..71b64a3899 100644
--- a/epan/dissectors/packet-smrse.c
+++ b/epan/dissectors/packet-smrse.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-smrse.c */
-/* ../../tools/asn2wrs.py -b -p smrse -c ./smrse.cnf -s ./packet-smrse-template -D . -O ../../epan/dissectors SMRSE.asn */
+/* asn2wrs.py -b -p smrse -c ./smrse.cnf -s ./packet-smrse-template -D . -O ../.. SMRSE.asn */
/* Input file: packet-smrse-template.c */
-#line 1 "../../asn1/smrse/packet-smrse-template.c"
+#line 1 "./asn1/smrse/packet-smrse-template.c"
/* packet-smrse.c
* Routines for SMRSE Short Message Relay Service packet dissection
* Ronnie Sahlberg 2004
@@ -54,7 +54,7 @@ static int hf_smrse_length = -1;
static int hf_smrse_Octet_Format = -1;
/*--- Included file: packet-smrse-hf.c ---*/
-#line 1 "../../asn1/smrse/packet-smrse-hf.c"
+#line 1 "./asn1/smrse/packet-smrse-hf.c"
static int hf_smrse_sc_address = -1; /* SMS_Address */
static int hf_smrse_password = -1; /* Password */
static int hf_smrse_address_type = -1; /* T_address_type */
@@ -83,13 +83,13 @@ static int hf_smrse_sm_diag_info = -1; /* RP_UD */
static int hf_smrse_ms_address = -1; /* SMS_Address */
/*--- End of included file: packet-smrse-hf.c ---*/
-#line 48 "../../asn1/smrse/packet-smrse-template.c"
+#line 48 "./asn1/smrse/packet-smrse-template.c"
/* Initialize the subtree pointers */
static gint ett_smrse = -1;
/*--- Included file: packet-smrse-ett.c ---*/
-#line 1 "../../asn1/smrse/packet-smrse-ett.c"
+#line 1 "./asn1/smrse/packet-smrse-ett.c"
static gint ett_smrse_SMR_Bind = -1;
static gint ett_smrse_SMS_Address = -1;
static gint ett_smrse_T_address_value = -1;
@@ -103,12 +103,12 @@ static gint ett_smrse_RPError = -1;
static gint ett_smrse_RPAlertSC = -1;
/*--- End of included file: packet-smrse-ett.c ---*/
-#line 52 "../../asn1/smrse/packet-smrse-template.c"
+#line 52 "./asn1/smrse/packet-smrse-template.c"
/*--- Included file: packet-smrse-fn.c ---*/
-#line 1 "../../asn1/smrse/packet-smrse-fn.c"
+#line 1 "./asn1/smrse/packet-smrse-fn.c"
static const value_string smrse_T_address_type_vals[] = {
{ 0, "unknown-type" },
@@ -153,7 +153,7 @@ dissect_smrse_T_numbering_plan(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_smrse_T_octet_format(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 19 "../../asn1/smrse/smrse.cnf"
+#line 19 "./asn1/smrse/smrse.cnf"
char *strp,tmpstr[21];
guint32 i, start_offset;
gint8 ber_class;
@@ -479,7 +479,7 @@ dissect_smrse_RPAlertSC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
/*--- End of included file: packet-smrse-fn.c ---*/
-#line 55 "../../asn1/smrse/packet-smrse-template.c"
+#line 55 "./asn1/smrse/packet-smrse-template.c"
static const value_string tag_vals[] = {
{ 1, "AliveTest" },
@@ -584,7 +584,7 @@ void proto_register_smrse(void) {
/*--- Included file: packet-smrse-hfarr.c ---*/
-#line 1 "../../asn1/smrse/packet-smrse-hfarr.c"
+#line 1 "./asn1/smrse/packet-smrse-hfarr.c"
{ &hf_smrse_sc_address,
{ "sc-address", "smrse.sc_address_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -691,7 +691,7 @@ void proto_register_smrse(void) {
"SMS_Address", HFILL }},
/*--- End of included file: packet-smrse-hfarr.c ---*/
-#line 158 "../../asn1/smrse/packet-smrse-template.c"
+#line 158 "./asn1/smrse/packet-smrse-template.c"
};
/* List of subtrees */
@@ -699,7 +699,7 @@ void proto_register_smrse(void) {
&ett_smrse,
/*--- Included file: packet-smrse-ettarr.c ---*/
-#line 1 "../../asn1/smrse/packet-smrse-ettarr.c"
+#line 1 "./asn1/smrse/packet-smrse-ettarr.c"
&ett_smrse_SMR_Bind,
&ett_smrse_SMS_Address,
&ett_smrse_T_address_value,
@@ -713,7 +713,7 @@ void proto_register_smrse(void) {
&ett_smrse_RPAlertSC,
/*--- End of included file: packet-smrse-ettarr.c ---*/
-#line 164 "../../asn1/smrse/packet-smrse-template.c"
+#line 164 "./asn1/smrse/packet-smrse-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-smrse.h b/epan/dissectors/packet-smrse.h
index f68c2f9256..6a70f1f56e 100644
--- a/epan/dissectors/packet-smrse.h
+++ b/epan/dissectors/packet-smrse.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-smrse.h */
-/* ../../tools/asn2wrs.py -b -p smrse -c ./smrse.cnf -s ./packet-smrse-template -D . -O ../../epan/dissectors SMRSE.asn */
+/* asn2wrs.py -b -p smrse -c ./smrse.cnf -s ./packet-smrse-template -D . -O ../.. SMRSE.asn */
/* Input file: packet-smrse-template.h */
-#line 1 "../../asn1/smrse/packet-smrse-template.h"
+#line 1 "./asn1/smrse/packet-smrse-template.h"
/* packet-smrse.h
* Routines for SMRSE Short Message Relay Service packet dissection
* Ronnie Sahlberg 2004
diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c
index 899d24369d..9b04df89a1 100644
--- a/epan/dissectors/packet-snmp.c
+++ b/epan/dissectors/packet-snmp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-snmp.c */
-/* ../../tools/asn2wrs.py -b -p snmp -c ./snmp.cnf -s ./packet-snmp-template -D . -O ../../epan/dissectors snmp.asn */
+/* asn2wrs.py -b -p snmp -c ./snmp.cnf -s ./packet-snmp-template -D . -O ../.. snmp.asn */
/* Input file: packet-snmp-template.c */
-#line 1 "../../asn1/snmp/packet-snmp-template.c"
+#line 1 "./asn1/snmp/packet-snmp-template.c"
/* packet-snmp.c
* Routines for SNMP (simple network management protocol)
* Copyright (C) 1998 Didier Jorand
@@ -232,7 +232,7 @@ static int hf_snmp_agentid_trailer = -1;
/*--- Included file: packet-snmp-hf.c ---*/
-#line 1 "../../asn1/snmp/packet-snmp-hf.c"
+#line 1 "./asn1/snmp/packet-snmp-hf.c"
static int hf_snmp_SMUX_PDUs_PDU = -1; /* SMUX_PDUs */
static int hf_snmp_version = -1; /* Version */
static int hf_snmp_community = -1; /* Community */
@@ -300,7 +300,7 @@ static int hf_snmp_priority = -1; /* INTEGER_M1_2147483647 */
static int hf_snmp_operation = -1; /* T_operation */
/*--- End of included file: packet-snmp-hf.c ---*/
-#line 226 "../../asn1/snmp/packet-snmp-template.c"
+#line 226 "./asn1/snmp/packet-snmp-template.c"
/* Initialize the subtree pointers */
static gint ett_smux = -1;
@@ -318,7 +318,7 @@ static gint ett_decoding_error = -1;
/*--- Included file: packet-snmp-ett.c ---*/
-#line 1 "../../asn1/snmp/packet-snmp-ett.c"
+#line 1 "./asn1/snmp/packet-snmp-ett.c"
static gint ett_snmp_Message = -1;
static gint ett_snmp_Messagev2u = -1;
static gint ett_snmp_T_datav2u = -1;
@@ -340,7 +340,7 @@ static gint ett_snmp_SimpleOpen_U = -1;
static gint ett_snmp_RReqPDU_U = -1;
/*--- End of included file: packet-snmp-ett.c ---*/
-#line 242 "../../asn1/snmp/packet-snmp-template.c"
+#line 242 "./asn1/snmp/packet-snmp-template.c"
static expert_field ei_snmp_failed_decrypted_data_pdu = EI_INIT;
static expert_field ei_snmp_decrypted_data_bad_formatted = EI_INIT;
@@ -1973,13 +1973,13 @@ check_ScopedPdu(tvbuff_t* tvb)
/*--- Included file: packet-snmp-fn.c ---*/
-#line 1 "../../asn1/snmp/packet-snmp-fn.c"
+#line 1 "./asn1/snmp/packet-snmp-fn.c"
static int
dissect_snmp_EnterpriseOID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 68 "../../asn1/snmp/snmp.cnf"
+#line 68 "./asn1/snmp/snmp.cnf"
const gchar* name;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &enterprise_oid);
@@ -2223,7 +2223,7 @@ dissect_snmp_GenericTrap(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_snmp_SpecificTrap(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 52 "../../asn1/snmp/snmp.cnf"
+#line 52 "./asn1/snmp/snmp.cnf"
guint specific_trap;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2254,7 +2254,7 @@ static const ber_sequence_t Trap_PDU_U_sequence[] = {
static int
dissect_snmp_Trap_PDU_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 40 "../../asn1/snmp/snmp.cnf"
+#line 40 "./asn1/snmp/snmp.cnf"
generic_trap = 0;
enterprise_oid = NULL;
@@ -2377,7 +2377,7 @@ static const ber_choice_t PDUs_choice[] = {
static int
dissect_snmp_PDUs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 28 "../../asn1/snmp/snmp.cnf"
+#line 28 "./asn1/snmp/snmp.cnf"
gint pdu_type=-1;
col_clear(actx->pinfo->cinfo, COL_INFO);
@@ -2463,7 +2463,7 @@ dissect_snmp_Messagev2u(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_snmp_SnmpEngineID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 102 "../../asn1/snmp/snmp.cnf"
+#line 102 "./asn1/snmp/snmp.cnf"
tvbuff_t* param_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &param_tvb);
@@ -2481,7 +2481,7 @@ dissect_snmp_SnmpEngineID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_snmp_T_msgAuthoritativeEngineID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 94 "../../asn1/snmp/snmp.cnf"
+#line 94 "./asn1/snmp/snmp.cnf"
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &usm_p.engine_tvb);
if (usm_p.engine_tvb) {
@@ -2528,7 +2528,7 @@ dissect_snmp_T_msgUserName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_snmp_T_msgAuthenticationParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 114 "../../asn1/snmp/snmp.cnf"
+#line 114 "./asn1/snmp/snmp.cnf"
offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &usm_p.auth_tvb);
if (usm_p.auth_tvb) {
usm_p.auth_item = actx->created_item;
@@ -2582,7 +2582,7 @@ dissect_snmp_INTEGER_484_2147483647(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_snmp_T_msgFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 219 "../../asn1/snmp/snmp.cnf"
+#line 219 "./asn1/snmp/snmp.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2637,7 +2637,7 @@ dissect_snmp_HeaderData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_snmp_T_msgSecurityParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 165 "../../asn1/snmp/snmp.cnf"
+#line 165 "./asn1/snmp/snmp.cnf"
switch(MsgSecurityModel){
case SNMP_SEC_USM: /* 3 */
@@ -2681,7 +2681,7 @@ dissect_snmp_ScopedPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_snmp_T_encryptedPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 123 "../../asn1/snmp/snmp.cnf"
+#line 123 "./asn1/snmp/snmp.cnf"
tvbuff_t* crypt_tvb;
offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_snmp_encryptedPDU, &crypt_tvb);
@@ -2764,7 +2764,7 @@ dissect_snmp_SNMPv3Message(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SNMPv3Message_sequence, hf_index, ett_snmp_SNMPv3Message);
-#line 182 "../../asn1/snmp/snmp.cnf"
+#line 182 "./asn1/snmp/snmp.cnf"
if( usm_p.authenticated
&& usm_p.user_assoc
@@ -3078,7 +3078,7 @@ static int dissect_SMUX_PDUs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- End of included file: packet-snmp-fn.c ---*/
-#line 1873 "../../asn1/snmp/packet-snmp-template.c"
+#line 1873 "./asn1/snmp/packet-snmp-template.c"
guint
@@ -3638,7 +3638,7 @@ void proto_register_snmp(void) {
/*--- Included file: packet-snmp-hfarr.c ---*/
-#line 1 "../../asn1/snmp/packet-snmp-hfarr.c"
+#line 1 "./asn1/snmp/packet-snmp-hfarr.c"
{ &hf_snmp_SMUX_PDUs_PDU,
{ "SMUX-PDUs", "snmp.SMUX_PDUs",
FT_UINT32, BASE_DEC, VALS(snmp_SMUX_PDUs_vals), 0,
@@ -3901,7 +3901,7 @@ void proto_register_snmp(void) {
NULL, HFILL }},
/*--- End of included file: packet-snmp-hfarr.c ---*/
-#line 2431 "../../asn1/snmp/packet-snmp-template.c"
+#line 2431 "./asn1/snmp/packet-snmp-template.c"
};
/* List of subtrees */
@@ -3919,7 +3919,7 @@ void proto_register_snmp(void) {
&ett_decoding_error,
/*--- Included file: packet-snmp-ettarr.c ---*/
-#line 1 "../../asn1/snmp/packet-snmp-ettarr.c"
+#line 1 "./asn1/snmp/packet-snmp-ettarr.c"
&ett_snmp_Message,
&ett_snmp_Messagev2u,
&ett_snmp_T_datav2u,
@@ -3941,7 +3941,7 @@ void proto_register_snmp(void) {
&ett_snmp_RReqPDU_U,
/*--- End of included file: packet-snmp-ettarr.c ---*/
-#line 2447 "../../asn1/snmp/packet-snmp-template.c"
+#line 2447 "./asn1/snmp/packet-snmp-template.c"
};
static ei_register_info ei[] = {
{ &ei_snmp_failed_decrypted_data_pdu, { "snmp.failed_decrypted_data_pdu", PI_MALFORMED, PI_WARN, "Failed to decrypt encryptedPDU", EXPFILL }},
diff --git a/epan/dissectors/packet-snmp.h b/epan/dissectors/packet-snmp.h
index 6b76918b0d..01bbaa0435 100644
--- a/epan/dissectors/packet-snmp.h
+++ b/epan/dissectors/packet-snmp.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-snmp.h */
-/* ../../tools/asn2wrs.py -b -p snmp -c ./snmp.cnf -s ./packet-snmp-template -D . -O ../../epan/dissectors snmp.asn */
+/* asn2wrs.py -b -p snmp -c ./snmp.cnf -s ./packet-snmp-template -D . -O ../.. snmp.asn */
/* Input file: packet-snmp-template.h */
-#line 1 "../../asn1/snmp/packet-snmp-template.h"
+#line 1 "./asn1/snmp/packet-snmp-template.h"
/* packet-snmp.h
* Routines for snmp packet dissection
*
diff --git a/epan/dissectors/packet-spnego.c b/epan/dissectors/packet-spnego.c
index 30a1d2cfd8..cc597443ac 100644
--- a/epan/dissectors/packet-spnego.c
+++ b/epan/dissectors/packet-spnego.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-spnego.c */
-/* ../../tools/asn2wrs.py -b -p spnego -c ./spnego.cnf -s ./packet-spnego-template -D . -O ../../epan/dissectors spnego.asn */
+/* asn2wrs.py -b -p spnego -c ./spnego.cnf -s ./packet-spnego-template -D . -O ../.. spnego.asn */
/* Input file: packet-spnego-template.c */
-#line 1 "../../asn1/spnego/packet-spnego-template.c"
+#line 1 "./asn1/spnego/packet-spnego-template.c"
/* packet-spnego-template.c
* Routines for the simple and protected GSS-API negotiation mechanism
* as described in RFC 2478.
@@ -82,7 +82,7 @@ static int hf_spnego_krb5_cfx_seq = -1;
/*--- Included file: packet-spnego-hf.c ---*/
-#line 1 "../../asn1/spnego/packet-spnego-hf.c"
+#line 1 "./asn1/spnego/packet-spnego-hf.c"
static int hf_spnego_negTokenInit = -1; /* T_negTokenInit */
static int hf_spnego_negTokenTarg = -1; /* NegTokenTarg */
static int hf_spnego_MechTypeList_item = -1; /* MechType */
@@ -109,7 +109,7 @@ static int hf_spnego_ContextFlags_confFlag = -1;
static int hf_spnego_ContextFlags_integFlag = -1;
/*--- End of included file: packet-spnego-hf.c ---*/
-#line 76 "../../asn1/spnego/packet-spnego-template.c"
+#line 76 "./asn1/spnego/packet-spnego-template.c"
/* Global variables */
static const char *MechType_oid;
@@ -125,7 +125,7 @@ static gint ett_spnego_krb5_cfx_flags = -1;
/*--- Included file: packet-spnego-ett.c ---*/
-#line 1 "../../asn1/spnego/packet-spnego-ett.c"
+#line 1 "./asn1/spnego/packet-spnego-ett.c"
static gint ett_spnego_NegotiationToken = -1;
static gint ett_spnego_MechTypeList = -1;
static gint ett_spnego_NegTokenInit = -1;
@@ -136,7 +136,7 @@ static gint ett_spnego_NegTokenTarg = -1;
static gint ett_spnego_InitialContextToken_U = -1;
/*--- End of included file: packet-spnego-ett.c ---*/
-#line 90 "../../asn1/spnego/packet-spnego-template.c"
+#line 90 "./asn1/spnego/packet-spnego-template.c"
static expert_field ei_spnego_decrypted_keytype = EI_INIT;
static expert_field ei_spnego_unknown_header = EI_INIT;
@@ -155,12 +155,12 @@ static int dissect_spnego_NegTokenInit2(gboolean implicit_tag, tvbuff_t *tvb,
/*--- Included file: packet-spnego-fn.c ---*/
-#line 1 "../../asn1/spnego/packet-spnego-fn.c"
+#line 1 "./asn1/spnego/packet-spnego-fn.c"
static int
dissect_spnego_MechType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 33 "../../asn1/spnego/spnego.cnf"
+#line 33 "./asn1/spnego/spnego.cnf"
gssapi_oid_value *value;
@@ -198,7 +198,7 @@ static const ber_sequence_t MechTypeList_sequence_of[1] = {
static int
dissect_spnego_MechTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 101 "../../asn1/spnego/spnego.cnf"
+#line 101 "./asn1/spnego/spnego.cnf"
conversation_t *conversation;
@@ -247,7 +247,7 @@ dissect_spnego_ContextFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_spnego_T_mechToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 122 "../../asn1/spnego/spnego.cnf"
+#line 122 "./asn1/spnego/spnego.cnf"
tvbuff_t *mechToken_tvb = NULL;
@@ -298,7 +298,7 @@ dissect_spnego_NegTokenInit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_spnego_T_negTokenInit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 12 "../../asn1/spnego/spnego.cnf"
+#line 12 "./asn1/spnego/spnego.cnf"
gboolean is_response = actx->pinfo->ptype == PT_TCP &&
actx->pinfo->srcport < 1024;
@@ -341,7 +341,7 @@ dissect_spnego_T_negResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_spnego_T_supportedMech(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 135 "../../asn1/spnego/spnego.cnf"
+#line 135 "./asn1/spnego/spnego.cnf"
conversation_t *conversation;
@@ -370,7 +370,7 @@ dissect_spnego_T_supportedMech(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_spnego_T_responseToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 158 "../../asn1/spnego/spnego.cnf"
+#line 158 "./asn1/spnego/spnego.cnf"
tvbuff_t *responseToken_tvb;
@@ -480,7 +480,7 @@ dissect_spnego_NegTokenInit2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_spnego_InnerContextToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 58 "../../asn1/spnego/spnego.cnf"
+#line 58 "./asn1/spnego/spnego.cnf"
gssapi_oid_value *next_level_value_lcl;
proto_item *item;
@@ -555,7 +555,7 @@ dissect_spnego_InitialContextToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
/*--- End of included file: packet-spnego-fn.c ---*/
-#line 107 "../../asn1/spnego/packet-spnego-template.c"
+#line 107 "./asn1/spnego/packet-spnego-template.c"
/*
* This is the SPNEGO KRB5 dissector. It is not true KRB5, but some ASN.1
* wrapped blob with an OID, USHORT token ID, and a Ticket, that is also
@@ -1867,7 +1867,7 @@ void proto_register_spnego(void) {
/*--- Included file: packet-spnego-hfarr.c ---*/
-#line 1 "../../asn1/spnego/packet-spnego-hfarr.c"
+#line 1 "./asn1/spnego/packet-spnego-hfarr.c"
{ &hf_spnego_negTokenInit,
{ "negTokenInit", "spnego.negTokenInit_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1962,7 +1962,7 @@ void proto_register_spnego(void) {
NULL, HFILL }},
/*--- End of included file: packet-spnego-hfarr.c ---*/
-#line 1417 "../../asn1/spnego/packet-spnego-template.c"
+#line 1417 "./asn1/spnego/packet-spnego-template.c"
};
/* List of subtrees */
@@ -1974,7 +1974,7 @@ void proto_register_spnego(void) {
/*--- Included file: packet-spnego-ettarr.c ---*/
-#line 1 "../../asn1/spnego/packet-spnego-ettarr.c"
+#line 1 "./asn1/spnego/packet-spnego-ettarr.c"
&ett_spnego_NegotiationToken,
&ett_spnego_MechTypeList,
&ett_spnego_NegTokenInit,
@@ -1985,7 +1985,7 @@ void proto_register_spnego(void) {
&ett_spnego_InitialContextToken_U,
/*--- End of included file: packet-spnego-ettarr.c ---*/
-#line 1427 "../../asn1/spnego/packet-spnego-template.c"
+#line 1427 "./asn1/spnego/packet-spnego-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-sv.c b/epan/dissectors/packet-sv.c
index 348bb6d5b3..39b547d1fa 100644
--- a/epan/dissectors/packet-sv.c
+++ b/epan/dissectors/packet-sv.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-sv.c */
-/* ../../tools/asn2wrs.py -b -p sv -c ./sv.cnf -s ./packet-sv-template -D . -O ../../epan/dissectors sv.asn */
+/* asn2wrs.py -b -p sv -c ./sv.cnf -s ./packet-sv-template -D . -O ../.. sv.asn */
/* Input file: packet-sv-template.c */
-#line 1 "../../asn1/sv/packet-sv-template.c"
+#line 1 "./asn1/sv/packet-sv-template.c"
/* packet-sv.c
* Routines for IEC 61850 Sampled Values packet dissection
* Michael Bernhard 2008
@@ -104,7 +104,7 @@ static int hf_sv_phsmeas_q_derived = -1;
/*--- Included file: packet-sv-hf.c ---*/
-#line 1 "../../asn1/sv/packet-sv-hf.c"
+#line 1 "./asn1/sv/packet-sv-hf.c"
static int hf_sv_savPdu = -1; /* SavPdu */
static int hf_sv_noASDU = -1; /* INTEGER_0_65535 */
static int hf_sv_seqASDU = -1; /* SEQUENCE_OF_ASDU */
@@ -120,7 +120,7 @@ static int hf_sv_seqData = -1; /* Data */
static int hf_sv_smpMod = -1; /* T_smpMod */
/*--- End of included file: packet-sv-hf.c ---*/
-#line 98 "../../asn1/sv/packet-sv-template.c"
+#line 98 "./asn1/sv/packet-sv-template.c"
/* Initialize the subtree pointers */
static int ett_sv = -1;
@@ -129,14 +129,14 @@ static int ett_phsmeas_q = -1;
/*--- Included file: packet-sv-ett.c ---*/
-#line 1 "../../asn1/sv/packet-sv-ett.c"
+#line 1 "./asn1/sv/packet-sv-ett.c"
static gint ett_sv_SampledValues = -1;
static gint ett_sv_SavPdu = -1;
static gint ett_sv_SEQUENCE_OF_ASDU = -1;
static gint ett_sv_ASDU = -1;
/*--- End of included file: packet-sv-ett.c ---*/
-#line 105 "../../asn1/sv/packet-sv-template.c"
+#line 105 "./asn1/sv/packet-sv-template.c"
static expert_field ei_sv_mal_utctime = EI_INIT;
static expert_field ei_sv_zero_pdu = EI_INIT;
@@ -218,7 +218,7 @@ dissect_PhsMeas1(gboolean implicit_tag, packet_info *pinfo, proto_tree *tree, tv
/*--- Included file: packet-sv-fn.c ---*/
-#line 1 "../../asn1/sv/packet-sv-fn.c"
+#line 1 "./asn1/sv/packet-sv-fn.c"
static int
@@ -244,7 +244,7 @@ dissect_sv_VisibleString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_sv_T_smpCnt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 18 "../../asn1/sv/sv.cnf"
+#line 18 "./asn1/sv/sv.cnf"
guint32 value;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&value);
@@ -269,7 +269,7 @@ dissect_sv_INTEGER_0_4294967295(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_sv_UtcTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 24 "../../asn1/sv/sv.cnf"
+#line 24 "./asn1/sv/sv.cnf"
guint32 len;
guint32 seconds;
guint32 fraction;
@@ -321,7 +321,7 @@ static const value_string sv_T_smpSynch_vals[] = {
static int
dissect_sv_T_smpSynch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 65 "../../asn1/sv/sv.cnf"
+#line 65 "./asn1/sv/sv.cnf"
guint32 value;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&value);
@@ -336,7 +336,7 @@ dissect_sv_T_smpSynch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_sv_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 77 "../../asn1/sv/sv.cnf"
+#line 77 "./asn1/sv/sv.cnf"
if (sv_decode_data_as_phsmeas) {
offset = dissect_PhsMeas1(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index);
} else {
@@ -358,7 +358,7 @@ static const value_string sv_T_smpMod_vals[] = {
static int
dissect_sv_T_smpMod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 71 "../../asn1/sv/sv.cnf"
+#line 71 "./asn1/sv/sv.cnf"
guint32 value;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&value);
@@ -436,7 +436,7 @@ dissect_sv_SampledValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
/*--- End of included file: packet-sv-fn.c ---*/
-#line 185 "../../asn1/sv/packet-sv-template.c"
+#line 185 "./asn1/sv/packet-sv-template.c"
/*
* Dissect SV PDUs inside a PPDU.
@@ -550,7 +550,7 @@ void proto_register_sv(void) {
/*--- Included file: packet-sv-hfarr.c ---*/
-#line 1 "../../asn1/sv/packet-sv-hfarr.c"
+#line 1 "./asn1/sv/packet-sv-hfarr.c"
{ &hf_sv_savPdu,
{ "savPdu", "sv.savPdu_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -605,7 +605,7 @@ void proto_register_sv(void) {
NULL, HFILL }},
/*--- End of included file: packet-sv-hfarr.c ---*/
-#line 297 "../../asn1/sv/packet-sv-template.c"
+#line 297 "./asn1/sv/packet-sv-template.c"
};
/* List of subtrees */
@@ -615,14 +615,14 @@ void proto_register_sv(void) {
&ett_phsmeas_q,
/*--- Included file: packet-sv-ettarr.c ---*/
-#line 1 "../../asn1/sv/packet-sv-ettarr.c"
+#line 1 "./asn1/sv/packet-sv-ettarr.c"
&ett_sv_SampledValues,
&ett_sv_SavPdu,
&ett_sv_SEQUENCE_OF_ASDU,
&ett_sv_ASDU,
/*--- End of included file: packet-sv-ettarr.c ---*/
-#line 305 "../../asn1/sv/packet-sv-template.c"
+#line 305 "./asn1/sv/packet-sv-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-sv.h b/epan/dissectors/packet-sv.h
index c5d44259e3..6c7c8ab883 100644
--- a/epan/dissectors/packet-sv.h
+++ b/epan/dissectors/packet-sv.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-sv.h */
-/* ../../tools/asn2wrs.py -b -p sv -c ./sv.cnf -s ./packet-sv-template -D . -O ../../epan/dissectors sv.asn */
+/* asn2wrs.py -b -p sv -c ./sv.cnf -s ./packet-sv-template -D . -O ../.. sv.asn */
/* Input file: packet-sv-template.h */
-#line 1 "../../asn1/sv/packet-sv-template.h"
+#line 1 "./asn1/sv/packet-sv-template.h"
/* packet-sv.h
* Routines for IEC 61850 Sampled Vales packet dissection
* Michael Bernhard 2008
diff --git a/epan/dissectors/packet-t124.c b/epan/dissectors/packet-t124.c
index d7c606322f..40a60af72a 100644
--- a/epan/dissectors/packet-t124.c
+++ b/epan/dissectors/packet-t124.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-t124.c */
-/* ../../tools/asn2wrs.py -p t124 -c ./t124.cnf -s ./packet-t124-template -D . -O ../../epan/dissectors GCC-PROTOCOL.asn ../t125/MCS-PROTOCOL.asn */
+/* asn2wrs.py -p t124 -c ./t124.cnf -s ./packet-t124-template -D . -O ../.. GCC-PROTOCOL.asn ../t125/MCS-PROTOCOL.asn */
/* Input file: packet-t124-template.c */
-#line 1 "../../asn1/t124/packet-t124-template.c"
+#line 1 "./asn1/t124/packet-t124-template.c"
/* packet-t124.c
* Routines for t124 packet dissection
* Copyright 2010, Graeme Lunt
@@ -59,7 +59,7 @@ static proto_tree *top_tree = NULL;
/*--- Included file: packet-t124-hf.c ---*/
-#line 1 "../../asn1/t124/packet-t124-hf.c"
+#line 1 "./asn1/t124/packet-t124-hf.c"
static int hf_t124_object = -1; /* T_object */
static int hf_t124_h221NonStandard = -1; /* H221NonStandardIdentifier */
static int hf_t124_key = -1; /* Key */
@@ -285,7 +285,7 @@ static int hf_t124_Segmentation_begin = -1;
static int hf_t124_Segmentation_end = -1;
/*--- End of included file: packet-t124-hf.c ---*/
-#line 53 "../../asn1/t124/packet-t124-template.c"
+#line 53 "./asn1/t124/packet-t124-template.c"
/* Initialize the subtree pointers */
static int ett_t124 = -1;
@@ -302,7 +302,7 @@ static dissector_table_t t124_sd_dissector_table=NULL;
/*--- Included file: packet-t124-ett.c ---*/
-#line 1 "../../asn1/t124/packet-t124-ett.c"
+#line 1 "./asn1/t124/packet-t124-ett.c"
static gint ett_t124_Key = -1;
static gint ett_t124_NonStandardParameter = -1;
static gint ett_t124_UserData = -1;
@@ -406,11 +406,11 @@ static gint ett_t124_TokenTestConfirm = -1;
static gint ett_t124_DomainMCSPDU = -1;
/*--- End of included file: packet-t124-ett.c ---*/
-#line 68 "../../asn1/t124/packet-t124-template.c"
+#line 68 "./asn1/t124/packet-t124-template.c"
/*--- Included file: packet-t124-fn.c ---*/
-#line 1 "../../asn1/t124/packet-t124-fn.c"
+#line 1 "./asn1/t124/packet-t124-fn.c"
static int
@@ -434,7 +434,7 @@ dissect_t124_UserID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_t124_H221NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 217 "../../asn1/t124/t124.cnf"
+#line 217 "./asn1/t124/t124.cnf"
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4, 255, FALSE, (tvbuff_t**)&actx->private_data);
@@ -569,7 +569,7 @@ dissect_t124_ExtraDiallingString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_t124_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 149 "../../asn1/t124/t124.cnf"
+#line 149 "./asn1/t124/t124.cnf"
tvbuff_t *next_tvb = NULL;
tvbuff_t *t124NSIdentifier = (tvbuff_t*)actx->private_data;
guint8 *ns = NULL;
@@ -1496,7 +1496,7 @@ dissect_t124_ConferenceInviteResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_t124_T_connectPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 123 "../../asn1/t124/t124.cnf"
+#line 123 "./asn1/t124/t124.cnf"
tvbuff_t *next_tvb = NULL;
proto_tree *next_tree = NULL;
int old_offset = 0;
@@ -1580,7 +1580,7 @@ dissect_t124_ConnectGCCPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_t124_ChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 222 "../../asn1/t124/t124.cnf"
+#line 222 "./asn1/t124/t124.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &channelId, FALSE);
@@ -2419,7 +2419,7 @@ dissect_t124_ChannelExpelIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_t124_T_userData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 166 "../../asn1/t124/t124.cnf"
+#line 166 "./asn1/t124/t124.cnf"
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -2459,7 +2459,7 @@ dissect_t124_SendDataRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_t124_T_userData_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "../../asn1/t124/t124.cnf"
+#line 179 "./asn1/t124/t124.cnf"
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -2850,7 +2850,7 @@ static const per_choice_t DomainMCSPDU_choice[] = {
static int
dissect_t124_DomainMCSPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 193 "../../asn1/t124/t124.cnf"
+#line 193 "./asn1/t124/t124.cnf"
gint domainmcs_value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -2876,7 +2876,7 @@ dissect_t124_DomainMCSPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
/*--- End of included file: packet-t124-fn.c ---*/
-#line 70 "../../asn1/t124/packet-t124-template.c"
+#line 70 "./asn1/t124/packet-t124-template.c"
static const per_sequence_t t124Heur_sequence[] = {
{ &hf_t124_t124Identifier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
@@ -2999,7 +2999,7 @@ void proto_register_t124(void) {
NULL, HFILL }},
/*--- Included file: packet-t124-hfarr.c ---*/
-#line 1 "../../asn1/t124/packet-t124-hfarr.c"
+#line 1 "./asn1/t124/packet-t124-hfarr.c"
{ &hf_t124_object,
{ "object", "t124.object",
FT_OID, BASE_NONE, NULL, 0,
@@ -3890,7 +3890,7 @@ void proto_register_t124(void) {
NULL, HFILL }},
/*--- End of included file: packet-t124-hfarr.c ---*/
-#line 191 "../../asn1/t124/packet-t124-template.c"
+#line 191 "./asn1/t124/packet-t124-template.c"
};
/* List of subtrees */
@@ -3899,7 +3899,7 @@ void proto_register_t124(void) {
&ett_t124_connectGCCPDU,
/*--- Included file: packet-t124-ettarr.c ---*/
-#line 1 "../../asn1/t124/packet-t124-ettarr.c"
+#line 1 "./asn1/t124/packet-t124-ettarr.c"
&ett_t124_Key,
&ett_t124_NonStandardParameter,
&ett_t124_UserData,
@@ -4003,7 +4003,7 @@ void proto_register_t124(void) {
&ett_t124_DomainMCSPDU,
/*--- End of included file: packet-t124-ettarr.c ---*/
-#line 198 "../../asn1/t124/packet-t124-template.c"
+#line 198 "./asn1/t124/packet-t124-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-t124.h b/epan/dissectors/packet-t124.h
index 48c15accc8..79c9d8807a 100644
--- a/epan/dissectors/packet-t124.h
+++ b/epan/dissectors/packet-t124.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-t124.h */
-/* ../../tools/asn2wrs.py -p t124 -c ./t124.cnf -s ./packet-t124-template -D . -O ../../epan/dissectors GCC-PROTOCOL.asn ../t125/MCS-PROTOCOL.asn */
+/* asn2wrs.py -p t124 -c ./t124.cnf -s ./packet-t124-template -D . -O ../.. GCC-PROTOCOL.asn ../t125/MCS-PROTOCOL.asn */
/* Input file: packet-t124-template.h */
-#line 1 "../../asn1/t124/packet-t124-template.h"
+#line 1 "./asn1/t124/packet-t124-template.h"
/* packet-t124.h
* Routines for t124 packet dissection
* Copyright 2010, Graeme Lunt
@@ -44,13 +44,13 @@ extern void register_t124_sd_dissector(packet_info *pinfo, guint32 channelId, di
/*--- Included file: packet-t124-exp.h ---*/
-#line 1 "../../asn1/t124/packet-t124-exp.h"
+#line 1 "./asn1/t124/packet-t124-exp.h"
extern const value_string t124_ConnectGCCPDU_vals[];
int dissect_t124_ConnectData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_t124_ConnectGCCPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-t124-exp.h ---*/
-#line 38 "../../asn1/t124/packet-t124-template.h"
+#line 38 "./asn1/t124/packet-t124-template.h"
#endif /* PACKET_T124_H */
diff --git a/epan/dissectors/packet-t125.c b/epan/dissectors/packet-t125.c
index ba10e7a987..c6e2216d21 100644
--- a/epan/dissectors/packet-t125.c
+++ b/epan/dissectors/packet-t125.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-t125.c */
-/* ../../tools/asn2wrs.py -b -p t125 -c ./t125.cnf -s ./packet-t125-template -D . -O ../../epan/dissectors MCS-PROTOCOL.asn */
+/* asn2wrs.py -b -p t125 -c ./t125.cnf -s ./packet-t125-template -D . -O ../.. MCS-PROTOCOL.asn */
/* Input file: packet-t125-template.c */
-#line 1 "../../asn1/t125/packet-t125-template.c"
+#line 1 "./asn1/t125/packet-t125-template.c"
/* packet-t125.c
* Routines for t125 packet dissection
* Copyright 2007, Ronnie Sahlberg
@@ -53,7 +53,7 @@ static int proto_t125 = -1;
static proto_tree *top_tree = NULL;
/*--- Included file: packet-t125-hf.c ---*/
-#line 1 "../../asn1/t125/packet-t125-hf.c"
+#line 1 "./asn1/t125/packet-t125-hf.c"
static int hf_t125_ConnectMCSPDU_PDU = -1; /* ConnectMCSPDU */
static int hf_t125_maxChannelIds = -1; /* INTEGER_0_MAX */
static int hf_t125_maxUserIds = -1; /* INTEGER_0_MAX */
@@ -81,14 +81,14 @@ static int hf_t125_connect_additional = -1; /* Connect_Additional */
static int hf_t125_connect_result = -1; /* Connect_Result */
/*--- End of included file: packet-t125-hf.c ---*/
-#line 47 "../../asn1/t125/packet-t125-template.c"
+#line 47 "./asn1/t125/packet-t125-template.c"
/* Initialize the subtree pointers */
static int ett_t125 = -1;
/*--- Included file: packet-t125-ett.c ---*/
-#line 1 "../../asn1/t125/packet-t125-ett.c"
+#line 1 "./asn1/t125/packet-t125-ett.c"
static gint ett_t125_DomainParameters = -1;
static gint ett_t125_Connect_Initial_U = -1;
static gint ett_t125_Connect_Response_U = -1;
@@ -97,13 +97,13 @@ static gint ett_t125_Connect_Result_U = -1;
static gint ett_t125_ConnectMCSPDU = -1;
/*--- End of included file: packet-t125-ett.c ---*/
-#line 52 "../../asn1/t125/packet-t125-template.c"
+#line 52 "./asn1/t125/packet-t125-template.c"
static heur_dissector_list_t t125_heur_subdissector_list;
/*--- Included file: packet-t125-fn.c ---*/
-#line 1 "../../asn1/t125/packet-t125-fn.c"
+#line 1 "./asn1/t125/packet-t125-fn.c"
static const value_string t125_DataPriority_vals[] = {
{ 0, "top" },
@@ -176,7 +176,7 @@ dissect_t125_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_t125_T_userData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 98 "../../asn1/t125/t125.cnf"
+#line 98 "./asn1/t125/t125.cnf"
tvbuff_t *next_tvb = NULL;
heur_dtbl_entry_t *hdtbl_entry;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -254,7 +254,7 @@ dissect_t125_Result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_t125_T_userData_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 108 "../../asn1/t125/t125.cnf"
+#line 108 "./asn1/t125/t125.cnf"
tvbuff_t *next_tvb = NULL;
heur_dtbl_entry_t *hdtbl_entry;
@@ -383,7 +383,7 @@ static int dissect_ConnectMCSPDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-t125-fn.c ---*/
-#line 56 "../../asn1/t125/packet-t125-template.c"
+#line 56 "./asn1/t125/packet-t125-template.c"
static int
dissect_t125(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
@@ -455,7 +455,7 @@ void proto_register_t125(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-t125-hfarr.c ---*/
-#line 1 "../../asn1/t125/packet-t125-hfarr.c"
+#line 1 "./asn1/t125/packet-t125-hfarr.c"
{ &hf_t125_ConnectMCSPDU_PDU,
{ "ConnectMCSPDU", "t125.ConnectMCSPDU",
FT_UINT32, BASE_DEC, VALS(t125_ConnectMCSPDU_vals), 0,
@@ -558,7 +558,7 @@ void proto_register_t125(void) {
NULL, HFILL }},
/*--- End of included file: packet-t125-hfarr.c ---*/
-#line 126 "../../asn1/t125/packet-t125-template.c"
+#line 126 "./asn1/t125/packet-t125-template.c"
};
/* List of subtrees */
@@ -566,7 +566,7 @@ void proto_register_t125(void) {
&ett_t125,
/*--- Included file: packet-t125-ettarr.c ---*/
-#line 1 "../../asn1/t125/packet-t125-ettarr.c"
+#line 1 "./asn1/t125/packet-t125-ettarr.c"
&ett_t125_DomainParameters,
&ett_t125_Connect_Initial_U,
&ett_t125_Connect_Response_U,
@@ -575,7 +575,7 @@ void proto_register_t125(void) {
&ett_t125_ConnectMCSPDU,
/*--- End of included file: packet-t125-ettarr.c ---*/
-#line 132 "../../asn1/t125/packet-t125-template.c"
+#line 132 "./asn1/t125/packet-t125-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c
index c4e6e5f1f9..10982825cd 100644
--- a/epan/dissectors/packet-t38.c
+++ b/epan/dissectors/packet-t38.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-t38.c */
-/* ../../tools/asn2wrs.py -p t38 -c ./t38.cnf -s ./packet-t38-template -D . -O ../../epan/dissectors T38_2002.asn */
+/* asn2wrs.py -p t38 -c ./t38.cnf -s ./packet-t38-template -D . -O ../.. T38_2002.asn */
/* Input file: packet-t38-template.c */
-#line 1 "../../asn1/t38/packet-t38-template.c"
+#line 1 "./asn1/t38/packet-t38-template.c"
/* packet-t38.c
* Routines for T.38 packet dissection
* 2003 Hans Viens
@@ -121,7 +121,7 @@ static guint32 Data_Field_item_num;
static int proto_t38 = -1;
/*--- Included file: packet-t38-hf.c ---*/
-#line 1 "../../asn1/t38/packet-t38-hf.c"
+#line 1 "./asn1/t38/packet-t38-hf.c"
static int hf_t38_IFPPacket_PDU = -1; /* IFPPacket */
static int hf_t38_UDPTLPacket_PDU = -1; /* UDPTLPacket */
static int hf_t38_type_of_msg = -1; /* Type_of_msg */
@@ -142,7 +142,7 @@ static int hf_t38_fec_data = -1; /* T_fec_data */
static int hf_t38_fec_data_item = -1; /* OCTET_STRING */
/*--- End of included file: packet-t38-hf.c ---*/
-#line 115 "../../asn1/t38/packet-t38-template.c"
+#line 115 "./asn1/t38/packet-t38-template.c"
/* T38 setup fields */
static int hf_t38_setup = -1;
@@ -164,7 +164,7 @@ static int hf_t38_reassembled_length = -1;
static gint ett_t38 = -1;
/*--- Included file: packet-t38-ett.c ---*/
-#line 1 "../../asn1/t38/packet-t38-ett.c"
+#line 1 "./asn1/t38/packet-t38-ett.c"
static gint ett_t38_IFPPacket = -1;
static gint ett_t38_Type_of_msg = -1;
static gint ett_t38_Data_Field = -1;
@@ -176,7 +176,7 @@ static gint ett_t38_T_fec_info = -1;
static gint ett_t38_T_fec_data = -1;
/*--- End of included file: packet-t38-ett.c ---*/
-#line 135 "../../asn1/t38/packet-t38-template.c"
+#line 135 "./asn1/t38/packet-t38-template.c"
static gint ett_t38_setup = -1;
static gint ett_data_fragment = -1;
@@ -437,7 +437,7 @@ force_reassemble_seq(reassembly_table *table, packet_info *pinfo, guint32 id)
/* T38 Routines */
/*--- Included file: packet-t38-fn.c ---*/
-#line 1 "../../asn1/t38/packet-t38-fn.c"
+#line 1 "./asn1/t38/packet-t38-fn.c"
const value_string t38_T30_indicator_vals[] = {
{ 0, "no-signal" },
@@ -472,7 +472,7 @@ dissect_t38_T30_indicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16, &T30ind_value, TRUE, 7, NULL);
-#line 29 "../../asn1/t38/t38.cnf"
+#line 29 "./asn1/t38/t38.cnf"
if (primary_part){
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " t30ind: %s",
val_to_str(T30ind_value,t38_T30_indicator_vals,"<unknown>"));
@@ -511,7 +511,7 @@ dissect_t38_T30_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9, &Data_value, TRUE, 6, NULL);
-#line 41 "../../asn1/t38/t38.cnf"
+#line 41 "./asn1/t38/t38.cnf"
if (primary_part){
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " data:%s:",
val_to_str(Data_value,t38_T30_data_vals,"<unknown>"));
@@ -544,7 +544,7 @@ dissect_t38_Type_of_msg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
ett_t38_Type_of_msg, Type_of_msg_choice,
&Type_of_msg_value);
-#line 22 "../../asn1/t38/t38.cnf"
+#line 22 "./asn1/t38/t38.cnf"
/* info for tap */
if (primary_part)
t38_info->type_msg = Type_of_msg_value;
@@ -575,7 +575,7 @@ dissect_t38_T_field_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8, &Data_Field_field_type_value, (use_pre_corrigendum_asn1_specification)?FALSE:TRUE, (use_pre_corrigendum_asn1_specification)?0:4, NULL);
-#line 61 "../../asn1/t38/t38.cnf"
+#line 61 "./asn1/t38/t38.cnf"
if (primary_part){
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s",
val_to_str(Data_Field_field_type_value,t38_T_field_type_vals,"<unknown>"));
@@ -671,7 +671,7 @@ dissect_t38_T_field_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_t38_T_field_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 151 "../../asn1/t38/t38.cnf"
+#line 151 "./asn1/t38/t38.cnf"
tvbuff_t *value_tvb = NULL;
guint32 value_len;
@@ -682,7 +682,7 @@ dissect_t38_T_field_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
-#line 158 "../../asn1/t38/t38.cnf"
+#line 158 "./asn1/t38/t38.cnf"
if (primary_part){
if(value_len < 8){
col_append_fstr(actx->pinfo->cinfo, COL_INFO, "[%s]",
@@ -769,7 +769,7 @@ dissect_t38_Data_Field_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t38_Data_Field_item, Data_Field_item_sequence);
-#line 53 "../../asn1/t38/t38.cnf"
+#line 53 "./asn1/t38/t38.cnf"
if (primary_part) Data_Field_item_num++;
return offset;
@@ -810,7 +810,7 @@ dissect_t38_T_seq_number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &seq_number, FALSE);
-#line 238 "../../asn1/t38/t38.cnf"
+#line 238 "./asn1/t38/t38.cnf"
/* info for tap */
if (primary_part)
t38_info->seq_num = seq_number;
@@ -824,12 +824,12 @@ dissect_t38_T_seq_number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_t38_T_primary_ifp_packet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 246 "../../asn1/t38/t38.cnf"
+#line 246 "./asn1/t38/t38.cnf"
primary_part = TRUE;
offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, dissect_t38_IFPPacket);
-#line 248 "../../asn1/t38/t38.cnf"
+#line 248 "./asn1/t38/t38.cnf"
/* if is a valid t38 packet, add to tap */
/* Note that t4-non-ecm-sig-end without first_t4_data is not valid */
if (p_t38_packet_conv && (!actx->pinfo->flags.in_error_pkt) && ((gint32) seq_number != p_t38_packet_conv_info->last_seqnum) &&
@@ -925,14 +925,14 @@ static const per_choice_t T_error_recovery_choice[] = {
static int
dissect_t38_T_error_recovery(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 258 "../../asn1/t38/t38.cnf"
+#line 258 "./asn1/t38/t38.cnf"
primary_part = FALSE;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t38_T_error_recovery, T_error_recovery_choice,
NULL);
-#line 260 "../../asn1/t38/t38.cnf"
+#line 260 "./asn1/t38/t38.cnf"
primary_part = TRUE;
return offset;
@@ -948,7 +948,7 @@ static const per_sequence_t UDPTLPacket_sequence[] = {
static int
dissect_t38_UDPTLPacket(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 232 "../../asn1/t38/t38.cnf"
+#line 232 "./asn1/t38/t38.cnf"
/* Initialize to something else than data type */
Data_Field_field_type_value = 1;
@@ -979,7 +979,7 @@ static int dissect_UDPTLPacket_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pr
/*--- End of included file: packet-t38-fn.c ---*/
-#line 394 "../../asn1/t38/packet-t38-template.c"
+#line 394 "./asn1/t38/packet-t38-template.c"
/* initialize the tap t38_info and the conversation */
static void
@@ -1245,7 +1245,7 @@ proto_register_t38(void)
{
/*--- Included file: packet-t38-hfarr.c ---*/
-#line 1 "../../asn1/t38/packet-t38-hfarr.c"
+#line 1 "./asn1/t38/packet-t38-hfarr.c"
{ &hf_t38_IFPPacket_PDU,
{ "IFPPacket", "t38.IFPPacket_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1320,7 +1320,7 @@ proto_register_t38(void)
"OCTET_STRING", HFILL }},
/*--- End of included file: packet-t38-hfarr.c ---*/
-#line 658 "../../asn1/t38/packet-t38-template.c"
+#line 658 "./asn1/t38/packet-t38-template.c"
{ &hf_t38_setup,
{ "Stream setup", "t38.setup", FT_STRING, BASE_NONE,
NULL, 0x0, "Stream setup, method and frame number", HFILL }},
@@ -1369,7 +1369,7 @@ proto_register_t38(void)
&ett_t38,
/*--- Included file: packet-t38-ettarr.c ---*/
-#line 1 "../../asn1/t38/packet-t38-ettarr.c"
+#line 1 "./asn1/t38/packet-t38-ettarr.c"
&ett_t38_IFPPacket,
&ett_t38_Type_of_msg,
&ett_t38_Data_Field,
@@ -1381,7 +1381,7 @@ proto_register_t38(void)
&ett_t38_T_fec_data,
/*--- End of included file: packet-t38-ettarr.c ---*/
-#line 705 "../../asn1/t38/packet-t38-template.c"
+#line 705 "./asn1/t38/packet-t38-template.c"
&ett_t38_setup,
&ett_data_fragment,
&ett_data_fragments
diff --git a/epan/dissectors/packet-t38.h b/epan/dissectors/packet-t38.h
index d06de23f01..e45e5b3180 100644
--- a/epan/dissectors/packet-t38.h
+++ b/epan/dissectors/packet-t38.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-t38.h */
-/* ../../tools/asn2wrs.py -p t38 -c ./t38.cnf -s ./packet-t38-template -D . -O ../../epan/dissectors T38_2002.asn */
+/* asn2wrs.py -p t38 -c ./t38.cnf -s ./packet-t38-template -D . -O ../.. T38_2002.asn */
/* Input file: packet-t38-template.h */
-#line 1 "../../asn1/t38/packet-t38-template.h"
+#line 1 "./asn1/t38/packet-t38-template.h"
/* packet-t38.h
*
* Routines for T38 dissection
@@ -89,12 +89,12 @@ void t38_add_address(packet_info *pinfo,
/*--- Included file: packet-t38-exp.h ---*/
-#line 1 "../../asn1/t38/packet-t38-exp.h"
+#line 1 "./asn1/t38/packet-t38-exp.h"
WS_DLL_PUBLIC const value_string t38_T30_indicator_vals[];
WS_DLL_PUBLIC const value_string t38_T30_data_vals[];
/*--- End of included file: packet-t38-exp.h ---*/
-#line 83 "../../asn1/t38/packet-t38-template.h"
+#line 83 "./asn1/t38/packet-t38-template.h"
diff --git a/epan/dissectors/packet-tcap.c b/epan/dissectors/packet-tcap.c
index 751bf027eb..fb073f8ebc 100644
--- a/epan/dissectors/packet-tcap.c
+++ b/epan/dissectors/packet-tcap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-tcap.c */
-/* ../../tools/asn2wrs.py -b -p tcap -c ./tcap.cnf -s ./packet-tcap-template -D . -O ../../epan/dissectors tcap.asn UnidialoguePDUs.asn DialoguePDUs.asn */
+/* asn2wrs.py -b -p tcap -c ./tcap.cnf -s ./packet-tcap-template -D . -O ../.. tcap.asn UnidialoguePDUs.asn DialoguePDUs.asn */
/* Input file: packet-tcap-template.c */
-#line 1 "../../asn1/tcap/packet-tcap-template.c"
+#line 1 "./asn1/tcap/packet-tcap-template.c"
/* packet-tcap-template.c
* Routines for TCAP
* Copyright 2004 - 2005, Tim Endean <endeant@hotmail.com>
@@ -66,7 +66,7 @@ int hf_tcapsrt_SessionTime=-1;
/*--- Included file: packet-tcap-hf.c ---*/
-#line 1 "../../asn1/tcap/packet-tcap-hf.c"
+#line 1 "./asn1/tcap/packet-tcap-hf.c"
static int hf_tcap_UniDialoguePDU_PDU = -1; /* UniDialoguePDU */
static int hf_tcap_DialoguePDU_PDU = -1; /* DialoguePDU */
static int hf_tcap_oid = -1; /* OBJECT_IDENTIFIER */
@@ -136,7 +136,7 @@ static int hf_tcap_AARQ_protocol_version_version1 = -1;
static int hf_tcap_AARE_protocol_version_version1 = -1;
/*--- End of included file: packet-tcap-hf.c ---*/
-#line 60 "../../asn1/tcap/packet-tcap-template.c"
+#line 60 "./asn1/tcap/packet-tcap-template.c"
/* Initialize the subtree pointers */
static gint ett_tcap = -1;
@@ -154,7 +154,7 @@ static struct tcaphash_context_t * gp_tcap_context=NULL;
/*--- Included file: packet-tcap-ett.c ---*/
-#line 1 "../../asn1/tcap/packet-tcap-ett.c"
+#line 1 "./asn1/tcap/packet-tcap-ett.c"
static gint ett_tcap_ExternalPDU_U = -1;
static gint ett_tcap_TCMessage = -1;
static gint ett_tcap_Unidirectional = -1;
@@ -190,7 +190,7 @@ static gint ett_tcap_ABRT_user_information = -1;
static gint ett_tcap_Associate_source_diagnostic = -1;
/*--- End of included file: packet-tcap-ett.c ---*/
-#line 76 "../../asn1/tcap/packet-tcap-template.c"
+#line 76 "./asn1/tcap/packet-tcap-template.c"
/* When several Tcap components are received in a single TCAP message,
we have to use several buffers for the stored parameters
@@ -270,7 +270,7 @@ dissector_handle_t get_itu_tcap_subdissector(guint32 ssn) {
/*--- Included file: packet-tcap-fn.c ---*/
-#line 1 "../../asn1/tcap/packet-tcap-fn.c"
+#line 1 "./asn1/tcap/packet-tcap-fn.c"
static int
@@ -284,7 +284,7 @@ dissect_tcap_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_tcap_Dialog1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 72 "../../asn1/tcap/tcap.cnf"
+#line 72 "./asn1/tcap/tcap.cnf"
offset = dissect_tcap_DialoguePDU(TRUE, tvb, offset, actx, tree, -1);
@@ -312,7 +312,7 @@ dissect_tcap_ExternalPDU_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_tcap_ExternalPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "../../asn1/tcap/tcap.cnf"
+#line 67 "./asn1/tcap/tcap.cnf"
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_UNI, 8, TRUE, dissect_tcap_ExternalPDU_U);
@@ -327,7 +327,7 @@ dissect_tcap_ExternalPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_tcap_DialogueOC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 62 "../../asn1/tcap/tcap.cnf"
+#line 62 "./asn1/tcap/tcap.cnf"
offset = dissect_tcap_ExternalPDU(FALSE /*implicit_tag*/, tvb, offset, actx, tree, -1);
@@ -392,7 +392,7 @@ dissect_tcap_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_tcap_Parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 77 "../../asn1/tcap/tcap.cnf"
+#line 77 "./asn1/tcap/tcap.cnf"
offset = dissect_tcap_param(actx,tree,tvb,offset);
@@ -664,7 +664,7 @@ static const ber_choice_t Component_choice[] = {
static int
dissect_tcap_Component(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 82 "../../asn1/tcap/tcap.cnf"
+#line 82 "./asn1/tcap/tcap.cnf"
tvbuff_t *next_tvb;
gint8 ber_class;
gboolean pc;
@@ -754,7 +754,7 @@ dissect_tcap_OCTET_STRING_SIZE_1_4(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_tcap_OrigTransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 131 "../../asn1/tcap/tcap.cnf"
+#line 131 "./asn1/tcap/tcap.cnf"
tvbuff_t *parameter_tvb;
guint8 len, i;
proto_tree *subtree;
@@ -813,7 +813,7 @@ static const ber_sequence_t Begin_sequence[] = {
static int
dissect_tcap_Begin(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 215 "../../asn1/tcap/tcap.cnf"
+#line 215 "./asn1/tcap/tcap.cnf"
gp_tcapsrt_info->ope=TC_BEGIN;
/* Do not change col_add_str() to col_append_str() here: we _want_ this call
@@ -835,7 +835,7 @@ gp_tcapsrt_info->ope=TC_BEGIN;
static int
dissect_tcap_DestTransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 174 "../../asn1/tcap/tcap.cnf"
+#line 174 "./asn1/tcap/tcap.cnf"
tvbuff_t *parameter_tvb;
guint8 len , i;
proto_tree *subtree;
@@ -893,7 +893,7 @@ static const ber_sequence_t End_sequence[] = {
static int
dissect_tcap_End(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 229 "../../asn1/tcap/tcap.cnf"
+#line 229 "./asn1/tcap/tcap.cnf"
gp_tcapsrt_info->ope=TC_END;
col_set_str(actx->pinfo->cinfo, COL_INFO, "End ");
@@ -915,7 +915,7 @@ static const ber_sequence_t Continue_sequence[] = {
static int
dissect_tcap_Continue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 236 "../../asn1/tcap/tcap.cnf"
+#line 236 "./asn1/tcap/tcap.cnf"
gp_tcapsrt_info->ope=TC_CONT;
col_set_str(actx->pinfo->cinfo, COL_INFO, "Continue ");
@@ -986,7 +986,7 @@ static const ber_sequence_t Abort_sequence[] = {
static int
dissect_tcap_Abort(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 243 "../../asn1/tcap/tcap.cnf"
+#line 243 "./asn1/tcap/tcap.cnf"
gp_tcapsrt_info->ope=TC_ABORT;
col_set_str(actx->pinfo->cinfo, COL_INFO, "Abort ");
@@ -1035,7 +1035,7 @@ dissect_tcap_AUDT_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_tcap_AUDT_application_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 116 "../../asn1/tcap/tcap.cnf"
+#line 116 "./asn1/tcap/tcap.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &cur_oid);
tcap_private.oid= (const void*) cur_oid;
@@ -1132,7 +1132,7 @@ dissect_tcap_AARQ_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_tcap_AARQ_application_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 121 "../../asn1/tcap/tcap.cnf"
+#line 121 "./asn1/tcap/tcap.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &cur_oid);
tcap_private.oid= (const void*) cur_oid;
@@ -1200,7 +1200,7 @@ dissect_tcap_AARE_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_tcap_AARE_application_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 126 "../../asn1/tcap/tcap.cnf"
+#line 126 "./asn1/tcap/tcap.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &cur_oid);
tcap_private.oid= (const void*) cur_oid;
@@ -1420,7 +1420,7 @@ static int dissect_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pr
/*--- End of included file: packet-tcap-fn.c ---*/
-#line 154 "../../asn1/tcap/packet-tcap-template.c"
+#line 154 "./asn1/tcap/packet-tcap-template.c"
/*
* DEBUG functions
@@ -3336,13 +3336,13 @@ proto_reg_handoff_tcap(void)
/*--- Included file: packet-tcap-dis-tab.c ---*/
-#line 1 "../../asn1/tcap/packet-tcap-dis-tab.c"
+#line 1 "./asn1/tcap/packet-tcap-dis-tab.c"
register_ber_oid_dissector("0.0.17.773.1.1.1", dissect_DialoguePDU_PDU, proto_tcap, "id-as-dialogue");
register_ber_oid_dissector("0.0.17.773.1.2.1", dissect_UniDialoguePDU_PDU, proto_tcap, "id-as-uniDialogue");
/*--- End of included file: packet-tcap-dis-tab.c ---*/
-#line 2068 "../../asn1/tcap/packet-tcap-template.c"
+#line 2068 "./asn1/tcap/packet-tcap-template.c"
}
static void init_tcap(void);
@@ -3417,7 +3417,7 @@ proto_register_tcap(void)
},
/*--- Included file: packet-tcap-hfarr.c ---*/
-#line 1 "../../asn1/tcap/packet-tcap-hfarr.c"
+#line 1 "./asn1/tcap/packet-tcap-hfarr.c"
{ &hf_tcap_UniDialoguePDU_PDU,
{ "UniDialoguePDU", "tcap.UniDialoguePDU",
FT_UINT32, BASE_DEC, VALS(tcap_UniDialoguePDU_vals), 0,
@@ -3684,7 +3684,7 @@ proto_register_tcap(void)
NULL, HFILL }},
/*--- End of included file: packet-tcap-hfarr.c ---*/
-#line 2141 "../../asn1/tcap/packet-tcap-template.c"
+#line 2141 "./asn1/tcap/packet-tcap-template.c"
};
/* Setup protocol subtree array */
@@ -3696,7 +3696,7 @@ proto_register_tcap(void)
&ett_tcap_stat,
/*--- Included file: packet-tcap-ettarr.c ---*/
-#line 1 "../../asn1/tcap/packet-tcap-ettarr.c"
+#line 1 "./asn1/tcap/packet-tcap-ettarr.c"
&ett_tcap_ExternalPDU_U,
&ett_tcap_TCMessage,
&ett_tcap_Unidirectional,
@@ -3732,7 +3732,7 @@ proto_register_tcap(void)
&ett_tcap_Associate_source_diagnostic,
/*--- End of included file: packet-tcap-ettarr.c ---*/
-#line 2151 "../../asn1/tcap/packet-tcap-template.c"
+#line 2151 "./asn1/tcap/packet-tcap-template.c"
};
/*static enum_val_t tcap_options[] = {
diff --git a/epan/dissectors/packet-tcap.h b/epan/dissectors/packet-tcap.h
index 13e20cc387..ed4589c7ee 100644
--- a/epan/dissectors/packet-tcap.h
+++ b/epan/dissectors/packet-tcap.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-tcap.h */
-/* ../../tools/asn2wrs.py -b -p tcap -c ./tcap.cnf -s ./packet-tcap-template -D . -O ../../epan/dissectors tcap.asn UnidialoguePDUs.asn DialoguePDUs.asn */
+/* asn2wrs.py -b -p tcap -c ./tcap.cnf -s ./packet-tcap-template -D . -O ../.. tcap.asn UnidialoguePDUs.asn DialoguePDUs.asn */
/* Input file: packet-tcap-template.h */
-#line 1 "../../asn1/tcap/packet-tcap-template.h"
+#line 1 "./asn1/tcap/packet-tcap-template.h"
/* packet-tcap.h
*
* Copyright 2004, Tim Endean <endeant@hotmail.com>
@@ -234,13 +234,13 @@ extern void call_tcap_dissector(dissector_handle_t, tvbuff_t*, packet_info*, pro
/*--- Included file: packet-tcap-exp.h ---*/
-#line 1 "../../asn1/tcap/packet-tcap-exp.h"
+#line 1 "./asn1/tcap/packet-tcap-exp.h"
extern const value_string tcap_UniDialoguePDU_vals[];
extern const value_string tcap_DialoguePDU_vals[];
int dissect_tcap_UniDialoguePDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_tcap_DialoguePDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-tcap-exp.h ---*/
-#line 228 "../../asn1/tcap/packet-tcap-template.h"
+#line 228 "./asn1/tcap/packet-tcap-template.h"
#endif /* PACKET_tcap_H */
diff --git a/epan/dissectors/packet-tetra.c b/epan/dissectors/packet-tetra.c
index ef13dd4ada..b31116b41a 100644
--- a/epan/dissectors/packet-tetra.c
+++ b/epan/dissectors/packet-tetra.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-tetra.c */
-/* ../../tools/asn2wrs.py -u -p tetra -c ./tetra.cnf -s ./packet-tetra-template -D . -O ../../epan/dissectors tetra.asn */
+/* asn2wrs.py -u -p tetra -c ./tetra.cnf -s ./packet-tetra-template -D . -O ../.. tetra.asn */
/* Input file: packet-tetra-template.c */
-#line 1 "../../asn1/tetra/packet-tetra-template.c"
+#line 1 "./asn1/tetra/packet-tetra-template.c"
/* packet-tetra.c
* Routines for TETRA packet dissection
*
@@ -88,7 +88,7 @@ static gint hf_tetra_len0 = -1;
/*--- Included file: packet-tetra-hf.c ---*/
-#line 1 "../../asn1/tetra/packet-tetra-hf.c"
+#line 1 "./asn1/tetra/packet-tetra-hf.c"
static int hf_tetra_AACH_PDU = -1; /* AACH */
static int hf_tetra_BSCH_PDU = -1; /* BSCH */
static int hf_tetra_BNCH_PDU = -1; /* BNCH */
@@ -683,7 +683,7 @@ static int hf_tetra_proprietary_element_owner_extension = -1; /* BIT_STRING */
static int hf_tetra_simplex_duplex_selection_06 = -1; /* T_simplex_duplex_selection_05 */
/*--- End of included file: packet-tetra-hf.c ---*/
-#line 82 "../../asn1/tetra/packet-tetra-template.c"
+#line 82 "./asn1/tetra/packet-tetra-template.c"
/* Initialize the subtree pointers */
/* These are the ids of the subtrees that we may be creating */
@@ -695,7 +695,7 @@ static gint ett_tetra_text = -1;
/*--- Included file: packet-tetra-ett.c ---*/
-#line 1 "../../asn1/tetra/packet-tetra-ett.c"
+#line 1 "./asn1/tetra/packet-tetra-ett.c"
static gint ett_tetra_AACH = -1;
static gint ett_tetra_BSCH = -1;
static gint ett_tetra_MLE_Sync = -1;
@@ -968,13 +968,13 @@ static gint ett_tetra_Type2 = -1;
static gint ett_tetra_Modify_type = -1;
/*--- End of included file: packet-tetra-ett.c ---*/
-#line 92 "../../asn1/tetra/packet-tetra-template.c"
+#line 92 "./asn1/tetra/packet-tetra-template.c"
static expert_field ei_tetra_channels_incorrect = EI_INIT;
/*--- Included file: packet-tetra-fn.c ---*/
-#line 1 "../../asn1/tetra/packet-tetra-fn.c"
+#line 1 "./asn1/tetra/packet-tetra-fn.c"
static int
@@ -2539,7 +2539,7 @@ static const per_sequence_t U_LOCATION_UPDATE_DEMAND_sequence[] = {
static int
dissect_tetra_U_LOCATION_UPDATE_DEMAND(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 98 "../../asn1/tetra/tetra.cnf"
+#line 98 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_LOCATION_UPDATE_DEMAND, U_LOCATION_UPDATE_DEMAND_sequence);
@@ -2574,7 +2574,7 @@ static const per_sequence_t U_MM_STATUS_sequence[] = {
static int
dissect_tetra_U_MM_STATUS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 229 "../../asn1/tetra/tetra.cnf"
+#line 229 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_MM_STATUS, U_MM_STATUS_sequence);
@@ -2801,7 +2801,7 @@ static const per_sequence_t U_ATTACH_DETACH_GROUP_IDENTITY_sequence[] = {
static int
dissect_tetra_U_ATTACH_DETACH_GROUP_IDENTITY(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 239 "../../asn1/tetra/tetra.cnf"
+#line 239 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_ATTACH_DETACH_GROUP_IDENTITY, U_ATTACH_DETACH_GROUP_IDENTITY_sequence);
@@ -2896,7 +2896,7 @@ static const per_sequence_t U_ATTACH_DETACH_GROUP_IDENTITY_ACK_sequence[] = {
static int
dissect_tetra_U_ATTACH_DETACH_GROUP_IDENTITY_ACK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 244 "../../asn1/tetra/tetra.cnf"
+#line 244 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_ATTACH_DETACH_GROUP_IDENTITY_ACK, U_ATTACH_DETACH_GROUP_IDENTITY_ACK_sequence);
@@ -3188,7 +3188,7 @@ static const per_sequence_t U_ALERT_sequence[] = {
static int
dissect_tetra_U_ALERT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 178 "../../asn1/tetra/tetra.cnf"
+#line 178 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_ALERT, U_ALERT_sequence);
@@ -3306,7 +3306,7 @@ static const per_sequence_t U_CONNECT_sequence[] = {
static int
dissect_tetra_U_CONNECT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 183 "../../asn1/tetra/tetra.cnf"
+#line 183 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_CONNECT, U_CONNECT_sequence);
@@ -3394,7 +3394,7 @@ static const per_sequence_t U_DISCONNECT_sequence[] = {
static int
dissect_tetra_U_DISCONNECT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 188 "../../asn1/tetra/tetra.cnf"
+#line 188 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_DISCONNECT, U_DISCONNECT_sequence);
@@ -3428,7 +3428,7 @@ static const per_sequence_t U_RELEASE_sequence[] = {
static int
dissect_tetra_U_RELEASE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 75 "../../asn1/tetra/tetra.cnf"
+#line 75 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_RELEASE, U_RELEASE_sequence);
@@ -3603,7 +3603,7 @@ static const per_sequence_t U_SETUP_sequence[] = {
static int
dissect_tetra_U_SETUP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 198 "../../asn1/tetra/tetra.cnf"
+#line 198 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_SETUP, U_SETUP_sequence);
@@ -3659,7 +3659,7 @@ static const per_sequence_t U_STATUS_sequence[] = {
static int
dissect_tetra_U_STATUS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 203 "../../asn1/tetra/tetra.cnf"
+#line 203 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_STATUS, U_STATUS_sequence);
@@ -3736,7 +3736,7 @@ static const per_sequence_t U_TX_CEASED_sequence[] = {
static int
dissect_tetra_U_TX_CEASED(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 223 "../../asn1/tetra/tetra.cnf"
+#line 223 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_TX_CEASED, U_TX_CEASED_sequence);
@@ -3816,7 +3816,7 @@ static const per_sequence_t U_TX_DEMAND_sequence[] = {
static int
dissect_tetra_U_TX_DEMAND(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 218 "../../asn1/tetra/tetra.cnf"
+#line 218 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_TX_DEMAND, U_TX_DEMAND_sequence);
@@ -3905,7 +3905,7 @@ static const per_sequence_t U_CALL_RESTORE_sequence[] = {
static int
dissect_tetra_U_CALL_RESTORE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 213 "../../asn1/tetra/tetra.cnf"
+#line 213 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_CALL_RESTORE, U_CALL_RESTORE_sequence);
@@ -4007,7 +4007,7 @@ static const per_sequence_t U_SDS_DATA_sequence[] = {
static int
dissect_tetra_U_SDS_DATA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 208 "../../asn1/tetra/tetra.cnf"
+#line 208 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_U_SDS_DATA, U_SDS_DATA_sequence);
@@ -6115,7 +6115,7 @@ static const per_sequence_t D_LOCATION_UPDATE_ACCEPT_sequence[] = {
static int
dissect_tetra_D_LOCATION_UPDATE_ACCEPT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 104 "../../asn1/tetra/tetra.cnf"
+#line 104 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_LOCATION_UPDATE_ACCEPT, D_LOCATION_UPDATE_ACCEPT_sequence);
@@ -6135,7 +6135,7 @@ static const per_sequence_t D_LOCATION_UPDATE_REJECT_sequence[] = {
static int
dissect_tetra_D_LOCATION_UPDATE_REJECT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 249 "../../asn1/tetra/tetra.cnf"
+#line 249 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_LOCATION_UPDATE_REJECT, D_LOCATION_UPDATE_REJECT_sequence);
@@ -6354,7 +6354,7 @@ static const per_sequence_t D_ATTACH_DETACH_GROUP_IDENTITY_sequence[] = {
static int
dissect_tetra_D_ATTACH_DETACH_GROUP_IDENTITY(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 254 "../../asn1/tetra/tetra.cnf"
+#line 254 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_ATTACH_DETACH_GROUP_IDENTITY, D_ATTACH_DETACH_GROUP_IDENTITY_sequence);
@@ -6449,7 +6449,7 @@ static const per_sequence_t D_ATTACH_DETACH_GROUP_IDENTITY_ACK_sequence[] = {
static int
dissect_tetra_D_ATTACH_DETACH_GROUP_IDENTITY_ACK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 259 "../../asn1/tetra/tetra.cnf"
+#line 259 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_ATTACH_DETACH_GROUP_IDENTITY_ACK, D_ATTACH_DETACH_GROUP_IDENTITY_ACK_sequence);
@@ -6467,7 +6467,7 @@ static const per_sequence_t D_MM_STATUS_sequence[] = {
static int
dissect_tetra_D_MM_STATUS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 234 "../../asn1/tetra/tetra.cnf"
+#line 234 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_MM_STATUS, D_MM_STATUS_sequence);
@@ -6660,7 +6660,7 @@ static const per_sequence_t D_ALERT_sequence[] = {
static int
dissect_tetra_D_ALERT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 130 "../../asn1/tetra/tetra.cnf"
+#line 130 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_ALERT, D_ALERT_sequence);
@@ -6809,7 +6809,7 @@ static const per_sequence_t D_CALL_PROCEEDING_sequence[] = {
static int
dissect_tetra_D_CALL_PROCEEDING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 87 "../../asn1/tetra/tetra.cnf"
+#line 87 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_CALL_PROCEEDING, D_CALL_PROCEEDING_sequence);
@@ -7000,7 +7000,7 @@ static const per_sequence_t D_CONNECT_sequence[] = {
static int
dissect_tetra_D_CONNECT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 110 "../../asn1/tetra/tetra.cnf"
+#line 110 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_CONNECT, D_CONNECT_sequence);
@@ -7103,7 +7103,7 @@ static const per_sequence_t D_CONNECT_ACK_sequence[] = {
static int
dissect_tetra_D_CONNECT_ACK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 115 "../../asn1/tetra/tetra.cnf"
+#line 115 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_CONNECT_ACK, D_CONNECT_ACK_sequence);
@@ -7122,7 +7122,7 @@ static const per_sequence_t D_DISCONNECT_sequence[] = {
static int
dissect_tetra_D_DISCONNECT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 125 "../../asn1/tetra/tetra.cnf"
+#line 125 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_DISCONNECT, D_DISCONNECT_sequence);
@@ -7142,7 +7142,7 @@ static const per_sequence_t D_INFO_sequence[] = {
static int
dissect_tetra_D_INFO(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 120 "../../asn1/tetra/tetra.cnf"
+#line 120 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_INFO, D_INFO_sequence);
@@ -7243,7 +7243,7 @@ static const per_sequence_t D_RELEASE_sequence[] = {
static int
dissect_tetra_D_RELEASE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 80 "../../asn1/tetra/tetra.cnf"
+#line 80 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_RELEASE, D_RELEASE_sequence);
@@ -7389,7 +7389,7 @@ static const per_sequence_t D_SETUP_sequence[] = {
static int
dissect_tetra_D_SETUP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 92 "../../asn1/tetra/tetra.cnf"
+#line 92 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_SETUP, D_SETUP_sequence);
@@ -7444,7 +7444,7 @@ static const per_sequence_t D_STATUS_sequence[] = {
static int
dissect_tetra_D_STATUS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 141 "../../asn1/tetra/tetra.cnf"
+#line 141 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_STATUS, D_STATUS_sequence);
@@ -7545,7 +7545,7 @@ static const per_sequence_t D_TX_CEASED_sequence[] = {
static int
dissect_tetra_D_TX_CEASED(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 135 "../../asn1/tetra/tetra.cnf"
+#line 135 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_TX_CEASED, D_TX_CEASED_sequence);
@@ -7565,7 +7565,7 @@ static const per_sequence_t D_TX_CONTINUE_sequence[] = {
static int
dissect_tetra_D_TX_CONTINUE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 146 "../../asn1/tetra/tetra.cnf"
+#line 146 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_TX_CONTINUE, D_TX_CONTINUE_sequence);
@@ -7587,7 +7587,7 @@ static const per_sequence_t D_TX_GRANTED_sequence[] = {
static int
dissect_tetra_D_TX_GRANTED(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 151 "../../asn1/tetra/tetra.cnf"
+#line 151 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_TX_GRANTED, D_TX_GRANTED_sequence);
@@ -7607,7 +7607,7 @@ static const per_sequence_t D_TX_WAIT_sequence[] = {
static int
dissect_tetra_D_TX_WAIT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 157 "../../asn1/tetra/tetra.cnf"
+#line 157 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_TX_WAIT, D_TX_WAIT_sequence);
@@ -7837,7 +7837,7 @@ static const per_sequence_t D_CALL_RESTORE_sequence[] = {
static int
dissect_tetra_D_CALL_RESTORE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 162 "../../asn1/tetra/tetra.cnf"
+#line 162 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_CALL_RESTORE, D_CALL_RESTORE_sequence);
@@ -7918,7 +7918,7 @@ static const per_sequence_t D_SDS_DATA_sequence[] = {
static int
dissect_tetra_D_SDS_DATA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 167 "../../asn1/tetra/tetra.cnf"
+#line 167 "./asn1/tetra/tetra.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_tetra_D_SDS_DATA, D_SDS_DATA_sequence);
@@ -8814,7 +8814,7 @@ static int dissect_MAC_ACCESS_DEFINE_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _
/*--- End of included file: packet-tetra-fn.c ---*/
-#line 96 "../../asn1/tetra/packet-tetra-template.c"
+#line 96 "./asn1/tetra/packet-tetra-template.c"
static const value_string channeltypenames[] = {
{ 0, "Reserved" },
@@ -9346,7 +9346,7 @@ void proto_register_tetra (void)
/*--- Included file: packet-tetra-hfarr.c ---*/
-#line 1 "../../asn1/tetra/packet-tetra-hfarr.c"
+#line 1 "./asn1/tetra/packet-tetra-hfarr.c"
{ &hf_tetra_AACH_PDU,
{ "AACH", "tetra.AACH_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -11717,7 +11717,7 @@ void proto_register_tetra (void)
"T_simplex_duplex_selection_05", HFILL }},
/*--- End of included file: packet-tetra-hfarr.c ---*/
-#line 626 "../../asn1/tetra/packet-tetra-template.c"
+#line 626 "./asn1/tetra/packet-tetra-template.c"
};
/* List of subtrees */
@@ -11729,7 +11729,7 @@ void proto_register_tetra (void)
&ett_tetra_text,
/*--- Included file: packet-tetra-ettarr.c ---*/
-#line 1 "../../asn1/tetra/packet-tetra-ettarr.c"
+#line 1 "./asn1/tetra/packet-tetra-ettarr.c"
&ett_tetra_AACH,
&ett_tetra_BSCH,
&ett_tetra_MLE_Sync,
@@ -12002,7 +12002,7 @@ void proto_register_tetra (void)
&ett_tetra_Modify_type,
/*--- End of included file: packet-tetra-ettarr.c ---*/
-#line 636 "../../asn1/tetra/packet-tetra-template.c"
+#line 636 "./asn1/tetra/packet-tetra-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-tetra.h b/epan/dissectors/packet-tetra.h
index 1c5b51c947..fa3614c605 100644
--- a/epan/dissectors/packet-tetra.h
+++ b/epan/dissectors/packet-tetra.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-tetra.h */
-/* ../../tools/asn2wrs.py -u -p tetra -c ./tetra.cnf -s ./packet-tetra-template -D . -O ../../epan/dissectors tetra.asn */
+/* asn2wrs.py -u -p tetra -c ./tetra.cnf -s ./packet-tetra-template -D . -O ../.. tetra.asn */
/* Input file: packet-tetra-template.h */
-#line 1 "../../asn1/tetra/packet-tetra-template.h"
+#line 1 "./asn1/tetra/packet-tetra-template.h"
/* packet-tetra.h
* Routines for TETRA packet dissection
*
diff --git a/epan/dissectors/packet-ulp.c b/epan/dissectors/packet-ulp.c
index 976ca6d250..f0bec6be82 100644
--- a/epan/dissectors/packet-ulp.c
+++ b/epan/dissectors/packet-ulp.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-ulp.c */
-/* ../../tools/asn2wrs.py -p ulp -c ./ulp.cnf -s ./packet-ulp-template -D . -O ../../epan/dissectors ULP.asn SUPL.asn ULP-Components.asn */
+/* asn2wrs.py -p ulp -c ./ulp.cnf -s ./packet-ulp-template -D . -O ../.. ULP.asn SUPL.asn ULP-Components.asn */
/* Input file: packet-ulp-template.c */
-#line 1 "../../asn1/ulp/packet-ulp-template.c"
+#line 1 "./asn1/ulp/packet-ulp-template.c"
/* packet-ulp.c
* Routines for OMA UserPlane Location Protocol packet dissection
* Copyright 2006, Anders Broman <anders.broman@ericsson.com>
@@ -72,7 +72,7 @@ static gboolean ulp_desegment = TRUE;
/*--- Included file: packet-ulp-hf.c ---*/
-#line 1 "../../asn1/ulp/packet-ulp-hf.c"
+#line 1 "./asn1/ulp/packet-ulp-hf.c"
static int hf_ulp_ULP_PDU_PDU = -1; /* ULP_PDU */
static int hf_ulp_length = -1; /* INTEGER_0_65535 */
static int hf_ulp_version = -1; /* Version */
@@ -711,7 +711,7 @@ static int hf_ulp_GANSSSignals_signal7 = -1;
static int hf_ulp_GANSSSignals_signal8 = -1;
/*--- End of included file: packet-ulp-hf.c ---*/
-#line 66 "../../asn1/ulp/packet-ulp-template.c"
+#line 66 "./asn1/ulp/packet-ulp-template.c"
static int hf_ulp_mobile_directory_number = -1;
static int hf_ulp_ganssTimeModels_bit0 = -1;
static int hf_ulp_ganssTimeModels_bit1 = -1;
@@ -727,7 +727,7 @@ static gint ett_ulp_thirdPartyId = -1;
static gint ett_ulp_ganssTimeModels = -1;
/*--- Included file: packet-ulp-ett.c ---*/
-#line 1 "../../asn1/ulp/packet-ulp-ett.c"
+#line 1 "./asn1/ulp/packet-ulp-ett.c"
static gint ett_ulp_ULP_PDU = -1;
static gint ett_ulp_UlpMessage = -1;
static gint ett_ulp_SUPLINIT = -1;
@@ -942,7 +942,7 @@ static gint ett_ulp_PolygonArea = -1;
static gint ett_ulp_PolygonDescription = -1;
/*--- End of included file: packet-ulp-ett.c ---*/
-#line 80 "../../asn1/ulp/packet-ulp-template.c"
+#line 80 "./asn1/ulp/packet-ulp-template.c"
static const value_string ulp_ganss_id_vals[] = {
{ 0, "Galileo"},
@@ -1192,7 +1192,7 @@ ulp_Coordinate_longitude_fmt(gchar *s, guint32 v)
/* Include constants */
/*--- Included file: packet-ulp-val.h ---*/
-#line 1 "../../asn1/ulp/packet-ulp-val.h"
+#line 1 "./asn1/ulp/packet-ulp-val.h"
#define maxReqLength 50
#define maxClientLength 50
#define maxNumGeoArea 32
@@ -1210,7 +1210,7 @@ ulp_Coordinate_longitude_fmt(gchar *s, guint32 v)
#define maxWimaxBSMeas 32
/*--- End of included file: packet-ulp-val.h ---*/
-#line 328 "../../asn1/ulp/packet-ulp-template.c"
+#line 328 "./asn1/ulp/packet-ulp-template.c"
typedef struct
{
@@ -1228,7 +1228,7 @@ static ulp_private_data_t* ulp_get_private_data(asn1_ctx_t *actx)
/*--- Included file: packet-ulp-fn.c ---*/
-#line 1 "../../asn1/ulp/packet-ulp-fn.c"
+#line 1 "./asn1/ulp/packet-ulp-fn.c"
static int
@@ -1269,7 +1269,7 @@ dissect_ulp_Version(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_ulp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 304 "../../asn1/ulp/ulp.cnf"
+#line 304 "./asn1/ulp/ulp.cnf"
tvbuff_t *msisdn_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &msisdn_tvb);
@@ -1290,7 +1290,7 @@ dissect_ulp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_ulp_T_mdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 314 "../../asn1/ulp/ulp.cnf"
+#line 314 "./asn1/ulp/ulp.cnf"
tvbuff_t *mdn_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &mdn_tvb);
@@ -1321,7 +1321,7 @@ dissect_ulp_BIT_STRING_SIZE_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ulp_T_imsi(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 324 "../../asn1/ulp/ulp.cnf"
+#line 324 "./asn1/ulp/ulp.cnf"
tvbuff_t *imsi_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &imsi_tvb);
@@ -1559,7 +1559,7 @@ static const value_string ulp_EncodingType_vals[] = {
static int
dissect_ulp_EncodingType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 60 "../../asn1/ulp/ulp.cnf"
+#line 60 "./asn1/ulp/ulp.cnf"
guint32 val;
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
@@ -1577,7 +1577,7 @@ dissect_ulp_EncodingType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_requestorId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "../../asn1/ulp/ulp.cnf"
+#line 67 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
@@ -1639,7 +1639,7 @@ dissect_ulp_FormatIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ulp_T_clientName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 99 "../../asn1/ulp/ulp.cnf"
+#line 99 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
@@ -1712,7 +1712,7 @@ static const per_sequence_t Notification_sequence[] = {
static int
dissect_ulp_Notification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 54 "../../asn1/ulp/ulp.cnf"
+#line 54 "./asn1/ulp/ulp.cnf"
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
ulp_priv->notif_enc_type = -1;
@@ -1739,7 +1739,7 @@ dissect_ulp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_ulp_T_maxLocAge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 385 "../../asn1/ulp/ulp.cnf"
+#line 385 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, NULL, FALSE);
@@ -1867,7 +1867,7 @@ dissect_ulp_SupportedWLANInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ulp_T_apMACAddress_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 573 "../../asn1/ulp/ulp.cnf"
+#line 573 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -2079,7 +2079,7 @@ dissect_ulp_AllowedReportingType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_ulp_T_startTime_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 190 "../../asn1/ulp/ulp.cnf"
+#line 190 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-525600, -1, NULL, FALSE);
@@ -2094,7 +2094,7 @@ dissect_ulp_T_startTime_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ulp_T_stopTime_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 194 "../../asn1/ulp/ulp.cnf"
+#line 194 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-525599, 0U, NULL, FALSE);
@@ -2134,7 +2134,7 @@ dissect_ulp_INTEGER_1_65536(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ulp_T_minTimeInterval(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 186 "../../asn1/ulp/ulp.cnf"
+#line 186 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 86400U, NULL, FALSE);
@@ -2319,7 +2319,7 @@ dissect_ulp_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_ganssSBASid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 201 "../../asn1/ulp/ulp.cnf"
+#line 201 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -2570,7 +2570,7 @@ dissect_ulp_ServicesSupported(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ulp_T_minInt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 761 "../../asn1/ulp/ulp.cnf"
+#line 761 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 3600U, NULL, FALSE);
@@ -2585,7 +2585,7 @@ dissect_ulp_T_minInt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_ulp_T_maxInt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 765 "../../asn1/ulp/ulp.cnf"
+#line 765 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1440U, NULL, FALSE);
@@ -3628,7 +3628,7 @@ dissect_ulp_LteCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ulp_T_apMACAddress_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 590 "../../asn1/ulp/ulp.cnf"
+#line 590 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -3647,7 +3647,7 @@ dissect_ulp_T_apMACAddress_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ulp_T_apTransmitPower(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 601 "../../asn1/ulp/ulp.cnf"
+#line 601 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
@@ -3662,7 +3662,7 @@ dissect_ulp_T_apTransmitPower(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ulp_T_apAntennaGain(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 605 "../../asn1/ulp/ulp.cnf"
+#line 605 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
@@ -3677,7 +3677,7 @@ dissect_ulp_T_apAntennaGain(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ulp_T_apSignaltoNoise(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 609 "../../asn1/ulp/ulp.cnf"
+#line 609 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
@@ -3712,7 +3712,7 @@ dissect_ulp_T_apDeviceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ulp_T_apSignalStrength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 613 "../../asn1/ulp/ulp.cnf"
+#line 613 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
@@ -3782,7 +3782,7 @@ dissect_ulp_RTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_t
static int
dissect_ulp_T_setTransmitPower(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 617 "../../asn1/ulp/ulp.cnf"
+#line 617 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
@@ -3797,7 +3797,7 @@ dissect_ulp_T_setTransmitPower(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ulp_T_setAntennaGain(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 621 "../../asn1/ulp/ulp.cnf"
+#line 621 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
@@ -3812,7 +3812,7 @@ dissect_ulp_T_setAntennaGain(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ulp_T_setSignaltoNoise(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 625 "../../asn1/ulp/ulp.cnf"
+#line 625 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
@@ -3827,7 +3827,7 @@ dissect_ulp_T_setSignaltoNoise(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ulp_T_setSignalStrength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 629 "../../asn1/ulp/ulp.cnf"
+#line 629 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
-127, 128U, NULL, FALSE);
@@ -4003,7 +4003,7 @@ dissect_ulp_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_apSSID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 645 "../../asn1/ulp/ulp.cnf"
+#line 645 "./asn1/ulp/ulp.cnf"
tvbuff_t *ssid_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
@@ -4046,7 +4046,7 @@ dissect_ulp_T_apPHYType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_setMACAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 656 "../../asn1/ulp/ulp.cnf"
+#line 656 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4150,7 +4150,7 @@ dissect_ulp_INTEGER_M32768_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_ulp_T_rSSIstd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 685 "../../asn1/ulp/ulp.cnf"
+#line 685 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 63U, NULL, FALSE);
@@ -4165,7 +4165,7 @@ dissect_ulp_T_rSSIstd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_ulp_T_cinr(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 692 "../../asn1/ulp/ulp.cnf"
+#line 692 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
@@ -4180,7 +4180,7 @@ dissect_ulp_T_cinr(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
static int
dissect_ulp_T_cINRstd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 696 "../../asn1/ulp/ulp.cnf"
+#line 696 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 63U, NULL, FALSE);
@@ -4373,7 +4373,7 @@ dissect_ulp_MultipleLocationIds(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_ulp_T_msisdn_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 725 "../../asn1/ulp/ulp.cnf"
+#line 725 "./asn1/ulp/ulp.cnf"
tvbuff_t *msisdn_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &msisdn_tvb);
@@ -4394,7 +4394,7 @@ dissect_ulp_T_msisdn_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_sip_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 736 "../../asn1/ulp/ulp.cnf"
+#line 736 "./asn1/ulp/ulp.cnf"
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
NULL);
@@ -4407,7 +4407,7 @@ dissect_ulp_T_sip_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_ulp_T_ims_public_identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 741 "../../asn1/ulp/ulp.cnf"
+#line 741 "./asn1/ulp/ulp.cnf"
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
NULL);
@@ -4420,7 +4420,7 @@ dissect_ulp_T_ims_public_identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_ulp_T_mdn_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 745 "../../asn1/ulp/ulp.cnf"
+#line 745 "./asn1/ulp/ulp.cnf"
tvbuff_t *mdn_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &mdn_tvb);
@@ -4441,7 +4441,7 @@ dissect_ulp_T_mdn_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_ulp_T_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 756 "../../asn1/ulp/ulp.cnf"
+#line 756 "./asn1/ulp/ulp.cnf"
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%#", 69,
NULL);
@@ -4585,7 +4585,7 @@ dissect_ulp_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_ulp_T_orientationMajorAxis(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 350 "../../asn1/ulp/ulp.cnf"
+#line 350 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 180U, NULL, FALSE);
@@ -4619,7 +4619,7 @@ dissect_ulp_T_confidence(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 100U, NULL, FALSE);
-#line 354 "../../asn1/ulp/ulp.cnf"
+#line 354 "./asn1/ulp/ulp.cnf"
proto_item_append_text(actx->created_item, "%%");
@@ -4646,7 +4646,7 @@ dissect_ulp_T_altitudeDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_ulp_T_altitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 357 "../../asn1/ulp/ulp.cnf"
+#line 357 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 32767U, NULL, FALSE);
@@ -4696,7 +4696,7 @@ dissect_ulp_PositionEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ulp_T_bearing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 392 "../../asn1/ulp/ulp.cnf"
+#line 392 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4716,7 +4716,7 @@ dissect_ulp_T_bearing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_ulp_T_horspeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 404 "../../asn1/ulp/ulp.cnf"
+#line 404 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4751,7 +4751,7 @@ dissect_ulp_Horvel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
static int
dissect_ulp_T_verdirect(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 416 "../../asn1/ulp/ulp.cnf"
+#line 416 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4770,7 +4770,7 @@ dissect_ulp_T_verdirect(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_bearing_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 427 "../../asn1/ulp/ulp.cnf"
+#line 427 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4790,7 +4790,7 @@ dissect_ulp_T_bearing_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_horspeed_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 439 "../../asn1/ulp/ulp.cnf"
+#line 439 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4810,7 +4810,7 @@ dissect_ulp_T_horspeed_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_ulp_T_verspeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 451 "../../asn1/ulp/ulp.cnf"
+#line 451 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4847,7 +4847,7 @@ dissect_ulp_Horandvervel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_bearing_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 463 "../../asn1/ulp/ulp.cnf"
+#line 463 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4867,7 +4867,7 @@ dissect_ulp_T_bearing_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_horspeed_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 475 "../../asn1/ulp/ulp.cnf"
+#line 475 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4887,7 +4887,7 @@ dissect_ulp_T_horspeed_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_ulp_T_uncertspeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 487 "../../asn1/ulp/ulp.cnf"
+#line 487 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4923,7 +4923,7 @@ dissect_ulp_Horveluncert(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_verdirect_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 499 "../../asn1/ulp/ulp.cnf"
+#line 499 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4942,7 +4942,7 @@ dissect_ulp_T_verdirect_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ulp_T_bearing_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 510 "../../asn1/ulp/ulp.cnf"
+#line 510 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4962,7 +4962,7 @@ dissect_ulp_T_bearing_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_horspeed_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 522 "../../asn1/ulp/ulp.cnf"
+#line 522 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -4982,7 +4982,7 @@ dissect_ulp_T_horspeed_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_ulp_T_verspeed_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 534 "../../asn1/ulp/ulp.cnf"
+#line 534 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -5002,7 +5002,7 @@ dissect_ulp_T_verspeed_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_ulp_T_horuncertspeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 546 "../../asn1/ulp/ulp.cnf"
+#line 546 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -5022,7 +5022,7 @@ dissect_ulp_T_horuncertspeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ulp_T_veruncertspeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 558 "../../asn1/ulp/ulp.cnf"
+#line 558 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -5251,7 +5251,7 @@ dissect_ulp_SUPLRESPONSE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_gpsToe(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 131 "../../asn1/ulp/ulp.cnf"
+#line 131 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 167U, NULL, FALSE);
@@ -5276,7 +5276,7 @@ dissect_ulp_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_toeLimit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 135 "../../asn1/ulp/ulp.cnf"
+#line 135 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 10U, NULL, FALSE);
@@ -5357,7 +5357,7 @@ dissect_ulp_GanssRequestedCommonAssistanceDataList(tvbuff_t *tvb _U_, int offset
static int
dissect_ulp_T_ganssId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 212 "../../asn1/ulp/ulp.cnf"
+#line 212 "./asn1/ulp/ulp.cnf"
guint32 val;
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
@@ -5375,7 +5375,7 @@ dissect_ulp_T_ganssId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_ulp_T_ganssSBASid_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 222 "../../asn1/ulp/ulp.cnf"
+#line 222 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -5404,7 +5404,7 @@ dissect_ulp_DGANSS_Sig_Id_Req(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ulp_T_ganssWeek(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 246 "../../asn1/ulp/ulp.cnf"
+#line 246 "./asn1/ulp/ulp.cnf"
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -5426,7 +5426,7 @@ dissect_ulp_T_ganssWeek(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_ganssToe(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 257 "../../asn1/ulp/ulp.cnf"
+#line 257 "./asn1/ulp/ulp.cnf"
guint32 val;
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
@@ -5436,7 +5436,7 @@ dissect_ulp_T_ganssToe(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
-#line 263 "../../asn1/ulp/ulp.cnf"
+#line 263 "./asn1/ulp/ulp.cnf"
if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
/* Not GLONASS */
proto_item_append_text(actx->created_item, " h");
@@ -5452,7 +5452,7 @@ dissect_ulp_T_ganssToe(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_t_toeLimit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 271 "../../asn1/ulp/ulp.cnf"
+#line 271 "./asn1/ulp/ulp.cnf"
guint32 val;
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
@@ -5462,7 +5462,7 @@ dissect_ulp_T_t_toeLimit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
-#line 277 "../../asn1/ulp/ulp.cnf"
+#line 277 "./asn1/ulp/ulp.cnf"
if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
/* Not GLONASS */
proto_item_append_text(actx->created_item, " h");
@@ -5524,7 +5524,7 @@ dissect_ulp_GanssNavigationModelData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_ulp_T_ganssTimeModels(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 233 "../../asn1/ulp/ulp.cnf"
+#line 233 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16, 16, FALSE, &val_tvb, NULL);
@@ -5548,7 +5548,7 @@ dissect_ulp_T_ganssTimeModels(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ulp_T_ganssTODmin(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 285 "../../asn1/ulp/ulp.cnf"
+#line 285 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 59U, NULL, FALSE);
@@ -5833,7 +5833,7 @@ dissect_ulp_OCTET_STRING_SIZE_1_8192(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_ulp_T_rrlpPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 139 "../../asn1/ulp/ulp.cnf"
+#line 139 "./asn1/ulp/ulp.cnf"
tvbuff_t *rrlp_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -5853,7 +5853,7 @@ dissect_ulp_T_rrlpPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_ulp_T_lPPPayload_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 295 "../../asn1/ulp/ulp.cnf"
+#line 295 "./asn1/ulp/ulp.cnf"
tvbuff_t *lpp_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6180,7 +6180,7 @@ dissect_ulp_UTRAN_GPSReferenceTimeResult(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_ulp_T_ganssTOD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 709 "../../asn1/ulp/ulp.cnf"
+#line 709 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 86399U, NULL, FALSE);
@@ -6618,7 +6618,7 @@ dissect_ulp_INTEGER_1_8639999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ulp_T_intervalBetweenFixes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 148 "../../asn1/ulp/ulp.cnf"
+#line 148 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 8639999U, NULL, FALSE);
@@ -6633,7 +6633,7 @@ dissect_ulp_T_intervalBetweenFixes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_ulp_T_startTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 152 "../../asn1/ulp/ulp.cnf"
+#line 152 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 2678400U, NULL, FALSE);
@@ -6682,7 +6682,7 @@ dissect_ulp_AreaEventType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_ulp_T_minimumIntervalTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 164 "../../asn1/ulp/ulp.cnf"
+#line 164 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 604800U, NULL, FALSE);
@@ -6712,7 +6712,7 @@ dissect_ulp_RepeatedReportingParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_ulp_T_startTime_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 156 "../../asn1/ulp/ulp.cnf"
+#line 156 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 2678400U, NULL, FALSE);
@@ -6727,7 +6727,7 @@ dissect_ulp_T_startTime_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ulp_T_stopTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 160 "../../asn1/ulp/ulp.cnf"
+#line 160 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 11318399U, NULL, FALSE);
@@ -6774,7 +6774,7 @@ dissect_ulp_Coordinate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_radius(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 775 "../../asn1/ulp/ulp.cnf"
+#line 775 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1000000U, NULL, FALSE);
@@ -6826,7 +6826,7 @@ dissect_ulp_CircularArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_T_semiMajor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 779 "../../asn1/ulp/ulp.cnf"
+#line 779 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1000000U, NULL, FALSE);
@@ -6841,7 +6841,7 @@ dissect_ulp_T_semiMajor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_semiMinor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 783 "../../asn1/ulp/ulp.cnf"
+#line 783 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1000000U, NULL, FALSE);
@@ -6856,7 +6856,7 @@ dissect_ulp_T_semiMinor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_angle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 787 "../../asn1/ulp/ulp.cnf"
+#line 787 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 179U, NULL, FALSE);
@@ -6906,7 +6906,7 @@ dissect_ulp_PolygonDescription(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ulp_T_polygonHysteresis(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 791 "../../asn1/ulp/ulp.cnf"
+#line 791 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 100000U, NULL, FALSE);
@@ -7080,7 +7080,7 @@ dissect_ulp_LTEAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_ulp_T_apMACAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 168 "../../asn1/ulp/ulp.cnf"
+#line 168 "./asn1/ulp/ulp.cnf"
tvbuff_t *val_tvb;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -7607,7 +7607,7 @@ dissect_ulp_ResultCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_T_relativeTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 182 "../../asn1/ulp/ulp.cnf"
+#line 182 "./asn1/ulp/ulp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 31536000U, NULL, FALSE);
@@ -7730,7 +7730,7 @@ static const per_choice_t UlpMessage_choice[] = {
static int
dissect_ulp_UlpMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 44 "../../asn1/ulp/ulp.cnf"
+#line 44 "./asn1/ulp/ulp.cnf"
guint32 UlpMessage;
@@ -7757,7 +7757,7 @@ static const per_sequence_t ULP_PDU_sequence[] = {
static int
dissect_ulp_ULP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 29 "../../asn1/ulp/ulp.cnf"
+#line 29 "./asn1/ulp/ulp.cnf"
proto_item *it;
proto_tree *ulp_tree;
@@ -7767,7 +7767,7 @@ dissect_ulp_ULP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
col_clear(actx->pinfo->cinfo, COL_INFO);
-#line 40 "../../asn1/ulp/ulp.cnf"
+#line 40 "./asn1/ulp/ulp.cnf"
offset = dissect_per_sequence(tvb, offset, actx, ulp_tree, hf_index,
ett_ulp_ULP_PDU, ULP_PDU_sequence);
@@ -7789,7 +7789,7 @@ static int dissect_ULP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-ulp-fn.c ---*/
-#line 344 "../../asn1/ulp/packet-ulp-template.c"
+#line 344 "./asn1/ulp/packet-ulp-template.c"
static guint
@@ -7817,7 +7817,7 @@ void proto_register_ulp(void) {
/*--- Included file: packet-ulp-hfarr.c ---*/
-#line 1 "../../asn1/ulp/packet-ulp-hfarr.c"
+#line 1 "./asn1/ulp/packet-ulp-hfarr.c"
{ &hf_ulp_ULP_PDU_PDU,
{ "ULP-PDU", "ulp.ULP_PDU_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -10360,7 +10360,7 @@ void proto_register_ulp(void) {
NULL, HFILL }},
/*--- End of included file: packet-ulp-hfarr.c ---*/
-#line 370 "../../asn1/ulp/packet-ulp-template.c"
+#line 370 "./asn1/ulp/packet-ulp-template.c"
{ &hf_ulp_mobile_directory_number,
{ "Mobile Directory Number", "ulp.mobile_directory_number",
FT_STRING, BASE_NONE, NULL, 0,
@@ -10399,7 +10399,7 @@ void proto_register_ulp(void) {
&ett_ulp_ganssTimeModels,
/*--- Included file: packet-ulp-ettarr.c ---*/
-#line 1 "../../asn1/ulp/packet-ulp-ettarr.c"
+#line 1 "./asn1/ulp/packet-ulp-ettarr.c"
&ett_ulp_ULP_PDU,
&ett_ulp_UlpMessage,
&ett_ulp_SUPLINIT,
@@ -10614,7 +10614,7 @@ void proto_register_ulp(void) {
&ett_ulp_PolygonDescription,
/*--- End of included file: packet-ulp-ettarr.c ---*/
-#line 407 "../../asn1/ulp/packet-ulp-template.c"
+#line 407 "./asn1/ulp/packet-ulp-template.c"
};
module_t *ulp_module;
diff --git a/epan/dissectors/packet-wlancertextn.c b/epan/dissectors/packet-wlancertextn.c
index 1492d57c6c..6aa65624c9 100644
--- a/epan/dissectors/packet-wlancertextn.c
+++ b/epan/dissectors/packet-wlancertextn.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-wlancertextn.c */
-/* ../../tools/asn2wrs.py -b -p wlancertextn -c ./wlancertextn.cnf -s ./packet-wlancertextn-template -D . -O ../../epan/dissectors WLANCERTEXTN.asn */
+/* asn2wrs.py -b -p wlancertextn -c ./wlancertextn.cnf -s ./packet-wlancertextn-template -D . -O ../.. WLANCERTEXTN.asn */
/* Input file: packet-wlancertextn-template.c */
-#line 1 "../../asn1/wlancertextn/packet-wlancertextn-template.c"
+#line 1 "./asn1/wlancertextn/packet-wlancertextn-template.c"
/* packet-wlancertextn.c
* Routines for Wireless Certificate Extension (RFC3770)
* Ronnie Sahlberg 2005
@@ -52,25 +52,25 @@ void proto_reg_handoff_wlancertextn(void);
static int proto_wlancertextn = -1;
/*--- Included file: packet-wlancertextn-hf.c ---*/
-#line 1 "../../asn1/wlancertextn/packet-wlancertextn-hf.c"
+#line 1 "./asn1/wlancertextn/packet-wlancertextn-hf.c"
static int hf_wlancertextn_SSIDList_PDU = -1; /* SSIDList */
static int hf_wlancertextn_SSIDList_item = -1; /* SSID */
/*--- End of included file: packet-wlancertextn-hf.c ---*/
-#line 46 "../../asn1/wlancertextn/packet-wlancertextn-template.c"
+#line 46 "./asn1/wlancertextn/packet-wlancertextn-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-wlancertextn-ett.c ---*/
-#line 1 "../../asn1/wlancertextn/packet-wlancertextn-ett.c"
+#line 1 "./asn1/wlancertextn/packet-wlancertextn-ett.c"
static gint ett_wlancertextn_SSIDList = -1;
/*--- End of included file: packet-wlancertextn-ett.c ---*/
-#line 49 "../../asn1/wlancertextn/packet-wlancertextn-template.c"
+#line 49 "./asn1/wlancertextn/packet-wlancertextn-template.c"
/*--- Included file: packet-wlancertextn-fn.c ---*/
-#line 1 "../../asn1/wlancertextn/packet-wlancertextn-fn.c"
+#line 1 "./asn1/wlancertextn/packet-wlancertextn-fn.c"
static int
@@ -106,7 +106,7 @@ static int dissect_SSIDList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-wlancertextn-fn.c ---*/
-#line 51 "../../asn1/wlancertextn/packet-wlancertextn-template.c"
+#line 51 "./asn1/wlancertextn/packet-wlancertextn-template.c"
/*--- proto_register_wlancertextn ----------------------------------------------*/
@@ -116,7 +116,7 @@ void proto_register_wlancertextn(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-wlancertextn-hfarr.c ---*/
-#line 1 "../../asn1/wlancertextn/packet-wlancertextn-hfarr.c"
+#line 1 "./asn1/wlancertextn/packet-wlancertextn-hfarr.c"
{ &hf_wlancertextn_SSIDList_PDU,
{ "SSIDList", "wlancertextn.SSIDList",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -127,18 +127,18 @@ void proto_register_wlancertextn(void) {
NULL, HFILL }},
/*--- End of included file: packet-wlancertextn-hfarr.c ---*/
-#line 59 "../../asn1/wlancertextn/packet-wlancertextn-template.c"
+#line 59 "./asn1/wlancertextn/packet-wlancertextn-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-wlancertextn-ettarr.c ---*/
-#line 1 "../../asn1/wlancertextn/packet-wlancertextn-ettarr.c"
+#line 1 "./asn1/wlancertextn/packet-wlancertextn-ettarr.c"
&ett_wlancertextn_SSIDList,
/*--- End of included file: packet-wlancertextn-ettarr.c ---*/
-#line 64 "../../asn1/wlancertextn/packet-wlancertextn-template.c"
+#line 64 "./asn1/wlancertextn/packet-wlancertextn-template.c"
};
/* Register protocol */
@@ -155,13 +155,13 @@ void proto_register_wlancertextn(void) {
void proto_reg_handoff_wlancertextn(void) {
/*--- Included file: packet-wlancertextn-dis-tab.c ---*/
-#line 1 "../../asn1/wlancertextn/packet-wlancertextn-dis-tab.c"
+#line 1 "./asn1/wlancertextn/packet-wlancertextn-dis-tab.c"
register_ber_oid_dissector("1.3.6.1.5.5.7.1.13", dissect_SSIDList_PDU, proto_wlancertextn, "id-pe-wlanSSID");
register_ber_oid_dissector("1.3.6.1.5.5.7.10.6", dissect_SSIDList_PDU, proto_wlancertextn, "id-aca-wlanSSID");
/*--- End of included file: packet-wlancertextn-dis-tab.c ---*/
-#line 79 "../../asn1/wlancertextn/packet-wlancertextn-template.c"
+#line 79 "./asn1/wlancertextn/packet-wlancertextn-template.c"
oid_add_from_string("id-kp-eapOverPPP","1.3.6.1.5.5.7.3.13");
oid_add_from_string("id-kp-eapOverLAN","1.3.6.1.5.5.7.3.14");
}
diff --git a/epan/dissectors/packet-wlancertextn.h b/epan/dissectors/packet-wlancertextn.h
index e0dfb14848..028157d6ce 100644
--- a/epan/dissectors/packet-wlancertextn.h
+++ b/epan/dissectors/packet-wlancertextn.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-wlancertextn.h */
-/* ../../tools/asn2wrs.py -b -p wlancertextn -c ./wlancertextn.cnf -s ./packet-wlancertextn-template -D . -O ../../epan/dissectors WLANCERTEXTN.asn */
+/* asn2wrs.py -b -p wlancertextn -c ./wlancertextn.cnf -s ./packet-wlancertextn-template -D . -O ../.. WLANCERTEXTN.asn */
/* Input file: packet-wlancertextn-template.h */
-#line 1 "../../asn1/wlancertextn/packet-wlancertextn-template.h"
+#line 1 "./asn1/wlancertextn/packet-wlancertextn-template.h"
/* packet-wlancertextn.h
* Routines for Wireless Certificate Extensions (RFC3770) packet dissection
* Ronnie Sahlberg 2005
diff --git a/epan/dissectors/packet-x2ap.c b/epan/dissectors/packet-x2ap.c
index f0572a76e2..acb82e45f5 100644
--- a/epan/dissectors/packet-x2ap.c
+++ b/epan/dissectors/packet-x2ap.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x2ap.c */
-/* ../../tools/asn2wrs.py -p x2ap -c ./x2ap.cnf -s ./packet-x2ap-template -D . -O ../../epan/dissectors X2AP-CommonDataTypes.asn X2AP-Constants.asn X2AP-Containers.asn X2AP-IEs.asn X2AP-PDU-Contents.asn X2AP-PDU-Descriptions.asn */
+/* asn2wrs.py -p x2ap -c ./x2ap.cnf -s ./packet-x2ap-template -D . -O ../.. X2AP-CommonDataTypes.asn X2AP-Constants.asn X2AP-Containers.asn X2AP-IEs.asn X2AP-PDU-Contents.asn X2AP-PDU-Descriptions.asn */
/* Input file: packet-x2ap-template.c */
-#line 1 "../../asn1/x2ap/packet-x2ap-template.c"
+#line 1 "./asn1/x2ap/packet-x2ap-template.c"
/* packet-x2ap.c
* Routines for dissecting Evolved Universal Terrestrial Radio Access Network (EUTRAN);
* X2 Application Protocol (X2AP);
@@ -62,7 +62,7 @@ void proto_register_x2ap(void);
/*--- Included file: packet-x2ap-val.h ---*/
-#line 1 "../../asn1/x2ap/packet-x2ap-val.h"
+#line 1 "./asn1/x2ap/packet-x2ap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -217,7 +217,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-x2ap-val.h ---*/
-#line 56 "../../asn1/x2ap/packet-x2ap-template.c"
+#line 56 "./asn1/x2ap/packet-x2ap-template.c"
/* Initialize the protocol and registered fields */
static int proto_x2ap = -1;
@@ -225,7 +225,7 @@ static int hf_x2ap_transportLayerAddressIPv4 = -1;
static int hf_x2ap_transportLayerAddressIPv6 = -1;
/*--- Included file: packet-x2ap-hf.c ---*/
-#line 1 "../../asn1/x2ap/packet-x2ap-hf.c"
+#line 1 "./asn1/x2ap/packet-x2ap-hf.c"
static int hf_x2ap_ABSInformation_PDU = -1; /* ABSInformation */
static int hf_x2ap_ABS_Status_PDU = -1; /* ABS_Status */
static int hf_x2ap_AdditionalSpecialSubframe_Info_PDU = -1; /* AdditionalSpecialSubframe_Info */
@@ -588,14 +588,14 @@ static int hf_x2ap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
static int hf_x2ap_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-x2ap-hf.c ---*/
-#line 62 "../../asn1/x2ap/packet-x2ap-template.c"
+#line 62 "./asn1/x2ap/packet-x2ap-template.c"
/* Initialize the subtree pointers */
static int ett_x2ap = -1;
static int ett_x2ap_TransportLayerAddress = -1;
/*--- Included file: packet-x2ap-ett.c ---*/
-#line 1 "../../asn1/x2ap/packet-x2ap-ett.c"
+#line 1 "./asn1/x2ap/packet-x2ap-ett.c"
static gint ett_x2ap_PrivateIE_ID = -1;
static gint ett_x2ap_ProtocolIE_Container = -1;
static gint ett_x2ap_ProtocolIE_Field = -1;
@@ -756,7 +756,7 @@ static gint ett_x2ap_SuccessfulOutcome = -1;
static gint ett_x2ap_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-x2ap-ett.c ---*/
-#line 67 "../../asn1/x2ap/packet-x2ap-template.c"
+#line 67 "./asn1/x2ap/packet-x2ap-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -779,7 +779,7 @@ void proto_reg_handoff_x2ap(void);
/*--- Included file: packet-x2ap-fn.c ---*/
-#line 1 "../../asn1/x2ap/packet-x2ap-fn.c"
+#line 1 "./asn1/x2ap/packet-x2ap-fn.c"
static const value_string x2ap_Criticality_vals[] = {
{ 0, "reject" },
@@ -864,13 +864,13 @@ static const value_string x2ap_ProcedureCode_vals[] = {
static int
dissect_x2ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 66 "../../asn1/x2ap/x2ap.cnf"
+#line 66 "./asn1/x2ap/x2ap.cnf"
ProcedureCode = 0xFFFF;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 60 "../../asn1/x2ap/x2ap.cnf"
+#line 60 "./asn1/x2ap/x2ap.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str(ProcedureCode, x2ap_ProcedureCode_vals,
"unknown message"));
@@ -990,7 +990,7 @@ dissect_x2ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
-#line 49 "../../asn1/x2ap/x2ap.cnf"
+#line 49 "./asn1/x2ap/x2ap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(x2ap_ProtocolIE_ID_vals), "unknown (%d)"));
}
@@ -1520,7 +1520,7 @@ dissect_x2ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_x2ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 77 "../../asn1/x2ap/x2ap.cnf"
+#line 77 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -2720,7 +2720,7 @@ dissect_x2ap_GlobalENB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_x2ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 107 "../../asn1/x2ap/x2ap.cnf"
+#line 107 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
gint tvb_len;
@@ -3926,7 +3926,7 @@ dissect_x2ap_ReportCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_x2ap_RRC_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 131 "../../asn1/x2ap/x2ap.cnf"
+#line 131 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -4087,7 +4087,7 @@ dissect_x2ap_TargetCellInUTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_x2ap_TargeteNBtoSource_eNBTransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "../../asn1/x2ap/x2ap.cnf"
+#line 90 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6220,7 +6220,7 @@ static int dissect_X2AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
/*--- End of included file: packet-x2ap-fn.c ---*/
-#line 88 "../../asn1/x2ap/packet-x2ap-template.c"
+#line 88 "./asn1/x2ap/packet-x2ap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -6280,7 +6280,7 @@ void proto_register_x2ap(void) {
/*--- Included file: packet-x2ap-hfarr.c ---*/
-#line 1 "../../asn1/x2ap/packet-x2ap-hfarr.c"
+#line 1 "./asn1/x2ap/packet-x2ap-hfarr.c"
{ &hf_x2ap_ABSInformation_PDU,
{ "ABSInformation", "x2ap.ABSInformation",
FT_UINT32, BASE_DEC, VALS(x2ap_ABSInformation_vals), 0,
@@ -7723,7 +7723,7 @@ void proto_register_x2ap(void) {
"UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-x2ap-hfarr.c ---*/
-#line 146 "../../asn1/x2ap/packet-x2ap-template.c"
+#line 146 "./asn1/x2ap/packet-x2ap-template.c"
};
/* List of subtrees */
@@ -7732,7 +7732,7 @@ void proto_register_x2ap(void) {
&ett_x2ap_TransportLayerAddress,
/*--- Included file: packet-x2ap-ettarr.c ---*/
-#line 1 "../../asn1/x2ap/packet-x2ap-ettarr.c"
+#line 1 "./asn1/x2ap/packet-x2ap-ettarr.c"
&ett_x2ap_PrivateIE_ID,
&ett_x2ap_ProtocolIE_Container,
&ett_x2ap_ProtocolIE_Field,
@@ -7893,7 +7893,7 @@ void proto_register_x2ap(void) {
&ett_x2ap_UnsuccessfulOutcome,
/*--- End of included file: packet-x2ap-ettarr.c ---*/
-#line 153 "../../asn1/x2ap/packet-x2ap-template.c"
+#line 153 "./asn1/x2ap/packet-x2ap-template.c"
};
module_t *x2ap_module;
@@ -7941,7 +7941,7 @@ proto_reg_handoff_x2ap(void)
Initialized=TRUE;
/*--- Included file: packet-x2ap-dis-tab.c ---*/
-#line 1 "../../asn1/x2ap/packet-x2ap-dis-tab.c"
+#line 1 "./asn1/x2ap/packet-x2ap-dis-tab.c"
dissector_add_uint("x2ap.ies", id_E_RABs_Admitted_Item, create_dissector_handle(dissect_E_RABs_Admitted_Item_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_E_RABs_Admitted_List, create_dissector_handle(dissect_E_RABs_Admitted_List_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_E_RAB_Item, create_dissector_handle(dissect_E_RAB_Item_PDU, proto_x2ap));
@@ -8076,7 +8076,7 @@ proto_reg_handoff_x2ap(void)
/*--- End of included file: packet-x2ap-dis-tab.c ---*/
-#line 199 "../../asn1/x2ap/packet-x2ap-template.c"
+#line 199 "./asn1/x2ap/packet-x2ap-template.c"
} else {
if (SctpPort != 0) {
dissector_delete_uint("sctp.port", SctpPort, x2ap_handle);
diff --git a/epan/dissectors/packet-x509af.c b/epan/dissectors/packet-x509af.c
index a02bc98ca4..b489d7e075 100644
--- a/epan/dissectors/packet-x509af.c
+++ b/epan/dissectors/packet-x509af.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509af.c */
-/* ../../tools/asn2wrs.py -b -p x509af -c ./x509af.cnf -s ./packet-x509af-template -D . -O ../../epan/dissectors AuthenticationFramework.asn */
+/* asn2wrs.py -b -p x509af -c ./x509af.cnf -s ./packet-x509af-template -D . -O ../.. AuthenticationFramework.asn */
/* Input file: packet-x509af-template.c */
-#line 1 "../../asn1/x509af/packet-x509af-template.c"
+#line 1 "./asn1/x509af/packet-x509af-template.c"
/* packet-x509af.c
* Routines for X.509 Authentication Framework packet dissection
* Ronnie Sahlberg 2004
@@ -59,7 +59,7 @@ static int hf_x509af_algorithm_id = -1;
static int hf_x509af_extension_id = -1;
/*--- Included file: packet-x509af-hf.c ---*/
-#line 1 "../../asn1/x509af/packet-x509af-hf.c"
+#line 1 "./asn1/x509af/packet-x509af-hf.c"
static int hf_x509af_x509af_Certificate_PDU = -1; /* Certificate */
static int hf_x509af_CertificatePair_PDU = -1; /* CertificatePair */
static int hf_x509af_CertificateList_PDU = -1; /* CertificateList */
@@ -136,13 +136,13 @@ static int hf_x509af_q = -1; /* INTEGER */
static int hf_x509af_g = -1; /* INTEGER */
/*--- End of included file: packet-x509af-hf.c ---*/
-#line 53 "../../asn1/x509af/packet-x509af-template.c"
+#line 53 "./asn1/x509af/packet-x509af-template.c"
/* Initialize the subtree pointers */
static gint ett_pkix_crl = -1;
/*--- Included file: packet-x509af-ett.c ---*/
-#line 1 "../../asn1/x509af/packet-x509af-ett.c"
+#line 1 "./asn1/x509af/packet-x509af-ett.c"
static gint ett_x509af_Certificate = -1;
static gint ett_x509af_T_signedCertificate = -1;
static gint ett_x509af_SubjectName = -1;
@@ -177,13 +177,13 @@ static gint ett_x509af_SET_OF_AttributeType = -1;
static gint ett_x509af_DSS_Params = -1;
/*--- End of included file: packet-x509af-ett.c ---*/
-#line 57 "../../asn1/x509af/packet-x509af-template.c"
+#line 57 "./asn1/x509af/packet-x509af-template.c"
static const char *algorithm_id = NULL;
static void
x509af_export_publickey(tvbuff_t *tvb, asn1_ctx_t *actx, int offset, int len);
/*--- Included file: packet-x509af-fn.c ---*/
-#line 1 "../../asn1/x509af/packet-x509af-fn.c"
+#line 1 "./asn1/x509af/packet-x509af-fn.c"
const value_string x509af_Version_vals[] = {
{ 0, "v1" },
@@ -215,7 +215,7 @@ dissect_x509af_CertificateSerialNumber(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_x509af_T_algorithmId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 69 "../../asn1/x509af/x509af.cnf"
+#line 69 "./asn1/x509af/x509af.cnf"
const char *name;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509af_algorithm_id, &actx->external.direct_reference);
@@ -244,7 +244,7 @@ dissect_x509af_T_algorithmId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_x509af_T_parameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 88 "../../asn1/x509af/x509af.cnf"
+#line 88 "./asn1/x509af/x509af.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -335,7 +335,7 @@ static const ber_choice_t SubjectName_choice[] = {
static int
dissect_x509af_SubjectName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 147 "../../asn1/x509af/x509af.cnf"
+#line 147 "./asn1/x509af/x509af.cnf"
const char* str;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -355,7 +355,7 @@ dissect_x509af_SubjectName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_x509af_T_subjectPublicKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 97 "../../asn1/x509af/x509af.cnf"
+#line 97 "./asn1/x509af/x509af.cnf"
tvbuff_t *bs_tvb = NULL;
dissect_ber_bitstring(FALSE, actx, NULL, tvb, offset,
@@ -385,13 +385,13 @@ static const ber_sequence_t SubjectPublicKeyInfo_sequence[] = {
int
dissect_x509af_SubjectPublicKeyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 91 "../../asn1/x509af/x509af.cnf"
+#line 91 "./asn1/x509af/x509af.cnf"
int orig_offset = offset;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SubjectPublicKeyInfo_sequence, hf_index, ett_x509af_SubjectPublicKeyInfo);
-#line 93 "../../asn1/x509af/x509af.cnf"
+#line 93 "./asn1/x509af/x509af.cnf"
x509af_export_publickey(tvb, actx, orig_offset, offset - orig_offset);
return offset;
@@ -401,7 +401,7 @@ dissect_x509af_SubjectPublicKeyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_x509af_T_extnId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 126 "../../asn1/x509af/x509af.cnf"
+#line 126 "./asn1/x509af/x509af.cnf"
const char *name;
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509af_extension_id, &actx->external.direct_reference);
@@ -431,7 +431,7 @@ dissect_x509af_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_x509af_T_extnValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 137 "../../asn1/x509af/x509af.cnf"
+#line 137 "./asn1/x509af/x509af.cnf"
gint8 ber_class;
gboolean pc, ind;
gint32 tag;
@@ -939,7 +939,7 @@ static int dissect_DSS_Params_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-x509af-fn.c ---*/
-#line 61 "../../asn1/x509af/packet-x509af-template.c"
+#line 61 "./asn1/x509af/packet-x509af-template.c"
/* Exports the SubjectPublicKeyInfo structure as gnutls_datum_t.
* actx->private_data is assumed to be a gnutls_datum_t pointer which will be
@@ -1000,7 +1000,7 @@ void proto_register_x509af(void) {
NULL, HFILL }},
/*--- Included file: packet-x509af-hfarr.c ---*/
-#line 1 "../../asn1/x509af/packet-x509af-hfarr.c"
+#line 1 "./asn1/x509af/packet-x509af-hfarr.c"
{ &hf_x509af_x509af_Certificate_PDU,
{ "Certificate", "x509af.Certificate_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1299,7 +1299,7 @@ void proto_register_x509af(void) {
"INTEGER", HFILL }},
/*--- End of included file: packet-x509af-hfarr.c ---*/
-#line 120 "../../asn1/x509af/packet-x509af-template.c"
+#line 120 "./asn1/x509af/packet-x509af-template.c"
};
/* List of subtrees */
@@ -1307,7 +1307,7 @@ void proto_register_x509af(void) {
&ett_pkix_crl,
/*--- Included file: packet-x509af-ettarr.c ---*/
-#line 1 "../../asn1/x509af/packet-x509af-ettarr.c"
+#line 1 "./asn1/x509af/packet-x509af-ettarr.c"
&ett_x509af_Certificate,
&ett_x509af_T_signedCertificate,
&ett_x509af_SubjectName,
@@ -1342,7 +1342,7 @@ void proto_register_x509af(void) {
&ett_x509af_DSS_Params,
/*--- End of included file: packet-x509af-ettarr.c ---*/
-#line 126 "../../asn1/x509af/packet-x509af-template.c"
+#line 126 "./asn1/x509af/packet-x509af-template.c"
};
/* Register protocol */
@@ -1373,7 +1373,7 @@ void proto_reg_handoff_x509af(void) {
/*--- Included file: packet-x509af-dis-tab.c ---*/
-#line 1 "../../asn1/x509af/packet-x509af-dis-tab.c"
+#line 1 "./asn1/x509af/packet-x509af-dis-tab.c"
register_ber_oid_dissector("2.5.4.36", dissect_x509af_Certificate_PDU, proto_x509af, "id-at-userCertificate");
register_ber_oid_dissector("2.5.4.37", dissect_x509af_Certificate_PDU, proto_x509af, "id-at-cAcertificate");
register_ber_oid_dissector("2.5.4.38", dissect_CertificateList_PDU, proto_x509af, "id-at-authorityRevocationList");
@@ -1386,7 +1386,7 @@ void proto_reg_handoff_x509af(void) {
/*--- End of included file: packet-x509af-dis-tab.c ---*/
-#line 155 "../../asn1/x509af/packet-x509af-template.c"
+#line 155 "./asn1/x509af/packet-x509af-template.c"
/*XXX these should really go to a better place but since
I have not that ITU standard, I'll put it here for the time
diff --git a/epan/dissectors/packet-x509af.h b/epan/dissectors/packet-x509af.h
index c9c6cb72cf..6158629b8c 100644
--- a/epan/dissectors/packet-x509af.h
+++ b/epan/dissectors/packet-x509af.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509af.h */
-/* ../../tools/asn2wrs.py -b -p x509af -c ./x509af.cnf -s ./packet-x509af-template -D . -O ../../epan/dissectors AuthenticationFramework.asn */
+/* asn2wrs.py -b -p x509af -c ./x509af.cnf -s ./packet-x509af-template -D . -O ../.. AuthenticationFramework.asn */
/* Input file: packet-x509af-template.h */
-#line 1 "../../asn1/x509af/packet-x509af-template.h"
+#line 1 "./asn1/x509af/packet-x509af-template.h"
/* packet-x509af.h
* Routines for X.509 Authentication Framework packet dissection
* Ronnie Sahlberg 2004
@@ -34,7 +34,7 @@
/*--- Included file: packet-x509af-exp.h ---*/
-#line 1 "../../asn1/x509af/packet-x509af-exp.h"
+#line 1 "./asn1/x509af/packet-x509af-exp.h"
extern const value_string x509af_Version_vals[];
extern const value_string x509af_Time_vals[];
int dissect_x509af_Certificate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -62,7 +62,7 @@ int dissect_x509af_AttributeCertificateAssertion(gboolean implicit_tag _U_, tvbu
int dissect_x509af_Certificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-x509af-exp.h ---*/
-#line 28 "../../asn1/x509af/packet-x509af-template.h"
+#line 28 "./asn1/x509af/packet-x509af-template.h"
extern const char* x509af_get_last_algorithm_id(void);
diff --git a/epan/dissectors/packet-x509ce.c b/epan/dissectors/packet-x509ce.c
index 98de2f934a..3242432ee5 100644
--- a/epan/dissectors/packet-x509ce.c
+++ b/epan/dissectors/packet-x509ce.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509ce.c */
-/* ../../tools/asn2wrs.py -b -p x509ce -c ./x509ce.cnf -s ./packet-x509ce-template -D . -O ../../epan/dissectors CertificateExtensions.asn CertificateExtensionsCiplus.asn */
+/* asn2wrs.py -b -p x509ce -c ./x509ce.cnf -s ./packet-x509ce-template -D . -O ../.. CertificateExtensions.asn CertificateExtensionsCiplus.asn */
/* Input file: packet-x509ce-template.c */
-#line 1 "../../asn1/x509ce/packet-x509ce-template.c"
+#line 1 "./asn1/x509ce/packet-x509ce-template.c"
/* packet-x509ce.c
* Routines for X.509 Certificate Extensions packet dissection
* Ronnie Sahlberg 2004
@@ -56,7 +56,7 @@ static int hf_x509ce_object_identifier_id = -1;
static int hf_x509ce_IPAddress = -1;
/*--- Included file: packet-x509ce-hf.c ---*/
-#line 1 "../../asn1/x509ce/packet-x509ce-hf.c"
+#line 1 "./asn1/x509ce/packet-x509ce-hf.c"
static int hf_x509ce_AuthorityKeyIdentifier_PDU = -1; /* AuthorityKeyIdentifier */
static int hf_x509ce_SubjectKeyIdentifier_PDU = -1; /* SubjectKeyIdentifier */
static int hf_x509ce_KeyUsage_PDU = -1; /* KeyUsage */
@@ -256,12 +256,12 @@ static int hf_x509ce_EntrustInfoFlags_webCategory = -1;
static int hf_x509ce_EntrustInfoFlags_sETCategory = -1;
/*--- End of included file: packet-x509ce-hf.c ---*/
-#line 50 "../../asn1/x509ce/packet-x509ce-template.c"
+#line 50 "./asn1/x509ce/packet-x509ce-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-x509ce-ett.c ---*/
-#line 1 "../../asn1/x509ce/packet-x509ce-ett.c"
+#line 1 "./asn1/x509ce/packet-x509ce-ett.c"
static gint ett_x509ce_AuthorityKeyIdentifier = -1;
static gint ett_x509ce_KeyUsage = -1;
static gint ett_x509ce_KeyPurposeIDs = -1;
@@ -324,10 +324,10 @@ static gint ett_x509ce_EntrustInfoFlags = -1;
static gint ett_x509ce_ScramblerCapabilities = -1;
/*--- End of included file: packet-x509ce-ett.c ---*/
-#line 53 "../../asn1/x509ce/packet-x509ce-template.c"
+#line 53 "./asn1/x509ce/packet-x509ce-template.c"
/*--- Included file: packet-x509ce-fn.c ---*/
-#line 1 "../../asn1/x509ce/packet-x509ce-fn.c"
+#line 1 "./asn1/x509ce/packet-x509ce-fn.c"
int
@@ -351,7 +351,7 @@ dissect_x509ce_OtherNameType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_x509ce_OtherNameValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "../../asn1/x509ce/x509ce.cnf"
+#line 179 "./asn1/x509ce/x509ce.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -408,7 +408,7 @@ dissect_x509ce_T_uniformResourceIdentifier(gboolean implicit_tag _U_, tvbuff_t *
actx, tree, tvb, offset, hf_index,
NULL);
-#line 182 "../../asn1/x509ce/x509ce.cnf"
+#line 182 "./asn1/x509ce/x509ce.cnf"
PROTO_ITEM_SET_URL(actx->created_item);
@@ -420,7 +420,7 @@ dissect_x509ce_T_uniformResourceIdentifier(gboolean implicit_tag _U_, tvbuff_t *
static int
dissect_x509ce_T_iPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 172 "../../asn1/x509ce/x509ce.cnf"
+#line 172 "./asn1/x509ce/x509ce.cnf"
proto_tree_add_item(tree, hf_x509ce_IPAddress, tvb, offset, 4, ENC_BIG_ENDIAN);
offset+=4;
@@ -603,7 +603,7 @@ dissect_x509ce_T_policyQualifierId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_x509ce_T_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 169 "../../asn1/x509ce/x509ce.cnf"
+#line 169 "./asn1/x509ce/x509ce.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -1946,7 +1946,7 @@ static int dissect_CicamBrandId_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
/*--- End of included file: packet-x509ce-fn.c ---*/
-#line 54 "../../asn1/x509ce/packet-x509ce-template.c"
+#line 54 "./asn1/x509ce/packet-x509ce-template.c"
/* CI+ (www.ci-plus.com) defines some X.509 certificate extensions
that use OIDs which are not officially assigned
@@ -2013,7 +2013,7 @@ void proto_register_x509ce(void) {
/*--- Included file: packet-x509ce-hfarr.c ---*/
-#line 1 "../../asn1/x509ce/packet-x509ce-hfarr.c"
+#line 1 "./asn1/x509ce/packet-x509ce-hfarr.c"
{ &hf_x509ce_AuthorityKeyIdentifier_PDU,
{ "AuthorityKeyIdentifier", "x509ce.AuthorityKeyIdentifier_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2800,14 +2800,14 @@ void proto_register_x509ce(void) {
NULL, HFILL }},
/*--- End of included file: packet-x509ce-hfarr.c ---*/
-#line 119 "../../asn1/x509ce/packet-x509ce-template.c"
+#line 119 "./asn1/x509ce/packet-x509ce-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-x509ce-ettarr.c ---*/
-#line 1 "../../asn1/x509ce/packet-x509ce-ettarr.c"
+#line 1 "./asn1/x509ce/packet-x509ce-ettarr.c"
&ett_x509ce_AuthorityKeyIdentifier,
&ett_x509ce_KeyUsage,
&ett_x509ce_KeyPurposeIDs,
@@ -2870,7 +2870,7 @@ void proto_register_x509ce(void) {
&ett_x509ce_ScramblerCapabilities,
/*--- End of included file: packet-x509ce-ettarr.c ---*/
-#line 124 "../../asn1/x509ce/packet-x509ce-template.c"
+#line 124 "./asn1/x509ce/packet-x509ce-template.c"
};
/* Register protocol */
@@ -2887,7 +2887,7 @@ void proto_register_x509ce(void) {
void proto_reg_handoff_x509ce(void) {
/*--- Included file: packet-x509ce-dis-tab.c ---*/
-#line 1 "../../asn1/x509ce/packet-x509ce-dis-tab.c"
+#line 1 "./asn1/x509ce/packet-x509ce-dis-tab.c"
register_ber_oid_dissector("2.5.29.3", dissect_CertificatePoliciesSyntax_PDU, proto_x509ce, "id-ce-certificatePolicies");
register_ber_oid_dissector("2.5.29.9", dissect_AttributesSyntax_PDU, proto_x509ce, "id-ce-subjectDirectoryAttributes");
register_ber_oid_dissector("2.5.29.14", dissect_SubjectKeyIdentifier_PDU, proto_x509ce, "id-ce-subjectKeyIdentifier");
@@ -2933,7 +2933,7 @@ void proto_reg_handoff_x509ce(void) {
/*--- End of included file: packet-x509ce-dis-tab.c ---*/
-#line 139 "../../asn1/x509ce/packet-x509ce-template.c"
+#line 139 "./asn1/x509ce/packet-x509ce-template.c"
register_ber_oid_dissector("2.5.29.24", dissect_x509ce_invalidityDate_callback, proto_x509ce, "id-ce-invalidityDate");
register_ber_oid_dissector("2.5.29.51", dissect_x509ce_baseUpdateTime_callback, proto_x509ce, "id-ce-baseUpdateTime");
}
diff --git a/epan/dissectors/packet-x509ce.h b/epan/dissectors/packet-x509ce.h
index 2a0e9e9961..412e7e2913 100644
--- a/epan/dissectors/packet-x509ce.h
+++ b/epan/dissectors/packet-x509ce.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509ce.h */
-/* ../../tools/asn2wrs.py -b -p x509ce -c ./x509ce.cnf -s ./packet-x509ce-template -D . -O ../../epan/dissectors CertificateExtensions.asn CertificateExtensionsCiplus.asn */
+/* asn2wrs.py -b -p x509ce -c ./x509ce.cnf -s ./packet-x509ce-template -D . -O ../.. CertificateExtensions.asn CertificateExtensionsCiplus.asn */
/* Input file: packet-x509ce-template.h */
-#line 1 "../../asn1/x509ce/packet-x509ce-template.h"
+#line 1 "./asn1/x509ce/packet-x509ce-template.h"
/* packet-x509ce.h
* Routines for X.509 Certificate Extensions packet dissection
* Ronnie Sahlberg 2004
@@ -34,7 +34,7 @@
/*--- Included file: packet-x509ce-exp.h ---*/
-#line 1 "../../asn1/x509ce/packet-x509ce-exp.h"
+#line 1 "./asn1/x509ce/packet-x509ce-exp.h"
extern const value_string x509ce_GeneralName_vals[];
extern const value_string x509ce_CRLReason_vals[];
extern const value_string x509ce_StatusReferral_vals[];
@@ -98,7 +98,7 @@ int dissect_x509ce_CiplusInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
int dissect_x509ce_CicamBrandId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-x509ce-exp.h ---*/
-#line 28 "../../asn1/x509ce/packet-x509ce-template.h"
+#line 28 "./asn1/x509ce/packet-x509ce-template.h"
void x509ce_enable_ciplus(void);
void x509ce_disable_ciplus(void);
diff --git a/epan/dissectors/packet-x509if.c b/epan/dissectors/packet-x509if.c
index af8c6e2fb1..f2940de6ec 100644
--- a/epan/dissectors/packet-x509if.c
+++ b/epan/dissectors/packet-x509if.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509if.c */
-/* ../../tools/asn2wrs.py -b -p x509if -c ./x509if.cnf -s ./packet-x509if-template -D . -O ../../epan/dissectors InformationFramework.asn ServiceAdministration.asn */
+/* asn2wrs.py -b -p x509if -c ./x509if.cnf -s ./packet-x509if-template -D . -O ../.. InformationFramework.asn ServiceAdministration.asn */
/* Input file: packet-x509if-template.c */
-#line 1 "../../asn1/x509if/packet-x509if-template.c"
+#line 1 "./asn1/x509if/packet-x509if-template.c"
/* packet-x509if.c
* Routines for X.509 Information Framework packet dissection
* Ronnie Sahlberg 2004
@@ -55,7 +55,7 @@ static int hf_x509if_object_identifier_id = -1;
static int hf_x509if_any_string = -1;
/*--- Included file: packet-x509if-hf.c ---*/
-#line 1 "../../asn1/x509if/packet-x509if-hf.c"
+#line 1 "./asn1/x509if/packet-x509if-hf.c"
static int hf_x509if_DistinguishedName_PDU = -1; /* DistinguishedName */
static int hf_x509if_SubtreeSpecification_PDU = -1; /* SubtreeSpecification */
static int hf_x509if_HierarchyLevel_PDU = -1; /* HierarchyLevel */
@@ -213,12 +213,12 @@ static int hf_x509if_AllowedSubset_oneLevel = -1;
static int hf_x509if_AllowedSubset_wholeSubtree = -1;
/*--- End of included file: packet-x509if-hf.c ---*/
-#line 49 "../../asn1/x509if/packet-x509if-template.c"
+#line 49 "./asn1/x509if/packet-x509if-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-x509if-ett.c ---*/
-#line 1 "../../asn1/x509if/packet-x509if-ett.c"
+#line 1 "./asn1/x509if/packet-x509if-ett.c"
static gint ett_x509if_Attribute = -1;
static gint ett_x509if_T_values = -1;
static gint ett_x509if_T_valuesWithContext = -1;
@@ -294,7 +294,7 @@ static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType = -1;
static gint ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString = -1;
/*--- End of included file: packet-x509if-ett.c ---*/
-#line 52 "../../asn1/x509if/packet-x509if-template.c"
+#line 52 "./asn1/x509if/packet-x509if-template.c"
static proto_tree *top_of_dn = NULL;
static proto_tree *top_of_rdn = NULL;
@@ -332,7 +332,7 @@ x509if_frame_end(void)
/*--- Included file: packet-x509if-fn.c ---*/
-#line 1 "../../asn1/x509if/packet-x509if-fn.c"
+#line 1 "./asn1/x509if/packet-x509if-fn.c"
/*--- Cyclic dependencies ---*/
/* Refinement -> Refinement/and -> Refinement */
@@ -361,7 +361,7 @@ dissect_x509if_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_x509if_T_values_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 313 "../../asn1/x509if/x509if.cnf"
+#line 313 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -386,7 +386,7 @@ dissect_x509if_T_values(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_x509if_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 283 "../../asn1/x509if/x509if.cnf"
+#line 283 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback("unknown", tvb, offset, actx->pinfo, tree, NULL);
@@ -407,7 +407,7 @@ dissect_x509if_T_contextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_x509if_T_contextValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 295 "../../asn1/x509if/x509if.cnf"
+#line 295 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -504,7 +504,7 @@ static const ber_sequence_t Attribute_sequence[] = {
int
dissect_x509if_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 414 "../../asn1/x509if/x509if.cnf"
+#line 414 "./asn1/x509if/x509if.cnf"
doing_attr = TRUE;
register_frame_end_routine (actx->pinfo, x509if_frame_end);
@@ -529,7 +529,7 @@ dissect_x509if_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
int
dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 301 "../../asn1/x509if/x509if.cnf"
+#line 301 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -550,7 +550,7 @@ dissect_x509if_T_type_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_x509if_T_assertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 307 "../../asn1/x509if/x509if.cnf"
+#line 307 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -580,7 +580,7 @@ dissect_x509if_T_ca_contextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_x509if_T_ca_contextValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 184 "../../asn1/x509if/x509if.cnf"
+#line 184 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -661,7 +661,7 @@ static const ber_sequence_t AttributeValueAssertion_sequence[] = {
int
dissect_x509if_AttributeValueAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 404 "../../asn1/x509if/x509if.cnf"
+#line 404 "./asn1/x509if/x509if.cnf"
ava_hf_index = hf_index;
last_ava = (char *)wmem_alloc(wmem_packet_scope(), MAX_AVA_STR_LEN); *last_ava = '\0';
@@ -719,7 +719,7 @@ dissect_x509if_AttributeTypeAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _
static int
dissect_x509if_T_type_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 190 "../../asn1/x509if/x509if.cnf"
+#line 190 "./asn1/x509if/x509if.cnf"
const char *fmt;
const char *name;
@@ -763,7 +763,7 @@ dissect_x509if_T_type_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_x509if_T_atadv_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 224 "../../asn1/x509if/x509if.cnf"
+#line 224 "./asn1/x509if/x509if.cnf"
int old_offset = offset;
tvbuff_t *out_tvb;
char *value = NULL;
@@ -819,7 +819,7 @@ dissect_x509if_T_atadv_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_x509if_T_distingAttrValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 328 "../../asn1/x509if/x509if.cnf"
+#line 328 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -876,7 +876,7 @@ dissect_x509if_AttributeTypeAndDistinguishedValue(gboolean implicit_tag _U_, tvb
static int
dissect_x509if_RelativeDistinguishedName_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 357 "../../asn1/x509if/x509if.cnf"
+#line 357 "./asn1/x509if/x509if.cnf"
if(!rdn_one_value) {
top_of_rdn = tree;
@@ -904,7 +904,7 @@ static const ber_sequence_t RelativeDistinguishedName_set_of[1] = {
int
dissect_x509if_RelativeDistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 331 "../../asn1/x509if/x509if.cnf"
+#line 331 "./asn1/x509if/x509if.cnf"
char *temp_dn;
rdn_one_value = FALSE;
@@ -941,7 +941,7 @@ dissect_x509if_RelativeDistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_x509if_RDNSequence_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 393 "../../asn1/x509if/x509if.cnf"
+#line 393 "./asn1/x509if/x509if.cnf"
if(!dn_one_rdn) {
/* this is the first element - record the top */
@@ -965,7 +965,7 @@ static const ber_sequence_t RDNSequence_sequence_of[1] = {
int
dissect_x509if_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 372 "../../asn1/x509if/x509if.cnf"
+#line 372 "./asn1/x509if/x509if.cnf"
const char *fmt;
dn_one_rdn = FALSE; /* reset */
@@ -1376,7 +1376,7 @@ dissect_x509if_T_attributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_x509if_T_ra_selectedValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 274 "../../asn1/x509if/x509if.cnf"
+#line 274 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -1410,7 +1410,7 @@ dissect_x509if_T_entryType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_x509if_T_ra_values_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 280 "../../asn1/x509if/x509if.cnf"
+#line 280 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -1472,7 +1472,7 @@ dissect_x509if_T_contextType_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_x509if_T_contextValue_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 319 "../../asn1/x509if/x509if.cnf"
+#line 319 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -1573,7 +1573,7 @@ dissect_x509if_T_restrictionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
dissect_x509if_T_restrictionValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 325 "../../asn1/x509if/x509if.cnf"
+#line 325 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -1694,7 +1694,7 @@ dissect_x509if_T_attributeType_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_x509if_T_selectedValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 289 "../../asn1/x509if/x509if.cnf"
+#line 289 "./asn1/x509if/x509if.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
@@ -2102,7 +2102,7 @@ static int dissect_HierarchyBelow_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-x509if-fn.c ---*/
-#line 88 "../../asn1/x509if/packet-x509if-template.c"
+#line 88 "./asn1/x509if/packet-x509if-template.c"
const char * x509if_get_last_dn(void)
{
@@ -2149,7 +2149,7 @@ void proto_register_x509if(void) {
/*--- Included file: packet-x509if-hfarr.c ---*/
-#line 1 "../../asn1/x509if/packet-x509if-hfarr.c"
+#line 1 "./asn1/x509if/packet-x509if-hfarr.c"
{ &hf_x509if_DistinguishedName_PDU,
{ "DistinguishedName", "x509if.DistinguishedName",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -2768,14 +2768,14 @@ void proto_register_x509if(void) {
NULL, HFILL }},
/*--- End of included file: packet-x509if-hfarr.c ---*/
-#line 133 "../../asn1/x509if/packet-x509if-template.c"
+#line 133 "./asn1/x509if/packet-x509if-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-x509if-ettarr.c ---*/
-#line 1 "../../asn1/x509if/packet-x509if-ettarr.c"
+#line 1 "./asn1/x509if/packet-x509if-ettarr.c"
&ett_x509if_Attribute,
&ett_x509if_T_values,
&ett_x509if_T_valuesWithContext,
@@ -2851,7 +2851,7 @@ void proto_register_x509if(void) {
&ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString,
/*--- End of included file: packet-x509if-ettarr.c ---*/
-#line 138 "../../asn1/x509if/packet-x509if-template.c"
+#line 138 "./asn1/x509if/packet-x509if-template.c"
};
/* Register protocol */
@@ -2872,7 +2872,7 @@ void proto_register_x509if(void) {
void proto_reg_handoff_x509if(void) {
/*--- Included file: packet-x509if-dis-tab.c ---*/
-#line 1 "../../asn1/x509if/packet-x509if-dis-tab.c"
+#line 1 "./asn1/x509if/packet-x509if-dis-tab.c"
register_ber_oid_dissector("2.5.4.1", dissect_DistinguishedName_PDU, proto_x509if, "id-at-aliasedEntryName");
register_ber_oid_dissector("2.5.4.31", dissect_DistinguishedName_PDU, proto_x509if, "id-at-member");
register_ber_oid_dissector("2.5.4.32", dissect_DistinguishedName_PDU, proto_x509if, "id-at-owner");
@@ -2909,6 +2909,6 @@ void proto_reg_handoff_x509if(void) {
/*--- End of included file: packet-x509if-dis-tab.c ---*/
-#line 157 "../../asn1/x509if/packet-x509if-template.c"
+#line 157 "./asn1/x509if/packet-x509if-template.c"
}
diff --git a/epan/dissectors/packet-x509if.h b/epan/dissectors/packet-x509if.h
index 2c746ea82d..16d6b1a342 100644
--- a/epan/dissectors/packet-x509if.h
+++ b/epan/dissectors/packet-x509if.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509if.h */
-/* ../../tools/asn2wrs.py -b -p x509if -c ./x509if.cnf -s ./packet-x509if-template -D . -O ../../epan/dissectors InformationFramework.asn ServiceAdministration.asn */
+/* asn2wrs.py -b -p x509if -c ./x509if.cnf -s ./packet-x509if-template -D . -O ../.. InformationFramework.asn ServiceAdministration.asn */
/* Input file: packet-x509if-template.h */
-#line 1 "../../asn1/x509if/packet-x509if-template.h"
+#line 1 "./asn1/x509if/packet-x509if-template.h"
/* packet-x509if.h
* Routines for X.509 Information Framework packet dissection
* Ronnie Sahlberg 2004
@@ -34,7 +34,7 @@
/*--- Included file: packet-x509if-exp.h ---*/
-#line 1 "../../asn1/x509if/packet-x509if-exp.h"
+#line 1 "./asn1/x509if/packet-x509if-exp.h"
extern const value_string x509if_Name_vals[];
extern const value_string x509if_Refinement_vals[];
extern const value_string x509if_AttributeUsage_vals[];
@@ -81,7 +81,7 @@ int dissect_x509if_Mapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
int dissect_x509if_MRSubstitution(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-x509if-exp.h ---*/
-#line 28 "../../asn1/x509if/packet-x509if-template.h"
+#line 28 "./asn1/x509if/packet-x509if-template.h"
extern const char * x509if_get_last_dn(void);
diff --git a/epan/dissectors/packet-x509sat.c b/epan/dissectors/packet-x509sat.c
index 4d896aef1e..22dce1a17d 100644
--- a/epan/dissectors/packet-x509sat.c
+++ b/epan/dissectors/packet-x509sat.c
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509sat.c */
-/* ../../tools/asn2wrs.py -b -r Syntax -p x509sat -c ./x509sat.cnf -s ./packet-x509sat-template -D . -O ../../epan/dissectors SelectedAttributeTypes.asn */
+/* asn2wrs.py -b -r Syntax -p x509sat -c ./x509sat.cnf -s ./packet-x509sat-template -D . -O ../.. SelectedAttributeTypes.asn */
/* Input file: packet-x509sat-template.c */
-#line 1 "../../asn1/x509sat/packet-x509sat-template.c"
+#line 1 "./asn1/x509sat/packet-x509sat-template.c"
/* packet-x509sat.c
* Routines for X.509 Selected Attribute Types packet dissection
* Ronnie Sahlberg 2004
@@ -51,7 +51,7 @@ void proto_reg_handoff_x509sat(void);
static int proto_x509sat = -1;
/*--- Included file: packet-x509sat-hf.c ---*/
-#line 1 "../../asn1/x509sat/packet-x509sat-hf.c"
+#line 1 "./asn1/x509sat/packet-x509sat-hf.c"
static int hf_x509sat_DirectoryString_PDU = -1; /* DirectoryString */
static int hf_x509sat_UniqueIdentifier_PDU = -1; /* UniqueIdentifier */
static int hf_x509sat_CountryName_PDU = -1; /* CountryName */
@@ -219,12 +219,12 @@ static int hf_x509sat_T_bitNamedDays_friday = -1;
static int hf_x509sat_T_bitNamedDays_saturday = -1;
/*--- End of included file: packet-x509sat-hf.c ---*/
-#line 45 "../../asn1/x509sat/packet-x509sat-template.c"
+#line 45 "./asn1/x509sat/packet-x509sat-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-x509sat-ett.c ---*/
-#line 1 "../../asn1/x509sat/packet-x509sat-ett.c"
+#line 1 "./asn1/x509sat/packet-x509sat-ett.c"
static gint ett_x509sat_DirectoryString = -1;
static gint ett_x509sat_Guide = -1;
static gint ett_x509sat_Criteria = -1;
@@ -274,11 +274,11 @@ static gint ett_x509sat_T_between = -1;
static gint ett_x509sat_LocaleContextSyntax = -1;
/*--- End of included file: packet-x509sat-ett.c ---*/
-#line 48 "../../asn1/x509sat/packet-x509sat-template.c"
+#line 48 "./asn1/x509sat/packet-x509sat-template.c"
/*--- Included file: packet-x509sat-fn.c ---*/
-#line 1 "../../asn1/x509sat/packet-x509sat-fn.c"
+#line 1 "./asn1/x509sat/packet-x509sat-fn.c"
/*--- Cyclic dependencies ---*/
/* Criteria -> Criteria/and -> Criteria */
@@ -1614,7 +1614,7 @@ dissect_x509sat_SyntaxGeneralString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
dissect_x509sat_GUID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 378 "../../asn1/x509sat/x509sat.cnf"
+#line 378 "./asn1/x509sat/x509sat.cnf"
gint8 ber_class;
gboolean pc;
gint32 tag;
@@ -1907,7 +1907,7 @@ static int dissect_GUID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-x509sat-fn.c ---*/
-#line 50 "../../asn1/x509sat/packet-x509sat-template.c"
+#line 50 "./asn1/x509sat/packet-x509sat-template.c"
/*--- proto_register_x509sat ----------------------------------------------*/
@@ -1917,7 +1917,7 @@ void proto_register_x509sat(void) {
static hf_register_info hf[] = {
/*--- Included file: packet-x509sat-hfarr.c ---*/
-#line 1 "../../asn1/x509sat/packet-x509sat-hfarr.c"
+#line 1 "./asn1/x509sat/packet-x509sat-hfarr.c"
{ &hf_x509sat_DirectoryString_PDU,
{ "DirectoryString", "x509sat.DirectoryString",
FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
@@ -2576,14 +2576,14 @@ void proto_register_x509sat(void) {
NULL, HFILL }},
/*--- End of included file: packet-x509sat-hfarr.c ---*/
-#line 58 "../../asn1/x509sat/packet-x509sat-template.c"
+#line 58 "./asn1/x509sat/packet-x509sat-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-x509sat-ettarr.c ---*/
-#line 1 "../../asn1/x509sat/packet-x509sat-ettarr.c"
+#line 1 "./asn1/x509sat/packet-x509sat-ettarr.c"
&ett_x509sat_DirectoryString,
&ett_x509sat_Guide,
&ett_x509sat_Criteria,
@@ -2633,7 +2633,7 @@ void proto_register_x509sat(void) {
&ett_x509sat_LocaleContextSyntax,
/*--- End of included file: packet-x509sat-ettarr.c ---*/
-#line 63 "../../asn1/x509sat/packet-x509sat-template.c"
+#line 63 "./asn1/x509sat/packet-x509sat-template.c"
};
/* Register protocol */
@@ -2645,7 +2645,7 @@ void proto_register_x509sat(void) {
/*--- Included file: packet-x509sat-syn-reg.c ---*/
-#line 1 "../../asn1/x509sat/packet-x509sat-syn-reg.c"
+#line 1 "./asn1/x509sat/packet-x509sat-syn-reg.c"
/*--- Syntax registrations ---*/
register_ber_syntax_dissector("BitString", proto_x509sat, dissect_BitString_PDU);
register_ber_syntax_dissector("Boolean", proto_x509sat, dissect_Boolean_PDU);
@@ -2686,7 +2686,7 @@ void proto_register_x509sat(void) {
register_ber_syntax_dissector("X121Address", proto_x509sat, dissect_X121Address_PDU);
/*--- End of included file: packet-x509sat-syn-reg.c ---*/
-#line 73 "../../asn1/x509sat/packet-x509sat-template.c"
+#line 73 "./asn1/x509sat/packet-x509sat-template.c"
}
@@ -2695,7 +2695,7 @@ void proto_register_x509sat(void) {
void proto_reg_handoff_x509sat(void) {
/*--- Included file: packet-x509sat-dis-tab.c ---*/
-#line 1 "../../asn1/x509sat/packet-x509sat-dis-tab.c"
+#line 1 "./asn1/x509sat/packet-x509sat-dis-tab.c"
register_ber_oid_dissector("2.5.4.0", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-objectClass");
register_ber_oid_dissector("2.5.4.2", dissect_DirectoryString_PDU, proto_x509sat, "id-at-knowledgeInformation");
register_ber_oid_dissector("2.5.4.3", dissect_DirectoryString_PDU, proto_x509sat, "id-at-commonName");
@@ -2879,7 +2879,7 @@ void proto_reg_handoff_x509sat(void) {
/*--- End of included file: packet-x509sat-dis-tab.c ---*/
-#line 80 "../../asn1/x509sat/packet-x509sat-template.c"
+#line 80 "./asn1/x509sat/packet-x509sat-template.c"
/* OBJECT CLASSES */
diff --git a/epan/dissectors/packet-x509sat.h b/epan/dissectors/packet-x509sat.h
index 64e8c34577..2fa1a6c444 100644
--- a/epan/dissectors/packet-x509sat.h
+++ b/epan/dissectors/packet-x509sat.h
@@ -1,11 +1,11 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509sat.h */
-/* ../../tools/asn2wrs.py -b -r Syntax -p x509sat -c ./x509sat.cnf -s ./packet-x509sat-template -D . -O ../../epan/dissectors SelectedAttributeTypes.asn */
+/* asn2wrs.py -b -r Syntax -p x509sat -c ./x509sat.cnf -s ./packet-x509sat-template -D . -O ../.. SelectedAttributeTypes.asn */
/* Input file: packet-x509sat-template.h */
-#line 1 "../../asn1/x509sat/packet-x509sat-template.h"
+#line 1 "./asn1/x509sat/packet-x509sat-template.h"
/* packet-x509sat.h
* Routines for X.509 Selected Attribute Types packet dissection
* Ronnie Sahlberg 2004
@@ -34,7 +34,7 @@
/*--- Included file: packet-x509sat-exp.h ---*/
-#line 1 "../../asn1/x509sat/packet-x509sat-exp.h"
+#line 1 "./asn1/x509sat/packet-x509sat-exp.h"
extern const value_string x509sat_DirectoryString_vals[];
extern const value_string x509sat_Criteria_vals[];
extern const value_string x509sat_ZonalResult_vals[];
@@ -73,7 +73,7 @@ int dissect_x509sat_TimeAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int dissect_x509sat_LocaleContextSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-x509sat-exp.h ---*/
-#line 28 "../../asn1/x509sat/packet-x509sat-template.h"
+#line 28 "./asn1/x509sat/packet-x509sat-template.h"
#endif /* PACKET_X509SAT_H */